diff --git "a/assets/index-DRD-zyB2.js" "b/assets/index-DRD-zyB2.js" new file mode 100644--- /dev/null +++ "b/assets/index-DRD-zyB2.js" @@ -0,0 +1,148 @@ +function vd(e,t){for(var n=0;nr[i]})}}}return Object.freeze(Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}))}(function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const i of document.querySelectorAll('link[rel="modulepreload"]'))r(i);new MutationObserver(i=>{for(const l of i)if(l.type==="childList")for(const o of l.addedNodes)o.tagName==="LINK"&&o.rel==="modulepreload"&&r(o)}).observe(document,{childList:!0,subtree:!0});function n(i){const l={};return i.integrity&&(l.integrity=i.integrity),i.referrerPolicy&&(l.referrerPolicy=i.referrerPolicy),i.crossOrigin==="use-credentials"?l.credentials="include":i.crossOrigin==="anonymous"?l.credentials="omit":l.credentials="same-origin",l}function r(i){if(i.ep)return;i.ep=!0;const l=n(i);fetch(i.href,l)}})();function yd(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var Ds={exports:{}},Ci={},Bs={exports:{}},F={};/** + * @license React + * react.production.min.js + * + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */var hr=Symbol.for("react.element"),wd=Symbol.for("react.portal"),xd=Symbol.for("react.fragment"),kd=Symbol.for("react.strict_mode"),Sd=Symbol.for("react.profiler"),Cd=Symbol.for("react.provider"),Ed=Symbol.for("react.context"),Pd=Symbol.for("react.forward_ref"),jd=Symbol.for("react.suspense"),_d=Symbol.for("react.memo"),Nd=Symbol.for("react.lazy"),ma=Symbol.iterator;function Td(e){return e===null||typeof e!="object"?null:(e=ma&&e[ma]||e["@@iterator"],typeof e=="function"?e:null)}var Us={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},bs=Object.assign,Xs={};function Sn(e,t,n){this.props=e,this.context=t,this.refs=Xs,this.updater=n||Us}Sn.prototype.isReactComponent={};Sn.prototype.setState=function(e,t){if(typeof e!="object"&&typeof e!="function"&&e!=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,e,t,"setState")};Sn.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,"forceUpdate")};function $s(){}$s.prototype=Sn.prototype;function ho(e,t,n){this.props=e,this.context=t,this.refs=Xs,this.updater=n||Us}var mo=ho.prototype=new $s;mo.constructor=ho;bs(mo,Sn.prototype);mo.isPureReactComponent=!0;var ga=Array.isArray,Hs=Object.prototype.hasOwnProperty,go={current:null},Ws={key:!0,ref:!0,__self:!0,__source:!0};function Vs(e,t,n){var r,i={},l=null,o=null;if(t!=null)for(r in t.ref!==void 0&&(o=t.ref),t.key!==void 0&&(l=""+t.key),t)Hs.call(t,r)&&!Ws.hasOwnProperty(r)&&(i[r]=t[r]);var a=arguments.length-2;if(a===1)i.children=n;else if(1>>1,ie=L[J];if(0>>1;Ji(Xi,O))Rti(Sr,Xi)?(L[J]=Sr,L[Rt]=O,J=Rt):(L[J]=Xi,L[Lt]=O,J=Lt);else if(Rti(Sr,O))L[J]=Sr,L[Rt]=O,J=Rt;else break e}}return z}function i(L,z){var O=L.sortIndex-z.sortIndex;return O!==0?O:L.id-z.id}if(typeof performance=="object"&&typeof performance.now=="function"){var l=performance;e.unstable_now=function(){return l.now()}}else{var o=Date,a=o.now();e.unstable_now=function(){return o.now()-a}}var s=[],c=[],v=1,g=null,y=3,C=!1,S=!1,E=!1,_=typeof setTimeout=="function"?setTimeout:null,f=typeof clearTimeout=="function"?clearTimeout:null,p=typeof setImmediate<"u"?setImmediate:null;typeof navigator<"u"&&navigator.scheduling!==void 0&&navigator.scheduling.isInputPending!==void 0&&navigator.scheduling.isInputPending.bind(navigator.scheduling);function h(L){for(var z=n(c);z!==null;){if(z.callback===null)r(c);else if(z.startTime<=L)r(c),z.sortIndex=z.expirationTime,t(s,z);else break;z=n(c)}}function k(L){if(E=!1,h(L),!S)if(n(s)!==null)S=!0,Ui(N);else{var z=n(c);z!==null&&bi(k,z.startTime-L)}}function N(L,z){S=!1,E&&(E=!1,f(M),M=-1),C=!0;var O=y;try{for(h(z),g=n(s);g!==null&&(!(g.expirationTime>z)||L&&!Fe());){var J=g.callback;if(typeof J=="function"){g.callback=null,y=g.priorityLevel;var ie=J(g.expirationTime<=z);z=e.unstable_now(),typeof ie=="function"?g.callback=ie:g===n(s)&&r(s),h(z)}else r(s);g=n(s)}if(g!==null)var kr=!0;else{var Lt=n(c);Lt!==null&&bi(k,Lt.startTime-z),kr=!1}return kr}finally{g=null,y=O,C=!1}}var R=!1,I=null,M=-1,Y=5,D=-1;function Fe(){return!(e.unstable_now()-DL||125J?(L.sortIndex=O,t(c,L),n(s)===null&&L===n(c)&&(E?(f(M),M=-1):E=!0,bi(k,O-J))):(L.sortIndex=ie,t(s,L),S||C||(S=!0,Ui(N))),L},e.unstable_shouldYield=Fe,e.unstable_wrapCallback=function(L){var z=y;return function(){var O=y;y=z;try{return L.apply(this,arguments)}finally{y=O}}}})(Zs);Js.exports=Zs;var bd=Js.exports;/** + * @license React + * react-dom.production.min.js + * + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */var Xd=j,Ne=bd;function P(e){for(var t="https://reactjs.org/docs/error-decoder.html?invariant="+e,n=1;n"u"||typeof window.document>"u"||typeof window.document.createElement>"u"),yl=Object.prototype.hasOwnProperty,$d=/^[: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]*$/,ya={},wa={};function Hd(e){return yl.call(wa,e)?!0:yl.call(ya,e)?!1:$d.test(e)?wa[e]=!0:(ya[e]=!0,!1)}function Wd(e,t,n,r){if(n!==null&&n.type===0)return!1;switch(typeof t){case"function":case"symbol":return!0;case"boolean":return r?!1:n!==null?!n.acceptsBooleans:(e=e.toLowerCase().slice(0,5),e!=="data-"&&e!=="aria-");default:return!1}}function Vd(e,t,n,r){if(t===null||typeof t>"u"||Wd(e,t,n,r))return!0;if(r)return!1;if(n!==null)switch(n.type){case 3:return!t;case 4:return t===!1;case 5:return isNaN(t);case 6:return isNaN(t)||1>t}return!1}function ye(e,t,n,r,i,l,o){this.acceptsBooleans=t===2||t===3||t===4,this.attributeName=r,this.attributeNamespace=i,this.mustUseProperty=n,this.propertyName=e,this.type=t,this.sanitizeURL=l,this.removeEmptyString=o}var ce={};"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style".split(" ").forEach(function(e){ce[e]=new ye(e,0,!1,e,null,!1,!1)});[["acceptCharset","accept-charset"],["className","class"],["htmlFor","for"],["httpEquiv","http-equiv"]].forEach(function(e){var t=e[0];ce[t]=new ye(t,1,!1,e[1],null,!1,!1)});["contentEditable","draggable","spellCheck","value"].forEach(function(e){ce[e]=new ye(e,2,!1,e.toLowerCase(),null,!1,!1)});["autoReverse","externalResourcesRequired","focusable","preserveAlpha"].forEach(function(e){ce[e]=new ye(e,2,!1,e,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(e){ce[e]=new ye(e,3,!1,e.toLowerCase(),null,!1,!1)});["checked","multiple","muted","selected"].forEach(function(e){ce[e]=new ye(e,3,!0,e,null,!1,!1)});["capture","download"].forEach(function(e){ce[e]=new ye(e,4,!1,e,null,!1,!1)});["cols","rows","size","span"].forEach(function(e){ce[e]=new ye(e,6,!1,e,null,!1,!1)});["rowSpan","start"].forEach(function(e){ce[e]=new ye(e,5,!1,e.toLowerCase(),null,!1,!1)});var yo=/[\-:]([a-z])/g;function wo(e){return e[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(e){var t=e.replace(yo,wo);ce[t]=new ye(t,1,!1,e,null,!1,!1)});"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type".split(" ").forEach(function(e){var t=e.replace(yo,wo);ce[t]=new ye(t,1,!1,e,"http://www.w3.org/1999/xlink",!1,!1)});["xml:base","xml:lang","xml:space"].forEach(function(e){var t=e.replace(yo,wo);ce[t]=new ye(t,1,!1,e,"http://www.w3.org/XML/1998/namespace",!1,!1)});["tabIndex","crossOrigin"].forEach(function(e){ce[e]=new ye(e,1,!1,e.toLowerCase(),null,!1,!1)});ce.xlinkHref=new ye("xlinkHref",1,!1,"xlink:href","http://www.w3.org/1999/xlink",!0,!1);["src","href","action","formAction"].forEach(function(e){ce[e]=new ye(e,1,!1,e.toLowerCase(),null,!0,!0)});function xo(e,t,n,r){var i=ce.hasOwnProperty(t)?ce[t]:null;(i!==null?i.type!==0:r||!(2a||i[o]!==l[a]){var s=` +`+i[o].replace(" at new "," at ");return e.displayName&&s.includes("")&&(s=s.replace("",e.displayName)),s}while(1<=o&&0<=a);break}}}finally{Wi=!1,Error.prepareStackTrace=n}return(e=e?e.displayName||e.name:"")?On(e):""}function Kd(e){switch(e.tag){case 5:return On(e.type);case 16:return On("Lazy");case 13:return On("Suspense");case 19:return On("SuspenseList");case 0:case 2:case 15:return e=Vi(e.type,!1),e;case 11:return e=Vi(e.type.render,!1),e;case 1:return e=Vi(e.type,!0),e;default:return""}}function Sl(e){if(e==null)return null;if(typeof e=="function")return e.displayName||e.name||null;if(typeof e=="string")return e;switch(e){case Jt:return"Fragment";case Yt:return"Portal";case wl:return"Profiler";case ko:return"StrictMode";case xl:return"Suspense";case kl:return"SuspenseList"}if(typeof e=="object")switch(e.$$typeof){case tu:return(e.displayName||"Context")+".Consumer";case eu:return(e._context.displayName||"Context")+".Provider";case So:var t=e.render;return e=e.displayName,e||(e=t.displayName||t.name||"",e=e!==""?"ForwardRef("+e+")":"ForwardRef"),e;case Co:return t=e.displayName||null,t!==null?t:Sl(e.type)||"Memo";case st:t=e._payload,e=e._init;try{return Sl(e(t))}catch{}}return null}function Qd(e){var t=e.type;switch(e.tag){case 24:return"Cache";case 9:return(t.displayName||"Context")+".Consumer";case 10:return(t._context.displayName||"Context")+".Provider";case 18:return"DehydratedFragment";case 11:return e=t.render,e=e.displayName||e.name||"",t.displayName||(e!==""?"ForwardRef("+e+")":"ForwardRef");case 7:return"Fragment";case 5:return t;case 4:return"Portal";case 3:return"Root";case 6:return"Text";case 16:return Sl(t);case 8:return t===ko?"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 t=="function")return t.displayName||t.name||null;if(typeof t=="string")return t}return null}function Et(e){switch(typeof e){case"boolean":case"number":case"string":case"undefined":return e;case"object":return e;default:return""}}function ru(e){var t=e.type;return(e=e.nodeName)&&e.toLowerCase()==="input"&&(t==="checkbox"||t==="radio")}function Gd(e){var t=ru(e)?"checked":"value",n=Object.getOwnPropertyDescriptor(e.constructor.prototype,t),r=""+e[t];if(!e.hasOwnProperty(t)&&typeof n<"u"&&typeof n.get=="function"&&typeof n.set=="function"){var i=n.get,l=n.set;return Object.defineProperty(e,t,{configurable:!0,get:function(){return i.call(this)},set:function(o){r=""+o,l.call(this,o)}}),Object.defineProperty(e,t,{enumerable:n.enumerable}),{getValue:function(){return r},setValue:function(o){r=""+o},stopTracking:function(){e._valueTracker=null,delete e[t]}}}}function Pr(e){e._valueTracker||(e._valueTracker=Gd(e))}function iu(e){if(!e)return!1;var t=e._valueTracker;if(!t)return!0;var n=t.getValue(),r="";return e&&(r=ru(e)?e.checked?"true":"false":e.value),e=r,e!==n?(t.setValue(e),!0):!1}function Zr(e){if(e=e||(typeof document<"u"?document:void 0),typeof e>"u")return null;try{return e.activeElement||e.body}catch{return e.body}}function Cl(e,t){var n=t.checked;return Q({},t,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:n??e._wrapperState.initialChecked})}function ka(e,t){var n=t.defaultValue==null?"":t.defaultValue,r=t.checked!=null?t.checked:t.defaultChecked;n=Et(t.value!=null?t.value:n),e._wrapperState={initialChecked:r,initialValue:n,controlled:t.type==="checkbox"||t.type==="radio"?t.checked!=null:t.value!=null}}function lu(e,t){t=t.checked,t!=null&&xo(e,"checked",t,!1)}function El(e,t){lu(e,t);var n=Et(t.value),r=t.type;if(n!=null)r==="number"?(n===0&&e.value===""||e.value!=n)&&(e.value=""+n):e.value!==""+n&&(e.value=""+n);else if(r==="submit"||r==="reset"){e.removeAttribute("value");return}t.hasOwnProperty("value")?Pl(e,t.type,n):t.hasOwnProperty("defaultValue")&&Pl(e,t.type,Et(t.defaultValue)),t.checked==null&&t.defaultChecked!=null&&(e.defaultChecked=!!t.defaultChecked)}function Sa(e,t,n){if(t.hasOwnProperty("value")||t.hasOwnProperty("defaultValue")){var r=t.type;if(!(r!=="submit"&&r!=="reset"||t.value!==void 0&&t.value!==null))return;t=""+e._wrapperState.initialValue,n||t===e.value||(e.value=t),e.defaultValue=t}n=e.name,n!==""&&(e.name=""),e.defaultChecked=!!e._wrapperState.initialChecked,n!==""&&(e.name=n)}function Pl(e,t,n){(t!=="number"||Zr(e.ownerDocument)!==e)&&(n==null?e.defaultValue=""+e._wrapperState.initialValue:e.defaultValue!==""+n&&(e.defaultValue=""+n))}var Fn=Array.isArray;function un(e,t,n,r){if(e=e.options,t){t={};for(var i=0;i"+t.valueOf().toString()+"",t=jr.firstChild;e.firstChild;)e.removeChild(e.firstChild);for(;t.firstChild;)e.appendChild(t.firstChild)}});function Yn(e,t){if(t){var n=e.firstChild;if(n&&n===e.lastChild&&n.nodeType===3){n.nodeValue=t;return}}e.textContent=t}var Un={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},Yd=["Webkit","ms","Moz","O"];Object.keys(Un).forEach(function(e){Yd.forEach(function(t){t=t+e.charAt(0).toUpperCase()+e.substring(1),Un[t]=Un[e]})});function uu(e,t,n){return t==null||typeof t=="boolean"||t===""?"":n||typeof t!="number"||t===0||Un.hasOwnProperty(e)&&Un[e]?(""+t).trim():t+"px"}function cu(e,t){e=e.style;for(var n in t)if(t.hasOwnProperty(n)){var r=n.indexOf("--")===0,i=uu(n,t[n],r);n==="float"&&(n="cssFloat"),r?e.setProperty(n,i):e[n]=i}}var Jd=Q({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 Nl(e,t){if(t){if(Jd[e]&&(t.children!=null||t.dangerouslySetInnerHTML!=null))throw Error(P(137,e));if(t.dangerouslySetInnerHTML!=null){if(t.children!=null)throw Error(P(60));if(typeof t.dangerouslySetInnerHTML!="object"||!("__html"in t.dangerouslySetInnerHTML))throw Error(P(61))}if(t.style!=null&&typeof t.style!="object")throw Error(P(62))}}function Tl(e,t){if(e.indexOf("-")===-1)return typeof t.is=="string";switch(e){case"annotation-xml":case"color-profile":case"font-face":case"font-face-src":case"font-face-uri":case"font-face-format":case"font-face-name":case"missing-glyph":return!1;default:return!0}}var Ll=null;function Eo(e){return e=e.target||e.srcElement||window,e.correspondingUseElement&&(e=e.correspondingUseElement),e.nodeType===3?e.parentNode:e}var Rl=null,cn=null,dn=null;function Pa(e){if(e=vr(e)){if(typeof Rl!="function")throw Error(P(280));var t=e.stateNode;t&&(t=Ni(t),Rl(e.stateNode,e.type,t))}}function du(e){cn?dn?dn.push(e):dn=[e]:cn=e}function pu(){if(cn){var e=cn,t=dn;if(dn=cn=null,Pa(e),t)for(e=0;e>>=0,e===0?32:31-(sp(e)/up|0)|0}var _r=64,Nr=4194304;function Dn(e){switch(e&-e){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64: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 e&4194240;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return e&130023424;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 1073741824;default:return e}}function ni(e,t){var n=e.pendingLanes;if(n===0)return 0;var r=0,i=e.suspendedLanes,l=e.pingedLanes,o=n&268435455;if(o!==0){var a=o&~i;a!==0?r=Dn(a):(l&=o,l!==0&&(r=Dn(l)))}else o=n&~i,o!==0?r=Dn(o):l!==0&&(r=Dn(l));if(r===0)return 0;if(t!==0&&t!==r&&!(t&i)&&(i=r&-r,l=t&-t,i>=l||i===16&&(l&4194240)!==0))return t;if(r&4&&(r|=n&16),t=e.entangledLanes,t!==0)for(e=e.entanglements,t&=r;0n;n++)t.push(e);return t}function mr(e,t,n){e.pendingLanes|=t,t!==536870912&&(e.suspendedLanes=0,e.pingedLanes=0),e=e.eventTimes,t=31-Xe(t),e[t]=n}function fp(e,t){var n=e.pendingLanes&~t;e.pendingLanes=t,e.suspendedLanes=0,e.pingedLanes=0,e.expiredLanes&=t,e.mutableReadLanes&=t,e.entangledLanes&=t,t=e.entanglements;var r=e.eventTimes;for(e=e.expirationTimes;0=Xn),Aa=" ",za=!1;function Iu(e,t){switch(e){case"keyup":return bp.indexOf(t.keyCode)!==-1;case"keydown":return t.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function Mu(e){return e=e.detail,typeof e=="object"&&"data"in e?e.data:null}var Zt=!1;function $p(e,t){switch(e){case"compositionend":return Mu(t);case"keypress":return t.which!==32?null:(za=!0,Aa);case"textInput":return e=t.data,e===Aa&&za?null:e;default:return null}}function Hp(e,t){if(Zt)return e==="compositionend"||!Io&&Iu(e,t)?(e=Lu(),$r=To=pt=null,Zt=!1,e):null;switch(e){case"paste":return null;case"keypress":if(!(t.ctrlKey||t.altKey||t.metaKey)||t.ctrlKey&&t.altKey){if(t.char&&1=t)return{node:n,offset:t-e};e=r}e:{for(;n;){if(n.nextSibling){n=n.nextSibling;break e}n=n.parentNode}n=void 0}n=Ba(n)}}function Fu(e,t){return e&&t?e===t?!0:e&&e.nodeType===3?!1:t&&t.nodeType===3?Fu(e,t.parentNode):"contains"in e?e.contains(t):e.compareDocumentPosition?!!(e.compareDocumentPosition(t)&16):!1:!1}function Du(){for(var e=window,t=Zr();t instanceof e.HTMLIFrameElement;){try{var n=typeof t.contentWindow.location.href=="string"}catch{n=!1}if(n)e=t.contentWindow;else break;t=Zr(e.document)}return t}function Mo(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return t&&(t==="input"&&(e.type==="text"||e.type==="search"||e.type==="tel"||e.type==="url"||e.type==="password")||t==="textarea"||e.contentEditable==="true")}function qp(e){var t=Du(),n=e.focusedElem,r=e.selectionRange;if(t!==n&&n&&n.ownerDocument&&Fu(n.ownerDocument.documentElement,n)){if(r!==null&&Mo(n)){if(t=r.start,e=r.end,e===void 0&&(e=t),"selectionStart"in n)n.selectionStart=t,n.selectionEnd=Math.min(e,n.value.length);else if(e=(t=n.ownerDocument||document)&&t.defaultView||window,e.getSelection){e=e.getSelection();var i=n.textContent.length,l=Math.min(r.start,i);r=r.end===void 0?l:Math.min(r.end,i),!e.extend&&l>r&&(i=r,r=l,l=i),i=Ua(n,l);var o=Ua(n,r);i&&o&&(e.rangeCount!==1||e.anchorNode!==i.node||e.anchorOffset!==i.offset||e.focusNode!==o.node||e.focusOffset!==o.offset)&&(t=t.createRange(),t.setStart(i.node,i.offset),e.removeAllRanges(),l>r?(e.addRange(t),e.extend(o.node,o.offset)):(t.setEnd(o.node,o.offset),e.addRange(t)))}}for(t=[],e=n;e=e.parentNode;)e.nodeType===1&&t.push({element:e,left:e.scrollLeft,top:e.scrollTop});for(typeof n.focus=="function"&&n.focus(),n=0;n=document.documentMode,qt=null,Fl=null,Hn=null,Dl=!1;function ba(e,t,n){var r=n.window===n?n.document:n.nodeType===9?n:n.ownerDocument;Dl||qt==null||qt!==Zr(r)||(r=qt,"selectionStart"in r&&Mo(r)?r={start:r.selectionStart,end:r.selectionEnd}:(r=(r.ownerDocument&&r.ownerDocument.defaultView||window).getSelection(),r={anchorNode:r.anchorNode,anchorOffset:r.anchorOffset,focusNode:r.focusNode,focusOffset:r.focusOffset}),Hn&&nr(Hn,r)||(Hn=r,r=li(Fl,"onSelect"),0nn||(e.current=Hl[nn],Hl[nn]=null,nn--)}function b(e,t){nn++,Hl[nn]=e.current,e.current=t}var Pt={},he=_t(Pt),ke=_t(!1),Bt=Pt;function gn(e,t){var n=e.type.contextTypes;if(!n)return Pt;var r=e.stateNode;if(r&&r.__reactInternalMemoizedUnmaskedChildContext===t)return r.__reactInternalMemoizedMaskedChildContext;var i={},l;for(l in n)i[l]=t[l];return r&&(e=e.stateNode,e.__reactInternalMemoizedUnmaskedChildContext=t,e.__reactInternalMemoizedMaskedChildContext=i),i}function Se(e){return e=e.childContextTypes,e!=null}function ai(){$(ke),$(he)}function Qa(e,t,n){if(he.current!==Pt)throw Error(P(168));b(he,t),b(ke,n)}function Ku(e,t,n){var r=e.stateNode;if(t=t.childContextTypes,typeof r.getChildContext!="function")return n;r=r.getChildContext();for(var i in r)if(!(i in t))throw Error(P(108,Qd(e)||"Unknown",i));return Q({},n,r)}function si(e){return e=(e=e.stateNode)&&e.__reactInternalMemoizedMergedChildContext||Pt,Bt=he.current,b(he,e),b(ke,ke.current),!0}function Ga(e,t,n){var r=e.stateNode;if(!r)throw Error(P(169));n?(e=Ku(e,t,Bt),r.__reactInternalMemoizedMergedChildContext=e,$(ke),$(he),b(he,e)):$(ke),b(ke,n)}var Ze=null,Ti=!1,ol=!1;function Qu(e){Ze===null?Ze=[e]:Ze.push(e)}function pf(e){Ti=!0,Qu(e)}function Nt(){if(!ol&&Ze!==null){ol=!0;var e=0,t=U;try{var n=Ze;for(U=1;e>=o,i-=o,qe=1<<32-Xe(t)+i|n<M?(Y=I,I=null):Y=I.sibling;var D=y(f,I,h[M],k);if(D===null){I===null&&(I=Y);break}e&&I&&D.alternate===null&&t(f,I),p=l(D,p,M),R===null?N=D:R.sibling=D,R=D,I=Y}if(M===h.length)return n(f,I),H&&It(f,M),N;if(I===null){for(;MM?(Y=I,I=null):Y=I.sibling;var Fe=y(f,I,D.value,k);if(Fe===null){I===null&&(I=Y);break}e&&I&&Fe.alternate===null&&t(f,I),p=l(Fe,p,M),R===null?N=Fe:R.sibling=Fe,R=Fe,I=Y}if(D.done)return n(f,I),H&&It(f,M),N;if(I===null){for(;!D.done;M++,D=h.next())D=g(f,D.value,k),D!==null&&(p=l(D,p,M),R===null?N=D:R.sibling=D,R=D);return H&&It(f,M),N}for(I=r(f,I);!D.done;M++,D=h.next())D=C(I,f,M,D.value,k),D!==null&&(e&&D.alternate!==null&&I.delete(D.key===null?M:D.key),p=l(D,p,M),R===null?N=D:R.sibling=D,R=D);return e&&I.forEach(function(jn){return t(f,jn)}),H&&It(f,M),N}function _(f,p,h,k){if(typeof h=="object"&&h!==null&&h.type===Jt&&h.key===null&&(h=h.props.children),typeof h=="object"&&h!==null){switch(h.$$typeof){case Er:e:{for(var N=h.key,R=p;R!==null;){if(R.key===N){if(N=h.type,N===Jt){if(R.tag===7){n(f,R.sibling),p=i(R,h.props.children),p.return=f,f=p;break e}}else if(R.elementType===N||typeof N=="object"&&N!==null&&N.$$typeof===st&&Za(N)===R.type){n(f,R.sibling),p=i(R,h.props),p.ref=Mn(f,R,h),p.return=f,f=p;break e}n(f,R);break}else t(f,R);R=R.sibling}h.type===Jt?(p=Dt(h.props.children,f.mode,k,h.key),p.return=f,f=p):(k=Jr(h.type,h.key,h.props,null,f.mode,k),k.ref=Mn(f,p,h),k.return=f,f=k)}return o(f);case Yt:e:{for(R=h.key;p!==null;){if(p.key===R)if(p.tag===4&&p.stateNode.containerInfo===h.containerInfo&&p.stateNode.implementation===h.implementation){n(f,p.sibling),p=i(p,h.children||[]),p.return=f,f=p;break e}else{n(f,p);break}else t(f,p);p=p.sibling}p=hl(h,f.mode,k),p.return=f,f=p}return o(f);case st:return R=h._init,_(f,p,R(h._payload),k)}if(Fn(h))return S(f,p,h,k);if(Nn(h))return E(f,p,h,k);zr(f,h)}return typeof h=="string"&&h!==""||typeof h=="number"?(h=""+h,p!==null&&p.tag===6?(n(f,p.sibling),p=i(p,h),p.return=f,f=p):(n(f,p),p=fl(h,f.mode,k),p.return=f,f=p),o(f)):n(f,p)}return _}var yn=Zu(!0),qu=Zu(!1),di=_t(null),pi=null,on=null,Fo=null;function Do(){Fo=on=pi=null}function Bo(e){var t=di.current;$(di),e._currentValue=t}function Kl(e,t,n){for(;e!==null;){var r=e.alternate;if((e.childLanes&t)!==t?(e.childLanes|=t,r!==null&&(r.childLanes|=t)):r!==null&&(r.childLanes&t)!==t&&(r.childLanes|=t),e===n)break;e=e.return}}function fn(e,t){pi=e,Fo=on=null,e=e.dependencies,e!==null&&e.firstContext!==null&&(e.lanes&t&&(xe=!0),e.firstContext=null)}function ze(e){var t=e._currentValue;if(Fo!==e)if(e={context:e,memoizedValue:t,next:null},on===null){if(pi===null)throw Error(P(308));on=e,pi.dependencies={lanes:0,firstContext:e}}else on=on.next=e;return t}var zt=null;function Uo(e){zt===null?zt=[e]:zt.push(e)}function ec(e,t,n,r){var i=t.interleaved;return i===null?(n.next=n,Uo(t)):(n.next=i.next,i.next=n),t.interleaved=n,it(e,r)}function it(e,t){e.lanes|=t;var n=e.alternate;for(n!==null&&(n.lanes|=t),n=e,e=e.return;e!==null;)e.childLanes|=t,n=e.alternate,n!==null&&(n.childLanes|=t),n=e,e=e.return;return n.tag===3?n.stateNode:null}var ut=!1;function bo(e){e.updateQueue={baseState:e.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,interleaved:null,lanes:0},effects:null}}function tc(e,t){e=e.updateQueue,t.updateQueue===e&&(t.updateQueue={baseState:e.baseState,firstBaseUpdate:e.firstBaseUpdate,lastBaseUpdate:e.lastBaseUpdate,shared:e.shared,effects:e.effects})}function tt(e,t){return{eventTime:e,lane:t,tag:0,payload:null,callback:null,next:null}}function wt(e,t,n){var r=e.updateQueue;if(r===null)return null;if(r=r.shared,B&2){var i=r.pending;return i===null?t.next=t:(t.next=i.next,i.next=t),r.pending=t,it(e,n)}return i=r.interleaved,i===null?(t.next=t,Uo(r)):(t.next=i.next,i.next=t),r.interleaved=t,it(e,n)}function Wr(e,t,n){if(t=t.updateQueue,t!==null&&(t=t.shared,(n&4194240)!==0)){var r=t.lanes;r&=e.pendingLanes,n|=r,t.lanes=n,jo(e,n)}}function qa(e,t){var n=e.updateQueue,r=e.alternate;if(r!==null&&(r=r.updateQueue,n===r)){var i=null,l=null;if(n=n.firstBaseUpdate,n!==null){do{var o={eventTime:n.eventTime,lane:n.lane,tag:n.tag,payload:n.payload,callback:n.callback,next:null};l===null?i=l=o:l=l.next=o,n=n.next}while(n!==null);l===null?i=l=t:l=l.next=t}else i=l=t;n={baseState:r.baseState,firstBaseUpdate:i,lastBaseUpdate:l,shared:r.shared,effects:r.effects},e.updateQueue=n;return}e=n.lastBaseUpdate,e===null?n.firstBaseUpdate=t:e.next=t,n.lastBaseUpdate=t}function fi(e,t,n,r){var i=e.updateQueue;ut=!1;var l=i.firstBaseUpdate,o=i.lastBaseUpdate,a=i.shared.pending;if(a!==null){i.shared.pending=null;var s=a,c=s.next;s.next=null,o===null?l=c:o.next=c,o=s;var v=e.alternate;v!==null&&(v=v.updateQueue,a=v.lastBaseUpdate,a!==o&&(a===null?v.firstBaseUpdate=c:a.next=c,v.lastBaseUpdate=s))}if(l!==null){var g=i.baseState;o=0,v=c=s=null,a=l;do{var y=a.lane,C=a.eventTime;if((r&y)===y){v!==null&&(v=v.next={eventTime:C,lane:0,tag:a.tag,payload:a.payload,callback:a.callback,next:null});e:{var S=e,E=a;switch(y=t,C=n,E.tag){case 1:if(S=E.payload,typeof S=="function"){g=S.call(C,g,y);break e}g=S;break e;case 3:S.flags=S.flags&-65537|128;case 0:if(S=E.payload,y=typeof S=="function"?S.call(C,g,y):S,y==null)break e;g=Q({},g,y);break e;case 2:ut=!0}}a.callback!==null&&a.lane!==0&&(e.flags|=64,y=i.effects,y===null?i.effects=[a]:y.push(a))}else C={eventTime:C,lane:y,tag:a.tag,payload:a.payload,callback:a.callback,next:null},v===null?(c=v=C,s=g):v=v.next=C,o|=y;if(a=a.next,a===null){if(a=i.shared.pending,a===null)break;y=a,a=y.next,y.next=null,i.lastBaseUpdate=y,i.shared.pending=null}}while(!0);if(v===null&&(s=g),i.baseState=s,i.firstBaseUpdate=c,i.lastBaseUpdate=v,t=i.shared.interleaved,t!==null){i=t;do o|=i.lane,i=i.next;while(i!==t)}else l===null&&(i.shared.lanes=0);Xt|=o,e.lanes=o,e.memoizedState=g}}function es(e,t,n){if(e=t.effects,t.effects=null,e!==null)for(t=0;tn?n:4,e(!0);var r=sl.transition;sl.transition={};try{e(!1),t()}finally{U=n,sl.transition=r}}function yc(){return Oe().memoizedState}function gf(e,t,n){var r=kt(e);if(n={lane:r,action:n,hasEagerState:!1,eagerState:null,next:null},wc(e))xc(t,n);else if(n=ec(e,t,n,r),n!==null){var i=ge();$e(n,e,r,i),kc(n,t,r)}}function vf(e,t,n){var r=kt(e),i={lane:r,action:n,hasEagerState:!1,eagerState:null,next:null};if(wc(e))xc(t,i);else{var l=e.alternate;if(e.lanes===0&&(l===null||l.lanes===0)&&(l=t.lastRenderedReducer,l!==null))try{var o=t.lastRenderedState,a=l(o,n);if(i.hasEagerState=!0,i.eagerState=a,He(a,o)){var s=t.interleaved;s===null?(i.next=i,Uo(t)):(i.next=s.next,s.next=i),t.interleaved=i;return}}catch{}finally{}n=ec(e,t,i,r),n!==null&&(i=ge(),$e(n,e,r,i),kc(n,t,r))}}function wc(e){var t=e.alternate;return e===K||t!==null&&t===K}function xc(e,t){Wn=mi=!0;var n=e.pending;n===null?t.next=t:(t.next=n.next,n.next=t),e.pending=t}function kc(e,t,n){if(n&4194240){var r=t.lanes;r&=e.pendingLanes,n|=r,t.lanes=n,jo(e,n)}}var gi={readContext:ze,useCallback:de,useContext:de,useEffect:de,useImperativeHandle:de,useInsertionEffect:de,useLayoutEffect:de,useMemo:de,useReducer:de,useRef:de,useState:de,useDebugValue:de,useDeferredValue:de,useTransition:de,useMutableSource:de,useSyncExternalStore:de,useId:de,unstable_isNewReconciler:!1},yf={readContext:ze,useCallback:function(e,t){return Ve().memoizedState=[e,t===void 0?null:t],e},useContext:ze,useEffect:ns,useImperativeHandle:function(e,t,n){return n=n!=null?n.concat([e]):null,Kr(4194308,4,fc.bind(null,t,e),n)},useLayoutEffect:function(e,t){return Kr(4194308,4,e,t)},useInsertionEffect:function(e,t){return Kr(4,2,e,t)},useMemo:function(e,t){var n=Ve();return t=t===void 0?null:t,e=e(),n.memoizedState=[e,t],e},useReducer:function(e,t,n){var r=Ve();return t=n!==void 0?n(t):t,r.memoizedState=r.baseState=t,e={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:e,lastRenderedState:t},r.queue=e,e=e.dispatch=gf.bind(null,K,e),[r.memoizedState,e]},useRef:function(e){var t=Ve();return e={current:e},t.memoizedState=e},useState:ts,useDebugValue:Go,useDeferredValue:function(e){return Ve().memoizedState=e},useTransition:function(){var e=ts(!1),t=e[0];return e=mf.bind(null,e[1]),Ve().memoizedState=e,[t,e]},useMutableSource:function(){},useSyncExternalStore:function(e,t,n){var r=K,i=Ve();if(H){if(n===void 0)throw Error(P(407));n=n()}else{if(n=t(),oe===null)throw Error(P(349));bt&30||lc(r,t,n)}i.memoizedState=n;var l={value:n,getSnapshot:t};return i.queue=l,ns(ac.bind(null,r,l,e),[e]),r.flags|=2048,cr(9,oc.bind(null,r,l,n,t),void 0,null),n},useId:function(){var e=Ve(),t=oe.identifierPrefix;if(H){var n=et,r=qe;n=(r&~(1<<32-Xe(r)-1)).toString(32)+n,t=":"+t+"R"+n,n=sr++,0<\/script>",e=e.removeChild(e.firstChild)):typeof r.is=="string"?e=o.createElement(n,{is:r.is}):(e=o.createElement(n),n==="select"&&(o=e,r.multiple?o.multiple=!0:r.size&&(o.size=r.size))):e=o.createElementNS(e,n),e[Ke]=t,e[lr]=r,Rc(e,t,!1,!1),t.stateNode=e;e:{switch(o=Tl(n,r),n){case"dialog":X("cancel",e),X("close",e),i=r;break;case"iframe":case"object":case"embed":X("load",e),i=r;break;case"video":case"audio":for(i=0;ikn&&(t.flags|=128,r=!0,An(l,!1),t.lanes=4194304)}else{if(!r)if(e=hi(o),e!==null){if(t.flags|=128,r=!0,n=e.updateQueue,n!==null&&(t.updateQueue=n,t.flags|=4),An(l,!0),l.tail===null&&l.tailMode==="hidden"&&!o.alternate&&!H)return pe(t),null}else 2*Z()-l.renderingStartTime>kn&&n!==1073741824&&(t.flags|=128,r=!0,An(l,!1),t.lanes=4194304);l.isBackwards?(o.sibling=t.child,t.child=o):(n=l.last,n!==null?n.sibling=o:t.child=o,l.last=o)}return l.tail!==null?(t=l.tail,l.rendering=t,l.tail=t.sibling,l.renderingStartTime=Z(),t.sibling=null,n=V.current,b(V,r?n&1|2:n&1),t):(pe(t),null);case 22:case 23:return ta(),r=t.memoizedState!==null,e!==null&&e.memoizedState!==null!==r&&(t.flags|=8192),r&&t.mode&1?Ee&1073741824&&(pe(t),t.subtreeFlags&6&&(t.flags|=8192)):pe(t),null;case 24:return null;case 25:return null}throw Error(P(156,t.tag))}function jf(e,t){switch(zo(t),t.tag){case 1:return Se(t.type)&&ai(),e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 3:return wn(),$(ke),$(he),Ho(),e=t.flags,e&65536&&!(e&128)?(t.flags=e&-65537|128,t):null;case 5:return $o(t),null;case 13:if($(V),e=t.memoizedState,e!==null&&e.dehydrated!==null){if(t.alternate===null)throw Error(P(340));vn()}return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 19:return $(V),null;case 4:return wn(),null;case 10:return Bo(t.type._context),null;case 22:case 23:return ta(),null;case 24:return null;default:return null}}var Fr=!1,fe=!1,_f=typeof WeakSet=="function"?WeakSet:Set,T=null;function an(e,t){var n=e.ref;if(n!==null)if(typeof n=="function")try{n(null)}catch(r){G(e,t,r)}else n.current=null}function no(e,t,n){try{n()}catch(r){G(e,t,r)}}var fs=!1;function Nf(e,t){if(Bl=ri,e=Du(),Mo(e)){if("selectionStart"in e)var n={start:e.selectionStart,end:e.selectionEnd};else e:{n=(n=e.ownerDocument)&&n.defaultView||window;var r=n.getSelection&&n.getSelection();if(r&&r.rangeCount!==0){n=r.anchorNode;var i=r.anchorOffset,l=r.focusNode;r=r.focusOffset;try{n.nodeType,l.nodeType}catch{n=null;break e}var o=0,a=-1,s=-1,c=0,v=0,g=e,y=null;t:for(;;){for(var C;g!==n||i!==0&&g.nodeType!==3||(a=o+i),g!==l||r!==0&&g.nodeType!==3||(s=o+r),g.nodeType===3&&(o+=g.nodeValue.length),(C=g.firstChild)!==null;)y=g,g=C;for(;;){if(g===e)break t;if(y===n&&++c===i&&(a=o),y===l&&++v===r&&(s=o),(C=g.nextSibling)!==null)break;g=y,y=g.parentNode}g=C}n=a===-1||s===-1?null:{start:a,end:s}}else n=null}n=n||{start:0,end:0}}else n=null;for(Ul={focusedElem:e,selectionRange:n},ri=!1,T=t;T!==null;)if(t=T,e=t.child,(t.subtreeFlags&1028)!==0&&e!==null)e.return=t,T=e;else for(;T!==null;){t=T;try{var S=t.alternate;if(t.flags&1024)switch(t.tag){case 0:case 11:case 15:break;case 1:if(S!==null){var E=S.memoizedProps,_=S.memoizedState,f=t.stateNode,p=f.getSnapshotBeforeUpdate(t.elementType===t.type?E:Be(t.type,E),_);f.__reactInternalSnapshotBeforeUpdate=p}break;case 3:var h=t.stateNode.containerInfo;h.nodeType===1?h.textContent="":h.nodeType===9&&h.documentElement&&h.removeChild(h.documentElement);break;case 5:case 6:case 4:case 17:break;default:throw Error(P(163))}}catch(k){G(t,t.return,k)}if(e=t.sibling,e!==null){e.return=t.return,T=e;break}T=t.return}return S=fs,fs=!1,S}function Vn(e,t,n){var r=t.updateQueue;if(r=r!==null?r.lastEffect:null,r!==null){var i=r=r.next;do{if((i.tag&e)===e){var l=i.destroy;i.destroy=void 0,l!==void 0&&no(t,n,l)}i=i.next}while(i!==r)}}function Ii(e,t){if(t=t.updateQueue,t=t!==null?t.lastEffect:null,t!==null){var n=t=t.next;do{if((n.tag&e)===e){var r=n.create;n.destroy=r()}n=n.next}while(n!==t)}}function ro(e){var t=e.ref;if(t!==null){var n=e.stateNode;switch(e.tag){case 5:e=n;break;default:e=n}typeof t=="function"?t(e):t.current=e}}function Ac(e){var t=e.alternate;t!==null&&(e.alternate=null,Ac(t)),e.child=null,e.deletions=null,e.sibling=null,e.tag===5&&(t=e.stateNode,t!==null&&(delete t[Ke],delete t[lr],delete t[$l],delete t[cf],delete t[df])),e.stateNode=null,e.return=null,e.dependencies=null,e.memoizedProps=null,e.memoizedState=null,e.pendingProps=null,e.stateNode=null,e.updateQueue=null}function zc(e){return e.tag===5||e.tag===3||e.tag===4}function hs(e){e:for(;;){for(;e.sibling===null;){if(e.return===null||zc(e.return))return null;e=e.return}for(e.sibling.return=e.return,e=e.sibling;e.tag!==5&&e.tag!==6&&e.tag!==18;){if(e.flags&2||e.child===null||e.tag===4)continue e;e.child.return=e,e=e.child}if(!(e.flags&2))return e.stateNode}}function io(e,t,n){var r=e.tag;if(r===5||r===6)e=e.stateNode,t?n.nodeType===8?n.parentNode.insertBefore(e,t):n.insertBefore(e,t):(n.nodeType===8?(t=n.parentNode,t.insertBefore(e,n)):(t=n,t.appendChild(e)),n=n._reactRootContainer,n!=null||t.onclick!==null||(t.onclick=oi));else if(r!==4&&(e=e.child,e!==null))for(io(e,t,n),e=e.sibling;e!==null;)io(e,t,n),e=e.sibling}function lo(e,t,n){var r=e.tag;if(r===5||r===6)e=e.stateNode,t?n.insertBefore(e,t):n.appendChild(e);else if(r!==4&&(e=e.child,e!==null))for(lo(e,t,n),e=e.sibling;e!==null;)lo(e,t,n),e=e.sibling}var se=null,Ue=!1;function at(e,t,n){for(n=n.child;n!==null;)Oc(e,t,n),n=n.sibling}function Oc(e,t,n){if(Qe&&typeof Qe.onCommitFiberUnmount=="function")try{Qe.onCommitFiberUnmount(Ei,n)}catch{}switch(n.tag){case 5:fe||an(n,t);case 6:var r=se,i=Ue;se=null,at(e,t,n),se=r,Ue=i,se!==null&&(Ue?(e=se,n=n.stateNode,e.nodeType===8?e.parentNode.removeChild(n):e.removeChild(n)):se.removeChild(n.stateNode));break;case 18:se!==null&&(Ue?(e=se,n=n.stateNode,e.nodeType===8?ll(e.parentNode,n):e.nodeType===1&&ll(e,n),er(e)):ll(se,n.stateNode));break;case 4:r=se,i=Ue,se=n.stateNode.containerInfo,Ue=!0,at(e,t,n),se=r,Ue=i;break;case 0:case 11:case 14:case 15:if(!fe&&(r=n.updateQueue,r!==null&&(r=r.lastEffect,r!==null))){i=r=r.next;do{var l=i,o=l.destroy;l=l.tag,o!==void 0&&(l&2||l&4)&&no(n,t,o),i=i.next}while(i!==r)}at(e,t,n);break;case 1:if(!fe&&(an(n,t),r=n.stateNode,typeof r.componentWillUnmount=="function"))try{r.props=n.memoizedProps,r.state=n.memoizedState,r.componentWillUnmount()}catch(a){G(n,t,a)}at(e,t,n);break;case 21:at(e,t,n);break;case 22:n.mode&1?(fe=(r=fe)||n.memoizedState!==null,at(e,t,n),fe=r):at(e,t,n);break;default:at(e,t,n)}}function ms(e){var t=e.updateQueue;if(t!==null){e.updateQueue=null;var n=e.stateNode;n===null&&(n=e.stateNode=new _f),t.forEach(function(r){var i=Ff.bind(null,e,r);n.has(r)||(n.add(r),r.then(i,i))})}}function De(e,t){var n=t.deletions;if(n!==null)for(var r=0;ri&&(i=o),r&=~l}if(r=i,r=Z()-r,r=(120>r?120:480>r?480:1080>r?1080:1920>r?1920:3e3>r?3e3:4320>r?4320:1960*Lf(r/1960))-r,10e?16:e,ft===null)var r=!1;else{if(e=ft,ft=null,wi=0,B&6)throw Error(P(331));var i=B;for(B|=4,T=e.current;T!==null;){var l=T,o=l.child;if(T.flags&16){var a=l.deletions;if(a!==null){for(var s=0;sZ()-qo?Ft(e,0):Zo|=n),Ce(e,t)}function Hc(e,t){t===0&&(e.mode&1?(t=Nr,Nr<<=1,!(Nr&130023424)&&(Nr=4194304)):t=1);var n=ge();e=it(e,t),e!==null&&(mr(e,t,n),Ce(e,n))}function Of(e){var t=e.memoizedState,n=0;t!==null&&(n=t.retryLane),Hc(e,n)}function Ff(e,t){var n=0;switch(e.tag){case 13:var r=e.stateNode,i=e.memoizedState;i!==null&&(n=i.retryLane);break;case 19:r=e.stateNode;break;default:throw Error(P(314))}r!==null&&r.delete(t),Hc(e,n)}var Wc;Wc=function(e,t,n){if(e!==null)if(e.memoizedProps!==t.pendingProps||ke.current)xe=!0;else{if(!(e.lanes&n)&&!(t.flags&128))return xe=!1,Ef(e,t,n);xe=!!(e.flags&131072)}else xe=!1,H&&t.flags&1048576&&Gu(t,ci,t.index);switch(t.lanes=0,t.tag){case 2:var r=t.type;Qr(e,t),e=t.pendingProps;var i=gn(t,he.current);fn(t,n),i=Vo(null,t,r,e,i,n);var l=Ko();return t.flags|=1,typeof i=="object"&&i!==null&&typeof i.render=="function"&&i.$$typeof===void 0?(t.tag=1,t.memoizedState=null,t.updateQueue=null,Se(r)?(l=!0,si(t)):l=!1,t.memoizedState=i.state!==null&&i.state!==void 0?i.state:null,bo(t),i.updater=Ri,t.stateNode=i,i._reactInternals=t,Gl(t,r,e,n),t=Zl(null,t,r,!0,l,n)):(t.tag=0,H&&l&&Ao(t),me(null,t,i,n),t=t.child),t;case 16:r=t.elementType;e:{switch(Qr(e,t),e=t.pendingProps,i=r._init,r=i(r._payload),t.type=r,i=t.tag=Bf(r),e=Be(r,e),i){case 0:t=Jl(null,t,r,e,n);break e;case 1:t=cs(null,t,r,e,n);break e;case 11:t=ss(null,t,r,e,n);break e;case 14:t=us(null,t,r,Be(r.type,e),n);break e}throw Error(P(306,r,""))}return t;case 0:return r=t.type,i=t.pendingProps,i=t.elementType===r?i:Be(r,i),Jl(e,t,r,i,n);case 1:return r=t.type,i=t.pendingProps,i=t.elementType===r?i:Be(r,i),cs(e,t,r,i,n);case 3:e:{if(Nc(t),e===null)throw Error(P(387));r=t.pendingProps,l=t.memoizedState,i=l.element,tc(e,t),fi(t,r,null,n);var o=t.memoizedState;if(r=o.element,l.isDehydrated)if(l={element:r,isDehydrated:!1,cache:o.cache,pendingSuspenseBoundaries:o.pendingSuspenseBoundaries,transitions:o.transitions},t.updateQueue.baseState=l,t.memoizedState=l,t.flags&256){i=xn(Error(P(423)),t),t=ds(e,t,r,n,i);break e}else if(r!==i){i=xn(Error(P(424)),t),t=ds(e,t,r,n,i);break e}else for(Pe=yt(t.stateNode.containerInfo.firstChild),_e=t,H=!0,be=null,n=qu(t,null,r,n),t.child=n;n;)n.flags=n.flags&-3|4096,n=n.sibling;else{if(vn(),r===i){t=lt(e,t,n);break e}me(e,t,r,n)}t=t.child}return t;case 5:return nc(t),e===null&&Vl(t),r=t.type,i=t.pendingProps,l=e!==null?e.memoizedProps:null,o=i.children,bl(r,i)?o=null:l!==null&&bl(r,l)&&(t.flags|=32),_c(e,t),me(e,t,o,n),t.child;case 6:return e===null&&Vl(t),null;case 13:return Tc(e,t,n);case 4:return Xo(t,t.stateNode.containerInfo),r=t.pendingProps,e===null?t.child=yn(t,null,r,n):me(e,t,r,n),t.child;case 11:return r=t.type,i=t.pendingProps,i=t.elementType===r?i:Be(r,i),ss(e,t,r,i,n);case 7:return me(e,t,t.pendingProps,n),t.child;case 8:return me(e,t,t.pendingProps.children,n),t.child;case 12:return me(e,t,t.pendingProps.children,n),t.child;case 10:e:{if(r=t.type._context,i=t.pendingProps,l=t.memoizedProps,o=i.value,b(di,r._currentValue),r._currentValue=o,l!==null)if(He(l.value,o)){if(l.children===i.children&&!ke.current){t=lt(e,t,n);break e}}else for(l=t.child,l!==null&&(l.return=t);l!==null;){var a=l.dependencies;if(a!==null){o=l.child;for(var s=a.firstContext;s!==null;){if(s.context===r){if(l.tag===1){s=tt(-1,n&-n),s.tag=2;var c=l.updateQueue;if(c!==null){c=c.shared;var v=c.pending;v===null?s.next=s:(s.next=v.next,v.next=s),c.pending=s}}l.lanes|=n,s=l.alternate,s!==null&&(s.lanes|=n),Kl(l.return,n,t),a.lanes|=n;break}s=s.next}}else if(l.tag===10)o=l.type===t.type?null:l.child;else if(l.tag===18){if(o=l.return,o===null)throw Error(P(341));o.lanes|=n,a=o.alternate,a!==null&&(a.lanes|=n),Kl(o,n,t),o=l.sibling}else o=l.child;if(o!==null)o.return=l;else for(o=l;o!==null;){if(o===t){o=null;break}if(l=o.sibling,l!==null){l.return=o.return,o=l;break}o=o.return}l=o}me(e,t,i.children,n),t=t.child}return t;case 9:return i=t.type,r=t.pendingProps.children,fn(t,n),i=ze(i),r=r(i),t.flags|=1,me(e,t,r,n),t.child;case 14:return r=t.type,i=Be(r,t.pendingProps),i=Be(r.type,i),us(e,t,r,i,n);case 15:return Pc(e,t,t.type,t.pendingProps,n);case 17:return r=t.type,i=t.pendingProps,i=t.elementType===r?i:Be(r,i),Qr(e,t),t.tag=1,Se(r)?(e=!0,si(t)):e=!1,fn(t,n),Sc(t,r,i),Gl(t,r,i,n),Zl(null,t,r,!0,e,n);case 19:return Lc(e,t,n);case 22:return jc(e,t,n)}throw Error(P(156,t.tag))};function Vc(e,t){return wu(e,t)}function Df(e,t,n,r){this.tag=e,this.key=n,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.ref=null,this.pendingProps=t,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=r,this.subtreeFlags=this.flags=0,this.deletions=null,this.childLanes=this.lanes=0,this.alternate=null}function Me(e,t,n,r){return new Df(e,t,n,r)}function ra(e){return e=e.prototype,!(!e||!e.isReactComponent)}function Bf(e){if(typeof e=="function")return ra(e)?1:0;if(e!=null){if(e=e.$$typeof,e===So)return 11;if(e===Co)return 14}return 2}function St(e,t){var n=e.alternate;return n===null?(n=Me(e.tag,t,e.key,e.mode),n.elementType=e.elementType,n.type=e.type,n.stateNode=e.stateNode,n.alternate=e,e.alternate=n):(n.pendingProps=t,n.type=e.type,n.flags=0,n.subtreeFlags=0,n.deletions=null),n.flags=e.flags&14680064,n.childLanes=e.childLanes,n.lanes=e.lanes,n.child=e.child,n.memoizedProps=e.memoizedProps,n.memoizedState=e.memoizedState,n.updateQueue=e.updateQueue,t=e.dependencies,n.dependencies=t===null?null:{lanes:t.lanes,firstContext:t.firstContext},n.sibling=e.sibling,n.index=e.index,n.ref=e.ref,n}function Jr(e,t,n,r,i,l){var o=2;if(r=e,typeof e=="function")ra(e)&&(o=1);else if(typeof e=="string")o=5;else e:switch(e){case Jt:return Dt(n.children,i,l,t);case ko:o=8,i|=8;break;case wl:return e=Me(12,n,t,i|2),e.elementType=wl,e.lanes=l,e;case xl:return e=Me(13,n,t,i),e.elementType=xl,e.lanes=l,e;case kl:return e=Me(19,n,t,i),e.elementType=kl,e.lanes=l,e;case nu:return Ai(n,i,l,t);default:if(typeof e=="object"&&e!==null)switch(e.$$typeof){case eu:o=10;break e;case tu:o=9;break e;case So:o=11;break e;case Co:o=14;break e;case st:o=16,r=null;break e}throw Error(P(130,e==null?e:typeof e,""))}return t=Me(o,n,t,i),t.elementType=e,t.type=r,t.lanes=l,t}function Dt(e,t,n,r){return e=Me(7,e,r,t),e.lanes=n,e}function Ai(e,t,n,r){return e=Me(22,e,r,t),e.elementType=nu,e.lanes=n,e.stateNode={isHidden:!1},e}function fl(e,t,n){return e=Me(6,e,null,t),e.lanes=n,e}function hl(e,t,n){return t=Me(4,e.children!==null?e.children:[],e.key,t),t.lanes=n,t.stateNode={containerInfo:e.containerInfo,pendingChildren:null,implementation:e.implementation},t}function Uf(e,t,n,r,i){this.tag=t,this.containerInfo=e,this.finishedWork=this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=-1,this.callbackNode=this.pendingContext=this.context=null,this.callbackPriority=0,this.eventTimes=Qi(0),this.expirationTimes=Qi(-1),this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=Qi(0),this.identifierPrefix=r,this.onRecoverableError=i,this.mutableSourceEagerHydrationData=null}function ia(e,t,n,r,i,l,o,a,s){return e=new Uf(e,t,n,a,s),t===1?(t=1,l===!0&&(t|=8)):t=0,l=Me(3,null,null,t),e.current=l,l.stateNode=e,l.memoizedState={element:r,isDehydrated:n,cache:null,transitions:null,pendingSuspenseBoundaries:null},bo(l),e}function bf(e,t,n){var r=3"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(Yc)}catch(e){console.error(e)}}Yc(),Ys.exports=Te;var Vf=Ys.exports,Cs=Vf;vl.createRoot=Cs.createRoot,vl.hydrateRoot=Cs.hydrateRoot;/** + * @remix-run/router v1.23.4 + * + * Copyright (c) Remix Software Inc. + * + * This source code is licensed under the MIT license found in the + * LICENSE.md file in the root directory of this source tree. + * + * @license MIT + */function pr(){return pr=Object.assign?Object.assign.bind():function(e){for(var t=1;t"u")throw new Error(t)}function sa(e,t){if(!e){typeof console<"u"&&console.warn(t);try{throw new Error(t)}catch{}}}function Qf(){return Math.random().toString(36).substr(2,8)}function Ps(e,t){return{usr:e.state,key:e.key,idx:t}}function co(e,t,n,r){return n===void 0&&(n=null),pr({pathname:typeof e=="string"?e:e.pathname,search:"",hash:""},typeof t=="string"?Vt(t):t,{state:n,key:t&&t.key||r||Qf()})}function Si(e){let{pathname:t="/",search:n="",hash:r=""}=e;return n&&n!=="?"&&(t+=n.charAt(0)==="?"?n:"?"+n),r&&r!=="#"&&(t+=r.charAt(0)==="#"?r:"#"+r),t}function Vt(e){let t={};if(e){let n=e.indexOf("#");n>=0&&(t.hash=e.substr(n),e=e.substr(0,n));let r=e.indexOf("?");r>=0&&(t.search=e.substr(r),e=e.substr(0,r)),e&&(t.pathname=e)}return t}function Gf(e,t,n,r){r===void 0&&(r={});let{window:i=document.defaultView,v5Compat:l=!1}=r,o=i.history,a=ht.Pop,s=null,c=v();c==null&&(c=0,o.replaceState(pr({},o.state,{idx:c}),""));function v(){return(o.state||{idx:null}).idx}function g(){a=ht.Pop;let _=v(),f=_==null?null:_-c;c=_,s&&s({action:a,location:E.location,delta:f})}function y(_,f){a=ht.Push;let p=co(E.location,_,f);n&&n(p,_),c=v()+1;let h=Ps(p,c),k=E.createHref(p);try{o.pushState(h,"",k)}catch(N){if(N instanceof DOMException&&N.name==="DataCloneError")throw N;i.location.assign(k)}l&&s&&s({action:a,location:E.location,delta:1})}function C(_,f){a=ht.Replace;let p=co(E.location,_,f);n&&n(p,_),c=v();let h=Ps(p,c),k=E.createHref(p);o.replaceState(h,"",k),l&&s&&s({action:a,location:E.location,delta:0})}function S(_){let f=i.location.origin!=="null"?i.location.origin:i.location.href,p=typeof _=="string"?_:Si(_);return p=p.replace(/ $/,"%20"),ee(f,"No window.location.(origin|href) available to create URL for href: "+p),new URL(p,f)}let E={get action(){return a},get location(){return e(i,o)},listen(_){if(s)throw new Error("A history only accepts one active listener");return i.addEventListener(Es,g),s=_,()=>{i.removeEventListener(Es,g),s=null}},createHref(_){return t(i,_)},createURL:S,encodeLocation(_){let f=S(_);return{pathname:f.pathname,search:f.search,hash:f.hash}},push:y,replace:C,go(_){return o.go(_)}};return E}var js;(function(e){e.data="data",e.deferred="deferred",e.redirect="redirect",e.error="error"})(js||(js={}));function Yf(e,t,n){return n===void 0&&(n="/"),Jf(e,t,n)}function Jf(e,t,n,r){let i=typeof t=="string"?Vt(t):t,l=ua(i.pathname||"/",n);if(l==null)return null;let o=Jc(e);Zf(o);let a=null,s=ch(l);for(let c=0;a==null&&c{let s={relativePath:a===void 0?l.path||"":a,caseSensitive:l.caseSensitive===!0,childrenIndex:o,route:l};s.relativePath.startsWith("/")&&(ee(s.relativePath.startsWith(r),'Absolute route path "'+s.relativePath+'" nested under path '+('"'+r+'" is not valid. An absolute child route path ')+"must start with the combined path of all its parent routes."),s.relativePath=s.relativePath.slice(r.length));let c=Ct([r,s.relativePath]),v=n.concat(s);l.children&&l.children.length>0&&(ee(l.index!==!0,"Index routes must not have child routes. Please remove "+('all child routes from route path "'+c+'".')),Jc(l.children,t,v,c)),!(l.path==null&&!l.index)&&t.push({path:c,score:lh(c,l.index),routesMeta:v})};return e.forEach((l,o)=>{var a;if(l.path===""||!((a=l.path)!=null&&a.includes("?")))i(l,o);else for(let s of Zc(l.path))i(l,o,s)}),t}function Zc(e){let t=e.split("/");if(t.length===0)return[];let[n,...r]=t,i=n.endsWith("?"),l=n.replace(/\?$/,"");if(r.length===0)return i?[l,""]:[l];let o=Zc(r.join("/")),a=[];return a.push(...o.map(s=>s===""?l:[l,s].join("/"))),i&&a.push(...o),a.map(s=>e.startsWith("/")&&s===""?"/":s)}function Zf(e){e.sort((t,n)=>t.score!==n.score?n.score-t.score:oh(t.routesMeta.map(r=>r.childrenIndex),n.routesMeta.map(r=>r.childrenIndex)))}const qf=/^:[\w-]+$/,eh=3,th=2,nh=1,rh=10,ih=-2,_s=e=>e==="*";function lh(e,t){let n=e.split("/"),r=n.length;return n.some(_s)&&(r+=ih),t&&(r+=th),n.filter(i=>!_s(i)).reduce((i,l)=>i+(qf.test(l)?eh:l===""?nh:rh),r)}function oh(e,t){return e.length===t.length&&e.slice(0,-1).every((r,i)=>r===t[i])?e[e.length-1]-t[t.length-1]:0}function ah(e,t,n){let{routesMeta:r}=e,i={},l="/",o=[];for(let a=0;a{let{paramName:y,isOptional:C}=v;if(y==="*"){let E=a[g]||"";o=l.slice(0,l.length-E.length).replace(/(.)\/+$/,"$1")}const S=a[g];return C&&!S?c[y]=void 0:c[y]=(S||"").replace(/%2F/g,"/"),c},{}),pathname:l,pathnameBase:o,pattern:e}}function uh(e,t,n){t===void 0&&(t=!1),n===void 0&&(n=!0),sa(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 r=[],i="^"+e.replace(/\/*\*?$/,"").replace(/^\/*/,"/").replace(/[\\.*+^${}|()[\]]/g,"\\$&").replace(/\/:([\w-]+)(\?)?/g,(o,a,s)=>(r.push({paramName:a,isOptional:s!=null}),s?"/?([^\\/]+)?":"/([^\\/]+)"));return e.endsWith("*")?(r.push({paramName:"*"}),i+=e==="*"||e==="/*"?"(.*)$":"(?:\\/(.+)|\\/*)$"):n?i+="\\/*$":e!==""&&e!=="/"&&(i+="(?:(?=\\/|$))"),[new RegExp(i,t?void 0:"i"),r]}function ch(e){try{return e.split("/").map(t=>decodeURIComponent(t).replace(/\//g,"%2F")).join("/")}catch(t){return sa(!1,'The URL path "'+e+'" could not be decoded because it is is a malformed URL segment. This is probably due to a bad percent '+("encoding ("+t+").")),e}}function ua(e,t){if(t==="/")return e;if(!e.toLowerCase().startsWith(t.toLowerCase()))return null;let n=t.endsWith("/")?t.length-1:t.length,r=e.charAt(n);return r&&r!=="/"?null:e.slice(n)||"/"}function dh(e,t){t===void 0&&(t="/");let{pathname:n,search:r="",hash:i=""}=typeof e=="string"?Vt(e):e,l;return n?(n=td(n),n.startsWith("/")?l=Ns(n.substring(1),"/"):l=Ns(n,t)):l=t,{pathname:l,search:hh(r),hash:mh(i)}}function Ns(e,t){let n=t.replace(/\/+$/,"").split("/");return e.split("/").forEach(i=>{i===".."?n.length>1&&n.pop():i!=="."&&n.push(i)}),n.length>1?n.join("/"):"/"}function ml(e,t,n,r){return"Cannot include a '"+e+"' character in a manually specified "+("`to."+t+"` field ["+JSON.stringify(r)+"]. Please separate it out to the ")+("`to."+n+"` field. Alternatively you may provide the full path as ")+'a string in and the router will parse it for you.'}function ph(e){return e.filter((t,n)=>n===0||t.route.path&&t.route.path.length>0)}function qc(e,t){let n=ph(e);return t?n.map((r,i)=>i===n.length-1?r.pathname:r.pathnameBase):n.map(r=>r.pathnameBase)}function ed(e,t,n,r){r===void 0&&(r=!1);let i;typeof e=="string"?i=Vt(e):(i=pr({},e),ee(!i.pathname||!i.pathname.includes("?"),ml("?","pathname","search",i)),ee(!i.pathname||!i.pathname.includes("#"),ml("#","pathname","hash",i)),ee(!i.search||!i.search.includes("#"),ml("#","search","hash",i)));let l=e===""||i.pathname==="",o=l?"/":i.pathname,a;if(o==null)a=n;else{let g=t.length-1;if(!r&&o.startsWith("..")){let y=o.split("/");for(;y[0]==="..";)y.shift(),g-=1;i.pathname=y.join("/")}a=g>=0?t[g]:"/"}let s=dh(i,a),c=o&&o!=="/"&&o.endsWith("/"),v=(l||o===".")&&n.endsWith("/");return!s.pathname.endsWith("/")&&(c||v)&&(s.pathname+="/"),s}const td=e=>e.replace(/\/\/+/g,"/"),Ct=e=>td(e.join("/")),fh=e=>e.replace(/\/+$/,"").replace(/^\/*/,"/"),hh=e=>!e||e==="?"?"":e.startsWith("?")?e:"?"+e,mh=e=>!e||e==="#"?"":e.startsWith("#")?e:"#"+e;function gh(e){return e!=null&&typeof e.status=="number"&&typeof e.statusText=="string"&&typeof e.internal=="boolean"&&"data"in e}const nd=["post","put","patch","delete"];new Set(nd);const vh=["get",...nd];new Set(vh);/** + * React Router v6.30.6 + * + * Copyright (c) Remix Software Inc. + * + * This source code is licensed under the MIT license found in the + * LICENSE.md file in the root directory of this source tree. + * + * @license MIT + */function fr(){return fr=Object.assign?Object.assign.bind():function(e){for(var t=1;t{a.current=!0}),j.useCallback(function(c,v){if(v===void 0&&(v={}),!a.current)return;if(typeof c=="number"){r.go(c);return}let g=ed(c,JSON.parse(o),l,v.relative==="path");e==null&&t!=="/"&&(g.pathname=g.pathname==="/"?t:Ct([t,g.pathname])),(v.replace?r.replace:r.push)(g,v.state,v)},[t,r,o,l,e])}function ld(){let{matches:e}=j.useContext(Tt),t=e[e.length-1];return t?t.params:{}}function od(e,t){let{relative:n}=t===void 0?{}:t,{future:r}=j.useContext(Kt),{matches:i}=j.useContext(Tt),{pathname:l}=Pn(),o=JSON.stringify(qc(i,r.v7_relativeSplatPath));return j.useMemo(()=>ed(e,JSON.parse(o),l,n==="path"),[e,o,l,n])}function Sh(e,t){return Ch(e,t)}function Ch(e,t,n,r){wr()||ee(!1);let{navigator:i}=j.useContext(Kt),{matches:l}=j.useContext(Tt),o=l[l.length-1],a=o?o.params:{};o&&o.pathname;let s=o?o.pathnameBase:"/";o&&o.route;let c=Pn(),v;if(t){var g;let _=typeof t=="string"?Vt(t):t;s==="/"||(g=_.pathname)!=null&&g.startsWith(s)||ee(!1),v=_}else v=c;let y=v.pathname||"/",C=y;if(s!=="/"){let _=s.replace(/^\//,"").split("/");C="/"+y.replace(/^\//,"").split("/").slice(_.length).join("/")}let S=Yf(e,{pathname:C}),E=Nh(S&&S.map(_=>Object.assign({},_,{params:Object.assign({},a,_.params),pathname:Ct([s,i.encodeLocation?i.encodeLocation(_.pathname).pathname:_.pathname]),pathnameBase:_.pathnameBase==="/"?s:Ct([s,i.encodeLocation?i.encodeLocation(_.pathnameBase).pathname:_.pathnameBase])})),l,n,r);return t&&E?j.createElement(Bi.Provider,{value:{location:fr({pathname:"/",search:"",hash:"",state:null,key:"default"},v),navigationType:ht.Pop}},E):E}function Eh(){let e=Ih(),t=gh(e)?e.status+" "+e.statusText:e instanceof Error?e.message:JSON.stringify(e),n=e instanceof Error?e.stack:null,i={padding:"0.5rem",backgroundColor:"rgba(200,200,200, 0.5)"};return j.createElement(j.Fragment,null,j.createElement("h2",null,"Unexpected Application Error!"),j.createElement("h3",{style:{fontStyle:"italic"}},t),n?j.createElement("pre",{style:i},n):null,null)}const Ph=j.createElement(Eh,null);class jh extends j.Component{constructor(t){super(t),this.state={location:t.location,revalidation:t.revalidation,error:t.error}}static getDerivedStateFromError(t){return{error:t}}static getDerivedStateFromProps(t,n){return n.location!==t.location||n.revalidation!=="idle"&&t.revalidation==="idle"?{error:t.error,location:t.location,revalidation:t.revalidation}:{error:t.error!==void 0?t.error:n.error,location:n.location,revalidation:t.revalidation||n.revalidation}}componentDidCatch(t,n){console.error("React Router caught the following error during render",t,n)}render(){return this.state.error!==void 0?j.createElement(Tt.Provider,{value:this.props.routeContext},j.createElement(rd.Provider,{value:this.state.error,children:this.props.component})):this.props.children}}function _h(e){let{routeContext:t,match:n,children:r}=e,i=j.useContext(ca);return i&&i.static&&i.staticContext&&(n.route.errorElement||n.route.ErrorBoundary)&&(i.staticContext._deepestRenderedBoundaryId=n.route.id),j.createElement(Tt.Provider,{value:t},r)}function Nh(e,t,n,r){var i;if(t===void 0&&(t=[]),n===void 0&&(n=null),r===void 0&&(r=null),e==null){var l;if(!n)return null;if(n.errors)e=n.matches;else if((l=r)!=null&&l.v7_partialHydration&&t.length===0&&!n.initialized&&n.matches.length>0)e=n.matches;else return null}let o=e,a=(i=n)==null?void 0:i.errors;if(a!=null){let v=o.findIndex(g=>g.route.id&&(a==null?void 0:a[g.route.id])!==void 0);v>=0||ee(!1),o=o.slice(0,Math.min(o.length,v+1))}let s=!1,c=-1;if(n&&r&&r.v7_partialHydration)for(let v=0;v=0?o=o.slice(0,c+1):o=[o[0]];break}}}return o.reduceRight((v,g,y)=>{let C,S=!1,E=null,_=null;n&&(C=a&&g.route.id?a[g.route.id]:void 0,E=g.route.errorElement||Ph,s&&(c<0&&y===0?(Ah("route-fallback"),S=!0,_=null):c===y&&(S=!0,_=g.route.hydrateFallbackElement||null)));let f=t.concat(o.slice(0,y+1)),p=()=>{let h;return C?h=E:S?h=_:g.route.Component?h=j.createElement(g.route.Component,null):g.route.element?h=g.route.element:h=v,j.createElement(_h,{match:g,routeContext:{outlet:v,matches:f,isDataRoute:n!=null},children:h})};return n&&(g.route.ErrorBoundary||g.route.errorElement||y===0)?j.createElement(jh,{location:n.location,revalidation:n.revalidation,component:E,error:C,children:p(),routeContext:{outlet:null,matches:f,isDataRoute:!0}}):p()},null)}var ad=function(e){return e.UseBlocker="useBlocker",e.UseRevalidator="useRevalidator",e.UseNavigateStable="useNavigate",e}(ad||{}),sd=function(e){return e.UseBlocker="useBlocker",e.UseLoaderData="useLoaderData",e.UseActionData="useActionData",e.UseRouteError="useRouteError",e.UseNavigation="useNavigation",e.UseRouteLoaderData="useRouteLoaderData",e.UseMatches="useMatches",e.UseRevalidator="useRevalidator",e.UseNavigateStable="useNavigate",e.UseRouteId="useRouteId",e}(sd||{});function Th(e){let t=j.useContext(ca);return t||ee(!1),t}function Lh(e){let t=j.useContext(yh);return t||ee(!1),t}function Rh(e){let t=j.useContext(Tt);return t||ee(!1),t}function ud(e){let t=Rh(),n=t.matches[t.matches.length-1];return n.route.id||ee(!1),n.route.id}function Ih(){var e;let t=j.useContext(rd),n=Lh(),r=ud();return t!==void 0?t:(e=n.errors)==null?void 0:e[r]}function Mh(){let{router:e}=Th(ad.UseNavigateStable),t=ud(sd.UseNavigateStable),n=j.useRef(!1);return id(()=>{n.current=!0}),j.useCallback(function(i,l){l===void 0&&(l={}),n.current&&(typeof i=="number"?e.navigate(i):e.navigate(i,fr({fromRouteId:t},l)))},[e,t])}const Ts={};function Ah(e,t,n){Ts[e]||(Ts[e]=!0)}function zh(e,t){e==null||e.v7_startTransition,e==null||e.v7_relativeSplatPath}function Gt(e){ee(!1)}function Oh(e){let{basename:t="/",children:n=null,location:r,navigationType:i=ht.Pop,navigator:l,static:o=!1,future:a}=e;wr()&&ee(!1);let s=t.replace(/^\/*/,"/"),c=j.useMemo(()=>({basename:s,navigator:l,static:o,future:fr({v7_relativeSplatPath:!1},a)}),[s,a,l,o]);typeof r=="string"&&(r=Vt(r));let{pathname:v="/",search:g="",hash:y="",state:C=null,key:S="default"}=r,E=j.useMemo(()=>{let _=ua(v,s);return _==null?null:{location:{pathname:_,search:g,hash:y,state:C,key:S},navigationType:i}},[s,v,g,y,C,S,i]);return E==null?null:j.createElement(Kt.Provider,{value:c},j.createElement(Bi.Provider,{children:n,value:E}))}function Fh(e){let{children:t,location:n}=e;return Sh(po(t),n)}new Promise(()=>{});function po(e,t){t===void 0&&(t=[]);let n=[];return j.Children.forEach(e,(r,i)=>{if(!j.isValidElement(r))return;let l=[...t,i];if(r.type===j.Fragment){n.push.apply(n,po(r.props.children,l));return}r.type!==Gt&&ee(!1),!r.props.index||!r.props.children||ee(!1);let o={id:r.props.id||l.join("-"),caseSensitive:r.props.caseSensitive,element:r.props.element,Component:r.props.Component,index:r.props.index,path:r.props.path,loader:r.props.loader,action:r.props.action,errorElement:r.props.errorElement,ErrorBoundary:r.props.ErrorBoundary,hasErrorBoundary:r.props.ErrorBoundary!=null||r.props.errorElement!=null,shouldRevalidate:r.props.shouldRevalidate,handle:r.props.handle,lazy:r.props.lazy};r.props.children&&(o.children=po(r.props.children,l)),n.push(o)}),n}/** + * React Router DOM v6.30.6 + * + * Copyright (c) Remix Software Inc. + * + * This source code is licensed under the MIT license found in the + * LICENSE.md file in the root directory of this source tree. + * + * @license MIT + */function fo(){return fo=Object.assign?Object.assign.bind():function(e){for(var t=1;t{c&&Ls?Ls(()=>s(g)):s(g)},[s,c]);return j.useLayoutEffect(()=>o.listen(v),[o,v]),j.useEffect(()=>zh(r),[r]),j.createElement(Oh,{basename:t,children:n,location:a.location,navigationType:a.action,navigator:o,future:r})}const Wh=typeof window<"u"&&typeof window.document<"u"&&typeof window.document.createElement<"u",Vh=/^(?:[a-z][a-z0-9+.-]*:|\/\/)/i,je=j.forwardRef(function(t,n){let{onClick:r,relative:i,reloadDocument:l,replace:o,state:a,target:s,to:c,preventScrollReset:v,viewTransition:g}=t,y=Dh(t,bh),{basename:C}=j.useContext(Kt),S,E=!1;if(typeof c=="string"&&Vh.test(c)&&(S=c,Wh))try{let h=new URL(window.location.href),k=c.startsWith("//")?new URL(h.protocol+c):new URL(c),N=ua(k.pathname,C);k.origin===h.origin&&N!=null?c=N+k.search+k.hash:E=!0}catch{}let _=wh(c,{relative:i}),f=Kh(c,{replace:o,state:a,target:s,preventScrollReset:v,relative:i,viewTransition:g});function p(h){r&&r(h),h.defaultPrevented||f(h)}return j.createElement("a",fo({},y,{href:S||_,onClick:E||l?r:p,ref:n,target:s}))});var Rs;(function(e){e.UseScrollRestoration="useScrollRestoration",e.UseSubmit="useSubmit",e.UseSubmitFetcher="useSubmitFetcher",e.UseFetcher="useFetcher",e.useViewTransitionState="useViewTransitionState"})(Rs||(Rs={}));var Is;(function(e){e.UseFetcher="useFetcher",e.UseFetchers="useFetchers",e.UseScrollRestoration="useScrollRestoration"})(Is||(Is={}));function Kh(e,t){let{target:n,replace:r,state:i,preventScrollReset:l,relative:o,viewTransition:a}=t===void 0?{}:t,s=xh(),c=Pn(),v=od(e,{relative:o});return j.useCallback(g=>{if(Uh(g,n)){g.preventDefault();let y=r!==void 0?r:Si(c)===Si(v);s(e,{replace:y,state:i,preventScrollReset:l,relative:o,viewTransition:a})}},[c,s,v,r,i,n,e,l,o,a])}const cd="nexora.lang",Ms={en:{tagline:"Leading the human-centric agentic era",siteTitle:"Nexora // Archive",admin:"Admin",copyright:"© 2026 Nexora. All rights reserved.",language:"Language",subPages:"Sub-pages",notFound:"Not found",backHome:"Back to home",home:"home",services:"Services",projects:"Decoupled products",team:"The team",endpoints:"Endpoints",live:"live",models:"Models",datasets:"Datasets",spaces:"Spaces",downloads:"downloads",likes:"likes",gists:"Gists",repositories:"repositories",adminLede:"Internal authentication, content management, and operational tooling will live here.",notImplemented:"Not yet implemented",adminDetail:"This surface will host GitHub sign-in, public-page content management, and the API operations dashboard. It remains a placeholder until that work is scoped.",resourceKindService:"service",resourceKindProject:"project",object:"Object",pricing:"Pricing strategy",objectBrief:"Object brief",openObject:"Open object",openDetail:"Open detail",expand:"Expand",collapse:"Collapse"},cn:{tagline:"以人为主体的智能体时代",siteTitle:"Nexora // 档案",admin:"管理",copyright:"© 2026 Nexora · 保留所有权利",language:"语言",subPages:"子页面",notFound:"未找到页面",backHome:"返回首页",home:"首页",services:"服务",projects:"独立产品",team:"团队",endpoints:"接口端点",live:"实时",models:"模型",datasets:"数据集",spaces:"空间",downloads:"下载量",likes:"喜欢",gists:"代码片段",repositories:"仓库",adminLede:"内部认证、内容管理与运营工具将在这里提供。",notImplemented:"暂未实现",adminDetail:"这里将提供 GitHub 登录、公开页面内容管理和 API 运营看板。在明确范围前,该页面仅作为占位入口。",resourceKindService:"服务",resourceKindProject:"项目",object:"对象",pricing:"定价策略",objectBrief:"对象概览",openObject:"打开对象",openDetail:"打开详情",expand:"展开",collapse:"收起"}},dd=j.createContext(null);function Qh(){const e=localStorage.getItem(cd);return e==="cn"||e==="en"?e:"en"}function Gh({children:e}){const[t,n]=j.useState(Qh);j.useEffect(()=>{localStorage.setItem(cd,t),document.documentElement.lang=t==="cn"?"zh-CN":"en",document.title=Ms[t].siteTitle},[t]);const r=j.useMemo(()=>({lang:t,setLang:n,ui:Ms[t]}),[t]);return d.jsx(dd.Provider,{value:r,children:e})}function W(){const e=j.useContext(dd);if(!e)throw new Error("useLanguage must be used inside LanguageProvider");return e}function Yh(){const{lang:e,setLang:t,ui:n}=W(),r=Pn();return d.jsxs(d.Fragment,{children:[d.jsxs("div",{className:"frame-top",children:[d.jsxs(je,{to:"/",className:"brand-link",children:[d.jsx("div",{className:"sys-title",children:"Nexora"}),d.jsx("div",{className:"sys-subtitle",children:n.tagline})]}),d.jsxs("div",{className:"sys-meta-right",children:[d.jsxs("div",{className:"lang-picker",role:"group","aria-label":n.language,children:[d.jsx("button",{type:"button",className:`lang-btn ${e==="en"?"is-active":""}`,onClick:()=>t("en"),"aria-pressed":e==="en","aria-label":"English",children:"EN"}),d.jsx("span",{className:"lang-sep",children:"/"}),d.jsx("button",{type:"button",className:`lang-btn ${e==="cn"?"is-active":""}`,onClick:()=>t("cn"),"aria-pressed":e==="cn","aria-label":"中文",children:"CN"})]}),d.jsx(je,{to:`/admin?from=${encodeURIComponent(r.pathname)}`,className:"admin-btn","aria-label":n.admin,children:n.admin})]})]}),d.jsxs("div",{className:"frame-bottom",children:[d.jsx("div",{className:"branding",children:n.copyright}),d.jsx("div",{className:"dot-signature",children:"•"})]})]})}const Jh=` + attribute vec4 aVertexPosition; + varying vec2 vUv; + void main() { + gl_Position = aVertexPosition; + vUv = aVertexPosition.xy * 0.5 + 0.5; + } +`,Zh=` + precision highp float; + varying vec2 vUv; + uniform float uTime; + uniform vec2 uResolution; + uniform vec2 uMouse; + + vec3 colorA = vec3(0.91, 0.36, 0.02); + vec3 colorB = vec3(0.91, 0.77, 0.42); + vec3 colorC = vec3(0.66, 0.85, 0.86); + vec3 colorD = vec3(0.16, 0.62, 0.56); + vec3 colorE = vec3(0.11, 0.21, 0.34); + + float random(vec2 st) { + return fract(sin(dot(st.xy, vec2(12.9898,78.233))) * 43758.5453123); + } + + vec3 mod289(vec3 x) { return x - floor(x * (1.0 / 289.0)) * 289.0; } + vec2 mod289(vec2 x) { return x - floor(x * (1.0 / 289.0)) * 289.0; } + vec3 permute(vec3 x) { return mod289(((x*34.0)+1.0)*x); } + + float snoise(vec2 v) { + const vec4 C = vec4(0.211324865405187, 0.366025403784439, -0.577350269189626, 0.024390243902439); + vec2 i = floor(v + dot(v, C.yy) ); + vec2 x0 = v - i + dot(i, C.xx); + vec2 i1; + i1 = (x0.x > x0.y) ? vec2(1.0, 0.0) : vec2(0.0, 1.0); + vec4 x12 = x0.xyxy + C.xxzz; + x12.xy -= i1; + i = mod289(i); + vec3 p = permute( permute( i.y + vec3(0.0, i1.y, 1.0 )) + i.x + vec3(0.0, i1.x, 1.0 )); + vec3 m = max(0.5 - vec3(dot(x0,x0), dot(x12.xy,x12.xy), dot(x12.zw,x12.zw)), 0.0); + m = m*m; + m = m*m; + vec3 x = 2.0 * fract(p * C.www) - 1.0; + vec3 h = abs(x) - 0.5; + vec3 ox = floor(x + 0.5); + vec3 a0 = x - ox; + m *= 1.79284291400159 - 0.85373472095314 * ( a0*a0 + h*h ); + vec3 g; + g.x = a0.x * x0.x + h.x * x0.y; + g.yz = a0.yz * x12.xz + h.yz * x12.yw; + return 130.0 * dot(m, g); + } + + void main() { + vec2 st = gl_FragCoord.xy / uResolution.xy; + st.x *= uResolution.x / uResolution.y; + + vec2 mouseOffset = (uMouse / uResolution) * 0.2; + st += mouseOffset * 0.5; + + float n1 = snoise(st * 1.5 + uTime * 0.1); + float n2 = snoise(st * 2.0 - uTime * 0.15 + n1); + + vec2 warpedSt = st + vec2(n1, n2) * 0.4; + + float d1 = length(warpedSt - vec2(0.2, 0.8)); + float d2 = length(warpedSt - vec2(0.8, 0.2)); + float d3 = length(warpedSt - vec2(0.5, 0.5)); + + vec3 finalColor = mix(colorA, colorB, smoothstep(0.0, 1.2, d1)); + finalColor = mix(finalColor, colorC, smoothstep(0.2, 1.5, d3)); + finalColor = mix(finalColor, colorE, smoothstep(0.4, 2.0, d2)); + + float cyanPop = snoise(st * 3.0 + uTime * 0.05); + finalColor = mix(finalColor, colorD, smoothstep(0.5, 1.0, cyanPop) * 0.5); + + float grain = random(vUv * (uTime * 0.001 + 100.0)); + float grainStrength = 0.18; + vec3 grainyColor = finalColor + (grain - 0.5) * grainStrength; + + gl_FragColor = vec4(grainyColor, 1.0); + } +`;function As(e,t,n){const r=e.createShader(t);return r?(e.shaderSource(r,n),e.compileShader(r),e.getShaderParameter(r,e.COMPILE_STATUS)?r:(console.error("Shader compile error:",e.getShaderInfoLog(r)),e.deleteShader(r),null)):null}function qh(e){const t=As(e,e.VERTEX_SHADER,Jh),n=As(e,e.FRAGMENT_SHADER,Zh);if(!t||!n)return null;const r=e.createProgram();return r?(e.attachShader(r,t),e.attachShader(r,n),e.linkProgram(r),e.getProgramParameter(r,e.LINK_STATUS)?r:(console.error("Program link error:",e.getProgramInfoLog(r)),null)):null}function em(){const e=j.useRef(null);return j.useEffect(()=>{const t=e.current;if(!t)return;const n=t.getContext("webgl");if(!n){console.error("WebGL not supported");return}const r=qh(n);if(!r)return;const i={vertexPosition:n.getAttribLocation(r,"aVertexPosition")},l={uTime:n.getUniformLocation(r,"uTime"),uResolution:n.getUniformLocation(r,"uResolution"),uMouse:n.getUniformLocation(r,"uMouse")},o=n.createBuffer();n.bindBuffer(n.ARRAY_BUFFER,o);const a=new Float32Array([1,1,-1,1,1,-1,-1,-1]);n.bufferData(n.ARRAY_BUFFER,a,n.STATIC_DRAW);let s=0,c=0;const v=S=>{s=S.clientX,c=window.innerHeight-S.clientY};window.addEventListener("mousemove",v);const g=()=>{const S=Math.min(window.devicePixelRatio||1,2),E=Math.max(t.clientWidth,document.documentElement.clientWidth),_=Math.max(t.clientHeight,document.documentElement.scrollHeight),f=Math.floor(E*S),p=Math.floor(_*S);return(t.width!==f||t.height!==p)&&(t.width=f,t.height=p),{w:E,h:_}};g(),window.addEventListener("resize",g);let y=0;const C=S=>{S*=.001,g(),n.viewport(0,0,t.width,t.height),n.useProgram(r),n.bindBuffer(n.ARRAY_BUFFER,o),n.vertexAttribPointer(i.vertexPosition,2,n.FLOAT,!1,0,0),n.enableVertexAttribArray(i.vertexPosition),n.uniform1f(l.uTime,S),n.uniform2f(l.uResolution,t.width,t.height),n.uniform2f(l.uMouse,s,c),n.drawArrays(n.TRIANGLE_STRIP,0,4),y=requestAnimationFrame(C)};return y=requestAnimationFrame(C),()=>{cancelAnimationFrame(y),window.removeEventListener("mousemove",v),window.removeEventListener("resize",g),n.deleteProgram(r),n.deleteBuffer(o)}},[]),d.jsx("canvas",{id:"glcanvas",ref:e})}const m=(e,t)=>({en:e,cn:t}),A=(e,t)=>e[t],tm={id:"standalone",title:m("Decoupled","独立产品"),path:"/category/product/standalone",navigationTagline:m("Apps and the open source that backs them.","应用,以及支撑它们的开源项目。"),tagline:m("Apps that ship, and the open source that backs them.","正在交付的应用,以及支撑它们的开源项目。"),blocks:[{kind:"panor_projects"}]},nm={id:"designs",title:m("Designs","设计"),path:"/category/product/designs",navigationTagline:m("Visual + interaction system. Tokens, components, motion.","视觉与交互系统:设计令牌、组件与动效。"),tagline:m("Visual + interaction system. Tokens, components, motion.","视觉与交互系统:设计令牌、组件与动效。"),blocks:[{kind:"specs",items:[m("Color: deep orange → yellow → cyan → teal → navy (WebGL gradient)","色彩:深橙 → 黄色 → 青色 → 蓝绿 → 海军蓝(WebGL 渐变)"),m("Type: Inter 400/500 + JetBrains Mono 400/500","字体:Inter 400/500 + JetBrains Mono 400/500"),m("Line weight: 1px solid #000","线条:1px 实线 #000"),m("Motion: 0.85s cubic-bezier(0.2, 1, 0.2, 1)","动效:0.85 秒 cubic-bezier(0.2, 1, 0.2, 1)"),m("Grain: 0.18 (fragment shader)","颗粒:0.18(片元着色器)")]}]},rm={id:"services",title:m("Services","服务"),path:"/category/product/services",navigationTagline:m("Deployment, transformation, research, and AI product delivery.","部署、转型、研究与 AI 产品交付。"),tagline:m("Deployment, transformation, research, and AI product delivery.","部署��转型、研究与 AI 产品交付。"),blocks:[]},im={id:"solutions",title:m("Solutions","解决方案"),path:"/category/product/solutions",navigationTagline:m("Applied AI for industry. Pilots to deployment.","面向行业的应用 AI:从试点到部署。"),tagline:m("Applied AI for industry. Pilots → production.","面向行业的应用 AI:试点 → 生产。"),blocks:[{kind:"panor_services"}]},lm={id:"product",index:"02",title:m("Product","产品"),path:"/category/product",lede:m("What ships. Solutions, decoupled products, services, and the design system that ties them together.","正在交付的成果:解决方案、独立产品、服务,以及贯穿其中的设计系统。"),subs:[im,tm,rm,nm]},om={"Personal public updates and product notes.":"个人公开动态与产品笔记。","Direct phone contact.":"可电话或微信直接联系。","Email for direct contact.":"邮箱直接联系。","Public repositories, source releases, and technical work.":"公开仓库、源码发布与技术工作。","Models, datasets, and interactive Spaces.":"模型、数据集与交互式 Spaces。","Professional profile and career updates.":"职业资料与工作动态。","Long-form writing and research notes.":"长篇写作与研究笔记。","Public submissions and technical discussion.":"公开提交与技术讨论。","Product launches and public launch history.":"产品发布与公开发布记录。","Long-form publishing archive.":"长篇内容发布归档。","Public research and product archive.":"公开研究与产品档案。","Product property and public entry point.":"产品品牌与公开入口。","Brand updates and launch communications.":"品牌动态与发布沟通。","AI products and data-platform property.":"AI 产品与数据平台入口。","Organization repositories and technical assets.":"组织仓库与技术资产。","Brand social profile.":"品牌社交资料页。","Storefront and social-commerce distribution channel.":"店铺与社交电商分发渠道。","Short-video commerce and storefront distribution channel.":"短视频电商与店铺分发渠道。","Apple platform distribution and release channel.":"Apple 平台分发与发布渠道。","Android distribution and release channel.":"Android 分发与发布渠道。","Direct-to-user web distribution channel.":"面向用户的直接 Web 分发渠道。","Secondary marketplace and community-sales channel.":"二级市场与社区销售渠道。","Game discovery and distribution channel.":"游戏发现与分发渠道。","PC game distribution and community channel.":"PC 游戏分发与社区渠道。","Subscription and entitlement operations channel.":"订阅与权益运营渠道。","Visual discovery and referral channel.":"视觉发现与引流渠道。","International short-video distribution channel.":"国际短视频分发渠道。","Video publishing and technical-community channel.":"视频发布与技术社区渠道。","Content discovery and audience conversation channel.":"内容发现与受众沟通渠道。","Short-form video and campaign distribution channel.":"短视频与活动分发渠道。","Long-form publication and subscriber communication channel.":"长篇发布与订阅者沟通渠道。","Video publishing and WeChat ecosystem channel.":"视频发布与微信生态渠道。","Community entry point connected to product properties.":"与产品入口连接的社群入口。","Topic-based international community channel.":"主题型国际社区渠道。","Community conversation around Xiaohongshu content and commerce.":"围绕小红书内容与商业化的社群沟通渠道。","Direct group communication and community operations channel.":"直接群组沟通与社群运营渠道。"},pd=e=>m(e,om[e]??e),ae=(e,t,n,r=e)=>({name:m(e,r),description:pd(t),url:n}),te=(e,t,n)=>({name:m(e,t),description:pd(n)}),am=[{title:m("Public profiles","公开资料"),cards:[ae("X · Wilson Xu","Personal public updates and product notes.","https://x.com/wilsonxuuuu"),ae("Phone / WeChat · 17640021998","Direct phone contact.","tel:17640021998","联系电话 / 微信 · 17640021998"),ae("Email · chengyi_xu@outlook.com","Email for direct contact.","mailto:chengyi_xu@outlook.com","联系邮箱 · chengyi_xu@outlook.com"),ae("GitHub · chengyixu","Public repositories, source releases, and technical work.","https://github.com/chengyixu"),ae("Hugging Face · ChengyiX","Models, datasets, and interactive Spaces.","https://huggingface.co/ChengyiX"),ae("LinkedIn · Chengyi Xu","Professional profile and career updates.","https://www.linkedin.com/in/chengyi-xu-cn/"),ae("Substack · chengyixu","Long-form writing and research notes.","https://substack.com/@chengyixu"),ae("Hacker News · Wilson_Xu","Public submissions and technical discussion.","https://news.ycombinator.com/submitted?id=Wilson_Xu"),ae("Product Hunt · wilson_xuu","Product launches and public launch history.","https://www.producthunt.com/@wilson_xuu"),ae("Blogger","Long-form publishing archive.","https://www.blogger.com/blog/posts/8932726726247103479")]},{title:m("Brand properties","品牌入���"),cards:[ae("Nexora","Public research and product archive.","https://chengyix-nexora.static.hf.space/"),ae("Hiklik","Product property and public entry point.","http://hiklik.ai/"),ae("X · Hiklik AI","Brand updates and launch communications.","https://x.com/hiklikai"),ae("Panor","AI products and data-platform property.","https://panor.tech/"),ae("Minerva Capital","Organization repositories and technical assets.","https://github.com/minervacap2022"),ae("Facebook","Brand social profile.","https://www.facebook.com/profile.php?id=100081528347346")]},{title:m("Distribution and storefronts","分发与店铺"),cards:[te("Xiaohongshu Shop","小红书小店","Storefront and social-commerce distribution channel."),te("Douyin Shop","抖音小店","Short-video commerce and storefront distribution channel."),te("iOS / macOS App Store","iOS / macOS App Store","Apple platform distribution and release channel."),te("Google Play Store","Google Play Store","Android distribution and release channel."),te("Independent site","独立站","Direct-to-user web distribution channel."),te("Xianyu","闲鱼","Secondary marketplace and community-sales channel."),te("TapTap","TapTap","Game discovery and distribution channel."),te("Steam","Steam","PC game distribution and community channel."),te("RevenueCat","RevenueCat","Subscription and entitlement operations channel."),te("Pinterest","Pinterest","Visual discovery and referral channel."),te("TikTok","TikTok","International short-video distribution channel."),ae("Bilibili","Video publishing and technical-community channel.","https://space.bilibili.com/334951791?spm_id_from=333.1007.0.0")]},{title:m("Communities","社群渠道"),cards:[te("Xiaohongshu","小红书","Content discovery and audience conversation channel."),te("Douyin","抖音","Short-form video and campaign distribution channel."),te("WeChat Official Account","微信公众号","Long-form publication and subscriber communication channel."),te("WeChat Channels","微信视频号","Video publishing and WeChat ecosystem channel."),te("Website community","官网社群","Community entry point connected to product properties."),te("Reddit community","Reddit 群","Topic-based international community channel."),te("Xiaohongshu community","小红书群","Community conversation around Xiaohongshu content and commerce."),te("WeChat group","微信群","Direct group communication and community operations channel.")]}],Ye=e=>({kind:"internal",label:m("Member profile","成员资料"),url:`/category/reach/us?member=${e}`}),sm=[{id:"desiry",name:"Desiry",sortKey:"desiry",roles:m("Vision · Product · Administration","愿景 · 产品 · 行政"),bio:m("Connects long-term product direction with administrative follow-through, helping turn vision into coordinated decisions.","连接长期产品方向与行政执行,帮助将愿景转化为协调一致的决策。"),profileLinks:[Ye("desiry")]},{id:"heidi",name:"Heidi",sortKey:"heidi",roles:m("Marketing · Design · Product","营销 · 设计 · 产品"),bio:m("Builds coherent product and marketing surfaces, connecting design decisions to audience-facing delivery.","构建一致的产品与营销界面,将设计决策连接到面向用户的交付。"),profileLinks:[Ye("heidi")]},{id:"lyd",name:"lyd",sortKey:"lyd",roles:m("Research · Engineering · Infrastructure","研究 · 工程 · 基础设施"),bio:m("Works across research, engineering, and infrastructure to make technical systems dependable in operation.","横跨研究、工程与基础设施,推动技术系统稳定运行。"),profileLinks:[Ye("lyd")]},{id:"lynn",name:"lynn",sortKey:"lynn",roles:m("Design · Product","设计 · 产品"),bio:m("Shapes product experiences through focused design work, from interface direction to practical product decisions.","通过聚焦的设计工作塑造产品体验,从界面方向到实际产品决策。"),profileLinks:[Ye("lynn")]},{id:"rr",name:"RR",sortKey:"rr",roles:m("Management · Administration","管理 · 行政"),bio:m("Keeps management and administrative work connected, with attention to clear ownership and operational continuity.","连接管理与行政工作,关注清晰责任归属和运营连续性。"),profileLinks:[Ye("rr")]},{id:"sq",name:"SQ",sortKey:"sq",roles:m("Design · Product","设计 · 产品"),bio:m("Contributes design judgment and product perspective to help keep public experiences clear and coherent.","贡献设计判断与产品视角,帮助公开体验保持清晰一致。"),profileLinks:[Ye("sq")]},{id:"wang-gengyang",name:"王庚阳",sortKey:"wang-gengyang",roles:m("Research · Engineering · Safety · Network","研究 · 工程 · 安全 · 网络"),bio:m("Connects research and engineering with safety and network considerations across technical delivery.","在技术交付中连接研究、工程、安全与网络考量。"),profileLinks:[Ye("wang-gengyang")]},{id:"xu-chengyi",name:"徐成一",sortKey:"xu-chengyi",roles:m("Research · Product · Engineering","研究 · 产品 · 工程"),bio:m("Works on AI applications, data platforms, and end-to-end product systems.","负�� AI 应用、数据平台与端到端产品系统。"),profileLinks:[{kind:"external",iconSrc:"https://cdn.simpleicons.org/github/ffffff",label:m("GitHub profile","GitHub 主页"),url:"https://github.com/chengyixu"},{kind:"external",iconSrc:"https://upload.wikimedia.org/wikipedia/commons/c/ca/LinkedIn_logo_initials.png",label:m("LinkedIn profile","LinkedIn 主页"),url:"https://www.linkedin.com/in/chengyi-xu-cn/"},{kind:"external",iconSrc:"https://cdn.simpleicons.org/x/ffffff",label:m("X profile","X 主页"),url:"https://x.com/wilsonxuuuu"},{kind:"external",iconSrc:"https://cdn.simpleicons.org/huggingface/ffffff",label:m("Hugging Face profile","Hugging Face 主页"),url:"https://huggingface.co/ChengyiX"}]},{id:"yr",name:"YR",sortKey:"yr",roles:m("Design · Product","设计 · 产品"),bio:m("Contributes design and product perspective to turn concepts into usable, coherent experiences.","贡献设计与产品视角,将概念转化为可用且一致的体验。"),profileLinks:[Ye("yr")]},{id:"zml",name:"ZML",sortKey:"zml",roles:m("Research · Administration","研究 · 行政"),bio:m("Connects research work with administrative coordination to keep initiatives legible and actionable.","连接研究工作与行政协调,让项目保持清晰且可执行。"),profileLinks:[Ye("zml")]}],um=[...sm].sort((e,t)=>e.sortKey.localeCompare(t.sortKey)),cm=(e,t,n)=>({kind:"screenshot",src:e,alt:m(t,n)}),dm=(e,t)=>({kind:"embed",src:e,title:m(t,t)}),u=e=>m(e,e),x=m("Pricing is scoped by object, integration, delivery, and support requirements.","定价按对象、集成、交付与支持要求确定。"),pm={llm:["/showcase/llm.webp","Hugging Face model preview","Hugging Face 模型预览"],agent:["/showcase/agent.webp","Agent research preview","智能体研究预览"],engineering:["/showcase/engineering.webp","Engineering source preview","工程源码预览"],hardware:["/showcase/hardware.webp","Hardware source preview","硬件源码预览"],marketing:["/showcase/marketing.webp","AI marketing source preview","AI 营销源码预览"],miniprogram:["/showcase/miniprogram.webp","Mini-program source preview","小程序源码预览"],solutions:["/showcase/solutions.webp","EVE research dashboard","EVE 研究看板"],decoupled:["/showcase/decoupled.webp","Not by AI certification preview","Not by AI 认证预览"],designs:["/showcase/designs.webp","Nexora archive interface","Nexora 档案界面"]},w=(e,t)=>{if(e==="embed")return dm(t,t);const[n,r,i]=pm[e];return cm(n,r,i)},fm={"research/llm":{items:[{name:u("ChengyiX/Qwen3.8-27B-DFlash2-4bit-MLX"),url:"https://huggingface.co/ChengyiX/Qwen3.8-27B-DFlash2-4bit-MLX",description:u("Public research artifact."),pricing:x,visual:w("llm","https://huggingface.co/ChengyiX/Qwen3.8-27B-DFlash2-4bit-MLX")},{name:u("ChengyiX/Qwen3.8-27B-DFlash2-LocalFlash-M4Max"),url:"https://huggingface.co/ChengyiX/Qwen3.8-27B-DFlash2-LocalFlash-M4Max",description:u("Public research artifact."),pricing:x,visual:w("llm","https://huggingface.co/ChengyiX/Qwen3.8-27B-DFlash2-LocalFlash-M4Max")},{name:u("ChengyiX/Ornith-1.5-35B-A3B-Q4_K_M-LocalMoe-M4Max"),url:"https://huggingface.co/ChengyiX/Ornith-1.5-35B-A3B-Q4_K_M-LocalMoe-M4Max",description:u("Public research artifact."),pricing:x,visual:w("llm","https://huggingface.co/ChengyiX/Ornith-1.5-35B-A3B-Q4_K_M-LocalMoe-M4Max")},{name:u("ChengyiX/Ornith-1.5-35B-A3B-Q6_K-LocalMoe-M4Max"),url:"https://huggingface.co/ChengyiX/Ornith-1.5-35B-A3B-Q6_K-LocalMoe-M4Max",description:u("Public research artifact."),pricing:x,visual:w("llm","https://huggingface.co/ChengyiX/Ornith-1.5-35B-A3B-Q6_K-LocalMoe-M4Max")},{name:u("ChengyiX/CLI-Bench"),url:"https://huggingface.co/datasets/ChengyiX/CLI-Bench",description:u("Public research artifact."),pricing:x,visual:w("llm","https://huggingface.co/datasets/ChengyiX/CLI-Bench")},{name:u("ChengyiX/KLIK-Bench"),url:"https://huggingface.co/datasets/ChengyiX/KLIK-Bench",description:u("Public research artifact."),pricing:x,visual:w("llm","https://huggingface.co/datasets/ChengyiX/KLIK-Bench")},{name:u("ChengyiX/freetoken-macos-deployment"),url:"https://huggingface.co/datasets/ChengyiX/freetoken-macos-deployment",description:u("Public research artifact."),pricing:x,visual:w("llm","https://huggingface.co/datasets/ChengyiX/freetoken-macos-deployment")},{name:u("ChengyiX/ornith-256k-bench"),url:"https://huggingface.co/datasets/ChengyiX/ornith-256k-bench",description:u("Public research artifact."),pricing:x,visual:w("llm","https://huggingface.co/datasets/ChengyiX/ornith-256k-bench")},{name:u("ChengyiX/agent-context-review-cases"),url:"https://huggingface.co/datasets/ChengyiX/agent-context-review-cases",description:u("Public research artifact."),pricing:x,visual:w("llm","https://huggingface.co/datasets/ChengyiX/agent-context-review-cases")},{name:u("ChengyiX/proactive-execution-context-review-cases"),url:"https://huggingface.co/datasets/ChengyiX/proactive-execution-context-review-cases",description:u("Public research artifact."),pricing:x,visual:w("llm","https://huggingface.co/datasets/ChengyiX/proactive-execution-context-review-cases")},{name:u("ChengyiX/context-freshness-ledger-cases"),url:"https://huggingface.co/datasets/ChengyiX/context-freshness-ledger-cases",description:u("Public research artifact."),pricing:x,visual:w("llm","https://huggingface.co/datasets/ChengyiX/context-freshness-ledger-cases")},{name:u("ChengyiX/outcome-receipt-cases"),url:"https://huggingface.co/datasets/ChengyiX/outcome-receipt-cases",description:u("Public research artifact."),pricing:x,visual:w("llm","https://huggingface.co/datasets/ChengyiX/outcome-receipt-cases")},{name:u("ChengyiX/klik-temporal-memory-paper"),url:"https://huggingface.co/datasets/ChengyiX/klik-temporal-memory-paper",description:u("Public research artifact."),pricing:x,visual:w("llm","https://huggingface.co/datasets/ChengyiX/klik-temporal-memory-paper")},{name:u("ChengyiX/agent-scope-recovery-cases"),url:"https://huggingface.co/datasets/ChengyiX/agent-scope-recovery-cases",description:u("Public research artifact."),pricing:x,visual:w("llm","https://huggingface.co/datasets/ChengyiX/agent-scope-recovery-cases")}]},"research/agent":{items:[{name:u("ChengyiX/Minerva"),url:"https://huggingface.co/spaces/ChengyiX/Minerva",description:u("Public research artifact."),pricing:x,visual:w("agent","https://huggingface.co/spaces/ChengyiX/Minerva")},{name:u("ChengyiX/agent-handoff-decision-gate"),url:"https://huggingface.co/spaces/ChengyiX/agent-handoff-decision-gate",description:u("Public research artifact."),pricing:x,visual:w("agent","https://huggingface.co/spaces/ChengyiX/agent-handoff-decision-gate")},{name:u("ChengyiX/context-run-game"),url:"https://huggingface.co/spaces/ChengyiX/context-run-game",description:u("Public research artifact."),pricing:x,visual:w("agent","https://huggingface.co/spaces/ChengyiX/context-run-game")},{name:u("ChengyiX/action-receipt-check"),url:"https://huggingface.co/spaces/ChengyiX/action-receipt-check",description:u("Public research artifact."),pricing:x,visual:w("agent","https://huggingface.co/spaces/ChengyiX/action-receipt-check")},{name:u("ChengyiX/agent-context-review-playground"),url:"https://huggingface.co/spaces/ChengyiX/agent-context-review-playground",description:u("Public research artifact."),pricing:x,visual:w("agent","https://huggingface.co/spaces/ChengyiX/agent-context-review-playground")},{name:u("ChengyiX/klik-action-receipt-check"),url:"https://huggingface.co/spaces/ChengyiX/klik-action-receipt-check",description:u("Public research artifact."),pricing:x,visual:w("agent","https://huggingface.co/spaces/ChengyiX/klik-action-receipt-check")},{name:u("ChengyiX/klik-temporal-memory-research"),url:"https://huggingface.co/spaces/ChengyiX/klik-temporal-memory-research",description:u("Public research artifact."),pricing:x,visual:w("agent","https://huggingface.co/spaces/ChengyiX/klik-temporal-memory-research")},{name:u("ChengyiX/nexora"),url:"https://huggingface.co/spaces/ChengyiX/nexora",description:u("Public research artifact."),pricing:x,visual:w("agent","https://huggingface.co/spaces/ChengyiX/nexora")},{name:u("The Memory Record That Makes an Agent Handoff Reviewable"),url:"https://gist.github.com/chengyixu/c2c47006ef988884608072fa7c730b68",description:u("The Memory Record That Makes an Agent Handoff Reviewable"),pricing:x,visual:w("agent","https://gist.github.com/chengyixu/c2c47006ef988884608072fa7c730b68")},{name:u("Context Change Gate Fixtures for Memory-Aware, Permission-Aware Agents"),url:"https://gist.github.com/chengyixu/05c49514ecb497ef066bf882f585bb1c",description:u("Context Change Gate Fixtures for Memory-Aware, Permission-Aware Agents"),pricing:x,visual:w("agent","https://gist.github.com/chengyixu/05c49514ecb497ef066bf882f585bb1c")},{name:u("Memory-to-action receipts: a permission-aware checklist (Klik developer note)"),url:"https://gist.github.com/chengyixu/02ac2a93d308ae4f0420f86f16c5a41e",description:u("Memory-to-action receipts: a permission-aware checklist (Klik developer note)"),pricing:x,visual:w("agent","https://gist.github.com/chengyixu/02ac2a93d308ae4f0420f86f16c5a41e")},{name:u("Proactive Execution Receipt: a minimal review record for agent actions"),url:"https://gist.github.com/chengyixu/37a475f8672a027e4e17f4d93dd0b908",description:u("Proactive Execution Receipt: a minimal review record for agent actions"),pricing:x,visual:w("agent","https://gist.github.com/chengyixu/37a475f8672a027e4e17f4d93dd0b908")},{name:u("Idempotency Is Not Authority: A Test Matrix for Resuming Agent Actions"),url:"https://gist.github.com/chengyixu/8e05ccb2174ce7762906c5f6802cebd4",description:u("Idempotency Is Not Authority: A Test Matrix for Resuming Agent Actions"),pricing:x,visual:w("agent","https://gist.github.com/chengyixu/8e05ccb2174ce7762906c5f6802cebd4")},{name:u("Context Resumption Receipt for Interrupted Agent Work"),url:"https://gist.github.com/chengyixu/1cbf3c297a59700a46a38e600be1977c",description:u("Context Resumption Receipt for Interrupted Agent Work"),pricing:x,visual:w("agent","https://gist.github.com/chengyixu/1cbf3c297a59700a46a38e600be1977c")},{name:u("AI Agent Context Contract Checklist"),url:"https://gist.github.com/chengyixu/61e941be0374396802d53d46f2874294",description:u("AI Agent Context Contract Checklist"),pricing:x,visual:w("agent","https://gist.github.com/chengyixu/61e941be0374396802d53d46f2874294")},{name:u("AI Agents in Production with MCP: Complete 2026 Guide (2,759 words, 12 TS examples) - full draft for SitePoint"),url:"https://gist.github.com/chengyixu/443d04a05489801e546f122332cd3b48",description:u("AI Agents in Production with MCP: Complete 2026 Guide (2,759 words, 12 TS examples) - full draft for SitePoint"),pricing:x,visual:w("agent","https://gist.github.com/chengyixu/443d04a05489801e546f122332cd3b48")},{name:u("AI Agents in Production with MCP: The Complete 2026 Guide - How Model Context Protocol is reshaping how applications talk to LLMs"),url:"https://gist.github.com/chengyixu/943943e3aaed0c4cbd06761577a45e15",description:u("AI Agents in Production with MCP: The Complete 2026 Guide - How Model Context Protocol is reshaping how applications talk to LLMs"),pricing:x,visual:w("agent","https://gist.github.com/chengyixu/943943e3aaed0c4cbd06761577a45e15")},{name:u("Building AI Agents with the Vercel AI SDK: Tools, Memory, and Multi-Step Reasoning"),url:"https://gist.github.com/chengyixu/196a911034dc7b9f2ccdb5668b28227e",description:u("Building AI Agents with the Vercel AI SDK: Tools, Memory, and Multi-Step Reasoning"),pricing:x,visual:w("agent","https://gist.github.com/chengyixu/196a911034dc7b9f2ccdb5668b28227e")},{name:u("Using Anthropic's Claude API with Tool Use for Practical Automation"),url:"https://gist.github.com/chengyixu/3d9ed5de440f869b3450ff0f55193f65",description:u("Using Anthropic's Claude API with Tool Use for Practical Automation"),pricing:x,visual:w("agent","https://gist.github.com/chengyixu/3d9ed5de440f869b3450ff0f55193f65")},{name:u("Understanding Node.js Streams: Process Large Data Without Running Out of Memory"),url:"https://gist.github.com/chengyixu/116e301bc71f410a893a88a0345d1c5f",description:u("Understanding Node.js Streams: Process Large Data Without Running Out of Memory"),pricing:x,visual:w("agent","https://gist.github.com/chengyixu/116e301bc71f410a893a88a0345d1c5f")},{name:u("tool-showcase-2026-05-05.html"),url:"https://gist.github.com/chengyixu/866d6fc1cd7ecd65671ab40ffafe6e57",description:u("tool-showcase-2026-05-05.html"),pricing:x,visual:w("agent","https://gist.github.com/chengyixu/866d6fc1cd7ecd65671ab40ffafe6e57")}]},"research/engineering":{items:[{name:u("htmx vs React: When to Use Each -- practical comparison guide with decision matrix, real production examples, and migration strategies"),url:"https://gist.github.com/chengyixu/bddbb1c165ed52a66020dac33519481c",description:u("htmx vs React: When to Use Each -- practical comparison guide with decision matrix, real production examples, and migration strategies"),pricing:x,visual:w("engineering","https://gist.github.com/chengyixu/bddbb1c165ed52a66020dac33519481c")},{name:u("Mastering TypeScript Template Literal Types for API Type Safety — 2,376 words, practical patterns for building bulletproof API layers with template literal types"),url:"https://gist.github.com/chengyixu/5f238fffefc5d67a7dcdfc05d4cadc5a",description:u("Mastering TypeScript Template Literal Types for API Type Safety — 2,376 words, practical patterns for building bulletproof API layers with template literal types"),pricing:x,visual:w("engineering","https://gist.github.com/chengyixu/5f238fffefc5d67a7dcdfc05d4cadc5a")},{name:u("Bun 2 Full-Stack in 2026: From Dev Server to Production — complete guide to building/deploying full-stack TypeScript with Bun 2, no Node.js required"),url:"https://gist.github.com/chengyixu/ffb43ae10df6b2fac3923ea0a2f4f61b",description:u("Bun 2 Full-Stack in 2026: From Dev Server to Production — complete guide to building/deploying full-stack TypeScript with Bun 2, no Node.js required"),pricing:x,visual:w("engineering","https://gist.github.com/chengyixu/ffb43ae10df6b2fac3923ea0a2f4f61b")},{name:u("Event Sourcing in TypeScript: Building Audit Trails with Append-Only Event Stores"),url:"https://gist.github.com/chengyixu/9ee6807ae74b16be6e644fe0f4616fc7",description:u("Event Sourcing in TypeScript: Building Audit Trails with Append-Only Event Stores"),pricing:x,visual:w("engineering","https://gist.github.com/chengyixu/9ee6807ae74b16be6e644fe0f4616fc7")},{name:u("Building CLI Tools in TypeScript: From Script to Product - production CLI patterns with Commander, structured concurrency, config cascade, and npm publishing"),url:"https://gist.github.com/chengyixu/05960eed3fee9aaf0cec17866734ee9f",description:u("Building CLI Tools in TypeScript: From Script to Product - production CLI patterns with Commander, structured concurrency, config cascade, and npm publishing"),pricing:x,visual:w("engineering","https://gist.github.com/chengyixu/05960eed3fee9aaf0cec17866734ee9f")},{name:u("The React 19 Compiler: How Automatic Memoization Changes Everything — complete draft (2,371 words)"),url:"https://gist.github.com/chengyixu/f0c3da101470c8c08dda013fc78bdf14",description:u("The React 19 Compiler: How Automatic Memoization Changes Everything — complete draft (2,371 words)"),pricing:x,visual:w("engineering","https://gist.github.com/chengyixu/f0c3da101470c8c08dda013fc78bdf14")},{name:u("Building CLI Tools in TypeScript: From Script to Product — complete draft (3,642 words)"),url:"https://gist.github.com/chengyixu/0c66d5b06fbac74c9fc5767350c86d8b",description:u("Building CLI Tools in TypeScript: From Script to Product — complete draft (3,642 words)"),pricing:x,visual:w("engineering","https://gist.github.com/chengyixu/0c66d5b06fbac74c9fc5767350c86d8b")},{name:u("Railway-Oriented Programming in TypeScript — beyond try/catch with neverthrow and Effect-TS"),url:"https://gist.github.com/chengyixu/2105b889f96cc727588b310059e4125f",description:u("Railway-Oriented Programming in TypeScript — beyond try/catch with neverthrow and Effect-TS"),pricing:x,visual:w("engineering","https://gist.github.com/chengyixu/2105b889f96cc727588b310059e4125f")},{name:u("PostgreSQL for Frontend Developers: A Practical Guide to Queries, Indexing, and Schema Design"),url:"https://gist.github.com/chengyixu/1952f05c1c70637208a1e06e0a54c792",description:u("PostgreSQL for Frontend Developers: A Practical Guide to Queries, Indexing, and Schema Design"),pricing:x,visual:w("engineering","https://gist.github.com/chengyixu/1952f05c1c70637208a1e06e0a54c792")},{name:u("The React 19 Compiler: How Automatic Memoization Replaces useMemo, useCallback, and React.memo"),url:"https://gist.github.com/chengyixu/3da33e52f0970006077bce221429eb9b",description:u("The React 19 Compiler: How Automatic Memoization Replaces useMemo, useCallback, and React.memo"),pricing:x,visual:w("engineering","https://gist.github.com/chengyixu/3da33e52f0970006077bce221429eb9b")},{name:u("React 19 Compiler: How Automatic Memoization Changes Everything — 2,371 words, complete draft for SitePoint"),url:"https://gist.github.com/chengyixu/8b79349efeb447b30e71a0174c0d5cf0",description:u("React 19 Compiler: How Automatic Memoization Changes Everything — 2,371 words, complete draft for SitePoint"),pricing:x,visual:w("engineering","https://gist.github.com/chengyixu/8b79349efeb447b30e71a0174c0d5cf0")},{name:u("Postgres for Frontend Developers: The Database You Can't Avoid in 2026 — 3,540 words, complete draft for SitePoint"),url:"https://gist.github.com/chengyixu/bd985f6ab6df6663e6540685427222ea",description:u("Postgres for Frontend Developers: The Database You Can't Avoid in 2026 — 3,540 words, complete draft for SitePoint"),pricing:x,visual:w("engineering","https://gist.github.com/chengyixu/bd985f6ab6df6663e6540685427222ea")},{name:u("klik-desktop"),url:"https://github.com/minervacap2022/klik-desktop",description:u("Fully local Klik desktop app for audio, sessions, meeting minutes, projects, and proactive execution."),pricing:x,visual:w("engineering","https://github.com/minervacap2022/klik-desktop")},{name:u("KK_web"),url:"https://github.com/minervacap2022/KK_web",description:u("KLIK web app redesign (standalone React 19 + Vite + Tailwind)"),pricing:x,visual:w("engineering","https://github.com/minervacap2022/KK_web")},{name:u("Klik"),url:"https://github.com/minervacap2022/Klik",description:u("Klik"),pricing:x,visual:w("engineering","https://github.com/minervacap2022/Klik")},{name:u("klik-desktop-releases"),url:"https://github.com/minervacap2022/klik-desktop-releases",description:u("One-click public downloads and release notes for Klik Desktop"),pricing:x,visual:w("engineering","https://github.com/minervacap2022/klik-desktop-releases")},{name:u("Klik_prod_embed"),url:"https://github.com/minervacap2022/Klik_prod_embed",description:u("Production embedded firmware workspace for Klik"),pricing:x,visual:w("engineering","https://github.com/minervacap2022/Klik_prod_embed")},{name:u("embed_hardware_official_new"),url:"https://github.com/minervacap2022/embed_hardware_official_new",description:u("embed_hardware_official_new"),pricing:x,visual:w("engineering","https://github.com/minervacap2022/embed_hardware_official_new")},{name:u("klik-contextmap"),url:"https://github.com/minervacap2022/klik-contextmap",description:u("Live deterministic DDD context-map service for /opt projects (ContextMapper CML, bilingual, realtime SSE)"),pricing:x,visual:w("engineering","https://github.com/minervacap2022/klik-contextmap")},{name:u("klik_3089c_embed_newer"),url:"https://github.com/minervacap2022/klik_3089c_embed_newer",description:u("klik_3089c_embed_newer"),pricing:x,visual:w("engineering","https://github.com/minervacap2022/klik_3089c_embed_newer")},{name:u("klik-monitoring"),url:"https://github.com/minervacap2022/klik-monitoring",description:u("KLIK observability infrastructure — metrics, traces, logs collection/storage/visualisation (Prometheus, Grafana, Tempo, Elasticsearch, OTel Collector, exporters)"),pricing:x,visual:w("engineering","https://github.com/minervacap2022/klik-monitoring")},{name:u("Klikwebsite"),url:"https://github.com/minervacap2022/Klikwebsite",description:u("Klikwebsite"),pricing:x,visual:w("engineering","https://github.com/minervacap2022/Klikwebsite")}]},"research/hardware":{items:[{name:u("ChengyiX/Qwen3.8-27B-DFlash2-4bit-MLX"),url:"https://huggingface.co/ChengyiX/Qwen3.8-27B-DFlash2-4bit-MLX",description:u("Public research artifact."),pricing:x,visual:w("hardware","https://huggingface.co/ChengyiX/Qwen3.8-27B-DFlash2-4bit-MLX")},{name:u("ChengyiX/Qwen3.8-27B-DFlash2-LocalFlash-M4Max"),url:"https://huggingface.co/ChengyiX/Qwen3.8-27B-DFlash2-LocalFlash-M4Max",description:u("Public research artifact."),pricing:x,visual:w("hardware","https://huggingface.co/ChengyiX/Qwen3.8-27B-DFlash2-LocalFlash-M4Max")},{name:u("ChengyiX/Ornith-1.5-35B-A3B-Q4_K_M-LocalMoe-M4Max"),url:"https://huggingface.co/ChengyiX/Ornith-1.5-35B-A3B-Q4_K_M-LocalMoe-M4Max",description:u("Public research artifact."),pricing:x,visual:w("hardware","https://huggingface.co/ChengyiX/Ornith-1.5-35B-A3B-Q4_K_M-LocalMoe-M4Max")},{name:u("ChengyiX/Ornith-1.5-35B-A3B-Q6_K-LocalMoe-M4Max"),url:"https://huggingface.co/ChengyiX/Ornith-1.5-35B-A3B-Q6_K-LocalMoe-M4Max",description:u("Public research artifact."),pricing:x,visual:w("hardware","https://huggingface.co/ChengyiX/Ornith-1.5-35B-A3B-Q6_K-LocalMoe-M4Max")},{name:u("ChengyiX/CLI-Bench"),url:"https://huggingface.co/datasets/ChengyiX/CLI-Bench",description:u("Public research artifact."),pricing:x,visual:w("hardware","https://huggingface.co/datasets/ChengyiX/CLI-Bench")},{name:u("ChengyiX/KLIK-Bench"),url:"https://huggingface.co/datasets/ChengyiX/KLIK-Bench",description:u("Public research artifact."),pricing:x,visual:w("hardware","https://huggingface.co/datasets/ChengyiX/KLIK-Bench")},{name:u("ChengyiX/freetoken-macos-deployment"),url:"https://huggingface.co/datasets/ChengyiX/freetoken-macos-deployment",description:u("Public research artifact."),pricing:x,visual:w("hardware","https://huggingface.co/datasets/ChengyiX/freetoken-macos-deployment")},{name:u("ChengyiX/ornith-256k-bench"),url:"https://huggingface.co/datasets/ChengyiX/ornith-256k-bench",description:u("Public research artifact."),pricing:x,visual:w("hardware","https://huggingface.co/datasets/ChengyiX/ornith-256k-bench")},{name:u("ChengyiX/agent-context-review-cases"),url:"https://huggingface.co/datasets/ChengyiX/agent-context-review-cases",description:u("Public research artifact."),pricing:x,visual:w("hardware","https://huggingface.co/datasets/ChengyiX/agent-context-review-cases")},{name:u("ChengyiX/proactive-execution-context-review-cases"),url:"https://huggingface.co/datasets/ChengyiX/proactive-execution-context-review-cases",description:u("Public research artifact."),pricing:x,visual:w("hardware","https://huggingface.co/datasets/ChengyiX/proactive-execution-context-review-cases")},{name:u("ChengyiX/context-freshness-ledger-cases"),url:"https://huggingface.co/datasets/ChengyiX/context-freshness-ledger-cases",description:u("Public research artifact."),pricing:x,visual:w("hardware","https://huggingface.co/datasets/ChengyiX/context-freshness-ledger-cases")},{name:u("ChengyiX/outcome-receipt-cases"),url:"https://huggingface.co/datasets/ChengyiX/outcome-receipt-cases",description:u("Public research artifact."),pricing:x,visual:w("hardware","https://huggingface.co/datasets/ChengyiX/outcome-receipt-cases")},{name:u("ChengyiX/klik-temporal-memory-paper"),url:"https://huggingface.co/datasets/ChengyiX/klik-temporal-memory-paper",description:u("Public research artifact."),pricing:x,visual:w("hardware","https://huggingface.co/datasets/ChengyiX/klik-temporal-memory-paper")},{name:u("ChengyiX/agent-scope-recovery-cases"),url:"https://huggingface.co/datasets/ChengyiX/agent-scope-recovery-cases",description:u("Public research artifact."),pricing:x,visual:w("hardware","https://huggingface.co/datasets/ChengyiX/agent-scope-recovery-cases")}]},"product/solutions":{items:[{name:u("SBTI 趣味人格测试"),url:"https://www.panor.tech/sbti/",description:u("31 道灵魂拷问、15 个维度透视、27 种人格结果。测完还能用 AI 深度解读你的人格密码,和你的人格类型聊天。"),pricing:x,visual:w("embed","https://www.panor.tech/sbti/")},{name:u("拍拍兽 PaiPai Beast"),url:"https://www.panor.tech/paipai/",description:u("你的设备里住着一只小怪兽。拍它、摇它、训练它,用手机加速计或键盘与它互动,看它进化成 5 种不同形态。"),pricing:x,visual:w("embed","https://www.panor.tech/paipai/")},{name:u("EVE 量化研究看板"),url:"https://www.panor.tech/eve-invest/",description:u("聚焦策略回测、风控指标与资产表现的研究型看板,支持策略对比、风险暴露分析与可复现的实验记录。"),pricing:x,visual:w("embed","https://www.panor.tech/eve-invest/")},{name:u("EVE - Crypto Monitor"),url:"https://github.com/chengyixu/EVE-hk",description:u("数字资产行情与仓位跟踪工具,聚合价格、仓位与历史交易记录,强调信息透明与风险提示(不构成投资建议)。"),pricing:x,visual:w("embed","https://github.com/chengyixu/EVE-hk")},{name:u("AI 求职面试助手"),url:"https://www.panor.tech/job/",description:u("智能化求职准备平台:JD 解析、简历匹配、技能缺口分析、个性化学习计划生成与 Offer 对比,AI 驱动全流程。"),pricing:x,visual:w("embed","https://www.panor.tech/job/")},{name:u("时尚买手店模拟器"),url:"https://www.panor.tech/fashion/",description:u("AI 驱动的买手店经营游戏,从真实电商抓取潮流单品,模拟进货、定价、销售与顾客互动,体验时尚行业全链路。"),pricing:x,visual:w("embed","https://www.panor.tech/fashion/")},{name:u("FIRE 财务自由计算器"),url:"https://www.panor.tech/selfie/",description:u("Financial Independence, Retire Early (FIRE) 计算器,帮助你测算财务自由目标、储蓄率、投资回报与时间线,支持多币种与自定义提款率。"),pricing:x,visual:w("embed","https://www.panor.tech/selfie/")},{name:u("英语学习诊断与练习"),url:"https://www.panor.tech/english/",description:u("根据你的水平生成练习题与反馈建议,涵盖词汇、语法、写作与口语表达,支持学习记录与复盘。"),pricing:x,visual:w("embed","https://www.panor.tech/english/")},{name:u("韩式修辞翻译器"),url:"https://www.panor.tech/krtranslate/",description:u("将普通中文修辞转换为韩式修辞风格,提供多种语气选项与表达建议,适合文案与社交表达优化。"),pricing:x,visual:w("embed","https://www.panor.tech/krtranslate/")},{name:u("生物医学套磁工具(@taoci)"),url:"https://www.panor.tech/taoci/",description:u("生成个性化套磁邮件与简历优化建议,支持中英双语;默认本地存储,便于研究生与科研人员快速准备申请材料。"),pricing:x,visual:w("embed","https://www.panor.tech/taoci/")},{name:u("文本清洗与格式化工具"),url:"https://www.panor.tech/paste/",description:u("一键移除多余标签、统一换行与标点;支持大文本处理与剪贴板复制,适合数据清洗与写作整理。"),pricing:x,visual:w("embed","https://www.panor.tech/paste/")},{name:u("宝宝取名助手"),url:"https://www.panor.tech/baby/",description:u("AI 驱动的宝宝取名工具,结合五行、生辰、寓意与文化背景,生成多组候选名字并提供详细解析。"),pricing:x,visual:w("embed","https://www.panor.tech/baby/")},{name:u("Panor Premium 定价方案"),url:"https://www.panor.tech/pricing/",description:u("查看 Panor 的免费版、单次报告、高级会员、企业版和 API 定价。解锁 AI 深度解读、无限测试与专属功能。"),pricing:x,visual:w("embed","https://www.panor.tech/pricing/")},{name:u("Panor API 开发者接口"),url:"https://www.panor.tech/api/",description:u("AI 驱动的人格测评、JD 解析、取名生成 API。RESTful 接口,按调用计费,适合开发者与企业集成。"),pricing:x,visual:w("embed","https://www.panor.tech/api/")},{name:u("依恋类型测试"),url:"https://www.panor.tech/attach/",description:u("基于ECR-R量表,2分钟发现你的依恋类型:安全、焦虑、疏离或恐惧型,AI深度解读你的爱情模式。"),pricing:x,visual:w("embed","https://www.panor.tech/attach/")},{name:u("九型人格测试"),url:"https://www.panor.tech/ennea/",description:u("9种人格类型,AI深度解读你的核心动机与成长方向"),pricing:x,visual:w("embed","https://www.panor.tech/ennea/")},{name:u("爱的语言测试"),url:"https://www.panor.tech/lovelang/",description:u("5种爱的表达方式,25道题AI解读你的Love Language类型"),pricing:x,visual:w("embed","https://www.panor.tech/lovelang/")},{name:u("Stan Wars"),url:"https://www.panor.tech/stanwars/",description:u("Build a 5-member K-pop lineup, watch them auto-battle, climb the global ladder."),pricing:x,visual:w("embed","https://www.panor.tech/stanwars/")},{name:u("Ball Arena"),url:"https://www.panor.tech/arena/",description:u("Pick 2 fighters from 8 unique balls — Superman, Boxer, Ninja, Tank, Vampire and more. Watch them auto-battle on a pixel-art 8×8 grid."),pricing:x,visual:w("embed","https://www.panor.tech/arena/")},{name:u("Not by AI — Human Certification"),url:"https://www.panor.tech/human/",description:u('Certify your human-made work. Submit for human review and receive an official "Not by AI" badge with a QR-verifiable certificate number.'),pricing:x,visual:w("embed","https://www.panor.tech/human/")},{name:u("嘉豪翻译器"),url:"https://www.panor.tech/jiahao/",description:u("把普通表达豪化成中二装酷、反差凡尔赛与自在极意豪文案"),pricing:x,visual:w("embed","https://www.panor.tech/jiahao/")},{name:u("Soundscape"),url:"https://www.panor.tech/sound/",description:u("Experience the world through sound. AI-powered immersive soundscapes anchored in real locations. Record, share, and discover the sonic texture of cities."),pricing:x,visual:w("embed","https://www.panor.tech/sound/")},{name:u("One Wish Willow 许愿柳"),url:"https://www.panor.tech/willow/",description:u("双语 AI 超自然恐怖许愿模拟器:每个愿望都会真正实现,而实现方式本身会吞掉让这个愿望值得追求的东西。"),pricing:x,visual:w("embed","https://www.panor.tech/willow/")},{name:u("月老 · AI 关系反思工具"),url:"https://www.panor.tech/yuelao/",description:u("整理相亲画像、双人沟通困惑与行动计划;支持友善的照片形象表达建议,不提供算命或颜值评分。"),pricing:x,visual:w("embed","https://www.panor.tech/yuelao/")},{name:u("New API Gateway"),url:"https://www.panor.tech/new-api/",description:u("统一 AI API 网关与管理控制台,用于管理模型渠道、用户、令牌、额度、用量与路由。"),pricing:x,visual:w("embed","https://www.panor.tech/new-api/")}]},"product/standalone":{items:[{name:u("AI海龟汤"),url:"https://www.panor.tech/turtle/",description:u("AI 推理叙事游戏:通过提问与逻辑推理解开故事谜题,支持多轮对话与难度分级。"),pricing:x,visual:w("embed","https://www.panor.tech/turtle/")},{name:u("Baby Simulator 养娃模拟器"),url:"https://www.panor.tech/babysim/",description:u("AI 驱动的养娃模拟游戏,通过决策影响虚拟孩子成长,支持多语言、图片生成与动态剧情。"),pricing:x,visual:w("embed","https://www.panor.tech/babysim/")},{name:u("默契小游戏"),url:"https://www.panor.tech/moqi/",description:u("双人实时默契游戏:和伴侣、好友进入同一房间,完成九轮词语选择,在 Web、iOS 或微信中量化你们的默契度。"),pricing:x,visual:w("embed","https://www.panor.tech/moqi/")},{name:u("医学生涯模拟器"),url:"https://www.panor.tech/doctor/emergency-med-simulator/",description:u("医学生涯多阶段模拟游戏,围绕学习、实习、科研与职业选择做决策,探索不同职业路径。"),pricing:x,visual:w("embed","https://www.panor.tech/doctor/emergency-med-simulator/")},{name:u("三体:王权"),url:"https://www.panor.tech/3body/",description:u("基于《三体》宇宙背景的单机策略决策游戏。通过二选一决策管理关键资源,在政治与科技博弈中推动文明走向。"),pricing:x,visual:w("embed","https://www.panor.tech/3body/")},{name:u("打工人血条保卫战"),url:"https://www.panor.tech/worker/",description:u("职场生存模拟游戏,面对不同类型的职场挑战进行选择与应对,建立沟通与心理韧性。"),pricing:x,visual:w("embed","https://www.panor.tech/worker/")},{name:u("人生B面 The Other Side"),url:"https://www.panor.tech/otherside/",description:u("一款探索人生多维度选择的 macOS 应用,通过角色扮演与情境推演帮助思考职业与生活路径。"),pricing:x,visual:w("embed","https://www.panor.tech/otherside/")},{name:u("MBTI 16型人格测试"),url:"https://www.panor.tech/mbti/",description:u("基于荣格心理类型理论的MBTI人格测试,通过93道选择题识别你的16种人格类型,提供AI驱动的个性化解读。"),pricing:x,visual:w("embed","https://www.panor.tech/mbti/")},{name:u("大五人格测试"),url:"https://www.panor.tech/bigfive/",description:u("基于Costa与McCrae大五人格模型的科学测评,评估开放性、尽责性、外向性、宜人性、神经质五大维度,配备专业AI解析。"),pricing:x,visual:w("embed","https://www.panor.tech/bigfive/")},{name:u("恐惧症自评测试"),url:"https://www.panor.tech/phobia/",description:u("综合社交恐惧、广场恐惧、特定恐惧等维度的专业自评工具,参考SPS与IAS量表编制,配备AI个性化解读与温暖鼓励。"),pricing:x,visual:w("embed","https://www.panor.tech/phobia/")},{name:u("躁狂症自评筛查"),url:"https://www.panor.tech/mania/",description:u("参考HCL-32与BRMS量表的躁狂症筛查工具,评估情绪高涨、活动增加、冲动行为等六大维度,AI驱动的专业情绪解析。"),pricing:x,visual:w("embed","https://www.panor.tech/mania/")},{name:u("家庭环境测试"),url:"https://www.panor.tech/family/",description:u("基于 FES-CV 量表的家庭环境自评测试,帮助了解亲密度、情感表达、独立性等维度,并提供可解释结果。"),pricing:x,visual:w("embed","https://www.panor.tech/family/")},{name:u("Clothing 穿搭实验室"),url:"https://www.panor.tech/clothing/",description:u("服饰搭配与视觉模拟实验项目,探索配色、风格与场景化穿搭建议。"),pricing:x,visual:w("embed","https://www.panor.tech/clothing/")},{name:u("海拉尔文化指南"),url:"https://www.panor.tech/hailaer/",description:u("呼伦贝尔海拉尔地区文化旅行指南,涵盖美食、景点、交通与本地生活攻略。"),pricing:x,visual:w("embed","https://www.panor.tech/hailaer/")},{name:u("日本旅行规划"),url:"https://www.panor.tech/japan/",description:u("智能日本旅行行程规划工具,支持多城市路线编排、景点推荐与时间优化。"),pricing:x,visual:w("embed","https://www.panor.tech/japan/")},{name:u("帮我捡捡球"),url:"https://www.panor.tech/tennis/",description:u("基于 Phaser 的网球捡球休闲小游戏,挑战你的反应力与策略。"),pricing:x,visual:w("embed","https://www.panor.tech/tennis/")},{name:u("Pacering 效率环"),url:"https://github.com/chengyixu/pacering",description:u("macOS 生产力追踪应用,记录专注时长、任务节奏与目标达成情况,帮助建立稳定的工作节律。"),pricing:x,visual:w("embed","https://github.com/chengyixu/pacering")},{name:u("AI Mac Pet 桌面猫咪"),url:"https://github.com/chengyixu/ai_mac_pet",description:u("macOS 桌面宠物应用,AI 驱动的温柔陪伴与提醒;轻量设计,尊重用户专注时间。"),pricing:x,visual:w("embed","https://github.com/chengyixu/ai_mac_pet")},{name:u("恋爱聊天报告 Love Chat Report"),url:"https://www.panor.tech/love/",description:u("AI 深度分析情侣聊天记录,生成专属报告,还能和 TA 的 AI 分身聊天。"),pricing:x,visual:w("embed","https://www.panor.tech/love/")},{name:u("Mystic Tarot 神秘塔罗"),url:"https://www.panor.tech/taor/",description:u("AI 驱动的塔罗牌解读游戏,结合 MediaPipe 手势识别与 AI 深度解读,探索塔罗牌的象征与指引。"),pricing:x,visual:w("embed","https://www.panor.tech/taor/")},{name:u("Soundscape · 声景"),url:"https://www.panor.tech/soundscape/",description:u("沉浸式声景探索应用,将环境音效与地图互动结合,带你发现不同地点的声音风景与氛围。"),pricing:x,visual:w("embed","https://www.panor.tech/soundscape/")},{name:u("人生B面 macOS App"),url:"https://www.panor.tech/second_side/",description:u("探索人生另一面的 macOS 原生应用,通过角色扮演与情境推演帮助思考生活路径与人生选择。"),pricing:x,visual:w("embed","https://www.panor.tech/second_side/")},{name:u("FIRE 计算器"),url:"https://www.panor.tech/selfie_fire/",description:u("财务自由退休计划工具,计算储蓄率、投资回报与退休时间线。"),pricing:x,visual:w("embed","https://www.panor.tech/selfie_fire/")},{name:u("技术面试备战指南"),url:"https://www.panor.tech/job/interview/",description:u("覆盖 10 个岗位(软件、后端、前端、数据科学、ML、产品、设计、DevOps、工程经理、数据分析)的面试题库与备战策略,配合 AI 模拟面试。"),pricing:x,visual:w("embed","https://www.panor.tech/job/interview/")},{name:u("MBTI 人格匹配分析"),url:"https://www.panor.tech/mbti/compatibility/",description:u("基于荣格认知功能理论的 MBTI 配对分析。涵盖 INTJ×ENFP、INFJ×ENTP 等 5 组高频配对的功能栈、优势、摩擦与沟通模式。"),pricing:x,visual:w("embed","https://www.panor.tech/mbti/compatibility/")},{name:u("依恋类型测试"),url:"https://www.panor.tech/attach/",description:u("ECR-R量表 · 安全/焦虑/疏离/恐惧型 · AI个性化解读"),pricing:x,visual:w("embed","https://www.panor.tech/attach/")},{name:u("九型人格测试"),url:"https://www.panor.tech/ennea/",description:u("Enneagram人格类型测试,AI解读核心动机"),pricing:x,visual:w("embed","https://www.panor.tech/ennea/")},{name:u("Stan Wars"),url:"https://www.panor.tech/stanwars/",description:u("Stan Wars"),pricing:x,visual:w("embed","https://www.panor.tech/stanwars/")}]},"product/services":{items:[{name:u("LLM本地部署"),url:"https://huggingface.co/ChengyiX/Qwen3.8-27B-DFlash2-4bit-MLX",description:u("面向私有、Apple Silicon 或边缘受限环境的本地模型部署。"),pricing:u("按模型、目标硬件、安全边界与支持级别确定。"),visual:w("llm","https://huggingface.co/ChengyiX/Qwen3.8-27B-DFlash2-4bit-MLX")},{name:u("中转站与聚合站部署"),url:"https://www.panor.tech/api/",description:u("用于路由模型、供应商、API 与运营可观测性的网关和聚合站部署。"),pricing:u("按流量、集成数量、运行时拓扑和服务等级要求确定。"),visual:w("embed","https://www.panor.tech/api/")},{name:u("AI 化转型"),url:"https://www.panor.tech/api/",description:u("为团队采用 AI 系统提供工作流梳理、原型交付与运营落地。"),pricing:u("先进行需求梳理;在明确工作流和数据边界后报价实施。"),visual:w("embed","https://www.panor.tech/api/")},{name:u("AI Marketing"),url:"https://github.com/chengyixu/xhs-automation",description:u("AI 辅助内容运营、发布工作流与渠道度量。"),pricing:u("按渠道、审核流程与内容量采用长期服务或活动项目报价。"),visual:w("marketing","https://github.com/chengyixu/xhs-automation")},{name:u("多端小程序开发"),url:"https://github.com/chengyixu/tacit-understanding-game",description:u("覆盖产品设计、实现与发布准备的多端小程序交付。"),pricing:u("按目标平台、交互范围、集成和发布要求确定。"),visual:w("miniprogram","https://github.com/chengyixu/tacit-understanding-game")},{name:u("EVE 量化研究看板"),url:"https://www.panor.tech/eve-invest/",description:u("用于策略对比、风险指标与可复现投资分析的研究看板。"),pricing:u("研究合作,不构成投资建议;商业接入按数据与工作流要求确定。"),visual:w("solutions","https://www.panor.tech/eve-invest/")},{name:u("EVE - Crypto Monitor"),url:"https://github.com/chengyixu/EVE-hk",description:u("提供透明信息与风险信号的数字资产市场及仓位监控。"),pricing:u("研究合作,不构成投资建议;按市场覆盖和集成需求确定。"),visual:w("solutions","https://github.com/chengyixu/EVE-hk")},{name:u("Not by AI — Human Certification"),url:"https://www.panor.tech/human/",description:u("对人类创作作品提供审查和二维码可验证认证。"),pricing:u("按提交量和验证要求确定。"),visual:w("decoupled","https://www.panor.tech/human/")}]},"product/designs":{items:[{name:u("Nexora archive system"),url:"https://chengyix-nexora.static.hf.space/index.html#/",description:u("Archive-slider composition, WebGL backdrop, mono metadata, and responsive section navigation."),pricing:u("Design systems are scoped by product surface, component inventory, and implementation handoff."),visual:w("designs","https://chengyix-nexora.static.hf.space/index.html#/")}]}};function fd(e,t){return fm[`${e}/${t}`]??null}const hm={id:"activities",title:m("Activities","活动"),path:"/category/reach/activities",navigationTagline:m("Hackathons, competitions, intern program.","黑客松、竞赛与实习计划。"),tagline:m("Hackathons, competitions, intern program.","黑客松、竞赛与实习计划。"),blocks:[{kind:"list",items:[{title:m("Hackathons","黑客松"),detail:m("Find us at hackathons. We bring models, agents, and the eval harness.","欢迎在黑客松相见:我们带来模型、智能体和评测框架。"),href:"mailto:activities@nexora.dev?subject=Hackathon"},{title:m("Competitions","竞赛"),detail:m("Sponsorship + problem design. We co-organize with research groups.","提供赞助与题目设计,并与研究团队共同组织。"),href:"mailto:activities@nexora.dev?subject=Competition"},{title:m("Intern program","实习计划"),meta:m("Summer","夏季"),detail:m("A 12-week paid internship. Real ownership, real research.","12 周带薪实习,承担真实责任,参与真实研究。"),href:"mailto:activities@nexora.dev?subject=Internship"}]}]},mm={id:"clients",title:m("Clients","客户"),path:"/category/reach/clients",navigationTagline:m("Production deployments with SLAs and support.","提供 SLA 与支持的生产部署。"),tagline:m("Production deployments with SLAs and support.","提供 SLA 与支持的生产部署。"),blocks:[{kind:"cards",cards:[{title:m("Pilots","试点"),meta:m("6 weeks","6 周"),detail:m("A scoped pilot against a real problem, with a real customer team.","围绕真实问题,与真实客户团队共同完成范围明确的试点。")},{title:m("Production","生产"),meta:m("On-prem · Cloud · Edge","本地 · 云端 · 边缘"),detail:m("Deployment with SLAs, support, and a shared roadmap.","提供 SLA、支持和共同路线图的部署。")},{title:m("Support","支持"),meta:m("24/7 · Uptime SLAs","全天候 · 可用性 SLA"),detail:m("Production support with a real engineer on call.","由真实工程师值守的生产支持。")}]}]},gm={id:"join",title:m("Join","加入"),path:"/category/reach/join",navigationTagline:m("Open roles. Researchers, engineers, designers, operators.","开放岗位:研究员、工程师、设计师与运营人员。"),tagline:m("Open roles. Researchers, engineers, designers, operators.","开放岗位:研究员、工程师、设计师与运营人员。"),blocks:[{kind:"list",items:[{title:m("Research engineer","研究工程师"),detail:m("Pre-training / post-training. PyTorch, distributed, evals.","预训练 / 后训练;PyTorch、分布式训练与评测。"),href:"mailto:join@nexora.dev?subject=Research%20engineer"},{title:m("Agent engineer","智能体工程师"),detail:m("Tool-using agents, planning, eval harnesses.","工具型智能体、规划与评测框架。"),href:"mailto:join@nexora.dev?subject=Agent%20engineer"},{title:m("Embedded + FPGA","嵌入式与 FPGA 工程师"),detail:m("Driver + firmware + RTL. Custom silicon.","驱动、固件与 RTL;定制芯片。"),href:"mailto:join@nexora.dev?subject=Embedded%2FFPGA"},{title:m("Designer","设计师"),detail:m("Visual + interaction system. Tokens, components, motion.","视觉与交互系统:令牌、组件与动效。"),href:"mailto:join@nexora.dev?subject=Designer"},{title:m("Operator","运营人员"),detail:m("Ops, finance, partnerships. Long-form thinking.","运营、财务与合作伙伴关系;长期思考。"),href:"mailto:join@nexora.dev?subject=Operator"}]}]},vm={id:"social",title:m("Social","社交与分发"),path:"/category/reach/social",navigationTagline:m("Public profiles, brand properties, distribution, and community channels.","公开资料、品牌入口、分发与社群渠道。"),tagline:m("Public profiles, brand properties, distribution, and community channels.","公开资料、品牌入口、分发与社群渠道。"),blocks:[{kind:"social_directory"}]},ym={id:"us",title:m("Us","我们"),path:"/category/reach/us",navigationTagline:m("The people shaping research, products, and operations.","共同塑造研究、产品与运营的成员。"),tagline:m("The people shaping research, products, and operations.","共同塑造研究、产品与运营的成员。"),blocks:[{kind:"team_directory"}]},wm={id:"reach",index:"04",title:m("Reach","联系"),path:"/category/reach",lede:m("Get in touch. Join, work with us, become a client, or meet us out there.","与我们联系:加入团队、共同合作、成为客户,或在线下活动中相见。"),subs:[gm,ym,mm,hm,vm]},xm={id:"agent",title:m("Agent","智能体"),path:"/category/research/agent",navigationTagline:m("Tool-using agents. Planning, memory, web + code + OS.","工具型智能体:规划、记忆、网页、代码与操作系统。"),tagline:m("Tool-using agents. Planning, memory, multi-step reasoning, reproducible evals.","工具型智能体:规划、记忆、多步推理与可复现评测。"),blocks:[{kind:"hf_spaces"},{kind:"gists",limit:12,filter:"agent",caption:m("Agent research · gists","智能体研究 · 代码片段")}]},km={id:"engineering",title:m("Engineering","工程"),path:"/category/research/engineering",navigationTagline:m("From firmware to product. Driver + software + cloud.","从固件到产品:驱动、软件与云端。"),tagline:m("Cross-stack software engineering. From firmware to product, end to end.","跨栈软件工程:从固件到产品的端到端交付。"),blocks:[{kind:"gists",limit:12,filter:"engineering",caption:m("Engineering writing · gists","工程写作 · 代码片段")},{kind:"minervacap",limit:10,caption:m("minervacap2022 · live repos","minervacap2022 · 实时仓库")}]},Sm={id:"hardware",title:m("Hardware","硬件"),path:"/category/research/hardware",navigationTagline:m("FPGA, edge accelerators, sensors, custom silicon.","FPGA、边缘加速器、传感器与定制芯片。"),tagline:m("Edge + local deployment. Apple Silicon, MLX, llama.cpp, on-device inference.","边缘与本地部署:Apple Silicon、MLX、llama.cpp 与端侧推理。"),blocks:[{kind:"hf_datasets",caption:m("HF · datasets · local + on-device deployment","HF · 数据集 · 本地与端侧部署")},{kind:"hf_models",caption:m("HF · models · MLX + GGUF local","HF · 模型 · MLX 与 GGUF 本地运行")}]},Cm={id:"llm",title:m("LLM","大语言模型"),path:"/category/research/llm",navigationTagline:m("Foundation models. Pre-training, SFT, RLHF, distillation.","基础模型:预训练、监督微调、RLHF 与蒸馏。"),tagline:m("Foundation models and the IP they generate. Pre-training, post-training, distillation, continual learning.","基础模型及其产生的技术资产:预训练、后训练、蒸馏与持续学习。"),blocks:[{kind:"hf_models"},{kind:"hf_datasets"}]},Em={id:"research",index:"01",title:m("Research","研究"),path:"/category/research",lede:m("Where the work starts. Foundation models, agents, embedded + accelerator engineering.","工作从这里开始:基础模型、智能体、嵌入式与加速器工程。"),subs:[Cm,xm,km,Sm]},Pm={id:"milestones",title:m("Milestones","里程碑"),path:"/category/vision/milestones",navigationTagline:m("The markers that brought the work to where it is now.","推动工作走到今天的重要节点。"),tagline:m("The markers that brought the work here.","推动工作走到这里的重要节点。"),blocks:[{kind:"timeline",items:[{when:m("2026 Q3","2026 年第三季度"),title:m("Site goes live","网站上线"),detail:m("First public release of the Nexora site. Web and API independently deployed.","Nexora 网站首次公开发布,Web 与 API 可独立部署。"),tag:m("Release","发布")},{when:m("2026 Q2","2026 年第二季度"),title:m("Independent R&D incorporation","独立研发主体成立"),detail:m("Set up as an independent, long-horizon R&D group. Patient capital. No parent company.","成立独立、长期主义的研发团队:耐心资本,无母公司。"),tag:m("Milestone","里程碑")},{when:m("2026 Q1","2026 年第一季度"),title:m("First open model + agent eval","首个开放模型与智能体评测"),detail:m("Released the first open-weights model and the eval harness that ships with every release.","发布首个开放权重模型,以及随每次发布交付的评测框架。"),tag:m("Research","研究")},{when:m("2025 Q4","2025 年第四季度"),title:m("Cross-stack engineering bench","跨栈工程平台"),detail:m("Brought embedded, FPGA, and product engineering under one roof. First end-to-end hardware-software product.","将嵌入式、FPGA 与产品工程纳入同一体系,完成首个端到端软硬件产品。"),tag:m("Engineering","工程")},{when:m("2025 Q2","2025 年第二季度"),title:m("Founding","起步"),detail:m("The work began as a one-person research notebook. It became a team by the end of the year.","工作始于一份个人研究笔记,并在当年年底发展为团队。"),tag:m("Origin","起源")}]}]},jm={id:"news",title:m("News","动态"),path:"/category/vision/news",navigationTagline:m("Releases, talks, press, public updates.","发布、演讲、媒体与公开动态。"),tagline:m("Releases, talks, press, public updates.","发布、演讲、媒体与公开动态。"),blocks:[{kind:"timeline",items:[{when:m("2026-08","2026-08"),title:m("Site is live","网站已上线"),detail:m("The first public release of the work is now reachable at the canonical URL.","首个公开版本现已可通过规范地址访问。"),tag:m("News","动态")},{when:m("2026-07","2026-07"),title:m("Talk: agent eval at ScaleConf","演讲:ScaleConf 智能体评测"),detail:m("Talk on reproducible agent benchmarks and what we learned shipping them in production.","分享可复现智能体基准测试,以及将其部署到生产环境后的经验。"),tag:m("Talk","演讲")},{when:m("2026-05","2026-05"),title:m("Open release: nexora-align v0.3","开放发布:nexora-align v0.3"),detail:m("Alignment pipeline with process-reward shaping. Public on GitHub.","采用过程奖励塑形的对齐流水线,已在 GitHub 公开。"),tag:m("Release","发布")},{when:m("2026-02","2026-02"),title:m("Block-diffusion speculative decoding","块扩散推测解码"),detail:m("Patent filed. 2.3× throughput on long-context inference at parity quality.","专利已提交;在同等质量下,长上下文推理吞吐量达到 2.3 倍。"),tag:m("Patent","专利")}]}]},_m={id:"philosophy",title:m("Philosophy","理念"),path:"/category/vision/philosophy",navigationTagline:m("How we work. Independent, long-term, open.","我们的工作方式:独立、长期、开放。"),tagline:m("How we work. Independent, long-term, open.","我们的工作方式:独立、长期、开放。"),blocks:[{kind:"cards",cards:[{title:m("Independent","独立"),meta:m("No parent company","无母公司"),detail:m("Decisions are made on the work, not on the quarter.","决策以工作本身为准,而非季度指标。")},{title:m("Long-term","长期"),meta:m("Decades, not releases","以十年计,而非按发布周期"),detail:m("Compute, data, and people are long-horizon investments.","算力、数据和人才都是长期投入。")},{title:m("Open by default","默认开放"),meta:m("Open weights · Open source","开放权重 · 开源"),detail:m("Closed only when there is a real reason — and that reason is on the record.","只有在确有理由时才关闭,并且该理由会被记录。")},{title:m("Reproducible","可复现"),meta:m("Builds + evals on every push","每次推送均构建并评测"),detail:m("A passing green that no one can reproduce is not a passing green.","无法复现的通过结果,不是真正的通过。")}]},{kind:"quote",text:m("The goal is not to ship a model. The goal is to keep shipping the next one, and the one after, for a long time.","目标不是发布一个模型,而是在很长时间里持续发布下一个、再下一个模型。"),attribution:m("Nexora · founding note","Nexora · 创始说明")}]},Nm={id:"vision",index:"03",title:m("Vision","愿景"),path:"/category/vision",lede:m("Where the work is going. The long-form thinking behind the roadmap.","工作的去向:路线图背后的长期思考。"),subs:[Pm,jm,_m]},da=[Em,lm,Nm,wm];function Tm(e,t){const n=da.find(i=>i.id===e);if(!n)return null;const r=n.subs.find(i=>i.id===t);return r?{category:n,sub:r}:null}function zs(){const{lang:e}=W();return d.jsx("div",{className:"slider-container",children:da.map(t=>d.jsxs("div",{className:"column",children:[d.jsx("div",{className:"col-index",children:t.index}),d.jsx("div",{className:"col-content-main",children:d.jsx(je,{to:t.path,className:"col-title",style:{textDecoration:"none",color:"inherit"},children:A(t.title,e)})}),d.jsx("div",{className:"col-footer",children:d.jsx("ul",{className:"spec-list",style:{textAlign:"right"},children:t.subs.map(n=>d.jsx("li",{children:d.jsx(je,{to:n.path,style:{textDecoration:"none",color:"inherit"},onClick:r=>r.stopPropagation(),children:A(n.title,e)})},n.id))})})]},t.id))})}function Lm({visual:e,url:t}){const{lang:n,ui:r}=W();return e.kind==="embed"?d.jsxs("div",{className:"showcase-visual showcase-embed",children:[d.jsx("iframe",{src:e.src,title:A(e.title,n)}),d.jsxs("a",{className:"showcase-visual-fallback",href:t,target:"_blank",rel:"noreferrer",children:["↗ ",r.openObject]})]}):d.jsx("div",{className:"showcase-visual",children:d.jsx("img",{src:e.src,alt:A(e.alt,n)})})}function Rm({item:e,panelId:t}){const{lang:n,ui:r}=W();return d.jsxs("div",{className:"showcase-object-panel",id:t,children:[d.jsx(Lm,{visual:e.visual,url:e.url}),d.jsxs("div",{className:"showcase-object-copy",children:[d.jsx("p",{children:A(e.description,n)}),d.jsxs("div",{className:"showcase-pricing",children:[d.jsx("span",{children:r.pricing}),A(e.pricing,n)]}),d.jsxs("a",{href:e.url,target:"_blank",rel:"noreferrer",className:"showcase-url",children:["↗ ",e.url.replace(/^https?:\/\//,"")]})]})]})}function hd({category:e,sub:t,topic:n}){const{lang:r,ui:i}=W(),[l,o]=j.useState(null),a=`${e.id}-${t.id}`;return d.jsx("div",{className:"showcase-object-list",children:n.items.map((s,c)=>{const v=l===c,g=`showcase-object-${a}-${c}`;return d.jsxs("article",{className:`archive-card-row showcase-object-item ${v?"is-expanded":""}`,children:[d.jsxs("button",{type:"button",className:"showcase-object-trigger",onClick:()=>o(v?null:c),"aria-expanded":v,"aria-controls":g,children:[d.jsx("span",{className:"showcase-index",children:String(c+1).padStart(2,"0")}),d.jsx("span",{className:"showcase-object-title",children:A(s.name,r)}),d.jsx("span",{className:"showcase-action",children:v?i.collapse:i.expand})]}),v&&d.jsx(Rm,{item:s,panelId:g})]},s.url)})})}function Im({category:e,sub:t,index:n,topic:r}){const{lang:i}=W();return d.jsxs("section",{className:"showcase-subcategory",children:[d.jsxs("header",{className:"showcase-subcategory-header",children:[d.jsx("div",{className:"showcase-index",children:String(n+1).padStart(2,"0")}),d.jsxs("div",{children:[d.jsx("h2",{children:A(t.title,i)}),d.jsx("p",{children:A(t.navigationTagline,i)})]})]}),d.jsx(hd,{category:e,sub:t,topic:r})]})}function Mm({category:e,sub:t,topic:n}){return d.jsx(hd,{category:e,sub:t,topic:n})}function Am({category:e}){return d.jsx("div",{className:"category-showcase",children:e.subs.map((t,n)=>{const r=fd(e.id,t.id);return r?d.jsx(Im,{category:e,sub:t,index:n,topic:r},t.id):null})})}function zm(){const{categoryId:e}=ld(),{lang:t,ui:n}=W(),r=da.find(l=>l.id===e);if(j.useEffect(()=>{window.scrollTo(0,0)},[e]),!r)return d.jsxs("div",{className:"content",children:[d.jsx("h1",{children:n.notFound}),d.jsx(je,{to:"/",children:n.backHome})]});const i=r.id==="research"||r.id==="product";return d.jsxs("div",{className:"content",children:[d.jsx("div",{className:"col-index",style:{marginBottom:8},children:r.index}),d.jsx("h1",{children:A(r.title,t)}),d.jsx("p",{className:"lede",children:A(r.lede,t)}),!i&&d.jsx("div",{className:"category-section-label",children:n.subPages}),i?d.jsx(Am,{category:r}):d.jsx("div",{className:"section-grid",children:r.subs.map((l,o)=>d.jsxs(je,{to:l.path,className:"section-card",style:{textDecoration:"none",color:"inherit"},children:[d.jsx("div",{className:"index",children:String(o+1).padStart(2,"0")}),d.jsx("h3",{children:A(l.title,t)}),d.jsx("p",{children:A(l.navigationTagline,t)}),d.jsx("div",{className:"tags",children:l.path})]},l.id))}),d.jsx("div",{style:{marginTop:48},children:d.jsxs(je,{to:"/",style:{borderBottom:"1px solid currentColor",fontSize:13},children:["← ",n.backHome]})})]})}function Om({items:e}){const{lang:t}=W();return d.jsx("div",{className:"timeline",style:{margin:"0 0 32px"},children:e.map((n,r)=>d.jsxs("div",{className:"timeline-item",children:[d.jsx("div",{className:"when",children:A(n.when,t)}),d.jsxs("div",{children:[d.jsx("h3",{children:A(n.title,t)}),d.jsx("p",{children:A(n.detail,t)})]}),d.jsx("div",{className:"tag",children:n.tag?A(n.tag,t):""})]},r))})}const Fm={GET:"#2a9d8f",POST:"#e85d04",PUT:"#e9c46a",PATCH:"#f4a261",DELETE:"#e63946"},Os={en:{},cn:{"/api/health":"健康检查","/api/github/repos":"GitHub 仓库目录","/api/github/gists":"GitHub 代码片段目录","/api/github/minervacap":"Minerva Capital 仓库目录","/api/hf/models":"Hugging Face 模型目录","/api/hf/datasets":"Hugging Face 数据集目录","/api/hf/spaces":"Hugging Face Spaces 目录","/api/panor/items":"Panor 条目目录","/api/panor/services":"Panor 服务目录","/api/panor/projects":"Panor 项目目录","/api/panor/team":"Panor 团队目录","/api/content/all":"全部内容目录","/api/meta/endpoints":"API 端点目录"}};function Dm(){const[e,t]=j.useState(null),{lang:n,ui:r}=W();return j.useEffect(()=>{fetch("/api/meta/endpoints").then(i=>i.ok?i.json():null).then(i=>t(i)).catch(()=>t(null))},[]),!e||e.source!=="live"||e.items.length===0?null:d.jsxs("div",{style:{margin:"0 0 32px"},children:[d.jsxs("div",{style:{fontSize:11,textTransform:"uppercase",letterSpacing:"0.04em",opacity:.5,marginBottom:12},children:[r.endpoints," · ",r.live," · ",e.count]}),d.jsx("div",{className:"resource-list",style:{borderTop:"1px solid currentColor"},children:e.items.map((i,l)=>d.jsxs("div",{className:"resource-row",style:{borderBottom:"1px solid rgba(0,0,0,0.2)"},children:[d.jsx("div",{className:"idx",children:String(l+1).padStart(2,"0")}),d.jsxs("div",{className:"name",children:[d.jsx("span",{style:{display:"inline-block",fontSize:10,fontFamily:"var(--font-mono)",padding:"2px 6px",border:"1px solid currentColor",marginRight:10,color:Fm[i.method]??"inherit"},children:i.method}),d.jsx("span",{style:{fontFamily:"var(--font-mono)",fontSize:13},children:i.path}),(Os[n][i.path]??i.summary)&&d.jsx("small",{children:Os[n][i.path]??i.summary})]})]},`${i.method}:${i.path}`))})]})}const pa="";async function fa(e){try{const t=await fetch(e);return t.ok?await t.json():null}catch{return null}}const Bm=()=>fa(`${pa}/api/panor/services`),Um=()=>fa(`${pa}/api/panor/projects`),bm=()=>fa(`${pa}/api/panor/team`);function Xm(e,t){const n=Math.ceil(e.length/2);return[{label:t,items:e.slice(0,n)},{label:t,items:e.slice(n)}]}function md({item:e}){const{ui:t}=W(),n=e.kind==="service"?t.resourceKindService:e.kind==="project"?t.resourceKindProject:e.kind;return d.jsxs("a",{href:e.id,target:"_blank",rel:"noreferrer",className:"resource-row",style:{textDecoration:"none",color:"inherit"},children:[d.jsx("div",{className:"idx",children:"·"}),d.jsx("div",{className:"name",children:e.title}),d.jsx("div",{className:"meta lang",children:n}),d.jsx("div",{className:"meta",children:"↗"})]})}function $m(){const[e,t]=j.useState(null),{ui:n}=W();if(j.useEffect(()=>{Bm().then(t)},[]),!e||e.source!=="live"||e.items.length===0)return null;const r=Xm(e.items,`${n.live} · panor.tech`);return d.jsxs("div",{style:{margin:"0 0 32px"},children:[d.jsxs("div",{style:{fontSize:11,textTransform:"uppercase",letterSpacing:"0.04em",opacity:.5,marginBottom:12},children:[n.services," · ",n.live," · ",e.items.length]}),d.jsx("div",{style:{display:"grid",gridTemplateColumns:"1fr 1fr",gap:32},children:r.map((i,l)=>d.jsx("div",{children:i.items.map((o,a)=>d.jsx(md,{item:o},a))},l))})]})}function Hm(){const[e,t]=j.useState(null),{ui:n}=W();return j.useEffect(()=>{Um().then(t)},[]),!e||e.source!=="live"||e.items.length===0?null:d.jsxs("div",{style:{margin:"0 0 32px"},children:[d.jsxs("div",{style:{fontSize:11,textTransform:"uppercase",letterSpacing:"0.04em",opacity:.5,marginBottom:12},children:[n.projects," · ",n.live," · ",e.items.length]}),d.jsx("div",{className:"resource-list",children:e.items.map((r,i)=>d.jsx(md,{item:r},i))})]})}function Wm(){const[e,t]=j.useState(null),{ui:n}=W();return j.useEffect(()=>{bm().then(t)},[]),!e||e.length===0?null:d.jsxs("div",{style:{margin:"0 0 32px"},children:[d.jsx("div",{style:{fontSize:11,textTransform:"uppercase",letterSpacing:"0.04em",opacity:.5,marginBottom:12},children:n.team}),d.jsx("div",{className:"resource-list",children:e.map((r,i)=>d.jsxs("div",{className:"resource-row",children:[d.jsx("div",{className:"idx",children:r.avatar??"·"}),d.jsxs("div",{className:"name",children:[r.name,d.jsx("small",{children:r.description})]}),d.jsx("div",{className:"meta",style:{gridColumn:"3 / -1",textAlign:"right"},children:r.title})]},i))})]})}function Fs({link:e}){return e.iconSrc?d.jsx("img",{src:e.iconSrc,alt:"","aria-hidden":"true"}):d.jsx("span",{"aria-hidden":"true",children:"↗"})}function Vm({member:e,panelId:t}){const{lang:n}=W();return d.jsxs("div",{className:"team-member-panel",id:t,children:[d.jsx("p",{children:A(e.bio,n)}),d.jsx("div",{className:"team-profile-links",children:e.profileLinks.map(r=>r.kind==="internal"?d.jsx(je,{to:r.url,className:"team-profile-link","aria-label":A(r.label,n),children:d.jsx(Fs,{link:r})},r.url):d.jsx("a",{href:r.url,target:"_blank",rel:"noreferrer",className:"team-profile-link","aria-label":A(r.label,n),children:d.jsx(Fs,{link:r})},r.url))})]})}function Km(){const{lang:e,ui:t}=W(),n=Pn(),r=new URLSearchParams(n.search).get("member"),[i,l]=j.useState(r);return d.jsx("div",{className:"team-directory",children:um.map((o,a)=>{const s=i===o.id,c=`team-member-${o.id}`;return d.jsxs("article",{className:`archive-card-row team-member ${s?"is-expanded":""}`,children:[d.jsxs("button",{type:"button",className:"team-member-trigger",onClick:()=>l(s?null:o.id),"aria-expanded":s,"aria-controls":c,children:[d.jsx("span",{className:"team-member-index",children:String(a+1).padStart(2,"0")}),d.jsx("span",{className:"team-member-name",children:o.name}),d.jsx("span",{className:"team-member-roles",children:A(o.roles,e)}),d.jsx("span",{className:"team-member-action",children:s?t.collapse:t.expand})]}),s&&d.jsx(Vm,{member:o,panelId:c})]},o.id)})})}function Qm(){const{lang:e,ui:t}=W();return d.jsx("div",{className:"social-directory",children:am.map(n=>d.jsxs("section",{className:"social-group",children:[d.jsx("h2",{children:A(n.title,e)}),d.jsx("div",{className:"social-card-grid",children:n.cards.map(r=>{const i=d.jsxs(d.Fragment,{children:[d.jsx("div",{className:"social-card-name",children:A(r.name,e)}),d.jsx("p",{children:A(r.description,e)}),r.url&&d.jsxs("span",{className:"social-card-url",children:["↗ ",r.url.replace(/^https?:\/\//,"")]})]});return r.url?d.jsx("a",{className:"archive-card-row social-card",href:r.url,target:"_blank",rel:"noreferrer","aria-label":`${A(r.name,e)} · ${t.openObject}`,children:i},r.url):d.jsx("article",{className:"archive-card-row social-card",children:i},r.name.en)})})]},n.title.en))})}async function xr(e){try{const t=await fetch(e);return t.ok?await t.json():null}catch{return null}}const Gm=(e=50)=>xr(`/api/github/gists?limit=${e}`),Ym=(e=20)=>xr(`/api/github/minervacap?limit=${e}`);async function Jm(e="ChengyiX"){const t=await xr(`/api/hf/models?author=${encodeURIComponent(e)}`);return t?"items"in t?t:{source:t.source,count:t.count,items:t.models.map(n=>({...n,name:n.id.split("/").pop()||n.id,last_modified:null}))}:null}const Zm=(e="ChengyiX")=>xr(`/api/hf/datasets?author=${encodeURIComponent(e)}`),qm=(e="ChengyiX")=>xr(`/api/hf/spaces?author=${encodeURIComponent(e)}`),eg={agent:/\b(agent|mcp|tool|planning|memory|claude|gpt|llm|reasoning)\b/i,engineering:/\b(typescript|react|bun|deno|docker|kubernetes|postgres|sql|wasm|graphql|rest|cli|observability|telemetry|opentelemetry|vercel|edge|streaming|server|compiler|astro|htmx|tanstack|next|swift|kotlin|swiftui|jetpack)\b/i,writing:/\b(sitepoint|hashnode|draft|guide|patterns|practical|production patterns|writing)\b/i};function tg(e,t){if(e==="all")return t;const n=eg[e];return t.filter(r=>n.test(r.description||"")||n.test(r.files.join(" ")))}function ng(e){return e?e.slice(0,10):""}function rg({limit:e=15,filter:t="all",caption:n}){const[r,i]=j.useState(null),{ui:l}=W();if(j.useEffect(()=>{Gm(50).then(i)},[]),!r||r.source!=="live")return null;const o=tg(t,r.gists).slice(0,e);return o.length===0?null:d.jsxs("div",{style:{margin:"0 0 32px"},children:[d.jsx("div",{style:{fontSize:11,textTransform:"uppercase",letterSpacing:"0.04em",opacity:.5,marginBottom:12},children:n??`${l.gists} · ${l.live} · ${o.length}/${r.gists.length}`}),d.jsx("div",{className:"resource-list",children:o.map((a,s)=>{var c;return d.jsxs("a",{href:a.html_url,target:"_blank",rel:"noreferrer",className:"resource-row",style:{textDecoration:"none",color:"inherit"},children:[d.jsx("div",{className:"idx",children:String(s+1).padStart(2,"0")}),d.jsxs("div",{className:"name",children:[((c=a.description)==null?void 0:c.trim())||a.files[0]||a.id,a.files.length>0&&d.jsx("small",{children:a.files.slice(0,3).join(" · ")})]}),d.jsx("div",{className:"meta",style:{gridColumn:"3 / -1",textAlign:"right"},children:ng(a.updated_at)})]},a.id)})})]})}function ig({limit:e=15,caption:t}){const[n,r]=j.useState(null),{ui:i}=W();if(j.useEffect(()=>{Ym(50).then(r)},[]),!n||n.length===0)return null;const l=n.slice(0,e);return d.jsxs("div",{style:{margin:"0 0 32px"},children:[d.jsx("div",{style:{fontSize:11,textTransform:"uppercase",letterSpacing:"0.04em",opacity:.5,marginBottom:12},children:t??`minervacap2022 · ${i.live} · ${l.length} ${i.repositories}`}),d.jsx("div",{className:"resource-list",children:l.map((o,a)=>d.jsxs("a",{href:o.html_url,target:"_blank",rel:"noreferrer",className:"resource-row",style:{textDecoration:"none",color:"inherit"},children:[d.jsx("div",{className:"idx",children:String(a+1).padStart(2,"0")}),d.jsxs("div",{className:"name",children:[o.name,o.description&&d.jsx("small",{children:o.description})]}),d.jsx("div",{className:"meta lang",children:o.language??"—"}),d.jsxs("div",{className:"meta",children:["★ ",o.stars]})]},o.name))})]})}function lg({item:e,kind:t}){const{ui:n}=W(),r=t==="model"?`https://huggingface.co/${e.id}`:t==="dataset"?`https://huggingface.co/datasets/${e.id}`:`https://huggingface.co/spaces/${e.id}`;return d.jsxs("a",{href:r,target:"_blank",rel:"noreferrer",className:"resource-row",style:{textDecoration:"none",color:"inherit"},children:[d.jsx("div",{className:"idx",children:"·"}),d.jsxs("div",{className:"name",children:[e.name,e.tags.length>0&&d.jsx("small",{children:e.tags.slice(0,4).join(" · ")})]}),d.jsxs("div",{className:"meta",children:["↓ ",e.downloads," ",n.downloads]}),d.jsxs("div",{className:"meta",children:["♥ ",e.likes," ",n.likes]})]})}function og({caption:e,data:t,kind:n}){const{ui:r}=W();return!t||t.source!=="live"||t.items.length===0?null:d.jsxs("div",{style:{margin:"0 0 32px"},children:[d.jsxs("div",{style:{fontSize:11,textTransform:"uppercase",letterSpacing:"0.04em",opacity:.5,marginBottom:12},children:[e," · ",r.live," · ",t.count]}),d.jsx("div",{className:"resource-list",children:t.items.map((i,l)=>d.jsx(lg,{item:i,kind:n},l))})]})}function gl({kind:e,caption:t,author:n="ChengyiX"}){const[r,i]=j.useState(null),{ui:l}=W();j.useEffect(()=>{(e==="models"?Jm:e==="datasets"?Zm:qm)(n).then(i)},[e,n]);const o=e==="models"?l.models:e==="datasets"?l.datasets:l.spaces;return d.jsx(og,{caption:t??`HF · ${o} · ChengyiX`,data:r,kind:e==="models"?"model":e==="datasets"?"dataset":"space"})}function ag({block:e}){const{lang:t}=W();switch(e.kind){case"paragraph":return null;case"heading":return d.jsx("h2",{style:{fontSize:14,fontWeight:500,textTransform:"uppercase",letterSpacing:"0.06em",margin:"40px 0 16px",opacity:.6},children:A(e.text,t)});case"specs":return d.jsx("ul",{style:{listStyle:"none",padding:0,margin:"0 0 32px",display:"grid",gridTemplateColumns:"repeat(auto-fit, minmax(260px, 1fr))",gap:8,maxWidth:800},children:e.items.map((n,r)=>d.jsx("li",{style:{borderLeft:"1px solid currentColor",paddingLeft:12,fontSize:13,fontFamily:"var(--font-mono)",opacity:.8},children:A(n,t)},r))});case"cards":return null;case"list":return d.jsx("div",{className:"resource-list",style:{margin:"0 0 32px"},children:e.items.map((n,r)=>d.jsxs("div",{className:"resource-row",style:n.href?{cursor:"pointer"}:void 0,children:[d.jsx("div",{className:"idx",children:String(r+1).padStart(2,"0")}),d.jsx("div",{className:"name",children:n.href?d.jsx("a",{href:n.href,style:{color:"inherit",borderBottom:"1px solid currentColor"},children:A(n.title,t)}):A(n.title,t)}),d.jsx("div",{className:"meta",style:{gridColumn:"3 / -1",textAlign:"left"},children:A(n.detail,t)})]},r))});case"quote":return d.jsxs("blockquote",{style:{borderLeft:"1px solid currentColor",paddingLeft:20,margin:"24px 0 32px",maxWidth:720,fontSize:20,lineHeight:1.5,fontWeight:400,letterSpacing:"-0.01em",opacity:.9},children:[A(e.text,t),e.attribution&&d.jsxs("div",{style:{marginTop:12,fontSize:12,opacity:.5,fontFamily:"var(--font-mono)",textTransform:"uppercase",letterSpacing:"0.04em"},children:["— ",A(e.attribution,t)]})]});case"timeline":return d.jsx(Om,{items:e.items});case"api":return d.jsx(Dm,{});case"panor_services":return d.jsx($m,{});case"panor_projects":return d.jsx(Hm,{});case"panor_team":return d.jsx(Wm,{});case"team_directory":return d.jsx(Km,{});case"social_directory":return d.jsx(Qm,{});case"gists":return d.jsx(rg,{limit:e.limit??15,filter:e.filter??"all",caption:e.caption?A(e.caption,t):void 0});case"minervacap":return d.jsx(ig,{limit:e.limit??15,caption:e.caption?A(e.caption,t):void 0});case"hf_models":return d.jsx(gl,{kind:"models",caption:e.caption?A(e.caption,t):void 0});case"hf_datasets":return d.jsx(gl,{kind:"datasets",caption:e.caption?A(e.caption,t):void 0});case"hf_spaces":return d.jsx(gl,{kind:"spaces",caption:e.caption?A(e.caption,t):void 0})}}function sg(){const{categoryId:e,subId:t}=ld(),{lang:n,ui:r}=W(),i=e&&t?Tm(e,t):null;if(j.useEffect(()=>{window.scrollTo(0,0)},[e,t]),!i)return d.jsxs("div",{className:"content",children:[d.jsx("h1",{children:r.notFound}),d.jsx(je,{to:"/",children:r.backHome})]});const{category:l,sub:o}=i,a=fd(l.id,o.id);return d.jsxs("div",{className:"content",children:[d.jsxs("div",{style:{display:"flex",alignItems:"baseline",gap:12,marginBottom:8},children:[d.jsxs("div",{className:"col-index",children:[l.index,".",String(l.subs.findIndex(s=>s.id===t)+1).padStart(2,"0")]}),d.jsxs("div",{style:{fontSize:11,textTransform:"uppercase",letterSpacing:"0.04em",opacity:.5,fontFamily:"var(--font-mono)"},children:[A(l.title,n)," · ",d.jsx(je,{to:l.path,style:{color:"inherit",borderBottom:"1px solid currentColor"},children:A(o.title,n)})]})]}),d.jsx("h1",{children:A(o.title,n)}),d.jsx("p",{className:"lede",children:A(o.tagline,n)}),a?d.jsx(Mm,{category:l,sub:o,topic:a}):o.blocks.map((s,c)=>d.jsx(ag,{block:s},c)),d.jsxs("div",{style:{borderTop:"1px solid currentColor",margin:"64px 0 0",padding:"24px 0",display:"flex",justifyContent:"space-between",fontSize:12,fontFamily:"var(--font-mono)",opacity:.7},children:[d.jsxs(je,{to:l.path,style:{color:"inherit"},children:["← ",A(l.title,n)]}),d.jsx(je,{to:"/",style:{color:"inherit"},children:r.home})]})]})}function ug(){const{ui:e}=W();return d.jsxs("div",{className:"content",children:[d.jsx("div",{className:"col-index",style:{marginBottom:8},children:"A"}),d.jsx("h1",{children:e.admin}),d.jsx("p",{className:"lede",children:e.adminLede}),d.jsxs("div",{style:{border:"1px solid currentColor",padding:32,margin:"32px 0",maxWidth:720},children:[d.jsx("div",{style:{fontSize:11,textTransform:"uppercase",letterSpacing:"0.04em",opacity:.5,marginBottom:12},children:e.notImplemented}),d.jsx("p",{style:{fontSize:14,lineHeight:1.6,opacity:.8},children:e.adminDetail})]}),d.jsx("div",{style:{marginTop:48},children:d.jsxs(je,{to:"/",style:{borderBottom:"1px solid currentColor",fontSize:13},children:["← ",e.backHome]})})]})}function cg(){return d.jsx(Gh,{children:d.jsxs("div",{style:{position:"relative",minHeight:"100vh",overflow:"hidden"},children:[d.jsx(em,{}),d.jsxs("div",{className:"ui-layer",children:[d.jsx(Yh,{}),d.jsxs(Fh,{children:[d.jsx(Gt,{path:"/",element:d.jsx(zs,{})}),d.jsx(Gt,{path:"/category/:categoryId",element:d.jsx(zm,{})}),d.jsx(Gt,{path:"/category/:categoryId/:subId",element:d.jsx(sg,{})}),d.jsx(Gt,{path:"/admin",element:d.jsx(ug,{})}),d.jsx(Gt,{path:"*",element:d.jsx(zs,{})})]})]})]})})}const dg=Hh;vl.createRoot(document.getElementById("root")).render(d.jsx(Qs.StrictMode,{children:d.jsx(dg,{children:d.jsx(cg,{})})}));