vendor: 6,145 bytes, lines 1-2
1const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/PrivacyView-uB_A5Ekw.js","assets/PrivacyView-DyI_nF3P.css","assets/SelfHostView-BmGQQkoH.js","assets/SelfHostView-m7dnH9vX.css","assets/PolisGuideView-3LddHktY.js","assets/IconArrowNext-DUMjAS9K.js","assets/PolisGuideView-tn0RQdqM.css","assets/OpenRouterGuideView-C57piGgm.js","assets/IconArrowPrev-CnXjCgiF.js","assets/SenseMakerGuideView-BodYyV-t.js"])))=>i.map(i=>d[i]); 2var Qc=Object.defineProperty;var Jc=(e,t,n)=>t in e?Qc(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;var he=(e,t,n)=>Jc(e,typeof t!="symbol"?t+"":t,n);(function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const r of document.querySelectorAll('link[rel="modulepreload"]'))s(r);new MutationObserver(r=>{for(const o of r)if(o.type==="childList")for(const i of o.addedNodes)i.tagName==="LINK"&&i.rel==="modulepreload"&&s(i)}).observe(document,{childList:!0,subtree:!0});function n(r){const o={};return r.integrity&&(o.integrity=r.integrity),r.referrerPolicy&&(o.referrerPolicy=r.referrerPolicy),r.crossOrigin==="use-credentials"?o.credentials="include":r.crossOrigin==="anonymous"?o.credentials="omit":o.credentials="same-origin",o}function s(r){if(r.ep)return;r.ep=!0;const o=n(r);fetch(r.href,o)}})();function uo(e){const t=Object.create(null);for(const n of e.split(","))t[n]=1;return n=>n in t}const ye={},An=[],Dt=()=>{},Oa=()=>!1,nr=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&(e.charCodeAt(2)>122||e.charCodeAt(2)<97),po=e=>e.startsWith("onUpdate:"),ze=Object.assign,fo=(e,t)=>{const n=e.indexOf(t);n>-1&&e.splice(n,1)},Zc=Object.prototype.hasOwnProperty,fe=(e,t)=>Zc.call(e,t),J=Array.isArray,In=e=>bs(e)==="[object Map]",$n=e=>bs(e)==="[object Set]",Jo=e=>bs(e)==="[object Date]",te=e=>typeof e=="function",Ne=e=>typeof e=="string",Mt=e=>typeof e=="symbol",ke=e=>e!==null&&typeof e=="object",Da=e=>(ke(e)||te(e))&&te(e.then)&&te(e.catch),Na=Object.prototype.toString,bs=e=>Na.call(e),eu=e=>bs(e).slice(8,-1),Ma=e=>bs(e)==="[object Object]",mo=e=>Ne(e)&&e!=="NaN"&&e[0]!=="-"&&""+parseInt(e,10)===e,Zn=uo(",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted"),sr=e=>{const t=Object.create(null);return(n=>t[n]||(t[n]=e(n)))},tu=/-\w/g,gt=sr(e=>e.replace(tu,t=>t.slice(1).toUpperCase())),nu=/\B([A-Z])/g,Tn=sr(e=>e.replace(nu,"-$1").toLowerCase()),rr=sr(e=>e.charAt(0).toUpperCase()+e.slice(1)),wr=sr(e=>e?`on${rr(e)}`:""),sn=(e,t)=>!Object.is(e,t),As=(e,...t)=>{for(let n=0;n<e.length;n++)e[n](...t)},Fa=(e,t,n,s=!1)=>{Object.defineProperty(e,t,{configurable:!0,enumerable:!1,writable:s,value:n})},or=e=>{const t=parseFloat(e);return isNaN(t)?e:t};let Zo;const ir=()=>Zo||(Zo=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof global<"u"?global:{});function ho(e){if(J(e)){const t={};for(let n=0;n<e.length;n++){const s=e[n],r=Ne(s)?iu(s):ho(s);if(r)for(const o in r)t[o]=r[o]}return t}else if(Ne(e)||ke(e))return e}const su=/;(?![^(]*\))/g,ru=/:([^]+)/,ou=/\/\*[^]*?\*\//g;function iu(e){const t={};return e.replace(ou,"").split(su).forEach(n=>{if(n){const s=n.split(ru);s.length>1&&(t[s[0].trim()]=s[1].trim())}}),t}function Be(e){let t="";if(Ne(e))t=e;else if(J(e))for(let n=0;n<e.length;n++){const s=Be(e[n]);s&&(t+=s+" ")}else if(ke(e))for(const n in e)e[n]&&(t+=n+" ");return t.trim()}const au="itemscope,allowfullscreen,formnovalidate,ismap,nomodule,novalidate,readonly",lu=uo(au);function Va(e){return!!e||e===""}function cu(e,t){if(e.length!==t.length)return!1;let n=!0;for(let s=0;n&&s<e.length;s++)n=_n(e[s],t[s]);return n}function _n(e,t){if(e===t)return!0;let n=Jo(e),s=Jo(t);if(n||s)return n&&s?e.getTime()===t.getTime():!1;if(n=Mt(e),s=Mt(t),n||s)return e===t;if(n=J(e),s=J(t),n||s)return n&&s?cu(e,t):!1;if(n=ke(e),s=ke(t),n||s){if(!n||!s)return!1;const r=Object.keys(e).length,o=Object.keys(t).length;if(r!==o)return!1;for(const i in e){const a=e.hasOwnProperty(i),l=t.hasOwnProperty(i);if(a&&!l||!a&&l||!_n(e[i],t[i]))return!1}}return String(e)===String(t)}function go(e,t){return e.findIndex(n=>_n(n,t))}const Ua=e=>!!(e&&e.__v_isRef===!0),H=e=>Ne(e)?e:e==null?"":J(e)||ke(e)&&(e.toString===Na||!te(e.toString))?Ua(e)?H(e.value):JSON.stringify(e,$a,2):String(e),$a=(e,t)=>Ua(t)?$a(e,t.value):In(t)?{[`Map(${t.size})`]:[...t.entries()].reduce((n,[s,r],o)=>(n[Tr(s,o)+" =>"]=r,n),{})}:$n(t)?{[`Set(${t.size})`]:[...t.values()].map(n=>Tr(n))}:Mt(t)?Tr(t):ke(t)&&!J(t)&&!Ma(t)?String(t):t,Tr=(e,t="")=>{var n;return Mt(e)?`Symbol(${(n=e.description)!=null?n:t})`:e};let rt;class ja{constructor(t=!1){this.detached=t,this._active=!0,this._on=0,this.effects=[],this.cleanups=[],this._isPaused=!1,this.parent=rt,!t&&rt&&(this.index=(rt.scopes||(rt.scopes=[])).push(this)-1)}get active(){return this._active}pause(){if(this._active){this._isPaused=!0;let t,n;if(this.scopes)for(t=0,n=this.scopes.length;t<n;t++)this.scopes[t].pause();for(t=0,n=this.effects.length;t<n;t++)this.effects[t].pause()}}resume(){if(this._active&&this._isPaused){this._isPaused=!1;let t,n;if(this.scopes)for(t=0,n=this.scopes.length;t<n;t++)this.scopes[t].resume();for(t=0,n=this.effects.length;t<n;t++)this.effects[t].resume()}}run(t){if(this._active){const n=rt;try{return rt=this,t()}finally{rt=n}}}on(){++this._on===1&&(this.prevScope=rt,rt=this)}off(){this._on>0&&--this._on===0&&(rt=this.prevScope,this.prevScope=void 0)}stop(t){if(this._active){this._active=!1;let n,s;for(n=0,s=this.effects.length;n<s;n++)this.effects[n].stop();for(this.effects.length=0,n=0,s=this.cleanups.length;n<s;n++)this.cleanups[n]();if(this.cleanups.length=0,this.scopes){for(n=0,s=this.scopes.length;n<s;n++)this.scopes[n].stop(!0);this.scopes.length=0}if(!this.detached&&this.parent&&!t){const r=this.parent.scopes.pop();r&&r!==this&&(this.parent.scopes[this.index]=r,r.index=this.index)}this.parent=void 0}}}function uu(e){return new ja(e)}function du(){return rt}let _e;const Sr=new WeakSet;class Ka{constructor(t){this.fn=t,this.deps=void 0,this.depsTail=void 0,this.flags=5,this.next=void 0,this.cleanup=void 0,this.scheduler
vendor: 4,603 bytes, line 2
2=void 0,rt&&rt.active&&rt.effects.push(this)}pause(){this.flags|=64}resume(){this.flags&64&&(this.flags&=-65,Sr.has(this)&&(Sr.delete(this),this.trigger()))}notify(){this.flags&2&&!(this.flags&32)||this.flags&8||Ba(this)}run(){if(!(this.flags&1))return this.fn();this.flags|=2,ei(this),Wa(this);const t=_e,n=St;_e=this,St=!0;try{return this.fn()}finally{qa(this),_e=t,St=n,this.flags&=-3}}stop(){if(this.flags&1){for(let t=this.deps;t;t=t.nextDep)yo(t);this.deps=this.depsTail=void 0,ei(this),this.onStop&&this.onStop(),this.flags&=-2}}trigger(){this.flags&64?Sr.add(this):this.scheduler?this.scheduler():this.runIfDirty()}runIfDirty(){Vr(this)&&this.run()}get dirty(){return Vr(this)}}let Ha=0,es,ts;function Ba(e,t=!1){if(e.flags|=8,t){e.next=ts,ts=e;return}e.next=es,es=e}function bo(){Ha++}function vo(){if(--Ha>0)return;if(ts){let t=ts;for(ts=void 0;t;){const n=t.next;t.next=void 0,t.flags&=-9,t=n}}let e;for(;es;){let t=es;for(es=void 0;t;){const n=t.next;if(t.next=void 0,t.flags&=-9,t.flags&1)try{t.trigger()}catch(s){e||(e=s)}t=n}}if(e)throw e}function Wa(e){for(let t=e.deps;t;t=t.nextDep)t.version=-1,t.prevActiveLink=t.dep.activeLink,t.dep.activeLink=t}function qa(e){let t,n=e.depsTail,s=n;for(;s;){const r=s.prevDep;s.version===-1?(s===n&&(n=r),yo(s),pu(s)):t=s,s.dep.activeLink=s.prevActiveLink,s.prevActiveLink=void 0,s=r}e.deps=t,e.depsTail=n}function Vr(e){for(let t=e.deps;t;t=t.nextDep)if(t.dep.version!==t.version||t.dep.computed&&(za(t.dep.computed)||t.dep.version!==t.version))return!0;return!!e._dirty}function za(e){if(e.flags&4&&!(e.flags&16)||(e.flags&=-17,e.globalVersion===cs)||(e.globalVersion=cs,!e.isSSR&&e.flags&128&&(!e.deps&&!e._dirty||!Vr(e))))return;e.flags|=2;const t=e.dep,n=_e,s=St;_e=e,St=!0;try{Wa(e);const r=e.fn(e._value);(t.version===0||sn(r,e._value))&&(e.flags|=128,e._value=r,t.version++)}catch(r){throw t.version++,r}finally{_e=n,St=s,qa(e),e.flags&=-3}}function yo(e,t=!1){const{dep:n,prevSub:s,nextSub:r}=e;if(s&&(s.nextSub=r,e.prevSub=void 0),r&&(r.prevSub=s,e.nextSub=void 0),n.subs===e&&(n.subs=s,!s&&n.computed)){n.computed.flags&=-5;for(let o=n.computed.deps;o;o=o.nextDep)yo(o,!0)}!t&&!--n.sc&&n.map&&n.map.delete(n.key)}function pu(e){const{prevDep:t,nextDep:n}=e;t&&(t.nextDep=n,e.prevDep=void 0),n&&(n.prevDep=t,e.nextDep=void 0)}let St=!0;const Ga=[];function Gt(){Ga.push(St),St=!1}function Yt(){const e=Ga.pop();St=e===void 0?!0:e}function ei(e){const{cleanup:t}=e;if(e.cleanup=void 0,t){const n=_e;_e=void 0;try{t()}finally{_e=n}}}let cs=0;class fu{constructor(t,n){this.sub=t,this.dep=n,this.version=n.version,this.nextDep=this.prevDep=this.nextSub=this.prevSub=this.prevActiveLink=void 0}}class ko{constructor(t){this.computed=t,this.version=0,this.activeLink=void 0,this.subs=void 0,this.map=void 0,this.key=void 0,this.sc=0,this.__v_skip=!0}track(t){if(!_e||!St||_e===this.computed)return;let n=this.activeLink;if(n===void 0||n.sub!==_e)n=this.activeLink=new fu(_e,this),_e.deps?(n.prevDep=_e.depsTail,_e.depsTail.nextDep=n,_e.depsTail=n):_e.deps=_e.depsTail=n,Ya(n);else if(n.version===-1&&(n.version=this.version,n.nextDep)){const s=n.nextDep;s.prevDep=n.prevDep,n.prevDep&&(n.prevDep.nextDep=s),n.prevDep=_e.depsTail,n.nextDep=void 0,_e.depsTail.nextDep=n,_e.depsTail=n,_e.deps===n&&(_e.deps=s)}return n}trigger(t){this.version++,cs++,this.notify(t)}notify(t){bo();try{for(let n=this.subs;n;n=n.prevSub)n.sub.notify()&&n.sub.dep.notify()}finally{vo()}}}function Ya(e){if(e.dep.sc++,e.sub.flags&4){const t=e.dep.computed;if(t&&!e.dep.subs){t.flags|=20;for(let s=t.deps;s;s=s.nextDep)Ya(s)}const n=e.dep.subs;n!==e&&(e.prevSub=n,n&&(n.nextSub=e)),e.dep.subs=e}}const Ur=new WeakMap,kn=Symbol(""),$r=Symbol(""),us=Symbol("");function We(e,t,n){if(St&&_e){let s=Ur.get(e);s||Ur.set(e,s=new Map);let r=s.get(n);r||(s.set(n,r=new ko),r.map=s,r.key=n),r.track()}}function Ht(e,t,n,s,r,o){const i=Ur.get(e);if(!i){cs++;return}const a=l=>{l&&l.trigger()};if(bo(),t==="clear")i.forEach(a);else{const l=J(e),c=l&&mo(n);if(l&&n==="length"){const u=Number(s);i.forEach((d,m)=>{(m==="length"||m===us||!Mt(m)&&m>=u)&&a(d)})}else switch((n!==void 0||i.has(void 0))&&a(i.get(n)),c&&a(i.get(us)),t){case"add":l?c&&a(i.get("length")):(a(i.get(kn)),In(e)&&a(i.get($r)));break;case"delete":l||(a(i.get(kn)),In(e)&&a(i.get($r)));break;case"set":In(e)&&a(i.get(kn));break}}vo()}function Pn(e){const t=pe(e);return t===e?t:(We(t,"iterate",us),ft(e)?t:t.map(je))}function ar(e){return We(e=pe(e),"iterate",us),e}const mu={__proto__:null,[Symbol.iterator](){return Pr(this,Symbol.iterator,je)},concat(...e){return Pn(this).concat(...e.map(t=>J(t)?Pn(t):t))}
vendor: 4,616 bytes, line 2
2,entries(){return Pr(this,"entries",e=>(e[1]=je(e[1]),e))},every(e,t){return Vt(this,"every",e,t,void 0,arguments)},filter(e,t){return Vt(this,"filter",e,t,n=>n.map(je),arguments)},find(e,t){return Vt(this,"find",e,t,je,arguments)},findIndex(e,t){return Vt(this,"findIndex",e,t,void 0,arguments)},findLast(e,t){return Vt(this,"findLast",e,t,je,arguments)},findLastIndex(e,t){return Vt(this,"findLastIndex",e,t,void 0,arguments)},forEach(e,t){return Vt(this,"forEach",e,t,void 0,arguments)},includes(...e){return xr(this,"includes",e)},indexOf(...e){return xr(this,"indexOf",e)},join(e){return Pn(this).join(e)},lastIndexOf(...e){return xr(this,"lastIndexOf",e)},map(e,t){return Vt(this,"map",e,t,void 0,arguments)},pop(){return Bn(this,"pop")},push(...e){return Bn(this,"push",e)},reduce(e,...t){return ti(this,"reduce",e,t)},reduceRight(e,...t){return ti(this,"reduceRight",e,t)},shift(){return Bn(this,"shift")},some(e,t){return Vt(this,"some",e,t,void 0,arguments)},splice(...e){return Bn(this,"splice",e)},toReversed(){return Pn(this).toReversed()},toSorted(e){return Pn(this).toSorted(e)},toSpliced(...e){return Pn(this).toSpliced(...e)},unshift(...e){return Bn(this,"unshift",e)},values(){return Pr(this,"values",je)}};function Pr(e,t,n){const s=ar(e),r=s[t]();return s!==e&&!ft(e)&&(r._next=r.next,r.next=()=>{const o=r._next();return o.done||(o.value=n(o.value)),o}),r}const hu=Array.prototype;function Vt(e,t,n,s,r,o){const i=ar(e),a=i!==e&&!ft(e),l=i[t];if(l!==hu[t]){const d=l.apply(e,o);return a?je(d):d}let c=n;i!==e&&(a?c=function(d,m){return n.call(this,je(d),m,e)}:n.length>2&&(c=function(d,m){return n.call(this,d,m,e)}));const u=l.call(i,c,s);return a&&r?r(u):u}function ti(e,t,n,s){const r=ar(e);let o=n;return r!==e&&(ft(e)?n.length>3&&(o=function(i,a,l){return n.call(this,i,a,l,e)}):o=function(i,a,l){return n.call(this,i,je(a),l,e)}),r[t](o,...s)}function xr(e,t,n){const s=pe(e);We(s,"iterate",us);const r=s[t](...n);return(r===-1||r===!1)&&To(n[0])?(n[0]=pe(n[0]),s[t](...n)):r}function Bn(e,t,n=[]){Gt(),bo();const s=pe(e)[t].apply(e,n);return vo(),Yt(),s}const gu=uo("__proto__,__v_isRef,__isVue"),Xa=new Set(Object.getOwnPropertyNames(Symbol).filter(e=>e!=="arguments"&&e!=="caller").map(e=>Symbol[e]).filter(Mt));function bu(e){Mt(e)||(e=String(e));const t=pe(this);return We(t,"has",e),t.hasOwnProperty(e)}class Qa{constructor(t=!1,n=!1){this._isReadonly=t,this._isShallow=n}get(t,n,s){if(n==="__v_skip")return t.__v_skip;const r=this._isReadonly,o=this._isShallow;if(n==="__v_isReactive")return!r;if(n==="__v_isReadonly")return r;if(n==="__v_isShallow")return o;if(n==="__v_raw")return s===(r?o?Cu:tl:o?el:Za).get(t)||Object.getPrototypeOf(t)===Object.getPrototypeOf(s)?t:void 0;const i=J(t);if(!r){let l;if(i&&(l=mu[n]))return l;if(n==="hasOwnProperty")return bu}const a=Reflect.get(t,n,Ke(t)?t:s);if((Mt(n)?Xa.has(n):gu(n))||(r||We(t,"get",n),o))return a;if(Ke(a)){const l=i&&mo(n)?a:a.value;return r&&ke(l)?Kr(l):l}return ke(a)?r?Kr(a):lr(a):a}}class Ja extends Qa{constructor(t=!1){super(!1,t)}set(t,n,s,r){let o=t[n];if(!this._isShallow){const l=rn(o);if(!ft(s)&&!rn(s)&&(o=pe(o),s=pe(s)),!J(t)&&Ke(o)&&!Ke(s))return l||(o.value=s),!0}const i=J(t)&&mo(n)?Number(n)<t.length:fe(t,n),a=Reflect.set(t,n,s,Ke(t)?t:r);return t===pe(r)&&(i?sn(s,o)&&Ht(t,"set",n,s):Ht(t,"add",n,s)),a}deleteProperty(t,n){const s=fe(t,n);t[n];const r=Reflect.deleteProperty(t,n);return r&&s&&Ht(t,"delete",n,void 0),r}has(t,n){const s=Reflect.has(t,n);return(!Mt(n)||!Xa.has(n))&&We(t,"has",n),s}ownKeys(t){return We(t,"iterate",J(t)?"length":kn),Reflect.ownKeys(t)}}class vu extends Qa{constructor(t=!1){super(!0,t)}set(t,n){return!0}deleteProperty(t,n){return!0}}const yu=new Ja,ku=new vu,_u=new Ja(!0);const jr=e=>e,ws=e=>Reflect.getPrototypeOf(e);function wu(e,t,n){return function(...s){const r=this.__v_raw,o=pe(r),i=In(o),a=e==="entries"||e===Symbol.iterator&&i,l=e==="keys"&&i,c=r[e](...s),u=n?jr:t?Vs:je;return!t&&We(o,"iterate",l?$r:kn),{next(){const{value:d,done:m}=c.next();return m?{value:d,done:m}:{value:a?[u(d[0]),u(d[1])]:u(d),done:m}},[Symbol.iterator](){return this}}}}function Ts(e){return function(...t){return e==="delete"?!1:e==="clear"?void 0:this}}function Tu(e,t){const n={get(r){const o=this.__v_raw,i=pe(o),a=pe(r);e||(sn(r,a)&&We(i,"get",r),We(i,"get",a));const{has:l}=ws(i),c=t?jr:e?Vs:je;if(l.call(i,r))return c(o.get(r));if(l.call(i,a))return c(o.get(a));o!==i&&o.get(r)},get size(){const r=this.__v_raw;return!e&&We(pe(r),"iterate",kn),r.size},has(r){const o=this.__v_raw,i=pe(o),a=pe(r);return e||(sn(r,a)&&We(i,"has",r),We(i,"has",a)),r===a?o.has(r):o.has(r)||o.has(a)}
vendor: 4,345 bytes, line 2
2,forEach(r,o){const i=this,a=i.__v_raw,l=pe(a),c=t?jr:e?Vs:je;return!e&&We(l,"iterate",kn),a.forEach((u,d)=>r.call(o,c(u),c(d),i))}};return ze(n,e?{add:Ts("add"),set:Ts("set"),delete:Ts("delete"),clear:Ts("clear")}:{add(r){!t&&!ft(r)&&!rn(r)&&(r=pe(r));const o=pe(this);return ws(o).has.call(o,r)||(o.add(r),Ht(o,"add",r,r)),this},set(r,o){!t&&!ft(o)&&!rn(o)&&(o=pe(o));const i=pe(this),{has:a,get:l}=ws(i);let c=a.call(i,r);c||(r=pe(r),c=a.call(i,r));const u=l.call(i,r);return i.set(r,o),c?sn(o,u)&&Ht(i,"set",r,o):Ht(i,"add",r,o),this},delete(r){const o=pe(this),{has:i,get:a}=ws(o);let l=i.call(o,r);l||(r=pe(r),l=i.call(o,r)),a&&a.call(o,r);const c=o.delete(r);return l&&Ht(o,"delete",r,void 0),c},clear(){const r=pe(this),o=r.size!==0,i=r.clear();return o&&Ht(r,"clear",void 0,void 0),i}}),["keys","values","entries",Symbol.iterator].forEach(r=>{n[r]=wu(r,e,t)}),n}function _o(e,t){const n=Tu(e,t);return(s,r,o)=>r==="__v_isReactive"?!e:r==="__v_isReadonly"?e:r==="__v_raw"?s:Reflect.get(fe(n,r)&&r in s?n:s,r,o)}const Su={get:_o(!1,!1)},Pu={get:_o(!1,!0)},xu={get:_o(!0,!1)};const Za=new WeakMap,el=new WeakMap,tl=new WeakMap,Cu=new WeakMap;function Eu(e){switch(e){case"Object":case"Array":return 1;case"Map":case"Set":case"WeakMap":case"WeakSet":return 2;default:return 0}}function Ru(e){return e.__v_skip||!Object.isExtensible(e)?0:Eu(eu(e))}function lr(e){return rn(e)?e:wo(e,!1,yu,Su,Za)}function nl(e){return wo(e,!1,_u,Pu,el)}function Kr(e){return wo(e,!0,ku,xu,tl)}function wo(e,t,n,s,r){if(!ke(e)||e.__v_raw&&!(t&&e.__v_isReactive))return e;const o=Ru(e);if(o===0)return e;const i=r.get(e);if(i)return i;const a=new Proxy(e,o===2?s:n);return r.set(e,a),a}function Ln(e){return rn(e)?Ln(e.__v_raw):!!(e&&e.__v_isReactive)}function rn(e){return!!(e&&e.__v_isReadonly)}function ft(e){return!!(e&&e.__v_isShallow)}function To(e){return e?!!e.__v_raw:!1}function pe(e){const t=e&&e.__v_raw;return t?pe(t):e}function Au(e){return!fe(e,"__v_skip")&&Object.isExtensible(e)&&Fa(e,"__v_skip",!0),e}const je=e=>ke(e)?lr(e):e,Vs=e=>ke(e)?Kr(e):e;function Ke(e){return e?e.__v_isRef===!0:!1}function ve(e){return rl(e,!1)}function sl(e){return rl(e,!0)}function rl(e,t){return Ke(e)?e:new Iu(e,t)}class Iu{constructor(t,n){this.dep=new ko,this.__v_isRef=!0,this.__v_isShallow=!1,this._rawValue=n?t:pe(t),this._value=n?t:je(t),this.__v_isShallow=n}get value(){return this.dep.track(),this._value}set value(t){const n=this._rawValue,s=this.__v_isShallow||ft(t)||rn(t);t=s?t:pe(t),sn(t,n)&&(this._rawValue=t,this._value=s?t:je(t),this.dep.trigger())}}function j(e){return Ke(e)?e.value:e}const Lu={get:(e,t,n)=>t==="__v_raw"?e:j(Reflect.get(e,t,n)),set:(e,t,n,s)=>{const r=e[t];return Ke(r)&&!Ke(n)?(r.value=n,!0):Reflect.set(e,t,n,s)}};function ol(e){return Ln(e)?e:new Proxy(e,Lu)}class Ou{constructor(t,n,s){this.fn=t,this.setter=n,this._value=void 0,this.dep=new ko(this),this.__v_isRef=!0,this.deps=void 0,this.depsTail=void 0,this.flags=16,this.globalVersion=cs-1,this.next=void 0,this.effect=this,this.__v_isReadonly=!n,this.isSSR=s}notify(){if(this.flags|=16,!(this.flags&8)&&_e!==this)return Ba(this,!0),!0}get value(){const t=this.dep.track();return za(this),t&&(t.version=this.dep.version),this._value}set value(t){this.setter&&this.setter(t)}}function Du(e,t,n=!1){let s,r;return te(e)?s=e:(s=e.get,r=e.set),new Ou(s,r,n)}const Ss={},Us=new WeakMap;let bn;function Nu(e,t=!1,n=bn){if(n){let s=Us.get(n);s||Us.set(n,s=[]),s.push(e)}}function Mu(e,t,n=ye){const{immediate:s,deep:r,once:o,scheduler:i,augmentJob:a,call:l}=n,c=_=>r?_:ft(_)||r===!1||r===0?Bt(_,1):Bt(_);let u,d,m,b,P=!1,x=!1;if(Ke(e)?(d=()=>e.value,P=ft(e)):Ln(e)?(d=()=>c(e),P=!0):J(e)?(x=!0,P=e.some(_=>Ln(_)||ft(_)),d=()=>e.map(_=>{if(Ke(_))return _.value;if(Ln(_))return c(_);if(te(_))return l?l(_,2):_()})):te(e)?t?d=l?()=>l(e,2):e:d=()=>{if(m){Gt();try{m()}finally{Yt()}}const _=bn;bn=u;try{return l?l(e,3,[b]):e(b)}finally{bn=_}}:d=Dt,t&&r){const _=d,I=r===!0?1/0:r;d=()=>Bt(_(),I)}const F=du(),A=()=>{u.stop(),F&&F.active&&fo(F.effects,u)};if(o&&t){const _=t;t=(...I)=>{_(...I),A()}}let $=x?new Array(e.length).fill(Ss):Ss;const k=_=>{if(!(!(u.flags&1)||!u.dirty&&!_))if(t){const I=u.run();if(r||P||(x?I.some((L,U)=>sn(L,$[U])):sn(I,$))){m&&m();const L=bn;bn=u;try{const U=[I,$===Ss?void 0:x&&$[0]===Ss?[]:$,b];$=I,l?l(t,3,U):t(...U)}finally{bn=L}}}else u.run()};
vendor: 10,427 bytes, line 2
2return a&&a(k),u=new Ka(d),u.scheduler=i?()=>i(k,!1):k,b=_=>Nu(_,!1,u),m=u.onStop=()=>{const _=Us.get(u);if(_){if(l)l(_,4);else for(const I of _)I();Us.delete(u)}},t?s?k(!0):$=u.run():i?i(k.bind(null,!0),!0):u.run(),A.pause=u.pause.bind(u),A.resume=u.resume.bind(u),A.stop=A,A}function Bt(e,t=1/0,n){if(t<=0||!ke(e)||e.__v_skip||(n=n||new Map,(n.get(e)||0)>=t))return e;if(n.set(e,t),t--,Ke(e))Bt(e.value,t,n);else if(J(e))for(let s=0;s<e.length;s++)Bt(e[s],t,n);else if($n(e)||In(e))e.forEach(s=>{Bt(s,t,n)});else if(Ma(e)){for(const s in e)Bt(e[s],t,n);for(const s of Object.getOwnPropertySymbols(e))Object.prototype.propertyIsEnumerable.call(e,s)&&Bt(e[s],t,n)}return e}function vs(e,t,n,s){try{return s?e(...s):e()}catch(r){cr(r,t,n)}}function Ft(e,t,n,s){if(te(e)){const r=vs(e,t,n,s);return r&&Da(r)&&r.catch(o=>{cr(o,t,n)}),r}if(J(e)){const r=[];for(let o=0;o<e.length;o++)r.push(Ft(e[o],t,n,s));return r}}function cr(e,t,n,s=!0){const r=t?t.vnode:null,{errorHandler:o,throwUnhandledErrorInProduction:i}=t&&t.appContext.config||ye;if(t){let a=t.parent;const l=t.proxy,c=`https://vuejs.org/error-reference/#runtime-${n}`;for(;a;){const u=a.ec;if(u){for(let d=0;d<u.length;d++)if(u[d](e,l,c)===!1)return}a=a.parent}if(o){Gt(),vs(o,null,10,[e,l,c]),Yt();return}}Fu(e,n,r,s,i)}function Fu(e,t,n,s=!0,r=!1){if(r)throw e;console.error(e)}const Ze=[];let It=-1;const On=[];let en=null,xn=0;const il=Promise.resolve();let $s=null;function So(e){const t=$s||il;return e?t.then(this?e.bind(this):e):t}function Vu(e){let t=It+1,n=Ze.length;for(;t<n;){const s=t+n>>>1,r=Ze[s],o=ds(r);o<e||o===e&&r.flags&2?t=s+1:n=s}return t}function Po(e){if(!(e.flags&1)){const t=ds(e),n=Ze[Ze.length-1];!n||!(e.flags&2)&&t>=ds(n)?Ze.push(e):Ze.splice(Vu(t),0,e),e.flags|=1,al()}}function al(){$s||($s=il.then(cl))}function Uu(e){J(e)?On.push(...e):en&&e.id===-1?en.splice(xn+1,0,e):e.flags&1||(On.push(e),e.flags|=1),al()}function ni(e,t,n=It+1){for(;n<Ze.length;n++){const s=Ze[n];if(s&&s.flags&2){if(e&&s.id!==e.uid)continue;Ze.splice(n,1),n--,s.flags&4&&(s.flags&=-2),s(),s.flags&4||(s.flags&=-2)}}}function ll(e){if(On.length){const t=[...new Set(On)].sort((n,s)=>ds(n)-ds(s));if(On.length=0,en){en.push(...t);return}for(en=t,xn=0;xn<en.length;xn++){const n=en[xn];n.flags&4&&(n.flags&=-2),n.flags&8||n(),n.flags&=-2}en=null,xn=0}}const ds=e=>e.id==null?e.flags&2?-1:1/0:e.id;function cl(e){try{for(It=0;It<Ze.length;It++){const t=Ze[It];t&&!(t.flags&8)&&(t.flags&4&&(t.flags&=-2),vs(t,t.i,t.i?15:14),t.flags&4||(t.flags&=-2))}}finally{for(;It<Ze.length;It++){const t=Ze[It];t&&(t.flags&=-2)}It=-1,Ze.length=0,ll(),$s=null,(Ze.length||On.length)&&cl()}}let ct=null,ul=null;function js(e){const t=ct;return ct=e,ul=e&&e.type.__scopeId||null,t}function $e(e,t=ct,n){if(!t||e._n)return e;const s=(...r)=>{s._d&&Bs(-1);const o=js(t);let i;try{i=e(...r)}finally{js(o),s._d&&Bs(1)}return i};return s._n=!0,s._c=!0,s._d=!0,s}function Rt(e,t){if(ct===null)return e;const n=fr(ct),s=e.dirs||(e.dirs=[]);for(let r=0;r<t.length;r++){let[o,i,a,l=ye]=t[r];o&&(te(o)&&(o={mounted:o,updated:o}),o.deep&&Bt(i),s.push({dir:o,instance:n,value:i,oldValue:void 0,arg:a,modifiers:l}))}return e}function pn(e,t,n,s){const r=e.dirs,o=t&&t.dirs;for(let i=0;i<r.length;i++){const a=r[i];o&&(a.oldValue=o[i].value);let l=a.dir[s];l&&(Gt(),Ft(l,n,8,[e.el,a,e,t]),Yt())}}const $u=Symbol("_vte"),ju=e=>e.__isTeleport,Ku=Symbol("_leaveCb");function xo(e,t){e.shapeFlag&6&&e.component?(e.transition=t,xo(e.component.subTree,t)):e.shapeFlag&128?(e.ssContent.transition=t.clone(e.ssContent),e.ssFallback.transition=t.clone(e.ssFallback)):e.transition=t}function Xt(e,t){return te(e)?ze({name:e.name},t,{setup:e}):e}function dl(e){e.ids=[e.ids[0]+e.ids[2]+++"-",0,0]}const Ks=new WeakMap;function ns(e,t,n,s,r=!1){if(J(e)){e.forEach((P,x)=>ns(P,t&&(J(t)?t[x]:t),n,s,r));return}if(ss(s)&&!r){s.shapeFlag&512&&s.type.__asyncResolved&&s.component.subTree.component&&ns(e,t,n,s.component.subTree);return}const o=s.shapeFlag&4?fr(s.component):s.el,i=r?null:o,{i:a,r:l}=e,c=t&&t.r,u=a.refs===ye?a.refs={}:a.refs,d=a.setupState,m=pe(d),b=d===ye?Oa:P=>fe(m,P);if(c!=null&&c!==l){if(si(t),Ne(c))u[c]=null,b(c)&&(d[c]=null);else if(Ke(c)){c.value=null;const P=t;P.k&&(u[P.k]=null)}}if(te(l))vs(l,a,12,[i,u]);else{const P=Ne(l),x=Ke(l);if(P||x){const F=()=>{if(e.f){const A=P?b(l)?d[l]:u[l]:l.value;if(r)J(A)&&fo(A,o);else if(J(A))A.includes(o)||A.push(o);else if(P)u[l]=[o],b(l)&&(d[l]=u[l]);else{const $=[o];l.value=$,e.k&&(u[e.k]=$)}}else P?(u[l]=i,b(l)&&(d[l]=i)):x&&(l.value=i,e.k&&(u[e.k]=i))};if(i){const A=()=>{F(),Ks.delete(e)};A.id=-1,Ks.set(e,A),lt(A,n)}else si(e),F()}}}function si(e){const t=Ks.get(e);t&&(t.flags|=8,Ks.delete(e))}ir().requestIdleCallback;ir().cancelIdleCallback;const ss=e=>!!e.type.__asyncLoader,pl=e=>e.type.__isKeepAlive;function fl(e,t){hl(e,"a",t)}function ml(e,t){hl(e,"da",t)}function hl(e,t,n=qe){const s=e.__wdc||(e.__wdc=()=>{let r=n;for(;r;){if(r.isDeactivated)return;r=r.parent}return e()});if(ur(t,s,n),n){let r=n.parent;for(;r&&r.parent;)pl(r.parent.vnode)&&Hu(s,t,n,r),r=r.parent}}function Hu(e,t,n,s){const r=ur(t,e,s,!0);jn(()=>{fo(s[t],r)},n)}function ur(e,t,n=qe,s=!1){if(n){const r=n[e]||(n[e]=[]),o=t.__weh||(t.__weh=(...i)=>{Gt();const a=ks(n),l=Ft(t,n,e,i);return a(),Yt(),l});return s?r.unshift(o):r.push(o),o}}const Qt=e=>(t,n=qe)=>{(!fs||e==="sp")&&ur(e,(...s)=>t(...s),n)},Bu=Qt("bm"),dr=Qt("m"),Wu=Qt("bu"),qu=Qt("u"),zu=Qt("bum"),jn=Qt("um"),Gu=Qt("sp"),Yu=Qt("rtg"),Xu=Qt("rtc");function Qu(e,t=qe){ur("ec",e,t)}const Ju="components";function gl(e,t){return ed(Ju,e,!0,t)||e}const Zu=Symbol.for("v-ndc");function ed(e,t,n=!0,s=!1){const r=ct||qe;if(r){const o=r.type;{const a=Hd(o,!1);if(a&&(a===t||a===gt(t)||a===rr(gt(t))))return o}const i=ri(r[e]||o[e],t)||ri(r.appContext[e],t);return!i&&s?o:i}}function ri(e,t){return e&&(e[t]||e[gt(t)]||e[rr(gt(t))])}function bl(e,t,n,s){let r;const o=n,i=J(e);if(i||Ne(e)){const a=i&&Ln(e);let l=!1,c=!1;a&&(l=!ft(e),c=rn(e),e=ar(e)),r=new Array(e.length);for(let u=0,d=e.length;u<d;u++)r[u]=t(l?c?Vs(je(e[u])):je(e[u]):e[u],u,void 0,o)}else if(typeof e=="number"){r=new Array(e);for(let a=0;a<e;a++)r[a]=t(a+1,a,void 0,o)}else if(ke(e))if(e[Symbol.iterator])r=Array.from(e,(a,l)=>t(a,l,void 0,o));else{const a=Object.keys(e);r=new Array(a.length);for(let l=0,c=a.length;l<c;l++){const u=a[l];r[l]=t(e[u],u,l,o)}}else r=[];return r}const Hr=e=>e?Fl(e)?fr(e):Hr(e.parent):null,rs=ze(Object.create(null),{$:e=>e,$el:e=>e.vnode.el,$data:e=>e.data,$props:e=>e.props,$attrs:e=>e.attrs,$slots:e=>e.slots,$refs:e=>e.refs,$parent:e=>Hr(e.parent),$root:e=>Hr(e.root),$host:e=>e.ce,$emit:e=>e.emit,$options:e=>yl(e),$forceUpdate:e=>e.f||(e.f=()=>{Po(e.update)}),$nextTick:e=>e.n||(e.n=So.bind(e.proxy)),$watch:e=>_d.bind(e)}),Cr=(e,t)=>e!==ye&&!e.__isScriptSetup&&fe(e,t),td={get({_:e},t){if(t==="__v_skip")return!0;const{ctx:n,setupState:s,data:r,props:o,accessCache:i,type:a,appContext:l}=e;let c;if(t[0]!=="$"){const b=i[t];if(b!==void 0)switch(b){case 1:return s[t];case 2:return r[t];case 4:return n[t];case 3:return o[t]}else{if(Cr(s,t))return i[t]=1,s[t];if(r!==ye&&fe(r,t))return i[t]=2,r[t];if((c=e.propsOptions[0])&&fe(c,t))return i[t]=3,o[t];if(n!==ye&&fe(n,t))return i[t]=4,n[t];Br&&(i[t]=0)}}const u=rs[t];let d,m;if(u)return t==="$attrs"&&We(e.attrs,"get",""),u(e);if((d=a.__cssModules)&&(d=d[t]))return d;if(n!==ye&&fe(n,t))return i[t]=4,n[t];if(m=l.config.globalProperties,fe(m,t))return m[t]},set({_:e},t,n){const{data:s,setupState:r,ctx:o}=e;return Cr(r,t)?(r[t]=n,!0):s!==ye&&fe(s,t)?(s[t]=n,!0):fe(e.props,t)||t[0]==="$"&&t.slice(1)in e?!1:(o[t]=n,!0)},has({_:{data:e,setupState:t,accessCache:n,ctx:s,appContext:r,propsOptions:o,type:i}},a){let l,c;return!!(n[a]||e!==ye&&a[0]!=="$"&&fe(e,a)||Cr(t,a)||(l=o[0])&&fe(l,a)||fe(s,a)||fe(rs,a)||fe(r.config.globalProperties,a)||(c=i.__cssModules)&&c[a])},defineProperty(e,t,n){return n.get!=null?e._.accessCache[t]=0:fe(n,"value")&&this.set(e,t,n.value,null),Reflect.defineProperty(e,t,n)}};function oi(e){return J(e)?e.reduce((t,n)=>(t[n]=null,t),{}):e}let Br=!0;function nd(e){const t=yl(e),n=e.proxy,s=e.ctx;Br=!1,t.beforeCreate&&ii(t.beforeCreate,e,"bc");const{data:r,computed:o,methods:i,watch:a,provide:l,inject:c,created:u,beforeMount:d,mounted:m,beforeUpdate:b,updated:P,activated:x,deactivated:F,beforeDestroy:A,beforeUnmount:$,destroyed:k,unmounted:_,render:I,renderTracked:L,renderTriggered:U,errorCaptured:G,serverPrefetch:z,expose:ae,inheritAttrs:Re,components:ee,directives:we,filters:vt}=t;if(c&&sd(c,s,null),i)for(const re in i){const ne=i[re];te(ne)&&(s[re]=ne.bind(n))}if(r){const re=r.call(n,n);ke(re)&&(e.data=lr(re))}if(Br=!0,o)for(const re in o){const ne=o[re],Ge=te(ne)?ne.bind(n,n):te(ne.get)?ne.get.bind(n,n):Dt,ue=!te(ne)&&te(ne.set)?ne.set.bind(n):Dt,xe=Oe({get:Ge,set:ue});Object.defineProperty(s,re,{enumerable:!0,configurable:!0,get:()=>xe.value,set:Se=>xe.value=Se})}if(a)for(const re in a)vl(a[re],s,n,re);if(l){const re=te(l)?l.call(n):l;Reflect.ownKeys(re).forEach(ne=>{Is(ne,re[ne])})}u&&ii(u,e,"c");function be(re,ne){J(ne)?ne.forEach(Ge=>re(Ge.bind(n))):ne&&re(ne.bind(n))}if(be(Bu,d),be(dr,m),be(Wu,b),be(qu,P),be(fl,x),be(ml,F),be(Qu,G),be(Xu,L),be(Yu,U),be(zu,$),be(jn,_),be(Gu,z),J(ae))if(ae.length){const re=e.exposed||(e.exposed={});ae.forEach(ne=>{Object.defineProperty(re,ne,{get:()=>n[ne],set:Ge=>n[ne]=Ge,enumerable:!0})})}else e.exposed||(e.exposed={});I&&e.render===Dt&&(e.render=I),Re!=null&&(e.inheritAttrs=Re),ee&&(e.components=ee),we&&(e.directives=we),z&&dl(e)}function sd(e,t,n=Dt){J(e)&&(e=Wr(e));for(const s in e){const r=e[s];let o;ke(r)?"default"in r?o=mt(r.from||s,r.default,!0):o=mt(r.from||s):o=mt(r),Ke(o)?Object.defineProperty(t,s,{enumerable:!0,configurable:!0,get:()=>o.value,set:i=>o.value=i}):t[s]=o}}function ii(e,t,n){Ft(J(e)?e.map(s=>s.bind(t.proxy)):e.bind(t.proxy),t,n)}function vl(e,t,n,s){let r=s.includes(".")?Ll(n,s):()=>n[s];if(Ne(e)){const o=t[e];te(o)&&qt(r,o)}else if(te(e))qt(r,e.bind(n));else if(ke(e))if(J(e))e.forEach(o=>vl(o,t,n,s));else{const o=te(e.handler)?e.handler.bind(n):t[e.handler];te(o)&&qt(r,o,e)}}function yl(e){const t=e.type,{mixins:n,extends:s}=t,{mixins:r,optionsCache:o,config:{optionMergeStrategies:i}}=e.appContext,a=o.get(t);let l;return a?l=a:!r.length&&!n&&!s?l=t:(l={},r.length&&r.forEach(c=>Hs(l,c,i,!0)),Hs(l,t,i)),ke(t)&&o.set(t,l),l}function Hs(e,t,n,s=!1){const{mixins:r,extends:o}=t;o&&Hs(e,o,n,!0),r&&r.forEach(i=>
vendor: 4,927 bytes, line 2
2Hs(e,i,n,!0));for(const i in t)if(!(s&&i==="expose")){const a=rd[i]||n&&n[i];e[i]=a?a(e[i],t[i]):t[i]}return e}const rd={data:ai,props:li,emits:li,methods:Qn,computed:Qn,beforeCreate:Xe,created:Xe,beforeMount:Xe,mounted:Xe,beforeUpdate:Xe,updated:Xe,beforeDestroy:Xe,beforeUnmount:Xe,destroyed:Xe,unmounted:Xe,activated:Xe,deactivated:Xe,errorCaptured:Xe,serverPrefetch:Xe,components:Qn,directives:Qn,watch:id,provide:ai,inject:od};function ai(e,t){return t?e?function(){return ze(te(e)?e.call(this,this):e,te(t)?t.call(this,this):t)}:t:e}function od(e,t){return Qn(Wr(e),Wr(t))}function Wr(e){if(J(e)){const t={};for(let n=0;n<e.length;n++)t[e[n]]=e[n];return t}return e}function Xe(e,t){return e?[...new Set([].concat(e,t))]:t}function Qn(e,t){return e?ze(Object.create(null),e,t):t}function li(e,t){return e?J(e)&&J(t)?[...new Set([...e,...t])]:ze(Object.create(null),oi(e),oi(t??{})):t}function id(e,t){if(!e)return t;if(!t)return e;const n=ze(Object.create(null),e);for(const s in t)n[s]=Xe(e[s],t[s]);return n}function kl(){return{app:null,config:{isNativeTag:Oa,performance:!1,globalProperties:{},optionMergeStrategies:{},errorHandler:void 0,warnHandler:void 0,compilerOptions:{}},mixins:[],components:{},directives:{},provides:Object.create(null),optionsCache:new WeakMap,propsCache:new WeakMap,emitsCache:new WeakMap}}let ad=0;function ld(e,t){return function(s,r=null){te(s)||(s=ze({},s)),r!=null&&!ke(r)&&(r=null);const o=kl(),i=new WeakSet,a=[];let l=!1;const c=o.app={_uid:ad++,_component:s,_props:r,_container:null,_context:o,_instance:null,version:Wd,get config(){return o.config},set config(u){},use(u,...d){return i.has(u)||(u&&te(u.install)?(i.add(u),u.install(c,...d)):te(u)&&(i.add(u),u(c,...d))),c},mixin(u){return o.mixins.includes(u)||o.mixins.push(u),c},component(u,d){return d?(o.components[u]=d,c):o.components[u]},directive(u,d){return d?(o.directives[u]=d,c):o.directives[u]},mount(u,d,m){if(!l){const b=c._ceVNode||oe(s,r);return b.appContext=o,m===!0?m="svg":m===!1&&(m=void 0),e(b,u,m),l=!0,c._container=u,u.__vue_app__=c,fr(b.component)}},onUnmount(u){a.push(u)},unmount(){l&&(Ft(a,c._instance,16),e(null,c._container),delete c._container.__vue_app__)},provide(u,d){return o.provides[u]=d,c},runWithContext(u){const d=Dn;Dn=c;try{return u()}finally{Dn=d}}};return c}}let Dn=null;function Is(e,t){if(qe){let n=qe.provides;const s=qe.parent&&qe.parent.provides;s===n&&(n=qe.provides=Object.create(s)),n[e]=t}}function mt(e,t,n=!1){const s=Ao();if(s||Dn){let r=Dn?Dn._context.provides:s?s.parent==null||s.ce?s.vnode.appContext&&s.vnode.appContext.provides:s.parent.provides:void 0;if(r&&e in r)return r[e];if(arguments.length>1)return n&&te(t)?t.call(s&&s.proxy):t}}const _l={},wl=()=>Object.create(_l),Tl=e=>Object.getPrototypeOf(e)===_l;function cd(e,t,n,s=!1){const r={},o=wl();e.propsDefaults=Object.create(null),Sl(e,t,r,o);for(const i in e.propsOptions[0])i in r||(r[i]=void 0);n?e.props=s?r:nl(r):e.type.props?e.props=r:e.props=o,e.attrs=o}function ud(e,t,n,s){const{props:r,attrs:o,vnode:{patchFlag:i}}=e,a=pe(r),[l]=e.propsOptions;let c=!1;if((s||i>0)&&!(i&16)){if(i&8){const u=e.vnode.dynamicProps;for(let d=0;d<u.length;d++){let m=u[d];if(pr(e.emitsOptions,m))continue;const b=t[m];if(l)if(fe(o,m))b!==o[m]&&(o[m]=b,c=!0);else{const P=gt(m);r[P]=qr(l,a,P,b,e,!1)}else b!==o[m]&&(o[m]=b,c=!0)}}}else{Sl(e,t,r,o)&&(c=!0);let u;for(const d in a)(!t||!fe(t,d)&&((u=Tn(d))===d||!fe(t,u)))&&(l?n&&(n[d]!==void 0||n[u]!==void 0)&&(r[d]=qr(l,a,d,void 0,e,!0)):delete r[d]);if(o!==a)for(const d in o)(!t||!fe(t,d))&&(delete o[d],c=!0)}c&&Ht(e.attrs,"set","")}function Sl(e,t,n,s){const[r,o]=e.propsOptions;let i=!1,a;if(t)for(let l in t){if(Zn(l))continue;const c=t[l];let u;r&&fe(r,u=gt(l))?!o||!o.includes(u)?n[u]=c:(a||(a={}))[u]=c:pr(e.emitsOptions,l)||(!(l in s)||c!==s[l])&&(s[l]=c,i=!0)}if(o){const l=pe(n),c=a||ye;for(let u=0;u<o.length;u++){const d=o[u];n[d]=qr(r,l,d,c[d],e,!fe(c,d))}}return i}function qr(e,t,n,s,r,o){const i=e[n];if(i!=null){const a=fe(i,"default");if(a&&s===void 0){const l=i.default;if(i.type!==Function&&!i.skipFactory&&te(l)){const{propsDefaults:c}=r;if(n in c)s=c[n];else{const u=ks(r);s=c[n]=l.call(null,t),u()}}else s=l;r.ce&&r.ce._setProp(n,s)}i[0]&&(o&&!a?s=!1:i[1]&&(s===""||s===Tn(n))&&(s=!0))}return s}const dd=new WeakMap;function Pl(e,t,n=!1){const s=n?dd:t.propsCache,r=s.get(e);if(r)return r;const o=e.props,i={},a=[];let l=!1;if(!te(e)){const u=d=>{l=!0;const[m,b]=Pl(d,t,!0);ze(i,m),b&&a.push(...b)};!n&&t.mixins.length&&t.mixins.forEach(u),e.extends&&u(e.extends),e.mixins&&e.mixins.forEach(u)}if(!o&&!l)return ke(e)&&s.set(e,An),An;if(J(o))for(let u=0;u<o.length;u++){const d=gt(o[u]);ci(d)&&(i[d]=ye)}else if(o)for(const u in o){const d=gt(u);if(ci(d)){const m=o[u],b=i[d]=J(m)||te(m)?{type:m}:ze({},m),P=b.type;let x=!1,F=!0;if(J(P))for(let A=0;A<P.length;++A){const $=P[A],k=te($)&&$.name;if(k==="Boolean"){x=!0;break}else k==="String"&&(F=!1)}
vendor: 4,369 bytes, line 2
2else x=te(P)&&P.name==="Boolean";b[0]=x,b[1]=F,(x||fe(b,"default"))&&a.push(d)}}const c=[i,a];return ke(e)&&s.set(e,c),c}function ci(e){return e[0]!=="$"&&!Zn(e)}const Co=e=>e==="_"||e==="_ctx"||e==="$stable",Eo=e=>J(e)?e.map(Lt):[Lt(e)],pd=(e,t,n)=>{if(t._n)return t;const s=$e((...r)=>Eo(t(...r)),n);return s._c=!1,s},xl=(e,t,n)=>{const s=e._ctx;for(const r in e){if(Co(r))continue;const o=e[r];if(te(o))t[r]=pd(r,o,s);else if(o!=null){const i=Eo(o);t[r]=()=>i}}},Cl=(e,t)=>{const n=Eo(t);e.slots.default=()=>n},El=(e,t,n)=>{for(const s in t)(n||!Co(s))&&(e[s]=t[s])},fd=(e,t,n)=>{const s=e.slots=wl();if(e.vnode.shapeFlag&32){const r=t._;r?(El(s,t,n),n&&Fa(s,"_",r,!0)):xl(t,s)}else t&&Cl(e,t)},md=(e,t,n)=>{const{vnode:s,slots:r}=e;let o=!0,i=ye;if(s.shapeFlag&32){const a=t._;a?n&&a===1?o=!1:El(r,t,n):(o=!t.$stable,xl(t,r)),i=t}else t&&(Cl(e,t),i={default:1});if(o)for(const a in r)!Co(a)&&i[a]==null&&delete r[a]},lt=Rd;function hd(e){return gd(e)}function gd(e,t){const n=ir();n.__VUE__=!0;const{insert:s,remove:r,patchProp:o,createElement:i,createText:a,createComment:l,setText:c,setElementText:u,parentNode:d,nextSibling:m,setScopeId:b=Dt,insertStaticContent:P}=e,x=(h,g,w,M=null,V=null,O=null,W=void 0,B=null,p=!!g.dynamicChildren)=>{if(h===g)return;h&&!Wn(h,g)&&(M=y(h),Se(h,V,O,!0),h=null),g.patchFlag===-2&&(p=!1,g.dynamicChildren=null);const{type:f,ref:S,shapeFlag:E}=g;switch(f){case ys:F(h,g,w,M);break;case on:A(h,g,w,M);break;case Ls:h==null&&$(g,w,M,W);break;case et:ee(h,g,w,M,V,O,W,B,p);break;default:E&1?I(h,g,w,M,V,O,W,B,p):E&6?we(h,g,w,M,V,O,W,B,p):(E&64||E&128)&&f.process(h,g,w,M,V,O,W,B,p,N)}S!=null&&V?ns(S,h&&h.ref,O,g||h,!g):S==null&&h&&h.ref!=null&&ns(h.ref,null,O,h,!0)},F=(h,g,w,M)=>{if(h==null)s(g.el=a(g.children),w,M);else{const V=g.el=h.el;g.children!==h.children&&c(V,g.children)}},A=(h,g,w,M)=>{h==null?s(g.el=l(g.children||""),w,M):g.el=h.el},$=(h,g,w,M)=>{[h.el,h.anchor]=P(h.children,g,w,M,h.el,h.anchor)},k=({el:h,anchor:g},w,M)=>{let V;for(;h&&h!==g;)V=m(h),s(h,w,M),h=V;s(g,w,M)},_=({el:h,anchor:g})=>{let w;for(;h&&h!==g;)w=m(h),r(h),h=w;r(g)},I=(h,g,w,M,V,O,W,B,p)=>{if(g.type==="svg"?W="svg":g.type==="math"&&(W="mathml"),h==null)L(g,w,M,V,O,W,B,p);else{const f=h.el&&h.el._isVueCE?h.el:null;try{f&&f._beginPatch(),z(h,g,V,O,W,B,p)}finally{f&&f._endPatch()}}},L=(h,g,w,M,V,O,W,B)=>{let p,f;const{props:S,shapeFlag:E,transition:q,dirs:K}=h;if(p=h.el=i(h.type,O,S&&S.is,S),E&8?u(p,h.children):E&16&&G(h.children,p,null,M,V,Er(h,O),W,B),K&&pn(h,null,M,"created"),U(p,h,h.scopeId,W,M),S){for(const R in S)R!=="value"&&!Zn(R)&&o(p,R,null,S[R],O,M);"value"in S&&o(p,"value",null,S.value,O),(f=S.onVnodeBeforeMount)&&Et(f,M,h)}K&&pn(h,null,M,"beforeMount");const T=bd(V,q);T&&q.beforeEnter(p),s(p,g,w),((f=S&&S.onVnodeMounted)||T||K)&<(()=>{f&&Et(f,M,h),T&&q.enter(p),K&&pn(h,null,M,"mounted")},V)},U=(h,g,w,M,V)=>{if(w&&b(h,w),M)for(let O=0;O<M.length;O++)b(h,M[O]);if(V){let O=V.subTree;if(g===O||Dl(O.type)&&(O.ssContent===g||O.ssFallback===g)){const W=V.vnode;U(h,W,W.scopeId,W.slotScopeIds,V.parent)}}},G=(h,g,w,M,V,O,W,B,p=0)=>{for(let f=p;f<h.length;f++){const S=h[f]=B?tn(h[f]):Lt(h[f]);x(null,S,g,w,M,V,O,W,B)}},z=(h,g,w,M,V,O,W)=>{const B=g.el=h.el;let{patchFlag:p,dynamicChildren:f,dirs:S}=g;p|=h.patchFlag&16;const E=h.props||ye,q=g.props||ye;let K;if(w&&fn(w,!1),(K=q.onVnodeBeforeUpdate)&&Et(K,w,g,h),S&&pn(g,h,w,"beforeUpdate"),w&&fn(w,!0),(E.innerHTML&&q.innerHTML==null||E.textContent&&q.textContent==null)&&u(B,""),f?ae(h.dynamicChildren,f,B,w,M,Er(g,V),O):W||ne(h,g,B,null,w,M,Er(g,V),O,!1),p>0){if(p&16)Re(B,E,q,w,V);else if(p&2&&E.class!==q.class&&o(B,"class",null,q.class,V),p&4&&o(B,"style",E.style,q.style,V),p&8){const T=g.dynamicProps;for(let R=0;R<T.length;R++){const Q=T[R],se=E[Q],Pe=q[Q];(Pe!==se||Q==="value")&&o(B,Q,se,Pe,V,w)}}p&1&&h.children!==g.children&&u(B,g.children)}else!W&&f==null&&Re(B,E,q,w,V);((K=q.onVnodeUpdated)||S)&<(()=>{K&&Et(K,w,g,h),S&&pn(g,h,w,"updated")},M)},ae=(h,g,w,M,V,O,W)=>{for(let B=0;B<g.length;B++){const p=h[B],f=g[B],S=p.el&&(p.type===et||!Wn(p,f)||p.shapeFlag&198)?d(p.el):w;x(p,f,S,null,M,V,O,W,!0)}},Re=(h,g,w,M,V)=>{if(g!==w){if(g!==ye)for(const O in g)!Zn(O)&&!(O in w)&&o(h,O,g[O],null,V,M);for(const O in w){if(Zn(O))continue;const W=w[O],B=g[O];W!==B&&O!=="value"&&o(h,O,B,W,V,M)}"value"in w&&o(h,"value",g.value,w.value,V)}},ee=(h,g,w,M,V,O,W,B,p)=>
vendor: 14,084 bytes, line 2
2{const f=g.el=h?h.el:a(""),S=g.anchor=h?h.anchor:a("");let{patchFlag:E,dynamicChildren:q,slotScopeIds:K}=g;K&&(B=B?B.concat(K):K),h==null?(s(f,w,M),s(S,w,M),G(g.children||[],w,S,V,O,W,B,p)):E>0&&E&64&&q&&h.dynamicChildren?(ae(h.dynamicChildren,q,w,V,O,W,B),(g.key!=null||V&&g===V.subTree)&&Rl(h,g,!0)):ne(h,g,w,S,V,O,W,B,p)},we=(h,g,w,M,V,O,W,B,p)=>{g.slotScopeIds=B,h==null?g.shapeFlag&512?V.ctx.activate(g,w,M,W,p):vt(g,w,M,V,O,W,p):He(h,g,p)},vt=(h,g,w,M,V,O,W)=>{const B=h.component=Vd(h,M,V);if(pl(h)&&(B.ctx.renderer=N),Ud(B,!1,W),B.asyncDep){if(V&&V.registerDep(B,be,W),!h.el){const p=B.subTree=oe(on);A(null,p,g,w),h.placeholder=p.el}}else be(B,h,g,w,V,O,W)},He=(h,g,w)=>{const M=g.component=h.component;if(Cd(h,g,w))if(M.asyncDep&&!M.asyncResolved){re(M,g,w);return}else M.next=g,M.update();else g.el=h.el,M.vnode=g},be=(h,g,w,M,V,O,W)=>{const B=()=>{if(h.isMounted){let{next:E,bu:q,u:K,parent:T,vnode:R}=h;{const Ue=Al(h);if(Ue){E&&(E.el=R.el,re(h,E,W)),Ue.asyncDep.then(()=>{h.isUnmounted||B()});return}}let Q=E,se;fn(h,!1),E?(E.el=R.el,re(h,E,W)):E=R,q&&As(q),(se=E.props&&E.props.onVnodeBeforeUpdate)&&Et(se,T,E,R),fn(h,!0);const Pe=di(h),Ye=h.subTree;h.subTree=Pe,x(Ye,Pe,d(Ye.el),y(Ye),h,V,O),E.el=Pe.el,Q===null&&Ed(h,Pe.el),K&<(K,V),(se=E.props&&E.props.onVnodeUpdated)&<(()=>Et(se,T,E,R),V)}else{let E;const{el:q,props:K}=g,{bm:T,m:R,parent:Q,root:se,type:Pe}=h,Ye=ss(g);fn(h,!1),T&&As(T),!Ye&&(E=K&&K.onVnodeBeforeMount)&&Et(E,Q,g),fn(h,!0);{se.ce&&se.ce._def.shadowRoot!==!1&&se.ce._injectChildStyle(Pe);const Ue=h.subTree=di(h);x(null,Ue,w,M,h,V,O),g.el=Ue.el}if(R&<(R,V),!Ye&&(E=K&&K.onVnodeMounted)){const Ue=g;lt(()=>Et(E,Q,Ue),V)}(g.shapeFlag&256||Q&&ss(Q.vnode)&&Q.vnode.shapeFlag&256)&&h.a&<(h.a,V),h.isMounted=!0,g=w=M=null}};h.scope.on();const p=h.effect=new Ka(B);h.scope.off();const f=h.update=p.run.bind(p),S=h.job=p.runIfDirty.bind(p);S.i=h,S.id=h.uid,p.scheduler=()=>Po(S),fn(h,!0),f()},re=(h,g,w)=>{g.component=h;const M=h.vnode.props;h.vnode=g,h.next=null,ud(h,g.props,M,w),md(h,g.children,w),Gt(),ni(h),Yt()},ne=(h,g,w,M,V,O,W,B,p=!1)=>{const f=h&&h.children,S=h?h.shapeFlag:0,E=g.children,{patchFlag:q,shapeFlag:K}=g;if(q>0){if(q&128){ue(f,E,w,M,V,O,W,B,p);return}else if(q&256){Ge(f,E,w,M,V,O,W,B,p);return}}K&8?(S&16&&Ie(f,V,O),E!==f&&u(w,E)):S&16?K&16?ue(f,E,w,M,V,O,W,B,p):Ie(f,V,O,!0):(S&8&&u(w,""),K&16&&G(E,w,M,V,O,W,B,p))},Ge=(h,g,w,M,V,O,W,B,p)=>{h=h||An,g=g||An;const f=h.length,S=g.length,E=Math.min(f,S);let q;for(q=0;q<E;q++){const K=g[q]=p?tn(g[q]):Lt(g[q]);x(h[q],K,w,null,V,O,W,B,p)}f>S?Ie(h,V,O,!0,!1,E):G(g,w,M,V,O,W,B,p,E)},ue=(h,g,w,M,V,O,W,B,p)=>{let f=0;const S=g.length;let E=h.length-1,q=S-1;for(;f<=E&&f<=q;){const K=h[f],T=g[f]=p?tn(g[f]):Lt(g[f]);if(Wn(K,T))x(K,T,w,null,V,O,W,B,p);else break;f++}for(;f<=E&&f<=q;){const K=h[E],T=g[q]=p?tn(g[q]):Lt(g[q]);if(Wn(K,T))x(K,T,w,null,V,O,W,B,p);else break;E--,q--}if(f>E){if(f<=q){const K=q+1,T=K<S?g[K].el:M;for(;f<=q;)x(null,g[f]=p?tn(g[f]):Lt(g[f]),w,T,V,O,W,B,p),f++}}else if(f>q)for(;f<=E;)Se(h[f],V,O,!0),f++;else{const K=f,T=f,R=new Map;for(f=T;f<=q;f++){const at=g[f]=p?tn(g[f]):Lt(g[f]);at.key!=null&&R.set(at.key,f)}let Q,se=0;const Pe=q-T+1;let Ye=!1,Ue=0;const dn=new Array(Pe);for(f=0;f<Pe;f++)dn[f]=0;for(f=K;f<=E;f++){const at=h[f];if(se>=Pe){Se(at,V,O,!0);continue}let Ct;if(at.key!=null)Ct=R.get(at.key);else for(Q=T;Q<=q;Q++)if(dn[Q-T]===0&&Wn(at,g[Q])){Ct=Q;break}Ct===void 0?Se(at,V,O,!0):(dn[Ct-T]=f+1,Ct>=Ue?Ue=Ct:Ye=!0,x(at,g[Ct],w,null,V,O,W,B,p),se++)}const _r=Ye?vd(dn):An;for(Q=_r.length-1,f=Pe-1;f>=0;f--){const at=T+f,Ct=g[at],Xo=g[at+1],Qo=at+1<S?Xo.el||Xo.placeholder:M;dn[f]===0?x(null,Ct,w,Qo,V,O,W,B,p):Ye&&(Q<0||f!==_r[Q]?xe(Ct,w,Qo,2):Q--)}}},xe=(h,g,w,M,V=null)=>{const{el:O,type:W,transition:B,children:p,shapeFlag:f}=h;if(f&6){xe(h.component.subTree,g,w,M);return}if(f&128){h.suspense.move(g,w,M);return}if(f&64){W.move(h,g,w,N);return}if(W===et){s(O,g,w);for(let E=0;E<p.length;E++)xe(p[E],g,w,M);s(h.anchor,g,w);return}if(W===Ls){k(h,g,w);return}if(M!==2&&f&1&&B)if(M===0)B.beforeEnter(O),s(O,g,w),lt(()=>B.enter(O),V);else{const{leave:E,delayLeave:q,afterLeave:K}=B,T=()=>{h.ctx.isUnmounted?r(O):s(O,g,w)},R=()=>{O._isLeaving&&O[Ku](!0),E(O,()=>{T(),K&&K()})};q?q(O,T,R):R()}else s(O,g,w)},Se=(h,g,w,M=!1,V=!1)=>{const{type:O,props:W,ref:B,children:p,dynamicChildren:f,shapeFlag:S,patchFlag:E,dirs:q,cacheIndex:K}=h;if(E===-2&&(V=!1),B!=null&&(Gt(),ns(B,null,w,h,!0),Yt()),K!=null&&(g.renderCache[K]=void 0),S&256){g.ctx.deactivate(h);return}const T=S&1&&q,R=!ss(h);let Q;if(R&&(Q=W&&W.onVnodeBeforeUnmount)&&Et(Q,g,h),S&6)it(h.component,w,M);else{if(S&128){h.suspense.unmount(w,M);return}T&&pn(h,null,g,"beforeUnmount"),S&64?h.type.remove(h,g,w,N,M):f&&!f.hasOnce&&(O!==et||E>0&&E&64)?Ie(f,g,w,!1,!0):(O===et&&E&384||!V&&S&16)&&Ie(p,g,w),M&&dt(h)}(R&&(Q=W&&W.onVnodeUnmounted)||T)&<(()=>{Q&&Et(Q,g,h),T&&pn(h,null,g,"unmounted")},w)},dt=h=>{const{type:g,el:w,anchor:M,transition:V}=h;if(g===et){ot(w,M);return}if(g===Ls){_(h);return}const O=()=>{r(w),V&&!V.persisted&&V.afterLeave&&V.afterLeave()};if(h.shapeFlag&1&&V&&!V.persisted){const{leave:W,delayLeave:B}=V,p=()=>W(w,O);B?B(h.el,O,p):p()}else O()},ot=(h,g)=>{let w;for(;h!==g;)w=m(h),r(h),h=w;r(g)},it=(h,g,w)=>{const{bum:M,scope:V,job:O,subTree:W,um:B,m:p,a:f}=h;ui(p),ui(f),M&&As(M),V.stop(),O&&(O.flags|=8,Se(W,h,g,w)),B&<(B,g),lt(()=>{h.isUnmounted=!0},g)},Ie=(h,g,w,M=!1,V=!1,O=0)=>{for(let W=O;W<h.length;W++)Se(h[W],g,w,M,V)},y=h=>{if(h.shapeFlag&6)return y(h.component.subTree);if(h.shapeFlag&128)return h.suspense.next();const g=m(h.anchor||h.el),w=g&&g[$u];return w?m(w):g};let C=!1;const D=(h,g,w)=>{h==null?g._vnode&&Se(g._vnode,null,null,!0):x(g._vnode||null,h,g,null,null,null,w),g._vnode=h,C||(C=!0,ni(),ll(),C=!1)},N={p:x,um:Se,m:xe,r:dt,mt:vt,mc:G,pc:ne,pbc:ae,n:y,o:e};return{render:D,hydrate:void 0,createApp:ld(D)}}function Er({type:e,props:t},n){return n==="svg"&&e==="foreignObject"||n==="mathml"&&e==="annotation-xml"&&t&&t.encoding&&t.encoding.includes("html")?void 0:n}function fn({effect:e,job:t},n){n?(e.flags|=32,t.flags|=4):(e.flags&=-33,t.flags&=-5)}function bd(e,t){return(!e||e&&!e.pendingBranch)&&t&&!t.persisted}function Rl(e,t,n=!1){const s=e.children,r=t.children;if(J(s)&&J(r))for(let o=0;o<s.length;o++){const i=s[o];let a=r[o];a.shapeFlag&1&&!a.dynamicChildren&&((a.patchFlag<=0||a.patchFlag===32)&&(a=r[o]=tn(r[o]),a.el=i.el),!n&&a.patchFlag!==-2&&Rl(i,a)),a.type===ys&&a.patchFlag!==-1&&(a.el=i.el),a.type===on&&!a.el&&(a.el=i.el)}}function vd(e){const t=e.slice(),n=[0];let s,r,o,i,a;const l=e.length;for(s=0;s<l;s++){const c=e[s];if(c!==0){if(r=n[n.length-1],e[r]<c){t[s]=r,n.push(s);continue}for(o=0,i=n.length-1;o<i;)a=o+i>>1,e[n[a]]<c?o=a+1:i=a;c<e[n[o]]&&(o>0&&(t[s]=n[o-1]),n[o]=s)}}for(o=n.length,i=n[o-1];o-- >0;)n[o]=i,i=t[i];return n}function Al(e){const t=e.subTree.component;if(t)return t.asyncDep&&!t.asyncResolved?t:Al(t)}function ui(e){if(e)for(let t=0;t<e.length;t++)e[t].flags|=8}const yd=Symbol.for("v-scx"),kd=()=>mt(yd);function qt(e,t,n){return Il(e,t,n)}function Il(e,t,n=ye){const{immediate:s,deep:r,flush:o,once:i}=n,a=ze({},n),l=t&&s||!t&&o!=="post";let c;if(fs){if(o==="sync"){const b=kd();c=b.__watcherHandles||(b.__watcherHandles=[])}else if(!l){const b=()=>{};return b.stop=Dt,b.resume=Dt,b.pause=Dt,b}}const u=qe;a.call=(b,P,x)=>Ft(b,u,P,x);let d=!1;o==="post"?a.scheduler=b=>{lt(b,u&&u.suspense)}:o!=="sync"&&(d=!0,a.scheduler=(b,P)=>{P?b():Po(b)}),a.augmentJob=b=>{t&&(b.flags|=4),d&&(b.flags|=2,u&&(b.id=u.uid,b.i=u))};const m=Mu(e,t,a);return fs&&(c?c.push(m):l&&m()),m}function _d(e,t,n){const s=this.proxy,r=Ne(e)?e.includes(".")?Ll(s,e):()=>s[e]:e.bind(s,s);let o;te(t)?o=t:(o=t.handler,n=t);const i=ks(this),a=Il(r,o.bind(s),n);return i(),a}function Ll(e,t){const n=t.split(".");return()=>{let s=e;for(let r=0;r<n.length&&s;r++)s=s[n[r]];return s}}const wd=(e,t)=>t==="modelValue"||t==="model-value"?e.modelModifiers:e[`${t}Modifiers`]||e[`${gt(t)}Modifiers`]||e[`${Tn(t)}Modifiers`];function Td(e,t,...n){if(e.isUnmounted)return;const s=e.vnode.props||ye;let r=n;const o=t.startsWith("update:"),i=o&&wd(s,t.slice(7));i&&(i.trim&&(r=n.map(u=>Ne(u)?u.trim():u)),i.number&&(r=n.map(or)));let a,l=s[a=wr(t)]||s[a=wr(gt(t))];!l&&o&&(l=s[a=wr(Tn(t))]),l&&Ft(l,e,6,r);const c=s[a+"Once"];if(c){if(!e.emitted)e.emitted={};else if(e.emitted[a])return;e.emitted[a]=!0,Ft(c,e,6,r)}}const Sd=new WeakMap;function Ol(e,t,n=!1){const s=n?Sd:t.emitsCache,r=s.get(e);if(r!==void 0)return r;const o=e.emits;let i={},a=!1;if(!te(e)){const l=c=>{const u=Ol(c,t,!0);u&&(a=!0,ze(i,u))};!n&&t.mixins.length&&t.mixins.forEach(l),e.extends&&l(e.extends),e.mixins&&e.mixins.forEach(l)}return!o&&!a?(ke(e)&&s.set(e,null),null):(J(o)?o.forEach(l=>i[l]=null):ze(i,o),ke(e)&&s.set(e,i),i)}function pr(e,t){return!e||!nr(t)?!1:(t=t.slice(2).replace(/Once$/,""),fe(e,t[0].toLowerCase()+t.slice(1))||fe(e,Tn(t))||fe(e,t))}function di(e){const{type:t,vnode:n,proxy:s,withProxy:r,propsOptions:[o],slots:i,attrs:a,emit:l,render:c,renderCache:u,props:d,data:m,setupState:b,ctx:P,inheritAttrs:x}=e,F=js(e);let A,$;try{if(n.shapeFlag&4){const _=r||s,I=_;A=Lt(c.call(I,_,u,d,b,m,P)),$=a}else{const _=t;A=Lt(_.length>1?_(d,{attrs:a,slots:i,emit:l}):_(d,null)),$=t.props?a:Pd(a)}}catch(_){os.length=0,cr(_,e,1),A=oe(on)}let k=A;if($&&x!==!1){const _=Object.keys($),{shapeFlag:I}=k;_.length&&I&7&&(o&&_.some(po)&&($=xd($,o)),k=Nn(k,$,!1,!0))}return n.dirs&&(k=Nn(k,null,!1,!0),k.dirs=k.dirs?k.dirs.concat(n.dirs):n.dirs),n.transition&&xo(k,n.transition),A=k,js(F),A}const Pd=e=>{let t;for(const n in e)(n==="class"||n==="style"||nr(n))&&((t||(t={}))[n]=e[n]);return t},xd=(e,t)=>{const n={};for(const s in e)(!po(s)||!(s.slice(9)in t))&&(n[s]=e[s]);return n};function Cd(e,t,n){const{props:s,children:r,component:o}=e,{props:i,children:a,patchFlag:l}=t,c=o.emitsOptions;if(t.dirs||t.transition)return!0;if(n&&l>=0){if(l&1024)return!0;if(l&16)return s?pi(s,i,c):!!i;if(l&8){const u=t.dynamicProps;for(let d=0;d<u.length;d++){const m=u[d];if(i[m]!==s[m]&&!pr(c,m))return!0}}}else return(r||a)&&(!a||!a.$stable)?!0:s===i?!1:s?i?pi(s,i,c):!0:!!i;return!1}function pi(e,t,n){const s=Object.keys(t);if(s.length!==Object.keys(e).length)return!0;for(let r=0;r<s.length;r++){const o=s[r];if(t[o]!==e[o]&&!pr(n,o))return!0}return!1}function Ed({vnode:e,parent:t},n){for(;t;){const s=t.subTree;if(s.suspense&&s.suspense.activeBranch===e&&(s.el=e.el),s===e)(e=t.vnode).el=n,t=t.parent;else break}}const Dl=e=>e.__isSuspense;function Rd(e,t){t&&t.pendingBranch?J(e)?t.effects.push(...e):t.effects.push(e):Uu(e)}const et=Symbol.for("v-fgt"),ys=Symbol.for("v-txt"),on=Symbol.for("v-cmt"),Ls=Symbol.for("v-stc"),os=[];let ut=null;function Ae(e=!1){os.push(ut=e?null:[])}function Ad(){os.pop(),ut=os[os.length-1]||null}let ps=1;function Bs(e,t=!1){ps+=e,e<0&&ut&&t&&(ut.hasOnce=!0)}function Nl(e){return e.dynamicChildren=ps>0?ut||An:null,Ad(),ps>0&&ut&&ut.push(e),e}function Le(e,t,n,s,r,o){return Nl(v(e,t,n,s,r,o,!0))}function Id(e,t,n,s,r){return Nl(oe(e,t,n,s,r,!0))}function Ws(e){return e?e.__v_isVNode===!0:!1}function Wn(e,t){return e.type===t.type&&e.key===t.key}const Ml=({key:e})=>e??null,Os=({ref:e,ref_key:t,ref_for:n})=>(typeof e=="number"&&(e=""+e),e!=null?Ne(e)||Ke(e)||te(e)?{i:ct,r:e,k:t,f:!!n}:e:null);function v(e,t=null,n=null,s=0,r=null,o=e===et?0:1,i=!1,a=!1){const l={__v_isVNode:!0,__v_skip:!0,type:e,props:t,key:t&&Ml(t),ref:t&&Os(t),scopeId:ul,slotScopeIds:null,children:n,component:null,suspense:null,ssContent:null,ssFallback:null,dirs:null,transition:null,el:null,anchor:null,target:null,targetStart:null,targetAnchor:null,staticCount:0,shapeFlag:o,patchFlag:s,dynamicProps:r,dynamicChildren:null,appContext:null,ctx:ct};return a?(Ro(l,n),o&128&&e.normalize(l)):n&&(l.shapeFlag|=Ne(n)?8:16),ps>0&&!i&&ut&&(l.patchFlag>0||o&6)&&l.patchFlag!==32&&ut.push(l),l}const oe=Ld;function Ld(e,t=null,n=null,s=0,r=null,o=!1){if((!e||e===Zu)&&(e=on),Ws(e)){const a=Nn(e,t,!0);return n&&Ro(a,n),ps>0&&!o&&ut&&(a.shapeFlag&6?ut[ut.indexOf(e)]=a:ut.push(a)),a.patchFlag=-2,a}if(Bd(e)&&(e=e.__vccOpts),t){t=Od(t);let{class:a,style:l}=t;a&&!Ne(a)&&(t.class=Be(a)),ke(l)&&(To(l)&&!J(l)&&(l=ze({},l)),t.style=ho(l))}const i=Ne(e)?1:Dl(e)?128:ju(e)?64:ke(e)?4:te(e)?2:0;return v(e,t,n,s,r,i,o,!0)}function Od(e){return e?To(e)||Tl(e)?ze({},e):e:null}function Nn(e,t,n=!1,s=!1){const{props:r,ref:o,patchFlag:i,children:a,transition:l}=e,c=t?Nd(r||{},t):r,u={__v_isVNode:!0,__v_skip:!0,type:e.type,props:c,key:c&&Ml(c),ref:t&&t.ref?n&&o?J(o)?o.concat(Os(t)):[o,Os(t)]:Os(t):o,scopeId:e.scopeId,slotScopeIds:e.slotScopeIds,children:a,target:e.target,targetStart:e.targetStart,targetAnchor:e.targetAnchor,staticCount:e.staticCount,shapeFlag:e.shapeFlag,patchFlag:t&&e.type!==et?i===-1?16:i|16:i,dynamicProps:e.dynamicProps,dynamicChildren:e.dynamicChildren,appContext:e.appContext,dirs:e.dirs,transition:l,component:e.component,suspense:e.suspense,ssContent:e.ssContent&&Nn(e.ssContent),ssFallback:e.ssFallback&&Nn(e.ssFallback),placeholder:e.placeholder,el:e.el,anchor:e.anchor,ctx:e.ctx,ce:e.ce};return l&&s&&xo(u,l.clone(u)),u}function Ve(e=" ",t=0){return oe(ys,null,e,t)}function Dd(e,t){const n=oe(Ls,null,e);return n.staticCount=t,n}function vn(e="",t=!1){return t?(Ae(),Id(on,null,e)):oe(on,null,e)}function Lt(e){return e==null||typeof e=="boolean"?oe(on):J(e)?oe(et,null,e.slice()):Ws(e)?tn(e):oe(ys,null,String(e))}function tn(e){return e.el===null&&e.patchFlag!==-1||e.memo?e:Nn(e)}function Ro(e,t){let n=0;const{shapeFlag:s}=e;if(t==null)t=null;else if(J(t))n=16;else if(typeof t=="object")if(s&65){const r=t.default;r&&(r._c&&(r._d=!1),Ro(e,r()),r._c&&(r._d=!0));return}else{n=32;const r=t._;!r&&!Tl(t)?t._ctx=ct:r===3&&ct&&(ct.slots._===1?t._=1:(t._=2,e.patchFlag|=1024))}else te(t)?(t={default:t,_ctx:ct},n=32):(t=String(t),s&64?(n=16,t=[Ve(t)]):n=8);e.children=t,e.shapeFlag|=n}function Nd(...e){const t={};for(let n=0;n<e.length;n++){const s=e[n];for(const r in s)if(r==="class")t.class!==s.class&&(t.class=Be([t.class,s.class]));else if(r==="style")t.style=ho([t.style,s.style]);else if(nr(r)){const o=t[r],i=s[r];
vendor: 5,293 bytes, line 2
2i&&o!==i&&!(J(o)&&o.includes(i))&&(t[r]=o?[].concat(o,i):i)}else r!==""&&(t[r]=s[r])}return t}function Et(e,t,n,s=null){Ft(e,t,7,[n,s])}const Md=kl();let Fd=0;function Vd(e,t,n){const s=e.type,r=(t?t.appContext:e.appContext)||Md,o={uid:Fd++,vnode:e,type:s,parent:t,appContext:r,root:null,next:null,subTree:null,effect:null,update:null,job:null,scope:new ja(!0),render:null,proxy:null,exposed:null,exposeProxy:null,withProxy:null,provides:t?t.provides:Object.create(r.provides),ids:t?t.ids:["",0,0],accessCache:null,renderCache:[],components:null,directives:null,propsOptions:Pl(s,r),emitsOptions:Ol(s,r),emit:null,emitted:null,propsDefaults:ye,inheritAttrs:s.inheritAttrs,ctx:ye,data:ye,props:ye,attrs:ye,slots:ye,refs:ye,setupState:ye,setupContext:null,suspense:n,suspenseId:n?n.pendingId:0,asyncDep:null,asyncResolved:!1,isMounted:!1,isUnmounted:!1,isDeactivated:!1,bc:null,c:null,bm:null,m:null,bu:null,u:null,um:null,bum:null,da:null,a:null,rtg:null,rtc:null,ec:null,sp:null};return o.ctx={_:o},o.root=t?t.root:o,o.emit=Td.bind(null,o),e.ce&&e.ce(o),o}let qe=null;const Ao=()=>qe||ct;let qs,zr;{const e=ir(),t=(n,s)=>{let r;return(r=e[n])||(r=e[n]=[]),r.push(s),o=>{r.length>1?r.forEach(i=>i(o)):r[0](o)}};qs=t("__VUE_INSTANCE_SETTERS__",n=>qe=n),zr=t("__VUE_SSR_SETTERS__",n=>fs=n)}const ks=e=>{const t=qe;return qs(e),e.scope.on(),()=>{e.scope.off(),qs(t)}},fi=()=>{qe&&qe.scope.off(),qs(null)};function Fl(e){return e.vnode.shapeFlag&4}let fs=!1;function Ud(e,t=!1,n=!1){t&&zr(t);const{props:s,children:r}=e.vnode,o=Fl(e);cd(e,s,o,t),fd(e,r,n||t);const i=o?$d(e,t):void 0;return t&&zr(!1),i}function $d(e,t){const n=e.type;e.accessCache=Object.create(null),e.proxy=new Proxy(e.ctx,td);const{setup:s}=n;if(s){Gt();const r=e.setupContext=s.length>1?Kd(e):null,o=ks(e),i=vs(s,e,0,[e.props,r]),a=Da(i);if(Yt(),o(),(a||e.sp)&&!ss(e)&&dl(e),a){if(i.then(fi,fi),t)return i.then(l=>{mi(e,l)}).catch(l=>{cr(l,e,0)});e.asyncDep=i}else mi(e,i)}else Vl(e)}function mi(e,t,n){te(t)?e.type.__ssrInlineRender?e.ssrRender=t:e.render=t:ke(t)&&(e.setupState=ol(t)),Vl(e)}function Vl(e,t,n){const s=e.type;e.render||(e.render=s.render||Dt);{const r=ks(e);Gt();try{nd(e)}finally{Yt(),r()}}}const jd={get(e,t){return We(e,"get",""),e[t]}};function Kd(e){const t=n=>{e.exposed=n||{}};return{attrs:new Proxy(e.attrs,jd),slots:e.slots,emit:e.emit,expose:t}}function fr(e){return e.exposed?e.exposeProxy||(e.exposeProxy=new Proxy(ol(Au(e.exposed)),{get(t,n){if(n in t)return t[n];if(n in rs)return rs[n](e)},has(t,n){return n in t||n in rs}})):e.proxy}function Hd(e,t=!0){return te(e)?e.displayName||e.name:e.name||t&&e.__name}function Bd(e){return te(e)&&"__vccOpts"in e}const Oe=(e,t)=>Du(e,t,fs);function mr(e,t,n){try{Bs(-1);const s=arguments.length;return s===2?ke(t)&&!J(t)?Ws(t)?oe(e,null,[t]):oe(e,t):oe(e,null,t):(s>3?n=Array.prototype.slice.call(arguments,2):s===3&&Ws(n)&&(n=[n]),oe(e,t,n))}finally{Bs(1)}}const Wd="3.5.24";let Gr;const hi=typeof window<"u"&&window.trustedTypes;if(hi)try{Gr=hi.createPolicy("vue",{createHTML:e=>e})}catch{}const Ul=Gr?e=>Gr.createHTML(e):e=>e,qd="http://www.w3.org/2000/svg",zd="http://www.w3.org/1998/Math/MathML",Kt=typeof document<"u"?document:null,gi=Kt&&Kt.createElement("template"),Gd={insert:(e,t,n)=>{t.insertBefore(e,n||null)},remove:e=>{const t=e.parentNode;t&&t.removeChild(e)},createElement:(e,t,n,s)=>{const r=t==="svg"?Kt.createElementNS(qd,e):t==="mathml"?Kt.createElementNS(zd,e):n?Kt.createElement(e,{is:n}):Kt.createElement(e);return e==="select"&&s&&s.multiple!=null&&r.setAttribute("multiple",s.multiple),r},createText:e=>Kt.createTextNode(e),createComment:e=>Kt.createComment(e),setText:(e,t)=>{e.nodeValue=t},setElementText:(e,t)=>{e.textContent=t},parentNode:e=>e.parentNode,nextSibling:e=>e.nextSibling,querySelector:e=>Kt.querySelector(e),setScopeId(e,t){e.setAttribute(t,"")},insertStaticContent(e,t,n,s,r,o){const i=n?n.previousSibling:t.lastChild;if(r&&(r===o||r.nextSibling))for(;t.insertBefore(r.cloneNode(!0),n),!(r===o||!(r=r.nextSibling)););else{gi.innerHTML=Ul(s==="svg"?`<svg>${e}</svg>`:s==="mathml"?`<math>${e}</math>`:e);const a=gi.content;if(s==="svg"||s==="mathml"){const l=a.firstChild;for(;l.firstChild;)a.appendChild(l.firstChild);a.removeChild(l)}t.insertBefore(a,n)}return[i?i.nextSibling:t.firstChild,n?n.previousSibling:t.lastChild]}},Yd=Symbol("_vtc");function Xd(e,t,n){const s=e[Yd];s&&(t=(t?[t,...s]:[...s]).join(" ")),t==null?e.removeAttribute("class"):n?e.setAttribute("class",t):e.className=t}const zs=Symbol("_vod"),$l=Symbol("_vsh"),Qd={name:"show",beforeMount(e,{value:t},{transition:n}){e[zs]=e.style.display==="none"?"":e.style.display,n&&t?n.beforeEnter(e):qn(e,t)},mounted(e,{value:t},{transition:n}){n&&t&&n.enter(e)},updated(e,{value:t,oldValue:n},{transition:s}){!t!=!n&&(s?t?(s.beforeEnter(e),qn(e,!0),s.enter(e)):s.leave(e,()=>{qn(e,!1)}):qn(e,t))},beforeUnmount(e,{value:t}){qn(e,t)}};function qn(e,t){e.style.display=t?e[zs]:"none",e[$l]=!t}const Jd=Symbol(""),Zd=/(?:^|;)\s*display\s*:/;function ep(e,t,n){const s=e.style,r=Ne(n);let o=!1;if(n&&!r){if(t)if(Ne(t))for(const i of t.split(";")){const a=i.slice(0,i.indexOf(":")).trim();n[a]==null&&Ds(s,a,"")}else for(const i in t)n[i]==null&&Ds(s,i,"");for(const i in n)i==="display"&&(o=!0),Ds(s,i,n[i])}else if(r){if(t!==n){const i=s[Jd];i&&(n+=";
2"+i),s.cssText=n,o=Zd.test(n)}}else t&&e.removeAttribute("style");zs in e&&(e[zs]=o?s.display:"",e[$l]&&(s.display="none"))}const bi=/\s*!important$/;function Ds(e,t,n){if(J(n))n.forEach(s=>Ds(e,t,s));else if(n==null&&(n=""),t.startsWith("--"))e.setProperty(t,n);else{const s=tp(e,t);bi.test(n)?e.setProperty(Tn(s),n.replace(bi,""),"important"):e[s]=n}}const vi=["Webkit","Moz","ms"],Rr={};function tp(e,t){const n=Rr[t];if(n)return n;let s=gt(t);if(s!=="filter"&&s in e)return Rr[t]=s;s=rr(s);for(let r=0;r<vi.length;r++){const o=vi[r]+s;if(o in e)return Rr[t]=o}return t}const yi="http://www.w3.org/1999/xlink";function ki(e,t,n,s,r,o=lu(t)){s&&t.startsWith("xlink:")?n==null?e.removeAttributeNS(yi,t.slice(6,t.length)):e.setAttributeNS(yi,t,n):n==null||o&&!Va(n)?e.removeAttribute(t):e.setAttribute(t,o?"":Mt(n)?String(n):n)}function _i(e,t,n,s,r){if(t==="innerHTML"||t==="textContent"){n!=null&&(e[t]=t==="innerHTML"?Ul(n):n);return}const o=e.tagName;if(t==="value"&&o!=="PROGRESS"&&!o.includes("-")){const a=o==="OPTION"?e.getAttribute("value")||"":e.value,l=n==null?e.type==="checkbox"?"on":"":String(n);(a!==l||!("_value"in e))&&(e.value=l),n==null&&e.removeAttribute(t),e._value=n;return}let i=!1;if(n===""||n==null){const a=typeof e[t];a==="boolean"?n=Va(n):n==null&&a==="string"?(n="",i=!0):a==="number"&&(n=0,i=!0)}try{e[t]=n}catch{}i&&e.removeAttribute(r||t)}function Wt(e,t,n,s){e.addEventListener(t,n,s)}function np(e,t,n,s){e.removeEventListener(t,n,s)}const wi=Symbol("_vei");function sp(e,t,n,s,r=null){const o=e[wi]||(e[wi]={}),i=o[t];if(s&&i)i.value=s;else{const[a,l]=rp(t);if(s){const c=o[t]=ap(s,r);Wt(e,a,c,l)}else i&&(np(e,a,i,l),o[t]=void 0)}}const Ti=/(?:Once|Passive|Capture)$/;function rp(e){let t;if(Ti.test(e)){t={};let s;for(;s=e.match(Ti);)e=e.slice(0,e.length-s[0].length),t[s[0].toLowerCase()]=!0}return[e[2]===":"?e.slice(3):Tn(e.slice(2)),t]}let Ar=0;const op=Promise.resolve(),ip=()=>Ar||(op.then(()=>Ar=0),Ar=Date.now());function ap(e,t){const n=s=>{if(!s._vts)s._vts=Date.now();else if(s._vts<=n.attached)return;Ft(lp(s,n.value),t,5,[s])};return n.value=e,n.attached=ip(),n}function lp(e,t){if(J(t)){const n=e.stopImmediatePropagation;return e.stopImmediatePropagation=()=>{n.call(e),e._stopped=!0},t.map(s=>r=>!r._stopped&&s&&s(r))}else return t}const Si=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&e.charCodeAt(2)>96&&e.charCodeAt(2)<123,cp=(e,t,n,s,r,o)=>{const i=r==="svg";t==="class"?Xd(e,s,i):t==="style"?ep(e,n,s):nr(t)?po(t)||sp(e,t,n,s,o):(t[0]==="."?(t=t.slice(1),!0):t[0]==="^"?(t=t.slice(1),!1):up(e,t,s,i))?(_i(e,t,s),!e.tagName.includes("-")&&(t==="value"||t==="checked"||t==="selected")&&ki(e,t,s,i,o,t!=="value")):e._isVueCE&&(/[A-Z]/.test(t)||!Ne(s))?_i(e,gt(t),s,o,t):(t==="true-value"?e._trueValue=s:t==="false-value"&&(e._falseValue=s),ki(e,t,s,i))};function up(e,t,n,s){if(s)return!!(t==="innerHTML"||t==="textContent"||t in e&&Si(t)&&te(n));if(t==="spellcheck"||t==="draggable"||t==="translate"||t==="autocorrect"||t==="sandbox"&&e.tagName==="IFRAME"||t==="form"||t==="list"&&e.tagName==="INPUT"||t==="type"&&e.tagName==="TEXTAREA")return!1;if(t==="width"||t==="height"){const r=e.tagName;if(r==="IMG"||r==="VIDEO"||r==="CANVAS"||r==="SOURCE")return!1}return Si(t)&&Ne(n)?!1:t in e}const an=e=>{const t=e.props["onUpdate:modelValue"]||!1;return J(t)?n=>As(t,n):t};function dp(e){e.target.composing=!0}function Pi(e){const t=e.target;t.composing&&(t.composing=!1,t.dispatchEvent(new Event("input")))}const ht=Symbol("_assign");function xi(e,t,n){return t&&(e=e.trim()),n&&(e=or(e)),e}const is={created(e,{modifiers:{lazy:t,trim:n,number:s}},r){e[ht]=an(r);const o=s||r.props&&r.props.type==="number";Wt(e,t?"change":"input",i=>{i.target.composing||e[ht](xi(e.value,n,o))}),(n||o)&&Wt(e,"change",()=>{e.value=xi(e.value,n,o)}),t||(Wt(e,"compositionstart",dp),Wt(e,"compositionend",Pi),Wt(e,"change",Pi))},mounted(e,{value:t}){e.value=t??""},beforeUpdate(e,{value:t,oldValue:n,modifiers:{lazy:s,trim:r,number:o}},i){if(e[ht]=an(i),e.composing)return;const a=(o||e.type==="number")&&!/^0\d/.test(e.value)?or(e.value):e.value,l=t??"";a!==l&&(document.activeElement===e&&e.type!=="range"&&(s&&t===n||r&&e.value.trim()===l)||(e.value=l))}},jl={deep:!0,created(e,t,n){e[ht]=an(n),Wt(e,"change",()=>{const s=e._modelValue,r=Mn(e),o=e.checked,i=e[ht];if(J(s)){const a=go(s,r),l=a!==-1;if(o&&!l)i(s.concat(r));else if(!o&&l){const c=[...s];c.splice(a,1),i(c)}}else if($n(s)){const a=new Set(s);o?a.add(r):a.delete(r),i(a)}else i(Hl(e,o))})},mounted:Ci,beforeUpdate(e,t,n){e[ht]=an(n),Ci(e,t,n)}};function Ci(e,{value:t,oldValue:n},s){e._modelValue=t;let r;if(J(t))r=go(t,s.props.value)>-1;else if($n(t))r=t.has(s.props.value);else{if(t===n)return;r=_n(t,Hl(e,!0))}e.checked!==r&&(e.checked=r)}const Ns={created(e,{value:t},n){e.checked=_n(t,n.props.value),e[ht]=an(n),Wt(e,"change",()=>{e[ht](Mn(e))})},beforeUpdate(e,{value:t,oldValue:n},s){e[ht]=an(s),t!==n&&(e.checked=_n(t,s.props.value))}},Kl={deep:!0,created(e,{value:t,modifiers:{number:n}},s){const r=$n(t);Wt(e,"change",()=>{const o=Array.prototype.filter.call(e.options,i=>i.selected).map(i=>n?or(Mn(i)):Mn(i));e[ht](e.multiple?r?new Set(o):o:o[0]),e._assigning=!0,So(()=>{e._assigning=!1})}),e[ht]=an(s)},mounted(e,{value:t}){Ei(e,t)},beforeUpdate(e,t,n){e[ht]=an(n)},updated(e,{value:t}){e._assigning||Ei(e,t)}};function Ei(e,t){const n=e.multiple,s=J(t);if(!(n&&!s&&!$n(t))){for(let r=0,o=e.options.length;r<o;r++){const i=e.options[r],a=Mn(i);if(n)if(s){const l=typeof a;l==="string"||l==="number"?i.selected=t.some(c=>
vendor: 23,806 bytes, line 2
2String(c)===String(a)):i.selected=go(t,a)>-1}else i.selected=t.has(a);else if(_n(Mn(i),t)){e.selectedIndex!==r&&(e.selectedIndex=r);return}}!n&&e.selectedIndex!==-1&&(e.selectedIndex=-1)}}function Mn(e){return"_value"in e?e._value:e.value}function Hl(e,t){const n=t?"_trueValue":"_falseValue";return n in e?e[n]:t}const pp={created(e,t,n){Ps(e,t,n,null,"created")},mounted(e,t,n){Ps(e,t,n,null,"mounted")},beforeUpdate(e,t,n,s){Ps(e,t,n,s,"beforeUpdate")},updated(e,t,n,s){Ps(e,t,n,s,"updated")}};function fp(e,t){switch(e){case"SELECT":return Kl;case"TEXTAREA":return is;default:switch(t){case"checkbox":return jl;case"radio":return Ns;default:return is}}}function Ps(e,t,n,s,r){const i=fp(e.tagName,n.props&&n.props.type)[r];i&&i(e,t,n,s)}const mp=["ctrl","shift","alt","meta"],hp={stop:e=>e.stopPropagation(),prevent:e=>e.preventDefault(),self:e=>e.target!==e.currentTarget,ctrl:e=>!e.ctrlKey,shift:e=>!e.shiftKey,alt:e=>!e.altKey,meta:e=>!e.metaKey,left:e=>"button"in e&&e.button!==0,middle:e=>"button"in e&&e.button!==1,right:e=>"button"in e&&e.button!==2,exact:(e,t)=>mp.some(n=>e[`${n}Key`]&&!t.includes(n))},Ri=(e,t)=>{const n=e._withMods||(e._withMods={}),s=t.join(".");return n[s]||(n[s]=((r,...o)=>{for(let i=0;i<t.length;i++){const a=hp[t[i]];if(a&&a(r,t))return}return e(r,...o)}))},gp=ze({patchProp:cp},Gd);let Ai;function bp(){return Ai||(Ai=hd(gp))}const vp=((...e)=>{const t=bp().createApp(...e),{mount:n}=t;return t.mount=s=>{const r=kp(s);if(!r)return;const o=t._component;!te(o)&&!o.render&&!o.template&&(o.template=r.innerHTML),r.nodeType===1&&(r.textContent="");const i=n(r,!1,yp(r));return r instanceof Element&&(r.removeAttribute("v-cloak"),r.setAttribute("data-v-app","")),i},t});function yp(e){if(e instanceof SVGElement)return"svg";if(typeof MathMLElement=="function"&&e instanceof MathMLElement)return"mathml"}function kp(e){return Ne(e)?document.querySelector(e):e}const Cn=typeof document<"u";function Bl(e){return typeof e=="object"||"displayName"in e||"props"in e||"__vccOpts"in e}function _p(e){return e.__esModule||e[Symbol.toStringTag]==="Module"||e.default&&Bl(e.default)}const de=Object.assign;function Ir(e,t){const n={};for(const s in t){const r=t[s];n[s]=Pt(r)?r.map(e):e(r)}return n}const as=()=>{},Pt=Array.isArray;function Ii(e,t){const n={};for(const s in e)n[s]=s in t?t[s]:e[s];return n}const Wl=/#/g,wp=/&/g,Tp=/\//g,Sp=/=/g,Pp=/\?/g,ql=/\+/g,xp=/%5B/g,Cp=/%5D/g,zl=/%5E/g,Ep=/%60/g,Gl=/%7B/g,Rp=/%7C/g,Yl=/%7D/g,Ap=/%20/g;function Io(e){return e==null?"":encodeURI(""+e).replace(Rp,"|").replace(xp,"[").replace(Cp,"]")}function Ip(e){return Io(e).replace(Gl,"{").replace(Yl,"}").replace(zl,"^")}function Yr(e){return Io(e).replace(ql,"%2B").replace(Ap,"+").replace(Wl,"%23").replace(wp,"%26").replace(Ep,"`").replace(Gl,"{").replace(Yl,"}").replace(zl,"^")}function Lp(e){return Yr(e).replace(Sp,"%3D")}function Op(e){return Io(e).replace(Wl,"%23").replace(Pp,"%3F")}function Dp(e){return Op(e).replace(Tp,"%2F")}function ms(e){if(e==null)return null;try{return decodeURIComponent(""+e)}catch{}return""+e}const Np=/\/$/,Mp=e=>e.replace(Np,"");function Lr(e,t,n="/"){let s,r={},o="",i="";const a=t.indexOf("#");let l=t.indexOf("?");return l=a>=0&&l>a?-1:l,l>=0&&(s=t.slice(0,l),o=t.slice(l,a>0?a:t.length),r=e(o.slice(1))),a>=0&&(s=s||t.slice(0,a),i=t.slice(a,t.length)),s=$p(s??t,n),{fullPath:s+o+i,path:s,query:r,hash:ms(i)}}function Fp(e,t){const n=t.query?e(t.query):"";return t.path+(n&&"?")+n+(t.hash||"")}function Li(e,t){return!t||!e.toLowerCase().startsWith(t.toLowerCase())?e:e.slice(t.length)||"/"}function Vp(e,t,n){const s=t.matched.length-1,r=n.matched.length-1;return s>-1&&s===r&&Fn(t.matched[s],n.matched[r])&&Xl(t.params,n.params)&&e(t.query)===e(n.query)&&t.hash===n.hash}function Fn(e,t){return(e.aliasOf||e)===(t.aliasOf||t)}function Xl(e,t){if(Object.keys(e).length!==Object.keys(t).length)return!1;for(const n in e)if(!Up(e[n],t[n]))return!1;return!0}function Up(e,t){return Pt(e)?Oi(e,t):Pt(t)?Oi(t,e):e===t}function Oi(e,t){return Pt(t)?e.length===t.length&&e.every((n,s)=>n===t[s]):e.length===1&&e[0]===t}function $p(e,t){if(e.startsWith("/"))return e;if(!e)return t;const n=t.split("/"),s=e.split("/"),r=s[s.length-1];(r===".."||r===".")&&s.push("");let o=n.length-1,i,a;for(i=0;i<s.length;i++)if(a=s[i],a!==".")if(a==="..")o>1&&o--;else break;return n.slice(0,o).join("/")+"/"+s.slice(i).join("/")}const Jt={path:"/",name:void 0,params:{},query:{},hash:"",fullPath:"/",matched:[],meta:{},redirectedFrom:void 0};let Xr=(function(e){return e.pop="pop",e.push="push",e})({}),Or=(function(e){return e.back="back",e.forward="forward",e.unknown="",e})({});function jp(e){if(!e)if(Cn){const t=document.querySelector("base");e=t&&t.getAttribute("href")||"/",e=e.replace(/^\w+:\/\/[^\/]+/,"")}else e="/";return e[0]!=="/"&&e[0]!=="#"&&(e="/"+e),Mp(e)}const Kp=/^[^#]+#/;function Hp(e,t){return e.replace(Kp,"#")+t}function Bp(e,t){const n=document.documentElement.getBoundingClientRect(),s=e.getBoundingClientRect();return{behavior:t.behavior,left:s.left-n.left-(t.left||0),top:s.top-n.top-(t.top||0)}}const hr=()=>({left:window.scrollX,top:window.scrollY});function Wp(e){let t;if("el"in e){const n=e.el,s=typeof n=="string"&&n.startsWith("#"),r=typeof n=="string"?s?document.getElementById(n.slice(1)):document.querySelector(n):n;if(!r)return;t=Bp(r,e)}else t=e;"scrollBehavior"in document.documentElement.style?window.scrollTo(t):window.scrollTo(t.left!=null?t.left:window.scrollX,t.top!=null?t.top:window.scrollY)}function Di(e,t){return(history.state?history.state.position-t:-1)+e}const Qr=new Map;function qp(e,t){Qr.set(e,t)}function zp(e){const t=Qr.get(e);return Qr.delete(e),t}function Gp(e){return typeof e=="string"||e&&typeof e=="object"}function Ql(e){return typeof e=="string"||typeof e=="symbol"}let Ce=(function(e){return e[e.MATCHER_NOT_FOUND=1]="MATCHER_NOT_FOUND",e[e.NAVIGATION_GUARD_REDIRECT=2]="NAVIGATION_GUARD_REDIRECT",e[e.NAVIGATION_ABORTED=4]="NAVIGATION_ABORTED",e[e.NAVIGATION_CANCELLED=8]="NAVIGATION_CANCELLED",e[e.NAVIGATION_DUPLICATED=16]="NAVIGATION_DUPLICATED",e})({});const Jl=Symbol("");Ce.MATCHER_NOT_FOUND+"",Ce.NAVIGATION_GUARD_REDIRECT+"",Ce.NAVIGATION_ABORTED+"",Ce.NAVIGATION_CANCELLED+"",Ce.NAVIGATION_DUPLICATED+"";function Vn(e,t){return de(new Error,{type:e,[Jl]:!0},t)}function Ut(e,t){return e instanceof Error&&Jl in e&&(t==null||!!(e.type&t))}const Yp=["params","query","hash"];function Xp(e){if(typeof e=="string")return e;if(e.path!=null)return e.path;const t={};for(const n of Yp)n in e&&(t[n]=e[n]);return JSON.stringify(t,null,2)}function Qp(e){const t={};if(e===""||e==="?")return t;const n=(e[0]==="?"?e.slice(1):e).split("&");for(let s=0;s<n.length;++s){const r=n[s].replace(ql," "),o=r.indexOf("="),i=ms(o<0?r:r.slice(0,o)),a=o<0?null:ms(r.slice(o+1));if(i in t){let l=t[i];Pt(l)||(l=t[i]=[l]),l.push(a)}else t[i]=a}return t}function Ni(e){let t="";for(let n in e){const s=e[n];if(n=Lp(n),s==null){s!==void 0&&(t+=(t.length?"&":"")+n);continue}(Pt(s)?s.map(r=>r&&Yr(r)):[s&&Yr(s)]).forEach(r=>{r!==void 0&&(t+=(t.length?"&":"")+n,r!=null&&(t+="="+r))})}return t}function Jp(e){const t={};for(const n in e){const s=e[n];s!==void 0&&(t[n]=Pt(s)?s.map(r=>r==null?null:""+r):s==null?s:""+s)}return t}const Zl=Symbol(""),Mi=Symbol(""),Lo=Symbol(""),Oo=Symbol(""),Jr=Symbol("");function zn(){let e=[];function t(s){return e.push(s),()=>{const r=e.indexOf(s);r>-1&&e.splice(r,1)}}function n(){e=[]}return{add:t,list:()=>e.slice(),reset:n}}function Zp(e,t,n){const s=()=>{e[t].delete(n)};jn(s),ml(s),fl(()=>{e[t].add(n)}),e[t].add(n)}function ef(e){const t=mt(Zl,{}).value;t&&Zp(t,"leaveGuards",e)}function nn(e,t,n,s,r,o=i=>i()){const i=s&&(s.enterCallbacks[r]=s.enterCallbacks[r]||[]);return()=>new Promise((a,l)=>{const c=m=>{m===!1?l(Vn(Ce.NAVIGATION_ABORTED,{from:n,to:t})):m instanceof Error?l(m):Gp(m)?l(Vn(Ce.NAVIGATION_GUARD_REDIRECT,{from:t,to:m})):(i&&s.enterCallbacks[r]===i&&typeof m=="function"&&i.push(m),a())},u=o(()=>e.call(s&&s.instances[r],t,n,c));let d=Promise.resolve(u);e.length<3&&(d=d.then(c)),d.catch(m=>l(m))})}function Dr(e,t,n,s,r=o=>o()){const o=[];for(const i of e)for(const a in i.components){let l=i.components[a];if(!(t!=="beforeRouteEnter"&&!i.instances[a]))if(Bl(l)){const c=(l.__vccOpts||l)[t];c&&o.push(nn(c,n,s,i,a,r))}else{let c=l();o.push(()=>c.then(u=>{if(!u)throw new Error(`Couldn't resolve component "${a}" at "${i.path}"`);const d=_p(u)?u.default:u;i.mods[a]=u,i.components[a]=d;const m=(d.__vccOpts||d)[t];return m&&nn(m,n,s,i,a,r)()}))}}return o}function tf(e,t){const n=[],s=[],r=[],o=Math.max(t.matched.length,e.matched.length);for(let i=0;i<o;i++){const a=t.matched[i];a&&(e.matched.find(c=>Fn(c,a))?s.push(a):n.push(a));const l=e.matched[i];l&&(t.matched.find(c=>Fn(c,l))||r.push(l))}return[n,s,r]}let nf=()=>location.protocol+"//"+location.host;function ec(e,t){const{pathname:n,search:s,hash:r}=t,o=e.indexOf("#");if(o>-1){let i=r.includes(e.slice(o))?e.slice(o).length:1,a=r.slice(i);return a[0]!=="/"&&(a="/"+a),Li(a,"")}return Li(n,e)+s+r}function sf(e,t,n,s){let r=[],o=[],i=null;const a=({state:m})=>{const b=ec(e,location),P=n.value,x=t.value;let F=0;if(m){if(n.value=b,t.value=m,i&&i===P){i=null;return}F=x?m.position-x.position:0}else s(b);r.forEach(A=>{A(n.value,P,{delta:F,type:Xr.pop,direction:F?F>0?Or.forward:Or.back:Or.unknown})})};function l(){i=n.value}function c(m){r.push(m);const b=()=>{const P=r.indexOf(m);P>-1&&r.splice(P,1)};return o.push(b),b}function u(){if(document.visibilityState==="hidden"){const{history:m}=window;if(!m.state)return;m.replaceState(de({},m.state,{scroll:hr()}),"")}}function d(){for(const m of o)m();o=[],window.removeEventListener("popstate",a),window.removeEventListener("pagehide",u),document.removeEventListener("visibilitychange",u)}return window.addEventListener("popstate",a),window.addEventListener("pagehide",u),document.addEventListener("visibilitychange",u),{pauseListeners:l,listen:c,destroy:d}}function Fi(e,t,n,s=!1,r=!1){return{back:e,current:t,forward:n,replaced:s,position:window.history.length,scroll:r?hr():null}}function rf(e){const{history:t,location:n}=window,s={value:ec(e,n)},r={value:t.state};r.value||o(s.value,{back:null,current:s.value,forward:null,position:t.length-1,replaced:!0,scroll:null},!0);function o(l,c,u){const d=e.indexOf("#"),m=d>-1?(n.host&&document.querySelector("base")?e:e.slice(d))+l:nf()+e+l;try{t[u?"replaceState":"pushState"](c,"",m),r.value=c}catch(b){console.error(b),n[u?"replace":"assign"](m)}}function i(l,c){o(l,de({},t.state,Fi(r.value.back,l,r.value.forward,!0),c,{position:r.value.position}),!0),s.value=l}function a(l,c){const u=de({},r.value,t.state,{forward:l,scroll:hr()});o(u.current,u,!0),o(l,de({},Fi(s.value,l,null),{position:u.position+1},c),!1),s.value=l}return{location:s,state:r,push:a,replace:i}}function of(e){e=jp(e);const t=rf(e),n=sf(e,t.state,t.location,t.replace);function s(o,i=!0){i||n.pauseListeners(),history.go(o)}const r=de({location:"",base:e,go:s,createHref:Hp.bind(null,e)},t,n);return Object.defineProperty(r,"location",{enumerable:!0,get:()=>t.location.value}),Object.defineProperty(r,"state",{enumerable:!0,get:()=>t.state.value}),r}let yn=(function(e){return e[e.Static=0]="Static",e[e.Param=1]="Param",e[e.Group=2]="Group",e})({});var Me=(function(e){return e[e.Static=0]="Static",e[e.Param=1]="Param",e[e.ParamRegExp=2]="ParamRegExp",e[e.ParamRegExpEnd=3]="ParamRegExpEnd",e[e.EscapeNext=4]="EscapeNext",e})(Me||{});const af={type:yn.Static,value:""},lf=/[a-zA-Z0-9_]/;function cf(e){if(!e)return[[]];if(e==="/")return[[af]];if(!e.startsWith("/"))throw new Error(`Invalid path "${e}"`);function t(b){throw new Error(`ERR (${n})/"${c}": ${b}`)}let n=Me.Static,s=n;const r=[];let o;function i(){o&&r.push(o),o=[]}let a=0,l,c="",u="";function d(){c&&(n===Me.Static?o.push({type:yn.Static,value:c}):n===Me.Param||n===Me.ParamRegExp||n===Me.ParamRegExpEnd?(o.length>1&&(l==="*"||l==="+")&&t(`A repeatable param (${c}) must be alone in its segment. eg: '/:ids+.`),o.push({type:yn.Param,value:c,regexp:u,repeatable:l==="*"||l==="+",optional:l==="*"||l==="?"})):t("Invalid state to consume buffer"),c="")}function m(){c+=l}for(;a<e.length;){if(l=e[a++],l==="\\"&&n!==Me.ParamRegExp){s=n,n=Me.EscapeNext;continue}switch(n){case Me.Static:l==="/"?(c&&d(),i()):l===":"?(d(),n=Me.Param):m();break;case Me.EscapeNext:m(),n=s;break;case Me.Param:l==="("?n=Me.ParamRegExp:lf.test(l)?m():(d(),n=Me.Static,l!=="*"&&l!=="?"&&l!=="+"&&a--);break;case Me.ParamRegExp:l===")"?u[u.length-1]=="\\"?u=u.slice(0,-1)+l:n=Me.ParamRegExpEnd:u+=l;break;case Me.ParamRegExpEnd:d(),n=Me.Static,l!=="*"&&l!=="?"&&l!=="+"&&a--,u="";break;default:t("Unknown state");break}}return n===Me.ParamRegExp&&t(`Unfinished custom RegExp for param "${c}"`),d(),i(),r}const Vi="[^/]+?",uf={sensitive:!1,strict:!1,start:!0,end:!0};var Je=(function(e){return e[e._multiplier=10]="_multiplier",e[e.Root=90]="Root",e[e.Segment=40]="Segment",e[e.SubSegment=30]="SubSegment",e[e.Static=40]="Static",e[e.Dynamic=20]="Dynamic",e[e.BonusCustomRegExp=10]="BonusCustomRegExp",e[e.BonusWildcard=-50]="BonusWildcard",e[e.BonusRepeatable=-20]="BonusRepeatable",e[e.BonusOptional=-8]="BonusOptional",e[e.BonusStrict=.7000000000000001]="BonusStrict",e[e.BonusCaseSensitive=.25]="BonusCaseSensitive",e})(Je||{});const df=/[.+*?^${}()[\]/\\]/g;function pf(e,t){const n=de({},uf,t),s=[];let r=n.start?"^":"";const o=[];for(const c of e){const u=c.length?[]:[Je.Root];n.strict&&!c.length&&(r+="/");for(let d=0;d<c.length;d++){const m=c[d];let b=Je.Segment+(n.sensitive?Je.BonusCaseSensitive:0);if(m.type===yn.Static)d||(r+="/"),r+=m.value.replace(df,"\\$&"),b+=Je.Static;else if(m.type===yn.Param){const{value:P,repeatable:x,optional:F,regexp:A}=m;o.push({name:P,repeatable:x,optional:F});const $=A||Vi;if($!==Vi){b+=Je.BonusCustomRegExp;try{`${$}`}catch(_){throw new Error(`Invalid custom RegExp for param "${P}" (${$}): `+_.message)}}let k=x?`((?:${$})(?:/(?:${$}))*)`:`(${$})`;d||(k=F&&c.length<2?`(?:/${k})`:"/"+k),F&&(k+="?"),r+=k,b+=Je.Dynamic,F&&(b+=Je.BonusOptional),x&&(b+=Je.BonusRepeatable),$===".*"&&(b+=Je.BonusWildcard)}u.push(b)}s.push(u)}if(n.strict&&n.end){const c=s.length-1;s[c][s[c].length-1]+=Je.BonusStrict}n.strict||(r+="/?"),n.end?r+="$":n.strict&&!r.endsWith("/")&&(r+="(?:/|$)");const i=new RegExp(r,n.sensitive?"":"i");function a(c){const u=c.match(i),d={};if(!u)return null;for(let m=1;m<u.length;m++){const b=u[m]||"",P=o[m-1];d[P.name]=b&&P.repeatable?b.split("/"):b}return d}function l(c){let u="",d=!1;for(const m of e){(!d||!u.endsWith("/"))&&(u+="/"),d=!1;for(const b of m)if(b.type===yn.Static)u+=b.value;else if(b.type===yn.Param){const{value:P,repeatable:x,optional:F}=b,A=P in c?c[P]:"";if(Pt(A)&&!x)throw new Error(`Provided param "${P}" is an array but it is not repeatable (* or + modifiers)`);const $=Pt(A)?A.join("/"):A;if(!$)if(F)m.length<2&&(u.endsWith("/")?u=u.slice(0,-1):d=!0);else throw new Error(`Missing required param "${P}"`);u+=$}}return u||"/"}return{re:i,score:s,keys:o,parse:a,stringify:l}}function ff(e,t){let n=0;for(;n<e.length&&n<t.length;){const s=t[n]-e[n];if(s)return s;n++}return e.length<t.length?e.length===1&&e[0]===Je.Static+Je.Segment?-1:1:e.length>t.length?t.length===1&&t[0]===Je.Static+Je.Segment?1:-1:0}function tc(e,t){let n=0;const s=e.score,r=t.score;for(;n<s.length&&n<r.length;){const o=ff(s[n],r[n]);if(o)return o;n++}if(Math.abs(r.length-s.length)===1){if(Ui(s))return 1;if(Ui(r))return-1}return r.length-s.length}function Ui(e){const t=e[e.length-1];return e.length>0&&t[t.length-1]<0}const mf={strict:!1,end:!0,sensitive:!1};function hf(e,t,n){const s=pf(cf(e.path),n),r=de(s,{record:e,parent:t,children:[],alias:[]});return t&&!r.record.aliasOf==!t.record.aliasOf&&t.children.push(r),r}function gf(e,t){const n=[],s=new Map;t=Ii(mf,t);function r(d){return s.get(d)}function o(d,m,b){const P=!b,x=ji(d);x.aliasOf=b&&b.record;const F=Ii(t,d),A=[x];if("alias"in d){const _=typeof d.alias=="string"?[d.alias]:d.alias;for(const I of _)A.push(ji(de({},x,{components:b?b.record.components:x.components,path:I,aliasOf:b?b.record:x})))}let $,k;for(const _ of A){const{path:I}=_;if(m&&I[0]!=="/"){const L=m.record.path,U=L[L.length-1]==="/"?"":"/";_.path=m.record.path+(I&&U+I)}if($=hf(_,m,F),b?b.alias.push($):(k=k||$,k!==$&&k.alias.push($),P&&d.name&&!Ki($)&&i(d.name)),nc($)&&l($),x.children){const L=x.children;for(let U=0;U<L.length;U++)o(L[U],$,b&&b.children[U])}b=b||$}return k?()=>{i(k)}:as}function i(d){if(Ql(d)){const m=s.get(d);m&&(s.delete(d),n.splice(n.indexOf(m),1),m.children.forEach(i),m.alias.forEach(i))}else{const m=n.indexOf(d);m>-1&&(n.splice(m,1),d.record.name&&s.delete(d.record.name),d.children.forEach(i),d.alias.forEach(i))}}function a(){return n}function l(d){const m=yf(d,n);n.splice(m,0,d),d.record.name&&!Ki(d)&&s.set(d.record.name,d)}function c(d,m){let b,P={},x,F;if("name"in d&&d.name){if(b=s.get(d.name),!b)throw Vn(Ce.MATCHER_NOT_FOUND,{location:d});F=b.record.name,P=de($i(m.params,b.keys.filter(k=>!k.optional).concat(b.parent?b.parent.keys.filter(k=>k.optional):[]).map(k=>k.name)),d.params&&$i(d.params,b.keys.map(k=>k.name))),x=b.stringify(P)}else if(d.path!=null)x=d.path,b=n.find(k=>k.re.test(x)),b&&(P=b.parse(x),F=b.record.name);else{if(b=m.name?s.get(m.name):n.find(k=>k.re.test(m.path)),!b)throw Vn(Ce.MATCHER_NOT_FOUND,{location:d,currentLocation:m});F=b.record.name,P=de({},m.params,d.params),x=b.stringify(P)}const A=[];let $=b;for(;$;)A.unshift($.record),$=$.parent;return{name:F,path:x,params:P,matched:A,meta:vf(A)}}e.forEach(d=>o(d));function u(){n.length=0,s.clear()}return{addRoute:o,resolve:c,removeRoute:i,clearRoutes:u,getRoutes:a,getRecordMatcher:r}}function $i(e,t){const n={};for(const s of t)s in e&&(n[s]=e[s]);return n}function ji(e){const t={path:e.path,redirect:e.redirect,name:e.name,meta:e.meta||{},aliasOf:e.aliasOf,beforeEnter:e.beforeEnter,props:bf(e),children:e.children||[],instances:{},leaveGuards:new Set,updateGuards:new Set,enterCallbacks:{},components:"components"in e?e.components||null:e.component&&{default:e.component}};return Object.defineProperty(t,"mods",{value:{}}),t}function bf(e){const t={},n=e.props||!1;if("component"in e)t.default=n;else for(const s in e.components)t[s]=typeof n=="object"?n[s]:n;return t}function Ki(e){for(;e;){if(e.record.aliasOf)return!0;e=e.parent}return!1}function vf(e){return e.reduce((t,n)=>de(t,n.meta),{})}function yf(e,t){let n=0,s=t.length;for(;n!==s;){const o=n+s>>1;tc(e,t[o])<0?s=o:n=o+1}const r=kf(e);return r&&(s=t.lastIndexOf(r,s-1)),s}function kf(e){let t=e;for(;t=t.parent;)if(nc(t)&&tc(e,t)===0)return t}function nc({record:e}){return!!(e.name||e.components&&Object.keys(e.components).length||e.redirect)}function Hi(e){const t=mt(Lo),n=mt(Oo),s=Oe(()=>{const l=j(e.to);return t.resolve(l)}),r=Oe(()=>{const{matched:l}=s.value,{length:c}=l,u=l[c-1],d=n.matched;if(!u||!d.length)return-1;const m=d.findIndex(Fn.bind(null,u));if(m>-1)return m;const b=Bi(l[c-2]);return c>1&&Bi(u)===b&&d[d.length-1].path!==b?d.findIndex(Fn.bind(null,l[c-2])):m}),o=Oe(()=>r.value>-1&&Sf(n.params,s.value.params)),i=Oe(()=>r.value>-1&&r.value===n.matched.length-1&&Xl(n.params,s.value.params));function a(l={}){if(Tf(l)){const c=t[j(e.replace)?"replace":"push"](j(e.to)).catch(as);return e.viewTransition&&typeof document<"u"&&"startViewTransition"in document&&document.startViewTransition(()=>c),c}return Promise.resolve()}return{route:s,href:Oe(()=>s.value.href),isActive:o,isExactActive:i,navigate:a}}function _f(e){return e.length===1?e[0]:e}const wf=Xt({name:"RouterLink",compatConfig:{MODE:3},props:{to:{type:[String,Object],required:!0},replace:Boolean,activeClass:String,exactActiveClass:String,custom:Boolean,ariaCurrentValue:{type:String,default:"page"},viewTransition:Boolean},useLink:Hi,setup(e,{slots:t}){const n=lr(Hi(e)),{options:s}=mt(Lo),r=Oe(()=>({[Wi(e.activeClass,s.linkActiveClass,"router-link-active")]:n.isActive,[Wi(e.exactActiveClass,s.linkExactActiveClass,"router-link-exact-active")]:n.isExactActive}));return()=>{const o=t.default&&_f(t.default(n));return e.custom?o:mr("a",{"aria-current":n.isExactActive?e.ariaCurrentValue:null,href:n.href,onClick:n.navigate,class:r.value},o)}}}),pt=wf;function Tf(e){if(!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)&&!e.defaultPrevented&&!(e.button!==void 0&&e.button!==0)){if(e.currentTarget&&e.currentTarget.getAttribute){const t=e.currentTarget.getAttribute("target");if(/\b_blank\b/i.test(t))return}return e.preventDefault&&e.preventDefault(),!0}}function Sf(e,t){for(const n in t){const s=t[n],r=e[n];if(typeof s=="string"){if(s!==r)return!1}else if(!Pt(r)||r.length!==s.length||s.some((o,i)=>o!==r[i]))return!1}return!0}function Bi(e){return e?e.aliasOf?e.aliasOf.path:e.path:""}const Wi=(e,t,n)=>e??t??n,Pf=Xt({name:"RouterView",inheritAttrs:!1,props:{name:{type:String,default:"default"},route:Object},compatConfig:{MODE:3},setup(e,{attrs:t,slots:n}){const s=mt(Jr),r=Oe(()=>e.route||s.value),o=mt(Mi,0),i=Oe(()=>{let c=j(o);const{matched:u}=r.value;let d;for(;(d=u[c])&&!d.components;)c++;return c}),a=Oe(()=>r.value.matched[i.value]);Is(Mi,Oe(()=>i.value+1)),Is(Zl,a),Is(Jr,r);const l=ve();return qt(()=>[l.value,a.value,e.name],([c,u,d],[m,b,P])=>{u&&(u.instances[d]=c,b&&b!==u&&c&&c===m&&(u.leaveGuards.size||(u.leaveGuards=b.leaveGuards),u.updateGuards.size||(u.updateGuards=b.updateGuards))),c&&u&&(!b||!Fn(u,b)||!m)&&(u.enterCallbacks[d]||[]).forEach(x=>x(c))},{flush:"post"}),()=>{const c=r.value,u=e.name,d=a.value,m=d&&d.components[u];if(!m)return qi(n.default,{Component:m,route:c});const b=d.props[u],P=b?b===!0?c.params:typeof b=="function"?b(c):b:null,F=mr(m,de({},P,t,{onVnodeUnmounted:A=>{A.component.isUnmounted&&(d.instances[u]=null)},ref:l}));return qi(n.default,{Component:F,route:c})||F}}});function qi(e,t){if(!e)return null;const n=e(t);return n.length===1?n[0]:n}const sc=Pf;function xf(e){const t=gf(e.routes,e),n=e.parseQuery||Qp,s=e.stringifyQuery||Ni,r=e.history,o=zn(),i=zn(),a=zn(),l=sl(Jt);let c=Jt;Cn&&e.scrollBehavior&&"scrollRestoration"in history&&(history.scrollRestoration="manual");const u=Ir.bind(null,y=>""+y),d=Ir.bind(null,Dp),m=Ir.bind(null,ms);function b(y,C){let D,N;return Ql(y)?(D=t.getRecordMatcher(y),N=C):N=y,t.addRoute(N,D)}function P(y){const C=t.getRecordMatcher(y);C&&t.removeRoute(C)}function x(){return t.getRoutes().map(y=>y.record)}function F(y){return!!t.getRecordMatcher(y)}function A(y,C){if(C=de({},C||l.value),typeof y=="string"){const w=Lr(n,y,C.path),M=t.resolve({path:w.path},C),V=r.createHref(w.fullPath);return de(w,M,{params:m(M.params),hash:ms(w.hash),redirectedFrom:void 0,href:V})}let D;if(y.path!=null)D=de({},y,{path:Lr(n,y.path,C.path).path});else{const w=de({},y.params);for(const M in w)w[M]==null&&delete w[M];D=de({},y,{params:d(w)}),C.params=d(C.params)}const N=t.resolve(D,C),Y=y.hash||"";N.params=u(m(N.params));const h=Fp(s,de({},y,{hash:Ip(Y),path:N.path})),g=r.createHref(h);return de({fullPath:h,hash:Y,query:s===Ni?Jp(y.query):y.query||{}},N,{redirectedFrom:void 0,href:g})}function $(y){return typeof y=="string"?Lr(n,y,l.value.path):de({},y)}function k(y,C){if(c!==y)return Vn(Ce.NAVIGATION_CANCELLED,{from:C,to:y})}function _(y){return U(y)}function I(y){return _(de($(y),{replace:!0}))}function L(y,C){const D=y.matched[y.matched.length-1];if(D&&D.redirect){const{redirect:N}=D;let Y=typeof N=="function"?N(y,C):N;return typeof Y=="string"&&(Y=Y.includes("?")||Y.includes("#")?Y=$(Y):{path:Y},Y.params={}),de({query:y.query,hash:y.hash,params:Y.path!=null?{}:y.params},Y)}}function U(y,C){const D=c=A(y),N=l.value,Y=y.state,h=y.force,g=y.replace===!0,w=L(D,N);if(w)return U(de($(w),{state:typeof w=="object"?de({},Y,w.state):Y,force:h,replace:g}),C||D);const M=D;M.redirectedFrom=C;let V;return!h&&Vp(s,N,D)&&(V=Vn(Ce.NAVIGATION_DUPLICATED,{to:M,from:N}),xe(N,N,!0,!1)),(V?Promise.resolve(V):ae(M,N)).catch(O=>
2Ut(O)?Ut(O,Ce.NAVIGATION_GUARD_REDIRECT)?O:ue(O):ne(O,M,N)).then(O=>{if(O){if(Ut(O,Ce.NAVIGATION_GUARD_REDIRECT))return U(de({replace:g},$(O.to),{state:typeof O.to=="object"?de({},Y,O.to.state):Y,force:h}),C||M)}else O=ee(M,N,!0,g,Y);return Re(M,N,O),O})}function G(y,C){const D=k(y,C);return D?Promise.reject(D):Promise.resolve()}function z(y){const C=ot.values().next().value;return C&&typeof C.runWithContext=="function"?C.runWithContext(y):y()}function ae(y,C){let D;const[N,Y,h]=tf(y,C);D=Dr(N.reverse(),"beforeRouteLeave",y,C);for(const w of N)w.leaveGuards.forEach(M=>{D.push(nn(M,y,C))});const g=G.bind(null,y,C);return D.push(g),Ie(D).then(()=>{D=[];for(const w of o.list())D.push(nn(w,y,C));return D.push(g),Ie(D)}).then(()=>{D=Dr(Y,"beforeRouteUpdate",y,C);for(const w of Y)w.updateGuards.forEach(M=>{D.push(nn(M,y,C))});return D.push(g),Ie(D)}).then(()=>{D=[];for(const w of h)if(w.beforeEnter)if(Pt(w.beforeEnter))for(const M of w.beforeEnter)D.push(nn(M,y,C));else D.push(nn(w.beforeEnter,y,C));return D.push(g),Ie(D)}).then(()=>(y.matched.forEach(w=>w.enterCallbacks={}),D=Dr(h,"beforeRouteEnter",y,C,z),D.push(g),Ie(D))).then(()=>{D=[];for(const w of i.list())D.push(nn(w,y,C));return D.push(g),Ie(D)}).catch(w=>Ut(w,Ce.NAVIGATION_CANCELLED)?w:Promise.reject(w))}function Re(y,C,D){a.list().forEach(N=>z(()=>N(y,C,D)))}function ee(y,C,D,N,Y){const h=k(y,C);if(h)return h;const g=C===Jt,w=Cn?history.state:{};D&&(N||g?r.replace(y.fullPath,de({scroll:g&&w&&w.scroll},Y)):r.push(y.fullPath,Y)),l.value=y,xe(y,C,D,g),ue()}let we;function vt(){we||(we=r.listen((y,C,D)=>{if(!it.listening)return;const N=A(y),Y=L(N,it.currentRoute.value);if(Y){U(de(Y,{replace:!0,force:!0}),N).catch(as);return}c=N;const h=l.value;Cn&&qp(Di(h.fullPath,D.delta),hr()),ae(N,h).catch(g=>Ut(g,Ce.NAVIGATION_ABORTED|Ce.NAVIGATION_CANCELLED)?g:Ut(g,Ce.NAVIGATION_GUARD_REDIRECT)?(U(de($(g.to),{force:!0}),N).then(w=>{Ut(w,Ce.NAVIGATION_ABORTED|Ce.NAVIGATION_DUPLICATED)&&!D.delta&&D.type===Xr.pop&&r.go(-1,!1)}).catch(as),Promise.reject()):(D.delta&&r.go(-D.delta,!1),ne(g,N,h))).then(g=>{g=g||ee(N,h,!1),g&&(D.delta&&!Ut(g,Ce.NAVIGATION_CANCELLED)?r.go(-D.delta,!1):D.type===Xr.pop&&Ut(g,Ce.NAVIGATION_ABORTED|Ce.NAVIGATION_DUPLICATED)&&r.go(-1,!1)),Re(N,h,g)}).catch(as)}))}let He=zn(),be=zn(),re;function ne(y,C,D){ue(y);const N=be.list();return N.length?N.forEach(Y=>Y(y,C,D)):console.error(y),Promise.reject(y)}function Ge(){return re&&l.value!==Jt?Promise.resolve():new Promise((y,C)=>{He.add([y,C])})}function ue(y){return re||(re=!y,vt(),He.list().forEach(([C,D])=>y?D(y):C()),He.reset()),y}function xe(y,C,D,N){const{scrollBehavior:Y}=e;if(!Cn||!Y)return Promise.resolve();const h=!D&&zp(Di(y.fullPath,0))||(N||!D)&&history.state&&history.state.scroll||null;return So().then(()=>Y(y,C,h)).then(g=>g&&Wp(g)).catch(g=>ne(g,y,C))}const Se=y=>r.go(y);let dt;const ot=new Set,it={currentRoute:l,listening:!0,addRoute:b,removeRoute:P,clearRoutes:t.clearRoutes,hasRoute:F,getRoutes:x,resolve:A,options:e,push:_,replace:I,go:Se,back:()=>Se(-1),forward:()=>Se(1),beforeEach:o.add,beforeResolve:i.add,afterEach:a.add,onError:be.add,isReady:Ge,install(y){y.component("RouterLink",pt),y.component("RouterView",sc),y.config.globalProperties.$router=it,Object.defineProperty(y.config.globalProperties,"$route",{enumerable:!0,get:()=>j(l)}),Cn&&!dt&&l.value===Jt&&(dt=!0,_(r.location).catch(N=>{}));const C={};for(const N in Jt)Object.defineProperty(C,N,{get:()=>l.value[N],enumerable:!0});y.provide(Lo,it),y.provide(Oo,nl(C)),y.provide(Jr,l);const D=y.unmount;ot.add(y),y.unmount=function(){ot.delete(y),ot.size<1&&(c=Jt,we&&we(),we=null,l.value=Jt,dt=!1,re=!1),D()}}};function Ie(y){return y.reduce((C,D)=>C.then(()=>z(D)),Promise.resolve())}return it}function Cf(e){return mt(Oo)}function Ef(e,t){typeof console<"u"&&(console.warn("[intlify] "+e),t&&console.warn(t.stack))}const Gs=typeof window<"u",ln=(e,t=!1)=>t?Symbol.for(e):Symbol(e),Rf=(e,t,n)=>Af({l:e,k:t,s:n}),Af=e=>JSON.stringify(e).replace(/\u2028/g,"\\u2028").replace(/\u2029/g,"\\u2029").replace(/\u0027/g,"\\u0027"),De=e=>typeof e=="number"&&isFinite(e),If=e=>oc(e)==="[object Date]",Ys=e=>oc(e)==="[object RegExp]",gr=e=>ie(e)&&Object.keys(e).length===0,nt=Object.assign,Lf=Object.create,ge=(e=null)=>Lf(e);let zi;const Xs=()=>zi||(zi=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof global<"u"?global:ge());function Gi(e){return e.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""").replace(/'/g,"'").replace(/\//g,"/").replace(/=/g,"=")}function Yi(e){return e.replace(/&(?![a-zA-Z0-9#]{2,6};)/g,"&").replace(/"/g,""").replace(/'/g,"'").replace(/</g,"<").replace(/>/g,">")}function Of(e){return e=e.replace(/(\w+)\s*=\s*"([^"]*)"/g,(s,r,o)=>`${r}="${Yi(o)}"`),e=e.replace(/(\w+)\s*=\s*'([^']*)'/g,(s,r,o)=>`${r}='${Yi(o)}'`),/\s*on\w+\s*=\s*["']?[^"'>]+["']?/gi.test(e)&&(e=e.replace(/(\s+)(on)(\w+\s*=)/gi,"$1on$3")),[/(\s+(?:href|src|action|formaction)\s*=\s*["']?)\s*javascript:/gi,/(style\s*=\s*["'][^"']*url\s*\(\s*)javascript:/gi].forEac
2h(s=>{e=e.replace(s,"$1javascript:")}),e}const Df=Object.prototype.hasOwnProperty;function wt(e,t){return Df.call(e,t)}const Fe=Array.isArray,Ee=e=>typeof e=="function",X=e=>typeof e=="string",Te=e=>typeof e=="boolean",le=e=>e!==null&&typeof e=="object",Nf=e=>le(e)&&Ee(e.then)&&Ee(e.catch),rc=Object.prototype.toString,oc=e=>rc.call(e),ie=e=>{if(!le(e))return!1;const t=Object.getPrototypeOf(e);return t===null||t.constructor===Object},Mf=e=>e==null?"":Fe(e)||ie(e)&&e.toString===rc?JSON.stringify(e,null,2):String(e);function Ff(e,t=""){return e.reduce((n,s,r)=>r===0?n+s:n+t+s,"")}function br(e){let t=e;return()=>++t}const xs=e=>!le(e)||Fe(e);function Ms(e,t){if(xs(e)||xs(t))throw new Error("Invalid value");const n=[{src:e,des:t}];for(;n.length;){const{src:s,des:r}=n.pop();Object.keys(s).forEach(o=>{o!=="__proto__"&&(le(s[o])&&!le(r[o])&&(r[o]=Array.isArray(s[o])?[]:ge()),xs(r[o])||xs(s[o])?r[o]=s[o]:n.push({src:s[o],des:r[o]}))})}}function Vf(e,t,n){return{line:e,column:t,offset:n}}function Qs(e,t,n){return{start:e,end:t}}const Uf=/\{([0-9a-zA-Z]+)\}/g;function ic(e,...t){return t.length===1&&$f(t[0])&&(t=t[0]),(!t||!t.hasOwnProperty)&&(t={}),e.replace(Uf,(n,s)=>t.hasOwnProperty(s)?t[s]:"")}const ac=Object.assign,Xi=e=>typeof e=="string",$f=e=>e!==null&&typeof e=="object";function lc(e,t=""){return e.reduce((n,s,r)=>r===0?n+s:n+t+s,"")}const Do={USE_MODULO_SYNTAX:1,__EXTEND_POINT__:2},jf={[Do.USE_MODULO_SYNTAX]:"Use modulo before '{{0}}'."};function Kf(e,t,...n){const s=ic(jf[e],...n||[]),r={message:String(s),code:e};return t&&(r.location=t),r}const Z={EXPECTED_TOKEN:1,INVALID_TOKEN_IN_PLACEHOLDER:2,UNTERMINATED_SINGLE_QUOTE_IN_PLACEHOLDER:3,UNKNOWN_ESCAPE_SEQUENCE:4,INVALID_UNICODE_ESCAPE_SEQUENCE:5,UNBALANCED_CLOSING_BRACE:6,UNTERMINATED_CLOSING_BRACE:7,EMPTY_PLACEHOLDER:8,NOT_ALLOW_NEST_PLACEHOLDER:9,INVALID_LINKED_FORMAT:10,MUST_HAVE_MESSAGES_IN_PLURAL:11,UNEXPECTED_EMPTY_LINKED_MODIFIER:12,UNEXPECTED_EMPTY_LINKED_KEY:13,UNEXPECTED_LEXICAL_ANALYSIS:14,UNHANDLED_CODEGEN_NODE_TYPE:15,UNHANDLED_MINIFIER_NODE_TYPE:16,__EXTEND_POINT__:17},Hf={[Z.EXPECTED_TOKEN]:"Expected token: '{0}'",[Z.INVALID_TOKEN_IN_PLACEHOLDER]:"Invalid token in placeholder: '{0}'",[Z.UNTERMINATED_SINGLE_QUOTE_IN_PLACEHOLDER]:"Unterminated single quote in placeholder",[Z.UNKNOWN_ESCAPE_SEQUENCE]:"Unknown escape sequence: \\{0}",[Z.INVALID_UNICODE_ESCAPE_SEQUENCE]:"Invalid unicode escape sequence: {0}",[Z.UNBALANCED_CLOSING_BRACE]:"Unbalanced closing brace",[Z.UNTERMINATED_CLOSING_BRACE]:"Unterminated closing brace",[Z.EMPTY_PLACEHOLDER]:"Empty placeholder",[Z.NOT_ALLOW_NEST_PLACEHOLDER]:"Not allowed nest placeholder",[Z.INVALID_LINKED_FORMAT]:"Invalid linked format",[Z.MUST_HAVE_MESSAGES_IN_PLURAL]:"Plural must have messages",[Z.UNEXPECTED_EMPTY_LINKED_MODIFIER]:"Unexpected empty linked modifier",[Z.UNEXPECTED_EMPTY_LINKED_KEY]:"Unexpected empty linked key",[Z.UNEXPECTED_LEXICAL_ANALYSIS]:"Unexpected lexical analysis in token: '{0}'",[Z.UNHANDLED_CODEGEN_NODE_TYPE]:"unhandled codegen node type: '{0}'",[Z.UNHANDLED_MINIFIER_NODE_TYPE]:"unhandled mimifier node type: '{0}'"};function Kn(e,t,n={}){const{domain:s,messages:r,args:o}=n,i=ic((r||Hf)[e]||"",...o||[]),a=new SyntaxError(String(i));return a.code=e,t&&(a.location=t),a.domain=s,a}function Bf(e){throw e}const $t=" ",Wf="\r",Qe=` 3`,qf="\u2028",zf="\u2029";function Gf(e){const t=e;let n=0,s=1,r=1,o=0;const i=U=>t[U]===Wf&&t[U+1]===Qe,a=U=>t[U]===Qe,l=U=>t[U]===zf,c=U=>t[U]===qf,u=U=>i(U)||a(U)||l(U)||c(U),d=()=>n,m=()=>s,b=()=>r,P=()=>o,x=U=>i(U)||l(U)||c(U)?Qe:t[U],F=()=>x(n),A=()=>x(n+o);function $(){return o=0,u(n)&&(s++,r=0),i(n)&&n++,n++,r++,t[n]}function k(){return i(n+o)&&o++,o++,t[n+o]}function _(){n=0,s=1,r=1,o=0}function I(U=0){o=U}function L(){const U=n+o;for(;U!==n;)$();o=0}return{index:d,line:m,column:b,peekOffset:P,charAt:x,currentChar:F,currentPeek:A,next:$,peek:k,reset:_,resetPeek:I,skipToPeek:L}}const Zt=void 0,Yf=".",Qi="'",Xf="tokenizer";function Qf(e,t={}){const n=t.location!==!1,s=Gf(e),r=()=>s.index(),o=()=>Vf(s.line(),s.column(),s.index()),i=o(),a=r(),l={currentType:14,offset:a,startLoc:i,endLoc:i,lastType:14,lastOffset:a,lastStartLoc:i,lastEndLoc:i,braceNest:0,inLinked:!1,text:""},c=()=>l,{onError:u}=t;function d(p,f,S,...E){const q=c();if(f.column+=S,f.offset+=S,u){const K=n?Qs(q.startLoc,f):null,T=Kn(p,K,{domain:Xf,args:E});u(T)}}function m(p,f,S){p.endLoc=o(),p.currentType=f;const E={type:f};return n&&(E.loc=Qs(p.startLoc,p.endLoc)),S!=null&&(E.value=S),E}const b=p=>m(p,14);function P(p,f){return p.currentChar()===f?(p.next(),f):(d(Z.EXPECTED_TOKEN,o(),0,f),"")}function x(p){let f="";for(;p.currentPeek()===$t||p.currentPeek()===Qe;)f+=p.currentPeek(),p.peek();return f}function F(p){const f=x(p);return p.skipToPeek(),f}function A(p){if(p===Zt)return!1;
3const f=p.charCodeAt(0);return f>=97&&f<=122||f>=65&&f<=90||f===95}function $(p){if(p===Zt)return!1;const f=p.charCodeAt(0);return f>=48&&f<=57}function k(p,f){const{currentType:S}=f;if(S!==2)return!1;x(p);const E=A(p.currentPeek());return p.resetPeek(),E}function _(p,f){const{currentType:S}=f;if(S!==2)return!1;x(p);const E=p.currentPeek()==="-"?p.peek():p.currentPeek(),q=$(E);return p.resetPeek(),q}function I(p,f){const{currentType:S}=f;if(S!==2)return!1;x(p);const E=p.currentPeek()===Qi;return p.resetPeek(),E}function L(p,f){const{currentType:S}=f;if(S!==8)return!1;x(p);const E=p.currentPeek()===".";return p.resetPeek(),E}function U(p,f){const{currentType:S}=f;if(S!==9)return!1;x(p);const E=A(p.currentPeek());return p.resetPeek(),E}function G(p,f){const{currentType:S}=f;if(!(S===8||S===12))return!1;x(p);const E=p.currentPeek()===":";return p.resetPeek(),E}function z(p,f){const{currentType:S}=f;if(S!==10)return!1;const E=()=>{const K=p.currentPeek();return K==="{"?A(p.peek()):K==="@"||K==="%"||K==="|"||K===":"||K==="."||K===$t||!K?!1:K===Qe?(p.peek(),E()):ee(p,!1)},q=E();return p.resetPeek(),q}function ae(p){x(p);const f=p.currentPeek()==="|";return p.resetPeek(),f}function Re(p){const f=x(p),S=p.currentPeek()==="%"&&p.peek()==="{";return p.resetPeek(),{isModulo:S,hasSpace:f.length>0}}function ee(p,f=!0){const S=(q=!1,K="",T=!1)=>{const R=p.currentPeek();return R==="{"?K==="%"?!1:q:R==="@"||!R?K==="%"?!0:q:R==="%"?(p.peek(),S(q,"%",!0)):R==="|"?K==="%"||T?!0:!(K===$t||K===Qe):R===$t?(p.peek(),S(!0,$t,T)):R===Qe?(p.peek(),S(!0,Qe,T)):!0},E=S();return f&&p.resetPeek(),E}function we(p,f){const S=p.currentChar();return S===Zt?Zt:f(S)?(p.next(),S):null}function vt(p){const f=p.charCodeAt(0);return f>=97&&f<=122||f>=65&&f<=90||f>=48&&f<=57||f===95||f===36}function He(p){return we(p,vt)}function be(p){const f=p.charCodeAt(0);return f>=97&&f<=122||f>=65&&f<=90||f>=48&&f<=57||f===95||f===36||f===45}function re(p){return we(p,be)}function ne(p){const f=p.charCodeAt(0);return f>=48&&f<=57}function Ge(p){return we(p,ne)}function ue(p){const f=p.charCodeAt(0);return f>=48&&f<=57||f>=65&&f<=70||f>=97&&f<=102}function xe(p){return we(p,ue)}function Se(p){let f="",S="";for(;f=Ge(p);)S+=f;return S}function dt(p){F(p);const f=p.currentChar();return f!=="%"&&d(Z.EXPECTED_TOKEN,o(),0,f),p.next(),"%"}function ot(p){let f="";for(;;){const S=p.currentChar();if(S==="{"||S==="}"||S==="@"||S==="|"||!S)break;if(S==="%")if(ee(p))f+=S,p.next();else break;else if(S===$t||S===Qe)if(ee(p))f+=S,p.next();else{if(ae(p))break;f+=S,p.next()}else f+=S,p.next()}return f}function it(p){F(p);let f="",S="";for(;f=re(p);)S+=f;return p.currentChar()===Zt&&d(Z.UNTERMINATED_CLOSING_BRACE,o(),0),S}function Ie(p){F(p);let f="";return p.currentChar()==="-"?(p.next(),f+=`-${Se(p)}`):f+=Se(p),p.currentChar()===Zt&&d(Z.UNTERMINATED_CLOSING_BRACE,o(),0),f}function y(p){return p!==Qi&&p!==Qe}function C(p){F(p),P(p,"'");let f="",S="";for(;f=we(p,y);)f==="\\"?S+=D(p):S+=f;const E=p.currentChar();return E===Qe||E===Zt?(d(Z.UNTERMINATED_SINGLE_QUOTE_IN_PLACEHOLDER,o(),0),E===Qe&&(p.next(),P(p,"'")),S):(P(p,"'"),S)}function D(p){const f=p.currentChar();switch(f){case"\\":case"'":return p.next(),`\\${f}`;case"u":return N(p,f,4);case"U":return N(p,f,6);default:return d(Z.UNKNOWN_ESCAPE_SEQUENCE,o(),0,f),""}}function N(p,f,S){P(p,f);let E="";for(let q=0;q<S;q++){const K=xe(p);if(!K){d(Z.INVALID_UNICODE_ESCAPE_SEQUENCE,o(),0,`\\${f}${E}${p.currentChar()}`);break}E+=K}return`\\${f}${E}`}function Y(p){return p!=="{"&&p!=="}"&&p!==$t&&p!==Qe}function h(p){F(p);let f="",S="";for(;f=we(p,Y);)S+=f;return S}function g(p){let f="",S="";for(;f=He(p);)S+=f;return S}function w(p){const f=S=>{const E=p.currentChar();return E==="{"||E==="%"||E==="@"||E==="|"||E==="("||E===")"||!E||E===$t?S:(S+=E,p.next(),f(S))};return f("")}function M(p){F(p);const f=P(p,"|");return F(p),f}function V(p,f){let S=null;switch(p.currentChar()){case"{":return f.braceNest>=1&&d(Z.NOT_ALLOW_NEST_PLACEHOLDER,o(),0),p.next(),S=m(f,2,"{"),F(p),f.braceNest++,S;case"}":return f.braceNest>0&&f.currentType===2&&d(Z.EMPTY_PLACEHOLDER,o(),0),p.next(),S=m(f,3,"}"),f.braceNest--,f.braceNest>0&&F(p),f.inLinked&&f.braceNest===0&&(f.inLinked=!1),S;case"@":return f.braceNest>0&&d(Z.UNTERMINATED_CLOSING_BRACE,o(),0),S=O(p,f)||b(f),f.braceNest=0,S;default:{let q=!0,K=!0,T=!0;if(ae(p))return f.braceNest>0&&d(Z.UNTERMINATED_CLOSING_BRACE,o(),0),S=m(f,1,M(p)),f.braceNest=0,f.inLinked=!1,S;if(f.braceNest>0&&(f.currentType===5||f.currentType===6||f.currentType===7))return d(Z.UNTERMINATED_CLOSING_BRACE,o(),0),f.braceNest=0,W(p,f);if(q=k(p,f))return S=m(f,5,it(p)),F(p),S;if(K=_(p,f))return S=m(f,6,Ie(p)),F(p),S;if(T=I(p,f))return S=m(f,7,C(p)),F(p),S;
3if(!q&&!K&&!T)return S=m(f,13,h(p)),d(Z.INVALID_TOKEN_IN_PLACEHOLDER,o(),0,S.value),F(p),S;break}}return S}function O(p,f){const{currentType:S}=f;let E=null;const q=p.currentChar();switch((S===8||S===9||S===12||S===10)&&(q===Qe||q===$t)&&d(Z.INVALID_LINKED_FORMAT,o(),0),q){case"@":return p.next(),E=m(f,8,"@"),f.inLinked=!0,E;case".":return F(p),p.next(),m(f,9,".");case":":return F(p),p.next(),m(f,10,":");default:return ae(p)?(E=m(f,1,M(p)),f.braceNest=0,f.inLinked=!1,E):L(p,f)||G(p,f)?(F(p),O(p,f)):U(p,f)?(F(p),m(f,12,g(p))):z(p,f)?(F(p),q==="{"?V(p,f)||E:m(f,11,w(p))):(S===8&&d(Z.INVALID_LINKED_FORMAT,o(),0),f.braceNest=0,f.inLinked=!1,W(p,f))}}function W(p,f){let S={type:14};if(f.braceNest>0)return V(p,f)||b(f);if(f.inLinked)return O(p,f)||b(f);switch(p.currentChar()){case"{":return V(p,f)||b(f);case"}":return d(Z.UNBALANCED_CLOSING_BRACE,o(),0),p.next(),m(f,3,"}");case"@":return O(p,f)||b(f);default:{if(ae(p))return S=m(f,1,M(p)),f.braceNest=0,f.inLinked=!1,S;const{isModulo:q,hasSpace:K}=Re(p);if(q)return K?m(f,0,ot(p)):m(f,4,dt(p));if(ee(p))return m(f,0,ot(p));break}}return S}function B(){const{currentType:p,offset:f,startLoc:S,endLoc:E}=l;return l.lastType=p,l.lastOffset=f,l.lastStartLoc=S,l.lastEndLoc=E,l.offset=r(),l.startLoc=o(),s.currentChar()===Zt?m(l,14):W(s,l)}return{nextToken:B,currentOffset:r,currentPosition:o,context:c}}const Jf="parser",Zf=/(?:\\\\|\\'|\\u([0-9a-fA-F]{4})|\\U([0-9a-fA-F]{6}))/g;function em(e,t,n){switch(e){case"\\\\":return"\\";case"\\'":return"'";default:{const s=parseInt(t||n,16);return s<=55295||s>=57344?String.fromCodePoint(s):"�"}}}function tm(e={}){const t=e.location!==!1,{onError:n,onWarn:s}=e;function r(k,_,I,L,...U){const G=k.currentPosition();if(G.offset+=L,G.column+=L,n){const z=t?Qs(I,G):null,ae=Kn(_,z,{domain:Jf,args:U});n(ae)}}function o(k,_,I,L,...U){const G=k.currentPosition();if(G.offset+=L,G.column+=L,s){const z=t?Qs(I,G):null;s(Kf(_,z,U))}}function i(k,_,I){const L={type:k};return t&&(L.start=_,L.end=_,L.loc={start:I,end:I}),L}function a(k,_,I,L){t&&(k.end=_,k.loc&&(k.loc.end=I))}function l(k,_){const I=k.context(),L=i(3,I.offset,I.startLoc);return L.value=_,a(L,k.currentOffset(),k.currentPosition()),L}function c(k,_){const I=k.context(),{lastOffset:L,lastStartLoc:U}=I,G=i(5,L,U);return G.index=parseInt(_,10),k.nextToken(),a(G,k.currentOffset(),k.currentPosition()),G}function u(k,_,I){const L=k.context(),{lastOffset:U,lastStartLoc:G}=L,z=i(4,U,G);return z.key=_,I===!0&&(z.modulo=!0),k.nextToken(),a(z,k.currentOffset(),k.currentPosition()),z}function d(k,_){const I=k.context(),{lastOffset:L,lastStartLoc:U}=I,G=i(9,L,U);return G.value=_.replace(Zf,em),k.nextToken(),a(G,k.currentOffset(),k.currentPosition()),G}function m(k){const _=k.nextToken(),I=k.context(),{lastOffset:L,lastStartLoc:U}=I,G=i(8,L,U);return _.type!==12?(r(k,Z.UNEXPECTED_EMPTY_LINKED_MODIFIER,I.lastStartLoc,0),G.value="",a(G,L,U),{nextConsumeToken:_,node:G}):(_.value==null&&r(k,Z.UNEXPECTED_LEXICAL_ANALYSIS,I.lastStartLoc,0,yt(_)),G.value=_.value||"",a(G,k.currentOffset(),k.currentPosition()),{node:G})}function b(k,_){const I=k.context(),L=i(7,I.offset,I.startLoc);return L.value=_,a(L,k.currentOffset(),k.currentPosition()),L}function P(k){const _=k.context(),I=i(6,_.offset,_.startLoc);let L=k.nextToken();if(L.type===9){const U=m(k);I.modifier=U.node,L=U.nextConsumeToken||k.nextToken()}switch(L.type!==10&&r(k,Z.UNEXPECTED_LEXICAL_ANALYSIS,_.lastStartLoc,0,yt(L)),L=k.nextToken(),L.type===2&&(L=k.nextToken()),L.type){case 11:L.value==null&&r(k,Z.UNEXPECTED_LEXICAL_ANALYSIS,_.lastStartLoc,0,yt(L)),I.key=b(k,L.value||"");break;case 5:L.value==null&&r(k,Z.UNEXPECTED_LEXICAL_ANALYSIS,_.lastStartLoc,0,yt(L)),I.key=u(k,L.value||"");break;case 6:L.value==null&&r(k,Z.UNEXPECTED_LEXICAL_ANALYSIS,_.lastStartLoc,0,yt(L)),I.key=c(k,L.value||"");break;case 7:L.value==null&&r(k,Z.UNEXPECTED_LEXICAL_ANALYSIS,_.lastStartLoc,0,yt(L)),I.key=d(k,L.value||"");break;default:{r(k,Z.UNEXPECTED_EMPTY_LINKED_KEY,_.lastStartLoc,0);const U=k.context(),G=i(7,U.offset,U.startLoc);return G.value="",a(G,U.offset,U.startLoc),I.key=G,a(I,U.offset,U.startLoc),{nextConsumeToken:L,node:I}}}return a(I,k.currentOffset(),k.currentPosition()),{node:I}}function x(k){const _=k.context(),I=_.currentType===1?k.currentOffset():_.offset,L=_.currentType===1?_.endLoc:_.startLoc,U=i(2,I,L);U.items=[];let G=null,z=null;do{const ee=G||k.nextToken();switch(G=null,ee.type){case 0:ee.value==null&&r(k,Z.UNEXPECTED_LEXICAL_ANALYSIS,_.lastStartLoc,0,yt(ee)),U.items.push(l(k,ee.value||""));break;case 6:ee.value==null&&r(k,Z.UNEXPECTED_LEXICAL_ANALYSIS,_.lastStartLoc,0,yt(ee)),U.items.push(c(k,ee.value||""));break;case 4:z=!0;break;case 5:ee.value==null&&r(k,Z.UNEXPECTED_LEXICAL_ANALYSIS,_.lastStartLoc,0,yt(ee)),U.items.push(u(k,ee.value||"",!!z)),z&&(o(k,Do.USE_MODULO_SYNTAX,_.lastStartLoc,0,yt(ee)),z=null);break;case 7:ee.value==null&&r(k,Z.UNEXPECTED_LEXICAL_ANALYSIS,_.lastStartLoc,0,yt(ee)),U.items.push(d(k,ee.value||""));break;case 8:{const we=P(k);U.items.push(we.node),G=we.nextConsumeToken||null;break}}}while(_.currentType!==14&&_.currentType!==1);const ae=_.currentType===1?_.lastOffset:k.currentOffset(),Re=_.currentType===1?_.lastEndLoc:k.currentPosition();return a(U,ae,Re),U}function F(k,_,I,L){const U=k.context();let G=L.items.length===0;const z=i(1,_,I);z.cases=[],z.cases.push(L);do{const ae=x(k);G||(G=ae.items.length===0),z.cases.push(ae)}while(U.currentType!==14);
3return G&&r(k,Z.MUST_HAVE_MESSAGES_IN_PLURAL,I,0),a(z,k.currentOffset(),k.currentPosition()),z}function A(k){const _=k.context(),{offset:I,startLoc:L}=_,U=x(k);return _.currentType===14?U:F(k,I,L,U)}function $(k){const _=Qf(k,ac({},e)),I=_.context(),L=i(0,I.offset,I.startLoc);return t&&L.loc&&(L.loc.source=k),L.body=A(_),e.onCacheKey&&(L.cacheKey=e.onCacheKey(k)),I.currentType!==14&&r(_,Z.UNEXPECTED_LEXICAL_ANALYSIS,I.lastStartLoc,0,k[I.offset]||""),a(L,_.currentOffset(),_.currentPosition()),L}return{parse:$}}function yt(e){if(e.type===14)return"EOF";const t=(e.value||"").replace(/\r?\n/gu,"\\n");return t.length>10?t.slice(0,9)+"â¦":t}function nm(e,t={}){const n={ast:e,helpers:new Set};return{context:()=>n,helper:o=>(n.helpers.add(o),o)}}function Ji(e,t){for(let n=0;n<e.length;n++)No(e[n],t)}function No(e,t){switch(e.type){case 1:Ji(e.cases,t),t.helper("plural");break;case 2:Ji(e.items,t);break;case 6:{No(e.key,t),t.helper("linked"),t.helper("type");break}case 5:t.helper("interpolate"),t.helper("list");break;case 4:t.helper("interpolate"),t.helper("named");break}}function sm(e,t={}){const n=nm(e);n.helper("normalize"),e.body&&No(e.body,n);const s=n.context();e.helpers=Array.from(s.helpers)}function rm(e){const t=e.body;return t.type===2?Zi(t):t.cases.forEach(n=>Zi(n)),e}function Zi(e){if(e.items.length===1){const t=e.items[0];(t.type===3||t.type===9)&&(e.static=t.value,delete t.value)}else{const t=[];for(let n=0;n<e.items.length;n++){const s=e.items[n];if(!(s.type===3||s.type===9)||s.value==null)break;t.push(s.value)}if(t.length===e.items.length){e.static=lc(t);for(let n=0;n<e.items.length;n++){const s=e.items[n];(s.type===3||s.type===9)&&delete s.value}}}}const om="minifier";function En(e){switch(e.t=e.type,e.type){case 0:{const t=e;En(t.body),t.b=t.body,delete t.body;break}case 1:{const t=e,n=t.cases;for(let s=0;s<n.length;s++)En(n[s]);t.c=n,delete t.cases;break}case 2:{const t=e,n=t.items;for(let s=0;s<n.length;s++)En(n[s]);t.i=n,delete t.items,t.static&&(t.s=t.static,delete t.static);break}case 3:case 9:case 8:case 7:{const t=e;t.value&&(t.v=t.value,delete t.value);break}case 6:{const t=e;En(t.key),t.k=t.key,delete t.key,t.modifier&&(En(t.modifier),t.m=t.modifier,delete t.modifier);break}case 5:{const t=e;t.i=t.index,delete t.index;break}case 4:{const t=e;t.k=t.key,delete t.key;break}default:throw Kn(Z.UNHANDLED_MINIFIER_NODE_TYPE,null,{domain:om,args:[e.type]})}delete e.type}const im="parser";function am(e,t){const{filename:n,breakLineCode:s,needIndent:r}=t,o=t.location!==!1,i={filename:n,code:"",column:1,line:1,offset:0,map:void 0,breakLineCode:s,needIndent:r,indentLevel:0};o&&e.loc&&(i.source=e.loc.source);const a=()=>i;function l(x,F){i.code+=x}function c(x,F=!0){const A=F?s:"";l(r?A+" ".repeat(x):A)}function u(x=!0){const F=++i.indentLevel;x&&c(F)}function d(x=!0){const F=--i.indentLevel;x&&c(F)}function m(){c(i.indentLevel)}return{context:a,push:l,indent:u,deindent:d,newline:m,helper:x=>`_${x}`,needIndent:()=>i.needIndent}}function lm(e,t){const{helper:n}=e;e.push(`${n("linked")}(`),Un(e,t.key),t.modifier?(e.push(", "),Un(e,t.modifier),e.push(", _type")):e.push(", undefined, _type"),e.push(")")}function cm(e,t){const{helper:n,needIndent:s}=e;e.push(`${n("normalize")}([`),e.indent(s());const r=t.items.length;for(let o=0;o<r&&(Un(e,t.items[o]),o!==r-1);o++)e.push(", ");e.deindent(s()),e.push("])")}function um(e,t){const{helper:n,needIndent:s}=e;if(t.cases.length>1){e.push(`${n("plural")}([`),e.indent(s());const r=t.cases.length;for(let o=0;o<r&&(Un(e,t.cases[o]),o!==r-1);o++)e.push(", ");e.deindent(s()),e.push("])")}}function dm(e,t){t.body?Un(e,t.body):e.push("null")}function Un(e,t){const{helper:n}=e;switch(t.type){case 0:dm(e,t);break;case 1:um(e,t);break;case 2:cm(e,t);break;case 6:lm(e,t);break;case 8:e.push(JSON.stringify(t.value),t);break;case 7:e.push(JSON.stringify(t.value),t);break;case 5:e.push(`${n("interpolate")}(${n("list")}(${t.index}))`,t);break;case 4:e.push(`${n("interpolate")}(${n("named")}(${JSON.stringify(t.key)}))`,t);break;case 9:e.push(JSON.stringify(t.value),t);break;case 3:e.push(JSON.stringify(t.value),t);break;default:throw Kn(Z.UNHANDLED_CODEGEN_NODE_TYPE,null,{domain:im,args:[t.type]})}}const pm=(e,t={})=>{const n=Xi(t.mode)?t.mode:"normal",s=Xi(t.filename)?t.filename:"message.intl";t.sourceMap;const r=t.breakLineCode!=null?t.breakLineCode:n==="arrow"?";":` 4`,o=t.needIndent?t.needIndent:n!=="arrow",i=e.helpers||[],a=am(e,{filename:s,breakLineCode:r,needIndent:o});a.push(n==="normal"?"function __msg__ (ctx) {":"(ctx) => {"),a.indent(o),i.length>0&&(a.push(`const { ${lc(i.map(u=>`${u}: _${u}`),", ")} } = ctx`),a.newline()),a.push("return "),Un(a,e),a.deindent(o),a.push("}"),delete e.helpers;const{code:l,map:c}=a.context();return{ast:e,code:l,map:c?c.toJSON():void 0}};function fm(e,t={}){const n=ac({},t),s=!!n.jit,r=!!n.minify,o=n.optimize==null?!0:n.optimize,a=tm(n).parse(e);return s?(o&&rm(a),r&&En(a),{ast:a,code:""}):(sm(a,n),pm(a,n))}function mm(){typeof __INTLIFY_JIT_COMPILATION__!="boolean"&&(Xs().__INTLIFY_JIT_COMPILATION__=!1),typeof __INTLIFY_DROP_MESSAGE_COMPILER__!="boolean"&&(Xs().__INTLIFY_DROP_MESSAGE_COMPILER__=!1)}function Nt(e){return le(e)&&Mo(e)===0&&(wt(e,"b")||wt(e,"body"))}const cc=["b","body"];function hm(e){return cn(e,cc)}const uc=["c","cases"];function gm(e){return cn(e,uc,[])}const dc=["s","static"];function bm(e){return cn(e,dc)}const pc=["i","items"];function vm(e){return cn(e,pc,[])}const fc=["t","type"];function Mo(e){return cn(e,fc)}const mc=["v","value"];function Cs(e,t){const n=cn(e,mc);if(n!=null)return n;throw hs(t)}const hc=["m","modifier"];function ym(e){return cn(e,hc)}const gc=["k","key"];function km(e){const t=cn(e,gc);if(t)return t;throw hs(6)}function cn(e,t,n){for(let s=0;s<t.length;s++){const r=t[s];if(wt(e,r)&&e[r]!=null)return e[r]}return n}const bc=[...cc,...uc,...dc,...pc,...gc,...hc,...mc,...fc];function hs(e){return new Error(`unhandled node type: ${e}`)}const un=[];un[0]={w:[0],i:[3,0],"[":[4],o:[7]};un[1]={w:[1],".":[2],"[":[4],o:[7]};un[2]={w:[2],i:[3,0],0:[3,0]};un[3]={i:[3,0],0:[3,0],w:[1,1],".":[2,1],"[":[4,1],o:[7,1]};un[4]={"'":[5,0],'"':[6,0],"[":[4,2],"]":[1,3],o:8,l:[4,0]};un[5]={"'":[4,0],o:8,l:[5,0]};un[6]={'"':[4,0],o:8,l:[6,0]};const _m=/^\s?(?:true|false|-?[\d.]+|'[^']*'|"[^"]*")\s?$/;function wm(e){return _m.test(e)}function Tm(e){const t=e.charCodeAt(0),n=e.charCodeAt(e.length-1);return t===n&&(t===34||t===39)?e.slice(1,-1):e}function Sm(e){if(e==null)return"o";switch(e.charCodeAt(0)){case 91:case 93:case 46:case 34:case 39:return e;case 95:case 36:case 45:return"i";case 9:case 10:case 13:case 160:case 65279:case 8232:case 8233:return"w"}return"i"}function Pm(e){const t=e.trim();return e.charAt(0)==="0"&&isNaN(parseInt(e))?!1:wm(t)?Tm(t):"*"+t}function xm(e){const t=[];let n=-1,s=0,r=0,o,i,a,l,c,u,d;const m=[];m[0]=()=>{i===void 0?i=a:i+=a},m[1]=()=>{i!==void 0&&(t.push(i),i=void 0)},m[2]=()=>{m[0](),r++},m[3]=()=>
4{if(r>0)r--,s=4,m[0]();else{if(r=0,i===void 0||(i=Pm(i),i===!1))return!1;m[1]()}};function b(){const P=e[n+1];if(s===5&&P==="'"||s===6&&P==='"')return n++,a="\\"+P,m[0](),!0}for(;s!==null;)if(n++,o=e[n],!(o==="\\"&&b())){if(l=Sm(o),d=un[s],c=d[l]||d.l||8,c===8||(s=c[0],c[1]!==void 0&&(u=m[c[1]],u&&(a=o,u()===!1))))return;if(s===7)return t}}const ea=new Map;function Cm(e,t){return le(e)?e[t]:null}function Em(e,t){if(!le(e))return null;let n=ea.get(t);if(n||(n=xm(t),n&&ea.set(t,n)),!n)return null;const s=n.length;let r=e,o=0;for(;o<s;){const i=n[o];if(bc.includes(i)&&Nt(r))return null;const a=r[i];if(a===void 0||Ee(r))return null;r=a,o++}return r}const Rm=e=>e,Am=e=>"",Im="text",Lm=e=>e.length===0?"":Ff(e),Om=Mf;function ta(e,t){return e=Math.abs(e),t===2?e?e>1?1:0:1:e?Math.min(e,2):0}function Dm(e){const t=De(e.pluralIndex)?e.pluralIndex:-1;return e.named&&(De(e.named.count)||De(e.named.n))?De(e.named.count)?e.named.count:De(e.named.n)?e.named.n:t:t}function Nm(e,t){t.count||(t.count=e),t.n||(t.n=e)}function Mm(e={}){const t=e.locale,n=Dm(e),s=le(e.pluralRules)&&X(t)&&Ee(e.pluralRules[t])?e.pluralRules[t]:ta,r=le(e.pluralRules)&&X(t)&&Ee(e.pluralRules[t])?ta:void 0,o=A=>A[s(n,A.length,r)],i=e.list||[],a=A=>i[A],l=e.named||ge();De(e.pluralIndex)&&Nm(n,l);const c=A=>l[A];function u(A){const $=Ee(e.messages)?e.messages(A):le(e.messages)?e.messages[A]:!1;return $||(e.parent?e.parent.message(A):Am)}const d=A=>e.modifiers?e.modifiers[A]:Rm,m=ie(e.processor)&&Ee(e.processor.normalize)?e.processor.normalize:Lm,b=ie(e.processor)&&Ee(e.processor.interpolate)?e.processor.interpolate:Om,P=ie(e.processor)&&X(e.processor.type)?e.processor.type:Im,F={list:a,named:c,plural:o,linked:(A,...$)=>{const[k,_]=$;let I="text",L="";$.length===1?le(k)?(L=k.modifier||L,I=k.type||I):X(k)&&(L=k||L):$.length===2&&(X(k)&&(L=k||L),X(_)&&(I=_||I));const U=u(A)(F),G=I==="vnode"&&Fe(U)&&L?U[0]:U;return L?d(L)(G,I):G},message:u,type:P,interpolate:b,normalize:m,values:nt(ge(),i,l)};return F}const Fm=Do.__EXTEND_POINT__,mn=br(Fm),Vm={FALLBACK_TO_TRANSLATE:mn(),CANNOT_FORMAT_NUMBER:mn(),FALLBACK_TO_NUMBER_FORMAT:mn(),CANNOT_FORMAT_DATE:mn(),FALLBACK_TO_DATE_FORMAT:mn(),EXPERIMENTAL_CUSTOM_MESSAGE_COMPILER:mn(),__EXTEND_POINT__:mn()},vc=Z.__EXTEND_POINT__,hn=br(vc),Tt={INVALID_ARGUMENT:vc,INVALID_DATE_ARGUMENT:hn(),INVALID_ISO_DATE_ARGUMENT:hn(),NOT_SUPPORT_NON_STRING_MESSAGE:hn(),NOT_SUPPORT_LOCALE_PROMISE_VALUE:hn(),NOT_SUPPORT_LOCALE_ASYNC_FUNCTION:hn(),NOT_SUPPORT_LOCALE_TYPE:hn(),__EXTEND_POINT__:hn()};function Ot(e){return Kn(e,null,void 0)}function Fo(e,t){return t.locale!=null?na(t.locale):na(e.locale)}let Nr;function na(e){if(X(e))return e;if(Ee(e)){if(e.resolvedOnce&&Nr!=null)return Nr;if(e.constructor.name==="Function"){const t=e();if(Nf(t))throw Ot(Tt.NOT_SUPPORT_LOCALE_PROMISE_VALUE);return Nr=t}else throw Ot(Tt.NOT_SUPPORT_LOCALE_ASYNC_FUNCTION)}else throw Ot(Tt.NOT_SUPPORT_LOCALE_TYPE)}function Um(e,t,n){return[...new Set([n,...Fe(t)?t:le(t)?Object.keys(t):X(t)?[t]:[n]])]}function yc(e,t,n){const s=X(n)?n:Js,r=e;r.__localeChainCache||(r.__localeChainCache=new Map);let o=r.__localeChainCache.get(s);if(!o){o=[];let i=[n];for(;Fe(i);)i=sa(o,i,t);const a=Fe(t)||!ie(t)?t:t.default?t.default:null;i=X(a)?[a]:a,Fe(i)&&sa(o,i,!1),r.__localeChainCache.set(s,o)}return o}function sa(e,t,n){let s=!0;for(let r=0;r<t.length&&Te(s);r++){const o=t[r];X(o)&&(s=$m(e,t[r],n))}return s}function $m(e,t,n){let s;const r=t.split("-");do{const o=r.join("-");s=jm(e,o,n),r.splice(-1,1)}while(r.length&&s===!0);return s}function jm(e,t,n){let s=!1;if(!e.includes(t)&&(s=!0,t)){s=t[t.length-1]!=="!";const r=t.replace(/!/g,"");e.push(r),(Fe(n)||ie(n))&&n[r]&&(s=n[r])}return s}const Km="9.14.5",vr=-1,Js="en-US",ra="",oa=e=>`${e.charAt(0).toLocaleUpperCase()}${e.substr(1)}`;function Hm(){return{upper:(e,t)=>t==="text"&&X(e)?e.toUpperCase():t==="vnode"&&le(e)&&"__v_isVNode"in e?e.children.toUpperCase():e,lower:(e,t)=>t==="text"&&X(e)?e.toLowerCase():t==="vnode"&&le(e)&&"__v_isVNode"in e?e.children.toLowerCase():e,capitalize:(e,t)=>t==="text"&&X(e)?oa(e):t==="vnode"&&le(e)&&"__v_isVNode"in e?oa(e.children):e}}let kc;function ia(e){kc=e}let _c;function Bm(e){_c=e}let wc;function Wm(e){wc=e}let Tc=null;const aa=e=>{Tc=e},qm=()=>Tc;let la=0;function zm(e={}){const t=Ee(e.onWarn)?e.onWarn:Ef,n=X(e.version)?e.version:Km,s=X(e.locale)||Ee(e.locale)?e.locale:Js,r=Ee(s)?Js:s,o=Fe(e.fallbackLocale)||ie(e.fallbackLocale)||X(e.fallbackLocale)||e.fallbackLocale===!1?e.fallbackLocale:r,i=ie(e.messages)?e.messages:Mr(r),a=ie(e.datetimeFormats)?e.datetimeFormats:Mr(r),l=ie(e.numberFormats)?e.numberFormats:Mr(r),c=nt(ge(),e.modifiers,Hm()),u=e.pluralRules||ge(),d=Ee(e.missing)?e.missing:null,m=Te(e.missingWarn)||Ys(e.missingWarn)?e.missingWarn:!0,b=Te(e.fallbackWarn)||Ys(e.fallbackWarn)?e.fallbackWarn:!0,P=!!e.fallbackFormat,x=!!e.unresolving,F=Ee(e.postTranslation)?e.postTranslation:null,A=ie(e.processor)?e.processor:null,$=Te(e.warnHtmlMessage)?e.warnHtmlMessage:!0,k=!!e.escapeParameter,_=Ee(e.messageCompiler)?e.messageCompiler:kc,I=Ee(e.messageResolver)?e.messageResolver:_c||Cm,L=Ee(e.localeFallbacker)?e.localeFallbacker:wc||Um,U=le(e.fallbackContext)?e.fallbackContext:void 0,G=e,z=le(G.__datetimeFormatters)?G.__datetimeFormatters:new Map,ae=le(G.__numberFormatters)?G.__numberFormatters:new Map,Re=le(G.__meta)?G.__meta:{};la++;
4const ee={version:n,cid:la,locale:s,fallbackLocale:o,messages:i,modifiers:c,pluralRules:u,missing:d,missingWarn:m,fallbackWarn:b,fallbackFormat:P,unresolving:x,postTranslation:F,processor:A,warnHtmlMessage:$,escapeParameter:k,messageCompiler:_,messageResolver:I,localeFallbacker:L,fallbackContext:U,onWarn:t,__meta:Re};return ee.datetimeFormats=a,ee.numberFormats=l,ee.__datetimeFormatters=z,ee.__numberFormatters=ae,ee}const Mr=e=>({[e]:ge()});function Vo(e,t,n,s,r){const{missing:o,onWarn:i}=e;if(o!==null){const a=o(e,n,t,r);return X(a)?a:t}else return t}function Gn(e,t,n){const s=e;s.__localeChainCache=new Map,e.localeFallbacker(e,n,t)}function Gm(e,t){return e===t?!1:e.split("-")[0]===t.split("-")[0]}function Ym(e,t){const n=t.indexOf(e);if(n===-1)return!1;for(let s=n+1;s<t.length;s++)if(Gm(e,t[s]))return!0;return!1}function Fr(e){return n=>Xm(n,e)}function Xm(e,t){const n=hm(t);if(n==null)throw hs(0);if(Mo(n)===1){const o=gm(n);return e.plural(o.reduce((i,a)=>[...i,ca(e,a)],[]))}else return ca(e,n)}function ca(e,t){const n=bm(t);if(n!=null)return e.type==="text"?n:e.normalize([n]);{const s=vm(t).reduce((r,o)=>[...r,Zr(e,o)],[]);return e.normalize(s)}}function Zr(e,t){const n=Mo(t);switch(n){case 3:return Cs(t,n);case 9:return Cs(t,n);case 4:{const s=t;if(wt(s,"k")&&s.k)return e.interpolate(e.named(s.k));if(wt(s,"key")&&s.key)return e.interpolate(e.named(s.key));throw hs(n)}case 5:{const s=t;if(wt(s,"i")&&De(s.i))return e.interpolate(e.list(s.i));if(wt(s,"index")&&De(s.index))return e.interpolate(e.list(s.index));throw hs(n)}case 6:{const s=t,r=ym(s),o=km(s);return e.linked(Zr(e,o),r?Zr(e,r):void 0,e.type)}case 7:return Cs(t,n);case 8:return Cs(t,n);default:throw new Error(`unhandled node on format message part: ${n}`)}}const Sc=e=>e;let Rn=ge();function Pc(e,t={}){let n=!1;const s=t.onError||Bf;return t.onError=r=>{n=!0,s(r)},{...fm(e,t),detectError:n}}const Qm=(e,t)=>{if(!X(e))throw Ot(Tt.NOT_SUPPORT_NON_STRING_MESSAGE);{Te(t.warnHtmlMessage)&&t.warnHtmlMessage;const s=(t.onCacheKey||Sc)(e),r=Rn[s];if(r)return r;const{code:o,detectError:i}=Pc(e,t),a=new Function(`return ${o}`)();return i?a:Rn[s]=a}};function Jm(e,t){if(__INTLIFY_JIT_COMPILATION__&&!__INTLIFY_DROP_MESSAGE_COMPILER__&&X(e)){Te(t.warnHtmlMessage)&&t.warnHtmlMessage;const s=(t.onCacheKey||Sc)(e),r=Rn[s];if(r)return r;const{ast:o,detectError:i}=Pc(e,{...t,location:!1,jit:!0}),a=Fr(o);return i?a:Rn[s]=a}else{const n=e.cacheKey;if(n){const s=Rn[n];return s||(Rn[n]=Fr(e))}else return Fr(e)}}const ua=()=>"",zt=e=>Ee(e);function da(e,...t){const{fallbackFormat:n,postTranslation:s,unresolving:r,messageCompiler:o,fallbackLocale:i,messages:a}=e,[l,c]=eo(...t),u=Te(c.missingWarn)?c.missingWarn:e.missingWarn,d=Te(c.fallbackWarn)?c.fallbackWarn:e.fallbackWarn,m=Te(c.escapeParameter)?c.escapeParameter:e.escapeParameter,b=!!c.resolvedMessage,P=X(c.default)||Te(c.default)?Te(c.default)?o?l:()=>l:c.default:n?o?l:()=>l:"",x=n||P!=="",F=Fo(e,c);m&&Zm(c);let[A,$,k]=b?[l,F,a[F]||ge()]:xc(e,l,F,i,d,u),_=A,I=l;if(!b&&!(X(_)||Nt(_)||zt(_))&&x&&(_=P,I=_),!b&&(!(X(_)||Nt(_)||zt(_))||!X($)))return r?vr:l;let L=!1;const U=()=>{L=!0},G=zt(_)?_:Cc(e,l,$,_,I,U);if(L)return _;const z=nh(e,$,k,c),ae=Mm(z),Re=eh(e,G,ae);let ee=s?s(Re,l):Re;return m&&X(ee)&&(ee=Of(ee)),ee}function Zm(e){Fe(e.list)?e.list=e.list.map(t=>X(t)?Gi(t):t):le(e.named)&&Object.keys(e.named).forEach(t=>{X(e.named[t])&&(e.named[t]=Gi(e.named[t]))})}function xc(e,t,n,s,r,o){const{messages:i,onWarn:a,messageResolver:l,localeFallbacker:c}=e,u=c(e,s,n);let d=ge(),m,b=null;const P="translate";for(let x=0;x<u.length&&(m=u[x],d=i[m]||ge(),(b=l(d,t))===null&&(b=d[t]),!(X(b)||Nt(b)||zt(b)));x++)if(!Ym(m,u)){const F=Vo(e,t,m,o,P);F!==t&&(b=F)}return[b,m,d]}function Cc(e,t,n,s,r,o){const{messageCompiler:i,warnHtmlMessage:a}=e;if(zt(s)){const c=s;return c.locale=c.locale||n,c.key=c.key||t,c}if(i==null){const c=(()=>s);return c.locale=n,c.key=t,c}const l=i(s,th(e,n,r,s,a,o));return l.locale=n,l.key=t,l.source=s,l}function eh(e,t,n){return t(n)}function eo(...e){const[t,n,s]=e,r=ge();
4if(!X(t)&&!De(t)&&!zt(t)&&!Nt(t))throw Ot(Tt.INVALID_ARGUMENT);const o=De(t)?String(t):(zt(t),t);return De(n)?r.plural=n:X(n)?r.default=n:ie(n)&&!gr(n)?r.named=n:Fe(n)&&(r.list=n),De(s)?r.plural=s:X(s)?r.default=s:ie(s)&&nt(r,s),[o,r]}function th(e,t,n,s,r,o){return{locale:t,key:n,warnHtmlMessage:r,onError:i=>{throw o&&o(i),i},onCacheKey:i=>Rf(t,n,i)}}function nh(e,t,n,s){const{modifiers:r,pluralRules:o,messageResolver:i,fallbackLocale:a,fallbackWarn:l,missingWarn:c,fallbackContext:u}=e,m={locale:t,modifiers:r,pluralRules:o,messages:b=>{let P=i(n,b);if(P==null&&u){const[,,x]=xc(u,b,t,a,l,c);P=i(x,b)}if(X(P)||Nt(P)){let x=!1;const A=Cc(e,b,t,P,b,()=>{x=!0});return x?ua:A}else return zt(P)?P:ua}};return e.processor&&(m.processor=e.processor),s.list&&(m.list=s.list),s.named&&(m.named=s.named),De(s.plural)&&(m.pluralIndex=s.plural),m}function pa(e,...t){const{datetimeFormats:n,unresolving:s,fallbackLocale:r,onWarn:o,localeFallbacker:i}=e,{__datetimeFormatters:a}=e,[l,c,u,d]=to(...t),m=Te(u.missingWarn)?u.missingWarn:e.missingWarn;Te(u.fallbackWarn)?u.fallbackWarn:e.fallbackWarn;const b=!!u.part,P=Fo(e,u),x=i(e,r,P);if(!X(l)||l==="")return new Intl.DateTimeFormat(P,d).format(c);let F={},A,$=null;const k="datetime format";for(let L=0;L<x.length&&(A=x[L],F=n[A]||{},$=F[l],!ie($));L++)Vo(e,l,A,m,k);if(!ie($)||!X(A))return s?vr:l;let _=`${A}__${l}`;gr(d)||(_=`${_}__${JSON.stringify(d)}`);let I=a.get(_);return I||(I=new Intl.DateTimeFormat(A,nt({},$,d)),a.set(_,I)),b?I.formatToParts(c):I.format(c)}const Ec=["localeMatcher","weekday","era","year","month","day","hour","minute","second","timeZoneName","formatMatcher","hour12","timeZone","dateStyle","timeStyle","calendar","dayPeriod","numberingSystem","hourCycle","fractionalSecondDigits"];function to(...e){const[t,n,s,r]=e,o=ge();let i=ge(),a;if(X(t)){const l=t.match(/(\d{4}-\d{2}-\d{2})(T|\s)?(.*)/);if(!l)throw Ot(Tt.INVALID_ISO_DATE_ARGUMENT);const c=l[3]?l[3].trim().startsWith("T")?`${l[1].trim()}${l[3].trim()}`:`${l[1].trim()}T${l[3].trim()}`:l[1].trim();a=new Date(c);try{a.toISOString()}catch{throw Ot(Tt.INVALID_ISO_DATE_ARGUMENT)}}else if(If(t)){if(isNaN(t.getTime()))throw Ot(Tt.INVALID_DATE_ARGUMENT);a=t}else if(De(t))a=t;else throw Ot(Tt.INVALID_ARGUMENT);return X(n)?o.key=n:ie(n)&&Object.keys(n).forEach(l=>{Ec.includes(l)?i[l]=n[l]:o[l]=n[l]}),X(s)?o.locale=s:ie(s)&&(i=s),ie(r)&&(i=r),[o.key||"",a,o,i]}function fa(e,t,n){const s=e;for(const r in n){const o=`${t}__${r}`;s.__datetimeFormatters.has(o)&&s.__datetimeFormatters.delete(o)}}function ma(e,...t){const{numberFormats:n,unresolving:s,fallbackLocale:r,onWarn:o,localeFallbacker:i}=e,{__numberFormatters:a}=e,[l,c,u,d]=no(...t),m=Te(u.missingWarn)?u.missingWarn:e.missingWarn;Te(u.fallbackWarn)?u.fallbackWarn:e.fallbackWarn;const b=!!u.part,P=Fo(e,u),x=i(e,r,P);if(!X(l)||l==="")return new Intl.NumberFormat(P,d).format(c);let F={},A,$=null;const k="number format";for(let L=0;L<x.length&&(A=x[L],F=n[A]||{},$=F[l],!ie($));L++)Vo(e,l,A,m,k);if(!ie($)||!X(A))return s?vr:l;let _=`${A}__${l}`;gr(d)||(_=`${_}__${JSON.stringify(d)}`);let I=a.get(_);return I||(I=new Intl.NumberFormat(A,nt({},$,d)),a.set(_,I)),b?I.formatToParts(c):I.format(c)}const Rc=["localeMatcher","style","currency","currencyDisplay","currencySign","useGrouping","minimumIntegerDigits","minimumFractionDigits","maximumFractionDigits","minimumSignificantDigits","maximumSignificantDigits","compactDisplay","notation","signDisplay","unit","unitDisplay","roundingMode","roundingPriority","roundingIncrement","trailingZeroDisplay"];function no(...e){const[t,n,s,r]=e,o=ge();let i=ge();if(!De(t))throw Ot(Tt.INVALID_ARGUMENT);const a=t;return X(n)?o.key=n:ie(n)&&Object.keys(n).forEach(l=>{Rc.includes(l)?i[l]=n[l]:o[l]=n[l]}),X(s)?o.locale=s:ie(s)&&(i=s),ie(r)&&(i=r),[o.key||"",a,o,i]}function ha(e,t,n){const s=e;for(const r in n){const o=`${t}__${r}`;s.__numberFormatters.has(o)&&s.__numberFormatters.delete(o)}}mm();const sh="9.14.5";function rh(){typeof __INTLIFY_JIT_COMPILATION__!="boolean"&&(Xs().__INTLIFY_JIT_COMPILATION__=!1),typeof __INTLIFY_DROP_MESSAGE_COMPILER__!="boolean"&&(Xs().__INTLIFY_DROP_MESSAGE_COMPILER__=!1)}const oh=Vm.__EXTEND_POINT__,jt=br(oh);jt(),jt(),jt(),jt(),jt(),jt(),jt(),jt(),jt();const Ac=Tt.__EXTEND_POINT__,st=br(Ac),bt={UNEXPECTED_RETURN_TYPE:Ac,INVALID_ARGUMENT:st(),MUST_BE_CALL_SETUP_TOP:st(),NOT_INSTALLED:st(
4),NOT_AVAILABLE_IN_LEGACY_MODE:st(),REQUIRED_VALUE:st(),INVALID_VALUE:st(),CANNOT_SETUP_VUE_DEVTOOLS_PLUGIN:st(),NOT_INSTALLED_WITH_PROVIDE:st(),UNEXPECTED_ERROR:st(),NOT_COMPATIBLE_LEGACY_VUE_I18N:st(),BRIDGE_SUPPORT_VUE_2_ONLY:st(),MUST_DEFINE_I18N_OPTION_IN_ALLOW_COMPOSITION:st(),NOT_AVAILABLE_COMPOSITION_IN_LEGACY:st(),__EXTEND_POINT__:st()};function xt(e,...t){return Kn(e,null,void 0)}const so=ln("__translateVNode"),ro=ln("__datetimeParts"),oo=ln("__numberParts"),ih=ln("__setPluralRules"),ah=ln("__injectWithOption"),io=ln("__dispose");function gs(e){if(!le(e)||Nt(e))return e;for(const t in e)if(wt(e,t))if(!t.includes("."))le(e[t])&&gs(e[t]);else{const n=t.split("."),s=n.length-1;let r=e,o=!1;for(let i=0;i<s;i++){if(n[i]==="__proto__")throw new Error(`unsafe key: ${n[i]}`);if(n[i]in r||(r[n[i]]=ge()),!le(r[n[i]])){o=!0;break}r=r[n[i]]}if(o||(Nt(r)?bc.includes(n[s])||delete e[t]:(r[n[s]]=e[t],delete e[t])),!Nt(r)){const i=r[n[s]];le(i)&&gs(i)}}return e}function Ic(e,t){const{messages:n,__i18n:s,messageResolver:r,flatJson:o}=t,i=ie(n)?n:Fe(s)?ge():{[e]:ge()};if(Fe(s)&&s.forEach(a=>{if("locale"in a&&"resource"in a){const{locale:l,resource:c}=a;l?(i[l]=i[l]||ge(),Ms(c,i[l])):Ms(c,i)}else X(a)&&Ms(JSON.parse(a),i)}),r==null&&o)for(const a in i)wt(i,a)&&gs(i[a]);return i}function lh(e){return e.type}function ch(e,t,n){let s=le(t.messages)?t.messages:ge();"__i18nGlobal"in n&&(s=Ic(e.locale.value,{messages:s,__i18n:n.__i18nGlobal}));const r=Object.keys(s);r.length&&r.forEach(o=>{e.mergeLocaleMessage(o,s[o])});{if(le(t.datetimeFormats)){const o=Object.keys(t.datetimeFormats);o.length&&o.forEach(i=>{e.mergeDateTimeFormat(i,t.datetimeFormats[i])})}if(le(t.numberFormats)){const o=Object.keys(t.numberFormats);o.length&&o.forEach(i=>{e.mergeNumberFormat(i,t.numberFormats[i])})}}}function ga(e){return oe(ys,null,e,0)}const ba=()=>[],uh=()=>!1;let va=0;function ya(e){return((t,n,s,r)=>e(n,s,Ao()||void 0,r))}function Lc(e={},t){const{__root:n,__injectWithOption:s}=e,r=n===void 0,o=e.flatJson,i=Gs?ve:sl,a=!!e.translateExistCompatible;let l=Te(e.inheritLocale)?e.inheritLocale:!0;const c=i(n&&l?n.locale.value:X(e.locale)?e.locale:Js),u=i(n&&l?n.fallbackLocale.value:X(e.fallbackLocale)||Fe(e.fallbackLocale)||ie(e.fallbackLocale)||e.fallbackLocale===!1?e.fallbackLocale:c.value),d=i(Ic(c.value,e)),m=i(ie(e.datetimeFormats)?e.datetimeFormats:{[c.value]:{}}),b=i(ie(e.numberFormats)?e.numberFormats:{[c.value]:{}});let P=n?n.missingWarn:Te(e.missingWarn)||Ys(e.missingWarn)?e.missingWarn:!0,x=n?n.fallbackWarn:Te(e.fallbackWarn)||Ys(e.fallbackWarn)?e.fallbackWarn:!0,F=n?n.fallbackRoot:Te(e.fallbackRoot)?e.fallbackRoot:!0,A=!!e.fallbackFormat,$=Ee(e.missing)?e.missing:null,k=Ee(e.missing)?ya(e.missing):null,_=Ee(e.postTranslation)?e.postTranslation:null,I=n?n.warnHtmlMessage:Te(e.warnHtmlMessage)?e.warnHtmlMessage:!0,L=!!e.escapeParameter;const U=n?n.modifiers:ie(e.modifiers)?e.modifiers:{};let G=e.pluralRules||n&&n.pluralRules,z;z=(()=>{r&&aa(null);const T={version:sh,locale:c.value,fallbackLocale:u.value,messages:d.value,modifiers:U,pluralRules:G,missing:k===null?void 0:k,missingWarn:P,fallbackWarn:x,fallbackFormat:A,unresolving:!0,postTranslation:_===null?void 0:_,warnHtmlMessage:I,escapeParameter:L,messageResolver:e.messageResolver,messageCompiler:e.messageCompiler,__meta:{framework:"vue"}};T.datetimeFormats=m.value,T.numberFormats=b.value,T.__datetimeFormatters=ie(z)?z.__datetimeFormatters:void 0,T.__numberFormatters=ie(z)?z.__numberFormatters:void 0;const R=zm(T);return r&&aa(R),R})(),Gn(z,c.value,u.value);function Re(){return[c.value,u.value,d.value,m.value,b.value]}const ee=Oe({get:()=>c.value,set:T=>{c.value=T,z.locale=c.value}}),we=Oe({get:()=>u.value,set:T=>{u.value=T,z.fallbackLocale=u.value,Gn(z,c.value,T)}}),vt=Oe(()=>d.value),He=Oe(()=>m.value),be=Oe(()=>b.value);function re(){return Ee(_)?_:null}function ne(T){_=T,z.postTranslation=T}function Ge(){return $}function ue(T){T!==null&&(k=ya(T)),$=T,z.missing=k}const xe=(T,R,Q,se,Pe,Ye)=>{Re();let Ue;try{r||(z.fallbackContext=n?qm():void 0),Ue=T(z)}finally{r||(z.fallbackContext=void 0)}if(Q!=="translate exists"&&De(Ue)&&Ue===vr||Q==="translate exists"&&!Ue){const[dn,_r]=R();return n&&F?se(n):Pe(dn)}else{if(Ye(Ue))return Ue;throw xt(bt.UNEXPECTED_RETURN_TYPE)}};function Se(...T){return xe(R=>Reflect.apply(da,null,[R,...T]),()=>eo(...T),"translate",R=>Reflect.apply(R.t,R,[...T]),R=>R,R=>X(R))}function dt(...T){const[R,Q,se]=T;if(se&&!le(se))throw xt(bt.INVALID_ARGUMENT);return Se(R,Q,nt({resolvedMessage:!0},se||{}))}function ot(...T){return xe(R=>Reflect.apply(pa,null,[R,...T]),()=>to(...T),"datetime format",R=>Reflect.apply(R.d,R,[...T]),()=>ra,R=>X(R))}function it(...T){return xe(R=>Reflect.apply(ma,null,[R,...T]),()=>no(...T),"number format",R=>Reflect.apply(R.n,R,[...T]),()=>ra,R=>X(R))}function Ie(T){return T.map(R=>X(R)||De(R)||Te(R)?ga(String(R)):R)}const C={normalize:Ie,interpolate:T=>T,type:"vnode"};function D(...T){return xe(R=>{let Q;const se=R;try{se.processor=C,Q=Reflect.apply(da,null,[se,...T])}finally{se.processor=null}return Q},()=>eo(...T),"translate",R=>R[so](...T),R=>[ga(R)],R=>Fe(R))}function N(...T){return xe(R=>Reflect.apply(ma,null,[R,...T]),()=>no(...T),"number format",R=>R[oo](...T),ba,R=>X(R)||Fe(R))}function Y(...T){return xe(R=>Reflect.apply(pa,null,[R,...T]),()=>to(...T),"datetime format",R=>R[ro](...T),ba,R=>X(R)||Fe(R))}function h(T){G=T,z.pluralRules=G}function g(T,R){return xe(()=>{if(!T)return!1;const Q=X(R)?R:c.value,se=V(Q),Pe=z.messageResolver(se,T);return a?Pe!=null:Nt(Pe)||zt(Pe)||X(Pe)},()=>[T],"translate exists",Q=>Reflect.apply(Q.te,Q,[T,R]),uh,Q=>Te(Q))}function w(T){let R=null;const Q=yc(z,u.value,c.value);for(let se=0;se<Q.length;se++){const Pe=d.value[Q[se]]||{},Ye=z.messageResolver(Pe,T);if(Ye!=null){R=Ye;break}}return R}function M(T){const R=w(T);return R??(n?n.tm(T)||{}:{})}function V(T){return d.value[T]||{}}function O(T,R){if(o){const Q={[T]:R};for(const se in Q)wt(Q,se)&&gs(Q[se]);R=Q[T]}d.value[T]=R,z.messages=d.value}function W(T,R){d.value[T]=d.value[T]||{};const Q={[T]:R};if(o)for(const se in Q)wt(Q,se)&&gs(Q[se]);R=Q[T],Ms(R,d.value[T]),z.messages=d.value}function B(T){return m.value[T]||{}}function p(T,R){m.value[T]=R,z.datetimeFormats=m.value,fa(z,T,R)}function f(T,R){m.value[T]=nt(m.value[T]||{},R),z.datetimeFormats=m.value,fa(z,T,R)}function S(T){return b.value[T]||{}}function E(T,R){b.value[T]=R,z.numberFormats=b.value,ha(z,T,R)}function q(T,R){b.value[T]=nt(b.value[T]||{},R),z.numberFormats=b.value,ha(z,T,R)}va++,n&&Gs&&(qt(n.locale,T=>{l&&(c.value=T,z.locale=T,Gn(z,c.value,u.value))}),qt(n.fallbackLocale,T=>{l&&(u.value=T,z.fallbackLocale=T,Gn(z,c.value,u.value))}));const K={id:va,locale:ee,fallbackLocale:we,get inheritLocale(){return l},set inheritLocale(T){l=T,T&&n&&(c.value=n.locale.value,u.value=n.fallbackLocale.value,Gn(z,c.value,u.value))},get availableLocales(){return Object.keys(d.value).sort()},messages:vt,get modifiers(){return U},get pluralRules(){return G||{}},get isGlobal(){return r},get missingWarn(){return P},set missingWarn(T){P=T,z.missingWarn=P},get fallbackWarn(){return x},set fallbackWarn(T){x=T,z.fallbackWarn=x},get fallbackRoot(){return F},set fallbackRoot(T){F=T},get fallbackFormat(){return A},set fallbackFormat(T){A=T,z.fallbackFormat=A},get warnHtmlMessage(){return I},set warnHtmlMessage(T){I=T,z.warnHtmlMessage=T},get escapeParameter(){return L},set escapeParameter(T){L=T,z.escapeParameter=T},t:Se,getLocaleMessage:V,setLocaleMessage:O,mergeLocaleMessage:W,getPostTranslationHandler:re,setPostTranslationHandler:ne,getMissingHandler:Ge,setMissingHandler:ue,[ih]:h};return K.datetimeFormats=He,K.numberFormats=be,K.rt=dt,K.te=g,K.tm=M,K.d=ot,K.n=it,K.getDateTimeFormat=B,K.setDateTimeFormat=p,K.mergeDateTimeFormat=f,K.getNumberFormat=S,K.setNumberFormat=E,K.mergeNumberFormat=q,K[ah]=s,K[so]=D,K[ro]=Y,K[oo]=N,K}const Uo={tag:{type:[String,Object]},locale:{type:String},scope:{type:String,validator:e=>e==="parent"||e==="global",default:"parent"},i18n:{type:Object}};function dh({slots:e},t){return t.length===1&&t[0]==="default"?(e.default?e.default():[]).reduce((s,r)=>[...s,...r.type===et?r.children:[r]],[]):t.reduce((n,s)=>{const r=e[s];return r&&(n[s]=r()),n},ge())}function Oc(e){return et}const ph=Xt({name:"i18n-t",props:nt({keypath:{type:String,required:!0},plural:{type:[Number,String],validator:e=>De(e)||!isNaN(e)}},Uo),setup(e,t){const{slots:n,attrs:s}=t,r=e.i18n||Hn({useScope:e.scope,__useComponent:!0});return()=>{const o=Object.keys(n).filter(d=>d!=="_"),i=ge();e.locale&&(i.locale=e.locale),e.plural!==void 0&&(i.plural=X(e.plural)?+e.plural:e.plural);const a=dh(t,o),l=r[so](e.keypath,a,i),c=nt(ge(),s),u=X(e.tag)||le(e.tag)?e.tag:Oc();return mr(u,c,l)}}}),ka=ph;function fh(e){return Fe(e)&&!X(e[0])}function Dc(e,t,n,s){const{slots:r,attrs:o}=t;return()=>{const i={part:!0};let a=ge();e.locale&&(i.locale=e.locale),X(e.format)?i.key=e.format:le(e.format)&&(X(e.format.key)&&(i.key=e.format.key),a=Object.keys(e.format).reduce((m,b)=>n.includes(b)?nt(ge(),m,{[b]:e.format[b]}
4):m,ge()));const l=s(e.value,i,a);let c=[i.key];Fe(l)?c=l.map((m,b)=>{const P=r[m.type],x=P?P({[m.type]:m.value,index:b,parts:l}):[m.value];return fh(x)&&(x[0].key=`${m.type}-${b}`),x}):X(l)&&(c=[l]);const u=nt(ge(),o),d=X(e.tag)||le(e.tag)?e.tag:Oc();return mr(d,u,c)}}const mh=Xt({name:"i18n-n",props:nt({value:{type:Number,required:!0},format:{type:[String,Object]}},Uo),setup(e,t){const n=e.i18n||Hn({useScope:e.scope,__useComponent:!0});return Dc(e,t,Rc,(...s)=>n[oo](...s))}}),_a=mh,hh=Xt({name:"i18n-d",props:nt({value:{type:[Number,Date],required:!0},format:{type:[String,Object]}},Uo),setup(e,t){const n=e.i18n||Hn({useScope:e.scope,__useComponent:!0});return Dc(e,t,Ec,(...s)=>n[ro](...s))}}),wa=hh;function gh(e,t){const n=e;if(e.mode==="composition")return n.__getInstance(t)||e.global;{const s=n.__getInstance(t);return s!=null?s.__composer:e.global.__composer}}function bh(e){const t=i=>{const{instance:a,modifiers:l,value:c}=i;if(!a||!a.$)throw xt(bt.UNEXPECTED_ERROR);const u=gh(e,a.$),d=Ta(c);return[Reflect.apply(u.t,u,[...Sa(d)]),u]};return{created:(i,a)=>{const[l,c]=t(a);Gs&&e.global===c&&(i.__i18nWatcher=qt(c.locale,()=>{a.instance&&a.instance.$forceUpdate()})),i.__composer=c,i.textContent=l},unmounted:i=>{Gs&&i.__i18nWatcher&&(i.__i18nWatcher(),i.__i18nWatcher=void 0,delete i.__i18nWatcher),i.__composer&&(i.__composer=void 0,delete i.__composer)},beforeUpdate:(i,{value:a})=>{if(i.__composer){const l=i.__composer,c=Ta(a);i.textContent=Reflect.apply(l.t,l,[...Sa(c)])}},getSSRProps:i=>{const[a]=t(i);return{textContent:a}}}}function Ta(e){if(X(e))return{path:e};if(ie(e)){if(!("path"in e))throw xt(bt.REQUIRED_VALUE,"path");return e}else throw xt(bt.INVALID_VALUE)}function Sa(e){const{path:t,locale:n,args:s,choice:r,plural:o}=e,i={},a=s||{};return X(n)&&(i.locale=n),De(r)&&(i.plural=r),De(o)&&(i.plural=o),[t,a,i]}function vh(e,t,...n){const s=ie(n[0])?n[0]:{},r=!!s.useI18nComponentName;(!Te(s.globalInstall)||s.globalInstall)&&([r?"i18n":ka.name,"I18nT"].forEach(i=>e.component(i,ka)),[_a.name,"I18nN"].forEach(i=>e.component(i,_a)),[wa.name,"I18nD"].forEach(i=>e.component(i,wa))),e.directive("t",bh(t))}const yh=ln("global-vue-i18n");function kh(e={},t){const n=Te(e.globalInjection)?e.globalInjection:!0,s=!0,r=new Map,[o,i]=_h(e),a=ln("");function l(d){return r.get(d)||null}function c(d,m){r.set(d,m)}function u(d){r.delete(d)}{const d={get mode(){return"composition"},get allowComposition(){return s},async install(m,...b){if(m.__VUE_I18N_SYMBOL__=a,m.provide(m.__VUE_I18N_SYMBOL__,d),ie(b[0])){const F=b[0];d.__composerExtend=F.__composerExtend,d.__vueI18nExtend=F.__vueI18nExtend}let P=null;n&&(P=Rh(m,d.global)),vh(m,d,...b);const x=m.unmount;m.unmount=()=>{P&&P(),d.dispose(),x()}},get global(){return i},dispose(){o.stop()},__instances:r,__getInstance:l,__setInstance:c,__deleteInstance:u};return d}}function Hn(e={}){const t=Ao();if(t==null)throw xt(bt.MUST_BE_CALL_SETUP_TOP);if(!t.isCE&&t.appContext.app!=null&&!t.appContext.app.__VUE_I18N_SYMBOL__)throw xt(bt.NOT_INSTALLED);const n=wh(t),s=Sh(n),r=lh(t),o=Th(e,r);if(o==="global")return ch(s,e,r),s;if(o==="parent"){let l=Ph(n,t,e.__useComponent);return l==null&&(l=s),l}const i=n;let a=i.__getInstance(t);if(a==null){const l=nt({},e);"__i18n"in r&&(l.__i18n=r.__i18n),s&&(l.__root=s),a=Lc(l),i.__composerExtend&&(a[io]=i.__composerExtend(a)),Ch(i,t,a),i.__setInstance(t,a)}return a}function _h(e,t,n){const s=uu();{const r=s.run(()=>Lc(e));if(r==null)throw xt(bt.UNEXPECTED_ERROR);return[s,r]}}function wh(e){{const t=mt(e.isCE?yh:e.appContext.app.__VUE_I18N_SYMBOL__);if(!t)throw xt(e.isCE?bt.NOT_INSTALLED_WITH_PROVIDE:bt.UNEXPECTED_ERROR);return t}}function Th(e,t){return gr(e)?"__i18n"in t?"local":"global":e.useScope?e.useScope:"local"}function Sh(e){return e.mode==="composition"?e.global:e.global.__composer}function Ph(e,t,n=!1){let s=null;const r=t.root;let o=xh(t,n);for(;o!=null;){const i=e;if(e.mode==="composition"&&(s=i.__getInstance(o)),s!=null||r===o)break;o=o.parent}return s}function xh(e,t=!1){return e==null?null:t&&e.vnode.ctx||e.parent}function Ch(e,t,n){dr(()=>{},t),jn(()=>{const s=n;e.__deleteInstance(t);const r=s[io];r&&(r(),delete s[io])},t)}const Eh=["locale","fallbackLocale","availableLocales"],Pa=["t","rt","d","n","tm","te"];function Rh(e,t){const n=Object.create(null);
4return Eh.forEach(r=>{const o=Object.getOwnPropertyDescriptor(t,r);if(!o)throw xt(bt.UNEXPECTED_ERROR);const i=Ke(o.value)?{get(){return o.value.value},set(a){o.value.value=a}}:{get(){return o.get&&o.get()}};Object.defineProperty(n,r,i)}),e.config.globalProperties.$i18n=n,Pa.forEach(r=>{const o=Object.getOwnPropertyDescriptor(t,r);if(!o||!o.value)throw xt(bt.UNEXPECTED_ERROR);Object.defineProperty(e.config.globalProperties,`$${r}`,o)}),()=>{delete e.config.globalProperties.$i18n,Pa.forEach(r=>{delete e.config.globalProperties[`$${r}`]})}}rh();__INTLIFY_JIT_COMPILATION__?ia(Jm):ia(Qm);Bm(Em);Wm(yc);const Ah={class:"bg-black text-white py-12"},Ih={class:"container mx-auto px-4"},Lh={class:"grid md:grid-cols-3 gap-8"},Oh={class:"text-gray-300"},Dh={class:"font-bold mb-4"},Nh={class:"space-y-2"},Mh={href:"https://github.com/Jigsaw-Code/sensemaking-tools/",target:"_blank",rel:"noopener noreferrer",class:"text-gray-300 hover:text-white transition flex items-center gap-1"},Fh={href:"https://jigsaw-code.github.io/sensemaking-tools/",target:"_blank",rel:"noopener noreferrer",class:"text-gray-300 hover:text-white transition flex items-center gap-1"},Vh={href:"https://github.com/bestian/sensemaking-tools/",target:"_blank",rel:"noopener noreferrer",class:"text-gray-300 hover:text-white transition flex items-center gap-1"},Uh={class:"font-bold mb-4"},$h={class:"border-t border-gray-800 mt-8 pt-8 text-center text-gray-400"},jh={class:"mt-2"},Kh={href:"https://github.com/g0v/sensemaker-frontend",class:"hover:text-white transition inline-flex items-center gap-1"},Hh=Xt({name:"AppFooter",__name:"Footer",setup(e){const{t}=Hn(),n=Oe(()=>new Date().getFullYear());return(s,r)=>{const o=gl("router-link");return Ae(),Le("footer",Ah,[v("div",Ih,[v("div",Lh,[v("div",null,[r[0]||(r[0]=v("h3",{class:"text-xl font-bold mb-4 border-b border-democratic-red pb-2 inline-block"},"Sensemaker",-1)),v("p",Oh,H(j(t)("footer.description")),1)]),v("div",null,[v("h4",Dh,H(j(t)("footer.communityLinks")),1),v("ul",Nh,[v("li",null,[v("a",Mh,[r[1]||(r[1]=v("svg",{xmlns:"http://www.w3.org/2000/svg",class:"w-4 h-4",fill:"currentColor",viewBox:"0 0 24 24"},[v("path",{d:"M12 0c-6.626 0-12 5.373-12 12 0 5.302 3.438 9.8 8.207 11.387.599.111.793-.261.793-.577v-2.234c-3.338.726-4.033-1.416-4.033-1.416-.546-1.387-1.333-1.756-1.333-1.756-1.089-.745.083-.729.083-.729 1.205.084 1.839 1.237 1.839 1.237 1.07 1.834 2.807 1.304 3.492.997.107-.775.418-1.305.762-1.604-2.665-.305-5.467-1.334-5.467-5.931 0-1.311.469-2.381 1.236-3.221-.124-.303-.535-1.524.117-3.176 0 0 1.008-.322 3.301 1.23.957-.266 1.983-.399 3.003-.404 1.02.005 2.047.138 3.006.404 2.291-1.552 3.297-1.23 3.297-1.23.653 1.653.242 2.874.118 3.176.77.84 1.235 1.911 1.235 3.221 0 4.609-2.807 4.624-5.479 4.862.43.372.823 1.102.823 2.222v3.293c0 .319.192.694.801.576 4.765-1.589 8.199-6.086 8.199-11.386 0-6.627-5.373-12-12-12z"})],-1)),v("span",null,H(j(t)("footer.jigsawOriginalProject")),1)])]),v("li",null,[v("a",Fh,[r[2]||(r[2]=v("svg",{xmlns:"http://www.w3.org/2000/svg",class:"w-4 h-4",fill:"currentColor",viewBox:"0 0 24 24"},[v("path",{d:"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm-1 17.93c-3.94-.49-7-3.85-7-7.93 0-.62.08-1.21.21-1.79L9 15v1c0 1.1.9 2 2 2v1.93zm6.9-2.54c-.26-.81-1-1.39-1.9-1.39h-1v-3c0-.55-.45-1-1-1H8v-2h2c.55 0 1-.45 1-1V7h2c1.1 0 2-.9 2-2v-.41c2.93 1.19 5 4.06 5 7.41 0 2.08-.8 3.97-2.1 5.39z"})],-1)),v("span",null,H(j(t)("footer.officialDocs")),1)])]),v("li",null,[v("a",Vh,[r[3]||(r[3]=v("svg",{xmlns:"http://www.w3.org/2000/svg",class:"w-4 h-4",fill:"currentColor",viewBox:"0 0 24 24"},[v("path",{d:"M12 0c-6.626 0-12 5.373-12 12 0 5.302 3.438 9.8 8.207 11.387.599.111.793-.261.793-.577v-2.234c-3.338.726-4.033-1.416-4.033-1.416-.546-1.387-1.333-1.756-1.333-1.756-1.089-.745.083-.729.083-.729 1.205.084 1.839 1.237 1.839 1.237 1.07 1.834 2.807 1.304 3.492.997.107-.775.418-1.305.762-1.604-2.665-.305-5.467-1.334-5.467-5.931 0-1.311.469-2.381 1.236-3.221-.124-.303-.535-1.524.117-3.176 0 0 1.008-.322 3.301 1.23.957-.266 1.983-.399 3.003-.404 1.02.005 2.047.138 3.006.404 2.291-1.552 3.297-1.23 3.297-1.23.653 1.653.242 2.874.118 3.176.77.84 1.235 1.911 1.235 3.221 0 4.609-2.807 4.624-5.479 4.862.43.372.823 1.102.823 2.222v3.293c0 .319.192.694.801.576 4.765-1.589 8.199-6.086 8.199-11.386 0-6.627-5.373-12-12-12z"})],-1)),v("span",null,H(j(t)("footer.experimentalVersion")),1)])])])]),v("div",null,[v("h4",Uh,H(j(t)("footer.contactInfo")),1),r[4]||(r[4]=v("p",{class:"text-gray-300 flex items-center gap-2 mb-2"},[v("svg",{xmlns:"http://www.w3.org/2000/svg",class:"w-4 h-4",fill:"
4currentColor",viewBox:"0 0 24 24"},[v("path",{d:"M0 3v18h24V3H0zm21.518 2L12 12.713 2.482 5h19.036zM2 19V7.183l10 8.104 10-8.104V19H2z"})]),v("a",{href:"mailto:[email protected]",class:"hover:text-democratic-red transition"},"[email protected]")],-1))])]),v("div",$h,[v("p",null,[Ve(" © "+H(n.value)+" ",1),r[5]||(r[5]=v("a",{class:"hover:text-white transition",href:"https://www.vtaiwan.tw/",target:"_blank"},"vTaiwan",-1)),Ve(" "+H(j(t)("footer.license")),1)]),v("p",jh,[v("a",Kh,[r[6]||(r[6]=v("svg",{xmlns:"http://www.w3.org/2000/svg",class:"w-4 h-4",fill:"currentColor",viewBox:"0 0 24 24"},[v("path",{d:"M12 0c-6.626 0-12 5.373-12 12 0 5.302 3.438 9.8 8.207 11.387.599.111.793-.261.793-.577v-2.234c-3.338.726-4.033-1.416-4.033-1.416-.546-1.387-1.333-1.756-1.333-1.756-1.089-.745.083-.729.083-.729 1.205.084 1.839 1.237 1.839 1.237 1.07 1.834 2.807 1.304 3.492.997.107-.775.418-1.305.762-1.604-2.665-.305-5.467-1.334-5.467-5.931 0-1.311.469-2.381 1.236-3.221-.124-.303-.535-1.524.117-3.176 0 0 1.008-.322 3.301 1.23.957-.266 1.983-.399 3.003-.404 1.02.005 2.047.138 3.006.404 2.291-1.552 3.297-1.23 3.297-1.23.653 1.653.242 2.874.118 3.176.77.84 1.235 1.911 1.235 3.221 0 4.609-2.807 4.624-5.479 4.862.43.372.823 1.102.823 2.222v3.293c0 .319.192.694.801.576 4.765-1.589 8.199-6.086 8.199-11.386 0-6.627-5.373-12-12-12z"})],-1)),Ve(" "+H(j(t)("footer.sourceCode")),1)]),r[9]||(r[9]=Ve(" | ",-1)),oe(o,{to:"/privacy",class:"hover:text-white transition inline-flex items-center gap-1"},{default:$e(()=>[r[7]||(r[7]=v("svg",{xmlns:"http://www.w3.org/2000/svg",class:"w-4 h-4",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor"},[v("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M9 12l2 2 4-4m5.618-4.016A11.955 11.955 0 0112 2.944a11.955 11.955 0 01-8.618 3.04A12.02 12.02 0 003 9c0 5.591 3.824 10.29 9 11.622 5.176-1.332 9-6.03 9-11.622 0-1.042-.133-2.052-.382-3.016z"})],-1)),Ve(" "+H(j(t)("footer.privacyPolicy")),1)]),_:1}),r[10]||(r[10]=Ve(" | ",-1)),oe(o,{to:"/self-host",class:"hover:text-white transition inline-flex items-center gap-1"},{default:$e(()=>[r[8]||(r[8]=v("svg",{xmlns:"http://www.w3.org/2000/svg",class:"w-4 h-4",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor"},[v("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M19 21V5a2 2 0 00-2-2H7a2 2 0 00-2 2v16m14 0h2m-2 0h-5m-9 0H3m2 0h5M9 7h1m-1 4h1m4-4h1m-1 4h1m-5 10v-5a1 1 0 011-1h2a1 1 0 011 1v5m-4 0h4"})],-1)),Ve(" "+H(j(t)("footer.selfHost")),1)]),_:1})])])])])}}}),Bh={common:{home:"é¦é ",about:"éæ¼",privacy:"é±ç§æ¬",maintain:"ç¶è·æ¸¬è©¦",selfHost:"èªè¡æ¶ç«",backToHome:"è¿åé¦é ",loading:"è¼å
¥ä¸...",error:"é¯èª¤",success:"æå",warning:"è¦å",info:"è³è¨",download:"ä¸è¼",upload:"ä¸å³",submit:"æäº¤",cancel:"åæ¶",save:"å²å",edit:"編輯",delete:"åªé¤",close:"éé",confirm:"確èª",yes:"æ¯",no:"å¦",required:"å¿
å¡«",optional:"å¯é¸"},home:{title:"ð æè¦ç¶æ´å¨",subtitle:"About Sensemaker Opinion Integration Tool",apiKeyLabel:"ð OpenRouter API Key",apiKeyPlaceholder:"è«è¼¸å
¥æ¨ç OpenRouter API Key",showApiKey:"顯示 API éé°",hideApiKey:"é±è API éé°",getApiKeyLink:"ç³è« API Key",apiKeyRequired:"æ¤æ¬ä½çºå¿
å¡«ï¼ç¨æ¼é£æ¥å° AI 模åæå",invalidApiKey:"ç¡æç API Keyææ¨¡å",privacyNote:"ð é±ç§ä¿è·ï¼æ ¹æé±ç§æ¬æ¿çï¼æ¬ç«ä¸æå°æ¨çAPI KEYå²åå¨ä»»ä½å°æ¹ã妿çæ
®ï¼æ¡è¿èªè¡æ¶ç«å¾ç«¯èå端æåã",modelLabel:"ð¤ æ¨¡åå稱:",modelPlaceholder:"openai/gpt-oss-120b",additionalContextLabel:"ð é¡å¤ä¸ä¸æ:",additionalContextNote:"幫å©AIçè§£å°è©±èæ¯ãå¢é²ä¸»é¡èå¥çæºç¢ºæ§ãæ¬é
çºé¸å¡«é
ç®ã",additionalContextPlaceholder:"æè¿°å°è©±çèæ¯åç°å¢ãå¯ç空ã",outputLangLabel:"ð 輸åºèªè¨:",fileLabel:"ð ä¸å³æä»¶ (polis.tw å°åºç JSON æ pol.is å°åºç CSV)",startAnalysis:"ð éå§åæ",riskWarning:"â ï¸ è¦åï¼ç±æ¼æè¦ç¶æ´å¨ç®åéå¨éç¼æ¸¬è©¦ä¸ï¼LLMçåææå
¶ä¸ç©©å®æ§ï¼å®æ¬¡å ±åç´æ1/6çæ©çæçæå¤±æï¼æ¨å¯ä»¥éééæ°æ©å¶çè¨å®ä¾å¢å æåçã",processing:"â³ èçä¸...",selectFileFirst:"è«é¸æè¦ä¸å³çæä»¶",taskId:"ä»»å ID",status:"çæ
",estimatedTime:"é è¨å®ææé",requestFailed:"â è«æ±å¤±æ",requestError:"â è«æ±é¯èª¤",taskStatus:"ð ä»»åçæ
",commentsCount:"è©è«æ¸é",model:"ä½¿ç¨æ¨¡å",pollingResults:"æ£å¨è¼ªè©¢çµæ...",taskInQueue:"ä»»åå·²å å
¥éåï¼å°å¨3åéå¾éå§æª¢æ¥çµæ...",taskProcessing:"ä»»åä»å¨èçä¸...",taskCompleted:"â
åæå®æï¼",commentsProcessed:"èçäº {count} æ¢è©è«",completedAt:"宿æé",summary:"æè¦",downloadMarkdown:"â¬ï¸ ä¸è¼ Markdown",noMark
4downContent:"â æ²æå¯ä¸è¼ç Markdown å
§å®¹",downloadFailed:"â ä¸è¼å¤±æ",testLLM:"ð æ£å¨æ¸¬è©¦ LLM 飿¥...",testLLMSuccess:"â
LLM 測試æåï¼",testLLMFailed:"â LLM 測試失æ",testLLMError:"â LLM æ¸¬è©¦è«æ±é¯èª¤",testCSV:"â è«å
鏿 CSV æä»¶",testCSVSuccess:"â
CSV è§£ææåï¼",testCSVFailed:"â CSV è§£æå¤±æ",testR2:"ð æ£å¨æ¸¬è©¦ R2 è®å¯«...",testR2Success:"â
R2 測試æåï¼",testR2Failed:"â R2 測試失æ",testR2Error:"â R2 æ¸¬è©¦è«æ±é¯èª¤",taskFailed:"â ä»»åèç失æ",failedAt:"失ææé",errorDetails:"é¯èª¤è©³æ
",errorMessage:"é¯èª¤è¨æ¯",detailedError:"詳細é¯èª¤",unknownError:"æªç¥é¯èª¤",noDetailedError:"ç¡è©³ç´°é¯èª¤è³è¨",modelNote:"建è°ä½¿ç¨gpt-oss-120b模åï¼è¥è¦é¸ç¨å
¶ä»æ¨ç模åï¼è«åè OpenRouter 模åå表ç說æï¼ä»¥æ¯è¼å模åçæ§è½èè¨è²»æ¨æº",modelLinkText:"ð æ¥ç OpenRouter 模åå表",costNote:"ð° è²»ç¨ä¼°ç®ï¼ä½¿ç¨ gpt-oss-120b å·è¡åæï¼ä¾è³æé大å°ï¼ç´éè±è²» $0.05-0.20 ç¾éä¸çã",timeNote:"â±ï¸ æéä¼°ç®ï¼ä½¿ç¨ gpt-oss-120b å·è¡åæï¼ä¾è³æé大å°ï¼ç´éè±è²»3åé~30åéä¸çã",retryModeLabel:"ð é試模å¼",retryModeStrict:"åªè·ä¸æ¬¡ (å´æ ¼æ¨¡å¼)",retryModeNormal:"èªåé試3次 (æ£å¸¸æ¨¡å¼)",retryModeCustom:"èªå®ç¾©é試次æ¸",customRetryCountLabel:"é試次æ¸",customRetryCountNote:"è«è¼¸å
¥ 1-10 ä¹éçé試次æ¸",retryingRequest:"ð æ£å¨éè©¦è«æ±",retrySuccess:"â
é試æå",retryFailed:"â é試失æ",retryError:"â é試é¯èª¤",allRetriesFailed:"â ææé試é½å¤±æäº",outputLangOptions:{en:"English","zh-TW":"ç¹é«ä¸æ","zh-CN":"ç®ä½ä¸æ",ja:"æ¥æ¬èª",fr:"Français",es:"Español"}},about:{title:"ð éæ¼ Sensemaker æè¦ç¶æ´å¨",subtitle:"About Sensemaker Opinion Integration Tool",whatIsTitle:"ð ä»éº¼æ¯ Sensemaker æè¦ç¶æ´å¨ï¼",whatIsDescription:"Sensemaker æè¦ç¶æ´å¨ æ¯ä¸å強大ç AI é©
åå·¥å
·ï¼å°éç¨æ¼åæå¤§éæè¦æ¸æä¸¦ç¢çææç¾©çæ´å¯ãå®è½å¤ èå¥ä¸»è¦å
±åé»åæè¦åæ§ï¼å¹«å©æ¨å¾æµ·éæ¸æä¸æåæå¹å¼çè³è¨ã",whatIsDescription2:"éåå·¥å
·ç¹å¥é©ç¨æ¼å¯©è°æ°ä¸»å ´æ¯ï¼ç¶æ¨ä½¿ç¨ Polis åé¦ çé忥æè¦å¾µéå·¥å
·æï¼å¯ä»¥å¹«å©èç大éç¸ä¼¼æéè¤çæè¦ï¼èªåçæçµæ§åçåæå ±åãæ¬ç«çºå®é¨ä»½åè½çä¸åå端實ç¾ã",resourcesTitle:"ð ç¸éè³æº",resourcesSubtitle:"Related Resources",officialDocs:"宿¹èªªææï¼",openSourceLib:"éæºç¨å¼åº«ï¼",experimentalLib:"實é©çç¨å¼åº«(æ¬ç«ç¸å®¹)ï¼",experimentalBranch:"è«ä½¿ç¨ new-feature-open-router 忝",supportedDataTitle:"ð æ¯æçæ¸æä¾æº",supportedDataSubtitle:"Supported Data Sources: This tool supports report data exported from the following platforms",supportedDataDescription:"æ¬å·¥å
·æ¯æå¾ä»¥ä¸å¹³å°å°åºçå ±åæ¸æï¼",polisTWTitle:"ð¹ð¼ Polis.tw",polisTWDescription:"å¾ Polis.tw çå ±åé é¢ç²åæ¸æï¼éè¦éééç¼è
æ¨¡å¼æå API åæç JSON æ¸æãè«åèéç¯æå¸ä¸çç¸é說æã",polisTitle:"ð Pol.is",polisDescription:"å¾ Pol.is å ±åé é¢å°åº comments ç¸éç CSV æä»¶ï¼å¯ç´æ¥ä¸å³ä½¿ç¨ã",dataFormatTitle:"ð æ¸ææ ¼å¼è¦æ±",dataFormatSubtitle:"Data Format Requirements",polisTWFormatTitle:"ð¹ð¼ Polis.tw æ¸ææ ¼å¼",polisTWFormatDescription:"è«æ³¨æï¼polis.tw çæ¸ææ ¼å¼è Pol.is ä¸åï¼polis.twå°åºçjsonæ ¼å¼å¯ä»¥ç´æ¥ä½¿ç¨ã",polisFormatTitle:"ð Pol.is æ¸ææ ¼å¼",polisFormatDescription:"pol.isçæ¸ææ ¼å¼ï¼äº¦å¯ç´æ¥ä¸å³ä½¿ç¨ã",useCasesTitle:"ð¯ 使ç¨å ´æ¯",useCasesSubtitle:"Use Cases",useCasesDescription:"Sensemaker ç¹å¥é©ç¨æ¼ä»¥ä¸å ´æ¯ï¼",deliberativeDemocracy:"å¯©è°æ°ä¸»ï¼èç大éå
¬æ°æè¦ï¼èå¥å
±èååæ§é»",policyMaking:"æ¿çå¶å®ï¼åæå
¬ç¾å°ç¹å®æ¿ççæè¦åå¸",productDevelopment:"ç¢åéç¼ï¼æ´çç¨æ¶åé¥ï¼èå¥ä¸»è¦éæ±åæ¹é²é»",academicResearch:"å¸è¡ç ç©¶ï¼åæåå·èª¿æ¥æè¨ªè«æ¸æ",communityManagement:"社群管çï¼ç解社群æå¡çæè¦åéæ±",usageTipsTitle:"
4ð¡ 使ç¨å»ºè°",usageTipsSubtitle:"Usage Tips",ensureDataQuality:"ç¢ºä¿æ¸æè³ªéï¼ç§»é¤éè¤æç¡æçæè¦",provideContext:"æä¾æ¸
æ°çä¸ä¸ææè¿°ï¼å¹«å© AI æ´å¥½å°çè§£æ¸æèæ¯",chooseFormat:"æ ¹æåæç®ç鏿åé©çè¼¸åºæ ¼å¼ï¼æ¨è¦ä½¿ç¨ Markdown æ ¼å¼ï¼",regularCheck:"å®ææª¢æ¥åæ´æ°æ¸æï¼ç¢ºä¿åæçµæçæææ§",getStartedTitle:"ð éå§ä½¿ç¨",getStartedSubtitle:"Get Started",readyToStart:"æºå好æ¨çæ¸æäºåï¼åå¾é¦é éå§ä¸å³ååææ¨çæè¦æ¸æï¼"},privacy:{title:"é±ç§æ¬æ¿ç",privacyPolicy:"é±ç§æ¬æ¿ç",privacyDescription:"鿬¾æç¨ç¨å¼ä¸æèéä»»ä½åäººè³æãçæçå ±åææ«æå岿¼ R2 å²åæåä¸ä¾æ¨ä¸è¼ï¼ä¸¦ä»¥å¯ä¸ç taskID èå¥ï¼å
¶ä»ä½¿ç¨è
ç¡æ³å徿å忍çè³æã",privacyPolicyEn:"Privacy Policy",privacyDescriptionEn:"This application does not collect any private data whatsoever. Generated reports are temporarily stored in R2 storage service for your download and cannot be accessed by other users.",dataProcessingTitle:"éæ¼è³æèç",backendProcessing:"å¾ç«¯éç®ï¼è³ææå³éå°å¾ç«¯é²è¡éç®èçï¼ä½å¾ç«¯ä¸æå²åä»»ä½ä½¿ç¨è
çåäººè³æåææè³è¨ï¼ç¹å¥æ¯API KEYä¸æè¢«å²åã",noCookies:"ç¡cookiesï¼æåä¸ä½¿ç¨ä»»ä½ cookiesã",openSource:"éæºéæï¼æåçç¨å¼ç¢¼å®å
¨éæºï¼æ¨å¯ä»¥æª¢è¦ææåè½ä»¥ç¢ºä¿é±ç§å®å
¨ã",frontendProject:"åç«¯å°æ¡",backendProject:"å¾ç«¯å°æ¡",openSourceNote:"Open Source Transparency: Our code is completely open source, and you can review all functionality to ensure privacy. Check our frontend and backend repositories on GitHub."},selfHost:{title:"ðï¸ èªè¡æ¶ç«æå",overviewTitle:"ð æ¦è¿°",overviewDescription:"妿æ¨å°é±ç§åè³æå®å
¨æçæ
®ï¼æ¡è¿ fork æåçå°æ¡ä¸¦èªè¡æ¶è¨æåã鿍£æ¨å¯ä»¥å®å
¨æ§å¶èªå·±çè³æå API éé°ã",paidPlanTitle:"ä»è²»æ¹æ¡éæ±",paidPlanDescription:"å¾ç«¯æåä½¿ç¨ Cloudflare Queues åè½ï¼éè¦ Worker ä»è²»æ¹æ¡ãå
è²»æ¹æ¡ä¸æ¯æ´æ¤åè½ã",backendTitle:"ð§ å¾ç«¯æ¶è¨ (Cloudflare Worker)",backendSubtitle:"Backend Setup (Cloudflare Worker)",step1Backend:"æ¥é© 1: Fork å¾ç«¯å°æ¡",step1BackendDesc:"åå¾ sensemaker-backend å°æ¡ä¸¦ fork å°æ¨ç GitHub 帳è",viewBackendProject:"æ¥çå¾ç«¯å°æ¡",step2Backend:"æ¥é© 2: è¨å® Cloudflare Worker",step2BackendDesc:"å¨ Cloudflare Dashboard ä¸åµå»ºæ°ç Workerï¼ä¸¦é¨ç½²æ¨çå¾ç«¯ç¨å¼ç¢¼",importantNote:"â ï¸ éè¦æéï¼å¾ç«¯æç¨å° Cloudflare Queues åè½ï¼éè¦ç§ç¨ Worker ä»è²»æ¹æ¡ãå
è²»æ¹æ¡ä¸æ¯æ´ Queuesã",cloudflareLogin:"ç»å
¥ Cloudflare Dashboard",createWorker:"åµå»ºæ°ç Worker",uploadCode:"ä¸å³æ¨çå¾ç«¯ç¨å¼ç¢¼",setEnvVars:"è¨å®å¿
è¦çç°å¢è®æ¸",upgradePlan:"åç´å°ä»è²»æ¹æ¡ä»¥åç¨ Queues åè½",frontendTitle:"ð¨ å端æ¶è¨ (Vue.js)",frontendSubtitle:"Frontend Setup (Vue.js)",step1Frontend:"æ¥é© 1: Fork åç«¯å°æ¡",step1FrontendDesc:"åå¾ sensemaker-frontend å°æ¡ä¸¦ fork å°æ¨ç GitHub 帳è",viewFrontendProject:"æ¥çåç«¯å°æ¡",step2Frontend:"æ¥é© 2: ä¿®æ¹ API 端é»",step2FrontendDesc:"å¨ src/views/HomeView.vue ä¸ï¼å° API URL æ¹çºæ¨ç Worker ç¶²åï¼",originalURL:"忬ç URL",yourURL:"æ¹çºæ¨ç URL",step3Frontend:"æ¥é© 3: é¨ç½²å端",step3FrontendDesc:"æ¨å¯ä»¥é¸æå¤ç¨®é¨ç½²æ¹å¼ï¼å»ºè°ä½¿ç¨Cloudflare Pagesï¼",cloudflarePages:"Cloudflare Pages: å
è²»ãè Worker æ´åè¯å¥½",advantagesTitle:"â
èªè¡æ¶ç«çåªå¢",fullControl:"å®å
¨æ§å¶",fullControlDesc:"æ¨çè³æå®å
¨ç±æ¨ææ§ï¼ä¸æç¶éç¬¬ä¸æ¹ä¼ºæå¨",apiKeyProtection:"API éé°å®å
¨ä¿é",apiKeyProtectionDesc:"æ¨ç API éé°åªå卿¼æ¨çç°å¢ä¸ï¼ä¸ç¶éç¬¬ä¸æ¹ä¼ºæå¨èç",customizable:"客製å",customizableDesc:"å¯ä»¥æ ¹æéæ±ä¿®æ¹åè½åä»é¢",learning:"å¸ç¿æ©æ",learningDesc:"æ·±å
¥äºè§£ç¾ä»£ Web éç¼æè¡",needHelpTitle:"ð éè¦å¹«å©ï¼",needHelpSubtitle:"Need Help?",needHelpDesc:"妿卿¶è¨éç¨ä¸éå°åé¡ï¼æ¡è¿ï¼",openIssue:"å¨ GitHub å°æ¡ä¸éå Issue",checkReadme:"æ¥çå°æ¡ç README å Wiki",joinCommunity:"å å
¥æåç社群è¨è«"},maintain:{title:"ç¶è·æ¸¬è©¦èå ±ä¿®èªªæ",pageTitle:"ç¶è·æ¸¬è©¦èå ±ä¿®èªªæ",testTitle:"𧪠å¦ä½æ¸¬è©¦æµç¨",testIntro:"æ¬ç«æä¾ä¸çç°¡ææ¸¬è©¦è³æï¼å¯ç¨ä¾é©èä¸å³ãåæèç¢åºæè¦ç宿´æµç¨
4æ¯å¦æ£å¸¸ã",testDataLabel:"æ¸¬è©¦è³æ",testDataPathBefore:"æ¸¬è©¦ç¨ CSV 使¼ï¼data/comments_test.csvï¼é¨ç½²å¾å°æç¶²åçº",testDataPathAfter:"ï¼ã",testDataDesc:"è©²æªæ¡çº Polis å¯åºççè¨æ ¼å¼ï¼å
§å«ä¸çç¯ä¾çè¨ï¼å¯ç´æ¥ç¨æ¼ãä¸å³ CSVãæµç¨ã",testStepsLabel:"測試æ¥é©",step1:"åå¾",step1Suffix:"ã",step2:"å¨ãOpen Router API KEYãæ¬ä½è¼¸å
¥æ¨èªå·±ç Open Router API Keyï¼æ¸¬è©¦æè«ä½¿ç¨èªå·±ç Keyï¼æ¬ç«ä¸æå²åï¼ã",step3:"使ç¨é è¨ç openai/gpt-oss-120b å³å¯æ¸¬è©¦ã",step4:"é»é¸ãé¸ææªæ¡ã並ä¸å³ data/comments_test.csvï¼å¯å¾ä¸è¿°ç¶²åä¸è¼å¾ä¸å³ï¼ã",step5:"æä¸ãéå§åæãï¼çå¾
èç宿徿æç¢åºæè¦ï¼è¥æµç¨æ£å¸¸å³ä»£è¡¨æ¸¬è©¦ééã",apiKeyTitle:"ð éæ¼ Open Router API Key",apiKeyDescBefore:"測試æè«åå¿
ä½¿ç¨æ¨èªå·±ç Open Router API Keyãå徿¹å¼å¯åè ",apiKeyDescAfter:"ãæ¬ç«ä¸æå²åæä¸å³æ¨ç API Key å°ä»»ä½ä¼ºæå¨ï¼å
å¨ç覽å¨ç«¯ç¨æ¼å¼å«å¾ç«¯è½ç¼è³ Open Routerã",openRouterGuideLink:"Open Router ä½¿ç¨æå",reportTitle:"ð è¥ç¼çæ
éï¼å¦ä½å ±ä¿®ï¼è²¼ Issueï¼",reportIntro:"è¥æ¸¬è©¦éç¨ä¸åºç¾é¯èª¤ãç«é¢ç°å¸¸æçµæä¸å¦é æï¼æ¡è¿å°å°æ¡ GitHub åå ±åé¡ï¼ä»¥å©ç¶è·è
ææ¥è修復ã",reportStepsLabel:"å ±ä¿®æ¥é©",reportStep1:"åå¾åç«¯å°æ¡ç Issues é é¢ï¼",reportStep2:"é»é¸ãNew issueãå»ºç«æ° Issueã",reportStep3:"æ¨é¡ç°¡è¦æè¿°åé¡ï¼ä¾å¦ï¼ãä¸å³ comments_test.csv å¾åæå¤±æãï¼ã",reportStep4:"å
§æè«ç¡éå
å«ï¼",reportStep4Bullet1:"æä½æ¥é©ï¼ä¾å¦ï¼ç¨äºæ¸¬è©¦ CSVãé¸äºåªå模åï¼ã",reportStep4Bullet2:"é æçµæ vs 實éçµæï¼ä¾å¦ï¼é æåºç¾æè¦ï¼å¯¦éåºç¾é¯èª¤è¨æ¯ï¼ã",reportStep4Bullet3:"ç«é¢ä¸çé¯èª¤è¨æ¯ææªåï¼è¥æ¹ä¾¿ï¼ã",reportStep4Bullet4:"ç覽å¨è使¥ç³»çµ±ï¼ä¾å¦ Chrome 120 / macOSï¼ã",reportStep5:"è¥åé¡èå¾ç«¯ API æéï¼å¯åæå°å¾ç«¯å°æ¡åå ±ï¼",reportStep5Backend:"sensemaker-backend Issues",reportStep5Suffix:"ã",frontendIssuesUrl:"https://github.com/g0v/sensemaker-frontend/issues",backendIssuesUrl:"https://github.com/bestian/sensemaker-backend/issues"},guideModal:{title:"æ¡è¿ä½¿ç¨ Sensemaker æè¦ç¶æ´å¨",description:"Sensemaker æè¦ç¶æ´å¨æ¯ä¸å強大çæè¦èª¿æ¥å ±ååæå·¥å
·ï¼å¯ä»¥å¹«å©æ¨å¾å¤§éæè¦èª¿æ¥å ±å䏿åæå¹å¼çæ´å¯ã",sensemakingToolsLink:"2026ææ°ç: å¯ç¨OpenRouter æå°ç«¯ LM Studioç¢ç宿´çäºåå¼ HTML ç¶²é å ±å",uberReportExample:"å ±å實ä¾ï¼ãUberX èªç¨è»è¼å®¢ã",polisTitle:"1. Polisæè¦èª¿æ¥å ±åå°åº",polisDescription:"æ¬å·¥å
·æ¯æ´ Polis å¹³å°å°åºçæè¦èª¿æ¥å ±åãè«ç¢ºä¿æ¨çæä»¶ç¬¦å Polis çæ¸æçµæ§ã",polisLink:"æ¥ç說æ â",openRouterTitle:"2. OpenRouter API 飿¥",openRouterDescription:"æ¬å·¥å
·ä½¿ç¨ OpenRouter ä¾é£æ¥å種大åèªè¨æ¨¡åãæ¨éè¦æä¾ OpenRouter API Key æè½ä½¿ç¨ã",openRouterLink:"æ¥ç說æ â",sensemakerTitle:"3. Sensemaker åæ",sensemakerDescription:"æ¬å·¥å
·ä½¿ç¨ Sensemaker é²è¡åæãè«åè以䏿ä½èªªæï¼é²è¡åæã",sensemakerLink:"äºè§£æ´å¤ â",tip:"æç¤ºï¼ å¦ææ¨æ¯ç¬¬ä¸æ¬¡ä½¿ç¨ï¼å»ºè°å
é±è®ä¸è¿°èªªææä»¶ï¼ä»¥ç¢ºä¿æ£ç¢ºä½¿ç¨æ¬å·¥å
·ã",dontShowAgain:"ä¸åé¡¯ç¤ºæ¤æç¤º",iKnow:"æç¥éäº"},openRouterGuide:{title:"OpenRouter ä½¿ç¨æå",step1Title:"é²å
¥ OpenRouter é¦é ",step1Description:"é¦å
ï¼è«åå¾ OpenRouter 宿¹ç¶²ç«ãOpenRouter æ¯ä¸åçµ±ä¸ç LLM ä»é¢ï¼æä¾å¤ç¨® AI 模å便¨é¸æãæ¬å·¥å
·ä¸»è¦ä½¿ç¨é«åè³ªãæ·±æãå¹³å¹ç<b>GPT-OSS-120B</b>模åã",step1Link:"åå¾ OpenRouter é¦é ï¼https://openrouter.ai/",step1Tip:"æç¤ºï¼è¨»å帳è並ç»å
¥å¾ï¼è«é»æé¦é å³ä¸çå人é åï¼å±é䏿é¸å®ï¼ä»¥é²è¡å¾çºæ¥é©ï¼å²å¼ Credits åç³è« API Keyï¼ã",step2Title:"å²å¼ Credits",step2Description:"å¨ä½¿ç¨ OpenRouter çæåä¹åï¼æ¨éè¦å
購買信ç¨é»æ¸(Credits)ãCredits å¯ä»¥ç¨æ¼ä»»ä½æ¨¡åææä¾è
ï¼è®æ¨é活使ç¨ä¸åç AI æåã",step2Link:"åå¾å²å¼é é¢ï¼https://openrouter.ai/settings/credits",step3Title:"ç³è« API Key",step3Description:"æå¾ï¼æ¨éè¦å»ºç«ä¸å API Key æè½éå§ä½¿ç¨ OpenRouter çæåãAPI Key å®å
¨ç¸å®¹æ¼ OpenAI çæ ¼å¼ï¼å¯ä»¥ç´æ¥ä½¿ç¨ã",step3Link:"åå¾ API Key è¨å®é é¢ï¼https://openrouter.ai/settings/keys",tipsTitle:"éè¦æç¤º",tip1:"⢠è«å¦¥åä¿ç®¡æ¨ç API Keyï¼ä¸è¦å享給ä»äºº",tip2:"⢠API Key 建ç«å¾å³å¯ç«å³ä½¿ç¨ï¼ç¡éçå¾
å¯©æ ¸",tip3:"⢠建è°å®ææª¢æ¥æ¨ç Credits é¤é¡ï¼ç¢ºä¿æåæ£å¸¸éä½",tip4:"⢠OpenRouter æ¯æ´å
4¤ç¨®ä»æ¬¾æ¹å¼ï¼å
æ¬ä¿¡ç¨å¡ç",backToHome:"åé¦é "},polisGuide:{title:"Polis ä½¿ç¨æå",step1Title:"åå¾ Polis é¦é ",step1Description:"é¦å
ï¼è«åå¾ Polis 宿¹ç¶²ç«ãPolis æ¯ä¸åç¨æ¼æ¶éååæç¾¤ç¾æè¦çå¹³å°ï¼å¯ä»¥å¹«å©æ¨äºè§£ä¸åè§é»ä¸¦é²è¡ææç¾©çæè¦å¾µéã",step1Link:"åå¾ Polis é¦é ï¼https://pol.is/home",step2Title:"註å帳èèç»å
¥",step2Description:"妿æ¨éæ²æ Polis 帳èï¼è«å
註åä¸åæ°å¸³èã妿已æå¸³èï¼è«ç´æ¥ç»å
¥ãç»å
¥å¾æ¨å°±å¯ä»¥éå§åµå»ºå管çå°è©±äºã",step2Link:"åå¾ç»å
¥/註åé é¢ï¼https://pol.is/signin",step3Title:"å¨ Polis Dashboard åµå»ºè管çå°è©±",step3Description:"ç»å
¥å¾ï¼æ¨æé²å
¥ Polis Dashboardãå¨é裡æ¨å¯ä»¥åµå»ºæ°çå°è©±ï¼Conversationï¼ï¼ä¸¦ç®¡çç¾æçå°è©±ã黿ãCreate New Conversationãæéå³å¯éå§åµå»ºæ°çå°è©±ã",step3Link:"åå¾ Polis Dashboardï¼https://pol.is/",step4Title:"éåºæè¦å¾µéçç¶²åï¼æ¶éåæ",step4Description:"åµå»ºå°è©±å¾ï¼æ¨å¯ä»¥å徿è¦å¾µéçç¶²å並å享給åèè
ãåèè
å¯ä»¥éééåç¶²åé²å
¥å°è©±ä¸¦æä¾ä»åçæè¦ãæ¨ä¹å¯ä»¥ä½¿ç¨ embed åè½å°å°è©±åµå
¥å°æ¨çç¶²ç«ä¸ï¼è®åèè
ç´æ¥å¨æ¨çç¶²ç«ä¸åèæè¦å¾µéã",step5Title:"åæå° Reports Tabï¼åµå»º Report URL",step5Description:"å¨å°è©±é é¢ä¸ï¼åæå°ãReportsãæ¨ç±¤é ãå¨é裡æ¨å¯ä»¥åµå»ºå ±å URLï¼ç¨æ¼æ¥çå°è©±çåæçµæåçµ±è¨è³æã",step6Title:"é²å
¥ Report é ",step6Description:"å¨ Reports æ¨ç±¤é ä¸ï¼é»ææ¨æ³è¦æ¥çç Report é
ç®ã黿徿åºç¾é£çµï¼åé»æè©²é£çµå³å¯é²å
¥ Report é é¢ï¼æ¥ç詳細çåæçµæã",step7Title:"ä¸è¼ Comments CSV",step7Description:"å¨ Report é é¢ä¸ï¼å䏿»¾åæ¾å°ä¸è¼é¸é
ãæ¨æçå°ä¸åä¸è¼æéï¼é»æå³å¯ä¸è¼å
嫿æè©è«ç CSV æªæ¡ï¼æªåæ ¼å¼çº conversation-id-comments.csvï¼ãéå CSV æªæ¡å
å«äºå°è©±ä¸çææè©è«è³æï¼å¯ä»¥ç¨æ¼é²ä¸æ¥çåæã",tipsTitle:"éè¦æç¤º",tip1:"⢠ä¸è¼ç CSV æªæ¡å
å«å°è©±ä¸çææè©è«è³æ",tip2:"⢠CSV æªæ¡å¯ä»¥ç¨æ¼å¯å
¥å°æ¬ç³»çµ±é²è¡é²ä¸æ¥çåæ",tip3:"â¢ ç¢ºä¿æ¨ææ¬é訪å該å°è©±ç Report é é¢",tip4:"â¢ å¦ææ¾ä¸å°ä¸è¼æéï¼è«ç¢ºèªæ¨å·²åæå°æ£ç¢ºç Report é é¢",backToHome:"åé¦é "},sensemakerGuide:{title:"Sensemaker ä½¿ç¨æå",step1Title:"ä¸å³ Polis å°åºçåå§æª",step1Description:"é¦å
ï¼è«ä¸å³å¾ Polis ä¸è¼ç CSV æªæ¡ãéåæªæ¡å
å«äºææåèè
çè©è«è³æï¼æ¯é²è¡åæçåºç¤è³æãè«ç¢ºä¿æªæ¡æ ¼å¼æ£ç¢ºï¼ä¸å
å«å¿
è¦çæ¬ä½è³è¨ã",step2Title:"輸å
¥ OpenRouter API Key",step2Description:"å¨å°æçæ¬ä½ä¸è¼¸å
¥æ¨ç OpenRouter API Keyãéå API Key ç¨æ¼é£æ¥ OpenRouter æåï¼è®ç³»çµ±è½å¤ ä½¿ç¨ AI 模åé²è¡åæãè«ç¢ºä¿ API Key æ£ç¢ºä¸ææã",step3Title:"模åå稱ä¿ç openai/gpt-oss-120b",step3Description:"系統é è¨ä½¿ç¨ <b>openai/gpt-oss-120b</b> 模åé²è¡åæã鿝ä¸åé«åè³ªãæ·±æä¸å¹³å¹ç模åï¼é常é©åç¨æ¼æè¦åæã建è°ä¿ææ¤è¨å®ï¼é¤éæ¨æç¹æ®éæ±ã",step3Tip:"æç¤ºï¼æ¨¡åå稱æ¬ä½å·²é è¨çº",step3TipCode:"openai/gpt-oss-120b",step3TipEnd:"ï¼é常ä¸éè¦ä¿®æ¹ã",step4Title:"輸å
¥é¡å¤ä¸ä¸æï¼åªåèªè¨æ¨¡åçåæè絡",step4Description:"æ¨å¯ä»¥é¸ææ§å°è¼¸å
¥é¡å¤çä¸ä¸æè³è¨ï¼ä¾å¦å°è©±ç主é¡èæ¯ãç¸éæ¿ç說æãæç¹å®çåæéé»ãéäºè³è¨å¯ä»¥å¹«å© AI æ¨¡åæ´æºç¢ºå°çè§£è©è«çèçµ¡ï¼æä¾æ´æ·±å
¥çåæçµæã",step5Title:"é¸æè¼¸åºèªè¨",step5Description:"鏿æ¨å¸æå ±å使ç¨çèªè¨ãä¾å¦é¸æã䏿ãå¾ï¼åæå ±åå°ä»¥ä¸æåç¾ï¼è®æ¨æ´å®¹æé±è®åçè§£åæçµæã",step6Title:"éå§åæ",step6Description:"ç¢ºèªææè¨å®ç¡èª¤å¾ï¼é»æãéå§åæãæéã系統æéå§èçæ¨çè³æï¼éåéç¨å¯è½éè¦å¹¾åéçæéï¼è«èå¿çå¾
ãæ¨å¯ä»¥å¨é é¢ä¸çå°åæé²åº¦çç¸éè³è¨ã",step7Title:"檢é±ä¸¦ä¸è¼ Markdown å ±å",step7Description:"åæå®æå¾ï¼ç³»çµ±æçæä¸ä»½ Markdown æ ¼å¼çåæå ±åãæ¨å¯ä»¥å¨é é¢ä¸é è¦½å ±åå
§å®¹ï¼ç¢ºèªç¡èª¤å¾é»æä¸è¼æéï¼å°å ±åå²åå°æ¨çé»è
¦ãå ±åå
å«è©³ç´°çåæçµæãçµ±è¨è³æåæ´å¯å»ºè°ã",tipsTitle:"éè¦æç¤º",tip1:"⢠確ä¿ä¸å³ç CSV æªæ¡æ ¼å¼æ£ç¢ºï¼ä¸å
å«å¿
è¦çæ¬ä½",tip2:"⢠API Key è«å¦¥åä¿ç®¡ï¼ä¸è¦å享給ä»äºº",tip3:"⢠åæéç¨å¯è½éè¦å¹¾åéï¼è«èå¿çå¾
ï¼ä¸è¦ééé é¢",tip4:"⢠ä¸è¼ç Markdown å ±åå¯ä»¥ç¨ä»»ä½æ¯æ´ Markdown ç編輯å¨éå",tip5:"â¢ å¦æåæå¤±æï¼è«æª¢æ¥ API Key æ¯å¦ææï¼ä»¥å Credits é¤é¡æ¯å¦å
è¶³",backToHome:"åé¦é "},footer:{description:"強大ç AI é©
åæè¦ç¶æ´å·¥å
·ï¼å°éç¨æ¼åæå¤§éæè¦æ¸æä¸¦ç¢çææç¾©çæ´å¯ã",communityLinks:"社群é£çµ",jigsawOriginalProject:"Jigsawåå°æ¡",officialDocs:"宿¹ææª",experimentalVersion:"實é©çæ¬",contactInfo:"è¯çµ¡è³è¨",license:"CC-BY-SAã",sourceCode:"æ¬ç«åå§ç¢¼",privacyPolicy:"é±ç§æ¿ç",selfHost:"èªè¡æ¶ç«",termsOfService:"ä½¿ç¨æ¢æ¬¾"}},Wh={common:{home:"é¦é¡µ",about:"å
³äº",privacy:"éç§æ",maintain:"ç»´æ¤æµè¯",selfHost:"èªè¡æ¶ç«",backToHome:"è¿åé¦é¡µ",loading:"å è½½ä¸...",error:"é误",success:"æå",warning:"è¦å",info:"ä¿¡æ¯",download:"ä¸è½½",upload:"ä¸ä¼ ",submit:"æäº¤",cancel:"åæ¶",save:"ä¿å",edit:"ç¼è¾",delete:"å é¤",close:"å
³é",confirm:"确认",yes:"æ¯",no:"å¦",required:"å¿
å¡«",optional:"å¯é"}
4,home:{title:"ð æè§ç»¼æ´å¨",apiKeyLabel:"ð OpenRouter API Key",apiKeyPlaceholder:"请è¾å
¥æ¨ç OpenRouter API Key",showApiKey:"æ¾ç¤º API å¯é¥",hideApiKey:"éè API å¯é¥",getApiKeyLink:"ç³è¯· API Key",apiKeyRequired:"æ¤å段为å¿
å¡«ï¼ç¨äºè¿æ¥å° AI 模åæå¡",invalidApiKey:"æ æç API Key ææ¨¡å",privacyNote:"ð éç§ä¿æ¤ï¼æ ¹æ®éç§ææ¿çï¼æ¬ç«ä¸ä¼å°æ¨çAPI KEYå¨åå¨ä»»ä½å°æ¹ã妿çèï¼æ¬¢è¿èªè¡æ¶ç«å端ä¸å端æå¡ã",modelLabel:"ð¤ æ¨¡ååç§°:",modelPlaceholder:"openai/gpt-oss-120b",additionalContextLabel:"ð é¢å¤ä¸ä¸æ:",additionalContextNote:"帮å©AIç解对è¯èæ¯ãå¢è¿ä¸»é¢è¯å«çåç¡®æ§ãæ¬é¡¹ä¸ºé填项ç®ã",additionalContextPlaceholder:"æè¿°å¯¹è¯çèæ¯åç¯å¢ãå¯ç空ã",outputLangLabel:"ð è¾åºè¯è¨:",fileLabel:"ð ä¸ä¼ æä»¶ (polis.tw 导åºç JSON æ pol.is 导åºç CSV)",startAnalysis:"ð å¼å§åæ",riskWarning:"â ï¸ è¦åï¼ç±äºæè§ç»¼æ´å¨ç®åè¿å¨å¼åæµè¯ä¸ï¼LLMçååºæå
¶ä¸ç¨³å®æ§ï¼å次æ¥å约æ1/6çæºçä¼çæå¤±è´¥ï¼æ¨å¯ä»¥éè¿éæ°æºå¶çè®¾å®æ¥å¢å æåçã",processing:"â³ å¤çä¸...",selectFileFirst:"è¯·éæ©è¦ä¸ä¼ çæä»¶",taskId:"ä»»å¡ ID",status:"ç¶æ",estimatedTime:"é¢è®¡å®ææ¶é´",requestFailed:"â 请æ±å¤±è´¥",requestError:"â 请æ±é误",taskStatus:"ð ä»»å¡ç¶æ",commentsCount:"è¯è®ºæ°é",model:"ä½¿ç¨æ¨¡å",pollingResults:"æ£å¨è½®è¯¢ç»æ...",taskInQueue:"ä»»å¡å·²å å
¥éåï¼å°å¨3åéåå¼å§æ£æ¥ç»æ...",taskProcessing:"ä»»å¡ä»å¨å¤çä¸...",taskCompleted:"â
åæå®æï¼",commentsProcessed:"å¤çäº {count} æ¡è¯è®º",completedAt:"宿æ¶é´",summary:"æè¦",downloadMarkdown:"â¬ï¸ ä¸è½½ Markdown",noMarkdownContent:"â æ²¡æå¯ä¸è½½ç Markdown å
容",downloadFailed:"â ä¸è½½å¤±è´¥",testLLM:"ð æ£å¨æµè¯ LLM è¿æ¥...",testLLMSuccess:"â
LLM æµè¯æåï¼",testLLMFailed:"â LLM æµè¯å¤±è´¥",testLLMError:"â LLM æµè¯è¯·æ±é误",testCSV:"â 请å
éæ© CSV æä»¶",testCSVSuccess:"â
CSV è§£ææåï¼",testCSVFailed:"â CSV è§£æå¤±è´¥",testR2:"ð æ£å¨æµè¯ R2 读å...",testR2Success:"â
R2 æµè¯æåï¼",testR2Failed:"â R2 æµè¯å¤±è´¥",testR2Error:"â R2 æµè¯è¯·æ±é误",taskFailed:"â ä»»å¡å¤ç失败",failedAt:"失败æ¶é´",errorDetails:"é误详æ
",errorMessage:"é误信æ¯",detailedError:"详ç»é误",unknownError:"æªç¥é误",noDetailedError:"æ 详ç»é误信æ¯",modelNote:"建议使ç¨gpt-oss-120b模åï¼è¥è¦éç¨å
¶ä»æ¨ç模åï¼è¯·åè OpenRouter 模åå表ç说æï¼ä»¥æ¯è¾å模åçæ§è½ä¸è®¡è´¹æ å",modelLinkText:"ð æ¥ç OpenRouter 模åå表",costNote:"ð° è´¹ç¨ä¼°ç®ï¼ä½¿ç¨ gpt-oss-120b æ§è¡åæï¼ä¾èµæé大å°ï¼çº¦éè±è´¹ $0.05-0.20 ç¾éä¸çã",timeNote:"â±ï¸ æ¶é´ä¼°ç®ï¼ä½¿ç¨ gpt-oss-120b æ§è¡åæï¼ä¾èµæé大å°ï¼çº¦éè±è´¹3åé~30åéä¸çã",retryModeLabel:"ð éè¯æ¨¡å¼",retryModeStrict:"åªè·ä¸æ¬¡ (ä¸¥æ ¼æ¨¡å¼)",retryModeNormal:"èªå¨éè¯3次 (æ£å¸¸æ¨¡å¼)",retryModeCustom:"èªå®ä¹éè¯æ¬¡æ°",customRetryCountLabel:"éè¯æ¬¡æ°",customRetryCountNote:"请è¾å
¥ 1-10 ä¹é´çéè¯æ¬¡æ°",retryingRequest:"ð æ£å¨éè¯è¯·æ±",retrySuccess:"â
éè¯æå",retryFailed:"â éè¯å¤±è´¥",retryError:"â éè¯é误",allRetriesFailed:"â ææéè¯é½å¤±è´¥äº",outputLangOptions:{en:"English","zh-TW":"ç¹é«ä¸æ","zh-CN":"ç®ä½ä¸æ",ja:"æ¥æ¬èª",fr:"Français",es:"Español"}},about:{title:"ð å
³äº Sensemaker æè§ç»¼æ´å¨",whatIsTitle:"ð ä»ä¹æ¯ Sensemaker æè§ç»¼æ´å¨ï¼",whatIsDescription:"Sensemaker æè§ç»¼æ´å¨ æ¯ä¸ä¸ªå¼ºå¤§ç AI 驱å¨å·¥å
·ï¼ä¸é¨ç¨äºåæå¤§éæè§æ°æ®å¹¶äº§çææä¹çæ´å¯ãå®è½å¤è¯å«ä¸»è¦å
±åç¹åæè§åæ§ï¼å¸®å©æ¨ä»æµ·éæ°æ®ä¸æåæä»·å¼çä¿¡æ¯ã",
4whatIsDescription2:"è¿ä¸ªå·¥å
·ç¹å«éç¨äºå®¡è®®æ°ä¸»åºæ¯ï¼å½æ¨ä½¿ç¨ Polis åé¦ ç弿¥æè§å¾éå·¥å
·æ¶ï¼å¯ä»¥å¸®å©å¤ç大éç¸ä¼¼æéå¤çæè§ï¼èªå¨çæç»æåçåææ¥åãæ¬ç«ä¸ºå®é¨ä»½åè½çä¸ä¸ªå端å®ç°ã",resourcesTitle:"ð ç¸å
³èµæº",officialDocs:"宿¹è¯´ææï¼",openSourceLib:"弿ºç¨åºåºï¼",experimentalLib:"å®éªçç¨åºåº(æ¬ç«ç¸å®¹)ï¼",experimentalBranch:"è¯·ä½¿ç¨ new-feature-open-router 忝",supportedDataTitle:"ð æ¯æçæ°æ®æ¥æº",supportedDataDescription:"æ¬å·¥å
·æ¯æä»ä»¥ä¸å¹³å°å¯¼åºçæ¥åæ°æ®ï¼",polisTWTitle:"ð¹ð¼ Polis.tw",polisTWDescription:"ä» Polis.tw çæ¥å页é¢è·åæ°æ®ï¼éè¦éè¿å¼åè
æ¨¡å¼æå API ååºç JSON æ°æ®ã请åèè¿ç¯æå¦ä¸çç¸å
³è¯´æã",polisTitle:"ð Pol.is",polisDescription:"ä» Pol.is æ¥å页é¢å¯¼åº comments ç¸å
³ç CSV æä»¶ï¼å¯ç´æ¥ä¸ä¼ 使ç¨ã",dataFormatTitle:"ð æ°æ®æ ¼å¼è¦æ±",polisTWFormatTitle:"ð¹ð¼ Polis.tw æ°æ®æ ¼å¼",polisTWFormatDescription:"请注æï¼polis.tw çæ°æ®æ ¼å¼ä¸ Pol.is ä¸åï¼polis.tw导åºçjsonæ ¼å¼å¯ä»¥ç´æ¥ä½¿ç¨ã",polisFormatTitle:"ð Pol.is æ°æ®æ ¼å¼",polisFormatDescription:"pol.isçæ°æ®æ ¼å¼ï¼äº¦å¯ç´æ¥ä¸ä¼ 使ç¨ã",useCasesTitle:"ð¯ 使ç¨åºæ¯",useCasesDescription:"Sensemaker ç¹å«éç¨äºä»¥ä¸åºæ¯ï¼",deliberativeDemocracy:"审议æ°ä¸»ï¼å¤ç大éå
¬æ°æè§ï¼è¯å«å
±è¯ååæ§ç¹",policyMaking:"æ¿çå¶å®ï¼åæå
¬ä¼å¯¹ç¹å®æ¿ççæè§åå¸",productDevelopment:"产åå¼åï¼æ´çç¨æ·åé¦ï¼è¯å«ä¸»è¦éæ±åæ¹è¿ç¹",academicResearch:"妿¯ç ç©¶ï¼åæé®å·è°æ¥æè®¿è°æ°æ®",communityManagement:"社群管çï¼ç解社群æåçæè§åéæ±",usageTipsTitle:"ð¡ 使ç¨å»ºè®®",ensureDataQuality:"ç¡®ä¿æ°æ®è´¨éï¼ç§»é¤éå¤ææ æçæè§",provideContext:"æä¾æ¸
æ°çä¸ä¸ææè¿°ï¼å¸®å© AI æ´å¥½å°çè§£æ°æ®èæ¯",chooseFormat:"æ ¹æ®åæç®çéæ©åéçè¾åºæ ¼å¼ï¼æ¨èä½¿ç¨ Markdown æ ¼å¼ï¼",regularCheck:"å®ææ£æ¥åæ´æ°æ°æ®ï¼ç¡®ä¿åæç»æçæ¶ææ§",getStartedTitle:"ð å¼å§ä½¿ç¨",readyToStart:"åå¤å¥½æ¨çæ°æ®äºåï¼åå¾é¦é¡µå¼å§ä¸ä¼ ååææ¨çæè§æ°æ®ï¼"},privacy:{title:"éç§ææ¿ç",privacyPolicy:"éç§ææ¿ç",privacyDescription:"è¿æ¬¾åºç¨ç¨åºä¸ä¼æéä»»ä½ä¸ªäººèµæãçæçæ¥å伿æ¶åå¨äº R2 å卿å¡ä¸ä¾æ¨ä¸è½½ï¼å¹¶ä»¥å¯ä¸ç taskID è¯å«ï¼å
¶ä»ä½¿ç¨è
æ æ³å徿å忍çèµæã",dataProcessingTitle:"å
³äºèµæå¤ç",backendProcessing:"å端è¿ç®ï¼èµæä¼ä¼ éå°å端è¿è¡è¿ç®å¤çï¼ä½å端ä¸ä¼å¨åä»»ä½ä½¿ç¨è
çä¸ªäººèµæåææä¿¡æ¯ï¼ç¹å«æ¯API KEYä¸ä¼è¢«å¨åã",noCookies:"æ cookiesï¼æä»¬ä¸ä½¿ç¨ä»»ä½ cookiesã",openSource:"弿ºéæï¼æä»¬ç代ç å®å
¨å¼æºï¼æ¨å¯ä»¥æ£è§ææåè½ä»¥ç¡®ä¿éç§å®å
¨ã",frontendProject:"å端项ç®",backendProject:"å端项ç®",openSourceNote:"Open Source Transparency: Our code is completely open source, and you can review all functionality to ensure privacy. Check our frontend and backend repositories on GitHub."},selfHost:{title:"ðï¸ èªè¡æ¶ç«æå",overviewTitle:"ð æ¦è¿°",overviewDescription:"妿æ¨å¯¹éç§åèµæå®å
¨æçèï¼æ¬¢è¿ fork æä»¬ç项ç®å¹¶èªè¡æ¶è®¾æå¡ãè¿æ ·æ¨å¯ä»¥å®å
¨æ§å¶èªå·±çèµæå API å¯é¥ã",paidPlanTitle:"ä»è´¹æ¹æ¡éæ±",paidPlanDescription:"å端æå¡ä½¿ç¨ Cloudflare Queues åè½ï¼éè¦ Worker ä»è´¹æ¹æ¡ãå
è´¹æ¹æ¡ä¸æ¯ææ¤åè½ã",backendTitle:"ð§ å端æ¶è®¾ (Cloudflare Worker)",step1Backend:"æ¥éª¤ 1: Fork å端项ç®",step1BackendDesc:"åå¾ sensemaker-backend 项ç®å¹¶ fork å°æ¨ç GitHub è´¦å·",viewBackendProject:"æ¥çå端项ç®",step2Backend:"æ¥éª¤ 2: è®¾å® Cloudflare Worker",step2BackendDesc:"å¨ Cloudflare Dashboard ä¸å建æ°ç Workerï¼å¹¶é¨ç½²æ¨çå端代ç ",importantNote:"â ï¸ éè¦æéï¼å端ä¼ç¨å° Cloudflare Queues åè½ï¼éè¦ç§ç¨ Worker ä»è´¹æ¹æ¡ãå
è´¹æ¹æ¡ä¸æ¯æ Queuesã",cloudflareLogin:"ç»å½ Cloudflare Dashboard",createWorker:"å建æ°ç Worker",uploadCode:"ä¸ä¼ æ¨çå端代ç ",setEnvVars:"设å®å¿
è¦çç¯å¢åé",upgradePlan:"å级å°ä»è´¹æ¹æ¡ä»¥å¯ç¨ Queues åè½",frontendTitle:"ð¨ å端æ¶è®¾ (Vue.js)",step1Frontend:"æ¥éª¤ 1: Fork å端项ç®",step1FrontendDesc:"åå¾ sensemaker-frontend 项ç®å¹¶ fork å°æ¨ç GitHub è´¦å·",viewFrontendProject:"æ¥çå端项ç®",step2Frontend:"æ¥éª¤ 2: ä¿®æ¹ API 端ç¹",step2FrontendDesc:"å¨ src/views/HomeView.vue ä¸ï¼å° API URL æ¹ä¸ºæ¨ç Worker ç½åï¼",originalURL:"忬ç URL",yourURL:"æ¹ä¸ºæ¨ç URL",
4step3Frontend:"æ¥éª¤ 3: é¨ç½²å端",step3FrontendDesc:"æ¨å¯ä»¥éæ©å¤ç§é¨ç½²æ¹å¼ï¼å»ºè®®ä½¿ç¨Cloudflare Pagesï¼",cloudflarePages:"Cloudflare Pages: å
è´¹ãä¸ Worker æ´åè¯å¥½",advantagesTitle:"â
èªè¡æ¶ç«çä¼å¿",fullControl:"å®å
¨æ§å¶",fullControlDesc:"æ¨çèµæå®å
¨ç±æ¨ææ§ï¼ä¸ä¼ç»è¿ç¬¬ä¸æ¹æå¡å¨",apiKeyProtection:"API å¯é¥å®å
¨ä¿é",apiKeyProtectionDesc:"æ¨ç API å¯é¥åªåå¨äºæ¨çç¯å¢ä¸ï¼ä¸ç»è¿ç¬¬ä¸æ¹æå¡å¨å¤ç",customizable:"客å¶å",customizableDesc:"å¯ä»¥æ ¹æ®éæ±ä¿®æ¹åè½åçé¢",learning:"å¦ä¹ æºä¼",learningDesc:"æ·±å
¥äºè§£ç°ä»£ Web å¼åææ¯",needHelpTitle:"ð éè¦å¸®å©ï¼",needHelpDesc:"妿卿¶è®¾è¿ç¨ä¸éå°é®é¢ï¼æ¬¢è¿ï¼",openIssue:"å¨ GitHub 项ç®ä¸å¼å¯ Issue",checkReadme:"æ¥ç项ç®ç README å Wiki",joinCommunity:"å å
¥æä»¬ç社群讨论"},maintain:{title:"ç»´æ¤æµè¯ä¸æ¥ä¿®è¯´æ",pageTitle:"ç»´æ¤æµè¯ä¸æ¥ä¿®è¯´æ",testTitle:"𧪠å¦ä½æµè¯æµç¨",testIntro:"æ¬ç«æä¾ä¸ç¬ç®ææµè¯èµæï¼å¯ç¨æ¥éªè¯ä¸ä¼ ãåæä¸äº§åºæè¦ç宿´æµç¨æ¯å¦æ£å¸¸ã",testDataLabel:"æµè¯èµæ",testDataPathBefore:"æµè¯ç¨ CSV ä½äºï¼data/comments_test.csvï¼é¨ç½²å对åºç½å为",testDataPathAfter:"ï¼ã",testDataDesc:"该档æ¡ä¸º Polis æ±åºççè¨æ ¼å¼ï¼å
å«ä¸ç¬èä¾çè¨ï¼å¯ç´æ¥ç¨äºãä¸ä¼ CSVãæµç¨ã",testStepsLabel:"æµè¯æ¥éª¤",step1:"åå¾",step1Suffix:"ã",step2:"å¨ãOpen Router API KEYãæ ä½è¾å
¥æ¨èªå·±ç Open Router API Keyï¼æµè¯æ¶è¯·ä½¿ç¨èªå·±ç Keyï¼æ¬ç«ä¸ä¼å¨åï¼ã",step3:"使ç¨é¢è®¾ç openai/gpt-oss-120b å³å¯æµè¯ã",step4:"ç¹éãéæ©æ¡£æ¡ãå¹¶ä¸ä¼ data/comments_test.csvï¼å¯ä»ä¸è¿°ç½åä¸è½½åä¸ä¼ ï¼ã",step5:"æä¸ãå¼å§åæãï¼çå¾
å¤ç宿ååºä¼äº§åºæè¦ï¼è¥æµç¨æ£å¸¸å³ä»£è¡¨æµè¯éè¿ã",apiKeyTitle:"ð å
³äº Open Router API Key",apiKeyDescBefore:"æµè¯æ¶è¯·å¡å¿
ä½¿ç¨æ¨èªå·±ç Open Router API Keyãå徿¹å¼å¯åè ",apiKeyDescAfter:"ãæ¬ç«ä¸ä¼å¨åæä¸ä¼ æ¨ç API Key å°ä»»ä½ä¼ºæå¨ï¼ä»
卿µè§å¨ç«¯ç¨äºå¼å«å端转åè³ Open Routerã",openRouterGuideLink:"Open Router ä½¿ç¨æå",reportTitle:"ð è¥åçæ
éï¼å¦ä½æ¥ä¿®ï¼è´´ Issueï¼",reportIntro:"è¥æµè¯è¿ç¨ä¸åºç°é误ãç»é¢å¼å¸¸æç»æä¸å¦é¢æï¼æ¬¢è¿å°ä¸æ¡ GitHub 忥é®é¢ï¼ä»¥å©ç»´æ¤è
ææ¥ä¸ä¿®å¤ã",reportStepsLabel:"æ¥ä¿®æ¥éª¤",reportStep1:"åå¾åç«¯ä¸æ¡ç Issues 页é¢ï¼",reportStep2:"ç¹éãNew issueãå»ºç«æ° Issueã",reportStep3:"æ é¢ç®è¦æè¿°é®é¢ï¼ä¾å¦ï¼ãä¸ä¼ comments_test.csv ååæå¤±è´¥ãï¼ã",reportStep4:"å
æè¯·å°½éå
å«ï¼",reportStep4Bullet1:"æä½æ¥éª¤ï¼ä¾å¦ï¼ç¨äºæµè¯ CSVãéäºåªä¸ªæ¨¡åï¼ã",reportStep4Bullet2:"é¢æç»æ vs å®é
ç»æï¼ä¾å¦ï¼é¢æåºç°æè¦ï¼å®é
åºç°é误讯æ¯ï¼ã",reportStep4Bullet3:"ç»é¢ä¸çéè¯¯è®¯æ¯ææªå¾ï¼è¥æ¹ä¾¿ï¼ã",reportStep4Bullet4:"æµè§å¨ä¸ä½ä¸ç³»ç»ï¼ä¾å¦ Chrome 120 / macOSï¼ã",reportStep5:"è¥é®é¢ä¸å
4端 API æå
³ï¼å¯åæ¶å°åç«¯ä¸æ¡åæ¥ï¼",reportStep5Backend:"sensemaker-backend Issues",reportStep5Suffix:"ã",frontendIssuesUrl:"https://github.com/g0v/sensemaker-frontend/issues",backendIssuesUrl:"https://github.com/bestian/sensemaker-backend/issues"},guideModal:{title:"欢è¿ä½¿ç¨ Sensemakeræè§ç»¼æ´å¨",description:"Sensemaker æè§ç»¼æ´å¨æ¯ä¸ä¸ªå¼ºå¤§çæè§è°æ¥æ¥ååæå·¥å
·ï¼å¯ä»¥å¸®å©æ¨ä»å¤§éæè§è°æ¥æ¥å䏿åæä»·å¼çæ´å¯ã",sensemakingToolsLink:"2026ææ°ç: å¯ç¨OpenRouter ææ¬å° LM Studioçæå®æ´çäºå¨å¼ HTML ç½é¡µæ¥å",uberReportExample:"æ¥åå®ä¾ï¼ãUberX èªç¨è½¦è½½å®¢ã",polisTitle:"1. Polisæè§è°æ¥æ¥å导åº",polisDescription:"æ¬å·¥å
·æ¯æ Polis å¹³å°å¯¼åºçæè§è°æ¥æ¥åãè¯·ç¡®ä¿æ¨çæä»¶ç¬¦å Polis çæ°æ®ç»æã",polisLink:"æ¥ç说æ â",openRouterTitle:"2. OpenRouter API è¿æ¥",openRouterDescription:"æ¬å·¥å
·ä½¿ç¨ OpenRouter æ¥è¿æ¥åç§å¤§åè¯è¨æ¨¡åãæ¨éè¦æä¾ OpenRouter API Key æè½ä½¿ç¨ã",openRouterLink:"æ¥ç说æ â",sensemakerTitle:"3. Sensemaker åæ",sensemakerDescription:"æ¬å·¥å
·ä½¿ç¨ Sensemaker è¿è¡åæã请åè以䏿ä½è¯´æï¼è¿è¡åæã",sensemakerLink:"äºè§£æ´å¤ â",tip:"æç¤ºï¼ å¦ææ¨æ¯ç¬¬ä¸æ¬¡ä½¿ç¨ï¼å»ºè®®å
é
读ä¸è¿°è¯´ææä»¶ï¼ä»¥ç¡®ä¿æ£ç¡®ä½¿ç¨æ¬å·¥å
·ã",dontShowAgain:"ä¸åæ¾ç¤ºæ¤æç¤º",iKnow:"æç¥éäº"},openRouterGuide:{title:"OpenRouter ä½¿ç¨æå",step1Title:"è¿å
¥ OpenRouter é¦é¡µ",step1Description:"é¦å
ï¼è¯·åå¾ OpenRouter 宿¹ç½ç«ãOpenRouter æ¯ä¸ä¸ªç»ä¸ç LLM çé¢ï¼æä¾å¤ç§ AI 模å便¨éæ©ãæ¬å·¥å
·ä¸»è¦ä½¿ç¨é«åè´¨ãæ·±æã平价ç<b>GPT-OSS-120B</b>模åã",step1Link:"åå¾ OpenRouter é¦é¡µï¼https://openrouter.ai/",step1Tip:"æç¤ºï¼æ³¨åè´¦å·å¹¶ç»å½åï¼è¯·ç¹å»é¦é¡µå³ä¸ç个人头åï¼å±å¼ä¸æèåï¼ä»¥è¿è¡åç»æ¥éª¤ï¼å¨å¼ Credits åç³è¯· API Keyï¼ã",step2Title:"å¨å¼ Credits",step2Description:"å¨ä½¿ç¨ OpenRouter çæå¡ä¹åï¼æ¨éè¦å
è´ä¹°ä¿¡ç¨ç¹æ°(Credits)ãCredits å¯ä»¥ç¨äºä»»ä½æ¨¡åææä¾è
ï¼è®©æ¨çµæ´»ä½¿ç¨ä¸åç AI æå¡ã",step2Link:"åå¾å¨å¼é¡µé¢ï¼https://openrouter.ai/settings/credits",step3Title:"ç³è¯· API Key",step3Description:"æåï¼æ¨éè¦å»ºç«ä¸ä¸ª API Key æè½å¼å§ä½¿ç¨ OpenRouter çæå¡ãAPI Key å®å
¨å
¼å®¹äº OpenAI çæ ¼å¼ï¼å¯ä»¥ç´æ¥ä½¿ç¨ã",step3Link:"åå¾ API Key 设置页é¢ï¼https://openrouter.ai/settings/keys",tipsTitle:"éè¦æç¤º",tip1:"⢠请妥åä¿ç®¡æ¨ç API Keyï¼ä¸è¦å享ç»ä»äºº",tip2:"⢠API Key 建ç«åå³å¯ç«å³ä½¿ç¨ï¼æ éçå¾
å®¡æ ¸",tip3:"â¢ å»ºè®®å®ææ£æ¥æ¨ç Credits ä½é¢ï¼ç¡®ä¿æå¡æ£å¸¸è¿ä½",tip4:"⢠OpenRouter æ¯æå¤ç§ä»æ¬¾æ¹å¼ï¼å
æ¬ä¿¡ç¨å¡ç",backToHome:"è¿åé¦é¡µ"},polisGuide:{title:"Polis ä½¿ç¨æå",step1Title:"åå¾ Polis é¦é¡µ",step1Description:"é¦å
ï¼è¯·åå¾ Polis 宿¹ç½ç«ãPolis æ¯ä¸ä¸ªç¨äºæ¶éååæç¾¤ä¼æè§çå¹³å°ï¼å¯ä»¥å¸®å©æ¨äºè§£ä¸åè§ç¹å¹¶è¿è¡ææä¹çæè§å¾éã",step1Link:"åå¾ Polis é¦é¡µï¼https://pol.is/home",step2Title:"注åè´¦å·ä¸ç»å½",step2Description:"妿æ¨è¿æ²¡æ Polis è´¦å·ï¼è¯·å
注åä¸ä¸ªæ°è´¦å·ã妿已æè´¦å·ï¼è¯·ç´æ¥ç»å½ãç»å½åæ¨å°±å¯ä»¥å¼å§å建å管ç对è¯äºã",step2Link:"åå¾ç»å½/注å页é¢ï¼https://pol.is/signin",step3Title:"å¨ Polis Dashboard å建ä¸ç®¡ç对è¯",step3Description:"ç»å½åï¼æ¨ä¼è¿å
¥ Polis Dashboardãå¨è¿éæ¨å¯ä»¥å建æ°ç对è¯ï¼Conversationï¼ï¼å¹¶ç®¡çç°æç对è¯ãç¹å»ãCreate New Conversationãæé®å³å¯å¼å§å建æ°ç对è¯ã",step3Link:"åå¾ Polis Dashboardï¼https://pol.is/",step4Title:"å叿è§å¾éçç½åï¼æ¶éååº",step4Description:"å建对è¯åï¼æ¨å¯ä»¥å徿è§å¾éçç½åå¹¶å享ç»åä¸è
ãåä¸è
å¯ä»¥éè¿è¿ä¸ªç½åè¿å
¥å¯¹è¯å¹¶æä¾ä»ä»¬çæè§ãæ¨ä¹å¯ä»¥ä½¿ç¨ embed åè½å°å¯¹è¯åµå
¥å°æ¨çç½ç«ä¸ï¼è®©åä¸è
ç´æ¥å¨æ¨çç½ç«ä¸å䏿è§å¾éã",step5Title:"åæ¢å° Reports Tabï¼å建 Report URL",step5Description:"å¨å¯¹è¯é¡µé¢ä¸ï¼åæ¢å°ãReportsãæ ç¾é¡µãå¨è¿éæ¨å¯ä»¥å建æ¥å URLï¼ç¨äºæ¥ç对è¯çåæç»æåç»è®¡èµæã",step6Title:"è¿å
¥ Report 页",step6Description:"å¨ Reports æ ç¾é¡µä¸ï¼ç¹å»æ¨æ³è¦æ¥çç Report 项ç®ãç¹å»åä¼åºç°é¾æ¥ï¼
4åç¹å»è¯¥é¾æ¥å³å¯è¿å
¥ Report 页é¢ï¼æ¥ç详ç»çåæç»æã",step7Title:"ä¸è½½ Comments CSV",step7Description:"å¨ Report 页é¢ä¸ï¼å䏿»å¨æ¾å°ä¸è½½éé¡¹ãæ¨ä¼çå°ä¸ä¸ªä¸è½½æé®ï¼ç¹å»å³å¯ä¸è½½å
嫿æè¯è®ºç CSV æä»¶ï¼æä»¶åæ ¼å¼ä¸º conversation-id-comments.csvï¼ãè¿ä¸ª CSV æä»¶å
å«äºå¯¹è¯ä¸çææè¯è®ºèµæï¼å¯ä»¥ç¨äºè¿ä¸æ¥çåæã",tipsTitle:"éè¦æç¤º",tip1:"⢠ä¸è½½ç CSV æä»¶å
å«å¯¹è¯ä¸çææè¯è®ºèµæ",tip2:"⢠CSV æä»¶å¯ä»¥ç¨äºå¯¼å
¥å°æ¬ç³»ç»è¿è¡è¿ä¸æ¥çåæ",tip3:"â¢ ç¡®ä¿æ¨ææé访é®è¯¥å¯¹è¯ç Report 页é¢",tip4:"â¢ å¦ææ¾ä¸å°ä¸è½½æé®ï¼è¯·ç¡®è®¤æ¨å·²åæ¢å°æ£ç¡®ç Report 页é¢",backToHome:"è¿åé¦é¡µ"},sensemakerGuide:{title:"Sensemaker ä½¿ç¨æå",step1Title:"ä¸ä¼ Polis 导åºçåå§æ¡£",step1Description:"é¦å
ï¼è¯·ä¸ä¼ ä» Polis ä¸è½½ç CSV æä»¶ãè¿ä¸ªæä»¶å
å«äºææåä¸è
çè¯è®ºèµæï¼æ¯è¿è¡åæçåºç¡èµæãè¯·ç¡®ä¿æä»¶æ ¼å¼æ£ç¡®ï¼ä¸å
å«å¿
è¦çåæ®µä¿¡æ¯ã",step2Title:"è¾å
¥ OpenRouter API Key",step2Description:"å¨å¯¹åºçåæ®µä¸è¾å
¥æ¨ç OpenRouter API Keyãè¿ä¸ª API Key ç¨äºè¿æ¥ OpenRouter æå¡ï¼è®©ç³»ç»è½å¤ä½¿ç¨ AI 模åè¿è¡åæãè¯·ç¡®ä¿ API Key æ£ç¡®ä¸ææã",step3Title:"模ååç§°ä¿ç openai/gpt-oss-120b",step3Description:"ç³»ç»é¢è®¾ä½¿ç¨ <b>openai/gpt-oss-120b</b> 模åè¿è¡åæãè¿æ¯ä¸ä¸ªé«åè´¨ãæ·±æä¸å¹³ä»·ç模åï¼é常éåç¨äºæè§åæãå»ºè®®ä¿ææ¤è®¾ç½®ï¼é¤éæ¨æç¹æ®éæ±ã",step3Tip:"æç¤ºï¼æ¨¡ååç§°åæ®µå·²é¢è®¾ä¸º",step3TipCode:"openai/gpt-oss-120b",step3TipEnd:"ï¼é常ä¸éè¦ä¿®æ¹ã",step4Title:"è¾å
¥é¢å¤ä¸ä¸æï¼ä¼åè¯è¨æ¨¡åçåæèç»",step4Description:"æ¨å¯ä»¥éæ©æ§å°è¾å
¥é¢å¤çä¸ä¸æä¿¡æ¯ï¼ä¾å¦å¯¹è¯ç主é¢èæ¯ãç¸å
³æ¿ç说æãæç¹å®çåæéç¹ãè¿äºä¿¡æ¯å¯ä»¥å¸®å© AI æ¨¡åæ´åç¡®å°çè§£è¯è®ºçèç»ï¼æä¾æ´æ·±å
¥çåæç»æã",step5Title:"éæ©è¾åºè¯è¨",step5Description:"éæ©æ¨å¸ææ¥å使ç¨çè¯è¨ãä¾å¦éæ©ã䏿ãåï¼åææ¥åå°ä»¥ä¸æåç°ï¼è®©æ¨æ´å®¹æé
读åçè§£åæç»æã",step6Title:"å¼å§åæ",step6Description:"确认ææè®¾ç½®æ 误åï¼ç¹å»ãå¼å§åæãæé®ãç³»ç»ä¼å¼å§å¤çæ¨çèµæï¼è¿ä¸ªè¿ç¨å¯è½éè¦å åéçæ¶é´ï¼è¯·èå¿çå¾
ãæ¨å¯ä»¥å¨é¡µé¢ä¸çå°åæè¿åº¦çç¸å
³ä¿¡æ¯ã",step7Title:"æ£é
å¹¶ä¸è½½ Markdown æ¥å",step7Description:"åæå®æåï¼ç³»ç»ä¼çæä¸ä»½ Markdown æ ¼å¼çåææ¥åãæ¨å¯ä»¥å¨é¡µé¢ä¸é¢è§æ¥åå
容ï¼ç¡®è®¤æ 误åç¹å»ä¸è½½æé®ï¼å°æ¥åä¿åå°æ¨ççµèãæ¥åå
å«è¯¦ç»çåæç»æãç»è®¡èµæåæ´å¯å»ºè®®ã",tipsTitle:"éè¦æç¤º",tip1:"⢠确ä¿ä¸ä¼ ç CSV æä»¶æ ¼å¼æ£ç¡®ï¼ä¸å
å«å¿
è¦çåæ®µ",tip2:"⢠API Key 请妥åä¿ç®¡ï¼ä¸è¦å享ç»ä»äºº",tip3:"⢠åæè¿ç¨å¯è½éè¦å åéï¼è¯·èå¿çå¾
ï¼ä¸è¦å
³é页é¢",tip4:"⢠ä¸è½½ç Markdown æ¥åå¯ä»¥ç¨ä»»ä½æ¯æ Markdown çç¼è¾å¨æå¼",tip5:"â¢ å¦æåæå¤±è´¥ï¼è¯·æ£æ¥ API Key æ¯å¦ææï¼ä»¥å Credits ä½é¢æ¯å¦å
è¶³",backToHome:"è¿åé¦é¡µ"},footer:{description:"强大ç AI 驱卿è§ç»¼æ´å·¥å
·ï¼ä¸é¨ç¨äºåæå¤§éæè§æ°æ®å¹¶äº§çææä¹çæ´å¯ã",communityLinks:"ç¤¾ç¾¤é¾æ¥",jigsawOriginalProject:"Jigsawå项ç®",officialDocs:"宿¹ææ¡£",experimentalVersion:"å®éªçæ¬",contactInfo:"èç»ä¿¡æ¯",license:"CC-BY-SAã",sourceCode:"æ¬ç«æºä»£ç ",privacyPolicy:"éç§æ¿ç",selfHost:"èªè¡æ¶ç«",termsOfService:"ä½¿ç¨æ¡æ¬¾"}},qh={common:{home:"Home",about:"About",privacy:"Privacy",maintain:"Maintain & Test",selfHost:"Self-Host",backToHome:"Back to Home",loading:"Loading...",error:"Error",success:"Success",warning:"Warning",info:"Info",download:"Download",upload:"Upload",submit:"Submit",cancel:"Cancel",save:"Save",edit:"Edit",delete:"Delete",close:"Close",confirm:"Confirm",yes:"Yes",no:"No",required:"Required",optional:"Optional"}
4,home:{title:"ð Sensemaker",subtitle:"About Sensemaker Opinion Integration Tool",apiKeyLabel:"ð OpenRouter API Key",apiKeyPlaceholder:"Please enter your OpenRouter API Key",showApiKey:"Show API key",hideApiKey:"Hide API key",getApiKeyLink:"Get API Key",apiKeyRequired:"This field is required to connect to AI model services",invalidApiKey:"Invalid API Key or model",privacyNote:"ð Privacy Protection: According to our privacy policy, this site will not store your API KEY anywhere. If you have concerns, you are welcome to self-host both backend and frontend services.",modelLabel:"ð¤ Model Name:",modelPlaceholder:"openai/gpt-oss-120b",additionalContextLabel:"ð Additional Context:",additionalContextNote:"Help AI understand conversation background and improve topic identification accuracy. This field is optional.",additionalContextPlaceholder:"Describe the background and environment of the conversation. Can be left empty.",outputLangLabel:"ð Output Language:",fileLabel:"ð Upload File (JSON exported from polis.tw or CSV exported from pol.is)",startAnalysis:"ð Start Analysis",riskWarning:"â ï¸ Warning: Since the opinion integration tool is currently still in development and testing, LLM responses have inherent instability, and there is approximately a 1/6 chance that a single report will fail to generate. You can increase the success rate through retry mechanism settings.",processing:"â³ Processing...",selectFileFirst:"Please select a file to upload",taskId:"Task ID",status:"Status",estimatedTime:"Estimated Time",requestFailed:"â Request failed",requestError:"â Request error",taskStatus:"ð Task Status",commentsCount:"Comments Count",model:"Model Used",pollingResults:"Polling results...",taskInQueue:"Task added to queue, will start checking results in 3 minutes...",taskProcessing:"Task still processing...",taskCompleted:"â
Analysis completed!",commentsProcessed:"Processed {count} comments",completedAt:"Completed at",summary:"Summary",downloadMarkdown:"â¬ï¸ Download Markdown",noMarkdownContent:"â No Markdown content to download",downloadFailed:"â Download failed",testLLM:"ð Testing LLM connection...",testLLMSuccess:"â
LLM test successful!",testLLMFailed:"â LLM test failed",testLLMError:"â LLM test request error",testCSV:"â Please select a CSV file first",testCSVSuccess:"â
CSV parsing successful!",testCSVFailed:"â CSV parsing failed",testR2:"ð Testing R2 read/write...",testR2Success:"â
R2 test successful!",testR2Failed:"â R2 test failed",testR2Error:"â R2 test request error",taskFailed:"â Task processing failed",failedAt:"Failed at",errorDetails:"Error Details",errorMessage:"Error Message",detailedError:"Detailed Error",unknownError:"Unknown Error",noDetailedError:"No detailed error information",outputLangOptions:{en:"English","zh-TW":"ç¹é«ä¸æ","zh-CN":"ç®ä½ä¸æ",ja:"æ¥æ¬èª",fr:"Français",es:"Español"},modelNote:"We recommend using the gpt-oss-120b model. If you want to use other inference models, please refer to the OpenRouter model list for information to compare the performance and pricing standards of various models",modelLinkText:"ð View OpenRouter Models",costNote:"ð° Cost Estimate: Using gpt-oss-120b for analysis, depending on data volume, costs approximately $0.05-0.20 USD.",timeNote:"â±ï¸ Time Estimate: Using gpt-oss-120b for analysis, depending on data volume, takes approximately 3-30 minutes.",retryModeLabel:"ð Retry Mode",retryModeStrict:"Run once only (Strict mode)",retryModeNormal:"Auto retry 3 times (Normal mode)",retryModeCustom:"Custom retry count",customRetryCountLabel:"Retry Count",customRetryCountNote:"Please enter a retry count between 1-10",retryingRequest:"ð Retrying request",retrySuccess:"â
Retry successful",retryFailed:"â Retry failed",retryError:"â Retry error",allRetriesFailed:"â All retries failed"},about:{title:"ð About Sensemaker Opinion Integration Tool",subtitle:"About Sensemaker Opinion Integration Tool",whatIsTitle:"ð What is Sensemaker Opinion Integration Tool?",whatIsDescription:"Sensemaker Opinion Integration Tool is a powerful AI-driven tool specifically designed for analyzing large volumes of opinion data and generating meaningful insights. It c
4an identify major commonalities and opinion divergences, helping you extract valuable information from massive datasets.",whatIsDescription2:"This tool is particularly suitable for deliberative democracy scenarios. When you use asynchronous opinion collection tools like Polis, it can help process large amounts of similar or repetitive opinions and automatically generate structured analysis reports. This is a front-end implementation of some of its features.",resourcesTitle:"ð Related Resources",resourcesSubtitle:"Related Resources",officialDocs:"Official Documentation:",openSourceLib:"Open Source Library:",experimentalLib:"Experimental Library (compatible with this site):",experimentalBranch:"Please use the new-feature-open-router branch",supportedDataTitle:"ð Supported Data Sources",supportedDataSubtitle:"Supported Data Sources: This tool supports report data exported from the following platforms",supportedDataDescription:"This tool supports report data exported from the following platforms:",polisTWTitle:"ð¹ð¼ Polis.tw",polisTWDescription:"Get data from Polis.tw report pages, requires extracting JSON data from API responses through developer mode. Please refer to the relevant instructions in this tutorial.",polisTitle:"ð Pol.is",polisDescription:"Export comments-related CSV files from Pol.is report pages, can be uploaded directly.",dataFormatTitle:"ð Data Format Requirements",dataFormatSubtitle:"Data Format Requirements",polisTWFormatTitle:"ð¹ð¼ Polis.tw Data Format",polisTWFormatDescription:"Note: Polis.tw data format is different from Pol.is. Currently, the JSON format exported by polis.tw can be used directly.",polisFormatTitle:"ð Pol.is Data Format",polisFormatDescription:"For pol.is data format, can be uploaded directly.",useCasesTitle:"ð¯ Use Cases",useCasesSubtitle:"Use Cases",useCasesDescription:"Sensemaker is particularly suitable for the following scenarios:",deliberativeDemocracy:"Deliberative Democracy: Process large volumes of citizen opinions, identify consensus and divergence points",policyMaking:"Policy Making: Analyze public opinion distribution on specific policies",productDevelopment:"Product Development: Organize user feedback, identify main needs and improvement points",academicResearch:"Academic Research: Analyze questionnaire surveys or interview data",communityManagement:"Community Management: Understand community members' opinions and needs",usageTipsTitle:"ð¡ Usage Tips",usageTipsSubtitle:"Usage Tips",ensureDataQuality:"Ensure data quality, remove duplicate or invalid opinions",provideContext:"Provide clear context descriptions to help AI better understand data background",chooseFormat:"Cho
4ose appropriate output format based on analysis purpose (recommended: Markdown format)",regularCheck:"Regularly check and update data to ensure analysis results are timely",getStartedTitle:"ð Get Started",getStartedSubtitle:"Get Started",readyToStart:"Ready with your data? Go to the Homepage to start uploading and analyzing your opinion data!"},privacy:{title:"Privacy Policy",privacyPolicy:"Privacy Policy",privacyDescription:"This application does not collect any private data whatsoever. Generated reports are temporarily stored in R2 storage service for your download and cannot be accessed by other users.",privacyPolicyEn:"Privacy Policy",privacyDescriptionEn:"This application does not collect any private data whatsoever. Generated reports are temporarily stored in R2 storage service for your download and cannot be accessed by other users.",dataProcessingTitle:"About Data Processing",backendProcessing:"Backend Processing: Data is sent to our backend for computation, but no user data is stored on our servers, especially API keys are never stored.",noCookies:"No Cookies: We do not use any cookies.",openSource:"Open Source Transparency: Our code is completely open source, and you can review all functionality to ensure privacy.",frontendProject:"Frontend Project",backendProject:"Backend Project",openSourceNote:"Open Source Transparency: Our code is completely open source, and you can review all functionality to ensure privacy. Check our frontend and backend repositories on GitHub."},selfHost:{title:"ðï¸ Self-Hosting Guide",overviewTitle:"ð Overview",overviewDescription:"If you have concerns about privacy and data security, you're welcome to fork our project and self-host the service. This way you have complete control over your data and API keys.",paidPlanTitle:"Paid Plan Requirements",paidPlanDescription:"The backend service uses Cloudflare Queues which requires a paid Worker plan. Free plans do not support this feature.",backendTitle:"ð§ Backend Setup (Cloudflare Worker)",backendSubtitle:"Backend Setup (Cloudflare Worker)",step1Backend:"Step 1: Fork Backend Project",step1BackendDesc:"Go to the sensemaker-backend project and fork it to your GitHub account",viewBackendProject:"View Backend Project",step2Backend:"Step 2: Set up Cloudflare Worker",step2BackendDesc:"Create a new Worker in Cloudflare Dashboard and deploy your backend code",importantNote:"â ï¸ Important Note: The backend uses Cloudflare Queues which requires a paid Worker plan. Free plans do not support Queues.",frontendTitle:"ð¨ Frontend Setup (Vue.js)",frontendSubtitle:"Frontend Setup (Vue.js)",step1Frontend:"Step 1: Fork Frontend Project",step1FrontendDesc:"Go to the sensemaker-frontend project and fork it to your GitHub account",viewFrontendProject:"View Frontend Project",step2Frontend:"Step 2: Modify API Endpoint",step2FrontendDesc:"In src/views/HomeView.vue, change the API URL to your Worker URL:",originalURL:"Original URL",yourURL:"Your URL",step3Frontend:"Step 3: Deploy Frontend",step3FrontendDesc:"You can choose from multiple deployment methods, we recommend using Cloudflare Pages:",cloudflarePages:"Cloudflare Pages: Free, integrates well with Workers",advantagesTitle:"â
Advantages of Self-Hosting",fullControl:"Full Control",fullControlDesc:"Your data is completely under your control and will not pass through a third-party server",apiKeyProtection:"Full API Key Protection",apiKeyProtectionDesc:"Your API keys are kept completely within your environment and never passed through a third-party server",customizable:"Customizable",customizableDesc:"You can modify the functionality and interface according to your needs",learning:"Learning Opportunity",learningDesc:"Learn more about modern web development technology",needHelpTitle:"ð Need Help?",needHelpSubtitle:"Need Help?",needHelpDesc:"If you encounter problems during setup, you're welcome to:",openIssue:"Open an Issue in the GitHub project",checkReadme:"Check the project's README and Wiki",joinCommunity:"Join our community discussions"},maintain:{title:"Maintain, Test & Report",pageTitle:"Maintain, Test & Report",testTitle:"𧪠How to test",testIntro:"This site provides a simple test dataset to verify that the upload, analysis, and summary pipeline works correctly.",testDataLabel:"Test data",testDataPathBefore:"The test CSV is at data/comments_test.csv (when deployed, the URL is",testDataPathAfter:").",testDataDesc:'The file is in Polis export comment format with one sample comment, and can be used directly in the "Upload CSV" flow.',testStepsLabel:"Test steps",step1:"Go to",step1Suffix:".",step2:'Enter your own Open Router API Key in the "Open Router API KEY" field (use your own key for testing; this site does not store it).',step3:"Use the default openai/gpt-oss-120b to test.",step4:'Click "Choose file" and upload data/comments_test.csv (you can download from the URL above and upload).',step5:'Click "Start analysis" and wait for completion; you should get a summary. If the flow completes, the test passed.',apiKeyTitle:"ð About Open Router API Key",apiKeyDescBefore:"You must use your own Open Router API Key when testing. See ",apiKeyDescAfter:" for how to get one. This site does not store or send your API Key to any server; it is only used in the browser to call the backend, which forwards to Open Router.",openRouterGuideLink:"Open Router usage guide",reportTitle:"ð How to report issues",reportIntro:"If you see errors, broken UI, or unex
4pected results during testing, please report them on the project GitHub so maintainers can investigate and fix.",reportStepsLabel:"Reporting steps",reportStep1:"Go to the frontend project Issues page:",reportStep2:'Click "New issue" to create a new issue.',reportStep3:'Use a clear title (e.g. "Analysis fails after uploading comments_test.csv").',reportStep4:"In the body, please include when possible:",reportStep4Bullet1:"Steps to reproduce (e.g. used test CSV, which model).",reportStep4Bullet2:"Expected vs actual result (e.g. expected summary, got an error message).",reportStep4Bullet3:"Error message or screenshot from the page.",reportStep4Bullet4:"Browser and OS (e.g. Chrome 120 / macOS).",reportStep5:"If the issue is with the backend API, you can also report to the backend project:",reportStep5Backend:"sensemaker-backend Issues",reportStep5Suffix:".",frontendIssuesUrl:"https://github.com/g0v/sensemaker-frontend/issues",backendIssuesUrl:"https://github.com/bestian/sensemaker-backend/issues"},guideModal:{title:"Welcome to Sensemaker Opinion Integration Tool",description:"Sensemaker Opinion Integration Tool is a powerful opinion survey report analysis tool that can help you extract valuable insights from large volumes of opinion survey reports.",sensemakingToolsLink:"2026 latest: Use OpenRouter or local LM Studio to generate a complete interactive HTML web report",uberReportExample:'Example report: "UberX Private Car Ride-hailing"',polisTitle:"1. Polis Opinion Survey Report Export",polisDescription:"This tool supports opinion survey reports exported from the Polis platform. Please ensure your files conform to Polis data structure.",polisLink:"View Guide â",openRouterTitle:"2. OpenRouter API Connection",openRouterDescription:"This tool uses OpenRouter to connect to various large language models. You need to provide an OpenRouter API Key to use it.",openRouterLink:"View Guide â",sensemakerTitle:"3. Sensemaker Analysis",sensemakerDescription:"This tool uses Sensemaker for analysis. Please refer to the following instructions for analysis.",sensemakerLink:"Learn More â",tip:"Tip: If this is your first time using this tool, we recommend reading the above guide documents first to ensure proper use.",dontShowAgain:"Don't show this tip again",iKnow:"I Understand"},openRouterGuide:{title:"OpenRouter Usage Guide",step1Title:"Go to OpenRouter Homepage",step1Description:"First, please visit the OpenRouter official website. OpenRouter is a unified LLM interface that provides various AI models for you to choose from. This tool mainly uses the high-quality, thoughtful, and affordable <b>GPT-OSS-120B</b> model.",step1Link:"Go to OpenRouter Homepage: https://openrouter.ai/",step1Tip:"Tip: After registering and logging in, please click on the personal avatar in the top right corner of the homepage to expand the dropdown menu for subsequent steps (purchasing Credits and applying for API Key).",step2Title:"Purchase Credits",step2Description:"Before using OpenRouter services, you need to purchase credits first. Credits can be used with any model or provider, allowing you to flexibly use different AI services.",step2Link:"Go to Credits Purchase Page: https://openrouter.ai/settings/credits",step3Title:"Apply for API Key",step3Description:"Finally, you need to create an API Key to start using OpenRouter services. The API Key is fully compatible with OpenAI format and can be used directly.",step3Link:"Go to API Key Settings Page: https://openrouter.ai/settings/keys",tipsTitle:"Important Tips",tip1:"⢠Please keep your API Key safe and do not share it with others",tip2:"⢠API Key can be used immediately after creation, no approval needed",tip3:"⢠It is recommended to regularly check your Credits balance to ensure normal service operation",tip4:"⢠OpenRouter supports various payment methods, including credit cards",backToHome:"Back to Home"},polisGuide:{title:"Polis Usage Guide",step1Title:"Go to Polis Homepage",step1Description:"First, please visit the Polis official website. Polis is a platform for collecting and analyzing public opinions, helping you understand different perspectives and conduct meaningful opinion collection.",step1Link:"Go to Polis Homepage: https://pol.is/home",step2Title:"Register Account and Login",step2Description:"If you don't have a Polis account yet, please register a new account first. If you already have an account, please log in directly. After logging in, you can start creating and managing conversations.",step2Link:"Go to Login/Registration Page: https://pol.is/signin",step3Title:"Create and Manage Conversations in Polis Dashboard",step3Description:'After logging in, you will enter the Polis Dashboard. Here you can create new conversations and manage existing ones. Click the "Create New Conversation" button to start creating a new conversation.',step3Link:"Go to Polis Dashboard: https://pol.is/",step4Title:"Publish Opinion Collection URL and Collect Responses",step4Description:"After creating a conversation, you can obtain the opinion collection URL and share it with participants. Participants can access the conversation through this URL and provide their opinions. You can also use the embed feature to embed the conversation into your website, allowing participants to participate directly on your website.",step5Title:"Switch to Reports Tab and Create Report URL",step5Description:'In the conversation page, switch to the "Reports" tab. Here you can create report URLs to view anal
4ysis results and statistics of the conversation.',step6Title:"Enter Report Page",step6Description:"In the Reports tab, click on the Report item you want to view. After clicking, a link will appear, then click that link to enter the Report page and view detailed analysis results.",step7Title:"Download Comments CSV",step7Description:"In the Report page, scroll down to find the download option. You will see a download button, click it to download a CSV file containing all comments (filename format: conversation-id-comments.csv). This CSV file contains all comment data from the conversation and can be used for further analysis.",tipsTitle:"Important Tips",tip1:"⢠The downloaded CSV file contains all comment data from the conversation",tip2:"⢠CSV files can be imported into this system for further analysis",tip3:"⢠Ensure you have permission to access the Report page of that conversation",tip4:"⢠If you cannot find the download button, please confirm you have switched to the correct Report page",backToHome:"Back to Home"},sensemakerGuide:{title:"Sensemaker Usage Guide",step1Title:"Upload Polis Exported Original File",step1Description:"First, please upload the CSV file downloaded from Polis. This file contains all participant comment data and is the foundation for analysis. Please ensure the file format is correct and contains necessary field information.",step2Title:"Enter OpenRouter API Key",step2Description:"Enter your OpenRouter API Key in the corresponding field. This API Key is used to connect to OpenRouter services, allowing the system to use AI models for analysis. Please ensure the API Key is correct and valid.",step3Title:"Keep Model Name as openai/gpt-oss-120b",step3Description:"The system uses the <b>openai/gpt-oss-120b</b> model by default for analysis. This is a high-quality, thoughtful, and affordable model, very suitable for opinion analysis. It is recommended to keep this setting unless you have special requirements.",step3Tip:"Tip: The model name field is preset to",step3TipCode:"openai/gpt-oss-120b",step3TipEnd:", usually no modification is needed.",step4Title:"Enter Additional Context to Optimize Language Model Analysis Context",step4Description:"You can optionally enter additional context information, such as conversation topic background, related policy descriptions, or specific analysis focus points. This information can help AI models more accurately understand comment context and provide deeper analysis results.",step5Title:"Select Output Language",step5Description:'Select the language you want the report to use. For example, after selecting "Chinese", the analysis report will be presented in Chinese, making it easier for you to read and understand the analysis results.',step6Title:"Start Analysis",step6Description:'After confirming all settings are correct, click the "Start Analysis" button. The system will start processing your data. This process may take a few minutes, please wait patiently. You can see analysis progress information on the page.',step7Title:"Review and Download Markdown Report",step7Description:"After analysis is complete, the system will generate a Markdown format analysis report. You can preview the report content on the page, and after confirming it is correct, click the download button to save the report to your computer. The report contains detailed analysis results, statistics, and insight recommendations.",tipsTitle:"Important Tips",tip1:"⢠Ensure the uploaded CSV file format is correct and contains necessary fields",tip2:"⢠Please keep your API Key safe and do not share it with others",tip3:"⢠The analysis process may take a few minutes, please wait patiently and do not close the page",tip4:"⢠Downloaded Markdown reports can be opened with any Markdown-supporting editor",tip5:"⢠If analysis fails, please check if the API Key is valid and if Credits balance is sufficient",backToHome:"Back to Home"},footer:{description:"A powerful AI-driven opinion integration tool, specifically designed for analyzing large volumes of opinion data and generating meaningful insights.",communityLinks:"Community Links",jigsawOriginalProject:"Jigsaw Original Project",officialDocs:"Official Documentation",experimentalVersion:"Experimental Version",contactInfo:"Contact Information",license:"CC-BY-SA.",sourceCode:"Source Code",privacyPolicy:"Privacy Policy",selfHost:"Self
4-Host",termsOfService:"Terms of Service"}},zh={common:{home:"ãã¼ã ",about:"æ¦è¦",privacy:"ãã©ã¤ãã·ã¼",maintain:"ä¿å®ã»ãã¹ã",selfHost:"ã»ã«ããã¹ã",backToHome:"ãã¼ã ã«æ»ã",loading:"èªã¿è¾¼ã¿ä¸...",error:"ã¨ã©ã¼",success:"æå",warning:"è¦å",info:"æ
å ±",download:"ãã¦ã³ãã¼ã",upload:"ã¢ãããã¼ã",submit:"éä¿¡",cancel:"ãã£ã³ã»ã«",save:"ä¿å",edit:"ç·¨é",delete:"åé¤",close:"éãã",confirm:"確èª",yes:"ã¯ã",no:"ããã",required:"å¿
é ",optional:"ä»»æ"},home:{title:"ð Sensemaker",apiKeyLabel:"ð OpenRouter API Key",apiKeyPlaceholder:"OpenRouter API Keyãå
¥åãã¦ãã ãã",showApiKey:"APIãã¼ã表示",hideApiKey:"APIãã¼ãé表示",getApiKeyLink:"API Key ãåå¾",apiKeyRequired:"ãã®ãã£ã¼ã«ãã¯å¿
é ã§ãAIã¢ãã«ãµã¼ãã¹ã«æ¥ç¶ããããã«ä½¿ç¨ããã¾ã",invalidApiKey:"ç¡å¹ãªAPIãã¼ ã¾ã㯠ã¢ãã«",privacyNote:"ð ãã©ã¤ãã·ã¼ä¿è·ï¼ãã©ã¤ãã·ã¼ããªã·ã¼ã«å¾ãããã®ãµã¤ãã¯ããªãã®API KEYãã©ãã«ãä¿åãã¾ãããæ¸å¿µãããå ´åã¯ãããã¯ã¨ã³ãã¨ããã³ãã¨ã³ããµã¼ãã¹ãã»ã«ããã¹ããããã¨ããå§ããã¾ãã",modelLabel:"ð¤ ã¢ãã«å:",modelPlaceholder:"openai/gpt-oss-120b",additionalContextLabel:"ð 追å ã³ã³ããã¹ã:",additionalContextNote:"AIãä¼è©±ã®èæ¯ãçè§£ãããããã¯èå¥ã®ç²¾åº¦ãåä¸ãããã®ã«å½¹ç«ã¡ã¾ããæ¬é
ã¯ä»»æé
ç®ã§ãã",additionalContextPlaceholder:"ä¼è©±ã®èæ¯ã¨ç°å¢ã説æãã¦ãã ããã空æ¬ã§ãæ§ãã¾ããã",outputLangLabel:"ð åºåè¨èª:",fileLabel:"ð ãã¡ã¤ã«ãã¢ãããã¼ã (polis.twããã¨ã¯ã¹ãã¼ããããJSONã¾ãã¯pol.isããã¨ã¯ã¹ãã¼ããããCSV)",startAnalysis:"ð åæãéå§",riskWarning:"â ï¸ è¦åï¼æè¦çµ±åãã¼ã«ã¯ç¾å¨ã¾ã éçºã»ãã¹ã段éã«ãããããLLMã®å¿çã«ã¯åºæã®ä¸å®å®æ§ããããåä¸ã¬ãã¼ããçæã«å¤±æãã確çã¯ç´1/6ã§ãããªãã©ã¤æ©è½ã®è¨å®ã«ããæåçãåä¸ããããã¨ãã§ãã¾ãã",processing:"â³ å¦çä¸...",selectFileFirst:"ã¢ãããã¼ããããã¡ã¤ã«ã鏿ãã¦ãã ãã",taskId:"ã¿ã¹ã¯ID",status:"ã¹ãã¼ã¿ã¹",estimatedTime:"æ¨å®æé",requestFailed:"â ãªã¯ã¨ã¹ãã失æãã¾ãã",requestError:"â ãªã¯ã¨ã¹ãã¨ã©ã¼",taskStatus:"ð ã¿ã¹ã¯ã¹ãã¼ã¿ã¹",commentsCount:"ã³ã¡ã³ãæ°",model:"使ç¨ã¢ãã«",pollingResults:"çµæããã¼ãªã³ã°ä¸...",taskInQueue:"ã¿ã¹ã¯ããã¥ã¼ã«è¿½å ããã¾ããã3åå¾ã«çµæã®ç¢ºèªãéå§ãã¾ã...",taskProcessing:"ã¿ã¹ã¯ã¯ã¾ã å¦çä¸...",taskCompleted:"â
åæãå®äºãã¾ããï¼",commentsProcessed:"{count}ä»¶ã®ã³ã¡ã³ããå¦çãã¾ãã",completedAt:"å®äºæå»",summary:"è¦ç´",downloadMarkdown:"â¬ï¸ Markdownããã¦ã³ãã¼ã",noMarkdownContent:"â ãã¦ã³ãã¼ãå¯è½ãªMarkdownã³ã³ãã³ããããã¾ãã",downloadFailed:"â ãã¦ã³ãã¼ãã«å¤±æãã¾ãã",testLLM:"ð LLMæ¥ç¶ããã¹ãä¸...",testLLMSuccess:"â
LLMãã¹ããæåãã¾ããï¼",testLLMFailed:"â LLMãã¹ãã失æãã¾ãã",testLLMError:"â LLMãã¹ããªã¯ã¨ã¹ãã¨ã©ã¼",testCSV:"â ã¾ãCSVãã¡ã¤ã«ã鏿ãã¦ãã ãã",testCSVSuccess:"â
CSVè§£æãæåãã¾ããï¼",testCSVFailed:"â CSVè§£æã失æãã¾ãã",testR2:"ð R2èªã¿æ¸ãããã¹ãä¸...",testR2Success:"â
R2ãã¹ããæåãã¾ããï¼",testR2Failed:"â R2ãã¹ãã失æãã¾ãã",testR2Error:"â R2ãã¹ããªã¯ã¨ã¹ãã¨ã©ã¼",taskFailed:"â ã¿ã¹ã¯å¦çã失æãã¾ãã",failedAt:"失ææå»",errorDetails:"ã¨ã©ã¼è©³ç´°",errorMessage:"ã¨ã©ã¼ã¡ãã»ã¼ã¸",detailedError:"詳細ã¨ã©ã¼",unknownError:"䏿ãªã¨ã©ã¼",noDetailedError:"詳細ãªã¨ã©ã¼æ
å ±ãããã¾ãã",modelNote:"gpt-oss-120bã¢ãã«ã®ä½¿ç¨ãæ¨å¥¨ãã¾ããä»ã®æ¨è«ã¢ãã«ã使ç¨ãããå ´åã¯ãOpenRouterã¢ãã«ãªã¹ããåç
§ãã¦ãå種ã¢ãã«ã®æ§è½ã¨ä¾¡æ ¼è¨å®åºæºãæ¯è¼ãã¦ãã ãã",modelLinkText:"ð OpenRouterã¢ãã«ã表示",costNote:"ð° è²»ç¨è¦ç©ããï¼gpt-oss-120bã使ç¨ããåæã§ã¯ããã¼ã¿éã«å¿ãã¦ç´$0.05-0.20 USDã®è²»ç¨ããããã¾ãã",timeNote:"â±ï¸ æéè¦ç©ããï¼gpt-oss-120bã使ç¨ããåæã§ã¯ããã¼ã¿éã«å¿ãã¦ç´3-30åãããã¾ãã",retryModeLabel:"ð ãªãã©ã¤ã¢ã¼ã",retryModeStrict:"ä¸åº¦ã ãå®è¡ (峿 ¼ã¢ã¼ã)",retryModeNormal:"èªåãªãã©ã¤3å (é常ã¢ã¼ã)",retryModeCustom:"ã«ã¹ã¿ã ãªãã©ã¤åæ°",customRetryCountLabel:"ãªãã©ã¤åæ°",customRetryCountNote:"1-10ã®éã®ãªãã©ã¤åæ°ãå
¥åãã¦ãã ãã",retryingRequest:"ð ãªã¯ã¨ã¹ãããªãã©ã¤ä¸",retrySuccess:"â
ãªãã©ã¤æå",retryFailed:"â ãªãã©ã¤å¤±æ",retryError:"â ãªãã©ã¤ã¨ã©ã¼",allRetriesFailed:"â ãã¹ã¦ã®ãªãã©ã¤ã失æãã¾ãã",outputLangOptions:{en:"English","zh-TW":"ç¹é«ä¸æ","zh-CN":"ç®ä½ä¸æ",ja:"æ¥æ¬èª",fr:"Français",es:"Español"}}
4,about:{title:"ð Sensemakeræè¦çµ±åãã¼ã«ã«ã¤ãã¦",whatIsTitle:"ð Sensemakeræè¦çµ±åãã¼ã«ã¨ã¯ï¼",whatIsDescription:"Sensemakeræè¦çµ±åãã¼ã«ã¯ã大éã®æè¦ãã¼ã¿ãåæããæå³ã®ããæ´å¯ãçæããããã«ç¹å¥ã«è¨è¨ãããå¼·åãªAIé§åãã¼ã«ã§ãã主è¦ãªå
±éç¹ã¨æè¦ã®ç¸éç¹ãèå¥ãã大éã®ãã¼ã¿ãã価å¤ã®ããæ
å ±ãæ½åºããã®ã«å½¹ç«ã¡ã¾ãã",whatIsDescription2:"ãã®ãã¼ã«ã¯ç¹ã«å¯©è°æ°ä¸»ä¸»ç¾©ã®ã·ããªãªã«é©ãã¦ãããPolisãªã©ã®éåææè¦åéãã¼ã«ã使ç¨ããéã«ã大éã®é¡ä¼¼ã¾ãã¯ç¹°ãè¿ãã®æè¦ãå¦çããæ§é åãããåæã¬ãã¼ããèªåçæããã®ã«å½¹ç«ã¡ã¾ããããã¯ãã®æ©è½ã®ä¸é¨ã®ããã³ãã¨ã³ãå®è£
ã§ãã",resourcesTitle:"ð é¢é£ãªã½ã¼ã¹",officialDocs:"å
¬å¼ããã¥ã¡ã³ãï¼",openSourceLib:"ãªã¼ãã³ã½ã¼ã¹ã©ã¤ãã©ãªï¼",experimentalLib:"å®é¨çã©ã¤ãã©ãªï¼ãã®ãµã¤ãã¨äºææ§ããï¼ï¼",experimentalBranch:"new-feature-open-routerãã©ã³ãã使ç¨ãã¦ãã ãã",supportedDataTitle:"ð ãµãã¼ãããã¦ãããã¼ã¿ã½ã¼ã¹",supportedDataDescription:"ãã®ãã¼ã«ã¯ä»¥ä¸ã®ãã©ãããã©ã¼ã ããã¨ã¯ã¹ãã¼ããããã¬ãã¼ããã¼ã¿ããµãã¼ããã¦ãã¾ãï¼",polisTWTitle:"ð¹ð¼ Polis.tw",polisTWDescription:"Polis.twã®ã¬ãã¼ããã¼ã¸ãããã¼ã¿ãåå¾ããéçºè
ã¢ã¼ããéãã¦APIã¬ã¹ãã³ã¹ããJSONãã¼ã¿ãæ½åºããå¿
è¦ãããã¾ãããã®ãã¥ã¼ããªã¢ã«ã®é¢é£èª¬æãåç
§ãã¦ãã ããã",polisTitle:"ð Pol.is",polisDescription:"Pol.isã¬ãã¼ããã¼ã¸ããã³ã¡ã³ãé¢é£ã®CSVãã¡ã¤ã«ãã¨ã¯ã¹ãã¼ãããç´æ¥ã¢ãããã¼ãã§ãã¾ãã",dataFormatTitle:"ð ãã¼ã¿å½¢å¼è¦ä»¶",polisTWFormatTitle:"ð¹ð¼ Polis.twãã¼ã¿å½¢å¼",polisTWFormatDescription:"注æï¼polis.twã®ãã¼ã¿å½¢å¼ã¯Pol.isã¨ã¯ç°ãªãã¾ããç¾å¨ãpolis.twããã¨ã¯ã¹ãã¼ããããJSONå½¢å¼ã¯ç´æ¥ä½¿ç¨ã§ãã¾ãã",polisFormatTitle:"ð Pol.isãã¼ã¿å½¢å¼",polisFormatDescription:"pol.isã®ãã¼ã¿å½¢å¼ãç´æ¥ã¢ãããã¼ãã§ãã¾ãã",useCasesTitle:"ð¯ 使ç¨ä¾",useCasesDescription:"Sensemakerã¯ä»¥ä¸ã®ã·ããªãªã«ç¹ã«é©ãã¦ãã¾ãï¼",deliberativeDemocracy:"å¯©è°æ°ä¸»ä¸»ç¾©ï¼å¤§éã®å¸æ°æè¦ãå¦çããã³ã³ã»ã³ãµã¹ã¨ç¸éç¹ãèå¥",policyMaking:"æ¿çç«æ¡ï¼ç¹å®ã®æ¿çã«å¯¾ããä¸è«ã®åå¸ãåæ",productDevelopment:"製åéçºï¼ã¦ã¼ã¶ã¼ãã£ã¼ãããã¯ãæ´çãã主è¦ãªãã¼ãºã¨æ¹åç¹ãèå¥",academicResearch:"å¦è¡ç ç©¶ï¼ã¢ã³ã±ã¼ã調æ»ãã¤ã³ã¿ãã¥ã¼ãã¼ã¿ãåæ",communityManagement:"ã³ãã¥ããã£ç®¡çï¼ã³ãã¥ããã£ã¡ã³ãã¼ã®æè¦ã¨ãã¼ãºãçè§£",usageTipsTitle:"ð¡ 使ç¨ã®ãã³ã",ensureDataQuality:"ãã¼ã¿å質ã確ä¿ããéè¤ã¾ãã¯ç¡å¹ãªæè¦ãåé¤",provideContext:"æç¢ºãªã³ã³ããã¹ã説æãæä¾ããAIããã¼ã¿ã®èæ¯ãããããçè§£ã§ããããã«ãã",chooseFormat:"åæç®çã«å¿ãã¦é©åãªåºåå½¢å¼ã鏿ï¼Markdownå½¢å¼ãæ¨å¥¨ï¼",regularCheck:"ãã¼ã¿ã宿çã«ãã§ãã¯ãã¦æ´æ°ããåæçµæã®ã¿ã¤ã ãªã¼æ§ã確ä¿",getStartedTitle:"ð å§ãã¾ããã",readyToStart:"ãã¼ã¿ã®æºåã¯ã§ãã¦ãã¾ããï¼ãã¼ã ãã¼ã¸ã«ç§»åãã¦æè¦ãã¼ã¿ã®ã¢ãããã¼ãã¨åæãéå§ãã¾ãããï¼"},privacy:{title:"ãã©ã¤ãã·ã¼ããªã·ã¼",privacyPolicy:"ãã©ã¤ãã·ã¼ããªã·ã¼",privacyDescription:"ãã®ã¢ããªã±ã¼ã·ã§ã³ã¯å人ãã¼ã¿ãä¸ååéãã¾ãããçæãããã¬ãã¼ãã¯ä¸æçã«R2ã¹ãã¬ã¼ã¸ãµã¼ãã¹ã«ä¿åãããããªãããã¦ã³ãã¼ãã§ããããã«ãªã£ã¦ãããä»ã®ã¦ã¼ã¶ã¼ãã¢ã¯ã»ã¹ãããã¨ã¯ã§ãã¾ããã",dataProcessingTitle:"ãã¼ã¿å¦çã«ã¤ãã¦",backendProcessing:"ããã¯ã¨ã³ãå¦çï¼ãã¼ã¿ã¯ããã¯ã¨ã³ãã«éä¿¡ããã¦è¨ç®ããã¾ãããã¦ã¼ã¶ã¼ãã¼ã¿ã¯ãµã¼ãã¼ã«ä¿åãã
4ã¾ãããç¹ã«APIãã¼ã¯æ±ºãã¦ä¿åããã¾ããã",noCookies:"Cookieãªãï¼Cookieã¯ä½¿ç¨ãã¾ããã",openSource:"ãªã¼ãã³ã½ã¼ã¹ã«ããéææ§ï¼ç§ãã¡ã®ã³ã¼ãã¯å®å
¨ã«ãªã¼ãã³ã½ã¼ã¹ã§ããã©ã¤ãã·ã¼ã確ä¿ããããã«ãã¹ã¦ã®æ©è½ã確èªã§ãã¾ãã",frontendProject:"ããã³ãã¨ã³ãããã¸ã§ã¯ã",backendProject:"ããã¯ã¨ã³ãããã¸ã§ã¯ã",openSourceNote:"ãªã¼ãã³ã½ã¼ã¹ã«ããéææ§ï¼ç§ãã¡ã®ã³ã¼ãã¯å®å
¨ã«ãªã¼ãã³ã½ã¼ã¹ã§ããã©ã¤ãã·ã¼ã確ä¿ããããã«ãã¹ã¦ã®æ©è½ã確èªã§ãã¾ããGitHubã§ããã³ãã¨ã³ãã¨ããã¯ã¨ã³ãã®ãªãã¸ããªã確èªãã¦ãã ããã"},selfHost:{title:"ðï¸ ã»ã«ããã¹ãã¬ã¤ã",overviewTitle:"ð æ¦è¦",overviewDescription:"ãã©ã¤ãã·ã¼ã¨ãã¼ã¿ã»ãã¥ãªãã£ã«æ¸å¿µãããå ´åã¯ãç§ãã¡ã®ããã¸ã§ã¯ãããã©ã¼ã¯ãã¦ãµã¼ãã¹ãã»ã«ããã¹ããããã¨ãæè¿ãã¾ããããã«ããããã¼ã¿ã¨APIãã¼ãå®å
¨ã«å¶å¾¡ã§ãã¾ãã",paidPlanTitle:"ææãã©ã³è¦ä»¶",paidPlanDescription:"ããã¯ã¨ã³ããµã¼ãã¹ã¯Cloudflare Queuesã使ç¨ããWorkerææãã©ã³ãå¿
è¦ã§ããç¡æãã©ã³ã¯ãã®æ©è½ããµãã¼ããã¦ãã¾ããã",backendTitle:"ð§ ããã¯ã¨ã³ãã»ããã¢ãã (Cloudflare Worker)",step1Backend:"ã¹ããã1: ããã¯ã¨ã³ãããã¸ã§ã¯ãããã©ã¼ã¯",step1BackendDesc:"sensemaker-backendããã¸ã§ã¯ãã«ç§»åããGitHubã¢ã«ã¦ã³ãã«ãã©ã¼ã¯",viewBackendProject:"ããã¯ã¨ã³ãããã¸ã§ã¯ãã表示",step2Backend:"ã¹ããã2: Cloudflare Workerãè¨å®",step2BackendDesc:"Cloudflare Dashboardã§æ°ããWorkerã使ããããã¯ã¨ã³ãã³ã¼ãããããã¤",importantNote:"â ï¸ éè¦ãªæ³¨æï¼ããã¯ã¨ã³ãã¯Cloudflare Queuesã使ç¨ããWorkerææãã©ã³ãå¿
è¦ã§ããç¡æãã©ã³ã¯Queuesããµãã¼ããã¦ãã¾ããã",frontendTitle:"ð¨ ããã³ãã¨ã³ãã»ããã¢ãã (Vue.js)",step1Frontend:"ã¹ããã1: ããã³ãã¨ã³ãããã¸ã§ã¯ãããã©ã¼ã¯",step1FrontendDesc:"sensemaker-frontendããã¸ã§ã¯ãã«ç§»åããGitHubã¢ã«ã¦ã³ãã«ãã©ã¼ã¯",viewFrontendProject:"ããã³ãã¨ã³ãããã¸ã§ã¯ãã表示",step2Frontend:"ã¹ããã2: APIã¨ã³ããã¤ã³ãã夿´",step2FrontendDesc:"src/views/HomeView.vueã§ãAPI URLãWorker URLã«å¤æ´ï¼",originalURL:"å
ã®URL",yourURL:"ããªãã®URL",step3Frontend:"ã¹ããã3: ããã³ãã¨ã³ãããããã¤",step3FrontendDesc:"è¤æ°ã®ãããã¤æ¹æ³ãã鏿ã§ããCloudflare Pagesã®ä½¿ç¨ãæ¨å¥¨ï¼",cloudflarePages:"Cloudflare Pages: ç¡æãWorkerã¨çµ±åè¯å¥½",advantagesTitle:"â
ã»ã«ããã¹ãã®å©ç¹",fullControl:"å®å
¨å¶å¾¡",fullControlDesc:"ãã¼ã¿ã¯å®å
¨ã«ããªãã®å¶å¾¡ä¸ã«ããããµã¼ããã¼ãã£ãµã¼ãã¼ãçµç±ãã¾ãã",apiKeyProtection:"APIãã¼å®å
¨ä¿è·",apiKeyProtectionDesc:"APIãã¼ã¯ç°å¢å
ã«å®å
¨ã«ä¿æããããµã¼ããã¼ãã£ãµã¼ãã¼ãçµç±ãã¾ãã",customizable:"ã«ã¹ã¿ãã¤ãºå¯è½",customizableDesc:"ãã¼ãºã«å¿ãã¦æ©è½ã¨ã¤ã³ã¿ã¼ãã§ã¼ã¹ã夿´ã§ãã¾ã",learning:"å¦ç¿æ©ä¼",learningDesc:"ç¾ä»£ã®Webéçºæè¡ã«ã¤ãã¦ããæ·±ãå¦ã¶",needHelpTitle:"ð ãã«ããå¿
è¦ã§ããï¼",needHelpDesc:"ã»ããã¢ããä¸ã«åé¡ãçºçããå ´åã¯ã以ä¸ãæè¿ãã¾ãï¼",openIssue:"GitHubããã¸ã§ã¯ãã§Issueãéã",checkReadme:"ããã¸ã§ã¯ãã®READMEã¨Wikiã確èª",joinCommunity:"ã³ãã¥ããã£ãã£ã¹ã«ãã·ã§ã³ã«åå "},maintain:{title:"ä¿å®ã»ãã¹ãã¨ä¸å
·åå ±å",pageTitle:"ä¿å®ã»ãã¹ãã¨ä¸å
·åå ±å",testTitle:"𧪠ãã¹ãæ¹æ³",testIntro:"ãã®ãµã¤ãã§ã¯ãã¢ãããã¼ãã»åæã»è¦ç´ã®ä¸é£ã®æµããæ£ããåä½ãããã確èªããããã®ç°¡åãªãã¹ããã¼ã¿ãæä¾ãã¦ãã¾ãã",testDataLabel:"ãã¹ããã¼ã¿",testDataPathBefore:"ãã¹ãç¨CSV㯠data/comments_test.csv ã«ããã¾ãï¼ãããã¤å¾ã
4®URLã¯",testDataPathAfter:"ï¼ã",testDataDesc:"Polisã¨ã¯ã¹ãã¼ãã®ã³ã¡ã³ãå½¢å¼ã§ãµã³ãã«ã³ã¡ã³ã1ä»¶ãå«ã¿ããCSVã¢ãããã¼ããããã¼ã§ãã®ã¾ã¾å©ç¨ã§ãã¾ãã",testStepsLabel:"ãã¹ãæé ",step1:"ã¾ã",step1Suffix:"ã¸ã",step2:"ãOpen Router API KEYãæ¬ã«ãèªèº«ã® Open Router API Key ãå
¥åï¼ãã¹ãã§ã¯ãèªèº«ã®Keyã使ç¨ãã¦ãã ãããå½ãµã¤ãã§ã¯ä¿åãã¾ããï¼ã",step3:"æ¢å®ã® openai/gpt-oss-120b ã§ãã¹ãã§ãã¾ãã",step4:"ããã¡ã¤ã«ã鏿ããã¯ãªãã¯ããdata/comments_test.csv ãã¢ãããã¼ãï¼ä¸è¨URLãããã¦ã³ãã¼ããã¦ã¢ãããã¼ãå¯è½ï¼ã",step5:"ãåæéå§ããã¯ãªãã¯ããå®äºã¾ã§å¾
ã¤ãè¦ç´ã表示ãããã°ãã¹ãæåã§ãã",apiKeyTitle:"ð Open Router API Key ã«ã¤ãã¦",apiKeyDescBefore:"ãã¹ãæã¯å¿
ããèªèº«ã® Open Router API Key ã使ç¨ãã¦ãã ãããå徿¹æ³ã¯ ",apiKeyDescAfter:" ãåç
§ãã¦ãã ãããå½ãµã¤ãã¯API Keyããµã¼ãã¼ã«ä¿åã»éä¿¡ããããã©ã¦ã¶å
ã§ããã¯ã¨ã³ããå¼ã³åºããOpen Router ã«è»¢éããã®ã¿ã§ãã",openRouterGuideLink:"Open Router 使ç¨ã¬ã¤ã",reportTitle:"ð ä¸å
·åã®å ±åæ¹æ³",reportIntro:"ãã¹ãä¸ã«ã¨ã©ã¼ã表示崩ããæ³å®å¤ã®çµæããã£ãå ´åã¯ãGitHub ã®ããã¸ã§ã¯ãã§å ±åãã¦ããã ããã¨ä¿å®æ
å½ã調æ»ã»ä¿®æ£ã§ãã¾ãã",reportStepsLabel:"å ±åæé ",reportStep1:"ããã³ãã¨ã³ãããã¸ã§ã¯ãã® Issues ãã¼ã¸ã¸ï¼",reportStep2:"ãNew issueããã¯ãªãã¯ãã¦æ°è¦ Issue ã使ã",reportStep3:"ã¿ã¤ãã«ã§å
容ãç°¡æ½ã«ï¼ä¾ï¼ãcomments_test.csv ã¢ãããã¼ãå¾ã«åæã失æãï¼ã",reportStep4:"æ¬æã«å¯è½ãªç¯å²ã§å«ãã¦ãã ããï¼",reportStep4Bullet1:"åç¾æé ï¼ä¾ï¼ãã¹ãCSV使ç¨ã使ç¨ã¢ãã«ï¼ã",reportStep4Bullet2:"æå¾
çµæ vs å®éã®çµæï¼ä¾ï¼è¦ç´ãæå¾
ãã¨ã©ã¼ã¡ãã»ã¼ã¸ã表示ï¼ã",reportStep4Bullet3:"ç»é¢ã®ã¨ã©ã¼ã¡ãã»ã¼ã¸ã¾ãã¯ã¹ã¯ãªã¼ã³ã·ã§ããã",reportStep4Bullet4:"ãã©ã¦ã¶ã¨OSï¼ä¾ï¼Chrome 120 / macOSï¼ã",reportStep5:"ããã¯ã¨ã³ãAPIã«é¢ããåé¡ã®å ´åã¯ãããã¯ã¨ã³ãããã¸ã§ã¯ãã§ãå ±åã§ãã¾ãï¼",reportStep5Backend:"sensemaker-backend Issues",reportStep5Suffix:"ã",frontendIssuesUrl:"https://github.com/g0v/sensemaker-frontend/issues",backendIssuesUrl:"https://github.com/bestian/sensemaker-backend/issues"},guideModal:{title:"Sensemakeræè¦çµ±åãã¼ã«ã¸ãããã",description:"Sensemakeræè¦çµ±åãã¼ã«ã¯ã大éã®æè¦èª¿æ»ã¬ãã¼ããã価å¤ã®ããæ´å¯ãæ½åºããã®ã«å½¹ç«ã¤å¼·åãªæè¦èª¿æ»ã¬ãã¼ãåæãã¼ã«ã§ãã",sensemakingToolsLink:"2026å¹´ææ°ç: OpenRouterã¾ãã¯ãã¼ã«ã«ã®LM Studioã§å®å
¨ãªã¤ã³ã¿ã©ã¯ãã£ãHTMLã¦ã§ãã¬ãã¼ããçæã§ãã¾ã",uberReportExample:"ã¬ãã¼ãå®ä¾ï¼ãUberX èªå®¶ç¨è»ã«ããæ
客ééã",polisTitle:"1. Polisæè¦èª¿æ»ã¬ãã¼ãã®ã¨ã¯ã¹ãã¼ã",polisDescription:"ãã®ãã¼ã«ã¯ãPolisãã©ãããã©ã¼ã ããã¨ã¯ã¹ãã¼ããããæè¦èª¿æ»ã¬ãã¼ãããµãã¼ããã¦ãã¾ãããã¡ã¤ã«ãPolisã®ãã¼ã¿æ§é ã«æºæ ãã¦ãããã¨ã確èªãã¦ãã ããã",polisLink:"ã¬ã¤ãã表示 â",openRouterTitle:"2. OpenRouter APIæ¥ç¶",openRouterDescription:"ãã®ãã¼ã«ã¯ãOpenRouterã使ç¨ãã¦ãã¾ãã¾ãªå¤§è¦æ¨¡è¨èªã¢ãã«ã«æ¥ç¶ãã¾ãã使ç¨ããã«ã¯ãOpenRouter API Keyãæä¾ããå¿
è¦ãããã¾ãã",openRouterLink:"ã¬ã¤ãã表示 â",sensemakerTitle:"3. Sensemakeråæ",sensemakerDescription:"ãã®ãã¼ã«ã¯ãåæã«Sensemakerã使ç¨ãã¾ãã以ä¸ã®æä½æé ãåç
§ãã¦åæãå®è¡ãã¦ãã ããã",sensemakerLink:"詳細ãè¦ã â",tip:"ãã³ãï¼åãã¦ãã®ãã¼ã«ã使ç¨ããå ´åã¯ãã¾ãä¸è¨ã®ã¬ã¤ãããã¥ã¡ã³ããèªããã¨ããå§ããã¾ãã",dontShowAgain:"ãã®ãã³ããå度表示ããªã",iKnow:"äºè§£ãã¾ãã"},openRouterGuide:{title:"OpenRouter使ç¨ã¬ã¤ã",step1Title:"OpenRouterãã¼ã ãã¼ã¸ã«ã¢ã¯ã»ã¹",step1Description:"ã¾ããOpenRouterå
¬å¼ã¦ã§ããµã¤ãã«ã¢ã¯ã»ã¹ãã¦ãã ãããOpenRouterã¯ã鏿ã§ãããã¾ãã¾ãªAIã¢ãã«ãæä¾ããçµ±ä¸LLMã¤ã³ã¿ã¼ãã§ã¼ã¹ã§ãããã®ãã¼ã«ã¯ä¸»ã«é«åè³ªã§ææ
®æ·±ããæé ãªä¾¡æ ¼ã®<b>GPT-OSS-120B</b>ã¢ãã«ã使ç¨ãã¾ãã",step1Link:"OpenRouterãã¼ã ãã¼ã¸ã¸ï¼https://openrouter.ai/",step1Tip:"ãã³ãï¼ã¢ã«ã¦ã³ããç»é²ãã¦ãã°ã¤ã³ããå¾ããã¼ã ãã¼ã¸å³ä¸ã®å人ã¢ãã¿ã¼ãã¯ãªãã¯ãã¦ãããããã¦ã³ã¡ãã¥ã¼ãå±éããæ¬¡ã®ã¹ãããï¼Creditsã®è³¼å
¥ã¨API Keyã®ç³è«ï¼ãå®è¡ãã¦ãã ããã",step2Title:"Creditsãè³¼å
¥",step2Description:"OpenRouterãµã¼ãã¹ã使ç¨ããåã«ãã¾ãã¯ã¬ã¸ããï¼Creditsï¼ãè³¼å
¥ããå¿
è¦ãããã¾ããCreditsã¯ä»»æã®ã¢ãã«ã¾ãã¯ãããã¤ãã¼ã§ä½¿ç¨ã§ãããã¾ãã¾ãªAIãµã¼ãã¹ãæè»ã«ä½¿ç¨ã§ãã¾ãã",step2Link:"Creditsè³¼å
¥ãã¼ã¸ã¸ï¼https://openrouter.ai/settings/credits",step3Title:"API Keyãç³è«",step3Description:"æå¾ã«ãOpenRouterãµã¼ãã¹ã使ç¨éå§ããã«ã¯ãAPI Keyã使ããå¿
è¦ãããã¾ããAPI Keyã¯OpenAIå½¢å¼ã¨å®å
4
¨ã«äºææ§ããããç´æ¥ä½¿ç¨ã§ãã¾ãã",step3Link:"API Keyè¨å®ãã¼ã¸ã¸ï¼https://openrouter.ai/settings/keys",tipsTitle:"éè¦ãªãã³ã",tip1:"⢠API Keyãé©åã«ä¿ç®¡ããä»äººã¨å
±æããªãã§ãã ãã",tip2:"⢠API Keyã¯ä½æå¾ããã«ä½¿ç¨ã§ããæ¿èªãå¾
ã¤å¿
è¦ã¯ããã¾ãã",tip3:"⢠ãµã¼ãã¹ãæ£å¸¸ã«åä½ããããã«ãCreditsã®æ®é«ã宿çã«ç¢ºèªãããã¨ããå§ããã¾ã",tip4:"⢠OpenRouterã¯ã¯ã¬ã¸ããã«ã¼ããªã©ããã¾ãã¾ãªæ¯æãæ¹æ³ããµãã¼ããã¦ãã¾ã",backToHome:"ãã¼ã ã«æ»ã"},polisGuide:{title:"Polis使ç¨ã¬ã¤ã",step1Title:"Polisãã¼ã ãã¼ã¸ã«ã¢ã¯ã»ã¹",step1Description:"ã¾ããPoliså
¬å¼ã¦ã§ããµã¤ãã«ã¢ã¯ã»ã¹ãã¦ãã ãããPolisã¯ãä¸è¬ã®æè¦ãåéããã³åæããããã®ãã©ãããã©ã¼ã ã§ãç°ãªãè¦ç¹ãçè§£ããæå³ã®ããæè¦åéãè¡ãã®ã«å½¹ç«ã¡ã¾ãã",step1Link:"Polisãã¼ã ãã¼ã¸ã¸ï¼https://pol.is/home",step2Title:"ã¢ã«ã¦ã³ãç»é²ã¨ãã°ã¤ã³",step2Description:"ã¾ã Polisã¢ã«ã¦ã³ãããæã¡ã§ãªãå ´åã¯ãã¾ãæ°ããã¢ã«ã¦ã³ããç»é²ãã¦ãã ãããæ¢ã«ã¢ã«ã¦ã³ãããæã¡ã®å ´åã¯ãç´æ¥ãã°ã¤ã³ãã¦ãã ããããã°ã¤ã³å¾ãä¼è©±ã®ä½æã¨ç®¡çãéå§ã§ãã¾ãã",step2Link:"ãã°ã¤ã³/ç»é²ãã¼ã¸ã¸ï¼https://pol.is/signin",step3Title:"Polisããã·ã¥ãã¼ãã§ä¼è©±ã使ããã³ç®¡ç",step3Description:"ãã°ã¤ã³å¾ãPolisããã·ã¥ãã¼ãã«å
¥ãã¾ããããã§æ°ããä¼è©±ï¼Conversationï¼ã使ããæ¢åã®ä¼è©±ã管çã§ãã¾ãããCreate New Conversationããã¿ã³ãã¯ãªãã¯ãã¦ãæ°ããä¼è©±ã®ä½æãéå§ãã¾ãã",step3Link:"Polisããã·ã¥ãã¼ãã¸ï¼https://pol.is/",step4Title:"æè¦åéURLãå
¬éããåçãåé",step4Description:"ä¼è©±ã使ããå¾ãæè¦åéURLãåå¾ãã¦åå è
ã¨å
±æã§ãã¾ããåå è
ã¯ãã®URLãéãã¦ä¼è©±ã«ã¢ã¯ã»ã¹ããæè¦ãæä¾ã§ãã¾ããembedæ©è½ã使ç¨ãã¦ãä¼è©±ãã¦ã§ããµã¤ãã«åãè¾¼ããã¨ãã§ããåå è
ãç´æ¥ã¦ã§ããµã¤ãä¸ã§æè¦åéã«åå ã§ããããã«ãã¾ãã",step5Title:"Reportsã¿ãã«åãæ¿ãã¦Report URLã使",step5Description:"ä¼è©±ãã¼ã¸ã§ãReportsãã¿ãã«åãæ¿ãã¾ããããã§ã¬ãã¼ãURLã使ããä¼è©±ã®åæçµæã¨çµ±è¨ã表示ã§ãã¾ãã",step6Title:"Reportãã¼ã¸ã«å
¥ã",step6Description:"Reportsã¿ãã§ã表示ãããReporté
ç®ãã¯ãªãã¯ãã¾ããã¯ãªãã¯ããã¨ãªã³ã¯ã表示ããããã®ãªã³ã¯ãã¯ãªãã¯ãã¦Reportãã¼ã¸ã«å
¥ãã詳細ãªåæçµæã表示ã§ãã¾ãã",step7Title:"Comments CSVããã¦ã³ãã¼ã",step7Description:"Reportãã¼ã¸ã§ãä¸ã«ã¹ã¯ãã¼ã«ãã¦ãã¦ã³ãã¼ããªãã·ã§ã³ãè¦ã¤ãã¾ãããã¦ã³ãã¼ããã¿ã³ã表示ããã¾ããã¯ãªãã¯ããã¨ããã¹ã¦ã®ã³ã¡ã³ããå«ãCSVãã¡ã¤ã«ããã¦ã³ãã¼ãã§ãã¾ãï¼ãã¡ã¤ã«åå½¢å¼ï¼conversation-id-comments.csvï¼ããã®CSVãã¡ã¤ã«ã«ã¯ãä¼è©±å
ã®ãã¹ã¦ã®ã³ã¡ã³ããã¼ã¿ãå«ã¾ãã¦ããããããªãåæã«ä½¿ç¨ã§ãã¾ãã",tipsTitle:"éè¦ãªãã³ã",tip1:"⢠ãã¦ã³ãã¼ãããCSVãã¡ã¤ã«ã«ã¯ãä¼è©±å
ã®ãã¹ã¦ã®ã³ã¡ã³ããã¼ã¿ãå«ã¾ãã¦ãã¾ã",tip2:"⢠CSVãã¡ã¤ã«ã¯ããã®ã·ã¹ãã ã«ã¤ã³ãã¼ããã¦ãããªãåæã«ä½¿ç¨ã§ãã¾ã",tip3:"⢠ãã®ä¼è©±ã®Reportãã¼ã¸ã«ã¢ã¯ã»ã¹ããæ¨©éããããã¨ã確èªãã¦ãã ãã",tip4:"⢠ãã¦ã³ãã¼ããã¿ã³ãè¦ã¤ãããªãå ´åã¯ãæ£ããReportãã¼ã¸ã«åãæ¿ãããã¨ã確èªãã¦ãã ãã",backToHome:"ãã¼ã ã«æ»ã"},sensemakerGuide:{title:"Sensemaker使ç¨ã¬ã¤ã",step1Title:"Polisããã¨ã¯ã¹ãã¼ããããå
ã®ãã¡ã¤ã«ãã¢ãããã¼ã",step1Description:"ã¾ããPolisãããã¦ã³ãã¼ãããCSVãã¡ã¤ã«ãã¢ãããã¼ããã¦ãã ããããã®ãã¡ã¤ã«ã«ã¯ããã¹ã¦ã®åå è
ã®ã³ã¡ã³ããã¼ã¿ãå«ã¾ãã¦ãããåæã®åºç¤ãã¼ã¿ã§ãããã¡ã¤ã«å½¢å¼ãæ£ãããå¿
è¦ãªãã£ã¼ã«ãæ
å ±ãå«ã¾ãã¦ãããã¨ã確èªãã¦ãã ããã",step2Title:"OpenRouter API Keyãå
¥å",step2Description:"対å¿ãããã£ã¼ã«ãã«OpenRouter API Keyãå
¥åãã¦ãã ããããã®API Keyã¯ãOpenRouterãµã¼ãã¹ã«æ¥ç¶ããããã«ä½¿ç¨ãããã·ã¹ãã ãAIã¢ãã«ã使ç¨ãã¦åæã§ããããã«ãã¾ããAPI Keyãæ£ããæå¹ã§ãããã¨ã確èªãã¦ãã ããã",step3Title:"ã¢ãã«åãopenai/gpt-oss-120bã®ã¾ã¾ã«ãã",step3Description:"ã·ã¹ãã ã¯ãåæã«<b>openai/gpt-oss-120b</b>ã¢ãã«ãããã©ã«ãã§ä½¿ç¨ãã¾ããããã¯é«åè³ªã§ææ
®æ·±ããæé ãªä¾¡æ ¼ã®ã¢ãã«ã§ãæè¦åæã«é常ã«é©ãã¦ãã¾ããç¹å¥ãªè¦ä»¶ããªãéãããã®è¨å®ãç¶æãããã¨ããå§ããã¾ãã",step3Tip:"ãã³ãï¼ã¢ãã«åãã£ã¼ã«ãã¯",step3TipCode:"openai/gpt-oss-120b",step3TipEnd:"ã«äºåè¨å®ããã¦ãããé常ã¯å¤æ´ããå¿
è¦ã¯ããã¾ããã",step4Title:"追å ã®ã³ã³ããã¹ããå
¥åãã¦ãè¨èªã¢ãã«ã®åæã³ã³ããã¹ããæé©å",step4Description:"ãªãã·ã§ã³ã§ãä¼è©±ã®ãããã¯èæ¯ãé¢é£ããããªã·ã¼èª¬æãã¾ãã¯ç¹å®ã®åæç¦ç¹ãªã©ã®è¿½å ã®ã³ã³ããã¹ãæ
å ±ãå
¥åã§ãã¾ãããã®æ
å ±ã¯ãAIã¢ãã«ãã³ã¡ã³ãã®ã³ã³ããã¹ããããæ£ç¢ºã«çè§£ããããæ·±ãåæçµæãæä¾ããã®ã«å½¹ç«ã¡ã¾ãã",step5Title:"åºåè¨èªã鏿",step5Description:"ã¬ãã¼ãã«ä½¿ç¨ããè¨èªã鏿ãã¦ãã ããããã¨ãã°ãã䏿ãã鏿ããã¨ãåæã¬ãã¼ãã¯ä¸æã§è¡¨ç¤ºãããåæçµæãèªã¿ãããçè§£ãããããªãã¾ãã",step6Title:"åæãéå§",step6Description:"ãã¹ã¦ã®è¨å®ãæ£ãããã¨ã確èªãããããåæãéå§ããã¿ã³ãã¯ãªãã¯ãã¦ãã ãããã·ã¹ãã ã¯ãã¼ã¿ã®å¦çãéå§ãã¾ãããã®ããã»ã¹ã«ã¯æ°åãããå ´åãããããããã°ãããå¾
ã¡ãã ããããã¼ã¸ã§åæã®é²è¡ç¶æ³æ
å ±ã確èªã§ãã¾ãã",step7Title:"Markdownã¬ãã¼ãã確èªãã¦ãã¦ã³ãã¼ã",step7Description:"åæãå®äºããã¨ãã·ã¹ãã ã¯Markdownå½¢å¼ã®åæã¬ãã¼ããçæãã¾ãããã¼ã¸ã§ã¬ãã¼ãå
容ããã¬ãã¥ã¼ããæ£ãããã¨ã確èªãããããã¦ã³ãã¼ããã¿ã³ãã¯ãªãã¯ãã¦ã¬ãã¼ããã³ã³ãã¥ã¼ã¿ã¼ã«ä¿åãã¾ããã¬ãã¼ãã«ã¯ã詳細ãªåæçµæãçµ±è¨ãæ´å¯ã®æ¨å¥¨äºé
ãå«ã¾ãã¦ãã¾ãã",tipsTitle:"éè¦ãªãã³ã",tip1:"⢠ã¢ãããã¼ãããCSVãã¡ã¤ã«ã®å½¢å¼ãæ£ãããå¿
è¦ãªãã£ã¼ã«ããå«ã¾ãã¦ãããã¨ã確èªãã¦ãã ãã",tip2:"⢠API Keyãé©åã«ä¿ç®¡ããä»äººã¨å
±æããªãã§ãã ãã",tip3:"⢠åæããã»ã¹ã«ã¯æ°åãããå ´åãããããããã°ãããå¾
ã¡ãã ããããã¼ã¸ãéããªãã§ãã ãã",tip4:"⢠ãã¦ã³ãã¼ãããMarkdownã¬ãã¼ãã¯ãMarkdownããµãã¼ãããä»»æã®ã¨ãã£ã¿ã§éããã¨ãã§ãã¾ã",tip5:"⢠åæã失æããå ´åã¯ãAPI Keyãæå¹ãã©ãããããã³Creditsã®æ®é«ãååãã©ããã確èªãã¦ãã ãã",backToHome:"ãã¼ã ã«æ»ã"},footer:{description:"大éã®æè¦ãã¼ã¿ãåæããæå³ã®ããæ´å¯ãçæããããã«ç¹å¥ã«è¨è¨ãããå¼·åãªAIé§åã®æè¦çµ±åãã¼ã«ã",communityLinks:"ã³ãã¥ããã£ãªã³ã¯",jigsawOriginalProject:"Jigsawãªãªã¸ãã«ããã¸ã§ã¯ã",officialDocs:"å
¬å¼ããã¥ã¡ã³ã",experimentalVersion:"å®é¨ç",contactInfo:"é£çµ¡å
æ
å ±",license:"CC-BY-SAã",sourceCode:"ã½ã¼ã¹ã³ã¼ã",privacyPolicy:"ãã©ã¤ãã·ã¼ããªã·ã¼",selfHost:"ã»ã«ããã¹ã",termsOfService:"å©ç¨è¦ç´"}},Gh={common:{home:"Accueil",about:"à propos",privacy:"Confidentialité",maintain:"Maintenance et test",selfHost:"Auto-hébergement",backToHome:"Retour à l'accueil",loading:"Chargement...",error:"Erreur",success:"Succès",warning:"Avertissement",info:"Information",download:"Télécharger",upload:"Téléverser",submit:"Soumettre",cancel:"Annuler",save:"Sauvegarder",edit:"Modifier",delete:"Supprimer",close:"Fermer",confirm:"Confirmer",yes:"Oui",no:"Non",required:"Requis",optional:"Optionnel"}
4,home:{title:"ð Sensemaker",apiKeyLabel:"ð Clé API OpenRouter",apiKeyPlaceholder:"Veuillez entrer votre clé API OpenRouter",showApiKey:"Afficher la clé API",hideApiKey:"Masquer la clé API",getApiKeyLink:"Obtenir la clé API",apiKeyRequired:"Ce champ est requis pour se connecter aux services de modèles IA",invalidApiKey:"Cle API invalide ou modèle",privacyNote:"ð Protection de la vie privée : Selon notre politique de confidentialité, ce site ne stockera votre clé API nulle part. Si vous avez des préoccupations, vous êtes invités à auto-héberger les services backend et frontend.",modelLabel:"ð¤ Nom du modèle :",modelPlaceholder:"openai/gpt-oss-120b",additionalContextLabel:"ð Contexte supplémentaire :",additionalContextNote:"Aide l'IA à comprendre le contexte de la conversation et améliore la précision de l'identification des sujets. Ce champ est optionnel.",additionalContextPlaceholder:"Décrivez le contexte et l'environnement de la conversation. Peut être laissé vide.",outputLangLabel:"ð Langue de sortie :",fileLabel:"ð Téléverser un fichier (JSON exporté depuis polis.tw ou CSV exporté depuis pol.is)",startAnalysis:"ð Commencer l'analyse",riskWarning:"â ï¸ Avertissement : Ãtant donné que l'outil d'intégration d'opinions est actuellement encore en développement et en test, les réponses LLM ont une instabilité inhérente, et il y a approximativement une chance sur 6 qu'un rapport unique échoue à se générer. Vous pouvez augmenter le taux de succès grâce aux paramètres du mécanisme de nouvelle tentative.",processing:"â³ Traitement...",selectFileFirst:"Veuillez sélectionner un fichier à téléverser",taskId:"ID de tâche",status:"Statut",estimatedTime:"Temps estimé",requestFailed:"â Ãchec de la requête",requestError:"â Erreur de requête",taskStatus:"ð Statut de la tâche",commentsCount:"Nombre de commentaires",model:"Modèle utilisé",pollingResults:"Interrogation des résultats...",taskInQueue:"Tâche ajoutée à la file d'attente, début de la vérification des résultats dans 3 minutes...",taskProcessing:"Tâche encore en cours de traitement...",taskCompleted:"â
Analyse terminée !",commentsProcessed:"Traité {count} commentaires",completedAt:"Terminé à ",summary:"Résumé",downloadMarkdown:"â¬ï¸ Télécharger Markdown",noMarkdownContent:"â Aucun contenu Markdown à télécharger",downloadFailed:"â Ãchec du téléchargement",testLLM:"ð Test de connexion LLM...",testLLMSuccess:"â
Test LLM réussi !",testLLMFailed:"â Ãchec du test LLM",testLLMError:"â Erreur de requête de test LLM",testCSV:"â Veuillez d'abord sélectionner un fichier CSV",testCSVSuccess:"â
Analyse CSV réussie !",testCSVFailed:"â Ãchec de l'analyse CSV",testR2:"ð Test de lecture/écriture R2...",testR2Success:"â
Test R2 réussi !",testR2Failed:"â Ãchec du test R2",testR2Error:"â Erreur de requête de test R2",taskFailed:"â Ãchec du traitement de la tâche",failedAt:"Ãchoué à ",errorDetails:"Détails de l'erreur",errorMessage:"Message d'erreur",detailedError:"Erreur détaillée",unknownError:"Erreur inconnue",noDetailedError:"Aucune information d'erreur détaillée",modelNote:"Nous recommandons d'utiliser le modèle gpt-oss-120b. Si vous souhaitez utiliser d'autres modèles d'inférence, veuillez consulter la liste des modèles OpenRouter pour obtenir des informations afin de comparer les performances et les standards de tarification de divers modèles",modelLinkText:"ð Voir les modèles OpenRouter",costNote:"ð° Estimation des coûts : Utilisation de gpt-oss-120b pour l'analyse, selon le volume de données, coûte environ 0,05-0,20 USD.",timeNote:"â±ï¸ Estimation du temps : Utilisation de gpt-oss-120b pour l'analyse, selon le volume de données, prend environ 3-30 minutes.",retryModeLabel:"ð Mode de nouvelle tentative",retryModeStrict:"Exécuter une seule fois (Mode strict)",retryModeNormal:"Nouvelle tentative automatique 3 fois (Mode normal)",retryModeCustom:"Nombre de nouvelles tentatives personnalisé",customRetryCountLabel:"Nombre de nouvelles tentatives",customRetryCountNote:"Veuillez entrer un nombre de nouvelles tentatives entre 1-10",retryingRequest:"ð Nouvelle tentative de requête",retrySuccess:"â
Nouvelle tentative réussie",retryFailed:"â Nouvelle tentative échouée",retryError:"â Erreur de nouvelle tentative",allRetriesFailed:"â Toutes les n
4ouvelles tentatives ont échoué",outputLangOptions:{en:"English","zh-TW":"ç¹é«ä¸æ","zh-CN":"ç®ä½ä¸æ",ja:"æ¥æ¬èª",fr:"Français",es:"Español"}},about:{title:"ð à propos de l'outil d'intégration d'opinions Sensemaker",whatIsTitle:"ð Qu'est-ce que l'outil d'intégration d'opinions Sensemaker ?",whatIsDescription:"L'outil d'intégration d'opinions Sensemaker est un outil puissant alimenté par l'IA, spécialement conçu pour analyser de gros volumes de données d'opinion et générer des insights significatifs. Il peut identifier les points communs majeurs et les divergences d'opinion, vous aidant à extraire des informations précieuses de datasets massifs.",whatIsDescription2:"Cet outil est particulièrement adapté aux scénarios de démocratie délibérative. Lorsque vous utilisez des outils de collecte d'opinions asynchrones comme Polis, il peut aider à traiter de grandes quantités d'opinions similaires ou répétitives et générer automatiquement des rapports d'analyse structurés. Ceci est une implémentation frontend de certaines de ses fonctionnalités.",resourcesTitle:"ð Ressources connexes",officialDocs:"Documentation officielle :",openSourceLib:"Bibliothèque open source :",experimentalLib:"Bibliothèque expérimentale (compatible avec ce site) :",experimentalBranch:"Veuillez utiliser la branche new-feature-open-router",supportedDataTitle:"ð Sources de données prises en charge",supportedDataDescription:"Cet outil prend en charge les données de rapport exportées depuis les plateformes suivantes :",polisTWTitle:"ð¹ð¼ Polis.tw",polisTWDescription:"Obtenir des données depuis les pages de rapport Polis.tw, nécessite l'extraction de données JSON depuis les réponses API via le mode développeur. Veuillez vous référer aux instructions pertinentes dans ce tutoriel.",polisTitle:"ð Pol.is",polisDescription:"Exporter des fichiers CSV liés aux commentaires depuis les pages de rapport Pol.is, peut être téléversé directement.",dataFormatTitle:"ð Exigences de format de données",polisTWFormatTitle:"ð¹ð¼ Format de données Polis.tw",polisTWFormatDescription:"Note : Le format de données polis.tw est différent de Pol.is. Actuellement, le format JSON exporté par polis.tw peut être utilisé directement.",polisFormatTitle:"ð Format de données Pol.is",polisFormatDescription:"Pour le format de données pol.is, peut être téléversé directement.",useCasesTitle:"ð¯ Cas d'usage",useCasesDescription:"Sensemaker est particulièrement adapté aux scénarios suivants :",deliberativeDemocracy:"Démocratie délibérative : Traiter de gros volumes d'opinions citoyennes, identifier les consensus et points de divergence",policyMaking:"Ãlaboration de politiques : Analyser la distribution de l'opinion publique sur des politiques spécifiques",productDevelopment:"Développement de produits : Organiser les retours utilisateurs, identifier les besoins principaux et points d'amélioration",academicResearch:"Recherche académique : Analyser les enquêtes ou données d'entretien",communityManagement:"Gestion de communauté : Comprendre les opinions et besoins des membres de la communauté",usageTipsTitle:"ð¡ Conseils d'utilisation",ensureDataQuality:"Assurer la qualité des données, supprimer les opinions en double ou invalides",provideContext:"Fournir des descriptions de contexte claires pour aider l'IA à mieux comprendre l'arrière-plan des données",chooseFormat:"Choisir le format de sortie approprié selon le but de l'analyse (recommandé : format Markdown)",regularCheck:"Vérifier et mettre à jour régulièrement les données pour assurer la pertinence des résultats d'analyse",getStartedTitle:"ð Commencer",readyToStart:"Prêt avec vos données ? Allez à la page d'accueil pour commencer à téléverser et analyser vos données d'opinion !"},privacy:{title:"Politique de confidentialité",privacyPolicy:"Politique de confidentialité",privacyDescription:"Cette application ne collecte aucune donnée personnelle. Les rapports générés sont temporairement stockés dans le service de stockage R2 pour votre téléchargement et ne peuvent pas être c
4onsultés par d'autres utilisateurs.",dataProcessingTitle:"à propos du traitement des données",backendProcessing:"Traitement backend : Les données sont envoyées à notre backend pour calcul, mais aucune donnée utilisateur n'est stockée sur nos serveurs, surtout les clés API ne sont jamais stockées.",noCookies:"Pas de cookies : Nous n'utilisons aucun cookie.",openSource:"Transparence open source : Notre code est complètement open source, et vous pouvez examiner toutes les fonctionnalités pour assurer la confidentialité.",frontendProject:"Projet frontend",backendProject:"Projet backend",openSourceNote:"Transparence open source : Notre code est complètement open source, et vous pouvez examiner toutes les fonctionnalités pour assurer la confidentialité. Consultez nos dépôts frontend et backend sur GitHub."},selfHost:{title:"ðï¸ Guide d'auto-hébergement",overviewTitle:"ð Aperçu",overviewDescription:"Si vous avez des préoccupations concernant la confidentialité et la sécurité des données, vous êtes invités à forker notre projet et auto-héberger le service. De cette façon, vous avez un contrôle complet sur vos données et clés API.",paidPlanTitle:"Exigences de plan payant",paidPlanDescription:"Le service backend utilise Cloudflare Queues qui nécessite un plan Worker payant. Les plans gratuits ne prennent pas en charge cette fonctionnalité.",backendTitle:"ð§ Configuration backend (Cloudflare Worker)",step1Backend:"Ãtape 1 : Forker le projet backend",step1BackendDesc:"Aller au projet sensemaker-backend et le forker vers votre compte GitHub",viewBackendProject:"Voir le projet backend",step2Backend:"Ãtape 2 : Configurer Cloudflare Worker",step2BackendDesc:"Créer un nouveau Worker dans Cloudflare Dashboard et déployer votre code backend",importantNote:"â ï¸ Note importante : Le backend utilise Cloudflare Queues qui nécessite un plan Worker payant. Les plans gratuits ne prennent pas en charge Queues.",frontendTitle:"ð¨ Configuration frontend (Vue.js)",step1Frontend:"Ãtape 1 : Forker le projet frontend",step1FrontendDesc:"Aller au projet sensemaker-frontend et le forker vers votre compte GitHub",viewFrontendProject:"Voir le projet frontend",step2Frontend:"Ãtape 2 : Modifier le point de terminaison API",step2FrontendDesc:"Dans src/views/HomeView.vue, changer l'URL API vers votre URL Worker :",originalURL:"URL originale",yourURL:"Votre URL",step3Frontend:"Ãtape 3 : Déployer le frontend",step3FrontendDesc:"Vous pouvez choisir parmi plusieurs méthodes de déploiement, nous recommandons d'utiliser Cloudflare Pages :",cloudflarePages:"Cloudflare Pages : Gratuit, s'intègre bien avec Workers",advantagesTitle:"â
Avantages de l'auto-hébergement",fullControl:"Contrôle complet",fullControlDesc:"Vos données sont complètement sous votre contrôle et ne passeront pas par un serveur tiers",apiKeyProtection:"Protection complète des clés API",apiKeyProtectionDesc:"Vos clés API sont gardées complètement dans votre environnement et ne passent jamais par un serveur tiers",customizable:"Personnalisable",customizableDesc:"Vous pouvez modifier les fonctionnalités et l'interface selon vos besoins",learning:"Opportunité d'apprentissage",learningDesc:"En savoir plus sur la technologie de développement web moderne",needHelpTitle:"ð Besoin d'aide ?",needHelpDesc:"Si vous rencontrez des problèmes lors de la configuration, vous êtes invités à :",openIssue:"Ouvrir un Issue dans le projet GitHub",checkReadme:"Vérifier le README et Wiki du projet",joinCommunity:"Rejoindre nos discussions communautaires"},maintain:{title:"Maintenance, test et signalement",pageTitle:"Maintenance, test et signalement",testTitle:"𧪠Comment tester",testIntro:"Ce site fournit un jeu de données de test simple pour vérifier que le flux d'upload, d'analyse et de résumé fonctionne correctement.",testDataLabel:"Données de test",testDataPathBefore:"Le CSV de test est dans data/comments_test.csv (une fois déployé, l'URL est",testDataPathAfter:").",testDataDesc:"Le fichier est au format d'export de commentaires Polis avec un commentaire exemple, et peut être utilisé directement dans le flux « Upload CSV ».",testStepsLabel:"Ãtapes de test",step1:"Aller à ",step1Suffix:".",step2:"Saisissez votre propre clé API Open Router dans le champ « Open Router API KEY » (utilisez votre propre clé pour les tests ; ce site ne la stocke pas).",step3:"Utilisez le modèle par défaut openai/gpt-oss-120b pour tester.",step4:"Cliquez sur « Choisir un fichier » et uploadez data/comments_test.csv (vous pouvez télécharger depuis l'URL ci-dessus puis uploadez).",step5:"Cliquez sur « Démarrer l'analyse » et attendez la fin ;
4 vous devriez obtenir un résumé. Si le flux se termine, le test est réussi.",apiKeyTitle:"ð à propos de la clé API Open Router",apiKeyDescBefore:"Vous devez utiliser votre propre clé API Open Router lors des tests. Consultez ",apiKeyDescAfter:" pour en obtenir une. Ce site ne stocke ni n'envoie votre clé API à aucun serveur ; elle est uniquement utilisée dans le navigateur pour appeler le backend, qui relaie vers Open Router.",openRouterGuideLink:"Guide d'utilisation Open Router",reportTitle:"ð Comment signaler un problème",reportIntro:"Si vous constatez des erreurs, une interface cassée ou des résultats inattendus pendant les tests, merci de les signaler sur le GitHub du projet pour que les mainteneurs puissent enquêter et corriger.",reportStepsLabel:"Ãtapes pour signaler",reportStep1:"Aller sur la page Issues du projet frontend :",reportStep2:"Cliquez sur « New issue » pour créer une nouvelle issue.",reportStep3:"Utilisez un titre clair (ex. « L'analyse échoue après upload de comments_test.csv »).",reportStep4:"Dans le corps, indiquez si possible :",reportStep4Bullet1:"Les étapes pour reproduire (ex. CSV de test, quel modèle).",reportStep4Bullet2:"Résultat attendu vs réel (ex. attendu un résumé, obtenu un message d'erreur).",reportStep4Bullet3:"Le message d'erreur ou une capture d'écran de la page.",reportStep4Bullet4:"Navigateur et OS (ex. Chrome 120 / macOS).",reportStep5:"Si le problème concerne l'API backend, vous pouvez aussi signaler au projet backend :",reportStep5Backend:"Issues sensemaker-backend",reportStep5Suffix:".",frontendIssuesUrl:"https://github.com/g0v/sensemaker-frontend/issues",backendIssuesUrl:"https://github.com/bestian/sensemaker-backend/issues"},guideModal:{title:"Bienvenue dans l'outil d'intégration d'opinions Sensemaker",description:"L'outil d'intégration d'opinions Sensemaker est un outil puissant d'analyse de rapports d'enquêtes d'opinion qui peut vous aider à extraire des insights précieux de grandes quantités de rapports d'enquêtes d'opinion.",sensemakingToolsLink:"Version 2026: utilisez OpenRouter ou LM Studio en local pour generer un rapport web HTML interactif complet",uberReportExample:"Rapport exemple : « UberX, transport de passagers en voiture personnelle »",polisTitle:"1. Export de rapport d'enquête d'opinion Polis",polisDescription:"Cet outil prend en charge les rapports d'enquêtes d'opinion exportés depuis la plateforme Polis. Veuillez vous assurer que vos fichiers sont conformes à la structure de données Polis.",polisLink:"Voir le guide â",openRouterTitle:"2. Connexion API OpenRouter",openRouterDescription:"Cet outil utilise OpenRouter pour se connecter à divers modèles de langage volumineux. Vous devez fournir une clé API OpenRouter pour l'utiliser.",openRouterLink:"Voir le guide â",sensemakerTitle:"3. Analyse Sensemaker",sensemakerDescription:"Cet outil utilise Sensemaker pour l'analyse. Veuillez vous référer aux instructions suivantes pour l'analyse.",sensemakerLink:"En savoir plus â",tip:"Astuce : Si c'est votre première utilisation de cet outil, nous recommandons de lire d'abord les documents de guide ci-dessus pour assurer une utilisation correcte.",dontShowAgain:"Ne plus afficher cette astuce",iKnow:"J'ai compris"},openRouterGuide:{title:"Guide d'utilisation OpenRouter",step1Title:"Aller à la page d'accueil OpenRouter",step1Description:"Tout d'abord, veuillez visiter le site Web officiel d'OpenRouter. OpenRouter est une interface LLM unifiée qui fournit divers modèles IA parmi lesquels choisir. Cet outil utilise principalement le modèle <b>GPT-OSS-120B</b> de haute qualité, réfléchi et abordable.",step1Link:"Aller à la page d'accueil OpenRouter : https://openrouter.ai/",step1Tip:"Astuce : Après vous être inscrit et connecté, veuillez cliquer sur l'avatar personnel dans le coin supérieur droit de la page d'accueil pour développer le menu déroulant pour les étapes suivantes (achat de Credits et demande de clé API).",step2Title:"Acheter des Credits",step2Description:"Avant d'utiliser les services OpenRouter, vous devez d'abord acheter des crédits. Les crédits peuvent être utilisés avec n'importe quel modèle ou fournisseur, vous permettant d'utiliser flexibly différents services IA.",step2Link:"Aller à la page d'achat de crédits : https://openrouter.ai/settings/credits",step3Title:"Demander une clé API",step3Description:"Enfin, vous devez créer une clé API pour commencer à utiliser les services OpenRouter. La clé API est entièrement compatible avec le format OpenAI et peut être utilisée directement.",step3Link:"Aller à la page des paramètres de clé API : https://openrouter.ai/settings/keys",tipsTitle:"Conseils importants",tip1:"⢠Veuillez garder votre clé API en sécurité et ne pas la partager avec d'autres",tip2:"⢠La clé API peut être utilisée immédiatement après sa création, aucune approbation n'est nécessaire",tip3:"⢠Il est recommandé de vérifier régulièrement votre solde de crédits pour assurer le fonctionnement normal du service",tip4:"⢠OpenRouter prend en charge divers modes de paiement, y compris les cartes de crédit",backToHome:"Retour à l'accueil"}
4,polisGuide:{title:"Guide d'utilisation Polis",step1Title:"Aller à la page d'accueil Polis",step1Description:"Tout d'abord, veuillez visiter le site Web officiel de Polis. Polis est une plateforme pour collecter et analyser les opinions publiques, vous aidant à comprendre différents points de vue et à mener une collecte d'opinions significative.",step1Link:"Aller à la page d'accueil Polis : https://pol.is/home",step2Title:"Créer un compte et se connecter",step2Description:"Si vous n'avez pas encore de compte Polis, veuillez d'abord créer un nouveau compte. Si vous avez déjà un compte, veuillez vous connecter directement. Après vous être connecté, vous pouvez commencer à créer et gérer des conversations.",step2Link:"Aller à la page de connexion/inscription : https://pol.is/signin",step3Title:"Créer et gérer des conversations dans le tableau de bord Polis",step3Description:'Après vous être connecté, vous entrerez dans le tableau de bord Polis. Ici, vous pouvez créer de nouvelles conversations et gérer les conversations existantes. Cliquez sur le bouton "Create New Conversation" pour commencer à créer une nouvelle conversation.',step3Link:"Aller au tableau de bord Polis : https://pol.is/",step4Title:"Publier l'URL de collecte d'opinions et collecter les réponses",step4Description:"Après avoir créé une conversation, vous pouvez obtenir l'URL de collecte d'opinions et la partager avec les participants. Les participants peuvent accéder à la conversation via cette URL et fournir leurs opinions. Vous pouvez également utiliser la fonctionnalité embed pour intégrer la conversation dans votre site Web, permettant aux participants de participer directement sur votre site Web.",step5Title:"Passer à l'onglet Reports et créer l'URL du rapport",step5Description:`Dans la page de conversation, passez à l'onglet "Reports". Ici, vous pouvez créer des URLs de rapport pour afficher les résultats d'analyse et les statistiques de la conversation.`,step6Title:"Entrer dans la page Rapport",step6Description:"Dans l'onglet Reports, cliquez sur l'élément Rapport que vous souhaitez consulter. Après avoir cliqué, un lien apparaîtra, puis cliquez sur ce lien pour entrer dans la page Rapport et afficher les résultats d'analyse détaillés.",step7Title:"Télécharger le CSV des commentaires",step7Description:"Dans la page Rapport, faites défiler vers le bas pour trouver l'option de téléchargement. Vous verrez un bouton de téléchargement, cliquez dessus pour télécharger un fichier CSV contenant tous les commentaires (format de nom de fichier : conversation-id-comments.csv). Ce fichier CSV contient toutes les données de commentaires de la conversation et peut être utilisé pour une analyse plus approfondie.",tipsTitle:"Conseils importants",tip1:"⢠Le fichier CSV téléchargé contient toutes les données de commentaires de la conversation",tip2:"⢠Les fichiers CSV peuvent être importés dans ce système pour une analyse plus approfondie",tip3:"⢠Assurez-vous d'avoir la permission d'accéder à la page Rapport de cette conversation",tip4:"⢠Si vous ne trouvez pas le bouton de téléchargement, veuillez confirmer que vous avez basculé vers la page Rapport correcte",backToHome:"Retour à l'accueil"},sensemakerGuide:{title:"Guide d'utilisation Sensemaker",step1Title:"Téléverser le fichier original exporté depuis Polis",step1Description:"Tout d'abord, veuillez téléverser le fichier CSV téléchargé depuis Polis. Ce fichier contient toutes les données de commentaires des participants et constitue la base de l'analyse. Veuillez vous assurer que le format du fichier est correct et contient les informations de champ nécessaires.",step2Title:"Entrer la clé API OpenRouter",step2Description:"Entrez votre clé API OpenRouter dans le champ correspondant. Cette clé API est utilisée pour se connecter aux services OpenRouter, permettant au système d'utiliser des modèles IA pour l'analyse. Veuillez vous assurer que la clé API est correcte et valide.",step3Title:"Garder le nom du modèle comme openai/gpt-oss-120b",step3Description:"Le système utilise par défaut le modèle <b>openai/gpt-oss-120b</b> pour l'analyse. C'est un modèle de haute qualité, réfléchi et abordable, très adapté à l'anal
4yse d'opinions. Il est recommandé de conserver ce paramètre sauf si vous avez des besoins spéciaux.",step3Tip:"Astuce : Le champ du nom du modèle est prédéfini à ",step3TipCode:"openai/gpt-oss-120b",step3TipEnd:", généralement aucune modification n'est nécessaire.",step4Title:"Entrer un contexte supplémentaire pour optimiser le contexte d'analyse du modèle de langage",step4Description:"Vous pouvez optionnellement entrer des informations de contexte supplémentaires, telles que le contexte du sujet de conversation, les descriptions de politiques connexes ou les points d'analyse spécifiques. Ces informations peuvent aider les modèles IA à mieux comprendre le contexte des commentaires et fournir des résultats d'analyse plus approfondis.",step5Title:"Sélectionner la langue de sortie",step5Description:`Sélectionnez la langue que vous souhaitez utiliser pour le rapport. Par exemple, après avoir sélectionné "Chinois", le rapport d'analyse sera présenté en chinois, vous permettant de lire et comprendre plus facilement les résultats d'analyse.`,step6Title:"Commencer l'analyse",step6Description:`Après avoir confirmé que tous les paramètres sont corrects, cliquez sur le bouton "Commencer l'analyse". Le système commencera à traiter vos données. Ce processus peut prendre quelques minutes, veuillez patienter. Vous pouvez voir les informations de progression de l'analyse sur la page.`,step7Title:"Examiner et télécharger le rapport Markdown",step7Description:"Une fois l'analyse terminée, le système générera un rapport d'analyse au format Markdown. Vous pouvez prévisualiser le contenu du rapport sur la page, et après avoir confirmé qu'il est correct, cliquez sur le bouton de téléchargement pour enregistrer le rapport sur votre ordinateur. Le rapport contient des résultats d'analyse détaillés, des statistiques et des recommandations d'insights.",tipsTitle:"Conseils importants",tip1:"⢠Assurez-vous que le format du fichier CSV téléversé est correct et contient les champs nécessaires",tip2:"⢠Veuillez garder votre clé API en sécurité et ne pas la partager avec d'autres",tip3:"⢠Le processus d'analyse peut prendre quelques minutes, veuillez patienter et ne pas fermer la page",tip4:"⢠Les rapports Markdown téléchargés peuvent être ouverts avec n'importe quel éditeur prenant en charge Markdown",tip5:"⢠Si l'analyse échoue, veuillez vérifier si la clé API est valide et si le solde de crédits est suffisant",backToHome:"Retour à l'accueil"},footer:{description:"Un outil puissant d'intégration d'opinions alimenté par l'IA, spécialement conçu pour analyser de gros volumes de données d'opinion et générer des insights significatifs.",communityLinks:"Liens communautaires",jigsawOriginalProject:"Projet original Jigsaw",officialDocs:"Documentation officielle",experimentalVersion:"Version expérimentale",contactInfo:"Informations de contact",license:"CC-BY-SA.",sourceCode:"Code source",privacyPolicy:"Politique de confidentialité",selfHost:"Auto-hébergement",termsOfService:"Conditions d'utilisation"}},Yh={common:{home:"Inicio",about:"Acerca de",privacy:"Privacidad",maintain:"Mantenimiento y prueba",selfHost:"Auto-alojamiento",backToHome:"Volver al inicio",loading:"Cargando...",error:"Error",success:"Ãxito",warning:"Advertencia",info:"Información",download:"Descargar",upload:"Subir",submit:"Enviar",cancel:"Cancelar",save:"Guardar",edit:"Editar",delete:"Eliminar",close:"Cerrar",confirm:"Confirmar",yes:"SÃ",no:"No",required:"Requerido",optional:"Opcional"},home:{title:"ð Sensemaker",apiKeyLabel:"ð Clave API OpenRouter",apiKeyPlaceholder:"Por favor ingrese su clave API OpenRouter",showApiKey:"Mostrar clave API",hideApiKey:"Ocultar clave API",getApiKeyLink:"Obtener clave API",apiKeyRequired:"Este campo es requerido para conectarse a los servicios de modelos de IA",invalidApiKey:"Clave API inválida o modelo",privacyNote:"ð Protección de privacidad: Según nuestra polÃtica de privacidad, este sitio no almacenará su clave API en ningún lugar. Si tiene inquietudes, le invitamos a auto-alojar los servicios backend y frontend.",modelLabel:"
4ð¤ Nombre del modelo:",modelPlaceholder:"openai/gpt-oss-120b",modelNote:"Se recomienda usar el modelo gpt-oss-120b. Si desea usar otros modelos de inferencia, consulte la lista de modelos de OpenRouter para obtener información y comparar el rendimiento y los estándares de precios de varios modelos",modelLinkText:"ð Ver modelos de OpenRouter",costNote:"ð° Estimación de costo: Usando gpt-oss-120b para análisis, dependiendo del volumen de datos, cuesta aproximadamente $0.05-0.20 USD.",timeNote:"â±ï¸ Estimación de tiempo: Usando gpt-oss-120b para análisis, dependiendo del volumen de datos, toma aproximadamente 3-30 minutos.",retryModeLabel:"ð Modo de reintento",retryModeStrict:"Ejecutar una sola vez (Modo estricto)",retryModeNormal:"Reintento automático 3 veces (Modo normal)",retryModeCustom:"Número de reintentos personalizado",customRetryCountLabel:"Número de reintentos",customRetryCountNote:"Por favor ingrese un número de reintentos entre 1-10",retryingRequest:"ð Reintentando solicitud",retrySuccess:"â
Reintento exitoso",retryFailed:"â Reintento fallido",retryError:"â Error de reintento",allRetriesFailed:"â Todos los reintentos fallaron",additionalContextLabel:"ð Contexto adicional:",additionalContextNote:"Ayuda a la IA a entender el contexto de la conversación y mejorar la precisión de identificación de temas. Este campo es opcional.",additionalContextPlaceholder:"Describa el contexto y entorno de la conversación. Puede dejarse vacÃo.",outputLangLabel:"ð Idioma de salida:",fileLabel:"ð Subir archivo (JSON exportado desde polis.tw o CSV exportado desde pol.is)",startAnalysis:"ð Iniciar análisis",riskWarning:"â ï¸ Advertencia: Dado que la herramienta de integración de opiniones está actualmente aún en desarrollo y pruebas, las respuestas LLM tienen una inestabilidad inherente, y hay aproximadamente una probabilidad de 1/6 de que un reporte único falle en generarse. Puede aumentar la tasa de éxito a través de la configuración del mecanismo de reintento.",processing:"â³ Procesando...",selectFileFirst:"Por favor seleccione un archivo para subir",taskId:"ID de tarea",status:"Estado",estimatedTime:"Tiempo estimado",requestFailed:"â Solicitud fallida",requestError:"â Error de solicitud",taskStatus:"ð Estado de la tarea",commentsCount:"Cantidad de comentarios",model:"Modelo utilizado",pollingResults:"Consultando resultados...",taskInQueue:"Tarea agregada a la cola, comenzará a verificar resultados en 3 minutos...",taskProcessing:"Tarea aún procesándose...",taskCompleted:"â
¡Análisis completado!",commentsProcessed:"Procesados {count} comentarios",completedAt:"Completado en",summary:"Resumen",downloadMarkdown:"â¬ï¸ Descargar Markdown",noMarkdownContent:"â No hay contenido Markdown para descargar",downloadFailed:"â Descarga fallida",testLLM:"ð Probando conexión LLM...",testLLMSuccess:"â
¡Prueba LLM exitosa!",testLLMFailed:"â Prueba LLM fallida",testLLMError:"â Error de solicitud de prueba LLM",testCSV:"â Por favor seleccione un archivo CSV primero",testCSVSuccess:"â
¡Análisis CSV exitoso!",testCSVFailed:"â Análisis CSV fallido",testR2:"ð Probando lectura/escritura R2...",testR2Success:"â
¡Prueba R2 exitosa!",testR2Failed:"â Prueba R2 fallida",testR2Error:"â Error de solicitud de prueba R2",taskFailed:"â Procesamiento de tarea fallido",failedAt:"Falló en",errorDetails:"Detalles del error",errorMessage:"Mensaje de error",detailedError:"Error detallado",unknownError:"Error desconocido",noDetailedError:"No hay información detallada del error",outputLangOptions:{en:"English","zh-TW":"ç¹é«ä¸æ","zh-CN":"ç®ä½ä¸æ",ja:"æ¥æ¬èª",fr:"Français",es:"Español"}},about:{title:"ð Acerca de la herramienta de integración de opiniones Sensemaker",whatIsTitle:"ð ¿Qué es la herramienta de integración de opiniones Sensemaker?",whatIsDescription:"La herramienta de integración de opiniones Sensemaker es una herramienta poderosa impulsada por IA, especÃficamente diseñada para analizar grandes volúmenes de datos de opinión y generar insights significativos. Puede identificar puntos comunes principales y divergencias de opinión, ayudándole a extraer información valiosa de datasets masivos.",whatIsDescription2:"Esta herramienta es particularmente adecuada para escenarios de democracia deliberativa. Cuando usa herramientas de recolección de opiniones asÃncronas como Polis, puede ayudar a procesar grandes cantidades de opiniones similares o repetitivas y generar automáticamente reportes de análisis estructurados. Esta es una implementación frontend de algunas de sus funcionalidades.",resourcesTitle:"ð Recursos relacionados",officialDocs:"Documentación oficial:",openSourceLib:"Biblioteca de código abierto:",experimentalLib:"Biblioteca experimental (compatible con este sitio):",experimentalBranch:"Por favor use la rama new-feature-open-router",supportedDataTitle:"
4ð Fuentes de datos soportadas",supportedDataDescription:"Esta herramienta soporta datos de reporte exportados desde las siguientes plataformas:",polisTWTitle:"ð¹ð¼ Polis.tw",polisTWDescription:"Obtener datos desde las páginas de reporte Polis.tw, requiere extraer datos JSON desde las respuestas API a través del modo desarrollador. Por favor refiérase a las instrucciones relevantes en este tutorial.",polisTitle:"ð Pol.is",polisDescription:"Exportar archivos CSV relacionados con comentarios desde las páginas de reporte Pol.is, puede ser subido directamente.",dataFormatTitle:"ð Requisitos de formato de datos",polisTWFormatTitle:"ð¹ð¼ Formato de datos Polis.tw",polisTWFormatDescription:"Nota: El formato de datos polis.tw es diferente de Pol.is. Actualmente, el formato JSON exportado por polis.tw puede ser usado directamente.",polisFormatTitle:"ð Formato de datos Pol.is",polisFormatDescription:"Para el formato de datos pol.is, puede ser subido directamente.",useCasesTitle:"ð¯ Casos de uso",useCasesDescription:"Sensemaker es particularmente adecuado para los siguientes escenarios:",deliberativeDemocracy:"Democracia deliberativa: Procesar grandes volúmenes de opiniones ciudadanas, identificar consensos y puntos de divergencia",policyMaking:"Formulación de polÃticas: Analizar la distribución de opinión pública sobre polÃticas especÃficas",productDevelopment:"Desarrollo de productos: Organizar retroalimentación de usuarios, identificar necesidades principales y puntos de mejora",academicResearch:"Investigación académica: Analizar encuestas o datos de entrevistas",communityManagement:"Gestión de comunidad: Entender opiniones y necesidades de miembros de la comunidad",usageTipsTitle:"ð¡ Consejos de uso",ensureDataQuality:"Asegurar calidad de datos, remover opiniones duplicadas o inválidas",provideContext:"Proporcionar descripciones de contexto claras para ayudar a la IA a entender mejor el fondo de los datos",chooseFormat:"Elegir formato de salida apropiado según el propósito del análisis (recomendado: formato Markdown)",regularCheck:"Revisar y actualizar datos regularmente para asegurar la relevancia de los resultados del análisis",getStartedTitle:"ð Comenzar",readyToStart:"¿Listo con sus datos? ¡Vaya a la página de inicio para comenzar a subir y analizar sus datos de opinión!"},privacy:{title:"PolÃtica de privacidad",privacyPolicy:"PolÃtica de privacidad",privacyDescription:"Esta aplicación no recolecta ningún dato personal. Los reportes generados se almacenan temporalmente en el servicio de almacenamiento R2 para su descarga y no pueden ser accedidos por otros usuarios.",dataProcessingTitle:"Acerca del procesamiento de datos",backendProcessing:"Procesamiento backend: Los datos se envÃan a nuestro backend para cálculo, pero ningún dato de usuario se almacena en nuestros servidores, especialmente las claves API nunca se almacenan.",noCookies:"Sin cookies: No usamos ninguna cookie.",openSource:"Transparencia de código abierto: Nuestro código es completamente de código abierto, y puede revisar toda la funcionalidad para asegurar la privacidad.",frontendProject:"Proyecto frontend",backendProject:"Proyecto backend",openSourceNote:"Transparencia de código abierto: Nuestro código es completamente de código abierto, y puede revisar toda la funcionalidad para asegurar la privacidad. Revise nuestros repositorios frontend y backend en GitHub."},selfHost:{title:"ðï¸ GuÃa de auto-alojamiento",overviewTitle:"ð Resumen",overviewDescription:"Si tiene inquietudes sobre privacidad y seguridad de datos, le invitamos a hacer fork de nuestro proyecto y auto-alojar el servicio. De esta manera tiene control completo sobre sus datos y claves API.",paidPlanTitle:"Requisitos de plan pagado",paidPlanDescription:"El servicio backend usa Cloudflare Queues que requiere un plan Worker pagado. Los planes gratuitos no soportan esta funcionalidad.",backendTitle:"ð§ Configuración backend (Cloudflare Worker)",step1Backend:"Paso 1: Hacer fork del proyecto backend",step1BackendDesc:"Ir al proyecto sensemaker-backend y hacer fork a su cuenta GitHub",viewBackendProject:"Ver proyecto backend",step2Backend:"Paso 2: Configurar Cloudflare Worker",step2BackendDesc:"Crear un nuevo Worker en Cloudflare Dashboard y desplegar su código backend",importantNote:"â ï¸ Nota importante: El backend usa Cloudflare Queues que requiere un plan Worker pagado. Los planes gratuitos no soportan Queues.",frontendTitle:"ð¨ Configuración frontend (Vue.js)",step1Frontend:"Paso 1: Hacer fork del proyecto frontend",step1FrontendDesc:"Ir al proyecto sensemaker-frontend y hacer fork a su cuenta GitHub",viewFrontendProject:"Ver proyecto frontend",step2Frontend:"Paso 2: Modificar endpoint API",step2FrontendDesc:"En src/views/HomeView.vue, cambiar la URL API a su URL Worker:",originalURL:"URL original",yourURL:"Su URL",step3Frontend:"Paso 3: Desplegar frontend",step3FrontendDesc:"Puede elegir entre múltiples métodos de despliegue, recomendamos usar Cloudflare Pages:",cloudflarePages:"Cloudflare Pages: Gratuito, se integra bien con Workers",advantagesTitle:"â
Ventajas del auto-alojamiento",fullControl:"Control completo",fullControlDesc:"Sus datos están completamente bajo su control y no pasarán por un servidor de terceros",apiKeyProtection:"Protección completa de claves API",apiKeyProtectionDesc:"Sus claves API se mantienen completamente en su entorno y nunca pasan por un servidor de terceros",customizable:"Personalizable",customizableDesc:"Puede modificar la funcionalidad e interfaz según sus necesidades",learning:"Oportunidad de aprendizaje",learningDesc:"Aprender más sobre tecnologÃa de desarrollo web moderna",needHelpTitle:"
4ð ¿Necesita ayuda?",needHelpDesc:"Si encuentra problemas durante la configuración, le invitamos a:",openIssue:"Abrir un Issue en el proyecto GitHub",checkReadme:"Revisar el README y Wiki del proyecto",joinCommunity:"Unirse a nuestras discusiones comunitarias"},maintain:{title:"Mantenimiento, prueba e informes",pageTitle:"Mantenimiento, prueba e informes",testTitle:"𧪠Cómo probar",testIntro:"Este sitio ofrece un conjunto de datos de prueba sencillo para comprobar que el flujo de subida, análisis y resumen funciona correctamente.",testDataLabel:"Datos de prueba",testDataPathBefore:"El CSV de prueba está en data/comments_test.csv (desplegado, la URL es",testDataPathAfter:").",testDataDesc:'El archivo está en formato de comentarios exportado de Polis con un comentario de ejemplo y puede usarse directamente en el flujo "Subir CSV".',testStepsLabel:"Pasos de prueba",step1:"Ir a",step1Suffix:".",step2:'Introduzca su propia Open Router API Key en el campo "Open Router API KEY" (use su propia clave para las pruebas; este sitio no la almacena).',step3:"Use el modelo predeterminado openai/gpt-oss-120b para probar.",step4:'Haga clic en "Elegir archivo" y suba data/comments_test.csv (puede descargar desde la URL anterior y subir).',step5:'Haga clic en "Iniciar análisis" y espere a que termine; deberÃa obtener un resumen. Si el flujo termina, la prueba ha pasado.',apiKeyTitle:"ð Sobre la Open Router API Key",apiKeyDescBefore:"Debe usar su propia Open Router API Key al probar. Consulte ",apiKeyDescAfter:" para obtenerla. Este sitio no almacena ni envÃa su API Key a ningún servidor; solo se usa en el navegador para llamar al backend, que reenvÃa a Open Router.",openRouterGuideLink:"GuÃa de uso de Open Router",reportTitle:"ð Cómo reportar problemas",reportIntro:"Si ve errores, interfaz rota o resultados inesperados durante las pruebas, puede reportarlos en el GitHub del proyecto para que los mantenedores investiguen y corrijan.",reportStepsLabel:"Pasos para reportar",reportStep1:"Ir a la página de Issues del proyecto frontend:",reportStep2:'Haga clic en "New issue" para crear un nuevo issue.',reportStep3:'Use un tÃtulo claro (p. ej. "El análisis falla tras subir comments_test.csv").',reportStep4:"En el cuerpo, incluya cuando sea posible:",reportStep4Bullet1:"Pasos para reproducir (p. ej. CSV de prueba, qué modelo).",reportStep4Bullet2:"Resultado esperado vs real (p. ej. esperaba resumen, obtuvo mensaje de error).",reportStep4Bullet3:"Mensaje de error o captura de pantalla de la página.",reportStep4Bullet4:"Navegador y SO (p. ej. Chrome 120 / macOS).",reportStep5:"Si el problema es con la API del backend, también puede reportar en el proyecto backend:",reportStep5Backend:"Issues de sensemaker-backend",reportStep5Suffix:".",frontendIssuesUrl:"https://github.com/g0v/sensemaker-frontend/issues",backendIssuesUrl:"https://github.com/bestian/sensemaker-backend/issues"},guideModal:{title:"Bienvenido a la herramienta de integración de opiniones Sensemaker",description:"La herramienta de integración de opiniones Sensemaker es una poderosa herramienta de análisis de informes de encuestas de opinión que puede ayudarle a extraer insights valiosos de grandes volúmenes de informes de encuestas de opinión.",sensemakingToolsLink:"Version 2026: use OpenRouter o LM Studio local para generar un informe web HTML interactivo completo",uberReportExample:"Informe de ejemplo: «UberX, transporte de pasajeros en vehiculo privado»",polisTitle:"1. Exportación de informe de encuesta de opinión Polis",polisDescription:"Esta herramienta soporta informes de encuestas de opinión exportados desde la plataforma Polis. Por favor asegúrese de que sus archivos cumplan con la estructura de datos de Polis.",polisLink:"Ver guÃa â",openRouterTitle:"2. Conexión API OpenRouter",openRouterDescription:"Esta herramienta usa OpenRouter para conectarse a varios modelos de lenguaje grandes. Necesita proporcionar una clave API OpenRouter para usarla.",openRouterLink:"Ver guÃa â",sensemakerTitle:"3. Análisis Sensemaker",sensemakerDescription:"Esta herramienta usa Sensemaker para el análisis. Por favor consulte las siguientes instrucciones para el análisis.",sensemakerLink:"Aprender más â",tip:"Consejo: Si es la primera vez que usa esta herramienta, recomendamos leer primero los documentos de guÃa anteriores para asegurar el uso correcto.",dontShowAgain:"No mostrar este consejo nuevamente",iKnow:"Entiendo"},openRouterGuide:{title:"GuÃa de uso de OpenRouter",step1Title:"Ir a la página de inicio de OpenRouter",step1Description:"Primero, por favor visite el sitio web oficial de OpenRouter. OpenRouter es una interfaz LLM unificada que proporciona varios modelos de IA para elegir. Esta herramienta usa principalmente el modelo <b>GPT-OSS-120B</b> de alta calidad, reflexivo y asequible.",step1Link:"Ir a la página de inicio de OpenRouter: https://openrouter.ai/",step1Tip:"
4Consejo: Después de registrarse e iniciar sesión, por favor haga clic en el avatar personal en la esquina superior derecha de la página de inicio para expandir el menú desplegable para los pasos siguientes (comprar Credits y solicitar clave API).",step2Title:"Comprar Credits",step2Description:"Antes de usar los servicios de OpenRouter, necesita comprar créditos primero. Los créditos se pueden usar con cualquier modelo o proveedor, permitiéndole usar flexiblemente diferentes servicios de IA.",step2Link:"Ir a la página de compra de créditos: https://openrouter.ai/settings/credits",step3Title:"Solicitar clave API",step3Description:"Finalmente, necesita crear una clave API para comenzar a usar los servicios de OpenRouter. La clave API es totalmente compatible con el formato OpenAI y se puede usar directamente.",step3Link:"Ir a la página de configuración de clave API: https://openrouter.ai/settings/keys",tipsTitle:"Consejos importantes",tip1:"⢠Por favor mantenga su clave API segura y no la comparta con otros",tip2:"⢠La clave API se puede usar inmediatamente después de su creación, no se necesita aprobación",tip3:"⢠Se recomienda verificar regularmente su saldo de créditos para asegurar el funcionamiento normal del servicio",tip4:"⢠OpenRouter soporta varios métodos de pago, incluyendo tarjetas de crédito",backToHome:"Volver al inicio"},polisGuide:{title:"GuÃa de uso de Polis",step1Title:"Ir a la página de inicio de Polis",step1Description:"Primero, por favor visite el sitio web oficial de Polis. Polis es una plataforma para recolectar y analizar opiniones públicas, ayudándole a entender diferentes perspectivas y realizar recolección de opiniones significativa.",step1Link:"Ir a la página de inicio de Polis: https://pol.is/home",step2Title:"Registrar cuenta e iniciar sesión",step2Description:"Si aún no tiene una cuenta de Polis, por favor regÃstrese primero para una nueva cuenta. Si ya tiene una cuenta, por favor inicie sesión directamente. Después de iniciar sesión, puede comenzar a crear y gestionar conversaciones.",step2Link:"Ir a la página de inicio de sesión/registro: https://pol.is/signin",step3Title:"Crear y gestionar conversaciones en el panel de Polis",step3Description:'Después de iniciar sesión, entrará al panel de Polis. Aquà puede crear nuevas conversaciones y gestionar las existentes. Haga clic en el botón "Create New Conversation" para comenzar a crear una nueva conversación.',step3Link:"Ir al panel de Polis: https://pol.is/",step4Title:"Publicar URL de recolección de opiniones y recolectar respuestas",step4Description:"Después de crear una conversación, puede obtener la URL de recolección de opiniones y compartirla con los participantes. Los participantes pueden acceder a la conversación a través de esta URL y proporcionar sus opiniones. También puede usar la función embed para incrustar la conversación en su sitio web, permitiendo que los participantes participen directamente en su sitio web.",step5Title:"Cambiar a la pestaña Reports y crear URL de informe",step5Description:'En la página de conversación, cambie a la pestaña "Reports". Aquà puede crear URLs de informe para ver los resultados de análisis y estadÃsticas de la conversación.',step6Title:"Entrar a la página de Informe",step6Description:"En la pestaña Reports, haga clic en el elemento Informe que desea ver. Después de hacer clic, aparecerá un enlace, luego haga clic en ese enlace para entrar a la página de Informe y ver los resultados de análisis detallados.",step7Title:"Descargar CSV de comentarios",step7Description:"En la página de Informe, desplácese hacia abajo para encontrar la opción de descarga. Verá un botón de descarga, haga clic en él para descargar un archivo CSV que contiene todos los comentarios (formato de nombre de archivo: conversation-id-comments.csv). Este archivo CSV contiene todos los datos de comentarios de la conversación y se puede usar para análisis adicional.",tipsTitle:"Consejos importantes",tip1:"⢠El archivo CSV descargado contiene todos los datos de comentarios de la conversación",tip2:"⢠Los archivos CSV se pueden importar a este sistema para análisis adicional",tip3:"⢠Asegúrese de tener permiso para acceder a la página de Informe de esa conversación",tip4:"⢠Si no puede encontrar el botón de descarga, por favor confirme que ha cambiado a la página de Informe correcta",backToHome:"Volver al inicio"},sensemakerGuide:{title:"GuÃa de uso de Sensemaker",step1Title:"Subir archivo original exportado desde Polis",step1Description:"Primero, por favor suba el archivo CSV descargado desde Polis. Este archivo contiene todos los datos de comentarios de los participantes y es la base para el análisis. Por favor asegúrese de que el formato del archivo sea correcto y contenga la información de campo necesaria.",step2Title:"Ingresar clave API OpenRouter",step2Description:"Ingrese su clave API OpenRouter en el campo correspondiente. Esta clave API se usa para conectarse a los servicios OpenRouter, permitiendo que el sistema use modelos de IA para el análisis. Por favor asegúrese de que la clave API sea correcta y válida.",step3Title:"Mantener el nombre del modelo como openai/gpt-oss-120b",step3Description:"El sistema usa el modelo <b>openai/gpt-oss-120b</b> por defecto para el análisis. Este es un modelo de alta calidad, reflexivo y asequible, muy adecuado para el análisis de opiniones. Se recomienda mantener esta configuración a menos que tenga requisitos especiales.",step3Tip:"Consejo: El campo del nombre del modelo está preestablecido en",step3TipCode:"openai/gpt-oss-120b",step3TipEnd:", generalmente no se necesita modificación.",step4Title:"Ingresar contexto adicional para optimizar el contexto de análisis del modelo de lenguaje",step4Description:"Opcionalmente puede ingresar información de contexto adicional, como el contexto del tema de conversación, descripciones de polÃticas relacionadas o puntos de análisis especÃficos. Esta información puede ayudar a los modelos de IA a entender más precisamente el contexto de los comentarios y proporcionar resultados de análisis más profundos.",step5Title:"Seleccionar idioma de salida",step5Description:'Seleccione el idioma que desea usar para el informe. Por ejemplo, después de seleccionar "Chino", el informe de análisis se presentará en chino, facilitándole leer y entender los resultados del análisis.',step6Title:"Iniciar análisis",step6Description:'Después de confirmar que todas las configuraciones son correctas, haga clic en el botón "Iniciar análisis". El sistema comenzará a procesar sus datos. Este proceso puede tomar unos minutos, por favor sea paciente. Puede ver información del progreso del análisis en la página.',step7Title:"Revisar y descargar informe Markdown",step7Description:"Una vez completado el análisis, el sistema generará un informe de análisis en formato Markdown. Puede previsualizar el contenido del informe en la página, y después de confirmar que es correcto, haga clic en el botón de descarga para guardar el informe en su computadora. El informe contiene resultados de análisis detallados, estadÃsticas y recomendaciones de insights.",tipsTitle:"Consejos importantes",tip1:"⢠Asegúrese de que el formato del archivo CSV sub
4ido sea correcto y contenga los campos necesarios",tip2:"⢠Por favor mantenga su clave API segura y no la comparta con otros",tip3:"⢠El proceso de análisis puede tomar unos minutos, por favor sea paciente y no cierre la página",tip4:"⢠Los informes Markdown descargados se pueden abrir con cualquier editor que soporte Markdown",tip5:"⢠Si el análisis falla, por favor verifique si la clave API es válida y si el saldo de créditos es suficiente",backToHome:"Volver al inicio"},footer:{description:"Una herramienta poderosa de integración de opiniones impulsada por IA, especÃficamente diseñada para analizar grandes volúmenes de datos de opinión y generar insights significativos.",communityLinks:"Enlaces de la comunidad",jigsawOriginalProject:"Proyecto original Jigsaw",officialDocs:"Documentación oficial",experimentalVersion:"Versión experimental",contactInfo:"Información de contacto",license:"CC-BY-SA.",sourceCode:"Código fuente",privacyPolicy:"PolÃtica de privacidad",selfHost:"Auto-alojamiento",termsOfService:"Términos de servicio"}},Fs=[{code:"zh-TW",name:"ç¹é«ä¸æ",flag:"ð¹ð¼"},{code:"zh-CN",name:"ç®ä½ä¸æ",flag:"ð¨ð³"},{code:"en",name:"English",flag:"ðºð¸"},{code:"ja",name:"æ¥æ¬èª",flag:"ð¯ðµ"},{code:"fr",name:"Français",flag:"ð«ð·"},{code:"es",name:"Español",flag:"ðªð¸"}],Xh=e=>{localStorage.setItem("locale",e),window.location.reload()},Nc=()=>{const e=localStorage.getItem("locale");if(e&&Fs.some(n=>n.code===e))return e;const t=navigator.languages||[navigator.language];for(const n of t){const s=n.toLowerCase();if(s.startsWith("zh"))return["zh","zh-cn","zh-sg","zh-my","zh-hans"].includes(s)?"zh-CN":"zh-TW";if(s.startsWith("en"))return"en";if(s.startsWith("ja"))return"ja";if(s.startsWith("fr"))return"fr";if(s.startsWith("es"))return"es"}return"zh-TW"},Qh={"zh-TW":Bh,"zh-CN":Wh,en:qh,ja:zh,fr:Gh,es:Yh},Mc=kh({locale:Nc(),fallbackLocale:"en",messages:Qh,globalInjection:!0,missingWarn:!1,fallbackWarn:!1}),Jh={class:"relative"},Zh={class:"text-lg"},eg={class:"text-sm font-medium"},tg={key:0,class:"absolute right-0 mt-2 w-48 bg-white border border-gray-300 rounded-lg shadow-lg z-50"},ng={class:"py-1"},sg=["onClick"],rg={class:"text-lg"},og={class:"text-sm"},Fc=Xt({__name:"LanguageSwitcher",setup(e){const t=ve(!1),n=Oe(()=>Nc()),s=Oe(()=>{const a=Fs.find(l=>l.code===n.value);return a?a.flag:"ð"}),r=Oe(()=>{const a=Fs.find(l=>l.code===n.value);return a?a.name:"Unknown"}),o=a=>{Xh(a),t.value=!1},i=a=>{a.target.closest(".relative")||(t.value=!1)};return dr(()=>{document.addEventListener("click",i)}),jn(()=>{document.removeEventListener("click",i)}),(a,l)=>(Ae(),Le("div",Jh,[v("button",{onClick:l[0]||(l[0]=c=>t.value=!t.value),class:"flex items-center space-x-2 px-3 py-2 rounded-lg border bg-black focus:outline-none focus:ring-2 focus:ring-democratic-red transition-colors text-white border-white hover:border-gray-300"},[v("span",Zh,H(s.value),1),v("span",eg,H(r.value),1),(Ae(),Le("svg",{class:Be(["w-4 h-4 transition-transform",{"rotate-180":t.value}]),fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[...l[1]||(l[1]=[v("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M19 9l-7 7-7-7"},null,-1)])],2))]),t.value?(Ae(),Le("div",tg,[v("div",ng,[(Ae(!0),Le(et,null,bl(j(Fs),c=>(Ae(),Le("button",{key:c.code,onClick:u=>o(c.code),class:Be(["w-full flex items-center space-x-3 px-4 py-2 text-left hover:bg-gray-100 transition-colors",{"bg-blue-50 text-blue-600":n.value===c.code,"text-gray-700":n.value!==c.code}])},[v("span",rg,H(c.flag),1),v("span",og,H(c.name),1)],10,sg))),128))])])):vn("",!0)]))}}),ig={id:"navbar",class:"bg-black text-white sticky top-0 z-10"},ag={class:"w-full px-4 md:mx-auto"},lg={class:"flex justify-between items-center h-16"},cg={class:"ml-2 text-xl font-bold"},ug={class:"hidden lg:flex items-center space-x-1 md:space-x-2 lg:space-x-6 xl:space-x-10"},dg={class:"flex items-center space-x-2"},pg={class:"lg:hidden bg-black border-t border-gray-700"},fg={class:"w-full px-4 py-3"},mg={class:"min-h-screen"},hg=Xt({__name:"App",setup(e){const t=ve(!1),n=Cf(),{t:s}=Hn(),r=()=>{t.value=!t.value};return qt(()=>n.path,()=>{window.scrollTo(0,0),t.value=!1}),(o,i)=>(Ae(),Le(et,null,[v("header",ig,[v("div",ag,[v("div",lg,[oe(j(pt),{to:"/",class:"flex items-center"},{default:$e(()=>[v("span",cg,H(j(s)("home.title")),1)]),_:1}),v("div",ug,[oe(j(pt),{to:"/",class:Be(["hover:text-democratic-red transition flex items-center gap-1",{"text-democratic-red":o.$route.path==="/"}])},{default:$e(()=>[i[5]||(i[5]=v("svg",{xmlns:"http://www.w3.org/2000/svg",class:"w-5 h-5",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor"},[v("path",{d:"M6.643 7.74195L11.578 5.22295C12.1571 4.92568 12.8439 4.92568 13.423 5.22295L18.358 7.74195C19.136 8.21167 19.57 9.0907 19.47 9.99395L19.5 14.9999C19.5 17.2091 17.7091 18.9999 15.5 18.9999H9.5C7.29086 18.9999 5.5 17.2091 5.5 14.9999L5.531 9.99995C5.42854 9.09464 5.86291 8.21262 6.643 7.74195Z","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round"}),v("path",{d:"M10.168 18.9999V16.6659C10.168 15.3769 11.213 14.3319 12.502 14.3319C13.7911 14.3319 14.836 15.3769 14.836 16.6659V18.9999","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round"})],-1)),v("span",null,H(j(s)("common.home")),1)]),_:1},8,["class"]),oe(j(pt),{to:"/about",class:Be(["hover:text-democratic-red transition flex items-center gap-1",{"text-democratic-red":o.$route.path==="/about"}])},{default:$e(()=>[i[6]||(i[6]=v("svg",{xmlns:"http://www.w3.org/2000/svg",class:"w-4 h-4",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor"},[v("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M13 16h-1v-4h-1m1-4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z"})],-1)),v("span",null,H(j(s)("common.about")),1)]),_:1},8,["class"]),oe(j(pt),{to:"/privacy",class:Be(["hover:text-democratic-red transition flex items-center gap-1",{"text-democratic-red":o.$route.path==="/privacy"}])},{default:$e(()=>[i[7]||(i[7]=v("svg",{xmlns:"http://www.w3.org/2000/svg",class:"w-4 h-4",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor"},[v("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M9 12l2 2 4-4m5.618-4.016A11.955 11.955 0 0112 2.944a11.955 11.955 0 01-8.618 3.04A12.02 12.02 0 003 9c0 5.591 3.824 10.29 9 11.622 5.176-1.332 9-6.03 9-11.622 0-1.042-.133-2.052-.382-3.016z"}
4)],-1)),v("span",null,H(j(s)("common.privacy")),1)]),_:1},8,["class"]),oe(j(pt),{to:"/maintain",class:Be(["hover:text-democratic-red transition flex items-center gap-1",{"text-democratic-red":o.$route.path==="/maintain"}])},{default:$e(()=>[i[8]||(i[8]=v("svg",{xmlns:"http://www.w3.org/2000/svg",class:"w-4 h-4",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor"},[v("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M10.325 4.317c.426-1.756 2.924-1.756 3.35 0a1.724 1.724 0 002.573 1.066c1.543-.94 3.31.826 2.37 2.37a1.724 1.724 0 001.065 2.572c1.756.426 1.756 2.924 0 3.35a1.724 1.724 0 00-1.066 2.573c.94 1.543-.826 3.31-2.37 2.37a1.724 1.724 0 00-2.572 1.065c-.426 1.756-2.924 1.756-3.35 0a1.724 1.724 0 00-2.573-1.066c-1.543.94-3.31-.826-2.37-2.37a1.724 1.724 0 00-1.065-2.572c-1.756-.426-1.756-2.924 0-3.35a1.724 1.724 0 001.066-2.573c-.94-1.543.826-3.31 2.37-2.37.996.608 2.296.07 2.572-1.065z"}),v("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M15 12a3 3 0 11-6 0 3 3 0 016 0z"})],-1)),v("span",null,H(j(s)("common.maintain")),1)]),_:1},8,["class"]),oe(j(pt),{to:"/self-host",class:Be(["hover:text-democratic-red transition flex items-center gap-1",{"text-democratic-red":o.$route.path==="/self-host"}])},{default:$e(()=>[i[9]||(i[9]=v("svg",{xmlns:"http://www.w3.org/2000/svg",class:"w-4 h-4",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor"},[v("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M19 21V5a2 2 0 00-2-2H7a2 2 0 00-2 2v16m14 0h2m-2 0h-5m-9 0H3m2 0h5M9 7h1m-1 4h1m4-4h1m-1 4h1m-5 10v-5a1 1 0 011-1h2a1 1 0 011 1v5m-4 0h4"})],-1)),v("span",null,H(j(s)("common.selfHost")),1)]),_:1},8,["class"])]),v("div",dg,[oe(Fc),v("button",{onClick:r,class:"lg:hidden text-white hover:text-democratic-red transition",title:"Menu",name:"Menu"},[...i[10]||(i[10]=[v("svg",{xmlns:"http://www.w3.org/2000/svg",class:"w-6 h-6",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor"},[v("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M4 6h16M4 12h16M4 18h16"})],-1)])])])])]),Rt(v("div",pg,[v("div",fg,[oe(j(pt),{to:"/",class:Be(["flex items-center gap-2 py-2 hover:text-democratic-red transition",{"text-democratic-red":o.$route.path==="/"}]),onClick:i[0]||(i[0]=a=>t.value=!1)},{default:$e(()=>[i[11]||(i[11]=v("svg",{xmlns:"http://www.w3.org/2000/svg",class:"w-4 h-4",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor"},[v("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M3 7v10a2 2 0 002 2h14a2 2 0 002-2V9a2 2 0 00-2-2H5a2 2 0 00-2-2z"}),v("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M8 5a2 2 0 012-2h4a2 2 0 012 2v6H8V5z"})],-1)),v("span",null,H(j(s)("common.home")),1)]),_:1},8,["class"]),oe(j(pt),{to:"/about",class:Be(["flex items-center gap-2 py-2 hover:text-democratic-red transition",{"text-democratic-red":o.$route.path==="/about"}]),onClick:i[1]||(i[1]=a=>t.value=!1)},{default:$e(()=>[i[12]||(i[12]=v("svg",{xmlns:"http://www.w3.org/2000/svg",class:"w-4 h-4",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor"},[v("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M13 16h-1v-4h-1m1-4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z"})],-1)),v("span",null,H(j(s)("common.about")),1)]),_:1},8,["class"]),oe(j(pt),{to:"/privacy",class:Be(["flex items-center gap-2 py-2 hover:text-democratic-red transition",{"text-democratic-red":o.$route.path==="/privacy"}]),onClick:i[2]||(i[2]=a=>t.value=!1)},{default:$e(()=>[i[13]||(i[13]=v("svg",{xmlns:"http://www.w3.org/2000/svg",class:"w-4 h-4",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor"},[v("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M9 12l2 2 4-4m5.618-4.016A11.955 11.955 0 0112 2.944a11.955 11.955 0 01-8.618 3.04A12.02 12.02 0 003 9c0 5.591 3.824 10.29 9 11.622 5.176-1.332 9-6.03 9-11.622 0-1.042-.133-2.052-.382-3.016z"})],-1)),v("span",null,H(j(s)("common.privacy")),1)]),_:1},8,["class"]),oe(j(pt),{to:"/maintain",class:Be(["flex items-center gap-2 py-2 hover:text-democratic-red transition",{"text-democratic-red":o.$route.path==="/maintain"}]),onClick:i[3]||(i[3]=a=>t.value=!1)},{default:$e(()=>[i[14]||(i[14]=v("svg",{xmlns:"http://www.w3.org/2000/svg",class:"w-4 h-4",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor"},[v("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M10.325 4.317c.426-1.756 2.924-1.756 3.35 0a1.724 1.724 0 002.573 1.066c1.543-.94 3.31.826 2.37 2.37a1.724 1.724 0 001.065 2.572c1.756.426 1.756 2.924 0 3.35a1.724 1.724 0 00-1.066 2.573c.94 1.543-.826 3.31-2.37 2.37a1.724 1.724 0 00-2.572 1.065c-.426 1.756-2.924 1.756-3.35 0a1.724 1.724 0 00-2.573-1.066c-1.543.94-3.31-.826-2.37-2.37a1.724 1.724 0 00-1.065-2.572c-1.756-.426-1.756-2.924 0-3.35a1.724 1.724 0 001.066-2.573c-.94-1.543.826-3.31 2.37-2.37.996.608 2.296.07 2.572-1.065z"}),v("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M15 12a3 3 0 11-6 0 3 3 0 016 0z"}
4)],-1)),v("span",null,H(j(s)("common.maintain")),1)]),_:1},8,["class"]),oe(j(pt),{to:"/self-host",class:Be(["flex items-center gap-2 py-2 hover:text-democratic-red transition",{"text-democratic-red":o.$route.path==="/self-host"}]),onClick:i[4]||(i[4]=a=>t.value=!1)},{default:$e(()=>[i[15]||(i[15]=v("svg",{xmlns:"http://www.w3.org/2000/svg",class:"w-4 h-4",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor"},[v("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M19 21V5a2 2 0 00-2-2H7a2 2 0 00-2 2v16m14 0h2m-2 0h-5m-9 0H3m2 0h5M9 7h1m-1 4h1m4-4h1m-1 4h1m-5 10v-5a1 1 0 011-1h2a1 1 0 011 1v5m-4 0h4"})],-1)),v("span",null,H(j(s)("common.selfHost")),1)]),_:1},8,["class"])])],512),[[Qd,t.value]])]),v("main",mg,[oe(j(sc))]),oe(Hh)],64))}}),Vc=(e,t)=>{const n=e.__vccOpts||e;for(const[s,r]of t)n[s]=r;return n},gg=Vc(hg,[["__scopeId","data-v-90cd2040"]]),bg="modulepreload",vg=function(e){return"/"+e},xa={},gn=function(t,n,s){let r=Promise.resolve();if(n&&n.length>0){let l=function(c){return Promise.all(c.map(u=>Promise.resolve(u).then(d=>({status:"fulfilled",value:d}),d=>({status:"rejected",reason:d}))))};document.getElementsByTagName("link");const i=document.querySelector("meta[property=csp-nonce]"),a=i?.nonce||i?.getAttribute("nonce");r=l(n.map(c=>{if(c=vg(c),c in xa)return;xa[c]=!0;const u=c.endsWith(".css"),d=u?'[rel="stylesheet"]':"";if(document.querySelector(`link[href="${c}"]${d}`))return;const m=document.createElement("link");if(m.rel=u?"stylesheet":bg,u||(m.as="script"),m.crossOrigin="",m.href=c,a&&m.setAttribute("nonce",a),document.head.appendChild(m),u)return new Promise((b,P)=>{m.addEventListener("load",b),m.addEventListener("error",()=>P(new Error(`Unable to preload CSS for ${c}`)))})}))}function o(i){const a=new Event("vite:preloadError",{cancelable:!0});if(a.payload=i,window.dispatchEvent(a),!a.defaultPrevented)throw i}return r.then(i=>{for(const a of i||[])a.status==="rejected"&&o(a.reason);return t().catch(o)})};function $o(){return{async:!1,breaks:!1,extensions:null,gfm:!0,hooks:null,pedantic:!1,renderer:null,silent:!1,tokenizer:null,walkTokens:null}}var Sn=$o();function Uc(e){Sn=e}var ls={exec:()=>null};function ce(e,t=""){let n=typeof e=="string"?e:e.source,s={replace:(r,o)=>{let i=typeof o=="string"?o:o.source;return i=i.replace(tt.caret,"$1"),n=n.replace(r,i),s},getRegex:()=>new RegExp(n,t)};return s}var yg=(()=>{try{return!!new RegExp("(?<=1)(?<!1)")}catch{return!1}})(),tt={codeRemoveIndent:/^(?: {1,4}| {0,3}\t)/gm,outputLinkReplace:/\\([\[\]])/g,indentCodeCompensation:/^(\s+)(?:```)/,beginningSpace:/^\s+/,endingHash:/#$/,startingSpaceChar:/^ /,endingSpaceChar:/ $/,nonSpaceChar:/[^ ]/,newLineCharGlobal:/\n/g,tabCharGlobal:/\t/g,multipleSpaceGlobal:/\s+/g,blankLine:/^[ \t]*$/,doubleBlankLine:/\n[ \t]*\n[ \t]*$/,blockquoteStart:/^ {0,3}>/,blockquoteSetextReplace:/\n {0,3}((?:=+|-+) *)(?=\n|$)/g,blockquoteSetextReplace2:/^ {0,3}>[ \t]?/gm,listReplaceTabs:/^\t+/,listReplaceNesting:/^ {1,4}(?=( {4})*[^ ])/g,listIsTask:/^\[[ xX]\] /,listReplaceTask:/^\[[ xX]\] +/,anyLine:/\n.*\n/,hrefBrackets:/^<(.*)>$/,tableDelimiter:/[:|]/,tableAlignChars:/^\||\| *$/g,tableRowBlankLine:/\n[ \t]*$/,tableAlignRight:/^ *-+: *$/,tableAlignCenter:/^ *:-+: *$/,tableAlignLeft:/^ *:-+ *$/,startATag:/^<a /i,endATag:/^<\/a>/i,startPreScriptTag:/^<(pre|code|kbd|script)(\s|>)/i,endPreScriptTag:/^<\/(pre|code|kbd|script)(\s|>)/i,startAngleBracket:/^</,endAngleBracket:/>$/,pedanticHrefTitle:/^([^'"]*[^\s])\s+(['"])(.*)\2/,unicodeAlphaNumeric:/[\p{L}\p{N}]/u,escapeTest:/[&<>"']/,escapeReplace:/[&<>"']/g,escapeTestNoEncode:/[<>"']|&(?!(#\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\w+);)/,escapeReplaceNoEncode:/[<>"']|&(?!(#\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\w+);)/g,unescapeTest:/&(#(?:\d+)|(?:#x[0-9A-Fa-f]+)|(?:\w+));?/ig,caret:/(^|[^\[])\^/g,percentDecode:/%25/g,findPipe:/\|/g,splitPipe:/ \|/,slashPipe:/\\\|/g,carriageReturn:/\r\n|\r/g,spaceLine:/^ +$/gm,notSpaceStart:/^\S*/,endingNewline:/\n$/,listItemRegex:e=>new RegExp(`^( {0,3}${e})((?:[ ][^\\n]*)?(?:\\n|$))`),nextBulletRegex:e=>new RegExp(`^ {0,${Math.min(3,e-1)}}(?:[*+-]|\\d{1,9}[.)])((?:[ ][^\\n]*)?(?:\\n|$))`),hrRegex:e=>new RegExp(`^ {0,${Math.min(3,e-1)}}((?:- *){3,}|(?:_ *){3,}|(?:\\* *){3,})(?:\\n+|$)`),fencesBeginRegex:e=>new RegExp(`^ {0,${Math.min(3,e-1)}}(?:\`\`\`|~~~)`),headingBeginRegex:e=>new RegExp(`^ {0,${Math.min(3,e-1)}}#`),htmlBeginRegex:e=>new RegExp(`^ {0,${Math.min(3,e-1)}}<(?:[a-z].*>|!--)`,"i")},kg=/^(?:[ \t]*(?:\n|$))+/,_g=/^((?: {4}| {0,3}\t)[^\n]+(?:\n(?:[ \t]*(?:\n|$))*)?)+/,wg=/^ {0,3}(`{3,}
vendor: 5,241 bytes, lines 4-5
4(?=[^`\n]*(?:\n|$))|~{3,})([^\n]*)(?:\n|$)(?:|([\s\S]*?)(?:\n|$))(?: {0,3}\1[~`]* *(?=\n|$)|$)/,_s=/^ {0,3}((?:-[\t ]*){3,}|(?:_[ \t]*){3,}|(?:\*[ \t]*){3,})(?:\n+|$)/,Tg=/^ {0,3}(#{1,6})(?=\s|$)(.*)(?:\n+|$)/,jo=/(?:[*+-]|\d{1,9}[.)])/,$c=/^(?!bull |blockCode|fences|blockquote|heading|html|table)((?:.|\n(?!\s*?\n|bull |blockCode|fences|blockquote|heading|html|table))+?)\n {0,3}(=+|-+) *(?:\n+|$)/,jc=ce($c).replace(/bull/g,jo).replace(/blockCode/g,/(?: {4}| {0,3}\t)/).replace(/fences/g,/ {0,3}(?:`{3,}|~{3,})/).replace(/blockquote/g,/ {0,3}>/).replace(/heading/g,/ {0,3}#{1,6}/).replace(/html/g,/ {0,3}<[^\n>]+>\n/).replace(/\|table/g,"").getRegex(),Sg=ce($c).replace(/bull/g,jo).replace(/blockCode/g,/(?: {4}| {0,3}\t)/).replace(/fences/g,/ {0,3}(?:`{3,}|~{3,})/).replace(/blockquote/g,/ {0,3}>/).replace(/heading/g,/ {0,3}#{1,6}/).replace(/html/g,/ {0,3}<[^\n>]+>\n/).replace(/table/g,/ {0,3}\|?(?:[:\- ]*\|)+[\:\- ]*\n/).getRegex(),Ko=/^([^\n]+(?:\n(?!hr|heading|lheading|blockquote|fences|list|html|table| +\n)[^\n]+)*)/,Pg=/^[^\n]+/,Ho=/(?!\s*\])(?:\\[\s\S]|[^\[\]\\])+/,xg=ce(/^ {0,3}\[(label)\]: *(?:\n[ \t]*)?([^<\s][^\s]*|<.*?>)(?:(?: +(?:\n[ \t]*)?| *\n[ \t]*)(title))? *(?:\n+|$)/).replace("label",Ho).replace("title",/(?:"(?:\\"?|[^"\\])*"|'[^'\n]*(?:\n[^'\n]+)*\n?'|\([^()]*\))/).getRegex(),Cg=ce(/^( {0,3}bull)([ \t][^\n]+?)?(?:\n|$)/).replace(/bull/g,jo).getRegex(),yr="address|article|aside|base|basefont|blockquote|body|caption|center|col|colgroup|dd|details|dialog|dir|div|dl|dt|fieldset|figcaption|figure|footer|form|frame|frameset|h[1-6]|head|header|hr|html|iframe|legend|li|link|main|menu|menuitem|meta|nav|noframes|ol|optgroup|option|p|param|search|section|summary|table|tbody|td|tfoot|th|thead|title|tr|track|ul",Bo=/<!--(?:-?>|[\s\S]*?(?:-->|$))/,Eg=ce("^ {0,3}(?:<(script|pre|style|textarea)[\\s>][\\s\\S]*?(?:</\\1>[^\\n]*\\n+|$)|comment[^\\n]*(\\n+|$)|<\\?[\\s\\S]*?(?:\\?>\\n*|$)|<![A-Z][\\s\\S]*?(?:>\\n*|$)|<!\\[CDATA\\[[\\s\\S]*?(?:\\]\\]>\\n*|$)|</?(tag)(?: +|\\n|/?>)[\\s\\S]*?(?:(?:\\n[ ]*)+\\n|$)|<(?!script|pre|style|textarea)([a-z][\\w-]*)(?:attribute)*? */?>(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n[ ]*)+\\n|$)|</(?!script|pre|style|textarea)[a-z][\\w-]*\\s*>(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n[ ]*)+\\n|$))","i").replace("comment",Bo).replace("tag",yr).replace("attribute",/ +[a-zA-Z:_][\w.:-]*(?: *= *"[^"\n]*"| *= *'[^'\n]*'| *= *[^\s"'=<>`]+)?/).getRegex(),Kc=ce(Ko).replace("hr",_s).replace("heading"," {0,3}#{1,6}(?:\\s|$)").replace("|lheading","").replace("|table","").replace("blockquote"," {0,3}>").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)]) ").replace("html","</?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|textarea|!--)").replace("tag",yr).getRegex(),Rg=ce(/^( {0,3}> ?(paragraph|[^\n]*)(?:\n|$))+/).replace("paragraph",Kc).getRegex(),Wo={blockquote:Rg,code:_g,def:xg,fences:wg,heading:Tg,hr:_s,html:Eg,lheading:jc,list:Cg,newline:kg,paragraph:Kc,table:ls,text:Pg},Ca=ce("^ *([^\\n ].*)\\n {0,3}((?:\\| *)?:?-+:? *(?:\\| *:?-+:? *)*(?:\\| *)?)(?:\\n((?:(?! *\\n|hr|heading|blockquote|code|fences|list|html).*(?:\\n|$))*)\\n*|$)").replace("hr",_s).replace("heading"," {0,3}#{1,6}(?:\\s|$)").replace("blockquote"," {0,3}>").replace("code","(?: {4}| {0,3} )[^\\n]").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)]) ").replace("html","</?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|textarea|!--)").replace("tag",yr).getRegex(),Ag={...Wo,lheading:Sg,table:Ca,paragraph:ce(Ko).replace("hr",_s).replace("heading"," {0,3}#{1,6}(?:\\s|$)").replace("|lheading","").replace("table",Ca).replace("blockquote"," {0,3}>").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)]) ").replace("html","</?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|textarea|!--)").replace("tag",yr).getRegex()},Ig={...Wo,html:ce(`^ *(?:comment *(?:\\n|\\s*$)|<(tag)[\\s\\S]+?</\\1> *(?:\\n{2,}|\\s*$)|<tag(?:"[^"]*"|'[^']*'|\\s[^'"/>\\s]*)*?/?> *(?:\\n{2,}|\\s*$))`).replace("comment",Bo).replace(/tag/g,"(?!(?:a|em|strong|small|s|cite|q|dfn|abbr|data|time|code|var|samp|kbd|sub|sup|i|b|u|mark|ruby|rt|rp|bdi|bdo|span|br|wbr|ins|del|img)\\b)\\w+(?!:|[^\\w\\s@]*@)\\b").getRegex(),def:/^ *\[([^\]]+)\]: *<?([^\s>]+)>?(?: +(["(][^\n]+[")]))? *(?:\n+|$)/,heading:/^(#{1,6})(.*)(?:\n+|$)/,fences:ls,lheading:/^(.+?)\n {0,3}(=+|-+) *(?:\n+|$)/,paragraph:ce(Ko).replace("hr",_s).replace("heading",` *#{1,6} *[^ 5]`).replace("lheading",jc).replace("|table","").replace("blockquote"," {0,3}>").replace("|fences","").replace("|list","").replace("|html","").replace("|tag","").getRegex()},Lg=/^\\([!"#$%&'()*+,\-./:;<=>?@\[\]\\^_`{|}~])/,Og=/^(`+)([^`]|[^`][\s\S]*?[^`])\1(?!`)/,Hc=/^( {2,}|\\)\n(?!\s*$)/,Dg=/^(`+|[^`])(?:(?= {2,}\n)|[\s\S]*?(?:(?=[\\<!\[`*_]|\b_|$)|[^ ](?= {2,}\n)))/,kr=/[\p{P}\p{S}]/u,qo=/[\s\p{P}\p{S}]/u,Bc=/[^\s\p{P}\p{S}]/u,Ng=ce(/^((?![*_])punctSpace)/,"u").replace(/punctSpace/g,qo).getRegex(),Wc=/(?!~)[\p{P}\p{S}]/u,Mg=/(?!~)[\s\p{P}\p{S}]/u,Fg=/(?:[^\s\p{P}\p{S}]|~)/u,Vg=ce(/link|precode-code|html/,"g").replace("link",/\[(?:[^\[\]`]|(?<a>`+)[^`]+\k<a>(?!`))*?\]\((?:\\[\s\S]|[^\\\(\)]|\((?:\\[\s\S]|[^\\\(\)])*\))*\)/).replace("prec
vendor: 11,971 bytes, lines 5-29
5ode-",yg?"(?<!`)()":"(^^|[^`])").replace("code",/(?<b>`+)[^`]+\k<b>(?!`)/).replace("html",/<(?! )[^<>]*?>/).getRegex(),qc=/^(?:\*+(?:((?!\*)punct)|[^\s*]))|^_+(?:((?!_)punct)|([^\s_]))/,Ug=ce(qc,"u").replace(/punct/g,kr).getRegex(),$g=ce(qc,"u").replace(/punct/g,Wc).getRegex(),zc="^[^_*]*?__[^_*]*?\\*[^_*]*?(?=__)|[^*]+(?=[^*])|(?!\\*)punct(\\*+)(?=[\\s]|$)|notPunctSpace(\\*+)(?!\\*)(?=punctSpace|$)|(?!\\*)punctSpace(\\*+)(?=notPunctSpace)|[\\s](\\*+)(?!\\*)(?=punct)|(?!\\*)punct(\\*+)(?!\\*)(?=punct)|notPunctSpace(\\*+)(?=notPunctSpace)",jg=ce(zc,"gu").replace(/notPunctSpace/g,Bc).replace(/punctSpace/g,qo).replace(/punct/g,kr).getRegex(),Kg=ce(zc,"gu").replace(/notPunctSpace/g,Fg).replace(/punctSpace/g,Mg).replace(/punct/g,Wc).getRegex(),Hg=ce("^[^_*]*?\\*\\*[^_*]*?_[^_*]*?(?=\\*\\*)|[^_]+(?=[^_])|(?!_)punct(_+)(?=[\\s]|$)|notPunctSpace(_+)(?!_)(?=punctSpace|$)|(?!_)punctSpace(_+)(?=notPunctSpace)|[\\s](_+)(?!_)(?=punct)|(?!_)punct(_+)(?!_)(?=punct)","gu").replace(/notPunctSpace/g,Bc).replace(/punctSpace/g,qo).replace(/punct/g,kr).getRegex(),Bg=ce(/\\(punct)/,"gu").replace(/punct/g,kr).getRegex(),Wg=ce(/^<(scheme:[^\s\x00-\x1f<>]*|email)>/).replace("scheme",/[a-zA-Z][a-zA-Z0-9+.-]{1,31}/).replace("email",/[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+(@)[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)+(?![-_])/).getRegex(),qg=ce(Bo).replace("(?:-->|$)","-->").getRegex(),zg=ce("^comment|^</[a-zA-Z][\\w:-]*\\s*>|^<[a-zA-Z][\\w-]*(?:attribute)*?\\s*/?>|^<\\?[\\s\\S]*?\\?>|^<![a-zA-Z]+\\s[\\s\\S]*?>|^<!\\[CDATA\\[[\\s\\S]*?\\]\\]>").replace("comment",qg).replace("attribute",/\s+[a-zA-Z:_][\w.:-]*(?:\s*=\s*"[^"]*"|\s*=\s*'[^']*'|\s*=\s*[^\s"'=<>`]+)?/).getRegex(),Zs=/(?:\[(?:\\[\s\S]|[^\[\]\\])*\]|\\[\s\S]|`+[^`]*?`+(?!`)|[^\[\]\\`])*?/,Gg=ce(/^!?\[(label)\]\(\s*(href)(?:(?:[ \t]*(?:\n[ \t]*)?)(title))?\s*\)/).replace("label",Zs).replace("href",/<(?:\\.|[^\n<>\\])+>|[^ \t\n\x00-\x1f]*/).replace("title",/"(?:\\"?|[^"\\])*"|'(?:\\'?|[^'\\])*'|\((?:\\\)?|[^)\\])*\)/).getRegex(),Gc=ce(/^!?\[(label)\]\[(ref)\]/).replace("label",Zs).replace("ref",Ho).getRegex(),Yc=ce(/^!?\[(ref)\](?:\[\])?/).replace("ref",Ho).getRegex(),Yg=ce("reflink|nolink(?!\\()","g").replace("reflink",Gc).replace("nolink",Yc).getRegex(),Ea=/[hH][tT][tT][pP][sS]?|[fF][tT][pP]/,zo={_backpedal:ls,anyPunctuation:Bg,autolink:Wg,blockSkip:Vg,br:Hc,code:Og,del:ls,emStrongLDelim:Ug,emStrongRDelimAst:jg,emStrongRDelimUnd:Hg,escape:Lg,link:Gg,nolink:Yc,punctuation:Ng,reflink:Gc,reflinkSearch:Yg,tag:zg,text:Dg,url:ls},Xg={...zo,link:ce(/^!?\[(label)\]\((.*?)\)/).replace("label",Zs).getRegex(),reflink:ce(/^!?\[(label)\]\s*\[([^\]]*)\]/).replace("label",Zs).getRegex()},ao={...zo,emStrongRDelimAst:Kg,emStrongLDelim:$g,url:ce(/^((?:protocol):\/\/|www\.)(?:[a-zA-Z0-9\-]+\.?)+[^\s<]*|^email/).replace("protocol",Ea).replace("email",/[A-Za-z0-9._+-]+(@)[a-zA-Z0-9-_]+(?:\.[a-zA-Z0-9-_]*[a-zA-Z0-9])+(?![-_])/).getRegex(),_backpedal:/(?:[^?!.,:;*_'"~()&]+|\([^)]*\)|&(?![a-zA-Z0-9]+;$)|[?!.,:;*_'"~)]+(?!$))+/,del:/^(~~?)(?=[^\s~])((?:\\[\s\S]|[^\\])*?(?:\\[\s\S]|[^\s~\\]))\1(?=[^~]|$)/,text:ce(/^([`~]+|[^`~])(?:(?= {2,}\n)|(?=[a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-]+@)|[\s\S]*?(?:(?=[\\<!\[`*~_]|\b_|protocol:\/\/|www\.|$)|[^ ](?= {2,}\n)|[^a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-](?=[a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-]+@)))/).replace("protocol",Ea).getRegex()},Qg={...ao,br:ce(Hc).replace("{2,}","*").getRegex(),text:ce(ao.text).replace("\\b_","\\b_| {2,}\\n").replace(/\{2,\}/g,"*").getRegex()},Es={normal:Wo,gfm:Ag,pedantic:Ig},Yn={normal:zo,gfm:ao,breaks:Qg,pedantic:Xg},Jg={"&":"&","<":"<",">":">",'"':""","'":"'"},Ra=e=>Jg[e];function At(e,t){if(t){if(tt.escapeTest.test(e))return e.replace(tt.escapeReplace,Ra)}else if(tt.escapeTestNoEncode.test(e))return e.replace(tt.escapeReplaceNoEncode,Ra);return e}function Aa(e){try{e=encodeURI(e).replace(tt.percentDecode,"%")}catch{return null}return e}function Ia(e,t){let n=e.replace(tt.findPipe,(o,i,a)=>{let l=!1,c=i;for(;--c>=0&&a[c]==="\\";)l=!l;return l?"|":" |"}),s=n.split(tt.splitPipe),r=0;if(s[0].trim()||s.shift(),s.length>0&&!s.at(-1)?.trim()&&s.pop(),t)if(s.length>t)s.splice(t);else for(;s.length<t;)s.push("");for(;r<s.length;r++)s[r]=s[r].trim().replace(tt.slashPipe,"|");return s}function Xn(e,t,n){let s=e.length;if(s===0)return"";let r=0;for(;r<s&&e.charAt(s-r-1)===t;)r++;return e.slice(0,s-r)}function Zg(e,t){if(e.indexOf(t[1])===-1)return-1;let n=0;for(let s=0;s<e.length;s++)if(e[s]==="\\")s++;else if(e[s]===t[0])n++;else if(e[s]===t[1]&&(n--,n<0))return s;return n>0?-2:-1}function La(e,t,n,s,r){let o=t.href,i=t.title||null,a=e[1].replace(r.other.outputLinkReplace,"$1");s.state.inLink=!0;let l={type:e[0].charAt(0)==="!"?"image":"link",raw:n,href:o,title:i,text:a,tokens:s.inlineTokens(a)};return s.state.inLink=!1,l}function eb(e,t,n){let s=e.match(n.other.indentCodeCompensation);if(s===null)return t;let r=s[1];return t.split(` 6`).map(o=>{let i=o.match(n.other.beginningSpace);if(i===null)return o;let[a]=i;return a.length>=r.length?o.slice(r.length):o}).join(` 7`)}var er=class{constructor(e){he(this,"options");he(this,"rules");he(this,"lexer");this.options=e||Sn}space(e){let t=this.rules.block.newline.exec(e);if(t&&t[0].length>0)return{type:"space",raw:t[0]}}code(e){let t=this.rules.block.code.exec(e);if(t){let n=t[0].replace(this.rules.other.codeRemoveIndent,"");return{type:"code",raw:t[0],codeBlockStyle:"indented",text:this.options.pedantic?n:Xn(n,` 8`)}}}fences(e){let t=this.rules.block.fences.exec(e);if(t){let n=t[0],s=eb(n,t[3]||"",this.rules);return{type:"code",raw:n,lang:t[2]?t[2].trim().replace(this.rules.inline.anyPunctuation,"$1"):t[2],text:s}}}heading(e){let t=this.rules.block.heading.exec(e);if(t){let n=t[2].trim();if(this.rules.other.endingHash.test(n)){let s=Xn(n,"#");(this.options.pedantic||!s||this.rules.other.endingSpaceChar.test(s))&&(n=s.trim())}return{type:"heading",raw:t[0],depth:t[1].length,text:n,tokens:this.lexer.inline(n)}}}hr(e){let t=this.rules.block.hr.exec(e);if(t)return{type:"hr",raw:Xn(t[0],` 9`)}}blockquote(e){let t=this.rules.block.blockquote.exec(e);if(t){let n=Xn(t[0],` 10`).split(` 11`),s="",r="",o=[];for(;n.length>0;){let i=!1,a=[],l;for(l=0;l<n.length;l++)if(this.rules.other.blockquoteStart.test(n[l]))a.push(n[l]),i=!0;else if(!i)a.push(n[l]);else break;n=n.slice(l);let c=a.join(` 12`),u=c.replace(this.rules.other.blockquoteSetextReplace,` 13 $1`).replace(this.rules.other.blockquoteSetextReplace2,"");s=s?`${s} 14${c}`:c,r=r?`${r} 15${u}`:u;let d=this.lexer.state.top;if(this.lexer.state.top=!0,this.lexer.blockTokens(u,o,!0),this.lexer.state.top=d,n.length===0)break;let m=o.at(-1);if(m?.type==="code")break;if(m?.type==="blockquote"){let b=m,P=b.raw+` 16`+n.join(` 17`),x=this.blockquote(P);o[o.length-1]=x,s=s.substring(0,s.length-b.raw.length)+x.raw,r=r.substring(0,r.length-b.text.length)+x.text;break}else if(m?.type==="list"){let b=m,P=b.raw+` 18`+n.join(` 19`),x=this.list(P);o[o.length-1]=x,s=s.substring(0,s.length-m.raw.length)+x.raw,r=r.substring(0,r.length-b.raw.length)+x.raw,n=P.substring(o.at(-1).raw.length).split(` 20`);continue}}return{type:"blockquote",raw:s,tokens:o,text:r}}}list(e){let t=this.rules.block.list.exec(e);if(t){let n=t[1].trim(),s=n.length>1,r={type:"list",raw:"",ordered:s,start:s?+n.slice(0,-1):"",loose:!1,items:[]};n=s?`\\d{1,9}\\${n.slice(-1)}`:`\\${n}`,this.options.pedantic&&(n=s?n:"[*+-]");let o=this.rules.other.listItemRegex(n),i=!1;for(;e;){let l=!1,c="",u="";if(!(t=o.exec(e))||this.rules.block.hr.test(e))break;c=t[0],e=e.substring(c.length);let d=t[2].split(` 21`,1)[0].replace(this.rules.other.listReplaceTabs,A=>" ".repeat(3*A.length)),m=e.split(` 22`,1)[0],b=!d.trim(),P=0;if(this.options.pedantic?(P=2,u=d.trimStart()):b?P=t[1].length+1:(P=t[2].search(this.rules.other.nonSpaceChar),P=P>4?1:P,u=d.slice(P),P+=t[1].length),b&&this.rules.other.blankLine.test(m)&&(c+=m+` 23`,e=e.substring(m.length+1),l=!0),!l){let A=this.rules.other.nextBulletRegex(P),$=this.rules.other.hrRegex(P),k=this.rules.other.fencesBeginRegex(P),_=this.rules.other.headingBeginRegex(P),I=this.rules.other.htmlBeginRegex(P);for(;e;){let L=e.split(` 24`,1)[0],U;if(m=L,this.options.pedantic?(m=m.replace(this.rules.other.listReplaceNesting," "),U=m):U=m.replace(this.rules.other.tabCharGlobal," "),k.test(m)||_.test(m)||I.test(m)||A.test(m)||$.test(m))break;if(U.search(this.rules.other.nonSpaceChar)>=P||!m.trim())u+=` 25`+U.slice(P);else{if(b||d.replace(this.rules.other.tabCharGlobal," ").search(this.rules.other.nonSpaceChar)>=4||k.test(d)||_.test(d)||$.test(d))break;u+=` 26`+m}!b&&!m.trim()&&(b=!0),c+=L+` 27`,e=e.substring(L.length+1),d=U.slice(P)}}r.loose||(i?r.loose=!0:this.rules.other.doubleBlankLine.test(c)&&(i=!0));let x=null,F;this.options.gfm&&(x=this.rules.other.listIsTask.exec(u),x&&(F=x[0]!=="[ ] ",u=u.replace(this.rules.other.listReplaceTask,""))),r.items.push({type:"list_item",raw:c,task:!!x,checked:F,loose:!1,text:u,tokens:[]}),r.raw+=c}let a=r.items.at(-1);if(a)a.raw=a.raw.trimEnd(),a.text=a.text.trimEnd();else return;r.raw=r.raw.trimEnd();for(let l=0;l<r.items.length;l++)if(this.lexer.state.top=!1,r.items[l].tokens=this.lexer.blockTokens(r.items[l].text,[]),!r.loose){let c=r.items[l].tokens.filter(d=>d.type==="space"),u=c.length>0&&c.some(d=>this.rules.other.anyLine.test(d.raw));r.loose=u}if(r.loose)for(let l=0;l<r.items.length;l++)r.items[l].loose=!0;return r}}html(e){let t=this.rules.block.html.exec(e);if(t)return{type:"html",block:!0,raw:t[0],pre:t[1]==="pre"||t[1]==="script"||t[1]==="style",text:t[0]}}def(e){let t=this.rules.block.def.exec(e);if(t){let n=t[1].toLowerCase().replace(this.rules.other.multipleSpaceGlobal," "),s=t[2]?t[2].replace(this.rules.other.hrefBrackets,"$1").replace(this.rules.inline.anyPunctuation,"$1"):"",r=t[3]?t[3].substring(1,t[3].length-1).replace(this.rules.inline.anyPunctuation,"$1"):t[3];return{type:"def",tag:n,raw:t[0],href:s,title:r}}}table(e){let t=this.rules.block.table.exec(e);if(!t||!this.rules.other.tableDelimiter.test(t[2]))return;let n=Ia(t[1]),s=t[2].replace(this.rules.other.tableAlignChars,"").split("|"),r=t[3]?.trim()?t[3].replace(this.rules.other.tableRowBlankLine,"").split(` 28`):[],o={type:"table",raw:t[0],header:[],align:[],rows:[]};if(n.length===s.length){for(let i of s)this.rules.other.tableAlignRight.test(i)?o.align.push("right"):this.rules.other.tableAlignCenter.test(i)?o.align.push("center"):this.rules.other.tableAlignLeft.test(i)?o.align.push("left"):o.align.push(null);for(let i=0;i<n.length;i++)o.header.push({text:n[i],tokens:this.lexer.inline(n[i]),header:!0,align:o.align[i]});for(let i of r)o.rows.push(Ia(i,o.header.length).map((a,l)=>({text:a,tokens:this.lexer.inline(a),header:!1,align:o.align[l]})));return o}}lheading(e){let t=this.rules.block.lheading.exec(e);if(t)return{type:"heading",raw:t[0],depth:t[2].charAt(0)==="="?1:2,text:t[1],tokens:this.lexer.inline(t[1])}}paragraph(e){let t=this.rules.block.paragraph.exec(e);if(t){let n=t[1].charAt(t[1].length-1)===` 29`?t[1].slice(0,-1):t[1];return{type:"paragraph",raw:t[0],text:n,tokens:this.lexer.inline(n)}}}text(e){let t=this.rules.block.text.exec(e);if(t)return{type:"text",raw:t[0],text:t[0],tokens:this.lexer.inline(t[0])}}escape(e){let t=this.rules.inline.escape.exec(e);if(t)return{type:"escape",raw:t[0],text:t[1]}}tag(e){let t=this.rules.inline.tag.exec(e);if(t)return!this.lexer.state.inLink&&this.rules.other.startATag.test(t[0])?this.lexer.state.inLink=!0:this.lexer.state.inLink&&this.rules.other.endATag.test(t[0])&&(this.lexer.state.inLink=!1),!this.lexer.state.inRawBlock&&this.rules.other.startPreScriptTag.test(t[0])?this.lexer.state.inRawBlock=!0:this.lexer.state.inRawBlock&&this.rules.other.endPreScriptTag.test(t[0])&&(this.lexer.state.inRawBlock=!1),{type:"html",raw:t[0],inLink:this.lexer.state.inLink,inRawBlock:this.lexer.state.inRawBlock,block:!1,text:t[0]}}link(e){let t=this.rules.inline.link.exec(e);if(t){let n=t[2].trim();if(!this.options.pedantic&&this.rules.other.startAngleBracket.test(n)){if
vendor: 8,692 bytes, lines 29-43
29(!this.rules.other.endAngleBracket.test(n))return;let o=Xn(n.slice(0,-1),"\\");if((n.length-o.length)%2===0)return}else{let o=Zg(t[2],"()");if(o===-2)return;if(o>-1){let i=(t[0].indexOf("!")===0?5:4)+t[1].length+o;t[2]=t[2].substring(0,o),t[0]=t[0].substring(0,i).trim(),t[3]=""}}let s=t[2],r="";if(this.options.pedantic){let o=this.rules.other.pedanticHrefTitle.exec(s);o&&(s=o[1],r=o[3])}else r=t[3]?t[3].slice(1,-1):"";return s=s.trim(),this.rules.other.startAngleBracket.test(s)&&(this.options.pedantic&&!this.rules.other.endAngleBracket.test(n)?s=s.slice(1):s=s.slice(1,-1)),La(t,{href:s&&s.replace(this.rules.inline.anyPunctuation,"$1"),title:r&&r.replace(this.rules.inline.anyPunctuation,"$1")},t[0],this.lexer,this.rules)}}reflink(e,t){let n;if((n=this.rules.inline.reflink.exec(e))||(n=this.rules.inline.nolink.exec(e))){let s=(n[2]||n[1]).replace(this.rules.other.multipleSpaceGlobal," "),r=t[s.toLowerCase()];if(!r){let o=n[0].charAt(0);return{type:"text",raw:o,text:o}}return La(n,r,n[0],this.lexer,this.rules)}}emStrong(e,t,n=""){let s=this.rules.inline.emStrongLDelim.exec(e);if(!(!s||s[3]&&n.match(this.rules.other.unicodeAlphaNumeric))&&(!(s[1]||s[2])||!n||this.rules.inline.punctuation.exec(n))){let r=[...s[0]].length-1,o,i,a=r,l=0,c=s[0][0]==="*"?this.rules.inline.emStrongRDelimAst:this.rules.inline.emStrongRDelimUnd;for(c.lastIndex=0,t=t.slice(-1*e.length+r);(s=c.exec(t))!=null;){if(o=s[1]||s[2]||s[3]||s[4]||s[5]||s[6],!o)continue;if(i=[...o].length,s[3]||s[4]){a+=i;continue}else if((s[5]||s[6])&&r%3&&!((r+i)%3)){l+=i;continue}if(a-=i,a>0)continue;i=Math.min(i,i+a+l);let u=[...s[0]][0].length,d=e.slice(0,r+s.index+u+i);if(Math.min(r,i)%2){let b=d.slice(1,-1);return{type:"em",raw:d,text:b,tokens:this.lexer.inlineTokens(b)}}let m=d.slice(2,-2);return{type:"strong",raw:d,text:m,tokens:this.lexer.inlineTokens(m)}}}}codespan(e){let t=this.rules.inline.code.exec(e);if(t){let n=t[2].replace(this.rules.other.newLineCharGlobal," "),s=this.rules.other.nonSpaceChar.test(n),r=this.rules.other.startingSpaceChar.test(n)&&this.rules.other.endingSpaceChar.test(n);return s&&r&&(n=n.substring(1,n.length-1)),{type:"codespan",raw:t[0],text:n}}}br(e){let t=this.rules.inline.br.exec(e);if(t)return{type:"br",raw:t[0]}}del(e){let t=this.rules.inline.del.exec(e);if(t)return{type:"del",raw:t[0],text:t[2],tokens:this.lexer.inlineTokens(t[2])}}autolink(e){let t=this.rules.inline.autolink.exec(e);if(t){let n,s;return t[2]==="@"?(n=t[1],s="mailto:"+n):(n=t[1],s=n),{type:"link",raw:t[0],text:n,href:s,tokens:[{type:"text",raw:n,text:n}]}}}url(e){let t;if(t=this.rules.inline.url.exec(e)){let n,s;if(t[2]==="@")n=t[0],s="mailto:"+n;else{let r;do r=t[0],t[0]=this.rules.inline._backpedal.exec(t[0])?.[0]??"";while(r!==t[0]);n=t[0],t[1]==="www."?s="http://"+t[0]:s=t[0]}return{type:"link",raw:t[0],text:n,href:s,tokens:[{type:"text",raw:n,text:n}]}}}inlineText(e){let t=this.rules.inline.text.exec(e);if(t){let n=this.lexer.state.inRawBlock;return{type:"text",raw:t[0],text:t[0],escaped:n}}}},kt=class lo{constructor(t){he(this,"tokens");he(this,"options");he(this,"state");he(this,"tokenizer");he(this,"inlineQueue");this.tokens=[],this.tokens.links=Object.create(null),this.options=t||Sn,this.options.tokenizer=this.options.tokenizer||new er,this.tokenizer=this.options.tokenizer,this.tokenizer.options=this.options,this.tokenizer.lexer=this,this.inlineQueue=[],this.state={inLink:!1,inRawBlock:!1,top:!0};let n={other:tt,block:Es.normal,inline:Yn.normal};this.options.pedantic?(n.block=Es.pedantic,n.inline=Yn.pedantic):this.options.gfm&&(n.block=Es.gfm,this.options.breaks?n.inline=Yn.breaks:n.inline=Yn.gfm),this.tokenizer.rules=n}static get rules(){return{block:Es,inline:Yn}}static lex(t,n){return new lo(n).lex(t)}static lexInline(t,n){return new lo(n).inlineTokens(t)}lex(t){t=t.replace(tt.carriageReturn,` 30`),this.blockTokens(t,this.tokens);for(let n=0;n<this.inlineQueue.length;n++){let s=this.inlineQueue[n];this.inlineTokens(s.src,s.tokens)}return this.inlineQueue=[],this.tokens}blockTokens(t,n=[],s=!1){for(this.options.pedantic&&(t=t.replace(tt.tabCharGlobal," ").replace(tt.spaceLine,""));t;){let r;if(this.options.extensions?.block?.some(i=>(r=i.call({lexer:this},t,n))?(t=t.substring(r.raw.length),n.push(r),!0):!1))continue;if(r=this.tokenizer.space(t)){t=t.substring(r.raw.length);let i=n.at(-1);r.raw.length===1&&i!==void 0?i.raw+=` 31`:n.push(r);continue}if(r=this.tokenizer.code(t)){t=t.substring(r.raw.length);let i=n.at(-1);i?.type==="paragraph"||i?.type==="text"?(i.raw+=(i.raw.endsWith(` 32`)?"":` 33`)+r.raw,i.text+=` 34`+r.text,this.inlineQueue.at(-1).src=i.text):n.push(r);continue}if(r=this.tokenizer.fences(t)){t=t.substring(r.raw.length),n.push(r);continue}if(r=this.tokenizer.heading(t)){t=t.substring(r.raw.length),n.push(r);continue}if(r=this.tokenizer.hr(t)){t=t.substring(r.raw.length),n.push(r);continue}if(r=this.tokenizer.blockquote(t)){t=t.substring(r.raw.length),n.push(r);continue}if(r=this.tokenizer.list(t)){t=t.substring(r.raw.length),n.push(r);continue}if(r=this.tokenizer.html(t)){t=t.substring(r.raw.length),n.push(r);continue}if(r=this.tokenizer.def(t)){t=t.substring(r.raw.length);let i=n.at(-1);i?.type==="paragraph"||i?.type==="text"?(i.raw+=(i.raw.endsWith(` 35`)?"":` 36`)+r.raw,i.text+=` 37`+r.raw,this.inlineQueue.at(-1).src=i.text):this.tokens.links[r.tag]||(this.tokens.links[r.tag]={href:r.href,title:r.title},n.push(r));continue}if(r=this.tokenizer.table(t)){t=t.substring(r.raw.length),n.push(r);continue}if(r=this.tokenizer.lheading(t)){t=t.substring(r.raw.length),n.push(r);continue}let o=t;if(this.options.extensions?.startBlock){let i=1/0,a=t.slice(1),l;this.options.extensions.startBlock.forEach(c=>{l=c.call({lexer:this},a),typeof l=="number"&&l>=0&&(i=Math.min(i,l))}),i<1/0&&i>=0&&(o=t.substring(0,i+1))}if(this.state.top&&(r=this.tokenizer.paragraph(o))){let i=n.at(-1);s&&i?.type==="paragraph"?(i.raw+=(i.raw.endsWith(` 38`)?"":` 39`)+r.raw,i.text+=` 40`+r.text,this.inlineQueue.pop(),this.inlineQueue.at(-1).src=i.text):n.push(r),s=o.length!==t.length,t=t.substring(r.raw.length);continue}if(r=this.tokenizer.text(t)){t=t.substring(r.raw.length);let i=n.at(-1);i?.type==="text"?(i.raw+=(i.raw.endsWith(` 41`)?"":` 42`)+r.raw,i.text+=` 43`+r.text,this.inlineQueue.pop(),this.inlineQueue.at(-1).src=i.text):n.push(r);continue}if(t){let i="Infinite loop on byte: "+t.charCodeAt(0);if(this.options.silent){console.error(i);break}else throw new Error(i)}}return this.state.top=!0,n}inline(t,n=[]){return this.inlineQueue.push({src:t,tokens:n}),n}inlineTokens(t,n=[]){let s=t,r=null;if(this.tokens.links){let l=Object.keys(this.tokens.links);if(l.length>0)for(;(r=this.tokenizer.rules.inline.reflinkSearch.exec(s))!=null;)l.includes(r[0].slice(r[0].lastIndexOf("[")+1,-1))&&(s=s.slice(0,r.index)+"["+"a".repeat(r[0].length-2)+"]"+s.slice(this.tokenizer.rules.inline.reflinkSearch.lastIndex))}for(;(r=this.tokenizer.rules.inline.anyPunctuation.exec(s))!=null;)s=s.slice(0,r.index)+"++"+s.slice(this.tokenizer.rules.inline.anyPunctuation.lastIndex);let o;for(;(r=this.tokenizer.rules.inline.blockSkip.exec(s))!=null;)o=r[2]?r[2].length:0,s=s.slice(0,r.index+o)+"["+"a".repeat(r[0].length-o-2)+"]"+s.slice(this.tokenizer.rules.inline.blockSkip.lastIndex);s=this.options.hooks?.emStrongMask?.call({lexer:this},s)??s;let i=!1,a="";for(;t;){i||(a=""),i=!1;let l;if(this.options.extensions?.inline?.some(u=>(l=u.call({lexer:this},t,n))?(t=t.substring(l.raw.length),n.push(l),!0):!1))continue;if(l=this.tokenizer.escape(t)){t=t.substring(l.raw.length),n.push(l);continue}if(l=this.tokenizer.tag(t)){t=t.substring(l.raw.length),n.push(l);continue}if(l=this.tokenizer.link(t)){t=t.substring(l.raw.length),n.push(l);continue}if(l=this.tokenizer.reflink(t,this.tokens.links)){t=t.substring(l.raw.length);let u=n.at(-1);l.type==="text"&&u?.type==="text"?(u.raw+=l.raw,u.text+=l.text):n.push(l);continue}if(l=this.tokenizer.emStrong(t,s,a)){t=t.substring(l.raw.length),n.push(l);continue}if(l=this.tokenizer.codespan(t)){t=t.substring(l.raw.length),n.push(l);continue}if(l=this.tokenizer.br(t)){t=t.substring(l.raw.length),n.push(l);continue}if(l=this.tokenizer.del(t)){t=t.substring(l.raw.length),n.push(l);continue}if(l=this.tokenizer.autolink(t)){t=t.substring(l.raw.length),n.push(l);continue}if(!this.state.inLink&&(l=this.tokenizer.url(t))){t=t.substring(l.raw.length),n.push(l);continue}let c=t;if(this.options.extensions?.startInline){let u=1/0,d=t.slice(1),m;this.options.extensions.startInline.forEach(b=>{m=b.call({lexer:this},d),typeof m=="number"&&m>=0&&(u=Math.min(u,m))}),u<1/0&&u>=0&&(c=t.substring(0,u+1))}if(l=this.tokenizer.inlineText(c)){t=t.substring(l.raw.length),l.raw.slice(-1)!=="_"&&(a=l.raw.slice(-1)),i=!0;let u=n.at(-1);
vendor: 5,305 bytes, lines 43-62
43u?.type==="text"?(u.raw+=l.raw,u.text+=l.text):n.push(l);continue}if(t){let u="Infinite loop on byte: "+t.charCodeAt(0);if(this.options.silent){console.error(u);break}else throw new Error(u)}}return n}},tr=class{constructor(e){he(this,"options");he(this,"parser");this.options=e||Sn}space(e){return""}code({text:e,lang:t,escaped:n}){let s=(t||"").match(tt.notSpaceStart)?.[0],r=e.replace(tt.endingNewline,"")+` 44`;return s?'<pre><code class="language-'+At(s)+'">'+(n?r:At(r,!0))+`</code></pre> 45`:"<pre><code>"+(n?r:At(r,!0))+`</code></pre> 46`}blockquote({tokens:e}){return`<blockquote> 47${this.parser.parse(e)}</blockquote> 48`}html({text:e}){return e}def(e){return""}heading({tokens:e,depth:t}){return`<h${t}>${this.parser.parseInline(e)}</h${t}> 49`}hr(e){return`<hr> 50`}list(e){let t=e.ordered,n=e.start,s="";for(let i=0;i<e.items.length;i++){let a=e.items[i];s+=this.listitem(a)}let r=t?"ol":"ul",o=t&&n!==1?' start="'+n+'"':"";return"<"+r+o+`> 51`+s+"</"+r+`> 52`}listitem(e){let t="";if(e.task){let n=this.checkbox({checked:!!e.checked});e.loose?e.tokens[0]?.type==="paragraph"?(e.tokens[0].text=n+" "+e.tokens[0].text,e.tokens[0].tokens&&e.tokens[0].tokens.length>0&&e.tokens[0].tokens[0].type==="text"&&(e.tokens[0].tokens[0].text=n+" "+At(e.tokens[0].tokens[0].text),e.tokens[0].tokens[0].escaped=!0)):e.tokens.unshift({type:"text",raw:n+" ",text:n+" ",escaped:!0}):t+=n+" "}return t+=this.parser.parse(e.tokens,!!e.loose),`<li>${t}</li> 53`}checkbox({checked:e}){return"<input "+(e?'checked="" ':"")+'disabled="" type="checkbox">'}paragraph({tokens:e}){return`<p>${this.parser.parseInline(e)}</p> 54`}table(e){let t="",n="";for(let r=0;r<e.header.length;r++)n+=this.tablecell(e.header[r]);t+=this.tablerow({text:n});let s="";for(let r=0;r<e.rows.length;r++){let o=e.rows[r];n="";for(let i=0;i<o.length;i++)n+=this.tablecell(o[i]);s+=this.tablerow({text:n})}return s&&(s=`<tbody>${s}</tbody>`),`<table> 55<thead> 56`+t+`</thead> 57`+s+`</table> 58`}tablerow({text:e}){return`<tr> 59${e}</tr> 60`}tablecell(e){let t=this.parser.parseInline(e.tokens),n=e.header?"th":"td";return(e.align?`<${n} align="${e.align}">`:`<${n}>`)+t+`</${n}> 61`}strong({tokens:e}){return`<strong>${this.parser.parseInline(e)}</strong>`}em({tokens:e}){return`<em>${this.parser.parseInline(e)}</em>`}codespan({text:e}){return`<code>${At(e,!0)}</code>`}br(e){return"<br>"}del({tokens:e}){return`<del>${this.parser.parseInline(e)}</del>`}link({href:e,title:t,tokens:n}){let s=this.parser.parseInline(n),r=Aa(e);if(r===null)return s;e=r;let o='<a href="'+e+'"';return t&&(o+=' title="'+At(t)+'"'),o+=">"+s+"</a>",o}image({href:e,title:t,text:n,tokens:s}){s&&(n=this.parser.parseInline(s,this.parser.textRenderer));let r=Aa(e);if(r===null)return At(n);e=r;let o=`<img src="${e}" alt="${n}"`;return t&&(o+=` title="${At(t)}"`),o+=">",o}text(e){return"tokens"in e&&e.tokens?this.parser.parseInline(e.tokens):"escaped"in e&&e.escaped?e.text:At(e.text)}},Go=class{strong({text:e}){return e}em({text:e}){return e}codespan({text:e}){return e}del({text:e}){return e}html({text:e}){return e}text({text:e}){return e}link({text:e}){return""+e}image({text:e}){return""+e}br(){return""}},_t=class co{constructor(t){he(this,"options");he(this,"renderer");he(this,"textRenderer");this.options=t||Sn,this.options.renderer=this.options.renderer||new tr,this.renderer=this.options.renderer,this.renderer.options=this.options,this.renderer.parser=this,this.textRenderer=new Go}static parse(t,n){return new co(n).parse(t)}static parseInline(t,n){return new co(n).parseInline(t)}parse(t,n=!0){let s="";for(let r=0;r<t.length;r++){let o=t[r];if(this.options.extensions?.renderers?.[o.type]){let a=o,l=this.options.extensions.renderers[a.type].call({parser:this},a);if(l!==!1||!["space","hr","heading","code","table","blockquote","list","html","def","paragraph","text"].includes(a.type)){s+=l||"";continue}}let i=o;switch(i.type){case"space":{s+=this.renderer.space(i);continue}case"hr":{s+=this.renderer.hr(i);continue}case"heading":{s+=this.renderer.heading(i);continue}case"code":{s+=this.renderer.code(i);continue}case"table":{s+=this.renderer.table(i);continue}case"blockquote":{s+=this.renderer.blockquote(i);continue}case"list":{s+=this.renderer.list(i);continue}case"html":{s+=this.renderer.html(i);continue}case"def":{s+=this.renderer.def(i);continue}case"paragraph":{s+=this.renderer.paragraph(i);continue}case"text":{let a=i,l=this.renderer.text(a);for(;r+1<t.length&&t[r+1].type==="text";)a=t[++r],l+=` 62`+this.renderer.text(a);n?s+=this.renderer.paragraph({type:"paragraph",raw:l,text:l,tokens:[{type:"text",raw:l,text:l,escaped:!0}]}):s+=l;continue}default:{let a='Token with "'+i.type+'" type was not found.';if(this.options.silent)return console.error(a),"";throw new Error(a)}}}return s}parseInline(t,n=this.renderer){let s="";for(let r=0;r<t.length;r++){let o=t[r];if(this.options.extensions?.renderers?.[o.type]){let a=this.options.extensions.renderers[o.type].call({parser:this},o);if(a!==!1||!["escape","html","link","image","strong","em","codespan","br","del","text"].includes(o.type)){s+=a||"";continue}}let i=o;switch(i.type){case"escape":{s+=n.text(i);break}case"html":{s+=n.html(i);break}case"link":{s+=n.link(i);break}case"image":{s+=n.image(i);break}case"strong":{s+=n.strong(i);break}case"em":{s+=n.em(i);break}case"codespan":{s+=n.codespan(i);break}
vendor: 8,367 bytes, lines 62-63
62case"br":{s+=n.br(i);break}case"del":{s+=n.del(i);break}case"text":{s+=n.text(i);break}default:{let a='Token with "'+i.type+'" type was not found.';if(this.options.silent)return console.error(a),"";throw new Error(a)}}}return s}},Rs,Jn=(Rs=class{constructor(e){he(this,"options");he(this,"block");this.options=e||Sn}preprocess(e){return e}postprocess(e){return e}processAllTokens(e){return e}emStrongMask(e){return e}provideLexer(){return this.block?kt.lex:kt.lexInline}provideParser(){return this.block?_t.parse:_t.parseInline}},he(Rs,"passThroughHooks",new Set(["preprocess","postprocess","processAllTokens","emStrongMask"])),he(Rs,"passThroughHooksRespectAsync",new Set(["preprocess","postprocess","processAllTokens"])),Rs),tb=class{constructor(...e){he(this,"defaults",$o());he(this,"options",this.setOptions);he(this,"parse",this.parseMarkdown(!0));he(this,"parseInline",this.parseMarkdown(!1));he(this,"Parser",_t);he(this,"Renderer",tr);he(this,"TextRenderer",Go);he(this,"Lexer",kt);he(this,"Tokenizer",er);he(this,"Hooks",Jn);this.use(...e)}walkTokens(e,t){let n=[];for(let s of e)switch(n=n.concat(t.call(this,s)),s.type){case"table":{let r=s;for(let o of r.header)n=n.concat(this.walkTokens(o.tokens,t));for(let o of r.rows)for(let i of o)n=n.concat(this.walkTokens(i.tokens,t));break}case"list":{let r=s;n=n.concat(this.walkTokens(r.items,t));break}default:{let r=s;this.defaults.extensions?.childTokens?.[r.type]?this.defaults.extensions.childTokens[r.type].forEach(o=>{let i=r[o].flat(1/0);n=n.concat(this.walkTokens(i,t))}):r.tokens&&(n=n.concat(this.walkTokens(r.tokens,t)))}}return n}use(...e){let t=this.defaults.extensions||{renderers:{},childTokens:{}};return e.forEach(n=>{let s={...n};if(s.async=this.defaults.async||s.async||!1,n.extensions&&(n.extensions.forEach(r=>{if(!r.name)throw new Error("extension name required");if("renderer"in r){let o=t.renderers[r.name];o?t.renderers[r.name]=function(...i){let a=r.renderer.apply(this,i);return a===!1&&(a=o.apply(this,i)),a}:t.renderers[r.name]=r.renderer}if("tokenizer"in r){if(!r.level||r.level!=="block"&&r.level!=="inline")throw new Error("extension level must be 'block' or 'inline'");let o=t[r.level];o?o.unshift(r.tokenizer):t[r.level]=[r.tokenizer],r.start&&(r.level==="block"?t.startBlock?t.startBlock.push(r.start):t.startBlock=[r.start]:r.level==="inline"&&(t.startInline?t.startInline.push(r.start):t.startInline=[r.start]))}"childTokens"in r&&r.childTokens&&(t.childTokens[r.name]=r.childTokens)}),s.extensions=t),n.renderer){let r=this.defaults.renderer||new tr(this.defaults);for(let o in n.renderer){if(!(o in r))throw new Error(`renderer '${o}' does not exist`);if(["options","parser"].includes(o))continue;let i=o,a=n.renderer[i],l=r[i];r[i]=(...c)=>{let u=a.apply(r,c);return u===!1&&(u=l.apply(r,c)),u||""}}s.renderer=r}if(n.tokenizer){let r=this.defaults.tokenizer||new er(this.defaults);for(let o in n.tokenizer){if(!(o in r))throw new Error(`tokenizer '${o}' does not exist`);if(["options","rules","lexer"].includes(o))continue;let i=o,a=n.tokenizer[i],l=r[i];r[i]=(...c)=>{let u=a.apply(r,c);return u===!1&&(u=l.apply(r,c)),u}}s.tokenizer=r}if(n.hooks){let r=this.defaults.hooks||new Jn;for(let o in n.hooks){if(!(o in r))throw new Error(`hook '${o}' does not exist`);if(["options","block"].includes(o))continue;let i=o,a=n.hooks[i],l=r[i];Jn.passThroughHooks.has(o)?r[i]=c=>{if(this.defaults.async&&Jn.passThroughHooksRespectAsync.has(o))return(async()=>{let d=await a.call(r,c);return l.call(r,d)})();let u=a.call(r,c);return l.call(r,u)}:r[i]=(...c)=>{if(this.defaults.async)return(async()=>{let d=await a.apply(r,c);return d===!1&&(d=await l.apply(r,c)),d})();let u=a.apply(r,c);return u===!1&&(u=l.apply(r,c)),u}}s.hooks=r}if(n.walkTokens){let r=this.defaults.walkTokens,o=n.walkTokens;s.walkTokens=function(i){let a=[];return a.push(o.call(this,i)),r&&(a=a.concat(r.call(this,i))),a}}this.defaults={...this.defaults,...s}}),this}setOptions(e){return this.defaults={...this.defaults,...e},this}lexer(e,t){return kt.lex(e,t??this.defaults)}parser(e,t){return _t.parse(e,t??this.defaults)}parseMarkdown(e){return(t,n)=>{let s={...n},r={...this.defaults,...s},o=this.onError(!!r.silent,!!r.async);if(this.defaults.async===!0&&s.async===!1)return o(new Error("marked(): The async option was set to true by an extension. Remove async: false from the parse options object to return a Promise."));if(typeof t>"u"||t===null)return o(new Error("marked(): input parameter is undefined or null"));if(typeof t!="string")return o(new Error("marked(): input parameter is of type "+Object.prototype.toString.call(t)+", string expected"));if(r.hooks&&(r.hooks.options=r,r.hooks.block=e),r.async)return(async()=>{let i=r.hooks?await r.hooks.preprocess(t):t,a=await(r.hooks?await r.hooks.provideLexer():e?kt.lex:kt.lexInline)(i,r),l=r.hooks?await r.hooks.processAllTokens(a):a;r.walkTokens&&await Promise.all(this.walkTokens(l,r.walkTokens));let c=await(r.hooks?await r.hooks.provideParser():e?_t.parse:_t.parseInline)(l,r);return r.hooks?await r.hooks.postprocess(c):c})().catch(o);try{r.hooks&&(t=r.hooks.preprocess(t));let i=(r.hooks?r.hooks.provideLexer():e?kt.lex:kt.lexInline)(t,r);r.hooks&&(i=r.hooks.processAllTokens(i)),r.walkTokens&&this.walkTokens(i,r.walkTokens);let a=(r.hooks?r.hooks.provideParser():e?_t.parse:_t.parseInline)(i,r);return r.hooks&&(a=r.hooks.postprocess(a)),a}catch(i){return o(i)}}}onError(e,t){return n=>{if(n.message+=` 63Please report this to https://github.com/markedjs/marked.`,e){let s="<p>An error occurred:</p><pre>"+At(n.message+"",!0)+"</pre>";return t?Promise.resolve(s):s}if(t)return Promise.reject(n);throw n}}},wn=new tb;function me(e,t){return wn.parse(e,t)}me.options=me.setOptions=function(e){return wn.setOptions(e),me.defaults=wn.defaults,Uc(me.defaults),me};me.getDefaults=$o;me.defaults=Sn;me.use=function(...e){return wn.use(...e),me.defaults=wn.defaults,Uc(me.defaults),me};me.walkTokens=function(e,t){return wn.walkTokens(e,t)};me.parseInline=wn.parseInline;me.Parser=_t;me.parser=_t.parse;me.Renderer=tr;me.TextRenderer=Go;me.Lexer=kt;me.lexer=kt.lex;me.Tokenizer=er;me.Hooks=Jn;me.parse=me;me.options;me.setOptions;me.use;me.walkTokens;me.parseInline;_t.parse;kt.lex;const nb={class:"relative bg-white rounded-lg shadow-2xl max-w-4xl w-full mx-4 max-h-[90vh] overflow-y-auto"},sb={class:"p-8"},rb={class:"text-2xl font-bold text-gray-900 mb-6 text-center"},ob={class:"text-gray-700 mb-3 text-sm text-center"},ib={href:"https://github.com/bestian/sensemaking-tools",target:"_blank",rel:"noopener noreferrer",class:"text-blue-600 hover:text-blue-800 hover:underline"},ab={href:"https://www.vtaiwan.tw/uber-x-report",target:"_blank",rel:"noopener noreferrer",class:"text-blue-600 hover:text-blue-800 hover:underline"},lb={class:"w-fit ml-auto mb-6"},cb={class:"flex flex-col md:flex-row gap-6 mb-6"},ub={class:"flex-1 bg-gray-50 rounded-lg p-6 hover:shadow-md transition-shadow"},db={class:"text-lg font-semibold text-gray-900 mb-2 text-center"},pb={class:"text-gray-700 mb-3 text-sm text-left"},fb={class:"text-center"},mb={class:"flex-1 bg-gray-50 rounded-lg p-6 hover:shadow-md transition-shadow"},hb={class:"text-lg font-semibold text-gray-900 mb-2 text-center"},gb={class:"text-gray-700 mb-3 text-sm text-left"},bb={class:"text-center"},vb={class:"flex-1 bg-gray-50 rounded-lg p-6 hover:shadow-md transition-shadow"},yb={class:"text-lg font-semibold text-gray-900 mb-2 text-center"},kb={class:"text-gray-700 mb-3 text-sm text-left"},_b={class:"text-center"},wb={class:"bg-blue-50 border border-blue-200 rounded-lg p-4 mb-6"},Tb={class:"text-sm text-blue-800 text-center"},Sb={class:"flex flex-col sm:flex-row justify-between items-center gap-4 pt-6 border-t border-gray-200"},Pb={class:"flex items-center cursor-pointer"},xb={class:"text-sm text-gray-700"},Cb={class:"min-h-screen bg-gray-50 py-8"},Eb={class:"max-w-4xl mx-auto px-4 sm:px-6 lg:px-8"},Rb={class:"bg-white rounded-lg shadow-lg p-8 mb-6"},Ab={class:"text-3xl font-bold text-center text-gray-900 mb-8"},Ib={class:"space-y-2"},Lb={for:"file",class:"block text-sm font-medium text-gray-700"},Ob={class:"space-y-2"},Db={for:"apiKey",class:"block text-sm font-medium text-gray-700"},Nb={href:"https://openrouter.ai/keys",target:"_blank",rel:"noopener noreferrer",class:"ml-2 text-blue-600 hover:text-blue-800 hover:underline text-xs font-normal"},Mb={class:"relative"}
63,Fb=["type","placeholder"],Vb=["aria-label","title"],Ub={key:0,class:"h-5 w-5",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","aria-hidden":"true"},$b={key:1,class:"h-5 w-5",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","aria-hidden":"true"},jb={class:"text-xs text-gray-600 space-y-1"},Kb={class:"italic"},Hb={class:"text-blue-600"},Bb={class:"font-medium"},Wb={class:"space-y-2"},qb={for:"model",class:"block text-sm font-medium text-gray-700"},zb=["placeholder"],Gb={class:"text-xs text-gray-600 space-y-1"},Yb={class:"italic"},Xb={class:"text-orange-600 font-medium"},Qb={class:"text-blue-600 font-medium"},Jb={class:"text-blue-600"},Zb={href:"https://openrouter.ai/models",target:"_blank",rel:"noopener noreferrer",class:"hover:underline"},ev={class:"space-y-2"},tv={for:"additionalContext",class:"block text-sm font-medium text-gray-700"},nv={class:"text-gray-500 text-sm italic"},sv=["placeholder"],rv={class:"space-y-2"},ov={for:"outputLang",class:"block text-sm font-medium text-gray-700"},iv={value:"en"},av={value:"zh-TW"},lv={value:"zh-CN"},cv={value:"ja"},uv={value:"fr"},dv={value:"es"},pv={class:"bg-yellow-50 border border-yellow-200 rounded-lg p-4 mb-4"},fv={class:"flex items-start gap-2"},mv={class:"text-yellow-800 text-sm leading-relaxed"},hv={class:"space-y-3"},gv={class:"block text-sm font-medium text-gray-700"},bv={class:"space-y-2"},vv={class:"flex items-center"},yv={class:"text-sm text-gray-700"},kv={class:"flex items-center"},_v={class:"text-sm text-gray-700"},wv={class:"flex items-center"},Tv={class:"text-sm text-gray-700"},Sv={key:0,class:"ml-6 space-y-2"},Pv={for:"customRetryCount",class:"block text-sm font-medium text-gray-700"},xv={class:"text-xs text-gray-600"},Cv=["disabled"],Ev={key:0,class:"bg-blue-50 border border-blue-200 rounded-lg p-6 mb-6"},Rv={class:"text-lg font-semibold text-blue-900 mb-4"},Av={class:"grid grid-cols-1 md:grid-cols-2 gap-4 text-blue-800 mb-4"},Iv={class:"bg-blue-100 p-3 rounded-md"},Lv={class:"font-medium text-blue-800"},Ov={class:"bg-blue-100 p-3 rounded-md"},Dv={class:"font-medium text-blue-800"},Nv={class:"bg-blue-100 p-3 rounded-md"},Mv={class:"font-medium text-blue-800"},Fv={class:"bg-blue-100 p-3 rounded-md"},Vv={class:"font-medium text-blue-800"},Uv={class:"flex justify-center items-center p-3 bg-blue-100 rounded-md"},$v={class:"text-blue-800"},jv={key:0,class:"text-center p-3 bg-orange-100 rounded-md mt-3"},Kv={class:"text-orange-800"},Hv={key:1,class:"flex flex-col gap-4"},Bv=["innerHTML"],Wv={key:1},qv={class:"flex flex-wrap gap-3 mt-6"},zv=Xt({__name:"HomeView",setup(e){const{t}=Hn(),n=ve(!1),s=ve(!1);qt(n,()=>{document.body.style.overflow=n.value?"hidden":""}),ef(()=>{n.value=!1});const r=ve(""),o=ve(!1),i=ve("openai/gpt-oss-120b"),a=ve(""),l=ve("zh-TW"),c=ve(null),u=ve(!1),d=ve([]),m=ve("normal"),b=ve(3),P=ve(0),x=ve(3),F=ve(null),A=ve(null),$=ve(null),k=ve(null),_=ve(!1),I=ve({taskId:"",status:"",estimatedTime:"",commentsCount:0,model:""}),L=ve(""),U=ve(""),G=new Set,z=ve(!1),ae=()=>{switch(m.value){case"strict":x.value=1;break;case"normal":x.value=3;break;case"custom":x.value=Math.max(1,b.value);break}},Re=()=>{c.value&&(F.value={apiKey:r.value,model:i.value,file:c.value,additionalContext:a.value,outputLang:l.value})},ee=async()=>{if(!F.value)return console.error("æ²æå²åçéè©¦æ¸æ"),null;console.log(`ð é試第 ${P.value} 次 (æå¤§ ${x.value} 次)`);try{const y=new FormData;y.append("file",F.value.file);const C="https://sensemaker-backend.bestian123.workers.dev/api/sensemake";y.append("openRouterModel",F.value.model),F.value.apiKey.trim()&&y.append("openRouterApiKey",F.value.apiKey.trim()),F.value.additionalContext.trim()&&y.append("additionalContext",F.value.additionalContext.trim()),F.value.outputLang!=="en"&&y.append("outputLang",F.value.outputLang);const D=await fetch(C,{method:"POST",body:y}
63),N=await D.json();if(D.status===401){const Y=N.message||t("home.invalidApiKey")||"Invalid API Key";return ue(Y,"error"),null}return D.ok&&N.success?N.taskId:(ue(`${t("home.retryFailed")} (${D.status}): 64${JSON.stringify(N,null,2)}`,"error"),null)}catch(y){const C=y instanceof Error?y.message:String(y);return ue(`${t("home.retryError")}: 65${C}`,"error"),null}},we=y=>{const C=y.target;C.files&&C.files[0]&&(c.value=C.files[0])},vt=async()=>{if(be(),A.value=null,d.value.length=0,!c.value){ue(t("home.selectFileFirst"),"error");return}P.value=0,Re(),u.value=!0,U.value="",Se(!1);try{const y=new FormData;y.append("file",c.value);const C="https://sensemaker-backend.bestian123.workers.dev/api/sensemake";y.append("openRouterModel",i.value),r.value.trim()&&y.append("openRouterApiKey",r.value.trim()),a.value.trim()&&y.append("additionalContext",a.value.trim()),l.value!=="en"&&y.append("outputLang",l.value);const D=await fetch(C,{method:"POST",body:y}),N=await D.json();if(D.status===401){console.log(N.message);const Y=t("home.invalidApiKey");ue(Y,"error"),_.value=!1;return}if(D.ok&&N.success)A.value=N.taskId,I.value={taskId:N.taskId,status:N.status,estimatedTime:N.estimatedTime,commentsCount:N.commentsCount||0,model:N.model||i.value},_.value=!0,He(N.taskId);else if(D.status===500&&m.value!=="strict"){console.log("â 500 é¯èª¤ï¼éå§é試æ©å¶");let Y=null,h=0;for(;h<x.value&&!Y;)h++,P.value=h,console.log(`ð é試第 ${h} 次 (æå¤§ ${x.value} 次)`),Y=await ee(),!Y&&h<x.value&&await new Promise(g=>setTimeout(g,2e3));Y?(A.value=Y,I.value={taskId:Y,status:"processing",estimatedTime:"N/A",commentsCount:0,model:i.value},_.value=!0,He(Y)):ue(`${t("home.allRetriesFailed")}`,"error")}else ue(`${t("home.requestFailed")} (${D.status}): 66${JSON.stringify(N,null,2)}`,"error")}catch(y){const C=y instanceof Error?y.message:String(y);if(m.value!=="strict"){console.log("â è«æ±é¯èª¤ï¼éå§é試æ©å¶");let D=null,N=0;for(;N<x.value&&!D;)N++,P.value=N,console.log(`ð é試第 ${N} 次 (æå¤§ ${x.value} 次)`),D=await ee(),!D&&N<x.value&&await new Promise(Y=>setTimeout(Y,2e3));D?(A.value=D,I.value={taskId:D,status:"processing",estimatedTime:"N/A",commentsCount:0,model:i.value},_.value=!0,He(D)):ue(`${t("home.allRetriesFailed")}`,"error")}else ue(`${t("home.requestError")}: 67${C}`,"error")}finally{u.value=!1}},He=y=>{be(),k.value=window.setTimeout(()=>{k.value=null,A.value===y&&(console.log("éå§è¼ªè©¢ä»»åçµæ..."),$.value=setInterval(async()=>{await re(y)},60*1e3),re(y))},180*1e3),ne(t("home.taskInQueue"))},be=()=>{k.value!==null&&(clearTimeout(k.value),k.value=null),$.value!==null&&(clearInterval($.value),$.value=null)},re=async y=>{if(A.value===y){console.log("checkTaskResult",y);try{const C=await fetch(`https://sensemaker-backend.bestian123.workers.dev/api/sensemake/result/${y}`),D=await C.json();if(A.value!==y)return;if(C.ok&&D.success)D.status==="completed"?(be(),_.value=!1,G.has(y)||(G.add(y),Ge(D))):ne(`${t("home.taskProcessing")} (${new Date().toLocaleTimeString()})`);else if(C.status===404)ne(`${t("home.taskProcessing")} (${new Date().toLocaleTimeString()})`);else if(C.status===500){if(console.error("â ä»»åèç失æ (500):",D),ue(xe({taskId:D.taskId,failedAt:D.failedAt,message:D.message,error:D.error}),"error",!0),$.value&&(clearInterval($.value),$.value=null),_.value=!1,m.value!=="strict"&&F.value&&P.value<x.value){console.log("â 輪詢éå° 500 é¯èª¤ï¼éå§é試æ©å¶");let N=!1,Y=P.value;for(;Y<x.value&&!N;){Y++,P.value=Y,console.log(`ð é試第 ${Y} 次 (æå¤§ ${x.value} 次)`);const h=await ee();h?(A.value=h,I.value={taskId:h,status:"processing",estimatedTime:"N/A",commentsCount:0,model:F.value.model},_.value=!0,He(h),N=!0):Y<x.value&&await new Promise(g=>setTimeout(g,2e3))}N||ue(t("home.allRetriesFailed"),"error")}}else $.value&&(clearInterval($.value),$.value=null),ue(`${t("home.requestFailed")}: 68${JSON.stringify(D,null,2)}`,"error"),_.value=!1}catch(C){const D=C instanceof Error?C.message:String(C);if(console.error("â è¼ªè©¢è«æ±é¯èª¤:",D),m.value!=="strict"&&F.value&&P.value<x.value){console.log("â 輪詢éå°ç¶²çµ¡é¯èª¤ï¼éå§é試æ©å¶"),ue(`${t("home.requestError")} - ${t("home.retryingRequest")}`,"info");let N=!1,Y=P.value;for(;Y<x.value&&!N;){Y++,P.value=Y,console.log(`ð é試第 ${Y} 次 (æå¤§ ${x.value} 次)`);const h=await ee();h?(A.value=h,I.value={taskId:h,status:"processing",estimatedTime:"N/A",commentsCount:0,model:F.value.model},_.value=!0,He(h),N=!0):Y<x.value&&await new Promise(g=>setTimeout(g,2e3))}N||ue(`${t("home.allRetriesFailed")}`,"error")}else ne(`${t("home.requestError")}: ${D} (${new Date().toLocaleTimeString()})`)}}},ne=y=>{L.value=y},Ge=y=>{U.value=y.summary||"",Se(y.summary?.trim().length>0);const C=me.parse(y.summary||""),D=` 69 <h2>${t("home.taskCompleted")}</h2> 70 <div style="margin-bottom: 1em;"> 71 <p><strong>ð ${t("home.commentsProcessed",{count:y.commentsProcessed||"N/A"})}</strong></p> 72 <p><strong>ð¤ ${t("home.model")}:</strong> ${y.model||"N/A"}</p> 73 <p><strong>â° ${t("home.completedAt")}:</strong>
73 ${new Date(y.completedAt).toLocaleString("zh-TW")}</p> 74 </div> 75 <hr style="margin: 1.5em 0; border: none; border-top: 1px solid #ddd;"> 76 <h3>ð ${t("home.summary")}:</h3> 77 <div class="markdown-content"> 78 ${C} 79 </div> 80 `;ue(D,"success",!0)},ue=(y,C,D=!1)=>{d.value.push({type:C,isHtml:D,content:y})};function xe({taskId:y,failedAt:C,message:D,error:N}){return` 81 <h2>${t("home.taskFailed")}</h2> 82 <div> 83 <p><strong>${t("home.taskId")}:</strong> ${y}</p> 84 <p><strong>${t("home.failedAt")}:</strong> ${new Date(C).toLocaleString("zh-TW")}</p> 85 <p><strong>${t("home.errorMessage")}:</strong> ${D}</p> 86 <p><strong>${t("home.detailedError")}:</strong> ${N}</p> 87 </div> 88 `}const Se=y=>{z.value=y},dt=async()=>{try{if(!U.value||U.value.trim().length===0){ue(t("home.noMarkdownContent"),"error");return}const y=A.value||"result",C=new Date().toISOString().replace(/[:.]/g,"-"),D=`sensemake-summary-${y}-${C}.md`,N=new Blob([U.value],{type:"text/markdown;charset=utf-8"}),Y=URL.createObjectURL(N),h=document.createElement("a");h.href=Y,h.download=D,document.body.appendChild(h),h.click(),h.remove(),URL.revokeObjectURL(Y),await ot(y)}catch(y){const C=y instanceof Error?y.message:String(y);ue(`${t("home.downloadFailed")}: ${C}`,"error")}},ot=async y=>{try{console.log(`ðï¸ åªé¤ä»»åå ±å: ${y}`);const C=await fetch(`https://sensemaker-backend.bestian123.workers.dev/api/sensemake/delete/${y}`,{method:"DELETE"});C.ok?console.log(`â ä»»åå ±å ${y} å·²æååªé¤`):console.warn(`â ï¸ åªé¤ä»»åå ±å ${y} 失æ: ${C.status}`)}catch(C){console.error(`â åªé¤ä»»åå ±å ${y} æç¼çé¯èª¤:`,C)}},it=async()=>{try{(await fetch("https://sensemaker-backend.bestian123.workers.dev/api/test")).ok?console.log("â å¾ç«¯æåéè¡æ£å¸¸"):console.log("â å¾ç«¯æåç°å¸¸")}catch(y){console.log("â ç¡æ³é£æ¥å°å¾ç«¯æå:",y)}};me.setOptions({breaks:!0,gfm:!0});const Ie=()=>{n.value=!1,s.value&&localStorage.setItem("dontShowGuide","true")};return dr(()=>{it(),localStorage.getItem("dontShowGuide")||(n.value=!0)}),jn(()=>{be()}),(y,C)=>{const D=gl("router-link");return Ae(),Le(et,null,[n.value?(Ae(),Le("div",{key:0,class:"fixed inset-0 z-[1000] flex items-center justify-center",onClick:Ri(Ie,["self"])},[C[16]||(C[16]=v("div",{class:"absolute inset-0 bg-black bg-opacity-50"},null,-1)),v("div",nb,[v("button",{onClick:Ie,class:"absolute top-4 right-4 text-gray-400 hover:text-gray-600 transition-colors z-10","aria-label":"éé"},[...C[10]||(C[10]=[v("svg",{class:"w-6 h-6",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[v("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M6 18L18 6M6 6l12 12"})],-1)])]),v("div",sb,[v("h2",rb,H(j(t)("guideModal.title")),1),v("p",ob,[Ve(H(j(t)("guideModal.description"))+" ",1),C[11]||(C[11]=v("br",null,null,-1)),v("a",ib,H(j(t)("guideModal.sensemakingToolsLink")),1),C[12]||(C[12]=v("br",null,null,-1)),v("a",ab,H(j(t)("guideModal.uberReportExample")),1)]),v("div",lb,[oe(Fc)]),v("div",cb,[v("div",ub,[C[13]||(C[13]=Dd('<div class="mb-4 flex justify-center" data-v-1cd07606><div class="w-32 h-32 bg-blue-50 rounded-lg flex items-center justify-center" data-v-1cd07606><svg class="w-20 h-20 text-blue-600" fill="none" stroke="currentColor" viewBox="0 0 24 24" data-v-1cd07606><path stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5" d="M8 10h.01M12 10h.01M16 10h.01M9 16H5a2 2 0 01-2-2V6a2 2 0 012-2h14a2 2 0 012 2v8a2 2 0 01-2 2h-5l-5 5v-5z" data-v-1cd07606></path><circle cx="8" cy="10" r="1" fill="currentColor" data-v-1cd07606></circle><circle cx="12" cy="10" r="1" fill="currentColor" data-v-1cd07606></circle><circle cx="16" cy="10" r="1" fill="currentColor" data-v-1cd07606></circle></svg></div></div>',1)),v("h3",db,H(j(t)("guideModal.polisTitle")),1),v("p",pb,H(j(t)("guideModal.polisDescription")),1),v("div",fb,[oe(D,{to:"/guide/polis",class:"text-blue-600 hover:text-blue-800 hover:underline text-sm"},{default:$e(()=>[Ve(H(j(t)("guideModal.polisLink")),1)]),_:1})])]),v("div",mb,[C[14]||(C[14]=v("div",{class:"mb-4 flex justify-center"},[v("div",{class:"w-32 h-32 bg-purple-50 rounded-lg flex items-center justify-center"},[v("svg",{class:"w-20 h-20 text-purple-600",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[v("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"1.5",d:"M9.663 17h4.673M12 3v1m6.364 1.636l-.707.707M21 12h-1M4 12H3m3.343-5.657l-.707-.707m2.828 9.9a5 5 0 117.072 0l-.548.547A3.374 3.374 0 0014 18.469V19a2 2 0 11-4 0v-.531c0-.895-.356-1.754-.988-2.386l-.548-.547z"})])])],-1)),v("h3",hb,H(j(t)("guideModal.openRouterTitle")),1),v("p",gb,H(j(t)("guideModal.openRouterDescription")),1),v("div",bb,[oe(D,{to:"/guide/openrouter",class:"text-blue-600 hover:text-blue-800 hover:underline text-sm"},{default:$e(()=>[Ve(H(j(t)("guideModal.openRouterLink")),1)]),_:1})])]),v("div",vb,[C[15]||(C[15]=v("div",{class:"mb-4 flex justify-center"},[v("div",{class:"w-32 h-32 bg-green-50 rounded-lg flex items-center justify-center"},[v("svg",{class:"w-20 h-20 text-green-600",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[v("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"1.5",d:"M9 19v-6a2 2 0 00-2-2H5a2 2 0 00-2 2v6a2 2 0 002 2h2a2 2 0 002-2zm0 0V9a2 2 0 012-2h2a2 2 0 012 2v10m-6 0a2 2 0 002 2h2a2 2 0 002-2m0 0V5a2 2 0 012-2h2a2 2 0 012 2v14a2 2 0 01-2 2h-2a2 2 0 01-2-2z"})])])],-1)),v("h3",yb,H(j(t)("guideModal.sensemakerTitle")),1),v("p",kb,H(j(t)("guideModal.sensemakerDescription")),1),v("div",_b,[oe(D,{to:"/guide/sensemaker",class:"text-blue-600 hover:text-blue-800 hover:underline text-sm"},{default:$e(()=>[Ve(H(j(t)("guideModal.sensemakerLink")),1)]),_:1})])])]),v("div",wb,[v("p",Tb,H(j(t)("guideModal.tip")),1)]),v("div",Sb,[v("label",Pb,[Rt(v("input",{type:"checkbox","onUpdate:modelValue":C[0]||(C[0]=N=>s.value=N),class:"mr-2 w-4 h-4 text-blue-600 border-gray-300 rounded focus:ring-blue-500"},null,512),[[jl,s.value]]),v("span",xb,H(j(t)("guideModal.dontShowAgain")),1
88)]),v("button",{onClick:Ie,class:"bg-blue-600 hover:bg-blue-700 text-white font-medium py-2 px-6 rounded-md transition-colors"},H(j(t)("guideModal.iKnow")),1)])])])])):vn("",!0),v("div",Cb,[v("div",Eb,[v("div",Rb,[v("h1",Ab,H(j(t)("home.title")),1),v("form",{onSubmit:Ri(vt,["prevent"]),class:"space-y-6"},[v("div",Ib,[v("label",Lb,H(j(t)("home.fileLabel")),1),v("input",{type:"file",id:"file",onChange:we,accept:".json,.csv,application/json,text/csv",required:"",class:"w-full px-3 py-2 border border-gray-300 rounded-md shadow-sm focus:outline-none focus:ring-2 focus:ring-democratic-red focus:border-democratic-red text-black dark:text-black"},null,32)]),v("div",Ob,[v("label",Db,[Ve(H(j(t)("home.apiKeyLabel"))+" ",1),C[17]||(C[17]=v("span",{class:"text-red-500 font-bold"},"*",-1)),v("a",Nb,H(j(t)("home.getApiKeyLink")),1)]),v("div",Mb,[Rt(v("input",{type:o.value?"text":"password",id:"apiKey","onUpdate:modelValue":C[1]||(C[1]=N=>r.value=N),placeholder:j(t)("home.apiKeyPlaceholder"),required:"",class:"w-full px-3 py-2 pr-10 border border-gray-300 rounded-md shadow-sm text-gray-900 bg-white focus:outline-none focus:ring-2 focus:ring-democratic-red focus:border-democratic-red"},null,8,Fb),[[pp,r.value]]),v("button",{type:"button",class:"absolute inset-y-0 right-0 flex items-center px-3 text-gray-500 hover:text-gray-700 focus:outline-none focus:text-democratic-red","aria-label":o.value?j(t)("home.hideApiKey"):j(t)("home.showApiKey"),title:o.value?j(t)("home.hideApiKey"):j(t)("home.showApiKey"),onClick:C[2]||(C[2]=N=>o.value=!o.value)},[o.value?(Ae(),Le("svg",Ub,[...C[18]||(C[18]=[v("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M3 3l18 18M10.6 10.6a2 2 0 002.8 2.8M9.9 4.2A10.5 10.5 0 0112 4c5 0 9 4.5 10 8a12.7 12.7 0 01-2.1 3.9M6.6 6.6C4.4 8 2.8 10.1 2 12c1 3.5 5 8 10 8 1.6 0 3.1-.5 4.4-1.2"},null,-1)])])):(Ae(),Le("svg",$b,[...C[19]||(C[19]=[v("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M2 12c1-3.5 5-8 10-8s9 4.5 10 8c-1 3.5-5 8-10 8S3 15.5 2 12z"},null,-1),v("circle",{cx:"12",cy:"12",r:"3","stroke-width":"2"},null,-1)])]))],8,Vb)]),v("div",jb,[v("p",Kb,H(j(t)("home.apiKeyRequired")),1),v("p",Hb,[v("span",Bb,H(j(t)("home.privacyNote")),1)])])]),v("div",Wb,[v("label",qb,[Ve(H(j(t)("home.modelLabel"))+" ",1),C[20]||(C[20]=v("span",{class:"text-red-500 font-bold"},"*",-1))]),Rt(v("input",{type:"text",id:"model","onUpdate:modelValue":C[3]||(C[3]=N=>i.value=N),placeholder:j(t)("home.modelPlaceholder"),class:"w-full px-3 py-2 border border-gray-300 rounded-md shadow-sm text-gray-900 bg-white focus:outline-none focus:ring-2 focus:ring-democratic-red focus:border-democratic-red"},null,8,zb),[[is,i.value]]),v("div",Gb,[v("p",Yb,H(j(t)("home.modelNote")),1),v("p",Xb,H(j(t)("home.costNote")),1),v("p",Qb,H(j(t)("home.timeNote")),1),v("p",Jb,[v("a",Zb,H(j(t)("home.modelLinkText")),1)])])]),v("div",ev,[v("label",tv,H(j(t)("home.additionalContextLabel")),1),v("p",nv,H(j(t)("home.additionalContextNote")),1),Rt(v("input",{type:"text",id:"additionalContext","onUpdate:modelValue":C[4]||(C[4]=N=>a.value=N),placeholder:j(t)("home.additionalContextPlaceholder"),class:"w-full px-3 py-2 border border-gray-300 rounded-md shadow-sm text-gray-900 bg-white focus:outline-none focus:ring-2 focus:ring-democratic-red focus:border-democratic-red"},null,8,sv),[[is,a.value]])]),v("div",rv,[v("label",ov,H(j(t)("home.outputLangLabel")),1),Rt(v("select",{id:"outputLang","onUpdate:modelValue":C[5]||(C[5]=N=>l.value=N),class:"w-full px-3 py-2 border border-gray-300 rounded-md shadow-sm text-gray-900 bg-white focus:outline-none focus:ring-2 focus:ring-democratic-red focus:border-democratic-red"},[v("option",iv,H(j(t)("home.outputLangOptions.en")),1),v("option",av,H(j(t)("home.outputLangOptions.zh-TW")),1),v("option",lv,H(j(t)("home.outputLangOptions.zh-CN")),1
88),v("option",cv,H(j(t)("home.outputLangOptions.ja")),1),v("option",uv,H(j(t)("home.outputLangOptions.fr")),1),v("option",dv,H(j(t)("home.outputLangOptions.es")),1)],512),[[Kl,l.value]])]),v("div",pv,[v("div",fv,[v("div",null,[v("p",mv,H(j(t)("home.riskWarning")),1)])])]),v("div",hv,[v("label",gv,H(j(t)("home.retryModeLabel")),1),v("div",bv,[v("label",vv,[Rt(v("input",{type:"radio","onUpdate:modelValue":C[6]||(C[6]=N=>m.value=N),value:"strict",onChange:ae,class:"mr-2"},null,544),[[Ns,m.value]]),v("span",yv,H(j(t)("home.retryModeStrict")),1)]),v("label",kv,[Rt(v("input",{type:"radio","onUpdate:modelValue":C[7]||(C[7]=N=>m.value=N),value:"normal",onChange:ae,class:"mr-2"},null,544),[[Ns,m.value]]),v("span",_v,H(j(t)("home.retryModeNormal")),1)]),v("label",wv,[Rt(v("input",{type:"radio","onUpdate:modelValue":C[8]||(C[8]=N=>m.value=N),value:"custom",onChange:ae,class:"mr-2"},null,544),[[Ns,m.value]]),v("span",Tv,H(j(t)("home.retryModeCustom")),1)])]),m.value==="custom"?(Ae(),Le("div",Sv,[v("label",Pv,H(j(t)("home.customRetryCountLabel")),1),Rt(v("input",{type:"number",id:"customRetryCount","onUpdate:modelValue":C[9]||(C[9]=N=>b.value=N),min:"1",max:"10",onInput:ae,class:"w-full px-3 py-2 border border-gray-300 rounded-md shadow-sm text-gray-900 bg-white focus:outline-none focus:ring-2 focus:ring-democratic-red focus:border-democratic-red"},null,544),[[is,b.value]]),v("p",xv,H(j(t)("home.customRetryCountNote")),1)])):vn("",!0)]),v("button",{type:"submit",disabled:u.value||!r.value.trim(),class:"w-full bg-democratic-red hover:bg-red-700 disabled:bg-gray-400 text-white font-medium py-3 px-4 rounded-md transition-colors duration-200 disabled:cursor-not-allowed"},H(u.value?j(t)("home.processing"):j(t)("home.startAnalysis")),9,Cv)],32)]),_.value?(Ae(),Le("div",Ev,[v("h3",Rv,H(j(t)("home.taskStatus")),1),v("div",Av,[v("div",Iv,[v("span",Lv,H(j(t)("home.taskId"))+":",1),Ve(" "+H(I.value.taskId),1)]),v("div",Ov,[v("span",Dv,H(j(t)("home.status"))+":",1),Ve(" "+H(I.value.status),1)]),v("div",Nv,[v("span",Mv,H(j(t)("home.commentsCount"))+":",1),Ve(" "+H(I.value.commentsCount),1)]),v("div",Fv,[v("span",Vv,H(j(t)("home.model"))+":",1),Ve(" "+H(I.value.model),1)])]),v("div",Uv,[C[21]||(C[21]=v("div",{class:"inline-block w-5 h-5 border-2 border-blue-600 border-t-transparent rounded-full animate-spin mr-2"},null,-1)),v("span",$v,H(L.value),1)]),P.value>0?(Ae(),Le("div",jv,[C[22]||(C[22]=v("div",{class:"inline-block w-5 h-5 border-2 border-orange-600 border-t-transparent rounded-full animate-spin mr-2"},null,-1)),v("span",Kv,"ð é試第 "+H(P.value)+" 次 (æå¤§ "+H(x.value)+" 次)",1)])):vn("",!0)])):vn("",!0),d.value.length>0?(Ae(),Le("div",Hv,[(Ae(!0),Le(et,null,bl(d.value,(N,Y)=>(Ae(),Le("div",{key:Y,class:Be(["rounded-lg p-4 max-h-96 overflow-y-auto",N.type==="success"?"bg-green-50 border border-green-200 text-green-800":"",N.type==="error"?"bg-red-50 border border-red-200 text-red-800":"",N.type==="info"?"bg-blue-50 border border-blue-200 text-blue-800":"",N.type==="warning"?"bg-yellow-50 border border-yellow-200 text-yellow-800":""])},[N.isHtml?(Ae(),Le("div",{key:0,innerHTML:N.content},null,8,Bv)):(Ae(),Le("div",Wv,H(N.content),1))],2))),128))])):vn("",!0),v("div",qv,[z.value?(Ae(),Le("button",{key:0,onClick:dt,class:"bg-jade-green hover:bg-green-700 text-white font-medium py-2 px-4 rounded-md transition-colors duration-200"},H(j(t)("home.downloadMarkdown")),1)):vn("",!0)])])])],64)}}}),Gv=Vc(zv,[["__scopeId","data-v-1cd07606"]]),Xc=xf({history:of("/"),routes:[{path:"/",name:"home",component:Gv},{path:"/about",name:"about",component:()=>gn(()=>import("./AboutView-DydTxybh.js"),[])},{path:"/privacy",name:"privacy",component:()=>gn(()=>import("./PrivacyView-uB_A5Ekw.js"),__vite__mapDeps([0,1]))},{path:"/maintain",name:"maintain",component:()=>gn(()=>import("./MaintainView-XMgB491Z.js"),[])},{path:"/self-host",name:"self-host",component:()=>gn(()=>import("./SelfHostView-BmGQQkoH.js"),__vite__mapDeps([2,3]))},{path:"/guide/polis",name:"polis-guide",component:()=>gn(()=>import("./PolisGuideView-3LddHktY.js"),__vite__mapDeps([4,5,6]))},{path:"/guide/openrouter",name:"openrouter-guide",component:()=>gn(()=>import("./OpenRouterGuideView-C57piGgm.js"),__vite__mapDeps([7,8,5,6]))},{path:"/guide/sensemaker",name:"sensemaker-guide",component:()=>gn(()=>import("./SenseMakerGuideView-BodYyV-t.js"),__vite__mapDeps([9,8,6]))}]}),Yo=vp(gg);Yo.use(Xc);Yo.use(Mc);
88Xc.afterEach(e=>{const t=Mc.global.t,n=t("home.title"),r={home:n,about:`${t("about.title")} - ${n}`,privacy:`${t("privacy.privacyPolicy")} - ${n}`,maintain:`${t("maintain.pageTitle")} - ${n}`,"self-host":`${t("selfHost.title")} - ${n}`,"polis-guide":`${t("polisGuide.title")} - ${n}`,"openrouter-guide":`${t("openRouterGuide.title")} - ${n}`,"sensemaker-guide":`${t("sensemakerGuide.title")} - ${n}`}[e.name];r&&(document.title=r)});Yo.mount("#app");export{Vc as _,v as a,j as b,Le as c,Xt as d,Ve as e,oe as f,Oe as g,Ae as o,gl as r,H as t,Hn as u,$e as w};
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.