PageSourceSearch

https://tritoncloud.io/assets/index-DTnBsKRk.js

js tritoncloud.io collected 2026-10-09 04:51:31 UTC 693,854 bytes, 700 lines download raw bytes

vendor: 5,493 bytes, lines 1-2
1const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/GettingStarted-M5d1uqKb.js","assets/ContentToFollow-CvuN4DUy.js","assets/HowTo-B8V46N8B.js","assets/Concepts-DSnFkgfk.js","assets/Reference-HEbxFwX2.js","assets/BlogPost-95AEdod1.js","assets/BlogIndex-CKbwJYHZ.js"])))=>i.map(i=>d[i]);
2(function(){const o=document.createElement("link").relList;if(o&&o.supports&&o.supports("modulepreload"))return;for(const l of document.querySelectorAll('link[rel="modulepreload"]'))s(l);new MutationObserver(l=>{for(const c of l)if(c.type==="childList")for(const u of c.addedNodes)u.tagName==="LINK"&&u.rel==="modulepreload"&&s(u)}).observe(document,{childList:!0,subtree:!0});function i(l){const c={};return l.integrity&&(c.integrity=l.integrity),l.referrerPolicy&&(c.referrerPolicy=l.referrerPolicy),l.crossOrigin==="use-credentials"?c.credentials="include":l.crossOrigin==="anonymous"?c.credentials="omit":c.credentials="same-origin",c}function s(l){if(l.ep)return;l.ep=!0;const c=i(l);fetch(l.href,c)}})();function Lc(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var Wl={exports:{}},Vi={},Vl={exports:{}},Te={};var Xh;function Jy(){if(Xh)return Te;Xh=1;var e=Symbol.for("react.element"),o=Symbol.for("react.portal"),i=Symbol.for("react.fragment"),s=Symbol.for("react.strict_mode"),l=Symbol.for("react.profiler"),c=Symbol.for("react.provider"),u=Symbol.for("react.context"),h=Symbol.for("react.forward_ref"),m=Symbol.for("react.suspense"),f=Symbol.for("react.memo"),y=Symbol.for("react.lazy"),x=Symbol.iterator;function w(A){return A===null||typeof A!="object"?null:(A=x&&A[x]||A["@@iterator"],typeof A=="function"?A:null)}var k={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},N=Object.assign,I={};function T(A,W,S){this.props=A,this.context=W,this.refs=I,this.updater=S||k}T.prototype.isReactComponent={},T.prototype.setState=function(A,W){if(typeof A!="object"&&typeof A!="function"&&A!=null)throw Error("setState(...): takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,A,W,"setState")},T.prototype.forceUpdate=function(A){this.updater.enqueueForceUpdate(this,A,"forceUpdate")};function _(){}_.prototype=T.prototype;function z(A,W,S){this.props=A,this.context=W,this.refs=I,this.updater=S||k}var B=z.prototype=new _;B.constructor=z,N(B,T.prototype),B.isPureReactComponent=!0;var te=Array.isArray,Y=Object.prototype.hasOwnProperty,F={current:null},ne={key:!0,ref:!0,__self:!0,__source:!0};function ue(A,W,S){var ge,be={},me=null,Pe=null;if(W!=null)for(ge in W.ref!==void 0&&(Pe=W.ref),W.key!==void 0&&(me=""+W.key),W)Y.call(W,ge)&&!ne.hasOwnProperty(ge)&&(be[ge]=W[ge]);var Ne=arguments.length-2;if(Ne===1)be.children=S;else if(1<Ne){for(var Re=Array(Ne),Ye=0;Ye<Ne;Ye++)Re[Ye]=arguments[Ye+2];be.children=Re}if(A&&A.defaultProps)for(ge in Ne=A.defaultProps,Ne)be[ge]===void 0&&(be[ge]=Ne[ge]);return{$$typeof:e,type:A,key:me,ref:Pe,props:be,_owner:F.current}}function fe(A,W){return{$$typeof:e,type:A.type,key:W,ref:A.ref,props:A.props,_owner:A._owner}}function R(A){return typeof A=="object"&&A!==null&&A.$$typeof===e}function ee(A){var W={"=":"=0",":":"=2"};return"$"+A.replace(/[=:]/g,function(S){return W[S]})}var Z=/\/+/g;function ye(A,W){return typeof A=="object"&&A!==null&&A.key!=null?ee(""+A.key):W.toString(36)}function ie(A,W,S,ge,be){var me=typeof A;(me==="undefined"||me==="boolean")&&(A=null);var Pe=!1;if(A===null)Pe=!0;else switch(me){case"string":case"number":Pe=!0;break;case"object":switch(A.$$typeof){case e:case o:Pe=!0}}if(Pe)return Pe=A,be=be(Pe),A=ge===""?"."+ye(Pe,0):ge,te(be)?(S="",A!=null&&(S=A.replace(Z,"$&/")+"/"),ie(be,W,S,"",function(Ye){return Ye})):be!=null&&(R(be)&&(be=fe(be,S+(!be.key||Pe&&Pe.key===be.key?"":(""+be.key).replace(Z,"$&/")+"/")+A)),W.push(be)),1;if(Pe=0,ge=ge===""?".":ge+":",te(A))for(var Ne=0;Ne<A.length;Ne++){me=A[Ne];var Re=ge+ye(me,Ne);Pe+=ie(me,W,S,Re,be)}else if(Re=w(A),typeof Re=="function")for(A=Re.call(A),Ne=0;!(me=A.next()).done;)me=me.value,Re=ge+ye(me,Ne++),Pe+=ie(me,W,S,Re,be);else if(me==="object")throw W=String(A),Error("Objects are not valid as a React child (found: "+(W==="[object Object]"?"object with keys {"+Object.keys(A).join(", ")+"}":W)+"). If you meant to render a collection of children, use an array instead.");return Pe}function J(A,W,S){if(A==null)return A;var ge=[],be=0;return ie(A,ge,"","",function(me){return W.call(S,me,be++)}),ge}function ke(A){if(A._status===-1){var W=A._result;W=W(),W.then(function(S){(A._status===0||A._status===-1)&&(A._status=1,A._result=S)},function(S){(A._status===0||A._status===-1)&&(A._status=2,A._result=S)}),A._status===-1&&(A._status=0,A._result=W)}if(A._status===1)return A._result.default;throw A._result}var je={current:null},Q={transition:null},ce={ReactCurrentDispatcher:je,ReactCurrentBatchConfig:Q,ReactCurrentOwner:F};function j(){throw Error("act(...) is not supported in production builds of React.")}return Te.Children={map:J,forEach:function(A,W,S){J(A,function(){W.apply(this,arguments)},S)},count:function(A){var W=0;return J(A,function(){W++}),W},toArray:function(A){return J(A,function(W){return W})||[]},only:function(A){if(!R(A))throw Error("React.Children.only expected to receive a single React element child.");return A}},Te.Component=T,Te.Fragment=i,Te.Profiler=l,Te.PureComponent=z,Te.StrictMode=s,Te.Suspense=m,Te.__SECRET_INT
vendor: 5,227 bytes, line 2
2ERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=ce,Te.act=j,Te.cloneElement=function(A,W,S){if(A==null)throw Error("React.cloneElement(...): The argument must be a React element, but you passed "+A+".");var ge=N({},A.props),be=A.key,me=A.ref,Pe=A._owner;if(W!=null){if(W.ref!==void 0&&(me=W.ref,Pe=F.current),W.key!==void 0&&(be=""+W.key),A.type&&A.type.defaultProps)var Ne=A.type.defaultProps;for(Re in W)Y.call(W,Re)&&!ne.hasOwnProperty(Re)&&(ge[Re]=W[Re]===void 0&&Ne!==void 0?Ne[Re]:W[Re])}var Re=arguments.length-2;if(Re===1)ge.children=S;else if(1<Re){Ne=Array(Re);for(var Ye=0;Ye<Re;Ye++)Ne[Ye]=arguments[Ye+2];ge.children=Ne}return{$$typeof:e,type:A.type,key:be,ref:me,props:ge,_owner:Pe}},Te.createContext=function(A){return A={$$typeof:u,_currentValue:A,_currentValue2:A,_threadCount:0,Provider:null,Consumer:null,_defaultValue:null,_globalName:null},A.Provider={$$typeof:c,_context:A},A.Consumer=A},Te.createElement=ue,Te.createFactory=function(A){var W=ue.bind(null,A);return W.type=A,W},Te.createRef=function(){return{current:null}},Te.forwardRef=function(A){return{$$typeof:h,render:A}},Te.isValidElement=R,Te.lazy=function(A){return{$$typeof:y,_payload:{_status:-1,_result:A},_init:ke}},Te.memo=function(A,W){return{$$typeof:f,type:A,compare:W===void 0?null:W}},Te.startTransition=function(A){var W=Q.transition;Q.transition={};try{A()}finally{Q.transition=W}},Te.unstable_act=j,Te.useCallback=function(A,W){return je.current.useCallback(A,W)},Te.useContext=function(A){return je.current.useContext(A)},Te.useDebugValue=function(){},Te.useDeferredValue=function(A){return je.current.useDeferredValue(A)},Te.useEffect=function(A,W){return je.current.useEffect(A,W)},Te.useId=function(){return je.current.useId()},Te.useImperativeHandle=function(A,W,S){return je.current.useImperativeHandle(A,W,S)},Te.useInsertionEffect=function(A,W){return je.current.useInsertionEffect(A,W)},Te.useLayoutEffect=function(A,W){return je.current.useLayoutEffect(A,W)},Te.useMemo=function(A,W){return je.current.useMemo(A,W)},Te.useReducer=function(A,W,S){return je.current.useReducer(A,W,S)},Te.useRef=function(A){return je.current.useRef(A)},Te.useState=function(A){return je.current.useState(A)},Te.useSyncExternalStore=function(A,W,S){return je.current.useSyncExternalStore(A,W,S)},Te.useTransition=function(){return je.current.useTransition()},Te.version="18.3.1",Te}var Zh;function Dc(){return Zh||(Zh=1,Vl.exports=Jy()),Vl.exports}var ep;function Ky(){if(ep)return Vi;ep=1;var e=Dc(),o=Symbol.for("react.element"),i=Symbol.for("react.fragment"),s=Object.prototype.hasOwnProperty,l=e.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,c={key:!0,ref:!0,__self:!0,__source:!0};function u(h,m,f){var y,x={},w=null,k=null;f!==void 0&&(w=""+f),m.key!==void 0&&(w=""+m.key),m.ref!==void 0&&(k=m.ref);for(y in m)s.call(m,y)&&!c.hasOwnProperty(y)&&(x[y]=m[y]);if(h&&h.defaultProps)for(y in m=h.defaultProps,m)x[y]===void 0&&(x[y]=m[y]);return{$$typeof:o,type:h,key:w,ref:k,props:x,_owner:l.current}}return Vi.Fragment=i,Vi.jsx=u,Vi.jsxs=u,Vi}var tp;function Qy(){return tp||(tp=1,Wl.exports=Ky()),Wl.exports}var t=Qy(),ba={},$l={exports:{}},jt={},Gl={exports:{}},ql={};var np;function Xy(){return np||(np=1,(function(e){function o(Q,ce){var j=Q.length;Q.push(ce);e:for(;0<j;){var A=j-1>>>1,W=Q[A];if(0<l(W,ce))Q[A]=ce,Q[j]=W,j=A;else break e}}function i(Q){return Q.length===0?null:Q[0]}function s(Q){if(Q.length===0)return null;var ce=Q[0],j=Q.pop();if(j!==ce){Q[0]=j;e:for(var A=0,W=Q.length,S=W>>>1;A<S;){var ge=2*(A+1)-1,be=Q[ge],me=ge+1,Pe=Q[me];if(0>l(be,j))me<W&&0>l(Pe,be)?(Q[A]=Pe,Q[me]=j,A=me):(Q[A]=be,Q[ge]=j,A=ge);else if(me<W&&0>l(Pe,j))Q[A]=Pe,Q[me]=j,A=me;else break e}}return ce}function l(Q,ce){var j=Q.sortIndex-ce.sortIndex;return j!==0?j:Q.id-ce.id}if(typeof performance=="object"&&typeof performance.now=="function"){var c=performance;e.unstable_now=function(){return c.now()}}else{var u=Date,h=u.now();e.unstable_now=function(){return u.now()-h}}var m=[],f=[],y=1,x=null,w=3,k=!1,N=!1,I=!1,T=typeof setTimeout=="function"?setTimeout:null,_=typeof clearTimeout=="function"?clearTimeout:null,z=typeof setImmediate<"u"?setImmediate:null;typeof navigator<"u"&&navigator.scheduling!==void 0&&navigator.scheduling.isInputPending!==void 0&&navigator.scheduling.isInputPending.bind(navigator.scheduling);function B(Q){for(var ce=i(f);ce!==null;){if(ce.callback===null)s(f);else if(ce.startTime<=Q)s(f),ce.sortIndex=ce.expirationTime,o(m,ce);else break;ce=i(f)}}function te(Q){if(I=!1,B(Q),!N)if(i(m)!==null)N=!0,ke(Y);else{var ce=i(f);ce!==null&&je(te,ce.startTime-Q)}}function Y(Q,ce){N=!1,I&&(I=!1,_(ue),ue=-1),k=!0;var j=w;try{for(B(ce),x=i(m);x!==null&&(!(x.expirationTime>ce)||Q&&!ee());){var A=x.callback;if(typeof A=="function"){x.callback=null,w=x.priorityLevel;var W=A(x.expirationTime<=ce);ce=e.unstable_now(),typeof W=="function"?x.callback=W:x===i(m)&&s(m),B(ce)}else s(m);x=i(m)}if(x!==null)var S=!0;else{var ge=i(f);ge!==null&&je(te,ge.startTime-ce),S=!1}return S}finally{x=null,w=j,k=!1}}var F=!1,ne=null,ue=-1,fe=5,R=-1;function ee(){return!(e.unstable_now()-R<fe)}function Z(){if(ne!==null){var Q=e.unstable_now();R=Q;var ce=!0;try{ce=ne(!0,Q)}finally{ce?ye():(F=!1,ne=null)}}else F=!1}var ye;
vendor: 48,503 bytes, lines 2-7
2if(typeof z=="function")ye=function(){z(Z)};else if(typeof MessageChannel<"u"){var ie=new MessageChannel,J=ie.port2;ie.port1.onmessage=Z,ye=function(){J.postMessage(null)}}else ye=function(){T(Z,0)};function ke(Q){ne=Q,F||(F=!0,ye())}function je(Q,ce){ue=T(function(){Q(e.unstable_now())},ce)}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(Q){Q.callback=null},e.unstable_continueExecution=function(){N||k||(N=!0,ke(Y))},e.unstable_forceFrameRate=function(Q){0>Q||125<Q?console.error("forceFrameRate takes a positive int between 0 and 125, forcing frame rates higher than 125 fps is not supported"):fe=0<Q?Math.floor(1e3/Q):5},e.unstable_getCurrentPriorityLevel=function(){return w},e.unstable_getFirstCallbackNode=function(){return i(m)},e.unstable_next=function(Q){switch(w){case 1:case 2:case 3:var ce=3;break;default:ce=w}var j=w;w=ce;try{return Q()}finally{w=j}},e.unstable_pauseExecution=function(){},e.unstable_requestPaint=function(){},e.unstable_runWithPriority=function(Q,ce){switch(Q){case 1:case 2:case 3:case 4:case 5:break;default:Q=3}var j=w;w=Q;try{return ce()}finally{w=j}},e.unstable_scheduleCallback=function(Q,ce,j){var A=e.unstable_now();switch(typeof j=="object"&&j!==null?(j=j.delay,j=typeof j=="number"&&0<j?A+j:A):j=A,Q){case 1:var W=-1;break;case 2:W=250;break;case 5:W=1073741823;break;case 4:W=1e4;break;default:W=5e3}return W=j+W,Q={id:y++,callback:ce,priorityLevel:Q,startTime:j,expirationTime:W,sortIndex:-1},j>A?(Q.sortIndex=j,o(f,Q),i(m)===null&&Q===i(f)&&(I?(_(ue),ue=-1):I=!0,je(te,j-A))):(Q.sortIndex=W,o(m,Q),N||k||(N=!0,ke(Y))),Q},e.unstable_shouldYield=ee,e.unstable_wrapCallback=function(Q){var ce=w;return function(){var j=w;w=ce;try{return Q.apply(this,arguments)}finally{w=j}}}})(ql)),ql}var rp;function Zy(){return rp||(rp=1,Gl.exports=Xy()),Gl.exports}var ip;function ex(){if(ip)return jt;ip=1;var e=Dc(),o=Zy();function i(n){for(var r="https://reactjs.org/docs/error-decoder.html?invariant="+n,a=1;a<arguments.length;a++)r+="&args[]="+encodeURIComponent(arguments[a]);return"Minified React error #"+n+"; visit "+r+" for the full message or use the non-minified dev environment for full errors and additional helpful warnings."}var s=new Set,l={};function c(n,r){u(n,r),u(n+"Capture",r)}function u(n,r){for(l[n]=r,n=0;n<r.length;n++)s.add(r[n])}var h=!(typeof window>"u"||typeof window.document>"u"||typeof window.document.createElement>"u"),m=Object.prototype.hasOwnProperty,f=/^[: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]*$/,y={},x={};function w(n){return m.call(x,n)?!0:m.call(y,n)?!1:f.test(n)?x[n]=!0:(y[n]=!0,!1)}function k(n,r,a,d){if(a!==null&&a.type===0)return!1;switch(typeof r){case"function":case"symbol":return!0;case"boolean":return d?!1:a!==null?!a.acceptsBooleans:(n=n.toLowerCase().slice(0,5),n!=="data-"&&n!=="aria-");default:return!1}}function N(n,r,a,d){if(r===null||typeof r>"u"||k(n,r,a,d))return!0;if(d)return!1;if(a!==null)switch(a.type){case 3:return!r;case 4:return r===!1;case 5:return isNaN(r);case 6:return isNaN(r)||1>r}return!1}function I(n,r,a,d,p,g,v){this.acceptsBooleans=r===2||r===3||r===4,this.attributeName=d,this.attributeNamespace=p,this.mustUseProperty=a,this.propertyName=n,this.type=r,this.sanitizeURL=g,this.removeEmptyString=v}var T={};"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style".split(" ").forEach(function(n){T[n]=new I(n,0,!1,n,null,!1,!1)}),[["acceptCharset","accept-charset"],["className","class"],["htmlFor","for"],["httpEquiv","http-equiv"]].forEach(function(n){var r=n[0];T[r]=new I(r,1,!1,n[1],null,!1,!1)}),["contentEditable","draggable","spellCheck","value"].forEach(function(n){T[n]=new I(n,2,!1,n.toLowerCase(),null,!1,!1)}),["autoReverse","externalResourcesRequired","focusable","preserveAlpha"].forEach(function(n){T[n]=new I(n,2,!1,n,null,!1,!1)}),"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope".split(" ").forEach(function(n){T[n]=new I(n,3,!1,n.toLowerCase(),null,!1,!1)}),["checked","multiple","muted","selected"].forEach(function(n){T[n]=new I(n,3,!0,n,null,!1,!1)}),["capture","download"].forEach(function(n){T[n]=new I(n,4,!1,n,null,!1,!1)}),["cols","rows","size","span"].forEach(function(n){T[n]=new I(n,6,!1,n,null,!1,!1)}),["rowSpan","start"].forEach(function(n){T[n]=new I(n,5,!1,n.toLowerCase(),null,!1,!1)});var _=/[\-:]([a-z])/g;function z(n){return n[1].toUpperCase()}"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height".split(" ").forEach(function(n){var r=n.replace(_,z);T[r]=new I(r,1,!1,n,null,!1,!1)}),"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type".split(" ").forEach(function(n){var r=n.replace(_,z);T[r]=new I(r,1,!1,n,"http://www.w3.org/1999/xlink",!1,!1)}),["xml:base","xml:lang","xml:space"].forEach(function(n){var r=n.replace(_,z);T[r]=new I(r,1,!1,n,"http://www.w3.org/XML/1998/namespace",!1,!1)}),["tabIndex","crossOrigin"].forEach(function(n){T[n]=new I(n,1,!1,n.toLowerCase(),null,!1,!1)}),T.xlinkHref=new I("xlinkHref",1,!1,"xlink:href","http://www.w3.org/1999/xlink",!0,!1),["src","href","action","formAction"].forEach(function(n){T[n]=new I(n,1,!1,n.toLowerCase(),null,!0,!0)});function B(n,r,a,d){var p=T.hasOwnProperty(r)?T[r]:null;(p!==null?p.type!==0:d||!(2<r.length)||r[0]!=="o"&&r[0]!=="O"||r[1]!=="n"&&r[1]!=="N")&&(N(r,a,p,d)&&(a=null),d||p===null?w(r)&&(a===null?n.removeAttribute(r):n.setAttribute(r,""+a)):p.mustUseProperty?n[p.propertyName]=a===null?p.type===3?!1:"":a:(r=p.attributeName,d=p.attributeNamespace,a===null?n.removeAttribute(r):(p=p.type,a=p===3||p===4&&a===!0?"":""+a,d?n.setAttributeNS(d,r,a):n.setAttribute(r,a))))}var te=e.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED,Y=Symbol.for("react.element"),F=Symbol.for("react.portal"),ne=Symbol.for("react.fragment"),ue=Symbol.for("react.strict_mode"),fe=Symbol.for("react.profiler"),R=Symbol.for("react.provider"),ee=Symbol.for("react.context"),Z=Symbol.for("react.forward_ref"),ye=Symbol.for("react.suspense"),ie=Symbol.for("react.suspense_list"),J=Symbol.for("react.memo"),ke=Symbol.for("react.lazy"),je=Symbol.for("react.offscreen"),Q=Symbol.iterator;function ce(n){return n===null||typeof n!="object"?null:(n=Q&&n[Q]||n["@@iterator"],typeof n=="function"?n:null)}var j=Object.assign,A;function W(n){if(A===void 0)try{throw Error()}catch(a){var r=a.stack.trim().match(/\n( *(at )?)/);A=r&&r[1]||""}return`
3`+A+n}var S=!1;function ge(n,r){if(!n||S)return"";S=!0;var a=Error.prepareStackTrace;Error.prepareStackTrace=void 0;try{if(r)if(r=function(){throw Error()},Object.defineProperty(r.prototype,"props",{set:function(){throw Error()}}),typeof Reflect=="object"&&Reflect.construct){try{Reflect.construct(r,[])}catch(U){var d=U}Reflect.construct(n,[],r)}else{try{r.call()}catch(U){d=U}n.call(r.prototype)}else{try{throw Error()}catch(U){d=U}n()}}catch(U){if(U&&d&&typeof U.stack=="string"){for(var p=U.stack.split(`
4`),g=d.stack.split(`
5`),v=p.length-1,b=g.length-1;1<=v&&0<=b&&p[v]!==g[b];)b--;for(;1<=v&&0<=b;v--,b--)if(p[v]!==g[b]){if(v!==1||b!==1)do if(v--,b--,0>b||p[v]!==g[b]){var E=`
6`+p[v].replace(" at new "," at ");return n.displayName&&E.includes("<anonymous>")&&(E=E.replace("<anonymous>",n.displayName)),E}while(1<=v&&0<=b);break}}}finally{S=!1,Error.prepareStackTrace=a}return(n=n?n.displayName||n.name:"")?W(n):""}function be(n){switch(n.tag){case 5:return W(n.type);case 16:return W("Lazy");case 13:return W("Suspense");case 19:return W("SuspenseList");case 0:case 2:case 15:return n=ge(n.type,!1),n;case 11:return n=ge(n.type.render,!1),n;case 1:return n=ge(n.type,!0),n;default:return""}}function me(n){if(n==null)return null;if(typeof n=="function")return n.displayName||n.name||null;if(typeof n=="string")return n;switch(n){case ne:return"Fragment";case F:return"Portal";case fe:return"Profiler";case ue:return"StrictMode";case ye:return"Suspense";case ie:return"SuspenseList"}if(typeof n=="object")switch(n.$$typeof){case ee:return(n.displayName||"Context")+".Consumer";case R:return(n._context.displayName||"Context")+".Provider";case Z:var r=n.render;return n=n.displayName,n||(n=r.displayName||r.name||"",n=n!==""?"ForwardRef("+n+")":"ForwardRef"),n;case J:return r=n.displayName||null,r!==null?r:me(n.type)||"Memo";case ke:r=n._payload,n=n._init;try{return me(n(r))}catch{}}return null}function Pe(n){var r=n.type;switch(n.tag){case 24:return"Cache";case 9:return(r.displayName||"Context")+".Consumer";case 10:return(r._context.displayName||"Context")+".Provider";case 18:return"DehydratedFragment";case 11:return n=r.render,n=n.displayName||n.name||"",r.displayName||(n!==""?"ForwardRef("+n+")":"ForwardRef");case 7:return"Fragment";case 5:return r;case 4:return"Portal";case 3:return"Root";case 6:return"Text";case 16:return me(r);case 8:return r===ue?"StrictMode":"Mode";case 22:return"Offscreen";case 12:return"Profiler";case 21:return"Scope";case 13:return"Suspense";case 19:return"SuspenseList";case 25:return"TracingMarker";case 1:case 0:case 17:case 2:case 14:case 15:if(typeof r=="function")return r.displayName||r.name||null;if(typeof r=="string")return r}return null}function Ne(n){switch(typeof n){case"boolean":case"number":case"string":case"undefined":return n;case"object":return n;default:return""}}function Re(n){var r=n.type;return(n=n.nodeName)&&n.toLowerCase()==="input"&&(r==="checkbox"||r==="radio")}function Ye(n){var r=Re(n)?"checked":"value",a=Object.getOwnPropertyDescriptor(n.constructor.prototype,r),d=""+n[r];if(!n.hasOwnProperty(r)&&typeof a<"u"&&typeof a.get=="function"&&typeof a.set=="function"){var p=a.get,g=a.set;return Object.defineProperty(n,r,{configurable:!0,get:function(){return p.call(this)},set:function(v){d=""+v,g.call(this,v)}}),Object.defineProperty(n,r,{enumerable:a.enumerable}),{getValue:function(){return d},setValue:function(v){d=""+v},stopTracking:function(){n._valueTracker=null,delete n[r]}}}}function dn(n){n._valueTracker||(n._valueTracker=Ye(n))}function uo(n){if(!n)return!1;var r=n._valueTracker;if(!r)return!0;var a=r.getValue(),d="";return n&&(d=Re(n)?n.checked?"true":"false":n.value),n=d,n!==a?(r.setValue(n),!0):!1}function vr(n){if(n=n||(typeof document<"u"?document:void 0),typeof n>"u")return null;try{return n.activeElement||n.body}catch{return n.body}}function ii(n,r){var a=r.checked;return j({},r,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:a??n._wrapperState.initialChecked})}function oi(n,r){var a=r.defaultValue==null?"":r.defaultValue,d=r.checked!=null?r.checked:r.defaultChecked;a=Ne(r.value!=null?r.value:a),n._wrapperState={initialChecked:d,initialValue:a,controlled:r.type==="checkbox"||r.type==="radio"?r.checked!=null:r.value!=null}}function ai(n,r){r=r.checked,r!=null&&B(n,"checked",r,!1)}function wr(n,r){ai(n,r);var a=Ne(r.value),d=r.type;if(a!=null)d==="number"?(a===0&&n.value===""||n.value!=a)&&(n.value=""+a):n.value!==""+a&&(n.value=""+a);else if(d==="submit"||d==="reset"){n.removeAttribute("value");return}r.hasOwnProperty("value")?kr(n,r.type,a):r.hasOwnProperty("defaultValue")&&kr(n,r.type,Ne(r.defaultValue)),r.checked==null&&r.defaultChecked!=null&&(n.defaultChecked=!!r.defaultChecked)}function ho(n,r,a){if(r.hasOwnProperty("value")||r.hasOwnProperty("defaultValue")){var d=r.type;if(!(d!=="submit"&&d!=="reset"||r.value!==void 0&&r.value!==null))return;r=""+n._wrapperState.initialValue,a||r===n.value||(n.value=r),n.defaultValue=r}a=n.name,a!==""&&(n.name=""),n.defaultChecked=!!n._wrapperState.initialChecked,a!==""&&(n.name=a)}function kr(n,r,a){(r!=="number"||vr(n.ownerDocument)!==n)&&(a==null?n.defaultValue=""+n._wrapperState.initialValue:n.defaultValue!==""+a&&(n.defaultValue=""+a))}var Nn=Array.isArray;function Sn(n,r,a,d){if(n=n.options,r){r={};for(var p=0;p<a.length;p++)r["$"+a[p]]=!0;for(a=0;a<n.length;a++)p=r.hasOwnProperty("$"+n[a].value),n[a].selected!==p&&(n[a].selected=p),p&&d&&(n[a].defaultSelected=!0)}else{for(a=""+Ne(a),r=null,p=0;p<n.length;p++){if(n[p].value===a){n[p].selected=!0,d&&(n[p].defaultSelected=!0);return}r!==null||n[p].disabled||(r=n[p])}r!==null&&(r.selected=!0)}}function si(n,r){if(r.dangerouslySetInnerHTML!=null)throw Error(i(91));return j({},r,{value:void 0,defaultValue:void 0,children:""+n._wrapperState.initialValue})}function po(n,r){var a=r.value;if(a==null){if(a=r.children,r=r.defaultValue,a!=null){if(r!=null)throw Error(i(92));if(Nn(a)){if(1<a.length)throw Error(i(93));a=a[0]}r=a}r==null&&(r=""),a=r}n._wrapperState={initialValue:Ne(a)}}function mo(n,r){var a=Ne(r.value),d=Ne(r.defaultValue);a!=null&&(a=""+a,a!==n.value&&(n.value=a),r.defaultValue==null&&n.defaultValue!==a&&(n.defaultValue=a)),d!=null&&(n.defaultValue=""+d)}function fo(n){var r=n.textContent;r===n._wrapperState.initialValue&&r!==""&&r!==null&&(n.value=r)}function H(n){switch(n){case"svg":return"http://www.w3.org/2000/svg";case"math":return"http://www.w3.org/1998/Math/MathML";default:return"http://www.w3.org/1999/xhtml"}}function X(n,r){return n==null||n==="http://www.w3.org/1999/xhtml"?H(r):n==="http://www.w3.org/2000/svg"&&r==="foreignObject"?"http://www.w3.org/1999/xhtml":n}var xe,Se=(function(n){return typeof MSApp<"u"&&MSApp.execUnsafeLocalFunction?function(r,a,d,p){MSApp.execUnsafeLocalFunction(function(){return n(r,a,d,p)})}:n})(function(n,r){if(n.namespaceURI!=="http://www.w3.org/2000/svg"||"innerHTML"in n)n.innerHTML=r;else{for(xe=xe||document.createElement("div"),xe.innerHTML="<svg>"+r.valueOf().toString()+"</svg>",r=xe.firstChild;n.firstChild;)n.removeChild(n.firstChild);for(;r.firstChild;)n.appendChild(r.firstChild)}});function _e(n,r){if(r){var a=n.firstChild;if(a&&a===n.lastChild&&a.nodeType===3){a.nodeValue=r;return}}n.textContent=r}var nt={animationIterationCount:!0,aspectRatio:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},hn=["Webkit","ms","Moz","O"];Object.keys(nt).forEach(function(n){hn.forEach(function(r){r=r+n.charAt(0).toUpperCase()+n.substring(1),nt[r]=nt[n]})});function Rt(n,r,a){return r==null||typeof r=="boolean"||r===""?"":a||typeof r!="number"||r===0||nt.hasOwnProperty(n)&&nt[n]?(""+r).trim():r+"px"}function Tn(n,r){n=n.style;for(var a in r)if(r.hasOwnProperty(a)){var d=a.indexOf("--")===0,p=Rt(a,r[a],d);a==="float"&&(a="cssFloat"),d?n.setProperty(a,p):n[a]=p}}var Kn=j({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});function rt(n,r){if(r){if(Kn[n]&&(r.children!=null||r.dangerouslySetInnerHTML!=null))throw Error(i(137,n));if(r.dangerouslySetInnerHTML!=null){if(r.children!=null)throw Error(i(60));if(typeof r.dangerouslySetInnerHTML!="object"||!("__html"in r.dangerouslySetInnerHTML))throw Error(i(61))}if(r.style!=null&&typeof r.style!="object")throw Error(i(62))}}function en(n,r){if(n.indexOf("-")===-1)return typeof r.is=="string";switch(n){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 St=null;function is(n){return n=n.target||n.srcElement||window,n.correspondingUseElement&&(n=n.correspondingUseElement),n.nodeType===3?n.parentNode:n}var os=null,jr=null,br=null;function fu(n){if(n=_i(n)){if(typeof os!="function")throw Error(i(280));var r=n.stateNode;r&&(r=Fo(r),os(n.stateNode,n.type,r))}}function gu(n){jr?br?br.push(n):br=[n]:jr=n}function yu(){if(jr){var n=jr,r=br;if(br=jr=null,fu(n),r)for(n=0;n<r.length;n++)fu(r[n])}}function xu(n,r){return n(r)}function vu(){}var as=!1;function wu(n,r,a){if(as)return n(r,a);as=!0;try{return xu(n,r,a)}finally{as=!1,(jr!==null||br!==null)&&(vu(),yu())}}function li(n,r){var a=n.stateNode;if(a===null)return null;var d=Fo(a);if(d===null)return null;a=d[r];e:switch(r){case"onClick":case"onClickCapture":case"onDoubleClick":case"onDoubleClickCapture":case"onMouseDown":case"onMouseDownCapture":case"onMouseMove":case"onMouseMoveCapture":case"onMouseUp":case"onMouseUpCapture":case"onMouseEnter":(d=!d.disabled)||(n=n.type,d=!(n==="button"||n==="input"||n==="select"||n==="textarea")),n=!d;break e;default:n=!1}if(n)return null;if(a&&typeof a!="function")throw Error(i(231,r,typeof a));return a}var ss=!1;if(h)try{var ci={};Object.defineProperty(ci,"passive",{get:function(){ss=!0}}),window.addEventListener("test",ci,ci),window.removeEventListener("test",ci,ci)}catch{ss=!1}function tg(n,r,a,d,p,g,v,b,E){var U=Array.prototype.slice.call(arguments,3);try{r.apply(a,U)}catch($){this.onError($)}}var ui=!1,go=null,yo=!1,ls=null,ng={onError:function(n){ui=!0,go=n}};function rg(n,r,a,d,p,g,v,b,E){ui=!1,go=null,tg.apply(ng,arguments)}function ig(n,r,a,d,p,g,v,b,E){if(rg.apply(this,arguments),ui){if(ui){var U=go;ui=!1,go=null}else throw Error(i(198));yo||(yo=!0,ls=U)}}function Qn(n){var r=n,a=n;if(n.alternate)for(;r.return;)r=r.return;else{n=r;do r=n,(r.flags&4098)!==0&&(a=r.return),n=r.return;while(n)}return r.tag===3?a:null}function ku(n){if(n.tag===13){var r=n.memoizedState;if(r===null&&(n=n.alternate,n!==null&&(r=n.memoizedState)),r!==null)return r.dehydrated}return null}function ju(n){if(Qn(n)!==n)throw Error(i(188))}function og(n){var r=n.alternate;if(!r){if(r=Qn(n),r===null)throw Error(i(188));return r!==n?null:n}for(var a=n,d=r;;){var p=a.return;if(p===null)break;var g=p.alternate;if(g===null){if(d=p.return,d!==null){a=d;continue}break}if(p.child===g.child){for(g=p.child;g;){if(g===a)return ju(p),n;if(g===d)return ju(p),r;g=g.sibling}throw Error(i(188))}if(a.return!==d.return)a=p,d=g;else{for(var v=!1,b=p.child;b;){if(b===a){v=!0,a=p,d=g;break}if(b===d){v=!0,d=p,a=g;break}b=b.sibling}if(!v){for(b=g.child;b;){if(b===a){v=!0,a=g,d=p;break}if(b===d){v=!0,d=g,a=p;break}b=b.sibling}if(!v)throw Error(i(189))}}if(a.alternate!==d)throw Error(i(190))}if(a.tag!==3)throw Error(i(188));return a.stateNode.current===a?n:r}function bu(n){return n=og(n),n!==null?Nu(n):null}function Nu(n){if(n.tag===5||n.tag===6)return n;for(n=n.child;n!==null;){var r=Nu(n);if(r!==null)return r;n=n.sibling}return null}var Su=o.unstable_scheduleCallback,Tu=o.unstable_cancelCallback,ag=o.unstable_shouldYield,sg=o.unstable_requestPaint,Ge=o.unstable_now,lg=o.unstable_getCurrentPriorityLevel,cs=o.unstable_ImmediatePriority,Cu=o.unstable_UserBlockingPriority,xo=o.unstable_NormalPriority,cg=o.unstable_LowPriority,Eu=o.unstable_IdlePriority,vo=null,tn=null;function ug(n){if(tn&&typeof tn.onCommitFiberRoot=="function")try{tn.onCommitFiberRoot(vo,n,void 0,(n.current.flags&128)===128)}catch{}}var Vt=Math.clz32?Math.clz32:pg,dg=Math.log,hg=Math.LN2;function pg(n){return n>>>=0,n===0?32:31-(dg(n)/hg|0)|0}var wo=64,ko=4194304;function di(n){switch(n&-n){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: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 n&4194240;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return n&130023424;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 1073741824;default:return n}}function jo(n,r){var a=n.pendingLanes;if(a===0)return 0;var d=0,p=n.suspendedLanes,g=n.pingedLanes,v=a&268435455;if(v!==0){var b=v&~p;b!==0?d=di(b):(g&=v,g!==0&&(d=di(g)))}else v=a&~p,v!==0?d=di(v):g!==0&&(d=di(g));if(d===0)return 0;if(r!==0&&r!==d&&(r&p)===0&&(p=d&-d,g=r&-r,p>=g||p===16&&(g&4194240)!==0))return r;if((d&4)!==0&&(d|=a&16),r=n.entangledLanes,r!==0)for(n=n.entanglements,r&=d;0<r;)a=31-Vt(r),p=1<<a,d|=n[a],r&=~p;return d}function mg(n,r){switch(n){case 1:case 2:case 4:return r+250;case 8:case 16:case 32:case 64: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 r+5e3;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return-1;case 134217728:case 268435456:case 536870912:case 1073741824:return-1;default:return-1}}function fg(n,r){for(var a=n.suspendedLanes,d=n.pingedLanes,p=n.expirationTimes,g=n.pendingLanes;0<g;){var v=31-Vt(g),b=1<<v,E=p[v];E===-1?((b&a)===0||(b&d)!==0)&&(p[v]=mg(b,r)):E<=r&&(n.expiredLanes|=b),g&=~b}}function us(n){return n=n.pendingLanes&-1073741825,n!==0?n:n&1073741824?1073741824:0}function _u(){var n=wo;return wo<<=1,(wo&4194240)===0&&(wo=64),n}function ds(n){for(var r=[],a=0;31>a;a++)r.push(n);return r}function hi(n,r,a){n.pendingLanes|=r,r!==536870912&&(n.suspendedLanes=0,n.pingedLanes=0),n=n.eventTimes,r=31-Vt(r),n[r]=a}function gg(n,r){var a=n.pendingLanes&~r;n.pendingLanes=r,n.suspendedLanes=0,n.pingedLanes=0,n.expiredLanes&=r,n.mutableReadLanes&=r,n.entangledLanes&=r,r=n.entanglements;var d=n.eventTimes;for(n=n.expirationTimes;0<a;){var p=31-Vt(a),g=1<<p;r[p]=0,d[p]=-1,n[p]=-1,a&=~g}}function hs(n,r){var a=n.entangledLanes|=r;for(n=n.entanglements;a;){var d=31-Vt(a),p=1<<d;p&r|n[d]&r&&(n[d]|=r),a&=~p}}var Oe=0;function Iu(n){return n&=-n,1<n?4<n?(n&268435455)!==0?16:536870912:4:1}var Pu,ps,Au,Ru,Ou,ms=!1,bo=[],Cn=null,En=null,_n=null,pi=new Map,mi=new Map,In=[],yg="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 submit".split(" ");function Lu(n,r){switch(n){case"focusin":case"focusout":Cn=null;break;case"dragenter":case"dragleave":En=null;break;case"mouseover":case"mouseout":_n=null;break;case"pointerover":case"pointerout":pi.delete(r.pointerId);break;case"gotpointercapture":case"lostpointercapture":mi.delete(r.pointerId)}}function fi(n,r,a,d,p,g){return n===null||n.nativeEvent!==g?(n={blockedOn:r,domEventName:a,eventSystemFlags:d,nativeEvent:g,targetContainers:[p]},r!==null&&(r=_i(r),r!==null&&ps(r)),n):(n.eventSystemFlags|=d,r=n.targetContainers,p!==null&&r.indexOf(p)===-1&&r.push(p),n)}function xg(n,r,a,d,p){switch(r){case"focusin":return Cn=fi(Cn,n,r,a,d,p),!0;case"dragenter":return En=fi(En,n,r,a,d,p),!0;case"mouseover":return _n=fi(_n,n,r,a,d,p),!0;case"pointerover":var g=p.pointerId;return pi.set(g,fi(pi.get(g)||null,n,r,a,d,p)),!0;case"gotpointercapture":return g=p.pointerId,mi.set(g,fi(mi.get(g)||null,n,r,a,d,p)),!0}return!1}function Du(n){var r=Xn(n.target);if(r!==null){var a=Qn(r);if(a!==null){if(r=a.tag,r===13){if(r=ku(a),r!==null){n.blockedOn=r,Ou(n.priority,function(){Au(a)});return}}else if(r===3&&a.stateNode.current.memoizedState.isDehydrated){n.blockedOn=a.tag===3?a.stateNode.containerInfo:null;return}}}n.blockedOn=null}function No(n){if(n.blockedOn!==null)return!1;for(var r=n.targetContainers;0<r.length;){var a=gs(n.domEventName,n.eventSystemFlags,r[0],n.nativeEvent);if(a===null){a=n.nativeEvent;var d=new a.constructor(a.type,a);St=d,a.target.dispatchEvent(d),St=null}else return r=_i(a),r!==null&&ps(r),n.blockedOn=a,!1;r.shift()}return!0}function Mu(n,r,a){No(n)&&a.delete(r)}function vg(){ms=!1,Cn!==null&&No(Cn)&&(Cn=null),En!==null&&No(En)&&(En=null),_n!==null&&No(_n)&&(_n=null),pi.forEach(Mu),mi.forEach(Mu)}function gi(n,r){n.blockedOn===r&&(n.blockedOn=null,ms||(ms=!0,o.unstable_scheduleCallback(o.unstable_NormalPriority,vg)))}function yi(n){function r(p){return gi(p,n)}if(0<bo.length){gi(bo[0],n);for(var a=1;a<bo.length;a++){var d=bo[a];d.blockedOn===n&&(d.blockedOn=null)}}for(Cn!==null&&gi(Cn,n),En!==null&&gi(En,n),_n!==null&&gi(_n,n),pi.forEach(r),mi.forEach(r),a=0;a<In.length;a++)d=In[a],d.blockedOn===n&&(d.blockedOn=null);for(;0<In.length&&(a=In[0],a.blockedOn===null);)Du(a),a.blockedOn===null&&In.shift()}var Nr=te.ReactCurrentBatchConfig,So=!0;function wg(n,r,a,d){var p=Oe,g=Nr.transition;Nr.transition=null;try{Oe=1,fs(n,r,a,d)}finally{Oe=p,Nr.transition=g}}function kg(n,r,a,d){var p=Oe,g=Nr.transition;Nr.transition=null;try{Oe=4,fs(n,r,a,d)}finally{Oe=p,Nr.transition=g}}function fs(n,r,a,d){if(So){var p=gs(n,r,a,d);if(p===null)Rs(n,r,d,To,a),Lu(n,d);else if(xg(p,n,r,a,d))d.stopPropagation();else if(Lu(n,d),r&4&&-1<yg.indexOf(n)){for(;p!==null;){var g=_i(p);if(g!==null&&Pu(g),g=gs(n,r,a,d),g===null&&Rs(n,r,d,To,a),g===p)break;p=g}p!==null&&d.stopPropagation()}else Rs(n,r,d,null,a)}}var To=null;function gs(n,r,a,d){if(To=null,n=is(d),n=Xn(n),n!==null)if(r=Qn(n),r===null)n=null;else if(a=r.tag,a===13){if(n=ku(r),n!==null)return n;n=null}else if(a===3){if(r.stateNode.current.memoizedState.isDehydrated)return r.tag===3?r.stateNode.containerInfo:null;n=null}else r!==n&&(n=null);return To=n,null}function Fu(n){switch(n){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"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 1;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"toggle":case"touchmove":case"wheel":case"mouseenter":case"mouseleave":case"pointerenter":case"pointerleave":return 4;case"message":switch(lg()){case cs:return 1;case Cu:return 4;case xo:case cg:return 16;case Eu:return 536870912;default:return 16}default:return 16}}var Pn=null,ys=null,Co=null;function zu(){if(Co)return Co;var n,r=ys,a=r.length,d,p="value"in Pn?Pn.value:Pn.textContent,g=p.length;for(n=0;n<a&&r[n]===p[n];n++);var v=a-n;for(d=1;d<=v&&r[a-d]===p[g-d];d++);return Co=p.slice(n,1<d?1-d:void 0)}function Eo(n){var r=n.keyCode;return"charCode"in n?(n=n.charCode,n===0&&r===13&&(n=13)):n=r,n===10&&(n=13),32<=n||n===13?n:0}function _o(){return!0}function Bu(){return!1}function Tt(n){function r(a,d,p,g,v){this._reactName=a,this._targetInst=p,this.type=d,this.nativeEvent=g,this.target=v,this.currentTarget=null;for(var b in n)n.hasOwnProperty(b)&&(a=n[b],this[b]=a?a(g):g[b]);return this.isDefaultPrevented=(g.defaultPrevented!=null?g.defaultPrevented:g.returnValue===!1)?_o:Bu,this.isPropagationStopped=Bu,this}return j(r.prototype,{preventDefault:function(){this.defaultPrevented=!0;var a=this.nativeEvent;a&&(a.preventDefault?a.preventDefault():typeof a.returnValue!="unknown"&&(a.returnValue=!1),this.isDefaultPrevented=_o)},stopPropagation:function(){var a=this.nativeEvent;a&&(a.stopPropagation?a.stopPropagation():typeof a.cancelBubble!="unknown"&&(a.cancelBubble=!0),this.isPropagationStopped=_o)},persist:function(){},isPersistent:_o}),r}var Sr={eventPhase:0,bubbles:0,cancelable:0,timeStamp:function(n){return n.timeStamp||Date.now()},defaultPrevented:0,isTrusted:0},xs=Tt(Sr),xi=j({},Sr,{view:0,detail:0}),jg=Tt(xi),vs,ws,vi,Io=j({},xi,{screenX:0,screenY:0,clientX:0,clientY:0,pageX:0,pageY:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,getModifierState:js,button:0,buttons:0,relatedTarget:function(n){return n.relatedTarget===void 0?n.fromElement===n.srcElement?n.toElement:n.fromElement:n.relatedTarget},movementX:function(n){return"movementX"in n?n.movementX:(n!==vi&&(vi&&n.type==="mousemove"?(vs=n.screenX-vi.screenX,ws=n.screenY-vi.screenY):ws=vs=0,vi=n),vs)},movementY:function(n){return"movementY"in n?n.movementY:ws}}),Uu=Tt(Io),bg=j({},Io,{dataTransfer:0}),Ng=Tt(bg),Sg=j({},xi,{relatedTarget:0}),ks=Tt(Sg),Tg=j({},Sr,{animationName:0,elapsedTime:0,pseudoElement:0}),Cg=Tt(Tg),Eg=j({},Sr,{clipboardData:function(n){return"clipboardData"in n?n.clipboardData:window.clipboardData}}),_g=Tt(Eg),Ig=j({},Sr,{data:0}),Hu=Tt(Ig),Pg={Esc:"Escape",Spacebar:" ",Left:"ArrowLeft",Up:"ArrowUp",Right:"ArrowRight",Down:"ArrowDown",Del:"Delete",Win:"OS",Menu:"ContextMenu",Apps:"ContextMenu",Scroll:"ScrollLock",MozPrintableKey:"Unidentified"},Ag={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"},Rg={Alt:"altKey",Control:"ctrlKey",Meta:"metaKey",Shift:"shiftKey"};function Og(n){var r=this.nativeEvent;return r.getModifierState?r.getModifierState(n):(n=Rg[n])?!!r[n]:!1}function js(){return Og}var Lg=j({},xi,{key:function(n){if(n.key){var r=Pg[n.key]||n.key;if(r!=="Unidentified")return r}return n.type==="keypress"?(n=Eo(n),n===13?"Enter":String.fromCharCode(n)):n.type==="keydown"||n.type==="keyup"?Ag[n.keyCode]||"Unidentified":""},code:0,location:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,repeat:0,locale:0,getModifierState:js,charCode:function(n){return n.type==="keypress"?Eo(n):0},keyCode:function(n){return n.type==="keydown"||n.type==="keyup"?n.keyCode:0},which:function(n){return n.type==="keypress"?Eo(n):n.type==="keydown"||n.type==="keyup"?n.keyCode:0}}),Dg=Tt(Lg),Mg=j({},Io,{pointerId:0,width:0,height:0,pressure:0,tangentialPressure:0,tiltX:0,tiltY:0,twist:0,pointerType:0,isPrimary:0}),Wu=Tt(Mg),Fg=j({},xi,{touches:0,targetTouches:0,changedTouches:0,altKey:0,metaKey:0,ctrlKey:0,shiftKey:0,getModifierState:js}),zg=Tt(Fg),Bg=j({},Sr,{propertyName:0,elapsedTime:0,pseudoElement:0}),Ug=Tt(Bg),Hg=j({},Io,{deltaX:function(n){return"deltaX"in n?n.deltaX:"wheelDeltaX"in n?-n.wheelDeltaX:0},deltaY:function(n){return"deltaY"in n?n.deltaY:"wheelDeltaY"in n?-n.wheelDeltaY:"wheelDelta"in n?-n.wheelDelta:0},deltaZ:0,deltaMode:0}),Wg=Tt(Hg),Vg=[9,13,27,32],bs=h&&"CompositionEvent"in window,wi=null;h&&"documentMode"in document&&(wi=document.documentMode);var $g=h&&"TextEvent"in window&&!wi,Vu=h&&(!bs||wi&&8<wi&&11>=wi),$u=" ",Gu=!1;function qu(n,r){switch(n){case"keyup":return Vg.indexOf(r.keyCode)!==-1;case"keydown":return r.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function Yu(n){return n=n.detail,typeof n=="object"&&"data"in n?n.data:null}var Tr=!1;function Gg(n,r){switch(n){case"compositionend":return Yu(r);case"keypress":return r.which!==32?null:(Gu=!0,$u);case"textInput":return n=r.data,n===$u&&Gu?null:n;default:return null}}function qg(n,r){if(Tr)return n==="compositionend"||!bs&&qu(n,r)?(n=zu(),Co=ys=Pn=null,Tr=!1,n):null;switch(n){case"paste":return null;case"keypress":if(!(r.ctrlKey||r.altKey||r.metaKey)||r.ctrlKey&&r.altKey){if(r.char&&1<r.char.length)return r.char;if(r.which)return String.fromCharCode(r.which)}return null;case"compositionend":return Vu&&r.locale!=="ko"?null:r.data;default:return null}}var Yg={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 Ju(n){var r=n&&n.nodeName&&n.nodeName.toLowerCase();return r==="input"?!!Yg[n.type]:r==="textarea"}function Ku(n,r,a,d){gu(d),r=Lo(r,"onChange"),0<r.length&&(a=new xs("onChange","change",null,a,d),n.push({event:a,listeners:r}))}var ki=null,ji=null;function Jg(n){md(n,0)}function Po(n){var r=Pr(n);if(uo(r))return n}function Kg(n,r){if(n==="change")return r}var Qu=!1;if(h){var Ns;if(h){var Ss="oninput"in document;if(!Ss){var Xu=document.createElement("div");Xu.setAttribute("oninput","return;"),Ss=typeof Xu.oninput=="function"}Ns=Ss}else Ns=!1;Qu=Ns&&(!document.documentMode||9<document.documentMode)}function Zu(){ki&&(ki.detachEvent("onpropertychange",ed),ji=ki=null)}function ed(n){if(n.propertyName==="value"&&Po(ji)){var r=[];Ku(r,ji,n,is(n)),wu(Jg,r)}}function Qg(n,r,a){n==="focusin"?(Zu(),ki=r,ji=a,ki.attachEvent("onpropertychange",ed)):n==="focusout"&&Zu()}function Xg(n){if(n==="selectionchange"||n==="keyup"||n==="keydown")return Po(ji)}function Zg(n,r){if(n==="click")return Po(r)}function ey(n,r){if(n==="input"||n==="change")return Po(r)}function ty(n,r){return n===r&&(n!==0||1/n===1/r)||n!==n&&r!==r}var $t=typeof Object.is=="function"?Object.is:ty;function bi(n,r){if($t(n,r))return!0;if(typeof n!="object"||n===null||typeof r!="object"||r===null)return!1;var a=Object.keys(n),d=Object.keys(r);if(a.length!==d.length)return!1;for(d=0;d<a.length;d++){var p=a[d];if(!m.call(r,p)||!$t(n[p],r[p]))return!1}return!0}function td(n){for(;n&&n.firstChild;)n=n.firstChild;return n}function nd(n,r){var a=td(n);n=0;for(var d;a;){if(a.nodeType===3){if(d=n+a.textContent.length,n<=r&&d>=r)return{node:a,offset:r-n};n=d}e:{for(;a;){if(a.nextSibling){a=a.nextSibling;break e}a=a.parentNode}a=void 0}a=td(a)}}function rd(n,r){return n&&r?n===r?!0:n&&n.nodeType===3?!1:r&&r.nodeType===3?rd(n,r.parentNode):"contains"in n?n.contains(r):n.compareDocumentPosition?!!(n.compareDocumentPosition(r)&16):!1:!1}function id(){for(var n=window,r=vr();r instanceof n.HTMLIFrameElement;){try{var a=typeof r.contentWindow.location.href=="string"}catch{a=!1}if(a)n=r.contentWindow;else break;r=vr(n.document)}return r}function Ts(n){var r=n&&n.nodeName&&n.nodeName.toLowerCase();return r&&(r==="input"&&(n.type==="text"||n.type==="search"||n.type==="tel"||n.type==="url"||n.type==="password")||r==="textarea"||n.contentEditable==="true")}function ny(n){var r=id(),a=n.focusedElem,d=n.selectionRange;if(r!==a&&a&&a.ownerDocument&&rd(a.ownerDocument.documentElement,a)){if(d!==null&&Ts(a)){if(r=d.start,n=d.end,n===void 0&&(n=r),"selectionStart"in a)a.selectionStart=r,a.selectionEnd=Math.min(n,a.value.length);else if(n=(r=a.ownerDocument||document)&&r.defaultView||window,n.getSelection){n=n.getSelection();var p=a.textContent.length,g=Math.min(d.start,p);d=d.end===void 0?g:Math.min(d.end,p),!n.extend&&g>d&&(p=d,d=g,g=p),p=nd(a,g);var v=nd(a,d);p&&v&&(n.rangeCount!==1||n.anchorNode!==p.node||n.anchorOffset!==p.offset||n.focusNode!==v.node||n.focusOffset!==v.offset)&&(r=r.createRange(),r.setStart(p.node,p.offset),n.removeAllRanges(),g>d?(n.addRange(r),n.extend(v.node,v.offset)):(r.setEnd(v.node,v.offset),n.addRange(r)))}}for(r=[],n=a;n=n.parentNode;)n.nodeType===1&&r.push({element:n,left:n.scrollLeft,top:n.scrollTop});for(typeof a.focus=="function"&&a.focus(),a=0;a<r.length;a++)n=r[a],n.element.scrollLeft=n.left,n.element.scrollTop=n.top}}var ry=h&&"documentMode"in document&&11>=document.documentMode,Cr=null,Cs=null,Ni=null,Es=!1;function od(n,r,a){var d=a.window===a?a.document:a.nodeType===9?a:a.ownerDocument;Es||Cr==null||Cr!==vr(d)||(d=Cr,"selectionStart"in d&&Ts(d)?d={start:d.selectionStart,end:d.selectionEnd}:(d=(d.ownerDocument&&d.ownerDocument.defaultView||window).getSelection(),d={anchorNode:d.anchorNode,anchorOffset:d.anchorOffset,focusNode:d.focusNode,focusOffset:d.focusOffset}),Ni&&bi(Ni,d)||(Ni=d,d=Lo(Cs,"onSelect"),0<d.length&&(r=new xs("onSelect","select",null,r,a),n.push({event:r,listeners:d}),r.target=Cr)))}function Ao(n,r){var a={};return a[n.toLowerCase()]=r.toLowerCase(),a["Webkit"+n]="webkit"+r,a["Moz"+n]="moz"+r,a}var Er={animationend:Ao("Animation","AnimationEnd"),animationiteration:Ao("Animation","AnimationIteration"),animationstart:Ao("Animation","AnimationStart"),transitionend:Ao("Transition","TransitionEnd")},_s={},ad={};h&&(ad=document.createElement("div").style,"AnimationEvent"in window||(delete Er.animationend.animation,delete Er.animationiteration.animation,delete Er.animationstart.animation),"TransitionEvent"in window||delete Er.transitionend.transition);function Ro(n){if(_s[n])return _s[n];if(!Er[n])return n;var r=Er[n],a;for(a in r)if(r.hasOwnProperty(a)&&a in ad)return _s[n]=r[a];return n}var sd=Ro("animationend"),ld=Ro("animationiteration"),cd=Ro("animationstart"),ud=Ro("transitionend"),dd=new Map,hd="abort auxClick 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(" ");function An(n,r){dd.set(n,r),c(r,[n])}for(var Is=0;Is<hd.length;Is++){var Ps=hd[Is],iy=Ps.toLowerCase(),oy=Ps[0].toUpperCase()+Ps.slice(1);An(iy,"on"+oy)}An(sd,"onAnimationEnd"),An(ld,"onAnimationIteration"),An(cd,"onAnimationStart"),An("dblclick","onDoubleClick"),An("focusin","onFocus"),An("focusout","onBlur"),An(ud,"onTransitionEnd"),u("onMouseEnter",["mouseout","mouseover"]),u("onMouseLeave",["mouseout","mouseover"]),u("onPointerEnter",["pointerout","pointerover"]),u("onPointerLeave",["pointerout","pointerover"]),c("onChange","change click focusin focusout input keydown keyup selectionchange".split(" ")),c("onSelect","focusout contextmenu dragend focusin keydown keyup mousedown mouseup selectionchange".split(" ")),c("onBeforeInput",["compositionend","keypress","textInput","paste"]),c("onCompositionEnd","compositionend focusout keydown keypress keyup mousedown".split(" ")),c("onCompositionStart","compositionstart focusout keydown keypress keyup mousedown".split(" ")),c("onCompositionUpdate","compositionupdate focusout keydown keypress keyup mousedown".split(" "));var Si="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(" "),ay=new Set("cancel close invalid load scroll toggle".split(" ").concat(Si));function pd(n,r,a){var d=n.type||"unknown-event";n.currentTarget=a,ig(d,r,void 0,n),n.currentTarget=null}function md(n,r){r=(r&4)!==0;for(var a=0;a<n.length;a++){var d=n[a],p=d.event;d=d.listeners;e:{var g=void 0;if(r)for(var v=d.length-1;0<=v;v--){var b=d[v],E=b.instance,U=b.currentTarget;if(b=b.listener,E!==g&&p.isPropagationStopped())break e;pd(p,b,U),g=E}else for(v=0;v<d.length;v++){if(b=d[v],E=b.instance,U=b.currentTarget,b=b.listener,E!==g&&p.isPropagationStopped())break e;pd(p,b,U),g=E}}}if(yo)throw n=ls,yo=!1,ls=null,n}function Fe(n,r){var a=r[zs];a===void 0&&(a=r[zs]=new Set);var d=n+"__bubble";a.has(d)||(fd(r,n,2,!1),a.add(d))}function As(n,r,a){var d=0;r&&(d|=4),fd(a,n,d,r)}var Oo="_reactListening"+Math.random().toString(36).slice(2);function Ti(n){if(!n[Oo]){n[Oo]=!0,s.forEach(function(a){a!=="selectionchange"&&(ay.has(a)||As(a,!1,n),As(a,!0,n))});var r=n.nodeType===9?n:n.ownerDocument;r===null||r[Oo]||(r[Oo]=!0,As("selectionchange",!1,r))}}function fd(n,r,a,d){switch(Fu(r)){case 1:var p=wg;break;case 4:p=kg;break;default:p=fs}a=p.bind(null,r,a,n),p=void 0,!ss||r!=="touchstart"&&r!=="touchmove"&&r!=="wheel"||(p=!0),d?p!==void 0?n.addEventListener(r,a,{capture:!0,passive:p}):n.addEventListener(r,a,!0):p!==void 0?n.addEventListener(r,a,{passive:p}):n.addEventListener(r,a,!1)}function Rs(n,r,a,d,p){var g=d;if((r&1)===0&&(r&2)===0&&d!==null)e:for(;;){if(d===null)return;var v=d.tag;if(v===3||v===4){var b=d.stateNode.containerInfo;if(b===p||b.nodeType===8&&b.parentNode===p)break;if(v===4)for(v=d.return;v!==null;){var E=v.tag;if((E===3||E===4)&&(E=v.stateNode.containerInfo,E===p||E.nodeType===8&&E.parentNode===p))return;v=v.return}for(;b!==null;){if(v=Xn(b),v===null)return;if(E=v.tag,E===5||E===6){d=g=v;continue e}b=b.parentNode}}d=d.return}wu(function(){var U=g,$=is(a),G=[];e:{var V=dd.get(n);if(V!==void 0){var re=xs,ae=n;switch(n){case"keypress":if(Eo(a)===0)break e;case"keydown":case"keyup":re=Dg;break;case"focusin":ae="focus",re=ks;break;case"focusout":ae="blur",re=ks;break;case"beforeblur":case"afterblur":re=ks;break;case"click":if(a.button===2)break e;case"auxclick":case"dblclick":case"mousedown":case"mousemove":case"mouseup":case"mouseout":case"mouseover":case"contextmenu":re=Uu;break;case"drag":case"dragend":case"dragenter":case"dragexit":case"dragleave":case"dragover":case"dragstart":case"drop":re=Ng;break;case"touchcancel":case"touchend":case"touchmove":case"touchstart":re=zg;break;case sd:case ld:case cd:re=Cg;break;case ud:re=Ug;break;case"scroll":re=jg;break;case"wheel":re=Wg;break;case"copy":case"cut":case"paste":re=_g;break;case"gotpointercapture":case"lostpointercapture":case"pointercancel":case"pointerdown":case"pointermove":case"pointerout":case"pointerover":case"pointerup":re=Wu}var se=(r&4)!==0,qe=!se&&n==="scroll",O=se?V!==null?V+"Capture":null:V;se=[];for(var P=U,D;P!==null;){D=P;var K=D.stateNode;if(D.tag===5&&K!==null&&(D=K,O!==null&&(K=li(P,O),K!=null&&se.push(Ci(P,K,D)))),qe)break;P=P.return}0<se.length&&(V=new re(V,ae,null,a,$),G.push({event:V,listeners:se}))}}if((r&7)===0){e:{if(V=n==="mouseover"||n==="pointerover",re=n==="mouseout"||n==="pointerout",V&&a!==St&&(ae=a.relatedTarget||a.fromElement)&&(Xn(ae)||ae[pn]))break e;if((re||V)&&(V=$.window===$?$:(V=$.ownerDocument)?V.defaultView||V.parentWindow:window,re?(ae=a.relatedTarget||a.toElement,re=U,ae=ae?Xn(ae):null,ae!==null&&(qe=Qn(ae),ae!==qe||ae.tag!==5&&ae.tag!==6)&&(ae=null)):(re=null,ae=U),re!==ae)){if(se=Uu,K="onMouseLeave",O="onMouseEnter",P="mouse",(n==="pointerout"||n==="pointerover")&&(se=Wu,K="onPointerLeave",O="onPointerEnter",P="pointer"),qe=re==null?V:Pr(re),D=ae==null?V:Pr(ae),V=new se(K,P+"leave",re,a,$),V.target=qe,V.relatedTarget=D,K=null,Xn($)===U&&(se=new se(O,P+"enter",ae,a,$),se.target=D,se.relatedTarget=qe,K=se),qe=K,re&&ae)t:{for(se=re,O=ae,P=0,D=se;D;D=_r(D))P++;for(D=0,K=O;K;K=_r(K))D++;for(;0<P-D;)se=_r(se),P--;for(;0<D-P;)O=_r(O),D--;for(;P--;){if(se===O||O!==null&&se===O.alternate)break t;se=_r(se),O=_r(O)}se=null}else se=null;re!==null&&gd(G,V,re,se,!1),ae!==null&&qe!==null&&gd(G,qe,ae,se,!0)}}e:{if(V=U?Pr(U):window,re=V.nodeName&&V.nodeName.toLowerCase(),re==="select"||re==="input"&&V.type==="file")var le=Kg;else if(Ju(V))if(Qu)le=ey;else{le=Xg;var de=Qg}else(re=V.nodeName)&&re.toLowerCase()==="input"&&(V.type==="checkbox"||V.type==="radio")&&(le=Zg);if(le&&(le=le(n,U))){Ku(G,le,a,$);break e}de&&de(n,V,U),n==="focusout"&&(de=V._wrapperState)&&de.controlled&&V.type==="number"&&kr(V,"number",V.value)}switch(de=U?Pr(U):window,n){case"focusin":(Ju(de)||de.contentEditable==="true")&&(Cr=de,Cs=U,Ni=null);break;case"focusout":Ni=Cs=Cr=null;break;case"mousedown":Es=!0;break;case"contextmenu":case"mouseup":case"dragend":Es=!1,od(G,a,$);break;case"selectionchange":if(ry)break;case"keydown":case"keyup":od(G,a,$)}var he;if(bs)e:{switch(n){case"compositionstart":var ve="onCompositionStart";break e;case"compositionend":ve="onCompositionEnd";break e;case"compositionupdate":ve="onCompositionUpdate";break e}ve=void 0}else Tr?qu(n,a)&&(ve="onCompositionEnd"):n==="keydown"&&a.keyCode===229&&(ve="onCompositionStart");ve&&(Vu&&a.locale!=="ko"&&(Tr||ve!=="onCompositionStart"?ve==="onCompositionEnd"&&Tr&&(he=zu()):(Pn=$,ys="value"in Pn?Pn.value:Pn.textContent,Tr=!0)),de=Lo(U,ve),0<de.length&&(ve=new Hu(ve,n,null,a,$),G.push({event:ve,listeners:de}),he?ve.data=he:(he=Yu(a),he!==null&&(ve.data=he)))),(he=$g?Gg(n,a):qg(n,a))&&(U=Lo(U,"onBeforeInput"),0<U.length&&($=new Hu("onBeforeInput","beforeinput",null,a,$),G.push({event:$,listeners:U}),$.data=he))}md(G,r)})}function Ci(n,r,a){return{instance:n,listener:r,currentTarget:a}}function Lo(n,r){for(var a=r+"Capture",d=[];n!==null;){var p=n,g=p.stateNode;p.tag===5&&g!==null&&(p=g,g=li(n,a),g!=null&&d.unshift(Ci(n,g,p)),g=li(n,r),g!=null&&d.push(Ci(n,g,p))),n=n.return}return d}function _r(n){if(n===null)return null;do n=n.return;while(n&&n.tag!==5);return n||null}function gd(n,r,a,d,p){for(var g=r._reactName,v=[];a!==null&&a!==d;){var b=a,E=b.alternate,U=b.stateNode;if(E!==null&&E===d)break;b.tag===5&&U!==null&&(b=U,p?(E=li(a,g),E!=null&&v.unshift(Ci(a,E,b))):p||(E=li(a,g),E!=null&&v.push(Ci(a,E,b)))),a=a.return}v.length!==0&&n.push({event:r,listeners:v})}var sy=/\r\n?/g,ly=/\u0000|\uFFFD/g;function yd(n){return(typeof n=="string"?n:""+n).replace(sy,`
7`).replace(ly,"")}function Do(n,r,a){if(r=yd(r),yd(n)!==r&&a)throw Error(i(425))}function Mo(){}var Os=null,Ls=null;function Ds(n,r){return n==="textarea"||n==="noscript"||typeof r.children=="string"||typeof r.children=="number"||typeof r.dangerouslySetInnerHTML=="object"&&r.dangerouslySetInnerHTML!==null&&r.dangerouslySetInnerHTML.__html!=null}var Ms=typeof setTimeout=="function"?setTimeout:void 0,cy=typeof clearTimeout=="function"?clearTimeout:void 0,xd=typeof Promise=="function"?Promise:void 0,uy=typeof queueMicrotask=="function"?queueMicrotask:typeof xd<"u"?function(n){return xd.resolve(null).then(n).catch(dy)}:Ms;function dy(n){setTimeout(function(){throw n})}function Fs(n,r){var a=r,d=0;do{var p=a.nextSibling;if(n.removeChild(a),p&&p.nodeType===8)if(a=p.data,a==="/$"){if(d===0){n.removeChild(p),yi(r);return}d--}else a!=="$"&&a!=="$?"&&a!=="$!"||d++;a=p}while(a);yi(r)}function Rn(n){for(;n!=null;n=n.nextSibling){var r=n.nodeType;if(r===1||r===3)break;if(r===8){if(r=n.data,r==="$"||r==="$!"||r==="$?")break;if(r==="/$")return null}}return n}function vd(n){n=n.previousSibling;for(var r=0;n;){if(n.nodeType===8){var a=n.data;if(a==="$"||a==="$!"||a==="$?"){if(r===0)return n;r--}else a==="/$"&&r++}n=n.previousSibling}return null}var Ir=Math.random().toString(36).slice(2),nn="__reactFiber$"+Ir,Ei="__reactProps$"+Ir,pn="__reactContainer$"+Ir,zs="__reactEvents$"+Ir,hy="__reactListeners$"+Ir,py="__reactHandles$"+Ir;function Xn(n){var r=n[nn];if(r)return r;for(var a=n.parentNode;a;){if(r=a[pn]||a[nn]){if(a=r.alternate,r.child!==null||a!==null&&a.child!==null)for(n=vd(n);n!==null;){if(a=n[nn])return a;n=vd(n)}return r}n=a,a=n.parentNode}return null}function _i(n){return n=n[nn]||n[pn],!n||n.tag!==5&&n.tag!==6&&n.tag!==13&&n.tag!==3?null:n}function Pr(n){if(n.tag===5||n.tag===6)return n.stateNode;throw Error(i(33))}function Fo(n){return n[Ei]||null}var Bs=[],Ar=-1;function On(n){return{current:n}}function ze(n){0>Ar||(n.current=Bs[Ar],Bs[Ar]=null,Ar--)}function Me(n,r){Ar++,Bs[Ar]=n.current,n.current=r}var Ln={},at=On(Ln),yt=On(!1),Zn=Ln;function Rr(n,r){var a=n.type.contextTypes;if(!a)return Ln;var d=n.stateNode;
vendor: 5,393 bytes, line 7
7if(d&&d.__reactInternalMemoizedUnmaskedChildContext===r)return d.__reactInternalMemoizedMaskedChildContext;var p={},g;for(g in a)p[g]=r[g];return d&&(n=n.stateNode,n.__reactInternalMemoizedUnmaskedChildContext=r,n.__reactInternalMemoizedMaskedChildContext=p),p}function xt(n){return n=n.childContextTypes,n!=null}function zo(){ze(yt),ze(at)}function wd(n,r,a){if(at.current!==Ln)throw Error(i(168));Me(at,r),Me(yt,a)}function kd(n,r,a){var d=n.stateNode;if(r=r.childContextTypes,typeof d.getChildContext!="function")return a;d=d.getChildContext();for(var p in d)if(!(p in r))throw Error(i(108,Pe(n)||"Unknown",p));return j({},a,d)}function Bo(n){return n=(n=n.stateNode)&&n.__reactInternalMemoizedMergedChildContext||Ln,Zn=at.current,Me(at,n),Me(yt,yt.current),!0}function jd(n,r,a){var d=n.stateNode;if(!d)throw Error(i(169));a?(n=kd(n,r,Zn),d.__reactInternalMemoizedMergedChildContext=n,ze(yt),ze(at),Me(at,n)):ze(yt),Me(yt,a)}var mn=null,Uo=!1,Us=!1;function bd(n){mn===null?mn=[n]:mn.push(n)}function my(n){Uo=!0,bd(n)}function Dn(){if(!Us&&mn!==null){Us=!0;var n=0,r=Oe;try{var a=mn;for(Oe=1;n<a.length;n++){var d=a[n];do d=d(!0);while(d!==null)}mn=null,Uo=!1}catch(p){throw mn!==null&&(mn=mn.slice(n+1)),Su(cs,Dn),p}finally{Oe=r,Us=!1}}return null}var Or=[],Lr=0,Ho=null,Wo=0,Ot=[],Lt=0,er=null,fn=1,gn="";function tr(n,r){Or[Lr++]=Wo,Or[Lr++]=Ho,Ho=n,Wo=r}function Nd(n,r,a){Ot[Lt++]=fn,Ot[Lt++]=gn,Ot[Lt++]=er,er=n;var d=fn;n=gn;var p=32-Vt(d)-1;d&=~(1<<p),a+=1;var g=32-Vt(r)+p;if(30<g){var v=p-p%5;g=(d&(1<<v)-1).toString(32),d>>=v,p-=v,fn=1<<32-Vt(r)+p|a<<p|d,gn=g+n}else fn=1<<g|a<<p|d,gn=n}function Hs(n){n.return!==null&&(tr(n,1),Nd(n,1,0))}function Ws(n){for(;n===Ho;)Ho=Or[--Lr],Or[Lr]=null,Wo=Or[--Lr],Or[Lr]=null;for(;n===er;)er=Ot[--Lt],Ot[Lt]=null,gn=Ot[--Lt],Ot[Lt]=null,fn=Ot[--Lt],Ot[Lt]=null}var Ct=null,Et=null,Be=!1,Gt=null;function Sd(n,r){var a=zt(5,null,null,0);a.elementType="DELETED",a.stateNode=r,a.return=n,r=n.deletions,r===null?(n.deletions=[a],n.flags|=16):r.push(a)}function Td(n,r){switch(n.tag){case 5:var a=n.type;return r=r.nodeType!==1||a.toLowerCase()!==r.nodeName.toLowerCase()?null:r,r!==null?(n.stateNode=r,Ct=n,Et=Rn(r.firstChild),!0):!1;case 6:return r=n.pendingProps===""||r.nodeType!==3?null:r,r!==null?(n.stateNode=r,Ct=n,Et=null,!0):!1;case 13:return r=r.nodeType!==8?null:r,r!==null?(a=er!==null?{id:fn,overflow:gn}:null,n.memoizedState={dehydrated:r,treeContext:a,retryLane:1073741824},a=zt(18,null,null,0),a.stateNode=r,a.return=n,n.child=a,Ct=n,Et=null,!0):!1;default:return!1}}function Vs(n){return(n.mode&1)!==0&&(n.flags&128)===0}function $s(n){if(Be){var r=Et;if(r){var a=r;if(!Td(n,r)){if(Vs(n))throw Error(i(418));r=Rn(a.nextSibling);var d=Ct;r&&Td(n,r)?Sd(d,a):(n.flags=n.flags&-4097|2,Be=!1,Ct=n)}}else{if(Vs(n))throw Error(i(418));n.flags=n.flags&-4097|2,Be=!1,Ct=n}}}function Cd(n){for(n=n.return;n!==null&&n.tag!==5&&n.tag!==3&&n.tag!==13;)n=n.return;Ct=n}function Vo(n){if(n!==Ct)return!1;if(!Be)return Cd(n),Be=!0,!1;var r;if((r=n.tag!==3)&&!(r=n.tag!==5)&&(r=n.type,r=r!=="head"&&r!=="body"&&!Ds(n.type,n.memoizedProps)),r&&(r=Et)){if(Vs(n))throw Ed(),Error(i(418));for(;r;)Sd(n,r),r=Rn(r.nextSibling)}if(Cd(n),n.tag===13){if(n=n.memoizedState,n=n!==null?n.dehydrated:null,!n)throw Error(i(317));e:{for(n=n.nextSibling,r=0;n;){if(n.nodeType===8){var a=n.data;if(a==="/$"){if(r===0){Et=Rn(n.nextSibling);break e}r--}else a!=="$"&&a!=="$!"&&a!=="$?"||r++}n=n.nextSibling}Et=null}}else Et=Ct?Rn(n.stateNode.nextSibling):null;return!0}function Ed(){for(var n=Et;n;)n=Rn(n.nextSibling)}function Dr(){Et=Ct=null,Be=!1}function Gs(n){Gt===null?Gt=[n]:Gt.push(n)}var fy=te.ReactCurrentBatchConfig;function Ii(n,r,a){if(n=a.ref,n!==null&&typeof n!="function"&&typeof n!="object"){if(a._owner){if(a=a._owner,a){if(a.tag!==1)throw Error(i(309));var d=a.stateNode}if(!d)throw Error(i(147,n));var p=d,g=""+n;return r!==null&&r.ref!==null&&typeof r.ref=="function"&&r.ref._stringRef===g?r.ref:(r=function(v){var b=p.refs;v===null?delete b[g]:b[g]=v},r._stringRef=g,r)}if(typeof n!="string")throw Error(i(284));if(!a._owner)throw Error(i(290,n))}return n}function $o(n,r){throw n=Object.prototype.toString.call(r),Error(i(31,n==="[object Object]"?"object with keys {"+Object.keys(r).join(", ")+"}":n))}function _d(n){var r=n._init;return r(n._payload)}function Id(n){function r(O,P){if(n){var D=O.deletions;D===null?(O.deletions=[P],O.flags|=16):D.push(P)}}function a(O,P){if(!n)return null;for(;P!==null;)r(O,P),P=P.sibling;return null}function d(O,P){for(O=new Map;P!==null;)P.key!==null?O.set(P.key,P):O.set(P.index,P),P=P.sibling;return O}function p(O,P){return O=Vn(O,P),O.index=0,O.sibling=null,O}function g(O,P,D){return O.index=D,n?(D=O.alternate,D!==null?(D=D.index,D<P?(O.flags|=2,P):D):(O.flags|=2,P)):(O.flags|=1048576,P)}function v(O){return n&&O.alternate===null&&(O.flags|=2),O}function b(O,P,D,K){return P===null||P.tag!==6?(P=Ml(D,O.mode,K),P.return=O,P):(P=p(P,D),P.return=O,P)}function E(O,P,D,K){var le=D.type;return le===ne?$(O,P,D.props.children,K,D.key):P!==null&&(P.elementType===le||typeof le=="object"&&le!==null&&le.$$typeof===ke&&_d(le)===P.type)?(K=p(P,D.props),K.ref=Ii(O,P,D),K.return=O,K):(K=fa(D.type,D.key,D.props,null,O.mode,K),K.ref=Ii(O,P,D),K.return=O,K)}function U(O,P,D,K){return P===null||P.tag!==4||P.stateNode.containerInfo!==D.containerInfo||P.stateNode.implementation!==D.implementation?(P=Fl(
vendor: 4,070 bytes, line 7
7D,O.mode,K),P.return=O,P):(P=p(P,D.children||[]),P.return=O,P)}function $(O,P,D,K,le){return P===null||P.tag!==7?(P=cr(D,O.mode,K,le),P.return=O,P):(P=p(P,D),P.return=O,P)}function G(O,P,D){if(typeof P=="string"&&P!==""||typeof P=="number")return P=Ml(""+P,O.mode,D),P.return=O,P;if(typeof P=="object"&&P!==null){switch(P.$$typeof){case Y:return D=fa(P.type,P.key,P.props,null,O.mode,D),D.ref=Ii(O,null,P),D.return=O,D;case F:return P=Fl(P,O.mode,D),P.return=O,P;case ke:var K=P._init;return G(O,K(P._payload),D)}if(Nn(P)||ce(P))return P=cr(P,O.mode,D,null),P.return=O,P;$o(O,P)}return null}function V(O,P,D,K){var le=P!==null?P.key:null;if(typeof D=="string"&&D!==""||typeof D=="number")return le!==null?null:b(O,P,""+D,K);if(typeof D=="object"&&D!==null){switch(D.$$typeof){case Y:return D.key===le?E(O,P,D,K):null;case F:return D.key===le?U(O,P,D,K):null;case ke:return le=D._init,V(O,P,le(D._payload),K)}if(Nn(D)||ce(D))return le!==null?null:$(O,P,D,K,null);$o(O,D)}return null}function re(O,P,D,K,le){if(typeof K=="string"&&K!==""||typeof K=="number")return O=O.get(D)||null,b(P,O,""+K,le);if(typeof K=="object"&&K!==null){switch(K.$$typeof){case Y:return O=O.get(K.key===null?D:K.key)||null,E(P,O,K,le);case F:return O=O.get(K.key===null?D:K.key)||null,U(P,O,K,le);case ke:var de=K._init;return re(O,P,D,de(K._payload),le)}if(Nn(K)||ce(K))return O=O.get(D)||null,$(P,O,K,le,null);$o(P,K)}return null}function ae(O,P,D,K){for(var le=null,de=null,he=P,ve=P=0,tt=null;he!==null&&ve<D.length;ve++){he.index>ve?(tt=he,he=null):tt=he.sibling;var Ae=V(O,he,D[ve],K);if(Ae===null){he===null&&(he=tt);break}n&&he&&Ae.alternate===null&&r(O,he),P=g(Ae,P,ve),de===null?le=Ae:de.sibling=Ae,de=Ae,he=tt}if(ve===D.length)return a(O,he),Be&&tr(O,ve),le;if(he===null){for(;ve<D.length;ve++)he=G(O,D[ve],K),he!==null&&(P=g(he,P,ve),de===null?le=he:de.sibling=he,de=he);return Be&&tr(O,ve),le}for(he=d(O,he);ve<D.length;ve++)tt=re(he,O,ve,D[ve],K),tt!==null&&(n&&tt.alternate!==null&&he.delete(tt.key===null?ve:tt.key),P=g(tt,P,ve),de===null?le=tt:de.sibling=tt,de=tt);return n&&he.forEach(function($n){return r(O,$n)}),Be&&tr(O,ve),le}function se(O,P,D,K){var le=ce(D);if(typeof le!="function")throw Error(i(150));if(D=le.call(D),D==null)throw Error(i(151));for(var de=le=null,he=P,ve=P=0,tt=null,Ae=D.next();he!==null&&!Ae.done;ve++,Ae=D.next()){he.index>ve?(tt=he,he=null):tt=he.sibling;var $n=V(O,he,Ae.value,K);if($n===null){he===null&&(he=tt);break}n&&he&&$n.alternate===null&&r(O,he),P=g($n,P,ve),de===null?le=$n:de.sibling=$n,de=$n,he=tt}if(Ae.done)return a(O,he),Be&&tr(O,ve),le;if(he===null){for(;!Ae.done;ve++,Ae=D.next())Ae=G(O,Ae.value,K),Ae!==null&&(P=g(Ae,P,ve),de===null?le=Ae:de.sibling=Ae,de=Ae);return Be&&tr(O,ve),le}for(he=d(O,he);!Ae.done;ve++,Ae=D.next())Ae=re(he,O,ve,Ae.value,K),Ae!==null&&(n&&Ae.alternate!==null&&he.delete(Ae.key===null?ve:Ae.key),P=g(Ae,P,ve),de===null?le=Ae:de.sibling=Ae,de=Ae);return n&&he.forEach(function(Yy){return r(O,Yy)}),Be&&tr(O,ve),le}function qe(O,P,D,K){if(typeof D=="object"&&D!==null&&D.type===ne&&D.key===null&&(D=D.props.children),typeof D=="object"&&D!==null){switch(D.$$typeof){case Y:e:{for(var le=D.key,de=P;de!==null;){if(de.key===le){if(le=D.type,le===ne){if(de.tag===7){a(O,de.sibling),P=p(de,D.props.children),P.return=O,O=P;break e}}else if(de.elementType===le||typeof le=="object"&&le!==null&&le.$$typeof===ke&&_d(le)===de.type){a(O,de.sibling),P=p(de,D.props),P.ref=Ii(O,de,D),P.return=O,O=P;break e}a(O,de);break}else r(O,de);de=de.sibling}D.type===ne?(P=cr(D.props.children,O.mode,K,D.key),P.return=O,O=P):(K=fa(D.type,D.key,D.props,null,O.mode,K),K.ref=Ii(O,P,D),K.return=O,O=K)}return v(O);case F:e:{for(de=D.key;P!==null;){if(P.key===de)if(P.tag===4&&P.stateNode.containerInfo===D.containerInfo&&P.stateNode.implementation===D.implementation){a(O,P.sibling),P=p(P,D.children||[]),P.return=O,O=P;break e}else{a(O,P);break}else r(O,P);P=P.sibling}P=Fl(D,O.mode,K),P.return=O,O=P}return v(O);case ke:return de=D._init,qe(O,P,de(D._payload),K)}if(Nn(D))return ae(O,P,D,K);if(ce(D))return se(O,P,D,K);$o(O,D)}
vendor: 19,730 bytes, lines 7-9
7return typeof D=="string"&&D!==""||typeof D=="number"?(D=""+D,P!==null&&P.tag===6?(a(O,P.sibling),P=p(P,D),P.return=O,O=P):(a(O,P),P=Ml(D,O.mode,K),P.return=O,O=P),v(O)):a(O,P)}return qe}var Mr=Id(!0),Pd=Id(!1),Go=On(null),qo=null,Fr=null,qs=null;function Ys(){qs=Fr=qo=null}function Js(n){var r=Go.current;ze(Go),n._currentValue=r}function Ks(n,r,a){for(;n!==null;){var d=n.alternate;if((n.childLanes&r)!==r?(n.childLanes|=r,d!==null&&(d.childLanes|=r)):d!==null&&(d.childLanes&r)!==r&&(d.childLanes|=r),n===a)break;n=n.return}}function zr(n,r){qo=n,qs=Fr=null,n=n.dependencies,n!==null&&n.firstContext!==null&&((n.lanes&r)!==0&&(vt=!0),n.firstContext=null)}function Dt(n){var r=n._currentValue;if(qs!==n)if(n={context:n,memoizedValue:r,next:null},Fr===null){if(qo===null)throw Error(i(308));Fr=n,qo.dependencies={lanes:0,firstContext:n}}else Fr=Fr.next=n;return r}var nr=null;function Qs(n){nr===null?nr=[n]:nr.push(n)}function Ad(n,r,a,d){var p=r.interleaved;return p===null?(a.next=a,Qs(r)):(a.next=p.next,p.next=a),r.interleaved=a,yn(n,d)}function yn(n,r){n.lanes|=r;var a=n.alternate;for(a!==null&&(a.lanes|=r),a=n,n=n.return;n!==null;)n.childLanes|=r,a=n.alternate,a!==null&&(a.childLanes|=r),a=n,n=n.return;return a.tag===3?a.stateNode:null}var Mn=!1;function Xs(n){n.updateQueue={baseState:n.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,interleaved:null,lanes:0},effects:null}}function Rd(n,r){n=n.updateQueue,r.updateQueue===n&&(r.updateQueue={baseState:n.baseState,firstBaseUpdate:n.firstBaseUpdate,lastBaseUpdate:n.lastBaseUpdate,shared:n.shared,effects:n.effects})}function xn(n,r){return{eventTime:n,lane:r,tag:0,payload:null,callback:null,next:null}}function Fn(n,r,a){var d=n.updateQueue;if(d===null)return null;if(d=d.shared,(Ie&2)!==0){var p=d.pending;return p===null?r.next=r:(r.next=p.next,p.next=r),d.pending=r,yn(n,a)}return p=d.interleaved,p===null?(r.next=r,Qs(d)):(r.next=p.next,p.next=r),d.interleaved=r,yn(n,a)}function Yo(n,r,a){if(r=r.updateQueue,r!==null&&(r=r.shared,(a&4194240)!==0)){var d=r.lanes;d&=n.pendingLanes,a|=d,r.lanes=a,hs(n,a)}}function Od(n,r){var a=n.updateQueue,d=n.alternate;if(d!==null&&(d=d.updateQueue,a===d)){var p=null,g=null;if(a=a.firstBaseUpdate,a!==null){do{var v={eventTime:a.eventTime,lane:a.lane,tag:a.tag,payload:a.payload,callback:a.callback,next:null};g===null?p=g=v:g=g.next=v,a=a.next}while(a!==null);g===null?p=g=r:g=g.next=r}else p=g=r;a={baseState:d.baseState,firstBaseUpdate:p,lastBaseUpdate:g,shared:d.shared,effects:d.effects},n.updateQueue=a;return}n=a.lastBaseUpdate,n===null?a.firstBaseUpdate=r:n.next=r,a.lastBaseUpdate=r}function Jo(n,r,a,d){var p=n.updateQueue;Mn=!1;var g=p.firstBaseUpdate,v=p.lastBaseUpdate,b=p.shared.pending;if(b!==null){p.shared.pending=null;var E=b,U=E.next;E.next=null,v===null?g=U:v.next=U,v=E;var $=n.alternate;$!==null&&($=$.updateQueue,b=$.lastBaseUpdate,b!==v&&(b===null?$.firstBaseUpdate=U:b.next=U,$.lastBaseUpdate=E))}if(g!==null){var G=p.baseState;v=0,$=U=E=null,b=g;do{var V=b.lane,re=b.eventTime;if((d&V)===V){$!==null&&($=$.next={eventTime:re,lane:0,tag:b.tag,payload:b.payload,callback:b.callback,next:null});e:{var ae=n,se=b;switch(V=r,re=a,se.tag){case 1:if(ae=se.payload,typeof ae=="function"){G=ae.call(re,G,V);break e}G=ae;break e;case 3:ae.flags=ae.flags&-65537|128;case 0:if(ae=se.payload,V=typeof ae=="function"?ae.call(re,G,V):ae,V==null)break e;G=j({},G,V);break e;case 2:Mn=!0}}b.callback!==null&&b.lane!==0&&(n.flags|=64,V=p.effects,V===null?p.effects=[b]:V.push(b))}else re={eventTime:re,lane:V,tag:b.tag,payload:b.payload,callback:b.callback,next:null},$===null?(U=$=re,E=G):$=$.next=re,v|=V;if(b=b.next,b===null){if(b=p.shared.pending,b===null)break;V=b,b=V.next,V.next=null,p.lastBaseUpdate=V,p.shared.pending=null}}while(!0);if($===null&&(E=G),p.baseState=E,p.firstBaseUpdate=U,p.lastBaseUpdate=$,r=p.shared.interleaved,r!==null){p=r;do v|=p.lane,p=p.next;while(p!==r)}else g===null&&(p.shared.lanes=0);or|=v,n.lanes=v,n.memoizedState=G}}function Ld(n,r,a){if(n=r.effects,r.effects=null,n!==null)for(r=0;r<n.length;r++){var d=n[r],p=d.callback;if(p!==null){if(d.callback=null,d=a,typeof p!="function")throw Error(i(191,p));p.call(d)}}}var Pi={},rn=On(Pi),Ai=On(Pi),Ri=On(Pi);function rr(n){if(n===Pi)throw Error(i(174));return n}function Zs(n,r){switch(Me(Ri,r),Me(Ai,n),Me(rn,Pi),n=r.nodeType,n){case 9:case 11:r=(r=r.documentElement)?r.namespaceURI:X(null,"");break;default:n=n===8?r.parentNode:r,r=n.namespaceURI||null,n=n.tagName,r=X(r,n)}ze(rn),Me(rn,r)}function Br(){ze(rn),ze(Ai),ze(Ri)}function Dd(n){rr(Ri.current);var r=rr(rn.current),a=X(r,n.type);r!==a&&(Me(Ai,n),Me(rn,a))}function el(n){Ai.current===n&&(ze(rn),ze(Ai))}var He=On(0);function Ko(n){for(var r=n;r!==null;){if(r.tag===13){var a=r.memoizedState;if(a!==null&&(a=a.dehydrated,a===null||a.data==="$?"||a.data==="$!"))return r}else if(r.tag===19&&r.memoizedProps.revealOrder!==void 0){if((r.flags&128)!==0)return r}else if(r.child!==null){r.child.return=r,r=r.child;continue}if(r===n)break;for(;r.sibling===null;){if(r.return===null||r.return===n)return null;r=r.return}r.sibling.return=r.return,r=r.sibling}return null}var tl=[];function nl(){for(var n=0;n<tl.length;n++)tl[n]._workInProgressVersionPrimary=null;tl.length=0}var Qo=te.ReactCurrentDispatcher,rl=te.ReactCurrentBatchConfig,ir=0,We=null,Qe=null,Ze=null,Xo=!1,Oi=!1,Li=0,gy=0;function st(){throw Error(i(321))}function il(n,r){if(r===null)return!1;for(var a=0;a<r.length&&a<n.length;a++)if(!$t(n[a],r[a]))return!1;return!0}function ol(n,r,a,d,p,g){if(ir=g,We=r,r.memoizedState=null,r.updateQueue=null,r.lanes=0,Qo.current=n===null||n.memoizedState===null?wy:ky,n=a(d,p),Oi){g=0;do{if(Oi=!1,Li=0,25<=g)throw Error(i(301));g+=1,Ze=Qe=null,r.updateQueue=null,Qo.current=jy,n=a(d,p)}while(Oi)}if(Qo.current=ta,r=Qe!==null&&Qe.next!==null,ir=0,Ze=Qe=We=null,Xo=!1,r)throw Error(i(300));return n}function al(){var n=Li!==0;return Li=0,n}function on(){var n={memoizedState:null,baseState:null,baseQueue:null,queue:null,next:null};return Ze===null?We.memoizedState=Ze=n:Ze=Ze.next=n,Ze}function Mt(){if(Qe===null){var n=We.alternate;n=n!==null?n.memoizedState:null}else n=Qe.next;var r=Ze===null?We.memoizedState:Ze.next;if(r!==null)Ze=r,Qe=n;else{if(n===null)throw Error(i(310));Qe=n,n={memoizedState:Qe.memoizedState,baseState:Qe.baseState,baseQueue:Qe.baseQueue,queue:Qe.queue,next:null},Ze===null?We.memoizedState=Ze=n:Ze=Ze.next=n}return Ze}function Di(n,r){return typeof r=="function"?r(n):r}function sl(n){var r=Mt(),a=r.queue;if(a===null)throw Error(i(311));a.lastRenderedReducer=n;var d=Qe,p=d.baseQueue,g=a.pending;if(g!==null){if(p!==null){var v=p.next;p.next=g.next,g.next=v}d.baseQueue=p=g,a.pending=null}if(p!==null){g=p.next,d=d.baseState;var b=v=null,E=null,U=g;do{var $=U.lane;if((ir&$)===$)E!==null&&(E=E.next={lane:0,action:U.action,hasEagerState:U.hasEagerState,eagerState:U.eagerState,next:null}),d=U.hasEagerState?U.eagerState:n(d,U.action);else{var G={lane:$,action:U.action,hasEagerState:U.hasEagerState,eagerState:U.eagerState,next:null};E===null?(b=E=G,v=d):E=E.next=G,We.lanes|=$,or|=$}U=U.next}while(U!==null&&U!==g);E===null?v=d:E.next=b,$t(d,r.memoizedState)||(vt=!0),r.memoizedState=d,r.baseState=v,r.baseQueue=E,a.lastRenderedState=d}if(n=a.interleaved,n!==null){p=n;do g=p.lane,We.lanes|=g,or|=g,p=p.next;while(p!==n)}else p===null&&(a.lanes=0);return[r.memoizedState,a.dispatch]}function ll(n){var r=Mt(),a=r.queue;if(a===null)throw Error(i(311));a.lastRenderedReducer=n;var d=a.dispatch,p=a.pending,g=r.memoizedState;if(p!==null){a.pending=null;var v=p=p.next;do g=n(g,v.action),v=v.next;while(v!==p);$t(g,r.memoizedState)||(vt=!0),r.memoizedState=g,r.baseQueue===null&&(r.baseState=g),a.lastRenderedState=g}return[g,d]}function Md(){}function Fd(n,r){var a=We,d=Mt(),p=r(),g=!$t(d.memoizedState,p);if(g&&(d.memoizedState=p,vt=!0),d=d.queue,cl(Ud.bind(null,a,d,n),[n]),d.getSnapshot!==r||g||Ze!==null&&Ze.memoizedState.tag&1){if(a.flags|=2048,Mi(9,Bd.bind(null,a,d,p,r),void 0,null),et===null)throw Error(i(349));(ir&30)!==0||zd(a,r,p)}return p}function zd(n,r,a){n.flags|=16384,n={getSnapshot:r,value:a},r=We.updateQueue,r===null?(r={lastEffect:null,stores:null},We.updateQueue=r,r.stores=[n]):(a=r.stores,a===null?r.stores=[n]:a.push(n))}function Bd(n,r,a,d){r.value=a,r.getSnapshot=d,Hd(r)&&Wd(n)}function Ud(n,r,a){return a(function(){Hd(r)&&Wd(n)})}function Hd(n){var r=n.getSnapshot;n=n.value;try{var a=r();return!$t(n,a)}catch{return!0}}function Wd(n){var r=yn(n,1);r!==null&&Kt(r,n,1,-1)}function Vd(n){var r=on();return typeof n=="function"&&(n=n()),r.memoizedState=r.baseState=n,n={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:Di,lastRenderedState:n},r.queue=n,n=n.dispatch=vy.bind(null,We,n),[r.memoizedState,n]}function Mi(n,r,a,d){return n={tag:n,create:r,destroy:a,deps:d,next:null},r=We.updateQueue,r===null?(r={lastEffect:null,stores:null},We.updateQueue=r,r.lastEffect=n.next=n):(a=r.lastEffect,a===null?r.lastEffect=n.next=n:(d=a.next,a.next=n,n.next=d,r.lastEffect=n)),n}function $d(){return Mt().memoizedState}function Zo(n,r,a,d){var p=on();We.flags|=n,p.memoizedState=Mi(1|r,a,void 0,d===void 0?null:d)}function ea(n,r,a,d){var p=Mt();d=d===void 0?null:d;var g=void 0;if(Qe!==null){var v=Qe.memoizedState;if(g=v.destroy,d!==null&&il(d,v.deps)){p.memoizedState=Mi(r,a,g,d);return}}We.flags|=n,p.memoizedState=Mi(1|r,a,g,d)}function Gd(n,r){return Zo(8390656,8,n,r)}function cl(n,r){return ea(2048,8,n,r)}function qd(n,r){return ea(4,2,n,r)}function Yd(n,r){return ea(4,4,n,r)}function Jd(n,r){if(typeof r=="function")return n=n(),r(n),function(){r(null)};if(r!=null)return n=n(),r.current=n,function(){r.current=null}}function Kd(n,r,a){return a=a!=null?a.concat([n]):null,ea(4,4,Jd.bind(null,r,n),a)}function ul(){}function Qd(n,r){var a=Mt();r=r===void 0?null:r;var d=a.memoizedState;return d!==null&&r!==null&&il(r,d[1])?d[0]:(a.memoizedState=[n,r],n)}function Xd(n,r){var a=Mt();r=r===void 0?null:r;var d=a.memoizedState;return d!==null&&r!==null&&il(r,d[1])?d[0]:(n=n(),a.memoizedState=[n,r],n)}function Zd(n,r,a){return(ir&21)===0?(n.baseState&&(n.baseState=!1,vt=!0),n.memoizedState=a):($t(a,r)||(a=_u(),We.lanes|=a,or|=a,n.baseState=!0),r)}function yy(n,r){var a=Oe;Oe=a!==0&&4>a?a:4,n(!0);var d=rl.transition;rl.transition={};try{n(!1),r()}finally{Oe=a,rl.transition=d}}function eh(){return Mt().memoizedState}function xy(n,r,a){var d=Hn(n);if(a={lane:d,action:a,hasEagerState:!1,eagerState:null,next:null},th(n))nh(r,a);else if(a=Ad(n,r,a,d),a!==null){var p=mt();Kt(a,n,d,p),rh(a,r,d)}}function vy(n,r,a){var d=Hn(n),p={lane:d,action:a,hasEagerState:!1,eagerState:null,next:null};if(th(n))nh(r,p);else{var g=n.alternate;if(n.lanes===0&&(g===null||g.lanes===0)&&(g=r.lastRenderedReducer,g!==null))try{var v=r.lastRenderedState,b=g(v,a);if(p.hasEagerState=!0,p.eagerState=b,$t(b,v)){var E=r.interleaved;E===null?(p.next=p,Qs(r)):(p.next=E.next,E.next=p),r.interleaved=p;return}}catch{}a=Ad(n,r,p,d),a!==null&&(p=mt(),Kt(a,n,d,p),rh(a,r,d))}}function th(n){var r=n.alternate;return n===We||r!==null&&r===We}function nh(n,r){Oi=Xo=!0;var a=n.pending;a===null?r.next=r:(r.next=a.next,a.next=r),n.pending=r}function rh(n,r,a){if((a&4194240)!==0){var d=r.lanes;d&=n.pendingLanes,a|=d,r.lanes=a,hs(n,a)}}var ta={readContext:Dt,useCallback:st,useContext:st,useEffect:st,useImperativeHandle:st,useInsertionEffect:st,useLayoutEffect:st,useMemo:st,useReducer:st,useRef:st,useState:st,useDebugValue:st,useDeferredValue:st,useTransition:st,useMutableSource:st,useSyncExternalStore:st,useId:st,unstable_isNewReconciler:!1},wy={readContext:Dt,useCallback:function(n,r){return on().memoizedState=[n,r===void 0?null:r],n},useContext:Dt,useEffect:Gd,useImperativeHandle:function(n,r,a){return a=a!=null?a.concat([n]):null,Zo(4194308,4,Jd.bind(null,r,n),a)},useLayoutEffect:function(n,r){return Zo(4194308,4,n,r)},useInsertionEffect:function(n,r){return Zo(4,2,n,r)},useMemo:function(n,r){var a=on();return r=r===void 0?null:r,n=n(),a.memoizedState=[n,r],n},useReducer:function(n,r,a){var d=on();return r=a!==void 0?a(r):r,d.memoizedState=d.baseState=r,n={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:n,lastRenderedState:r},d.queue=n,n=n.dispatch=xy.bind(null,We,n),[d.memoizedState,n]},useRef:function(n){var r=on();return n={current:n},r.memoizedState=n},useState:Vd,useDebugValue:ul,useDeferredValue:function(n){return on().memoizedState=n},useTransition:function(){var n=Vd(!1),r=n[0];return n=yy.bind(null,n[1]),on().memoizedState=n,[r,n]},useMutableSource:function(){},useSyncExternalStore:function(n,r,a){var d=We,p=on();if(Be){if(a===void 0)throw Error(i(407));a=a()}else{if(a=r(),et===null)throw Error(i(349));(ir&30)!==0||zd(d,r,a)}p.memoizedState=a;var g={value:a,getSnapshot:r};return p.queue=g,Gd(Ud.bind(null,d,g,n),[n]),d.flags|=2048,Mi(9,Bd.bind(null,d,g,a,r),void 0,null),a},useId:function(){var n=on(),r=et.identifierPrefix;if(Be){var a=gn,d=fn;a=(d&~(1<<32-Vt(d)-1)).toString(32)+a,r=":"+r+"R"+a,a=Li++,0<a&&(r+="H"+a.toString(32)),r+=":"}else a=gy++,r=":"+r+"r"+a.toString(32)+":";return n.memoizedState=r},unstable_isNewReconciler:!1},ky={readContext:Dt,useCallback:Qd,useContext:Dt,useEffect:cl,useImperativeHandle:Kd,useInsertionEffect:qd,useLayoutEffect:Yd,useMemo:Xd,useReducer:sl,useRef:$d,useState:function(){return sl(Di)},useDebugValue:ul,useDeferredValue:function(n){var r=Mt();return Zd(r,Qe.memoizedState,n)},useTransition:function(){var n=sl(Di)[0],r=Mt().memoizedState;return[n,r]},useMutableSource:Md,useSyncExternalStore:Fd,useId:eh,unstable_isNewReconciler:!1},jy={readContext:Dt,useCallback:Qd,useContext:Dt,useEffect:cl,useImperativeHandle:Kd,useInsertionEffect:qd,useLayoutEffect:Yd,useMemo:Xd,useReducer:ll,useRef:$d,useState:function(){return ll(Di)},useDebugValue:ul,useDeferredValue:function(n){var r=Mt();return Qe===null?r.memoizedState=n:Zd(r,Qe.memoizedState,n)},useTransition:function(){var n=ll(Di)[0],r=Mt().memoizedState;return[n,r]},useMutableSource:Md,useSyncExternalStore:Fd,useId:eh,unstable_isNewReconciler:!1};function qt(n,r){if(n&&n.defaultProps){r=j({},r),n=n.defaultProps;for(var a in n)r[a]===void 0&&(r[a]=n[a]);return r}return r}function dl(n,r,a,d){r=n.memoizedState,a=a(d,r),a=a==null?r:j({},r,a),n.memoizedState=a,n.lanes===0&&(n.updateQueue.baseState=a)}var na={isMounted:function(n){return(n=n._reactInternals)?Qn(n)===n:!1},enqueueSetState:function(n,r,a){n=n._reactInternals;var d=mt(),p=Hn(n),g=xn(d,p);g.payload=r,a!=null&&(g.callback=a),r=Fn(n,g,p),r!==null&&(Kt(r,n,p,d),Yo(r,n,p))},enqueueReplaceState:function(n,r,a){n=n._reactInternals;var d=mt(),p=Hn(n),g=xn(d,p);g.tag=1,g.payload=r,a!=null&&(g.callback=a),r=Fn(n,g,p),r!==null&&(Kt(r,n,p,d),Yo(r,n,p))},enqueueForceUpdate:function(n,r){n=n._reactInternals;var a=mt(),d=Hn(n),p=xn(a,d);p.tag=2,r!=null&&(p.callback=r),r=Fn(n,p,d),r!==null&&(Kt(r,n,d,a),Yo(r,n,d))}};function ih(n,r,a,d,p,g,v){return n=n.stateNode,typeof n.shouldComponentUpdate=="function"?n.shouldComponentUpdate(d,g,v):r.prototype&&r.prototype.isPureReactComponent?!bi(a,d)||!bi(p,g):!0}function oh(n,r,a){var d=!1,p=Ln,g=r.contextType;return typeof g=="object"&&g!==null?g=Dt(g):(p=xt(r)?Zn:at.current,d=r.contextTypes,g=(d=d!=null)?Rr(n,p):Ln),r=new r(a,g),n.memoizedState=r.state!==null&&r.state!==void 0?r.state:null,r.updater=na,n.stateNode=r,r._reactInternals=n,d&&(n=n.stateNode,n.__reactInternalMemoizedUnmaskedChildContext=p,n.__reactInternalMemoizedMaskedChildContext=g),r}function ah(n,r,a,d){n=r.state,typeof r.componentWillReceiveProps=="function"&&r.componentWillReceiveProps(a,d),typeof r.UNSAFE_componentWillReceiveProps=="function"&&r.UNSAFE_componentWillReceiveProps(a,d),r.state!==n&&na.enqueueReplaceState(r,r.state,null)}function hl(n,r,a,d){var p=n.stateNode;p.props=a,p.state=n.memoizedState,p.refs={},Xs(n);var g=r.contextType;typeof g=="object"&&g!==null?p.context=Dt(g):(g=xt(r)?Zn:at.current,p.context=Rr(n,g)),p.state=n.memoizedState,g=r.getDerivedStateFromProps,typeof g=="function"&&(dl(n,r,g,a),p.state=n.memoizedState),typeof r.getDerivedStateFromProps=="function"||typeof p.getSnapshotBeforeUpdate=="function"||typeof p.UNSAFE_componentWillMount!="function"&&typeof p.componentWillMount!="function"||(r=p.state,typeof p.componentWillMount=="function"&&p.componentWillMount(),typeof p.UNSAFE_componentWillMount=="function"&&p.UNSAFE_componentWillMount(),r!==p.state&&na.enqueueReplaceState(p,p.state,null),Jo(n,a,p,d),p.state=n.memoizedState),typeof p.componentDidMount=="function"&&(n.flags|=4194308)}function Ur(n,r){try{var a="",d=r;do a+=be(d),d=d.return;while(d);var p=a}catch(g){p=`
8Error generating stack: `+g.message+`
9`+g.stack}return{value:n,source:r,stack:p,digest:null}}function pl(n,r,a){return{value:n,source:null,stack:a??null,digest:r??null}}function ml(n,r){try{console.error(r.value)}catch(a){setTimeout(function(){throw a})}}var by=typeof WeakMap=="function"?WeakMap:Map;function sh(n,r,a){a=xn(-1,a),a.tag=3,a.payload={element:null};var d=r.value;return a.callback=function(){ca||(ca=!0,_l=d),ml(n,r)},a}function lh(n,r,a){a=xn(-1,a),a.tag=3;var d=n.type.getDerivedStateFromError;if(typeof d=="function"){var p=r.value;a.payload=function(){return d(p)},a.callback=function(){ml(n,r)}}var g=n.stateNode;return g!==null&&typeof g.componentDidCatch=="function"&&(a.callback=function(){ml(n,r),typeof d!="function"&&(Bn===null?Bn=new Set([this]):Bn.add(this));var v=r.stack;this.componentDidCatch(r.value,{componentStack:v!==null?v:""})}),a}function ch(n,r,a){var d=n.pingCache;if(d===null){d=n.pingCache=new by;var p=new Set;d.set(r,p)}else p=d.get(r),p===void 0&&(p=new Set,d.set(r,p));p.has(a)||(p.add(a),n=My.bind(null,n,r,a),r.then(n,n))}function uh(n){do{var r;if((r=n.tag===13)&&(r=n.memoizedState,r=r!==null?r.dehydrated!==null:!0),r)return n;n=n.return}while(n!==null);return null}function dh(n,r,a,d,p){return(n.mode&1)===0?(n===r?n.flags|=65536:(n.flags|=128,a.flags|=131072,a.flags&=-52805,a.tag===1&&(a.alternate===null?a.tag=17:(r=xn(-1,1),r.tag=2,Fn(a,r,1))),a.lanes|=1),n):(n.flags|=65536,n.lanes=p,n)}var Ny=te.ReactCurrentOwner,vt=!1;function pt(n,r,a,d){r.child=n===null?Pd(r,null,a,d):Mr(r,n.child,a,d)}function hh(n,r,a,d,p){a=a.render;var g=r.ref;return zr(r,p),d=ol(n,r,a,d,g,p),a=al(),n!==null&&!vt?(r.updateQueue=n.updateQueue,r.flags&=-2053,n.lanes&=~p,vn(n,r,p)):(Be&&a&&Hs(r),r.flags|=1,pt(n,r,d,p),r.child)}function ph(n,r,a,d,p){if(n===null){var g=a.type;return typeof g=="function"&&!Dl(g)&&g.defaultProps===void 0&&a.compare===null&&a.defaultProps===void 0?(r.tag=15,r.type=g,mh(n,r,g,d,p)):(n=fa(a.type,null,d,r,r.mode,p),n.ref=r.ref,n.return=r,r.child=n)}if(g=n.child,(n.lanes&p)===0){var v=g.memoizedProps;if(a=a.compare,a=a!==null?a:bi,a(v,d)&&n.ref===r.ref)return vn(n,r,p)}return r.flags|=1,n=Vn(g,d),n.ref=r.ref,n.return=r,r.child=n}function mh(n,r,a,d,p){if(n!==null){var g=n.memoizedProps;if(bi(g,d)&&n.ref===r.ref)if(vt=!1,r.pendingProps=d=g,(n.lanes&p)!==0)(n.flags&131072)!==0&&(vt=!0);else return r.lanes=n.lanes,vn(n,r,p)}return fl(n,r,a,d,p)}function fh(n,r,a){var d=r.pendingProps,p=d.children,g=n!==null?n.memoizedState:null;if(d.mode==="hidden")if((r.mode&1)===0)r.memoizedState={baseLanes:0,cachePool:null,transitions:null},Me(Wr,_t),_t|=a;else{if((a&1073741824)===0)return n=g!==null?g.baseLanes|a:a,r.lanes=r.childLanes=1073741824,r.memoizedState={baseLanes:n,cachePool:null,transitions:null},r.updateQueue=null,Me(Wr,_t),_t|=n,null;r.memoizedState={baseLanes:0,cachePool:null,transitions:null},d=g!==null?g.baseLanes:a,Me(Wr,_t),_t|=d}else g!==null?(d=g.baseLanes|a,r.memoizedState=null):d=a,Me(Wr,_t),_t|=d;return pt(n,r,p,a),r.child}function gh(n,r){var a=r.ref;(n===null&&a!==null||n!==null&&n.ref!==a)&&(r.flags|=512,r.flags|=2097152)}
vendor: 4,747 bytes, line 9
9function fl(n,r,a,d,p){var g=xt(a)?Zn:at.current;return g=Rr(r,g),zr(r,p),a=ol(n,r,a,d,g,p),d=al(),n!==null&&!vt?(r.updateQueue=n.updateQueue,r.flags&=-2053,n.lanes&=~p,vn(n,r,p)):(Be&&d&&Hs(r),r.flags|=1,pt(n,r,a,p),r.child)}function yh(n,r,a,d,p){if(xt(a)){var g=!0;Bo(r)}else g=!1;if(zr(r,p),r.stateNode===null)ia(n,r),oh(r,a,d),hl(r,a,d,p),d=!0;else if(n===null){var v=r.stateNode,b=r.memoizedProps;v.props=b;var E=v.context,U=a.contextType;typeof U=="object"&&U!==null?U=Dt(U):(U=xt(a)?Zn:at.current,U=Rr(r,U));var $=a.getDerivedStateFromProps,G=typeof $=="function"||typeof v.getSnapshotBeforeUpdate=="function";G||typeof v.UNSAFE_componentWillReceiveProps!="function"&&typeof v.componentWillReceiveProps!="function"||(b!==d||E!==U)&&ah(r,v,d,U),Mn=!1;var V=r.memoizedState;v.state=V,Jo(r,d,v,p),E=r.memoizedState,b!==d||V!==E||yt.current||Mn?(typeof $=="function"&&(dl(r,a,$,d),E=r.memoizedState),(b=Mn||ih(r,a,b,d,V,E,U))?(G||typeof v.UNSAFE_componentWillMount!="function"&&typeof v.componentWillMount!="function"||(typeof v.componentWillMount=="function"&&v.componentWillMount(),typeof v.UNSAFE_componentWillMount=="function"&&v.UNSAFE_componentWillMount()),typeof v.componentDidMount=="function"&&(r.flags|=4194308)):(typeof v.componentDidMount=="function"&&(r.flags|=4194308),r.memoizedProps=d,r.memoizedState=E),v.props=d,v.state=E,v.context=U,d=b):(typeof v.componentDidMount=="function"&&(r.flags|=4194308),d=!1)}else{v=r.stateNode,Rd(n,r),b=r.memoizedProps,U=r.type===r.elementType?b:qt(r.type,b),v.props=U,G=r.pendingProps,V=v.context,E=a.contextType,typeof E=="object"&&E!==null?E=Dt(E):(E=xt(a)?Zn:at.current,E=Rr(r,E));var re=a.getDerivedStateFromProps;($=typeof re=="function"||typeof v.getSnapshotBeforeUpdate=="function")||typeof v.UNSAFE_componentWillReceiveProps!="function"&&typeof v.componentWillReceiveProps!="function"||(b!==G||V!==E)&&ah(r,v,d,E),Mn=!1,V=r.memoizedState,v.state=V,Jo(r,d,v,p);var ae=r.memoizedState;b!==G||V!==ae||yt.current||Mn?(typeof re=="function"&&(dl(r,a,re,d),ae=r.memoizedState),(U=Mn||ih(r,a,U,d,V,ae,E)||!1)?($||typeof v.UNSAFE_componentWillUpdate!="function"&&typeof v.componentWillUpdate!="function"||(typeof v.componentWillUpdate=="function"&&v.componentWillUpdate(d,ae,E),typeof v.UNSAFE_componentWillUpdate=="function"&&v.UNSAFE_componentWillUpdate(d,ae,E)),typeof v.componentDidUpdate=="function"&&(r.flags|=4),typeof v.getSnapshotBeforeUpdate=="function"&&(r.flags|=1024)):(typeof v.componentDidUpdate!="function"||b===n.memoizedProps&&V===n.memoizedState||(r.flags|=4),typeof v.getSnapshotBeforeUpdate!="function"||b===n.memoizedProps&&V===n.memoizedState||(r.flags|=1024),r.memoizedProps=d,r.memoizedState=ae),v.props=d,v.state=ae,v.context=E,d=U):(typeof v.componentDidUpdate!="function"||b===n.memoizedProps&&V===n.memoizedState||(r.flags|=4),typeof v.getSnapshotBeforeUpdate!="function"||b===n.memoizedProps&&V===n.memoizedState||(r.flags|=1024),d=!1)}return gl(n,r,a,d,g,p)}function gl(n,r,a,d,p,g){gh(n,r);var v=(r.flags&128)!==0;if(!d&&!v)return p&&jd(r,a,!1),vn(n,r,g);d=r.stateNode,Ny.current=r;var b=v&&typeof a.getDerivedStateFromError!="function"?null:d.render();return r.flags|=1,n!==null&&v?(r.child=Mr(r,n.child,null,g),r.child=Mr(r,null,b,g)):pt(n,r,b,g),r.memoizedState=d.state,p&&jd(r,a,!0),r.child}function xh(n){var r=n.stateNode;r.pendingContext?wd(n,r.pendingContext,r.pendingContext!==r.context):r.context&&wd(n,r.context,!1),Zs(n,r.containerInfo)}function vh(n,r,a,d,p){return Dr(),Gs(p),r.flags|=256,pt(n,r,a,d),r.child}var yl={dehydrated:null,treeContext:null,retryLane:0};function xl(n){return{baseLanes:n,cachePool:null,transitions:null}}function wh(n,r,a){var d=r.pendingProps,p=He.current,g=!1,v=(r.flags&128)!==0,b;if((b=v)||(b=n!==null&&n.memoizedState===null?!1:(p&2)!==0),b?(g=!0,r.flags&=-129):(n===null||n.memoizedState!==null)&&(p|=1),Me(He,p&1),n===null)return $s(r),n=r.memoizedState,n!==null&&(n=n.dehydrated,n!==null)?((r.mode&1)===0?r.lanes=1:n.data==="$!"?r.lanes=8:r.lanes=1073741824,null):(v=d.children,n=d.fallback,g?(d=r.mode,g=r.child,v={mode:"hidden",children:v},(d&1)===0&&g!==null?(g.childLanes=0,g.pendingProps=v):g=ga(v,d,0,null),n=cr(n,d,a,null),g.return=r,n.return=r,g.sibling=n,r.child=g,r.child.memoizedState=xl(a),r.memoizedState=yl,n):vl(r,v));if(p=n.memoizedState,p!==null&&(b=p.dehydrated,b!==null))return Sy(n,r,v,d,b,p,a);if(g){g=d.fallback,v=r.mode,p=n.child,b=p.sibling;var E={mode:"hidden",children:d.children};return(v&1)===0&&r.child!==p?(d=r.child,d.childLanes=0,d.pendingProps=E,r.deletions=null):(d=Vn(p,E),d.subtreeFlags=p.subtreeFlags&14680064),b!==null?g=Vn(b,g):(g=cr(g,v,a,null),g.flags|=2),g.return=r,d.return=r,d.sibling=g,r.child=d,d=g,g=r.child,v=n.child.memoizedState,v=v===null?xl(a):{baseLanes:v.base
vendor: 5,886 bytes, line 9
9Lanes|a,cachePool:null,transitions:v.transitions},g.memoizedState=v,g.childLanes=n.childLanes&~a,r.memoizedState=yl,d}return g=n.child,n=g.sibling,d=Vn(g,{mode:"visible",children:d.children}),(r.mode&1)===0&&(d.lanes=a),d.return=r,d.sibling=null,n!==null&&(a=r.deletions,a===null?(r.deletions=[n],r.flags|=16):a.push(n)),r.child=d,r.memoizedState=null,d}function vl(n,r){return r=ga({mode:"visible",children:r},n.mode,0,null),r.return=n,n.child=r}function ra(n,r,a,d){return d!==null&&Gs(d),Mr(r,n.child,null,a),n=vl(r,r.pendingProps.children),n.flags|=2,r.memoizedState=null,n}function Sy(n,r,a,d,p,g,v){if(a)return r.flags&256?(r.flags&=-257,d=pl(Error(i(422))),ra(n,r,v,d)):r.memoizedState!==null?(r.child=n.child,r.flags|=128,null):(g=d.fallback,p=r.mode,d=ga({mode:"visible",children:d.children},p,0,null),g=cr(g,p,v,null),g.flags|=2,d.return=r,g.return=r,d.sibling=g,r.child=d,(r.mode&1)!==0&&Mr(r,n.child,null,v),r.child.memoizedState=xl(v),r.memoizedState=yl,g);if((r.mode&1)===0)return ra(n,r,v,null);if(p.data==="$!"){if(d=p.nextSibling&&p.nextSibling.dataset,d)var b=d.dgst;return d=b,g=Error(i(419)),d=pl(g,d,void 0),ra(n,r,v,d)}if(b=(v&n.childLanes)!==0,vt||b){if(d=et,d!==null){switch(v&-v){case 4:p=2;break;case 16:p=8;break;case 64: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:case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:p=32;break;case 536870912:p=268435456;break;default:p=0}p=(p&(d.suspendedLanes|v))!==0?0:p,p!==0&&p!==g.retryLane&&(g.retryLane=p,yn(n,p),Kt(d,n,p,-1))}return Ll(),d=pl(Error(i(421))),ra(n,r,v,d)}return p.data==="$?"?(r.flags|=128,r.child=n.child,r=Fy.bind(null,n),p._reactRetry=r,null):(n=g.treeContext,Et=Rn(p.nextSibling),Ct=r,Be=!0,Gt=null,n!==null&&(Ot[Lt++]=fn,Ot[Lt++]=gn,Ot[Lt++]=er,fn=n.id,gn=n.overflow,er=r),r=vl(r,d.children),r.flags|=4096,r)}function kh(n,r,a){n.lanes|=r;var d=n.alternate;d!==null&&(d.lanes|=r),Ks(n.return,r,a)}function wl(n,r,a,d,p){var g=n.memoizedState;g===null?n.memoizedState={isBackwards:r,rendering:null,renderingStartTime:0,last:d,tail:a,tailMode:p}:(g.isBackwards=r,g.rendering=null,g.renderingStartTime=0,g.last=d,g.tail=a,g.tailMode=p)}function jh(n,r,a){var d=r.pendingProps,p=d.revealOrder,g=d.tail;if(pt(n,r,d.children,a),d=He.current,(d&2)!==0)d=d&1|2,r.flags|=128;else{if(n!==null&&(n.flags&128)!==0)e:for(n=r.child;n!==null;){if(n.tag===13)n.memoizedState!==null&&kh(n,a,r);else if(n.tag===19)kh(n,a,r);else if(n.child!==null){n.child.return=n,n=n.child;continue}if(n===r)break e;for(;n.sibling===null;){if(n.return===null||n.return===r)break e;n=n.return}n.sibling.return=n.return,n=n.sibling}d&=1}if(Me(He,d),(r.mode&1)===0)r.memoizedState=null;else switch(p){case"forwards":for(a=r.child,p=null;a!==null;)n=a.alternate,n!==null&&Ko(n)===null&&(p=a),a=a.sibling;a=p,a===null?(p=r.child,r.child=null):(p=a.sibling,a.sibling=null),wl(r,!1,p,a,g);break;case"backwards":for(a=null,p=r.child,r.child=null;p!==null;){if(n=p.alternate,n!==null&&Ko(n)===null){r.child=p;break}n=p.sibling,p.sibling=a,a=p,p=n}wl(r,!0,a,null,g);break;case"together":wl(r,!1,null,null,void 0);break;default:r.memoizedState=null}return r.child}function ia(n,r){(r.mode&1)===0&&n!==null&&(n.alternate=null,r.alternate=null,r.flags|=2)}function vn(n,r,a){if(n!==null&&(r.dependencies=n.dependencies),or|=r.lanes,(a&r.childLanes)===0)return null;if(n!==null&&r.child!==n.child)throw Error(i(153));if(r.child!==null){for(n=r.child,a=Vn(n,n.pendingProps),r.child=a,a.return=r;n.sibling!==null;)n=n.sibling,a=a.sibling=Vn(n,n.pendingProps),a.return=r;a.sibling=null}return r.child}function Ty(n,r,a){switch(r.tag){case 3:xh(r),Dr();break;case 5:Dd(r);break;case 1:xt(r.type)&&Bo(r);break;case 4:Zs(r,r.stateNode.containerInfo);break;case 10:var d=r.type._context,p=r.memoizedProps.value;Me(Go,d._currentValue),d._currentValue=p;break;case 13:if(d=r.memoizedState,d!==null)return d.dehydrated!==null?(Me(He,He.current&1),r.flags|=128,null):(a&r.child.childLanes)!==0?wh(n,r,a):(Me(He,He.current&1),n=vn(n,r,a),n!==null?n.sibling:null);Me(He,He.current&1);break;case 19:if(d=(a&r.childLanes)!==0,(n.flags&128)!==0){if(d)return jh(n,r,a);r.flags|=128}if(p=r.memoizedState,p!==null&&(p.rendering=null,p.tail=null,p.lastEffect=null),Me(He,He.current),d)break;return null;case 22:case 23:return r.lanes=0,fh(n,r,a)}return vn(n,r,a)}var bh,kl,Nh,Sh;bh=function(n,r){for(var a=r.child;a!==null;){if(a.tag===5||a.tag===6)n.appendChild(a.stateNode);else if(a.tag!==4&&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;a=a.return}a.sibling.return=a.return,a=a.sibling}},kl=function(){},Nh=function(n,r,a,d){var p=n.memoizedProps;if(p!==d){n=r.stateNode,rr(rn.current);var g=null;switch(a){case"input":p=ii(n,p),d=ii(n,d),g=[];break;case"select":p=j({},p,{value:void 0}),d=j({},d,{value:void 0}),g=[];break;case"textarea":p=si(n,p),d=si(n,d),g=[];break;default:typeof p.onClick!="function"&&typeof d.onClick=="function"&&(n.onclick=Mo)}rt(a,d);var v;a=null;for(U in p)if(!d.hasOwnProperty(U)&&p.hasOwnProperty(U)&&p[U]!=null)if(U==="style"){var b=p[U];for(v in b)b.hasOwnProperty(v)&&(a||(a={}),a[v]="")}else U!=="dangerouslySetInnerHTML"&&U!=="children"&&U!=="suppressContentEditableWarning"&&U!=="suppressHydrationWarning"&&U!=="autoFocus"&&(l.hasOwnProperty(U)?g||(g=[]):(g=g||[]).push(U,null));for(U in d){var E=d[U];if(b=p?.[U],d.hasOwnProperty(U)&&E!==b&&(E!=null||b!=null))if(U==="style")if(b){for(v in b)!b.hasOwnProperty(v)||E&&E.hasOwnProperty(v)||(a||(a={}),a[v]="");for(v in E)E.hasOwnProperty(v)&&b[v]!==E[v]&&(a||(a={}),a[v]=E[v])}else a||(g||(g=[]),g.push(U,a)),a=E;else U==="dangerouslySetInnerHTML"?(E=E?E.__html:void 0,b=b?b.__html:void 0,E!=null&&b!==E&&(g=g||[]).push(U,E)):U==="children"?typeof E!="str
9ing"&&typeof E!="number"||(g=g||[]).push(U,""+E):U!=="suppressContentEditableWarning"&&U!=="suppressHydrationWarning"&&(l.hasOwnProperty(U)?(E!=null&&U==="onScroll"&&Fe("scroll",n),g||b===E||(g=[])):(g=g||[]).push(U,E))}a&&(g=g||[]).push("style",a);var U=g;(r.updateQueue=U)&&(r.flags|=4)}},Sh=function(n,r,a,d){a!==d&&(r.flags|=4)};function Fi(n,r){if(!Be)switch(n.tailMode){case"hidden":r=n.tail;for(var a=null;r!==null;)r.alternate!==null&&(a=r),r=r.sibling;a===null?n.tail=null:a.sibling=null;break;case"collapsed":a=n.tail;for(var d=null;a!==null;)a.alternate!==null&&(d=a),a=a.sibling;d===null?r||n.tail===null?n.tail=null:n.tail.sibling=null:d.sibling=null}}function lt(n){var r=n.alternate!==null&&n.alternate.child===n.child,a=0,d=0;if(r)for(var p=n.child;p!==null;)a|=p.lanes|p.childLanes,d|=p.subtreeFlags&14680064,d|=p.flags&14680064,p.return=n,p=p.sibling;else for(p=n.child;p!==null;)a|=p.lanes|p.childLanes,d|=p.subtreeFlags,d|=p.flags,p.return=n,p=p.sibling;return n.subtreeFlags|=d,n.childLanes=a,r}function Cy(n,r,a){var d=r.pendingProps;switch(Ws(r),r.tag){case 2:case 16:case 15:case 0:case 11:case 7:case 8:case 12:case 9:case 14:return lt(r),null;case 1:return xt(r.type)&&zo(),lt(r),null;case 3:return d=r.stateNode,Br(),ze(yt),ze(at),nl(),d.pendingContext&&(d.context=d.pendingContext,d.pendingContext=null),(n===null||n.child===null)&&(Vo(r)?r.flags|=4:n===null||n.memoizedState.isDehydrated&&(r.flags&256)===0||(r.flags|=1024,Gt!==null&&(Al(Gt),Gt=null))),kl(n,r),lt(r),null;case 5:el(r);var p=rr(Ri.current);if(a=r.type,n!==null&&r.stateNode!=null)Nh(n,r,a,d,p),n.ref!==r.ref&&(r.flags|=512,r.flags|=2097152);else{if(!d){if(r.stateNode===null)throw Error(i(166));return lt(r),null}if(n=rr(rn.current),Vo(r)){d=r.stateNode,a=r.type;var g=r.memoizedProps;switch(d[nn]=r,d[Ei]=g,n=(r.mode&1)!==0,a){case"dialog":Fe("cancel",d),Fe("close",d);break;case"iframe":case"object":case"embed":Fe("load",d);break;case"video":case"audio":for(p=0;p<Si.length;p++)Fe(Si[p],d);break;case"source":Fe("error",d);break;case"img":case"image":case"link":Fe("error",d),Fe("load",d);break;case"details":Fe("toggle",d);break;case"input":oi(d,g),Fe("invalid",d);break;case"select":d._wrapperState={wasMultiple:!!g.multiple},Fe("invalid",d);break;case"textarea":po(d,g),Fe("invalid",d)}rt(a,g),p=null;for(var v in g)if(g.hasOwnProperty(v)){var b=g[v];v==="children"?typeof b=="string"?d.textContent!==b&&(g.suppressHydrationWarning!==!0&&Do(d.textContent,b,n),p=["children",b]):typeof b=="number"&&d.textContent!==""+b&&(g.suppressHydrationWarning!==!0&&Do(d.textContent,b,n),p=["children",""+b]):l.hasOwnProperty(v)&&b!=null&&v==="onScroll"&&Fe("scroll",d)}switch(a){case"input":dn(d),ho(d,g,!0);break;case"textarea":dn(d),fo(d);break;case"select":case"option":break;default:typeof g.onClick=="function"&&(d.onclick=Mo)}d=p,r.updateQueue=d,d!==null&&(r.flags|=4)}else{v=p.nodeType===9?p:p.ownerDocument,n==="http://www.w3.org/1999/xhtml"&&(n=H(a)),n==="http://www.w3.org/1999/xhtml"?a==="script"?(n=v.createElement("div"),n.innerHTML="<script><\/script>",n=n.removeChild(n.firstChild)):typeof d.is=="string"?n=v.createElement(a,{is:d.is}):(n=v.createElement(a),a==="select"&&(v=n,d.multiple?v.multiple=!0:d.size&&(v.size=d.size))):n=v.createElementNS(n,a),n[nn]=r,n[Ei]=d,bh(n,r,!1,!1),r.stateNode=n;e:{switch(v=en(a,d),a){case"dialog":Fe("cancel",n),Fe("close",n),p=d;break;case"iframe":case"object":case"embed":Fe("load",n),p=d;break;case"video":case"audio":for(p=0;p<Si.length;p++)Fe(Si[p],n);p=d;break;case"source":Fe("error",n),p=d;break;case"img":case"image":case"link":Fe("error",n),Fe("load",n),p=d;break;case"details":Fe("toggle",n),p=d;break;case"input":oi(n,d),p=ii(n,d),Fe("invalid",n);break;case"option":p=d;break;case"select":n._wrapperState={wasMultiple:!!d.multiple},p=j({},d,{value:void 0}),Fe("invalid",n);break;case"textarea":po(n,d),p=si(n,d),Fe("invalid",n);break;default:p=d}rt(a,p),b=p;for(g in b)if(b.hasOwnProperty(g)){var E=b[g];g==="style"?Tn(n,E):g==="dangerouslySetInnerHTML"?(E=E?E.__html:void 0,E!=null&&Se(n,E)):g==="children"?typeof E=="string"?(a!=="textarea"||E!=="")&&_e(n,E):typeof E=="number"&&_e(n,""+E):g!=="suppressContentEditableWarning"&&g!=="suppressHydrationWarning"&&g!=="autoFocus"&&(l.hasOwnProperty(g)?E!=null&&g==="onScroll"&&Fe("scroll",n):E!=null&&B(n,g,E,v))}switch(a){case"input":dn(n),ho(n,d,!1);break;case"textarea":dn(n),fo(n);break;case"option":d.value!=null&&n.setAttribute("value",""+Ne(d.value));break;case"select":n.multiple=!!d.multiple,g=d.value,g!=null?Sn(n,!!d.multiple,g,!1):d.defaultValue!=null&&Sn(n,!!d.multiple,d.defaultValue,!0);break;default:typeof p.onClick=="function"&&(n.onclick=Mo)}switch(a){case"button":case"input":case"select":case"textarea":d=!!d.autoFocus;break e;case"img":d=!0;break e;default:d=!1}}d&&(r.flags|=4)}r.ref!==null&&(r.flags|=512,r.flags|=2097152)}
vendor: 4,553 bytes, line 9
9return lt(r),null;case 6:if(n&&r.stateNode!=null)Sh(n,r,n.memoizedProps,d);else{if(typeof d!="string"&&r.stateNode===null)throw Error(i(166));if(a=rr(Ri.current),rr(rn.current),Vo(r)){if(d=r.stateNode,a=r.memoizedProps,d[nn]=r,(g=d.nodeValue!==a)&&(n=Ct,n!==null))switch(n.tag){case 3:Do(d.nodeValue,a,(n.mode&1)!==0);break;case 5:n.memoizedProps.suppressHydrationWarning!==!0&&Do(d.nodeValue,a,(n.mode&1)!==0)}g&&(r.flags|=4)}else d=(a.nodeType===9?a:a.ownerDocument).createTextNode(d),d[nn]=r,r.stateNode=d}return lt(r),null;case 13:if(ze(He),d=r.memoizedState,n===null||n.memoizedState!==null&&n.memoizedState.dehydrated!==null){if(Be&&Et!==null&&(r.mode&1)!==0&&(r.flags&128)===0)Ed(),Dr(),r.flags|=98560,g=!1;else if(g=Vo(r),d!==null&&d.dehydrated!==null){if(n===null){if(!g)throw Error(i(318));if(g=r.memoizedState,g=g!==null?g.dehydrated:null,!g)throw Error(i(317));g[nn]=r}else Dr(),(r.flags&128)===0&&(r.memoizedState=null),r.flags|=4;lt(r),g=!1}else Gt!==null&&(Al(Gt),Gt=null),g=!0;if(!g)return r.flags&65536?r:null}return(r.flags&128)!==0?(r.lanes=a,r):(d=d!==null,d!==(n!==null&&n.memoizedState!==null)&&d&&(r.child.flags|=8192,(r.mode&1)!==0&&(n===null||(He.current&1)!==0?Xe===0&&(Xe=3):Ll())),r.updateQueue!==null&&(r.flags|=4),lt(r),null);case 4:return Br(),kl(n,r),n===null&&Ti(r.stateNode.containerInfo),lt(r),null;case 10:return Js(r.type._context),lt(r),null;case 17:return xt(r.type)&&zo(),lt(r),null;case 19:if(ze(He),g=r.memoizedState,g===null)return lt(r),null;if(d=(r.flags&128)!==0,v=g.rendering,v===null)if(d)Fi(g,!1);else{if(Xe!==0||n!==null&&(n.flags&128)!==0)for(n=r.child;n!==null;){if(v=Ko(n),v!==null){for(r.flags|=128,Fi(g,!1),d=v.updateQueue,d!==null&&(r.updateQueue=d,r.flags|=4),r.subtreeFlags=0,d=a,a=r.child;a!==null;)g=a,n=d,g.flags&=14680066,v=g.alternate,v===null?(g.childLanes=0,g.lanes=n,g.child=null,g.subtreeFlags=0,g.memoizedProps=null,g.memoizedState=null,g.updateQueue=null,g.dependencies=null,g.stateNode=null):(g.childLanes=v.childLanes,g.lanes=v.lanes,g.child=v.child,g.subtreeFlags=0,g.deletions=null,g.memoizedProps=v.memoizedProps,g.memoizedState=v.memoizedState,g.updateQueue=v.updateQueue,g.type=v.type,n=v.dependencies,g.dependencies=n===null?null:{lanes:n.lanes,firstContext:n.firstContext}),a=a.sibling;return Me(He,He.current&1|2),r.child}n=n.sibling}g.tail!==null&&Ge()>Vr&&(r.flags|=128,d=!0,Fi(g,!1),r.lanes=4194304)}else{if(!d)if(n=Ko(v),n!==null){if(r.flags|=128,d=!0,a=n.updateQueue,a!==null&&(r.updateQueue=a,r.flags|=4),Fi(g,!0),g.tail===null&&g.tailMode==="hidden"&&!v.alternate&&!Be)return lt(r),null}else 2*Ge()-g.renderingStartTime>Vr&&a!==1073741824&&(r.flags|=128,d=!0,Fi(g,!1),r.lanes=4194304);g.isBackwards?(v.sibling=r.child,r.child=v):(a=g.last,a!==null?a.sibling=v:r.child=v,g.last=v)}return g.tail!==null?(r=g.tail,g.rendering=r,g.tail=r.sibling,g.renderingStartTime=Ge(),r.sibling=null,a=He.current,Me(He,d?a&1|2:a&1),r):(lt(r),null);case 22:case 23:return Ol(),d=r.memoizedState!==null,n!==null&&n.memoizedState!==null!==d&&(r.flags|=8192),d&&(r.mode&1)!==0?(_t&1073741824)!==0&&(lt(r),r.subtreeFlags&6&&(r.flags|=8192)):lt(r),null;case 24:return null;case 25:return null}throw Error(i(156,r.tag))}function Ey(n,r){switch(Ws(r),r.tag){case 1:return xt(r.type)&&zo(),n=r.flags,n&65536?(r.flags=n&-65537|128,r):null;case 3:return Br(),ze(yt),ze(at),nl(),n=r.flags,(n&65536)!==0&&(n&128)===0?(r.flags=n&-65537|128,r):null;case 5:return el(r),null;case 13:if(ze(He),n=r.memoizedState,n!==null&&n.dehydrated!==null){if(r.alternate===null)throw Error(i(340));Dr()}return n=r.flags,n&65536?(r.flags=n&-65537|128,r):null;case 19:return ze(He),null;case 4:return Br(),null;case 10:return Js(r.type._context),null;case 22:case 23:return Ol(),null;case 24:return null;default:return null}}var oa=!1,ct=!1,_y=typeof WeakSet=="function"?WeakSet:Set,oe=null;function Hr(n,r){var a=n.ref;if(a!==null)if(typeof a=="function")try{a(null)}catch(d){$e(n,r,d)}else a.current=null}function jl(n,r,a){try{a()}catch(d){$e(n,r,d)}}var Th=!1;function Iy(n,r){if(Os=So,n=id(),Ts(n)){if("selectionStart"in n)var a={start:n.selectionStart,end:n.selectionEnd};else e:{a=(a=n.ownerDocument)&&a.defaultView||window;var d=a.getSelection&&a.getSelection();if(d&&d.rangeCount!==0){a=d.anchorNode;var p=d.anchorOffset,g=d.focusNode;d=d.focusOffset;try{a.nodeType,g.nodeType}catch{a=null;break e}var v=0,b=-1,E=-1,U=0,$=0,G=n,V=null;t:for(;;){for(var re;G!==a||p!==0&&G.nodeType!==3||(b=v+p),G!==g||d!==0&&G.nodeType!==3||(E=v+d),G.nodeType===3&&(v+=G.nodeValue.length),(re=G.firstChild)!==null;)V=G,G=re;
vendor: 8,715 bytes, line 9
9for(;;){if(G===n)break t;if(V===a&&++U===p&&(b=v),V===g&&++$===d&&(E=v),(re=G.nextSibling)!==null)break;G=V,V=G.parentNode}G=re}a=b===-1||E===-1?null:{start:b,end:E}}else a=null}a=a||{start:0,end:0}}else a=null;for(Ls={focusedElem:n,selectionRange:a},So=!1,oe=r;oe!==null;)if(r=oe,n=r.child,(r.subtreeFlags&1028)!==0&&n!==null)n.return=r,oe=n;else for(;oe!==null;){r=oe;try{var ae=r.alternate;if((r.flags&1024)!==0)switch(r.tag){case 0:case 11:case 15:break;case 1:if(ae!==null){var se=ae.memoizedProps,qe=ae.memoizedState,O=r.stateNode,P=O.getSnapshotBeforeUpdate(r.elementType===r.type?se:qt(r.type,se),qe);O.__reactInternalSnapshotBeforeUpdate=P}break;case 3:var D=r.stateNode.containerInfo;D.nodeType===1?D.textContent="":D.nodeType===9&&D.documentElement&&D.removeChild(D.documentElement);break;case 5:case 6:case 4:case 17:break;default:throw Error(i(163))}}catch(K){$e(r,r.return,K)}if(n=r.sibling,n!==null){n.return=r.return,oe=n;break}oe=r.return}return ae=Th,Th=!1,ae}function zi(n,r,a){var d=r.updateQueue;if(d=d!==null?d.lastEffect:null,d!==null){var p=d=d.next;do{if((p.tag&n)===n){var g=p.destroy;p.destroy=void 0,g!==void 0&&jl(r,a,g)}p=p.next}while(p!==d)}}function aa(n,r){if(r=r.updateQueue,r=r!==null?r.lastEffect:null,r!==null){var a=r=r.next;do{if((a.tag&n)===n){var d=a.create;a.destroy=d()}a=a.next}while(a!==r)}}function bl(n){var r=n.ref;if(r!==null){var a=n.stateNode;n.tag,n=a,typeof r=="function"?r(n):r.current=n}}function Ch(n){var r=n.alternate;r!==null&&(n.alternate=null,Ch(r)),n.child=null,n.deletions=null,n.sibling=null,n.tag===5&&(r=n.stateNode,r!==null&&(delete r[nn],delete r[Ei],delete r[zs],delete r[hy],delete r[py])),n.stateNode=null,n.return=null,n.dependencies=null,n.memoizedProps=null,n.memoizedState=null,n.pendingProps=null,n.stateNode=null,n.updateQueue=null}function Eh(n){return n.tag===5||n.tag===3||n.tag===4}function _h(n){e:for(;;){for(;n.sibling===null;){if(n.return===null||Eh(n.return))return null;n=n.return}for(n.sibling.return=n.return,n=n.sibling;n.tag!==5&&n.tag!==6&&n.tag!==18;){if(n.flags&2||n.child===null||n.tag===4)continue e;n.child.return=n,n=n.child}if(!(n.flags&2))return n.stateNode}}function Nl(n,r,a){var d=n.tag;if(d===5||d===6)n=n.stateNode,r?a.nodeType===8?a.parentNode.insertBefore(n,r):a.insertBefore(n,r):(a.nodeType===8?(r=a.parentNode,r.insertBefore(n,a)):(r=a,r.appendChild(n)),a=a._reactRootContainer,a!=null||r.onclick!==null||(r.onclick=Mo));else if(d!==4&&(n=n.child,n!==null))for(Nl(n,r,a),n=n.sibling;n!==null;)Nl(n,r,a),n=n.sibling}function Sl(n,r,a){var d=n.tag;if(d===5||d===6)n=n.stateNode,r?a.insertBefore(n,r):a.appendChild(n);else if(d!==4&&(n=n.child,n!==null))for(Sl(n,r,a),n=n.sibling;n!==null;)Sl(n,r,a),n=n.sibling}var it=null,Yt=!1;function zn(n,r,a){for(a=a.child;a!==null;)Ih(n,r,a),a=a.sibling}function Ih(n,r,a){if(tn&&typeof tn.onCommitFiberUnmount=="function")try{tn.onCommitFiberUnmount(vo,a)}catch{}switch(a.tag){case 5:ct||Hr(a,r);case 6:var d=it,p=Yt;it=null,zn(n,r,a),it=d,Yt=p,it!==null&&(Yt?(n=it,a=a.stateNode,n.nodeType===8?n.parentNode.removeChild(a):n.removeChild(a)):it.removeChild(a.stateNode));break;case 18:it!==null&&(Yt?(n=it,a=a.stateNode,n.nodeType===8?Fs(n.parentNode,a):n.nodeType===1&&Fs(n,a),yi(n)):Fs(it,a.stateNode));break;case 4:d=it,p=Yt,it=a.stateNode.containerInfo,Yt=!0,zn(n,r,a),it=d,Yt=p;break;case 0:case 11:case 14:case 15:if(!ct&&(d=a.updateQueue,d!==null&&(d=d.lastEffect,d!==null))){p=d=d.next;do{var g=p,v=g.destroy;g=g.tag,v!==void 0&&((g&2)!==0||(g&4)!==0)&&jl(a,r,v),p=p.next}while(p!==d)}zn(n,r,a);break;case 1:if(!ct&&(Hr(a,r),d=a.stateNode,typeof d.componentWillUnmount=="function"))try{d.props=a.memoizedProps,d.state=a.memoizedState,d.componentWillUnmount()}catch(b){$e(a,r,b)}zn(n,r,a);break;case 21:zn(n,r,a);break;case 22:a.mode&1?(ct=(d=ct)||a.memoizedState!==null,zn(n,r,a),ct=d):zn(n,r,a);break;default:zn(n,r,a)}}function Ph(n){var r=n.updateQueue;if(r!==null){n.updateQueue=null;var a=n.stateNode;a===null&&(a=n.stateNode=new _y),r.forEach(function(d){var p=zy.bind(null,n,d);a.has(d)||(a.add(d),d.then(p,p))})}}function Jt(n,r){var a=r.deletions;if(a!==null)for(var d=0;d<a.length;d++){var p=a[d];try{var g=n,v=r,b=v;e:for(;b!==null;){switch(b.tag){case 5:it=b.stateNode,Yt=!1;break e;case 3:it=b.stateNode.containerInfo,Yt=!0;break e;case 4:it=b.stateNode.containerInfo,Yt=!0;break e}b=b.return}if(it===null)throw Error(i(160));Ih(g,v,p),it=null,Yt=!1;var E=p.alternate;E!==null&&(E.return=null),p.return=null}catch(U){$e(p,r,U)}}if(r.subtreeFlags&12854)for(r=r.child;r!==null;)Ah(r,n),r=r.sibling}function Ah(n,r){var a=n.alternate,d=n.flags;switch(n.tag){case 0:case 11:case 14:case 15:if(Jt(r,n),an(n),d&4){try{zi(3,n,n.return),aa(3,n)}catch(se){$e(n,n.return,se)}try{zi(5,n,n.return)}catch(se){$e(n,n.return,se)}}break;case 1:Jt(r,n),an(n),d&512&&a!==null&&Hr(a,a.return);break;case 5:if(Jt(r,n),an(n),d&512&&a!==null&&Hr(a,a.return),n.flags&32){var p=n.stateNode;try{_e(p,"")}catch(se){$e(n,n.return,se)}}if(d&4&&(p=n.stateNode,p!=null)){var g=n.memoizedProps,v=a!==null?a.memoizedProps:g,b=n.type,E=n.updateQueue;if(n.updateQueue=null,E!==null)try{b==="input"&&g.type==="radio"&&g.name!=null&&ai(p,g),en(b,v);var U=en(b,g);for(v=0;v<E.length;v+=2){var $=E[v],G=E[v+1];$==="style"?Tn(p,G):$==="dangerouslySetInnerHTML"?Se(p,G):$==="children"?_e(p,G):B(p,$,G,U)}switch(b){case"input":wr(p,g);break;case"textarea":mo(p,g);break;case"select":var V=p._wrapperState.wasMultiple;p._wrapperState.wasMultiple=!!g.multiple;var re=g.value;re!=null?Sn(p,!!g.multiple,re,!1):V!==!!g.multiple&&(g.defaultValue!=null?Sn(p,!!g.multiple,g.defaultValue,!0):Sn(p,!!g.multiple,g.multiple?[]:"",!1))}p[Ei]=g}catch(se){$e(n,n.return,se)}}break;case 6:if(Jt(r,n),an(n),d&4){if(n.stateNode===null)throw Error(i(162));p=n.stateNode,g=n.memoizedProps;try{p.nodeValue=g}catch(se){$e(n,n.return,se)}}break;case 3:if(Jt(r,n),an(n),d&4&&a!==null&&a.memoizedState.isDehydrated)try{yi(r.containerInfo)}catch(se){$e(n,n.return,se)}break;case 4:Jt(r,n),an(n);break;case 13:Jt(r,n),an(n),p=n.child,p.flags&8192&&(g=p.memoizedState!==null,p.stateNode.isHidden=g,!g||p.alternate!==null&&p.alternate.memoizedState!==null||(El=Ge())),d&4&&Ph(n);break;case 22:if($=a!==null&&a.memoizedState!==null,n.mode&1?(ct=(U=ct)||$,Jt(r,n),ct=U):Jt(r,n),an(n),d&8192){if(U=n.memoizedState!==null,(n.stateNode.isHidden=U)&&!$&&(n.mode&1)!==0)for(oe=n,$=n.child;$!==null;){for(G=oe=$;oe!==null;){switch(V=oe,re=V.child,V.tag){case 0:case 11:case 14:case 15:zi(4,V,V.return);break;case 1:Hr(V,V.return);var ae=V.stateNode;if(typeof ae.componentWillUnmount=="function"){d=V,a=V.return;try{r=d,ae.props=r.memoizedProps,ae.state=r.memoizedState,ae.componentWillUnmount()}catch(se){$e(d,a,se)}}break;case 5:Hr(V,V.return);break;case 22:if(V.memoizedState!==null){Lh(G);continue}}re!==null?(re.return=V,oe=re):Lh(G)}$=$.sibling}e:for($=null,G=n;;){if(G.tag===5){if($===null){$=G;try{p=G.stateNode,U?(g=p.style,typeof g.setProperty=="function"?g.setProperty("display","none","important"):g.display="none"):(b=G.stateNode,E=G.memoizedProps.style,v=E!=null&&E.hasOwnProperty("display")?E.display:null,b.style.display=Rt("display",v))}catch(se){$e(n,n.return,se)}}}else if(G.tag===6){if($===null)try{G.stateNode.nodeValue=U?"":G.memoizedProps}catch(se){$e(n,n.return,se)}}else if((G.tag!==22&&G.tag!==23||G.memoizedState===null||G===n)&&G.child!==null){G.child.return=G,G=G.child;continue}if(G===n)break e;for(;G.sibling===null;){if(G.return===null||G.return===n)break e;$===G&&($=null),G=G.return}$===G&&($=null),G.sibling.return=G.return,G=G.sibling}}break;case 19:Jt(r,n),an(n),d&4&&Ph(n);break;case 21:break;default:Jt(r,n),an(n)}}function an(n){var r=n.flags;if(r&2){try{e:{for(var a=n.return;a!==null;){if(Eh(a)){var d=a;break e}a=a.return}throw Error(i(160))}switch(d.tag){case 5:var p=d.stateNode;d.flags&32&&(_e(p,""),d.flags&=-33);var g=_h(n);Sl(n,g,p);break;case 3:case 4:var v=d.stateNode.containerInfo,b=_h(n);Nl(n,b,v);break;default:throw Error(i(161))}}catch(E){$e(n,n.return,E)}n.flags&=-3}r&4096&&(n.flags&=-4097)}function Py(n,r,a){oe=n,Rh(n)}function Rh(n,r,a){for(var d=(n.mode&1)!==0;oe!==null;){var p=oe,g=p.child;if(p.tag===22&&d){var v=p.memoizedState!==null||oa;if(!v){var b=p.alternate,E=b!==null&&b.memoizedState!==null||ct;b=oa;var U=ct;if(oa=v,(ct=E)&&!U)for(oe=p;oe!==null;)v=oe,E=v.child,v.tag===22&&v.memoizedState!==null?Dh(p):E!==null?(E.return=v,oe=E):Dh(p);for(;g!==null;)oe=g,Rh(g),g=g.sibling;oe=p,oa=b,ct=U}Oh(n)}else(p.subtreeFlags&8772)!==0&&g!==null?(g.return=p,oe=g):Oh(n)}}function Oh(n){for(;oe!==null;){var r=oe;if((r.flags&8772)!==0){var a=r.alternate;try{if((r.flags&8772)!==0)switch(r.tag){case 0:case 11:case 15:ct||aa(5,r);break;case 1:var d=r.stateNode;
vendor: 11,807 bytes, line 9
9if(r.flags&4&&!ct)if(a===null)d.componentDidMount();else{var p=r.elementType===r.type?a.memoizedProps:qt(r.type,a.memoizedProps);d.componentDidUpdate(p,a.memoizedState,d.__reactInternalSnapshotBeforeUpdate)}var g=r.updateQueue;g!==null&&Ld(r,g,d);break;case 3:var v=r.updateQueue;if(v!==null){if(a=null,r.child!==null)switch(r.child.tag){case 5:a=r.child.stateNode;break;case 1:a=r.child.stateNode}Ld(r,v,a)}break;case 5:var b=r.stateNode;if(a===null&&r.flags&4){a=b;var E=r.memoizedProps;switch(r.type){case"button":case"input":case"select":case"textarea":E.autoFocus&&a.focus();break;case"img":E.src&&(a.src=E.src)}}break;case 6:break;case 4:break;case 12:break;case 13:if(r.memoizedState===null){var U=r.alternate;if(U!==null){var $=U.memoizedState;if($!==null){var G=$.dehydrated;G!==null&&yi(G)}}}break;case 19:case 17:case 21:case 22:case 23:case 25:break;default:throw Error(i(163))}ct||r.flags&512&&bl(r)}catch(V){$e(r,r.return,V)}}if(r===n){oe=null;break}if(a=r.sibling,a!==null){a.return=r.return,oe=a;break}oe=r.return}}function Lh(n){for(;oe!==null;){var r=oe;if(r===n){oe=null;break}var a=r.sibling;if(a!==null){a.return=r.return,oe=a;break}oe=r.return}}function Dh(n){for(;oe!==null;){var r=oe;try{switch(r.tag){case 0:case 11:case 15:var a=r.return;try{aa(4,r)}catch(E){$e(r,a,E)}break;case 1:var d=r.stateNode;if(typeof d.componentDidMount=="function"){var p=r.return;try{d.componentDidMount()}catch(E){$e(r,p,E)}}var g=r.return;try{bl(r)}catch(E){$e(r,g,E)}break;case 5:var v=r.return;try{bl(r)}catch(E){$e(r,v,E)}}}catch(E){$e(r,r.return,E)}if(r===n){oe=null;break}var b=r.sibling;if(b!==null){b.return=r.return,oe=b;break}oe=r.return}}var Ay=Math.ceil,sa=te.ReactCurrentDispatcher,Tl=te.ReactCurrentOwner,Ft=te.ReactCurrentBatchConfig,Ie=0,et=null,Je=null,ot=0,_t=0,Wr=On(0),Xe=0,Bi=null,or=0,la=0,Cl=0,Ui=null,wt=null,El=0,Vr=1/0,wn=null,ca=!1,_l=null,Bn=null,ua=!1,Un=null,da=0,Hi=0,Il=null,ha=-1,pa=0;function mt(){return(Ie&6)!==0?Ge():ha!==-1?ha:ha=Ge()}function Hn(n){return(n.mode&1)===0?1:(Ie&2)!==0&&ot!==0?ot&-ot:fy.transition!==null?(pa===0&&(pa=_u()),pa):(n=Oe,n!==0||(n=window.event,n=n===void 0?16:Fu(n.type)),n)}function Kt(n,r,a,d){if(50<Hi)throw Hi=0,Il=null,Error(i(185));hi(n,a,d),((Ie&2)===0||n!==et)&&(n===et&&((Ie&2)===0&&(la|=a),Xe===4&&Wn(n,ot)),kt(n,d),a===1&&Ie===0&&(r.mode&1)===0&&(Vr=Ge()+500,Uo&&Dn()))}function kt(n,r){var a=n.callbackNode;fg(n,r);var d=jo(n,n===et?ot:0);if(d===0)a!==null&&Tu(a),n.callbackNode=null,n.callbackPriority=0;else if(r=d&-d,n.callbackPriority!==r){if(a!=null&&Tu(a),r===1)n.tag===0?my(Fh.bind(null,n)):bd(Fh.bind(null,n)),uy(function(){(Ie&6)===0&&Dn()}),a=null;else{switch(Iu(d)){case 1:a=cs;break;case 4:a=Cu;break;case 16:a=xo;break;case 536870912:a=Eu;break;default:a=xo}a=Gh(a,Mh.bind(null,n))}n.callbackPriority=r,n.callbackNode=a}}function Mh(n,r){if(ha=-1,pa=0,(Ie&6)!==0)throw Error(i(327));var a=n.callbackNode;if($r()&&n.callbackNode!==a)return null;var d=jo(n,n===et?ot:0);if(d===0)return null;if((d&30)!==0||(d&n.expiredLanes)!==0||r)r=ma(n,d);else{r=d;var p=Ie;Ie|=2;var g=Bh();(et!==n||ot!==r)&&(wn=null,Vr=Ge()+500,sr(n,r));do try{Ly();break}catch(b){zh(n,b)}while(!0);Ys(),sa.current=g,Ie=p,Je!==null?r=0:(et=null,ot=0,r=Xe)}if(r!==0){if(r===2&&(p=us(n),p!==0&&(d=p,r=Pl(n,p))),r===1)throw a=Bi,sr(n,0),Wn(n,d),kt(n,Ge()),a;if(r===6)Wn(n,d);else{if(p=n.current.alternate,(d&30)===0&&!Ry(p)&&(r=ma(n,d),r===2&&(g=us(n),g!==0&&(d=g,r=Pl(n,g))),r===1))throw a=Bi,sr(n,0),Wn(n,d),kt(n,Ge()),a;switch(n.finishedWork=p,n.finishedLanes=d,r){case 0:case 1:throw Error(i(345));case 2:lr(n,wt,wn);break;case 3:if(Wn(n,d),(d&130023424)===d&&(r=El+500-Ge(),10<r)){if(jo(n,0)!==0)break;if(p=n.suspendedLanes,(p&d)!==d){mt(),n.pingedLanes|=n.suspendedLanes&p;break}n.timeoutHandle=Ms(lr.bind(null,n,wt,wn),r);break}lr(n,wt,wn);break;case 4:if(Wn(n,d),(d&4194240)===d)break;for(r=n.eventTimes,p=-1;0<d;){var v=31-Vt(d);g=1<<v,v=r[v],v>p&&(p=v),d&=~g}if(d=p,d=Ge()-d,d=(120>d?120:480>d?480:1080>d?1080:1920>d?1920:3e3>d?3e3:4320>d?4320:1960*Ay(d/1960))-d,10<d){n.timeoutHandle=Ms(lr.bind(null,n,wt,wn),d);break}lr(n,wt,wn);break;case 5:lr(n,wt,wn);break;default:throw Error(i(329))}}}return kt(n,Ge()),n.callbackNode===a?Mh.bind(null,n):null}function Pl(n,r){var a=Ui;return n.current.memoizedState.isDehydrated&&(sr(n,r).flags|=256),n=ma(n,r),n!==2&&(r=wt,wt=a,r!==null&&Al(r)),n}function Al(n){wt===null?wt=n:wt.push.apply(wt,n)}function Ry(n){for(var r=n;;){if(r.flags&16384){var a=r.updateQueue;if(a!==null&&(a=a.stores,a!==null))for(var d=0;d<a.length;d++){var p=a[d],g=p.getSnapshot;p=p.value;try{if(!$t(g(),p))return!1}catch{return!1}}}if(a=r.child,r.subtreeFlags&16384&&a!==null)a.return=r,r=a;else{if(r===n)break;for(;r.sibling===null;){if(r.return===null||r.return===n)return!0;r=r.return}r.sibling.return=r.return,r=r.sibling}}return!0}function Wn(n,r){for(r&=~Cl,r&=~la,n.suspendedLanes|=r,n.pingedLanes&=~r,n=n.expirationTimes;0<r;){var a=31-Vt(r),d=1<<a;n[a]=-1,r&=~d}}function Fh(n){if((Ie&6)!==0)throw Error(i(327));$r();var r=jo(n,0);if((r&1)===0)return kt(n,Ge()),null;var a=ma(n,r);if(n.tag!==0&&a===2){var d=us(n);d!==0&&(r=d,a=Pl(n,d))}if(a===1)throw a=Bi,sr(n,0),Wn(n,r),kt(n,Ge()),a;if(a===6)throw Error(i(345));return n.finishedWork=n.current.alternate,n.finishedLanes=r,lr(n,wt,wn),kt(n,Ge()),null}function Rl(n,r){var a=Ie;Ie|=1;try{return n(r)}finally{Ie=a,Ie===0&&(Vr=Ge()+500,Uo&&Dn())}}function ar(n){Un!==null&&Un.tag===0&&(Ie&6)===0&&$r();var r=Ie;Ie|=1;var a=Ft.transition,d=Oe;try{if(Ft.transition=null,Oe=1,n)return n()}finally{Oe=d,Ft.transition=a,Ie=r,(Ie&6)===0&&Dn()}}function Ol(){_t=Wr.current,ze(Wr)}function sr(n,r){n.finishedWork=null,n.finishedLanes=0;var a=n.timeoutHandle;if(a!==-1&&(n.timeoutHandle=-1,cy(a)),Je!==null)for(a=Je.return;a!==null;){var d=a;switch(Ws(d),d.tag){case 1:d=d.type.childContextTypes,d!=null&&zo();break;case 3:Br(),ze(yt),ze(at),nl();break;case 5:el(d);break;case 4:Br();break;case 13:ze(He);break;case 19:ze(He);break;case 10:Js(d.type._context);break;case 22:case 23:Ol()}a=a.return}if(et=n,Je=n=Vn(n.current,null),ot=_t=r,Xe=0,Bi=null,Cl=la=or=0,wt=Ui=null,nr!==null){for(r=0;r<nr.length;r++)if(a=nr[r],d=a.interleaved,d!==null){a.interleaved=null;var p=d.next,g=a.pending;if(g!==null){var v=g.next;g.next=p,d.next=v}a.pending=d}nr=null}return n}function zh(n,r){do{var a=Je;try{if(Ys(),Qo.current=ta,Xo){for(var d=We.memoizedState;d!==null;){var p=d.queue;p!==null&&(p.pending=null),d=d.next}Xo=!1}if(ir=0,Ze=Qe=We=null,Oi=!1,Li=0,Tl.current=null,a===null||a.return===null){Xe=1,Bi=r,Je=null;break}e:{var g=n,v=a.return,b=a,E=r;if(r=ot,b.flags|=32768,E!==null&&typeof E=="object"&&typeof E.then=="function"){var U=E,$=b,G=$.tag;if(($.mode&1)===0&&(G===0||G===11||G===15)){var V=$.alternate;V?($.updateQueue=V.updateQueue,$.memoizedState=V.memoizedState,$.lanes=V.lanes):($.updateQueue=null,$.memoizedState=null)}var re=uh(v);if(re!==null){re.flags&=-257,dh(re,v,b,g,r),re.mode&1&&ch(g,U,r),r=re,E=U;var ae=r.updateQueue;if(ae===null){var se=new Set;se.add(E),r.updateQueue=se}else ae.add(E);break e}else{if((r&1)===0){ch(g,U,r),Ll();break e}E=Error(i(426))}}else if(Be&&b.mode&1){var qe=uh(v);if(qe!==null){(qe.flags&65536)===0&&(qe.flags|=256),dh(qe,v,b,g,r),Gs(Ur(E,b));break e}}g=E=Ur(E,b),Xe!==4&&(Xe=2),Ui===null?Ui=[g]:Ui.push(g),g=v;do{switch(g.tag){case 3:g.flags|=65536,r&=-r,g.lanes|=r;var O=sh(g,E,r);Od(g,O);break e;case 1:b=E;var P=g.type,D=g.stateNode;if((g.flags&128)===0&&(typeof P.getDerivedStateFromError=="function"||D!==null&&typeof D.componentDidCatch=="function"&&(Bn===null||!Bn.has(D)))){g.flags|=65536,r&=-r,g.lanes|=r;var K=lh(g,b,r);Od(g,K);break e}}g=g.return}while(g!==null)}Hh(a)}catch(le){r=le,Je===a&&a!==null&&(Je=a=a.return);continue}break}while(!0)}function Bh(){var n=sa.current;return sa.current=ta,n===null?ta:n}function Ll(){(Xe===0||Xe===3||Xe===2)&&(Xe=4),et===null||(or&268435455)===0&&(la&268435455)===0||Wn(et,ot)}function ma(n,r){var a=Ie;Ie|=2;var d=Bh();(et!==n||ot!==r)&&(wn=null,sr(n,r));do try{Oy();break}catch(p){zh(n,p)}while(!0);if(Ys(),Ie=a,sa.current=d,Je!==null)throw Error(i(261));return et=null,ot=0,Xe}function Oy(){for(;Je!==null;)Uh(Je)}function Ly(){for(;Je!==null&&!ag();)Uh(Je)}function Uh(n){var r=$h(n.alternate,n,_t);n.memoizedProps=n.pendingProps,r===null?Hh(n):Je=r,Tl.current=null}function Hh(n){var r=n;do{var a=r.alternate;if(n=r.return,(r.flags&32768)===0){if(a=Cy(a,r,_t),a!==null){Je=a;return}}else{if(a=Ey(a,r),a!==null){a.flags&=32767,Je=a;return}if(n!==null)n.flags|=32768,n.subtreeFlags=0,n.deletions=null;else{Xe=6,Je=null;return}}if(r=r.sibling,r!==null){Je=r;return}Je=r=n}while(r!==null);Xe===0&&(Xe=5)}function lr(n,r,a){var d=Oe,p=Ft.transition;try{Ft.transition=null,Oe=1,Dy(n,r,a,d)}finally{Ft.transition=p,Oe=d}return null}function Dy(n,r,a,d){do $r();while(Un!==null);if((Ie&6)!==0)throw Error(i(327));a=n.finishedWork;var p=n.finishedLanes;if(a===null)return null;if(n.finishedWork=null,n.finishedLanes=0,a===n.current)throw Error(i(177));n.callbackNode=null,n.callbackPriority=0;var g=a.lanes|a.childLanes;if(gg(n,g),n===et&&(Je=et=null,ot=0),(a.subtreeFlags&2064)===0&&(a.flags&2064)===0||ua||(ua=!0,Gh(xo,function(){return $r(),null})),g=(a.flags&15990)!==0,(a.subtreeFlags&15990)!==0||g){g=Ft.transition,Ft.transition=null;var v=Oe;Oe=1;var b=Ie;Ie|=4,Tl.current=null,Iy(n,a),Ah(a,n),ny(Ls),So=!!Os,Ls=Os=null,n.current=a,Py(a),sg(),Ie=b,Oe=v,Ft.transition=g}else n.current=a;if(ua&&(ua=!1,Un=n,da=p),g=n.pendingLanes,g===0&&(Bn=null),ug(a.stateNode),kt(n,Ge()),r!==null)for(d=n.onRecoverableError,a=0;a<r.length;a++)p=r[a],d(p.value,{componentStack:p.stack,digest:p.digest});if(ca)throw ca=!1,n=_l,_l=null,n;return(da&1)!==0&&n.tag!==0&&$r(),g=n.pendingLanes,(g&1)!==0?n===Il?Hi++:(Hi=0,Il=n):Hi=0,Dn(),null}function $r(){if(Un!==null){var n=Iu(da),r=Ft.transition,a=Oe;try{if(Ft.transition=null,Oe=16>n?16:n,Un===null)var d=!1;else{if(n=Un,Un=null,da=0,(Ie&6)!==0)throw Error(i(331));var p=Ie;for(Ie|=4,oe=n.current;oe!==null;){var g=oe,v=g.child;if((oe.flags&16)!==0){var b=g.deletions;if(b!==null){for(var E=0;E<b.length;E++){var U=b[E];for(oe=U;oe!==null;){var $=oe;switch($.tag){case 0:case 11:case 15:zi(8,$,g)}var G=$.child;if(G!==null)G.return=$,oe=G;else for(;oe!==null;){$=oe;var V=$.sibling,re=$.return;if(Ch($),$===U){oe=null;break}if(V!==null){V.return=re,oe=V;break}oe=re}}}var ae=g.alternate;if(ae!==null){var se=ae.child;if(se!==null){ae.child=null;do{var qe=se.sibling;se.sibling=null,se=qe}while(se!==null)}}oe=g}}if((g.subtreeFlags&2064)!==0&&v!==null)v.return=g,oe=v;else e:for(;oe!==null;){if(g=oe,(g.flags&2048)!==0)switch(g.tag){case 0:case 11:case 15:zi(9,g,g.return)}var O=g.sibling;if(O!==null){O.return=g.return,oe=O;break e}oe=g.return}}var P=n.current;for(oe=P;oe!==null;){v=oe;var D=v.child;if((v.subtreeFlags&2064)!==0&&D!==null)D.return=v,oe=D;else e:for(v=P;oe!==null;){if(b=oe,(b.flags&2048)!==0)try{switch(b.tag){case 0:case 11:case 15:aa(9,b)}}catch(le){$e(b,b.return,le)}if(b===v){oe=null;break e}var K=b.sibling;if(K!==null){K.return=b.return,oe=K;break e}oe=b.return}}if(Ie=p,Dn(),tn&&typeof tn.onPostCommitFiberRoot=="function")try{tn.onPostCommitFiberRoot(vo,n)}catch{}d=!0}return d}finally{Oe=a,Ft.transition=r}}return!1}function Wh(n,r,a){r=Ur(a,r),r=sh(n,r,1),n=Fn(n,r,1),r=mt(),n!==null&&(hi(n,1,r),kt(n,r))}function $e(n,r,a){if(n.tag===3)Wh(n,n,a);else for(;r!==null;){if(r.tag===3){Wh(r,n,a);break}else if(r.tag===1){var d=r.stateNode;if(typeof r.type.getDerivedStateFromError=="function"||typeof d.componentDidCatch=="function"&&(Bn===null||!Bn.has(d))){n=Ur(a,n),n=lh(r,n,1),r=Fn(r,n,1),n=mt(),r!==null&&(hi(r,1,n),kt(r,n));break}}r=r.return}}function My(n,r,a){var d=n.pingCache;d!==null&&d.delete(r),r=mt(),n.pingedLanes|=n.suspendedLanes&a,et===n&&(ot&a)===a&&(Xe===4||Xe===3&&(ot&130023424)===ot&&500>
vendor: 4,508 bytes, line 9
9Ge()-El?sr(n,0):Cl|=a),kt(n,r)}function Vh(n,r){r===0&&((n.mode&1)===0?r=1:(r=ko,ko<<=1,(ko&130023424)===0&&(ko=4194304)));var a=mt();n=yn(n,r),n!==null&&(hi(n,r,a),kt(n,a))}function Fy(n){var r=n.memoizedState,a=0;r!==null&&(a=r.retryLane),Vh(n,a)}function zy(n,r){var a=0;switch(n.tag){case 13:var d=n.stateNode,p=n.memoizedState;p!==null&&(a=p.retryLane);break;case 19:d=n.stateNode;break;default:throw Error(i(314))}d!==null&&d.delete(r),Vh(n,a)}var $h;$h=function(n,r,a){if(n!==null)if(n.memoizedProps!==r.pendingProps||yt.current)vt=!0;else{if((n.lanes&a)===0&&(r.flags&128)===0)return vt=!1,Ty(n,r,a);vt=(n.flags&131072)!==0}else vt=!1,Be&&(r.flags&1048576)!==0&&Nd(r,Wo,r.index);switch(r.lanes=0,r.tag){case 2:var d=r.type;ia(n,r),n=r.pendingProps;var p=Rr(r,at.current);zr(r,a),p=ol(null,r,d,n,p,a);var g=al();return r.flags|=1,typeof p=="object"&&p!==null&&typeof p.render=="function"&&p.$$typeof===void 0?(r.tag=1,r.memoizedState=null,r.updateQueue=null,xt(d)?(g=!0,Bo(r)):g=!1,r.memoizedState=p.state!==null&&p.state!==void 0?p.state:null,Xs(r),p.updater=na,r.stateNode=p,p._reactInternals=r,hl(r,d,n,a),r=gl(null,r,d,!0,g,a)):(r.tag=0,Be&&g&&Hs(r),pt(null,r,p,a),r=r.child),r;case 16:d=r.elementType;e:{switch(ia(n,r),n=r.pendingProps,p=d._init,d=p(d._payload),r.type=d,p=r.tag=Uy(d),n=qt(d,n),p){case 0:r=fl(null,r,d,n,a);break e;case 1:r=yh(null,r,d,n,a);break e;case 11:r=hh(null,r,d,n,a);break e;case 14:r=ph(null,r,d,qt(d.type,n),a);break e}throw Error(i(306,d,""))}return r;case 0:return d=r.type,p=r.pendingProps,p=r.elementType===d?p:qt(d,p),fl(n,r,d,p,a);case 1:return d=r.type,p=r.pendingProps,p=r.elementType===d?p:qt(d,p),yh(n,r,d,p,a);case 3:e:{if(xh(r),n===null)throw Error(i(387));d=r.pendingProps,g=r.memoizedState,p=g.element,Rd(n,r),Jo(r,d,null,a);var v=r.memoizedState;if(d=v.element,g.isDehydrated)if(g={element:d,isDehydrated:!1,cache:v.cache,pendingSuspenseBoundaries:v.pendingSuspenseBoundaries,transitions:v.transitions},r.updateQueue.baseState=g,r.memoizedState=g,r.flags&256){p=Ur(Error(i(423)),r),r=vh(n,r,d,a,p);break e}else if(d!==p){p=Ur(Error(i(424)),r),r=vh(n,r,d,a,p);break e}else for(Et=Rn(r.stateNode.containerInfo.firstChild),Ct=r,Be=!0,Gt=null,a=Pd(r,null,d,a),r.child=a;a;)a.flags=a.flags&-3|4096,a=a.sibling;else{if(Dr(),d===p){r=vn(n,r,a);break e}pt(n,r,d,a)}r=r.child}return r;case 5:return Dd(r),n===null&&$s(r),d=r.type,p=r.pendingProps,g=n!==null?n.memoizedProps:null,v=p.children,Ds(d,p)?v=null:g!==null&&Ds(d,g)&&(r.flags|=32),gh(n,r),pt(n,r,v,a),r.child;case 6:return n===null&&$s(r),null;case 13:return wh(n,r,a);case 4:return Zs(r,r.stateNode.containerInfo),d=r.pendingProps,n===null?r.child=Mr(r,null,d,a):pt(n,r,d,a),r.child;case 11:return d=r.type,p=r.pendingProps,p=r.elementType===d?p:qt(d,p),hh(n,r,d,p,a);case 7:return pt(n,r,r.pendingProps,a),r.child;case 8:return pt(n,r,r.pendingProps.children,a),r.child;case 12:return pt(n,r,r.pendingProps.children,a),r.child;case 10:e:{if(d=r.type._context,p=r.pendingProps,g=r.memoizedProps,v=p.value,Me(Go,d._currentValue),d._currentValue=v,g!==null)if($t(g.value,v)){if(g.children===p.children&&!yt.current){r=vn(n,r,a);break e}}else for(g=r.child,g!==null&&(g.return=r);g!==null;){var b=g.dependencies;if(b!==null){v=g.child;for(var E=b.firstContext;E!==null;){if(E.context===d){if(g.tag===1){E=xn(-1,a&-a),E.tag=2;var U=g.updateQueue;if(U!==null){U=U.shared;var $=U.pending;$===null?E.next=E:(E.next=$.next,$.next=E),U.pending=E}}g.lanes|=a,E=g.alternate,E!==null&&(E.lanes|=a),Ks(g.return,a,r),b.lanes|=a;break}E=E.next}}else if(g.tag===10)v=g.type===r.type?null:g.child;else if(g.tag===18){if(v=g.return,v===null)throw Error(i(341));v.lanes|=a,b=v.alternate,b!==null&&(b.lanes|=a),Ks(v,a,r),v=g.sibling}else v=g.child;if(v!==null)v.return=g;else for(v=g;v!==null;){if(v===r){v=null;break}if(g=v.sibling,g!==null){g.return=v.return,v=g;break}v=v.return}g=v}pt(n,r,p.children,a),r=r.child}return r;case 9:return p=r.type,d=r.pendingProps.children,zr(r,a),p=Dt(p),d=d(p),r.flags|=1,pt(n,r,d,a),r.child;case 14:return d=r.type,p=qt(d,r.pendingProps),p=qt(d.type,p),ph(n,r,d,p,a);case 15:return mh(n,r,r.type,r.pendingProps,a);case 17:return d=r.type,p=r.pendingProps,p=r.elementType===d?p:qt(d,p),ia(n,r),r.tag=1,xt(d)?(n=!0,Bo(r)):n=!1,zr(r,a),oh(r,d,p),hl(r,d,p,a),gl(null,r,d,!0,n,a);case 19:return jh(n,r,a);case 22:return fh(n,r,a)}throw Error(i(156,r.tag))};function Gh(n,r){return Su(n,r)}function By(n,r,a,d){this.tag=n,this.key=a,this.sibling=this.child=this.return=this.stateNode=this.t
vendor: 5,714 bytes, line 9
9ype=this.elementType=null,this.index=0,this.ref=null,this.pendingProps=r,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=d,this.subtreeFlags=this.flags=0,this.deletions=null,this.childLanes=this.lanes=0,this.alternate=null}function zt(n,r,a,d){return new By(n,r,a,d)}function Dl(n){return n=n.prototype,!(!n||!n.isReactComponent)}function Uy(n){if(typeof n=="function")return Dl(n)?1:0;if(n!=null){if(n=n.$$typeof,n===Z)return 11;if(n===J)return 14}return 2}function Vn(n,r){var a=n.alternate;return a===null?(a=zt(n.tag,r,n.key,n.mode),a.elementType=n.elementType,a.type=n.type,a.stateNode=n.stateNode,a.alternate=n,n.alternate=a):(a.pendingProps=r,a.type=n.type,a.flags=0,a.subtreeFlags=0,a.deletions=null),a.flags=n.flags&14680064,a.childLanes=n.childLanes,a.lanes=n.lanes,a.child=n.child,a.memoizedProps=n.memoizedProps,a.memoizedState=n.memoizedState,a.updateQueue=n.updateQueue,r=n.dependencies,a.dependencies=r===null?null:{lanes:r.lanes,firstContext:r.firstContext},a.sibling=n.sibling,a.index=n.index,a.ref=n.ref,a}function fa(n,r,a,d,p,g){var v=2;if(d=n,typeof n=="function")Dl(n)&&(v=1);else if(typeof n=="string")v=5;else e:switch(n){case ne:return cr(a.children,p,g,r);case ue:v=8,p|=8;break;case fe:return n=zt(12,a,r,p|2),n.elementType=fe,n.lanes=g,n;case ye:return n=zt(13,a,r,p),n.elementType=ye,n.lanes=g,n;case ie:return n=zt(19,a,r,p),n.elementType=ie,n.lanes=g,n;case je:return ga(a,p,g,r);default:if(typeof n=="object"&&n!==null)switch(n.$$typeof){case R:v=10;break e;case ee:v=9;break e;case Z:v=11;break e;case J:v=14;break e;case ke:v=16,d=null;break e}throw Error(i(130,n==null?n:typeof n,""))}return r=zt(v,a,r,p),r.elementType=n,r.type=d,r.lanes=g,r}function cr(n,r,a,d){return n=zt(7,n,d,r),n.lanes=a,n}function ga(n,r,a,d){return n=zt(22,n,d,r),n.elementType=je,n.lanes=a,n.stateNode={isHidden:!1},n}function Ml(n,r,a){return n=zt(6,n,null,r),n.lanes=a,n}function Fl(n,r,a){return r=zt(4,n.children!==null?n.children:[],n.key,r),r.lanes=a,r.stateNode={containerInfo:n.containerInfo,pendingChildren:null,implementation:n.implementation},r}function Hy(n,r,a,d,p){this.tag=r,this.containerInfo=n,this.finishedWork=this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=-1,this.callbackNode=this.pendingContext=this.context=null,this.callbackPriority=0,this.eventTimes=ds(0),this.expirationTimes=ds(-1),this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=ds(0),this.identifierPrefix=d,this.onRecoverableError=p,this.mutableSourceEagerHydrationData=null}function zl(n,r,a,d,p,g,v,b,E){return n=new Hy(n,r,a,b,E),r===1?(r=1,g===!0&&(r|=8)):r=0,g=zt(3,null,null,r),n.current=g,g.stateNode=n,g.memoizedState={element:d,isDehydrated:a,cache:null,transitions:null,pendingSuspenseBoundaries:null},Xs(g),n}function Wy(n,r,a){var d=3<arguments.length&&arguments[3]!==void 0?arguments[3]:null;return{$$typeof:F,key:d==null?null:""+d,children:n,containerInfo:r,implementation:a}}function qh(n){if(!n)return Ln;n=n._reactInternals;e:{if(Qn(n)!==n||n.tag!==1)throw Error(i(170));var r=n;do{switch(r.tag){case 3:r=r.stateNode.context;break e;case 1:if(xt(r.type)){r=r.stateNode.__reactInternalMemoizedMergedChildContext;break e}}r=r.return}while(r!==null);throw Error(i(171))}if(n.tag===1){var a=n.type;if(xt(a))return kd(n,a,r)}return r}function Yh(n,r,a,d,p,g,v,b,E){return n=zl(a,d,!0,n,p,g,v,b,E),n.context=qh(null),a=n.current,d=mt(),p=Hn(a),g=xn(d,p),g.callback=r??null,Fn(a,g,p),n.current.lanes=p,hi(n,p,d),kt(n,d),n}function ya(n,r,a,d){var p=r.current,g=mt(),v=Hn(p);return a=qh(a),r.context===null?r.context=a:r.pendingContext=a,r=xn(g,v),r.payload={element:n},d=d===void 0?null:d,d!==null&&(r.callback=d),n=Fn(p,r,v),n!==null&&(Kt(n,p,v,g),Yo(n,p,v)),v}function xa(n){return n=n.current,n.child?(n.child.tag===5,n.child.stateNode):null}function Jh(n,r){if(n=n.memoizedState,n!==null&&n.dehydrated!==null){var a=n.retryLane;n.retryLane=a!==0&&a<r?a:r}}function Bl(n,r){Jh(n,r),(n=n.alternate)&&Jh(n,r)}function Vy(){return null}var Kh=typeof reportError=="function"?reportError:function(n){console.error(n)};function Ul(n){this._internalRoot=n}va.prototype.render=Ul.prototype.render=function(n){var r=this._internalRoot;if(r===null)throw Error(i(409));ya(n,r,null,null)},va.prototype.unmount=Ul.prototype.unmount=function(){var n=this._internalRoot;if(n!==null){this._internalRoot=null;var r=n.containerInfo;ar(function(){ya(null,n,null,null)}),r[pn]=null}};function va(n){this._internalRoot=n}va.prototype.unstable_scheduleHydration=function(n){if(n){var r=Ru();n={blockedOn:null,target:n,priority:r};for(var a=0;a<In.length&&r!==0&&r<In[a].priority;a++);In.splice(a,0,n),a===0&&Du(n)}};function Hl(n){return!(!n||n.nodeType!==1&&n.nodeType!==9&&n.nodeType!==11)}function wa(n){return!(!n||n.nodeType!==1&&n.nodeType!==9&&n.nodeType!==11&&(n.nodeType!==8||n.nodeValue!==" react-mount-point-unstable "))}function Qh(){}function $y(n,r,a,d,p){if(p){if(typeof d=="function"){var g=d;d=function(){var U=xa(v);g.call(U)}}var v=Yh(r,d,n,0,null,!1,!1,"",Qh);return n._reactRootContainer=v,n[pn]=v.current,Ti(n.nodeType===8?n.parentNode:n),ar(),v}for(;p=n.lastChild;)n.removeChild(p);if(typeof d=="function"){var b=d;d=function(){var U=xa(E);b.call(U)}}var E=zl(n,0,!1,null,null,!1,!1,"",Qh);return n._reactRootContainer=E,n[pn]=E.current,Ti(n.nodeType===8?n.parentNode:n),ar(function(){ya(r,E,a,d)}),E}function ka(n,r,a,d,p){var g=a._reactRootContainer;if(g){var v=g;if(typeof p=="function"){var b=p;p=function(){var E=xa(v);b.call(E)}}ya(r,v,n,p)}else v=$y(a,r,n,p,d);return xa(v)}Pu=function(n){switch(n.tag){case 3:var r=n.stateNode;
9if(r.current.memoizedState.isDehydrated){var a=di(r.pendingLanes);a!==0&&(hs(r,a|1),kt(r,Ge()),(Ie&6)===0&&(Vr=Ge()+500,Dn()))}break;case 13:ar(function(){var d=yn(n,1);if(d!==null){var p=mt();Kt(d,n,1,p)}}),Bl(n,1)}},ps=function(n){if(n.tag===13){var r=yn(n,134217728);if(r!==null){var a=mt();Kt(r,n,134217728,a)}Bl(n,134217728)}},Au=function(n){if(n.tag===13){var r=Hn(n),a=yn(n,r);if(a!==null){var d=mt();Kt(a,n,r,d)}Bl(n,r)}},Ru=function(){return Oe},Ou=function(n,r){var a=Oe;try{return Oe=n,r()}finally{Oe=a}},os=function(n,r,a){switch(r){case"input":if(wr(n,a),r=a.name,a.type==="radio"&&r!=null){for(a=n;a.parentNode;)a=a.parentNode;for(a=a.querySelectorAll("input[name="+JSON.stringify(""+r)+'][type="radio"]'),r=0;r<a.length;r++){var d=a[r];if(d!==n&&d.form===n.form){var p=Fo(d);if(!p)throw Error(i(90));uo(d),wr(d,p)}}}break;case"textarea":mo(n,a);break;case"select":r=a.value,r!=null&&Sn(n,!!a.multiple,r,!1)}},xu=Rl,vu=ar;var Gy={usingClientEntryPoint:!1,Events:[_i,Pr,Fo,gu,yu,Rl]},Wi={findFiberByHostInstance:Xn,bundleType:0,version:"18.3.1",rendererPackageName:"react-dom"},qy={bundleType:Wi.bundleType,version:Wi.version,rendererPackageName:Wi.rendererPackageName,rendererConfig:Wi.rendererConfig,overrideHookState:null,overrideHookStateDeletePath:null,overrideHookStateRenamePath:null,overrideProps:null,overridePropsDeletePath:null,overridePropsRenamePath:null,setErrorHandler:null,setSuspenseHandler:null,scheduleUpdate:null,currentDispatcherRef:te.ReactCurrentDispatcher,findHostInstanceByFiber:function(n){return n=bu(n),n===null?null:n.stateNode},findFiberByHostInstance:Wi.findFiberByHostInstance||Vy,findHostInstancesForRefresh:null,scheduleRefresh:null,scheduleRoot:null,setRefreshHandler:null,getCurrentFiber:null,reconcilerVersion:"18.3.1-next-f1338f8080-20240426"};if(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__<"u"){var ja=__REACT_DEVTOOLS_GLOBAL_HOOK__;if(!ja.isDisabled&&ja.supportsFiber)try{vo=ja.inject(qy),tn=ja}catch{}}return jt.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=Gy,jt.createPortal=function(n,r){var a=2<arguments.length&&arguments[2]!==void 0?arguments[2]:null;if(!Hl(r))throw Error(i(200));return Wy(n,r,null,a)},jt.createRoot=function(n,r){if(!Hl(n))throw Error(i(299));var a=!1,d="",p=Kh;return r!=null&&(r.unstable_strictMode===!0&&(a=!0),r.identifierPrefix!==void 0&&(d=r.identifierPrefix),r.onRecoverableError!==void 0&&(p=r.onRecoverableError)),r=zl(n,1,!1,null,null,a,!1,d,p),n[pn]=r.current,Ti(n.nodeType===8?n.parentNode:n),new Ul(r)},jt.findDOMNode=function(n){if(n==null)return null;if(n.nodeType===1)return n;var r=n._reactInternals;if(r===void 0)throw typeof n.render=="function"?Error(i(188)):(n=Object.keys(n).join(","),Error(i(268,n)));return n=bu(r),n=n===null?null:n.stateNode,n},jt.flushSync=function(n){return ar(n)},jt.hydrate=function(n,r,a){if(!wa(r))throw Error(i(200));return ka(null,n,r,!0,a)},jt.hydrateRoot=function(n,r,a){if(!Hl(n))throw Error(i(405));var d=a!=null&&a.hydratedSources||null,p=!1,g="",v=Kh;if(a!=null&&(a.unstable_strictMode===!0&&(p=!0),a.identifierPrefix!==void 0&&(g=a.identifierPrefix),a.onRecoverableError!==void 0&&(v=a.onRecoverableError)),r=Yh(r,null,n,1,a??null,p,!1,g,v),n[pn]=r.current,Ti(n),d)for(n=0;n<d.length;n++)a=d[n],p=a._getVersion,p=p(a._source),r.mutableSourceEagerHydrationData==null?r.mutableSourceEagerHydrationData=[a,p]:r.mutableSourceEagerHydrationData.push(a,p);return new va(r)},jt.render=function(n,r,a){if(!wa(r))throw Error(i(200));return ka(null,n,r,!1,a)},jt.unmountComponentAtNode=function(n){if(!wa(n))throw Error(i(40));return n._reactRootContainer?(ar(function(){ka(null,null,n,!1,function(){n._reactRootContainer=null,n[pn]=null})}),!0):!1},jt.unstable_batchedUpdates=Rl,jt.unstable_renderSubtreeIntoContainer=function(n,r,a,d){if(!wa(a))throw Error(i(200));if(n==null||n._reactInternals===void 0)throw Error(i(38));return ka(n,r,a,!1,d)},jt.version="18.3.1-next-f1338f8080-20240426",jt}var op;function tx(){if(op)return $l.exports;op=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(o){console.error(o)}}return e(),$l.exports=ex(),$l.exports}var ap;function nx(){if(ap)return ba;ap=1;var e=tx();return ba.createRoot=e.createRoot,ba.hydrateRoot=e.hydrateRoot,ba}var rx=nx();const ix="modulepreload",ox=function(e){return"/"+e},sp={},Yn=function(o,i,s){let l=Promise.resolve();if(i&&i.length>0){let m=function(f){return Promise.all(f.map(y=>Promise.resolve(y).then(x=>({status:"fulfilled",value:x}),x=>({status:"rejected",reason:x}))))};document.getElementsByTagName("link");const u=document.querySelector("meta[property=csp-nonce]"),h=u?.nonce||u?.getAttribute("nonce");l=m(i.map(f=>{if(f=ox(f),f in sp)return;sp[f]=!0;const y=f.endsWith(".css"),x=y?'[rel="stylesheet"]':"";if(document.querySelector(`link[href="${f}"]${x}`))return;const w=document.createElement("link");if(w.rel=y?"stylesheet":ix,y||(w.as="script"),w.crossOrigin="",w.href=f,h&&w.setAttribute("nonce",h),document.head.appendChild(w),y)return new Promise((k,N)=>{w.addEventListener("load",k),w.addEventListener("error",()=>N(new Error(`Unable to preload CSS for ${f}`)))})}))}function c(u){const h=new Event("vite:preloadError",{cancelable:!0});if(h.payload=u,window.dispatchEvent(h),!h.defaultPrevented)throw u}return l.then(u=>{for(const h of u||[])h.status==="rejected"&&c(h.reason);return o().catch(c)})};
9var C=Dc();const nT=Lc(C),lp={"/company/contact":"/contact/sales","/legal/terms":"/legal/terms-of-service","/legal/privacy":"/legal/privacy-policy","/on-prem/same-platform":"/on-prem","/on-prem/compare":"/on-prem","/docs/getting-started/create-account":"/docs/getting-started#create-account","/docs/getting-started/first-instance":"/docs/getting-started#first-instance","/docs/getting-started/connect-ssh":"/docs/getting-started#ssh-keys","/docs/how-to/resize-instance":"/docs/how-to#instances","/docs/how-to/manage-firewall":"/docs/how-to#networking","/docs/how-to/use-object-storage":"/docs/how-to#storage","/docs/concepts/instances-packages":"/docs/concepts#packages","/docs/concepts/networking":"/docs/concepts#vpc-and-subnets","/docs/reference":"/docs/reference/api"};var Mc=/^(?:[a-z][a-z0-9+.-]*:|[\\/]{2})/i,mm=/^[\\/]{2}/;function ax(e,o){return o+e.replace(/\\/g,"/")}var cp="popstate";function up(e){return typeof e=="object"&&e!=null&&"pathname"in e&&"search"in e&&"hash"in e&&"state"in e&&"key"in e}function sx(e={}){function o(s,l){let c=l.state?.masked,{pathname:u,search:h,hash:m}=c||s.location;return xc("",{pathname:u,search:h,hash:m},l.state&&l.state.usr||null,l.state&&l.state.key||"default",c?{pathname:s.location.pathname,search:s.location.search,hash:s.location.hash}:void 0)}function i(s,l){return typeof l=="string"?l:to(l)}return cx(o,i,null,e)}function Ue(e,o){if(e===!1||e===null||typeof e>"u")throw new Error(o)}function Ht(e,o){if(!e){typeof console<"u"&&console.warn(o);try{throw new Error(o)}catch{}}}function lx(){return Math.random().toString(36).substring(2,10)}function dp(e,o){return{usr:e.state,key:e.key,idx:o,masked:e.mask?{pathname:e.pathname,search:e.search,hash:e.hash}:void 0}}function xc(e,o,i=null,s,l){return{pathname:typeof e=="string"?e:e.pathname,search:"",hash:"",...typeof o=="string"?Zr(o):o,state:i,key:o&&o.key||s||lx(),mask:l}}function to({pathname:e="/",search:o="",hash:i=""}){return o&&o!=="?"&&(e+=o.charAt(0)==="?"?o:"?"+o),i&&i!=="#"&&(e+=i.charAt(0)==="#"?i:"#"+i),e}function Zr(e){let o={};if(e){let i=e.indexOf("#");i>=0&&(o.hash=e.substring(i),e=e.substring(0,i));let s=e.indexOf("?");s>=0&&(o.search=e.substring(s),e=e.substring(0,s)),e&&(o.pathname=e)}return o}function cx(e,o,i,s={}){let{window:l=document.defaultView,v5Compat:c=!1}=s,u=l.history,h="POP",m=null,f=y();f==null&&(f=0,u.replaceState({...u.state,idx:f},""));function y(){return(u.state||{idx:null}).idx}function x(){h="POP";let T=y(),_=T==null?null:T-f;f=T,m&&m({action:h,location:I.location,delta:_})}function w(T,_){h="PUSH";let z=up(T)?T:xc(I.location,T,_);f=y()+1;let B=dp(z,f),te=I.createHref(z.mask||z);try{u.pushState(B,"",te)}catch(Y){if(Y instanceof DOMException&&Y.name==="DataCloneError")throw Y;l.location.assign(te)}c&&m&&m({action:h,location:I.location,delta:1})}function k(T,_){h="REPLACE";let z=up(T)?T:xc(I.location,T,_);f=y();let B=dp(z,f),te=I.createHref(z.mask||z);u.replaceState(B,"",te),c&&m&&m({action:h,location:I.location,delta:0})}function N(T){return ux(l,T)}let I={get action(){return h},get location(){return e(l,u)},listen(T){if(m)throw new Error("A history only accepts one active listener");return l.addEventListener(cp,x),m=T,()=>{l.removeEventListener(cp,x),m=null}},createHref(T){return o(l,T)},createURL:N,encodeLocation(T){let _=N(T);return{pathname:_.pathname,search:_.search,hash:_.hash}},push:w,replace:k,go(T){return u.go(T)}};return I}function ux(e,o,i=!1){let s="http://localhost";e&&(s=e.location.origin!=="null"?e.location.origin:e.location.href),Ue(s,"No window.location.(origin|href) available to create URL");let l=typeof o=="string"?o:to(o);return l=l.replace(/ $/,"%20"),!i&&mm.test(l)&&(l=s+l),new URL(l,s)}function fm(e,o,i="/"){return dx(e,o,i,!1)}function dx(e,o,i,s,l){let c=typeof o=="string"?Zr(o):o,u=jn(c.pathname||"/",i);if(u==null)return null;let h=hx(e),m=null,f=bx(u);for(let y=0;m==null&&y<h.length;++y)m=jx(h[y],f,s);return m}function hx(e){let o=gm(e);return px(o),o}function gm(e,o=[],i=[],s="",l=!1){let c=(u,h,m=l,f)=>{let y={relativePath:f===void 0?u.path||"":f,caseSensitive:u.caseSensitive===!0,childrenIndex:h,route:u};if(y.relativePath.startsWith("/")){if(!y.relativePath.startsWith(s)&&m)return;Ue(y.relativePath.startsWith(s),`Absolute route path "${y.relativePath}" nested under path "${s}
9" is not valid. An absolute child route path must start with the combined path of all its parent routes.`),y.relativePath=y.relativePath.slice(s.length)}let x=Qt([s,y.relativePath]),w=i.concat(y);u.children&&u.children.length>0&&(Ue(u.index!==!0,`Index routes must not have child routes. Please remove all child routes from route path "${x}".`),gm(u.children,o,w,x,m)),!(u.path==null&&!u.index)&&o.push({path:x,score:wx(x,u.index),routesMeta:w.map((k,N)=>{let[I,T]=vm(k.relativePath,k.caseSensitive,N===w.length-1);return{...k,matcher:I,compiledParams:T}})})};return e.forEach((u,h)=>{if(u.path===""||!u.path?.includes("?"))c(u,h);else for(let m of ym(u.path))c(u,h,!0,m)}),o}function ym(e){let o=e.split("/");if(o.length===0)return[];let[i,...s]=o,l=i.endsWith("?"),c=i.replace(/\?$/,"");if(s.length===0)return l?[c,""]:[c];let u=ym(s.join("/")),h=[];return h.push(...u.map(m=>m===""?c:[c,m].join("/"))),l&&h.push(...u),h.map(m=>e.startsWith("/")&&m===""?"/":m)}function px(e){e.sort((o,i)=>o.score!==i.score?i.score-o.score:kx(o.routesMeta.map(s=>s.childrenIndex),i.routesMeta.map(s=>s.childrenIndex)))}var mx=/^:[\w-]+$/,fx=3,gx=2,yx=1,xx=10,vx=-2,hp=e=>e==="*";function wx(e,o){let i=e.split("/"),s=i.length;return i.some(hp)&&(s+=vx),o&&(s+=gx),i.filter(l=>!hp(l)).reduce((l,c)=>l+(mx.test(c)?fx:c===""?yx:xx),s)}function kx(e,o){return e.length===o.length&&e.slice(0,-1).every((s,l)=>s===o[l])?e[e.length-1]-o[o.length-1]:0}function jx(e,o,i=!1){let{routesMeta:s}=e,l={},c="/",u=[];for(let h=0;h<s.length;++h){let m=s[h],f=h===s.length-1,y=c==="/"?o:o.slice(c.length)||"/",x={path:m.relativePath,caseSensitive:m.caseSensitive,end:f},w=m.matcher&&m.compiledParams?xm(x,y,m.matcher,m.compiledParams):Ua(x,y),k=m.route;if(!w&&f&&i&&!s[s.length-1].route.index&&(w=Ua({path:m.relativePath,caseSensitive:m.caseSensitive,end:!1},y)),!w)return null;
9Object.assign(l,w.params),u.push({params:l,pathname:Qt([c,w.pathname]),pathnameBase:Tx(Qt([c,w.pathnameBase])),route:k}),w.pathnameBase!=="/"&&(c=Qt([c,w.pathnameBase]))}return u}function Ua(e,o){typeof e=="string"&&(e={path:e,caseSensitive:!1,end:!0});let[i,s]=vm(e.path,e.caseSensitive,e.end);return xm(e,o,i,s)}function xm(e,o,i,s){let l=o.match(i);if(!l)return null;let c=l[0],u=c.replace(/(.)\/+$/,"$1"),h=l.slice(1);return{params:s.reduce((f,{paramName:y,isOptional:x},w)=>{if(y==="*"){let N=h[w]||"";u=c.slice(0,c.length-N.length).replace(/(.)\/+$/,"$1")}const k=h[w];return x&&!k?f[y]=void 0:f[y]=(k||"").replace(/%2F/g,"/"),f},{}),pathname:c,pathnameBase:u,pattern:e}}function vm(e,o=!1,i=!0){Ht(e==="*"||!e.endsWith("*")||e.endsWith("/*"),`Route path "${e}" will be treated as if it were "${e.replace(/\*$/,"/*")}" because the \`*\` character must always follow a \`/\` in the pattern. To get rid of this warning, please change the route path to "${e.replace(/\*$/,"/*")}".`);let s=[],l="^"+e.replace(/\/*\*?$/,"").replace(/^\/*/,"/").replace(/[\\.*+^${}|()[\]]/g,"\\$&").replace(/\/:([\w-]+)(\?)?/g,(u,h,m,f,y)=>{if(s.push({paramName:h,isOptional:m!=null}),m){let x=y.charAt(f+u.length);return x&&x!=="/"?"/([^\\/]*)":"(?:/([^\\/]*))?"}return"/([^\\/]+)"}).replace(/\/([\w-]+)\?(\/|$)/g,"(/$1)?$2");return e.endsWith("*")?(s.push({paramName:"*"}),l+=e==="*"||e==="/*"?"(.*)$":"(?:\\/(.+)|\\/*)$"):i?l+="\\/*$":e!==""&&e!=="/"&&(l+="(?:(?=\\/|$))"),[new RegExp(l,o?void 0:"i"),s]}function bx(e){try{return e.split("/").map(o=>decodeURIComponent(o).replace(/\//g,"%2F")).join("/")}catch(o){return Ht(!1,`The URL path "${e}" could not be decoded because it is a malformed URL segment. This is probably due to a bad percent encoding (${o}).`),e}}function jn(e,o){if(o==="/")return e;if(!e.toLowerCase().startsWith(o.toLowerCase()))return null;let i=o.endsWith("/")?o.length-1:o.length,s=e.charAt(i);return s&&s!=="/"?null:e.slice(i)||"/"}function Nx(e,o="/"){let{pathname:i,search:s="",hash:l=""}=typeof e=="string"?Zr(e):e,c;return i?(i=wm(i),i.startsWith("/")?c=pp(i.substring(1),"/"):c=pp(i,o)):c=o,{pathname:c,search:Cx(s),hash:Ex(l)}}function pp(e,o){let i=Ha(o).split("/");return e.split("/").forEach(l=>{l===".."?i.length>1&&i.pop():l!=="."&&i.push(l)}),i.length>1?i.join("/"):"/"}function Yl(e,o,i,s){return`Cannot include a '${e}' character in a manually specified \`to.${o}\` field [${JSON.stringify(s)}].  Please separate it out to the \`to.${i}\` field. Alternatively you may provide the full path as a string in <Link to="..."> and the router will parse it for you.`}function Sx(e){return e.filter((o,i)=>i===0||o.route.path&&o.route.path.length>0)}function Fc(e){let o=Sx(e);return o.map((i,s)=>s===o.length-1?i.pathname:i.pathnameBase)}function Ya(e,o,i,s=!1){let l;typeof e=="string"?l=Zr(e):(l={...e},Ue(!l.pathname||!l.pathname.includes("?"),Yl("?","pathname","search",l)),Ue(!l.pathname||!l.pathname.includes("#"),Yl("#","pathname","hash",l)),Ue(!l.search||!l.search.includes("#"),Yl("#","search","hash",l)));let c=e===""||l.pathname==="",u=c?"/":l.pathname,h;if(u==null)h=i;else{let x=o.length-1;if(!s&&u.startsWith("..")){let w=u.split("/");for(;w[0]==="..";)w.shift(),x-=1;l.pathname=w.join("/")}h=x>=0?o[x]:"/"}let m=Nx(l,h),f=u&&u!=="/"&&u.endsWith("/"),y=(c||u===".")&&i.endsWith("/");return!m.pathname.endsWith("/")&&(f||y)&&(m.pathname+="/"),m}var wm=e=>e.replace(/[\\/]{2,}/g,"/"),Qt=e=>wm(e.join("/")),Ha=e=>e.replace(/\/+$/,""),Tx=e=>Ha(e).replace(/^\/*/,"/"),Cx=e=>!e||e==="?"?"":e.startsWith("?")?e:"?"+e,Ex=e=>!e||e==="#"?"":e.startsWith("#")?e:"#"+e,_x=class{constructor(e,o,i,s=!1){this.status=e,this.statusText=o||"",this.internal=s,i instanceof Error?(this.data=i.toString(),this.error=i):this.data=i}};function Ix(e){return e!=null&&typeof e.status=="number"&&typeof e.statusText=="string"&&typeof e.internal=="boolean"&&"data"in e}function Px(e){let o=e.map(i=>i.route.path).filter(Boolean);return Qt(o)||"/"}var km=typeof window<"u"&&typeof window.document<"u"&&typeof window.document.createElement<"u";function jm(e,o){let i=e;if(typeof i!="string"||!Mc.test(i))return{absoluteURL:void 0,isExternal:!1,to:i};let s=i,l=!1;if(km)try{let c=new URL(window.location.href),u=mm.test(i)?new URL(ax(i,c.protocol)):new URL(i),h=jn(u.pathname,o);u.origin===c.origin&&h!=null?i=h+u.search+u.hash:l=!0}catch{Ht(!1,`<Link to="${i}">
9 contains an invalid URL which will probably break when clicked - please update to a valid URL path.`)}return{absoluteURL:s,isExternal:l,to:i}}Object.getOwnPropertyNames(Object.prototype).sort().join("\0");var bm=["POST","PUT","PATCH","DELETE"];new Set(bm);var Ax=["GET",...bm];new Set(Ax);var Rx=["about:","blob:","chrome:","chrome-untrusted:","content:","data:","devtools:","file:","filesystem:","javascript:"];function Ox(e){try{return Rx.includes(new URL(e).protocol)}catch{return!1}}var ei=C.createContext(null);ei.displayName="DataRouter";var Ja=C.createContext(null);Ja.displayName="DataRouterState";var Nm=C.createContext(!1);function Lx(){return C.useContext(Nm)}var Sm=C.createContext({isTransitioning:!1});Sm.displayName="ViewTransition";var Dx=C.createContext(new Map);Dx.displayName="Fetchers";var Mx=C.createContext(null);Mx.displayName="Await";var At=C.createContext(null);At.displayName="Navigation";var oo=C.createContext(null);oo.displayName="Location";var Wt=C.createContext({outlet:null,matches:[],isDataRoute:!1});Wt.displayName="Route";var zc=C.createContext(null);zc.displayName="RouteError";var Tm="REACT_ROUTER_ERROR",Fx="REDIRECT",zx="ROUTE_ERROR_RESPONSE";function Bx(e){if(e.startsWith(`${Tm}:${Fx}:{`))try{let o=JSON.parse(e.slice(28));if(typeof o=="object"&&o&&typeof o.status=="number"&&typeof o.statusText=="string"&&typeof o.location=="string"&&typeof o.reloadDocument=="boolean"&&typeof o.replace=="boolean")return o}catch{}}function Ux(e){if(e.startsWith(`${Tm}:${zx}:{`))try{let o=JSON.parse(e.slice(40));if(typeof o=="object"&&o&&typeof o.status=="number"&&typeof o.statusText=="string")return new _x(o.status,o.statusText,o.data)}catch{}}function Hx(e,{relative:o}={}){Ue(ti(),"useHref() may be used only in the context of a <Router> component.");let{basename:i,navigator:s}=C.useContext(At),{hash:l,pathname:c,search:u}=ao(e,{relative:o}),h=c;return i!=="/"&&(h=c==="/"?i:Qt([i,c])),s.createHref({pathname:h,search:u,hash:l})}function ti(){return C.useContext(oo)!=null}function gt(){return Ue(ti(),"useLocation() may be used only in the context of a <Router> component."),C.useContext(oo).location}var Cm="You should call navigate() in a React.useEffect(), not when your component is first rendered.";function Em(e){C.useContext(At).static||C.useLayoutEffect(e)}function Bc(){let{isDataRoute:e}=C.useContext(Wt);return e?rv():Wx()}function Wx(){Ue(ti(),"useNavigate() may be used only in the context of a <Router> component.");let e=C.useContext(ei),{basename:o,navigator:i}=C.useContext(At),{matches:s}=C.useContext(Wt),{pathname:l}=gt(),c=JSON.stringify(Fc(s)),u=C.useRef(!1);return Em(()=>{u.current=!0}),C.useCallback((m,f={})=>{if(Ht(u.current,Cm),!u.current)return;if(typeof m=="number"){i.go(m);return}let y=Ya(m,JSON.parse(c),l,f.relative==="path");e==null&&o!=="/"&&(y.pathname=y.pathname==="/"?o:Qt([o,y.pathname])),(f.replace?i.replace:i.push)(y,f.state,f)},[o,i,c,l,e])}var Vx=C.createContext(null);function $x(e){let o=C.useContext(Wt).outlet;return C.useMemo(()=>o&&C.createElement(Vx.Provider,{value:e},o),[o,e])}function rT(){let{matches:e}=C.useContext(Wt);return e[e.length-1]?.params??{}}function ao(e,{relative:o}={}){let{matches:i}=C.useContext(Wt),{pathname:s}=gt(),l=JSON.stringify(Fc(i));return C.useMemo(()=>Ya(e,JSON.parse(l),s,o==="path"),[e,l,s,o])}function Gx(e,o){return _m(e,o)}function _m(e,o,i){Ue(ti(),"useRoutes() may be used only in the context of a <Router> component.");let{navigator:s}=C.useContext(At),{matches:l}=C.useContext(Wt),c=l[l.length-1],u=c?c.params:{},h=c?c.pathname:"/",m=c?c.pathnameBase:"/",f=c&&c.route;{let T=f&&f.path||"";Pm(h,!f||T.endsWith("*")||T.endsWith("*?"),`You rendered descendant <Routes> (or called \`useRoutes()\`) at "${h}" (under <Route path="${T}">) but the parent route path has no trailing "*". This means if you navigate deeper, the parent won't match anymore and therefore the child routes will never render.
10
11Please change the parent <Route path="${T}"> to <Route path="${T==="/"?"*":`${T}/*`}">.`)}let y=gt(),x;if(o){let T=typeof o=="string"?Zr(o):o;Ue(m==="/"||T.pathname?.startsWith(m),`When overriding the location using \`<Routes location>\` or \`useRoutes(routes, location)\`, the location pathname must begin with the portion of the URL pathname that was matched by all parent routes. The current pathname base is "${m}" but pathname "${T.pathname}" was given in the \`location\` prop.`),x=T}else x=y;let w=x.pathname||"/",k=w;if(m!=="/"){let T=m.replace(/^\//,"").split("/");k="/"+w.replace(/^\//,"").split("/").slice(T.length).join("/")}let N=i&&i.state.matches.length?i.state.matches.map(T=>Object.assign(T,{route:i.manifest[T.route.id]||T.route})):fm(e,{pathname:k});Ht(f||N!=null,`No routes matched location "${x.pathname}${x.search}${x.hash}" `),Ht(N==null||N[N.length-1].route.element!==void 0||N[N.length-1].route.Component!==void 0||N[N.length-1].route.lazy!==void 0,`Matched leaf route at location "${x.pathname}${x.search}${x.hash}" does not have an element or Component. This means it will render an <Outlet /> with a null value by default resulting in an "empty" page.`);let I=Qx(N&&N.map(T=>Object.assign({},T,{params:Object.assign({},u,T.params),pathname:Qt([m,s.encodeLocation?s.encodeLocation(T.pathname.replace(/%/g,"%25").replace(/\?/g,"%3F").replace(/#/g,"%23")).pathname:T.pathname]),pathnameBase:T.pathnameBase==="/"?m:Qt([m,s.encodeLocation?s.encodeLocation(T.pathnameBase.replace(/%/g,"%25").replace(/\?/g,"%3F").replace(/#/g,"%23")).pathname:T.pathnameBase])})),l,i);return o&&I?C.createElement(oo.Provider,{value:{location:{pathname:"/",search:"",hash:"",state:null,key:"default",mask:void 0,...x},navigationType:"POP"}},I):I}function qx(){let e=nv(),o=Ix(e)?`${e.status} ${e.statusText}`:e instanceof Error?e.message:JSON.stringify(e),i=e instanceof Error?e.stack:null,s="rgba(200,200,200, 0.5)",l={padding:"0.5rem",backgroundColor:s},c={padding:"2px 4px",backgroundColor:s},u=null;return console.error("Error handled by React Router default ErrorBoundary:",e),u=C.createElement(C.Fragment,null,C.createElement("p",null,"💿 Hey developer 👋"),C.createElement("p",null,"You can provide a way better UX than this when your app throws errors by providing your own ",C.createElement("code",{style:c},"ErrorBoundary")," or"," ",C.createElement("code",{style:c},"errorElement")," prop on your route.")),C.createElement(C.Fragment,null,C.createElement("h2",null,"Unexpected Application 
11Error!"),C.createElement("h3",{style:{fontStyle:"italic"}},o),i?C.createElement("pre",{style:l},i):null,u)}var Yx=C.createElement(qx,null),Im=class extends C.Component{constructor(e){super(e),this.state={location:e.location,revalidation:e.revalidation,error:e.error}}static getDerivedStateFromError(e){return{error:e}}static getDerivedStateFromProps(e,o){return o.location!==e.location||o.revalidation!=="idle"&&e.revalidation==="idle"?{error:e.error,location:e.location,revalidation:e.revalidation}:{error:e.error!==void 0?e.error:o.error,location:o.location,revalidation:e.revalidation||o.revalidation}}componentDidCatch(e,o){this.props.onError?this.props.onError(e,o):console.error("React Router caught the following error during render",e)}render(){let e=this.state.error;if(this.context&&typeof e=="object"&&e&&"digest"in e&&typeof e.digest=="string"){const i=Ux(e.digest);i&&(e=i)}let o=e!==void 0?C.createElement(Wt.Provider,{value:this.props.routeContext},C.createElement(zc.Provider,{value:e,children:this.props.component})):this.props.children;return this.context?C.createElement(Jx,{error:e},o):o}};Im.contextType=Nm;var Jl=new WeakMap;function Jx({children:e,error:o}){let{basename:i}=C.useContext(At);if(typeof o=="object"&&o&&"digest"in o&&typeof o.digest=="string"){let s=Bx(o.digest);if(s){let l=Jl.get(o);if(l)throw l;let c=jm(s.location,i),u=c.absoluteURL||c.to;if(Ox(u))throw new Error("Invalid redirect location");if(km&&!Jl.get(o))if(c.isExternal||s.reloadDocument)window.location.href=u;else{const h=Promise.resolve().then(()=>window.__reactRouterDataRouter.navigate(c.to,{replace:s.replace}));throw Jl.set(o,h),h}return C.createElement("meta",{httpEquiv:"refresh",content:`0;url=${u}`})}}return e}function Kx({routeContext:e,match:o,children:i}){let s=C.useContext(ei);return s&&s.static&&s.staticContext&&(o.route.errorElement||o.route.ErrorBoundary)&&(s.staticContext._deepestRenderedBoundaryId=o.route.id),C.createElement(Wt.Provider,{value:e},i)}function Qx(e,o=[],i){let s=i?.state;if(e==null){if(!s)return null;if(s.errors)e=s.matches;else if(o.length===0&&!s.initialized&&s.matches.length>0)e=s.matches;else return null}let l=e,c=s?.errors;if(c!=null){let y=l.findIndex(x=>x.route.id&&c?.[x.route.id]!==void 0);Ue(y>=0,`Could not find a matching route for errors on route IDs: ${Object.keys(c).join(",")}`),l=l.slice(0,Math.min(l.length,y+1))}let u=!1,h=-1;if(i&&s){u=s.renderFallback;for(let y=0;y<l.length;y++){let x=l[y];if((x.route.HydrateFallback||x.route.hydrateFallbackElement)&&(h=y),x.route.id){let{loaderData:w,errors:k}=s,N=x.route.loader&&!w.hasOwnProperty(x.route.id)&&(!k||k[x.route.id]===void 0);if(x.route.lazy||N){i.isStatic&&(u=!0),h>=0?l=l.slice(0,h+1):l=[l[0]];break}}}}let m=i?.onError,f=s&&m?(y,x)=>{m(y,{location:s.location,params:s.matches?.[0]?.params??{},pattern:Px(s.matches),errorInfo:x})}:void 0;return l.reduceRight((y,x,w)=>{let k,N=!1,I=null,T=null;s&&(k=c&&x.route.id?c[x.route.id]:void 0,I=x.route.errorElement||Yx,u&&(h<0&&w===0?(Pm("route-fallback",!1,"No `HydrateFallback` element provided to render during initial hydration"),N=!0,T=null):h===w&&(N=!0,T=x.route.hydrateFallbackElement||null)));let _=o.concat(l.slice(0,w+1)),z=()=>{let B;return k?B=I:N?B=T:x.route.Component?B=C.createElement(x.route.Component,null):x.route.element?B=x.route.element:B=y,C.createElement(Kx,{match:x,routeContext:{outlet:y,matches:_,isDataRoute:s!=null},children:B})};return s&&(x.route.ErrorBoundary||x.route.errorElement||w===0)?C.createElement(Im,{location:s.location,revalidation:s.revalidation,component:I,error:k,children:z(),routeContext:{outlet:null,matches:_,isDataRoute:!0},onError:f}):z()},null)}function Uc(e){return`${e} must be used within a data router.  See https://reactrouter.com/en/main/routers/picking-a-router.`}function Xx(e){let o=C.useContext(ei);return Ue(o,Uc(e)),o}function Zx(e){let o=C.useContext(Ja);return Ue(o,Uc(e)),o}function ev(e){let o=C.useContext(Wt);return Ue(o,Uc(e)),o}function Hc(e){let o=ev(e),i=o.matches[o.matches.length-1];return Ue(i.route.id,`${e} can only be used on routes that contain a unique "id"`),i.route.id}function tv(){return Hc("useRouteId")}function nv(){let e=C.useContext(zc),o=Zx("useRouteError"),i=Hc("useRouteError");return e!==void 0?e:o.errors?.[i]}function rv(){let{router:e}=Xx("useNavigate"),o=Hc("useNavigate"),i=C.useRef(!1);return Em(()=>{i.current=!0}
11),C.useCallback(async(l,c={})=>{Ht(i.current,Cm),i.current&&(typeof l=="number"?await e.navigate(l):await e.navigate(l,{fromRouteId:o,...c}))},[e,o])}var mp={};function Pm(e,o,i){!o&&!mp[e]&&(mp[e]=!0,Ht(!1,i))}C.memo(iv);function iv({routes:e,manifest:o,future:i,state:s,isStatic:l,onError:c}){return _m(e,void 0,{manifest:o,state:s,isStatic:l,onError:c})}function fp({to:e,replace:o,state:i,relative:s}){Ue(ti(),"<Navigate> may be used only in the context of a <Router> component.");let{static:l}=C.useContext(At);Ht(!l,"<Navigate> must not be used on the initial render in a <StaticRouter>. This is a no-op, but you should modify your code so the <Navigate> is only ever rendered in response to some user interaction or state change.");let{matches:c}=C.useContext(Wt),{pathname:u}=gt(),h=Bc(),m=Ya(e,Fc(c),u,s==="path"),f=JSON.stringify(m);return C.useEffect(()=>{h(JSON.parse(f),{replace:o,state:i,relative:s})},[h,f,s,o,i]),null}function Wc(e){return $x(e.context)}function Ve(e){Ue(!1,"A <Route> is only ever to be used as the child of <Routes> element, never rendered directly. Please wrap your <Route> in a <Routes>.")}function ov({basename:e="/",children:o=null,location:i,navigationType:s="POP",navigator:l,static:c=!1,useTransitions:u}){Ue(!ti(),"You cannot render a <Router> inside another <Router>. You should never have more than one in your app.");let h=e.replace(/^\/*/,"/"),m=C.useMemo(()=>({basename:h,navigator:l,static:c,useTransitions:u,future:{}}),[h,l,c,u]);typeof i=="string"&&(i=Zr(i));let{pathname:f="/",search:y="",hash:x="",state:w=null,key:k="default",mask:N}=i,I=C.useMemo(()=>{let T=jn(f,h);return T==null?null:{location:{pathname:T,search:y,hash:x,state:w,key:k,mask:N},navigationType:s}},[h,f,y,x,w,k,s,N]);return Ht(I!=null,`<Router basename="${h}"> is not able to match the URL "${f}${y}${x}" because it does not start with the basename, so the <Router> won't render anything.`),I==null?null:C.createElement(At.Provider,{value:m},C.createElement(oo.Provider,{children:o,value:I}))}function av({children:e,location:o}){return Gx(vc(e),o)}function vc(e,o=[]){let i=[];return C.Children.forEach(e,(s,l)=>{if(!C.isValidElement(s))return;let c=[...o,l];if(s.type===C.Fragment){i.push.apply(i,vc(s.props.children,c));return}Ue(s.type===Ve,`[${typeof s.type=="string"?s.type:s.type.name}] is not a <Route> component. All component children of <Routes> must be a <Route> or <React.Fragment>`),Ue(!s.props.index||!s.props.children,"An index route cannot have child routes.");let u={id:s.props.id||c.join("-"),caseSensitive:s.props.caseSensitive,element:s.props.element,Component:s.props.Component,index:s.props.index,path:s.props.path,middleware:s.props.middleware,loader:s.props.loader,action:s.props.action,hydrateFallbackElement:s.props.hydrateFallbackElement,HydrateFallback:s.props.HydrateFallback,errorElement:s.props.errorElement,ErrorBoundary:s.props.ErrorBoundary,hasErrorBoundary:s.props.hasErrorBoundary===!0||s.props.ErrorBoundary!=null||s.props.errorElement!=null,shouldRevalidate:s.props.shouldRevalidate,handle:s.props.handle,lazy:s.props.lazy};s.props.children&&(u.children=vc(s.props.children,c)),i.push(u)}),i}var Da="get",Ma="application/x-www-form-urlencoded";function Ka(e){return typeof HTMLElement<"u"&&e instanceof HTMLElement}function sv(e){return Ka(e)&&e.tagName.toLowerCase()==="button"}function lv(e){return Ka(e)&&e.tagName.toLowerCase()==="form"}function cv(e){return Ka(e)&&e.tagName.toLowerCase()==="input"}function uv(e){return!!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)}function dv(e,o){return e.button===0&&(!o||o==="_self")&&!uv(e)}function wc(e=""){return new URLSearchParams(typeof e=="string"||Array.isArray(e)||e instanceof URLSearchParams?e:Object.keys(e).reduce((o,i)=>{let s=e[i];return o.concat(Array.isArray(s)?s.map(l=>[i,l]):[[i,s]])},[]))}function hv(e,o){let i=wc(e);return o&&o.forEach((s,l)=>{i.has(l)||o.getAll(l).forEach(c=>{i.append(l,c)})}),i}var Na=null;function pv(){if(Na===null)try{new FormData(document.createElement("form"),0),Na=!1}catch{Na=!0}return Na}var mv=new Set(["application/x-www-form-urlencoded","multipart/form-data","text/plain"]);function Kl(e){return e!=null&&!mv.has(e)?(Ht(!1,`"${e}" is not a valid \`encType\` for \`<Form>\`/\`<fetcher.Form>\` and will default to "${Ma}"`),null):e}function fv(e,o){let i,s,l,c,u;if(lv(e)){let h=e.getAttribute("action");s=h?jn(h,o):null,i=e.getAttribute("method")||Da,l=Kl(e.getAttribute("enctype"))||Ma,c=new FormData(e)}else if(sv(e)||cv(e)&&(e.type==="submit"||e.type==="image")){let h=e.form;if(h==null)throw new Error('Cannot submit a <button> or <input type="submit"> without a <form>');let m=e.getAttribute("formaction")||h.getAttribute("action");if(s=m?jn(m,o):null,i=e.getAttribute("formmethod")||h.getAttribute("method")||Da,l=Kl(e.getAttribute("formenctype"))||Kl(h.getAttribute("enctype"))||Ma,c=new FormData(h,e),!pv()){let{name:f,type:y,value:x}=e;if(y==="image"){let w=f?`${f}.`:"";c.append(`${w}x`,"0"),c.append(`${w}y`,"0")}else f&&c.append(f,x)}}else{if(Ka(e))throw new Error('Cannot submit element that is not <form>, <button>, or <input type="submit|image">');
11i=Da,s=null,l=Ma,u=e}return c&&l==="text/plain"&&(u=c,c=void 0),{action:s,method:i.toLowerCase(),encType:l,formData:c,body:u}}Object.getOwnPropertyNames(Object.prototype).sort().join("\0");function Vc(e,o){if(e===!1||e===null||typeof e>"u")throw new Error(o)}function Am(e,o,i,s){let l=typeof e=="string"?new URL(e,typeof window>"u"?"server://singlefetch/":window.location.origin):e;return i?l.pathname.endsWith("/")?l.pathname=`${l.pathname}_.${s}`:l.pathname=`${l.pathname}.${s}`:l.pathname==="/"?l.pathname=`_root.${s}`:o&&jn(l.pathname,o)==="/"?l.pathname=`${Ha(o)}/_root.${s}`:l.pathname=`${Ha(l.pathname)}.${s}`,l}async function gv(e,o){if(e.id in o)return o[e.id];try{let i=await import(e.module);return o[e.id]=i,i}catch(i){return console.error(`Error loading route module \`${e.module}\`, reloading page...`),console.error(i),window.__reactRouterContext&&window.__reactRouterContext.isSpaMode,window.location.reload(),new Promise(()=>{})}}function yv(e){return e==null?!1:e.href==null?e.rel==="preload"&&typeof e.imageSrcSet=="string"&&typeof e.imageSizes=="string":typeof e.rel=="string"&&typeof e.href=="string"}async function xv(e,o,i){let s=await Promise.all(e.map(async l=>{let c=o.routes[l.route.id];if(c){let u=await gv(c,i);return u.links?u.links():[]}return[]}));return jv(s.flat(1).filter(yv).filter(l=>l.rel==="stylesheet"||l.rel==="preload").map(l=>l.rel==="stylesheet"?{...l,rel:"prefetch",as:"style"}:{...l,rel:"prefetch"}))}function gp(e,o,i,s,l,c){let u=(m,f)=>i[f]?m.route.id!==i[f].route.id:!0,h=(m,f)=>i[f].pathname!==m.pathname||i[f].route.path?.endsWith("*")&&i[f].params["*"]!==m.params["*"];return c==="assets"?o.filter((m,f)=>u(m,f)||h(m,f)):c==="data"?o.filter((m,f)=>{let y=s.routes[m.route.id];if(!y||!y.hasLoader)return!1;if(u(m,f)||h(m,f))return!0;if(m.route.shouldRevalidate){let x=m.route.shouldRevalidate({currentUrl:new URL(l.pathname+l.search+l.hash,window.origin),currentParams:i[0]?.params||{},nextUrl:new URL(e,window.origin),nextParams:m.params,defaultShouldRevalidate:!0});if(typeof x=="boolean")return x}return!0}):[]}function vv(e,o,{includeHydrateFallback:i}={}){return wv(e.map(s=>{let l=o.routes[s.route.id];if(!l)return[];let c=[l.module];return l.clientActionModule&&(c=c.concat(l.clientActionModule)),l.clientLoaderModule&&(c=c.concat(l.clientLoaderModule)),i&&l.hydrateFallbackModule&&(c=c.concat(l.hydrateFallbackModule)),l.imports&&(c=c.concat(l.imports)),c}).flat(1))}function wv(e){return[...new Set(e)]}function kv(e){let o={},i=Object.keys(e).sort();for(let s of i)o[s]=e[s];return o}function jv(e,o){let i=new Set;return new Set(o),e.reduce((s,l)=>{let c=JSON.stringify(kv(l));return i.has(c)||(i.add(c),s.push({key:c,link:l})),s},[])}function $c(){let e=C.useContext(ei);return Vc(e,"You must render this element inside a <DataRouterContext.Provider> element"),e}function bv(){let e=C.useContext(Ja);return Vc(e,"You must render this element inside a <DataRouterStateContext.Provider> element"),e}var Gc=C.createContext(void 0);Gc.displayName="FrameworkContext";function Qa(){let e=C.useContext(Gc);return Vc(e,"You must render this element inside a <HydratedRouter> element"),e}function Nv(e,o){let i=C.useContext(Gc),[s,l]=C.useState(!1),[c,u]=C.useState(!1),{onFocus:h,onBlur:m,onMouseEnter:f,onMouseLeave:y,onTouchStart:x}=o,w=C.useRef(null);C.useEffect(()=>{if(e==="render"&&u(!0),e==="viewport"){let I=_=>{_.forEach(z=>{u(z.isIntersecting)})},T=new IntersectionObserver(I,{threshold:.5});return w.current&&T.observe(w.current),()=>{T.disconnect()}}},[e]),C.useEffect(()=>{if(s){let I=setTimeout(()=>{u(!0)},100);return()=>{clearTimeout(I)}}},[s]);let k=()=>{l(!0)},N=()=>{l(!1),u(!1)};return i?e!=="intent"?[c,w,{}]:[c,w,{onFocus:$i(h,k),onBlur:$i(m,N),onMouseEnter:$i(f,k),onMouseLeave:$i(y,N),onTouchStart:$i(x,k)}]:[!1,w,{}]}function $i(e,o){return i=>{e&&e(i),i.defaultPrevented||o(i)}}function Sv({page:e,...o}){let i=Lx(),{nonce:s}=Qa(),{router:l}=$c(),c=C.useMemo(()=>fm(l.routes,e,l.basename),[l.routes,e,l.basename]);return c?(o.nonce==null&&s&&(o={...o,nonce:s}),i?C.createElement(Cv,{page:e,matches:c,...o}):C.createElement(Ev,{page:e,matches:c,...o})):null}function Tv(e){let{manifest:o,routeModules:i}=Qa(),[s,l]=C.useState([]);return C.useEffect(()=>{let c=!1;return xv(e,o,i).then(u=>{c||l(u)}),()=>{c=!0}},[e,o,i]),s}function Cv({page:e,matches:o,...i}){let s=gt(),{future:l}=Qa(),{basename:c}=$c(),u=C.useMemo(()=>
11{if(e===s.pathname+s.search+s.hash)return[];let h=Am(e,c,l.v8_trailingSlashAwareDataRequests,"rsc"),m=!1,f=[];for(let y of o)typeof y.route.shouldRevalidate=="function"?m=!0:f.push(y.route.id);return m&&f.length>0&&h.searchParams.set("_routes",f.join(",")),[h.pathname+h.search]},[c,l.v8_trailingSlashAwareDataRequests,e,s,o]);return C.createElement(C.Fragment,null,u.map(h=>C.createElement("link",{key:h,rel:"prefetch",as:"fetch",href:h,...i})))}function Ev({page:e,matches:o,...i}){let s=gt(),{future:l,manifest:c,routeModules:u}=Qa(),{basename:h}=$c(),{loaderData:m,matches:f}=bv(),y=C.useMemo(()=>gp(e,o,f,c,s,"data"),[e,o,f,c,s]),x=C.useMemo(()=>gp(e,o,f,c,s,"assets"),[e,o,f,c,s]),w=C.useMemo(()=>{if(e===s.pathname+s.search+s.hash)return[];let I=new Set,T=!1;if(o.forEach(z=>{let B=c.routes[z.route.id];!B||!B.hasLoader||(!y.some(te=>te.route.id===z.route.id)&&z.route.id in m&&u[z.route.id]?.shouldRevalidate||B.hasClientLoader?T=!0:I.add(z.route.id))}),I.size===0)return[];let _=Am(e,h,l.v8_trailingSlashAwareDataRequests,"data");return T&&I.size>0&&_.searchParams.set("_routes",o.filter(z=>I.has(z.route.id)).map(z=>z.route.id).join(",")),[_.pathname+_.search]},[h,l.v8_trailingSlashAwareDataRequests,m,s,c,y,o,e,u]),k=C.useMemo(()=>vv(x,c),[x,c]),N=Tv(x);return C.createElement(C.Fragment,null,w.map(I=>C.createElement("link",{key:I,rel:"prefetch",as:"fetch",href:I,...i})),k.map(I=>C.createElement("link",{key:I,rel:"modulepreload",href:I,...i})),N.map(({key:I,link:T})=>C.createElement("link",{key:I,nonce:i.nonce,...T,crossOrigin:T.crossOrigin??i.crossOrigin})))}function _v(...e){return o=>{e.forEach(i=>{typeof i=="function"?i(o):i!=null&&(i.current=o)})}}var Iv=typeof window<"u"&&typeof window.document<"u"&&typeof window.document.createElement<"u";try{Iv&&(window.__reactRouterVersion="7.18.2")}catch{}function Pv({basename:e,children:o,useTransitions:i,window:s}){let l=C.useRef();l.current==null&&(l.current=sx({window:s,v5Compat:!0}));let c=l.current,[u,h]=C.useState({action:c.action,location:c.location}),m=C.useCallback(f=>{i===!1?h(f):C.startTransition(()=>h(f))},[i]);return C.useLayoutEffect(()=>c.listen(m),[c,m]),C.createElement(ov,{basename:e,children:o,location:u.location,navigationType:u.action,navigator:c,useTransitions:i})}var M=C.forwardRef(function({onClick:o,discover:i="render",prefetch:s="none",relative:l,reloadDocument:c,replace:u,mask:h,state:m,target:f,to:y,preventScrollReset:x,viewTransition:w,defaultShouldRevalidate:k,...N},I){let{basename:T,navigator:_,useTransitions:z}=C.useContext(At),B=typeof y=="string"&&Mc.test(y),te=jm(y,T);y=te.to;let Y=Hx(y,{relative:l}),F=gt(),ne=null;if(h){let J=Ya(h,[],F.mask?F.mask.pathname:"/",!0);T!=="/"&&(J.pathname=J.pathname==="/"?T:Qt([T,J.pathname])),ne=_.createHref(J)}let[ue,fe,R]=Nv(s,N),ee=Ov(y,{replace:u,mask:h,state:m,target:f,preventScrollReset:x,relative:l,viewTransition:w,defaultShouldRevalidate:k,useTransitions:z});function Z(J){o&&o(J),J.defaultPrevented||ee(J)}let ye=!(te.isExternal||c),ie=C.createElement("a",{...N,...R,href:(ye?ne:void 0)||te.absoluteURL||Y,onClick:ye?Z:o,ref:_v(I,fe),target:f,"data-discover":!B&&i==="render"?"true":void 0});return ue&&!B?C.createElement(C.Fragment,null,ie,C.createElement(Sv,{page:Y})):ie});M.displayName="Link";var no=C.forwardRef(function({"aria-current":o="page",caseSensitive:i=!1,className:s="",end:l=!1,style:c,to:u,viewTransition:h,children:m,...f},y){let x=ao(u,{relative:f.relative}),w=gt(),k=C.useContext(Ja),{navigator:N,basename:I}=C.useContext(At),T=k!=null&&zv(x)&&h===!0,_=N.encodeLocation?N.encodeLocation(x).pathname:x.pathname,z=w.pathname,B=k&&k.navigation&&k.navigation.location?k.navigation.location.pathname:null;i||(z=z.toLowerCase(),B=B?B.toLowerCase():null,_=_.toLowerCase()),B&&I&&(B=jn(B,I)||B);const te=_!=="/"&&_.endsWith("/")?_.length-1:_.length;let Y=z===_||!l&&z.startsWith(_)&&z.charAt(te)==="/",F=B!=null&&(B===_||!l&&B.startsWith(_)&&B.charAt(_.length)==="/"),ne={isActive:Y,isPending:F,isTransitioning:T},ue=Y?o:void 0,fe;typeof s=="function"?fe=s(ne):fe=[s,Y?"active":null,F?"pending":null,T?"transitioning":null].filter(
11Boolean).join(" ");let R=typeof c=="function"?c(ne):c;return C.createElement(M,{...f,"aria-current":ue,className:fe,ref:y,style:R,to:u,viewTransition:h},typeof m=="function"?m(ne):m)});no.displayName="NavLink";var Av=C.forwardRef(({discover:e="render",fetcherKey:o,navigate:i,reloadDocument:s,replace:l,state:c,method:u=Da,action:h,onSubmit:m,relative:f,preventScrollReset:y,viewTransition:x,defaultShouldRevalidate:w,...k},N)=>{let{useTransitions:I}=C.useContext(At),T=Mv(),_=Fv(h,{relative:f}),z=u.toLowerCase()==="get"?"get":"post",B=typeof h=="string"&&Mc.test(h),te=Y=>{if(m&&m(Y),Y.defaultPrevented)return;Y.preventDefault();let F=Y.nativeEvent.submitter,ne=F?.getAttribute("formmethod")||u,ue=()=>T(F||Y.currentTarget,{fetcherKey:o,method:ne,navigate:i,replace:l,state:c,relative:f,preventScrollReset:y,viewTransition:x,defaultShouldRevalidate:w});I&&i!==!1?C.startTransition(()=>ue()):ue()};return C.createElement("form",{ref:N,method:z,action:_,onSubmit:s?m:te,...k,"data-discover":!B&&e==="render"?"true":void 0})});Av.displayName="Form";function Rv(e){return`${e} must be used within a data router.  See https://reactrouter.com/en/main/routers/picking-a-router.`}function Rm(e){let o=C.useContext(ei);return Ue(o,Rv(e)),o}function Ov(e,{target:o,replace:i,mask:s,state:l,preventScrollReset:c,relative:u,viewTransition:h,defaultShouldRevalidate:m,useTransitions:f}={}){let y=Bc(),x=gt(),w=ao(e,{relative:u});return C.useCallback(k=>{if(dv(k,o)){k.preventDefault();let N=i!==void 0?i:to(x)===to(w),I=()=>y(e,{replace:N,mask:s,state:l,preventScrollReset:c,relative:u,viewTransition:h,defaultShouldRevalidate:m});f?C.startTransition(()=>I()):I()}},[x,y,w,i,s,l,o,e,c,u,h,m,f])}function qc(e){Ht(typeof URLSearchParams<"u","You cannot use the `useSearchParams` hook in a browser that does not support the URLSearchParams API. If you need to support Internet Explorer 11, we recommend you load a polyfill such as https://github.com/ungap/url-search-params.");let o=C.useRef(wc(e)),i=C.useRef(!1),s=gt(),l=C.useMemo(()=>hv(s.search,i.current?null:o.current),[s.search]),c=Bc(),u=C.useCallback((h,m)=>{const f=wc(typeof h=="function"?h(new URLSearchParams(l)):h);i.current=!0,c("?"+f,m)},[c,l]);return[l,u]}var Lv=0,Dv=()=>`__${String(++Lv)}__`;function Mv(){let{router:e}=Rm("useSubmit"),{basename:o}=C.useContext(At),i=tv(),s=e.fetch,l=e.navigate;return C.useCallback(async(c,u={})=>{let{action:h,method:m,encType:f,formData:y,body:x}=fv(c,o);if(u.navigate===!1){let w=u.fetcherKey||Dv();await s(w,i,u.action||h,{defaultShouldRevalidate:u.defaultShouldRevalidate,preventScrollReset:u.preventScrollReset,formData:y,body:x,formMethod:u.method||m,formEncType:u.encType||f,flushSync:u.flushSync})}else await l(u.action||h,{defaultShouldRevalidate:u.defaultShouldRevalidate,preventScrollReset:u.preventScrollReset,formData:y,body:x,formMethod:u.method||m,formEncType:u.encType||f,replace:u.replace,state:u.state,fromRouteId:i,flushSync:u.flushSync,viewTransition:u.viewTransition})},[s,l,o,i])}function Fv(e,{relative:o}={}){let{basename:i}=C.useContext(At),s=C.useContext(Wt);Ue(s,"useFormAction must be used inside a RouteContext");let[l]=s.matches.slice(-1),c={...ao(e||".",{relative:o})},u=gt();if(e==null){c.search=u.search;let h=new URLSearchParams(c.search),m=h.getAll("index");if(m.some(y=>y==="")){h.delete("index"),m.filter(x=>x).forEach(x=>h.append("index",x));let y=h.toString();c.search=y?`?${y}`:""}}return(!e||e===".")&&l.route.index&&(c.search=c.search?c.search.replace(/^\?/,"?index&"):"?index"),i!=="/"&&(c.pathname=c.pathname==="/"?i:Qt([i,c.pathname])),to(c)}function zv(e,{relative:o}={}){let i=C.useContext(Sm);Ue(i!=null,"`useViewTransitionState` must be used within `react-router-dom`'s `RouterProvider`.  Did you accidentally import `RouterProvider` from `react-router`?");let{basename:s}=Rm("useViewTransitionState"),l=ao(e,{relative:o});if(!i.isTransitioning)return!1;let c=jn(i.currentLocation.pathname,s)||i.currentLocation.pathname,u=jn(i.nextLocation.pathname,s)||i.nextLocation.pathname;return Ua(l.pathname,u)!=null||Ua(l.pathname,c)!=null}const Fa=[{id:"supporter",name:"Supporter",monthly:10,summary:"Fund the work behind SmartOS and pkgsrc for the hosts you run.",includes:["Pays for SmartOS releases, security fixes, and pkgsrc builds","Community support through the wiki and mailing lists"],paymentLink:"https://buy.stripe.com/4gM4gsads7d1eezbJv6kg00"},{id:"standard",name:"Standard",monthly:50,summary:"Direct help from the team that builds SmartO
11S, on a best-effort basis.",includes:["Everything in Supporter","Email support from the SmartOS team","Best-effort response within one business day","Help with installs, upgrades, zones, and bhyve guests"],paymentLink:"https://buy.stripe.com/7sY8wIbhwdBpgmH3cZ6kg01"},{id:"production",name:"Production",monthly:200,summary:"Faster answers and upgrade guidance for hosts that carry real workloads.",includes:["Everything in Standard","Same-business-day response, best effort, aiming for four business hours","Upgrade planning review before platform changes","Priority on bug reports that affect your hosts"],paymentLink:"https://buy.stripe.com/14AcMYetI0OD1rN6pb6kg02"}],Bv="production",Uv="https://buy.stripe.com/aFa7sEbhw68Xdav9Bn6kg03",Om=[{path:"/",title:"Home",layout:"marketing",description:"Triton Cloud: cloud infrastructure with a predictable bill. Instances, Object Storage, and Networking from Parler Cloud Technologies."},{path:"/product/compute",title:"Compute",layout:"marketing",description:"Instances on Triton Cloud: one Package shape in five sizes, the operating systems you already know, and pricing that is capped at the monthly rate."},{path:"/product/object-storage",title:"Object Storage",layout:"marketing",description:"Manta Object Storage on Triton Cloud: S3-compatible Buckets reachable privately from your Instances, with a flat base and simple overage."},{path:"/product/networking",title:"Networking",layout:"marketing",description:"Networking on Triton Cloud: real VPCs with private subnets by default, one firewall model top to bottom, and egress costs spelled out."},{path:"/product/mcp",title:"Triton MCP",layout:"marketing",description:"Triton MCP: manage Instances, Buckets, and networks from a prompt. Your agent drives the same API the console and CLI use."},{path:"/on-prem",title:"Private Cloud & On-Prem Cloud Platform",layout:"marketing",description:"Run your own cloud, not your own cloud stack. Triton Private Cloud is an open-source on-prem cloud platform for projects, APIs, self-service resources, and infrastructure you control."},{path:"/presentation",title:"The VMware Migration Window",layout:"marketing",description:"Broadcom is shedding the mid-market to serve its top accounts. Why the 2026-2029 renewal cycle is the window, and what a full cloud operating model replaces vSphere with."},{path:"/on-prem/open-compute",title:"Open Compute",layout:"marketing",description:"Build your cloud like the hyperscalers do. Triton turns modular Open Compute infrastru
11cture into a cloud for AI, compute, and storage."},{path:"/smartos",title:"SmartOS",layout:"marketing",description:"SmartOS is the open-source, illumos-based hypervisor Triton runs on: Zones, a real IP per container, ZFS, DTrace, kernel resource controls, and KVM or bhyve VMs. Explore Triton Private Cloud or download the ISO."},{path:"/smartos/support",title:"SmartOS Support",layout:"marketing",description:`Support SmartOS per server: $${Fa[0].monthly}/month funds releases, security fixes, and pkgsrc builds, with direct support from the SmartOS team up to $${Fa[Fa.length-1].monthly}/month per server.`},{path:"/pkgsrc",title:"pkgsrc",layout:"marketing",description:"pkgsrc is portable package management developed and maintained by the Triton Cloud team, with binary packages and source builds for SmartOS, illumos, macOS, Linux, and NetBSD."},{path:"/pkgsrc/install-on-illumos",title:"Install pkgsrc on SmartOS and illumos",layout:"marketing",description:"Install or upgrade Triton Cloud pkgsrc binary packages on SmartOS and illumos, including standard and Global Zone tools package sets, checksum verification, and pkgin setup."},{path:"/pkgsrc/install-on-macos",title:"Install pkgsrc on macOS",layout:"marketing",description:"Install or upgrade Triton Cloud pkgsrc binary packages on Apple Silicon and Intel macOS, with checksum and signature verification and pkgin setup."},{path:"/pkgsrc/install-on-linux",title:"Install pkgsrc on Linux",layout:"marketing",description:"Install or upgrade Triton Cloud pkgsrc binary packages on Enterprise Linux 7 x86_64, with checksum and signature verification and pkgin setup."},{path:"/pkgsrc/install-on-netbsd",title:"Install pkgsrc on NetBSD",layout:"marketing",description:"Install or upgrade Triton Cloud pkgsrc binary packages on NetBSD amd64, with checksum and signature verification and pkgin setup."},{path:"/contact/sales",title:"Contact sales",layout:"marketing",description:"Contact Triton Cloud sales about pricing, early access, or running the platform on your own hardware."},{path:"/contact/support",title:"Support",layout:"marketing",description:"Get help with Triton Cloud: technical support for Instances, Networking, Object Storage, and billing questions."},{path:"/pricing",title:"Pricing",layout:"marketing",description:"Triton Cloud pricing: five Instance Packages billed hourly and capped at the monthly price, with transfer and IPv4 included, compared against publicly verified competitor prices."},{path:"/blog",title:"Blog",layout:"marketing",description:"Triton Cloud engineering articles, infrastructure guides, product updates, and the preserved Triton DataCenter and Joyent technical archive."},{path:"/company/about",title:"About",layout:"marketing",description:"This isn’t our first cloud. Triton’s lineage runs from Joyent’s public cloud through Samsung’s global infrastructure to independent stewardship, and Triton Cloud carries that operating experience forward."},{path:"/company/status",title:"Status",layout:"marketing",description:"Triton Cloud service status: how incidents and maintenance are communicated during early access, ahead of the dedicated status page."},{path:"/company/roadmap",title:"Roadmap",layout:"marketing",description:"The Triton Cloud roadmap: what is live today and what is coming next across Compute, Networking, and Object Storage."},{path:"/legal/terms-of-service",title:"Terms of Service",layout:"marketing",description:"Terms governing access to and use of Triton Cloud services, accounts, billing, customer content, acceptable use, and service responsibilities."},{path:"/legal/privacy-policy",title:"Privacy Policy",layout:"marketing",description:"How Triton Cloud collects, uses, shares, protects, retains, and responds to requests concerning personal information and customer data."},{path:"/legal/acceptable-use",title:"Acceptable Use Policy",layout:"marketing",description:"Rules for lawful and responsible use of Triton Cloud, including prohibited content, network abuse, email, security testing, and resource use."},{path:"/legal/cookie-policy",title:"Cookie Policy",layout:"marketing",description:"How Triton Cloud uses necessary, functional, analytics, and security cookies, and how visitors can control the
11ir privacy choices."},{path:"/legal/sla",title:"Service Level Agreement",layout:"marketing",description:"Triton Cloud Service Level Agreement.",noindex:!0},{path:"/legal/data-processing-addendum",title:"Data Processing Addendum",layout:"marketing",description:"Triton Cloud Data Processing Addendum.",noindex:!0},{path:"/docs",title:"Documentation",layout:"docs",description:"Triton Cloud documentation: getting started, how-to guides, concepts, and API, CLI, Terraform, and MCP references."},{path:"/docs/getting-started",title:"Getting Started",layout:"docs",description:"Get started with Triton Cloud: create an account, launch your first Instance, add an SSH key, and connect Triton MCP."},{path:"/docs/how-to",title:"How-To Guides",layout:"docs",description:"Triton Cloud how-to guides: Instances, Networking, Storage, billing, and MCP tasks step by step."},{path:"/docs/concepts",title:"Concepts",layout:"docs",description:"Triton Cloud concepts: Regions, VPCs and subnets, Packages, Teams and Projects, and Object Storage."},{path:"/docs/reference/api",title:"API Reference",layout:"docs",description:"Triton Cloud API reference: endpoints, authentication, and resources."},{path:"/docs/reference/cli",title:"CLI Reference",layout:"docs",description:"Triton Cloud CLI reference: commands for Instances, Networking, and Object Storage."},{path:"/docs/reference/terraform",title:"Terraform Reference",layout:"docs",description:"Triton Cloud Terraform provider reference: resources and configuration."},{path:"/docs/reference/mcp",title:"MCP Reference",layout:"docs",description:"Triton MCP reference: tools, setup, and connecting an agent to Triton Cloud."},{path:"/login",title:"Log in",layout:"bare",description:"Log in to the Triton Cloud console.",noindex:!0},{path:"/signup",title:"Get early access",layout:"bare",description:"Get early access to Triton Cloud.",noindex:!0}],Ut=[{name:"Squire",vcpu:1,memory:"2 GB",disk:"50 GB NVMe",transfer:"2 TB",monthly:5,hourly:.007,annual:50},{name:"Baron",vcpu:2,memory:"4 GB",disk:"50 GB NVMe",transfer:"2 TB",monthly:12,hourly:.017,annual:120},{name:"Viscount",vcpu:4,memory:"8 GB",disk:"50 GB NVMe",transfer:"2 TB",monthly:24,hourly:.033,annual:240},{name:"Earl",vcpu:8,memory:"16 GB",disk:"50 GB NVMe",transfer:"2 TB",monthly:48,hourly:.067,annual:480},{name:"Duke",vcpu:16,memory:"32 GB",disk:"50 GB NVMe",transfer:"2 TB",monthly:96,hourly:.133,annual:960}];function L({children:e,className:o="",delay:i=0}){const s=C.useRef(null);return C.useEffect(()=>{const l=s.current;if(!l||typeof IntersectionObserver>"u")return;l.classList.add("reveal--js");const c=new IntersectionObserver(u=>{for(const h of u)h.isIntersecting&&(l.classList.add("is-revealed"),c.disconnect())},{threshold:.15});return c.observe(l),()=>{c.disconnect(),l.classList.remove("reveal--js","is-revealed")}},[]),t.jsx("div",{ref:s,className:`reveal ${o}`,style:i?{transitionDelay:`calc(var(--motion-stagger) * ${Math.min(i,6)})`}:void 0,children:e})}function Yc(){return typeof window<"u"&&window.matchMedia("(prefers-reduced-motion: reduce)").matches}function Hv(e,o=.25){const[i,s]=C.useState(!1);return C.useEffect(()=>{const l=e.current;if(!l)return;const c=new IntersectionObserver(u=>{for(const h of u)s(h.isIntersecting)},{threshold:o});return c.observe(l),()=>c.disconnect()},[e,o]),i}let Sa=null;const Ql=new Set;function Wv(e,o=.25){const i=Hv(e,o),[s,l]=C.useState(!1);return C.useEffect(()=>{if(!i)return;const c=Symbol(),u=()=>{Sa===null&&(Sa=c,l(!0))};return u(),Ql.add(u),()=>{Ql.delete(u),Sa===c&&(Sa=null,l(!1),Ql.forEach(h=>h()))}},[i]),s}function Lm(e,o,i=24,s=.35){const[l,c]=C.useState(()=>typeof window>"u"?o:-1);return C.useEffect(()=>{const u=e.current;if(!u)return;if(Yc()){c(o);return}let h,m=!1;const f=new IntersectionObserver(y=>{!y.some(x=>x.isIntersecting)||m||(m=!0,f.disconnect(),c(0),h=window.setInterval(()=>{c(x=>x>=o?(window.clearInterval(h),x):x+1)},i))},{threshold:s});return f.observe(u),()=>{f.disconnect(),window.clearInterval(h)}},[e,o,i,s]),l}function Dm(){const e=C.useRef(null),o=Wv(e);return t.jsxs("div",{className:`diagram vpc-diagram ${o?"is-in-view":""}`,ref:e,role:"img","aria-label":"Production VPC with a public web subnet and a private database subnet without an internet route",children:[t.jsx("div",{className:"diagram__header mono",children:"vpc: production"}),t.jsx("div",{className:"vpc-diagram__internet mono",children:"internet"}),t.jsx("div",{className:"vpc-diagram__route","aria-hidden":"true"}),t.jsx("span",{className:"vpc-diagram__packet","aria-hidden":"true"}),t.jsxs("div",{className:"vpc-diagram__subnets",children:[t.jsxs("div",{className:"subnet subnet--public",children:[t.jsx("span",{className:"subnet__tag",children:"public"}),t.jsx("strong",{className:"mono",children:"web"}),t.jsx("span",{className:"subnet__node"}),t.jsx("span",{className:"subnet__node"})]}),t.jsxs("div",{className:"subnet subnet--private",children:[t.jsx("span",{className:"subnet__tag",children:"private"}),t.jsx("strong",{className:"mono",children:"db"}),t.jsx("span",{className:"subnet__node"}),t.jsx("small",{className:"mono",children:"no internet route"})]})]})]})}function Vv(e){return e.reduce((o,i)=>o+(i.kind==="cmd"?i.text.length+1:1),0)}function $v(e,o){let i=o;for(let s=0;s<e.length;s++){const l=e[s],c=l.kind==="cmd"?l.text.length+1:1;if(i<c)return{line:s,chars:l.kind==="cmd"?i:0};i-=c}return{line:e.length,chars:0}}function Gv({lines:e,title:o}){const i=C.useRef(null),s=Lm(i,Vv(e),24),l=s>=0,{line:c,chars:u}=l?$v(e,s):{line:-1,chars:0};return t.jsxs("div",{className:"terminal mono",ref:i,"aria-label":o,children:[t.jsxs("div",{className:"terminal__bar","aria-hidden":"true",children:[t.jsx("span",{className:"terminal__dot"}),t.jsx("span",{className:"terminal__dot"}),t.jsx("span",{className:"terminal__dot"}),t.jsx("span",{className:"terminal__title",children:o})]}),t.jsxs("pre",{className:"terminal__body",children:[e.map((h,m)=>{if(l&&m>c)return null;const f=l&&m===c&&h.kind==="cmd",y=f?h.text.slice(0,u):h.text;return l&&m===c&&h.kind!=="cmd"?null:t.jsxs("div",{className:`terminal__line terminal__line--${h.kind}`,children:[h.kind==="cmd"&&t.jsx("span",{className:"terminal__prompt",children:"$ "}),h.kind==="ok"&&t.jsx("span",{className:"terminal__check",children:"✔ "}),t.jsx("span",{children:y}),h.comment&&!f&&t.jsxs("span",{className:"terminal__comment",children:["  ",h.comment]}),f&&t.jsx("span",{className:"terminal__cursor","aria-hidden":"true"})]},m)}),l&&c>=e.length&&t.jsxs("div",{className:"terminal__line terminal__line--cmd",children:[t.jsx("span",{className:"terminal__prompt",children:"$ "}),t.jsx("span",{className:"terminal__cursor","aria-hidden":"true"})]})]})]})}
11function Jc({text:e,intervalMs:o=12}){const i=C.useRef(null),s=Lm(i,e.length,o),l=s>=0&&s<e.length;return t.jsxs("span",{ref:i,children:[s<0?" ":e.slice(0,s),l&&t.jsx("span",{className:"typed-cursor","aria-hidden":"true"})]})}function qv({pop:e}){return t.jsx("svg",{className:`check ${e?"chat-check-pop":""}`,viewBox:"0 0 16 16","aria-hidden":"true",children:t.jsx("path",{d:"m3 8 3 3 7-7",fill:"none",stroke:"currentColor",strokeWidth:"1.5"})})}const yp=700;function Mm({user:e,intro:o,command:i,result:s,composer:l=!1}){const[c]=C.useState(()=>typeof window>"u"||Yc()||typeof IntersectionObserver>"u"),[u,h]=C.useState(c?4:0),[m,f]=C.useState(c?i.length:0),y=C.useRef(null);return C.useEffect(()=>{const x=y.current;if(!x||c)return;x.classList.add("chat-panel--js");let w=!1;const k=[];let N;const I=new IntersectionObserver(T=>{!T.some(_=>_.isIntersecting)||w||(w=!0,I.disconnect(),h(1),k.push(window.setTimeout(()=>h(2),yp)),k.push(window.setTimeout(()=>{h(3),N=window.setInterval(()=>{f(_=>_>=i.length?(window.clearInterval(N),h(4),_):_+1)},24)},yp*2)))},{threshold:.35});return I.observe(x),()=>{I.disconnect(),k.forEach(T=>window.clearTimeout(T)),window.clearInterval(N),x.classList.remove("chat-panel--js")}},[i,c]),t.jsxs("div",{className:"chat-panel",ref:y,children:[t.jsx("div",{className:`chat-panel__user chat-beat ${u>=1?"is-on":""}`,children:e}),u===2&&t.jsxs("div",{className:"chat-panel__thinking","aria-hidden":"true",children:[t.jsx("i",{}),t.jsx("i",{}),t.jsx("i",{})]}),t.jsxs("div",{className:`chat-panel__assistant chat-beat ${u>=3?"is-on":""}`,children:[t.jsx("span",{className:"chat-panel__label mono",children:"TRITON MCP"}),o,t.jsxs("div",{className:"chat-panel__command mono",children:[t.jsx("span",{children:i.slice(0,m)}),u===3&&m<i.length&&t.jsx("span",{className:"typed-cursor","aria-hidden":"true"}),u>=4&&t.jsx(qv,{pop:!c})]}),t.jsx("div",{className:`chat-beat ${u>=4?"is-on":""}`,children:s})]}),l&&t.jsxs("div",{className:`chat-panel__composer mono chat-beat ${u>=4?"is-on":""}`,children:[t.jsx("span",{children:"Ask Triton to make a change"}),t.jsx("span",{children:"↵"})]})]})}const Gr=["Deploy","Network","Storage","Ask Claude"],Gi=Ut[1],Yv={deploy:"2440 / 1290",network:"2440 / 828",storage:"2440 / 630"},xp={deploy:{width:2440,height:1290},network:{width:2440,height:828},storage:{width:2440,height:630}};function Jv(){const[e,o]=C.useState(()=>typeof document<"u"&&document.documentElement.dataset.theme==="light"?"light":"dark");return C.useEffect(()=>{const i=new MutationObserver(()=>{o(document.documentElement.dataset.theme==="light"?"light":"dark")});return i.observe(document.documentElement,{attributes:!0,attributeFilter:["data-theme"]}),()=>i.disconnect()},[]),e}function kc({name:e,alt:o,contextLabel:i="console.tritoncloud.io / northwind / production",children:s}){const l=Jv();return t.jsxs("div",{className:"app-window",children:[t.jsxs("div",{className:"app-window__chrome",children:[t.jsxs("span",{className:"app-window__dots","aria-hidden":"true",children:[t.jsx("i",{}),t.jsx("i",{}),t.jsx("i",{})]}),t.jsx("span",{className:"app-window__url mono",children:i})]}),e?t.jsx("div",{className:"app-window__picture",style:{aspectRatio:Yv[e]},children:t.jsx("img",{className:`app-window__image app-window__image--${e}`,src:`/home/${e}-${l}.png`,alt:`${o}, ${l} theme`,width:xp[e]?.width,height:xp[e]?.height})}):s]})}function Fm({deployment:e="cloud"}){const o=e==="private",i=o?"general-purpose-4":Gi.name;return t.jsx(Mm,{user:o?t.jsxs(t.Fragment,{children:["Spin up a ",i," instance in datacenter-01 and put it on the production VPC."]}):t.jsxs(t.Fragment,{children:["Spin up a ",Gi.name," instance in the nearest region and put it on the production VPC."]}),intro:t.jsxs("p",{children:["Creating ",t.jsx("strong",{children:i})," · ",Gi.vcpu," vCPU / ",Gi.memory," / ",Gi.disk]}),command:o?"triton instance create --package general-purpose-4 --region datacenter-01 --vpc vpc-prod":"triton instance create --package baron --region ams-1 --vpc vpc-prod-ams",result:t.jsx("p",{children:"web-04 is provisioning. Private IPv4 10.24.6.14."}),composer:!0})}function zm({deployment:e="cloud"}){const[o,i]=C.useState("Deploy"),s=C.useRef([]),l=e==="private",c=l?"private-console":"hero",u=l?"triton.private / datacenter-01 / production":"console.tritoncloud.io / northwind / production",h=(f,y)=>{const x=f.key==="ArrowRight"?(y+1)%Gr.length:f.key==="ArrowLeft"?(y-1+Gr.length)%Gr.length:-1;x>=0&&(f.preventDefault(),s.current[x]?.focus(),i(Gr[x]))},m={Deploy:"A running server, live, CPU, network and disk at a glance.",Network:"Private VPCs per Region. Nothing is public until you say so.",Storage:"Object storage, reachable privately at no transfer cost.","Ask Claude":"Deploy from a conversation. Claude drives the same API the console does."};return t.jsxs("div",{className:`hero-preview${l?" hero-preview--private":""}`,children:[t.jsx("div",{className:"hero-tabs",role:"tablist","aria-label":l?"Private Cloud console previews":"Console previews",children:Gr.map((f,y)=>t.jsx("button",{id:`${c}-tab-${y}`,ref:x=>{s.current[y]=x},className:"hero-tabs__tab",role:"tab","aria-selected":o===f,"aria-controls":`${c}-panel-${y}`,tabIndex:o===f?0:-1,onClick:()=>i(f),onKeyDown:x=>h(x,y),children:f},f))}),t.jsx("p",{className:"hero-preview__caption",children:m[o]}),t.jsxs("div",{className:"hero-preview__stage",children:[Gr.slice(0,3).map((f,y)=>t.jsx("div",{className:`hero-preview__panel ${o===f?"is-active":""}`,role:"tabpanel",id:`${c}-panel-${y}`,"aria-labelledby":`${c}-tab-${y}`,"aria-hidden":o!==f,children:t.jsx(kc,{name:f==="Deploy"?"deploy":f==="Network"?"network":"storage",alt:`${f} view in the Triton ${l?"Private Cloud":"Cloud"} console`,contextLabel:u})},f)),t.jsxs("div",{className:`hero-preview__panel ${o==="Ask Claude"?"is-active":""}`,role:"tabpanel",id:`${c}-panel-3`,"aria-labelledby":`${c}-tab-3`,"aria-hidden":o!=="Ask Claude",children:[t.jsx(kc,{alt:"Triton MCP assistant panel",contextLabel:u,children:t.jsx(Fm,{deployment:e})}),t.jsx(M,{className:"hero-preview__mcp-link",to:"/product/mcp",tabIndex:o==="Ask Claude"?0:-1,children:"Meet Triton MCP →"})]})]})]})}const Wa=Ut[0],Xt=Ut[1],Kv=[{kind:"cmd",text:"triton instance create \\"},{kind:"cmd",text:"  --image ubuntu-24.04 \\"},{kind:"cmd",text:`  --package ${Xt.name.toLowerCase()}`,comment:`# ${Xt.vcpu} vCPU / ${Xt.memory}`},{kind:"ok",text:"web-01 running"},{kind:"out",text:"  private address assigned"}];function Ta(){return t.jsx("svg",{className:"check",viewBox:"0 0 16 16","aria-hidden":"true",children:t.jsx("path",{d:"m3 8 3 3 7-7",fill:"none",stroke:"currentColor",strokeWidth:"1.5"})})}function Qv(){const e=[{name:"web-01",pkg:Xt},{name:"web-02",pkg:Xt},{name:"worker-01",pkg:Wa}],o=e.reduce((i,s)=>i+s.pkg.monthly,0);return t.jsxs("div",{className:"app-window bill-panel",children:[t.jsxs("div",{className:"app-window__chrome",children:[t.jsxs("span",{className:"app-window__dots","aria-hidden":"true",children:[t.jsx("i",{}),t.jsx("i",{}),t.jsx("i",{})]}),t.jsx("span",{className:"app-window__url mono",children:"console.tritoncloud.io / northwind / billing"})]}),t.jsxs("div",{className:"bill-panel__body",children:[t.jsx("div",{className:"bill-panel__head mono",children:"INVOICE · THIS MONTH"}),t.jsxs("ul",{className:"bill-panel__rows",children:[e.map(i=>t.jsxs("li",{children:[t.jsx("span",{className:"mono",children:i.name}),t.jsxs("span",{className:"bill-panel__meta",children:[i.pkg.name," · ",i.pkg.vcpu," vCPU / ",i.pkg.memory]}),t.jsxs("b",{children:["$",i.pkg.monthly,t.jsx("small",{children:"/mo cap"})]})]},i.name)),t.jsxs("li",{children:[t.jsx("span",{className:"mono",children:"transfer"}),t.jsxs("span",{className:"bill-panel__meta",children:[Wa.transfer," per Instance, pooled"]}),t.jsx("b",{className:"bill-panel__included",children:"included"})]}),t.jsxs("li",{children:[t.jsx("span",{className:"mono",children:"ipv4"}),t.jsx("span",{className:"bill-panel__meta",children:"1 per Instance"}),t.jsx("b",{className:"bill-panel__included",children:"included"})]})]}),t.jsxs("div",{className:"bill-panel__total",children:[t.jsx("span",{children:"Total"}),t.jsxs("b",{children:["$",o,t.jsx("small",{children:"/mo"})]})]})]})]})}function Xv(){const[e,o]=C.useState("CLI"),i=["CLI","Terraform","API"],s=C.useRef([]),l={CLI:`triton instance create \\
12  --package ${Xt.name.toLowerCase()} \\
13  --region ams-1`,Terraform:`resource "triton_instance" "web" {
14  package = "${Xt.name.toLowerCase()}"
15  region  = "ams-1"
16}`,API:`curl -X POST https://api.tritoncloud.io/v1/instances \\
17  -H "Authorization: Bearer $TRITON_TOKEN" \\
18  -d '{"package":"${Xt.name.toLowerCase()}"}'`},c=(u,h)=>{const m=u.key==="ArrowRight"?(h+1)%i.length:u.key==="ArrowLeft"?(h-1+i.length)%i.length:u.key==="Home"?0:u.key==="End"?i.length-1:-1;m>=0&&(u.preventDefault(),s.current[m]?.focus(),o(i[m]))};return t.jsxs("div",{className:"code-block",children:[t.jsx("div",{className:"code-block__tabs",role:"tablist","aria-label":"Integration examples",children:i.map((u,h)=>t.jsx("button",{id:`code-tab-${h}`,ref:m=>{s.current[h]=m},role:"tab","aria-selected":e===u,"aria-controls":`code-panel-${h}`,tabIndex:e===u?0:-1,onClick:()=>o(u),onKeyDown:m=>c(m,h),children:u},u))}),t.jsx("div",{className:"code-block__stage",children:i.map((u,h)=>t.jsx("pre",{id:`code-panel-${h}`,className:`mono code-block__panel${e===u?" is-active":""}`,role:"tabpanel","aria-labelledby":`code-tab-${h}`,"aria-hidden":e!==u,children:e===u?t.jsx(Jc,{text:l[u]},u):l[u]},u))})]})}function Zv(){const[e,o]=C.useState(!1);return t.jsxs("div",{className:"home",children:[t.jsxs("section",{className:"hero",children:[t.jsx("div",{className:"hero__grid","aria-hidden":"true"}),t.jsx("div",{className:"hero__aurora","aria-hidden":"true"}),t.jsxs("div",{className:"container hero__inner",children:[t.jsxs(L,{children:[t.jsx("span",{className:"hero__label mono",children:"TRITON CLOUD"}
18),t.jsx("h1",{children:"Cloud infrastructure with a predictable bill."})]}),t.jsx(L,{delay:2,children:t.jsx("p",{className:"hero__sub",children:"Speed to your first server, honest pricing, and real networking: deploy, connect, and store on infrastructure you can also run on your own hardware."})}),t.jsx(L,{delay:4,children:t.jsxs("div",{className:"hero__ctas",children:[t.jsx(M,{to:"/signup",className:"btn btn--primary btn--lg",children:"Get early access"}),t.jsx(M,{to:"/pricing",className:"hero__secondary",children:"See pricing →"})]})}),t.jsx(L,{delay:5,children:t.jsx(zm,{})})]})]}),t.jsx("section",{className:"section act act--base",children:t.jsxs("div",{className:"container",children:[t.jsxs("div",{className:"act__heading",children:[t.jsx("span",{className:"act__kicker mono",children:"01 / SHIP IN MINUTES"}),t.jsx("h2",{children:"From zero to a running server before your coffee's cold."})]}),t.jsxs("div",{className:"section__cols",children:[t.jsx(L,{children:t.jsxs("div",{children:[t.jsx("ol",{className:"steps",children:["Region","Image","Package","Auth","Create"].map((i,s)=>t.jsxs("li",{children:[t.jsx("span",{className:"steps__num mono",children:s+1}),t.jsx("span",{children:i}),i==="Package"&&t.jsxs("small",{className:"mono",children:[Xt.name," · ",Xt.vcpu," vCPU / ",Xt.memory]})]},i))}),t.jsx("p",{className:"section__lede",children:"Sensible defaults are pre-selected, so scroll to the bottom and create."}),t.jsx(M,{to:"/signup",className:"section__link",children:"Get early access →"})]})}),t.jsx(L,{delay:2,children:t.jsx(Gv,{title:"triton · zsh",lines:Kv})})]})]})}),t.jsx("section",{className:"section act act--sunken",children:t.jsxs("div",{className:"container",children:[t.jsxs("div",{className:"act__heading",children:[t.jsx("span",{className:"act__kicker mono",children:"02 / HONEST PRICING"}),t.jsx("h2",{children:"The bill won't surprise you."})]}),t.jsxs("div",{className:"section__cols bill-row",children:[t.jsx(L,{children:t.jsxs("div",{children:[t.jsxs("div",{className:"ledger",children:[t.jsx("p",{children:"One invoice. Everything on it is something you chose."}),t.jsxs("ul",{children:[t.jsxs("li",{children:[t.jsx(Ta,{}),Wa.transfer," transfer per Instance, pooled across your account"]}),t.jsxs("li",{children:[t.jsx(Ta,{}),"1 IPv4 included"]}),t.jsxs("li",{children:[t.jsx(Ta,{}),Wa.disk," on every Package"]}),t.jsxs("li",{children:[t.jsx(Ta,{}),"Billed hourly, capped at the monthly price"]})]})]}),t.jsxs("div",{className:"pricing-wrap",children:[t.jsxs("div",{className:"pricing-card__toggle",children:[t.jsx("button",{className:e?"":"is-active",onClick:()=>o(!1),children:"Monthly"}),t.jsx("button",{className:e?"is-active":"",onClick:()=>o(!0),children:"Annual"})]}),t.jsxs(M,{to:"/pricing",className:"pricing-card",children:[t.jsx("ul",{className:"pricing-card__rows",children:Ut.map(i=>t.jsxs("li",{children:[t.jsx("strong",{children:i.name}),t.jsxs("span",{children:[i.vcpu," vCPU · ",i.memory," · ",i.disk]}),t.jsxs("b",{children:["$",e?i.annual:i.monthly,t.jsxs("small",{children:["/ ",e?"yr":"mo"]})]})]},i.name))}),t.jsx("em",{children:"See all pricing →"})]})]})]})}),t.jsx(L,{delay:2,children:t.jsx(Qv,{})})]})]})}),t.jsx("section",{className:"section act act--base",children:t.jsxs("div",{className:"container",children:[t.jsxs("div",{className:"act__heading",children:[t.jsx("span",{className:"act__kicker mono",children:"03 / REAL INFRASTRUCTURE"}),t.jsx("h2",{children:"Real subnets. Real route tables. Nothing public until you say so."})]}),t.jsxs("div",{className:"section__cols section__cols--wide",children:[t.jsx(L,{children:t.jsx(Dm,{})}),t.jsx(L,{delay:2,children:t.jsxs("div",{children:[t.jsx("h3",{children:"Private is the default, not a setting."}),t.jsx("p",{className:"section__lede",children:"Private subnets have no internet route. Isolation is the default, not a rule you remember to add."}),t.jsx(M,{to:"/product/networking",className:"section__link",children:"Explore networking →"})]})})]}),t.jsxs("div",{className:"section__cols section__cols--wide storage-row",children:[t.jsx(L,{children:t.jsxs("div",{children:[t.jsx("h3",{children:"Buckets your Instances can reach privately."}),t.jsx("p",{className:"section__lede",children:"Reach buckets privately and keep the path between your services predictable."}),t.jsx(M,{to:"/product/object-storage#roadmap",className:"section__link",children:"More storage coming →"})]})}),t.jsx(L,{delay:2,children:t.jsx(kc,{name:"storage",alt:"Object storage buckets in the Triton Cloud console"})})]})]})}),t.jsx("section",{className:"section act act--base",children:t.jsxs("div",{className:"container",children:[t.jsxs("div",{className:"act__heading",children:[t.jsx("span",{className:"act__kicker mono",children:"04 / WORK YOUR WAY"}),t.jsx("h2",{children:"Your terminal, your IaC, and your agent, same platform."})]}),t.jsxs("div",{className:"section__cols",children:[t.jsx(L,{children:t.jsxs("div",{children:[t.jsx("h3",{children:"Deploy from a conversation."}),t.jsx(Fm,{}),t.jsx(M,{to:"/product/mcp",className:"section__link",children:"Meet Triton MCP →"})]})}),t.jsx(L,{delay:2,children:t.jsx(Xv,{})})]})]})}),t.jsx("section",{className:"section act act--band",children:t.jsxs("div",{className:"container",children:[t.jsxs("div",{className:"act__heading",children:[t.jsx("span",{className:"act__kicker mono",children:"05 / ON-PREM"}),t.jsx("h2",{children:"Build your own cloud. Not your own cloud stack."}),t.jsx("p",{children:"Bring a cloud operating model to infrastru
18cture you control, or explore modular Open Compute systems built around Triton."})]}),t.jsxs("div",{className:"cta-actions",children:[t.jsx(M,{to:"/on-prem",className:"btn btn--primary",children:"Explore Triton On-Prem →"}),t.jsx(M,{to:"/on-prem/open-compute",className:"btn btn--outline",children:"Explore Open Compute"})]})]})}),t.jsx("section",{className:"cta-band",children:t.jsx("div",{className:"container",children:t.jsxs(L,{children:[t.jsx("h2",{children:"Start with a server. Keep the invoice you expected."}),t.jsxs("div",{className:"cta-actions",children:[t.jsx(M,{to:"/signup",className:"btn btn--primary btn--lg",children:"Get early access"}),t.jsx(M,{to:"/contact/sales",className:"btn btn--outline btn--lg",children:"Talk to sales"})]})]})})})]})}const ur={verifiedOn:"2026-07-30",recheckDue:"2026-10-30",vendors:["DigitalOcean","Linode","Vultr"],rows:[{tier:"Squire",cells:{DigitalOcean:null,Linode:null,Vultr:null},claim:"Better than half the cost of comparable 2 GB plans."},{tier:"Baron",cells:{DigitalOcean:24,Linode:24,Vultr:24},claim:"Exactly half."},{tier:"Viscount",cells:{DigitalOcean:48,Linode:48,Vultr:48},claim:"Exactly half."},{tier:"Earl",cells:{DigitalOcean:84,Linode:null,Vultr:null},claim:`DigitalOcean's cheapest 16 GB plan is $84 to Earl's $48: real savings, but not a clean "half."`},{tier:"Duke",cells:{DigitalOcean:168,Linode:192,Vultr:"n/a"},claim:"Half holds for Linode ($192). DigitalOcean's cheapest 32 GB is $168 (Duke is 43% less). Vultr's High Performance line has no 32 GB plan."}],footnotes:["Disk: every Triton Package is a flat 50 GB NVMe. At 32 GB, Linode and Vultr bundle up to 640 GB, and DigitalOcean’s $168 plan bundles 100 GB.","vCPU: DigitalOcean’s $168 32 GB plan has 4 vCPU to Duke’s 16. The DigitalOcean plan that matches 16 vCPU costs $336, 3.5× Duke.","Bundled transfer varies widely and is not normalized here (e.g. Linode bundles 16 TB at 32 GB to Triton’s 2 TB pooled per Instance)."]},vp=.01;function ew(){return t.jsxs("div",{className:"pricing-page",children:[t.jsx("section",{className:"pp-hero",children:t.jsx("div",{className:"container pp-hero__inner",children:t.jsxs(L,{children:[t.jsx("span",{className:"pp-hero__kicker mono",children:"TRITON CLOUD PRICING"}),t.jsx("h1",{children:"Simple pricing for cloud infrastructure."}),t.jsx("p",{children:"Instances include NVMe storage, IPv4, and pooled transfer. Billing is hourly, capped at the monthly price."})]})})}),t.jsx("section",{className:"pp-section",id:"compute",children:t.jsxs("div",{className:"container",children:[t.jsx(L,{children:t.jsx("h2",{children:"Compute pricing"})}),t.jsx("div",{className:"pkg-grid",children:Ut.map((e,o)=>t.jsx(L,{delay:o,children:t.jsxs("div",{className:"pkg-card",children:[t.jsx("div",{className:"pkg-card__name",children:e.name}),t.jsxs("div",{className:"pkg-card__price",children:[t.jsxs("span",{className:"pkg-card__amount",children:["$",e.monthly]}),t.jsx("span",{className:"pkg-card__per",children:"/mo"})]}),t.jsxs("div",{className:"pkg-card__spec",children:[e.vcpu," vCPU · ",e.memory," · ",e.disk]}),t.jsx(M,{to:"/signup",className:"btn btn--outline btn--block",children:"Try Triton Cloud"})]})},e.name))})]})}),t.jsx("section",{className:"pp-section pp-section--sunken",children:t.jsx("div",{className:"container",children:t.jsxs(L,{children:[t.jsx("h2",{children:"What every instance includes"}),t.jsxs("div",{className:"included-grid",children:[t.jsxs("div",{children:[t.jsx("strong",{children:"NVMe storage"}),t.jsx("span",{children:"Local storage included"})]}),t.jsxs("div",{children:[t.jsxs("strong",{children:[Ut[0].transfer," transfer"]}),t.jsx("span",{children:"Pooled across your account"})]}),t.jsxs("div",{children:[t.jsx("strong",{children:"1 IPv4 address"}),t.jsx("span",{children:"Included with every instance"})]}),t.jsxs("div",{children:[t.jsx("strong",{children:"Free inbound transfer"}),t.jsx("span",{children:"No inbound data charge"})]}),t.jsxs("div",{children:[t.jsx("strong",{children:"Hourly billing"}),t.jsx("span",{children:"Capped at the monthly price"})]})]})]})})}),t.jsx("section",{className:"pp-section",children:t.jsx("div",{className:"container",children:t.jsxs(L,{children:[t.jsx("h2",{children:"Transfer and network pricing"}),t.jsxs("div",{className:"network-pricing",children:[t.jsxs("div",{children:[t.jsx("strong",{children:Ut[0].transfer}),t.jsx("span",{children:"included per instance and pooled across your account"})]}),t.jsxs("div",{children:[t.jsxs("strong",{children:["$",vp.toFixed(2),"/GB"]}),t.jsx("span",{children:"outbound transfer beyond the pool"})]}),t.jsxs("div",{children:[t.jsx("strong",{children:"Free"}),t.jsx("span",{children:"inbound transfer"})]})]}),t.jsx("p",{className:"network-pricing__note",children:"We alert you at 80% and 100% of your pool. We do not shut off traffic automatically."})]})})}),t.jsx("section",{className:"pp-section pp-section--sunken",children:t.jsxs("div",{className:"container",children:[t.jsxs(L,{children:[t.jsx("h2",{children:"Compare plans"}),t.jsxs("p",{className:"pp-stamp",children:["Competitor prices checked ",ur.verifiedOn,". Next re-check due"," ",ur.recheckDue,"."]})]}),t.jsx(L,{delay:1,children:t.jsx("div",{className:"cmp-scroll",children:t.jsxs("table",{className:"cmp-table",children:[t.jsx("thead",{children:t.jsxs("tr",{children:[t.jsx("th",{scope:"col",children:"Package"}),t.jsx("th",{scope:"col",children:"Triton Cloud"}),ur.vendors.map(e=>t.jsx("th",{scope:"col",children:e},e)),t.jsx("th",{scope:"col",children:"Takeaway"})]})}),t.jsx("tbody",{children:ur.rows.map(e=>{const o=Ut.find(s=>
18s.name===e.tier),i=ur.vendors.some(s=>e.cells[s]!=null);return t.jsxs("tr",{children:[t.jsxs("th",{scope:"row",children:[t.jsxs("span",{className:"cmp-table__spec",children:[o.vcpu," vCPU · ",o.memory]}),t.jsx("span",{className:"cmp-table__tier",children:o.name})]}),t.jsxs("td",{className:"cmp-table__triton",children:["$",o.monthly,"/mo"]}),ur.vendors.map(s=>{const l=e.cells[s];return t.jsx("td",{children:l===null?t.jsx("span",{className:"cmp-table__empty",children:"–"}):l==="n/a"?t.jsx("span",{className:"cmp-table__na",children:"not available in this line"}):`$${l}/mo`},s)}),t.jsx("td",{className:"cmp-table__claim",children:i?e.claim:t.jsx("span",{className:"cmp-table__empty",children:"–"})})]},e.tier)})})]})})}),t.jsx(L,{delay:2,children:t.jsx("ol",{className:"cmp-footnotes",children:ur.footnotes.map((e,o)=>t.jsx("li",{children:e},o))})})]})}),t.jsx("section",{className:"pp-section",children:t.jsxs("div",{className:"container",children:[t.jsx(L,{children:t.jsx("h2",{children:"Billing questions"})}),t.jsxs("div",{className:"faq",children:[t.jsx(L,{delay:1,children:t.jsxs("div",{className:"faq__item",children:[t.jsx("h3",{children:"What happens if I go over my transfer allowance?"}),t.jsxs("p",{children:["Outbound transfer beyond your pooled allowance is $",vp.toFixed(2),"/GB. Inbound transfer is free."]})]})}),t.jsx(L,{delay:2,children:t.jsxs("div",{className:"faq__item",children:[t.jsx("h3",{children:"Does a stopped instance still bill?"}),t.jsx("p",{children:"Yes, at the full rate. Only deleting an instance stops charges."})]})}),t.jsx(L,{delay:3,children:t.jsxs("div",{className:"faq__item",children:[t.jsx("h3",{children:"How is billing metered?"}),t.jsx("p",{children:"Billing is hourly and capped at the monthly package price."})]})}),t.jsx(L,{delay:4,children:t.jsxs("div",{className:"faq__item",children:[t.jsx("h3",{children:"What happens if a payment fails?"}),t.jsx("p",{children:"We retry the payment and provide a grace period before workloads are stopped. We do not immediately delete your instances or data."})]})})]})]})}),t.jsx("section",{className:"cta-band",children:t.jsx("div",{className:"container cta-band__inner",children:t.jsxs(L,{children:[t.jsx("h2",{children:"Try Triton Cloud"}),t.jsx("div",{className:"cta-band__actions",children:t.jsx(M,{to:"/signup",className:"btn btn--primary btn--lg",children:"Try Triton Cloud"})})]})})})]})}const Bm=[{era:"JOYENT",status:"BUILT",years:"2009 → 2015",heading:"Born from operating a cloud",body:["Joyent built software to run its own public cloud. What began as SmartDataCenter evolved into Triton, the open-source cloud platform behind Joyent’s hosted cloud and its private-cloud deployments. Joyent introduced the Triton name in 2015 as the next generation of SmartDataCenter."],rail:"SmartOS · Zones · ZFS · SDN · APIs · Multi-tenancy",sources:[{label:"Triton introduction, 2015",href:"https://bcantrill.dtrace.org/2015/03/24/triton-docker-and-the-best-of-all-worlds/"}]},{era:"SAMSUNG",status:"SCALED · OPERATED",years:"2016 → 2022",heading:"Acquired for cloud capability",body:["In 2016, Samsung acquired Joyent to gain its own cloud platform and cloud engineering capability, saying Joyent would help it scale infrastru
18cture for mobile, IoT, and cloud-based software and services. Joyent’s CTO wrote that Samsung was expected to become the largest user of the technology while the platform stayed open source.","Samsung described the acquisition as the cornerstone of a connected cloud strategy and deployed Triton Private Regions around the world. One documented use: Samsung Cloud moved its object storage onto Triton Private Regions to control strategic data and its storage economics."],rail:"Global regions · Private Regions · Samsung Cloud · Strategic data",sources:[{label:"Samsung Newsroom, 2016",href:"https://news.samsung.com/global/samsung-to-acquire-joyent-a-leading-public-and-private-cloud-provider"},{label:"CTO’s perspective, 2016",href:"https://bcantrill.dtrace.org/2016/06/15/samsung-acquires-joyent-a-ctos-perspective/"},{label:"Samsung Developer, 2017",href:"https://developer.samsung.com/sdp/blog/en/2017/10/13/the-connected-cloud-samsung-mobiles-multi-cloud-architecture"}]},{era:"STEWARDSHIP",status:"INDEPENDENT",years:"2022",heading:"A new chapter for the platform",body:["In 2022, MNX Solutions acquired the Triton DataCenter technology suite and the commercial support business from Joyent, by then a Samsung company. Triton, Manta, and SmartOS kept their open-source licensing, and stewardship of the repositories moved with the platform."],rail:"Triton · Manta · SmartOS · Open source",sources:[{label:"Transition announcement, 2022",href:"https://tritondatacenter.com/blog/a-new-chapter-begins-for-triton-and-smartos"}]},{era:"TRITON CLOUD",status:"REBUILT",years:"TODAY",heading:"Keep the lessons. Rebuild the platform.",body:["Triton Cloud makes no attempt to freeze that history in place. It carries the operating experience, the open-source philosophy, and the cloud resource model forward while the control plane and infrastructure services are rebuilt for what comes next."],rail:"Open source · Cloud resource model · New control plane",sources:[]}];Bm.flatMap(e=>e.sources.map(o=>o.href));
18const tw=["Open source","API-first infrastructure","Multi-tenancy","Operator-first design","Cloud resource model"],nw=["Control plane","Networking","Data services","Developer experience","Modern hardware integration"],rw=[{title:"Built for Day 2",body:"Health, maintenance, lifecycle, and capacity are product problems, never afterthoughts."},{title:"Built for operators",body:"The infrastructure underneath the cloud stays visible and understandable to the people responsible for running it."},{title:"Built for consumers",body:"Projects, APIs, and self-service keep physical infrastructure out of the application team’s workflow."}],iw=[{title:"Keep infrastructure understandable.",body:"Operators should be able to reason about the systems they own."},{title:"Make cloud consumption simple.",body:"Application teams should work with projects and resources, and leave datacenter mechanics to the platform."},{title:"Keep the platform open.",body:"The software underneath the cloud should never be a black box."},{title:"Make ownership a real option.",body:"Use Triton Cloud, or operate Triton on infrastructure you control."},{title:"Build for years.",body:"Day 2 matters more than a polished provisioning animation."}];function ow(){return t.jsxs("div",{className:"page page--about",children:[t.jsxs("section",{className:"about-hero container",children:[t.jsx("span",{className:"section-kicker mono",children:"ABOUT TRITON"}),t.jsx("h1",{children:"This isn’t our first cloud."}),t.jsx("p",{className:"about-hero__lede measure",children:"Triton’s lineage runs from Joyent’s public cloud, through Samsung’s global cloud infrastructure, to the open-source platform we are building today."}),t.jsx("p",{className:"about-hero__lede measure",children:"We have spent years learning what it takes to operate cloud infrastructure after the demo is over: failures, capacity, networking, storage, lifecycle, multi-tenancy, and the systems operators depend on every day."}),t.jsx("p",{className:"about-hero__claim measure",children:t.jsx("strong",{children:"Triton Cloud carries those lessons forward rather than starting from a blank page."})})]}),t.jsx("section",{className:"section-rhythm about-lineage","aria-labelledby":"lineage-heading",children:t.jsxs("div",{className:"container",children:[t.jsxs(L,{children:[t.jsx("span",{className:"section-kicker mono",children:"CLOUD INFRASTRUCTURE, OVER TIME"}),t.jsx("h2",{id:"lineage-heading",children:"Built at Joyent. Scaled with Samsung. Carried forward."})]}),t.jsx(L,{delay:1,children:t.jsx("ol",{className:"lineage",children:Bm.map(e=>t.jsxs("li",{className:"lineage__node",children:[t.jsxs("div",{className:"lineage__head",children:[t.jsx("span",{className:"lineage__era mono",children:e.era}),t.jsx("span",{className:"lineage__status mono",children:e.status})]}),t.jsx("span",{className:"lineage__years mono",children:e.years}),t.jsx("h3",{children:e.heading}),e.body.map(o=>t.jsx("p",{children:o},o.slice(0,24))),t.jsx("p",{className:"lineage__rail mono",children:e.rail}),e.sources.length>0&&t.jsxs("p",{className:"lineage__sources",children:[e.sources.length>1?"Sources: ":"Source: ",e.sources.map((o,i)=>t.jsxs("span",{children:[i>0&&" · ",t.jsx("a",{href:o.href,target:"_blank",rel:"noreferrer",children:o.label})]},o.href))]})]},e.era))})})]})}),t.jsx("section",{className:"section-rhythm about-band","aria-labelledby":"triton-cloud-heading",children:t.jsxs("div",{className:"container",children:[t.jsxs(L,{children:[t.jsx("span",{className:"section-kicker mono",children:"TRITON CLOUD"}),t.jsx("h2",{id:"triton-cloud-heading",children:"Keep the lessons. Rebuild the platform."}),t.jsx("p",{className:"measure",children:"A lineage is only useful when it improves what gets built next. Triton Cloud keeps what years of production operation taught us and rebuilds the parts the next decade of infrastructure demands. The past is an asset here, never a constraint."})]}),t.jsx(L,{delay:1,children:t.jsxs("div",{className:"about-compare",children:[t.jsxs("div",{className:"about-compare__col",children:[t.jsx("span",{className:"about-compare__head about-compare__head--carried mono",children:"CARRIED FORWARD"}),t.jsx("ul",{className:"mono",children:tw.map(e=>t.jsx("li",{children:e},e))})]}),t.jsxs("div",{className:"about-compare__col",children:[t.jsx("span",{className:"about-compare__head mono",children:"BEING REBUILT"}),t.jsx("ul",{className:"mono",children:nw.map(e=>t.jsx("li",{children:e},e))})]})]})})]})}),t.jsx("section",{className:"section-rhythm","aria-labelledby":"lessons-heading",children:t.jsxs("div",{className:"container",children:[t.jsxs(L,{children:[t.jsx("span",{className:"section-kicker mono",children:"HARD-EARNED INFRASTRUCTURE"}
18),t.jsxs("h2",{id:"lessons-heading",children:["Cloud infrastructure is easy to demo.",t.jsx("br",{}),"Operating it is the hard part."]}),t.jsx("p",{className:"measure",children:"Provisioning an instance is the easy part of running a cloud. The hard part comes later: failures, maintenance, capacity, isolation, upgrades, networking, storage, debugging, and keeping the system understandable after years of change."}),t.jsx("p",{className:"measure",children:"Triton’s design is shaped by people and technology that have lived through those problems in production."})]}),t.jsx(L,{delay:1,children:t.jsx("div",{className:"about-lessons",children:rw.map(e=>t.jsxs("article",{children:[t.jsx("h3",{children:e.title}),t.jsx("p",{children:e.body})]},e.title))})})]})}),t.jsx("section",{className:"section-rhythm about-band","aria-labelledby":"open-heading",children:t.jsx("div",{className:"container",children:t.jsxs(L,{children:[t.jsx("span",{className:"section-kicker mono",children:"OPEN FROM THE BEGINNING"}),t.jsx("h2",{id:"open-heading",children:"The cloud we run is software you can inspect."}),t.jsxs("p",{className:"measure",children:["Joyent open-sourced the Triton stack before the Samsung acquisition, and Samsung publicly committed to maintaining that open-source model. Triton, ",t.jsx(M,{to:"/smartos",children:"SmartOS"}),", and Manta remained open source through the 2022 transition. Today the principle stays simple:"]}),t.jsxs("p",{className:"about-open__principle",children:["Run it with us.",t.jsx("br",{}),"Run it yourself.",t.jsx("br",{}),"Read the source."]}),t.jsx("a",{className:"section__link",href:"https://github.com/TritonDataCenter",target:"_blank",rel:"noreferrer",children:"Explore the source →"})]})})}),t.jsx("section",{className:"section-rhythm","aria-labelledby":"platform-heading",children:t.jsxs("div",{className:"container",children:[t.jsxs(L,{children:[t.jsx("span",{className:"section-kicker mono",children:"ONE PLATFORM PHILOSOPHY"}),t.jsx("h2",{id:"platform-heading",children:"We run Triton too."}),t.jsx("p",{className:"measure",children:"The cloud platform we build is the platform we operate. Use Triton as a hosted cloud, or deploy Triton Private Cloud on infrastructure you control."}),t.jsx("p",{className:"about-platform__claim",children:t.jsx("strong",{children:"Same software. Same APIs. Different operator."})})]}),t.jsx(L,{delay:1,children:t.jsxs("div",{className:"about-paths",children:[t.jsxs(M,{to:"/",className:"about-paths__card",children:[t.jsx("span",{className:"mono",children:"TRITON CLOUD"}),t.jsx("strong",{children:"We operate it."}),t.jsx("span",{className:"section__link",children:"Explore Triton Cloud →"})]}),t.jsxs(M,{to:"/on-prem",className:"about-paths__card",children:[t.jsx("span",{className:"mono",children:"TRITON PRIVATE CLOUD"}),t.jsx("strong",{children:"You operate it."}),t.jsx("span",{className:"section__link",children:"Explore Private Cloud →"})]})]})})]})}),t.jsx("section",{className:"section-rhythm about-band","aria-labelledby":"today-heading",children:t.jsxs("div",{className:"container",children:[t.jsxs(L,{children:[t.jsx("span",{className:"section-kicker mono",children:"TRITON TODAY"}),t.jsx("h2",{id:"today-heading",children:"A smaller team with a long memory."}),t.jsx("p",{className:"measure",children:"We have no ambition to out-feature every hyperscaler. We are building a focused cloud platform around a few principles:"})]}),t.jsx(L,{delay:1,children:t.jsx("dl",{className:"about-principles",children:iw.map(e=>t.jsxs("div",{children:[t.jsx("dt",{children:e.title}),t.jsx("dd",{children:e.body})]},e.title))})})]})}),t.jsx("section",{className:"section-rhythm about-next","aria-labelledby":"next-heading",children:t.jsx("div",{className:"container",children:t.jsxs(L,{children:[t.jsx("span",{className:"section-kicker mono",children:"WHAT COMES NEXT"}),t.jsx("h2",{id:"next-heading",children:"The next generation of Triton is being built now."}),t.jsx("p",{className:"measure",children:"The infrastructure landscape has changed. GPU density, open rack architectures, cloud economics, networking, and the expectations developers bring to infrastru
18cture are different than they were when Triton began."}),t.jsx("p",{className:"measure",children:t.jsx("strong",{children:"We are building Triton Cloud to apply what we have learned to the cloud we want to operate for the next decade."})}),t.jsxs("div",{className:"about-next__actions",children:[t.jsx(M,{to:"/",className:"btn btn--primary",children:"Explore Triton Cloud"}),t.jsx(M,{to:"/on-prem",className:"btn btn--ghost",children:"Explore Private Cloud"})]})]})})})]})}const aw=[{num:"01",badge:"NEXT UP",title:"Managed Kubernetes",body:t.jsxs(t.Fragment,{children:["Conformant clusters where we run the control plane and your worker nodes are ordinary Instances: in your Project, on your VPC, visible in the console like everything else."," ",t.jsx("code",{className:"mono",children:"kubectl"})," talks to the cluster; the same API that manages your Instances manages the nodes under it."]}),planned:["Workers are instances in your own VPC","Per-node pricing, no separate cluster fee","Conformant Kubernetes, no bespoke cluster API"]},{num:"02",badge:"IN DESIGN",title:"Global Agent Workspaces",body:t.jsx(t.Fragment,{children:"Agent sandboxes are disposable. Their work shouldn't be. Every agent gets a durable, encrypted workspace it can mount from any sandbox in any region, so work can pause, resume, fork, and move between agents without rebuilding the environment or copying data. Swap the model or the framework; the workspace, its history, and its artifacts stay put."}),planned:["Mountable from any sandbox, any region","Tenant isolation, encryption, quotas","Snapshots, rollback, instant forks","Pause, resume and agent handoffs","Policy, retention and compliance controls"]},{num:"03",badge:"IN DESIGN",title:"Agent-Native Deployments",body:t.jsx(t.Fragment,{children:"From agent workspace to running software in one governed workflow. An agent builds and tests in its workspace, requests a deployment through MCP, gets a preview URL, and promotes the approved release to production. Each release is an immutable workspace snapshot running in a microVM, with the platform handling networking, domains, TLS, scaling, secrets, health checks, logs and rollback."}),planned:["Web services, workers and scheduled jobs","Immutable releases, instant rollback","Preview URLs before production","Human approval gates and policies","Operated through MCP: logs, scale, rollback"]}];function sw(){return t.jsxs("div",{className:"page roadmap",children:[t.jsxs("section",{className:"page-hero container",children:[t.jsx("span",{className:"roadmap__kicker mono",children:"ROADMAP"}),t.jsx("h1",{children:"What we're building next."})]}),aw.map(e=>t.jsxs("section",{className:"page-section container roadmap__item",children:[t.jsxs("div",{children:[t.jsxs("div",{className:"roadmap__meta",children:[t.jsxs("span",{className:"roadmap__num mono",children:["[",e.num,"]"]}),t.jsx("span",{className:"roadmap__badge mono",children:e.badge})]}),t.jsx("h2",{children:e.title}),t.jsx("p",{className:"measure",children:e.body})]}),t.jsxs("div",{className:"roadmap__planned mono",children:[t.jsx("span",{className:"roadmap__planned-head",children:"PLANNED SHAPE"}),e.planned.map(o=>t.jsxs("span",{className:"roadmap__planned-line",children:[t.jsx("i",{"aria-hidden":"true",children:"▸"})," ",o]},o))]})]},e.num)),t.jsxs("section",{className:"page-section page-section--cta container",children:[t.jsx("h2",{children:"Need one of these sooner?"}),t.jsx("p",{className:"measure",children:"Tell us which. Design partners get early access and a say in the shape of it."}),t.jsxs("div",{className:"roadmap__ctas",children:[t.jsx(M,{to:"/contact/sales",className:"btn btn--primary",children:"Talk to sales →"}),t.jsx(M,{to:"/signup",className:"btn btn--outline",children:"Get early access"})]})]})]})}function lw(){return t.jsx("div",{className:"page",children:t.jsxs("section",{className:"page-hero container",children:[t.jsx("h1",{children:"Service status"}),t.jsx("p",{className:"page-hero__lede",children:"A dedicated status page with live availability information ships when Triton Cloud launches. Until then, we announce incidents and scheduled maintenance directly to early-access users."}),t.jsxs("p",{children:["Seeing a problem right now? ",t.jsx(M,{to:"/contact/support",children:"Contact support"})," and we’ll take a look."]})]})})}const cw={name:"",email:"",company:"",message:""};function Um(e){return/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(e.trim())}function uw(e){const o={};return e.name.trim()||(o.name="Please enter your name."),e.email.trim()?Um(e.email)||(o.email="Please enter a valid email address."):o.email="Please enter your work email.",e.company.trim()||(o.company="Please enter your company."),e.message.trim()||(o.message="Please enter a message."),o}function Hm({form:e,successLinks:o}){const[i]=qc(),s=i.get("submission"),l=i.get("message"),[c,u]=C.useState(cw),[h,m]=C.useState({}),[f,y]=C.useState(s==="success"),[x,w]=C.useState(!1),[k,N]=C.useState(s==="error"?l:null),[I,T]=C.useState(""),[_,z]=C.useState(!1);C.useEffect(()=>{z(!0)},[]);function B(Y,F){u(ne=>({...ne,[Y]:F}))}async function te(Y){Y.preventDefault();const F=uw(c);if(m(F),!(Object.keys(F).length!==0||x)){w(!0),N(null);try{const ne=await fetch("/api/contact",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({form:e,name:c.name.trim(),email:c.email.trim(),company:c.company.trim(),message:c.message.trim(),...I.trim()?{website:I.trim()}:{}})});if(!ne.ok){const ue=await ne.json().catch(()=>null);throw ne.status===429?new Error(ue?.message||"We are receiving a lot of requests. Please wait a few minutes and try again."):new Error("Your message could not be sent. Please try again in a moment.")}y(!0)}catch(ne){N(ne instanceof Error?ne.message:"Your message could not be sent. Please try again in a moment.")}finally{w(!1)}}}return f?t.jsxs("div",{className:"contact-success",role:"status",children:[t.jsx("h2",{children:"Thanks for reaching out"}),t.jsx("p",{children:"Your message has been sent to our team. In the meantime, these may help:"}),t.jsx("p",{className:"contact-success__links",children:o.map((Y,F)=>t.jsxs("span",{children:[F>0&&" · ",t.jsx(M,{to:Y.to,children:Y.label})]},Y.to))})]}):t.jsxs("form",{className:"contact-form",action:`/contact/${e}`,method:"post",onSubmit:te,noValidate:_,children:[t.jsxs("div",{className:"visually-hidden","aria-hidden":"true",children:[t.jsx("label",{htmlFor:"cf-website",children:"Website"}),t.jsx("input",{id:"cf-website",name:"website",tabIndex:-1,autoComplete:"off",value:I,onChange:Y=>T(Y.target.value)})]}),t.jsxs("div",{className:"contact-form__field",children:[t.jsx("label",{htmlFor:"cf-name",children:"Name *"}),t.jsx("input",{id:"cf-name",name:"name",value:c.name,onChange:Y=>B("name",Y.target.value),required:!0,"aria-invalid":!!h.name,"aria-describedby":h.name?"cf-name-error":void 0}),h.name&&t.jsx("p",{className:"contact-form__error",id:"cf-name-error",role:"alert",children:h.name})]}),t.jsxs("div",{className:"contact-form__field",children:[t.jsx("label",{htmlFor:"cf-email",children:"Work email *"}),t.jsx("input",{id:"cf-email",name:"email",type:"email",value:c.email,onChange:Y=>B("email",Y.target.value),required:!0,"aria-invalid":!!h.email,"aria-describedby":h.email?"cf-email-error":void 0}),h.email&&t.jsx("p",{className:"contact-form__error",id:"cf-email-error",role:"alert",children:h.email})]}),t.jsxs("div",{className:"contact-form__field",children:[t.jsx("label",{htmlFor:"cf-company",children:"Company *"}),t.jsx("input",{id:"cf-company",name:"company",value:c.company,onChange:Y=>B("company",Y.target.value),required:!0,"aria-invalid":!!h.company,"aria-describedby":h.company?"cf-company-error":void 0}),h.company&&t.jsx("p",{className:"contact-form__error",id:"cf-company-error",role:"alert",children:h.company})]}),t.jsxs("div",{className:"contact-form__field",children:[t.jsx("label",{htmlFor:"cf-message",children:"Message *"}),t.jsx("textarea",{id:"cf-message",name:"message",rows:5,value:c.message,onChange:Y=>B("message",Y.target.value),required:!0,"aria-invalid":!!h.message,"aria-describedby":h.message?"cf-message-error":void 0}),h.message&&t.jsx("p",{className:"contact-form__error",id:"cf-message-error",role:"alert",children:h.message})]}),k&&t.jsx("p",{className:"contact-form__error",role:"alert",children:k}),t.jsx("button",{type:"submit",className:"btn btn--primary",disabled:x,children:x?"Sending…":"Send message"})]})}function Wm({current:e}){const o=[{key:"sales",title:"Sales and pricing",body:"Procurement, enterprise questions, and anything about the bill.",to:"/contact/sales"},{key:"support",title:"Technical support",body:"Something not working, or a question the docs did not answer.",to:"/contact/support"},{key:"onprem",title:"On-prem deployment",body:"Building your own platform on hardware you control.",to:"/on-prem#pilot"}];return t.jsx("div",{className:"section-rhythm--cards contact-purpose",children:o.map(i=>i.key===e?t.jsxs("div",{className:"constraint-card contact-purpose__card is-current","aria-current":"page",children:[t.jsx("h3",{children:i.title}),t.jsx("p",{children:i.body}),t.jsx("span",{className:"contact-purpose__here mono",children:"YOU ARE HERE"})]},i.key):t.jsxs(M,{to:i.to,className:"constraint-card constraint-card--link contact-purpose__card",children:[t.jsx("h3",{children:i.title}),t.jsx("p",{children:i.body}),t.jsx("span",{className:"section__link",children:"Go →"})]},i.key))})}function dw(){return t.jsxs("div",{className:"page",children:[t.jsxs("section",{className:"page-hero container",children:[t.jsx("h1",{children:"Talk to sales"}),t.jsx("p",{className:"page-hero__lede measure",children:"General and enterprise inquiries, procurement questions, and on-prem interest."})]}),t.jsx("section",{className:"section-rhythm",children:t.jsx("div",{className:"container",children:t.jsx(L,{children:t.jsx(Wm,{current:"sales"})})})}),t.jsx("section",{className:"section-rhythm",children:t.jsx("div",{className:"container",children:t.jsxs("div",{className:"section-rhythm--split contact-split",children:[t.jsx("div",{children:t.jsx(Hm,{form:"sales",successLinks:[{to:"/pricing",label:"See pricing"},{to:"/product/compute",label:"Explore compute"}]})}),t.jsxs("aside",{className:"contact-purpose-panel",children:[t.jsx("h2",{children:"What this path is for"}),t.jsxs("ul",{className:"page-list",children:[t.jsx("li",{children:"Pricing, procurement, and billing questions"}),t.jsx("li",{children:"Enterprise and volume conversations"}),t.jsx("li",{children:"On-prem interest and early scoping"})]}),t.jsx("h2",{children:"Not sure this is the right path?"}),t.jsxs("p",{className:"measure",children:["If your question is really a supp
18ort question, the"," ",t.jsx(M,{to:"/contact/support",children:"support path"})," is the better fit."]})]})]})})})]})}function hw(){return t.jsxs("div",{className:"page",children:[t.jsxs("section",{className:"page-hero container",children:[t.jsx("h1",{children:"Get help"}),t.jsx("p",{className:"page-hero__lede measure",children:"Most questions are answered fastest in the documentation. Start there."})]}),t.jsx("section",{className:"section-rhythm",children:t.jsx("div",{className:"container",children:t.jsx(L,{children:t.jsx(Wm,{current:"support"})})})}),t.jsx("section",{className:"section-rhythm section-rhythm--band",children:t.jsx("div",{className:"container",children:t.jsxs("div",{className:"docs-first-card",children:[t.jsx("h2",{children:"Try the docs first"}),t.jsx("p",{children:"Guides, concepts, and reference material cover the most common questions and are available right now."}),t.jsx("p",{className:"docs-first-card__links",children:t.jsx("a",{href:"https://docs.tritoncloud.io",className:"btn btn--ghost",children:"Browse the documentation"})})]})})}),t.jsx("section",{className:"section-rhythm",children:t.jsx("div",{className:"container",children:t.jsxs("div",{className:"section-rhythm--split contact-split",children:[t.jsxs("div",{children:[t.jsx("h2",{children:"Still stuck?"}),t.jsx(Hm,{form:"support",successLinks:[{to:"/docs",label:"Back to the docs"}]})]}),t.jsxs("aside",{className:"contact-purpose-panel",children:[t.jsx("h2",{children:"What this path is for"}),t.jsxs("ul",{className:"page-list",children:[t.jsx("li",{children:"Something not behaving the way the docs say it should"}),t.jsx("li",{children:"Questions the documentation did not answer"}),t.jsx("li",{children:"Account and access problems"})]}),t.jsx("h2",{children:"Not sure this is the right path?"}),t.jsxs("p",{className:"measure",children:["Pricing or procurement questions belong on the"," ",t.jsx(M,{to:"/contact/sales",children:"sales path"}),"."]})]})]})})})]})}function Vm(){return t.jsxs("div",{className:"diagram bucket-diagram",role:"img","aria-label":"Diagram: an Instance reaching Object Storage privately from its VPC",children:[t.jsx("div",{className:"diagram__header mono",children:"INSTANCE → OBJECT STORAGE"}),t.jsxs("div",{className:"bucket-diagram__body",children:[t.jsxs("div",{className:"bucket-diagram__instance",children:[t.jsx("span",{className:"mono",children:"web-01"}),t.jsx("small",{className:"mono",children:"your VPC"})]}),t.jsxs("span",{className:"bucket-diagram__flow","aria-hidden":"true",children:[t.jsx("i",{}),t.jsx("i",{}),t.jsx("i",{})]}),t.jsxs("div",{className:"bucket-diagram__bucket",children:[t.jsx("span",{className:"mono",children:"backups"}),t.jsx("small",{className:"mono",children:"reachable privately"})]})]})]})}const qi=Ut[0],kn=Ut[1],pw=["Ubuntu","Debian","Alpine","Fedora","Rocky","AlmaLinux","Arch","FreeBSD"];function mw(){const[e,o]=C.useState("CLI"),i=["CLI","API","Terraform"],s=C.useRef([]),l={CLI:`triton instance create \\
19  --image ubuntu-24.04 \\
20  --package ${kn.name.toLowerCase()}   # ${kn.vcpu} vCPU / ${kn.memory}`,API:`curl -X POST https://api.tritoncloud.io/v1/instances \\
21  -H "Authorization: Bearer $TRITON_TOKEN" \\
22  -d '{"image":"ubuntu-24.04","package":"${kn.name.toLowerCase()}"}'  # ${kn.vcpu} vCPU / ${kn.memory}`,Terraform:`resource "triton_instance" "web" {
23  image   = "ubuntu-24.04"
24  package = "${kn.name.toLowerCase()}" # ${kn.vcpu} vCPU / ${kn.memory}
25}`},c=(u,h)=>{const m=u.key==="ArrowRight"?(h+1)%i.length:u.key==="ArrowLeft"?(h-1+i.length)%i.length:-1;m>=0&&(u.preventDefault(),s.current[m]?.focus(),o(i[m]))};return t.jsxs("div",{className:"code-block",children:[t.jsx("div",{className:"code-block__tabs",role:"tablist","aria-label":"Create an Instance, three surfaces",children:i.map((u,h)=>t.jsx("button",{id:`parity-tab-${h}`,ref:m=>{s.current[h]=m},role:"tab","aria-selected":e===u,"aria-controls":`parity-panel-${h}`,tabIndex:e===u?0:-1,onClick:()=>o(u),onKeyDown:m=>c(m,h),children:u},u))}),t.jsx("div",{className:"code-block__stage",children:i.map((u,h)=>t.jsx("pre",{id:`parity-panel-${h}`,className:`mono code-block__panel${e===u?" is-active":""}`,role:"tabpanel","aria-labelledby":`parity-tab-${h}`,"aria-hidden":e!==u,children:e===u?t.jsx(Jc,{text:l[u]},u):l[u]},u))})]})}function fw(){return t.jsxs("div",{className:"product-page",children:[t.jsx("section",{className:"prod-hero",children:t.jsxs("div",{className:"container prod-hero__inner",children:[t.jsxs(L,{children:[t.jsx("span",{className:"prod-hero__kicker mono",children:"COMPUTE"}),t.jsx("h1",{children:"Instances with their own kernel."})]}),t.jsx(L,{delay:2,children:t.jsx("p",{className:"prod-hero__sub",children:"Every Instance is a hardware-virtualized virtual machine — its own kernel, its own memory, its own disk. Not a container sharing a host you can’t see."})}),t.jsx(L,{delay:4,children:t.jsxs("div",{className:"prod-hero__ctas",children:[t.jsx(M,{to:"/signup",className:"btn btn--primary btn--lg",children:"Get early access"}),t.jsx(M,{to:"/pricing#compute",className:"prod-hero__secondary",children:"See pricing →"})]})})]})}),t.jsx("section",{className:"prod-section",id:"packages",children:t.jsxs("div",{className:"container",children:[t.jsxs(L,{children:[t.jsx("span",{className:"section-kicker mono",children:"PACKAG
25ES"}),t.jsx("h2",{children:"One Package shape, five sizes."}),t.jsx("p",{className:"prod-lede",children:"Five tiers, one shape. Memory is always twice the vCPU count, and every tier ships the same flat NVMe disk. No families, no matrix to decode — pick the size, everything else is identical."})]}),t.jsx("div",{className:"tier-row",children:Ut.map((e,o)=>t.jsx(L,{delay:o,children:t.jsxs("div",{className:"tier-card",children:[t.jsxs("div",{className:"tier-card__spec",children:[e.vcpu," vCPU · ",e.memory," · ",e.disk]}),t.jsx("div",{className:"tier-card__name",children:e.name}),t.jsxs("div",{className:"tier-card__price",children:["$",e.monthly,t.jsx("small",{children:"/mo"})]}),t.jsxs("div",{className:"tier-card__meta",children:[e.transfer," transfer per Instance, pooled · 1 IPv4"]})]})},e.name))}),t.jsx(L,{children:t.jsx(M,{to:"/pricing#compute",className:"section__link",children:"Full pricing, hourly and annual →"})})]})}),t.jsx("section",{className:"prod-section prod-section--sunken",children:t.jsxs("div",{className:"container prod-cols",children:[t.jsx(L,{children:t.jsxs("div",{children:[t.jsx("span",{className:"section-kicker mono",children:"IMAGES"}),t.jsx("h2",{children:"Boot the OS you already know."}),t.jsx("p",{className:"prod-lede",children:"Boot from a clean, current operating system image."})]})}),t.jsx("div",{className:"image-list",role:"list",children:pw.map((e,o)=>t.jsx(L,{delay:o,children:t.jsx("span",{role:"listitem",className:"image-list__chip mono",children:e})},e))})]})}),t.jsx("section",{className:"prod-section",children:t.jsxs("div",{className:"container prod-cols",children:[t.jsx(L,{children:t.jsxs("div",{children:[t.jsx("span",{className:"section-kicker mono",children:"NETWORKING"}),t.jsx("h2",{children:"Networking, attached to every Instance"}),t.jsx("p",{className:"prod-lede",children:"Instances are private by default. Add a Reserved IP when something should be reachable, and place Instances on VPCs and subnets you define."}),t.jsx(M,{to:"/product/networking",className:"section__link",children:"Explore networking →"})]})}),t.jsx(L,{delay:2,children:t.jsxs("div",{className:"crosssell-card",children:[t.jsx("span",{className:"crosssell-card__tag mono",children:"ON-PREM"}),t.jsx("p",{children:"Building your own platform on hardware you control?"}),t.jsx(M,{to:"/on-prem",className:"section__link",children:"Explore Triton On-Prem →"})]})})]})}),t.jsx("section",{className:"prod-section prod-section--sunken",children:t.jsxs("div",{className:"container prod-cols",children:[t.jsx(L,{children:t.jsxs("div",{children:[t.jsx("span",{className:"section-kicker mono",children:"STORAGE"}),t.jsx("h2",{children:"Storage, attached to every Instance"}),t.jsx("p",{className:"prod-lede",children:"Pair Instances with Object Storage for backups, artifacts, and static assets — reachable privately from your VPC."}),t.jsx(M,{to:"/product/object-storage",className:"section__link",children:"Object Storage →"}),t.jsxs("p",{className:"roadmap-note",children:["Block storage: not available today — ",t.jsx(M,{to:"/product/object-storage#roadmap",children:"see the storage roadmap"}),"."]})]})}),t.jsx(L,{delay:2,children:t.jsx(Vm,{})})]})}),t.jsx("section",{className:"prod-section",children:t.jsxs("div",{className:"container prod-cols",children:[t.jsx(L,{children:t.jsxs("div",{children:[t.jsx("span",{className:"section-kicker mono",children:"ONE API"}),t.jsx("h2",{children:"One API, three surfaces"}),t.jsx("p",{className:"prod-lede",children:"The CLI, the API, and the Terraform provider drive the same control plane. Anything the console does, they do."})]})}),t.jsx(L,{delay:2,children:t.jsx(mw,{})})]})}),t.jsx("section",{className:"cta-band",children:t.jsx("div",{className:"container",children:t.jsxs(L,{children:[t.jsxs("p",{className:"prod-teaser",children:["From ",t.jsxs("b",{children:["$",qi.monthly,"/mo"]})," — ",qi.name,", ",qi.vcpu," vCPU / ",qi.memory," / ",qi.disk]}),t.jsx("h2",{children:"Start with a server that’s actually yours."}),t.jsxs("div",{className:"cta-actions",children:[t.jsx(M,{to:"/signup",className:"btn btn--primary btn--lg",children:"Get early access"}),t.jsx(M,{to:"/pricing#compute",className:"btn btn--outline btn--lg",children:"See pricing"})]})]})})})]})}const dr=Ut[1];function gw(){return t.jsxs("div",{className:"product-page",children:[t.jsx("section",{className:"prod-hero",children:t.jsxs("div",{className:"container prod-hero__inner",children:[t.jsxs(L,{children:[t.jsx("span",{className:"prod-hero__kicker mono",children:"TRITON MCP"}
25),t.jsx("h1",{children:"Manage your infrastructure from a conversation."})]}),t.jsx(L,{delay:2,children:t.jsx("p",{className:"prod-hero__sub",children:"Triton MCP is built agent-first: a launch-day, first-class surface that lets an agent read and manage the same Instances, Buckets, and networks your CLI does."})}),t.jsx(L,{delay:4,children:t.jsxs("div",{className:"prod-hero__ctas",children:[t.jsx("a",{href:"https://docs.tritoncloud.io",className:"btn btn--primary btn--lg",children:"Read the documentation"}),t.jsx(M,{to:"/signup",className:"prod-hero__secondary",children:"Get early access →"})]})})]})}),t.jsx("section",{className:"prod-section",children:t.jsxs("div",{className:"container",children:[t.jsxs(L,{children:[t.jsx("span",{className:"section-kicker mono",children:"TOOL SURFACE"}),t.jsx("h2",{children:"Instances, Buckets, and networks — from a prompt."}),t.jsx("p",{className:"prod-lede",children:"The launch tool surface covers Instances, Object Storage, and Networking — read plus provision and manage. Nothing else, and nothing pretend."})]}),t.jsxs("div",{className:"constraint-grid",children:[t.jsx(L,{delay:0,children:t.jsxs("div",{className:"constraint-card",children:[t.jsx("h3",{children:"Instances"}),t.jsx("p",{children:"Create, list, stop, and resize Instances; read their state, addresses, and metrics."})]})}),t.jsx(L,{delay:1,children:t.jsxs("div",{className:"constraint-card",children:[t.jsx("h3",{children:"Object Storage"}),t.jsx("p",{children:"Create and list Buckets, list and put objects, manage access levels."})]})}),t.jsx(L,{delay:2,children:t.jsxs("div",{className:"constraint-card",children:[t.jsx("h3",{children:"Networking"}),t.jsx("p",{children:"Inspect and manage VPCs, subnets, Reserved IPs, and firewall rules."})]})})]})]})}),t.jsx("section",{className:"prod-section prod-section--sunken",children:t.jsxs("div",{className:"container prod-cols",children:[t.jsx(L,{children:t.jsxs("div",{children:[t.jsx("span",{className:"section-kicker mono",children:"DELIBERATELY SMALL"}),t.jsx("h2",{children:"A small surface is the point"}),t.jsx("p",{className:"prod-lede",children:"Every MCP tool is backed by the same coherent /v1 OpenAPI specification as the CLI and console. One well-defined tool set means an agent gets consistent names, consistent errors, and predictable behavior — instead of hundreds of half-tested tools it can wander into. The narrowness is deliberate design, not a gap."})]})}),t.jsx(L,{delay:2,children:t.jsxs("div",{className:"flat-card",children:[t.jsx("div",{className:"flat-card__title",children:"One spec, every surface"}),t.jsx("p",{className:"mono mcp-surface-line",children:"/v1 OpenAPI spec"}),t.jsx("p",{className:"mono mcp-surface-line",children:"→ Console · CLI · API · MCP"}),t.jsx("p",{children:"Same names, same errors, same behavior, whichever surface calls it."})]})})]})}),t.jsx("section",{className:"prod-section",children:t.jsxs("div",{className:"container prod-cols",children:[t.jsx(L,{children:t.jsxs("div",{children:[t.jsx("span",{className:"section-kicker mono",children:"QUICKSTART"}),t.jsx("h2",{children:"Three steps to a connected agent."}),t.jsxs("ol",{className:"mcp-steps",children:[t.jsx("li",{children:"Add the Triton MCP server to your agent’s configuration."}),t.jsx("li",{children:"Authorize it with an API token from your account."}),t.jsx("li",{children:"Ask for what you want; review the action it proposes."})]}),t.jsx("p",{className:"prod-lede",children:t.jsx("a",{href:"https://docs.tritoncloud.io",className:"section__link",children:"Read the documentation →"})})]})}),t.jsx(L,{delay:2,children:t.jsx(Mm,{user:t.jsxs(t.Fragment,{children:["Create a ",dr.name," (",dr.vcpu," vCPU / ",dr.memory,") instance in the nearest region."]}),intro:t.jsxs("p",{children:["Creating ",t.jsx("strong",{children:dr.name})," · ",dr.vcpu," vCPU / ",dr.memory," / ",dr.disk," in ams-1."]}),command:"triton instance create --package baron --region ams-1",result:t.jsx("p",{children:"web-05 is provisioning. One action, exactly what you asked for."})})})]})}),t.jsx("section",{className:"prod-section prod-section--sunken",children:t.jsxs("div",{className:"container",children:[t.jsxs(L,{children:[t.jsx("span",{className:"section-kicker mono",children:"CREDENTIALS"}),t.jsx("h2",{children:"No new credential type"}),t.jsx("p",{className:"prod-lede",children:"MCP credentials are ordinary API tokens — the same kind you already use for the CLI and API. Connecting an agent does not require issuing a different kind of secret, so the tokens you audit, scope, and revoke today cover MCP too."})]}),t.jsxs("div",{className:"constraint-grid constraint-grid--two",children:[t.jsx(L,{delay:0,children:t.jsxs("div",{className:"constraint-card",children:[t.jsx("h3",{children:"What c
25onnecting an agent could mean"}),t.jsx("p",{children:"A separate agent secret — a new kind of credential to issue, scope, rotate, and audit on its own track."})]})}),t.jsx(L,{delay:1,children:t.jsxs("div",{className:"constraint-card constraint-card--callout",children:[t.jsx("h3",{children:"What it means here"}),t.jsx("p",{children:"An ordinary API token. The tokens you already audit, scope, and revoke for the CLI and API cover MCP too."})]})})]})]})}),t.jsx("section",{className:"prod-section prod-section--center",children:t.jsx("div",{className:"container",children:t.jsxs(L,{children:[t.jsx("span",{className:"section-kicker mono",children:"DAY ONE"}),t.jsx("h2",{children:"A launch capability, not a labs tab"}),t.jsx("p",{className:"prod-lede",children:"MCP ships on day one with first-class placement in signup and the console — not an experiment behind a flag. If you manage infrastructure through an agent, this surface was built for that from the start."}),t.jsx("p",{className:"prod-footnote",children:"MCP is a public-cloud surface at launch; it has no on-prem console presence yet."})]})})}),t.jsx("section",{className:"cta-band",children:t.jsx("div",{className:"container",children:t.jsxs(L,{children:[t.jsx("h2",{children:"Point your agent at real infrastructure."}),t.jsxs("div",{className:"cta-actions",children:[t.jsx("a",{href:"https://docs.tritoncloud.io",className:"btn btn--primary btn--lg",children:"Read the documentation"}),t.jsx(M,{to:"/signup",className:"btn btn--outline btn--lg",children:"Get early access"})]})]})})})]})}function yw(){const[e,o]=C.useState("CLI"),i=["CLI","API","Terraform"],s=C.useRef([]),l={CLI:`triton vpc create production --region ams-1
26triton subnet create db --vpc production --private`,API:`curl -X POST https://api.tritoncloud.io/v1/vpcs \\
27  -H "Authorization: Bearer $TRITON_TOKEN" \\
28  -d '{"name":"production","region":"ams-1"}'`,Terraform:`resource "triton_vpc" "production" {
29  region = "ams-1"
30}
31
32resource "triton_subnet" "db" {
33  vpc     = triton_vpc.production.id
34  private = true
35}`},c=(u,h)=>{const m=u.key==="ArrowRight"?(h+1)%i.length:u.key==="ArrowLeft"?(h-1+i.length)%i.length:-1;m>=0&&(u.preventDefault(),s.current[m]?.focus(),o(i[m]))};return t.jsxs("div",{className:"code-block",children:[t.jsx("div",{className:"code-block__tabs",role:"tablist","aria-label":"Create a VPC, three surfaces",children:i.map((u,h)=>t.jsx("button",{id:`net-tab-${h}`,ref:m=>{s.current[h]=m},role:"tab","aria-selected":e===u,"aria-controls":`net-panel-${h}`,tabIndex:e===u?0:-1,onClick:()=>o(u),onKeyDown:m=>c(m,h),children:u},u))}),t.jsx("div",{className:"code-block__stage",children:i.map((u,h)=>t.jsx("pre",{id:`net-panel-${h}`,className:`mono code-block__panel${e===u?" is-active":""}`,role:"tabpanel","aria-labelledby":`net-tab-${h}`,"aria-hidden":e!==u,children:e===u?t.jsx(Jc,{text:l[u]},u):l[u]},u))})]})}function xw(){return t.jsxs("div",{className:"product-page",children:[t.jsx("section",{className:"prod-hero",children:t.jsxs("div",{className:"container prod-hero__inner",children:[t.jsxs(L,{children:[t.jsx("span",{className:"prod-hero__kicker mono",children:"NETWORKING"}),t.jsx("h1",{children:"Nothing is public until you say so."})]}),t.jsx(L,{delay:2,children:t.jsx("p",{className:"prod-hero__sub",children:"Real VPCs, real subnets, real route tables. Isolation is the default state of every Instance, not a rule you remember to add."})}),t.jsx(L,{delay:4,children:t.jsxs("div",{className:"prod-hero__ctas",children:[t.jsx(M,{to:"/signup",className:"btn btn--primary btn--lg",children:"Get early access"}),t.jsx(M,{to:"/pricing",className:"prod-hero__secondary",children:"See pricing →"})]})})]})}),t.jsx("section",{className:"prod-section",children:t.jsxs("div",{className:"container prod-cols prod-cols--wide",children:[t.jsx(L,{children:t.jsx(Dm,{})}),t.jsx(L,{delay:2,children:t.jsxs("div",{children:[t.jsx("span",{className:"section-kicker mono",children:"VPC"}),t.jsx("h2",{children:"VPCs and subnets"}),t.jsx("p",{className:"prod-lede",children:"A production VPC with a public web subnet and a private db subnet. The db subnet has no internet route — by default it cannot reach the internet, and the internet cannot reach it."})]})})]})}),t.jsx("section",{className:"prod-section prod-section--sunken",id:"reserved-ips",children:t.jsx("div",{className:"container",children:t.jsxs(L,{children:[t.jsx("span",{className:"section-kicker mono",children:"RESERVED IPS"}),t.jsx("h2",{children:"Reserved IPs"}),t.jsx("p",{className:"prod-lede",children:"A Reserved IP is yours until you release it. Attach it to an Instance to make that Instance reachable; detach it and attach it to another — the address follows you, not the machine."}),t.jsxs("div",{className:"flat-card flat-card--inline",children:[t.jsx("p",{children:"Free while attached to a running Instance; a small idle fee applies when reserved but unattached — final rate published at launch."}),t.jsx("span",{className:"tag-launch",children:"Published at launch"})]})]})})}),t.jsx("section",{className:"prod-section",id:"nat-gateway",children:t.jsx("div",{className:"container",children:t.jsxs(L,{children:[t.jsx("span",{className:"section-kicker mono",children:"NAT GATEWAY"}),t.jsx("h2",{children:"Egress without babysitting a NAT instance."}),t.jsx("p",{className:"prod-lede",children:"Managed egress for private subnets: Instances with no public address can still reach package mirrors, APIs, and webhooks through a gateway y
35ou control. It replaces the hand-rolled NAT Instance you’d otherwise babysit — and it belongs to the same honest-pricing pillar as everything else here."}),t.jsxs("div",{className:"flat-card flat-card--inline",children:[t.jsx("p",{children:"Managed egress for private subnets — final pricing published at launch."}),t.jsx("span",{className:"tag-launch",children:"Published at launch"})]})]})})}),t.jsx("section",{className:"prod-section prod-section--sunken",children:t.jsx("div",{className:"container",children:t.jsxs(L,{children:[t.jsx("span",{className:"section-kicker mono",children:"FIREWALL"}),t.jsx("h2",{children:"One firewall, top to bottom."}),t.jsx("p",{className:"prod-lede",children:"One tier of rules per VPC, priority-ordered, evaluated top down. No security-group- plus-NACL split to reason about — one list, one order, one answer."}),t.jsxs("div",{className:"constraint-card constraint-card--callout",children:[t.jsx("h3",{children:"Stated plainly"}),t.jsx("p",{children:"Firewall rules have sensible limits, and if you turn off firewalling on an Instance, it’s open — we tell you when that’s the case."})]})]})})}),t.jsx("section",{className:"prod-section",children:t.jsx("div",{className:"container",children:t.jsxs(L,{children:[t.jsx("span",{className:"section-kicker mono",children:"NETWORK DESIGN"}),t.jsx("h2",{children:"Deeper than simple-cloud networking"}),t.jsx("p",{className:"prod-lede",children:"These are real subnets with real route tables — you decide what routes exist, not a flat network with a checkbox for “private.” Multi-tier layouts, isolated databases, and controlled egress are network design here, not workarounds."})]})})}),t.jsx("section",{className:"prod-section prod-section--sunken",children:t.jsxs("div",{className:"container prod-cols",children:[t.jsx(L,{children:t.jsxs("div",{children:[t.jsx("span",{className:"section-kicker mono",children:"ONE API"}),t.jsx("h2",{children:"Create a VPC from any surface"}),t.jsx("p",{className:"prod-lede",children:"Create a VPC from the CLI, the API, or Terraform — the same control plane answers all three."})]})}),t.jsx(L,{delay:2,children:t.jsx(yw,{})})]})}),t.jsx("section",{className:"cta-band",children:t.jsx("div",{className:"container",children:t.jsxs(L,{children:[t.jsx("h2",{children:"Build the network first. Expose things on purpose."}),t.jsx("div",{className:"cta-actions",children:t.jsx(M,{to:"/signup",className:"btn btn--primary btn--lg",children:"Get early access"})}),t.jsxs("div",{className:"crosssell-card crosssell-card--center",children:[t.jsx("span",{className:"crosssell-card__tag mono",children:"ON-PREM"}),t.jsx("p",{children:"Networking that belongs to a platform you own."}),t.jsx(M,{to:"/on-prem",className:"section__link",children:"Explore Triton On-Prem →"})]})]})})})]})}const vw=[["Versioning and conditional writes","Protect current data and make updates only when the object state you expect is still true."],["Object Lock","Apply retention in GOVERNANCE or COMPLIANCE mode and place legal holds that cannot be bypassed."],["Lifecycle controls","Expire current and noncurrent versions by age, and clean up abandoned multipart uploads."]];function ww(){return t.jsxs("div",{className:"product-page object-storage-page",children:[t.jsx("section",{className:"prod-hero os-hero",children:t.jsxs("div",{className:"container os-hero__grid",children:[t.jsx(L,{children:t.jsxs("div",{children:[t.jsx("span",{className:"prod-hero__kicker mono",children:"TRITON CLOUD OBJECT STORAGE"}),t.jsx("h1",{children:"Keep objects close to the compute that uses them."}),t.jsx("p",{className:"prod-hero__sub",children:"S3-compatible storage on the same Triton Cloud platform as your Instances. Instance-to-Bucket traffic stays on the private path and does not bill as egress."}),t.jsxs("div",{className:"prod-hero__ctas",children:[t.jsx(M,{to:"/signup?source=object-storage",className:"btn btn--primary btn--lg",children:"Get early access"}),t.jsx("a",{href:"https://docs.tritoncloud.io",className:"prod-hero__secondary",children:"Read the documentation →"})]})]})}),t.jsx(L,{delay:2,children:t.jsx(Vm,{})})]})}),t.jsx("section",{className:"prod-section",children:t.jsxs("div",{className:"container prod-cols prod-cols--wide",children:[t.jsx(L,{children:t.jsxs("div",{children:[t.jsx("span",{className:"section-kicker mono",children:"ONE DATA PATH"}),t.jsx("h2",{children:"Your app and its objects stay on the same platform."}),t.jsx("p",{className:"prod-lede",children:"Put backups, assets, datasets, and build artifacts in Buckets your Instances can reach privately. The path does not need to leave the VPC or become a separate internet transfer line item."})]})}),t.jsx(L,{delay:2,children:t.jsxs("div",{className:"os-use-list",children:[t.jsxs("div",{children:[t.jsx("span",{className:"mono",children:"01"}),t.jsx("strong",{children:"Backups"}),t.jsx("p",{children:"Scheduled database dumps and Instance backups."})]}),t.jsxs("div",{children:[t.jsx("span",{className:"mono",children:"02"}),t.jsx("strong",{children:"Application data"}),t.jsx("p",{children:"Assets, downloads, datasets, and generated output."})]}),t.jsxs("div",{children:[t.jsx("span",{className:"mono",children:"03"}),t.jsx("strong",{children:"Build artifacts"}),t.jsx("p",{children:"CI output and release archives available across Instances."})]})]})})]})}),t.jsx("section",{className:"prod-section prod-section--sunken",children:t.jsxs("div",{className:"container",children:[t.jsxs(L,{children:[t.jsx("span",{className:"section-kicker mono",children:"BEYOND BASIC S3"}),t.jsx("h2",{children:"Controls that matter after the first PUT."}),t.jsx("p",{className:"prod-lede",children:"The common object path is only the start. Manta implements the storage controls teams use to protect data and automate its lifecycle."})]}),t.jsx("div",{className:"constraint-grid constraint-grid--spaced",children:vw.map(([e,o],i)=>t.jsx(L,{delay:i,children:t.jsxs("div",{className:"constraint-card",children:[t.jsx("h3",{children:e}),t.jsx("p",{children:o})]})},e))}),t.jsxs(L,{children:[t.jsx("p",{className:"os-caveat",children:"Encryption requests are explicitly rejected today rather than accepted while storing plaintext. The compatibility reference names every supported, partial, rejected, and missing operation."}),t.jsx("a",{href:"https://docs.tritoncloud.io",className:"section__link",children:"Read the documentation →"})]})]})}),t.jsx("section",{className:"prod-section os-models",children:t.jsxs("div",{className:"container",children:[t.jsxs(L,{children:[t.jsx("span",{className:"section-kicker mono",children:"MANTA"}),t.jsx("h2",{children:"One storage system. Two operating models."}),t.jsx("p",{className:"prod-lede",children:"Manta is the open-source storage system. Object Storage is the managed surface on Triton Cloud. The same system is part of Triton Private Cloud when you need to run the platform on infrastru
35cture you control."})]}),t.jsxs("div",{className:"os-model-grid",children:[t.jsx(L,{children:t.jsxs("article",{children:[t.jsx("span",{className:"mono",children:"WE RUN IT"}),t.jsx("h3",{children:"Triton Cloud Object Storage"}),t.jsx("p",{children:"Create Buckets next to your Triton Cloud Instances and use familiar S3 clients."}),t.jsx(M,{to:"/signup?source=object-storage",className:"section__link",children:"Get cloud early access →"})]})}),t.jsx(L,{delay:1,children:t.jsxs("article",{children:[t.jsx("span",{className:"mono",children:"YOU RUN IT"}),t.jsx("h3",{children:"Triton Private Cloud"}),t.jsx("p",{children:"The same open-source system is the Manta data-services direction for Triton Private Cloud, currently in development."}),t.jsx(M,{to:"/on-prem#pilot",className:"section__link",children:"Review your environment →"})]})})]})]})}),t.jsx("section",{className:"prod-section prod-section--sunken",children:t.jsx("div",{className:"container",children:t.jsxs(L,{children:[t.jsx("span",{className:"section-kicker mono",children:"PRICING SHAPE"}),t.jsx("h2",{children:"A storage bill you can reason about."}),t.jsx("p",{className:"prod-lede",children:"A flat monthly base covers storage and requests, followed by a per-GB storage overage. Private traffic between your Instances and Buckets does not bill as egress."}),t.jsxs("div",{className:"os-billing-grid",children:[t.jsxs("div",{children:[t.jsx("strong",{children:"Flat base"}),t.jsx("span",{children:"Storage and requests together"})]}),t.jsxs("div",{children:[t.jsx("strong",{children:"Simple overage"}),t.jsx("span",{children:"Per GB beyond the included amount"})]}),t.jsxs("div",{children:[t.jsx("strong",{children:"Private path"}),t.jsx("span",{children:"No egress charge between Instance and Bucket"})]})]}),t.jsx(M,{to:"/pricing#storage",className:"section__link",children:"See Object Storage pricing →"})]})})}),t.jsx("section",{className:"roadmap",id:"roadmap",children:t.jsx("div",{className:"container",children:t.jsxs("div",{className:"roadmap__inner",children:[t.jsx("span",{className:"roadmap__tag mono",children:"STORAGE ROADMAP"}),t.jsx("h2",{children:"Object Storage is the available storage product."}),t.jsx("p",{children:"Block Storage and Filesystem are planned, not available today. Manta data services for Triton Private Cloud are in development."}),t.jsx(M,{to:"/company/roadmap",className:"section__link",children:"View the roadmap →"})]})})}),t.jsx("section",{className:"cta-band",children:t.jsx("div",{className:"container os-final-cta",children:t.jsxs(L,{children:[t.jsx("span",{className:"section-kicker mono",children:"CHOOSE YOUR PATH"}),t.jsx("h2",{children:"Use Manta in our cloud, or talk through running Triton in yours."}),t.jsxs("div",{className:"cta-actions",children:[t.jsx(M,{to:"/signup?source=object-storage",className:"btn btn--primary btn--lg",children:"Get cloud early access"}),t.jsx(M,{to:"/contact/sales?source=object-storage",className:"btn btn--secondary btn--lg",children:"Talk to sales"})]})]})})})]})}const kw=["VMware","Nutanix","Proxmox","OpenStack","Bare metal","Public cloud","Other"],jw=["VMware / licensing","Build private cloud","Hardware refresh","Consolidate infrastructure","Service provider cloud","AI / GPU infrastructure","Other"],bw={name:"",email:"",company:"",context:""},jc=2e3;function Nw(e){const o={};return e.email.trim()?/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(e.email.trim())||(o.email="Please enter a valid email address."):o.email="Please enter your work email.",e.company.trim()||(o.company="Please enter your company."),e.context.trim().length>jc&&(o.context=`Please keep this under ${jc} characters.`),o}function Sw(){const[e]=qc(),o=e.get("source")==="open-compute"?{profile:e.get("profile")||"Open Compute",scale:e.get("scale")||"Not specified",compute:e.get("compute"),gpu:e.get("gpu"),storage:e.get("storage"),expansion:e.get("expansion")}:null,[i,s]=C.useState(bw),[l,c]=C.useState([]),[u,h]=C.useState([]),[m,f]=C.useState({}),y=e.get("submission"),x=e.get("message"),[w,k]=C.useState(y==="success"),[N,I]=C.useState(!1),[T,_]=C.useState(y==="error"?x:null),[z,B]=C.useState(""),[te,Y]=C.useState(!1);C.useEffect(()=>{Y(!0)},[]);function F(R,ee){s(Z=>({...Z,[R]:ee}))}function ne(R){h(ee=>ee.includes(R)?ee.filter(Z=>Z!==R):[...ee,R])}function ue(R){c(ee=>ee.includes(R)?ee.filter(Z=>Z!==R):[...ee,R])}async function fe(R){R.preventDefault();const ee=Nw(i);if(f(ee),!(Object.keys(ee).length!==0||N)){I(!0),_(null);try{const Z=await fetch("/api/contact",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({form:"earlyaccess",name:i.name.trim(),email:i.email.trim(),company:i.company.trim(),useCase:[o?`Open Compute deployment: ${o.profile} profile, ${o.scale}, ${o.compute||"—"} OU compute, ${o.gpu||"—"} OU GPU, ${o.storage||"—"} OU storage, ${o.expansion||"—"} OU expansion`:null,l.length?`Running today: ${l.join(", ")}`:null,u.length?`Trying to change: ${u.join(", ")}
35`:null].filter(Boolean).join(" | ")||null,message:i.context.trim()||null,...z.trim()?{website:z.trim()}:{}})});if(!Z.ok){const ye=await Z.json().catch(()=>null);throw Z.status===429?new Error(ye?.message||"We are receiving a lot of requests. Please wait a few minutes and try again."):new Error("Your request could not be sent. Please try again in a moment.")}k(!0)}catch(Z){_(Z instanceof Error?Z.message:"Your request could not be sent. Please try again in a moment.")}finally{I(!1)}}}return w?t.jsxs("div",{className:"contact-success pea__success",role:"status",children:[t.jsx("h3",{children:"Request received"}),t.jsx("p",{children:"A Triton engineer will reply directly to map Triton to your environment and outline practical next steps."})]}):t.jsxs("form",{className:"contact-form pea__form",action:`/on-prem${e.toString()?`?${e.toString()}`:""}`,method:"post",onSubmit:fe,noValidate:te,children:[t.jsxs("div",{className:"visually-hidden","aria-hidden":"true",children:[t.jsx("label",{htmlFor:"ea-website",children:"Website"}),t.jsx("input",{id:"ea-website",name:"website",tabIndex:-1,autoComplete:"off",value:z,onChange:R=>B(R.target.value)})]}),o&&t.jsxs("div",{className:"pea__deployment-context",role:"status",children:[t.jsx("span",{className:"mono",children:"OPEN COMPUTE CONFIGURATION"}),t.jsxs("strong",{children:[o.profile," profile · ",o.scale]}),t.jsxs("p",{children:[o.compute," OU compute · ",o.gpu," OU GPU · ",o.storage," OU storage · ",o.expansion," OU expansion"]})]}),t.jsxs("div",{className:"pea__row",children:[t.jsxs("div",{className:"contact-form__field",children:[t.jsx("label",{htmlFor:"ea-email",children:"Work email *"}),t.jsx("input",{id:"ea-email",name:"email",type:"email",value:i.email,onChange:R=>F("email",R.target.value),required:!0,autoComplete:"email","aria-invalid":!!m.email,"aria-describedby":m.email?"ea-email-error":void 0}),m.email&&t.jsx("p",{className:"contact-form__error",id:"ea-email-error",role:"alert",children:m.email})]}),t.jsxs("div",{className:"contact-form__field",children:[t.jsx("label",{htmlFor:"ea-company",children:"Company *"}),t.jsx("input",{id:"ea-company",name:"company",value:i.company,onChange:R=>F("company",R.target.value),required:!0,autoComplete:"organization","aria-invalid":!!m.company,"aria-describedby":m.company?"ea-company-error":void 0}),m.company&&t.jsx("p",{className:"contact-form__error",id:"ea-company-error",role:"alert",children:m.company})]})]}),t.jsxs("fieldset",{className:"pform__fieldset",children:[t.jsx("legend",{className:"pform__legend",children:"What are you running today?"}),t.jsx("p",{className:"pform__hint",children:"Optional. Pick any that apply."}),t.jsx("div",{className:"pform__checks",children:kw.map(R=>t.jsxs("label",{className:"pform__check",children:[t.jsx("input",{type:"checkbox",name:"platforms",value:R,checked:l.includes(R),onChange:()=>ue(R)}),R]},R))})]}),t.jsxs("fieldset",{className:"pform__fieldset",children:[t.jsx("legend",{className:"pform__legend",children:"What are you trying to change?"}),t.jsx("p",{className:"pform__hint",children:"Optional. Pick any that apply."}),t.jsx("div",{className:"pform__checks",children:jw.map(R=>t.jsxs("label",{className:"pform__check",children:[t.jsx("input",{type:"checkbox",name:"situations",value:R,checked:u.includes(R),onChange:()=>ne(R)}),R]},R))})]}),t.jsxs("div",{className:"contact-form__field",children:[t.jsx("label",{htmlFor:"ea-context",children:"Tell us a little about the environment"}),t.jsx("textarea",{id:"ea-context",name:"context",rows:3,value:i.context,onChange:R=>F("context",R.target.value),maxLength:jc,"aria-invalid":!!m.context,"aria-describedby":m.context?"ea-context-error ea-context-hint":"ea-context-hint"}),t.jsx("p",{className:"pform__hint",id:"ea-context-hint",children:"Optional. Example: 80 VMware hosts, about 1,200 VMs, shared storage, two datacenters."}),m.context&&t.jsx("p",{className:"contact-form__error",id:"ea-context-error",role:"alert",children:m.context})]}),t.jsxs("div",{className:"contact-form__field",children:[t.jsxs("label",{htmlFor:"ea-name",children:["Name ",t.jsx("span",{className:"pform__optional",children:"(optional)"})]}),t.jsx("input",{id:"ea-name",name:"name",value:i.name,onChange:R=>F("name",R.target.value),autoComplete:"name"})]}),T&&t.jsx("p",{className:"contact-form__error",role:"alert",children:T}),t.jsx("button",{type:"submit",className:"btn btn--primary",disabled:N,children:N?"Sending…":o?"Review my environment":"Talk to an engineer"}),t.jsx("p",{className:"pform__privacy",children:"A Triton engineer will reply directly. Your infrastru
35cture details stay private."})]})}function Tw(){return t.jsxs("div",{className:"page onprem onprem-cloud",children:[t.jsx("section",{className:"ov-hero container",children:t.jsxs("div",{className:"ov-hero__grid",children:[t.jsx(L,{children:t.jsxs("div",{children:[t.jsx("span",{className:"section-kicker mono",children:"TRITON · PRIVATE CLOUD"}),t.jsxs("h1",{children:["Run your own ",t.jsx("span",{children:"cloud"}),"."]}),t.jsx("p",{className:"ov-hero__lede",children:"Run the same open-source Triton platform behind Triton Cloud on infrastructure you control. Give teams projects, APIs and self-service resources while your operators retain control of the hardware."}),t.jsxs("div",{className:"ov-actions",children:[t.jsx("a",{className:"btn btn--primary",href:"#pilot",children:"Talk to an engineer"}),t.jsx("a",{className:"ov-quiet-link",href:"#platform",children:"Explore the architecture ↓"})]}),t.jsx("p",{className:"ov-hero__pilot-note",children:"Run Triton on your infrastructure with scope defined together."}),t.jsx("p",{className:"ov-hero__note",children:"Standard hardware · Multi-tenant · API-first · Open source"})]})}),t.jsx(L,{children:t.jsxs("figure",{className:"cloud-model","aria-label":"Triton turns customer infrastructure into cloud resources",children:[t.jsxs("div",{className:"cloud-model__head",children:[t.jsx("span",{children:"YOUR TEAMS"}),t.jsx("b",{children:"TRITON"})]}),t.jsxs("div",{className:"cloud-model__stack",children:[t.jsxs("div",{className:"cloud-model__layer",children:[t.jsx("b",{children:"ACCESS"}),t.jsx("span",{children:"Portal · CLI · API · automation"})]}),t.jsxs("div",{className:"cloud-model__layer cloud-model__layer--core",children:[t.jsx("b",{children:"TRITON"}),t.jsx("span",{children:"Projects · identity · policy"})]}),t.jsxs("div",{className:"cloud-model__layer",children:[t.jsx("b",{children:"RESOURCES"}),t.jsx("span",{children:"Compute · storage · network"})]})]}),t.jsx("div",{className:"cloud-model__arrow","aria-hidden":"true"}),t.jsxs("div",{className:"cloud-model__substrate",children:["YOUR INFRASTRUCTURE",t.jsx("small",{children:"Servers · NVMe · network"})]}),t.jsxs("figcaption",{className:"cloud-model__foot",children:[t.jsx("span",{children:"YOUR HARDWARE"}),t.jsx("span",{children:"CLOUD RESOURCES"})]})]})})]})}),t.jsx("section",{className:"ov-console-preview container",id:"console-preview","aria-label":"Triton Private Cloud console",children:t.jsx(L,{children:t.jsx(zm,{deployment:"private"})})}),t.jsx("section",{className:"section-rhythm ov-proof",children:t.jsxs("div",{className:"container",children:[t.jsx(L,{children:t.jsxs("div",{className:"ov-proof__heading",children:[t.jsx("span",{className:"section-kicker mono",children:"PROVEN CLOUD LINEAGE"}),t.jsx("h2",{children:"This isn’t our first cloud."}),t.jsxs("div",{className:"ov-proof__copy",children:[t.jsx("p",{children:"Triton began at Joyent as a platform for public and private cloud infrastructure."}),t.jsx("p",{children:"Samsung acquired Joyent in 2016 to bring that cloud technology into its own global cloud strategy. Triton Cloud carries the operating experience forward into a new generation of the platform."})]})]})}),t.jsxs(L,{children:[t.jsxs("figure",{className:"ov-lineage",children:[t.jsxs("div",{className:"ov-lineage__stage",children:[t.jsx("span",{className:"ov-lineage__number mono",children:"01"}),t.jsx("h3",{children:"Joyent"}),t.jsx("p",{children:"Built"}),t.jsxs("ul",{children:[t.jsx("li",{children:"Triton DataCenter"}),t.jsxs("li",{children:[t.jsx(M,{to:"/smartos",children:"SmartOS"})," + Manta"]}),t.jsx("li",{children:"Public + private cloud"})]})]}),t.jsx("i",{"aria-hidden":"true",children:"→"}),t.jsxs("div",{className:"ov-lineage__stage",children:[t.jsx("span",{className:"ov-lineage__number mono",children:"02"}),t.jsx("h3",{children:"Samsung"}),t.jsx("p",{children:"Scaled"}),t.jsxs("ul",{children:[t.jsx("li",{children:"Acquired Joyent in 2016"}),t.jsx("li",{children:"Triton Private Regions"}),t.jsx("li",{children:"Mobile · IoT · strategic data"})]})]}),t.jsx("i",{"aria-hidden":"true",children:"→"}),t.jsxs("div",{className:"ov-lineage__stage ov-lineage__stage--next",children:[t.jsx("span",{className:"ov-lineage__number mono",children:"03"}),t.jsx("h3",{children:"Triton Cloud"}),t.jsx("p",{children:"Rebuilt"}),t.jsxs("ul",{children:[t.jsx("li",{children:"Modern control plane"}),t.jsx("li",{children:"New cloud services"}),t.jsx("li",{children:"Operator + developer model"})]})]}),t.jsx("figcaption",{children:"Built over years. Tested at scale. Carried forward."})]}),t.jsxs("p",{className:"ov-proof__sources",children:["Sources:"," ",t.jsx("a",{href:"https://news.samsung.com/global/samsung-to-acquire-joyent-a-leading-public-and-private-cloud-provider",children:"Samsung acquisition announcement"})," · ",t.jsx("a",{href:"https://developer.samsung.com/sdp/blog/en/2017/10/13/the-connected-cloud-samsung-mobiles-multi-cloud-architecture",children:"Samsung connected-cloud architecture"})]})]})]})}),t.jsx("section",{className:"section-rhythm ov-vmware",id:"vmware-migration",children:t.jsxs("div",{className:"container",children:[t.jsx(L,{children:t.jsxs("div",{className:"ov-vmware__heading",children:[t.jsxs("div",{children:[t.jsx("span",{className:"section-kicker mono",children:"RETHINKING VMWARE"}),t.jsxs("h2",{children:["Leaving VMware?",t.jsx("br",{}),"Don’t stop at the hypervisor."]})]}),t.jsxs("div",{children:[t.jsx("p",{children:"Broadcom has given many infrastru
35cture teams a reason to reconsider VMware. A lower licensing bill may solve the immediate problem."}),t.jsx("strong",{children:"The bigger opportunity is to change how infrastructure is delivered."})]})]})}),t.jsxs(L,{children:[t.jsxs("div",{className:"ov-vmware-shift",children:[t.jsxs("section",{children:[t.jsx("span",{className:"ov-vmware-shift__label mono",children:"WHAT STAYS"}),t.jsxs("dl",{children:[t.jsxs("div",{children:[t.jsx("dt",{children:"Your hardware"}),t.jsx("dd",{children:"Standard datacenter infrastructure."})]}),t.jsxs("div",{children:[t.jsx("dt",{children:"Your workloads"}),t.jsx("dd",{children:"Keep running the applications you have."})]}),t.jsxs("div",{children:[t.jsx("dt",{children:"Your control"}),t.jsx("dd",{children:"You own the infrastructure and lifecycle."})]})]})]}),t.jsxs("div",{className:"ov-vmware-shift__arrow","aria-hidden":"true",children:[t.jsx("span",{children:"VMWARE"}),t.jsx("i",{children:"→"}),t.jsx("b",{children:"TRITON"})]}),t.jsxs("section",{children:[t.jsx("span",{className:"ov-vmware-shift__label mono",children:"WHAT CHA
35NGES"}),t.jsxs("dl",{children:[t.jsxs("div",{children:[t.jsx("dt",{children:"The operating model"}),t.jsx("dd",{children:"Infrastructure becomes cloud resources."})]}),t.jsxs("div",{children:[t.jsx("dt",{children:"The boundary"}),t.jsx("dd",{children:"Teams work inside tenants and projects."})]}),t.jsxs("div",{children:[t.jsx("dt",{children:"The interface"}),t.jsx("dd",{children:"Portal, CLI, API and automation share one platform model."})]})]})]})]}),t.jsxs("ol",{className:"ov-migration-path","aria-label":"A practical path off VMware",children:[t.jsxs("li",{children:[t.jsx("span",{className:"mono",children:"01"}),t.jsx("b",{children:"Assess"}),t.jsx("p",{children:"Map workloads, hardware and dependencies."})]}),t.jsxs("li",{children:[t.jsx("span",{className:"mono",children:"02"}),t.jsx("b",{children:"Pilot"}),t.jsx("p",{children:"Run Triton on a defined slice of infrastructure."})]}),t.jsxs("li",{children:[t.jsx("span",{className:"mono",children:"03"}),t.jsx("b",{children:"Prove"}),t.jsx("p",{children:"Validate workloads, operations and automation."})]}),t.jsxs("li",{children:[t.jsx("span",{className:"mono",children:"04"}),t.jsx("b",{children:"Expand"}),t.jsx("p",{children:"Move more capacity where the platform and workload fit."})]})]}),t.jsxs("div",{className:"ov-vmware__close",children:[t.jsx("p",{children:"A VMware exit can be a hypervisor replacement—or the beginning of a real private cloud."}),t.jsx("a",{className:"btn btn--primary",href:"#pilot",children:"See if Triton fits your VMware environment"})]})]})]})}),t.jsx("section",{className:"section-rhythm ov-manifesto",children:t.jsxs("div",{className:"container",children:[t.jsx(L,{children:t.jsxs("div",{className:"ov-cloud-contract__heading",children:[t.jsxs("div",{children:[t.jsx("span",{className:"section-kicker mono",children:"CLOUD OPERATING MODEL"}),t.jsx("h2",{children:"Your datacenter should behave like a cloud."})]}),t.jsxs("div",{className:"ov-manifesto__body",children:[t.jsx("p",{children:"Cloud changed the contract between infrastructure teams and application teams. Operators define capacity, policy and boundaries. Teams consume compute, storage and networking as resources—through a portal, CLI, API or automation."}),t.jsx("strong",{children:"That operating model should not disappear when the hardware is in your datacenter."})]})]})}),t.jsx(L,{children:t.jsxs("figure",{className:"ov-cloud-contract",children:[t.jsx("div",{className:"ov-cloud-contract__request mono",children:"A TEAM NEEDS A PRODUCTION ENVIRONMENT"}),t.jsxs("div",{className:"ov-cloud-contract__paths",children:[t.jsxs("div",{className:"ov-cloud-path ov-cloud-path--infrastructure",children:[t.jsxs("div",{className:"ov-cloud-path__title",children:[t.jsx("span",{className:"mono",children:"INFRASTRUCTURE-CENTRIC"}),t.jsx("p",{children:"Teams interact with the underlying domains."})]}),t.jsxs("div",{className:"ov-domain-flow",children:[t.jsx("div",{children:t.jsx("span",{children:"APPLICATION TEAM"})}),t.jsx("i",{"aria-hidden":"true"}),t.jsxs("div",{children:[t.jsx("b",{children:"Compute"}),t.jsx("span",{children:"VM · hypervisor"})]}),t.jsx("i",{"aria-hidden":"true"}),t.jsxs("div",{children:[t.jsx("b",{children:"Network"}),t.jsx("span",{children:"Routing · IP"})]}),t.jsx("i",{"aria-hidden":"true"}),t.jsxs("div",{children:[t.jsx("b",{children:"Storage"}),t.jsx("span",{children:"Volume · policy"})]}),t.jsx("i",{"aria-hidden":"true"}),t.jsx("div",{className:"ov-domain-flow__result",children:t.jsx("b",{children:"Environment ready"})})]})]}),t.jsxs("div",{className:"ov-cloud-path ov-cloud-path--triton",children:[t.jsxs("div",{className:"ov-cloud-path__title",children:[t.jsx("span",{className:"mono",children:"TRITON CLOUD MODEL"}),t.jsx("p",{children:"Teams consume resources inside defined boundaries."})]}),t.jsxs("div",{className:"ov-project-flow",children:[t.jsx("div",{className:"ov-project-flow__team",children:"APPLICATION TEAM"}),t.jsx("i",{"aria-hidden":"true"}),t.jsx("div",{className:"ov-project-flow__access",children:"Portal · CLI · API · Automation"}),t.jsx("i",{"aria-hidden":"true"}),t.jsxs("div",{className:"ov-project",children:[t.jsx("span",{className:"mono",children:"PROJECT: PRODUCTION"}),t.jsxs("div",{children:[t.jsx("b",{children:"Compute"}),t.jsx("b",{children:"Network"}),t.jsx("b",{children:"Storage"})]})]}),t.jsx("i",{"aria-hidden":"true"}),t.jsx("div",{className:"ov-project-flow__result",children:"Environment ready"})]}),t.jsxs("div",{className:"ov-guardrails",children:[t.jsx("span",{className:"mono",children:"OPERATOR CONTROL"}),t.jsx("b",{children:"Capacity · Quotas · Identity · Policy"})]})]})]}),t.jsxs("figcaption",{children:[t.jsx("strong",{children:"Cloud is how infrastru
35cture is consumed."}),t.jsx("span",{children:"Not where the servers live."})]})]})})]})}),t.jsxs("section",{className:"section-rhythm container",id:"architecture",children:[t.jsx(L,{children:t.jsxs("div",{className:"ov-section-heading",children:[t.jsxs("div",{children:[t.jsx("span",{className:"section-kicker mono",children:"MORE THAN VIRTUALIZATION"}),t.jsx("h2",{children:"The hypervisor is only one layer."})]}),t.jsx("p",{children:"A hypervisor runs virtual machines. A cloud also needs identity, tenancy, networking, storage, APIs and a way for teams to consume those resources. Triton brings those layers into one operating model."})]})}),t.jsx(L,{children:t.jsxs("figure",{className:"ov-platform-stack",children:[t.jsx("div",{className:"ov-platform-stack__brand mono",children:"TRITON"}),t.jsxs("div",{className:"ov-platform-stack__diagram",children:[t.jsxs("div",{className:"ov-platform-layer ov-platform-layer--consume",children:[t.jsx("span",{className:"ov-platform-layer__label mono",children:"CONSUME"}),t.jsxs("div",{className:"ov-platform-layer__items",children:[t.jsx("span",{children:"Portal"}),t.jsx("span",{children:"CLI"}),t.jsx("span",{children:"API"}),t.jsx("span",{children:"Automation"})]})]}),t.jsxs("div",{className:"ov-platform-layer ov-platform-layer--model",children:[t.jsx("span",{className:"ov-platform-layer__label mono",children:"CLOUD MODEL"}),t.jsxs("div",{className:"ov-platform-layer__items",children:[t.jsx("span",{children:"Projects"}),t.jsx("span",{children:"Identity"}),t.jsx("span",{children:"Tenancy"}),t.jsx("span",{children:"Policy"})]})]}),t.jsxs("div",{className:"ov-platform-layer ov-platform-layer--resources",children:[t.jsx("span",{className:"ov-platform-layer__label mono",children:"CLOUD RESOURCES"}),t.jsxs("div",{className:"ov-resource-grid",children:[t.jsxs("div",{className:"ov-compute",children:[t.jsx("b",{children:"Compute"}),t.jsx("span",{children:"Instances"}),t.jsxs("div",{className:"ov-hypervisor",children:[t.jsx("strong",{children:"HYPERVISOR"}),t.jsx("small",{children:"one part of compute"})]})]}),t.jsx("div",{className:"ov-resource",children:t.jsx("b",{children:"Network"})}),t.jsx("div",{className:"ov-resource",children:t.jsx("b",{children:"Block"})}),t.jsx("div",{className:"ov-resource",children:t.jsx("b",{children:"Object"})})]})]}),t.jsxs("div",{className:"ov-platform-layer ov-platform-layer--infrastructure",children:[t.jsx("span",{className:"ov-platform-layer__label mono",children:"INFRASTRUCTURE"}),t.jsxs("div",{className:"ov-platform-layer__items",children:[t.jsx("span",{children:"Servers"}),t.jsx("span",{children:"NVMe"}),t.jsx("span",{children:"Network fabric"})]})]})]}),t.jsx("div",{className:"ov-platform-bracket","aria-hidden":"true",children:t.jsx("span",{children:"CLOUD PLATFORM"})}),t.jsxs("p",{className:"ov-hypervisor-note",children:["Virtualization stops here.",t.jsx("br",{}),t.jsx("b",{children:"Triton continues."})]}),t.jsx("figcaption",{children:"Virtualization is part of Triton. The cloud operating model is the product."})]})})]}),t.jsx("section",{className:"section-rhythm ov-dual",children:t.jsxs("div",{className:"container",children:[t.jsx(L,{children:t.jsxs("div",{className:"ov-dual__heading",children:[t.jsxs("div",{children:[t.jsx("span",{className:"section-kicker mono",children:"THE CLOUD WE RUN"}),t.jsxs("h2",{children:["We run Triton.",t.jsx("br",{}),"So can you."]})]}),t.jsxs("div",{children:[t.jsx("p",{children:"Triton Cloud runs on the same open-source cloud platform available for your datacenter."}),t.jsx("strong",{children:"Use Triton as a public cloud operated by us, or deploy it on infrastructure you control. The operator changes. The platform doesn’t."})]})]})}),t.jsxs(L,{children:[t.jsxs("figure",{className:"ov-same-platform",children:[t.jsxs("div",{className:"ov-same-platform__experience",children:[t.jsx("span",{className:"mono",children:"WHAT TEAMS SEE"}),t.jsx("p",{children:"Portal · CLI · API · Projects · Resources"})]}),t.jsx("i",{"aria-hidden":"true",children:"↓"}),t.jsxs("div",{className:"ov-same-platform__core",children:[t.jsx("span",{className:"mono",children:"TRITON"}),t.jsx("b",{children:"OPEN-SOURCE CLOUD PLATFORM"}),t.jsx("p",{children:"Projects · APIs · Compute · Storage · Networking · Automation"})]}),t.jsxs("div",{className:"ov-same-platform__branches","aria-hidden":"true",children:[t.jsx("span",{children:"↙"}),t.jsx("span",{children:"↘"})]}),t.jsxs("div",{className:"ov-same-platform__operators",children:[t.jsxs("div",{children:[t.jsx("span",{className:"mono",children:"TRITON CLOUD"}),t.jsx("b",{children:"WE RUN IT"}
35),t.jsxs("p",{children:["Our infrastructure",t.jsx("br",{}),"Our operations",t.jsx("br",{}),"Public cloud"]})]}),t.jsxs("div",{children:[t.jsx("span",{className:"mono",children:"YOUR CLOUD"}),t.jsx("b",{children:"YOU RUN IT"}),t.jsxs("p",{children:["Your infrastructure",t.jsx("br",{}),"Your operations",t.jsx("br",{}),"Private or sovereign cloud"]})]})]}),t.jsx("figcaption",{children:"Same software. Same APIs. Different operator."})]}),t.jsxs("div",{className:"ov-open-source-proof",children:[t.jsxs("div",{children:[t.jsx("span",{className:"mono",children:"AND IT’S OPEN SOURCE."}),t.jsx("p",{children:"The software underneath Triton Cloud is available to inspect and run on infrastructure you control."})]}),t.jsx("a",{className:"ov-quiet-link",href:"https://github.com/TritonDataCenter",target:"_blank",rel:"noreferrer",children:"Explore the source →"})]}),t.jsxs("div",{className:"ov-run-own-inspect",children:[t.jsxs("div",{children:[t.jsx("span",{className:"mono",children:"RUN IT"}),t.jsx("p",{children:"Use Triton Cloud."})]}),t.jsxs("div",{children:[t.jsx("span",{className:"mono",children:"OWN IT"}),t.jsx("p",{children:"Deploy Triton on your infrastructure."})]}),t.jsxs("div",{children:[t.jsx("span",{className:"mono",children:"INSPECT IT"}),t.jsx("p",{children:"The platform is open source."})]})]}),t.jsxs("div",{className:"ov-dual__actions",children:[t.jsx("a",{className:"btn btn--primary",href:"/signup",children:"Try Triton Cloud"}),t.jsx("a",{className:"btn btn--outline",href:"#pilot",children:"Talk to an engineer"})]})]})]})}),t.jsxs("section",{className:"section-rhythm container ov-economics",children:[t.jsx(L,{children:t.jsxs("div",{className:"ov-economics__heading",children:[t.jsxs("div",{children:[t.jsx("span",{className:"section-kicker mono",children:"CLOUD ECONOMICS, ON-PREM"}),t.jsxs("h2",{children:["Own the hardware.",t.jsx("br",{}),"Account for it like cloud."]})]}),t.jsx("p",{children:"Triton turns infrastructure you own into measurable cloud capacity. Track consumption by tenant, project, workload or service—and give teams the cost visibility they expect from public cloud."})]})}),t.jsxs(L,{children:[t.jsxs("figure",{className:"ov-economics-flow",children:[t.jsxs("div",{className:"ov-economics-flow__stage",children:[t.jsx("span",{className:"mono",children:"YOUR INFRASTRUCTURE"}),t.jsx("h3",{children:"Capacity you own"}),t.jsx("p",{children:"Compute · Memory · Storage · Network · Accelerated capacity"})]}),t.jsxs("div",{className:"ov-economics-flow__bridge",children:[t.jsx("span",{children:"↓"}),t.jsx("b",{className:"mono",children:"TRITON"}),t.jsx("span",{children:"↓"})]}),t.jsxs("div",{className:"ov-economics-flow__stage ov-economics-flow__stage--metered",children:[t.jsx("span",{className:"mono",children:"METERED CLOUD CAPACITY"}),t.jsx("h3",{children:"Consumption you can measure"}),t.jsx("p",{children:"Usage records · Resource rates · Capacity consumed"})]}),t.jsx("div",{className:"ov-economics-flow__bridge",children:t.jsx("span",{children:"↓"})}),t.jsxs("div",{className:"ov-economics-flow__stage",children:[t.jsx("span",{className:"mono",children:"COST ATTRIBUTION"}),t.jsx("h3",{children:"Where the capacity goes"}),t.jsx("p",{children:"Tenant → Project → Workload"})]}),t.jsx("figcaption",{children:"You own the capacity. Your teams see the consumption."})]}),t.jsxs("div",{className:"ov-economics-actions",children:[t.jsxs("article",{children:[t.jsx("span",{className:"mono",children:"01"}),t.jsx("h3",{children:"Meter it."}),t.jsx("p",{children:"Track compute, memory, storage, network and accelerated capacity as cloud resources."})]}),t.jsxs("article",{children:[t.jsx("span",{className:"mono",children:"02"}),t.jsx("h3",{children:"Attribute it."}),t.jsx("p",{children:"Connect consumption to the tenant, project, workload or team responsible for it."})]}),t.jsxs("article",{children:[t.jsx("span",{className:"mono",children:"03"}),t.jsx("h3",{children:"Price it."}),t.jsx("p",{children:"Define internal rates for showback, chargeback, budgeting and capacity planning."})]})]}),t.jsx("p",{className:"ov-economics__close",children:"Your datacenter stops being one big infrastru
35cture bill."})]})]}),t.jsxs("section",{className:"section-rhythm container",children:[t.jsx(L,{children:t.jsxs("div",{className:"ov-section-heading",children:[t.jsxs("div",{children:[t.jsx("span",{className:"section-kicker mono",children:"TWO EXPERIENCES. ONE PLATFORM."}),t.jsxs("h2",{children:["Built by operators.",t.jsx("br",{}),"Designed for developers."]})]}),t.jsxs("div",{children:[t.jsx("p",{children:"Running a cloud should not require a maze of operational tools. Triton gives infrastructure teams a clear model for health, capacity, lifecycle and policy while developers get the self-service experience they expect from cloud."}),t.jsx("strong",{children:"The complexity stays in the platform, not in the workflow."})]})]})}),t.jsx(L,{children:t.jsxs("div",{className:"ov-roles",children:[t.jsxs("article",{className:"ov-role",children:[t.jsx("span",{className:"section-kicker mono",children:"OPERATORS"}),t.jsx("h3",{children:"Run the system."}),t.jsxs("dl",{children:[t.jsxs("div",{children:[t.jsx("dt",{children:"Health"}),t.jsx("dd",{children:"See what is working and what needs attention."})]}),t.jsxs("div",{children:[t.jsx("dt",{children:"Capacity"}),t.jsx("dd",{children:"Know what you have and where it is being consumed."})]}),t.jsxs("div",{children:[t.jsx("dt",{children:"Lifecycle"}),t.jsx("dd",{children:"Add, maintain and replace infrastructure without changing the cloud model."})]}),t.jsxs("div",{children:[t.jsx("dt",{children:"Control"}),t.jsx("dd",{children:"Set tenancy, quotas, policy and infrastructure allocation."})]})]}),t.jsxs("p",{className:"ov-role__thesis",children:[t.jsx("b",{children:"Built for Day 2."})," Provisioning is the start. Triton is designed around operating infrastructure after it enters production."]})]}),t.jsxs("article",{className:"ov-role ov-role--developer",children:[t.jsx("span",{className:"section-kicker mono",children:"DEVELOPERS"}),t.jsx("h3",{children:"Use the cloud."}),t.jsxs("dl",{children:[t.jsxs("div",{children:[t.jsx("dt",{children:"Projects"}),t.jsx("dd",{children:"Work inside clear application and team boundaries."})]}),t.jsxs("div",{children:[t.jsx("dt",{children:"Self-service"}),t.jsx("dd",{children:"Request compute, storage and networking directly."})]}),t.jsxs("div",{children:[t.jsx("dt",{children:"One resource model"}),t.jsx("dd",{children:"Portal, CLI, API and automation work the same way."})]}),t.jsxs("div",{children:[t.jsx("dt",{children:"Abstraction"}),t.jsx("dd",{children:"Use cloud resources without managing datacenter mechanics."})]})]}),t.jsxs("p",{className:"ov-role__thesis",children:[t.jsx("b",{children:"Ask for the resource."})," Not the infrastructure behind it."]})]}),t.jsx("p",{className:"ov-roles__close",children:"Easy to operate. Easy to consume."})]})})]}),t.jsxs("section",{className:"section-rhythm container ov-tenancy",children:[t.jsx(L,{children:t.jsxs("div",{className:"ov-tenancy__heading",children:[t.jsxs("div",{children:[t.jsx("span",{className:"section-kicker mono",children:"BUILT FOR MULTI-TENANCY"}),t.jsxs("h2",{children:["One cloud.",t.jsx("br",{}),"Clear boundaries."]})]}),t.jsx("p",{children:"Triton divides shared infrastructure into explicit organizational and application boundaries. Operators control the physical cloud while tenants and team
35s work inside the capacity, policy and quotas assigned to them."})]})}),t.jsxs(L,{children:[t.jsxs("figure",{className:"ov-tenancy-map",children:[t.jsxs("div",{className:"ov-tenancy-map__domain",children:[t.jsxs("header",{children:[t.jsx("span",{className:"mono",children:"INFRASTRUCTURE DOMAIN"}),t.jsx("small",{children:"Silo in Triton"})]}),t.jsxs("div",{className:"ov-tenancy-map__tenants",children:[t.jsxs("section",{children:[t.jsxs("header",{children:[t.jsx("span",{className:"mono",children:"TENANT"}),t.jsx("b",{children:"Product Engineering"})]}),t.jsxs("div",{className:"ov-tenancy-map__projects",children:[t.jsxs("div",{children:[t.jsx("span",{className:"mono",children:"PROJECT"}),t.jsx("b",{children:"Production"}),t.jsx("p",{children:"Instances · Networks · Storage"})]}),t.jsxs("div",{children:[t.jsx("span",{className:"mono",children:"PROJECT"}),t.jsx("b",{children:"AI Platform"}),t.jsx("p",{children:"Compute · Accelerated capacity · Storage"})]}),t.jsxs("div",{children:[t.jsx("span",{className:"mono",children:"PROJECT"}),t.jsx("b",{children:"Development"}),t.jsx("p",{children:"Instances · Images · Networks"})]})]})]}),t.jsxs("section",{children:[t.jsxs("header",{children:[t.jsx("span",{className:"mono",children:"TENANT"}),t.jsx("b",{children:"Internal IT"})]}),t.jsxs("div",{className:"ov-tenancy-map__projects",children:[t.jsxs("div",{children:[t.jsx("span",{className:"mono",children:"PROJECT"}),t.jsx("b",{children:"Corporate Apps"}),t.jsx("p",{children:"Compute · Networks · Storage"})]}),t.jsxs("div",{children:[t.jsx("span",{className:"mono",children:"PROJECT"}),t.jsx("b",{children:"Shared Services"}),t.jsx("p",{children:"Instances · Images · Storage"})]})]})]})]})]}),t.jsx("figcaption",{children:"One infrastructure domain. Multiple tenants. Clear project ownership."})]}),t.jsxs("div",{className:"ov-tenancy-benefits",children:[t.jsxs("article",{children:[t.jsx("span",{className:"mono",children:"ISOLATE IT"}),t.jsx("h3",{children:"Separate boundaries"}),t.jsx("p",{children:"Divide organizations, customers and workloads through explicit identity, resource and policy boundaries."})]}),t.jsxs("article",{children:[t.jsx("span",{className:"mono",children:"DELEGATE IT"}),t.jsx("h3",{children:"Controlled autonomy"}),t.jsx("p",{children:"Give teams control inside their projects without giving them control of the infrastructure."})]}),t.jsxs("article",{children:[t.jsx("span",{className:"mono",children:"ACCOUNT FOR IT"}),t.jsx("h3",{children:"Visible consumption"}),t.jsx("p",{children:"Track capacity and consumption from tenant down to project and workload."})]})]}),t.jsx("p",{className:"ov-tenancy__close",children:"Shared infrastructure. Clear ownership."})]})]}),t.jsxs("section",{className:"section-rhythm container",children:[t.jsx(L,{children:t.jsxs("div",{className:"ov-section-heading",children:[t.jsxs("div",{children:[t.jsx("span",{className:"section-kicker mono",children:"WHERE TRITON FITS"}),t.jsx("h2",{children:"Infrastructure you want to run as a cloud."})]}),t.jsx("p",{children:"Triton is designed for workloads where ownership, locality, tenant isolation or sustained infrastructure matter."})]})}),t.jsxs(L,{children:[t.jsxs("div",{className:"ov-workloads",children:[t.jsxs("article",{className:"ov-workload",children:[t.jsx("span",{className:"mono",children:"EXISTING APPLICATIONS"}),t.jsx("h3",{children:"Run the VMs you already have."}),t.jsx("p",{children:"Bring enterprise workloads into a cloud operating model without making application modernization the first requirement."}),t.jsx("small",{children:"Enterprise apps · Databases · Internal platforms · Legacy workloads"})]}),t.jsxs("article",{className:"ov-workload",children:[t.jsx("span",{className:"mono",children:"INTERNAL CLOUD"}),t.jsx("h3",{children:"Give teams infrastructure on demand."}),t.jsx("p",{children:"Turn shared capacity into project-based resources that teams can consume directly."}),t.jsx("small",{children:"Engineering teams · Platform groups · Shared services"})]}),t.jsxs("article",{className:"ov-workload",children:[t.jsx("span",{className:"mono",children:"SERVICE PROVIDER"}),t.jsx("h3",{children:"Build cloud for your customers."}
35),t.jsx("p",{children:"Divide shared infrastructure into tenants with clear boundaries for resources, policy and consumption."}),t.jsx("small",{children:"Cloud providers · SaaS infrastructure · Business units"})]}),t.jsxs("article",{className:"ov-workload",children:[t.jsx("span",{className:"mono",children:"PRIVATE AI"}),t.jsx("h3",{children:"Keep compute close to the data."}),t.jsx("p",{children:"Build GPU-backed capacity for private inference, training and data-intensive workloads on infrastructure you control."}),t.jsx("small",{children:"Private AI · Inference · Training · Data-intensive workloads"})]})]}),t.jsxs("div",{className:"ov-platform-status",children:[t.jsxs("div",{className:"ov-platform-status__available",children:[t.jsx("span",{className:"mono",children:"AVAILABLE"}),t.jsx("b",{children:"Triton control plane"})]}),t.jsxs("div",{className:"ov-platform-status__next",children:[t.jsx("span",{className:"mono",children:"WHAT’S NEXT"}),t.jsxs("ul",{children:[t.jsxs("li",{children:[t.jsx("b",{children:"Manta data services"}),t.jsx("span",{children:"In development"})]}),t.jsxs("li",{children:[t.jsx("b",{children:"Managed Kubernetes"}),t.jsx("span",{children:"Planned"})]})]}),t.jsx("a",{className:"ov-quiet-link",href:"/company/roadmap",children:"View the roadmap →"})]})]})]})]}),t.jsx("section",{className:"section-rhythm container",id:"pilot",children:t.jsx(L,{children:t.jsxs("div",{className:"pea",children:[t.jsxs("div",{className:"pea__intro",children:[t.jsx("span",{className:"section-kicker mono",children:"TALK TO AN ENGINEER"}),t.jsxs("h2",{children:["Let’s map Triton to",t.jsx("br",{}),"your infrastructure."]}),t.jsx("p",{children:"Tell us what you’re running. We’ll show you how Triton could fit and what a practical deployment would look like."})]}),t.jsx("div",{className:"pea__panel",children:t.jsx(Sw,{})}),t.jsxs("aside",{className:"pea__next",children:[t.jsx("span",{className:"section-kicker mono",children:"WHAT HAPPENS NEXT"}),t.jsx("h3",{children:"From your environment to a practical deployment."}),t.jsxs("ol",{children:[t.jsxs("li",{children:[t.jsx("span",{className:"mono",children:"01"}),t.jsxs("div",{children:[t.jsx("b",{children:"Map"}),t.jsx("p",{children:"Walk through your current platform, hardware, workloads and requirements."})]})]}),t.jsxs("li",{children:[t.jsx("span",{className:"mono",children:"02"}),t.jsxs("div",{children:[t.jsx("b",{children:"Design"}),t.jsx("p",{children:"Work directly with a Triton engineer to shape the architecture and deployment path."})]})]}),t.jsxs("li",{children:[t.jsx("span",{className:"mono",children:"03"}),t.jsxs("div",{children:[t.jsx("b",{children:"Validate"}),t.jsx("p",{children:"Define the practical next step, including what an evaluation on your infrastructure should prove."})]})]})]})]})]})})})]})}const ln=[{id:"balanced",label:"Balanced",summary:"A mixed profile for AI, compute, and data in one rack.",allocations:{gpu:8,compute:12,storage:6},available:4},{id:"ai",label:"AI",summary:"Accelerated capacity beside the compute, fabric, and data it depends on.",allocations:{gpu:16,compute:8,storage:6},available:0},{id:"compute",label:"Compute",summary:"Dense general-purpose capacity for platforms and applications.",allocations:{gpu:4,compute:20,storage:6},available:0},{id:"storage",label:"Storage",summary:"Data-heavy capacity with adjacent compute and Ethernet fabric.",allocations:{gpu:2,compute:6,storage:22},available:0}],Qr=[{id:"1",label:"1 rack",summary:"Validate architecture and workload fit."},{id:"2-4",label:"2–4 racks",summary:"Start building shared production capacity."},{id:"5-16",label:"5–16 racks",summary:"Run multiple workload profiles under one operating model."},{id:"datacenter",label:"Datacenter",summary:"Scale without changing how infrastructure is consumed."}],wp={gpu:"Accelerated compute",compute:"Compute",storage:"Object storage"};function Cw(){return t.jsxs("figure",{className:"oc-hero-system","aria-label":"Open Compute physical infrastructure transformed by Triton into cloud resources",children:[t.jsxs("div",{className:"oc-hero-system__physical",children:[t.jsxs("div",{className:"oc-hero-system__heading mono",children:[t.jsx("span",{children:"OPEN RACK / PHYSICAL"}),t.jsx("span",{children:"44 OU"})]}),t.jsxs("div",{className:"oc-hero-system__hardware",children:[t.jsxs("div",{children:["A/B ETHERNET FABRIC ",t.jsx("i",{})]}
35),t.jsx("div",{children:"ACCELERATED COMPUTE"}),t.jsx("div",{children:"COMPUTE"}),t.jsx("div",{children:"OBJECT STORAGE"}),t.jsx("div",{children:"48V POWER / CONTROL"})]})]}),t.jsx("i",{className:"oc-hero-system__connector","aria-hidden":"true",children:"↓"}),t.jsxs("div",{className:"oc-hero-system__triton mono",children:[t.jsx("b",{children:"TRITON"}),t.jsx("span",{children:"CLOUD CONTROL PLANE"})]}),t.jsx("i",{className:"oc-hero-system__connector","aria-hidden":"true",children:"↓"}),t.jsxs("div",{className:"oc-hero-system__logical",children:[t.jsx("span",{className:"mono",children:"CLOUD / LOGICAL"}),t.jsxs("div",{children:[t.jsx("b",{children:"Instances"}),t.jsx("b",{children:"GPU instances"}),t.jsx("b",{children:"Storage"}),t.jsx("b",{children:"Networks"})]})]}),t.jsxs("figcaption",{children:[t.jsx("strong",{children:"Hardware becomes cloud."}),t.jsx("span",{children:"Compute, storage and networking become programmable resources."})]})]})}function Ew({active:e,setActive:o,scale:i,setScale:s}){const l=C.useRef([]),c=ln.find(y=>y.id===e)??ln[0],u=Qr.find(y=>y.id===i)??Qr[0],h=`/on-prem?source=open-compute&profile=${encodeURIComponent(c.label)}&scale=${encodeURIComponent(u.label)}&compute=${c.allocations.compute}&gpu=${c.allocations.gpu}&storage=${c.allocations.storage}&expansion=${c.available}#pilot`,m=(y,x)=>{if(!["ArrowRight","ArrowLeft","ArrowDown","ArrowUp","Home","End"].includes(y.key))return;y.preventDefault();const w=y.key==="Home"?0:y.key==="End"?ln.length-1:["ArrowRight","ArrowDown"].includes(y.key)?(x+1)%ln.length:(x+ln.length-1)%ln.length;o(ln[w].id),l.current[w]?.focus()},f=["gpu","compute","storage",...c.available?["available"]:[]];return t.jsx("section",{className:"section-rhythm oc-config-section",id:"design","aria-labelledby":"rack-configurator-heading",children:t.jsx("div",{className:"container",children:t.jsx(L,{children:t.jsxs("div",{className:"oc-configurator",children:[t.jsxs("div",{className:"oc-section-intro",children:[t.jsx("span",{className:"section-kicker mono",children:"DESIGN A RACK"}),t.jsx("h2",{id:"rack-configurator-heading",children:"What does your cloud need?"}),t.jsx("p",{children:"Compose a reference Open Rack around AI, compute, and storage capacity. Start with proportions; inspect the exact rack geometry when you need it."})]}),t.jsxs("div",{className:"oc-configurator__controls",children:[t.jsx("div",{className:"oc-configurator__presets",role:"radiogroup","aria-label":"Rack workload profile",children:ln.map((y,x)=>t.jsx("button",{ref:w=>{l.current[x]=w},className:`oc-configurator__preset${e===y.id?" is-selected":""}`,role:"radio","aria-checked":e===y.id,tabIndex:e===y.id?0:-1,onClick:()=>o(y.id),onKeyDown:w=>m(w,x),children:y.label},y.id))}),t.jsx("button",{className:"oc-configurator__reset",type:"button",onClick:()=>o("balanced"),children:"Reset configuration"})]}),t.jsxs("fieldset",{className:"oc-scale-control",children:[t.jsx("legend",{children:"How large are you planning?"}),t.jsx("div",{children:Qr.map(y=>t.jsx("button",{type:"button",className:i===y.id?"is-selected":"","aria-pressed":i===y.id,onClick:()=>s(y.id),children:y.label},y.id))})]}),t.jsx("p",{className:"visually-hidden","aria-live":"polite",children:`${c.label} selected. 14 OU fixed, 30 OU composable, 44 OU total.`}),t.jsxs("div",{className:"oc-configurator__layout",children:[t.jsxs("div",{className:"oc-config-rack","aria-label":`${c.label} rack composition`,children:[t.jsxs("div",{className:"oc-config-rack__top mono",children:[t.jsx("span",{children:"REFERENCE OPEN RACK"}),t.jsx("span",{children:"44 OU"})]}),t.jsxs("div",{className:"oc-config-rack__chassis",children:[t.jsx("div",{className:"oc-hardware oc-hardware--fabric",children:t.jsx("span",{children:"NETWORK / A + B"})}),f.map(y=>t.jsxs("div",{className:`oc-workload oc-workload--${y}`,style:{flexGrow:y==="available"?c.available:c.allocations[y]},children:[t.jsx("span",{className:"oc-workload__label mono",children:y==="available"?`${c.available} OU · OPEN CAPACITY`:`${c.allocations[y]} OU · ${wp[y].toUpperCase()}`}),t.jsx("span",{className:"oc-workload__bays","aria-hidden":"true",children:Array.from({length:y==="storage"?10:y==="gpu"?4:6},(x,w)=>t.jsx("i",{},w))})]},y)),t.jsx("div",{className:"oc-hardware oc-hardware--power",children:t.jsx("span",{children:"48V DISTRIBUTION / MANAGEMENT"})})]}),t.jsx("p",{className:"oc-config-rack__caption mono",children:"14 OU FIXED INFRASTRUCTURE / 30 OU CONFIGURABLE"})]}),t.jsxs("aside",{className:"oc-config-summary",children:[t.jsx("span",{className:"mono",children:"YOUR REFERENCE DEPLOYMENT"}),t.jsxs("h3",{children:[c.label," cloud profile"]}),t.jsxs("p",{children:[t.jsx("strong",{children:u.label})," · ",u.summary]}),t.jsxs("dl",{children:[["compute","gpu","storage"].map(y=>t.jsxs("div",{children:[t.jsx("dt",{children:wp[y]}),t.jsxs("dd",{children:[c.allocations[y]," OU"]})]},y)),t.jsxs("div",{children:[t.jsx("dt",{children:"Expansion"}),t.jsxs("dd",{children:[c.available," OU"]})]})]}),t.jsx(M,{to:h,className:"section__link",children:"Get an engineering review →"})]})]})]})})})})}function _w(){const[e,o]=C.useState("balanced"),[i,s]=C.useState("1"),l=ln.find(f=>f.id===e)??ln[0],c=Qr.find(f=>f.id===i)??Qr[0],u=`/on-prem?source=open-compute&profile=${encodeURIComponent(l.label)}&scale=${encodeURIComponent(c.label)}&compute=${l.allocations.compute}&gpu=${l.allocations.gpu}&storage=${l.allocations.storage}&expansion=${l.available}#pilot`,h=f=>{o(f),document.getElementById("design")?.scrollIntoView({behavior:"smooth"})},m=()=>document.getElementById("design")?.scrollIntoView({behavior:"smooth"});return t.jsxs("div",{className:"page onprem open-compute",children:[t.jsx("section",{className:"page-hero container oc-hero",children:t.jsx(L,{children:t.jsxs("div",{className:"oc-hero__grid",children:[t.jsxs("div",{children:[t.jsx("span",{className:"section-kicker mono",children:"TRITON OPEN COMPUTE"}),t.jsx("h1",{children:"Build your cloud like the hyperscalers do."}),t.jsx("p",{className:"page-hero__lede",children:"Open Compute hardware. Triton cloud platform. From rack to API."}),t.jsx("p",{className:"measure",children:"Compose compute, GPU, storage and networking at rack scale. Triton turns that infrastru
35cture into cloud resources."}),t.jsxs("div",{className:"oc-actions",children:[t.jsx("a",{className:"btn btn--primary",href:"#design",children:"Design your deployment"}),t.jsx("a",{className:"oc-quiet-link",href:"#architecture",children:"Explore the architecture →"})]}),t.jsx("p",{className:"oc-hero__note mono",children:"OPEN COMPUTE · OPEN-SOURCE TRITON · ETHERNET · MODULAR"}),t.jsx("div",{className:"oc-hero-values",children:[["COMPOSE BY WORKLOAD","Mix compute, GPU and storage around what you need."],["OPERATE AS CLOUD","Turn physical capacity into programmable resources."],["SCALE RACK BY RACK","Add capacity without changing the operating model."]].map(([f,y])=>t.jsxs("div",{children:[t.jsx("b",{className:"mono",children:f}),t.jsx("span",{children:y})]},f))})]}),t.jsx("div",{className:"oc-hero-visual",children:t.jsx(Cw,{})})]})})}),t.jsx("section",{className:"section-rhythm oc-manifesto",id:"architecture",children:t.jsx("div",{className:"container",children:t.jsxs(L,{children:[t.jsxs("div",{className:"oc-split-heading",children:[t.jsxs("div",{children:[t.jsx("span",{className:"section-kicker mono",children:"OPEN HARDWARE. CLOUD OPERATIONS."}),t.jsxs("h2",{children:["Open infrastructure.",t.jsx("br",{}),"One operating model."]})]}),t.jsx("p",{children:"Open Compute standardizes the physical interfaces that let infrastructure evolve. Triton standardizes how that capacity is provisioned, isolated, metered and consumed."})]}),t.jsxs("figure",{className:"oc-boundary oc-operating-model",children:[t.jsxs("div",{className:"oc-foundation",children:[t.jsxs("div",{className:"oc-foundation__head",children:[t.jsx("span",{className:"mono",children:"OPEN COMPUTE"}),t.jsx("strong",{children:"PHYSICAL FOUNDATION"})]}),t.jsx("div",{className:"oc-foundation__grid",children:[["Open rack interfaces","Consistent mechanical, power and hardware interfaces for rack-scale systems."],["Rack-scale power","Shared power and busbar distribution instead of duplicating the full power chain per server."],["Evolve independently","Refresh compute, GPU, storage and networking according to their own requirements."],["Open ecosystem","A multi-vendor foundation for interoperability, composability and an evolving supply chain."]].map(([f,y])=>t.jsxs("article",{children:[t.jsx("h3",{children:f}),t.jsx("p",{children:y})]},f))})]}),t.jsx("div",{className:"oc-operating-model__flow","aria-hidden":"true",children:t.jsx("i",{})}),t.jsxs("div",{className:"oc-cloud-layer",children:[t.jsxs("div",{children:[t.jsx("span",{className:"mono",children:"TRITON"}),t.jsx("strong",{children:"CLOUD OPERATING LAYER"})]}),t.jsx("p",{children:"Discover · Provision · Schedule · Isolate · Meter · Policy · Lifecycle · API"})]}),t.jsx("div",{className:"oc-operating-model__flow","aria-hidden":"true",children:t.jsx("i",{})}),t.jsxs("div",{className:"oc-operating-model__result",children:[t.jsx("span",{className:"mono",children:"ONE OPERATING MODEL"}),t.jsx("strong",{children:"One fleet · One API · Clear boundaries"})]}),t.jsx("figcaption",{children:"Change the hardware mix. Keep the operating model."})]}),t.jsxs("aside",{className:"oc-proof",children:[t.jsxs("div",{children:[t.jsx("span",{className:"mono",children:"TRITON + OPEN COMPUTE"}),t.jsx("h3",{children:"We've done this before."}),t.jsx("p",{children:"Open Compute Project recognizes Parler Cloud Technologies as the first OCP Solution Provider to run Triton Cloud software on an OCP-recognized hardware platform. That reference architecture paired MiTAC compute with Edgecore networking."})]}),t.jsx("a",{href:"https://www.opencompute.org/solutions/45/smart-cloud-solution-scs-enterprise-private-cloud",target:"_blank",rel:"noreferrer",className:"section__link",children:"View the OCP solution ↗"})]})]})})}),t.jsx("section",{className:"section-rhythm container",children:t.jsxs(L,{children:[t.jsxs("div",{className:"oc-section-intro",children:[t.jsx("span",{className:"section-kicker mono",children:"COMPOSABLE INFRASTRUCTURE"}),t.jsx("h2",{children:"Build the rack around the workload."}),t.jsx("p",{children:"Workloads demand different ratios of CPU, GPU, and storage. The architecture stays consistent as capacity changes."})]}
35),t.jsx("div",{className:"oc-profiles",children:[["ai","AI","GPU-heavy","Accelerated compute · high-bandwidth networking · dataset storage"],["compute","Cloud Compute","CPU-heavy","Dense compute · local NVMe · virtual machines"],["storage","Data","Storage-heavy","Object storage · compute adjacent to data · Ethernet"],["balanced","Mixed","Composed","Combine all three in a single rack-scale foundation."]].map(([f,y,x,w])=>t.jsxs("button",{type:"button",className:e===f?"is-selected":"","aria-pressed":e===f,onClick:()=>h(f),children:[t.jsx("span",{className:"mono",children:x}),t.jsx("h3",{children:y}),t.jsx("p",{children:w})]},y))})]})}),t.jsx(Ew,{active:e,setActive:o,scale:i,setScale:s}),t.jsx("section",{className:"section-rhythm oc-review-panel",children:t.jsx("div",{className:"container",children:t.jsxs(L,{children:[t.jsx("span",{className:"section-kicker mono",children:"HAVE A CONFIGURATION IN MIND?"}),t.jsx("h2",{children:"Let an engineer pressure-test it."}),t.jsx("p",{children:"We’ll review the rack mix, network assumptions, workload shape, and where Triton fits today."}),t.jsx(M,{to:u,className:"btn btn--primary",children:"Review my deployment"})]})})}),t.jsx("section",{className:"section-rhythm oc-ai",children:t.jsx("div",{className:"container",children:t.jsx(L,{children:t.jsxs("div",{className:"oc-ai-grid",children:[t.jsxs("div",{children:[t.jsx("span",{className:"section-kicker mono",children:"ACCELERATED COMPUTE"}),t.jsx("h2",{children:"AI joins the cloud operating model."}),t.jsx("p",{children:"Keep GPU infrastructure inside the same operational model as compute, storage, and networking. Teams request accelerated capacity as a cloud resource instead of operating a separate AI island."}),t.jsxs("p",{className:"oc-big-note",children:["GPU becomes a resource.",t.jsx("br",{}),"Inside one infrastructure stack."]}),t.jsx("button",{className:"section__link oc-text-button",type:"button",onClick:()=>h("ai"),children:"Configure an AI rack →"})]}),t.jsxs("figure",{className:"oc-project",children:[t.jsx("span",{className:"mono",children:"PROJECT: AI PLATFORM"}),["GPU","COMPUTE","OBJECT"].map((f,y)=>t.jsxs("div",{children:[t.jsx("b",{children:f}),t.jsx("i",{style:{width:`${55+y*17}%`}})]},f)),t.jsxs("div",{children:[t.jsx("b",{children:"NETWORK"}),t.jsx("strong",{children:"ETHERNET FABRIC"})]}),t.jsx("figcaption",{children:"One workload view across accelerated compute, infrastructure, and data."})]})]})})})}),t.jsx("section",{className:"section-rhythm container",children:t.jsx(L,{children:t.jsxs("div",{className:"oc-network-grid",children:[t.jsxs("figure",{className:"oc-fabric",children:[t.jsx("span",{className:"mono",children:"PHYSICAL / AVAILABLE"}),t.jsx("b",{children:"FABRIC A ━━━━━━━━━"}),t.jsx("b",{children:"FABRIC B ━━━━━━━━━"}),t.jsx("i",{children:"↓"}),t.jsx("strong",{children:"TRITON / PROTEUS"}),t.jsx("i",{children:"↓"}),t.jsx("span",{children:"VPC · private networks · tenant isolation"}),t.jsx("figcaption",{children:"Physical Ethernet with Triton's cloud-network model above it."})]}),t.jsxs("div",{children:[t.jsx("span",{className:"section-kicker mono",children:"OPEN NETWORKING"}),t.jsx("h2",{children:"Ethernet from rack to cloud."}),t.jsx("p",{children:"The reference architecture uses Ethernet across compute, storage, east-west traffic, and rack-scale connectivity. Proteus adds Triton's cloud-network model above that fabric."}),t.jsx("button",{className:"section__link oc-text-button",type:"button",onClick:m,children:"Design a network-ready deployment →"})]})]})})}),t.jsx("section",{className:"section-rhythm oc-power",children:t.jsx("div",{className:"container",children:t.jsx(L,{children:t.jsxs("div",{className:"oc-power-grid",children:[t.jsxs("div",{children:[t.jsx("span",{className:"section-kicker mono",children:"RACK-SCALE POWER"}),t.jsx("h2",{children:"Power starts at the rack."}),t.jsx("p",{children:"Rack-level 48V distribution removes duplicated server-level power components and creates a cleaner foundation for dense compute and GPU infrastructure."}),t.jsxs("div",{className:"oc-mini-points mono",children:[t.jsx("span",{children:"FEWER CONVERSION STAGES"}),t.jsx("span",{children:"LESS DUPLICATED HARDWARE"}),t.jsx("span",{children:"DESIGNED FOR DENSITY"})]})]}
35),t.jsxs("figure",{className:"oc-power-diagram",children:[t.jsx("b",{children:"AC"}),t.jsx("i",{children:"↓"}),t.jsx("b",{children:"POWER SHELF"}),t.jsx("i",{children:"↓"}),t.jsx("strong",{children:"48V DC BUSBAR"}),t.jsx("span",{children:"COMPUTE · GPU · STORAGE · NETWORK"}),t.jsx("figcaption",{children:"Current reference architecture uses rack-level 48V DC power."})]})]})})})}),t.jsx("section",{className:"section-rhythm container",children:t.jsx(L,{children:t.jsxs("div",{className:"oc-scale",children:[t.jsx("span",{className:"section-kicker mono",children:"RACK BY RACK"}),t.jsxs("h2",{children:["One rack is infrastructure.",t.jsx("br",{}),"Many racks become a cloud."]}),t.jsx("div",{children:Qr.map(f=>t.jsxs("button",{type:"button",className:i===f.id?"is-selected":"","aria-pressed":i===f.id,onClick:()=>s(f.id),children:[t.jsx("b",{children:f.label.toUpperCase()}),t.jsx("small",{children:f.id==="1"?"PILOT":f.id==="2-4"?"PRODUCTION":f.id==="5-16"?"CLOUD":"DATACENTER"})]},f.id))}),t.jsx("p",{children:c.summary}),t.jsx(M,{to:u,className:"section__link",children:"Talk through this topology →"})]})})}),t.jsx("section",{className:"section-rhythm oc-reference",id:"deployment-requirements",children:t.jsx("div",{className:"container",children:t.jsx(L,{children:t.jsxs("div",{className:"oc-reference-compact",children:[t.jsxs("div",{children:[t.jsx("span",{className:"section-kicker mono",children:"CURRENT REFERENCE ARCHITECTURE"}),t.jsx("h2",{children:"Want the details?"})]}),t.jsx("ul",{children:["Open Rack V3","44 OU / OpenU","48V DC rack power","A/B Ethernet fabric","Compute trays","Accelerated compute","Storage trays","Triton management"].map(f=>t.jsx("li",{children:f},f))})]})})})}),t.jsx("section",{className:"section-rhythm page-section--cta",children:t.jsx("div",{className:"container",children:t.jsxs(L,{children:[t.jsx("span",{className:"section-kicker mono",children:"TRITON OPEN COMPUTE"}),t.jsx("h2",{children:"Build the cloud you want to own."}),t.jsx("p",{className:"measure",children:"Bring us your workload mix, rack count, and constraints. We’ll review the architecture with you and tell you where Triton fits."}),t.jsx(M,{to:u,className:"btn btn--primary",children:"Review my deployment"}),t.jsx("p",{className:"oc-final-note mono",children:"FROM ONE RACK TO AN ENTIRE DATACENTER."})]})})})]})}const Iw="/on-prem#pilot",sn=e=>t.jsx("p",{className:"pres-source",children:e});function ut({kicker:e,title:o,children:i,className:s=""}){return t.jsx("section",{className:`pres-section ${s}`,children:t.jsx("div",{className:"container",children:t.jsxs(L,{children:[t.jsx("span",{className:"section-kicker mono",children:e}),o&&t.jsx("h2",{children:o}),i]})})})}function kp(){return t.jsx("a",{className:"btn btn--primary",href:Iw,children:"Talk to sales"})}function hr({a:e,f:o,c:i}){return t.jsxs("article",{className:"pres-stat",children:[t.jsx("span",{className:"mono",children:e}),t.jsx("strong",{children:o}),t.jsx("p",{children:i})]})}function Pw(){return t.jsxs("div",{className:"pres-bars","aria-label":"Licensing increase multiples",children:[t.jsxs("div",{children:[t.jsx("b",{children:"AT&T (court filing)"}),t.jsx("i",{style:{width:"96%"}}),t.jsx("strong",{children:"11.5×"})]}),t.jsxs("div",{children:[t.jsx("b",{children:"FedHIVE · Beeks · CISPE"}),t.jsx("i",{style:{width:"79%"}}),t.jsx("strong",{children:"9.5×"})]}),t.jsxs("div",{children:[t.jsx("b",{children:"Gartner, typical"}),t.jsx("i",{style:{width:"38%"}}),t.jsx("strong",{children:"4.5×"})]}),t.jsxs("div",{children:[t.jsx("b",{children:"Most common actual"}),t.jsx("i",{style:{width:"12%"}}),t.jsx("strong",{children:"1.4×"})]}),t.jsx("small",{children:"0  2  4  6  8  10  12"})]})}function jp({economics:e=!1}){const o=["2024","2025","2026","2027","2028","2029"],i=["16-core","32-core","64-core","96-core"];return t.jsxs("div",{className:`pres-chart ${e?"pres-chart--economics":""}`,children:[t.jsxs("svg",{viewBox:"0 0 720 280",role:"img","aria-label":e?"Platform cost as core density per socket rises":"VMware share and displaced alternatives, 2024 to 2029",children:[t.jsx("path",{className:"grid",d:"M48 20H690M48 75H690M48 130H690M48 185H690M48 240H690"}),t.jsx("path",{className:"axis",d:"M48 20V240H690"}),t.jsxs("g",{className:"axis-labels",children:[t.jsx("text",{x:"8",y:"25",children:"high"}),t.jsx("text",{x:"15",y:"244",children:"low"})]}),e?t.jsxs(t.Fragment,{children:[t.jsx("path",{className:"curve curve--hot",d:"M60 220 L265 170 L470 100 L680 25"}),t.jsx("path",{className:"curve curve--flat",d:"M60 205 L680 205"}),t.jsx("path",{className:"curve curve--low",d:"M60 225 L680 225"}),[[60,220],[265,170],[470,100],[680,25]].map(([s,l])=>t.jsx("circle",{className:"point point--hot economics-marker",cx:s,cy:l,r:"5"},s)),t.jsx("g",{className:"labels",children:i.map((s,l)=>t.jsx("text",{x:55+l*205,y:"268",children:s},s))})]}):t.jsxs(t.Fragment,{children:[t.jsx("path",{className:"curve curve--hot",d:"M60 47.5 L180 55.75 L300 75 L420 102.5 L540 116.25 L660 130"}),t.jsx("path",{className:"curve curve--flat",d:"M60 240 L180 231.75 L300 212.5 L420 185 L540 171.25 L660 157.5"}),[47.5,55.75,75,102.5,116.25,130].map((s,l)=>t.jsx("circle",{className:"point point--hot",cx:60+l*120,cy:s,r:"5"}
35,l)),[240,231.75,212.5,185,171.25,157.5].map((s,l)=>t.jsx("circle",{className:"point point--flat",cx:60+l*120,cy:s,r:"5"},`alt-${l}`)),t.jsx("text",{x:"8",y:"25",children:"80%"}),t.jsx("text",{x:"12",y:"244",children:"0%"}),t.jsx("g",{className:"labels",children:o.map((s,l)=>t.jsx("text",{x:55+l*120,y:"268",children:s},s))})]})]}),t.jsxs("div",{className:"pres-chart-legend","aria-hidden":"true",children:[t.jsx("span",{className:"is-hot",children:e?"Per-core, VMware, OpenShift":"VMware share"}),t.jsx("span",{className:"is-flat",children:e?"Per-socket, Proxmox":"Displaced to alternatives"}),e&&t.jsx("span",{className:"is-low",children:"Triton, capacity & support"})]}),t.jsxs("p",{className:"pres-chart-label",children:[e?"Platform cost as core density per socket rises":"0% · 20% · 40% · 60% · 80%"," "]}),!e&&t.jsxs("ul",{className:"visually-hidden",children:[t.jsx("li",{children:"VMware share is 70% in 2024, 67% in 2025, 60% in 2026, 50% in 2027, 45% in 2028, and 40% in 2029."}),t.jsx("li",{children:"Displaced to alternatives is 0% in 2024, 3% in 2025, 10% in 2026, 20% in 2027, 25% in 2028, and 30% in 2029."})]})]})}function Aw(){return t.jsxs("div",{className:"presentation",children:[t.jsx("section",{className:"pres-hero",children:t.jsx("div",{className:"container",children:t.jsxs(L,{children:[t.jsx("span",{className:"section-kicker mono",children:"TRITON PRIVATE CLOUD"}),t.jsxs("h1",{children:["Run your own cloud.",t.jsx("br",{}),t.jsx("em",{children:"Not your own cloud stack."})]}),t.jsx("p",{className:"pres-lede",children:"Triton Private Cloud is the operator-grade replacement for VMware, a full cloud operating model on hardware you own, built on illumos, ZFS and bhyve, with no per-socket licensing."}),t.jsxs("div",{className:"pres-facts",children:[t.jsxs("div",{children:[t.jsx("b",{children:"LINEAGE"}),t.jsx("span",{children:"Joyent → Samsung → MNX → Sovren"})]}),t.jsxs("div",{children:[t.jsx("b",{children:"SUBSTRATE"}),t.jsx("span",{children:"illumos · zones · ZFS · bhyve"})]}),t.jsxs("div",{children:[t.jsx("b",{children:"IN PRODUCTION"}),t.jsx("span",{children:"Fortune 500 customer under contract"})]})]}),t.jsx(kp,{})]})})}),t.jsxs(ut,{kicker:"THE THESIS",title:"Broadcom is deliberately shedding 290,000 customers to serve 10,000. Somebody has to catch them.",children:[t.jsxs("div",{className:"pres-stats",children:[t.jsx(hr,{a:"GARTNER",f:"300–400%",c:"Typical licensing increase after the Broadcom transition."}),t.jsx(hr,{a:"CLOUDBOLT · JAN 2026",f:"86%",c:"Of enterprises are actively reducing their VMware footprint. Only 4% have finished."}),t.jsx(hr,{a:"FORRESTER",f:"~25%",c:"Average share of existing footprint that actually renews with VMware."}),t.jsx(hr,{a:"GARTNER FORECAST",f:"70→40%",c:"VMware's share of server virtualization, 2024 → 2029."})]}),t.jsx("p",{className:"pres-close",children:"The migration is real but slow, and that is precisely the opening. Displacement compounds over the 2026–2029 renewal cycle, and the incumbent has dismantled the very channel that would have defended it."}),sn("Gartner (P. Delory, May 2026) · CloudBolt Industry Insights, n=302, Jan 2026 · Forrester (N. Chhabra, Jun 2026) · Gartner share forecast, Sep 2025")]}),t.jsxs(ut,{kicker:"PROBLEM · 1 OF 3",title:"The bill went up by a multiple, not a percentage.",className:"pres-band",children:[t.jsxs("div",{className:"pres-split",children:[t.jsx(Pw,{}),t.jsxs("div",{className:"pres-quote",children:["Broadcom floated a 4.5× increase in minimum license size in early 2025, 16 cores to 72, and retreated only after channel revolt. Intent, on the record.",t.jsxs("div",{className:"pres-timeline",children:[t.jsxs("div",{children:[t.jsx("b",{children:"JAN 2024"}),t.jsx("span",{children:"Perpetual licenses withdrawn from sale."})]}),t.jsxs("div",{children:[t.jsx("b",{children:"MAR 2025"}),t.jsx("span",{children:"20% surcharge for missing a renewal anniversary."})]}),t.jsxs("div",{children:[t.jsx("b",{children:"OCT 2027"}),t.jsx("span",{children:"vSphere 8 end of support, forced move to VCF 9."})]})]})]})]}),t.jsx("p",{className:"pres-close",children:"We do not sell the 10× number. We sell the uncertainty: 88% of enterprises say they are shaping strategy around expected future increases."}),sn("The Register (AT&T filings Oct 2024; Beeks Dec 2024; Arrow Mar 2025; CISPE Mar 2026) · TechTarget (FedHIVE May 2026) · CloudBolt Jan 2026")]}),t.jsxs(ut,{kicker:"PROBLEM · 2 OF 3",title:"The incumbent fired its own distribution.",children:[t.jsxs("div",{className:"pres-split",children:[t.jsxs("div",{className:"pres-channel",children:[t.jsx("span",{className:"mono",children:"Authorized VMware cloud service providers"}),t.jsx("b",{children:"THOUSANDS"}),t.jsx("small",{children:"before Jan 2026"}),t.jsx("b",{className:"short",children:"19 in the US · 9 in the UK"}),t.jsx("small",{children:"after the VCSP program ended"}),t.jsx("strong",{children:"VCF adoption among Broadcom's top 10,000 customers: over 87%"})]}),t.jsxs("div",{className:"pres-cards",children:[t.jsxs("article",{children:[t.jsx("span",{children:"THE STRATEGY, Optimize the top 10,000"}),t.jsx("p",{children:"Broadcom's software revenue is up 26% and VCF penetration in the top decile exceeds 87%. The strategy is working, for 10,000 accounts."})]}),t.jsxs("article",{children:[t.jsx("span",{children:"THE OPENING, 290,000 accounts and no channel"}),t.jsx("p",{children:"VMware's base exceeds 300,000 customers. The partners who served the long tail have been de-authorized. Those customers now need a platform and a partner."})]})]})]}),sn("The Register, Jan & Mar 2026 · Network World, Jun 2026 · The Register, Aug 2026 (Azure VMware Solution)")]}),t.jsxs(ut,{kicker:"PROBLEM · 3 OF 3",title:"A 30-point share transfer is already forecast.",children:[t.jsx(jp,{}),t.jsxs("div",{className:"pres-stats pres-stats--three",children:[t.jsx(hr,{a:"GARTNER",f:"35%",c:"of VMware workloads migrate to other platforms by 2028."}
35),t.jsx(hr,{a:"NUTANIX, APR 2026",f:"1,000+",c:"VMware migrants won in a single quarter, its strongest new-logo quarter in eight years."}),t.jsx(hr,{a:"RED HAT, AUG 2026",f:"$680M+",c:"in OpenShift Virtualization orders, from a standing start."})]}),sn("Gartner via Network World, Sep 2025 & The Register, May 2026 · SDxCentral, Apr 2026 · The Register, Aug 2026. Displacement line is the arithmetic complement of Gartner's VMware share forecast.")]}),t.jsxs(ut,{kicker:"WHAT WE WILL NOT CLAIM",title:"It is an erosion, not an exodus. That is better for us.",className:"pres-honest",children:[t.jsxs("div",{className:"pres-dual-stats",children:[t.jsxs("strong",{children:["86%",t.jsx("small",{children:"REDUCING FOOTPRINT"})]}),t.jsxs("strong",{children:["4%",t.jsx("small",{children:"FULLY MIGRATED"})]})]}),t.jsx("p",{className:"pres-lede",children:"Ninety-six percent of the displacement has not happened yet. Contracts unwind over the 2026–2029 renewal cycle, one workload class at a time, which means this is a market being entered, not a market already lost."}),t.jsxs("blockquote",{children:['"You will emerge with more complex and less capable infrastructure. No vendor offers a one-for-one replacement."',t.jsx("cite",{children:"PAUL DELORY, VP ANALYST, GARTNER, MAY 2026"})]}),t.jsxs("article",{className:"pres-callout",children:[t.jsx("b",{children:"WHY THAT IS THE WHOLE OPPORTUNITY"}),t.jsx("p",{children:"Gartner's objection is aimed at the hypervisor swap, trading vSphere for another hypervisor and inheriting a worse operating model. It is a correct criticism of every alternative. It is not a criticism of replacing virtualization with a cloud."})]}),sn("CloudBolt Industry Insights, n=302 North American IT decision-makers, director+, companies 1,000+ employees, fielded Jan 2026 · Gartner via The Register, May 2026")]}),t.jsxs(ut,{kicker:"THE GAP IN THE MARKET",title:"Every alternative sells a hypervisor. Enterprises are trying to buy a cloud.",className:"pres-table-section",children:[t.jsx("div",{className:"table-scroll",children:t.jsxs("table",{children:[t.jsx("thead",{children:t.jsx("tr",{children:["Platform","What it replaces","Tenancy","Metering","Object storage","Licensing basis"].map(e=>t.jsx("th",{children:e},e))})}),t.jsx("tbody",{children:[["Proxmox VE","The hypervisor. KVM + LXC, HA.","Limited","No","External (Ceph)","€370–1,100 / socket / yr"],["Microsoft Hyper-V","The hypervisor, in a Windows estate.","System Center","Partial","No","Windows Server / per core"],["Nutanix AHV","Hypervisor + HCI appliance.","Yes","Partial","Add-on","Node subscription"],["OpenShift Virt.","VMs inside Kubernetes.","Yes","Partial","Via ODF","Per core / socket-pair"],["XCP-ng · Scale","The hypervisor / the appliance.","Limited","No","No","Support subscription"],["Triton","The cloud. Hypervisor is one layer.","Silo→tenant→project","Native","S3, built in","No per-socket licensing"]].map((e,o)=>t.jsx("tr",{className:o===5?"is-triton":"",children:e.map((i,s)=>t.jsx("td",{children:i},`${e[0]}-${s}`))},e[0]))})]})}),t.jsx("p",{className:"pres-close",children:'Gartner counts 30+ alternative platforms, most "incomplete or still in development." The crowd is in the hypervisor lane. The unserved requirement is the operating model that made public cloud worth having: self-service, projects, quotas, APIs, cost attribution.'}),sn("Proxmox published price list (per socket/yr, ex-VAT) · Microsoft Azure Local & Windows Server licensing pages · vendor documentation · Gartner via ITdaily, Nov 2025. Nutanix, Red Hat and Azure Local list prices are not published.")]}),t.jsxs(ut,{kicker:"PRODUCT",title:"Don't stop at the hypervisor.",children:[t.jsx("div",{className:"pres-stack",children:[["ACCESS","Portal · CLI · API · Automation"],["CLOUD MODEL","Silo · Tenants · Projects · Identity · Policy"],["RESOURCES","Compute (hypervisor is one part) · Network · Block · Object"],["HARDWARE","Servers · NVMe · Network fabric · GPUs"]].map(e=>t.jsxs("div",{children:[t.jsx("b",{children:e[0]}),t.jsx("span",{children:e[1]})]},e[0]))}),t.jsx("p",{className:"pres-annotation",children:"Virtualization stops at the resource layer."}),t.jsx("p",{className:"pres-caption",children:"Operators define capacity, policy and boundaries; teams consume on demand."}),t.jsxs("div",{className:"pres-cards",children:[t.jsxs("article",{children:[t.jsx("span",{children:"CLOUD ECONOMICS, Chargeback, not allocation"}),t.jsx("p",{children:"Every instance, volume and object is metered and attributed. Finance gets chargeback against real consumption instead of a capex allocation spreadsheet."})]}),t.jsxs("article",{children:[t.jsx("span",{children:"PORTABILITY, Same software as the public region"}),t.jsx("p",{children:"Triton Private Cloud runs the same platform as Triton Cloud. Same software, same APIs, different operator. Burst and portability are architectural, not a roadmap item."})]})]})]}),t.jsxs(ut,{kicker:"TECHNOLOGY",title:"A new control plane on a twenty-year substrate.",children:[t.jsx("div",{className:"pres-tech",children:[["SUBSTRATE","illumos","Zones, ZFS and DTrace in the host OS. Virtual machines run on bhyve. Storage is ZFS all the way down, no bolted-on SDS tier."],["CONTROL PLANE","tritond · tritonagent","One HTTP service owns all state and the entire API. One agent touches compute nodes. State in FoundationDB, metrics in ClickHouse. Installs with a single command."],["NETWORKING","Proteus","An illumos kernel module in Rust on Oxide's OPTE packet engine. Per-port flow tables, distributed firewall, routing, NAT, floating IPs, Geneve overlay, DHCP, IMDSv2."],["STORAGE","Manta","Rebuilt on FoundationDB and ZFS. S3-compatible object storage end to end, clustering across nodes, with a POSIX filesystem shipping as a Triton zone."]].map(e=>t.jsxs("article",{children:[t.jsx("span",{children:e[0]}),t.jsx("h3",{children:e[1]}),t.jsx("p",{children:e[2]})]},e[0]))}),t.jsx("blockquote",{children:'"Same substrate, new codebase. Triton Cloud is not Triton DataCenter with a new coat of paint."'}),t.jsxs("div",{className:"pres-status",children:[t.jsxs("b",{children:["AVAILABLE ",t.jsx("span",{children:"Triton control plane"})]}),t.jsxs("b",{children:["IN DEVELOPMENT ",t.jsx("span",{children:"Manta data services"})]}),t.jsxs("b",{children:["PLANNED ",t.jsx("span",{children:"Managed Kubernetes"})]})]})]}),t.jsxs(ut,{kicker:"WHY US",title:"Seventeen years of production cloud, and we own the codebase.",children:[t.jsx("div",{className:"pres-history",children:[["2009","BUILT","Joyent","SmartDataCenter · SmartO
35S · zones · ZFS"],["2015","NAMED","Triton DataCenter","Multi-tenancy · SDN · APIs · Docker-native containers"],["2016–22","SCALED","Samsung","Triton Private Regions in production · Samsung Cloud object storage on Triton"],["2022–24","ACQUIRED","MNX → Sovren","Triton, Manta and SmartOS suite · 608 repositories acquired"],["2026","REBUILT","Triton Cloud","New control plane · Rust networking"]].map(e=>t.jsxs("article",{children:[t.jsx("b",{children:e[0]}),t.jsx("span",{children:e[1]}),t.jsx("h3",{children:e[2]}),t.jsx("p",{children:e[3]})]},e[0]))}),t.jsx("p",{className:"pres-lede",children:"Competitors are assembling a cloud out of open-source parts. We acquired a cloud platform that ran a hyperscaler's object storage, kept the substrate that made it fast, and rewrote the control plane that made it hard to operate. First recognized OCP Solution Provider running Triton on an OCP-recognized hardware platform, MiTAC compute with Edgecore networking."}),sn("Open Compute Project solution registry · Sovren Technologies acquisition record")]}),t.jsxs(ut,{kicker:"DIFFERENTIATION",title:"Three things no one else brings together.",children:[t.jsx("div",{className:"pres-wedges",children:[["WEDGE 01","Rack to API, turnkey","Open Rack V3, 44 OU, 48 V DC bus, A/B Ethernet fabric, arrives configured, with the Triton control plane installed by a single command. Not a bill of materials and a services engagement.","The alternative for a 300-person IT org is standing up Ceph, an SDN, an IdP and a metering layer themselves. That is the project Gartner is warning them about."],["WEDGE 02","Built for GPUs, not retrofitted","Accelerated compute is a first-class tray in the rack design and a first-class resource in the API. Private AI, inference and training run beside the data they need, inside the tenancy and quota model, not in a separate silo.",`Broadcom's own commentary attributes VMware growth to "rising CPU core deployments alongside GPUs."`],["WEDGE 03","No per-socket licensing","Open-source platform, open hardware, no per-socket and no per-core licensing. Customers buy capacity and support, not the right to turn on the cores they already own.","This is the structural answer to the entire Broadcom story: there is no lever here for a future 300% increase, because the pricing is not attached to the customer's core count."]].map(e=>t.jsxs("article",{children:[t.jsx("span",{children:e[0]}),t.jsx("h3",{children:e[1]}),t.jsx("p",{children:e[2]}),t.jsx("small",{children:e[3]})]},e[0]))}),sn("Broadcom Q2 FY2026 commentary via Futurum, Jun 2026 · Triton Open Compute reference architecture")]}),t.jsxs(ut,{kicker:"ECONOMICS",title:"The core count stops being a pricing lever.",children:[t.jsx(jp,{economics:!0}),t.jsx("p",{className:"pres-caption",children:"Illustrative of pricing structure, not a quoted TCO comparison. The shape is the point: every core a customer adds to a per-core platform is a price increase they did not negotiate."}),t.jsxs("div",{className:"pres-cards",children:[t.jsxs("article",{children:[t.jsx("span",{children:"THE TRAP, 96 cores"}),t.jsx("p",{children:"Current-generation server CPUs. Under per-core licensing, a hardware refresh is a licensing event, the customer pays more to run the same workloads on fewer, denser boxes."})]}),t.jsxs("article",{children:[t.jsx("span",{children:"THE TRITON POSITION, Density is free"}),t.jsx("p",{children:"Consolidation improves the customer's economics instead of ours. That aligns our renewal with their efficiency, the exact relationship Broadcom inverted."})]})]}),sn("Proxmox published per-socket price list · Microsoft Azure Local per-physical-core model · VMware VCF subscription terms. Curves are structural illustrations, not vendor quotes.")]}),t.jsxs(ut,{kicker:"WHO BUYS",title:"Four entry points, one platform.",children:[t.jsx("div",{className:"pres-wedges pres-buyers",children:[["LAND","Existing applications","Run the VMs they already have. The lowest-risk first milestone and the one every VMware refugee starts with."],["EXPAND","Internal cloud","Platform teams give engineering self-service infrastru
35cture with quotas and chargeback, the reason the workload went to AWS in the first place."],["MULTIPLY","Service provider","The de-authorized VMware partners need a platform to resell. Multi-tenancy, metering and white-label are already in the product."],["PREMIUM","Private AI","Keep compute close to the data. GPU capacity inside the same tenancy, policy and metering model as everything else."]].map(e=>t.jsxs("article",{children:[t.jsx("span",{children:e[0]}),t.jsx("h3",{children:e[1]}),t.jsx("p",{children:e[2]})]},e[0]))}),t.jsxs("p",{className:"pres-callout",children:[t.jsx("b",{children:"LAND AND EXPAND"}),t.jsx("br",{}),'A customer enters on the cheapest, most defensible motion, "run the VMs you already have", and the tenancy, metering and object-storage layers turn a hypervisor replacement into a platform relationship. The private-AI segment carries the highest revenue per rack and pulls forward the hardware line.']})]}),t.jsxs(ut,{kicker:"THE HONEST POSITION",title:"Nutanix and Red Hat are winning today.",children:[t.jsx("p",{className:"pres-lede",children:"Both have enterprise sales motions we do not yet have at scale, and both are taking VMware workloads right now. If you are a large enterprise with an existing relationship and a preference for an appliance model or a Kubernetes-first stack, they are credible choices and you should evaluate them."}),t.jsxs("article",{className:"pres-callout",children:[t.jsx("b",{children:"WHERE WE WIN"}),t.jsx("p",{children:"Neither sells the abandoned mid-market or the de-authorized service provider, both are priced and staffed for the enterprise. Nutanix ties the customer to appliance economics; OpenShift asks them to adopt Kubernetes to run a VM. Triton is complete at the cloud layer, which is an empty quadrant."})]})]}),t.jsxs(ut,{kicker:"HOW A MIGRATION STARTS",title:"A migration that starts small enough to say yes to.",children:[t.jsx("div",{className:"pres-steps",children:[["STEP 01","Map","Workloads, hardware and dependencies. Output is a defensible target-state design, not a quote."],["STEP 02","Run a slice","Triton on a defined slice of infrastructure. One rack, one tenant, real workloads."],["STEP 03","Validate","Workloads, operations and automation, against the customer's own runbooks and change process."],["STEP 04","Move capacity","Expand where the platform and the workload fit. Renewal dates set the pace, not us."]].map(e=>t.jsxs("article",{children:[t.jsx("span",{children:e[0]}),t.jsx("h3",{children:e[1]}),t.jsx("p",{children:e[2]})]},e[0]))}),t.jsxs("article",{className:"pres-callout",children:[t.jsx("b",{children:"TIMING"}),t.jsx("p",{children:"vSphere 8 support ends Oct 2027; Azure's license-included VMware option stops selling Oct 2026. Every enterprise has a dated forcing event."})]})]}),t.jsxs(ut,{kicker:"PROOF",title:"Not a pilot. An executed purchase order.",children:[t.jsxs("div",{className:"pres-detail",children:[t.jsxs("div",{children:["End customer",t.jsx("strong",{children:"A Fortune 500 life sciences company"})]}),t.jsxs("div",{children:["Reseller of record",t.jsx("strong",{children:"A national IT solutions provider"})]}),t.jsxs("div",{children:["Coverage term",t.jsx("strong",{children:"Twelve months, 2026–2027"})]}),t.jsxs("div",{children:["Scope",t.jsx("strong",{children:"8 head nodes · 180 compute nodes"})]}),t.jsxs("div",{children:["Contract value",t.jsx("strong",{children:"$600k+"})]})]}),t.jsxs("div",{className:"pres-cards",children:[t.jsxs("article",{children:[t.jsx("span",{children:"WHAT IT PROVES, 188 nodes, priced per node"}),t.jsx("p",{children:"Not a proof of concept, a 188-node production estate under contract. And the invoice is denominated in nodes, not cores: the customer can put 96-core CPUs in all 180 compute nodes without the licence changing."})]}),t.jsxs("article",{children:[t.jsx("span",{children:"WHAT IT DE-RISKS, The channel motion works"}),t.jsx("p",{children:"The order came through a national IT solutions provider with an established enterprise book. We did not have to build a direct enterprise salesforce to land a Fortune 500 logo."})]})]}),sn("Executed purchase order, July 2026. Customer and reseller names with
35held.")]}),t.jsxs(ut,{kicker:"APPENDIX",title:"Sources, and what we deliberately left out.",children:[t.jsxs("div",{className:"pres-sources",children:[t.jsxs("article",{children:[t.jsx("b",{children:"CITED"}),t.jsx("p",{children:"Gartner, Worldwide Sovereign Cloud IaaS Spending, 9 Feb 2026 · Gartner VMware share forecast via Network World, 9 Sep 2025 · Gartner (Paul Delory) via The Register, 12 May 2026 · Gartner 30+ alternatives via ITdaily, 17 Nov 2025 · CloudBolt Industry Insights, n=302, fielded Jan 2026 · Forrester (Naveen Chhabra) via Network World, 3 Jun 2026 · Nutanix Q4 FY2026 results, 27 Aug 2026 · SDxCentral, 8 Apr 2026 · The Register: AT&T filings Oct 2024, Beeks Dec 2024, Arrow Mar 2025, VCSP termination Jan 2026, CISPE Mar 2026, Azure VMware Solution Aug 2026 · TechTarget, May and Jun 2026 · Computer Weekly, 3 Feb 2026 · Futurum, 8 Jun 2026 · Proxmox published price list · Microsoft licensing pages · Open Compute Project registry · Executed purchase order, July 2026."})]}),t.jsxs("article",{children:[t.jsx("b",{children:"EXCLUDED ON PURPOSE"}),[['"74% EXPLORING ALTERNATIVES"',"Traces to a self-selected Gartner Peer Community poll (n=246, date not published), not Gartner research. We use CloudBolt's 86% instead."],['"72-CORE MINIMUM"',"Announced by Arrow in Mar 2025 and withdrawn within two weeks. Presented as evidence of pricing intent, not current policy."],["SERVER VIRTUALIZATION TAM","Available figures come from report-mill publishers whose estimates differ by 5–10× with unpublished methodology. Sized bottom-up instead."],["CLOUD REPATRIATION STATISTICS","The widely-quoted repatriation numbers have no primary source. CloudBolt finds 72% of departing VMware workloads go to public cloud, which we address rather than hide."]].map(e=>t.jsxs("div",{children:[t.jsx("b",{children:e[0]}),t.jsx("p",{children:e[1]})]},e[0]))]})]}),t.jsx("p",{className:"pres-close",children:"Every figure on this page is attributed to a named analyst, a company filing, an executed purchase order, a published price list, or a dated trade report."})]}),t.jsx("section",{className:"pres-close-section",children:t.jsx("div",{className:"container",children:t.jsxs(L,{children:[t.jsx("h2",{children:"The window is the 2026–2029 renewal cycle."}),t.jsx("p",{children:"The platform exists. The customer is under contract. The channel is available."}),t.jsx(kp,{}),t.jsx("small",{children:"Market data verified September 2026."})]})})})]})}const bp="https://us-central.manta.mnx.io/Joyent_Dev/public/SmartOS/smartos.html",bc="https://wiki.smartos.org/",Rw=[["ZONES","OS-level virtualization","Zones run workloads on the host kernel with hard isolation and no guest OS to boot, patch, or pay for in memory."],["NETWORKING","A real IP per container","Every zone gets its own network stack and addresses on the fabric. No port mapping, no overlay, no NAT between services."],["ZFS","Storage built into the OS","Copy-on-write snapshots, clones, checksums, and compression are part of the operating system. Images provision as clones in seconds."],["DTRACE","Observe production safely","DTrace instruments the kernel and applications on a live host with zero overhead when disabled, so you can ask questions of production instead of guessing."],["RESOURCE CONTROLS","Fair share, enforced","CPU, memory, disk I/O, and network limits are enforced by the kernel per zone, which keeps one noisy tenant from starving the rest."],["KVM / BHYVE","Hardware VMs when you need them","Linux, Windows, and BSD guests run in KVM or bhyve virtual machines inside zones, so they inherit the same isolation, storage, and resource model."]];function Ow(){return t.jsxs("div",{className:"page smartos",children:[t.jsx("section",{className:"container",children:t.jsx(L,{children:t.jsxs("aside",{className:"smartos-notice","aria-label":"SmartOS and Triton",children:[t.jsx("span",{className:"mono",children:"SMARTOS IS THE ENGINE. TRITON IS THE PRODUCT."}),t.jsxs("p",{children:["SmartOS is the hypervisor underneath every Triton deployment. If you run your own hardware, start with ",t.jsx(M,{to:"/on-prem",children:"Triton Private Cloud"}),"."]}),t.jsxs("p",{className:"smartos-notice__secondary",children:["Prefer a hosted option? ",t.jsx(M,{to:"/",children:"Triton Cloud"})," runs the same platform, operated by us."]})]})})}),t.jsx("section",{className:"page-hero container smartos-hero",children:t.jsx(L,{children:t.jsxs("div",{className:"smartos-hero__grid",children:[t.jsxs("div",{children:[t.jsx("span",{className:"section-kicker mono",children:"SMARTOS"}),t.jsx("h1",{children:"The open-source hypervisor that runs Triton."}),t.jsx("p",{className:"page-hero__lede",children:"SmartOS is an illumos-based operating system built for running clouds. It boots from the network or a USB key into memory, runs containers and virtual machines side by side, and puts ZFS and DTrace in the base system."}),t.jsxs("div",{className:"smartos-actions",children:[t.jsx(M,{className:"btn btn--primary",to:"/on-prem",children:"Explore Triton Private Cloud"}),t.jsx("a",{className:"btn btn--outline",href:bp,target:"_blank",rel:"noreferrer",children:"Download ISO ↗"})]}),t.jsx("p",{className:"smartos-hero__note mono",children:"ILLUMOS · ZONES · ZFS · DTRACE · KVM · BHYVE · OPEN SOURCE"})]}),t.jsxs("figure",{className:"smartos-stack","aria-label":"SmartOS sits between the hardware and Triton",children:[t.jsxs("div",{className:"smartos-stack__layer",children:[t.jsx("b",{className:"mono",children:"TRITON"}),t.jsx("span",{children:"Cloud control plane · Projects · APIs · Portal"})]}),t.jsx("i",{"aria-hidden":"true"}),t.jsxs("div",{className:"smartos-stack__layer smartos-stack__layer--core",children:[t.jsx("b",{className:"mono",children:"SMARTOS"}),t.jsx("span",{children:"Zones · ZFS · DTrace · KVM · bhyve · Resource controls"})]}),t.jsx("i",{"aria-hidden":"true"}),t.jsxs("div",{className:"smartos-stack__layer",children:[t.jsx("b",{className:"mono",children:"HARDWARE"}),t.jsx("span",{children:"Servers · NVMe · Network"})]}),t.jsx("figcaption",{children:"Each compute node boots SmartOS. Triton turns those nodes into a cloud."})]})]})})}),t.jsx("section",{className:"section-rhythm smartos-paths",id:"paths","aria-labelledby":"paths-heading",children:t.jsxs("div",{className:"container",children:[t.jsx(L,{children:t.jsxs("div",{className:"smartos-section-intro",children:[t.jsx("span",{className:"section-kicker mono",children:"CHOOSE A PATH"}),t.jsx("h2",{id:"paths-heading",children:"Which path is right for you?"}),t.jsx("p",{children:"SmartOS on its own is a hypervisor. Triton adds the cloud around it: identity, tenancy, networking, images, storage, and an API your teams can use directly."})]})}),t.jsx(L,{children:t.jsxs("div",{className:"smartos-compare",children:[t.jsxs("article",{className:"smartos-path smartos-path--triton",children:[t.jsxs("header",{children:[t.jsx("span",{className:"mono",children:"RECOMMENDED"}),t.jsx("h3",{children:"Triton Private Cloud"}),t.jsx("p",{children:"SmartOS with the cloud platform on top, running on infrastru
35cture you control and operated by your team."})]}),t.jsxs("ul",{children:[t.jsx("li",{children:"Multi-tenant projects, identity, and policy"}),t.jsx("li",{children:"Self-service portal, CLI, API, and automation"}),t.jsx("li",{children:"Image management, VPCs, and firewalling"}),t.jsx("li",{children:"Fleet provisioning, upgrades, and metering"}),t.jsx("li",{children:"Open source, with a company behind it"})]}),t.jsxs("div",{className:"smartos-path__actions",children:[t.jsx(M,{className:"btn btn--primary",to:"/on-prem",children:"Explore Triton Private Cloud"}),t.jsx(M,{className:"smartos-quiet-link",to:"/",children:"Or use Triton Cloud, hosted by us"})]})]}),t.jsxs("article",{className:"smartos-path",children:[t.jsxs("header",{children:[t.jsx("span",{className:"mono",children:"DO IT YOURSELF"}),t.jsx("h3",{children:"SmartOS standalone"}),t.jsxs("p",{children:["A single host you install, image, and operate with the ",t.jsx("code",{children:"vmadm"})," and ",t.jsx("code",{children:"imgadm"})," tools. Good for labs, home servers, and learning the platform from the bottom up."]})]}),t.jsxs("ul",{children:[t.jsx("li",{children:"One node at a time, managed by hand or your own scripts"}),t.jsx("li",{children:"Zones and hardware VMs from the command line"}),t.jsx("li",{children:"Community images from the public image server"}),t.jsxs("li",{children:["Community support, or ",t.jsx(M,{to:"/smartos/support",children:"paid support per server"})]}),t.jsx("li",{children:"Same open-source kernel and tooling Triton uses"})]}),t.jsxs("div",{className:"smartos-path__actions",children:[t.jsx("a",{className:"btn btn--outline",href:bp,target:"_blank",rel:"noreferrer",children:"Download ISO ↗"}),t.jsx("a",{className:"smartos-quiet-link",href:bc,target:"_blank",rel:"noreferrer",children:"Read the wiki ↗"})]})]})]})})]})}),t.jsx("section",{className:"section-rhythm container smartos-lineage","aria-labelledby":"lineage-heading",children:t.jsx(L,{children:t.jsxs("div",{className:"smartos-lineage__grid",children:[t.jsxs("div",{children:[t.jsx("span",{className:"section-kicker mono",children:"PROVEN IN PRODUCTION"}),t.jsx("h2",{id:"lineage-heading",children:"Battle-tested infrastructure."}),t.jsx("p",{children:"SmartOS descends from OpenSolaris through illumos. Joyent built it to run its public cloud and the private clouds it shipped as Triton DataCenter. Samsung acquired Joyent in 2016 and the platform kept running at scale. Through the 2022 transition to independent stewardship, SmartOS stayed open source, and Triton Cloud runs on it today."}),t.jsxs("p",{className:"smartos-lineage__sources",children:["Sources:"," ",t.jsx("a",{href:"https://news.samsung.com/global/samsung-to-acquire-joyent-a-leading-public-and-private-cloud-provider",target:"_blank",rel:"noreferrer",children:"Samsung acquisition announcement"})," · ",t.jsx("a",{href:"https://tritondatacenter.com/blog/a-new-chapter-begins-for-triton-and-smartos",target:"_blank",rel:"noreferrer",children:"A new chapter for Triton and SmartOS"})," · ",t.jsx(M,{to:"/company/about",children:"Full lineage"})]})]}),t.jsxs("ol",{className:"smartos-timeline","aria-label":"SmartOS lineage",children:[t.jsxs("li",{children:[t.jsx("b",{className:"mono",children:"ILLUMOS"}),t.jsx("span",{children:"Open-source Solaris kernel: zones, ZFS, DTrace"})]}),t.jsxs("li",{children:[t.jsx("b",{className:"mono",children:"JOYENT"}),t.jsx("span",{children:"Builds SmartOS and runs a public cloud on it"})]}),t.jsxs("li",{children:[t.jsx("b",{className:"mono",children:"SAMSUNG"}),t.jsx("span",{children:"Acquires Joyent in 2016; the platform runs at scale"})]}),t.jsxs("li",{children:[t.jsx("b",{className:"mono",children:"2022"}),t.jsx("span",{children:"Stewardship changes; Triton and SmartOS stay open source"})]}),t.jsxs("li",{className:"is-current",children:[t.jsx("b",{className:"mono",children:"TRITON CLOUD"}),t.jsx("span",{children:"A rebuilt control plane on the same substrate"})]})]})]})})}),t.jsx("section",{className:"section-rhythm smartos-diff",id:"different","aria-labelledby":"different-heading",children:t.jsxs("div",{className:"container",children:[t.jsx(L,{children:t.jsxs("div",{className:"smartos-section-intro",children:[t.jsx("span",{className:"section-kicker mono",children:"UNDER THE HOOD"}),t.jsx("h2",{id:"different-heading",children:"What makes it different."}),t.jsx("p",{children:"Most hypervisors bolt storage, networking, and observability on from the outside. SmartOS inherited them from the kernel."})]})}),t.jsx(L,{children:t.jsx("div",{className:"smartos-grid",children:Rw.map(([e,o,i])=>t.jsxs("article",{children:[t.jsx("span",{className:"mono",children:e}),t.jsx("h3",{children:o}),t.jsx("p",{children:i})]},e))})})]})}),t.jsx("section",{className:"section-rhythm container smartos-bridge",id:"private-cloud","aria-labelledby":"bridge-heading",children:t.jsx(L,{children:t.jsxs("div",{className:"smartos-bridge__panel",children:[t.jsxs("div",{children:[t.jsx("span",{className:"section-kicker mono",children:"FROM NODES TO A CLOUD"}),t.jsx("h2",{id:"bridge-heading",children:"You already run your own hardware. Triton turns SmartO
35S nodes into a private cloud."}),t.jsx("p",{children:"Keep the kernel, the zones, and the ZFS pools you know. Triton Private Cloud adds the control plane that lets your teams consume those nodes the way they would a public cloud."}),t.jsxs("div",{className:"smartos-actions",children:[t.jsx(M,{className:"btn btn--primary",to:"/on-prem",children:"Explore Triton Private Cloud"}),t.jsx(M,{className:"smartos-quiet-link",to:"/on-prem#pilot",children:"See if Triton fits"})]})]}),t.jsxs("ul",{className:"smartos-bridge__list","aria-label":"What Triton Private Cloud adds to SmartOS nodes",children:[t.jsxs("li",{children:[t.jsx("b",{className:"mono",children:"PROJECTS"}),t.jsx("span",{children:"Multi-tenant projects, identity, and policy across every node"})]}),t.jsxs("li",{children:[t.jsx("b",{className:"mono",children:"SELF-SERVICE"}),t.jsx("span",{children:"A portal, CLI, and API your teams use directly"})]}),t.jsxs("li",{children:[t.jsx("b",{className:"mono",children:"NETWORK & IMAGES"}),t.jsx("span",{children:"Image management, VPCs, and firewalling on the fabric"})]}),t.jsxs("li",{children:[t.jsx("b",{className:"mono",children:"FLEET"}),t.jsx("span",{children:"Fleet provisioning and upgrades, with metering and showback per project"})]})]})]})})}),t.jsx("section",{className:"section-rhythm page-section--cta smartos-cta",children:t.jsx("div",{className:"container",children:t.jsxs(L,{children:[t.jsx("span",{className:"section-kicker mono",children:"GET STARTED"}),t.jsx("h2",{children:"Run SmartOS as a private cloud."}),t.jsx("p",{className:"measure",children:"For production infrastructure on your own hardware, Triton Private Cloud puts a cloud around the same kernel. The wiki covers installation, images, zones, and virtual machines for a standalone host."}),t.jsxs("div",{className:"smartos-actions",children:[t.jsx(M,{className:"btn btn--primary",to:"/on-prem",children:"Explore Triton Private Cloud"}),t.jsx(M,{className:"btn btn--outline",to:"/",children:"Triton Cloud"}),t.jsx("a",{className:"btn btn--outline",href:bc,target:"_blank",rel:"noreferrer",children:"SmartOS wiki ↗"}),t.jsx(M,{className:"btn btn--outline",to:"/smartos/support",children:"Support SmartOS"})]})]})})})]})}const Lw=[["PLATFORM","SmartOS releases","Building, testing, and publishing platform images, and keeping illumos changes flowing into them."],["SECURITY","Fixes that ship","Tracking advisories in the kernel and userland and getting patched images out to operators."],["PACKAGES","pkgsrc binaries","The build hosts and maintainer time behind the pkgsrc package sets SmartOS zones install from."]],Dw=[["How is a server counted?","One subscription unit covers one physical host booting SmartOS, whatever runs inside it. Set the quantity at checkout and change it later as your fleet changes."],["Is this a donation?","No. Sovren Technologies, Inc. is a company, so subscriptions and one-time contributions are business payments and are not tax-deductible. You get a receipt for every payment."],["Does this cover Triton?","No. These plans cover SmartOS hosts you run yourself. Support for Triton Private Cloud or Triton DataCenter is a separate agreement, arranged through the sales contact page, as are custom development and on-site work."],["Can I pay yearly or by invoice?","Yes. Talk to sales for annual terms, purchase orders, or volume pricing on larger fleets."]];function Mw({tier:e,featured:o}){const i=`btn ${o?"btn--primary":"btn--outline"} btn--block`;return e.paymentLink?t.jsxs("a",{className:i,href:e.paymentLink,rel:"noreferrer",children:["Subscribe to ",e.name]}):t.jsx(M,{className:i,to:"/contact/sales",children:"Talk to sales"})}function Fw(){return t.jsxs("div",{className:"page smartos smartos-support",children:[t.jsx("section",{className:"page-hero container smartos-hero",children:t.jsxs(L,{children:[t.jsx("span",{className:"section-kicker mono",children:"SMARTOS SUPPORT"}),t.jsx("h1",{children:"Support the people who build SmartOS."}),t.jsx("p",{className:"page-hero__lede measure",children:"SmartOS stays open source and free to run. If it runs your hosts, a per-server subscription keeps releases, security fixes, and pkgsrc builds coming, and can put our team behind you when something breaks."})]})}),t.jsx("section",{className:"section-rhythm smartos-paths",id:"tiers","aria-labelledby":"tiers-heading",children:t.jsxs("div",{className:"container",children:[t.jsx(L,{children:t.jsxs("div",{className:"smartos-section-intro",children:[t.jsx("span",{className:"section-kicker mono",children:"PER SERVER, PER MONTH"}),t.jsx("h2",{id:"tiers-heading",children:"Pick a level for each host."}),t.jsx("p",{children:"Choose how many servers at checkout. Mix tiers across your fleet if some hosts matter more than others. All support is best effort: response times are targets, and a fix by a deadline isn't guaranteed. Cancel any time by writing to supp
35[email protected]."})]})}),t.jsx(L,{children:t.jsx("div",{className:"support-tiers",children:Fa.map(e=>{const o=e.id===Bv;return t.jsxs("article",{className:`smartos-path support-tier${o?" smartos-path--triton":""}`,"data-tier":e.id,children:[t.jsxs("header",{children:[t.jsx("span",{className:"mono",children:o?"FOR PRODUCTION HOSTS":e.name.toUpperCase()}),t.jsx("h3",{children:e.name}),t.jsxs("p",{className:"support-tier__price",children:[t.jsxs("b",{children:["$",e.monthly]}),t.jsx("span",{children:"/server/mo"})]}),t.jsx("p",{children:e.summary})]}),t.jsx("ul",{children:e.includes.map(i=>t.jsx("li",{children:i},i))}),t.jsx("div",{className:"smartos-path__actions",children:t.jsx(Mw,{tier:e,featured:o})})]},e.id)})})}),t.jsxs("aside",{className:"smartos-notice support-triton","aria-label":"Triton support",children:[t.jsx("span",{className:"mono",children:"RUNNING TRITON?"}),t.jsxs("p",{children:["These plans cover standalone SmartOS hosts. Support for ",t.jsx(M,{to:"/on-prem",children:"Triton Private Cloud"})," or Triton DataCenter is a separate agreement. ",t.jsx(M,{to:"/contact/sales",children:"Talk to sales"})," about Triton support, volume pricing for larger fleets, or annual terms."]})]}),t.jsx(L,{children:t.jsxs("div",{className:"support-onetime",id:"one-time",children:[t.jsxs("div",{children:[t.jsx("span",{className:"section-kicker mono",children:"ONE TIME"}),t.jsx("h3",{children:"Prefer to give once?"}),t.jsx("p",{children:"Make a one-time contribution of any amount. It goes to the same releases, fixes, and package builds, with no subscription and no support attached."})]}),t.jsx("a",{className:"btn btn--outline",href:Uv,rel:"noreferrer",children:"Contribute once"})]})})]})}),t.jsx("section",{className:"section-rhythm","aria-labelledby":"funds-heading",children:t.jsxs("div",{className:"container",children:[t.jsx(L,{children:t.jsxs("div",{className:"smartos-section-intro",children:[t.jsx("span",{className:"section-kicker mono",children:"WHERE IT GOES"}),t.jsx("h2",{id:"funds-heading",children:"What your subscription pays for."})]})}),t.jsx(L,{children:t.jsx("div",{className:"smartos-grid",children:Lw.map(([e,o,i])=>t.jsxs("article",{children:[t.jsx("span",{className:"mono",children:e}),t.jsx("h3",{children:o}),t.jsx("p",{children:i})]},e))})})]})}),t.jsx("section",{className:"section-rhythm smartos-diff","aria-labelledby":"faq-heading",children:t.jsxs("div",{className:"container",children:[t.jsx(L,{children:t.jsxs("div",{className:"smartos-section-intro",children:[t.jsx("span",{className:"section-kicker mono",children:"QUESTIONS"}),t.jsx("h2",{id:"faq-heading",children:"Before you subscribe."})]})}),t.jsx("dl",{className:"support-faq",children:Dw.map(([e,o])=>t.jsxs("div",{children:[t.jsx("dt",{children:e}),t.jsx("dd",{children:o})]},e))})]})}),t.jsx("section",{className:"section-rhythm page-section--cta smartos-cta",children:t.jsx("div",{className:"container",children:t.jsxs(L,{children:[t.jsx("span",{className:"section-kicker mono",children:"NOT READY TO SUBSCRIBE?"}),t.jsx("h2",{children:"SmartOS is still yours to run."}),t.jsx("p",{className:"measure",children:"The wiki covers installation, images, zones, and virtual machines, and the community answers questions on the mailing lists."}),t.jsxs("div",{className:"smartos-actions",children:[t.jsx("a",{className:"btn btn--outline",href:bc,target:"_blank",rel:"noreferrer",children:"SmartOS wiki ↗"}),t.jsx(M,{className:"btn btn--outline",to:"/smartos",children:"About SmartOS"})]})]})})})]})}const qn=(e,o,i,s=!1,l)=>{const c=s?"UPGRADE":"BOOTSTRAP",u=e==="NetBSD"?"ftp":"curl -O",h=e==="SmartOS"?`[ "\${${c}_SHA}" = "$(/bin/digest -a sha1 \${${c}_TAR})" ] || { echo "ERROR: checksum failure" >&2; exit 1; }`:e==="NetBSD"?`echo "\${${c}_SHA} \${${c}_TAR}" | sha1 -c || exit 1`:e==="Linux"?`echo "\${${c}_SHA}  \${${c}_TAR}" >check-shasum
36sha1sum -c check-shasum || exit 1`:`echo "\${${c}_SHA}  \${${c}_TAR}" | shasum -c- || exit 1`,m=e==="SmartOS"?"/opt/local":e==="Darwin"?"/opt/pkg":"/usr/pkg",f=l??(e==="Darwin"?"ED09C4B0":e==="Linux"?"5FE35E6E":e==="NetBSD"?"C72658C9":"8254B861"),y=e==="NetBSD"?`# gpg2 --verify \${${c}_TAR}.asc \${${c}_TAR}`:`# gpg2 --verify \${${c}_TAR}{.asc,}
36`,x=e==="Darwin"?"eval $(/usr/libexec/path_helper)":`PATH=${m}/sbin:${m}/bin:$PATH${e!=="NetBSD"?`
37MANPATH=${m}/man:$MANPATH`:""}`;return`${e==="SmartOS"||e==="NetBSD"?`# Prerequisite: run this block from a root shell.
38`:""}${c}_TAR="${i}"
39${c}_SHA="${o}"
40
41# Download the ${s?"upgrade":"bootstrap"} kit to the current directory.
42${u} https://pkgsrc.smartos.org/packages/${e}/bootstrap${s?"-upgrade":""}/\${${c}_TAR}
43
44# Verify the SHA1 checksum before unpacking.
45${h}
46
47# Optional: verify the PGP signature (requires gpg).
48# ${u} https://pkgsrc.smartos.org/packages/${e}/bootstrap${s?"-upgrade":""}/\${${c}_TAR}.asc
49# curl -sS https://pkgsrc.smartos.org/pgp/${f}.asc | gpg2 --import
50${y}
51
52${e==="NetBSD"&&!s?`rm -rf /usr/pkg /var/db/pkg /var/db/pkgin
53
54`:""}# Unpack the kit to ${m}.
55${e==="Darwin"||e==="Linux"?"sudo ":""}tar -zxpf \${${c}_TAR} -C /${s?"":`
56
57# Add pkgsrc tools to this shell.
58${x}`}`},zw=e=>e==="Linux"?`sudo /usr/pkg/sbin/pkg_add -U pkg_install pkgin libarchive
59sudo /usr/pkg/bin/pkgin clean
60sudo /usr/pkg/bin/pkgin -y upgrade`:e==="Darwin"?`sudo /opt/pkg/sbin/pkg_add -U pkg_install pkgin
61sudo /opt/pkg/bin/pkgin clean
62sudo /opt/pkg/bin/pkgin -y upgrade`:e==="SmartOS"?`/opt/local/sbin/pkg_add -U pkg_install pkgin libarchive
63/opt/local/bin/pkgin clean
64/opt/local/bin/pkgin -y upgrade`:`/usr/pkg/sbin/pkg_add -U pkg_install pkgin libarchive
65/usr/pkg/bin/pkgin clean
66/usr/pkg/bin/pkgin -y upgrade`,qr=(e,o,i)=>`${qn(e,o,i,!0)}
67
68# Ensure package tools and installed packages are current.
69${zw(e)}`,Xl=(e,o,i,s)=>`BOOTSTRAP_TAR="${i}"
70BOOTSTRAP_SHA="${s}"
71REPO_URL="https://us-central.manta.mnx.io/pkgsrc/public/packages/Darwin/${e}"
72
73curl -O \${REPO_URL}/bootstrap/\${BOOTSTRAP_TAR}
74echo "\${BOOTSTRAP_SHA}  \${BOOTSTRAP_TAR}" | shasum -c- || exit 1
75# curl -O \${REPO_URL}/bootstrap/\${BOOTSTRAP_TAR}.asc
76# curl -sS https://pkgsrc.smartos.org/pgp/1F32A9AD.asc | gpg2 --import
77# gpg2 --verify \${BOOTSTRAP_TAR}{.asc,}
78sudo tar -zxpf \${BOOTSTRAP_TAR} -C /
79sudo sed -i '' -e "s,https://pkgsrc.joyent.*All,\${REPO_URL}/trunk/${o}/All," /opt/pkg/etc/pkg_install.conf /opt/pkg/etc/pkgin/repositories.conf || exit 1
80eval $(/usr/libexec/path_helper)`,Bw={illumos:{platform:"illumos",name:"SmartOS / illumos",title:"Binary packages for illumos, without a moving target.",summary:"Choose the standard set for illumos distributions, or the deliberately smaller tools set for a SmartOS Global Zone.",root:"/opt/local",downloads:"https://pkgsrc.smartos.org/packages/SmartOS/",packageSet:"Built on SmartOS 20210826; intended for illumos distributions of at least that date.",caveat:"Run install and upgrade commands from a root shell. Bootstrap kits are for a fresh pkgsrc installation. If pkgsrc is already installed, use the matching upgrade kit or pkgin upgrade instead of unpacking a bootstrap over it.",kits:[{id:"standard-install",label:"Standard",detail:"General illumos package set.",install:qn("SmartOS","e5e620ade4b45695aa385aea25227e94f49f078f","bootstrap-trunk-x86_64-20260811.tar.gz"),upgrade:qr("SmartOS","d94e31661b3ba5a69cfd1f49b5c0c8e8aa27e92f","bootstrap-trunk-x86_64-20260811-upgrade.tar.gz")},{id:"tools-install",label:"Tools · SmartOS GZ",detail:"A smaller set designed for the Global Zone. Download from /var/tmp; the GZ bootstrap uses curl -k.",install:`cd /var/tmp
81
82${qn("SmartOS","703e6b381320e1176ee84587a1430e0994aeff71","bootstrap-trunk-tools-20260804.tar.gz").replaceAll("curl -O","curl -kO").replaceAll("/opt/local","/opt/tools")}`,upgrade:qr("SmartOS","3707bcbcf83187d871fdc020d4a4c964e343c9cc","bootstrap-trunk-tools-20260804-upgrade.tar.gz").replaceAll("curl -O","curl -kO").replaceAll("/opt/local","/opt/tools").replace(" pkgin libarchive"," pkgin")}]},macos:{platform:"macos",name:"macOS",title:"One package tool, from the rack to the laptop.",summary:"Current builds are pkgsrc trunk packages for supported Apple Silicon and Intel macOS releases.",root:"/opt/pkg",downloads:"https://pkgsrc.smartos.org/packages/Darwin/",packageSet:"Current sets: Apple Silicon on Sonoma 14.5 or newer, and Intel on Monterey 12.3 or newer. Archived sets are available for older macOS releases but are no longer updated.",caveat:"Bootstrap kits are for a fresh pkgsrc installation. If pkgsrc is already installed, use the matching upgrade kit or pkgin upgrade instead of unpacking a bootstrap over it.",kits:[{id:"arm64-install",label:"Apple Silicon · 14.5+",detail
82:"arm64, updated from pkgsrc trunk every few days.",install:qn("Darwin","512a3c209fa0e83b4f614bc6ce11928c10b75cd0","bootstrap-macos14.5-trunk-arm64-20251114.tar.gz"),upgrade:qr("Darwin","3a1a211baba328513c7d59194c1b5cc199848644","bootstrap-macos14.5-trunk-arm64-20251114-upgrade.tar.gz")},{id:"intel-install",label:"Intel · 12.3+",detail:"x86_64 packages for supported Intel Macs.",install:qn("Darwin","2b151d12576befd85312ddb5261307998f16df2f","bootstrap-macos12.3-trunk-x86_64-20240426.tar.gz"),upgrade:qr("Darwin","bcbd41547216ec5a2f59ba460c3f7eef7a900eed","bootstrap-macos12.3-trunk-x86_64-20240426-upgrade.tar.gz")},{id:"bigsur-install",label:"Archive · Big Sur 11.3",detail:"Choose either arm64 or x86_64. This package set is no longer updated.",install:`# Choose exactly one architecture.
83# Apple Silicon:
84BOOTSTRAP_TAR="bootstrap-macos11-trunk-arm64-20240212.tar.gz"
85BOOTSTRAP_SHA="3d2a31e1f3eb026bb9ed0b3a63787355ad73a958"
86# Intel:
87# BOOTSTRAP_TAR="bootstrap-macos11-trunk-x86_64-20240212.tar.gz"
88# BOOTSTRAP_SHA="c4b71fe9bf0ef89cc8d38909496a75693050cd96"
89
90curl -O https://pkgsrc.smartos.org/packages/Darwin/bootstrap/\${BOOTSTRAP_TAR}
91echo "\${BOOTSTRAP_SHA}  \${BOOTSTRAP_TAR}" | shasum -c- || exit 1
92# curl -O https://pkgsrc.smartos.org/packages/Darwin/bootstrap/\${BOOTSTRAP_TAR}.asc
93# curl -sS https://pkgsrc.smartos.org/pgp/1F32A9AD.asc | gpg2 --import
94# gpg2 --verify \${BOOTSTRAP_TAR}{.asc,}
95sudo tar -zxpf \${BOOTSTRAP_TAR} -C /
96eval $(/usr/libexec/path_helper)`},{id:"mojave-install",label:"Archive · Mojave / Catalina",detail:"x86_64 for macOS 10.14.6 and 10.15.x. This package set is no longer updated.",install:qn("Darwin","a23fed860e7f515e7405fcfea9595049b9ea6634","bootstrap-macos14-trunk-x86_64-20210717.tar.gz",!1,"1F32A9AD")},{id:"sierra-install",label:"Archive · Sierra 10.12.6+",detail:"x86_64. This package set is no longer updated and uses its archived repository destination.",install:Xl("10.12","x86_64","bootstrap-trunk-x86_64-20190524.tar.gz","1c554a806fb41dcc382ef33e64841ace13988479")},{id:"mavericks-install",label:"Archive · Mavericks 10.9.5+",detail:"x86_64. This package set is no longer updated and uses its archived repository destination.",install:Xl("10.9","x86_64","bootstrap-trunk-x86_64-20181001.tar.gz","7209132a657582cf87897a2ad280c587e3d6bff0")},{id:"snow-leopard-install",label:"Archive · Snow Leopard 10.6.8+",detail:"32-bit i386. This package set is no longer updated and uses its archived repository destination.",install:Xl("10.6","i386","bootstrap-trunk-i386-20180812.tar.gz","283b88b13c75e8f92de8376532ccf4f4b9443f9d")}]},linux:{platform:"linux",name:"Linux",title:"A portable package set for the Linux systems you still operate.",summary:"The current Linux binary set is built for Enterprise Linux 7.x on x86_64, from pkgsrc trunk.",root:"/usr/pkg",downloads:"https://pkgsrc.smartos.org/packages/Linux/",packageSet:"Enterprise Linux 7.x: CentOS, Oracle, Red Hat, and Scientific Linux compatible systems.",caveat:"Bootstrap kits are for a fresh pkgsrc installation. If pkgsrc is already installed, use the matching upgrade kit or pkgin upgrade instead of unpacking a bootstrap over it.",kits:[{id:"el7-install",label:"Enterprise Linux 7.x",detail:"x86_64 package set.",install:qn("Linux","7ecea7fd3b49259aa7318d8cd72901966ad5329f","bootstrap-el7-trunk-x86_64-20220718.tar.gz"),upgrade:qr("Linux","e7c364c002ddf85ebda416644aa0309588be4e9e","bootstrap-el7-trunk-x86_64-20220718-upgrade.tar.gz")}]},netbsd:{platform:"netbsd",name:"NetBSD",title:"Current pkgsrc binaries for NetBSD operators.",summary:"A signed repository built for NetBSD 10.0/amd64 from pkgsrc trunk, refreshed regularly.",root:"/usr/pkg",downloads:"https://pkgsrc.smartos.org/packages/NetBSD/",packageSet:"NetBSD 10.0 / amd64. CHECK_OSABI and CHECK_OS_VERSION are disabled for minor-release compatibility.",caveat:"Run install and upgrade commands from a root shell. The install kit replaces any existing /usr/pkg, /var/db/pkg, and /var/db/pkgin state. Do not use it over an existing installation.",kits:[{id:"netbsd-install",label:"NetBSD / amd64",detail:"All packages are signed; VERIFIED_INSTALLATION=always is configured.",install:qn("NetBSD","493161aa5dd4c91c99e77187fa9fc3498fd2560b","bootstrap-netbsd-trunk-x86_64-20230918.tar.gz"),upgrade:qr("NetBSD","2af0899b2c77b59703b85a9c3ef52d31a84d2e41","bootstrap-netbsd-trunk-x86_64-20230918-upgrade.tar.gz")}]}},$m=[["illumos","illumos"],["macos","macOS"],["linux","Linux"],["netbsd","NetBSD"]],Uw=e=>e==="macos"?"/opt/pkg":e==="illumos"?"${PKGSRC_PREFIX}":"/usr/pkg",Yr=(e,o)=>e==="macos"||e==="linux"?`sudo ${o}`:o,Hw=e=>{const o=Uw(e),i=`${o}/bin/pkgin`,s=`${o}/sbin/pkg_info`,l=`${o}/sbin/pkg_admin`;return`${e==="illumos"?`# Run this block from a root shell.
97# Standard illumos set:
98PKGSRC_PREFIX=/opt/local
99# SmartOS Global Zone tools set instead:
100# PKGSRC_PREFIX=/opt/tools`:e==="netbsd"?"# Run this block from a root shell.":"# Elevated commands use explicit pkgsrc paths so sudo cannot reset them."}
101
102# Refresh repository metadata
103${Yr(e,`${i} -y update`)}
104
105# Find, install, and upgrade packages
106${i} search ^ffmpeg[0-9]$
107${Yr(e,`${i} -y install ffmpeg4`)}
108${i} avail
109${Yr(e,`${i} -y upgrade`)}
110${Yr(e,`${i} -y remove ffmpeg4`)}
111${Yr(e,`${i} -y autoremove`)}
112
113# Inspect installed package metadata and files
114${s}
115${s} -Fe ${o}/bin/ffmpeg4
116${s} -qL ffmpeg4
117
118# Refresh the vulnerability list and audit installed packages
119${Yr(e,`${l} fetch-pkg-vulnerabilities`)}
120${l} audit`};function Ww(){return t.jsxs("div",{className:"pkgsrc",children:[t.jsx("section",{className:"pkgsrc-hero",children:t.jsxs("div",{className:"container pkgsrc-hero__grid",children:[t.jsx(L,{children:t.jsxs("div",{className:"pkgsrc-hero__copy",children:[t.jsx("p",{className:"section-kicker mono",children:"PKGSRC"}),t.jsxs("h1",{children:["Your software.",t.jsx("br",{}),"Across your systems."]}),t.jsx("p",{className:"pkgsrc-hero__lede",children:"Install open-source software on SmartO
120S, illumos, macOS, and Linux with a consistent set of package tools. Choose ready-to-install binary packages, build from source, or create packages of your own."}),t.jsx("p",{className:"pkgsrc-hero__attribution",children:"At Triton, we develop pkgsrc for these platforms and publish binary packages, building on the work of the wider pkgsrc community."}),t.jsxs("div",{className:"pkgsrc-hero__actions",children:[t.jsx("a",{className:"btn btn--primary",href:"#platforms",children:"Get packages for your system"}),t.jsx("a",{className:"btn btn--outline",href:"https://github.com/NetBSD/pkgsrc",target:"_blank",rel:"noreferrer",children:"Explore pkgsrc"})]})]})}),t.jsx(L,{delay:2,children:t.jsxs("figure",{className:"pkgsrc-flow","aria-labelledby":"flow-caption",children:[t.jsxs("svg",{viewBox:"0 0 600 330",role:"img","aria-labelledby":"flow-title flow-desc",children:[t.jsx("title",{id:"flow-title",children:"Software flows through pkgsrc to supported operating systems"}),t.jsx("desc",{id:"flow-desc",children:"Utilities, languages, and databases flow into pkgsrc, which sends packages to SmartOS and illumos, macOS, Linux, and NetBSD."}),t.jsx("defs",{children:t.jsx("marker",{id:"flow-arrow",markerWidth:"8",markerHeight:"8",refX:"7",refY:"4",orient:"auto",children:t.jsx("path",{d:"M0,0 L8,4 L0,8 Z",fill:"currentColor"})})}),t.jsxs("g",{className:"pkgsrc-flow__source",children:[t.jsx("rect",{x:"18",y:"40",width:"150",height:"42"}),t.jsx("text",{x:"36",y:"66",children:"UTILITIES"}),t.jsx("rect",{x:"18",y:"112",width:"150",height:"42"}),t.jsx("text",{x:"36",y:"138",children:"LANGUAGES"}),t.jsx("rect",{x:"18",y:"184",width:"150",height:"42"}),t.jsx("text",{x:"36",y:"210",children:"DATABASES"})]}),t.jsxs("g",{className:"pkgsrc-flow__lines",children:[t.jsx("path",{d:"M168 61H242"}),t.jsx("path",{d:"M168 133H242"}),t.jsx("path",{d:"M168 205H242"}),t.jsx("path",{d:"M354 133H416V60H448"}),t.jsx("path",{d:"M354 133H416V116H448"}),t.jsx("path",{d:"M354 133H416V172H448"}),t.jsx("path",{d:"M354 133H416V228H448"})]}),t.jsxs("g",{className:"pkgsrc-flow__core",children:[t.jsx("rect",{x:"242",y:"88",width:"112",height:"90"}),t.jsx("text",{x:"266",y:"127",children:"pkg"}),t.jsx("text",{x:"302",y:"127",className:"pkgsrc-flow__accent",children:"src"}),t.jsx("text",{x:"266",y:"152",className:"pkgsrc-flow__sub",children:"PACKAGE TOOLS"})]}),t.jsxs("g",{className:"pkgsrc-flow__platform",children:[t.jsx("rect",{x:"448",y:"39",width:"132",height:"42"}),t.jsx("text",{x:"462",y:"65",children:"SMARTOS / ILLUMOS"}),t.jsx("rect",{x:"448",y:"95",width:"132",height:"42"}),t.jsx("text",{x:"462",y:"121",children:"MACOS"}),t.jsx("rect",{x:"448",y:"151",width:"132",height:"42"}),t.jsx("text",{x:"462",y:"177",children:"LINUX"}),t.jsx("rect",{x:"448",y:"207",width:"132",height:"42"}),t.jsx("text",{x:"462",y:"233",children:"NETBSD"})]})]}),t.jsxs("div",{className:"pkgsrc-terminal",children:[t.jsx("span",{className:"mono",children:"TERMINAL"}),t.jsxs("code",{children:[t.jsx("b",{children:"$"})," pkgin search nginx",t.jsx("br",{}),t.jsx("b",{children:"$"})," pkgin install nginx"]})]}),t.jsx("figcaption",{id:"flow-caption",children:"One framework. Platform-aware packages and tools."})]})})]})}),t.jsx("section",{className:"pkgsrc-principles",children:t.jsx("div",{className:"container",children:t.jsx(L,{children:t.jsxs("div",{className:"pkgsrc-principles__grid",children:[t.jsx("p",{className:"mono",children:"WHAT IS PKGSRC?"}),t.jsxs("div",{children:[t.jsx("h2",{children:"A package framework that travels well."}),t.jsxs("p",{children:["pkgsrc is a framework for building and managing open-source software. Its binary front end, ",t.jsx("code",{children:"pkgin"}),", resolves dependencies so operators can search, install, update, and remove packages with a familiar command set."]})]}),t.jsx("p",{children:"Need a different compile flag or package option? Build directly from source. Need software that does not exist yet? Start with a package Makefile and contribute it upstream."})]})})})}),t.jsxs("section",{className:"pkgsrc-platforms container",id:"platforms",children:[t.jsxs(L,{children:[t.jsx("p",{className:"section-kicker mono",children:"CHOOSE YOUR PLATFORM"}),t.jsxs("h2",{children:["Start from the system",t.jsx("br",{}),"you operate."]})]}),t.jsx("div",{className:"pkgsrc-platforms__list",children:$m.map(([e,o],i)=>t.jsx(L,{delay:i+1,children:t.jsxs(M,{className:"pkgsrc-platform",to:`/pkgsrc/install-on-${e}`,children:[t.jsxs("span",{className:"mono",children:["0",i+1]}),t.jsx("h3",{children:o}),t.jsx("p",{children:e==="illumos"?"Standard and Global Zone tools sets":e==="macos"?"Apple Silicon and Intel packages":e==="linux"?"Enterprise Linux 7.x / x86_64":"NetBSD 10.0 / amd64, signed"}),t.jsx("b",{"aria-hidden":"true",children:"→"})]})},e))})]}),t.jsx("section",{className:"pkgsrc-proof",children:t.jsx("div",{className:"container",children:t.jsx(L,{children:t.jsxs("div",{className:"pkgsrc-proof__panel",children:[t.jsxs("div",{children:[t.jsx("p",{className:"section-kicker mono",children:"INSTALL. CUSTOMIZE. CONTRIBUTE."}),t.jsx("h2",{children:"Choose the right path for the work."}),t.jsx("p",{children:"Use a maintained binary repository for a fast known start, switch to source when your requirements are specific, and turn missing software into a reusable package."})]}),t.jsxs("dl",{children:[t.jsxs("div",{children:[t.jsx("dt",{className:"mono",children:"INSTALL"}),t.jsx("dd",{children:"Bootstrap a binary set, then use pkgin for dependency-aware package operations."})]}),t.jsxs("div",{children:[t.jsx("dt",{className:"mono",children:"CUSTOMIZE"}),t.jsx("dd",{children:"Build from source with package options and compiler settings that fit your estate."})]}),t.jsxs("div",{children:[t.jsx("dt",{className:"mono",children:"CONTRIBUTE"}),t.jsx("dd",{children:"Create a package with the tools and portability patterns shared by pkgsrc."})]})]})]})})})}),t.jsx("section",{className:"pkgsrc-closing container",children:t.jsxs(L,{children:[t.jsx("p",{className:"section-kicker mono",children:"STEWARDSHIP"}),t.jsxs("h2",{children:["Built together.",t.jsx("br",{}),"Maintained by people who use it."]}),t.jsx("p",{children:"pkgsrc began with NetBSD and is developed by an international community. Triton engineers contribute to that shared project while developing and maintaining pkgsrc for SmartOS, illumos, Linux, and macOS."}),t.jsx("p",{children:"We publish binary repositories, bootstrap kits, and platform guides so operators can use this work with a clear installation and upgrade path."}),t.jsxs("div",{className:"pkgsrc-resources","aria-label":"pkgsrc resources",children:[t.jsxs("a",{href:"https://pkgsrc.smartos.org/",target:"_blank",rel:"noreferrer",children:["Triton package documentation ",t.jsx("b",{children:"↗"})]}),t.jsxs("a",{href:"https://github.com/TritonDataCenter/pkgsrc/wiki",target:"_blank",rel:"noreferrer",children:["Triton pkgsrc documentation ",t.jsx("b",{children:"↗"})]}),t.jsxs("a",{href:"https://github.com/NetBSD/pkgsrc",target:"_blank",rel:"noreferrer",children:["Upstream pkgsrc project ",t.jsx("b",{children:"↗"})]}),t.jsxs("a",{href:"https://github.com/TritonDataCenter/pkgsrc/",target:"_blank",rel:"noreferrer",children:["Triton pkgsrc GitHub ",t.jsx("b",{children:"↗"})]}),t.jsxs("a",{href:"https://github.com/TritonDataCenter/pkgsrc/wiki/about:changes",target:"_blank",rel:"noreferrer",children:["Package changelog ",t.jsx("b",{children:"↗"})]}),t.jsxs("a",{href:"https://www.netbsd.org/docs/pkgsrc/submit.html",target:"_blank",rel:"noreferrer",children:["Contribute ",t.jsx("b",{children:"↗"})]}),t.jsxs("a",{href:"https://github.com/TritonDataCenter/pkgbuild/issues",target:"_blank",rel:"noreferrer",children:["Report an issue ",t.jsx("b",{children:"↗"})]})]})]})})]})}function Zl({children:e}){const[o,i]=C.useState("idle"),s=async()=>{try{if(!navigator.clipboard)throw new Error("Clipboard API unavailable");await navigator.clipboard.writeText(e),i("copied")}catch{i("error")}window.setTimeout(()=>i("idle"),1800)},l=o==="copied"?"Commands copied to clipboard.":o==="error"?"Could not copy commands. Select the code manually.":"";return t.jsxs("div",{className:"pkgsrc-code",children:[t.jsx("button",{type:"button",onClick:s,"aria-label":"Copy commands",children:o==="copied"?"Copied":o==="error"?"Copy failed":"Copy"}),t.jsx("span",{className:"visually-hidden",role:"status","aria-live":"polite",children:l}),t.jsx("pre",{children:t.jsx("code",{children:e})})]})}function Xa({platform:e}){const o=Bw[e];return C.useEffect(()=>{const i=window.location.hash?document.getElementById(window.location.hash.slice(1)):null;i instanceof HTMLDetailsElement&&(i.open=!0)},[]),t.jsxs("div",{className:"pkgsrc-guide",children:[t.jsx("section",{className:"pkgsrc-guide__mast",children:t.jsx("div",{className:"container",children:t.jsxs(L,{children:[t.jsx(M,{className:"pkgsrc-crumb mono",to:"/pkgsrc",children:"PKGSRC / INSTALLATION"}),t.jsx("p",{className:"section-kicker mono",children:o.name.toUpperCase()}),t.jsx("h1",{children:o.title}),t.jsx("p",{children:o.summary})]})})}),t.jsxs("div",{className:"container pkgsrc-guide__layout",children:[t.jsxs("aside",{className:"pkgsrc-guide__side","aria-label":"Package set selection",children:[t.jsx("p",{className:"mono",children:"PLATFORMS"}),$m.map(([i,s])=>t.jsx(M,{className:i===e?"is-current":"",to:`/pkgsrc/install-on-${i}`,children:s}
120,i)),t.jsx("a",{href:"#post-install",children:"Post-install commands"}),t.jsx("a",{href:o.downloads,target:"_blank",rel:"noreferrer",children:"Package downloads ↗"})]}),t.jsxs("article",{className:"pkgsrc-guide__article",children:[t.jsx(L,{children:t.jsxs("section",{id:"package-set",children:[t.jsx("p",{className:"section-kicker mono",children:"PACKAGE SET"}),t.jsx("h2",{children:"Choose a known base."}),t.jsx("p",{children:o.packageSet}),o.caveat&&t.jsxs("p",{className:"pkgsrc-callout",children:[t.jsx("strong",{children:"Important."})," ",o.caveat]})]})}),o.kits.map((i,s)=>t.jsx(L,{delay:s+1,children:t.jsxs("section",{className:"pkgsrc-kit",id:i.id,children:[t.jsxs("div",{children:[t.jsxs("span",{className:"mono",children:["0",s+1]}),t.jsx("h2",{children:i.label}),t.jsx("p",{children:i.detail})]}),t.jsx("h3",{children:"Install"}),t.jsx(Zl,{children:i.install}),i.upgrade&&t.jsxs("details",{id:i.id.replace("install","upgrade"),children:[t.jsx("summary",{children:"Upgrade this package set"}),t.jsxs("p",{children:["Use an upgrade kit only when package configuration or signing keys need to change. For normal maintenance, run ",t.jsx("code",{children:"pkgin upgrade"}),"."]}),t.jsx(Zl,{children:i.upgrade})]})]})},i.id)),t.jsx(L,{children:t.jsxs("section",{className:"pkgsrc-operations",id:"post-install",children:[t.jsx("p",{className:"section-kicker mono",children:"POST-INSTALL"}),t.jsxs("h2",{children:["Operate with ",t.jsx("code",{children:"pkgin"}),"."]}),t.jsxs("p",{children:[t.jsx("code",{children:"pkgin"})," is the binary package front end. The underlying ",t.jsx("code",{children:"pkg_add"}),", ",t.jsx("code",{children:"pkg_info"}),", ",t.jsx("code",{children:"pkg_create"}),", and ",t.jsx("code",{children:"pkg_admin"})," tools remain available when you need them."]}),t.jsx(Zl,{children:Hw(e)})]})}),t.jsx(L,{children:t.jsxs("footer",{className:"pkgsrc-guide__footer",children:[t.jsx("p",{children:"Need a different package option or build target?"}),t.jsx("a",{className:"btn btn--outline",href:"https://github.com/TritonDataCenter/pkgsrc/",target:"_blank",rel:"noreferrer",children:"Build from pkgsrc source"})]})})]})]})]})}function Vw(){return t.jsx(Xa,{platform:"illumos"})}function $w(){return t.jsx(Xa,{platform:"macos"})}function Gw(){return t.jsx(Xa,{platform:"linux"})}function qw(){return t.jsx(Xa,{platform:"netbsd"})}function Yw(e,o){const i={};return(e[e.length-1]===""?[...e,""]:e).join((i.padRight?" ":"")+","+(i.padLeft===!1?"":" ")).trim()}const Jw=/^[$_\p{ID_Start}][$_\u{200C}\u{200D}\p{ID_Continue}]*$/u,Kw=/^[$_\p{ID_Start}][-$_\u{200C}\u{200D}\p{ID_Continue}]*$/u,Qw={};function Np(e,o){return(Qw.jsx?Kw:Jw).test(e)}const Xw=/[ \t\n\f\r]/g;function Zw(e){return typeof e=="object"?e.type==="text"?Sp(e.value):!1:Sp(e)}function Sp(e){return e.replace(Xw,"")===""}class so{constructor(o,i,s){this.normal=i,this.property=o,s&&(this.space=s)}}so.prototype.normal={};so.prototype.property={};so.prototype.space=void 0;function Gm(e,o){const i={},s={};for(const l of e)Object.assign(i,l.property),Object.assign(s,l.normal);return new so(i,s,o)}function Nc(e){return e.toLowerCase()}class Nt{constructor(o,i){this.attribute=i,this.property=o}}Nt.prototype.attribute="";Nt.prototype.booleanish=!1;Nt.prototype.boolean=!1;Nt.prototype.commaOrSpaceSeparated=!1;Nt.prototype.commaSeparated=!1;Nt.prototype.defined=!1;Nt.prototype.mustUseProperty=!1;Nt.prototype.number=!1;Nt.prototype.overloadedBoolean=!1;Nt.prototype.property="";Nt.prototype.spaceSeparated=!1;Nt.prototype.space=void 0;let ek=0;const we=xr(),Ke=xr(),Sc=xr(),q=xr(),Le=xr(),gr=xr(),It=xr();function xr(){return 2**++ek}const Tc=Object.freeze(Object.defineProperty({__proto__:null,boolean:we,booleanish:Ke,commaOrSpaceSeparated:It,commaSeparated:gr,number:q,overloadedBoolean:Sc,spaceSeparated:Le},Symbol.toStringTag,{value:"Module"})),ec=Object.keys(Tc);class Kc extends Nt{constructor(o,i,s,l){let c=-1;if(super(o,i),Tp(this,"space",l),typeof s=="number")for(;++c<ec.length;){const u=ec[c];Tp(this,ec[c],(s&Tc[u])===Tc[u])}}}Kc.prototype.defined=!0;function Tp(e,o,i){i&&(e[o]=i)}function ni(e){const o={},i={};for(const[s,l]of Object.entries(e.properties)){const c=new Kc(s,e.transform(e.attributes||{},s),l,e.space);e.mustUseProperty&&e.mustUseProperty.includes(s)&&(c.mustUseProperty=!0),o[s]=c,i[Nc(s)]=s,i[Nc(c.attribute)]=s}return new so(o,i,e.space)}const qm=ni({properties:{ariaActiveDescendant:null,ariaAtomic:Ke,ariaAutoComplete:null,ariaBusy:Ke,ariaChecked:Ke,ariaColCount:q,ariaColIndex:q,ariaColSpan:q,ariaControl
vendor: 4,110 bytes, line 120
120s:Le,ariaCurrent:null,ariaDescribedBy:Le,ariaDetails:null,ariaDisabled:Ke,ariaDropEffect:Le,ariaErrorMessage:null,ariaExpanded:Ke,ariaFlowTo:Le,ariaGrabbed:Ke,ariaHasPopup:null,ariaHidden:Ke,ariaInvalid:null,ariaKeyShortcuts:null,ariaLabel:null,ariaLabelledBy:Le,ariaLevel:q,ariaLive:null,ariaModal:Ke,ariaMultiLine:Ke,ariaMultiSelectable:Ke,ariaOrientation:null,ariaOwns:Le,ariaPlaceholder:null,ariaPosInSet:q,ariaPressed:Ke,ariaReadOnly:Ke,ariaRelevant:null,ariaRequired:Ke,ariaRoleDescription:Le,ariaRowCount:q,ariaRowIndex:q,ariaRowSpan:q,ariaSelected:Ke,ariaSetSize:q,ariaSort:null,ariaValueMax:q,ariaValueMin:q,ariaValueNow:q,ariaValueText:null,role:null},transform(e,o){return o==="role"?o:"aria-"+o.slice(4).toLowerCase()}});function Ym(e,o){return o in e?e[o]:o}function Jm(e,o){return Ym(e,o.toLowerCase())}const tk=ni({attributes:{acceptcharset:"accept-charset",classname:"class",htmlfor:"for",httpequiv:"http-equiv"},mustUseProperty:["checked","multiple","muted","selected"],properties:{abbr:null,accept:gr,acceptCharset:Le,accessKey:Le,action:null,allow:null,allowFullScreen:we,allowPaymentRequest:we,allowUserMedia:we,alpha:we,alt:null,as:null,async:we,autoCapitalize:null,autoComplete:Le,autoFocus:we,autoPlay:we,blocking:Le,capture:null,charSet:null,checked:we,cite:null,className:Le,closedBy:null,colorSpace:null,cols:q,colSpan:q,command:null,commandFor:null,content:null,contentEditable:Ke,controls:we,controlsList:Le,coords:q|gr,crossOrigin:null,data:null,dateTime:null,decoding:null,default:we,defer:we,dir:null,dirName:null,disabled:we,download:Sc,draggable:Ke,encType:null,enterKeyHint:null,fetchPriority:null,form:null,formAction:null,formEncType:null,formMethod:null,formNoValidate:we,formTarget:null,headers:Le,height:q,hidden:Sc,high:q,href:null,hrefLang:null,htmlFor:Le,httpEquiv:Le,id:null,imageSizes:null,imageSrcSet:null,inert:we,inputMode:null,integrity:null,is:null,isMap:we,itemId:null,itemProp:Le,itemRef:Le,itemScope:we,itemType:Le,kind:null,label:null,lang:null,language:null,list:null,loading:null,loop:we,low:q,manifest:null,max:null,maxLength:q,media:null,method:null,min:null,minLength:q,multiple:we,muted:we,name:null,nonce:null,noModule:we,noValidate:we,onAbort:null,onAfterPrint:null,onAuxClick:null,onBeforeMatch:null,onBeforePrint:null,onBeforeToggle:null,onBeforeUnload:null,onBlur:null,onCancel:null,onCanPlay:null,onCanPlayThrough:null,onChange:null,onClick:null,onClose:null,onContextLost:null,onContextMenu:null,onContextRestored:null,onCopy:null,onCueChange:null,onCut:null,onDblClick:null,onDrag:null,onDragEnd:null,onDragEnter:null,onDragExit:null,onDragLeave:null,onDragOver:null,onDragStart:null,onDrop:null,onDurationChange:null,onEmptied:null,onEnded:null,onError:null,onFocus:null,onFormData:null,onHashChange:null,onInput:null,onInvalid:null,onKeyDown:null,onKeyPress:null,onKeyUp:null,onLanguageChange:null,onLoad:null,onLoadedData:null,onLoadedMetadata:null,onLoadEnd:null,onLoadStart:null,onMessage:null,onMessageError:null,onMouseDown:null,onMouseEnter:null,onMouseLeave:null,onMouseMove:null,onMouseOut:null,onMouseOver:null,onMouseUp:null,onOffline:null,onOnline:null,onPageHide:null,onPageShow:null,onPaste:null,onPause:null,onPlay:null,onPlaying:null,onPopState:null,onProgress:null,onRateChange:null,onRejectionHandled:null,onReset:null,onResize:null,onScroll:null,onScrollEnd:null,onSecurityPolicyViolation:null,onSeeked:null,onSeeking:null,onSelect:null,onSlotChange:null,onStalled:null,onStorage:null,onSubmit:null,onSuspend:null,onTimeUpdate:null,onToggle:null,onUnhandledRejection:null,onUnload:null,onVolumeChange:null,onWaiting:null,onWheel:null,open:we,optimum:q,pattern:null,ping:Le,placeholder:null,playsInline:we,popover:null,popoverTarget:null,popoverTargetAction:null,poster:null,preload:null,readOnly:we,referrerPolicy:null,rel:Le,required:we,reversed:we,rows:q,rowSpan:q,sandbox:Le,scope:null,scoped:we,seamless:we,selected:we,shadowRootClonable:we,shadowRootCustomElementRegistry:we,shadowRootDelegatesFocus:we,shadowRootMode:null,shadowRootSerializable:we,shape:null,size:q,sizes:null,slot:null,span:q,spellCheck:Ke,src:null,
120srcDoc:null,srcLang:null,srcSet:null,start:q,step:null,style:null,tabIndex:q,target:null,title:null,translate:null,type:null,typeMustMatch:we,useMap:null,value:Ke,width:q,wrap:null,writingSuggestions:null,align:null,aLink:null,archive:Le,axis:null,background:null,bgColor:null,border:q,borderColor:null,bottomMargin:q,cellPadding:null,cellSpacing:null,char:null,charOff:null,classId:null,clear:null,code:null,codeBase:null,codeType:null,color:null,compact:we,declare:we,event:null,face:null,frame:null,frameBorder:null,hSpace:q,leftMargin:q,link:null,longDesc:null,lowSrc:null,marginHeight:q,marginWidth:q,noResize:we,noHref:we,noShade:we,noWrap:we,object:null,profile:null,prompt:null,rev:null,rightMargin:q,rules:null,scheme:null,scrolling:Ke,standby:null,summary:null,text:null,topMargin:q,valueType:null,version:null,vAlign:null,vLink:null,vSpace:q,allowTransparency:null,autoCorrect:null,autoSave:null,credentialless:we,disablePictureInPicture:we,disableRemotePlayback:we,exportParts:gr,part:Le,prefix:null,property:null,results:q,security:null,unselectable:null},space:"html",transform:Jm}),nk=ni({attributes:{accentHeight:"accent-height",alignmentBaseline:"alignment-baseline",arabicForm:"arabic-form",baselineShift:"baseline-shift",capHeight:"cap-height",className:"class",clipPath:"clip-path",clipRule:"clip-rule",colorInterpolation:"color-interpolation",colorInterpolationFilters:"color-interpolation-filters",colorProfile:"color-profile",colorRendering:"color-rendering",crossOrigin:"crossorigin",dataType:"datatype",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",hrefLang:"hreflang",horizAdvX:"horiz-adv-x",horizOriginX:"horiz-origin-x",horizOriginY:"horiz-origin-y",imageRendering:"image-rendering",letterSpacing:"letter-spacing",lightingColor:"lighting-color",markerEnd:"marker-end",markerMid:"marker-mid",markerStart:"marker-start",maskType:"mask-type",navDown:"nav-down",navDownLeft:"nav-down-left",navDownRight:"nav-down-right",navLeft:"nav-left",navNext:"nav-next",navPrev:"nav-prev",navRight:"nav-right",navUp:"nav-up",navUpLeft:"nav
120-up-left",navUpRight:"nav-up-right",onAbort:"onabort",onActivate:"onactivate",onAfterPrint:"onafterprint",onBeforePrint:"onbeforeprint",onBegin:"onbegin",onCancel:"oncancel",onCanPlay:"oncanplay",onCanPlayThrough:"oncanplaythrough",onChange:"onchange",onClick:"onclick",onClose:"onclose",onCopy:"oncopy",onCueChange:"oncuechange",onCut:"oncut",onDblClick:"ondblclick",onDrag:"ondrag",onDragEnd:"ondragend",onDragEnter:"ondragenter",onDragExit:"ondragexit",onDragLeave:"ondragleave",onDragOver:"ondragover",onDragStart:"ondragstart",onDrop:"ondrop",onDurationChange:"ondurationchange",onEmptied:"onemptied",onEnd:"onend",onEnded:"onended",onError:"onerror",onFocus:"onfocus",onFocusIn:"onfocusin",onFocusOut:"onfocusout",onHashChange:"onhashchange",onInput:"oninput",onInvalid:"oninvalid",onKeyDown:"onkeydown",onKeyPress:"onkeypress",onKeyUp:"onkeyup",onLoad:"onload",onLoadedData:"onloadeddata",onLoadedMetadata:"onloadedmetadata",onLoadStart:"onloadstart",onMessage:"onmessage",onMouseDown:"onmousedown",onMouseEnter:"onmouseenter",onMouseLeave:"onmouseleave",onMouseMove:"onmousemove",onMouseOut:"onmouseout",onMouseOver:"onmouseover",onMouseUp:"onmouseup",onMouseWheel:"onmousewheel",onOffline:"onoffline",onOnline:"ononline",onPageHide:"onpagehide",onPageShow:"onpageshow",onPaste:"onpaste",onPause:"onpause",onPlay:"onplay",onPlaying:"onplaying",onPopState:"onpopstate",onProgress:"onprogress",onRateChange:"onratechange",onRepeat:"onrepeat",onReset:"onreset",onResize:"onresize",onScroll:"onscroll",onSeeked:"onseeked",onSeeking:"onseeking",onSelect:"onselect",onShow:"onshow",onStalled:"onstalled",onStorage:"onstorage",onSubmit:"onsubmit",onSuspend:"onsuspend",onTimeUpdate:"ontimeupdate",onToggle:"ontoggle",onUnload:"onunload",onVolumeChange:"onvolumechange",onWaiting:"onwaiting",onZoom:"onzoom",overlinePosition:"overline-position",overlineThickness:"overline-thickness",paintOrder:"paint-order",panose1:"panose-1",pointerEvents:"pointer-events",referrerPolicy:"referrerpolicy",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",tabIndex:"tabindex",textAnchor:"text-anchor",textDecoration:"text-decoration",textRendering:"text-rendering",transformOrigin:"transform-origin",typeOf:"typeof",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",xHeight:"x-height",playbackOrder:"playbackorder",timelineBegin:"timelinebegin"},properties:{about:It,accentHeight:q,accumulate:null,additive:null,alignmentBaseline:null,alphabetic:q,amplitude:q,arabicForm:null,ascent:q,attributeName:null,attributeType:null,azimuth:q,bandwidth:null,baselineShift:null,baseFrequency:null,baseProfile:null,bbox:null,begin:null,bias:q,by:null,calcMode:null,capHeight:q,className:Le,clip:null,clipPath:null,clipPathUnits:null,clipRule:null,color:null,colorInterpolation:null,colorInterpolationFilters:null,colorProfile:null,colorRendering:null,content:null,contentScriptType:null,contentStyleType:null,crossOrigin:null,cursor:null,cx:null,cy:null,d:null,dataType:null,defaultAction:null,descent:q,diffuseConstant:q,direction:null,display:null,dur:null,divisor:q,dominantBaseline:null,download:we,dx:null,dy:null,edgeMode:null,editable:null,elevation:q,enableBackground:null,end:null,event:null,exponent:q,externalResourcesRequired:null,fill:null,fillOpacity:q,fillRule:null,filter:null,filterRes:null,filterUnits:null,floodColor:null,floodOpacity:null,focusable:null,focusHighlight:null,fontFamily:null,fontSize:null,fontSizeAdjust:null,fontStretch:null,fontStyle:null,fontVariant:null,fontWeight:null,format:null,fr:null,from:null,fx:null,fy:null,g1:gr,g2:gr,glyphName:gr,glyphOrientationHorizontal:null,glyphOrientationVertical:null,glyphRef:null,gradientTransform:null,gradientUnits:null,handler:null,hanging:q,hatchContentUnits:null,hatchUnits:null,height:null,href:null,hrefLang:null,horizAdvX:q,horizOriginX:q,horizOriginY:q,id:null,ideographic:q,imageRendering:null,initialVisibility:null,in:null,in2:null,intercept:q,k:q,k1:q,k2:q,k3:q,k4:q,kernelMatrix:It,kernelUnitLength:null,keyPoints:null,keySplines:null,keyTimes:null,kerning:null,lang:null,lengthAdjust:null,letterSpacing:null,lightingColor:null,limitingConeAngle:q,local:null,markerEnd:null,markerMid:null,markerStart:null,markerHeight:null,markerUnits:null,markerWidth:null,mask:null,maskContentUnits:null,maskType:null,maskUnits:null,mathematical:null,max:null,media:null,mediaCharacterEncoding:null,mediaContentEncodings:null,mediaSize:q,mediaTime:null,method:null,min:null,mode:null,name:null,navDown:null,navDownLeft:null,navDownRight:null,navLeft:null,navNext:null,navPrev:null,navRight:null,navUp:null,navUpLeft:null,navUpRight:null,numOctaves:null,observer:null,offset:null,onAbort:null,onActivate:null,onAfterPrint:null,onBeforePrint:null,onBegin:null,onCancel:null,onCanPlay:null,onCanPlayThrough:null,onChange:null,onClick:null,onClose:null,onCopy:null,onCueChange:null,onCut:null,onDblClick:null,onDrag:null,onDragEnd:null,onDragEnter:null,onDragExit:null,onDragLeave:null,onDragOver:null,onDragStart:null,onDrop:null,onDurationChange:null,onEmptied:null,onEnd:null,onEnded:null,onError:null,onFocus:null,onFocusIn:null,onFocusOut:null,onHashChange:null,onInput:null,onInvalid:null,onKeyDown:null,onKeyPress:null,onKeyUp:null,onLoad:null,onLoadedData:null,onLoadedMetadata:null,onLoadStart:null,onMessage:null,onMouseDown:null,onMouseEnter:null,onMouseLeave:null,onMouseMove:null,onMouseOut:null,onMouseOver:null,onMouseUp:null,onMouseWheel:null,onOffline:null,onOnline:null,onPageHide:null,onPageShow:null,onPaste:null,onPause:null,onPlay:null,onPlaying:null,onPopState:null,onProgress:null,onRateChange:null,onRepeat:null,onReset:null,onResize:null,onScroll:null,onSeeked:null,onSeeking:null,onSelect:null,onShow:null,onStalled:null,onStorage:null,onSubmit:null,onSuspend:null,onTimeUpdate:null,onToggle:null,onUnload:null,onVolumeChange:null,onWaiting:null,on
vendor: 5,823 bytes, lines 120-121
120Zoom:null,opacity:null,operator:null,order:null,orient:null,orientation:null,origin:null,overflow:null,overlay:null,overlinePosition:q,overlineThickness:q,paintOrder:null,panose1:null,path:null,pathLength:q,patternContentUnits:null,patternTransform:null,patternUnits:null,phase:null,ping:Le,pitch:null,playbackOrder:null,pointerEvents:null,points:null,pointsAtX:q,pointsAtY:q,pointsAtZ:q,preserveAlpha:null,preserveAspectRatio:null,primitiveUnits:null,propagate:null,property:It,r:null,radius:null,referrerPolicy:null,refX:null,refY:null,rel:It,rev:It,renderingIntent:null,repeatCount:null,repeatDur:null,requiredExtensions:It,requiredFeatures:It,requiredFonts:It,requiredFormats:It,resource:null,restart:null,result:null,rotate:null,rx:null,ry:null,scale:null,seed:null,shapeRendering:null,side:null,slope:null,snapshotTime:null,specularConstant:q,specularExponent:q,spreadMethod:null,spacing:null,startOffset:null,stdDeviation:null,stemh:null,stemv:null,stitchTiles:null,stopColor:null,stopOpacity:null,strikethroughPosition:q,strikethroughThickness:q,string:null,stroke:null,strokeDashArray:It,strokeDashOffset:null,strokeLineCap:null,strokeLineJoin:null,strokeMiterLimit:q,strokeOpacity:q,strokeWidth:null,style:null,surfaceScale:q,syncBehavior:null,syncBehaviorDefault:null,syncMaster:null,syncTolerance:null,syncToleranceDefault:null,systemLanguage:It,tabIndex:q,tableValues:null,target:null,targetX:q,targetY:q,textAnchor:null,textDecoration:null,textRendering:null,textLength:null,timelineBegin:null,title:null,transformBehavior:null,type:null,typeOf:It,to:null,transform:null,transformOrigin:null,u1:null,u2:null,underlinePosition:q,underlineThickness:q,unicode:null,unicodeBidi:null,unicodeRange:null,unitsPerEm:q,values:null,vAlphabetic:q,vMathematical:q,vectorEffect:null,vHanging:q,vIdeographic:q,version:null,vertAdvY:q,vertOriginX:q,vertOriginY:q,viewBox:null,viewTarget:null,visibility:null,width:null,widths:null,wordSpacing:null,writingMode:null,x:null,x1:null,x2:null,xChannelSelector:null,xHeight:q,y:null,y1:null,y2:null,yChannelSelector:null,z:null,zoomAndPan:null},space:"svg",transform:Ym}),Km=ni({properties:{xLinkActuate:null,xLinkArcRole:null,xLinkHref:null,xLinkRole:null,xLinkShow:null,xLinkTitle:null,xLinkType:null},space:"xlink",transform(e,o){return"xlink:"+o.slice(5).toLowerCase()}}),Qm=ni({attributes:{xmlnsxlink:"xmlns:xlink"},properties:{xmlnsXLink:null,xmlns:null},space:"xmlns",transform:Jm}),Xm=ni({properties:{xmlBase:null,xmlLang:null,xmlSpace:null},space:"xml",transform(e,o){return"xml:"+o.slice(3).toLowerCase()}}),rk={classId:"classID",dataType:"datatype",itemId:"itemID",strokeDashArray:"strokeDasharray",strokeDashOffset:"strokeDashoffset",strokeLineCap:"strokeLinecap",strokeLineJoin:"strokeLinejoin",strokeMiterLimit:"strokeMiterlimit",typeOf:"typeof",xLinkActuate:"xlinkActuate",xLinkArcRole:"xlinkArcrole",xLinkHref:"xlinkHref",xLinkRole:"xlinkRole",xLinkShow:"xlinkShow",xLinkTitle:"xlinkTitle",xLinkType:"xlinkType",xmlnsXLink:"xmlnsXlink"},ik=/[A-Z]/g,Cp=/-[a-z]/g,ok=/^data[-\w.:]+$/i;function ak(e,o){const i=Nc(o);let s=o,l=Nt;if(i in e.normal)return e.property[e.normal[i]];if(i.length>4&&i.slice(0,4)==="data"&&ok.test(o)){if(o.charAt(4)==="-"){const c=o.slice(5).replace(Cp,lk);s="data"+c.charAt(0).toUpperCase()+c.slice(1)}else{const c=o.slice(4);if(!Cp.test(c)){let u=c.replace(ik,sk);u.charAt(0)!=="-"&&(u="-"+u),o="data"+u}}l=Kc}return new l(s,o)}function sk(e){return"-"+e.toLowerCase()}function lk(e){return e.charAt(1).toUpperCase()}const ck=Gm([qm,tk,Km,Qm,Xm],"html"),Qc=Gm([qm,nk,Km,Qm,Xm],"svg");function uk(e){return e.join(" ").trim()}var Jr={},tc,Ep;function dk(){if(Ep)return tc;Ep=1;var e=/\/\*[^*]*\*+([^/*][^*]*\*+)*\//g,o=/\n/g,i=/^\s*/,s=/^(\*?[-#/*\\\w]+(\[[0-9a-z_-]+\])?)\s*/,l=/^:\s*/,c=/^((?:'(?:\\'|.)*?'|"(?:\\"|.)*?"|\([^)]*?\)|[^};])+)/,u=/^[;\s]*/,h=/^\s+|\s+$/g,m=`
121`,f="/",y="*",x="",w="comment",k="declaration";function N(T,_){if(typeof T!="string")throw new TypeError("First argument must be a string");if(!T)return[];_=_||{};var z=1,B=1;function te(ie){var J=ie.match(o);J&&(z+=J.length);var ke=ie.lastIndexOf(m);B=~ke?ie.length-ke:B+ie.length}function Y(){var ie={line:z,column:B};return function(J){return J.position=new F(ie),fe(),J}}function F(ie){this.start=ie,this.end={line:z,column:B},this.source=_.source}F.prototype.content=T;function ne(ie){var J=new Error(_.source+":"+z+":"+B+": "+ie);if(J.reason=ie,J.filename=_.source,J.line=z,J.column=B,J.source=T,!_.silent)throw J}function ue(ie){var J=ie.exec(T);if(J){var ke=J[0];return te(ke),T=T.slice(ke.length),J}}function fe(){ue(i)}function R(ie){var J;for(ie=ie||[];J=ee();)J!==!1&&ie.push(J);return ie}function ee(){var ie=Y();if(!(f!=T.charAt(0)||y!=T.charAt(1))){for(var J=2;x!=T.charAt(J)&&(y!=T.charAt(J)||f!=T.charAt(J+1));)++J;if(J+=2,x===T.charAt(J-1))return ne("End of comment missing");var ke=T.slice(2,J-2);return B+=2,te(ke),T=T.slice(J),B+=2,ie({type:w,comment:ke})}}function Z(){var ie=Y(),J=ue(s);if(J){if(ee(),!ue(l))return ne("property missing ':'");var ke=ue(c),je=ie({type:k,property:I(J[0].replace(e,x)),value:ke?I(ke[0].replace(e,x)):x});return ue(u),je}}function ye(){var ie=[];R(ie);for(var J;J=Z();)J!==!1&&(ie.push(J),R(ie));return ie}return fe(),ye()}function I(T){return T?T.replace(h,x):x}return tc=N,tc}var _p;function hk(){if(_p)return Jr;_p=1;var e=Jr&&Jr.__importDefault||function(s){return s&&s.__esModule?s:{default:s}};Object.defineProperty(Jr,"__esModule",{value:!0}),Jr.default=i;const o=e(dk());function i(s,l){let c=null;if(!s||typeof s!="string")return c;const u=(0,o.default)(s),h=typeof l=="function";return u.forEach(m=>{if(m.type!=="declaration")return;const{property:f,value:y}=m;h?l(f,y,m):y&&(c=c||{},c[f]=y)}),c}return Jr}var Yi={},Ip;function pk(){if(Ip)return Yi;Ip=1,Object.defineProperty(Yi,"__esModule",{value:!0}
vendor: 3,302 bytes, line 121
121),Yi.camelCase=void 0;var e=/^--[a-zA-Z0-9_-]+$/,o=/-([a-z])/g,i=/^[^-]+$/,s=/^-(webkit|moz|ms|o|khtml)-/,l=/^-(ms)-/,c=function(f){return!f||i.test(f)||e.test(f)},u=function(f,y){return y.toUpperCase()},h=function(f,y){return"".concat(y,"-")},m=function(f,y){return y===void 0&&(y={}),c(f)?f:(f=f.toLowerCase(),y.reactCompat?f=f.replace(l,h):f=f.replace(s,h),f.replace(o,u))};return Yi.camelCase=m,Yi}var Ji,Pp;function mk(){if(Pp)return Ji;Pp=1;var e=Ji&&Ji.__importDefault||function(l){return l&&l.__esModule?l:{default:l}},o=e(hk()),i=pk();function s(l,c){var u={};return!l||typeof l!="string"||(0,o.default)(l,function(h,m){h&&m&&(u[(0,i.camelCase)(h,c)]=m)}),u}return s.default=s,Ji=s,Ji}var fk=mk();const gk=Lc(fk),Zm=ef("end"),Xc=ef("start");function ef(e){return o;function o(i){const s=i&&i.position&&i.position[e]||{};if(typeof s.line=="number"&&s.line>0&&typeof s.column=="number"&&s.column>0)return{line:s.line,column:s.column,offset:typeof s.offset=="number"&&s.offset>-1?s.offset:void 0}}}function yk(e){const o=Xc(e),i=Zm(e);if(o&&i)return{start:o,end:i}}function Xi(e){return!e||typeof e!="object"?"":"position"in e||"type"in e?Ap(e.position):"start"in e||"end"in e?Ap(e):"line"in e||"column"in e?Cc(e):""}function Cc(e){return Rp(e&&e.line)+":"+Rp(e&&e.column)}function Ap(e){return Cc(e&&e.start)+"-"+Cc(e&&e.end)}function Rp(e){return e&&typeof e=="number"?e:1}class ht extends Error{constructor(o,i,s){super(),typeof i=="string"&&(s=i,i=void 0);let l="",c={},u=!1;if(i&&("line"in i&&"column"in i?c={place:i}:"start"in i&&"end"in i?c={place:i}:"type"in i?c={ancestors:[i],place:i.position}:c={...i}),typeof o=="string"?l=o:!c.cause&&o&&(u=!0,l=o.message,c.cause=o),!c.ruleId&&!c.source&&typeof s=="string"){const m=s.indexOf(":");m===-1?c.ruleId=s:(c.source=s.slice(0,m),c.ruleId=s.slice(m+1))}if(!c.place&&c.ancestors&&c.ancestors){const m=c.ancestors[c.ancestors.length-1];m&&(c.place=m.position)}const h=c.place&&"start"in c.place?c.place.start:c.place;this.ancestors=c.ancestors||void 0,this.cause=c.cause||void 0,this.column=h?h.column:void 0,this.fatal=void 0,this.file="",this.message=l,this.line=h?h.line:void 0,this.name=Xi(c.place)||"1:1",this.place=c.place||void 0,this.reason=this.message,this.ruleId=c.ruleId||void 0,this.source=c.source||void 0,this.stack=u&&c.cause&&typeof c.cause.stack=="string"?c.cause.stack:"",this.actual=void 0,this.expected=void 0,this.note=void 0,this.url=void 0}}ht.prototype.file="";ht.prototype.name="";ht.prototype.reason="";ht.prototype.message="";ht.prototype.stack="";ht.prototype.column=void 0;ht.prototype.line=void 0;ht.prototype.ancestors=void 0;ht.prototype.cause=void 0;ht.prototype.fatal=void 0;ht.prototype.place=void 0;ht.prototype.ruleId=void 0;ht.prototype.source=void 0;const Zc={}.hasOwnProperty,xk=new Map,vk=/[A-Z]/g,wk=new Set(["table","tbody","thead","tfoot","tr"]),kk=new Set(["td","th"]),tf="https://github.com/syntax-tree/hast-util-to-jsx-runtime";function jk(e,o){if(!o||o.Fragment===void 0)throw new TypeError("Expected `Fragment` in options");const i=o.filePath||void 0;let s;if(o.development){if(typeof o.jsxDEV!="function")throw new TypeError("Expected `jsxDEV` in options when `development: true`");s=Ik(i,o.jsxDEV)}else{if(typeof o.jsx!="function")throw new TypeError("Expected `jsx` in production options");
vendor: 10,542 bytes, line 121
121if(typeof o.jsxs!="function")throw new TypeError("Expected `jsxs` in production options");s=_k(i,o.jsx,o.jsxs)}const l={Fragment:o.Fragment,ancestors:[],components:o.components||{},create:s,elementAttributeNameCase:o.elementAttributeNameCase||"react",evaluater:o.createEvaluater?o.createEvaluater():void 0,filePath:i,ignoreInvalidStyle:o.ignoreInvalidStyle||!1,passKeys:o.passKeys!==!1,passNode:o.passNode||!1,schema:o.space==="svg"?Qc:ck,stylePropertyNameCase:o.stylePropertyNameCase||"dom",tableCellAlignToStyle:o.tableCellAlignToStyle!==!1},c=nf(l,e,void 0);return c&&typeof c!="string"?c:l.create(e,l.Fragment,{children:c||void 0},void 0)}function nf(e,o,i){if(o.type==="element")return bk(e,o,i);if(o.type==="mdxFlowExpression"||o.type==="mdxTextExpression")return Nk(e,o);if(o.type==="mdxJsxFlowElement"||o.type==="mdxJsxTextElement")return Tk(e,o,i);if(o.type==="mdxjsEsm")return Sk(e,o);if(o.type==="root")return Ck(e,o,i);if(o.type==="text")return Ek(e,o)}function bk(e,o,i){const s=e.schema;let l=s;o.tagName.toLowerCase()==="svg"&&s.space==="html"&&(l=Qc,e.schema=l),e.ancestors.push(o);const c=of(e,o.tagName,!1),u=Pk(e,o);let h=tu(e,o);return wk.has(o.tagName)&&(h=h.filter(function(m){return typeof m=="string"?!Zw(m):!0})),rf(e,u,c,o),eu(u,h),e.ancestors.pop(),e.schema=s,e.create(o,c,u,i)}function Nk(e,o){if(o.data&&o.data.estree&&e.evaluater){const s=o.data.estree.body[0];return s.type,e.evaluater.evaluateExpression(s.expression)}ro(e,o.position)}function Sk(e,o){if(o.data&&o.data.estree&&e.evaluater)return e.evaluater.evaluateProgram(o.data.estree);ro(e,o.position)}function Tk(e,o,i){const s=e.schema;let l=s;o.name==="svg"&&s.space==="html"&&(l=Qc,e.schema=l),e.ancestors.push(o);const c=o.name===null?e.Fragment:of(e,o.name,!0),u=Ak(e,o),h=tu(e,o);return rf(e,u,c,o),eu(u,h),e.ancestors.pop(),e.schema=s,e.create(o,c,u,i)}function Ck(e,o,i){const s={};return eu(s,tu(e,o)),e.create(o,e.Fragment,s,i)}function Ek(e,o){return o.value}function rf(e,o,i,s){typeof i!="string"&&i!==e.Fragment&&e.passNode&&(o.node=s)}function eu(e,o){if(o.length>0){const i=o.length>1?o:o[0];i&&(e.children=i)}}function _k(e,o,i){return s;function s(l,c,u,h){const f=Array.isArray(u.children)?i:o;return h?f(c,u,h):f(c,u)}}function Ik(e,o){return i;function i(s,l,c,u){const h=Array.isArray(c.children),m=Xc(s);return o(l,c,u,h,{columnNumber:m?m.column-1:void 0,fileName:e,lineNumber:m?m.line:void 0},void 0)}}function Pk(e,o){const i={};let s,l;for(l in o.properties)if(l!=="children"&&Zc.call(o.properties,l)){const c=Rk(e,l,o.properties[l]);if(c){const[u,h]=c;e.tableCellAlignToStyle&&u==="align"&&typeof h=="string"&&kk.has(o.tagName)?s=h:i[u]=h}}if(s){const c=i.style||(i.style={});c[e.stylePropertyNameCase==="css"?"text-align":"textAlign"]=s}return i}function Ak(e,o){const i={};for(const s of o.attributes)if(s.type==="mdxJsxExpressionAttribute")if(s.data&&s.data.estree&&e.evaluater){const c=s.data.estree.body[0];c.type;const u=c.expression;u.type;const h=u.properties[0];h.type,Object.assign(i,e.evaluater.evaluateExpression(h.argument))}else ro(e,o.position);else{const l=s.name;let c;if(s.value&&typeof s.value=="object")if(s.value.data&&s.value.data.estree&&e.evaluater){const h=s.value.data.estree.body[0];h.type,c=e.evaluater.evaluateExpression(h.expression)}else ro(e,o.position);else c=s.value===null?!0:s.value;i[l]=c}return i}function tu(e,o){const i=[];let s=-1;const l=e.passKeys?new Map:xk;for(;++s<o.children.length;){const c=o.children[s];let u;if(e.passKeys){const m=c.type==="element"?c.tagName:c.type==="mdxJsxFlowElement"||c.type==="mdxJsxTextElement"?c.name:void 0;if(m){const f=l.get(m)||0;u=m+"-"+f,l.set(m,f+1)}}const h=nf(e,c,u);h!==void 0&&i.push(h)}return i}function Rk(e,o,i){const s=ak(e.schema,o);if(!(i==null||typeof i=="number"&&Number.isNaN(i))){if(Array.isArray(i)&&(i=s.commaSeparated?Yw(i):uk(i)),s.property==="style"){let l=typeof i=="object"?i:Ok(e,String(i));return e.stylePropertyNameCase==="css"&&(l=Lk(l)),["style",l]}return[e.elementAttributeNameCase==="react"&&s.space?rk[s.property]||s.property:s.attribute,i]}}function Ok(e,o){try{return gk(o,{reactCompat:!0})}catch(i){if(e.ignoreInvalidStyle)return{};const s=i,l=new ht("Cannot parse `style` attribute",{ancestors:e.ancestors,cause:s,ruleId:"style",source:"hast-util-to-jsx-runtime"});throw l.file=e.filePath||void 0,l.url=tf+"#cannot-parse-style-attribute",l}}function of(e,o,i){let s;if(!i)s={type:"Literal",value:o};else if(o.includes(".")){const l=o.split(".");let c=-1,u;for(;++c<l.length;){const h=Np(l[c])?{type:"Identifier",name:l[c]}:{type:"Literal",value:l[c]};u=u?{type:"MemberExpression",object:u,property:h,computed:!!(c&&h.type==="Literal"),optional:!1}:h}s=u}else s=Np(o)&&!/^[a-z]/.test(o)?{type:"Identifier",name:o}:{type:"Literal",value:o};if(s.type==="Literal"){const l=s.value;return Zc.call(e.components,l)?e.components[l]:l}if(e.evaluater)return e.evaluater.evaluateExpression(s);ro(e)}function ro(e,o){const i=new ht("Cannot handle MDX estrees without `createEvaluater`",{ancestors:e.ancestors,place:o,ruleId:"mdx-estree",source:"hast-util-to-jsx-runtime"});throw i.file=e.filePath||void 0,i.url=tf+"#cannot-handle-mdx-estrees-without-createevaluater",i}function Lk(e){const o={};let i;for(i in e)Zc.call(e,i)&&(o[Dk(i)]=e[i]);return o}function Dk(e){let o=e.replace(vk,Mk);return o.slice(0,3)==="ms-"&&(o="-"+o),o}function Mk(e){return"-"+e.toLowerCase()}const nc={action:["form"],cite:["blockquote","del","ins","q"],data:["object"],formAction:["button","input"],href:["a","area","base","link"],icon:["menuitem"],itemId:null,manifest:["html"],ping:["a","area"],poster:["video"],src:["audio","embed","iframe","img","input","script","source","track","video"]},Fk={};function nu(e,o){const i=Fk,s=typeof i.includeImageAlt=="boolean"?i.includeImageAlt:!0,l=typeof i.includeHtml=="boolean"?i.includeHtml:!0;return af(e,s,l)}function af(e,o,i){if(zk(e)){if("value"in e)return e.type==="html"&&!i?"":e.value;if(o&&"alt"in e&&e.alt)return e.alt;if("children"in e)return Op(e.children,o,i)}return Array.isArray(e)?Op(e,o,i):""}function Op(e,o,i){const s=[];let l=-1;for(;++l<e.length;)s[l]=af(e[l],o,i);return s.join("")}function zk(e){return!!(e&&typeof e=="object")}const Lp=document.createElement("i");function ru(e){const o="&"+e+";";Lp.innerHTML=o;const i=Lp.textContent;return i.charCodeAt(i.length-1)===59&&e!=="semi"||i===o?!1:i}function Pt(e,o,i,s){const l=e.length;let c=0,u;if(o<0?o=-o>l?0:l+o:o=o>l?l:o,i=i>0?i:0,s.length<1e4)u=Array.from(s),u.unshift(o,i),e.splice(...u);else for(i&&e.splice(o,i);c<s.length;)u=s.slice(c,c+1e4),u.unshift(o,0),e.splice(...u),c+=1e4,o+=1e4}function Bt(e,o){return e.length>0?(Pt(e,e.length,0,o),e):o}const Dp={}.hasOwnProperty;function sf(e){const o={};let i=-1;for(;++i<e.length;)Bk(o,e[i]);return o}function Bk(e,o){let i;for(i in o){const l=(Dp.call(e,i)?e[i]:void 0)||(e[i]={}),c=o[i];let u;if(c)for(u in c){Dp.call(l,u)||(l[u]=[]);const h=c[u];Uk(l[u],Array.isArray(h)?h:h?[h]:[])}}}function Uk(e,o){let i=-1;const s=[];for(;++i<o.length;)(o[i].add==="after"?e:s).push(o[i]);Pt(e,0,0,s)}function lf(e,o){const i=Number.parseInt(e,o);return i<9||i===11||i>13&&i<32||i>126&&i<160||i>55295&&i<57344||i>64975&&i<65008||(i&65535)===65535||(i&65535)===65534||i>1114111?"�":String.fromCodePoint(i)}function Zt(e){return e.replace(/[\t\n\r ]+/g," ").replace(/^ | $/g,"").toLowerCase().toUpperCase()}const ft=Jn(/[A-Za-z]/),dt=Jn(/[\dA-Za-z]/),Hk=Jn(/[#-'*+\--9=?A-Z^-~]/);function Va(e){return e!==null&&(e<32||e===127)}const Ec=Jn(/\d/),Wk=Jn(/[\dA-Fa-f]/),Vk=Jn(/[!-/:-@[-`{-~]/);function pe(e){return e!==null&&e<-2}function De(e){return e!==null&&(e<0||e===32)}function Ce(e){return e===-2||e===-1||e===32}const Za=Jn(new RegExp("\\p{P}|\\p{S}","u")),yr=Jn(/\s/);function Jn(e){return o;function o(i){return i!==null&&i>-1&&e.test(String.fromCharCode(i))}}function ri(e){const o=[];let i=-1,s=0,l=0;for(;++i<e.length;){const c=e.charCodeAt(i);let u="";if(c===37&&dt(e.charCodeAt(i+1))&&dt(e.charCodeAt(i+2)))l=2;else if(c<128)/[!#$&-;=?-Z_a-z~]/.test(String.fromCharCode(c))||(u=String.fromCharCode(c));else if(c>55295&&c<57344){const h=e.charCodeAt(i+1);c<56320&&h>56319&&h<57344?(u=String.fromCharCode(c,h),l=1):u="�"}else u=String.fromCharCode(c);u&&(o.push(e.slice(s,i),encodeURIComponent(u)),s=i+l+1,u=""),l&&(i+=l,l=0)}return o.join("")+e.slice(s)}function Ee(e,o,i,s){const l=s?s-1:Number.POSITIVE_INFINITY;let c=0;return u;function u(m){return Ce(m)?(e.enter(i),h(m)):o(m)}function h(m){return Ce(m)&&c++<l?(e.consume(m),h):(e.exit(i),o(m))}}const $k={tokenize:Gk};function Gk(e){const o=e.attempt(this.parser.constructs.contentInitial,s,l);let i;return o;function s(h){if(h===null){e.consume(h);return}return e.enter("lineEnding"),e.consume(h),e.exit("lineEnding"),Ee(e,o,"linePrefix")}function l(h){return e.enter("paragraph"),c(h)}function c(h){const m=e.enter("chunkText",{contentType:"text",previous:i});return i&&(i.next=m),i=m,u(h)}function u(h){if(h===null){e.exit("chunkText"),e.exit("paragraph"),e.consume(h);return}return pe(h)?(e.consume(h),e.exit("chunkText"),c):(e.consume(h),u)}}const qk={tokenize:Yk},Mp={tokenize:Jk};function Yk(e){const o=this,i=[];let s=0,l,c,u;return h;function h(B){if(s<i.length){const te=i[s];return o.containerState=te[1],e.attempt(te[0].continuation,m,f)(B)}return f(B)}function m(B){if(s++,o.containerState._closeFlow){o.containerState._closeFlow=void 0,l&&z();const te=o.events.length;let Y=te,F;for(;Y--;)if(o.events[Y][0]==="exit"&&o.events[Y][1].type==="chunkFlow"){F=o.events[Y][1].end;break}_(s);let ne=te;for(;ne<o.events.length;)o.events[ne][1].end={...F},ne++;return Pt(o.events,Y+1,0,o.events.slice(te)),o.events.length=ne,f(B)}return h(B)}function f(B){if(s===i.length){if(!l)return w(B);if(l.currentConstruct&&l.currentConstruct.concrete)return N(B);o.interrupt=!!(l.currentConstruct&&!l._gfmTableDynamicInterruptHack)}return o.containerState={},e.check(Mp,y,x)(B)}function y(B){return l&&z(),_(s),w(B)}function x(B){return o.parser.lazy[o.now().line]=s!==i.length,u=o.now().offset,N(B)}function w(B){return o.containerState={},e.attempt(Mp,k,N)(B)}function k(B){return s++,i.push([o.currentConstruct,o.containerState]),w(B)}function N(B){if(B===null){l&&z(),_(0),e.consume(B);return}return l=l||o.parser.flow(o.now()),e.enter("chunkFlow",{_tokenizer:l,contentType:"flow",previous:c}),I(B)}function I(B){if(B===null){T(e.exit("chunkFlow"),!0),_(0),e.consume(B);return}return pe(B)?(e.consume(B),T(e.exit("chunkFlow")),s=0,o.interrupt=void 0,h):(e.consume(B),I)}function T(B,te){const Y=o.sliceStream(B);
vendor: 6,675 bytes, line 121
121if(te&&Y.push(null),B.previous=c,c&&(c.next=B),c=B,l.defineSkip(B.start),l.write(Y),o.parser.lazy[B.start.line]){let F=l.events.length;for(;F--;)if(l.events[F][1].start.offset<u&&(!l.events[F][1].end||l.events[F][1].end.offset>u))return;const ne=o.events.length;let ue=ne,fe,R;for(;ue--;)if(o.events[ue][0]==="exit"&&o.events[ue][1].type==="chunkFlow"){if(fe){R=o.events[ue][1].end;break}fe=!0}for(_(s),F=ne;F<o.events.length;)o.events[F][1].end={...R},F++;Pt(o.events,ue+1,0,o.events.slice(ne)),o.events.length=F}}function _(B){let te=i.length;for(;te-- >B;){const Y=i[te];o.containerState=Y[1],Y[0].exit.call(o,e)}i.length=B}function z(){l.write([null]),c=void 0,l=void 0,o.containerState._closeFlow=void 0}}function Jk(e,o,i){return Ee(e,e.attempt(this.parser.constructs.document,o,i),"linePrefix",this.parser.constructs.disable.null.includes("codeIndented")?void 0:4)}function Xr(e){if(e===null||De(e)||yr(e))return 1;if(Za(e))return 2}function es(e,o,i){const s=[];let l=-1;for(;++l<e.length;){const c=e[l].resolveAll;c&&!s.includes(c)&&(o=c(o,i),s.push(c))}return o}const _c={name:"attention",resolveAll:Kk,tokenize:Qk};function Kk(e,o){let i=-1,s,l,c,u,h,m,f,y;for(;++i<e.length;)if(e[i][0]==="enter"&&e[i][1].type==="attentionSequence"&&e[i][1]._close){for(s=i;s--;)if(e[s][0]==="exit"&&e[s][1].type==="attentionSequence"&&e[s][1]._open&&o.sliceSerialize(e[s][1]).charCodeAt(0)===o.sliceSerialize(e[i][1]).charCodeAt(0)){if((e[s][1]._close||e[i][1]._open)&&(e[i][1].end.offset-e[i][1].start.offset)%3&&!((e[s][1].end.offset-e[s][1].start.offset+e[i][1].end.offset-e[i][1].start.offset)%3))continue;m=e[s][1].end.offset-e[s][1].start.offset>1&&e[i][1].end.offset-e[i][1].start.offset>1?2:1;const x={...e[s][1].end},w={...e[i][1].start};Fp(x,-m),Fp(w,m),u={type:m>1?"strongSequence":"emphasisSequence",start:x,end:{...e[s][1].end}},h={type:m>1?"strongSequence":"emphasisSequence",start:{...e[i][1].start},end:w},c={type:m>1?"strongText":"emphasisText",start:{...e[s][1].end},end:{...e[i][1].start}},l={type:m>1?"strong":"emphasis",start:{...u.start},end:{...h.end}},e[s][1].end={...u.start},e[i][1].start={...h.end},f=[],e[s][1].end.offset-e[s][1].start.offset&&(f=Bt(f,[["enter",e[s][1],o],["exit",e[s][1],o]])),f=Bt(f,[["enter",l,o],["enter",u,o],["exit",u,o],["enter",c,o]]),f=Bt(f,es(o.parser.constructs.insideSpan.null,e.slice(s+1,i),o)),f=Bt(f,[["exit",c,o],["enter",h,o],["exit",h,o],["exit",l,o]]),e[i][1].end.offset-e[i][1].start.offset?(y=2,f=Bt(f,[["enter",e[i][1],o],["exit",e[i][1],o]])):y=0,Pt(e,s-1,i-s+3,f),i=s+f.length-y-2;break}}for(i=-1;++i<e.length;)e[i][1].type==="attentionSequence"&&(e[i][1].type="data");return e}function Qk(e,o){const i=this.parser.constructs.attentionMarkers.null,s=this.previous,l=Xr(s);let c;return u;function u(m){return c=m,e.enter("attentionSequence"),h(m)}function h(m){if(m===c)return e.consume(m),h;const f=e.exit("attentionSequence"),y=Xr(m),x=!y||y===2&&l||i.includes(m),w=!l||l===2&&y||i.includes(s);return f._open=!!(c===42?x:x&&(l||!w)),f._close=!!(c===42?w:w&&(y||!x)),o(m)}}function Fp(e,o){e.column+=o,e.offset+=o,e._bufferIndex+=o}const Xk={name:"autolink",tokenize:Zk};function Zk(e,o,i){let s=0;return l;function l(k){return e.enter("autolink"),e.enter("autolinkMarker"),e.consume(k),e.exit("autolinkMarker"),e.enter("autolinkProtocol"),c}function c(k){return ft(k)?(e.consume(k),u):k===64?i(k):f(k)}function u(k){return k===43||k===45||k===46||dt(k)?(s=1,h(k)):f(k)}function h(k){return k===58?(e.consume(k),s=0,m):(k===43||k===45||k===46||dt(k))&&s++<32?(e.consume(k),h):(s=0,f(k))}function m(k){return k===62?(e.exit("autolinkProtocol"),e.enter("autolinkMarker"),e.consume(k),e.exit("autolinkMarker"),e.exit("autolink"),o):k===null||k===32||k===60||Va(k)?i(k):(e.consume(k),m)}function f(k){return k===64?(e.consume(k),y):Hk(k)?(e.consume(k),f):i(k)}function y(k){return dt(k)?x(k):i(k)}function x(k){return k===46?(e.consume(k),s=0,y):k===62?(e.exit("autolinkProtocol").type="autolinkEmail",e.enter("autolinkMarker"),e.consume(k),e.exit("autolinkMarker"),e.exit("autolink"),o):w(k)}function w(k){if((k===45||dt(k))&&s++<63){const N=k===45?w:x;return e.consume(k),N}return i(k)}}const lo={partial:!0,tokenize:ej};function ej(e,o,i){return s;function s(c){return Ce(c)?Ee(e,l,"linePrefix")(c):l(c)}function l(c){return c===null||pe(c)?o(c):i(c)}}const cf={continuation:{tokenize:nj},exit:rj,name:"blockQuote",tokenize:tj};function tj(e,o,i){const s=this;return l;function l(u){if(u===62){const h=s.containerState;return h.open||(e.enter("blockQuote",{_container:!0}),h.open=!0),e.enter("blockQuotePrefix"),e.enter("blockQuoteMarker"),e.consume(u),e.exit("blockQuoteMarker"),c}return i(u)}function c(u){return Ce(u)?(e.enter("blockQuotePrefixWhitespace"),e.consume(u),e.exit("blockQuotePrefixWhitespace"),e.exit("blockQuotePrefix"),o):(e.exit("blockQuotePrefix"),o(u))}}function nj(e,o,i){const s=this;return l;function l(u){return Ce(u)?Ee(e,c,"linePrefix",s.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(u):c(u)}function c(u){return e.attempt(cf,o,i)(u)}}function rj(e){e.exit("blockQuote")}const uf={name:"characterEscape",tokenize:ij};function ij(e,o,i){return s;function s(c){return e.enter("characterEscape"),e.enter("escapeMarker"),e.consume(c),e.exit("escapeMarker"),l}function l(c){return Vk(c)?(e.enter("characterEscapeValue"),e.consume(c),e.exit("characterEscapeValue"),e.exit("characterEscape"),o):i(c)}}const df={name:"characterReference",tokenize:oj};function oj(e,o,i){const s=this;let l=0,c,u;return h;function h(x){return e.enter("characterReference"),e.enter("characterReferenceMarker"),e.consume(x),e.exit("characterReferenceMarker"),m}function m(x){return x===35?(e.enter("characterReferenceMarkerNumeric"),e.consume(x),e.exit("characterReferenceMarkerNumeric"),f):(e.enter("characterReferenceValue"),c=31,u=dt,y(x))}function f(x){return x===88||x===120?(e.enter("characterReferenceMarkerHexadecimal"),e.consume(x),e.exit("characterReferenceMarkerHexadecimal"),e.enter("characterReferenceValue"),c=6,u=Wk,y):(e.enter("characterReferenceValue"),c=7,u=Ec,y(x))}function y(x){if(x===59&&l){const w=e.exit("characterReferenceValue");return u===dt&&!ru(s.sliceSerialize(w))?i(x):(e.enter("characterReferenceMarker"),e.consume(x),e.exit("characterReferenceMarker"),e.exit("characterReference"),o)}return u(x)&&l++<c?(e.consume(x),y):i(x)}}const zp={partial:!0,tokenize:sj},Bp={concrete:!0,name:"codeFenced",tokenize:aj};function aj(e,o,i){const s=this,l={partial:!0,tokenize:Y};let c=0,u=0,h;return m;function m(F){return f(F)}function f(F){const ne=s.events[s.events.length-1];return c=ne&&ne[1].type==="linePrefix"?ne[2].sliceSerialize(ne[1],!0).length:0,h=F,e.enter("co
121deFenced"),e.enter("codeFencedFence"),e.enter("codeFencedFenceSequence"),y(F)}function y(F){return F===h?(u++,e.consume(F),y):u<3?i(F):(e.exit("codeFencedFenceSequence"),Ce(F)?Ee(e,x,"whitespace")(F):x(F))}function x(F){return F===null||pe(F)?(e.exit("codeFencedFence"),s.interrupt?o(F):e.check(zp,I,te)(F)):(e.enter("codeFencedFenceInfo"),e.enter("chunkString",{contentType:"string"}),w(F))}function w(F){return F===null||pe(F)?(e.exit("chunkString"),e.exit("codeFencedFenceInfo"),x(F)):Ce(F)?(e.exit("chunkString"),e.exit("codeFencedFenceInfo"),Ee(e,k,"whitespace")(F)):F===96&&F===h?i(F):(e.consume(F),w)}function k(F){return F===null||pe(F)?x(F):(e.enter("codeFencedFenceMeta"),e.enter("chunkString",{contentType:"string"}),N(F))}function N(F){return F===null||pe(F)?(e.exit("chunkString"),e.exit("codeFencedFenceMeta"),x(F)):F===96&&F===h?i(F):(e.consume(F),N)}function I(F){return e.attempt(l,te,T)(F)}function T(F){return e.enter("lineEnding"),e.consume(F),e.exit("lineEnding"),_}function _(F){return c>0&&Ce(F)?Ee(e,z,"linePrefix",c+1)(F):z(F)}function z(F){return F===null||pe(F)?e.check(zp,I,te)(F):(e.enter("codeFlowValue"),B(F))}function B(F){return F===null||pe(F)?(e.exit("codeFlowValue"),z(F)):(e.consume(F),B)}function te(F){return e.exit("codeFenced"),o(F)}function Y(F,ne,ue){let fe=0;return R;function R(J){return F.enter("lineEnding"),F.consume(J),F.exit("lineEnding"),ee}function ee(J){return F.enter("codeFencedFence"),Ce(J)?Ee(F,Z,"linePrefix",s.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(J):Z(J)}function Z(J){return J===h?(F.enter("codeFencedFenceSequence"),ye(J)):ue(J)}function ye(J){return J===h?(fe++,F.consume(J),ye):fe>=u?(F.exit("codeFencedFenceSequence"),Ce(J)?Ee(F,ie,"whitespace")(J):ie(J)):ue(J)}function ie(J){return J===null||pe(J)?(F.exit("codeFencedFence"),ne(J)):ue(J)}}}function sj(e,o,i){const s=this;return l;function l(u){return u===null?i(u):(e.enter("lineEnding"),e.consume(u),e.exit("lineEnding"),c)}function c(u){return s.parser.lazy[s.now().line]?i(u):o(u)}}const rc={name:"codeIndented",tokenize:cj},lj={partial:!0,tokenize:uj};function cj(e,o,i){const s=this;return l;function l(f){return e.enter("codeIndented"),Ee(e,c,"linePrefix",5)(f)}function c(f){const y=s.events[s.events.length-1];return y&&y[1].type==="linePrefix"&&y[2].sliceSerialize(y[1],!0).length>=4?u(f):i(f)}function u(f){return f===null?m(f):pe(f)?e.attempt(lj,u,m)(f):(e.enter("codeFlowValue"),h(f))}function h(f){return f===null||pe(f)?(e.exit("codeFlowValue"),u(f)):(e.consume(f),h)}function m(f){return e.exit("codeIndented"),o(f)}}function uj(e,o,i){const s=this;return l;function l(u){return s.parser.lazy[s.now().line]?i(u):pe(u)?(e.enter("lineEnding"),e.consume(u),e.exit("lineEnding"),l):Ee(e,c,"linePrefix",5)(u)}function c(u){const h=s.events[s.events.length-1];return h&&h[1].type==="linePrefix"&&h[2].sliceSerialize(h[1],!0).length>=4?o(u):pe(u)?l(u):i(u)}}const dj={name:"codeText",previous:pj,resolve:hj,tokenize:mj};function hj(e){let o=e.length-4,i=3,s,l;if((e[i][1].type==="lineEnding"||e[i][1].type==="space")&&(e[o][1].type==="lineEnding"||e[o][1].type==="space")){for(s=i;++s<o;)if(e[s][1].type==="codeTextData"){e[i][1].type="codeTextPadding",e[o][1].type="codeTextPadding",i+=2,o-=2;break}}for(s=i-1,o++;++s<=o;)l===void 0?s!==o&&e[s][1].type!=="lineEnding"&&(l=s):(s===o||e[s][1].type==="lineEnding")&&(e[l][1].type="codeTextData",s!==l+2&&(e[l][1].end=e[s-1][1].end,e.splice(l+2,s-l-2),o-=s-l-2,s=l+2),l=void 0);return e}function pj(e){return e!==96||this.events[this.events.length-1][1].type==="characterEscape"}function mj(e,o,i){let s=0,l,c;return u;function u(x){return e.enter("codeText"),e.enter("codeTextSequence"),h(x)}function h(x){return x===96?(e.consume(x),s++,h):(e.exit("codeTextSequence"),m(x))}function m(x){return x===null?i(x):x===32?(e.enter("space"),e.consume(x),e.exit("space"),m):x===96?(c=e.enter("codeTextSequence"),l=0,y(x)):pe(x)?(e.enter("lineEnding"),e.consume(x),e.exit("lineEnding"),m):(e.enter("codeTextData"),f(x))}function f(x){return x===null||x===32||x===96||pe(x)?(e.exit("codeTextData"),m(x)):(e.consume(x),f)}function y(x){return x===96?(e.consume(x),l++,y):l===s?(e.exit("codeTextSequence"),e.exit("codeText"),o(x)):(c.type="codeTextData",f(x))}}class fj{constructor(o){this.left=o?[...o]:[],this.right=[]}get(o){if(o<0||o>=this.left.length+this.right.length)throw new RangeError("Cannot access index `"+o+"` in a splice buffer of size `"+(this.left.length+this.right.length)+"`");return o<this.left.length?this.left[o]:this.right[this.right.length-o+this.left.length-1]}get length(){return this.left.length+this.right.length}shift(){return this.setCursor(0),this.right.pop()}slice(o,i){const s=i??Number.POSITIVE_INFINITY;return s<this.left.length?this.left.slice(o,s):o>this.left.length?this.right.slice(this.right.length-s+this.left.length,this.right.length-o+this.left.length).reverse():this.left.slice(o).concat(this.right.slice(this.right.length-s+this.left.length).reverse())}splice(o,i,s){const l=i||0;this.setCursor(Math.trunc(o));const c=this.right.splice(this.right.length-l,Number.POSITIVE_INFINITY);return s&&Ki(this.left,s),c.reverse()}pop(){return this.setCursor(Number.POSITIVE_INFINITY),this.left.pop()}push(o){this.setCursor(Number.POSITIVE_INFINITY),this.left.push(o)}pushMany(o){this.setCursor(Number.POSITIVE_INFINITY),Ki(this.left,o)}unshift(o){this.setCursor(0),this.right.push(o)}unshiftMany(o){this.setCursor(0),Ki(this.right,o.reverse())}setCursor(o){if(!(o===this.left.length||o>this.left.length&&this.right.length===0||o<0&&this.left.length===0))if(o<this.left.length){const i=this.left.splice(o,Number.POSITIVE_INFINITY);Ki(this.right,i.reverse())}else{const i=this.right.splice(this.left.length+this.right.length-o,Number.POSITIVE_INFINITY);Ki(this.left,i.reverse())}}}function Ki(e,o){let i=0;if(o.length<1e4)e.push(...o);else for(;i<o.length;)e.push(...o.slice(i,i+1e4)),i+=1e4}function hf(e){const o={};let i=-1,s,l,c,u,h,m,f;const y=new fj(e);for(;++i<y.length;){for(;i in o;)i=o[i];if(s=y.get(i),i&&s[1].type==="chunkFlow"&&y.get(i-1)[1].type==="listItemPrefix"&&(m=s[1]._tokenizer.events,c=0,c<m.length&&m[c][1].type==="lineEndingBlank"&&(c+=2),c<m.length&&m[c][1].type==="content"))for(;++c<m.length&&m[c][1].type!=="content";)m[c][1].type==="chunkText"&&(m[c][1]._isInFirstContentOfListItem=!0,c++);if(s[0]==="enter")s[1].contentType&&(Object.assign(o,gj(y,i)),i=o[i],f=!0);else if(s[1]._container){for(c=i,l=void 0;c--;)if(u=y.get(c),u[1].type==="lineEnding"||u[1].type==="lineEndingBlank")u[0]==="enter"&&(l&&(y.get(l)[1].type="lineEndingBlank"),u[1].type="lineEnding",l=c);else if(!(u[1].type==="linePrefix"||u[1].type==="listItemIndent"))break;l&&(s[1].end={...y.get(l)[1].start}
vendor: 7,499 bytes, line 121
121,h=y.slice(l,i),h.unshift(s),y.splice(l,i-l+1,h))}}return Pt(e,0,Number.POSITIVE_INFINITY,y.slice(0)),!f}function gj(e,o){const i=e.get(o)[1],s=e.get(o)[2];let l=o-1;const c=[];let u=i._tokenizer;u||(u=s.parser[i.contentType](i.start),i._contentTypeTextTrailing&&(u._contentTypeTextTrailing=!0));const h=u.events,m=[],f={};let y,x,w=-1,k=i,N=0,I=0;const T=[I];for(;k;){for(;e.get(++l)[1]!==k;);c.push(l),k._tokenizer||(y=s.sliceStream(k),k.next||y.push(null),x&&u.defineSkip(k.start),k._isInFirstContentOfListItem&&(u._gfmTasklistFirstContentOfListItem=!0),u.write(y),k._isInFirstContentOfListItem&&(u._gfmTasklistFirstContentOfListItem=void 0)),x=k,k=k.next}for(k=i;++w<h.length;)h[w][0]==="exit"&&h[w-1][0]==="enter"&&h[w][1].type===h[w-1][1].type&&h[w][1].start.line!==h[w][1].end.line&&(I=w+1,T.push(I),k._tokenizer=void 0,k.previous=void 0,k=k.next);for(u.events=[],k?(k._tokenizer=void 0,k.previous=void 0):T.pop(),w=T.length;w--;){const _=h.slice(T[w],T[w+1]),z=c.pop();m.push([z,z+_.length-1]),e.splice(z,2,_)}for(m.reverse(),w=-1;++w<m.length;)f[N+m[w][0]]=N+m[w][1],N+=m[w][1]-m[w][0]-1;return f}const yj={resolve:vj,tokenize:wj},xj={partial:!0,tokenize:kj};function vj(e){return hf(e),e}function wj(e,o){let i;return s;function s(h){return e.enter("content"),i=e.enter("chunkContent",{contentType:"content"}),l(h)}function l(h){return h===null?c(h):pe(h)?e.check(xj,u,c)(h):(e.consume(h),l)}function c(h){return e.exit("chunkContent"),e.exit("content"),o(h)}function u(h){return e.consume(h),e.exit("chunkContent"),i.next=e.enter("chunkContent",{contentType:"content",previous:i}),i=i.next,l}}function kj(e,o,i){const s=this;return l;function l(u){return e.exit("chunkContent"),e.enter("lineEnding"),e.consume(u),e.exit("lineEnding"),Ee(e,c,"linePrefix")}function c(u){if(u===null||pe(u))return i(u);const h=s.events[s.events.length-1];return!s.parser.constructs.disable.null.includes("codeIndented")&&h&&h[1].type==="linePrefix"&&h[2].sliceSerialize(h[1],!0).length>=4?o(u):e.interrupt(s.parser.constructs.flow,i,o)(u)}}function pf(e,o,i,s,l,c,u,h,m){const f=m||Number.POSITIVE_INFINITY;let y=0;return x;function x(_){return _===60?(e.enter(s),e.enter(l),e.enter(c),e.consume(_),e.exit(c),w):_===null||_===32||_===41||Va(_)?i(_):(e.enter(s),e.enter(u),e.enter(h),e.enter("chunkString",{contentType:"string"}),I(_))}function w(_){return _===62?(e.enter(c),e.consume(_),e.exit(c),e.exit(l),e.exit(s),o):(e.enter(h),e.enter("chunkString",{contentType:"string"}),k(_))}function k(_){return _===62?(e.exit("chunkString"),e.exit(h),w(_)):_===null||_===60||pe(_)?i(_):(e.consume(_),_===92?N:k)}function N(_){return _===60||_===62||_===92?(e.consume(_),k):k(_)}function I(_){return!y&&(_===null||_===41||De(_))?(e.exit("chunkString"),e.exit(h),e.exit(u),e.exit(s),o(_)):y<f&&_===40?(e.consume(_),y++,I):_===41?(e.consume(_),y--,I):_===null||_===32||_===40||Va(_)?i(_):(e.consume(_),_===92?T:I)}function T(_){return _===40||_===41||_===92?(e.consume(_),I):I(_)}}function mf(e,o,i,s,l,c){const u=this;let h=0,m;return f;function f(k){return e.enter(s),e.enter(l),e.consume(k),e.exit(l),e.enter(c),y}function y(k){return h>999||k===null||k===91||k===93&&!m||k===94&&!h&&"_hiddenFootnoteSupport"in u.parser.constructs?i(k):k===93?(e.exit(c),e.enter(l),e.consume(k),e.exit(l),e.exit(s),o):pe(k)?(e.enter("lineEnding"),e.consume(k),e.exit("lineEnding"),y):(e.enter("chunkString",{contentType:"string"}),x(k))}function x(k){return k===null||k===91||k===93||pe(k)||h++>999?(e.exit("chunkString"),y(k)):(e.consume(k),m||(m=!Ce(k)),k===92?w:x)}function w(k){return k===91||k===92||k===93?(e.consume(k),h++,x):x(k)}}function ff(e,o,i,s,l,c){let u;return h;function h(w){return w===34||w===39||w===40?(e.enter(s),e.enter(l),e.consume(w),e.exit(l),u=w===40?41:w,m):i(w)}function m(w){return w===u?(e.enter(l),e.consume(w),e.exit(l),e.exit(s),o):(e.enter(c),f(w))}function f(w){return w===u?(e.exit(c),m(u)):w===null?i(w):pe(w)?(e.enter("lineEnding"),e.consume(w),e.exit("lineEnding"),Ee(e,f,"linePrefix")):(e.enter("chunkString",{contentType:"string"}),y(w))}function y(w){return w===u||w===null||pe(w)?(e.exit("chunkString"),f(w)):(e.consume(w),w===92?x:y)}function x(w){return w===u||w===92?(e.consume(w),y):y(w)}}function Zi(e,o){let i;return s;function s(l){return pe(l)?(e.enter("lineEnding"),e.consume(l),e.exit("lineEnding"),i=!0,s):Ce(l)?Ee(e,s,i?"linePrefix":"lineSuffix")(l):o(l)}}const jj={name:"definition",tokenize:Nj},bj={partial:!0,tokenize:Sj};function Nj(e,o,i){const s=this;let l;return c;function c(k){return e.enter("definition"),u(k)}function u(k){return mf.call(s,e,h,i,"definitionLabel","definitionLabelMarker","definitionLabelString")(k)}function h(k){return l=Zt(s.sliceSerialize(s.events[s.events.length-1][1]).slice(1,-1)),k===58?(e.enter("definitionMarker"),e.consume(k),e.exit("definitionMarker"),m):i(k)}function m(k){return De(k)?Zi(e,f)(k):f(k)}function f(k){return pf(e,y,i,"definitionDestination","definitionDestinationLiteral","definitionDestinationLiteralMarker","definitionDestinationRaw","definitionDestinationString")(k)}function y(k){return e.attempt(bj,x,x)(k)}function x(k){return Ce(k)?Ee(e,w,"whitespace")(k):w(k)}function w(k){return k===null||pe(k)?(e.exit("definition"),s.parser.defined.push(l),o(k)):i(k)}}function Sj(e,o,i){return s;function s(h){return De(h)?Zi(e,l)(h):i(h)}function l(h){return ff(e,c,i,"definitionTitle","definitionTitleMarker","definitionTitleString")(h)}function c(h){return Ce(h)?Ee(e,u,"whitespace")(h):u(h)}function u(h){return h===null||pe(h)?o(h):i(h)}}const Tj={name:"hardBreakEscape",tokenize:Cj};function Cj(e,o,i){return s;function s(c){return e.enter("hardBreakEscape"),e.consume(c),l}function l(c){return pe(c)?(e.exit("hardBreakEscape"),o(c)):i(c)}}const Ej={name:"headingAtx",resolve:_j,tokenize:Ij};function _j(e,o){let i=e.length-2,s=3,l,c;return e[s][1].type==="whitespace"&&(s+=2),i-2>s&&e[i][1].type==="whitespace"&&(i-=2),e[i][1].type==="atxHeadingSequence"&&(s===i-1||i-4>s&&e[i-2][1].type==="whitespace")&&(i-=s+1===i?2:4),i>s&&(l={type:"atxHeadingText",start:e[s][1].start,end:e[i][1].end},c={type:"chunkText",start:e[s][1].start,end:e[i][1].end,contentType:"text"},Pt(e,s,i-s+1,[["enter",l,o],["enter",c,o],["exit",c,o],["exit",l,o]])),e}function Ij(e,o,i){let s=0;return l;function l(y){return e.enter("atxHeading"),c(y)}function c(y){return e.enter("atxHeadingSequence"),u(y)}function u(y){return y===35&&s++<6?(e.consume(y),u):y===null||De(y)?(e.exit("atxHeadingSequence"),h(y)):i(y)}function h(y){return y===35?(e.enter("atxHeadingSequence"),m(y)):y===null||pe(y)?(e.exit("atxHeading"),o(y)):Ce(y)?Ee(e,h,"whitespace")(y):(e.enter("atxHeadingText"),f(y))}function m(y){return y===35?(e.consume(y),m):(e.exit("atxHeadingSequence"),h(y))}function f(y){return y===null||y===35||De(y)?(e.exit("atxHeadingText"),h(y)):(e.consume(y),f)}}const Pj=["address","article","aside","base","basefont","blockquote","body","caption","center","col","colgroup","dd","details","dialog","dir","div","dl","dt","fieldset","figcaption","figure","footer","form","frame","frameset","h1","h2","h3","h4","h5","h6","head","header","hr","html","iframe","legend","li","link","main","menu","menuitem","nav","noframes","ol","optgroup","option","p","param","search","section","summary","table","tbody","td","tfoot","th","thead","title","tr","track","ul"],Up=["pre","script","style","textarea"],Aj={concrete:!0,name:"htmlFlow",resolveTo:Lj,tokenize:Dj},Rj={partial:!0,tokenize:Fj},Oj={partial:!0,tokenize:Mj};function Lj(e){let o=e.length;for(;
vendor: 15,776 bytes, line 121
121o--&&!(e[o][0]==="enter"&&e[o][1].type==="htmlFlow"););return o>1&&e[o-2][1].type==="linePrefix"&&(e[o][1].start=e[o-2][1].start,e[o+1][1].start=e[o-2][1].start,e.splice(o-2,2)),e}function Dj(e,o,i){const s=this;let l,c,u,h,m;return f;function f(S){return y(S)}function y(S){return e.enter("htmlFlow"),e.enter("htmlFlowData"),e.consume(S),x}function x(S){return S===33?(e.consume(S),w):S===47?(e.consume(S),c=!0,I):S===63?(e.consume(S),l=3,s.interrupt?o:j):ft(S)?(e.consume(S),u=String.fromCharCode(S),T):i(S)}function w(S){return S===45?(e.consume(S),l=2,k):S===91?(e.consume(S),l=5,h=0,N):ft(S)?(e.consume(S),l=4,s.interrupt?o:j):i(S)}function k(S){return S===45?(e.consume(S),s.interrupt?o:j):i(S)}function N(S){const ge="CDATA[";return S===ge.charCodeAt(h++)?(e.consume(S),h===ge.length?s.interrupt?o:Z:N):i(S)}function I(S){return ft(S)?(e.consume(S),u=String.fromCharCode(S),T):i(S)}function T(S){if(S===null||S===47||S===62||De(S)){const ge=S===47,be=u.toLowerCase();return!ge&&!c&&Up.includes(be)?(l=1,s.interrupt?o(S):Z(S)):Pj.includes(u.toLowerCase())?(l=6,ge?(e.consume(S),_):s.interrupt?o(S):Z(S)):(l=7,s.interrupt&&!s.parser.lazy[s.now().line]?i(S):c?z(S):B(S))}return S===45||dt(S)?(e.consume(S),u+=String.fromCharCode(S),T):i(S)}function _(S){return S===62?(e.consume(S),s.interrupt?o:Z):i(S)}function z(S){return Ce(S)?(e.consume(S),z):R(S)}function B(S){return S===47?(e.consume(S),R):S===58||S===95||ft(S)?(e.consume(S),te):Ce(S)?(e.consume(S),B):R(S)}function te(S){return S===45||S===46||S===58||S===95||dt(S)?(e.consume(S),te):Y(S)}function Y(S){return S===61?(e.consume(S),F):Ce(S)?(e.consume(S),Y):B(S)}function F(S){return S===null||S===60||S===61||S===62||S===96?i(S):S===34||S===39?(e.consume(S),m=S,ne):Ce(S)?(e.consume(S),F):ue(S)}function ne(S){return S===m?(e.consume(S),m=null,fe):S===null||pe(S)?i(S):(e.consume(S),ne)}function ue(S){return S===null||S===34||S===39||S===47||S===60||S===61||S===62||S===96||De(S)?Y(S):(e.consume(S),ue)}function fe(S){return S===47||S===62||Ce(S)?B(S):i(S)}function R(S){return S===62?(e.consume(S),ee):i(S)}function ee(S){return S===null||pe(S)?Z(S):Ce(S)?(e.consume(S),ee):i(S)}function Z(S){return S===45&&l===2?(e.consume(S),ke):S===60&&l===1?(e.consume(S),je):S===62&&l===4?(e.consume(S),A):S===63&&l===3?(e.consume(S),j):S===93&&l===5?(e.consume(S),ce):pe(S)&&(l===6||l===7)?(e.exit("htmlFlowData"),e.check(Rj,W,ye)(S)):S===null||pe(S)?(e.exit("htmlFlowData"),ye(S)):(e.consume(S),Z)}function ye(S){return e.check(Oj,ie,W)(S)}function ie(S){return e.enter("lineEnding"),e.consume(S),e.exit("lineEnding"),J}function J(S){return S===null||pe(S)?ye(S):(e.enter("htmlFlowData"),Z(S))}function ke(S){return S===45?(e.consume(S),j):Z(S)}function je(S){return S===47?(e.consume(S),u="",Q):Z(S)}function Q(S){if(S===62){const ge=u.toLowerCase();return Up.includes(ge)?(e.consume(S),A):Z(S)}return ft(S)&&u.length<8?(e.consume(S),u+=String.fromCharCode(S),Q):Z(S)}function ce(S){return S===93?(e.consume(S),j):Z(S)}function j(S){return S===62?(e.consume(S),A):S===45&&l===2?(e.consume(S),j):Z(S)}function A(S){return S===null||pe(S)?(e.exit("htmlFlowData"),W(S)):(e.consume(S),A)}function W(S){return e.exit("htmlFlow"),o(S)}}function Mj(e,o,i){const s=this;return l;function l(u){return pe(u)?(e.enter("lineEnding"),e.consume(u),e.exit("lineEnding"),c):i(u)}function c(u){return s.parser.lazy[s.now().line]?i(u):o(u)}}function Fj(e,o,i){return s;function s(l){return e.enter("lineEnding"),e.consume(l),e.exit("lineEnding"),e.attempt(lo,o,i)}}const zj={name:"htmlText",tokenize:Bj};function Bj(e,o,i){const s=this;let l,c,u;return h;function h(j){return e.enter("htmlText"),e.enter("htmlTextData"),e.consume(j),m}function m(j){return j===33?(e.consume(j),f):j===47?(e.consume(j),Y):j===63?(e.consume(j),B):ft(j)?(e.consume(j),ue):i(j)}function f(j){return j===45?(e.consume(j),y):j===91?(e.consume(j),c=0,N):ft(j)?(e.consume(j),z):i(j)}function y(j){return j===45?(e.consume(j),k):i(j)}function x(j){return j===null?i(j):j===45?(e.consume(j),w):pe(j)?(u=x,je(j)):(e.consume(j),x)}function w(j){return j===45?(e.consume(j),k):x(j)}function k(j){return j===62?ke(j):j===45?w(j):x(j)}function N(j){const A="CDATA[";return j===A.charCodeAt(c++)?(e.consume(j),c===A.length?I:N):i(j)}function I(j){return j===null?i(j):j===93?(e.consume(j),T):pe(j)?(u=I,je(j)):(e.consume(j),I)}function T(j){return j===93?(e.consume(j),_):I(j)}function _(j){return j===62?ke(j):j===93?(e.consume(j),_):I(j)}function z(j){return j===null||j===62?ke(j):pe(j)?(u=z,je(j)):(e.consume(j),z)}function B(j){return j===null?i(j):j===63?(e.consume(j),te):pe(j)?(u=B,je(j)):(e.consume(j),B)}function te(j){return j===62?ke(j):B(j)}function Y(j){return ft(j)?(e.consume(j),F):i(j)}function F(j){return j===45||dt(j)?(e.consume(j),F):ne(j)}function ne(j){return pe(j)?(u=ne,je(j)):Ce(j)?(e.consume(j),ne):ke(j)}function ue(j){return j===45||dt(j)?(e.consume(j),ue):j===47||j===62||De(j)?fe(j):i(j)}function fe(j){return j===47?(e.consume(j),ke):j===58||j===95||ft(j)?(e.consume(j),R):pe(j)?(u=fe,je(j)):Ce(j)?(e.consume(j),fe):ke(j)}function R(j){return j===45||j===46||j===58||j===95||dt(j)?(e.consume(j),R):ee(j)}function ee(j){return j===61?(e.consume(j),Z):pe(j)?(u=ee,je(j)):Ce(j)?(e.consume(j),ee):fe(j)}function Z(j){return j===null||j===60||j===61||j===62||j===96?i(j):j===34||j===39?(e.consume(j),l=j,ye):pe(j)?(u=Z,je(j)):Ce(j)?(e.consume(j),Z):(e.consume(j),ie)}function ye(j){return j===l?(e.consume(j),l=void 0,J):j===null?i(j):pe(j)?(u=ye,je(j)):(e.consume(j),ye)}function ie(j){return j===null||j===34||j===39||j===60||j===61||j===96?i(j):j===47||j===62||De(j)?fe(j):(e.consume(j),ie)}function J(j){return j===47||j===62||De(j)?fe(j):i(j)}function ke(j){return j===62?(e.consume(j),e.exit("htmlTextData"),e.exit("htmlText"),o):i(j)}function je(j){return e.exit("htmlTextData"),e.enter("lineEnding"),e.consume(j),e.exit("lineEnding"),Q}function Q(j){return Ce(j)?Ee(e,ce,"linePrefix",s.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(j):ce(j)}function ce(j){return e.enter("htmlTextData"),u(j)}}const iu={name:"labelEnd",resolveAll:Vj,resolveTo:$j,tokenize:Gj},Uj={tokenize:qj},Hj={tokenize:Yj},Wj={tokenize:Jj};function Vj(e){let o=-1;const i=[];for(;++o<e.length;){const s=e[o][1];if(i.push(e[o]),s.type==="labelImage"||s.type==="labelLink"||s.type==="labelEnd"){const l=s.type==="labelImage"?4:2;s.type="data",o+=l}}return e.length!==i.length&&Pt(e,0,e.length,i),e}function $j(e,o){let i=e.length,s=0,l,c,u,h;for(;i--;)if(l=e[i][1],c){if(l.type==="link"||l.type==="labelLink"&&l._inactive)break;e[i][0]==="enter"&&l.type==="labelLink"&&(l._inactive=!0)}else if(u){if(e[i][0]==="enter"&&(l.type==="labelImage"||l.type==="labelLink")&&!l._balanced&&(c=i,l.type!=="labelLink")){s=2;break}}else l.type==="labelEnd"&&(u=i);const m={type:e[c][1].type==="labelLink"?"link":"image",start:{...e[c][1].start},end:{...e[e.length-1][1].end}},f={type:"label",start:{...e[c][1].start},end:{...e[u][1].end}},y={type:"labelText",start:{...e[c+s+2][1].end},end:{...e[u-2][1].start}};return h=[["enter",m,o],["enter",f,o]],h=Bt(h,e.slice(c+1,c+s+3)),h=Bt(h,[["enter",y,o]]),h=Bt(h,es(o.parser.constructs.insideSpan.null,e.slice(c+s+4,u-3),o)),h=Bt(h,[["exit",y,o],e[u-2],e[u-1],["exit",f,o]]),h=Bt(h,e.slice(u+1)),h=Bt(h,[["exit",m,o]]),Pt(e,c,e.length,h),e}function Gj(e,o,i){const s=this;let l=s.events.length,c,u;for(;l--;)if((s.events[l][1].type==="labelImage"||s.events[l][1].type==="labelLink")&&!s.events[l][1]._balanced){c=s.events[l][1];break}return h;function h(w){return c?c._inactive?x(w):(u=s.parser.defined.includes(Zt(s.sliceSerialize({start:c.end,end:s.now()}))),e.enter("labelEnd"),e.enter("labelMarker"),e.consume(w),e.exit("labelMarker"),e.exit("labelEnd"),m):i(w)}function m(w){return w===40?e.attempt(Uj,y,u?y:x)(w):w===91?e.attempt(Hj,y,u?f:x)(w):u?y(w):x(w)}function f(w){return e.attempt(Wj,y,x)(w)}function y(w){return o(w)}function x(w){return c._balanced=!0,i(w)}}function qj(e,o,i){return s;function s(x){return e.enter("resource"),e.enter("resourceMarker"),e.consume(x),e.exit("resourceMarker"),l}function l(x){return De(x)?Zi(e,c)(x):c(x)}function c(x){return x===41?y(x):pf(e,u,h,"resourceDestination","resourceDestinationLiteral","resourceDestinationLiteralMarker","resourceDestinationRaw","resourceDestinationString",32)(x)}function u(x){return De(x)?Zi(e,m)(x):y(x)}function h(x){return i(x)}function m(x){return x===34||x===39||x===40?ff(e,f,i,"resourceTitle","resourceTitleMarker","resourceTitleString")(x):y(x)}function f(x){return De(x)?Zi(e,y)(x):y(x)}function y(x){return x===41?(e.enter("resourceMarker"),e.consume(x),e.exit("resourceMarker"),e.exit("resource"),o):i(x)}}function Yj(e,o,i){const s=this;return l;function l(h){return mf.call(s,e,c,u,"reference","referenceMarker","referenceString")(h)}function c(h){return s.parser.defined.includes(Zt(s.sliceSerialize(s.events[s.events.length-1][1]).slice(1,-1)))?o(h):i(h)}function u(h){return i(h)}}function Jj(e,o,i){return s;function s(c){return e.enter("reference"),e.enter("referenceMarker"),e.consume(c),e.exit("referenceMarker"),l}function l(c){return c===93?(e.enter("referenceMarker"),e.consume(c),e.exit("referenceMarker"),e.exit("reference"),o):i(c)}}const Kj={name:"labelStartImage",resolveAll:iu.resolveAll,tokenize:Qj};function Qj(e,o,i){const s=this;return l;function l(h){return e.enter("labelImage"),e.enter("labelImageMarker"),e.consume(h),e.exit("labelImageMarker"),c}function c(h){return h===91?(e.enter("labelMarker"),e.consume(h),e.exit("labelMarker"),e.exit("labelImage"),u):i(h)}function u(h){return h===94&&"_hiddenFootnoteSupport"in s.parser.constructs?i(h):o(h)}}const Xj={name:"labelStartLink",resolveAll:iu.resolveAll,tokenize:Zj};function Zj(e,o,i){const s=this;return l;function l(u){return e.enter("labelLink"),e.enter("labelMarker"),e.consume(u),e.exit("labelMarker"),e.exit("labelLink"),c}function c(u){return u===94&&"_hiddenFootnoteSupport"in s.parser.constructs?i(u):o(u)}}const ic={name:"lineEnding",tokenize:eb};function eb(e,o){return i;function i(s){return e.enter("lineEnding"),e.consume(s),e.exit("lineEnding"),Ee(e,o,"linePrefix")}}const za={name:"thematicBreak",tokenize:tb};function tb(e,o,i){let s=0,l;return c;function c(f){return e.enter("thematicBreak"),u(f)}function u(f){return l=f,h(f)}function h(f){return f===l?(e.enter("thematicBreakSequence"),m(f)):s>=3&&(f===null||pe(f))?(e.exit("thematicBreak"),o(f)):i(f)}function m(f){return f===l?(e.consume(f),s++,m):(e.exit("thematicBreakSequence"),Ce(f)?Ee(e,h,"whitespace")(f):h(f))}}const bt={continuation:{tokenize:ob},exit:sb,name:"list",tokenize:ib},nb={partial:!0,tokenize:lb},rb={partial:!0,tokenize:ab};function ib(e,o,i){const s=this,l=s.events[s.events.length-1];let c=l&&l[1].type==="linePrefix"?l[2].sliceSerialize(l[1],!0).length:0,u=0;return h;function h(k){const N=s.containerState.type||(k===42||k===43||k===45?"listUnordered":"listOrdered");if(N==="listUnordered"?!s.containerState.marker||k===s.containerState.marker:Ec(k)){if(s.containerState.type||(s.containerState.type=N,e.enter(N,{_container:!0})),N==="listUnordered")return e.enter("listItemPrefix"),k===42||k===45?e.check(za,i,f)(k):f(k);if(!s.interrupt||k===49)return e.enter("listItemPrefix"),e.enter("listItemValue"),m(k)}return i(k)}function m(k){return Ec(k)&&++u<10?(e.consume(k),m):(!s.interrupt||u<2)&&(s.containerState.marker?k===s.containerState.marker:k===41||k===46)?(e.exit("listItemValue"),f(k)):i(k)}function f(k){return e.enter("listItemMarker"),e.consume(k),e.exit("listItemMarker"),s.containerState.marker=s.containerState.marker||k,e.check(lo,s.interrupt?i:y,e.attempt(nb,w,x))}function y(k){return s.containerState.initialBlankLine=!0,c++,w(k)}function x(k){return Ce(k)?(e.enter("listItemPrefixWhitespace"),e.consume(k),e.exit("listItemPrefixWhitespace"),w):i(k)}function w(k){return s.containerState.size=c+s.sliceSerialize(e.exit("listItemPrefix"),!0).length,o(k)}}function ob(e,o,i){const s=this;return s.containerState._closeFlow=void 0,e.check(lo,l,c);function l(h){return s.containerState.furtherBlankLines=s.containerState.furtherBlankLines||s.containerState.initialBlankLine,Ee(e,o,"listItemIndent",s.containerState.size+1)(h)}function c(h){return s.containerState.furtherBlankLines||!Ce(h)?(s.containerState.furtherBlankLines=void 0,s.containerState.initialBlankLine=void 0,u(h)):(s.containerState.furtherBlankLines=void 0,s.containerState.initialBlankLine=void 0,e.attempt(rb,o,u)(h))}function u(h){return s.containerState._closeFlow=!0,s.interrupt=void 0,Ee(e,e.attempt(bt,o,i),"linePrefix",s.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(h)}}function ab(e,o,i){const s=this;return Ee(e,l,"listItemIndent",s.containerState.size+1);function l(c){const u=s.events[s.events.length-1];return u&&u[1].type==="listItemIndent"&&u[2].sliceSerialize(u[1],!0).length===s.containerState.size?o(c):i(c)}}function sb(e){e.exit(this.containerState.type)}function lb(e,o,i){const s=this;return Ee(e,l,"listItemPrefixWhitespace",s.parser.constructs.disable.null.includes("codeIndented")?void 0:5);function l(c){const u=s.events[s.events.length-1];return!Ce(c)&&u&&u[1].type==="listItemPrefixWhitespace"?o(c):i(c)}}const Hp={name:"setextUnderline",resolveTo:cb,tokenize:ub};function cb(e,o){let i=e.length,s,l,c;for(;i--;)if(e[i][0]==="enter"){if(e[i][1].type==="content"){s=i;break}e[i][1].type==="paragraph"&&(l=i)}else e[i][1].type==="content"&&e.splice(i,1),!c&&e[i][1].type==="definition"&&(c=i);const u={type:"setextHeading",start:{...e[s][1].start},end:{...e[e.length-1][1].end}};return e[l][1].type="setextHeadingText",c?(e.splice(l,0,["enter",u,o]),e.splice(c+1,0,["exit",e[s][1],o]),e[s][1].end={...e[c][1].end}):e[s][1]=u,e.push(["exit",u,o]),e}function ub(e,o,i){const s=this;let l;return c;function c(f){let y=s.events.length,x;for(;y--;)if(s.events[y][1].type!=="lineEnding"&&s.events[y][1].type!=="linePrefix"&&s.events[y][1].type!=="content"){x=s.events[y][1].type==="paragraph";break}return!s.parser.lazy[s.now().line]&&(s.interrupt||x)?(e.enter("setextHeadingLine"),l=f,u(f)):i(f)}function u(f){return e.enter("setextHeadingLineSequence"),h(f)}function h(f){return f===l?(e.consume(f),h):(e.exit("setextHeadingLineSequence"),Ce(f)?Ee(e,m,"lineSuffix")(f):m(f))}function m(f){return f===null||pe(f)?(e.exit("setextHeadingLine"),o(f)):i(f)}}const db={tokenize:hb};function hb(e){const o=this,i=e.attempt(lo,s,e.attempt(this.parser.constructs.flowInitial,l,Ee(e,e.attempt(this.parser.constructs.flow,l,e.attempt(yj,l)),"linePrefix")));return i;function s(c){if(c===null){e.consume(c);return}return e.enter("lineEndingBlank"),e.consume(c),e.exit("lineEndingBlank"),o.currentConstruct=void 0,i}function l(c){if(c===null){e.consume(c);return}return e.enter("lineEnding"),e.consume(c),e.exit("lineEnding"),o.currentConstruct=void 0,i}}const pb={resolveAll:yf()},mb=gf("string"),fb=gf("text");function gf(e){return{resolveAll:yf(e==="text"?gb:void 0),tokenize:o};function o(i){const s=this,l=this.parser.constructs[e],c=i.attempt(l,u,h);return u;function u(y){return f(y)?c(y):h(y)}function h(y){if(y===null){i.consume(y);return}return i.enter("data"),i.consume(y),m}function m(y){return f(y)?(i.exit("data"),c(y)):(i.consume(y),m)}function f(y){if(y===null)return!0;const x=l[y];let w=-1;if(x)for(;++w<x.length;){const k=x[w];if(!k.previous||k.previous.call(s,s.previous))return!0}return!1}}}function yf(e){return o;function o(i,s){let l=-1,c;for(;++l<=i.length;)c===void 0?i[l]&&i[l][1].type==="data"&&(c=l,l++):(!i[l]||i[l][1].type!=="data")&&(l!==c+2&&(i[c][1].end=i[l-1][1].end,i.splice(c+2,l-c-2),l=c+2),c=void 0);return e?e(i,s):i}}function gb(e,o){let i=0;for(;++i<=e.length;)if((i===e.length||e[i][1].type==="lineEnding")&&e[i-1][1].type==="data"){const s=e[i-1][1],l=o.sliceStream(s);let c=l.length,u=-1,h=0,m;
vendor: 4,981 bytes, lines 121-123
121for(;c--;){const f=l[c];if(typeof f=="string"){for(u=f.length;f.charCodeAt(u-1)===32;)h++,u--;if(u)break;u=-1}else if(f===-2)m=!0,h++;else if(f!==-1){c++;break}}if(o._contentTypeTextTrailing&&i===e.length&&(h=0),h){const f={type:i===e.length||m||h<2?"lineSuffix":"hardBreakTrailing",start:{_bufferIndex:c?u:s.start._bufferIndex+u,_index:s.start._index+c,line:s.end.line,column:s.end.column-h,offset:s.end.offset-h},end:{...s.end}};s.end={...f.start},s.start.offset===s.end.offset?Object.assign(s,f):(e.splice(i,0,["enter",f,o],["exit",f,o]),i+=2)}i++}return e}const yb={42:bt,43:bt,45:bt,48:bt,49:bt,50:bt,51:bt,52:bt,53:bt,54:bt,55:bt,56:bt,57:bt,62:cf},xb={91:jj},vb={[-2]:rc,[-1]:rc,32:rc},wb={35:Ej,42:za,45:[Hp,za],60:Aj,61:Hp,95:za,96:Bp,126:Bp},kb={38:df,92:uf},jb={[-5]:ic,[-4]:ic,[-3]:ic,33:Kj,38:df,42:_c,60:[Xk,zj],91:Xj,92:[Tj,uf],93:iu,95:_c,96:dj},bb={null:[_c,pb]},Nb={null:[42,95]},Sb={null:[]},Tb=Object.freeze(Object.defineProperty({__proto__:null,attentionMarkers:Nb,contentInitial:xb,disable:Sb,document:yb,flow:wb,flowInitial:vb,insideSpan:bb,string:kb,text:jb},Symbol.toStringTag,{value:"Module"}));function Cb(e,o,i){let s={_bufferIndex:-1,_index:0,line:i&&i.line||1,column:i&&i.column||1,offset:i&&i.offset||0};const l={},c=[];let u=[],h=[];const m={attempt:ne(Y),check:ne(F),consume:z,enter:B,exit:te,interrupt:ne(F,{interrupt:!0})},f={code:null,containerState:{},defineSkip:I,events:[],now:N,parser:e,previous:null,sliceSerialize:w,sliceStream:k,write:x};let y=o.tokenize.call(f,m);return o.resolveAll&&c.push(o),f;function x(ee){return u=Bt(u,ee),T(),u[u.length-1]!==null?[]:(ue(o,0),f.events=es(c,f.events,f),f.events)}function w(ee,Z){return _b(k(ee),Z)}function k(ee){return Eb(u,ee)}function N(){const{_bufferIndex:ee,_index:Z,line:ye,column:ie,offset:J}=s;return{_bufferIndex:ee,_index:Z,line:ye,column:ie,offset:J}}function I(ee){l[ee.line]=ee.column,R()}function T(){let ee;for(;s._index<u.length;){const Z=u[s._index];if(typeof Z=="string")for(ee=s._index,s._bufferIndex<0&&(s._bufferIndex=0);s._index===ee&&s._bufferIndex<Z.length;)_(Z.charCodeAt(s._bufferIndex));else _(Z)}}function _(ee){y=y(ee)}function z(ee){pe(ee)?(s.line++,s.column=1,s.offset+=ee===-3?2:1,R()):ee!==-1&&(s.column++,s.offset++),s._bufferIndex<0?s._index++:(s._bufferIndex++,s._bufferIndex===u[s._index].length&&(s._bufferIndex=-1,s._index++)),f.previous=ee}function B(ee,Z){const ye=Z||{};return ye.type=ee,ye.start=N(),f.events.push(["enter",ye,f]),h.push(ye),ye}function te(ee){const Z=h.pop();return Z.end=N(),f.events.push(["exit",Z,f]),Z}function Y(ee,Z){ue(ee,Z.from)}function F(ee,Z){Z.restore()}function ne(ee,Z){return ye;function ye(ie,J,ke){let je,Q,ce,j;return Array.isArray(ie)?W(ie):"tokenize"in ie?W([ie]):A(ie);function A(me){return Pe;function Pe(Ne){const Re=Ne!==null&&me[Ne],Ye=Ne!==null&&me.null,dn=[...Array.isArray(Re)?Re:Re?[Re]:[],...Array.isArray(Ye)?Ye:Ye?[Ye]:[]];return W(dn)(Ne)}}function W(me){return je=me,Q=0,me.length===0?ke:S(me[Q])}function S(me){return Pe;function Pe(Ne){return j=fe(),ce=me,me.partial||(f.currentConstruct=me),me.name&&f.parser.constructs.disable.null.includes(me.name)?be():me.tokenize.call(Z?Object.assign(Object.create(f),Z):f,m,ge,be)(Ne)}}function ge(me){return ee(ce,j),J}function be(me){return j.restore(),++Q<je.length?S(je[Q]):ke}}}function ue(ee,Z){ee.resolveAll&&!c.includes(ee)&&c.push(ee),ee.resolve&&Pt(f.events,Z,f.events.length-Z,ee.resolve(f.events.slice(Z),f)),ee.resolveTo&&(f.events=ee.resolveTo(f.events,f))}function fe(){const ee=N(),Z=f.previous,ye=f.currentConstruct,ie=f.events.length,J=Array.from(h);return{from:ie,restore:ke};function ke(){s=ee,f.previous=Z,f.currentConstruct=ye,f.events.length=ie,h=J,R()}}function R(){s.line in l&&s.column<2&&(s.column=l[s.line],s.offset+=l[s.line]-1)}}function Eb(e,o){const i=o.start._index,s=o.start._bufferIndex,l=o.end._index,c=o.end._bufferIndex;let u;if(i===l)u=[e[i].slice(s,c)];else{if(u=e.slice(i,l),s>-1){const h=u[0];typeof h=="string"?u[0]=h.slice(s):u.shift()}c>0&&u.push(e[l].slice(0,c))}return u}function _b(e,o){let i=-1;const s=[];let l;for(;++i<e.length;){const c=e[i];let u;if(typeof c=="string")u=c;else switch(c){case-5:{u="\r";break}case-4:{u=`
122`;break}case-3:{u=`\r
123`;break}case-2:{u=o?" ":"	";break}case-1:{if(!o&&l)continue;u=" ";break}default:u=String.fromCharCode(c)}l=c===-2,s.push(u)}return s.join("")}function Ib(e){const s={constructs:sf([Tb,...(e||{}).extensions||[]]),content:l($k),defined:[],document:l(qk),flow:l(db),lazy:{},string:l(mb),text:l(fb)};return s;function l(c){return u;function u(h){return Cb(s,c,h)}}}function Pb(e){for(;!hf(e););return e}const Wp=/[\0\t\n\r]/g;function Ab(){let e=1,o="",i=!0,s;return l;function l(c,u,h){const m=[];let f,y,x,w,k;for(c=o+(typeof c=="string"?c.toString():new TextDecoder(u||void 0).decode(c)),x=0,o="",i&&(c.charCodeAt(0)===65279&&x++,i=void 0);x<c.length;){if(Wp.lastIndex=x,f=Wp.exec(c),w=f&&f.index!==void 0?f.index:c.length,k=c.charCodeAt(w),!f){o=c.slice(x);break}
vendor: 10,939 bytes, line 123
123if(k===10&&x===w&&s)m.push(-3),s=void 0;else switch(s&&(m.push(-5),s=void 0),x<w&&(m.push(c.slice(x,w)),e+=w-x),k){case 0:{m.push(65533),e++;break}case 9:{for(y=Math.ceil(e/4)*4,m.push(-2);e++<y;)m.push(-1);break}case 10:{m.push(-4),e=1;break}default:s=!0,e=1}x=w+1}return h&&(s&&m.push(-5),o&&m.push(o),m.push(null)),m}}const Rb=/\\([!-/:-@[-`{-~])|&(#(?:\d{1,7}|x[\da-f]{1,6})|[\da-z]{1,31});/gi;function Ob(e){return e.replace(Rb,Lb)}function Lb(e,o,i){if(o)return o;if(i.charCodeAt(0)===35){const l=i.charCodeAt(1),c=l===120||l===88;return lf(i.slice(c?2:1),c?16:10)}return ru(i)||e}const xf={}.hasOwnProperty;function Db(e,o,i){return o&&typeof o=="object"&&(i=o,o=void 0),Mb(i)(Pb(Ib(i).document().write(Ab()(e,o,!0))))}function Mb(e){const o={transforms:[],canContainEols:["emphasis","fragment","heading","paragraph","strong"],enter:{autolink:c(kr),autolinkProtocol:fe,autolinkEmail:fe,atxHeading:c(oi),blockQuote:c(Ye),characterEscape:fe,characterReference:fe,codeFenced:c(dn),codeFencedFenceInfo:u,codeFencedFenceMeta:u,codeIndented:c(dn,u),codeText:c(uo,u),codeTextData:fe,data:fe,codeFlowValue:fe,definition:c(vr),definitionDestinationString:u,definitionLabelString:u,definitionTitleString:u,emphasis:c(ii),hardBreakEscape:c(ai),hardBreakTrailing:c(ai),htmlFlow:c(wr,u),htmlFlowData:fe,htmlText:c(wr,u),htmlTextData:fe,image:c(ho),label:u,link:c(kr),listItem:c(Sn),listItemValue:w,listOrdered:c(Nn,x),listUnordered:c(Nn),paragraph:c(si),reference:S,referenceString:u,resourceDestinationString:u,resourceTitleString:u,setextHeading:c(oi),strong:c(po),thematicBreak:c(fo)},exit:{atxHeading:m(),atxHeadingSequence:Y,autolink:m(),autolinkEmail:Re,autolinkProtocol:Ne,blockQuote:m(),characterEscapeValue:R,characterReferenceMarkerHexadecimal:be,characterReferenceMarkerNumeric:be,characterReferenceValue:me,characterReference:Pe,codeFenced:m(T),codeFencedFence:I,codeFencedFenceInfo:k,codeFencedFenceMeta:N,codeFlowValue:R,codeIndented:m(_),codeText:m(J),codeTextData:R,data:R,definition:m(),definitionDestinationString:te,definitionLabelString:z,definitionTitleString:B,emphasis:m(),hardBreakEscape:m(Z),hardBreakTrailing:m(Z),htmlFlow:m(ye),htmlFlowData:R,htmlText:m(ie),htmlTextData:R,image:m(je),label:ce,labelText:Q,lineEnding:ee,link:m(ke),listItem:m(),listOrdered:m(),listUnordered:m(),paragraph:m(),referenceString:ge,resourceDestinationString:j,resourceTitleString:A,resource:W,setextHeading:m(ue),setextHeadingLineSequence:ne,setextHeadingText:F,strong:m(),thematicBreak:m()}};vf(o,(e||{}).mdastExtensions||[]);const i={};return s;function s(H){let X={type:"root",children:[]};const xe={stack:[X],tokenStack:[],config:o,enter:h,exit:f,buffer:u,resume:y,data:i},Se=[];let _e=-1;for(;++_e<H.length;)if(H[_e][1].type==="listOrdered"||H[_e][1].type==="listUnordered")if(H[_e][0]==="enter")Se.push(_e);else{const nt=Se.pop();_e=l(H,nt,_e)}for(_e=-1;++_e<H.length;){const nt=o[H[_e][0]];xf.call(nt,H[_e][1].type)&&nt[H[_e][1].type].call(Object.assign({sliceSerialize:H[_e][2].sliceSerialize},xe),H[_e][1])}if(xe.tokenStack.length>0){const nt=xe.tokenStack[xe.tokenStack.length-1];(nt[1]||Vp).call(xe,void 0,nt[0])}for(X.position={start:Gn(H.length>0?H[0][1].start:{line:1,column:1,offset:0}),end:Gn(H.length>0?H[H.length-2][1].end:{line:1,column:1,offset:0})},_e=-1;++_e<o.transforms.length;)X=o.transforms[_e](X)||X;return X}function l(H,X,xe){let Se=X-1,_e=-1,nt=!1,hn,Rt,Tn,Kn;for(;++Se<=xe;){const rt=H[Se];switch(rt[1].type){case"listUnordered":case"listOrdered":case"blockQuote":{rt[0]==="enter"?_e++:_e--,Kn=void 0;break}case"lineEndingBlank":{rt[0]==="enter"&&(hn&&!Kn&&!_e&&!Tn&&(Tn=Se),Kn=void 0);break}case"linePrefix":case"listItemValue":case"listItemMarker":case"listItemPrefix":case"listItemPrefixWhitespace":break;default:Kn=void 0}if(!_e&&rt[0]==="enter"&&rt[1].type==="listItemPrefix"||_e===-1&&rt[0]==="exit"&&(rt[1].type==="listUnordered"||rt[1].type==="listOrdered")){if(hn){let en=Se;for(Rt=void 0;en--;){const St=H[en];if(St[1].type==="lineEnding"||St[1].type==="lineEndingBlank"){if(St[0]==="exit")continue;Rt&&(H[Rt][1].type="lineEndingBlank",nt=!0),St[1].type="lineEnding",Rt=en}else if(!(St[1].type==="linePrefix"||St[1].type==="blockQuotePrefix"||St[1].type==="blockQuotePrefixWhitespace"||St[1].type==="blockQuoteMarker"||St[1].type==="listItemIndent"))break}Tn&&(!Rt||Tn<Rt)&&(hn._spread=!0),hn.end=Object.assign({},Rt?H[Rt][1].start:rt[1].end),H.splice(Rt||Se,0,["exit",hn,rt[2]]),Se++,xe++}if(rt[1].type==="listItemPrefix"){const en={type:"listItem",_spread:!1,start:Object.assign({},rt[1].start),end:void 0};hn=en,H.splice(Se,0,["enter",en,rt[2]]),Se++,xe++,Tn=void 0,Kn=!0}}}return H[X][1]._spread=nt,xe}function c(H,X){return xe;function xe(Se){h.call(this,H(Se),Se),X&&X.call(this,Se)}}function u(){this.stack.push({type:"fragment",children:[]})}function h(H,X,xe){this.stack[this.stack.length-1].children.push(H),this.stack.push(H),this.tokenStack.push([X,xe||void 0]),H.position={start:Gn(X.start),end:void 0}}function m(H){return X;function X(xe){H&&H.call(this,xe),f.call(this,xe)}}function f(H,X){const xe=this.stack.pop(),Se=this.tokenStack.pop();if(Se)Se[0].type!==H.type&&(X?X.call(this,H,Se[0]):(Se[1]||Vp).call(this,H,Se[0]));else throw new Error("Cannot close `"+H.type+"` ("+Xi({start:H.start,end:H.end})+"): it’s not open");xe.position.end=Gn(H.end)}function y(){return nu(this.stack.pop())}function x(){this.data.expectingFirstListItemValue=!0}function w(H){if(this.data.expectingFirstListItemValue){const X=this.stack[this.stack.length-2];X.start=Number.parseInt(this.sliceSerialize(H),10),this.data.expectingFirstListItemValue=void 0}}function k(){const H=this.resume(),X=this.stack[this.stack.length-1];X.lang=H}function N(){const H=this.resume(),X=this.stack[this.stack.length-1];X.meta=H}function I(){this.data.flowCodeInside||(this.buffer(),this.data.flowCodeInside=!0)}function T(){const H=this.resume(),X=this.stack[this.stack.length-1];X.value=H.replace(/^(\r?\n|\r)|(\r?\n|\r)$/g,""),this.data.flowCodeInside=void 0}function _(){const H=this.resume(),X=this.stack[this.stack.length-1];X.value=H.replace(/(\r?\n|\r)$/g,"")}function z(H){const X=this.resume(),xe=this.stack[this.stack.length-1];xe.label=X,xe.identifier=Zt(this.sliceSerialize(H)).toLowerCase()}function B(){const H=this.resume(),X=this.stack[this.stack.length-1];X.title=H}function te(){const H=this.resume(),X=this.stack[this.stack.length-1];X.url=H}function Y(H){const X=this.stack[this.stack.length-1];if(!X.depth){const xe=this.sliceSerialize(H).length;X.depth=xe}}function F(){this.data.setextHeadingSlurpLineEnding=!0}function ne(H){const X=this.stack[this.stack.length-1];X.depth=this.sliceSerialize(H).codePointAt(0)===61?1:2}function ue(){this.data.setextHeadingSlurpLineEnding=void 0}function fe(H){const xe=this.stack[this.stack.length-1].children;let Se=xe[xe.length-1];(!Se||Se.type!=="text")&&(Se=mo(),Se.position={start:Gn(H.start),end:void 0},xe.push(Se)),this.stack.push(Se)}function R(H){const X=this.stack.pop();X.value+=this.sliceSerialize(H),X.position.end=Gn(H.end)}function ee(H){const X=this.stack[this.stack.length-1];if(this.data.atHardBreak){const xe=X.children[X.children.length-1];xe.position.end=Gn(H.end),this.data.atHardBreak=void 0;return}!this.data.setextHeadingSlurpLineEnding&&o.canContainEols.includes(X.type)&&(fe.call(this,H),R.call(this,H))}function Z(){this.data.atHardBreak=!0}function ye(){const H=this.resume(),X=this.stack[this.stack.length-1];X.value=H}function ie(){const H=this.resume(),X=this.stack[this.stack.length-1];X.value=H}function J(){const H=this.resume(),X=this.stack[this.stack.length-1];X.value=H}function ke(){const H=this.stack[this.stack.length-1];if(this.data.inReference){const X=this.data.referenceType||"shortcut";H.type+="Reference",H.referenceType=X,delete H.url,delete H.title}else delete H.identifier,delete H.label;this.data.referenceType=void 0}function je(){const H=this.stack[this.stack.length-1];if(this.data.inReference){const X=this.data.referenceType||"shortcut";H.type+="Reference",H.referenceType=X,delete H.url,delete H.title}else delete H.identifier,delete H.label;this.data.referenceType=void 0}function Q(H){const X=this.sliceSerialize(H),xe=this.stack[this.stack.length-2];xe.label=Ob(X),xe.identifier=Zt(X).toLowerCase()}function ce(){const H=this.stack[this.stack.length-1],X=this.resume(),xe=this.stack[this.stack.length-1];if(this.data.inReference=!0,xe.type==="link"){const Se=H.children;xe.children=Se}else xe.alt=X}function j(){const H=this.resume(),X=this.stack[this.stack.length-1];X.url=H}function A(){const H=this.resume(),X=this.stack[this.stack.length-1];X.title=H}function W(){this.data.inReference=void 0}function S(){this.data.referenceType="collapsed"}function ge(H){const X=this.resume(),xe=this.stack[this.stack.length-1];xe.label=X,xe.identifier=Zt(this.sliceSerialize(H)).toLowerCase(),this.data.referenceType="full"}function be(H){this.data.characterReferenceType=H.type}function me(H){const X=this.sliceSerialize(H),xe=this.data.characterReferenceType;let Se;xe?(Se=lf(X,xe==="characterReferenceMarkerNumeric"?10:16),this.data.characterReferenceType=void 0):Se=ru(X);const _e=this.stack[this.stack.length-1];_e.value+=Se}function Pe(H){const X=this.stack.pop();X.position.end=Gn(H.end)}function Ne(H){R.call(this,H);const X=this.stack[this.stack.length-1];X.url=this.sliceSerialize(H)}function Re(H){R.call(this,H);const X=this.stack[this.stack.length-1];X.url="mailto:"+this.sliceSerialize(H)}function Ye(){return{type:"blockquote",children:[]}}function dn(){return{type:"code",lang:null,meta:null,value:""}}function uo(){return{type:"inlineCode",value:""}}function vr(){return{type:"definition",identifier:"",label:null,title:null,url:""}}function ii(){return{type:"emphasis",children:[]}}function oi(){return{type:"heading",depth:0,children:[]}}function ai(){return{type:"break"}}function wr(){return{type:"html",value:""}}function ho(){return{type:"image",title:null,url:"",alt:null}}function kr(){return{type:"link",title:null,url:"",children:[]}}function Nn(H){return{type:"list",ordered:H.type==="listOrdered",start:null,spread:H._spread,children:[]}}function Sn(H){return{type:"listItem",spread:H._spread,checked:null,children:[]}}function si(){return{type:"paragraph",children:[]}}function po(){return{type:"strong",children:[]}}function mo(){return{type:"text",value:""}}function fo(){return{type:"thematicBreak"}}}function Gn(e){return{line:e.line,column:e.column,offset:e.offset}}function vf(e,o){let i=-1;for(;++i<o.length;){const s=o[i];Array.isArray(s)?vf(e,s):Fb(e,s)}}function Fb(e,o){let i;for(i in o)if(xf.call(o,i))switch(i){case"canContainEols":{const s=o[i];s&&e[i].push(...s);break}case"transforms":{const s=o[i];s&&e[i].push(...s);break}case"enter":case"exit":{const s=o[i];s&&Object.assign(e[i],s);break}}}function Vp(e,o){throw e?new Error("Cannot close `"+e.type+"` ("+Xi({start:e.start,end:e.end})+"): a different token (`"+o.type+"`, "+Xi({start:o.start,end:o.end}
vendor: 5,157 bytes, lines 123-127
123)+") is open"):new Error("Cannot close document, a token (`"+o.type+"`, "+Xi({start:o.start,end:o.end})+") is still open")}function zb(e){const o=this;o.parser=i;function i(s){return Db(s,{...o.data("settings"),...e,extensions:o.data("micromarkExtensions")||[],mdastExtensions:o.data("fromMarkdownExtensions")||[]})}}function Bb(e,o){const i={type:"element",tagName:"blockquote",properties:{},children:e.wrap(e.all(o),!0)};return e.patch(o,i),e.applyData(o,i)}function Ub(e,o){const i={type:"element",tagName:"br",properties:{},children:[]};return e.patch(o,i),[e.applyData(o,i),{type:"text",value:`
124`}]}function Hb(e,o){const i=o.value?o.value+`
125`:"",s={},l=o.lang?o.lang.split(/\s+/):[];l.length>0&&(s.className=["language-"+l[0]]);let c={type:"element",tagName:"code",properties:s,children:[{type:"text",value:i}]};return o.meta&&(c.data={meta:o.meta}),e.patch(o,c),c=e.applyData(o,c),c={type:"element",tagName:"pre",properties:{},children:[c]},e.patch(o,c),c}function Wb(e,o){const i={type:"element",tagName:"del",properties:{},children:e.all(o)};return e.patch(o,i),e.applyData(o,i)}function Vb(e,o){const i={type:"element",tagName:"em",properties:{},children:e.all(o)};return e.patch(o,i),e.applyData(o,i)}function $b(e,o){const i=typeof e.options.clobberPrefix=="string"?e.options.clobberPrefix:"user-content-",s=String(o.identifier).toUpperCase(),l=ri(s.toLowerCase()),c=e.footnoteOrder.indexOf(s);let u,h=e.footnoteCounts.get(s);h===void 0?(h=0,e.footnoteOrder.push(s),u=e.footnoteOrder.length):u=c+1,h+=1,e.footnoteCounts.set(s,h);const m={type:"element",tagName:"a",properties:{href:"#"+i+"fn-"+l,id:i+"fnref-"+l+(h>1?"-"+h:""),dataFootnoteRef:!0,ariaDescribedBy:["footnote-label"]},children:[{type:"text",value:String(u)}]};e.patch(o,m);const f={type:"element",tagName:"sup",properties:{},children:[m]};return e.patch(o,f),e.applyData(o,f)}function Gb(e,o){const i={type:"element",tagName:"h"+o.depth,properties:{},children:e.all(o)};return e.patch(o,i),e.applyData(o,i)}function qb(e,o){if(e.options.allowDangerousHtml){const i={type:"raw",value:o.value};return e.patch(o,i),e.applyData(o,i)}}function wf(e,o){const i=o.referenceType;let s="]";if(i==="collapsed"?s+="[]":i==="full"&&(s+="["+(o.label||o.identifier)+"]"),o.type==="imageReference")return[{type:"text",value:"!["+o.alt+s}];const l=e.all(o),c=l[0];c&&c.type==="text"?c.value="["+c.value:l.unshift({type:"text",value:"["});const u=l[l.length-1];return u&&u.type==="text"?u.value+=s:l.push({type:"text",value:s}),l}function Yb(e,o){const i=String(o.identifier).toUpperCase(),s=e.definitionById.get(i);if(!s)return wf(e,o);const l={src:ri(s.url||""),alt:o.alt};s.title!==null&&s.title!==void 0&&(l.title=s.title);const c={type:"element",tagName:"img",properties:l,children:[]};return e.patch(o,c),e.applyData(o,c)}function Jb(e,o){const i={src:ri(o.url)};o.alt!==null&&o.alt!==void 0&&(i.alt=o.alt),o.title!==null&&o.title!==void 0&&(i.title=o.title);const s={type:"element",tagName:"img",properties:i,children:[]};return e.patch(o,s),e.applyData(o,s)}function Kb(e,o){const i={type:"text",value:o.value.replace(/\r?\n|\r/g," ")};e.patch(o,i);const s={type:"element",tagName:"code",properties:{},children:[i]};return e.patch(o,s),e.applyData(o,s)}function Qb(e,o){const i=String(o.identifier).toUpperCase(),s=e.definitionById.get(i);if(!s)return wf(e,o);const l={href:ri(s.url||"")};s.title!==null&&s.title!==void 0&&(l.title=s.title);const c={type:"element",tagName:"a",properties:l,children:e.all(o)};return e.patch(o,c),e.applyData(o,c)}function Xb(e,o){const i={href:ri(o.url)};o.title!==null&&o.title!==void 0&&(i.title=o.title);const s={type:"element",tagName:"a",properties:i,children:e.all(o)};return e.patch(o,s),e.applyData(o,s)}function Zb(e,o,i){const s=e.all(o),l=i?e1(i):kf(o),c={},u=[];if(typeof o.checked=="boolean"){const y=s[0];let x;y&&y.type==="element"&&y.tagName==="p"?x=y:(x={type:"element",tagName:"p",properties:{},children:[]},s.unshift(x)),x.children.length>0&&x.children.unshift({type:"text",value:" "}),x.children.unshift({type:"element",tagName:"input",properties:{type:"checkbox",checked:o.checked,disabled:!0},children:[]}),c.className=["task-list-item"]}let h=-1;for(;++h<s.length;){const y=s[h];(l||h!==0||y.type!=="element"||y.tagName!=="p")&&u.push({type:"text",value:`
126`}),y.type==="element"&&y.tagName==="p"&&!l?u.push(...y.children):u.push(y)}const m=s[s.length-1];m&&(l||m.type!=="element"||m.tagName!=="p")&&u.push({type:"text",value:`
127`});const f={type:"element",tagName:"li",properties:c,children:u};return e.patch(o,f),e.applyData(o,f)}function e1(e){let o=!1;if(e.type==="list"){o=e.spread||!1;const i=e.children;let s=-1;for(;!o&&++s<i.length;)o=kf(i[s])}return o}function kf(e){const o=e.spread;return o??e.children.length>1}function t1(e,o){const i={},s=e.all(o);let l=-1;for(typeof o.start=="number"&&o.start!==1&&(i.start=o.start);++l<s.length;){const u=s[l];if(u.type==="element"&&u.tagName==="li"&&u.properties&&Array.isArray(u.properties.className)&&u.properties.className.includes("task-list-item")){i.className=["contains-task-list"];break}}const c={type:"element",tagName:o.ordered?"ol":"ul",properties:i,children:e.wrap(s,!0)};
vendor: 2,616 bytes, line 127
127return e.patch(o,c),e.applyData(o,c)}function n1(e,o){const i={type:"element",tagName:"p",properties:{},children:e.all(o)};return e.patch(o,i),e.applyData(o,i)}function r1(e,o){const i={type:"root",children:e.wrap(e.all(o))};return e.patch(o,i),e.applyData(o,i)}function i1(e,o){const i={type:"element",tagName:"strong",properties:{},children:e.all(o)};return e.patch(o,i),e.applyData(o,i)}function o1(e,o){const i=e.all(o),s=i.shift(),l=[];if(s){const u={type:"element",tagName:"thead",properties:{},children:e.wrap([s],!0)};e.patch(o.children[0],u),l.push(u)}if(i.length>0){const u={type:"element",tagName:"tbody",properties:{},children:e.wrap(i,!0)},h=Xc(o.children[1]),m=Zm(o.children[o.children.length-1]);h&&m&&(u.position={start:h,end:m}),l.push(u)}const c={type:"element",tagName:"table",properties:{},children:e.wrap(l,!0)};return e.patch(o,c),e.applyData(o,c)}function a1(e,o,i){const s=i?i.children:void 0,c=(s?s.indexOf(o):1)===0?"th":"td",u=i&&i.type==="table"?i.align:void 0,h=u?u.length:o.children.length;let m=-1;const f=[];for(;++m<h;){const x=o.children[m],w={},k=u?u[m]:void 0;k&&(w.align=k);let N={type:"element",tagName:c,properties:w,children:[]};x&&(N.children=e.all(x),e.patch(x,N),N=e.applyData(x,N)),f.push(N)}const y={type:"element",tagName:"tr",properties:{},children:e.wrap(f,!0)};return e.patch(o,y),e.applyData(o,y)}function s1(e,o){const i={type:"element",tagName:"td",properties:{},children:e.all(o)};return e.patch(o,i),e.applyData(o,i)}const $p=9,Gp=32;function l1(e){const o=String(e),i=/\r?\n|\r/g;let s=i.exec(o),l=0;const c=[];for(;s;)c.push(qp(o.slice(l,s.index),l>0,!0),s[0]),l=s.index+s[0].length,s=i.exec(o);return c.push(qp(o.slice(l),l>0,!1)),c.join("")}function qp(e,o,i){let s=0,l=e.length;if(o){let c=e.codePointAt(s);for(;c===$p||c===Gp;)s++,c=e.codePointAt(s)}if(i){let c=e.codePointAt(l-1);for(;c===$p||c===Gp;)l--,c=e.codePointAt(l-1)}return l>s?e.slice(s,l):""}function c1(e,o){const i={type:"text",value:l1(String(o.value))};return e.patch(o,i),e.applyData(o,i)}function u1(e,o){const i={type:"element",tagName:"hr",properties:{},children:[]};return e.patch(o,i),e.applyData(o,i)}const d1={blockquote:Bb,break:Ub,code:Hb,delete:Wb,emphasis:Vb,footnoteReference:$b,heading:Gb,html:qb,imageReference:Yb,image:Jb,inlineCode:Kb,linkReference:Qb,link:Xb,listItem:Zb,list:t1,paragraph:n1,root:r1,strong:i1,table:o1,tableCell:s1,tableRow:a1,text:c1,thematicBreak:u1,toml:Ca,yaml:Ca,definition:Ca,footnoteDefinition:Ca};function Ca(){}const jf=-1,ts=0,eo=1,$a=2,ou=3,au=4,su=5,lu=6,bf=7,Nf=8,{defineProperty:h1}=Object,Sf=typeof self=="object"?self:globalThis,Yp=(e,o)=>
127{switch(e){case"Function":case"SharedWorker":case"Worker":case"eval":case"setInterval":case"setTimeout":throw new TypeError("unable to deserialize "+e)}return new Sf[e](o)},p1=(e,o)=>{const i=(l,c)=>(e.set(c,l),l),s=l=>{if(e.has(l))return e.get(l);const[c,u]=o[l];switch(c){case ts:case jf:return i(u,l);case eo:{const h=i([],l);for(const m of u)h.push(s(m));return h}case $a:{const h=i({},l);for(const[m,f]of u){const y=s(m),x=s(f);y==="__proto__"?h1(h,y,{value:x,configurable:!0,enumerable:!0,writable:!0}):h[y]=x}return h}case ou:return i(new Date(u),l);case au:{const{source:h,flags:m}=u;return i(new RegExp(h,m),l)}case su:{const h=i(new Map,l);for(const[m,f]of u)h.set(s(m),s(f));return h}case lu:{const h=i(new Set,l);for(const m of u)h.add(s(m));return h}case bf:{const{name:h,message:m}=u;return i(typeof Sf[h]=="function"?Yp(h,m):new Error(m),l)}case Nf:return i(BigInt(u),l);case"BigInt":return i(Object(BigInt(u)),l);case"ArrayBuffer":return i(new Uint8Array(u).buffer,u);case"DataView":{const{buffer:h}=new Uint8Array(u);return i(new DataView(h),u)}case"-0":return-0}return i(Yp(c,u),l)};return s},Jp=e=>p1(new Map,e)(0),mr="",{toString:m1}={},{keys:f1,is:g1}=Object,Qi=e=>{const o=typeof e;if(o!=="object"||!e)return[ts,o];const i=m1.call(e).slice(8,-1);switch(i){case"Array":return[eo,mr];case"Object":return[$a,mr];case"Date":return[ou,mr];case"RegExp":return[au,mr];case"Map":return[su,mr];case"Set":return[lu,mr];case"DataView":return[eo,i]}return i.includes("Array")?[eo,i]:e instanceof Error?[bf,e.name||"Error"]:[$a,i]},Ea=([e,o])=>e===ts&&(o==="function"||o==="symbol"),y1=(e,o,i,s)=>{const l=(u,h)=>{const m=s.push(u)-1;return i.set(h,m),m},c=u=>{if(i.has(u))return i.get(u);let[h,m]=Qi(u);switch(h){case ts:{let y=u;switch(m){case"bigint":h=Nf,y=u.toString();break;case"number":if(!u&&g1(u,-0))return s.push(["-0"])-1;break;case"function":case"symbol":if(e)throw new TypeError("unable to serialize "+m);y=null;break;case"undefined":return l([jf],u)}return l([h,y],u)}case eo:{if(m){let w=u;return m==="DataView"?w=new Uint8Array(u.buffer):m==="ArrayBuffer"&&(w=new Uint8Array(u)),l([m,[...w]],u)}const y=[],x=l([h,y],u);for(const w of u)y.push(c(w));return x}case $a:{if(m)switch(m){case"BigInt":return l([m,u.toString()],u);case"Boolean":case"Number":case"String":return l([m,u.valueOf()],u)}if(o&&"toJSON"in u)return c(u.toJSON());const y=[],x=l([h,y],u);for(const w of f1(u))(e||!Ea(Qi(u[w])))&&y.push([c(w),c(u[w])]);return x}case ou:return l([h,isNaN(u.getTime())?mr:u.toISOString()],u);case au:{const{source:y,flags:x}=u;return l([h,{source:y,flags:x}],u)}case su:{const y=[],x=l([h,y],u);for(const[w,k]of u)(e||!(Ea(Qi(w))||Ea(Qi(k))))&&y.push([c(w),c(k)]);return x}case lu:{const y=[],x=l([h,y],u);for(const w of u)(e||!Ea(Qi(w)))&&y.push(c(w));return x}}const{message:f}=u;return l([h,{name:m,message:f}],u)};return c},Kp=(e,{json:o,lossy:i}={})=>{const s=[];return y1(!(o||i),!!o,new Map,s)(e),s},Ga=typeof structuredClone=="function"?(e,o)=>o&&("json"in o||"lossy"in o)?Jp(Kp(e,o)):structuredClone(e):(e,o)=>Jp(Kp(e,o));function x1(e,o){const i=[{type:"text",value:"↩"}];return o>1&&i.push({type:"element",tagName:"sup",properties:{},children:[{type:"text",value:String(o)}]}),i}function v1(e,o){return"Back to reference "+(e+1)+(o>1?"-"+o:"")}function w1(e){const o=typeof e.options.clobberPrefix=="string"?e.options.clobberPrefix:"user-content-",i=e.options.footnoteBackContent||x1,s=e.options.footnoteBackLabel||v1,l=e.options.footnoteLabel||"Footnotes",c=e.options.footnoteLabelTagName||"h2",u=e.options.footnoteLabelProperties||{className:["sr-only"]},h=[];let m=-1;for(;++m<e.footnoteOrder.length;){const f=e.footnoteById.get(e.footnoteOrder[m]);if(!f)continue;const y=e.all(f),x=String(f.identifier).toUpperCase(),w=ri(x.toLowerCase());let k=0;const N=[],I=e.footnoteCounts.get(x);for(;I!==void 0&&++k<=I;){N.length>0&&N.push({type:"text",value:" "});let z=typeof i=="string"?i:i(m,k);typeof z=="string"&&(z={type:"text",value:z}),N.push({type:"element",tagName:"a",properties:{href:"#"+o+"fnref-"+w+(k>1?"-"+k:""),dataFootnoteBackref:"",ariaLabel:typeof s=="string"?s:s(m,k),className:["data-footnote-backref"]},children:Array.isArray(z)?z:[z]})}const T=y[y.length-1];if(T&&T.type==="element"&&T.tagName==="p"){const z=T.children[T.children.length-1];z&&z.type==="text"?z.value+=" ":T.children.push({type:"text",value:" "}),T.children.push(...N)}else y.push(...N);const _={type:"element",tagName:"li",properties:{id:o+"fn-"+w},children:e.wrap(y,!0)};e.patch(f,_),h.push(_)}if(h.length!==0)return{type:"element",tagName:"section",properties:{dataFootnotes:!0,className:["footnotes"]},children:[{type:"element",tagName:c,properties:{...Ga(u),id:"footnote-label"},children:[{type:"text",value:l}]},{type:"text",value:`
128`},{type:"element",tagName:"ol",properties:{},children:e.wrap(h,!0)}
vendor: 1,247 bytes, lines 128-129
128,{type:"text",value:`
129`}]}}const ns=(function(e){if(e==null)return N1;if(typeof e=="function")return rs(e);if(typeof e=="object")return Array.isArray(e)?k1(e):j1(e);if(typeof e=="string")return b1(e);throw new Error("Expected function, string, or object as test")});function k1(e){const o=[];let i=-1;for(;++i<e.length;)o[i]=ns(e[i]);return rs(s);function s(...l){let c=-1;for(;++c<o.length;)if(o[c].apply(this,l))return!0;return!1}}function j1(e){const o=e;return rs(i);function i(s){const l=s;let c;for(c in e)if(l[c]!==o[c])return!1;return!0}}function b1(e){return rs(o);function o(i){return i&&i.type===e}}function rs(e){return o;function o(i,s,l){return!!(S1(i)&&e.call(this,i,typeof s=="number"?s:void 0,l||void 0))}}function N1(){return!0}function S1(e){return e!==null&&typeof e=="object"&&"type"in e}const Tf=[],T1=!0,Ic=!1,C1="skip";function Cf(e,o,i,s){let l;typeof o=="function"&&typeof i!="function"?(s=i,i=o):l=o;const c=ns(l),u=s?-1:1;h(e,void 0,[])();function h(m,f,y){const x=m&&typeof m=="object"?m:{};if(typeof x.type=="string"){const k=typeof x.tagName=="string"?x.tagName:typeof x.name=="string"?x.name:void 0;Object.defineProperty(w,"name",{value:"node ("+(m.type+(k?"<"+k+">":""))+")"})}return w;function w(){let k=Tf,N,I,T;
vendor: 4,314 bytes, lines 129-133
129if((!o||c(m,f,y[y.length-1]||void 0))&&(k=E1(i(m,y)),k[0]===Ic))return k;if("children"in m&&m.children){const _=m;if(_.children&&k[0]!==C1)for(I=(s?_.children.length:-1)+u,T=y.concat(_);I>-1&&I<_.children.length;){const z=_.children[I];if(N=h(z,I,T)(),N[0]===Ic)return N;I=typeof N[1]=="number"?N[1]:I+u}}return k}}}function E1(e){return Array.isArray(e)?e:typeof e=="number"?[T1,e]:e==null?Tf:[e]}function cu(e,o,i,s){let l,c,u;typeof o=="function"&&typeof i!="function"?(c=void 0,u=o,l=i):(c=o,u=i,l=s),Cf(e,c,h,l);function h(m,f){const y=f[f.length-1],x=y?y.children.indexOf(m):void 0;return u(m,x,y)}}const Pc={}.hasOwnProperty,_1={};function I1(e,o){const i=o||_1,s=new Map,l=new Map,c=new Map,u={...d1,...i.handlers},h={all:f,applyData:A1,definitionById:s,footnoteById:l,footnoteCounts:c,footnoteOrder:[],handlers:u,one:m,options:i,patch:P1,wrap:O1};return cu(e,function(y){if(y.type==="definition"||y.type==="footnoteDefinition"){const x=y.type==="definition"?s:l,w=String(y.identifier).toUpperCase();x.has(w)||x.set(w,y)}}),h;function m(y,x){const w=y.type,k=h.handlers[w];if(Pc.call(h.handlers,w)&&k)return k(h,y,x);if(h.options.passThrough&&h.options.passThrough.includes(w)){if("children"in y){const{children:I,...T}=y,_=Ga(T);return _.children=h.all(y),_}return Ga(y)}return(h.options.unknownHandler||R1)(h,y,x)}function f(y){const x=[];if("children"in y){const w=y.children;let k=-1;for(;++k<w.length;){const N=h.one(w[k],y);if(N){if(k&&w[k-1].type==="break"&&(!Array.isArray(N)&&N.type==="text"&&(N.value=Qp(N.value)),!Array.isArray(N)&&N.type==="element")){const I=N.children[0];I&&I.type==="text"&&(I.value=Qp(I.value))}Array.isArray(N)?x.push(...N):x.push(N)}}}return x}}function P1(e,o){e.position&&(o.position=yk(e))}function A1(e,o){let i=o;if(e&&e.data){const s=e.data.hName,l=e.data.hChildren,c=e.data.hProperties;if(typeof s=="string")if(i.type==="element")i.tagName=s;else{const u="children"in i?i.children:[i];i={type:"element",tagName:s,properties:{},children:u}}i.type==="element"&&c&&Object.assign(i.properties,Ga(c)),"children"in i&&i.children&&l!==null&&l!==void 0&&(i.children=l)}return i}function R1(e,o){const i=o.data||{},s="value"in o&&!(Pc.call(i,"hProperties")||Pc.call(i,"hChildren"))?{type:"text",value:o.value}:{type:"element",tagName:"div",properties:{},children:e.all(o)};return e.patch(o,s),e.applyData(o,s)}function O1(e,o){const i=[];let s=-1;for(o&&i.push({type:"text",value:`
130`});++s<e.length;)s&&i.push({type:"text",value:`
131`}),i.push(e[s]);return o&&e.length>0&&i.push({type:"text",value:`
132`}),i}function Qp(e){let o=0,i=e.charCodeAt(o);for(;i===9||i===32;)o++,i=e.charCodeAt(o);return e.slice(o)}function Xp(e,o){const i=I1(e,o),s=i.one(e,void 0),l=w1(i),c=Array.isArray(s)?{type:"root",children:s}:s||{type:"root",children:[]};return l&&c.children.push({type:"text",value:`
133`},l),c}function L1(e,o){return e&&"run"in e?async function(i,s){const l=Xp(i,{file:s,...o});await e.run(l,s)}:function(i,s){return Xp(i,{file:s,...e||o})}}function Zp(e){if(e)throw e}var oc,em;function D1(){if(em)return oc;em=1;var e=Object.prototype.hasOwnProperty,o=Object.prototype.toString,i=Object.defineProperty,s=Object.getOwnPropertyDescriptor,l=function(f){return typeof Array.isArray=="function"?Array.isArray(f):o.call(f)==="[object Array]"},c=function(f){if(!f||o.call(f)!=="[object Object]")return!1;var y=e.call(f,"constructor"),x=f.constructor&&f.constructor.prototype&&e.call(f.constructor.prototype,"isPrototypeOf");if(f.constructor&&!y&&!x)return!1;var w;for(w in f);return typeof w>"u"||e.call(f,w)},u=function(f,y){i&&y.name==="__proto__"?i(f,y.name,{enumerable:!0,configurable:!0,value:y.newValue,writable:!0}):f[y.name]=y.newValue},h=function(f,y){if(y==="__proto__")if(e.call(f,y)){if(s)return s(f,y).value}else return;return f[y]};return oc=function m(){var f,y,x,w,k,N,I=arguments[0],T=1,_=arguments.length,z=!1;for(typeof I=="boolean"&&(z=I,I=arguments[1]||{},T=2),(I==null||typeof I!="object"&&typeof I!="function")&&(I={});T<_;++T)if(f=arguments[T],f!=null)for(y in f)x=h(I,y),w=h(f,y),I!==w&&(z&&w&&(c(w)||(k=l(w)))?(k?(k=!1,N=x&&l(x)?x:[]):N=x&&c(x)?x:{},u(I,{name:y,newValue:m(z,N,w)})):typeof w<"u"&&u(I,{name:y,newValue:w}));return I},oc}var M1=D1();const ac=Lc(M1);function Ac(e){if(typeof e!="object"||e===null)return!1;const o=Object.getPrototypeOf(e);
vendor: 4,083 bytes, line 133
133return(o===null||o===Object.prototype||Object.getPrototypeOf(o)===null)&&!(Symbol.toStringTag in e)&&!(Symbol.iterator in e)}function F1(){const e=[],o={run:i,use:s};return o;function i(...l){let c=-1;const u=l.pop();if(typeof u!="function")throw new TypeError("Expected function as last argument, not "+u);h(null,...l);function h(m,...f){const y=e[++c];let x=-1;if(m){u(m);return}for(;++x<l.length;)(f[x]===null||f[x]===void 0)&&(f[x]=l[x]);l=f,y?z1(y,h)(...f):u(null,...f)}}function s(l){if(typeof l!="function")throw new TypeError("Expected `middelware` to be a function, not "+l);return e.push(l),o}}function z1(e,o){let i;return s;function s(...u){const h=e.length>u.length;let m;h&&u.push(l);try{m=e.apply(this,u)}catch(f){const y=f;if(h&&i)throw y;return l(y)}h||(m&&m.then&&typeof m.then=="function"?m.then(c,l):m instanceof Error?l(m):c(m))}function l(u,...h){i||(i=!0,o(u,...h))}function c(u){l(null,u)}}const cn={basename:B1,dirname:U1,extname:H1,join:W1,sep:"/"};function B1(e,o){if(o!==void 0&&typeof o!="string")throw new TypeError('"ext" argument must be a string');co(e);let i=0,s=-1,l=e.length,c;if(o===void 0||o.length===0||o.length>e.length){for(;l--;)if(e.codePointAt(l)===47){if(c){i=l+1;break}}else s<0&&(c=!0,s=l+1);return s<0?"":e.slice(i,s)}if(o===e)return"";let u=-1,h=o.length-1;for(;l--;)if(e.codePointAt(l)===47){if(c){i=l+1;break}}else u<0&&(c=!0,u=l+1),h>-1&&(e.codePointAt(l)===o.codePointAt(h--)?h<0&&(s=l):(h=-1,s=u));return i===s?s=u:s<0&&(s=e.length),e.slice(i,s)}function U1(e){if(co(e),e.length===0)return".";let o=-1,i=e.length,s;for(;--i;)if(e.codePointAt(i)===47){if(s){o=i;break}}else s||(s=!0);return o<0?e.codePointAt(0)===47?"/":".":o===1&&e.codePointAt(0)===47?"//":e.slice(0,o)}function H1(e){co(e);let o=e.length,i=-1,s=0,l=-1,c=0,u;for(;o--;){const h=e.codePointAt(o);if(h===47){if(u){s=o+1;break}continue}i<0&&(u=!0,i=o+1),h===46?l<0?l=o:c!==1&&(c=1):l>-1&&(c=-1)}return l<0||i<0||c===0||c===1&&l===i-1&&l===s+1?"":e.slice(l,i)}function W1(...e){let o=-1,i;for(;++o<e.length;)co(e[o]),e[o]&&(i=i===void 0?e[o]:i+"/"+e[o]);return i===void 0?".":V1(i)}function V1(e){co(e);const o=e.codePointAt(0)===47;let i=$1(e,!o);return i.length===0&&!o&&(i="."),i.length>0&&e.codePointAt(e.length-1)===47&&(i+="/"),o?"/"+i:i}function $1(e,o){let i="",s=0,l=-1,c=0,u=-1,h,m;for(;++u<=e.length;){if(u<e.length)h=e.codePointAt(u);else{if(h===47)break;h=47}if(h===47){if(!(l===u-1||c===1))if(l!==u-1&&c===2){if(i.length<2||s!==2||i.codePointAt(i.length-1)!==46||i.codePointAt(i.length-2)!==46){if(i.length>2){if(m=i.lastIndexOf("/"),m!==i.length-1){m<0?(i="",s=0):(i=i.slice(0,m),s=i.length-1-i.lastIndexOf("/")),l=u,c=0;continue}}else if(i.length>0){i="",s=0,l=u,c=0;continue}}o&&(i=i.length>0?i+"/..":"..",s=2)}else i.length>0?i+="/"+e.slice(l+1,u):i=e.slice(l+1,u),s=u-l-1;l=u,c=0}else h===46&&c>-1?c++:c=-1}return i}function co(e){if(typeof e!="string")throw new TypeError("Path must be a string. Received "+JSON.stringify(e))}const G1={cwd:q1};function q1(){return"/"}function Rc(e){return!!(e!==null&&typeof e=="object"&&"href"in e&&e.href&&"protocol"in e&&e.protocol&&e.auth===void 0)}function Y1(e){if(typeof e=="string")e=new URL(e);else if(!Rc(e)){const o=new TypeError('The "path" argument must be of type string or an instance of URL. Received `'+e+"`");throw o.code="ERR_INVALID_ARG_TYPE",o}if(e.protocol!=="file:"){const o=new TypeError("The URL must be of scheme file");throw o.code="ERR_INVALID_URL_SCHEME",o}return J1(e)}function J1(e){if(e.hostname!==""){const s=new TypeError('File URL host must be "localhost" or empty on darwin');throw s.code="ERR_INVALID_FILE_URL_HOST",s}const o=e.pathname;let i=-1;for(;++i<o.length;)if(o.codePointAt(i)===37&&o.codePointAt(i+1)===50){const s=o.codePointAt(i+2);if(s===70||s===102){const l=new TypeError("File URL path must not include encoded / characters");throw l.code="ERR_INVALID_FILE_URL_PATH",l}}return decodeURIComponent(o)}const sc=["history","path","basename","stem","extname","dirname"];class Ef{constructor(o){let i;o?Rc(o)?i={path:o}:typeof o=="string"||K1(o)?i={value:o}:i=o:i={}
vendor: 2,964 bytes, line 133
133,this.cwd="cwd"in i?"":G1.cwd(),this.data={},this.history=[],this.messages=[],this.value,this.map,this.result,this.stored;let s=-1;for(;++s<sc.length;){const c=sc[s];c in i&&i[c]!==void 0&&i[c]!==null&&(this[c]=c==="history"?[...i[c]]:i[c])}let l;for(l in i)sc.includes(l)||(this[l]=i[l])}get basename(){return typeof this.path=="string"?cn.basename(this.path):void 0}set basename(o){cc(o,"basename"),lc(o,"basename"),this.path=cn.join(this.dirname||"",o)}get dirname(){return typeof this.path=="string"?cn.dirname(this.path):void 0}set dirname(o){tm(this.basename,"dirname"),this.path=cn.join(o||"",this.basename)}get extname(){return typeof this.path=="string"?cn.extname(this.path):void 0}set extname(o){if(lc(o,"extname"),tm(this.dirname,"extname"),o){if(o.codePointAt(0)!==46)throw new Error("`extname` must start with `.`");if(o.includes(".",1))throw new Error("`extname` cannot contain multiple dots")}this.path=cn.join(this.dirname,this.stem+(o||""))}get path(){return this.history[this.history.length-1]}set path(o){Rc(o)&&(o=Y1(o)),cc(o,"path"),this.path!==o&&this.history.push(o)}get stem(){return typeof this.path=="string"?cn.basename(this.path,this.extname):void 0}set stem(o){cc(o,"stem"),lc(o,"stem"),this.path=cn.join(this.dirname||"",o+(this.extname||""))}fail(o,i,s){const l=this.message(o,i,s);throw l.fatal=!0,l}info(o,i,s){const l=this.message(o,i,s);return l.fatal=void 0,l}message(o,i,s){const l=new ht(o,i,s);return this.path&&(l.name=this.path+":"+l.name,l.file=this.path),l.fatal=!1,this.messages.push(l),l}toString(o){return this.value===void 0?"":typeof this.value=="string"?this.value:new TextDecoder(o||void 0).decode(this.value)}}function lc(e,o){if(e&&e.includes(cn.sep))throw new Error("`"+o+"` cannot be a path: did not expect `"+cn.sep+"`")}function cc(e,o){if(!e)throw new Error("`"+o+"` cannot be empty")}function tm(e,o){if(!e)throw new Error("Setting `"+o+"` requires `path` to be set too")}function K1(e){return!!(e&&typeof e=="object"&&"byteLength"in e&&"byteOffset"in e)}const Q1=(function(e){const s=this.constructor.prototype,l=s[e],c=function(){return l.apply(c,arguments)};return Object.setPrototypeOf(c,s),c}),X1={}.hasOwnProperty;class uu extends Q1{constructor(){super("copy"),this.Compiler=void 0,this.Parser=void 0,this.attachers=[],this.compiler=void 0,this.freezeIndex=-1,this.frozen=void 0,this.namespace={},this.parser=void 0,this.transformers=F1()}copy(){const o=new uu;let i=-1;for(;++i<this.attachers.length;){const s=this.attachers[i];o.use(...s)}return o.data(ac(!0,{},this.namespace)),o}data(o,i){return typeof o=="string"?arguments.length===2?(hc("data",this.frozen),this.namespace[o]=i,this):X1.call(this.namespace,o)&&this.namespace[o]||void 0:o?(hc("data",this.frozen),this.namespace=o,this):this.namespace}freeze(){if(this.frozen)return this;const o=this;for(;++this.freezeIndex<this.attachers.length;){const[i,...s]=this.attachers[this.freezeIndex];if(s[0]===!1)continue;s[0]===!0&&(s[0]=void 0);
vendor: 4,795 bytes, line 133
133const l=i.call(o,...s);typeof l=="function"&&this.transformers.use(l)}return this.frozen=!0,this.freezeIndex=Number.POSITIVE_INFINITY,this}parse(o){this.freeze();const i=_a(o),s=this.parser||this.Parser;return uc("parse",s),s(String(i),i)}process(o,i){const s=this;return this.freeze(),uc("process",this.parser||this.Parser),dc("process",this.compiler||this.Compiler),i?l(void 0,i):new Promise(l);function l(c,u){const h=_a(o),m=s.parse(h);s.run(m,h,function(y,x,w){if(y||!x||!w)return f(y);const k=x,N=s.stringify(k,w);t0(N)?w.value=N:w.result=N,f(y,w)});function f(y,x){y||!x?u(y):c?c(x):i(void 0,x)}}}processSync(o){let i=!1,s;return this.freeze(),uc("processSync",this.parser||this.Parser),dc("processSync",this.compiler||this.Compiler),this.process(o,l),rm("processSync","process",i),s;function l(c,u){i=!0,Zp(c),s=u}}run(o,i,s){nm(o),this.freeze();const l=this.transformers;return!s&&typeof i=="function"&&(s=i,i=void 0),s?c(void 0,s):new Promise(c);function c(u,h){const m=_a(i);l.run(o,m,f);function f(y,x,w){const k=x||o;y?h(y):u?u(k):s(void 0,k,w)}}}runSync(o,i){let s=!1,l;return this.run(o,i,c),rm("runSync","run",s),l;function c(u,h){Zp(u),l=h,s=!0}}stringify(o,i){this.freeze();const s=_a(i),l=this.compiler||this.Compiler;return dc("stringify",l),nm(o),l(o,s)}use(o,...i){const s=this.attachers,l=this.namespace;if(hc("use",this.frozen),o!=null)if(typeof o=="function")m(o,i);else if(typeof o=="object")Array.isArray(o)?h(o):u(o);else throw new TypeError("Expected usable value, not `"+o+"`");return this;function c(f){if(typeof f=="function")m(f,[]);else if(typeof f=="object")if(Array.isArray(f)){const[y,...x]=f;m(y,x)}else u(f);else throw new TypeError("Expected usable value, not `"+f+"`")}function u(f){if(!("plugins"in f)&&!("settings"in f))throw new Error("Expected usable value but received an empty preset, which is probably a mistake: presets typically come with `plugins` and sometimes with `settings`, but this has neither");h(f.plugins),f.settings&&(l.settings=ac(!0,l.settings,f.settings))}function h(f){let y=-1;if(f!=null)if(Array.isArray(f))for(;++y<f.length;){const x=f[y];c(x)}else throw new TypeError("Expected a list of plugins, not `"+f+"`")}function m(f,y){let x=-1,w=-1;for(;++x<s.length;)if(s[x][0]===f){w=x;break}if(w===-1)s.push([f,...y]);else if(y.length>0){let[k,...N]=y;const I=s[w][1];Ac(I)&&Ac(k)&&(k=ac(!0,I,k)),s[w]=[f,k,...N]}}}}const Z1=new uu().freeze();function uc(e,o){if(typeof o!="function")throw new TypeError("Cannot `"+e+"` without `parser`")}function dc(e,o){if(typeof o!="function")throw new TypeError("Cannot `"+e+"` without `compiler`")}function hc(e,o){if(o)throw new Error("Cannot call `"+e+"` on a frozen processor.\nCreate a new processor first, by calling it: use `processor()` instead of `processor`.")}function nm(e){if(!Ac(e)||typeof e.type!="string")throw new TypeError("Expected node, got `"+e+"`")}function rm(e,o,i){if(!i)throw new Error("`"+e+"` finished async. Use `"+o+"` instead")}function _a(e){return e0(e)?e:new Ef(e)}function e0(e){return!!(e&&typeof e=="object"&&"message"in e&&"messages"in e)}function t0(e){return typeof e=="string"||n0(e)}function n0(e){return!!(e&&typeof e=="object"&&"byteLength"in e&&"byteOffset"in e)}const r0="https://github.com/remarkjs/react-markdown/blob/main/changelog.md",im=[],om={allowDangerousHtml:!0},i0=/^(https?|ircs?|mailto|xmpp)$/i,o0=[{from:"astPlugins",id:"remove-buggy-html-in-markdown-parser"},{from:"allowDangerousHtml",id:"remove-buggy-html-in-markdown-parser"},{from:"allowNode",id:"replace-allownode-allowedtypes-and-disallowedtypes",to:"allowElement"},{from:"allowedTypes",id:"replace-allownode-allowedtypes-and-disallowedtypes",to:"allowedElements"},{from:"className",id:"remove-classname"},{from:"disallowedTypes",id:"replace-allownode-allowedtypes-and-disallowedtypes",to:"disallowedElements"},{from:"escapeHtml",id:"remove-buggy-html-in-markdown-parser"},{from:"includeElementIndex",id:"#remove-includeelementindex"},{from:"includeNodeIndex",id:"change-includenodeindex-to-includeelementindex"},{from:"linkTarget",id:"remove-linktarget"},{from:"plugins",id:"change-plugins-to-remarkplugins",to:"remarkPlugins"},{from:"rawSourcePos",id:"#remove-rawsourcepos"},{from:"renderers",id:"change-renderers-to-components",to:"components"},{from:"source",id:"change-source-to-children",to:"children"},{from:"sourcePos",id:"#remove-sourcepos"},{from:"transformImageUri",id:"#add-urltransform",to:"urlTransform"},{from:"transformLinkUri",id:"#add-urltransform",to:"urlTransform"}];function a0(e){const o=s0(e),i=l0(e);return c0(o.runSync(o.parse(i),i),e)}function s0(e){const o=e.rehypePlugins||im,i=e.remarkPlugins||im,s=e.remarkRehypeOptions?{...e.remarkRehypeOptions,...om}:om;return Z1().use(zb).use(i).use(L1,s).use(o)}function l0(e){const o=e.children||"",i=new Ef;
vendor: 6,378 bytes, line 133
133return typeof o=="string"&&(i.value=o),i}function c0(e,o){const i=o.allowedElements,s=o.allowElement,l=o.components,c=o.disallowedElements,u=o.skipHtml,h=o.unwrapDisallowed,m=o.urlTransform||u0;for(const y of o0)Object.hasOwn(o,y.from)&&(""+y.from+(y.to?"use `"+y.to+"` instead":"remove it")+r0+y.id,void 0);return cu(e,f),jk(e,{Fragment:t.Fragment,components:l,ignoreInvalidStyle:!0,jsx:t.jsx,jsxs:t.jsxs,passKeys:!0,passNode:!0});function f(y,x,w){if(y.type==="raw"&&w&&typeof x=="number")return u?w.children.splice(x,1):w.children[x]={type:"text",value:y.value},x;if(y.type==="element"){let k;for(k in nc)if(Object.hasOwn(nc,k)&&Object.hasOwn(y.properties,k)){const N=y.properties[k],I=nc[k];(I===null||I.includes(y.tagName))&&(y.properties[k]=m(String(N||""),k,y))}}if(y.type==="element"){let k=i?!i.includes(y.tagName):c?c.includes(y.tagName):!1;if(!k&&s&&typeof x=="number"&&(k=!s(y,x,w)),k&&w&&typeof x=="number")return h&&y.children?w.children.splice(x,1,...y.children):w.children.splice(x,1),x}}}function u0(e){const o=e.indexOf(":"),i=e.indexOf("?"),s=e.indexOf("#"),l=e.indexOf("/");return o===-1||l!==-1&&o>l||i!==-1&&o>i||s!==-1&&o>s||i0.test(e.slice(0,o))?e:""}function am(e,o){const i=String(e);if(typeof o!="string")throw new TypeError("Expected character");let s=0,l=i.indexOf(o);for(;l!==-1;)s++,l=i.indexOf(o,l+o.length);return s}function d0(e){if(typeof e!="string")throw new TypeError("Expected a string");return e.replace(/[|\\{}()[\]^$+*?.]/g,"\\$&").replace(/-/g,"\\x2d")}function h0(e,o,i){const l=ns((i||{}).ignore||[]),c=p0(o);let u=-1;for(;++u<c.length;)Cf(e,"text",h);function h(f,y){let x=-1,w;for(;++x<y.length;){const k=y[x],N=w?w.children:void 0;if(l(k,N?N.indexOf(k):void 0,w))return;w=k}if(w)return m(f,y)}function m(f,y){const x=y[y.length-1],w=c[u][0],k=c[u][1];let N=0;const T=x.children.indexOf(f);let _=!1,z=[];w.lastIndex=0;let B=w.exec(f.value);for(;B;){const te=B.index,Y={index:B.index,input:B.input,stack:[...y,f]};let F=k(...B,Y);if(typeof F=="string"&&(F=F.length>0?{type:"text",value:F}:void 0),F===!1?w.lastIndex=te+1:(N!==te&&z.push({type:"text",value:f.value.slice(N,te)}),Array.isArray(F)?z.push(...F):F&&z.push(F),N=te+B[0].length,_=!0),!w.global)break;B=w.exec(f.value)}return _?(N<f.value.length&&z.push({type:"text",value:f.value.slice(N)}),x.children.splice(T,1,...z)):z=[f],T+z.length}}function p0(e){const o=[];if(!Array.isArray(e))throw new TypeError("Expected find and replace tuple or list of tuples");const i=!e[0]||Array.isArray(e[0])?e:[e];let s=-1;for(;++s<i.length;){const l=i[s];o.push([m0(l[0]),f0(l[1])])}return o}function m0(e){return typeof e=="string"?new RegExp(d0(e),"g"):e}function f0(e){return typeof e=="function"?e:function(){return e}}const pc="phrasing",mc=["autolink","link","image","label"];function g0(){return{transforms:[b0],enter:{literalAutolink:x0,literalAutolinkEmail:fc,literalAutolinkHttp:fc,literalAutolinkWww:fc},exit:{literalAutolink:j0,literalAutolinkEmail:k0,literalAutolinkHttp:v0,literalAutolinkWww:w0}}}function y0(){return{unsafe:[{character:"@",before:"[+\\-.\\w]",after:"[\\-.\\w]",inConstruct:pc,notInConstruct:mc},{character:".",before:"[Ww]",after:"[\\-.\\w]",inConstruct:pc,notInConstruct:mc},{character:":",before:"[ps]",after:"\\/",inConstruct:pc,notInConstruct:mc}]}}function x0(e){this.enter({type:"link",title:null,url:"",children:[]},e)}function fc(e){this.config.enter.autolinkProtocol.call(this,e)}function v0(e){this.config.exit.autolinkProtocol.call(this,e)}function w0(e){this.config.exit.data.call(this,e);const o=this.stack[this.stack.length-1];o.type,o.url="http://"+this.sliceSerialize(e)}function k0(e){this.config.exit.autolinkEmail.call(this,e)}function j0(e){this.exit(e)}function b0(e){h0(e,[[/(https?:\/\/|www(?=\.))([-.\w]+)([^ \t\r\n]*)/gi,N0],[new RegExp("(?<=^|\\s|\\p{P}|\\p{S})([-.\\w+]+)@([-\\w]+(?:\\.[-\\w]+)+)","gu"),S0]],{ignore:["link","linkReference"]})}function N0(e,o,i,s,l){let c="";if(!_f(l)||(/^w/i.test(o)&&(i=o+i,o="",c="http://"),!T0(i)))return!1;const u=C0(i+s);if(!u[0])return!1;const h={type:"link",title:null,url:c+o+u[0],children:[{type:"text",value:o+u[0]}]};return u[1]?[h,{type:"text",value:u[1]}]:h}function S0(e,o,i,s){return!_f(s,!0)||/[-\d_]$/.test(i)?!1:{type:"link",title:null,url:"mailto:"+o+"@"+i,children:[{type:"text",value:o+"@"+i}]}}function T0(e){const o=e.split(".");return!(o.length<2||o[o.length-1]&&(/_/.test(o[o.length-1])||!/[a-zA-Z\d]/.test(o[o.length-1]))||o[o.length-2]&&(/_/.test(o[o.length-2])||!/[a-zA-Z\d]/.test(o[o.length-2])))}function C0(e){const o=/[!"&'),.:;<>?\]}]+$/.exec(e);if(!o)return[e,void 0];e=e.slice(0,o.index);let i=o[0],s=i.indexOf(")");const l=am(e,"(");let c=am(e,")");for(;s!==-1&&l>c;)e+=i.slice(0,s+1),i=i.slice(s+1),s=i.indexOf(")"),c++;return[e,i]}function _f(e,o){const i=e.input.charCodeAt(e.index-1);return(e.index===0||yr(i)||Za(i))&&(!o||i!==47)}If.peek=D0;function E0(){this.buffer()}function _0(e){this.enter({type:"footnoteReference",identifier:"",label:""},e)}function I0(){this.buffer()}function P0(e){this.enter({type:"footnoteDefinition",identifier:"",label:"",children:[]},e)}function A0(e){const o=this.resume(),i=this.stack[this.stack.length-1];i.type,i.identifier=Zt(this.sliceSerialize(e)).toLowerCase(),i.label=o}function R0(e){this.exit(e)}function O0(e){const o=this.resume(),i=this.stack[this.stack.length-1];i.type,i.identifier=Zt(this.sliceSerialize(e)).toLowerCase(),i.label=o}function L0(e){this.exit(e)}function D0(){return"["}function If(e,o,i,s){const l=i.createTracker(s);let c=l.move("[^");const u=i.enter("footnoteReference"),h=i.enter("reference");return c+=l.move(i.safe(i.associationId(e),{after:"]",before:c})),h(),u(),c+=l.move("]"),c}function M0(){return{enter:{gfmFootnoteCallString:E0,gfmFootnoteCall:_0,gfmFootnoteDefinitionLabelString:I0,gfmFootnoteDefinition:P0},exit:{gfmFootnoteCallString:A0,gfmFootnoteCall:R0,gfmFootnoteDefinitionLabelString:O0,gfmFootnoteDefinition:L0}}}function F0(e){let o=!1;return e&&e.firstLineBlank&&(o=!0),{handlers:{footnoteDefinition:i,footnoteReference:If},unsafe:[{character:"[",inConstruct:["label","phrasing","reference"]}]};function i(s,l,c,u){const h=c.createTracker(u);let m=h.move("[^");const f=c.enter("footnoteDefinition"),y=c.enter("label");return m+=h.move(c.safe(c.associationId(s),{before:m,after:"]"})),y(),m+=h.move("]:"),s.children&&s.children.length>0&&(h.shift(4),m+=h.move((o?`
vendor: 15,615 bytes, lines 134-147
134`:" ")+c.indentLines(c.containerFlow(s,h.current()),o?Pf:z0))),f(),m}}function z0(e,o,i){return o===0?e:Pf(e,o,i)}function Pf(e,o,i){return(i?"":"    ")+e}const B0=["autolink","destinationLiteral","destinationRaw","reference","titleQuote","titleApostrophe"];Af.peek=$0;function U0(){return{canContainEols:["delete"],enter:{strikethrough:W0},exit:{strikethrough:V0}}}function H0(){return{unsafe:[{character:"~",inConstruct:"phrasing",notInConstruct:B0}],handlers:{delete:Af}}}function W0(e){this.enter({type:"delete",children:[]},e)}function V0(e){this.exit(e)}function Af(e,o,i,s){const l=i.createTracker(s),c=i.enter("strikethrough");let u=l.move("~~");return u+=i.containerPhrasing(e,{...l.current(),before:u,after:"~"}),u+=l.move("~~"),c(),u}function $0(){return"~"}function G0(e){return e.length}function q0(e,o){const i=o||{},s=(i.align||[]).concat(),l=i.stringLength||G0,c=[],u=[],h=[],m=[];let f=0,y=-1;for(;++y<e.length;){const I=[],T=[];let _=-1;for(e[y].length>f&&(f=e[y].length);++_<e[y].length;){const z=Y0(e[y][_]);if(i.alignDelimiters!==!1){const B=l(z);T[_]=B,(m[_]===void 0||B>m[_])&&(m[_]=B)}I.push(z)}u[y]=I,h[y]=T}let x=-1;if(typeof s=="object"&&"length"in s)for(;++x<f;)c[x]=sm(s[x]);else{const I=sm(s);for(;++x<f;)c[x]=I}x=-1;const w=[],k=[];for(;++x<f;){const I=c[x];let T="",_="";I===99?(T=":",_=":"):I===108?T=":":I===114&&(_=":");let z=i.alignDelimiters===!1?1:Math.max(1,m[x]-T.length-_.length);const B=T+"-".repeat(z)+_;i.alignDelimiters!==!1&&(z=T.length+z+_.length,z>m[x]&&(m[x]=z),k[x]=z),w[x]=B}u.splice(1,0,w),h.splice(1,0,k),y=-1;const N=[];for(;++y<u.length;){const I=u[y],T=h[y];x=-1;const _=[];for(;++x<f;){const z=I[x]||"";let B="",te="";if(i.alignDelimiters!==!1){const Y=m[x]-(T[x]||0),F=c[x];F===114?B=" ".repeat(Y):F===99?Y%2?(B=" ".repeat(Y/2+.5),te=" ".repeat(Y/2-.5)):(B=" ".repeat(Y/2),te=B):te=" ".repeat(Y)}i.delimiterStart!==!1&&!x&&_.push("|"),i.padding!==!1&&!(i.alignDelimiters===!1&&z==="")&&(i.delimiterStart!==!1||x)&&_.push(" "),i.alignDelimiters!==!1&&_.push(B),_.push(z),i.alignDelimiters!==!1&&_.push(te),i.padding!==!1&&_.push(" "),(i.delimiterEnd!==!1||x!==f-1)&&_.push("|")}N.push(i.delimiterEnd===!1?_.join("").replace(/ +$/,""):_.join(""))}return N.join(`
135`)}function Y0(e){return e==null?"":String(e)}function sm(e){const o=typeof e=="string"?e.codePointAt(0):0;return o===67||o===99?99:o===76||o===108?108:o===82||o===114?114:0}function J0(e,o,i,s){const l=i.enter("blockquote"),c=i.createTracker(s);c.move("> "),c.shift(2);const u=i.indentLines(i.containerFlow(e,c.current()),K0);return l(),u}function K0(e,o,i){return">"+(i?"":" ")+e}function Q0(e,o){return lm(e,o.inConstruct,!0)&&!lm(e,o.notInConstruct,!1)}function lm(e,o,i){if(typeof o=="string"&&(o=[o]),!o||o.length===0)return i;let s=-1;for(;++s<o.length;)if(e.includes(o[s]))return!0;return!1}function cm(e,o,i,s){let l=-1;for(;++l<i.unsafe.length;)if(i.unsafe[l].character===`
136`&&Q0(i.stack,i.unsafe[l]))return/[ \t]/.test(s.before)?"":" ";return`\\
137`}function X0(e,o){const i=String(e);let s=i.indexOf(o),l=s,c=0,u=0;if(typeof o!="string")throw new TypeError("Expected substring");for(;s!==-1;)s===l?++c>u&&(u=c):c=1,l=s+o.length,s=i.indexOf(o,l);return u}function Z0(e,o){return!!(o.options.fences===!1&&e.value&&!e.lang&&/[^ \r\n]/.test(e.value)&&!/^[\t ]*(?:[\r\n]|$)|(?:^|[\r\n])[\t ]*$/.test(e.value))}function eN(e){const o=e.options.fence||"`";if(o!=="`"&&o!=="~")throw new Error("Cannot serialize code with `"+o+"` for `options.fence`, expected `` ` `` or `~`");return o}function tN(e,o,i,s){const l=eN(i),c=e.value||"",u=l==="`"?"GraveAccent":"Tilde";if(Z0(e,i)){const x=i.enter("codeIndented"),w=i.indentLines(c,nN);return x(),w}const h=i.createTracker(s),m=l.repeat(Math.max(X0(c,l)+1,3)),f=i.enter("codeFenced");let y=h.move(m);if(e.lang){const x=i.enter(`codeFencedLang${u}`);y+=h.move(i.safe(e.lang,{before:y,after:" ",encode:["`"],...h.current()})),x()}if(e.lang&&e.meta){const x=i.enter(`codeFencedMeta${u}`);y+=h.move(" "),y+=h.move(i.safe(e.meta,{before:y,after:`
138`,encode:["`"],...h.current()})),x()}return y+=h.move(`
139`),c&&(y+=h.move(c+`
140`)),y+=h.move(m),f(),y}function nN(e,o,i){return(i?"":"    ")+e}function du(e){const o=e.options.quote||'"';if(o!=='"'&&o!=="'")throw new Error("Cannot serialize title with `"+o+"` for `options.quote`, expected `\"`, or `'`");return o}function rN(e,o,i,s){const l=du(i),c=l==='"'?"Quote":"Apostrophe",u=i.enter("definition");let h=i.enter("label");const m=i.createTracker(s);let f=m.move("[");return f+=m.move(i.safe(i.associationId(e),{before:f,after:"]",...m.current()})),f+=m.move("]: "),h(),!e.url||/[\0- \u007F]/.test(e.url)?(h=i.enter("destinationLiteral"),f+=m.move("<"),f+=m.move(i.safe(e.url,{before:f,after:">",...m.current()})),f+=m.move(">")):(h=i.enter("destinationRaw"),f+=m.move(i.safe(e.url,{before:f,after:e.title?" ":`
141`,...m.current()}))),h(),e.title&&(h=i.enter(`title${c}`),f+=m.move(" "+l),f+=m.move(i.safe(e.title,{before:f,after:l,...m.current()})),f+=m.move(l),h()),u(),f}function iN(e){const o=e.options.emphasis||"*";if(o!=="*"&&o!=="_")throw new Error("Cannot serialize emphasis with `"+o+"` for `options.emphasis`, expected `*`, or `_`");return o}function io(e){return"&#x"+e.toString(16).toUpperCase()+";"}function qa(e,o,i){const s=Xr(e),l=Xr(o);return s===void 0?l===void 0?i==="_"?{inside:!0,outside:!0}:{inside:!1,outside:!1}:l===1?{inside:!0,outside:!0}:{inside:!1,outside:!0}:s===1?l===void 0?{inside:!1,outside:!1}:l===1?{inside:!0,outside:!0}:{inside:!1,outside:!1}:l===void 0?{inside:!1,outside:!1}:l===1?{inside:!0,outside:!1}:{inside:!1,outside:!1}}Rf.peek=oN;function Rf(e,o,i,s){const l=iN(i),c=i.enter("emphasis"),u=i.createTracker(s),h=u.move(l);let m=u.move(i.containerPhrasing(e,{after:l,before:h,...u.current()}));const f=m.charCodeAt(0),y=qa(s.before.charCodeAt(s.before.length-1),f,l);y.inside&&(m=io(f)+m.slice(1));const x=m.charCodeAt(m.length-1),w=qa(s.after.charCodeAt(0),x,l);w.inside&&(m=m.slice(0,-1)+io(x));const k=u.move(l);return c(),i.attentionEncodeSurroundingInfo={after:w.outside,before:y.outside},h+m+k}function oN(e,o,i){return i.options.emphasis||"*"}function aN(e,o){let i=!1;return cu(e,function(s){if("value"in s&&/\r?\n|\r/.test(s.value)||s.type==="break")return i=!0,Ic}),!!((!e.depth||e.depth<3)&&nu(e)&&(o.options.setext||i))}function sN(e,o,i,s){const l=Math.max(Math.min(6,e.depth||1),1),c=i.createTracker(s);if(aN(e,i)){const y=i.enter("headingSetext"),x=i.enter("phrasing"),w=i.containerPhrasing(e,{...c.current(),before:`
142`,after:`
143`});return x(),y(),w+`
144`+(l===1?"=":"-").repeat(w.length-(Math.max(w.lastIndexOf("\r"),w.lastIndexOf(`
145`))+1))}const u="#".repeat(l),h=i.enter("headingAtx"),m=i.enter("phrasing");c.move(u+" ");let f=i.containerPhrasing(e,{before:"# ",after:`
146`,...c.current()});return/^[\t ]/.test(f)&&(f=io(f.charCodeAt(0))+f.slice(1)),f=f?u+" "+f:u,i.options.closeAtx&&(f+=" "+u),m(),h(),f}Of.peek=lN;function Of(e){return e.value||""}function lN(){return"<"}Lf.peek=cN;function Lf(e,o,i,s){const l=du(i),c=l==='"'?"Quote":"Apostrophe",u=i.enter("image");let h=i.enter("label");const m=i.createTracker(s);let f=m.move("![");return f+=m.move(i.safe(e.alt,{before:f,after:"]",...m.current()})),f+=m.move("]("),h(),!e.url&&e.title||/[\0- \u007F]/.test(e.url)?(h=i.enter("destinationLiteral"),f+=m.move("<"),f+=m.move(i.safe(e.url,{before:f,after:">",...m.current()})),f+=m.move(">")):(h=i.enter("destinationRaw"),f+=m.move(i.safe(e.url,{before:f,after:e.title?" ":")",...m.current()}))),h(),e.title&&(h=i.enter(`title${c}`),f+=m.move(" "+l),f+=m.move(i.safe(e.title,{before:f,after:l,...m.current()})),f+=m.move(l),h()),f+=m.move(")"),u(),f}function cN(){return"!"}Df.peek=uN;function Df(e,o,i,s){const l=e.referenceType,c=i.enter("imageReference");let u=i.enter("label");const h=i.createTracker(s);let m=h.move("![");const f=i.safe(e.alt,{before:m,after:"]",...h.current()});m+=h.move(f+"]["),u();const y=i.stack;i.stack=[],u=i.enter("reference");const x=i.safe(i.associationId(e),{before:m,after:"]",...h.current()});return u(),i.stack=y,c(),l==="full"||!f||f!==x?m+=h.move(x+"]"):l==="shortcut"?m=m.slice(0,-1):m+=h.move("]"),m}function uN(){return"!"}Mf.peek=dN;function Mf(e,o,i){let s=e.value||"",l="`",c=-1;for(;new RegExp("(^|[^`])"+l+"([^`]|$)").test(s);)l+="`";for(/[^ \r\n]/.test(s)&&(/^[ \r\n]/.test(s)&&/[ \r\n]$/.test(s)||/^`|`$/.test(s))&&(s=" "+s+" ");++c<i.unsafe.length;){const u=i.unsafe[c],h=i.compilePattern(u);let m;if(u.atBreak)for(;m=h.exec(s);){let f=m.index;s.charCodeAt(f)===10&&s.charCodeAt(f-1)===13&&f--,s=s.slice(0,f)+" "+s.slice(m.index+1)}}return l+s+l}function dN(){return"`"}function Ff(e,o){const i=nu(e);return!!(!o.options.resourceLink&&e.url&&!e.title&&e.children&&e.children.length===1&&e.children[0].type==="text"&&(i===e.url||"mailto:"+i===e.url)&&/^[a-z][a-z+.-]+:/i.test(e.url)&&!/[\0- <>\u007F]/.test(e.url))}zf.peek=hN;function zf(e,o,i,s){const l=du(i),c=l==='"'?"Quote":"Apostrophe",u=i.createTracker(s);let h,m;if(Ff(e,i)){const y=i.stack;i.stack=[],h=i.enter("autolink");let x=u.move("<");return x+=u.move(i.containerPhrasing(e,{before:x,after:">",...u.current()})),x+=u.move(">"),h(),i.stack=y,x}h=i.enter("link"),m=i.enter("label");let f=u.move("[");return f+=u.move(i.containerPhrasing(e,{before:f,after:"](",...u.current()})),f+=u.move("]("),m(),!e.url&&e.title||/[\0- \u007F]/.test(e.url)?(m=i.enter("destinationLiteral"),f+=u.move("<"),f+=u.move(i.safe(e.url,{before:f,after:">",...u.current()})),f+=u.move(">")):(m=i.enter("destinationRaw"),f+=u.move(i.safe(e.url,{before:f,after:e.title?" ":")",...u.current()}))),m(),e.title&&(m=i.enter(`title${c}`),f+=u.move(" "+l),f+=u.move(i.safe(e.title,{before:f,after:l,...u.current()})),f+=u.move(l),m()),f+=u.move(")"),h(),f}function hN(e,o,i){return Ff(e,i)?"<":"["}Bf.peek=pN;function Bf(e,o,i,s){const l=e.referenceType,c=i.enter("linkReference");let u=i.enter("label");const h=i.createTracker(s);let m=h.move("[");const f=i.containerPhrasing(e,{before:m,after:"]",...h.current()});m+=h.move(f+"]["),u();const y=i.stack;i.stack=[],u=i.enter("reference");const x=i.safe(i.associationId(e),{before:m,after:"]",...h.current()});return u(),i.stack=y,c(),l==="full"||!f||f!==x?m+=h.move(x+"]"):l==="shortcut"?m=m.slice(0,-1):m+=h.move("]"),m}function pN(){return"["}function hu(e){const o=e.options.bullet||"*";if(o!=="*"&&o!=="+"&&o!=="-")throw new Error("Cannot serialize items with `"+o+"` for `options.bullet`, expected `*`, `+`, or `-`");return o}function mN(e){const o=hu(e),i=e.options.bulletOther;if(!i)return o==="*"?"-":"*";if(i!=="*"&&i!=="+"&&i!=="-")throw new Error("Cannot serialize items with `"+i+"` for `options.bulletOther`, expected `*`, `+`, or `-`");if(i===o)throw new Error("Expected `bullet` (`"+o+"`) and `bulletOther` (`"+i+"`) to be different");return i}function fN(e){const o=e.options.bulletOrdered||".";if(o!=="."&&o!==")")throw new Error("Cannot serialize items with `"+o+"` for `options.bulletOrdered`, expected `.` or `)`");return o}function Uf(e){const o=e.options.rule||"*";if(o!=="*"&&o!=="-"&&o!=="_")throw new Error("Cannot serialize rules with `"+o+"` for `options.rule`, expected `*`, `-`, or `_`");return o}function gN(e,o,i,s){const l=i.enter("list"),c=i.bulletCurrent;let u=e.ordered?fN(i):hu(i);const h=e.ordered?u==="."?")":".":mN(i);let m=o&&i.bulletLastUsed?u===i.bulletLastUsed:!1;if(!e.ordered){const y=e.children?e.children[0]:void 0;if((u==="*"||u==="-")&&y&&(!y.children||!y.children[0])&&i.stack[i.stack.length-1]==="list"&&i.stack[i.stack.length-2]==="listItem"&&i.stack[i.stack.length-3]==="list"&&i.stack[i.stack.length-4]==="listItem"&&i.indexStack[i.indexStack.length-1]===0&&i.indexStack[i.indexStack.length-2]===0&&i.indexStack[i.indexStack.length-3]===0&&(m=!0),Uf(i)===u&&y){let x=-1;for(;++x<e.children.length;){const w=e.children[x];if(w&&w.type==="listItem"&&w.children&&w.children[0]&&w.children[0].type==="thematicBreak"){m=!0;break}}}}m&&(u=h),i.bulletCurrent=u;const f=i.containerFlow(e,s);return i.bulletLastUsed=u,i.bulletCurrent=c,l(),f}function yN(e){const o=e.options.listItemIndent||"one";if(o!=="tab"&&o!=="one"&&o!=="mixed")throw new Error("Cannot serialize items with `"+o+"` for `options.listItemIndent`, expected `tab`, `one`, or `mixed`");return o}function xN(e,o,i,s){const l=yN(i);let c=i.bulletCurrent||hu(i);o&&o.type==="list"&&o.ordered&&(c=(typeof o.start=="number"&&o.start>-1?o.start:1)+(i.options.incrementListMarker===!1?0:o.children.indexOf(e))+c);let u=c.length+1;(l==="tab"||l==="mixed"&&(o&&o.type==="list"&&o.spread||e.spread))&&(u=Math.ceil(u/4)*4);const h=i.createTracker(s);h.move(c+" ".repeat(u-c.length)),h.shift(u);const m=i.enter("listItem"),f=i.indentLines(i.containerFlow(e,h.current()),y);return m(),f;function y(x,w,k){return w?(k?"":" ".repeat(u))+x:(k?c:c+" ".repeat(u-c.length))+x}}function vN(e,o,i,s){const l=i.enter("paragraph"),c=i.enter("phrasing"),u=i.containerPhrasing(e,s);return c(),l(),u}const wN=ns(["break","delete","emphasis","footnote","footnoteReference","image","imageReference","inlineCode","inlineMath","link","linkReference","mdxJsxTextElement","mdxTextExpression","strong","text","textDirective"]);function kN(e,o,i,s){return(e.children.some(function(u){return wN(u)})?i.containerPhrasing:i.containerFlow).call(i,e,s)}function jN(e){const o=e.options.strong||"*";if(o!=="*"&&o!=="_")throw new Error("Cannot serialize strong with `"+o+"` for `options.strong`, expected `*`, or `_`");return o}Hf.peek=bN;function Hf(e,o,i,s){const l=jN(i),c=i.enter("strong"),u=i.createTracker(s),h=u.move(l+l);let m=u.move(i.containerPhrasing(e,{after:l,before:h,...u.current()}));const f=m.charCodeAt(0),y=qa(s.before.charCodeAt(s.before.length-1),f,l);y.inside&&(m=io(f)+m.slice(1));const x=m.charCodeAt(m.length-1),w=qa(s.after.charCodeAt(0),x,l);w.inside&&(m=m.slice(0,-1)+io(x));const k=u.move(l+l);return c(),i.attentionEncodeSurroundingInfo={after:w.outside,before:y.outside},h+m+k}function bN(e,o,i){return i.options.strong||"*"}function NN(e,o,i,s){return i.safe(e.value,s)}function SN(e){const o=e.options.ruleRepetition||3;if(o<3)throw new Error("Cannot serialize rules with repetition `"+o+"` for `options.ruleRepetition`, expected `3` or more");return o}function TN(e,o,i){const s=(Uf(i)+(i.options.ruleSpaces?" ":"")).repeat(SN(i));return i.options.ruleSpaces?s.slice(0,-1):s}const Wf={blockquote:J0,break:cm,code:tN,definition:rN,emphasis:Rf,hardBreak:cm,heading:sN,html:Of,image:Lf,imageReference:Df,inlineCode:Mf,link:zf,linkReference:Bf,list:gN,listItem:xN,paragraph:vN,root:kN,strong:Hf,text:NN,thematicBreak:TN};function CN(){return{enter:{table:EN,tableData:um,tableHeader:um,tableRow:IN},exit:{codeText:PN,table:_N,tableData:gc,tableHeader:gc,tableRow:gc}}}function EN(e){const o=e._align;this.enter({type:"table",align:o.map(function(i){return i==="none"?null:i}),children:[]},e),this.data.inTable=!0}function _N(e){this.exit(e),this.data.inTable=void 0}function IN(e){this.enter({type:"tableRow",children:[]},e)}function gc(e){this.exit(e)}function um(e){this.enter({type:"tableCell",children:[]},e)}function PN(e){let o=this.resume();this.data.inTable&&(o=o.replace(/\\([\\|])/g,AN));const i=this.stack[this.stack.length-1];i.type,i.value=o,this.exit(e)}function AN(e,o){return o==="|"?o:e}function RN(e){const o=e||{},i=o.tableCellPadding,s=o.tablePipeAlign,l=o.stringLength,c=i?" ":"|";return{unsafe:[{character:"\r",inConstruct:"tableCell"},{character:`
147`,inConstruct:"tableCell"},{atBreak:!0,character:"|",after:"[	 :-]"},{character:"|",inConstruct:"tableCell"},{atBreak:!0,character:":",after:"-"},{atBreak:!0,character:"-",after:"[:|-]"}],handlers:{inlineCode:w,table:u,tableCell:m,tableRow:h}};
vendor: 5,556 bytes, lines 147-148
147function u(k,N,I,T){return f(y(k,I,T),k.align)}function h(k,N,I,T){const _=x(k,I,T),z=f([_]);return z.slice(0,z.indexOf(`
148`))}function m(k,N,I,T){const _=I.enter("tableCell"),z=I.enter("phrasing"),B=I.containerPhrasing(k,{...T,before:c,after:c});return z(),_(),B}function f(k,N){return q0(k,{align:N,alignDelimiters:s,padding:i,stringLength:l})}function y(k,N,I){const T=k.children;let _=-1;const z=[],B=N.enter("table");for(;++_<T.length;)z[_]=x(T[_],N,I);return B(),z}function x(k,N,I){const T=k.children;let _=-1;const z=[],B=N.enter("tableRow");for(;++_<T.length;)z[_]=m(T[_],k,N,I);return B(),z}function w(k,N,I){let T=Wf.inlineCode(k,N,I);return I.stack.includes("tableCell")&&(T=T.replace(/\|/g,"\\$&")),T}}function ON(){return{exit:{taskListCheckValueChecked:dm,taskListCheckValueUnchecked:dm,paragraph:DN}}}function LN(){return{unsafe:[{atBreak:!0,character:"-",after:"[:|-]"}],handlers:{listItem:MN}}}function dm(e){const o=this.stack[this.stack.length-2];o.type,o.checked=e.type==="taskListCheckValueChecked"}function DN(e){const o=this.stack[this.stack.length-2];if(o&&o.type==="listItem"&&typeof o.checked=="boolean"){const i=this.stack[this.stack.length-1];i.type;const s=i.children[0];if(s&&s.type==="text"){const l=o.children;let c=-1,u;for(;++c<l.length;){const h=l[c];if(h.type==="paragraph"){u=h;break}}u===i&&(s.value=s.value.slice(1),s.value.length===0?i.children.shift():i.position&&s.position&&typeof s.position.start.offset=="number"&&(s.position.start.column++,s.position.start.offset++,i.position.start=Object.assign({},s.position.start)))}}this.exit(e)}function MN(e,o,i,s){const l=e.children[0],c=typeof e.checked=="boolean"&&l&&l.type==="paragraph",u="["+(e.checked?"x":" ")+"] ",h=i.createTracker(s);c&&h.move(u);let m=Wf.listItem(e,o,i,{...s,...h.current()});return c&&(m=m.replace(/^(?:[*+-]|\d+\.)([\r\n]| {1,3})/,f)),m;function f(y){return y+u}}function FN(){return[g0(),M0(),U0(),CN(),ON()]}function zN(e){return{extensions:[y0(),F0(e),H0(),RN(e),LN()]}}const BN={tokenize:GN,partial:!0},Vf={tokenize:qN,partial:!0},$f={tokenize:YN,partial:!0},Gf={tokenize:JN,partial:!0},UN={tokenize:KN,partial:!0},qf={name:"wwwAutolink",tokenize:VN,previous:Jf},Yf={name:"protocolAutolink",tokenize:$N,previous:Kf},bn={name:"emailAutolink",tokenize:WN,previous:Qf},un={};function HN(){return{text:un}}let pr=48;for(;pr<123;)un[pr]=bn,pr++,pr===58?pr=65:pr===91&&(pr=97);un[43]=bn;un[45]=bn;un[46]=bn;un[95]=bn;un[72]=[bn,Yf];un[104]=[bn,Yf];un[87]=[bn,qf];un[119]=[bn,qf];function WN(e,o,i){const s=this;let l,c;return u;function u(x){return!Oc(x)||!Qf.call(s,s.previous)||pu(s.events)?i(x):(e.enter("literalAutolink"),e.enter("literalAutolinkEmail"),h(x))}function h(x){return Oc(x)?(e.consume(x),h):x===64?(e.consume(x),m):i(x)}function m(x){return x===46?e.check(UN,y,f)(x):x===45||x===95||dt(x)?(c=!0,e.consume(x),m):y(x)}function f(x){return e.consume(x),l=!0,m}function y(x){return c&&l&&ft(s.previous)?(e.exit("literalAutolinkEmail"),e.exit("literalAutolink"),o(x)):i(x)}}function VN(e,o,i){const s=this;return l;function l(u){return u!==87&&u!==119||!Jf.call(s,s.previous)||pu(s.events)?i(u):(e.enter("literalAutolink"),e.enter("literalAutolinkWww"),e.check(BN,e.attempt(Vf,e.attempt($f,c),i),i)(u))}function c(u){return e.exit("literalAutolinkWww"),e.exit("literalAutolink"),o(u)}}function $N(e,o,i){const s=this;let l="",c=!1;return u;function u(x){return(x===72||x===104)&&Kf.call(s,s.previous)&&!pu(s.events)?(e.enter("literalAutolink"),e.enter("literalAutolinkHttp"),l+=String.fromCodePoint(x),e.consume(x),h):i(x)}function h(x){if(ft(x)&&l.length<5)return l+=String.fromCodePoint(x),e.consume(x),h;if(x===58){const w=l.toLowerCase();if(w==="http"||w==="https")return e.consume(x),m}return i(x)}function m(x){return x===47?(e.consume(x),c?f:(c=!0,m)):i(x)}function f(x){return x===null||Va(x)||De(x)||yr(x)||Za(x)?i(x):e.attempt(Vf,e.attempt($f,y),i)(x)}function y(x){return e.exit("literalAutolinkHttp"),e.exit("literalAutolink"),o(x)}}function GN(e,o,i){let s=0;return l;function l(u){return(u===87||u===119)&&s<3?(s++,e.consume(u),l):u===46&&s===3?(e.consume(u),c):i(u)}function c(u){return u===null?i(u):o(u)}}function qN(e,o,i){let s,l,c;return u;function u(f){return f===46||f===95?e.check(Gf,m,h)(f):f===null||De(f)||yr(f)||f!==45&&Za(f)?m(f):(c=!0,e.consume(f),u)}function h(f){return f===95?s=!0:(l=s,s=void 0),e.consume(f),u}function m(f){return l||s||!c?i(f):o(f)}}function YN(e,o){let i=0,s=0;return l;function l(u){return u===40?(i++,e.consume(u),l):u===41&&s<i?c(u):u===33||u===34||u===38||u===39||u===41||u===42||u===44||u===46||u===58||u===59||u===60||u===63||u===93||u===95||u===126?e.check(Gf,o,c)(u):u===null||De(u)||yr(u)?o(u):(e.consume(u),l)}function c(u){return u===41&&s++,e.consume(u),l}}function JN(e,o,i){return s;function s(h){return h===33||h===34||h===39||h===41||h===42||h===44||h===46||h===58||h===59||h===63||h===95||h===126?(e.consume(h),s):h===38?(e.consume(h),c):h===93?(e.consume(h),l):h===60||h===null||De(h)||yr(h)?o(h):i(h)}function l(h){return h===null||h===40||h===91||De(h)||yr(h)?o(h):s(h)}function c(h){return ft(h)?u(h):i(h)}function u(h){return h===59?(e.consume(h),s):ft(h)?(e.consume(h),u):i(h)}}function KN(e,o,i){return s;function s(c){return e.consume(c),l}function l(c){return dt(c)?i(c):o(c)}}function Jf(e){return e===null||e===40||e===42||e===95||e===91||e===93||e===126||De(e)}function Kf(e){return!ft(e)}function Qf(e){return!(e===47||Oc(e))}function Oc(e){return e===43||e===45||e===46||e===95||dt(e)}function pu(e){let o=e.length,i=!1;for(;o--;){const s=e[o][1];
vendor: 6,587 bytes, line 148
148if((s.type==="labelLink"||s.type==="labelImage")&&!s._balanced){i=!0;break}if(s._gfmAutolinkLiteralWalkedInto){i=!1;break}}return e.length>0&&!i&&(e[e.length-1][1]._gfmAutolinkLiteralWalkedInto=!0),i}const QN={tokenize:oS,partial:!0};function XN(){return{document:{91:{name:"gfmFootnoteDefinition",tokenize:nS,continuation:{tokenize:rS},exit:iS}},text:{91:{name:"gfmFootnoteCall",tokenize:tS},93:{name:"gfmPotentialFootnoteCall",add:"after",tokenize:ZN,resolveTo:eS}}}}function ZN(e,o,i){const s=this;let l=s.events.length;const c=s.parser.gfmFootnotes||(s.parser.gfmFootnotes=[]);let u;for(;l--;){const m=s.events[l][1];if(m.type==="labelImage"){u=m;break}if(m.type==="gfmFootnoteCall"||m.type==="labelLink"||m.type==="label"||m.type==="image"||m.type==="link")break}return h;function h(m){if(!u||!u._balanced)return i(m);const f=Zt(s.sliceSerialize({start:u.end,end:s.now()}));return f.codePointAt(0)!==94||!c.includes(f.slice(1))?i(m):(e.enter("gfmFootnoteCallLabelMarker"),e.consume(m),e.exit("gfmFootnoteCallLabelMarker"),o(m))}}function eS(e,o){let i=e.length;for(;i--;)if(e[i][1].type==="labelImage"&&e[i][0]==="enter"){e[i][1];break}e[i+1][1].type="data",e[i+3][1].type="gfmFootnoteCallLabelMarker";const s={type:"gfmFootnoteCall",start:Object.assign({},e[i+3][1].start),end:Object.assign({},e[e.length-1][1].end)},l={type:"gfmFootnoteCallMarker",start:Object.assign({},e[i+3][1].end),end:Object.assign({},e[i+3][1].end)};l.end.column++,l.end.offset++,l.end._bufferIndex++;const c={type:"gfmFootnoteCallString",start:Object.assign({},l.end),end:Object.assign({},e[e.length-1][1].start)},u={type:"chunkString",contentType:"string",start:Object.assign({},c.start),end:Object.assign({},c.end)},h=[e[i+1],e[i+2],["enter",s,o],e[i+3],e[i+4],["enter",l,o],["exit",l,o],["enter",c,o],["enter",u,o],["exit",u,o],["exit",c,o],e[e.length-2],e[e.length-1],["exit",s,o]];return e.splice(i,e.length-i+1,...h),e}function tS(e,o,i){const s=this,l=s.parser.gfmFootnotes||(s.parser.gfmFootnotes=[]);let c=0,u;return h;function h(x){return e.enter("gfmFootnoteCall"),e.enter("gfmFootnoteCallLabelMarker"),e.consume(x),e.exit("gfmFootnoteCallLabelMarker"),m}function m(x){return x!==94?i(x):(e.enter("gfmFootnoteCallMarker"),e.consume(x),e.exit("gfmFootnoteCallMarker"),e.enter("gfmFootnoteCallString"),e.enter("chunkString").contentType="string",f)}function f(x){if(c>999||x===93&&!u||x===null||x===91||De(x))return i(x);if(x===93){e.exit("chunkString");const w=e.exit("gfmFootnoteCallString");return l.includes(Zt(s.sliceSerialize(w)))?(e.enter("gfmFootnoteCallLabelMarker"),e.consume(x),e.exit("gfmFootnoteCallLabelMarker"),e.exit("gfmFootnoteCall"),o):i(x)}return De(x)||(u=!0),c++,e.consume(x),x===92?y:f}function y(x){return x===91||x===92||x===93?(e.consume(x),c++,f):f(x)}}function nS(e,o,i){const s=this,l=s.parser.gfmFootnotes||(s.parser.gfmFootnotes=[]);let c,u=0,h;return m;function m(N){return e.enter("gfmFootnoteDefinition")._container=!0,e.enter("gfmFootnoteDefinitionLabel"),e.enter("gfmFootnoteDefinitionLabelMarker"),e.consume(N),e.exit("gfmFootnoteDefinitionLabelMarker"),f}function f(N){return N===94?(e.enter("gfmFootnoteDefinitionMarker"),e.consume(N),e.exit("gfmFootnoteDefinitionMarker"),e.enter("gfmFootnoteDefinitionLabelString"),e.enter("chunkString").contentType="string",y):i(N)}function y(N){if(u>999||N===93&&!h||N===null||N===91||De(N))return i(N);if(N===93){e.exit("chunkString");const I=e.exit("gfmFootnoteDefinitionLabelString");return c=Zt(s.sliceSerialize(I)),e.enter("gfmFootnoteDefinitionLabelMarker"),e.consume(N),e.exit("gfmFootnoteDefinitionLabelMarker"),e.exit("gfmFootnoteDefinitionLabel"),w}return De(N)||(h=!0),u++,e.consume(N),N===92?x:y}function x(N){return N===91||N===92||N===93?(e.consume(N),u++,y):y(N)}function w(N){return N===58?(e.enter("definitionMarker"),e.consume(N),e.exit("definitionMarker"),l.includes(c)||l.push(c),Ee(e,k,"gfmFootnoteDefinitionWhitespace")):i(N)}function k(N){return o(N)}}function rS(e,o,i){return e.check(lo,o,e.attempt(QN,o,i))}function iS(e){e.exit("gfmFootnoteDefinition")}function oS(e,o,i){const s=this;return Ee(e,l,"gfmFootnoteDefinitionIndent",5);function l(c){const u=s.events[s.events.length-1];return u&&u[1].type==="gfmFootnoteDefinitionIndent"&&u[2].sliceSerialize(u[1],!0).length===4?o(c):i(c)}}function aS(e){let i=(e||{}).singleTilde;const s={name:"strikethrough",tokenize:c,resolveAll:l};return i==null&&(i=!0),{text:{126:s},insideSpan:{null:[s]},attentionMarkers:{null:[126]}};function l(u,h){let m=-1;for(;++m<u.length;)if(u[m][0]==="enter"&&u[m][1].type==="strikethroughSequenceTemporary"&&u[m][1]._close){let f=m;for(;f--;)if(u[f][0]==="exit"&&u[f][1].type==="strikethroughSequenceTemporary"&&u[f][1]._open&&u[m][1].end.offset-u[m][1].start.offset===u[f][1].end.offset-u[f][1].start.offset){u[m][1].type="strikethroughSequence",u[f][1].type="strikethroughSequence";const y={type:"strikethrough",start:Object.assign({},u[f][1].start),end:Object.assign({},u[m][1].end)},x={type:"strikethroughText",start:Object.assign({},u[f][1].end),end:Object.assign({},u[m][1].start)},w=[["enter",y,h],["enter",u[f][1],h],["exit",u[f][1],h],["enter",x,h]],k=h.parser.constructs.insideSpan.null;k&&Pt(w,w.length,0,es(k,u.slice(f+1,m),h)),Pt(w,w.length,0,[["exit",x,h],["enter",u[m][1],h],["exit",u[m][1],h],["exit",y,h]]),Pt(u,f-1,m-f+3,w),m=f+w.length-2;break}}for(m=-1;++m<u.length;)u[m][1].type==="strikethroughSequenceTemporary"&&(u[m][1].type="data");return u}function c(u,h,m){const f=this.previous,y=this.events;let x=0;return w;function w(N){return f===126&&y[y.length-1][1].type!=="characterEscape"?m(N):(u.enter("strikethroughSequenceTemporary"),k(N))}function k(N){const I=Xr(f);if(N===126)return x>1?m(N):(u.consume(N),x++,k);if(x<2&&!i)return m(N);const T=u.exit("strikethroughSequenceTemporary"),_=Xr(N);return T._open=!_||_===2&&!!I,T._close=!I||I===2&&!!_,h(N)}}}class sS{constructor(){this.map=[]}add(o,i,s){lS(this,o,i,s)}consume(o){if(this.map.sort(function(c,u){return c[0]-u[0]}),this.map.length===0)return;let i=this.map.length;const s=[];for(;i>0;)i-=1,s.push(o.slice(this.map[i][0]+this.map[i][1]),this.map[i][2]),o.length=this.map[i][0];s.push(o.slice()),o.length=0;let l=s.pop();for(;l;){for(const c of l)o.push(c);l=s.pop()}this.map.length=0}}function lS(e,o,i,s){let l=0;if(!(i===0&&s.length===0)){for(;l<e.map.length;){if(e.map[l][0]===o){e.map[l][1]+=i,e.map[l][2].push(...s);return}l+=1}e.map.push([o,i,s])}}function cS(e,o){let i=!1;const s=[];for(;o<e.length;){const l=e[o];if(i){if(l[0]==="enter")l[1].type==="tableContent"&&s.push(e[o+1][1].type==="tableDelimiterMarker"?"left"
vendor: 6,565 bytes, line 148
148:"none");else if(l[1].type==="tableContent"){if(e[o-1][1].type==="tableDelimiterMarker"){const c=s.length-1;s[c]=s[c]==="left"?"center":"right"}}else if(l[1].type==="tableDelimiterRow")break}else l[0]==="enter"&&l[1].type==="tableDelimiterRow"&&(i=!0);o+=1}return s}function uS(){return{flow:{null:{name:"table",tokenize:dS,resolveAll:hS}}}}function dS(e,o,i){const s=this;let l=0,c=0,u;return h;function h(R){let ee=s.events.length-1;for(;ee>-1;){const ie=s.events[ee][1].type;if(ie==="lineEnding"||ie==="linePrefix")ee--;else break}const Z=ee>-1?s.events[ee][1].type:null,ye=Z==="tableHead"||Z==="tableRow"?F:m;return ye===F&&s.parser.lazy[s.now().line]?i(R):ye(R)}function m(R){return e.enter("tableHead"),e.enter("tableRow"),f(R)}function f(R){return R===124||(u=!0,c+=1),y(R)}function y(R){return R===null?i(R):pe(R)?c>1?(c=0,s.interrupt=!0,e.exit("tableRow"),e.enter("lineEnding"),e.consume(R),e.exit("lineEnding"),k):i(R):Ce(R)?Ee(e,y,"whitespace")(R):(c+=1,u&&(u=!1,l+=1),R===124?(e.enter("tableCellDivider"),e.consume(R),e.exit("tableCellDivider"),u=!0,y):(e.enter("data"),x(R)))}function x(R){return R===null||R===124||De(R)?(e.exit("data"),y(R)):(e.consume(R),R===92?w:x)}function w(R){return R===92||R===124?(e.consume(R),x):x(R)}function k(R){return s.interrupt=!1,s.parser.lazy[s.now().line]?i(R):(e.enter("tableDelimiterRow"),u=!1,Ce(R)?Ee(e,N,"linePrefix",s.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(R):N(R))}function N(R){return R===45||R===58?T(R):R===124?(u=!0,e.enter("tableCellDivider"),e.consume(R),e.exit("tableCellDivider"),I):Y(R)}function I(R){return Ce(R)?Ee(e,T,"whitespace")(R):T(R)}function T(R){return R===58?(c+=1,u=!0,e.enter("tableDelimiterMarker"),e.consume(R),e.exit("tableDelimiterMarker"),_):R===45?(c+=1,_(R)):R===null||pe(R)?te(R):Y(R)}function _(R){return R===45?(e.enter("tableDelimiterFiller"),z(R)):Y(R)}function z(R){return R===45?(e.consume(R),z):R===58?(u=!0,e.exit("tableDelimiterFiller"),e.enter("tableDelimiterMarker"),e.consume(R),e.exit("tableDelimiterMarker"),B):(e.exit("tableDelimiterFiller"),B(R))}function B(R){return Ce(R)?Ee(e,te,"whitespace")(R):te(R)}function te(R){return R===124?N(R):R===null||pe(R)?!u||l!==c?Y(R):(e.exit("tableDelimiterRow"),e.exit("tableHead"),o(R)):Y(R)}function Y(R){return i(R)}function F(R){return e.enter("tableRow"),ne(R)}function ne(R){return R===124?(e.enter("tableCellDivider"),e.consume(R),e.exit("tableCellDivider"),ne):R===null||pe(R)?(e.exit("tableRow"),o(R)):Ce(R)?Ee(e,ne,"whitespace")(R):(e.enter("data"),ue(R))}function ue(R){return R===null||R===124||De(R)?(e.exit("data"),ne(R)):(e.consume(R),R===92?fe:ue)}function fe(R){return R===92||R===124?(e.consume(R),ue):ue(R)}}function hS(e,o){let i=-1,s=!0,l=0,c=[0,0,0,0],u=[0,0,0,0],h=!1,m=0,f,y,x;const w=new sS;for(;++i<e.length;){const k=e[i],N=k[1];k[0]==="enter"?N.type==="tableHead"?(h=!1,m!==0&&(hm(w,o,m,f,y),y=void 0,m=0),f={type:"table",start:Object.assign({},N.start),end:Object.assign({},N.end)},w.add(i,0,[["enter",f,o]])):N.type==="tableRow"||N.type==="tableDelimiterRow"?(s=!0,x=void 0,c=[0,0,0,0],u=[0,i+1,0,0],h&&(h=!1,y={type:"tableBody",start:Object.assign({},N.start),end:Object.assign({},N.end)},w.add(i,0,[["enter",y,o]])),l=N.type==="tableDelimiterRow"?2:y?3:1):l&&(N.type==="data"||N.type==="tableDelimiterMarker"||N.type==="tableDelimiterFiller")?(s=!1,u[2]===0&&(c[1]!==0&&(u[0]=u[1],x=Ia(w,o,c,l,void 0,x),c=[0,0,0,0]),u[2]=i)):N.type==="tableCellDivider"&&(s?s=!1:(c[1]!==0&&(u[0]=u[1],x=Ia(w,o,c,l,void 0,x)),c=u,u=[c[1],i,0,0])):N.type==="tableHead"?(h=!0,m=i):N.type==="tableRow"||N.type==="tableDelimiterRow"?(m=i,c[1]!==0?(u[0]=u[1],x=Ia(w,o,c,l,i,x)):u[1]!==0&&(x=Ia(w,o,u,l,i,x)),l=0):l&&(N.type==="data"||N.type==="tableDelimiterMarker"||N.type==="tableDelimiterFiller")&&(u[3]=i)}for(m!==0&&hm(w,o,m,f,y),w.consume(o.events),i=-1;++i<o.events.length;){const k=o.events[i];k[0]==="enter"&&k[1].type==="table"&&(k[1]._align=cS(o.events,i))}return e}function Ia(e,o,i,s,l,c){const u=s===1?"tableHeader":s===2?"tableDelimiter":"tableData",h="tableContent";i[0]!==0&&(c.end=Object.assign({},Kr(o.events,i[0])),e.add(i[0],0,[["exit",c,o]]));const m=Kr(o.events,i[1]);if(c={type:u,start:Object.assign({},m),end:Object.assign({},m)},e.add(i[1],0,[["enter",c,o]]),i[2]!==0){const f=Kr(o.events,i[2]),y=Kr(o.events,i[3]),x={type:h,start:Object.assign({},f),end:Object.assign({},y)};if(e.add(i[2],0,[["enter",x,o]]),s!==2){const w=o.events[i[2]],k=o.events[i[3]];if(w[1].end=Object.assign({},k[1].end),w[1].type="chunkText",w[1].contentType="text",i[3]>i[2]+1){const N=i[2]+1,I=i[3]-i[2]-1;e.add(N,I,[])}}e.add(i[3]+1,0,[["exit",x,o]])}return l!==void 0&&(c.end=Object.assign({},Kr(o.events,l)),e.add(l,0,[["exit",c,o]]),c=void 0),c}function hm(e,o,i,s,l){const c=[],u=Kr(o.events,i);l&&(l.end=Object.assign({},u),c.push(["exit",l,o])),s.end=Object.assign({},u),c.push(["exit",s,o]),e.add(i+1,0,c)}function Kr(e,o){const i=e[o],s=i[0]==="enter"?"start":"end";return i[1][s]}const pS={name:"tasklistCheck",tokenize:fS};function mS(){return{text:{91:pS}}}function fS(e,o,i){const s=this;return l;function l(m){return s.previous!==null||!s._gfmTasklistFirstContentOfListItem?i(m):(e.enter("taskListCheck"),e.enter("taskListCheckMarker"),e.consume(m),e.exit("taskListCheckMarker"),c)}function c(m){return De(m)?(e.enter("taskListCheckValueUnchecked"),e.consume(m),e.exit("taskListCheckValueUnchecked"),u):m===88||m===120?(e.enter("taskListCheckValueChecked"),e.consume(m),e.exit("taskListCheckValueChecked"),u):i(m)}function u(m){return m===93?(e.enter("taskListCheckMarker"),e.consume(m),e.exit("taskListCheckMarker"),e.exit("taskListCheck"),h):i(m)}function h(m){return pe(m)?o(m):Ce(m)?e.check({tokenize:gS},o,i)(m):i(m)}}function gS(e,o,i){return Ee(e,s,"whitespace");function s(l){return l===null?i(l):o(l)}}function yS(e){return sf([HN(),XN(),aS(e),uS(),mS()])}const xS={};function vS(e){const o=this,i=e||xS,s=o.data(),l=s.micromarkExtensions||(s.micromarkExtensions=[]),c=s.fromMarkdownExtensions||(s.fromMarkdownExtensions=[]),u=s.toMarkdownExtensions||(s.toMarkdownExtensions=[]);l.push(yS(i)),c.push(FN()),u.push(zN(i))}function wS({severity:e="info",children:o}){return t.jsxs("div",{className:`banner banner--${e}`,role:e==="warning"?"alert":"status",children:[t.jsxs("svg",{width:"16",height:"16",viewBox:"0 0 16 16","aria-hidden":"true",className:"banner__icon",children:[t.jsx("path",{d:"M8 1.5 15 14H1L8 1.5Z",fill:"none",stroke:"currentColor",strokeWidth:"1.4",strokeLinejoin:"round"}),t.jsx("path",{d:"M8 6v3.5",stroke:"currentColor",strokeWidth:"1.4"}
148),t.jsx("circle",{cx:"8",cy:"11.8",r:"0.9",fill:"currentColor"})]}),t.jsx("div",{className:"banner__body",children:o})]})}const kS=`Terms of Service
149
150Triton Cloud  ·  Effective: September 9, 2026
151
152These Terms of Service (the "Terms") govern your access to and use of Triton Cloud — the cloud infrastructure services, console, API, command-line interface, documentation, and websites (together, the "Services") provided by Sovren Technologies, Inc. d/b/a Triton Cloud ("Triton," "we," "our," or "us").
153
154By creating an account, accessing, or using any part of the Services, you agree to these Terms, together with our [Privacy Policy](/legal/privacy-policy) and [Acceptable Use Policy](/legal/acceptable-use), which are incorporated by reference. If you do not agree, do not use the Services.
155
156## 1. Eligibility and Authority
157
158You may use the Services only if all of the following are true, and you affirm that they are:
159
160- You are at least 18 years old.
161- You are legally permitted to use the Services where you are located.
162- If you are accepting these Terms on behalf of a company, organization, or other legal entity, you have the authority to bind that entity, and "you" refers to that entity.
163- You are not barred from receiving services under U.S. law, and you have not previously been suspended or removed from the Services.
164## 2. Accounts, Teams, and Access
165
166Access to the Services is organized into a Team, which contains one or more Projects, which in turn hold your resources. Roles within a Team determine what each user can see and do; the account Owner controls billing.
167
168You must provide accurate, current, and complete registration information and keep it up to date. You are responsible for all activity that occurs under your account, including activity by users you invite and by any API token, access key, or SSH key issued from your account.
169
170Keep your credentials confidential. Do not share account access, and notify us promptly at [email protected] if you suspect unauthorized access. We may disable any credential, at any time, if we reasonably believe it has been compromised or used in violation of these Terms.
171
172## 3. The Services
173
174Triton provides infrastructure resources — including compute Instances, object storage Buckets, and networking resources such as VPCs, Reserved IPs, and NAT — which you provision and control through the console, API, or CLI. You decide what to run, how to configure it, and who may access it.
175
176The specific resources, Regions, and features available are those offered in the Services at the time you provision them. We may add, change, or discontinue features. Where a change would materially reduce the functionality of a resource you are actively using, we will give reasonable advance notice.
177
178On-premises and private cloud deployments are provided under a separate written agreement and are not governed by these Terms.
179
180## 4. Fees, Billing, and Payment
181
182### 4.1 Charges
183
184You agree to pay all fees for resources provisioned in your account, at the rates published for those resources at the time of use, plus applicable taxes. Compute is billed hourly and capped at the monthly price for the Package. Where an annual term is offered and elected, it is billed in advance for the term. Usage-based charges — storage volume, network transfer, and similar metered items — are calculated from our metering records.
185
186A resource accrues charges while it exists, whether or not you are using it. Stopping an Instance does not by itself stop all charges associated with it; destroying the resource does.
187
188### 4.2 Payment method and invoicing
189
190You must keep a valid payment method on file. You authorize us, and our payment processor, to charge that payment method for all amounts due. Invoices are issued to the account and are payable on receipt unless we have agreed otherwise in writing.
191
192### 4.3 Past due accounts
193
194If a charge fails or an invoice goes unpaid, your account moves to a past-due state and we will notify you. Your resources continue to run during a grace period of seven (7) days. If the balance remains unpaid at the end of the grace peri
194od, we may suspend the account and stop your running resources. We will retain the Customer Content held by those resources for a further fourteen (14) days, and will notify you before that period ends. Content not recovered within it is permanently deleted and cannot be restored.
195
196Bringing the account current during the grace or retention period restores access. You remain responsible for charges accrued before suspension.
197
198### 4.4 Disputes, refunds, and price changes
199
200Raise any billing dispute within thirty (30) days of the invoice date; charges not disputed within that window are final. Except where required by law, fees are non-refundable, and we do not provide refunds or credits for partial periods, unused resources, or resources left running in error.
201
202We may change our prices. Price increases affecting resources you are already running take effect no earlier than thirty (30) days after we notify you, and do not apply within a prepaid annual term already in progress.
203
204## 5. Your Content and Data
205
206"Customer Content" means all data, software, and other material you or your users store, run, process, or transmit using the Services.
207
208You own your Customer Content. These Terms grant Triton no ownership of it. You grant us only the limited, non-exclusive licence to host, store, copy, transmit, and display Customer Content, and to make backups and replicas of it, strictly to the extent necessary to provide the Services to you, to prevent or address a technical problem, or to comply with law.
209
210We do not use Customer Content for advertising, and we do not use it to train machine-learning models. We access it only as described in our Privacy Policy.
211
212You are responsible for the legality of your Customer Content, for having the rights necessary to process it, for meeting any regulatory obligations that attach to it, and for maintaining your own backups. Triton is not a backup service, and you should not rely on it as your only copy of anything you cannot lose.
213
214## 6. Acceptable Use
215
216You may not use the Services, or permit anyone else to use them, to:
217
218- Violate any law or regulation, or infringe the intellectual property, privacy, or other rights of anyone else.
219- Store, transmit, or facilitate child sexual abuse material. We report such material to the National Center for Missing & Exploited Children and to law enforcement, and terminate the responsible account without notice.
220- Send unsolicited bulk email or other spam, or operate infrastructure that supports it.
221- Distribute malware, run phishing or fraud infrastructure, or host content designed to deceive people into disclosing credentials or payment details.
222- Launch denial-of-service attacks, conduct unauthorized port scanning or penetration testing against systems you do not own or have written permission to test, or otherwise attack third-party networks.
223- Interfere with the Services or the platform — attempting to gain unauthorized access, escaping the boundaries of your own environment, circumventing quotas or metering, testing our security without authorization, or placing an unreasonable load on shared infrastructure.
224- Resell or provide the Services to third parties in a way that misrepresents their origin, or use them to build a directly competing infrastructure service.
225- Mine cryptocurrency, or run equivalent proof-of-work or distributed-computing workloads whose primary purpose is generating digital assets.
226Our [Acceptable Use Policy](/legal/acceptable-use) sets out these rules in full, including how we handle reports and what we do before suspending an account, and it controls wherever it is more specific than this section. Report abuse to [email protected].
227
228## 7. Suspension and Termination
229
230We may suspend or limit your access to all or part of the Services if we reasonably believe that: your use violates these Terms or the Acceptable Use Policy; your account is past due; your account has been compromised; your use poses a security risk, threatens the integrity of the platform, or creates legal exposure for Triton or others; or the law requires it.
231
232Where circumstances allow, we will give notice and an opportunity to correct the problem before suspending. Where the risk is severe or immediate — an active attack, illegal content, or a live threat to other customers — we may suspend first and notify you afterwards.
233
234You may stop using the Services and close your account at any time. Closing your account destroys the resources in it and does not entitle you to a refund of prepaid fees except where required by law.
235
236On termination, your right to use the Services ends immediately. Sections concerning fees already incurred, Customer Content ownership, intellectual property, disclaimers, limitation of liability, indemnification, and dispute resolution survive termination.
237
238## 8. Availability and Support
239
240We work to keep the Services available and to give notice of planned maintenance, but we do not warrant that the Services will be uninterrupted or error-free, and we may need to perform emergency maintenance without notice.
241
242Any service-level commitment applies only if it is set out in a Service Level Agreement published by Triton or in a written agreement signed by us. No uptime, availability, durability, or performance commitment is made by these Terms.
243
244## 9. Security Responsibilities
245
246Security on the Services is shared. Triton is responsible for the security of the underlying platform — physical infrastru
246cture, the hypervisor and host systems, the underlying network, and isolation between customer environments.
247
248You are responsible for everything you run on it, including: the operating system and software on your Instances and their patching; your access credentials, keys, and tokens; your network and firewall configuration; the access you grant to members of your Team; encryption of your own sensitive data; and the security of any application you expose to the internet.
249
250Note in particular that firewall rules are enforced for an Instance only when firewall enforcement is enabled for that Instance. An Instance without enforcement enabled ignores the rules that exist for it. Verify enforcement before treating a rule set as protection.
251
252## 10. Intellectual Property
253
254The Services, and all software, documentation, interfaces, designs, text, and other material comprising them, are owned by Triton, Sovren Technologies, Inc., or their licensors, and are protected by intellectual property laws. "Triton," "Triton Cloud," the Triton logo, and related names and marks are our trademarks; you may not use them without our prior written permission.
255
256Except for the rights expressly granted here, we grant you no licence to our intellectual property. You may not copy, modify, reverse-engineer, or create derivative works of the Services, except to the extent that restriction is prohibited by law or permitted by an applicable open-source licence.
257
258If you send us feedback, suggestions, or ideas about the Services, you grant us a perpetual, irrevocable, royalty-free licence to use them without obligation to you.
259
260## 11. Third-Party Software
261
262Operating system images, packages, and other third-party software made available through the Services are licensed by their respective owners under their own terms, which govern your use of them. We provide them as a convenience and make no warranty about them.
263
264## 12. Copyright Complaints
265
266If you believe content hosted on the Services infringes your copyright, send a notice meeting the requirements of the Digital Millennium Copyright Act, 17 U.S.C. § 512(c)(3), to [email protected] or to the address in Section 20. Your notice must include: a physical or electronic signature of the copyright owner or an authorized agent; identification of the work claimed to be infringed; identification of the material and its location, with enough detail for us to find it; your contact details; a statement of good-faith belief that the use is not authorized; and a statement, made under penalty of perjury, that the information is accurate and that you are authorized to act.
267
268We will respond as the DMCA requires and will terminate the accounts of repeat infringers in appropriate circumstances.
269
270## 13. Export Control and Sanctions
271
272You must comply with all applicable export control and economic sanctions laws. You represent that you are not located in, organized under the laws of, or ordinarily resident in a country or region subject to comprehensive U.S. sanctions, and that you are not a person on any U.S. restricted-party list. You may not make the Services available to any such person or use them for any purpose prohibited by those laws, including nuclear, chemical, biological weapons, or missile technology end uses.
273
274## 14. Confidentiality
275
276Each party may receive non-public information from the other in connection with the Services. Each party will protect the other's confidential information with at least reasonable care and use it only for purposes of these Terms. This does not apply to information that is public through no fault of the receiving party, was already known to it, is independently developed, or must be disclosed by law.
277
278## 15. Disclaimer of Warranties
279
280THE SERVICES ARE PROVIDED "AS IS" AND "AS AVAILABLE," AT YOUR OWN RISK. TO THE FULLEST EXTENT PERMITTED BY LAW, TRITON DISCLAIMS ALL WARRANTIES AND CONDITIONS, EXPRESS OR IMPLIED, INCLUDING MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, TITLE, AND NON-INFRINGEMENT.
281
282TRITON DOES NOT WARRANT THAT THE SERVICES WILL BE UNINTERRUPTED, SECURE, OR ERROR-FREE; THAT DEFECTS WILL BE CORRECTED; THAT ANY DATA WILL BE PRESERVED OR RECOVERABLE; OR THAT THE SERVICES WILL MEET YOUR REQUIREMENTS. YOU ARE RESPONSIBLE FOR MAINTAINING YOUR OWN BACKUPS AND FOR ARCHITECTING YOUR SYSTEMS TO TOLERATE FAILURE.
283
284## 16. Limitation of Liability
285
286TO THE MAXIMUM EXTENT PERMITTED BY LAW, AND REGARDLESS OF THE THEORY OF LIABILITY, TRITON WILL NOT BE LIABLE FOR ANY INDIRECT, INCIDENTAL, CONSEQUENTIAL, SPECIAL, EXEMPLARY, OR PUNITIVE DAMAGES, OR FOR ANY LOST PROFITS, LOST REVENUE, LOST BUSINESS, LOST GOODWILL, OR LOST, CORRUPTED, OR UNRECOVERABLE DATA, ARISING OUT OF OR RELATING TO THESE TERMS OR THE SERVICES, EVEN IF TRITON HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES AND EVEN IF A REMEDY IN THESE TERMS IS FOUND TO HAVE FAILED ITS ESSENTIAL PURPOSE.
287
288TRITON'S TOTAL AGGREGATE LIABILITY ARISING OUT OF OR RELATING TO THESE TERMS OR THE SERVICES WILL NOT EXCEED THE TOTAL AMOUNT YOU PAID TRITON FOR THE SERVICES IN THE TWELVE (12) MONTHS IMMEDIATELY PRECEDING THE EVENT GIVING RISE TO THE CLAIM.
289
290Some jurisdictions do not allow the exclusion of certain warranties or the limitation of certain damages. Where that is the case, the exclusions and limitations above apply to the greatest extent permitted by law.
291
292## 17. Indemnification
293
294You agree to defend, indemnify, and hold harmless Triton, Sovren Technologies, Inc., and their affiliates, officers, directors, employees, contractors, agents, licensors, and suppliers from and against any claims, liabilities, damages, judgments, losses, costs, and expenses (including reasonable legal fees) arising out of or relating to: your Customer Content; your use of the Services; your violation of these Terms, the Acceptable Use Policy, or applicable law; or your infringement of the rights of a third party.
295
296## 18. Governing Law and Dispute Resolution
297
298The laws of the State of Nevada govern these Terms and any dispute arising between you and Triton, without regard to conflict-of-laws principles.
299
300You agree that any dispute relating to these Terms or the Services will first be submitted to good-faith mediation within sixty (60) days of a written demand by either party, unless the parties agree otherwise in a signed writing. If mediation does not fully resolve the dispute, it will then be settled by arbitration as set out below.
301
302JURY TRIAL WAIVER. BY USING THE SERVICES, YOU WAIVE TRIAL BY JURY IN ANY ACTION, PROCEEDING, OR COUNTERCLAIM BROUGHT BY EITHER YOU OR TRITON RELATING TO OR ARISING OUT OF THESE TERMS, INCLUDING THE FORMATION OF ANY AGREEMENT BASED ON THEM.
303
304ARBITRATION. AT TRITON'S SOLE DISCRETION, TRITON MAY REQUIRE THAT ALL CLAIMS, CONTROVERSIES, AND DISPUTES ARISING OUT OF OR RELATING TO THESE TERMS BE DECIDED BY CONFIDENTIAL ARBITRATION IN NEVADA, USA, IN ACCORDANCE WITH THE COMMERCIAL ARBITRATION RULES OF THE AMERICAN ARBITRATION ASSOCIATION THEN IN EFFECT, UNLESS ALL PARTIES UNANIMOUSLY AGREE OTHERWISE. THIS PROVISION IS SPECIFICALLY ENFORCEABLE UNDER THE PREVAILING ARBITRATION LAW.
305
306Any arbitrator appointed will be a person with experience in cloud computing, hosting, or enterprise technology, selected under the AAA's Commercial Arbitration Rules then in effect. The parties may conduct discovery under Nevada's code of civil procedure. The arbitrator's remedial authority is the same as, but no greater than, that of a court with jurisdiction over the parties, and the arbitrator will issue a written opinion based on Nevada law specifying an award, which is final and binding.
307
308Nothing in this section prevents either party from seeking injunctive or other equitable relief in a court of competent jurisdiction to protect its intellectual property or confidential information.
309
310## 19. General
311
312- Changes to these Terms. We may modify these Terms by posting the revised version through the Services. Material changes take effect thirty (30) days after posting or notice; other changes take effect when posted. Your continued use after a change takes effect constitutes acceptance. If you do not accept a change, stop using the Services and close your account.
313- Entire agreement. These Terms, together with the Privacy Policy, Cookie Policy, and Acceptable Use Policy, are the entire agreement between you and Triton regarding the Services, and supersede all prior agreements on that subject. No statement by anyone associated with Triton modifies them unless it is in a signed writing that refers to these Terms.
314- Assignment. You may not assign these Terms without our prior written consent. We may assign them to an affiliate or in connection with a merger, acquisition, or sale of assets.
315- Severability and waiver. If any provision is held invalid or unenforceable, the rest remains in effect. Our failure to enforce a provision is not a waiver of it.
316- Force majeure. Neither party is liable for a failure to perform caused by events beyond its reasonable control.
317- Notices. We may give notice by email to the address on your account, or by posting in the console or on our website. Notices to us go to [email protected] and to the address below.
318- No third-party beneficiaries. These Terms create no rights for anyone other than you and Triton.
319## 20. Contact
320
321Legal and notices: [email protected]
322
323Support: [email protected]
324
325Abuse reports: [email protected]
326
327Copyright agent: [email protected]
328
329Security vulnerabilities: [email protected]
330
331Sovren Technologies, Inc. d/b/a Triton Cloud
332
3332801 Network Boulevard, Suite 300
334
335Frisco, TX 75034
336`,jS=`Privacy Policy
337
338Triton Cloud  ·  Effective: September 9, 2026
339
340Triton Cloud ("Triton," "we," "our," or "us") is a cloud infrastructure service operated by Sovren Technologies, Inc. d/b/a Triton Cloud. This Privacy Policy explains what information we collect when you visit tritoncloud.io, create a Triton account, or use the Triton console, API, CLI, or related services (together, the "Services"), how we use that information, and the choices and rights you have.
341
342This policy is written for a business service. Most of the people using Triton are doing so on behalf of a company, and most of the information we hold is account and billing information about that relationship — not information about personal life. Your use of the Services is also governed by our [Terms of Service](/legal/terms-of-service) and [Cookie Policy](/legal/cookie-policy).
343
344## 1. The Distinction That Matters Most: Your Content vs. Your Account Data
345
346Triton holds two very different kinds of information, and we treat them very differently.
347
348Customer Content is what you run and store on the Services: the data on your Instances, the objects in your Buckets, your configuration, your application data, and anything your own users send through systems you host with us. Customer Content belongs to you. We do not sell it, mine it, analyze it for advertising, or use it to train machine-learning models. We do not access the contents of your Instances or Buckets except in the narrow circumstances described in Section 4.
349
350Account Data is the information we need in order to provide, bill for, secure, and support the Services: who your account belongs to, what resources exist in it, how much they are used, who logged in and when, and how you have contacted us. This Privacy Policy is mostly about Account Data.
351
352## 2. Information We Collect
353
354### Information you provide to us
355
356- Account and registration information. Your name, email address, and password when you create an account; your organization or Team name; the display name and role of each user you invite; and any phone number you provide for account recovery or security.
357- Billing information. Your billing name, billing address, tax identifiers where applicable, and the payment method on file. Card and bank details are collected and stored by our third-party payment processor on our behalf — Triton does not store full payment card numbers on its own systems.
358- Identity and anti-fraud information. At signup we may verify a payment method and collect signals used to detect fraudulent or abusive account creation.
359- Support communications. If you contact support, sales, or our abuse team, we receive your message, any attachments or logs you send us, and the contact details you use.
360- Credentials you create. SSH public keys, API tokens, and access keys you generate in the console. We store the public half of an SSH key pair; we never ask for or hold your private key.
361### Information we collect automatically
362
363- Service and usage data. Which resources exist in your account, their Region, size, lifecycle state, and metered consumption — compute hours, object storage volume, network transfer, and similar measurements needed to bill you accurately and to plan capacity.
364- Console and website activity. Pages viewed, features used, actions taken in the console, and the dates and times of those actions.
365- Log and device information. IP address, browser type and version, operating system, device identifiers, referring URL, and access times. Authentication events, API calls, and administrative actions are recorded in an audit log associated with your account.
366- Cookies and similar technologies. Described in our [Cookie Policy](/legal/cookie-policy).
367### Information from third parties
368
369- Payment processor. Confirmation of successful or failed charges, the last four digits and brand of a card, and fraud signals.
370- Identity providers. If your organization signs in through single sign-on, we receive the attributes your identity provider sends us — typically name, email address, and group membership.
371- Abuse and security feeds. Reports from other network operators, security researchers, and public blocklists concerning traffic originating from Triton addresses.
372## 3. How We Use Information
373
374We use the information described above to:
375
376- Create, secure, and administer your account, Teams, and Projects.
377- Provide, operate, maintain, and improve the Services.
378- Meter usage, calculate charges, process payments, and issue invoices.
379- Send you service and administrative messages — provisioning notices, billing alerts, security notifications, maintenance windows, and changes to our terms.
380- Respond to your support requests and diagnose problems you report.
381- Detect, investigate, and prevent fraud, abuse, network attacks, and violations of our Terms of Service or Acceptable Use Policy.
382- Monitor capacity, reliability, and performance, and plan future capacity.
383- Comply with legal obligations and respond to lawful requests, and to establish, exercise, or defend legal claims.
384- With your consent where required, send you product announcements and marketing communications about Triton.
385We do not use Customer Content for any of these purposes except as described in Section 4, and we do not use any information we hold to build advertising profiles or to train machine-learning models.
386
387## 4. When We Access Customer Content
388
389We access the contents of your Instances and Buckets only in these circumstances:
390
391- With your instruction or permission — for example, when you open a support ticket and expressly ask us to look at a specific resource in order to diagnose the problem.
392- Where automated systems must touch data to deliver the service — for example, storing, replicating, and returning objects you have placed in a Bucket. This is machine processing required to operate the service, not human review.
393- To investigate a credible report of abuse or a live security threat, or where we reasonably believe access is necessary to protect the integrity of the platform or the safety of others.
394- Where required by law, as described in Section 5.
395Staff access to production systems is limited to personnel who need it, is authenticated, and is logged.
396
397## 5. How We Share Information
398
399We do not sell your personal information, and we do not share it with third parties for their own marketing purposes. We disclose information only as follows.
400
401### Service providers and subprocessors
402
403We use a limited set of vendors to run the business — payment processing, email delivery, error monitoring, customer support tooling, and infrastructure services. They may process information on our behalf, only under contract, only for the purposes we specify, and subject to confidentiality and security obligations.
404
405A current list of the subprocessors we use is available on request from [email protected]. Where we have entered into a data processing agreement with you, we will give advance notice of any new subprocessor as that agreement requires.
406
407### Within your organization
408
409Information about your account — including usage, resources, invoices, and audit-log entr
409ies showing actions you took — is visible to other members of your Team according to their role. An account Owner can see billing information; Owners and Admins can see resource activity. If your employer administers the account, they control it.
410
411### Legal and safety disclosures
412
413We may access, preserve, and disclose information if we believe in good faith that doing so is required or appropriate to comply with applicable law, a subpoena, court order, or other valid legal process; to enforce our Terms of Service; to respond to a claim of illegal activity or infringement; or to protect the rights, property, or safety of Triton, our customers, or the public. Where we are legally permitted to do so, we will make reasonable efforts to notify the affected customer before disclosing information in response to legal process.
414
415### Corporate transactions
416
417If Triton or Sovren Technologies, Inc. is involved in a merger, acquisition, financing, reorganization, or sale of assets, information may be transferred as part of that transaction. The transferred information will remain subject to this Privacy Policy, or you will be notified of any materially different policy that applies.
418
419### With your consent
420
421We share information in other ways when you direct or permit us to.
422
423## 6. Data Retention and Deletion
424
425- Customer Content is retained while the resource holding it exists. When you destroy an Instance or delete an object or Bucket, the underlying storage is released and the data becomes irrecoverable to you immediately.
426- Past due and suspended accounts. If a payment fails, your account enters a seven (7) day grace period during which your resources keep running. If the balance is still unpaid at the end of that period, we suspend the account and stop your resources, and Customer Content is retained for a further fourteen (14) days. We notify you before that retention period ends. Content not recovered within it is permanently deleted.
427- Closed accounts. If you close your account, the resources in it are destroyed and their Customer Content is deleted.
428- Account and billing records are retained for as long as the account is open and afterwards for the period required by tax, accounting, and legal-obligation rules.
429- Logs, audit records, and metering data are retained for a limited period for security, billing dispute resolution, and capacity planning, then deleted or aggregated into a form that no longer identifies an individual.
430- Backups are cycled on a fixed schedule; data deleted from live systems persists in backups until those backups age out.
431## 7. Security
432
433We use physical, technical, and administrative safeguards designed to protect the information we hold, including encryption in transit, access controls, authentication logging, and separation between customer environments.
434
435Security on a cloud platform is shared. We are responsible for the security of the platform; you are responsible for the security of what you run on it — your operating system and application patching, your access credentials, your network rules, and who you grant access to your Team.
436
437One point deserves specific mention because it is easy to get wrong: the platform firewall is not enforced on an Instance until firewall enforcement is enabled for that Instance. Rules that exist but are not enforced do not protect anything. Please confirm enforcement is on before treating a rule set as protection.
438
439No method of transmission or storage is completely secure, and we cannot guarantee absolute security. If we become aware of a breach affecting your personal information, we will notify you as required by applicable law.
440
441## 8. International Data Transfers
442
443The Services are hosted in the United States. If you access the Services from outside the United States, you are transferring information to the United States for storage and processing, where privacy laws may differ from those in your jurisdiction. By using the Services you consent to that transfer.
444
445## 9. Your Choices
446
447- Account information. You can review and correct your account and profile information in the console at any time.
448- Marketing communications. You can unsubscribe from marketing email using the link in any such message or through your account settings. You will c
448ontinue to receive administrative and service messages — billing notices, security alerts, and maintenance notifications — because they are part of the Services.
449- Cookies. See our [Cookie Policy](/legal/cookie-policy) for browser and consent controls.
450- Closing your account. You can close your account from the console. Closing an account destroys the resources in it.
451## 10. Privacy Rights in U.S. States
452
453Residents of a number of U.S. states have specific rights over their personal information. Depending on your state, these typically include the right to know what personal information we collect and why, to access a copy of it, to correct inaccuracies, to delete it, to opt out of sale or of targeted advertising and profiling, and to appeal a decision we make about such a request.
454
455Triton does not sell personal information and does not use it for targeted advertising or profiling. If that ever changes, we will update this policy and provide an opt-out before the change takes effect.
456
457State privacy laws currently granting such rights include those of California, Colorado, Connecticut, Delaware, Florida, Indiana, Iowa, Kentucky, Maryland, Minnesota, Montana, Nebraska, New Hampshire, New Jersey, Oregon, Rhode Island, Tennessee, Texas, Utah, and Virginia. Personal information does not include publicly available government records, deidentified or aggregated information, or information excluded from the scope of those laws.
458
459### Exercising your rights
460
461Email [email protected]. Only you, or someone legally authorized to act on your behalf, may make a request about your personal information, and we must be able to verify your identity before acting. We will confirm receipt within ten (10) business days and aim to respond substantively within forty-five (45) days. If we need more time — up to a further forty-five (45) days — we will tell you why in writing.
462
463We will not discriminate against you for exercising any of these rights.
464
465Where Triton processes personal information on your behalf as part of Customer Content, we act as a service provider or processor. If you are an end user of a service someone else runs on Triton, please direct your request to that organization; we will assist them in responding.
466
467## 11. Rights in the European Economic Area and the United Kingdom
468
469If your personal data is collected in connection with our activities in the EEA or the UK, you have the right to withdraw consent where consent is our lawful basis; to access your personal data; to have inaccurate data corrected; to have data erased where it is no longer necessary or was unlawfully processed; to have processing restricted in certain circumstances; to receive certain data in a machine-readable format; and to object to particular uses of your data.
470
471The right to erasure is not absolute — we may need to retain data to meet a legal obligation or to establish or defend a legal claim. You may also lodge a complaint with the supervisory authority in your country or region.
472
473Sovren Technologies, Inc. d/b/a Triton Cloud is the data controller for Account Data processed in connection with the Services. For Customer Content, the customer is the controller and Triton is the processor.
474
475## 12. Children
476
477The Services are intended for businesses and for individuals aged 18 or older. We do not knowingly collect personal information from children. If you believe a child has provided us with personal information, contact [email protected] and we will delete it.
478
479## 13. Changes to This Policy
480
481We will post any changes on this page and update the effective date above. If we materially change how we use or share personal information we have already collected, we will notify you through the Services, by email, or by other means before the change takes effect. Your continued use of the Services after a change takes effect constitutes acceptance of it.
482
483## 14. Contact Us
484
485Questions, comments, or concerns about this policy or our processing activities:
486
487Privacy requests: [email protected]
488
489General and legal: [email protected]
490
491Support: [email protected]
492
493Sovren Technologies, Inc. d/b/a Triton Cloud
494
495Attn: Privacy Request
496
4972801 Network Boulevard, Suite 300
498
499Frisco, TX 75034
500`,bS=`Acceptable Use Policy
501
502Triton Cloud  ·  Effective: September 9, 2026
503
504This Acceptable Use Policy (the "Policy") describes what you may and may not do with Triton Cloud, operated by Sovren Technologies, Inc. d/b/a Triton Cloud ("Triton," "we," "our," or "us"). It forms part of our Terms of Service and applies to everyone who uses the Services, including your employees, contractors, customers, and end users.
505
506The purpose of this Policy is straightforward. Triton is shared infrastructure. A small number of accounts behaving badly can degrade performance for everyone else, get our address space blocklisted, or expose us and our customers to legal risk. This Policy sets the boundaries needed to keep the platform usable and lawful — not to govern what kind of business you run.
507
508We recognize that as an infrastructure provider we are further from your content than a hosted application would be. We do not monitor what you run, and we do not want to arbitrate ordinary disputes about it. We act on this Policy when there is real harm, real risk, or a legal obligation.
509
510## 1. You Are Responsible for Your Users
511
512You are responsible for all activity in your account, including activity by anyone you give access to and by the end users of any service you operate on Triton. If you provide a service that lets other people upload or transmit content, you must have your own acceptable use terms, a working way for people to report abuse to you, and the ability to act on those reports promptly.
513
514When abuse originates from your account, we will normally come to you first and expect you to resolve it. Your ability to do so quickly is what keeps the response proportionate.
515
516## 2. Prohibited Content
517
518You may not use the Services to store, transmit, host, or make available:
519
520- Child sexual abuse material (CSAM), or any material that sexually exploits a minor. This is absolute and admits no context, purpose, or exception. We report such material to the National Center for Missing & Exploited Children and to law enforcement as required by law, preserve the associated data as directed, and terminate the account immediately and without notice.
521- Content that infringes another party's copyright, trademark, patent, trade secret, or other intellectual property rights.
522- Content that violates another person's privacy or publicity rights, including non-consensual intimate imagery and material published to harass, dox, or intimidate a specific individual.
523- Content that promotes, incites, or provides instruction for terrorism, mass violence, or violent extremism.
524- Content designed to deceive — phishing pages, fraudulent storefronts, fake login or payment flows, counterfeit goods, or impersonation of a real person or organization for the purpose of deception.
525- Malware, ransomware, exploit kits, botnet command-and-control infrastructure, credential-stuffing lists, or tooling whose primary purpose is unauthorized access to systems.
526- Content that is otherwise unlawful under the laws applicable to you or to us.
527## 3. Lawful Adult Content
528
529Sexually explicit material involving consenting adults is not prohibited by this Policy, provided that it is lawful in every jurisdiction where you make it available, it is appropriately age-restricted, and 
529you comply in full with all applicable record-keeping and labeling requirements, including 18 U.S.C. § 2257 where it applies. We may ask you to confirm compliance in writing, and may decline or discontinue service if you cannot.
530
531Nothing in this section limits Section 2. Material involving minors, or involving anyone who has not consented, is prohibited absolutely.
532
533## 4. Prohibited Network and Security Activity
534
535You may not:
536
537- Launch or participate in denial-of-service or amplification attacks against any target, including targets you own.
538- Scan, probe, or test the vulnerability of any network or system you do not own, unless you hold documented written authorization from its owner. You must be able to produce that authorization on request.
539- Attempt to gain unauthorized access to any system, account, or data — ours, another customer's, or a third party's — or to escape the boundaries of your own environment.
540- Intercept, sniff, or alter traffic that is not yours, or spoof source addresses, DNS records, BGP announcements, or packet headers.
541- Operate open relays, open proxies, open recursive DNS resolvers, or any other service configured in a way that lets third parties abuse it anonymously.
542- Circumvent quotas, metering, rate limits, or billing, or use multiple accounts to evade a limit or a suspension.
543Testing your own systems on Triton. You may perform security testing against infrastructure in your own account. Testing that generates significant traffic volume, or that could plausibly be mistaken for an attack in progress, must be coordinated with us in advance at [email protected] so that our own defenses do not act against you.
544
545If you find a vulnerability in the Triton platform itself, report it to [email protected]. We will not pursue action against good-faith research that is reported to us promptly, stays within your own account, does not access other customers' data, and does not degrade the platform.
546
547## 5. Email and Messaging
548
549You may send email from the Services, subject to these rules:
550
551- Send only to recipients who have consented to hear from you. No purchased, scraped, or harvested lists.
552- Comply with the CAN-SPAM Act and any other law applicable to your recipients, including accurate headers and sender identity, a functioning unsubscribe mechanism, and prompt honoring of opt-outs.
553- Maintain correct forward and reverse DNS, and appropriate authentication records, for any address you send from.
554- Keep bounce and complaint rates within normal industry ranges, and stop sending to addresses that hard-bounce or complain.
555Sending unsolicited bulk email, or operating infrastructure that supports someone else doing so, is prohibited. Because spam originating from our address space harms every customer, we treat it as a serious violation and may act quickly.
556
557## 6. Resource Use
558
559Triton's pricing assumes normal, variable workloads sharing capacity in the ordinary way. You may not:
560
561- Mine cryptocurrency, or run proof-of-work, distributed-computing, or similar workloads whose primary purpose is generating digital assets. This applies whether the workload is your own or run on someone else's behalf, and it is a condition of the flat pricing we offer.
562- Sustain resource consumption that materially degrades service for other customers on shared infrastructure.
563- Run automated processes that create and destroy resources at a rate intended to exploit billing granularity, trial allowances, or promotional pricing.
564- Use the Services principally as a bulk file-distribution or media-seeding endpoint in a way that is inconsistent with the published characteristics of the product.
565If your workload is legitimate but unusually heavy, talk to us at [email protected] before you deploy it. Capacity we know about is capacity we can plan for.
566
567## 7. Resale and Misrepresentation
568
569You may build products on Triton and serve your own customers from them. You may not resell the Services in a way that misrepresents their origin or your relationship with us, present Triton's infrastructure as your own operated facilities, or use the Services to build a directly competing infrastru
569cture service.
570
571## 8. Export Control and Sanctions
572
573You may not use the Services in violation of U.S. export control or economic sanctions laws, or make them available to any person or in any jurisdiction those laws prohibit.
574
575## 9. Reporting Abuse
576
577Report suspected violations to [email protected]. To let us act quickly, include:
578
579- The IP address, domain, or URL involved.
580- Timestamps with the time zone, and relevant log excerpts or headers.
581- A description of what occurred and what harm it caused.
582- Your contact details, so we can follow up.
583Copyright complaints follow the notice procedure in Section 12 of our Terms of Service and should be sent to [email protected]. Reports of child sexual abuse material receive priority handling; send them to [email protected] and, where appropriate, to the CyberTipline at report.cybertip.org.
584
585We acknowledge abuse reports and investigate them. We do not disclose the outcome of an investigation, or the identity of a customer, except where the law requires it or valid legal process compels it.
586
587## 10. How We Respond
588
589Our response is proportionate to the harm, the risk, and your history. In most cases we will:
590
591- Notify you of the report or the behavior we have observed, and give you a reasonable period to investigate and correct it — normally forty-eight (48) hours, and shorter where harm is ongoing.
592- Escalate to a limit or partial suspension — such as blocking a port, rate-limiting traffic, or taking a single resource offline — if the problem is not corrected, preferring the narrowest measure that stops the harm.
593- Suspend the account where the violation continues, recurs, or is serious enough on its own.
594- Terminate the account for severe violations, for repeated violations after warning, or where required by law.
595Immediate action without prior notice. We will act first and notify you afterwards where the situation demands it: child sexual abuse material; an attack in progress originating from your account; active phishing or malware distribution; a compromised account being used to harm others; or a valid legal order requiring immediate action. In these cases we act on the narrowest scope that stops the harm, and we tell you what we did and why as soon as we reasonably can.
596
597Appeals. If you believe we acted in error, write to [email protected] with the details. We will review the decision and respond. Where a suspension resulted from a mistake on our part, we will restore service and will not charge you for the period of the outage.
598
599Suspension for a violation of this Policy does not relieve you of fees already incurred, and we are not liable for losses arising from action taken in good faith under this Policy.
600
601## 11. Legal Requests
602
603We respond to valid legal process. Where the law permits and no exception applies — such as a court-ordered non-disclosure obligation or an emergency involving risk to life — we make reasonable efforts to notify the affected customer before producing information, so that they have an opportunity to respond.
604
605## 12. Changes to This Policy
606
607We may update this Policy as the Services change and as new categories of abuse appear. We will post changes on this page and update the effective date. Material changes take effect thirty (30) days after we post or notify you, except where a change is required by law or is needed to address an active threat, in which case it takes effect immediately.
608
609## 13. Contact
610
611Abuse reports: [email protected]
612
613Security vulnerabilities: [email protected]
614
615Copyright notices: [email protected]
616
617Support: [email protected]
618
619Legal: [email protected]
620
621Sovren Technologies, Inc. d/b/a Triton Cloud
622
6232801 Network Boulevard, Suite 300
624
625Frisco, TX 75034
626`,NS=`Cookie Policy
627
628Triton Cloud  ·  Effective: September 9, 2026
629
630Sovren Technologies, Inc. d/b/a Triton Cloud ("Triton," "we," "our," or "us") uses cookies and similar technologies on tritoncloud.io and in the Triton console. This policy explains what those technologies are, what we use them for, and how you can control them. It supplements our [Privacy Policy](/legal/privacy-policy).
631
632## 1. What Cookies Are
633
634A cookie is a small text file stored on your device when you visit a website. Cookies let a site remember things between page loads and between visits — that you are signed in, which theme you prefer, whether you have dismissed a banner.
635
636A session cookie is deleted when you close your browser. A persistent cookie stays until it expires or you delete it. A first-party cookie is set by the site you are visiting; a third-party cookie is set by another domain whose service is embedded in the page.
637
638We also use closely related technologies — local storage, session storage, and pixels — and treat them the same way in this policy.
639
640## 2. Two Surfaces, Two Different Uses
641
642Triton has two distinct web surfaces, and they use cookies differently.
643
644- The marketing website (tritoncloud.io) uses strictly necessary cookies and, where you permit it, analytics cookies that help us understand which pages are useful.
645- The console (the signed-in application) uses strictly necessary and functional cookies only. We do not run advertising or cross-site tracking inside the console.
646We do not use cookies for advertising, retargeting, or selling data to third parties on either surface.
647
648## 3. Categories of Cookies We Use
649
650| Category | What it does | Typical lifetime | Can you refuse it? |
651| --- | --- | --- | --- |
652| Strictly necessary | Keeps you signed in, maintains your session, routes requests, protects against cross-site request forgery, applies rate limiting, and remembers your cookie choices. | Session to 12 months | No — the Services cannot function without these |
653| Functional | Remembers preferences you have set: light or dark theme, table density, the last Project or Region you were working in, and dismissed notices. | Up to 12 months | Yes — refusing means these preferences reset each visit |
654| Analytics | Tells us which pages and documentation are visited, how visitors move through the site, and where they encounter errors, so we can improve them. Reported in aggregate. | Up to 24 months | Yes |
655| Security | Detects fraudulent signups, credential stuffing, and automated abuse of signup and login forms. | Session to 12 months | No — these protect all customers |
656
657Lifetimes above are the maximum for each category. A current list of the specific cookies we set, the domain that sets each one, and its expiry is available on request from [email protected].
658
659## 4. Third-Party Cookies
660
661Some cookies are set by providers we use to run the site and the Services — for example an analytics provider, our payment processor on billing pages, and a content delivery network. These providers may set their own cookies, subject to their own privacy policies. We do not permit them to use cookies set through our properties for their own advertising purposes. The providers currently in use are named in the cookie list described above, available on request from [email protected].
662
663## 5. Your Choices
664
665### Browser controls
666
667Every major browser lets you see the cookies stored on your device, delete them, and block some or all future cookies. These controls are usually found under Settings → Privacy. Blocking strictly necessary cookies will prevent you from signing in to the console.
668
669### Consent controls
670
671Where applicable law requires your consent before non-essential cookies are set, we obtain that consent before setting them. You can withdraw consent at any time by clearing and blocking cookies in your browser, by using any cookie settings control we provide on the site, or by contacting [email protected].
672
673### Do Not Track and Global Privacy Control
674
675There is no common industry standard for responding to "Do Not Track" browser signals, and we do not currently respond to them. We do honour the Global Privacy Control signal where applicable law requires it. Because we do not sell personal information or use it for targeted advertising, the practical effect on your data is limited either way.
676
677### Opting out of analytics
678
679You can opt out of analytics cookies by blocking them in your browser or through any cookie settings control we provide on the site. Doing so does not affect your ability to use the Services.
680
681## 6. Changes to This Policy
682
683We will post any changes to this policy on this page and update the effective date above. If we begin using cookies for a materially different purpose, we will tell you before that change takes effect and, where required, ask for your consent.
684
685## 7. Contact Us
686
687Questions about our use of cookies:
688
689Privacy: [email protected]
690
691Support: [email protected]
692
693Sovren Technologies, Inc. d/b/a Triton Cloud
694
6952801 Network Boulevard, Suite 300
696
697Frisco, TX 75034
698`;function Ba(e){return e.toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-|-$/g,"")}function Pa(e){const o=e.trim().split(/\n\s*\n/),i=o[0].trim(),s=o[1].replace(/^Triton Cloud\s*·\s*Effective:\s*/,"").trim(),l=o.slice(2).join(`
699
700`),c=Array.from(l.matchAll(/^##\s+(.+)$/gm),u=>u[1].trim());return{status:"published",title:i,effectiveDate:s,content:l,sections:c}}function SS({doc:e}){return e.status==="placeholder"?t.jsxs(t.Fragment,{children:[t.jsx(wS,{severity:"warning",children:"This page is a placeholder. Final copy will be supplied by Legal before launch."}),t.jsxs("header",{className:"legal-page__header",children:[t.jsx("h1",{children:e.title}),t.jsx("p",{className:"legal-page__updated",children:"Last updated: [to be set at publication]"})]}),e.sections.map(o=>t.jsxs("section",{id:Ba(o),className:"legal-page__section",children:[t.jsx("h2",{children:o}),t.jsx("p",{children:"[Section content to be provided by Legal.]"})]},o))]}):t.jsxs(t.Fragment,{children:[t.jsxs("header",{className:"legal-page__header",children:[t.jsx("h1",{children:e.title}),t.jsxs("p",{className:"legal-page__updated",children:["Effective: ",e.effectiveDate]})]}),t.jsx("article",{className:"legal-page__document",children:t.jsx(a0,{remarkPlugins:[vS],components:{h2:({children:o})=>{const i=String(o);return t.jsx("h2",{id:Ba(i),children:o})},h3:({children:o})=>{const i=String(o);return t.jsx("h3",{id:Ba(i),children:o})},a:({href:o,children:i})=>{const s=o?.startsWith("http");return o?.startsWith("/")?t.jsx(M,{to:o,children:i}):t.jsx("a",{href:o,...s?{target:"_blank",rel:"noreferrer"}:{},children:i})}},children:e.content})})]})}function Xf({doc:e}){return t.jsx("div",{className:"page",children:t.jsxs("div",{className:"container legal-layout",children:[t.jsxs("nav",{className:"legal-toc","aria-label":"On this page",children:[t.jsx("span",{className:"legal-toc__head mono",children:"ON THIS PAGE"}),t.jsx("ul",{children:e.sections.map(o=>t.jsx("li",{children:t.jsx("a",{href:`#${Ba(o)}`,children:o})},o))})]}),t.jsx("div",{className:"legal-page",children:t.jsx(SS,{doc:e})})]})})}const TS={"terms-of-service":Pa(kS),"privacy-policy":Pa(jS),"acceptable-use":Pa(bS),"cookie-policy":Pa(NS),sla:{status:"placeholder",title:"Service Level Agreement",sections:["Purpose and Scope","Service Availability Commitment","Service Credits","Exclusions","How to Request a Credit","Definitions","Contact"]},"data-processing-addendum":{status:"placeholder",title:"Data Processing Addendum",sections:["Purpose and Scope","Roles of the Parties (Controller/Processor)","Processing Details (Subject Matter, Duration, Nature)","Sub-processors","Data Subject Rights","Security Measures","International Transfers","Audit Rights","Term and Termination"]}};function fr({slug:e}){return t.jsx(Xf,{doc:TS[e]})}const CS=Object.freeze(Object.defineProperty({__proto__:null,LegalPage:Xf,LegalRoute:fr},Symbol.toStringTag,{value:"Module"})),ES={"/":()=>t.jsx(Zv,{}),"/pricing":()=>t.jsx(ew,{}),"/presentation":()=>t.jsx(Aw,{}),"/product/compute":()=>t.jsx(fw,{}),"/product/object-storage":()=>t.jsx(ww,{}),"/product/networking":()=>t.jsx(xw,{}),"/product/mcp":()=>t.jsx(gw,{}),"/on-prem":()=>t.jsx(Tw,{}),"/on-prem/open-compute":()=>t.jsx(_w,{}),"/smartos":()=>t.jsx(Ow,{}),"/smartos/support":()=>t.jsx(Fw,{}),"/pkgsrc":()=>t.jsx(Ww,{}),"/pkgsrc/install-on-illumos":()=>t.jsx(Vw,{}),"/pkgsrc/install-on-macos":()=>t.jsx($w,{}),"/pkgsrc/install-on-linux":()=>t.jsx(Gw,{}),"/pkgsrc/install-on-netbsd":()=>t.jsx(qw,{}),"/company/about":()=>t.jsx(ow,{}),"/company/status":()=>t.jsx(lw,{}),"/company/roadmap":()=>t.jsx(sw,{}),"/contact/sales":()=>t.jsx(dw,{}),"/contact/support":()=>t.jsx(hw,{}),"/legal/terms-of-service":()=>t.jsx(fr,{slug:"terms-of-service"}),"/legal/privacy-policy":()=>t.jsx(fr,{slug:"privacy-policy"}),"/legal/acceptable-use":()=>t.jsx(fr,{slug:"acceptable-use"}),"/legal/cookie-policy":()=>t.jsx(fr,{slug:"cookie-policy"}),"/legal/sla":()=>t.jsx(fr,{slug:"sla"}),"/legal/data-processing-addendum":()=>t.jsx(fr,{slug:"data-processing-addendum"})};function Aa(e){return ES[e]?.()??null}function _S(){return typeof document<"u"&&document.documentElement.dataset.theme==="light"?"light":"dark"}function IS(){const[e,o]=C.useState(_S);C.useEffect(()=>{document.documentElement.dataset.theme=e;try{localStorage.setItem("tc-theme",e)}catch{}},[e]);const i=e==="dark"?"light":"dark";return t.jsx("button",{className:"theme-toggle","aria-label":`Switch to ${i} theme`,title:`Switch to ${i} theme`,onClick:()=>o(i),children:t.jsxs("span",{className:"theme-toggle__icons","aria-hidden":"true",children:[t.jsxs("svg",{className:"theme-toggle__icon theme-toggle__icon--sun",width:"16",height:"16",viewBox:"0 0 16 16",children:[t.jsx("circle",{cx:"8",cy:"8",r:"3.25",fill:"none",stroke:"currentColor",strokeWidth:"1.25"}),t.jsx("path",{d:"M8 1v2M8 13v2M1 8h2M13 8h2M3 3l1.4 1.4M11.6 11.6 13 13M13 3l-1.4 1.4M4.4 11.6 3 13",stroke:"currentColor",strokeWidth:"1.25"})]}),t.jsx("svg",{className:"theme-toggle__icon theme-toggle__icon--moon",width:"16",height:"16",viewBox:"0 0 16 16",children:t.jsx("path",{d:"M13.5 9.5A5.5 5.5 0 0 1 6.5 2.5a5.5 5.5 0 1 0 7 7Z",fill:"none",stroke:"currentColor",strokeWidth:"1.25"})})]})})}function mu({compact:e=!1}){return t.jsx("span",{className:"logo",children:t.jsx("svg",{className:"logo__wordmark",viewBox:"0 0 682 123",role:"img","aria-label":"Triton",fill:"currentColor",children:t.jsx("path",{d:"M213.2 11.2489V31.5604C213.2 34.5002 210.783 36.6398 208.098 36.6398H164.067C161.114 36.6398 158.965 39.0461 158.965 41.7191V113.352C158.965 116.291 156.548 118.431 153.863 118.431H133.187C130.235 118.43
7001 128.085 116.291 128.085 113.352V36.6398C128.085 19.8014 141.778 5.90282 158.959 5.90282H208.092C211.045 6.16955 213.194 8.30913 213.194 11.2489M257.767 4.83593H237.091C234.138 4.83593 231.989 7.24224 231.989 9.91527V112.024C231.989 114.964 234.406 117.103 237.091 117.103H257.493C260.446 117.103 262.595 114.697 262.595 112.024V9.91527C262.863 6.97552 260.446 4.83593 257.761 4.83593M389.597 4.83593H287.033C284.08 4.83593 281.931 7.24224 281.931 9.91527V30.4993C281.931 33.4391 284.348 35.5787 287.033 35.5787H317.639C320.324 35.5787 322.741 37.7183 322.741 40.658V112.291C322.741 115.23 325.158 117.37 327.843 117.37H348.245C351.198 117.37 353.347 114.964 353.347 112.291V40.3913C353.347 37.4515 355.764 35.312 358.449 35.312H389.591C392.544 35.312 394.693 32.9057 394.693 30.2326V9.91527C394.693 6.97552 392.544 4.83593 389.591 4.83593M107.951 4.83593H5.3932C2.70825 4.83593 0.291214 6.96972 0.291214 9.91527V30.4993C0.291214 33.4391 2.70825 35.5787 5.3932 35.5787H35.9993C38.6842 35.5787 41.1013 37.7183 41.1013 40.658V112.291C41.1013 115.23 43.5183 117.37 46.2032 117.37H66.6054C69.5582 117.37 71.7073 114.964 71.7073 112.291V40.3913C71.7073 37.4515 74.1244 35.312 76.8093 35.312H107.951C110.636 35.312 112.785 32.9057 113.053 30.2326V9.91527C113.053 6.97552 110.636 4.83593 107.951 4.83593ZM542.365 9.91527V112.024C542.365 114.964 544.782 117.103 547.467 117.103H567.869C570.822 117.103 572.971 114.697 572.971 112.024V40.3913C572.971 37.4515 575.388 35.312 578.073 35.312H619.687C622.64 35.312 624.789 37.7183 624.789 40.3913V112.024C624.789 114.964 627.206 117.103 629.891 117.103H650.293C653.246 117.103 655.395 114.697 655.395 112.024V35.3062C655.395 18.4678 641.703 4.56921 624.521 4.56921H547.199C544.514 4.83593 542.365 6.97552 542.365 9.91527ZM465.038 32.6331C448.928 32.6331 436.039 45.4648 436.039 61.503C436.039 77.5412 448.928 90.3729 465.038 90.3729C481.147 90.3729 494.036 77.5412 494.036 61.503C494.036 45.7316 481.147 32.8999 465.038 32.6331ZM465.038 0.290039C499.138 0.290039 526.524 27.8205 526.524 61.503C526.524 95.1855 498.87 122.716 465.038 122.716C431.205 122.716 403.552 95.1855 403.552 61.503C403.552 27.8263 431.205 0.290039 465.038 0.290039ZM668.552 8.84258H671.237V7.77569H664.254V9.1093H666.939V16.8617H668.552V8.84258ZM677.411 16.8617L680.096 9.64275V16.8617H681.709V7.77569H679.56L676.875 14.9946L674.458 7.77569H672.041V16.8617H673.654V9.90947L676.339 17.1284L677.411 16.8617Z"})})})}const pm="a[href], button:not([disabled])";function PS({onClose:e,closing:o=!1}){const i=gt(),s=i.pathname.startsWith("/on-prem")||i.pathname==="/presentation",l=i.pathname==="/presentation",[c,u]=C.useState(null),h=C.useRef(null),m=C.useRef(null);return C.useEffect(()=>{const f=document.body.style.overflow;return document.body.style.overflow="hidden",()=>{document.body.style.overflow=f}},[]),C.useEffect(()=>{o?(h.current?.setAttribute("inert",""),m.current?.focus()):(h.current?.removeAttribute("inert"),m.current=document.activeElement,h.current?.querySelector(pm)?.focus())},[o]),C.useEffect(()=>{if(o)return;function f(y){if(y.key!=="Tab"||!h.current)return;const x=Array.from(h.current.querySelectorAll(pm));if(x.length===0)return;const w=x[0],k=x[x.length-1],N=document.activeElement;y.shiftKey?(N===w||!h.current.contains(N))&&(y.preventDefault(),k.focus()):(N===k||!h.current.contains(N))&&(y.preventDefault(),w.focus())}return document.addEventListener("keydown",f),()=>document.removeEventListener("keydown",f)},[o]),t.jsxs("div",{className:`mobile-menu${o?" is-closing":""}`,role:"dialog","aria-modal":"true","aria-label":"Menu",ref:h,children:[t.jsxs("div",{className:"mobile-menu__scroll",children:[t.jsxs("div",{className:"mobile-menu__section",children:[t.jsxs("button",{className:"mobile-menu__accordion","aria-expanded":c==="cloud",onClick:()=>u(c==="cloud"?null:"cloud"),children:["Cloud ",t.jsx("span",{className:"mobile-menu__chev","aria-hidden":"true",children:c==="cloud"?"−":"+"})]}),t.jsx("div",{className:`mobile-menu__panelwrap${c==="cloud"?" is-open":""}`,children:t.jsxs("div",{className:"mobile-menu__panel",children:[t.jsxs("div",{className:"mobile-menu__intro",children:[t.jsx("strong",{children:"TRITON CLOUD"}
700),t.jsx("span",{children:"Cloud infrastructure operated by us."})]}),t.jsx("div",{className:"mobile-menu__group",children:"Compute"}),t.jsx(M,{to:"/product/compute",onClick:e,children:"Instances"}),t.jsx(M,{to:"/product/compute#packages",onClick:e,children:"Packages"}),t.jsx("div",{className:"mobile-menu__group",children:"Storage"}),t.jsx(M,{to:"/product/object-storage",onClick:e,children:"Object Storage"}),t.jsx("div",{className:"mobile-menu__group",children:"Networking"}),t.jsx(M,{to:"/product/networking",onClick:e,children:"VPC & Subnets"}),t.jsx(M,{to:"/product/networking#reserved-ips",onClick:e,children:"Reserved IPs"}),t.jsx(M,{to:"/product/networking#nat-gateway",onClick:e,children:"NAT Gateway"}),t.jsx(M,{to:"/product/networking#firewall",onClick:e,children:"Firewall"}),t.jsx("div",{className:"mobile-menu__group",children:"Platform"}),t.jsxs(M,{to:"/product/mcp",onClick:e,children:["Triton MCP ",t.jsx("span",{className:"badge-new",children:"New"})]}),t.jsxs("div",{className:"mobile-menu__panel-actions",children:[t.jsx(M,{to:"/",onClick:e,children:"Explore Triton Cloud →"}),t.jsx(M,{to:"/pricing",onClick:e,children:"See pricing →"})]})]})})]}),t.jsxs("div",{className:"mobile-menu__section",children:[t.jsxs("button",{className:"mobile-menu__accordion","aria-expanded":c==="onprem",onClick:()=>u(c==="onprem"?null:"onprem"),children:["Private Cloud ",t.jsx("span",{className:"mobile-menu__chev","aria-hidden":"true",children:c==="onprem"?"−":"+"})]}),t.jsx("div",{className:`mobile-menu__panelwrap${c==="onprem"?" is-open":""}`,children:t.jsxs("div",{className:"mobile-menu__panel",children:[t.jsx("div",{className:"mobile-menu__group",children:"Platform"}),t.jsx(M,{to:"/on-prem",onClick:e,children:"Private Cloud"}),t.jsx(M,{to:"/on-prem#architecture",onClick:e,children:"Architecture"}),t.jsx("div",{className:"mobile-menu__group",children:"Solutions"}),t.jsxs(M,{className:"mobile-menu__solution",to:"/on-prem#vmware-migration",onClick:e,children:[t.jsx("span",{children:"VMware Migration"}),t.jsx("small",{children:"Move beyond a hypervisor replacement"})]}),t.jsxs(M,{className:"mobile-menu__solution",to:"/on-prem/open-compute",onClick:e,children:[t.jsx("span",{children:"Open Compute"}),t.jsx("small",{children:"Rack-scale AI, compute & storage"})]}),t.jsx("div",{className:"mobile-menu__group",children:"Deploy"}),t.jsx(M,{to:"/on-prem/open-compute#deployment-requirements",onClick:e,children:"Deployment Requirements"}),t.jsx("div",{className:"mobile-menu__group",children:"Open"}),t.jsxs(M,{className:"mobile-menu__solution",to:"/smartos",onClick:e,children:[t.jsx("span",{children:"SmartOS"}),t.jsx("small",{children:"The open-source hypervisor under Triton"})]}),t.jsxs(M,{className:"mobile-menu__solution",to:"/pkgsrc",onClick:e,children:[t.jsx("span",{children:"pkgsrc"}),t.jsx("small",{children:"Portable packages for Unix systems"})]}),t.jsx("a",{href:"https://github.com/TritonDataCenter",target:"_blank",rel:"noreferrer",onClick:e,children:"Open Source ↗"})]})})]}),t.jsx(M,{className:"mobile-menu__toplink",to:"/pricing",onClick:e,children:"Pricing"}),t.jsx("a",{className:"mobile-menu__toplink",href:"https://docs.tritoncloud.io",onClick:e,children:"Docs"}),t.jsx(M,{className:"mobile-menu__toplink",to:"/blog",onClick:e,children:"Blog"}),t.jsxs("div",{className:"mobile-menu__section",children:[t.jsxs("button",{className:"mobile-menu__accordion","aria-expanded":c==="company",onClick:()=>u(c==="company"?null:"company"),children:["Company ",t.jsx("span",{className:"mobile-menu__chev","aria-hidden":"true",children:c==="company"?"−":"+"})]}),t.jsx("div",{className:`mobile-menu__panelwrap${c==="company"?" is-open":""}`,children:t.jsxs("div",{className:"mobile-menu__panel",children:[t.jsx(M,{to:"/company/about",onClick:e,children:"About"}),t.jsx(M,{to:"/company/roadmap",onClick:e,children:"Roadmap"}),t.jsx(M,{to:"/contact/sales",onClick:e,children:"Contact Sales"}),t.jsx(M,{to:"/contact/support",onClick:e,children:"Support"})]})})]}),t.jsx(M,{className:"mobile-menu__toplink",to:"/login",onClick:e,children:"Log in"})]}),t.jsx("div",{className:"mobile-menu__cta",children:t.jsx(M,{to:s?"/on-prem#pilot":"/signup",className:"btn btn--primary btn--block",onClick:e,children:l?"Talk to sales":s?"Talk to an engineer":"Try Triton Cloud"})})]})}function Ra(e,o){const[i,s]=C.useState(e);return C.useEffect(()=>{if(e){s(!0);return}if(Yc()){s(!1);return}const l=window.setTimeout(()=>s(!1),o);return()=>window.clearTimeout(l)},[e,o]),i}function Zf({slim:e=!1}){const[o,i]=C.useState(null),[s,l]=C.useState(!1),c=C.useRef(null),u=C.useRef({cloud:null,onprem:null,company:null}),h=gt(),m=h.pathname.startsWith("/on-prem")||h.pathname==="/presentation",f=h.pathname==="/presentation",y=C.useRef(void 0),x=Ra(o==="cloud",120),w=Ra(o==="onprem",120),k=Ra(o==="company",120),N=Ra(s,200);C.useEffect(()=>{i(null),l(!1)},[h.pathname]),C.useEffect(()=>{function z(B){B.key==="Escape"&&(o&&u.current[o]?.focus(),i(null),l(!1))}return document.addEventListener("keydown",z),()=>document.removeEventListener("keydown",z)},[o]);function I(z){window.clearTimeout(y.current),i(z)}function T(){window.clearTimeout(y.current),y.current=window.setTimeout(()=>i(null),150)}function _(z){const B=z.relatedTarget;B&&z.currentTarget.contains(B)||i(null)}return t.jsxs("header",{className:"site-header",children:[t.jsxs("div",{className:"site-header__inner",children:[t.jsx(M,{to:"/",className:"site-header__logo","aria-label":"Triton Cloud home",children:t.jsx(mu,{})}),t.jsxs("nav",{className:"site-header__nav",ref:c,"aria-label":"Main",children:[!e&&t.jsxs(t.Fragment,{children:[t.jsxs("div",{className:"nav-item",onMouseEnter:()=>I("cloud"),onMouseLeave:T,onBlurCapture:_,children:[t.jsxs("button",{ref:z=>{u.current.cloud=z},className:`nav-item__trigger${o==="cloud"?" is-open":""}`,"aria-expanded":o==="cloud","aria-haspopup":"true",onClick:()=>i(o==="cloud"?null:"cloud"),onFocus:()=>I("cloud"),children:["Cloud ",t.jsx(yc,{})]}),x&&t.jsx(AS,{closing:o!=="cloud"})]}),t.jsxs("div",{className:"nav-item",onMouseEnter:()=>I("onprem"),onMouseLeave:T,onBlurCapture:_,children:[t.jsxs("button",{ref:z=>{u.current.onprem=z},className:`nav-item__trigger${o==="onprem"?" is-open":""}`,"aria-expanded":o==="onprem","aria-haspopup":"true",onClick:()=>i(o==="onprem"?null:"onprem"),onFocus:()=>I("onprem"),children:["Private Cloud ",t.jsx(yc,{})]}),w&&t.jsx(RS,{closing:o!=="onprem"})]}),t.jsx(no,{to:"/pricing",className:"nav-item__link",children:"Pricing"})]}),t.jsx("a",{href:"https://docs.tritoncloud.io",className:"nav-item__link",children:"Docs"}),!e&&t.jsx(no,{to:"/blog",className:"nav-item__link",children:"Blog"}),!e&&t.jsxs("div",{className:"nav-item",onMouseEnter:()=>I("company"),onMouseLeave:T,onBlurCapture:_,children:[t.jsxs("button",{ref:z=>{u.current.company=z},className:`nav-item__trigger${o==="company"?" is-open":""}`,"aria-expanded":o==="company","aria-haspopup":"true",onClick:()=>i(o==="company"?null:"company"),onFocus:()=>I("company"),children:["Company ",t.jsx(yc,{})]}),k&&t.jsxs("div",{className:`dropdown${o!=="company"?" is-closing":""}`,ref:z=>z?.toggleAttribute("inert",o!=="company"),children:[t.jsx(M,{className:"dropdown__link",to:"/company/about",children:"About"}),t.jsx(M,{className:"dropdown__link",to:"/company/roadmap",children:"Roadmap"}),t.jsx(M,{className:"dropdown__link",to:"/contact/sales",children:"Contact Sales"}),t.jsx(M,{className:"dropdown__link",to:"/contact/support",children:"Support"})]})]})]}),t.jsxs("div",{className:"site-header__actions",children:[t.jsx(IS,{}),t.jsx(M,{to:"/login",className:"btn btn--ghost site-header__login",children:"Log in"}),t.jsx(M,{to:m?"/on-prem#pilot":"/signup",className:"btn btn--primary",children:f?"Talk to sales":m?"Talk to an engineer":"Try Triton Cloud"}),t.jsx("button",{className:"site-header__hamburger","aria-label":s?"Close menu":"Open menu","aria-expanded":s,onClick:()=>l(z=>!z),children:s?t.jsx(DS,{}):t.jsx(LS,{})})]})]}),N&&t.jsx(PS,{closing:!s,onClose:()=>l(!1)})]})}function AS({closing:e=!1}){return t.jsxs("div",{className:`megamenu${e?" is-closing":""}`,ref:o=>o?.toggleAttribute("inert",e),children:[t.jsxs("div",{className:"megamenu__intro",children:[t.jsx("strong",{children:"TRITON CLOUD"}
700),t.jsx("span",{children:"Cloud infrastructure operated by us."})]}),t.jsxs("div",{className:"megamenu__grid",children:[t.jsxs("div",{className:"megamenu__col",children:[t.jsx("div",{className:"megamenu__heading",children:"Compute"}),t.jsx(M,{className:"megamenu__link",to:"/product/compute",children:"Instances"}),t.jsx(M,{className:"megamenu__link",to:"/product/compute#packages",children:"Packages"})]}),t.jsxs("div",{className:"megamenu__col",children:[t.jsx("div",{className:"megamenu__heading",children:"Storage"}),t.jsx(M,{className:"megamenu__link",to:"/product/object-storage",children:"Object Storage"})]}),t.jsxs("div",{className:"megamenu__col",children:[t.jsx("div",{className:"megamenu__heading",children:"Networking"}),t.jsx(M,{className:"megamenu__link",to:"/product/networking",children:"VPC & Subnets"}),t.jsx(M,{className:"megamenu__link",to:"/product/networking#reserved-ips",children:"Reserved IPs"}),t.jsx(M,{className:"megamenu__link",to:"/product/networking#nat-gateway",children:"NAT Gateway"}),t.jsx(M,{className:"megamenu__link",to:"/product/networking#firewall",children:"Firewall"})]}),t.jsxs("div",{className:"megamenu__col",children:[t.jsx("div",{className:"megamenu__heading",children:"Platform"}),t.jsxs(M,{className:"megamenu__link",to:"/product/mcp",children:["Triton MCP ",t.jsx("span",{className:"badge-new",children:"New"})]})]})]}),t.jsxs("div",{className:"megamenu__footer",children:[t.jsx(M,{className:"megamenu__footer-link",to:"/",children:"Explore Triton Cloud →"}),t.jsx(M,{className:"megamenu__footer-link",to:"/pricing",children:"See pricing →"})]})]})}function RS({closing:e=!1}){return t.jsxs("div",{className:`megamenu megamenu--private-cloud${e?" is-closing":""}`,ref:o=>o?.toggleAttribute("inert",e),children:[t.jsxs("div",{className:"megamenu__grid",children:[t.jsxs("div",{className:"megamenu__col",children:[t.jsx("div",{className:"megamenu__heading",children:"Platform"}),t.jsx(M,{className:"megamenu__link",to:"/on-prem",children:"Private Cloud"}),t.jsx(M,{className:"megamenu__link",to:"/on-prem#architecture",children:"Architecture"})]}),t.jsxs("div",{className:"megamenu__col",children:[t.jsx("div",{className:"megamenu__heading",children:"Solutions"}),t.jsxs(M,{className:"megamenu__link megamenu__solution",to:"/on-prem#vmware-migration",children:[t.jsx("span",{children:"VMware Migration"}),t.jsx("small",{children:"Move beyond a hypervisor replacement"})]}),t.jsxs(M,{className:"megamenu__link megamenu__solution",to:"/on-prem/open-compute",children:[t.jsx("span",{children:"Open Compute"}),t.jsx("small",{children:"Rack-scale AI, compute & storage"})]})]}),t.jsxs("div",{className:"megamenu__col",children:[t.jsx("div",{className:"megamenu__heading",children:"Deploy"}),t.jsx(M,{className:"megamenu__link",to:"/on-prem/open-compute#deployment-requirements",children:"Deployment Requirements"})]}),t.jsxs("div",{className:"megamenu__col",children:[t.jsx("div",{className:"megamenu__heading",children:"Open"}),t.jsxs(M,{className:"megamenu__link megamenu__solution",to:"/smartos",children:[t.jsx("span",{children:"SmartOS"}),t.jsx("small",{children:"The open-source hypervisor under Triton"})]}),t.jsxs(M,{className:"megamenu__link megamenu__solution",to:"/pkgsrc",children:[t.jsx("span",{children:"pkgsrc"}),t.jsx("small",{children:"Portable packages for Unix systems"})]}),t.jsxs("a",{className:"megamenu__link",href:"https://github.com/TritonDataCenter",target:"_blank",rel:"noreferrer",children:["Open Source ",t.jsx(OS,{})]})]})]}),t.jsxs("div",{className:"megamenu__footer",children:[t.jsx(M,{className:"megamenu__footer-link",to:"/on-prem#pilot",children:"Talk to an engineer →"}),t.jsx("a",{className:"megamenu__footer-link",href:"https://docs.tritoncloud.io",children:"Read the docs →"})]})]})}function yc(){return t.jsx("svg",{width:"10",height:"10",viewBox:"0 0 10 10","aria-hidden":"true",className:"nav-caret",children:t.jsx("path",{d:"M2 3.5 5 6.5 8 3.5",fill:"none",stroke:"currentColor",strokeWidth:"1.5"})})}function OS(){return t.jsx("svg",{width:"11",height:"11",viewBox:"0 0 12 12","aria-hidden":"true",children:t.jsx("path",{d:"M4.5 2H2v8h8V7.5M7 2h3v3M10 2 5.5 6.5",fill:"none",stroke:"currentColor",strokeWidth:"1.25"})})}function LS(){return t.jsx("svg",{width:"20",height:"20",viewBox:"0 0 20 20","aria-hidden":"true",children:t.jsx("path",{d:"M3 5.5h14M3 10h14M3 14.5h14",stroke:"currentColor",strokeWidth:"1.5"})})}function DS(){return t.jsx("svg",{width:"20",height:"20",viewBox:"0 0 20 20","aria-hidden":"true",children:t.jsx("path",{d:"M5 5l10 10M15 5 5 15",stroke:"currentColor",strokeWidth:"1.5"})})}function eg(){return t.jsx("footer",{className:"site-footer",children:t.jsxs("div",{className:"site-footer__inner",children:[t.jsxs("div",{className:"site-footer__grid",children:[t.jsxs("div",{className:"site-footer__c
700ol",children:[t.jsx("div",{className:"site-footer__heading",children:"Product"}),t.jsx(M,{to:"/product/compute",children:"Instances"}),t.jsx(M,{to:"/product/compute#packages",children:"Packages"}),t.jsx(M,{to:"/product/networking",children:"Networking"}),t.jsx(M,{to:"/product/mcp",children:"Triton MCP"}),t.jsx(M,{to:"/pricing",children:"Pricing"})]}),t.jsxs("div",{className:"site-footer__col",children:[t.jsx("div",{className:"site-footer__heading",children:"Storage"}),t.jsx(M,{to:"/product/object-storage",children:"Object Storage"}),t.jsx(M,{to:"/product/object-storage#roadmap",children:"What’s coming next"})]}),t.jsxs("div",{className:"site-footer__col",children:[t.jsx("div",{className:"site-footer__heading",children:"Private Cloud"}),t.jsx(M,{to:"/on-prem",children:"Triton Private Cloud"}),t.jsx(M,{to:"/on-prem/open-compute",children:"Open Compute"})]}),t.jsxs("div",{className:"site-footer__col",children:[t.jsx("div",{className:"site-footer__heading",children:"Company"}),t.jsx(M,{to:"/company/about",children:"About"}),t.jsx(M,{to:"/company/roadmap",children:"Roadmap"}),t.jsx(M,{to:"/contact/sales",children:"Contact Sales"}),t.jsx(M,{to:"/contact/support",children:"Support"})]}),t.jsxs("div",{className:"site-footer__col",children:[t.jsx("div",{className:"site-footer__heading",children:"Resources"}),t.jsx("a",{href:"https://docs.tritoncloud.io",children:"Documentation"}),t.jsx(M,{to:"/blog",children:"Blog"}),t.jsx(M,{to:"/smartos",children:"SmartOS"}),t.jsx(M,{to:"/smartos/support",children:"SmartOS Support"}),t.jsx(M,{to:"/pkgsrc",children:"pkgsrc"})]}),t.jsxs("div",{className:"site-footer__col",children:[t.jsx("div",{className:"site-footer__heading",children:"Legal"}),t.jsx(M,{to:"/legal/terms-of-service",children:"Terms of Service"}),t.jsx(M,{to:"/legal/privacy-policy",children:"Privacy Policy"}),t.jsx(M,{to:"/legal/acceptable-use",children:"Acceptable Use"}),t.jsx(M,{to:"/legal/cookie-policy",children:"Cookie Policy"})]})]}),t.jsxs("div",{className:"site-footer__bottom",children:[t.jsx(mu,{}),t.jsx("p",{className:"site-footer__tagline",children:"Cloud infrastructure with a predictable bill."}),t.jsxs("p",{className:"site-footer__copyright",children:["© ",new Date().getFullYear()," Sovren Technologies, Inc."]})]})]})})}function MS(){return t.jsxs(t.Fragment,{children:[t.jsx("a",{href:"#main-content",className:"skip-link",children:"Skip to content"}),t.jsx(Zf,{}),t.jsx("main",{className:"site-main",id:"main-content",tabIndex:-1,children:t.jsx(C.Suspense,{fallback:null,children:t.jsx(Wc,{})})}),t.jsx(eg,{})]})}const FS=[{group:"Getting Started",links:[{to:"/docs/getting-started",label:"Overview"},{to:"/docs/getting-started#create-account",label:"Create an account"},{to:"/docs/getting-started#first-instance",label:"Create your first Instance"},{to:"/docs/getting-started#ssh-keys",label:"Add an SSH key"},{to:"/docs/getting-started#mcp-quickstart",label:"Connect Triton MCP"}]},{group:"How-To Guides",links:[{to:"/docs/how-to",label:"Overview"},{to:"/docs/how-to#instances",label:"Instances"},{to:"/docs/how-to#networking",label:"Networking"},{to:"/docs/how-to#storage",label:"Storage"},{to:"/docs/how-to#billing",label:"Billing"},{to:"/docs/how-to#mcp",label:"MCP"}]},{group:"Concepts",links:[{to:"/docs/concepts",label:"Overview"},{to:"/docs/concepts#regions",label:"Regions"},{to:"/docs/concepts#vpc-and-subnets",label:"VPC & Subnets"},{to:"/docs/concepts#packages",label:"Packages"},{to:"/docs/concepts#teams-and-projects",label:"Teams & Projects"},{to:"/docs/concepts#object-storage",label:"Object Storage"}]},{group:"Reference",links:[{to:"/docs/reference/api",label:"API Reference"},{to:"/docs/reference/cli",label:"CLI Reference"},{to:"/docs/reference/terraform",label:"Terraform Reference"},{to:"/docs/reference/mcp",label:"MCP Reference"}]}];function zS({children:e}){return t.jsxs(t.Fragment,{children:[t.jsx("a",{href:"#main-content",className:"skip-link",children:"Skip to content"}),t.jsx(Zf,{}),t.jsxs("div",{className:"docs-shell",children:[t.jsxs("aside",{className:"docs-sidebar","aria-label":"Docs navigation",children:[FS.map(o=>t.jsxs("div",{children:[t.jsx("div",{className:"docs-sidebar__group",children:o.group}),o.links.map(i=>i.to.includes("#")?t.jsx(M,{to:i.to,className:"docs-sidebar__anchor",children:i.label},i.to):t.jsx(no,{to:i.to,end:!0,children:i.label},i.to))]},o.group)),t.jsxs("div",{children:[t.jsx("div",{className:"docs-sidebar__group",children:"Help"}),t.jsx(no,{to:"/contact/support",end:!0,children:"Contact Support"})]})]}),t.jsx("main",{className:"docs-content",id:"main-content",tabIndex:-1,
700children:e})]}),t.jsx(eg,{})]})}function BS(){return t.jsx(zS,{children:t.jsx(C.Suspense,{fallback:null,children:t.jsx(Wc,{})})})}function US(){return t.jsxs("div",{className:"bare-layout",children:[t.jsx("a",{href:"#main-content",className:"skip-link",children:"Skip to content"}),t.jsx("div",{className:"bare-layout__header",children:t.jsx(M,{to:"/","aria-label":"Back to Triton Cloud home",children:t.jsx(mu,{})})}),t.jsx("main",{className:"bare-layout__main",id:"main-content",tabIndex:-1,children:t.jsx(Wc,{})})]})}function HS({path:e,title:o}){return t.jsx("div",{className:"placeholder-page",children:t.jsxs("div",{className:"container",children:[t.jsx("div",{className:"placeholder-page__kicker mono",children:e}),t.jsx("h1",{children:o}),t.jsx("p",{className:"placeholder-page__note",children:"This page is being built. Check back soon."})]})})}function WS(){return t.jsxs("div",{className:"bare-card",children:[t.jsx("h1",{children:"Log in to Triton Cloud"}),t.jsx("p",{children:"The Triton Cloud console is on its way. Sign-in will be available at launch."}),t.jsxs("p",{className:"bare-card__alt",children:["Don’t have an account? ",t.jsx(M,{to:"/signup",children:"Get early access"})]})]})}function VS(){const[e]=qc(),o=e.get("submission"),i=e.get("message"),[s,l]=C.useState(""),[c,u]=C.useState(""),[h,m]=C.useState(o==="error"?i:null),[f,y]=C.useState(!1),[x,w]=C.useState(o==="success"),[k,N]=C.useState(!1);C.useEffect(()=>{N(!0)},[]);async function I(T){if(T.preventDefault(),!s.trim()){m("Please enter your email.");return}if(!Um(s)){m("Please enter a valid email address.");return}m(null),y(!0);try{const _=await fetch("/api/waitlist",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({email:s.trim(),plans:c.trim()||null})});if(_.status===201)w(!0);else if(_.status===409)m("This email is already on the early-access list.");else{const z=await _.json().catch(()=>null);m(z?.message??"Something went wrong saving your signup. Please try again.")}}catch{m("Something went wrong saving your signup. Please try again.")}finally{y(!1)}}return x?t.jsx("div",{className:"bare-card",children:t.jsxs("div",{className:"contact-success",role:"status",children:[t.jsx("h2",{children:"You’re on the early-access list"}),t.jsx("p",{children:"Your email is saved. Account creation opens at launch, and early-access signups get in first. In the meantime, these may help:"}),t.jsxs("p",{className:"contact-success__links",children:[t.jsx("a",{href:"https://docs.tritoncloud.io",children:"Read the docs"})," · ",t.jsx(M,{to:"/pricing",children:"See pricing"})," ·"," ",t.jsx(M,{to:"/contact/sales",children:"Talk to sales"})]})]})}):t.jsxs("div",{className:"bare-card",children:[t.jsx("h1",{children:"Get early access"}),t.jsx("p",{children:"The Triton Cloud console is on its way. Leave your email and you’ll be first in line when account creation opens at launch."}),t.jsxs("form",{className:"contact-form",action:"/signup",method:"post",onSubmit:I,noValidate:k,children:[t.jsxs("div",{className:"contact-form__field",children:[t.jsx("label",{htmlFor:"su-email",children:"Email *"}),t.jsx("input",{id:"su-email",name:"email",type:"email",value:s,onChange:T=>l(T.target.value),required:!0,"aria-invalid":h?!0:void 0,"aria-describedby":h?"su-email-error":void 0}),h&&t.jsx("p",{className:"contact-form__error",id:"su-email-error",role:"alert",children:h})]}),t.jsxs("div",{className:"contact-form__field",children:[t.jsx("label",{htmlFor:"su-plans",children:"What are you planning to run? (optional)"}),t.jsx("textarea",{id:"su-plans",name:"plans",rows:3,value:c,onChange:T=>u(T.target.value)})]}),t.jsx("button",{type:"submit",className:"btn btn--primary btn--block",disabled:f,children:f?"Saving…":"Get early access"})]}),t.jsxs("p",{className:"bare-card__alt",children:["Already have an account? ",t.jsx(M,{to:"/login",children:"Log in"})]})]})}function Oa(){return t.jsx("div",{className:"placeholder-page placeholder-page--ambient",children:t.jsxs("div",{className:"container",children:[t.jsx("div",{className:"placeholder-page__kicker mono",children:"404"}),t.jsx("h1",{children:"Page not found"}),t.jsxs("p",{className:"placeholder-page__note",children:["The page you’re looking for doesn’t exist. ",t.jsx(M,{to:"/",children:"Go home"}),", or try one of these:"]}),t.jsxs("nav",{className:"placeholder-page__links","aria-label":"Suggested pages",children:[t.jsx("a",{href:"https://docs.tritoncloud.io",className:"btn btn--ghost",children:"Documentation"}),t.jsx(M,{to:"/pricing",className:"btn btn--ghost",children:"Pricing"}),t.jsx(M,{to:"/product/compute",className:"btn btn--ghost",children:"Product"})]})]})})}const $S=[{title:"Proteus: a hypervisor-agnostic VPC for Triton Cloud",summary:"Proteus implements Triton Cloud VPCs in the kernel of each compute node. It attaches below the hypervisor, so the same code runs under bhyve on illumos and on FreeBSD.",author:"Triton DataCenter",date:"2026-09-30",tags:["engineering","triton-cloud","networking"],hero:"/blog/proteus-a-hypervisor-agnostic-vpc-for-triton-cloud/packet-inspector.png",heroAlt:"Proteus packet inspector showing frame bytes and Geneve header fields, including VNI 4097.",hideHero:!0,draft:!1,slug:"proteus-a-hypervisor-agnostic-vpc-for-triton-cloud",readingMinutes:11},{title:"Firehyve: a bhyve microVM for agent sandboxes",summary:"A Rust VMM for illumos bhyve that boots a Linux guest in about 65 ms. Where it came from, its performance, and where it's going.",author:"Nick Wilkens",date:"2026-09-21",tags:["engineering","smartos","bhyve","linux","agent-sandboxes"],hideHero:!0,slug:"firehyve-a-linux-microvm-for-agent-sandboxes",readingMinutes:5,hero:"/blog/firehyve-a-linux-microvm-for-agent-sandboxes/firehyve-architecture.png",heroAlt:"Firehyve architecture: a Linux guest above a zone-contained Rust VMM, the illumos bhyve VMM module, and a memory reservoir."},{title:"Introducing Triton Cloud",summary:"A new cloud platform built on illumos, designed from the ground up for operator and developer experience.",author:"Nick Wilkens",date:"2026-09-03",tags:["announcement","triton-cloud","illumos"],hero:"/home/deploy-dark.png",heroAlt:"Triton Cloud console showing a running instance with live CPU, network, and disk metrics",seoDescription:"Introducing Triton Cloud, a new illumos cloud platform built around zone
700s, ZFS, bhyve, private networking, and a simpler operator experience.",featured:!0,slug:"introducing-triton-cloud",readingMinutes:3},{title:"Introducing pkgsrc-2023Q4",summary:"The world of package management is constantly evolving, and the latest update from pkgsrc is a testament to this continuous innovation. With the release of pkgsrc-2023Q4, the already extensive capabilities of this package management system…",author:"Triton DataCenter",date:"2024-01-08",tags:["pkgsrc","smartos","security"],source:"https://www.tritondatacenter.com/blog/introducing-pkgsrc-2023q4",slug:"introducing-pkgsrc-2023q4",readingMinutes:2},{title:"Triton DataCenter Office Hours Part 2",summary:"Hi everyone, I just wanted to remind you of the upcoming Triton DataCenter Office Hours that will be happening this Thursday once again at 11PT/2ET. It will be on our discord which can be joined here. We will be discu",author:"Triton DataCenter",date:"2023-02-28",tags:["triton"],source:"https://www.tritondatacenter.com/blog/triton-datacenter-office-hours-part-2",slug:"triton-datacenter-office-hours-part-2",readingMinutes:1},{title:"Introducing Triton DataCenter Office Hours",summary:"We would like to invite you to Triton DataCenter Office hours this Thursday, February 16th 2023, at 11am PT/2pm ET. We will discuss our new Linux HVM Images, the image build process and cover other areas of Triton DataCenter. It will take…",author:"Triton DataCenter",date:"2023-02-14",tags:["triton"],source:"https://www.tritondatacenter.com/blog/introducing-triton-datacenter-office-hours",slug:"introducing-triton-datacenter-office-hours",readingMinutes:1},{title:"A New Chapter Begins for Triton and SmartOS",summary:"Starting on May 1, 2022, an exciting new chapter begins for Triton DataCenter, Manta Object Storage and SmartOS. The cloud landscape continues to grow and our role and mission has also shifted again as part of one of the largest consumer…",author:"Joyent Team",date:"2022-04-11",tags:["smartos","manta","news"],source:"https://www.tritondatacenter.com/blog/a-new-chapter-begins-for-triton-and-smartos",slug:"a-new-chapter-begins-for-triton-and-smartos",readingMinutes:3},{title:"Triton Transition FAQ",summary:"Your account manager will be reaching out to schedule a time to discuss the acquisition and migration. Generally speaking, not much will change. Your account manager will c
700ontinue to be your account manager at MNX, and you’ll continue to…",author:"Joyent Team",date:"2022-04-11",tags:["smartos","manta"],source:"https://www.tritondatacenter.com/blog/triton-transition-faq",slug:"triton-transition-faq",readingMinutes:4},{title:"Video Blog: Walk through of NVMe and Hotplug Support",summary:"During this Joyent Technical Discussion, software engineer Jordan Hendricks discusses adding NVMe hotplug support to illumos. The project covers both coordinated hotplug and surprise removal of NVMe SSDs. In the talk, Jordan discusses the…",author:"Jordan Hendricks",date:"2019-08-27",tags:["triton"],source:"https://www.tritondatacenter.com/blog/nvme-hotplug-walk-through",slug:"nvme-hotplug-walk-through",readingMinutes:1},{title:"Video Blog: Flexible Disk Space",summary:"In this Joyent Technical Discussion, Mike Gerdts and Pedro Palazón Candel describe and demonstrate the Flexible Disk Space feature that was recently added to Triton and SmartOS. With Flexible Disk Space, bhyve instances can have a variable…",author:"Mike Gerdts, Pedro Palazon Candel",date:"2019-08-20",tags:["triton"],source:"https://www.tritondatacenter.com/blog/video-blog-flexible-disk-space",slug:"video-blog-flexible-disk-space",readingMinutes:1},{title:"Video Blog: Joyent Cloud Firewall Logging",summary:"Cloud Firewall (CFW) Logging also known as RFD 163 is a feature where we will start logging specific kinds of firewall records in a manner that doesn’t require as many per compute node resources. This logging will allow us to pay attention…",author:"Mike Zeller, Dan McDonald, Pedro Palazón Candel",date:"2019-08-05",tags:["networking"],source:"https://www.tritondatacenter.com/blog/joyent-cloud-firewall-logging-in-a-proper-triton-deployment",slug:"joyent-cloud-firewall-logging-in-a-proper-triton-deployment",readingMinutes:1},{title:"Video Blog: Setting up a Manta/Triton development environment",summary:"A Joyent Technical Discussion describing how to setup a development environment in order to build Manta and Triton. This video is aimed at new developers. We give a 10,000 foot view of Triton and Manta, explain how the system is deployed…",author:"Tim Foster",date:"2019-07-10",tags:["manta"],source:"https://www.tritondatacenter.com/blog/setting-up-a-manta-triton-development-environment",slug:"setting-up-a-manta-triton-development-environment",readingMinutes:1},{title:"Video Blog: RAIDZ on-disk format vs. small blocks",summary:"An intro to RAIDZ and how an investigation in to why bhyve VM runs out of space led us to finding surprising things about how space hungry RAIDZ is and the theory of RAIDZ space accounting. Video",author:"Mike Gerdts",date:"2019-06-26",tags:["triton"],source:"https://www.tritondatacenter.com/blog/raidz-on-disk-form-vs-small-blocks",slug:"raidz-on-disk-form-vs-small-blocks",readingMinutes:1},{title:"Video Blog: Libuv - What is a Unicorn Velociraptor",summary:"libuv is what gives Node.js its event loop and cross-platform asynchronous I/O capabilities. This video explains what libuv is all about, and how it's used by Node.js. Colin Ihrig also discusses recent development efforts in the libuv…",author:"Colin Ihrig",date:"2019-06-24",tags:["triton"],source:"https://www.tritondatacenter.com/blog/video-libuv-what-is-a-unicorn-velociraptor",slug:"video-libuv-what-is-a-unicorn-velociraptor",readingMinutes:1},{title:"Upcoming Changes to Our Cloud Business",summary:"Before being acquired by Samsung nearly three years ago, Joyent was perhaps best known for offering public cloud computing — elastic infrastructure at the swipe of a credit card. By providing this easy on-ramp to on-demand cloud…",author:"Steve Tuck",date:"2019-06-06",tags:["triton"],source:"https://www.tritondatacenter.com/blog/joyent-announces-strategic-change-to-their-public-cloud-business",slug:"joyent-announces-strategic-change-to-their-public-cloud-business",readingMinutes:2},{title:"Improved WebAssembly Support is Coming to Node.js",summary:"WebAssembly is a collection of open standards that have the potential to revolutionize web development. According to webassembly.org: Essentially, WebAssembly allows code written in other languages to be compiled down to a",author:"Colin J. Ihrig",date:"2019-06-03",tags:["nodejs","performance","news"],source:"https://www.tritondatacenter.com/blog/improved-wasm-support-coming-to-node",slug:"improved-wasm-support-coming-to-node",readingMinutes:6},{title:"Blog: State of Node.js Core Fireside Chat - Questions and Answers",summary:"On April 3rd, Joyent brought together members of their engineering team to answer questions about the upcoming Node.js 12 release. Node.js continues to gain popularity and has even crossed over the million downloads a day threshold. Much…",author:"Joyent",date:"2019-04-25",tags:["nodejs","docker","security"],source:"https://www.tritondatacenter.com/blog/state-of-node-js-core-fireside-chat-questions-and-answers",slug:"state-of-node-js-core-fireside-chat-questions-and-answers",readingMinutes:10},{title:"Video Blog: Preview of Instance Migration Tools in Triton",summary:"In this preview, Todd has a Triton installation made up of one headnode and two compute nodes. At the start, a KVM instance running CentOS is running on the headnode. Todd demonstrates the use of the new sdc-migrate command to list past…",author:"Todd Whiteman",date:"2019-04-10",tags:["triton"],source:"https://www.tritondatacenter.com/blog/preview-of-instance-migration-tools-in-triton",slug:"preview-of-instance-migration-tools-in-triton",readingMinutes:1},{title:"EdgeMesh: A Case Study in Performance at Scale",summary:"Jacob Loveless, Chief Executive Officer, Edgemesh EdgeMesh is a premier web acceleration company focused on client side, edge native optimizations that help customers deliver web experiences more securely, more reliably and 2-10x faster…",author:"Joyent",date:"2018-12-17",tags:["performance","case-study"],source:"https://www.tritondatacenter.com/blog/edgemesh-a-case-study-in-performance-at-scale",slug:"edgemesh-a-case-study-in-performance-at-scale",readingMinutes:4,hero:"/blog/edgemesh-a-case-study-in-performance-at-scale/map.png",heroAlt:"EdgeMesh location map"},{title:"Easing Into Node.js With TypeScript",summary:"As Node.js continues to increase in popularity, the platform is seeing an influx of developers from other languages such as Java and C. Typically, the two largest hurdles these would-be JavaScript developers face are the asynchronous…",author:"Colin J. Ihrig",date:"2018-09-14",tags:["nodejs"],source:"https://www.tritondatacenter.com/blog/easing-into-nodejs-with-typescript",slug:"easing-into-nodejs-with-typescript",readingMinutes:9},{title:"GraphQL on the server",summary:"In the following post we'll quickly explain what GraphQL is and why you might want to consider it. GraphQL is a querying language for APIs, and we have been using it as an alternative to REST. Why not use REST you may wonder? T",author:"Wyatt Preul, Lloyd Benson",date:"2018-08-06",tags:["nodejs"],source:"https://www.tritondatacenter.com/blog/graphql-on-the-server",slug:"graphql-on-the-server",readingMinutes:7},{title:"Webinar: Build a custom application with Packer and Terraform",summary:"It's quick to deploy your applications on Triton, with the help of Hashicorp's Packer and Terraform. In this demo, we'll be working with 2048, an incredibly popular game for smartphones. Now, you can deploy it to",author:"Alexandra White",date:"2018-06-28",tags:["terraform","packer"],source:"https://www.tritondatacenter.com/blog/packer-terraform-demo",slug:"packer-terraform-demo",readingMinutes:9},{title:"Node.js and Express Gateway in a Cloud Native World",summary:"From humble grassroots, the “cloud native” movement has transformed into the “cloudification” of large scale applications and the infrastru
700cture they run in. Originally, practitioners faced the challenges of entering and staying in the…",author:"Al Tsang",date:"2018-06-26",tags:["nodejs"],source:"https://www.tritondatacenter.com/blog/nodejs-and-express-gateway-in-a-cloud-native-world",slug:"nodejs-and-express-gateway-in-a-cloud-native-world",readingMinutes:6,hero:"/blog/nodejs-and-express-gateway-in-a-cloud-native-world/sidecar-api.png",heroAlt:"Diagram of sidecar deployment gateway model"},{title:"Triton CLI on Windows Subsystem for Linux (WSL)",summary:`Open source developers tend to work on macOS because, for much of the coding that they do, all of the tools they need are available and run more smoothly on macOS than in Windows. Also known as "Bash on Windows", 'Bash on Ubuntu on…`,author:"Carol Cobine",date:"2018-04-24",tags:["nodejs"],source:"https://www.tritondatacenter.com/blog/getting-started-windows-wsl",slug:"getting-started-windows-wsl",readingMinutes:5},{title:"A Node.js 10.0.0 Release Summary",summary:"Today, the Node.js core team is proud to release version 10.0.0 of the Node runtime. The Node.js project makes various releases year round which include minor improvements, bug fixes, and new features. Twice per year, in April and October…",author:"Colin J. Ihrig",date:"2018-04-24",tags:["nodejs","news"],source:"https://www.tritondatacenter.com/blog/nodejs-10-release-summary",slug:"nodejs-10-release-summary",readingMinutes:5},{title:"Installing Triton CLI on Windows",summary:"This tutorial explains how to prepare Windows to install the triton command line tools. In order to install triton, you must first generate an SSH key pair and then upload",author:"Carol Cobine",date:"2018-04-17",tags:["nodejs"],source:"https://www.tritondatacenter.com/blog/getting-started-windows",slug:"getting-started-windows",readingMinutes:9},{title:"Video: get started managing a simple application with Terraform",summary:"The three-word roundup that everyone (including Hashicorp) uses to describe Terraform is: infrastructure as code. If that's too succinct without being informative, let's add a word and modify it: managing infrastructure with code. More on…",author:"Alexandra White",date:"2018-02-21",tags:["terraform","packer","networking"],source:"https://www.tritondatacenter.com/blog/video-simple-terraform-app",slug:"video-simple-terraform-app",readingMinutes:10,hero:"/blog/video-simple-terraform-app/terraform-logo.png",heroAlt:"Terraform"},{title:"Video: create custom infrastructure images with Packer",summary:"There are a number of ways to deploy custom applications on Triton. Triton provides multiple hardware virtual machine (HVM) and infrastructure images (just run triton images to see what we offer) to meet all of your various application…",author:"Alexandra White",date:"2018-01-30",tags:["packer","terraform"],source:"https://www.tritondatacenter.com/blog/video-create-images-with-packer",slug:"video-create-images-with-packer",readingMinutes:8,hero:"/blog/video-create-images-with-packer/packer-logo.jpeg",heroAlt:"Packer by Hashicorp"},{title:"Using Terraform to deploy in multiple data centers on Triton",summary:"In this post, you'll learn how to implement a blue-green deployment on multiple Triton data centers. Over the past few months, I've posted a number of tutorials which give a foundation of knowledge that will help you with the rest of this…",author:"Alexandra White",date:"2018-01-17",tags:["terraform","packer","networking"],source:"https://www.tritondatacenter.com/blog/multiple-data-centers-with-terraform",slug:"multiple-data-centers-with-terraform",readingMinutes:14},{title:"Multi-cloud Kubernetes with Triton",summary:"While running an experimental Kubernetes cluster is fairly simple, operationalizing K8s environments for production is not for the faint of heart. Some of us are also looking to exp",author:"Fayaz Ghiasy and Shubhra Kar",date:"2018-01-02",tags:["kubernetes","docker","terraform"],source:"https://www.tritondatacenter.com/blog/triton-kubernetes-multicloud",slug:"triton-kubernetes-multicloud",readingMinutes:11,hero:"/blog/triton-kubernetes-multicloud/chart.jpeg",heroAlt:"Illustration from Multi-cloud Kubernetes with Triton"}
700,{title:"Create custom infrastructure images with Packer",summary:"There are a number of ways to deploy custom applications on Triton. We've talked a lot about how easy it is to dockerize applications. Triton provides multiple hardware virtua",author:"Alexandra White",date:"2017-11-02",tags:["packer"],source:"https://www.tritondatacenter.com/blog/create-images-with-packer",slug:"create-images-with-packer",readingMinutes:8},{title:"Free Trial - Managed ScyllaDB (Beta) on Triton",summary:"Samsung SDS (an IT services and solutions leader) and Joyent (the leader in next generation cloud computing) are excited to announce a 30-day free trial of Managed Service for ScyllaDB (Beta), a high performance NoSQL database on Triton…",author:"Samsung SDS, Joyent",date:"2017-10-31",tags:["performance"],source:"https://www.tritondatacenter.com/blog/free-trial-managed-scylladb-beta-on-triton",slug:"free-trial-managed-scylladb-beta-on-triton",readingMinutes:5,hero:"/blog/free-trial-managed-scylladb-beta-on-triton/diagram-1.png",heroAlt:"Illustration from Free Trial - Managed ScyllaDB (Beta) on Triton"},{title:"A Node.js 9.0.0 Release Summary",summary:"October means two things: pumpkin spice everything and Node.js release line updates. The Node.js project makes various releases year round which include minor improvements, bug fixes, and new features. Twice per year, in April and October…",author:"Colin J. Ihrig",date:"2017-10-31",tags:["nodejs","news"],source:"https://www.tritondatacenter.com/blog/nodejs-9-release-summary",slug:"nodejs-9-release-summary",readingMinutes:4},{title:"Upgrading Node.js to Version 8",summary:"Version 8 of Node.js begins its long term support (LTS) release plan today. This means that version 8 will remain stable as new features and regressions are less likely to be introduced. The only chan",author:"Wyatt Lyon Preul",date:"2017-10-31",tags:["nodejs","networking","performance"],source:"https://www.tritondatacenter.com/blog/upgrading-nodejs-to-8",slug:"upgrading-nodejs-to-8",readingMinutes:6},{title:"Create instances with Windows HVM",summary:"The last time I owned a Windows-powered PC, I was on Windows Vista. Suffice to say, the OS has changed quite a bit since we last met. Using a hardware virtual machine creat",author:"Triton DataCenter",date:"2017-09-13",tags:["triton"],source:"https://www.tritondatacenter.com/blog/video-create-windows-instance",slug:"video-create-windows-instance",readingMinutes:1},{title:"Joyent + Care.com/HomePay Fireside Chat: Indispensable, Disposable Jenkins",summary:"Tune into this fireside chat with Mandy Hubbard, Software Engineer for Care.com/HomePay, and Casey Bisson, Director of Product Management for Joyent as they discuss Care.com/HomePay's use of Joyent's ContainerPilot in production to achieve…",author:"Joyent",date:"2017-09-08",tags:["autopilot-pattern"],source:"https://www.tritondatacenter.com/blog/fireside-chat-indispensable-disposable-jenkins",slug:"fireside-chat-indispensable-disposable-jenkins",readingMinutes:1},{title:"Joyent + Edgemesh Fireside Chat: Cache Me If You Can",summary:"Edgemesh CEO, Jake Loveless and Joyent CTO, Bryan Cantrill join together for a fireside chat to discuss distributed caching at scale, Docker, Node.js, Mystery Science Theater 3000, and more! Interested in what Bryan and Jake were…",author:"Joyent",date:"2017-07-25",tags:["video"],source:"https://www.tritondatacenter.com/blog/joyent-edgemesh-cache-me-if-you-can",slug:"joyent-edgemesh-cache-me-if-you-can",readingMinutes:1},{title:"Rolling deploys with Docker Compose",summary:"With Docker Compose on Triton's Elastic Docker Host, you can provide uninterrupted service to your users when updating your application. This includes making changes to the application itself, as well as scaling the number of instances up…",author:"Alexandra White",date:"2017-06-23",tags:["docker"],source:"https://www.tritondatacenter.com/blog/rolling-deploys-with-compose",slug:"rolling-deploys-with-compose",readingMinutes:2},{title:"What's new in ContainerPilot 3.0",summary:"This week we've released a new major version of ContainerPilot -- version 3.0. This version addresses a number of lessons we've learned about the many complex variations of how our users operate their containerized applications. We've also…",author:"Tim Gross",date:"2017-06-16",tags:["autopilot-pattern"],source:"https://www.tritondatacenter.com/blog/containerpilot-3",slug:"containerpilot-3",readingMinutes:6},{title:"Easily scale application with Docker Compose on Triton",summary:"Since publishing this blog post and video, we have released Triton Docker CLI to ensure use of known good versions of Docker on Triton. Instead of using docker-compose ... for spinning up and scaling a",author:"Alexandra White",date:"2017-05-11",tags:["docker","networking"],source:"https://www.tritondatacenter.com/blog/using-docker-compose",slug:"using-docker-compose",readingMinutes:3},{title:"Case Study: Wearable Tech powered by Docker and Triton",summary:"High-quality IoT apps can be challenging to build and scale with traditional monolithic services architectures. The backends serving millions of device end points are often plagued by server-side concurrency bottlenecks generated by…",author:"Luc Juggery, Co-Founder, TRAXxs",date:"2017-05-09",tags:["docker","case-study"],source:"https://www.tritondatacenter.com/blog/wearable-tech-powered-by-docker-and-triton",slug:"wearable-tech-powered-by-docker-and-triton",readingMinutes:12,hero:"/blog/wearable-tech-powered-by-docker-and-triton/image8.png",heroAlt:"Illustration from Case Study: Wearable Tech powered by Docker and Triton"},{title:"DockerCon video: simplify container orchestration and turbocharge Docker Compose",summary:"Getting started with container orchestration and scheduling systems, like Kubernetes, is relatively simple, but as your deployment grows it gets complicated fast. There are ways to reduce that c
700omplexity, and even eliminate cluster…",author:"Casey Bisson",date:"2017-05-04",tags:["docker"],source:"https://www.tritondatacenter.com/blog/dockercon17-turbocharged-compose",slug:"dockercon17-turbocharged-compose",readingMinutes:1},{title:"Docker commands on Triton",summary:"Triton uses the native Docker API to make spinning up containers easy using the Docker tools of your choice. Using the Triton Docker CLI tool on your laptop you can deploy Docker containers across an entire Triton data center. You can do…",author:"Alexandra White",date:"2017-05-02",tags:["docker","networking"],source:"https://www.tritondatacenter.com/blog/docker-commands-on-triton",slug:"docker-commands-on-triton",readingMinutes:10,hero:"/blog/docker-commands-on-triton/docker-on-triton.jpeg",heroAlt:"Docker on Triton"},{title:"Redis on Autopilot",summary:"A big shout out to Dave Dunkin and Faithlife for all the work they did to make the Redis Autopilot pattern a thing. Let's c",author:"Jason Pincin",date:"2017-04-25",tags:["docker","nodejs","autopilot-pattern"],source:"https://www.tritondatacenter.com/blog/redis-on-autopilot",slug:"redis-on-autopilot",readingMinutes:5,hero:"/blog/redis-on-autopilot/redis.002.png",heroAlt:"Redis scaled"},{title:"Training: Dockerizing your first application",summary:`For this tutorial, I’ll be dockerizing 2048, an HTML+JS application popularized by the mobile game. I've now found the best way to occupy my time, playing 2048 while doing "research" for how to create a tutorial on Docker and Triton. And…`,author:"Alexandra White",date:"2017-04-20",tags:["docker","networking"],source:"https://www.tritondatacenter.com/blog/video-training-dockerize-applications",slug:"video-training-dockerize-applications",readingMinutes:11,hero:"/blog/video-training-dockerize-applications/2048-home.png",heroAlt:"The 2048 game."},{title:"Fireside Chat: Reflections on Systems We Love",summary:"Thought leader and Google engineer Jess Frazelle joined our CTO, Bryan Cantrill, at Joyent HQ for this unique online session. Watch as the two reflect on the Systems We Love conference that to",author:"Bryan Cantrill and Jess Frazelle",date:"2017-04-04",tags:["triton"],source:"https://www.tritondatacenter.com/blog/reflections-on-systems-we-love",slug:"reflections-on-systems-we-love",readingMinutes:1},{title:"Online Training: Running Node.js Containers in Production with ContainerPilot",summary:"Wyatt Preul and Casey Bisson of Joyent walk through using Docker with ContainerPilot and Consul. The working application utilizes hapi, Seneca, and InfluxDB. This training will also cover monitoring your containers using Prometheus. Post…",author:"Joyent",date:"2017-03-22",tags:["nodejs","autopilot-pattern"],source:"https://www.tritondatacenter.com/blog/running-node-js-in-containers-with-containerpilot",slug:"running-node-js-in-containers-with-containerpilot",readingMinutes:1},{title:"Joyent + Shippable Fireside Chat",summary:"Shippable CEO, Avi Cavale and Joyent CTO, Bryan Cantrill join for a fireside chat to learn what both organizations are currently up to, and what contributions are ahead for the microservices ecosystem.",author:"Joyent",date:"2017-03-15",tags:["triton"],source:"https://www.tritondatacenter.com/blog/joyent-plus-shippable-fireside-chat",slug:"joyent-plus-shippable-fireside-chat",readingMinutes:1},{title:"Systems We Love comes to Minneapolis",summary:"When we put on the inaugural Systems We Love in December, we didn’t really know what to expect. As it turns out, the event was terrific — and now we",author:"Bryan Cantrill",date:"2017-02-14",tags:["triton"],source:"https://www.tritondatacenter.com/blog/systems-we-love-comes-to-minneapolis",slug:"systems-we-love-comes-to-minneapolis",readingMinutes:1},{title:"The liberation of RethinkDB",summary:"I have long been a fan of RethinkDB, finding it to hit a sweet spot: developer friendliness (I <3 ReQL!) with Jepsen-grade robustness. This is the sa",author:"Bryan Cantrill",date:"2017-02-06",tags:["smartos"],source:"https://www.tritondatacenter.com/blog/the-liberation-of-rethinkdb",slug:"the-liberation-of-rethinkdb",readingMinutes:3},{title:"Optimizing your Docker operations for Triton",summary:"The content of this post has been updated since the release of Triton Docker CLI. For docker ... commands on Triton Elastic Docker Host, use triton-docker .... Instead of using docker-compose ... f",author:"Casey Bisson",date:"2017-02-02",tags:["docker","smartos","autopilot-pattern"],source:"https://www.tritondatacenter.com/blog/optimizing-docker-on-triton",slug:"optimizing-docker-on-triton",readingMinutes:13,hero:"/blog/optimizing-docker-on-triton/docker-api-and-cloudapi-side-by-side.jpeg",heroAlt:"Docker Remote API and CloudAPI work side-by-side on Triton"},{title:"Joyent + Hart Fireside Chat",summary:"Joyent's CTO Bryan Cantrill and Hart's President, Mo Alkady and Sr. Devops Engineer, Christopher Dickey talked about what both organizations are currently focused on, what challenges they are facing, and what technologies they are using to…",author:"Joyent",date:"2017-01-27",tags:["triton"],source:"https://www.tritondatacenter.com/blog/joyent-plus-hart-fireside-chat",slug:"joyent-plus-hart-fireside-chat",readingMinutes:1},{title:"Secrets management in the Autopilot Pattern",summary:"No matter how we deploy our applications, managing secrets invokes the chicken-and-the-egg problem. Any system for secrets management has to answer the question of how the application authenticates to the system managing the secrets in the…",author:"Tim Gross",date:"2017-01-26",tags:["autopilot-pattern","docker","networking"],source:"https://www.tritondatacenter.com/blog/secrets-management-in-the-autopilotpattern",slug:"secrets-management-in-the-autopilotpattern",readingMinutes:10},{title:"Hitting the moon on the first shot",summary:"Editor's note: Richard Kiene built his career developing software and running ops in telecomms and startups before joining Joyent in mid 2015. Like a number of our recent hires, Richard got to know Joyent from [our open source data center…",author:"Richard Kiene",date:"2017-01-24",tags:["triton"],source:"https://www.tritondatacenter.com/blog/hitting-the-moon",slug:"hitting-the-moon",readingMinutes:5},{title:"Node.js at Joyent",summary:"Read on to learn how Joyent came to embrace Node.js and microservices, as well as develop that tooling. To help manage its public cloud infrastru
700cture, in 2009, Joyent built an API that was accessible over HTTP. This API was written using…",author:"Wyatt Lyon Preul",date:"2017-01-19",tags:["nodejs","manta","debugging"],source:"https://www.tritondatacenter.com/blog/nodejs-at-joyent",slug:"nodejs-at-joyent",readingMinutes:8},{title:"Video: using Triton Container Name Service with Docker",summary:"If you've previously managed the process of mapping DNS names to IP numbers, you know what a hassle it can be. It's one of the reasons some servers turn into pets. And, when scal",author:"Alexandra White",date:"2017-01-17",tags:["docker","networking"],source:"https://www.tritondatacenter.com/blog/tritoncns-and-docker",slug:"tritoncns-and-docker",readingMinutes:8},{title:"Containers and microservices and Node.js! Oh, my!",summary:"Learn how to build and scale microservices with Node.js and containers using ContainerPilot on Triton. This project will give you a working IoT dashboard connected to a SmartThings IoT hub and devices. You can use it to monitor IoT…",author:"Wyatt Preul",date:"2017-01-12",tags:["nodejs","docker","autopilot-pattern"],source:"https://www.tritondatacenter.com/blog/microservices-containers-nodejs",slug:"microservices-containers-nodejs",readingMinutes:11,hero:"/blog/microservices-containers-nodejs/smartthings.png",heroAlt:"SmartThings Hub"},{title:"Video: introducing Triton CNS",summary:"Watch our introduction to Triton CNS to learn how easy it is to get started. Triton CNS is ideal for making applications discoverable on the internet. Get started by adding Triton CNS to your containers with the help of [our…",author:"Alexandra White",date:"2017-01-10",tags:["networking"],source:"https://www.tritondatacenter.com/blog/video-introducing-tritoncns",slug:"video-introducing-tritoncns",readingMinutes:2},{title:"Enterprise Native Mobile Apps with Node.js & Containers (Synchro Labs)",summary:"Building high-quality, native mobile apps can require significant timeand cost, and require skill sets that enterprises don’t have in house.The resulting apps can be difficult to manage, update, and secure. While many organizations have…",author:"Bob Dickinson, President and CEO, Synchro Labs",date:"2016-12-21",tags:["nodejs","docker","manta"],source:"https://www.tritondatacenter.com/blog/enterprise-native-mobile-apps-with-nodejs-and-containers",slug:"enterprise-native-mobile-apps-with-nodejs-and-containers",readingMinutes:18,hero:"/blog/enterprise-native-mobile-apps-with-nodejs-and-containers/synchroequation.png",heroAlt:"Illustration from Enterprise Native Mobile Apps with Node.js & Containers (Synchro Labs)"},{title:"Autopilot Pattern Nginx with automatic SSL certificates",summary:"Nginx is a popular web server with a well-deserved reputation for performance reliability. You'll often find Nginx as the front end load balancer or reverse proxy for applications of all sizes, from small websites to some of the largest…",author:"Jason Pincin",date:"2016-11-11",tags:["autopilot-pattern","news"],source:"https://www.tritondatacenter.com/blog/nginx-and-letsencrypt-on-autopilot",slug:"nginx-and-letsencrypt-on-autopilot",readingMinutes:5},{title:"Announcing the 2016 Node.js & Docker Innovator Program Finalists",summary:"At Joyent we believe there is a natural affinity between microservices architectures, Node.js and containers. We run Node.js and containers ourselves at large scale, and we optimized our public cloud and private cloud…",author:"Shubhra Kar",date:"2016-11-09",tags:["docker","nodejs","news"],source:"https://www.tritondatacenter.com/blog/node-and-docker-innovator-finalists-2016",slug:"node-and-docker-innovator-finalists-2016",readingMinutes:7},{title:"Using Triton Container Name Service with Docker and vanity domain names",summary:"If you've previously managed the process of mapping DNS names to IP numbers, you know what a hassle it can be. It's one of the reasons some servers turn into pets. And, when scal",author:"Alexandra White",date:"2016-10-26",tags:["docker","networking"],source:"https://www.tritondatacenter.com/blog/using-triton-cns",slug:"using-triton-cns",readingMinutes:8,hero:"/blog/using-triton-cns/placeholder.png",heroAlt:"enable Triton CNS in the portal"},{title:"Stateful Applications on Autopilot",summary:"Microservice architectures help manage the complexity of the development process, and application containers help manage the dependencies and deployment of those microservices. But deploying and connecting services together is a challenge…",author:"Tim Gross",date:"2016-10-20",tags:["triton"],source:"https://www.tritondatacenter.com/blog/stateful-applications-on-autopilot",slug:"stateful-applications-on-autopilot",readingMinutes:1},{title:"Upgrading Node.js 0.10 and 0.12 applications",summary:"Maintenance support ends this month for Node.js version 0.10. In December, version 0.12 will also face losing maintenance support. As a result, critical bugs and security vulnerabilities will no longer be",author:"Wyatt Lyon Preul",date:"2016-10-11",tags:["nodejs","news"],source:"https://www.tritondatacenter.com/blog/upgrading-nodejs",slug:"upgrading-nodejs",readingMinutes:5},{title:"Submitting to Systems We Love",summary:"We've been overwhelmed by the positive response to Systems We Love! As simple as this concept is, Systems We Love—like Papers We Love, !!Con and others that inspired i",author:"Bryan Cantrill",date:"2016-09-30",tags:["zfs"],source:"https://www.tritondatacenter.com/blog/submitting-to-systems-we-love",slug:"submitting-to-systems-we-love",readingMinutes:2},{title:"Post-mortem Debugging and Promises",summary:"Over the years there has been an increase in the popularity of promises in Node.js and JavaScript in general. This popularity is evidenced by the Promise object becoming part of the [ECMAScript…",author:"Wyatt Lyon Preul",date:"2016-09-26",tags:["debugging","nodejs"],source:"https://www.tritondatacenter.com/blog/post-mortem-debugging-and-promises",slug:"post-mortem-debugging-and-promises",readingMinutes:15},{title:"Systems We Love",summary:"One of the exciting trends of the past few years is the emergence of Papers We Love. I have long been an advocate of journal clubs, but I have also found that di",author:"Bryan Cantrill",date:"2016-09-26",tags:["debugging"],source:"https://www.tritondatacenter.com/blog/systems-we-love",slug:"systems-we-love",readingMinutes:2},{title:"Introduction to ContainerPilot for building applications",summary:"A lot has been written about the benefits of the Autopilot Pattern and ContainerPilot, including most recently how to [use Node.js with it](https",author:"Alexandra White and Wyatt Lyon Preul",date:"2016-09-21",tags:["autopilot-pattern","docker","nodejs"],source:"https://www.tritondatacenter.com/blog/containerpilot-hello-world",slug:"containerpilot-hello-world",readingMinutes:7,hero:"/blog/containerpilot-hello-world/consul-dashboard.jpeg",heroAlt:"Consul dashboard"},{title:"Debugging Node.js with MDB",summary:"The modular debugger (MDB) is a vital tool to have at your disposal for debugging issues in your Node.js application, no matter if they are trivial or complex, like that of the [infamous Node.js memory leak](https://t",author:"Wyatt Lyon Preul",date:"2016-09-20",tags:["nodejs","debugging"],source:"https://www.tritondatacenter.com/blog/debugging-nodejs-with-mdb",slug:"debugging-nodejs-with-mdb",readingMinutes:5},{title:"Turtles on the wire: understanding how the OS uses the modern NIC",summary:"The modern networking c
700ard (NIC) has evolved quite a bit from the simple Ethernet cards of yesteryear. As such, the way that the operating system uses them has had to evolve in tandem. Gone are the simple 10 Mbit/s copper or…",author:"Robert Mustacchi",date:"2016-09-15",tags:["smartos","networking","performance"],source:"https://www.tritondatacenter.com/blog/virtualizing-nics",slug:"virtualizing-nics",readingMinutes:21},{title:"Observable Node.js Applications",summary:"Getting an application into production is only one part of application development. After an application is in production, understanding, and diagnosing issues can be trying, to say the least. Fortunately, there are numerous tools to help…",author:"Wyatt Lyon Preul",date:"2016-09-08",tags:["nodejs","smartos","debugging"],source:"https://www.tritondatacenter.com/blog/observable-nodejs-applications",slug:"observable-nodejs-applications",readingMinutes:6,hero:"/blog/observable-nodejs-applications/modern-app.png",heroAlt:"modern app"},{title:"What's my IP? Understanding networking on Triton",summary:"We typically think about cloud infrastructure in terms of compute virtualization, but what use is a virtual compute instance in the cloud if it doesn't have fast, reliable, and secure networking? Triton takes a unique approach to…",author:"Alexandra White",date:"2016-09-06",tags:["docker","networking"],source:"https://www.tritondatacenter.com/blog/triton-networking-faq-intro",slug:"triton-networking-faq-intro",readingMinutes:10,hero:"/blog/triton-networking-faq-intro/summary-ipaddress.png",heroAlt:"The Joyent Dashboard"},{title:"Getting started with Triton CLI and CloudAPI",summary:"An archived screencast introducing the Triton command-line interface and CloudAPI.",author:"Joyent Documentation Team",date:"2016-08-30",tags:["triton"],source:"https://www.tritondatacenter.com/blog/getting-started-with-tritoncli-screencast",slug:"getting-started-with-tritoncli-screencast",readingMinutes:1},{title:"TCP Puzzlers",summary:"div.tcpPostServer span, div.tcpPostClient span { display: block; position: absolute; padding: 0.5em; font-size: small; font-family: Verdana, sans-serif;}div.tcpPostClient span { color: cccc00;}div.tcpPostClient, div.tcpPostClient p",author:"Dave Pacheco",date:"2016-08-18",tags:["smartos"],source:"https://www.tritondatacenter.com/blog/tcp-puzzlers",slug:"tcp-puzzlers",readingMinutes:17},{title:"Screencast: how to install docker, dockerize an app, and run it on Triton",summary:"An archived Triton screencast about installing Docker, packaging an application, and running it on Triton.",author:"Alexandra White",date:"2016-08-12",tags:["docker"],source:"https://www.tritondatacenter.com/blog/dockerizing-a-simple-app-with-screencast",slug:"dockerizing-a-simple-app-with-screencast",readingMinutes:1},{title:"Consul and etcd in the Autopilot Pattern",summary:"Applications developed with the Autopilot Pattern are self-operating and self-configuring but use an external service catalog like Consul or etcd to store and coordinate global state. [ContainerPilot](https://www.joyent",author:"Tim Gross",date:"2016-08-02",tags:["autopilot-pattern","networking"],source:"https://www.tritondatacenter.com/blog/consul-etcd-on-triton",slug:"consul-etcd-on-triton",readingMinutes:5},{title:"dtrace.conf(16) wrap-up",summary:"Something that got a little lost in the excitement of Samsung’s recent acquisition of Joyent was [dtrace.conf(16)](https://twitter.com/bcantrill/status/735539536793460736",author:"Bryan Cantrill",date:"2016-07-29",tags:["debugging","zfs","manta"],source:"https://www.tritondatacenter.com/blog/dtrace-conf-16-wrap-up",slug:"dtrace-conf-16-wrap-up",readingMinutes:4},{title:"Video: introduction to the Autopilot Pattern",summary:"Tim Gross introduces the Autopilot Pattern with illustrated examples and a walkthrough of our Autopilot Pattern example application and how [ContainerPilot](https://www.joyent.com/contain",author:"Tim Gross",date:"2016-07-06",tags:["autopilot-pattern"],source:"https://www.tritondatacenter.com/blog/video-autopilot-pattern",slug:"video-autopilot-pattern",readingMinutes:1},{title:"Joyent and Samsung: Thoughts after the close",summary:"You may have seen that Samsung is acquiring Joyent. One of the quirks about acquisition announcements is that for any company with even a modest number of shareholders (be it private or",author:"Bryan Cantrill, CTO",date:"2016-06-29",tags:["news"],source:"https://www.tritondatacenter.com/blog/joyent-and-samsung-thoughts-after-the-close",slug:"joyent-and-samsung-thoughts-after-the-close",readingMinutes:5},{title:"Samsung acquires Joyent",summary:"Since its inception, just over ten years ago, Joyent has lived on the leading edge of technical innovation. The Joyent team pioneered public cloud computing (and hybrid cloud), nurtured and grew Node.js into a de facto standard for web,",author:"Scott Hammond, CEO",date:"2016-06-15",tags:["news","manta"],source:"https://www.tritondatacenter.com/blog/samsung-acquires-joyent",slug:"samsung-acquires-joyent",readingMinutes:2},{title:"Samsung acquires Joyent: A CTO’s perspective",summary:"Let me not bury the lede: Samsung is acquiring Joyent, and Scott’s blog entry explains why we feel that this is such a good fit. As Joyent’s CTO, I wanted to offer my perspective and couch this acquisition in its bro",author:"Bryan Cantrill, CTO",date:"2016-06-15",tags:["news","manta"],source:"https://www.tritondatacenter.com/blog/samsung-acquires-joyent-a-ctos-perspective",slug:"samsung-acquires-joyent-a-ctos-perspective",readingMinutes:5},{title:"Summer '16 documentation updates",summary:"We're always updating our documentation, but it's worth calling out some of the big changes, including the following recent updates: The ContainerPilot docs are hugely expanded and now published at…",author:"Casey Bisson",date:"2016-06-09",tags:["docker","autopilot-pattern","networking"],source:"https://www.tritondatacenter.com/blog/summer-16-docs-updates",slug:"summer-16-docs-updates",readingMinutes:1},{title:"Cisco's Mantl on Triton",summary:"Cisco's Mantl is intended to be a standardized platform for containerized microservices. It packages a number of open source components with a single install process. Joyent Triton, including our [public cloud](
700https://www",author:"Casey Bisson",date:"2016-06-01",tags:["terraform"],source:"https://www.tritondatacenter.com/blog/mantl-on-triton",slug:"mantl-on-triton",readingMinutes:1,hero:"/blog/mantl-on-triton/mantl-screenshot.png",heroAlt:"Mantl screenshot"},{title:"The Autopilot Pattern and the rise of app-centric micro-orchestration",summary:"A distinguishing feature of Autopilot Pattern applications is that they can be used almost anywhere you can run Docker containers. To make sense of how it’s possible to make a complex, even stateful application so portable, we need to…",author:"Casey Bisson",date:"2016-05-12",tags:["autopilot-pattern","docker","kubernetes"],source:"https://www.tritondatacenter.com/blog/app-centric-micro-orchestration",slug:"app-centric-micro-orchestration",readingMinutes:14,hero:"/blog/app-centric-micro-orchestration/autopilot-pattern-example-app.png",heroAlt:"an example Autopilot Pattern application"},{title:"Container-Native Means Big Savings",summary:"Next generation container-native (G4) and KVM-based (K4) instance package families are now available on Joyent’s Triton-powered public cloud. These new instance packages replace prior generation T4 and G3 i",author:"Bill Fine",date:"2016-05-11",tags:["performance"],source:"https://www.tritondatacenter.com/blog/container-native-means-big-savings",slug:"container-native-means-big-savings",readingMinutes:4},{title:"Mesosphere open-sources DC/OS container orchestration solution",summary:"Many of the earliest Docker production success stories were actually running on the open source, dynamic duo of Mesos and Marathon. That combo pioneered cluster management, scheduling, and orchestration of Docker containers. Today…",author:"Casey Bisson",date:"2016-04-19",tags:["docker","autopilot-pattern"],source:"https://www.tritondatacenter.com/blog/celebrating-open-source-dcos",slug:"celebrating-open-source-dcos",readingMinutes:2},{title:"ContainerPilot: the app-centric orchestration solution for modern ops",summary:"At Joyent, we pride ourselves on making systems easier to operate, without ever compromising security or performance. That's at the foundation of our decade-long investment in container technology, and why private data center operators…",author:"Casey Bisson",date:"2016-04-12",tags:["autopilot-pattern"],source:"https://www.tritondatacenter.com/blog/containerbuddy-is-now-containerpilot",slug:"containerbuddy-is-now-containerpilot",readingMinutes:3},{title:"Monitoring and scaling applications with ContainerPilot telemetry",summary:"Application health checking is a key feature of ContainerPilot (formerly Containerbuddy). The user-defined health check gives us a binary way of determining whethe",author:"Tim Gross",date:"2016-04-12",tags:["autopilot-pattern","docker","performance"],source:"https://www.tritondatacenter.com/blog/containerpilot-telemetry",slug:"containerpilot-telemetry",readingMinutes:5},{title:"More than just a Drop(box) in the bucket?",summary:"Private cloud is dead (long live the private data center). A few weeks ago Wired magazine chronicled The Epic Story of Dropbox’s Exodus From the Amazon Cloud Empire. Dro",author:"Bill Fine",date:"2016-04-04",tags:["triton"],source:"https://www.tritondatacenter.com/blog/more-than-just-a-dropbox-in-the-bucket",slug:"more-than-just-a-dropbox-in-the-bucket",readingMinutes:4},{title:"DevOps questions: patterns for multi-data center and multi-cloud applications",summary:"I received the following question to [email protected] regarding how to run an application in multiple data centers: However, we are looking to migrate to cloud-first. We have a small cloud footprint that today is mostly b",author:"Casey Bisson",date:"2016-03-23",tags:["performance"],source:"https://www.tritondatacenter.com/blog/how-to-design-for-multiple-data-center-deployments",slug:"how-to-design-for-multiple-data-center-deployments",readingMinutes:6},{title:"Production Docker Logs on Triton",summary:"Logs contain valuable data for informing the operation of your containerized applications. During development, we can use docker logs to get a stream of logs from a container. But this is just one way that Docker provides to access logs…",author:"Tim Gross",date:"2016-03-18",tags:["docker","autopilot-pattern"],source:"https://www.tritondatacenter.com/blog/docker-log-drivers",slug:"docker-log-drivers",readingMinutes:4},{title:"New images to run your favorite applications on Triton bare metal infrastru
700cture containers",summary:"Today we are releasing some brand new images available for use in private data centers powered by Triton and in the Joyent public cloud. These images run on Triton infrast",author:"Christopher Horrell",date:"2016-03-15",tags:["docker","nodejs","smartos"],source:"https://www.tritondatacenter.com/blog/new-container-native-images",slug:"new-container-native-images",readingMinutes:6,hero:"/blog/new-container-native-images/select-image.png",heroAlt:"Choose Instance Type"},{title:"Modern application blueprint: Node.js + Docker + NoSQL",summary:"This application blueprint is not being maintained by Joyent and may no longer work as described. Please see our tutorial on building Autopilot Pattern applications and [Autopilot Pattern",author:"Tim Gross",date:"2016-03-08",tags:["docker","nodejs"],source:"https://www.tritondatacenter.com/blog/docker-nodejs-nginx-nosql-autopilot",slug:"docker-nodejs-nginx-nosql-autopilot",readingMinutes:7,hero:"/blog/docker-nodejs-nginx-nosql-autopilot/my-joyent-cns-cloudflare.png",heroAlt:"Setting a convenient CNAME for a Triton CNS generated domain name in CloudFlare DNS"},{title:"Introducing Triton Container Name Service",summary:"Today, Joyent introduces our free, automated DNS solution, Triton Container Name Service. Triton CNS makes it easy to use consistent and predictable addresses for all Triton compute instances, including Docker containers, infrastructure…",author:"Casey Bisson",date:"2016-03-08",tags:["networking","docker"],source:"https://www.tritondatacenter.com/blog/introducing-triton-container-name-service",slug:"introducing-triton-container-name-service",readingMinutes:4},{title:"Implementing the autopilot pattern",summary:"This application blueprint has been updated to demonstrate deeper integration with Node.js with the addition of consulite and [piloted](https://github.com/joyent/node-piloted",author:"Tim Gross",date:"2016-03-03",tags:["autopilot-pattern","docker","nodejs"],source:"https://www.tritondatacenter.com/blog/applications-on-autopilot",slug:"applications-on-autopilot",readingMinutes:10,hero:"/blog/applications-on-autopilot/architecture-with-autopilot.png",heroAlt:"Architecture with autopilot"},{title:"Containerbuddy 1.0",summary:"Mentions of Containerbuddy in this post should be read as references to ContainerPilot. In October we introduced Containerbuddy to the world. Tod",author:"Tim Gross",date:"2016-02-24",tags:["autopilot-pattern","news"],source:"https://www.tritondatacenter.com/blog/containerbuddy-10",slug:"containerbuddy-10",readingMinutes:2},{title:"MySQL on Autopilot",summary:"The autopilot pattern is an approach to application and infrastructure design that pushes automation for each component of our systems into the application. Each container that makes up the application has its own lifecy",author:"Tim Gross",date:"2016-02-22",tags:["docker","manta","autopilot-pattern"],source:"https://www.tritondatacenter.com/blog/dbaas-simplicity-no-lock-in",slug:"dbaas-simplicity-no-lock-in",readingMinutes:8,hero:"/blog/dbaas-simplicity-no-lock-in/flow-prestart.png",heroAlt:"Lifecycle preStart handler"},{title:"Docker quickstart for Triton",summary:"Docker client applications, including the Docker CLI, c
700an connect to the Triton remote API endpoint to launch and control Docker containers across an entire Triton data center. Connecting to the API requires an account on the Triton data…",author:"Drew Miller",date:"2016-01-27",tags:["docker"],source:"https://www.tritondatacenter.com/blog/docker-quickstart",slug:"docker-quickstart",readingMinutes:5},{title:"Triton - the new command line experience",summary:"It was March when we announced Triton, the latest version of the container-native data center automation software suite (formerly called SmartDataCenter) that powers [our p",author:"Drew Miller",date:"2016-01-27",tags:["docker","nodejs"],source:"https://www.tritondatacenter.com/blog/introducing-the-triton-command-line-tool",slug:"introducing-the-triton-command-line-tool",readingMinutes:9},{title:"Unikernels are unfit for production",summary:"Recently, I made the mistake of rhetorically asking if I needed to spell out why unikernels are unfit for production. The response was overwhelming: whether people feel that unikernels ar",author:"Bryan Cantrill",date:"2016-01-22",tags:["docker","debugging","security"],source:"https://www.tritondatacenter.com/blog/unikernels-are-unfit-for-production",slug:"unikernels-are-unfit-for-production",readingMinutes:8},{title:"Running and debugging CoreCLR ASP.NET web applications on Triton",summary:"No need to do a double take, you read that correctly, we’re going to talk about running (and perhaps more importantly, debugging) Microsoft’s newly open sourced CoreCLR and ASP.NET, in Triton secure Linux containers. This previously…",author:"Richard Kiene, Joyent Engineer",date:"2016-01-15",tags:["docker","debugging","performance"],source:"https://www.tritondatacenter.com/blog/running-and-debugging-coreclr-on-triton",slug:"running-and-debugging-coreclr-on-triton",readingMinutes:5},{title:"Bringing clarity to containers",summary:"At the beginning of the year, I laid down a few predictions. While I refuse on principle to engage in [Stephen O'Grady-style self-flagellation](http://redmonk.com/sogrady/2015/01/22/revisiting-20",author:"Bryan Cantrill",date:"2015-12-17",tags:["triton"],source:"https://www.tritondatacenter.com/blog/bringing-clarity-to-containers",slug:"bringing-clarity-to-containers",readingMinutes:3},{title:"Preview: managing containers and VMs together with Terraform on Triton",summary:"The Triton provider for Terraform was upstreamed in [Terraform 0.6.14](https://github.com/hashicorp/terraform/blob/master/CHANGELOG.md06",author:"Drew Miller & Casey Bisson",date:"2015-12-10",tags:["terraform","docker","packer"],source:"https://www.tritondatacenter.com/blog/introducing-hashicorp-terraform-for-joyent-triton",slug:"introducing-hashicorp-terraform-for-joyent-triton",readingMinutes:11}],GS=C.lazy(()=>Yn(()=>import("./DocsHome-DlgptKkq.js"),[]).then(e=>({default:e.DocsHome}))),qS=C.lazy(()=>Yn(()=>import("./GettingStarted-M5d1uqKb.js"),__vite__mapDeps([0,1])).then(e=>({default:e.GettingStarted}))),YS=C.lazy(()=>Yn(()=>import("./HowTo-B8V46N8B.js"),__vite__mapDeps([2,1])).then(e=>({default:e.HowTo}))),JS=C.lazy(()=>Yn(()=>import("./Concepts-DSnFkgfk.js"),__vite__mapDeps([3,1])).then(e=>({default:e.Concepts}))),La=C.lazy(()=>Yn(()=>import("./Reference-HEbxFwX2.js"),__vite__mapDeps([4,1])).then(e=>({default:e.ReferencePage})));C.lazy(()=>Yn(()=>Promise.resolve().then(()=>CS),void 0).then(e=>({default:e.LegalRoute})));const KS=C.lazy(()=>Yn(()=>import("./BlogIndex-CKbwJYHZ.js"),[]).then(e=>({default:e.BlogIndex})));function QS(){const{pathname:e,hash:o}=gt(),i=C.useRef(!0);return C.useEffect(()=>{if(o){let s=0,l=0;const c=()=>{const u=document.getElementById(o.slice(1));if(u){u.scrollIntoView();return}l+=1,l<20?s=window.requestAnimationFrame(c):window.scrollTo(0,0)};return c(),i.current=!1,()=>window.cancelAnimationFrame(s)}window.scrollTo(0,0),i.current||document.getElementById("main-content")?.focus({preventScroll:!0}),i.current=!1},[e,o]),null}function XS(){const{pathname:e}=gt(),[o,i]=C.useState("");return C.useEffect(()=>{const s=Om.find(u=>u.path===e),l=e.startsWith("/blog/")?$S.find(u=>`/blog/${u.slug}`===e):void 0,c=l?`${l.title} · Triton Cloud`:s&&s.path!=="/"?`${s.title} · Triton Cloud`:"Triton Cloud";document.title=c,i(c)},[e]),t.jsx("div",{"aria-live":"polite",className:"visually-hidden",children:o})}const ZS=Om.filter(e=>e.layout==="marketing");function eT(){return t.jsxs(Pv,{children:[t.jsx(QS,{}),t.jsx(XS,{}),t.jsxs(av,{children:[t.jsxs(Ve,{element:t.jsx(MS,{}),children:[t.jsx(Ve,{path:"/",element:Aa("/")??t.jsx(Oa,{})}),t.jsx(Ve,{path:"/pricing",element:Aa("/pricing")??t.jsx(Oa,{})}),t.jsx(Ve,{path:"/presentation",element:Aa("/presentation")??t.jsx(Oa,{})}),t.jsx(Ve,{path:"/blog",element:t.jsx(KS,{})}),t.jsx(Ve,{path:"/blog/:slug",element:t.jsx(tT,{})}),ZS.filter(e=>!["/","/pricing","/blog"].includes(e.path)).map(e=>t.jsx(Ve,{path:e.path,element:Aa(e.path)??t.jsx(HS,{path:e.path,title:e.title})},e.path)),Object.entries(lp).filter(([e])=>!e.startsWith("/docs/")).map(([e,o])=>t.jsx(Ve,{path:e,element:t.jsx(fp,{to:o,replace:!0})},e)),t.jsx(Ve,{path:"*",element:t.jsx(Oa,{})})]}),t.jsxs(Ve,{element:t.jsx(BS,{}),children:[t.jsx(Ve,{path:"/docs",element:t.jsx(GS,{})}),t.jsx(Ve,{path:"/docs/getting-started",element:t.jsx(qS,{})}),t.jsx(Ve,{path:"/docs/how-to",element:t.jsx(YS,{})}),t.jsx(Ve,{path:"/docs/concepts",element:t.jsx(JS,{})}),t.jsx(Ve,{path:"/docs/reference/api",element:t.jsx(La,{kind:"api"})}),t.jsx(Ve,{path:"/docs/reference/cli",element:t.jsx(La,{kind:"cli"})}),t.jsx(Ve,{path:"/docs/reference/terraform",element:t.jsx(La,{kind:"terraform"})}),t.jsx(Ve,{path:"/docs/reference/mcp",element:t.jsx(La,{kind:"mcp"})})]}),Object.entries(lp).filter(([e])=>e.startsWith("/docs/")).map(([e,o])=>t.jsx(Ve,{path:e,element:t.jsx(fp,{to:o,replace:!0})},e)),t.jsxs(Ve,{element:t.jsx(US,{}),children:[t.jsx(Ve,{path:"/login",element:t.jsx(WS,{})}),t.jsx(Ve,{path:"/signup",element:t.jsx(VS,{})})]})]})]})}const tT=C.lazy(()=>Yn(()=>import("./BlogPost-95AEdod1.js"),__vite__mapDeps([5,6])).then(e=>({default:e.BlogPost})));rx.createRoot(document.getElementById("root")).render(t.jsx(eT,{}));export{$S as B,M as L,a0 as M,Oa as N,Ut as P,nT as R,Yn as _,vS as a,qc as b,ns as c,Lc as g,t as j,C as r,rT as u,cu as v};

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.