mirror of
https://github.com/xinnan-tech/xiaozhi-esp32-server.git
synced 2026-07-30 05:13:59 +08:00
82 lines
911 KiB
JavaScript
82 lines
911 KiB
JavaScript
var iB=(A,e)=>()=>(e||A((e={exports:{}}).exports,e),e.exports);var OR=iB(W=>{(function(){const e=document.createElement("link").relList;if(e&&e.supports&&e.supports("modulepreload"))return;for(const n of document.querySelectorAll('link[rel="modulepreload"]'))i(n);new MutationObserver(n=>{for(const o of n)if(o.type==="childList")for(const r of o.addedNodes)r.tagName==="LINK"&&r.rel==="modulepreload"&&i(r)}).observe(document,{childList:!0,subtree:!0});function t(n){const o={};return n.integrity&&(o.integrity=n.integrity),n.referrerPolicy&&(o.referrerPolicy=n.referrerPolicy),n.crossOrigin==="use-credentials"?o.credentials="include":n.crossOrigin==="anonymous"?o.credentials="omit":o.credentials="same-origin",o}function i(n){if(n.ep)return;n.ep=!0;const o=t(n);fetch(n.href,o)}})();/**
|
||
* @vue/shared v3.5.26
|
||
* (c) 2018-present Yuxi (Evan) You and Vue contributors
|
||
* @license MIT
|
||
**/function Or(A){const e=Object.create(null);for(const t of A.split(","))e[t]=1;return t=>t in e}const PA={},fi=[],rt=()=>{},tI=()=>!1,Bo=A=>A.charCodeAt(0)===111&&A.charCodeAt(1)===110&&(A.charCodeAt(2)>122||A.charCodeAt(2)<97),Vr=A=>A.startsWith("onUpdate:"),he=Object.assign,Wr=(A,e)=>{const t=A.indexOf(e);t>-1&&A.splice(t,1)},nB=Object.prototype.hasOwnProperty,TA=(A,e)=>nB.call(A,e),wA=Array.isArray,di=A=>En(A)==="[object Map]",Qo=A=>En(A)==="[object Set]",Gg=A=>En(A)==="[object Date]",bA=A=>typeof A=="function",ie=A=>typeof A=="string",Ct=A=>typeof A=="symbol",OA=A=>A!==null&&typeof A=="object",iI=A=>(OA(A)||bA(A))&&bA(A.then)&&bA(A.catch),nI=Object.prototype.toString,En=A=>nI.call(A),oB=A=>En(A).slice(8,-1),oI=A=>En(A)==="[object Object]",qr=A=>ie(A)&&A!=="NaN"&&A[0]!=="-"&&""+parseInt(A,10)===A,Vi=Or(",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted"),co=A=>{const e=Object.create(null);return t=>e[t]||(e[t]=A(t))},rB=/-\w/g,Te=co(A=>A.replace(rB,e=>e.slice(1).toUpperCase())),gB=/\B([A-Z])/g,Ci=co(A=>A.replace(gB,"-$1").toLowerCase()),Eo=co(A=>A.charAt(0).toUpperCase()+A.slice(1)),Jo=co(A=>A?`on${Eo(A)}`:""),_t=(A,e)=>!Object.is(A,e),Tn=(A,...e)=>{for(let t=0;t<A.length;t++)A[t](...e)},rI=(A,e,t,i=!1)=>{Object.defineProperty(A,e,{configurable:!0,enumerable:!1,writable:i,value:t})},uo=A=>{const e=parseFloat(A);return isNaN(e)?A:e};let Lg;const ho=()=>Lg||(Lg=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof global<"u"?global:{});function qA(A){if(wA(A)){const e={};for(let t=0;t<A.length;t++){const i=A[t],n=ie(i)?CB(i):qA(i);if(n)for(const o in n)e[o]=n[o]}return e}else if(ie(A)||OA(A))return A}const sB=/;(?![^(]*\))/g,aB=/:([^]+)/,IB=/\/\*[^]*?\*\//g;function CB(A){const e={};return A.replace(IB,"").split(sB).forEach(t=>{if(t){const i=t.split(aB);i.length>1&&(e[i[0].trim()]=i[1].trim())}}),e}function vA(A){let e="";if(ie(A))e=A;else if(wA(A))for(let t=0;t<A.length;t++){const i=vA(A[t]);i&&(e+=i+" ")}else if(OA(A))for(const t in A)A[t]&&(e+=t+" ");return e.trim()}const lB="itemscope,allowfullscreen,formnovalidate,ismap,nomodule,novalidate,readonly",BB=Or(lB);function gI(A){return!!A||A===""}function QB(A,e){if(A.length!==e.length)return!1;let t=!0;for(let i=0;t&&i<A.length;i++)t=fo(A[i],e[i]);return t}function fo(A,e){if(A===e)return!0;let t=Gg(A),i=Gg(e);if(t||i)return t&&i?A.getTime()===e.getTime():!1;if(t=Ct(A),i=Ct(e),t||i)return A===e;if(t=wA(A),i=wA(e),t||i)return t&&i?QB(A,e):!1;if(t=OA(A),i=OA(e),t||i){if(!t||!i)return!1;const n=Object.keys(A).length,o=Object.keys(e).length;if(n!==o)return!1;for(const r in A){const g=A.hasOwnProperty(r),s=e.hasOwnProperty(r);if(g&&!s||!g&&s||!fo(A[r],e[r]))return!1}}return String(A)===String(e)}function cB(A,e){return A.findIndex(t=>fo(t,e))}const sI=A=>!!(A&&A.__v_isRef===!0),v=A=>ie(A)?A:A==null?"":wA(A)||OA(A)&&(A.toString===nI||!bA(A.toString))?sI(A)?v(A.value):JSON.stringify(A,aI,2):String(A),aI=(A,e)=>sI(e)?aI(A,e.value):di(e)?{[`Map(${e.size})`]:[...e.entries()].reduce((t,[i,n],o)=>(t[To(i,o)+" =>"]=n,t),{})}:Qo(e)?{[`Set(${e.size})`]:[...e.values()].map(t=>To(t))}:Ct(e)?To(e):OA(e)&&!wA(e)&&!oI(e)?String(e):e,To=(A,e="")=>{var t;return Ct(A)?`Symbol(${(t=A.description)!=null?t:e})`:A};/**
|
||
* @vue/reactivity v3.5.26
|
||
* (c) 2018-present Yuxi (Evan) You and Vue contributors
|
||
* @license MIT
|
||
**/let ve;class II{constructor(e=!1){this.detached=e,this._active=!0,this._on=0,this.effects=[],this.cleanups=[],this._isPaused=!1,this.parent=ve,!e&&ve&&(this.index=(ve.scopes||(ve.scopes=[])).push(this)-1)}get active(){return this._active}pause(){if(this._active){this._isPaused=!0;let e,t;if(this.scopes)for(e=0,t=this.scopes.length;e<t;e++)this.scopes[e].pause();for(e=0,t=this.effects.length;e<t;e++)this.effects[e].pause()}}resume(){if(this._active&&this._isPaused){this._isPaused=!1;let e,t;if(this.scopes)for(e=0,t=this.scopes.length;e<t;e++)this.scopes[e].resume();for(e=0,t=this.effects.length;e<t;e++)this.effects[e].resume()}}run(e){if(this._active){const t=ve;try{return ve=this,e()}finally{ve=t}}}on(){++this._on===1&&(this.prevScope=ve,ve=this)}off(){this._on>0&&--this._on===0&&(ve=this.prevScope,this.prevScope=void 0)}stop(e){if(this._active){this._active=!1;let t,i;for(t=0,i=this.effects.length;t<i;t++)this.effects[t].stop();for(this.effects.length=0,t=0,i=this.cleanups.length;t<i;t++)this.cleanups[t]();if(this.cleanups.length=0,this.scopes){for(t=0,i=this.scopes.length;t<i;t++)this.scopes[t].stop(!0);this.scopes.length=0}if(!this.detached&&this.parent&&!e){const n=this.parent.scopes.pop();n&&n!==this&&(this.parent.scopes[this.index]=n,n.index=this.index)}this.parent=void 0}}}function EB(A){return new II(A)}function uB(){return ve}let VA;const Ho=new WeakSet;class CI{constructor(e){this.fn=e,this.deps=void 0,this.depsTail=void 0,this.flags=5,this.next=void 0,this.cleanup=void 0,this.scheduler=void 0,ve&&ve.active&&ve.effects.push(this)}pause(){this.flags|=64}resume(){this.flags&64&&(this.flags&=-65,Ho.has(this)&&(Ho.delete(this),this.trigger()))}notify(){this.flags&2&&!(this.flags&32)||this.flags&8||BI(this)}run(){if(!(this.flags&1))return this.fn();this.flags|=2,Ug(this),QI(this);const e=VA,t=Ke;VA=this,Ke=!0;try{return this.fn()}finally{cI(this),VA=e,Ke=t,this.flags&=-3}}stop(){if(this.flags&1){for(let e=this.deps;e;e=e.nextDep)Xr(e);this.deps=this.depsTail=void 0,Ug(this),this.onStop&&this.onStop(),this.flags&=-2}}trigger(){this.flags&64?Ho.add(this):this.scheduler?this.scheduler():this.runIfDirty()}runIfDirty(){Ir(this)&&this.run()}get dirty(){return Ir(this)}}let lI=0,Wi,qi;function BI(A,e=!1){if(A.flags|=8,e){A.next=qi,qi=A;return}A.next=Wi,Wi=A}function jr(){lI++}function Zr(){if(--lI>0)return;if(qi){let e=qi;for(qi=void 0;e;){const t=e.next;e.next=void 0,e.flags&=-9,e=t}}let A;for(;Wi;){let e=Wi;for(Wi=void 0;e;){const t=e.next;if(e.next=void 0,e.flags&=-9,e.flags&1)try{e.trigger()}catch(i){A||(A=i)}e=t}}if(A)throw A}function QI(A){for(let e=A.deps;e;e=e.nextDep)e.version=-1,e.prevActiveLink=e.dep.activeLink,e.dep.activeLink=e}function cI(A){let e,t=A.depsTail,i=t;for(;i;){const n=i.prevDep;i.version===-1?(i===t&&(t=n),Xr(i),hB(i)):e=i,i.dep.activeLink=i.prevActiveLink,i.prevActiveLink=void 0,i=n}A.deps=e,A.depsTail=t}function Ir(A){for(let e=A.deps;e;e=e.nextDep)if(e.dep.version!==e.version||e.dep.computed&&(EI(e.dep.computed)||e.dep.version!==e.version))return!0;return!!A._dirty}function EI(A){if(A.flags&4&&!(A.flags&16)||(A.flags&=-17,A.globalVersion===en)||(A.globalVersion=en,!A.isSSR&&A.flags&128&&(!A.deps&&!A._dirty||!Ir(A))))return;A.flags|=2;const e=A.dep,t=VA,i=Ke;VA=A,Ke=!0;try{QI(A);const n=A.fn(A._value);(e.version===0||_t(n,A._value))&&(A.flags|=128,A._value=n,e.version++)}catch(n){throw e.version++,n}finally{VA=t,Ke=i,cI(A),A.flags&=-3}}function Xr(A,e=!1){const{dep:t,prevSub:i,nextSub:n}=A;if(i&&(i.nextSub=n,A.prevSub=void 0),n&&(n.prevSub=i,A.nextSub=void 0),t.subs===A&&(t.subs=i,!i&&t.computed)){t.computed.flags&=-5;for(let o=t.computed.deps;o;o=o.nextDep)Xr(o,!0)}!e&&!--t.sc&&t.map&&t.map.delete(t.key)}function hB(A){const{prevDep:e,nextDep:t}=A;e&&(e.nextDep=t,A.prevDep=void 0),t&&(t.prevDep=e,A.nextDep=void 0)}let Ke=!0;const uI=[];function Dt(){uI.push(Ke),Ke=!1}function kt(){const A=uI.pop();Ke=A===void 0?!0:A}function Ug(A){const{cleanup:e}=A;if(A.cleanup=void 0,e){const t=VA;VA=void 0;try{e()}finally{VA=t}}}let en=0;class fB{constructor(e,t){this.sub=e,this.dep=t,this.version=t.version,this.nextDep=this.prevDep=this.nextSub=this.prevSub=this.prevActiveLink=void 0}}class zr{constructor(e){this.computed=e,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(e){if(!VA||!Ke||VA===this.computed)return;let t=this.activeLink;if(t===void 0||t.sub!==VA)t=this.activeLink=new fB(VA,this),VA.deps?(t.prevDep=VA.depsTail,VA.depsTail.nextDep=t,VA.depsTail=t):VA.deps=VA.depsTail=t,hI(t);else if(t.version===-1&&(t.version=this.version,t.nextDep)){const i=t.nextDep;i.prevDep=t.prevDep,t.prevDep&&(t.prevDep.nextDep=i),t.prevDep=VA.depsTail,t.nextDep=void 0,VA.depsTail.nextDep=t,VA.depsTail=t,VA.deps===t&&(VA.deps=i)}return t}trigger(e){this.version++,en++,this.notify(e)}notify(e){jr();try{for(let t=this.subs;t;t=t.prevSub)t.sub.notify()&&t.sub.dep.notify()}finally{Zr()}}}function hI(A){if(A.dep.sc++,A.sub.flags&4){const e=A.dep.computed;if(e&&!A.dep.subs){e.flags|=20;for(let i=e.deps;i;i=i.nextDep)hI(i)}const t=A.dep.subs;t!==A&&(A.prevSub=t,t&&(t.nextSub=A)),A.dep.subs=A}}const Cr=new WeakMap,gi=Symbol(""),lr=Symbol(""),tn=Symbol("");function Ee(A,e,t){if(Ke&&VA){let i=Cr.get(A);i||Cr.set(A,i=new Map);let n=i.get(t);n||(i.set(t,n=new zr),n.map=i,n.key=t),n.track()}}function ht(A,e,t,i,n,o){const r=Cr.get(A);if(!r){en++;return}const g=s=>{s&&s.trigger()};if(jr(),e==="clear")r.forEach(g);else{const s=wA(A),a=s&&qr(t);if(s&&t==="length"){const I=Number(i);r.forEach((l,C)=>{(C==="length"||C===tn||!Ct(C)&&C>=I)&&g(l)})}else switch((t!==void 0||r.has(void 0))&&g(r.get(t)),a&&g(r.get(tn)),e){case"add":s?a&&g(r.get("length")):(g(r.get(gi)),di(A)&&g(r.get(lr)));break;case"delete":s||(g(r.get(gi)),di(A)&&g(r.get(lr)));break;case"set":di(A)&&g(r.get(gi));break}}Zr()}function Bi(A){const e=JA(A);return e===A?e:(Ee(e,"iterate",tn),Je(A)?e:e.map(Oe))}function po(A){return Ee(A=JA(A),"iterate",tn),A}function Mt(A,e){return vt(A)?si(A)?ki(Oe(e)):ki(e):Oe(e)}const dB={__proto__:null,[Symbol.iterator](){return Yo(this,Symbol.iterator,A=>Mt(this,A))},concat(...A){return Bi(this).concat(...A.map(e=>wA(e)?Bi(e):e))},entries(){return Yo(this,"entries",A=>(A[1]=Mt(this,A[1]),A))},every(A,e){return Bt(this,"every",A,e,void 0,arguments)},filter(A,e){return Bt(this,"filter",A,e,t=>t.map(i=>Mt(this,i)),arguments)},find(A,e){return Bt(this,"find",A,e,t=>Mt(this,t),arguments)},findIndex(A,e){return Bt(this,"findIndex",A,e,void 0,arguments)},findLast(A,e){return Bt(this,"findLast",A,e,t=>Mt(this,t),arguments)},findLastIndex(A,e){return Bt(this,"findLastIndex",A,e,void 0,arguments)},forEach(A,e){return Bt(this,"forEach",A,e,void 0,arguments)},includes(...A){return _o(this,"includes",A)},indexOf(...A){return _o(this,"indexOf",A)},join(A){return Bi(this).join(A)},lastIndexOf(...A){return _o(this,"lastIndexOf",A)},map(A,e){return Bt(this,"map",A,e,void 0,arguments)},pop(){return Ji(this,"pop")},push(...A){return Ji(this,"push",A)},reduce(A,...e){return Mg(this,"reduce",A,e)},reduceRight(A,...e){return Mg(this,"reduceRight",A,e)},shift(){return Ji(this,"shift")},some(A,e){return Bt(this,"some",A,e,void 0,arguments)},splice(...A){return Ji(this,"splice",A)},toReversed(){return Bi(this).toReversed()},toSorted(A){return Bi(this).toSorted(A)},toSpliced(...A){return Bi(this).toSpliced(...A)},unshift(...A){return Ji(this,"unshift",A)},values(){return Yo(this,"values",A=>Mt(this,A))}};function Yo(A,e,t){const i=po(A),n=i[e]();return i!==A&&!Je(A)&&(n._next=n.next,n.next=()=>{const o=n._next();return o.done||(o.value=t(o.value)),o}),n}const pB=Array.prototype;function Bt(A,e,t,i,n,o){const r=po(A),g=r!==A&&!Je(A),s=r[e];if(s!==pB[e]){const l=s.apply(A,o);return g?Oe(l):l}let a=t;r!==A&&(g?a=function(l,C){return t.call(this,Mt(A,l),C,A)}:t.length>2&&(a=function(l,C){return t.call(this,l,C,A)}));const I=s.call(r,a,i);return g&&n?n(I):I}function Mg(A,e,t,i){const n=po(A);let o=t;return n!==A&&(Je(A)?t.length>3&&(o=function(r,g,s){return t.call(this,r,g,s,A)}):o=function(r,g,s){return t.call(this,r,Mt(A,g),s,A)}),n[e](o,...i)}function _o(A,e,t){const i=JA(A);Ee(i,"iterate",tn);const n=i[e](...t);return(n===-1||n===!1)&&eg(t[0])?(t[0]=JA(t[0]),i[e](...t)):n}function Ji(A,e,t=[]){Dt(),jr();const i=JA(A)[e].apply(A,t);return Zr(),kt(),i}const mB=Or("__proto__,__v_isRef,__isVue"),fI=new Set(Object.getOwnPropertyNames(Symbol).filter(A=>A!=="arguments"&&A!=="caller").map(A=>Symbol[A]).filter(Ct));function yB(A){Ct(A)||(A=String(A));const e=JA(this);return Ee(e,"has",A),e.hasOwnProperty(A)}class dI{constructor(e=!1,t=!1){this._isReadonly=e,this._isShallow=t}get(e,t,i){if(t==="__v_skip")return e.__v_skip;const n=this._isReadonly,o=this._isShallow;if(t==="__v_isReactive")return!n;if(t==="__v_isReadonly")return n;if(t==="__v_isShallow")return o;if(t==="__v_raw")return i===(n?o?GB:wI:o?yI:mI).get(e)||Object.getPrototypeOf(e)===Object.getPrototypeOf(i)?e:void 0;const r=wA(e);if(!n){let s;if(r&&(s=dB[t]))return s;if(t==="hasOwnProperty")return yB}const g=Reflect.get(e,t,Be(e)?e:i);if((Ct(t)?fI.has(t):mB(t))||(n||Ee(e,"get",t),o))return g;if(Be(g)){const s=r&&qr(t)?g:g.value;return n&&OA(s)?Qr(s):s}return OA(g)?n?Qr(g):mo(g):g}}class pI extends dI{constructor(e=!1){super(!1,e)}set(e,t,i,n){let o=e[t];const r=wA(e)&&qr(t);if(!this._isShallow){const a=vt(o);if(!Je(i)&&!vt(i)&&(o=JA(o),i=JA(i)),!r&&Be(o)&&!Be(i))return a||(o.value=i),!0}const g=r?Number(t)<e.length:TA(e,t),s=Reflect.set(e,t,i,Be(e)?e:n);return e===JA(n)&&(g?_t(i,o)&&ht(e,"set",t,i):ht(e,"add",t,i)),s}deleteProperty(e,t){const i=TA(e,t);e[t];const n=Reflect.deleteProperty(e,t);return n&&i&&ht(e,"delete",t,void 0),n}has(e,t){const i=Reflect.has(e,t);return(!Ct(t)||!fI.has(t))&&Ee(e,"has",t),i}ownKeys(e){return Ee(e,"iterate",wA(e)?"length":gi),Reflect.ownKeys(e)}}class wB extends dI{constructor(e=!1){super(!0,e)}set(e,t){return!0}deleteProperty(e,t){return!0}}const DB=new pI,kB=new wB,vB=new pI(!0),Br=A=>A,vn=A=>Reflect.getPrototypeOf(A);function FB(A,e,t){return function(...i){const n=this.__v_raw,o=JA(n),r=di(o),g=A==="entries"||A===Symbol.iterator&&r,s=A==="keys"&&r,a=n[A](...i),I=t?Br:e?ki:Oe;return!e&&Ee(o,"iterate",s?lr:gi),{next(){const{value:l,done:C}=a.next();return C?{value:l,done:C}:{value:g?[I(l[0]),I(l[1])]:I(l),done:C}},[Symbol.iterator](){return this}}}}function Fn(A){return function(...e){return A==="delete"?!1:A==="clear"?void 0:this}}function SB(A,e){const t={get(n){const o=this.__v_raw,r=JA(o),g=JA(n);A||(_t(n,g)&&Ee(r,"get",n),Ee(r,"get",g));const{has:s}=vn(r),a=e?Br:A?ki:Oe;if(s.call(r,n))return a(o.get(n));if(s.call(r,g))return a(o.get(g));o!==r&&o.get(n)},get size(){const n=this.__v_raw;return!A&&Ee(JA(n),"iterate",gi),n.size},has(n){const o=this.__v_raw,r=JA(o),g=JA(n);return A||(_t(n,g)&&Ee(r,"has",n),Ee(r,"has",g)),n===g?o.has(n):o.has(n)||o.has(g)},forEach(n,o){const r=this,g=r.__v_raw,s=JA(g),a=e?Br:A?ki:Oe;return!A&&Ee(s,"iterate",gi),g.forEach((I,l)=>n.call(o,a(I),a(l),r))}};return he(t,A?{add:Fn("add"),set:Fn("set"),delete:Fn("delete"),clear:Fn("clear")}:{add(n){!e&&!Je(n)&&!vt(n)&&(n=JA(n));const o=JA(this);return vn(o).has.call(o,n)||(o.add(n),ht(o,"add",n,n)),this},set(n,o){!e&&!Je(o)&&!vt(o)&&(o=JA(o));const r=JA(this),{has:g,get:s}=vn(r);let a=g.call(r,n);a||(n=JA(n),a=g.call(r,n));const I=s.call(r,n);return r.set(n,o),a?_t(o,I)&&ht(r,"set",n,o):ht(r,"add",n,o),this},delete(n){const o=JA(this),{has:r,get:g}=vn(o);let s=r.call(o,n);s||(n=JA(n),s=r.call(o,n)),g&&g.call(o,n);const a=o.delete(n);return s&&ht(o,"delete",n,void 0),a},clear(){const n=JA(this),o=n.size!==0,r=n.clear();return o&&ht(n,"clear",void 0,void 0),r}}),["keys","values","entries",Symbol.iterator].forEach(n=>{t[n]=FB(n,A,e)}),t}function $r(A,e){const t=SB(A,e);return(i,n,o)=>n==="__v_isReactive"?!A:n==="__v_isReadonly"?A:n==="__v_raw"?i:Reflect.get(TA(t,n)&&n in i?t:i,n,o)}const bB={get:$r(!1,!1)},RB={get:$r(!1,!0)},NB={get:$r(!0,!1)},mI=new WeakMap,yI=new WeakMap,wI=new WeakMap,GB=new WeakMap;function LB(A){switch(A){case"Object":case"Array":return 1;case"Map":case"Set":case"WeakMap":case"WeakSet":return 2;default:return 0}}function UB(A){return A.__v_skip||!Object.isExtensible(A)?0:LB(oB(A))}function mo(A){return vt(A)?A:Ag(A,!1,DB,bB,mI)}function DI(A){return Ag(A,!1,vB,RB,yI)}function Qr(A){return Ag(A,!0,kB,NB,wI)}function Ag(A,e,t,i,n){if(!OA(A)||A.__v_raw&&!(e&&A.__v_isReactive))return A;const o=UB(A);if(o===0)return A;const r=n.get(A);if(r)return r;const g=new Proxy(A,o===2?i:t);return n.set(A,g),g}function si(A){return vt(A)?si(A.__v_raw):!!(A&&A.__v_isReactive)}function vt(A){return!!(A&&A.__v_isReadonly)}function Je(A){return!!(A&&A.__v_isShallow)}function eg(A){return A?!!A.__v_raw:!1}function JA(A){const e=A&&A.__v_raw;return e?JA(e):A}function Pi(A){return!TA(A,"__v_skip")&&Object.isExtensible(A)&&rI(A,"__v_skip",!0),A}const Oe=A=>OA(A)?mo(A):A,ki=A=>OA(A)?Qr(A):A;function Be(A){return A?A.__v_isRef===!0:!1}function uA(A){return kI(A,!1)}function tg(A){return kI(A,!0)}function kI(A,e){return Be(A)?A:new MB(A,e)}class MB{constructor(e,t){this.dep=new zr,this.__v_isRef=!0,this.__v_isShallow=!1,this._rawValue=t?e:JA(e),this._value=t?e:Oe(e),this.__v_isShallow=t}get value(){return this.dep.track(),this._value}set value(e){const t=this._rawValue,i=this.__v_isShallow||Je(e)||vt(e);e=i?e:JA(e),_t(e,t)&&(this._rawValue=e,this._value=i?e:Oe(e),this.dep.trigger())}}function cA(A){return Be(A)?A.value:A}const xB={get:(A,e,t)=>e==="__v_raw"?A:cA(Reflect.get(A,e,t)),set:(A,e,t,i)=>{const n=A[e];return Be(n)&&!Be(t)?(n.value=t,!0):Reflect.set(A,e,t,i)}};function vI(A){return si(A)?A:new Proxy(A,xB)}class JB{constructor(e,t,i){this.fn=e,this.setter=t,this._value=void 0,this.dep=new zr(this),this.__v_isRef=!0,this.deps=void 0,this.depsTail=void 0,this.flags=16,this.globalVersion=en-1,this.next=void 0,this.effect=this,this.__v_isReadonly=!t,this.isSSR=i}notify(){if(this.flags|=16,!(this.flags&8)&&VA!==this)return BI(this,!0),!0}get value(){const e=this.dep.track();return EI(this),e&&(e.version=this.dep.version),this._value}set value(e){this.setter&&this.setter(e)}}function TB(A,e,t=!1){let i,n;return bA(A)?i=A:(i=A.get,n=A.set),new JB(i,n,t)}const Sn={},jn=new WeakMap;let ti;function HB(A,e=!1,t=ti){if(t){let i=jn.get(t);i||jn.set(t,i=[]),i.push(A)}}function YB(A,e,t=PA){const{immediate:i,deep:n,once:o,scheduler:r,augmentJob:g,call:s}=t,a=d=>n?d:Je(d)||n===!1||n===0?ft(d,1):ft(d);let I,l,C,Q,u=!1,f=!1;if(Be(A)?(l=()=>A.value,u=Je(A)):si(A)?(l=()=>a(A),u=!0):wA(A)?(f=!0,u=A.some(d=>si(d)||Je(d)),l=()=>A.map(d=>{if(Be(d))return d.value;if(si(d))return a(d);if(bA(d))return s?s(d,2):d()})):bA(A)?e?l=s?()=>s(A,2):A:l=()=>{if(C){Dt();try{C()}finally{kt()}}const d=ti;ti=I;try{return s?s(A,3,[Q]):A(Q)}finally{ti=d}}:l=rt,e&&n){const d=l,w=n===!0?1/0:n;l=()=>ft(d(),w)}const h=uB(),E=()=>{I.stop(),h&&h.active&&Wr(h.effects,I)};if(o&&e){const d=e;e=(...w)=>{d(...w),E()}}let p=f?new Array(A.length).fill(Sn):Sn;const c=d=>{if(!(!(I.flags&1)||!I.dirty&&!d))if(e){const w=I.run();if(n||u||(f?w.some((F,N)=>_t(F,p[N])):_t(w,p))){C&&C();const F=ti;ti=I;try{const N=[w,p===Sn?void 0:f&&p[0]===Sn?[]:p,Q];p=w,s?s(e,3,N):e(...N)}finally{ti=F}}}else I.run()};return g&&g(c),I=new CI(l),I.scheduler=r?()=>r(c,!1):c,Q=d=>HB(d,!1,I),C=I.onStop=()=>{const d=jn.get(I);if(d){if(s)s(d,4);else for(const w of d)w();jn.delete(I)}},e?i?c(!0):p=I.run():r?r(c.bind(null,!0),!0):I.run(),E.pause=I.pause.bind(I),E.resume=I.resume.bind(I),E.stop=E,E}function ft(A,e=1/0,t){if(e<=0||!OA(A)||A.__v_skip||(t=t||new Map,(t.get(A)||0)>=e))return A;if(t.set(A,e),e--,Be(A))ft(A.value,e,t);else if(wA(A))for(let i=0;i<A.length;i++)ft(A[i],e,t);else if(Qo(A)||di(A))A.forEach(i=>{ft(i,e,t)});else if(oI(A)){for(const i in A)ft(A[i],e,t);for(const i of Object.getOwnPropertySymbols(A))Object.prototype.propertyIsEnumerable.call(A,i)&&ft(A[i],e,t)}return A}/**
|
||
* @vue/runtime-core v3.5.26
|
||
* (c) 2018-present Yuxi (Evan) You and Vue contributors
|
||
* @license MIT
|
||
**/function un(A,e,t,i){try{return i?A(...i):A()}catch(n){yo(n,e,t)}}function lt(A,e,t,i){if(bA(A)){const n=un(A,e,t,i);return n&&iI(n)&&n.catch(o=>{yo(o,e,t)}),n}if(wA(A)){const n=[];for(let o=0;o<A.length;o++)n.push(lt(A[o],e,t,i));return n}}function yo(A,e,t,i=!0){const n=e?e.vnode:null,{errorHandler:o,throwUnhandledErrorInProduction:r}=e&&e.appContext.config||PA;if(e){let g=e.parent;const s=e.proxy,a=`https://vuejs.org/error-reference/#runtime-${t}`;for(;g;){const I=g.ec;if(I){for(let l=0;l<I.length;l++)if(I[l](A,s,a)===!1)return}g=g.parent}if(o){Dt(),un(o,null,10,[A,s,a]),kt();return}}_B(A,t,n,i,r)}function _B(A,e,t,i=!0,n=!1){if(n)throw A;console.error(A)}const ye=[];let et=-1;const pi=[];let xt=null,ci=0;const FI=Promise.resolve();let Zn=null;function hn(A){const e=Zn||FI;return A?e.then(this?A.bind(this):A):e}function KB(A){let e=et+1,t=ye.length;for(;e<t;){const i=e+t>>>1,n=ye[i],o=nn(n);o<A||o===A&&n.flags&2?e=i+1:t=i}return e}function ig(A){if(!(A.flags&1)){const e=nn(A),t=ye[ye.length-1];!t||!(A.flags&2)&&e>=nn(t)?ye.push(A):ye.splice(KB(e),0,A),A.flags|=1,SI()}}function SI(){Zn||(Zn=FI.then(RI))}function PB(A){wA(A)?pi.push(...A):xt&&A.id===-1?xt.splice(ci+1,0,A):A.flags&1||(pi.push(A),A.flags|=1),SI()}function xg(A,e,t=et+1){for(;t<ye.length;t++){const i=ye[t];if(i&&i.flags&2){if(A&&i.id!==A.uid)continue;ye.splice(t,1),t--,i.flags&4&&(i.flags&=-2),i(),i.flags&4||(i.flags&=-2)}}}function bI(A){if(pi.length){const e=[...new Set(pi)].sort((t,i)=>nn(t)-nn(i));if(pi.length=0,xt){xt.push(...e);return}for(xt=e,ci=0;ci<xt.length;ci++){const t=xt[ci];t.flags&4&&(t.flags&=-2),t.flags&8||t(),t.flags&=-2}xt=null,ci=0}}const nn=A=>A.id==null?A.flags&2?-1:1/0:A.id;function RI(A){try{for(et=0;et<ye.length;et++){const e=ye[et];e&&!(e.flags&8)&&(e.flags&4&&(e.flags&=-2),un(e,e.i,e.i?15:14),e.flags&4||(e.flags&=-2))}}finally{for(;et<ye.length;et++){const e=ye[et];e&&(e.flags&=-2)}et=-1,ye.length=0,bI(),Zn=null,(ye.length||pi.length)&&RI()}}let Re=null,NI=null;function Xn(A){const e=Re;return Re=A,NI=A&&A.type.__scopeId||null,e}function OB(A,e=Re,t){if(!e||A._n)return A;const i=(...n)=>{i._d&&Ao(-1);const o=Xn(e);let r;try{r=A(...n)}finally{Xn(o),i._d&&Ao(1)}return r};return i._n=!0,i._c=!0,i._d=!0,i}function zA(A,e){if(Re===null)return A;const t=vo(Re),i=A.dirs||(A.dirs=[]);for(let n=0;n<e.length;n++){let[o,r,g,s=PA]=e[n];o&&(bA(o)&&(o={mounted:o,updated:o}),o.deep&&ft(r),i.push({dir:o,instance:t,value:r,oldValue:void 0,arg:g,modifiers:s}))}return A}function Xt(A,e,t,i){const n=A.dirs,o=e&&e.dirs;for(let r=0;r<n.length;r++){const g=n[r];o&&(g.oldValue=o[r].value);let s=g.dir[i];s&&(Dt(),lt(s,t,8,[A.el,g,A,e]),kt())}}function Hn(A,e){if(ue){let t=ue.provides;const i=ue.parent&&ue.parent.provides;i===t&&(t=ue.provides=Object.create(i)),t[A]=e}}function gt(A,e,t=!1){const i=Fi();if(i||mi){let n=mi?mi._context.provides:i?i.parent==null||i.ce?i.vnode.appContext&&i.vnode.appContext.provides:i.parent.provides:void 0;if(n&&A in n)return n[A];if(arguments.length>1)return t&&bA(e)?e.call(i&&i.proxy):e}}const VB=Symbol.for("v-scx"),WB=()=>gt(VB);function Ie(A,e,t){return GI(A,e,t)}function GI(A,e,t=PA){const{immediate:i,deep:n,flush:o,once:r}=t,g=he({},t),s=e&&i||!e&&o!=="post";let a;if(rn){if(o==="sync"){const Q=WB();a=Q.__watcherHandles||(Q.__watcherHandles=[])}else if(!s){const Q=()=>{};return Q.stop=rt,Q.resume=rt,Q.pause=rt,Q}}const I=ue;g.call=(Q,u,f)=>lt(Q,I,u,f);let l=!1;o==="post"?g.scheduler=Q=>{be(Q,I&&I.suspense)}:o!=="sync"&&(l=!0,g.scheduler=(Q,u)=>{u?Q():ig(Q)}),g.augmentJob=Q=>{e&&(Q.flags|=4),l&&(Q.flags|=2,I&&(Q.id=I.uid,Q.i=I))};const C=YB(A,e,g);return rn&&(a?a.push(C):s&&C()),C}function qB(A,e,t){const i=this.proxy,n=ie(A)?A.includes(".")?LI(i,A):()=>i[A]:A.bind(i,i);let o;bA(e)?o=e:(o=e.handler,t=e);const r=pn(this),g=GI(n,o.bind(i),t);return r(),g}function LI(A,e){const t=e.split(".");return()=>{let i=A;for(let n=0;n<t.length&&i;n++)i=i[t[n]];return i}}const jB=Symbol("_vte"),ZB=A=>A.__isTeleport,XB=Symbol("_leaveCb");function ng(A,e){A.shapeFlag&6&&A.component?(A.transition=e,ng(A.component.subTree,e)):A.shapeFlag&128?(A.ssContent.transition=e.clone(A.ssContent),A.ssFallback.transition=e.clone(A.ssFallback)):A.transition=e}function fn(A,e){return bA(A)?he({name:A.name},e,{setup:A}):A}function UI(A){A.ids=[A.ids[0]+A.ids[2]+++"-",0,0]}const zn=new WeakMap;function ji(A,e,t,i,n=!1){if(wA(A)){A.forEach((u,f)=>ji(u,e&&(wA(e)?e[f]:e),t,i,n));return}if(Zi(i)&&!n){i.shapeFlag&512&&i.type.__asyncResolved&&i.component.subTree.component&&ji(A,e,t,i.component.subTree);return}const o=i.shapeFlag&4?vo(i.component):i.el,r=n?null:o,{i:g,r:s}=A,a=e&&e.r,I=g.refs===PA?g.refs={}:g.refs,l=g.setupState,C=JA(l),Q=l===PA?tI:u=>TA(C,u);if(a!=null&&a!==s){if(Jg(e),ie(a))I[a]=null,Q(a)&&(l[a]=null);else if(Be(a)){a.value=null;const u=e;u.k&&(I[u.k]=null)}}if(bA(s))un(s,g,12,[r,I]);else{const u=ie(s),f=Be(s);if(u||f){const h=()=>{if(A.f){const E=u?Q(s)?l[s]:I[s]:s.value;if(n)wA(E)&&Wr(E,o);else if(wA(E))E.includes(o)||E.push(o);else if(u)I[s]=[o],Q(s)&&(l[s]=I[s]);else{const p=[o];s.value=p,A.k&&(I[A.k]=p)}}else u?(I[s]=r,Q(s)&&(l[s]=r)):f&&(s.value=r,A.k&&(I[A.k]=r))};if(r){const E=()=>{h(),zn.delete(A)};E.id=-1,zn.set(A,E),be(E,t)}else Jg(A),h()}}}function Jg(A){const e=zn.get(A);e&&(e.flags|=8,zn.delete(A))}ho().requestIdleCallback;ho().cancelIdleCallback;const Zi=A=>!!A.type.__asyncLoader,MI=A=>A.type.__isKeepAlive;function zB(A,e){xI(A,"a",e)}function $B(A,e){xI(A,"da",e)}function xI(A,e,t=ue){const i=A.__wdc||(A.__wdc=()=>{let n=t;for(;n;){if(n.isDeactivated)return;n=n.parent}return A()});if(wo(e,i,t),t){let n=t.parent;for(;n&&n.parent;)MI(n.parent.vnode)&&AQ(i,e,t,n),n=n.parent}}function AQ(A,e,t,i){const n=wo(e,A,i,!0);li(()=>{Wr(i[e],n)},t)}function wo(A,e,t=ue,i=!1){if(t){const n=t[A]||(t[A]=[]),o=e.__weh||(e.__weh=(...r)=>{Dt();const g=pn(t),s=lt(e,t,A,r);return g(),kt(),s});return i?n.unshift(o):n.push(o),o}}const Ft=A=>(e,t=ue)=>{(!rn||A==="sp")&&wo(A,(...i)=>e(...i),t)},JI=Ft("bm"),St=Ft("m"),eQ=Ft("bu"),tQ=Ft("u"),iQ=Ft("bum"),li=Ft("um"),nQ=Ft("sp"),oQ=Ft("rtg"),rQ=Ft("rtc");function gQ(A,e=ue){wo("ec",A,e)}const sQ="components",TI=Symbol.for("v-ndc");function HI(A){return ie(A)?aQ(sQ,A,!1)||A:A||TI}function aQ(A,e,t=!0,i=!1){const n=Re||ue;if(n){const o=n.type;{const g=WQ(o,!1);if(g&&(g===e||g===Te(e)||g===Eo(Te(e))))return o}const r=Tg(n[A]||o[A],e)||Tg(n.appContext[A],e);return!r&&i?o:r}}function Tg(A,e){return A&&(A[e]||A[Te(e)]||A[Eo(Te(e))])}function Pe(A,e,t,i){let n;const o=t,r=wA(A);if(r||ie(A)){const g=r&&si(A);let s=!1,a=!1;g&&(s=!Je(A),a=vt(A),A=po(A)),n=new Array(A.length);for(let I=0,l=A.length;I<l;I++)n[I]=e(s?a?ki(Oe(A[I])):Oe(A[I]):A[I],I,void 0,o)}else if(typeof A=="number"){n=new Array(A);for(let g=0;g<A;g++)n[g]=e(g+1,g,void 0,o)}else if(OA(A))if(A[Symbol.iterator])n=Array.from(A,(g,s)=>e(g,s,void 0,o));else{const g=Object.keys(A);n=new Array(g.length);for(let s=0,a=g.length;s<a;s++){const I=g[s];n[s]=e(A[I],I,s,o)}}else n=[];return n}const cr=A=>A?oC(A)?vo(A):cr(A.parent):null,Xi=he(Object.create(null),{$:A=>A,$el:A=>A.vnode.el,$data:A=>A.data,$props:A=>A.props,$attrs:A=>A.attrs,$slots:A=>A.slots,$refs:A=>A.refs,$parent:A=>cr(A.parent),$root:A=>cr(A.root),$host:A=>A.ce,$emit:A=>A.emit,$options:A=>_I(A),$forceUpdate:A=>A.f||(A.f=()=>{ig(A.update)}),$nextTick:A=>A.n||(A.n=hn.bind(A.proxy)),$watch:A=>qB.bind(A)}),Ko=(A,e)=>A!==PA&&!A.__isScriptSetup&&TA(A,e),IQ={get({_:A},e){if(e==="__v_skip")return!0;const{ctx:t,setupState:i,data:n,props:o,accessCache:r,type:g,appContext:s}=A;if(e[0]!=="$"){const C=r[e];if(C!==void 0)switch(C){case 1:return i[e];case 2:return n[e];case 4:return t[e];case 3:return o[e]}else{if(Ko(i,e))return r[e]=1,i[e];if(n!==PA&&TA(n,e))return r[e]=2,n[e];if(TA(o,e))return r[e]=3,o[e];if(t!==PA&&TA(t,e))return r[e]=4,t[e];Er&&(r[e]=0)}}const a=Xi[e];let I,l;if(a)return e==="$attrs"&&Ee(A.attrs,"get",""),a(A);if((I=g.__cssModules)&&(I=I[e]))return I;if(t!==PA&&TA(t,e))return r[e]=4,t[e];if(l=s.config.globalProperties,TA(l,e))return l[e]},set({_:A},e,t){const{data:i,setupState:n,ctx:o}=A;return Ko(n,e)?(n[e]=t,!0):i!==PA&&TA(i,e)?(i[e]=t,!0):TA(A.props,e)||e[0]==="$"&&e.slice(1)in A?!1:(o[e]=t,!0)},has({_:{data:A,setupState:e,accessCache:t,ctx:i,appContext:n,props:o,type:r}},g){let s;return!!(t[g]||A!==PA&&g[0]!=="$"&&TA(A,g)||Ko(e,g)||TA(o,g)||TA(i,g)||TA(Xi,g)||TA(n.config.globalProperties,g)||(s=r.__cssModules)&&s[g])},defineProperty(A,e,t){return t.get!=null?A._.accessCache[e]=0:TA(t,"value")&&this.set(A,e,t.value,null),Reflect.defineProperty(A,e,t)}};function Hg(A){return wA(A)?A.reduce((e,t)=>(e[t]=null,e),{}):A}let Er=!0;function CQ(A){const e=_I(A),t=A.proxy,i=A.ctx;Er=!1,e.beforeCreate&&Yg(e.beforeCreate,A,"bc");const{data:n,computed:o,methods:r,watch:g,provide:s,inject:a,created:I,beforeMount:l,mounted:C,beforeUpdate:Q,updated:u,activated:f,deactivated:h,beforeDestroy:E,beforeUnmount:p,destroyed:c,unmounted:d,render:w,renderTracked:F,renderTriggered:N,errorCaptured:G,serverPrefetch:P,expose:b,inheritAttrs:R,components:L,directives:EA,filters:pA}=e;if(a&&lQ(a,i,null),r)for(const z in r){const tA=r[z];bA(tA)&&(i[z]=tA.bind(t))}if(n){const z=n.call(t,t);OA(z)&&(A.data=mo(z))}if(Er=!0,o)for(const z in o){const tA=o[z],dA=bA(tA)?tA.bind(t,t):bA(tA.get)?tA.get.bind(t,t):rt,kA=!bA(tA)&&bA(tA.set)?tA.set.bind(t):rt,Y=fA({get:dA,set:kA});Object.defineProperty(i,z,{enumerable:!0,configurable:!0,get:()=>Y.value,set:j=>Y.value=j})}if(g)for(const z in g)YI(g[z],i,t,z);if(s){const z=bA(s)?s.call(t):s;Reflect.ownKeys(z).forEach(tA=>{Hn(tA,z[tA])})}I&&Yg(I,A,"c");function nA(z,tA){wA(tA)?tA.forEach(dA=>z(dA.bind(t))):tA&&z(tA.bind(t))}if(nA(JI,l),nA(St,C),nA(eQ,Q),nA(tQ,u),nA(zB,f),nA($B,h),nA(gQ,G),nA(rQ,F),nA(oQ,N),nA(iQ,p),nA(li,d),nA(nQ,P),wA(b))if(b.length){const z=A.exposed||(A.exposed={});b.forEach(tA=>{Object.defineProperty(z,tA,{get:()=>t[tA],set:dA=>t[tA]=dA,enumerable:!0})})}else A.exposed||(A.exposed={});w&&A.render===rt&&(A.render=w),R!=null&&(A.inheritAttrs=R),L&&(A.components=L),EA&&(A.directives=EA),P&&UI(A)}function lQ(A,e,t=rt){wA(A)&&(A=ur(A));for(const i in A){const n=A[i];let o;OA(n)?"default"in n?o=gt(n.from||i,n.default,!0):o=gt(n.from||i):o=gt(n),Be(o)?Object.defineProperty(e,i,{enumerable:!0,configurable:!0,get:()=>o.value,set:r=>o.value=r}):e[i]=o}}function Yg(A,e,t){lt(wA(A)?A.map(i=>i.bind(e.proxy)):A.bind(e.proxy),e,t)}function YI(A,e,t,i){let n=i.includes(".")?LI(t,i):()=>t[i];if(ie(A)){const o=e[A];bA(o)&&Ie(n,o)}else if(bA(A))Ie(n,A.bind(t));else if(OA(A))if(wA(A))A.forEach(o=>YI(o,e,t,i));else{const o=bA(A.handler)?A.handler.bind(t):e[A.handler];bA(o)&&Ie(n,o,A)}}function _I(A){const e=A.type,{mixins:t,extends:i}=e,{mixins:n,optionsCache:o,config:{optionMergeStrategies:r}}=A.appContext,g=o.get(e);let s;return g?s=g:!n.length&&!t&&!i?s=e:(s={},n.length&&n.forEach(a=>$n(s,a,r,!0)),$n(s,e,r)),OA(e)&&o.set(e,s),s}function $n(A,e,t,i=!1){const{mixins:n,extends:o}=e;o&&$n(A,o,t,!0),n&&n.forEach(r=>$n(A,r,t,!0));for(const r in e)if(!(i&&r==="expose")){const g=BQ[r]||t&&t[r];A[r]=g?g(A[r],e[r]):e[r]}return A}const BQ={data:_g,props:Kg,emits:Kg,methods:Oi,computed:Oi,beforeCreate:de,created:de,beforeMount:de,mounted:de,beforeUpdate:de,updated:de,beforeDestroy:de,beforeUnmount:de,destroyed:de,unmounted:de,activated:de,deactivated:de,errorCaptured:de,serverPrefetch:de,components:Oi,directives:Oi,watch:cQ,provide:_g,inject:QQ};function _g(A,e){return e?A?function(){return he(bA(A)?A.call(this,this):A,bA(e)?e.call(this,this):e)}:e:A}function QQ(A,e){return Oi(ur(A),ur(e))}function ur(A){if(wA(A)){const e={};for(let t=0;t<A.length;t++)e[A[t]]=A[t];return e}return A}function de(A,e){return A?[...new Set([].concat(A,e))]:e}function Oi(A,e){return A?he(Object.create(null),A,e):e}function Kg(A,e){return A?wA(A)&&wA(e)?[...new Set([...A,...e])]:he(Object.create(null),Hg(A),Hg(e??{})):e}function cQ(A,e){if(!A)return e;if(!e)return A;const t=he(Object.create(null),A);for(const i in e)t[i]=de(A[i],e[i]);return t}function KI(){return{app:null,config:{isNativeTag:tI,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 EQ=0;function uQ(A,e){return function(i,n=null){bA(i)||(i=he({},i)),n!=null&&!OA(n)&&(n=null);const o=KI(),r=new WeakSet,g=[];let s=!1;const a=o.app={_uid:EQ++,_component:i,_props:n,_container:null,_context:o,_instance:null,version:jQ,get config(){return o.config},set config(I){},use(I,...l){return r.has(I)||(I&&bA(I.install)?(r.add(I),I.install(a,...l)):bA(I)&&(r.add(I),I(a,...l))),a},mixin(I){return o.mixins.includes(I)||o.mixins.push(I),a},component(I,l){return l?(o.components[I]=l,a):o.components[I]},directive(I,l){return l?(o.directives[I]=l,a):o.directives[I]},mount(I,l,C){if(!s){const Q=a._ceVNode||YA(i,n);return Q.appContext=o,C===!0?C="svg":C===!1&&(C=void 0),A(Q,I,C),s=!0,a._container=I,I.__vue_app__=a,vo(Q.component)}},onUnmount(I){g.push(I)},unmount(){s&&(lt(g,a._instance,16),A(null,a._container),delete a._container.__vue_app__)},provide(I,l){return o.provides[I]=l,a},runWithContext(I){const l=mi;mi=a;try{return I()}finally{mi=l}}};return a}}let mi=null;const hQ=(A,e)=>e==="modelValue"||e==="model-value"?A.modelModifiers:A[`${e}Modifiers`]||A[`${Te(e)}Modifiers`]||A[`${Ci(e)}Modifiers`];function fQ(A,e,...t){if(A.isUnmounted)return;const i=A.vnode.props||PA;let n=t;const o=e.startsWith("update:"),r=o&&hQ(i,e.slice(7));r&&(r.trim&&(n=t.map(I=>ie(I)?I.trim():I)),r.number&&(n=t.map(uo)));let g,s=i[g=Jo(e)]||i[g=Jo(Te(e))];!s&&o&&(s=i[g=Jo(Ci(e))]),s&<(s,A,6,n);const a=i[g+"Once"];if(a){if(!A.emitted)A.emitted={};else if(A.emitted[g])return;A.emitted[g]=!0,lt(a,A,6,n)}}const dQ=new WeakMap;function PI(A,e,t=!1){const i=t?dQ:e.emitsCache,n=i.get(A);if(n!==void 0)return n;const o=A.emits;let r={},g=!1;if(!bA(A)){const s=a=>{const I=PI(a,e,!0);I&&(g=!0,he(r,I))};!t&&e.mixins.length&&e.mixins.forEach(s),A.extends&&s(A.extends),A.mixins&&A.mixins.forEach(s)}return!o&&!g?(OA(A)&&i.set(A,null),null):(wA(o)?o.forEach(s=>r[s]=null):he(r,o),OA(A)&&i.set(A,r),r)}function Do(A,e){return!A||!Bo(e)?!1:(e=e.slice(2).replace(/Once$/,""),TA(A,e[0].toLowerCase()+e.slice(1))||TA(A,Ci(e))||TA(A,e))}function Pg(A){const{type:e,vnode:t,proxy:i,withProxy:n,propsOptions:[o],slots:r,attrs:g,emit:s,render:a,renderCache:I,props:l,data:C,setupState:Q,ctx:u,inheritAttrs:f}=A,h=Xn(A);let E,p;try{if(t.shapeFlag&4){const d=n||i,w=d;E=it(a.call(w,d,I,l,Q,C,u)),p=g}else{const d=e;E=it(d.length>1?d(l,{attrs:g,slots:r,emit:s}):d(l,null)),p=e.props?g:pQ(g)}}catch(d){zi.length=0,yo(d,A,1),E=YA(Pt)}let c=E;if(p&&f!==!1){const d=Object.keys(p),{shapeFlag:w}=c;d.length&&w&7&&(o&&d.some(Vr)&&(p=mQ(p,o)),c=vi(c,p,!1,!0))}return t.dirs&&(c=vi(c,null,!1,!0),c.dirs=c.dirs?c.dirs.concat(t.dirs):t.dirs),t.transition&&ng(c,t.transition),E=c,Xn(h),E}const pQ=A=>{let e;for(const t in A)(t==="class"||t==="style"||Bo(t))&&((e||(e={}))[t]=A[t]);return e},mQ=(A,e)=>{const t={};for(const i in A)(!Vr(i)||!(i.slice(9)in e))&&(t[i]=A[i]);return t};function yQ(A,e,t){const{props:i,children:n,component:o}=A,{props:r,children:g,patchFlag:s}=e,a=o.emitsOptions;if(e.dirs||e.transition)return!0;if(t&&s>=0){if(s&1024)return!0;if(s&16)return i?Og(i,r,a):!!r;if(s&8){const I=e.dynamicProps;for(let l=0;l<I.length;l++){const C=I[l];if(r[C]!==i[C]&&!Do(a,C))return!0}}}else return(n||g)&&(!g||!g.$stable)?!0:i===r?!1:i?r?Og(i,r,a):!0:!!r;return!1}function Og(A,e,t){const i=Object.keys(e);if(i.length!==Object.keys(A).length)return!0;for(let n=0;n<i.length;n++){const o=i[n];if(e[o]!==A[o]&&!Do(t,o))return!0}return!1}function wQ({vnode:A,parent:e},t){for(;e;){const i=e.subTree;if(i.suspense&&i.suspense.activeBranch===A&&(i.el=A.el),i===A)(A=e.vnode).el=t,e=e.parent;else break}}const OI={},VI=()=>Object.create(OI),WI=A=>Object.getPrototypeOf(A)===OI;function DQ(A,e,t,i=!1){const n={},o=VI();A.propsDefaults=Object.create(null),qI(A,e,n,o);for(const r in A.propsOptions[0])r in n||(n[r]=void 0);t?A.props=i?n:DI(n):A.type.props?A.props=n:A.props=o,A.attrs=o}function kQ(A,e,t,i){const{props:n,attrs:o,vnode:{patchFlag:r}}=A,g=JA(n),[s]=A.propsOptions;let a=!1;if((i||r>0)&&!(r&16)){if(r&8){const I=A.vnode.dynamicProps;for(let l=0;l<I.length;l++){let C=I[l];if(Do(A.emitsOptions,C))continue;const Q=e[C];if(s)if(TA(o,C))Q!==o[C]&&(o[C]=Q,a=!0);else{const u=Te(C);n[u]=hr(s,g,u,Q,A,!1)}else Q!==o[C]&&(o[C]=Q,a=!0)}}}else{qI(A,e,n,o)&&(a=!0);let I;for(const l in g)(!e||!TA(e,l)&&((I=Ci(l))===l||!TA(e,I)))&&(s?t&&(t[l]!==void 0||t[I]!==void 0)&&(n[l]=hr(s,g,l,void 0,A,!0)):delete n[l]);if(o!==g)for(const l in o)(!e||!TA(e,l))&&(delete o[l],a=!0)}a&&ht(A.attrs,"set","")}function qI(A,e,t,i){const[n,o]=A.propsOptions;let r=!1,g;if(e)for(let s in e){if(Vi(s))continue;const a=e[s];let I;n&&TA(n,I=Te(s))?!o||!o.includes(I)?t[I]=a:(g||(g={}))[I]=a:Do(A.emitsOptions,s)||(!(s in i)||a!==i[s])&&(i[s]=a,r=!0)}if(o){const s=JA(t),a=g||PA;for(let I=0;I<o.length;I++){const l=o[I];t[l]=hr(n,s,l,a[l],A,!TA(a,l))}}return r}function hr(A,e,t,i,n,o){const r=A[t];if(r!=null){const g=TA(r,"default");if(g&&i===void 0){const s=r.default;if(r.type!==Function&&!r.skipFactory&&bA(s)){const{propsDefaults:a}=n;if(t in a)i=a[t];else{const I=pn(n);i=a[t]=s.call(null,e),I()}}else i=s;n.ce&&n.ce._setProp(t,i)}r[0]&&(o&&!g?i=!1:r[1]&&(i===""||i===Ci(t))&&(i=!0))}return i}const vQ=new WeakMap;function jI(A,e,t=!1){const i=t?vQ:e.propsCache,n=i.get(A);if(n)return n;const o=A.props,r={},g=[];let s=!1;if(!bA(A)){const I=l=>{s=!0;const[C,Q]=jI(l,e,!0);he(r,C),Q&&g.push(...Q)};!t&&e.mixins.length&&e.mixins.forEach(I),A.extends&&I(A.extends),A.mixins&&A.mixins.forEach(I)}if(!o&&!s)return OA(A)&&i.set(A,fi),fi;if(wA(o))for(let I=0;I<o.length;I++){const l=Te(o[I]);Vg(l)&&(r[l]=PA)}else if(o)for(const I in o){const l=Te(I);if(Vg(l)){const C=o[I],Q=r[l]=wA(C)||bA(C)?{type:C}:he({},C),u=Q.type;let f=!1,h=!0;if(wA(u))for(let E=0;E<u.length;++E){const p=u[E],c=bA(p)&&p.name;if(c==="Boolean"){f=!0;break}else c==="String"&&(h=!1)}else f=bA(u)&&u.name==="Boolean";Q[0]=f,Q[1]=h,(f||TA(Q,"default"))&&g.push(l)}}const a=[r,g];return OA(A)&&i.set(A,a),a}function Vg(A){return A[0]!=="$"&&!Vi(A)}const og=A=>A==="_"||A==="_ctx"||A==="$stable",rg=A=>wA(A)?A.map(it):[it(A)],FQ=(A,e,t)=>{if(e._n)return e;const i=OB((...n)=>rg(e(...n)),t);return i._c=!1,i},ZI=(A,e,t)=>{const i=A._ctx;for(const n in A){if(og(n))continue;const o=A[n];if(bA(o))e[n]=FQ(n,o,i);else if(o!=null){const r=rg(o);e[n]=()=>r}}},XI=(A,e)=>{const t=rg(e);A.slots.default=()=>t},zI=(A,e,t)=>{for(const i in e)(t||!og(i))&&(A[i]=e[i])},SQ=(A,e,t)=>{const i=A.slots=VI();if(A.vnode.shapeFlag&32){const n=e._;n?(zI(i,e,t),t&&rI(i,"_",n,!0)):ZI(e,i)}else e&&XI(A,e)},bQ=(A,e,t)=>{const{vnode:i,slots:n}=A;let o=!0,r=PA;if(i.shapeFlag&32){const g=e._;g?t&&g===1?o=!1:zI(n,e,t):(o=!e.$stable,ZI(e,n)),r=e}else e&&(XI(A,e),r={default:1});if(o)for(const g in n)!og(g)&&r[g]==null&&delete n[g]},be=UQ;function RQ(A){return NQ(A)}function NQ(A,e){const t=ho();t.__VUE__=!0;const{insert:i,remove:n,patchProp:o,createElement:r,createText:g,createComment:s,setText:a,setElementText:I,parentNode:l,nextSibling:C,setScopeId:Q=rt,insertStaticContent:u}=A,f=(D,S,k,J=null,q=null,V=null,iA=void 0,eA=null,m=!!S.dynamicChildren)=>{if(D===S)return;D&&!Ti(D,S)&&(J=M(D),j(D,q,V,!0),D=null),S.patchFlag===-2&&(m=!1,S.dynamicChildren=null);const{type:y,ref:x,shapeFlag:K}=S;switch(y){case dn:h(D,S,k,J);break;case Pt:E(D,S,k,J);break;case Yn:D==null&&p(S,k,J,iA);break;case ZA:L(D,S,k,J,q,V,iA,eA,m);break;default:K&1?w(D,S,k,J,q,V,iA,eA,m):K&6?EA(D,S,k,J,q,V,iA,eA,m):(K&64||K&128)&&y.process(D,S,k,J,q,V,iA,eA,m,CA)}x!=null&&q?ji(x,D&&D.ref,V,S||D,!S):x==null&&D&&D.ref!=null&&ji(D.ref,null,V,D,!0)},h=(D,S,k,J)=>{if(D==null)i(S.el=g(S.children),k,J);else{const q=S.el=D.el;S.children!==D.children&&a(q,S.children)}},E=(D,S,k,J)=>{D==null?i(S.el=s(S.children||""),k,J):S.el=D.el},p=(D,S,k,J)=>{[D.el,D.anchor]=u(D.children,S,k,J,D.el,D.anchor)},c=({el:D,anchor:S},k,J)=>{let q;for(;D&&D!==S;)q=C(D),i(D,k,J),D=q;i(S,k,J)},d=({el:D,anchor:S})=>{let k;for(;D&&D!==S;)k=C(D),n(D),D=k;n(S)},w=(D,S,k,J,q,V,iA,eA,m)=>{if(S.type==="svg"?iA="svg":S.type==="math"&&(iA="mathml"),D==null)F(S,k,J,q,V,iA,eA,m);else{const y=D.el&&D.el._isVueCE?D.el:null;try{y&&y._beginPatch(),P(D,S,q,V,iA,eA,m)}finally{y&&y._endPatch()}}},F=(D,S,k,J,q,V,iA,eA)=>{let m,y;const{props:x,shapeFlag:K,transition:oA,dirs:$}=D;if(m=D.el=r(D.type,V,x&&x.is,x),K&8?I(m,D.children):K&16&&G(D.children,m,null,J,q,Po(D,V),iA,eA),$&&Xt(D,null,J,"created"),N(m,D,D.scopeId,iA,J),x){for(const O in x)O!=="value"&&!Vi(O)&&o(m,O,null,x[O],V,J);"value"in x&&o(m,"value",null,x.value,V),(y=x.onVnodeBeforeMount)&&$e(y,J,D)}$&&Xt(D,null,J,"beforeMount");const U=GQ(q,oA);U&&oA.beforeEnter(m),i(m,S,k),((y=x&&x.onVnodeMounted)||U||$)&&be(()=>{y&&$e(y,J,D),U&&oA.enter(m),$&&Xt(D,null,J,"mounted")},q)},N=(D,S,k,J,q)=>{if(k&&Q(D,k),J)for(let V=0;V<J.length;V++)Q(D,J[V]);if(q){let V=q.subTree;if(S===V||tC(V.type)&&(V.ssContent===S||V.ssFallback===S)){const iA=q.vnode;N(D,iA,iA.scopeId,iA.slotScopeIds,q.parent)}}},G=(D,S,k,J,q,V,iA,eA,m=0)=>{for(let y=m;y<D.length;y++){const x=D[y]=eA?Jt(D[y]):it(D[y]);f(null,x,S,k,J,q,V,iA,eA)}},P=(D,S,k,J,q,V,iA)=>{const eA=S.el=D.el;let{patchFlag:m,dynamicChildren:y,dirs:x}=S;m|=D.patchFlag&16;const K=D.props||PA,oA=S.props||PA;let $;if(k&&zt(k,!1),($=oA.onVnodeBeforeUpdate)&&$e($,k,S,D),x&&Xt(S,D,k,"beforeUpdate"),k&&zt(k,!0),(K.innerHTML&&oA.innerHTML==null||K.textContent&&oA.textContent==null)&&I(eA,""),y?b(D.dynamicChildren,y,eA,k,J,Po(S,q),V):iA||tA(D,S,eA,null,k,J,Po(S,q),V,!1),m>0){if(m&16)R(eA,K,oA,k,q);else if(m&2&&K.class!==oA.class&&o(eA,"class",null,oA.class,q),m&4&&o(eA,"style",K.style,oA.style,q),m&8){const U=S.dynamicProps;for(let O=0;O<U.length;O++){const hA=U[O],GA=K[hA],XA=oA[hA];(XA!==GA||hA==="value")&&o(eA,hA,GA,XA,q,k)}}m&1&&D.children!==S.children&&I(eA,S.children)}else!iA&&y==null&&R(eA,K,oA,k,q);(($=oA.onVnodeUpdated)||x)&&be(()=>{$&&$e($,k,S,D),x&&Xt(S,D,k,"updated")},J)},b=(D,S,k,J,q,V,iA)=>{for(let eA=0;eA<S.length;eA++){const m=D[eA],y=S[eA],x=m.el&&(m.type===ZA||!Ti(m,y)||m.shapeFlag&198)?l(m.el):k;f(m,y,x,null,J,q,V,iA,!0)}},R=(D,S,k,J,q)=>{if(S!==k){if(S!==PA)for(const V in S)!Vi(V)&&!(V in k)&&o(D,V,S[V],null,q,J);for(const V in k){if(Vi(V))continue;const iA=k[V],eA=S[V];iA!==eA&&V!=="value"&&o(D,V,eA,iA,q,J)}"value"in k&&o(D,"value",S.value,k.value,q)}},L=(D,S,k,J,q,V,iA,eA,m)=>{const y=S.el=D?D.el:g(""),x=S.anchor=D?D.anchor:g("");let{patchFlag:K,dynamicChildren:oA,slotScopeIds:$}=S;$&&(eA=eA?eA.concat($):$),D==null?(i(y,k,J),i(x,k,J),G(S.children||[],k,x,q,V,iA,eA,m)):K>0&&K&64&&oA&&D.dynamicChildren&&D.dynamicChildren.length===oA.length?(b(D.dynamicChildren,oA,k,q,V,iA,eA),(S.key!=null||q&&S===q.subTree)&&$I(D,S,!0)):tA(D,S,k,x,q,V,iA,eA,m)},EA=(D,S,k,J,q,V,iA,eA,m)=>{S.slotScopeIds=eA,D==null?S.shapeFlag&512?q.ctx.activate(S,k,J,iA,m):pA(S,k,J,q,V,iA,m):lA(D,S,m)},pA=(D,S,k,J,q,V,iA)=>{const eA=D.component=_Q(D,J,q);if(MI(D)&&(eA.ctx.renderer=CA),KQ(eA,!1,iA),eA.asyncDep){if(q&&q.registerDep(eA,nA,iA),!D.el){const m=eA.subTree=YA(Pt);E(null,m,S,k),D.placeholder=m.el}}else nA(eA,D,S,k,q,V,iA)},lA=(D,S,k)=>{const J=S.component=D.component;if(yQ(D,S,k))if(J.asyncDep&&!J.asyncResolved){z(J,S,k);return}else J.next=S,J.update();else S.el=D.el,J.vnode=S},nA=(D,S,k,J,q,V,iA)=>{const eA=()=>{if(D.isMounted){let{next:K,bu:oA,u:$,parent:U,vnode:O}=D;{const le=AC(D);if(le){K&&(K.el=O.el,z(D,K,iA)),le.asyncDep.then(()=>{D.isUnmounted||eA()});return}}let hA=K,GA;zt(D,!1),K?(K.el=O.el,z(D,K,iA)):K=O,oA&&Tn(oA),(GA=K.props&&K.props.onVnodeBeforeUpdate)&&$e(GA,U,K,O),zt(D,!0);const XA=Pg(D),fe=D.subTree;D.subTree=XA,f(fe,XA,l(fe.el),M(fe),D,q,V),K.el=XA.el,hA===null&&wQ(D,XA.el),$&&be($,q),(GA=K.props&&K.props.onVnodeUpdated)&&be(()=>$e(GA,U,K,O),q)}else{let K;const{el:oA,props:$}=S,{bm:U,m:O,parent:hA,root:GA,type:XA}=D,fe=Zi(S);zt(D,!1),U&&Tn(U),!fe&&(K=$&&$.onVnodeBeforeMount)&&$e(K,hA,S),zt(D,!0);{GA.ce&&GA.ce._def.shadowRoot!==!1&&GA.ce._injectChildStyle(XA);const le=D.subTree=Pg(D);f(null,le,k,J,D,q,V),S.el=le.el}if(O&&be(O,q),!fe&&(K=$&&$.onVnodeMounted)){const le=S;be(()=>$e(K,hA,le),q)}(S.shapeFlag&256||hA&&Zi(hA.vnode)&&hA.vnode.shapeFlag&256)&&D.a&&be(D.a,q),D.isMounted=!0,S=k=J=null}};D.scope.on();const m=D.effect=new CI(eA);D.scope.off();const y=D.update=m.run.bind(m),x=D.job=m.runIfDirty.bind(m);x.i=D,x.id=D.uid,m.scheduler=()=>ig(x),zt(D,!0),y()},z=(D,S,k)=>{S.component=D;const J=D.vnode.props;D.vnode=S,D.next=null,kQ(D,S.props,J,k),bQ(D,S.children,k),Dt(),xg(D),kt()},tA=(D,S,k,J,q,V,iA,eA,m=!1)=>{const y=D&&D.children,x=D?D.shapeFlag:0,K=S.children,{patchFlag:oA,shapeFlag:$}=S;if(oA>0){if(oA&128){kA(y,K,k,J,q,V,iA,eA,m);return}else if(oA&256){dA(y,K,k,J,q,V,iA,eA,m);return}}$&8?(x&16&&HA(y,q,V),K!==y&&I(k,K)):x&16?$&16?kA(y,K,k,J,q,V,iA,eA,m):HA(y,q,V,!0):(x&8&&I(k,""),$&16&&G(K,k,J,q,V,iA,eA,m))},dA=(D,S,k,J,q,V,iA,eA,m)=>{D=D||fi,S=S||fi;const y=D.length,x=S.length,K=Math.min(y,x);let oA;for(oA=0;oA<K;oA++){const $=S[oA]=m?Jt(S[oA]):it(S[oA]);f(D[oA],$,k,null,q,V,iA,eA,m)}y>x?HA(D,q,V,!0,!1,K):G(S,k,J,q,V,iA,eA,m,K)},kA=(D,S,k,J,q,V,iA,eA,m)=>{let y=0;const x=S.length;let K=D.length-1,oA=x-1;for(;y<=K&&y<=oA;){const $=D[y],U=S[y]=m?Jt(S[y]):it(S[y]);if(Ti($,U))f($,U,k,null,q,V,iA,eA,m);else break;y++}for(;y<=K&&y<=oA;){const $=D[K],U=S[oA]=m?Jt(S[oA]):it(S[oA]);if(Ti($,U))f($,U,k,null,q,V,iA,eA,m);else break;K--,oA--}if(y>K){if(y<=oA){const $=oA+1,U=$<x?S[$].el:J;for(;y<=oA;)f(null,S[y]=m?Jt(S[y]):it(S[y]),k,U,q,V,iA,eA,m),y++}}else if(y>oA)for(;y<=K;)j(D[y],q,V,!0),y++;else{const $=y,U=y,O=new Map;for(y=U;y<=oA;y++){const Se=S[y]=m?Jt(S[y]):it(S[y]);Se.key!=null&&O.set(Se.key,y)}let hA,GA=0;const XA=oA-U+1;let fe=!1,le=0;const Zt=new Array(XA);for(y=0;y<XA;y++)Zt[y]=0;for(y=$;y<=K;y++){const Se=D[y];if(GA>=XA){j(Se,q,V,!0);continue}let ze;if(Se.key!=null)ze=O.get(Se.key);else for(hA=U;hA<=oA;hA++)if(Zt[hA-U]===0&&Ti(Se,S[hA])){ze=hA;break}ze===void 0?j(Se,q,V,!0):(Zt[ze-U]=y+1,ze>=le?le=ze:fe=!0,f(Se,S[ze],k,null,q,V,iA,eA,m),GA++)}const xo=fe?LQ(Zt):fi;for(hA=xo.length-1,y=XA-1;y>=0;y--){const Se=U+y,ze=S[Se],Rg=S[Se+1],Ng=Se+1<x?Rg.el||eC(Rg):J;Zt[y]===0?f(null,ze,k,Ng,q,V,iA,eA,m):fe&&(hA<0||y!==xo[hA]?Y(ze,k,Ng,2):hA--)}}},Y=(D,S,k,J,q=null)=>{const{el:V,type:iA,transition:eA,children:m,shapeFlag:y}=D;if(y&6){Y(D.component.subTree,S,k,J);return}if(y&128){D.suspense.move(S,k,J);return}if(y&64){iA.move(D,S,k,CA);return}if(iA===ZA){i(V,S,k);for(let K=0;K<m.length;K++)Y(m[K],S,k,J);i(D.anchor,S,k);return}if(iA===Yn){c(D,S,k);return}if(J!==2&&y&1&&eA)if(J===0)eA.beforeEnter(V),i(V,S,k),be(()=>eA.enter(V),q);else{const{leave:K,delayLeave:oA,afterLeave:$}=eA,U=()=>{D.ctx.isUnmounted?n(V):i(V,S,k)},O=()=>{V._isLeaving&&V[XB](!0),K(V,()=>{U(),$&&$()})};oA?oA(V,U,O):O()}else i(V,S,k)},j=(D,S,k,J=!1,q=!1)=>{const{type:V,props:iA,ref:eA,children:m,dynamicChildren:y,shapeFlag:x,patchFlag:K,dirs:oA,cacheIndex:$}=D;if(K===-2&&(q=!1),eA!=null&&(Dt(),ji(eA,null,k,D,!0),kt()),$!=null&&(S.renderCache[$]=void 0),x&256){S.ctx.deactivate(D);return}const U=x&1&&oA,O=!Zi(D);let hA;if(O&&(hA=iA&&iA.onVnodeBeforeUnmount)&&$e(hA,S,D),x&6)UA(D.component,k,J);else{if(x&128){D.suspense.unmount(k,J);return}U&&Xt(D,null,S,"beforeUnmount"),x&64?D.type.remove(D,S,k,CA,J):y&&!y.hasOnce&&(V!==ZA||K>0&&K&64)?HA(y,S,k,!1,!0):(V===ZA&&K&384||!q&&x&16)&&HA(m,S,k),J&&sA(D)}(O&&(hA=iA&&iA.onVnodeUnmounted)||U)&&be(()=>{hA&&$e(hA,S,D),U&&Xt(D,null,S,"unmounted")},k)},sA=D=>{const{type:S,el:k,anchor:J,transition:q}=D;if(S===ZA){SA(k,J);return}if(S===Yn){d(D);return}const V=()=>{n(k),q&&!q.persisted&&q.afterLeave&&q.afterLeave()};if(D.shapeFlag&1&&q&&!q.persisted){const{leave:iA,delayLeave:eA}=q,m=()=>iA(k,V);eA?eA(D.el,V,m):m()}else V()},SA=(D,S)=>{let k;for(;D!==S;)k=C(D),n(D),D=k;n(S)},UA=(D,S,k)=>{const{bum:J,scope:q,job:V,subTree:iA,um:eA,m,a:y}=D;Wg(m),Wg(y),J&&Tn(J),q.stop(),V&&(V.flags|=8,j(iA,D,S,k)),eA&&be(eA,S),be(()=>{D.isUnmounted=!0},S)},HA=(D,S,k,J=!1,q=!1,V=0)=>{for(let iA=V;iA<D.length;iA++)j(D[iA],S,k,J,q)},M=D=>{if(D.shapeFlag&6)return M(D.component.subTree);if(D.shapeFlag&128)return D.suspense.next();const S=C(D.anchor||D.el),k=S&&S[jB];return k?C(k):S};let X=!1;const AA=(D,S,k)=>{let J;D==null?S._vnode&&(j(S._vnode,null,null,!0),J=S._vnode.component):f(S._vnode||null,D,S,null,null,null,k),S._vnode=D,X||(X=!0,xg(J),bI(),X=!1)},CA={p:f,um:j,m:Y,r:sA,mt:pA,mc:G,pc:tA,pbc:b,n:M,o:A};return{render:AA,hydrate:void 0,createApp:uQ(AA)}}function Po({type:A,props:e},t){return t==="svg"&&A==="foreignObject"||t==="mathml"&&A==="annotation-xml"&&e&&e.encoding&&e.encoding.includes("html")?void 0:t}function zt({effect:A,job:e},t){t?(A.flags|=32,e.flags|=4):(A.flags&=-33,e.flags&=-5)}function GQ(A,e){return(!A||A&&!A.pendingBranch)&&e&&!e.persisted}function $I(A,e,t=!1){const i=A.children,n=e.children;if(wA(i)&&wA(n))for(let o=0;o<i.length;o++){const r=i[o];let g=n[o];g.shapeFlag&1&&!g.dynamicChildren&&((g.patchFlag<=0||g.patchFlag===32)&&(g=n[o]=Jt(n[o]),g.el=r.el),!t&&g.patchFlag!==-2&&$I(r,g)),g.type===dn&&(g.patchFlag!==-1?g.el=r.el:g.__elIndex=o+(A.type===ZA?1:0)),g.type===Pt&&!g.el&&(g.el=r.el)}}function LQ(A){const e=A.slice(),t=[0];let i,n,o,r,g;const s=A.length;for(i=0;i<s;i++){const a=A[i];if(a!==0){if(n=t[t.length-1],A[n]<a){e[i]=n,t.push(i);continue}for(o=0,r=t.length-1;o<r;)g=o+r>>1,A[t[g]]<a?o=g+1:r=g;a<A[t[o]]&&(o>0&&(e[i]=t[o-1]),t[o]=i)}}for(o=t.length,r=t[o-1];o-- >0;)t[o]=r,r=e[r];return t}function AC(A){const e=A.subTree.component;if(e)return e.asyncDep&&!e.asyncResolved?e:AC(e)}function Wg(A){if(A)for(let e=0;e<A.length;e++)A[e].flags|=8}function eC(A){if(A.placeholder)return A.placeholder;const e=A.component;return e?eC(e.subTree):null}const tC=A=>A.__isSuspense;function UQ(A,e){e&&e.pendingBranch?wA(A)?e.effects.push(...A):e.effects.push(A):PB(A)}const ZA=Symbol.for("v-fgt"),dn=Symbol.for("v-txt"),Pt=Symbol.for("v-cmt"),Yn=Symbol.for("v-stc"),zi=[];let Ne=null;function H(A=!1){zi.push(Ne=A?null:[])}function MQ(){zi.pop(),Ne=zi[zi.length-1]||null}let on=1;function Ao(A,e=!1){on+=A,A<0&&Ne&&e&&(Ne.hasOnce=!0)}function iC(A){return A.dynamicChildren=on>0?Ne||fi:null,MQ(),on>0&&Ne&&Ne.push(A),A}function _(A,e,t,i,n,o){return iC(B(A,e,t,i,n,o,!0))}function we(A,e,t,i,n){return iC(YA(A,e,t,i,n,!0))}function eo(A){return A?A.__v_isVNode===!0:!1}function Ti(A,e){return A.type===e.type&&A.key===e.key}const nC=({key:A})=>A??null,_n=({ref:A,ref_key:e,ref_for:t})=>(typeof A=="number"&&(A=""+A),A!=null?ie(A)||Be(A)||bA(A)?{i:Re,r:A,k:e,f:!!t}:A:null);function B(A,e=null,t=null,i=0,n=null,o=A===ZA?0:1,r=!1,g=!1){const s={__v_isVNode:!0,__v_skip:!0,type:A,props:e,key:e&&nC(e),ref:e&&_n(e),scopeId:NI,slotScopeIds:null,children:t,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:i,dynamicProps:n,dynamicChildren:null,appContext:null,ctx:Re};return g?(gg(s,t),o&128&&A.normalize(s)):t&&(s.shapeFlag|=ie(t)?8:16),on>0&&!r&&Ne&&(s.patchFlag>0||o&6)&&s.patchFlag!==32&&Ne.push(s),s}const YA=xQ;function xQ(A,e=null,t=null,i=0,n=null,o=!1){if((!A||A===TI)&&(A=Pt),eo(A)){const g=vi(A,e,!0);return t&&gg(g,t),on>0&&!o&&Ne&&(g.shapeFlag&6?Ne[Ne.indexOf(A)]=g:Ne.push(g)),g.patchFlag=-2,g}if(qQ(A)&&(A=A.__vccOpts),e){e=JQ(e);let{class:g,style:s}=e;g&&!ie(g)&&(e.class=vA(g)),OA(s)&&(eg(s)&&!wA(s)&&(s=he({},s)),e.style=qA(s))}const r=ie(A)?1:tC(A)?128:ZB(A)?64:OA(A)?4:bA(A)?2:0;return B(A,e,t,i,n,r,o,!0)}function JQ(A){return A?eg(A)||WI(A)?he({},A):A:null}function vi(A,e,t=!1,i=!1){const{props:n,ref:o,patchFlag:r,children:g,transition:s}=A,a=e?TQ(n||{},e):n,I={__v_isVNode:!0,__v_skip:!0,type:A.type,props:a,key:a&&nC(a),ref:e&&e.ref?t&&o?wA(o)?o.concat(_n(e)):[o,_n(e)]:_n(e):o,scopeId:A.scopeId,slotScopeIds:A.slotScopeIds,children:g,target:A.target,targetStart:A.targetStart,targetAnchor:A.targetAnchor,staticCount:A.staticCount,shapeFlag:A.shapeFlag,patchFlag:e&&A.type!==ZA?r===-1?16:r|16:r,dynamicProps:A.dynamicProps,dynamicChildren:A.dynamicChildren,appContext:A.appContext,dirs:A.dirs,transition:s,component:A.component,suspense:A.suspense,ssContent:A.ssContent&&vi(A.ssContent),ssFallback:A.ssFallback&&vi(A.ssFallback),placeholder:A.placeholder,el:A.el,anchor:A.anchor,ctx:A.ctx,ce:A.ce};return s&&i&&ng(I,s.clone(I)),I}function st(A=" ",e=0){return YA(dn,null,A,e)}function ko(A,e){const t=YA(Yn,null,A);return t.staticCount=e,t}function aA(A="",e=!1){return e?(H(),we(Pt,null,A)):YA(Pt,null,A)}function it(A){return A==null||typeof A=="boolean"?YA(Pt):wA(A)?YA(ZA,null,A.slice()):eo(A)?Jt(A):YA(dn,null,String(A))}function Jt(A){return A.el===null&&A.patchFlag!==-1||A.memo?A:vi(A)}function gg(A,e){let t=0;const{shapeFlag:i}=A;if(e==null)e=null;else if(wA(e))t=16;else if(typeof e=="object")if(i&65){const n=e.default;n&&(n._c&&(n._d=!1),gg(A,n()),n._c&&(n._d=!0));return}else{t=32;const n=e._;!n&&!WI(e)?e._ctx=Re:n===3&&Re&&(Re.slots._===1?e._=1:(e._=2,A.patchFlag|=1024))}else bA(e)?(e={default:e,_ctx:Re},t=32):(e=String(e),i&64?(t=16,e=[st(e)]):t=8);A.children=e,A.shapeFlag|=t}function TQ(...A){const e={};for(let t=0;t<A.length;t++){const i=A[t];for(const n in i)if(n==="class")e.class!==i.class&&(e.class=vA([e.class,i.class]));else if(n==="style")e.style=qA([e.style,i.style]);else if(Bo(n)){const o=e[n],r=i[n];r&&o!==r&&!(wA(o)&&o.includes(r))&&(e[n]=o?[].concat(o,r):r)}else n!==""&&(e[n]=i[n])}return e}function $e(A,e,t,i=null){lt(A,e,7,[t,i])}const HQ=KI();let YQ=0;function _Q(A,e,t){const i=A.type,n=(e?e.appContext:A.appContext)||HQ,o={uid:YQ++,vnode:A,type:i,parent:e,appContext:n,root:null,next:null,subTree:null,effect:null,update:null,job:null,scope:new II(!0),render:null,proxy:null,exposed:null,exposeProxy:null,withProxy:null,provides:e?e.provides:Object.create(n.provides),ids:e?e.ids:["",0,0],accessCache:null,renderCache:[],components:null,directives:null,propsOptions:jI(i,n),emitsOptions:PI(i,n),emit:null,emitted:null,propsDefaults:PA,inheritAttrs:i.inheritAttrs,ctx:PA,data:PA,props:PA,attrs:PA,slots:PA,refs:PA,setupState:PA,setupContext:null,suspense:t,suspenseId:t?t.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=e?e.root:o,o.emit=fQ.bind(null,o),A.ce&&A.ce(o),o}let ue=null;const Fi=()=>ue||Re;let to,fr;{const A=ho(),e=(t,i)=>{let n;return(n=A[t])||(n=A[t]=[]),n.push(i),o=>{n.length>1?n.forEach(r=>r(o)):n[0](o)}};to=e("__VUE_INSTANCE_SETTERS__",t=>ue=t),fr=e("__VUE_SSR_SETTERS__",t=>rn=t)}const pn=A=>{const e=ue;return to(A),A.scope.on(),()=>{A.scope.off(),to(e)}},qg=()=>{ue&&ue.scope.off(),to(null)};function oC(A){return A.vnode.shapeFlag&4}let rn=!1;function KQ(A,e=!1,t=!1){e&&fr(e);const{props:i,children:n}=A.vnode,o=oC(A);DQ(A,i,o,e),SQ(A,n,t||e);const r=o?PQ(A,e):void 0;return e&&fr(!1),r}function PQ(A,e){const t=A.type;A.accessCache=Object.create(null),A.proxy=new Proxy(A.ctx,IQ);const{setup:i}=t;if(i){Dt();const n=A.setupContext=i.length>1?VQ(A):null,o=pn(A),r=un(i,A,0,[A.props,n]),g=iI(r);if(kt(),o(),(g||A.sp)&&!Zi(A)&&UI(A),g){if(r.then(qg,qg),e)return r.then(s=>{jg(A,s)}).catch(s=>{yo(s,A,0)});A.asyncDep=r}else jg(A,r)}else rC(A)}function jg(A,e,t){bA(e)?A.type.__ssrInlineRender?A.ssrRender=e:A.render=e:OA(e)&&(A.setupState=vI(e)),rC(A)}function rC(A,e,t){const i=A.type;A.render||(A.render=i.render||rt);{const n=pn(A);Dt();try{CQ(A)}finally{kt(),n()}}}const OQ={get(A,e){return Ee(A,"get",""),A[e]}};function VQ(A){const e=t=>{A.exposed=t||{}};return{attrs:new Proxy(A.attrs,OQ),slots:A.slots,emit:A.emit,expose:e}}function vo(A){return A.exposed?A.exposeProxy||(A.exposeProxy=new Proxy(vI(Pi(A.exposed)),{get(e,t){if(t in e)return e[t];if(t in Xi)return Xi[t](A)},has(e,t){return t in e||t in Xi}})):A.proxy}function WQ(A,e=!0){return bA(A)?A.displayName||A.name:A.name||e&&A.__name}function qQ(A){return bA(A)&&"__vccOpts"in A}const fA=(A,e)=>TB(A,e,rn);function LA(A,e,t){try{Ao(-1);const i=arguments.length;return i===2?OA(e)&&!wA(e)?eo(e)?YA(A,null,[e]):YA(A,e):YA(A,null,e):(i>3?t=Array.prototype.slice.call(arguments,2):i===3&&eo(t)&&(t=[t]),YA(A,e,t))}finally{Ao(1)}}const jQ="3.5.26";/**
|
||
* @vue/runtime-dom v3.5.26
|
||
* (c) 2018-present Yuxi (Evan) You and Vue contributors
|
||
* @license MIT
|
||
**/let dr;const Zg=typeof window<"u"&&window.trustedTypes;if(Zg)try{dr=Zg.createPolicy("vue",{createHTML:A=>A})}catch{}const gC=dr?A=>dr.createHTML(A):A=>A,ZQ="http://www.w3.org/2000/svg",XQ="http://www.w3.org/1998/Math/MathML",ut=typeof document<"u"?document:null,Xg=ut&&ut.createElement("template"),zQ={insert:(A,e,t)=>{e.insertBefore(A,t||null)},remove:A=>{const e=A.parentNode;e&&e.removeChild(A)},createElement:(A,e,t,i)=>{const n=e==="svg"?ut.createElementNS(ZQ,A):e==="mathml"?ut.createElementNS(XQ,A):t?ut.createElement(A,{is:t}):ut.createElement(A);return A==="select"&&i&&i.multiple!=null&&n.setAttribute("multiple",i.multiple),n},createText:A=>ut.createTextNode(A),createComment:A=>ut.createComment(A),setText:(A,e)=>{A.nodeValue=e},setElementText:(A,e)=>{A.textContent=e},parentNode:A=>A.parentNode,nextSibling:A=>A.nextSibling,querySelector:A=>ut.querySelector(A),setScopeId(A,e){A.setAttribute(e,"")},insertStaticContent(A,e,t,i,n,o){const r=t?t.previousSibling:e.lastChild;if(n&&(n===o||n.nextSibling))for(;e.insertBefore(n.cloneNode(!0),t),!(n===o||!(n=n.nextSibling)););else{Xg.innerHTML=gC(i==="svg"?`<svg>${A}</svg>`:i==="mathml"?`<math>${A}</math>`:A);const g=Xg.content;if(i==="svg"||i==="mathml"){const s=g.firstChild;for(;s.firstChild;)g.appendChild(s.firstChild);g.removeChild(s)}e.insertBefore(g,t)}return[r?r.nextSibling:e.firstChild,t?t.previousSibling:e.lastChild]}},$Q=Symbol("_vtc");function Ac(A,e,t){const i=A[$Q];i&&(e=(e?[e,...i]:[...i]).join(" ")),e==null?A.removeAttribute("class"):t?A.setAttribute("class",e):A.className=e}const zg=Symbol("_vod"),ec=Symbol("_vsh"),tc=Symbol(""),ic=/(?:^|;)\s*display\s*:/;function nc(A,e,t){const i=A.style,n=ie(t);let o=!1;if(t&&!n){if(e)if(ie(e))for(const r of e.split(";")){const g=r.slice(0,r.indexOf(":")).trim();t[g]==null&&Kn(i,g,"")}else for(const r in e)t[r]==null&&Kn(i,r,"");for(const r in t)r==="display"&&(o=!0),Kn(i,r,t[r])}else if(n){if(e!==t){const r=i[tc];r&&(t+=";"+r),i.cssText=t,o=ic.test(t)}}else e&&A.removeAttribute("style");zg in A&&(A[zg]=o?i.display:"",A[ec]&&(i.display="none"))}const $g=/\s*!important$/;function Kn(A,e,t){if(wA(t))t.forEach(i=>Kn(A,e,i));else if(t==null&&(t=""),e.startsWith("--"))A.setProperty(e,t);else{const i=oc(A,e);$g.test(t)?A.setProperty(Ci(i),t.replace($g,""),"important"):A[i]=t}}const As=["Webkit","Moz","ms"],Oo={};function oc(A,e){const t=Oo[e];if(t)return t;let i=Te(e);if(i!=="filter"&&i in A)return Oo[e]=i;i=Eo(i);for(let n=0;n<As.length;n++){const o=As[n]+i;if(o in A)return Oo[e]=o}return e}const es="http://www.w3.org/1999/xlink";function ts(A,e,t,i,n,o=BB(e)){i&&e.startsWith("xlink:")?t==null?A.removeAttributeNS(es,e.slice(6,e.length)):A.setAttributeNS(es,e,t):t==null||o&&!gI(t)?A.removeAttribute(e):A.setAttribute(e,o?"":Ct(t)?String(t):t)}function is(A,e,t,i,n){if(e==="innerHTML"||e==="textContent"){t!=null&&(A[e]=e==="innerHTML"?gC(t):t);return}const o=A.tagName;if(e==="value"&&o!=="PROGRESS"&&!o.includes("-")){const g=o==="OPTION"?A.getAttribute("value")||"":A.value,s=t==null?A.type==="checkbox"?"on":"":String(t);(g!==s||!("_value"in A))&&(A.value=s),t==null&&A.removeAttribute(e),A._value=t;return}let r=!1;if(t===""||t==null){const g=typeof A[e];g==="boolean"?t=gI(t):t==null&&g==="string"?(t="",r=!0):g==="number"&&(t=0,r=!0)}try{A[e]=t}catch{}r&&A.removeAttribute(n||e)}function ii(A,e,t,i){A.addEventListener(e,t,i)}function rc(A,e,t,i){A.removeEventListener(e,t,i)}const ns=Symbol("_vei");function gc(A,e,t,i,n=null){const o=A[ns]||(A[ns]={}),r=o[e];if(i&&r)r.value=i;else{const[g,s]=sc(e);if(i){const a=o[e]=Cc(i,n);ii(A,g,a,s)}else r&&(rc(A,g,r,s),o[e]=void 0)}}const os=/(?:Once|Passive|Capture)$/;function sc(A){let e;if(os.test(A)){e={};let i;for(;i=A.match(os);)A=A.slice(0,A.length-i[0].length),e[i[0].toLowerCase()]=!0}return[A[2]===":"?A.slice(3):Ci(A.slice(2)),e]}let Vo=0;const ac=Promise.resolve(),Ic=()=>Vo||(ac.then(()=>Vo=0),Vo=Date.now());function Cc(A,e){const t=i=>{if(!i._vts)i._vts=Date.now();else if(i._vts<=t.attached)return;lt(lc(i,t.value),e,5,[i])};return t.value=A,t.attached=Ic(),t}function lc(A,e){if(wA(e)){const t=A.stopImmediatePropagation;return A.stopImmediatePropagation=()=>{t.call(A),A._stopped=!0},e.map(i=>n=>!n._stopped&&i&&i(n))}else return e}const rs=A=>A.charCodeAt(0)===111&&A.charCodeAt(1)===110&&A.charCodeAt(2)>96&&A.charCodeAt(2)<123,Bc=(A,e,t,i,n,o)=>{const r=n==="svg";e==="class"?Ac(A,i,r):e==="style"?nc(A,t,i):Bo(e)?Vr(e)||gc(A,e,t,i,o):(e[0]==="."?(e=e.slice(1),!0):e[0]==="^"?(e=e.slice(1),!1):Qc(A,e,i,r))?(is(A,e,i),!A.tagName.includes("-")&&(e==="value"||e==="checked"||e==="selected")&&ts(A,e,i,r,o,e!=="value")):A._isVueCE&&(/[A-Z]/.test(e)||!ie(i))?is(A,Te(e),i,o,e):(e==="true-value"?A._trueValue=i:e==="false-value"&&(A._falseValue=i),ts(A,e,i,r))};function Qc(A,e,t,i){if(i)return!!(e==="innerHTML"||e==="textContent"||e in A&&rs(e)&&bA(t));if(e==="spellcheck"||e==="draggable"||e==="translate"||e==="autocorrect"||e==="sandbox"&&A.tagName==="IFRAME"||e==="form"||e==="list"&&A.tagName==="INPUT"||e==="type"&&A.tagName==="TEXTAREA")return!1;if(e==="width"||e==="height"){const n=A.tagName;if(n==="IMG"||n==="VIDEO"||n==="CANVAS"||n==="SOURCE")return!1}return rs(e)&&ie(t)?!1:e in A}const io=A=>{const e=A.props["onUpdate:modelValue"]||!1;return wA(e)?t=>Tn(e,t):e};function cc(A){A.target.composing=!0}function gs(A){const e=A.target;e.composing&&(e.composing=!1,e.dispatchEvent(new Event("input")))}const yi=Symbol("_assign");function ss(A,e,t){return e&&(A=A.trim()),t&&(A=uo(A)),A}const ne={created(A,{modifiers:{lazy:e,trim:t,number:i}},n){A[yi]=io(n);const o=i||n.props&&n.props.type==="number";ii(A,e?"change":"input",r=>{r.target.composing||A[yi](ss(A.value,t,o))}),(t||o)&&ii(A,"change",()=>{A.value=ss(A.value,t,o)}),e||(ii(A,"compositionstart",cc),ii(A,"compositionend",gs),ii(A,"change",gs))},mounted(A,{value:e}){A.value=e??""},beforeUpdate(A,{value:e,oldValue:t,modifiers:{lazy:i,trim:n,number:o}},r){if(A[yi]=io(r),A.composing)return;const g=(o||A.type==="number")&&!/^0\d/.test(A.value)?uo(A.value):A.value,s=e??"";g!==s&&(document.activeElement===A&&A.type!=="range"&&(i&&e===t||n&&A.value.trim()===s)||(A.value=s))}},pr={deep:!0,created(A,{value:e,modifiers:{number:t}},i){const n=Qo(e);ii(A,"change",()=>{const o=Array.prototype.filter.call(A.options,r=>r.selected).map(r=>t?uo(no(r)):no(r));A[yi](A.multiple?n?new Set(o):o:o[0]),A._assigning=!0,hn(()=>{A._assigning=!1})}),A[yi]=io(i)},mounted(A,{value:e}){as(A,e)},beforeUpdate(A,e,t){A[yi]=io(t)},updated(A,{value:e}){A._assigning||as(A,e)}};function as(A,e){const t=A.multiple,i=wA(e);if(!(t&&!i&&!Qo(e))){for(let n=0,o=A.options.length;n<o;n++){const r=A.options[n],g=no(r);if(t)if(i){const s=typeof g;s==="string"||s==="number"?r.selected=e.some(a=>String(a)===String(g)):r.selected=cB(e,g)>-1}else r.selected=e.has(g);else if(fo(no(r),e)){A.selectedIndex!==n&&(A.selectedIndex=n);return}}!t&&A.selectedIndex!==-1&&(A.selectedIndex=-1)}}function no(A){return"_value"in A?A._value:A.value}const Ec=["ctrl","shift","alt","meta"],uc={stop:A=>A.stopPropagation(),prevent:A=>A.preventDefault(),self:A=>A.target!==A.currentTarget,ctrl:A=>!A.ctrlKey,shift:A=>!A.shiftKey,alt:A=>!A.altKey,meta:A=>!A.metaKey,left:A=>"button"in A&&A.button!==0,middle:A=>"button"in A&&A.button!==1,right:A=>"button"in A&&A.button!==2,exact:(A,e)=>Ec.some(t=>A[`${t}Key`]&&!e.includes(t))},pt=(A,e)=>{const t=A._withMods||(A._withMods={}),i=e.join(".");return t[i]||(t[i]=(n,...o)=>{for(let r=0;r<e.length;r++){const g=uc[e[r]];if(g&&g(n,e))return}return A(n,...o)})},hc=he({patchProp:Bc},zQ);let Is;function fc(){return Is||(Is=RQ(hc))}const dc=(...A)=>{const e=fc().createApp(...A),{mount:t}=e;return e.mount=i=>{const n=mc(i);if(!n)return;const o=e._component;!bA(o)&&!o.render&&!o.template&&(o.template=n.innerHTML),n.nodeType===1&&(n.textContent="");const r=t(n,!1,pc(n));return n instanceof Element&&(n.removeAttribute("v-cloak"),n.setAttribute("data-v-app","")),r},e};function pc(A){if(A instanceof SVGElement)return"svg";if(typeof MathMLElement=="function"&&A instanceof MathMLElement)return"mathml"}function mc(A){return ie(A)?document.querySelector(A):A}/*!
|
||
* shared v9.14.5
|
||
* (c) 2025 kazuya kawaguchi
|
||
* Released under the MIT License.
|
||
*/function yc(A,e){typeof console<"u"&&(console.warn("[intlify] "+A),e&&console.warn(e.stack))}const oo=typeof window<"u",Wt=(A,e=!1)=>e?Symbol.for(A):Symbol(A),wc=(A,e,t)=>Dc({l:A,k:e,s:t}),Dc=A=>JSON.stringify(A).replace(/\u2028/g,"\\u2028").replace(/\u2029/g,"\\u2029").replace(/\u0027/g,"\\u0027"),te=A=>typeof A=="number"&&isFinite(A),kc=A=>aC(A)==="[object Date]",Ot=A=>aC(A)==="[object RegExp]",Fo=A=>FA(A)&&Object.keys(A).length===0,Qe=Object.assign,vc=Object.create,_A=(A=null)=>vc(A);let Cs;const dt=()=>Cs||(Cs=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof global<"u"?global:_A());function ls(A){return A.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""").replace(/'/g,"'").replace(/\//g,"/").replace(/=/g,"=")}function Bs(A){return A.replace(/&(?![a-zA-Z0-9#]{2,6};)/g,"&").replace(/"/g,""").replace(/'/g,"'").replace(/</g,"<").replace(/>/g,">")}function Fc(A){return A=A.replace(/(\w+)\s*=\s*"([^"]*)"/g,(i,n,o)=>`${n}="${Bs(o)}"`),A=A.replace(/(\w+)\s*=\s*'([^']*)'/g,(i,n,o)=>`${n}='${Bs(o)}'`),/\s*on\w+\s*=\s*["']?[^"'>]+["']?/gi.test(A)&&(A=A.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].forEach(i=>{A=A.replace(i,"$1javascript:")}),A}const Sc=Object.prototype.hasOwnProperty;function Ye(A,e){return Sc.call(A,e)}const jA=Array.isArray,WA=A=>typeof A=="function",gA=A=>typeof A=="string",NA=A=>typeof A=="boolean",MA=A=>A!==null&&typeof A=="object",bc=A=>MA(A)&&WA(A.then)&&WA(A.catch),sC=Object.prototype.toString,aC=A=>sC.call(A),FA=A=>{if(!MA(A))return!1;const e=Object.getPrototypeOf(A);return e===null||e.constructor===Object},Rc=A=>A==null?"":jA(A)||FA(A)&&A.toString===sC?JSON.stringify(A,null,2):String(A);function Nc(A,e=""){return A.reduce((t,i,n)=>n===0?t+i:t+e+i,"")}function So(A){let e=A;return()=>++e}const bn=A=>!MA(A)||jA(A);function Pn(A,e){if(bn(A)||bn(e))throw new Error("Invalid value");const t=[{src:A,des:e}];for(;t.length;){const{src:i,des:n}=t.pop();Object.keys(i).forEach(o=>{o!=="__proto__"&&(MA(i[o])&&!MA(n[o])&&(n[o]=Array.isArray(i[o])?[]:_A()),bn(n[o])||bn(i[o])?n[o]=i[o]:t.push({src:i[o],des:n[o]}))})}}/*!
|
||
* message-compiler v9.14.5
|
||
* (c) 2025 kazuya kawaguchi
|
||
* Released under the MIT License.
|
||
*/function Gc(A,e,t){return{line:A,column:e,offset:t}}function ro(A,e,t){return{start:A,end:e}}const Lc=/\{([0-9a-zA-Z]+)\}/g;function IC(A,...e){return e.length===1&&Uc(e[0])&&(e=e[0]),(!e||!e.hasOwnProperty)&&(e={}),A.replace(Lc,(t,i)=>e.hasOwnProperty(i)?e[i]:"")}const CC=Object.assign,Qs=A=>typeof A=="string",Uc=A=>A!==null&&typeof A=="object";function lC(A,e=""){return A.reduce((t,i,n)=>n===0?t+i:t+e+i,"")}const sg={USE_MODULO_SYNTAX:1,__EXTEND_POINT__:2},Mc={[sg.USE_MODULO_SYNTAX]:"Use modulo before '{{0}}'."};function xc(A,e,...t){const i=IC(Mc[A],...t||[]),n={message:String(i),code:A};return e&&(n.location=e),n}const mA={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},Jc={[mA.EXPECTED_TOKEN]:"Expected token: '{0}'",[mA.INVALID_TOKEN_IN_PLACEHOLDER]:"Invalid token in placeholder: '{0}'",[mA.UNTERMINATED_SINGLE_QUOTE_IN_PLACEHOLDER]:"Unterminated single quote in placeholder",[mA.UNKNOWN_ESCAPE_SEQUENCE]:"Unknown escape sequence: \\{0}",[mA.INVALID_UNICODE_ESCAPE_SEQUENCE]:"Invalid unicode escape sequence: {0}",[mA.UNBALANCED_CLOSING_BRACE]:"Unbalanced closing brace",[mA.UNTERMINATED_CLOSING_BRACE]:"Unterminated closing brace",[mA.EMPTY_PLACEHOLDER]:"Empty placeholder",[mA.NOT_ALLOW_NEST_PLACEHOLDER]:"Not allowed nest placeholder",[mA.INVALID_LINKED_FORMAT]:"Invalid linked format",[mA.MUST_HAVE_MESSAGES_IN_PLURAL]:"Plural must have messages",[mA.UNEXPECTED_EMPTY_LINKED_MODIFIER]:"Unexpected empty linked modifier",[mA.UNEXPECTED_EMPTY_LINKED_KEY]:"Unexpected empty linked key",[mA.UNEXPECTED_LEXICAL_ANALYSIS]:"Unexpected lexical analysis in token: '{0}'",[mA.UNHANDLED_CODEGEN_NODE_TYPE]:"unhandled codegen node type: '{0}'",[mA.UNHANDLED_MINIFIER_NODE_TYPE]:"unhandled mimifier node type: '{0}'"};function Ui(A,e,t={}){const{domain:i,messages:n,args:o}=t,r=IC((n||Jc)[A]||"",...o||[]),g=new SyntaxError(String(r));return g.code=A,e&&(g.location=e),g.domain=i,g}function Tc(A){throw A}const Qt=" ",Hc="\r",pe=`
|
||
`,Yc="\u2028",_c="\u2029";function Kc(A){const e=A;let t=0,i=1,n=1,o=0;const r=N=>e[N]===Hc&&e[N+1]===pe,g=N=>e[N]===pe,s=N=>e[N]===_c,a=N=>e[N]===Yc,I=N=>r(N)||g(N)||s(N)||a(N),l=()=>t,C=()=>i,Q=()=>n,u=()=>o,f=N=>r(N)||s(N)||a(N)?pe:e[N],h=()=>f(t),E=()=>f(t+o);function p(){return o=0,I(t)&&(i++,n=0),r(t)&&t++,t++,n++,e[t]}function c(){return r(t+o)&&o++,o++,e[t+o]}function d(){t=0,i=1,n=1,o=0}function w(N=0){o=N}function F(){const N=t+o;for(;N!==t;)p();o=0}return{index:l,line:C,column:Q,peekOffset:u,charAt:f,currentChar:h,currentPeek:E,next:p,peek:c,reset:d,resetPeek:w,skipToPeek:F}}const Rt=void 0,Pc=".",cs="'",Oc="tokenizer";function Vc(A,e={}){const t=e.location!==!1,i=Kc(A),n=()=>i.index(),o=()=>Gc(i.line(),i.column(),i.index()),r=o(),g=n(),s={currentType:14,offset:g,startLoc:r,endLoc:r,lastType:14,lastOffset:g,lastStartLoc:r,lastEndLoc:r,braceNest:0,inLinked:!1,text:""},a=()=>s,{onError:I}=e;function l(m,y,x,...K){const oA=a();if(y.column+=x,y.offset+=x,I){const $=t?ro(oA.startLoc,y):null,U=Ui(m,$,{domain:Oc,args:K});I(U)}}function C(m,y,x){m.endLoc=o(),m.currentType=y;const K={type:y};return t&&(K.loc=ro(m.startLoc,m.endLoc)),x!=null&&(K.value=x),K}const Q=m=>C(m,14);function u(m,y){return m.currentChar()===y?(m.next(),y):(l(mA.EXPECTED_TOKEN,o(),0,y),"")}function f(m){let y="";for(;m.currentPeek()===Qt||m.currentPeek()===pe;)y+=m.currentPeek(),m.peek();return y}function h(m){const y=f(m);return m.skipToPeek(),y}function E(m){if(m===Rt)return!1;const y=m.charCodeAt(0);return y>=97&&y<=122||y>=65&&y<=90||y===95}function p(m){if(m===Rt)return!1;const y=m.charCodeAt(0);return y>=48&&y<=57}function c(m,y){const{currentType:x}=y;if(x!==2)return!1;f(m);const K=E(m.currentPeek());return m.resetPeek(),K}function d(m,y){const{currentType:x}=y;if(x!==2)return!1;f(m);const K=m.currentPeek()==="-"?m.peek():m.currentPeek(),oA=p(K);return m.resetPeek(),oA}function w(m,y){const{currentType:x}=y;if(x!==2)return!1;f(m);const K=m.currentPeek()===cs;return m.resetPeek(),K}function F(m,y){const{currentType:x}=y;if(x!==8)return!1;f(m);const K=m.currentPeek()===".";return m.resetPeek(),K}function N(m,y){const{currentType:x}=y;if(x!==9)return!1;f(m);const K=E(m.currentPeek());return m.resetPeek(),K}function G(m,y){const{currentType:x}=y;if(!(x===8||x===12))return!1;f(m);const K=m.currentPeek()===":";return m.resetPeek(),K}function P(m,y){const{currentType:x}=y;if(x!==10)return!1;const K=()=>{const $=m.currentPeek();return $==="{"?E(m.peek()):$==="@"||$==="%"||$==="|"||$===":"||$==="."||$===Qt||!$?!1:$===pe?(m.peek(),K()):L(m,!1)},oA=K();return m.resetPeek(),oA}function b(m){f(m);const y=m.currentPeek()==="|";return m.resetPeek(),y}function R(m){const y=f(m),x=m.currentPeek()==="%"&&m.peek()==="{";return m.resetPeek(),{isModulo:x,hasSpace:y.length>0}}function L(m,y=!0){const x=(oA=!1,$="",U=!1)=>{const O=m.currentPeek();return O==="{"?$==="%"?!1:oA:O==="@"||!O?$==="%"?!0:oA:O==="%"?(m.peek(),x(oA,"%",!0)):O==="|"?$==="%"||U?!0:!($===Qt||$===pe):O===Qt?(m.peek(),x(!0,Qt,U)):O===pe?(m.peek(),x(!0,pe,U)):!0},K=x();return y&&m.resetPeek(),K}function EA(m,y){const x=m.currentChar();return x===Rt?Rt:y(x)?(m.next(),x):null}function pA(m){const y=m.charCodeAt(0);return y>=97&&y<=122||y>=65&&y<=90||y>=48&&y<=57||y===95||y===36}function lA(m){return EA(m,pA)}function nA(m){const y=m.charCodeAt(0);return y>=97&&y<=122||y>=65&&y<=90||y>=48&&y<=57||y===95||y===36||y===45}function z(m){return EA(m,nA)}function tA(m){const y=m.charCodeAt(0);return y>=48&&y<=57}function dA(m){return EA(m,tA)}function kA(m){const y=m.charCodeAt(0);return y>=48&&y<=57||y>=65&&y<=70||y>=97&&y<=102}function Y(m){return EA(m,kA)}function j(m){let y="",x="";for(;y=dA(m);)x+=y;return x}function sA(m){h(m);const y=m.currentChar();return y!=="%"&&l(mA.EXPECTED_TOKEN,o(),0,y),m.next(),"%"}function SA(m){let y="";for(;;){const x=m.currentChar();if(x==="{"||x==="}"||x==="@"||x==="|"||!x)break;if(x==="%")if(L(m))y+=x,m.next();else break;else if(x===Qt||x===pe)if(L(m))y+=x,m.next();else{if(b(m))break;y+=x,m.next()}else y+=x,m.next()}return y}function UA(m){h(m);let y="",x="";for(;y=z(m);)x+=y;return m.currentChar()===Rt&&l(mA.UNTERMINATED_CLOSING_BRACE,o(),0),x}function HA(m){h(m);let y="";return m.currentChar()==="-"?(m.next(),y+=`-${j(m)}`):y+=j(m),m.currentChar()===Rt&&l(mA.UNTERMINATED_CLOSING_BRACE,o(),0),y}function M(m){return m!==cs&&m!==pe}function X(m){h(m),u(m,"'");let y="",x="";for(;y=EA(m,M);)y==="\\"?x+=AA(m):x+=y;const K=m.currentChar();return K===pe||K===Rt?(l(mA.UNTERMINATED_SINGLE_QUOTE_IN_PLACEHOLDER,o(),0),K===pe&&(m.next(),u(m,"'")),x):(u(m,"'"),x)}function AA(m){const y=m.currentChar();switch(y){case"\\":case"'":return m.next(),`\\${y}`;case"u":return CA(m,y,4);case"U":return CA(m,y,6);default:return l(mA.UNKNOWN_ESCAPE_SEQUENCE,o(),0,y),""}}function CA(m,y,x){u(m,y);let K="";for(let oA=0;oA<x;oA++){const $=Y(m);if(!$){l(mA.INVALID_UNICODE_ESCAPE_SEQUENCE,o(),0,`\\${y}${K}${m.currentChar()}`);break}K+=$}return`\\${y}${K}`}function RA(m){return m!=="{"&&m!=="}"&&m!==Qt&&m!==pe}function D(m){h(m);let y="",x="";for(;y=EA(m,RA);)x+=y;return x}function S(m){let y="",x="";for(;y=lA(m);)x+=y;return x}function k(m){const y=x=>{const K=m.currentChar();return K==="{"||K==="%"||K==="@"||K==="|"||K==="("||K===")"||!K||K===Qt?x:(x+=K,m.next(),y(x))};return y("")}function J(m){h(m);const y=u(m,"|");return h(m),y}function q(m,y){let x=null;switch(m.currentChar()){case"{":return y.braceNest>=1&&l(mA.NOT_ALLOW_NEST_PLACEHOLDER,o(),0),m.next(),x=C(y,2,"{"),h(m),y.braceNest++,x;case"}":return y.braceNest>0&&y.currentType===2&&l(mA.EMPTY_PLACEHOLDER,o(),0),m.next(),x=C(y,3,"}"),y.braceNest--,y.braceNest>0&&h(m),y.inLinked&&y.braceNest===0&&(y.inLinked=!1),x;case"@":return y.braceNest>0&&l(mA.UNTERMINATED_CLOSING_BRACE,o(),0),x=V(m,y)||Q(y),y.braceNest=0,x;default:{let oA=!0,$=!0,U=!0;if(b(m))return y.braceNest>0&&l(mA.UNTERMINATED_CLOSING_BRACE,o(),0),x=C(y,1,J(m)),y.braceNest=0,y.inLinked=!1,x;if(y.braceNest>0&&(y.currentType===5||y.currentType===6||y.currentType===7))return l(mA.UNTERMINATED_CLOSING_BRACE,o(),0),y.braceNest=0,iA(m,y);if(oA=c(m,y))return x=C(y,5,UA(m)),h(m),x;if($=d(m,y))return x=C(y,6,HA(m)),h(m),x;if(U=w(m,y))return x=C(y,7,X(m)),h(m),x;if(!oA&&!$&&!U)return x=C(y,13,D(m)),l(mA.INVALID_TOKEN_IN_PLACEHOLDER,o(),0,x.value),h(m),x;break}}return x}function V(m,y){const{currentType:x}=y;let K=null;const oA=m.currentChar();switch((x===8||x===9||x===12||x===10)&&(oA===pe||oA===Qt)&&l(mA.INVALID_LINKED_FORMAT,o(),0),oA){case"@":return m.next(),K=C(y,8,"@"),y.inLinked=!0,K;case".":return h(m),m.next(),C(y,9,".");case":":return h(m),m.next(),C(y,10,":");default:return b(m)?(K=C(y,1,J(m)),y.braceNest=0,y.inLinked=!1,K):F(m,y)||G(m,y)?(h(m),V(m,y)):N(m,y)?(h(m),C(y,12,S(m))):P(m,y)?(h(m),oA==="{"?q(m,y)||K:C(y,11,k(m))):(x===8&&l(mA.INVALID_LINKED_FORMAT,o(),0),y.braceNest=0,y.inLinked=!1,iA(m,y))}}function iA(m,y){let x={type:14};if(y.braceNest>0)return q(m,y)||Q(y);if(y.inLinked)return V(m,y)||Q(y);switch(m.currentChar()){case"{":return q(m,y)||Q(y);case"}":return l(mA.UNBALANCED_CLOSING_BRACE,o(),0),m.next(),C(y,3,"}");case"@":return V(m,y)||Q(y);default:{if(b(m))return x=C(y,1,J(m)),y.braceNest=0,y.inLinked=!1,x;const{isModulo:oA,hasSpace:$}=R(m);if(oA)return $?C(y,0,SA(m)):C(y,4,sA(m));if(L(m))return C(y,0,SA(m));break}}return x}function eA(){const{currentType:m,offset:y,startLoc:x,endLoc:K}=s;return s.lastType=m,s.lastOffset=y,s.lastStartLoc=x,s.lastEndLoc=K,s.offset=n(),s.startLoc=o(),i.currentChar()===Rt?C(s,14):iA(i,s)}return{nextToken:eA,currentOffset:n,currentPosition:o,context:a}}const Wc="parser",qc=/(?:\\\\|\\'|\\u([0-9a-fA-F]{4})|\\U([0-9a-fA-F]{6}))/g;function jc(A,e,t){switch(A){case"\\\\":return"\\";case"\\'":return"'";default:{const i=parseInt(e||t,16);return i<=55295||i>=57344?String.fromCodePoint(i):"�"}}}function Zc(A={}){const e=A.location!==!1,{onError:t,onWarn:i}=A;function n(c,d,w,F,...N){const G=c.currentPosition();if(G.offset+=F,G.column+=F,t){const P=e?ro(w,G):null,b=Ui(d,P,{domain:Wc,args:N});t(b)}}function o(c,d,w,F,...N){const G=c.currentPosition();if(G.offset+=F,G.column+=F,i){const P=e?ro(w,G):null;i(xc(d,P,N))}}function r(c,d,w){const F={type:c};return e&&(F.start=d,F.end=d,F.loc={start:w,end:w}),F}function g(c,d,w,F){e&&(c.end=d,c.loc&&(c.loc.end=w))}function s(c,d){const w=c.context(),F=r(3,w.offset,w.startLoc);return F.value=d,g(F,c.currentOffset(),c.currentPosition()),F}function a(c,d){const w=c.context(),{lastOffset:F,lastStartLoc:N}=w,G=r(5,F,N);return G.index=parseInt(d,10),c.nextToken(),g(G,c.currentOffset(),c.currentPosition()),G}function I(c,d,w){const F=c.context(),{lastOffset:N,lastStartLoc:G}=F,P=r(4,N,G);return P.key=d,w===!0&&(P.modulo=!0),c.nextToken(),g(P,c.currentOffset(),c.currentPosition()),P}function l(c,d){const w=c.context(),{lastOffset:F,lastStartLoc:N}=w,G=r(9,F,N);return G.value=d.replace(qc,jc),c.nextToken(),g(G,c.currentOffset(),c.currentPosition()),G}function C(c){const d=c.nextToken(),w=c.context(),{lastOffset:F,lastStartLoc:N}=w,G=r(8,F,N);return d.type!==12?(n(c,mA.UNEXPECTED_EMPTY_LINKED_MODIFIER,w.lastStartLoc,0),G.value="",g(G,F,N),{nextConsumeToken:d,node:G}):(d.value==null&&n(c,mA.UNEXPECTED_LEXICAL_ANALYSIS,w.lastStartLoc,0,He(d)),G.value=d.value||"",g(G,c.currentOffset(),c.currentPosition()),{node:G})}function Q(c,d){const w=c.context(),F=r(7,w.offset,w.startLoc);return F.value=d,g(F,c.currentOffset(),c.currentPosition()),F}function u(c){const d=c.context(),w=r(6,d.offset,d.startLoc);let F=c.nextToken();if(F.type===9){const N=C(c);w.modifier=N.node,F=N.nextConsumeToken||c.nextToken()}switch(F.type!==10&&n(c,mA.UNEXPECTED_LEXICAL_ANALYSIS,d.lastStartLoc,0,He(F)),F=c.nextToken(),F.type===2&&(F=c.nextToken()),F.type){case 11:F.value==null&&n(c,mA.UNEXPECTED_LEXICAL_ANALYSIS,d.lastStartLoc,0,He(F)),w.key=Q(c,F.value||"");break;case 5:F.value==null&&n(c,mA.UNEXPECTED_LEXICAL_ANALYSIS,d.lastStartLoc,0,He(F)),w.key=I(c,F.value||"");break;case 6:F.value==null&&n(c,mA.UNEXPECTED_LEXICAL_ANALYSIS,d.lastStartLoc,0,He(F)),w.key=a(c,F.value||"");break;case 7:F.value==null&&n(c,mA.UNEXPECTED_LEXICAL_ANALYSIS,d.lastStartLoc,0,He(F)),w.key=l(c,F.value||"");break;default:{n(c,mA.UNEXPECTED_EMPTY_LINKED_KEY,d.lastStartLoc,0);const N=c.context(),G=r(7,N.offset,N.startLoc);return G.value="",g(G,N.offset,N.startLoc),w.key=G,g(w,N.offset,N.startLoc),{nextConsumeToken:F,node:w}}}return g(w,c.currentOffset(),c.currentPosition()),{node:w}}function f(c){const d=c.context(),w=d.currentType===1?c.currentOffset():d.offset,F=d.currentType===1?d.endLoc:d.startLoc,N=r(2,w,F);N.items=[];let G=null,P=null;do{const L=G||c.nextToken();switch(G=null,L.type){case 0:L.value==null&&n(c,mA.UNEXPECTED_LEXICAL_ANALYSIS,d.lastStartLoc,0,He(L)),N.items.push(s(c,L.value||""));break;case 6:L.value==null&&n(c,mA.UNEXPECTED_LEXICAL_ANALYSIS,d.lastStartLoc,0,He(L)),N.items.push(a(c,L.value||""));break;case 4:P=!0;break;case 5:L.value==null&&n(c,mA.UNEXPECTED_LEXICAL_ANALYSIS,d.lastStartLoc,0,He(L)),N.items.push(I(c,L.value||"",!!P)),P&&(o(c,sg.USE_MODULO_SYNTAX,d.lastStartLoc,0,He(L)),P=null);break;case 7:L.value==null&&n(c,mA.UNEXPECTED_LEXICAL_ANALYSIS,d.lastStartLoc,0,He(L)),N.items.push(l(c,L.value||""));break;case 8:{const EA=u(c);N.items.push(EA.node),G=EA.nextConsumeToken||null;break}}}while(d.currentType!==14&&d.currentType!==1);const b=d.currentType===1?d.lastOffset:c.currentOffset(),R=d.currentType===1?d.lastEndLoc:c.currentPosition();return g(N,b,R),N}function h(c,d,w,F){const N=c.context();let G=F.items.length===0;const P=r(1,d,w);P.cases=[],P.cases.push(F);do{const b=f(c);G||(G=b.items.length===0),P.cases.push(b)}while(N.currentType!==14);return G&&n(c,mA.MUST_HAVE_MESSAGES_IN_PLURAL,w,0),g(P,c.currentOffset(),c.currentPosition()),P}function E(c){const d=c.context(),{offset:w,startLoc:F}=d,N=f(c);return d.currentType===14?N:h(c,w,F,N)}function p(c){const d=Vc(c,CC({},A)),w=d.context(),F=r(0,w.offset,w.startLoc);return e&&F.loc&&(F.loc.source=c),F.body=E(d),A.onCacheKey&&(F.cacheKey=A.onCacheKey(c)),w.currentType!==14&&n(d,mA.UNEXPECTED_LEXICAL_ANALYSIS,w.lastStartLoc,0,c[w.offset]||""),g(F,d.currentOffset(),d.currentPosition()),F}return{parse:p}}function He(A){if(A.type===14)return"EOF";const e=(A.value||"").replace(/\r?\n/gu,"\\n");return e.length>10?e.slice(0,9)+"…":e}function Xc(A,e={}){const t={ast:A,helpers:new Set};return{context:()=>t,helper:o=>(t.helpers.add(o),o)}}function Es(A,e){for(let t=0;t<A.length;t++)ag(A[t],e)}function ag(A,e){switch(A.type){case 1:Es(A.cases,e),e.helper("plural");break;case 2:Es(A.items,e);break;case 6:{ag(A.key,e),e.helper("linked"),e.helper("type");break}case 5:e.helper("interpolate"),e.helper("list");break;case 4:e.helper("interpolate"),e.helper("named");break}}function zc(A,e={}){const t=Xc(A);t.helper("normalize"),A.body&&ag(A.body,t);const i=t.context();A.helpers=Array.from(i.helpers)}function $c(A){const e=A.body;return e.type===2?us(e):e.cases.forEach(t=>us(t)),A}function us(A){if(A.items.length===1){const e=A.items[0];(e.type===3||e.type===9)&&(A.static=e.value,delete e.value)}else{const e=[];for(let t=0;t<A.items.length;t++){const i=A.items[t];if(!(i.type===3||i.type===9)||i.value==null)break;e.push(i.value)}if(e.length===A.items.length){A.static=lC(e);for(let t=0;t<A.items.length;t++){const i=A.items[t];(i.type===3||i.type===9)&&delete i.value}}}}const AE="minifier";function Ei(A){switch(A.t=A.type,A.type){case 0:{const e=A;Ei(e.body),e.b=e.body,delete e.body;break}case 1:{const e=A,t=e.cases;for(let i=0;i<t.length;i++)Ei(t[i]);e.c=t,delete e.cases;break}case 2:{const e=A,t=e.items;for(let i=0;i<t.length;i++)Ei(t[i]);e.i=t,delete e.items,e.static&&(e.s=e.static,delete e.static);break}case 3:case 9:case 8:case 7:{const e=A;e.value&&(e.v=e.value,delete e.value);break}case 6:{const e=A;Ei(e.key),e.k=e.key,delete e.key,e.modifier&&(Ei(e.modifier),e.m=e.modifier,delete e.modifier);break}case 5:{const e=A;e.i=e.index,delete e.index;break}case 4:{const e=A;e.k=e.key,delete e.key;break}default:throw Ui(mA.UNHANDLED_MINIFIER_NODE_TYPE,null,{domain:AE,args:[A.type]})}delete A.type}const eE="parser";function tE(A,e){const{filename:t,breakLineCode:i,needIndent:n}=e,o=e.location!==!1,r={filename:t,code:"",column:1,line:1,offset:0,map:void 0,breakLineCode:i,needIndent:n,indentLevel:0};o&&A.loc&&(r.source=A.loc.source);const g=()=>r;function s(f,h){r.code+=f}function a(f,h=!0){const E=h?i:"";s(n?E+" ".repeat(f):E)}function I(f=!0){const h=++r.indentLevel;f&&a(h)}function l(f=!0){const h=--r.indentLevel;f&&a(h)}function C(){a(r.indentLevel)}return{context:g,push:s,indent:I,deindent:l,newline:C,helper:f=>`_${f}`,needIndent:()=>r.needIndent}}function iE(A,e){const{helper:t}=A;A.push(`${t("linked")}(`),Si(A,e.key),e.modifier?(A.push(", "),Si(A,e.modifier),A.push(", _type")):A.push(", undefined, _type"),A.push(")")}function nE(A,e){const{helper:t,needIndent:i}=A;A.push(`${t("normalize")}([`),A.indent(i());const n=e.items.length;for(let o=0;o<n&&(Si(A,e.items[o]),o!==n-1);o++)A.push(", ");A.deindent(i()),A.push("])")}function oE(A,e){const{helper:t,needIndent:i}=A;if(e.cases.length>1){A.push(`${t("plural")}([`),A.indent(i());const n=e.cases.length;for(let o=0;o<n&&(Si(A,e.cases[o]),o!==n-1);o++)A.push(", ");A.deindent(i()),A.push("])")}}function rE(A,e){e.body?Si(A,e.body):A.push("null")}function Si(A,e){const{helper:t}=A;switch(e.type){case 0:rE(A,e);break;case 1:oE(A,e);break;case 2:nE(A,e);break;case 6:iE(A,e);break;case 8:A.push(JSON.stringify(e.value),e);break;case 7:A.push(JSON.stringify(e.value),e);break;case 5:A.push(`${t("interpolate")}(${t("list")}(${e.index}))`,e);break;case 4:A.push(`${t("interpolate")}(${t("named")}(${JSON.stringify(e.key)}))`,e);break;case 9:A.push(JSON.stringify(e.value),e);break;case 3:A.push(JSON.stringify(e.value),e);break;default:throw Ui(mA.UNHANDLED_CODEGEN_NODE_TYPE,null,{domain:eE,args:[e.type]})}}const gE=(A,e={})=>{const t=Qs(e.mode)?e.mode:"normal",i=Qs(e.filename)?e.filename:"message.intl";e.sourceMap;const n=e.breakLineCode!=null?e.breakLineCode:t==="arrow"?";":`
|
||
`,o=e.needIndent?e.needIndent:t!=="arrow",r=A.helpers||[],g=tE(A,{filename:i,breakLineCode:n,needIndent:o});g.push(t==="normal"?"function __msg__ (ctx) {":"(ctx) => {"),g.indent(o),r.length>0&&(g.push(`const { ${lC(r.map(I=>`${I}: _${I}`),", ")} } = ctx`),g.newline()),g.push("return "),Si(g,A),g.deindent(o),g.push("}"),delete A.helpers;const{code:s,map:a}=g.context();return{ast:A,code:s,map:a?a.toJSON():void 0}};function sE(A,e={}){const t=CC({},e),i=!!t.jit,n=!!t.minify,o=t.optimize==null?!0:t.optimize,g=Zc(t).parse(A);return i?(o&&$c(g),n&&Ei(g),{ast:g,code:""}):(zc(g,t),gE(g,t))}/*!
|
||
* core-base v9.14.5
|
||
* (c) 2025 kazuya kawaguchi
|
||
* Released under the MIT License.
|
||
*/function aE(){typeof __INTLIFY_PROD_DEVTOOLS__!="boolean"&&(dt().__INTLIFY_PROD_DEVTOOLS__=!1),typeof __INTLIFY_JIT_COMPILATION__!="boolean"&&(dt().__INTLIFY_JIT_COMPILATION__=!1),typeof __INTLIFY_DROP_MESSAGE_COMPILER__!="boolean"&&(dt().__INTLIFY_DROP_MESSAGE_COMPILER__=!1)}function at(A){return MA(A)&&Ig(A)===0&&(Ye(A,"b")||Ye(A,"body"))}const BC=["b","body"];function IE(A){return qt(A,BC)}const QC=["c","cases"];function CE(A){return qt(A,QC,[])}const cC=["s","static"];function lE(A){return qt(A,cC)}const EC=["i","items"];function BE(A){return qt(A,EC,[])}const uC=["t","type"];function Ig(A){return qt(A,uC)}const hC=["v","value"];function Rn(A,e){const t=qt(A,hC);if(t!=null)return t;throw gn(e)}const fC=["m","modifier"];function QE(A){return qt(A,fC)}const dC=["k","key"];function cE(A){const e=qt(A,dC);if(e)return e;throw gn(6)}function qt(A,e,t){for(let i=0;i<e.length;i++){const n=e[i];if(Ye(A,n)&&A[n]!=null)return A[n]}return t}const pC=[...BC,...QC,...cC,...EC,...dC,...fC,...hC,...uC];function gn(A){return new Error(`unhandled node type: ${A}`)}const jt=[];jt[0]={w:[0],i:[3,0],"[":[4],o:[7]};jt[1]={w:[1],".":[2],"[":[4],o:[7]};jt[2]={w:[2],i:[3,0],0:[3,0]};jt[3]={i:[3,0],0:[3,0],w:[1,1],".":[2,1],"[":[4,1],o:[7,1]};jt[4]={"'":[5,0],'"':[6,0],"[":[4,2],"]":[1,3],o:8,l:[4,0]};jt[5]={"'":[4,0],o:8,l:[5,0]};jt[6]={'"':[4,0],o:8,l:[6,0]};const EE=/^\s?(?:true|false|-?[\d.]+|'[^']*'|"[^"]*")\s?$/;function uE(A){return EE.test(A)}function hE(A){const e=A.charCodeAt(0),t=A.charCodeAt(A.length-1);return e===t&&(e===34||e===39)?A.slice(1,-1):A}function fE(A){if(A==null)return"o";switch(A.charCodeAt(0)){case 91:case 93:case 46:case 34:case 39:return A;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 dE(A){const e=A.trim();return A.charAt(0)==="0"&&isNaN(parseInt(A))?!1:uE(e)?hE(e):"*"+e}function pE(A){const e=[];let t=-1,i=0,n=0,o,r,g,s,a,I,l;const C=[];C[0]=()=>{r===void 0?r=g:r+=g},C[1]=()=>{r!==void 0&&(e.push(r),r=void 0)},C[2]=()=>{C[0](),n++},C[3]=()=>{if(n>0)n--,i=4,C[0]();else{if(n=0,r===void 0||(r=dE(r),r===!1))return!1;C[1]()}};function Q(){const u=A[t+1];if(i===5&&u==="'"||i===6&&u==='"')return t++,g="\\"+u,C[0](),!0}for(;i!==null;)if(t++,o=A[t],!(o==="\\"&&Q())){if(s=fE(o),l=jt[i],a=l[s]||l.l||8,a===8||(i=a[0],a[1]!==void 0&&(I=C[a[1]],I&&(g=o,I()===!1))))return;if(i===7)return e}}const hs=new Map;function mE(A,e){return MA(A)?A[e]:null}function yE(A,e){if(!MA(A))return null;let t=hs.get(e);if(t||(t=pE(e),t&&hs.set(e,t)),!t)return null;const i=t.length;let n=A,o=0;for(;o<i;){const r=t[o];if(pC.includes(r)&&at(n))return null;const g=n[r];if(g===void 0||WA(n))return null;n=g,o++}return n}const wE=A=>A,DE=A=>"",kE="text",vE=A=>A.length===0?"":Nc(A),FE=Rc;function fs(A,e){return A=Math.abs(A),e===2?A?A>1?1:0:1:A?Math.min(A,2):0}function SE(A){const e=te(A.pluralIndex)?A.pluralIndex:-1;return A.named&&(te(A.named.count)||te(A.named.n))?te(A.named.count)?A.named.count:te(A.named.n)?A.named.n:e:e}function bE(A,e){e.count||(e.count=A),e.n||(e.n=A)}function RE(A={}){const e=A.locale,t=SE(A),i=MA(A.pluralRules)&&gA(e)&&WA(A.pluralRules[e])?A.pluralRules[e]:fs,n=MA(A.pluralRules)&&gA(e)&&WA(A.pluralRules[e])?fs:void 0,o=E=>E[i(t,E.length,n)],r=A.list||[],g=E=>r[E],s=A.named||_A();te(A.pluralIndex)&&bE(t,s);const a=E=>s[E];function I(E){const p=WA(A.messages)?A.messages(E):MA(A.messages)?A.messages[E]:!1;return p||(A.parent?A.parent.message(E):DE)}const l=E=>A.modifiers?A.modifiers[E]:wE,C=FA(A.processor)&&WA(A.processor.normalize)?A.processor.normalize:vE,Q=FA(A.processor)&&WA(A.processor.interpolate)?A.processor.interpolate:FE,u=FA(A.processor)&&gA(A.processor.type)?A.processor.type:kE,h={list:g,named:a,plural:o,linked:(E,...p)=>{const[c,d]=p;let w="text",F="";p.length===1?MA(c)?(F=c.modifier||F,w=c.type||w):gA(c)&&(F=c||F):p.length===2&&(gA(c)&&(F=c||F),gA(d)&&(w=d||w));const N=I(E)(h),G=w==="vnode"&&jA(N)&&F?N[0]:N;return F?l(F)(G,w):G},message:I,type:u,interpolate:Q,normalize:C,values:Qe(_A(),r,s)};return h}let sn=null;function NE(A){sn=A}function GE(A,e,t){sn&&sn.emit("i18n:init",{timestamp:Date.now(),i18n:A,version:e,meta:t})}const LE=UE("function:translate");function UE(A){return e=>sn&&sn.emit(A,e)}const ME=sg.__EXTEND_POINT__,$t=So(ME),xE={FALLBACK_TO_TRANSLATE:$t(),CANNOT_FORMAT_NUMBER:$t(),FALLBACK_TO_NUMBER_FORMAT:$t(),CANNOT_FORMAT_DATE:$t(),FALLBACK_TO_DATE_FORMAT:$t(),EXPERIMENTAL_CUSTOM_MESSAGE_COMPILER:$t(),__EXTEND_POINT__:$t()},mC=mA.__EXTEND_POINT__,Ai=So(mC),_e={INVALID_ARGUMENT:mC,INVALID_DATE_ARGUMENT:Ai(),INVALID_ISO_DATE_ARGUMENT:Ai(),NOT_SUPPORT_NON_STRING_MESSAGE:Ai(),NOT_SUPPORT_LOCALE_PROMISE_VALUE:Ai(),NOT_SUPPORT_LOCALE_ASYNC_FUNCTION:Ai(),NOT_SUPPORT_LOCALE_TYPE:Ai(),__EXTEND_POINT__:Ai()};function nt(A){return Ui(A,null,void 0)}function Cg(A,e){return e.locale!=null?ds(e.locale):ds(A.locale)}let Wo;function ds(A){if(gA(A))return A;if(WA(A)){if(A.resolvedOnce&&Wo!=null)return Wo;if(A.constructor.name==="Function"){const e=A();if(bc(e))throw nt(_e.NOT_SUPPORT_LOCALE_PROMISE_VALUE);return Wo=e}else throw nt(_e.NOT_SUPPORT_LOCALE_ASYNC_FUNCTION)}else throw nt(_e.NOT_SUPPORT_LOCALE_TYPE)}function JE(A,e,t){return[...new Set([t,...jA(e)?e:MA(e)?Object.keys(e):gA(e)?[e]:[t]])]}function yC(A,e,t){const i=gA(t)?t:bi,n=A;n.__localeChainCache||(n.__localeChainCache=new Map);let o=n.__localeChainCache.get(i);if(!o){o=[];let r=[t];for(;jA(r);)r=ps(o,r,e);const g=jA(e)||!FA(e)?e:e.default?e.default:null;r=gA(g)?[g]:g,jA(r)&&ps(o,r,!1),n.__localeChainCache.set(i,o)}return o}function ps(A,e,t){let i=!0;for(let n=0;n<e.length&&NA(i);n++){const o=e[n];gA(o)&&(i=TE(A,e[n],t))}return i}function TE(A,e,t){let i;const n=e.split("-");do{const o=n.join("-");i=HE(A,o,t),n.splice(-1,1)}while(n.length&&i===!0);return i}function HE(A,e,t){let i=!1;if(!A.includes(e)&&(i=!0,e)){i=e[e.length-1]!=="!";const n=e.replace(/!/g,"");A.push(n),(jA(t)||FA(t))&&t[n]&&(i=t[n])}return i}const YE="9.14.5",bo=-1,bi="en-US",ms="",ys=A=>`${A.charAt(0).toLocaleUpperCase()}${A.substr(1)}`;function _E(){return{upper:(A,e)=>e==="text"&&gA(A)?A.toUpperCase():e==="vnode"&&MA(A)&&"__v_isVNode"in A?A.children.toUpperCase():A,lower:(A,e)=>e==="text"&&gA(A)?A.toLowerCase():e==="vnode"&&MA(A)&&"__v_isVNode"in A?A.children.toLowerCase():A,capitalize:(A,e)=>e==="text"&&gA(A)?ys(A):e==="vnode"&&MA(A)&&"__v_isVNode"in A?ys(A.children):A}}let wC;function ws(A){wC=A}let DC;function KE(A){DC=A}let kC;function PE(A){kC=A}let vC=null;const OE=A=>{vC=A},VE=()=>vC;let FC=null;const Ds=A=>{FC=A},WE=()=>FC;let ks=0;function qE(A={}){const e=WA(A.onWarn)?A.onWarn:yc,t=gA(A.version)?A.version:YE,i=gA(A.locale)||WA(A.locale)?A.locale:bi,n=WA(i)?bi:i,o=jA(A.fallbackLocale)||FA(A.fallbackLocale)||gA(A.fallbackLocale)||A.fallbackLocale===!1?A.fallbackLocale:n,r=FA(A.messages)?A.messages:qo(n),g=FA(A.datetimeFormats)?A.datetimeFormats:qo(n),s=FA(A.numberFormats)?A.numberFormats:qo(n),a=Qe(_A(),A.modifiers,_E()),I=A.pluralRules||_A(),l=WA(A.missing)?A.missing:null,C=NA(A.missingWarn)||Ot(A.missingWarn)?A.missingWarn:!0,Q=NA(A.fallbackWarn)||Ot(A.fallbackWarn)?A.fallbackWarn:!0,u=!!A.fallbackFormat,f=!!A.unresolving,h=WA(A.postTranslation)?A.postTranslation:null,E=FA(A.processor)?A.processor:null,p=NA(A.warnHtmlMessage)?A.warnHtmlMessage:!0,c=!!A.escapeParameter,d=WA(A.messageCompiler)?A.messageCompiler:wC,w=WA(A.messageResolver)?A.messageResolver:DC||mE,F=WA(A.localeFallbacker)?A.localeFallbacker:kC||JE,N=MA(A.fallbackContext)?A.fallbackContext:void 0,G=A,P=MA(G.__datetimeFormatters)?G.__datetimeFormatters:new Map,b=MA(G.__numberFormatters)?G.__numberFormatters:new Map,R=MA(G.__meta)?G.__meta:{};ks++;const L={version:t,cid:ks,locale:i,fallbackLocale:o,messages:r,modifiers:a,pluralRules:I,missing:l,missingWarn:C,fallbackWarn:Q,fallbackFormat:u,unresolving:f,postTranslation:h,processor:E,warnHtmlMessage:p,escapeParameter:c,messageCompiler:d,messageResolver:w,localeFallbacker:F,fallbackContext:N,onWarn:e,__meta:R};return L.datetimeFormats=g,L.numberFormats=s,L.__datetimeFormatters=P,L.__numberFormatters=b,__INTLIFY_PROD_DEVTOOLS__&&GE(L,t,R),L}const qo=A=>({[A]:_A()});function lg(A,e,t,i,n){const{missing:o,onWarn:r}=A;if(o!==null){const g=o(A,t,e,n);return gA(g)?g:e}else return e}function Hi(A,e,t){const i=A;i.__localeChainCache=new Map,A.localeFallbacker(A,t,e)}function jE(A,e){return A===e?!1:A.split("-")[0]===e.split("-")[0]}function ZE(A,e){const t=e.indexOf(A);if(t===-1)return!1;for(let i=t+1;i<e.length;i++)if(jE(A,e[i]))return!0;return!1}function jo(A){return t=>XE(t,A)}function XE(A,e){const t=IE(e);if(t==null)throw gn(0);if(Ig(t)===1){const o=CE(t);return A.plural(o.reduce((r,g)=>[...r,vs(A,g)],[]))}else return vs(A,t)}function vs(A,e){const t=lE(e);if(t!=null)return A.type==="text"?t:A.normalize([t]);{const i=BE(e).reduce((n,o)=>[...n,mr(A,o)],[]);return A.normalize(i)}}function mr(A,e){const t=Ig(e);switch(t){case 3:return Rn(e,t);case 9:return Rn(e,t);case 4:{const i=e;if(Ye(i,"k")&&i.k)return A.interpolate(A.named(i.k));if(Ye(i,"key")&&i.key)return A.interpolate(A.named(i.key));throw gn(t)}case 5:{const i=e;if(Ye(i,"i")&&te(i.i))return A.interpolate(A.list(i.i));if(Ye(i,"index")&&te(i.index))return A.interpolate(A.list(i.index));throw gn(t)}case 6:{const i=e,n=QE(i),o=cE(i);return A.linked(mr(A,o),n?mr(A,n):void 0,A.type)}case 7:return Rn(e,t);case 8:return Rn(e,t);default:throw new Error(`unhandled node on format message part: ${t}`)}}const SC=A=>A;let hi=_A();function bC(A,e={}){let t=!1;const i=e.onError||Tc;return e.onError=n=>{t=!0,i(n)},{...sE(A,e),detectError:t}}const zE=(A,e)=>{if(!gA(A))throw nt(_e.NOT_SUPPORT_NON_STRING_MESSAGE);{NA(e.warnHtmlMessage)&&e.warnHtmlMessage;const i=(e.onCacheKey||SC)(A),n=hi[i];if(n)return n;const{code:o,detectError:r}=bC(A,e),g=new Function(`return ${o}`)();return r?g:hi[i]=g}};function $E(A,e){if(__INTLIFY_JIT_COMPILATION__&&!__INTLIFY_DROP_MESSAGE_COMPILER__&&gA(A)){NA(e.warnHtmlMessage)&&e.warnHtmlMessage;const i=(e.onCacheKey||SC)(A),n=hi[i];if(n)return n;const{ast:o,detectError:r}=bC(A,{...e,location:!1,jit:!0}),g=jo(o);return r?g:hi[i]=g}else{const t=A.cacheKey;if(t){const i=hi[t];return i||(hi[t]=jo(A))}else return jo(A)}}const Fs=()=>"",xe=A=>WA(A);function Ss(A,...e){const{fallbackFormat:t,postTranslation:i,unresolving:n,messageCompiler:o,fallbackLocale:r,messages:g}=A,[s,a]=yr(...e),I=NA(a.missingWarn)?a.missingWarn:A.missingWarn,l=NA(a.fallbackWarn)?a.fallbackWarn:A.fallbackWarn,C=NA(a.escapeParameter)?a.escapeParameter:A.escapeParameter,Q=!!a.resolvedMessage,u=gA(a.default)||NA(a.default)?NA(a.default)?o?s:()=>s:a.default:t?o?s:()=>s:"",f=t||u!=="",h=Cg(A,a);C&&Au(a);let[E,p,c]=Q?[s,h,g[h]||_A()]:RC(A,s,h,r,l,I),d=E,w=s;if(!Q&&!(gA(d)||at(d)||xe(d))&&f&&(d=u,w=d),!Q&&(!(gA(d)||at(d)||xe(d))||!gA(p)))return n?bo:s;let F=!1;const N=()=>{F=!0},G=xe(d)?d:NC(A,s,p,d,w,N);if(F)return d;const P=iu(A,p,c,a),b=RE(P),R=eu(A,G,b);let L=i?i(R,s):R;if(C&&gA(L)&&(L=Fc(L)),__INTLIFY_PROD_DEVTOOLS__){const EA={timestamp:Date.now(),key:gA(s)?s:xe(d)?d.key:"",locale:p||(xe(d)?d.locale:""),format:gA(d)?d:xe(d)?d.source:"",message:L};EA.meta=Qe({},A.__meta,VE()||{}),LE(EA)}return L}function Au(A){jA(A.list)?A.list=A.list.map(e=>gA(e)?ls(e):e):MA(A.named)&&Object.keys(A.named).forEach(e=>{gA(A.named[e])&&(A.named[e]=ls(A.named[e]))})}function RC(A,e,t,i,n,o){const{messages:r,onWarn:g,messageResolver:s,localeFallbacker:a}=A,I=a(A,i,t);let l=_A(),C,Q=null;const u="translate";for(let f=0;f<I.length&&(C=I[f],l=r[C]||_A(),(Q=s(l,e))===null&&(Q=l[e]),!(gA(Q)||at(Q)||xe(Q)));f++)if(!ZE(C,I)){const h=lg(A,e,C,o,u);h!==e&&(Q=h)}return[Q,C,l]}function NC(A,e,t,i,n,o){const{messageCompiler:r,warnHtmlMessage:g}=A;if(xe(i)){const a=i;return a.locale=a.locale||t,a.key=a.key||e,a}if(r==null){const a=()=>i;return a.locale=t,a.key=e,a}const s=r(i,tu(A,t,n,i,g,o));return s.locale=t,s.key=e,s.source=i,s}function eu(A,e,t){return e(t)}function yr(...A){const[e,t,i]=A,n=_A();if(!gA(e)&&!te(e)&&!xe(e)&&!at(e))throw nt(_e.INVALID_ARGUMENT);const o=te(e)?String(e):(xe(e),e);return te(t)?n.plural=t:gA(t)?n.default=t:FA(t)&&!Fo(t)?n.named=t:jA(t)&&(n.list=t),te(i)?n.plural=i:gA(i)?n.default=i:FA(i)&&Qe(n,i),[o,n]}function tu(A,e,t,i,n,o){return{locale:e,key:t,warnHtmlMessage:n,onError:r=>{throw o&&o(r),r},onCacheKey:r=>wc(e,t,r)}}function iu(A,e,t,i){const{modifiers:n,pluralRules:o,messageResolver:r,fallbackLocale:g,fallbackWarn:s,missingWarn:a,fallbackContext:I}=A,C={locale:e,modifiers:n,pluralRules:o,messages:Q=>{let u=r(t,Q);if(u==null&&I){const[,,f]=RC(I,Q,e,g,s,a);u=r(f,Q)}if(gA(u)||at(u)){let f=!1;const E=NC(A,Q,e,u,Q,()=>{f=!0});return f?Fs:E}else return xe(u)?u:Fs}};return A.processor&&(C.processor=A.processor),i.list&&(C.list=i.list),i.named&&(C.named=i.named),te(i.plural)&&(C.pluralIndex=i.plural),C}function bs(A,...e){const{datetimeFormats:t,unresolving:i,fallbackLocale:n,onWarn:o,localeFallbacker:r}=A,{__datetimeFormatters:g}=A,[s,a,I,l]=wr(...e),C=NA(I.missingWarn)?I.missingWarn:A.missingWarn;NA(I.fallbackWarn)?I.fallbackWarn:A.fallbackWarn;const Q=!!I.part,u=Cg(A,I),f=r(A,n,u);if(!gA(s)||s==="")return new Intl.DateTimeFormat(u,l).format(a);let h={},E,p=null;const c="datetime format";for(let F=0;F<f.length&&(E=f[F],h=t[E]||{},p=h[s],!FA(p));F++)lg(A,s,E,C,c);if(!FA(p)||!gA(E))return i?bo:s;let d=`${E}__${s}`;Fo(l)||(d=`${d}__${JSON.stringify(l)}`);let w=g.get(d);return w||(w=new Intl.DateTimeFormat(E,Qe({},p,l)),g.set(d,w)),Q?w.formatToParts(a):w.format(a)}const GC=["localeMatcher","weekday","era","year","month","day","hour","minute","second","timeZoneName","formatMatcher","hour12","timeZone","dateStyle","timeStyle","calendar","dayPeriod","numberingSystem","hourCycle","fractionalSecondDigits"];function wr(...A){const[e,t,i,n]=A,o=_A();let r=_A(),g;if(gA(e)){const s=e.match(/(\d{4}-\d{2}-\d{2})(T|\s)?(.*)/);if(!s)throw nt(_e.INVALID_ISO_DATE_ARGUMENT);const a=s[3]?s[3].trim().startsWith("T")?`${s[1].trim()}${s[3].trim()}`:`${s[1].trim()}T${s[3].trim()}`:s[1].trim();g=new Date(a);try{g.toISOString()}catch{throw nt(_e.INVALID_ISO_DATE_ARGUMENT)}}else if(kc(e)){if(isNaN(e.getTime()))throw nt(_e.INVALID_DATE_ARGUMENT);g=e}else if(te(e))g=e;else throw nt(_e.INVALID_ARGUMENT);return gA(t)?o.key=t:FA(t)&&Object.keys(t).forEach(s=>{GC.includes(s)?r[s]=t[s]:o[s]=t[s]}),gA(i)?o.locale=i:FA(i)&&(r=i),FA(n)&&(r=n),[o.key||"",g,o,r]}function Rs(A,e,t){const i=A;for(const n in t){const o=`${e}__${n}`;i.__datetimeFormatters.has(o)&&i.__datetimeFormatters.delete(o)}}function Ns(A,...e){const{numberFormats:t,unresolving:i,fallbackLocale:n,onWarn:o,localeFallbacker:r}=A,{__numberFormatters:g}=A,[s,a,I,l]=Dr(...e),C=NA(I.missingWarn)?I.missingWarn:A.missingWarn;NA(I.fallbackWarn)?I.fallbackWarn:A.fallbackWarn;const Q=!!I.part,u=Cg(A,I),f=r(A,n,u);if(!gA(s)||s==="")return new Intl.NumberFormat(u,l).format(a);let h={},E,p=null;const c="number format";for(let F=0;F<f.length&&(E=f[F],h=t[E]||{},p=h[s],!FA(p));F++)lg(A,s,E,C,c);if(!FA(p)||!gA(E))return i?bo:s;let d=`${E}__${s}`;Fo(l)||(d=`${d}__${JSON.stringify(l)}`);let w=g.get(d);return w||(w=new Intl.NumberFormat(E,Qe({},p,l)),g.set(d,w)),Q?w.formatToParts(a):w.format(a)}const LC=["localeMatcher","style","currency","currencyDisplay","currencySign","useGrouping","minimumIntegerDigits","minimumFractionDigits","maximumFractionDigits","minimumSignificantDigits","maximumSignificantDigits","compactDisplay","notation","signDisplay","unit","unitDisplay","roundingMode","roundingPriority","roundingIncrement","trailingZeroDisplay"];function Dr(...A){const[e,t,i,n]=A,o=_A();let r=_A();if(!te(e))throw nt(_e.INVALID_ARGUMENT);const g=e;return gA(t)?o.key=t:FA(t)&&Object.keys(t).forEach(s=>{LC.includes(s)?r[s]=t[s]:o[s]=t[s]}),gA(i)?o.locale=i:FA(i)&&(r=i),FA(n)&&(r=n),[o.key||"",g,o,r]}function Gs(A,e,t){const i=A;for(const n in t){const o=`${e}__${n}`;i.__numberFormatters.has(o)&&i.__numberFormatters.delete(o)}}aE();/*!
|
||
* vue-i18n v9.14.5
|
||
* (c) 2025 kazuya kawaguchi
|
||
* Released under the MIT License.
|
||
*/const nu="9.14.5";function ou(){typeof __VUE_I18N_FULL_INSTALL__!="boolean"&&(dt().__VUE_I18N_FULL_INSTALL__=!0),typeof __VUE_I18N_LEGACY_API__!="boolean"&&(dt().__VUE_I18N_LEGACY_API__=!0),typeof __INTLIFY_JIT_COMPILATION__!="boolean"&&(dt().__INTLIFY_JIT_COMPILATION__=!1),typeof __INTLIFY_DROP_MESSAGE_COMPILER__!="boolean"&&(dt().__INTLIFY_DROP_MESSAGE_COMPILER__=!1),typeof __INTLIFY_PROD_DEVTOOLS__!="boolean"&&(dt().__INTLIFY_PROD_DEVTOOLS__=!1)}const ru=xE.__EXTEND_POINT__,ct=So(ru);ct(),ct(),ct(),ct(),ct(),ct(),ct(),ct(),ct();const UC=_e.__EXTEND_POINT__,De=So(UC),ge={UNEXPECTED_RETURN_TYPE:UC,INVALID_ARGUMENT:De(),MUST_BE_CALL_SETUP_TOP:De(),NOT_INSTALLED:De(),NOT_AVAILABLE_IN_LEGACY_MODE:De(),REQUIRED_VALUE:De(),INVALID_VALUE:De(),CANNOT_SETUP_VUE_DEVTOOLS_PLUGIN:De(),NOT_INSTALLED_WITH_PROVIDE:De(),UNEXPECTED_ERROR:De(),NOT_COMPATIBLE_LEGACY_VUE_I18N:De(),BRIDGE_SUPPORT_VUE_2_ONLY:De(),MUST_DEFINE_I18N_OPTION_IN_ALLOW_COMPOSITION:De(),NOT_AVAILABLE_COMPOSITION_IN_LEGACY:De(),__EXTEND_POINT__:De()};function Ce(A,...e){return Ui(A,null,void 0)}const kr=Wt("__translateVNode"),vr=Wt("__datetimeParts"),Fr=Wt("__numberParts"),MC=Wt("__setPluralRules"),xC=Wt("__injectWithOption"),Sr=Wt("__dispose");function an(A){if(!MA(A)||at(A))return A;for(const e in A)if(Ye(A,e))if(!e.includes("."))MA(A[e])&&an(A[e]);else{const t=e.split("."),i=t.length-1;let n=A,o=!1;for(let r=0;r<i;r++){if(t[r]==="__proto__")throw new Error(`unsafe key: ${t[r]}`);if(t[r]in n||(n[t[r]]=_A()),!MA(n[t[r]])){o=!0;break}n=n[t[r]]}if(o||(at(n)?pC.includes(t[i])||delete A[e]:(n[t[i]]=A[e],delete A[e])),!at(n)){const r=n[t[i]];MA(r)&&an(r)}}return A}function Ro(A,e){const{messages:t,__i18n:i,messageResolver:n,flatJson:o}=e,r=FA(t)?t:jA(i)?_A():{[A]:_A()};if(jA(i)&&i.forEach(g=>{if("locale"in g&&"resource"in g){const{locale:s,resource:a}=g;s?(r[s]=r[s]||_A(),Pn(a,r[s])):Pn(a,r)}else gA(g)&&Pn(JSON.parse(g),r)}),n==null&&o)for(const g in r)Ye(r,g)&&an(r[g]);return r}function JC(A){return A.type}function TC(A,e,t){let i=MA(e.messages)?e.messages:_A();"__i18nGlobal"in t&&(i=Ro(A.locale.value,{messages:i,__i18n:t.__i18nGlobal}));const n=Object.keys(i);n.length&&n.forEach(o=>{A.mergeLocaleMessage(o,i[o])});{if(MA(e.datetimeFormats)){const o=Object.keys(e.datetimeFormats);o.length&&o.forEach(r=>{A.mergeDateTimeFormat(r,e.datetimeFormats[r])})}if(MA(e.numberFormats)){const o=Object.keys(e.numberFormats);o.length&&o.forEach(r=>{A.mergeNumberFormat(r,e.numberFormats[r])})}}}function Ls(A){return YA(dn,null,A,0)}const Us="__INTLIFY_META__",Ms=()=>[],gu=()=>!1;let xs=0;function Js(A){return(e,t,i,n)=>A(t,i,Fi()||void 0,n)}const su=()=>{const A=Fi();let e=null;return A&&(e=JC(A)[Us])?{[Us]:e}:null};function Bg(A={},e){const{__root:t,__injectWithOption:i}=A,n=t===void 0,o=A.flatJson,r=oo?uA:tg,g=!!A.translateExistCompatible;let s=NA(A.inheritLocale)?A.inheritLocale:!0;const a=r(t&&s?t.locale.value:gA(A.locale)?A.locale:bi),I=r(t&&s?t.fallbackLocale.value:gA(A.fallbackLocale)||jA(A.fallbackLocale)||FA(A.fallbackLocale)||A.fallbackLocale===!1?A.fallbackLocale:a.value),l=r(Ro(a.value,A)),C=r(FA(A.datetimeFormats)?A.datetimeFormats:{[a.value]:{}}),Q=r(FA(A.numberFormats)?A.numberFormats:{[a.value]:{}});let u=t?t.missingWarn:NA(A.missingWarn)||Ot(A.missingWarn)?A.missingWarn:!0,f=t?t.fallbackWarn:NA(A.fallbackWarn)||Ot(A.fallbackWarn)?A.fallbackWarn:!0,h=t?t.fallbackRoot:NA(A.fallbackRoot)?A.fallbackRoot:!0,E=!!A.fallbackFormat,p=WA(A.missing)?A.missing:null,c=WA(A.missing)?Js(A.missing):null,d=WA(A.postTranslation)?A.postTranslation:null,w=t?t.warnHtmlMessage:NA(A.warnHtmlMessage)?A.warnHtmlMessage:!0,F=!!A.escapeParameter;const N=t?t.modifiers:FA(A.modifiers)?A.modifiers:{};let G=A.pluralRules||t&&t.pluralRules,P;P=(()=>{n&&Ds(null);const U={version:nu,locale:a.value,fallbackLocale:I.value,messages:l.value,modifiers:N,pluralRules:G,missing:c===null?void 0:c,missingWarn:u,fallbackWarn:f,fallbackFormat:E,unresolving:!0,postTranslation:d===null?void 0:d,warnHtmlMessage:w,escapeParameter:F,messageResolver:A.messageResolver,messageCompiler:A.messageCompiler,__meta:{framework:"vue"}};U.datetimeFormats=C.value,U.numberFormats=Q.value,U.__datetimeFormatters=FA(P)?P.__datetimeFormatters:void 0,U.__numberFormatters=FA(P)?P.__numberFormatters:void 0;const O=qE(U);return n&&Ds(O),O})(),Hi(P,a.value,I.value);function R(){return[a.value,I.value,l.value,C.value,Q.value]}const L=fA({get:()=>a.value,set:U=>{a.value=U,P.locale=a.value}}),EA=fA({get:()=>I.value,set:U=>{I.value=U,P.fallbackLocale=I.value,Hi(P,a.value,U)}}),pA=fA(()=>l.value),lA=fA(()=>C.value),nA=fA(()=>Q.value);function z(){return WA(d)?d:null}function tA(U){d=U,P.postTranslation=U}function dA(){return p}function kA(U){U!==null&&(c=Js(U)),p=U,P.missing=c}const Y=(U,O,hA,GA,XA,fe)=>{R();let le;try{__INTLIFY_PROD_DEVTOOLS__,n||(P.fallbackContext=t?WE():void 0),le=U(P)}finally{__INTLIFY_PROD_DEVTOOLS__,n||(P.fallbackContext=void 0)}if(hA!=="translate exists"&&te(le)&&le===bo||hA==="translate exists"&&!le){const[Zt,xo]=O();return t&&h?GA(t):XA(Zt)}else{if(fe(le))return le;throw Ce(ge.UNEXPECTED_RETURN_TYPE)}};function j(...U){return Y(O=>Reflect.apply(Ss,null,[O,...U]),()=>yr(...U),"translate",O=>Reflect.apply(O.t,O,[...U]),O=>O,O=>gA(O))}function sA(...U){const[O,hA,GA]=U;if(GA&&!MA(GA))throw Ce(ge.INVALID_ARGUMENT);return j(O,hA,Qe({resolvedMessage:!0},GA||{}))}function SA(...U){return Y(O=>Reflect.apply(bs,null,[O,...U]),()=>wr(...U),"datetime format",O=>Reflect.apply(O.d,O,[...U]),()=>ms,O=>gA(O))}function UA(...U){return Y(O=>Reflect.apply(Ns,null,[O,...U]),()=>Dr(...U),"number format",O=>Reflect.apply(O.n,O,[...U]),()=>ms,O=>gA(O))}function HA(U){return U.map(O=>gA(O)||te(O)||NA(O)?Ls(String(O)):O)}const X={normalize:HA,interpolate:U=>U,type:"vnode"};function AA(...U){return Y(O=>{let hA;const GA=O;try{GA.processor=X,hA=Reflect.apply(Ss,null,[GA,...U])}finally{GA.processor=null}return hA},()=>yr(...U),"translate",O=>O[kr](...U),O=>[Ls(O)],O=>jA(O))}function CA(...U){return Y(O=>Reflect.apply(Ns,null,[O,...U]),()=>Dr(...U),"number format",O=>O[Fr](...U),Ms,O=>gA(O)||jA(O))}function RA(...U){return Y(O=>Reflect.apply(bs,null,[O,...U]),()=>wr(...U),"datetime format",O=>O[vr](...U),Ms,O=>gA(O)||jA(O))}function D(U){G=U,P.pluralRules=G}function S(U,O){return Y(()=>{if(!U)return!1;const hA=gA(O)?O:a.value,GA=q(hA),XA=P.messageResolver(GA,U);return g?XA!=null:at(XA)||xe(XA)||gA(XA)},()=>[U],"translate exists",hA=>Reflect.apply(hA.te,hA,[U,O]),gu,hA=>NA(hA))}function k(U){let O=null;const hA=yC(P,I.value,a.value);for(let GA=0;GA<hA.length;GA++){const XA=l.value[hA[GA]]||{},fe=P.messageResolver(XA,U);if(fe!=null){O=fe;break}}return O}function J(U){const O=k(U);return O??(t?t.tm(U)||{}:{})}function q(U){return l.value[U]||{}}function V(U,O){if(o){const hA={[U]:O};for(const GA in hA)Ye(hA,GA)&&an(hA[GA]);O=hA[U]}l.value[U]=O,P.messages=l.value}function iA(U,O){l.value[U]=l.value[U]||{};const hA={[U]:O};if(o)for(const GA in hA)Ye(hA,GA)&&an(hA[GA]);O=hA[U],Pn(O,l.value[U]),P.messages=l.value}function eA(U){return C.value[U]||{}}function m(U,O){C.value[U]=O,P.datetimeFormats=C.value,Rs(P,U,O)}function y(U,O){C.value[U]=Qe(C.value[U]||{},O),P.datetimeFormats=C.value,Rs(P,U,O)}function x(U){return Q.value[U]||{}}function K(U,O){Q.value[U]=O,P.numberFormats=Q.value,Gs(P,U,O)}function oA(U,O){Q.value[U]=Qe(Q.value[U]||{},O),P.numberFormats=Q.value,Gs(P,U,O)}xs++,t&&oo&&(Ie(t.locale,U=>{s&&(a.value=U,P.locale=U,Hi(P,a.value,I.value))}),Ie(t.fallbackLocale,U=>{s&&(I.value=U,P.fallbackLocale=U,Hi(P,a.value,I.value))}));const $={id:xs,locale:L,fallbackLocale:EA,get inheritLocale(){return s},set inheritLocale(U){s=U,U&&t&&(a.value=t.locale.value,I.value=t.fallbackLocale.value,Hi(P,a.value,I.value))},get availableLocales(){return Object.keys(l.value).sort()},messages:pA,get modifiers(){return N},get pluralRules(){return G||{}},get isGlobal(){return n},get missingWarn(){return u},set missingWarn(U){u=U,P.missingWarn=u},get fallbackWarn(){return f},set fallbackWarn(U){f=U,P.fallbackWarn=f},get fallbackRoot(){return h},set fallbackRoot(U){h=U},get fallbackFormat(){return E},set fallbackFormat(U){E=U,P.fallbackFormat=E},get warnHtmlMessage(){return w},set warnHtmlMessage(U){w=U,P.warnHtmlMessage=U},get escapeParameter(){return F},set escapeParameter(U){F=U,P.escapeParameter=U},t:j,getLocaleMessage:q,setLocaleMessage:V,mergeLocaleMessage:iA,getPostTranslationHandler:z,setPostTranslationHandler:tA,getMissingHandler:dA,setMissingHandler:kA,[MC]:D};return $.datetimeFormats=lA,$.numberFormats=nA,$.rt=sA,$.te=S,$.tm=J,$.d=SA,$.n=UA,$.getDateTimeFormat=eA,$.setDateTimeFormat=m,$.mergeDateTimeFormat=y,$.getNumberFormat=x,$.setNumberFormat=K,$.mergeNumberFormat=oA,$[xC]=i,$[kr]=AA,$[vr]=RA,$[Fr]=CA,$}function au(A){const e=gA(A.locale)?A.locale:bi,t=gA(A.fallbackLocale)||jA(A.fallbackLocale)||FA(A.fallbackLocale)||A.fallbackLocale===!1?A.fallbackLocale:e,i=WA(A.missing)?A.missing:void 0,n=NA(A.silentTranslationWarn)||Ot(A.silentTranslationWarn)?!A.silentTranslationWarn:!0,o=NA(A.silentFallbackWarn)||Ot(A.silentFallbackWarn)?!A.silentFallbackWarn:!0,r=NA(A.fallbackRoot)?A.fallbackRoot:!0,g=!!A.formatFallbackMessages,s=FA(A.modifiers)?A.modifiers:{},a=A.pluralizationRules,I=WA(A.postTranslation)?A.postTranslation:void 0,l=gA(A.warnHtmlInMessage)?A.warnHtmlInMessage!=="off":!0,C=!!A.escapeParameterHtml,Q=NA(A.sync)?A.sync:!0;let u=A.messages;if(FA(A.sharedMessages)){const F=A.sharedMessages;u=Object.keys(F).reduce((G,P)=>{const b=G[P]||(G[P]={});return Qe(b,F[P]),G},u||{})}const{__i18n:f,__root:h,__injectWithOption:E}=A,p=A.datetimeFormats,c=A.numberFormats,d=A.flatJson,w=A.translateExistCompatible;return{locale:e,fallbackLocale:t,messages:u,flatJson:d,datetimeFormats:p,numberFormats:c,missing:i,missingWarn:n,fallbackWarn:o,fallbackRoot:r,fallbackFormat:g,modifiers:s,pluralRules:a,postTranslation:I,warnHtmlMessage:l,escapeParameter:C,messageResolver:A.messageResolver,inheritLocale:Q,translateExistCompatible:w,__i18n:f,__root:h,__injectWithOption:E}}function br(A={},e){{const t=Bg(au(A)),{__extender:i}=A,n={id:t.id,get locale(){return t.locale.value},set locale(o){t.locale.value=o},get fallbackLocale(){return t.fallbackLocale.value},set fallbackLocale(o){t.fallbackLocale.value=o},get messages(){return t.messages.value},get datetimeFormats(){return t.datetimeFormats.value},get numberFormats(){return t.numberFormats.value},get availableLocales(){return t.availableLocales},get formatter(){return{interpolate(){return[]}}},set formatter(o){},get missing(){return t.getMissingHandler()},set missing(o){t.setMissingHandler(o)},get silentTranslationWarn(){return NA(t.missingWarn)?!t.missingWarn:t.missingWarn},set silentTranslationWarn(o){t.missingWarn=NA(o)?!o:o},get silentFallbackWarn(){return NA(t.fallbackWarn)?!t.fallbackWarn:t.fallbackWarn},set silentFallbackWarn(o){t.fallbackWarn=NA(o)?!o:o},get modifiers(){return t.modifiers},get formatFallbackMessages(){return t.fallbackFormat},set formatFallbackMessages(o){t.fallbackFormat=o},get postTranslation(){return t.getPostTranslationHandler()},set postTranslation(o){t.setPostTranslationHandler(o)},get sync(){return t.inheritLocale},set sync(o){t.inheritLocale=o},get warnHtmlInMessage(){return t.warnHtmlMessage?"warn":"off"},set warnHtmlInMessage(o){t.warnHtmlMessage=o!=="off"},get escapeParameterHtml(){return t.escapeParameter},set escapeParameterHtml(o){t.escapeParameter=o},get preserveDirectiveContent(){return!0},set preserveDirectiveContent(o){},get pluralizationRules(){return t.pluralRules||{}},__composer:t,t(...o){const[r,g,s]=o,a={};let I=null,l=null;if(!gA(r))throw Ce(ge.INVALID_ARGUMENT);const C=r;return gA(g)?a.locale=g:jA(g)?I=g:FA(g)&&(l=g),jA(s)?I=s:FA(s)&&(l=s),Reflect.apply(t.t,t,[C,I||l||{},a])},rt(...o){return Reflect.apply(t.rt,t,[...o])},tc(...o){const[r,g,s]=o,a={plural:1};let I=null,l=null;if(!gA(r))throw Ce(ge.INVALID_ARGUMENT);const C=r;return gA(g)?a.locale=g:te(g)?a.plural=g:jA(g)?I=g:FA(g)&&(l=g),gA(s)?a.locale=s:jA(s)?I=s:FA(s)&&(l=s),Reflect.apply(t.t,t,[C,I||l||{},a])},te(o,r){return t.te(o,r)},tm(o){return t.tm(o)},getLocaleMessage(o){return t.getLocaleMessage(o)},setLocaleMessage(o,r){t.setLocaleMessage(o,r)},mergeLocaleMessage(o,r){t.mergeLocaleMessage(o,r)},d(...o){return Reflect.apply(t.d,t,[...o])},getDateTimeFormat(o){return t.getDateTimeFormat(o)},setDateTimeFormat(o,r){t.setDateTimeFormat(o,r)},mergeDateTimeFormat(o,r){t.mergeDateTimeFormat(o,r)},n(...o){return Reflect.apply(t.n,t,[...o])},getNumberFormat(o){return t.getNumberFormat(o)},setNumberFormat(o,r){t.setNumberFormat(o,r)},mergeNumberFormat(o,r){t.mergeNumberFormat(o,r)},getChoiceIndex(o,r){return-1}};return n.__extender=i,n}}const Qg={tag:{type:[String,Object]},locale:{type:String},scope:{type:String,validator:A=>A==="parent"||A==="global",default:"parent"},i18n:{type:Object}};function Iu({slots:A},e){return e.length===1&&e[0]==="default"?(A.default?A.default():[]).reduce((i,n)=>[...i,...n.type===ZA?n.children:[n]],[]):e.reduce((t,i)=>{const n=A[i];return n&&(t[i]=n()),t},_A())}function HC(A){return ZA}const Cu=fn({name:"i18n-t",props:Qe({keypath:{type:String,required:!0},plural:{type:[Number,String],validator:A=>te(A)||!isNaN(A)}},Qg),setup(A,e){const{slots:t,attrs:i}=e,n=A.i18n||Fe({useScope:A.scope,__useComponent:!0});return()=>{const o=Object.keys(t).filter(l=>l!=="_"),r=_A();A.locale&&(r.locale=A.locale),A.plural!==void 0&&(r.plural=gA(A.plural)?+A.plural:A.plural);const g=Iu(e,o),s=n[kr](A.keypath,g,r),a=Qe(_A(),i),I=gA(A.tag)||MA(A.tag)?A.tag:HC();return LA(I,a,s)}}}),Ts=Cu;function lu(A){return jA(A)&&!gA(A[0])}function YC(A,e,t,i){const{slots:n,attrs:o}=e;return()=>{const r={part:!0};let g=_A();A.locale&&(r.locale=A.locale),gA(A.format)?r.key=A.format:MA(A.format)&&(gA(A.format.key)&&(r.key=A.format.key),g=Object.keys(A.format).reduce((C,Q)=>t.includes(Q)?Qe(_A(),C,{[Q]:A.format[Q]}):C,_A()));const s=i(A.value,r,g);let a=[r.key];jA(s)?a=s.map((C,Q)=>{const u=n[C.type],f=u?u({[C.type]:C.value,index:Q,parts:s}):[C.value];return lu(f)&&(f[0].key=`${C.type}-${Q}`),f}):gA(s)&&(a=[s]);const I=Qe(_A(),o),l=gA(A.tag)||MA(A.tag)?A.tag:HC();return LA(l,I,a)}}const Bu=fn({name:"i18n-n",props:Qe({value:{type:Number,required:!0},format:{type:[String,Object]}},Qg),setup(A,e){const t=A.i18n||Fe({useScope:A.scope,__useComponent:!0});return YC(A,e,LC,(...i)=>t[Fr](...i))}}),Hs=Bu,Qu=fn({name:"i18n-d",props:Qe({value:{type:[Number,Date],required:!0},format:{type:[String,Object]}},Qg),setup(A,e){const t=A.i18n||Fe({useScope:A.scope,__useComponent:!0});return YC(A,e,GC,(...i)=>t[vr](...i))}}),Ys=Qu;function cu(A,e){const t=A;if(A.mode==="composition")return t.__getInstance(e)||A.global;{const i=t.__getInstance(e);return i!=null?i.__composer:A.global.__composer}}function Eu(A){const e=r=>{const{instance:g,modifiers:s,value:a}=r;if(!g||!g.$)throw Ce(ge.UNEXPECTED_ERROR);const I=cu(A,g.$),l=_s(a);return[Reflect.apply(I.t,I,[...Ks(l)]),I]};return{created:(r,g)=>{const[s,a]=e(g);oo&&A.global===a&&(r.__i18nWatcher=Ie(a.locale,()=>{g.instance&&g.instance.$forceUpdate()})),r.__composer=a,r.textContent=s},unmounted:r=>{oo&&r.__i18nWatcher&&(r.__i18nWatcher(),r.__i18nWatcher=void 0,delete r.__i18nWatcher),r.__composer&&(r.__composer=void 0,delete r.__composer)},beforeUpdate:(r,{value:g})=>{if(r.__composer){const s=r.__composer,a=_s(g);r.textContent=Reflect.apply(s.t,s,[...Ks(a)])}},getSSRProps:r=>{const[g]=e(r);return{textContent:g}}}}function _s(A){if(gA(A))return{path:A};if(FA(A)){if(!("path"in A))throw Ce(ge.REQUIRED_VALUE,"path");return A}else throw Ce(ge.INVALID_VALUE)}function Ks(A){const{path:e,locale:t,args:i,choice:n,plural:o}=A,r={},g=i||{};return gA(t)&&(r.locale=t),te(n)&&(r.plural=n),te(o)&&(r.plural=o),[e,g,r]}function uu(A,e,...t){const i=FA(t[0])?t[0]:{},n=!!i.useI18nComponentName;(NA(i.globalInstall)?i.globalInstall:!0)&&([n?"i18n":Ts.name,"I18nT"].forEach(r=>A.component(r,Ts)),[Hs.name,"I18nN"].forEach(r=>A.component(r,Hs)),[Ys.name,"I18nD"].forEach(r=>A.component(r,Ys))),A.directive("t",Eu(e))}function hu(A,e,t){return{beforeCreate(){const i=Fi();if(!i)throw Ce(ge.UNEXPECTED_ERROR);const n=this.$options;if(n.i18n){const o=n.i18n;if(n.__i18n&&(o.__i18n=n.__i18n),o.__root=e,this===this.$root)this.$i18n=Ps(A,o);else{o.__injectWithOption=!0,o.__extender=t.__vueI18nExtend,this.$i18n=br(o);const r=this.$i18n;r.__extender&&(r.__disposer=r.__extender(this.$i18n))}}else if(n.__i18n)if(this===this.$root)this.$i18n=Ps(A,n);else{this.$i18n=br({__i18n:n.__i18n,__injectWithOption:!0,__extender:t.__vueI18nExtend,__root:e});const o=this.$i18n;o.__extender&&(o.__disposer=o.__extender(this.$i18n))}else this.$i18n=A;n.__i18nGlobal&&TC(e,n,n),this.$t=(...o)=>this.$i18n.t(...o),this.$rt=(...o)=>this.$i18n.rt(...o),this.$tc=(...o)=>this.$i18n.tc(...o),this.$te=(o,r)=>this.$i18n.te(o,r),this.$d=(...o)=>this.$i18n.d(...o),this.$n=(...o)=>this.$i18n.n(...o),this.$tm=o=>this.$i18n.tm(o),t.__setInstance(i,this.$i18n)},mounted(){},unmounted(){const i=Fi();if(!i)throw Ce(ge.UNEXPECTED_ERROR);const n=this.$i18n;delete this.$t,delete this.$rt,delete this.$tc,delete this.$te,delete this.$d,delete this.$n,delete this.$tm,n.__disposer&&(n.__disposer(),delete n.__disposer,delete n.__extender),t.__deleteInstance(i),delete this.$i18n}}}function Ps(A,e){A.locale=e.locale||A.locale,A.fallbackLocale=e.fallbackLocale||A.fallbackLocale,A.missing=e.missing||A.missing,A.silentTranslationWarn=e.silentTranslationWarn||A.silentFallbackWarn,A.silentFallbackWarn=e.silentFallbackWarn||A.silentFallbackWarn,A.formatFallbackMessages=e.formatFallbackMessages||A.formatFallbackMessages,A.postTranslation=e.postTranslation||A.postTranslation,A.warnHtmlInMessage=e.warnHtmlInMessage||A.warnHtmlInMessage,A.escapeParameterHtml=e.escapeParameterHtml||A.escapeParameterHtml,A.sync=e.sync||A.sync,A.__composer[MC](e.pluralizationRules||A.pluralizationRules);const t=Ro(A.locale,{messages:e.messages,__i18n:e.__i18n});return Object.keys(t).forEach(i=>A.mergeLocaleMessage(i,t[i])),e.datetimeFormats&&Object.keys(e.datetimeFormats).forEach(i=>A.mergeDateTimeFormat(i,e.datetimeFormats[i])),e.numberFormats&&Object.keys(e.numberFormats).forEach(i=>A.mergeNumberFormat(i,e.numberFormats[i])),A}const fu=Wt("global-vue-i18n");function du(A={},e){const t=__VUE_I18N_LEGACY_API__&&NA(A.legacy)?A.legacy:__VUE_I18N_LEGACY_API__,i=NA(A.globalInjection)?A.globalInjection:!0,n=__VUE_I18N_LEGACY_API__&&t?!!A.allowComposition:!0,o=new Map,[r,g]=pu(A,t),s=Wt("");function a(C){return o.get(C)||null}function I(C,Q){o.set(C,Q)}function l(C){o.delete(C)}{const C={get mode(){return __VUE_I18N_LEGACY_API__&&t?"legacy":"composition"},get allowComposition(){return n},async install(Q,...u){if(Q.__VUE_I18N_SYMBOL__=s,Q.provide(Q.__VUE_I18N_SYMBOL__,C),FA(u[0])){const E=u[0];C.__composerExtend=E.__composerExtend,C.__vueI18nExtend=E.__vueI18nExtend}let f=null;!t&&i&&(f=bu(Q,C.global)),__VUE_I18N_FULL_INSTALL__&&uu(Q,C,...u),__VUE_I18N_LEGACY_API__&&t&&Q.mixin(hu(g,g.__composer,C));const h=Q.unmount;Q.unmount=()=>{f&&f(),C.dispose(),h()}},get global(){return g},dispose(){r.stop()},__instances:o,__getInstance:a,__setInstance:I,__deleteInstance:l};return C}}function Fe(A={}){const e=Fi();if(e==null)throw Ce(ge.MUST_BE_CALL_SETUP_TOP);if(!e.isCE&&e.appContext.app!=null&&!e.appContext.app.__VUE_I18N_SYMBOL__)throw Ce(ge.NOT_INSTALLED);const t=mu(e),i=wu(t),n=JC(e),o=yu(A,n);if(__VUE_I18N_LEGACY_API__&&t.mode==="legacy"&&!A.__useComponent){if(!t.allowComposition)throw Ce(ge.NOT_AVAILABLE_IN_LEGACY_MODE);return Fu(e,o,i,A)}if(o==="global")return TC(i,A,n),i;if(o==="parent"){let s=Du(t,e,A.__useComponent);return s==null&&(s=i),s}const r=t;let g=r.__getInstance(e);if(g==null){const s=Qe({},A);"__i18n"in n&&(s.__i18n=n.__i18n),i&&(s.__root=i),g=Bg(s),r.__composerExtend&&(g[Sr]=r.__composerExtend(g)),vu(r,e,g),r.__setInstance(e,g)}return g}function pu(A,e,t){const i=EB();{const n=__VUE_I18N_LEGACY_API__&&e?i.run(()=>br(A)):i.run(()=>Bg(A));if(n==null)throw Ce(ge.UNEXPECTED_ERROR);return[i,n]}}function mu(A){{const e=gt(A.isCE?fu:A.appContext.app.__VUE_I18N_SYMBOL__);if(!e)throw Ce(A.isCE?ge.NOT_INSTALLED_WITH_PROVIDE:ge.UNEXPECTED_ERROR);return e}}function yu(A,e){return Fo(A)?"__i18n"in e?"local":"global":A.useScope?A.useScope:"local"}function wu(A){return A.mode==="composition"?A.global:A.global.__composer}function Du(A,e,t=!1){let i=null;const n=e.root;let o=ku(e,t);for(;o!=null;){const r=A;if(A.mode==="composition")i=r.__getInstance(o);else if(__VUE_I18N_LEGACY_API__){const g=r.__getInstance(o);g!=null&&(i=g.__composer,t&&i&&!i[xC]&&(i=null))}if(i!=null||n===o)break;o=o.parent}return i}function ku(A,e=!1){return A==null?null:e&&A.vnode.ctx||A.parent}function vu(A,e,t){St(()=>{},e),li(()=>{const i=t;A.__deleteInstance(e);const n=i[Sr];n&&(n(),delete i[Sr])},e)}function Fu(A,e,t,i={}){const n=e==="local",o=tg(null);if(n&&A.proxy&&!(A.proxy.$options.i18n||A.proxy.$options.__i18n))throw Ce(ge.MUST_DEFINE_I18N_OPTION_IN_ALLOW_COMPOSITION);const r=NA(i.inheritLocale)?i.inheritLocale:!gA(i.locale),g=uA(!n||r?t.locale.value:gA(i.locale)?i.locale:bi),s=uA(!n||r?t.fallbackLocale.value:gA(i.fallbackLocale)||jA(i.fallbackLocale)||FA(i.fallbackLocale)||i.fallbackLocale===!1?i.fallbackLocale:g.value),a=uA(Ro(g.value,i)),I=uA(FA(i.datetimeFormats)?i.datetimeFormats:{[g.value]:{}}),l=uA(FA(i.numberFormats)?i.numberFormats:{[g.value]:{}}),C=n?t.missingWarn:NA(i.missingWarn)||Ot(i.missingWarn)?i.missingWarn:!0,Q=n?t.fallbackWarn:NA(i.fallbackWarn)||Ot(i.fallbackWarn)?i.fallbackWarn:!0,u=n?t.fallbackRoot:NA(i.fallbackRoot)?i.fallbackRoot:!0,f=!!i.fallbackFormat,h=WA(i.missing)?i.missing:null,E=WA(i.postTranslation)?i.postTranslation:null,p=n?t.warnHtmlMessage:NA(i.warnHtmlMessage)?i.warnHtmlMessage:!0,c=!!i.escapeParameter,d=n?t.modifiers:FA(i.modifiers)?i.modifiers:{},w=i.pluralRules||n&&t.pluralRules;function F(){return[g.value,s.value,a.value,I.value,l.value]}const N=fA({get:()=>o.value?o.value.locale.value:g.value,set:k=>{o.value&&(o.value.locale.value=k),g.value=k}}),G=fA({get:()=>o.value?o.value.fallbackLocale.value:s.value,set:k=>{o.value&&(o.value.fallbackLocale.value=k),s.value=k}}),P=fA(()=>o.value?o.value.messages.value:a.value),b=fA(()=>I.value),R=fA(()=>l.value);function L(){return o.value?o.value.getPostTranslationHandler():E}function EA(k){o.value&&o.value.setPostTranslationHandler(k)}function pA(){return o.value?o.value.getMissingHandler():h}function lA(k){o.value&&o.value.setMissingHandler(k)}function nA(k){return F(),k()}function z(...k){return o.value?nA(()=>Reflect.apply(o.value.t,null,[...k])):nA(()=>"")}function tA(...k){return o.value?Reflect.apply(o.value.rt,null,[...k]):""}function dA(...k){return o.value?nA(()=>Reflect.apply(o.value.d,null,[...k])):nA(()=>"")}function kA(...k){return o.value?nA(()=>Reflect.apply(o.value.n,null,[...k])):nA(()=>"")}function Y(k){return o.value?o.value.tm(k):{}}function j(k,J){return o.value?o.value.te(k,J):!1}function sA(k){return o.value?o.value.getLocaleMessage(k):{}}function SA(k,J){o.value&&(o.value.setLocaleMessage(k,J),a.value[k]=J)}function UA(k,J){o.value&&o.value.mergeLocaleMessage(k,J)}function HA(k){return o.value?o.value.getDateTimeFormat(k):{}}function M(k,J){o.value&&(o.value.setDateTimeFormat(k,J),I.value[k]=J)}function X(k,J){o.value&&o.value.mergeDateTimeFormat(k,J)}function AA(k){return o.value?o.value.getNumberFormat(k):{}}function CA(k,J){o.value&&(o.value.setNumberFormat(k,J),l.value[k]=J)}function RA(k,J){o.value&&o.value.mergeNumberFormat(k,J)}const D={get id(){return o.value?o.value.id:-1},locale:N,fallbackLocale:G,messages:P,datetimeFormats:b,numberFormats:R,get inheritLocale(){return o.value?o.value.inheritLocale:r},set inheritLocale(k){o.value&&(o.value.inheritLocale=k)},get availableLocales(){return o.value?o.value.availableLocales:Object.keys(a.value)},get modifiers(){return o.value?o.value.modifiers:d},get pluralRules(){return o.value?o.value.pluralRules:w},get isGlobal(){return o.value?o.value.isGlobal:!1},get missingWarn(){return o.value?o.value.missingWarn:C},set missingWarn(k){o.value&&(o.value.missingWarn=k)},get fallbackWarn(){return o.value?o.value.fallbackWarn:Q},set fallbackWarn(k){o.value&&(o.value.missingWarn=k)},get fallbackRoot(){return o.value?o.value.fallbackRoot:u},set fallbackRoot(k){o.value&&(o.value.fallbackRoot=k)},get fallbackFormat(){return o.value?o.value.fallbackFormat:f},set fallbackFormat(k){o.value&&(o.value.fallbackFormat=k)},get warnHtmlMessage(){return o.value?o.value.warnHtmlMessage:p},set warnHtmlMessage(k){o.value&&(o.value.warnHtmlMessage=k)},get escapeParameter(){return o.value?o.value.escapeParameter:c},set escapeParameter(k){o.value&&(o.value.escapeParameter=k)},t:z,getPostTranslationHandler:L,setPostTranslationHandler:EA,getMissingHandler:pA,setMissingHandler:lA,rt:tA,d:dA,n:kA,tm:Y,te:j,getLocaleMessage:sA,setLocaleMessage:SA,mergeLocaleMessage:UA,getDateTimeFormat:HA,setDateTimeFormat:M,mergeDateTimeFormat:X,getNumberFormat:AA,setNumberFormat:CA,mergeNumberFormat:RA};function S(k){k.locale.value=g.value,k.fallbackLocale.value=s.value,Object.keys(a.value).forEach(J=>{k.mergeLocaleMessage(J,a.value[J])}),Object.keys(I.value).forEach(J=>{k.mergeDateTimeFormat(J,I.value[J])}),Object.keys(l.value).forEach(J=>{k.mergeNumberFormat(J,l.value[J])}),k.escapeParameter=c,k.fallbackFormat=f,k.fallbackRoot=u,k.fallbackWarn=Q,k.missingWarn=C,k.warnHtmlMessage=p}return JI(()=>{if(A.proxy==null||A.proxy.$i18n==null)throw Ce(ge.NOT_AVAILABLE_COMPOSITION_IN_LEGACY);const k=o.value=A.proxy.$i18n.__composer;e==="global"?(g.value=k.locale.value,s.value=k.fallbackLocale.value,a.value=k.messages.value,I.value=k.datetimeFormats.value,l.value=k.numberFormats.value):n&&S(k)}),D}const Su=["locale","fallbackLocale","availableLocales"],Os=["t","rt","d","n","tm","te"];function bu(A,e){const t=Object.create(null);return Su.forEach(n=>{const o=Object.getOwnPropertyDescriptor(e,n);if(!o)throw Ce(ge.UNEXPECTED_ERROR);const r=Be(o.value)?{get(){return o.value.value},set(g){o.value.value=g}}:{get(){return o.get&&o.get()}};Object.defineProperty(t,n,r)}),A.config.globalProperties.$i18n=t,Os.forEach(n=>{const o=Object.getOwnPropertyDescriptor(e,n);if(!o||!o.value)throw Ce(ge.UNEXPECTED_ERROR);Object.defineProperty(A.config.globalProperties,`$${n}`,o)}),()=>{delete A.config.globalProperties.$i18n,Os.forEach(n=>{delete A.config.globalProperties[`$${n}`]})}}ou();__INTLIFY_JIT_COMPILATION__?ws($E):ws(zE);KE(yE);PE(yC);if(__INTLIFY_PROD_DEVTOOLS__){const A=dt();A.__INTLIFY__=!0,NE(A.__INTLIFY_DEVTOOLS_GLOBAL_HOOK__)}const Tt=uA({isOnline:!1,error:"",lastCheck:null}),se=uA({chip:null,board:null,firmware:null,flash:null,assetsPartition:null,network:null,screen:null}),ai=uA(""),On=uA(!1),wi=uA(null),Ru=A=>new URLSearchParams(window.location.search).get(A),Vn=async(A,e={})=>{if(!ai.value)throw new Error("Authentication token not found");const t=await fetch("/api/messaging/device/tools/call",{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${ai.value}`},body:JSON.stringify({name:A,arguments:e})});if(t.ok)return await t.json();{const i=await t.text();console.error(`MCP tool ${A} failed:`,t.status,i);let n=`Failed to call ${A}`;try{const o=JSON.parse(i);o.message&&(n=o.message)}catch{n=`${n}: HTTP ${t.status}`}throw new Error(n)}},Nu=async()=>{var A,e,t,i;try{const[n,o,r]=await Promise.allSettled([Vn("self.get_system_info"),Vn("self.get_device_status"),Vn("self.screen.get_info")]);if(n.status==="fulfilled"&&n.value){const g=n.value.data||n.value;if(se.value.chip={model:g.chip_model_name||"Unknown"},se.value.board={model:((A=g.board)==null?void 0:A.name)||"Unknown"},se.value.firmware={version:((e=g.application)==null?void 0:e.version)||"Unknown"},g.flash_size){const s=Math.round(g.flash_size/1024/1024);se.value.flash={size:`${s}MB`}}else se.value.flash={size:"Unknown"};if(g.partition_table){const s=g.partition_table.find(a=>a.label==="assets");s?se.value.assetsPartition={size:s.size,sizeFormatted:`${Math.round(s.size/1024/1024)}MB`}:se.value.assetsPartition=null}else se.value.assetsPartition=null}else console.warn("系统信息获取失败:",n.reason||n.value),se.value.chip={model:"Unknown"},se.value.board={model:"Unknown"},se.value.firmware={version:"Unknown"},se.value.flash={size:"Unknown"},se.value.assetsPartition=null;if(o.status==="fulfilled"&&o.value){const g=o.value.data||o.value;se.value.network={type:((t=g.network)==null?void 0:t.type)||"unknown",signal:((i=g.network)==null?void 0:i.signal)||"Unknown"}}else console.warn("设备状态获取失败:",o.reason||o.value),se.value.network={type:"unknown",signal:"Unknown"};if(r.status==="fulfilled"&&r.value){const g=r.value.data||r.value;se.value.screen={resolution:`${g.width||0}x${g.height||0}`}}else console.warn("屏幕信息获取失败:",r.reason||r.value),se.value.screen={resolution:"Unknown"}}catch(n){console.error("获取设备信息时发生错误:",n)}},No=async()=>{if(!(On.value||!ai.value)){On.value=!0;try{const A=await fetch("/api/messaging/device/tools/list",{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${ai.value}`}});if(A.ok)Tt.value.isOnline=!0,Tt.value.error="",Tt.value.lastCheck=new Date,await Nu();else throw new Error(`HTTP ${A.status}: ${A.statusText}`)}catch{Tt.value.isOnline=!1,Tt.value.error="",Tt.value.lastCheck=new Date,wi.value&&clearTimeout(wi.value),wi.value=setTimeout(No,3e4)}finally{On.value=!1}}},Gu=(A,e)=>{if(!A)return e("device.signal.unknown");switch(A.toLowerCase()){case"strong":return e("device.signal.strong");case"medium":return e("device.signal.medium");case"weak":return e("device.signal.weak");case"none":return e("device.signal.none");default:return A}},Lu=()=>{ai.value=Ru("token"),ai.value&&No()},Uu=()=>{wi.value&&(clearTimeout(wi.value),wi.value=null)},Mu=async()=>{await No()};function Go(){const A=fA(()=>!!ai.value),e=fA(()=>Tt.value.isOnline);return{deviceStatus:Tt,deviceInfo:se,isChecking:On,hasToken:A,isDeviceOnline:e,initializeDeviceStatus:Lu,cleanupDeviceStatus:Uu,refreshDeviceStatus:Mu,checkDeviceStatus:No,callMcpTool:Vn,getSignalDisplayText:Gu}}const Vs={__name:"WifiIcon",props:{size:{type:String,default:"w-4 h-4"},color:{type:String,default:"text-blue-500"}},setup(A){const e=A,t=fA(()=>`${e.size} ${e.color}`);return(i,n)=>(H(),_("svg",{class:vA(t.value),fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[...n[0]||(n[0]=[B("path",{d:"M3 9c4.97-4.97 13.03-4.97 18 0","stroke-width":"2","stroke-linecap":"round"},null,-1),B("path",{d:"M6 12c3.31-3.31 8.69-3.31 12 0","stroke-width":"2","stroke-linecap":"round"},null,-1),B("path",{d:"M9 15c1.66-1.66 4.34-1.66 6 0","stroke-width":"2","stroke-linecap":"round"},null,-1),B("circle",{cx:"12",cy:"18",r:"1.5",fill:"currentColor"},null,-1)])],2))}},Ws={__name:"Signal4GIcon",props:{size:{type:String,default:"w-4 h-4"},color:{type:String,default:"text-green-500"}},setup(A){const e=A,t=fA(()=>`${e.size} ${e.color}`);return(i,n)=>(H(),_("svg",{class:vA(t.value),fill:"currentColor",viewBox:"0 0 24 24"},[...n[0]||(n[0]=[ko('<rect x="2" y="16" width="3" height="6" rx="0.5"></rect><rect x="7" y="12" width="3" height="10" rx="0.5" opacity="0.8"></rect><rect x="12" y="8" width="3" height="14" rx="0.5" opacity="0.6"></rect><rect x="17" y="4" width="3" height="18" rx="0.5" opacity="0.4"></rect><text x="21" y="8" font-size="6" font-weight="bold" fill="currentColor">4G</text>',5)])],2))}},qs={__name:"ChipIcon",props:{size:{type:String,default:"w-4 h-4"},color:{type:String,default:"text-gray-400"}},setup(A){const e=A,t=fA(()=>`${e.size} ${e.color}`);return(i,n)=>(H(),_("svg",{class:vA(t.value),fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[...n[0]||(n[0]=[ko('<rect x="7" y="7" width="10" height="10" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"></rect><rect x="9" y="9" width="6" height="6" stroke-width="1.5" fill="currentColor" opacity="0.1"></rect><line x1="7" y1="9" x2="4" y2="9" stroke-width="1.5" stroke-linecap="round"></line><line x1="7" y1="12" x2="4" y2="12" stroke-width="1.5" stroke-linecap="round"></line><line x1="7" y1="15" x2="4" y2="15" stroke-width="1.5" stroke-linecap="round"></line><line x1="17" y1="9" x2="20" y2="9" stroke-width="1.5" stroke-linecap="round"></line><line x1="17" y1="12" x2="20" y2="12" stroke-width="1.5" stroke-linecap="round"></line><line x1="17" y1="15" x2="20" y2="15" stroke-width="1.5" stroke-linecap="round"></line><line x1="9" y1="7" x2="9" y2="4" stroke-width="1.5" stroke-linecap="round"></line><line x1="12" y1="7" x2="12" y2="4" stroke-width="1.5" stroke-linecap="round"></line><line x1="15" y1="7" x2="15" y2="4" stroke-width="1.5" stroke-linecap="round"></line><line x1="9" y1="17" x2="9" y2="20" stroke-width="1.5" stroke-linecap="round"></line><line x1="12" y1="17" x2="12" y2="20" stroke-width="1.5" stroke-linecap="round"></line><line x1="15" y1="17" x2="15" y2="20" stroke-width="1.5" stroke-linecap="round"></line>',14)])],2))}},js={__name:"FlashIcon",props:{size:{type:String,default:"w-4 h-4"},color:{type:String,default:"text-gray-400"}},setup(A){const e=A,t=fA(()=>`${e.size} ${e.color}`);return(i,n)=>(H(),_("svg",{class:vA(t.value),fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[...n[0]||(n[0]=[ko('<rect x="6" y="5" width="12" height="14" rx="1" stroke-width="2"></rect><line x1="6" y1="8" x2="4" y2="8" stroke-width="1.5"></line><line x1="6" y1="11" x2="4" y2="11" stroke-width="1.5"></line><line x1="6" y1="14" x2="4" y2="14" stroke-width="1.5"></line><line x1="6" y1="17" x2="4" y2="17" stroke-width="1.5"></line><line x1="18" y1="8" x2="20" y2="8" stroke-width="1.5"></line><line x1="18" y1="11" x2="20" y2="11" stroke-width="1.5"></line><line x1="18" y1="14" x2="20" y2="14" stroke-width="1.5"></line><line x1="18" y1="17" x2="20" y2="17" stroke-width="1.5"></line><path d="M13 7l-3 5h2l-1 4 3-5h-2l1-4z" fill="currentColor" opacity="0.5"></path>',10)])],2))}},Zs={__name:"BoardIcon",props:{size:{type:String,default:"w-4 h-4"},color:{type:String,default:"text-gray-400"}},setup(A){const e=A,t=fA(()=>`${e.size} ${e.color}`);return(i,n)=>(H(),_("svg",{class:vA(t.value),fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[...n[0]||(n[0]=[ko('<rect x="4" y="4" width="16" height="16" rx="1" stroke-width="2"></rect><circle cx="6.5" cy="6.5" r="1" stroke-width="1.5"></circle><circle cx="17.5" cy="6.5" r="1" stroke-width="1.5"></circle><circle cx="6.5" cy="17.5" r="1" stroke-width="1.5"></circle><circle cx="17.5" cy="17.5" r="1" stroke-width="1.5"></circle><rect x="9" y="9" width="6" height="6" rx="0.5" stroke-width="1.5" fill="currentColor" opacity="0.1"></rect><line x1="9" y1="11" x2="15" y2="11" stroke-width="1" opacity="0.5"></line><line x1="9" y1="13" x2="15" y2="13" stroke-width="1" opacity="0.5"></line><line x1="9" y1="12" x2="6" y2="12" stroke-width="1" opacity="0.4"></line><line x1="15" y1="12" x2="18" y2="12" stroke-width="1" opacity="0.4"></line>',10)])],2))}},Xs={__name:"ScreenIcon",props:{size:{type:String,default:"w-4 h-4"},color:{type:String,default:"text-gray-400"}},setup(A){const e=A,t=fA(()=>`${e.size} ${e.color}`);return(i,n)=>(H(),_("svg",{class:vA(t.value),fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[...n[0]||(n[0]=[B("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M9.75 17L9 20l-1 1h8l-1-1-.75-3M3 13h18M5 17h14a2 2 0 002-2V5a2 2 0 00-2-2H5a2 2 0 00-2 2v10a2 2 0 002 2z"},null,-1)])],2))}},xu={class:"flex items-center space-x-2"},Ju={class:"flex items-center space-x-1"},Tu={key:0,class:"flex items-center space-x-1"},Hu={class:"text-xs text-gray-500"},Yu={key:0,class:"flex items-center space-x-4 text-sm text-gray-600"},_u={key:0,class:"flex items-center space-x-1"},Ku={key:1,class:"flex items-center space-x-1"},Pu={key:2,class:"flex items-center space-x-1"},Ou={key:3,class:"flex items-center space-x-1"},Vu={key:1,class:"lg:hidden flex flex-col bg-white rounded-lg border border-gray-200 shadow-sm overflow-hidden"},Wu={class:"flex items-center justify-between px-4 py-3 bg-gray-50 border-b border-gray-200"},qu={class:"flex items-center space-x-2"},ju={key:0,class:"flex items-center space-x-1"},Zu={class:"text-xs font-medium text-gray-600"},Xu={key:0,class:"px-4 py-3"},zu={class:"grid grid-cols-1 gap-2.5"},$u={class:"flex justify-between items-center py-1.5 border-b border-gray-100"},Ah={key:0,class:"flex items-center space-x-2 flex-1"},eh={class:"min-w-0 flex-1"},th={class:"text-xs text-gray-500 leading-tight"},ih={class:"text-sm text-gray-800 font-medium truncate"},nh={key:1,class:"flex items-center space-x-2 flex-1 ml-3"},oh={class:"min-w-0 flex-1"},rh={class:"text-xs text-gray-500 leading-tight"},gh={class:"text-sm text-gray-800 font-medium truncate"},sh={class:"flex justify-between items-center py-1.5"},ah={key:0,class:"flex items-center space-x-2 flex-1"},Ih={class:"min-w-0 flex-1"},Ch={class:"text-xs text-gray-500 leading-tight"},lh={class:"text-sm text-gray-800 font-medium"},Bh={key:1,class:"flex items-center space-x-2 flex-1 ml-3"},Qh={class:"min-w-0 flex-1"},ch={class:"text-xs text-gray-500 leading-tight"},Eh={class:"text-sm text-gray-800 font-medium"},uh={__name:"DeviceStatus",setup(A){const{t:e}=Fe(),{deviceStatus:t,deviceInfo:i,hasToken:n,initializeDeviceStatus:o,cleanupDeviceStatus:r,getSignalDisplayText:g}=Go(),s=fA(()=>n.value);return St(()=>{o()}),li(()=>{r()}),(a,I)=>(H(),_(ZA,null,[s.value?(H(),_("div",{key:0,class:vA(["hidden lg:flex items-center space-x-4",cA(t).isOnline?"":"opacity-60"])},[B("div",xu,[B("div",Ju,[B("div",{class:vA(["w-2 h-2 rounded-full",cA(t).isOnline?"bg-green-500":"bg-gray-400"])},null,2),B("span",{class:vA(["text-sm font-medium",cA(t).isOnline?"text-gray-700":"text-gray-500"])},v(cA(t).isOnline?a.$t("device.online"):a.$t("device.offline")),3)]),cA(t).isOnline&&cA(i).network?(H(),_("div",Tu,[cA(i).network.type==="wifi"?(H(),we(cA(Vs),{key:0,color:"text-blue-500"})):cA(i).network.type==="4g"?(H(),we(cA(Ws),{key:1})):aA("",!0),B("span",Hu,v(cA(g)(cA(i).network.signal,cA(e))),1)])):aA("",!0)]),cA(t).isOnline?(H(),_("div",Yu,[cA(i).chip?(H(),_("div",_u,[YA(cA(qs)),B("span",null,v(cA(i).chip.model),1)])):aA("",!0),cA(i).flash?(H(),_("div",Ku,[YA(cA(js)),B("span",null,v(cA(i).flash.size),1)])):aA("",!0),cA(i).board?(H(),_("div",Pu,[YA(cA(Zs)),B("span",null,v(cA(i).board.model),1)])):aA("",!0),cA(i).screen?(H(),_("div",Ou,[YA(cA(Xs)),B("span",null,v(cA(i).screen.resolution),1)])):aA("",!0)])):aA("",!0)],2)):aA("",!0),s.value?(H(),_("div",Vu,[B("div",Wu,[B("div",qu,[B("div",{class:vA(["w-2.5 h-2.5 rounded-full",cA(t).isOnline?"bg-green-500":"bg-red-400"])},null,2),B("span",{class:vA(["text-sm font-medium",cA(t).isOnline?"text-gray-800":"text-gray-600"])},v(cA(t).isOnline?a.$t("device.online"):a.$t("device.offline")),3)]),cA(t).isOnline&&cA(i).network?(H(),_("div",ju,[cA(i).network.type==="wifi"?(H(),we(cA(Vs),{key:0,color:"text-blue-500"})):cA(i).network.type==="4g"?(H(),we(cA(Ws),{key:1})):aA("",!0),B("span",Zu,v(cA(g)(cA(i).network.signal,cA(e))),1)])):aA("",!0)]),cA(t).isOnline?(H(),_("div",Xu,[B("div",zu,[B("div",$u,[cA(i).chip?(H(),_("div",Ah,[YA(cA(qs),{class:"flex-shrink-0"}),B("div",eh,[B("div",th,v(a.$t("device.chip")),1),B("div",ih,v(cA(i).chip.model),1)])])):aA("",!0),cA(i).board?(H(),_("div",nh,[YA(cA(Zs),{class:"flex-shrink-0"}),B("div",oh,[B("div",rh,v(a.$t("device.board")),1),B("div",gh,v(cA(i).board.model),1)])])):aA("",!0)]),B("div",sh,[cA(i).flash?(H(),_("div",ah,[YA(cA(js),{class:"flex-shrink-0"}),B("div",Ih,[B("div",Ch,v(a.$t("device.flash")),1),B("div",lh,v(cA(i).flash.size),1)])])):aA("",!0),cA(i).screen?(H(),_("div",Bh,[YA(cA(Xs),{class:"flex-shrink-0"}),B("div",Qh,[B("div",ch,v(a.$t("device.screen")),1),B("div",Eh,v(cA(i).screen.resolution),1)])])):aA("",!0)])])])):aA("",!0)])):aA("",!0)],64))}},hh={title:"Xiaozhi AI Customization"},fh={cancel:"Cancel",confirm:"Confirm",close:"Close",start:"Start",download:"Download",generate:"Generate",reset:"Reset",yes:"Yes",no:"No",loading:"Loading...",error:"Error",success:"Success",warning:"Warning",info:"Information",next:"Next",previous:"Previous",finish:"Finish",retry:"Retry",ok:"OK",other:"Other"},dh={title:"Xiaozhi AI Customization"},ph={title:"Saved Configuration Detected",message:"Configuration has been automatically restored. You can continue from where you left off or start over.",restart:"Start Over"},mh={chip:"Chip Configuration",theme:"Theme Design",generate:"Preview & Generate"},yh={title:"Generate assets.bin",confirmConfig:"Please confirm your configuration",chipModel:"Chip Model:",resolution:"Resolution:",wakeword:"Wake Word:",font:"Font:",emoji:"Emoji Package:",fileList:"Included Files List",estimated:"Estimated",compressed:"Before compression",generating:"Generating assets.bin...",progress:"{progress}% Complete",completed:"Your assets.bin file is ready",filename:"Filename: assets.bin",fileSize:"File Size: {size}",generationTime:"Generation Time: {time}",downloadAssets:"Download assets.bin",flashToDevice:"Flash to Device Online",flashing:"Flashing to device...",flashingCancel:"Cancel Flash",flashingError:"Flashing Error",flashingInProgress:"Flashing in progress, please do not close the window",customFont:"Custom Font",customEmoji:"Custom Emoji Package",notConfigured:"Not Configured",wakewordNames:{wn9s_hilexin:"Hi, Espressif",wn9s_hiesp:"Hi, ESP",wn9s_nihaoxiaozhi:"Hello Xiaozhi",wn9_nihaoxiaozhi_tts:"Hello Xiaozhi",wn9_alexa:"Alexa"}},wh={init:"Initialize Generator",font:"Process Font Files",wakeword:"Package Wake Word Model",emoji:"Process Emoji Images",background:"Process Background Images",index:"Generate Index File",spiffs:"Build SPIFFS Mapping",package:"Complete Packaging"},Dh={title:"Wake Word Configuration",description:"Select a preset wake word model or customize it using a command recognition model.",supportWakeNet9:"Your chip supports WakeNet9 models.",supportWakeNet9s:"Your chip supports WakeNet9s models.",notSupported:"Your chip does not support wake word functionality.",notice:"Note:",unsupportedMessage:"{chipModel} chip does not support wake word functionality. If you need to use wake words, please select ESP32-S3, ESP32-P4, or ESP32-C3/C5/C6 chips.",noWakeword:"No Wake Word",presetWakeword:"Preset Wake Word",customWakeword:"Custom Wake Word",selectWakeword:"Select Wake Word",placeholder:"Select wake word...",customSettings:"Custom Wake Word Settings",wakewordName:"Wake Word Name",wakewordNamePlaceholder:"e.g., Xiaozhi / Potato",wakewordCommand:"Wake Command",wakewordCommandPlaceholderCN:"Pinyin separated by spaces, e.g., ni hao xiao zhi",wakewordCommandPlaceholderEN:"English words, no punctuation, e.g., HELLO POTATO",threshold:"Sensitivity Threshold (0-100)",thresholdDesc:"Lower is more sensitive, default 20",duration:"Recognition Duration",durationDesc:"Maximum duration for command recognition",selectModel:"Select Recognition Model",mn6cn:"MultiNet6 (Chinese)",mn6en:"MultiNet6 (English)",mn7cn:"MultiNet7 (Chinese)",mn7en:"MultiNet7 (English)",errors:{nameRequired:"Please enter wake word name",commandRequired:"Please enter wake command",noPunctuation:"Command cannot contain punctuation",durationRange:"Duration must be between 500-10000ms"},tips:{tipLabel:"Tip:",optional:"Wake words are optional. If disabled, the device cannot be voice-activated.",wakeNet9sOnly:"C3/C5/C6 chips only support WakeNet9s lightweight models.",wakeNet9Full:"S3/P4 chips support complete WakeNet9 models with more choices.",customSupport:"Custom wake words use MultiNet models, currently only supported on ESP32-S3."}},kh={resetFailed:"Reset failed, please refresh the page and try again",generationFailed:"Generation failed: {error}",noFileToDownload:"No downloadable file available",deviceOffline:"Device is offline and cannot be flashed",fileTooLarge:"Flash failed: File size {fileSize}MB exceeds assets partition size {partitionSize}MB. Please reduce configuration content or use a device with larger capacity.",flashCancelConfirm:"Are you sure you want to cancel flashing?",oldDataCleared:`Old version emoji data structure has been detected and cleared.
|
||
|
||
The new version uses file deduplication technology to save storage space.
|
||
|
||
Please re-upload custom emoji images.`,incompatibleEmojiData:"Incompatible emoji data detected, please reconfigure"},vh={authTokenMissing:"Authentication token not found",checkingDeviceStatus:"Checking device status...",deviceOfflineOrUnresponsive:"Device offline or unresponsive: {error}",unableToGetDeviceStatus:"Unable to get device status",initializingTransferService:"Initializing transfer service...",initializeTransferFailed:"Failed to initialize transfer service: {error}",settingDeviceDownloadUrl:"Setting device download URL...",setDownloadUrlFailed:"Failed to set download URL: {error}",rebootingDevice:"Rebooting device...",waitingForDeviceReboot:"Waiting for device to reboot...",deviceRebootTimeout:"Device reboot timeout (60 seconds)",startingFileTransfer:"Starting file transfer...",flashCompleted:"Flashing completed!",onlineFlashFailed:"Online flashing failed: {error}"},Fh={online:"Online",offline:"Offline",checking:"Checking...",flashing:"Flashing...",ready:"Ready",chip:"Chip",board:"Board",flash:"Flash",screen:"Screen",signal:{unknown:"Unknown",strong:"Strong",medium:"Medium",weak:"Weak",none:"No Signal"}},Sh={title:"Step 1: Chip Model and Screen Configuration",loadingFromDevice:"Loading hardware configuration from device...",loadedFromDevice:"Hardware configuration automatically loaded from device",manualConfig:"Please configure hardware parameters manually",loadingTitle:"Loading Device Configuration...",loadingDesc:"Reading chip model and screen resolution from device",autoLoadedTitle:"Device Configuration Auto-loaded",chipModel:"Chip Model",screenWidth:"Screen Width",screenHeight:"Screen Height",colorFormat:"Color Format:",manualEdit:"Manual Configuration",collapseManual:"Collapse Manual Configuration",manualConfigTitle:"Manual Hardware Configuration",next:"Next",selectChip:"Select Chip",chipRequired:"Chip Model",widthRequired:"Screen Width",heightRequired:"Screen Height",loadingError:"Loading configuration error",deviceOffline:"Device not connected or offline",chipModelError:"Unable to get chip model, please enter manually",resolutionError:"Unable to get screen resolution, please enter manually",timeoutError:"Configuration loading timeout, please enter manually",manualConfigDesc:"Unable to auto-read device configuration",manualConfigHint:"Device not connected or offline, please manually input hardware configuration",manualConfigRequired:"Please manually input hardware configuration",resolutionFormatError:"Screen resolution format error"},bh={title:"Step 2: Theme Design",description:"Configure wake word, font, emoji and background to customize your Xiaozhi AI theme.",previous:"Previous",next:"Next",tabs:{wakeword:"Wake Word Config",font:"Font Config",emoji:"Emoji Collection",background:"Chat Background"}},Rh={title:"Step 3: Preview",description:"Preview the effect of your custom configuration on the actual device.",devicePreview:"Device Preview (1:1 Pixel Ratio)",previewSettings:"Preview Settings",previewText:"Preview Text",defaultPreviewText:"Hi, I'm your friend Xiaozhi!",currentEmotion:"Current Emotion",themeMode:"Theme Mode",lightMode:"Light",darkMode:"Dark",configSummary:"Configuration Summary",wakeword:"Wake Word:",font:"Font:",loading:"Loading...",emotion:"Emotion:",skin:"Skin:",previous:"Previous",generate:"Generate assets.bin",emotions:{neutral:"Neutral",happy:"Happy",laughing:"Laughing",funny:"Funny",sad:"Sad",angry:"Angry",crying:"Crying",loving:"Loving",embarrassed:"Embarrassed",surprised:"Surprised",shocked:"Shocked",thinking:"Thinking",winking:"Winking",cool:"Cool",relaxed:"Relaxed",delicious:"Delicious",kissy:"Kiss",confident:"Confident",sleepy:"Sleepy",silly:"Silly",confused:"Confused"},noEmotionConfigured:"No emotion configured",fontLoading:"Font loading...",configureEmojiFirst:"Please configure emoji package in theme design first",customFont:"Custom Font {size}px",customEmoji:"Custom Emoji {count} images",notConfigured:"Not configured",skinLight:"Light {type}",skinDark:"Dark {type}",hideSubtitle:"Hide Subtitle:",image:"Image",color:"Color"},Nh={title:"Chat Background Configuration",description:"Configure chat backgrounds for light and dark modes, supporting solid colors or custom images.",lightMode:"Light Mode Background",darkMode:"Dark Mode Background",solidBackground:"Solid Background",imageBackground:"Image Background",backgroundColor:"Background Color:",textColor:"Text Color:",backgroundImage:"Background Image:",clickOrDragToUpload:"Click or drag to upload background image",removeImage:"Remove Image",backgroundPreview:"Background Preview",lightModePreview:"Light Mode",darkModePreview:"Dark Mode",chatArea:"Chat Content Area",quickConfig:"Quick Configuration",defaultColors:"Default Colors",stoneTexture:"Stone Texture",sunnyColors:"Sunny Colors",skyBlue:"Sky Blue",romanticPink:"Romantic Pink",selectValidImage:"Please select a valid image file"},Gh={title:"Emoji Collection Configuration",description:"Choose preset emoji package or custom emoji images. Each emoji package contains 21 different emotion expressions.",noEmojiPack:"No Emoji Pack",noEmojiPackDescription:"Don't configure emoji pack, only font and background resources will be included in the package.",presetEmojiPack:"Preset Emoji Pack",customEmojiPack:"Custom Emoji Pack",selectPresetEmojiPack:"Select Preset Emoji Pack",twemoji64:"Twemoji 64×64",twemoji32:"Twemoji 32×32",twemojiDescription:"High-quality emoji set from Twitter, perfect for clear display",twitterEmojiName:"Twemoji {size}x{size}",twitterEmojiDescription:"Twitter emoji pack, {size}×{size} pixels",size:"Size",preview:"Preview",select:"Select",customEmojiTitle:"Custom Emoji Pack",customEmojiDescription:"Upload your own emoji images. Each emotion needs one image.",uploadInstructions:"Click or drag to upload emoji images (PNG/JPG/WEBP)",supportedFormats:"Supported formats: PNG, JPG, WEBP. Recommended size: 64×64 pixels",emotionMapping:"Emotion Mapping",uploadAllEmotions:"Please upload emoji images for all emotions",maxImageWidth:"Max Image Width (px)",maxImageHeight:"Max Image Height (px)",clickToUpload:"Click to upload",orDragDrop:"or drag and drop",clickToUploadOrDrag:"Click to upload or drag here",remove:"Remove",replace:"Replace",selectValidEmojiImage:"Please select a valid emoji image file",selectValidFormat:"Please select a valid PNG or GIF format image",maxFileSize:"File size cannot exceed 1MB",invalidFormat:"Unsupported image format. Please use PNG, JPG, or WEBP.",required:"Required",uploadEmojiImages:"Upload Emoji Images (GIF requires PSRAM)",customEmojiPackConfig:"Custom Emoji Pack Configuration",neutralRequiredNotice:"* Must upload neutral default emotion, others are optional. If not uploaded, default emotion will be used instead.",sharedFileMessage:"Emotion {emotionKey} uses the same image file as {existingEmotions} (shared storage)",fileDeleted:"File {fileHash} has been deleted (no other emotion references)",fileRetained:"File {fileHash} is still used by other emotions, retained",imageLoadFailed:"Failed to load emoji image",emotions:{neutral:"Neutral",happy:"Happy",laughing:"Laughing",funny:"Funny",sad:"Sad",angry:"Angry",crying:"Crying",loving:"Loving",embarrassed:"Embarrassed",surprised:"Surprised",shocked:"Shocked",thinking:"Thinking",winking:"Winking",cool:"Cool",relaxed:"Relaxed",delicious:"Delicious",kissy:"Kiss",confident:"Confident",sleepy:"Sleepy",silly:"Silly",confused:"Confused"}},Lh={title:"Font Configuration",description:"Choose preset fonts or upload custom font files.",noFonts:"No Fonts",noFontsDescription:"Do not use font configuration, the device will use the default font",presetFonts:"Preset Fonts",customFonts:"Custom Fonts",selectPresetFont:"Select Preset Font",fontSize:"Font Size:",bitDepth:"Bit Depth:",charset:"Character Set:",fileSize:"File Size:",customFontConfig:"Custom Font Configuration",fontFile:"Font File",clickSelectFontFile:"Click to select font file",orDragFileHere:"or drag file here",supportedFormats:"Supports TTF, WOFF, WOFF2 formats",removeFile:"Remove File",fontSizePx:"Font Size (px)",range:"Range:",bitDepthBpp:"Bit Depth (BPP)",monochrome:"1 bpp (Monochrome)",fourColors:"2 bpp (4 colors)",sixteenColors:"4 bpp (16 colors)",characterSet:"Character Set",deepseekR1:"DeepSeek R1 (7405 characters)",gb2312:"GB2312 (7445 characters)",qwen18409:"Qwen (18409 characters)",latin1:"Latin1 (190 characters)",fullCharset:"Full Character Set (All characters in font file)",hideSubtitle:"Hide Subtitle",hideSubtitleDescription:"Do not show real-time text subtitles during conversation",selectValidFontFile:"Please select a valid font file (TTF, WOFF, WOFF2)",presetFontNames:{font_puhui_deepseek_14_1:"Alibaba PuHuiTi 14px",font_puhui_deepseek_16_4:"Alibaba PuHuiTi 16px",font_puhui_deepseek_20_4:"Alibaba PuHuiTi 20px",font_puhui_deepseek_30_4:"Alibaba PuHuiTi 30px",font_noto_qwen_14_1:"Noto Sans 14px",font_noto_qwen_16_4:"Noto Sans 16px",font_noto_qwen_20_4:"Noto Sans 20px",font_noto_qwen_30_4:"Noto Sans 30px"},charsetDeepseek:"DeepSeek 7405",charsetQwen:"Qwen 18409"},Uh={app:hh,common:fh,header:dh,configNotice:ph,steps:mh,generateModal:yh,progressSteps:wh,wakewordConfig:Dh,errors:kh,flashProgress:vh,device:Fh,chipConfig:Sh,themeDesign:bh,generateSummary:Rh,backgroundConfig:Nh,emojiConfig:Gh,fontConfig:Lh},Mh={title:"小智 AI 自定义"},xh={cancel:"取消",confirm:"确认",close:"关闭",start:"开始",download:"下载",generate:"生成",reset:"重置",yes:"是",no:"否",loading:"加载中...",error:"错误",success:"成功",warning:"警告",info:"信息",next:"下一步",previous:"上一步",finish:"完成",retry:"重试",ok:"确定",other:"其他"},Jh={title:"小智 AI 自定义"},Th={title:"检测到已保存的配置",message:"配置已自动恢复,您可以继续之前的进度或重新开始。",restart:"重新开始"},Hh={chip:"芯片配置",theme:"主题设计",generate:"效果预览"},Yh={title:"生成 assets.bin",confirmConfig:"请确认您的配置",chipModel:"芯片型号:",resolution:"分辨率:",wakeword:"唤醒词:",font:"字体:",emoji:"表情包:",fileList:"包含的文件列表",estimated:"预估",compressed:"压缩前",generating:"正在生成 assets.bin...",progress:"{progress}% 完成",completed:"您的 assets.bin 文件已准备就绪",filename:"文件名: assets.bin",fileSize:"文件大小: {size}",generationTime:"生成时间: {time}",downloadAssets:"下载 assets.bin",flashToDevice:"在线烧录到设备",flashing:"正在烧录到设备...",flashingCancel:"取消烧录",flashingError:"烧录错误",flashingInProgress:"烧录中,请勿关闭窗口",customFont:"自定义字体",customEmoji:"自定义表情包",notConfigured:"未配置",wakewordNames:{wn9s_hilexin:"Hi,乐鑫",wn9s_hiesp:"Hi,ESP",wn9s_nihaoxiaozhi:"你好小智",wn9_nihaoxiaozhi_tts:"你好小智",wn9_alexa:"Alexa"}},_h={init:"初始化生成器",font:"处理字体文件",wakeword:"打包唤醒词模型",emoji:"处理表情图片",background:"处理背景图片",index:"生成索引文件",spiffs:"构建SPIFFS映射",package:"完成打包"},Kh={resetFailed:"重置失败,请刷新页面重试",generationFailed:"生成失败: {error}",noFileToDownload:"没有可下载的文件",deviceOffline:"设备离线,无法进行烧录",fileTooLarge:"烧录失败:文件大小 {fileSize}MB 超过 assets 分区大小 {partitionSize}MB,请减少配置内容或使用更大容量的设备。",flashCancelConfirm:"确定要取消烧录吗?",oldDataCleared:`检测到旧版本的表情数据结构已被清除。
|
||
|
||
新版本使用文件去重技术,可以节省存储空间。
|
||
|
||
请重新上传自定义表情图片。`,incompatibleEmojiData:"检测到不兼容的表情数据,请重新配置"},Ph={authTokenMissing:"未找到认证令牌",checkingDeviceStatus:"检查设备状态...",deviceOfflineOrUnresponsive:"设备离线或无响应: {error}",unableToGetDeviceStatus:"无法获取设备状态",initializingTransferService:"初始化传输服务...",initializeTransferFailed:"初始化传输服务失败: {error}",settingDeviceDownloadUrl:"设置设备下载URL...",setDownloadUrlFailed:"设置下载URL失败: {error}",rebootingDevice:"重启设备...",waitingForDeviceReboot:"等待设备重启...",deviceRebootTimeout:"等待设备重启超时(60秒)",startingFileTransfer:"开始传输文件...",flashCompleted:"烧录完成!",onlineFlashFailed:"在线烧录失败: {error}"},Oh={online:"在线",offline:"离线",checking:"检查中...",flashing:"烧录中...",ready:"就绪",chip:"芯片",board:"开发板",flash:"Flash",screen:"屏幕",signal:{unknown:"未知",strong:"强",medium:"中等",weak:"弱",none:"无信号"}},Vh={title:"步骤 1: 芯片型号和屏幕配置",loadingFromDevice:"正在从设备读取硬件配置...",loadedFromDevice:"已从设备自动读取硬件配置",manualConfig:"请手动配置硬件参数",loadingTitle:"正在加载设备配置...",loadingDesc:"从设备读取芯片型号和屏幕分辨率",autoLoadedTitle:"设备配置已自动加载",chipModel:"芯片型号",screenWidth:"屏幕宽度",screenHeight:"屏幕高度",colorFormat:"颜色格式:",manualEdit:"手动修改配置",collapseManual:"收起手动配置",manualConfigTitle:"手动配置硬件参数",next:"下一步",selectChip:"请选择芯片",chipRequired:"芯片型号",widthRequired:"屏幕宽度",heightRequired:"屏幕高度",loadingError:"加载配置时发生错误",deviceOffline:"设备未连接或离线",chipModelError:"无法获取芯片型号,请手动输入",resolutionError:"无法获取屏幕分辨率,请手动输入",timeoutError:"加载设备配置超时,请手动输入",manualConfigDesc:"无法自动读取设备配置",manualConfigHint:"设备未连接或离线,请手动输入硬件配置",manualConfigRequired:"请手动输入硬件配置",resolutionFormatError:"屏幕分辨率格式错误"},Wh={title:"步骤 2: 主题设计",description:"配置唤醒词、字体、表情和背景来自定义您的小智AI主题。",previous:"上一步",next:"下一步",tabs:{wakeword:"唤醒词配置",font:"字体配置",emoji:"表情集合",background:"聊天背景"}},qh={title:"步骤 3: 效果预览",description:"预览您的自定义配置在实际设备上的效果。",devicePreview:"设备预览 (1:1 像素比例)",previewSettings:"预览设置",previewText:"预览文字",defaultPreviewText:"你好,我是你的朋友小智!",currentEmotion:"当前表情",themeMode:"主题模式",lightMode:"浅色",darkMode:"深色",configSummary:"配置摘要",wakeword:"唤醒词:",font:"字体:",loading:"加载中...",emotion:"表情:",skin:"皮肤:",previous:"上一步",generate:"生成 assets.bin",emotions:{neutral:"默认",happy:"开心",laughing:"大笑",funny:"搞笑",sad:"伤心",angry:"生气",crying:"哭泣",loving:"喜爱",embarrassed:"尴尬",surprised:"惊讶",shocked:"震惊",thinking:"思考",winking:"眨眼",cool:"酷炫",relaxed:"放松",delicious:"美味",kissy:"飞吻",confident:"自信",sleepy:"困倦",silly:"调皮",confused:"困惑"},noEmotionConfigured:"未配置表情",fontLoading:"字体加载中...",configureEmojiFirst:"请先在主题设计中配置表情包",customFont:"自定义字体 {size}px",customEmoji:"自定义表情 {count}张",notConfigured:"未配置",skinLight:"浅色{type}",skinDark:"深色{type}",hideSubtitle:"隐藏字幕:",image:"图片",color:"颜色"},jh={title:"聊天背景配置",description:"配置浅色模式和深色模式的聊天背景,支持纯色或自定义图片。",lightMode:"浅色模式背景",darkMode:"深色模式背景",solidBackground:"纯色背景",imageBackground:"图片背景",backgroundColor:"背景颜色:",textColor:"文字颜色:",backgroundImage:"背景图片:",clickOrDragToUpload:"点击或拖拽上传背景图片",removeImage:"移除图片",backgroundPreview:"背景预览",lightModePreview:"浅色模式",darkModePreview:"深色模式",chatArea:"聊天内容区域",quickConfig:"快捷配置",defaultColors:"默认配色",stoneTexture:"石墨质感",sunnyColors:"暖阳配色",skyBlue:"天空蓝调",romanticPink:"浪漫粉色",selectValidImage:"请选择有效的图片文件"},Zh={title:"表情集合配置",description:"选择预设表情包或自定义表情图片。每个表情包包含21种不同情绪的表情。",noEmojiPack:"无表情包",noEmojiPackDescription:"不配置表情包,打包时只包含字体和背景资源。",presetEmojiPack:"预设表情包",customEmojiPack:"自定义表情包",selectPresetEmojiPack:"选择预设表情包",twemoji64:"Twemoji 64×64",twemoji32:"Twemoji 32×32",twemojiDescription:"来自Twitter的高质量表情符号集,适合清晰显示",twitterEmojiName:"Twemoji {size}x{size}",twitterEmojiDescription:"Twitter表情包,{size}×{size}像素",size:"尺寸",preview:"预览",select:"选择",customEmojiTitle:"自定义表情包",customEmojiDescription:"上传您自己的表情图片。每种情绪需要一张图片。",uploadInstructions:"点击或拖拽上传表情图片 (PNG/JPG/WEBP)",supportedFormats:"支持格式: PNG, JPG, WEBP。推荐尺寸: 64×64像素",emotionMapping:"情绪映射",uploadAllEmotions:"请为所有情绪上传表情图片",maxImageWidth:"最大图片宽度 (px)",maxImageHeight:"最大图片高度 (px)",clickToUpload:"点击上传",orDragDrop:"或拖拽上传",clickToUploadOrDrag:"点击上传或拖拽到此处",remove:"移除",replace:"替换",selectValidEmojiImage:"请选择有效的表情图片文件",selectValidFormat:"请选择有效的PNG或GIF格式图片",maxFileSize:"文件大小不能超过1MB",invalidFormat:"不支持的图片格式。请使用PNG、JPG或WEBP。",required:"必需",uploadEmojiImages:"上传表情图片(GIF 需要 PSRAM)",customEmojiPackConfig:"自定义表情包配置",neutralRequiredNotice:"* 必须上传 neutral 默认表情,其他表情可选。如果不上传其他表情,将使用默认表情代替。",sharedFileMessage:"表情 {emotionKey} 使用了与 {existingEmotions} 相同的图片文件(共享存储)",fileDeleted:"文件 {fileHash} 已删除(无其他表情引用)",fileRetained:"文件 {fileHash} 仍被其他表情使用,保留文件",imageLoadFailed:"表情图片加载失败",emotions:{neutral:"默认",happy:"开心",laughing:"大笑",funny:"搞笑",sad:"伤心",angry:"生气",crying:"哭泣",loving:"喜爱",embarrassed:"尴尬",surprised:"惊讶",shocked:"震惊",thinking:"思考",winking:"眨眼",cool:"酷炫",relaxed:"放松",delicious:"美味",kissy:"飞吻",confident:"自信",sleepy:"困倦",silly:"调皮",confused:"困惑"}},Xh={title:"字体配置",description:"选择预设字体或上传自定义字体文件。",noFonts:"无字体",noFontsDescription:"不使用字体配置,设备将使用默认字体",presetFonts:"预设字体",customFonts:"自定义字体",selectPresetFont:"选择预设字体",fontSize:"字号:",bitDepth:"位深:",charset:"字符集:",fileSize:"文件大小:",customFontConfig:"自定义字体配置",fontFile:"字体文件",clickSelectFontFile:"点击选择字体文件",orDragFileHere:"或拖拽文件到此处",supportedFormats:"支持 TTF, WOFF, WOFF2 格式",removeFile:"移除文件",fontSizePx:"字号 (px)",range:"范围:",bitDepthBpp:"位深 (BPP)",monochrome:"1 bpp (单色)",fourColors:"2 bpp (4色)",sixteenColors:"4 bpp (16色)",characterSet:"字符集",deepseekR1:"DeepSeek R1 (7405字符)",gb2312:"GB2312 (7445字符)",qwen18409:"Qwen (18409字符)",latin1:"Latin1 (190字符)",fullCharset:"完整字符集 (字体文件的所有字符)",hideSubtitle:"隐藏字幕",hideSubtitleDescription:"对话时不显示实时文字字幕",selectValidFontFile:"请选择有效的字体文件 (TTF, WOFF, WOFF2)",presetFontNames:{font_puhui_deepseek_14_1:"阿里巴巴普惠体 14px",font_puhui_deepseek_16_4:"阿里巴巴普惠体 16px",font_puhui_deepseek_20_4:"阿里巴巴普惠体 20px",font_puhui_deepseek_30_4:"阿里巴巴普惠体 30px",font_noto_qwen_14_1:"思源黑体 14px",font_noto_qwen_16_4:"思源黑体 16px",font_noto_qwen_20_4:"思源黑体 20px",font_noto_qwen_30_4:"思源黑体 30px"},charsetDeepseek:"DeepSeek 7405",charsetQwen:"Qwen 18409"},zh={title:"唤醒词配置",description:"选择预设唤醒词模型或通过命令词模型自定义唤醒词。",supportWakeNet9:"您的芯片支持 WakeNet9 模型。",supportWakeNet9s:"您的芯片支持 WakeNet9s 模型。",notSupported:"您的芯片不支持唤醒词功能。",notice:"注意:",unsupportedMessage:"{chipModel} 芯片不支持唤醒词功能。如需使用唤醒词,请选择 ESP32-S3、ESP32-P4 或 ESP32-C3/C5/C6 芯片。",noWakeword:"关闭唤醒",presetWakeword:"预设唤醒词",customWakeword:"自定义唤醒词",selectWakeword:"选择唤醒词",placeholder:"选择唤醒词...",customSettings:"自定义唤醒词设置",wakewordName:"唤醒词名称",wakewordNamePlaceholder:"例如:小智 / Potato",wakewordCommand:"唤醒命令",wakewordCommandPlaceholderCN:"拼音空格隔开,例如:ni hao xiao zhi",wakewordCommandPlaceholderEN:"英文单词,不能包含标点,例如:HELLO POTATO",threshold:"灵敏度阈值 (0-100)",thresholdDesc:"越小越灵敏,默认 20",duration:"识别时长",durationDesc:"命令词最长持续时间",selectModel:"选择识别模型",mn6cn:"MultiNet6 (中文)",mn6en:"MultiNet6 (英文)",mn7cn:"MultiNet7 (中文)",mn7en:"MultiNet7 (英文)",errors:{nameRequired:"请输入唤醒词名称",commandRequired:"请输入唤醒命令",noPunctuation:"命令不能包含标点符号",durationRange:"时长需在 500-10000ms 之间"},tips:{tipLabel:"提示:",optional:"唤醒词是可选的,关闭后设备将无法通过语音唤醒。",wakeNet9sOnly:"C3/C5/C6 芯片仅支持 WakeNet9s 轻量级模型。",wakeNet9Full:"S3/P4 芯片支持完整的 WakeNet9 模型,选择更多。",customSupport:"自定义唤醒词使用 MultiNet 模型实现,目前仅支持 ESP32-S3 芯片。"}},$h={app:Mh,common:xh,header:Jh,configNotice:Th,steps:Hh,generateModal:Yh,progressSteps:_h,errors:Kh,flashProgress:Ph,device:Oh,chipConfig:Vh,themeDesign:Wh,generateSummary:qh,backgroundConfig:jh,emojiConfig:Zh,fontConfig:Xh,wakewordConfig:zh},Af={title:"小智 AI 自訂"},ef={cancel:"取消",confirm:"確認",close:"關閉",start:"開始",download:"下載",generate:"生成",reset:"重置",yes:"是",no:"否",loading:"載入中...",error:"錯誤",success:"成功",warning:"警告",info:"資訊",next:"下一步",previous:"上一步",finish:"完成",retry:"重試",ok:"確定",other:"其他"},tf={title:"小智 AI 自訂"},nf={title:"檢測到已儲存的配置",message:"配置已自動恢復,您可以繼續之前的進度或重新開始。",restart:"重新開始"},of={chip:"晶片配置",theme:"主題設計",generate:"效果預覽"},rf={title:"生成 assets.bin",confirmConfig:"請確認您的配置",chipModel:"晶片型號:",resolution:"解析度:",wakeword:"喚醒詞:",font:"字體:",emoji:"表情包:",fileList:"包含的檔案列表",estimated:"預估",compressed:"壓縮前",generating:"正在生成 assets.bin...",progress:"{progress}% 完成",completed:"您的 assets.bin 檔案已準備就緒",filename:"檔案名: assets.bin",fileSize:"檔案大小: {size}",generationTime:"生成時間: {time}",downloadAssets:"下載 assets.bin",flashToDevice:"線上燒錄到設備",flashing:"正在燒錄到設備...",flashingCancel:"取消燒錄",flashingError:"燒錄錯誤",flashingInProgress:"燒錄中,請勿關閉視窗",customFont:"自訂字體",customEmoji:"自訂表情套件",notConfigured:"未設定",wakewordNames:{wn9s_hilexin:"Hi,樂鑫",wn9s_hiesp:"Hi,ESP",wn9s_nihaoxiaozhi:"你好小智",wn9_nihaoxiaozhi_tts:"你好小智",wn9_alexa:"Alexa"}},gf={init:"初始化生成器",font:"處理字體檔案",wakeword:"打包喚醒詞模型",emoji:"處理表情圖片",background:"處理背景圖片",index:"生成索引檔案",spiffs:"建構SPIFFS映射",package:"完成打包"},sf={title:"喚醒詞配置",description:"選擇預設喚醒詞模型或透過命令詞模型自訂喚醒詞。",supportWakeNet9:"您的晶片支援 WakeNet9 模型。",supportWakeNet9s:"您的晶片支援 WakeNet9s 模型。",notSupported:"您的晶片不支援喚醒詞功能。",notice:"注意:",unsupportedMessage:"{chipModel} 晶片不支援喚醒詞功能。如需使用喚醒詞,請選擇 ESP32-S3、ESP32-P4 或 ESP32-C3/C5/C6 晶片。",noWakeword:"關閉喚醒",presetWakeword:"預設喚醒詞",customWakeword:"自訂喚醒詞",selectWakeword:"選擇喚醒詞",placeholder:"選擇喚醒詞...",customSettings:"自訂喚醒詞設定",wakewordName:"喚醒詞名稱",wakewordNamePlaceholder:"例如:小智 / Potato",wakewordCommand:"喚醒命令",wakewordCommandPlaceholderCN:"拼音空格隔開,例如:ni hao xiao zhi",wakewordCommandPlaceholderEN:"英文單詞,不能包含標點,例如:HELLO POTATO",threshold:"靈敏度閾值 (0-100)",thresholdDesc:"越小越靈敏,預設 20",duration:"識別時長",durationDesc:"命令詞最長持續時間",selectModel:"選擇識別模型",mn6cn:"MultiNet6 (中文)",mn6en:"MultiNet6 (英文)",mn7cn:"MultiNet7 (中文)",mn7en:"MultiNet7 (英文)",errors:{nameRequired:"請輸入喚醒詞名稱",commandRequired:"請輸入喚醒命令",noPunctuation:"命令不能包含標點符號",durationRange:"時長需在 500-10000ms 之間"},tips:{tipLabel:"提示:",optional:"喚醒詞是可選的,關閉後裝置將無法透過語音喚醒。",wakeNet9sOnly:"C3/C5/C6 晶片僅支援 WakeNet9s 輕量級模型。",wakeNet9Full:"S3/P4 晶片支援完整的 WakeNet9 模型,選擇更多。",customSupport:"自訂喚醒詞使用 MultiNet 模型實現,目前僅支援 ESP32-S3 晶片。"}},af={resetFailed:"重置失敗,請重新整理頁面重試",generationFailed:"生成失敗: {error}",noFileToDownload:"沒有可下載的檔案",deviceOffline:"設備離線,無法進行燒錄",fileTooLarge:"燒錄失敗:檔案大小 {fileSize}MB 超過 assets 分區大小 {partitionSize}MB,請減少配置內容或使用更大容量的設備。",flashCancelConfirm:"確定要取消燒錄嗎?",oldDataCleared:`檢測到舊版本的表情資料結構已被清除。
|
||
|
||
新版本使用檔案去重技術,可以節省儲存空間。
|
||
|
||
請重新上傳自訂表情圖片。`,incompatibleEmojiData:"檢測到不相容的表情資料,請重新配置"},If={authTokenMissing:"未找到認證令牌",checkingDeviceStatus:"檢查設備狀態...",deviceOfflineOrUnresponsive:"設備離線或無響應: {error}",unableToGetDeviceStatus:"無法獲取設備狀態",initializingTransferService:"初始化傳輸服務...",initializeTransferFailed:"初始化傳輸服務失敗: {error}",settingDeviceDownloadUrl:"設置設備下載URL...",setDownloadUrlFailed:"設置下載URL失敗: {error}",rebootingDevice:"重啟設備...",waitingForDeviceReboot:"等待設備重啟...",deviceRebootTimeout:"等待設備重啟超時(60秒)",startingFileTransfer:"開始檔案傳輸...",flashCompleted:"燒錄完成!",onlineFlashFailed:"線上燒錄失敗: {error}"},Cf={online:"線上",offline:"離線",checking:"檢查中...",flashing:"燒錄中...",ready:"就緒",chip:"晶片",board:"開發板",flash:"Flash",screen:"螢幕",signal:{unknown:"未知",strong:"強",medium:"中等",weak:"弱",none:"無訊號"}},lf={title:"步驟 1: 晶片型號和螢幕配置",loadingFromDevice:"正在從設備讀取硬體配置...",loadedFromDevice:"已從設備自動讀取硬體配置",manualConfig:"請手動配置硬體參數",loadingTitle:"正在載入設備配置...",loadingDesc:"從設備讀取晶片型號和螢幕解析度",autoLoadedTitle:"設備配置已自動載入",chipModel:"晶片型號",screenWidth:"螢幕寬度",screenHeight:"螢幕高度",colorFormat:"顏色格式:",manualEdit:"手動修改配置",collapseManual:"收起手動配置",manualConfigTitle:"手動配置硬體參數",next:"下一步",selectChip:"請選擇晶片",chipRequired:"晶片型號",widthRequired:"螢幕寬度",heightRequired:"螢幕高度",loadingError:"載入配置時發生錯誤",deviceOffline:"設備未連接或離線",chipModelError:"無法獲取晶片型號,請手動輸入",resolutionError:"無法獲取螢幕解析度,請手動輸入",timeoutError:"載入設備配置超時,請手動輸入",manualConfigDesc:"無法自動讀取設備配置",manualConfigHint:"設備未連接或離線,請手動輸入硬體配置",manualConfigRequired:"請手動輸入硬體配置",resolutionFormatError:"螢幕解析度格式錯誤"},Bf={title:"步驟 2: 主題設計",description:"配置喚醒詞、字體、表情和背景來自訂您的小智AI主題。",previous:"上一步",next:"下一步",tabs:{wakeword:"喚醒詞配置",font:"字體配置",emoji:"表情集合",background:"聊天背景"}},Qf={title:"步驟 3: 效果預覽",description:"預覽您的自訂配置在實際設備上的效果。",devicePreview:"設備預覽 (1:1 像素比例)",previewSettings:"預覽設定",previewText:"預覽文字",defaultPreviewText:"你好,我是你的朋友小智!",currentEmotion:"當前表情",themeMode:"主題模式",lightMode:"淺色",darkMode:"深色",configSummary:"配置摘要",wakeword:"喚醒詞:",font:"字體:",loading:"載入中...",emotion:"表情:",skin:"皮膚:",previous:"上一步",generate:"生成 assets.bin",emotions:{neutral:"預設",happy:"開心",laughing:"大笑",funny:"搞笑",sad:"傷心",angry:"生氣",crying:"哭泣",loving:"喜愛",embarrassed:"尷尬",surprised:"驚訝",shocked:"震驚",thinking:"思考",winking:"眨眼",cool:"酷炫",relaxed:"放鬆",delicious:"美味",kissy:"飛吻",confident:"自信",sleepy:"睏倦",silly:"調皮",confused:"困惑"},noEmotionConfigured:"未配置表情",fontLoading:"字體載入中...",configureEmojiFirst:"請先在主題設計中配置表情包",customFont:"自訂字體 {size}px",customEmoji:"自訂表情 {count}張",notConfigured:"未配置",skinLight:"淺色{type}",skinDark:"深色{type}",hideSubtitle:"隱藏字幕:",image:"圖片",color:"顏色"},cf={title:"聊天背景配置",description:"配置淺色模式和深色模式的聊天背景,支援純色或自訂圖片。",lightMode:"淺色模式背景",darkMode:"深色模式背景",solidBackground:"純色背景",imageBackground:"圖片背景",backgroundColor:"背景顏色:",textColor:"文字顏色:",backgroundImage:"背景圖片:",clickOrDragToUpload:"點擊或拖拽上傳背景圖片",removeImage:"移除圖片",backgroundPreview:"背景預覽",lightModePreview:"淺色模式",darkModePreview:"深色模式",chatArea:"聊天內容區域",quickConfig:"快捷配置",defaultColors:"預設配色",stoneTexture:"石墨質感",sunnyColors:"暖陽配色",skyBlue:"天空藍調",romanticPink:"浪漫粉色",selectValidImage:"請選擇有效的圖片檔案"},Ef={title:"表情集合配置",description:"選擇預設表情包或自定義表情圖片。每個表情包包含21種不同情緒的表情。",noEmojiPack:"無表情包",noEmojiPackDescription:"不配置表情包,打包時只包含字體和背景資源。",presetEmojiPack:"預設表情包",customEmojiPack:"自定義表情包",selectPresetEmojiPack:"選擇預設表情包",twemoji64:"Twemoji 64×64",twemoji32:"Twemoji 32×32",twemojiDescription:"來自Twitter的高品質表情符號集,適合清晰顯示",twitterEmojiName:"Twemoji {size}x{size}",twitterEmojiDescription:"Twitter表情包,{size}×{size}像素",size:"尺寸",preview:"預覽",select:"選擇",customEmojiTitle:"自定義表情包",customEmojiDescription:"上傳您自己的表情圖片。每種情緒需要一張圖片。",uploadInstructions:"點擊或拖拽上傳表情圖片 (PNG/JPG/WEBP)",supportedFormats:"支援格式: PNG, JPG, WEBP。推薦尺寸: 64×64像素",emotionMapping:"情緒映射",uploadAllEmotions:"請為所有情緒上傳表情圖片",maxImageWidth:"最大圖片寬度 (px)",maxImageHeight:"最大圖片高度 (px)",clickToUpload:"點擊上傳",orDragDrop:"或拖拽上傳",clickToUploadOrDrag:"點擊上傳或拖拽到此處",remove:"移除",replace:"替換",selectValidEmojiImage:"請選擇有效的表情圖片檔案",selectValidFormat:"請選擇有效的PNG或GIF格式圖片",maxFileSize:"檔案大小不能超過1MB",invalidFormat:"不支援的圖片格式。請使用PNG、JPG或WEBP。",required:"必需",uploadEmojiImages:"上傳表情圖片(GIF 需要 PSRAM)",customEmojiPackConfig:"自定義表情包配置",neutralRequiredNotice:"* 必須上傳 neutral 預設表情,其他表情可選。如果不上傳其他表情,將使用預設表情代替。",sharedFileMessage:"表情 {emotionKey} 使用了與 {existingEmotions} 相同的圖片檔案(共享儲存)",fileDeleted:"檔案 {fileHash} 已刪除(無其他表情引用)",fileRetained:"檔案 {fileHash} 仍被其他表情使用,保留檔案",imageLoadFailed:"表情圖片載入失敗",emotions:{neutral:"預設",happy:"開心",laughing:"大笑",funny:"搞笑",sad:"傷心",angry:"生氣",crying:"哭泣",loving:"喜愛",embarrassed:"尷尬",surprised:"驚訝",shocked:"震驚",thinking:"思考",winking:"眨眼",cool:"酷炫",relaxed:"放鬆",delicious:"美味",kissy:"飛吻",confident:"自信",sleepy:"睏倦",silly:"調皮",confused:"困惑"}},uf={title:"字體配置",description:"選擇預設字體或上傳自訂字體檔案。",noFonts:"無字體",noFontsDescription:"不使用字體配置,裝置將使用預設字體",presetFonts:"預設字體",customFonts:"自訂字體",selectPresetFont:"選擇預設字體",fontSize:"字號:",bitDepth:"位元深度:",charset:"字元集:",fileSize:"檔案大小:",customFontConfig:"自訂字體配置",fontFile:"字體檔案",clickSelectFontFile:"點擊選擇字體檔案",orDragFileHere:"或拖拽檔案到此處",supportedFormats:"支援 TTF, WOFF, WOFF2 格式",removeFile:"移除檔案",fontSizePx:"字號 (px)",range:"範圍:",bitDepthBpp:"位元深度 (BPP)",monochrome:"1 bpp (單色)",fourColors:"2 bpp (4色)",sixteenColors:"4 bpp (16色)",characterSet:"字元集",deepseekR1:"DeepSeek R1 (7405字元)",gb2312:"GB2312 (7445字元)",qwen18409:"Qwen (18409字元)",latin1:"Latin1 (190字元)",fullCharset:"完整字元集 (字體檔案的所有字元)",hideSubtitle:"隱藏字幕",hideSubtitleDescription:"對話時不顯示即時文字字幕",selectValidFontFile:"請選擇有效的字體檔案 (TTF, WOFF, WOFF2)",presetFontNames:{font_puhui_deepseek_14_1:"阿里巴巴普惠體 14px",font_puhui_deepseek_16_4:"阿里巴巴普惠體 16px",font_puhui_deepseek_20_4:"阿里巴巴普惠體 20px",font_puhui_deepseek_30_4:"阿里巴巴普惠體 30px",font_noto_qwen_14_1:"思源黑體 14px",font_noto_qwen_16_4:"思源黑體 16px",font_noto_qwen_20_4:"思源黑體 20px",font_noto_qwen_30_4:"思源黑體 30px"},charsetDeepseek:"DeepSeek 7405",charsetQwen:"Qwen 18409"},hf={app:Af,common:ef,header:tf,configNotice:nf,steps:of,generateModal:rf,progressSteps:gf,wakewordConfig:sf,errors:af,flashProgress:If,device:Cf,chipConfig:lf,themeDesign:Bf,generateSummary:Qf,backgroundConfig:cf,emojiConfig:Ef,fontConfig:uf},ff={title:"小智 AI カスタマイズ"},df={cancel:"キャンセル",confirm:"確認",close:"閉じる",start:"開始",download:"ダウンロード",generate:"生成",reset:"リセット",yes:"はい",no:"いいえ",loading:"読み込み中...",error:"エラー",success:"成功",warning:"警告",info:"情報",next:"次へ",previous:"前へ",finish:"完了",retry:"再試行",ok:"OK",other:"その他"},pf={title:"小智 AI カスタマイズ"},mf={title:"保存された設定を検出",message:"設定が自動的に復元されました。中断したところから続行するか、最初からやり直すことができます。",restart:"最初からやり直す"},yf={chip:"チップ設定",theme:"テーマデザイン",generate:"プレビュー&生成"},wf={title:"assets.binを生成",confirmConfig:"設定を確認してください",chipModel:"チップモデル:",resolution:"解像度:",wakeword:"ウェイクワード:",font:"フォント:",emoji:"絵文字パック:",fileList:"含まれるファイル一覧",estimated:"推定",compressed:"圧縮前",generating:"assets.binを生成中...",progress:"{progress}% 完了",completed:"assets.binファイルの準備ができました",filename:"ファイル名: assets.bin",fileSize:"ファイルサイズ: {size}",generationTime:"生成時間: {time}",downloadAssets:"assets.binをダウンロード",flashToDevice:"デバイスにオンライン書き込み",flashing:"デバイスに書き込み中...",flashingCancel:"書き込みをキャンセル",flashingError:"書き込みエラー",flashingInProgress:"書き込み中、ウィンドウを閉じないでください",customFont:"カスタムフォント",customEmoji:"カスタム絵文字パック",notConfigured:"未設定",wakewordNames:{wn9s_hilexin:"Hi, Espressif",wn9s_hiesp:"Hi, ESP",wn9s_nihaoxiaozhi:"こんにちは小智",wn9_nihaoxiaozhi_tts:"こんにちは小智",wn9_alexa:"アレクサ"}},Df={init:"ジェネレーターを初期化",font:"フォントファイルを処理",wakeword:"ウェイクワードモデルをパッケージ化",emoji:"絵文字画像を処理",background:"背景画像を処理",index:"インデックスファイルを生成",spiffs:"SPIFFSマッピングを構築",package:"パッケージ化を完了"},kf={title:"ウェイクワード設定",description:"プリセットのウェイクワードを選択するか、コマンド認識モデルを使用してカスタマイズします。",supportWakeNet9:"チップはWakeNet9モデルをサポートしています。",supportWakeNet9s:"チップはWakeNet9sモデルをサポートしています。",notSupported:"チップはウェイクワード機能をサポートしていません。",notice:"注意:",unsupportedMessage:"{chipModel}チップはウェイクワード機能をサポートしていません。ウェイクワードを使用する必要がある場合は、ESP32-S3、ESP32-P4、またはESP32-C3/C5/C6チップを選択してください。",noWakeword:"起動を無効にする",presetWakeword:"プリセット",customWakeword:"カスタム",selectWakeword:"ウェイクワードを選択",placeholder:"選択してください...",customSettings:"カスタムウェイクワード設定",wakewordName:"ウェイクワード名",wakewordNamePlaceholder:"例:小智 / Potato",wakewordCommand:"ウェイクコマンド",wakewordCommandPlaceholderCN:"ピンインをスペースで区切る。例:ni hao xiao zhi",wakewordCommandPlaceholderEN:"英語の単語。句読点は含めない。例:HELLO POTATO",threshold:"感度しきい値 (0-100)",thresholdDesc:"値が小さいほど感度が高くなります。デフォルトは20",duration:"認識時間",durationDesc:"コマンド認識の最大継続時間",selectModel:"認識モデルを選択",mn6cn:"MultiNet6 (中国語)",mn6en:"MultiNet6 (英語)",mn7cn:"MultiNet7 (中国語)",mn7en:"MultiNet7 (英語)",errors:{nameRequired:"ウェイクワード名を入力してください",commandRequired:"ウェイクコマンドを入力してください",noPunctuation:"コマンドに句読点を含めることはできません",durationRange:"時間は500〜10000msの間で設定してください"},tips:{tipLabel:"ヒント:",optional:"ウェイクワードはオプションです。無効にすると、デバイスは音声で起動できなくなります。",wakeNet9sOnly:"C3/C5/C6チップはWakeNet9s軽量モデルしかサポートしていません。",wakeNet9Full:"S3/P4チップは完全なWakeNet9モデルをサポートし、より多くの選択肢があります。",customSupport:"カスタムウェイクワードはMultiNetモデルを使用しており、現在はESP32-S3チップのみをサポートしています。"}},vf={resetFailed:"リセットに失敗しました、ページを更新して再試行してください",generationFailed:"生成に失敗しました: {error}",noFileToDownload:"ダウンロード可能なファイルがありません",deviceOffline:"デバイスがオフラインで書き込みできません",fileTooLarge:"書き込みに失敗しました: ファイルサイズ{fileSize}MBがassetsパーティションサイズ{partitionSize}MBを超えています。設定内容を減らすか、より大容量のデバイスを使用してください。",flashCancelConfirm:"書き込みをキャンセルしてもよろしいですか?",oldDataCleared:`古いバージョンの絵文字データ構造が検出され、クリアされました。
|
||
|
||
新しいバージョンはファイル重複除去技術を使用してストレージスペースを節約します。
|
||
|
||
カスタム絵文字画像を再アップロードしてください。`,incompatibleEmojiData:"互換性のない絵文字データを検出しました、再設定してください"},Ff={authTokenMissing:"認証トークンが見つかりません",checkingDeviceStatus:"デバイスの状態を確認中...",deviceOfflineOrUnresponsive:"デバイスがオフラインまたは応答なし: {error}",unableToGetDeviceStatus:"デバイスの状態を取得できません",initializingTransferService:"転送サービスを初期化中...",initializeTransferFailed:"転送サービスの初期化に失敗しました: {error}",settingDeviceDownloadUrl:"デバイスダウンロードURLを設定中...",setDownloadUrlFailed:"ダウンロードURLの設定に失敗しました: {error}",rebootingDevice:"デバイスを再起動中...",waitingForDeviceReboot:"デバイスの再起動を待機中...",deviceRebootTimeout:"デバイスの再起動タイムアウト(60秒)",startingFileTransfer:"ファイル転送を開始中...",flashCompleted:"書き込み完了!",onlineFlashFailed:"オンライン書き込みに失敗しました: {error}"},Sf={online:"オンライン",offline:"オフライン",checking:"確認中...",flashing:"書き込み中...",ready:"準備完了",chip:"チップ",board:"ボード",flash:"Flash",screen:"画面",signal:{unknown:"不明",strong:"強",medium:"中",weak:"弱",none:"信号なし"}},bf={title:"ステップ1: チップモデルと画面設定",loadingFromDevice:"デバイスからハードウェア設定を読み込み中...",loadedFromDevice:"デバイスからハードウェア設定が自動読み込みされました",manualConfig:"ハードウェアパラメータを手動で設定してください",loadingTitle:"デバイス設定を読み込み中...",loadingDesc:"デバイスからチップモデルと画面解像度を読み取り中",autoLoadedTitle:"デバイス設定が自動読み込みされました",chipModel:"チップモデル",screenWidth:"画面幅",screenHeight:"画面高",colorFormat:"色形式:",manualEdit:"手動設定",collapseManual:"手動設定を折りたたむ",manualConfigTitle:"手動ハードウェア設定",next:"次へ",selectChip:"チップを選択",chipRequired:"チップモデル",widthRequired:"画面幅",heightRequired:"画面高",loadingError:"設定読み込みエラー",deviceOffline:"デバイスが接続されていないかオフラインです",chipModelError:"チップモデルを取得できません、手動で入力してください",resolutionError:"画面解像度を取得できません、手動で入力してください",timeoutError:"設定読み込みタイムアウト、手動で入力してください",manualConfigDesc:"デバイスの設定を自動読み取りできません",manualConfigHint:"デバイスが接続されていないかオフラインです、ハードウェア設定を手動で入力してください",manualConfigRequired:"ハードウェア設定を手動で入力してください",resolutionFormatError:"画面解像度形式エラー"},Rf={title:"ステップ2: テーマデザイン",description:"ウェイクワード、フォント、絵文字、背景を設定して、小智AIテーマをカスタマイズします。",previous:"前へ",next:"次へ",tabs:{wakeword:"ウェイクワード設定",font:"フォント設定",emoji:"絵文字コレクション",background:"チャット背景"}},Nf={title:"ステップ3: プレビュー",description:"実際のデバイスでのカスタム設定の効果をプレビューします。",devicePreview:"デバイスプレビュー(1:1ピクセル比)",previewSettings:"プレビュー設定",previewText:"プレビューテキスト",defaultPreviewText:"こんにちは、私はあなたの友人、シャオズーです!",currentEmotion:"現在の感情",themeMode:"テーマモード",lightMode:"ライト",darkMode:"ダーク",configSummary:"設定概要",wakeword:"ウェイクワード:",font:"フォント:",loading:"読み込み中...",emotion:"感情:",skin:"スキン:",previous:"前へ",generate:"assets.binを生成",emotions:{neutral:"中立",happy:"幸せ",laughing:"大笑い",funny:"面白い",sad:"悲しい",angry:"怒り",crying:"泣き",loving:"愛情",embarrassed:"恥ずかしい",surprised:"驚き",shocked:"ショック",thinking:"考え中",winking:"ウインク",cool:"クール",relaxed:"リラックス",delicious:"美味しい",kissy:"キス",confident:"自信",sleepy:"眠い",silly:"ばかげた",confused:"混乱"},noEmotionConfigured:"感情が設定されていません",fontLoading:"フォント読み込み中...",configureEmojiFirst:"テーマデザインで絵文字パックを設定してください",customFont:"カスタムフォント {size}px",customEmoji:"カスタム絵文字 {count}画像",notConfigured:"未設定",skinLight:"ライト{type}",skinDark:"ダーク{type}",hideSubtitle:"字幕を隠す:",image:"画像",color:"色"},Gf={title:"チャット背景設定",description:"ライトモードとダークモードのチャット背景を設定し、単色またはカスタム画像をサポートします。",lightMode:"ライトモード背景",darkMode:"ダークモード背景",solidBackground:"単色背景",imageBackground:"画像背景",backgroundColor:"背景色:",textColor:"文字色:",backgroundImage:"背景画像:",clickOrDragToUpload:"クリックまたはドラッグして背景画像をアップロード",removeImage:"画像を削除",backgroundPreview:"背景プレビュー",lightModePreview:"ライトモード",darkModePreview:"ダークモード",chatArea:"チャットコンテンツエリア",quickConfig:"クイック設定",defaultColors:"デフォルト色",stoneTexture:"石質感",sunnyColors:"晴れ色",skyBlue:"空色",romanticPink:"ロマンチックピンク",selectValidImage:"有効な画像ファイルを選択してください"},Lf={title:"絵文字コレクション設定",description:"プリセット絵文字パックを選択するか、カスタム絵文字画像をアップロードします。各絵文字パックには21種類の異なる感情表現が含まれます。",noEmojiPack:"絵文字パックなし",noEmojiPackDescription:"絵文字パックを設定せず、パッケージにはフォントと背景リソースのみを含めます。",presetEmojiPack:"プリセット絵文字パック",customEmojiPack:"カスタム絵文字パック",selectPresetEmojiPack:"プリセット絵文字パックを選択",twemoji64:"Twemoji 64×64",twemoji32:"Twemoji 32×32",twemojiDescription:"Twitterの高品質絵文字セット、鮮明な表示に最適",twitterEmojiName:"Twemoji {size}x{size}",twitterEmojiDescription:"Twitter絵文字パック、{size}×{size}ピクセル",size:"サイズ",preview:"プレビュー",select:"選択",customEmojiTitle:"カスタム絵文字パック",customEmojiDescription:"独自の絵文字画像をアップロードします。各感情に1つの画像が必要です。",uploadInstructions:"クリックまたはドラッグして絵文字画像をアップロード(PNG/JPG/WEBP)",supportedFormats:"サポート形式: PNG, JPG, WEBP。推奨サイズ: 64×64ピクセル",emotionMapping:"感情マッピング",uploadAllEmotions:"すべての感情の絵文字画像をアップロードしてください",maxImageWidth:"最大画像幅(px)",maxImageHeight:"最大画像高(px)",clickToUpload:"クリックしてアップロード",orDragDrop:"またはドラッグ&ドロップ",clickToUploadOrDrag:"クリックしてアップロードまたはここにドラッグ",remove:"削除",replace:"置き換え",selectValidEmojiImage:"有効な絵文字画像ファイルを選択してください",selectValidFormat:"有効なPNGまたはGIF形式の画像を選択してください",maxFileSize:"ファイルサイズは1MBを超えないでください",invalidFormat:"サポートされていない画像形式です。PNG、JPG、またはWEBPを使用してください。",required:"必須",uploadEmojiImages:"絵文字画像をアップロード(GIFにはPSRAMが必要)",customEmojiPackConfig:"カスタム絵文字パック設定",neutralRequiredNotice:"* 中立のデフォルト感情をアップロードする必要があります、他の感情はオプションです。アップロードしない場合、デフォルト感情が代わりに使用されます。",sharedFileMessage:"感情{emotionKey}は{existingEmotions}と同じ画像ファイルを使用しています(共有ストレージ)",fileDeleted:"ファイル{fileHash}が削除されました(他の感情参照なし)",fileRetained:"ファイル{fileHash}は他の感情でまだ使用されているため、保持されます",imageLoadFailed:"絵文字画像の読み込みに失敗しました",emotions:{neutral:"中立",happy:"幸せ",laughing:"大笑い",funny:"面白い",sad:"悲しい",angry:"怒り",crying:"泣き",loving:"愛情",embarrassed:"恥ずかしい",surprised:"驚き",shocked:"ショック",thinking:"考え中",winking:"ウインク",cool:"クール",relaxed:"リラックス",delicious:"美味しい",kissy:"キス",confident:"自信",sleepy:"眠い",silly:"ばかげた",confused:"混乱"}},Uf={title:"フォント設定",description:"プリセットフォントを選択するか、カスタムフォントファイルをアップロードします。",noFonts:"フォントなし",noFontsDescription:"フォント設定を使用しない、デバイスはデフォルトのフォントを使用します",presetFonts:"プリセットフォント",customFonts:"カスタムフォント",selectPresetFont:"プリセットフォントを選択",fontSize:"フォントサイズ:",bitDepth:"ビット深度:",charset:"文字セット:",fileSize:"ファイルサイズ:",customFontConfig:"カスタムフォント設定",fontFile:"フォントファイル",clickSelectFontFile:"クリックしてフォントファイルを選択",orDragFileHere:"またはファイルをここにドラッグ",supportedFormats:"TTF、WOFF、WOFF2形式をサポート",removeFile:"ファイルを削除",fontSizePx:"フォントサイズ(px)",range:"範囲:",bitDepthBpp:"ビット深度(BPP)",monochrome:"1 bpp(モノクロ)",fourColors:"2 bpp(4色)",sixteenColors:"4 bpp(16色)",characterSet:"文字セット",deepseekR1:"DeepSeek R1(7405文字)",gb2312:"GB2312(7445文字)",qwen18409:"Qwen(18409文字)",latin1:"Latin1(190文字)",fullCharset:"完全な文字セット(フォントファイルのすべての文字)",hideSubtitle:"字幕を隠す",hideSubtitleDescription:"会話中にリアルタイム字幕を表示しない",selectValidFontFile:"有効なフォントファイルを選択してください(TTF、WOFF、WOFF2)",presetFontNames:{font_puhui_deepseek_14_1:"Alibaba PuHuiTi 14px",font_puhui_deepseek_16_4:"Alibaba PuHuiTi 16px",font_puhui_deepseek_20_4:"Alibaba PuHuiTi 20px",font_puhui_deepseek_30_4:"Alibaba PuHuiTi 30px",font_noto_qwen_14_1:"Noto Sans 14px",font_noto_qwen_16_4:"Noto Sans 16px",font_noto_qwen_20_4:"Noto Sans 20px",font_noto_qwen_30_4:"Noto Sans 30px"},charsetDeepseek:"DeepSeek 7405",charsetQwen:"Qwen 18409"},Mf={app:ff,common:df,header:pf,configNotice:mf,steps:yf,generateModal:wf,progressSteps:Df,wakewordConfig:kf,errors:vf,flashProgress:Ff,device:Sf,chipConfig:bf,themeDesign:Rf,generateSummary:Nf,backgroundConfig:Gf,emojiConfig:Lf,fontConfig:Uf},xf={title:"Xiaozhi AI Tùy chỉnh"},Jf={cancel:"Hủy",confirm:"Xác nhận",close:"Đóng",start:"Bắt đầu",download:"Tải xuống",generate:"Tạo",reset:"Đặt lại",yes:"Có",no:"Không",loading:"Đang tải...",error:"Lỗi",success:"Thành công",warning:"Cảnh báo",info:"Thông tin",next:"Tiếp theo",previous:"Trước đó",finish:"Hoàn thành",retry:"Thử lại",ok:"OK",other:"Khác"},Tf={title:"Xiaozhi AI Tùy chỉnh"},Hf={title:"Phát hiện cấu hình đã lưu",message:"Cấu hình đã được khôi phục tự động. Bạn có thể tiếp tục từ nơi đã dừng hoặc bắt đầu lại.",restart:"Bắt đầu lại"},Yf={chip:"Cấu hình chip",theme:"Thiết kế chủ đề",generate:"Xem trước & Tạo"},_f={title:"Tạo assets.bin",confirmConfig:"Vui lòng xác nhận cấu hình của bạn",chipModel:"Mô hình chip:",resolution:"Độ phân giải:",wakeword:"Từ đánh thức:",font:"Phông chữ:",emoji:"Gói biểu tượng cảm xúc:",fileList:"Danh sách tệp được bao gồm",estimated:"Ước tính",compressed:"Trước khi nén",generating:"Đang tạo assets.bin...",progress:"{progress}% Hoàn thành",completed:"Tệp assets.bin của bạn đã sẵn sàng",filename:"Tên tệp: assets.bin",fileSize:"Kích thước tệp: {size}",generationTime:"Thời gian tạo: {time}",downloadAssets:"Tải xuống assets.bin",flashToDevice:"Flash trực tuyến vào thiết bị",flashing:"Đang flash vào thiết bị...",flashingCancel:"Hủy flash",flashingError:"Lỗi flash",flashingInProgress:"Đang flash, vui lòng không đóng cửa sổ",customFont:"Phông chữ tùy chỉnh",customEmoji:"Gói biểu tượng cảm xúc tùy chỉnh",notConfigured:"Chưa cấu hình",wakewordNames:{wn9s_hilexin:"Hi, Espressif",wn9s_hiesp:"Hi, ESP",wn9s_nihaoxiaozhi:"Xin chào Xiaozhi",wn9_nihaoxiaozhi_tts:"Xin chào Xiaozhi",wn9_alexa:"Alexa"}},Kf={init:"Khởi tạo trình tạo",font:"Xử lý tệp phông chữ",wakeword:"Đóng gói mô hình từ đánh thức",emoji:"Xử lý hình ảnh biểu tượng cảm xúc",background:"Xử lý hình ảnh nền",index:"Tạo tệp chỉ mục",spiffs:"Xây dựng ánh xạ SPIFFS",package:"Hoàn thành đóng gói"},Pf={title:"Cấu hình từ đánh thức",description:"Chọn mô hình từ đánh thức đặt sẵn hoặc tùy chỉnh thông qua mô hình lệnh.",supportWakeNet9:"Chip của bạn hỗ trợ mô hình WakeNet9.",supportWakeNet9s:"Chip của bạn hỗ trợ mô hình WakeNet9s.",notSupported:"Chip của bạn không hỗ trợ chức năng từ đánh thức.",notice:"Lưu ý:",unsupportedMessage:"Chip {chipModel} không hỗ trợ chức năng từ đánh thức. Nếu bạn cần sử dụng từ đánh thức, vui lòng chọn chip ESP32-S3, ESP32-P4 hoặc ESP32-C3/C5/C6.",noWakeword:"Tắt đánh thức",presetWakeword:"Mặc định",customWakeword:"Tùy chỉnh",selectWakeword:"Chọn từ đánh thức",placeholder:"Chọn một từ...",customSettings:"Cài đặt từ đánh thức tùy chỉnh",wakewordName:"Tên từ đánh thức",wakewordNamePlaceholder:"VD: Xiaozhi / Potato",wakewordCommand:"Lệnh đánh thức",wakewordCommandPlaceholderCN:"Pinyin cách nhau bằng dấu cách, VD: ni hao xiao zhi",wakewordCommandPlaceholderEN:"Từ tiếng Anh, không dấu câu, VD: HELLO POTATO",threshold:"Ngưỡng nhạy (0-100)",thresholdDesc:"Càng nhỏ càng nhạy, mặc định là 20",duration:"Thời gian nhận diện",durationDesc:"Thời gian tối đa để nhận diện lệnh",selectModel:"Chọn mô hình nhận diện",mn6cn:"MultiNet6 (Tiếng Trung)",mn6en:"MultiNet6 (Tiếng Anh)",mn7cn:"MultiNet7 (Tiếng Trung)",mn7en:"MultiNet7 (Tiếng Anh)",errors:{nameRequired:"Vui lòng nhập tên từ đánh thức",commandRequired:"Vui lòng nhập lệnh đánh thức",noPunctuation:"Lệnh không thể chứa dấu câu",durationRange:"Thời gian phải từ 500-10000ms"},tips:{tipLabel:"Mẹo:",optional:"Từ đánh thức là tùy chọn. Nếu tắt, thiết bị sẽ không thể đánh thức bằng giọng nói.",wakeNet9sOnly:"Chip C3/C5/C6 chỉ hỗ trợ mô hình nhẹ WakeNet9s.",wakeNet9Full:"Chip S3/P4 hỗ trợ mô hình WakeNet9 hoàn chỉnh với nhiều lựa chọn hơn.",customSupport:"Từ đánh thức tùy chỉnh sử dụng mô hình MultiNet, hiện chỉ hỗ trợ chip ESP32-S3."}},Of={resetFailed:"Đặt lại thất bại, vui lòng làm mới trang và thử lại",generationFailed:"Tạo thất bại: {error}",noFileToDownload:"Không có tệp nào để tải xuống",deviceOffline:"Thiết bị ngoại tuyến và không thể flash",fileTooLarge:"Flash thất bại: Kích thước tệp {fileSize}MB vượt quá kích thước phân vùng assets {partitionSize}MB. Vui lòng giảm nội dung cấu hình hoặc sử dụng thiết bị có dung lượng lớn hơn.",flashCancelConfirm:"Bạn có chắc chắn muốn hủy flash?",oldDataCleared:`Đã phát hiện và xóa cấu trúc dữ liệu biểu tượng cảm xúc phiên bản cũ.
|
||
|
||
Phiên bản mới sử dụng công nghệ loại bỏ trùng lặp tệp để tiết kiệm không gian lưu trữ.
|
||
|
||
Vui lòng tải lại hình ảnh biểu tượng cảm xúc tùy chỉnh.`,incompatibleEmojiData:"Phát hiện dữ liệu biểu tượng cảm xúc không tương thích, vui lòng cấu hình lại"},Vf={authTokenMissing:"Không tìm thấy mã thông báo xác thực",checkingDeviceStatus:"Đang kiểm tra trạng thái thiết bị...",deviceOfflineOrUnresponsive:"Thiết bị ngoại tuyến hoặc không phản hồi: {error}",unableToGetDeviceStatus:"Không thể lấy trạng thái thiết bị",initializingTransferService:"Đang khởi tạo dịch vụ truyền tải...",initializeTransferFailed:"Khởi tạo dịch vụ truyền tải thất bại: {error}",settingDeviceDownloadUrl:"Đang thiết lập URL tải xuống thiết bị...",setDownloadUrlFailed:"Thiết lập URL tải xuống thất bại: {error}",rebootingDevice:"Đang khởi động lại thiết bị...",waitingForDeviceReboot:"Đang chờ thiết bị khởi động lại...",deviceRebootTimeout:"Hết thời gian chờ thiết bị khởi động lại (60 giây)",startingFileTransfer:"Đang bắt đầu truyền tải tệp...",flashCompleted:"Flash hoàn thành!",onlineFlashFailed:"Flash trực tuyến thất bại: {error}"},Wf={online:"Trực tuyến",offline:"Ngoại tuyến",checking:"Đang kiểm tra...",flashing:"Đang flash...",ready:"Sẵn sàng",chip:"Chip",board:"Bo mạch",flash:"Flash",screen:"Màn hình",signal:{unknown:"Không xác định",strong:"Mạnh",medium:"Trung bình",weak:"Yếu",none:"Không có tín hiệu"}},qf={title:"Bước 1: Cấu hình mô hình chip và màn hình",loadingFromDevice:"Đang tải cấu hình phần cứng từ thiết bị...",loadedFromDevice:"Cấu hình phần cứng được tải tự động từ thiết bị",manualConfig:"Vui lòng cấu hình các thông số phần cứng theo cách thủ công",loadingTitle:"Đang tải cấu hình thiết bị...",loadingDesc:"Đang đọc mô hình chip và độ phân giải màn hình từ thiết bị",autoLoadedTitle:"Cấu hình thiết bị được tải tự động",chipModel:"Mô hình chip",screenWidth:"Chiều rộng màn hình",screenHeight:"Chiều cao màn hình",colorFormat:"Định dạng màu:",manualEdit:"Cấu hình thủ công",collapseManual:"Thu gọn cấu hình thủ công",manualConfigTitle:"Cấu hình phần cứng thủ công",next:"Tiếp theo",selectChip:"Chọn chip",chipRequired:"Mô hình chip",widthRequired:"Chiều rộng màn hình",heightRequired:"Chiều cao màn hình",loadingError:"Lỗi tải cấu hình",deviceOffline:"Thiết bị chưa kết nối hoặc ngoại tuyến",chipModelError:"Không thể lấy mô hình chip, vui lòng nhập thủ công",resolutionError:"Không thể lấy độ phân giải màn hình, vui lòng nhập thủ công",timeoutError:"Hết thời gian tải cấu hình, vui lòng nhập thủ công",manualConfigDesc:"Không thể tự động đọc cấu hình thiết bị",manualConfigHint:"Thiết bị chưa kết nối hoặc ngoại tuyến, vui lòng nhập cấu hình phần cứng thủ công",manualConfigRequired:"Vui lòng nhập cấu hình phần cứng thủ công",resolutionFormatError:"Lỗi định dạng độ phân giải màn hình"},jf={title:"Bước 2: Thiết kế chủ đề",description:"Cấu hình từ đánh thức, phông chữ, biểu tượng cảm xúc và nền để tùy chỉnh chủ đề Xiaozhi AI của bạn.",previous:"Trước đó",next:"Tiếp theo",tabs:{wakeword:"Cấu hình từ đánh thức",font:"Cấu hình phông chữ",emoji:"Bộ sưu tập biểu tượng cảm xúc",background:"Nền trò chuyện"}},Zf={title:"Bước 3: Xem trước",description:"Xem trước hiệu ứng của cấu hình tùy chỉnh trên thiết bị thực tế.",devicePreview:"Xem trước thiết bị (tỷ lệ pixel 1:1)",previewSettings:"Cài đặt xem trước",previewText:"Văn bản xem trước",defaultPreviewText:"Xin chào, tôi là bạn của bạn Xiaozhi!",currentEmotion:"Cảm xúc hiện tại",themeMode:"Chế độ chủ đề",lightMode:"Sáng",darkMode:"Tối",configSummary:"Tóm tắt cấu hình",wakeword:"Từ đánh thức:",font:"Phông chữ:",loading:"Đang tải...",emotion:"Cảm xúc:",skin:"Da:",previous:"Trước đó",generate:"Tạo assets.bin",emotions:{neutral:"Trung lập",happy:"Vui vẻ",laughing:"Cười lớn",funny:"Hài hước",sad:"Buồn",angry:"Giận dữ",crying:"Khóc",loving:"Yêu thương",embarrassed:"Xấu hổ",surprised:"Bất ngờ",shocked:"Sốc",thinking:"Suy nghĩ",winking:"Nháy mắt",cool:"Ngầu",relaxed:"Thoải mái",delicious:"Ngon miệng",kissy:"Hôn",confident:"Tự tin",sleepy:"Buồn ngủ",silly:"Ngớ ngẩn",confused:"Bối rối"},noEmotionConfigured:"Chưa cấu hình cảm xúc",fontLoading:"Đang tải phông chữ...",configureEmojiFirst:"Vui lòng cấu hình gói biểu tượng cảm xúc trong thiết kế chủ đề trước",customFont:"Phông chữ tùy chỉnh {size}px",customEmoji:"Biểu tượng cảm xúc tùy chỉnh {count} hình ảnh",notConfigured:"Chưa cấu hình",skinLight:"Sáng {type}",skinDark:"Tối {type}",hideSubtitle:"Ẩn phụ đề:",image:"Hình ảnh",color:"Màu sắc"},Xf={title:"Cấu hình nền trò chuyện",description:"Cấu hình nền trò chuyện cho chế độ sáng và tối, hỗ trợ màu đơn hoặc hình ảnh tùy chỉnh.",lightMode:"Nền chế độ sáng",darkMode:"Nền chế độ tối",solidBackground:"Nền màu đơn",imageBackground:"Nền hình ảnh",backgroundColor:"Màu nền:",textColor:"Màu chữ:",backgroundImage:"Hình ảnh nền:",clickOrDragToUpload:"Nhấp hoặc kéo để tải lên hình ảnh nền",removeImage:"Xóa hình ảnh",backgroundPreview:"Xem trước nền",lightModePreview:"Chế độ sáng",darkModePreview:"Chế độ tối",chatArea:"Khu vực nội dung trò chuyện",quickConfig:"Cấu hình nhanh",defaultColors:"Màu mặc định",stoneTexture:"Kết cấu đá",sunnyColors:"Màu nắng",skyBlue:"Xanh trời",romanticPink:"Hồng lãng mạn",selectValidImage:"Vui lòng chọn tệp hình ảnh hợp lệ"},zf={title:"Cấu hình bộ sưu tập biểu tượng cảm xúc",description:"Chọn gói biểu tượng cảm xúc đặt sẵn hoặc hình ảnh biểu tượng cảm xúc tùy chỉnh. Mỗi gói biểu tượng cảm xúc chứa 21 biểu cảm cảm xúc khác nhau.",noEmojiPack:"Không có gói biểu tượng cảm xúc",noEmojiPackDescription:"Không cấu hình gói biểu tượng cảm xúc, chỉ bao gồm phông chữ và tài nguyên nền trong gói.",presetEmojiPack:"Gói biểu tượng cảm xúc đặt sẵn",customEmojiPack:"Gói biểu tượng cảm xúc tùy chỉnh",selectPresetEmojiPack:"Chọn gói biểu tượng cảm xúc đặt sẵn",twemoji64:"Twemoji 64×64",twemoji32:"Twemoji 32×32",twemojiDescription:"Bộ biểu tượng cảm xúc chất lượng cao từ Twitter, hoàn hảo để hiển thị rõ ràng",twitterEmojiName:"Twemoji {size}x{size}",twitterEmojiDescription:"Gói biểu tượng cảm xúc Twitter, {size}×{size} pixel",size:"Kích thước",preview:"Xem trước",select:"Chọn",customEmojiTitle:"Gói biểu tượng cảm xúc tùy chỉnh",customEmojiDescription:"Tải lên hình ảnh biểu tượng cảm xúc của riêng bạn. Mỗi cảm xúc cần một hình ảnh.",uploadInstructions:"Nhấp hoặc kéo để tải lên hình ảnh biểu tượng cảm xúc (PNG/JPG/WEBP)",supportedFormats:"Định dạng được hỗ trợ: PNG, JPG, WEBP. Kích thước khuyến nghị: 64×64 pixel",emotionMapping:"Ánh xạ cảm xúc",uploadAllEmotions:"Vui lòng tải lên hình ảnh biểu tượng cảm xúc cho tất cả cảm xúc",maxImageWidth:"Chiều rộng hình ảnh tối đa (px)",maxImageHeight:"Chiều cao hình ảnh tối đa (px)",clickToUpload:"Nhấp để tải lên",orDragDrop:"hoặc kéo và thả",clickToUploadOrDrag:"Nhấp để tải lên hoặc kéo vào đây",remove:"Xóa",replace:"Thay thế",selectValidEmojiImage:"Vui lòng chọn tệp hình ảnh biểu tượng cảm xúc hợp lệ",selectValidFormat:"Vui lòng chọn hình ảnh định dạng PNG hoặc GIF hợp lệ",maxFileSize:"Kích thước tệp không được vượt quá 1MB",invalidFormat:"Định dạng hình ảnh không được hỗ trợ. Vui lòng sử dụng PNG, JPG hoặc WEBP.",required:"Bắt buộc",uploadEmojiImages:"Tải lên hình ảnh biểu tượng cảm xúc (GIF cần PSRAM)",customEmojiPackConfig:"Cấu hình gói biểu tượng cảm xúc tùy chỉnh",neutralRequiredNotice:"* Phải tải lên cảm xúc mặc định trung lập, các cảm xúc khác là tùy chọn. Nếu không tải lên, cảm xúc mặc định sẽ được sử dụng thay thế.",sharedFileMessage:"Cảm xúc {emotionKey} sử dụng cùng tệp hình ảnh với {existingEmotions} (lưu trữ chia sẻ)",fileDeleted:"Tệp {fileHash} đã bị xóa (không có tham chiếu cảm xúc khác)",fileRetained:"Tệp {fileHash} vẫn được sử dụng bởi các cảm xúc khác, được giữ lại",imageLoadFailed:"Không tải được hình ảnh biểu tượng cảm xúc",emotions:{neutral:"Trung lập",happy:"Vui vẻ",laughing:"Cười lớn",funny:"Hài hước",sad:"Buồn",angry:"Giận dữ",crying:"Khóc",loving:"Yêu thương",embarrassed:"Xấu hổ",surprised:"Bất ngờ",shocked:"Sốc",thinking:"Suy nghĩ",winking:"Nháy mắt",cool:"Ngầu",relaxed:"Thoải mái",delicious:"Ngon miệng",kissy:"Hôn",confident:"Tự tin",sleepy:"Buồn ngủ",silly:"Ngớ ngẩn",confused:"Bối rối"}},$f={title:"Cấu hình phông chữ",description:"Chọn phông chữ đặt sẵn hoặc tải lên tệp phông chữ tùy chỉnh.",noFonts:"Không có phông chữ",noFontsDescription:"Không sử dụng cấu hình phông chữ, thiết bị sẽ sử dụng phông chữ mặc định",presetFonts:"Phông chữ đặt sẵn",customFonts:"Phông chữ tùy chỉnh",selectPresetFont:"Chọn phông chữ đặt sẵn",fontSize:"Kích thước phông chữ:",bitDepth:"Độ sâu bit:",charset:"Bộ ký tự:",fileSize:"Kích thước tệp:",customFontConfig:"Cấu hình phông chữ tùy chỉnh",fontFile:"Tệp phông chữ",clickSelectFontFile:"Nhấp để chọn tệp phông chữ",orDragFileHere:"hoặc kéo tệp vào đây",supportedFormats:"Hỗ trợ định dạng TTF, WOFF, WOFF2",removeFile:"Xóa tệp",fontSizePx:"Kích thước phông chữ (px)",range:"Phạm vi:",bitDepthBpp:"Độ sâu bit (BPP)",monochrome:"1 bpp (Đơn sắc)",fourColors:"2 bpp (4 màu)",sixteenColors:"4 bpp (16 màu)",characterSet:"Bộ ký tự",deepseekR1:"DeepSeek R1 (7405 ký tự)",gb2312:"GB2312 (7445 ký tự)",qwen18409:"Qwen (18409 ký tự)",latin1:"Latin1 (190 ký tự)",fullCharset:"Bộ ký tự đầy đủ (Tất cả ký tự trong tệp phông chữ)",hideSubtitle:"Ẩn phụ đề",hideSubtitleDescription:"Không hiển thị phụ đề văn bản trong khi trò chuyện",selectValidFontFile:"Vui lòng chọn tệp phông chữ hợp lệ (TTF, WOFF, WOFF2)",presetFontNames:{font_puhui_deepseek_14_1:"Alibaba PuHuiTi 14px",font_puhui_deepseek_16_4:"Alibaba PuHuiTi 16px",font_puhui_deepseek_20_4:"Alibaba PuHuiTi 20px",font_puhui_deepseek_30_4:"Alibaba PuHuiTi 30px",font_noto_qwen_14_1:"Noto Sans 14px",font_noto_qwen_16_4:"Noto Sans 16px",font_noto_qwen_20_4:"Noto Sans 20px",font_noto_qwen_30_4:"Noto Sans 30px"},charsetDeepseek:"DeepSeek 7405",charsetQwen:"Qwen 18409"},Ad={app:xf,common:Jf,header:Tf,configNotice:Hf,steps:Yf,generateModal:_f,progressSteps:Kf,wakewordConfig:Pf,errors:Of,flashProgress:Vf,device:Wf,chipConfig:qf,themeDesign:jf,generateSummary:Zf,backgroundConfig:Xf,emojiConfig:zf,fontConfig:$f},ed={en:Uh,"zh-CN":$h,"zh-TW":hf,ja:Mf,vi:Ad},Nn=[{code:"en",name:"English",flag:"🇺🇸"},{code:"zh-CN",name:"简体中文",flag:"🇨🇳"},{code:"zh-TW",name:"繁體中文",flag:"🇹🇼"},{code:"ja",name:"日本語",flag:"🇯🇵"},{code:"vi",name:"Tiếng Việt",flag:"🇻🇳"}];function td(){const A=navigator.language||navigator.userLanguage;return{"zh-CN":"zh-CN","zh-TW":"zh-TW","zh-HK":"zh-TW",zh:"zh-CN",ja:"ja",vi:"vi",en:"en","en-US":"en","en-GB":"en"}[A]||"en"}const id={class:"relative"},nd={class:"py-1"},od=["onClick"],rd={class:"mr-3"},gd={key:0,class:"ml-auto w-4 h-4 text-blue-600",fill:"currentColor",viewBox:"0 0 20 20"},sd={__name:"LanguageSelector",setup(A){const{locale:e}=Fe(),t=uA(!1),i=fA(()=>Nn.find(s=>s.code===e.value)||Nn[0]),n=()=>{t.value=!t.value},o=()=>{t.value=!1},r=s=>{e.value=s,localStorage.setItem("user-language",s),o()},g=s=>{s.target.closest(".relative")||o()};return St(()=>{document.addEventListener("click",g);const s=localStorage.getItem("user-language");s&&Nn.find(a=>a.code===s)&&(e.value=s)}),li(()=>{document.removeEventListener("click",g)}),(s,a)=>(H(),_("div",id,[B("button",{onClick:n,class:"flex items-center space-x-2 px-3 py-2 text-sm font-medium text-gray-700 bg-white border border-gray-300 rounded-md hover:bg-gray-50 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-blue-500"},[B("span",null,v(i.value.flag),1),B("span",null,v(i.value.name),1),(H(),_("svg",{class:vA(["w-4 h-4 transition-transform duration-200",{"rotate-180":t.value}]),fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[...a[1]||(a[1]=[B("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M19 9l-7 7-7-7"},null,-1)])],2))]),t.value?(H(),_("div",{key:0,class:"absolute right-0 mt-2 w-48 bg-white border border-gray-200 rounded-md shadow-lg z-50",onClick:a[0]||(a[0]=pt(()=>{},["stop"]))},[B("div",nd,[(H(!0),_(ZA,null,Pe(cA(Nn),I=>(H(),_("button",{key:I.code,onClick:l=>r(I.code),class:vA(["flex items-center w-full px-4 py-2 text-sm text-gray-700 hover:bg-gray-100 focus:outline-none focus:bg-gray-100",{"bg-blue-50 text-blue-700":I.code===i.value.code}])},[B("span",rd,v(I.flag),1),B("span",null,v(I.name),1),I.code===i.value.code?(H(),_("svg",gd,[...a[2]||(a[2]=[B("path",{"fill-rule":"evenodd",d:"M16.707 5.293a1 1 0 010 1.414l-8 8a1 1 0 01-1.414 0l-4-4a1 1 0 011.414-1.414L8 12.586l7.293-7.293a1 1 0 011.414 0z","clip-rule":"evenodd"},null,-1)])])):aA("",!0)],10,od))),128))])])):aA("",!0),t.value?(H(),_("div",{key:1,class:"fixed inset-0 z-40",onClick:o})):aA("",!0)]))}},ad={class:"space-y-6"},Id={class:"text-xl font-semibold text-gray-900 mb-4"},Cd={class:"text-gray-600 mb-6"},ld={key:0},Bd={key:1},Qd={key:2},cd={key:0,class:"space-y-4"},Ed={class:"bg-blue-50 border-2 border-blue-200 rounded-lg p-6"},ud={class:"flex items-center justify-center space-x-3"},hd={class:"text-lg font-medium text-blue-900"},fd={class:"text-sm text-blue-700 mt-1"},dd={key:1,class:"space-y-4"},pd={class:"bg-green-50 border-2 border-green-200 rounded-lg p-4"},md={class:"flex items-start justify-between mb-3"},yd={class:"flex items-center"},wd={class:"text-lg font-medium text-green-900"},Dd={class:"grid grid-cols-1 md:grid-cols-3 gap-4 mt-4"},kd={class:"bg-white rounded-lg p-3"},vd={class:"block text-sm font-medium text-gray-700 mb-1"},Fd={class:"text-base font-semibold text-gray-900"},Sd={class:"bg-white rounded-lg p-3"},bd={class:"block text-sm font-medium text-gray-700 mb-1"},Rd={class:"text-base font-semibold text-gray-900"},Nd={class:"bg-white rounded-lg p-3"},Gd={class:"block text-sm font-medium text-gray-700 mb-1"},Ld={class:"text-base font-semibold text-gray-900"},Ud={class:"mt-3 text-sm text-green-700"},Md={class:"border border-gray-200 rounded-lg p-4"},xd={key:0,class:"mt-4"},Jd={key:2,class:"space-y-4"},Td={class:"bg-yellow-50 border border-yellow-200 rounded-lg p-4"},Hd={class:"flex items-start"},Yd={class:"font-medium text-yellow-900"},_d={class:"text-sm text-yellow-700 mt-1"},Kd={class:"border-2 border-gray-300 rounded-lg p-4"},Pd={class:"text-lg font-medium text-gray-900 mb-4"},Od={class:"flex justify-end"},Vd=["disabled"],Wd={__name:"ChipConfig",props:{modelValue:{type:Object,default:()=>({model:"",display:{width:320,height:240,color:"RGB565"}})}},emits:["update:modelValue","next"],setup(A,{emit:e}){const{t}=Fe(),i=e,n=fA(()=>[{value:"",label:t("chipConfig.selectChip")},{value:"esp32s3",label:"ESP32-S3"},{value:"esp32c3",label:"ESP32-C3"},{value:"esp32c5",label:"ESP32-C5"},{value:"esp32c6",label:"ESP32-C6"},{value:"esp32p4",label:"ESP32-P4"},{value:"esp32",label:"ESP32"},{value:"others",label:t("common.other")}]),o={name:"ConfigForm",props:{config:{type:Object,required:!0},showRequired:{type:Boolean,default:!1}},render(){const w=this.$t;return LA("div",{class:"grid grid-cols-1 md:grid-cols-3 gap-4"},[LA("div",[LA("label",{class:"block text-sm font-medium text-gray-700 mb-2"},[w("chipConfig.chipRequired")+" ",this.showRequired&&LA("span",{class:"text-red-500"},"*")]),LA("select",{class:"w-full border border-gray-300 rounded-md px-3 py-2 focus:outline-none focus:ring-2 focus:ring-primary-500 focus:border-primary-500",value:this.config.model,onChange:F=>{this.config.model=F.target.value}},cA(n).map(F=>LA("option",{value:F.value,key:F.value},F.label)))]),LA("div",[LA("label",{class:"block text-sm font-medium text-gray-700 mb-2"},[w("chipConfig.widthRequired")+" ",this.showRequired&&LA("span",{class:"text-red-500"},"*")]),LA("input",{type:"number",class:"w-full border border-gray-300 rounded-md px-3 py-2 focus:outline-none focus:ring-2 focus:ring-primary-500 focus:border-primary-500",value:this.config.display.width,min:128,max:800,placeholder:"320",onInput:F=>{this.config.display.width=Number(F.target.value)}})]),LA("div",[LA("label",{class:"block text-sm font-medium text-gray-700 mb-2"},[w("chipConfig.heightRequired")+" ",this.showRequired&&LA("span",{class:"text-red-500"},"*")]),LA("input",{type:"number",class:"w-full border border-gray-300 rounded-md px-3 py-2 focus:outline-none focus:ring-2 focus:ring-primary-500 focus:border-primary-500",value:this.config.display.height,min:128,max:600,placeholder:"240",onInput:F=>{this.config.display.height=Number(F.target.value)}})])])}},{deviceInfo:r,isDeviceOnline:g,hasToken:s}=Go(),a=uA(s.value),I=uA(!1),l=uA(""),C=uA(!1),Q=uA({model:"",display:{width:320,height:240,color:"RGB565"}}),u={"ESP32-S3":"esp32s3",ESP32S3:"esp32s3","ESP32-C3":"esp32c3",ESP32C3:"esp32c3","ESP32-C5":"esp32c5",ESP32C5:"esp32c5","ESP32-P4":"esp32p4",ESP32P4:"esp32p4","ESP32-C6":"esp32c6",ESP32C6:"esp32c6",ESP32:"esp32"},f=()=>{var w,F;try{if(!g.value)return a.value||(l.value=t("chipConfig.deviceOffline"),I.value=!1),!1;const N=(w=r.value.chip)==null?void 0:w.model;if(!N||N==="未知")return!1;let G=u[N.toUpperCase()]||u[N]||N.toLowerCase().replace(/-/g,"");["esp32s3","esp32c3","esp32c5","esp32p4","esp32c6","esp32","others"].includes(G)||(G="others");const b=(F=r.value.screen)==null?void 0:F.resolution;if(!b||b==="未知")return!1;const[R,L]=b.split("x").map(Number);return!R||!L||isNaN(R)||isNaN(L)?(l.value=t("chipConfig.resolutionFormatError"),I.value=!1,a.value=!1,!1):(Q.value={model:G,display:{width:R,height:L,color:"RGB565"}},i("update:modelValue",{model:G,display:{width:R,height:L,color:"RGB565"}}),I.value=!0,l.value="",a.value=!1,console.log("✓ 设备配置加载成功:",{chip:G,width:R,height:L}),!0)}catch(N){return console.error("加载设备配置失败:",N),l.value=t("chipConfig.loadingError"),I.value=!1,a.value=!1,!1}},h=fA(()=>Q.value.model&&Q.value.display.width&&Q.value.display.height),E=fA(()=>Q.value.model?Q.value.model.toUpperCase().replace(/ESP32/i,"ESP32-"):""),p=fA(()=>Q.value.display),c=()=>{C.value=!C.value},d=()=>{h.value&&i("next")};return Ie(()=>Q.value,w=>{i("update:modelValue",{model:w.model,display:{...w.display}})},{deep:!0}),Ie(()=>g.value,w=>{w&&!I.value&&(a.value=!0,l.value="",setTimeout(()=>{f()},100))}),Ie(()=>[r.value.chip,r.value.screen],()=>{g.value&&!I.value&&f()},{deep:!0}),St(()=>{if(!s.value){a.value=!1,l.value=t("chipConfig.manualConfigRequired"),console.log("⚠ 未检测到设备连接,使用手动配置模式");return}g.value&&r.value.chip&&r.value.chip.model!=="未知"&&r.value.screen&&r.value.screen.resolution!=="未知"?(console.log("✓ 检测到已缓存的设备信息,立即加载"),f()):g.value?(console.log("⏳ 设备在线,等待设备信息加载..."),a.value=!0,setTimeout(()=>{f()},500),setTimeout(()=>{a.value&&!I.value&&g.value&&(a.value=!1,!r.value.chip||r.value.chip.model==="未知"?l.value=t("chipConfig.chipModelError"):!r.value.screen||r.value.screen.resolution==="未知"?l.value=t("chipConfig.resolutionError"):l.value=t("chipConfig.timeoutError"),console.warn("⚠ 设备配置加载超时:",l.value))},1e4)):(console.log("⏳ 等待设备连接..."),a.value=!0,setTimeout(()=>{a.value&&!I.value&&!g.value&&(a.value=!1,l.value=t("chipConfig.manualConfigHint"),console.warn("⚠ 等待设备连接超时"))},1e4))}),(w,F)=>(H(),_("div",ad,[B("div",null,[B("h2",Id,v(w.$t("chipConfig.title")),1),B("p",Cd,[a.value?(H(),_("span",ld,v(w.$t("chipConfig.loadingFromDevice")),1)):I.value?(H(),_("span",Bd,v(w.$t("chipConfig.loadedFromDevice")),1)):(H(),_("span",Qd,v(w.$t("chipConfig.manualConfig")),1))])]),a.value?(H(),_("div",cd,[B("div",Ed,[B("div",ud,[F[0]||(F[0]=B("svg",{class:"animate-spin h-6 w-6 text-blue-600",xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24"},[B("circle",{class:"opacity-25",cx:"12",cy:"12",r:"10",stroke:"currentColor","stroke-width":"4"}),B("path",{class:"opacity-75",fill:"currentColor",d:"M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z"})],-1)),B("div",null,[B("h3",hd,v(w.$t("chipConfig.loadingTitle")),1),B("p",fd,v(w.$t("chipConfig.loadingDesc")),1)])])])])):cA(g)&&I.value?(H(),_("div",dd,[B("div",pd,[B("div",md,[B("div",yd,[F[1]||(F[1]=B("div",{class:"w-5 h-5 bg-green-500 rounded-full flex items-center justify-center mr-2"},[B("svg",{class:"w-3 h-3 text-white",fill:"currentColor",viewBox:"0 0 20 20"},[B("path",{"fill-rule":"evenodd",d:"M16.707 5.293a1 1 0 010 1.414l-8 8a1 1 0 01-1.414 0l-4-4a1 1 0 011.414-1.414L8 12.586l7.293-7.293a1 1 0 011.414 0z","clip-rule":"evenodd"})])],-1)),B("h3",wd,v(w.$t("chipConfig.autoLoadedTitle")),1)])]),B("div",Dd,[B("div",kd,[B("label",vd,v(w.$t("chipConfig.chipModel")),1),B("div",Fd,v(E.value),1)]),B("div",Sd,[B("label",bd,v(w.$t("chipConfig.screenWidth")),1),B("div",Rd,v(p.value.width)+" px",1)]),B("div",Nd,[B("label",Gd,v(w.$t("chipConfig.screenHeight")),1),B("div",Ld,v(p.value.height)+" px",1)])]),B("div",Ud," ✓ "+v(w.$t("chipConfig.colorFormat"))+" "+v(p.value.color),1)]),B("div",Md,[B("button",{onClick:c,class:"flex items-center text-sm text-gray-600 hover:text-gray-900"},[F[2]||(F[2]=B("svg",{class:"w-4 h-4 mr-2",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[B("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"}),B("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M15 12a3 3 0 11-6 0 3 3 0 016 0z"})],-1)),st(" "+v(C.value?w.$t("chipConfig.collapseManual"):w.$t("chipConfig.manualEdit")),1)]),C.value?(H(),_("div",xd,[YA(o,{config:Q.value},null,8,["config"])])):aA("",!0)])])):(H(),_("div",Jd,[B("div",Td,[B("div",Hd,[F[3]||(F[3]=B("svg",{class:"w-5 h-5 text-yellow-600 mr-3 flex-shrink-0 mt-0.5",fill:"currentColor",viewBox:"0 0 20 20"},[B("path",{"fill-rule":"evenodd",d:"M8.257 3.099c.765-1.36 2.722-1.36 3.486 0l5.58 9.92c.75 1.334-.213 2.98-1.742 2.98H4.42c-1.53 0-2.493-1.646-1.743-2.98l5.58-9.92zM11 13a1 1 0 11-2 0 1 1 0 012 0zm-1-8a1 1 0 00-1 1v3a1 1 0 002 0V6a1 1 0 00-1-1z","clip-rule":"evenodd"})],-1)),B("div",null,[B("h4",Yd,v(w.$t("chipConfig.manualConfigDesc")),1),B("p",_d,v(l.value||w.$t("chipConfig.manualConfigHint")),1)])])]),B("div",Kd,[B("h3",Pd,v(w.$t("chipConfig.manualConfigTitle")),1),YA(o,{config:Q.value,"show-required":!0},null,8,["config"])])])),B("div",Od,[B("button",{onClick:d,disabled:!h.value,class:"bg-primary-500 hover:bg-primary-600 disabled:bg-gray-300 text-white px-6 py-2 rounded-lg font-medium transition-colors"},v(w.$t("chipConfig.next")),9,Vd)])]))}},qd={class:"space-y-6"},jd={class:"text-lg font-medium text-gray-900 mb-2"},Zd={class:"text-gray-600"},Xd={key:0,class:"bg-orange-50 border border-orange-200 rounded-lg p-4"},zd={class:"text-sm text-orange-800"},$d={class:"mt-1"},A0={key:1,class:"space-y-6"},e0={class:"flex space-x-4"},t0={key:0,class:"space-y-4"},i0={class:"block text-sm font-medium text-gray-700"},n0={class:"relative"},o0=["value"],r0=["value"],g0={key:1,class:"space-y-4 bg-gray-50 p-4 rounded-lg border border-gray-200"},s0={class:"font-medium text-gray-900"},a0={class:"grid grid-cols-1 md:grid-cols-2 gap-4"},I0={class:"block text-sm font-medium text-gray-700 mb-1"},C0=["placeholder"],l0={key:0,class:"text-xs text-red-500 mt-1"},B0={class:"block text-sm font-medium text-gray-700 mb-1"},Q0=["placeholder"],c0={key:0,class:"text-xs text-red-500 mt-1"},E0={class:"grid grid-cols-1 md:grid-cols-3 gap-4"},u0={class:"block text-sm font-medium text-gray-700 mb-1"},h0={class:"flex items-center space-x-2"},f0={class:"text-sm text-gray-600 w-8"},d0={class:"text-xs text-gray-500 mt-1"},p0={class:"block text-sm font-medium text-gray-700 mb-1"},m0={key:0,class:"text-xs text-red-500 mt-1"},y0={class:"block text-sm font-medium text-gray-700 mb-1"},w0={value:"mn6_cn"},D0={value:"mn6_en"},k0={class:"bg-blue-50 border border-blue-200 rounded-lg p-3"},v0={class:"text-sm text-blue-800"},F0={class:"mt-1 list-disc list-inside space-y-1"},S0={key:0},b0={key:1},R0={key:2},N0={__name:"WakewordConfig",props:{modelValue:{type:Object,required:!0},chipModel:{type:String,required:!0}},emits:["update:modelValue"],setup(A,{emit:e}){const{t}=Fe(),i=A,n=e,o=[{id:"wn9s_hilexin",name:"Hi,乐鑫",model:"WakeNet9s"},{id:"wn9s_hiesp",name:"Hi,ESP",model:"WakeNet9s"},{id:"wn9s_nihaoxiaozhi",name:"你好小智",model:"WakeNet9s"},{id:"wn9s_hijason",name:"Hi,Jason",model:"WakeNet9s"},{id:"wn9s_alexa",name:"Alexa",model:"WakeNet9s"},{id:"wn9_hilexin",name:"Hi,乐鑫",model:"WakeNet9"},{id:"wn9_hiesp",name:"Hi,ESP",model:"WakeNet9"},{id:"wn9_nihaoxiaozhi_tts",name:"你好小智",model:"WakeNet9"},{id:"wn9_hijason_tts2",name:"Hi,Jason",model:"WakeNet9"},{id:"wn9_nihaomiaoban_tts2",name:"你好喵伴",model:"WakeNet9"},{id:"wn9_xiaoaitongxue",name:"小爱同学",model:"WakeNet9"},{id:"wn9_himfive",name:"Hi,M Five",model:"WakeNet9"},{id:"wn9_alexa",name:"Alexa",model:"WakeNet9"},{id:"wn9_jarvis_tts",name:"Jarvis",model:"WakeNet9"},{id:"wn9_computer_tts",name:"Computer",model:"WakeNet9"},{id:"wn9_heywillow_tts",name:"Hey,Willow",model:"WakeNet9"},{id:"wn9_sophia_tts",name:"Sophia",model:"WakeNet9"},{id:"wn9_mycroft_tts",name:"Mycroft",model:"WakeNet9"},{id:"wn9_heyprinter_tts",name:"Hey,Printer",model:"WakeNet9"},{id:"wn9_hijoy_tts",name:"Hi,Joy",model:"WakeNet9"},{id:"wn9_heywanda_tts",name:"Hey,Wand",model:"WakeNet9"},{id:"wn9_astrolabe_tts",name:"Astrolabe",model:"WakeNet9"},{id:"wn9_heyily_tts2",name:"Hey,Ily",model:"WakeNet9"},{id:"wn9_hijolly_tts2",name:"Hi,Jolly",model:"WakeNet9"},{id:"wn9_hifairy_tts2",name:"Hi,Fairy",model:"WakeNet9"},{id:"wn9_bluechip_tts2",name:"Blue Chip",model:"WakeNet9"},{id:"wn9_hiandy_tts2",name:"Hi,Andy",model:"WakeNet9"},{id:"wn9_heyivy_tts2",name:"Hey,Ivy",model:"WakeNet9"},{id:"wn9_hiwalle_tts2",name:"Hi,Wall E",model:"WakeNet9"},{id:"wn9_nihaoxiaoxin_tts",name:"你好小鑫",model:"WakeNet9"},{id:"wn9_xiaomeitongxue_tts",name:"小美同学",model:"WakeNet9"},{id:"wn9_hixiaoxing_tts",name:"Hi,小星",model:"WakeNet9"},{id:"wn9_xiaolongxiaolong_tts",name:"小龙小龙",model:"WakeNet9"},{id:"wn9_miaomiaotongxue_tts",name:"喵喵同学",model:"WakeNet9"},{id:"wn9_himiaomiao_tts",name:"Hi,喵喵",model:"WakeNet9"},{id:"wn9_hilili_tts",name:"Hi,Lily",model:"WakeNet9"},{id:"wn9_hitelly_tts",name:"Hi,Telly",model:"WakeNet9"},{id:"wn9_xiaobinxiaobin_tts",name:"小滨小滨",model:"WakeNet9"},{id:"wn9_haixiaowu_tts",name:"Hi,小巫",model:"WakeNet9"},{id:"wn9_xiaoyaxiaoya_tts2",name:"小鸭小鸭",model:"WakeNet9"},{id:"wn9_linaiban_tts2",name:"璃奈板",model:"WakeNet9"},{id:"wn9_xiaosurou_tts2",name:"小酥肉",model:"WakeNet9"},{id:"wn9_xiaoyutongxue_tts2",name:"小宇同学",model:"WakeNet9"},{id:"wn9_xiaomingtongxue_tts2",name:"小明同学",model:"WakeNet9"},{id:"wn9_xiaokangtongxue_tts2",name:"小康同学",model:"WakeNet9"},{id:"wn9_xiaojianxiaojian_tts2",name:"小箭小箭",model:"WakeNet9"},{id:"wn9_xiaotexiaote_tts2",name:"小特小特",model:"WakeNet9"},{id:"wn9_nihaoxiaoyi_tts2",name:"你好小益",model:"WakeNet9"},{id:"wn9_nihaobaiying_tts2",name:"你好百应",model:"WakeNet9"},{id:"wn9_xiaoluxiaolu_tts2",name:"小鹿小鹿",model:"WakeNet9"},{id:"wn9_nihaodongdong_tts2",name:"你好东东",model:"WakeNet9"},{id:"wn9_nihaoxiaoan_tts2",name:"你好小安",model:"WakeNet9"},{id:"wn9_ni3hao3xiao3mai4_tts2",name:"你好小脉",model:"WakeNet9"},{id:"wn9_ni3hao3xiao3rui4_tts3",name:"你好小瑞",model:"WakeNet9"},{id:"wn9_hai1xiao3ou1_tts3",name:"嗨小欧",model:"WakeNet9"}],r=fA(()=>{const E=i.chipModel.toLowerCase();return E==="esp32s3"||E==="esp32p4"}),g=fA(()=>{const E=i.chipModel.toLowerCase();return E==="esp32c3"||E==="esp32c5"||E==="esp32c6"}),s=fA(()=>i.chipModel.toLowerCase()==="esp32s3"),a=fA(()=>r.value||g.value),I=fA(()=>r.value?o.filter(E=>E.model==="WakeNet9"):g.value?o.filter(E=>E.model==="WakeNet9s"):[]),l=uA({name:"",command:"",threshold:20,duration:3e3,model:"mn6_cn"}),C=uA({name:"",command:"",duration:""}),Q=()=>{let E=!0;return C.value={name:"",command:"",duration:""},l.value.name.trim()||(C.value.name=t("wakewordConfig.errors.nameRequired"),E=!1),l.value.command.trim()?l.value.model.includes("_en")&&/[!,.?]/.test(l.value.command)&&(C.value.command=t("wakewordConfig.errors.noPunctuation"),E=!1):(C.value.command=t("wakewordConfig.errors.commandRequired"),E=!1),(!l.value.duration||l.value.duration<500||l.value.duration>1e4)&&(C.value.duration=t("wakewordConfig.errors.durationRange"),E=!1),E},u=uA(!1),f=E=>{var p;n("update:modelValue",{...i.modelValue,type:E,preset:E==="preset"&&(i.modelValue.preset||((p=I.value[0])==null?void 0:p.id))||"",custom:{...i.modelValue.custom,...l.value}})},h=E=>{n("update:modelValue",{...i.modelValue,preset:E})};return Ie(l,E=>{u.value||i.modelValue.type==="custom"&&(Q(),n("update:modelValue",{...i.modelValue,custom:{...E}}))},{deep:!0}),Ie(()=>i.modelValue.custom,E=>{E&&(u.value=!0,l.value={name:E.name||"",command:E.command||"",threshold:E.threshold!==void 0?E.threshold:20,duration:E.duration!==void 0?E.duration:3e3,model:E.model||"mn6_cn"},hn(()=>{u.value=!1}))},{deep:!0,immediate:!0}),(E,p)=>(H(),_("div",qd,[B("div",null,[B("h3",jd,v(E.$t("wakewordConfig.title")),1),B("p",Zd,v(E.$t("wakewordConfig.description")),1)]),a.value?(H(),_("div",A0,[B("div",e0,[B("button",{onClick:p[0]||(p[0]=c=>f("none")),class:vA(["px-4 py-2 border rounded-lg transition-colors",A.modelValue.type==="none"?"border-primary-500 bg-primary-50 text-primary-700":"border-gray-300 hover:border-gray-400"])},v(E.$t("wakewordConfig.noWakeword")),3),B("button",{onClick:p[1]||(p[1]=c=>f("preset")),class:vA(["px-4 py-2 border rounded-lg transition-colors",A.modelValue.type==="preset"?"border-primary-500 bg-primary-50 text-primary-700":"border-gray-300 hover:border-gray-400"])},v(E.$t("wakewordConfig.presetWakeword")),3),s.value?(H(),_("button",{key:0,onClick:p[2]||(p[2]=c=>f("custom")),class:vA(["px-4 py-2 border rounded-lg transition-colors",A.modelValue.type==="custom"?"border-primary-500 bg-primary-50 text-primary-700":"border-gray-300 hover:border-gray-400"])},v(E.$t("wakewordConfig.customWakeword")),3)):aA("",!0)]),A.modelValue.type==="preset"?(H(),_("div",t0,[B("label",i0,v(E.$t("wakewordConfig.selectWakeword")),1),B("div",n0,[B("select",{value:A.modelValue.preset,onChange:p[3]||(p[3]=c=>h(c.target.value)),class:"w-full border border-gray-300 rounded-md px-3 py-2 pr-10 bg-white focus:outline-none focus:ring-2 focus:ring-primary-500 focus:border-primary-500"},[(H(!0),_(ZA,null,Pe(I.value,c=>(H(),_("option",{key:c.id,value:c.id},v(c.name)+" ("+v(c.model)+") ",9,r0))),128))],40,o0)])])):aA("",!0),A.modelValue.type==="custom"?(H(),_("div",g0,[B("h4",s0,v(E.$t("wakewordConfig.customSettings")),1),B("div",a0,[B("div",null,[B("label",I0,[st(v(E.$t("wakewordConfig.wakewordName"))+" ",1),p[9]||(p[9]=B("span",{class:"text-red-500"},"*",-1))]),zA(B("input",{type:"text","onUpdate:modelValue":p[4]||(p[4]=c=>l.value.name=c),placeholder:E.$t("wakewordConfig.wakewordNamePlaceholder"),class:vA(["w-full border border-gray-300 rounded-md px-3 py-2 focus:outline-none focus:ring-2 focus:ring-primary-500",{"border-red-500":C.value.name}])},null,10,C0),[[ne,l.value.name]]),C.value.name?(H(),_("p",l0,v(C.value.name),1)):aA("",!0)]),B("div",null,[B("label",B0,[st(v(E.$t("wakewordConfig.wakewordCommand"))+" ",1),p[10]||(p[10]=B("span",{class:"text-red-500"},"*",-1))]),zA(B("input",{type:"text","onUpdate:modelValue":p[5]||(p[5]=c=>l.value.command=c),placeholder:l.value.model.includes("_cn")?E.$t("wakewordConfig.wakewordCommandPlaceholderCN"):E.$t("wakewordConfig.wakewordCommandPlaceholderEN"),class:vA(["w-full border border-gray-300 rounded-md px-3 py-2 focus:outline-none focus:ring-2 focus:ring-primary-500",{"border-red-500":C.value.command}])},null,10,Q0),[[ne,l.value.command]]),C.value.command?(H(),_("p",c0,v(C.value.command),1)):aA("",!0)])]),B("div",E0,[B("div",null,[B("label",u0,v(E.$t("wakewordConfig.threshold")),1),B("div",h0,[zA(B("input",{type:"range","onUpdate:modelValue":p[6]||(p[6]=c=>l.value.threshold=c),min:"0",max:"100",step:"1",class:"flex-1"},null,512),[[ne,l.value.threshold,void 0,{number:!0}]]),B("span",f0,v(l.value.threshold),1)]),B("p",d0,v(E.$t("wakewordConfig.thresholdDesc")),1)]),B("div",null,[B("label",p0,v(E.$t("wakewordConfig.duration"))+" (ms) ",1),zA(B("input",{type:"number","onUpdate:modelValue":p[7]||(p[7]=c=>l.value.duration=c),min:"500",max:"10000",step:"100",class:vA(["w-full border border-gray-300 rounded-md px-3 py-2 focus:outline-none focus:ring-2 focus:ring-primary-500",{"border-red-500":C.value.duration}])},null,2),[[ne,l.value.duration,void 0,{number:!0}]]),C.value.duration?(H(),_("p",m0,v(C.value.duration),1)):aA("",!0)]),B("div",null,[B("label",y0,v(E.$t("wakewordConfig.selectModel")),1),zA(B("select",{"onUpdate:modelValue":p[8]||(p[8]=c=>l.value.model=c),class:"w-full border border-gray-300 rounded-md px-3 py-2 focus:outline-none focus:ring-2 focus:ring-primary-500"},[B("option",w0,v(E.$t("wakewordConfig.mn6cn")),1),B("option",D0,v(E.$t("wakewordConfig.mn6en")),1)],512),[[pr,l.value.model]])])])])):aA("",!0),B("div",k0,[B("div",v0,[B("strong",null,v(E.$t("wakewordConfig.tips.tipLabel")),1),B("ul",F0,[B("li",null,v(E.$t("wakewordConfig.tips.optional")),1),g.value?(H(),_("li",S0,v(E.$t("wakewordConfig.tips.wakeNet9sOnly")),1)):r.value?(H(),_("li",b0,v(E.$t("wakewordConfig.tips.wakeNet9Full")),1)):aA("",!0),s.value?(H(),_("li",R0,v(E.$t("wakewordConfig.tips.customSupport")),1)):aA("",!0)])])])])):(H(),_("div",Xd,[B("div",zd,[B("strong",null,v(E.$t("wakewordConfig.notice")),1),B("p",$d,v(E.$t("wakewordConfig.unsupportedMessage",{chipModel:A.chipModel})),1)])]))]))}};class G0{constructor(){this.dbName="XiaozhiConfigDB",this.version=1,this.db=null,this.initialized=!1}async initialize(){if(!(this.initialized&&this.db))return new Promise((e,t)=>{const i=indexedDB.open(this.dbName,this.version);i.onerror=()=>{console.error("IndexedDB 初始化失败:",i.error),t(i.error)},i.onsuccess=()=>{this.db=i.result,this.initialized=!0,console.log("IndexedDB 初始化成功"),e()},i.onupgradeneeded=n=>{const o=n.target.result;if(o.objectStoreNames.contains("configs")||o.createObjectStore("configs",{keyPath:"key"}).createIndex("timestamp","timestamp",{unique:!1}),!o.objectStoreNames.contains("files")){const r=o.createObjectStore("files",{keyPath:"id"});r.createIndex("type","type",{unique:!1}),r.createIndex("timestamp","timestamp",{unique:!1})}if(!o.objectStoreNames.contains("temp_data")){const r=o.createObjectStore("temp_data",{keyPath:"key"});r.createIndex("type","type",{unique:!1}),r.createIndex("timestamp","timestamp",{unique:!1})}console.log("IndexedDB 表结构创建完成")}})}async saveConfig(e){this.initialized||await this.initialize();const i={key:"current_config",config:this.sanitizeConfigForStorage(e),timestamp:Date.now()};return new Promise((n,o)=>{const s=this.db.transaction(["configs"],"readwrite").objectStore("configs").put(i);s.onerror=()=>{console.error("保存配置失败:",s.error),o(s.error)},s.onsuccess=()=>{console.log("配置已保存到 IndexedDB"),n()}})}sanitizeConfigForStorage(e){var i,n,o,r,g,s,a,I,l,C;const t=JSON.parse(JSON.stringify(e||{}));try{if((n=(i=t==null?void 0:t.theme)==null?void 0:i.font)!=null&&n.custom&&(t.theme.font.custom.file=null),((r=(o=t==null?void 0:t.theme)==null?void 0:o.emoji)==null?void 0:r.type)==="custom"){t.theme.emoji.custom||(t.theme.emoji.custom={});const Q=((s=(g=t.theme.emoji)==null?void 0:g.custom)==null?void 0:s.images)||{},u={};if(Object.keys(Q).forEach(f=>{u[f]=null}),t.theme.emoji.custom.images=u,t.theme.emoji.custom.emotionMap,t.theme.emoji.custom.fileMap){const f=t.theme.emoji.custom.fileMap,h={};Object.keys(f).forEach(E=>{h[E]=null}),t.theme.emoji.custom.fileMap=h}}(I=(a=t==null?void 0:t.theme)==null?void 0:a.skin)!=null&&I.light&&(t.theme.skin.light.backgroundImage=null),(C=(l=t==null?void 0:t.theme)==null?void 0:l.skin)!=null&&C.dark&&(t.theme.skin.dark.backgroundImage=null)}catch{}return t}async loadConfig(){return this.initialized||await this.initialize(),new Promise((e,t)=>{const o=this.db.transaction(["configs"],"readonly").objectStore("configs").get("current_config");o.onerror=()=>{console.error("加载配置失败:",o.error),t(o.error)},o.onsuccess=()=>{const r=o.result;r?(console.log("从 IndexedDB 恢复配置成功"),e({config:r.config,timestamp:r.timestamp})):e(null)}})}async saveFile(e,t,i,n={}){this.initialized||await this.initialize();const o=await this.fileToArrayBuffer(t);let r={};try{r=n?JSON.parse(JSON.stringify(n)):{}}catch{r={...n}}const g={id:e,type:i,name:t.name,size:t.size,mimeType:t.type,lastModified:t.lastModified,data:o,metadata:r,timestamp:Date.now()};return new Promise((s,a)=>{const C=this.db.transaction(["files"],"readwrite").objectStore("files").put(g);C.onerror=()=>{console.error("保存文件失败:",C.error),a(C.error)},C.onsuccess=()=>{console.log(`文件 ${t.name} 已保存到 IndexedDB`),s()}})}async loadFile(e){return this.initialized||await this.initialize(),new Promise((t,i)=>{const r=this.db.transaction(["files"],"readonly").objectStore("files").get(e);r.onerror=()=>{console.error("加载文件失败:",r.error),i(r.error)},r.onsuccess=()=>{const g=r.result;if(g){const s=new Blob([g.data],{type:g.mimeType}),a=new File([s],g.name,{type:g.mimeType,lastModified:g.lastModified});a.storedId=g.id,a.storedType=g.type,a.storedMetadata=g.metadata,a.storedTimestamp=g.timestamp,console.log(`文件 ${g.name} 从 IndexedDB 恢复成功`),t(a)}else t(null)}})}async getFilesByType(e){return this.initialized||await this.initialize(),new Promise((t,i)=>{const g=this.db.transaction(["files"],"readonly").objectStore("files").index("type").getAll(e);g.onerror=()=>{console.error("获取文件列表失败:",g.error),i(g.error)},g.onsuccess=()=>{const a=(g.result||[]).map(I=>{const l=new Blob([I.data],{type:I.mimeType}),C=new File([l],I.name,{type:I.mimeType,lastModified:I.lastModified});return C.storedId=I.id,C.storedType=I.type,C.storedMetadata=I.metadata,C.storedTimestamp=I.timestamp,C});t(a)}})}async saveTempData(e,t,i,n={}){this.initialized||await this.initialize();const o={key:e,type:i,data:t,metadata:n,timestamp:Date.now()};return new Promise((r,g)=>{const I=this.db.transaction(["temp_data"],"readwrite").objectStore("temp_data").put(o);I.onerror=()=>{console.error("保存临时数据失败:",I.error),g(I.error)},I.onsuccess=()=>{console.log(`临时数据 ${e} 已保存`),r()}})}async loadTempData(e){return this.initialized||await this.initialize(),new Promise((t,i)=>{const r=this.db.transaction(["temp_data"],"readonly").objectStore("temp_data").get(e);r.onerror=()=>{console.error("加载临时数据失败:",r.error),i(r.error)},r.onsuccess=()=>{const g=r.result;t(g||null)}})}async clearAll(){this.initialized||await this.initialize();const e=["configs","files","temp_data"];return new Promise((t,i)=>{const n=this.db.transaction(e,"readwrite");let o=0,r=!1;const g=()=>{o++,o===e.length&&(r?i(new Error("清空部分数据时出现错误")):(console.log("所有存储数据已清空"),t()))};e.forEach(s=>{const I=n.objectStore(s).clear();I.onerror=()=>{console.error(`清空 ${s} 失败:`,I.error),r=!0,g()},I.onsuccess=()=>{console.log(`${s} 已清空`),g()}})})}async deleteFile(e){return this.initialized||await this.initialize(),new Promise((t,i)=>{const r=this.db.transaction(["files"],"readwrite").objectStore("files").delete(e);r.onerror=()=>{console.error("删除文件失败:",r.error),i(r.error)},r.onsuccess=()=>{console.log(`文件 ${e} 已删除`),t()}})}async getStorageInfo(){this.initialized||await this.initialize();const e=["configs","files","temp_data"],t={};for(const n of e){const o=await new Promise((r,g)=>{const I=this.db.transaction([n],"readonly").objectStore(n).count();I.onerror=()=>g(I.error),I.onsuccess=()=>r(I.result)});t[n]={count:o}}const i=await this.loadConfig();return t.lastSaved=i?new Date(i.timestamp):null,t}async hasStoredConfig(){try{return await this.loadConfig()!==null}catch(e){return console.error("检查存储配置时出错:",e),!1}}fileToArrayBuffer(e){return new Promise((t,i)=>{const n=new FileReader;n.onload=()=>t(n.result),n.onerror=()=>i(new Error("读取文件失败")),n.readAsArrayBuffer(e)})}close(){this.db&&(this.db.close(),this.db=null,this.initialized=!1,console.log("IndexedDB 连接已关闭"))}}const ce=new G0;class Ri{static async saveFontFile(e,t={}){if(e){const i="custom_font";try{await ce.saveFile(i,e,"font",{size:t.size||20,bpp:t.bpp||4,charset:t.charset||"deepseek"}),console.log(`字体文件已保存: ${e.name}`)}catch(n){console.warn(`保存字体文件失败: ${e.name}`,n)}}}static async saveEmojiFile(e,t,i={}){var n,o;if(t&&e){const r=e.startsWith("hash_")?e:`emoji_${e}`;try{const g=((n=i==null?void 0:i.size)==null?void 0:n.width)??64,s=((o=i==null?void 0:i.size)==null?void 0:o.height)??64;await ce.saveFile(r,t,"emoji",{name:e,size:{width:g,height:s},format:i==null?void 0:i.format,emotions:i==null?void 0:i.emotions}),console.log(`表情文件已保存: ${r} - ${t.name}`)}catch(g){console.warn(`保存表情文件失败: ${e}`,g)}}}static async saveBackgroundFile(e,t,i={}){if(t&&e){const n=`background_${e}`;try{let o={};try{o=i?JSON.parse(JSON.stringify(i)):{}}catch{o={...i}}await ce.saveFile(n,t,"background",{mode:e,...o}),console.log(`背景文件已保存: ${e} - ${t.name}`)}catch(o){console.warn(`保存背景文件失败: ${e}`,o)}}}static async restoreFontFile(){try{return await ce.loadFile("custom_font")}catch(e){return console.warn("恢复字体文件失败:",e),null}}static async restoreEmojiFile(e){if(!e)return null;try{const t=e.startsWith("hash_")?e:`emoji_${e}`;return await ce.loadFile(t)}catch(t){return console.warn(`恢复表情文件失败: ${e}`,t),null}}static async restoreBackgroundFile(e){if(!e)return null;try{const t=`background_${e}`;return await ce.loadFile(t)}catch(t){return console.warn(`恢复背景文件失败: ${e}`,t),null}}static async deleteFontFile(){try{await ce.deleteFile("custom_font"),console.log("字体文件已删除")}catch(e){console.warn("删除字体文件失败:",e)}}static async deleteEmojiFile(e){if(e)try{const t=e.startsWith("hash_")?e:`emoji_${e}`;await ce.deleteFile(t),console.log(`表情文件已删除: ${t}`)}catch(t){console.warn(`删除表情文件失败: ${e}`,t)}}static async deleteBackgroundFile(e){if(e)try{const t=`background_${e}`;await ce.deleteFile(t),console.log(`背景文件已删除: ${e}`)}catch(t){console.warn(`删除背景文件失败: ${e}`,t)}}static async getStorageInfo(){try{return await ce.getStorageInfo()}catch(e){return console.warn("获取存储信息失败:",e),{configs:{count:0},files:{count:0},temp_data:{count:0},lastSaved:null}}}static async clearAllFiles(){try{await ce.clearAll(),console.log("所有存储文件已清理")}catch(e){throw console.warn("清理存储文件失败:",e),e}}}const L0={class:"space-y-6"},U0={class:"text-lg font-medium text-gray-900 mb-2"},M0={class:"text-gray-600"},x0={class:"space-y-4"},J0={class:"flex space-x-4"},T0={key:0,class:"space-y-4"},H0={class:"bg-gray-50 border border-gray-200 rounded-lg p-6 text-center"},Y0={class:"mt-2 text-gray-600"},_0={key:1,class:"space-y-4"},K0={class:"font-medium text-gray-900"},P0={class:"grid grid-cols-1 md:grid-cols-4 gap-4"},O0=["onClick"],V0={class:"flex items-start justify-between"},W0={class:"flex-1"},q0={class:"font-medium text-gray-900 mb-1"},j0={class:"text-sm text-gray-600 space-y-1"},Z0={key:0,class:"flex-shrink-0 ml-3"},X0={key:2,class:"space-y-6"},z0={class:"font-medium text-gray-900"},$0={class:"space-y-2"},Ap={class:"block text-sm font-medium text-gray-700"},ep={key:0},tp={class:"mt-2"},ip={class:"text-gray-500"},np={class:"text-xs text-gray-400 mt-1"},op={key:1,class:"text-green-600"},rp={class:"mt-1 font-medium"},gp={key:0,class:"grid grid-cols-1 md:grid-cols-3 gap-4"},sp={class:"block text-sm font-medium text-gray-700 mb-2"},ap={class:"text-xs text-gray-500 mt-1"},Ip={class:"block text-sm font-medium text-gray-700 mb-2"},Cp={value:1},lp={value:2},Bp={value:4},Qp={class:"block text-sm font-medium text-gray-700 mb-2"},cp={value:"qwen"},Ep={value:"deepseek"},up={value:"gb2312"},hp={value:"latin"},fp={value:"full"},dp={class:"flex items-center justify-between p-4 bg-gray-50 rounded-lg border border-gray-200"},pp={class:"flex-1"},mp={class:"font-medium text-gray-900"},yp={class:"text-sm text-gray-500 mt-1"},wp={class:"ml-4"},Dp={class:"relative inline-flex items-center cursor-pointer"},kp=["checked"],vp={__name:"FontConfig",props:{modelValue:{type:Object,required:!0}},emits:["update:modelValue"],setup(A,{emit:e}){const{t}=Fe(),i=A,n=e,o=uA(null),r=[{id:"font_puhui_deepseek_14_1",size:14,bpp:1,fileSize:"~180KB"},{id:"font_puhui_deepseek_16_4",size:16,bpp:4,fileSize:"~720KB"},{id:"font_puhui_deepseek_20_4",size:20,bpp:4,fileSize:"~1.1MB"},{id:"font_puhui_deepseek_30_4",size:30,bpp:4,fileSize:"~2.5MB"},{id:"font_noto_qwen_14_1",size:14,bpp:1,fileSize:"~626KB"},{id:"font_noto_qwen_16_4",size:16,bpp:4,fileSize:"~2.0MB"},{id:"font_noto_qwen_20_4",size:20,bpp:4,fileSize:"~2.9MB"},{id:"font_noto_qwen_30_4",size:30,bpp:4,fileSize:"~5.8MB"}],g=fA(()=>r.map(h=>{let E;return h.id.startsWith("font_puhui_deepseek_")?E=t("fontConfig.charsetDeepseek"):h.id.startsWith("font_noto_qwen_")&&(E=t("fontConfig.charsetQwen")),{...h,name:t("fontConfig.presetFontNames."+h.id),charset:E}})),s=uA({size:20,bpp:4,charset:"qwen"}),a=h=>{n("update:modelValue",{...i.modelValue,type:h,preset:h==="preset"?i.modelValue.preset||"font_puhui_deepseek_20_4":"",custom:{...i.modelValue.custom,file:i.modelValue.custom.file||null}})},I=h=>{n("update:modelValue",{...i.modelValue,preset:h,custom:{...i.modelValue.custom,file:i.modelValue.custom.file||null}})},l=h=>{const E=h.target.files[0];E&&Q(E)},C=h=>{h.preventDefault();const E=h.dataTransfer.files;E.length>0&&Q(E[0])},Q=async h=>{h&&(h.type.includes("font")||h.name.toLowerCase().match(/\.(ttf|woff|woff2)$/))?(n("update:modelValue",{...i.modelValue,custom:{...i.modelValue.custom,file:h,...s.value}}),await Ri.saveFontFile(h,s.value)):alert(t("fontConfig.selectValidFontFile"))},u=async()=>{n("update:modelValue",{...i.modelValue,custom:{...i.modelValue.custom,file:null}}),o.value&&(o.value.value=""),await Ri.deleteFontFile()},f=uA(!1);return Ie(()=>s.value,h=>{f.value||i.modelValue.type==="custom"&&i.modelValue.custom.file&&n("update:modelValue",{...i.modelValue,custom:{...i.modelValue.custom,...h}})},{deep:!0}),Ie(()=>i.modelValue.custom,h=>{h.size&&h.bpp&&h.charset&&(f.value=!0,s.value={size:h.size,bpp:h.bpp,charset:h.charset},hn(()=>{f.value=!1}))},{deep:!0,immediate:!0}),(h,E)=>{var p;return H(),_("div",L0,[B("div",null,[B("h3",U0,v(h.$t("fontConfig.title")),1),B("p",M0,v(h.$t("fontConfig.description")),1)]),B("div",x0,[B("div",J0,[B("button",{onClick:E[0]||(E[0]=c=>a("none")),class:vA(["px-4 py-2 border rounded-lg transition-colors",A.modelValue.type==="none"?"border-primary-500 bg-primary-50 text-primary-700":"border-gray-300 hover:border-gray-400"])},v(h.$t("fontConfig.noFonts")),3),B("button",{onClick:E[1]||(E[1]=c=>a("preset")),class:vA(["px-4 py-2 border rounded-lg transition-colors",A.modelValue.type==="preset"?"border-primary-500 bg-primary-50 text-primary-700":"border-gray-300 hover:border-gray-400"])},v(h.$t("fontConfig.presetFonts")),3),B("button",{onClick:E[2]||(E[2]=c=>a("custom")),class:vA(["px-4 py-2 border rounded-lg transition-colors",A.modelValue.type==="custom"?"border-primary-500 bg-primary-50 text-primary-700":"border-gray-300 hover:border-gray-400"])},v(h.$t("fontConfig.customFonts")),3)])]),A.modelValue.type==="none"?(H(),_("div",T0,[B("div",H0,[E[10]||(E[10]=B("svg",{class:"mx-auto h-12 w-12 text-gray-400",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor"},[B("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M6 18L18 6M6 6l12 12"})],-1)),B("p",Y0,v(h.$t("fontConfig.noFontsDescription")),1)])])):aA("",!0),A.modelValue.type==="preset"?(H(),_("div",_0,[B("h4",K0,v(h.$t("fontConfig.presetFonts")),1),B("div",P0,[(H(!0),_(ZA,null,Pe(g.value,c=>(H(),_("div",{key:c.id,onClick:d=>I(c.id),class:vA(["border-2 rounded-lg p-4 cursor-pointer transition-all",A.modelValue.preset===c.id?"border-primary-500 bg-primary-50":"border-gray-200 hover:border-gray-300"])},[B("div",V0,[B("div",W0,[B("h5",q0,v(c.name),1),B("div",j0,[B("div",null,v(h.$t("fontConfig.fontSize"))+" "+v(c.size)+"px",1),B("div",null,v(h.$t("fontConfig.bitDepth"))+" "+v(c.bpp)+"bpp",1),B("div",null,v(h.$t("fontConfig.charset"))+" "+v(c.charset),1),B("div",null,v(h.$t("fontConfig.fileSize"))+" "+v(c.fileSize),1)])]),A.modelValue.preset===c.id?(H(),_("div",Z0,[...E[11]||(E[11]=[B("div",{class:"w-5 h-5 bg-primary-500 rounded-full flex items-center justify-center"},[B("svg",{class:"w-3 h-3 text-white",fill:"currentColor",viewBox:"0 0 20 20"},[B("path",{"fill-rule":"evenodd",d:"M16.707 5.293a1 1 0 010 1.414l-8 8a1 1 0 01-1.414 0l-4-4a1 1 0 011.414-1.414L8 12.586l7.293-7.293a1 1 0 011.414 0z","clip-rule":"evenodd"})])],-1)])])):aA("",!0)])],10,O0))),128))])])):aA("",!0),A.modelValue.type==="custom"?(H(),_("div",X0,[B("h4",z0,v(h.$t("fontConfig.customFonts")),1),B("div",$0,[B("label",Ap,v(h.$t("fontConfig.fontFile")),1),B("div",{onDrop:C,onDragover:E[4]||(E[4]=pt(()=>{},["prevent"])),onDragenter:E[5]||(E[5]=pt(()=>{},["prevent"])),class:"border-2 border-dashed border-gray-300 rounded-lg p-6 text-center hover:border-gray-400 transition-colors"},[B("input",{ref_key:"fileInput",ref:o,type:"file",accept:".ttf,.woff,.woff2",onChange:l,class:"hidden"},null,544),A.modelValue.custom.file?(H(),_("div",op,[E[13]||(E[13]=B("svg",{class:"mx-auto h-8 w-8",fill:"currentColor",viewBox:"0 0 20 20"},[B("path",{"fill-rule":"evenodd",d:"M10 18a8 8 0 100-16 8 8 0 000 16zm3.707-9.293a1 1 0 00-1.414-1.414L9 10.586 7.707 9.293a1 1 0 00-1.414 1.414l2 2a1 1 0 001.414 0l4-4z","clip-rule":"evenodd"})],-1)),B("p",rp,v((p=A.modelValue.custom.file)==null?void 0:p.name),1),B("button",{onClick:u,class:"text-red-600 hover:text-red-500 text-sm mt-1"},v(h.$t("fontConfig.removeFile")),1)])):(H(),_("div",ep,[E[12]||(E[12]=B("svg",{class:"mx-auto h-12 w-12 text-gray-400",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor"},[B("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M7 16a4 4 0 01-.88-7.903A5 5 0 1115.9 6L16 6a5 5 0 011 9.9M15 13l-3-3m0 0l-3 3m3-3v12"})],-1)),B("div",tp,[B("button",{onClick:E[3]||(E[3]=c=>h.$refs.fileInput.click()),class:"text-primary-600 hover:text-primary-500 font-medium"},v(h.$t("fontConfig.clickSelectFontFile")),1),B("p",ip,v(h.$t("fontConfig.orDragFileHere")),1)]),B("p",np,v(h.$t("fontConfig.supportedFormats")),1)]))],32)]),A.modelValue.custom.file?(H(),_("div",gp,[B("div",null,[B("label",sp,v(h.$t("fontConfig.fontSizePx")),1),zA(B("input",{type:"number","onUpdate:modelValue":E[6]||(E[6]=c=>s.value.size=c),min:"8",max:"80",class:"w-full border border-gray-300 rounded-md px-3 py-2 focus:outline-none focus:ring-2 focus:ring-primary-500 focus:border-primary-500"},null,512),[[ne,s.value.size,void 0,{number:!0}]]),B("p",ap,v(h.$t("fontConfig.range"))+" 8-80px",1)]),B("div",null,[B("label",Ip,v(h.$t("fontConfig.bitDepthBpp")),1),zA(B("select",{"onUpdate:modelValue":E[7]||(E[7]=c=>s.value.bpp=c),class:"w-full border border-gray-300 rounded-md px-3 py-2 focus:outline-none focus:ring-2 focus:ring-primary-500 focus:border-primary-500"},[B("option",Cp,v(h.$t("fontConfig.monochrome")),1),B("option",lp,v(h.$t("fontConfig.fourColors")),1),B("option",Bp,v(h.$t("fontConfig.sixteenColors")),1)],512),[[pr,s.value.bpp]])]),B("div",null,[B("label",Qp,v(h.$t("fontConfig.characterSet")),1),zA(B("select",{"onUpdate:modelValue":E[8]||(E[8]=c=>s.value.charset=c),class:"w-full border border-gray-300 rounded-md px-3 py-2 focus:outline-none focus:ring-2 focus:ring-primary-500 focus:border-primary-500"},[B("option",cp,v(h.$t("fontConfig.qwen18409")),1),B("option",Ep,v(h.$t("fontConfig.deepseekR1")),1),B("option",up,v(h.$t("fontConfig.gb2312")),1),B("option",hp,v(h.$t("fontConfig.latin1")),1),B("option",fp,v(h.$t("fontConfig.fullCharset")),1)],512),[[pr,s.value.charset]])])])):aA("",!0)])):aA("",!0),B("div",dp,[B("div",pp,[B("h4",mp,v(h.$t("fontConfig.hideSubtitle")),1),B("p",yp,v(h.$t("fontConfig.hideSubtitleDescription")),1)]),B("div",wp,[B("label",Dp,[B("input",{type:"checkbox",checked:A.modelValue.hide_subtitle,onChange:E[9]||(E[9]=c=>n("update:modelValue",{...A.modelValue,hide_subtitle:c.target.checked})),class:"sr-only peer"},null,40,kp),E[14]||(E[14]=B("div",{class:"w-11 h-6 bg-gray-200 peer-focus:outline-none peer-focus:ring-4 peer-focus:ring-primary-300 rounded-full peer peer-checked:after:translate-x-full peer-checked:after:border-white after:content-[''] after:absolute after:top-[2px] after:left-[2px] after:bg-white after:border-gray-300 after:border after:rounded-full after:h-5 after:w-5 after:transition-all peer-checked:bg-primary-500"},null,-1))])])])])}}},Fp={class:"space-y-6"},Sp={class:"text-lg font-medium text-gray-900 mb-2"},bp={class:"text-gray-600"},Rp={class:"space-y-4"},Np={class:"flex flex-wrap gap-3"},Gp={key:0,class:"text-sm text-gray-500"},Lp={key:0,class:"space-y-4"},Up={class:"font-medium text-gray-900"},Mp={class:"grid grid-cols-1 md:grid-cols-2 gap-6"},xp=["onClick"],Jp={class:"flex items-start justify-between mb-3"},Tp={class:"font-medium text-gray-900"},Hp={class:"text-sm text-gray-600"},Yp={class:"text-xs text-gray-500 mt-1"},_p={key:0,class:"flex-shrink-0 ml-3"},Kp={class:"grid grid-cols-7 gap-1 justify-items-center"},Pp=["src","alt"],Op={key:1,class:"space-y-6"},Vp={class:"font-medium text-gray-900"},Wp={class:"grid grid-cols-1 md:grid-cols-2 gap-4"},qp={class:"block text-sm font-medium text-gray-700 mb-2"},jp={class:"block text-sm font-medium text-gray-700 mb-2"},Zp={class:"space-y-4"},Xp={class:"font-medium text-gray-900"},zp={class:"grid grid-cols-2 md:grid-cols-4 lg:grid-cols-7 gap-4"},$p={class:"text-center"},Am={class:"text-lg mb-1"},em={class:"text-xs text-gray-600 flex items-center justify-center gap-1"},tm={key:0,class:"text-red-500"},im=["onDrop"],nm=["onChange"],om=["onClick"],rm={class:"text-xs text-gray-500"},gm={key:1,class:"w-full h-full relative"},sm=["src","alt"],am=["onClick"],Im={class:"text-xs text-gray-500 mt-2"},Cm={__name:"EmojiConfig",props:{modelValue:{type:Object,required:!0}},emits:["update:modelValue"],setup(A,{emit:e}){const{t}=Fe(),i=A,n=e,o=async p=>{const c=await p.arrayBuffer(),d=await crypto.subtle.digest("SHA-256",c);return Array.from(new Uint8Array(d)).map(N=>N.toString(16).padStart(2,"0")).join("")},r=[{id:"twemoji32",name:t("emojiConfig.twitterEmojiName",{size:32}),description:t("emojiConfig.twitterEmojiDescription",{size:32}),size:32,preview:["neutral","happy","laughing","funny","sad","angry","crying"]},{id:"twemoji64",name:t("emojiConfig.twitterEmojiName",{size:64}),description:t("emojiConfig.twitterEmojiDescription",{size:64}),size:64,preview:["neutral","happy","laughing","funny","sad","angry","crying"]}],g=fA(()=>[{key:"neutral",name:t("emojiConfig.emotions.neutral"),emoji:"😶"},{key:"happy",name:t("emojiConfig.emotions.happy"),emoji:"🙂"},{key:"laughing",name:t("emojiConfig.emotions.laughing"),emoji:"😆"},{key:"funny",name:t("emojiConfig.emotions.funny"),emoji:"😂"},{key:"sad",name:t("emojiConfig.emotions.sad"),emoji:"😔"},{key:"angry",name:t("emojiConfig.emotions.angry"),emoji:"😠"},{key:"crying",name:t("emojiConfig.emotions.crying"),emoji:"😭"},{key:"loving",name:t("emojiConfig.emotions.loving"),emoji:"😍"},{key:"embarrassed",name:t("emojiConfig.emotions.embarrassed"),emoji:"😳"},{key:"surprised",name:t("emojiConfig.emotions.surprised"),emoji:"😯"},{key:"shocked",name:t("emojiConfig.emotions.shocked"),emoji:"😱"},{key:"thinking",name:t("emojiConfig.emotions.thinking"),emoji:"🤔"},{key:"winking",name:t("emojiConfig.emotions.winking"),emoji:"😉"},{key:"cool",name:t("emojiConfig.emotions.cool"),emoji:"😎"},{key:"relaxed",name:t("emojiConfig.emotions.relaxed"),emoji:"😌"},{key:"delicious",name:t("emojiConfig.emotions.delicious"),emoji:"🤤"},{key:"kissy",name:t("emojiConfig.emotions.kissy"),emoji:"😘"},{key:"confident",name:t("emojiConfig.emotions.confident"),emoji:"😏"},{key:"sleepy",name:t("emojiConfig.emotions.sleepy"),emoji:"😴"},{key:"silly",name:t("emojiConfig.emotions.silly"),emoji:"😜"},{key:"confused",name:t("emojiConfig.emotions.confused"),emoji:"🙄"}]),s=uA({size:{width:32,height:32}}),a=p=>{if(i.modelValue.type===p)return;const c={...i.modelValue,type:p};p==="none"?(c.preset="",c.custom={...i.modelValue.custom,images:i.modelValue.custom.images||{}}):p==="preset"?(c.preset=i.modelValue.preset||"twemoji32",c.custom={...i.modelValue.custom,images:i.modelValue.custom.images||{}}):p==="custom"&&(c.preset="",c.custom={...i.modelValue.custom,images:i.modelValue.custom.images||{}}),n("update:modelValue",c)},I=p=>{i.modelValue.preset!==p&&n("update:modelValue",{...i.modelValue,preset:p,custom:{...i.modelValue.custom,images:i.modelValue.custom.images||{}}})},l=(p,c)=>{const d=p.target.files[0];d&&Q(c,d)},C=(p,c)=>{p.preventDefault();const d=p.dataTransfer.files;d.length>0&&Q(c,d[0])},Q=async(p,c)=>{const d=["png","gif"],w=c.name.split(".").pop().toLowerCase();if(!d.includes(w)){alert(t("emojiConfig.selectValidFormat"));return}const F=await o(c),N=i.modelValue.custom||{},G={...N.fileMap||{}},P={...N.emotionMap||{}},b={...N.images||{}};let R=[];for(const[L,EA]of Object.entries(P))EA===F&&L!==p&&R.push(L);R.length>0&&console.log(t("emojiConfig.sharedFileMessage",{emotionKey:p,existingEmotions:R.join(", ")})),G[F]=c,P[p]=F,b[p]=c,n("update:modelValue",{...i.modelValue,custom:{...N,size:s.value.size,images:b,fileMap:G,emotionMap:P}}),await Ri.saveEmojiFile(`hash_${F}`,c,{size:s.value.size,format:w,emotions:[...R,p]})},u=async p=>{const c=i.modelValue.custom||{},d={...c.images},w={...c.emotionMap||{}},F={...c.fileMap||{}},N=w[p];delete d[p],delete w[p],Object.values(w).filter(P=>P===N).length===0&&N?(delete F[N],await Ri.deleteEmojiFile(`hash_${N}`),console.log(t("emojiConfig.fileDeleted",{fileHash:N}))):console.log(t("emojiConfig.fileRetained",{fileHash:N})),n("update:modelValue",{...i.modelValue,custom:{...c,images:d,emotionMap:w,fileMap:F}})},f=(p,c)=>`./static/twemoji${p==="twemoji64"?"64":"32"}/${c}.png`,h=p=>{if(i.modelValue.type==="preset")return f(i.modelValue.preset,p);{const c=i.modelValue.custom.images[p];return c instanceof File||c instanceof Blob?URL.createObjectURL(c):null}},E=p=>{console.warn(t("emojiConfig.imageLoadFailed"),p.target.src),p.target.style.display="none"};return Ie(()=>s.value.size,p=>{if(i.modelValue.type==="custom"){const c=i.modelValue.custom;JSON.stringify(c.size)!==JSON.stringify(p)&&n("update:modelValue",{...i.modelValue,custom:{...c,size:p}})}},{deep:!0}),i.modelValue.custom.size&&(s.value={size:{...i.modelValue.custom.size}}),(p,c)=>(H(),_("div",Fp,[B("div",null,[B("h3",Sp,v(p.$t("emojiConfig.title")),1),B("p",bp,v(p.$t("emojiConfig.description")),1)]),B("div",Rp,[B("div",Np,[B("button",{onClick:c[0]||(c[0]=d=>a("none")),class:vA(["px-4 py-2 border rounded-lg transition-colors",A.modelValue.type==="none"?"border-primary-500 bg-primary-50 text-primary-700":"border-gray-300 hover:border-gray-400"])},v(p.$t("emojiConfig.noEmojiPack")),3),B("button",{onClick:c[1]||(c[1]=d=>a("preset")),class:vA(["px-4 py-2 border rounded-lg transition-colors",A.modelValue.type==="preset"?"border-primary-500 bg-primary-50 text-primary-700":"border-gray-300 hover:border-gray-400"])},v(p.$t("emojiConfig.presetEmojiPack")),3),B("button",{onClick:c[2]||(c[2]=d=>a("custom")),class:vA(["px-4 py-2 border rounded-lg transition-colors",A.modelValue.type==="custom"?"border-primary-500 bg-primary-50 text-primary-700":"border-gray-300 hover:border-gray-400"])},v(p.$t("emojiConfig.customEmojiPack")),3)]),A.modelValue.type==="none"?(H(),_("p",Gp,v(p.$t("emojiConfig.noEmojiPackDescription")),1)):aA("",!0)]),A.modelValue.type==="preset"?(H(),_("div",Lp,[B("h4",Up,v(p.$t("emojiConfig.selectPresetEmojiPack")),1),B("div",Mp,[(H(),_(ZA,null,Pe(r,d=>B("div",{key:d.id,onClick:w=>I(d.id),class:vA(["border-2 rounded-lg p-4 cursor-pointer transition-all",A.modelValue.preset===d.id?"border-primary-500 bg-primary-50":"border-gray-200 hover:border-gray-300"])},[B("div",Jp,[B("div",null,[B("h5",Tp,v(d.name),1),B("p",Hp,v(d.description),1),B("div",Yp,v(p.$t("emojiConfig.size"))+": "+v(d.size)+"px × "+v(d.size)+"px ",1)]),A.modelValue.preset===d.id?(H(),_("div",_p,[...c[7]||(c[7]=[B("div",{class:"w-5 h-5 bg-primary-500 rounded-full flex items-center justify-center"},[B("svg",{class:"w-3 h-3 text-white",fill:"currentColor",viewBox:"0 0 20 20"},[B("path",{"fill-rule":"evenodd",d:"M16.707 5.293a1 1 0 010 1.414l-8 8a1 1 0 01-1.414 0l-4-4a1 1 0 011.414-1.414L8 12.586l7.293-7.293a1 1 0 011.414 0z","clip-rule":"evenodd"})])],-1)])])):aA("",!0)]),B("div",Kp,[(H(!0),_(ZA,null,Pe(d.preview,w=>(H(),_("div",{key:w,style:qA({width:d.size+"px",height:d.size+"px"}),class:"bg-gray-100 rounded flex items-center justify-center"},[B("img",{src:f(d.id,w),alt:w,style:qA({width:d.size+"px",height:d.size+"px"}),class:"object-contain rounded",onError:E},null,44,Pp)],4))),128))])],10,xp)),64))])])):aA("",!0),A.modelValue.type==="custom"?(H(),_("div",Op,[B("h4",Vp,v(p.$t("emojiConfig.customEmojiPackConfig")),1),B("div",Wp,[B("div",null,[B("label",qp,v(p.$t("emojiConfig.maxImageWidth")),1),zA(B("input",{type:"number","onUpdate:modelValue":c[3]||(c[3]=d=>s.value.size.width=d),min:"16",max:"200",class:"w-full border border-gray-300 rounded-md px-3 py-2 focus:outline-none focus:ring-2 focus:ring-primary-500 focus:border-primary-500"},null,512),[[ne,s.value.size.width,void 0,{number:!0}]])]),B("div",null,[B("label",jp,v(p.$t("emojiConfig.maxImageHeight")),1),zA(B("input",{type:"number","onUpdate:modelValue":c[4]||(c[4]=d=>s.value.size.height=d),min:"16",max:"200",class:"w-full border border-gray-300 rounded-md px-3 py-2 focus:outline-none focus:ring-2 focus:ring-primary-500 focus:border-primary-500"},null,512),[[ne,s.value.size.height,void 0,{number:!0}]])])]),B("div",Zp,[B("h5",Xp,v(p.$t("emojiConfig.uploadEmojiImages")),1),B("div",zp,[(H(!0),_(ZA,null,Pe(g.value,d=>(H(),_("div",{key:d.key,class:"space-y-2"},[B("div",$p,[B("div",Am,v(d.emoji),1),B("div",em,[B("span",null,v(d.name),1),d.key==="neutral"?(H(),_("span",tm,v(p.$t("emojiConfig.required")),1)):aA("",!0)])]),B("div",{onDrop:w=>C(w,d.key),onDragover:c[5]||(c[5]=pt(()=>{},["prevent"])),onDragenter:c[6]||(c[6]=pt(()=>{},["prevent"])),class:vA(["border-2 border-dashed rounded-lg p-2 text-center cursor-pointer transition-colors aspect-square flex flex-col items-center justify-center",A.modelValue.custom.images[d.key]?"border-green-300 bg-green-50":d.key==="neutral"?"border-red-300 bg-red-50":"border-gray-300 hover:border-gray-400"])},[B("input",{ref_for:!0,ref:d.key+"Input",type:"file",accept:".png,.gif",onChange:w=>l(w,d.key),class:"hidden"},null,40,nm),A.modelValue.custom.images[d.key]?(H(),_("div",gm,[h(d.key)?(H(),_("img",{key:0,src:h(d.key),alt:d.name,class:"w-full h-full object-cover rounded",onError:E},null,40,sm)):aA("",!0),B("button",{onClick:w=>u(d.key),class:"absolute -top-1 -right-1 w-4 h-4 bg-red-500 text-white rounded-full flex items-center justify-center text-xs hover:bg-red-600"}," × ",8,am)])):(H(),_("div",{key:0,onClick:w=>{var F;return(F=p.$refs[d.key+"Input"][0])==null?void 0:F.click()}},[c[8]||(c[8]=B("svg",{class:"w-6 h-6 text-gray-400 mx-auto mb-1",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor"},[B("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M12 6v6m0 0v6m0-6h6m-6 0H6"})],-1)),B("div",rm,v(p.$t("emojiConfig.clickToUploadOrDrag")),1)],8,om))],42,im)]))),128))]),B("div",Im,v(p.$t("emojiConfig.neutralRequiredNotice")),1)])])):aA("",!0)]))}},lm={class:"space-y-6"},Bm={class:"text-lg font-medium text-gray-900 mb-2"},Qm={class:"text-gray-600"},cm={class:"space-y-4"},Em={class:"font-medium text-gray-900 flex items-center"},um={class:"border border-gray-200 rounded-lg p-4 space-y-4"},hm={class:"flex space-x-4"},fm={key:0,class:"space-y-3"},dm={class:"flex items-center space-x-3"},pm={class:"text-sm font-medium text-gray-700"},mm={class:"flex items-center space-x-2"},ym={class:"flex items-center space-x-3"},wm={class:"text-sm font-medium text-gray-700"},Dm={class:"flex items-center space-x-2"},km={key:1,class:"space-y-3"},vm={class:"text-sm font-medium text-gray-700"},Fm={class:"mt-1 text-sm text-gray-600"},Sm={key:1,class:"space-y-2"},bm=["src"],Rm={class:"text-sm text-green-700 font-medium"},Nm={class:"flex items-center space-x-3"},Gm={class:"text-sm font-medium text-gray-700"},Lm={class:"flex items-center space-x-2"},Um={class:"space-y-4"},Mm={class:"font-medium text-gray-900 flex items-center"},xm={class:"border border-gray-200 rounded-lg p-4 space-y-4"},Jm={class:"flex space-x-4"},Tm={key:0,class:"space-y-3"},Hm={class:"flex items-center space-x-3"},Ym={class:"text-sm font-medium text-gray-700"},_m={class:"flex items-center space-x-2"},Km={class:"flex items-center space-x-3"},Pm={class:"text-sm font-medium text-gray-700"},Om={class:"flex items-center space-x-2"},Vm={key:1,class:"space-y-3"},Wm={class:"text-sm font-medium text-gray-700"},qm={class:"mt-1 text-sm text-gray-600"},jm={key:1,class:"space-y-2"},Zm=["src"],Xm={class:"text-sm text-green-700 font-medium"},zm={class:"flex items-center space-x-3"},$m={class:"text-sm font-medium text-gray-700"},Ay={class:"flex items-center space-x-2"},ey={class:"space-y-4"},ty={class:"font-medium text-gray-900"},iy={class:"grid grid-cols-1 md:grid-cols-2 gap-4"},ny={class:"space-y-2"},oy={class:"text-sm font-medium text-gray-700"},ry={class:"absolute inset-0 bg-white bg-opacity-10 flex items-center justify-center rounded-lg"},gy={class:"space-y-2"},sy={class:"text-sm font-medium text-gray-700"},ay={class:"absolute inset-0 bg-black bg-opacity-10 flex items-center justify-center rounded-lg"},Iy={class:"bg-blue-50 border border-blue-200 rounded-lg p-4"},Cy={class:"font-medium text-blue-900 mb-2"},ly={class:"flex flex-wrap gap-2"},By={__name:"BackgroundConfig",props:{modelValue:{type:Object,required:!0}},emits:["update:modelValue"],setup(A,{emit:e}){const{t}=Fe(),i=A,n=e,o=uA(null),r=uA(null),g=fA({get:()=>i.modelValue.light.backgroundColor,set:b=>Q(b)}),s=fA({get:()=>i.modelValue.dark.backgroundColor,set:b=>u(b)}),a=fA({get:()=>i.modelValue.light.textColor,set:b=>f(b)}),I=fA({get:()=>i.modelValue.dark.textColor,set:b=>h(b)}),l=b=>{n("update:modelValue",{...i.modelValue,light:{...i.modelValue.light,backgroundType:b,backgroundImage:b==="image"?i.modelValue.light.backgroundImage:null}})},C=b=>{n("update:modelValue",{...i.modelValue,dark:{...i.modelValue.dark,backgroundType:b,backgroundImage:b==="image"?i.modelValue.dark.backgroundImage:null}})},Q=b=>{n("update:modelValue",{...i.modelValue,light:{...i.modelValue.light,backgroundColor:b}})},u=b=>{n("update:modelValue",{...i.modelValue,dark:{...i.modelValue.dark,backgroundColor:b}})},f=b=>{n("update:modelValue",{...i.modelValue,light:{...i.modelValue.light,textColor:b}})},h=b=>{n("update:modelValue",{...i.modelValue,dark:{...i.modelValue.dark,textColor:b}})},E=(b,R)=>{const L=b.target.files[0];L&&c(R,L)},p=(b,R)=>{b.preventDefault();const L=b.dataTransfer.files;L.length>0&&c(R,L[0])},c=async(b,R)=>{R&&R.type.startsWith("image/")?(n("update:modelValue",{...i.modelValue,[b]:{...i.modelValue[b],backgroundImage:R}}),await Ri.saveBackgroundFile(b,R)):alert(t("backgroundConfig.selectValidImage"))},d=async b=>{n("update:modelValue",{...i.modelValue,[b]:{...i.modelValue[b],backgroundImage:null}}),b==="light"&&o.value&&(o.value.value=""),b==="dark"&&r.value&&(r.value.value=""),await Ri.deleteBackgroundFile(b)},w=b=>{const R=i.modelValue[b].backgroundImage;return R?URL.createObjectURL(R):null},F=()=>i.modelValue.light.backgroundType==="image"&&i.modelValue.light.backgroundImage?{backgroundImage:`url(${w("light")})`,backgroundSize:"cover",backgroundPosition:"center"}:{backgroundColor:i.modelValue.light.backgroundColor},N=()=>i.modelValue.dark.backgroundType==="image"&&i.modelValue.dark.backgroundImage?{backgroundImage:`url(${w("dark")})`,backgroundSize:"cover",backgroundPosition:"center"}:{backgroundColor:i.modelValue.dark.backgroundColor},G=(b,R)=>{const L=P(b)?"#000000":"#ffffff",EA=P(R)?"#000000":"#ffffff";n("update:modelValue",{...i.modelValue,light:{...i.modelValue.light,backgroundType:"color",backgroundColor:b,textColor:L,backgroundImage:null},dark:{...i.modelValue.dark,backgroundType:"color",backgroundColor:R,textColor:EA,backgroundImage:null}})},P=b=>{const R=b.replace("#",""),L=parseInt(R.substr(0,2),16),EA=parseInt(R.substr(2,2),16),pA=parseInt(R.substr(4,2),16);return(L*299+EA*587+pA*114)/1e3>128};return(b,R)=>(H(),_("div",lm,[B("div",null,[B("h3",Bm,v(b.$t("backgroundConfig.title")),1),B("p",Qm,v(b.$t("backgroundConfig.description")),1)]),B("div",cm,[B("h4",Em,[R[33]||(R[33]=B("svg",{class:"w-5 h-5 mr-2 text-yellow-500",fill:"currentColor",viewBox:"0 0 20 20"},[B("path",{"fill-rule":"evenodd",d:"M10 2a1 1 0 011 1v1a1 1 0 11-2 0V3a1 1 0 011-1zm4 8a4 4 0 11-8 0 4 4 0 018 0zm-.464 4.95l.707.707a1 1 0 001.414-1.414l-.707-.707a1 1 0 00-1.414 1.414zm2.12-10.607a1 1 0 010 1.414l-.706.707a1 1 0 11-1.414-1.414l.707-.707a1 1 0 011.414 0zM17 11a1 1 0 100-2h-1a1 1 0 100 2h1zm-7 4a1 1 0 011 1v1a1 1 0 11-2 0v-1a1 1 0 011-1zM5.05 6.464A1 1 0 106.465 5.05l-.708-.707a1 1 0 00-1.414 1.414l.707.707zm1.414 8.486l-.707.707a1 1 0 01-1.414-1.414l.707-.707a1 1 0 011.414 1.414zM4 11a1 1 0 100-2H3a1 1 0 000 2h1z","clip-rule":"evenodd"})],-1)),st(" "+v(b.$t("backgroundConfig.lightMode")),1)]),B("div",um,[B("div",hm,[B("button",{onClick:R[0]||(R[0]=L=>l("color")),class:vA(["px-3 py-2 text-sm border rounded transition-colors",A.modelValue.light.backgroundType==="color"?"border-primary-500 bg-primary-50 text-primary-700":"border-gray-300 hover:border-gray-400"])},v(b.$t("backgroundConfig.solidBackground")),3),B("button",{onClick:R[1]||(R[1]=L=>l("image")),class:vA(["px-3 py-2 text-sm border rounded transition-colors",A.modelValue.light.backgroundType==="image"?"border-primary-500 bg-primary-50 text-primary-700":"border-gray-300 hover:border-gray-400"])},v(b.$t("backgroundConfig.imageBackground")),3)]),A.modelValue.light.backgroundType==="color"?(H(),_("div",fm,[B("div",dm,[B("label",pm,v(b.$t("backgroundConfig.backgroundColor")),1),B("div",mm,[zA(B("input",{type:"color","onUpdate:modelValue":R[2]||(R[2]=L=>g.value=L),class:"w-10 h-10 border border-gray-300 rounded cursor-pointer"},null,512),[[ne,g.value]]),zA(B("input",{type:"text","onUpdate:modelValue":R[3]||(R[3]=L=>g.value=L),class:"border border-gray-300 rounded px-3 py-2 text-sm font-mono w-24"},null,512),[[ne,g.value]])]),B("div",{style:qA({backgroundColor:g.value}),class:"w-16 h-10 border border-gray-300 rounded shadow-inner"},null,4)]),B("div",ym,[B("label",wm,v(b.$t("backgroundConfig.textColor")),1),B("div",Dm,[zA(B("input",{type:"color","onUpdate:modelValue":R[4]||(R[4]=L=>a.value=L),class:"w-10 h-10 border border-gray-300 rounded cursor-pointer"},null,512),[[ne,a.value]]),zA(B("input",{type:"text","onUpdate:modelValue":R[5]||(R[5]=L=>a.value=L),class:"border border-gray-300 rounded px-3 py-2 text-sm font-mono w-24"},null,512),[[ne,a.value]])]),B("div",{style:qA({backgroundColor:a.value}),class:"w-16 h-10 border border-gray-300 rounded shadow-inner"},null,4)])])):aA("",!0),A.modelValue.light.backgroundType==="image"?(H(),_("div",km,[B("label",vm,v(b.$t("backgroundConfig.backgroundImage")),1),B("div",{onDrop:R[9]||(R[9]=L=>p(L,"light")),onDragover:R[10]||(R[10]=pt(()=>{},["prevent"])),onDragenter:R[11]||(R[11]=pt(()=>{},["prevent"])),class:vA(["border-2 border-dashed rounded-lg p-4 text-center cursor-pointer transition-colors",A.modelValue.light.backgroundImage?"border-green-300 bg-green-50":"border-gray-300 hover:border-gray-400"])},[B("input",{ref_key:"lightImageInput",ref:o,type:"file",accept:"image/*",onChange:R[6]||(R[6]=L=>E(L,"light")),class:"hidden"},null,544),A.modelValue.light.backgroundImage?(H(),_("div",Sm,[B("img",{src:w("light"),alt:"{{ $t('backgroundConfig.lightModePreview') }}背景",class:"max-w-32 max-h-32 mx-auto rounded shadow"},null,8,bm),B("p",Rm,v(A.modelValue.light.backgroundImage.name),1),B("button",{onClick:R[8]||(R[8]=L=>d("light")),class:"text-red-600 hover:text-red-500 text-sm"},v(b.$t("backgroundConfig.removeImage")),1)])):(H(),_("div",{key:0,onClick:R[7]||(R[7]=L=>b.$refs.lightImageInput.click())},[R[34]||(R[34]=B("svg",{class:"mx-auto h-8 w-8 text-gray-400",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor"},[B("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M4 16l4.586-4.586a2 2 0 012.828 0L16 16m-2-2l1.586-1.586a2 2 0 012.828 0L20 14m-6-6h.01M6 20h12a2 2 0 002-2V6a2 2 0 00-2-2H6a2 2 0 00-2 2v12a2 2 0 002 2z"})],-1)),B("p",Fm,v(b.$t("backgroundConfig.clickOrDragToUpload")),1)]))],34),B("div",Nm,[B("label",Gm,v(b.$t("backgroundConfig.textColor")),1),B("div",Lm,[zA(B("input",{type:"color","onUpdate:modelValue":R[12]||(R[12]=L=>a.value=L),class:"w-10 h-10 border border-gray-300 rounded cursor-pointer"},null,512),[[ne,a.value]]),zA(B("input",{type:"text","onUpdate:modelValue":R[13]||(R[13]=L=>a.value=L),class:"border border-gray-300 rounded px-3 py-2 text-sm font-mono w-24"},null,512),[[ne,a.value]])]),B("div",{style:qA({backgroundColor:a.value}),class:"w-16 h-10 border border-gray-300 rounded shadow-inner"},null,4)])])):aA("",!0)])]),B("div",Um,[B("h4",Mm,[R[35]||(R[35]=B("svg",{class:"w-5 h-5 mr-2 text-gray-600",fill:"currentColor",viewBox:"0 0 20 20"},[B("path",{d:"M17.293 13.293A8 8 0 016.707 2.707a8.001 8.001 0 1010.586 10.586z"})],-1)),st(" "+v(b.$t("backgroundConfig.darkMode")),1)]),B("div",xm,[B("div",Jm,[B("button",{onClick:R[14]||(R[14]=L=>C("color")),class:vA(["px-3 py-2 text-sm border rounded transition-colors",A.modelValue.dark.backgroundType==="color"?"border-primary-500 bg-primary-50 text-primary-700":"border-gray-300 hover:border-gray-400"])},v(b.$t("backgroundConfig.solidBackground")),3),B("button",{onClick:R[15]||(R[15]=L=>C("image")),class:vA(["px-3 py-2 text-sm border rounded transition-colors",A.modelValue.dark.backgroundType==="image"?"border-primary-500 bg-primary-50 text-primary-700":"border-gray-300 hover:border-gray-400"])},v(b.$t("backgroundConfig.imageBackground")),3)]),A.modelValue.dark.backgroundType==="color"?(H(),_("div",Tm,[B("div",Hm,[B("label",Ym,v(b.$t("backgroundConfig.backgroundColor")),1),B("div",_m,[zA(B("input",{type:"color","onUpdate:modelValue":R[16]||(R[16]=L=>s.value=L),class:"w-10 h-10 border border-gray-300 rounded cursor-pointer"},null,512),[[ne,s.value]]),zA(B("input",{type:"text","onUpdate:modelValue":R[17]||(R[17]=L=>s.value=L),class:"border border-gray-300 rounded px-3 py-2 text-sm font-mono w-24"},null,512),[[ne,s.value]])]),B("div",{style:qA({backgroundColor:s.value}),class:"w-16 h-10 border border-gray-300 rounded shadow-inner"},null,4)]),B("div",Km,[B("label",Pm,v(b.$t("backgroundConfig.textColor")),1),B("div",Om,[zA(B("input",{type:"color","onUpdate:modelValue":R[18]||(R[18]=L=>I.value=L),class:"w-10 h-10 border border-gray-300 rounded cursor-pointer"},null,512),[[ne,I.value]]),zA(B("input",{type:"text","onUpdate:modelValue":R[19]||(R[19]=L=>I.value=L),class:"border border-gray-300 rounded px-3 py-2 text-sm font-mono w-24"},null,512),[[ne,I.value]])]),B("div",{style:qA({backgroundColor:I.value}),class:"w-16 h-10 border border-gray-300 rounded shadow-inner"},null,4)])])):aA("",!0),A.modelValue.dark.backgroundType==="image"?(H(),_("div",Vm,[B("label",Wm,v(b.$t("backgroundConfig.backgroundImage")),1),B("div",{onDrop:R[23]||(R[23]=L=>p(L,"dark")),onDragover:R[24]||(R[24]=pt(()=>{},["prevent"])),onDragenter:R[25]||(R[25]=pt(()=>{},["prevent"])),class:vA(["border-2 border-dashed rounded-lg p-4 text-center cursor-pointer transition-colors",A.modelValue.dark.backgroundImage?"border-green-300 bg-green-50":"border-gray-300 hover:border-gray-400"])},[B("input",{ref_key:"darkImageInput",ref:r,type:"file",accept:"image/*",onChange:R[20]||(R[20]=L=>E(L,"dark")),class:"hidden"},null,544),A.modelValue.dark.backgroundImage?(H(),_("div",jm,[B("img",{src:w("dark"),alt:"{{ $t('backgroundConfig.darkModePreview') }}背景",class:"max-w-32 max-h-32 mx-auto rounded shadow"},null,8,Zm),B("p",Xm,v(A.modelValue.dark.backgroundImage.name),1),B("button",{onClick:R[22]||(R[22]=L=>d("dark")),class:"text-red-600 hover:text-red-500 text-sm"},v(b.$t("backgroundConfig.removeImage")),1)])):(H(),_("div",{key:0,onClick:R[21]||(R[21]=L=>b.$refs.darkImageInput.click())},[R[36]||(R[36]=B("svg",{class:"mx-auto h-8 w-8 text-gray-400",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor"},[B("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M4 16l4.586-4.586a2 2 0 012.828 0L16 16m-2-2l1.586-1.586a2 2 0 012.828 0L20 14m-6-6h.01M6 20h12a2 2 0 002-2V6a2 2 0 00-2-2H6a2 2 0 00-2 2v12a2 2 0 002 2z"})],-1)),B("p",qm,v(b.$t("backgroundConfig.clickOrDragToUpload")),1)]))],34),B("div",zm,[B("label",$m,v(b.$t("backgroundConfig.textColor")),1),B("div",Ay,[zA(B("input",{type:"color","onUpdate:modelValue":R[26]||(R[26]=L=>I.value=L),class:"w-10 h-10 border border-gray-300 rounded cursor-pointer"},null,512),[[ne,I.value]]),zA(B("input",{type:"text","onUpdate:modelValue":R[27]||(R[27]=L=>I.value=L),class:"border border-gray-300 rounded px-3 py-2 text-sm font-mono w-24"},null,512),[[ne,I.value]])]),B("div",{style:qA({backgroundColor:I.value}),class:"w-16 h-10 border border-gray-300 rounded shadow-inner"},null,4)])])):aA("",!0)])]),B("div",ey,[B("h4",ty,v(b.$t("backgroundConfig.backgroundPreview")),1),B("div",iy,[B("div",ny,[B("div",oy,v(b.$t("backgroundConfig.lightModePreview")),1),B("div",{style:qA(F()),class:"h-32 border border-gray-300 rounded-lg flex items-center justify-center text-sm relative overflow-hidden"},[B("div",ry,[B("span",{style:qA({color:A.modelValue.light.textColor})},v(b.$t("backgroundConfig.chatArea")),5)])],4)]),B("div",gy,[B("div",sy,v(b.$t("backgroundConfig.darkModePreview")),1),B("div",{style:qA(N()),class:"h-32 border border-gray-300 rounded-lg flex items-center justify-center text-sm relative overflow-hidden"},[B("div",ay,[B("span",{style:qA({color:A.modelValue.dark.textColor})},v(b.$t("backgroundConfig.chatArea")),5)])],4)])])]),B("div",Iy,[B("h5",Cy,v(b.$t("backgroundConfig.quickConfig")),1),B("div",ly,[B("button",{onClick:R[28]||(R[28]=L=>G("#ffffff","#1f2937")),class:"px-3 py-1 text-sm bg-white border border-gray-300 rounded hover:bg-gray-50"},v(b.$t("backgroundConfig.defaultColors")),1),B("button",{onClick:R[29]||(R[29]=L=>G("#f5f5f4","#374151")),class:"px-3 py-1 text-sm bg-stone-100 border border-gray-300 rounded hover:bg-stone-200"},v(b.$t("backgroundConfig.stoneTexture")),1),B("button",{onClick:R[30]||(R[30]=L=>G("#fef7cd","#7c2d12")),class:"px-3 py-1 text-sm bg-yellow-100 border border-gray-300 rounded hover:bg-yellow-200"},v(b.$t("backgroundConfig.sunnyColors")),1),B("button",{onClick:R[31]||(R[31]=L=>G("#e0f2fe","#1e40af")),class:"px-3 py-1 text-sm bg-sky-100 border border-gray-300 rounded hover:bg-sky-200"},v(b.$t("backgroundConfig.skyBlue")),1),B("button",{onClick:R[32]||(R[32]=L=>G("#fdf2f8","#be185d")),class:"px-3 py-1 text-sm bg-pink-100 border border-gray-300 rounded hover:bg-pink-200"},v(b.$t("backgroundConfig.romanticPink")),1)])])]))}},Qy={class:"space-y-6"},cy={class:"text-xl font-semibold text-gray-900 mb-4"},Ey={class:"text-gray-600 mb-6"},uy={class:"border-b border-gray-200"},hy={class:"-mb-px flex space-x-4 sm:space-x-8"},fy=["onClick"],dy={class:"flex items-center"},py={class:"hidden sm:inline"},my={class:"min-h-96"},yy={class:"flex justify-between"},wy={__name:"ThemeDesign",props:{modelValue:{type:Object,required:!0},chipModel:{type:String,required:!0},activeTab:{type:String,default:"wakeword"}},emits:["update:modelValue","next","prev","tabChange"],setup(A,{emit:e}){const{t}=Fe(),i={render(){return LA("svg",{fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[LA("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M19 11a7 7 0 01-7 7m0 0a7 7 0 01-7-7m7 7v4m0 0H8m4 0h4m-4-8a3 3 0 01-3-3V5a3 3 0 116 0v6a3 3 0 01-3 3z"})])}},n={render(){return LA("svg",{xmlns:"http://www.w3.org/2000/svg",fill:"currentColor",viewBox:"0 0 640 640"},[LA("path",{d:"M320 96C329.5 96 338 101.5 341.9 110.2L515.1 496L536 496C549.3 496 560 506.7 560 520C560 533.3 549.3 544 536 544L440 544C426.7 544 416 533.3 416 520C416 506.7 426.7 496 440 496L462.5 496L426.6 416L213.4 416L177.5 496L200 496C213.3 496 224 506.7 224 520C224 533.3 213.3 544 200 544L104 544C90.7 544 80 533.3 80 520C80 506.7 90.7 496 104 496L124.9 496L298.1 110.2C302 101.5 310.5 96 320 96zM320 178.6L235 368L405 368L320 178.6z"})])}},o={render(){return LA("svg",{fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[LA("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M14.828 14.828a4 4 0 01-5.656 0M9 10h.01M15 10h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z"})])}},r={render(){return LA("svg",{xmlns:"http://www.w3.org/2000/svg",fill:"currentColor",viewBox:"0 0 640 640"},[LA("path",{d:"M160 144C151.2 144 144 151.2 144 160L144 480C144 488.8 151.2 496 160 496L480 496C488.8 496 496 488.8 496 480L496 160C496 151.2 488.8 144 480 144L160 144zM96 160C96 124.7 124.7 96 160 96L480 96C515.3 96 544 124.7 544 160L544 480C544 515.3 515.3 544 480 544L160 544C124.7 544 96 515.3 96 480L96 160zM224 192C241.7 192 256 206.3 256 224C256 241.7 241.7 256 224 256C206.3 256 192 241.7 192 224C192 206.3 206.3 192 224 192zM360 264C368.5 264 376.4 268.5 380.7 275.8L460.7 411.8C465.1 419.2 465.1 428.4 460.8 435.9C456.5 443.4 448.6 448 440 448L200 448C191.1 448 182.8 443 178.7 435.1C174.6 427.2 175.2 417.6 180.3 410.3L236.3 330.3C240.8 323.9 248.1 320.1 256 320.1C263.9 320.1 271.2 323.9 275.7 330.3L292.9 354.9L339.4 275.9C343.7 268.6 351.6 264.1 360.1 264.1z"})])}},g=A,s=e,a=uA(g.activeTab),I=fA(()=>[{id:"wakeword",name:t("themeDesign.tabs.wakeword"),icon:i},{id:"font",name:t("themeDesign.tabs.font"),icon:n},{id:"emoji",name:t("themeDesign.tabs.emoji"),icon:o},{id:"background",name:t("themeDesign.tabs.background"),icon:r}]),l=fA({get:()=>g.modelValue,set:u=>s("update:modelValue",u)}),C=()=>{var h,E,p;const u=g.modelValue.wakeword;if(u.type==="custom"){if(!((h=u.custom.name)!=null&&h.trim())){alert(t("wakewordConfig.errors.nameRequired"));return}if(!((E=u.custom.command)!=null&&E.trim())){alert(t("wakewordConfig.errors.commandRequired"));return}if(!u.custom.duration||u.custom.duration<500||u.custom.duration>1e4){alert(t("wakewordConfig.errors.durationRange"));return}}const f=g.modelValue.font;if(f.type==="custom"&&!((p=f.custom)!=null&&p.file)){alert(t("fontConfig.selectValidFontFile"));return}s("next")},Q=u=>{a.value=u,s("tabChange",u)};return Ie(()=>g.activeTab,u=>{a.value=u}),(u,f)=>(H(),_("div",Qy,[B("div",null,[B("h2",cy,v(u.$t("themeDesign.title")),1),B("p",Ey,v(u.$t("themeDesign.description")),1)]),B("div",uy,[B("nav",hy,[(H(!0),_(ZA,null,Pe(I.value,h=>(H(),_("button",{key:h.id,onClick:E=>Q(h.id),class:vA(["py-2 px-1 border-b-2 font-medium text-sm relative",a.value===h.id?"border-primary-500 text-primary-600":"border-transparent text-gray-500 hover:text-gray-700 hover:border-gray-300"])},[B("span",dy,[(H(),we(HI(h.icon),{class:"w-5 h-5 sm:mr-2"})),B("span",py,v(h.name),1)])],10,fy))),128))])]),B("div",my,[a.value==="wakeword"?(H(),we(N0,{key:0,modelValue:l.value.wakeword,"onUpdate:modelValue":f[0]||(f[0]=h=>l.value.wakeword=h),chipModel:A.chipModel},null,8,["modelValue","chipModel"])):aA("",!0),a.value==="font"?(H(),we(vp,{key:1,modelValue:l.value.font,"onUpdate:modelValue":f[1]||(f[1]=h=>l.value.font=h)},null,8,["modelValue"])):aA("",!0),a.value==="emoji"?(H(),we(Cm,{key:2,modelValue:l.value.emoji,"onUpdate:modelValue":f[2]||(f[2]=h=>l.value.emoji=h)},null,8,["modelValue"])):aA("",!0),a.value==="background"?(H(),we(By,{key:3,modelValue:l.value.skin,"onUpdate:modelValue":f[3]||(f[3]=h=>l.value.skin=h)},null,8,["modelValue"])):aA("",!0)]),B("div",yy,[B("button",{onClick:f[4]||(f[4]=h=>u.$emit("prev")),class:"bg-gray-500 hover:bg-gray-600 text-white px-6 py-2 rounded-lg font-medium transition-colors"},v(u.$t("themeDesign.previous")),1),B("button",{onClick:C,class:"bg-primary-500 hover:bg-primary-600 text-white px-6 py-2 rounded-lg font-medium transition-colors"},v(u.$t("themeDesign.next")),1)])]))}},Dy=(A,e)=>{const t=A.__vccOpts||A;for(const[i,n]of e)t[i]=n;return t},ky={class:"space-y-6"},vy={class:"text-xl font-semibold text-gray-900 mb-4"},Fy={class:"text-gray-600 mb-6"},Sy={class:"flex flex-col lg:flex-row gap-8"},by={class:"flex-1"},Ry={class:"text-lg font-medium text-gray-900 mb-4"},Ny={class:"bg-gray-100 p-4 rounded-lg"},Gy={class:"max-w-full overflow-auto flex justify-center"},Ly={class:"bg-gray-800 p-6 rounded-2xl shadow-2xl inline-block"},Uy={class:"bg-gray-900 p-2 rounded-xl"},My={class:"relative z-10 flex flex-col items-center justify-center p-4 text-center"},xy={class:"mb-4"},Jy={key:0,class:"emoji-container"},Ty=["src","alt"],Hy={key:1,class:"emoji-container"},Yy={class:"text-center"},_y={class:"text-sm"},Ky={class:"text-xs"},Py={key:0,class:"absolute inset-0 flex items-center justify-center"},Oy={class:"animate-pulse text-gray-400 text-xs"},Vy={class:"mt-3 text-center text-xs text-gray-400"},Wy={class:"w-full lg:w-80"},qy={class:"text-lg font-medium text-gray-900 mb-4"},jy={class:"space-y-6 bg-white border border-gray-200 rounded-lg p-4"},Zy={class:"block text-sm font-medium text-gray-700 mb-2"},Xy={class:"block text-sm font-medium text-gray-700 mb-2"},zy={key:0,class:"flex flex-wrap gap-2 max-h-32 overflow-y-auto justify-center"},$y=["onClick","title"],Aw={key:0},ew=["src","alt"],tw={key:1,class:"text-lg"},iw={key:1,class:"text-center py-4 text-gray-500 bg-gray-50 rounded-lg border-2 border-dashed"},nw={class:"text-2xl mb-2"},ow={class:"text-sm"},rw={class:"block text-sm font-medium text-gray-700 mb-2"},gw={class:"flex space-x-2"},sw={class:"border-t pt-4"},aw={class:"font-medium text-gray-900 mb-2"},Iw={class:"text-xs text-gray-600 space-y-1"},Cw={key:0},lw={class:"flex items-center"},Bw={key:0,class:"ml-2 animate-pulse text-blue-500"},Qw={key:1},cw={class:"flex justify-between"},Ew={__name:"GenerateSummary",props:{config:{type:Object,required:!0}},emits:["prev","generate"],setup(A){const{t:e}=Fe(),t=A,i=uA(e("generateSummary.defaultPreviewText")),n=uA("happy"),o=uA("light"),r=uA(!1),g=uA(""),s=fA(()=>[{key:"neutral",name:e("generateSummary.emotions.neutral"),emoji:"😶"},{key:"happy",name:e("generateSummary.emotions.happy"),emoji:"🙂"},{key:"laughing",name:e("generateSummary.emotions.laughing"),emoji:"😆"},{key:"funny",name:e("generateSummary.emotions.funny"),emoji:"😂"},{key:"sad",name:e("generateSummary.emotions.sad"),emoji:"😔"},{key:"angry",name:e("generateSummary.emotions.angry"),emoji:"😠"},{key:"crying",name:e("generateSummary.emotions.crying"),emoji:"😭"},{key:"loving",name:e("generateSummary.emotions.loving"),emoji:"😍"},{key:"surprised",name:e("generateSummary.emotions.surprised"),emoji:"😯"},{key:"thinking",name:e("generateSummary.emotions.thinking"),emoji:"🤔"},{key:"cool",name:e("generateSummary.emotions.cool"),emoji:"😎"},{key:"sleepy",name:e("generateSummary.emotions.sleepy"),emoji:"😴"}]),a=fA(()=>{if(t.config.theme.emoji.type==="preset"&&t.config.theme.emoji.preset)return s.value;if(t.config.theme.emoji.type==="custom"){const b=t.config.theme.emoji.custom.images;return s.value.filter(R=>b[R.key])}else return[]}),I=fA(()=>E(n.value)),l=()=>{const{width:b,height:R}=t.config.chip.display;return{width:`${b}px`,height:`${R}px`}},C=()=>{const b=t.config.theme.skin[o.value];if(b.backgroundType==="image"&&b.backgroundImage)try{if(b.backgroundImage&&typeof b.backgroundImage=="object"&&b.backgroundImage.size)return{backgroundImage:`url(${URL.createObjectURL(b.backgroundImage)})`,backgroundSize:"cover",backgroundPosition:"center"}}catch(R){console.warn("背景图片预览加载失败:",R)}return{backgroundColor:b.backgroundColor||"#ffffff"}},Q=()=>{let b=48;return t.config.theme.emoji.type==="preset"?b=t.config.theme.emoji.preset==="twemoji64"?64:32:t.config.theme.emoji.custom.size&&(b=Math.min(t.config.theme.emoji.custom.size.width,t.config.theme.emoji.custom.size.height)),{width:`${b}px`,height:`${b}px`}},u=()=>{let b=14;if(t.config.theme.font.type==="preset"){const L=t.config.theme.font.preset;L.includes("_14_")?b=14:L.includes("_16_")?b=16:L.includes("_20_")?b=20:L.includes("_30_")&&(b=30)}else t.config.theme.font.custom.size&&(b=t.config.theme.font.custom.size);const R=o.value==="dark"?t.config.theme.skin.dark.textColor:t.config.theme.skin.light.textColor;return{fontSize:`${b}px`,color:R,fontFamily:h(),textShadow:o.value==="dark"?"1px 1px 2px rgba(0,0,0,0.5)":"1px 1px 2px rgba(255,255,255,0.5)"}},f=async()=>{document.querySelectorAll("style[data-font-preview]").forEach(R=>R.remove()),r.value=!1,g.value="";try{if(t.config.theme.font.type==="preset"){const R=t.config.theme.font.preset;let L,EA;R&&R.startsWith("font_noto_qwen_")?(L="NotoPreview",EA="./static/fonts/noto_qwen.ttf"):(L="PuHuiPreview",EA="./static/fonts/puhui_deepseek.ttf");const pA=document.createElement("style");pA.setAttribute("data-font-preview","true"),pA.textContent=`
|
||
@font-face {
|
||
font-family: '${L}';
|
||
src: url('${EA}') format('truetype');
|
||
font-display: swap;
|
||
}
|
||
`,document.head.appendChild(pA),await document.fonts.load(`16px "${L}"`),g.value=L,r.value=!0}else if(t.config.theme.font.custom.file)try{const R=t.config.theme.font.custom.file;if(!R||typeof R!="object"||!R.size)throw new Error("字体文件对象无效");const L="CustomFontPreview",EA=URL.createObjectURL(R),pA=document.createElement("style");pA.setAttribute("data-font-preview","true"),pA.textContent=`
|
||
@font-face {
|
||
font-family: '${L}';
|
||
src: url('${EA}');
|
||
font-display: swap;
|
||
}
|
||
`,document.head.appendChild(pA),await document.fonts.load(`16px "${L}"`),g.value=L,r.value=!0}catch(R){console.warn("自定义字体预览加载失败:",R),g.value="Arial, sans-serif",r.value=!0}else g.value="system-ui",r.value=!0}catch(R){console.warn("Font loading failed:",R),g.value="system-ui",r.value=!0}},h=()=>r.value&&g.value?`"${g.value}", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", sans-serif`:'"PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", sans-serif',E=b=>{if(t.config.theme.emoji.type==="preset")return`./static/twemoji${t.config.theme.emoji.preset==="twemoji64"?"64":"32"}/${b}.png`;if(t.config.theme.emoji.type==="custom"&&t.config.theme.emoji.custom.images[b])try{const R=t.config.theme.emoji.custom.images[b];if(R&&typeof R=="object"&&R.size)return URL.createObjectURL(R)}catch(R){console.warn(`表情图片预览加载失败 (${b}):`,R)}return null},p=b=>{const R=s.value.find(L=>L.key===b);return R?R.emoji:"😶"},c=()=>{if(t.config.theme.emoji.type==="preset")return(t.config.theme.emoji.preset==="twemoji64"?64:32)+16;if(t.config.theme.emoji.custom.size){const b=Math.min(t.config.theme.emoji.custom.size.width,t.config.theme.emoji.custom.size.height);return Math.min(b+16,64)}return 48},d=()=>t.config.theme.emoji.type==="preset"?t.config.theme.emoji.preset==="twemoji64"?64:32:t.config.theme.emoji.custom.size?Math.min(t.config.theme.emoji.custom.size.width,t.config.theme.emoji.custom.size.height,48):32,w=b=>{n.value=b},F=()=>{const b=t.config.theme.wakeword;return!b||b.type==="none"?e("wakewordConfig.noWakeword"):b.type==="preset"?{wn9s_hilexin:"Hi,乐鑫",wn9s_hiesp:"Hi,ESP",wn9s_nihaoxiaozhi:"你好小智",wn9_nihaoxiaozhi_tts:"你好小智",wn9_alexa:"Alexa",wn9_jarvis_tts:"Jarvis"}[b.preset]||b.preset:b.type==="custom"?b.custom.name||e("wakewordConfig.customWakeword"):e("wakewordConfig.noWakeword")},N=()=>{if(t.config.theme.font.type==="preset")return e("fontConfig.presetFontNames."+t.config.theme.font.preset)||t.config.theme.font.preset;{const b=t.config.theme.font.custom;return e("generateSummary.customFont",{size:b.size})}},G=()=>{if(t.config.theme.emoji.type==="preset"&&t.config.theme.emoji.preset)return t.config.theme.emoji.preset==="twemoji64"?"Twemoji 64×64":"Twemoji 32×32";if(t.config.theme.emoji.type==="custom"){const b=Object.keys(t.config.theme.emoji.custom.images).length;return e("generateSummary.customEmoji",{count:b})}else return t.config.theme.emoji.type==="none"?e("emojiConfig.noEmojiPack"):e("generateSummary.notConfigured")},P=()=>{const b=t.config.theme.skin.light.backgroundType==="image"?e("generateSummary.image"):e("generateSummary.color"),R=t.config.theme.skin.dark.backgroundType==="image"?e("generateSummary.image"):e("generateSummary.color");return e("generateSummary.skinLight",{type:b})+"/"+e("generateSummary.skinDark",{type:R})};return Ie(()=>t.config.theme.font,()=>{f()},{deep:!0}),St(async()=>{a.value.length>0?n.value=a.value[0].key:n.value="",await f()}),li(()=>{document.querySelectorAll("style[data-font-preview]").forEach(R=>R.remove())}),(b,R)=>(H(),_("div",ky,[B("div",null,[B("h2",vy,v(b.$t("generateSummary.title")),1),B("p",Fy,v(b.$t("generateSummary.description")),1)]),B("div",Sy,[B("div",by,[B("h3",Ry,v(b.$t("generateSummary.devicePreview")),1),B("div",Ny,[B("div",Gy,[B("div",Ly,[B("div",Uy,[B("div",{style:qA(l()),class:"relative rounded-lg overflow-hidden border-2 border-gray-700 flex flex-col items-center justify-center"},[B("div",{style:qA(C()),class:"absolute inset-0"},null,4),B("div",My,[B("div",xy,[n.value&&a.value.length>0?(H(),_("div",Jy,[I.value?(H(),_("img",{key:0,src:I.value,alt:n.value,style:qA(Q()),class:"emoji-image"},null,12,Ty)):(H(),_("div",{key:1,style:qA(Q()),class:"emoji-fallback bg-gray-200 rounded-full flex items-center justify-center text-2xl"},v(p(n.value)),5))])):(H(),_("div",Hy,[B("div",{style:qA(Q()),class:"emoji-placeholder flex items-center justify-center text-gray-400 border-2 border-dashed border-gray-300 rounded bg-gray-50"},[B("div",Yy,[B("div",_y,v(A.config.theme.emoji.type==="none"?"📦":"😕"),1),B("div",Ky,v(A.config.theme.emoji.type==="none"?b.$t("emojiConfig.noEmojiPack"):b.$t("generateSummary.noEmotionConfigured")),1)])],4)]))]),A.config.theme.font.hide_subtitle?aA("",!0):(H(),_("div",{key:0,style:qA(u()),class:"text-message max-w-full break-words relative"},[r.value?aA("",!0):(H(),_("div",Py,[B("div",Oy,v(b.$t("generateSummary.fontLoading")),1)])),B("div",{class:vA({"opacity-0":!r.value})},v(i.value),3)],4))])],4)]),B("div",Vy,v(A.config.chip.display.width)+" × "+v(A.config.chip.display.height)+" "+v(A.config.chip.model.toUpperCase()),1)])])])]),B("div",Wy,[B("h3",qy,v(b.$t("generateSummary.previewSettings")),1),B("div",jy,[B("div",null,[B("label",Zy,v(b.$t("generateSummary.previewText")),1),zA(B("textarea",{"onUpdate:modelValue":R[0]||(R[0]=L=>i.value=L),class:"w-full border border-gray-300 rounded-md px-3 py-2 text-sm focus:outline-none focus:ring-2 focus:ring-primary-500 focus:border-primary-500",rows:"3",placeholder:"Hi, I'm your friend Xiaozhi!"},null,512),[[ne,i.value]])]),B("div",null,[B("label",Xy,v(b.$t("generateSummary.currentEmotion")),1),a.value.length>0?(H(),_("div",zy,[(H(!0),_(ZA,null,Pe(a.value,L=>(H(),_("button",{key:L.key,onClick:EA=>w(L.key),class:vA(["p-2 border rounded transition-colors flex items-center justify-center",n.value===L.key?"border-primary-500 bg-primary-50":"border-gray-200 hover:border-gray-300"]),title:L.name,style:qA({width:c()+"px",height:c()+"px"})},[E(L.key)?(H(),_("div",Aw,[B("img",{src:E(L.key),alt:L.name,style:qA({width:d()+"px",height:d()+"px"}),class:"object-contain rounded"},null,12,ew)])):(H(),_("div",tw,v(L.emoji),1))],14,$y))),128))])):(H(),_("div",iw,[B("div",nw,v(A.config.theme.emoji.type==="none"?"📦":"😕"),1),B("div",ow,v(A.config.theme.emoji.type==="none"?b.$t("emojiConfig.noEmojiPackDescription"):b.$t("generateSummary.configureEmojiFirst")),1)]))]),B("div",null,[B("label",rw,v(b.$t("generateSummary.themeMode")),1),B("div",gw,[B("button",{onClick:R[1]||(R[1]=L=>o.value="light"),class:vA(["flex-1 py-2 px-3 text-sm border rounded transition-colors",o.value==="light"?"border-primary-500 bg-primary-50 text-primary-700":"border-gray-300 hover:border-gray-400"])}," 🌞 "+v(b.$t("generateSummary.lightMode")),3),B("button",{onClick:R[2]||(R[2]=L=>o.value="dark"),class:vA(["flex-1 py-2 px-3 text-sm border rounded transition-colors",o.value==="dark"?"border-primary-500 bg-primary-50 text-primary-700":"border-gray-300 hover:border-gray-400"])}," 🌙 "+v(b.$t("generateSummary.darkMode")),3)])]),B("div",sw,[B("h4",aw,v(b.$t("generateSummary.configSummary")),1),B("div",Iw,[A.config.theme.wakeword?(H(),_("div",Cw,v(b.$t("generateSummary.wakeword"))+" "+v(F()),1)):aA("",!0),B("div",lw,[B("span",null,v(b.$t("generateSummary.font"))+" "+v(N()),1),r.value?aA("",!0):(H(),_("span",Bw,v(b.$t("generateSummary.loading")),1))]),B("div",null,v(b.$t("generateSummary.emotion"))+" "+v(G()),1),B("div",null,v(b.$t("generateSummary.skin"))+" "+v(P()),1),A.config.theme.font.hide_subtitle?(H(),_("div",Qw,v(b.$t("generateSummary.hideSubtitle"))+" "+v(b.$t("common.yes")),1)):aA("",!0)])])])])]),B("div",cw,[B("button",{onClick:R[3]||(R[3]=L=>b.$emit("prev")),class:"bg-gray-500 hover:bg-gray-600 text-white px-6 py-2 rounded-lg font-medium transition-colors"},v(b.$t("generateSummary.previous")),1),B("button",{onClick:R[4]||(R[4]=L=>b.$emit("generate")),class:"bg-green-500 hover:bg-green-600 text-white px-8 py-2 rounded-lg font-medium transition-colors flex items-center"},[R[5]||(R[5]=B("svg",{class:"w-5 h-5 mr-2",fill:"currentColor",viewBox:"0 0 20 20"},[B("path",{"fill-rule":"evenodd",d:"M3 17a1 1 0 011-1h12a1 1 0 110 2H4a1 1 0 01-1-1zm3.293-7.707a1 1 0 011.414 0L9 10.586V3a1 1 0 112 0v7.586l1.293-1.293a1 1 0 111.414 1.414l-3 3a1 1 0 01-1.414 0l-3-3a1 1 0 010-1.414z","clip-rule":"evenodd"})],-1)),st(" "+v(b.$t("generateSummary.generate")),1)])])]))}},uw=Dy(Ew,[["__scopeId","data-v-aa1dde40"]]);/*! https://mths.be/codepointat v0.2.0 by @mathias */String.prototype.codePointAt||function(){var A=function(){try{var t={},i=Object.defineProperty,n=i(t,t,t)&&i}catch{}return n}(),e=function(t){if(this==null)throw TypeError();var i=String(this),n=i.length,o=t?Number(t):0;if(o!=o&&(o=0),!(o<0||o>=n)){var r=i.charCodeAt(o),g;return r>=55296&&r<=56319&&n>o+1&&(g=i.charCodeAt(o+1),g>=56320&&g<=57343)?(r-55296)*1024+g-56320+65536:r}};A?A(String.prototype,"codePointAt",{value:e,configurable:!0,writable:!0}):String.prototype.codePointAt=e}();var cg=0,_C=-3;function In(){this.table=new Uint16Array(16),this.trans=new Uint16Array(288)}function hw(A,e){this.source=A,this.sourceIndex=0,this.tag=0,this.bitcount=0,this.dest=e,this.destLen=0,this.ltree=new In,this.dtree=new In}var KC=new In,PC=new In,Eg=new Uint8Array(30),ug=new Uint16Array(30),OC=new Uint8Array(30),VC=new Uint16Array(30),fw=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),zs=new In,At=new Uint8Array(320);function WC(A,e,t,i){var n,o;for(n=0;n<t;++n)A[n]=0;for(n=0;n<30-t;++n)A[n+t]=n/t|0;for(o=i,n=0;n<30;++n)e[n]=o,o+=1<<A[n]}function dw(A,e){var t;for(t=0;t<7;++t)A.table[t]=0;for(A.table[7]=24,A.table[8]=152,A.table[9]=112,t=0;t<24;++t)A.trans[t]=256+t;for(t=0;t<144;++t)A.trans[24+t]=t;for(t=0;t<8;++t)A.trans[168+t]=280+t;for(t=0;t<112;++t)A.trans[176+t]=144+t;for(t=0;t<5;++t)e.table[t]=0;for(e.table[5]=32,t=0;t<32;++t)e.trans[t]=t}var $s=new Uint16Array(16);function Zo(A,e,t,i){var n,o;for(n=0;n<16;++n)A.table[n]=0;for(n=0;n<i;++n)A.table[e[t+n]]++;for(A.table[0]=0,o=0,n=0;n<16;++n)$s[n]=o,o+=A.table[n];for(n=0;n<i;++n)e[t+n]&&(A.trans[$s[e[t+n]]++]=n)}function pw(A){A.bitcount--||(A.tag=A.source[A.sourceIndex++],A.bitcount=7);var e=A.tag&1;return A.tag>>>=1,e}function tt(A,e,t){if(!e)return t;for(;A.bitcount<24;)A.tag|=A.source[A.sourceIndex++]<<A.bitcount,A.bitcount+=8;var i=A.tag&65535>>>16-e;return A.tag>>>=e,A.bitcount-=e,i+t}function Rr(A,e){for(;A.bitcount<24;)A.tag|=A.source[A.sourceIndex++]<<A.bitcount,A.bitcount+=8;var t=0,i=0,n=0,o=A.tag;do i=2*i+(o&1),o>>>=1,++n,t+=e.table[n],i-=e.table[n];while(i>=0);return A.tag=o,A.bitcount-=n,e.trans[t+i]}function mw(A,e,t){var i,n,o,r,g,s;for(i=tt(A,5,257),n=tt(A,5,1),o=tt(A,4,4),r=0;r<19;++r)At[r]=0;for(r=0;r<o;++r){var a=tt(A,3,0);At[fw[r]]=a}for(Zo(zs,At,0,19),g=0;g<i+n;){var I=Rr(A,zs);switch(I){case 16:var l=At[g-1];for(s=tt(A,2,3);s;--s)At[g++]=l;break;case 17:for(s=tt(A,3,3);s;--s)At[g++]=0;break;case 18:for(s=tt(A,7,11);s;--s)At[g++]=0;break;default:At[g++]=I;break}}Zo(e,At,0,i),Zo(t,At,i,n)}function Aa(A,e,t){for(;;){var i=Rr(A,e);if(i===256)return cg;if(i<256)A.dest[A.destLen++]=i;else{var n,o,r,g;for(i-=257,n=tt(A,Eg[i],ug[i]),o=Rr(A,t),r=A.destLen-tt(A,OC[o],VC[o]),g=r;g<r+n;++g)A.dest[A.destLen++]=A.dest[g]}}}function yw(A){for(var e,t,i;A.bitcount>8;)A.sourceIndex--,A.bitcount-=8;if(e=A.source[A.sourceIndex+1],e=256*e+A.source[A.sourceIndex],t=A.source[A.sourceIndex+3],t=256*t+A.source[A.sourceIndex+2],e!==(~t&65535))return _C;for(A.sourceIndex+=4,i=e;i;--i)A.dest[A.destLen++]=A.source[A.sourceIndex++];return A.bitcount=0,cg}function ww(A,e){var t=new hw(A,e),i,n,o;do{switch(i=pw(t),n=tt(t,2,0),n){case 0:o=yw(t);break;case 1:o=Aa(t,KC,PC);break;case 2:mw(t,t.ltree,t.dtree),o=Aa(t,t.ltree,t.dtree);break;default:o=_C}if(o!==cg)throw new Error("Data error")}while(!i);return t.destLen<t.dest.length?typeof t.dest.slice=="function"?t.dest.slice(0,t.destLen):t.dest.subarray(0,t.destLen):t.dest}dw(KC,PC);WC(Eg,ug,4,3);WC(OC,VC,2,1);Eg[28]=0;ug[28]=258;var Dw=ww;function Qi(A,e,t,i,n){return Math.pow(1-n,3)*A+3*Math.pow(1-n,2)*n*e+3*(1-n)*Math.pow(n,2)*t+Math.pow(n,3)*i}function bt(){this.x1=Number.NaN,this.y1=Number.NaN,this.x2=Number.NaN,this.y2=Number.NaN}bt.prototype.isEmpty=function(){return isNaN(this.x1)||isNaN(this.y1)||isNaN(this.x2)||isNaN(this.y2)};bt.prototype.addPoint=function(A,e){typeof A=="number"&&((isNaN(this.x1)||isNaN(this.x2))&&(this.x1=A,this.x2=A),A<this.x1&&(this.x1=A),A>this.x2&&(this.x2=A)),typeof e=="number"&&((isNaN(this.y1)||isNaN(this.y2))&&(this.y1=e,this.y2=e),e<this.y1&&(this.y1=e),e>this.y2&&(this.y2=e))};bt.prototype.addX=function(A){this.addPoint(A,null)};bt.prototype.addY=function(A){this.addPoint(null,A)};bt.prototype.addBezier=function(A,e,t,i,n,o,r,g){var s=[A,e],a=[t,i],I=[n,o],l=[r,g];this.addPoint(A,e),this.addPoint(r,g);for(var C=0;C<=1;C++){var Q=6*s[C]-12*a[C]+6*I[C],u=-3*s[C]+9*a[C]-9*I[C]+3*l[C],f=3*a[C]-3*s[C];if(u===0){if(Q===0)continue;var h=-f/Q;0<h&&h<1&&(C===0&&this.addX(Qi(s[C],a[C],I[C],l[C],h)),C===1&&this.addY(Qi(s[C],a[C],I[C],l[C],h)));continue}var E=Math.pow(Q,2)-4*f*u;if(!(E<0)){var p=(-Q+Math.sqrt(E))/(2*u);0<p&&p<1&&(C===0&&this.addX(Qi(s[C],a[C],I[C],l[C],p)),C===1&&this.addY(Qi(s[C],a[C],I[C],l[C],p)));var c=(-Q-Math.sqrt(E))/(2*u);0<c&&c<1&&(C===0&&this.addX(Qi(s[C],a[C],I[C],l[C],c)),C===1&&this.addY(Qi(s[C],a[C],I[C],l[C],c)))}}};bt.prototype.addQuad=function(A,e,t,i,n,o){var r=A+.6666666666666666*(t-A),g=e+2/3*(i-e),s=r+1/3*(n-A),a=g+1/3*(o-e);this.addBezier(A,e,r,g,s,a,n,o)};function oe(){this.commands=[],this.fill="black",this.stroke=null,this.strokeWidth=1}oe.prototype.moveTo=function(A,e){this.commands.push({type:"M",x:A,y:e})};oe.prototype.lineTo=function(A,e){this.commands.push({type:"L",x:A,y:e})};oe.prototype.curveTo=oe.prototype.bezierCurveTo=function(A,e,t,i,n,o){this.commands.push({type:"C",x1:A,y1:e,x2:t,y2:i,x:n,y:o})};oe.prototype.quadTo=oe.prototype.quadraticCurveTo=function(A,e,t,i){this.commands.push({type:"Q",x1:A,y1:e,x:t,y:i})};oe.prototype.close=oe.prototype.closePath=function(){this.commands.push({type:"Z"})};oe.prototype.extend=function(A){if(A.commands)A=A.commands;else if(A instanceof bt){var e=A;this.moveTo(e.x1,e.y1),this.lineTo(e.x2,e.y1),this.lineTo(e.x2,e.y2),this.lineTo(e.x1,e.y2),this.close();return}Array.prototype.push.apply(this.commands,A)};oe.prototype.getBoundingBox=function(){for(var A=new bt,e=0,t=0,i=0,n=0,o=0;o<this.commands.length;o++){var r=this.commands[o];switch(r.type){case"M":A.addPoint(r.x,r.y),e=i=r.x,t=n=r.y;break;case"L":A.addPoint(r.x,r.y),i=r.x,n=r.y;break;case"Q":A.addQuad(i,n,r.x1,r.y1,r.x,r.y),i=r.x,n=r.y;break;case"C":A.addBezier(i,n,r.x1,r.y1,r.x2,r.y2,r.x,r.y),i=r.x,n=r.y;break;case"Z":i=e,n=t;break;default:throw new Error("Unexpected path command "+r.type)}}return A.isEmpty()&&A.addPoint(0,0),A};oe.prototype.draw=function(A){A.beginPath();for(var e=0;e<this.commands.length;e+=1){var t=this.commands[e];t.type==="M"?A.moveTo(t.x,t.y):t.type==="L"?A.lineTo(t.x,t.y):t.type==="C"?A.bezierCurveTo(t.x1,t.y1,t.x2,t.y2,t.x,t.y):t.type==="Q"?A.quadraticCurveTo(t.x1,t.y1,t.x,t.y):t.type==="Z"&&A.closePath()}this.fill&&(A.fillStyle=this.fill,A.fill()),this.stroke&&(A.strokeStyle=this.stroke,A.lineWidth=this.strokeWidth,A.stroke())};oe.prototype.toPathData=function(A){A=A!==void 0?A:2;function e(r){return Math.round(r)===r?""+Math.round(r):r.toFixed(A)}function t(){for(var r=arguments,g="",s=0;s<arguments.length;s+=1){var a=r[s];a>=0&&s>0&&(g+=" "),g+=e(a)}return g}for(var i="",n=0;n<this.commands.length;n+=1){var o=this.commands[n];o.type==="M"?i+="M"+t(o.x,o.y):o.type==="L"?i+="L"+t(o.x,o.y):o.type==="C"?i+="C"+t(o.x1,o.y1,o.x2,o.y2,o.x,o.y):o.type==="Q"?i+="Q"+t(o.x1,o.y1,o.x,o.y):o.type==="Z"&&(i+="Z")}return i};oe.prototype.toSVG=function(A){var e='<path d="';return e+=this.toPathData(A),e+='"',this.fill&&this.fill!=="black"&&(this.fill===null?e+=' fill="none"':e+=' fill="'+this.fill+'"'),this.stroke&&(e+=' stroke="'+this.stroke+'" stroke-width="'+this.strokeWidth+'"'),e+="/>",e};oe.prototype.toDOMElement=function(A){var e=this.toPathData(A),t=document.createElementNS("http://www.w3.org/2000/svg","path");return t.setAttribute("d",e),t};function qC(A){throw new Error(A)}function ea(A,e){A||qC(e)}var yA={fail:qC,argument:ea,assert:ea},ta=32768,ia=2147483648,Ni={},rA={},DA={};function Ze(A){return function(){return A}}rA.BYTE=function(A){return yA.argument(A>=0&&A<=255,"Byte value should be between 0 and 255."),[A]};DA.BYTE=Ze(1);rA.CHAR=function(A){return[A.charCodeAt(0)]};DA.CHAR=Ze(1);rA.CHARARRAY=function(A){typeof A>"u"&&(A="",console.warn("Undefined CHARARRAY encountered and treated as an empty string. This is probably caused by a missing glyph name."));for(var e=[],t=0;t<A.length;t+=1)e[t]=A.charCodeAt(t);return e};DA.CHARARRAY=function(A){return typeof A>"u"?0:A.length};rA.USHORT=function(A){return[A>>8&255,A&255]};DA.USHORT=Ze(2);rA.SHORT=function(A){return A>=ta&&(A=-(2*ta-A)),[A>>8&255,A&255]};DA.SHORT=Ze(2);rA.UINT24=function(A){return[A>>16&255,A>>8&255,A&255]};DA.UINT24=Ze(3);rA.ULONG=function(A){return[A>>24&255,A>>16&255,A>>8&255,A&255]};DA.ULONG=Ze(4);rA.LONG=function(A){return A>=ia&&(A=-(2*ia-A)),[A>>24&255,A>>16&255,A>>8&255,A&255]};DA.LONG=Ze(4);rA.FIXED=rA.ULONG;DA.FIXED=DA.ULONG;rA.FWORD=rA.SHORT;DA.FWORD=DA.SHORT;rA.UFWORD=rA.USHORT;DA.UFWORD=DA.USHORT;rA.LONGDATETIME=function(A){return[0,0,0,0,A>>24&255,A>>16&255,A>>8&255,A&255]};DA.LONGDATETIME=Ze(8);rA.TAG=function(A){return yA.argument(A.length===4,"Tag should be exactly 4 ASCII characters."),[A.charCodeAt(0),A.charCodeAt(1),A.charCodeAt(2),A.charCodeAt(3)]};DA.TAG=Ze(4);rA.Card8=rA.BYTE;DA.Card8=DA.BYTE;rA.Card16=rA.USHORT;DA.Card16=DA.USHORT;rA.OffSize=rA.BYTE;DA.OffSize=DA.BYTE;rA.SID=rA.USHORT;DA.SID=DA.USHORT;rA.NUMBER=function(A){return A>=-107&&A<=107?[A+139]:A>=108&&A<=1131?(A=A-108,[(A>>8)+247,A&255]):A>=-1131&&A<=-108?(A=-A-108,[(A>>8)+251,A&255]):A>=-32768&&A<=32767?rA.NUMBER16(A):rA.NUMBER32(A)};DA.NUMBER=function(A){return rA.NUMBER(A).length};rA.NUMBER16=function(A){return[28,A>>8&255,A&255]};DA.NUMBER16=Ze(3);rA.NUMBER32=function(A){return[29,A>>24&255,A>>16&255,A>>8&255,A&255]};DA.NUMBER32=Ze(5);rA.REAL=function(A){var e=A.toString(),t=/\.(\d*?)(?:9{5,20}|0{5,20})\d{0,2}(?:e(.+)|$)/.exec(e);if(t){var i=parseFloat("1e"+((t[2]?+t[2]:0)+t[1].length));e=(Math.round(A*i)/i).toString()}for(var n="",o=0,r=e.length;o<r;o+=1){var g=e[o];g==="e"?n+=e[++o]==="-"?"c":"b":g==="."?n+="a":g==="-"?n+="e":n+=g}n+=n.length&1?"f":"ff";for(var s=[30],a=0,I=n.length;a<I;a+=2)s.push(parseInt(n.substr(a,2),16));return s};DA.REAL=function(A){return rA.REAL(A).length};rA.NAME=rA.CHARARRAY;DA.NAME=DA.CHARARRAY;rA.STRING=rA.CHARARRAY;DA.STRING=DA.CHARARRAY;Ni.UTF8=function(A,e,t){for(var i=[],n=t,o=0;o<n;o++,e+=1)i[o]=A.getUint8(e);return String.fromCharCode.apply(null,i)};Ni.UTF16=function(A,e,t){for(var i=[],n=t/2,o=0;o<n;o++,e+=2)i[o]=A.getUint16(e);return String.fromCharCode.apply(null,i)};rA.UTF16=function(A){for(var e=[],t=0;t<A.length;t+=1){var i=A.charCodeAt(t);e[e.length]=i>>8&255,e[e.length]=i&255}return e};DA.UTF16=function(A){return A.length*2};var Nr={"x-mac-croatian":"ÄÅÇÉÑÖÜáàâäãåçéèêëíìîïñóòôöõúùûü†°¢£§•¶ß®Š™´¨≠ŽØ∞±≤≥∆µ∂∑∏š∫ªºΩžø¿¡¬√ƒ≈ƫȅ ÀÃÕŒœĐ—“”‘’÷◊©⁄€‹›Æ»–·‚„‰ÂćÁčÈÍÎÏÌÓÔđÒÚÛÙıˆ˜¯πË˚¸Êæˇ","x-mac-cyrillic":"АБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ†°Ґ£§•¶І®©™Ђђ≠Ѓѓ∞±≤≥іµґЈЄєЇїЉљЊњјЅ¬√ƒ≈∆«»… ЋћЌќѕ–—“”‘’÷„ЎўЏџ№Ёёяабвгдежзийклмнопрстуфхцчшщъыьэю","x-mac-gaelic":"ÄÅÇÉÑÖÜáàâäãåçéèêëíìîïñóòôöõúùûü†°¢£§•¶ß®©™´¨≠ÆØḂ±≤≥ḃĊċḊḋḞḟĠġṀæøṁṖṗɼƒſṠ«»… ÀÃÕŒœ–—“”‘’ṡẛÿŸṪ€‹›Ŷŷṫ·Ỳỳ⁊ÂÊÁËÈÍÎÏÌÓÔ♣ÒÚÛÙıÝýŴŵẄẅẀẁẂẃ","x-mac-greek":"Ĺ²É³ÖÜ΅àâä΄¨çéèê룙î‰ôö¦€ùûü†ΓΔΘΛΞΠß®©ΣΪ§≠°·Α±≤≥¥ΒΕΖΗΙΚΜΦΫΨΩάΝ¬ΟΡ≈Τ«»… ΥΧΆΈœ–―“”‘’÷ΉΊΌΎέήίόΏύαβψδεφγηιξκλμνοπώρστθωςχυζϊϋΐΰ","x-mac-icelandic":"ÄÅÇÉÑÖÜáàâäãåçéèêëíìîïñóòôöõúùûüݰ¢£§•¶ß®©™´¨≠ÆØ∞±≤≥¥µ∂∑∏π∫ªºΩæø¿¡¬√ƒ≈∆«»… ÀÃÕŒœ–—“”‘’÷◊ÿŸ⁄€ÐðÞþý·‚„‰ÂÊÁËÈÍÎÏÌÓÔÒÚÛÙıˆ˜¯˘˙˚¸˝˛ˇ","x-mac-inuit":"ᐃᐄᐅᐆᐊᐋᐱᐲᐳᐴᐸᐹᑉᑎᑏᑐᑑᑕᑖᑦᑭᑮᑯᑰᑲᑳᒃᒋᒌᒍᒎᒐᒑ°ᒡᒥᒦ•¶ᒧ®©™ᒨᒪᒫᒻᓂᓃᓄᓅᓇᓈᓐᓯᓰᓱᓲᓴᓵᔅᓕᓖᓗᓘᓚᓛᓪᔨᔩᔪᔫᔭ… ᔮᔾᕕᕖᕗ–—“”‘’ᕘᕙᕚᕝᕆᕇᕈᕉᕋᕌᕐᕿᖀᖁᖂᖃᖄᖅᖏᖐᖑᖒᖓᖔᖕᙱᙲᙳᙴᙵᙶᖖᖠᖡᖢᖣᖤᖥᖦᕼŁł","x-mac-ce":"ÄĀāÉĄÖÜáąČäčĆć鏟ĎíďĒēĖóėôöõúĚěü†°Ę£§•¶ß®©™ę¨≠ģĮįĪ≤≥īĶ∂∑łĻļĽľĹĺŅņѬ√ńŇ∆«»… ňŐÕőŌ–—“”‘’÷◊ōŔŕŘ‹›řŖŗŠ‚„šŚśÁŤťÍŽžŪÓÔūŮÚůŰűŲųÝýķŻŁżĢˇ",macintosh:"ÄÅÇÉÑÖÜáàâäãåçéèêëíìîïñóòôöõúùûü†°¢£§•¶ß®©™´¨≠ÆØ∞±≤≥¥µ∂∑∏π∫ªºΩæø¿¡¬√ƒ≈∆«»… ÀÃÕŒœ–—“”‘’÷◊ÿŸ⁄€‹›fifl‡·‚„‰ÂÊÁËÈÍÎÏÌÓÔÒÚÛÙıˆ˜¯˘˙˚¸˝˛ˇ","x-mac-romanian":"ÄÅÇÉÑÖÜáàâäãåçéèêëíìîïñóòôöõúùûü†°¢£§•¶ß®©™´¨≠ĂȘ∞±≤≥¥µ∂∑∏π∫ªºΩăș¿¡¬√ƒ≈∆«»… ÀÃÕŒœ–—“”‘’÷◊ÿŸ⁄€‹›Țț‡·‚„‰ÂÊÁËÈÍÎÏÌÓÔÒÚÛÙıˆ˜¯˘˙˚¸˝˛ˇ","x-mac-turkish":"ÄÅÇÉÑÖÜáàâäãåçéèêëíìîïñóòôöõúùûü†°¢£§•¶ß®©™´¨≠ÆØ∞±≤≥¥µ∂∑∏π∫ªºΩæø¿¡¬√ƒ≈∆«»… ÀÃÕŒœ–—“”‘’÷◊ÿŸĞğİıŞş‡·‚„‰ÂÊÁËÈÍÎÏÌÓÔÒÚÛÙˆ˜¯˘˙˚¸˝˛ˇ"};Ni.MACSTRING=function(A,e,t,i){var n=Nr[i];if(n!==void 0){for(var o="",r=0;r<t;r++){var g=A.getUint8(e+r);g<=127?o+=String.fromCharCode(g):o+=n[g&127]}return o}};var Gn=typeof WeakMap=="function"&&new WeakMap,Ln,kw=function(A){if(!Ln){Ln={};for(var e in Nr)Ln[e]=new String(e)}var t=Ln[A];if(t!==void 0){if(Gn){var i=Gn.get(t);if(i!==void 0)return i}var n=Nr[A];if(n!==void 0){for(var o={},r=0;r<n.length;r++)o[n.charCodeAt(r)]=r+128;return Gn&&Gn.set(t,o),o}}};rA.MACSTRING=function(A,e){var t=kw(e);if(t!==void 0){for(var i=[],n=0;n<A.length;n++){var o=A.charCodeAt(n);if(o>=128&&(o=t[o],o===void 0))return;i[n]=o}return i}};DA.MACSTRING=function(A,e){var t=rA.MACSTRING(A,e);return t!==void 0?t.length:0};function Gr(A){return A>=-128&&A<=127}function vw(A,e,t){for(var i=0,n=A.length;e<n&&i<64&&A[e]===0;)++e,++i;return t.push(128|i-1),e}function Fw(A,e,t){for(var i=0,n=A.length,o=e;o<n&&i<64;){var r=A[o];if(!Gr(r)||r===0&&o+1<n&&A[o+1]===0)break;++o,++i}t.push(i-1);for(var g=e;g<o;++g)t.push(A[g]+256&255);return o}function Sw(A,e,t){for(var i=0,n=A.length,o=e;o<n&&i<64;){var r=A[o];if(r===0||Gr(r)&&o+1<n&&Gr(A[o+1]))break;++o,++i}t.push(64|i-1);for(var g=e;g<o;++g){var s=A[g];t.push(s+65536>>8&255,s+256&255)}return o}rA.VARDELTAS=function(A){for(var e=0,t=[];e<A.length;){var i=A[e];i===0?e=vw(A,e,t):i>=-128&&i<=127?e=Fw(A,e,t):e=Sw(A,e,t)}return t};rA.INDEX=function(A){for(var e=1,t=[e],i=[],n=0;n<A.length;n+=1){var o=rA.OBJECT(A[n]);Array.prototype.push.apply(i,o),e+=o.length,t.push(e)}if(i.length===0)return[0,0];for(var r=[],g=1+Math.floor(Math.log(e)/Math.log(2))/8|0,s=[void 0,rA.BYTE,rA.USHORT,rA.UINT24,rA.ULONG][g],a=0;a<t.length;a+=1){var I=s(t[a]);Array.prototype.push.apply(r,I)}return Array.prototype.concat(rA.Card16(A.length),rA.OffSize(g),r,i)};DA.INDEX=function(A){return rA.INDEX(A).length};rA.DICT=function(A){for(var e=[],t=Object.keys(A),i=t.length,n=0;n<i;n+=1){var o=parseInt(t[n],0),r=A[o];e=e.concat(rA.OPERAND(r.value,r.type)),e=e.concat(rA.OPERATOR(o))}return e};DA.DICT=function(A){return rA.DICT(A).length};rA.OPERATOR=function(A){return A<1200?[A]:[12,A-1200]};rA.OPERAND=function(A,e){var t=[];if(Array.isArray(e))for(var i=0;i<e.length;i+=1)yA.argument(A.length===e.length,"Not enough arguments given for type"+e),t=t.concat(rA.OPERAND(A[i],e[i]));else if(e==="SID")t=t.concat(rA.NUMBER(A));else if(e==="offset")t=t.concat(rA.NUMBER32(A));else if(e==="number")t=t.concat(rA.NUMBER(A));else if(e==="real")t=t.concat(rA.REAL(A));else throw new Error("Unknown operand type "+e);return t};rA.OP=rA.BYTE;DA.OP=DA.BYTE;var Un=typeof WeakMap=="function"&&new WeakMap;rA.CHARSTRING=function(A){if(Un){var e=Un.get(A);if(e!==void 0)return e}for(var t=[],i=A.length,n=0;n<i;n+=1){var o=A[n];t=t.concat(rA[o.type](o.value))}return Un&&Un.set(A,t),t};DA.CHARSTRING=function(A){return rA.CHARSTRING(A).length};rA.OBJECT=function(A){var e=rA[A.type];return yA.argument(e!==void 0,"No encoding function for type "+A.type),e(A.value)};DA.OBJECT=function(A){var e=DA[A.type];return yA.argument(e!==void 0,"No sizeOf function for type "+A.type),e(A.value)};rA.TABLE=function(A){for(var e=[],t=A.fields.length,i=[],n=[],o=0;o<t;o+=1){var r=A.fields[o],g=rA[r.type];yA.argument(g!==void 0,"No encoding function for field type "+r.type+" ("+r.name+")");var s=A[r.name];s===void 0&&(s=r.value);var a=g(s);r.type==="TABLE"?(n.push(e.length),e=e.concat([0,0]),i.push(a)):e=e.concat(a)}for(var I=0;I<i.length;I+=1){var l=n[I],C=e.length;yA.argument(C<65536,"Table "+A.tableName+" too big."),e[l]=C>>8,e[l+1]=C&255,e=e.concat(i[I])}return e};DA.TABLE=function(A){for(var e=0,t=A.fields.length,i=0;i<t;i+=1){var n=A.fields[i],o=DA[n.type];yA.argument(o!==void 0,"No sizeOf function for field type "+n.type+" ("+n.name+")");var r=A[n.name];r===void 0&&(r=n.value),e+=o(r),n.type==="TABLE"&&(e+=2)}return e};rA.RECORD=rA.TABLE;DA.RECORD=DA.TABLE;rA.LITERAL=function(A){return A};DA.LITERAL=function(A){return A.length};function ae(A,e,t){if(e.length&&(e[0].name!=="coverageFormat"||e[0].value===1))for(var i=0;i<e.length;i+=1){var n=e[i];this[n.name]=n.value}if(this.tableName=A,this.fields=e,t)for(var o=Object.keys(t),r=0;r<o.length;r+=1){var g=o[r],s=t[g];this[g]!==void 0&&(this[g]=s)}}ae.prototype.encode=function(){return rA.TABLE(this)};ae.prototype.sizeOf=function(){return DA.TABLE(this)};function Cn(A,e,t){t===void 0&&(t=e.length);var i=new Array(e.length+1);i[0]={name:A+"Count",type:"USHORT",value:t};for(var n=0;n<e.length;n++)i[n+1]={name:A+n,type:"USHORT",value:e[n]};return i}function Lr(A,e,t){var i=e.length,n=new Array(i+1);n[0]={name:A+"Count",type:"USHORT",value:i};for(var o=0;o<i;o++)n[o+1]={name:A+o,type:"TABLE",value:t(e[o],o)};return n}function ln(A,e,t){var i=e.length,n=[];n[0]={name:A+"Count",type:"USHORT",value:i};for(var o=0;o<i;o++)n=n.concat(t(e[o],o));return n}function go(A){A.format===1?ae.call(this,"coverageTable",[{name:"coverageFormat",type:"USHORT",value:1}].concat(Cn("glyph",A.glyphs))):A.format===2?ae.call(this,"coverageTable",[{name:"coverageFormat",type:"USHORT",value:2}].concat(ln("rangeRecord",A.ranges,function(e){return[{name:"startGlyphID",type:"USHORT",value:e.start},{name:"endGlyphID",type:"USHORT",value:e.end},{name:"startCoverageIndex",type:"USHORT",value:e.index}]}))):yA.assert(!1,"Coverage format must be 1 or 2.")}go.prototype=Object.create(ae.prototype);go.prototype.constructor=go;function so(A){ae.call(this,"scriptListTable",ln("scriptRecord",A,function(e,t){var i=e.script,n=i.defaultLangSys;return yA.assert(!!n,"Unable to write GSUB: script "+e.tag+" has no default language system."),[{name:"scriptTag"+t,type:"TAG",value:e.tag},{name:"script"+t,type:"TABLE",value:new ae("scriptTable",[{name:"defaultLangSys",type:"TABLE",value:new ae("defaultLangSys",[{name:"lookupOrder",type:"USHORT",value:0},{name:"reqFeatureIndex",type:"USHORT",value:n.reqFeatureIndex}].concat(Cn("featureIndex",n.featureIndexes)))}].concat(ln("langSys",i.langSysRecords,function(o,r){var g=o.langSys;return[{name:"langSysTag"+r,type:"TAG",value:o.tag},{name:"langSys"+r,type:"TABLE",value:new ae("langSys",[{name:"lookupOrder",type:"USHORT",value:0},{name:"reqFeatureIndex",type:"USHORT",value:g.reqFeatureIndex}].concat(Cn("featureIndex",g.featureIndexes)))}]})))}]}))}so.prototype=Object.create(ae.prototype);so.prototype.constructor=so;function ao(A){ae.call(this,"featureListTable",ln("featureRecord",A,function(e,t){var i=e.feature;return[{name:"featureTag"+t,type:"TAG",value:e.tag},{name:"feature"+t,type:"TABLE",value:new ae("featureTable",[{name:"featureParams",type:"USHORT",value:i.featureParams}].concat(Cn("lookupListIndex",i.lookupListIndexes)))}]}))}ao.prototype=Object.create(ae.prototype);ao.prototype.constructor=ao;function Io(A,e){ae.call(this,"lookupListTable",Lr("lookup",A,function(t){var i=e[t.lookupType];return yA.assert(!!i,"Unable to write GSUB lookup type "+t.lookupType+" tables."),new ae("lookupTable",[{name:"lookupType",type:"USHORT",value:t.lookupType},{name:"lookupFlag",type:"USHORT",value:t.lookupFlag}].concat(Lr("subtable",t.subtables,i)))}))}Io.prototype=Object.create(ae.prototype);Io.prototype.constructor=Io;var IA={Table:ae,Record:ae,Coverage:go,ScriptList:so,FeatureList:ao,LookupList:Io,ushortList:Cn,tableList:Lr,recordList:ln};function na(A,e){return A.getUint8(e)}function Co(A,e){return A.getUint16(e,!1)}function bw(A,e){return A.getInt16(e,!1)}function hg(A,e){return A.getUint32(e,!1)}function jC(A,e){var t=A.getInt16(e,!1),i=A.getUint16(e+2,!1);return t+i/65535}function Rw(A,e){for(var t="",i=e;i<e+4;i+=1)t+=String.fromCharCode(A.getInt8(i));return t}function Nw(A,e,t){for(var i=0,n=0;n<t;n+=1)i<<=8,i+=A.getUint8(e+n);return i}function Gw(A,e,t){for(var i=[],n=e;n<t;n+=1)i.push(A.getUint8(n));return i}function Lw(A){for(var e="",t=0;t<A.length;t+=1)e+=String.fromCharCode(A[t]);return e}var Uw={byte:1,uShort:2,short:2,uLong:4,fixed:4,longDateTime:8,tag:4};function T(A,e){this.data=A,this.offset=e,this.relativeOffset=0}T.prototype.parseByte=function(){var A=this.data.getUint8(this.offset+this.relativeOffset);return this.relativeOffset+=1,A};T.prototype.parseChar=function(){var A=this.data.getInt8(this.offset+this.relativeOffset);return this.relativeOffset+=1,A};T.prototype.parseCard8=T.prototype.parseByte;T.prototype.parseUShort=function(){var A=this.data.getUint16(this.offset+this.relativeOffset);return this.relativeOffset+=2,A};T.prototype.parseCard16=T.prototype.parseUShort;T.prototype.parseSID=T.prototype.parseUShort;T.prototype.parseOffset16=T.prototype.parseUShort;T.prototype.parseShort=function(){var A=this.data.getInt16(this.offset+this.relativeOffset);return this.relativeOffset+=2,A};T.prototype.parseF2Dot14=function(){var A=this.data.getInt16(this.offset+this.relativeOffset)/16384;return this.relativeOffset+=2,A};T.prototype.parseULong=function(){var A=hg(this.data,this.offset+this.relativeOffset);return this.relativeOffset+=4,A};T.prototype.parseOffset32=T.prototype.parseULong;T.prototype.parseFixed=function(){var A=jC(this.data,this.offset+this.relativeOffset);return this.relativeOffset+=4,A};T.prototype.parseString=function(A){var e=this.data,t=this.offset+this.relativeOffset,i="";this.relativeOffset+=A;for(var n=0;n<A;n++)i+=String.fromCharCode(e.getUint8(t+n));return i};T.prototype.parseTag=function(){return this.parseString(4)};T.prototype.parseLongDateTime=function(){var A=hg(this.data,this.offset+this.relativeOffset+4);return A-=2082844800,this.relativeOffset+=8,A};T.prototype.parseVersion=function(A){var e=Co(this.data,this.offset+this.relativeOffset),t=Co(this.data,this.offset+this.relativeOffset+2);return this.relativeOffset+=4,A===void 0&&(A=4096),e+t/A/10};T.prototype.skip=function(A,e){e===void 0&&(e=1),this.relativeOffset+=Uw[A]*e};T.prototype.parseULongList=function(A){A===void 0&&(A=this.parseULong());for(var e=new Array(A),t=this.data,i=this.offset+this.relativeOffset,n=0;n<A;n++)e[n]=t.getUint32(i),i+=4;return this.relativeOffset+=A*4,e};T.prototype.parseOffset16List=T.prototype.parseUShortList=function(A){A===void 0&&(A=this.parseUShort());for(var e=new Array(A),t=this.data,i=this.offset+this.relativeOffset,n=0;n<A;n++)e[n]=t.getUint16(i),i+=2;return this.relativeOffset+=A*2,e};T.prototype.parseShortList=function(A){for(var e=new Array(A),t=this.data,i=this.offset+this.relativeOffset,n=0;n<A;n++)e[n]=t.getInt16(i),i+=2;return this.relativeOffset+=A*2,e};T.prototype.parseByteList=function(A){for(var e=new Array(A),t=this.data,i=this.offset+this.relativeOffset,n=0;n<A;n++)e[n]=t.getUint8(i++);return this.relativeOffset+=A,e};T.prototype.parseList=function(A,e){e||(e=A,A=this.parseUShort());for(var t=new Array(A),i=0;i<A;i++)t[i]=e.call(this);return t};T.prototype.parseList32=function(A,e){e||(e=A,A=this.parseULong());for(var t=new Array(A),i=0;i<A;i++)t[i]=e.call(this);return t};T.prototype.parseRecordList=function(A,e){e||(e=A,A=this.parseUShort());for(var t=new Array(A),i=Object.keys(e),n=0;n<A;n++){for(var o={},r=0;r<i.length;r++){var g=i[r],s=e[g];o[g]=s.call(this)}t[n]=o}return t};T.prototype.parseRecordList32=function(A,e){e||(e=A,A=this.parseULong());for(var t=new Array(A),i=Object.keys(e),n=0;n<A;n++){for(var o={},r=0;r<i.length;r++){var g=i[r],s=e[g];o[g]=s.call(this)}t[n]=o}return t};T.prototype.parseStruct=function(A){if(typeof A=="function")return A.call(this);for(var e=Object.keys(A),t={},i=0;i<e.length;i++){var n=e[i],o=A[n];t[n]=o.call(this)}return t};T.prototype.parseValueRecord=function(A){if(A===void 0&&(A=this.parseUShort()),A!==0){var e={};return A&1&&(e.xPlacement=this.parseShort()),A&2&&(e.yPlacement=this.parseShort()),A&4&&(e.xAdvance=this.parseShort()),A&8&&(e.yAdvance=this.parseShort()),A&16&&(e.xPlaDevice=void 0,this.parseShort()),A&32&&(e.yPlaDevice=void 0,this.parseShort()),A&64&&(e.xAdvDevice=void 0,this.parseShort()),A&128&&(e.yAdvDevice=void 0,this.parseShort()),e}};T.prototype.parseValueRecordList=function(){for(var A=this.parseUShort(),e=this.parseUShort(),t=new Array(e),i=0;i<e;i++)t[i]=this.parseValueRecord(A);return t};T.prototype.parsePointer=function(A){var e=this.parseOffset16();if(e>0)return new T(this.data,this.offset+e).parseStruct(A)};T.prototype.parsePointer32=function(A){var e=this.parseOffset32();if(e>0)return new T(this.data,this.offset+e).parseStruct(A)};T.prototype.parseListOfLists=function(A){for(var e=this.parseOffset16List(),t=e.length,i=this.relativeOffset,n=new Array(t),o=0;o<t;o++){var r=e[o];if(r===0){n[o]=void 0;continue}if(this.relativeOffset=r,A){for(var g=this.parseOffset16List(),s=new Array(g.length),a=0;a<g.length;a++)this.relativeOffset=r+g[a],s[a]=A.call(this);n[o]=s}else n[o]=this.parseUShortList()}return this.relativeOffset=i,n};T.prototype.parseCoverage=function(){var A=this.offset+this.relativeOffset,e=this.parseUShort(),t=this.parseUShort();if(e===1)return{format:1,glyphs:this.parseUShortList(t)};if(e===2){for(var i=new Array(t),n=0;n<t;n++)i[n]={start:this.parseUShort(),end:this.parseUShort(),index:this.parseUShort()};return{format:2,ranges:i}}throw new Error("0x"+A.toString(16)+": Coverage format must be 1 or 2.")};T.prototype.parseClassDef=function(){var A=this.offset+this.relativeOffset,e=this.parseUShort();if(e===1)return{format:1,startGlyph:this.parseUShort(),classes:this.parseUShortList()};if(e===2)return{format:2,ranges:this.parseRecordList({start:T.uShort,end:T.uShort,classId:T.uShort})};throw new Error("0x"+A.toString(16)+": ClassDef format must be 1 or 2.")};T.list=function(A,e){return function(){return this.parseList(A,e)}};T.list32=function(A,e){return function(){return this.parseList32(A,e)}};T.recordList=function(A,e){return function(){return this.parseRecordList(A,e)}};T.recordList32=function(A,e){return function(){return this.parseRecordList32(A,e)}};T.pointer=function(A){return function(){return this.parsePointer(A)}};T.pointer32=function(A){return function(){return this.parsePointer32(A)}};T.tag=T.prototype.parseTag;T.byte=T.prototype.parseByte;T.uShort=T.offset16=T.prototype.parseUShort;T.uShortList=T.prototype.parseUShortList;T.uLong=T.offset32=T.prototype.parseULong;T.uLongList=T.prototype.parseULongList;T.struct=T.prototype.parseStruct;T.coverage=T.prototype.parseCoverage;T.classDef=T.prototype.parseClassDef;var oa={reserved:T.uShort,reqFeatureIndex:T.uShort,featureIndexes:T.uShortList};T.prototype.parseScriptList=function(){return this.parsePointer(T.recordList({tag:T.tag,script:T.pointer({defaultLangSys:T.pointer(oa),langSysRecords:T.recordList({tag:T.tag,langSys:T.pointer(oa)})})}))||[]};T.prototype.parseFeatureList=function(){return this.parsePointer(T.recordList({tag:T.tag,feature:T.pointer({featureParams:T.offset16,lookupListIndexes:T.uShortList})}))||[]};T.prototype.parseLookupList=function(A){return this.parsePointer(T.list(T.pointer(function(){var e=this.parseUShort();yA.argument(1<=e&&e<=9,"GPOS/GSUB lookup type "+e+" unknown.");var t=this.parseUShort(),i=t&16;return{lookupType:e,lookupFlag:t,subtables:this.parseList(T.pointer(A[e])),markFilteringSet:i?this.parseUShort():void 0}})))||[]};T.prototype.parseFeatureVariationsList=function(){return this.parsePointer32(function(){var A=this.parseUShort(),e=this.parseUShort();yA.argument(A===1&&e<1,"GPOS/GSUB feature variations table unknown.");var t=this.parseRecordList32({conditionSetOffset:T.offset32,featureTableSubstitutionOffset:T.offset32});return t})||[]};var QA={getByte:na,getCard8:na,getUShort:Co,getCard16:Co,getShort:bw,getULong:hg,getFixed:jC,getTag:Rw,getOffset:Nw,getBytes:Gw,bytesToString:Lw,Parser:T};function Mw(A,e){e.parseUShort(),A.length=e.parseULong(),A.language=e.parseULong();var t;A.groupCount=t=e.parseULong(),A.glyphIndexMap={};for(var i=0;i<t;i+=1)for(var n=e.parseULong(),o=e.parseULong(),r=e.parseULong(),g=n;g<=o;g+=1)A.glyphIndexMap[g]=r,r++}function xw(A,e,t,i,n){A.length=e.parseUShort(),A.language=e.parseUShort();var o;A.segCount=o=e.parseUShort()>>1,e.skip("uShort",3),A.glyphIndexMap={};for(var r=new QA.Parser(t,i+n+14),g=new QA.Parser(t,i+n+16+o*2),s=new QA.Parser(t,i+n+16+o*4),a=new QA.Parser(t,i+n+16+o*6),I=i+n+16+o*8,l=0;l<o-1;l+=1)for(var C=void 0,Q=r.parseUShort(),u=g.parseUShort(),f=s.parseShort(),h=a.parseUShort(),E=u;E<=Q;E+=1)h!==0?(I=a.offset+a.relativeOffset-2,I+=h,I+=(E-u)*2,C=QA.getUShort(t,I),C!==0&&(C=C+f&65535)):C=E+f&65535,A.glyphIndexMap[E]=C}function Jw(A,e){var t={};t.version=QA.getUShort(A,e),yA.argument(t.version===0,"cmap table version should be 0."),t.numTables=QA.getUShort(A,e+2);for(var i=-1,n=t.numTables-1;n>=0;n-=1){var o=QA.getUShort(A,e+4+n*8),r=QA.getUShort(A,e+4+n*8+2);if(o===3&&(r===0||r===1||r===10)||o===0&&(r===0||r===1||r===2||r===3||r===4)){i=QA.getULong(A,e+4+n*8+4);break}}if(i===-1)throw new Error("No valid cmap sub-tables found.");var g=new QA.Parser(A,e+i);if(t.format=g.parseUShort(),t.format===12)Mw(t,g);else if(t.format===4)xw(t,g,A,e,i);else throw new Error("Only format 4 and 12 cmap tables are supported (found format "+t.format+").");return t}function Tw(A,e,t){A.segments.push({end:e,start:e,delta:-(e-t),offset:0,glyphIndex:t})}function Hw(A){A.segments.push({end:65535,start:65535,delta:1,offset:0})}function Yw(A){var e=!0,t;for(t=A.length-1;t>0;t-=1){var i=A.get(t);if(i.unicode>65535){console.log("Adding CMAP format 12 (needed!)"),e=!1;break}}var n=[{name:"version",type:"USHORT",value:0},{name:"numTables",type:"USHORT",value:e?1:2},{name:"platformID",type:"USHORT",value:3},{name:"encodingID",type:"USHORT",value:1},{name:"offset",type:"ULONG",value:e?12:20}];e||(n=n.concat([{name:"cmap12PlatformID",type:"USHORT",value:3},{name:"cmap12EncodingID",type:"USHORT",value:10},{name:"cmap12Offset",type:"ULONG",value:0}])),n=n.concat([{name:"format",type:"USHORT",value:4},{name:"cmap4Length",type:"USHORT",value:0},{name:"language",type:"USHORT",value:0},{name:"segCountX2",type:"USHORT",value:0},{name:"searchRange",type:"USHORT",value:0},{name:"entrySelector",type:"USHORT",value:0},{name:"rangeShift",type:"USHORT",value:0}]);var o=new IA.Table("cmap",n);for(o.segments=[],t=0;t<A.length;t+=1){for(var r=A.get(t),g=0;g<r.unicodes.length;g+=1)Tw(o,r.unicodes[g],t);o.segments=o.segments.sort(function(p,c){return p.start-c.start})}Hw(o);var s=o.segments.length,a=0,I=[],l=[],C=[],Q=[],u=[],f=[];for(t=0;t<s;t+=1){var h=o.segments[t];h.end<=65535&&h.start<=65535?(I=I.concat({name:"end_"+t,type:"USHORT",value:h.end}),l=l.concat({name:"start_"+t,type:"USHORT",value:h.start}),C=C.concat({name:"idDelta_"+t,type:"SHORT",value:h.delta}),Q=Q.concat({name:"idRangeOffset_"+t,type:"USHORT",value:h.offset}),h.glyphId!==void 0&&(u=u.concat({name:"glyph_"+t,type:"USHORT",value:h.glyphId}))):a+=1,!e&&h.glyphIndex!==void 0&&(f=f.concat({name:"cmap12Start_"+t,type:"ULONG",value:h.start}),f=f.concat({name:"cmap12End_"+t,type:"ULONG",value:h.end}),f=f.concat({name:"cmap12Glyph_"+t,type:"ULONG",value:h.glyphIndex}))}if(o.segCountX2=(s-a)*2,o.searchRange=Math.pow(2,Math.floor(Math.log(s-a)/Math.log(2)))*2,o.entrySelector=Math.log(o.searchRange/2)/Math.log(2),o.rangeShift=o.segCountX2-o.searchRange,o.fields=o.fields.concat(I),o.fields.push({name:"reservedPad",type:"USHORT",value:0}),o.fields=o.fields.concat(l),o.fields=o.fields.concat(C),o.fields=o.fields.concat(Q),o.fields=o.fields.concat(u),o.cmap4Length=14+I.length*2+2+l.length*2+C.length*2+Q.length*2+u.length*2,!e){var E=16+f.length*4;o.cmap12Offset=12+2*2+4+o.cmap4Length,o.fields=o.fields.concat([{name:"cmap12Format",type:"USHORT",value:12},{name:"cmap12Reserved",type:"USHORT",value:0},{name:"cmap12Length",type:"ULONG",value:E},{name:"cmap12Language",type:"ULONG",value:0},{name:"cmap12nGroups",type:"ULONG",value:f.length/3}]),o.fields=o.fields.concat(f)}return o}var ZC={parse:Jw,make:Yw},Wn=[".notdef","space","exclam","quotedbl","numbersign","dollar","percent","ampersand","quoteright","parenleft","parenright","asterisk","plus","comma","hyphen","period","slash","zero","one","two","three","four","five","six","seven","eight","nine","colon","semicolon","less","equal","greater","question","at","A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z","bracketleft","backslash","bracketright","asciicircum","underscore","quoteleft","a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z","braceleft","bar","braceright","asciitilde","exclamdown","cent","sterling","fraction","yen","florin","section","currency","quotesingle","quotedblleft","guillemotleft","guilsinglleft","guilsinglright","fi","fl","endash","dagger","daggerdbl","periodcentered","paragraph","bullet","quotesinglbase","quotedblbase","quotedblright","guillemotright","ellipsis","perthousand","questiondown","grave","acute","circumflex","tilde","macron","breve","dotaccent","dieresis","ring","cedilla","hungarumlaut","ogonek","caron","emdash","AE","ordfeminine","Lslash","Oslash","OE","ordmasculine","ae","dotlessi","lslash","oslash","oe","germandbls","onesuperior","logicalnot","mu","trademark","Eth","onehalf","plusminus","Thorn","onequarter","divide","brokenbar","degree","thorn","threequarters","twosuperior","registered","minus","eth","multiply","threesuperior","copyright","Aacute","Acircumflex","Adieresis","Agrave","Aring","Atilde","Ccedilla","Eacute","Ecircumflex","Edieresis","Egrave","Iacute","Icircumflex","Idieresis","Igrave","Ntilde","Oacute","Ocircumflex","Odieresis","Ograve","Otilde","Scaron","Uacute","Ucircumflex","Udieresis","Ugrave","Yacute","Ydieresis","Zcaron","aacute","acircumflex","adieresis","agrave","aring","atilde","ccedilla","eacute","ecircumflex","edieresis","egrave","iacute","icircumflex","idieresis","igrave","ntilde","oacute","ocircumflex","odieresis","ograve","otilde","scaron","uacute","ucircumflex","udieresis","ugrave","yacute","ydieresis","zcaron","exclamsmall","Hungarumlautsmall","dollaroldstyle","dollarsuperior","ampersandsmall","Acutesmall","parenleftsuperior","parenrightsuperior","266 ff","onedotenleader","zerooldstyle","oneoldstyle","twooldstyle","threeoldstyle","fouroldstyle","fiveoldstyle","sixoldstyle","sevenoldstyle","eightoldstyle","nineoldstyle","commasuperior","threequartersemdash","periodsuperior","questionsmall","asuperior","bsuperior","centsuperior","dsuperior","esuperior","isuperior","lsuperior","msuperior","nsuperior","osuperior","rsuperior","ssuperior","tsuperior","ff","ffi","ffl","parenleftinferior","parenrightinferior","Circumflexsmall","hyphensuperior","Gravesmall","Asmall","Bsmall","Csmall","Dsmall","Esmall","Fsmall","Gsmall","Hsmall","Ismall","Jsmall","Ksmall","Lsmall","Msmall","Nsmall","Osmall","Psmall","Qsmall","Rsmall","Ssmall","Tsmall","Usmall","Vsmall","Wsmall","Xsmall","Ysmall","Zsmall","colonmonetary","onefitted","rupiah","Tildesmall","exclamdownsmall","centoldstyle","Lslashsmall","Scaronsmall","Zcaronsmall","Dieresissmall","Brevesmall","Caronsmall","Dotaccentsmall","Macronsmall","figuredash","hypheninferior","Ogoneksmall","Ringsmall","Cedillasmall","questiondownsmall","oneeighth","threeeighths","fiveeighths","seveneighths","onethird","twothirds","zerosuperior","foursuperior","fivesuperior","sixsuperior","sevensuperior","eightsuperior","ninesuperior","zeroinferior","oneinferior","twoinferior","threeinferior","fourinferior","fiveinferior","sixinferior","seveninferior","eightinferior","nineinferior","centinferior","dollarinferior","periodinferior","commainferior","Agravesmall","Aacutesmall","Acircumflexsmall","Atildesmall","Adieresissmall","Aringsmall","AEsmall","Ccedillasmall","Egravesmall","Eacutesmall","Ecircumflexsmall","Edieresissmall","Igravesmall","Iacutesmall","Icircumflexsmall","Idieresissmall","Ethsmall","Ntildesmall","Ogravesmall","Oacutesmall","Ocircumflexsmall","Otildesmall","Odieresissmall","OEsmall","Oslashsmall","Ugravesmall","Uacutesmall","Ucircumflexsmall","Udieresissmall","Yacutesmall","Thornsmall","Ydieresissmall","001.000","001.001","001.002","001.003","Black","Bold","Book","Light","Medium","Regular","Roman","Semibold"],_w=["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","space","exclam","quotedbl","numbersign","dollar","percent","ampersand","quoteright","parenleft","parenright","asterisk","plus","comma","hyphen","period","slash","zero","one","two","three","four","five","six","seven","eight","nine","colon","semicolon","less","equal","greater","question","at","A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z","bracketleft","backslash","bracketright","asciicircum","underscore","quoteleft","a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z","braceleft","bar","braceright","asciitilde","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","exclamdown","cent","sterling","fraction","yen","florin","section","currency","quotesingle","quotedblleft","guillemotleft","guilsinglleft","guilsinglright","fi","fl","","endash","dagger","daggerdbl","periodcentered","","paragraph","bullet","quotesinglbase","quotedblbase","quotedblright","guillemotright","ellipsis","perthousand","","questiondown","","grave","acute","circumflex","tilde","macron","breve","dotaccent","dieresis","","ring","cedilla","","hungarumlaut","ogonek","caron","emdash","","","","","","","","","","","","","","","","","AE","","ordfeminine","","","","","Lslash","Oslash","OE","ordmasculine","","","","","","ae","","","","dotlessi","","","lslash","oslash","oe","germandbls"],Kw=["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","space","exclamsmall","Hungarumlautsmall","","dollaroldstyle","dollarsuperior","ampersandsmall","Acutesmall","parenleftsuperior","parenrightsuperior","twodotenleader","onedotenleader","comma","hyphen","period","fraction","zerooldstyle","oneoldstyle","twooldstyle","threeoldstyle","fouroldstyle","fiveoldstyle","sixoldstyle","sevenoldstyle","eightoldstyle","nineoldstyle","colon","semicolon","commasuperior","threequartersemdash","periodsuperior","questionsmall","","asuperior","bsuperior","centsuperior","dsuperior","esuperior","","","isuperior","","","lsuperior","msuperior","nsuperior","osuperior","","","rsuperior","ssuperior","tsuperior","","ff","fi","fl","ffi","ffl","parenleftinferior","","parenrightinferior","Circumflexsmall","hyphensuperior","Gravesmall","Asmall","Bsmall","Csmall","Dsmall","Esmall","Fsmall","Gsmall","Hsmall","Ismall","Jsmall","Ksmall","Lsmall","Msmall","Nsmall","Osmall","Psmall","Qsmall","Rsmall","Ssmall","Tsmall","Usmall","Vsmall","Wsmall","Xsmall","Ysmall","Zsmall","colonmonetary","onefitted","rupiah","Tildesmall","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","exclamdownsmall","centoldstyle","Lslashsmall","","","Scaronsmall","Zcaronsmall","Dieresissmall","Brevesmall","Caronsmall","","Dotaccentsmall","","","Macronsmall","","","figuredash","hypheninferior","","","Ogoneksmall","Ringsmall","Cedillasmall","","","","onequarter","onehalf","threequarters","questiondownsmall","oneeighth","threeeighths","fiveeighths","seveneighths","onethird","twothirds","","","zerosuperior","onesuperior","twosuperior","threesuperior","foursuperior","fivesuperior","sixsuperior","sevensuperior","eightsuperior","ninesuperior","zeroinferior","oneinferior","twoinferior","threeinferior","fourinferior","fiveinferior","sixinferior","seveninferior","eightinferior","nineinferior","centinferior","dollarinferior","periodinferior","commainferior","Agravesmall","Aacutesmall","Acircumflexsmall","Atildesmall","Adieresissmall","Aringsmall","AEsmall","Ccedillasmall","Egravesmall","Eacutesmall","Ecircumflexsmall","Edieresissmall","Igravesmall","Iacutesmall","Icircumflexsmall","Idieresissmall","Ethsmall","Ntildesmall","Ogravesmall","Oacutesmall","Ocircumflexsmall","Otildesmall","Odieresissmall","OEsmall","Oslashsmall","Ugravesmall","Uacutesmall","Ucircumflexsmall","Udieresissmall","Yacutesmall","Thornsmall","Ydieresissmall"],ni=[".notdef",".null","nonmarkingreturn","space","exclam","quotedbl","numbersign","dollar","percent","ampersand","quotesingle","parenleft","parenright","asterisk","plus","comma","hyphen","period","slash","zero","one","two","three","four","five","six","seven","eight","nine","colon","semicolon","less","equal","greater","question","at","A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z","bracketleft","backslash","bracketright","asciicircum","underscore","grave","a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z","braceleft","bar","braceright","asciitilde","Adieresis","Aring","Ccedilla","Eacute","Ntilde","Odieresis","Udieresis","aacute","agrave","acircumflex","adieresis","atilde","aring","ccedilla","eacute","egrave","ecircumflex","edieresis","iacute","igrave","icircumflex","idieresis","ntilde","oacute","ograve","ocircumflex","odieresis","otilde","uacute","ugrave","ucircumflex","udieresis","dagger","degree","cent","sterling","section","bullet","paragraph","germandbls","registered","copyright","trademark","acute","dieresis","notequal","AE","Oslash","infinity","plusminus","lessequal","greaterequal","yen","mu","partialdiff","summation","product","pi","integral","ordfeminine","ordmasculine","Omega","ae","oslash","questiondown","exclamdown","logicalnot","radical","florin","approxequal","Delta","guillemotleft","guillemotright","ellipsis","nonbreakingspace","Agrave","Atilde","Otilde","OE","oe","endash","emdash","quotedblleft","quotedblright","quoteleft","quoteright","divide","lozenge","ydieresis","Ydieresis","fraction","currency","guilsinglleft","guilsinglright","fi","fl","daggerdbl","periodcentered","quotesinglbase","quotedblbase","perthousand","Acircumflex","Ecircumflex","Aacute","Edieresis","Egrave","Iacute","Icircumflex","Idieresis","Igrave","Oacute","Ocircumflex","apple","Ograve","Uacute","Ucircumflex","Ugrave","dotlessi","circumflex","tilde","macron","breve","dotaccent","ring","cedilla","hungarumlaut","ogonek","caron","Lslash","lslash","Scaron","scaron","Zcaron","zcaron","brokenbar","Eth","eth","Yacute","yacute","Thorn","thorn","minus","multiply","onesuperior","twosuperior","threesuperior","onehalf","onequarter","threequarters","franc","Gbreve","gbreve","Idotaccent","Scedilla","scedilla","Cacute","cacute","Ccaron","ccaron","dcroat"];function XC(A){this.font=A}XC.prototype.charToGlyphIndex=function(A){var e=A.codePointAt(0),t=this.font.glyphs;if(t){for(var i=0;i<t.length;i+=1)for(var n=t.get(i),o=0;o<n.unicodes.length;o+=1)if(n.unicodes[o]===e)return i}return null};function zC(A){this.cmap=A}zC.prototype.charToGlyphIndex=function(A){return this.cmap.glyphIndexMap[A.codePointAt(0)]||0};function lo(A,e){this.encoding=A,this.charset=e}lo.prototype.charToGlyphIndex=function(A){var e=A.codePointAt(0),t=this.encoding[e];return this.charset.indexOf(t)};function fg(A){switch(A.version){case 1:this.names=ni.slice();break;case 2:this.names=new Array(A.numberOfGlyphs);for(var e=0;e<A.numberOfGlyphs;e++)A.glyphNameIndex[e]<ni.length?this.names[e]=ni[A.glyphNameIndex[e]]:this.names[e]=A.names[A.glyphNameIndex[e]-ni.length];break;case 2.5:this.names=new Array(A.numberOfGlyphs);for(var t=0;t<A.numberOfGlyphs;t++)this.names[t]=ni[t+A.glyphNameIndex[t]];break;case 3:this.names=[];break;default:this.names=[];break}}fg.prototype.nameToGlyphIndex=function(A){return this.names.indexOf(A)};fg.prototype.glyphIndexToName=function(A){return this.names[A]};function Pw(A){for(var e,t=A.tables.cmap.glyphIndexMap,i=Object.keys(t),n=0;n<i.length;n+=1){var o=i[n],r=t[o];e=A.glyphs.get(r),e.addUnicode(parseInt(o))}for(var g=0;g<A.glyphs.length;g+=1)e=A.glyphs.get(g),A.cffEncoding?A.isCIDFont?e.name="gid"+g:e.name=A.cffEncoding.charset[g]:A.glyphNames.names&&(e.name=A.glyphNames.glyphIndexToName(g))}function Ow(A){A._IndexToUnicodeMap={};for(var e=A.tables.cmap.glyphIndexMap,t=Object.keys(e),i=0;i<t.length;i+=1){var n=t[i],o=e[n];A._IndexToUnicodeMap[o]===void 0?A._IndexToUnicodeMap[o]={unicodes:[parseInt(n)]}:A._IndexToUnicodeMap[o].unicodes.push(parseInt(n))}}function Vw(A,e){e.lowMemory?Ow(A):Pw(A)}function Ww(A,e,t,i,n){A.beginPath(),A.moveTo(e,t),A.lineTo(i,n),A.stroke()}var ei={line:Ww};function qw(A,e){var t=e||new oe;return{configurable:!0,get:function(){return typeof t=="function"&&(t=t()),t},set:function(i){t=i}}}function Ge(A){this.bindConstructorValues(A)}Ge.prototype.bindConstructorValues=function(A){this.index=A.index||0,this.name=A.name||null,this.unicode=A.unicode||void 0,this.unicodes=A.unicodes||A.unicode!==void 0?[A.unicode]:[],"xMin"in A&&(this.xMin=A.xMin),"yMin"in A&&(this.yMin=A.yMin),"xMax"in A&&(this.xMax=A.xMax),"yMax"in A&&(this.yMax=A.yMax),"advanceWidth"in A&&(this.advanceWidth=A.advanceWidth),Object.defineProperty(this,"path",qw(this,A.path))};Ge.prototype.addUnicode=function(A){this.unicodes.length===0&&(this.unicode=A),this.unicodes.push(A)};Ge.prototype.getBoundingBox=function(){return this.path.getBoundingBox()};Ge.prototype.getPath=function(A,e,t,i,n){A=A!==void 0?A:0,e=e!==void 0?e:0,t=t!==void 0?t:72;var o,r;i||(i={});var g=i.xScale,s=i.yScale;if(i.hinting&&n&&n.hinting&&(r=this.path&&n.hinting.exec(this,t)),r)o=n.hinting.getCommands(r),A=Math.round(A),e=Math.round(e),g=s=1;else{o=this.path.commands;var a=1/(this.path.unitsPerEm||1e3)*t;g===void 0&&(g=a),s===void 0&&(s=a)}for(var I=new oe,l=0;l<o.length;l+=1){var C=o[l];C.type==="M"?I.moveTo(A+C.x*g,e+-C.y*s):C.type==="L"?I.lineTo(A+C.x*g,e+-C.y*s):C.type==="Q"?I.quadraticCurveTo(A+C.x1*g,e+-C.y1*s,A+C.x*g,e+-C.y*s):C.type==="C"?I.curveTo(A+C.x1*g,e+-C.y1*s,A+C.x2*g,e+-C.y2*s,A+C.x*g,e+-C.y*s):C.type==="Z"&&I.closePath()}return I};Ge.prototype.getContours=function(){if(this.points===void 0)return[];for(var A=[],e=[],t=0;t<this.points.length;t+=1){var i=this.points[t];e.push(i),i.lastPointOfContour&&(A.push(e),e=[])}return yA.argument(e.length===0,"There are still points left in the current contour."),A};Ge.prototype.getMetrics=function(){for(var A=this.path.commands,e=[],t=[],i=0;i<A.length;i+=1){var n=A[i];n.type!=="Z"&&(e.push(n.x),t.push(n.y)),(n.type==="Q"||n.type==="C")&&(e.push(n.x1),t.push(n.y1)),n.type==="C"&&(e.push(n.x2),t.push(n.y2))}var o={xMin:Math.min.apply(null,e),yMin:Math.min.apply(null,t),xMax:Math.max.apply(null,e),yMax:Math.max.apply(null,t),leftSideBearing:this.leftSideBearing};return isFinite(o.xMin)||(o.xMin=0),isFinite(o.xMax)||(o.xMax=this.advanceWidth),isFinite(o.yMin)||(o.yMin=0),isFinite(o.yMax)||(o.yMax=0),o.rightSideBearing=this.advanceWidth-o.leftSideBearing-(o.xMax-o.xMin),o};Ge.prototype.draw=function(A,e,t,i,n){this.getPath(e,t,i,n).draw(A)};Ge.prototype.drawPoints=function(A,e,t,i){function n(l,C,Q,u){A.beginPath();for(var f=0;f<l.length;f+=1)A.moveTo(C+l[f].x*u,Q+l[f].y*u),A.arc(C+l[f].x*u,Q+l[f].y*u,2,0,Math.PI*2,!1);A.closePath(),A.fill()}e=e!==void 0?e:0,t=t!==void 0?t:0,i=i!==void 0?i:24;for(var o=1/this.path.unitsPerEm*i,r=[],g=[],s=this.path,a=0;a<s.commands.length;a+=1){var I=s.commands[a];I.x!==void 0&&r.push({x:I.x,y:-I.y}),I.x1!==void 0&&g.push({x:I.x1,y:-I.y1}),I.x2!==void 0&&g.push({x:I.x2,y:-I.y2})}A.fillStyle="blue",n(r,e,t,o),A.fillStyle="red",n(g,e,t,o)};Ge.prototype.drawMetrics=function(A,e,t,i){var n;e=e!==void 0?e:0,t=t!==void 0?t:0,i=i!==void 0?i:24,n=1/this.path.unitsPerEm*i,A.lineWidth=1,A.strokeStyle="black",ei.line(A,e,-1e4,e,1e4),ei.line(A,-1e4,t,1e4,t);var o=this.xMin||0,r=this.yMin||0,g=this.xMax||0,s=this.yMax||0,a=this.advanceWidth||0;A.strokeStyle="blue",ei.line(A,e+o*n,-1e4,e+o*n,1e4),ei.line(A,e+g*n,-1e4,e+g*n,1e4),ei.line(A,-1e4,t+-r*n,1e4,t+-r*n),ei.line(A,-1e4,t+-s*n,1e4,t+-s*n),A.strokeStyle="green",ei.line(A,e+a*n,-1e4,e+a*n,1e4)};function Mn(A,e,t){Object.defineProperty(A,e,{get:function(){return A.path,A[t]},set:function(i){A[t]=i},enumerable:!0,configurable:!0})}function dg(A,e){if(this.font=A,this.glyphs={},Array.isArray(e))for(var t=0;t<e.length;t++){var i=e[t];i.path.unitsPerEm=A.unitsPerEm,this.glyphs[t]=i}this.length=e&&e.length||0}dg.prototype.get=function(A){if(this.glyphs[A]===void 0){this.font._push(A),typeof this.glyphs[A]=="function"&&(this.glyphs[A]=this.glyphs[A]());var e=this.glyphs[A],t=this.font._IndexToUnicodeMap[A];if(t)for(var i=0;i<t.unicodes.length;i++)e.addUnicode(t.unicodes[i]);this.font.cffEncoding?this.font.isCIDFont?e.name="gid"+A:e.name=this.font.cffEncoding.charset[A]:this.font.glyphNames.names&&(e.name=this.font.glyphNames.glyphIndexToName(A)),this.glyphs[A].advanceWidth=this.font._hmtxTableData[A].advanceWidth,this.glyphs[A].leftSideBearing=this.font._hmtxTableData[A].leftSideBearing}else typeof this.glyphs[A]=="function"&&(this.glyphs[A]=this.glyphs[A]());return this.glyphs[A]};dg.prototype.push=function(A,e){this.glyphs[A]=e,this.length++};function jw(A,e){return new Ge({index:e,font:A})}function Zw(A,e,t,i,n,o){return function(){var r=new Ge({index:e,font:A});return r.path=function(){t(r,i,n);var g=o(A.glyphs,r);return g.unitsPerEm=A.unitsPerEm,g},Mn(r,"xMin","_xMin"),Mn(r,"xMax","_xMax"),Mn(r,"yMin","_yMin"),Mn(r,"yMax","_yMax"),r}}function Xw(A,e,t,i){return function(){var n=new Ge({index:e,font:A});return n.path=function(){var o=t(A,n,i);return o.unitsPerEm=A.unitsPerEm,o},n}}var It={GlyphSet:dg,glyphLoader:jw,ttfGlyphLoader:Zw,cffGlyphLoader:Xw};function $C(A,e){if(A===e)return!0;if(Array.isArray(A)&&Array.isArray(e)){if(A.length!==e.length)return!1;for(var t=0;t<A.length;t+=1)if(!$C(A[t],e[t]))return!1;return!0}else return!1}function Ur(A){var e;return A.length<1240?e=107:A.length<33900?e=1131:e=32768,e}function Ut(A,e,t){var i=[],n=[],o=QA.getCard16(A,e),r,g;if(o!==0){var s=QA.getByte(A,e+2);r=e+(o+1)*s+2;for(var a=e+3,I=0;I<o+1;I+=1)i.push(QA.getOffset(A,a,s)),a+=s;g=r+i[o]}else g=e+2;for(var l=0;l<i.length-1;l+=1){var C=QA.getBytes(A,r+i[l],r+i[l+1]);t&&(C=t(C)),n.push(C)}return{objects:n,startOffset:e,endOffset:g}}function zw(A,e){var t=[],i=QA.getCard16(A,e),n,o;if(i!==0){var r=QA.getByte(A,e+2);n=e+(i+1)*r+2;for(var g=e+3,s=0;s<i+1;s+=1)t.push(QA.getOffset(A,g,r)),g+=r;o=n+t[i]}else o=e+2;return{offsets:t,startOffset:e,endOffset:o}}function $w(A,e,t,i,n){var o=QA.getCard16(t,i),r=0;if(o!==0){var g=QA.getByte(t,i+2);r=i+(o+1)*g+2}var s=QA.getBytes(t,r+e[A],r+e[A+1]);return s}function AD(A){for(var e="",t=15,i=["0","1","2","3","4","5","6","7","8","9",".","E","E-",null,"-"];;){var n=A.parseByte(),o=n>>4,r=n&15;if(o===t||(e+=i[o],r===t))break;e+=i[r]}return parseFloat(e)}function eD(A,e){var t,i,n,o;if(e===28)return t=A.parseByte(),i=A.parseByte(),t<<8|i;if(e===29)return t=A.parseByte(),i=A.parseByte(),n=A.parseByte(),o=A.parseByte(),t<<24|i<<16|n<<8|o;if(e===30)return AD(A);if(e>=32&&e<=246)return e-139;if(e>=247&&e<=250)return t=A.parseByte(),(e-247)*256+t+108;if(e>=251&&e<=254)return t=A.parseByte(),-(e-251)*256-t-108;throw new Error("Invalid b0 "+e)}function tD(A){for(var e={},t=0;t<A.length;t+=1){var i=A[t][0],n=A[t][1],o=void 0;if(n.length===1?o=n[0]:o=n,e.hasOwnProperty(i)&&!isNaN(e[i]))throw new Error("Object "+e+" already has key "+i);e[i]=o}return e}function Al(A,e,t){e=e!==void 0?e:0;var i=new QA.Parser(A,e),n=[],o=[];for(t=t!==void 0?t:A.length;i.relativeOffset<t;){var r=i.parseByte();r<=21?(r===12&&(r=1200+i.parseByte()),n.push([r,o]),o=[]):o.push(eD(i,r))}return tD(n)}function $i(A,e){return e<=390?e=Wn[e]:e=A[e-391],e}function el(A,e,t){for(var i={},n,o=0;o<e.length;o+=1){var r=e[o];if(Array.isArray(r.type)){var g=[];g.length=r.type.length;for(var s=0;s<r.type.length;s++)n=A[r.op]!==void 0?A[r.op][s]:void 0,n===void 0&&(n=r.value!==void 0&&r.value[s]!==void 0?r.value[s]:null),r.type[s]==="SID"&&(n=$i(t,n)),g[s]=n;i[r.name]=g}else n=A[r.op],n===void 0&&(n=r.value!==void 0?r.value:null),r.type==="SID"&&(n=$i(t,n)),i[r.name]=n}return i}function iD(A,e){var t={};return t.formatMajor=QA.getCard8(A,e),t.formatMinor=QA.getCard8(A,e+1),t.size=QA.getCard8(A,e+2),t.offsetSize=QA.getCard8(A,e+3),t.startOffset=e,t.endOffset=e+4,t}var tl=[{name:"version",op:0,type:"SID"},{name:"notice",op:1,type:"SID"},{name:"copyright",op:1200,type:"SID"},{name:"fullName",op:2,type:"SID"},{name:"familyName",op:3,type:"SID"},{name:"weight",op:4,type:"SID"},{name:"isFixedPitch",op:1201,type:"number",value:0},{name:"italicAngle",op:1202,type:"number",value:0},{name:"underlinePosition",op:1203,type:"number",value:-100},{name:"underlineThickness",op:1204,type:"number",value:50},{name:"paintType",op:1205,type:"number",value:0},{name:"charstringType",op:1206,type:"number",value:2},{name:"fontMatrix",op:1207,type:["real","real","real","real","real","real"],value:[.001,0,0,.001,0,0]},{name:"uniqueId",op:13,type:"number"},{name:"fontBBox",op:5,type:["number","number","number","number"],value:[0,0,0,0]},{name:"strokeWidth",op:1208,type:"number",value:0},{name:"xuid",op:14,type:[],value:null},{name:"charset",op:15,type:"offset",value:0},{name:"encoding",op:16,type:"offset",value:0},{name:"charStrings",op:17,type:"offset",value:0},{name:"private",op:18,type:["number","offset"],value:[0,0]},{name:"ros",op:1230,type:["SID","SID","number"]},{name:"cidFontVersion",op:1231,type:"number",value:0},{name:"cidFontRevision",op:1232,type:"number",value:0},{name:"cidFontType",op:1233,type:"number",value:0},{name:"cidCount",op:1234,type:"number",value:8720},{name:"uidBase",op:1235,type:"number"},{name:"fdArray",op:1236,type:"offset"},{name:"fdSelect",op:1237,type:"offset"},{name:"fontName",op:1238,type:"SID"}],il=[{name:"subrs",op:19,type:"offset",value:0},{name:"defaultWidthX",op:20,type:"number",value:0},{name:"nominalWidthX",op:21,type:"number",value:0}];function nD(A,e){var t=Al(A,0,A.byteLength);return el(t,tl,e)}function nl(A,e,t,i){var n=Al(A,e,t);return el(n,il,i)}function ra(A,e,t,i){for(var n=[],o=0;o<t.length;o+=1){var r=new DataView(new Uint8Array(t[o]).buffer),g=nD(r,i);g._subrs=[],g._subrsBias=0,g._defaultWidthX=0,g._nominalWidthX=0;var s=g.private[0],a=g.private[1];if(s!==0&&a!==0){var I=nl(A,a+e,s,i);if(g._defaultWidthX=I.defaultWidthX,g._nominalWidthX=I.nominalWidthX,I.subrs!==0){var l=a+I.subrs,C=Ut(A,l+e);g._subrs=C.objects,g._subrsBias=Ur(g._subrs)}g._privateDict=I}n.push(g)}return n}function oD(A,e,t,i){var n,o,r=new QA.Parser(A,e);t-=1;var g=[".notdef"],s=r.parseCard8();if(s===0)for(var a=0;a<t;a+=1)n=r.parseSID(),g.push($i(i,n));else if(s===1)for(;g.length<=t;){n=r.parseSID(),o=r.parseCard8();for(var I=0;I<=o;I+=1)g.push($i(i,n)),n+=1}else if(s===2)for(;g.length<=t;){n=r.parseSID(),o=r.parseCard16();for(var l=0;l<=o;l+=1)g.push($i(i,n)),n+=1}else throw new Error("Unknown charset format "+s);return g}function rD(A,e,t){var i,n={},o=new QA.Parser(A,e),r=o.parseCard8();if(r===0)for(var g=o.parseCard8(),s=0;s<g;s+=1)i=o.parseCard8(),n[i]=s;else if(r===1){var a=o.parseCard8();i=1;for(var I=0;I<a;I+=1)for(var l=o.parseCard8(),C=o.parseCard8(),Q=l;Q<=l+C;Q+=1)n[Q]=i,i+=1}else throw new Error("Unknown encoding format "+r);return new lo(n,t)}function ga(A,e,t){var i,n,o,r,g=new oe,s=[],a=0,I=!1,l=!1,C=0,Q=0,u,f,h,E;if(A.isCIDFont){var p=A.tables.cff.topDict._fdSelect[e.index],c=A.tables.cff.topDict._fdArray[p];u=c._subrs,f=c._subrsBias,h=c._defaultWidthX,E=c._nominalWidthX}else u=A.tables.cff.topDict._subrs,f=A.tables.cff.topDict._subrsBias,h=A.tables.cff.topDict._defaultWidthX,E=A.tables.cff.topDict._nominalWidthX;var d=h;function w(G,P){l&&g.closePath(),g.moveTo(G,P),l=!0}function F(){var G;G=s.length%2!==0,G&&!I&&(d=s.shift()+E),a+=s.length>>1,s.length=0,I=!0}function N(G){for(var P,b,R,L,EA,pA,lA,nA,z,tA,dA,kA,Y=0;Y<G.length;){var j=G[Y];switch(Y+=1,j){case 1:F();break;case 3:F();break;case 4:s.length>1&&!I&&(d=s.shift()+E,I=!0),Q+=s.pop(),w(C,Q);break;case 5:for(;s.length>0;)C+=s.shift(),Q+=s.shift(),g.lineTo(C,Q);break;case 6:for(;s.length>0&&(C+=s.shift(),g.lineTo(C,Q),s.length!==0);)Q+=s.shift(),g.lineTo(C,Q);break;case 7:for(;s.length>0&&(Q+=s.shift(),g.lineTo(C,Q),s.length!==0);)C+=s.shift(),g.lineTo(C,Q);break;case 8:for(;s.length>0;)i=C+s.shift(),n=Q+s.shift(),o=i+s.shift(),r=n+s.shift(),C=o+s.shift(),Q=r+s.shift(),g.curveTo(i,n,o,r,C,Q);break;case 10:EA=s.pop()+f,pA=u[EA],pA&&N(pA);break;case 11:return;case 12:switch(j=G[Y],Y+=1,j){case 35:i=C+s.shift(),n=Q+s.shift(),o=i+s.shift(),r=n+s.shift(),lA=o+s.shift(),nA=r+s.shift(),z=lA+s.shift(),tA=nA+s.shift(),dA=z+s.shift(),kA=tA+s.shift(),C=dA+s.shift(),Q=kA+s.shift(),s.shift(),g.curveTo(i,n,o,r,lA,nA),g.curveTo(z,tA,dA,kA,C,Q);break;case 34:i=C+s.shift(),n=Q,o=i+s.shift(),r=n+s.shift(),lA=o+s.shift(),nA=r,z=lA+s.shift(),tA=r,dA=z+s.shift(),kA=Q,C=dA+s.shift(),g.curveTo(i,n,o,r,lA,nA),g.curveTo(z,tA,dA,kA,C,Q);break;case 36:i=C+s.shift(),n=Q+s.shift(),o=i+s.shift(),r=n+s.shift(),lA=o+s.shift(),nA=r,z=lA+s.shift(),tA=r,dA=z+s.shift(),kA=tA+s.shift(),C=dA+s.shift(),g.curveTo(i,n,o,r,lA,nA),g.curveTo(z,tA,dA,kA,C,Q);break;case 37:i=C+s.shift(),n=Q+s.shift(),o=i+s.shift(),r=n+s.shift(),lA=o+s.shift(),nA=r+s.shift(),z=lA+s.shift(),tA=nA+s.shift(),dA=z+s.shift(),kA=tA+s.shift(),Math.abs(dA-C)>Math.abs(kA-Q)?C=dA+s.shift():Q=kA+s.shift(),g.curveTo(i,n,o,r,lA,nA),g.curveTo(z,tA,dA,kA,C,Q);break;default:console.log("Glyph "+e.index+": unknown operator 1200"+j),s.length=0}break;case 14:s.length>0&&!I&&(d=s.shift()+E,I=!0),l&&(g.closePath(),l=!1);break;case 18:F();break;case 19:case 20:F(),Y+=a+7>>3;break;case 21:s.length>2&&!I&&(d=s.shift()+E,I=!0),Q+=s.pop(),C+=s.pop(),w(C,Q);break;case 22:s.length>1&&!I&&(d=s.shift()+E,I=!0),C+=s.pop(),w(C,Q);break;case 23:F();break;case 24:for(;s.length>2;)i=C+s.shift(),n=Q+s.shift(),o=i+s.shift(),r=n+s.shift(),C=o+s.shift(),Q=r+s.shift(),g.curveTo(i,n,o,r,C,Q);C+=s.shift(),Q+=s.shift(),g.lineTo(C,Q);break;case 25:for(;s.length>6;)C+=s.shift(),Q+=s.shift(),g.lineTo(C,Q);i=C+s.shift(),n=Q+s.shift(),o=i+s.shift(),r=n+s.shift(),C=o+s.shift(),Q=r+s.shift(),g.curveTo(i,n,o,r,C,Q);break;case 26:for(s.length%2&&(C+=s.shift());s.length>0;)i=C,n=Q+s.shift(),o=i+s.shift(),r=n+s.shift(),C=o,Q=r+s.shift(),g.curveTo(i,n,o,r,C,Q);break;case 27:for(s.length%2&&(Q+=s.shift());s.length>0;)i=C+s.shift(),n=Q,o=i+s.shift(),r=n+s.shift(),C=o+s.shift(),Q=r,g.curveTo(i,n,o,r,C,Q);break;case 28:P=G[Y],b=G[Y+1],s.push((P<<24|b<<16)>>16),Y+=2;break;case 29:EA=s.pop()+A.gsubrsBias,pA=A.gsubrs[EA],pA&&N(pA);break;case 30:for(;s.length>0&&(i=C,n=Q+s.shift(),o=i+s.shift(),r=n+s.shift(),C=o+s.shift(),Q=r+(s.length===1?s.shift():0),g.curveTo(i,n,o,r,C,Q),s.length!==0);)i=C+s.shift(),n=Q,o=i+s.shift(),r=n+s.shift(),Q=r+s.shift(),C=o+(s.length===1?s.shift():0),g.curveTo(i,n,o,r,C,Q);break;case 31:for(;s.length>0&&(i=C+s.shift(),n=Q,o=i+s.shift(),r=n+s.shift(),Q=r+s.shift(),C=o+(s.length===1?s.shift():0),g.curveTo(i,n,o,r,C,Q),s.length!==0);)i=C,n=Q+s.shift(),o=i+s.shift(),r=n+s.shift(),C=o+s.shift(),Q=r+(s.length===1?s.shift():0),g.curveTo(i,n,o,r,C,Q);break;default:j<32?console.log("Glyph "+e.index+": unknown operator "+j):j<247?s.push(j-139):j<251?(P=G[Y],Y+=1,s.push((j-247)*256+P+108)):j<255?(P=G[Y],Y+=1,s.push(-(j-251)*256-P-108)):(P=G[Y],b=G[Y+1],R=G[Y+2],L=G[Y+3],Y+=4,s.push((P<<24|b<<16|R<<8|L)/65536))}}}return N(t),e.advanceWidth=d,g}function gD(A,e,t,i){var n=[],o,r=new QA.Parser(A,e),g=r.parseCard8();if(g===0)for(var s=0;s<t;s++){if(o=r.parseCard8(),o>=i)throw new Error("CFF table CID Font FDSelect has bad FD index value "+o+" (FD count "+i+")");n.push(o)}else if(g===3){var a=r.parseCard16(),I=r.parseCard16();if(I!==0)throw new Error("CFF Table CID Font FDSelect format 3 range has bad initial GID "+I);for(var l,C=0;C<a;C++){if(o=r.parseCard8(),l=r.parseCard16(),o>=i)throw new Error("CFF table CID Font FDSelect has bad FD index value "+o+" (FD count "+i+")");if(l>t)throw new Error("CFF Table CID Font FDSelect format 3 range has bad GID "+l);for(;I<l;I++)n.push(o);I=l}if(l!==t)throw new Error("CFF Table CID Font FDSelect format 3 range has bad final GID "+l)}else throw new Error("CFF Table CID Font FDSelect table has unsupported format "+g);return n}function sD(A,e,t,i){t.tables.cff={};var n=iD(A,e),o=Ut(A,n.endOffset,QA.bytesToString),r=Ut(A,o.endOffset),g=Ut(A,r.endOffset,QA.bytesToString),s=Ut(A,g.endOffset);t.gsubrs=s.objects,t.gsubrsBias=Ur(t.gsubrs);var a=ra(A,e,r.objects,g.objects);if(a.length!==1)throw new Error("CFF table has too many fonts in 'FontSet' - count of fonts NameIndex.length = "+a.length);var I=a[0];if(t.tables.cff.topDict=I,I._privateDict&&(t.defaultWidthX=I._privateDict.defaultWidthX,t.nominalWidthX=I._privateDict.nominalWidthX),I.ros[0]!==void 0&&I.ros[1]!==void 0&&(t.isCIDFont=!0),t.isCIDFont){var l=I.fdArray,C=I.fdSelect;if(l===0||C===0)throw new Error("Font is marked as a CID font, but FDArray and/or FDSelect information is missing");l+=e;var Q=Ut(A,l),u=ra(A,e,Q.objects,g.objects);I._fdArray=u,C+=e,I._fdSelect=gD(A,C,t.numGlyphs,u.length)}var f=e+I.private[1],h=nl(A,f,I.private[0],g.objects);if(t.defaultWidthX=h.defaultWidthX,t.nominalWidthX=h.nominalWidthX,h.subrs!==0){var E=f+h.subrs,p=Ut(A,E);t.subrs=p.objects,t.subrsBias=Ur(t.subrs)}else t.subrs=[],t.subrsBias=0;var c;i.lowMemory?(c=zw(A,e+I.charStrings),t.nGlyphs=c.offsets.length):(c=Ut(A,e+I.charStrings),t.nGlyphs=c.objects.length);var d=oD(A,e+I.charset,t.nGlyphs,g.objects);if(I.encoding===0?t.cffEncoding=new lo(_w,d):I.encoding===1?t.cffEncoding=new lo(Kw,d):t.cffEncoding=rD(A,e+I.encoding,d),t.encoding=t.encoding||t.cffEncoding,t.glyphs=new It.GlyphSet(t),i.lowMemory)t._push=function(N){var G=$w(N,c.offsets,A,e+I.charStrings);t.glyphs.push(N,It.cffGlyphLoader(t,N,ga,G))};else for(var w=0;w<t.nGlyphs;w+=1){var F=c.objects[w];t.glyphs.push(w,It.cffGlyphLoader(t,w,ga,F))}}function ol(A,e){var t,i=Wn.indexOf(A);return i>=0&&(t=i),i=e.indexOf(A),i>=0?t=i+Wn.length:(t=Wn.length+e.length,e.push(A)),t}function aD(){return new IA.Record("Header",[{name:"major",type:"Card8",value:1},{name:"minor",type:"Card8",value:0},{name:"hdrSize",type:"Card8",value:4},{name:"major",type:"Card8",value:1}])}function ID(A){var e=new IA.Record("Name INDEX",[{name:"names",type:"INDEX",value:[]}]);e.names=[];for(var t=0;t<A.length;t+=1)e.names.push({name:"name_"+t,type:"NAME",value:A[t]});return e}function rl(A,e,t){for(var i={},n=0;n<A.length;n+=1){var o=A[n],r=e[o.name];r!==void 0&&!$C(r,o.value)&&(o.type==="SID"&&(r=ol(r,t)),i[o.op]={name:o.name,type:o.type,value:r})}return i}function sa(A,e){var t=new IA.Record("Top DICT",[{name:"dict",type:"DICT",value:{}}]);return t.dict=rl(tl,A,e),t}function aa(A){var e=new IA.Record("Top DICT INDEX",[{name:"topDicts",type:"INDEX",value:[]}]);return e.topDicts=[{name:"topDict_0",type:"TABLE",value:A}],e}function CD(A){var e=new IA.Record("String INDEX",[{name:"strings",type:"INDEX",value:[]}]);e.strings=[];for(var t=0;t<A.length;t+=1)e.strings.push({name:"string_"+t,type:"STRING",value:A[t]});return e}function lD(){return new IA.Record("Global Subr INDEX",[{name:"subrs",type:"INDEX",value:[]}])}function BD(A,e){for(var t=new IA.Record("Charsets",[{name:"format",type:"Card8",value:0}]),i=0;i<A.length;i+=1){var n=A[i],o=ol(n,e);t.fields.push({name:"glyph_"+i,type:"SID",value:o})}return t}function QD(A){var e=[],t=A.path;e.push({name:"width",type:"NUMBER",value:A.advanceWidth});for(var i=0,n=0,o=0;o<t.commands.length;o+=1){var r=void 0,g=void 0,s=t.commands[o];if(s.type==="Q"){var a=.3333333333333333,I=2/3;s={type:"C",x:s.x,y:s.y,x1:Math.round(a*i+I*s.x1),y1:Math.round(a*n+I*s.y1),x2:Math.round(a*s.x+I*s.x1),y2:Math.round(a*s.y+I*s.y1)}}if(s.type==="M")r=Math.round(s.x-i),g=Math.round(s.y-n),e.push({name:"dx",type:"NUMBER",value:r}),e.push({name:"dy",type:"NUMBER",value:g}),e.push({name:"rmoveto",type:"OP",value:21}),i=Math.round(s.x),n=Math.round(s.y);else if(s.type==="L")r=Math.round(s.x-i),g=Math.round(s.y-n),e.push({name:"dx",type:"NUMBER",value:r}),e.push({name:"dy",type:"NUMBER",value:g}),e.push({name:"rlineto",type:"OP",value:5}),i=Math.round(s.x),n=Math.round(s.y);else if(s.type==="C"){var l=Math.round(s.x1-i),C=Math.round(s.y1-n),Q=Math.round(s.x2-s.x1),u=Math.round(s.y2-s.y1);r=Math.round(s.x-s.x2),g=Math.round(s.y-s.y2),e.push({name:"dx1",type:"NUMBER",value:l}),e.push({name:"dy1",type:"NUMBER",value:C}),e.push({name:"dx2",type:"NUMBER",value:Q}),e.push({name:"dy2",type:"NUMBER",value:u}),e.push({name:"dx",type:"NUMBER",value:r}),e.push({name:"dy",type:"NUMBER",value:g}),e.push({name:"rrcurveto",type:"OP",value:8}),i=Math.round(s.x),n=Math.round(s.y)}}return e.push({name:"endchar",type:"OP",value:14}),e}function cD(A){for(var e=new IA.Record("CharStrings INDEX",[{name:"charStrings",type:"INDEX",value:[]}]),t=0;t<A.length;t+=1){var i=A.get(t),n=QD(i);e.charStrings.push({name:i.name,type:"CHARSTRING",value:n})}return e}function ED(A,e){var t=new IA.Record("Private DICT",[{name:"dict",type:"DICT",value:{}}]);return t.dict=rl(il,A,e),t}function uD(A,e){for(var t=new IA.Table("CFF ",[{name:"header",type:"RECORD"},{name:"nameIndex",type:"RECORD"},{name:"topDictIndex",type:"RECORD"},{name:"stringIndex",type:"RECORD"},{name:"globalSubrIndex",type:"RECORD"},{name:"charsets",type:"RECORD"},{name:"charStringsIndex",type:"RECORD"},{name:"privateDict",type:"RECORD"}]),i=1/e.unitsPerEm,n={version:e.version,fullName:e.fullName,familyName:e.familyName,weight:e.weightName,fontBBox:e.fontBBox||[0,0,0,0],fontMatrix:[i,0,0,i,0,0],charset:999,encoding:0,charStrings:999,private:[0,999]},o={},r=[],g,s=1;s<A.length;s+=1)g=A.get(s),r.push(g.name);var a=[];t.header=aD(),t.nameIndex=ID([e.postScriptName]);var I=sa(n,a);t.topDictIndex=aa(I),t.globalSubrIndex=lD(),t.charsets=BD(r,a),t.charStringsIndex=cD(A),t.privateDict=ED(o,a),t.stringIndex=CD(a);var l=t.header.sizeOf()+t.nameIndex.sizeOf()+t.topDictIndex.sizeOf()+t.stringIndex.sizeOf()+t.globalSubrIndex.sizeOf();return n.charset=l,n.encoding=0,n.charStrings=n.charset+t.charsets.sizeOf(),n.private[1]=n.charStrings+t.charStringsIndex.sizeOf(),I=sa(n,a),t.topDictIndex=aa(I),t}var gl={parse:sD,make:uD};function hD(A,e){var t={},i=new QA.Parser(A,e);return t.version=i.parseVersion(),t.fontRevision=Math.round(i.parseFixed()*1e3)/1e3,t.checkSumAdjustment=i.parseULong(),t.magicNumber=i.parseULong(),yA.argument(t.magicNumber===1594834165,"Font header has wrong magic number."),t.flags=i.parseUShort(),t.unitsPerEm=i.parseUShort(),t.created=i.parseLongDateTime(),t.modified=i.parseLongDateTime(),t.xMin=i.parseShort(),t.yMin=i.parseShort(),t.xMax=i.parseShort(),t.yMax=i.parseShort(),t.macStyle=i.parseUShort(),t.lowestRecPPEM=i.parseUShort(),t.fontDirectionHint=i.parseShort(),t.indexToLocFormat=i.parseShort(),t.glyphDataFormat=i.parseShort(),t}function fD(A){var e=Math.round(new Date().getTime()/1e3)+2082844800,t=e;return A.createdTimestamp&&(t=A.createdTimestamp+2082844800),new IA.Table("head",[{name:"version",type:"FIXED",value:65536},{name:"fontRevision",type:"FIXED",value:65536},{name:"checkSumAdjustment",type:"ULONG",value:0},{name:"magicNumber",type:"ULONG",value:1594834165},{name:"flags",type:"USHORT",value:0},{name:"unitsPerEm",type:"USHORT",value:1e3},{name:"created",type:"LONGDATETIME",value:t},{name:"modified",type:"LONGDATETIME",value:e},{name:"xMin",type:"SHORT",value:0},{name:"yMin",type:"SHORT",value:0},{name:"xMax",type:"SHORT",value:0},{name:"yMax",type:"SHORT",value:0},{name:"macStyle",type:"USHORT",value:0},{name:"lowestRecPPEM",type:"USHORT",value:0},{name:"fontDirectionHint",type:"SHORT",value:2},{name:"indexToLocFormat",type:"SHORT",value:0},{name:"glyphDataFormat",type:"SHORT",value:0}],A)}var sl={parse:hD,make:fD};function dD(A,e){var t={},i=new QA.Parser(A,e);return t.version=i.parseVersion(),t.ascender=i.parseShort(),t.descender=i.parseShort(),t.lineGap=i.parseShort(),t.advanceWidthMax=i.parseUShort(),t.minLeftSideBearing=i.parseShort(),t.minRightSideBearing=i.parseShort(),t.xMaxExtent=i.parseShort(),t.caretSlopeRise=i.parseShort(),t.caretSlopeRun=i.parseShort(),t.caretOffset=i.parseShort(),i.relativeOffset+=8,t.metricDataFormat=i.parseShort(),t.numberOfHMetrics=i.parseUShort(),t}function pD(A){return new IA.Table("hhea",[{name:"version",type:"FIXED",value:65536},{name:"ascender",type:"FWORD",value:0},{name:"descender",type:"FWORD",value:0},{name:"lineGap",type:"FWORD",value:0},{name:"advanceWidthMax",type:"UFWORD",value:0},{name:"minLeftSideBearing",type:"FWORD",value:0},{name:"minRightSideBearing",type:"FWORD",value:0},{name:"xMaxExtent",type:"FWORD",value:0},{name:"caretSlopeRise",type:"SHORT",value:1},{name:"caretSlopeRun",type:"SHORT",value:0},{name:"caretOffset",type:"SHORT",value:0},{name:"reserved1",type:"SHORT",value:0},{name:"reserved2",type:"SHORT",value:0},{name:"reserved3",type:"SHORT",value:0},{name:"reserved4",type:"SHORT",value:0},{name:"metricDataFormat",type:"SHORT",value:0},{name:"numberOfHMetrics",type:"USHORT",value:0}],A)}var al={parse:dD,make:pD};function mD(A,e,t,i,n){for(var o,r,g=new QA.Parser(A,e),s=0;s<i;s+=1){s<t&&(o=g.parseUShort(),r=g.parseShort());var a=n.get(s);a.advanceWidth=o,a.leftSideBearing=r}}function yD(A,e,t,i,n){A._hmtxTableData={};for(var o,r,g=new QA.Parser(e,t),s=0;s<n;s+=1)s<i&&(o=g.parseUShort(),r=g.parseShort()),A._hmtxTableData[s]={advanceWidth:o,leftSideBearing:r}}function wD(A,e,t,i,n,o,r){r.lowMemory?yD(A,e,t,i,n):mD(e,t,i,n,o)}function DD(A){for(var e=new IA.Table("hmtx",[]),t=0;t<A.length;t+=1){var i=A.get(t),n=i.advanceWidth||0,o=i.leftSideBearing||0;e.fields.push({name:"advanceWidth_"+t,type:"USHORT",value:n}),e.fields.push({name:"leftSideBearing_"+t,type:"SHORT",value:o})}return e}var Il={parse:wD,make:DD};function kD(A){for(var e=new IA.Table("ltag",[{name:"version",type:"ULONG",value:1},{name:"flags",type:"ULONG",value:0},{name:"numTags",type:"ULONG",value:A.length}]),t="",i=12+A.length*4,n=0;n<A.length;++n){var o=t.indexOf(A[n]);o<0&&(o=t.length,t+=A[n]),e.fields.push({name:"offset "+n,type:"USHORT",value:i+o}),e.fields.push({name:"length "+n,type:"USHORT",value:A[n].length})}return e.fields.push({name:"stringPool",type:"CHARARRAY",value:t}),e}function vD(A,e){var t=new QA.Parser(A,e),i=t.parseULong();yA.argument(i===1,"Unsupported ltag table version."),t.skip("uLong",1);for(var n=t.parseULong(),o=[],r=0;r<n;r++){for(var g="",s=e+t.parseUShort(),a=t.parseUShort(),I=s;I<s+a;++I)g+=String.fromCharCode(A.getInt8(I));o.push(g)}return o}var Cl={make:kD,parse:vD};function FD(A,e){var t={},i=new QA.Parser(A,e);return t.version=i.parseVersion(),t.numGlyphs=i.parseUShort(),t.version===1&&(t.maxPoints=i.parseUShort(),t.maxContours=i.parseUShort(),t.maxCompositePoints=i.parseUShort(),t.maxCompositeContours=i.parseUShort(),t.maxZones=i.parseUShort(),t.maxTwilightPoints=i.parseUShort(),t.maxStorage=i.parseUShort(),t.maxFunctionDefs=i.parseUShort(),t.maxInstructionDefs=i.parseUShort(),t.maxStackElements=i.parseUShort(),t.maxSizeOfInstructions=i.parseUShort(),t.maxComponentElements=i.parseUShort(),t.maxComponentDepth=i.parseUShort()),t}function SD(A){return new IA.Table("maxp",[{name:"version",type:"FIXED",value:20480},{name:"numGlyphs",type:"USHORT",value:A}])}var ll={parse:FD,make:SD},Bl=["copyright","fontFamily","fontSubfamily","uniqueID","fullName","version","postScriptName","trademark","manufacturer","designer","description","manufacturerURL","designerURL","license","licenseURL","reserved","preferredFamily","preferredSubfamily","compatibleFullName","sampleText","postScriptFindFontName","wwsFamily","wwsSubfamily"],Ql={0:"en",1:"fr",2:"de",3:"it",4:"nl",5:"sv",6:"es",7:"da",8:"pt",9:"no",10:"he",11:"ja",12:"ar",13:"fi",14:"el",15:"is",16:"mt",17:"tr",18:"hr",19:"zh-Hant",20:"ur",21:"hi",22:"th",23:"ko",24:"lt",25:"pl",26:"hu",27:"es",28:"lv",29:"se",30:"fo",31:"fa",32:"ru",33:"zh",34:"nl-BE",35:"ga",36:"sq",37:"ro",38:"cz",39:"sk",40:"si",41:"yi",42:"sr",43:"mk",44:"bg",45:"uk",46:"be",47:"uz",48:"kk",49:"az-Cyrl",50:"az-Arab",51:"hy",52:"ka",53:"mo",54:"ky",55:"tg",56:"tk",57:"mn-CN",58:"mn",59:"ps",60:"ks",61:"ku",62:"sd",63:"bo",64:"ne",65:"sa",66:"mr",67:"bn",68:"as",69:"gu",70:"pa",71:"or",72:"ml",73:"kn",74:"ta",75:"te",76:"si",77:"my",78:"km",79:"lo",80:"vi",81:"id",82:"tl",83:"ms",84:"ms-Arab",85:"am",86:"ti",87:"om",88:"so",89:"sw",90:"rw",91:"rn",92:"ny",93:"mg",94:"eo",128:"cy",129:"eu",130:"ca",131:"la",132:"qu",133:"gn",134:"ay",135:"tt",136:"ug",137:"dz",138:"jv",139:"su",140:"gl",141:"af",142:"br",143:"iu",144:"gd",145:"gv",146:"ga",147:"to",148:"el-polyton",149:"kl",150:"az",151:"nn"},bD={0:0,1:0,2:0,3:0,4:0,5:0,6:0,7:0,8:0,9:0,10:5,11:1,12:4,13:0,14:6,15:0,16:0,17:0,18:0,19:2,20:4,21:9,22:21,23:3,24:29,25:29,26:29,27:29,28:29,29:0,30:0,31:4,32:7,33:25,34:0,35:0,36:0,37:0,38:29,39:29,40:0,41:5,42:7,43:7,44:7,45:7,46:7,47:7,48:7,49:7,50:4,51:24,52:23,53:7,54:7,55:7,56:7,57:27,58:7,59:4,60:4,61:4,62:4,63:26,64:9,65:9,66:9,67:13,68:13,69:11,70:10,71:12,72:17,73:16,74:14,75:15,76:18,77:19,78:20,79:22,80:30,81:0,82:0,83:0,84:4,85:28,86:28,87:28,88:0,89:0,90:0,91:0,92:0,93:0,94:0,128:0,129:0,130:0,131:0,132:0,133:0,134:0,135:7,136:4,137:26,138:0,139:0,140:0,141:0,142:0,143:28,144:0,145:0,146:0,147:0,148:6,149:0,150:0,151:0},cl={1078:"af",1052:"sq",1156:"gsw",1118:"am",5121:"ar-DZ",15361:"ar-BH",3073:"ar",2049:"ar-IQ",11265:"ar-JO",13313:"ar-KW",12289:"ar-LB",4097:"ar-LY",6145:"ary",8193:"ar-OM",16385:"ar-QA",1025:"ar-SA",10241:"ar-SY",7169:"aeb",14337:"ar-AE",9217:"ar-YE",1067:"hy",1101:"as",2092:"az-Cyrl",1068:"az",1133:"ba",1069:"eu",1059:"be",2117:"bn",1093:"bn-IN",8218:"bs-Cyrl",5146:"bs",1150:"br",1026:"bg",1027:"ca",3076:"zh-HK",5124:"zh-MO",2052:"zh",4100:"zh-SG",1028:"zh-TW",1155:"co",1050:"hr",4122:"hr-BA",1029:"cs",1030:"da",1164:"prs",1125:"dv",2067:"nl-BE",1043:"nl",3081:"en-AU",10249:"en-BZ",4105:"en-CA",9225:"en-029",16393:"en-IN",6153:"en-IE",8201:"en-JM",17417:"en-MY",5129:"en-NZ",13321:"en-PH",18441:"en-SG",7177:"en-ZA",11273:"en-TT",2057:"en-GB",1033:"en",12297:"en-ZW",1061:"et",1080:"fo",1124:"fil",1035:"fi",2060:"fr-BE",3084:"fr-CA",1036:"fr",5132:"fr-LU",6156:"fr-MC",4108:"fr-CH",1122:"fy",1110:"gl",1079:"ka",3079:"de-AT",1031:"de",5127:"de-LI",4103:"de-LU",2055:"de-CH",1032:"el",1135:"kl",1095:"gu",1128:"ha",1037:"he",1081:"hi",1038:"hu",1039:"is",1136:"ig",1057:"id",1117:"iu",2141:"iu-Latn",2108:"ga",1076:"xh",1077:"zu",1040:"it",2064:"it-CH",1041:"ja",1099:"kn",1087:"kk",1107:"km",1158:"quc",1159:"rw",1089:"sw",1111:"kok",1042:"ko",1088:"ky",1108:"lo",1062:"lv",1063:"lt",2094:"dsb",1134:"lb",1071:"mk",2110:"ms-BN",1086:"ms",1100:"ml",1082:"mt",1153:"mi",1146:"arn",1102:"mr",1148:"moh",1104:"mn",2128:"mn-CN",1121:"ne",1044:"nb",2068:"nn",1154:"oc",1096:"or",1123:"ps",1045:"pl",1046:"pt",2070:"pt-PT",1094:"pa",1131:"qu-BO",2155:"qu-EC",3179:"qu",1048:"ro",1047:"rm",1049:"ru",9275:"smn",4155:"smj-NO",5179:"smj",3131:"se-FI",1083:"se",2107:"se-SE",8251:"sms",6203:"sma-NO",7227:"sms",1103:"sa",7194:"sr-Cyrl-BA",3098:"sr",6170:"sr-Latn-BA",2074:"sr-Latn",1132:"nso",1074:"tn",1115:"si",1051:"sk",1060:"sl",11274:"es-AR",16394:"es-BO",13322:"es-CL",9226:"es-CO",5130:"es-CR",7178:"es-DO",12298:"es-EC",17418:"es-SV",4106:"es-GT",18442:"es-HN",2058:"es-MX",19466:"es-NI",6154:"es-PA",15370:"es-PY",10250:"es-PE",20490:"es-PR",3082:"es",1034:"es",21514:"es-US",14346:"es-UY",8202:"es-VE",2077:"sv-FI",1053:"sv",1114:"syr",1064:"tg",2143:"tzm",1097:"ta",1092:"tt",1098:"te",1054:"th",1105:"bo",1055:"tr",1090:"tk",1152:"ug",1058:"uk",1070:"hsb",1056:"ur",2115:"uz-Cyrl",1091:"uz",1066:"vi",1106:"cy",1160:"wo",1157:"sah",1144:"ii",1130:"yo"};function RD(A,e,t){switch(A){case 0:if(e===65535)return"und";if(t)return t[e];break;case 1:return Ql[e];case 3:return cl[e]}}var Mr="utf-16",ND={0:"macintosh",1:"x-mac-japanese",2:"x-mac-chinesetrad",3:"x-mac-korean",6:"x-mac-greek",7:"x-mac-cyrillic",9:"x-mac-devanagai",10:"x-mac-gurmukhi",11:"x-mac-gujarati",12:"x-mac-oriya",13:"x-mac-bengali",14:"x-mac-tamil",15:"x-mac-telugu",16:"x-mac-kannada",17:"x-mac-malayalam",18:"x-mac-sinhalese",19:"x-mac-burmese",20:"x-mac-khmer",21:"x-mac-thai",22:"x-mac-lao",23:"x-mac-georgian",24:"x-mac-armenian",25:"x-mac-chinesesimp",26:"x-mac-tibetan",27:"x-mac-mongolian",28:"x-mac-ethiopic",29:"x-mac-ce",30:"x-mac-vietnamese",31:"x-mac-extarabic"},GD={15:"x-mac-icelandic",17:"x-mac-turkish",18:"x-mac-croatian",24:"x-mac-ce",25:"x-mac-ce",26:"x-mac-ce",27:"x-mac-ce",28:"x-mac-ce",30:"x-mac-icelandic",37:"x-mac-romanian",38:"x-mac-ce",39:"x-mac-ce",40:"x-mac-ce",143:"x-mac-inuit",146:"x-mac-gaelic"};function El(A,e,t){switch(A){case 0:return Mr;case 1:return GD[t]||ND[e];case 3:if(e===1||e===10)return Mr;break}}function LD(A,e,t){for(var i={},n=new QA.Parser(A,e),o=n.parseUShort(),r=n.parseUShort(),g=n.offset+n.parseUShort(),s=0;s<r;s++){var a=n.parseUShort(),I=n.parseUShort(),l=n.parseUShort(),C=n.parseUShort(),Q=Bl[C]||C,u=n.parseUShort(),f=n.parseUShort(),h=RD(a,l,t),E=El(a,I,l);if(E!==void 0&&h!==void 0){var p=void 0;if(E===Mr?p=Ni.UTF16(A,g+f,u):p=Ni.MACSTRING(A,g+f,u,E),p){var c=i[Q];c===void 0&&(c=i[Q]={}),c[h]=p}}}return o===1&&n.parseUShort(),i}function Xo(A){var e={};for(var t in A)e[A[t]]=parseInt(t);return e}function Ia(A,e,t,i,n,o){return new IA.Record("NameRecord",[{name:"platformID",type:"USHORT",value:A},{name:"encodingID",type:"USHORT",value:e},{name:"languageID",type:"USHORT",value:t},{name:"nameID",type:"USHORT",value:i},{name:"length",type:"USHORT",value:n},{name:"offset",type:"USHORT",value:o}])}function UD(A,e){var t=A.length,i=e.length-t+1;A:for(var n=0;n<i;n++)for(;n<i;n++){for(var o=0;o<t;o++)if(e[n+o]!==A[o])continue A;return n}return-1}function Ca(A,e){var t=UD(A,e);if(t<0){t=e.length;for(var i=0,n=A.length;i<n;++i)e.push(A[i])}return t}function MD(A,e){var t,i=[],n={},o=Xo(Bl);for(var r in A){var g=o[r];if(g===void 0&&(g=r),t=parseInt(g),isNaN(t))throw new Error('Name table entry "'+r+'" does not exist, see nameTableNames for complete list.');n[t]=A[r],i.push(t)}for(var s=Xo(Ql),a=Xo(cl),I=[],l=[],C=0;C<i.length;C++){t=i[C];var Q=n[t];for(var u in Q){var f=Q[u],h=1,E=s[u],p=bD[E],c=El(h,p,E),d=rA.MACSTRING(f,c);d===void 0&&(h=0,E=e.indexOf(u),E<0&&(E=e.length,e.push(u)),p=4,d=rA.UTF16(f));var w=Ca(d,l);I.push(Ia(h,p,E,t,d.length,w));var F=a[u];if(F!==void 0){var N=rA.UTF16(f),G=Ca(N,l);I.push(Ia(3,1,F,t,N.length,G))}}}I.sort(function(R,L){return R.platformID-L.platformID||R.encodingID-L.encodingID||R.languageID-L.languageID||R.nameID-L.nameID});for(var P=new IA.Table("name",[{name:"format",type:"USHORT",value:0},{name:"count",type:"USHORT",value:I.length},{name:"stringOffset",type:"USHORT",value:6+I.length*12}]),b=0;b<I.length;b++)P.fields.push({name:"record_"+b,type:"RECORD",value:I[b]});return P.fields.push({name:"strings",type:"LITERAL",value:l}),P}var ul={parse:LD,make:MD},xr=[{begin:0,end:127},{begin:128,end:255},{begin:256,end:383},{begin:384,end:591},{begin:592,end:687},{begin:688,end:767},{begin:768,end:879},{begin:880,end:1023},{begin:11392,end:11519},{begin:1024,end:1279},{begin:1328,end:1423},{begin:1424,end:1535},{begin:42240,end:42559},{begin:1536,end:1791},{begin:1984,end:2047},{begin:2304,end:2431},{begin:2432,end:2559},{begin:2560,end:2687},{begin:2688,end:2815},{begin:2816,end:2943},{begin:2944,end:3071},{begin:3072,end:3199},{begin:3200,end:3327},{begin:3328,end:3455},{begin:3584,end:3711},{begin:3712,end:3839},{begin:4256,end:4351},{begin:6912,end:7039},{begin:4352,end:4607},{begin:7680,end:7935},{begin:7936,end:8191},{begin:8192,end:8303},{begin:8304,end:8351},{begin:8352,end:8399},{begin:8400,end:8447},{begin:8448,end:8527},{begin:8528,end:8591},{begin:8592,end:8703},{begin:8704,end:8959},{begin:8960,end:9215},{begin:9216,end:9279},{begin:9280,end:9311},{begin:9312,end:9471},{begin:9472,end:9599},{begin:9600,end:9631},{begin:9632,end:9727},{begin:9728,end:9983},{begin:9984,end:10175},{begin:12288,end:12351},{begin:12352,end:12447},{begin:12448,end:12543},{begin:12544,end:12591},{begin:12592,end:12687},{begin:43072,end:43135},{begin:12800,end:13055},{begin:13056,end:13311},{begin:44032,end:55215},{begin:55296,end:57343},{begin:67840,end:67871},{begin:19968,end:40959},{begin:57344,end:63743},{begin:12736,end:12783},{begin:64256,end:64335},{begin:64336,end:65023},{begin:65056,end:65071},{begin:65040,end:65055},{begin:65104,end:65135},{begin:65136,end:65279},{begin:65280,end:65519},{begin:65520,end:65535},{begin:3840,end:4095},{begin:1792,end:1871},{begin:1920,end:1983},{begin:3456,end:3583},{begin:4096,end:4255},{begin:4608,end:4991},{begin:5024,end:5119},{begin:5120,end:5759},{begin:5760,end:5791},{begin:5792,end:5887},{begin:6016,end:6143},{begin:6144,end:6319},{begin:10240,end:10495},{begin:40960,end:42127},{begin:5888,end:5919},{begin:66304,end:66351},{begin:66352,end:66383},{begin:66560,end:66639},{begin:118784,end:119039},{begin:119808,end:120831},{begin:1044480,end:1048573},{begin:65024,end:65039},{begin:917504,end:917631},{begin:6400,end:6479},{begin:6480,end:6527},{begin:6528,end:6623},{begin:6656,end:6687},{begin:11264,end:11359},{begin:11568,end:11647},{begin:19904,end:19967},{begin:43008,end:43055},{begin:65536,end:65663},{begin:65856,end:65935},{begin:66432,end:66463},{begin:66464,end:66527},{begin:66640,end:66687},{begin:66688,end:66735},{begin:67584,end:67647},{begin:68096,end:68191},{begin:119552,end:119647},{begin:73728,end:74751},{begin:119648,end:119679},{begin:7040,end:7103},{begin:7168,end:7247},{begin:7248,end:7295},{begin:43136,end:43231},{begin:43264,end:43311},{begin:43312,end:43359},{begin:43520,end:43615},{begin:65936,end:65999},{begin:66e3,end:66047},{begin:66208,end:66271},{begin:127024,end:127135}];function xD(A){for(var e=0;e<xr.length;e+=1){var t=xr[e];if(A>=t.begin&&A<t.end)return e}return-1}function JD(A,e){var t={},i=new QA.Parser(A,e);t.version=i.parseUShort(),t.xAvgCharWidth=i.parseShort(),t.usWeightClass=i.parseUShort(),t.usWidthClass=i.parseUShort(),t.fsType=i.parseUShort(),t.ySubscriptXSize=i.parseShort(),t.ySubscriptYSize=i.parseShort(),t.ySubscriptXOffset=i.parseShort(),t.ySubscriptYOffset=i.parseShort(),t.ySuperscriptXSize=i.parseShort(),t.ySuperscriptYSize=i.parseShort(),t.ySuperscriptXOffset=i.parseShort(),t.ySuperscriptYOffset=i.parseShort(),t.yStrikeoutSize=i.parseShort(),t.yStrikeoutPosition=i.parseShort(),t.sFamilyClass=i.parseShort(),t.panose=[];for(var n=0;n<10;n++)t.panose[n]=i.parseByte();return t.ulUnicodeRange1=i.parseULong(),t.ulUnicodeRange2=i.parseULong(),t.ulUnicodeRange3=i.parseULong(),t.ulUnicodeRange4=i.parseULong(),t.achVendID=String.fromCharCode(i.parseByte(),i.parseByte(),i.parseByte(),i.parseByte()),t.fsSelection=i.parseUShort(),t.usFirstCharIndex=i.parseUShort(),t.usLastCharIndex=i.parseUShort(),t.sTypoAscender=i.parseShort(),t.sTypoDescender=i.parseShort(),t.sTypoLineGap=i.parseShort(),t.usWinAscent=i.parseUShort(),t.usWinDescent=i.parseUShort(),t.version>=1&&(t.ulCodePageRange1=i.parseULong(),t.ulCodePageRange2=i.parseULong()),t.version>=2&&(t.sxHeight=i.parseShort(),t.sCapHeight=i.parseShort(),t.usDefaultChar=i.parseUShort(),t.usBreakChar=i.parseUShort(),t.usMaxContent=i.parseUShort()),t}function TD(A){return new IA.Table("OS/2",[{name:"version",type:"USHORT",value:3},{name:"xAvgCharWidth",type:"SHORT",value:0},{name:"usWeightClass",type:"USHORT",value:0},{name:"usWidthClass",type:"USHORT",value:0},{name:"fsType",type:"USHORT",value:0},{name:"ySubscriptXSize",type:"SHORT",value:650},{name:"ySubscriptYSize",type:"SHORT",value:699},{name:"ySubscriptXOffset",type:"SHORT",value:0},{name:"ySubscriptYOffset",type:"SHORT",value:140},{name:"ySuperscriptXSize",type:"SHORT",value:650},{name:"ySuperscriptYSize",type:"SHORT",value:699},{name:"ySuperscriptXOffset",type:"SHORT",value:0},{name:"ySuperscriptYOffset",type:"SHORT",value:479},{name:"yStrikeoutSize",type:"SHORT",value:49},{name:"yStrikeoutPosition",type:"SHORT",value:258},{name:"sFamilyClass",type:"SHORT",value:0},{name:"bFamilyType",type:"BYTE",value:0},{name:"bSerifStyle",type:"BYTE",value:0},{name:"bWeight",type:"BYTE",value:0},{name:"bProportion",type:"BYTE",value:0},{name:"bContrast",type:"BYTE",value:0},{name:"bStrokeVariation",type:"BYTE",value:0},{name:"bArmStyle",type:"BYTE",value:0},{name:"bLetterform",type:"BYTE",value:0},{name:"bMidline",type:"BYTE",value:0},{name:"bXHeight",type:"BYTE",value:0},{name:"ulUnicodeRange1",type:"ULONG",value:0},{name:"ulUnicodeRange2",type:"ULONG",value:0},{name:"ulUnicodeRange3",type:"ULONG",value:0},{name:"ulUnicodeRange4",type:"ULONG",value:0},{name:"achVendID",type:"CHARARRAY",value:"XXXX"},{name:"fsSelection",type:"USHORT",value:0},{name:"usFirstCharIndex",type:"USHORT",value:0},{name:"usLastCharIndex",type:"USHORT",value:0},{name:"sTypoAscender",type:"SHORT",value:0},{name:"sTypoDescender",type:"SHORT",value:0},{name:"sTypoLineGap",type:"SHORT",value:0},{name:"usWinAscent",type:"USHORT",value:0},{name:"usWinDescent",type:"USHORT",value:0},{name:"ulCodePageRange1",type:"ULONG",value:0},{name:"ulCodePageRange2",type:"ULONG",value:0},{name:"sxHeight",type:"SHORT",value:0},{name:"sCapHeight",type:"SHORT",value:0},{name:"usDefaultChar",type:"USHORT",value:0},{name:"usBreakChar",type:"USHORT",value:0},{name:"usMaxContext",type:"USHORT",value:0}],A)}var Jr={parse:JD,make:TD,unicodeRanges:xr,getUnicodeRange:xD};function HD(A,e){var t={},i=new QA.Parser(A,e);switch(t.version=i.parseVersion(),t.italicAngle=i.parseFixed(),t.underlinePosition=i.parseShort(),t.underlineThickness=i.parseShort(),t.isFixedPitch=i.parseULong(),t.minMemType42=i.parseULong(),t.maxMemType42=i.parseULong(),t.minMemType1=i.parseULong(),t.maxMemType1=i.parseULong(),t.version){case 1:t.names=ni.slice();break;case 2:t.numberOfGlyphs=i.parseUShort(),t.glyphNameIndex=new Array(t.numberOfGlyphs);for(var n=0;n<t.numberOfGlyphs;n++)t.glyphNameIndex[n]=i.parseUShort();t.names=[];for(var o=0;o<t.numberOfGlyphs;o++)if(t.glyphNameIndex[o]>=ni.length){var r=i.parseChar();t.names.push(i.parseString(r))}break;case 2.5:t.numberOfGlyphs=i.parseUShort(),t.offset=new Array(t.numberOfGlyphs);for(var g=0;g<t.numberOfGlyphs;g++)t.offset[g]=i.parseChar();break}return t}function YD(){return new IA.Table("post",[{name:"version",type:"FIXED",value:196608},{name:"italicAngle",type:"FIXED",value:0},{name:"underlinePosition",type:"FWORD",value:0},{name:"underlineThickness",type:"FWORD",value:0},{name:"isFixedPitch",type:"ULONG",value:0},{name:"minMemType42",type:"ULONG",value:0},{name:"maxMemType42",type:"ULONG",value:0},{name:"minMemType1",type:"ULONG",value:0},{name:"maxMemType1",type:"ULONG",value:0}])}var hl={parse:HD,make:YD},Ve=new Array(9);Ve[1]=function(){var e=this.offset+this.relativeOffset,t=this.parseUShort();if(t===1)return{substFormat:1,coverage:this.parsePointer(T.coverage),deltaGlyphId:this.parseUShort()};if(t===2)return{substFormat:2,coverage:this.parsePointer(T.coverage),substitute:this.parseOffset16List()};yA.assert(!1,"0x"+e.toString(16)+": lookup type 1 format must be 1 or 2.")};Ve[2]=function(){var e=this.parseUShort();return yA.argument(e===1,"GSUB Multiple Substitution Subtable identifier-format must be 1"),{substFormat:e,coverage:this.parsePointer(T.coverage),sequences:this.parseListOfLists()}};Ve[3]=function(){var e=this.parseUShort();return yA.argument(e===1,"GSUB Alternate Substitution Subtable identifier-format must be 1"),{substFormat:e,coverage:this.parsePointer(T.coverage),alternateSets:this.parseListOfLists()}};Ve[4]=function(){var e=this.parseUShort();return yA.argument(e===1,"GSUB ligature table identifier-format must be 1"),{substFormat:e,coverage:this.parsePointer(T.coverage),ligatureSets:this.parseListOfLists(function(){return{ligGlyph:this.parseUShort(),components:this.parseUShortList(this.parseUShort()-1)}})}};var Di={sequenceIndex:T.uShort,lookupListIndex:T.uShort};Ve[5]=function(){var e=this.offset+this.relativeOffset,t=this.parseUShort();if(t===1)return{substFormat:t,coverage:this.parsePointer(T.coverage),ruleSets:this.parseListOfLists(function(){var o=this.parseUShort(),r=this.parseUShort();return{input:this.parseUShortList(o-1),lookupRecords:this.parseRecordList(r,Di)}})};if(t===2)return{substFormat:t,coverage:this.parsePointer(T.coverage),classDef:this.parsePointer(T.classDef),classSets:this.parseListOfLists(function(){var o=this.parseUShort(),r=this.parseUShort();return{classes:this.parseUShortList(o-1),lookupRecords:this.parseRecordList(r,Di)}})};if(t===3){var i=this.parseUShort(),n=this.parseUShort();return{substFormat:t,coverages:this.parseList(i,T.pointer(T.coverage)),lookupRecords:this.parseRecordList(n,Di)}}yA.assert(!1,"0x"+e.toString(16)+": lookup type 5 format must be 1, 2 or 3.")};Ve[6]=function(){var e=this.offset+this.relativeOffset,t=this.parseUShort();if(t===1)return{substFormat:1,coverage:this.parsePointer(T.coverage),chainRuleSets:this.parseListOfLists(function(){return{backtrack:this.parseUShortList(),input:this.parseUShortList(this.parseShort()-1),lookahead:this.parseUShortList(),lookupRecords:this.parseRecordList(Di)}})};if(t===2)return{substFormat:2,coverage:this.parsePointer(T.coverage),backtrackClassDef:this.parsePointer(T.classDef),inputClassDef:this.parsePointer(T.classDef),lookaheadClassDef:this.parsePointer(T.classDef),chainClassSet:this.parseListOfLists(function(){return{backtrack:this.parseUShortList(),input:this.parseUShortList(this.parseShort()-1),lookahead:this.parseUShortList(),lookupRecords:this.parseRecordList(Di)}})};if(t===3)return{substFormat:3,backtrackCoverage:this.parseList(T.pointer(T.coverage)),inputCoverage:this.parseList(T.pointer(T.coverage)),lookaheadCoverage:this.parseList(T.pointer(T.coverage)),lookupRecords:this.parseRecordList(Di)};yA.assert(!1,"0x"+e.toString(16)+": lookup type 6 format must be 1, 2 or 3.")};Ve[7]=function(){var e=this.parseUShort();yA.argument(e===1,"GSUB Extension Substitution subtable identifier-format must be 1");var t=this.parseUShort(),i=new T(this.data,this.offset+this.parseULong());return{substFormat:1,lookupType:t,extension:Ve[t].call(i)}};Ve[8]=function(){var e=this.parseUShort();return yA.argument(e===1,"GSUB Reverse Chaining Contextual Single Substitution Subtable identifier-format must be 1"),{substFormat:e,coverage:this.parsePointer(T.coverage),backtrackCoverage:this.parseList(T.pointer(T.coverage)),lookaheadCoverage:this.parseList(T.pointer(T.coverage)),substitutes:this.parseUShortList()}};function _D(A,e){e=e||0;var t=new T(A,e),i=t.parseVersion(1);return yA.argument(i===1||i===1.1,"Unsupported GSUB table version."),i===1?{version:i,scripts:t.parseScriptList(),features:t.parseFeatureList(),lookups:t.parseLookupList(Ve)}:{version:i,scripts:t.parseScriptList(),features:t.parseFeatureList(),lookups:t.parseLookupList(Ve),variations:t.parseFeatureVariationsList()}}var Mi=new Array(9);Mi[1]=function(e){return e.substFormat===1?new IA.Table("substitutionTable",[{name:"substFormat",type:"USHORT",value:1},{name:"coverage",type:"TABLE",value:new IA.Coverage(e.coverage)},{name:"deltaGlyphID",type:"USHORT",value:e.deltaGlyphId}]):new IA.Table("substitutionTable",[{name:"substFormat",type:"USHORT",value:2},{name:"coverage",type:"TABLE",value:new IA.Coverage(e.coverage)}].concat(IA.ushortList("substitute",e.substitute)))};Mi[2]=function(e){return yA.assert(e.substFormat===1,"Lookup type 2 substFormat must be 1."),new IA.Table("substitutionTable",[{name:"substFormat",type:"USHORT",value:1},{name:"coverage",type:"TABLE",value:new IA.Coverage(e.coverage)}].concat(IA.tableList("seqSet",e.sequences,function(t){return new IA.Table("sequenceSetTable",IA.ushortList("sequence",t))})))};Mi[3]=function(e){return yA.assert(e.substFormat===1,"Lookup type 3 substFormat must be 1."),new IA.Table("substitutionTable",[{name:"substFormat",type:"USHORT",value:1},{name:"coverage",type:"TABLE",value:new IA.Coverage(e.coverage)}].concat(IA.tableList("altSet",e.alternateSets,function(t){return new IA.Table("alternateSetTable",IA.ushortList("alternate",t))})))};Mi[4]=function(e){return yA.assert(e.substFormat===1,"Lookup type 4 substFormat must be 1."),new IA.Table("substitutionTable",[{name:"substFormat",type:"USHORT",value:1},{name:"coverage",type:"TABLE",value:new IA.Coverage(e.coverage)}].concat(IA.tableList("ligSet",e.ligatureSets,function(t){return new IA.Table("ligatureSetTable",IA.tableList("ligature",t,function(i){return new IA.Table("ligatureTable",[{name:"ligGlyph",type:"USHORT",value:i.ligGlyph}].concat(IA.ushortList("component",i.components,i.components.length+1)))}))})))};Mi[6]=function(e){if(e.substFormat===1){var t=new IA.Table("chainContextTable",[{name:"substFormat",type:"USHORT",value:e.substFormat},{name:"coverage",type:"TABLE",value:new IA.Coverage(e.coverage)}].concat(IA.tableList("chainRuleSet",e.chainRuleSets,function(o){return new IA.Table("chainRuleSetTable",IA.tableList("chainRule",o,function(r){var g=IA.ushortList("backtrackGlyph",r.backtrack,r.backtrack.length).concat(IA.ushortList("inputGlyph",r.input,r.input.length+1)).concat(IA.ushortList("lookaheadGlyph",r.lookahead,r.lookahead.length)).concat(IA.ushortList("substitution",[],r.lookupRecords.length));return r.lookupRecords.forEach(function(s,a){g=g.concat({name:"sequenceIndex"+a,type:"USHORT",value:s.sequenceIndex}).concat({name:"lookupListIndex"+a,type:"USHORT",value:s.lookupListIndex})}),new IA.Table("chainRuleTable",g)}))})));return t}else if(e.substFormat===2)yA.assert(!1,"lookup type 6 format 2 is not yet supported.");else if(e.substFormat===3){var i=[{name:"substFormat",type:"USHORT",value:e.substFormat}];i.push({name:"backtrackGlyphCount",type:"USHORT",value:e.backtrackCoverage.length}),e.backtrackCoverage.forEach(function(o,r){i.push({name:"backtrackCoverage"+r,type:"TABLE",value:new IA.Coverage(o)})}),i.push({name:"inputGlyphCount",type:"USHORT",value:e.inputCoverage.length}),e.inputCoverage.forEach(function(o,r){i.push({name:"inputCoverage"+r,type:"TABLE",value:new IA.Coverage(o)})}),i.push({name:"lookaheadGlyphCount",type:"USHORT",value:e.lookaheadCoverage.length}),e.lookaheadCoverage.forEach(function(o,r){i.push({name:"lookaheadCoverage"+r,type:"TABLE",value:new IA.Coverage(o)})}),i.push({name:"substitutionCount",type:"USHORT",value:e.lookupRecords.length}),e.lookupRecords.forEach(function(o,r){i=i.concat({name:"sequenceIndex"+r,type:"USHORT",value:o.sequenceIndex}).concat({name:"lookupListIndex"+r,type:"USHORT",value:o.lookupListIndex})});var n=new IA.Table("chainContextTable",i);return n}yA.assert(!1,"lookup type 6 format must be 1, 2 or 3.")};function KD(A){return new IA.Table("GSUB",[{name:"version",type:"ULONG",value:65536},{name:"scripts",type:"TABLE",value:new IA.ScriptList(A.scripts)},{name:"features",type:"TABLE",value:new IA.FeatureList(A.features)},{name:"lookups",type:"TABLE",value:new IA.LookupList(A.lookups,Mi)}])}var fl={parse:_D,make:KD};function PD(A,e){var t=new QA.Parser(A,e),i=t.parseULong();yA.argument(i===1,"Unsupported META table version."),t.parseULong(),t.parseULong();for(var n=t.parseULong(),o={},r=0;r<n;r++){var g=t.parseTag(),s=t.parseULong(),a=t.parseULong(),I=Ni.UTF8(A,e+s,a);o[g]=I}return o}function OD(A){var e=Object.keys(A).length,t="",i=16+e*12,n=new IA.Table("meta",[{name:"version",type:"ULONG",value:1},{name:"flags",type:"ULONG",value:0},{name:"offset",type:"ULONG",value:i},{name:"numTags",type:"ULONG",value:e}]);for(var o in A){var r=t.length;t+=A[o],n.fields.push({name:"tag "+o,type:"TAG",value:o}),n.fields.push({name:"offset "+o,type:"ULONG",value:i+r}),n.fields.push({name:"length "+o,type:"ULONG",value:A[o].length})}return n.fields.push({name:"stringPool",type:"CHARARRAY",value:t}),n}var dl={parse:PD,make:OD};function la(A){return Math.log(A)/Math.log(2)|0}function pg(A){for(;A.length%4!==0;)A.push(0);for(var e=0,t=0;t<A.length;t+=4)e+=(A[t]<<24)+(A[t+1]<<16)+(A[t+2]<<8)+A[t+3];return e%=Math.pow(2,32),e}function Ba(A,e,t,i){return new IA.Record("Table Record",[{name:"tag",type:"TAG",value:A!==void 0?A:""},{name:"checkSum",type:"ULONG",value:e!==void 0?e:0},{name:"offset",type:"ULONG",value:t!==void 0?t:0},{name:"length",type:"ULONG",value:i!==void 0?i:0}])}function pl(A){var e=new IA.Table("sfnt",[{name:"version",type:"TAG",value:"OTTO"},{name:"numTables",type:"USHORT",value:0},{name:"searchRange",type:"USHORT",value:0},{name:"entrySelector",type:"USHORT",value:0},{name:"rangeShift",type:"USHORT",value:0}]);e.tables=A,e.numTables=A.length;var t=Math.pow(2,la(e.numTables));e.searchRange=16*t,e.entrySelector=la(t),e.rangeShift=e.numTables*16-e.searchRange;for(var i=[],n=[],o=e.sizeOf()+Ba().sizeOf()*e.numTables;o%4!==0;)o+=1,n.push({name:"padding",type:"BYTE",value:0});for(var r=0;r<A.length;r+=1){var g=A[r];yA.argument(g.tableName.length===4,"Table name"+g.tableName+" is invalid.");var s=g.sizeOf(),a=Ba(g.tableName,pg(g.encode()),o,s);for(i.push({name:a.tag+" Table Record",type:"RECORD",value:a}),n.push({name:g.tableName+" table",type:"RECORD",value:g}),o+=s,yA.argument(!isNaN(o),"Something went wrong calculating the offset.");o%4!==0;)o+=1,n.push({name:"padding",type:"BYTE",value:0})}return i.sort(function(I,l){return I.value.tag>l.value.tag?1:-1}),e.fields=e.fields.concat(i),e.fields=e.fields.concat(n),e}function Qa(A,e,t){for(var i=0;i<e.length;i+=1){var n=A.charToGlyphIndex(e[i]);if(n>0){var o=A.glyphs.get(n);return o.getMetrics()}}return t}function VD(A){for(var e=0,t=0;t<A.length;t+=1)e+=A[t];return e/A.length}function WD(A){for(var e=[],t=[],i=[],n=[],o=[],r=[],g=[],s,a=0,I=0,l=0,C=0,Q=0,u=0;u<A.glyphs.length;u+=1){var f=A.glyphs.get(u),h=f.unicode|0;if(isNaN(f.advanceWidth))throw new Error("Glyph "+f.name+" ("+u+"): advanceWidth is not a number.");(s>h||s===void 0)&&h>0&&(s=h),a<h&&(a=h);var E=Jr.getUnicodeRange(h);if(E<32)I|=1<<E;else if(E<64)l|=1<<E-32;else if(E<96)C|=1<<E-64;else if(E<123)Q|=1<<E-96;else throw new Error("Unicode ranges bits > 123 are reserved for internal usage");if(f.name!==".notdef"){var p=f.getMetrics();e.push(p.xMin),t.push(p.yMin),i.push(p.xMax),n.push(p.yMax),r.push(p.leftSideBearing),g.push(p.rightSideBearing),o.push(f.advanceWidth)}}var c={xMin:Math.min.apply(null,e),yMin:Math.min.apply(null,t),xMax:Math.max.apply(null,i),yMax:Math.max.apply(null,n),advanceWidthMax:Math.max.apply(null,o),advanceWidthAvg:VD(o),minLeftSideBearing:Math.min.apply(null,r),maxLeftSideBearing:Math.max.apply(null,r),minRightSideBearing:Math.min.apply(null,g)};c.ascender=A.ascender,c.descender=A.descender;var d=sl.make({flags:3,unitsPerEm:A.unitsPerEm,xMin:c.xMin,yMin:c.yMin,xMax:c.xMax,yMax:c.yMax,lowestRecPPEM:3,createdTimestamp:A.createdTimestamp}),w=al.make({ascender:c.ascender,descender:c.descender,advanceWidthMax:c.advanceWidthMax,minLeftSideBearing:c.minLeftSideBearing,minRightSideBearing:c.minRightSideBearing,xMaxExtent:c.maxLeftSideBearing+(c.xMax-c.xMin),numberOfHMetrics:A.glyphs.length}),F=ll.make(A.glyphs.length),N=Jr.make(Object.assign({xAvgCharWidth:Math.round(c.advanceWidthAvg),usFirstCharIndex:s,usLastCharIndex:a,ulUnicodeRange1:I,ulUnicodeRange2:l,ulUnicodeRange3:C,ulUnicodeRange4:Q,sTypoAscender:c.ascender,sTypoDescender:c.descender,sTypoLineGap:0,usWinAscent:c.yMax,usWinDescent:Math.abs(c.yMin),ulCodePageRange1:1,sxHeight:Qa(A,"xyvw",{yMax:Math.round(c.ascender/2)}).yMax,sCapHeight:Qa(A,"HIKLEFJMNTZBDPRAGOQSUVWXY",c).yMax,usDefaultChar:A.hasChar(" ")?32:0,usBreakChar:A.hasChar(" ")?32:0},A.tables.os2)),G=Il.make(A.glyphs),P=ZC.make(A.glyphs),b=A.getEnglishName("fontFamily"),R=A.getEnglishName("fontSubfamily"),L=b+" "+R,EA=A.getEnglishName("postScriptName");EA||(EA=b.replace(/\s/g,"")+"-"+R);var pA={};for(var lA in A.names)pA[lA]=A.names[lA];pA.uniqueID||(pA.uniqueID={en:A.getEnglishName("manufacturer")+":"+L}),pA.postScriptName||(pA.postScriptName={en:EA}),pA.preferredFamily||(pA.preferredFamily=A.names.fontFamily),pA.preferredSubfamily||(pA.preferredSubfamily=A.names.fontSubfamily);var nA=[],z=ul.make(pA,nA),tA=nA.length>0?Cl.make(nA):void 0,dA=hl.make(),kA=gl.make(A.glyphs,{version:A.getEnglishName("version"),fullName:L,familyName:b,weightName:R,postScriptName:EA,unitsPerEm:A.unitsPerEm,fontBBox:[0,c.yMin,c.ascender,c.advanceWidthMax]}),Y=A.metas&&Object.keys(A.metas).length>0?dl.make(A.metas):void 0,j=[d,w,F,N,z,P,dA,kA,G];tA&&j.push(tA),A.tables.gsub&&j.push(fl.make(A.tables.gsub)),Y&&j.push(Y);for(var sA=pl(j),SA=sA.encode(),UA=pg(SA),HA=sA.fields,M=!1,X=0;X<HA.length;X+=1)if(HA[X].name==="head table"){HA[X].value.checkSumAdjustment=2981146554-UA,M=!0;break}if(!M)throw new Error("Could not find head table with checkSum to adjust.");return sA}var qD={make:pl,fontToTable:WD,computeCheckSum:pg};function zo(A,e){for(var t=0,i=A.length-1;t<=i;){var n=t+i>>>1,o=A[n].tag;if(o===e)return n;o<e?t=n+1:i=n-1}return-t-1}function ca(A,e){for(var t=0,i=A.length-1;t<=i;){var n=t+i>>>1,o=A[n];if(o===e)return n;o<e?t=n+1:i=n-1}return-t-1}function Ea(A,e){for(var t,i=0,n=A.length-1;i<=n;){var o=i+n>>>1;t=A[o];var r=t.start;if(r===e)return t;r<e?i=o+1:n=o-1}if(i>0)return t=A[i-1],e>t.end?0:t}function mn(A,e){this.font=A,this.tableName=e}mn.prototype={searchTag:zo,binSearch:ca,getTable:function(A){var e=this.font.tables[this.tableName];return!e&&A&&(e=this.font.tables[this.tableName]=this.createDefaultTable()),e},getScriptNames:function(){var A=this.getTable();return A?A.scripts.map(function(e){return e.tag}):[]},getDefaultScriptName:function(){var A=this.getTable();if(A){for(var e=!1,t=0;t<A.scripts.length;t++){var i=A.scripts[t].tag;if(i==="DFLT")return i;i==="latn"&&(e=!0)}if(e)return"latn"}},getScriptTable:function(A,e){var t=this.getTable(e);if(t){A=A||"DFLT";var i=t.scripts,n=zo(t.scripts,A);if(n>=0)return i[n].script;if(e){var o={tag:A,script:{defaultLangSys:{reserved:0,reqFeatureIndex:65535,featureIndexes:[]},langSysRecords:[]}};return i.splice(-1-n,0,o),o.script}}},getLangSysTable:function(A,e,t){var i=this.getScriptTable(A,t);if(i){if(!e||e==="dflt"||e==="DFLT")return i.defaultLangSys;var n=zo(i.langSysRecords,e);if(n>=0)return i.langSysRecords[n].langSys;if(t){var o={tag:e,langSys:{reserved:0,reqFeatureIndex:65535,featureIndexes:[]}};return i.langSysRecords.splice(-1-n,0,o),o.langSys}}},getFeatureTable:function(A,e,t,i){var n=this.getLangSysTable(A,e,i);if(n){for(var o,r=n.featureIndexes,g=this.font.tables[this.tableName].features,s=0;s<r.length;s++)if(o=g[r[s]],o.tag===t)return o.feature;if(i){var a=g.length;return yA.assert(a===0||t>=g[a-1].tag,"Features must be added in alphabetical order."),o={tag:t,feature:{params:0,lookupListIndexes:[]}},g.push(o),r.push(a),o.feature}}},getLookupTables:function(A,e,t,i,n){var o=this.getFeatureTable(A,e,t,n),r=[];if(o){for(var g,s=o.lookupListIndexes,a=this.font.tables[this.tableName].lookups,I=0;I<s.length;I++)g=a[s[I]],g.lookupType===i&&r.push(g);if(r.length===0&&n){g={lookupType:i,lookupFlag:0,subtables:[],markFilteringSet:void 0};var l=a.length;return a.push(g),s.push(l),[g]}}return r},getGlyphClass:function(A,e){switch(A.format){case 1:return A.startGlyph<=e&&e<A.startGlyph+A.classes.length?A.classes[e-A.startGlyph]:0;case 2:var t=Ea(A.ranges,e);return t?t.classId:0}},getCoverageIndex:function(A,e){switch(A.format){case 1:var t=ca(A.glyphs,e);return t>=0?t:-1;case 2:var i=Ea(A.ranges,e);return i?i.index+e-i.start:-1}},expandCoverage:function(A){if(A.format===1)return A.glyphs;for(var e=[],t=A.ranges,i=0;i<t.length;i++)for(var n=t[i],o=n.start,r=n.end,g=o;g<=r;g++)e.push(g);return e}};function yn(A){mn.call(this,A,"gpos")}yn.prototype=mn.prototype;yn.prototype.init=function(){var A=this.getDefaultScriptName();this.defaultKerningTables=this.getKerningTables(A)};yn.prototype.getKerningValue=function(A,e,t){for(var i=0;i<A.length;i++)for(var n=A[i].subtables,o=0;o<n.length;o++){var r=n[o],g=this.getCoverageIndex(r.coverage,e);if(!(g<0))switch(r.posFormat){case 1:for(var s=r.pairSets[g],a=0;a<s.length;a++){var I=s[a];if(I.secondGlyph===t)return I.value1&&I.value1.xAdvance||0}break;case 2:var l=this.getGlyphClass(r.classDef1,e),C=this.getGlyphClass(r.classDef2,t),Q=r.classRecords[l][C];return Q.value1&&Q.value1.xAdvance||0}}return 0};yn.prototype.getKerningTables=function(A,e){if(this.font.tables.gpos)return this.getLookupTables(A,e,"kern",2)};function Le(A){mn.call(this,A,"gsub")}function jD(A,e){var t=A.length;if(t!==e.length)return!1;for(var i=0;i<t;i++)if(A[i]!==e[i])return!1;return!0}function mg(A,e,t){for(var i=A.subtables,n=0;n<i.length;n++){var o=i[n];if(o.substFormat===e)return o}if(t)return i.push(t),t}Le.prototype=mn.prototype;Le.prototype.createDefaultTable=function(){return{version:1,scripts:[{tag:"DFLT",script:{defaultLangSys:{reserved:0,reqFeatureIndex:65535,featureIndexes:[]},langSysRecords:[]}}],features:[],lookups:[]}};Le.prototype.getSingle=function(A,e,t){for(var i=[],n=this.getLookupTables(e,t,A,1),o=0;o<n.length;o++)for(var r=n[o].subtables,g=0;g<r.length;g++){var s=r[g],a=this.expandCoverage(s.coverage),I=void 0;if(s.substFormat===1){var l=s.deltaGlyphId;for(I=0;I<a.length;I++){var C=a[I];i.push({sub:C,by:C+l})}}else{var Q=s.substitute;for(I=0;I<a.length;I++)i.push({sub:a[I],by:Q[I]})}}return i};Le.prototype.getMultiple=function(A,e,t){for(var i=[],n=this.getLookupTables(e,t,A,2),o=0;o<n.length;o++)for(var r=n[o].subtables,g=0;g<r.length;g++){var s=r[g],a=this.expandCoverage(s.coverage),I=void 0;for(I=0;I<a.length;I++){var l=a[I],C=s.sequences[I];i.push({sub:l,by:C})}}return i};Le.prototype.getAlternates=function(A,e,t){for(var i=[],n=this.getLookupTables(e,t,A,3),o=0;o<n.length;o++)for(var r=n[o].subtables,g=0;g<r.length;g++)for(var s=r[g],a=this.expandCoverage(s.coverage),I=s.alternateSets,l=0;l<a.length;l++)i.push({sub:a[l],by:I[l]});return i};Le.prototype.getLigatures=function(A,e,t){for(var i=[],n=this.getLookupTables(e,t,A,4),o=0;o<n.length;o++)for(var r=n[o].subtables,g=0;g<r.length;g++)for(var s=r[g],a=this.expandCoverage(s.coverage),I=s.ligatureSets,l=0;l<a.length;l++)for(var C=a[l],Q=I[l],u=0;u<Q.length;u++){var f=Q[u];i.push({sub:[C].concat(f.components),by:f.ligGlyph})}return i};Le.prototype.addSingle=function(A,e,t,i){var n=this.getLookupTables(t,i,A,1,!0)[0],o=mg(n,2,{substFormat:2,coverage:{format:1,glyphs:[]},substitute:[]});yA.assert(o.coverage.format===1,"Single: unable to modify coverage table format "+o.coverage.format);var r=e.sub,g=this.binSearch(o.coverage.glyphs,r);g<0&&(g=-1-g,o.coverage.glyphs.splice(g,0,r),o.substitute.splice(g,0,0)),o.substitute[g]=e.by};Le.prototype.addMultiple=function(A,e,t,i){yA.assert(e.by instanceof Array&&e.by.length>1,'Multiple: "by" must be an array of two or more ids');var n=this.getLookupTables(t,i,A,2,!0)[0],o=mg(n,1,{substFormat:1,coverage:{format:1,glyphs:[]},sequences:[]});yA.assert(o.coverage.format===1,"Multiple: unable to modify coverage table format "+o.coverage.format);var r=e.sub,g=this.binSearch(o.coverage.glyphs,r);g<0&&(g=-1-g,o.coverage.glyphs.splice(g,0,r),o.sequences.splice(g,0,0)),o.sequences[g]=e.by};Le.prototype.addAlternate=function(A,e,t,i){var n=this.getLookupTables(t,i,A,3,!0)[0],o=mg(n,1,{substFormat:1,coverage:{format:1,glyphs:[]},alternateSets:[]});yA.assert(o.coverage.format===1,"Alternate: unable to modify coverage table format "+o.coverage.format);var r=e.sub,g=this.binSearch(o.coverage.glyphs,r);g<0&&(g=-1-g,o.coverage.glyphs.splice(g,0,r),o.alternateSets.splice(g,0,0)),o.alternateSets[g]=e.by};Le.prototype.addLigature=function(A,e,t,i){var n=this.getLookupTables(t,i,A,4,!0)[0],o=n.subtables[0];o||(o={substFormat:1,coverage:{format:1,glyphs:[]},ligatureSets:[]},n.subtables[0]=o),yA.assert(o.coverage.format===1,"Ligature: unable to modify coverage table format "+o.coverage.format);var r=e.sub[0],g=e.sub.slice(1),s={ligGlyph:e.by,components:g},a=this.binSearch(o.coverage.glyphs,r);if(a>=0){for(var I=o.ligatureSets[a],l=0;l<I.length;l++)if(jD(I[l].components,g))return;I.push(s)}else a=-1-a,o.coverage.glyphs.splice(a,0,r),o.ligatureSets.splice(a,0,[s])};Le.prototype.getFeature=function(A,e,t){if(/ss\d\d/.test(A))return this.getSingle(A,e,t);switch(A){case"aalt":case"salt":return this.getSingle(A,e,t).concat(this.getAlternates(A,e,t));case"dlig":case"liga":case"rlig":return this.getLigatures(A,e,t);case"ccmp":return this.getMultiple(A,e,t).concat(this.getLigatures(A,e,t));case"stch":return this.getMultiple(A,e,t)}};Le.prototype.add=function(A,e,t,i){if(/ss\d\d/.test(A))return this.addSingle(A,e,t,i);switch(A){case"aalt":case"salt":return typeof e.by=="number"?this.addSingle(A,e,t,i):this.addAlternate(A,e,t,i);case"dlig":case"liga":case"rlig":return this.addLigature(A,e,t,i);case"ccmp":return e.by instanceof Array?this.addMultiple(A,e,t,i):this.addLigature(A,e,t,i)}};function ZD(){return typeof window<"u"}function ml(A){for(var e=new ArrayBuffer(A.length),t=new Uint8Array(e),i=0;i<A.length;++i)t[i]=A[i];return e}function XD(A){for(var e=new Buffer(A.byteLength),t=new Uint8Array(A),i=0;i<e.length;++i)e[i]=t[i];return e}function Yi(A,e){if(!A)throw e}function ua(A,e,t,i,n){var o;return(e&i)>0?(o=A.parseByte(),e&n||(o=-o),o=t+o):(e&n)>0?o=t:o=t+A.parseShort(),o}function yl(A,e,t){var i=new QA.Parser(e,t);A.numberOfContours=i.parseShort(),A._xMin=i.parseShort(),A._yMin=i.parseShort(),A._xMax=i.parseShort(),A._yMax=i.parseShort();var n,o;if(A.numberOfContours>0){for(var r=A.endPointIndices=[],g=0;g<A.numberOfContours;g+=1)r.push(i.parseUShort());A.instructionLength=i.parseUShort(),A.instructions=[];for(var s=0;s<A.instructionLength;s+=1)A.instructions.push(i.parseByte());var a=r[r.length-1]+1;n=[];for(var I=0;I<a;I+=1)if(o=i.parseByte(),n.push(o),(o&8)>0)for(var l=i.parseByte(),C=0;C<l;C+=1)n.push(o),I+=1;if(yA.argument(n.length===a,"Bad flags."),r.length>0){var Q=[],u;if(a>0){for(var f=0;f<a;f+=1)o=n[f],u={},u.onCurve=!!(o&1),u.lastPointOfContour=r.indexOf(f)>=0,Q.push(u);for(var h=0,E=0;E<a;E+=1)o=n[E],u=Q[E],u.x=ua(i,o,h,2,16),h=u.x;for(var p=0,c=0;c<a;c+=1)o=n[c],u=Q[c],u.y=ua(i,o,p,4,32),p=u.y}A.points=Q}else A.points=[]}else if(A.numberOfContours===0)A.points=[];else{A.isComposite=!0,A.points=[],A.components=[];for(var d=!0;d;){n=i.parseUShort();var w={glyphIndex:i.parseUShort(),xScale:1,scale01:0,scale10:0,yScale:1,dx:0,dy:0};(n&1)>0?(n&2)>0?(w.dx=i.parseShort(),w.dy=i.parseShort()):w.matchedPoints=[i.parseUShort(),i.parseUShort()]:(n&2)>0?(w.dx=i.parseChar(),w.dy=i.parseChar()):w.matchedPoints=[i.parseByte(),i.parseByte()],(n&8)>0?w.xScale=w.yScale=i.parseF2Dot14():(n&64)>0?(w.xScale=i.parseF2Dot14(),w.yScale=i.parseF2Dot14()):(n&128)>0&&(w.xScale=i.parseF2Dot14(),w.scale01=i.parseF2Dot14(),w.scale10=i.parseF2Dot14(),w.yScale=i.parseF2Dot14()),A.components.push(w),d=!!(n&32)}if(n&256){A.instructionLength=i.parseUShort(),A.instructions=[];for(var F=0;F<A.instructionLength;F+=1)A.instructions.push(i.parseByte())}}}function $o(A,e){for(var t=[],i=0;i<A.length;i+=1){var n=A[i],o={x:e.xScale*n.x+e.scale01*n.y+e.dx,y:e.scale10*n.x+e.yScale*n.y+e.dy,onCurve:n.onCurve,lastPointOfContour:n.lastPointOfContour};t.push(o)}return t}function zD(A){for(var e=[],t=[],i=0;i<A.length;i+=1){var n=A[i];t.push(n),n.lastPointOfContour&&(e.push(t),t=[])}return yA.argument(t.length===0,"There are still points left in the current contour."),e}function wl(A){var e=new oe;if(!A)return e;for(var t=zD(A),i=0;i<t.length;++i){var n=t[i],o=null,r=n[n.length-1],g=n[0];if(r.onCurve)e.moveTo(r.x,r.y);else if(g.onCurve)e.moveTo(g.x,g.y);else{var s={x:(r.x+g.x)*.5,y:(r.y+g.y)*.5};e.moveTo(s.x,s.y)}for(var a=0;a<n.length;++a)if(o=r,r=g,g=n[(a+1)%n.length],r.onCurve)e.lineTo(r.x,r.y);else{var I=g;o.onCurve||((r.x+o.x)*.5,(r.y+o.y)*.5),g.onCurve||(I={x:(r.x+g.x)*.5,y:(r.y+g.y)*.5}),e.quadraticCurveTo(r.x,r.y,I.x,I.y)}e.closePath()}return e}function Dl(A,e){if(e.isComposite)for(var t=0;t<e.components.length;t+=1){var i=e.components[t],n=A.get(i.glyphIndex);if(n.getPath(),n.points){var o=void 0;if(i.matchedPoints===void 0)o=$o(n.points,i);else{if(i.matchedPoints[0]>e.points.length-1||i.matchedPoints[1]>n.points.length-1)throw Error("Matched points out of range in "+e.name);var r=e.points[i.matchedPoints[0]],g=n.points[i.matchedPoints[1]],s={xScale:i.xScale,scale01:i.scale01,scale10:i.scale10,yScale:i.yScale,dx:0,dy:0};g=$o([g],s)[0],s.dx=r.x-g.x,s.dy=r.y-g.y,o=$o(n.points,s)}e.points=e.points.concat(o)}}return wl(e.points)}function $D(A,e,t,i){for(var n=new It.GlyphSet(i),o=0;o<t.length-1;o+=1){var r=t[o],g=t[o+1];r!==g?n.push(o,It.ttfGlyphLoader(i,o,yl,A,e+r,Dl)):n.push(o,It.glyphLoader(i,o))}return n}function Ak(A,e,t,i){var n=new It.GlyphSet(i);return i._push=function(o){var r=t[o],g=t[o+1];r!==g?n.push(o,It.ttfGlyphLoader(i,o,yl,A,e+r,Dl)):n.push(o,It.glyphLoader(i,o))},n}function ek(A,e,t,i,n){return n.lowMemory?Ak(A,e,t,i):$D(A,e,t,i)}var kl={getPath:wl,parse:ek},vl,Ii,Fl,Tr;function Sl(A){this.font=A,this.getCommands=function(e){return kl.getPath(e).commands},this._fpgmState=this._prepState=void 0,this._errorState=0}function tk(A){return A}function bl(A){return Math.sign(A)*Math.round(Math.abs(A))}function ik(A){return Math.sign(A)*Math.round(Math.abs(A*2))/2}function nk(A){return Math.sign(A)*(Math.round(Math.abs(A)+.5)-.5)}function ok(A){return Math.sign(A)*Math.ceil(Math.abs(A))}function rk(A){return Math.sign(A)*Math.floor(Math.abs(A))}var Rl=function(A){var e=this.srPeriod,t=this.srPhase,i=this.srThreshold,n=1;return A<0&&(A=-A,n=-1),A+=i-t,A=Math.trunc(A/e)*e,A+=t,A<0?t*n:A*n},ot={x:1,y:0,axis:"x",distance:function(A,e,t,i){return(t?A.xo:A.x)-(i?e.xo:e.x)},interpolate:function(A,e,t,i){var n,o,r,g,s,a,I;if(!i||i===this){if(n=A.xo-e.xo,o=A.xo-t.xo,s=e.x-e.xo,a=t.x-t.xo,r=Math.abs(n),g=Math.abs(o),I=r+g,I===0){A.x=A.xo+(s+a)/2;return}A.x=A.xo+(s*g+a*r)/I;return}if(n=i.distance(A,e,!0,!0),o=i.distance(A,t,!0,!0),s=i.distance(e,e,!1,!0),a=i.distance(t,t,!1,!0),r=Math.abs(n),g=Math.abs(o),I=r+g,I===0){ot.setRelative(A,A,(s+a)/2,i,!0);return}ot.setRelative(A,A,(s*g+a*r)/I,i,!0)},normalSlope:Number.NEGATIVE_INFINITY,setRelative:function(A,e,t,i,n){if(!i||i===this){A.x=(n?e.xo:e.x)+t;return}var o=n?e.xo:e.x,r=n?e.yo:e.y,g=o+t*i.x,s=r+t*i.y;A.x=g+(A.y-s)/i.normalSlope},slope:0,touch:function(A){A.xTouched=!0},touched:function(A){return A.xTouched},untouch:function(A){A.xTouched=!1}},mt={x:0,y:1,axis:"y",distance:function(A,e,t,i){return(t?A.yo:A.y)-(i?e.yo:e.y)},interpolate:function(A,e,t,i){var n,o,r,g,s,a,I;if(!i||i===this){if(n=A.yo-e.yo,o=A.yo-t.yo,s=e.y-e.yo,a=t.y-t.yo,r=Math.abs(n),g=Math.abs(o),I=r+g,I===0){A.y=A.yo+(s+a)/2;return}A.y=A.yo+(s*g+a*r)/I;return}if(n=i.distance(A,e,!0,!0),o=i.distance(A,t,!0,!0),s=i.distance(e,e,!1,!0),a=i.distance(t,t,!1,!0),r=Math.abs(n),g=Math.abs(o),I=r+g,I===0){mt.setRelative(A,A,(s+a)/2,i,!0);return}mt.setRelative(A,A,(s*g+a*r)/I,i,!0)},normalSlope:0,setRelative:function(A,e,t,i,n){if(!i||i===this){A.y=(n?e.yo:e.y)+t;return}var o=n?e.xo:e.x,r=n?e.yo:e.y,g=o+t*i.x,s=r+t*i.y;A.y=s+i.normalSlope*(A.x-g)},slope:Number.POSITIVE_INFINITY,touch:function(A){A.yTouched=!0},touched:function(A){return A.yTouched},untouch:function(A){A.yTouched=!1}};Object.freeze(ot);Object.freeze(mt);function wn(A,e){this.x=A,this.y=e,this.axis=void 0,this.slope=e/A,this.normalSlope=-A/e,Object.freeze(this)}wn.prototype.distance=function(A,e,t,i){return this.x*ot.distance(A,e,t,i)+this.y*mt.distance(A,e,t,i)};wn.prototype.interpolate=function(A,e,t,i){var n,o,r,g,s,a,I;if(r=i.distance(A,e,!0,!0),g=i.distance(A,t,!0,!0),n=i.distance(e,e,!1,!0),o=i.distance(t,t,!1,!0),s=Math.abs(r),a=Math.abs(g),I=s+a,I===0){this.setRelative(A,A,(n+o)/2,i,!0);return}this.setRelative(A,A,(n*a+o*s)/I,i,!0)};wn.prototype.setRelative=function(A,e,t,i,n){i=i||this;var o=n?e.xo:e.x,r=n?e.yo:e.y,g=o+t*i.x,s=r+t*i.y,a=i.normalSlope,I=this.slope,l=A.x,C=A.y;A.x=(I*l-a*g+s-C)/(I-a),A.y=I*(A.x-l)+C};wn.prototype.touch=function(A){A.xTouched=!0,A.yTouched=!0};function Dn(A,e){var t=Math.sqrt(A*A+e*e);return A/=t,e/=t,A===1&&e===0?ot:A===0&&e===1?mt:new wn(A,e)}function yt(A,e,t,i){this.x=this.xo=Math.round(A*64)/64,this.y=this.yo=Math.round(e*64)/64,this.lastPointOfContour=t,this.onCurve=i,this.prevPointOnContour=void 0,this.nextPointOnContour=void 0,this.xTouched=!1,this.yTouched=!1,Object.preventExtensions(this)}yt.prototype.nextTouched=function(A){for(var e=this.nextPointOnContour;!A.touched(e)&&e!==this;)e=e.nextPointOnContour;return e};yt.prototype.prevTouched=function(A){for(var e=this.prevPointOnContour;!A.touched(e)&&e!==this;)e=e.prevPointOnContour;return e};var Bn=Object.freeze(new yt(0,0)),gk={cvCutIn:17/16,deltaBase:9,deltaShift:.125,loop:1,minDis:1,autoFlip:!0};function Yt(A,e){switch(this.env=A,this.stack=[],this.prog=e,A){case"glyf":this.zp0=this.zp1=this.zp2=1,this.rp0=this.rp1=this.rp2=0;case"prep":this.fv=this.pv=this.dpv=ot,this.round=bl}}Sl.prototype.exec=function(A,e){if(typeof e!="number")throw new Error("Point size is not a number!");if(!(this._errorState>2)){var t=this.font,i=this._prepState;if(!i||i.ppem!==e){var n=this._fpgmState;if(!n){Yt.prototype=gk,n=this._fpgmState=new Yt("fpgm",t.tables.fpgm),n.funcs=[],n.font=t,W.DEBUG&&(console.log("---EXEC FPGM---"),n.step=-1);try{Ii(n)}catch(a){console.log("Hinting error in FPGM:"+a),this._errorState=3;return}}Yt.prototype=n,i=this._prepState=new Yt("prep",t.tables.prep),i.ppem=e;var o=t.tables.cvt;if(o)for(var r=i.cvt=new Array(o.length),g=e/t.unitsPerEm,s=0;s<o.length;s++)r[s]=o[s]*g;else i.cvt=[];W.DEBUG&&(console.log("---EXEC PREP---"),i.step=-1);try{Ii(i)}catch(a){this._errorState<2&&console.log("Hinting error in PREP:"+a),this._errorState=2}}if(!(this._errorState>1))try{return Fl(A,i)}catch(a){this._errorState<1&&(console.log("Hinting error:"+a),console.log("Note: further hinting errors are silenced")),this._errorState=1;return}}};Fl=function(A,e){var t=e.ppem/e.font.unitsPerEm,i=t,n=A.components,o,r,g;if(Yt.prototype=e,!n)g=new Yt("glyf",A.instructions),W.DEBUG&&(console.log("---EXEC GLYPH---"),g.step=-1),Tr(A,g,t,i),r=g.gZone;else{var s=e.font;r=[],o=[];for(var a=0;a<n.length;a++){var I=n[a],l=s.glyphs.get(I.glyphIndex);g=new Yt("glyf",l.instructions),W.DEBUG&&(console.log("---EXEC COMP "+a+"---"),g.step=-1),Tr(l,g,t,i);for(var C=Math.round(I.dx*t),Q=Math.round(I.dy*i),u=g.gZone,f=g.contours,h=0;h<u.length;h++){var E=u[h];E.xTouched=E.yTouched=!1,E.xo=E.x=E.x+C,E.yo=E.y=E.y+Q}var p=r.length;r.push.apply(r,u);for(var c=0;c<f.length;c++)o.push(f[c]+p)}A.instructions&&!g.inhibitGridFit&&(g=new Yt("glyf",A.instructions),g.gZone=g.z0=g.z1=g.z2=r,g.contours=o,r.push(new yt(0,0),new yt(Math.round(A.advanceWidth*t),0)),W.DEBUG&&(console.log("---EXEC COMPOSITE---"),g.step=-1),Ii(g),r.length-=2)}return r};Tr=function(A,e,t,i){for(var n=A.points||[],o=n.length,r=e.gZone=e.z0=e.z1=e.z2=[],g=e.contours=[],s,a=0;a<o;a++)s=n[a],r[a]=new yt(s.x*t,s.y*i,s.lastPointOfContour,s.onCurve);for(var I,l,C=0;C<o;C++)s=r[C],I||(I=s,g.push(C)),s.lastPointOfContour?(s.nextPointOnContour=I,I.prevPointOnContour=s,I=void 0):(l=r[C+1],s.nextPointOnContour=l,l.prevPointOnContour=s);if(!e.inhibitGridFit){if(W.DEBUG){console.log("PROCESSING GLYPH",e.stack);for(var Q=0;Q<o;Q++)console.log(Q,r[Q].x,r[Q].y)}if(r.push(new yt(0,0),new yt(Math.round(A.advanceWidth*t),0)),Ii(e),r.length-=2,W.DEBUG){console.log("FINISHED GLYPH",e.stack);for(var u=0;u<o;u++)console.log(u,r[u].x,r[u].y)}}};Ii=function(A){var e=A.prog;if(e){var t=e.length,i;for(A.ip=0;A.ip<t;A.ip++){if(W.DEBUG&&A.step++,i=vl[e[A.ip]],!i)throw new Error("unknown instruction: 0x"+Number(e[A.ip]).toString(16));i(A)}}};function Lo(A){for(var e=A.tZone=new Array(A.gZone.length),t=0;t<e.length;t++)e[t]=new yt(0,0)}function Nl(A,e){var t=A.prog,i=A.ip,n=1,o;do if(o=t[++i],o===88)n++;else if(o===89)n--;else if(o===64)i+=t[i+1]+1;else if(o===65)i+=2*t[i+1]+1;else if(o>=176&&o<=183)i+=o-176+1;else if(o>=184&&o<=191)i+=(o-184+1)*2;else if(e&&n===1&&o===27)break;while(n>0);A.ip=i}function ha(A,e){W.DEBUG&&console.log(e.step,"SVTCA["+A.axis+"]"),e.fv=e.pv=e.dpv=A}function fa(A,e){W.DEBUG&&console.log(e.step,"SPVTCA["+A.axis+"]"),e.pv=e.dpv=A}function da(A,e){W.DEBUG&&console.log(e.step,"SFVTCA["+A.axis+"]"),e.fv=A}function pa(A,e){var t=e.stack,i=t.pop(),n=t.pop(),o=e.z2[i],r=e.z1[n];W.DEBUG&&console.log("SPVTL["+A+"]",i,n);var g,s;A?(g=o.y-r.y,s=r.x-o.x):(g=r.x-o.x,s=r.y-o.y),e.pv=e.dpv=Dn(g,s)}function ma(A,e){var t=e.stack,i=t.pop(),n=t.pop(),o=e.z2[i],r=e.z1[n];W.DEBUG&&console.log("SFVTL["+A+"]",i,n);var g,s;A?(g=o.y-r.y,s=r.x-o.x):(g=r.x-o.x,s=r.y-o.y),e.fv=Dn(g,s)}function sk(A){var e=A.stack,t=e.pop(),i=e.pop();W.DEBUG&&console.log(A.step,"SPVFS[]",t,i),A.pv=A.dpv=Dn(i,t)}function ak(A){var e=A.stack,t=e.pop(),i=e.pop();W.DEBUG&&console.log(A.step,"SPVFS[]",t,i),A.fv=Dn(i,t)}function Ik(A){var e=A.stack,t=A.pv;W.DEBUG&&console.log(A.step,"GPV[]"),e.push(t.x*16384),e.push(t.y*16384)}function Ck(A){var e=A.stack,t=A.fv;W.DEBUG&&console.log(A.step,"GFV[]"),e.push(t.x*16384),e.push(t.y*16384)}function lk(A){A.fv=A.pv,W.DEBUG&&console.log(A.step,"SFVTPV[]")}function Bk(A){var e=A.stack,t=e.pop(),i=e.pop(),n=e.pop(),o=e.pop(),r=e.pop(),g=A.z0,s=A.z1,a=g[t],I=g[i],l=s[n],C=s[o],Q=A.z2[r];W.DEBUG&&console.log("ISECT[], ",t,i,n,o,r);var u=a.x,f=a.y,h=I.x,E=I.y,p=l.x,c=l.y,d=C.x,w=C.y,F=(u-h)*(c-w)-(f-E)*(p-d),N=u*E-f*h,G=p*w-c*d;Q.x=(N*(p-d)-G*(u-h))/F,Q.y=(N*(c-w)-G*(f-E))/F}function Qk(A){A.rp0=A.stack.pop(),W.DEBUG&&console.log(A.step,"SRP0[]",A.rp0)}function ck(A){A.rp1=A.stack.pop(),W.DEBUG&&console.log(A.step,"SRP1[]",A.rp1)}function Ek(A){A.rp2=A.stack.pop(),W.DEBUG&&console.log(A.step,"SRP2[]",A.rp2)}function uk(A){var e=A.stack.pop();switch(W.DEBUG&&console.log(A.step,"SZP0[]",e),A.zp0=e,e){case 0:A.tZone||Lo(A),A.z0=A.tZone;break;case 1:A.z0=A.gZone;break;default:throw new Error("Invalid zone pointer")}}function hk(A){var e=A.stack.pop();switch(W.DEBUG&&console.log(A.step,"SZP1[]",e),A.zp1=e,e){case 0:A.tZone||Lo(A),A.z1=A.tZone;break;case 1:A.z1=A.gZone;break;default:throw new Error("Invalid zone pointer")}}function fk(A){var e=A.stack.pop();switch(W.DEBUG&&console.log(A.step,"SZP2[]",e),A.zp2=e,e){case 0:A.tZone||Lo(A),A.z2=A.tZone;break;case 1:A.z2=A.gZone;break;default:throw new Error("Invalid zone pointer")}}function dk(A){var e=A.stack.pop();switch(W.DEBUG&&console.log(A.step,"SZPS[]",e),A.zp0=A.zp1=A.zp2=e,e){case 0:A.tZone||Lo(A),A.z0=A.z1=A.z2=A.tZone;break;case 1:A.z0=A.z1=A.z2=A.gZone;break;default:throw new Error("Invalid zone pointer")}}function pk(A){A.loop=A.stack.pop(),W.DEBUG&&console.log(A.step,"SLOOP[]",A.loop)}function mk(A){W.DEBUG&&console.log(A.step,"RTG[]"),A.round=bl}function yk(A){W.DEBUG&&console.log(A.step,"RTHG[]"),A.round=nk}function wk(A){var e=A.stack.pop();W.DEBUG&&console.log(A.step,"SMD[]",e),A.minDis=e/64}function Dk(A){W.DEBUG&&console.log(A.step,"ELSE[]"),Nl(A,!1)}function kk(A){var e=A.stack.pop();W.DEBUG&&console.log(A.step,"JMPR[]",e),A.ip+=e-1}function vk(A){var e=A.stack.pop();W.DEBUG&&console.log(A.step,"SCVTCI[]",e),A.cvCutIn=e/64}function Fk(A){var e=A.stack;W.DEBUG&&console.log(A.step,"DUP[]"),e.push(e[e.length-1])}function Ar(A){W.DEBUG&&console.log(A.step,"POP[]"),A.stack.pop()}function Sk(A){W.DEBUG&&console.log(A.step,"CLEAR[]"),A.stack.length=0}function bk(A){var e=A.stack,t=e.pop(),i=e.pop();W.DEBUG&&console.log(A.step,"SWAP[]"),e.push(t),e.push(i)}function Rk(A){var e=A.stack;W.DEBUG&&console.log(A.step,"DEPTH[]"),e.push(e.length)}function Nk(A){var e=A.stack,t=e.pop(),i=e.pop();W.DEBUG&&console.log(A.step,"LOOPCALL[]",t,i);var n=A.ip,o=A.prog;A.prog=A.funcs[t];for(var r=0;r<i;r++)Ii(A),W.DEBUG&&console.log(++A.step,r+1<i?"next loopcall":"done loopcall",r);A.ip=n,A.prog=o}function Gk(A){var e=A.stack.pop();W.DEBUG&&console.log(A.step,"CALL[]",e);var t=A.ip,i=A.prog;A.prog=A.funcs[e],Ii(A),A.ip=t,A.prog=i,W.DEBUG&&console.log(++A.step,"returning from",e)}function Lk(A){var e=A.stack,t=e.pop();W.DEBUG&&console.log(A.step,"CINDEX[]",t),e.push(e[e.length-t])}function Uk(A){var e=A.stack,t=e.pop();W.DEBUG&&console.log(A.step,"MINDEX[]",t),e.push(e.splice(e.length-t,1)[0])}function Mk(A){if(A.env!=="fpgm")throw new Error("FDEF not allowed here");var e=A.stack,t=A.prog,i=A.ip,n=e.pop(),o=i;for(W.DEBUG&&console.log(A.step,"FDEF[]",n);t[++i]!==45;);A.ip=i,A.funcs[n]=t.slice(o+1,i)}function ya(A,e){var t=e.stack.pop(),i=e.z0[t],n=e.fv,o=e.pv;W.DEBUG&&console.log(e.step,"MDAP["+A+"]",t);var r=o.distance(i,Bn);A&&(r=e.round(r)),n.setRelative(i,Bn,r,o),n.touch(i),e.rp0=e.rp1=t}function wa(A,e){var t=e.z2,i=t.length-2,n,o,r;W.DEBUG&&console.log(e.step,"IUP["+A.axis+"]");for(var g=0;g<i;g++)n=t[g],!A.touched(n)&&(o=n.prevTouched(A),o!==n&&(r=n.nextTouched(A),o===r&&A.setRelative(n,n,A.distance(o,o,!1,!0),A,!0),A.interpolate(n,o,r,A)))}function Da(A,e){for(var t=e.stack,i=A?e.rp1:e.rp2,n=(A?e.z0:e.z1)[i],o=e.fv,r=e.pv,g=e.loop,s=e.z2;g--;){var a=t.pop(),I=s[a],l=r.distance(n,n,!1,!0);o.setRelative(I,I,l,r),o.touch(I),W.DEBUG&&console.log(e.step,(e.loop>1?"loop "+(e.loop-g)+": ":"")+"SHP["+(A?"rp1":"rp2")+"]",a)}e.loop=1}function ka(A,e){var t=e.stack,i=A?e.rp1:e.rp2,n=(A?e.z0:e.z1)[i],o=e.fv,r=e.pv,g=t.pop(),s=e.z2[e.contours[g]],a=s;W.DEBUG&&console.log(e.step,"SHC["+A+"]",g);var I=r.distance(n,n,!1,!0);do a!==n&&o.setRelative(a,a,I,r),a=a.nextPointOnContour;while(a!==s)}function va(A,e){var t=e.stack,i=A?e.rp1:e.rp2,n=(A?e.z0:e.z1)[i],o=e.fv,r=e.pv,g=t.pop();W.DEBUG&&console.log(e.step,"SHZ["+A+"]",g);var s;switch(g){case 0:s=e.tZone;break;case 1:s=e.gZone;break;default:throw new Error("Invalid zone")}for(var a,I=r.distance(n,n,!1,!0),l=s.length-2,C=0;C<l;C++)a=s[C],o.setRelative(a,a,I,r)}function xk(A){for(var e=A.stack,t=A.loop,i=A.fv,n=e.pop()/64,o=A.z2;t--;){var r=e.pop(),g=o[r];W.DEBUG&&console.log(A.step,(A.loop>1?"loop "+(A.loop-t)+": ":"")+"SHPIX[]",r,n),i.setRelative(g,g,n),i.touch(g)}A.loop=1}function Jk(A){for(var e=A.stack,t=A.rp1,i=A.rp2,n=A.loop,o=A.z0[t],r=A.z1[i],g=A.fv,s=A.dpv,a=A.z2;n--;){var I=e.pop(),l=a[I];W.DEBUG&&console.log(A.step,(A.loop>1?"loop "+(A.loop-n)+": ":"")+"IP[]",I,t,"<->",i),g.interpolate(l,o,r,s),g.touch(l)}A.loop=1}function Fa(A,e){var t=e.stack,i=t.pop()/64,n=t.pop(),o=e.z1[n],r=e.z0[e.rp0],g=e.fv,s=e.pv;g.setRelative(o,r,i,s),g.touch(o),W.DEBUG&&console.log(e.step,"MSIRP["+A+"]",i,n),e.rp1=e.rp0,e.rp2=n,A&&(e.rp0=n)}function Tk(A){for(var e=A.stack,t=A.rp0,i=A.z0[t],n=A.loop,o=A.fv,r=A.pv,g=A.z1;n--;){var s=e.pop(),a=g[s];W.DEBUG&&console.log(A.step,(A.loop>1?"loop "+(A.loop-n)+": ":"")+"ALIGNRP[]",s),o.setRelative(a,i,0,r),o.touch(a)}A.loop=1}function Hk(A){W.DEBUG&&console.log(A.step,"RTDG[]"),A.round=ik}function Sa(A,e){var t=e.stack,i=t.pop(),n=t.pop(),o=e.z0[n],r=e.fv,g=e.pv,s=e.cvt[i];W.DEBUG&&console.log(e.step,"MIAP["+A+"]",i,"(",s,")",n);var a=g.distance(o,Bn);A&&(Math.abs(a-s)<e.cvCutIn&&(a=s),a=e.round(a)),r.setRelative(o,Bn,a,g),e.zp0===0&&(o.xo=o.x,o.yo=o.y),r.touch(o),e.rp0=e.rp1=n}function Yk(A){var e=A.prog,t=A.ip,i=A.stack,n=e[++t];W.DEBUG&&console.log(A.step,"NPUSHB[]",n);for(var o=0;o<n;o++)i.push(e[++t]);A.ip=t}function _k(A){var e=A.ip,t=A.prog,i=A.stack,n=t[++e];W.DEBUG&&console.log(A.step,"NPUSHW[]",n);for(var o=0;o<n;o++){var r=t[++e]<<8|t[++e];r&32768&&(r=-((r^65535)+1)),i.push(r)}A.ip=e}function Kk(A){var e=A.stack,t=A.store;t||(t=A.store=[]);var i=e.pop(),n=e.pop();W.DEBUG&&console.log(A.step,"WS",i,n),t[n]=i}function Pk(A){var e=A.stack,t=A.store,i=e.pop();W.DEBUG&&console.log(A.step,"RS",i);var n=t&&t[i]||0;e.push(n)}function Ok(A){var e=A.stack,t=e.pop(),i=e.pop();W.DEBUG&&console.log(A.step,"WCVTP",t,i),A.cvt[i]=t/64}function Vk(A){var e=A.stack,t=e.pop();W.DEBUG&&console.log(A.step,"RCVT",t),e.push(A.cvt[t]*64)}function ba(A,e){var t=e.stack,i=t.pop(),n=e.z2[i];W.DEBUG&&console.log(e.step,"GC["+A+"]",i),t.push(e.dpv.distance(n,Bn,A,!1)*64)}function Ra(A,e){var t=e.stack,i=t.pop(),n=t.pop(),o=e.z1[i],r=e.z0[n],g=e.dpv.distance(r,o,A,A);W.DEBUG&&console.log(e.step,"MD["+A+"]",i,n,"->",g),e.stack.push(Math.round(g*64))}function Wk(A){W.DEBUG&&console.log(A.step,"MPPEM[]"),A.stack.push(A.ppem)}function qk(A){W.DEBUG&&console.log(A.step,"FLIPON[]"),A.autoFlip=!0}function jk(A){var e=A.stack,t=e.pop(),i=e.pop();W.DEBUG&&console.log(A.step,"LT[]",t,i),e.push(i<t?1:0)}function Zk(A){var e=A.stack,t=e.pop(),i=e.pop();W.DEBUG&&console.log(A.step,"LTEQ[]",t,i),e.push(i<=t?1:0)}function Xk(A){var e=A.stack,t=e.pop(),i=e.pop();W.DEBUG&&console.log(A.step,"GT[]",t,i),e.push(i>t?1:0)}function zk(A){var e=A.stack,t=e.pop(),i=e.pop();W.DEBUG&&console.log(A.step,"GTEQ[]",t,i),e.push(i>=t?1:0)}function $k(A){var e=A.stack,t=e.pop(),i=e.pop();W.DEBUG&&console.log(A.step,"EQ[]",t,i),e.push(t===i?1:0)}function Av(A){var e=A.stack,t=e.pop(),i=e.pop();W.DEBUG&&console.log(A.step,"NEQ[]",t,i),e.push(t!==i?1:0)}function ev(A){var e=A.stack,t=e.pop();W.DEBUG&&console.log(A.step,"ODD[]",t),e.push(Math.trunc(t)%2?1:0)}function tv(A){var e=A.stack,t=e.pop();W.DEBUG&&console.log(A.step,"EVEN[]",t),e.push(Math.trunc(t)%2?0:1)}function iv(A){var e=A.stack.pop();W.DEBUG&&console.log(A.step,"IF[]",e),e||(Nl(A,!0),W.DEBUG&&console.log(A.step,"EIF[]"))}function nv(A){W.DEBUG&&console.log(A.step,"EIF[]")}function ov(A){var e=A.stack,t=e.pop(),i=e.pop();W.DEBUG&&console.log(A.step,"AND[]",t,i),e.push(t&&i?1:0)}function rv(A){var e=A.stack,t=e.pop(),i=e.pop();W.DEBUG&&console.log(A.step,"OR[]",t,i),e.push(t||i?1:0)}function gv(A){var e=A.stack,t=e.pop();W.DEBUG&&console.log(A.step,"NOT[]",t),e.push(t?0:1)}function er(A,e){var t=e.stack,i=t.pop(),n=e.fv,o=e.pv,r=e.ppem,g=e.deltaBase+(A-1)*16,s=e.deltaShift,a=e.z0;W.DEBUG&&console.log(e.step,"DELTAP["+A+"]",i,t);for(var I=0;I<i;I++){var l=t.pop(),C=t.pop(),Q=g+((C&240)>>4);if(Q===r){var u=(C&15)-8;u>=0&&u++,W.DEBUG&&console.log(e.step,"DELTAPFIX",l,"by",u*s);var f=a[l];n.setRelative(f,f,u*s,o)}}}function sv(A){var e=A.stack,t=e.pop();W.DEBUG&&console.log(A.step,"SDB[]",t),A.deltaBase=t}function av(A){var e=A.stack,t=e.pop();W.DEBUG&&console.log(A.step,"SDS[]",t),A.deltaShift=Math.pow(.5,t)}function Iv(A){var e=A.stack,t=e.pop(),i=e.pop();W.DEBUG&&console.log(A.step,"ADD[]",t,i),e.push(i+t)}function Cv(A){var e=A.stack,t=e.pop(),i=e.pop();W.DEBUG&&console.log(A.step,"SUB[]",t,i),e.push(i-t)}function lv(A){var e=A.stack,t=e.pop(),i=e.pop();W.DEBUG&&console.log(A.step,"DIV[]",t,i),e.push(i*64/t)}function Bv(A){var e=A.stack,t=e.pop(),i=e.pop();W.DEBUG&&console.log(A.step,"MUL[]",t,i),e.push(i*t/64)}function Qv(A){var e=A.stack,t=e.pop();W.DEBUG&&console.log(A.step,"ABS[]",t),e.push(Math.abs(t))}function cv(A){var e=A.stack,t=e.pop();W.DEBUG&&console.log(A.step,"NEG[]",t),e.push(-t)}function Ev(A){var e=A.stack,t=e.pop();W.DEBUG&&console.log(A.step,"FLOOR[]",t),e.push(Math.floor(t/64)*64)}function uv(A){var e=A.stack,t=e.pop();W.DEBUG&&console.log(A.step,"CEILING[]",t),e.push(Math.ceil(t/64)*64)}function xn(A,e){var t=e.stack,i=t.pop();W.DEBUG&&console.log(e.step,"ROUND[]"),t.push(e.round(i/64)*64)}function hv(A){var e=A.stack,t=e.pop(),i=e.pop();W.DEBUG&&console.log(A.step,"WCVTF[]",t,i),A.cvt[i]=t*A.ppem/A.font.unitsPerEm}function tr(A,e){var t=e.stack,i=t.pop(),n=e.ppem,o=e.deltaBase+(A-1)*16,r=e.deltaShift;W.DEBUG&&console.log(e.step,"DELTAC["+A+"]",i,t);for(var g=0;g<i;g++){var s=t.pop(),a=t.pop(),I=o+((a&240)>>4);if(I===n){var l=(a&15)-8;l>=0&&l++;var C=l*r;W.DEBUG&&console.log(e.step,"DELTACFIX",s,"by",C),e.cvt[s]+=C}}}function fv(A){var e=A.stack.pop();W.DEBUG&&console.log(A.step,"SROUND[]",e),A.round=Rl;var t;switch(e&192){case 0:t=.5;break;case 64:t=1;break;case 128:t=2;break;default:throw new Error("invalid SROUND value")}switch(A.srPeriod=t,e&48){case 0:A.srPhase=0;break;case 16:A.srPhase=.25*t;break;case 32:A.srPhase=.5*t;break;case 48:A.srPhase=.75*t;break;default:throw new Error("invalid SROUND value")}e&=15,e===0?A.srThreshold=0:A.srThreshold=(e/8-.5)*t}function dv(A){var e=A.stack.pop();W.DEBUG&&console.log(A.step,"S45ROUND[]",e),A.round=Rl;var t;switch(e&192){case 0:t=Math.sqrt(2)/2;break;case 64:t=Math.sqrt(2);break;case 128:t=2*Math.sqrt(2);break;default:throw new Error("invalid S45ROUND value")}switch(A.srPeriod=t,e&48){case 0:A.srPhase=0;break;case 16:A.srPhase=.25*t;break;case 32:A.srPhase=.5*t;break;case 48:A.srPhase=.75*t;break;default:throw new Error("invalid S45ROUND value")}e&=15,e===0?A.srThreshold=0:A.srThreshold=(e/8-.5)*t}function pv(A){W.DEBUG&&console.log(A.step,"ROFF[]"),A.round=tk}function mv(A){W.DEBUG&&console.log(A.step,"RUTG[]"),A.round=ok}function yv(A){W.DEBUG&&console.log(A.step,"RDTG[]"),A.round=rk}function wv(A){var e=A.stack.pop();W.DEBUG&&console.log(A.step,"SCANCTRL[]",e)}function Na(A,e){var t=e.stack,i=t.pop(),n=t.pop(),o=e.z2[i],r=e.z1[n];W.DEBUG&&console.log(e.step,"SDPVTL["+A+"]",i,n);var g,s;A?(g=o.y-r.y,s=r.x-o.x):(g=r.x-o.x,s=r.y-o.y),e.dpv=Dn(g,s)}function Dv(A){var e=A.stack,t=e.pop(),i=0;W.DEBUG&&console.log(A.step,"GETINFO[]",t),t&1&&(i=35),t&32&&(i|=4096),e.push(i)}function kv(A){var e=A.stack,t=e.pop(),i=e.pop(),n=e.pop();W.DEBUG&&console.log(A.step,"ROLL[]"),e.push(i),e.push(t),e.push(n)}function vv(A){var e=A.stack,t=e.pop(),i=e.pop();W.DEBUG&&console.log(A.step,"MAX[]",t,i),e.push(Math.max(i,t))}function Fv(A){var e=A.stack,t=e.pop(),i=e.pop();W.DEBUG&&console.log(A.step,"MIN[]",t,i),e.push(Math.min(i,t))}function Sv(A){var e=A.stack.pop();W.DEBUG&&console.log(A.step,"SCANTYPE[]",e)}function bv(A){var e=A.stack.pop(),t=A.stack.pop();switch(W.DEBUG&&console.log(A.step,"INSTCTRL[]",e,t),e){case 1:A.inhibitGridFit=!!t;return;case 2:A.ignoreCvt=!!t;return;default:throw new Error("invalid INSTCTRL[] selector")}}function Nt(A,e){var t=e.stack,i=e.prog,n=e.ip;W.DEBUG&&console.log(e.step,"PUSHB["+A+"]");for(var o=0;o<A;o++)t.push(i[++n]);e.ip=n}function Gt(A,e){var t=e.ip,i=e.prog,n=e.stack;W.DEBUG&&console.log(e.ip,"PUSHW["+A+"]");for(var o=0;o<A;o++){var r=i[++t]<<8|i[++t];r&32768&&(r=-((r^65535)+1)),n.push(r)}e.ip=t}function BA(A,e,t,i,n,o){var r=o.stack,g=A&&r.pop(),s=r.pop(),a=o.rp0,I=o.z0[a],l=o.z1[s],C=o.minDis,Q=o.fv,u=o.dpv,f,h,E,p;h=f=u.distance(l,I,!0,!0),E=h>=0?1:-1,h=Math.abs(h),A&&(p=o.cvt[g],i&&Math.abs(h-p)<o.cvCutIn&&(h=p)),t&&h<C&&(h=C),i&&(h=o.round(h)),Q.setRelative(l,I,E*h,u),Q.touch(l),W.DEBUG&&console.log(o.step,(A?"MIRP[":"MDRP[")+(e?"M":"m")+(t?">":"_")+(i?"R":"_")+(n===0?"Gr":n===1?"Bl":n===2?"Wh":"")+"]",A?g+"("+o.cvt[g]+","+p+")":"",s,"(d =",f,"->",E*h,")"),o.rp1=o.rp0,o.rp2=s,e&&(o.rp0=s)}vl=[ha.bind(void 0,mt),ha.bind(void 0,ot),fa.bind(void 0,mt),fa.bind(void 0,ot),da.bind(void 0,mt),da.bind(void 0,ot),pa.bind(void 0,0),pa.bind(void 0,1),ma.bind(void 0,0),ma.bind(void 0,1),sk,ak,Ik,Ck,lk,Bk,Qk,ck,Ek,uk,hk,fk,dk,pk,mk,yk,wk,Dk,kk,vk,void 0,void 0,Fk,Ar,Sk,bk,Rk,Lk,Uk,void 0,void 0,void 0,Nk,Gk,Mk,void 0,ya.bind(void 0,0),ya.bind(void 0,1),wa.bind(void 0,mt),wa.bind(void 0,ot),Da.bind(void 0,0),Da.bind(void 0,1),ka.bind(void 0,0),ka.bind(void 0,1),va.bind(void 0,0),va.bind(void 0,1),xk,Jk,Fa.bind(void 0,0),Fa.bind(void 0,1),Tk,Hk,Sa.bind(void 0,0),Sa.bind(void 0,1),Yk,_k,Kk,Pk,Ok,Vk,ba.bind(void 0,0),ba.bind(void 0,1),void 0,Ra.bind(void 0,0),Ra.bind(void 0,1),Wk,void 0,qk,void 0,void 0,jk,Zk,Xk,zk,$k,Av,ev,tv,iv,nv,ov,rv,gv,er.bind(void 0,1),sv,av,Iv,Cv,lv,Bv,Qv,cv,Ev,uv,xn.bind(void 0,0),xn.bind(void 0,1),xn.bind(void 0,2),xn.bind(void 0,3),void 0,void 0,void 0,void 0,hv,er.bind(void 0,2),er.bind(void 0,3),tr.bind(void 0,1),tr.bind(void 0,2),tr.bind(void 0,3),fv,dv,void 0,void 0,pv,void 0,mv,yv,Ar,Ar,void 0,void 0,void 0,void 0,void 0,wv,Na.bind(void 0,0),Na.bind(void 0,1),Dv,void 0,kv,vv,Fv,Sv,bv,void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0,Nt.bind(void 0,1),Nt.bind(void 0,2),Nt.bind(void 0,3),Nt.bind(void 0,4),Nt.bind(void 0,5),Nt.bind(void 0,6),Nt.bind(void 0,7),Nt.bind(void 0,8),Gt.bind(void 0,1),Gt.bind(void 0,2),Gt.bind(void 0,3),Gt.bind(void 0,4),Gt.bind(void 0,5),Gt.bind(void 0,6),Gt.bind(void 0,7),Gt.bind(void 0,8),BA.bind(void 0,0,0,0,0,0),BA.bind(void 0,0,0,0,0,1),BA.bind(void 0,0,0,0,0,2),BA.bind(void 0,0,0,0,0,3),BA.bind(void 0,0,0,0,1,0),BA.bind(void 0,0,0,0,1,1),BA.bind(void 0,0,0,0,1,2),BA.bind(void 0,0,0,0,1,3),BA.bind(void 0,0,0,1,0,0),BA.bind(void 0,0,0,1,0,1),BA.bind(void 0,0,0,1,0,2),BA.bind(void 0,0,0,1,0,3),BA.bind(void 0,0,0,1,1,0),BA.bind(void 0,0,0,1,1,1),BA.bind(void 0,0,0,1,1,2),BA.bind(void 0,0,0,1,1,3),BA.bind(void 0,0,1,0,0,0),BA.bind(void 0,0,1,0,0,1),BA.bind(void 0,0,1,0,0,2),BA.bind(void 0,0,1,0,0,3),BA.bind(void 0,0,1,0,1,0),BA.bind(void 0,0,1,0,1,1),BA.bind(void 0,0,1,0,1,2),BA.bind(void 0,0,1,0,1,3),BA.bind(void 0,0,1,1,0,0),BA.bind(void 0,0,1,1,0,1),BA.bind(void 0,0,1,1,0,2),BA.bind(void 0,0,1,1,0,3),BA.bind(void 0,0,1,1,1,0),BA.bind(void 0,0,1,1,1,1),BA.bind(void 0,0,1,1,1,2),BA.bind(void 0,0,1,1,1,3),BA.bind(void 0,1,0,0,0,0),BA.bind(void 0,1,0,0,0,1),BA.bind(void 0,1,0,0,0,2),BA.bind(void 0,1,0,0,0,3),BA.bind(void 0,1,0,0,1,0),BA.bind(void 0,1,0,0,1,1),BA.bind(void 0,1,0,0,1,2),BA.bind(void 0,1,0,0,1,3),BA.bind(void 0,1,0,1,0,0),BA.bind(void 0,1,0,1,0,1),BA.bind(void 0,1,0,1,0,2),BA.bind(void 0,1,0,1,0,3),BA.bind(void 0,1,0,1,1,0),BA.bind(void 0,1,0,1,1,1),BA.bind(void 0,1,0,1,1,2),BA.bind(void 0,1,0,1,1,3),BA.bind(void 0,1,1,0,0,0),BA.bind(void 0,1,1,0,0,1),BA.bind(void 0,1,1,0,0,2),BA.bind(void 0,1,1,0,0,3),BA.bind(void 0,1,1,0,1,0),BA.bind(void 0,1,1,0,1,1),BA.bind(void 0,1,1,0,1,2),BA.bind(void 0,1,1,0,1,3),BA.bind(void 0,1,1,1,0,0),BA.bind(void 0,1,1,1,0,1),BA.bind(void 0,1,1,1,0,2),BA.bind(void 0,1,1,1,0,3),BA.bind(void 0,1,1,1,1,0),BA.bind(void 0,1,1,1,1,1),BA.bind(void 0,1,1,1,1,2),BA.bind(void 0,1,1,1,1,3)];function xi(A){this.char=A,this.state={},this.activeState=null}function yg(A,e,t){this.contextName=t,this.startIndex=A,this.endOffset=e}function Rv(A,e,t){this.contextName=A,this.openRange=null,this.ranges=[],this.checkStart=e,this.checkEnd=t}function We(A,e){this.context=A,this.index=e,this.length=A.length,this.current=A[e],this.backtrack=A.slice(0,e),this.lookahead=A.slice(e+1)}function Uo(A){this.eventId=A,this.subscribers=[]}function Nv(A){var e=this,t=["start","end","next","newToken","contextStart","contextEnd","insertToken","removeToken","removeRange","replaceToken","replaceRange","composeRUD","updateContextsRanges"];t.forEach(function(n){Object.defineProperty(e.events,n,{value:new Uo(n)})}),A&&t.forEach(function(n){var o=A[n];typeof o=="function"&&e.events[n].subscribe(o)});var i=["insertToken","removeToken","removeRange","replaceToken","replaceRange","composeRUD"];i.forEach(function(n){e.events[n].subscribe(e.updateContextsRanges)})}function Ae(A){this.tokens=[],this.registeredContexts={},this.contextCheckers=[],this.events={},this.registeredModifiers=[],Nv.call(this,A)}xi.prototype.setState=function(A,e){return this.state[A]=e,this.activeState={key:A,value:this.state[A]},this.activeState};xi.prototype.getState=function(A){return this.state[A]||null};Ae.prototype.inboundIndex=function(A){return A>=0&&A<this.tokens.length};Ae.prototype.composeRUD=function(A){var e=this,t=!0,i=A.map(function(o){return e[o[0]].apply(e,o.slice(1).concat(t))}),n=function(o){return typeof o=="object"&&o.hasOwnProperty("FAIL")};if(i.every(n))return{FAIL:"composeRUD: one or more operations hasn't completed successfully",report:i.filter(n)};this.dispatch("composeRUD",[i.filter(function(o){return!n(o)})])};Ae.prototype.replaceRange=function(A,e,t,i){e=e!==null?e:this.tokens.length;var n=t.every(function(r){return r instanceof xi});if(!isNaN(A)&&this.inboundIndex(A)&&n){var o=this.tokens.splice.apply(this.tokens,[A,e].concat(t));return i||this.dispatch("replaceToken",[A,e,t]),[o,t]}else return{FAIL:"replaceRange: invalid tokens or startIndex."}};Ae.prototype.replaceToken=function(A,e,t){if(!isNaN(A)&&this.inboundIndex(A)&&e instanceof xi){var i=this.tokens.splice(A,1,e);return t||this.dispatch("replaceToken",[A,e]),[i[0],e]}else return{FAIL:"replaceToken: invalid token or index."}};Ae.prototype.removeRange=function(A,e,t){e=isNaN(e)?this.tokens.length:e;var i=this.tokens.splice(A,e);return t||this.dispatch("removeRange",[i,A,e]),i};Ae.prototype.removeToken=function(A,e){if(!isNaN(A)&&this.inboundIndex(A)){var t=this.tokens.splice(A,1);return e||this.dispatch("removeToken",[t,A]),t}else return{FAIL:"removeToken: invalid token index."}};Ae.prototype.insertToken=function(A,e,t){var i=A.every(function(n){return n instanceof xi});return i?(this.tokens.splice.apply(this.tokens,[e,0].concat(A)),t||this.dispatch("insertToken",[A,e]),A):{FAIL:"insertToken: invalid token(s)."}};Ae.prototype.registerModifier=function(A,e,t){this.events.newToken.subscribe(function(i,n){var o=[i,n],r=e===null||e.apply(this,o)===!0,g=[i,n];if(r){var s=t.apply(this,g);i.setState(A,s)}}),this.registeredModifiers.push(A)};Uo.prototype.subscribe=function(A){return typeof A=="function"?this.subscribers.push(A)-1:{FAIL:"invalid '"+this.eventId+"' event handler"}};Uo.prototype.unsubscribe=function(A){this.subscribers.splice(A,1)};We.prototype.setCurrentIndex=function(A){this.index=A,this.current=this.context[A],this.backtrack=this.context.slice(0,A),this.lookahead=this.context.slice(A+1)};We.prototype.get=function(A){switch(!0){case A===0:return this.current;case(A<0&&Math.abs(A)<=this.backtrack.length):return this.backtrack.slice(A)[0];case(A>0&&A<=this.lookahead.length):return this.lookahead[A-1];default:return null}};Ae.prototype.rangeToText=function(A){if(A instanceof yg)return this.getRangeTokens(A).map(function(e){return e.char}).join("")};Ae.prototype.getText=function(){return this.tokens.map(function(A){return A.char}).join("")};Ae.prototype.getContext=function(A){var e=this.registeredContexts[A];return e||null};Ae.prototype.on=function(A,e){var t=this.events[A];return t?t.subscribe(e):null};Ae.prototype.dispatch=function(A,e){var t=this,i=this.events[A];i instanceof Uo&&i.subscribers.forEach(function(n){n.apply(t,e||[])})};Ae.prototype.registerContextChecker=function(A,e,t){if(this.getContext(A))return{FAIL:"context name '"+A+"' is already registered."};if(typeof e!="function")return{FAIL:"missing context start check."};if(typeof t!="function")return{FAIL:"missing context end check."};var i=new Rv(A,e,t);return this.registeredContexts[A]=i,this.contextCheckers.push(i),i};Ae.prototype.getRangeTokens=function(A){var e=A.startIndex+A.endOffset;return[].concat(this.tokens.slice(A.startIndex,e))};Ae.prototype.getContextRanges=function(A){var e=this.getContext(A);return e?e.ranges:{FAIL:"context checker '"+A+"' is not registered."}};Ae.prototype.resetContextsRanges=function(){var A=this.registeredContexts;for(var e in A)if(A.hasOwnProperty(e)){var t=A[e];t.ranges=[]}};Ae.prototype.updateContextsRanges=function(){this.resetContextsRanges();for(var A=this.tokens.map(function(i){return i.char}),e=0;e<A.length;e++){var t=new We(A,e);this.runContextCheck(t)}this.dispatch("updateContextsRanges",[this.registeredContexts])};Ae.prototype.setEndOffset=function(A,e){var t=this.getContext(e).openRange.startIndex,i=new yg(t,A,e),n=this.getContext(e).ranges;return i.rangeId=e+"."+n.length,n.push(i),this.getContext(e).openRange=null,i};Ae.prototype.runContextCheck=function(A){var e=this,t=A.index;this.contextCheckers.forEach(function(i){var n=i.contextName,o=e.getContext(n).openRange;if(!o&&i.checkStart(A)&&(o=new yg(t,null,n),e.getContext(n).openRange=o,e.dispatch("contextStart",[n,t])),o&&i.checkEnd(A)){var r=t-o.startIndex+1,g=e.setEndOffset(r,n);e.dispatch("contextEnd",[n,g])}})};Ae.prototype.tokenize=function(A){this.tokens=[],this.resetContextsRanges();var e=Array.from(A);this.dispatch("start");for(var t=0;t<e.length;t++){var i=e[t],n=new We(e,t);this.dispatch("next",[n]),this.runContextCheck(n);var o=new xi(i);this.tokens.push(o),this.dispatch("newToken",[o,n])}return this.dispatch("end",[this.tokens]),this.tokens};function Kt(A){return/[\u0600-\u065F\u066A-\u06D2\u06FA-\u06FF]/.test(A)}function Gl(A){return/[\u0630\u0690\u0621\u0631\u0661\u0671\u0622\u0632\u0672\u0692\u06C2\u0623\u0673\u0693\u06C3\u0624\u0694\u06C4\u0625\u0675\u0695\u06C5\u06E5\u0676\u0696\u06C6\u0627\u0677\u0697\u06C7\u0648\u0688\u0698\u06C8\u0689\u0699\u06C9\u068A\u06CA\u066B\u068B\u06CB\u068C\u068D\u06CD\u06FD\u068E\u06EE\u06FE\u062F\u068F\u06CF\u06EF]/.test(A)}function Vt(A){return/[\u0600-\u0605\u060C-\u060E\u0610-\u061B\u061E\u064B-\u065F\u0670\u06D6-\u06DC\u06DF-\u06E4\u06E7\u06E8\u06EA-\u06ED]/.test(A)}function qn(A){return/[A-z]/.test(A)}function Gv(A){return/\s/.test(A)}function Ue(A){this.font=A,this.features={}}function oi(A){this.id=A.id,this.tag=A.tag,this.substitution=A.substitution}function kn(A,e){if(!A)return-1;switch(e.format){case 1:return e.glyphs.indexOf(A);case 2:for(var t=e.ranges,i=0;i<t.length;i++){var n=t[i];if(A>=n.start&&A<=n.end){var o=A-n.start;return n.index+o}}break;default:return-1}return-1}function Lv(A,e){var t=kn(A,e.coverage);return t===-1?null:A+e.deltaGlyphId}function Uv(A,e){var t=kn(A,e.coverage);return t===-1?null:e.substitute[t]}function ir(A,e){for(var t=[],i=0;i<A.length;i++){var n=A[i],o=e.current;o=Array.isArray(o)?o[0]:o;var r=kn(o,n);r!==-1&&t.push(r)}return t.length!==A.length?-1:t}function Mv(A,e){var t=e.inputCoverage.length+e.lookaheadCoverage.length+e.backtrackCoverage.length;if(A.context.length<t)return[];var i=ir(e.inputCoverage,A);if(i===-1)return[];var n=e.inputCoverage.length-1;if(A.lookahead.length<e.lookaheadCoverage.length)return[];for(var o=A.lookahead.slice(n);o.length&&Vt(o[0].char);)o.shift();var r=new We(o,0),g=ir(e.lookaheadCoverage,r),s=[].concat(A.backtrack);for(s.reverse();s.length&&Vt(s[0].char);)s.shift();if(s.length<e.backtrackCoverage.length)return[];var a=new We(s,0),I=ir(e.backtrackCoverage,a),l=i.length===e.inputCoverage.length&&g.length===e.lookaheadCoverage.length&&I.length===e.backtrackCoverage.length,C=[];if(l)for(var Q=0;Q<e.lookupRecords.length;Q++)for(var u=e.lookupRecords[Q],f=u.lookupListIndex,h=this.getLookupByIndex(f),E=0;E<h.subtables.length;E++){var p=h.subtables[E],c=this.getLookupMethod(h,p),d=this.getSubstitutionType(h,p);if(d==="12")for(var w=0;w<i.length;w++){var F=A.get(w),N=c(F);N&&C.push(N)}}return C}function xv(A,e){var t=A.current,i=kn(t,e.coverage);if(i===-1)return null;for(var n,o=e.ligatureSets[i],r=0;r<o.length;r++){n=o[r];for(var g=0;g<n.components.length;g++){var s=A.lookahead[g],a=n.components[g];if(s!==a)break;if(g===n.components.length-1)return n}}return null}function Jv(A,e){var t=kn(A,e.coverage);return t===-1?null:e.sequences[t]}Ue.prototype.getDefaultScriptFeaturesIndexes=function(){for(var A=this.font.tables.gsub.scripts,e=0;e<A.length;e++){var t=A[e];if(t.tag==="DFLT")return t.script.defaultLangSys.featureIndexes}return[]};Ue.prototype.getScriptFeaturesIndexes=function(A){var e=this.font.tables;if(!e.gsub)return[];if(!A)return this.getDefaultScriptFeaturesIndexes();for(var t=this.font.tables.gsub.scripts,i=0;i<t.length;i++){var n=t[i];if(n.tag===A&&n.script.defaultLangSys)return n.script.defaultLangSys.featureIndexes;var o=n.langSysRecords;if(o)for(var r=0;r<o.length;r++){var g=o[r];if(g.tag===A){var s=g.langSys;return s.featureIndexes}}}return this.getDefaultScriptFeaturesIndexes()};Ue.prototype.mapTagsToFeatures=function(A,e){for(var t={},i=0;i<A.length;i++){var n=A[i].tag,o=A[i].feature;t[n]=o}this.features[e].tags=t};Ue.prototype.getScriptFeatures=function(A){var e=this.features[A];if(this.features.hasOwnProperty(A))return e;var t=this.getScriptFeaturesIndexes(A);if(!t)return null;var i=this.font.tables.gsub;return e=t.map(function(n){return i.features[n]}),this.features[A]=e,this.mapTagsToFeatures(e,A),e};Ue.prototype.getSubstitutionType=function(A,e){var t=A.lookupType.toString(),i=e.substFormat.toString();return t+i};Ue.prototype.getLookupMethod=function(A,e){var t=this,i=this.getSubstitutionType(A,e);switch(i){case"11":return function(n){return Lv.apply(t,[n,e])};case"12":return function(n){return Uv.apply(t,[n,e])};case"63":return function(n){return Mv.apply(t,[n,e])};case"41":return function(n){return xv.apply(t,[n,e])};case"21":return function(n){return Jv.apply(t,[n,e])};default:throw new Error("lookupType: "+A.lookupType+" - substFormat: "+e.substFormat+" is not yet supported")}};Ue.prototype.lookupFeature=function(A){var e=A.contextParams,t=e.index,i=this.getFeature({tag:A.tag,script:A.script});if(!i)return new Error("font '"+this.font.names.fullName.en+"' doesn't support feature '"+A.tag+"' for script '"+A.script+"'.");for(var n=this.getFeatureLookups(i),o=[].concat(e.context),r=0;r<n.length;r++)for(var g=n[r],s=this.getLookupSubtables(g),a=0;a<s.length;a++){var I=s[a],l=this.getSubstitutionType(g,I),C=this.getLookupMethod(g,I),Q=void 0;switch(l){case"11":Q=C(e.current),Q&&o.splice(t,1,new oi({id:11,tag:A.tag,substitution:Q}));break;case"12":Q=C(e.current),Q&&o.splice(t,1,new oi({id:12,tag:A.tag,substitution:Q}));break;case"63":Q=C(e),Array.isArray(Q)&&Q.length&&o.splice(t,1,new oi({id:63,tag:A.tag,substitution:Q}));break;case"41":Q=C(e),Q&&o.splice(t,1,new oi({id:41,tag:A.tag,substitution:Q}));break;case"21":Q=C(e.current),Q&&o.splice(t,1,new oi({id:21,tag:A.tag,substitution:Q}));break}e=new We(o,t),!(Array.isArray(Q)&&!Q.length)&&(Q=null)}return o.length?o:null};Ue.prototype.supports=function(A){if(!A.script)return!1;this.getScriptFeatures(A.script);var e=this.features.hasOwnProperty(A.script);if(!A.tag)return e;var t=this.features[A.script].some(function(i){return i.tag===A.tag});return e&&t};Ue.prototype.getLookupSubtables=function(A){return A.subtables||null};Ue.prototype.getLookupByIndex=function(A){var e=this.font.tables.gsub.lookups;return e[A]||null};Ue.prototype.getFeatureLookups=function(A){return A.lookupListIndexes.map(this.getLookupByIndex.bind(this))};Ue.prototype.getFeature=function(e){if(!this.font)return{FAIL:"No font was found"};this.features.hasOwnProperty(e.script)||this.getScriptFeatures(e.script);var t=this.features[e.script];return t?t.tags[e.tag]?this.features[e.script].tags[e.tag]:null:{FAIL:"No feature for script "+e.script}};function Tv(A){var e=A.current,t=A.get(-1);return t===null&&Kt(e)||!Kt(t)&&Kt(e)}function Hv(A){var e=A.get(1);return e===null||!Kt(e)}var Yv={startCheck:Tv,endCheck:Hv};function _v(A){var e=A.current,t=A.get(-1);return(Kt(e)||Vt(e))&&!Kt(t)}function Kv(A){var e=A.get(1);switch(!0){case e===null:return!0;case(!Kt(e)&&!Vt(e)):var t=Gv(e);if(!t)return!0;if(t){var i=!1;if(i=A.lookahead.some(function(n){return Kt(n)||Vt(n)}),!i)return!0}break;default:return!1}}var Pv={startCheck:_v,endCheck:Kv};function Ov(A,e,t){e[t].setState(A.tag,A.substitution)}function Vv(A,e,t){e[t].setState(A.tag,A.substitution)}function Wv(A,e,t){A.substitution.forEach(function(i,n){var o=e[t+n];o.setState(A.tag,i)})}function qv(A,e,t){var i=e[t];i.setState(A.tag,A.substitution.ligGlyph);for(var n=A.substitution.components.length,o=0;o<n;o++)i=e[t+o+1],i.setState("deleted",!0)}var Ga={11:Ov,12:Vv,63:Wv,41:qv};function wg(A,e,t){A instanceof oi&&Ga[A.id]&&Ga[A.id](A,e,t)}function jv(A){for(var e=[].concat(A.backtrack),t=e.length-1;t>=0;t--){var i=e[t],n=Gl(i),o=Vt(i);if(!n&&!o)return!0;if(n)return!1}return!1}function Zv(A){if(Gl(A.current))return!1;for(var e=0;e<A.lookahead.length;e++){var t=A.lookahead[e],i=Vt(t);if(!i)return!0}return!1}function Xv(A){var e=this,t="arab",i=this.featuresTags[t],n=this.tokenizer.getRangeTokens(A);if(n.length!==1){var o=new We(n.map(function(g){return g.getState("glyphIndex")}),0),r=new We(n.map(function(g){return g.char}),0);n.forEach(function(g,s){if(!Vt(g.char)){o.setCurrentIndex(s),r.setCurrentIndex(s);var a=0;jv(r)&&(a|=1),Zv(r)&&(a|=2);var I;switch(a){case 1:I="fina";break;case 2:I="init";break;case 3:I="medi";break}if(i.indexOf(I)!==-1){var l=e.query.lookupFeature({tag:I,script:t,contextParams:o});if(l instanceof Error)return console.info(l.message);l.forEach(function(C,Q){C instanceof oi&&(wg(C,n,Q),o.context[Q]=C.substitution)})}}})}}function La(A,e){var t=A.map(function(i){return i.activeState.value});return new We(t,0)}function zv(A){var e=this,t="arab",i=this.tokenizer.getRangeTokens(A),n=La(i);n.context.forEach(function(o,r){n.setCurrentIndex(r);var g=e.query.lookupFeature({tag:"rlig",script:t,contextParams:n});g.length&&(g.forEach(function(s){return wg(s,i,r)}),n=La(i))})}function $v(A){var e=A.current,t=A.get(-1);return t===null&&qn(e)||!qn(t)&&qn(e)}function AF(A){var e=A.get(1);return e===null||!qn(e)}var eF={startCheck:$v,endCheck:AF};function Ua(A,e){var t=A.map(function(i){return i.activeState.value});return new We(t,0)}function tF(A){var e=this,t="latn",i=this.tokenizer.getRangeTokens(A),n=Ua(i);n.context.forEach(function(o,r){n.setCurrentIndex(r);var g=e.query.lookupFeature({tag:"liga",script:t,contextParams:n});g.length&&(g.forEach(function(s){return wg(s,i,r)}),n=Ua(i))})}function Xe(A){this.baseDir=A||"ltr",this.tokenizer=new Ae,this.featuresTags={}}Xe.prototype.setText=function(A){this.text=A};Xe.prototype.contextChecks={latinWordCheck:eF,arabicWordCheck:Yv,arabicSentenceCheck:Pv};function nr(A){var e=this.contextChecks[A+"Check"];return this.tokenizer.registerContextChecker(A,e.startCheck,e.endCheck)}function iF(){return nr.call(this,"latinWord"),nr.call(this,"arabicWord"),nr.call(this,"arabicSentence"),this.tokenizer.tokenize(this.text)}function nF(){var A=this,e=this.tokenizer.getContextRanges("arabicSentence");e.forEach(function(t){var i=A.tokenizer.getRangeTokens(t);A.tokenizer.replaceRange(t.startIndex,t.endOffset,i.reverse())})}Xe.prototype.registerFeatures=function(A,e){var t=this,i=e.filter(function(n){return t.query.supports({script:A,tag:n})});this.featuresTags.hasOwnProperty(A)?this.featuresTags[A]=this.featuresTags[A].concat(i):this.featuresTags[A]=i};Xe.prototype.applyFeatures=function(A,e){if(!A)throw new Error("No valid font was provided to apply features");this.query||(this.query=new Ue(A));for(var t=0;t<e.length;t++){var i=e[t];this.query.supports({script:i.script})&&this.registerFeatures(i.script,i.tags)}};Xe.prototype.registerModifier=function(A,e,t){this.tokenizer.registerModifier(A,e,t)};function Dg(){if(this.tokenizer.registeredModifiers.indexOf("glyphIndex")===-1)throw new Error("glyphIndex modifier is required to apply arabic presentation features.")}function oF(){var A=this,e="arab";if(this.featuresTags.hasOwnProperty(e)){Dg.call(this);var t=this.tokenizer.getContextRanges("arabicWord");t.forEach(function(i){Xv.call(A,i)})}}function rF(){var A=this,e="arab";if(this.featuresTags.hasOwnProperty(e)){var t=this.featuresTags[e];if(t.indexOf("rlig")!==-1){Dg.call(this);var i=this.tokenizer.getContextRanges("arabicWord");i.forEach(function(n){zv.call(A,n)})}}}function gF(){var A=this,e="latn";if(this.featuresTags.hasOwnProperty(e)){var t=this.featuresTags[e];if(t.indexOf("liga")!==-1){Dg.call(this);var i=this.tokenizer.getContextRanges("latinWord");i.forEach(function(n){tF.call(A,n)})}}}Xe.prototype.checkContextReady=function(A){return!!this.tokenizer.getContext(A)};Xe.prototype.applyFeaturesToContexts=function(){this.checkContextReady("arabicWord")&&(oF.call(this),rF.call(this)),this.checkContextReady("latinWord")&&gF.call(this),this.checkContextReady("arabicSentence")&&nF.call(this)};Xe.prototype.processText=function(A){(!this.text||this.text!==A)&&(this.setText(A),iF.call(this),this.applyFeaturesToContexts())};Xe.prototype.getBidiText=function(A){return this.processText(A),this.tokenizer.getText()};Xe.prototype.getTextGlyphs=function(A){this.processText(A);for(var e=[],t=0;t<this.tokenizer.tokens.length;t++){var i=this.tokenizer.tokens[t];if(!i.state.deleted){var n=i.activeState.value;e.push(Array.isArray(n)?n[0]:n)}}return e};function KA(A){A=A||{},A.tables=A.tables||{},A.empty||(Yi(A.familyName,"When creating a new Font object, familyName is required."),Yi(A.styleName,"When creating a new Font object, styleName is required."),Yi(A.unitsPerEm,"When creating a new Font object, unitsPerEm is required."),Yi(A.ascender,"When creating a new Font object, ascender is required."),Yi(A.descender<=0,"When creating a new Font object, negative descender value is required."),this.names={fontFamily:{en:A.familyName||" "},fontSubfamily:{en:A.styleName||" "},fullName:{en:A.fullName||A.familyName+" "+A.styleName},postScriptName:{en:A.postScriptName||(A.familyName+A.styleName).replace(/\s/g,"")},designer:{en:A.designer||" "},designerURL:{en:A.designerURL||" "},manufacturer:{en:A.manufacturer||" "},manufacturerURL:{en:A.manufacturerURL||" "},license:{en:A.license||" "},licenseURL:{en:A.licenseURL||" "},version:{en:A.version||"Version 0.1"},description:{en:A.description||" "},copyright:{en:A.copyright||" "},trademark:{en:A.trademark||" "}},this.unitsPerEm=A.unitsPerEm||1e3,this.ascender=A.ascender,this.descender=A.descender,this.createdTimestamp=A.createdTimestamp,this.tables=Object.assign(A.tables,{os2:Object.assign({usWeightClass:A.weightClass||this.usWeightClasses.MEDIUM,usWidthClass:A.widthClass||this.usWidthClasses.MEDIUM,fsSelection:A.fsSelection||this.fsSelectionValues.REGULAR},A.tables.os2)})),this.supported=!0,this.glyphs=new It.GlyphSet(this,A.glyphs||[]),this.encoding=new XC(this),this.position=new yn(this),this.substitution=new Le(this),this.tables=this.tables||{},this._push=null,this._hmtxTableData={},Object.defineProperty(this,"hinting",{get:function(){if(this._hinting)return this._hinting;if(this.outlinesFormat==="truetype")return this._hinting=new Sl(this)}})}KA.prototype.hasChar=function(A){return this.encoding.charToGlyphIndex(A)!==null};KA.prototype.charToGlyphIndex=function(A){return this.encoding.charToGlyphIndex(A)};KA.prototype.charToGlyph=function(A){var e=this.charToGlyphIndex(A),t=this.glyphs.get(e);return t||(t=this.glyphs.get(0)),t};KA.prototype.updateFeatures=function(A){return this.defaultRenderOptions.features.map(function(e){return e.script==="latn"?{script:"latn",tags:e.tags.filter(function(t){return A[t]})}:e})};KA.prototype.stringToGlyphs=function(A,e){var t=this,i=new Xe,n=function(l){return t.charToGlyphIndex(l.char)};i.registerModifier("glyphIndex",null,n);var o=e?this.updateFeatures(e.features):this.defaultRenderOptions.features;i.applyFeatures(this,o);for(var r=i.getTextGlyphs(A),g=r.length,s=new Array(g),a=this.glyphs.get(0),I=0;I<g;I+=1)s[I]=this.glyphs.get(r[I])||a;return s};KA.prototype.nameToGlyphIndex=function(A){return this.glyphNames.nameToGlyphIndex(A)};KA.prototype.nameToGlyph=function(A){var e=this.nameToGlyphIndex(A),t=this.glyphs.get(e);return t||(t=this.glyphs.get(0)),t};KA.prototype.glyphIndexToName=function(A){return this.glyphNames.glyphIndexToName?this.glyphNames.glyphIndexToName(A):""};KA.prototype.getKerningValue=function(A,e){A=A.index||A,e=e.index||e;var t=this.position.defaultKerningTables;return t?this.position.getKerningValue(t,A,e):this.kerningPairs[A+","+e]||0};KA.prototype.defaultRenderOptions={kerning:!0,features:[{script:"arab",tags:["init","medi","fina","rlig"]},{script:"latn",tags:["liga","rlig"]}]};KA.prototype.forEachGlyph=function(A,e,t,i,n,o){e=e!==void 0?e:0,t=t!==void 0?t:0,i=i!==void 0?i:72,n=Object.assign({},this.defaultRenderOptions,n);var r=1/this.unitsPerEm*i,g=this.stringToGlyphs(A,n),s;if(n.kerning){var a=n.script||this.position.getDefaultScriptName();s=this.position.getKerningTables(a,n.language)}for(var I=0;I<g.length;I+=1){var l=g[I];if(o.call(this,l,e,t,i,n),l.advanceWidth&&(e+=l.advanceWidth*r),n.kerning&&I<g.length-1){var C=s?this.position.getKerningValue(s,l.index,g[I+1].index):this.getKerningValue(l,g[I+1]);e+=C*r}n.letterSpacing?e+=n.letterSpacing*i:n.tracking&&(e+=n.tracking/1e3*i)}return e};KA.prototype.getPath=function(A,e,t,i,n){var o=new oe;return this.forEachGlyph(A,e,t,i,n,function(r,g,s,a){var I=r.getPath(g,s,a,n,this);o.extend(I)}),o};KA.prototype.getPaths=function(A,e,t,i,n){var o=[];return this.forEachGlyph(A,e,t,i,n,function(r,g,s,a){var I=r.getPath(g,s,a,n,this);o.push(I)}),o};KA.prototype.getAdvanceWidth=function(A,e,t){return this.forEachGlyph(A,0,0,e,t,function(){})};KA.prototype.draw=function(A,e,t,i,n,o){this.getPath(e,t,i,n,o).draw(A)};KA.prototype.drawPoints=function(A,e,t,i,n,o){this.forEachGlyph(e,t,i,n,o,function(r,g,s,a){r.drawPoints(A,g,s,a)})};KA.prototype.drawMetrics=function(A,e,t,i,n,o){this.forEachGlyph(e,t,i,n,o,function(r,g,s,a){r.drawMetrics(A,g,s,a)})};KA.prototype.getEnglishName=function(A){var e=this.names[A];if(e)return e.en};KA.prototype.validate=function(){var A=this;function e(i,n){}function t(i){var n=A.getEnglishName(i);n&&n.trim().length>0}t("fontFamily"),t("weightName"),t("manufacturer"),t("copyright"),t("version"),this.unitsPerEm>0};KA.prototype.toTables=function(){return qD.fontToTable(this)};KA.prototype.toBuffer=function(){return console.warn("Font.toBuffer is deprecated. Use Font.toArrayBuffer instead."),this.toArrayBuffer()};KA.prototype.toArrayBuffer=function(){for(var A=this.toTables(),e=A.encode(),t=new ArrayBuffer(e.length),i=new Uint8Array(t),n=0;n<e.length;n++)i[n]=e[n];return t};KA.prototype.download=function(A){var e=this.getEnglishName("fontFamily"),t=this.getEnglishName("fontSubfamily");A=A||e.replace(/\s/g,"")+"-"+t+".otf";var i=this.toArrayBuffer();if(ZD())if(window.URL=window.URL||window.webkitURL,window.URL){var n=new DataView(i),o=new Blob([n],{type:"font/opentype"}),r=document.createElement("a");r.href=window.URL.createObjectURL(o),r.download=A;var g=document.createEvent("MouseEvents");g.initEvent("click",!0,!1),r.dispatchEvent(g)}else console.warn("Font file could not be downloaded. Try using a different browser.");else{var s=require("fs"),a=XD(i);s.writeFileSync(A,a)}};KA.prototype.fsSelectionValues={ITALIC:1,UNDERSCORE:2,NEGATIVE:4,OUTLINED:8,STRIKEOUT:16,BOLD:32,REGULAR:64,USER_TYPO_METRICS:128,WWS:256,OBLIQUE:512};KA.prototype.usWidthClasses={ULTRA_CONDENSED:1,EXTRA_CONDENSED:2,CONDENSED:3,SEMI_CONDENSED:4,MEDIUM:5,SEMI_EXPANDED:6,EXPANDED:7,EXTRA_EXPANDED:8,ULTRA_EXPANDED:9};KA.prototype.usWeightClasses={THIN:100,EXTRA_LIGHT:200,LIGHT:300,NORMAL:400,MEDIUM:500,SEMI_BOLD:600,BOLD:700,EXTRA_BOLD:800,BLACK:900};function Ll(A,e){var t=JSON.stringify(A),i=256;for(var n in e){var o=parseInt(n);if(!(!o||o<256)){if(JSON.stringify(e[n])===t)return o;i<=o&&(i=o+1)}}return e[i]=A,i}function sF(A,e,t){var i=Ll(e.name,t);return[{name:"tag_"+A,type:"TAG",value:e.tag},{name:"minValue_"+A,type:"FIXED",value:e.minValue<<16},{name:"defaultValue_"+A,type:"FIXED",value:e.defaultValue<<16},{name:"maxValue_"+A,type:"FIXED",value:e.maxValue<<16},{name:"flags_"+A,type:"USHORT",value:0},{name:"nameID_"+A,type:"USHORT",value:i}]}function aF(A,e,t){var i={},n=new QA.Parser(A,e);return i.tag=n.parseTag(),i.minValue=n.parseFixed(),i.defaultValue=n.parseFixed(),i.maxValue=n.parseFixed(),n.skip("uShort",1),i.name=t[n.parseUShort()]||{},i}function IF(A,e,t,i){for(var n=Ll(e.name,i),o=[{name:"nameID_"+A,type:"USHORT",value:n},{name:"flags_"+A,type:"USHORT",value:0}],r=0;r<t.length;++r){var g=t[r].tag;o.push({name:"axis_"+A+" "+g,type:"FIXED",value:e.coordinates[g]<<16})}return o}function CF(A,e,t,i){var n={},o=new QA.Parser(A,e);n.name=i[o.parseUShort()]||{},o.skip("uShort",1),n.coordinates={};for(var r=0;r<t.length;++r)n.coordinates[t[r].tag]=o.parseFixed();return n}function lF(A,e){var t=new IA.Table("fvar",[{name:"version",type:"ULONG",value:65536},{name:"offsetToData",type:"USHORT",value:0},{name:"countSizePairs",type:"USHORT",value:2},{name:"axisCount",type:"USHORT",value:A.axes.length},{name:"axisSize",type:"USHORT",value:20},{name:"instanceCount",type:"USHORT",value:A.instances.length},{name:"instanceSize",type:"USHORT",value:4+A.axes.length*4}]);t.offsetToData=t.sizeOf();for(var i=0;i<A.axes.length;i++)t.fields=t.fields.concat(sF(i,A.axes[i],e));for(var n=0;n<A.instances.length;n++)t.fields=t.fields.concat(IF(n,A.instances[n],A.axes,e));return t}function BF(A,e,t){var i=new QA.Parser(A,e),n=i.parseULong();yA.argument(n===65536,"Unsupported fvar table version.");var o=i.parseOffset16();i.skip("uShort",1);for(var r=i.parseUShort(),g=i.parseUShort(),s=i.parseUShort(),a=i.parseUShort(),I=[],l=0;l<r;l++)I.push(aF(A,e+o+l*g,t));for(var C=[],Q=e+o+r*g,u=0;u<s;u++)C.push(CF(A,Q+u*a,I,t));return{axes:I,instances:C}}var QF={make:lF,parse:BF},cF=function(){return{coverage:this.parsePointer(T.coverage),attachPoints:this.parseList(T.pointer(T.uShortList))}},EF=function(){var A=this.parseUShort();if(yA.argument(A===1||A===2||A===3,"Unsupported CaretValue table version."),A===1)return{coordinate:this.parseShort()};if(A===2)return{pointindex:this.parseShort()};if(A===3)return{coordinate:this.parseShort()}},uF=function(){return this.parseList(T.pointer(EF))},hF=function(){return{coverage:this.parsePointer(T.coverage),ligGlyphs:this.parseList(T.pointer(uF))}},fF=function(){return this.parseUShort(),this.parseList(T.pointer(T.coverage))};function dF(A,e){e=e||0;var t=new T(A,e),i=t.parseVersion(1);yA.argument(i===1||i===1.2||i===1.3,"Unsupported GDEF table version.");var n={version:i,classDef:t.parsePointer(T.classDef),attachList:t.parsePointer(cF),ligCaretList:t.parsePointer(hF),markAttachClassDef:t.parsePointer(T.classDef)};return i>=1.2&&(n.markGlyphSets=t.parsePointer(fF)),n}var pF={parse:dF},qe=new Array(10);qe[1]=function(){var e=this.offset+this.relativeOffset,t=this.parseUShort();if(t===1)return{posFormat:1,coverage:this.parsePointer(T.coverage),value:this.parseValueRecord()};if(t===2)return{posFormat:2,coverage:this.parsePointer(T.coverage),values:this.parseValueRecordList()};yA.assert(!1,"0x"+e.toString(16)+": GPOS lookup type 1 format must be 1 or 2.")};qe[2]=function(){var e=this.offset+this.relativeOffset,t=this.parseUShort();yA.assert(t===1||t===2,"0x"+e.toString(16)+": GPOS lookup type 2 format must be 1 or 2.");var i=this.parsePointer(T.coverage),n=this.parseUShort(),o=this.parseUShort();if(t===1)return{posFormat:t,coverage:i,valueFormat1:n,valueFormat2:o,pairSets:this.parseList(T.pointer(T.list(function(){return{secondGlyph:this.parseUShort(),value1:this.parseValueRecord(n),value2:this.parseValueRecord(o)}})))};if(t===2){var r=this.parsePointer(T.classDef),g=this.parsePointer(T.classDef),s=this.parseUShort(),a=this.parseUShort();return{posFormat:t,coverage:i,valueFormat1:n,valueFormat2:o,classDef1:r,classDef2:g,class1Count:s,class2Count:a,classRecords:this.parseList(s,T.list(a,function(){return{value1:this.parseValueRecord(n),value2:this.parseValueRecord(o)}}))}}};qe[3]=function(){return{error:"GPOS Lookup 3 not supported"}};qe[4]=function(){return{error:"GPOS Lookup 4 not supported"}};qe[5]=function(){return{error:"GPOS Lookup 5 not supported"}};qe[6]=function(){return{error:"GPOS Lookup 6 not supported"}};qe[7]=function(){return{error:"GPOS Lookup 7 not supported"}};qe[8]=function(){return{error:"GPOS Lookup 8 not supported"}};qe[9]=function(){return{error:"GPOS Lookup 9 not supported"}};function mF(A,e){e=e||0;var t=new T(A,e),i=t.parseVersion(1);return yA.argument(i===1||i===1.1,"Unsupported GPOS table version "+i),i===1?{version:i,scripts:t.parseScriptList(),features:t.parseFeatureList(),lookups:t.parseLookupList(qe)}:{version:i,scripts:t.parseScriptList(),features:t.parseFeatureList(),lookups:t.parseLookupList(qe),variations:t.parseFeatureVariationsList()}}var yF=new Array(10);function wF(A){return new IA.Table("GPOS",[{name:"version",type:"ULONG",value:65536},{name:"scripts",type:"TABLE",value:new IA.ScriptList(A.scripts)},{name:"features",type:"TABLE",value:new IA.FeatureList(A.features)},{name:"lookups",type:"TABLE",value:new IA.LookupList(A.lookups,yF)}])}var DF={parse:mF,make:wF};function kF(A){var e={};A.skip("uShort");var t=A.parseUShort();yA.argument(t===0,"Unsupported kern sub-table version."),A.skip("uShort",2);var i=A.parseUShort();A.skip("uShort",3);for(var n=0;n<i;n+=1){var o=A.parseUShort(),r=A.parseUShort(),g=A.parseShort();e[o+","+r]=g}return e}function vF(A){var e={};A.skip("uShort");var t=A.parseULong();t>1&&console.warn("Only the first kern subtable is supported."),A.skip("uLong");var i=A.parseUShort(),n=i&255;if(A.skip("uShort"),n===0){var o=A.parseUShort();A.skip("uShort",3);for(var r=0;r<o;r+=1){var g=A.parseUShort(),s=A.parseUShort(),a=A.parseShort();e[g+","+s]=a}}return e}function FF(A,e){var t=new QA.Parser(A,e),i=t.parseUShort();if(i===0)return kF(t);if(i===1)return vF(t);throw new Error("Unsupported kern table version ("+i+").")}var SF={parse:FF};function bF(A,e,t,i){for(var n=new QA.Parser(A,e),o=i?n.parseUShort:n.parseULong,r=[],g=0;g<t+1;g+=1){var s=o.call(n);i&&(s*=2),r.push(s)}return r}var RF={parse:bF};function NF(A,e){var t=require("fs");t.readFile(A,function(i,n){if(i)return e(i.message);e(null,ml(n))})}function GF(A,e){var t=new XMLHttpRequest;t.open("get",A,!0),t.responseType="arraybuffer",t.onload=function(){return t.response?e(null,t.response):e("Font could not be loaded: "+t.statusText)},t.onerror=function(){e("Font could not be loaded")},t.send()}function Ma(A,e){for(var t=[],i=12,n=0;n<e;n+=1){var o=QA.getTag(A,i),r=QA.getULong(A,i+4),g=QA.getULong(A,i+8),s=QA.getULong(A,i+12);t.push({tag:o,checksum:r,offset:g,length:s,compression:!1}),i+=16}return t}function LF(A,e){for(var t=[],i=44,n=0;n<e;n+=1){var o=QA.getTag(A,i),r=QA.getULong(A,i+4),g=QA.getULong(A,i+8),s=QA.getULong(A,i+12),a=void 0;g<s?a="WOFF":a=!1,t.push({tag:o,offset:r,compression:a,compressedLength:g,length:s}),i+=20}return t}function ee(A,e){if(e.compression==="WOFF"){var t=new Uint8Array(A.buffer,e.offset+2,e.compressedLength-2),i=new Uint8Array(e.length);if(Dw(t,i),i.byteLength!==e.length)throw new Error("Decompression error: "+e.tag+" decompressed length doesn't match recorded length");var n=new DataView(i.buffer,0);return{data:n,offset:0}}else return{data:A,offset:e.offset}}function kg(A,e){e=e??{};var t,i,n=new KA({empty:!0}),o=new DataView(A,0),r,g=[],s=QA.getTag(o,0);if(s==="\0\0\0"||s==="true"||s==="typ1")n.outlinesFormat="truetype",r=QA.getUShort(o,4),g=Ma(o,r);else if(s==="OTTO")n.outlinesFormat="cff",r=QA.getUShort(o,4),g=Ma(o,r);else if(s==="wOFF"){var a=QA.getTag(o,4);if(a==="\0\0\0")n.outlinesFormat="truetype";else if(a==="OTTO")n.outlinesFormat="cff";else throw new Error("Unsupported OpenType flavor "+s);r=QA.getUShort(o,12),g=LF(o,r)}else throw new Error("Unsupported OpenType signature "+s);for(var I,l,C,Q,u,f,h,E,p,c,d,w,F=0;F<r;F+=1){var N=g[F],G=void 0;switch(N.tag){case"cmap":G=ee(o,N),n.tables.cmap=ZC.parse(G.data,G.offset),n.encoding=new zC(n.tables.cmap);break;case"cvt ":G=ee(o,N),w=new QA.Parser(G.data,G.offset),n.tables.cvt=w.parseShortList(N.length/2);break;case"fvar":l=N;break;case"fpgm":G=ee(o,N),w=new QA.Parser(G.data,G.offset),n.tables.fpgm=w.parseByteList(N.length);break;case"head":G=ee(o,N),n.tables.head=sl.parse(G.data,G.offset),n.unitsPerEm=n.tables.head.unitsPerEm,t=n.tables.head.indexToLocFormat;break;case"hhea":G=ee(o,N),n.tables.hhea=al.parse(G.data,G.offset),n.ascender=n.tables.hhea.ascender,n.descender=n.tables.hhea.descender,n.numberOfHMetrics=n.tables.hhea.numberOfHMetrics;break;case"hmtx":h=N;break;case"ltag":G=ee(o,N),i=Cl.parse(G.data,G.offset);break;case"maxp":G=ee(o,N),n.tables.maxp=ll.parse(G.data,G.offset),n.numGlyphs=n.tables.maxp.numGlyphs;break;case"name":c=N;break;case"OS/2":G=ee(o,N),n.tables.os2=Jr.parse(G.data,G.offset);break;case"post":G=ee(o,N),n.tables.post=hl.parse(G.data,G.offset),n.glyphNames=new fg(n.tables.post);break;case"prep":G=ee(o,N),w=new QA.Parser(G.data,G.offset),n.tables.prep=w.parseByteList(N.length);break;case"glyf":C=N;break;case"loca":p=N;break;case"CFF ":I=N;break;case"kern":E=N;break;case"GDEF":Q=N;break;case"GPOS":u=N;break;case"GSUB":f=N;break;case"meta":d=N;break}}var P=ee(o,c);if(n.tables.name=ul.parse(P.data,P.offset,i),n.names=n.tables.name,C&&p){var b=t===0,R=ee(o,p),L=RF.parse(R.data,R.offset,n.numGlyphs,b),EA=ee(o,C);n.glyphs=kl.parse(EA.data,EA.offset,L,n,e)}else if(I){var pA=ee(o,I);gl.parse(pA.data,pA.offset,n,e)}else throw new Error("Font doesn't contain TrueType or CFF outlines.");var lA=ee(o,h);if(Il.parse(n,lA.data,lA.offset,n.numberOfHMetrics,n.numGlyphs,n.glyphs,e),Vw(n,e),E){var nA=ee(o,E);n.kerningPairs=SF.parse(nA.data,nA.offset)}else n.kerningPairs={};if(Q){var z=ee(o,Q);n.tables.gdef=pF.parse(z.data,z.offset)}if(u){var tA=ee(o,u);n.tables.gpos=DF.parse(tA.data,tA.offset),n.position.init()}if(f){var dA=ee(o,f);n.tables.gsub=fl.parse(dA.data,dA.offset)}if(l){var kA=ee(o,l);n.tables.fvar=QF.parse(kA.data,kA.offset,n.names)}if(d){var Y=ee(o,d);n.tables.meta=dl.parse(Y.data,Y.offset),n.metas=n.tables.meta}return n}function UF(A,e,t){t=t??{};var i=typeof window>"u",n=i&&!t.isUrl?NF:GF;return new Promise(function(o,r){n(A,function(g,s){if(g){if(e)return e(g);r(g)}var a;try{a=kg(s,t)}catch(I){if(e)return e(I,null);r(I)}if(e)return e(null,a);o(a)})})}function MF(A,e){var t=require("fs"),i=t.readFileSync(A);return kg(ml(i),e)}var Hr=Object.freeze({__proto__:null,Font:KA,Glyph:Ge,Path:oe,BoundingBox:bt,_parse:QA,parse:kg,load:UF,loadSync:MF});const xF="modulepreload",JF=function(A){return"/generator/"+A},xa={},Ul=function(e,t,i){let n=Promise.resolve();if(t&&t.length>0){document.getElementsByTagName("link");const r=document.querySelector("meta[property=csp-nonce]"),g=(r==null?void 0:r.nonce)||(r==null?void 0:r.getAttribute("nonce"));n=Promise.allSettled(t.map(s=>{if(s=JF(s),s in xa)return;xa[s]=!0;const a=s.endsWith(".css"),I=a?'[rel="stylesheet"]':"";if(document.querySelector(`link[href="${s}"]${I}`))return;const l=document.createElement("link");if(l.rel=a?"stylesheet":xF,a||(l.as="script"),l.crossOrigin="",l.href=s,g&&l.setAttribute("nonce",g),document.head.appendChild(l),a)return new Promise((C,Q)=>{l.addEventListener("load",C),l.addEventListener("error",()=>Q(new Error(`Unable to preload CSS for ${s}`)))})}))}function o(r){const g=new Event("vite:preloadError",{cancelable:!0});if(g.payload=r,window.dispatchEvent(g),!g.defaultPrevented)throw r}return n.then(r=>{for(const g of r||[])g.status==="rejected"&&o(g.reason);return e().catch(o)})},TF=()=>Ul(()=>import("./ft_render-ByO_jG18.js"),[]);let Z=null,Qn=0;const HF=new Promise(A=>{TF().then(e=>{e.default().then(t=>{Z=t,A()})})});function Ja(A){return A/65536}function Me(A){return A/64}function _i(A){return A>=0?A:A+256}let Ml,xl,Jl,vg,Tl,Hl,Yl;async function YF(){if(await HF,Z._init_constants(),Ml=Z.cwrap("FT_New_Memory_Face","number",["number","number","number","number","number"]),xl=Z.cwrap("FT_Set_Char_Size","number",["number","number","number","number","number"]),Jl=Z.cwrap("FT_Set_Pixel_Sizes","number",["number","number","number"]),vg=Z.cwrap("FT_Get_Char_Index","number",["number","number"]),Tl=Z.cwrap("FT_Load_Glyph","number",["number","number","number"]),Hl=Z.cwrap("FT_Get_Sfnt_Table","number",["number","number"]),Z.cwrap("FT_Get_Kerning","number",["number","number","number","number","number"]),Yl=Z.cwrap("FT_Done_Face","number",["number"]),!Qn){let A=Z._malloc(4);try{let e=Z.ccall("FT_Init_FreeType","number",["number"],[A]);if(e)throw new Error(`error in FT_Init_FreeType: ${e}`);Qn=Z.getValue(A,"i32")}finally{Z._free(A)}}}function _F(A,e){let t,i;if(A instanceof ArrayBuffer)i=A.byteLength;else if(A instanceof Uint8Array)i=A.byteLength;else if(A&&typeof A.length=="number")i=A.length;else throw new Error("Invalid font source format");let n={ptr:0,font:Z._malloc(i)};const o=A instanceof ArrayBuffer?new Uint8Array(A):A;Z.writeArrayToMemory(o,n.font);let r=Z._malloc(4);try{if(t=Ml(Qn,n.font,i,0,r),t)throw new Error(`error in FT_New_Memory_Face: ${t}`);n.ptr=Z.getValue(r,"i32")}finally{Z._free(r)}if(t=xl(n.ptr,0,e*64,300,300),t)throw new Error(`error in FT_Set_Char_Size: ${t}`);if(t=Jl(n.ptr,0,e),t)throw new Error(`error in FT_Set_Pixel_Sizes: ${t}`);let g=Z.getValue(n.ptr+Z.OFFSET_FACE_UNITS_PER_EM,"i16"),s=Z.getValue(n.ptr+Z.OFFSET_FACE_ASCENDER,"i16"),a=Z.getValue(n.ptr+Z.OFFSET_FACE_DESCENDER,"i16"),I=Z.getValue(n.ptr+Z.OFFSET_FACE_HEIGHT,"i16");return Object.assign(n,{units_per_em:g,ascender:s,descender:a,height:I})}function KF(A){let e=Hl(A.ptr,Z.FT_SFNT_OS2);if(!e)throw new Error("os/2 table not found for this font");let t=Z.getValue(e+Z.OFFSET_TT_OS2_ASCENDER,"i16"),i=Z.getValue(e+Z.OFFSET_TT_OS2_DESCENDER,"i16"),n=Z.getValue(e+Z.OFFSET_TT_OS2_LINEGAP,"i16");return{typoAscent:t,typoDescent:i,typoLineGap:n}}function or(A,e){return vg(A.ptr,e)!==0}function PF(A,e,t={}){let i=vg(A.ptr,e);if(i===0)throw new Error(`glyph does not exist for codepoint ${e}`);let n=Z.FT_LOAD_RENDER;t.mono?n|=Z.FT_LOAD_TARGET_MONO:t.lcd?n|=Z.FT_LOAD_TARGET_LCD:t.lcd_v?n|=Z.FT_LOAD_TARGET_LCD_V:t.autohint_strong?n|=Z.FT_LOAD_TARGET_NORMAL:n|=Z.FT_LOAD_TARGET_LIGHT,t.autohint_off?n|=Z.FT_LOAD_NO_AUTOHINT:n|=Z.FT_LOAD_FORCE_AUTOHINT,t.use_color_info&&(n|=Z.FT_LOAD_COLOR);let o=Tl(A.ptr,i,n);if(o)throw new Error(`error in FT_Load_Glyph: ${o}`);let r=Z.getValue(A.ptr+Z.OFFSET_FACE_GLYPH,"i32"),g={glyph_index:Z.getValue(r+Z.OFFSET_GLYPH_INDEX,"i32"),metrics:{width:Me(Z.getValue(r+Z.OFFSET_GLYPH_METRICS_WIDTH,"i32")),height:Me(Z.getValue(r+Z.OFFSET_GLYPH_METRICS_HEIGHT,"i32")),horiBearingX:Me(Z.getValue(r+Z.OFFSET_GLYPH_METRICS_HORI_BEARING_X,"i32")),horiBearingY:Me(Z.getValue(r+Z.OFFSET_GLYPH_METRICS_HORI_BEARING_Y,"i32")),horiAdvance:Me(Z.getValue(r+Z.OFFSET_GLYPH_METRICS_HORI_ADVANCE,"i32")),vertBearingX:Me(Z.getValue(r+Z.OFFSET_GLYPH_METRICS_VERT_BEARING_X,"i32")),vertBearingY:Me(Z.getValue(r+Z.OFFSET_GLYPH_METRICS_VERT_BEARING_Y,"i32")),vertAdvance:Me(Z.getValue(r+Z.OFFSET_GLYPH_METRICS_VERT_ADVANCE,"i32"))},linearHoriAdvance:Ja(Z.getValue(r+Z.OFFSET_GLYPH_LINEAR_HORI_ADVANCE,"i32")),linearVertAdvance:Ja(Z.getValue(r+Z.OFFSET_GLYPH_LINEAR_VERT_ADVANCE,"i32")),advance:{x:Me(Z.getValue(r+Z.OFFSET_GLYPH_ADVANCE_X,"i32")),y:Me(Z.getValue(r+Z.OFFSET_GLYPH_ADVANCE_Y,"i32"))},bitmap:{width:Z.getValue(r+Z.OFFSET_GLYPH_BITMAP_WIDTH,"i32"),rows:Z.getValue(r+Z.OFFSET_GLYPH_BITMAP_ROWS,"i32"),pitch:Z.getValue(r+Z.OFFSET_GLYPH_BITMAP_PITCH,"i32"),num_grays:Z.getValue(r+Z.OFFSET_GLYPH_BITMAP_NUM_GRAYS,"i16"),pixel_mode:Z.getValue(r+Z.OFFSET_GLYPH_BITMAP_PIXEL_MODE,"i8"),palette_mode:Z.getValue(r+Z.OFFSET_GLYPH_BITMAP_PALETTE_MODE,"i8")},bitmap_left:Z.getValue(r+Z.OFFSET_GLYPH_BITMAP_LEFT,"i32"),bitmap_top:Z.getValue(r+Z.OFFSET_GLYPH_BITMAP_TOP,"i32"),lsb_delta:Me(Z.getValue(r+Z.OFFSET_GLYPH_LSB_DELTA,"i32")),rsb_delta:Me(Z.getValue(r+Z.OFFSET_GLYPH_RSB_DELTA,"i32"))},s=g.bitmap.width,a=g.bitmap.rows,I=g.bitmap_left,l=g.bitmap_top,C=Z.getValue(r+Z.OFFSET_GLYPH_BITMAP_BUFFER,"i32"),Q=Math.abs(g.bitmap.pitch),u=g.linearHoriAdvance,f=g.linearVertAdvance,h=g.bitmap.pixel_mode,E=[];for(let p=0;p<a;p++){let c=C+p*Q,d=[];for(let w=0;w<s;w++)if(h===Z.FT_PIXEL_MODE_MONO){let F=Z.getValue(c+~~(w/8),"i8");d.push(F&1<<7-w%8?255:0)}else if(h===Z.FT_PIXEL_MODE_BGRA){let F=_i(Z.getValue(c+w*4+0,"i8")),N=_i(Z.getValue(c+w*4+1,"i8")),G=_i(Z.getValue(c+w*4+2,"i8")),P=_i(Z.getValue(c+w*4+3,"i8")),b=Math.round(.299*G+.587*N+.114*F);b>255&&(b=255),P=(255-b)*P/255,d.push(P)}else{let F=Z.getValue(c+w,"i8");d.push(_i(F))}E.push(d)}return{x:I,y:l,width:s,height:a,advance_x:u,advance_y:f,pixels:E,freetype:g}}function OF(A){let e=Yl(A.ptr);if(e)throw new Error(`error in FT_Done_Face: ${e}`);Z._free(A.font),A.ptr=0,A.font=0}function VF(){let A=Z.ccall("FT_Done_FreeType","number",["number"],[Qn]);if(A)throw new Error(`error in FT_Done_FreeType: ${A}`);Qn=0}class wt extends Error{constructor(e){super(e),this.name="AppError",Error.captureStackTrace&&Error.captureStackTrace(this,wt)}}class WF{constructor(){this.data={}}add_range(e,t,i,n){let o=n-t,r=[];for(let g=t;g<=i;g++)this._set_char(e,g,g+o),r.push(g);return r}add_symbols(e,t){let i=[];for(let n of t){let o=n.codePointAt(0);this._set_char(e,o,o),i.push(o)}return i}_set_char(e,t,i){this.data[i]={font:e,code:t}}get(){return this.data}}async function qF(A){await YF();let e={};A.font.forEach(C=>{e[C.source_path]=C});let t={},i={};for(let{source_path:C,source_bin:Q}of A.font)if(!t[C])try{let u=Q;u instanceof File?u=await u.arrayBuffer():u instanceof Uint8Array&&(u=u.buffer.slice(u.byteOffset,u.byteOffset+u.byteLength)),t[C]=Hr.parse(u),i[C]=_F(u,A.size)}catch(u){throw new wt(`Cannot load font "${C}": ${u.message}`)}let n=new WF;for(let{source_path:C,ranges:Q}of A.font){let u=i[C];for(let f of Q){if(f.range)for(let h=0;h<f.range.length;h+=3){let E=f.range.slice(h,h+3),p=n.add_range(C,...E),c=!0;for(let d of p)if(or(u,d)){c=!1;break}if(c){let d="0x"+E[0].toString(16),w="0x"+E[1].toString(16);throw new wt(`Font "${C}" doesn't have any characters included in range ${d}-${w}`)}}if(f.symbols){let h=n.add_symbols(C,f.symbols),E=!0;for(let p of h)if(or(u,p)){E=!1;break}if(E)throw new wt(`Font "${C}" doesn't have any characters included in "${f.symbols}"`)}}}let o=n.get(),r=[],g=Object.keys(o).sort((C,Q)=>C-Q).map(Number);for(let C of g){let Q=o[C].code,u=o[C].font;if(!or(i[u],Q))continue;let f=PF(i[u],Q,{autohint_off:e[u].autohint_off,autohint_strong:e[u].autohint_strong,lcd:A.lcd,lcd_v:A.lcd_v,mono:!A.lcd&&!A.lcd_v&&A.bpp===1,use_color_info:A.use_color_info});r.push({code:C,advanceWidth:f.advance_x,bbox:{x:f.x,y:f.y-f.height,width:f.width,height:f.height},kerning:{},freetype:f.freetype,pixels:f.pixels})}if(!A.no_kerning){let C=r.map(Q=>Q.code);for(let{code:Q,kerning:u}of r){let f=o[Q].code,h=o[Q].font,E=t[h],p=E.charToGlyph(String.fromCodePoint(f));for(let c of C){if(o[c].font!==h)continue;let d=o[c].code,w=E.charToGlyph(String.fromCodePoint(d)),F=E.getKerningValue(p,w);F&&(u[c]=F*A.size/E.unitsPerEm)}}}let s=i[A.font[0].source_path],a=A.size/s.units_per_em,I=KF(s),l=t[A.font[0].source_path].tables.post;for(let C of Object.values(i))OF(C);return VF(),{ascent:Math.max(...r.map(C=>C.bbox.y+C.bbox.height)),descent:Math.min(...r.map(C=>C.bbox.y)),typoAscent:Math.round(I.typoAscent*a),typoDescent:Math.round(I.typoDescent*a),typoLineGap:Math.round(I.typoLineGap*a),size:A.size,glyphs:r,underlinePosition:Math.round(l.underlinePosition*a),underlineThickness:Math.round(l.underlineThickness*a)}}function jF(){return 16}function ZF(A,e){return 16+(e-A+1)}function XF(A){return 16+A*2}function Ta(A){A=A.sort((i,n)=>i-n);let e=[];for(let i=0;i<A.length;i++){let n={dist:1/0};for(let o=0;o<=i;o++){let r=o-1>=0?e[o-1].dist:0,g;A[i]-A[o]<256&&(g=ZF(A[o],A[i]),r+g<n.dist&&(n={dist:r+g,start:o,end:i,format:"format0"})),A[i]-A[o]<256&&A[i]-i===A[o]-o&&(g=jF(A[o],A[i]),r+g<n.dist&&(n={dist:r+g,start:o,end:i,format:"format0_tiny"})),A[i]-A[o]<65536&&(g=XF(i-o+1),r+g<n.dist&&(n={dist:r+g,start:o,end:i,format:"sparse_tiny"}))}e[i]=n}let t=[];for(let i=A.length-1;i>=0;){let n=e[i];t.unshift([n.format,A.slice(n.start,n.end+1)]),i=n.start-1}return t}const ke=4,zF=(A,e,t)=>{A.setUint32(t,e,!0),A.setUint32(t+4,0,!0)};class $F{constructor(e,t){if(this.src=e,this.opts=t,this.font_name=t.lv_font_name,this.font_name||(this.font_name=t.output||"font"),t.bpp===3&&t.no_compress)throw new wt('LVGL supports "--bpp 3" with compression only');this.init_tables()}init_tables(){this.head=new AS(this),this.glyf=new tS(this),this.cmap=new iS(this),this.kern=new nS(this)}toCBin(){const[e,t]=this.glyf.toCBin(),i=this.cmap.toCBin(ke),n=this.kern.toCBin(ke),o=12+ke*6+0,r=8+ke*4,g=new ArrayBuffer(o+r),s=new DataView(g),a=(h,E)=>s.setUint32(E,h,!0);var I=0;a(0,I),I+=ke,a(0,I),I+=ke,a(0,I),I+=ke,s.setUint32(I,this.src.ascent-this.src.descent,!0),I+=4,s.setInt32(I,-this.src.descent,!0),I+=4,s.setUint8(I,this.src.subpixels_mode||0),I+=1,s.setInt8(I,this.src.underlinePosition||0),I+=1,s.setInt8(I,this.src.underlineThickness||0),I+=1,I+=1,a(o,I),I+=ke,a(0,I),I+=ke,a(0,I),I+=ke;const l=this.head.kern_ref();a(r+n.byteLength,I),I+=ke,a(r+n.byteLength+e.byteLength,I),I+=ke,a(r+n.byteLength+e.byteLength+t.byteLength,I),I+=ke,a(l.dsc==="NULL"?0:r,I),I+=ke,s.setUint16(I,l.scale,!0),I+=2;const C=this.cmap.getMapNumber(),Q=this.opts.bpp,u=l.classes,f=this.glyf.getCompressionCode();return s.setUint16(I,C|Q<<9|u<<13|f<<14,!0),I+=2,this.concatArrayBuffers([g,n,e,t,i])}concatArrayBuffers(e){const t=e.reduce((r,g)=>r+g.byteLength,0),i=new ArrayBuffer(t),n=new Uint8Array(i);let o=0;for(const r of e)n.set(new Uint8Array(r),o),o+=r.byteLength;return i}}class AS{constructor(e){this.font=e}kern_ref(){return this.font,{scale:0,dsc:"NULL",classes:0}}}class eS{constructor(e){this.buffer=new Uint8Array(e),this.byteIndex=0,this.bitIndex=0,this.bigEndian=!0}writeBits(e,t){for(;t>0;){const i=Math.min(8-this.bitIndex,t),n=(1<<i)-1,o=e>>t-i&n;this.bigEndian?this.buffer[this.byteIndex]|=o<<8-this.bitIndex-i:this.buffer[this.byteIndex]|=o<<this.bitIndex,this.bitIndex+=i,this.bitIndex>=8&&(this.byteIndex++,this.bitIndex=0),t-=i}}getUsedBytes(){return this.bitIndex>0?this.byteIndex+1:this.byteIndex}}class tS{constructor(e){this.font=e,this.lv_data=[],this.lv_compiled=!1}pixelsToBpp(e){const t=this.font.opts.bpp;return e.map(i=>i.map(n=>n>>>8-t))}storePixels(e,t){this.getCompressionCode()===0?this.storePixelsRaw(e,t):this.storePixelsCompressed(e,t)}storePixelsRaw(e,t){const i=this.font.opts.bpp;for(let n=0;n<t.length;n++){const o=t[n];for(let r=0;r<o.length;r++)e.writeBits(o[r],i)}}storePixelsCompressed(e,t){this.storePixelsRaw(e,t)}lv_bitmap(e){const t=100+e.bbox.width*e.bbox.height*4,i=new ArrayBuffer(t),n=new eS(i);n.bigEndian=!0;const o=this.pixelsToBpp(e.pixels);this.storePixels(n,o);const r=new ArrayBuffer(n.getUsedBytes()),g=new Uint8Array(i);return new Uint8Array(r).set(g.subarray(0,n.getUsedBytes())),r}lv_compile(){if(this.lv_compiled)return;this.lv_compiled=!0;const e=this.font;this.lv_data=[];let t=0;e.src.glyphs.forEach(i=>{const n=e.glyph_id[i.code],o=this.lv_bitmap(i);this.lv_data[n]={bin:o,offset:t,glyph:i},t+=o.byteLength})}toCBin(){this.lv_compile();const e=this.lv_data.slice(1).filter(r=>r).map(r=>r.bin),t=this.balign4(this.concatArrayBuffers(e)),i=new ArrayBuffer(this.lv_data.length*16+16),n=new DataView(i);let o=1;return this.lv_data.forEach(r=>{if(r){const g=Math.round(r.glyph.advanceWidth*16);n.setUint32(o*16,r.offset,!0),n.setUint32(o*16+4,g,!0),n.setUint16(o*16+8,r.glyph.bbox.width,!0),n.setUint16(o*16+10,r.glyph.bbox.height,!0),n.setInt16(o*16+12,r.glyph.bbox.x,!0),n.setInt16(o*16+14,r.glyph.bbox.y,!0)}o++}),[t,i]}balign4(e){const t=e.byteLength%4;if(t===0)return e;const i=4-t,n=new ArrayBuffer(i);return this.concatArrayBuffers([e,n])}concatArrayBuffers(e){const t=e.reduce((r,g)=>r+g.byteLength,0),i=new ArrayBuffer(t),n=new Uint8Array(i);let o=0;for(const r of e)n.set(new Uint8Array(r),o),o+=r.byteLength;return i}getCompressionCode(){return this.font.opts.no_compress||this.font.opts.bpp===1?0:this.font.opts.no_prefilter?2:1}}class iS{constructor(e){this.font=e,this.lv_compiled=!1,this.lv_subtables=[],this.subtables_plan=null,this.buildGlyphIdMap()}buildGlyphIdMap(){const e=this.font;e.glyph_id={},e.src.glyphs&&e.src.glyphs.forEach((t,i)=>{e.glyph_id[t.code]=i+1})}lv_format2enum(e){switch(e){case"format0_tiny":return"LV_FONT_FMT_TXT_CMAP_FORMAT0_TINY";case"format0":return"LV_FONT_FMT_TXT_CMAP_FORMAT0_FULL";case"sparse_tiny":return"LV_FONT_FMT_TXT_CMAP_SPARSE_TINY";case"sparse":return"LV_FONT_FMT_TXT_CMAP_SPARSE_FULL";default:throw new Error("Unknown subtable format")}}lv_format2int(e){return["format0","sparse","format0_tiny","sparse_tiny"].indexOf(e)}getMapNumber(){if(!this.subtables_plan){const e=this.font;if(!e.src.glyphs||e.src.glyphs.length===0)return 0;this.subtables_plan=Ta(e.src.glyphs.map(t=>t.code))}return this.subtables_plan.length}glyphByCode(e){const t=this.font;return t.src.glyphs?t.src.glyphs.find(i=>i.code===e):null}collect_format0_data(e,t,i){const n=this.font,o=[];for(let r=e;r<=t;r++){const g=n.glyph_id[r]||0;o.push(g?g-i:0)}return o}collect_sparse_data(e,t){const i=this.font;let n=[],o=[];for(let r of e){let g=this.glyphByCode(r),s=i.glyph_id[g.code],a=r-e[0],I=s-t;if(a<0||a>65535)throw new Error("Codepoint delta out of range");if(I<0||I>65535)throw new Error("Glyph ID delta out of range");n.push(a),o.push(I)}return{codes:n,ids:o}}toCBin(e){const t=this.font;if(!t.src.glyphs||t.src.glyphs.length===0)return new ArrayBuffer(0);this.subtables_plan||(this.subtables_plan=Ta(t.src.glyphs.map(l=>l.code)));const i=this.subtables_plan;let n=0;const o=12+e*2+(e==4?0:4),r=new ArrayBuffer(i.length*o),g=new DataView(r),s=e==4?(l,C)=>g.setUint32(C,l,!0):(l,C)=>zF(g,l,C),a=[];let I=r.byteLength;for(let[l,C]of i){let Q=this.glyphByCode(C[0]),u=t.glyph_id[Q.code],f=C[0],h=C[C.length-1],E=!1,p=!1,c=0,d=new ArrayBuffer(0),w=new ArrayBuffer(0);if(l!=="format0_tiny")if(l==="format0"){p=!0;let N=this.collect_format0_data(f,h,u);c=N.length,d=this.balign4(this.uint8ArrayToBuffer(new Uint8Array(N)))}else if(l==="sparse_tiny"){E=!0;let N=this.collect_sparse_data(C,u);c=N.codes.length,w=this.balign4(this.uint16ArrayToBuffer(new Uint16Array(N.codes)))}else{E=!0,p=!0;let N=this.collect_sparse_data(C,u);c=N.codes.length,w=this.balign4(this.uint16ArrayToBuffer(new Uint16Array(N.codes))),d=this.align4(this.uint16ArrayToBuffer(new Uint16Array(N.ids)))}let F=n*o;g.setUint32(F,f,!0),F+=4,g.setUint16(F,h-f+1,!0),F+=2,g.setUint16(F,u,!0),F+=2,s(E?I:0,F),F+=e,I+=w.byteLength,s(p?I:0,F),F+=e,I+=d.byteLength,g.setUint16(F,c,!0),F+=2,g.setUint8(F,this.lv_format2int(l)),F+=1,a.push(w),a.push(d),n++}return this.concatArrayBuffers([r,...a])}balign4(e){const t=e.byteLength%4;if(t===0)return e;const i=4-t,n=new ArrayBuffer(i);return this.concatArrayBuffers([e,n])}align4(e){const t=e.byteLength%4;if(t===0)return e;const i=4-t,n=new ArrayBuffer(i);return this.concatArrayBuffers([e,n])}uint8ArrayToBuffer(e){const t=new ArrayBuffer(e.byteLength);return new Uint8Array(t).set(e),t}uint16ArrayToBuffer(e){return e.buffer.slice(0,e.byteLength)}concatArrayBuffers(e){const t=e.reduce((r,g)=>r+g.byteLength,0),i=new ArrayBuffer(t),n=new Uint8Array(i);let o=0;for(const r of e)n.set(new Uint8Array(r),o),o+=r.byteLength;return i}}class nS{constructor(e){this.font=e}toCBin(e){return new ArrayBuffer(0)}}function oS(A,e){if(!A.output)throw new wt('Output is required for "cbin" writer');const i=new $F(e,A).toCBin();return{[A.output]:i}}class rS{constructor(){this.initialized=!1,this.supportedFormats=["ttf","woff","woff2","otf"],this.charsetCache=new Map}async initialize(){if(!this.initialized)try{if(typeof Hr>"u")throw new Error("opentype.js not loaded");this.initialized=!0,console.log("BrowserFontConverter 初始化完成")}catch(e){throw console.error("BrowserFontConverter initialization failed:",e),e}}validateFont(e){if(!e)return!1;if(e instanceof File){const t=e.name.toLowerCase(),i=e.type.toLowerCase(),n=this.supportedFormats.some(r=>t.endsWith(`.${r}`)),o=["font/ttf","font/truetype","application/x-font-ttf","font/woff","font/woff2","application/font-woff","font/otf","application/x-font-otf"].some(r=>i.includes(r));return n||o}return e instanceof ArrayBuffer&&e.byteLength>0}async getFontInfo(e){try{let t;if(e instanceof File)t=await e.arrayBuffer();else if(e instanceof ArrayBuffer)t=e;else throw new Error("Unsupported font file type");const i=Hr.parse(t);return{familyName:this.getLocalizedName(i.names.fontFamily)||"Unknown",fullName:this.getLocalizedName(i.names.fullName)||"Unknown",postScriptName:this.getLocalizedName(i.names.postScriptName)||"Unknown",version:this.getLocalizedName(i.names.version)||"Unknown",unitsPerEm:i.unitsPerEm,ascender:i.ascender,descender:i.descender,numGlyphs:i.numGlyphs,supported:!0}}catch(t){return console.error("Failed to get font information:",t),{familyName:"Unknown",supported:!1,error:t.message}}}getLocalizedName(e){return e?e.zh||e["zh-CN"]||e.en||e[Object.keys(e)[0]]:null}async convertToCBIN(e){this.initialized||await this.initialize();const{fontFile:t,fontName:i,fontSize:n=20,bpp:o=4,charset:r="deepseek",symbols:g="",range:s="",compression:a=!1,lcd:I=!1,lcd_v:l=!1,progressCallback:C=null}=e;if(!this.validateFont(t))throw new wt("不支持的字体文件格式");try{C&&C(0,"Starting font processing...");let Q;t instanceof File?Q=await t.arrayBuffer():Q=t,C&&C(10,"Parsing font structure...");const{ranges:u,charSymbols:f}=await this.parseCharacterInputAsync(r,g,s);C&&C(20,"Preparing conversion parameters...");const h={font:[{source_path:i||"custom_font",source_bin:Q,ranges:[{range:u,symbols:f}],autohint_off:!1,autohint_strong:!1}],size:n,bpp:o,lcd:I,lcd_v:l,no_compress:!a,no_kerning:!1,use_color_info:!1,format:"cbin",output:i||"font"};C&&C(30,"Collecting font data...");const E=await qF(h);C&&C(70,"Generating CBIN format...");const p=oS(h,E),c=h.output;return C&&C(100,"Conversion completed!"),p[c]}catch(Q){throw console.error("Font conversion failed:",Q),new wt(`Font conversion failed: ${Q.message}`)}}async parseCharacterInputAsync(e,t,i){let n=[],o=t||"";return e==="full"?(n=[0,65535,0],{ranges:n,charSymbols:o}):(e&&e!=="custom"&&(o=await this.getCharsetContentAsync(e)+o),i&&(n=this.parseUnicodeRange(i)),{ranges:n,charSymbols:o})}parseCharacterInput(e,t,i){let n=[],o=t||"";return e==="full"?(n=[0,65535,0],{ranges:n,charSymbols:o}):(e&&e!=="custom"&&(o=this.getCharsetContent(e)+o),i&&(n=this.parseUnicodeRange(i)),{ranges:n,charSymbols:o})}async loadCharsetFromFile(e){const i={latin:"./static/charsets/latin1.txt",deepseek:"./static/charsets/deepseek.txt",gb2312:"./static/charsets/gb2312.txt",qwen:"./static/charsets/qwen18409.txt"}[e];if(!i)return null;try{const n=await fetch(i);if(!n.ok)throw new Error(`Failed to load charset file: ${n.status}`);const r=(await n.text()).split(`
|
||
`).join("");return this.charsetCache.set(e,r),r}catch(n){return console.error(`Failed to load charset ${e}:`,n),null}}getCharsetContent(e){const t={};return(e==="latin"||e==="deepseek"||e==="gb2312")&&this.charsetCache.has(e)?this.charsetCache.get(e):e==="basic"?this.getCharsetContent("latin"):t[e]||""}async getCharsetContentAsync(e){if(e==="basic"&&(e="latin"),this.charsetCache.has(e))return this.charsetCache.get(e);if(e==="latin"||e==="deepseek"||e==="gb2312"||e==="qwen"){const t=await this.loadCharsetFromFile(e);if(t)return t}return this.getCharsetContent(e)}parseUnicodeRange(e){const t=[],i=e.split(",");for(const n of i){const o=n.trim();if(o)if(o.includes("-")){const[r,g]=o.split("-"),s=this.parseHexOrDec(r),a=this.parseHexOrDec(g);s!==null&&a!==null&&t.push(s,a,s)}else{const r=this.parseHexOrDec(o);r!==null&&t.push(r,r,r)}}return t}parseHexOrDec(e){const t=e.trim();if(t.startsWith("0x")||t.startsWith("0X")){const n=parseInt(t,16);return isNaN(n)?null:n}const i=parseInt(t,10);return isNaN(i)?null:i}async estimateSizeAsync(e){const{fontSize:t=20,bpp:i=4,charset:n="latin",symbols:o="",range:r=""}=e;let g=o.length;if(n==="full")g=65536;else if(n&&n!=="custom"){const I=await this.getCharsetContentAsync(n);g+=I.length}if(r){const I=this.parseUnicodeRange(r);for(let l=0;l<I.length;l+=3)g+=I[l+1]-I[l]+1}n!=="full"&&(g=Math.min(g,g*.8));const s=Math.ceil(t*t*i/8)+40,a=g*s+2048;return{characterCount:Math.floor(g),avgBytesPerChar:s,estimatedSize:a,formattedSize:this.formatBytes(a)}}estimateSize(e){const{fontSize:t=20,bpp:i=4,charset:n="latin",symbols:o="",range:r=""}=e;let g=o.length;if(n==="full")g=65536;else if(n&&n!=="custom"){const I=this.getCharsetContent(n);g+=I.length}if(r){const I=this.parseUnicodeRange(r);for(let l=0;l<I.length;l+=3)g+=I[l+1]-I[l]+1}n!=="full"&&(g=Math.min(g,g*.8));const s=Math.ceil(t*t*i/8)+40,a=g*s+2048;return{characterCount:Math.floor(g),avgBytesPerChar:s,estimatedSize:a,formattedSize:this.formatBytes(a)}}formatBytes(e){if(e===0)return"0 Bytes";const t=1024,i=["Bytes","KB","MB","GB"],n=Math.floor(Math.log(e)/Math.log(t));return parseFloat((e/Math.pow(t,n)).toFixed(2))+" "+i[n]}cleanup(){this.initialized=!1}}const gS=new rS;class sS{constructor(){this.models=new Map}addModelFile(e,t,i){this.models.has(e)||this.models.set(e,new Map),this.models.get(e).set(t,i)}async loadModelFromShare(e){try{let t=[],i="";if(e.startsWith("wn9"))t=["_MODEL_INFO_","wn9_data","wn9_index"],i=`./static/wakenet_model/${e}/`;else if(e.startsWith("mn6")||e.startsWith("mn7"))t=["_MODEL_INFO_",`${e.substring(0,3)}_data`,`${e.substring(0,3)}_index`,"vocab"],i=`./static/multinet_model/${e}/`,await this.loadFSTModel();else throw new Error(`Unknown model type: ${e}`);let n=0;for(const o of t)try{const r=await fetch(`${i}${o}`);if(r.ok){const g=await r.arrayBuffer();this.addModelFile(e,o,g),n++}else console.warn(`无法加载文件: ${o}, status: ${r.status}`)}catch(r){console.warn(`加载文件失败: ${o}`,r)}return n===t.length}catch(t){return console.error(`加载模型失败: ${e}`,t),!1}}async loadFSTModel(){try{const e="fst";if(this.models.has(e))return!0;const t=["commands_cn.txt","commands_en.txt"],i="./static/multinet_model/fst/";let n=0;for(const o of t)try{const r=await fetch(`${i}${o}`);if(r.ok){const g=await r.arrayBuffer();this.addModelFile(e,o,g),n++}else console.warn(`无法加载 FST 文件: ${o}, status: ${r.status}`)}catch(r){console.warn(`加载 FST 文件失败: ${o}`,r)}return n>0}catch(e){return console.error("加载 FST 模型失败",e),!1}}packString(e,t){const i=new Uint8Array(t),n=Math.min(e.length,t);for(let o=0;o<n;o++)i[o]=e.charCodeAt(o)&255;return i}packUint32(e){const t=new Uint8Array(4);return t[0]=e&255,t[1]=e>>8&255,t[2]=e>>16&255,t[3]=e>>24&255,t}packModels(){if(this.models.size===0)throw new Error("没有模型数据可打包");let e=0;const t=[];for(const[a,I]of Array.from(this.models.entries()).sort((l,C)=>l[0].localeCompare(C[0]))){e+=I.size;const l=Array.from(I.entries()).sort((C,Q)=>C[0].localeCompare(Q[0]));t.push({name:a,files:l})}const i=this.models.size;let n=4;for(const a of t)n+=36,n+=a.files.length*40;const o=n+Array.from(this.models.values()).reduce((a,I)=>a+Array.from(I.values()).reduce((l,C)=>l+C.byteLength,0),0),r=new Uint8Array(o);let g=0;r.set(this.packUint32(i),g),g+=4;let s=n;for(const a of t){r.set(this.packString(a.name,32),g),g+=32,r.set(this.packUint32(a.files.length),g),g+=4;for(const[I,l]of a.files)r.set(this.packString(I,32),g),g+=32,r.set(this.packUint32(s),g),g+=4,r.set(this.packUint32(l.byteLength),g),g+=4,s+=l.byteLength}for(const a of t)for(const[I,l]of a.files)r.set(new Uint8Array(l),g),g+=l.byteLength;return r.buffer}static async getAvailableModels(){try{return{WakeNet9:["wn9_alexa","wn9_astrolabe_tts","wn9_bluechip_tts2","wn9_computer_tts","wn9_haixiaowu_tts","wn9_heyily_tts2","wn9_heyprinter_tts","wn9_heywanda_tts","wn9_heywillow_tts","wn9_hiesp","wn9_hifairy_tts2","wn9_hijason_tts2","wn9_hijolly_tts2","wn9_hijoy_tts","wn9_hilexin","wn9_hilili_tts","wn9_himfive","wn9_himiaomiao_tts","wn9_hitelly_tts","wn9_hiwalle_tts2","wn9_hixiaoxing_tts","wn9_jarvis_tts","wn9_linaiban_tts2","wn9_miaomiaotongxue_tts","wn9_mycroft_tts","wn9_nihaobaiying_tts2","wn9_nihaodongdong_tts2","wn9_nihaomiaoban_tts2","wn9_nihaoxiaoan_tts2","wn9_nihaoxiaoxin_tts","wn9_nihaoxiaoyi_tts2","wn9_nihaoxiaozhi","wn9_nihaoxiaozhi_tts","wn9_sophia_tts","wn9_xiaoaitongxue","wn9_xiaobinxiaobin_tts","wn9_xiaojianxiaojian_tts2","wn9_xiaokangtongxue_tts2","wn9_xiaolongxiaolong_tts","wn9_xiaoluxiaolu_tts2","wn9_xiaomeitongxue_tts","wn9_xiaomingtongxue_tts2","wn9_xiaosurou_tts2","wn9_xiaotexiaote_tts2","wn9_xiaoyaxiaoya_tts2","wn9_xiaoyutongxue_tts2"],WakeNet9s:["wn9s_alexa","wn9s_hiesp","wn9s_hijason","wn9s_hilexin","wn9s_nihaoxiaozhi"]}}catch(e){return console.error("获取模型列表失败:",e),{WakeNet9:[],WakeNet9s:[]}}}static isValidModel(e,t){return t==="esp32c3"||t==="esp32c6"?e.startsWith("wn9s_"):e.startsWith("wn9_")}clear(){this.models.clear()}getStats(){let e=0,t=0;for(const i of this.models.values()){e+=i.size;for(const n of i.values())t+=n.byteLength}return{modelCount:this.models.size,fileCount:e,totalSize:t,models:Array.from(this.models.keys())}}validatePackingCompatibility(){const e="test_model",t=this.packString(e,32),i=305419896,n=this.packUint32(i);return{stringPacking:{input:e,output:Array.from(t).map(o=>`0x${o.toString(16).padStart(2,"0")}`),isASCII:t.every((o,r)=>r>=e.length||o===e.charCodeAt(r))},intPacking:{input:`0x${i.toString(16)}`,output:Array.from(n).map(o=>`0x${o.toString(16).padStart(2,"0")}`),isLittleEndian:n[0]===120&&n[3]===18}}}}class aS{constructor(){this.files=[],this.textEncoder=new TextEncoder}addFile(e,t,i={}){e.length>32&&console.warn(`Filename "${e}" exceeds 32 bytes and will be truncated`),this.files.push({filename:e,data:t,size:t.byteLength,width:i.width||0,height:i.height||0})}async getImageDimensions(e){return new Promise(t=>{try{const i=new Blob([e]),n=URL.createObjectURL(i),o=new Image;o.onload=()=>{URL.revokeObjectURL(n),t({width:o.width,height:o.height})},o.onerror=()=>{URL.revokeObjectURL(n),t({width:0,height:0})},o.src=n}catch{t({width:0,height:0})}})}parseSpecialImageFormat(e,t){const i=e.toLowerCase().split(".").pop();if([".sjpg",".spng",".sqoi"].includes("."+i))try{const n=new DataView(t),o=n.getUint16(14,!0),r=n.getUint16(16,!0);return{width:o,height:r}}catch(n){console.warn(`Failed to parse special image format: ${e}`,n)}return{width:0,height:0}}packUint32(e){const t=new Uint8Array(4);return t[0]=e&255,t[1]=e>>8&255,t[2]=e>>16&255,t[3]=e>>24&255,t}packUint16(e){const t=new Uint8Array(2);return t[0]=e&255,t[1]=e>>8&255,t}packString(e,t){const i=new Uint8Array(t),n=this.textEncoder.encode(e),o=Math.min(n.length,t);return i.set(n.slice(0,o),0),i}computeChecksum(e){let t=0;for(let i=0;i<e.length;i++)t+=e[i];return t&65535}sortFiles(e){return e.slice().sort((t,i)=>{const n=t.filename.split(".").pop()||"",o=i.filename.split(".").pop()||"";if(n!==o)return n.localeCompare(o);const r=t.filename.replace(/\.[^/.]+$/,""),g=i.filename.replace(/\.[^/.]+$/,"");return r.localeCompare(g)})}async generate(e=null){if(this.files.length===0)throw new Error("No files to package");e&&e(0,"Starting to package files...");const t=this.sortFiles(this.files),i=t.length,n=[];let o=0;for(let p=0;p<t.length;p++){const c=t[p];let d=c.width,w=c.height;if(e&&e(10+p/i*30,`Processing file: ${c.filename}`),d===0&&w===0){const F=this.parseSpecialImageFormat(c.filename,c.data);if(F.width>0||F.height>0)d=F.width,w=F.height;else{const N=c.filename.toLowerCase().split(".").pop();if(["png","jpg","jpeg","gif","bmp","webp"].includes(N)){const G=await this.getImageDimensions(c.data);d=G.width,w=G.height}}}n.push({filename:c.filename,data:c.data,size:c.size,offset:o,width:d,height:w}),o+=2+c.size}e&&e(40,"Building file mapping table...");const r=i*44,g=new Uint8Array(r);let s=0;for(const p of n)g.set(this.packString(p.filename,32),s),s+=32,g.set(this.packUint32(p.size),s),s+=4,g.set(this.packUint32(p.offset),s),s+=4,g.set(this.packUint16(p.width),s),s+=2,g.set(this.packUint16(p.height),s),s+=2;e&&e(60,"Merging file data...");const a=new Uint8Array(o);let I=0;for(let p=0;p<n.length;p++){const c=n[p];e&&e(60+p/i*20,`Merging file: ${c.filename}`),a[I]=90,a[I+1]=90,I+=2,a.set(new Uint8Array(c.data),I),I+=c.size}e&&e(80,"Computing checksum...");const l=new Uint8Array(r+o);l.set(g,0),l.set(a,r);const C=this.computeChecksum(l),Q=l.length;e&&e(90,"Building final file...");const f=12+Q,h=new Uint8Array(f);let E=0;return h.set(this.packUint32(i),E),E+=4,h.set(this.packUint32(C),E),E+=4,h.set(this.packUint32(Q),E),E+=4,h.set(l,E),e&&e(100,"Packaging completed"),h.buffer}getStats(){var i;let e=0;const t=new Map;for(const n of this.files){e+=n.size;const o=((i=n.filename.split(".").pop())==null?void 0:i.toLowerCase())||"unknown";t.set(o,(t.get(o)||0)+1)}return{fileCount:this.files.length,totalSize:e,fileTypes:Object.fromEntries(t),averageFileSize:this.files.length>0?Math.round(e/this.files.length):0}}printFileList(){if(console.log("=== Packaged File List ==="),console.log(`Total files: ${this.files.length}`),this.files.length===0){console.log("No files available");return}this.sortFiles(this.files).forEach((i,n)=>{var s;const o=((s=i.filename.split(".").pop())==null?void 0:s.toLowerCase())||"unknown",r=(i.size/1024).toFixed(2),g=i.width&&i.height?`${i.width}x${i.height}`:"N/A";console.log(`${String(n+1).padStart(3," ")}. ${i.filename}`),console.log(` Type: ${o.toUpperCase()}`),console.log(` Size: ${r} KB (${i.size} bytes)`),console.log(` Dimensions: ${g}`),console.log("")});const t=this.getStats();console.log("=== File Statistics ==="),console.log(`Total size: ${(t.totalSize/1024).toFixed(2)} KB`),console.log(`Average size: ${(t.averageFileSize/1024).toFixed(2)} KB`),console.log("File type distribution:"),Object.entries(t.fileTypes).forEach(([i,n])=>{console.log(` ${i.toUpperCase()}: ${n} files`)})}clear(){this.files=[]}}let Jn={tool:{workerLocalUrl:`var gifsicle=function(){Me="undefined"!=typeof document&&document.currentScript?document.currentScript.src:void 0,"undefined"!=typeof __filename&&(Me=Me||__filename);var Me,c=function(e){var j,r,h=void 0!==(e=e||{})?e:{},t=(h.ready=new Promise(function(e,r){j=e}),h.preRun=h.preRun||[],h.preRun.push(function(){if(h.folder&&h.folder.length)for(let e=0;e<h.folder.length;e++){var r=h.folder[e];T.mkdir(r)}T.mkdir("/tem"),T.mkdir("/out");var t=h.input;for(let e=0;e<t.length;e++){var n=t[e];T.writeFile("/"+n.name,new Uint8Array(n.file))}}),h.postRun=h.postRun||[],h.postRun.push(function(){let r=[],t=T.readdir("/out");t.splice(0,2);for(let e=0;e<t.length;e++){var n=t[e],o=T.readFile("/out/"+n);r.push({file:o,name:n})}h.output(r)}),{});for(r in h)h.hasOwnProperty(r)&&(t[r]=h[r]);var n,o,i,O,a=[],C="./this.program",u=function(e,r){throw r},L=!1,c=!1,L="object"==typeof window,c="function"==typeof importScripts,s="object"==typeof process&&"object"==typeof process.versions&&"string"==typeof process.versions.node,I=!L&&!s&&!c,f="";s?(f=c?require("path").dirname(f)+"/":__dirname+"/",n=function(e,r){return i=i||require("fs"),e=(O=O||require("path")).normalize(e),i.readFileSync(e,r?null:"utf8")},o=function(e){e=n(e,!0);return H((e=e.buffer?e:new Uint8Array(e)).buffer),e},1<process.argv.length&&(C=process.argv[1].replace(/\\\\/g,"/")),a=process.argv.slice(2),process.on("uncaughtException",function(e){if(!(e instanceof Fe))throw e}),process.on("unhandledRejection",D),u=function(e){process.exit(e)},h.inspect=function(){return"[Emscripten Module object]"}):I?("undefined"!=typeof read&&(n=function(e){return read(e)}),o=function(e){return"function"==typeof readbuffer?new Uint8Array(readbuffer(e)):(H("object"==typeof(e=read(e,"binary"))),e)},"undefined"!=typeof scriptArgs?a=scriptArgs:void 0!==arguments&&(a=arguments),"function"==typeof quit&&(u=function(e){quit(e)}),"undefined"!=typeof print&&((console="undefined"==typeof console?{}:console).log=print,console.warn=console.error="undefined"!=typeof printErr?printErr:print)):(L||c)&&(c?f=self.location.href:document.currentScript&&(f=document.currentScript.src),f=0!==(f=Me?Me:f).indexOf("blob:")?f.substr(0,f.lastIndexOf("/")+1):"",n=function(e){var r=new XMLHttpRequest;return r.open("GET",e,!1),r.send(null),r.responseText},c&&(o=function(e){var r=new XMLHttpRequest;return r.open("GET",e,!1),r.responseType="arraybuffer",r.send(null),new Uint8Array(r.response)}));var l,d,p,m=h.print||console.log.bind(console),w=h.printErr||console.warn.bind(console);for(r in t)t.hasOwnProperty(r)&&(h[r]=t[r]);t=null,h.arguments&&(a=h.arguments),h.thisProgram&&(C=h.thisProgram),h.quit&&(u=h.quit),h.wasmBinary&&(l=h.wasmBinary),h.noExitRuntime&&(d=h.noExitRuntime),"object"!=typeof WebAssembly&&w("no native wasm support detected");var I=new WebAssembly.Table({initial:64,maximum:64,element:"anyfunc"}),U=!1;function H(e,r){e||D("Assertion failed: "+r)}var q="undefined"!=typeof TextDecoder?new TextDecoder("utf8"):void 0;function g(e,r,t){for(var n=r+t,o=r;e[o]&&!(n<=o);)++o;if(16<o-r&&e.subarray&&q)return q.decode(e.subarray(r,o));for(var i="";r<o;){var a,s,u=e[r++];128&u?(s=63&e[r++],192==(224&u)?i+=String.fromCharCode((31&u)<<6|s):(a=63&e[r++],(u=224==(240&u)?(15&u)<<12|s<<6|a:(7&u)<<18|s<<12|a<<6|63&e[r++])<65536?i+=String.fromCharCode(u):(s=u-65536,i+=String.fromCharCode(55296|s>>10,56320|1023&s)))):i+=String.fromCharCode(u)}return i}function W(e,r){return e?g(E,e,r):""}function X(e,r,t,n){if(!(0<n))return 0;for(var o=t,i=t+n-1,a=0;a<e.length;++a){var s=e.charCodeAt(a);if((s=55296<=s&&s<=57343?65536+((1023&s)<<10)|1023&e.charCodeAt(++a):s)<=127){if(i<=t)break;r[t++]=s}else if(s<=2047){if(i<=t+1)break;r[t++]=192|s>>6,r[t++]=128|63&s}else if(s<=65535){if(i<=t+2)break;r[t++]=224|s>>12,r[t++]=128|s>>6&63,r[t++]=128|63&s}else{if(i<=t+3)break;r[t++]=240|s>>18,r[t++]=128|s>>12&63,r[t++]=128|s>>6&63,r[t++]=128|63&s}}return r[t]=0,t-o}function G(e){for(var r=0,t=0;t<e.length;++t){var n=e.charCodeAt(t);(n=55296<=n&&n<=57343?65536+((1023&n)<<10)|1023&e.charCodeAt(++t):n)<=127?++r:r+=n<=2047?2:n<=65535?3:4}return r}function V(e){var r=G(e)+1,t=Se(r);return X(e,y,t,r),t}var v,y,E,K,k;function Y(e){v=e,h.HEAP8=y=new Int8Array(e),h.HEAP16=K=new Int16Array(e),h.HEAP32=k=new Int32Array(e),h.HEAPU8=E=new Uint8Array(e),h.HEAPU16=new Uint16Array(e),h.HEAPU32=new Uint32Array(e),h.HEAPF32=new Float32Array(e),h.HEAPF64=new Float64Array(e)}f=h.INITIAL_MEMORY||16777216;function Z(e){for(;0<e.length;){var r,t=e.shift();"function"==typeof t?t(h):"number"==typeof(r=t.func)?void 0===t.arg?h.dynCall_v(r):h.dynCall_vi(r,t.arg):r(void 0===t.arg?null:t.arg)}}p=h.wasmMemory||new WebAssembly.Memory({initial:f/65536,maximum:32768}),f=(v=p?p.buffer:v).byteLength,Y(v),k[9776]=5282144;var $=[],J=[],Q=[],ee=[];function re(){if(h.preRun)for("function"==typeof h.preRun&&(h.preRun=[h.preRun]);h.preRun.length;)e=h.preRun.shift(),$.unshift(e);var e;Z($)}function te(){if(h.postRun)for("function"==typeof h.postRun&&(h.postRun=[h.postRun]);h.postRun.length;)e=h.postRun.shift(),ee.unshift(e);var e;Z(ee)}var ne=Math.abs,oe=Math.ceil,ie=Math.floor,ae=Math.min,_=0,b=null;function se(){_++,h.monitorRunDependencies&&h.monitorRunDependencies(_)}function ue(){var e;_--,h.monitorRunDependencies&&h.monitorRunDependencies(_),0==_&&b&&(e=b,b=null,e())}function D(e){throw h.onAbort&&h.onAbort(e),m(e+=""),w(e),U=!0,e="abort("+e+"). Build with -s ASSERTIONS=1 for more info.",new WebAssembly.RuntimeError(e)}function ce(e,r){return String.prototype.startsWith?e.startsWith(r):0===e.indexOf(r)}h.preloadedImages={},h.preloadedAudios={};var fe="data:application/octet-stream;base64,";var le="file://";function de(e){return ce(e,le)}var S,F,P="data:application/wasm;base64,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ACABOgABIANBfWogAToAACAAIAE6AAIgAkEHSQ0AIANBfGogAToAACAAIAE6AAMgAkEJSQ0AIABBACAAa0EDcSIEaiIDIAFB/wFxQYGChAhsIgE2AgAgAyACIARrQXxxIgRqIgJBfGogATYCACAEQQlJDQAgAyABNgIIIAMgATYCBCACQXhqIAE2AgAgAkF0aiABNgIAIARBGUkNACADIAE2AhggAyABNgIUIAMgATYCECADIAE2AgwgAkFwaiABNgIAIAJBbGogATYCACACQWhqIAE2AgAgAkFkaiABNgIAIAQgA0EEcUEYciIEayICQSBJDQAgAa0iBUIghiAFhCEFIAMgBGohAQNAIAEgBTcDGCABIAU3AxAgASAFNwMIIAEgBTcDACABQSBqIQEgAkFgaiICQR9LDQALCyAAC5ABAQN/IAAhAQJAAkAgAEEDcUUNACAALQAARQRAQQAPCwNAIAFBAWoiAUEDcUUNASABLQAADQALDAELA0AgASICQQRqIQEgAigCACIDQX9zIANB//37d2pxQYCBgoR4cUUNAAsgA0H/AXFFBEAgAiAAaw8LA0AgAi0AASEDIAJBAWoiASECIAMNAAsLIAEgAGsLSgECfwJAIAAtAAAiAkUgAiABLQAAIgNHcg0AA0AgAS0AASEDIAAtAAEiAkUNASABQQFqIQEgAEEBaiEAIAIgA0YNAAsLIAIgA2sLoggBC38gAEUEQCABEBoPCyABQUBPBEBB3JwCQTA2AgBBAA8LIABBfGoiBygCACIIQXhxIQIgCEEDcSIDQQFGQeCtAigCACILIABBeGoiBktyGkEQIAFBC2pBeHEgAUELSRshBAJAAkAgA0UEQCAEQYACSSACIARBBHJJcg0BIAIgBGtBsLECKAIAQQF0TQ0CDAELIAIgBmohBSACIARPBEAgAiAEayIBQRBJDQIgByAIQQFxIARyQQJyNgIAIAQgBmoiAiABQQNyNgIEIAUgBSgCBEEBcjYCBCACIAEQpQEgAA8LIAVB6K0CKAIARgRAQdytAigCACACaiICIARNDQEgByAIQQFxIARyQQJyNgIAIAQgBmoiASACIARrIgJBAXI2AgRB3K0CIAI2AgBB6K0CIAE2AgAgAA8LIAVB5K0CKAIARgRAQditAigCACACaiICIARJDQECQCACIARrIgFBEE8EQCAHIAhBAXEgBHJBAnI2AgAgBCAGaiIDIAFBAXI2AgQgAiAGaiICIAE2AgAgAiACKAIEQX5xNgIEDAELIAcgCEEBcSACckECcjYCACACIAZqIgEgASgCBEEBcjYCBEEAIQFBACEDC0HkrQIgAzYCAEHYrQIgATYCACAADwsgBSgCBCIDQQJxDQAgA0F4cSACaiIJIARJDQAgCSAEayEMAkAgA0H/AU0EQCAFKAIIIgIgA0EDdiIDQQN0QfitAmpHGiACIAUoAgwiAUYEQEHQrQJB0K0CKAIAQX4gA3dxNgIADAILIAIgATYCDCABIAI2AggMAQsgBSgCGCEKAkAgBSAFKAIMIgJHBEAgCyAFKAIIIgFNBEAgASgCDBoLIAEgAjYCDCACIAE2AggMAQsCQCAFQRRqIgEoAgAiAw0AIAVBEGoiASgCACIDDQBBACECDAELA0AgASELIAMiAkEUaiIBKAIAIgMNACACQRBqIQEgAigCECIDDQALIAtBADYCAAsgCkUNAAJAIAUgBSgCHCIBQQJ0QYCwAmoiAygCAEYEQCADIAI2AgAgAg0BQdStAkHUrQIoAgBBfiABd3E2AgAMAgsgCkEQQRQgCigCECAFRhtqIAI2AgAgAkUNAQsgAiAKNgIYIAUoAhAiAQRAIAIgATYCECABIAI2AhgLIAUoAhQiAUUNACACIAE2AhQgASACNgIYCyAMQQ9NBEAgByAIQQFxIAlyQQJyNgIAIAYgCWoiASABKAIEQQFyNgIEIAAPCyAHIAhBAXEgBHJBAnI2AgAgBCAGaiIBIAxBA3I2AgQgBiAJaiICIAIoAgRBAXI2AgQgASAMEKUBIAAPCyABEBoiAkUEQEEADwsgAiAAQXxBeCAHKAIAIgNBA3EbIANBeHFqIgMgASADIAFJGxAYGiAAEBYgAiEACyAAC8EBAgN/AX4CQAJAIAApA3AiBFBFBEAgACkDeCAEWQ0BCyAAEGsiAkF/Sg0BCyAAQQA2AmhBfw8LIAAoAgghAQJAAkAgACkDcCIEUA0AIAQgACkDeEJ/hXwiBCABIAAoAgQiA2usWQ0AIAAgAyAEp2o2AmgMAQsgACABNgJoCwJAIAFFBEAgACgCBCEADAELIAAgACkDeCABIAAoAgQiAGtBAWqsfDcDeAsgAEF/aiIALQAAIAJHBEAgACACOgAACyACC5gLAgV/D34jAEHgAGsiBSQAIAJCIIYgAUIgiIQhDyAEQi+GIANCEYiEIQ0gBEL///////8/gyIOQg+GIANCMYiEIRAgAiAEhUKAgICAgICAgIB/gyEKIAJC////////P4MiC0IgiCERIA5CEYghEiAEQjCIp0H//wFxIQcCQAJ/IAJCMIinQf//AXEiCUF/akH9/wFNBEBBACAHQX9qQf7/AUkNARoLIAFQIAJC////////////AIMiDEKAgICAgIDA//8AVCAMQoCAgICAgMD//wBRG0UEQCACQoCAgICAgCCEIQoMAgsgA1AgBEL///////////8AgyICQoCAgICAgMD//wBUIAJCgICAgICAwP//AFEbRQRAIARCgICAgICAIIQhCiADIQEMAgsgASAMQoCAgICAgMD//wCFhFAEQCACIAOEUARAQoCAgICAgOD//wAhCkIAIQEMAwsgCkKAgICAgIDA//8AhCEKQgAhAQwCCyADIAJCgICAgICAwP//AIWEUARAIAEgDIQhAkIAIQEgAlAEQEKAgICAgIDg//8AIQoMAwsgCkKAgICAgIDA//8AhCEKDAILIAEgDIRQBEBCACEBDAILIAIgA4RQBEBCACEBDAILIAxC////////P1gEQCAFQdAAaiABIAsgASALIAtQIgYbeSAGQQZ0rXynIgZBcWoQKCAFKQNYIgtCIIYgBSkDUCIBQiCIhCEPIAtCIIghEUEQIAZrIQYLIAYgAkL///////8/Vg0AGiAFQUBrIAMgDiADIA4gDlAiCBt5IAhBBnStfKciCEFxahAoIAUpA0giAkIPhiAFKQNAIgNCMYiEIRAgAkIvhiADQhGIhCENIAJCEYghEiAGIAhrQRBqCyEGIA1C/////w+DIgIgAUL/////D4MiAX4iEyADQg+GQoCA/v8PgyIDIA9C/////w+DIgx+fCIEQiCGIg4gASADfnwiDSAOVK0gAiAMfiIVIAMgC0L/////D4MiC358IhQgEEL/////D4MiDiABfnwiECAEIBNUrUIghiAEQiCIhHwiEyACIAt+IhYgAyARQoCABIQiD358IgMgDCAOfnwiESABIBJC/////weDQoCAgIAIhCIBfnwiEkIghnwiF3whBCAHIAlqIAZqQYGAf2ohBgJAIAsgDn4iGCACIA9+fCICIBhUrSACIAEgDH58Igwg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AAsLAkACQCAAIAhHBEAgBigCECIFIABBBHRqIgcoAgAgAUYNAQsCQEEAIAggCEEHcRtFBEAgBigCECEFDAELIAYoAhAgCEEEdEGAAWoQHiIFRQ0DIAYgBTYCECAGKAIUIQgLIAUgAEEEdCIJaiIHQRBqIAcgCCAAa0EEdBDCASAGIAYoAhRBAWo2AhQgBigCECIFIAlqQQA2AgQMAQsgBygCBEEFRw0AIAUgAEEEdGooAgwiBygCABAWIAcoAgQQFiAHEBYgBigCECEFCyAFIABBBHRqIgAgBDYCDCAAIAI2AgggACADNgIEIAAgATYCAEEAIQoLIAoLaQEBfyMAQYACayIFJAAgBEGAwARxIAIgA0xyRQRAIAUgASACIANrIgJBgAIgAkGAAkkiARsQGxogAUUEQANAIAAgBUGAAhAnIAJBgH5qIgJB/wFLDQALCyAAIAUgAhAnCyAFQYACaiQAC2gBAX8gAEEASCABQQFIckVBAEEAQRRBARAXIgIbRQRAIAIQFkEADwsgAiAANgIAIAIgACABIAAgAUobIgA2AgQgAkEAQQggABAXIgE2AhAgAkIANwIIIAIhACABBH8gAAUgABAWQQALCyUBAX8jAEEQayICJAAgAiABNgIMQQBBAEEDIAAgARBdQQEQAgALwQkCBH8EfiMAQfAAayIFJAAgBEL///////////8AgyEKAkACQCABQn98IgtCf1EgAkL///////////8AgyIJIAsgAVStfEJ/fCILQv///////7///wBWIAtC////////v///AFEbRQRAIANCf3wiC0J/UiAKIAsgA1StfEJ/fCILQv///////7///wBUIAtC////////v///AFEbDQELIAFQIAlCgICAgICAwP//AFQgCUKAgICAgIDA//8AURtFBEAgAkKAgICAgIAghCEEIAEhAwwCCyADUCAKQoCAgICAgMD//wBUIApCgICAgICAwP//AFEbRQRAIARCgICAgICAIIQhBAwCCyABIAlCgICAgICAwP//AIWEUARAQoCAgICAgOD//wAgAiABIAOFIAIgBIVCgICAgICAgICAf4WEUCIGGyEEQgAgASAGGyEDDAILIAMgCkKAgICAgIDA//8AhYRQDQEgASAJhFAEQCADIAqEQgBSDQIgASADgyEDIAIgBIMhBAwCCyADIAqEUEUN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BiAEIAFBAnRqKAIARQ0AC0F/QQEgAEEJSRshBwwFCwsgAEEgIAogByAMayIOIAsgCyAOSBsiE2oiByAPIA8gB0gbIgEgByAJECsgACAQIAoQJyAAQTAgASAHIAlBgIAEcxArIABBMCATIA5BABArIAAgDCAOECcgAEEgIAEgByAJQYDAAHMQKwwBCwtBACEHDAELQX8hBwsgCEHQAGokACAHC20BAn9BAEHMAEEBEBciAAR/IABCADcCACAAQgA3AhggAEEANgI8IABB//8DOwEUIABBADYCSCAAQgA3AkAgAEEGNgIoIABCADcCICAAQgA3AiwgAEIANwIIIABBADYCECAAQgA3AjQgAAVBAAsLEAAgACABIAJBAEEAELoBGgt8AQJ/IAAgAC0ASiIBQX9qIAFyOgBKIAAoAhQgACgCHEsEQCAAQQBBACAAKAIkEQMAGgsgAEEANgIcIABCADcDECAAKAIAIgFBBHEEQCAAIAFBIHI2AgBBfw8LIAAgACgCLCAAKAIwaiICNgIIIAAgAjYCBCABQRt0QR91C2kBAn8CQCAAKAIUIAAoAhxNDQAgAEEAQQAgACgCJBEDABogACgCFA0AQX8PCyAAKAIEIgEgACgCCCICSQRAIAAgASACa6xBASAAKAIoEQ8AGgsgAEEANgIcIABCADcDECAAQgA3AgRBAAtAAQF/IwBBEGsiBSQAIAUgASACIAMgBEKAgICAgICAgIB/hRAuIAAgBSkDADcDACAAIAUpAwg3AwggBUEQaiQACykBAX8jAEEQayICJAAgAiABNgIMQYjoASgCACAAIAEQhQEgAkEQaiQAC7cBAQR/AkAgAigCECIDBH8gAwUgAhDBAQ0BIAIoAhALIAIoAhQiBWsgAUkEQCACIAAgASACKAIkEQMADwsCQCACLABLQQBIDQAgASEEA0AgBCIDRQ0BIAAgA0F/aiIEai0AAEEKRw0ACyACIAAgAyACKAIkEQMAIgQgA0kNASABIANrIQEgACADaiEAIAIoAhQhBSADIQYLIAUgACABEBgaIAIgAigCFCABajYCFCABIAZqIQQLIAQLgwEBA38jAEEQayICJAAgAiABOgAPAkAgACgCECIDRQRAIAAQwQENASAAKAIQIQMLAkAgACgCFCIEIANPDQAgACwASyABQf8BcUYNACAAIARBAWo2AhQg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IAAgBiAEoKKhDwsgAUEDdCIBQcCIAmorAwAgACAGIASgoiABQeCIAmorAwChIAChoSIAmiAAIANCAFMbIQALIAAPCyAARBgtRFT7Ifk/IACmIANC////////////AINCgICAgICAgPj/AFYbC5IBAQN8RAAAAAAAAPA/IAAgAKIiAkQAAAAAAADgP6IiA6EiBEQAAAAAAADwPyAEoSADoSACIAIgAiACRJAVyxmgAfo+okR3UcEWbMFWv6CiRExVVVVVVaU/oKIgAiACoiIDIAOiIAIgAkTUOIi+6fqovaJExLG0vZ7uIT6gokStUpyAT36SvqCioKIgACABoqGgoAtGAQF/IwBBIGsiASQAAn8gACABQQhqEBEiAEUEQEE7IQBBASABLQAIQQJGDQEaC0HcnAIgADYCAEEACyEAIAFBIGokACAAC+EBAQN/IwBBIGsiBEIANwMYIARCADcDECAEQgA3AwggBEIANwMAIAEtAAAiAkUEQEEADwsgAS0AAUUEQCAAIQEDQCABIgNBAWohASADLQAAIAJGDQALIAMgAGsPCwNAIAQgAkEDdkEccWoiAyADKAIAQQEgAkEfcXRyNgIAIAEtAAEhAiABQQFqIQEgAg0ACyAAIQMCQCAALQAAIgJFDQAgACEBA0AgBCACQQN2QRxxaigCACACQR9xdkEBcUUEQCABIQMMAgsgAS0AASECIAFBAWoiAyEBIAINAAsLIAMgAGsLewECfwJAIAAoAgQiAyAAKAIIIgJIBEAgACgCACECDAELIAAgAkEBdEECIAIbIgM2AgggACAAKAIAQQQgAxAXIgI2AgAgAkUEQEEADwsgACgCBCEDCyACIANBAnRqIAE2AgAgACADQQFqNgIEIAEgASgCSEEBajYCSEEBCw4AIAAgABAcQQFqEJICCwkAIAAgARCTAgt7AQF/IwBBkAFrIgQkACAEIAA2AiwgBCAANgIEIARBADYCACAEQX82AkwgBEF/IABB/////wdqIABBAEgbNgIIIARCABA0IAQgAkEBIAMQtwEhAyABBEAgASAAIAQoAgQgBCgCeGogBCgCCGtqNgIACyAEQZABaiQAIAMLpQEBBX8jAEGAAmsiBCQAAkAgAkECSA0AIAEgAkECdGoiByAENgIAIABFDQAgBCEDA0AgAyABKAIAIABBgAIgAEGAAkkbIgUQ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AAsMAgsgAkEDTQ0AA0AgACABKAIANgIAIAFBBGohASAAQQRqIQAgAkF8aiICQQNLDQALCyACRQ0AA0AgACABLQAAOgAAIABBAWohACABQQFqIQEgAkF/aiICDQALCwuhBgIFfwR+IwBBgAFrIgUkAAJAAkACQCADIARCAEIAEEhFDQAgAyAEELoCIQcgAkIwiKciCUH//wFxIgZB//8BRg0AIAcNAQsgBUEQaiABIAIgAyAEECAgBSAFKQMQIgIgBSkDGCIBIAIgARDEASAFKQMIIQIgBSkDACEEDAELIAEgAkL///////8/gyAGrUIwhoQiCiADIARC////////P4MgBEIwiKdB//8BcSIHrUIwhoQiCxBIQQBMBEAgASAKIAMgCxBIBEAgASEEDAILIAVB8ABqIAEgAkIAQgAQICAFKQN4IQIgBSkDcCEEDAELIAYEfiABBSAFQeAAaiABIApCAEKAgICAgIDAu8AAECAgBSkDaCIKQjCIp0GIf2ohBiAFKQNgCyEEIAdFBEAgBUHQAGogAyALQgBCgICAgICAwLvAABAgIAUpA1giC0IwiKdBiH9qIQcgBSkDUCEDCyAKQv///////z+DQoCAgICAgMAAhCIKIAtC////////P4NCgICAgICAwACEIg19IAQgA1StfSIMQn9VIQggBCADfSELIAYgB0oEQANAAn4gCARAIAsgDIRQBEAgBUEgaiABIAJCAEIAECAgBSkDKCECIAUpAyAhBAwFCyALQj+IIQogDEIBhgwBCyAKQgGGIQogBCELIARCP4gLIQwgCiAMhCIKIA19IAtCAYYiBCADVK19IgxCf1UhCCAEIAN9IQsgBkF/aiIGIAdKDQALIAchBgsCQCAIRQ0AIAsiBCAMIgqEQgBSDQAgBUEwaiABIAJCAEIAECAgBSkDOCECIAUpAzAhBAwBCyAKQv///////z9YBEADQCAEQj+IIQEgBkF/aiEGIARCAYYhBCABIApCAYaEIgpCgICAgICAwABUDQALCyAJQYCAAnEhByAGQQBMBEAgBUFAayAEIApC////////P4MgBkH4AGogB3KtQjCGhEIAQoCAgICAgMDDPxAgIAUpA0ghAiAFKQNAIQQMAQsgCkL///////8/gyAGIAdyrUIwhoQhAgsgACAENwMAIAAgAjcDCCAFQYABaiQAC4IRAgV/DH4jAEHAAWsiBSQAIARC////////P4MhEiACQv///////z+DIQwgAiAEhUKAgICAgICAgIB/gyERIARCMIinQf//AXEhBwJAAkACQCACQjCIp0H//wFxIglBf2pB/f8BTQRAIAdBf2pB/v8BSQ0BCyABUCACQv///////////wCDIgpCgICAgICAwP//AFQgCkKAgICAgIDA//8AURtFBEAgAkKAgICAgIAghCERDAILIANQIARC////////////AIMiAkKAgICAgIDA//8AVCACQoCAgICAgMD//wBRG0UEQCAEQoCAgICAgCCEIREgAyEBDAILIAEgCkKAgICAgIDA//8AhYRQBEAgAyACQoCAgICAgMD//wCFhFAEQEIAIQFCgICAgICA4P//ACERDAMLIBFCgICAgICAwP//AIQhEUIAIQEMAgsgAyACQoCAgICAgMD//wCFhFAEQEIAIQEMAgsgASAKhFANAiACIAOEUARAIBFCgICAgICAwP//AIQhEUIAIQEMAgsgCkL///////8/WARAIAVBsAFqIAEgDCABIAwgDFAiBht5IAZBBnStfKciBkFxahAoQRAgBmshBiAFKQO4ASEMIAUpA7ABIQELIAJC////////P1YNACAFQaABaiADIBIgAyASIBJQIggbeSAIQQZ0rXynIghBcWoQKCAGIAhqQXBqIQYgBSkDqAEhEiAFKQOgASEDCyAFQZABaiASQoCAgICAgMAAhCIUQg+GIANCMYiEIgJChMn5zr/mvIL1ACACfSIEEDogBUGAAWpCACAFKQOYAX0gBBA6IAVB8ABqIAUpA4gBQgGGIAUpA4ABQj+IhCIEIAIQOiAFQeAAaiAEQgAgBSkDeH0QOiAFQdAAaiAFKQNoQgGGIAUpA2BCP4iEIgQgAhA6IAVBQGsgBEIAIAUpA1h9EDogBUEwaiAFKQNIQgGGIAUpA0BCP4iEIgQgAhA6IAVBIGogBEIAIAUpAzh9EDogBUEQaiAFKQMoQgGGIAUpAyBCP4iEIgQgAhA6IAUgBEIAIAUpAxh9EDogBiAJIAdraiEGAn5CACAFKQMIQgGGIAUpAwBCP4iEQn98IgpC/////w+DIgQgAkIgiCIOfiIQIApCIIgiCiACQv////8PgyILfnwiAkIghiINIAQgC358IgsgDVStIAogDn4gAiAQVK1CIIYgAkIgiIR8fCALIAQgA0IRiEL/////D4MiDn4iECAKIANCD4ZCgID+/w+DIg1+fCICQiCGIg8gBCANfnwgD1StIAogDn4gAiAQVK1CIIYgAkIgiIR8fHwiAiALVK18IAJCAFKtfH0iC0L/////D4MiDiAEfiIQIAogDn4iDSAEIAtCIIgiD358IgtCIIZ8Ig4gEFStIAogD34gCyANVK1CIIYgC0IgiIR8fCAOQgAgAn0iAkIgiCILIAR+IhAgAkL/////D4MiDSAKfnwiAkIghiIPIAQgDX58IA9UrSAKIAt+IAIgEFStQiCGIAJCIIiEfHx8IgIgDlStfCACQn58IhAgAlStfEJ/fCILQv////8PgyICIAxCAoYgAUI+iIRC/////w+DIgR+Ig4gAUIeiEL/////D4MiCiALQiCIIgt+fCINIA5UrSANIBBCIIgiDiAMQh6IQv//7/8Pg0KAgBCEIgx+fCIPIA1UrXwgCyAMfnwgAiAMfiITIAQgC358Ig0gE1StQiCGIA1CIIiEfCAPIA1CIIZ8Ig0gD1StfCANIAogDn4iEyAQQv////8PgyIQIAR+fCIPIBNUrSAPIAIgAUIChkL8////D4MiE358IhUgD1StfHwiDyANVK18IA8gCyATfiILIAwgEH58IgwgBCAOfnwiBCACIAp+fCICQiCIIAIgBFStIAwgC1StIAQgDFStfHxCIIaEfCIMIA9UrXwgDCAVIA4gE34iBCAKIBB+fCIKQiCIIAogBFStQiCGhHwiBCAVVK0gBCACQiCGfCAEVK18fCIEIAxUrXwiAkL/////////AFgEQCABQjGGIARC/////w+DIgEgA0L/////D4MiCn4iDEIAUq19QgAgDH0iECAEQiCIIgwgCn4iDSABIANCIIgiC358Ig5CIIYiD1StfSACQv////8PgyAKfiABIBJC/////w+DfnwgCyAMfnwgDiANVK1CIIYgDkIgiIR8IAQgFEIgiH4gAyACQiCIfnwgAiALfnwgDCASfnxCIIZ8fSESIAZBf2ohBiAQIA99DAELIARCIYghCyABQjCGIAJCP4YgBEIBiIQiBEL/////D4MiASADQv////8PgyIKfiIMQgBSrX1CACAMfSIOIAEgA0IgiCIMfiIQIAsgAkIfhoQiDUL/////D4MiDyAKfnwiC0Ig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URtFBEAgAUIZiKdB////AXFBgICA/gdyIQIMAQtBgICA/AchAiAFQv///////7+/wABWDQBBACECIAVCMIinIgRBkf4ASQ0AIANBEGogACABQv///////z+DQoCAgICAgMAAhCIFIARB/4F/ahAoIAMgACAFQYH/ACAEaxBTIAMpAwgiAEIZiKchAiADKQMAIAMpAxAgAykDGIRCAFKthCIFUCAAQv///w+DIgBCgICACFQgAEKAgIAIURtFBEAgAkEBaiECDAELIAUgAEKAgIAIhYRCAFINACACQQFxIAJqIQILIANBIGokACACIAFCIIinQYCAgIB4cXK+C8YBAgN/An4jAEEQayIDJAACfiABvCIEQf////8HcSICQYCAgHxqQf////cHTQRAIAKtQhmGQoCAgICAgIDAP3wMAQsgAkGAgID8B08EQCAErUIZhkKAgICAgIDA//8AhAwBCyACRQRAQgAMAQsgAyACrUIAIAJnIgJB0QBqECggAykDACEFIAMpAwhCgICAgICAwACFQYn/ACACa61CMIaECyEGIAAgBTcDACAAIAYgBEGAgICAeHGtQiCGhDcDCCADQRBqJAALEAAjACAAa0FwcSIAJAAgAAuNBQEFfwJAIAAoAjwiAigCmAEiBEF/TARAQdCQAkGSC0EUIgAQGBoMAQsgAi0AnwEEQEHQkAIgAkGAAWoiAEH/ASAAEBwiASABQf8BShsiABAYIQMgAigCfARAIAAgA2ohASAAQX9zQYACaiIAQQFIQf3/A0H9/wMgAigCACAEQRRsaigCBCICIAJBgHBxQYCwA0YbIAJB///DAEsbIgJB/wBKckUEQCABIAI6AAAgAUEBaiADayEADAMLAkAgAEECSCACQf8PSnIEfwJ/IABBA0ggAkH//wNKckUEQEEBIQQgASEAIAJBDHZBYHIMAQsgAEEESA0CIAEgAkESdkHwAXI6AAAgAUEBaiEAQQIhBCACQQx2QT9xQYB/cgshBSAAIAU6AAAgASAEaiEBIAJBBnZBP3FBgH9yBSACQQZ2QUByCyEAIAEgADoAACABIAJBP3FBgAFyOgABIAFBAmohAQsgASADayEADAILQf8BIAFMDQEgACADaiACKAIAIARBFGxqKAIEOgAAIABBAWohAAwBCyACLQCgASEDQdCQAiACQYABaiIAQf8BIAAQHCIAIABB/wFKGyIAEBghASADBEAgACABakGaCSAAQX9zQYACaiIDQQMgA0EDSBsiAxAYGiABIAAgA2oiAGogAigCACAEQRRsaigCACACKAIEIARBDGxqLQACaiIBIABBf3NBgAJqIgIgARAcIgEgASACShsiARAYGiAAIAFqIQAMAQsgACABaiACKAIAIARBFGxqKAIAIAIoAgQgBEEMbGotAAJqIgEgAEF/c0GAAmoiAiABEBwiASABIAJKGyIBEBgaIAAgAWohAAsgAEGAAkgEQCAAQdCQAmpBADoAAAsLgAEBAn8jAEGQAmsiBCQAIAQgBEGMAmo2AgggBCAEQQxqIgU2AgAgBCAFNgIEIAAgBCACIAMQkwEgASAEKAIAIgAgBCgCBCAAayICQf8HIAJBgAhJGyIBEBggAWpBADoAACAAIAVHBEAgABAWIAQoAgQgBCgCAGsaCyAEQZACaiQAC0QCAX8BfiABQv///////z+DIQMCfyABQjCIp0H//wFxIgJB//8BRwRAQQQgAg0BGkECQQMgACADhFAbDwsgACADhFALC7UCAwJ/AX4CfAJAAnwgAL0iA0IgiKdB/////wdxIgFBgOC/hARPBEAgAUGAgMCEBEkgA0IAU3JFBEAgAEQAAAAAAADgf6IPCyABQYCAwP8HTwRARAAAAAAAAPC/IACjDwsgAEQAAAAAAMyQwGVBAXMNAkQAAAAAAAAAACADQn9XDQEaDAILIAFB//+/5ANLDQEgAEQAAAAAAADwP6ALDwsgAEQAAAAAAAC4QqAiBL2nQYABaiIBQQR0QfAfcSICQZC5AWorAwAiBSAFIAAgBEQAAAAAAAC4wqChIAJBCHJBkLkBaisDAKEiAKIgACAAIAAgAER0XIcDgNhVP6JEAAT3iKuygz+gokSmoATXCGusP6CiRHXFgv+9v84/oKJE7zn6/kIu5j+goqAgAUGAfnFBgAJtEEEL2AECAX8BfkF/IQICQCAAQgBSIAFC////////////AIMiA0KAgICAgIDA//8AViADQoCAgICAgMD//wBRGw0AIAAgA0KAgICAgICA/z+EhFAEQEEADwsgAUKAgICAgICA/z+DQgBZBEAgAEIAVCABQoCAgICAgID/P1MgAUKAgICAgICA/z9RGw0BIAAgAUKAgICAgICA/z+FhEIAUg8LIABCAFYg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IAJBoAJqEBkLQcCXAkJ/NwMAQYCVAkGAlQIoAgBBAnI2AgAMOgtBkJcCKAIAKAIEDQACQEH4lAItAABBgAFxRQ0AQdicAi0AAEUEQCACQdSLATYC2AIgAkHUiwE2AtQCIAJB1IsBNgLQAkEAQfGxASACQdACahAZQdicAkEBOgAADAELIAJB1IsBNgLAAkEAQdeyASACQcACahAZC0H4lAJB+JQCKAIAQYABcjYCAEHIlgIoAgAhAUEAQTBBARAXIQACQCABBEAgACABKQIANwIAIAAgASkCKDcCKCAAIAEpAiA3AiAgACABKQIYNwIYIAAgASkCEDcCECAAIAEpAgg3AggMAQsgAEIANwIAIABCADcCKCAAQgA3AiAgAEIANwIYIABCADcCECAAQgA3AggLIABBADYCACAAQfSTAigCADYCCCAAQfiTAigCADYCDCAAQeyTAigCADYCECAAQfCTAigCADYCFEHIlgIgADYCAAw5C0HIlgJBADYCAAw4C0HIlgIoAgAhAEGQlwIoAgAoAgRFBEBBAEEwQQEQFyEBAkAgAARAIAEgACkCADcCACABIAApAig3AiggASAAKQIgNwIgIAEgACkCGDcCGCABIAApAhA3AhAgASAAKQIINwIIDAELIAFCADcCACABQgA3AiggAUIANwIgIAFCADcCGCABQgA3AhAgAUIANwIICyABQQA2AgBByJYCIAE2AgAgAUEBNgIEDDgLIABFDTcgACgCBEUNN0EAQTBBARAXIgEgACkCADcCACABIAApAig3AiggASAAKQIgNwIgIAEgACkCGDcCGCABIAApAhA3AhAgASAAKQIINwIIIAFBADYCAEHIlgIgATYCACABQQA2AgQMNwtB5JYCQQE2AgAMNgtB6JYCQQE2AgAMNQtB5JYCQQA2AgAMNAtB6JYCQQA2AgAMMwsgAkGQlwIoAgAiASgCDCIANgKIDCABQQEQjAEiBEUEQCABQZq0AUEAECIaDAILQfiUAkH4lAIoAgBBgAJyNgIAAkAgACwAACIDQVBqQQpPBEAgAC0AAUUNAQsgACACQYgMakEAECQiA0H/AUsNLyACKAKIDC0AAA0vCyADQQBBABCCASIAIAQ2AgwgACAEEBw2AhAgAEHslgIoAgA2AiBB7JYCIAA2AgAMMgtBkJcCKAIAIgAoAgwhAyAAQQEQ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BCEDIAFBADYCwAEgAUEANgKcASABQQA2AgQgASADNgIAIAFCADcDECABQgA3AzAgAUIANwNIIAEgAy8BEiIGNgIYIAMvARQhBSABIAQ2AlQgASACNgJQIAEgBDYCPCABIAI2AjggASAFNgIcIAFCADcDiAEgASACtyIHIAa4IgijOQNwIAFCADcDgAEgASAIIAejOQNgIAFBgP0ANgLYASABQgA3AwggASAEtyIHIAW4IgijOQN4IAEgCCAHozkDaCABIAAoAhg2AtwBIAAoAgghAgNAIAEgAjYCCCABIAMoAgAgAkECdGooAgA2AgQgASAAKAIcEM8BIAAoAgwiAyADKAIAQQFqIgI2AgAgACACNgIIIAIgACgCBCIDKAIESA0ACyABEM4BIAFB4AFqJABBAAu4AwEMfyABKAIwIgQoAhwgAC8BDiILayIJQQAgCUEAShshByAJIAQoAiQiDGoiBSAALwEKIgMgBSADSBshBQJAIAQoAhggAC8BDCINayIDIAQoAiAiDmoiBiAALwEIIgogBiAKSBsiCiADQQAgA0EASiIDGyIGSgRAIAogBmshCAwBCyAEKAIoIA5Bf2pBACADGyANa2ohBgsCfyAFIAdKBEAgBCgCLCEDIAUgB2sMAQsgBCgCLCIDIAxBf2pBACAJQQBKGyALa2ohB0EACyEFIAQoAighBCABIAM2AjggASAENgI0AkACQCAIQQFIIAVBAUhyDQAgACgCACIERQ0AQQAhAiAAQQBBBCAFQQFqEBciAzYCAANAIAMgAkECdGogBCACIAdqQQJ0aigCACAGajYCACAAKAIAIQMgAkEBaiICIAVIDQALIAMgBUECdGpBADYCACAEEBYgACAFOwEKIAAgCDsBCAwBCyACBEAgABB6DAELIAAoAgAQFiAAQQA2AgAgAEEANgIICyAAIAAvAQwgBiABKAI0a2o7AQwgACAALwEOIAcgASgCOGtqOwEOIAAoAgBBAEcL1QEBCn8gASgCHCACLwEOIglrIgZBACAGQQBKGyEEIAYgASgCJCIKaiIFIAIvAQoiAyAFIANIGyEFAkAgASgCGCACLwEMIgtrIgMgASgCICIMaiIHIAIvAQgiAiAHIAJIGyIHIANBACADQQBKIgMbIgJKBEAgByACayEIDAELIAEoAiggDEF/akEAIAMbIAtraiECCyAA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Qb7QACADECILIQEgA0EQaiQAIAEL5wEBA38jAEEwayIEJAAgABAcIQYgAgR/IAIQHAVBCgshBUHckwIoAgAQFkHckwJBAEEBIAUgBmpBA2oQFyIFNgIAAkAgAgRAIAQgAjYCBCAEIAA2AgAgBUG6zwAgBBA+DAELIANB6QdOBEBBkM4AIQZBBCECIANBkM4ASwRAA0AgAkEBaiECIAZBCmwiBiADSQ0ACwsgBCABNgIoIAQgAjYCJCAEIAA2AiAgBUHIzwAgBEEgahA+DAELIAQgATYCFCAEIAA2AhAgBUHAzwAgBEEQahA+C0HckwIoAgAhACAEQTBqJAAgAAveBAEDfyMAQZABayIEJAACQCABRSACRXINACABIAIQYCEBQdiTAigCAARAQQpBgOgBKAIAIgUQJSAFEEcaQdiTAkEANgIACyAEIAE2AoABIABB3c0AIARBgAFqECEgAigCHCIBBEAgBCABNgJwIABB7M0AIARB8ABqECELIAIvAQghASAEIAIvAQo2AmQgBCABNgJgIABB8c0AIARB4ABqECEgAi8BDCIBIAIvAQ4iBXIEQCAEIAU2AlQgBCABNgJQIABB980AIARB0ABqECELIAItABMEQEGBzgBBC0EBIAAQIxoLIAIuARQiAUEATgRAIAQgAUH//wNxNgJAIABBjc4AIARBQGsQIQtBCiAAECUCQCADQQRxRQ0AIAIoAjRFDQAgBCACKAIsNgIwIABBnc4AIARBMGoQIQsCQCACKAIgIgFFDQAgASgCCEEBSA0AQQAhBQNAQbXOAEEMQQEgABAjGiAFQQJ0IgYgASgCAGooAgAgASgCBCAGaigCACAAEJcBQQogABAlIAVBAWoiBSABKAIISA0ACwsCQCACKAIYIgFFDQAgBCABKAIANgIgIABBws4AIARBIGoQISADQQFxRQ0AIAAgAigCGEHezgAQ2QELIAItABJFBEAgAi8BEEUNAQtB5M4AQQNBASAAECMaIAItABIiAQRAIAQgAUECdEGAzwBqKAIANgIQIABB6M4AIARBEGoQIQsgAi8BECIBBEAgBCABQeQAbiICNgIAIAQgASACQeQAbGtB//8DcTYCBCAAQaDPACAEECELQQogABAlCyAEQZABaiQAC8sEAQR/IwBB4ABrIgQkAAJAIAFFDQBB2JMCKAIABEBBCkGA6AEo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b24gJTwlcyVzJT4AJTwlTyU+IGNhbiUsdCB0YWtlIGFuIGFyZ3VtZW50ACU8JU8lPiByZXF1aXJlcyBhIG5vbi1vcHRpb24gYXJndW1lbnQAJTwlTyU+IHJlcXVpcmVzIGFuIGFyZ3VtZW50AChubyBjdXJyZW50IG9wdGlvbiEpAABDTFAgaW50ZXJuYWwgZXJyb3I6IG1vcmUgdGhhbiAxIG9wdGlvbiBoYXMgc2hvcnQgbmFtZSAlPCVjJT4AQ0xQIGludGVybmFsIGVycm9yOiAxLWNoYXIgbG9uZyBuYW1lIGNvbmZsaWN0cyB3aXRoIHNob3J0IG5hbWUgJTwlYyU+AENMUCBpbnRlcm5hbCBlcnJvcjogZHVwbGljYXRlIGxvbmcgbmFtZSAlPCVzJT4AJTwlTyU+IGV4cGVjdHMgYSBub25uZWdhdGl2ZSBpbnRlZ2VyLCBub3QgJTwlcyU+ACU8JU8lPiBleHBlY3RzIGFuIGludGVnZXIsIG5vdCAlPCVzJT4AJTwlTyU+IGV4cGVjdHMgYSByZWFsIG51bWJlciwgbm90ICU8JXMlPgB5ZXMAdHJ1ZQBubwBmYWxzZQAlPCVPJT4gZXhwZWN0cyBhIHRydWUtb3ItZmFsc2UgdmFsdWUsIG5vdCAlPCVzJT4AbWluX21hdGNoID4gMABhcmdjbXAAYW1iaWd1b3VzAGludmFsaWQAb3B0aW9uICU8JVYlPiBpcyAlcwBhbnkgaW50ZWdlcgAwAG5leHRfYXJndW1lbnQAbl9vcHRpb25fY2hhcnMgPCBDbHBfT3B0aW9uQ2hhcnNTaXplAHNldF9vcHRpb25fdGV4dABsZW4gPiAwAGZpbmRfbG9uZwBjbGktPmNvdWxkX2JlX3Nob3J0AHN3aXRjaF90b19zaG9ydF9hcmd1bWVudAAobnVsbCkAXCUwM28AJWQA4oCYACcA4oCZAG91dCBvZiBtZW1vcnkKAChQb3NzaWJpbGl0aWVzIGFyZQAgYW5kIAAsIGFuZCAALCBhbmQgb3RoZXJzAC4pCgAlczogT3V0IG9mIG1lbW9yeSwgZ2l2aW5nIHVwCgAlczogT3V0IG9mIG1lbW9yeSwgZ2l2aW5nIHVwIChodWdlIGFsbG9jYXRpb24pCgBnaWZmdW5jLmMAZ2lmcmVhZC5jAGltYWdlIGNvcnJ1cHRlZCwgbWluX2NvZGVfc2l6ZSB0b28gYmlnAGltYWdlIGNvcnJ1cHRlZCwgbWluX2NvZGVfc2l6ZSB0b28gc21hbGwAaW1hZ2UgY29ycnVwdGVkLCBjb2RlIG91dCBvZiByYW5nZQAobm90IHJlcG9ydGluZyBtb3JlIGVycm9ycykAbWlzc2luZyAlbGQgJXMgb2YgaW1hZ2UgZGF0YQBwaXhlbABwaXhlbHMAJWxkIHN1cGVyZmx1b3VzIHBpeGVscyBvZiBpbWFnZSBkYXRhAHVua25vd24gYmxvY2sgdHlwZSAlZCBhdCBmaWxlIG9mZnNldCAldQB0cmFpbGluZyBnYXJiYWdlIGFmdGVyIEdJRiBpZ25vcmVkAGltYWdlIGhhcyB6ZXJvIHdpZHRoIGFuZC9vciBoZWlnaHQAaW1hZ2UgcG9zaXRpb24gYW5kL29yIGRpbWVuc2lvbnMgb3V0IG9mIHJhbmdlAGJhZCBncmFwaGljIGV4dGVuc2lvbgBORVRTQ0FQRTIuMABBTklNRVhUUzEuMABiYWQgbG9vcCBleHRlbnNpb24AZ2lmdW5vcHQuYwBtYXB0byA+PSAwICYmIG1hcHRvIDwgbmRlc3Rjb2wAbWVyZ2UuYwBtZXJnZV9jb2xvcm1hcF9pZl9wb3NzaWJsZQBHSUZfQ09MT1JFUSgmZGVzdGNvbFttYXB0b10sICZzcmNjb2xbaV0pAHRvbyBtYW55IGNvbG9ycywgdXNpbmcgbG9jYWwgY29sb3JtYXBzCiAgKFlvdSBtYXkgd2FudCB0byB0cnkgJTwtLWNvbG9ycyAyNTYlPi4pAHRvbyBtYW55IGNvbG9ycywgdXNpbmcgbG9jYWwgY29sb3JtYXBzAGRlc3QtPmdsb2JhbABtZXJnZV9zdHJlYW0Ac29tZSBjb2xvcnMgdW5kZWZpbmVkIGJ5IGNvbG9ybWFwAGMtPmhhc3BpeGVsID09IDIgJiYgZm91bmRfdHJhbnNwYXJlbnQgPCAyNTYAbWVyZ2VfaW1hZ2UAZGVzdGNtLT5uY29sIDw9IDI1NgBvcHRpbWl6ZS5jAC4vb3B0dGVtcGxhdGUuYwAlZCBjb2xvcnMgcmVxdWlyZWQgaW4gYSBmcmFtZSAoMjU2IGlzIG1heCkAYm91bmRzLT50b3AgPCBzY3Jl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CgYKBQkGCQIJBA0EDQMIAwoBDQYLAQwDDgUPAwgDCAMMBAsDDQMIBAkGDAQLBgsDCgAMAQsHDAQMBAsFAQ4ACgIJAgsBCAEIAwkEDwcNBw4HDgAKAA4HCQALAQ8ACwALAw8HDgYKBQgACwAIBwsADwAMAQ0GCQAPBAkBCAoFDwYNBg4HDgQMBQ8GCgILAwoDCwMNBgsFDgMOBggFDgUOBwoHCwMNAw0CDgQPBQ8DCAQLBAkFDAMIBQ8CDQUDCgIJBQ8ECQALBwsADgULBQ4HDwYJAAkACAQOBgwACwQPBQgGCgYLBgoDDAUJBgkFDAYMBw4ADgIPBQgCCgMJDgcOBwgBDAIOBA8DCwUMAggACgMMAQ0FDgULAAsDDQcIAQwDDwMOAg8DCwYPAQwBCQMJAwsDCwcLBQwADgYNBgUKBgwDDwMIBwoADwcKBQgBDgUKBw4CDgAOAQgDCAUKBQ8ACAYOAAgCDwQLBgoACAUJBA4BDwMKAQ8ADwUIBw0PAwgACQYMBg8ACwQOAw8DCgUMAwoDCQYJBQ0FDwYOAAkADAQLAw8ECwYPAg8DDgQNAgsBCAUMBwkECAUMAgsAAA0FCwUOBQ8HCQUIAgoDDwYJAwwFCwYOAw0GDQAJAQsDCAMJBAkGDgcIBgwHDQYJBQ0DDwUOAw8EDAQMAg0ADwoHDgEIAgoCDAANAQ0FCwYMAwkGDwEJAQoGCgMPBg8FDwcMBgwACQMMAwsDCAMNAgkDCQYKAgsGCQAJAQkGCgQDCgQJBAkGDQMPAAgECgAOBQ8HDwIMBwoFDwcIAAkACAYOBA8CDwEPAAkFDgAMBwoGCAYLAA0HDgENAgoFCQAODgYNAQwDCAMJBgwEDwIIBQkBCgEIBQ8ACAIMAwwFDAULAgoCCAUKBQwECQMIBA0BDwAMAwgECgMJBQ0FDQMLBAQMAwoGCQAOAAgBCQEJBg8ACgIJBgoHCgIOBAgADQQIAQsGDgcOAAgEDgcOBAkCDAAMAwgFCQYOAAkCDgUKAQ8KAg8GDgMLBg8EDwQNBQsDDAQOBQwADQMIBg8CCgYNAgwGCAMKAw4FCAAKAw0CCQYKBg8EDQIIAw4GCwcNAAoFAg0BCQUKAw8GCgAPBA8EDwYJAA4BCQYMAAsFCQAOBQ4GCQMLBwsBDwEJAw0FDAAJAgkGDQIJBg0HCwcIAA0DCQkGDQYNAAgFDgILBwsCCwIMAwsEDQQKAw8FDQALBgoADQMPBw4DCAQMBgkGCgMOBQ0FCwMNBggCDgMPAwsEDAYECgcLAQoCDgcOAA4EDwAIAA8FDwcLBw4GDAAIAQ8BDgIIAAsECAULAQ8ADAcOAAsECAIIAA4CDgQJBAoHDwUODgANAg4FCwUKAgoGCwMMBQsHCwEMAwsDCQMMBAsGCQUOBQwHDgIMAQgECwcKAw4EDgAOBQsHCwUPAQ4ACgMKAAUMBwoHCwAOBQ4BDgMIAA8ACQUJAQgGDwYPBw0HCQQLAAoGCgcMBw8ACQcOAgsADAcLBw0ACQYOAgsBDwAIAAoKAw8DDwMIBAsDCwYPBgsFDAUNAA8ECAELAwoDDwMOAQ4GDQMLAwsDDQYIAwwFCAQNAwgCDQQIAw4HCAUOBA8FAwkACgAMAwsHCgYIBwwACwEIBQwFDAcLAg4ACgAMAA8CCQUJAA8EDgYJBwsGCgAJAQkADgQMBQkGCgQLBgwFDAwGDwQIBA8HDwMOAAkDDQUOBQsBCQAPAwgHDAcIBQkEDAYMAQoGCQAPAw4ADwMNBQ8FCQYKAA4ADQEPAQgDCAECCAcPAAsBDAEMAA8ACwINAQoFCAcNBgoACwQMBwoBCQEJAAwCCwcPAQsACQIIBAwCDAYOBA4DDQMPAQ4EDwYMDQYLAwwECAQJBAkFDAYKBQ4HDgMKAg0DDgUIAg0BDwYPBAgEDwUKAQ4FDAQNBQsBCQUJAwkACgcKBwsGCgMJAAMPBQgBCQUIBA0GCAQPBgoGDgcLAAkBDAAIBgwGCgMMBw0HCwMIAA0HDAAPBAwFCAQPBQoADwMPAQgBDwQOBg8KBg4ADQQNAQkBDQMLAgwBCAMMAw4GCAQPBAgDDwEJBgsCDgMNBwoECgMIBwsCDAELAQ4DCQYJBw0FCwcKAgkDAQkADgcMBw4FCQYKBg4GDwEOBwoDDAAOBQkGCAEMAA0CCAQJBg8ADgQKBwsFDgIIBA8DCAcNAQkADwAOBQ4ADg8ECgYLAQoCDgMPAQoDCgMIBAwDCgYJBg4CDAMLBAkGDAUPAAoDCAQOAQ4DCwIMBwsCDAYKAQ0ECwQKBQsCCwcACAELBAgECgYLAwoGCgYIAQsBDwcPBgkBCQcIAA4FDAMNBAwADwUMAQwHCQYIAw8ADQYPBw8HDQIPAQ4CDwAIDAUNBQ8BDAEPAQ4GDgIOAg4GCwYLAwwCDQYPAwkFCAIIBQkBCQQJAggEDQENAAsGCwYJAgsDCgEKBgkGCwcPBQUMAAkFCAUJAAoCDQQIBQ4CCQIPBAgCCAAMBgwACgUPBAkDDQAJBA8BDgEJAAkCDgYMAA8HCQIJAA8GCgMPAw0JAQ8FDAMOAA8HCAUOAQsBDQYKBw0ADgUKBwsDDwYLAQwCCAQNBQoCCgYNBQ0ECgUJAwgEDAEMBQsGDgMLBwsHAgsEDAcIAw8DCwQLBwoBCgIKAAsEDAAKAQgHCwEKAQ8HCgILAQkGDgILAQ4EDAINAQkFCAcLBwoHDwQNAwoBCw0FCAAPAwsGDAcPAw8BDwQOBQ0GCAEPBg0FDAIPBAkEDwMOBg4FCQMMBgsFCAIJBQwFDwENAw4CCAAIAAwHDwUADgEIAggCDwIJBgwADAcMBw0ADwYOBQsBDAUIBQgBDgAKBAwGCQYIAAkADwQPBQ0BDwUMBwoGDgQJBg8ADwcNCgQNBQ0FCwUMBQkDCQQIAwkDCgYLAQ8CCAUPAQ0CCwYOBggCDwMOAw0GCQYJAAoCCgcLAQ8DCQMNAwoDCQQKAQQLBwoCDgQPAw8CDwcKAg4BCAAPAggBDAINAQgHDAYLAQoECwIPAA0ADAcLBQwHCAYPBAwHCgYKAAoACwQMBwoNAg4CCgcLAQsHCwcMAwsHDQQLBgwFCwYKBw0ECwMPAw4EDwMIBQoHCgYPAwkDDwELAwkADwEPAw8EDQUIAw8DAwkBDAQOAAsHDwELAw4ACwUKAgoCCAYOBwsACgcOBw8GCQYJAQwHCQQIBw0ADQYMBggBCQEPBAwADAQKAA0ADA0FCgYJAQ0GCwAOBwsHDgUPAg0FDwQJAg0DDgcKAwoDDAMMAggFDwMNAwsDCgQJAw8BDgQLBgoDCAQNAAoECAUFCAMNBA4BDQcJAg4EDgQMBwoGCgUMAgsGDAcNBAsCCwMIBQ8CCgEJAgwADAAKAQwACQcKAA8ECQAIAQ4EDgQNDAIIBgoACAUNAwgFCgMLAg8ADQMIAg8GCQEIAw4BDwUOBwgADAYPBQgFCQQPBQgFDwQMAwkGDAMNBQsHCgEIAwQPAgsCCgYLAw4HDwAKAA4DDAQIBwkDCwANAgwCDQUIBQgCCwQMAgoHCAYKBwwHCwAPBwgHDwAJAgwGDQAJBAkIAwwFDwUNAQgHCAMMBQkFCQYOAQwDDwcKBwgFCAUPAA0BDgcJAQ4HDQIMAwgBDQMIBAwACwMMBQsFCQMMBg4CBQ0CCAYMBwoFDgQLAgsCDQINBQoFCQAKBw0EDwIJAQkFCQYKBAwFDAQKAw4DDwEIBAwFCAUOBwsHDwULAg0BCQoADQYKAg8DCAEMAg4GCAUKBw0BDQEMBwkBCQIMBQwEDAMMAgkACAEPAQoHCgYMBAsBDgILAA4BCQIMAggFDQUGCgcLAAkDCQULAAgADQINBA0FCQQIAggACgAOBgkGCQQOBwkACwcKBwsHDgQOBQ8ECAQLBQ4ACAEOBw4CCwcNDAMNAw4FDwYMAA8ECwUJBQkCDgEMAQ0FDwQLBwwBDQIIAQwADwYOAg4DCgELAwsADAEPAgsBDAQJBAoCDQYKAgIIBAgECQAJAg8FCQYLBw4ACQIMAggACgEJBwgCCQELAgsCCAEJAQsHDQYLAQsACQINBA4BDwIIBw8ADQYJBA0NBQ0BDgAMBgkGDAANAAsDDQYLBwwFDgYOBQ8DDQYOBw8GDwUNBA4FCAIOAw4GDgUKBgoCCQUPBQsBCAUNAwsCAggGCAAJAQ8ACwQPBwgECAENBwsBDQUPAQ8CCQANBQwDDAIIAQoBDQUPAwkDCQIMBQ4GDQEJBgkBCAQPBwoHDw4FDgMMBAoHDAcIAgwBDQILBA0DCAUIAQoHDAYJBQgACAcOBQ0GCAQIAgwGDQUIBwgDCgMNBAwBDQQLAQ4DCAECDQYKAAkBDwAMBAsCCQAJAA0BCAALBQkGDQIPAgwHDAYPAg4BDQEOBAsCDgEJAA8BDAUOBg0CDwMJAQ8HCAEOCwcNAw8GCAQIBA4CDgYNBgsEDgQPBA4DCgIKBQkGCQMJAQsGCQQIBA8ACAQNBAkECQUJAwoCCQUMBggEDAALBAQKBA0BDAcIAA0EDAINAQ4HDwMIBwwDCgQJBAsHCAILAgoADAEOBg4HDQcLAwoACgQJAw0ADQcIBwkHCwIIAQ4PAAsBCQYPAwoHCQEJBwoHCgEMBQgBDwcNAwwCDQIOBw4FCgQIBAsBCgMOAA4GDgUNAggHCgcNAg4CDQIOBQsGBwsFDQELBwgFDgQNAQ4FCgIPBA0HCwcKAQgFCQQMBwoBDQcNBwsADgUOAg4EDAQNBw0HCAIOAg0FCQUJAggBCgwACAINBAwBCwEKAQoEDAILBQgBDwMOAQ0EDgIJAgwCCAQIAgwDCgYLAAsHCgEJAgoADQELBwoGDQEMAQwGDgcCDgQPBw4FCAQNAgoEDQANAQsBDAcMBg0EDQQNAgwCDQENBwoCCwIKBw8HCwUNAggCDgQJAg4ACAEIBwoFDwYOCwcKAgsBDQALAQ8HCAEJBA0ECAQIAwoACQAJAgkHCQYKBw0BDQcOBgsDDAIIAgwFCwUMAgoFDgQMBA0CCQEKAAIMAA0HDQIMBAgBDAQNBgsHDQcNAQkHCgIKAQkCCgELBgkEDQIKAAoCDgANBwoHCgAMAAkADQINAQkADwIOAg0LBwgECgIKBwwBCwcIAg0BCgAKAg0GDgAOBw0GDgUNBA8BCgINBw0HCQQJBg0DDQMIBA0ECgYKBQwECgcLBgkGBA4GCwcNBgoECAQLBggFDQcOBw4BCQAMAQkBDAQOBwoEDQcNBwsECgELBw0EDAEKBAwCCAIMAgoCDAEMBAwCDAgCDQIIAQ0BDAEMAgwCCwEJAgsDDAQIBAwECgYKAQ0CCwIKAQwADgIOBAkCCAENBAgADAQLBgwGCwcKBwsCCgdkaWFnNDUAZGlhZ29uYWwAQZDGAAvkCAgIQAIQIDA4KBgIACQ0PCwcDAQUMTkpGQkBESE9LR0NBRUlNSoaCgISIjI6Hg4GFiY2Pi4LAxMjMzsrGwcXJzc/Lx8PaGFsZnRvbmUAaGFsZgB0cmloYWxmdG9uZQB0cmloYWxmAHNxaGFsZnRvbmUAc3FoYWxmAHNxdWFyZWhhbGZ0b25lAHRyaXZpYWwgYWRhcHRpdmUgcGFsZXR0ZSAob25seSAlZCBjb2xvcnMgaW4gc291cmNlKQAAGQAAABoAAAAbAAAAcGxhbnBvcyA9PSBucGxhbgBwbGFuX2Zyb21fY3BsYW4AKm5ld19uY29sIDwgbmV3X2NtLT5jYXBhY2l0eQB0cnlfYXNzaWduX3RyYW5zcGFyZW5jeQAqbmV3X25jb2wgPT0gMjU2ACh1bnNpZ25lZCkgaSA8ICh1bnNpZ25lZCkga2QzLT5uaXRlbXMALi9rY29sb3IuaABrZDNfZGlzYWJsZQBrZDMtPmRpc2FibGVkIDwgMCB8fCBrZDMtPmRpc2FibGVkID09IGkAZ2lmc2ljbGUAVXNhZ2U6ICVzIFtPUFRJT04gfCBGSUxFIHwgRlJBTUVdLi4uClRyeSAnJXMgLS1oZWxwJyBmb3IgbW9yZSBpbmZvcm1hdGlvbi4KACdHaWZzaWNsZScgbWFuaXB1bGF0ZXMgR0lGIGltYWdlcy4gSXRzIG1vc3QgY29tbW9uIHVzZXMgaW5jbHVkZSBjb21iaW5pbmcKc2luZ2xlIGltYWdlcyBpbnRvIGFuaW1hdGlvbnMsIGFkZGluZyB0cmFuc3BhcmVuY3ksIG9wdGltaXppbmcgYW5pbWF0aW9ucyBmb3IKc3BhY2UsIGFuZCBwcmludGluZyBpbmZvcm1hdGlvbiBhYm91dCBHSUZzLgoKVXNhZ2U6ICVzIFtPUFRJT04gfCBGSUxFIHwgRlJBTUVdLi4uCgoAUmVwb3J0IGJ1Z3MgdG8gPGVrb2hsZXJAZ21haWwuY29tPi4KVG9vIG11Y2ggaW5mb3JtYXRpb24/IFRyeSAnJXMgLS1oZWxwIHwgbW9yZScuCgAqICVzICVkIGltYWdlJXMKADxzdGRpbj4AAHMAICBsb2dpY2FsIHNjcmVlbiAlZHglZAoAICBnbG9iYWwgY29sb3IgdGFibGUgWyVkXQoAICB8ACAgYmFja2dyb3VuZCAlZAoAICBlbmQgY29tbWVudCAAICBsb29wIGZvcmV2ZXIKACAgbG9vcCBjb3VudCAldQoAICBleHRlbnNpb25zICVkCgAgICsgaW1hZ2UgIyVkIAAjJXMgACVkeCVkACBhdCAlZCwlZAAgaW50ZXJsYWNlZAAgdHJhbnNwYXJlbnQgJWQAICAgIGNvbXByZXNzZWQgc2l6ZSAldQoAICAgIGNvbW1lbnQgACAgICBsb2NhbCBjb2xvciB0YWJsZSBbJWRdCgAgICAgfAAgICAAIGRpc3Bvc2FsICVzAEGAzwALwUQ2KwAAOysAAEArAABLKwAAVCsAAFYrAABYKwAAWisAACBkZWxheSAlZC4lMDJkcwBzdXBwb3J0LmMAJXMuJXMAJXMuJTAzZAAlcy4lMCpkAGZyYW1lIHNwZWNpZmljYXRpb25zIG11c3Qgc3RhcnQgd2l0aCAjAG5vIGZyYW1lIG5hbWVkICU8IyVzJT4AZnJhbWUgJTwjJXMlPiBvdXQgb2YgcmFuZ2UsIGltYWdlIGhhcyAlZCBmcmFtZXMAaW52YWxpZCBkaW1lbnNpb25zICU8JXMlPiAod2FudCBXeEgpAGludmFsaWQgcG9zaXRpb24gJTwlcyU+ICh3YW50ICdYLFknKQBpbnZhbGlkIHNjYWxlIGZhY3RvciAlPCVzJT4gKHdhbnQgWHhZKQBpbnZhbGlkIHJlY3RhbmdsZSAlPCVzJT4gKHdhbnQgWDEsWTEtWDIsWTIgb3IgWDEsWTErV3hIADAxMjM0NTY3ODlBQkNERUZhYmNkZWYAaW52YWxpZCBjb2xvciAlPCVzJT4gKHdhbnQgI1JHQiBvciAjUlJHR0JCKQBpbnZhbGlkIGNvbG9yICU8JXMlPgAlPCVPJT4gdGFrZXMgdHdvIGNvbG9yIGFyZ3VtZW50cwAtAHJiACVzAGZpbGUgbm90IGluIEdJRiBmb3JtYXQAY2FuJSx0IHVzZSBhcyBwYWxldHRlIChubyBnbG9iYWwgY29sb3IgdGFibGUpAHRoZXJlIHdlcmUgZXJyb3JzIHJlYWRpbmcgdGhpcyBHSUYAZW1wdHkgb3V0cHV0IEdJRiBub3Qgd3JpdHRlbgBodWdlIEdJRiwgY29uc2VydmluZyBtZW1vcnkgKHByb2Nlc3NpbmcgbWF5IHRha2UgYSB3aGlsZSkAc3JjaS0+cmVmY291bnQgPiAxAG1lcmdlX2ZyYW1lX2ludGVydmFsACVzOiVzJXMgZmF0YWwgZXJyb3I6IAAlczolcyVzIHdhcm5pbmc6IAAlczolcyVzIAA6ACUuKnMlLipzACAgICAAICUzZDogIyUwMlglMDJYJTAyWABcYQBcYgBcZgBcbgBccgBcdABcdgBcXABcMDAwAFwlMDNvACAgZXh0ZW5zaW9uICVkOiAAYXBwICcAJyVjJyAoMHglMDJYKQAweCUwMlgAIGF0IGVuZAAgYmVmb3JlICMlZAAgcGFja2V0aXplZAAgICAgJTA4eDogACUwMnggICAAJTAyeCUwMnggACAgICAgAG5vbmUAYXNpcwBiYWNrZ3JvdW5kAHByZXZpb3VzADQANQA2ADcAJWcgJWcgJWcAMDEyMzQ1Njc4OWFiY2RlZkFCQ0RFRgAlMXglMXglMXgAJTJ4JTJ4JTJ4AG1heGltdW0gMjU2IGNvbG9ycyBhbGxvd2VkIGluIGNvbG9ybWFwAGZpbGUgbm90IGluIGNvbG9ybWFwIGZvcm1hdABmMSA+PSAwICYmIGYyIDwgZnNldC0+Y291bnQAbWVyZ2VyX2ZsYXR0ZW4AY3JvcHBpbmcgZGltZW5zaW9ucyBkb24lLHQgZml0IGltYWdlAHRyYW5zcGFyZW50ACVzIGNvbG9yIG91dCBvZiByYW5nZQAlcyBjb2xvciBub3QgaW4gY29sb3JtYXAAZGVzdC0+bmltYWdlcyA+IDAAZml4X3RvdGFsX2Nyb3AAaXJyZWxldmFudCBiYWNrZ3JvdW5kIGNvbG9yCiAgKFRoZSBiYWNrZ3JvdW5kIHdpbGwgYXBwZWFyIHRyYW5zcGFyZW50IGJlY2F1c2UgIHRoZSBmaXJzdCBpbWFnZSBjb250YWlucyB0cmFuc3BhcmVuY3kuKQBpcnJlbGV2YW50IGJhY2tncm91bmQgY29sb3IAaW5wdXQgaW1hZ2VzIGhhdmUgY29uZmxpY3RpbmcgYmFja2dyb3VuZCBjb2xvcnMKICAoVGhpcyBtZWFucyBzb21lIGFuaW1hdGlvbiBmcmFtZXMgbWF5IGFwcGVhciBpbmNvcnJlY3QuKQBpbnB1dCBpbWFnZXMgaGF2ZSBjb25mbGljdGluZyBiYWNrZ3JvdW5kIGNvbG9ycwBNb2RlIG9wdGlvbnM6IGF0IG1vc3Qgb25lLCBiZWZvcmUgYW55IGZpbGVuYW1lcy4KICAtbSwgLS1tZXJnZSAgICAgICAgICAgICAgICAgICBNZXJnZSBtb2RlOiBjb21iaW5lIGlucHV0cywgd3JpdGUgc3Rkb3V0LgogIC1iLCAtLWJhdGNoICAgICAgICAgICAgICAgICAgIEJhdGNoIG1vZGU6IG1vZGlmeSBpbnB1dHMsIHdyaXRlIGJhY2sgdG8KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzYW1lIGZpbGVuYW1lcy4KICAtZSwgLS1leHBsb2RlICAgICAgICAgICAgICAgICBFeHBsb2RlIG1vZGU6IHdyaXRlIE4gZmlsZXMgZm9yIGVhY2ggaW5wdXQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25lIHBlciBmcmFtZSwgdG8gJ2lucHV0LmZyYW1lLW51bWJlcicuCiAgLUUsIC0tZXhwbG9kZS1ieS1uYW1lICAgICAgICAgRXhwbG9kZSBtb2RlLCBidXQgd3JpdGUgJ2lucHV0Lm5hbWUnLgoAR2VuZXJhbCBvcHRpb25zOiBBbHNvIC0tbm8tT1BUSU9OIGZvciBpbmZvIGFuZCB2ZXJib3NlLgogIC1JLCAtLWluZm8gICAgICAgICAgICAgICAgICAgIFByaW50IGluZm8gYWJvdXQgaW5wdXQgR0lGcy4gVHdvIC1JJ3MgbWVhbnMKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub3JtYWwgb3V0cHV0IGlzIG5vdCBzdXBwcmVzc2VkLgogICAgICAtLWNvbG9yLWluZm8sIC0tY2luZm8gICAgIC0taW5mbyBwbHVzIGNvbG9ybWFwIGRldGFpbHMuCiAgICAgIC0tZXh0ZW5zaW9uLWluZm8sIC0teGluZm8gLS1pbmZvIHBsdXMgZXh0ZW5zaW9uIGRldGFpbHMuCiAgICAgIC0tc2l6ZS1pbmZvLCAtLXNpbmZvICAgICAgLS1pbmZvIHBsdXMgY29tcHJlc3Npb24gaW5mb3JtYXRpb24uCiAgLVYsIC0tdmVyYm9zZSAgICAgICAgICAgICAgICAgUHJpbnRzIHByb2dyZXNzIGluZm9ybWF0aW9uLgAgIC1oLCAtLWhlbHAgICAgICAgICAgICAgICAgICAgIFByaW50IHRoaXMgbWVzc2FnZSBhbmQgZXhpdC4KICAgICAgLS12ZXJzaW9uICAgICAgICAgICAgICAgICBQcmludCB2ZXJzaW9uIG51bWJlciBhbmQgZXhpdC4KICAtbywgLS1vdXRwdXQgRklMRSAgICAgICAgICAgICBXcml0ZSBvdXRwdXQgdG8gRklMRS4KICAtdywgLS1uby13YXJuaW5ncyAgICAgICAgICAgICBEb24ndCByZXBvcnQgd2FybmluZ3MuCiAgICAgIC0tbm8taWdub3JlLWVycm9ycyAgICAgICAgUXVpdCBvbiB2ZXJ5IGVycm9uZW91cyBpbnB1dCBHSUZzLgogICAgICAtLWNvbnNlcnZlLW1lbW9yeSAgICAgICAgIENvbnNlcnZlIG1lbW9yeSBhdCB0aGUgZXhwZW5zZSBvZiBzcGVlZC4KICAgICAgLS1tdWx0aWZpbGUgICAgICAgICAgICAgICBTdXBwb3J0IGNvbmNhdGVuYXRlZCBHSUYgZmlsZXMuCgBGcmFtZSBzZWxlY3Rpb25zOiAgICAgICAgICAgICAgICNudW0sICNudW0xLW51bTIsICNudW0xLSwgI25hbWUKCkZyYW1lIGNoYW5nZSBvcHRpb25zOgogIC0tZGVsZXRlIEZSQU1FUyAgICAgICAgICAgICAgIERlbGV0ZSBGUkFNRVMgZnJvbSBpbnB1dC4KICAtLWluc2VydC1iZWZvcmUgRlJBTUUgR0lGUyAgICBJbnNlcnQgR0lGUyBiZWZvcmUgRlJBTUVTIGluIGlucHV0LgogIC0tYXBwZW5kIEdJRlMgICAgICAgICAgICAgICAgIEFwcGVuZCBHSUZTIHRvIGlucHV0LgogIC0tcmVwbGFjZSBGUkFNRVMgR0lGUyAgICAgICAgIFJlcGxhY2UgRlJBTUVTIHdpdGggR0lGUyBpbiBpbnB1dC4KICAtLWRvbmUgICAgICAgICAgICAgICAgICAgICAgICBEb25lIHdpdGggZnJhbWUgY2hhbmdlcy4KAEltYWdlIG9wdGlvbnM6IEFsc28gLS1uby1PUFRJT04gYW5kIC0tc2FtZS1PUFRJT04uCiAgLUIsIC0tYmFja2dyb3VuZCBDT0wgICAgICAgICAgTWFrZSBDT0wgdGhlIGJhY2tncm91bmQgY29sb3IuCiAgICAgIC0tY3JvcCBYLFkrV3hILCAtLWNyb3AgWCxZLVgyLFkyCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ3JvcCB0aGUgaW1hZ2UuCiAgICAgIC0tY3JvcC10cmFuc3BhcmVuY3kgICAgICAgQ3JvcCB0cmFuc3BhcmVudCBib3JkZXJzIG9mZiB0aGUgaW1hZ2UuCiAgICAgIC0tZmxpcC1ob3Jpem9udGFsLCAtLWZsaXAtdmVydGljYWwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBGbGlwIHRoZSBpbWFnZS4AICAtaSwgLS1pbnRlcmxhY2UgICAgICAgICAgICAgICBUdXJuIG9uIGludGVybGFjaW5nLgogIC1TLCAtLWxvZ2ljYWwtc2NyZWVuIFd4SCAgICAgIFNldCBsb2dpY2FsIHNjcmVlbiB0byBXeEguCiAgLXAsIC0tcG9zaXRpb24gWCxZICAgICAgICAgICAgU2V0IGZyYW1lIHBvc2l0aW9uIHRvIChYLFkpLgogICAgICAtLXJvdGF0ZS05MCwgLS1yb3RhdGUtMTgwLCAtLXJvdGF0ZS0yNzAsIC0tbm8tcm90YXRlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUm90YXRlIHRoZSBpbWFnZS4KICAtdCwgLS10cmFuc3BhcmVudCBDT0wgICAgICAgICBNYWtlIENPTCB0cmFuc3BhcmVudC4KAEV4dGVuc2lvbiBvcHRpb25zOgogICAgICAtLWFwcC1leHRlbnNpb24gTiBEICAgICAgIEFkZCBhbiBhcHAgZXh0ZW5zaW9uIG5hbWVkIE4gd2l0aCBkYXRhIEQuCiAgLWMsIC0tY29tbWVudCBURVhUICAgICAgICAgICAgQWRkIGEgY29tbWVudCBiZWZvcmUgdGhlIG5leHQgZnJhbWUuCiAgICAgIC0tZXh0ZW5zaW9uIE4gRCAgICAgICAgICAgQWRkIGFuIGV4dGVuc2lvbiBudW1iZXIgTiB3aXRoIGRhdGEgRC4KICAtbiwgLS1uYW1lIFRFWFQgICAgICAgICAgICAgICBTZXQgbmV4dCBmcmFtZSdzIG5hbWUuCiAgICAgIC0tbm8tY29tbWVudHMsIC0tbm8tbmFtZXMsIC0tbm8tZXh0ZW5zaW9ucwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJlbW92ZSBjb21tZW50cyAobmFtZXMsIGV4dGVuc2lvbnMpIGZyb20gaW5wdXQuAEFuaW1hdGlvbiBvcHRpb25zOiBBbHNvIC0tbm8tT1BUSU9OIGFuZCAtLXNhbWUtT1BUSU9OLgogIC1kLCAtLWRlbGF5IFRJTUUgICAgICAgICAgICAgIFNldCBmcmFtZSBkZWxheSB0byBUSU1FIChpbiAxLzEwMHNlYykuCiAgLUQsIC0tZGlzcG9zYWwgTUVUSE9EICAgICAgICAgU2V0IGZyYW1lIGRpc3Bvc2FsIHRvIE1FVEhPRC4KICAtbCwgLS1sb29wY291bnRbPU5dICAgICAgICAgICBTZXQgbG9vcCBleHRlbnNpb24gdG8gTiAoZGVmYXVsdCBmb3JldmVyKS4KICAtTywgLS1vcHRpbWl6ZVs9TEVWRUxdICAgICAgICBPcHRpbWl6ZSBvdXRwdXQgR0lGcy4KICAtVSwgLS11bm9wdGltaXplICAgICAgICAgICAgICBVbm9wdGltaXplIGlucHV0IEdJRnMuACAgLWosIC0tdGhyZWFkc1s9VEhSRUFEU10gICAgICAgVXNlIG11bHRpcGxlIHRocmVhZHMgdG8gaW1wcm92ZSBzcGVlZC4ACldob2xlLUdJRiBvcHRpb25zOiBBbHNvIC0tbm8tT1BUSU9OLgogICAgICAtLWNhcmVmdWwgICAgICAgICAgICAgICAgIFdyaXRlIGxhcmdlciBHSUZzIHRoYXQgYXZvaWQgYnVncyBpbiBvdGhlcgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByb2dyYW1zLgogICAgICAtLWNoYW5nZS1jb2xvciBDT0wxIENPTDIgIENoYW5nZSBDT0wxIHRvIENPTDIgdGhyb3VnaG91dC4KICAtaywgLS1jb2xvcnMgTiAgICAgICAgICAgICAgICBSZWR1Y2UgdGhlIG51bWJlciBvZiBjb2xvcnMgdG8gTi4KICAgICAgLS1jb2xvci1tZXRob2QgTUVUSE9EICAgICBTZXQgbWV0aG9kIGZvciBjaG9vc2luZyByZWR1Y2VkIGNvbG9ycy4KICAtZiwgLS1kaXRoZXIgICAgICAgICAgICAgICAgICBEaXRoZXIgaW1hZ2UgYWZ0ZXIgY2hhbmdpbmcgY29sb3JtYXAuACAgICAgIC0tZ2FtbWEgRyAgICAgICAgICAgICAgICAgU2V0IGdhbW1hIGZvciBjb2xvciByZWR1Y3Rpb24gWzIuMl0uACAgICAgIC0tbG9zc3lbPUxPU1NJTkVTU10gICAgICAgQWx0ZXIgaW1hZ2UgY29sb3JzIHRvIHNocmluayBvdXRwdXQgZmlsZSBzaXplCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXQgdGhlIGNvc3Qgb2YgYXJ0aWZhY3RzIGFuZCBub2lzZS4KICAgICAgLS1yZXNpemUgV3hIICAgICAgICAgICAgICBSZXNpemUgdGhlIG91dHB1dCBHSUYgdG8gV3hILgogICAgICAtLXJlc2l6ZS13aWR0aCBXICAgICAgICAgIFJlc2l6ZSB0byB3aWR0aCBXIGFuZCBwcm9wb3J0aW9uYWwgaGVpZ2h0LgogICAgICAtLXJlc2l6ZS1oZWlnaHQgSCAgICAgICAgIFJlc2l6ZSB0byBoZWlnaHQgSCBhbmQgcHJvcG9ydGlvbmFsIHdpZHRoLgogICAgICAtLXJlc2l6ZS1maXQgV3hIICAgICAgICAgIFJlc2l6ZSBpZiBuZWNlc3NhcnkgdG8gZml0IHdpdGhpbiBXeEguACAgICAgIC0tc2NhbGUgWEZBQ1RPUlt4WUZBQ1RPUl0gU2NhbGUgdGhlIG91dHB1dCBHSUYgYnkgWEZBQ1RPUnhZRkFDVE9SLgogICAgICAtLXJlc2l6ZS1tZXRob2QgTUVUSE9EICAgIFNldCByZXNpemluZyBtZXRob2QuCiAgICAgIC0tcmVzaXplLWNvbG9ycyBOICAgICAgICAgUmVzaXplIGNhbiBhZGQgbmV3IGNvbG9ycyB1cCB0byBOLgogICAgICAtLXRyYW5zZm9ybS1jb2xvcm1hcCBDTUQgIFRyYW5zZm9ybSBlYWNoIG91dHB1dCBjb2xvcm1hcCBieSBzaGVsbCBDTUQuCiAgICAgIC0tdXNlLWNvbG9ybWFwIENNQVAgICAgICAgU2V0IG91dHB1dCBHSUYncyBjb2xvcm1hcCB0byBDTUFQLCB3aGljaCBjYW4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiZSAnd2ViJywgJ2dyYXknLCAnYncnLCBvciBhIEdJRiBmaWxlLgoAAAAAAAAAAAEAAAACAAAAAwAAAAQAAAAFAAAABgAAAAcAAAAIAAAACQAAAP////////////////////////////////////8KAAAACwAAAAwAAAANAAAADgAAAA8AAAD//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////woAAAALAAAADAAAAA0AAAAOAAAADwAAAHhmb3JtLmMAAAAAAC90bXAvZ2lmc2ljbGUuWFhYWFhYAGNhbiUsdCBjcmVhdGUgdGVtcG9yYXJ5IGZpbGUhACVzICA+JXMAdwBjYW4lLHQgcnVuIGNvbG9yIHRyYW5zZm9ybWF0aW9uIGNvbW1hbmQ6ICVzACVkICVkICVkCgBjb2xvciB0cmFuc2Zvcm1hdGlvbiBlcnJvcjogJXMAY29sb3IgdHJhbnNmb3JtYXRpb24gY29tbWFuZCBmYWlsZWQAcgBjb2xvciB0cmFuc2Zvcm1hdGlvbiBjb21tYW5kIGdlbmVyYXRlZCBubyBvdXRwdXQAPGNvbG9yIHRyYW5zZm9ybWF0aW9uPgB0b28gZmV3IGNvbG9ycyBpbiBjb2xvciB0cmFuc2Zvcm1hdGlvbiByZXN1bHRzAHRvbyBtYW55IGNvbG9ycyBpbiBjb2xvciB0cmFuc2Zvcm1hdGlvbiByZXN1bHRzAHJvdGF0aW9uID09IDEgfHwgcm90YXRpb24gPT0gMwByb3RhdGVfaW1hZ2UAbmV3IGltYWdlIGlzIHRvbyBsYXJnZSAobWF4IHNpemUgNjU1MzV4NjU1MzUpAGdmcy0+bmltYWdlcyA+IDAAcmVzaXplX3N0cmVhbQBpbWFnZSB0b28gY29tcGxleCBmb3IgbXVsdGl0aHJlYWRlZCByZXNpemUsIHVzaW5nIDEgdGhyZWFkCiAgKFRyeSBydW5uaW5nIHRoZSBHSUYgdGhyb3VnaCAlPGdpZnNpY2xlIC1VJT4uKQBzY3R4LT5rZDMgPT0gJnNjdHgtPmdsb2JhbF9rZDMAc2NhbGVfaW1hZ2VfdXBkYXRlX2dsb2JhbF9rZDMAKHVuc2lnbmVkKSBpIDwgKHVuc2lnbmVkKSBrZDMtPm5pdGVtcwAuL2tjb2xvci5oAGtkM19kaXNhYmxlAGtkMy0+ZGlzYWJsZWQgPCAwIHx8IGtkMy0+ZGlzYWJsZWQgPT0gaQAha3NzLT5kYXRhICYmICFrc3MtPnNjcmF0Y2gAa3NzY3JlZW5faW5pdAAha2NzLT5kYXRhICYmICFrY3MtPnNjcmF0Y2gAa2NzY3JlZW5faW5pdAAodW5zaWduZWQpIGdmaS0+bGVmdCArIGdmaS0+d2lkdGggPD0ga3NzLT53aWR0aABrc3NjcmVlbl9hcHBseQAodW5zaWduZWQpIGdmaS0+dG9wICsgZ2ZpLT5oZWlnaHQgPD0ga3NzLT5oZWlnaHQAa3NzY3JlZW5fZGlzcG9zZQAodW5zaWduZWQpIGdmaS0+bGVmdCArIGdmaS0+d2lkdGggPD0ga2NzLT53aWR0aABrY3NjcmVlbl9kaXNwb3NlACh1bnNpZ25lZCkgZ2ZpLT50b3AgKyBnZmktPmhlaWdodCA8PSBrY3MtPmhlaWdodABrY3NjcmVlbl9hcHBseQB3LT5pcG9zID49IHlpMCAmJiB3LT5pcG9zIDwgeWkxAHNjYWxlX2ltYWdlX2RhdGFfd2VpZ2h0ZWQAYXBwZW5kAGFwcC1leHRlbnNpb24Abm8tYXBwLWV4dGVuc2lvbnMAYmFja2dyb3VuZABiYXRjaABiZwBjYXJlZnVsAGNoYW5nZS1jb2xvcgBjaW5mbwBjbGlwAGNvbG9ycwBjb2xvci1tZXRob2QAY29sb3ItaW5mbwBjb21tZW50AG5vLWNvbW1lbnRzAGNvbnNlcnZlLW1lbW9yeQBjcm9wAGNyb3AtdHJhbnNwYXJlbmN5AGRlbGF5AGRlbGV0ZQBkaXNwb3NhbABkaXRoZXIAZG9uZQBleHBsb2RlAGV4cGxvZGUtYnktbmFtZQBleHRlbnNpb24Abm8tZXh0ZW5zaW9uAG5vLWV4dGVuc2lvbnMAZXh0ZW5zaW9uLWluZm8AZmxpcC1ob3Jpem9udGFsAGZsaXAtdmVydGljYWwAbm8tZmxpcABnYW1tYQBncmF5AGhlbHAAaWdub3JlLWVycm9ycwBpbmZvAGluc2VydC1iZWZvcmUAaW50ZXJsYWNlAGxvZ2ljYWwtc2NyZWVuAGxvb3Bjb3VudABsb3NzeQBtZXJnZQBtZXRob2QAbXVsdGlmaWxlAG5hbWUAbmV4dGZpbGUAbm8tbmFtZXMAb3B0aW1pemUAb3V0cHV0AHBvc2l0aW9uAHJlcGxhY2UAcmVzaXplAHJlc2l6ZS13aWR0aAByZXNpemUtaGVpZ2h0AHJlc2l6AHJlc2kAcmVzAHJlc2l6ZS1maXQAcmVzaXplLWZpdC13aWR0aAByZXNpemUtZml0LWhlaWdodAByZXNpemUtZmkAcmVzaXplLWYAcmVzaXplLXRvdWNoAHJlc2l6ZS10b3VjaC13aWR0aAByZXNpemUtdG91Y2gtaGVpZ2h0AHJlc2l6ZS10b3VjAHJlc2l6ZS10b3UAcmVzaXplLXRvAHJlc2l6ZS10AHJlc2l6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ZQB0cmFpbGluZyBnYXJiYWdlIGlnbm9yZWQAZmlsZSBub3QgaW4gR0lGIGZvcm1hdAAlczogJTwtLW11bHRpZmlsZSU+IGlzIHVzZWZ1bCBvbmx5IGluIG1lcmdlIG1vZGUAI3N0ZGluIwBHSUYgdG9vIGNvbXBsZXggdG8gdW5vcHRpbWl6ZQogIChUaGUgcmVhc29uIHdhcyBsb2NhbCBjb2xvciB0YWJsZXMgb3IgY29tcGxleCB0cmFuc3BhcmVuY3kuCiAgVHJ5IHJ1bm5pbmcgdGhlIEdJRiB0aHJvdWdoICU8Z2lmc2ljbGUgLS1jb2xvcnM9MjU1JT4gZmlyc3QuKQBHSUYgdG9vIGNvbXBsZXggdG8gdW5vcHRpbWl6ZQAtAGluZmluaXRlAGZvcmV2ZXIAbm9uZQBhc2lzAHByZXZpb3VzAGRpdmVyc2l0eQBibGVuZC1kaXZlcnNpdHkAbWVkaWFuLWN1dABrZWVwLWVtcHR5AG5vLWtlZXAtZW1wdHkAZHJvcC1lbXB0eQBuby1kcm9wLWVtcHR5AHBvaW50AHNhbXBsZQBtaXgAYm94AGNhdHJvbQBsYW5jem9zAGxhbmN6b3MyAGxhbmN6b3MzAG1pdGNoZWxsAGZhc3QAZ29vZAAAAAAAALBGAAD4RQAA60UAAGtZAACwRQAA8EYAABdHAADURQAAJUYAAHhZAAB9WQAAAAAAAMlGAACGWQAAlVkAAKJZAACuWQAAAUYAALxZAADFWQAAXUUAANVZAAAoRwAA6lkAAH9GAAD+WQAADFoAAGRpc3Bvc2FsIG11c3QgYmUgYmV0d2VlbiAwIGFuZCA3AENPTE9SMiBtdXN0IGJlIGluIFJHQiBmb3JtYXQgaW4gJTwtLWNoYW5nZS1jb2xvciBDT0xPUjEgQ09MT1IyJT4AYXJndW1lbnQgdG8gJU8gbXVzdCBiZSBiZXR3ZWVuIDIgYW5kIDI1NgBkZWZhdWx0AHBvc3Rlcml6ZQAlPCVzJT4gaXMgbm90IGEgdmFsaWQgZGl0aGVyAHNSR0IAc3JnYgAlTyBzaG91bGQgYmUgYSBudW1iZXIgb3IgJTxzcmdiJT4Ab25lIG9mIFcgYW5kIEggbXVzdCBiZSBwb3NpdGl2ZSBpbiAlPCVzIFd4SCU+ACVzIGFyZ3VtZW50IG11c3QgYmUgcG9zaXRpdmUAJXMgWCBhbmQgWSBmYWN0b3JzIG11c3QgYmUgcG9zaXRpdmUAJXMgY2FuIGJlIGF0IG1vc3QgMjU2AExDREYgR2lmc2ljbGUgJXMKADEuOTIAZnJhbWUAaW5wdXQAAAAFWwAAFFsAACU8LS1pbmZvJT4gc3VwcHJlc3NlcyBub3JtYWwgb3V0cHV0LCBjYW4lLHQgdXNlIHdpdGggYW4KICBvdXRwdXQgbW9kZSBsaWtlICU8LS1tZXJnZSU+IG9yICU8LS1iYXRjaCU+LgogIChUcnkgJTwtSUklPiwgd2hpY2ggZG9lc24lLHQgc3VwcHJlc3Mgbm9ybWFsIG91dHB1dC4pAHRvbyBsYXRlIHRvIGNoYW5nZSBtb2RlcwBJcyBhIHRlcm1pbmFsAHJiACVzADx1bmtub3duPgAlczojJWQAcmVhZCBlcnJvcjogAAAlcyVzACVzJXMgKCVkIHRpbWVzKQAocGx1cyBtb3JlIGVycm9yczsgaXMgdGhpcyBHSUYgY29ycnVwdD8pAG1pc3NpbmcgJWx1IHBpeGVsAGZhdGFsIGVycm9yOiB0b28gbWFueSBtaXNzaW5nIHBpeGVscywgZ2l2aW5nIHVwAHcAbWVyZ2VfYW5kX3dyaXRlX2ZyYW1lcwAjc3Rkb3V0IwB0cml2aWFsIGFkYXB0aXZlIHBhbGV0dGUgKG9ubHkgJWQgY29sb3JzIGluIHNvdXJjZSkAY2FuJ3QgaGFwcGVuAHdiADxzdGRvdXQ+AElzIGEgdGVybWluYWw6IHRyeSBgLW8gT1VUUFVURklMRWAAcmVkdW5kYW50ICVzIG9wdGlvbgogIChUaGUgJXMgb3B0aW9uIHdhcyBvdmVycmlkZGVuIGJ5IGFub3RoZXIgJXMgb3B0aW9uCiAgYmVmb3JlIGl0IGhhZCBhbnkgZWZmZWN0LikAcmVkdW5kYW50ICVzIG9wdGlvbgB0cmFuc3BhcmVuY3kAZmxpcAByb3RhdGlvbgBsb2dpY2FsIHNjcmVlbgBvcHRpbWl6YXRpb24Ab3V0cHV0IGZpbGUAY29sb3JtYXAgc2l6ZQBjb2xvcm1hcABjb2xvcm1hcCBtZXRob2QAY29sb3IgdHJhbnNmb3JtYXRpb24AbWVtb3J5IGNvbnNlcnZhdGlvbgByZXNpemUgbWV0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c3VjaCBkZXZpY2UATm90IGEgZGlyZWN0b3J5AElzIGEgZGlyZWN0b3J5AFRleHQgZmlsZSBidXN5AEV4ZWMgZm9ybWF0IGVycm9yAEludmFsaWQgYXJndW1lbnQAQXJndW1lbnQgbGlzdCB0b28gbG9uZwBTeW1ib2xpYyBsaW5rIGxvb3AARmlsZW5hbWUgdG9vIGxvbmcAVG9vIG1hbnkgb3BlbiBmaWxlcyBpbiBzeXN0ZW0ATm8gZmlsZSBkZXNjcmlwdG9ycyBhdmFpbGFibGUAQmFkIGZpbGUgZGVzY3JpcHRvcgBObyBjaGlsZCBwcm9jZXNzAEJhZCBhZGRyZXNzAEZpbGUgdG9vIGxhcmdlAFRvbyBtYW55IGxpbmtzAE5vIGxvY2tzIGF2YWlsYWJsZQBSZXNvdXJjZSBkZWFkbG9jayB3b3VsZCBvY2N1cgBTdGF0ZSBub3QgcmVjb3ZlcmFibGUAUHJldmlvdXMgb3duZXIgZGllZABPcGVyYXRpb24gY2FuY2VsZWQARnVuY3Rpb24gbm90IGltcGxlbWVudGVkAE5vIG1lc3NhZ2Ugb2YgZGVzaXJlZCB0eXBlAElkZW50aWZpZXIgcmVtb3ZlZABEZXZpY2Ugbm90IGEgc3RyZWFtAE5vIGRhdGEgYXZhaWxhYmxlAERldmljZSB0aW1lb3V0AE91dCBvZiBzdHJlYW1zIHJlc291cmNlcwBMaW5rIGhhcyBiZWVuIHNldmVyZWQAUHJvdG9jb2wgZXJyb3IAQmFkIG1lc3NhZ2UARmlsZSBkZXNjcmlwdG9yIGluIGJhZCBzdGF0ZQBOb3QgYSBzb2NrZXQARGVzdGluYXRpb24gYWRkcmVzcyByZXF1aXJlZABNZXNzYWdlIHRvbyBsYXJnZQBQcm90b2NvbCB3cm9uZyB0eXBlIGZvciBzb2NrZXQAUHJvdG9jb2wgbm90IGF2YWlsYWJsZQBQcm90b2NvbCBub3Qgc3VwcG9ydGVkAFNvY2tldCB0eXBlIG5vdCBzdXBwb3J0ZWQATm90IHN1cHBvcnRlZABQcm90b2NvbCBmYW1pbHkgbm90IHN1cHBvcnRlZABBZGRyZXNzIGZhbWlseSBub3Qgc3VwcG9ydGVkIGJ5IHByb3RvY29sAEFkZHJlc3Mgbm90IGF2YWlsYWJsZQBOZXR3b3JrIGlzIGRvd24ATmV0d29yayB1bnJlYWNoYWJsZQBDb25uZWN0aW9uIHJlc2V0IGJ5IG5ldHdvcmsAQ29ubmVjdGlvbiBhYm9ydGVkAE5vIGJ1ZmZlciBzcGFjZSBhdmFpbGFibGUAU29ja2V0IGlzIGNvbm5lY3RlZABTb2NrZXQgbm90IGNvbm5lY3RlZABDYW5ub3Qgc2VuZCBhZnRlciBzb2NrZXQgc2h1dGRvd24AT3BlcmF0aW9uIGFscmVhZHkgaW4gcHJvZ3Jlc3MAT3BlcmF0aW9uIGluIHByb2dyZXNzAFN0YWxlIGZpbGUgaGFuZGxlAFJlbW90ZSBJL08gZXJyb3IAUXVvdGEgZXhjZWVkZWQATm8gbWVkaXVtIGZvdW5kAFdyb25nIG1lZGl1bSB0eXBlAE5vIGVycm9yIGluZm9ybWF0aW9uAAByd2EAgIYAABCHAACghwAAAAAAABEACgAREREAAAAABQAAAAAAAAkAAAAACwAAAAAAAAAAEQAPChEREQMKBwABAAkLCwAACQYLAAALAAYRAAAAERERAEHh6AELIQsAAAAAAAAAABEACgoREREACgAAAgAJCwAAAAkACwAACwBBm+kBCwEMAEGn6QELFQwAAAAADAAAAAAJDAAAAAAADAAADABB1ekBCwEOAEHh6QELFQ0AAAAEDQAAAAAJDgAAAAAADgAADgBBj+oBCwEQAEGb6gELHg8AAAAADwAAAAAJEAAAAAAAEAAAEAAAEgAAABISEgBB0uoBCw4SAAAAEhISAAAAAAAACQBBg+sBCwELAEGP6wELFQoAAAAACgAAAAAJCwAAAAAACwAACwBBvesBCwEMAEHJ6wELJwwAAAAADAAAAAAJDAAAAAAADAAADAAALSsgICAwWDB4AChudWxsKQBBgOwBCzAwMTIzNDU2Nzg5QUJDREVGLTBYKzBYIDBYLTB4KzB4IDB4AGluZgBJTkYATkFOAC4AQdzsAQsBPwBBg+0BCwX//////wBB0O0BC4AEAgAAwAMAAMAEAADABQAAwAYAAMAHAADACAAAwAkAAMAKAADACwAAwAwAAMANAADADgAAwA8AAMAQAADAEQAAwBIAAMATAADAFAAAwBUAAMAWAADAFwAAwBgAAMAZAADAGgAAwBsAAMAcAADAHQAAwB4AAMAfAADAAAAAswEAAMMCAADDAwAAwwQAAMMFAADDBgAAwwcAAMMIAADDCQAAwwoAAMMLAADDDAAAww0AANMOAADDDwAAwwAADLsBAAzDAgAMwwMADMMEAAzTAAAAAP////////////////////////////////////////////////////////////////8AAQIDBAUGBwgJ/////////woLDA0ODxAREhMUFRYXGBkaGxwdHh8gISIj////////CgsMDQ4PEBESExQVFhcYGRobHB0eHyAhIiP/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////AAECBAcDBgUAAAAYAAAANQAAAHEAAABr////zvv//5K///9pbmZpbml0eQBuYW4AQeDxAQs2CgAAAGQAAADoAwAAECcAAKCGAQBAQg8AgJaYAADh9QXRdJ4AV529KoBwUg///z4nWFhYWFhYAEGg8gEL1xUDAAAABAAAAAQAAAAGAAAAg/miAERObgD8KRUA0VcnAN009QBi28AAPJmVAEGQQwBjUf4Au96rALdhxQA6biQA0k1CAEkG4AAJ6i4AHJLRAOsd/gApsRwA6D6nAPU1ggBEuy4AnOmEALQmcABBfl8A1pE5AFODOQCc9DkAi1+EACj5vQD4HzsA3v+XAA+YBQARL+8AClqLAG0fbQDPfjYACcsnAEZPtwCeZj8ALepfALondQDl68cAPXvxAPc5BwCSUooA+2vqAB+xXwAIXY0AMANWAHv8RgDwq2sAILzPADb0mgDjqR0AXmGRAAgb5gCFmWUAoBRfAI1AaACA2P8AJ3NNAAYGMQDKVhUAyahzAHviYABrjMAAGcRHAM1nwwAJ6NwAWYMqAIt2xACmHJYARK/dABlX0QClPgUABQf/ADN+PwDCMugAmE/eALt9MgAmPcMAHmvvAJ/4XgA1HzoAf/LKAPGHHQB8kCEAaiR8ANVu+gAwLXcAFTtDALUUxgDDGZ0ArcTCACxNQQAMAF0Ahn1GAONxLQCbxpoAM2IAALTSfAC0p5cAN1XVANc+9gCjEBgATXb8AGSd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";function pe(){try{if(l)return new Uint8Array(l);if(o)return o(P);throw"both async and sync fetching of the wasm failed"}catch(e){D(e)}}function he(){var e=function(){var r=new Error;if(!r.stack){try{throw new Error}catch(e){r=e}if(!r.stack)return"(no stack trace available)"}return r.stack.toString()}();return h.extraStackTrace&&(e+="\\n"+h.extraStackTrace()),e.replace(/\\b_Z[\\w\\d_]+/g,function(e){return e===e?e:e+" ["+e+"]"})}J.push({func:function(){_e()}});var me=s?function(){var e=process.hrtime();return 1e3*e[0]+e[1]/1e6}:"undefined"!=typeof dateNow?dateNow:function(){return performance.now()},we=!0;function A(e){return k[De()>>2]=e}var x={splitPath:function(e){return/^(\\/?|)([\\s\\S]*?)((?:\\.{1,2}|[^\\/]+?|)(\\.[^.\\/]*|))(?:[\\/]*)$/.exec(e).slice(1)},normalizeArray:function(e,r){for(var t=0,n=e.length-1;0<=n;n--){var o=e[n];"."===o?e.splice(n,1):".."===o?(e.splice(n,1),t++):t&&(e.splice(n,1),t--)}if(r)for(;t;t--)e.unshift("..");return e},normalize:function(e){var r="/"===e.charAt(0),t="/"===e.substr(-1);return(e=(e=x.normalizeArray(e.split("/").filter(function(e){return!!e}),!r).join("/"))||r?e:".")&&t&&(e+="/"),(r?"/":"")+e},dirname:function(e){var e=x.splitPath(e),r=e[0],e=e[1];return r||e?r+(e=e&&e.substr(0,e.length-1)):"."},basename:function(e){if("/"===e)return"/";var r=e.lastIndexOf("/");return-1===r?e:e.substr(r+1)},extname:function(e){return x.splitPath(e)[3]},join:function(){var e=Array.prototype.slice.call(arguments,0);return x.normalize(e.join("/"))},join2:function(e,r){return x.normalize(e+"/"+r)}},R={resolve:function(){for(var e="",r=!1,t=arguments.length-1;-1<=t&&!r;t--){var n=0<=t?arguments[t]:T.cwd();if("string"!=typeof n)throw new TypeError("Arguments to path.resolve must be strings");if(!n)return"";e=n+"/"+e,r="/"===n.charAt(0)}return(r?"/":"")+(e=x.normalizeArray(e.split("/").filter(function(e){return!!e}),!r).join("/"))||"."},relative:function(e,r){function t(e){for(var r=0;r<e.length&&""===e[r];r++);for(var t=e.length-1;0<=t&&""===e[t];t--);return t<r?[]:e.slice(r,t-r+1)}e=R.resolve(e).substr(1),r=R.resolve(r).substr(1);for(var n=t(e.split("/")),o=t(r.split("/")),i=Math.min(n.length,o.length),a=i,s=0;s<i;s++)if(n[s]!==o[s]){a=s;break}for(var u=[],s=a;s<n.length;s++)u.push("..");return(u=u.concat(o.slice(a))).join("/")}},M={ttys:[],init:function(){},shutdown:function(){},register:function(e,r){M.ttys[e]={input:[],output:[],ops:r},T.registerDevice(e,M.stream_ops)},stream_ops:{open:function(e){var r=M.ttys[e.node.rdev];if(!r)throw new T.ErrnoError(43);e.tty=r,e.seekable=!1},close:function(e){e.tty.ops.flush(e.tty)},flush:function(e){e.tty.ops.flush(e.tty)},read:function(e,r,t,n,o){if(!e.tty||!e.tty.ops.get_char)throw new T.ErrnoError(60);for(var i,a=0,s=0;s<n;s++){try{i=e.tty.ops.get_char(e.tty)}catch(e){throw new T.ErrnoError(29)}if(void 0===i&&0===a)throw new T.ErrnoError(6);if(null==i)break;a++,r[t+s]=i}return a&&(e.node.timestamp=Date.now()),a},write:function(e,r,t,n,o){if(!e.tty||!e.tty.ops.put_char)throw new T.ErrnoError(60);try{for(var i=0;i<n;i++)e.tty.ops.put_char(e.tty,r[t+i])}catch(e){throw new T.ErrnoError(29)}return n&&(e.node.timestamp=Date.now()),i}},default_tty_ops:{get_char:function(e){if(!e.input.length){var r=null;if(s){var t=Buffer.alloc?Buffer.alloc(256):new Buffer(256),n=0;try{n=i.readSync(process.stdin.fd,t,0,256,null)}catch(e){if(-1==e.toString().indexOf("EOF"))throw e;n=0}r=0<n?t.slice(0,n).toString("utf-8"):null}else"undefined"!=typeof window&&"function"==typeof window.prompt?null!==(r=window.prompt("Input: "))&&(r+="\\n"):"function"==typeof readline&&null!==(r=readline())&&(r+="\\n");if(!r)return null;e.input=ye(r,!0)}return e.input.shift()},put_char:function(e,r){null===r||10===r?(m(g(e.output,0)),e.output=[]):0!=r&&e.output.push(r)},flush:function(e){e.output&&0<e.output.length&&(m(g(e.output,0)),e.output=[])}},default_tty1_ops:{put_char:function(e,r){null===r||10===r?(w(g(e.output,0)),e.output=[]):0!=r&&e.output.push(r)},flush:function(e){e.output&&0<e.output.length&&(w(g(e.output,0)),e.output=[])}}},B={ops_table:null,mount:function(e){return B.createNode(null,"/",16895,0)},createNode:function(e,r,t,n){if(T.isBlkdev(t)||T.isFIFO(t))throw new T.ErrnoError(63);B.ops_table||(B.ops_table={dir:{node:{getattr:B.node_ops.getattr,setattr:B.node_ops.setattr,lookup:B.node_ops.lookup,mknod:B.node_ops.mknod,rename:B.node_ops.rename,unlink:B.node_ops.unlink,rmdir:B.node_ops.rmdir,readdir:B.node_ops.readdir,symlink:B.node_ops.symlink},stream:{llseek:B.stream_ops.llseek}},file:{node:{getattr:B.node_ops.getattr,setattr:B.node_ops.setattr},stream:{llseek:B.stream_ops.llseek,read:B.stream_ops.read,write:B.stream_ops.write,allocate:B.stream_ops.allocate,mmap:B.stream_ops.mmap,msync:B.stream_ops.msync}},link:{node:{getattr:B.node_ops.getattr,setattr:B.node_ops.setattr,readlink:B.node_ops.readlink},stream:{}},chrdev:{node:{getattr:B.node_ops.getattr,setattr:B.node_ops.setattr},stream:T.chrdev_stream_ops}});t=T.createNode(e,r,t,n);return T.isDir(t.mode)?(t.node_ops=B.ops_table.dir.node,t.stream_ops=B.ops_table.dir.stream,t.contents={}):T.isFile(t.mode)?(t.node_ops=B.ops_table.file.node,t.stream_ops=B.ops_table.file.stream,t.usedBytes=0,t.contents=null):T.isLink(t.mode)?(t.node_ops=B.ops_table.link.node,t.stream_ops=B.ops_table.link.stream):T.isChrdev(t.mode)&&(t.node_ops=B.ops_table.chrdev.node,t.stream_ops=B.ops_table.chrdev.stream),t.timestamp=Date.now(),e&&(e.contents[r]=t),t},getFileDataAsRegularArray:function(e){if(e.contents&&e.contents.subarray){for(var r=[],t=0;t<e.usedBytes;++t)r.push(e.contents[t]);return r}return e.contents},getFileDataAsTypedArray:function(e){return e.contents?e.contents.subarray?e.contents.subarray(0,e.usedBytes):new Uint8Array(e.contents):new Uint8Array(0)},expandFileStorage:function(e,r){var t=e.contents?e.contents.length:0;r<=t||(r=Math.max(r,t*(t<1048576?2:1.125)>>>0),0!=t&&(r=Math.max(r,256)),t=e.contents,e.contents=new Uint8Array(r),0<e.usedBytes&&e.contents.set(t.subarray(0,e.usedBytes),0))},resizeFileStorage:function(e,r){if(e.usedBytes!=r){if(0==r)return e.contents=null,void(e.usedBytes=0);var t;if(!e.contents||e.contents.subarray)return t=e.contents,e.contents=new Uint8Array(r),t&&e.contents.set(t.subarray(0,Math.min(r,e.usedBytes))),void(e.usedBytes=r);if(e.contents||(e.contents=[]),e.contents.length>r)e.contents.length=r;else for(;e.contents.length<r;)e.contents.push(0);e.usedBytes=r}},node_ops:{getattr:function(e){var r={};return r.dev=T.isChrdev(e.mode)?e.id:1,r.ino=e.id,r.mode=e.mode,r.nlink=1,r.uid=0,r.gid=0,r.rdev=e.rdev,T.isDir(e.mode)?r.size=4096:T.isFile(e.mode)?r.size=e.usedBytes:T.isLink(e.mode)?r.size=e.link.length:r.size=0,r.atime=new Date(e.timestamp),r.mtime=new Date(e.timestamp),r.ctime=new Date(e.timestamp),r.blksize=4096,r.blocks=Math.ceil(r.size/r.blksize),r},setattr:function(e,r){void 0!==r.mode&&(e.mode=r.mode),void 0!==r.timestamp&&(e.timestamp=r.timestamp),void 0!==r.size&&B.resizeFileStorage(e,r.size)},lookup:function(e,r){throw T.genericErrors[44]},mknod:function(e,r,t,n){return B.createNode(e,r,t,n)},rename:function(e,r,t){if(T.isDir(e.mode)){var n;try{n=T.lookupNode(r,t)}catch(e){}if(n)for(var o in n.contents)throw new T.ErrnoError(55)}delete e.parent.contents[e.name],e.name=t,(r.contents[t]=e).parent=r},unlink:function(e,r){delete e.contents[r]},rmdir:function(e,r){for(var t in T.lookupNode(e,r).contents)throw new T.ErrnoError(55);delete e.contents[r]},readdir:function(e){var r,t=[".",".."];for(r in e.contents)e.contents.hasOwnProperty(r)&&t.push(r);return t},symlink:function(e,r,t){e=B.createNode(e,r,41471,0);return e.link=t,e},readlink:function(e){if(T.isLink(e.mode))return e.link;throw new T.ErrnoError(28)}},stream_ops:{read:function(e,r,t,n,o){var i=e.node.contents;if(o>=e.node.usedBytes)return 0;var a=Math.min(e.node.usedBytes-o,n);if(8<a&&i.subarray)r.set(i.subarray(o,o+a),t);else for(var s=0;s<a;s++)r[t+s]=i[o+s];return a},write:function(e,r,t,n,o,i){if(r.buffer===y.buffer&&(i=!1),!n)return 0;var a=e.node;if(a.timestamp=Date.now(),r.subarray&&(!a.contents||a.contents.subarray)){if(i)return a.contents=r.subarray(t,t+n),a.usedBytes=n;if(0===a.usedBytes&&0===o)return a.contents=r.slice(t,t+n),a.usedBytes=n;if(o+n<=a.usedBytes)return a.contents.set(r.subarray(t,t+n),o),n}if(B.expandFileStorage(a,o+n),a.contents.subarray&&r.subarray)a.contents.set(r.subarray(t,t+n),o);else for(var s=0;s<n;s++)a.contents[o+s]=r[t+s];return a.usedBytes=Math.max(a.usedBytes,o+n),n},llseek:function(e,r,t){if(1===t?r+=e.position:2===t&&T.isFile(e.node.mode)&&(r+=e.node.usedBytes),r<0)throw new T.ErrnoError(28);return r},allocate:function(e,r,t){B.expandFileStorage(e.node,r+t),e.node.usedBytes=Math.max(e.node.usedBytes,r+t)},mmap:function(e,r,t,n,o,i){if(H(0===r),!T.isFile(e.node.mode))throw new T.ErrnoError(43);var a,s,r=e.node.contents;if(2&i||r.buffer!==v){if((0<n||n+t<r.length)&&(r=r.subarray?r.subarray(n,n+t):Array.prototype.slice.call(r,n,n+t)),s=!0,!(a=be(t)))throw new T.ErrnoError(48);y.set(r,a)}else s=!1,a=r.byteOffset;return{ptr:a,allocated:s}},msync:function(e,r,t,n,o){if(T.isFile(e.node.mode))return 2&o||B.stream_ops.write(e,r,0,n,t,!1),0;throw new T.ErrnoError(43)}}},T={root:null,mounts:[],devices:{},streams:[],nextInode:1,nameTable:null,currentPath:"/",initialized:!1,ignorePermissions:!0,trackingDelegate:{},tracking:{openFlags:{READ:1,WRITE:2}},ErrnoError:null,genericErrors:{},filesystems:null,syncFSRequests:0,handleFSError:function(e){if(e instanceof T.ErrnoError)return A(e.errno);throw e+" : "+he()},lookupPath:function(e,r){if(r=r||{},!(e=R.resolve(T.cwd(),e)))return{path:"",node:null};var t,n={follow_mount:!0,recurse_count:0};for(t in n)void 0===r[t]&&(r[t]=n[t]);if(8<r.recurse_count)throw new T.ErrnoError(32);for(var o=x.normalizeArray(e.split("/").filter(function(e){return!!e}),!1),i=T.root,a="/",s=0;s<o.length;s++){var u=s===o.length-1;if(u&&r.parent)break;if(i=T.lookupNode(i,o[s]),a=x.join2(a,o[s]),!T.isMountpoint(i)||u&&!r.follow_mount||(i=i.mounted.root),!u||r.follow)for(var c=0;T.isLink(i.mode);){var f=T.readlink(a),a=R.resolve(x.dirname(a),f),i=T.lookupPath(a,{recurse_count:r.recurse_count}).node;if(40<c++)throw new T.ErrnoError(32)}}return{path:a,node:i}},getPath:function(e){for(var r,t;;){if(T.isRoot(e))return t=e.mount.mountpoint,r?"/"!==t[t.length-1]?t+"/"+r:t+r:t;r=r?e.name+"/"+r:e.name,e=e.parent}},hashName:function(e,r){for(var t=0,n=0;n<r.length;n++)t=(t<<5)-t+r.charCodeAt(n)|0;return(e+t>>>0)%T.nameTable.length},hashAddNode:function(e){var r=T.hashName(e.parent.id,e.name);e.name_next=T.nameTable[r],T.nameTable[r]=e},hashRemoveNode:function(e){var r=T.hashName(e.parent.id,e.name);if(T.nameTable[r]===e)T.nameTable[r]=e.name_next;else for(var t=T.nameTable[r];t;){if(t.name_next===e){t.name_next=e.name_next;break}t=t.name_next}},lookupNode:function(e,r){var t=T.mayLookup(e);if(t)throw new T.ErrnoError(t,e);for(var t=T.hashName(e.id,r),n=T.nameTable[t];n;n=n.name_next){var o=n.name;if(n.parent.id===e.id&&o===r)return n}return T.lookup(e,r)},createNode:function(e,r,t,n){e=new T.FSNode(e,r,t,n);return T.hashAddNode(e),e},destroyNode:function(e){T.hashRemoveNode(e)},isRoot:function(e){return e===e.parent},isMountpoint:function(e){return!!e.mounted},isFile:function(e){return 32768==(61440&e)},isDir:function(e){return 16384==(61440&e)},isLink:function(e){return 40960==(61440&e)},isChrdev:function(e){return 8192==(61440&e)},isBlkdev:function(e){return 24576==(61440&e)},isFIFO:function(e){return 4096==(61440&e)},isSocket:function(e){return 49152==(49152&e)},flagModes:{r:0,rs:1052672,"r+":2,w:577,wx:705,xw:705,"w+":578,"wx+":706,"xw+":706,a:1089,ax:1217,xa:1217,"a+":1090,"ax+":1218,"xa+":1218},modeStringToFlags:function(e){var r=T.flagModes[e];if(void 0===r)throw new Error("Unknown file open mode: "+e);return r},flagsToPermissionString:function(e){var r=["r","w","rw"][3&e];return 512&e&&(r+="w"),r},nodePermissions:function(e,r){return T.ignorePermissions||(-1===r.indexOf("r")||292&e.mode)&&(-1===r.indexOf("w")||146&e.mode)&&(-1===r.indexOf("x")||73&e.mode)?0:2},mayLookup:function(e){var r=T.nodePermissions(e,"x");return r||(e.node_ops.lookup?0:2)},mayCreate:function(e,r){try{T.lookupNode(e,r);return 20}catch(e){}return T.nodePermissions(e,"wx")},mayDelete:function(e,r,t){var n;try{n=T.lookupNode(e,r)}catch(e){return e.errno}r=T.nodePermissions(e,"wx");if(r)return r;if(t){if(!T.isDir(n.mode))return 54;if(T.isRoot(n)||T.getPath(n)===T.cwd())return 10}else if(T.isDir(n.mode))return 31;return 0},mayOpen:function(e,r){return e?T.isLink(e.mode)?32:T.isDir(e.mode)&&("r"!==T.flagsToPermissionString(r)||512&r)?31:T.nodePermissions(e,T.flagsToPermissionString(r)):44},MAX_OPEN_FDS:4096,nextfd:function(e,r){r=r||T.MAX_OPEN_FDS;for(var t=e=e||0;t<=r;t++)if(!T.streams[t])return t;throw new T.ErrnoError(33)},getStream:function(e){return T.streams[e]},createStream:function(e,r,t){T.FSStream||(T.FSStream=function(){},T.FSStream.prototype={object:{get:function(){return this.node},set:function(e){this.node=e}},isRead:{get:function(){return 1!=(2097155&this.flags)}},isWrite:{get:function(){return 0!=(2097155&this.flags)}},isAppend:{get:function(){return 1024&this.flags}}});var n,o=new T.FSStream;for(n in e)o[n]=e[n];e=o;r=T.nextfd(r,t);return e.fd=r,T.streams[r]=e},closeStream:function(e){T.streams[e]=null},chrdev_stream_ops:{open:function(e){var r=T.getDevice(e.node.rdev);e.stream_ops=r.stream_ops,e.stream_ops.open&&e.stream_ops.open(e)},llseek:function(){throw new T.ErrnoError(70)}},major:function(e){return e>>8},minor:function(e){return 255&e},makedev:function(e,r){return e<<8|r},registerDevice:function(e,r){T.devices[e]={stream_ops:r}},getDevice:function(e){return T.devices[e]},getMounts:function(e){for(var r=[],t=[e];t.length;){var n=t.pop();r.push(n),t.push.apply(t,n.mounts)}return r},syncfs:function(r,t){"function"==typeof r&&(t=r,r=!1),T.syncFSRequests++,1<T.syncFSRequests&&w("warning: "+T.syncFSRequests+" FS.syncfs operations in flight at once, probably just doing extra work");var n=T.getMounts(T.root.mount),o=0;function i(e){return T.syncFSRequests--,t(e)}function a(e){if(e)return a.errored?void 0:(a.errored=!0,i(e));++o>=n.length&&i(null)}n.forEach(function(e){if(!e.type.syncfs)return a(null);e.type.syncfs(e,r,a)})},mount:function(e,r,t){var n,o="/"===t,i=!t;if(o&&T.root)throw new T.ErrnoError(10);if(!o&&!i){i=T.lookupPath(t,{follow_mount:!1});if(t=i.path,n=i.node,T.isMountpoint(n))throw new T.ErrnoError(10);if(!T.isDir(n.mode))throw new T.ErrnoError(54)}i={type:e,opts:r,mountpoint:t,mounts:[]},r=e.mount(i);return(r.mount=i).root=r,o?T.root=r:n&&(n.mounted=i,n.mount&&n.mount.mounts.push(i)),r},unmount:function(e){e=T.lookupPath(e,{follow_mount:!1});if(!T.isMountpoint(e.node))throw new T.ErrnoError(28);var e=e.node,r=e.mounted,n=T.getMounts(r),r=(Object.keys(T.nameTable).forEach(function(e){for(var r=T.nameTable[e];r;){var t=r.name_next;-1!==n.indexOf(r.mount)&&T.destroyNode(r),r=t}}),e.mounted=null,e.mount.mounts.indexOf(r));e.mount.mounts.splice(r,1)},lookup:function(e,r){return e.node_ops.lookup(e,r)},mknod:function(e,r,t){var n=T.lookupPath(e,{parent:!0}).node,e=x.basename(e);if(!e||"."===e||".."===e)throw new T.ErrnoError(28);var o=T.mayCreate(n,e);if(o)throw new T.ErrnoError(o);if(n.node_ops.mknod)return n.node_ops.mknod(n,e,r,t);throw new T.ErrnoError(63)},create:function(e,r){return T.mknod(e,r=(r=void 0!==r?r:438)&4095|32768,0)},mkdir:function(e,r){return T.mknod(e,r=(r=void 0!==r?r:511)&1023|16384,0)},mkdirTree:function(e,r){for(var t=e.split("/"),n="",o=0;o<t.length;++o)if(t[o]){n+="/"+t[o];try{T.mkdir(n,r)}catch(e){if(20!=e.errno)throw e}}},mkdev:function(e,r,t){return void 0===t&&(t=r,r=438),T.mknod(e,r|=8192,t)},symlink:function(e,r){if(!R.resolve(e))throw new T.ErrnoError(44);var t=T.lookupPath(r,{parent:!0}).node;if(!t)throw new T.ErrnoError(44);var r=x.basename(r),n=T.mayCreate(t,r);if(n)throw new T.ErrnoError(n);if(t.node_ops.symlink)return t.node_ops.symlink(t,r,e);throw new T.ErrnoError(63)},rename:function(r,t){var e,n,o=x.dirname(r),i=x.dirname(t),a=x.basename(r),s=x.basename(t);try{e=T.lookupPath(r,{parent:!0}).node,n=T.lookupPath(t,{parent:!0}).node}catch(e){throw new T.ErrnoError(10)}if(!e||!n)throw new T.ErrnoError(44);if(e.mount!==n.mount)throw new T.ErrnoError(75);var u,c=T.lookupNode(e,a),i=R.relative(r,i);if("."!==i.charAt(0))throw new T.ErrnoError(28);if("."!==(i=R.relative(t,o)).charAt(0))throw new T.ErrnoError(55);try{u=T.lookupNode(n,s)}catch(e){}if(c!==u){o=T.isDir(c.mode),i=T.mayDelete(e,a,o);if(i)throw new T.ErrnoError(i);if(i=u?T.mayDelete(n,s,o):T.mayCreate(n,s))throw new T.ErrnoError(i);if(!e.node_ops.rename)throw new T.ErrnoError(63);if(T.isMountpoint(c)||u&&T.isMountpoint(u))throw new T.ErrnoError(10);if(n!==e&&(i=T.nodePermissions(e,"w")))throw new T.ErrnoError(i);try{T.trackingDelegate.willMovePath}catch(e){w("FS.trackingDelegate['willMovePath']('"+r+"', '"+t+"') threw an exception: "+e.message)}T.hashRemoveNode(c);try{e.node_ops.rename(c,n,s)}catch(e){throw e}finally{T.hashAddNode(c)}try{T.trackingDelegate.onMovePath}catch(e){w("FS.trackingDelegate['onMovePath']('"+r+"', '"+t+"') threw an exception: "+e.message)}}},rmdir:function(r){var e=T.lookupPath(r,{parent:!0}).node,t=x.basename(r),n=T.lookupNode(e,t),o=T.mayDelete(e,t,!0);if(o)throw new T.ErrnoError(o);if(!e.node_ops.rmdir)throw new T.ErrnoError(63);if(T.isMountpoint(n))throw new T.ErrnoError(10);try{T.trackingDelegate.willDeletePath}catch(e){w("FS.trackingDelegate['willDeletePath']('"+r+"') threw an exception: "+e.message)}e.node_ops.rmdir(e,t),T.destroyNode(n);try{T.trackingDelegate.onDeletePath}catch(e){w("FS.trackingDelegate['onDeletePath']('"+r+"') threw an exception: "+e.message)}},readdir:function(e){e=T.lookupPath(e,{follow:!0}).node;if(e.node_ops.readdir)return e.node_ops.readdir(e);throw new T.ErrnoError(54)},unlink:function(r){var e=T.lookupPath(r,{parent:!0}).node,t=x.basename(r),n=T.lookupNode(e,t),o=T.mayDelete(e,t,!1);if(o)throw new T.ErrnoError(o);if(!e.node_ops.unlink)throw new T.ErrnoError(63);if(T.isMountpoint(n))throw new T.ErrnoError(10);try{T.trackingDelegate.willDeletePath}catch(e){w("FS.trackingDelegate['willDeletePath']('"+r+"') threw an exception: "+e.message)}e.node_ops.unlink(e,t),T.destroyNode(n);try{T.trackingDelegate.onDeletePath}catch(e){w("FS.trackingDelegate['onDeletePath']('"+r+"') threw an exception: "+e.message)}},readlink:function(e){e=T.lookupPath(e).node;if(!e)throw new T.ErrnoError(44);if(e.node_ops.readlink)return R.resolve(T.getPath(e.parent),e.node_ops.readlink(e));throw new T.ErrnoError(28)},stat:function(e,r){e=T.lookupPath(e,{follow:!r}).node;if(!e)throw new T.ErrnoError(44);if(e.node_ops.getattr)return e.node_ops.getattr(e);throw new T.ErrnoError(63)},lstat:function(e){return T.stat(e,!0)},chmod:function(e,r,t){if(!(t="string"==typeof e?T.lookupPath(e,{follow:!t}).node:e).node_ops.setattr)throw new T.ErrnoError(63);t.node_ops.setattr(t,{mode:4095&r|-4096&t.mode,timestamp:Date.now()})},lchmod:function(e,r){T.chmod(e,r,!0)},fchmod:function(e,r){e=T.getStream(e);if(!e)throw new T.ErrnoError(8);T.chmod(e.node,r)},chown:function(e,r,t,n){if(!(n="string"==typeof e?T.lookupPath(e,{follow:!n}).node:e).node_ops.setattr)throw new T.ErrnoError(63);n.node_ops.setattr(n,{timestamp:Date.now()})},lchown:function(e,r,t){T.chown(e,r,t,!0)},fchown:function(e,r,t){e=T.getStream(e);if(!e)throw new T.ErrnoError(8);T.chown(e.node,r,t)},truncate:function(e,r){if(r<0)throw new T.ErrnoError(28);if(!(e="string"==typeof e?T.lookupPath(e,{follow:!0}).node:e).node_ops.setattr)throw new T.ErrnoError(63);if(T.isDir(e.mode))throw new T.ErrnoError(31);if(!T.isFile(e.mode))throw new T.ErrnoError(28);var t=T.nodePermissions(e,"w");if(t)throw new T.ErrnoError(t);e.node_ops.setattr(e,{size:r,timestamp:Date.now()})},ftruncate:function(e,r){e=T.getStream(e);if(!e)throw new T.ErrnoError(8);if(0==(2097155&e.flags))throw new T.ErrnoError(28);T.truncate(e.node,r)},utime:function(e,r,t){e=T.lookupPath(e,{follow:!0}).node;e.node_ops.setattr(e,{timestamp:Math.max(r,t)})},open:function(r,e,t,n,o){if(""===r)throw new T.ErrnoError(44);if(t=void 0===t?438:t,t=64&(e="string"==typeof e?T.modeStringToFlags(e):e)?4095&t|32768:0,"object"==typeof r)i=r;else{r=x.normalize(r);try{var i=T.lookupPath(r,{follow:!(131072&e)}).node}catch(e){}}var a=!1;if(64&e)if(i){if(128&e)throw new T.ErrnoError(20)}else i=T.mknod(r,t,0),a=!0;if(!i)throw new T.ErrnoError(44);if(T.isChrdev(i.mode)&&(e&=-513),65536&e&&!T.isDir(i.mode))throw new T.ErrnoError(54);if(!a){t=T.mayOpen(i,e);if(t)throw new T.ErrnoError(t)}512&e&&T.truncate(i,0),e&=-131713;a=T.createStream({node:i,path:T.getPath(i),flags:e,seekable:!0,position:0,stream_ops:i.stream_ops,ungotten:[],error:!1},n,o);a.stream_ops.open&&a.stream_ops.open(a),!h.logReadFiles||1&e||(T.readFiles||(T.readFiles={}),r in T.readFiles||(T.readFiles[r]=1,w("FS.trackingDelegate error on read file: "+r)));try{T.trackingDelegate.onOpenFile}catch(e){w("FS.trackingDelegate['onOpenFile']('"+r+"', flags) threw an exception: "+e.message)}return a},close:function(e){if(T.isClosed(e))throw new T.ErrnoError(8);e.getdents&&(e.getdents=null);try{e.stream_ops.close&&e.stream_ops.close(e)}catch(e){throw e}finally{T.closeStream(e.fd)}e.fd=null},isClosed:function(e){return null===e.fd},llseek:function(e,r,t){if(T.isClosed(e))throw new T.ErrnoError(8);if(!e.seekable||!e.stream_ops.llseek)throw new T.ErrnoError(70);if(0!=t&&1!=t&&2!=t)throw new T.ErrnoError(28);return e.position=e.stream_ops.llseek(e,r,t),e.ungotten=[],e.position},read:function(e,r,t,n,o){if(n<0||o<0)throw new T.ErrnoError(28);if(T.isClosed(e))throw new T.ErrnoError(8);if(1==(2097155&e.flags))throw new T.ErrnoError(8);if(T.isDir(e.node.mode))throw new T.ErrnoError(31);if(!e.stream_ops.read)throw new T.ErrnoError(28);var i=void 0!==o;if(i){if(!e.seekable)throw new T.ErrnoError(70)}else o=e.position;r=e.stream_ops.read(e,r,t,n,o);return i||(e.position+=r),r},write:function(r,e,t,n,o,i){if(n<0||o<0)throw new T.ErrnoError(28);if(T.isClosed(r))throw new T.ErrnoError(8);if(0==(2097155&r.flags))throw new T.ErrnoError(8);if(T.isDir(r.node.mode))throw new T.ErrnoError(31);if(!r.stream_ops.write)throw new T.ErrnoError(28);r.seekable&&1024&r.flags&&T.llseek(r,0,2);var a=void 0!==o;if(a){if(!r.seekable)throw new T.ErrnoError(70)}else o=r.position;e=r.stream_ops.write(r,e,t,n,o,i);a||(r.position+=e);try{r.path&&T.trackingDelegate.onWriteToFile&&T.trackingDelegate.onWriteToFile(r.path)}catch(e){w("FS.trackingDelegate['onWriteToFile']('"+r.path+"') threw an exception: "+e.message)}return e},allocate:function(e,r,t){if(T.isClosed(e))throw new T.ErrnoError(8);if(r<0||t<=0)throw new T.ErrnoError(28);if(0==(2097155&e.flags))throw new T.ErrnoError(8);if(!T.isFile(e.node.mode)&&!T.isDir(e.node.mode))throw new T.ErrnoError(43);if(!e.stream_ops.allocate)throw new T.ErrnoError(138);e.stream_ops.allocate(e,r,t)},mmap:function(e,r,t,n,o,i){if(0!=(2&o)&&0==(2&i)&&2!=(2097155&e.flags))throw new T.ErrnoError(2);if(1==(2097155&e.flags))throw new T.ErrnoError(2);if(e.stream_ops.mmap)return e.stream_ops.mmap(e,r,t,n,o,i);throw new T.ErrnoError(43)},msync:function(e,r,t,n,o){return e&&e.stream_ops.msync?e.stream_ops.msync(e,r,t,n,o):0},munmap:function(e){return 0},ioctl:function(e,r,t){if(e.stream_ops.ioctl)return e.stream_ops.ioctl(e,r,t);throw new T.ErrnoError(59)},readFile:function(e,r){if((r=r||{}).flags=r.flags||"r",r.encoding=r.encoding||"binary","utf8"!==r.encoding&&"binary"!==r.encoding)throw new Error('Invalid encoding type "'+r.encoding+'"');var t,n=T.open(e,r.flags),e=T.stat(e).size,o=new Uint8Array(e);return T.read(n,o,0,e,0),"utf8"===r.encoding?t=g(o,0):"binary"===r.encoding&&(t=o),T.close(n),t},writeFile:function(e,r,t){(t=t||{}).flags=t.flags||"w";e=T.open(e,t.flags,t.mode);if("string"==typeof r){var n=new Uint8Array(G(r)+1),o=X(r,n,0,n.length);T.write(e,n,0,o,void 0,t.canOwn)}else{if(!ArrayBuffer.isView(r))throw new Error("Unsupported data type");T.write(e,r,0,r.byteLength,void 0,t.canOwn)}T.close(e)},cwd:function(){return T.currentPath},chdir:function(e){e=T.lookupPath(e,{follow:!0});if(null===e.node)throw new T.ErrnoError(44);if(!T.isDir(e.node.mode))throw new T.ErrnoError(54);var r=T.nodePermissions(e.node,"x");if(r)throw new T.ErrnoError(r);T.currentPath=e.path},createDefaultDirectories:function(){T.mkdir("/tmp"),T.mkdir("/home"),T.mkdir("/home/web_user")},createDefaultDevices:function(){if(T.mkdir("/dev"),T.registerDevice(T.makedev(1,3),{read:function(){return 0},write:function(e,r,t,n,o){return n}}),T.mkdev("/dev/null",T.makedev(1,3)),M.register(T.makedev(5,0),M.default_tty_ops),M.register(T.makedev(6,0),M.default_tty1_ops),T.mkdev("/dev/tty",T.makedev(5,0)),T.mkdev("/dev/tty1",T.makedev(6,0)),"object"==typeof crypto&&"function"==typeof crypto.getRandomValues)var e=new Uint8Array(1),r=function(){return crypto.getRandomValues(e),e[0]};else if(s)try{var t=require("crypto");r=function(){return t.randomBytes(1)[0]}}catch(e){}T.createDevice("/dev","random",r=r||function(){D("random_device")}),T.createDevice("/dev","urandom",r),T.mkdir("/dev/shm"),T.mkdir("/dev/shm/tmp")},createSpecialDirectories:function(){T.mkdir("/proc"),T.mkdir("/proc/self"),T.mkdir("/proc/self/fd"),T.mount({mount:function(){var e=T.createNode("/proc/self","fd",16895,73);return e.node_ops={lookup:function(e,r){var t=T.getStream(+r);if(!t)throw new T.ErrnoError(8);r={parent:null,mount:{mountpoint:"fake"},node_ops:{readlink:function(){return t.path}}};return r.parent=r}},e}},{},"/proc/self/fd")},createStandardStreams:function(){h.stdin?T.createDevice("/dev","stdin",h.stdin):T.symlink("/dev/tty","/dev/stdin"),h.stdout?T.createDevice("/dev","stdout",null,h.stdout):T.symlink("/dev/tty","/dev/stdout"),h.stderr?T.createDevice("/dev","stderr",null,h.stderr):T.symlink("/dev/tty1","/dev/stderr"),T.open("/dev/stdin","r"),T.open("/dev/stdout","w"),T.open("/dev/stderr","w")},ensureErrnoError:function(){T.ErrnoError||(T.ErrnoError=function(e,r){this.node=r,this.setErrno=function(e){this.errno=e},this.setErrno(e),this.message="FS error"},T.ErrnoError.prototype=new Error,T.ErrnoError.prototype.constructor=T.ErrnoError,[44].forEach(function(e){T.genericErrors[e]=new T.ErrnoError(e),T.genericErrors[e].stack="<generic error, no stack>"}))},staticInit:function(){T.ensureErrnoError(),T.nameTable=new Array(4096),T.mount(B,{},"/"),T.createDefaultDirectories(),T.createDefaultDevices(),T.createSpecialDirectories(),T.filesystems={MEMFS:B}},init:function(e,r,t){T.init.initialized=!0,T.ensureErrnoError(),h.stdin=e||h.stdin,h.stdout=r||h.stdout,h.stderr=t||h.stderr,T.createStandardStreams()},quit:function(){T.init.initialized=!1;var e=h._fflush;e&&e(0);for(var r=0;r<T.streams.length;r++){var t=T.streams[r];t&&T.close(t)}},getMode:function(e,r){var t=0;return e&&(t|=365),r&&(t|=146),t},joinPath:function(e,r){e=x.join.apply(null,e);return e=r&&"/"==e[0]?e.substr(1):e},absolutePath:function(e,r){return R.resolve(r,e)},standardizePath:function(e){return x.normalize(e)},findObject:function(e,r){e=T.analyzePath(e,r);return e.exists?e.object:(A(e.error),null)},analyzePath:function(e,r){try{e=(n=T.lookupPath(e,{follow:!r})).path}catch(e){}var t={isRoot:!1,exists:!1,error:0,name:null,path:null,object:null,parentExists:!1,parentPath:null,parentObject:null};try{var n=T.lookupPath(e,{parent:!0});t.parentExists=!0,t.parentPath=n.path,t.parentObject=n.node,t.name=x.basename(e),n=T.lookupPath(e,{follow:!r}),t.exists=!0,t.path=n.path,t.object=n.node,t.name=n.node.name,t.isRoot="/"===n.path}catch(e){t.error=e.errno}return t},createFolder:function(e,r,t,n){e=x.join2("string"==typeof e?e:T.getPath(e),r),r=T.getMode(t,n);return T.mkdir(e,r)},createPath:function(e,r,t,n){e="string"==typeof e?e:T.getPath(e);for(var o=r.split("/").reverse();o.length;){var i=o.pop();if(i){var a=x.join2(e,i);try{T.mkdir(a)}catch(e){}e=a}}return a},createFile:function(e,r,t,n,o){e=x.join2("string"==typeof e?e:T.getPath(e),r),r=T.getMode(n,o);return T.create(e,r)},createDataFile:function(e,r,t,n,o,i){r=r?x.join2("string"==typeof e?e:T.getPath(e),r):e,e=T.getMode(n,o),n=T.create(r,e);if(t){if("string"==typeof t){for(var a=new Array(t.length),s=0,u=t.length;s<u;++s)a[s]=t.charCodeAt(s);t=a}T.chmod(n,146|e);o=T.open(n,"w");T.write(o,t,0,t.length,0,i),T.close(o),T.chmod(n,e)}return n},createDevice:function(e,r,u,a){var e=x.join2("string"==typeof e?e:T.getPath(e),r),r=T.getMode(!!u,!!a),t=(T.createDevice.major||(T.createDevice.major=64),T.makedev(T.createDevice.major++,0));return T.registerDevice(t,{open:function(e){e.seekable=!1},close:function(e){a&&a.buffer&&a.buffer.length&&a(10)},read:function(e,r,t,n,o){for(var i,a=0,s=0;s<n;s++){try{i=u()}catch(e){throw new T.ErrnoError(29)}if(void 0===i&&0===a)throw new T.ErrnoError(6);if(null==i)break;a++,r[t+s]=i}return a&&(e.node.timestamp=Date.now()),a},write:function(e,r,t,n,o){for(var i=0;i<n;i++)try{a(r[t+i])}catch(e){throw new T.ErrnoError(29)}return n&&(e.node.timestamp=Date.now()),i}}),T.mkdev(e,r,t)},createLink:function(e,r,t,n,o){e=x.join2("string"==typeof e?e:T.getPath(e),r);return T.symlink(t,e)},forceLoadFile:function(e){if(e.isDevice||e.isFolder||e.link||e.contents)return!0;var r=!0;if("undefined"!=typeof XMLHttpRequest)throw new Error("Lazy loading should have been performed (contents set) in createLazyFile, but it was not. Lazy loading only works in web workers. Use --embed-file or --preload-file in emcc on the main thread.");if(!n)throw new Error("Cannot load without read() or XMLHttpRequest.");try{e.contents=ye(n(e.url),!0),e.usedBytes=e.contents.length}catch(e){r=!1}return r||A(29),r},createLazyFile:function(e,r,a,t,n){function o(){this.lengthKnown=!1,this.chunks=[]}if(o.prototype.get=function(e){var r;if(!(e>this.length-1||e<0))return r=e%this.chunkSize,e=e/this.chunkSize|0,this.getter(e)[r]},o.prototype.setDataGetter=function(e){this.getter=e},o.prototype.cacheLength=function(){var e=new XMLHttpRequest;if(e.open("HEAD",a,!1),e.send(null),!(200<=e.status&&e.status<300||304===e.status))throw new Error("Couldn't load "+a+". Status: "+e.status);var r,n=Number(e.getResponseHeader("Content-length")),t=(r=e.getResponseHeader("Accept-Ranges"))&&"bytes"===r,e=(r=e.getResponseHeader("Content-Encoding"))&&"gzip"===r,o=1048576,i=(t||(o=n),this);i.setDataGetter(function(e){var r=e*o,t=(e+1)*o-1,t=Math.min(t,n-1);if(void 0===i.chunks[e]&&(i.chunks[e]=function(e,r){if(r<e)throw new Error("invalid range ("+e+", "+r+") or no bytes requested!");if(n-1<r)throw new Error("only "+n+" bytes available! programmer error!");var t=new XMLHttpRequest;if(t.open("GET",a,!1),n!==o&&t.setRequestHeader("Range","bytes="+e+"-"+r),"undefined"!=typeof Uint8Array&&(t.responseType="arraybuffer"),t.overrideMimeType&&t.overrideMimeType("text/plain; charset=x-user-defined"),t.send(null),200<=t.status&&t.status<300||304===t.status)return void 0!==t.response?new Uint8Array(t.response||[]):ye(t.responseText||"",!0);throw new Error("Couldn't load "+a+". Status: "+t.status)}(r,t)),void 0===i.chunks[e])throw new Error("doXHR failed!");return i.chunks[e]}),!e&&n||(o=n=1,n=this.getter(0).length,o=n,m("LazyFiles on gzip forces download of the whole file when length is accessed")),this._length=n,this._chunkSize=o,this.lengthKnown=!0},"undefined"!=typeof XMLHttpRequest){if(!c)throw"Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc";var i=new o,i=(Object.defineProperties(i,{length:{get:function(){return this.lengthKnown||this.cacheLength(),this._length}},chunkSize:{get:function(){return this.lengthKnown||this.cacheLength(),this._chunkSize}}}),{isDevice:!1,contents:i})}else i={isDevice:!1,url:a};var u=T.createFile(e,r,i,t,n),s=(i.contents?u.contents=i.contents:i.url&&(u.contents=null,u.url=i.url),Object.defineProperties(u,{usedBytes:{get:function(){return this.contents.length}}}),{});return Object.keys(u.stream_ops).forEach(function(e){var r=u.stream_ops[e];s[e]=function(){if(T.forceLoadFile(u))return r.apply(null,arguments);throw new T.ErrnoError(29)}}),s.read=function(e,r,t,n,o){if(!T.forceLoadFile(u))throw new T.ErrnoError(29);var i=e.node.contents;if(o>=i.length)return 0;var a=Math.min(i.length-o,n);if(i.slice)for(var s=0;s<a;s++)r[t+s]=i[o+s];else for(s=0;s<a;s++)r[t+s]=i.get(o+s);return a},u.stream_ops=s,u},createPreloadedFile:function(o,i,e,a,s,u,c,f,l,d){Browser.init();var p=i?R.resolve(x.join2(o,i)):o;function r(r){function t(e){d&&d(),f||T.createDataFile(o,i,e,a,s,l),u&&u(),ue()}var n=!1;h.preloadPlugins.forEach(function(e){n||e.canHandle(p)&&(e.handle(r,p,t,function(){c&&c(),ue()}),n=!0)}),n||t(r)}se(),"string"==typeof e?Browser.asyncLoad(e,function(e){r(e)},c):r(e)},indexedDB:function(){return window.indexedDB||window.mozIndexedDB||window.webkitIndexedDB||window.msIndexedDB},DB_NAME:function(){return"EM_FS_"+window.location.pathname},DB_VERSION:20,DB_STORE_NAME:"FILE_DATA",saveFilesToDB:function(a,s,u){s=s||function(){},u=u||function(){};var e=T.indexedDB();try{var c=e.open(T.DB_NAME(),T.DB_VERSION)}catch(e){return u(e)}c.onupgradeneeded=function(){m("creating db"),c.result.createObjectStore(T.DB_STORE_NAME)},c.onsuccess=function(){var e=c.result.transaction([T.DB_STORE_NAME],"readwrite"),r=e.objectStore(T.DB_STORE_NAME),t=0,n=0,o=a.length;function i(){(0==n?s:u)()}a.forEach(function(e){e=r.put(T.analyzePath(e).object.contents,e);e.onsuccess=function(){++t+n==o&&i()},e.onerror=function(){t+ ++n==o&&i()}}),e.onerror=u},c.onerror=u},loadFilesFromDB:function(s,u,c){u=u||function(){},c=c||function(){};var e=T.indexedDB();try{var f=e.open(T.DB_NAME(),T.DB_VERSION)}catch(e){return c(e)}f.onupgradeneeded=c,f.onsuccess=function(){var e=f.result;try{var r=e.transaction([T.DB_STORE_NAME],"readonly")}catch(e){return void c(e)}var t=r.objectStore(T.DB_STORE_NAME),n=0,o=0,i=s.length;function a(){(0==o?u:c)()}s.forEach(function(e){var r=t.get(e);r.onsuccess=function(){T.analyzePath(e).exists&&T.unlink(e),T.createDataFile(x.dirname(e),x.basename(e),r.result,!0,!0,!0),++n+o==i&&a()},r.onerror=function(){n+ ++o==i&&a()}}),r.onerror=c},f.onerror=c}},N={mappings:{},DEFAULT_POLLMASK:5,umask:511,calculateAt:function(e,r){if("/"!==r[0]){var t;if(-100===e)t=T.cwd();else{e=T.getStream(e);if(!e)throw new T.ErrnoError(8);t=e.path}r=x.join2(t,r)}return r},doStat:function(e,r,t){try{var n=e(r)}catch(e){if(e&&e.node&&x.normalize(r)!==x.normalize(T.getPath(e.node)))return-54;throw e}return k[t>>2]=n.dev,k[t+4>>2]=0,k[t+8>>2]=n.ino,k[t+12>>2]=n.mode,k[t+16>>2]=n.nlink,k[t+20>>2]=n.uid,k[t+24>>2]=n.gid,k[t+28>>2]=n.rdev,k[t+32>>2]=0,F=[n.size>>>0,(S=n.size,1<=+ne(S)?0<S?(0|ae(+ie(S/4294967296),4294967295))>>>0:~~+oe((S-(~~S>>>0))/4294967296)>>>0:0)],k[t+40>>2]=F[0],k[t+44>>2]=F[1],k[t+48>>2]=4096,k[t+52>>2]=n.blocks,k[t+56>>2]=n.atime.getTime()/1e3|0,k[t+60>>2]=0,k[t+64>>2]=n.mtime.getTime()/1e3|0,k[t+68>>2]=0,k[t+72>>2]=n.ctime.getTime()/1e3|0,k[t+76>>2]=0,F=[n.ino>>>0,(S=n.ino,1<=+ne(S)?0<S?(0|ae(+ie(S/4294967296),4294967295))>>>0:~~+oe((S-(~~S>>>0))/4294967296)>>>0:0)],k[t+80>>2]=F[0],k[t+84>>2]=F[1],0},doMsync:function(e,r,t,n,o){e=E.slice(e,e+t);T.msync(r,e,o,t,n)},doMkdir:function(e,r){return"/"===(e=x.normalize(e))[e.length-1]&&(e=e.substr(0,e.length-1)),T.mkdir(e,r,0),0},doMknod:function(e,r,t){switch(61440&r){case 32768:case 8192:case 24576:case 4096:case 49152:break;default:return-28}return T.mknod(e,r,t),0},doReadlink:function(e,r,t){if(t<=0)return-28;var e=T.readlink(e),n=Math.min(t,G(e)),o=y[r+n];return X(e,E,r,t+1),y[r+n]=o,n},doAccess:function(e,r){if(-8&r)return-28;e=T.lookupPath(e,{follow:!0}).node;if(!e)return-44;var t="";return 4&r&&(t+="r"),2&r&&(t+="w"),1&r&&(t+="x"),t&&T.nodePermissions(e,t)?-2:0},doDup:function(e,r,t){var n=T.getStream(t);return n&&T.close(n),T.open(e,r,0,t,t).fd},doReadv:function(e,r,t,n){for(var o=0,i=0;i<t;i++){var a=k[r+8*i>>2],s=k[r+(8*i+4)>>2],a=T.read(e,y,a,s,n);if(a<0)return-1;if(o+=a,a<s)break}return o},doWritev:function(e,r,t,n){for(var o=0,i=0;i<t;i++){var a=k[r+8*i>>2],s=k[r+(8*i+4)>>2],a=T.write(e,y,a,s,n);if(a<0)return-1;o+=a}return o},varargs:void 0,get:function(){return N.varargs+=4,k[N.varargs-4>>2]},getStr:function(e){return W(e)},getStreamFromFD:function(e){e=T.getStream(e);if(e)return e;throw new T.ErrnoError(8)},get64:function(e,r){return e}};var ge={};function z(){if(!z.strings){var e={USER:"web_user",LOGNAME:"web_user",PATH:"/",PWD:"/",HOME:"/home/web_user",LANG:("object"==typeof navigator&&navigator.languages&&navigator.languages[0]||"C").replace("-","_")+".UTF-8",_:C||"./this.program"};for(r in ge)e[r]=ge[r];var r,t=[];for(r in e)t.push(r+"="+e[r]);z.strings=t}return z.strings}function ve(e,r,t,n){this.parent=e=e||this,this.mount=e.mount,this.mounted=null,this.id=T.nextInode++,this.name=r,this.mode=t,this.node_ops={},this.stream_ops={},this.rdev=n}function ye(e,r,t){t=0<t?t:G(e)+1,t=new Array(t),e=X(e,t,0,t.length);return r&&(t.length=e),t}Object.defineProperties(ve.prototype,{read:{get:function(){return 365==(365&this.mode)},set:function(e){e?this.mode|=365:this.mode&=-366}},write:{get:function(){return 146==(146&this.mode)},set:function(e){e?this.mode|=146:this.mode&=-147}},isFolder:{get:function(){return T.isDir(this.mode)}},isDevice:{get:function(){return T.isChrdev(this.mode)}}}),T.FSNode=ve,T.staticInit();var Ee,ke={a:function(e,r,t,n){D("Assertion failed: "+W(e)+", at: "+[r?W(r):"unknown filename",t,n?W(n):"unknown function"])},s:function(e,r){var t;if(0===e)t=Date.now();else{if(1!==e&&4!==e||!we)return A(28),-1;t=me()}return k[r>>2]=t/1e3|0,k[r+4>>2]=t%1e3*1e3*1e3|0,0},d:function(e,r,t){N.varargs=t;try{var n=N.getStreamFromFD(e);switch(r){case 0:return(o=N.get())<0?-28:T.open(n.path,n.flags,0,o).fd;case 1:case 2:return 0;case 3:return n.flags;case 4:var o=N.get();return n.flags|=o,0;case 12:o=N.get();return K[o+0>>1]=2,0;case 13:case 14:return 0;case 16:case 8:return-28;case 9:return A(28),-1;default:return-28}}catch(e){return void 0!==T&&e instanceof T.ErrnoError||D(e),-e.errno}},i:function(e,r,t){N.varargs=t;try{var n=N.getStreamFromFD(e);switch(r){case 21509:case 21505:return n.tty?0:-59;case 21510:case 21511:case 21512:case 21506:case 21507:case 21508:return n.tty?0:-59;case 21519:if(!n.tty)return-59;var o=N.get();return k[o>>2]=0;case 21520:return n.tty?-28:-59;case 21531:o=N.get();return T.ioctl(n,r,o);case 21523:case 21524:return n.tty?0:-59;default:D("bad ioctl syscall "+r)}}catch(e){return void 0!==T&&e instanceof T.ErrnoError||D(e),-e.errno}},e:function(e,r,t){N.varargs=t;try{var n=N.getStr(e),o=N.get();return T.open(n,r,o).fd}catch(e){return void 0!==T&&e instanceof T.ErrnoError||D(e),-e.errno}},t:function(e){try{return e=N.getStr(e),T.rmdir(e),0}catch(e){return void 0!==T&&e instanceof T.ErrnoError||D(e),-e.errno}},j:function(e){try{var r=N.umask;return N.umask=e,r}catch(e){return void 0!==T&&e instanceof T.ErrnoError||D(e),-e.errno}},u:function(e){try{return e=N.getStr(e),T.unlink(e),0}catch(e){return void 0!==T&&e instanceof T.ErrnoError||D(e),-e.errno}},v:function(e,r,t,n){try{D("cannot wait on child processes")}catch(e){return void 0!==T&&e instanceof T.ErrnoError||D(e),-e.errno}},n:function(e,r,t){E.copyWithin(e,r,r+t)},b:function(e){var r=E.length,t=2147483648;if(t<(e>>>=0))return!1;for(var n,o=1;o<=4;o*=2){var i=r*(1+.2/o),i=Math.min(i,e+100663296);if(function(e){try{return p.grow(e-v.byteLength+65535>>>16),Y(p.buffer),1}catch(e){}}(Math.min(t,(0<(i=Math.max(16777216,e,i))%(n=65536)&&(i+=n-i%n),i))))return!0}return!1},p:function(a,s){var u=0;return z().forEach(function(e,r){for(var t=s+u,n=(k[a+4*r>>2]=t,e),o=t,r=void 0,i=0;i<n.length;++i)y[o++>>0]=n.charCodeAt(i);r||(y[o>>0]=0),u+=e.length+1}),0},q:function(e,r){var t=z(),n=(k[e>>2]=t.length,0);return t.forEach(function(e){n+=e.length+1}),k[r>>2]=n,0},c:function(e){xe(e)},f:function(e){try{var r=N.getStreamFromFD(e);return T.close(r),0}catch(e){return void 0!==T&&e instanceof T.ErrnoError||D(e),e.errno}},r:function(e,r){try{var t=N.getStreamFromFD(e),n=t.tty?2:T.isDir(t.mode)?3:T.isLink(t.mode)?7:4;return y[r>>0]=n,0}catch(e){return void 0!==T&&e instanceof T.ErrnoError||D(e),e.errno}},h:function(e,r,t,n){try{var o=N.getStreamFromFD(e),i=N.doReadv(o,r,t);return k[n>>2]=i,0}catch(e){return void 0!==T&&e instanceof T.ErrnoError||D(e),e.errno}},m:function(e,r,t,n,o){try{var i=N.getStreamFromFD(e),a=4294967296*t+(r>>>0),s=9007199254740992;return a<=-s||s<=a?-61:(T.llseek(i,a,n),F=[i.position>>>0,(S=i.position,1<=+ne(S)?0<S?(0|ae(+ie(S/4294967296),4294967295))>>>0:~~+oe((S-(~~S>>>0))/4294967296)>>>0:0)],k[o>>2]=F[0],k[o+4>>2]=F[1],i.getdents&&0==a&&0===n&&(i.getdents=null),0)}catch(e){return void 0!==T&&e instanceof T.ErrnoError||D(e),e.errno}},g:function(e,r,t,n){try{var o=N.getStreamFromFD(e),i=N.doWritev(o,r,t);return k[n>>2]=i,0}catch(e){return void 0!==T&&e instanceof T.ErrnoError||D(e),e.errno}},memory:p,o:function(){w("missing function: popen"),D(-1)},l:function(){return 6},k:function(){},table:I},_e=(!function(){var r={a:ke};function t(e,r){e=e.exports;h.asm=e,ue()}function n(e){t(e.instance)}function o(e){return(l||!L&&!c||"function"!=typeof fetch||de(P)?new Promise(function(e,r){e(pe())}):fetch(P,{credentials:"same-origin"}).then(function(e){if(e.ok)return e.arrayBuffer();throw"failed to load wasm binary file at '"+P+"'"}).catch(pe)).then(function(e){return WebAssembly.instantiate(e,r)}).then(e,function(e){w("failed to asynchronously prepare wasm: "+e),D(e)})}if(se(),h.instantiateWasm)try{h.instantiateWasm(r,t);return}catch(e){return w("Module.instantiateWasm callback failed with error: "+e)}l||"function"!=typeof WebAssembly.instantiateStreaming||ce(P,fe)||de(P)||"function"!=typeof fetch?o(n):fetch(P,{credentials:"same-origin"}).then(function(e){return WebAssembly.instantiateStreaming(e,r).then(n,function(e){return w("wasm streaming compile failed: "+e),w("falling back to ArrayBuffer instantiation"),o(n)})})}(),h.___wasm_call_ctors=function(){return(_e=h.___wasm_call_ctors=h.asm.w).apply(null,arguments)}),be=h._malloc=function(){return(be=h._malloc=h.asm.x).apply(null,arguments)},De=h.___errno_location=function(){return(De=h.___errno_location=h.asm.y).apply(null,arguments)},Se=(h._main=function(){return(h._main=h.asm.z).apply(null,arguments)},h.stackAlloc=function(){return(Se=h.stackAlloc=h.asm.A).apply(null,arguments)});function Fe(e){this.name="ExitStatus",this.message="Program terminated with exit("+e+")",this.status=e}function Pe(r){var t=h._main;r=r||[];try{for(let e=0;e<r.length;e++){const s=r[e];var n,{argc:o,argv:i}=function(e){var r=e.length+1,t=Se(4*(r+1));k[t>>2]=V(C);for(var n=1;n<r;n++)k[(t>>2)+n]=V(e[n-1]);return k[(t>>2)+r]=0,{argc:r,argv:t}}(s.split(" ").filter(e=>Boolean(e)));if(0!==(n=t(o,i)))break}xe(n,!0)}catch(e){if(e instanceof Fe)return;if("unwind"==e)return void(d=!0);var a=e;e&&"object"==typeof e&&e.stack&&(a=[e,e.stack]),w("exception thrown: "+a),u(1,e)}}function Ae(e){function r(){Ee||(Ee=!0,h.calledRun=!0,U||(h.noFSInit||T.init.initialized||T.init(),Z(J),T.ignorePermissions=!1,Z(Q),j(h),h.onRuntimeInitialized&&h.onRuntimeInitialized(),Re&&Pe(e),te()))}e=e||a,0<_||(re(),0<_||(h.setStatus?(h.setStatus("Running..."),setTimeout(function(){setTimeout(function(){h.setStatus("")},1),r()},1)):r()))}function xe(e,r){r&&d&&0===e||(d||(U=!0,h.onExit&&h.onExit(e)),u(e,new Fe(e)))}if(h.dynCall_vi=function(){return(h.dynCall_vi=h.asm.B).apply(null,arguments)},b=function e(){Ee||Ae(),Ee||(b=e)},h.run=Ae,h.preInit)for("function"==typeof h.preInit&&(h.preInit=[h.preInit]);0<h.preInit.length;)h.preInit.pop()();var Re=!0;return h.noInitialRun&&(Re=!1),d=!0,Ae(),e.ready};let r="";let t="";var f={flush:()=>{0<r.length&&(console.log(r),r=""),0<t.length&&(console.error(t),t="")},stderr:e=>{t+=String.fromCharCode(e),10===e&&(console.error(t),t="")},stdout:e=>{r+=String.fromCharCode(e),10===e&&(console.log(r),r="")}};const l=[];return async(e={})=>{let{data:i=null,command:a=[],folder:s=[],isStrict:u=!1}=e;return await new Promise(e=>{l.push(e),1===l.length&&l[0]()}),new Promise((r,t)=>{let n=!1,o="";c({stdout:f.stdout,stderr:e=>{o+=String.fromCharCode(e),10===e&&(console.error(o),u&&t(o))},arguments:a,input:i,folder:s,output:e=>{r(e),n=!0}}).then(()=>{(0,f.flush)(),n||t(),0<l.length&&(l.shift(),0<l.length&&l[0]())})})}}();onmessage=function(r){(async()=>{var e=await gifsicle(r.data).catch(e=>{postMessage(e)});postMessage(e)})().catch(e=>{postMessage(null)})};`,workerBlobUrl:"",worker(){return this.workerBlobUrl||(this.workerLocalUrl?this.workerBlobUrl=URL.createObjectURL(new Blob([this.workerLocalUrl])):this.workerBlobUrl="../src/worker.js",this.workerBlobUrl)},errorLink(){return`
|
||
Check: https://github.com/renzhezhilu/gifsicle-wasm-browser`},testType(A){return A instanceof Element?"element":Object.prototype.toString.call(A).replace(/\[object\s(.+)\]/,"$1").toLowerCase()},async textToUrl(A){return this.worker()},loadCommand(A){var e=this.testType(A);if(A.length===0)throw"<command> the content can not be blank"+this.errorLink();if(e==="array")return A.map(t=>t.replace(/\n/gi," "));throw"<command> types:"+e+", must be an array"+this.errorLink()},loadOne(A){return new Promise(async(e,t)=>{var i=this.testType(A);if(["string"].includes(i))fetch(A).then(n=>{if(n.status!==200)throw"<"+A+"> Url error!!!"+this.errorLink();return n.arrayBuffer()}).then(n=>e(n));else if(["blob","file"].includes(i))new Response(A).arrayBuffer().then(n=>e(n));else{if(!["arraybuffer"].includes(i))throw"<input.file> types:"+i+", only supports Url, blob, file, arraybuffer"+this.errorLink();e(A)}})},loadFile(A){return new Promise(async(e,t)=>{var i=this.testType(A);if(i!=="array")throw"<input> types:"+i+", only supports Array"+this.errorLink();if(A.length===0)throw"<input> the content can not be blank"+this.errorLink();i=A.map(n=>this.loadOne(n.file)),Promise.all(i).then(function(n){var o=A.map((r,g)=>(r.file=n[g],r));e(o)}).catch(function(n){})})},loadFolder(A){return new Promise(async(e,t)=>{var i=this.testType(A);if(!["array"].includes(i))throw"<folder> types:"+i+", only supports Array"+this.errorLink();e(A)})}},run(A={}){return new Promise(async(e,t)=>{let{input:i=[],command:n="",folder:o=[],isStrict:r=!1,start:g=Q=>{}}=A;var s=await this.tool.textToUrl();let a=new Worker(s);var I=this.tool.loadCommand(n),l=await this.tool.loadFile(i),C=(g(l),await this.tool.loadFolder(o));a.postMessage({data:l,command:I,folder:C,isStrict:r}),a.onmessage=async function(Q){if(!Q.data||typeof Q.data=="string")return a.terminate(),void t(Q.data);let u=[];for(let h=0;h<Q.data.length;h++){const E=Q.data[h];var f;E.name.includes(".txt")?(f=new File([E.file],E.name,{type:"text/plain"}),u.push(f)):(f=new File([E.file],E.name,{type:"image/gif"}),u.push(f))}a.terminate(),e(u)},a.onerror=function(Q){console.error(Q),a.terminate(),e(null)}})}};class IS{constructor(e={}){this.quality=e.quality||10,this.debug=e.debug||!1,this.scalingMode=e.scalingMode||"auto",this.optimize=e.optimize!==!1,this.optimizationLevel=e.optimizationLevel||2}async scaleGif(e,t={}){const{maxWidth:i,maxHeight:n,keepAspectRatio:o=!0,optimize:r=this.optimize,lossy:g=this.quality,loopCount:s=0}=t;if(!i&&!n)throw new Error("必须指定 maxWidth 或 maxHeight");try{let a;o?a=`--resize-fit ${i||"_"}x${n||"_"}`:a=`--resize ${i||"_"}x${n||"_"}!`;const I=[];I.push("-U"),I.push(a),s>=0&&I.push(`--loopcount=${s}`),g&&g>0&&I.push(`--lossy=${g}`),r&&I.push(`-O${this.optimizationLevel}`),I.push("1.gif"),I.push("-o /out/output.gif");const l=I.join(" ");this.debug&&(console.log("GIF 缩放命令:",l),console.log("输入文件大小:",e.size||"未知"));const C=await Jn.run({input:[{file:e,name:"1.gif"}],command:[l]});if(!C||C.length===0)throw new Error("gifsicle 处理失败,未返回结果");const Q=C[0];if(this.debug&&(console.log("GIF 缩放完成"),console.log("输出文件大小:",Q.size),e.size)){const u=((1-Q.size/e.size)*100).toFixed(2);console.log(`压缩率: ${u}%`)}return new Blob([Q],{type:"image/gif"})}catch(a){throw console.error("GIF 缩放失败:",a),new Error(`GIF 缩放失败: ${a.message}`)}}async scaleGifBatch(e){const t=[];for(let i=0;i<e.length;i++){const{file:n,options:o}=e[i];try{const r=await this.scaleGif(n,o);t.push(r)}catch(r){console.error(`批量缩放第 ${i+1} 个文件失败:`,r),t.push(null)}}return t}async optimizeGif(e,t={}){const{lossy:i=this.quality,level:n=this.optimizationLevel,loopCount:o=0}=t;try{const r=["-U"];o>=0&&r.push(`--loopcount=${o}`),i&&i>0&&r.push(`--lossy=${i}`),r.push(`-O${n}`),r.push("1.gif"),r.push("-o /out/output.gif");const g=r.join(" ");this.debug&&console.log("GIF 优化命令:",g);const s=await Jn.run({input:[{file:e,name:"1.gif"}],command:[g]});if(!s||s.length===0)throw new Error("gifsicle 优化失败");return new Blob([s[0]],{type:"image/gif"})}catch(r){throw console.error("GIF 优化失败:",r),new Error(`GIF 优化失败: ${r.message}`)}}async getGifInfo(e){try{const t=await Jn.run({input:[{file:e,name:"1.gif"}],command:["--info 1.gif -o /out/info.txt"]});if(!t||t.length===0)throw new Error("无法获取 GIF 信息");const n=await t[0].text();return this.parseGifInfo(n)}catch(t){return console.error("获取 GIF 信息失败:",t),{size:e.size||0,type:"image/gif"}}}parseGifInfo(e){const t={frames:0,width:0,height:0,colors:0,loopCount:0};try{const i=e.match(/(\d+) images?/);i&&(t.frames=parseInt(i[1]));const n=e.match(/logical screen (\d+)x(\d+)/);n&&(t.width=parseInt(n[1]),t.height=parseInt(n[2]));const o=e.match(/(\d+) colors/);if(o&&(t.colors=parseInt(o[1])),e.includes("loop forever"))t.loopCount=0;else{const r=e.match(/loop count (\d+)/);r&&(t.loopCount=parseInt(r[1]))}}catch(i){console.warn("解析 GIF 信息时出错:",i)}return t}async cropGif(e,t){const{x:i,y:n,width:o,height:r}=t;try{const g=["-U",`--crop ${i},${n}+${o}x${r}`,"1.gif","-o /out/output.gif"].join(" ");this.debug&&console.log("GIF 裁剪命令:",g);const s=await Jn.run({input:[{file:e,name:"1.gif"}],command:[g]});if(!s||s.length===0)throw new Error("gifsicle 裁剪失败");return new Blob([s[0]],{type:"image/gif"})}catch(g){throw console.error("GIF 裁剪失败:",g),new Error(`GIF 裁剪失败: ${g.message}`)}}dispose(){this.debug&&console.log("WasmGifScaler disposed")}setDebug(e){this.debug=e}setQuality(e){if(e<1||e>200)throw new Error("质量参数必须在 1-200 之间");this.quality=e}setOptimizationLevel(e){if(e<1||e>3)throw new Error("优化级别必须在 1-3 之间");this.optimizationLevel=e}}class _l{constructor(){this.config=null,this.resources=new Map,this.tempFiles=[],this.fontConverterBrowser=gS,this.convertedFonts=new Map,this.wakenetPacker=new sS,this.spiffsGenerator=new aS,this.gifScaler=new IS({quality:30,debug:!0,scalingMode:"auto",optimize:!0,optimizationLevel:2}),this.configStorage=ce,this.autoSaveEnabled=!0}setConfig(e,t={}){if(((t==null?void 0:t.strict)??!0)&&!this.validateConfig(e))throw new Error("Configuration object validation failed");return this.config={...e},this}validateConfig(e){var n,o,r;if(!e)return!1;if(!((n=e.chip)!=null&&n.model))return console.error("Missing chip model configuration"),!1;const t=e.chip.display;if(!(t!=null&&t.width)||!(t!=null&&t.height))return console.error("Missing display resolution configuration"),!1;const i=(o=e.theme)==null?void 0:o.font;return(i==null?void 0:i.type)==="preset"&&!i.preset?(console.error("Preset font configuration is incomplete"),!1):(i==null?void 0:i.type)==="custom"&&!((r=i.custom)!=null&&r.file)?(console.error("Custom font file not provided"),!1):!0}addResource(e,t,i,n="other"){return this.resources.set(e,{file:t,filename:i,size:t.size,type:t.type,lastModified:t.lastModified||Date.now(),resourceType:n}),this.autoSaveEnabled&&t instanceof File&&this.saveFileToStorage(e,t,n).catch(o=>{console.warn(`Auto-saving file ${i} failed:`,o)}),this}async saveFileToStorage(e,t,i){try{await this.configStorage.saveFile(e,t,i),console.log(`File ${t.name} auto-saved to storage`)}catch(n){throw console.error(`Failed to save file to storage: ${t.name}`,n),n}}async restoreResourceFromStorage(e){try{const t=await this.configStorage.loadFile(e);return t?(this.resources.set(e,{file:t,filename:t.name,size:t.size,type:t.type,lastModified:t.lastModified,resourceType:t.storedType,fromStorage:!0}),console.log(`Resource ${e} restored from storage successfully: ${t.name}`),!0):!1}catch(t){return console.error(`Failed to restore resource from storage: ${e}`,t),!1}}async restoreAllResourcesFromStorage(e){var i,n,o,r,g,s,a,I,l,C,Q;if(!e)return;const t=[];if((n=(i=e.theme)==null?void 0:i.font)!=null&&n.custom&&((o=e.theme.font.custom)==null?void 0:o.file)===null){const u="custom_font";if(await this.restoreResourceFromStorage(u)){const f=this.resources.get(u);f&&(e.theme.font.custom.file=f.file,t.push(`Custom font: ${f.filename}`),console.log(`Custom font restored even when type is '${e.theme.font.type}'`))}}if(((g=(r=e.theme)==null?void 0:r.emoji)==null?void 0:g.type)==="custom"&&e.theme.emoji.custom){const u=e.theme.emoji.custom,f=u.emotionMap||{},h=u.fileMap||{},E=u.images||{};if(Object.keys(f).length>0||Object.keys(h).length>0){const p=new Set;for(const c of Object.keys(h))h[c]===null&&p.add(c);for(const c of p){let d=`hash_${c}`,w=await this.restoreResourceFromStorage(d);if(!w){const F=`emoji_hash_${c}`;w=await this.restoreResourceFromStorage(F),w&&(d=F)}if(w){const F=this.resources.get(d);if(F){h[c]=F.file;const N=Object.entries(f).filter(([G,P])=>P===c).map(([G,P])=>G);N.forEach(G=>{E[G]=F.file}),t.push(`Emoji file ${c.substring(0,8)}... (used for: ${N.join(", ")})`)}}}Object.keys(h).forEach(c=>{e.theme.emoji.custom.fileMap[c]=h[c]}),Object.keys(E).forEach(c=>{e.theme.emoji.custom.images[c]=E[c]})}else{for(const[p,c]of Object.entries(E))if(c===null){const d=`emoji_${p}`;if(await this.restoreResourceFromStorage(d)){const w=this.resources.get(d);w&&(E[p]=w.file,t.push(`Emoji ${p}: ${w.filename}`))}}e.theme.emoji.custom.images=E}}if(((I=(a=(s=e.theme)==null?void 0:s.skin)==null?void 0:a.light)==null?void 0:I.backgroundType)==="image"&&e.theme.skin.light.backgroundImage===null){const u="background_light";if(await this.restoreResourceFromStorage(u)){const f=this.resources.get(u);f&&(e.theme.skin.light.backgroundImage=f.file,t.push(`Light background: ${f.filename}`))}}if(((Q=(C=(l=e.theme)==null?void 0:l.skin)==null?void 0:C.dark)==null?void 0:Q.backgroundType)==="image"&&e.theme.skin.dark.backgroundImage===null){const u="background_dark";if(await this.restoreResourceFromStorage(u)){const f=this.resources.get(u);f&&(e.theme.skin.dark.backgroundImage=f.file,t.push(`Dark background: ${f.filename}`))}}try{const u=this.getFontInfo();if(u&&u.type==="custom"){const f=`converted_font_${u.filename}`,h=await this.configStorage.loadTempData(f);h&&(this.convertedFonts.set(u.filename,h.data),console.log(`Converted font data restored: ${u.filename}`))}}catch(u){console.warn("Error restoring converted font data:",u)}t.length>0&&console.log("Files restored from storage:",t)}getWakewordModelInfo(){if(!this.config||!this.config.chip||!this.config.theme)return null;const e=this.config.chip.model,t=this.config.theme.wakeword;return!t||t.type==="none"?null:t.type==="preset"?{type:e==="esp32c3"||e==="esp32c6"?"WakeNet9s":"WakeNet9",name:t.preset,filename:"srmodels.bin"}:t.type==="custom"?{type:"MultiNet",name:t.custom.model,filename:"srmodels.bin",custom:t.custom}:null}getFontInfo(){if(!this.config||!this.config.theme||!this.config.theme.font)return null;const e=this.config.theme.font;if(e.type==="preset")return{type:"preset",filename:`${e.preset}.bin`,source:e.preset};if(e.type==="custom"&&e.custom.file){const t=e.custom;return{type:"custom",filename:`font_custom_${t.size}_${t.bpp}.bin`,source:e.custom.file,config:{size:t.size,bpp:t.bpp,charset:t.charset}}}return null}getEmojiCollectionInfo(){if(!this.config||!this.config.theme||!this.config.theme.emoji)return[];const e=this.config.theme.emoji,t=[];if(e.type==="preset"){const i=["neutral","happy","laughing","funny","sad","angry","crying","loving","embarrassed","surprised","shocked","thinking","winking","cool","relaxed","delicious","kissy","confident","sleepy","silly","confused"],n=e.preset==="twemoji32"?"32":"64";i.forEach(o=>{t.push({name:o,file:`${o}.png`,source:`preset:${e.preset}`,size:{width:parseInt(n),height:parseInt(n)}})})}else if(e.type==="custom"){e.custom.images;const i=e.custom.emotionMap||{},n=e.custom.fileMap||{},o=e.custom.size||{width:64,height:64};if(Object.keys(i).length===0||Object.keys(n).length===0)throw console.error("❌ Error: Detected old version of emoji data structure"),console.error("Please clear browser cache or reset configuration, then re-upload emoji images"),new Error("Incompatible emoji data structure: Missing fileMap or emotionMap. Please reconfigure emojis.");const r=new Map;Object.entries(i).forEach(([g,s])=>{const a=n[s];if(a){if(!r.has(s)){const l=a.name?a.name.split(".").pop().toLowerCase():"png",C=`emoji_${s.substring(0,8)}.${l}`;r.set(s,C)}const I=r.get(s);t.push({name:g,file:I,source:a,fileHash:s,size:{...o}})}}),console.log(`Emoji deduplication: ${Object.keys(i).length} emojis using ${r.size} different image files`),t.find(g=>g.name==="neutral")||console.warn("Warning: neutral emoji not provided, default image will be used")}return t}getSkinInfo(){if(!this.config||!this.config.theme||!this.config.theme.skin)return{};const e=this.config.theme.skin,t={};return e.light&&(t.light={text_color:e.light.textColor||"#000000",background_color:e.light.backgroundColor||"#ffffff"},e.light.backgroundType==="image"&&e.light.backgroundImage&&(t.light.background_image="background_light.raw")),e.dark&&(t.dark={text_color:e.dark.textColor||"#ffffff",background_color:e.dark.backgroundColor||"#121212"},e.dark.backgroundType==="image"&&e.dark.backgroundImage&&(t.dark.background_image="background_dark.raw")),t}generateIndexJson(){if(!this.config)throw new Error("Configuration object not set");const e={version:1,chip_model:this.config.chip.model,hide_subtitle:this.config.theme.font.hide_subtitle||!1,display_config:{width:this.config.chip.display.width,height:this.config.chip.display.height,monochrome:!1,color:this.config.chip.display.color||"RGB565"}},t=this.getWakewordModelInfo();if(t&&(e.srmodels=t.filename,t.type==="MultiNet"&&t.custom)){const r=t.custom;e.multinet_model={language:r.model.includes("_en")?"en":"cn",duration:r.duration||3e3,threshold:r.threshold/100,commands:[{command:r.command,text:r.name,action:"wake"}]}}const i=this.getFontInfo();i&&(e.text_font=i.filename);const n=this.getSkinInfo();Object.keys(n).length>0&&(e.skin=n);const o=this.getEmojiCollectionInfo();return o.length>0&&(e.emoji_collection=o.map(r=>({name:r.name,file:r.file}))),e}preparePackageResources(){var g,s,a,I;const e={files:[],indexJson:this.generateIndexJson(),config:{...this.config}},t=this.getWakewordModelInfo();t&&t.name&&e.files.push({type:"wakeword",name:t.name,filename:t.filename,modelType:t.type,isCustom:t.type==="MultiNet"});const i=this.getFontInfo();i&&e.files.push({type:"font",filename:i.filename,source:i.source,config:i.config||null});const n=this.getEmojiCollectionInfo(),o=new Set;n.forEach(l=>{if(l.fileHash){if(o.has(l.fileHash)){console.log(`Skipping duplicate file: ${l.name} -> ${l.file} (hash: ${l.fileHash.substring(0,8)})`);return}o.add(l.fileHash)}e.files.push({type:"emoji",name:l.name,filename:l.file,source:l.source,size:l.size,fileHash:l.fileHash})});const r=(s=(g=this.config)==null?void 0:g.theme)==null?void 0:s.skin;return((a=r==null?void 0:r.light)==null?void 0:a.backgroundType)==="image"&&r.light.backgroundImage&&e.files.push({type:"background",filename:"background_light.raw",source:r.light.backgroundImage,mode:"light"}),((I=r==null?void 0:r.dark)==null?void 0:I.backgroundType)==="image"&&r.dark.backgroundImage&&e.files.push({type:"background",filename:"background_dark.raw",source:r.dark.backgroundImage,mode:"dark"}),e}async preprocessCustomFonts(e=null){const t=this.getFontInfo();if(t&&t.type==="custom"&&!this.convertedFonts.has(t.filename)){e&&e(20,"Converting custom font...");try{const i={fontFile:t.source,fontName:t.filename.replace(/\.bin$/,""),fontSize:t.config.size,bpp:t.config.bpp,charset:t.config.charset,symbols:t.config.symbols||"",range:t.config.range||"",compression:!1,progressCallback:(o,r)=>{e&&e(20+o*.2,`Font conversion: ${r}`)}};let n;if(await this.fontConverterBrowser.initialize(),n=await this.fontConverterBrowser.convertToCBIN(i),this.convertedFonts.set(t.filename,n),this.autoSaveEnabled){const o=`converted_font_${t.filename}`;try{await this.configStorage.saveTempData(o,n,"converted_font",{filename:t.filename,size:t.config.size,bpp:t.config.bpp,charset:t.config.charset}),console.log(`Converted font saved to storage: ${t.filename}`)}catch(r){console.warn(`Failed to save converted font: ${t.filename}`,r)}}}catch(i){throw console.error("Font conversion failed:",i),new Error(`Font conversion failed: ${i.message}`)}}}async generateAssetsBin(e=null){if(!this.config)throw new Error("Configuration object not set");try{e&&e(0,"Starting generation..."),await this.preprocessCustomFonts(e),await new Promise(n=>setTimeout(n,100)),e&&e(40,"Preparing resource files...");const t=this.preparePackageResources();this.wakenetPacker.clear(),this.spiffsGenerator.clear(),await this.processResourceFiles(t,e),await new Promise(n=>setTimeout(n,100)),e&&e(90,"Generating final file..."),this.spiffsGenerator.printFileList();const i=await this.spiffsGenerator.generate((n,o)=>{e&&e(90+n*.1,o)});return e&&e(100,"Generation completed"),new Blob([i],{type:"application/octet-stream"})}catch(t){throw console.error("Failed to generate assets.bin:",t),t}}downloadAssetsBin(e,t="assets.bin"){const i=URL.createObjectURL(e),n=document.createElement("a");n.href=i,n.download=t,document.body.appendChild(n),n.click(),document.body.removeChild(n),URL.revokeObjectURL(i)}async getFontInfoWithDetails(e=null){var t,i,n,o;try{const r=e||((o=(n=(i=(t=this.config)==null?void 0:t.theme)==null?void 0:i.font)==null?void 0:n.custom)==null?void 0:o.file);if(!r)return null;let g;return await this.fontConverterBrowser.initialize(),g=await this.fontConverterBrowser.getFontInfo(r),{...g,file:r,isCustom:!0}}catch(r){return console.error("Failed to get font details:",r),null}}async estimateFontSize(e=null){var t,i,n;try{const o=e||((n=(i=(t=this.config)==null?void 0:t.theme)==null?void 0:i.font)==null?void 0:n.custom);if(!o)return null;const r={fontSize:o.size,bpp:o.bpp,charset:o.charset,symbols:o.symbols||"",range:o.range||""};let g;return g=this.fontConverterBrowser.estimateSize(r),g}catch(o){return console.error("Failed to estimate font size:",o),null}}validateCustomFont(e){const t=[],i=[];return e.file?this.fontConverterBrowser.validateFont(e.file)||t.push("Font file format not supported"):t.push("Missing font file"),(e.size<8||e.size>80)&&t.push("Font size must be between 8-80"),[1,2,4,8].includes(e.bpp)||t.push("BPP must be 1, 2, 4 or 8"),!e.charset&&!e.symbols&&!e.range&&i.push("No charset, symbols or range specified, default charset will be used"),{valid:t.length===0,errors:t,warnings:i}}getConverterStatus(){return{initialized:this.fontConverterBrowser.initialized,supportedFormats:this.fontConverterBrowser.supportedFormats}}async processResourceFiles(e,t=null){let i=0;const n=e.files.length,o=new TextEncoder().encode(JSON.stringify(e.indexJson,null,2));console.log("index.json",e.indexJson),this.spiffsGenerator.addFile("index.json",o.buffer);for(const r of e.files){const g=40+i/n*40;t&&t(g,`Processing file: ${r.filename}`);try{await this.processResourceFile(r),i++}catch(s){throw console.error(`Failed to process resource file: ${r.filename}`,s),new Error(`Failed to process resource file: ${r.filename} - ${s.message}`)}}}async processResourceFile(e){switch(e.type){case"wakeword":await this.processWakewordModel(e);break;case"font":await this.processFontFile(e);break;case"emoji":await this.processEmojiFile(e);break;case"background":await this.processBackgroundFile(e);break;default:console.warn(`Unknown resource type: ${e.type}`)}}async processWakewordModel(e){if(!await this.wakenetPacker.loadModelFromShare(e.name))throw new Error(`Failed to load wakeword model: ${e.name}`);const i=this.wakenetPacker.packModels();this.spiffsGenerator.addFile(e.filename,i)}async processFontFile(e){if(e.config){const t=this.convertedFonts.get(e.filename);if(t)this.spiffsGenerator.addFile(e.filename,t);else throw new Error(`Converted font not found: ${e.filename}`)}else{const t=await this.loadPresetFont(e.source);this.spiffsGenerator.addFile(e.filename,t)}}async processEmojiFile(e){var r,g;let t,i=!1,n="png",o=!1;if(typeof e.source=="string"&&e.source.startsWith("preset:")){const s=e.source.replace("preset:","");t=await this.loadPresetEmoji(s,e.name)}else{const s=e.source;o=this.isGifFile(s),n=s.name.split(".").pop().toLowerCase();try{const I=await this.getImageDimensions(s),l=e.size||{width:64,height:64};(I.width>l.width||I.height>l.height)&&(i=!0,console.log(`Emoji ${e.name} needs scaling: ${I.width}x${I.height} -> ${l.width}x${l.height}`))}catch(I){console.warn(`Failed to get emoji image dimensions: ${e.name}`,I)}i||(t=await this.fileToArrayBuffer(s))}if(i)try{const s=e.size||{width:64,height:64};if(o){console.log(`Using WasmGifScaler to process GIF emoji: ${e.name}`);const a=await this.gifScaler.scaleGif(e.source,{maxWidth:s.width,maxHeight:s.height,keepAspectRatio:!0,lossy:30});t=await this.fileToArrayBuffer(a)}else t=await this.scaleImageToFit(e.source,s,n)}catch(s){console.error(`Failed to scale emoji image: ${e.name}`,s),t=await this.fileToArrayBuffer(e.source)}this.spiffsGenerator.addFile(e.filename,t,{width:((r=e.size)==null?void 0:r.width)||0,height:((g=e.size)==null?void 0:g.height)||0}),e.fileHash&&console.log(`Emoji file added: ${e.filename} (hash: ${e.fileHash.substring(0,8)})`)}async processBackgroundFile(e){const t=await this.fileToArrayBuffer(e.source),i=await this.convertImageToRgb565(t);this.spiffsGenerator.addFile(e.filename,i)}async loadPresetFont(e){try{const t=await fetch(`./static/fonts/${e}.bin`);if(!t.ok)throw new Error(`HTTP ${t.status}`);return await t.arrayBuffer()}catch(t){throw new Error(`Failed to load preset font: ${e} - ${t.message}`)}}async loadPresetEmoji(e,t){try{const i=await fetch(`./static/${e}/${t}.png`);if(!i.ok)throw new Error(`HTTP ${i.status}`);return await i.arrayBuffer()}catch(i){throw new Error(`Failed to load preset emoji: ${e}/${t} - ${i.message}`)}}fileToArrayBuffer(e){return new Promise((t,i)=>{const n=new FileReader;n.onload=()=>t(n.result),n.onerror=()=>i(new Error("Failed to read file")),n.readAsArrayBuffer(e)})}async scaleImageToFit(e,t,i="png"){return new Promise((n,o)=>{const r=e instanceof File?e:new Blob([e]),g=URL.createObjectURL(r),s=new Image;s.onload=()=>{try{const a=document.createElement("canvas"),I=a.getContext("2d");a.width=t.width,a.height=t.height;const l=s.width/s.height,C=t.width/t.height;let Q,u,f,h;l>C?(Q=t.width,u=t.width/l,f=0,h=(t.height-u)/2):(u=t.height,Q=t.height*l,f=(t.width-Q)/2,h=0),i==="png"?I.clearRect(0,0,a.width,a.height):(I.fillStyle="#FFFFFF",I.fillRect(0,0,a.width,a.height)),I.drawImage(s,f,h,Q,u),a.toBlob(E=>{const p=new FileReader;p.onload=()=>n(p.result),p.onerror=()=>o(new Error("Failed to convert image data")),p.readAsArrayBuffer(E)},`image/${i}`),URL.revokeObjectURL(g)}catch(a){URL.revokeObjectURL(g),o(a)}},s.onerror=()=>{URL.revokeObjectURL(g),o(new Error("Unable to load image"))},s.src=g})}isGifFile(e){return e.type==="image/gif"?!0:e.name.split(".").pop().toLowerCase()==="gif"}async getImageDimensions(e){return new Promise((t,i)=>{const n=e instanceof File?e:new Blob([e]),o=URL.createObjectURL(n),r=new Image;r.onload=()=>{URL.revokeObjectURL(o),t({width:r.width,height:r.height})},r.onerror=()=>{URL.revokeObjectURL(o),i(new Error("Unable to get image dimensions"))},r.src=o})}async convertImageToRgb565(e){return new Promise((t,i)=>{const n=new Blob([e]),o=URL.createObjectURL(n),r=new Image;r.onload=()=>{var g,s,a,I,l,C;try{const Q=document.createElement("canvas"),u=Q.getContext("2d",{willReadFrequently:!0});Q.width=((a=(s=(g=this.config)==null?void 0:g.chip)==null?void 0:s.display)==null?void 0:a.width)||320,Q.height=((C=(l=(I=this.config)==null?void 0:I.chip)==null?void 0:l.display)==null?void 0:C.height)||240;const f=r.width/r.height,h=Q.width/Q.height;let E,p,c,d;f>h?(p=Q.height,E=Q.height*f,c=(Q.width-E)/2,d=0):(E=Q.width,p=Q.width/f,c=0,d=(Q.height-p)/2),u.drawImage(r,c,d,E,p);const F=u.getImageData(0,0,Q.width,Q.height).data,N=new ArrayBuffer(Q.width*Q.height*2),G=new Uint16Array(N);for(let Y=0;Y<F.length;Y+=4){const j=F[Y]>>3,sA=F[Y+1]>>2,SA=F[Y+2]>>3;G[Y/4]=j<<11|sA<<5|SA}const P=25,b=18,R=Q.width*2,L=28,EA=L+N.byteLength,pA=new ArrayBuffer(EA),lA=new Uint8Array(pA),nA=new DataView(pA);let z=0;const tA=0|b<<8|P;nA.setUint32(z,tA,!0),z+=4;const dA=Q.height<<16|Q.width;nA.setUint32(z,dA,!0),z+=4;const kA=0|R;nA.setUint32(z,kA,!0),z+=4,nA.setUint32(z,N.byteLength,!0),z+=4,nA.setUint32(z,L,!0),z+=4,nA.setUint32(z,0,!0),z+=4,nA.setUint32(z,0,!0),z+=4,lA.set(new Uint8Array(N),L),URL.revokeObjectURL(o),t(pA)}catch(Q){URL.revokeObjectURL(o),i(Q)}},r.onerror=()=>{URL.revokeObjectURL(o),i(new Error("Unable to load image"))},r.src=o})}cleanup(){this.resources.clear(),this.tempFiles=[],this.convertedFonts.clear(),this.wakenetPacker.clear(),this.spiffsGenerator.clear(),this.gifScaler.dispose()}async clearAllStoredData(){try{await this.configStorage.clearAll(),this.cleanup(),console.log("All stored data cleared")}catch(e){throw console.error("Failed to clear stored data:",e),e}}async getStorageStatus(){try{const e=await this.configStorage.getStorageInfo();return{hasStoredData:await this.configStorage.hasStoredConfig(),storageInfo:e,autoSaveEnabled:this.autoSaveEnabled}}catch(e){return console.error("Failed to get storage status:",e),{hasStoredData:!1,storageInfo:null,autoSaveEnabled:this.autoSaveEnabled}}}setAutoSave(e){this.autoSaveEnabled=e,console.log(`Auto-save ${e?"enabled":"disabled"}`)}getResourceSummary(){const e=[],t=this.preparePackageResources(),i={wakeword:0,font:0,emoji:0,background:0};return t.files.forEach(n=>{i[n.type]=(i[n.type]||0)+1;let o="";switch(n.type){case"wakeword":o=`Wakeword model: ${n.name} (${n.modelType})`;break;case"font":n.config?o=`Custom font: size ${n.config.size}px, BPP ${n.config.bpp}`:o=`Preset font: ${n.source}`;break;case"emoji":o=`Emoji: ${n.name} (${n.size.width}x${n.size.height})`;break;case"background":o=`${n.mode==="light"?"Light":"Dark"} mode background`;break}e.push({type:n.type,filename:n.filename,description:o})}),{files:e,counts:i,totalFiles:e.length,indexJson:t.indexJson}}}const CS={class:"fixed inset-0 bg-black bg-opacity-50 flex items-center justify-center z-50 p-4"},lS={class:"bg-white rounded-lg shadow-xl max-w-2xl w-full max-h-[90vh] overflow-hidden"},BS={class:"flex items-center justify-between p-6 border-b border-gray-200"},QS={class:"text-lg font-medium text-gray-900"},cS={key:1,class:"text-sm text-orange-600 font-medium"},ES={class:"p-6 overflow-y-auto",style:{"max-height":"calc(90vh - 140px)"}},uS={key:0,class:"space-y-6"},hS={class:"font-medium text-gray-900 mb-3"},fS={class:"bg-gray-50 rounded-lg p-4 space-y-2 text-sm"},dS={class:"flex justify-between"},pS={class:"text-gray-600"},mS={class:"font-medium"},yS={class:"flex justify-between"},wS={class:"text-gray-600"},DS={class:"font-medium"},kS={class:"flex justify-between"},vS={class:"text-gray-600"},FS={class:"font-medium"},SS={class:"flex justify-between"},bS={class:"text-gray-600"},RS={class:"font-medium"},NS={class:"flex justify-between"},GS={class:"text-gray-600"},LS={class:"font-medium"},US={class:"font-medium text-gray-900 mb-3"},MS={class:"space-y-2 max-h-64 overflow-y-auto"},xS={class:"flex items-center"},JS={class:"text-sm font-medium text-gray-900"},TS={class:"text-sm text-gray-700"},HS={key:0,class:"text-xs text-gray-500 ml-1"},YS={key:1,class:"text-xs text-gray-500 ml-1"},_S={key:1,class:"space-y-6 text-center"},KS={class:"space-y-4"},PS={class:"text-gray-600 mt-2"},OS={class:"bg-gray-200 rounded-full h-2 overflow-hidden"},VS={class:"text-sm text-gray-600"},WS={class:"mt-1"},qS={class:"space-y-2 text-left"},jS={class:"flex-shrink-0 mr-3"},ZS={key:0,class:"w-5 h-5 bg-green-500 rounded-full flex items-center justify-center"},XS={key:1,class:"w-5 h-5 bg-primary-500 rounded-full animate-pulse"},zS={key:2,class:"w-5 h-5 bg-gray-300 rounded-full"},$S={key:2,class:"text-center space-y-6"},Ab={class:"text-gray-600 mt-2"},eb={class:"bg-green-50 border border-green-200 rounded-lg p-4"},tb={class:"text-sm text-green-800 space-y-1"},ib={class:"space-y-3"},nb=["disabled"],ob={key:3,class:"space-y-6 text-center"},rb={class:"space-y-4"},gb={class:"text-gray-600"},sb={class:"bg-gray-200 rounded-full h-2 overflow-hidden"},ab={class:"text-sm text-gray-600"},Ib={class:"mt-1"},Cb={key:4,class:"text-center mt-4"},lb={class:"text-sm text-red-600"},Bb={class:"flex justify-end space-x-3 p-6 border-t border-gray-200"},Qb=["disabled"],cb={__name:"GenerateModal",props:{config:{type:Object,required:!0}},emits:["close","generate","startFlash","cancelFlash"],setup(A,{emit:e}){const{t}=Fe(),i=A,n=e,{deviceInfo:o}=Go(),r=uA(!1),g=uA(!1),s=uA(0),a=uA(""),I=uA(""),l=uA(""),C=uA(null),Q=uA(null),u=uA(!1),f=uA(!1),h=uA(0),E=uA(""),p=uA(""),c=fA(()=>[{id:1,name:t("progressSteps.init"),status:"pending"},{id:2,name:t("progressSteps.font"),status:"pending"},{id:3,name:t("progressSteps.wakeword"),status:"pending"},{id:4,name:t("progressSteps.emoji"),status:"pending"},{id:5,name:t("progressSteps.background"),status:"pending"},{id:6,name:t("progressSteps.index"),status:"pending"},{id:7,name:t("progressSteps.spiffs"),status:"pending"},{id:8,name:t("progressSteps.package"),status:"pending"}]),d=uA([]),w=Pi({render:()=>LA("svg",{fill:"currentColor",viewBox:"0 0 20 20"},[LA("path",{d:"M4 3a2 2 0 00-2 2v1a1 1 0 001 1h14a1 1 0 001-1V5a2 2 0 00-2-2H4zM3 8a1 1 0 011-1h12a1 1 0 011 1v5a2 2 0 01-2 2H5a2 2 0 01-2-2V8z"})])}),F=Pi({render:()=>LA("svg",{fill:"currentColor",viewBox:"0 0 20 20"},[LA("path",{"fill-rule":"evenodd",d:"M7 4a3 3 0 016 0v4a3 3 0 11-6 0V4zm4 10.93A7.001 7.001 0 0017 8a1 1 0 10-2 0A5 5 0 015 8a1 1 0 00-2 0 7.001 7.001 0 006 6.93V17H6a1 1 0 100 2h8a1 1 0 100-2h-3v-2.07z","clip-rule":"evenodd"})])}),N=Pi({render:()=>LA("svg",{fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[LA("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M8 4l8 16m-6-6h4"})])}),G=Pi({render:()=>LA("svg",{fill:"currentColor",viewBox:"0 0 20 20"},[LA("path",{"fill-rule":"evenodd",d:"M4 3a2 2 0 00-2 2v10a2 2 0 002 2h12a2 2 0 002-2V5a2 2 0 00-2-2H4zm12 12H4l4-8 3 6 2-4 3 6z","clip-rule":"evenodd"})])}),P=fA(()=>d.value.length>0),b=()=>{const Y=i.config.theme.wakeword;return!Y||Y.type==="none"?t("wakewordConfig.noWakeword"):Y.type==="preset"?{wn9s_hilexin:"Hi,乐鑫",wn9s_hiesp:"Hi,ESP",wn9s_nihaoxiaozhi:"你好小智",wn9_nihaoxiaozhi_tts:"你好小智",wn9_alexa:"Alexa"}[Y.preset]||Y.preset:Y.type==="custom"?Y.custom.name||t("wakewordConfig.customWakeword"):t("wakewordConfig.noWakeword")},R=()=>i.config.theme.font.type==="preset"?i.config.theme.font.preset.replace("font_","").replace("_"," "):t("generateModal.customFont"),L=()=>i.config.theme.emoji.type==="preset"&&i.config.theme.emoji.preset?i.config.theme.emoji.preset==="twemoji32"?"Twemoji 32×32":"Twemoji 64×64":i.config.theme.emoji.type==="custom"?t("generateModal.customEmoji"):i.config.theme.emoji.type==="none"?t("emojiConfig.noEmojiPack"):t("generateModal.notConfigured"),EA=()=>{d.value=[],d.value.push({id:"index",name:"index.json",description:"配置索引文件",icon:w,iconColor:"text-blue-500",size:"1KB"});const Y=i.config.theme.wakeword;if(Y&&Y.type!=="none"&&d.value.push({id:"srmodels",name:"srmodels.bin",description:Y.type==="custom"?"自定义命令词模型":"预设唤醒词模型",icon:F,iconColor:"text-green-500",size:Y.type==="custom"?"~1.2MB":"~300KB"}),i.config.theme.font.type==="preset"){const j={font_puhui_deepseek_14_1:"180KB",font_puhui_deepseek_16_4:"720KB",font_puhui_deepseek_20_4:"1.1MB",font_puhui_deepseek_30_4:"2.5MB"};d.value.push({id:"font",name:`${i.config.theme.font.preset}.bin`,description:"预设字体文件",icon:N,iconColor:"text-yellow-500",size:j[i.config.theme.font.preset]||"500KB"})}else if(i.config.theme.font.custom.file){const j=i.config.theme.font.custom,sA=Math.max(100,j.size*j.size*j.bpp*.7);d.value.push({id:"font",name:`font_custom_${j.size}_${j.bpp}.bin`,description:"自定义字体文件",icon:N,iconColor:"text-yellow-500",size:sA>1024?`${(sA/1024).toFixed(1)}MB`:`${Math.round(sA)}KB`,estimated:!0})}if(i.config.theme.emoji.type==="preset"&&i.config.theme.emoji.preset){const j=["neutral","happy","laughing","funny","sad","angry","crying","loving","embarrassed","surprised","shocked","thinking","winking","cool","relaxed","delicious","kissy","confident","sleepy","silly","confused"],sA=i.config.theme.emoji.preset==="twemoji64"?"3KB":"1KB";j.forEach(SA=>{d.value.push({id:`emoji_${SA}`,name:`${SA}.png`,description:`${SA}表情图片`,icon:G,iconColor:"text-pink-500",size:sA})})}else if(i.config.theme.emoji.type==="custom"){const j=i.config.theme.emoji.custom,sA=j.emotionMap||{},SA=j.fileMap||{};if(j.images,Object.keys(sA).length===0||Object.keys(SA).length===0){console.error(t("errors.incompatibleEmojiData"));return}const UA=new Map,HA=new Map;Object.entries(sA).forEach(([M,X])=>{const AA=SA[X];if(AA){if(!UA.has(X)){const CA=Math.round(AA.size/1024);UA.set(X,{file:AA,size:CA>1024?`${(CA/1024).toFixed(1)}MB`:`${CA}KB`,emotions:[]})}UA.get(X).emotions.push(M),HA.set(M,X)}}),UA.forEach((M,X)=>{const AA=M.emotions.join(", "),CA=M.emotions.length>1;d.value.push({id:`emoji_${X.substring(0,8)}`,name:`emoji_${X.substring(0,8)}.${M.file.name.split(".").pop()}`,description:CA?`共享表情图片 (${AA})`:`${AA}表情图片`,icon:G,iconColor:CA?"text-purple-500":"text-pink-500",size:M.size,isCustomEmoji:!0})}),UA.size<Object.keys(sA).length&&console.log(`表情去重:${Object.keys(sA).length} 个表情使用了 ${UA.size} 个文件`)}if(i.config.theme.skin.light.backgroundType==="image"&&i.config.theme.skin.light.backgroundImage){const{width:j,height:sA}=i.config.chip.display,SA=Math.round(j*sA*2/1024);d.value.push({id:"bg_light",name:"background_light.raw",description:"浅色模式背景图片",icon:G,iconColor:"text-indigo-500",size:SA>1024?`${(SA/1024).toFixed(1)}MB`:`${SA}KB`,estimated:!0})}if(i.config.theme.skin.dark.backgroundType==="image"&&i.config.theme.skin.dark.backgroundImage){const{width:j,height:sA}=i.config.chip.display,SA=Math.round(j*sA*2/1024);d.value.push({id:"bg_dark",name:"background_dark.raw",description:"深色模式背景图片",icon:G,iconColor:"text-indigo-500",size:SA>1024?`${(SA/1024).toFixed(1)}MB`:`${SA}KB`,estimated:!0})}},pA=Y=>{if(Y===0)return"0 B";const j=1024,sA=["B","KB","MB","GB"],SA=Math.floor(Math.log(Y)/Math.log(j));return`${parseFloat((Y/Math.pow(j,SA)).toFixed(2))} ${sA[SA]}`},lA=Y=>{if(Y<1e3)return`${Y}ms`;if(Y<6e4)return`${(Y/1e3).toFixed(1)}s`;{const j=Math.floor(Y/6e4),sA=Math.floor(Y%6e4/1e3);return`${j}m ${sA}s`}},nA=async()=>{r.value=!0,s.value=0,Q.value=Date.now();try{const Y=new _l;Y.setConfig(i.config);const j=await Y.generateAssetsBin((UA,HA)=>{s.value=parseInt(UA),a.value=HA;const M=Math.floor(UA/(100/c.value.length));c.value.forEach((X,AA)=>{AA<M?X.status="completed":AA===M?X.status="processing":X.status="pending"})});r.value=!1,g.value=!0,I.value=pA(j.size);const SA=Date.now()-Q.value;l.value=lA(SA),C.value=j,c.value.forEach(UA=>{UA.status="completed"}),n("generate",d.value.map(UA=>({id:UA.id,name:UA.name})))}catch(Y){console.error("生成 assets.bin 失败:",Y),r.value=!1,g.value=!1,alert(t("errors.generationFailed",{error:Y.message}))}},z=()=>{if(C.value){const Y=URL.createObjectURL(C.value),j=document.createElement("a");j.href=Y,j.download="assets.bin",j.style.display="none",document.body.appendChild(j),j.click(),document.body.removeChild(j),URL.revokeObjectURL(Y)}else console.error(t("errors.noFileToDownload"))},tA=async()=>{try{const j=new URLSearchParams(window.location.search).get("token");if(!j){u.value=!1;return}const sA=await fetch("/api/messaging/device/tools/list",{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${j}`}});u.value=sA.ok}catch(Y){console.error(t("flashProgress.unableToGetDeviceStatus"),Y),u.value=!1}},dA=async()=>{if(!C.value){alert(t("errors.noFileToDownload"));return}if(!u.value){alert(t("errors.deviceOffline"));return}if(o.value.assetsPartition&&o.value.assetsPartition.size){const Y=o.value.assetsPartition.size,j=C.value.size;if(j>Y){const sA=(j/1024/1024).toFixed(2),SA=(Y/1024/1024).toFixed(2);alert(t("errors.fileTooLarge",{fileSize:sA,partitionSize:SA}));return}}f.value=!0,h.value=0,E.value=t("flashProgress.startingFileTransfer"),p.value="";try{n("startFlash",{blob:C.value,onProgress:(Y,j)=>{h.value=Y,E.value=j},onComplete:()=>{f.value=!1,h.value=100,E.value=t("flashProgress.flashCompleted")},onError:Y=>{f.value=!1,p.value=Y,console.error(t("flashProgress.onlineFlashFailed",{error:Y}))}})}catch(Y){f.value=!1,p.value=t("flashProgress.onlineFlashFailed",{error:Y.message}),console.error(t("flashProgress.onlineFlashFailed",{error:Y}))}},kA=()=>{confirm(t("errors.flashCancelConfirm"))&&(f.value=!1,h.value=0,E.value="",p.value="",n("cancelFlash"))};return St(async()=>{EA(),await tA()}),(Y,j)=>(H(),_("div",CS,[B("div",lS,[B("div",BS,[B("h3",QS,v(Y.$t("generateModal.title")),1),f.value?(H(),_("div",cS,v(Y.$t("generateModal.flashingInProgress")),1)):(H(),_("button",{key:0,onClick:j[0]||(j[0]=sA=>Y.$emit("close")),class:"text-gray-400 hover:text-gray-500"},[...j[3]||(j[3]=[B("svg",{class:"w-6 h-6",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor"},[B("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M6 18L18 6M6 6l12 12"})],-1)])]))]),B("div",ES,[!r.value&&!g.value?(H(),_("div",uS,[B("div",null,[B("h4",hS,v(Y.$t("generateModal.confirmConfig")),1),B("div",fS,[B("div",dS,[B("span",pS,v(Y.$t("generateModal.chipModel")),1),B("span",mS,v(A.config.chip.model.toUpperCase()),1)]),B("div",yS,[B("span",wS,v(Y.$t("generateModal.resolution")),1),B("span",DS,v(A.config.chip.display.width)+"×"+v(A.config.chip.display.height),1)]),B("div",kS,[B("span",vS,v(Y.$t("generateModal.wakeword")),1),B("span",FS,v(b()),1)]),B("div",SS,[B("span",bS,v(Y.$t("generateModal.font")),1),B("span",RS,v(R()),1)]),B("div",NS,[B("span",GS,v(Y.$t("generateModal.emoji")),1),B("span",LS,v(L()),1)])])]),B("div",null,[B("h4",US,v(Y.$t("generateModal.fileList")),1),B("div",MS,[(H(!0),_(ZA,null,Pe(d.value,sA=>(H(),_("div",{key:sA.id,class:"flex items-center justify-between px-3 py-2 border border-gray-200 rounded bg-gray-50"},[B("div",xS,[(H(),we(HI(sA.icon),{class:vA(["w-4 h-4 mr-2",sA.iconColor])},null,8,["class"])),B("span",JS,v(sA.name),1)]),B("div",TS,[st(v(sA.size)+" ",1),sA.estimated?(H(),_("span",HS,v(Y.$t("generateModal.estimated")),1)):aA("",!0),sA.isCustomEmoji?(H(),_("span",YS,v(Y.$t("generateModal.compressed")),1)):aA("",!0)])]))),128))])])])):aA("",!0),r.value?(H(),_("div",_S,[j[5]||(j[5]=B("div",{class:"flex items-center justify-center"},[B("div",{class:"animate-spin rounded-full h-16 w-16 border-b-2 border-primary-500"})],-1)),B("div",KS,[B("p",PS,v(Y.$t("generateModal.generating")),1),B("div",OS,[B("div",{class:"bg-primary-500 h-2 rounded-full transition-all duration-500 ease-out",style:qA({width:s.value+"%"})},null,4)]),B("div",VS,[B("div",null,v(a.value),1),B("div",WS,v(Y.$t("generateModal.progress",{progress:s.value})),1)])]),B("div",qS,[(H(!0),_(ZA,null,Pe(c.value,sA=>(H(),_("div",{key:sA.id,class:"flex items-center text-sm"},[B("div",jS,[sA.status==="completed"?(H(),_("div",ZS,[...j[4]||(j[4]=[B("svg",{class:"w-3 h-3 text-white",fill:"currentColor",viewBox:"0 0 20 20"},[B("path",{"fill-rule":"evenodd",d:"M16.707 5.293a1 1 0 010 1.414l-8 8a1 1 0 01-1.414 0l-4-4a1 1 0 011.414-1.414L8 12.586l7.293-7.293a1 1 0 011.414 0z","clip-rule":"evenodd"})],-1)])])):sA.status==="processing"?(H(),_("div",XS)):(H(),_("div",zS))]),B("span",{class:vA([sA.status==="completed"?"text-green-700":sA.status==="processing"?"text-primary-700":"text-gray-500"])},v(sA.name),3)]))),128))])])):aA("",!0),g.value&&!f.value?(H(),_("div",$S,[j[8]||(j[8]=B("div",{class:"mx-auto flex items-center justify-center"},[B("svg",{class:"w-20 h-20 text-green-600",fill:"currentColor",viewBox:"0 0 20 20"},[B("path",{"fill-rule":"evenodd",d:"M10 18a8 8 0 100-16 8 8 0 000 16zm3.707-9.293a1 1 0 00-1.414-1.414L9 10.586 7.707 9.293a1 1 0 00-1.414 1.414l2 2a1 1 0 001.414 0l4-4z","clip-rule":"evenodd"})])],-1)),B("div",null,[B("p",Ab,v(Y.$t("generateModal.completed")),1)]),B("div",eb,[B("div",tb,[B("div",null,v(Y.$t("generateModal.filename")),1),B("div",null,v(Y.$t("generateModal.fileSize",{size:I.value})),1),B("div",null,v(Y.$t("generateModal.generationTime",{time:l.value})),1)])]),B("div",ib,[B("button",{onClick:z,class:"w-full bg-gray-100 hover:bg-gray-200 text-gray-700 px-6 py-3 rounded-lg font-medium transition-colors flex items-center justify-center"},[j[6]||(j[6]=B("svg",{class:"w-5 h-5 mr-2",fill:"currentColor",viewBox:"0 0 20 20"},[B("path",{"fill-rule":"evenodd",d:"M3 17a1 1 0 011-1h12a1 1 0 110 2H4a1 1 0 01-1-1zm3.293-7.707a1 1 0 011.414 0L9 10.586V3a1 1 0 112 0v7.586l1.293-1.293a1 1 0 111.414 1.414l-3 3a1 1 0 01-1.414 0l-3-3a1 1 0 010-1.414z","clip-rule":"evenodd"})],-1)),st(" "+v(Y.$t("generateModal.downloadAssets")),1)]),B("button",{onClick:dA,disabled:!u.value,class:"w-full bg-blue-500 hover:bg-blue-600 disabled:bg-gray-300 text-white px-6 py-3 rounded-lg font-medium transition-colors flex items-center justify-center"},[j[7]||(j[7]=B("svg",{class:"w-5 h-5 mr-2",fill:"currentColor",viewBox:"0 0 20 20"},[B("path",{"fill-rule":"evenodd",d:"M3 17a1 1 0 011-1h12a1 1 0 110 2H4a1 1 0 01-1-1zm3.293-7.707a1 1 0 011.414 0L9 10.586V3a1 1 0 112 0v7.586l1.293-1.293a1 1 0 111.414 1.414l-3 3a1 1 0 01-1.414 0l-3-3a1 1 0 010-1.414z","clip-rule":"evenodd"})],-1)),st(" "+v(Y.$t("generateModal.flashToDevice")),1)],8,nb)])])):aA("",!0),f.value&&!p.value?(H(),_("div",ob,[j[9]||(j[9]=B("div",{class:"flex items-center justify-center"},[B("div",{class:"animate-spin rounded-full h-16 w-16 border-b-2 border-blue-500"})],-1)),B("div",rb,[B("p",gb,v(Y.$t("generateModal.flashing")),1),B("div",sb,[B("div",{class:"bg-blue-500 h-2 rounded-full transition-all duration-500 ease-out",style:qA({width:h.value+"%"})},null,4)]),B("div",ab,[B("div",null,v(E.value),1),B("div",Ib,v(Y.$t("generateModal.progress",{progress:h.value})),1)])]),B("button",{onClick:kA,class:"px-4 py-2 text-sm font-medium text-red-600 bg-red-50 hover:bg-red-100 rounded-md transition-colors"},v(Y.$t("generateModal.flashingCancel")),1)])):aA("",!0),p.value?(H(),_("div",Cb,[B("p",lb,v(p.value),1)])):aA("",!0)]),B("div",Bb,[!r.value&&!g.value?(H(),_("button",{key:0,onClick:j[1]||(j[1]=sA=>Y.$emit("close")),class:"px-4 py-2 text-sm font-medium text-gray-700 bg-gray-100 hover:bg-gray-200 rounded-md transition-colors"},v(Y.$t("common.cancel")),1)):aA("",!0),!r.value&&!g.value?(H(),_("button",{key:1,onClick:nA,disabled:!P.value,class:"px-6 py-2 text-sm font-medium text-white bg-primary-500 hover:bg-primary-600 disabled:bg-gray-300 rounded-md transition-colors"},v(Y.$t("common.start"))+" "+v(Y.$t("common.generate")),9,Qb)):aA("",!0),g.value&&!f.value?(H(),_("button",{key:2,onClick:j[2]||(j[2]=sA=>Y.$emit("close")),class:"px-4 py-2 text-sm font-medium text-gray-700 bg-gray-100 hover:bg-gray-200 rounded-md transition-colors"},v(Y.$t("common.close")),1)):aA("",!0)])])]))}};class Eb{constructor(e){this.token=e,this.ws=null,this.isConnected=!1,this.isCancelled=!1,this.chunkSize=64*1024,this.onProgress=null,this.onError=null,this.onComplete=null,this.onDownloadUrlReady=null,this.onTransferStarted=null,this.currentSession=null,this.totalBytesSent=0,this.isSendingChunk=!1}async connect(){return new Promise((e,t)=>{try{const i=`wss://api.tenclass.net/transfer/?token=${encodeURIComponent(this.token)}`;this.ws=new WebSocket(i),this.ws.onopen=()=>{this.isConnected=!0,console.log("WebSocket connected to transfer server"),e()},this.ws.onmessage=n=>{this.handleMessage(n)},this.ws.onerror=n=>{console.error("WebSocket error:",n),this.isConnected=!1,t(new Error("WebSocket connection failed"))},this.ws.onclose=n=>{console.log("WebSocket closed:",n.code,n.reason),this.isConnected=!1},setTimeout(()=>{this.isConnected||(this.ws.close(),t(new Error("WebSocket connection timeout")))},1e4)}catch(i){t(new Error(`Failed to create WebSocket connection: ${i.message}`))}})}handleMessage(e){try{if(typeof e.data=="string"){const t=JSON.parse(e.data);switch(t.type){case"file_created":this.currentSession&&(this.currentSession.url=t.url,this.onDownloadUrlReady&&this.onDownloadUrlReady(t.url));break;case"transfer_started":this.currentSession&&(this.currentSession.transferStarted=!0,this.onTransferStarted&&this.onTransferStarted(),this.currentSession.transferReady&&this.sendFileData());break;case"ack":if(this.currentSession){const{blob:i}=this.currentSession,n=i.size,o=t.bytesSent;if(o<0){console.error("Invalid server bytesSent (negative):",o),this.isSendingChunk=!1,this.onError&&this.onError(new Error("Server returned invalid byte count"));return}if(o>n){console.error(`Server bytesSent (${o}) exceeds fileSize (${n})`),this.isSendingChunk=!1,this.onError&&this.onError(new Error("Server byte count exceeds file size"));return}this.isSendingChunk=!1,o>this.currentSession.bytesSent&&(this.currentSession.bytesSent=o),this.sendFileData()}break;case"transfer_completed":if(this.currentSession){const i=this.currentSession.blob.size;this.totalBytesSent!==i&&console.warn(`Transfer size mismatch: sent ${this.totalBytesSent} bytes, expected ${i} bytes`)}this.onComplete&&this.onComplete();break;case"error":console.error("Transfer error:",t.message),this.onError&&this.onError(new Error(t.message));break}}}catch(t){console.error("Error handling message:",t),this.onError&&this.onError(t)}}async sendFileData(){if(this.isSendingChunk||!this.currentSession||this.isCancelled)return;const{blob:e}=this.currentSession,t=e.size;let i=this.currentSession.bytesSent;if(i>=t){this.onProgress&&this.onProgress(100,"Transfer completed, waiting for device confirmation...");return}if(this.isSendingChunk=!0,i>t){console.error(`Critical error: bytesSent (${i}) exceeds fileSize (${t})`),this.onError&&this.onError(new Error("Transfer byte count exceeds file size"));return}const n=Math.max(0,t-i),o=Math.min(this.chunkSize,n);if(o<=0)return;const r=e.slice(i,i+o);try{const g=await new Promise((l,C)=>{const Q=new FileReader;Q.onload=()=>l(Q.result),Q.onerror=()=>C(new Error("File read failed")),Q.readAsArrayBuffer(r)});if(this.isCancelled)return;this.ws.send(g);const s=i+o;if(this.currentSession.bytesSent=s,this.totalBytesSent+=o,s>t){console.error(`Critical error: bytesSent (${s}) exceeds fileSize (${t})`),this.onError&&this.onError(new Error("Transfer byte count exceeds file size"));return}if(this.totalBytesSent>t){console.error(`Critical error: totalBytesSent (${this.totalBytesSent}) exceeds fileSize (${t})`),this.onError&&this.onError(new Error("Total sent bytes exceed file size"));return}const a=Math.round(s/t*60)+40,I=`Transferring... ${Math.round(s/1024)}KB / ${Math.round(t/1024)}KB`;this.onProgress&&this.onProgress(a,I)}catch(g){console.error("Error sending file chunk:",g),this.isSendingChunk=!1,this.onError&&this.onError(g)}}async initializeSession(e,t,i,n){return new Promise((o,r)=>{this.onProgress=t,this.onError=g=>{i&&i(g),r(g)},this.onDownloadUrlReady=g=>{n&&n(g),o(g)},this.isCancelled=!1;try{this.onProgress&&this.onProgress(5,"Connecting to transfer server..."),this.connect().then(()=>{this.onProgress&&this.onProgress(10,"Creating file session...");const g={type:"create_file",fileName:"assets.bin",fileSize:e.size};this.ws.send(JSON.stringify(g)),this.currentSession={blob:e,bytesSent:0,fileSize:e.size,transferStarted:!1,transferReady:!0},this.totalBytesSent=0}).catch(g=>{console.error("Transfer initialization failed:",g),this.onError&&this.onError(g)})}catch(g){console.error("Transfer initialization failed:",g),this.onError&&this.onError(g)}})}async startTransfer(e,t,i){return new Promise((n,o)=>{if(this.onProgress=e,this.onError=r=>{this.isSendingChunk=!1,t&&t(r),o(r)},this.onComplete=()=>{this.isSendingChunk=!1,i&&i(),n()},!this.currentSession||!this.currentSession.blob){const r=new Error("Transfer session not initialized");this.onError&&this.onError(r),o(r);return}this.currentSession.transferReady=!0,this.currentSession.transferStarted&&this.sendFileData()})}async transferFile(e,t,i,n,o){if(o){await this.initializeSession(e,t,i,o);return}this.onProgress=t,this.onError=i,this.onComplete=n,this.isCancelled=!1;try{this.onProgress&&this.onProgress(5,"Connecting to transfer server..."),await this.connect(),this.onProgress&&this.onProgress(10,"Creating file session...");const r={type:"create_file",fileName:"assets.bin",fileSize:e.size};this.ws.send(JSON.stringify(r)),this.currentSession={blob:e,bytesSent:0,fileSize:e.size,transferStarted:!1,transferReady:!0}}catch(r){console.error("Transfer initialization failed:",r),this.onError&&this.onError(r)}}cancel(){this.isCancelled=!0,this.isSendingChunk=!1,this.ws&&this.ws.readyState===WebSocket.OPEN&&this.ws.close()}destroy(){this.cancel(),this.onProgress=null,this.onError=null,this.onComplete=null,this.onDownloadUrlReady=null,this.onTransferStarted=null,this.totalBytesSent=0,this.isSendingChunk=!1}}const ub={class:"flex items-center justify-between mb-2"},hb={class:"flex items-center"},fb={class:"text-blue-800 font-medium"},db={class:"text-blue-600 text-sm mb-3"},pb={class:"flex justify-end space-x-2"},mb={class:"flex items-center justify-center mb-8"},yb={class:"flex flex-col items-center"},wb={class:"text-sm mt-2 text-gray-600"},Db={key:0,class:"w-16 h-0.5 bg-gray-300 mx-4"},kb={class:"bg-white rounded-lg shadow-sm border p-6"},Kl={__name:"HomePage",setup(A){const{callMcpTool:e}=Go(),{t}=Fe(),i=uA(0),n=uA(!1),o=uA("wakeword"),r=uA(!1),g=uA(!1),s=uA(!1),a=uA(!0),I=new _l,l=uA(null),C=uA(null),Q=[{titleKey:"steps.chip",key:"chip"},{titleKey:"steps.theme",key:"theme"},{titleKey:"steps.generate",key:"generate"}],u=uA({chip:{model:"",display:{width:320,height:240,color:"RGB565"}},theme:{wakeword:{type:"none",preset:"",custom:{name:"",command:"",threshold:20,duration:3e3,model:"mn6_cn"}},font:{type:"none",preset:"",hide_subtitle:!1,custom:{file:null,size:20,bpp:4,charset:"deepseek"}},emoji:{type:"none",preset:"",custom:{size:{width:160,height:120},images:{}}},skin:{light:{backgroundType:"color",backgroundColor:"#ffffff",textColor:"#000000",backgroundImage:null},dark:{backgroundType:"color",backgroundColor:"#121212",textColor:"#ffffff",backgroundImage:null}}}});fA(()=>u.value.chip.model&&(u.value.theme.font.type==="none"||u.value.theme.font.preset||u.value.theme.font.custom.file));const f=lA=>lA<i.value?"step-indicator completed":lA===i.value?"step-indicator active":"step-indicator inactive",h=async()=>{i.value<Q.length-1&&(i.value++,g.value||(g.value=!0,await R()))},E=()=>{i.value>0&&i.value--},p=()=>{n.value=!0},c=async lA=>{},d=()=>new URLSearchParams(window.location.search).get("token"),w=async(lA,nA={})=>await e(lA,nA),F=async lA=>{const{blob:nA,onProgress:z,onComplete:tA,onError:dA}=lA;try{const kA=d();if(!kA)throw new Error(t("flashProgress.authTokenMissing"));z(5,t("flashProgress.checkingDeviceStatus"));try{if(!await w("self.get_device_status"))throw new Error(t("flashProgress.deviceOfflineOrUnresponsive",{error:t("flashProgress.unableToGetDeviceStatus")}))}catch(M){console.error("检查设备状态失败:",M),dA(t("flashProgress.deviceOfflineOrUnresponsive",{error:M.message}));return}z(15,t("flashProgress.initializingTransferService")),C.value=new Eb(kA);let Y=null;const j=new Promise((M,X)=>{Y=M});let sA=null;const SA=new Promise((M,X)=>{sA=M});C.value.onTransferStarted=()=>{sA&&(sA(),sA=null)},await C.value.initializeSession(nA,(M,X)=>{z(15+M*.75,X)},M=>{console.error("WebSocket初始化失败:",M),dA(t("flashProgress.initializeTransferFailed",{error:M.message}))},M=>{Y(M)});const UA=await j;z(30,t("flashProgress.settingDeviceDownloadUrl"));try{await w("self.assets.set_download_url",{url:UA})}catch(M){console.error("设置下载URL失败:",M),dA(t("flashProgress.setDownloadUrlFailed",{error:M.message}));return}z(40,t("flashProgress.rebootingDevice")),w("self.reboot").catch(M=>{console.warn("reboot指令调用警告(设备可能已重启):",M)}),z(50,t("flashProgress.waitingForDeviceReboot"));const HA=new Promise((M,X)=>{setTimeout(()=>X(new Error(t("flashProgress.deviceRebootTimeout"))),6e4)});await Promise.race([SA,HA]),z(60,t("flashProgress.startingFileTransfer")),await C.value.startTransfer((M,X)=>{const AA=60+M*.4;z(Math.round(AA),X)},M=>{dA(t("flashProgress.onlineFlashFailed",{error:M.message}))},()=>{tA()}),C.value.onTransferStarted=null}catch(kA){console.error("在线烧录失败:",kA),dA(t("flashProgress.onlineFlashFailed",{error:kA.message}))}},N=()=>{C.value&&(C.value.cancel(),C.value.destroy(),C.value=null)},G=lA=>{o.value=lA},P=async()=>{var lA,nA,z;try{a.value=!0;const tA=await ce.loadConfig();if(tA){u.value=tA.config,i.value=0,o.value="wakeword",r.value=!0,g.value=!0,await b(),l.value&&clearTimeout(l.value),l.value=setTimeout(()=>{r.value=!1},5e3),I.setConfig(u.value,{strict:!1}),await I.restoreAllResourcesFromStorage(u.value);try{const dA=((z=(nA=(lA=u.value)==null?void 0:lA.theme)==null?void 0:nA.emoji)==null?void 0:z.custom)||{},kA=dA.images||{},Y=dA.fileMap||{},j=dA.emotionMap||{};u.value={...u.value,theme:{...u.value.theme,emoji:{...u.value.theme.emoji,custom:{...dA,images:{...kA},fileMap:{...Y},emotionMap:{...j}}}}}}catch(dA){console.error("刷新表情配置引用失败:",dA)}}else r.value=!1,g.value=!1}catch(tA){console.error("加载配置失败:",tA),r.value=!1,g.value=!1}finally{a.value=!1}},b=async()=>{var lA,nA,z;try{const tA=(z=(nA=(lA=u.value)==null?void 0:lA.theme)==null?void 0:nA.emoji)==null?void 0:z.custom;if(!tA)return;const dA=Object.keys(tA.images||{}).length>0,kA=tA.fileMap&&Object.keys(tA.fileMap).length>0,Y=tA.emotionMap&&Object.keys(tA.emotionMap).length>0;if(dA&&(!kA||!Y)){console.warn("⚠️ 检测到旧版本的表情数据结构(不兼容)"),console.log("正在清理旧数据...");try{const sA=Object.keys(tA.images||{});for(const SA of sA)await ce.deleteFile(`emoji_${SA}`);console.log(`已删除 ${sA.length} 个旧表情文件`)}catch(sA){console.warn("清理旧表情文件时出错:",sA)}u.value.theme.emoji.custom={size:tA.size||{width:64,height:64},images:{},fileMap:{},emotionMap:{}},u.value.theme.emoji.type==="custom"&&(u.value.theme.emoji.type="",console.log("已重置表情类型,请重新选择")),await R(),console.log("✅ 旧表情数据已完全清除"),setTimeout(()=>{alert(`检测到旧版本的表情数据结构已被清除。
|
||
|
||
新版本使用文件去重技术,可以节省存储空间。
|
||
|
||
请重新上传自定义表情图片。`)},500)}}catch(tA){console.error("清理旧表情数据时出错:",tA)}},R=async()=>{try{await ce.saveConfig(u.value)}catch(lA){console.error("保存配置失败:",lA)}},L=async()=>{try{s.value=!0,await I.clearAllStoredData();const lA={model:u.value.chip.model,display:{...u.value.chip.display}};u.value={chip:lA,theme:{wakeword:{type:"none",preset:"",custom:{name:"",command:"",threshold:20,model:"mn6_cn"}},font:{type:"none",preset:"",hide_subtitle:!1,custom:{file:null,size:20,bpp:4,charset:"deepseek"}},emoji:{type:"none",preset:"",custom:{size:{width:64,height:64},images:{}}},skin:{light:{backgroundType:"color",backgroundColor:"#ffffff",textColor:"#000000",backgroundImage:null},dark:{backgroundType:"color",backgroundColor:"#121212",textColor:"#ffffff",backgroundImage:null}}}},i.value=0,o.value="wakeword",r.value=!1,g.value=!1}catch(lA){console.error("重置配置失败:",lA),alert(t("errors.resetFailed"))}finally{s.value=!1}};Ie(u,async lA=>{!a.value&&g.value&&await R()},{deep:!0}),St(async()=>{await ce.initialize(),await P()}),li(()=>{l.value&&clearTimeout(l.value)});const EA=()=>{r.value=!1,l.value&&clearTimeout(l.value)},pA=()=>{l.value&&clearTimeout(l.value),l.value=setTimeout(()=>{r.value=!1},5e3)};return(lA,nA)=>(H(),_("div",null,[r.value?(H(),_("div",{key:0,class:"fixed bottom-4 right-4 z-50 bg-blue-50 border border-blue-200 rounded-lg p-4 shadow-lg transition-opacity duration-300 min-w-[300px]",onMouseenter:pA},[B("div",ub,[B("div",hb,[nA[3]||(nA[3]=B("svg",{class:"w-5 h-5 text-blue-500 mr-2",fill:"currentColor",viewBox:"0 0 20 20"},[B("path",{"fill-rule":"evenodd",d:"M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-7-4a1 1 0 11-2 0 1 1 0 012 0zM9 9a1 1 0 000 2v3a1 1 0 001 1h1a1 1 0 100-2v-3a1 1 0 00-1-1H9z","clip-rule":"evenodd"})],-1)),B("span",fb,v(lA.$t("configNotice.title")),1)]),B("button",{onClick:EA,class:"text-gray-500 hover:text-gray-700"},[...nA[4]||(nA[4]=[B("svg",{class:"w-4 h-4",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[B("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M6 18L18 6M6 6l12 12"})],-1)])])]),B("p",db,v(lA.$t("configNotice.message")),1),B("div",pb,[B("button",{onClick:L,class:"px-3 py-1 text-sm text-red-600 hover:text-red-800 font-medium"},v(lA.$t("configNotice.restart")),1)])],32)):aA("",!0),B("div",mb,[(H(),_(ZA,null,Pe(Q,(z,tA)=>B("div",{key:tA,class:"flex items-center"},[B("div",yb,[B("div",{class:vA(f(tA))},v(tA+1),3),B("span",wb,v(lA.$t(z.titleKey)),1)]),tA<Q.length-1?(H(),_("div",Db)):aA("",!0)])),64))]),B("div",kb,[i.value===0?(H(),we(Wd,{key:0,modelValue:u.value.chip,"onUpdate:modelValue":nA[0]||(nA[0]=z=>u.value.chip=z),onNext:h},null,8,["modelValue"])):aA("",!0),i.value===1?(H(),we(wy,{key:1,modelValue:u.value.theme,"onUpdate:modelValue":nA[1]||(nA[1]=z=>u.value.theme=z),chipModel:u.value.chip.model,activeTab:o.value,onNext:h,onPrev:E,onTabChange:G},null,8,["modelValue","chipModel","activeTab"])):aA("",!0),i.value===2?(H(),we(uw,{key:2,config:u.value,onGenerate:p,onPrev:E},null,8,["config"])):aA("",!0)]),n.value?(H(),we(cb,{key:1,config:u.value,onClose:nA[2]||(nA[2]=z=>n.value=!1),onGenerate:c,onStartFlash:F,onCancelFlash:N},null,8,["config"])):aA("",!0)]))}},vb=Object.freeze(Object.defineProperty({__proto__:null,default:Kl},Symbol.toStringTag,{value:"Module"})),Fb={class:"min-h-screen bg-gray-50"},Sb={class:"bg-white shadow-sm border-b"},bb={class:"max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 py-4"},Rb={class:"flex flex-col relative sm:flex-row items-start sm:items-center justify-between gap-3 sm:gap-0"},Nb={class:"text-2xl font-bold text-gray-900"},Gb={class:"flex items-center space-x-4"},Lb={class:"max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 py-8"},Ub={__name:"App",setup(A){const e=uA(""),t=()=>{e.value&&(window.location.href=e.value)};return St(()=>{e.value=sessionStorage.getItem("devicePath")}),(i,n)=>(H(),_("div",Fb,[B("header",Sb,[B("div",bb,[B("div",Rb,[e.value?(H(),_("div",{key:0,class:"bg-primary-500 hover:bg-primary-600 text-white px-6 py-1 rounded-md cursor-pointer",onClick:t},"返回")):aA("",!0),B("h1",Nb,v(i.$t("header.title")),1),B("div",Gb,[YA(uh),YA(sd)])])])]),B("main",Lb,[YA(Kl)])]))}};/*!
|
||
* vue-router v4.6.4
|
||
* (c) 2025 Eduardo San Martin Morote
|
||
* @license MIT
|
||
*/const ui=typeof document<"u";function Pl(A){return typeof A=="object"||"displayName"in A||"props"in A||"__vccOpts"in A}function Mb(A){return A.__esModule||A[Symbol.toStringTag]==="Module"||A.default&&Pl(A.default)}const xA=Object.assign;function rr(A,e){const t={};for(const i in e){const n=e[i];t[i]=je(n)?n.map(A):A(n)}return t}const An=()=>{},je=Array.isArray;function Ha(A,e){const t={};for(const i in A)t[i]=i in e?e[i]:A[i];return t}const Ol=/#/g,xb=/&/g,Jb=/\//g,Tb=/=/g,Hb=/\?/g,Vl=/\+/g,Yb=/%5B/g,_b=/%5D/g,Wl=/%5E/g,Kb=/%60/g,ql=/%7B/g,Pb=/%7C/g,jl=/%7D/g,Ob=/%20/g;function Fg(A){return A==null?"":encodeURI(""+A).replace(Pb,"|").replace(Yb,"[").replace(_b,"]")}function Vb(A){return Fg(A).replace(ql,"{").replace(jl,"}").replace(Wl,"^")}function Yr(A){return Fg(A).replace(Vl,"%2B").replace(Ob,"+").replace(Ol,"%23").replace(xb,"%26").replace(Kb,"`").replace(ql,"{").replace(jl,"}").replace(Wl,"^")}function Wb(A){return Yr(A).replace(Tb,"%3D")}function qb(A){return Fg(A).replace(Ol,"%23").replace(Hb,"%3F")}function jb(A){return qb(A).replace(Jb,"%2F")}function cn(A){if(A==null)return null;try{return decodeURIComponent(""+A)}catch{}return""+A}const Zb=/\/$/,Xb=A=>A.replace(Zb,"");function gr(A,e,t="/"){let i,n={},o="",r="";const g=e.indexOf("#");let s=e.indexOf("?");return s=g>=0&&s>g?-1:s,s>=0&&(i=e.slice(0,s),o=e.slice(s,g>0?g:e.length),n=A(o.slice(1))),g>=0&&(i=i||e.slice(0,g),r=e.slice(g,e.length)),i=eR(i??e,t),{fullPath:i+o+r,path:i,query:n,hash:cn(r)}}function zb(A,e){const t=e.query?A(e.query):"";return e.path+(t&&"?")+t+(e.hash||"")}function Ya(A,e){return!e||!A.toLowerCase().startsWith(e.toLowerCase())?A:A.slice(e.length)||"/"}function $b(A,e,t){const i=e.matched.length-1,n=t.matched.length-1;return i>-1&&i===n&&Gi(e.matched[i],t.matched[n])&&Zl(e.params,t.params)&&A(e.query)===A(t.query)&&e.hash===t.hash}function Gi(A,e){return(A.aliasOf||A)===(e.aliasOf||e)}function Zl(A,e){if(Object.keys(A).length!==Object.keys(e).length)return!1;for(var t in A)if(!AR(A[t],e[t]))return!1;return!0}function AR(A,e){return je(A)?_a(A,e):je(e)?_a(e,A):(A==null?void 0:A.valueOf())===(e==null?void 0:e.valueOf())}function _a(A,e){return je(e)?A.length===e.length&&A.every((t,i)=>t===e[i]):A.length===1&&A[0]===e}function eR(A,e){if(A.startsWith("/"))return A;if(!A)return e;const t=e.split("/"),i=A.split("/"),n=i[i.length-1];(n===".."||n===".")&&i.push("");let o=t.length-1,r,g;for(r=0;r<i.length;r++)if(g=i[r],g!==".")if(g==="..")o>1&&o--;else break;return t.slice(0,o).join("/")+"/"+i.slice(r).join("/")}const Lt={path:"/",name:void 0,params:{},query:{},hash:"",fullPath:"/",matched:[],meta:{},redirectedFrom:void 0};let _r=function(A){return A.pop="pop",A.push="push",A}({}),sr=function(A){return A.back="back",A.forward="forward",A.unknown="",A}({});function tR(A){if(!A)if(ui){const e=document.querySelector("base");A=e&&e.getAttribute("href")||"/",A=A.replace(/^\w+:\/\/[^\/]+/,"")}else A="/";return A[0]!=="/"&&A[0]!=="#"&&(A="/"+A),Xb(A)}const iR=/^[^#]+#/;function nR(A,e){return A.replace(iR,"#")+e}function oR(A,e){const t=document.documentElement.getBoundingClientRect(),i=A.getBoundingClientRect();return{behavior:e.behavior,left:i.left-t.left-(e.left||0),top:i.top-t.top-(e.top||0)}}const Mo=()=>({left:window.scrollX,top:window.scrollY});function rR(A){let e;if("el"in A){const t=A.el,i=typeof t=="string"&&t.startsWith("#"),n=typeof t=="string"?i?document.getElementById(t.slice(1)):document.querySelector(t):t;if(!n)return;e=oR(n,A)}else e=A;"scrollBehavior"in document.documentElement.style?window.scrollTo(e):window.scrollTo(e.left!=null?e.left:window.scrollX,e.top!=null?e.top:window.scrollY)}function Ka(A,e){return(history.state?history.state.position-e:-1)+A}const Kr=new Map;function gR(A,e){Kr.set(A,e)}function sR(A){const e=Kr.get(A);return Kr.delete(A),e}function aR(A){return typeof A=="string"||A&&typeof A=="object"}function Xl(A){return typeof A=="string"||typeof A=="symbol"}let $A=function(A){return A[A.MATCHER_NOT_FOUND=1]="MATCHER_NOT_FOUND",A[A.NAVIGATION_GUARD_REDIRECT=2]="NAVIGATION_GUARD_REDIRECT",A[A.NAVIGATION_ABORTED=4]="NAVIGATION_ABORTED",A[A.NAVIGATION_CANCELLED=8]="NAVIGATION_CANCELLED",A[A.NAVIGATION_DUPLICATED=16]="NAVIGATION_DUPLICATED",A}({});const zl=Symbol("");$A.MATCHER_NOT_FOUND+"",$A.NAVIGATION_GUARD_REDIRECT+"",$A.NAVIGATION_ABORTED+"",$A.NAVIGATION_CANCELLED+"",$A.NAVIGATION_DUPLICATED+"";function Li(A,e){return xA(new Error,{type:A,[zl]:!0},e)}function Et(A,e){return A instanceof Error&&zl in A&&(e==null||!!(A.type&e))}const IR=["params","query","hash"];function CR(A){if(typeof A=="string")return A;if(A.path!=null)return A.path;const e={};for(const t of IR)t in A&&(e[t]=A[t]);return JSON.stringify(e,null,2)}function lR(A){const e={};if(A===""||A==="?")return e;const t=(A[0]==="?"?A.slice(1):A).split("&");for(let i=0;i<t.length;++i){const n=t[i].replace(Vl," "),o=n.indexOf("="),r=cn(o<0?n:n.slice(0,o)),g=o<0?null:cn(n.slice(o+1));if(r in e){let s=e[r];je(s)||(s=e[r]=[s]),s.push(g)}else e[r]=g}return e}function Pa(A){let e="";for(let t in A){const i=A[t];if(t=Wb(t),i==null){i!==void 0&&(e+=(e.length?"&":"")+t);continue}(je(i)?i.map(n=>n&&Yr(n)):[i&&Yr(i)]).forEach(n=>{n!==void 0&&(e+=(e.length?"&":"")+t,n!=null&&(e+="="+n))})}return e}function BR(A){const e={};for(const t in A){const i=A[t];i!==void 0&&(e[t]=je(i)?i.map(n=>n==null?null:""+n):i==null?i:""+i)}return e}const QR=Symbol(""),Oa=Symbol(""),Sg=Symbol(""),$l=Symbol(""),Pr=Symbol("");function Ki(){let A=[];function e(i){return A.push(i),()=>{const n=A.indexOf(i);n>-1&&A.splice(n,1)}}function t(){A=[]}return{add:e,list:()=>A.slice(),reset:t}}function Ht(A,e,t,i,n,o=r=>r()){const r=i&&(i.enterCallbacks[n]=i.enterCallbacks[n]||[]);return()=>new Promise((g,s)=>{const a=C=>{C===!1?s(Li($A.NAVIGATION_ABORTED,{from:t,to:e})):C instanceof Error?s(C):aR(C)?s(Li($A.NAVIGATION_GUARD_REDIRECT,{from:e,to:C})):(r&&i.enterCallbacks[n]===r&&typeof C=="function"&&r.push(C),g())},I=o(()=>A.call(i&&i.instances[n],e,t,a));let l=Promise.resolve(I);A.length<3&&(l=l.then(a)),l.catch(C=>s(C))})}function ar(A,e,t,i,n=o=>o()){const o=[];for(const r of A)for(const g in r.components){let s=r.components[g];if(!(e!=="beforeRouteEnter"&&!r.instances[g]))if(Pl(s)){const a=(s.__vccOpts||s)[e];a&&o.push(Ht(a,t,i,r,g,n))}else{let a=s();o.push(()=>a.then(I=>{if(!I)throw new Error(`Couldn't resolve component "${g}" at "${r.path}"`);const l=Mb(I)?I.default:I;r.mods[g]=I,r.components[g]=l;const C=(l.__vccOpts||l)[e];return C&&Ht(C,t,i,r,g,n)()}))}}return o}function cR(A,e){const t=[],i=[],n=[],o=Math.max(e.matched.length,A.matched.length);for(let r=0;r<o;r++){const g=e.matched[r];g&&(A.matched.find(a=>Gi(a,g))?i.push(g):t.push(g));const s=A.matched[r];s&&(e.matched.find(a=>Gi(a,s))||n.push(s))}return[t,i,n]}/*!
|
||
* vue-router v4.6.4
|
||
* (c) 2025 Eduardo San Martin Morote
|
||
* @license MIT
|
||
*/let ER=()=>location.protocol+"//"+location.host;function AB(A,e){const{pathname:t,search:i,hash:n}=e,o=A.indexOf("#");if(o>-1){let r=n.includes(A.slice(o))?A.slice(o).length:1,g=n.slice(r);return g[0]!=="/"&&(g="/"+g),Ya(g,"")}return Ya(t,A)+i+n}function uR(A,e,t,i){let n=[],o=[],r=null;const g=({state:C})=>{const Q=AB(A,location),u=t.value,f=e.value;let h=0;if(C){if(t.value=Q,e.value=C,r&&r===u){r=null;return}h=f?C.position-f.position:0}else i(Q);n.forEach(E=>{E(t.value,u,{delta:h,type:_r.pop,direction:h?h>0?sr.forward:sr.back:sr.unknown})})};function s(){r=t.value}function a(C){n.push(C);const Q=()=>{const u=n.indexOf(C);u>-1&&n.splice(u,1)};return o.push(Q),Q}function I(){if(document.visibilityState==="hidden"){const{history:C}=window;if(!C.state)return;C.replaceState(xA({},C.state,{scroll:Mo()}),"")}}function l(){for(const C of o)C();o=[],window.removeEventListener("popstate",g),window.removeEventListener("pagehide",I),document.removeEventListener("visibilitychange",I)}return window.addEventListener("popstate",g),window.addEventListener("pagehide",I),document.addEventListener("visibilitychange",I),{pauseListeners:s,listen:a,destroy:l}}function Va(A,e,t,i=!1,n=!1){return{back:A,current:e,forward:t,replaced:i,position:window.history.length,scroll:n?Mo():null}}function hR(A){const{history:e,location:t}=window,i={value:AB(A,t)},n={value:e.state};n.value||o(i.value,{back:null,current:i.value,forward:null,position:e.length-1,replaced:!0,scroll:null},!0);function o(s,a,I){const l=A.indexOf("#"),C=l>-1?(t.host&&document.querySelector("base")?A:A.slice(l))+s:ER()+A+s;try{e[I?"replaceState":"pushState"](a,"",C),n.value=a}catch(Q){console.error(Q),t[I?"replace":"assign"](C)}}function r(s,a){o(s,xA({},e.state,Va(n.value.back,s,n.value.forward,!0),a,{position:n.value.position}),!0),i.value=s}function g(s,a){const I=xA({},n.value,e.state,{forward:s,scroll:Mo()});o(I.current,I,!0),o(s,xA({},Va(i.value,s,null),{position:I.position+1},a),!1),i.value=s}return{location:i,state:n,push:g,replace:r}}function fR(A){A=tR(A);const e=hR(A),t=uR(A,e.state,e.location,e.replace);function i(o,r=!0){r||t.pauseListeners(),history.go(o)}const n=xA({location:"",base:A,go:i,createHref:nR.bind(null,A)},e,t);return Object.defineProperty(n,"location",{enumerable:!0,get:()=>e.location.value}),Object.defineProperty(n,"state",{enumerable:!0,get:()=>e.state.value}),n}let ri=function(A){return A[A.Static=0]="Static",A[A.Param=1]="Param",A[A.Group=2]="Group",A}({});var re=function(A){return A[A.Static=0]="Static",A[A.Param=1]="Param",A[A.ParamRegExp=2]="ParamRegExp",A[A.ParamRegExpEnd=3]="ParamRegExpEnd",A[A.EscapeNext=4]="EscapeNext",A}(re||{});const dR={type:ri.Static,value:""},pR=/[a-zA-Z0-9_]/;function mR(A){if(!A)return[[]];if(A==="/")return[[dR]];if(!A.startsWith("/"))throw new Error(`Invalid path "${A}"`);function e(Q){throw new Error(`ERR (${t})/"${a}": ${Q}`)}let t=re.Static,i=t;const n=[];let o;function r(){o&&n.push(o),o=[]}let g=0,s,a="",I="";function l(){a&&(t===re.Static?o.push({type:ri.Static,value:a}):t===re.Param||t===re.ParamRegExp||t===re.ParamRegExpEnd?(o.length>1&&(s==="*"||s==="+")&&e(`A repeatable param (${a}) must be alone in its segment. eg: '/:ids+.`),o.push({type:ri.Param,value:a,regexp:I,repeatable:s==="*"||s==="+",optional:s==="*"||s==="?"})):e("Invalid state to consume buffer"),a="")}function C(){a+=s}for(;g<A.length;){if(s=A[g++],s==="\\"&&t!==re.ParamRegExp){i=t,t=re.EscapeNext;continue}switch(t){case re.Static:s==="/"?(a&&l(),r()):s===":"?(l(),t=re.Param):C();break;case re.EscapeNext:C(),t=i;break;case re.Param:s==="("?t=re.ParamRegExp:pR.test(s)?C():(l(),t=re.Static,s!=="*"&&s!=="?"&&s!=="+"&&g--);break;case re.ParamRegExp:s===")"?I[I.length-1]=="\\"?I=I.slice(0,-1)+s:t=re.ParamRegExpEnd:I+=s;break;case re.ParamRegExpEnd:l(),t=re.Static,s!=="*"&&s!=="?"&&s!=="+"&&g--,I="";break;default:e("Unknown state");break}}return t===re.ParamRegExp&&e(`Unfinished custom RegExp for param "${a}"`),l(),r(),n}const Wa="[^/]+?",yR={sensitive:!1,strict:!1,start:!0,end:!0};var me=function(A){return A[A._multiplier=10]="_multiplier",A[A.Root=90]="Root",A[A.Segment=40]="Segment",A[A.SubSegment=30]="SubSegment",A[A.Static=40]="Static",A[A.Dynamic=20]="Dynamic",A[A.BonusCustomRegExp=10]="BonusCustomRegExp",A[A.BonusWildcard=-50]="BonusWildcard",A[A.BonusRepeatable=-20]="BonusRepeatable",A[A.BonusOptional=-8]="BonusOptional",A[A.BonusStrict=.7000000000000001]="BonusStrict",A[A.BonusCaseSensitive=.25]="BonusCaseSensitive",A}(me||{});const wR=/[.+*?^${}()[\]/\\]/g;function DR(A,e){const t=xA({},yR,e),i=[];let n=t.start?"^":"";const o=[];for(const a of A){const I=a.length?[]:[me.Root];t.strict&&!a.length&&(n+="/");for(let l=0;l<a.length;l++){const C=a[l];let Q=me.Segment+(t.sensitive?me.BonusCaseSensitive:0);if(C.type===ri.Static)l||(n+="/"),n+=C.value.replace(wR,"\\$&"),Q+=me.Static;else if(C.type===ri.Param){const{value:u,repeatable:f,optional:h,regexp:E}=C;o.push({name:u,repeatable:f,optional:h});const p=E||Wa;if(p!==Wa){Q+=me.BonusCustomRegExp;try{`${p}`}catch(d){throw new Error(`Invalid custom RegExp for param "${u}" (${p}): `+d.message)}}let c=f?`((?:${p})(?:/(?:${p}))*)`:`(${p})`;l||(c=h&&a.length<2?`(?:/${c})`:"/"+c),h&&(c+="?"),n+=c,Q+=me.Dynamic,h&&(Q+=me.BonusOptional),f&&(Q+=me.BonusRepeatable),p===".*"&&(Q+=me.BonusWildcard)}I.push(Q)}i.push(I)}if(t.strict&&t.end){const a=i.length-1;i[a][i[a].length-1]+=me.BonusStrict}t.strict||(n+="/?"),t.end?n+="$":t.strict&&!n.endsWith("/")&&(n+="(?:/|$)");const r=new RegExp(n,t.sensitive?"":"i");function g(a){const I=a.match(r),l={};if(!I)return null;for(let C=1;C<I.length;C++){const Q=I[C]||"",u=o[C-1];l[u.name]=Q&&u.repeatable?Q.split("/"):Q}return l}function s(a){let I="",l=!1;for(const C of A){(!l||!I.endsWith("/"))&&(I+="/"),l=!1;for(const Q of C)if(Q.type===ri.Static)I+=Q.value;else if(Q.type===ri.Param){const{value:u,repeatable:f,optional:h}=Q,E=u in a?a[u]:"";if(je(E)&&!f)throw new Error(`Provided param "${u}" is an array but it is not repeatable (* or + modifiers)`);const p=je(E)?E.join("/"):E;if(!p)if(h)C.length<2&&(I.endsWith("/")?I=I.slice(0,-1):l=!0);else throw new Error(`Missing required param "${u}"`);I+=p}}return I||"/"}return{re:r,score:i,keys:o,parse:g,stringify:s}}function kR(A,e){let t=0;for(;t<A.length&&t<e.length;){const i=e[t]-A[t];if(i)return i;t++}return A.length<e.length?A.length===1&&A[0]===me.Static+me.Segment?-1:1:A.length>e.length?e.length===1&&e[0]===me.Static+me.Segment?1:-1:0}function eB(A,e){let t=0;const i=A.score,n=e.score;for(;t<i.length&&t<n.length;){const o=kR(i[t],n[t]);if(o)return o;t++}if(Math.abs(n.length-i.length)===1){if(qa(i))return 1;if(qa(n))return-1}return n.length-i.length}function qa(A){const e=A[A.length-1];return A.length>0&&e[e.length-1]<0}const vR={strict:!1,end:!0,sensitive:!1};function FR(A,e,t){const i=DR(mR(A.path),t),n=xA(i,{record:A,parent:e,children:[],alias:[]});return e&&!n.record.aliasOf==!e.record.aliasOf&&e.children.push(n),n}function SR(A,e){const t=[],i=new Map;e=Ha(vR,e);function n(l){return i.get(l)}function o(l,C,Q){const u=!Q,f=Za(l);f.aliasOf=Q&&Q.record;const h=Ha(e,l),E=[f];if("alias"in l){const d=typeof l.alias=="string"?[l.alias]:l.alias;for(const w of d)E.push(Za(xA({},f,{components:Q?Q.record.components:f.components,path:w,aliasOf:Q?Q.record:f})))}let p,c;for(const d of E){const{path:w}=d;if(C&&w[0]!=="/"){const F=C.record.path,N=F[F.length-1]==="/"?"":"/";d.path=C.record.path+(w&&N+w)}if(p=FR(d,C,h),Q?Q.alias.push(p):(c=c||p,c!==p&&c.alias.push(p),u&&l.name&&!Xa(p)&&r(l.name)),tB(p)&&s(p),f.children){const F=f.children;for(let N=0;N<F.length;N++)o(F[N],p,Q&&Q.children[N])}Q=Q||p}return c?()=>{r(c)}:An}function r(l){if(Xl(l)){const C=i.get(l);C&&(i.delete(l),t.splice(t.indexOf(C),1),C.children.forEach(r),C.alias.forEach(r))}else{const C=t.indexOf(l);C>-1&&(t.splice(C,1),l.record.name&&i.delete(l.record.name),l.children.forEach(r),l.alias.forEach(r))}}function g(){return t}function s(l){const C=NR(l,t);t.splice(C,0,l),l.record.name&&!Xa(l)&&i.set(l.record.name,l)}function a(l,C){let Q,u={},f,h;if("name"in l&&l.name){if(Q=i.get(l.name),!Q)throw Li($A.MATCHER_NOT_FOUND,{location:l});h=Q.record.name,u=xA(ja(C.params,Q.keys.filter(c=>!c.optional).concat(Q.parent?Q.parent.keys.filter(c=>c.optional):[]).map(c=>c.name)),l.params&&ja(l.params,Q.keys.map(c=>c.name))),f=Q.stringify(u)}else if(l.path!=null)f=l.path,Q=t.find(c=>c.re.test(f)),Q&&(u=Q.parse(f),h=Q.record.name);else{if(Q=C.name?i.get(C.name):t.find(c=>c.re.test(C.path)),!Q)throw Li($A.MATCHER_NOT_FOUND,{location:l,currentLocation:C});h=Q.record.name,u=xA({},C.params,l.params),f=Q.stringify(u)}const E=[];let p=Q;for(;p;)E.unshift(p.record),p=p.parent;return{name:h,path:f,params:u,matched:E,meta:RR(E)}}A.forEach(l=>o(l));function I(){t.length=0,i.clear()}return{addRoute:o,resolve:a,removeRoute:r,clearRoutes:I,getRoutes:g,getRecordMatcher:n}}function ja(A,e){const t={};for(const i of e)i in A&&(t[i]=A[i]);return t}function Za(A){const e={path:A.path,redirect:A.redirect,name:A.name,meta:A.meta||{},aliasOf:A.aliasOf,beforeEnter:A.beforeEnter,props:bR(A),children:A.children||[],instances:{},leaveGuards:new Set,updateGuards:new Set,enterCallbacks:{},components:"components"in A?A.components||null:A.component&&{default:A.component}};return Object.defineProperty(e,"mods",{value:{}}),e}function bR(A){const e={},t=A.props||!1;if("component"in A)e.default=t;else for(const i in A.components)e[i]=typeof t=="object"?t[i]:t;return e}function Xa(A){for(;A;){if(A.record.aliasOf)return!0;A=A.parent}return!1}function RR(A){return A.reduce((e,t)=>xA(e,t.meta),{})}function NR(A,e){let t=0,i=e.length;for(;t!==i;){const o=t+i>>1;eB(A,e[o])<0?i=o:t=o+1}const n=GR(A);return n&&(i=e.lastIndexOf(n,i-1)),i}function GR(A){let e=A;for(;e=e.parent;)if(tB(e)&&eB(A,e)===0)return e}function tB({record:A}){return!!(A.name||A.components&&Object.keys(A.components).length||A.redirect)}function za(A){const e=gt(Sg),t=gt($l),i=fA(()=>{const s=cA(A.to);return e.resolve(s)}),n=fA(()=>{const{matched:s}=i.value,{length:a}=s,I=s[a-1],l=t.matched;if(!I||!l.length)return-1;const C=l.findIndex(Gi.bind(null,I));if(C>-1)return C;const Q=$a(s[a-2]);return a>1&&$a(I)===Q&&l[l.length-1].path!==Q?l.findIndex(Gi.bind(null,s[a-2])):C}),o=fA(()=>n.value>-1&&JR(t.params,i.value.params)),r=fA(()=>n.value>-1&&n.value===t.matched.length-1&&Zl(t.params,i.value.params));function g(s={}){if(xR(s)){const a=e[cA(A.replace)?"replace":"push"](cA(A.to)).catch(An);return A.viewTransition&&typeof document<"u"&&"startViewTransition"in document&&document.startViewTransition(()=>a),a}return Promise.resolve()}return{route:i,href:fA(()=>i.value.href),isActive:o,isExactActive:r,navigate:g}}function LR(A){return A.length===1?A[0]:A}const UR=fn({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:za,setup(A,{slots:e}){const t=mo(za(A)),{options:i}=gt(Sg),n=fA(()=>({[AI(A.activeClass,i.linkActiveClass,"router-link-active")]:t.isActive,[AI(A.exactActiveClass,i.linkExactActiveClass,"router-link-exact-active")]:t.isExactActive}));return()=>{const o=e.default&&LR(e.default(t));return A.custom?o:LA("a",{"aria-current":t.isExactActive?A.ariaCurrentValue:null,href:t.href,onClick:t.navigate,class:n.value},o)}}}),MR=UR;function xR(A){if(!(A.metaKey||A.altKey||A.ctrlKey||A.shiftKey)&&!A.defaultPrevented&&!(A.button!==void 0&&A.button!==0)){if(A.currentTarget&&A.currentTarget.getAttribute){const e=A.currentTarget.getAttribute("target");if(/\b_blank\b/i.test(e))return}return A.preventDefault&&A.preventDefault(),!0}}function JR(A,e){for(const t in e){const i=e[t],n=A[t];if(typeof i=="string"){if(i!==n)return!1}else if(!je(n)||n.length!==i.length||i.some((o,r)=>o.valueOf()!==n[r].valueOf()))return!1}return!0}function $a(A){return A?A.aliasOf?A.aliasOf.path:A.path:""}const AI=(A,e,t)=>A??e??t,TR=fn({name:"RouterView",inheritAttrs:!1,props:{name:{type:String,default:"default"},route:Object},compatConfig:{MODE:3},setup(A,{attrs:e,slots:t}){const i=gt(Pr),n=fA(()=>A.route||i.value),o=gt(Oa,0),r=fA(()=>{let a=cA(o);const{matched:I}=n.value;let l;for(;(l=I[a])&&!l.components;)a++;return a}),g=fA(()=>n.value.matched[r.value]);Hn(Oa,fA(()=>r.value+1)),Hn(QR,g),Hn(Pr,n);const s=uA();return Ie(()=>[s.value,g.value,A.name],([a,I,l],[C,Q,u])=>{I&&(I.instances[l]=a,Q&&Q!==I&&a&&a===C&&(I.leaveGuards.size||(I.leaveGuards=Q.leaveGuards),I.updateGuards.size||(I.updateGuards=Q.updateGuards))),a&&I&&(!Q||!Gi(I,Q)||!C)&&(I.enterCallbacks[l]||[]).forEach(f=>f(a))},{flush:"post"}),()=>{const a=n.value,I=A.name,l=g.value,C=l&&l.components[I];if(!C)return eI(t.default,{Component:C,route:a});const Q=l.props[I],u=Q?Q===!0?a.params:typeof Q=="function"?Q(a):Q:null,h=LA(C,xA({},u,e,{onVnodeUnmounted:E=>{E.component.isUnmounted&&(l.instances[I]=null)},ref:s}));return eI(t.default,{Component:h,route:a})||h}}});function eI(A,e){if(!A)return null;const t=A(e);return t.length===1?t[0]:t}const HR=TR;function YR(A){const e=SR(A.routes,A),t=A.parseQuery||lR,i=A.stringifyQuery||Pa,n=A.history,o=Ki(),r=Ki(),g=Ki(),s=tg(Lt);let a=Lt;ui&&A.scrollBehavior&&"scrollRestoration"in history&&(history.scrollRestoration="manual");const I=rr.bind(null,M=>""+M),l=rr.bind(null,jb),C=rr.bind(null,cn);function Q(M,X){let AA,CA;return Xl(M)?(AA=e.getRecordMatcher(M),CA=X):CA=M,e.addRoute(CA,AA)}function u(M){const X=e.getRecordMatcher(M);X&&e.removeRoute(X)}function f(){return e.getRoutes().map(M=>M.record)}function h(M){return!!e.getRecordMatcher(M)}function E(M,X){if(X=xA({},X||s.value),typeof M=="string"){const k=gr(t,M,X.path),J=e.resolve({path:k.path},X),q=n.createHref(k.fullPath);return xA(k,J,{params:C(J.params),hash:cn(k.hash),redirectedFrom:void 0,href:q})}let AA;if(M.path!=null)AA=xA({},M,{path:gr(t,M.path,X.path).path});else{const k=xA({},M.params);for(const J in k)k[J]==null&&delete k[J];AA=xA({},M,{params:l(k)}),X.params=l(X.params)}const CA=e.resolve(AA,X),RA=M.hash||"";CA.params=I(C(CA.params));const D=zb(i,xA({},M,{hash:Vb(RA),path:CA.path})),S=n.createHref(D);return xA({fullPath:D,hash:RA,query:i===Pa?BR(M.query):M.query||{}},CA,{redirectedFrom:void 0,href:S})}function p(M){return typeof M=="string"?gr(t,M,s.value.path):xA({},M)}function c(M,X){if(a!==M)return Li($A.NAVIGATION_CANCELLED,{from:X,to:M})}function d(M){return N(M)}function w(M){return d(xA(p(M),{replace:!0}))}function F(M,X){const AA=M.matched[M.matched.length-1];if(AA&&AA.redirect){const{redirect:CA}=AA;let RA=typeof CA=="function"?CA(M,X):CA;return typeof RA=="string"&&(RA=RA.includes("?")||RA.includes("#")?RA=p(RA):{path:RA},RA.params={}),xA({query:M.query,hash:M.hash,params:RA.path!=null?{}:M.params},RA)}}function N(M,X){const AA=a=E(M),CA=s.value,RA=M.state,D=M.force,S=M.replace===!0,k=F(AA,CA);if(k)return N(xA(p(k),{state:typeof k=="object"?xA({},RA,k.state):RA,force:D,replace:S}),X||AA);const J=AA;J.redirectedFrom=X;let q;return!D&&$b(i,CA,AA)&&(q=Li($A.NAVIGATION_DUPLICATED,{to:J,from:CA}),Y(CA,CA,!0,!1)),(q?Promise.resolve(q):b(J,CA)).catch(V=>Et(V)?Et(V,$A.NAVIGATION_GUARD_REDIRECT)?V:kA(V):tA(V,J,CA)).then(V=>{if(V){if(Et(V,$A.NAVIGATION_GUARD_REDIRECT))return N(xA({replace:S},p(V.to),{state:typeof V.to=="object"?xA({},RA,V.to.state):RA,force:D}),X||J)}else V=L(J,CA,!0,S,RA);return R(J,CA,V),V})}function G(M,X){const AA=c(M,X);return AA?Promise.reject(AA):Promise.resolve()}function P(M){const X=SA.values().next().value;return X&&typeof X.runWithContext=="function"?X.runWithContext(M):M()}function b(M,X){let AA;const[CA,RA,D]=cR(M,X);AA=ar(CA.reverse(),"beforeRouteLeave",M,X);for(const k of CA)k.leaveGuards.forEach(J=>{AA.push(Ht(J,M,X))});const S=G.bind(null,M,X);return AA.push(S),HA(AA).then(()=>{AA=[];for(const k of o.list())AA.push(Ht(k,M,X));return AA.push(S),HA(AA)}).then(()=>{AA=ar(RA,"beforeRouteUpdate",M,X);for(const k of RA)k.updateGuards.forEach(J=>{AA.push(Ht(J,M,X))});return AA.push(S),HA(AA)}).then(()=>{AA=[];for(const k of D)if(k.beforeEnter)if(je(k.beforeEnter))for(const J of k.beforeEnter)AA.push(Ht(J,M,X));else AA.push(Ht(k.beforeEnter,M,X));return AA.push(S),HA(AA)}).then(()=>(M.matched.forEach(k=>k.enterCallbacks={}),AA=ar(D,"beforeRouteEnter",M,X,P),AA.push(S),HA(AA))).then(()=>{AA=[];for(const k of r.list())AA.push(Ht(k,M,X));return AA.push(S),HA(AA)}).catch(k=>Et(k,$A.NAVIGATION_CANCELLED)?k:Promise.reject(k))}function R(M,X,AA){g.list().forEach(CA=>P(()=>CA(M,X,AA)))}function L(M,X,AA,CA,RA){const D=c(M,X);if(D)return D;const S=X===Lt,k=ui?history.state:{};AA&&(CA||S?n.replace(M.fullPath,xA({scroll:S&&k&&k.scroll},RA)):n.push(M.fullPath,RA)),s.value=M,Y(M,X,AA,S),kA()}let EA;function pA(){EA||(EA=n.listen((M,X,AA)=>{if(!UA.listening)return;const CA=E(M),RA=F(CA,UA.currentRoute.value);if(RA){N(xA(RA,{replace:!0,force:!0}),CA).catch(An);return}a=CA;const D=s.value;ui&&gR(Ka(D.fullPath,AA.delta),Mo()),b(CA,D).catch(S=>Et(S,$A.NAVIGATION_ABORTED|$A.NAVIGATION_CANCELLED)?S:Et(S,$A.NAVIGATION_GUARD_REDIRECT)?(N(xA(p(S.to),{force:!0}),CA).then(k=>{Et(k,$A.NAVIGATION_ABORTED|$A.NAVIGATION_DUPLICATED)&&!AA.delta&&AA.type===_r.pop&&n.go(-1,!1)}).catch(An),Promise.reject()):(AA.delta&&n.go(-AA.delta,!1),tA(S,CA,D))).then(S=>{S=S||L(CA,D,!1),S&&(AA.delta&&!Et(S,$A.NAVIGATION_CANCELLED)?n.go(-AA.delta,!1):AA.type===_r.pop&&Et(S,$A.NAVIGATION_ABORTED|$A.NAVIGATION_DUPLICATED)&&n.go(-1,!1)),R(CA,D,S)}).catch(An)}))}let lA=Ki(),nA=Ki(),z;function tA(M,X,AA){kA(M);const CA=nA.list();return CA.length?CA.forEach(RA=>RA(M,X,AA)):console.error(M),Promise.reject(M)}function dA(){return z&&s.value!==Lt?Promise.resolve():new Promise((M,X)=>{lA.add([M,X])})}function kA(M){return z||(z=!M,pA(),lA.list().forEach(([X,AA])=>M?AA(M):X()),lA.reset()),M}function Y(M,X,AA,CA){const{scrollBehavior:RA}=A;if(!ui||!RA)return Promise.resolve();const D=!AA&&sR(Ka(M.fullPath,0))||(CA||!AA)&&history.state&&history.state.scroll||null;return hn().then(()=>RA(M,X,D)).then(S=>S&&rR(S)).catch(S=>tA(S,M,X))}const j=M=>n.go(M);let sA;const SA=new Set,UA={currentRoute:s,listening:!0,addRoute:Q,removeRoute:u,clearRoutes:e.clearRoutes,hasRoute:h,getRoutes:f,resolve:E,options:A,push:d,replace:w,go:j,back:()=>j(-1),forward:()=>j(1),beforeEach:o.add,beforeResolve:r.add,afterEach:g.add,onError:nA.add,isReady:dA,install(M){M.component("RouterLink",MR),M.component("RouterView",HR),M.config.globalProperties.$router=UA,Object.defineProperty(M.config.globalProperties,"$route",{enumerable:!0,get:()=>cA(s)}),ui&&!sA&&s.value===Lt&&(sA=!0,d(n.location).catch(CA=>{}));const X={};for(const CA in Lt)Object.defineProperty(X,CA,{get:()=>s.value[CA],enumerable:!0});M.provide(Sg,UA),M.provide($l,DI(X)),M.provide(Pr,s);const AA=M.unmount;SA.add(M),M.unmount=function(){SA.delete(M),SA.size<1&&(a=Lt,EA&&EA(),EA=null,s.value=Lt,sA=!1,z=!1),AA()}}};function HA(M){return M.reduce((X,AA)=>X.then(()=>P(AA)),Promise.resolve())}return UA}const _R=[{path:"/",name:"Home",component:()=>Ul(()=>Promise.resolve().then(()=>vb),void 0)}],KR=YR({history:fR("/generator"),routes:_R}),PR=du({legacy:!1,locale:td(),fallbackLocale:"en",messages:ed}),bg=dc(Ub);bg.use(KR);bg.use(PR);bg.mount("#app")});export default OR();
|