diff --git a/404.html b/404.html new file mode 100644 index 0000000..72d7088 --- /dev/null +++ b/404.html @@ -0,0 +1,43 @@ + + + + + + + + + + + + + + +
+ + + diff --git a/assets/404.html-BnLtj2Fy.js b/assets/404.html-BnLtj2Fy.js new file mode 100644 index 0000000..5bb626b --- /dev/null +++ b/assets/404.html-BnLtj2Fy.js @@ -0,0 +1 @@ +import{_ as e,c as o,b as n,o as r}from"./app-JC71_Alg.js";const a={};function l(i,t){return r(),o("div",null,t[0]||(t[0]=[n("p",null,"404 Not Found",-1)]))}const c=e(a,[["render",l],["__file","404.html.vue"]]),s=JSON.parse('{"path":"/404.html","title":"","lang":"en-US","frontmatter":{"layout":"NotFound","description":"404 Not Found","head":[["meta",{"property":"og:url","content":"https://worldline.github.io/worldline/learning-ai/learning-ai/404.html"}],["meta",{"property":"og:description","content":"404 Not Found"}],["meta",{"property":"og:type","content":"website"}],["meta",{"property":"og:locale","content":"en-US"}],["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"WebPage\\",\\"name\\":\\"\\",\\"description\\":\\"404 Not Found\\"}"]]},"headers":[],"git":{},"filePathRelative":null,"autoDesc":true}');export{c as comp,s as data}; diff --git a/assets/alphago-D7ibr0g1.png b/assets/alphago-D7ibr0g1.png new file mode 100644 index 0000000..ee406eb Binary files /dev/null and b/assets/alphago-D7ibr0g1.png differ diff --git a/assets/app-JC71_Alg.js b/assets/app-JC71_Alg.js new file mode 100644 index 0000000..4113d86 --- /dev/null +++ b/assets/app-JC71_Alg.js @@ -0,0 +1,42 @@ +const fd="modulepreload",dd=function(e){return"/learning-ai/"+e},Hi={},Nt=function(t,n,r){let o=Promise.resolve();if(n&&n.length>0){document.getElementsByTagName("link");const i=document.querySelector("meta[property=csp-nonce]"),a=(i==null?void 0:i.nonce)||(i==null?void 0:i.getAttribute("nonce"));o=Promise.allSettled(n.map(l=>{if(l=dd(l),l in Hi)return;Hi[l]=!0;const u=l.endsWith(".css"),c=u?'[rel="stylesheet"]':"";if(document.querySelector(`link[href="${l}"]${c}`))return;const f=document.createElement("link");if(f.rel=u?"stylesheet":fd,u||(f.as="script"),f.crossOrigin="",f.href=l,a&&f.setAttribute("nonce",a),document.head.appendChild(f),u)return new Promise((d,p)=>{f.addEventListener("load",d),f.addEventListener("error",()=>p(new Error(`Unable to preload CSS for ${l}`)))})}))}function s(i){const a=new Event("vite:preloadError",{cancelable:!0});if(a.payload=i,window.dispatchEvent(a),!a.defaultPrevented)throw i}return o.then(i=>{for(const a of i||[])a.status==="rejected"&&s(a.reason);return t().catch(s)})};/** +* @vue/shared v3.5.13 +* (c) 2018-present Yuxi (Evan) You and Vue contributors +* @license MIT +**//*! #__NO_SIDE_EFFECTS__ */function Yn(e){const t=Object.create(null);for(const n of e.split(","))t[n]=1;return n=>n in t}const Se={},Rn=[],kt=()=>{},pd=()=>!1,$r=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&(e.charCodeAt(2)>122||e.charCodeAt(2)<97),Gs=e=>e.startsWith("onUpdate:"),Ne=Object.assign,Ys=(e,t)=>{const n=e.indexOf(t);n>-1&&e.splice(n,1)},hd=Object.prototype.hasOwnProperty,me=(e,t)=>hd.call(e,t),re=Array.isArray,Ln=e=>Oo(e)==="[object Map]",su=e=>Oo(e)==="[object Set]",oe=e=>typeof e=="function",Oe=e=>typeof e=="string",Bt=e=>typeof e=="symbol",Te=e=>e!==null&&typeof e=="object",iu=e=>(Te(e)||oe(e))&&oe(e.then)&&oe(e.catch),au=Object.prototype.toString,Oo=e=>au.call(e),md=e=>Oo(e).slice(8,-1),lu=e=>Oo(e)==="[object Object]",Xs=e=>Oe(e)&&e!=="NaN"&&e[0]!=="-"&&""+parseInt(e,10)===e,Dn=Yn(",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted"),xo=e=>{const t=Object.create(null);return n=>t[n]||(t[n]=e(n))},gd=/-(\w)/g,rt=xo(e=>e.replace(gd,(t,n)=>n?n.toUpperCase():"")),vd=/\B([A-Z])/g,Ut=xo(e=>e.replace(vd,"-$1").toLowerCase()),Br=xo(e=>e.charAt(0).toUpperCase()+e.slice(1)),Go=xo(e=>e?`on${Br(e)}`:""),Jt=(e,t)=>!Object.is(e,t),Yo=(e,...t)=>{for(let n=0;n{Object.defineProperty(e,t,{configurable:!0,enumerable:!1,writable:r,value:n})},_d=e=>{const t=parseFloat(e);return isNaN(t)?e:t},yd=e=>{const t=Oe(e)?Number(e):NaN;return isNaN(t)?e:t};let $i;const ko=()=>$i||($i=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof global<"u"?global:{});function Xn(e){if(re(e)){const t={};for(let n=0;n{if(n){const r=n.split(Ed);r.length>1&&(t[r[0].trim()]=r[1].trim())}}),t}function Cd(e){if(!e)return"";if(Oe(e))return e;let t="";for(const n in e){const r=e[n];if(Oe(r)||typeof r=="number"){const o=n.startsWith("--")?n:Ut(n);t+=`${o}:${r};`}}return t}function nt(e){let t="";if(Oe(e))t=e;else if(re(e))for(let n=0;n?@[\\\]^`{|}~]/g;function Pd(e,t){return e.replace(kd,n=>`\\${n}`)}const cu=e=>!!(e&&e.__v_isRef===!0),Ie=e=>Oe(e)?e:e==null?"":re(e)||Te(e)&&(e.toString===au||!oe(e.toString))?cu(e)?Ie(e.value):JSON.stringify(e,fu,2):String(e),fu=(e,t)=>cu(t)?fu(e,t.value):Ln(t)?{[`Map(${t.size})`]:[...t.entries()].reduce((n,[r,o],s)=>(n[Xo(r,s)+" =>"]=o,n),{})}:su(t)?{[`Set(${t.size})`]:[...t.values()].map(n=>Xo(n))}:Bt(t)?Xo(t):Te(t)&&!re(t)&&!lu(t)?String(t):t,Xo=(e,t="")=>{var n;return Bt(e)?`Symbol(${(n=e.description)!=null?n:t})`:e};/** +* @vue/reactivity v3.5.13 +* (c) 2018-present Yuxi (Evan) You and Vue contributors +* @license MIT +**/let Ze;class Id{constructor(t=!1){this.detached=t,this._active=!0,this.effects=[],this.cleanups=[],this._isPaused=!1,this.parent=Ze,!t&&Ze&&(this.index=(Ze.scopes||(Ze.scopes=[])).push(this)-1)}get active(){return this._active}pause(){if(this._active){this._isPaused=!0;let t,n;if(this.scopes)for(t=0,n=this.scopes.length;t0)return;if(_r){let t=_r;for(_r=void 0;t;){const n=t.next;t.next=void 0,t.flags&=-9,t=n}}let e;for(;vr;){let t=vr;for(vr=void 0;t;){const n=t.next;if(t.next=void 0,t.flags&=-9,t.flags&1)try{t.trigger()}catch(r){e||(e=r)}t=n}}if(e)throw e}function gu(e){for(let t=e.deps;t;t=t.nextDep)t.version=-1,t.prevActiveLink=t.dep.activeLink,t.dep.activeLink=t}function vu(e){let t,n=e.depsTail,r=n;for(;r;){const o=r.prevDep;r.version===-1?(r===n&&(n=o),ei(r),Ld(r)):t=r,r.dep.activeLink=r.prevActiveLink,r.prevActiveLink=void 0,r=o}e.deps=t,e.depsTail=n}function ys(e){for(let t=e.deps;t;t=t.nextDep)if(t.dep.version!==t.version||t.dep.computed&&(_u(t.dep.computed)||t.dep.version!==t.version))return!0;return!!e._dirty}function _u(e){if(e.flags&4&&!(e.flags&16)||(e.flags&=-17,e.globalVersion===Tr))return;e.globalVersion=Tr;const t=e.dep;if(e.flags|=2,t.version>0&&!e.isSSR&&e.deps&&!ys(e)){e.flags&=-3;return}const n=Ce,r=bt;Ce=e,bt=!0;try{gu(e);const o=e.fn(e._value);(t.version===0||Jt(o,e._value))&&(e._value=o,t.version++)}catch(o){throw t.version++,o}finally{Ce=n,bt=r,vu(e),e.flags&=-3}}function ei(e,t=!1){const{dep:n,prevSub:r,nextSub:o}=e;if(r&&(r.nextSub=o,e.prevSub=void 0),o&&(o.prevSub=r,e.nextSub=void 0),n.subs===e&&(n.subs=r,!r&&n.computed)){n.computed.flags&=-5;for(let s=n.computed.deps;s;s=s.nextDep)ei(s,!0)}!t&&!--n.sc&&n.map&&n.map.delete(n.key)}function Ld(e){const{prevDep:t,nextDep:n}=e;t&&(t.nextDep=n,e.prevDep=void 0),n&&(n.prevDep=t,e.nextDep=void 0)}let bt=!0;const yu=[];function jt(){yu.push(bt),bt=!1}function zt(){const e=yu.pop();bt=e===void 0?!0:e}function Ui(e){const{cleanup:t}=e;if(e.cleanup=void 0,t){const n=Ce;Ce=void 0;try{t()}finally{Ce=n}}}let Tr=0;class Dd{constructor(t,n){this.sub=t,this.dep=n,this.version=n.version,this.nextDep=this.prevDep=this.nextSub=this.prevSub=this.prevActiveLink=void 0}}class Po{constructor(t){this.computed=t,this.version=0,this.activeLink=void 0,this.subs=void 0,this.map=void 0,this.key=void 0,this.sc=0}track(t){if(!Ce||!bt||Ce===this.computed)return;let n=this.activeLink;if(n===void 0||n.sub!==Ce)n=this.activeLink=new Dd(Ce,this),Ce.deps?(n.prevDep=Ce.depsTail,Ce.depsTail.nextDep=n,Ce.depsTail=n):Ce.deps=Ce.depsTail=n,bu(n);else if(n.version===-1&&(n.version=this.version,n.nextDep)){const r=n.nextDep;r.prevDep=n.prevDep,n.prevDep&&(n.prevDep.nextDep=r),n.prevDep=Ce.depsTail,n.nextDep=void 0,Ce.depsTail.nextDep=n,Ce.depsTail=n,Ce.deps===n&&(Ce.deps=r)}return n}trigger(t){this.version++,Tr++,this.notify(t)}notify(t){Qs();try{for(let n=this.subs;n;n=n.prevSub)n.sub.notify()&&n.sub.dep.notify()}finally{Js()}}}function bu(e){if(e.dep.sc++,e.sub.flags&4){const t=e.dep.computed;if(t&&!e.dep.subs){t.flags|=20;for(let r=t.deps;r;r=r.nextDep)bu(r)}const n=e.dep.subs;n!==e&&(e.prevSub=n,n&&(n.nextSub=e)),e.dep.subs=e}}const mo=new WeakMap,En=Symbol(""),bs=Symbol(""),Or=Symbol("");function Ke(e,t,n){if(bt&&Ce){let r=mo.get(e);r||mo.set(e,r=new Map);let o=r.get(n);o||(r.set(n,o=new Po),o.map=r,o.key=n),o.track()}}function Ht(e,t,n,r,o,s){const i=mo.get(e);if(!i){Tr++;return}const a=l=>{l&&l.trigger()};if(Qs(),t==="clear")i.forEach(a);else{const l=re(e),u=l&&Xs(n);if(l&&n==="length"){const c=Number(r);i.forEach((f,d)=>{(d==="length"||d===Or||!Bt(d)&&d>=c)&&a(f)})}else switch((n!==void 0||i.has(void 0))&&a(i.get(n)),u&&a(i.get(Or)),t){case"add":l?u&&a(i.get("length")):(a(i.get(En)),Ln(e)&&a(i.get(bs)));break;case"delete":l||(a(i.get(En)),Ln(e)&&a(i.get(bs)));break;case"set":Ln(e)&&a(i.get(En));break}}Js()}function Nd(e,t){const n=mo.get(e);return n&&n.get(t)}function On(e){const t=ue(e);return t===e?t:(Ke(t,"iterate",Or),vt(e)?t:t.map(We))}function Io(e){return Ke(e=ue(e),"iterate",Or),e}const Vd={__proto__:null,[Symbol.iterator](){return Qo(this,Symbol.iterator,We)},concat(...e){return On(this).concat(...e.map(t=>re(t)?On(t):t))},entries(){return Qo(this,"entries",e=>(e[1]=We(e[1]),e))},every(e,t){return It(this,"every",e,t,void 0,arguments)},filter(e,t){return It(this,"filter",e,t,n=>n.map(We),arguments)},find(e,t){return It(this,"find",e,t,We,arguments)},findIndex(e,t){return It(this,"findIndex",e,t,void 0,arguments)},findLast(e,t){return It(this,"findLast",e,t,We,arguments)},findLastIndex(e,t){return It(this,"findLastIndex",e,t,void 0,arguments)},forEach(e,t){return It(this,"forEach",e,t,void 0,arguments)},includes(...e){return Jo(this,"includes",e)},indexOf(...e){return Jo(this,"indexOf",e)},join(e){return On(this).join(e)},lastIndexOf(...e){return Jo(this,"lastIndexOf",e)},map(e,t){return It(this,"map",e,t,void 0,arguments)},pop(){return ir(this,"pop")},push(...e){return ir(this,"push",e)},reduce(e,...t){return ji(this,"reduce",e,t)},reduceRight(e,...t){return ji(this,"reduceRight",e,t)},shift(){return ir(this,"shift")},some(e,t){return It(this,"some",e,t,void 0,arguments)},splice(...e){return ir(this,"splice",e)},toReversed(){return On(this).toReversed()},toSorted(e){return On(this).toSorted(e)},toSpliced(...e){return On(this).toSpliced(...e)},unshift(...e){return ir(this,"unshift",e)},values(){return Qo(this,"values",We)}};function Qo(e,t,n){const r=Io(e),o=r[t]();return r!==e&&!vt(e)&&(o._next=o.next,o.next=()=>{const s=o._next();return s.value&&(s.value=n(s.value)),s}),o}const Md=Array.prototype;function It(e,t,n,r,o,s){const i=Io(e),a=i!==e&&!vt(e),l=i[t];if(l!==Md[t]){const f=l.apply(e,s);return a?We(f):f}let u=n;i!==e&&(a?u=function(f,d){return n.call(this,We(f),d,e)}:n.length>2&&(u=function(f,d){return n.call(this,f,d,e)}));const c=l.call(i,u,r);return a&&o?o(c):c}function ji(e,t,n,r){const o=Io(e);let s=n;return o!==e&&(vt(e)?n.length>3&&(s=function(i,a,l){return n.call(this,i,a,l,e)}):s=function(i,a,l){return n.call(this,i,We(a),l,e)}),o[t](s,...r)}function Jo(e,t,n){const r=ue(e);Ke(r,"iterate",Or);const o=r[t](...n);return(o===-1||o===!1)&&ri(n[0])?(n[0]=ue(n[0]),r[t](...n)):o}function ir(e,t,n=[]){jt(),Qs();const r=ue(e)[t].apply(e,n);return Js(),zt(),r}const Fd=Yn("__proto__,__v_isRef,__isVue"),Eu=new Set(Object.getOwnPropertyNames(Symbol).filter(e=>e!=="arguments"&&e!=="caller").map(e=>Symbol[e]).filter(Bt));function Hd(e){Bt(e)||(e=String(e));const t=ue(this);return Ke(t,"has",e),t.hasOwnProperty(e)}class Su{constructor(t=!1,n=!1){this._isReadonly=t,this._isShallow=n}get(t,n,r){if(n==="__v_skip")return t.__v_skip;const o=this._isReadonly,s=this._isShallow;if(n==="__v_isReactive")return!o;if(n==="__v_isReadonly")return o;if(n==="__v_isShallow")return s;if(n==="__v_raw")return r===(o?s?Yd:Tu:s?wu:Cu).get(t)||Object.getPrototypeOf(t)===Object.getPrototypeOf(r)?t:void 0;const i=re(t);if(!o){let l;if(i&&(l=Vd[n]))return l;if(n==="hasOwnProperty")return Hd}const a=Reflect.get(t,n,De(t)?t:r);return(Bt(n)?Eu.has(n):Fd(n))||(o||Ke(t,"get",n),s)?a:De(a)?i&&Xs(n)?a:a.value:Te(a)?o?Ro(a):Zn(a):a}}class Au extends Su{constructor(t=!1){super(!1,t)}set(t,n,r,o){let s=t[n];if(!this._isShallow){const l=Cn(s);if(!vt(r)&&!Cn(r)&&(s=ue(s),r=ue(r)),!re(t)&&De(s)&&!De(r))return l?!1:(s.value=r,!0)}const i=re(t)&&Xs(n)?Number(n)e,Yr=e=>Reflect.getPrototypeOf(e);function zd(e,t,n){return function(...r){const o=this.__v_raw,s=ue(o),i=Ln(s),a=e==="entries"||e===Symbol.iterator&&i,l=e==="keys"&&i,u=o[e](...r),c=n?Es:t?Ss:We;return!t&&Ke(s,"iterate",l?bs:En),{next(){const{value:f,done:d}=u.next();return d?{value:f,done:d}:{value:a?[c(f[0]),c(f[1])]:c(f),done:d}},[Symbol.iterator](){return this}}}}function Xr(e){return function(...t){return e==="delete"?!1:e==="clear"?void 0:this}}function Kd(e,t){const n={get(o){const s=this.__v_raw,i=ue(s),a=ue(o);e||(Jt(o,a)&&Ke(i,"get",o),Ke(i,"get",a));const{has:l}=Yr(i),u=t?Es:e?Ss:We;if(l.call(i,o))return u(s.get(o));if(l.call(i,a))return u(s.get(a));s!==i&&s.get(o)},get size(){const o=this.__v_raw;return!e&&Ke(ue(o),"iterate",En),Reflect.get(o,"size",o)},has(o){const s=this.__v_raw,i=ue(s),a=ue(o);return e||(Jt(o,a)&&Ke(i,"has",o),Ke(i,"has",a)),o===a?s.has(o):s.has(o)||s.has(a)},forEach(o,s){const i=this,a=i.__v_raw,l=ue(a),u=t?Es:e?Ss:We;return!e&&Ke(l,"iterate",En),a.forEach((c,f)=>o.call(s,u(c),u(f),i))}};return Ne(n,e?{add:Xr("add"),set:Xr("set"),delete:Xr("delete"),clear:Xr("clear")}:{add(o){!t&&!vt(o)&&!Cn(o)&&(o=ue(o));const s=ue(this);return Yr(s).has.call(s,o)||(s.add(o),Ht(s,"add",o,o)),this},set(o,s){!t&&!vt(s)&&!Cn(s)&&(s=ue(s));const i=ue(this),{has:a,get:l}=Yr(i);let u=a.call(i,o);u||(o=ue(o),u=a.call(i,o));const c=l.call(i,o);return i.set(o,s),u?Jt(s,c)&&Ht(i,"set",o,s):Ht(i,"add",o,s),this},delete(o){const s=ue(this),{has:i,get:a}=Yr(s);let l=i.call(s,o);l||(o=ue(o),l=i.call(s,o)),a&&a.call(s,o);const u=s.delete(o);return l&&Ht(s,"delete",o,void 0),u},clear(){const o=ue(this),s=o.size!==0,i=o.clear();return s&&Ht(o,"clear",void 0,void 0),i}}),["keys","values","entries",Symbol.iterator].forEach(o=>{n[o]=zd(o,e,t)}),n}function ti(e,t){const n=Kd(e,t);return(r,o,s)=>o==="__v_isReactive"?!e:o==="__v_isReadonly"?e:o==="__v_raw"?r:Reflect.get(me(n,o)&&o in r?n:r,o,s)}const Wd={get:ti(!1,!1)},qd={get:ti(!1,!0)},Gd={get:ti(!0,!1)};const Cu=new WeakMap,wu=new WeakMap,Tu=new WeakMap,Yd=new WeakMap;function Xd(e){switch(e){case"Object":case"Array":return 1;case"Map":case"Set":case"WeakMap":case"WeakSet":return 2;default:return 0}}function Zd(e){return e.__v_skip||!Object.isExtensible(e)?0:Xd(md(e))}function Zn(e){return Cn(e)?e:ni(e,!1,Bd,Wd,Cu)}function Ou(e){return ni(e,!1,jd,qd,wu)}function Ro(e){return ni(e,!0,Ud,Gd,Tu)}function ni(e,t,n,r,o){if(!Te(e)||e.__v_raw&&!(t&&e.__v_isReactive))return e;const s=o.get(e);if(s)return s;const i=Zd(e);if(i===0)return e;const a=new Proxy(e,i===2?r:n);return o.set(e,a),a}function Nn(e){return Cn(e)?Nn(e.__v_raw):!!(e&&e.__v_isReactive)}function Cn(e){return!!(e&&e.__v_isReadonly)}function vt(e){return!!(e&&e.__v_isShallow)}function ri(e){return e?!!e.__v_raw:!1}function ue(e){const t=e&&e.__v_raw;return t?ue(t):e}function Qd(e){return!me(e,"__v_skip")&&Object.isExtensible(e)&&Bn(e,"__v_skip",!0),e}const We=e=>Te(e)?Zn(e):e,Ss=e=>Te(e)?Ro(e):e;function De(e){return e?e.__v_isRef===!0:!1}function ge(e){return xu(e,!1)}function ft(e){return xu(e,!0)}function xu(e,t){return De(e)?e:new Jd(e,t)}class Jd{constructor(t,n){this.dep=new Po,this.__v_isRef=!0,this.__v_isShallow=!1,this._rawValue=n?t:ue(t),this._value=n?t:We(t),this.__v_isShallow=n}get value(){return this.dep.track(),this._value}set value(t){const n=this._rawValue,r=this.__v_isShallow||vt(t)||Cn(t);t=r?t:ue(t),Jt(t,n)&&(this._rawValue=t,this._value=r?t:We(t),this.dep.trigger())}}function Qt(e){return De(e)?e.value:e}const ep={get:(e,t,n)=>t==="__v_raw"?e:Qt(Reflect.get(e,t,n)),set:(e,t,n,r)=>{const o=e[t];return De(o)&&!De(n)?(o.value=n,!0):Reflect.set(e,t,n,r)}};function ku(e){return Nn(e)?e:new Proxy(e,ep)}class tp{constructor(t){this.__v_isRef=!0,this._value=void 0;const n=this.dep=new Po,{get:r,set:o}=t(n.track.bind(n),n.trigger.bind(n));this._get=r,this._set=o}get value(){return this._value=this._get()}set value(t){this._set(t)}}function np(e){return new tp(e)}function Pu(e){const t=re(e)?new Array(e.length):{};for(const n in e)t[n]=Iu(e,n);return t}class rp{constructor(t,n,r){this._object=t,this._key=n,this._defaultValue=r,this.__v_isRef=!0,this._value=void 0}get value(){const t=this._object[this._key];return this._value=t===void 0?this._defaultValue:t}set value(t){this._object[this._key]=t}get dep(){return Nd(ue(this._object),this._key)}}class op{constructor(t){this._getter=t,this.__v_isRef=!0,this.__v_isReadonly=!0,this._value=void 0}get value(){return this._value=this._getter()}}function sp(e,t,n){return De(e)?e:oe(e)?new op(e):Te(e)&&arguments.length>1?Iu(e,t,n):ge(e)}function Iu(e,t,n){const r=e[t];return De(r)?r:new rp(e,t,n)}class ip{constructor(t,n,r){this.fn=t,this.setter=n,this._value=void 0,this.dep=new Po(this),this.__v_isRef=!0,this.deps=void 0,this.depsTail=void 0,this.flags=16,this.globalVersion=Tr-1,this.next=void 0,this.effect=this,this.__v_isReadonly=!n,this.isSSR=r}notify(){if(this.flags|=16,!(this.flags&8)&&Ce!==this)return mu(this,!0),!0}get value(){const t=this.dep.track();return _u(this),t&&(t.version=this.dep.version),this._value}set value(t){this.setter&&this.setter(t)}}function ap(e,t,n=!1){let r,o;return oe(e)?r=e:(r=e.get,o=e.set),new ip(r,o,n)}const Zr={},go=new WeakMap;let mn;function lp(e,t=!1,n=mn){if(n){let r=go.get(n);r||go.set(n,r=[]),r.push(e)}}function up(e,t,n=Se){const{immediate:r,deep:o,once:s,scheduler:i,augmentJob:a,call:l}=n,u=y=>o?y:vt(y)||o===!1||o===0?$t(y,1):$t(y);let c,f,d,p,v=!1,_=!1;if(De(e)?(f=()=>e.value,v=vt(e)):Nn(e)?(f=()=>u(e),v=!0):re(e)?(_=!0,v=e.some(y=>Nn(y)||vt(y)),f=()=>e.map(y=>{if(De(y))return y.value;if(Nn(y))return u(y);if(oe(y))return l?l(y,2):y()})):oe(e)?t?f=l?()=>l(e,2):e:f=()=>{if(d){jt();try{d()}finally{zt()}}const y=mn;mn=c;try{return l?l(e,3,[p]):e(p)}finally{mn=y}}:f=kt,t&&o){const y=f,L=o===!0?1/0:o;f=()=>$t(y(),L)}const b=du(),E=()=>{c.stop(),b&&b.active&&Ys(b.effects,c)};if(s&&t){const y=t;t=(...L)=>{y(...L),E()}}let A=_?new Array(e.length).fill(Zr):Zr;const m=y=>{if(!(!(c.flags&1)||!c.dirty&&!y))if(t){const L=c.run();if(o||v||(_?L.some((W,M)=>Jt(W,A[M])):Jt(L,A))){d&&d();const W=mn;mn=c;try{const M=[L,A===Zr?void 0:_&&A[0]===Zr?[]:A,p];l?l(t,3,M):t(...M),A=L}finally{mn=W}}}else c.run()};return a&&a(m),c=new pu(f),c.scheduler=i?()=>i(m,!1):m,p=y=>lp(y,!1,c),d=c.onStop=()=>{const y=go.get(c);if(y){if(l)l(y,4);else for(const L of y)L();go.delete(c)}},t?r?m(!0):A=c.run():i?i(m.bind(null,!0),!0):c.run(),E.pause=c.pause.bind(c),E.resume=c.resume.bind(c),E.stop=E,E}function $t(e,t=1/0,n){if(t<=0||!Te(e)||e.__v_skip||(n=n||new Set,n.has(e)))return e;if(n.add(e),t--,De(e))$t(e.value,t,n);else if(re(e))for(let r=0;r{$t(r,t,n)});else if(lu(e)){for(const r in e)$t(e[r],t,n);for(const r of Object.getOwnPropertySymbols(e))Object.prototype.propertyIsEnumerable.call(e,r)&&$t(e[r],t,n)}return e}/** +* @vue/runtime-core v3.5.13 +* (c) 2018-present Yuxi (Evan) You and Vue contributors +* @license MIT +**/const yr=[];let es=!1;function qt(e,...t){if(es)return;es=!0,jt();const n=yr.length?yr[yr.length-1].component:null,r=n&&n.appContext.config.warnHandler,o=cp();if(r)Qn(r,n,11,[e+t.map(s=>{var i,a;return(a=(i=s.toString)==null?void 0:i.call(s))!=null?a:JSON.stringify(s)}).join(""),n&&n.proxy,o.map(({vnode:s})=>`at <${Ec(n,s.type)}>`).join(` +`),o]);else{const s=[`[Vue warn]: ${e}`,...t];o.length&&s.push(` +`,...fp(o)),console.warn(...s)}zt(),es=!1}function cp(){let e=yr[yr.length-1];if(!e)return[];const t=[];for(;e;){const n=t[0];n&&n.vnode===e?n.recurseCount++:t.push({vnode:e,recurseCount:0});const r=e.component&&e.component.parent;e=r&&r.vnode}return t}function fp(e){const t=[];return e.forEach((n,r)=>{t.push(...r===0?[]:[` +`],...dp(n))}),t}function dp({vnode:e,recurseCount:t}){const n=t>0?`... (${t} recursive calls)`:"",r=e.component?e.component.parent==null:!1,o=` at <${Ec(e.component,e.type,r)}`,s=">"+n;return e.props?[o,...pp(e.props),s]:[o+s]}function pp(e){const t=[],n=Object.keys(e);return n.slice(0,3).forEach(r=>{t.push(...Ru(r,e[r]))}),n.length>3&&t.push(" ..."),t}function Ru(e,t,n){return Oe(t)?(t=JSON.stringify(t),n?t:[`${e}=${t}`]):typeof t=="number"||typeof t=="boolean"||t==null?n?t:[`${e}=${t}`]:De(t)?(t=Ru(e,ue(t.value),!0),n?t:[`${e}=Ref<`,t,">"]):oe(t)?[`${e}=fn${t.name?`<${t.name}>`:""}`]:(t=ue(t),n?t:[`${e}=`,t])}function Qn(e,t,n,r){try{return r?e(...r):e()}catch(o){Ur(o,t,n)}}function Et(e,t,n,r){if(oe(e)){const o=Qn(e,t,n,r);return o&&iu(o)&&o.catch(s=>{Ur(s,t,n)}),o}if(re(e)){const o=[];for(let s=0;s>>1,o=Qe[r],s=xr(o);s=xr(n)?Qe.push(e):Qe.splice(mp(t),0,e),e.flags|=1,Du()}}function Du(){vo||(vo=Lu.then(Nu))}function gp(e){re(e)?Vn.push(...e):Gt&&e.id===-1?Gt.splice(Pn+1,0,e):e.flags&1||(Vn.push(e),e.flags|=1),Du()}function zi(e,t,n=Tt+1){for(;nxr(n)-xr(r));if(Vn.length=0,Gt){Gt.push(...t);return}for(Gt=t,Pn=0;Pne.id==null?e.flags&2?-1:1/0:e.id;function Nu(e){try{for(Tt=0;Ttxt.emit(o,...s)),dr=[]):typeof window<"u"&&window.HTMLElement&&!((r=(n=window.navigator)==null?void 0:n.userAgent)!=null&&r.includes("jsdom"))?((t.__VUE_DEVTOOLS_HOOK_REPLAY__=t.__VUE_DEVTOOLS_HOOK_REPLAY__||[]).push(s=>{Vu(s,t)}),setTimeout(()=>{xt||(t.__VUE_DEVTOOLS_HOOK_REPLAY__=null,As=!0,dr=[])},3e3)):(As=!0,dr=[])}function vp(e,t){Lo("app:init",e,t,{Fragment:_e,Text:en,Comment:je,Static:Fn})}function _p(e){Lo("app:unmount",e)}const yp=si("component:added"),Mu=si("component:updated"),bp=si("component:removed"),Ep=e=>{xt&&typeof xt.cleanupBuffer=="function"&&!xt.cleanupBuffer(e)&&bp(e)};/*! #__NO_SIDE_EFFECTS__ */function si(e){return t=>{Lo(e,t.appContext.app,t.uid,t.parent?t.parent.uid:void 0,t)}}function Sp(e,t,n){Lo("component:emit",e.appContext.app,e,t,n)}let Be=null,Fu=null;function yo(e){const t=Be;return Be=e,Fu=e&&e.type.__scopeId||null,t}function Ve(e,t=Be,n){if(!t||e._n)return e;const r=(...o)=>{r._d&&sa(-1);const s=yo(t);let i;try{i=e(...o)}finally{yo(s),r._d&&sa(1)}return Mu(t),i};return r._n=!0,r._c=!0,r._d=!0,r}function bo(e,t){if(Be===null)return e;const n=Mo(Be),r=e.dirs||(e.dirs=[]);for(let o=0;oe.__isTeleport,Yt=Symbol("_leaveCb"),Qr=Symbol("_enterCb");function Cp(){const e={isMounted:!1,isLeaving:!1,isUnmounting:!1,leavingVNodes:new Map};return Ye(()=>{e.isMounted=!0}),ai(()=>{e.isUnmounting=!0}),e}const ht=[Function,Array],$u={mode:String,appear:Boolean,persisted:Boolean,onBeforeEnter:ht,onEnter:ht,onAfterEnter:ht,onEnterCancelled:ht,onBeforeLeave:ht,onLeave:ht,onAfterLeave:ht,onLeaveCancelled:ht,onBeforeAppear:ht,onAppear:ht,onAfterAppear:ht,onAppearCancelled:ht},Bu=e=>{const t=e.subTree;return t.component?Bu(t.component):t},wp={name:"BaseTransition",props:$u,setup(e,{slots:t}){const n=er(),r=Cp();return()=>{const o=t.default&&zu(t.default(),!0);if(!o||!o.length)return;const s=Uu(o),i=ue(e),{mode:a}=i;if(r.isLeaving)return ts(s);const l=Ki(s);if(!l)return ts(s);let u=Cs(l,i,r,n,f=>u=f);l.type!==je&&kr(l,u);let c=n.subTree&&Ki(n.subTree);if(c&&c.type!==je&&!_n(l,c)&&Bu(n).type!==je){let f=Cs(c,i,r,n);if(kr(c,f),a==="out-in"&&l.type!==je)return r.isLeaving=!0,f.afterLeave=()=>{r.isLeaving=!1,n.job.flags&8||n.update(),delete f.afterLeave,c=void 0},ts(s);a==="in-out"&&l.type!==je?f.delayLeave=(d,p,v)=>{const _=ju(r,c);_[String(c.key)]=c,d[Yt]=()=>{p(),d[Yt]=void 0,delete u.delayedLeave,c=void 0},u.delayedLeave=()=>{v(),delete u.delayedLeave,c=void 0}}:c=void 0}else c&&(c=void 0);return s}}};function Uu(e){let t=e[0];if(e.length>1){for(const n of e)if(n.type!==je){t=n;break}}return t}const Tp=wp;function ju(e,t){const{leavingVNodes:n}=e;let r=n.get(t.type);return r||(r=Object.create(null),n.set(t.type,r)),r}function Cs(e,t,n,r,o){const{appear:s,mode:i,persisted:a=!1,onBeforeEnter:l,onEnter:u,onAfterEnter:c,onEnterCancelled:f,onBeforeLeave:d,onLeave:p,onAfterLeave:v,onLeaveCancelled:_,onBeforeAppear:b,onAppear:E,onAfterAppear:A,onAppearCancelled:m}=t,y=String(e.key),L=ju(n,e),W=(U,O)=>{U&&Et(U,r,9,O)},M=(U,O)=>{const $=O[1];W(U,O),re(U)?U.every(C=>C.length<=1)&&$():U.length<=1&&$()},w={mode:i,persisted:a,beforeEnter(U){let O=l;if(!n.isMounted)if(s)O=b||l;else return;U[Yt]&&U[Yt](!0);const $=L[y];$&&_n(e,$)&&$.el[Yt]&&$.el[Yt](),W(O,[U])},enter(U){let O=u,$=c,C=f;if(!n.isMounted)if(s)O=E||u,$=A||c,C=m||f;else return;let D=!1;const Z=U[Qr]=ee=>{D||(D=!0,ee?W(C,[U]):W($,[U]),w.delayedLeave&&w.delayedLeave(),U[Qr]=void 0)};O?M(O,[U,Z]):Z()},leave(U,O){const $=String(e.key);if(U[Qr]&&U[Qr](!0),n.isUnmounting)return O();W(d,[U]);let C=!1;const D=U[Yt]=Z=>{C||(C=!0,O(),Z?W(_,[U]):W(v,[U]),U[Yt]=void 0,L[$]===e&&delete L[$])};L[$]=e,p?M(p,[U,D]):D()},clone(U){const O=Cs(U,t,n,r,o);return o&&o(O),O}};return w}function ts(e){if(jr(e))return e=nn(e),e.children=null,e}function Ki(e){if(!jr(e))return Hu(e.type)&&e.children?Uu(e.children):e;const{shapeFlag:t,children:n}=e;if(n){if(t&16)return n[0];if(t&32&&oe(n.default))return n.default()}}function kr(e,t){e.shapeFlag&6&&e.component?(e.transition=t,kr(e.component.subTree,t)):e.shapeFlag&128?(e.ssContent.transition=t.clone(e.ssContent),e.ssFallback.transition=t.clone(e.ssFallback)):e.transition=t}function zu(e,t=!1,n){let r=[],o=0;for(let s=0;s1)for(let s=0;sn.value,set:s=>n.value=s})}return n}function Pr(e,t,n,r,o=!1){if(re(e)){e.forEach((v,_)=>Pr(v,t&&(re(t)?t[_]:t),n,r,o));return}if(Sn(r)&&!o){r.shapeFlag&512&&r.type.__asyncResolved&&r.component.subTree.component&&Pr(e,t,n,r.component.subTree);return}const s=r.shapeFlag&4?Mo(r.component):r.el,i=o?null:s,{i:a,r:l}=e,u=t&&t.r,c=a.refs===Se?a.refs={}:a.refs,f=a.setupState,d=ue(f),p=f===Se?()=>!1:v=>me(d,v);if(u!=null&&u!==l&&(Oe(u)?(c[u]=null,p(u)&&(f[u]=null)):De(u)&&(u.value=null)),oe(l))Qn(l,a,12,[i,c]);else{const v=Oe(l),_=De(l);if(v||_){const b=()=>{if(e.f){const E=v?p(l)?f[l]:c[l]:l.value;o?re(E)&&Ys(E,s):re(E)?E.includes(s)||E.push(s):v?(c[l]=[s],p(l)&&(f[l]=c[l])):(l.value=[s],e.k&&(c[e.k]=l.value))}else v?(c[l]=i,p(l)&&(f[l]=i)):_&&(l.value=i,e.k&&(c[e.k]=i))};i?(b.id=-1,at(b,n)):b()}}}let qi=!1;const cn=()=>{qi||(console.error("Hydration completed but contains mismatches."),qi=!0)},Op=e=>e.namespaceURI.includes("svg")&&e.tagName!=="foreignObject",xp=e=>e.namespaceURI.includes("MathML"),Jr=e=>{if(e.nodeType===1){if(Op(e))return"svg";if(xp(e))return"mathml"}},vn=e=>e.nodeType===8;function kp(e){const{mt:t,p:n,o:{patchProp:r,createText:o,nextSibling:s,parentNode:i,remove:a,insert:l,createComment:u}}=e,c=(m,y)=>{if(!y.hasChildNodes()){qt("Attempting to hydrate existing markup but container is empty. Performing full mount instead."),n(null,m,y),_o(),y._vnode=m;return}f(y.firstChild,m,null,null,null),_o(),y._vnode=m},f=(m,y,L,W,M,w=!1)=>{w=w||!!y.dynamicChildren;const U=vn(m)&&m.data==="[",O=()=>_(m,y,L,W,M,U),{type:$,ref:C,shapeFlag:D,patchFlag:Z}=y;let ee=m.nodeType;y.el=m,Bn(m,"__vnode",y,!0),Bn(m,"__vueParentComponent",L,!0),Z===-2&&(w=!1,y.dynamicChildren=null);let I=null;switch($){case en:ee!==3?y.children===""?(l(y.el=o(""),i(m),m),I=m):I=O():(m.data!==y.children&&(qt("Hydration text mismatch in",m.parentNode,` + - rendered on server: ${JSON.stringify(m.data)} + - expected on client: ${JSON.stringify(y.children)}`),cn(),m.data=y.children),I=s(m));break;case je:A(m)?(I=s(m),E(y.el=m.content.firstChild,m,L)):ee!==8||U?I=O():I=s(m);break;case Fn:if(U&&(m=s(m),ee=m.nodeType),ee===1||ee===3){I=m;const N=!y.children.length;for(let z=0;z{w=w||!!y.dynamicChildren;const{type:U,props:O,patchFlag:$,shapeFlag:C,dirs:D,transition:Z}=y,ee=U==="input"||U==="option";if(ee||$!==-1){D&&Ot(y,null,L,"created");let I=!1;if(A(m)){I=ac(null,Z)&&L&&L.vnode.props&&L.vnode.props.appear;const z=m.content.firstChild;I&&Z.beforeEnter(z),E(z,m,L),y.el=m=z}if(C&16&&!(O&&(O.innerHTML||O.textContent))){let z=p(m.firstChild,y,m,L,W,M,w),le=!1;for(;z;){pr(m,1)||(le||(qt("Hydration children mismatch on",m,` +Server rendered element contains more child nodes than client vdom.`),le=!0),cn());const ye=z;z=z.nextSibling,a(ye)}}else if(C&8){let z=y.children;z[0]===` +`&&(m.tagName==="PRE"||m.tagName==="TEXTAREA")&&(z=z.slice(1)),m.textContent!==z&&(pr(m,0)||(qt("Hydration text content mismatch on",m,` + - rendered on server: ${m.textContent} + - expected on client: ${y.children}`),cn()),m.textContent=y.children)}if(O){const z=m.tagName.includes("-");for(const le in O)!(D&&D.some(ye=>ye.dir.created))&&Pp(m,le,O[le],y,L)&&cn(),(ee&&(le.endsWith("value")||le==="indeterminate")||$r(le)&&!Dn(le)||le[0]==="."||z)&&r(m,le,null,O[le],void 0,L)}let N;(N=O&&O.onVnodeBeforeMount)&&mt(N,L,y),D&&Ot(y,null,L,"beforeMount"),((N=O&&O.onVnodeMounted)||D||I)&&mc(()=>{N&&mt(N,L,y),I&&Z.enter(m),D&&Ot(y,null,L,"mounted")},W)}return m.nextSibling},p=(m,y,L,W,M,w,U)=>{U=U||!!y.dynamicChildren;const O=y.children,$=O.length;let C=!1;for(let D=0;D<$;D++){const Z=U?O[D]:O[D]=gt(O[D]),ee=Z.type===en;m?(ee&&!U&&D+1<$&>(O[D+1]).type===en&&(l(o(m.data.slice(Z.children.length)),L,s(m)),m.data=Z.children),m=f(m,Z,W,M,w,U)):ee&&!Z.children?l(Z.el=o(""),L):(pr(L,1)||(C||(qt("Hydration children mismatch on",L,` +Server rendered element contains fewer child nodes than client vdom.`),C=!0),cn()),n(null,Z,L,null,W,M,Jr(L),w))}return m},v=(m,y,L,W,M,w)=>{const{slotScopeIds:U}=y;U&&(M=M?M.concat(U):U);const O=i(m),$=p(s(m),y,O,L,W,M,w);return $&&vn($)&&$.data==="]"?s(y.anchor=$):(cn(),l(y.anchor=u("]"),O,$),$)},_=(m,y,L,W,M,w)=>{if(pr(m.parentElement,1)||(qt(`Hydration node mismatch: +- rendered on server:`,m,m.nodeType===3?"(text)":vn(m)&&m.data==="["?"(start of fragment)":"",` +- expected on client:`,y.type),cn()),y.el=null,w){const $=b(m);for(;;){const C=s(m);if(C&&C!==$)a(C);else break}}const U=s(m),O=i(m);return a(m),n(null,y,O,U,L,W,Jr(O),M),L&&(L.vnode.el=y.el,pc(L,y.el)),U},b=(m,y="[",L="]")=>{let W=0;for(;m;)if(m=s(m),m&&vn(m)&&(m.data===y&&W++,m.data===L)){if(W===0)return s(m);W--}return m},E=(m,y,L)=>{const W=y.parentNode;W&&W.replaceChild(m,y);let M=L;for(;M;)M.vnode.el===y&&(M.vnode.el=M.subTree.el=m),M=M.parent},A=m=>m.nodeType===1&&m.tagName==="TEMPLATE";return[c,f]}function Pp(e,t,n,r,o){let s,i,a,l;if(t==="class")a=e.getAttribute("class"),l=nt(n),Ip(Gi(a||""),Gi(l))||(s=2,i="class");else if(t==="style"){a=e.getAttribute("style")||"",l=Oe(n)?n:Cd(Xn(n));const u=Yi(a),c=Yi(l);if(r.dirs)for(const{dir:f,value:d}of r.dirs)f.name==="show"&&!d&&c.set("display","none");o&&Ku(o,r,c),Rp(u,c)||(s=3,i="style")}else(e instanceof SVGElement&&Od(t)||e instanceof HTMLElement&&(Bi(t)||Td(t)))&&(Bi(t)?(a=e.hasAttribute(t),l=Zs(n)):n==null?(a=e.hasAttribute(t),l=!1):(e.hasAttribute(t)?a=e.getAttribute(t):t==="value"&&e.tagName==="TEXTAREA"?a=e.value:a=!1,l=xd(n)?String(n):!1),a!==l&&(s=4,i=t));if(s!=null&&!pr(e,s)){const u=d=>d===!1?"(not rendered)":`${i}="${d}"`,c=`Hydration ${Wu[s]} mismatch on`,f=` + - rendered on server: ${u(a)} + - expected on client: ${u(l)} + Note: this mismatch is check-only. The DOM will not be rectified in production due to performance overhead. + You should fix the source of the mismatch.`;return qt(c,e,f),!0}return!1}function Gi(e){return new Set(e.trim().split(/\s+/))}function Ip(e,t){if(e.size!==t.size)return!1;for(const n of e)if(!t.has(n))return!1;return!0}function Yi(e){const t=new Map;for(const n of e.split(";")){let[r,o]=n.split(":");r=r.trim(),o=o&&o.trim(),r&&o&&t.set(r,o)}return t}function Rp(e,t){if(e.size!==t.size)return!1;for(const[n,r]of e)if(r!==t.get(n))return!1;return!0}function Ku(e,t,n){const r=e.subTree;if(e.getCssVars&&(t===r||r&&r.type===_e&&r.children.includes(t))){const o=e.getCssVars();for(const s in o)n.set(`--${Pd(s)}`,String(o[s]))}t===r&&e.parent&&Ku(e.parent,e.vnode,n)}const Xi="data-allow-mismatch",Wu={0:"text",1:"children",2:"class",3:"style",4:"attribute"};function pr(e,t){if(t===0||t===1)for(;e&&!e.hasAttribute(Xi);)e=e.parentElement;const n=e&&e.getAttribute(Xi);if(n==null)return!1;if(n==="")return!0;{const r=n.split(",");return t===0&&r.includes("children")?!0:n.split(",").includes(Wu[t])}}ko().requestIdleCallback;ko().cancelIdleCallback;function Lp(e,t){if(vn(e)&&e.data==="["){let n=1,r=e.nextSibling;for(;r;){if(r.nodeType===1){if(t(r)===!1)break}else if(vn(r))if(r.data==="]"){if(--n===0)break}else r.data==="["&&n++;r=r.nextSibling}}else t(e)}const Sn=e=>!!e.type.__asyncLoader;/*! #__NO_SIDE_EFFECTS__ */function qu(e){oe(e)&&(e={loader:e});const{loader:t,loadingComponent:n,errorComponent:r,delay:o=200,hydrate:s,timeout:i,suspensible:a=!0,onError:l}=e;let u=null,c,f=0;const d=()=>(f++,u=null,p()),p=()=>{let v;return u||(v=u=t().catch(_=>{if(_=_ instanceof Error?_:new Error(String(_)),l)return new Promise((b,E)=>{l(_,()=>b(d()),()=>E(_),f+1)});throw _}).then(_=>v!==u&&u?u:(_&&(_.__esModule||_[Symbol.toStringTag]==="Module")&&(_=_.default),c=_,_)))};return de({name:"AsyncComponentWrapper",__asyncLoader:p,__asyncHydrate(v,_,b){const E=s?()=>{const A=s(b,m=>Lp(v,m));A&&(_.bum||(_.bum=[])).push(A)}:b;c?E():p().then(()=>!_.isUnmounted&&E())},get __asyncResolved(){return c},setup(){const v=$e;if(ii(v),c)return()=>ns(c,v);const _=m=>{u=null,Ur(m,v,13,!r)};if(a&&v.suspense||Un)return p().then(m=>()=>ns(m,v)).catch(m=>(_(m),()=>r?ae(r,{error:m}):null));const b=ge(!1),E=ge(),A=ge(!!o);return o&&setTimeout(()=>{A.value=!1},o),i!=null&&setTimeout(()=>{if(!b.value&&!E.value){const m=new Error(`Async component timed out after ${i}ms.`);_(m),E.value=m}},i),p().then(()=>{b.value=!0,v.parent&&jr(v.parent.vnode)&&v.parent.update()}).catch(m=>{_(m),E.value=m}),()=>{if(b.value&&c)return ns(c,v);if(E.value&&r)return ae(r,{error:E.value});if(n&&!A.value)return ae(n)}}})}function ns(e,t){const{ref:n,props:r,children:o,ce:s}=t.vnode,i=ae(e,r,o);return i.ref=n,i.ce=s,delete t.vnode.ce,i}const jr=e=>e.type.__isKeepAlive;function Dp(e,t){Gu(e,"a",t)}function Np(e,t){Gu(e,"da",t)}function Gu(e,t,n=$e){const r=e.__wdc||(e.__wdc=()=>{let o=n;for(;o;){if(o.isDeactivated)return;o=o.parent}return e()});if(Do(t,r,n),n){let o=n.parent;for(;o&&o.parent;)jr(o.parent.vnode)&&Vp(r,t,n,o),o=o.parent}}function Vp(e,t,n,r){const o=Do(t,e,r,!0);No(()=>{Ys(r[t],o)},n)}function Do(e,t,n=$e,r=!1){if(n){const o=n[e]||(n[e]=[]),s=t.__weh||(t.__weh=(...i)=>{jt();const a=zr(n),l=Et(t,n,e,i);return a(),zt(),l});return r?o.unshift(s):o.push(s),s}}const Kt=e=>(t,n=$e)=>{(!Un||e==="sp")&&Do(e,(...r)=>t(...r),n)},Mp=Kt("bm"),Ye=Kt("m"),Fp=Kt("bu"),Hp=Kt("u"),ai=Kt("bum"),No=Kt("um"),$p=Kt("sp"),Bp=Kt("rtg"),Up=Kt("rtc");function jp(e,t=$e){Do("ec",e,t)}const zp="components";function li(e,t){return Wp(zp,e,!0,t)||e}const Kp=Symbol.for("v-ndc");function Wp(e,t,n=!0,r=!1){const o=Be||$e;if(o){const s=o.type;{const a=bc(s,!1);if(a&&(a===t||a===rt(t)||a===Br(rt(t))))return s}const i=Zi(o[e]||s[e],t)||Zi(o.appContext[e],t);return!i&&r?s:i}}function Zi(e,t){return e&&(e[t]||e[rt(t)]||e[Br(rt(t))])}function tn(e,t,n,r){let o;const s=n,i=re(e);if(i||Oe(e)){const a=i&&Nn(e);let l=!1;a&&(l=!vt(e),e=Io(e)),o=new Array(e.length);for(let u=0,c=e.length;ut(a,l,void 0,s));else{const a=Object.keys(e);o=new Array(a.length);for(let l=0,u=a.length;lRr(t)?!(t.type===je||t.type===_e&&!Yu(t.children)):!0)?e:null}const ws=e=>e?_c(e)?Mo(e):ws(e.parent):null,br=Ne(Object.create(null),{$:e=>e,$el:e=>e.vnode.el,$data:e=>e.data,$props:e=>e.props,$attrs:e=>e.attrs,$slots:e=>e.slots,$refs:e=>e.refs,$parent:e=>ws(e.parent),$root:e=>ws(e.root),$host:e=>e.ce,$emit:e=>e.emit,$options:e=>ui(e),$forceUpdate:e=>e.f||(e.f=()=>{oi(e.update)}),$nextTick:e=>e.n||(e.n=Jn.bind(e.proxy)),$watch:e=>dh.bind(e)}),rs=(e,t)=>e!==Se&&!e.__isScriptSetup&&me(e,t),qp={get({_:e},t){if(t==="__v_skip")return!0;const{ctx:n,setupState:r,data:o,props:s,accessCache:i,type:a,appContext:l}=e;let u;if(t[0]!=="$"){const p=i[t];if(p!==void 0)switch(p){case 1:return r[t];case 2:return o[t];case 4:return n[t];case 3:return s[t]}else{if(rs(r,t))return i[t]=1,r[t];if(o!==Se&&me(o,t))return i[t]=2,o[t];if((u=e.propsOptions[0])&&me(u,t))return i[t]=3,s[t];if(n!==Se&&me(n,t))return i[t]=4,n[t];Ts&&(i[t]=0)}}const c=br[t];let f,d;if(c)return t==="$attrs"&&Ke(e.attrs,"get",""),c(e);if((f=a.__cssModules)&&(f=f[t]))return f;if(n!==Se&&me(n,t))return i[t]=4,n[t];if(d=l.config.globalProperties,me(d,t))return d[t]},set({_:e},t,n){const{data:r,setupState:o,ctx:s}=e;return rs(o,t)?(o[t]=n,!0):r!==Se&&me(r,t)?(r[t]=n,!0):me(e.props,t)||t[0]==="$"&&t.slice(1)in e?!1:(s[t]=n,!0)},has({_:{data:e,setupState:t,accessCache:n,ctx:r,appContext:o,propsOptions:s}},i){let a;return!!n[i]||e!==Se&&me(e,i)||rs(t,i)||(a=s[0])&&me(a,i)||me(r,i)||me(br,i)||me(o.config.globalProperties,i)},defineProperty(e,t,n){return n.get!=null?e._.accessCache[t]=0:me(n,"value")&&this.set(e,t,n.value,null),Reflect.defineProperty(e,t,n)}};function Qi(e){return re(e)?e.reduce((t,n)=>(t[n]=null,t),{}):e}let Ts=!0;function Gp(e){const t=ui(e),n=e.proxy,r=e.ctx;Ts=!1,t.beforeCreate&&Ji(t.beforeCreate,e,"bc");const{data:o,computed:s,methods:i,watch:a,provide:l,inject:u,created:c,beforeMount:f,mounted:d,beforeUpdate:p,updated:v,activated:_,deactivated:b,beforeDestroy:E,beforeUnmount:A,destroyed:m,unmounted:y,render:L,renderTracked:W,renderTriggered:M,errorCaptured:w,serverPrefetch:U,expose:O,inheritAttrs:$,components:C,directives:D,filters:Z}=t;if(u&&Yp(u,r,null),i)for(const N in i){const z=i[N];oe(z)&&(r[N]=z.bind(n))}if(o){const N=o.call(n,n);Te(N)&&(e.data=Zn(N))}if(Ts=!0,s)for(const N in s){const z=s[N],le=oe(z)?z.bind(n,n):oe(z.get)?z.get.bind(n,n):kt,ye=!oe(z)&&oe(z.set)?z.set.bind(n):kt,xe=F({get:le,set:ye});Object.defineProperty(r,N,{enumerable:!0,configurable:!0,get:()=>xe.value,set:be=>xe.value=be})}if(a)for(const N in a)Xu(a[N],r,n,N);if(l){const N=oe(l)?l.call(n):l;Reflect.ownKeys(N).forEach(z=>{An(z,N[z])})}c&&Ji(c,e,"c");function I(N,z){re(z)?z.forEach(le=>N(le.bind(n))):z&&N(z.bind(n))}if(I(Mp,f),I(Ye,d),I(Fp,p),I(Hp,v),I(Dp,_),I(Np,b),I(jp,w),I(Up,W),I(Bp,M),I(ai,A),I(No,y),I($p,U),re(O))if(O.length){const N=e.exposed||(e.exposed={});O.forEach(z=>{Object.defineProperty(N,z,{get:()=>n[z],set:le=>n[z]=le})})}else e.exposed||(e.exposed={});L&&e.render===kt&&(e.render=L),$!=null&&(e.inheritAttrs=$),C&&(e.components=C),D&&(e.directives=D),U&&ii(e)}function Yp(e,t,n=kt){re(e)&&(e=Os(e));for(const r in e){const o=e[r];let s;Te(o)?"default"in o?s=Ge(o.from||r,o.default,!0):s=Ge(o.from||r):s=Ge(o),De(s)?Object.defineProperty(t,r,{enumerable:!0,configurable:!0,get:()=>s.value,set:i=>s.value=i}):t[r]=s}}function Ji(e,t,n){Et(re(e)?e.map(r=>r.bind(t.proxy)):e.bind(t.proxy),t,n)}function Xu(e,t,n,r){let o=r.includes(".")?fc(n,r):()=>n[r];if(Oe(e)){const s=t[e];oe(s)&&Ue(o,s)}else if(oe(e))Ue(o,e.bind(n));else if(Te(e))if(re(e))e.forEach(s=>Xu(s,t,n,r));else{const s=oe(e.handler)?e.handler.bind(n):t[e.handler];oe(s)&&Ue(o,s,e)}}function ui(e){const t=e.type,{mixins:n,extends:r}=t,{mixins:o,optionsCache:s,config:{optionMergeStrategies:i}}=e.appContext,a=s.get(t);let l;return a?l=a:!o.length&&!n&&!r?l=t:(l={},o.length&&o.forEach(u=>Eo(l,u,i,!0)),Eo(l,t,i)),Te(t)&&s.set(t,l),l}function Eo(e,t,n,r=!1){const{mixins:o,extends:s}=t;s&&Eo(e,s,n,!0),o&&o.forEach(i=>Eo(e,i,n,!0));for(const i in t)if(!(r&&i==="expose")){const a=Xp[i]||n&&n[i];e[i]=a?a(e[i],t[i]):t[i]}return e}const Xp={data:ea,props:ta,emits:ta,methods:hr,computed:hr,beforeCreate:Xe,created:Xe,beforeMount:Xe,mounted:Xe,beforeUpdate:Xe,updated:Xe,beforeDestroy:Xe,beforeUnmount:Xe,destroyed:Xe,unmounted:Xe,activated:Xe,deactivated:Xe,errorCaptured:Xe,serverPrefetch:Xe,components:hr,directives:hr,watch:Qp,provide:ea,inject:Zp};function ea(e,t){return t?e?function(){return Ne(oe(e)?e.call(this,this):e,oe(t)?t.call(this,this):t)}:t:e}function Zp(e,t){return hr(Os(e),Os(t))}function Os(e){if(re(e)){const t={};for(let n=0;n1)return n&&oe(t)?t.call(r&&r.proxy):t}}const Qu={},Ju=()=>Object.create(Qu),ec=e=>Object.getPrototypeOf(e)===Qu;function th(e,t,n,r=!1){const o={},s=Ju();e.propsDefaults=Object.create(null),tc(e,t,o,s);for(const i in e.propsOptions[0])i in o||(o[i]=void 0);n?e.props=r?o:Ou(o):e.type.props?e.props=o:e.props=s,e.attrs=s}function nh(e,t,n,r){const{props:o,attrs:s,vnode:{patchFlag:i}}=e,a=ue(o),[l]=e.propsOptions;let u=!1;if((r||i>0)&&!(i&16)){if(i&8){const c=e.vnode.dynamicProps;for(let f=0;f{l=!0;const[d,p]=nc(f,t,!0);Ne(i,d),p&&a.push(...p)};!n&&t.mixins.length&&t.mixins.forEach(c),e.extends&&c(e.extends),e.mixins&&e.mixins.forEach(c)}if(!s&&!l)return Te(e)&&r.set(e,Rn),Rn;if(re(s))for(let c=0;ce[0]==="_"||e==="$stable",ci=e=>re(e)?e.map(gt):[gt(e)],oh=(e,t,n)=>{if(t._n)return t;const r=Ve((...o)=>ci(t(...o)),n);return r._c=!1,r},oc=(e,t,n)=>{const r=e._ctx;for(const o in e){if(rc(o))continue;const s=e[o];if(oe(s))t[o]=oh(o,s,r);else if(s!=null){const i=ci(s);t[o]=()=>i}}},sc=(e,t)=>{const n=ci(t);e.slots.default=()=>n},ic=(e,t,n)=>{for(const r in t)(n||r!=="_")&&(e[r]=t[r])},sh=(e,t,n)=>{const r=e.slots=Ju();if(e.vnode.shapeFlag&32){const o=t._;o?(ic(r,t,n),n&&Bn(r,"_",o,!0)):oc(t,r)}else t&&sc(e,t)},ih=(e,t,n)=>{const{vnode:r,slots:o}=e;let s=!0,i=Se;if(r.shapeFlag&32){const a=t._;a?n&&a===1?s=!1:ic(o,t,n):(s=!t.$stable,oc(t,o)),i=t}else t&&(sc(e,t),i={default:1});if(s)for(const a in o)!rc(a)&&i[a]==null&&delete o[a]},at=mc;function ah(e){return lh(e,kp)}function lh(e,t){const n=ko();n.__VUE__=!0,Vu(n.__VUE_DEVTOOLS_GLOBAL_HOOK__,n);const{insert:r,remove:o,patchProp:s,createElement:i,createText:a,createComment:l,setText:u,setElementText:c,parentNode:f,nextSibling:d,setScopeId:p=kt,insertStaticContent:v}=e,_=(h,g,S,k=null,T=null,R=null,K=void 0,B=null,H=!!g.dynamicChildren)=>{if(h===g)return;h&&!_n(h,g)&&(k=x(h),be(h,T,R,!0),h=null),g.patchFlag===-2&&(H=!1,g.dynamicChildren=null);const{type:V,ref:te,shapeFlag:G}=g;switch(V){case en:b(h,g,S,k);break;case je:E(h,g,S,k);break;case Fn:h==null&&A(g,S,k,K);break;case _e:C(h,g,S,k,T,R,K,B,H);break;default:G&1?L(h,g,S,k,T,R,K,B,H):G&6?D(h,g,S,k,T,R,K,B,H):(G&64||G&128)&&V.process(h,g,S,k,T,R,K,B,H,Q)}te!=null&&T&&Pr(te,h&&h.ref,R,g||h,!g)},b=(h,g,S,k)=>{if(h==null)r(g.el=a(g.children),S,k);else{const T=g.el=h.el;g.children!==h.children&&u(T,g.children)}},E=(h,g,S,k)=>{h==null?r(g.el=l(g.children||""),S,k):g.el=h.el},A=(h,g,S,k)=>{[h.el,h.anchor]=v(h.children,g,S,k,h.el,h.anchor)},m=({el:h,anchor:g},S,k)=>{let T;for(;h&&h!==g;)T=d(h),r(h,S,k),h=T;r(g,S,k)},y=({el:h,anchor:g})=>{let S;for(;h&&h!==g;)S=d(h),o(h),h=S;o(g)},L=(h,g,S,k,T,R,K,B,H)=>{g.type==="svg"?K="svg":g.type==="math"&&(K="mathml"),h==null?W(g,S,k,T,R,K,B,H):U(h,g,T,R,K,B,H)},W=(h,g,S,k,T,R,K,B)=>{let H,V;const{props:te,shapeFlag:G,transition:J,dirs:se}=h;if(H=h.el=i(h.type,R,te&&te.is,te),G&8?c(H,h.children):G&16&&w(h.children,H,null,k,T,os(h,R),K,B),se&&Ot(h,null,k,"created"),M(H,h,h.scopeId,K,k),te){for(const Ae in te)Ae!=="value"&&!Dn(Ae)&&s(H,Ae,null,te[Ae],R,k);"value"in te&&s(H,"value",null,te.value,R),(V=te.onVnodeBeforeMount)&&mt(V,k,h)}Bn(H,"__vnode",h,!0),Bn(H,"__vueParentComponent",k,!0),se&&Ot(h,null,k,"beforeMount");const fe=ac(T,J);fe&&J.beforeEnter(H),r(H,g,S),((V=te&&te.onVnodeMounted)||fe||se)&&at(()=>{V&&mt(V,k,h),fe&&J.enter(H),se&&Ot(h,null,k,"mounted")},T)},M=(h,g,S,k,T)=>{if(S&&p(h,S),k)for(let R=0;R{for(let V=H;V{const B=g.el=h.el;B.__vnode=g;let{patchFlag:H,dynamicChildren:V,dirs:te}=g;H|=h.patchFlag&16;const G=h.props||Se,J=g.props||Se;let se;if(S&&fn(S,!1),(se=J.onVnodeBeforeUpdate)&&mt(se,S,g,h),te&&Ot(g,h,S,"beforeUpdate"),S&&fn(S,!0),(G.innerHTML&&J.innerHTML==null||G.textContent&&J.textContent==null)&&c(B,""),V?O(h.dynamicChildren,V,B,S,k,os(g,T),R):K||z(h,g,B,null,S,k,os(g,T),R,!1),H>0){if(H&16)$(B,G,J,S,T);else if(H&2&&G.class!==J.class&&s(B,"class",null,J.class,T),H&4&&s(B,"style",G.style,J.style,T),H&8){const fe=g.dynamicProps;for(let Ae=0;Ae{se&&mt(se,S,g,h),te&&Ot(g,h,S,"updated")},k)},O=(h,g,S,k,T,R,K)=>{for(let B=0;B{if(g!==S){if(g!==Se)for(const R in g)!Dn(R)&&!(R in S)&&s(h,R,g[R],null,T,k);for(const R in S){if(Dn(R))continue;const K=S[R],B=g[R];K!==B&&R!=="value"&&s(h,R,B,K,T,k)}"value"in S&&s(h,"value",g.value,S.value,T)}},C=(h,g,S,k,T,R,K,B,H)=>{const V=g.el=h?h.el:a(""),te=g.anchor=h?h.anchor:a("");let{patchFlag:G,dynamicChildren:J,slotScopeIds:se}=g;se&&(B=B?B.concat(se):se),h==null?(r(V,S,k),r(te,S,k),w(g.children||[],S,te,T,R,K,B,H)):G>0&&G&64&&J&&h.dynamicChildren?(O(h.dynamicChildren,J,S,T,R,K,B),(g.key!=null||T&&g===T.subTree)&&lc(h,g,!0)):z(h,g,S,te,T,R,K,B,H)},D=(h,g,S,k,T,R,K,B,H)=>{g.slotScopeIds=B,h==null?g.shapeFlag&512?T.ctx.activate(g,S,k,K,H):Z(g,S,k,T,R,K,H):ee(h,g,H)},Z=(h,g,S,k,T,R,K)=>{const B=h.component=wh(h,k,T);if(jr(h)&&(B.ctx.renderer=Q),Th(B,!1,K),B.asyncDep){if(T&&T.registerDep(B,I,K),!h.el){const H=B.subTree=ae(je);E(null,H,g,S)}}else I(B,h,g,S,T,R,K)},ee=(h,g,S)=>{const k=g.component=h.component;if(vh(h,g,S))if(k.asyncDep&&!k.asyncResolved){N(k,g,S);return}else k.next=g,k.update();else g.el=h.el,k.vnode=g},I=(h,g,S,k,T,R,K)=>{const B=()=>{if(h.isMounted){let{next:G,bu:J,u:se,parent:fe,vnode:Ae}=h;{const st=uc(h);if(st){G&&(G.el=Ae.el,N(h,G,K)),st.asyncDep.then(()=>{h.isUnmounted||B()});return}}let ve=G,ot;fn(h,!1),G?(G.el=Ae.el,N(h,G,K)):G=Ae,J&&Yo(J),(ot=G.props&&G.props.onVnodeBeforeUpdate)&&mt(ot,fe,G,Ae),fn(h,!0);const ze=ss(h),yt=h.subTree;h.subTree=ze,_(yt,ze,f(yt.el),x(yt),h,T,R),G.el=ze.el,ve===null&&pc(h,ze.el),se&&at(se,T),(ot=G.props&&G.props.onVnodeUpdated)&&at(()=>mt(ot,fe,G,Ae),T),Mu(h)}else{let G;const{el:J,props:se}=g,{bm:fe,m:Ae,parent:ve,root:ot,type:ze}=h,yt=Sn(g);if(fn(h,!1),fe&&Yo(fe),!yt&&(G=se&&se.onVnodeBeforeMount)&&mt(G,ve,g),fn(h,!0),J&&Ee){const st=()=>{h.subTree=ss(h),Ee(J,h.subTree,h,T,null)};yt&&ze.__asyncHydrate?ze.__asyncHydrate(J,h,st):st()}else{ot.ce&&ot.ce._injectChildStyle(ze);const st=h.subTree=ss(h);_(null,st,S,k,h,T,R),g.el=st.el}if(Ae&&at(Ae,T),!yt&&(G=se&&se.onVnodeMounted)){const st=g;at(()=>mt(G,ve,st),T)}(g.shapeFlag&256||ve&&Sn(ve.vnode)&&ve.vnode.shapeFlag&256)&&h.a&&at(h.a,T),h.isMounted=!0,yp(h),g=S=k=null}};h.scope.on();const H=h.effect=new pu(B);h.scope.off();const V=h.update=H.run.bind(H),te=h.job=H.runIfDirty.bind(H);te.i=h,te.id=h.uid,H.scheduler=()=>oi(te),fn(h,!0),V()},N=(h,g,S)=>{g.component=h;const k=h.vnode.props;h.vnode=g,h.next=null,nh(h,g.props,k,S),ih(h,g.children,S),jt(),zi(h),zt()},z=(h,g,S,k,T,R,K,B,H=!1)=>{const V=h&&h.children,te=h?h.shapeFlag:0,G=g.children,{patchFlag:J,shapeFlag:se}=g;if(J>0){if(J&128){ye(V,G,S,k,T,R,K,B,H);return}else if(J&256){le(V,G,S,k,T,R,K,B,H);return}}se&8?(te&16&&tt(V,T,R),G!==V&&c(S,G)):te&16?se&16?ye(V,G,S,k,T,R,K,B,H):tt(V,T,R,!0):(te&8&&c(S,""),se&16&&w(G,S,k,T,R,K,B,H))},le=(h,g,S,k,T,R,K,B,H)=>{h=h||Rn,g=g||Rn;const V=h.length,te=g.length,G=Math.min(V,te);let J;for(J=0;Jte?tt(h,T,R,!0,!1,G):w(g,S,k,T,R,K,B,H,G)},ye=(h,g,S,k,T,R,K,B,H)=>{let V=0;const te=g.length;let G=h.length-1,J=te-1;for(;V<=G&&V<=J;){const se=h[V],fe=g[V]=H?Xt(g[V]):gt(g[V]);if(_n(se,fe))_(se,fe,S,null,T,R,K,B,H);else break;V++}for(;V<=G&&V<=J;){const se=h[G],fe=g[J]=H?Xt(g[J]):gt(g[J]);if(_n(se,fe))_(se,fe,S,null,T,R,K,B,H);else break;G--,J--}if(V>G){if(V<=J){const se=J+1,fe=seJ)for(;V<=G;)be(h[V],T,R,!0),V++;else{const se=V,fe=V,Ae=new Map;for(V=fe;V<=J;V++){const it=g[V]=H?Xt(g[V]):gt(g[V]);it.key!=null&&Ae.set(it.key,V)}let ve,ot=0;const ze=J-fe+1;let yt=!1,st=0;const sr=new Array(ze);for(V=0;V=ze){be(it,T,R,!0);continue}let Ct;if(it.key!=null)Ct=Ae.get(it.key);else for(ve=fe;ve<=J;ve++)if(sr[ve-fe]===0&&_n(it,g[ve])){Ct=ve;break}Ct===void 0?be(it,T,R,!0):(sr[Ct-fe]=V+1,Ct>=st?st=Ct:yt=!0,_(it,g[Ct],S,null,T,R,K,B,H),ot++)}const Mi=yt?uh(sr):Rn;for(ve=Mi.length-1,V=ze-1;V>=0;V--){const it=fe+V,Ct=g[it],Fi=it+1{const{el:R,type:K,transition:B,children:H,shapeFlag:V}=h;if(V&6){xe(h.component.subTree,g,S,k);return}if(V&128){h.suspense.move(g,S,k);return}if(V&64){K.move(h,g,S,Q);return}if(K===_e){r(R,g,S);for(let G=0;GB.enter(R),T);else{const{leave:G,delayLeave:J,afterLeave:se}=B,fe=()=>r(R,g,S),Ae=()=>{G(R,()=>{fe(),se&&se()})};J?J(R,fe,Ae):Ae()}else r(R,g,S)},be=(h,g,S,k=!1,T=!1)=>{const{type:R,props:K,ref:B,children:H,dynamicChildren:V,shapeFlag:te,patchFlag:G,dirs:J,cacheIndex:se}=h;if(G===-2&&(T=!1),B!=null&&Pr(B,null,S,h,!0),se!=null&&(g.renderCache[se]=void 0),te&256){g.ctx.deactivate(h);return}const fe=te&1&&J,Ae=!Sn(h);let ve;if(Ae&&(ve=K&&K.onVnodeBeforeUnmount)&&mt(ve,g,h),te&6)et(h.component,S,k);else{if(te&128){h.suspense.unmount(S,k);return}fe&&Ot(h,null,g,"beforeUnmount"),te&64?h.type.remove(h,g,S,Q,k):V&&!V.hasOnce&&(R!==_e||G>0&&G&64)?tt(V,g,S,!1,!0):(R===_e&&G&384||!T&&te&16)&&tt(H,g,S),k&&Je(h)}(Ae&&(ve=K&&K.onVnodeUnmounted)||fe)&&at(()=>{ve&&mt(ve,g,h),fe&&Ot(h,null,g,"unmounted")},S)},Je=h=>{const{type:g,el:S,anchor:k,transition:T}=h;if(g===_e){_t(S,k);return}if(g===Fn){y(h);return}const R=()=>{o(S),T&&!T.persisted&&T.afterLeave&&T.afterLeave()};if(h.shapeFlag&1&&T&&!T.persisted){const{leave:K,delayLeave:B}=T,H=()=>K(S,R);B?B(h.el,R,H):H()}else R()},_t=(h,g)=>{let S;for(;h!==g;)S=d(h),o(h),h=S;o(g)},et=(h,g,S)=>{const{bum:k,scope:T,job:R,subTree:K,um:B,m:H,a:V}=h;ra(H),ra(V),k&&Yo(k),T.stop(),R&&(R.flags|=8,be(K,h,g,S)),B&&at(B,g),at(()=>{h.isUnmounted=!0},g),g&&g.pendingBranch&&!g.isUnmounted&&h.asyncDep&&!h.asyncResolved&&h.suspenseId===g.pendingId&&(g.deps--,g.deps===0&&g.resolve()),Ep(h)},tt=(h,g,S,k=!1,T=!1,R=0)=>{for(let K=R;K{if(h.shapeFlag&6)return x(h.component.subTree);if(h.shapeFlag&128)return h.suspense.next();const g=d(h.anchor||h.el),S=g&&g[Ap];return S?d(S):g};let q=!1;const j=(h,g,S)=>{h==null?g._vnode&&be(g._vnode,null,null,!0):_(g._vnode||null,h,g,null,null,null,S),g._vnode=h,q||(q=!0,zi(),_o(),q=!1)},Q={p:_,um:be,m:xe,r:Je,mt:Z,mc:w,pc:z,pbc:O,n:x,o:e};let ce,Ee;return t&&([ce,Ee]=t(Q)),{render:j,hydrate:ce,createApp:eh(j,ce)}}function os({type:e,props:t},n){return n==="svg"&&e==="foreignObject"||n==="mathml"&&e==="annotation-xml"&&t&&t.encoding&&t.encoding.includes("html")?void 0:n}function fn({effect:e,job:t},n){n?(e.flags|=32,t.flags|=4):(e.flags&=-33,t.flags&=-5)}function ac(e,t){return(!e||e&&!e.pendingBranch)&&t&&!t.persisted}function lc(e,t,n=!1){const r=e.children,o=t.children;if(re(r)&&re(o))for(let s=0;s>1,e[n[a]]0&&(t[r]=n[s-1]),n[s]=r)}}for(s=n.length,i=n[s-1];s-- >0;)n[s]=i,i=t[i];return n}function uc(e){const t=e.subTree.component;if(t)return t.asyncDep&&!t.asyncResolved?t:uc(t)}function ra(e){if(e)for(let t=0;tGe(ch);function cc(e,t){return fi(e,null,t)}function Ue(e,t,n){return fi(e,t,n)}function fi(e,t,n=Se){const{immediate:r,deep:o,flush:s,once:i}=n,a=Ne({},n),l=t&&r||!t&&s!=="post";let u;if(Un){if(s==="sync"){const p=fh();u=p.__watcherHandles||(p.__watcherHandles=[])}else if(!l){const p=()=>{};return p.stop=kt,p.resume=kt,p.pause=kt,p}}const c=$e;a.call=(p,v,_)=>Et(p,c,v,_);let f=!1;s==="post"?a.scheduler=p=>{at(p,c&&c.suspense)}:s!=="sync"&&(f=!0,a.scheduler=(p,v)=>{v?p():oi(p)}),a.augmentJob=p=>{t&&(p.flags|=4),f&&(p.flags|=2,c&&(p.id=c.uid,p.i=c))};const d=up(e,t,a);return Un&&(u?u.push(d):l&&d()),d}function dh(e,t,n){const r=this.proxy,o=Oe(e)?e.includes(".")?fc(r,e):()=>r[e]:e.bind(r,r);let s;oe(t)?s=t:(s=t.handler,n=t);const i=zr(this),a=fi(o,s.bind(r),n);return i(),a}function fc(e,t){const n=t.split(".");return()=>{let r=e;for(let o=0;ot==="modelValue"||t==="model-value"?e.modelModifiers:e[`${t}Modifiers`]||e[`${rt(t)}Modifiers`]||e[`${Ut(t)}Modifiers`];function hh(e,t,...n){if(e.isUnmounted)return;const r=e.vnode.props||Se;let o=n;const s=t.startsWith("update:"),i=s&&ph(r,t.slice(7));i&&(i.trim&&(o=n.map(c=>Oe(c)?c.trim():c)),i.number&&(o=n.map(_d))),Sp(e,t,o);let a,l=r[a=Go(t)]||r[a=Go(rt(t))];!l&&s&&(l=r[a=Go(Ut(t))]),l&&Et(l,e,6,o);const u=r[a+"Once"];if(u){if(!e.emitted)e.emitted={};else if(e.emitted[a])return;e.emitted[a]=!0,Et(u,e,6,o)}}function dc(e,t,n=!1){const r=t.emitsCache,o=r.get(e);if(o!==void 0)return o;const s=e.emits;let i={},a=!1;if(!oe(e)){const l=u=>{const c=dc(u,t,!0);c&&(a=!0,Ne(i,c))};!n&&t.mixins.length&&t.mixins.forEach(l),e.extends&&l(e.extends),e.mixins&&e.mixins.forEach(l)}return!s&&!a?(Te(e)&&r.set(e,null),null):(re(s)?s.forEach(l=>i[l]=null):Ne(i,s),Te(e)&&r.set(e,i),i)}function Vo(e,t){return!e||!$r(t)?!1:(t=t.slice(2).replace(/Once$/,""),me(e,t[0].toLowerCase()+t.slice(1))||me(e,Ut(t))||me(e,t))}function ss(e){const{type:t,vnode:n,proxy:r,withProxy:o,propsOptions:[s],slots:i,attrs:a,emit:l,render:u,renderCache:c,props:f,data:d,setupState:p,ctx:v,inheritAttrs:_}=e,b=yo(e);let E,A;try{if(n.shapeFlag&4){const y=o||r,L=y;E=gt(u.call(L,y,c,f,p,d,v)),A=a}else{const y=t;E=gt(y.length>1?y(f,{attrs:a,slots:i,emit:l}):y(f,null)),A=t.props?a:mh(a)}}catch(y){Er.length=0,Ur(y,e,1),E=ae(je)}let m=E;if(A&&_!==!1){const y=Object.keys(A),{shapeFlag:L}=m;y.length&&L&7&&(s&&y.some(Gs)&&(A=gh(A,s)),m=nn(m,A,!1,!0))}return n.dirs&&(m=nn(m,null,!1,!0),m.dirs=m.dirs?m.dirs.concat(n.dirs):n.dirs),n.transition&&kr(m,n.transition),E=m,yo(b),E}const mh=e=>{let t;for(const n in e)(n==="class"||n==="style"||$r(n))&&((t||(t={}))[n]=e[n]);return t},gh=(e,t)=>{const n={};for(const r in e)(!Gs(r)||!(r.slice(9)in t))&&(n[r]=e[r]);return n};function vh(e,t,n){const{props:r,children:o,component:s}=e,{props:i,children:a,patchFlag:l}=t,u=s.emitsOptions;if(t.dirs||t.transition)return!0;if(n&&l>=0){if(l&1024)return!0;if(l&16)return r?oa(r,i,u):!!i;if(l&8){const c=t.dynamicProps;for(let f=0;fe.__isSuspense;function mc(e,t){t&&t.pendingBranch?re(e)?t.effects.push(...e):t.effects.push(e):gp(e)}const _e=Symbol.for("v-fgt"),en=Symbol.for("v-txt"),je=Symbol.for("v-cmt"),Fn=Symbol.for("v-stc"),Er=[];let ut=null;function Y(e=!1){Er.push(ut=e?null:[])}function _h(){Er.pop(),ut=Er[Er.length-1]||null}let Ir=1;function sa(e,t=!1){Ir+=e,e<0&&ut&&t&&(ut.hasOnce=!0)}function gc(e){return e.dynamicChildren=Ir>0?ut||Rn:null,_h(),Ir>0&&ut&&ut.push(e),e}function ne(e,t,n,r,o,s){return gc(ie(e,t,n,r,o,s,!0))}function Le(e,t,n,r,o){return gc(ae(e,t,n,r,o,!0))}function Rr(e){return e?e.__v_isVNode===!0:!1}function _n(e,t){return e.type===t.type&&e.key===t.key}const vc=({key:e})=>e??null,lo=({ref:e,ref_key:t,ref_for:n})=>(typeof e=="number"&&(e=""+e),e!=null?Oe(e)||De(e)||oe(e)?{i:Be,r:e,k:t,f:!!n}:e:null);function ie(e,t=null,n=null,r=0,o=null,s=e===_e?0:1,i=!1,a=!1){const l={__v_isVNode:!0,__v_skip:!0,type:e,props:t,key:t&&vc(t),ref:t&&lo(t),scopeId:Fu,slotScopeIds:null,children:n,component:null,suspense:null,ssContent:null,ssFallback:null,dirs:null,transition:null,el:null,anchor:null,target:null,targetStart:null,targetAnchor:null,staticCount:0,shapeFlag:s,patchFlag:r,dynamicProps:o,dynamicChildren:null,appContext:null,ctx:Be};return a?(di(l,n),s&128&&e.normalize(l)):n&&(l.shapeFlag|=Oe(n)?8:16),Ir>0&&!i&&ut&&(l.patchFlag>0||s&6)&&l.patchFlag!==32&&ut.push(l),l}const ae=yh;function yh(e,t=null,n=null,r=0,o=null,s=!1){if((!e||e===Kp)&&(e=je),Rr(e)){const a=nn(e,t,!0);return n&&di(a,n),Ir>0&&!s&&ut&&(a.shapeFlag&6?ut[ut.indexOf(e)]=a:ut.push(a)),a.patchFlag=-2,a}if(Rh(e)&&(e=e.__vccOpts),t){t=bh(t);let{class:a,style:l}=t;a&&!Oe(a)&&(t.class=nt(a)),Te(l)&&(ri(l)&&!re(l)&&(l=Ne({},l)),t.style=Xn(l))}const i=Oe(e)?1:hc(e)?128:Hu(e)?64:Te(e)?4:oe(e)?2:0;return ie(e,t,n,r,o,i,s,!0)}function bh(e){return e?ri(e)||ec(e)?Ne({},e):e:null}function nn(e,t,n=!1,r=!1){const{props:o,ref:s,patchFlag:i,children:a,transition:l}=e,u=t?Sh(o||{},t):o,c={__v_isVNode:!0,__v_skip:!0,type:e.type,props:u,key:u&&vc(u),ref:t&&t.ref?n&&s?re(s)?s.concat(lo(t)):[s,lo(t)]:lo(t):s,scopeId:e.scopeId,slotScopeIds:e.slotScopeIds,children:a,target:e.target,targetStart:e.targetStart,targetAnchor:e.targetAnchor,staticCount:e.staticCount,shapeFlag:e.shapeFlag,patchFlag:t&&e.type!==_e?i===-1?16:i|16:i,dynamicProps:e.dynamicProps,dynamicChildren:e.dynamicChildren,appContext:e.appContext,dirs:e.dirs,transition:l,component:e.component,suspense:e.suspense,ssContent:e.ssContent&&nn(e.ssContent),ssFallback:e.ssFallback&&nn(e.ssFallback),el:e.el,anchor:e.anchor,ctx:e.ctx,ce:e.ce};return l&&r&&kr(c,l.clone(c)),c}function rn(e=" ",t=0){return ae(en,null,e,t)}function Eh(e,t){const n=ae(Fn,null,e);return n.staticCount=t,n}function Fe(e="",t=!1){return t?(Y(),Le(je,null,e)):ae(je,null,e)}function gt(e){return e==null||typeof e=="boolean"?ae(je):re(e)?ae(_e,null,e.slice()):Rr(e)?Xt(e):ae(en,null,String(e))}function Xt(e){return e.el===null&&e.patchFlag!==-1||e.memo?e:nn(e)}function di(e,t){let n=0;const{shapeFlag:r}=e;if(t==null)t=null;else if(re(t))n=16;else if(typeof t=="object")if(r&65){const o=t.default;o&&(o._c&&(o._d=!1),di(e,o()),o._c&&(o._d=!0));return}else{n=32;const o=t._;!o&&!ec(t)?t._ctx=Be:o===3&&Be&&(Be.slots._===1?t._=1:(t._=2,e.patchFlag|=1024))}else oe(t)?(t={default:t,_ctx:Be},n=32):(t=String(t),r&64?(n=16,t=[rn(t)]):n=8);e.children=t,e.shapeFlag|=n}function Sh(...e){const t={};for(let n=0;n$e||Be;let So,ks;{const e=ko(),t=(n,r)=>{let o;return(o=e[n])||(o=e[n]=[]),o.push(r),s=>{o.length>1?o.forEach(i=>i(s)):o[0](s)}};So=t("__VUE_INSTANCE_SETTERS__",n=>$e=n),ks=t("__VUE_SSR_SETTERS__",n=>Un=n)}const zr=e=>{const t=$e;return So(e),e.scope.on(),()=>{e.scope.off(),So(t)}},ia=()=>{$e&&$e.scope.off(),So(null)};function _c(e){return e.vnode.shapeFlag&4}let Un=!1;function Th(e,t=!1,n=!1){t&&ks(t);const{props:r,children:o}=e.vnode,s=_c(e);th(e,r,s,t),sh(e,o,n);const i=s?Oh(e,t):void 0;return t&&ks(!1),i}function Oh(e,t){const n=e.type;e.accessCache=Object.create(null),e.proxy=new Proxy(e.ctx,qp);const{setup:r}=n;if(r){jt();const o=e.setupContext=r.length>1?kh(e):null,s=zr(e),i=Qn(r,e,0,[e.props,o]),a=iu(i);if(zt(),s(),(a||e.sp)&&!Sn(e)&&ii(e),a){if(i.then(ia,ia),t)return i.then(l=>{aa(e,l,t)}).catch(l=>{Ur(l,e,0)});e.asyncDep=i}else aa(e,i,t)}else yc(e,t)}function aa(e,t,n){oe(t)?e.type.__ssrInlineRender?e.ssrRender=t:e.render=t:Te(t)&&(e.devtoolsRawSetupState=t,e.setupState=ku(t)),yc(e,n)}let la;function yc(e,t,n){const r=e.type;if(!e.render){if(!t&&la&&!r.render){const o=r.template||ui(e).template;if(o){const{isCustomElement:s,compilerOptions:i}=e.appContext.config,{delimiters:a,compilerOptions:l}=r,u=Ne(Ne({isCustomElement:s,delimiters:a},i),l);r.render=la(o,u)}}e.render=r.render||kt}{const o=zr(e);jt();try{Gp(e)}finally{zt(),o()}}}const xh={get(e,t){return Ke(e,"get",""),e[t]}};function kh(e){const t=n=>{e.exposed=n||{}};return{attrs:new Proxy(e.attrs,xh),slots:e.slots,emit:e.emit,expose:t}}function Mo(e){return e.exposed?e.exposeProxy||(e.exposeProxy=new Proxy(ku(Qd(e.exposed)),{get(t,n){if(n in t)return t[n];if(n in br)return br[n](e)},has(t,n){return n in t||n in br}})):e.proxy}const Ph=/(?:^|[-_])(\w)/g,Ih=e=>e.replace(Ph,t=>t.toUpperCase()).replace(/[-_]/g,"");function bc(e,t=!0){return oe(e)?e.displayName||e.name:e.name||t&&e.__name}function Ec(e,t,n=!1){let r=bc(t);if(!r&&t.__file){const o=t.__file.match(/([^/\\]+)\.\w+$/);o&&(r=o[1])}if(!r&&e&&e.parent){const o=s=>{for(const i in s)if(s[i]===t)return i};r=o(e.components||e.parent.type.components)||o(e.appContext.components)}return r?Ih(r):n?"App":"Anonymous"}function Rh(e){return oe(e)&&"__vccOpts"in e}const F=(e,t)=>ap(e,t,Un);function he(e,t,n){const r=arguments.length;return r===2?Te(t)&&!re(t)?Rr(t)?ae(e,null,[t]):ae(e,t):ae(e,null,t):(r>3?n=Array.prototype.slice.call(arguments,2):r===3&&Rr(n)&&(n=[n]),ae(e,t,n))}const ua="3.5.13";/** +* @vue/runtime-dom v3.5.13 +* (c) 2018-present Yuxi (Evan) You and Vue contributors +* @license MIT +**/let Ps;const ca=typeof window<"u"&&window.trustedTypes;if(ca)try{Ps=ca.createPolicy("vue",{createHTML:e=>e})}catch{}const Sc=Ps?e=>Ps.createHTML(e):e=>e,Lh="http://www.w3.org/2000/svg",Dh="http://www.w3.org/1998/Math/MathML",Mt=typeof document<"u"?document:null,fa=Mt&&Mt.createElement("template"),Nh={insert:(e,t,n)=>{t.insertBefore(e,n||null)},remove:e=>{const t=e.parentNode;t&&t.removeChild(e)},createElement:(e,t,n,r)=>{const o=t==="svg"?Mt.createElementNS(Lh,e):t==="mathml"?Mt.createElementNS(Dh,e):n?Mt.createElement(e,{is:n}):Mt.createElement(e);return e==="select"&&r&&r.multiple!=null&&o.setAttribute("multiple",r.multiple),o},createText:e=>Mt.createTextNode(e),createComment:e=>Mt.createComment(e),setText:(e,t)=>{e.nodeValue=t},setElementText:(e,t)=>{e.textContent=t},parentNode:e=>e.parentNode,nextSibling:e=>e.nextSibling,querySelector:e=>Mt.querySelector(e),setScopeId(e,t){e.setAttribute(t,"")},insertStaticContent(e,t,n,r,o,s){const i=n?n.previousSibling:t.lastChild;if(o&&(o===s||o.nextSibling))for(;t.insertBefore(o.cloneNode(!0),n),!(o===s||!(o=o.nextSibling)););else{fa.innerHTML=Sc(r==="svg"?`${e}`:r==="mathml"?`${e}`:e);const a=fa.content;if(r==="svg"||r==="mathml"){const l=a.firstChild;for(;l.firstChild;)a.appendChild(l.firstChild);a.removeChild(l)}t.insertBefore(a,n)}return[i?i.nextSibling:t.firstChild,n?n.previousSibling:t.lastChild]}},Wt="transition",ar="animation",Lr=Symbol("_vtc"),Ac={name:String,type:String,css:{type:Boolean,default:!0},duration:[String,Number,Object],enterFromClass:String,enterActiveClass:String,enterToClass:String,appearFromClass:String,appearActiveClass:String,appearToClass:String,leaveFromClass:String,leaveActiveClass:String,leaveToClass:String},Vh=Ne({},$u,Ac),Mh=e=>(e.displayName="Transition",e.props=Vh,e),pi=Mh((e,{slots:t})=>he(Tp,Fh(e),t)),dn=(e,t=[])=>{re(e)?e.forEach(n=>n(...t)):e&&e(...t)},da=e=>e?re(e)?e.some(t=>t.length>1):e.length>1:!1;function Fh(e){const t={};for(const C in e)C in Ac||(t[C]=e[C]);if(e.css===!1)return t;const{name:n="v",type:r,duration:o,enterFromClass:s=`${n}-enter-from`,enterActiveClass:i=`${n}-enter-active`,enterToClass:a=`${n}-enter-to`,appearFromClass:l=s,appearActiveClass:u=i,appearToClass:c=a,leaveFromClass:f=`${n}-leave-from`,leaveActiveClass:d=`${n}-leave-active`,leaveToClass:p=`${n}-leave-to`}=e,v=Hh(o),_=v&&v[0],b=v&&v[1],{onBeforeEnter:E,onEnter:A,onEnterCancelled:m,onLeave:y,onLeaveCancelled:L,onBeforeAppear:W=E,onAppear:M=A,onAppearCancelled:w=m}=t,U=(C,D,Z,ee)=>{C._enterCancelled=ee,pn(C,D?c:a),pn(C,D?u:i),Z&&Z()},O=(C,D)=>{C._isLeaving=!1,pn(C,f),pn(C,p),pn(C,d),D&&D()},$=C=>(D,Z)=>{const ee=C?M:A,I=()=>U(D,C,Z);dn(ee,[D,I]),pa(()=>{pn(D,C?l:s),Rt(D,C?c:a),da(ee)||ha(D,r,_,I)})};return Ne(t,{onBeforeEnter(C){dn(E,[C]),Rt(C,s),Rt(C,i)},onBeforeAppear(C){dn(W,[C]),Rt(C,l),Rt(C,u)},onEnter:$(!1),onAppear:$(!0),onLeave(C,D){C._isLeaving=!0;const Z=()=>O(C,D);Rt(C,f),C._enterCancelled?(Rt(C,d),va()):(va(),Rt(C,d)),pa(()=>{C._isLeaving&&(pn(C,f),Rt(C,p),da(y)||ha(C,r,b,Z))}),dn(y,[C,Z])},onEnterCancelled(C){U(C,!1,void 0,!0),dn(m,[C])},onAppearCancelled(C){U(C,!0,void 0,!0),dn(w,[C])},onLeaveCancelled(C){O(C),dn(L,[C])}})}function Hh(e){if(e==null)return null;if(Te(e))return[is(e.enter),is(e.leave)];{const t=is(e);return[t,t]}}function is(e){return yd(e)}function Rt(e,t){t.split(/\s+/).forEach(n=>n&&e.classList.add(n)),(e[Lr]||(e[Lr]=new Set)).add(t)}function pn(e,t){t.split(/\s+/).forEach(r=>r&&e.classList.remove(r));const n=e[Lr];n&&(n.delete(t),n.size||(e[Lr]=void 0))}function pa(e){requestAnimationFrame(()=>{requestAnimationFrame(e)})}let $h=0;function ha(e,t,n,r){const o=e._endId=++$h,s=()=>{o===e._endId&&r()};if(n!=null)return setTimeout(s,n);const{type:i,timeout:a,propCount:l}=Bh(e,t);if(!i)return r();const u=i+"end";let c=0;const f=()=>{e.removeEventListener(u,d),s()},d=p=>{p.target===e&&++c>=l&&f()};setTimeout(()=>{c(n[v]||"").split(", "),o=r(`${Wt}Delay`),s=r(`${Wt}Duration`),i=ma(o,s),a=r(`${ar}Delay`),l=r(`${ar}Duration`),u=ma(a,l);let c=null,f=0,d=0;t===Wt?i>0&&(c=Wt,f=i,d=s.length):t===ar?u>0&&(c=ar,f=u,d=l.length):(f=Math.max(i,u),c=f>0?i>u?Wt:ar:null,d=c?c===Wt?s.length:l.length:0);const p=c===Wt&&/\b(transform|all)(,|$)/.test(r(`${Wt}Property`).toString());return{type:c,timeout:f,propCount:d,hasTransform:p}}function ma(e,t){for(;e.lengthga(n)+ga(e[r])))}function ga(e){return e==="auto"?0:Number(e.slice(0,-1).replace(",","."))*1e3}function va(){return document.body.offsetHeight}function Uh(e,t,n){const r=e[Lr];r&&(t=(t?[t,...r]:[...r]).join(" ")),t==null?e.removeAttribute("class"):n?e.setAttribute("class",t):e.className=t}const Ao=Symbol("_vod"),Cc=Symbol("_vsh"),Co={beforeMount(e,{value:t},{transition:n}){e[Ao]=e.style.display==="none"?"":e.style.display,n&&t?n.beforeEnter(e):lr(e,t)},mounted(e,{value:t},{transition:n}){n&&t&&n.enter(e)},updated(e,{value:t,oldValue:n},{transition:r}){!t!=!n&&(r?t?(r.beforeEnter(e),lr(e,!0),r.enter(e)):r.leave(e,()=>{lr(e,!1)}):lr(e,t))},beforeUnmount(e,{value:t}){lr(e,t)}};function lr(e,t){e.style.display=t?e[Ao]:"none",e[Cc]=!t}const jh=Symbol(""),zh=/(^|;)\s*display\s*:/;function Kh(e,t,n){const r=e.style,o=Oe(n);let s=!1;if(n&&!o){if(t)if(Oe(t))for(const i of t.split(";")){const a=i.slice(0,i.indexOf(":")).trim();n[a]==null&&uo(r,a,"")}else for(const i in t)n[i]==null&&uo(r,i,"");for(const i in n)i==="display"&&(s=!0),uo(r,i,n[i])}else if(o){if(t!==n){const i=r[jh];i&&(n+=";"+i),r.cssText=n,s=zh.test(n)}}else t&&e.removeAttribute("style");Ao in e&&(e[Ao]=s?r.display:"",e[Cc]&&(r.display="none"))}const _a=/\s*!important$/;function uo(e,t,n){if(re(n))n.forEach(r=>uo(e,t,r));else if(n==null&&(n=""),t.startsWith("--"))e.setProperty(t,n);else{const r=Wh(e,t);_a.test(n)?e.setProperty(Ut(r),n.replace(_a,""),"important"):e[r]=n}}const ya=["Webkit","Moz","ms"],as={};function Wh(e,t){const n=as[t];if(n)return n;let r=rt(t);if(r!=="filter"&&r in e)return as[t]=r;r=Br(r);for(let o=0;ols||(Zh.then(()=>ls=0),ls=Date.now());function Jh(e,t){const n=r=>{if(!r._vts)r._vts=Date.now();else if(r._vts<=n.attached)return;Et(em(r,n.value),t,5,[r])};return n.value=e,n.attached=Qh(),n}function em(e,t){if(re(t)){const n=e.stopImmediatePropagation;return e.stopImmediatePropagation=()=>{n.call(e),e._stopped=!0},t.map(r=>o=>!o._stopped&&r&&r(o))}else return t}const wa=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&e.charCodeAt(2)>96&&e.charCodeAt(2)<123,tm=(e,t,n,r,o,s)=>{const i=o==="svg";t==="class"?Uh(e,r,i):t==="style"?Kh(e,n,r):$r(t)?Gs(t)||Yh(e,t,n,r,s):(t[0]==="."?(t=t.slice(1),!0):t[0]==="^"?(t=t.slice(1),!1):nm(e,t,r,i))?(Sa(e,t,r),!e.tagName.includes("-")&&(t==="value"||t==="checked"||t==="selected")&&Ea(e,t,r,i,s,t!=="value")):e._isVueCE&&(/[A-Z]/.test(t)||!Oe(r))?Sa(e,rt(t),r,s,t):(t==="true-value"?e._trueValue=r:t==="false-value"&&(e._falseValue=r),Ea(e,t,r,i))};function nm(e,t,n,r){if(r)return!!(t==="innerHTML"||t==="textContent"||t in e&&wa(t)&&oe(n));if(t==="spellcheck"||t==="draggable"||t==="translate"||t==="form"||t==="list"&&e.tagName==="INPUT"||t==="type"&&e.tagName==="TEXTAREA")return!1;if(t==="width"||t==="height"){const o=e.tagName;if(o==="IMG"||o==="VIDEO"||o==="CANVAS"||o==="SOURCE")return!1}return wa(t)&&Oe(n)?!1:t in e}const rm={esc:"escape",space:" ",up:"arrow-up",left:"arrow-left",right:"arrow-right",down:"arrow-down",delete:"backspace"},om=(e,t)=>{const n=e._withKeys||(e._withKeys={}),r=t.join(".");return n[r]||(n[r]=o=>{if(!("key"in o))return;const s=Ut(o.key);if(t.some(i=>i===s||rm[i]===s))return e(o)})},sm=Ne({patchProp:tm},Nh);let us,Ta=!1;function im(){return us=Ta?us:ah(sm),Ta=!0,us}const am=(...e)=>{const t=im().createApp(...e),{mount:n}=t;return t.mount=r=>{const o=um(r);if(o)return n(o,!0,lm(o))},t};function lm(e){if(e instanceof SVGElement)return"svg";if(typeof MathMLElement=="function"&&e instanceof MathMLElement)return"mathml"}function um(e){return Oe(e)?document.querySelector(e):e}var Kr=e=>/^[a-z][a-z0-9+.-]*:/.test(e)||e.startsWith("//"),cm=/.md((\?|#).*)?$/,fm=(e,t="/")=>Kr(e)||e.startsWith("/")&&!e.startsWith(t)&&!cm.test(e),Wr=e=>/^(https?:)?\/\//.test(e),Oa=e=>{if(!e||e.endsWith("/"))return e;let t=e.replace(/(^|\/)README.md$/i,"$1index.html");return t.endsWith(".md")?t=`${t.substring(0,t.length-3)}.html`:t.endsWith(".html")||(t=`${t}.html`),t.endsWith("/index.html")&&(t=t.substring(0,t.length-10)),t},dm="http://.",wc=(e,t)=>{if(!e.startsWith("/")&&t){const n=t.slice(0,t.lastIndexOf("/"));return Oa(new URL(`${n}/${e}`,dm).pathname)}return Oa(e)},Tc=(e,t)=>{const n=Object.keys(e).sort((r,o)=>{const s=o.split("/").length-r.split("/").length;return s!==0?s:o.length-r.length});for(const r of n)if(t.startsWith(r))return r;return"/"},pm=/(#|\?)/,Fo=e=>{const[t,...n]=e.split(pm);return{pathname:t,hashAndQueries:n.join("")}},hm=["link","meta","script","style","noscript","template"],mm=["title","base"],gm=([e,t,n])=>mm.includes(e)?e:hm.includes(e)?e==="meta"&&t.name?`${e}.${t.name}`:e==="template"&&t.id?`${e}.${t.id}`:JSON.stringify([e,Object.entries(t).map(([r,o])=>typeof o=="boolean"?o?[r,""]:null:[r,o]).filter(r=>r!=null).sort(([r],[o])=>r.localeCompare(o)),n]):null,Oc=e=>{const t=new Set,n=[];return e.forEach(r=>{const o=gm(r);o&&!t.has(o)&&(t.add(o),n.push(r))}),n},vm=e=>e.endsWith("/")||e.endsWith(".html")?e:`${e}/`,xc=e=>e.endsWith("/")?e.slice(0,-1):e,hi=e=>e.startsWith("/")?e.slice(1):e,mi=e=>Object.prototype.toString.call(e)==="[object Object]",ct=e=>typeof e=="string";const kc=JSON.parse("{}"),Pc=Object.fromEntries([["/",{loader:()=>Nt(()=>import("./index.html-D0OSWfCX.js"),[]),meta:{title:"AI for devs | Tech at Worldline"}}],["/develop/",{loader:()=>Nt(()=>import("./index.html-qqiFBt18.js"),[]),meta:{title:"Develop with AI"}}],["/llm/",{loader:()=>Nt(()=>import("./index.html-B3qdqBLV.js"),[]),meta:{title:"Online with Librechat"}}],["/offline/",{loader:()=>Nt(()=>import("./index.html-CGIhipPr.js"),[]),meta:{title:"Offline with LM Studio"}}],["/overview/",{loader:()=>Nt(()=>import("./index.html-B548do1J.js"),[]),meta:{title:"Let's start"}}],["/services/",{loader:()=>Nt(()=>import("./index.html-CwVXPkpi.js"),[]),meta:{title:"AI for services"}}],["/use/",{loader:()=>Nt(()=>import("./index.html-CVCjDvCw.js"),[]),meta:{title:"Prompt with AI"}}],["/404.html",{loader:()=>Nt(()=>import("./404.html-BnLtj2Fy.js"),[]),meta:{title:""}}]]);function _m(){return Ic().__VUE_DEVTOOLS_GLOBAL_HOOK__}function Ic(){return typeof navigator<"u"&&typeof window<"u"?window:typeof globalThis<"u"?globalThis:{}}const ym=typeof Proxy=="function",bm="devtools-plugin:setup",Em="plugin:settings:set";let xn,Is;function Sm(){var e;return xn!==void 0||(typeof window<"u"&&window.performance?(xn=!0,Is=window.performance):typeof globalThis<"u"&&(!((e=globalThis.perf_hooks)===null||e===void 0)&&e.performance)?(xn=!0,Is=globalThis.perf_hooks.performance):xn=!1),xn}function Am(){return Sm()?Is.now():Date.now()}class Cm{constructor(t,n){this.target=null,this.targetQueue=[],this.onQueue=[],this.plugin=t,this.hook=n;const r={};if(t.settings)for(const i in t.settings){const a=t.settings[i];r[i]=a.defaultValue}const o=`__vue-devtools-plugin-settings__${t.id}`;let s=Object.assign({},r);try{const i=localStorage.getItem(o),a=JSON.parse(i);Object.assign(s,a)}catch{}this.fallbacks={getSettings(){return s},setSettings(i){try{localStorage.setItem(o,JSON.stringify(i))}catch{}s=i},now(){return Am()}},n&&n.on(Em,(i,a)=>{i===this.plugin.id&&this.fallbacks.setSettings(a)}),this.proxiedOn=new Proxy({},{get:(i,a)=>this.target?this.target.on[a]:(...l)=>{this.onQueue.push({method:a,args:l})}}),this.proxiedTarget=new Proxy({},{get:(i,a)=>this.target?this.target[a]:a==="on"?this.proxiedOn:Object.keys(this.fallbacks).includes(a)?(...l)=>(this.targetQueue.push({method:a,args:l,resolve:()=>{}}),this.fallbacks[a](...l)):(...l)=>new Promise(u=>{this.targetQueue.push({method:a,args:l,resolve:u})})})}async setRealTarget(t){this.target=t;for(const n of this.onQueue)this.target.on[n.method](...n.args);for(const n of this.targetQueue)n.resolve(await this.target[n.method](...n.args))}}function wm(e,t){const n=e,r=Ic(),o=_m(),s=ym&&n.enableEarlyProxy;if(o&&(r.__VUE_DEVTOOLS_PLUGIN_API_AVAILABLE__||!s))o.emit(bm,e,t);else{const i=s?new Cm(n,o):null;(r.__VUE_DEVTOOLS_PLUGINS__=r.__VUE_DEVTOOLS_PLUGINS__||[]).push({pluginDescriptor:n,setupFn:t,proxy:i}),i&&t(i.proxiedTarget)}}/*! + * vue-router v4.5.0 + * (c) 2024 Eduardo San Martin Morote + * @license MIT + */const Ft=typeof document<"u";function Rc(e){return typeof e=="object"||"displayName"in e||"props"in e||"__vccOpts"in e}function Tm(e){return e.__esModule||e[Symbol.toStringTag]==="Module"||e.default&&Rc(e.default)}const pe=Object.assign;function cs(e,t){const n={};for(const r in t){const o=t[r];n[r]=dt(o)?o.map(e):e(o)}return n}const Sr=()=>{},dt=Array.isArray,Lc=/#/g,Om=/&/g,xm=/\//g,km=/=/g,Pm=/\?/g,Dc=/\+/g,Im=/%5B/g,Rm=/%5D/g,Nc=/%5E/g,Lm=/%60/g,Vc=/%7B/g,Dm=/%7C/g,Mc=/%7D/g,Nm=/%20/g;function gi(e){return encodeURI(""+e).replace(Dm,"|").replace(Im,"[").replace(Rm,"]")}function Vm(e){return gi(e).replace(Vc,"{").replace(Mc,"}").replace(Nc,"^")}function Rs(e){return gi(e).replace(Dc,"%2B").replace(Nm,"+").replace(Lc,"%23").replace(Om,"%26").replace(Lm,"`").replace(Vc,"{").replace(Mc,"}").replace(Nc,"^")}function Mm(e){return Rs(e).replace(km,"%3D")}function Fm(e){return gi(e).replace(Lc,"%23").replace(Pm,"%3F")}function Hm(e){return e==null?"":Fm(e).replace(xm,"%2F")}function jn(e){try{return decodeURIComponent(""+e)}catch{}return""+e}const $m=/\/$/,Bm=e=>e.replace($m,"");function fs(e,t,n="/"){let r,o={},s="",i="";const a=t.indexOf("#");let l=t.indexOf("?");return a=0&&(l=-1),l>-1&&(r=t.slice(0,l),s=t.slice(l+1,a>-1?a:t.length),o=e(s)),a>-1&&(r=r||t.slice(0,a),i=t.slice(a,t.length)),r=Km(r??t,n),{fullPath:r+(s&&"?")+s+i,path:r,query:o,hash:jn(i)}}function Um(e,t){const n=t.query?e(t.query):"";return t.path+(n&&"?")+n+(t.hash||"")}function xa(e,t){return!t||!e.toLowerCase().startsWith(t.toLowerCase())?e:e.slice(t.length)||"/"}function jm(e,t,n){const r=t.matched.length-1,o=n.matched.length-1;return r>-1&&r===o&&on(t.matched[r],n.matched[o])&&Fc(t.params,n.params)&&e(t.query)===e(n.query)&&t.hash===n.hash}function on(e,t){return(e.aliasOf||e)===(t.aliasOf||t)}function Fc(e,t){if(Object.keys(e).length!==Object.keys(t).length)return!1;for(const n in e)if(!zm(e[n],t[n]))return!1;return!0}function zm(e,t){return dt(e)?ka(e,t):dt(t)?ka(t,e):e===t}function ka(e,t){return dt(t)?e.length===t.length&&e.every((n,r)=>n===t[r]):e.length===1&&e[0]===t}function Km(e,t){if(e.startsWith("/"))return e;if(!e)return t;const n=t.split("/"),r=e.split("/"),o=r[r.length-1];(o===".."||o===".")&&r.push("");let s=n.length-1,i,a;for(i=0;i1&&s--;else break;return n.slice(0,s).join("/")+"/"+r.slice(i).join("/")}const Vt={path:"/",name:void 0,params:{},query:{},hash:"",fullPath:"/",matched:[],meta:{},redirectedFrom:void 0};var Dr;(function(e){e.pop="pop",e.push="push"})(Dr||(Dr={}));var Ar;(function(e){e.back="back",e.forward="forward",e.unknown=""})(Ar||(Ar={}));function Wm(e){if(!e)if(Ft){const t=document.querySelector("base");e=t&&t.getAttribute("href")||"/",e=e.replace(/^\w+:\/\/[^\/]+/,"")}else e="/";return e[0]!=="/"&&e[0]!=="#"&&(e="/"+e),Bm(e)}const qm=/^[^#]+#/;function Gm(e,t){return e.replace(qm,"#")+t}function Ym(e,t){const n=document.documentElement.getBoundingClientRect(),r=e.getBoundingClientRect();return{behavior:t.behavior,left:r.left-n.left-(t.left||0),top:r.top-n.top-(t.top||0)}}const Ho=()=>({left:window.scrollX,top:window.scrollY});function Xm(e){let t;if("el"in e){const n=e.el,r=typeof n=="string"&&n.startsWith("#"),o=typeof n=="string"?r?document.getElementById(n.slice(1)):document.querySelector(n):n;if(!o)return;t=Ym(o,e)}else t=e;"scrollBehavior"in document.documentElement.style?window.scrollTo(t):window.scrollTo(t.left!=null?t.left:window.scrollX,t.top!=null?t.top:window.scrollY)}function Pa(e,t){return(history.state?history.state.position-t:-1)+e}const Ls=new Map;function Zm(e,t){Ls.set(e,t)}function Qm(e){const t=Ls.get(e);return Ls.delete(e),t}let Jm=()=>location.protocol+"//"+location.host;function Hc(e,t){const{pathname:n,search:r,hash:o}=t,s=e.indexOf("#");if(s>-1){let a=o.includes(e.slice(s))?e.slice(s).length:1,l=o.slice(a);return l[0]!=="/"&&(l="/"+l),xa(l,"")}return xa(n,e)+r+o}function eg(e,t,n,r){let o=[],s=[],i=null;const a=({state:d})=>{const p=Hc(e,location),v=n.value,_=t.value;let b=0;if(d){if(n.value=p,t.value=d,i&&i===v){i=null;return}b=_?d.position-_.position:0}else r(p);o.forEach(E=>{E(n.value,v,{delta:b,type:Dr.pop,direction:b?b>0?Ar.forward:Ar.back:Ar.unknown})})};function l(){i=n.value}function u(d){o.push(d);const p=()=>{const v=o.indexOf(d);v>-1&&o.splice(v,1)};return s.push(p),p}function c(){const{history:d}=window;d.state&&d.replaceState(pe({},d.state,{scroll:Ho()}),"")}function f(){for(const d of s)d();s=[],window.removeEventListener("popstate",a),window.removeEventListener("beforeunload",c)}return window.addEventListener("popstate",a),window.addEventListener("beforeunload",c,{passive:!0}),{pauseListeners:l,listen:u,destroy:f}}function Ia(e,t,n,r=!1,o=!1){return{back:e,current:t,forward:n,replaced:r,position:window.history.length,scroll:o?Ho():null}}function tg(e){const{history:t,location:n}=window,r={value:Hc(e,n)},o={value:t.state};o.value||s(r.value,{back:null,current:r.value,forward:null,position:t.length-1,replaced:!0,scroll:null},!0);function s(l,u,c){const f=e.indexOf("#"),d=f>-1?(n.host&&document.querySelector("base")?e:e.slice(f))+l:Jm()+e+l;try{t[c?"replaceState":"pushState"](u,"",d),o.value=u}catch(p){console.error(p),n[c?"replace":"assign"](d)}}function i(l,u){const c=pe({},t.state,Ia(o.value.back,l,o.value.forward,!0),u,{position:o.value.position});s(l,c,!0),r.value=l}function a(l,u){const c=pe({},o.value,t.state,{forward:l,scroll:Ho()});s(c.current,c,!0);const f=pe({},Ia(r.value,l,null),{position:c.position+1},u);s(l,f,!1),r.value=l}return{location:r,state:o,push:a,replace:i}}function ng(e){e=Wm(e);const t=tg(e),n=eg(e,t.state,t.location,t.replace);function r(s,i=!0){i||n.pauseListeners(),history.go(s)}const o=pe({location:"",base:e,go:r,createHref:Gm.bind(null,e)},t,n);return Object.defineProperty(o,"location",{enumerable:!0,get:()=>t.location.value}),Object.defineProperty(o,"state",{enumerable:!0,get:()=>t.state.value}),o}function $c(e){return typeof e=="string"||e&&typeof e=="object"}function Bc(e){return typeof e=="string"||typeof e=="symbol"}const Uc=Symbol("");var Ra;(function(e){e[e.aborted=4]="aborted",e[e.cancelled=8]="cancelled",e[e.duplicated=16]="duplicated"})(Ra||(Ra={}));function zn(e,t){return pe(new Error,{type:e,[Uc]:!0},t)}function Lt(e,t){return e instanceof Error&&Uc in e&&(t==null||!!(e.type&t))}const La="[^/]+?",rg={sensitive:!1,strict:!1,start:!0,end:!0},og=/[.+*?^${}()[\]/\\]/g;function sg(e,t){const n=pe({},rg,t),r=[];let o=n.start?"^":"";const s=[];for(const u of e){const c=u.length?[]:[90];n.strict&&!u.length&&(o+="/");for(let f=0;ft.length?t.length===1&&t[0]===80?1:-1:0}function jc(e,t){let n=0;const r=e.score,o=t.score;for(;n0&&t[t.length-1]<0}const ag={type:0,value:""},lg=/[a-zA-Z0-9_]/;function ug(e){if(!e)return[[]];if(e==="/")return[[ag]];if(!e.startsWith("/"))throw new Error(`Invalid path "${e}"`);function t(p){throw new Error(`ERR (${n})/"${u}": ${p}`)}let n=0,r=n;const o=[];let s;function i(){s&&o.push(s),s=[]}let a=0,l,u="",c="";function f(){u&&(n===0?s.push({type:0,value:u}):n===1||n===2||n===3?(s.length>1&&(l==="*"||l==="+")&&t(`A repeatable param (${u}) must be alone in its segment. eg: '/:ids+.`),s.push({type:1,value:u,regexp:c,repeatable:l==="*"||l==="+",optional:l==="*"||l==="?"})):t("Invalid state to consume buffer"),u="")}function d(){u+=l}for(;a{i(m)}:Sr}function i(f){if(Bc(f)){const d=r.get(f);d&&(r.delete(f),n.splice(n.indexOf(d),1),d.children.forEach(i),d.alias.forEach(i))}else{const d=n.indexOf(f);d>-1&&(n.splice(d,1),f.record.name&&r.delete(f.record.name),f.children.forEach(i),f.alias.forEach(i))}}function a(){return n}function l(f){const d=hg(f,n);n.splice(d,0,f),f.record.name&&!Ma(f)&&r.set(f.record.name,f)}function u(f,d){let p,v={},_,b;if("name"in f&&f.name){if(p=r.get(f.name),!p)throw zn(1,{location:f});b=p.record.name,v=pe(Na(d.params,p.keys.filter(m=>!m.optional).concat(p.parent?p.parent.keys.filter(m=>m.optional):[]).map(m=>m.name)),f.params&&Na(f.params,p.keys.map(m=>m.name))),_=p.stringify(v)}else if(f.path!=null)_=f.path,p=n.find(m=>m.re.test(_)),p&&(v=p.parse(_),b=p.record.name);else{if(p=d.name?r.get(d.name):n.find(m=>m.re.test(d.path)),!p)throw zn(1,{location:f,currentLocation:d});b=p.record.name,v=pe({},d.params,f.params),_=p.stringify(v)}const E=[];let A=p;for(;A;)E.unshift(A.record),A=A.parent;return{name:b,path:_,params:v,matched:E,meta:pg(E)}}e.forEach(f=>s(f));function c(){n.length=0,r.clear()}return{addRoute:s,resolve:u,removeRoute:i,clearRoutes:c,getRoutes:a,getRecordMatcher:o}}function Na(e,t){const n={};for(const r of t)r in e&&(n[r]=e[r]);return n}function Va(e){const t={path:e.path,redirect:e.redirect,name:e.name,meta:e.meta||{},aliasOf:e.aliasOf,beforeEnter:e.beforeEnter,props:dg(e),children:e.children||[],instances:{},leaveGuards:new Set,updateGuards:new Set,enterCallbacks:{},components:"components"in e?e.components||null:e.component&&{default:e.component}};return Object.defineProperty(t,"mods",{value:{}}),t}function dg(e){const t={},n=e.props||!1;if("component"in e)t.default=n;else for(const r in e.components)t[r]=typeof n=="object"?n[r]:n;return t}function Ma(e){for(;e;){if(e.record.aliasOf)return!0;e=e.parent}return!1}function pg(e){return e.reduce((t,n)=>pe(t,n.meta),{})}function Fa(e,t){const n={};for(const r in e)n[r]=r in t?t[r]:e[r];return n}function hg(e,t){let n=0,r=t.length;for(;n!==r;){const s=n+r>>1;jc(e,t[s])<0?r=s:n=s+1}const o=mg(e);return o&&(r=t.lastIndexOf(o,r-1)),r}function mg(e){let t=e;for(;t=t.parent;)if(zc(t)&&jc(e,t)===0)return t}function zc({record:e}){return!!(e.name||e.components&&Object.keys(e.components).length||e.redirect)}function gg(e){const t={};if(e===""||e==="?")return t;const r=(e[0]==="?"?e.slice(1):e).split("&");for(let o=0;os&&Rs(s)):[r&&Rs(r)]).forEach(s=>{s!==void 0&&(t+=(t.length?"&":"")+n,s!=null&&(t+="="+s))})}return t}function vg(e){const t={};for(const n in e){const r=e[n];r!==void 0&&(t[n]=dt(r)?r.map(o=>o==null?null:""+o):r==null?r:""+r)}return t}const _g=Symbol(""),$a=Symbol(""),$o=Symbol(""),vi=Symbol(""),Ds=Symbol("");function ur(){let e=[];function t(r){return e.push(r),()=>{const o=e.indexOf(r);o>-1&&e.splice(o,1)}}function n(){e=[]}return{add:t,list:()=>e.slice(),reset:n}}function Zt(e,t,n,r,o,s=i=>i()){const i=r&&(r.enterCallbacks[o]=r.enterCallbacks[o]||[]);return()=>new Promise((a,l)=>{const u=d=>{d===!1?l(zn(4,{from:n,to:t})):d instanceof Error?l(d):$c(d)?l(zn(2,{from:t,to:d})):(i&&r.enterCallbacks[o]===i&&typeof d=="function"&&i.push(d),a())},c=s(()=>e.call(r&&r.instances[o],t,n,u));let f=Promise.resolve(c);e.length<3&&(f=f.then(u)),f.catch(d=>l(d))})}function ds(e,t,n,r,o=s=>s()){const s=[];for(const i of e)for(const a in i.components){let l=i.components[a];if(!(t!=="beforeRouteEnter"&&!i.instances[a]))if(Rc(l)){const c=(l.__vccOpts||l)[t];c&&s.push(Zt(c,n,r,i,a,o))}else{let u=l();s.push(()=>u.then(c=>{if(!c)throw new Error(`Couldn't resolve component "${a}" at "${i.path}"`);const f=Tm(c)?c.default:c;i.mods[a]=c,i.components[a]=f;const p=(f.__vccOpts||f)[t];return p&&Zt(p,n,r,i,a,o)()}))}}return s}function Ba(e){const t=Ge($o),n=Ge(vi),r=F(()=>{const l=Qt(e.to);return t.resolve(l)}),o=F(()=>{const{matched:l}=r.value,{length:u}=l,c=l[u-1],f=n.matched;if(!c||!f.length)return-1;const d=f.findIndex(on.bind(null,c));if(d>-1)return d;const p=Ua(l[u-2]);return u>1&&Ua(c)===p&&f[f.length-1].path!==p?f.findIndex(on.bind(null,l[u-2])):d}),s=F(()=>o.value>-1&&Ag(n.params,r.value.params)),i=F(()=>o.value>-1&&o.value===n.matched.length-1&&Fc(n.params,r.value.params));function a(l={}){if(Sg(l)){const u=t[Qt(e.replace)?"replace":"push"](Qt(e.to)).catch(Sr);return e.viewTransition&&typeof document<"u"&&"startViewTransition"in document&&document.startViewTransition(()=>u),u}return Promise.resolve()}if(Ft){const l=er();if(l){const u={route:r.value,isActive:s.value,isExactActive:i.value,error:null};l.__vrl_devtools=l.__vrl_devtools||[],l.__vrl_devtools.push(u),cc(()=>{u.route=r.value,u.isActive=s.value,u.isExactActive=i.value,u.error=$c(Qt(e.to))?null:'Invalid "to" value'},{flush:"post"})}}return{route:r,href:F(()=>r.value.href),isActive:s,isExactActive:i,navigate:a}}function yg(e){return e.length===1?e[0]:e}const bg=de({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"}},useLink:Ba,setup(e,{slots:t}){const n=Zn(Ba(e)),{options:r}=Ge($o),o=F(()=>({[ja(e.activeClass,r.linkActiveClass,"router-link-active")]:n.isActive,[ja(e.exactActiveClass,r.linkExactActiveClass,"router-link-exact-active")]:n.isExactActive}));return()=>{const s=t.default&&yg(t.default(n));return e.custom?s:he("a",{"aria-current":n.isExactActive?e.ariaCurrentValue:null,href:n.href,onClick:n.navigate,class:o.value},s)}}}),Eg=bg;function Sg(e){if(!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)&&!e.defaultPrevented&&!(e.button!==void 0&&e.button!==0)){if(e.currentTarget&&e.currentTarget.getAttribute){const t=e.currentTarget.getAttribute("target");if(/\b_blank\b/i.test(t))return}return e.preventDefault&&e.preventDefault(),!0}}function Ag(e,t){for(const n in t){const r=t[n],o=e[n];if(typeof r=="string"){if(r!==o)return!1}else if(!dt(o)||o.length!==r.length||r.some((s,i)=>s!==o[i]))return!1}return!0}function Ua(e){return e?e.aliasOf?e.aliasOf.path:e.path:""}const ja=(e,t,n)=>e??t??n,Cg=de({name:"RouterView",inheritAttrs:!1,props:{name:{type:String,default:"default"},route:Object},compatConfig:{MODE:3},setup(e,{attrs:t,slots:n}){const r=Ge(Ds),o=F(()=>e.route||r.value),s=Ge($a,0),i=F(()=>{let u=Qt(s);const{matched:c}=o.value;let f;for(;(f=c[u])&&!f.components;)u++;return u}),a=F(()=>o.value.matched[i.value]);An($a,F(()=>i.value+1)),An(_g,a),An(Ds,o);const l=ge();return Ue(()=>[l.value,a.value,e.name],([u,c,f],[d,p,v])=>{c&&(c.instances[f]=u,p&&p!==c&&u&&u===d&&(c.leaveGuards.size||(c.leaveGuards=p.leaveGuards),c.updateGuards.size||(c.updateGuards=p.updateGuards))),u&&c&&(!p||!on(c,p)||!d)&&(c.enterCallbacks[f]||[]).forEach(_=>_(u))},{flush:"post"}),()=>{const u=o.value,c=e.name,f=a.value,d=f&&f.components[c];if(!d)return za(n.default,{Component:d,route:u});const p=f.props[c],v=p?p===!0?u.params:typeof p=="function"?p(u):p:null,b=he(d,pe({},v,t,{onVnodeUnmounted:E=>{E.component.isUnmounted&&(f.instances[c]=null)},ref:l}));if(Ft&&b.ref){const E={depth:i.value,name:f.name,path:f.path,meta:f.meta};(dt(b.ref)?b.ref.map(m=>m.i):[b.ref.i]).forEach(m=>{m.__vrv_devtools=E})}return za(n.default,{Component:b,route:u})||b}}});function za(e,t){if(!e)return null;const n=e(t);return n.length===1?n[0]:n}const wg=Cg;function cr(e,t){const n=pe({},e,{matched:e.matched.map(r=>Vg(r,["instances","children","aliasOf"]))});return{_custom:{type:null,readOnly:!0,display:e.fullPath,tooltip:t,value:n}}}function eo(e){return{_custom:{display:e}}}let Tg=0;function Og(e,t,n){if(t.__hasDevtools)return;t.__hasDevtools=!0;const r=Tg++;wm({id:"org.vuejs.router"+(r?"."+r:""),label:"Vue Router",packageName:"vue-router",homepage:"https://router.vuejs.org",logo:"https://router.vuejs.org/logo.png",componentStateTypes:["Routing"],app:e},o=>{typeof o.now!="function"&&console.warn("[Vue Router]: You seem to be using an outdated version of Vue Devtools. Are you still using the Beta release instead of the stable one? You can find the links at https://devtools.vuejs.org/guide/installation.html."),o.on.inspectComponent((c,f)=>{c.instanceData&&c.instanceData.state.push({type:"Routing",key:"$route",editable:!1,value:cr(t.currentRoute.value,"Current Route")})}),o.on.visitComponentTree(({treeNode:c,componentInstance:f})=>{if(f.__vrv_devtools){const d=f.__vrv_devtools;c.tags.push({label:(d.name?`${d.name.toString()}: `:"")+d.path,textColor:0,tooltip:"This component is rendered by <router-view>",backgroundColor:Kc})}dt(f.__vrl_devtools)&&(f.__devtoolsApi=o,f.__vrl_devtools.forEach(d=>{let p=d.route.path,v=Gc,_="",b=0;d.error?(p=d.error,v=Rg,b=Lg):d.isExactActive?(v=qc,_="This is exactly active"):d.isActive&&(v=Wc,_="This link is active"),c.tags.push({label:p,textColor:b,tooltip:_,backgroundColor:v})}))}),Ue(t.currentRoute,()=>{l(),o.notifyComponentUpdate(),o.sendInspectorTree(a),o.sendInspectorState(a)});const s="router:navigations:"+r;o.addTimelineLayer({id:s,label:`Router${r?" "+r:""} Navigations`,color:4237508}),t.onError((c,f)=>{o.addTimelineEvent({layerId:s,event:{title:"Error during Navigation",subtitle:f.fullPath,logType:"error",time:o.now(),data:{error:c},groupId:f.meta.__navigationId}})});let i=0;t.beforeEach((c,f)=>{const d={guard:eo("beforeEach"),from:cr(f,"Current Location during this navigation"),to:cr(c,"Target location")};Object.defineProperty(c.meta,"__navigationId",{value:i++}),o.addTimelineEvent({layerId:s,event:{time:o.now(),title:"Start of navigation",subtitle:c.fullPath,data:d,groupId:c.meta.__navigationId}})}),t.afterEach((c,f,d)=>{const p={guard:eo("afterEach")};d?(p.failure={_custom:{type:Error,readOnly:!0,display:d?d.message:"",tooltip:"Navigation Failure",value:d}},p.status=eo("❌")):p.status=eo("✅"),p.from=cr(f,"Current Location during this navigation"),p.to=cr(c,"Target location"),o.addTimelineEvent({layerId:s,event:{title:"End of navigation",subtitle:c.fullPath,time:o.now(),data:p,logType:d?"warning":"default",groupId:c.meta.__navigationId}})});const a="router-inspector:"+r;o.addInspector({id:a,label:"Routes"+(r?" "+r:""),icon:"book",treeFilterPlaceholder:"Search routes"});function l(){if(!u)return;const c=u;let f=n.getRoutes().filter(d=>!d.parent||!d.parent.record.components);f.forEach(Zc),c.filter&&(f=f.filter(d=>Ns(d,c.filter.toLowerCase()))),f.forEach(d=>Xc(d,t.currentRoute.value)),c.rootNodes=f.map(Yc)}let u;o.on.getInspectorTree(c=>{u=c,c.app===e&&c.inspectorId===a&&l()}),o.on.getInspectorState(c=>{if(c.app===e&&c.inspectorId===a){const d=n.getRoutes().find(p=>p.record.__vd_id===c.nodeId);d&&(c.state={options:kg(d)})}}),o.sendInspectorTree(a),o.sendInspectorState(a)})}function xg(e){return e.optional?e.repeatable?"*":"?":e.repeatable?"+":""}function kg(e){const{record:t}=e,n=[{editable:!1,key:"path",value:t.path}];return t.name!=null&&n.push({editable:!1,key:"name",value:t.name}),n.push({editable:!1,key:"regexp",value:e.re}),e.keys.length&&n.push({editable:!1,key:"keys",value:{_custom:{type:null,readOnly:!0,display:e.keys.map(r=>`${r.name}${xg(r)}`).join(" "),tooltip:"Param keys",value:e.keys}}}),t.redirect!=null&&n.push({editable:!1,key:"redirect",value:t.redirect}),e.alias.length&&n.push({editable:!1,key:"aliases",value:e.alias.map(r=>r.record.path)}),Object.keys(e.record.meta).length&&n.push({editable:!1,key:"meta",value:e.record.meta}),n.push({key:"score",editable:!1,value:{_custom:{type:null,readOnly:!0,display:e.score.map(r=>r.join(", ")).join(" | "),tooltip:"Score used to sort routes",value:e.score}}}),n}const Kc=15485081,Wc=2450411,qc=8702998,Pg=2282478,Gc=16486972,Ig=6710886,Rg=16704226,Lg=12131356;function Yc(e){const t=[],{record:n}=e;n.name!=null&&t.push({label:String(n.name),textColor:0,backgroundColor:Pg}),n.aliasOf&&t.push({label:"alias",textColor:0,backgroundColor:Gc}),e.__vd_match&&t.push({label:"matches",textColor:0,backgroundColor:Kc}),e.__vd_exactActive&&t.push({label:"exact",textColor:0,backgroundColor:qc}),e.__vd_active&&t.push({label:"active",textColor:0,backgroundColor:Wc}),n.redirect&&t.push({label:typeof n.redirect=="string"?`redirect: ${n.redirect}`:"redirects",textColor:16777215,backgroundColor:Ig});let r=n.__vd_id;return r==null&&(r=String(Dg++),n.__vd_id=r),{id:r,label:n.path,tags:t,children:e.children.map(Yc)}}let Dg=0;const Ng=/^\/(.*)\/([a-z]*)$/;function Xc(e,t){const n=t.matched.length&&on(t.matched[t.matched.length-1],e.record);e.__vd_exactActive=e.__vd_active=n,n||(e.__vd_active=t.matched.some(r=>on(r,e.record))),e.children.forEach(r=>Xc(r,t))}function Zc(e){e.__vd_match=!1,e.children.forEach(Zc)}function Ns(e,t){const n=String(e.re).match(Ng);if(e.__vd_match=!1,!n||n.length<3)return!1;if(new RegExp(n[1].replace(/\$$/,""),n[2]).test(t))return e.children.forEach(i=>Ns(i,t)),e.record.path!=="/"||t==="/"?(e.__vd_match=e.re.test(t),!0):!1;const o=e.record.path.toLowerCase(),s=jn(o);return!t.startsWith("/")&&(s.includes(t)||o.includes(t))||s.startsWith(t)||o.startsWith(t)||e.record.name&&String(e.record.name).includes(t)?!0:e.children.some(i=>Ns(i,t))}function Vg(e,t){const n={};for(const r in e)t.includes(r)||(n[r]=e[r]);return n}function Mg(e){const t=fg(e.routes,e),n=e.parseQuery||gg,r=e.stringifyQuery||Ha,o=e.history,s=ur(),i=ur(),a=ur(),l=ft(Vt);let u=Vt;Ft&&e.scrollBehavior&&"scrollRestoration"in history&&(history.scrollRestoration="manual");const c=cs.bind(null,x=>""+x),f=cs.bind(null,Hm),d=cs.bind(null,jn);function p(x,q){let j,Q;return Bc(x)?(j=t.getRecordMatcher(x),Q=q):Q=x,t.addRoute(Q,j)}function v(x){const q=t.getRecordMatcher(x);q&&t.removeRoute(q)}function _(){return t.getRoutes().map(x=>x.record)}function b(x){return!!t.getRecordMatcher(x)}function E(x,q){if(q=pe({},q||l.value),typeof x=="string"){const g=fs(n,x,q.path),S=t.resolve({path:g.path},q),k=o.createHref(g.fullPath);return pe(g,S,{params:d(S.params),hash:jn(g.hash),redirectedFrom:void 0,href:k})}let j;if(x.path!=null)j=pe({},x,{path:fs(n,x.path,q.path).path});else{const g=pe({},x.params);for(const S in g)g[S]==null&&delete g[S];j=pe({},x,{params:f(g)}),q.params=f(q.params)}const Q=t.resolve(j,q),ce=x.hash||"";Q.params=c(d(Q.params));const Ee=Um(r,pe({},x,{hash:Vm(ce),path:Q.path})),h=o.createHref(Ee);return pe({fullPath:Ee,hash:ce,query:r===Ha?vg(x.query):x.query||{}},Q,{redirectedFrom:void 0,href:h})}function A(x){return typeof x=="string"?fs(n,x,l.value.path):pe({},x)}function m(x,q){if(u!==x)return zn(8,{from:q,to:x})}function y(x){return M(x)}function L(x){return y(pe(A(x),{replace:!0}))}function W(x){const q=x.matched[x.matched.length-1];if(q&&q.redirect){const{redirect:j}=q;let Q=typeof j=="function"?j(x):j;return typeof Q=="string"&&(Q=Q.includes("?")||Q.includes("#")?Q=A(Q):{path:Q},Q.params={}),pe({query:x.query,hash:x.hash,params:Q.path!=null?{}:x.params},Q)}}function M(x,q){const j=u=E(x),Q=l.value,ce=x.state,Ee=x.force,h=x.replace===!0,g=W(j);if(g)return M(pe(A(g),{state:typeof g=="object"?pe({},ce,g.state):ce,force:Ee,replace:h}),q||j);const S=j;S.redirectedFrom=q;let k;return!Ee&&jm(r,Q,j)&&(k=zn(16,{to:S,from:Q}),xe(Q,Q,!0,!1)),(k?Promise.resolve(k):O(S,Q)).catch(T=>Lt(T)?Lt(T,2)?T:ye(T):z(T,S,Q)).then(T=>{if(T){if(Lt(T,2))return M(pe({replace:h},A(T.to),{state:typeof T.to=="object"?pe({},ce,T.to.state):ce,force:Ee}),q||S)}else T=C(S,Q,!0,h,ce);return $(S,Q,T),T})}function w(x,q){const j=m(x,q);return j?Promise.reject(j):Promise.resolve()}function U(x){const q=_t.values().next().value;return q&&typeof q.runWithContext=="function"?q.runWithContext(x):x()}function O(x,q){let j;const[Q,ce,Ee]=Fg(x,q);j=ds(Q.reverse(),"beforeRouteLeave",x,q);for(const g of Q)g.leaveGuards.forEach(S=>{j.push(Zt(S,x,q))});const h=w.bind(null,x,q);return j.push(h),tt(j).then(()=>{j=[];for(const g of s.list())j.push(Zt(g,x,q));return j.push(h),tt(j)}).then(()=>{j=ds(ce,"beforeRouteUpdate",x,q);for(const g of ce)g.updateGuards.forEach(S=>{j.push(Zt(S,x,q))});return j.push(h),tt(j)}).then(()=>{j=[];for(const g of Ee)if(g.beforeEnter)if(dt(g.beforeEnter))for(const S of g.beforeEnter)j.push(Zt(S,x,q));else j.push(Zt(g.beforeEnter,x,q));return j.push(h),tt(j)}).then(()=>(x.matched.forEach(g=>g.enterCallbacks={}),j=ds(Ee,"beforeRouteEnter",x,q,U),j.push(h),tt(j))).then(()=>{j=[];for(const g of i.list())j.push(Zt(g,x,q));return j.push(h),tt(j)}).catch(g=>Lt(g,8)?g:Promise.reject(g))}function $(x,q,j){a.list().forEach(Q=>U(()=>Q(x,q,j)))}function C(x,q,j,Q,ce){const Ee=m(x,q);if(Ee)return Ee;const h=q===Vt,g=Ft?history.state:{};j&&(Q||h?o.replace(x.fullPath,pe({scroll:h&&g&&g.scroll},ce)):o.push(x.fullPath,ce)),l.value=x,xe(x,q,j,h),ye()}let D;function Z(){D||(D=o.listen((x,q,j)=>{if(!et.listening)return;const Q=E(x),ce=W(Q);if(ce){M(pe(ce,{replace:!0,force:!0}),Q).catch(Sr);return}u=Q;const Ee=l.value;Ft&&Zm(Pa(Ee.fullPath,j.delta),Ho()),O(Q,Ee).catch(h=>Lt(h,12)?h:Lt(h,2)?(M(pe(A(h.to),{force:!0}),Q).then(g=>{Lt(g,20)&&!j.delta&&j.type===Dr.pop&&o.go(-1,!1)}).catch(Sr),Promise.reject()):(j.delta&&o.go(-j.delta,!1),z(h,Q,Ee))).then(h=>{h=h||C(Q,Ee,!1),h&&(j.delta&&!Lt(h,8)?o.go(-j.delta,!1):j.type===Dr.pop&&Lt(h,20)&&o.go(-1,!1)),$(Q,Ee,h)}).catch(Sr)}))}let ee=ur(),I=ur(),N;function z(x,q,j){ye(x);const Q=I.list();return Q.length?Q.forEach(ce=>ce(x,q,j)):console.error(x),Promise.reject(x)}function le(){return N&&l.value!==Vt?Promise.resolve():new Promise((x,q)=>{ee.add([x,q])})}function ye(x){return N||(N=!x,Z(),ee.list().forEach(([q,j])=>x?j(x):q()),ee.reset()),x}function xe(x,q,j,Q){const{scrollBehavior:ce}=e;if(!Ft||!ce)return Promise.resolve();const Ee=!j&&Qm(Pa(x.fullPath,0))||(Q||!j)&&history.state&&history.state.scroll||null;return Jn().then(()=>ce(x,q,Ee)).then(h=>h&&Xm(h)).catch(h=>z(h,x,q))}const be=x=>o.go(x);let Je;const _t=new Set,et={currentRoute:l,listening:!0,addRoute:p,removeRoute:v,clearRoutes:t.clearRoutes,hasRoute:b,getRoutes:_,resolve:E,options:e,push:y,replace:L,go:be,back:()=>be(-1),forward:()=>be(1),beforeEach:s.add,beforeResolve:i.add,afterEach:a.add,onError:I.add,isReady:le,install(x){const q=this;x.component("RouterLink",Eg),x.component("RouterView",wg),x.config.globalProperties.$router=q,Object.defineProperty(x.config.globalProperties,"$route",{enumerable:!0,get:()=>Qt(l)}),Ft&&!Je&&l.value===Vt&&(Je=!0,y(o.location).catch(ce=>{}));const j={};for(const ce in Vt)Object.defineProperty(j,ce,{get:()=>l.value[ce],enumerable:!0});x.provide($o,q),x.provide(vi,Ou(j)),x.provide(Ds,l);const Q=x.unmount;_t.add(x),x.unmount=function(){_t.delete(x),_t.size<1&&(u=Vt,D&&D(),D=null,l.value=Vt,Je=!1,N=!1),Q()},Ft&&Og(x,q,t)}};function tt(x){return x.reduce((q,j)=>q.then(()=>U(j)),Promise.resolve())}return et}function Fg(e,t){const n=[],r=[],o=[],s=Math.max(t.matched.length,e.matched.length);for(let i=0;ion(u,a))?r.push(a):n.push(a));const l=e.matched[i];l&&(t.matched.find(u=>on(u,l))||o.push(l))}return[n,r,o]}function ln(){return Ge($o)}function Pt(e){return Ge(vi)}var Qc=Symbol(""),Bo=()=>{const e=Ge(Qc);if(!e)throw new Error("useClientData() is called without provider.");return e},Hg=()=>Bo().pageComponent,$g=()=>Bo().pageHead,Bg=()=>Bo().pageLang,Ug=()=>Bo().pageLayout,jg=Symbol(""),Vs=ft(kc),Hn=ft(Pc),Jc=(e,t)=>{const n=wc(e,t);if(Hn.value[n])return n;const r=encodeURI(n);if(Hn.value[r])return r;const o=Vs.value[n]||Vs.value[r];return o||n},ef=(e,t)=>{const{pathname:n,hashAndQueries:r}=Fo(e),o=Jc(n,t),s=o+r;return Hn.value[o]?{...Hn.value[o],path:s,notFound:!1}:{...Hn.value["/404.html"],path:s,notFound:!0}},zg=(e,t)=>{const{pathname:n,hashAndQueries:r}=Fo(e);return Jc(n,t)+r},Kg=e=>{if(!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)&&!e.defaultPrevented&&!(e.button!==void 0&&e.button!==0)){if(e.currentTarget){const t=e.currentTarget.getAttribute("target");if(t!=null&&t.match(/\b_blank\b/i))return}return e.preventDefault(),!0}},Wg=de({name:"RouteLink",props:{to:{type:String,required:!0},active:Boolean,activeClass:{type:String,default:"route-link-active"}},slots:Object,setup(e,{slots:t}){const n=ln(),r=Pt(),o=F(()=>e.to.startsWith("#")||e.to.startsWith("?")?e.to:`/learning-ai/${zg(e.to,r.path).substring(1)}`);return()=>he("a",{class:["route-link",{[e.activeClass]:e.active}],href:o.value,onClick:(s={})=>{Kg(s)&&n.push(e.to).catch()}},t.default())}}),qg=de({name:"ClientOnly",setup(e,t){const n=ge(!1);return Ye(()=>{n.value=!0}),()=>{var r,o;return n.value?(o=(r=t.slots).default)==null?void 0:o.call(r):null}}}),Gg=de({name:"Content",props:{path:{type:String,required:!1,default:""}},setup(e){const t=Hg(),n=F(()=>{if(!e.path)return t.value;const r=ef(e.path);return qu(async()=>r.loader().then(({comp:o})=>o))});return()=>he(n.value)}}),Yg="Layout",Xg="en-US",hn=Zn({resolveLayouts:e=>e.reduce((t,n)=>({...t,...n.layouts}),{}),resolvePageHead:(e,t,n)=>{const r=ct(t.description)?t.description:n.description,o=[...Array.isArray(t.head)?t.head:[],...n.head,["title",{},e],["meta",{name:"description",content:r}]];return Oc(o)},resolvePageHeadTitle:(e,t)=>[e.title,t.title].filter(n=>!!n).join(" | "),resolvePageLang:(e,t)=>e.lang||t.lang||Xg,resolvePageLayout:(e,t)=>{const n=ct(e.frontmatter.layout)?e.frontmatter.layout:Yg;if(!t[n])throw new Error(`[vuepress] Cannot resolve layout: ${n}`);return t[n]},resolveRouteLocale:(e,t)=>Tc(e,decodeURI(t)),resolveSiteLocaleData:({base:e,locales:t,...n},r)=>{var o;return{...n,...t[r],head:[...((o=t[r])==null?void 0:o.head)??[],...n.head]}}}),Zg=e=>Wr(e)?e:`/learning-ai/${hi(e)}`,tf=Symbol(""),Tn=()=>{const e=Ge(tf);if(!e)throw new Error("useClientData() is called without provider.");return e},Qg=()=>Tn().pageComponent,tr=()=>Tn().pageData,At=()=>Tn().pageFrontmatter,qr=()=>Tn().routeLocale,Jg=()=>Tn().routes,nf=()=>Tn().siteData,_i=()=>Tn().siteLocaleData,Ka=ft(kc),Cr=ft(Pc),rf=(e,t)=>{const n=wc(e,t);if(Cr.value[n])return n;const r=encodeURI(n);if(Cr.value[r])return r;const o=Ka.value[n]||Ka.value[r];return o||n},wo=(e,t)=>{const{pathname:n,hashAndQueries:r}=Fo(e),o=rf(n,t),s=o+r;return Cr.value[o]?{...Cr.value[o],path:s,notFound:!1}:{...Cr.value["/404.html"],path:s,notFound:!0}},ev=(e,t)=>{const{pathname:n,hashAndQueries:r}=Fo(e);return rf(n,t)+r},tv=e=>{if(!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)&&!e.defaultPrevented&&!(e.button!==void 0&&e.button!==0)){if(e.currentTarget){const t=e.currentTarget.getAttribute("target");if(t!=null&&t.match(/\b_blank\b/i))return}return e.preventDefault(),!0}},yi=de({name:"RouteLink",props:{to:{type:String,required:!0},active:Boolean,activeClass:{type:String,default:"route-link-active"}},slots:Object,setup(e,{slots:t}){const n=ln(),r=Pt(),o=F(()=>e.to.startsWith("#")||e.to.startsWith("?")?e.to:`/learning-ai/${ev(e.to,r.path).substring(1)}`);return()=>he("a",{class:["route-link",{[e.activeClass]:e.active}],href:o.value,onClick:(s={})=>{tv(s)&&n.push(e.to).catch()}},t.default())}}),nr=de({name:"AutoLink",props:{config:{type:Object,required:!0}},slots:Object,setup(e,{slots:t}){const n=sp(e,"config"),r=Pt(),o=nf(),s=F(()=>Kr(n.value.link)),i=F(()=>n.value.target||(s.value?"_blank":void 0)),a=F(()=>i.value==="_blank"),l=F(()=>!s.value&&!a.value),u=F(()=>n.value.rel||(a.value?"noopener noreferrer":null)),c=F(()=>n.value.ariaLabel??n.value.text),f=F(()=>{if(n.value.exact)return!1;const p=Object.keys(o.value.locales);return p.length?p.every(v=>v!==n.value.link):n.value.link!=="/"}),d=F(()=>l.value?n.value.activeMatch?(n.value.activeMatch instanceof RegExp?n.value.activeMatch:new RegExp(n.value.activeMatch,"u")).test(r.path):f.value?r.path.startsWith(n.value.link):r.path===n.value.link:!1);return()=>{const{before:p,after:v,default:_}=t,b=(_==null?void 0:_(n.value))??[p==null?void 0:p(n.value),n.value.text,v==null?void 0:v(n.value)];return l.value?he(yi,{class:"auto-link",to:n.value.link,active:d.value,"aria-label":c.value},()=>b):he("a",{class:"auto-link external-link",href:n.value.link,"aria-label":c.value,rel:u.value,target:i.value},b)}}}),of=de({name:"ClientOnly",setup(e,t){const n=ge(!1);return Ye(()=>{n.value=!0}),()=>{var r,o;return n.value?(o=(r=t.slots).default)==null?void 0:o.call(r):null}}}),sf=de({name:"Content",props:{path:{type:String,required:!1,default:""}},setup(e){const t=Qg(),n=F(()=>{if(!e.path)return t.value;const r=wo(e.path);return qu(async()=>r.loader().then(({comp:o})=>o))});return()=>he(n.value)}}),nv="Layout",rv="en-US";Zn({resolveLayouts:e=>e.reduce((t,n)=>({...t,...n.layouts}),{}),resolvePageHead:(e,t,n)=>{const r=ct(t.description)?t.description:n.description,o=[...Array.isArray(t.head)?t.head:[],...n.head,["title",{},e],["meta",{name:"description",content:r}]];return Oc(o)},resolvePageHeadTitle:(e,t)=>[e.title,t.title].filter(n=>!!n).join(" | "),resolvePageLang:(e,t)=>e.lang||t.lang||rv,resolvePageLayout:(e,t)=>{const n=ct(e.frontmatter.layout)?e.frontmatter.layout:nv;if(!t[n])throw new Error(`[vuepress] Cannot resolve layout: ${n}`);return t[n]},resolveRouteLocale:(e,t)=>Tc(e,decodeURI(t)),resolveSiteLocaleData:({base:e,locales:t,...n},r)=>{var o;return{...n,...t[r],head:[...((o=t[r])==null?void 0:o.head)??[],...n.head]}}});var un=(e={})=>e,af=e=>Wr(e)?e:`/learning-ai/${hi(e)}`;function Uo(e){return du()?(Rd(e),!0):!1}function St(e){return typeof e=="function"?e():Qt(e)}const bi=typeof window<"u"&&typeof document<"u";typeof WorkerGlobalScope<"u"&&globalThis instanceof WorkerGlobalScope;const ov=Object.prototype.toString,sv=e=>ov.call(e)==="[object Object]",Ms=()=>{};function lf(e,t){function n(...r){return new Promise((o,s)=>{Promise.resolve(e(()=>t.apply(this,r),{fn:t,thisArg:this,args:r})).then(o).catch(s)})}return n}const uf=e=>e();function iv(e,t={}){let n,r,o=Ms;const s=a=>{clearTimeout(a),o(),o=Ms};return a=>{const l=St(e),u=St(t.maxWait);return n&&s(n),l<=0||u!==void 0&&u<=0?(r&&(s(r),r=null),Promise.resolve(a())):new Promise((c,f)=>{o=t.rejectOnCancel?f:c,u&&!r&&(r=setTimeout(()=>{n&&s(n),r=null,c(a())},u)),n=setTimeout(()=>{r&&s(r),r=null,c(a())},l)})}}function av(e=uf){const t=ge(!0);function n(){t.value=!1}function r(){t.value=!0}const o=(...s)=>{t.value&&e(...s)};return{isActive:Ro(t),pause:n,resume:r,eventFilter:o}}function lv(e){let t;function n(){return t||(t=e()),t}return n.reset=async()=>{const r=t;t=void 0,r&&await r},n}function uv(e){return er()}function cv(e,t=200,n={}){return lf(iv(t,n),e)}function fv(e,t,n={}){const{eventFilter:r=uf,...o}=n;return Ue(e,lf(r,t),o)}function dv(e,t,n={}){const{eventFilter:r,...o}=n,{eventFilter:s,pause:i,resume:a,isActive:l}=av(r);return{stop:fv(e,t,{...o,eventFilter:s}),pause:i,resume:a,isActive:l}}function Ei(e,t=!0,n){uv()?Ye(e,n):t?e():Jn(e)}function pv(e,t,n={}){const{immediate:r=!0}=n,o=ge(!1);let s=null;function i(){s&&(clearTimeout(s),s=null)}function a(){o.value=!1,i()}function l(...u){i(),o.value=!0,s=setTimeout(()=>{o.value=!1,s=null,e(...u)},St(t))}return r&&(o.value=!0,bi&&l()),Uo(a),{isPending:Ro(o),start:l,stop:a}}function cf(e=!1,t={}){const{truthyValue:n=!0,falsyValue:r=!1}=t,o=De(e),s=ge(e);function i(a){if(arguments.length)return s.value=a,s.value;{const l=St(n);return s.value=s.value===l?St(r):l,s.value}}return o?i:[s,i]}const sn=bi?window:void 0,ff=bi?window.navigator:void 0;function yn(e){var t;const n=St(e);return(t=n==null?void 0:n.$el)!=null?t:n}function pt(...e){let t,n,r,o;if(typeof e[0]=="string"||Array.isArray(e[0])?([n,r,o]=e,t=sn):[t,n,r,o]=e,!t)return Ms;Array.isArray(n)||(n=[n]),Array.isArray(r)||(r=[r]);const s=[],i=()=>{s.forEach(c=>c()),s.length=0},a=(c,f,d,p)=>(c.addEventListener(f,d,p),()=>c.removeEventListener(f,d,p)),l=Ue(()=>[yn(t),St(o)],([c,f])=>{if(i(),!c)return;const d=sv(f)?{...f}:f;s.push(...n.flatMap(p=>r.map(v=>a(c,p,v,d))))},{immediate:!0,flush:"post"}),u=()=>{l(),i()};return Uo(u),u}function hv(){const e=ge(!1),t=er();return t&&Ye(()=>{e.value=!0},t),e}function jo(e){const t=hv();return F(()=>(t.value,!!e()))}function Si(e,t={}){const{window:n=sn}=t,r=jo(()=>n&&"matchMedia"in n&&typeof n.matchMedia=="function");let o;const s=ge(!1),i=u=>{s.value=u.matches},a=()=>{o&&("removeEventListener"in o?o.removeEventListener("change",i):o.removeListener(i))},l=cc(()=>{r.value&&(a(),o=n.matchMedia(St(e)),"addEventListener"in o?o.addEventListener("change",i):o.addListener(i),s.value=o.matches)});return Uo(()=>{l(),a(),o=void 0}),s}function Wa(e,t={}){const{controls:n=!1,navigator:r=ff}=t,o=jo(()=>r&&"permissions"in r),s=ft(),i=typeof e=="string"?{name:e}:e,a=ft(),l=()=>{var c,f;a.value=(f=(c=s.value)==null?void 0:c.state)!=null?f:"prompt"};pt(s,"change",l);const u=lv(async()=>{if(o.value){if(!s.value)try{s.value=await r.permissions.query(i)}catch{s.value=void 0}finally{l()}if(n)return ue(s.value)}});return u(),n?{state:a,isSupported:o,query:u}:a}function mv(e={}){const{navigator:t=ff,read:n=!1,source:r,copiedDuring:o=1500,legacy:s=!1}=e,i=jo(()=>t&&"clipboard"in t),a=Wa("clipboard-read"),l=Wa("clipboard-write"),u=F(()=>i.value||s),c=ge(""),f=ge(!1),d=pv(()=>f.value=!1,o);function p(){i.value&&E(a.value)?t.clipboard.readText().then(A=>{c.value=A}):c.value=b()}u.value&&n&&pt(["copy","cut"],p);async function v(A=St(r)){u.value&&A!=null&&(i.value&&E(l.value)?await t.clipboard.writeText(A):_(A),c.value=A,f.value=!0,d.start())}function _(A){const m=document.createElement("textarea");m.value=A??"",m.style.position="absolute",m.style.opacity="0",document.body.appendChild(m),m.select(),document.execCommand("copy"),m.remove()}function b(){var A,m,y;return(y=(m=(A=document==null?void 0:document.getSelection)==null?void 0:A.call(document))==null?void 0:m.toString())!=null?y:""}function E(A){return A==="granted"||A==="prompt"}return{isSupported:u,text:c,copied:f,copy:v}}const to=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{},no="__vueuse_ssr_handlers__",gv=vv();function vv(){return no in to||(to[no]=to[no]||{}),to[no]}function _v(e,t){return gv[e]||t}function yv(e){return Si("(prefers-color-scheme: dark)",e)}function bv(e){return e==null?"any":e instanceof Set?"set":e instanceof Map?"map":e instanceof Date?"date":typeof e=="boolean"?"boolean":typeof e=="string"?"string":typeof e=="object"?"object":Number.isNaN(e)?"any":"number"}const Ev={boolean:{read:e=>e==="true",write:e=>String(e)},object:{read:e=>JSON.parse(e),write:e=>JSON.stringify(e)},number:{read:e=>Number.parseFloat(e),write:e=>String(e)},any:{read:e=>e,write:e=>String(e)},string:{read:e=>e,write:e=>String(e)},map:{read:e=>new Map(JSON.parse(e)),write:e=>JSON.stringify(Array.from(e.entries()))},set:{read:e=>new Set(JSON.parse(e)),write:e=>JSON.stringify(Array.from(e))},date:{read:e=>new Date(e),write:e=>e.toISOString()}},qa="vueuse-storage";function Ai(e,t,n,r={}){var o;const{flush:s="pre",deep:i=!0,listenToStorageChanges:a=!0,writeDefaults:l=!0,mergeDefaults:u=!1,shallow:c,window:f=sn,eventFilter:d,onError:p=O=>{console.error(O)},initOnMounted:v}=r,_=(c?ft:ge)(typeof t=="function"?t():t);if(!n)try{n=_v("getDefaultStorage",()=>{var O;return(O=sn)==null?void 0:O.localStorage})()}catch(O){p(O)}if(!n)return _;const b=St(t),E=bv(b),A=(o=r.serializer)!=null?o:Ev[E],{pause:m,resume:y}=dv(_,()=>W(_.value),{flush:s,deep:i,eventFilter:d});f&&a&&Ei(()=>{n instanceof Storage?pt(f,"storage",w):pt(f,qa,U),v&&w()}),v||w();function L(O,$){if(f){const C={key:e,oldValue:O,newValue:$,storageArea:n};f.dispatchEvent(n instanceof Storage?new StorageEvent("storage",C):new CustomEvent(qa,{detail:C}))}}function W(O){try{const $=n.getItem(e);if(O==null)L($,null),n.removeItem(e);else{const C=A.write(O);$!==C&&(n.setItem(e,C),L($,C))}}catch($){p($)}}function M(O){const $=O?O.newValue:n.getItem(e);if($==null)return l&&b!=null&&n.setItem(e,A.write(b)),b;if(!O&&u){const C=A.read($);return typeof u=="function"?u(C,b):E==="object"&&!Array.isArray(C)?{...b,...C}:C}else return typeof $!="string"?$:A.read($)}function w(O){if(!(O&&O.storageArea!==n)){if(O&&O.key==null){_.value=b;return}if(!(O&&O.key!==e)){m();try{(O==null?void 0:O.newValue)!==A.write(_.value)&&(_.value=M(O))}catch($){p($)}finally{O?Jn(y):y()}}}}function U(O){w(O.detail)}return _}function Sv(e,t,n={}){const{window:r=sn,...o}=n;let s;const i=jo(()=>r&&"ResizeObserver"in r),a=()=>{s&&(s.disconnect(),s=void 0)},l=F(()=>{const f=St(e);return Array.isArray(f)?f.map(d=>yn(d)):[yn(f)]}),u=Ue(l,f=>{if(a(),i.value&&r){s=new ResizeObserver(t);for(const d of f)d&&s.observe(d,o)}},{immediate:!0,flush:"post"}),c=()=>{a(),u()};return Uo(c),{isSupported:i,stop:c}}function Av(e,t={width:0,height:0},n={}){const{window:r=sn,box:o="content-box"}=n,s=F(()=>{var f,d;return(d=(f=yn(e))==null?void 0:f.namespaceURI)==null?void 0:d.includes("svg")}),i=ge(t.width),a=ge(t.height),{stop:l}=Sv(e,([f])=>{const d=o==="border-box"?f.borderBoxSize:o==="content-box"?f.contentBoxSize:f.devicePixelContentBoxSize;if(r&&s.value){const p=yn(e);if(p){const v=p.getBoundingClientRect();i.value=v.width,a.value=v.height}}else if(d){const p=Array.isArray(d)?d:[d];i.value=p.reduce((v,{inlineSize:_})=>v+_,0),a.value=p.reduce((v,{blockSize:_})=>v+_,0)}else i.value=f.contentRect.width,a.value=f.contentRect.height},n);Ei(()=>{const f=yn(e);f&&(i.value="offsetWidth"in f?f.offsetWidth:t.width,a.value="offsetHeight"in f?f.offsetHeight:t.height)});const u=Ue(()=>yn(e),f=>{i.value=f?t.width:0,a.value=f?t.height:0});function c(){l(),u()}return{width:i,height:a,stop:c}}function Cv(e={}){const{window:t=sn,behavior:n="auto"}=e;if(!t)return{x:ge(0),y:ge(0)};const r=ge(t.scrollX),o=ge(t.scrollY),s=F({get(){return r.value},set(a){scrollTo({left:a,behavior:n})}}),i=F({get(){return o.value},set(a){scrollTo({top:a,behavior:n})}});return pt(t,"scroll",()=>{r.value=t.scrollX,o.value=t.scrollY},{capture:!1,passive:!0}),{x:s,y:i}}function wv(e={}){const{window:t=sn,initialWidth:n=Number.POSITIVE_INFINITY,initialHeight:r=Number.POSITIVE_INFINITY,listenOrientation:o=!0,includeScrollbar:s=!0,type:i="inner"}=e,a=ge(n),l=ge(r),u=()=>{t&&(i==="outer"?(a.value=t.outerWidth,l.value=t.outerHeight):s?(a.value=t.innerWidth,l.value=t.innerHeight):(a.value=t.document.documentElement.clientWidth,l.value=t.document.documentElement.clientHeight))};if(u(),Ei(u),pt("resize",u,{passive:!0}),o){const c=Si("(orientation: portrait)");Ue(c,()=>u())}return{width:a,height:l}}const Ga=async(e,t)=>{const{path:n,query:r}=e.currentRoute.value,{scrollBehavior:o}=e.options;e.options.scrollBehavior=void 0,await e.replace({path:n,query:r,hash:t}),e.options.scrollBehavior=o},Tv=({headerLinkSelector:e,headerAnchorSelector:t,delay:n,offset:r=5})=>{const o=ln();pt("scroll",cv(()=>{var v,_;const i=Math.max(window.scrollY,document.documentElement.scrollTop,document.body.scrollTop);if(Math.abs(i-0)f.some(E=>E.hash===b.hash));for(let b=0;b=(((v=E.parentElement)==null?void 0:v.offsetTop)??0)-r,y=!A||i<(((_=A.parentElement)==null?void 0:_.offsetTop)??0)-r;if(!(m&&y))continue;const W=decodeURIComponent(o.currentRoute.value.hash),M=decodeURIComponent(E.hash);if(W===M)return;if(c){for(let w=b+1;w{if(t===!1)return[];const[n,r]=typeof t=="number"?[t,t]:t==="deep"?[2,6]:t,o=e.filter(i=>i.level>=n&&i.level<=r),s=[];e:for(let i=0;i=0;l--){const u=o[l];if(u.level{let n;if(t.length){const r=e.cloneNode(!0);r.querySelectorAll(t.join(",")).forEach(o=>{o.remove()}),n=r.textContent||""}else n=e.textContent||"";return n.trim()},Nv=({selector:e=[...new Array(6)].map((r,o)=>`[vp-content] h${o+1}`).join(","),levels:t=2,ignore:n=[]}={})=>{const r=Array.from(document.querySelectorAll(e)).filter(o=>o.id&&o.hasChildNodes()).map(o=>{const s=Number(o.tagName[1]);return{element:o,title:Dv(o,n),link:`#${o.id}`,slug:o.id,level:s}});return Lv(r,t)},df=(e,t)=>{var r;const n=(r=er())==null?void 0:r.appContext.components;return n?e in n||rt(e)in n||Br(rt(e))in n:!1},pf=e=>new Promise(t=>{setTimeout(t,e)}),hf=e=>{const t=qr();return F(()=>e[t.value]??{})},Vv=()=>{const e=Jg();return F(()=>Object.keys(e.value))},Mv=e=>typeof e<"u",mf=(e,t)=>ct(e)&&e.startsWith(t),{keys:Fv}=Object,gf=e=>mf(e,"/");var Hv={"/":{backToTop:"Back to top"}};const $v=de({name:"BackToTop",setup(){const e=At(),t=hf(Hv),n=ft(),{height:r}=Av(n),{height:o}=wv(),{y:s}=Cv(),i=F(()=>e.value.backToTop!==!1&&s.value>100),a=F(()=>s.value/(r.value-o.value)*100);return Ye(()=>{n.value=document.body}),()=>he(pi,{name:"back-to-top"},()=>i.value?he("button",{type:"button",class:"vp-back-to-top-button","aria-label":t.value.backToTop,onClick:()=>{window.scrollTo({top:0,behavior:"smooth"})}},[he("span",{class:"vp-scroll-progress",role:"progressbar","aria-labelledby":"loadinglabel","aria-valuenow":a.value},he("svg",he("circle",{cx:"26",cy:"26",r:"24",fill:"none",stroke:"currentColor","stroke-width":"4","stroke-dasharray":`${Math.PI*a.value*.48} ${Math.PI*(100-a.value)*.48}`}))),he("div",{class:"back-to-top-icon"})]):null)}}),Bv=un({rootComponents:[$v]}),Uv=Object.freeze(Object.defineProperty({__proto__:null,default:Bv},Symbol.toStringTag,{value:"Module"})),jv=/language-(shellscript|shell|bash|sh|zsh)/,zv=({delay:e=500,duration:t=2e3,locales:n,selector:r,showInMobile:o,ignoreSelector:s=[],transform:i})=>{const a=Si("(max-width: 419px)"),l=F(()=>!a.value||o),u=hf(n),c=tr(),f=b=>{var A;if(b.hasAttribute("copy-code"))return;const E=document.createElement("button");E.type="button",E.classList.add("vp-copy-code-button"),E.setAttribute("aria-label",u.value.copy),E.setAttribute("data-copied",u.value.copied),(A=b.parentElement)==null||A.insertBefore(E,b),b.setAttribute("copy-code","")};Ue(()=>[c.value.path,l.value],async()=>{document.body.classList.toggle("no-copy-code",!l.value),l.value&&(await Jn(),await pf(e),document.querySelectorAll(r.join(",")).forEach(f))},{immediate:!0});const{copy:p}=mv({legacy:!0}),v=new WeakMap,_=async(b,E,A)=>{const m=E.cloneNode(!0);s.length&&m.querySelectorAll(s.join(",")).forEach(W=>{W.remove()}),i&&i(m);let y=m.textContent||"";if(jv.test(b.className)&&(y=y.replace(/^ *(\$|>) /gm,"")),await p(y),t<=0)return;A.classList.add("copied"),clearTimeout(v.get(A));const L=setTimeout(()=>{A.classList.remove("copied"),A.blur(),v.delete(A)},t);v.set(A,L)};pt("click",b=>{const E=b.target;if(l.value&&E.matches('div[class*="language-"] > button.vp-copy-code-button')){const A=E.parentElement,m=E.nextElementSibling;if(!A||!m)return;_(A,m,E)}})};var Kv=[],Wv={"/":{copy:"Copy code",copied:"Copied"}},qv=['[vp-content] div[class*="language-"] pre'];const Gv=un({setup:()=>{zv({selector:qv,ignoreSelector:Kv,locales:Wv,duration:2e3,delay:500,showInMobile:!1})}}),Yv=Object.freeze(Object.defineProperty({__proto__:null,default:Gv},Symbol.toStringTag,{value:"Module"})),Xv=un({setup(){pt("beforeprint",()=>{document.querySelectorAll("details").forEach(e=>{e.open=!0})})}}),Zv=Object.freeze(Object.defineProperty({__proto__:null,default:Xv},Symbol.toStringTag,{value:"Module"}));/*! medium-zoom 1.1.0 | MIT License | https://github.com/francoischalifour/medium-zoom */var gn=Object.assign||function(e){for(var t=1;t1&&arguments[1]!==void 0?arguments[1]:{},r=window.Promise||function(C){function D(){}C(D,D)},o=function(C){var D=C.target;if(D===U){v();return}m.indexOf(D)!==-1&&_({target:D})},s=function(){if(!(L||!w.original)){var C=window.pageYOffset||document.documentElement.scrollTop||document.body.scrollTop||0;Math.abs(W-C)>M.scrollOffset&&setTimeout(v,150)}},i=function(C){var D=C.key||C.keyCode;(D==="Escape"||D==="Esc"||D===27)&&v()},a=function(){var C=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},D=C;if(C.background&&(U.style.background=C.background),C.container&&C.container instanceof Object&&(D.container=gn({},M.container,C.container)),C.template){var Z=co(C.template)?C.template:document.querySelector(C.template);D.template=Z}return M=gn({},M,D),m.forEach(function(ee){ee.dispatchEvent(kn("medium-zoom:update",{detail:{zoom:O}}))}),O},l=function(){var C=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};return e(gn({},M,C))},u=function(){for(var C=arguments.length,D=Array(C),Z=0;Z0?D.reduce(function(I,N){return[].concat(I,Xa(N))},[]):m;return ee.forEach(function(I){I.classList.remove("medium-zoom-image"),I.dispatchEvent(kn("medium-zoom:detach",{detail:{zoom:O}}))}),m=m.filter(function(I){return ee.indexOf(I)===-1}),O},f=function(C,D){var Z=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};return m.forEach(function(ee){ee.addEventListener("medium-zoom:"+C,D,Z)}),y.push({type:"medium-zoom:"+C,listener:D,options:Z}),O},d=function(C,D){var Z=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};return m.forEach(function(ee){ee.removeEventListener("medium-zoom:"+C,D,Z)}),y=y.filter(function(ee){return!(ee.type==="medium-zoom:"+C&&ee.listener.toString()===D.toString())}),O},p=function(){var C=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},D=C.target,Z=function(){var I={width:document.documentElement.clientWidth,height:document.documentElement.clientHeight,left:0,top:0,right:0,bottom:0},N=void 0,z=void 0;if(M.container)if(M.container instanceof Object)I=gn({},I,M.container),N=I.width-I.left-I.right-M.margin*2,z=I.height-I.top-I.bottom-M.margin*2;else{var le=co(M.container)?M.container:document.querySelector(M.container),ye=le.getBoundingClientRect(),xe=ye.width,be=ye.height,Je=ye.left,_t=ye.top;I=gn({},I,{width:xe,height:be,left:Je,top:_t})}N=N||I.width-M.margin*2,z=z||I.height-M.margin*2;var et=w.zoomedHd||w.original,tt=Ya(et)?N:et.naturalWidth||N,x=Ya(et)?z:et.naturalHeight||z,q=et.getBoundingClientRect(),j=q.top,Q=q.left,ce=q.width,Ee=q.height,h=Math.min(Math.max(ce,tt),N)/ce,g=Math.min(Math.max(Ee,x),z)/Ee,S=Math.min(h,g),k=(-Q+(N-ce)/2+M.margin+I.left)/S,T=(-j+(z-Ee)/2+M.margin+I.top)/S,R="scale("+S+") translate3d("+k+"px, "+T+"px, 0)";w.zoomed.style.transform=R,w.zoomedHd&&(w.zoomedHd.style.transform=R)};return new r(function(ee){if(D&&m.indexOf(D)===-1){ee(O);return}var I=function xe(){L=!1,w.zoomed.removeEventListener("transitionend",xe),w.original.dispatchEvent(kn("medium-zoom:opened",{detail:{zoom:O}})),ee(O)};if(w.zoomed){ee(O);return}if(D)w.original=D;else if(m.length>0){var N=m;w.original=N[0]}else{ee(O);return}if(w.original.dispatchEvent(kn("medium-zoom:open",{detail:{zoom:O}})),W=window.pageYOffset||document.documentElement.scrollTop||document.body.scrollTop||0,L=!0,w.zoomed=e_(w.original),document.body.appendChild(U),M.template){var z=co(M.template)?M.template:document.querySelector(M.template);w.template=document.createElement("div"),w.template.appendChild(z.content.cloneNode(!0)),document.body.appendChild(w.template)}if(w.original.parentElement&&w.original.parentElement.tagName==="PICTURE"&&w.original.currentSrc&&(w.zoomed.src=w.original.currentSrc),document.body.appendChild(w.zoomed),window.requestAnimationFrame(function(){document.body.classList.add("medium-zoom--opened")}),w.original.classList.add("medium-zoom-image--hidden"),w.zoomed.classList.add("medium-zoom-image--opened"),w.zoomed.addEventListener("click",v),w.zoomed.addEventListener("transitionend",I),w.original.getAttribute("data-zoom-src")){w.zoomedHd=w.zoomed.cloneNode(),w.zoomedHd.removeAttribute("srcset"),w.zoomedHd.removeAttribute("sizes"),w.zoomedHd.removeAttribute("loading"),w.zoomedHd.src=w.zoomed.getAttribute("data-zoom-src"),w.zoomedHd.onerror=function(){clearInterval(le),console.warn("Unable to reach the zoom image target "+w.zoomedHd.src),w.zoomedHd=null,Z()};var le=setInterval(function(){w.zoomedHd.complete&&(clearInterval(le),w.zoomedHd.classList.add("medium-zoom-image--opened"),w.zoomedHd.addEventListener("click",v),document.body.appendChild(w.zoomedHd),Z())},10)}else if(w.original.hasAttribute("srcset")){w.zoomedHd=w.zoomed.cloneNode(),w.zoomedHd.removeAttribute("sizes"),w.zoomedHd.removeAttribute("loading");var ye=w.zoomedHd.addEventListener("load",function(){w.zoomedHd.removeEventListener("load",ye),w.zoomedHd.classList.add("medium-zoom-image--opened"),w.zoomedHd.addEventListener("click",v),document.body.appendChild(w.zoomedHd),Z()})}else Z()})},v=function(){return new r(function(C){if(L||!w.original){C(O);return}var D=function Z(){w.original.classList.remove("medium-zoom-image--hidden"),document.body.removeChild(w.zoomed),w.zoomedHd&&document.body.removeChild(w.zoomedHd),document.body.removeChild(U),w.zoomed.classList.remove("medium-zoom-image--opened"),w.template&&document.body.removeChild(w.template),L=!1,w.zoomed.removeEventListener("transitionend",Z),w.original.dispatchEvent(kn("medium-zoom:closed",{detail:{zoom:O}})),w.original=null,w.zoomed=null,w.zoomedHd=null,w.template=null,C(O)};L=!0,document.body.classList.remove("medium-zoom--opened"),w.zoomed.style.transform="",w.zoomedHd&&(w.zoomedHd.style.transform=""),w.template&&(w.template.style.transition="opacity 150ms",w.template.style.opacity=0),w.original.dispatchEvent(kn("medium-zoom:close",{detail:{zoom:O}})),w.zoomed.addEventListener("transitionend",D)})},_=function(){var C=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},D=C.target;return w.original?v():p({target:D})},b=function(){return M},E=function(){return m},A=function(){return w.original},m=[],y=[],L=!1,W=0,M=n,w={original:null,zoomed:null,zoomedHd:null,template:null};Object.prototype.toString.call(t)==="[object Object]"?M=t:(t||typeof t=="string")&&u(t),M=gn({margin:0,background:"#fff",scrollOffset:40,container:null,template:null},M);var U=Jv(M.background);document.addEventListener("click",o),document.addEventListener("keyup",i),document.addEventListener("scroll",s),window.addEventListener("resize",v);var O={open:p,close:v,toggle:_,update:a,clone:l,attach:u,detach:c,on:f,off:d,getOptions:b,getImages:E,getZoomedImage:A};return O};function n_(e,t){t===void 0&&(t={});var n=t.insertAt;if(!(typeof document>"u")){var r=document.head||document.getElementsByTagName("head")[0],o=document.createElement("style");o.type="text/css",n==="top"&&r.firstChild?r.insertBefore(o,r.firstChild):r.appendChild(o),o.styleSheet?o.styleSheet.cssText=e:o.appendChild(document.createTextNode(e))}}var r_=".medium-zoom-overlay{position:fixed;top:0;right:0;bottom:0;left:0;opacity:0;transition:opacity .3s;will-change:opacity}.medium-zoom--opened .medium-zoom-overlay{cursor:pointer;cursor:zoom-out;opacity:1}.medium-zoom-image{cursor:pointer;cursor:zoom-in;transition:transform .3s cubic-bezier(.2,0,.2,1)!important}.medium-zoom-image--hidden{visibility:hidden}.medium-zoom-image--opened{position:relative;cursor:pointer;cursor:zoom-out;will-change:transform}";n_(r_);const o_=Symbol("mediumZoom");var s_={};const i_="[vp-content] > img, [vp-content] :not(a) > img",a_=s_,l_=300,u_=un({enhance({app:e,router:t}){const n=t_(a_);n.refresh=(r=i_)=>{n.detach(),n.attach(r)},e.provide(o_,n),t.afterEach(()=>{pf(l_).then(()=>{n.refresh()})})}}),c_=Object.freeze(Object.defineProperty({__proto__:null,default:u_},Symbol.toStringTag,{value:"Module"}));/** + * NProgress, (c) 2013, 2014 Rico Sta. Cruz - http://ricostacruz.com/nprogress + * @license MIT + */const Za=(e,t)=>{e.classList.add(t)},Qa=(e,t)=>{e.classList.remove(t)},f_=e=>{var t;(t=e==null?void 0:e.parentNode)==null||t.removeChild(e)},ps=(e,t,n)=>en?n:e,Ja=e=>(-1+e)*100,d_=(()=>{const e=[],t=()=>{const n=e.shift();n&&n(t)};return n=>{e.push(n),e.length===1&&t()}})(),p_=e=>e.replace(/^-ms-/,"ms-").replace(/-([\da-z])/gi,(t,n)=>n.toUpperCase()),oo=(()=>{const e=["Webkit","O","Moz","ms"],t={},n=s=>{const{style:i}=document.body;if(s in i)return s;const a=s.charAt(0).toUpperCase()+s.slice(1);let l=e.length;for(;l--;){const u=`${e[l]}${a}`;if(u in i)return u}return s},r=s=>{const i=p_(s);return t[i]??(t[i]=n(i))},o=(s,i,a)=>{s.style[r(i)]=a};return(s,i)=>{for(const a in i){const l=i[a];Object.hasOwn(i,a)&&Mv(l)&&o(s,a,l)}}})(),Dt={minimum:.08,easing:"ease",speed:200,trickle:!0,trickleRate:.02,trickleSpeed:800,barSelector:'[role="bar"]',parent:"body",template:'
'},Pe={percent:null,isRendered:()=>!!document.getElementById("nprogress"),set:e=>{const{speed:t,easing:n}=Dt,r=Pe.isStarted(),o=ps(e,Dt.minimum,1);Pe.percent=o===1?null:o;const s=Pe.render(!r),i=s.querySelector(Dt.barSelector);return s.offsetWidth,d_(a=>{oo(i,{transform:`translate3d(${Ja(o)}%,0,0)`,transition:`all ${t}ms ${n}`}),o===1?(oo(s,{transition:"none",opacity:"1"}),s.offsetWidth,setTimeout(()=>{oo(s,{transition:`all ${t}ms linear`,opacity:"0"}),setTimeout(()=>{Pe.remove(),a()},t)},t)):setTimeout(()=>{a()},t)}),Pe},isStarted:()=>typeof Pe.percent=="number",start:()=>{Pe.percent||Pe.set(0);const e=()=>{setTimeout(()=>{Pe.percent&&(Pe.trickle(),e())},Dt.trickleSpeed)};return e(),Pe},done:e=>!e&&!Pe.percent?Pe:Pe.increase(.3+.5*Math.random()).set(1),increase:e=>{let{percent:t}=Pe;return t?(t=ps(t+(typeof e=="number"?e:(1-t)*ps(Math.random()*t,.1,.95)),0,.994),Pe.set(t)):Pe.start()},trickle:()=>Pe.increase(Math.random()*Dt.trickleRate),render:e=>{if(Pe.isRendered())return document.getElementById("nprogress");Za(document.documentElement,"nprogress-busy");const t=document.createElement("div");t.id="nprogress",t.innerHTML=Dt.template;const n=t.querySelector(Dt.barSelector),r=document.querySelector(Dt.parent),o=e?"-100":Ja(Pe.percent??0);return oo(n,{transition:"all 0 linear",transform:`translate3d(${o}%,0,0)`}),r&&(r!==document.body&&Za(r,"nprogress-custom-parent"),r.appendChild(t)),t},remove:()=>{Qa(document.documentElement,"nprogress-busy"),Qa(document.querySelector(Dt.parent),"nprogress-custom-parent"),f_(document.getElementById("nprogress"))}},h_=()=>{Ye(()=>{const e=ln(),t=new Set;t.add(e.currentRoute.value.path),e.beforeEach(n=>{t.has(n.path)||Pe.start()}),e.afterEach(n=>{t.add(n.path),Pe.done()})})},m_=un({setup(){h_()}}),g_=Object.freeze(Object.defineProperty({__proto__:null,default:m_},Symbol.toStringTag,{value:"Module"})),v_=({selector:e='div[class*="language-"].has-collapsed-lines > .collapsed-lines'}={})=>{pt("click",t=>{const n=t.target;if(n.matches(e)){const r=n.parentElement;r!=null&&r.classList.toggle("collapsed")&&r.scrollIntoView({block:"center",behavior:"instant"})}})},__={setup(){v_()}},y_=Object.freeze(Object.defineProperty({__proto__:null,default:__},Symbol.toStringTag,{value:"Module"})),b_="VUEPRESS_CODE_TAB_STORE",so=Ai(b_,{}),E_=de({name:"CodeTabs",props:{active:{type:Number,default:0},data:{type:Array,required:!0},id:{type:String,required:!0},tabId:{type:String,default:""}},slots:Object,setup(e,{slots:t}){const n=ge(e.active),r=ft([]),o=()=>{e.tabId&&(so.value[e.tabId]=e.data[n.value].id)},s=(u=n.value)=>{n.value=u{n.value=u>0?u-1:r.value.length-1,r.value[n.value].focus()},a=(u,c)=>{u.key===" "||u.key==="Enter"?(u.preventDefault(),n.value=c):u.key==="ArrowRight"?(u.preventDefault(),s()):u.key==="ArrowLeft"&&(u.preventDefault(),i()),e.tabId&&(so.value[e.tabId]=e.data[n.value].id)},l=()=>{if(e.tabId){const u=e.data.findIndex(({id:c})=>so.value[e.tabId]===c);if(u!==-1)return u}return e.active};return Ye(()=>{n.value=l(),Ue(()=>so.value[e.tabId],(u,c)=>{if(e.tabId&&u!==c){const f=e.data.findIndex(({id:d})=>d===u);f!==-1&&(n.value=f)}})}),()=>e.data.length?he("div",{class:"vp-code-tabs"},[he("div",{class:"vp-code-tabs-nav",role:"tablist"},e.data.map(({id:u},c)=>{const f=c===n.value;return he("button",{type:"button",ref:d=>{d&&(r.value[c]=d)},class:["vp-code-tab-nav",{active:f}],role:"tab","aria-controls":`codetab-${e.id}-${c}`,"aria-selected":f,onClick:()=>{n.value=c,o()},onKeydown:d=>{a(d,c)}},t[`title${c}`]({value:u,isActive:f}))})),e.data.map(({id:u},c)=>{const f=c===n.value;return he("div",{class:["vp-code-tab",{active:f}],id:`codetab-${e.id}-${c}`,role:"tabpanel","aria-expanded":f},[he("div",{class:"vp-code-tab-title"},t[`title${c}`]({value:u,isActive:f})),t[`tab${c}`]({value:u,isActive:f})])})]):null}}),S_="VUEPRESS_TAB_STORE",hs=Ai(S_,{}),A_=de({name:"Tabs",props:{active:{type:Number,default:0},data:{type:Array,required:!0},id:{type:String,required:!0},tabId:{type:String,default:""}},slots:Object,setup(e,{slots:t}){const n=ge(e.active),r=ft([]),o=()=>{e.tabId&&(hs.value[e.tabId]=e.data[n.value].id)},s=(u=n.value)=>{n.value=u{n.value=u>0?u-1:r.value.length-1,r.value[n.value].focus()},a=(u,c)=>{u.key===" "||u.key==="Enter"?(u.preventDefault(),n.value=c):u.key==="ArrowRight"?(u.preventDefault(),s()):u.key==="ArrowLeft"&&(u.preventDefault(),i()),o()},l=()=>{if(e.tabId){const u=e.data.findIndex(({id:c})=>hs.value[e.tabId]===c);if(u!==-1)return u}return e.active};return Ye(()=>{n.value=l(),Ue(()=>hs.value[e.tabId],(u,c)=>{if(e.tabId&&u!==c){const f=e.data.findIndex(({id:d})=>d===u);f!==-1&&(n.value=f)}})}),()=>e.data.length?he("div",{class:"vp-tabs"},[he("div",{class:"vp-tabs-nav",role:"tablist"},e.data.map(({id:u},c)=>{const f=c===n.value;return he("button",{type:"button",ref:d=>{d&&(r.value[c]=d)},class:["vp-tab-nav",{active:f}],role:"tab","aria-controls":`tab-${e.id}-${c}`,"aria-selected":f,onClick:()=>{n.value=c,o()},onKeydown:d=>{a(d,c)}},t[`title${c}`]({value:u,isActive:f}))})),e.data.map(({id:u},c)=>{const f=c===n.value;return he("div",{class:["vp-tab",{active:f}],id:`tab-${e.id}-${c}`,role:"tabpanel","aria-expanded":f},[he("div",{class:"vp-tab-title"},t[`title${c}`]({value:u,isActive:f})),t[`tab${c}`]({value:u,isActive:f})])})]):null}}),C_={enhance:({app:e})=>{e.component("CodeTabs",E_),e.component("Tabs",A_)}},w_=Object.freeze(Object.defineProperty({__proto__:null,default:C_},Symbol.toStringTag,{value:"Module"}));var T_=Object.create,vf=Object.defineProperty,O_=Object.getOwnPropertyDescriptor,Ci=Object.getOwnPropertyNames,x_=Object.getPrototypeOf,k_=Object.prototype.hasOwnProperty,P_=(e,t)=>function(){return e&&(t=(0,e[Ci(e)[0]])(e=0)),t},I_=(e,t)=>function(){return t||(0,e[Ci(e)[0]])((t={exports:{}}).exports,t),t.exports},R_=(e,t,n,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of Ci(t))!k_.call(e,o)&&o!==n&&vf(e,o,{get:()=>t[o],enumerable:!(r=O_(t,o))||r.enumerable});return e},L_=(e,t,n)=>(n=e!=null?T_(x_(e)):{},R_(vf(n,"default",{value:e,enumerable:!0}),e)),Gr=P_({"../../node_modules/.pnpm/tsup@8.3.5_@microsoft+api-extractor@7.48.0_@types+node@22.10.1__@swc+core@1.5.29_jiti@2.0.0_p_swvvp2d4pgn6xuiiec4l4x2i7a/node_modules/tsup/assets/esm_shims.js"(){}}),D_=I_({"../../node_modules/.pnpm/rfdc@1.4.1/node_modules/rfdc/index.js"(e,t){Gr(),t.exports=r;function n(s){return s instanceof Buffer?Buffer.from(s):new s.constructor(s.buffer.slice(),s.byteOffset,s.length)}function r(s){if(s=s||{},s.circles)return o(s);const i=new Map;if(i.set(Date,f=>new Date(f)),i.set(Map,(f,d)=>new Map(l(Array.from(f),d))),i.set(Set,(f,d)=>new Set(l(Array.from(f),d))),s.constructorHandlers)for(const f of s.constructorHandlers)i.set(f[0],f[1]);let a=null;return s.proto?c:u;function l(f,d){const p=Object.keys(f),v=new Array(p.length);for(let _=0;_new Date(p)),l.set(Map,(p,v)=>new Map(c(Array.from(p),v))),l.set(Set,(p,v)=>new Set(c(Array.from(p),v))),s.constructorHandlers)for(const p of s.constructorHandlers)l.set(p[0],p[1]);let u=null;return s.proto?d:f;function c(p,v){const _=Object.keys(p),b=new Array(_.length);for(let E=0;E<_.length;E++){const A=_[E],m=p[A];if(typeof m!="object"||m===null)b[A]=m;else if(m.constructor!==Object&&(u=l.get(m.constructor)))b[A]=u(m,v);else if(ArrayBuffer.isView(m))b[A]=n(m);else{const y=i.indexOf(m);y!==-1?b[A]=a[y]:b[A]=v(m)}}return b}function f(p){if(typeof p!="object"||p===null)return p;if(Array.isArray(p))return c(p,f);if(p.constructor!==Object&&(u=l.get(p.constructor)))return u(p,f);const v={};i.push(p),a.push(v);for(const _ in p){if(Object.hasOwnProperty.call(p,_)===!1)continue;const b=p[_];if(typeof b!="object"||b===null)v[_]=b;else if(b.constructor!==Object&&(u=l.get(b.constructor)))v[_]=u(b,f);else if(ArrayBuffer.isView(b))v[_]=n(b);else{const E=i.indexOf(b);E!==-1?v[_]=a[E]:v[_]=f(b)}}return i.pop(),a.pop(),v}function d(p){if(typeof p!="object"||p===null)return p;if(Array.isArray(p))return c(p,d);if(p.constructor!==Object&&(u=l.get(p.constructor)))return u(p,d);const v={};i.push(p),a.push(v);for(const _ in p){const b=p[_];if(typeof b!="object"||b===null)v[_]=b;else if(b.constructor!==Object&&(u=l.get(b.constructor)))v[_]=u(b,d);else if(ArrayBuffer.isView(b))v[_]=n(b);else{const E=i.indexOf(b);E!==-1?v[_]=a[E]:v[_]=d(b)}}return i.pop(),a.pop(),v}}}});Gr();Gr();Gr();var _f=typeof navigator<"u",X=typeof window<"u"?window:typeof globalThis<"u"?globalThis:typeof global<"u"?global:{};typeof X.chrome<"u"&&X.chrome.devtools;_f&&(X.self,X.top);var el;typeof navigator<"u"&&((el=navigator.userAgent)==null||el.toLowerCase().includes("electron"));Gr();var N_=L_(D_()),V_=/(?:^|[-_/])(\w)/g;function M_(e,t){return t?t.toUpperCase():""}function F_(e){return e&&`${e}`.replace(V_,M_)}function H_(e,t){let n=e.replace(/^[a-z]:/i,"").replace(/\\/g,"/");n.endsWith(`index${t}`)&&(n=n.replace(`/index${t}`,t));const r=n.lastIndexOf("/"),o=n.substring(r+1);{const s=o.lastIndexOf(t);return o.substring(0,s)}}var tl=(0,N_.default)({circles:!0});const $_={trailing:!0};function Kn(e,t=25,n={}){if(n={...$_,...n},!Number.isFinite(t))throw new TypeError("Expected `wait` to be a finite number");let r,o,s=[],i,a;const l=(u,c)=>(i=B_(e,u,c),i.finally(()=>{if(i=null,n.trailing&&a&&!o){const f=l(u,a);return a=null,f}}),i);return function(...u){return i?(n.trailing&&(a=u),i):new Promise(c=>{const f=!o&&n.leading;clearTimeout(o),o=setTimeout(()=>{o=null;const d=n.leading?r:l(this,u);for(const p of s)p(d);s=[]},t),f?(r=l(this,u),c(r)):s.push(c)})}}async function B_(e,t,n){return await e.apply(t,n)}function Fs(e,t={},n){for(const r in e){const o=e[r],s=n?`${n}:${r}`:r;typeof o=="object"&&o!==null?Fs(o,t,s):typeof o=="function"&&(t[s]=o)}return t}const U_={run:e=>e()},j_=()=>U_,yf=typeof console.createTask<"u"?console.createTask:j_;function z_(e,t){const n=t.shift(),r=yf(n);return e.reduce((o,s)=>o.then(()=>r.run(()=>s(...t))),Promise.resolve())}function K_(e,t){const n=t.shift(),r=yf(n);return Promise.all(e.map(o=>r.run(()=>o(...t))))}function ms(e,t){for(const n of[...e])n(t)}class W_{constructor(){this._hooks={},this._before=void 0,this._after=void 0,this._deprecatedMessages=void 0,this._deprecatedHooks={},this.hook=this.hook.bind(this),this.callHook=this.callHook.bind(this),this.callHookWith=this.callHookWith.bind(this)}hook(t,n,r={}){if(!t||typeof n!="function")return()=>{};const o=t;let s;for(;this._deprecatedHooks[t];)s=this._deprecatedHooks[t],t=s.to;if(s&&!r.allowDeprecated){let i=s.message;i||(i=`${o} hook has been deprecated`+(s.to?`, please use ${s.to}`:"")),this._deprecatedMessages||(this._deprecatedMessages=new Set),this._deprecatedMessages.has(i)||(console.warn(i),this._deprecatedMessages.add(i))}if(!n.name)try{Object.defineProperty(n,"name",{get:()=>"_"+t.replace(/\W+/g,"_")+"_hook_cb",configurable:!0})}catch{}return this._hooks[t]=this._hooks[t]||[],this._hooks[t].push(n),()=>{n&&(this.removeHook(t,n),n=void 0)}}hookOnce(t,n){let r,o=(...s)=>(typeof r=="function"&&r(),r=void 0,o=void 0,n(...s));return r=this.hook(t,o),r}removeHook(t,n){if(this._hooks[t]){const r=this._hooks[t].indexOf(n);r!==-1&&this._hooks[t].splice(r,1),this._hooks[t].length===0&&delete this._hooks[t]}}deprecateHook(t,n){this._deprecatedHooks[t]=typeof n=="string"?{to:n}:n;const r=this._hooks[t]||[];delete this._hooks[t];for(const o of r)this.hook(t,o)}deprecateHooks(t){Object.assign(this._deprecatedHooks,t);for(const n in t)this.deprecateHook(n,t[n])}addHooks(t){const n=Fs(t),r=Object.keys(n).map(o=>this.hook(o,n[o]));return()=>{for(const o of r.splice(0,r.length))o()}}removeHooks(t){const n=Fs(t);for(const r in n)this.removeHook(r,n[r])}removeAllHooks(){for(const t in this._hooks)delete this._hooks[t]}callHook(t,...n){return n.unshift(t),this.callHookWith(z_,t,...n)}callHookParallel(t,...n){return n.unshift(t),this.callHookWith(K_,t,...n)}callHookWith(t,n,...r){const o=this._before||this._after?{name:n,args:r,context:{}}:void 0;this._before&&ms(this._before,o);const s=t(n in this._hooks?[...this._hooks[n]]:[],r);return s instanceof Promise?s.finally(()=>{this._after&&o&&ms(this._after,o)}):(this._after&&o&&ms(this._after,o),s)}beforeEach(t){return this._before=this._before||[],this._before.push(t),()=>{if(this._before!==void 0){const n=this._before.indexOf(t);n!==-1&&this._before.splice(n,1)}}}afterEach(t){return this._after=this._after||[],this._after.push(t),()=>{if(this._after!==void 0){const n=this._after.indexOf(t);n!==-1&&this._after.splice(n,1)}}}}function bf(){return new W_}var q_=Object.create,Ef=Object.defineProperty,G_=Object.getOwnPropertyDescriptor,wi=Object.getOwnPropertyNames,Y_=Object.getPrototypeOf,X_=Object.prototype.hasOwnProperty,Z_=(e,t)=>function(){return e&&(t=(0,e[wi(e)[0]])(e=0)),t},Sf=(e,t)=>function(){return t||(0,e[wi(e)[0]])((t={exports:{}}).exports,t),t.exports},Q_=(e,t,n,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of wi(t))!X_.call(e,o)&&o!==n&&Ef(e,o,{get:()=>t[o],enumerable:!(r=G_(t,o))||r.enumerable});return e},J_=(e,t,n)=>(n=e!=null?q_(Y_(e)):{},Q_(Ef(n,"default",{value:e,enumerable:!0}),e)),P=Z_({"../../node_modules/.pnpm/tsup@8.3.5_@microsoft+api-extractor@7.48.0_@types+node@22.10.1__@swc+core@1.5.29_jiti@2.0.0_p_swvvp2d4pgn6xuiiec4l4x2i7a/node_modules/tsup/assets/esm_shims.js"(){}}),e0=Sf({"../../node_modules/.pnpm/speakingurl@14.0.1/node_modules/speakingurl/lib/speakingurl.js"(e,t){P(),function(n){var r={À:"A",Á:"A",Â:"A",Ã:"A",Ä:"Ae",Å:"A",Æ:"AE",Ç:"C",È:"E",É:"E",Ê:"E",Ë:"E",Ì:"I",Í:"I",Î:"I",Ï:"I",Ð:"D",Ñ:"N",Ò:"O",Ó:"O",Ô:"O",Õ:"O",Ö:"Oe",Ő:"O",Ø:"O",Ù:"U",Ú:"U",Û:"U",Ü:"Ue",Ű:"U",Ý:"Y",Þ:"TH",ß:"ss",à:"a",á:"a",â:"a",ã:"a",ä:"ae",å:"a",æ:"ae",ç:"c",è:"e",é:"e",ê:"e",ë:"e",ì:"i",í:"i",î:"i",ï:"i",ð:"d",ñ:"n",ò:"o",ó:"o",ô:"o",õ:"o",ö:"oe",ő:"o",ø:"o",ù:"u",ú:"u",û:"u",ü:"ue",ű:"u",ý:"y",þ:"th",ÿ:"y","ẞ":"SS",ا:"a",أ:"a",إ:"i",آ:"aa",ؤ:"u",ئ:"e",ء:"a",ب:"b",ت:"t",ث:"th",ج:"j",ح:"h",خ:"kh",د:"d",ذ:"th",ر:"r",ز:"z",س:"s",ش:"sh",ص:"s",ض:"dh",ط:"t",ظ:"z",ع:"a",غ:"gh",ف:"f",ق:"q",ك:"k",ل:"l",م:"m",ن:"n",ه:"h",و:"w",ي:"y",ى:"a",ة:"h",ﻻ:"la",ﻷ:"laa",ﻹ:"lai",ﻵ:"laa",گ:"g",چ:"ch",پ:"p",ژ:"zh",ک:"k",ی:"y","َ":"a","ً":"an","ِ":"e","ٍ":"en","ُ":"u","ٌ":"on","ْ":"","٠":"0","١":"1","٢":"2","٣":"3","٤":"4","٥":"5","٦":"6","٧":"7","٨":"8","٩":"9","۰":"0","۱":"1","۲":"2","۳":"3","۴":"4","۵":"5","۶":"6","۷":"7","۸":"8","۹":"9",က:"k",ခ:"kh",ဂ:"g",ဃ:"ga",င:"ng",စ:"s",ဆ:"sa",ဇ:"z","စျ":"za",ည:"ny",ဋ:"t",ဌ:"ta",ဍ:"d",ဎ:"da",ဏ:"na",တ:"t",ထ:"ta",ဒ:"d",ဓ:"da",န:"n",ပ:"p",ဖ:"pa",ဗ:"b",ဘ:"ba",မ:"m",ယ:"y",ရ:"ya",လ:"l",ဝ:"w",သ:"th",ဟ:"h",ဠ:"la",အ:"a","ြ":"y","ျ":"ya","ွ":"w","ြွ":"yw","ျွ":"ywa","ှ":"h",ဧ:"e","၏":"-e",ဣ:"i",ဤ:"-i",ဉ:"u",ဦ:"-u",ဩ:"aw","သြော":"aw",ဪ:"aw","၀":"0","၁":"1","၂":"2","၃":"3","၄":"4","၅":"5","၆":"6","၇":"7","၈":"8","၉":"9","္":"","့":"","း":"",č:"c",ď:"d",ě:"e",ň:"n",ř:"r",š:"s",ť:"t",ů:"u",ž:"z",Č:"C",Ď:"D",Ě:"E",Ň:"N",Ř:"R",Š:"S",Ť:"T",Ů:"U",Ž:"Z",ހ:"h",ށ:"sh",ނ:"n",ރ:"r",ބ:"b",ޅ:"lh",ކ:"k",އ:"a",ވ:"v",މ:"m",ފ:"f",ދ:"dh",ތ:"th",ލ:"l",ގ:"g",ޏ:"gn",ސ:"s",ޑ:"d",ޒ:"z",ޓ:"t",ޔ:"y",ޕ:"p",ޖ:"j",ޗ:"ch",ޘ:"tt",ޙ:"hh",ޚ:"kh",ޛ:"th",ޜ:"z",ޝ:"sh",ޞ:"s",ޟ:"d",ޠ:"t",ޡ:"z",ޢ:"a",ޣ:"gh",ޤ:"q",ޥ:"w","ަ":"a","ާ":"aa","ި":"i","ީ":"ee","ު":"u","ޫ":"oo","ެ":"e","ޭ":"ey","ޮ":"o","ޯ":"oa","ް":"",ა:"a",ბ:"b",გ:"g",დ:"d",ე:"e",ვ:"v",ზ:"z",თ:"t",ი:"i",კ:"k",ლ:"l",მ:"m",ნ:"n",ო:"o",პ:"p",ჟ:"zh",რ:"r",ს:"s",ტ:"t",უ:"u",ფ:"p",ქ:"k",ღ:"gh",ყ:"q",შ:"sh",ჩ:"ch",ც:"ts",ძ:"dz",წ:"ts",ჭ:"ch",ხ:"kh",ჯ:"j",ჰ:"h",α:"a",β:"v",γ:"g",δ:"d",ε:"e",ζ:"z",η:"i",θ:"th",ι:"i",κ:"k",λ:"l",μ:"m",ν:"n",ξ:"ks",ο:"o",π:"p",ρ:"r",σ:"s",τ:"t",υ:"y",φ:"f",χ:"x",ψ:"ps",ω:"o",ά:"a",έ:"e",ί:"i",ό:"o",ύ:"y",ή:"i",ώ:"o",ς:"s",ϊ:"i",ΰ:"y",ϋ:"y",ΐ:"i",Α:"A",Β:"B",Γ:"G",Δ:"D",Ε:"E",Ζ:"Z",Η:"I",Θ:"TH",Ι:"I",Κ:"K",Λ:"L",Μ:"M",Ν:"N",Ξ:"KS",Ο:"O",Π:"P",Ρ:"R",Σ:"S",Τ:"T",Υ:"Y",Φ:"F",Χ:"X",Ψ:"PS",Ω:"O",Ά:"A",Έ:"E",Ί:"I",Ό:"O",Ύ:"Y",Ή:"I",Ώ:"O",Ϊ:"I",Ϋ:"Y",ā:"a",ē:"e",ģ:"g",ī:"i",ķ:"k",ļ:"l",ņ:"n",ū:"u",Ā:"A",Ē:"E",Ģ:"G",Ī:"I",Ķ:"k",Ļ:"L",Ņ:"N",Ū:"U",Ќ:"Kj",ќ:"kj",Љ:"Lj",љ:"lj",Њ:"Nj",њ:"nj",Тс:"Ts",тс:"ts",ą:"a",ć:"c",ę:"e",ł:"l",ń:"n",ś:"s",ź:"z",ż:"z",Ą:"A",Ć:"C",Ę:"E",Ł:"L",Ń:"N",Ś:"S",Ź:"Z",Ż:"Z",Є:"Ye",І:"I",Ї:"Yi",Ґ:"G",є:"ye",і:"i",ї:"yi",ґ:"g",ă:"a",Ă:"A",ș:"s",Ș:"S",ț:"t",Ț:"T",ţ:"t",Ţ:"T",а:"a",б:"b",в:"v",г:"g",д:"d",е:"e",ё:"yo",ж:"zh",з:"z",и:"i",й:"i",к:"k",л:"l",м:"m",н:"n",о:"o",п:"p",р:"r",с:"s",т:"t",у:"u",ф:"f",х:"kh",ц:"c",ч:"ch",ш:"sh",щ:"sh",ъ:"",ы:"y",ь:"",э:"e",ю:"yu",я:"ya",А:"A",Б:"B",В:"V",Г:"G",Д:"D",Е:"E",Ё:"Yo",Ж:"Zh",З:"Z",И:"I",Й:"I",К:"K",Л:"L",М:"M",Н:"N",О:"O",П:"P",Р:"R",С:"S",Т:"T",У:"U",Ф:"F",Х:"Kh",Ц:"C",Ч:"Ch",Ш:"Sh",Щ:"Sh",Ъ:"",Ы:"Y",Ь:"",Э:"E",Ю:"Yu",Я:"Ya",ђ:"dj",ј:"j",ћ:"c",џ:"dz",Ђ:"Dj",Ј:"j",Ћ:"C",Џ:"Dz",ľ:"l",ĺ:"l",ŕ:"r",Ľ:"L",Ĺ:"L",Ŕ:"R",ş:"s",Ş:"S",ı:"i",İ:"I",ğ:"g",Ğ:"G",ả:"a",Ả:"A",ẳ:"a",Ẳ:"A",ẩ:"a",Ẩ:"A",đ:"d",Đ:"D",ẹ:"e",Ẹ:"E",ẽ:"e",Ẽ:"E",ẻ:"e",Ẻ:"E",ế:"e",Ế:"E",ề:"e",Ề:"E",ệ:"e",Ệ:"E",ễ:"e",Ễ:"E",ể:"e",Ể:"E",ỏ:"o",ọ:"o",Ọ:"o",ố:"o",Ố:"O",ồ:"o",Ồ:"O",ổ:"o",Ổ:"O",ộ:"o",Ộ:"O",ỗ:"o",Ỗ:"O",ơ:"o",Ơ:"O",ớ:"o",Ớ:"O",ờ:"o",Ờ:"O",ợ:"o",Ợ:"O",ỡ:"o",Ỡ:"O",Ở:"o",ở:"o",ị:"i",Ị:"I",ĩ:"i",Ĩ:"I",ỉ:"i",Ỉ:"i",ủ:"u",Ủ:"U",ụ:"u",Ụ:"U",ũ:"u",Ũ:"U",ư:"u",Ư:"U",ứ:"u",Ứ:"U",ừ:"u",Ừ:"U",ự:"u",Ự:"U",ữ:"u",Ữ:"U",ử:"u",Ử:"ư",ỷ:"y",Ỷ:"y",ỳ:"y",Ỳ:"Y",ỵ:"y",Ỵ:"Y",ỹ:"y",Ỹ:"Y",ạ:"a",Ạ:"A",ấ:"a",Ấ:"A",ầ:"a",Ầ:"A",ậ:"a",Ậ:"A",ẫ:"a",Ẫ:"A",ắ:"a",Ắ:"A",ằ:"a",Ằ:"A",ặ:"a",Ặ:"A",ẵ:"a",Ẵ:"A","⓪":"0","①":"1","②":"2","③":"3","④":"4","⑤":"5","⑥":"6","⑦":"7","⑧":"8","⑨":"9","⑩":"10","⑪":"11","⑫":"12","⑬":"13","⑭":"14","⑮":"15","⑯":"16","⑰":"17","⑱":"18","⑲":"18","⑳":"18","⓵":"1","⓶":"2","⓷":"3","⓸":"4","⓹":"5","⓺":"6","⓻":"7","⓼":"8","⓽":"9","⓾":"10","⓿":"0","⓫":"11","⓬":"12","⓭":"13","⓮":"14","⓯":"15","⓰":"16","⓱":"17","⓲":"18","⓳":"19","⓴":"20","Ⓐ":"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","ⓐ":"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","“":'"',"”":'"',"‘":"'","’":"'","∂":"d",ƒ:"f","™":"(TM)","©":"(C)",œ:"oe",Œ:"OE","®":"(R)","†":"+","℠":"(SM)","…":"...","˚":"o",º:"o",ª:"a","•":"*","၊":",","။":".",$:"USD","€":"EUR","₢":"BRN","₣":"FRF","£":"GBP","₤":"ITL","₦":"NGN","₧":"ESP","₩":"KRW","₪":"ILS","₫":"VND","₭":"LAK","₮":"MNT","₯":"GRD","₱":"ARS","₲":"PYG","₳":"ARA","₴":"UAH","₵":"GHS","¢":"cent","¥":"CNY",元:"CNY",円:"YEN","﷼":"IRR","₠":"EWE","฿":"THB","₨":"INR","₹":"INR","₰":"PF","₺":"TRY","؋":"AFN","₼":"AZN",лв:"BGN","៛":"KHR","₡":"CRC","₸":"KZT",ден:"MKD",zł:"PLN","₽":"RUB","₾":"GEL"},o=["်","ް"],s={"ာ":"a","ါ":"a","ေ":"e","ဲ":"e","ိ":"i","ီ":"i","ို":"o","ု":"u","ူ":"u","ေါင်":"aung","ော":"aw","ော်":"aw","ေါ":"aw","ေါ်":"aw","်":"်","က်":"et","ိုက်":"aik","ောက်":"auk","င်":"in","ိုင်":"aing","ောင်":"aung","စ်":"it","ည်":"i","တ်":"at","ိတ်":"eik","ုတ်":"ok","ွတ်":"ut","ေတ်":"it","ဒ်":"d","ိုဒ်":"ok","ုဒ်":"ait","န်":"an","ာန်":"an","ိန်":"ein","ုန်":"on","ွန်":"un","ပ်":"at","ိပ်":"eik","ုပ်":"ok","ွပ်":"ut","န်ုပ်":"nub","မ်":"an","ိမ်":"ein","ုမ်":"on","ွမ်":"un","ယ်":"e","ိုလ်":"ol","ဉ်":"in","ံ":"an","ိံ":"ein","ုံ":"on","ައް":"ah","ަށް":"ah"},i={en:{},az:{ç:"c",ə:"e",ğ:"g",ı:"i",ö:"o",ş:"s",ü:"u",Ç:"C",Ə:"E",Ğ:"G",İ:"I",Ö:"O",Ş:"S",Ü:"U"},cs:{č:"c",ď:"d",ě:"e",ň:"n",ř:"r",š:"s",ť:"t",ů:"u",ž:"z",Č:"C",Ď:"D",Ě:"E",Ň:"N",Ř:"R",Š:"S",Ť:"T",Ů:"U",Ž:"Z"},fi:{ä:"a",Ä:"A",ö:"o",Ö:"O"},hu:{ä:"a",Ä:"A",ö:"o",Ö:"O",ü:"u",Ü:"U",ű:"u",Ű:"U"},lt:{ą:"a",č:"c",ę:"e",ė:"e",į:"i",š:"s",ų:"u",ū:"u",ž:"z",Ą:"A",Č:"C",Ę:"E",Ė:"E",Į:"I",Š:"S",Ų:"U",Ū:"U"},lv:{ā:"a",č:"c",ē:"e",ģ:"g",ī:"i",ķ:"k",ļ:"l",ņ:"n",š:"s",ū:"u",ž:"z",Ā:"A",Č:"C",Ē:"E",Ģ:"G",Ī:"i",Ķ:"k",Ļ:"L",Ņ:"N",Š:"S",Ū:"u",Ž:"Z"},pl:{ą:"a",ć:"c",ę:"e",ł:"l",ń:"n",ó:"o",ś:"s",ź:"z",ż:"z",Ą:"A",Ć:"C",Ę:"e",Ł:"L",Ń:"N",Ó:"O",Ś:"S",Ź:"Z",Ż:"Z"},sv:{ä:"a",Ä:"A",ö:"o",Ö:"O"},sk:{ä:"a",Ä:"A"},sr:{љ:"lj",њ:"nj",Љ:"Lj",Њ:"Nj",đ:"dj",Đ:"Dj"},tr:{Ü:"U",Ö:"O",ü:"u",ö:"o"}},a={ar:{"∆":"delta","∞":"la-nihaya","♥":"hob","&":"wa","|":"aw","<":"aqal-men",">":"akbar-men","∑":"majmou","¤":"omla"},az:{},ca:{"∆":"delta","∞":"infinit","♥":"amor","&":"i","|":"o","<":"menys que",">":"mes que","∑":"suma dels","¤":"moneda"},cs:{"∆":"delta","∞":"nekonecno","♥":"laska","&":"a","|":"nebo","<":"mensi nez",">":"vetsi nez","∑":"soucet","¤":"mena"},de:{"∆":"delta","∞":"unendlich","♥":"Liebe","&":"und","|":"oder","<":"kleiner als",">":"groesser als","∑":"Summe von","¤":"Waehrung"},dv:{"∆":"delta","∞":"kolunulaa","♥":"loabi","&":"aai","|":"noonee","<":"ah vure kuda",">":"ah vure bodu","∑":"jumula","¤":"faisaa"},en:{"∆":"delta","∞":"infinity","♥":"love","&":"and","|":"or","<":"less than",">":"greater than","∑":"sum","¤":"currency"},es:{"∆":"delta","∞":"infinito","♥":"amor","&":"y","|":"u","<":"menos que",">":"mas que","∑":"suma de los","¤":"moneda"},fa:{"∆":"delta","∞":"bi-nahayat","♥":"eshgh","&":"va","|":"ya","<":"kamtar-az",">":"bishtar-az","∑":"majmooe","¤":"vahed"},fi:{"∆":"delta","∞":"aarettomyys","♥":"rakkaus","&":"ja","|":"tai","<":"pienempi kuin",">":"suurempi kuin","∑":"summa","¤":"valuutta"},fr:{"∆":"delta","∞":"infiniment","♥":"Amour","&":"et","|":"ou","<":"moins que",">":"superieure a","∑":"somme des","¤":"monnaie"},ge:{"∆":"delta","∞":"usasruloba","♥":"siqvaruli","&":"da","|":"an","<":"naklebi",">":"meti","∑":"jami","¤":"valuta"},gr:{},hu:{"∆":"delta","∞":"vegtelen","♥":"szerelem","&":"es","|":"vagy","<":"kisebb mint",">":"nagyobb mint","∑":"szumma","¤":"penznem"},it:{"∆":"delta","∞":"infinito","♥":"amore","&":"e","|":"o","<":"minore di",">":"maggiore di","∑":"somma","¤":"moneta"},lt:{"∆":"delta","∞":"begalybe","♥":"meile","&":"ir","|":"ar","<":"maziau nei",">":"daugiau nei","∑":"suma","¤":"valiuta"},lv:{"∆":"delta","∞":"bezgaliba","♥":"milestiba","&":"un","|":"vai","<":"mazak neka",">":"lielaks neka","∑":"summa","¤":"valuta"},my:{"∆":"kwahkhyaet","∞":"asaonasme","♥":"akhyait","&":"nhin","|":"tho","<":"ngethaw",">":"kyithaw","∑":"paungld","¤":"ngwekye"},mk:{},nl:{"∆":"delta","∞":"oneindig","♥":"liefde","&":"en","|":"of","<":"kleiner dan",">":"groter dan","∑":"som","¤":"valuta"},pl:{"∆":"delta","∞":"nieskonczonosc","♥":"milosc","&":"i","|":"lub","<":"mniejsze niz",">":"wieksze niz","∑":"suma","¤":"waluta"},pt:{"∆":"delta","∞":"infinito","♥":"amor","&":"e","|":"ou","<":"menor que",">":"maior que","∑":"soma","¤":"moeda"},ro:{"∆":"delta","∞":"infinit","♥":"dragoste","&":"si","|":"sau","<":"mai mic ca",">":"mai mare ca","∑":"suma","¤":"valuta"},ru:{"∆":"delta","∞":"beskonechno","♥":"lubov","&":"i","|":"ili","<":"menshe",">":"bolshe","∑":"summa","¤":"valjuta"},sk:{"∆":"delta","∞":"nekonecno","♥":"laska","&":"a","|":"alebo","<":"menej ako",">":"viac ako","∑":"sucet","¤":"mena"},sr:{},tr:{"∆":"delta","∞":"sonsuzluk","♥":"ask","&":"ve","|":"veya","<":"kucuktur",">":"buyuktur","∑":"toplam","¤":"para birimi"},uk:{"∆":"delta","∞":"bezkinechnist","♥":"lubov","&":"i","|":"abo","<":"menshe",">":"bilshe","∑":"suma","¤":"valjuta"},vn:{"∆":"delta","∞":"vo cuc","♥":"yeu","&":"va","|":"hoac","<":"nho hon",">":"lon hon","∑":"tong","¤":"tien te"}},l=[";","?",":","@","&","=","+","$",",","/"].join(""),u=[";","?",":","@","&","=","+","$",","].join(""),c=[".","!","~","*","'","(",")"].join(""),f=function(b,E){var A="-",m="",y="",L=!0,W={},M,w,U,O,$,C,D,Z,ee,I,N,z,le,ye,xe="";if(typeof b!="string")return"";if(typeof E=="string"&&(A=E),D=a.en,Z=i.en,typeof E=="object"){M=E.maintainCase||!1,W=E.custom&&typeof E.custom=="object"?E.custom:W,U=+E.truncate>1&&E.truncate||!1,O=E.uric||!1,$=E.uricNoSlash||!1,C=E.mark||!1,L=!(E.symbols===!1||E.lang===!1),A=E.separator||A,O&&(xe+=l),$&&(xe+=u),C&&(xe+=c),D=E.lang&&a[E.lang]&&L?a[E.lang]:L?a.en:{},Z=E.lang&&i[E.lang]?i[E.lang]:E.lang===!1||E.lang===!0?{}:i.en,E.titleCase&&typeof E.titleCase.length=="number"&&Array.prototype.toString.call(E.titleCase)?(E.titleCase.forEach(function(be){W[be+""]=be+""}),w=!0):w=!!E.titleCase,E.custom&&typeof E.custom.length=="number"&&Array.prototype.toString.call(E.custom)&&E.custom.forEach(function(be){W[be+""]=be+""}),Object.keys(W).forEach(function(be){var Je;be.length>1?Je=new RegExp("\\b"+p(be)+"\\b","gi"):Je=new RegExp(p(be),"gi"),b=b.replace(Je,W[be])});for(N in W)xe+=N}for(xe+=A,xe=p(xe),b=b.replace(/(^\s+|\s+$)/g,""),le=!1,ye=!1,I=0,z=b.length;I=0?(y+=N,N=""):ye===!0?(N=s[y]+r[N],y=""):N=le&&r[N].match(/[A-Za-z0-9]/)?" "+r[N]:r[N],le=!1,ye=!1):N in s?(y+=N,N="",I===z-1&&(N=s[y]),ye=!0):D[N]&&!(O&&l.indexOf(N)!==-1)&&!($&&u.indexOf(N)!==-1)?(N=le||m.substr(-1).match(/[A-Za-z0-9]/)?A+D[N]:D[N],N+=b[I+1]!==void 0&&b[I+1].match(/[A-Za-z0-9]/)?A:"",le=!0):(ye===!0?(N=s[y]+N,y="",ye=!1):le&&(/[A-Za-z0-9]/.test(N)||m.substr(-1).match(/A-Za-z0-9]/))&&(N=" "+N),le=!1),m+=N.replace(new RegExp("[^\\w\\s"+xe+"_-]","g"),A);return w&&(m=m.replace(/(\w)(\S*)/g,function(be,Je,_t){var et=Je.toUpperCase()+(_t!==null?_t:"");return Object.keys(W).indexOf(et.toLowerCase())<0?et:et.toLowerCase()})),m=m.replace(/\s+/g,A).replace(new RegExp("\\"+A+"+","g"),A).replace(new RegExp("(^\\"+A+"+|\\"+A+"+$)","g"),""),U&&m.length>U&&(ee=m.charAt(U)===A,m=m.slice(0,U),ee||(m=m.slice(0,m.lastIndexOf(A)))),!M&&!w&&(m=m.toLowerCase()),m},d=function(b){return function(A){return f(A,b)}},p=function(b){return b.replace(/[-\\^$*+?.()|[\]{}\/]/g,"\\$&")},v=function(_,b){for(var E in b)if(b[E]===_)return!0};if(typeof t<"u"&&t.exports)t.exports=f,t.exports.createSlug=d;else if(typeof define<"u"&&define.amd)define([],function(){return f});else try{if(n.getSlug||n.createSlug)throw"speakingurl: globals exists /(getSlug|createSlug)/";n.getSlug=f,n.createSlug=d}catch{}}(e)}}),t0=Sf({"../../node_modules/.pnpm/speakingurl@14.0.1/node_modules/speakingurl/index.js"(e,t){P(),t.exports=e0()}});P();P();P();P();P();P();P();P();function n0(e){var t;const n=e.name||e._componentTag||e.__VUE_DEVTOOLS_COMPONENT_GUSSED_NAME__||e.__name;return n==="index"&&((t=e.__file)!=null&&t.endsWith("index.vue"))?"":n}function r0(e){const t=e.__file;if(t)return F_(H_(t,".vue"))}function nl(e,t){return e.type.__VUE_DEVTOOLS_COMPONENT_GUSSED_NAME__=t,t}function zo(e){if(e.__VUE_DEVTOOLS_NEXT_APP_RECORD__)return e.__VUE_DEVTOOLS_NEXT_APP_RECORD__;if(e.root)return e.appContext.app.__VUE_DEVTOOLS_NEXT_APP_RECORD__}async function o0(e){const{app:t,uid:n,instance:r}=e;try{if(r.__VUE_DEVTOOLS_NEXT_UID__)return r.__VUE_DEVTOOLS_NEXT_UID__;const o=await zo(t);if(!o)return null;const s=o.rootInstance===r;return`${o.id}:${s?"root":n}`}catch{}}function Af(e){var t,n;const r=(t=e.subTree)==null?void 0:t.type,o=zo(e);return o?((n=o==null?void 0:o.types)==null?void 0:n.Fragment)===r:!1}function Ko(e){var t,n,r;const o=n0((e==null?void 0:e.type)||{});if(o)return o;if((e==null?void 0:e.root)===e)return"Root";for(const i in(n=(t=e.parent)==null?void 0:t.type)==null?void 0:n.components)if(e.parent.type.components[i]===(e==null?void 0:e.type))return nl(e,i);for(const i in(r=e.appContext)==null?void 0:r.components)if(e.appContext.components[i]===(e==null?void 0:e.type))return nl(e,i);const s=r0((e==null?void 0:e.type)||{});return s||"Anonymous Component"}function Hs(e,t){return t=t||`${e.id}:root`,e.instanceMap.get(t)||e.instanceMap.get(":root")}function s0(){const e={top:0,bottom:0,left:0,right:0,get width(){return e.right-e.left},get height(){return e.bottom-e.top}};return e}var io;function i0(e){return io||(io=document.createRange()),io.selectNode(e),io.getBoundingClientRect()}function a0(e){const t=s0();if(!e.children)return t;for(let n=0,r=e.children.length;ne.bottom)&&(e.bottom=t.bottom),(!e.left||t.lefte.right)&&(e.right=t.right),e}var rl={top:0,left:0,right:0,bottom:0,width:0,height:0};function wn(e){const t=e.subTree.el;return typeof window>"u"?rl:Af(e)?a0(e.subTree):(t==null?void 0:t.nodeType)===1?t==null?void 0:t.getBoundingClientRect():e.subTree.component?wn(e.subTree.component):rl}P();function Ti(e){return Af(e)?u0(e.subTree):e.subTree?[e.subTree.el]:[]}function u0(e){if(!e.children)return[];const t=[];return e.children.forEach(n=>{n.component?t.push(...Ti(n.component)):n!=null&&n.el&&t.push(n.el)}),t}var Cf="__vue-devtools-component-inspector__",wf="__vue-devtools-component-inspector__card__",Tf="__vue-devtools-component-inspector__name__",Of="__vue-devtools-component-inspector__indicator__",xf={display:"block",zIndex:2147483640,position:"fixed",backgroundColor:"#42b88325",border:"1px solid #42b88350",borderRadius:"5px",transition:"all 0.1s ease-in",pointerEvents:"none"},c0={fontFamily:"Arial, Helvetica, sans-serif",padding:"5px 8px",borderRadius:"4px",textAlign:"left",position:"absolute",left:0,color:"#e9e9e9",fontSize:"14px",fontWeight:600,lineHeight:"24px",backgroundColor:"#42b883",boxShadow:"0 1px 3px 0 rgba(0, 0, 0, 0.1), 0 1px 2px -1px rgba(0, 0, 0, 0.1)"},f0={display:"inline-block",fontWeight:400,fontStyle:"normal",fontSize:"12px",opacity:.7};function rr(){return document.getElementById(Cf)}function d0(){return document.getElementById(wf)}function p0(){return document.getElementById(Of)}function h0(){return document.getElementById(Tf)}function Oi(e){return{left:`${Math.round(e.left*100)/100}px`,top:`${Math.round(e.top*100)/100}px`,width:`${Math.round(e.width*100)/100}px`,height:`${Math.round(e.height*100)/100}px`}}function xi(e){var t;const n=document.createElement("div");n.id=(t=e.elementId)!=null?t:Cf,Object.assign(n.style,{...xf,...Oi(e.bounds),...e.style});const r=document.createElement("span");r.id=wf,Object.assign(r.style,{...c0,top:e.bounds.top<35?0:"-35px"});const o=document.createElement("span");o.id=Tf,o.innerHTML=`<${e.name}>  `;const s=document.createElement("i");return s.id=Of,s.innerHTML=`${Math.round(e.bounds.width*100)/100} x ${Math.round(e.bounds.height*100)/100}`,Object.assign(s.style,f0),r.appendChild(o),r.appendChild(s),n.appendChild(r),document.body.appendChild(n),n}function ki(e){const t=rr(),n=d0(),r=h0(),o=p0();t&&(Object.assign(t.style,{...xf,...Oi(e.bounds)}),Object.assign(n.style,{top:e.bounds.top<35?0:"-35px"}),r.innerHTML=`<${e.name}>  `,o.innerHTML=`${Math.round(e.bounds.width*100)/100} x ${Math.round(e.bounds.height*100)/100}`)}function m0(e){const t=wn(e);if(!t.width&&!t.height)return;const n=Ko(e);rr()?ki({bounds:t,name:n}):xi({bounds:t,name:n})}function kf(){const e=rr();e&&(e.style.display="none")}var $s=null;function Bs(e){const t=e.target;if(t){const n=t.__vueParentComponent;if(n&&($s=n,n.vnode.el)){const o=wn(n),s=Ko(n);rr()?ki({bounds:o,name:s}):xi({bounds:o,name:s})}}}function g0(e,t){var n;if(e.preventDefault(),e.stopPropagation(),$s){const r=(n=qe.value)==null?void 0:n.app;o0({app:r,uid:r.uid,instance:$s}).then(o=>{t(o)})}}var To=null;function v0(){kf(),window.removeEventListener("mouseover",Bs),window.removeEventListener("click",To,!0),To=null}function _0(){return window.addEventListener("mouseover",Bs),new Promise(e=>{function t(n){n.preventDefault(),n.stopPropagation(),g0(n,r=>{window.removeEventListener("click",t,!0),To=null,window.removeEventListener("mouseover",Bs);const o=rr();o&&(o.style.display="none"),e(JSON.stringify({id:r}))})}To=t,window.addEventListener("click",t,!0)})}function y0(e){const t=Hs(qe.value,e.id);if(t){const[n]=Ti(t);if(typeof n.scrollIntoView=="function")n.scrollIntoView({behavior:"smooth"});else{const r=wn(t),o=document.createElement("div"),s={...Oi(r),position:"absolute"};Object.assign(o.style,s),document.body.appendChild(o),o.scrollIntoView({behavior:"smooth"}),setTimeout(()=>{document.body.removeChild(o)},2e3)}setTimeout(()=>{const r=wn(t);if(r.width||r.height){const o=Ko(t),s=rr();s?ki({...e,name:o,bounds:r}):xi({...e,name:o,bounds:r}),setTimeout(()=>{s&&(s.style.display="none")},1500)}},1200)}}P();var ol,sl;(sl=(ol=X).__VUE_DEVTOOLS_COMPONENT_INSPECTOR_ENABLED__)!=null||(ol.__VUE_DEVTOOLS_COMPONENT_INSPECTOR_ENABLED__=!0);function b0(e){let t=0;const n=setInterval(()=>{X.__VUE_INSPECTOR__&&(clearInterval(n),t+=30,e()),t>=5e3&&clearInterval(n)},30)}function E0(){const e=X.__VUE_INSPECTOR__,t=e.openInEditor;e.openInEditor=async(...n)=>{e.disable(),t(...n)}}function S0(){return new Promise(e=>{function t(){E0(),e(X.__VUE_INSPECTOR__)}X.__VUE_INSPECTOR__?t():b0(()=>{t()})})}P();P();function A0(e){return!!(e&&e.__v_isReadonly)}function Pf(e){return A0(e)?Pf(e.__v_raw):!!(e&&e.__v_isReactive)}function gs(e){return!!(e&&e.__v_isRef===!0)}function mr(e){const t=e&&e.__v_raw;return t?mr(t):e}var C0=class{constructor(){this.refEditor=new w0}set(e,t,n,r){const o=Array.isArray(t)?t:t.split(".");for(;o.length>1;){const a=o.shift();e instanceof Map&&(e=e.get(a)),e instanceof Set?e=Array.from(e.values())[a]:e=e[a],this.refEditor.isRef(e)&&(e=this.refEditor.get(e))}const s=o[0],i=this.refEditor.get(e)[s];r?r(e,s,n):this.refEditor.isRef(i)?this.refEditor.set(i,n):e[s]=n}get(e,t){const n=Array.isArray(t)?t:t.split(".");for(let r=0;r"u")return!1;const r=Array.isArray(t)?t.slice():t.split("."),o=n?2:1;for(;e&&r.length>o;){const s=r.shift();e=e[s],this.refEditor.isRef(e)&&(e=this.refEditor.get(e))}return e!=null&&Object.prototype.hasOwnProperty.call(e,r[0])}createDefaultSetCallback(e){return(t,n,r)=>{if((e.remove||e.newKey)&&(Array.isArray(t)?t.splice(n,1):mr(t)instanceof Map?t.delete(n):mr(t)instanceof Set?t.delete(Array.from(t.values())[n]):Reflect.deleteProperty(t,n)),!e.remove){const o=t[e.newKey||n];this.refEditor.isRef(o)?this.refEditor.set(o,r):mr(t)instanceof Map?t.set(e.newKey||n,r):mr(t)instanceof Set?t.add(r):t[e.newKey||n]=r}}}},w0=class{set(e,t){if(gs(e))e.value=t;else{if(e instanceof Set&&Array.isArray(t)){e.clear(),t.forEach(o=>e.add(o));return}const n=Object.keys(t);if(e instanceof Map){const o=new Set(e.keys());n.forEach(s=>{e.set(s,Reflect.get(t,s)),o.delete(s)}),o.forEach(s=>e.delete(s));return}const r=new Set(Object.keys(e));n.forEach(o=>{Reflect.set(e,o,Reflect.get(t,o)),r.delete(o)}),r.forEach(o=>Reflect.deleteProperty(e,o))}}get(e){return gs(e)?e.value:e}isRef(e){return gs(e)||Pf(e)}};P();P();P();var T0="__VUE_DEVTOOLS_KIT_TIMELINE_LAYERS_STATE__";function O0(){if(!_f||typeof localStorage>"u"||localStorage===null)return{recordingState:!1,mouseEventEnabled:!1,keyboardEventEnabled:!1,componentEventEnabled:!1,performanceEventEnabled:!1,selected:""};const e=localStorage.getItem(T0);return e?JSON.parse(e):{recordingState:!1,mouseEventEnabled:!1,keyboardEventEnabled:!1,componentEventEnabled:!1,performanceEventEnabled:!1,selected:""}}P();P();P();var il,al;(al=(il=X).__VUE_DEVTOOLS_KIT_TIMELINE_LAYERS)!=null||(il.__VUE_DEVTOOLS_KIT_TIMELINE_LAYERS=[]);var x0=new Proxy(X.__VUE_DEVTOOLS_KIT_TIMELINE_LAYERS,{get(e,t,n){return Reflect.get(e,t,n)}});function k0(e,t){Me.timelineLayersState[t.id]=!1,x0.push({...e,descriptorId:t.id,appRecord:zo(t.app)})}var ll,ul;(ul=(ll=X).__VUE_DEVTOOLS_KIT_INSPECTOR__)!=null||(ll.__VUE_DEVTOOLS_KIT_INSPECTOR__=[]);var Pi=new Proxy(X.__VUE_DEVTOOLS_KIT_INSPECTOR__,{get(e,t,n){return Reflect.get(e,t,n)}}),If=Kn(()=>{or.hooks.callHook("sendInspectorToClient",Rf())});function P0(e,t){var n,r;Pi.push({options:e,descriptor:t,treeFilterPlaceholder:(n=e.treeFilterPlaceholder)!=null?n:"Search tree...",stateFilterPlaceholder:(r=e.stateFilterPlaceholder)!=null?r:"Search state...",treeFilter:"",selectedNodeId:"",appRecord:zo(t.app)}),If()}function Rf(){return Pi.filter(e=>e.descriptor.app===qe.value.app).filter(e=>e.descriptor.id!=="components").map(e=>{var t;const n=e.descriptor,r=e.options;return{id:r.id,label:r.label,logo:n.logo,icon:`custom-ic-baseline-${(t=r==null?void 0:r.icon)==null?void 0:t.replace(/_/g,"-")}`,packageName:n.packageName,homepage:n.homepage,pluginId:n.id}})}function fo(e,t){return Pi.find(n=>n.options.id===e&&(t?n.descriptor.app===t:!0))}function I0(){const e=bf();e.hook("addInspector",({inspector:r,plugin:o})=>{P0(r,o.descriptor)});const t=Kn(async({inspectorId:r,plugin:o})=>{var s;if(!r||!((s=o==null?void 0:o.descriptor)!=null&&s.app)||Me.highPerfModeEnabled)return;const i=fo(r,o.descriptor.app),a={app:o.descriptor.app,inspectorId:r,filter:(i==null?void 0:i.treeFilter)||"",rootNodes:[]};await new Promise(l=>{e.callHookWith(async u=>{await Promise.all(u.map(c=>c(a))),l()},"getInspectorTree")}),e.callHookWith(async l=>{await Promise.all(l.map(u=>u({inspectorId:r,rootNodes:a.rootNodes})))},"sendInspectorTreeToClient")},120);e.hook("sendInspectorTree",t);const n=Kn(async({inspectorId:r,plugin:o})=>{var s;if(!r||!((s=o==null?void 0:o.descriptor)!=null&&s.app)||Me.highPerfModeEnabled)return;const i=fo(r,o.descriptor.app),a={app:o.descriptor.app,inspectorId:r,nodeId:(i==null?void 0:i.selectedNodeId)||"",state:null},l={currentTab:`custom-inspector:${r}`};a.nodeId&&await new Promise(u=>{e.callHookWith(async c=>{await Promise.all(c.map(f=>f(a,l))),u()},"getInspectorState")}),e.callHookWith(async u=>{await Promise.all(u.map(c=>c({inspectorId:r,nodeId:a.nodeId,state:a.state})))},"sendInspectorStateToClient")},120);return e.hook("sendInspectorState",n),e.hook("customInspectorSelectNode",({inspectorId:r,nodeId:o,plugin:s})=>{const i=fo(r,s.descriptor.app);i&&(i.selectedNodeId=o)}),e.hook("timelineLayerAdded",({options:r,plugin:o})=>{k0(r,o.descriptor)}),e.hook("timelineEventAdded",({options:r,plugin:o})=>{var s;const i=["performance","component-event","keyboard","mouse"];Me.highPerfModeEnabled||!((s=Me.timelineLayersState)!=null&&s[o.descriptor.id])&&!i.includes(r.layerId)||e.callHookWith(async a=>{await Promise.all(a.map(l=>l(r)))},"sendTimelineEventToClient")}),e.hook("getComponentInstances",async({app:r})=>{const o=r.__VUE_DEVTOOLS_NEXT_APP_RECORD__;if(!o)return null;const s=o.id.toString();return[...o.instanceMap].filter(([a])=>a.split(":")[0]===s).map(([,a])=>a)}),e.hook("getComponentBounds",async({instance:r})=>wn(r)),e.hook("getComponentName",({instance:r})=>Ko(r)),e.hook("componentHighlight",({uid:r})=>{const o=qe.value.instanceMap.get(r);o&&m0(o)}),e.hook("componentUnhighlight",()=>{kf()}),e}var cl,fl;(fl=(cl=X).__VUE_DEVTOOLS_KIT_APP_RECORDS__)!=null||(cl.__VUE_DEVTOOLS_KIT_APP_RECORDS__=[]);var dl,pl;(pl=(dl=X).__VUE_DEVTOOLS_KIT_ACTIVE_APP_RECORD__)!=null||(dl.__VUE_DEVTOOLS_KIT_ACTIVE_APP_RECORD__={});var hl,ml;(ml=(hl=X).__VUE_DEVTOOLS_KIT_ACTIVE_APP_RECORD_ID__)!=null||(hl.__VUE_DEVTOOLS_KIT_ACTIVE_APP_RECORD_ID__="");var gl,vl;(vl=(gl=X).__VUE_DEVTOOLS_KIT_CUSTOM_TABS__)!=null||(gl.__VUE_DEVTOOLS_KIT_CUSTOM_TABS__=[]);var _l,yl;(yl=(_l=X).__VUE_DEVTOOLS_KIT_CUSTOM_COMMANDS__)!=null||(_l.__VUE_DEVTOOLS_KIT_CUSTOM_COMMANDS__=[]);var bn="__VUE_DEVTOOLS_KIT_GLOBAL_STATE__";function R0(){return{connected:!1,clientConnected:!1,vitePluginDetected:!0,appRecords:[],activeAppRecordId:"",tabs:[],commands:[],highPerfModeEnabled:!0,devtoolsClientDetected:{},perfUniqueGroupId:0,timelineLayersState:O0()}}var bl,El;(El=(bl=X)[bn])!=null||(bl[bn]=R0());var L0=Kn(e=>{or.hooks.callHook("devtoolsStateUpdated",{state:e})});Kn((e,t)=>{or.hooks.callHook("devtoolsConnectedUpdated",{state:e,oldState:t})});var Wo=new Proxy(X.__VUE_DEVTOOLS_KIT_APP_RECORDS__,{get(e,t,n){return t==="value"?X.__VUE_DEVTOOLS_KIT_APP_RECORDS__:X.__VUE_DEVTOOLS_KIT_APP_RECORDS__[t]}}),qe=new Proxy(X.__VUE_DEVTOOLS_KIT_ACTIVE_APP_RECORD__,{get(e,t,n){return t==="value"?X.__VUE_DEVTOOLS_KIT_ACTIVE_APP_RECORD__:t==="id"?X.__VUE_DEVTOOLS_KIT_ACTIVE_APP_RECORD_ID__:X.__VUE_DEVTOOLS_KIT_ACTIVE_APP_RECORD__[t]}});function Lf(){L0({...X[bn],appRecords:Wo.value,activeAppRecordId:qe.id,tabs:X.__VUE_DEVTOOLS_KIT_CUSTOM_TABS__,commands:X.__VUE_DEVTOOLS_KIT_CUSTOM_COMMANDS__})}function D0(e){X.__VUE_DEVTOOLS_KIT_ACTIVE_APP_RECORD__=e,Lf()}function N0(e){X.__VUE_DEVTOOLS_KIT_ACTIVE_APP_RECORD_ID__=e,Lf()}var Me=new Proxy(X[bn],{get(e,t){return t==="appRecords"?Wo:t==="activeAppRecordId"?qe.id:t==="tabs"?X.__VUE_DEVTOOLS_KIT_CUSTOM_TABS__:t==="commands"?X.__VUE_DEVTOOLS_KIT_CUSTOM_COMMANDS__:X[bn][t]},deleteProperty(e,t){return delete e[t],!0},set(e,t,n){return{...X[bn]},e[t]=n,X[bn][t]=n,!0}});function V0(e={}){var t,n,r;const{file:o,host:s,baseUrl:i=window.location.origin,line:a=0,column:l=0}=e;if(o){if(s==="chrome-extension"){const u=o.replace(/\\/g,"\\\\"),c=(n=(t=window.VUE_DEVTOOLS_CONFIG)==null?void 0:t.openInEditorHost)!=null?n:"/";fetch(`${c}__open-in-editor?file=${encodeURI(o)}`).then(f=>{if(!f.ok){const d=`Opening component ${u} failed`;console.log(`%c${d}`,"color:red")}})}else if(Me.vitePluginDetected){const u=(r=X.__VUE_DEVTOOLS_OPEN_IN_EDITOR_BASE_URL__)!=null?r:i;X.__VUE_INSPECTOR__.openInEditor(u,o,a,l)}}}P();P();P();P();P();var Sl,Al;(Al=(Sl=X).__VUE_DEVTOOLS_KIT_PLUGIN_BUFFER__)!=null||(Sl.__VUE_DEVTOOLS_KIT_PLUGIN_BUFFER__=[]);var Ii=new Proxy(X.__VUE_DEVTOOLS_KIT_PLUGIN_BUFFER__,{get(e,t,n){return Reflect.get(e,t,n)}});function Us(e){const t={};return Object.keys(e).forEach(n=>{t[n]=e[n].defaultValue}),t}function Ri(e){return`__VUE_DEVTOOLS_NEXT_PLUGIN_SETTINGS__${e}__`}function M0(e){var t,n,r;const o=(n=(t=Ii.find(s=>{var i;return s[0].id===e&&!!((i=s[0])!=null&&i.settings)}))==null?void 0:t[0])!=null?n:null;return(r=o==null?void 0:o.settings)!=null?r:null}function Df(e,t){var n,r,o;const s=Ri(e);if(s){const i=localStorage.getItem(s);if(i)return JSON.parse(i)}if(e){const i=(r=(n=Ii.find(a=>a[0].id===e))==null?void 0:n[0])!=null?r:null;return Us((o=i==null?void 0:i.settings)!=null?o:{})}return Us(t)}function F0(e,t){const n=Ri(e);localStorage.getItem(n)||localStorage.setItem(n,JSON.stringify(Us(t)))}function H0(e,t,n){const r=Ri(e),o=localStorage.getItem(r),s=JSON.parse(o||"{}"),i={...s,[t]:n};localStorage.setItem(r,JSON.stringify(i)),or.hooks.callHookWith(a=>{a.forEach(l=>l({pluginId:e,key:t,oldValue:s[t],newValue:n,settings:i}))},"setPluginSettings")}P();P();P();P();P();P();P();P();P();P();P();var Cl,wl,lt=(wl=(Cl=X).__VUE_DEVTOOLS_HOOK)!=null?wl:Cl.__VUE_DEVTOOLS_HOOK=bf(),$0={vueAppInit(e){lt.hook("app:init",e)},vueAppUnmount(e){lt.hook("app:unmount",e)},vueAppConnected(e){lt.hook("app:connected",e)},componentAdded(e){return lt.hook("component:added",e)},componentEmit(e){return lt.hook("component:emit",e)},componentUpdated(e){return lt.hook("component:updated",e)},componentRemoved(e){return lt.hook("component:removed",e)},setupDevtoolsPlugin(e){lt.hook("devtools-plugin:setup",e)},perfStart(e){return lt.hook("perf:start",e)},perfEnd(e){return lt.hook("perf:end",e)}},Nf={on:$0,setupDevToolsPlugin(e,t){return lt.callHook("devtools-plugin:setup",e,t)}},B0=class{constructor({plugin:e,ctx:t}){this.hooks=t.hooks,this.plugin=e}get on(){return{visitComponentTree:e=>{this.hooks.hook("visitComponentTree",e)},inspectComponent:e=>{this.hooks.hook("inspectComponent",e)},editComponentState:e=>{this.hooks.hook("editComponentState",e)},getInspectorTree:e=>{this.hooks.hook("getInspectorTree",e)},getInspectorState:e=>{this.hooks.hook("getInspectorState",e)},editInspectorState:e=>{this.hooks.hook("editInspectorState",e)},inspectTimelineEvent:e=>{this.hooks.hook("inspectTimelineEvent",e)},timelineCleared:e=>{this.hooks.hook("timelineCleared",e)},setPluginSettings:e=>{this.hooks.hook("setPluginSettings",e)}}}notifyComponentUpdate(e){var t;if(Me.highPerfModeEnabled)return;const n=Rf().find(r=>r.packageName===this.plugin.descriptor.packageName);if(n!=null&&n.id){if(e){const r=[e.appContext.app,e.uid,(t=e.parent)==null?void 0:t.uid,e];lt.callHook("component:updated",...r)}else lt.callHook("component:updated");this.hooks.callHook("sendInspectorState",{inspectorId:n.id,plugin:this.plugin})}}addInspector(e){this.hooks.callHook("addInspector",{inspector:e,plugin:this.plugin}),this.plugin.descriptor.settings&&F0(e.id,this.plugin.descriptor.settings)}sendInspectorTree(e){Me.highPerfModeEnabled||this.hooks.callHook("sendInspectorTree",{inspectorId:e,plugin:this.plugin})}sendInspectorState(e){Me.highPerfModeEnabled||this.hooks.callHook("sendInspectorState",{inspectorId:e,plugin:this.plugin})}selectInspectorNode(e,t){this.hooks.callHook("customInspectorSelectNode",{inspectorId:e,nodeId:t,plugin:this.plugin})}visitComponentTree(e){return this.hooks.callHook("visitComponentTree",e)}now(){return Me.highPerfModeEnabled?0:Date.now()}addTimelineLayer(e){this.hooks.callHook("timelineLayerAdded",{options:e,plugin:this.plugin})}addTimelineEvent(e){Me.highPerfModeEnabled||this.hooks.callHook("timelineEventAdded",{options:e,plugin:this.plugin})}getSettings(e){return Df(e??this.plugin.descriptor.id,this.plugin.descriptor.settings)}getComponentInstances(e){return this.hooks.callHook("getComponentInstances",{app:e})}getComponentBounds(e){return this.hooks.callHook("getComponentBounds",{instance:e})}getComponentName(e){return this.hooks.callHook("getComponentName",{instance:e})}highlightElement(e){const t=e.__VUE_DEVTOOLS_NEXT_UID__;return this.hooks.callHook("componentHighlight",{uid:t})}unhighlightElement(){return this.hooks.callHook("componentUnhighlight")}},U0=B0;P();P();P();P();var j0="__vue_devtool_undefined__",z0="__vue_devtool_infinity__",K0="__vue_devtool_negative_infinity__",W0="__vue_devtool_nan__";P();P();var q0={[j0]:"undefined",[W0]:"NaN",[z0]:"Infinity",[K0]:"-Infinity"};Object.entries(q0).reduce((e,[t,n])=>(e[n]=t,e),{});P();P();P();P();P();var Tl,Ol;(Ol=(Tl=X).__VUE_DEVTOOLS_KIT__REGISTERED_PLUGIN_APPS__)!=null||(Tl.__VUE_DEVTOOLS_KIT__REGISTERED_PLUGIN_APPS__=new Set);function G0(e,t){return Nf.setupDevToolsPlugin(e,t)}function Y0(e,t){const[n,r]=e;if(n.app!==t)return;const o=new U0({plugin:{setupFn:r,descriptor:n},ctx:or});n.packageName==="vuex"&&o.on.editInspectorState(s=>{o.sendInspectorState(s.inspectorId)}),r(o)}function Vf(e){X.__VUE_DEVTOOLS_KIT__REGISTERED_PLUGIN_APPS__.has(e)||Me.highPerfModeEnabled||(X.__VUE_DEVTOOLS_KIT__REGISTERED_PLUGIN_APPS__.add(e),Ii.forEach(t=>{Y0(t,e)}))}P();P();var Nr="__VUE_DEVTOOLS_ROUTER__",Wn="__VUE_DEVTOOLS_ROUTER_INFO__",xl,kl;(kl=(xl=X)[Wn])!=null||(xl[Wn]={currentRoute:null,routes:[]});var Pl,Il;(Il=(Pl=X)[Nr])!=null||(Pl[Nr]={});new Proxy(X[Wn],{get(e,t){return X[Wn][t]}});new Proxy(X[Nr],{get(e,t){if(t==="value")return X[Nr]}});function X0(e){const t=new Map;return((e==null?void 0:e.getRoutes())||[]).filter(n=>!t.has(n.path)&&t.set(n.path,1))}function Li(e){return e.map(t=>{let{path:n,name:r,children:o,meta:s}=t;return o!=null&&o.length&&(o=Li(o)),{path:n,name:r,children:o,meta:s}})}function Z0(e){if(e){const{fullPath:t,hash:n,href:r,path:o,name:s,matched:i,params:a,query:l}=e;return{fullPath:t,hash:n,href:r,path:o,name:s,params:a,query:l,matched:Li(i)}}return e}function Q0(e,t){function n(){var r;const o=(r=e.app)==null?void 0:r.config.globalProperties.$router,s=Z0(o==null?void 0:o.currentRoute.value),i=Li(X0(o)),a=console.warn;console.warn=()=>{},X[Wn]={currentRoute:s?tl(s):{},routes:tl(i)},X[Nr]=o,console.warn=a}n(),Nf.on.componentUpdated(Kn(()=>{var r;((r=t.value)==null?void 0:r.app)===e.app&&(n(),!Me.highPerfModeEnabled&&or.hooks.callHook("routerInfoUpdated",{state:X[Wn]}))},200))}function J0(e){return{async getInspectorTree(t){const n={...t,app:qe.value.app,rootNodes:[]};return await new Promise(r=>{e.callHookWith(async o=>{await Promise.all(o.map(s=>s(n))),r()},"getInspectorTree")}),n.rootNodes},async getInspectorState(t){const n={...t,app:qe.value.app,state:null},r={currentTab:`custom-inspector:${t.inspectorId}`};return await new Promise(o=>{e.callHookWith(async s=>{await Promise.all(s.map(i=>i(n,r))),o()},"getInspectorState")}),n.state},editInspectorState(t){const n=new C0,r={...t,app:qe.value.app,set:(o,s=t.path,i=t.state.value,a)=>{n.set(o,s,i,a||n.createDefaultSetCallback(t.state))}};e.callHookWith(o=>{o.forEach(s=>s(r))},"editInspectorState")},sendInspectorState(t){const n=fo(t);e.callHook("sendInspectorState",{inspectorId:t,plugin:{descriptor:n.descriptor,setupFn:()=>({})}})},inspectComponentInspector(){return _0()},cancelInspectComponentInspector(){return v0()},getComponentRenderCode(t){const n=Hs(qe.value,t);if(n)return(n==null?void 0:n.type)instanceof Function?n.type.toString():n.render.toString()},scrollToComponent(t){return y0({id:t})},openInEditor:V0,getVueInspector:S0,toggleApp(t){const n=Wo.value.find(r=>r.id===t);n&&(N0(t),D0(n),Q0(n,qe),If(),Vf(n.app))},inspectDOM(t){const n=Hs(qe.value,t);if(n){const[r]=Ti(n);r&&(X.__VUE_DEVTOOLS_INSPECT_DOM_TARGET__=r)}},updatePluginSettings(t,n,r){H0(t,n,r)},getPluginSettings(t){return{options:M0(t),values:Df(t)}}}}P();var Rl,Ll;(Ll=(Rl=X).__VUE_DEVTOOLS_ENV__)!=null||(Rl.__VUE_DEVTOOLS_ENV__={vitePluginDetected:!1});var Dl=I0(),Nl,Vl;(Vl=(Nl=X).__VUE_DEVTOOLS_KIT_CONTEXT__)!=null||(Nl.__VUE_DEVTOOLS_KIT_CONTEXT__={hooks:Dl,get state(){return{...Me,activeAppRecordId:qe.id,activeAppRecord:qe.value,appRecords:Wo.value}},api:J0(Dl)});var or=X.__VUE_DEVTOOLS_KIT_CONTEXT__;P();J_(t0());var Ml,Fl;(Fl=(Ml=X).__VUE_DEVTOOLS_NEXT_APP_RECORD_INFO__)!=null||(Ml.__VUE_DEVTOOLS_NEXT_APP_RECORD_INFO__={id:0,appIds:new Set});P();function e1(e){Me.highPerfModeEnabled=e??!Me.highPerfModeEnabled,!e&&qe.value&&Vf(qe.value.app)}P();P();P();function t1(e){Me.devtoolsClientDetected={...Me.devtoolsClientDetected,...e};const t=Object.values(Me.devtoolsClientDetected).some(Boolean);e1(!t)}var Hl,$l;($l=(Hl=X).__VUE_DEVTOOLS_UPDATE_CLIENT_DETECTED__)!=null||(Hl.__VUE_DEVTOOLS_UPDATE_CLIENT_DETECTED__=t1);P();P();P();P();P();P();P();var n1=class{constructor(){this.keyToValue=new Map,this.valueToKey=new Map}set(e,t){this.keyToValue.set(e,t),this.valueToKey.set(t,e)}getByKey(e){return this.keyToValue.get(e)}getByValue(e){return this.valueToKey.get(e)}clear(){this.keyToValue.clear(),this.valueToKey.clear()}},Mf=class{constructor(e){this.generateIdentifier=e,this.kv=new n1}register(e,t){this.kv.getByValue(e)||(t||(t=this.generateIdentifier(e)),this.kv.set(t,e))}clear(){this.kv.clear()}getIdentifier(e){return this.kv.getByValue(e)}getValue(e){return this.kv.getByKey(e)}},r1=class extends Mf{constructor(){super(e=>e.name),this.classToAllowedProps=new Map}register(e,t){typeof t=="object"?(t.allowProps&&this.classToAllowedProps.set(e,t.allowProps),super.register(e,t.identifier)):super.register(e,t)}getAllowedProps(e){return this.classToAllowedProps.get(e)}};P();P();function o1(e){if("values"in Object)return Object.values(e);const t=[];for(const n in e)e.hasOwnProperty(n)&&t.push(e[n]);return t}function s1(e,t){const n=o1(e);if("find"in n)return n.find(t);const r=n;for(let o=0;ot(r,n))}function po(e,t){return e.indexOf(t)!==-1}function Bl(e,t){for(let n=0;nt.isApplicable(e))}findByName(e){return this.transfomers[e]}};P();P();var a1=e=>Object.prototype.toString.call(e).slice(8,-1),Ff=e=>typeof e>"u",l1=e=>e===null,Vr=e=>typeof e!="object"||e===null||e===Object.prototype?!1:Object.getPrototypeOf(e)===null?!0:Object.getPrototypeOf(e)===Object.prototype,js=e=>Vr(e)&&Object.keys(e).length===0,an=e=>Array.isArray(e),u1=e=>typeof e=="string",c1=e=>typeof e=="number"&&!isNaN(e),f1=e=>typeof e=="boolean",d1=e=>e instanceof RegExp,Mr=e=>e instanceof Map,Fr=e=>e instanceof Set,Hf=e=>a1(e)==="Symbol",p1=e=>e instanceof Date&&!isNaN(e.valueOf()),h1=e=>e instanceof Error,Ul=e=>typeof e=="number"&&isNaN(e),m1=e=>f1(e)||l1(e)||Ff(e)||c1(e)||u1(e)||Hf(e),g1=e=>typeof e=="bigint",v1=e=>e===1/0||e===-1/0,_1=e=>ArrayBuffer.isView(e)&&!(e instanceof DataView),y1=e=>e instanceof URL;P();var $f=e=>e.replace(/\./g,"\\."),vs=e=>e.map(String).map($f).join("."),wr=e=>{const t=[];let n="";for(let o=0;onull,()=>{}),wt(g1,"bigint",e=>e.toString(),e=>typeof BigInt<"u"?BigInt(e):(console.error("Please add a BigInt polyfill."),e)),wt(p1,"Date",e=>e.toISOString(),e=>new Date(e)),wt(h1,"Error",(e,t)=>{const n={name:e.name,message:e.message};return t.allowedErrorProps.forEach(r=>{n[r]=e[r]}),n},(e,t)=>{const n=new Error(e.message);return n.name=e.name,n.stack=e.stack,t.allowedErrorProps.forEach(r=>{n[r]=e[r]}),n}),wt(d1,"regexp",e=>""+e,e=>{const t=e.slice(1,e.lastIndexOf("/")),n=e.slice(e.lastIndexOf("/")+1);return new RegExp(t,n)}),wt(Fr,"set",e=>[...e.values()],e=>new Set(e)),wt(Mr,"map",e=>[...e.entries()],e=>new Map(e)),wt(e=>Ul(e)||v1(e),"number",e=>Ul(e)?"NaN":e>0?"Infinity":"-Infinity",Number),wt(e=>e===0&&1/e===-1/0,"number",()=>"-0",Number),wt(y1,"URL",e=>e.toString(),e=>new URL(e))];function qo(e,t,n,r){return{isApplicable:e,annotation:t,transform:n,untransform:r}}var Uf=qo((e,t)=>Hf(e)?!!t.symbolRegistry.getIdentifier(e):!1,(e,t)=>["symbol",t.symbolRegistry.getIdentifier(e)],e=>e.description,(e,t,n)=>{const r=n.symbolRegistry.getValue(t[1]);if(!r)throw new Error("Trying to deserialize unknown symbol");return r}),b1=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array,Uint8ClampedArray].reduce((e,t)=>(e[t.name]=t,e),{}),jf=qo(_1,e=>["typed-array",e.constructor.name],e=>[...e],(e,t)=>{const n=b1[t[1]];if(!n)throw new Error("Trying to deserialize unknown typed array");return new n(e)});function zf(e,t){return e!=null&&e.constructor?!!t.classRegistry.getIdentifier(e.constructor):!1}var Kf=qo(zf,(e,t)=>["class",t.classRegistry.getIdentifier(e.constructor)],(e,t)=>{const n=t.classRegistry.getAllowedProps(e.constructor);if(!n)return{...e};const r={};return n.forEach(o=>{r[o]=e[o]}),r},(e,t,n)=>{const r=n.classRegistry.getValue(t[1]);if(!r)throw new Error("Trying to deserialize unknown class - check https://github.com/blitz-js/superjson/issues/116#issuecomment-773996564");return Object.assign(Object.create(r.prototype),e)}),Wf=qo((e,t)=>!!t.customTransformerRegistry.findApplicable(e),(e,t)=>["custom",t.customTransformerRegistry.findApplicable(e).name],(e,t)=>t.customTransformerRegistry.findApplicable(e).serialize(e),(e,t,n)=>{const r=n.customTransformerRegistry.findByName(t[1]);if(!r)throw new Error("Trying to deserialize unknown custom value");return r.deserialize(e)}),E1=[Kf,Uf,Wf,jf],jl=(e,t)=>{const n=Bl(E1,o=>o.isApplicable(e,t));if(n)return{value:n.transform(e,t),type:n.annotation(e,t)};const r=Bl(Bf,o=>o.isApplicable(e,t));if(r)return{value:r.transform(e,t),type:r.annotation}},qf={};Bf.forEach(e=>{qf[e.annotation]=e});var S1=(e,t,n)=>{if(an(t))switch(t[0]){case"symbol":return Uf.untransform(e,t,n);case"class":return Kf.untransform(e,t,n);case"custom":return Wf.untransform(e,t,n);case"typed-array":return jf.untransform(e,t,n);default:throw new Error("Unknown transformation: "+t)}else{const r=qf[t];if(!r)throw new Error("Unknown transformation: "+t);return r.untransform(e,n)}};P();var In=(e,t)=>{const n=e.keys();for(;t>0;)n.next(),t--;return n.next().value};function Gf(e){if(po(e,"__proto__"))throw new Error("__proto__ is not allowed as a property");if(po(e,"prototype"))throw new Error("prototype is not allowed as a property");if(po(e,"constructor"))throw new Error("constructor is not allowed as a property")}var A1=(e,t)=>{Gf(t);for(let n=0;n{if(Gf(t),t.length===0)return n(e);let r=e;for(let s=0;sKs(s,t,[...n,...wr(i)]));return}const[r,o]=e;o&&qn(o,(s,i)=>{Ks(s,t,[...n,...wr(i)])}),t(r,n)}function C1(e,t,n){return Ks(t,(r,o)=>{e=zs(e,o,s=>S1(s,r,n))}),e}function w1(e,t){function n(r,o){const s=A1(e,wr(o));r.map(wr).forEach(i=>{e=zs(e,i,()=>s)})}if(an(t)){const[r,o]=t;r.forEach(s=>{e=zs(e,wr(s),()=>e)}),o&&qn(o,n)}else qn(t,n);return e}var T1=(e,t)=>Vr(e)||an(e)||Mr(e)||Fr(e)||zf(e,t);function O1(e,t,n){const r=n.get(e);r?r.push(t):n.set(e,[t])}function x1(e,t){const n={};let r;return e.forEach(o=>{if(o.length<=1)return;t||(o=o.map(a=>a.map(String)).sort((a,l)=>a.length-l.length));const[s,...i]=o;s.length===0?r=i.map(vs):n[vs(s)]=i.map(vs)}),r?js(n)?[r]:[r,n]:js(n)?void 0:n}var Yf=(e,t,n,r,o=[],s=[],i=new Map)=>{var a;const l=m1(e);if(!l){O1(e,o,t);const v=i.get(e);if(v)return r?{transformedValue:null}:v}if(!T1(e,n)){const v=jl(e,n),_=v?{transformedValue:v.value,annotations:[v.type]}:{transformedValue:e};return l||i.set(e,_),_}if(po(s,e))return{transformedValue:null};const u=jl(e,n),c=(a=u==null?void 0:u.value)!=null?a:e,f=an(c)?[]:{},d={};qn(c,(v,_)=>{if(_==="__proto__"||_==="constructor"||_==="prototype")throw new Error(`Detected property ${_}. This is a prototype pollution risk, please remove it from your object.`);const b=Yf(v,t,n,r,[...o,_],[...s,e],i);f[_]=b.transformedValue,an(b.annotations)?d[_]=b.annotations:Vr(b.annotations)&&qn(b.annotations,(E,A)=>{d[$f(_)+"."+A]=E})});const p=js(d)?{transformedValue:f,annotations:u?[u.type]:void 0}:{transformedValue:f,annotations:u?[u.type,d]:d};return l||i.set(e,p),p};P();P();function Xf(e){return Object.prototype.toString.call(e).slice(8,-1)}function zl(e){return Xf(e)==="Array"}function k1(e){if(Xf(e)!=="Object")return!1;const t=Object.getPrototypeOf(e);return!!t&&t.constructor===Object&&t===Object.prototype}function P1(e,t,n,r,o){const s={}.propertyIsEnumerable.call(r,t)?"enumerable":"nonenumerable";s==="enumerable"&&(e[t]=n),o&&s==="nonenumerable"&&Object.defineProperty(e,t,{value:n,enumerable:!1,writable:!0,configurable:!0})}function Ws(e,t={}){if(zl(e))return e.map(o=>Ws(o,t));if(!k1(e))return e;const n=Object.getOwnPropertyNames(e),r=Object.getOwnPropertySymbols(e);return[...n,...r].reduce((o,s)=>{if(zl(t.props)&&!t.props.includes(s))return o;const i=e[s],a=Ws(i,t);return P1(o,s,a,e,t.nonenumerable),o},{})}var we=class{constructor({dedupe:e=!1}={}){this.classRegistry=new r1,this.symbolRegistry=new Mf(t=>{var n;return(n=t.description)!=null?n:""}),this.customTransformerRegistry=new i1,this.allowedErrorProps=[],this.dedupe=e}serialize(e){const t=new Map,n=Yf(e,t,this,this.dedupe),r={json:n.transformedValue};n.annotations&&(r.meta={...r.meta,values:n.annotations});const o=x1(t,this.dedupe);return o&&(r.meta={...r.meta,referentialEqualities:o}),r}deserialize(e){const{json:t,meta:n}=e;let r=Ws(t);return n!=null&&n.values&&(r=C1(r,n.values,this)),n!=null&&n.referentialEqualities&&(r=w1(r,n.referentialEqualities)),r}stringify(e){return JSON.stringify(this.serialize(e))}parse(e){return this.deserialize(JSON.parse(e))}registerClass(e,t){this.classRegistry.register(e,t)}registerSymbol(e,t){this.symbolRegistry.register(e,t)}registerCustom(e,t){this.customTransformerRegistry.register({name:t,...e})}allowErrorProps(...e){this.allowedErrorProps.push(...e)}};we.defaultInstance=new we;we.serialize=we.defaultInstance.serialize.bind(we.defaultInstance);we.deserialize=we.defaultInstance.deserialize.bind(we.defaultInstance);we.stringify=we.defaultInstance.stringify.bind(we.defaultInstance);we.parse=we.defaultInstance.parse.bind(we.defaultInstance);we.registerClass=we.defaultInstance.registerClass.bind(we.defaultInstance);we.registerSymbol=we.defaultInstance.registerSymbol.bind(we.defaultInstance);we.registerCustom=we.defaultInstance.registerCustom.bind(we.defaultInstance);we.allowErrorProps=we.defaultInstance.allowErrorProps.bind(we.defaultInstance);P();P();P();P();P();P();P();P();P();P();P();P();P();P();P();P();P();P();P();P();P();P();P();var Kl,Wl;(Wl=(Kl=X).__VUE_DEVTOOLS_KIT_MESSAGE_CHANNELS__)!=null||(Kl.__VUE_DEVTOOLS_KIT_MESSAGE_CHANNELS__=[]);var ql,Gl;(Gl=(ql=X).__VUE_DEVTOOLS_KIT_RPC_CLIENT__)!=null||(ql.__VUE_DEVTOOLS_KIT_RPC_CLIENT__=null);var Yl,Xl;(Xl=(Yl=X).__VUE_DEVTOOLS_KIT_RPC_SERVER__)!=null||(Yl.__VUE_DEVTOOLS_KIT_RPC_SERVER__=null);var Zl,Ql;(Ql=(Zl=X).__VUE_DEVTOOLS_KIT_VITE_RPC_CLIENT__)!=null||(Zl.__VUE_DEVTOOLS_KIT_VITE_RPC_CLIENT__=null);var Jl,eu;(eu=(Jl=X).__VUE_DEVTOOLS_KIT_VITE_RPC_SERVER__)!=null||(Jl.__VUE_DEVTOOLS_KIT_VITE_RPC_SERVER__=null);var tu,nu;(nu=(tu=X).__VUE_DEVTOOLS_KIT_BROADCAST_RPC_SERVER__)!=null||(tu.__VUE_DEVTOOLS_KIT_BROADCAST_RPC_SERVER__=null);P();P();P();P();P();P();P();const I1=JSON.parse(`{"logo":"logo_worldline.png","repo":"https://github.com/worldline/learning-ai","sidebar":[{"text":"Home","link":"/"},"/overview/","/use/","/llm/","/offline/","/develop/","/services/"],"locales":{"/":{"selectLanguageName":"English"}},"colorMode":"auto","colorModeSwitch":true,"navbar":[],"selectLanguageText":"Languages","selectLanguageAriaLabel":"Select language","sidebarDepth":2,"editLink":true,"editLinkText":"Edit this page","lastUpdated":true,"lastUpdatedText":"Last Updated","contributors":true,"contributorsText":"Contributors","notFound":["There's nothing here.","How did we get here?","That's a Four-Oh-Four.","Looks like we've got some broken links."],"backToHome":"Take me home","openInNewWindow":"open in new window","toggleColorMode":"toggle color mode","toggleSidebar":"toggle sidebar"}`),R1=ge(I1),Zf=()=>R1,Qf=Symbol(""),L1=()=>{const e=Ge(Qf);if(!e)throw new Error("useThemeLocaleData() is called without provider.");return e},D1=(e,t)=>{const{locales:n,...r}=e;return{...r,...n==null?void 0:n[t]}},N1=un({enhance({app:e}){const t=Zf(),n=e._context.provides[tf],r=F(()=>D1(t.value,n.routeLocale.value));e.provide(Qf,r),Object.defineProperties(e.config.globalProperties,{$theme:{get(){return t.value}},$themeLocale:{get(){return r.value}}}),G0({app:e,id:"org.vuejs.vuepress.plugin-theme-data",label:"VuePress Theme Data Plugin",packageName:"@vuepress/plugin-theme-data",homepage:"https://v2.vuepress.vuejs.org",logo:"https://v2.vuepress.vuejs.org/images/hero.png",componentStateTypes:["VuePress"]},o=>{o.on.inspectComponent(s=>{s.instanceData.state.push({type:"VuePress",key:"themeData",editable:!1,value:t.value},{type:"VuePress",key:"themeLocaleData",editable:!1,value:r.value})})})}}),V1=Object.freeze(Object.defineProperty({__proto__:null,default:N1},Symbol.toStringTag,{value:"Module"})),M1=()=>Zf(),He=()=>L1(),Jf=Symbol(""),F1=e=>{const t=(n=e.value)=>{const r=window.document.documentElement;r.dataset.theme=n?"dark":"light"};Ye(()=>{Ue(e,t,{immediate:!0})}),No(()=>{t()})},Di=()=>{const e=Ge(Jf);if(!e)throw new Error("useDarkMode() is called without provider.");return e},H1=()=>{const e=He(),t=yv(),n=Ai("vuepress-color-scheme",e.value.colorMode),r=F({get(){return e.value.colorModeSwitch?n.value==="auto"?t.value:n.value==="dark":e.value.colorMode==="dark"},set(o){o===t.value?n.value="auto":n.value=o?"dark":"light"}});An(Jf,r),F1(r)};let _s=null,fr=null;const $1={wait:()=>_s,pending:()=>{_s=new Promise(e=>{fr=e})},resolve:()=>{fr==null||fr(),_s=null,fr=null}},ed=()=>$1,Gn=(e,t)=>{const{notFound:n,meta:r,path:o}=wo(e,t);return n?{text:o,link:o}:{text:r.title||o,link:o}},ru=e=>decodeURI(e).replace(/#.*$/,"").replace(/(index)?\.(md|html)$/,""),B1=(e,t)=>{if(t.hash===e)return!0;const n=ru(t.path),r=ru(e);return n===r},td=(e,t)=>e.link&&B1(e.link,t)?!0:"children"in e?e.children.some(n=>td(n,t)):!1,nd=e=>!fm(e)&&!Kr(e),rd=e=>!Wr(e)||e.includes("github.com")?"GitHub":e.includes("bitbucket.org")?"Bitbucket":e.includes("gitlab.com")?"GitLab":e.includes("gitee.com")?"Gitee":null,U1={GitHub:":repo/edit/:branch/:path",GitLab:":repo/-/edit/:branch/:path",Gitee:":repo/edit/:branch/:path",Bitbucket:":repo/src/:branch/:path?mode=edit&spa=0&at=:branch&fileviewer=file-view-default"},j1=({docsRepo:e,editLinkPattern:t})=>{if(t)return t;const n=rd(e);return n!==null?U1[n]:null},z1=({docsRepo:e,docsBranch:t,docsDir:n,filePathRelative:r,editLinkPattern:o})=>{if(!r)return null;const s=j1({docsRepo:e,editLinkPattern:o});return s?s.replace(/:repo/,Wr(e)?e:`https://github.com/${e}`).replace(/:branch/,t).replace(/:path/,hi(`${xc(n)}/${r}`)):null},$n=(e="",t="")=>gf(t)||Kr(t)?t:`${vm(e)}${t}`,ho=ge([]),K1=()=>{const e=ln(),t=He(),n=At(),r=F(()=>n.value.sidebarDepth??t.value.sidebarDepth??2);e.beforeEach((s,i)=>{s.path!==i.path&&(ho.value=[])});const o=()=>{if(r.value<=0){ho.value=[];return}ho.value=Nv({levels:[2,r.value+1],ignore:[".vp-badge"]})};Ue(r,o),Ye(o)},W1=()=>ho,q1=e=>({text:e.title,link:e.link,children:Ni(e.children)}),Ni=e=>e?e.map(t=>q1(t)):[],od=(e,t)=>[{text:e.title,children:Ni(t)}],sd=(e,t,n,r="")=>{const o=(s,i)=>{var l;const a=ct(s)?Gn($n(i,s)):ct(s.link)?{...s,link:nd(s.link)?Gn($n(i,s.link)).link:s.link}:s;if("children"in a)return{...a,children:a.children.map(u=>o(u,$n(i,a.prefix)))};if(a.link===n){const u=((l=t[0])==null?void 0:l.level)===1?t[0].children:t;return{...a,children:Ni(u)}}return a};return e.map(s=>o(s,r))},G1=(e,t,n,r)=>{const o=Fv(e).sort((s,i)=>i.length-s.length);for(const s of o)if(mf(decodeURI(r),s)){const i=e[s];return i?i==="heading"?od(t,n):sd(i,n,r,s):[]}return console.warn(`${decodeURI(r)} is missing sidebar config.`),[]},id=Symbol("sidebarItems"),Vi=()=>{const e=Ge(id);if(!e)throw new Error("useSidebarItems() is called without provider.");return e},Y1=(e,t,n,r,o)=>e===!1?[]:e==="heading"?od(t,o):Array.isArray(e)?sd(e,o,n,r):mi(e)?G1(e,t,o,n):[],X1=()=>{const e=He(),t=At(),n=tr(),r=Pt(),o=qr(),s=W1(),i=F(()=>t.value.home?!1:t.value.sidebar??e.value.sidebar??"heading"),a=F(()=>Y1(i.value,n.value,r.path,o.value,s.value));An(id,a)},Z1=de({__name:"Badge",props:{type:{default:"tip"},text:{default:""},vertical:{default:void 0}},setup(e,{expose:t}){t();const n={};return Object.defineProperty(n,"__isScriptSetup",{enumerable:!1,value:!0}),n}}),ke=(e,t)=>{const n=e.__vccOpts||e;for(const[r,o]of t)n[r]=o;return n};function Q1(e,t,n,r,o,s){return Y(),ne("span",{class:nt(["vp-badge",n.type]),style:Xn({verticalAlign:n.vertical})},[Re(e.$slots,"default",{},()=>[rn(Ie(n.text),1)])],6)}const J1=ke(Z1,[["render",Q1],["__file","Badge.vue"]]),ey=de({__name:"VPHomeFeatures",setup(e,{expose:t}){t();const n=At(),r=F(()=>n.value.features??[]),o={frontmatter:n,features:r};return Object.defineProperty(o,"__isScriptSetup",{enumerable:!1,value:!0}),o}}),ty={key:0,class:"vp-features"};function ny(e,t,n,r,o,s){return r.features.length?(Y(),ne("div",ty,[(Y(!0),ne(_e,null,tn(r.features,i=>(Y(),ne("div",{key:i.title,class:"vp-feature"},[ie("h2",null,Ie(i.title),1),ie("p",null,Ie(i.details),1)]))),128))])):Fe("",!0)}const ry=ke(ey,[["render",ny],["__file","VPHomeFeatures.vue"]]),oy=de({__name:"VPHomeFooter",setup(e,{expose:t}){t();const n=At(),r=F(()=>n.value.footer),o=F(()=>n.value.footerHtml),s={frontmatter:n,footer:r,footerHtml:o};return Object.defineProperty(s,"__isScriptSetup",{enumerable:!1,value:!0}),s}}),sy=["innerHTML"],iy=["textContent"];function ay(e,t,n,r,o,s){return r.footer?(Y(),ne(_e,{key:0},[r.footerHtml?(Y(),ne("div",{key:0,class:"vp-footer","vp-footer":"",innerHTML:r.footer},null,8,sy)):(Y(),ne("div",{key:1,class:"vp-footer","vp-footer":"",textContent:Ie(r.footer)},null,8,iy))],64)):Fe("",!0)}const ly=ke(oy,[["render",ay],["__file","VPHomeFooter.vue"]]),uy=de({__name:"VPHomeHero",setup(e,{expose:t}){t();const n=At(),r=_i(),o=Di(),s=F(()=>n.value.heroText===null?null:n.value.heroText||r.value.title||"Hello"),i=F(()=>n.value.tagline===null?null:n.value.tagline||r.value.description||"Welcome to your VuePress site"),a=F(()=>o.value&&n.value.heroImageDark!==void 0?n.value.heroImageDark:n.value.heroImage),l=F(()=>n.value.heroAlt||s.value||"hero"),u=F(()=>n.value.heroHeight??280),c=F(()=>Array.isArray(n.value.actions)?n.value.actions.map(({text:p,link:v,type:_="primary"})=>({text:p,link:v,type:_})):[]),d={frontmatter:n,siteLocale:r,isDarkMode:o,heroText:s,tagline:i,heroImage:a,heroAlt:l,heroHeight:u,actions:c,HomeHeroImage:()=>{if(!a.value)return null;const p=he("img",{class:"vp-hero-image",src:af(a.value),alt:l.value,height:u.value});return n.value.heroImageDark===void 0?p:he(of,()=>p)},get AutoLink(){return nr}};return Object.defineProperty(d,"__isScriptSetup",{enumerable:!1,value:!0}),d}}),cy={class:"vp-hero"},fy={key:0,id:"main-title"},dy={key:1,class:"vp-hero-description"},py={key:2,class:"vp-hero-actions"};function hy(e,t,n,r,o,s){return Y(),ne("header",cy,[ae(r.HomeHeroImage),r.heroText?(Y(),ne("h1",fy,Ie(r.heroText),1)):Fe("",!0),r.tagline?(Y(),ne("p",dy,Ie(r.tagline),1)):Fe("",!0),r.actions.length?(Y(),ne("p",py,[(Y(!0),ne(_e,null,tn(r.actions,i=>(Y(),Le(r.AutoLink,{key:i.text,class:nt(["vp-hero-action-button",[i.type]]),config:i},null,8,["class","config"]))),128))])):Fe("",!0)])}const my=ke(uy,[["render",hy],["__file","VPHomeHero.vue"]]),gy=de({__name:"VPHome",setup(e,{expose:t}){t();const n={VPHomeFeatures:ry,VPHomeFooter:ly,VPHomeHero:my,get Content(){return sf}};return Object.defineProperty(n,"__isScriptSetup",{enumerable:!1,value:!0}),n}}),vy={class:"vp-home"},_y={class:"theme-default-content","vp-content":""};function yy(e,t,n,r,o,s){return Y(),ne("main",vy,[ae(r.VPHomeHero),ae(r.VPHomeFeatures),ie("div",_y,[ae(r.Content)]),ae(r.VPHomeFooter)])}const by=ke(gy,[["render",yy],["__file","VPHome.vue"]]),Ey=de({__name:"VPNavbarBrand",setup(e,{expose:t}){t();const n=qr(),r=_i(),o=He(),s=Di(),i=F(()=>o.value.home||n.value),a=F(()=>r.value.title),l=F(()=>s.value&&o.value.logoDark!==void 0?o.value.logoDark:o.value.logo),u=F(()=>o.value.logoAlt??a.value),c=F(()=>a.value.toLocaleUpperCase().trim()===u.value.toLocaleUpperCase().trim()),d={routeLocale:n,siteLocale:r,themeLocale:o,isDarkMode:s,navbarBrandLink:i,navbarBrandTitle:a,navbarBrandLogo:l,navbarBrandLogoAlt:u,navBarLogoAltMatchesTitle:c,NavbarBrandLogo:()=>{if(!l.value)return null;const p=he("img",{class:"vp-site-logo",src:af(l.value),alt:u.value});return o.value.logoDark===void 0?p:he(of,()=>p)},get RouteLink(){return yi}};return Object.defineProperty(d,"__isScriptSetup",{enumerable:!1,value:!0}),d}}),Sy=["aria-hidden"];function Ay(e,t,n,r,o,s){return Y(),Le(r.RouteLink,{to:r.navbarBrandLink},{default:Ve(()=>[ae(r.NavbarBrandLogo),r.navbarBrandTitle?(Y(),ne("span",{key:0,class:nt(["vp-site-name",{"vp-hide-mobile":r.navbarBrandLogo}]),"aria-hidden":r.navBarLogoAltMatchesTitle},Ie(r.navbarBrandTitle),11,Sy)):Fe("",!0)]),_:1},8,["to"])}const Cy=ke(Ey,[["render",Ay],["__file","VPNavbarBrand.vue"]]),wy=de({__name:"VPDropdownTransition",setup(e,{expose:t}){t();const o={setHeight:s=>{s.style.height=`${s.scrollHeight}px`},unsetHeight:s=>{s.style.height=""}};return Object.defineProperty(o,"__isScriptSetup",{enumerable:!1,value:!0}),o}});function Ty(e,t,n,r,o,s){return Y(),Le(pi,{name:"vp-dropdown",onEnter:r.setHeight,onAfterEnter:r.unsetHeight,onBeforeLeave:r.setHeight},{default:Ve(()=>[Re(e.$slots,"default")]),_:3})}const ad=ke(wy,[["render",Ty],["__file","VPDropdownTransition.vue"]]),Oy=de({__name:"VPNavbarDropdown",props:{config:{}},setup(e,{expose:t}){t();const n=e,{config:r}=Pu(n),o=Pt(),[s,i]=cf(!1),a=F(()=>r.value.ariaLabel||r.value.text),l=(f,d)=>d[d.length-1]===f,u=f=>{f.detail===0?i():i(!1)};Ue(()=>o.path,()=>{i(!1)});const c={props:n,config:r,route:o,open:s,toggleOpen:i,dropdownAriaLabel:a,isLastItemOfArray:l,handleDropdown:u,VPDropdownTransition:ad,get AutoLink(){return nr}};return Object.defineProperty(c,"__isScriptSetup",{enumerable:!1,value:!0}),c}}),xy=["aria-label"],ky={class:"title"},Py=["aria-label"],Iy={class:"title"},Ry={class:"vp-navbar-dropdown"},Ly={class:"vp-navbar-dropdown-subtitle"},Dy={key:1},Ny={class:"vp-navbar-dropdown-subitem-wrapper"};function Vy(e,t,n,r,o,s){return Y(),ne("div",{class:nt(["vp-navbar-dropdown-wrapper",{open:r.open}])},[ie("button",{class:"vp-navbar-dropdown-title",type:"button","aria-label":r.dropdownAriaLabel,onClick:r.handleDropdown},[ie("span",ky,Ie(r.config.text),1),t[1]||(t[1]=ie("span",{class:"arrow down"},null,-1))],8,xy),ie("button",{class:"vp-navbar-dropdown-title-mobile",type:"button","aria-label":r.dropdownAriaLabel,onClick:t[0]||(t[0]=()=>r.toggleOpen())},[ie("span",Iy,Ie(r.config.text),1),ie("span",{class:nt(["arrow",r.open?"down":"right"])},null,2)],8,Py),ae(r.VPDropdownTransition,null,{default:Ve(()=>[bo(ie("ul",Ry,[(Y(!0),ne(_e,null,tn(r.config.children,i=>(Y(),ne("li",{key:i.text,class:"vp-navbar-dropdown-item"},["children"in i?(Y(),ne(_e,{key:0},[ie("h4",Ly,[i.link?(Y(),Le(r.AutoLink,{key:0,config:i,onFocusout:()=>{r.isLastItemOfArray(i,r.config.children)&&i.children.length===0&&(r.open=!1)}},null,8,["config","onFocusout"])):(Y(),ne("span",Dy,Ie(i.text),1))]),ie("ul",Ny,[(Y(!0),ne(_e,null,tn(i.children,a=>(Y(),ne("li",{key:a.link,class:"vp-navbar-dropdown-subitem"},[ae(r.AutoLink,{config:a,onFocusout:()=>{r.isLastItemOfArray(a,i.children)&&r.isLastItemOfArray(i,r.config.children)&&r.toggleOpen(!1)}},null,8,["config","onFocusout"])]))),128))])],64)):(Y(),Le(r.AutoLink,{key:1,config:i,onFocusout:()=>{r.isLastItemOfArray(i,r.config.children)&&r.toggleOpen(!1)}},null,8,["config","onFocusout"]))]))),128))],512),[[Co,r.open]])]),_:1})],2)}const My=ke(Oy,[["render",Vy],["__file","VPNavbarDropdown.vue"]]),ld=(e,t="")=>ct(e)?Gn($n(t,e)):"children"in e?{...e,children:e.children.map(n=>ld(n,$n(t,e.prefix)))}:{...e,link:nd(e.link)?Gn($n(t,e.link)).link:e.link},Fy=()=>{const e=He();return F(()=>(e.value.navbar||[]).map(t=>ld(t)))},Hy=()=>{const e=He(),t=F(()=>e.value.repo),n=F(()=>t.value?rd(t.value):null),r=F(()=>t.value&&!Wr(t.value)?`https://github.com/${t.value}`:t.value),o=F(()=>r.value?e.value.repoLabel?e.value.repoLabel:n.value===null?"Source":n.value:null);return F(()=>!r.value||!o.value?[]:[{text:o.value,link:r.value}])},$y=()=>{const e=Pt(),t=Vv(),n=qr(),r=nf(),o=_i(),s=M1(),i=He();return F(()=>{const a=Object.keys(r.value.locales);if(a.length<2)return[];const l=e.path,u=e.fullPath;return[{text:`${i.value.selectLanguageText}`,ariaLabel:`${i.value.selectLanguageAriaLabel??i.value.selectLanguageText}`,children:a.map(f=>{var E,A;const d=((E=r.value.locales)==null?void 0:E[f])??{},p=((A=s.value.locales)==null?void 0:A[f])??{},v=`${d.lang}`,_=p.selectLanguageName??v;if(v===o.value.lang)return{text:_,activeMatch:".",link:e.fullPath};const b=l.replace(n.value,f);return{text:_,link:t.value.some(m=>m===b)?u.replace(l,b):p.home??f}})}]})},By="719px",Uy={mobile:By};var Hr;(function(e){e.Mobile="mobile"})(Hr||(Hr={}));const jy={[Hr.Mobile]:Number.parseInt(Uy.mobile.replace("px",""),10)},ud=(e,t)=>{const n=jy[e];Number.isInteger(n)&&(pt("orientationchange",()=>{t(n)},!1),pt("resize",()=>{t(n)},!1),Ye(()=>{t(n)}))},zy=de({__name:"VPNavbarItems",setup(e,{expose:t}){t();const n=Fy(),r=$y(),o=Hy(),s=ge(!1),i=F(()=>He().value.navbarLabel??"site navigation"),a=F(()=>[...n.value,...r.value,...o.value]);ud(Hr.Mobile,u=>{s.value=window.innerWidth(Y(),ne("div",{key:i.text,class:"vp-navbar-item"},["children"in i?(Y(),Le(r.VPNavbarDropdown,{key:0,class:nt({mobile:r.isMobile}),config:i},null,8,["class","config"])):(Y(),Le(r.AutoLink,{key:1,config:i},null,8,["config"]))]))),128))],8,Ky)):Fe("",!0)}const cd=ke(zy,[["render",Wy],["__file","VPNavbarItems.vue"]]),qy={},Gy={class:"dark-icon",viewBox:"0 0 32 32"};function Yy(e,t){return Y(),ne("svg",Gy,t[0]||(t[0]=[ie("path",{d:"M13.502 5.414a15.075 15.075 0 0 0 11.594 18.194a11.113 11.113 0 0 1-7.975 3.39c-.138 0-.278.005-.418 0a11.094 11.094 0 0 1-3.2-21.584M14.98 3a1.002 1.002 0 0 0-.175.016a13.096 13.096 0 0 0 1.825 25.981c.164.006.328 0 .49 0a13.072 13.072 0 0 0 10.703-5.555a1.01 1.01 0 0 0-.783-1.565A13.08 13.08 0 0 1 15.89 4.38A1.015 1.015 0 0 0 14.98 3z",fill:"currentColor"},null,-1)]))}const Xy=ke(qy,[["render",Yy],["__file","VPDarkIcon.vue"]]),Zy={},Qy={class:"light-icon",viewBox:"0 0 32 32"};function Jy(e,t){return Y(),ne("svg",Qy,t[0]||(t[0]=[Eh('',9)]))}const eb=ke(Zy,[["render",Jy],["__file","VPLightIcon.vue"]]),tb=de({__name:"VPToggleColorModeButton",setup(e,{expose:t}){t();const n=He(),r=Di(),s={themeLocale:n,isDarkMode:r,toggleColorMode:()=>{r.value=!r.value},VPDarkIcon:Xy,VPLightIcon:eb};return Object.defineProperty(s,"__isScriptSetup",{enumerable:!1,value:!0}),s}}),nb=["title"];function rb(e,t,n,r,o,s){return Y(),ne("button",{type:"button",class:"vp-toggle-color-mode-button",title:r.themeLocale.toggleColorMode,onClick:r.toggleColorMode},[bo(ae(r.VPLightIcon,null,null,512),[[Co,!r.isDarkMode]]),bo(ae(r.VPDarkIcon,null,null,512),[[Co,r.isDarkMode]])],8,nb)}const ob=ke(tb,[["render",rb],["__file","VPToggleColorModeButton.vue"]]),sb=de({__name:"VPToggleSidebarButton",emits:["toggle"],setup(e,{expose:t}){t();const r={themeLocale:He()};return Object.defineProperty(r,"__isScriptSetup",{enumerable:!1,value:!0}),r}}),ib=["title"];function ab(e,t,n,r,o,s){return Y(),ne("div",{class:"vp-toggle-sidebar-button",title:r.themeLocale.toggleSidebar,"aria-expanded":"false",role:"button",tabindex:"0",onClick:t[0]||(t[0]=i=>e.$emit("toggle"))},t[1]||(t[1]=[ie("div",{class:"icon","aria-hidden":"true"},[ie("span"),ie("span"),ie("span")],-1)]),8,ib)}const lb=ke(sb,[["render",ab],["__file","VPToggleSidebarButton.vue"]]),ub=de({__name:"VPNavbar",emits:["toggleSidebar"],setup(e,{expose:t}){t();const n=df("SearchBox")?li("SearchBox"):()=>null,r=He(),o=Wi("navbar"),s=Wi("navbar-brand"),i=ge(0),a=F(()=>i.value?{maxWidth:`${i.value}px`}:{}),l=(c,f)=>{var v;const d=(v=c==null?void 0:c.ownerDocument.defaultView)==null?void 0:v.getComputedStyle(c,null)[f],p=Number.parseInt(d,10);return Number.isNaN(p)?0:p};ud(Hr.Mobile,c=>{var d;const f=l(o.value,"paddingLeft")+l(o.value,"paddingRight");window.innerWidthe.$emit("toggleSidebar"))}),ie("span",fb,[ae(r.VPNavbarBrand)],512),ie("div",{class:"vp-navbar-items-wrapper",style:Xn(r.linksWrapperStyle)},[Re(e.$slots,"before"),ae(r.VPNavbarItems,{class:"vp-hide-mobile"}),Re(e.$slots,"after"),r.themeLocale.colorModeSwitch?(Y(),Le(r.VPToggleColorModeButton,{key:0})):Fe("",!0),ae(r.SearchBox)],4)],512)}const pb=ke(ub,[["render",db],["__file","VPNavbar.vue"]]),hb={},mb={class:"edit-icon",viewBox:"0 0 1024 1024"};function gb(e,t){return Y(),ne("svg",mb,t[0]||(t[0]=[ie("g",{fill:"currentColor"},[ie("path",{d:"M430.818 653.65a60.46 60.46 0 0 1-50.96-93.281l71.69-114.012 7.773-10.365L816.038 80.138A60.46 60.46 0 0 1 859.225 62a60.46 60.46 0 0 1 43.186 18.138l43.186 43.186a60.46 60.46 0 0 1 0 86.373L588.879 565.55l-8.637 8.637-117.466 68.234a60.46 60.46 0 0 1-31.958 11.229z"}),ie("path",{d:"M728.802 962H252.891A190.883 190.883 0 0 1 62.008 771.98V296.934a190.883 190.883 0 0 1 190.883-192.61h267.754a60.46 60.46 0 0 1 0 120.92H252.891a69.962 69.962 0 0 0-69.098 69.099V771.98a69.962 69.962 0 0 0 69.098 69.098h475.911A69.962 69.962 0 0 0 797.9 771.98V503.363a60.46 60.46 0 1 1 120.922 0V771.98A190.883 190.883 0 0 1 728.802 962z"})],-1)]))}const vb=ke(hb,[["render",gb],["__file","VPEditIcon.vue"]]),_b=()=>{const e=He(),t=tr(),n=At();return F(()=>{var o;return n.value.contributors??e.value.contributors??!0?((o=t.value.git)==null?void 0:o.contributors)??null:null})},yb=()=>{const e=He(),t=tr(),n=At();return F(()=>{if(!(n.value.editLink??e.value.editLink??!0))return null;const{repo:o,docsRepo:s=o,docsBranch:i="main",docsDir:a="",editLinkText:l}=e.value;if(!s)return null;const u=z1({docsRepo:s,docsBranch:i,docsDir:a,filePathRelative:t.value.filePathRelative,editLinkPattern:n.value.editLinkPattern??e.value.editLinkPattern});return u?{text:l??"Edit this page",link:u}:null})},bb=()=>{const e=He(),t=tr(),n=At();return F(()=>{var s;return!(n.value.lastUpdated??e.value.lastUpdated??!0)||!((s=t.value.git)!=null&&s.updatedTime)?null:new Date(t.value.git.updatedTime).toLocaleString()})},Eb=de({__name:"VPPageMeta",setup(e,{expose:t}){t();const n=He(),r=yb(),o=bb(),s=_b(),i={themeLocale:n,editLink:r,lastUpdated:o,contributors:s,VPEditIcon:vb,get AutoLink(){return nr}};return Object.defineProperty(i,"__isScriptSetup",{enumerable:!1,value:!0}),i}}),Sb={class:"vp-page-meta"},Ab={key:0,class:"vp-meta-item edit-link"},Cb={class:"vp-meta-item git-info"},wb={key:0,class:"vp-meta-item last-updated"},Tb={class:"meta-item-label"},Ob={class:"meta-item-info"},xb={key:1,class:"vp-meta-item contributors"},kb={class:"meta-item-label"},Pb={class:"meta-item-info"},Ib=["title"];function Rb(e,t,n,r,o,s){const i=li("ClientOnly");return Y(),ne("footer",Sb,[r.editLink?(Y(),ne("div",Ab,[ae(r.AutoLink,{class:"label",config:r.editLink},{before:Ve(()=>[ae(r.VPEditIcon)]),_:1},8,["config"])])):Fe("",!0),ie("div",Cb,[r.lastUpdated?(Y(),ne("div",wb,[ie("span",Tb,Ie(r.themeLocale.lastUpdatedText)+": ",1),ae(i,null,{default:Ve(()=>[ie("span",Ob,Ie(r.lastUpdated),1)]),_:1})])):Fe("",!0),r.contributors&&r.contributors.length?(Y(),ne("div",xb,[ie("span",kb,Ie(r.themeLocale.contributorsText)+": ",1),ie("span",Pb,[(Y(!0),ne(_e,null,tn(r.contributors,(a,l)=>(Y(),ne(_e,{key:l},[ie("span",{class:"contributor",title:`email: ${a.email}`},Ie(a.name),9,Ib),l!==r.contributors.length-1?(Y(),ne(_e,{key:0},[rn(", ")],64)):Fe("",!0)],64))),128))])])):Fe("",!0)])])}const Lb=ke(Eb,[["render",Rb],["__file","VPPageMeta.vue"]]),Db=()=>{const e=ln(),t=Pt();return n=>{n&&(gf(n)?t.path!==n&&e.push(n):Kr(n)?window.open(n):e.push(encodeURI(n)))}},ou=(e,t)=>e===!1?!1:ct(e)?Gn(e,t):mi(e)?{...e,link:Gn(e.link,t).link}:null,qs=(e,t,n)=>{const r=e.findIndex(s=>s.link===t);if(r!==-1){const s=e[r+n];return s?s.link?s:"prefix"in s&&!wo(s.prefix).notFound?{...s,link:s.prefix}:null:null}for(const s of e)if("children"in s){const i=qs(s.children,t,n);if(i)return i}const o=e.findIndex(s=>"prefix"in s&&s.prefix===t);if(o!==-1){const s=e[o+n];return s?s.link?s:"prefix"in s&&!wo(s.prefix).notFound?{...s,link:s.prefix}:null:null}return null},Nb=()=>{const e=At(),t=He(),n=Vi(),r=Pt(),o=F(()=>{const i=ou(e.value.prev,r.path);return i===!1?null:i??(t.value.prev===!1?null:qs(n.value,r.path,-1))}),s=F(()=>{const i=ou(e.value.next,r.path);return i===!1?null:i??(t.value.next===!1?null:qs(n.value,r.path,1))});return{prevLink:o,nextLink:s}},Vb=de({__name:"VPPageNav",setup(e,{expose:t}){t();const n=He(),r=Db(),{prevLink:o,nextLink:s}=Nb(),i=F(()=>n.value.pageNavbarLabel??"page navigation");pt("keydown",l=>{l.altKey&&(l.key==="ArrowRight"?s.value&&(r(s.value.link),l.preventDefault()):l.key==="ArrowLeft"&&o.value&&(r(o.value.link),l.preventDefault()))});const a={themeLocale:n,navigate:r,prevLink:o,nextLink:s,navbarLabel:i,get AutoLink(){return nr}};return Object.defineProperty(a,"__isScriptSetup",{enumerable:!1,value:!0}),a}}),Mb=["aria-label"],Fb={class:"hint"},Hb={class:"link"},$b={class:"hint"},Bb={class:"link"};function Ub(e,t,n,r,o,s){return r.prevLink||r.nextLink?(Y(),ne("nav",{key:0,class:"vp-page-nav","aria-label":r.navbarLabel},[r.prevLink?(Y(),Le(r.AutoLink,{key:0,class:"prev",config:r.prevLink},{default:Ve(()=>[ie("div",Fb,[t[0]||(t[0]=ie("span",{class:"arrow left"},null,-1)),rn(" "+Ie(r.themeLocale.prev??"Prev"),1)]),ie("div",Hb,[ie("span",null,Ie(r.prevLink.text),1)])]),_:1},8,["config"])):Fe("",!0),r.nextLink?(Y(),Le(r.AutoLink,{key:1,class:"next",config:r.nextLink},{default:Ve(()=>[ie("div",$b,[rn(Ie(r.themeLocale.next??"Next")+" ",1),t[1]||(t[1]=ie("span",{class:"arrow right"},null,-1))]),ie("div",Bb,[ie("span",null,Ie(r.nextLink.text),1)])]),_:1},8,["config"])):Fe("",!0)],8,Mb)):Fe("",!0)}const jb=ke(Vb,[["render",Ub],["__file","VPPageNav.vue"]]),zb=de({__name:"VPPage",setup(e,{expose:t}){t(),K1();const n={VPPageMeta:Lb,VPPageNav:jb,get Content(){return sf}};return Object.defineProperty(n,"__isScriptSetup",{enumerable:!1,value:!0}),n}}),Kb={class:"vp-page"},Wb={class:"theme-default-content","vp-content":""};function qb(e,t,n,r,o,s){return Y(),ne("main",Kb,[Re(e.$slots,"top"),ie("div",Wb,[Re(e.$slots,"content-top"),ae(r.Content),Re(e.$slots,"content-bottom")]),ae(r.VPPageMeta),ae(r.VPPageNav),Re(e.$slots,"bottom")])}const Gb=ke(zb,[["render",qb],["__file","VPPage.vue"]]),Yb=de({__name:"VPSidebarItem",props:{item:{},depth:{default:0}},setup(e,{expose:t}){t();const n=e,{item:r,depth:o}=Pu(n),s=Pt(),i=ln(),a=F(()=>"collapsible"in r.value&&r.value.collapsible),l=F(()=>td(r.value,s)),u=F(()=>({"vp-sidebar-item":!0,"vp-sidebar-heading":o.value===0,active:l.value,collapsible:a.value})),c=F(()=>a.value?l.value:!0),[f,d]=cf(c.value),p=b=>{a.value&&(b.preventDefault(),d())},v=i.afterEach(()=>{Jn(()=>{f.value=c.value})});ai(()=>{v()});const _={props:n,item:r,depth:o,route:s,router:i,collapsible:a,isActive:l,itemClass:u,isOpenDefault:c,isOpen:f,toggleIsOpen:d,onClick:p,unregisterRouterHook:v,VPDropdownTransition:ad,get AutoLink(){return nr}};return Object.defineProperty(_,"__isScriptSetup",{enumerable:!1,value:!0}),_}}),Xb={class:"vp-sidebar-children"};function Zb(e,t,n,r,o,s){const i=li("VPSidebarItem",!0);return Y(),ne("li",null,[r.item.link?(Y(),Le(r.AutoLink,{key:0,class:nt(r.itemClass),config:r.item},null,8,["class","config"])):(Y(),ne("p",{key:1,tabindex:"0",class:nt(r.itemClass),onClick:r.onClick,onKeydown:om(r.onClick,["enter"])},[rn(Ie(r.item.text)+" ",1),r.collapsible?(Y(),ne("span",{key:0,class:nt(["arrow",r.isOpen?"down":"right"])},null,2)):Fe("",!0)],34)),"children"in r.item&&r.item.children.length?(Y(),Le(r.VPDropdownTransition,{key:2},{default:Ve(()=>[bo(ie("ul",Xb,[(Y(!0),ne(_e,null,tn(r.item.children,a=>(Y(),Le(i,{key:`${r.depth}${a.text}${a.link}`,item:a,depth:r.depth+1},null,8,["item","depth"]))),128))],512),[[Co,r.isOpen]])]),_:1})):Fe("",!0)])}const Qb=ke(Yb,[["render",Zb],["__file","VPSidebarItem.vue"]]),Jb=de({__name:"VPSidebarItems",setup(e,{expose:t}){t();const n=Pt(),r=Vi();Ye(()=>{Ue(()=>n.hash,s=>{const i=document.querySelector(".vp-sidebar");if(!i)return;const a=document.querySelector(`.vp-sidebar a.vp-sidebar-item[href="${n.path}${s}"]`);if(!a)return;const{top:l,height:u}=i.getBoundingClientRect(),{top:c,height:f}=a.getBoundingClientRect();cl+u&&a.scrollIntoView(!1)})});const o={route:n,sidebarItems:r,VPSidebarItem:Qb};return Object.defineProperty(o,"__isScriptSetup",{enumerable:!1,value:!0}),o}}),eE={key:0,class:"vp-sidebar-items"};function tE(e,t,n,r,o,s){return r.sidebarItems.length?(Y(),ne("ul",eE,[(Y(!0),ne(_e,null,tn(r.sidebarItems,i=>(Y(),Le(r.VPSidebarItem,{key:`${i.text}${i.link}`,item:i},null,8,["item"]))),128))])):Fe("",!0)}const nE=ke(Jb,[["render",tE],["__file","VPSidebarItems.vue"]]),rE=de({__name:"VPSidebar",setup(e,{expose:t}){t();const n={VPNavbarItems:cd,VPSidebarItems:nE};return Object.defineProperty(n,"__isScriptSetup",{enumerable:!1,value:!0}),n}}),oE={class:"vp-sidebar","vp-sidebar":""};function sE(e,t,n,r,o,s){return Y(),ne("aside",oE,[ae(r.VPNavbarItems),Re(e.$slots,"top"),ae(r.VPSidebarItems),Re(e.$slots,"bottom")])}const iE=ke(rE,[["render",sE],["__file","VPSidebar.vue"]]),aE=de({__name:"Layout",setup(e,{expose:t}){t();const n=tr(),r=At(),o=He(),s=F(()=>r.value.navbar!==!1&&o.value.navbar!==!1),i=Vi(),a=ge(!1),l=m=>{a.value=typeof m=="boolean"?m:!a.value},u={x:0,y:0},c=m=>{u.x=m.changedTouches[0].clientX,u.y=m.changedTouches[0].clientY},f=m=>{const y=m.changedTouches[0].clientX-u.x,L=m.changedTouches[0].clientY-u.y;Math.abs(y)>Math.abs(L)&&Math.abs(y)>40&&(y>0&&u.x<=80?l(!0):l(!1))},d=F(()=>r.value.externalLinkIcon??o.value.externalLinkIcon??!0),p=F(()=>[{"no-navbar":!s.value,"no-sidebar":!i.value.length,"sidebar-open":a.value,"external-link-icon":d.value},r.value.pageClass]);let v;Ye(()=>{v=ln().afterEach(()=>{l(!1)})}),No(()=>{v()});const _=ed(),b=_.resolve,E=_.pending,A={page:n,frontmatter:r,themeLocale:o,shouldShowNavbar:s,sidebarItems:i,isSidebarOpen:a,toggleSidebar:l,touchStart:u,onTouchStart:c,onTouchEnd:f,enableExternalLinkIcon:d,containerClass:p,get unregisterRouterHook(){return v},set unregisterRouterHook(m){v=m},scrollPromise:_,onBeforeEnter:b,onBeforeLeave:E,VPHome:by,VPNavbar:pb,VPPage:Gb,VPSidebar:iE};return Object.defineProperty(A,"__isScriptSetup",{enumerable:!1,value:!0}),A}});function lE(e,t,n,r,o,s){return Y(),ne("div",{class:nt(["vp-theme-container",r.containerClass]),"vp-container":"",onTouchstart:r.onTouchStart,onTouchend:r.onTouchEnd},[Re(e.$slots,"navbar",{},()=>[r.shouldShowNavbar?(Y(),Le(r.VPNavbar,{key:0,onToggleSidebar:r.toggleSidebar},{before:Ve(()=>[Re(e.$slots,"navbar-before")]),after:Ve(()=>[Re(e.$slots,"navbar-after")]),_:3})):Fe("",!0)]),ie("div",{class:"vp-sidebar-mask",onClick:t[0]||(t[0]=i=>r.toggleSidebar(!1))}),Re(e.$slots,"sidebar",{},()=>[ae(r.VPSidebar,null,{top:Ve(()=>[Re(e.$slots,"sidebar-top")]),bottom:Ve(()=>[Re(e.$slots,"sidebar-bottom")]),_:3})]),Re(e.$slots,"page",{},()=>[r.frontmatter.home?(Y(),Le(r.VPHome,{key:0})):(Y(),Le(pi,{key:1,name:"fade-slide-y",mode:"out-in",onBeforeEnter:r.onBeforeEnter,onBeforeLeave:r.onBeforeLeave},{default:Ve(()=>[(Y(),Le(r.VPPage,{key:r.page.path},{top:Ve(()=>[Re(e.$slots,"page-top")]),"content-top":Ve(()=>[Re(e.$slots,"page-content-top")]),"content-bottom":Ve(()=>[Re(e.$slots,"page-content-bottom")]),bottom:Ve(()=>[Re(e.$slots,"page-bottom")]),_:3}))]),_:3},8,["onBeforeEnter","onBeforeLeave"]))])],34)}const uE=ke(aE,[["render",lE],["__file","Layout.vue"]]),cE=de({__name:"NotFound",setup(e,{expose:t}){t();const n=qr(),r=He(),o=r.value.notFound??["Not Found"],s=()=>o[Math.floor(Math.random()*o.length)],i=r.value.home??n.value,a=r.value.backToHome??"Back to home",l={routeLocale:n,themeLocale:r,messages:o,getMsg:s,homeLink:i,homeText:a,get RouteLink(){return yi}};return Object.defineProperty(l,"__isScriptSetup",{enumerable:!1,value:!0}),l}}),fE={class:"vp-theme-container","vp-container":""},dE={class:"page"},pE={class:"theme-default-content","vp-content":""};function hE(e,t,n,r,o,s){return Y(),ne("div",fE,[ie("main",dE,[ie("div",pE,[t[0]||(t[0]=ie("h1",null,"404",-1)),ie("blockquote",null,Ie(r.getMsg()),1),ae(r.RouteLink,{to:r.homeLink},{default:Ve(()=>[rn(Ie(r.homeText),1)]),_:1},8,["to"])])])])}const mE=ke(cE,[["render",hE],["__scopeId","data-v-67c08c1d"],["__file","NotFound.vue"]]),gE=un({enhance({app:e,router:t}){df("Badge")||e.component("Badge",J1);const n=t.options.scrollBehavior;t.options.scrollBehavior=async(...r)=>(await ed().wait(),n(...r))},setup(){H1(),X1()},layouts:{Layout:uE,NotFound:mE}}),vE=Object.freeze(Object.defineProperty({__proto__:null,default:gE},Symbol.toStringTag,{value:"Module"})),ao=[Rv,Uv,Yv,Zv,c_,g_,y_,w_,V1,vE].map(e=>e.default).filter(Boolean),_E=JSON.parse('{"base":"/learning-ai/","lang":"en-US","title":"","description":"","head":[["link",{"rel":"icon","href":"/learning-ai/favicon.ico"}],["link",{"rel":"manifest","href":"/learning-ai/manifest.webmanifest"}],["meta",{"name":"theme-color","content":"#00A67E"}]],"locales":{}}');var gr=ft(_E),yE=ng,bE=()=>{const e=Mg({history:yE(xc("/learning-ai/")),routes:[{name:"vuepress-route",path:"/:catchAll(.*)",components:{}}],scrollBehavior:(t,n,r)=>r||(t.hash?{el:t.hash}:{top:0})});return e.beforeResolve(async(t,n)=>{if(t.path!==n.path||n===Vt){const r=ef(t.fullPath);if(r.path!==t.fullPath)return r.path;const o=await r.loader();t.meta={...r.meta,_pageChunk:o}}else t.path===n.path&&(t.meta=n.meta)}),e},EE=e=>{e.component("ClientOnly",qg),e.component("Content",Gg),e.component("RouteLink",Wg)},SE=(e,t,n)=>{const r=F(()=>t.currentRoute.value.path),o=np((b,E)=>({get(){return b(),t.currentRoute.value.meta._pageChunk},set(A){t.currentRoute.value.meta._pageChunk=A,E()}})),s=F(()=>hn.resolveLayouts(n)),i=F(()=>hn.resolveRouteLocale(gr.value.locales,r.value)),a=F(()=>hn.resolveSiteLocaleData(gr.value,i.value)),l=F(()=>o.value.comp),u=F(()=>o.value.data),c=F(()=>u.value.frontmatter),f=F(()=>hn.resolvePageHeadTitle(u.value,a.value)),d=F(()=>hn.resolvePageHead(f.value,c.value,a.value)),p=F(()=>hn.resolvePageLang(u.value,a.value)),v=F(()=>hn.resolvePageLayout(u.value,s.value)),_={layouts:s,pageData:u,pageComponent:l,pageFrontmatter:c,pageHead:d,pageHeadTitle:f,pageLang:p,pageLayout:v,redirects:Vs,routeLocale:i,routePath:r,routes:Hn,siteData:gr,siteLocaleData:a};return e.provide(Qc,_),Object.defineProperties(e.config.globalProperties,{$frontmatter:{get:()=>c.value},$head:{get:()=>d.value},$headTitle:{get:()=>f.value},$lang:{get:()=>p.value},$page:{get:()=>u.value},$routeLocale:{get:()=>i.value},$site:{get:()=>gr.value},$siteLocale:{get:()=>a.value},$withBase:{get:()=>Zg}}),_},AE=([e,t,n=""])=>{const r=Object.entries(t).map(([a,l])=>ct(l)?`[${a}=${JSON.stringify(l)}]`:l?`[${a}]`:"").join(""),o=`head > ${e}${r}`;return Array.from(document.querySelectorAll(o)).find(a=>a.innerText===n)??null},CE=([e,t,n])=>{if(!ct(e))return null;const r=document.createElement(e);return mi(t)&&Object.entries(t).forEach(([o,s])=>{ct(s)?r.setAttribute(o,s):s&&r.setAttribute(o,"")}),ct(n)&&r.appendChild(document.createTextNode(n)),r},wE=()=>{const e=$g(),t=Bg();let n=[];const r=()=>{e.value.forEach(i=>{const a=AE(i);a&&n.push(a)})},o=()=>{const i=[];return e.value.forEach(a=>{const l=CE(a);l&&i.push(l)}),i},s=()=>{document.documentElement.lang=t.value;const i=o();n.forEach((a,l)=>{const u=i.findIndex(c=>a.isEqualNode(c));u===-1?(a.remove(),delete n[l]):i.splice(u,1)}),i.forEach(a=>document.head.appendChild(a)),n=[...n.filter(a=>!!a),...i]};An(jg,s),Ye(()=>{r(),Ue(e,s,{immediate:!1})})},TE=am,OE=async()=>{var r;const e=TE({name:"Vuepress",setup(){var i;wE();for(const a of ao)(i=a.setup)==null||i.call(a);const o=ao.flatMap(({rootComponents:a=[]})=>a.map(l=>he(l))),s=Ug();return()=>[he(s.value),o]}}),t=bE();EE(e);const n=SE(e,t,ao);{const{setupDevtools:o}=await Nt(async()=>{const{setupDevtools:s}=await import("./setupDevtools-7MC2TMWH-Bu_VvWcQ.js");return{setupDevtools:s}},[]);o(e,n)}for(const o of ao)await((r=o.enhance)==null?void 0:r.call(o,{app:e,router:t,siteData:gr}));return e.use(t),{app:e,router:t}};OE().then(({app:e,router:t})=>{t.isReady().then(()=>{e.mount("#app")})});export{ke as _,Eh as a,ie as b,ne as c,OE as createVueApp,Y as o,G0 as s,Ue as w}; diff --git a/assets/assistant-BJUR0Mbm.png b/assets/assistant-BJUR0Mbm.png new file mode 100644 index 0000000..1dffcf3 Binary files /dev/null and b/assets/assistant-BJUR0Mbm.png differ diff --git a/assets/avatar-Bf9zzubu.png b/assets/avatar-Bf9zzubu.png new file mode 100644 index 0000000..9899730 Binary files /dev/null and b/assets/avatar-Bf9zzubu.png differ diff --git a/assets/copilot_assistance-Cotk3f4O.gif b/assets/copilot_assistance-Cotk3f4O.gif new file mode 100644 index 0000000..22bdd91 Binary files /dev/null and b/assets/copilot_assistance-Cotk3f4O.gif differ diff --git a/assets/copilot_assistance2-BM88VuDX.gif b/assets/copilot_assistance2-BM88VuDX.gif new file mode 100644 index 0000000..56d2a35 Binary files /dev/null and b/assets/copilot_assistance2-BM88VuDX.gif differ diff --git a/assets/copilot_completion-CQ-GiHnM.gif b/assets/copilot_completion-CQ-GiHnM.gif new file mode 100644 index 0000000..cfbc2c0 Binary files /dev/null and b/assets/copilot_completion-CQ-GiHnM.gif differ diff --git a/assets/copilot_diagram-BlfyAUjS.png b/assets/copilot_diagram-BlfyAUjS.png new file mode 100644 index 0000000..46261db Binary files /dev/null and b/assets/copilot_diagram-BlfyAUjS.png differ diff --git a/assets/copilot_generation-B6N3Dysv.gif b/assets/copilot_generation-B6N3Dysv.gif new file mode 100644 index 0000000..d505fe0 Binary files /dev/null and b/assets/copilot_generation-B6N3Dysv.gif differ diff --git a/assets/copilot_test-CDuoz2Se.gif b/assets/copilot_test-CDuoz2Se.gif new file mode 100644 index 0000000..c6e2912 Binary files /dev/null and b/assets/copilot_test-CDuoz2Se.gif differ diff --git a/assets/copilot_testing-B1NBiis5.gif b/assets/copilot_testing-B1NBiis5.gif new file mode 100644 index 0000000..11f10fc Binary files /dev/null and b/assets/copilot_testing-B1NBiis5.gif differ diff --git a/assets/cot-CrIEIz7R.png b/assets/cot-CrIEIz7R.png new file mode 100644 index 0000000..b87f3c4 Binary files /dev/null and b/assets/cot-CrIEIz7R.png differ diff --git a/assets/demo_prompt-BpZVtafc.gif b/assets/demo_prompt-BpZVtafc.gif new file mode 100644 index 0000000..e240e35 Binary files /dev/null and b/assets/demo_prompt-BpZVtafc.gif differ diff --git a/assets/gasparov-DChlTPYb.jpg b/assets/gasparov-DChlTPYb.jpg new file mode 100644 index 0000000..05af862 Binary files /dev/null and b/assets/gasparov-DChlTPYb.jpg differ diff --git a/assets/index.html-B3qdqBLV.js b/assets/index.html-B3qdqBLV.js new file mode 100644 index 0000000..fb71acc --- /dev/null +++ b/assets/index.html-B3qdqBLV.js @@ -0,0 +1,6 @@ +import{_ as a,c as t,a as i,o as n}from"./app-JC71_Alg.js";const s="/learning-ai/assets/librechat_interface-CYKYbYEb.png",r="/learning-ai/assets/prompt-D9YI1LJh.png",o="/learning-ai/assets/demo_prompt-BpZVtafc.gif",l="/learning-ai/assets/assistant-BJUR0Mbm.png",p="/learning-ai/assets/multi_plugin-TCdQZhy0.png",c="/learning-ai/assets/result_prompt-C4XLLbdh.png",h={};function d(u,e){return n(),t("div",null,e[0]||(e[0]=[i('

Online with Librechat

librechat_interface

LibreChat is a free, open source AI chat platform. This Web UI offers vast customization, supporting numerous AI providers, services, and integrations. Serves all AI Conversations in one place with a familiar interface, innovative enhancements, for as many users as you need.

The full librechat documentation is available here

Let's discover how to use LibreChat to create efficient and effective conversations with AI for developers.

History

Prompts history allows users to save and load prompts for their conversations and easily access them later. Reusing prompts can save time and effort, especially when working with multiple conversations and keep track of the context and details of a conversation.

Favorites

The favorites feature allows users to save and load favorite prompts for their conversations and easily access them later.

Presets

The presets feature allows users to save and load predefined settings for initialise a conversations. Users can import and export these presets as JSON files, set a default preset, and share them with others.

Preformatted prompts

The prompts feature allows users to save and load predefined prompts to use it during their conversations. You can use a prompt with the /[prompt command]. A prompt can have parameters, which are replaced with values when the prompt is used.

Exemple of preformatted prompts : Explain the following code snippet in Java, Kotlin or Javascript

  • Click on the + button to add a new prompt.
  • name your prompt : explain
  • on Text tab, you can write your prompt :
Explain the following {{language:Java|Kotlin|Javascript}} snippet of code: 
+{{code}}
+

preformatted_prompts_config

  • Now you can use the /explain command to get the explanation of the code snippet.

preformatted_prompts_usage

AI providers

Azure OpenAI

Azure OpenAI Service provides REST API access to OpenAI's powerful language models, including the o1-preview, o1-mini, GPT-4o, GPT-4o mini, GPT-4 Turbo with Vision, GPT-4, GPT-3.5-Turbo, and Embeddings model series.

Google Gemini

Gemini is a large language model (LLM) developed by Google. It's designed to be a multimodal AI, meaning it can work with and understand different types of information, including text, code, audio, and images. Google positions Gemini as a highly capable model for a range of tasks, from answering questions and generating creative content to problem-solving and more complex reasoning. There are different versions of Gemini, optimized for different tasks and scales.

Anthropic Claude

Claude is an Artificial Intelligence, trained by Anthropic. Claude can process large amounts of information, brainstorm ideas, generate text and code, help you understand subjects, coach you through difficult situations, help simplify your busywork so you can focus on what matters most, and so much more.

Assistants

The Assistants API enables the creation of AI assistants, offering functionalities like code interpreter, knowledge retrieval of files, and function execution. The Assistants API allows you to build AI assistants within your own applications for specific needs. An Assistant has instructions and can leverage models, tools, and files to respond to user queries. The Assistants API currently supports three types of tools: Code Interpreter, File Search, and Function calling.

assistant

Plugins

The plugins endpoint opens the door to prompting LLMs in new ways other than traditional input/output prompting.

Warning

Every additional plugin selected will increase your token usage as there are detailed instructions the LLM needs for each one For best use, be selective with plugins per message and narrow your requests as much as possible

DALL-E 3

Dall-e 3 is a librechat Plugin for generating images from text. You can use it to generate images from text, such as product descriptions, product images, or even documentation images to illustrate your technical documentation.

Confluence

Ask confluence is a librechat Plugin for Confluence documents.

IT support

Ask for IT support enable you to get support from the IT team and create WLSD tickets from your chats.

WOLF

Wolf is a librechat Plugin for WL Managagement System documents. The sharepoint documention is available here

Ask to WorldLine management system Friend everything you are looking for in the WMS content. AskWOLF plugin is meant to help you navigate through the multitude of information provided by the WMS (Applicable Policies, Processes & Procedures, Transversal & Operations SP pages links, …). This Worldline LibreChat plugin relies on ChatGPT technologies.

​​​​​​​Worldline Management System (WMS) is the Group reference for all information pertaining to our operating model such as applicable policies, processes and governance structures. Key responsibilities are :

  • consistently address its customers’ and markets’ requirements across all its geographies
  • continuous improvement of customer satisfaction through effective application of WMS
  • correct interpretation of applicable ISO standards requirements

Example of prompts:

  • AskWOLF: What is the WMS?
  • AskWOLF: What are the policies?
  • AskWOLF: What are the processes?

Browse plugins

Retrieve data from internet and use it to generate a response.

Plugin mixing

You can mix plugins to create more complex prompts. For example, you can use the DALL-E 3 plugin to generate images from text and then use the IT support plugin to get support from the IT team.

Generate the favicon 16x16 pixels based on the content found in 
+https://worldline.github.io/learning-ai/overview/ with Browser plugin 
+and generate the favicon with DallE. I want no background and black and white image
+

promptFavicon

RAG

RAG is possible with LibreChat. You can use RAG to create a conversation with the AI. To can add files to the conversation, you go to the file tab and select the file you want to add. Then the file will be added to the file manager and you can use it in the prompt.

The file can be an png, a video, a text file, or a PDF file.

🧪 Exercises

1. Prompt creation

Select one prompt engineering technique and make a prompt in librechat that can be called with the /[prompt_name] command.

2. Plugins mixing

Use the Browse and Dall-E plugins to create a prompt that generates a a favicon based on the content of this learning-ai website.

3. Make your own assistant

Choose your favorite topic ( cooking, travel, sports, etc.) and create an assistant that can answer questions about it. You can share documents, files and instructions to configure your custom assistant and use it.

📖 Further readings

',63)]))}const g=a(h,[["render",d],["__file","index.html.vue"]]),f=JSON.parse('{"path":"/llm/","title":"Online with Librechat","lang":"en-US","frontmatter":{"description":"Online with Librechat librechat_interface LibreChat is a free, open source AI chat platform. This Web UI offers vast customization, supporting numerous AI providers, services, a...","head":[["meta",{"property":"og:url","content":"https://worldline.github.io/worldline/learning-ai/learning-ai/llm/"}],["meta",{"property":"og:title","content":"Online with Librechat"}],["meta",{"property":"og:description","content":"Online with Librechat librechat_interface LibreChat is a free, open source AI chat platform. This Web UI offers vast customization, supporting numerous AI providers, services, a..."}],["meta",{"property":"og:type","content":"article"}],["meta",{"property":"og:locale","content":"en-US"}],["meta",{"property":"og:updated_time","content":"2024-11-20T13:40:36.000Z"}],["meta",{"property":"article:modified_time","content":"2024-11-20T13:40:36.000Z"}],["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"Article\\",\\"headline\\":\\"Online with Librechat\\",\\"image\\":[\\"\\"],\\"dateModified\\":\\"2024-11-20T13:40:36.000Z\\",\\"author\\":[]}"]]},"headers":[{"level":2,"title":"History","slug":"history","link":"#history","children":[]},{"level":2,"title":"Favorites","slug":"favorites","link":"#favorites","children":[]},{"level":2,"title":"Presets","slug":"presets","link":"#presets","children":[]},{"level":2,"title":"Preformatted prompts","slug":"preformatted-prompts","link":"#preformatted-prompts","children":[]},{"level":2,"title":"AI providers","slug":"ai-providers","link":"#ai-providers","children":[{"level":3,"title":"Azure OpenAI","slug":"azure-openai","link":"#azure-openai","children":[]},{"level":3,"title":"Google Gemini","slug":"google-gemini","link":"#google-gemini","children":[]},{"level":3,"title":"Anthropic Claude","slug":"anthropic-claude","link":"#anthropic-claude","children":[]}]},{"level":2,"title":"Assistants","slug":"assistants","link":"#assistants","children":[]},{"level":2,"title":"Plugins","slug":"plugins","link":"#plugins","children":[{"level":3,"title":"DALL-E 3","slug":"dall-e-3","link":"#dall-e-3","children":[]},{"level":3,"title":"Confluence","slug":"confluence","link":"#confluence","children":[]},{"level":3,"title":"IT support","slug":"it-support","link":"#it-support","children":[]},{"level":3,"title":"WOLF","slug":"wolf","link":"#wolf","children":[]},{"level":3,"title":"Browse plugins","slug":"browse-plugins","link":"#browse-plugins","children":[]}]},{"level":2,"title":"Plugin mixing","slug":"plugin-mixing","link":"#plugin-mixing","children":[]},{"level":2,"title":"RAG","slug":"rag","link":"#rag","children":[]},{"level":2,"title":"🧪 Exercises","slug":"🧪-exercises","link":"#🧪-exercises","children":[]},{"level":2,"title":"📖 Further readings","slug":"📖-further-readings","link":"#📖-further-readings","children":[]}],"git":{"updatedTime":1732110036000,"contributors":[{"name":"Brah","username":"Brah","email":"brah.gharbi@gmail.com","commits":3,"url":"https://github.com/Brah"}]},"filePathRelative":"llm/README.md","autoDesc":true}');export{g as comp,f as data}; diff --git a/assets/index.html-B548do1J.js b/assets/index.html-B548do1J.js new file mode 100644 index 0000000..830815e --- /dev/null +++ b/assets/index.html-B548do1J.js @@ -0,0 +1 @@ +import{_ as n,c as t,a,b as l,o as i}from"./app-JC71_Alg.js";const r="/learning-ai/assets/turing_test-DKoxXym2.png",o="/learning-ai/assets/gasparov-DChlTPYb.jpg",s="/learning-ai/assets/jeopardy-CySJ857r.jpg",c="/learning-ai/assets/alphago-D7ibr0g1.png",p="/learning-ai/assets/market-C_dAjFms.png",h="/learning-ai/assets/top50-Du4eFrfo.png",d={};function u(b,e){return i(),t("div",null,e[0]||(e[0]=[a('

Let's start

Warning

LLMs and MMLLMs are constantly evolving, and new applications for developer training are emerging all the time.

Prerequisites

Shell Command Line Skills:

The AI should include support for providing guidance on using shell commands, navigating file systems, and executing command-line operations across different operating systems.

Understanding of HTTP and API:

Proficiency in HTTP protocol, RESTful API concepts, and web service integration is crucial for the AI to provide support on API design, consumption, and troubleshooting common API-related issues.

Basic Cloud Knowledge:

Understanding of cloud computing principles, including basic concepts of cloud infrastructure, services, and deployment models, will enable the AI to offer guidance on cloud-based development, deployment, and best practices.

Warning

Additionnaly, Request Worldline librechat access: send a mail at Generative AI Taskforce email

There is a dedicated sharepoint for basic general assistant quick start at Worldline : LibreChat Worldline guides

Definitions

Large Language Model (LLM)

Large Language Model is a powerful type of AI model trained on massive datasets of text and code. LLMs can understand, generate, and manipulate language. Ex : ChatGPT, Bard, Codex

What are Large Language Models (LLMs)? by Google for developpers

',14),l("iframe",{width:"560",height:"315",src:"https://www.youtube.com/embed/iR2O2GPbB0E",title:"What are Large Language Models (LLMs)? by Google for developpers",frameborder:"0",allow:"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture",allowfullscreen:""},null,-1),a('

Multi-Modal LLM (MMLLM)

Multi-Modal Large Language Model is an advanced LLM that can process and generate both text and other data formats like images, audio, or video. Ex: DALL-E 2, Stable Diffusion (for image generation)

Machine Learning (ML)

Machine Learning is a subset of AI that focuses on training algorithms to learn from data and make predictions or decisions without explicit programming. ML powers many AI applications, including image recognition, natural language processing, and predictive analytics.

Deep Learning (DL)

Deep Learning is a type of ML that uses artificial neural networks with multiple layers to learn complex patterns from data.DL has revolutionized fields like computer vision, speech recognition, and machine translation.

Neural Network

A computational model inspired by the structure of the human brain, consisting of interconnected nodes (neurons) organized in layers.Neural networks are the core building blocks of deep learning models.

Natural Language Processing (NLP)

Natural Language Processing is a branch of Artificial Intelligence (AI) that focuses on enabling computers to understand, interpret, and generate human language. It implies :

  • Text Analysis
  • Language Understanding
  • Text Generation
  • Translation
  • Speech Recognition: Powers voice assistants and speech-to-text technologies

Prompt:

A specific set of instructions or questions given to an LLM to guide its response. Well-crafted prompts are crucial for getting accurate and relevant output from LLMs. Ex : "Write a Python function to check if a string is a palindrome."

Token:

The smallest unit of meaning processed by an LLM. Tokens can be words, parts of words, punctuation marks, or special characters. LLMs process text by analyzing sequences of tokens, making it important to understand how they are broken down. Ex : The sentence "I love programming" would be split into the following tokens: "I", "love", "programming".

Temperature:

A parameter in some LLMs that controls the randomness or creativity of the generated text. Adjust temperature based on the desired level of creativity or accuracy in the LLM's output.

  • A higher temperature generate more randomness and unpredictability in the output.
  • A lower temperature generate more predictable and coherent output.

RAG: Retrieval Augmented Generation

RAG (Retrieval Augmented Generation) is a powerful technique in the field of Natural Language Processing (NLP) that combines the best of both worlds: information retrieval and language generation.

  • The system first retrieves relevant information from a vast knowledge base (often a database or a set of documents) based on the user's query or prompt.
  • This retrieved information is then used to augment the language model's input, providing it with more context and specific facts.
  • Finally, the language model uses this augmented input to generate a more comprehensive and informative response, leveraging both its knowledge base and its language generation capabilities.

A bit of History

AI's history has been marked by periods of progress and setbacks. Computing power, data availability, and algorithmic advancements have played crucial roles in AI's evolution. AI is no longer limited to expert systems but encompasses a wide range of techniques and applications.

  • 1950: Alan Turing proposes the "Turing Test" to assess machine intelligence.

During the turing test, the human questioner asks a series of questions to both respondantes. After the specified time, the questionner tries to decide which terminal is operated bu the human respondant and which terminal is operated by the computer.

turing

  • 1956: Dartmouth Conference establishes the field of "Artificial Intelligence".

  • 1959: Arthur Samuel develops a checkers-playing program that learns and improves over time.

  • 1960s: Research focused on logic-based reasoning and early expert systems.

  • 1972: The first expert system, DENDRAL, is developed for identifying organic molecules.

  • 1980s-1990s: Development of new techniques like machine learning and neural networks.

  • 1997: Deep Blue, a chess-playing computer, defeats Garry Kasparov, the world chess champion. gasparov

  • 1990s-2000s: Advances in computing power, data availability, and algorithms as fuel for AI progress.

  • 2010s: Deep learning revolutionizes AI with breakthroughs in image recognition, speech recognition, and natural language processing.

  • 2011: Watson, an IBM supercomputer, wins Jeopardy! against human champions. jeopardy

  • 2016: AlphaGo, a program developed by Google DeepMind, defeats Go champion Lee Sedol. alphago

  • 2022: First release of ChatGPT : AI continues to evolve rapidly, with advancements in areas like autonomous vehicles, robotics, and personalized medicine.

The market

market

top50

🧪 Exercises

1. LLMs and MMLLMs are constantly evolving.


2. Multi-Modal LLMs can process and generate only text data.


3. Which of the following are examples of Machine Learning applications?




4. Deep Learning uses artificial neural networks with multiple layers.


5. Natural Language Processing (NLP) includes which of the following?




6. RAG stands for Retrieval Augmented Generation.


7. LLMs can only generate text and cannot understand it.


8. Which of the following is NOT a type of Machine Learning?




9. Deep Learning models require less data than traditional Machine Learning models.


10. Natural Language Processing can be used for sentiment analysis.


11. Which of the following are common applications of Deep Learning?




12. RAG can improve the accuracy of responses generated by LLMs.


13. Which of the following is a benefit of using Cloud Computing for AI?




14. The Turing Test is designed to evaluate a machine's ability to exhibit intelligent behavior.


15. Multi-Modal LLMs can only process text and images.


Solution

1. LLMs and MMLLMs are constantly evolving.


2. Multi-Modal LLMs can process and generate only text data.


3. Which of the following are examples of Machine Learning applications?




4. Deep Learning uses artificial neural networks with multiple layers.


5. Natural Language Processing (NLP) includes which of the following?




6. RAG stands for Retrieval Augmented Generation.


7. LLMs can only generate text and cannot understand it.


8. Which of the following is NOT a type of Machine Learning?




9. Deep Learning models require less data than traditional Machine Learning models.


10. Natural Language Processing can be used for sentiment analysis.


11. Which of the following are common applications of Deep Learning?




12. RAG can improve the accuracy of responses generated by LLMs.


13. Which of the following is a benefit of using Cloud Computing for AI?




14. The Turing Test is designed to evaluate a machine's ability to exhibit intelligent behavior.


15. Multi-Modal LLMs can only process text and images.


📖 Further readings

',35)]))}const m=n(d,[["render",u],["__file","index.html.vue"]]),f=JSON.parse(`{"path":"/overview/","title":"Let's start","lang":"en-US","frontmatter":{"description":"Let's start Warning LLMs and MMLLMs are constantly evolving, and new applications for developer training are emerging all the time. Prerequisites Shell Command Line Skills: The ...","head":[["meta",{"property":"og:url","content":"https://worldline.github.io/worldline/learning-ai/learning-ai/overview/"}],["meta",{"property":"og:title","content":"Let's start"}],["meta",{"property":"og:description","content":"Let's start Warning LLMs and MMLLMs are constantly evolving, and new applications for developer training are emerging all the time. Prerequisites Shell Command Line Skills: The ..."}],["meta",{"property":"og:type","content":"article"}],["meta",{"property":"og:locale","content":"en-US"}],["meta",{"property":"og:updated_time","content":"2024-11-20T13:15:23.000Z"}],["meta",{"property":"article:modified_time","content":"2024-11-20T13:15:23.000Z"}],["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"Article\\",\\"headline\\":\\"Let's start\\",\\"image\\":[\\"\\"],\\"dateModified\\":\\"2024-11-20T13:15:23.000Z\\",\\"author\\":[]}"]]},"headers":[{"level":2,"title":"Prerequisites","slug":"prerequisites","link":"#prerequisites","children":[]},{"level":2,"title":"Definitions","slug":"definitions","link":"#definitions","children":[{"level":3,"title":"Large Language Model (LLM)","slug":"large-language-model-llm","link":"#large-language-model-llm","children":[]},{"level":3,"title":"Multi-Modal LLM (MMLLM)","slug":"multi-modal-llm-mmllm","link":"#multi-modal-llm-mmllm","children":[]},{"level":3,"title":"Machine Learning (ML)","slug":"machine-learning-ml","link":"#machine-learning-ml","children":[]},{"level":3,"title":"Deep Learning (DL)","slug":"deep-learning-dl","link":"#deep-learning-dl","children":[]},{"level":3,"title":"Neural Network","slug":"neural-network","link":"#neural-network","children":[]}]},{"level":2,"title":"A bit of History","slug":"a-bit-of-history","link":"#a-bit-of-history","children":[]},{"level":2,"title":"The market","slug":"the-market","link":"#the-market","children":[]},{"level":2,"title":"🧪 Exercises","slug":"🧪-exercises","link":"#🧪-exercises","children":[]},{"level":2,"title":"📖 Further readings","slug":"📖-further-readings","link":"#📖-further-readings","children":[]}],"git":{"updatedTime":1732108523000,"contributors":[{"name":"Brah","username":"Brah","email":"brah.gharbi@gmail.com","commits":3,"url":"https://github.com/Brah"},{"name":"Ibrahim Gharbi","username":"Ibrahim Gharbi","email":"brah.gharbi@gmail.com","commits":4,"url":"https://github.com/Ibrahim Gharbi"}]},"filePathRelative":"overview/README.md","autoDesc":true}`);export{m as comp,f as data}; diff --git a/assets/index.html-CGIhipPr.js b/assets/index.html-CGIhipPr.js new file mode 100644 index 0000000..b26852c --- /dev/null +++ b/assets/index.html-CGIhipPr.js @@ -0,0 +1,12 @@ +import{_ as n,c as s,a,o as t}from"./app-JC71_Alg.js";const o="/learning-ai/assets/lmstudio-B6PjFtYg.png",i={};function l(p,e){return t(),s("div",null,e[0]||(e[0]=[a('

Offline with LM Studio

Disclamer

Be careful with offline prompting models downloaded from the internet. They can contain malicious code. And also the size of the model can be very large from few Gb to few Tb.

Definitions

If you don't want to use the online AI providers, you can use offline prompting. This technique involves using a local LLM to generate responses to prompts. It is useful for developers who want to use a local LLM for offline prompting or for those who want to experiment with different LLMs without relying on online providers.

LM Studio is a tool that allows developers to experiment with different LLMs without relying on online providers. It provides a user-friendly interface for selecting and configuring LLMs, as well as a chat interface for interacting with the LLMs. It also includes features for fine-tuning and deploying LLMs. This technique is useful for developers who want to experiment with different LLMs.

Installation

lmstudio_installation

For installation, you can follow the instructions here

Model configuration

You can configure the model you want to use in the settings tab. You can select the model you want to use and configure it according to your needs.

Context Length: The context length is the number of tokens that will be used as context for the model. This is important because it determines how much information the model can use to generate a response. A longer context length will allow the model to generate more detailed and relevant responses, but it may also increase the computational cost of the model.

GPU Offload: This option allows you to offload the model to a GPU if available. This can significantly speed up the generation process, especially for longer prompts or complex models.

CPU Threads: This option allows you to specify the number of CPU threads to use for the model. This can be useful for controlling the computational resources used by the model.

Evaluation batch size: This option allows you to specify the batch size for evaluation. This is important for evaluating the performance of the model and can affect the speed and accuracy of the generation process.

RoPE Frequency base: This option allows you to specify the frequency base for RoPE (Range-based Output Embedding). This is important for controlling the output length of the model and can affect the quality of the generated responses.

RoPE Frequency scale: This option allows you to specify the frequency scale for RoPE (Range-based Output Embedding). This is important for controlling the output length of the model and can affect the quality of the generated responses.

Keep model in memory: This option allows you to keep the model in memory after the generation process is complete. This can be useful for generating multiple responses or for using the model for offline prompting.

Try mmap() for faster loading: This option allows you to try using mmap() for faster loading of the model. This can be useful for loading large models or for generating responses quickly.

Seed: This option allows you to specify a seed for the model. This can be useful for controlling the randomness of the generated responses.

Flash Attention: This option allows you to enable flash attention for the model. This can be useful for generating more detailed and accurate responses, but it may also increase the computational cost of the model.

enable APIs

You can use the APIs to generate responses from the models. To enable the API server with LM Studio, you need to set the API Server option to ON in the settings tab. You can then use the API endpoints to generate responses from the models.

2024-11-15 18:45:22  [INFO] [LM STUDIO SERVER] Success! HTTP server listening on port 1234
+2024-11-15 18:45:22  [INFO]
+2024-11-15 18:45:22  [INFO] [LM STUDIO SERVER] Supported endpoints:
+2024-11-15 18:45:22  [INFO] [LM STUDIO SERVER] ->	GET  http://localhost:1234/v1/models
+2024-11-15 18:45:22  [INFO] [LM STUDIO SERVER] ->	POST http://localhost:1234/v1/chat/completions
+2024-11-15 18:45:22  [INFO] [LM STUDIO SERVER] ->	POST http://localhost:1234/v1/completions
+2024-11-15 18:45:22  [INFO] [LM STUDIO SERVER] ->	POST http://localhost:1234/v1/embeddings
+2024-11-15 18:45:22  [INFO]
+2024-11-15 18:45:22  [INFO] [LM STUDIO SERVER] Logs are saved into /Users/ibrahim/.cache/lm-studio/server-logs
+2024-11-15 18:45:22  [INFO] Server started.
+2024-11-15 18:45:22  [INFO] Just-in-time model loading active.
+

You can use the endpoints to generate responses from the models. The endpoints are as follows:

  • GET /v1/models: This endpoint returns a list of the available models.
  • POST /v1/chat/completions: This endpoint generates responses from the models using the chat format.Chat format is used for tasks such as chatbots, conversational AI, and language learning.
  • POST /v1/completions: This endpoint generates responses from the models using the completion format. Completion format is used for tasks such as question answering, summarization, and text generation.
  • POST /v1/embeddings: This endpoint generates embeddings from the models. Embeddings are used for tasks such as sentiment analysis, text classification, and language translation.

🧪 Exercises

📖 Further readings

`,27)]))}const c=n(i,[["render",l],["__file","index.html.vue"]]),d=JSON.parse('{"path":"/offline/","title":"Offline with LM Studio","lang":"en-US","frontmatter":{"description":"Offline with LM Studio Disclamer Be careful with offline prompting models downloaded from the internet. They can contain malicious code. And also the size of the model can be ve...","head":[["meta",{"property":"og:url","content":"https://worldline.github.io/worldline/learning-ai/learning-ai/offline/"}],["meta",{"property":"og:title","content":"Offline with LM Studio"}],["meta",{"property":"og:description","content":"Offline with LM Studio Disclamer Be careful with offline prompting models downloaded from the internet. They can contain malicious code. And also the size of the model can be ve..."}],["meta",{"property":"og:type","content":"article"}],["meta",{"property":"og:locale","content":"en-US"}],["meta",{"property":"og:updated_time","content":"2024-11-15T17:49:41.000Z"}],["meta",{"property":"article:modified_time","content":"2024-11-15T17:49:41.000Z"}],["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"Article\\",\\"headline\\":\\"Offline with LM Studio\\",\\"image\\":[\\"\\"],\\"dateModified\\":\\"2024-11-15T17:49:41.000Z\\",\\"author\\":[]}"]]},"headers":[{"level":2,"title":"Definitions","slug":"definitions","link":"#definitions","children":[]},{"level":2,"title":"Installation","slug":"installation","link":"#installation","children":[]},{"level":2,"title":"Model configuration","slug":"model-configuration","link":"#model-configuration","children":[]},{"level":2,"title":"enable APIs","slug":"enable-apis","link":"#enable-apis","children":[]},{"level":2,"title":"🧪 Exercises","slug":"🧪-exercises","link":"#🧪-exercises","children":[]},{"level":2,"title":"📖 Further readings","slug":"📖-further-readings","link":"#📖-further-readings","children":[]}],"git":{"updatedTime":1731692981000,"contributors":[{"name":"Brah","username":"Brah","email":"brah.gharbi@gmail.com","commits":1,"url":"https://github.com/Brah"}]},"filePathRelative":"offline/README.md","autoDesc":true}');export{c as comp,d as data}; diff --git a/assets/index.html-CVCjDvCw.js b/assets/index.html-CVCjDvCw.js new file mode 100644 index 0000000..78bb4a9 --- /dev/null +++ b/assets/index.html-CVCjDvCw.js @@ -0,0 +1,91 @@ +import{_ as s,c as a,a as e,o as t}from"./app-JC71_Alg.js";const o="/learning-ai/assets/cot-CrIEIz7R.png",i="/learning-ai/assets/react-BB8mFVUF.png",p={};function r(l,n){return t(),a("div",null,n[0]||(n[0]=[e(`

Prompt with AI

Prompt engineering

Prompt engineering involves the design and creation of prompts that are used to elicit specific responses or actions from AI models or interactive systems. These prompts are carefully crafted to guide the behavior or generate particular outputs from the AI, such as generating natural language responses, providing recommendations, or completing specific tasks.

Definition

In the context of AI language models, prompt engineering is especially important for shaping the model's behavior and output. By designing prompts effectively, engineers can influence the model's responses and ensure that it generates coherent, relevant, and accurate content.

There are four main areas to consider when writing an effective prompt. You don’t need to use all four, but using a few will help!

  • Persona: Who is the user you're writing for? What are their skills and knowledge?
  • Task: What specific action do you want the user to perform?
  • Context: What information does the user need to know to complete the task?
  • Format: What is the desired output of the task?

Example Prompt:

  • [Persona] You are a Google Cloud program manager.
  • [Task] Draft an executive summary email
  • [Context] to [person description] based on [details about relevant program docs].
  • [Format] Limit to bullet points.

By using "act as," you are establishing a specific context for the language model and guiding it to understand the type of task or request you are making. This helps to set the right expectations and provides the language model with the necessary context to generate a response tailored to the defined role.

"Act as a creative writing assistant and generate a short story based 
+on a prompt about a futuristic world where robots have become sentient."
+

Framework : Chain of Thought

Chain of Thought

Introduced in Wei et al. (2022), chain-of-thought (CoT) prompting enables complex reasoning capabilities through intermediate reasoning steps. You can combine it with few-shot prompting to get better results on more complex tasks that require reasoning before responding. Prompting Guide with CoT

Framework : ReAct Prompting

react

Yao et al., 2022 introduced a framework named ReAct where LLMs are used to generate both reasoning traces and task-specific actions in an interleaved manner.

Generating reasoning traces allow the model to induce, track, and update action plans, and even handle exceptions. The action step allows to interface with and gather information from external sources such as knowledge bases or environments.

The ReAct framework can allow LLMs to interact with external tools to retrieve additional information that leads to more reliable and factual responses. Prompting Guide with CoT

Summarize

Summary is a prompt engineering technique that involves providing a summary of a given document or text. It can helps for summarizing changelogs, articles, or other technical documents.

Help me write an article of this document [Insert or copy paste document text]
+Generate 5 titles out of the following topic….
+Generate a subtitle to catch readers’ attention on the following 
+topic [describe the topic]
+

Write

Write is a prompt engineering technique that involves providing a step-by-step guide or instructions for a given task or process. Its useful for developers to create functional and technical documentations.

Create a template of an email response to customer inquiring about ….
+Create a guide that explains how to use ….
+Write step by step instructions
+

For Developers

Code explanation

Code explanation is a prompt engineering technique that involves providing a detailed explanation of a code snippet or function. This technique is useful for developers who want to understand the inner workings of a codebase or for those who want to document their code.

cf. Preformatted prompts for an example of code explanation

Generation

Act as a code generator. Generate a Python function that takes a list of 
+numbers as input and returns the sum of all the numbers.
+

🧪 Exercises

Basic Function Creation

  • Create a function that calculates the factorial of a number.
  • Handle both positive integers and zero, with error handling for negative inputs.

Expected Output (python)

def factorial(n):
+    if n < 0:
+        raise ValueError("Input must be a non-negative integer.")
+    if n == 0:
+        return 1
+    result = 1
+    for i in range(1, n + 1):
+        result *= i
+    return result
+
Solutions

Persona: Python Developer
Task: Create a function
Context: You need to calculate the factorial of a number.

As a Python Developer, create a function named factorial that takes a single integer input and returns its factorial. The function should handle both positive integers and zero. Include error handling for negative inputs.

API Request Handling

  • Write a function to fetch data from a given URL using the Fetch API.
  • Return the JSON response and handle any potential errors.

Expected Output (javascript)

async function fetchData(url) {
+    try {
+        const response = await fetch(url);
+        if (!response.ok) {
+            throw new Error(\`HTTP error! status: \${response.status}\`);
+        }
+        const data = await response.json();
+        return data;
+    } catch (error) {
+        console.error("Error fetching data:", error);
+    }
+}
+
Solutions

Persona: JavaScript Developer
Task: Write a function to handle API requests
Context: You need to fetch data from a given URL.

As a JavaScript Developer, write a function named fetchData that takes a URL as an argument and fetches data from that URL using the Fetch API. The function should return the JSON response and handle any errors that may occur during the fetch operation.

Class Definition

  • Define a class representing a book with properties for title, author, and publication year.
  • Include a method to display the book's details.

Expected Output (C#)

public class Book
+{
+    public string Title { get; set; }
+    public string Author { get; set; }
+    public int PublicationYear { get; set; }
+
+    public void DisplayDetails()
+    {
+        Console.WriteLine($"Title: {Title}, Author: {Author}, Year: {PublicationYear}");
+    }
+}
+
Solutions

Persona: C# Developer
Task: Define a class
Context: You are creating a representation of a book.

As a C# Developer, create a class named Book that has properties for Title, Author, and PublicationYear. Include a method named DisplayDetails that prints the book's details in a formatted string.

Simple Web Server

  • Set up a basic web server that listens on port 3000.
  • Respond with a simple message when accessed.

Expected Output (Javascript)

const http = require('http');
+
+const server = http.createServer((req, res) => {
+    res.statusCode = 200;
+    res.setHeader('Content-Type', 'text/plain');
+    res.end('Hello, World!\\n');
+});
+
+server.listen(3000, () => {
+    console.log('Server running at http://localhost:3000/');
+});
+
Solutions

Persona: JavaScript Developer
Task: Set up a web server
Context: You need to create a simple server that responds to requests.

As a JavaScript Developer, set up a simple web server using the http module that listens on port 3000 and responds with "Hello, World!" when accessed.

Data Validation

Details:

  • Write a method to validate if a given string is a valid email address.
  • Use a regular expression for the validation.

Expected Output (Ruby)

def valid_email?(email)
+    regex = /\\A[\\w+\\-.]+@[a-z\\d\\-.]+\\.[a-z]+\\z/i
+    !!(email =~ regex)
+end
+
Solutions

Persona: Ruby Developer
Task: Write a validation method
Context: You need to validate email addresses.

As a Ruby Developer, write a method named valid_email? that takes a string as input and returns true if it is a valid email address, and false otherwise. Use a regular expression for validation.

Completion

Code completion is a prompt engineering technique that involves providing a list of possible completions for a given code snippet or function. This technique is useful for developers who want to suggest possible code changes or improvements based on their existing code.

Conversion

Code conversion is a prompt engineering technique that involves providing a conversion of a code snippet or function from one programming language to another. This technique is useful for developers who want to migrate their code from one language to another or for those who want to use a different programming language for their projects.

Review

Code review is a prompt engineering technique that involves providing a code review of a given code snippet or function. This technique is useful for developers who want to review their code for potential issues,bugs, or for those who want to provide feedback on their code.

Fixing

Code fixing is a prompt engineering technique that involves providing a code fix for a given code snippet or function. This technique is useful for developers who want to fix bugs or issues in their code or for those who want to improve the quality of their code.

Help me find mistakes in my code [insert your code]
+Explain what this snippet of code does [insert code snippet]
+What it the correct syntax for a [statement or function] 
+in [programming language]
+How do I fix the following programming language code 
+[program language] code which explain the functioning [Insert code snippet]
+

Refactoring

Code refactor is a prompt engineering technique that involves providing a code refactoring of a given code snippet or function within a specific scope. This technique is useful for developers who want to refactor their code within a specific context or for those who want to improve the readability and maintainability of their code.

Data mocking

Mock data generation is a prompt engineering technique that involves providing a mock data set for a given code snippet or function. This technique is useful for developers who want to test their code with mock data or for those who want to generate test data for their projects. It avoid creating manually fake data for testing.

🧪 Exercises

Mock Data Generation

Create prompts that can generate mock user profiles. The language used is JavaScript.

The profile should include:

  • Name
  • Age
  • Email
  • Address (Street, City, State, Zip Code)
  • Phone Number
Solutions

Mock Data Generation

As a JavaScript Developer, write a function named generateUserProfile that generates a mock user profile with the following details: name, age, email, address, and phone number. The function should return an object containing the user profile details.

function generateUserProfile() {
+    const names = ["Alice", "Bob", "Charlie", "David", "Eva"];
+    const randomName = names[Math.floor(Math.random() * names.length)];
+    const randomAge = Math.floor(Math.random() * 50) + 18; // Age between 18 and 67
+    const randomEmail = \`\${randomName.toLowerCase()}@example.com\`;
+    const randomAddress = {
+        street: \`\${Math.floor(Math.random() * 1000)} Main St\`,
+        city: "Sample City",
+        state: "CA",
+        zip: "12345"
+    };
+    const randomPhone = \`(\${Math.floor(Math.random() * 900) + 100})-\${Math.floor(Math.random() * 900) + 100}-\${Math.floor(Math.random() * 9000) + 1000}\`;
+
+    return {
+        name: randomName,
+        age: randomAge,
+        email: randomEmail,
+        address: randomAddress,
+        phone: randomPhone
+    };
+}
+
+// Example usage
+console.log(generateUserProfile());
+

Go further

Testing

Testing is a prompt engineering technique that involves providing a test case for a given code snippet or function. This technique is useful for developers who want to test their code or for those who want to ensure the correctness of their code.

System design and architecture

System design and architecture is a prompt engineering technique that involves providing a system design or architecture for a given code snippet or function. This technique is useful for developers who want to design their code or for those who want to understand the overall architecture of their projects.

Documentation generation

Documentation generation is a prompt engineering technique that involves providing a documentation for a given code snippet or function. This technique is useful for developers who want to document their code or for those who want to provide documentation for their projects. It can be used to generate documentation in various formats such as Markdown, HTML, or PDF.

Commit Message Generation

Commit message generation is a prompt engineering technique that involves providing a commit message for a given code snippet or function. This technique is useful for developers who want to generate commit messages for their code or for those who want to ensure that their commit messages are clear and concise.

Vulnerability checking

Vulnerability checking is a prompt engineering technique that involves providing a vulnerability check for a given code snippet or function. This technique is useful for developers who want to check for vulnerabilities in their code or for those who want to ensure that their code is secure.

Warning

This prompt is not recommended for production use. It is intended for testing and debugging purposes only and is not a proof of security or safety of your app.

Shell/CLI commands manual

As a developer, you’re not limited to only writing code. LLMs can assist with CLI such as shell commands and version control using Git.

Regular expression explanation

You can understand complex regular expressions and generate ones that match specific patterns in text. This technique is useful for developers who want to write complex regular expressions or for those who want to understand the syntax of regular expressions.

Explain this regular expression in JavaScript: const regex = 
+/^[A-Za-z0–9._%+-]+@[A-Za-z0–9.-]+\\\\.[A-Za-z]{2,}$/;
+
`,94)]))}const u=s(p,[["render",r],["__file","index.html.vue"]]),d=JSON.parse('{"path":"/use/","title":"Prompt with AI","lang":"en-US","frontmatter":{"description":"Prompt with AI Prompt engineering Prompt engineering involves the design and creation of prompts that are used to elicit specific responses or actions from AI models or interact...","head":[["meta",{"property":"og:url","content":"https://worldline.github.io/worldline/learning-ai/learning-ai/use/"}],["meta",{"property":"og:title","content":"Prompt with AI"}],["meta",{"property":"og:description","content":"Prompt with AI Prompt engineering Prompt engineering involves the design and creation of prompts that are used to elicit specific responses or actions from AI models or interact..."}],["meta",{"property":"og:type","content":"article"}],["meta",{"property":"og:locale","content":"en-US"}],["meta",{"property":"og:updated_time","content":"2024-12-09T21:24:47.000Z"}],["meta",{"property":"article:modified_time","content":"2024-12-09T21:24:47.000Z"}],["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"Article\\",\\"headline\\":\\"Prompt with AI\\",\\"image\\":[\\"\\"],\\"dateModified\\":\\"2024-12-09T21:24:47.000Z\\",\\"author\\":[]}"]]},"headers":[{"level":2,"title":"Prompt engineering","slug":"prompt-engineering","link":"#prompt-engineering","children":[{"level":3,"title":"Definition","slug":"definition","link":"#definition","children":[]},{"level":3,"title":"Framework : Chain of Thought","slug":"framework-chain-of-thought","link":"#framework-chain-of-thought","children":[]},{"level":3,"title":"Framework : ReAct Prompting","slug":"framework-react-prompting","link":"#framework-react-prompting","children":[]},{"level":3,"title":"Summarize","slug":"summarize","link":"#summarize","children":[]},{"level":3,"title":"Write","slug":"write","link":"#write","children":[]}]},{"level":2,"title":"For Developers","slug":"for-developers","link":"#for-developers","children":[{"level":3,"title":"Code explanation","slug":"code-explanation","link":"#code-explanation","children":[]},{"level":3,"title":"Generation","slug":"generation","link":"#generation","children":[]},{"level":3,"title":"🧪 Exercises","slug":"🧪-exercises","link":"#🧪-exercises","children":[]},{"level":3,"title":"Completion","slug":"completion","link":"#completion","children":[]},{"level":3,"title":"Conversion","slug":"conversion","link":"#conversion","children":[]},{"level":3,"title":"Review","slug":"review","link":"#review","children":[]},{"level":3,"title":"Fixing","slug":"fixing","link":"#fixing","children":[]},{"level":3,"title":"Refactoring","slug":"refactoring","link":"#refactoring","children":[]},{"level":3,"title":"Data mocking","slug":"data-mocking","link":"#data-mocking","children":[]}]},{"level":2,"title":"🧪 Exercises","slug":"🧪-exercises-1","link":"#🧪-exercises-1","children":[]},{"level":2,"title":"Go further","slug":"go-further","link":"#go-further","children":[{"level":3,"title":"Testing","slug":"testing","link":"#testing","children":[]},{"level":3,"title":"System design and architecture","slug":"system-design-and-architecture","link":"#system-design-and-architecture","children":[]},{"level":3,"title":"Documentation generation","slug":"documentation-generation","link":"#documentation-generation","children":[]},{"level":3,"title":"Commit Message Generation","slug":"commit-message-generation","link":"#commit-message-generation","children":[]},{"level":3,"title":"Vulnerability checking","slug":"vulnerability-checking","link":"#vulnerability-checking","children":[]},{"level":3,"title":"Shell/CLI commands manual","slug":"shell-cli-commands-manual","link":"#shell-cli-commands-manual","children":[]},{"level":3,"title":"Regular expression explanation","slug":"regular-expression-explanation","link":"#regular-expression-explanation","children":[]}]}],"git":{"updatedTime":1733779487000,"contributors":[{"name":"Brah","username":"Brah","email":"brah.gharbi@gmail.com","commits":10,"url":"https://github.com/Brah"},{"name":"Ibrahim Gharbi","username":"Ibrahim Gharbi","email":"brah.gharbi@gmail.com","commits":2,"url":"https://github.com/Ibrahim Gharbi"}]},"filePathRelative":"use/README.md","autoDesc":true}');export{u as comp,d as data}; diff --git a/assets/index.html-CwVXPkpi.js b/assets/index.html-CwVXPkpi.js new file mode 100644 index 0000000..3cdb648 --- /dev/null +++ b/assets/index.html-CwVXPkpi.js @@ -0,0 +1,168 @@ +import{_ as s,c as a,a as e,o as t}from"./app-JC71_Alg.js";const i={};function o(l,n){return t(),a("div",null,n[0]||(n[0]=[e(`

AI for services

Definitions

Google Colab

You can use Google collab for a simple to use notebook environment for machine learning and data science. It will provide a container with all the necessary libraries and tools to run your code and live editing interface through a browser.

A notebook is a document that contains live code, equations, visualizations, and narrative text. You can use Colab to create, share, and collaborate on Jupyter notebooks with others.

User interraction with collab

You can store your API keysafely in the userdata of your colab environment. Also you can upload files to your colab environment as follows:


+from google.colab import files
+from google.colab import userdata  # For retrieving API keys
+
+# 1. Upload the file to your current colab environment ( a upload button will appear at the execution of the code)
+uploaded = files.upload()
+for fn in uploaded.keys():
+    print('User uploaded file "{name}" with length {length} bytes'.format(
+        name=fn, length=len(uploaded[fn])))
+
+# get the API key from colab userdata ( left panel of colla, picto with the key)
+api_key=userdata.get('API_KEY')
+
+

Langchain

Langchain is a framework for building applications powered by language models (LLMs) like OpenAI's GPT-3. It provides a set of tools and utilities for working with LLMs, including prompt engineering, chain of thought, and memory management. Langchain is designed to be modular and extensible, allowing developers to easily integrate with different LLMs and other AI services.

Use APIs (Mistral)

configuration

To set Up Your Environment

  • Install the necessary packages using pip:
    pip install requests langchain langchain_mistralai
    +

To obtain API Keys

  • Obtain an API key for the Mistral API here

Main enpoints

EndpointURLDescription
Models/v1/modelsList models that are available with your account.
Chat Completions/v1/chat/completionsCompletion means that the LLM will generate a response based on the prompt.
Embeddings/v1/embeddingsEmbeddings means that the LLM will generate a vector representation of the input text.
curl -H "Authorization: Bearer <your_api_key>" https://api.mistral.ai/v1/models
+

output :

[
+  {
+    "id": "text-davinci-003",
+    "object": "model",
+    "owned_by": "user-123456789",
+    "permission": [
+      {
+        "id": "user-123456789",
+        "object": "permission",
+        "allow_create_engine": true,
+        "allow_sampling": true,
+        "allow_logprobs": true,
+        "allow_search": true,
+        "allow_view": true,
+        "allow_fine_tuning": true,
+        "organization": "org-123456789",
+        "group": null,
+        "is_blocking": false
+      }
+    ]
+  }
+  ...
+]
+

Json Mode

Json mode is a feature that allows you to send structured data to the model through the API instead of a text prompt. To use Json mode, you need to select the right endpoint in the API explorer and specify the input format as JSON in the prompt.

For OpenAI API, you can use the following format :

{
+  "model": "text-davinci-003",
+  "prompt": "Translate the following text to French: 'Hello, how are you?'",
+  "max_tokens": 100
+}
+
curl -H "Authorization: Bearer <your_api_key>" -H "Content-Type: application/json" -d '{"model": "text-davinci-003", "prompt": "Translate the following text to French: 'Hello, how are you?'", "max_tokens": 100}' https://api.mistral.ai/v1/chat/completions
+
+{
+  "id": "chatcmpl-123456789",
+  "object": "chat.completion",
+  "created": 1679341456,
+  "model": "text-davinci-003",
+  "choices": [
+    {
+      "index": 0,
+      "message": {
+        "role": "assistant",
+        "content": "Bonjour, comment ça va?"
+      },
+      "finish_reason": "stop"
+    }
+  ],
+  "usage": {
+    "prompt_tokens": 5,
+    "completion_tokens": 7,
+    "total_tokens": 12
+  }
+}
+

Structured Outputs

Structured outputs are a feature that allows you to receive structured data from the model through the API. It is useful for working with models that require structured outputs, such as JSON.

To use structured outputs, you need to select the right endpoint in the API explorer and specify the output format in the prompt.

for OpenAI API, you can use the following format :

{
+  "model": "text-davinci-003",
+  "prompt": "Translate the following text to French: 'Hello, how are you?'",
+  "max_tokens": 100,
+  "output": "json"  
+}
+

the structured output can be as follow :

{
+  "model": "text-davinci-003",
+  "prompt": "Translate the following text to French: 'Hello, how are you?'",
+  "max_tokens": 100,
+  "output": {
+    "text": "Bonjour, comment ça va?"
+  }
+}
+
+

🧪 Exercises

Request an LLM with with basic REST request

Create a Python application that generates humorous motivational quotes for developers based on their name, favorite programming language, and a brief description of their current project or challenge.

Library for making API calls

You can use requests for making API calls in Python.

Expected Output

Enter your name: Ibrahim
+Enter your favorite programming language: kotlin
+Enter your current project description: conference app with KMP
+
+--- Motivational Quote ---
+Quote: "Code like you just ate a burrito... with passion, speed, and a little bit of mess!"
+Author: Unknown
+--------------------------
+
Solution

Google Collab notebook

Use Langchain (Mistral)

Support

Depending on the LLM, langchain provides different APIs. Have a look at the following table here to see which APIs are available for your LLM.

Model FeaturesTool CallingStructured OutputJSON ModeImage InputAudio InputVideo Input

To use langchain with mistral, you need to install the langchain_mistralai package and create a ChatMistralAI object.

from langchain_mistralai.chat_models import ChatMistralAI
+# Define your API key and model
+API_KEY = 'your_api_key'  # Replace with your actual Mistral API key
+MISTRAL_API_URL = 'https://api.mistral.ai/v1/chat/completions'
+llm = ChatMistralAI(api_key=API_KEY, model="open-mistral-7b")
+

Prompt templating

Prompt templating is a powerful feature that allows you to create dynamic prompts based on the input data. It enables you to generate prompts that are tailored to the specific requirements of your application.

from langchain.prompts import PromptTemplate
+
+prompt = PromptTemplate(
+    input_variables=["text", "language"],
+    template="translate the following text to {language}: {text}",
+)
+

Chain

Chain Chains refer to sequences of calls - whether to an LLM, a tool, or a data preprocessing step. It is a sequence of calls that are executed in order, with the output of one call being the input for the next call.It enables you to create complex workflows by combining the output of one LLM call with the input of another. This is useful for tasks that require multiple steps or interactions with external systems.

from langchain.chains import LLMChain
+
+input_data = {
+    "text": "Hello, how are you?",
+    "language": "French"
+}
+
+chain = prompt | llm_model
+response=chain.invoke(input_data)
+

Multiple prompt can be chained together to create complex workflows.

AIMessage

AIMessage is returned from a chat model as a response to a prompt. It contains the message type, content, and any additional parameters.

🧪 Exercise

Request an LLM in JSON mode with structured output in JSON format

Create a Python application that generates humorous motivational quotes for developers based on their name, favorite programming language, and a brief description of their current project or challenge.

Expected Output

Enter your name: Ibrahim
+Enter your favorite programming language: kotlin
+Enter your current project description: conference app with KMP
+
+--- Motivational Quote ---
+Quote: "Code like you just ate a burrito... with passion, speed, and a little bit of mess!"
+Author: Unknown
+--------------------------
+

Steps

Create a function get_developer_motivation(name, language, project_description) that:

  • Takes a developer's name, their favorite programming language, and a brief description of their current project or challenge as input.
  • Uses langchain to send a request to the LLM to generate a humorous motivational quote.
  • Returns a structured response containing the quote, the developer's name, the programming language, and the project description.
Solution

Google Collab notebook

Tool/Function calling

Function/Tool calling is a feature that allows the llm to call existing functions from your code. It is useful for working with functions, such as APIs, and for interacting with models that require function calls. Once a tool function is created, you can register it as a tool within LangChain for being used by the LLM.

🧪 Exercise

Request an LLM with Tool/Function calling

Build a command-line application that fetches weather data for a specified city using LangChain and a public weather API. The application will utilize implicit tool calling to allow the LLM to decide when to call the weather-fetching tool based on user input.

Output
Ask about the weather (e.g., 'Lille, France'): Paris
+
+------------------------------------------------------------------------------
+The current weather in Paris is: overcast clouds with a temperature of 6.63°C.
+------------------------------------------------------------------------------
+

Configuration

  • Sign up for an API key from a weather service provider (e.g., OpenWeatherMap).
    • You can generate your key here
    • You can call the API as following :
       curl https://api.openweathermap.org/data/2.5/weather?q=Lille&appid=<your_api_key>&units=metric
    +
Steps

Create the Weather Fetching Function

  • Define a function fetch_weather(city: str) -> dict that takes a city name as input and returns the weather data as a dictionary. Use the weather API to fetch the data.

Register the Weather Tool

  • Use the Tool class from LangChain to register the fetch_weather function as a tool.

Set Up the LangChain Components

  • Create a prompt template that asks about the weather in a specified city.
  • Instantiate the ChatMistralAI model with your Mistral API key.
  • Create a chain that combines the prompt template, the chat model, and the registered weather tool.

Handle User Input

  • Implement a function handle_user_input(city) that:
    • Takes user input for the city name.
    • Invokes the chain with the input data.
    • Checks if the response includes tool calls.
    • Extracts the function name and arguments from the tool call and invokes the weather tool if necessary.
    • Returns the weather information or the LLM's response.

Run the Application

  • Prompt the user to enter a city name.
  • Call the handle_user_input function with the provided city name and display the result.
Solution

Google Collab notebook

RAG for services (llama-index)

llama-index is a powerful tool for building and deploying RAG (Retrieval Augmented Generation) applications. It provides a simple and efficient way to integrate LLMs into your applications, allowing you to retrieve relevant information from a large knowledge base and use it to generate responses. RAG is a technique that leverages the power of LLMs to augment human-generated content.

RAG over Unstructured Documents

Unstructured documents are a common source of information for RAG applications. These documents can be in various formats, such as text, PDF, HTML, or images. LlamaIndex provides tools for indexing and querying unstructured documents, enabling you to build powerful RAG applications that can retrieve information from a large corpus of documents.

documents = SimpleDirectoryReader(input_files=[fn]).load_data()
+index = SummaryIndex.from_documents(documents, settings=settings)
+query_engine = index.as_query_engine(response_mode="tree_summarize", llm=llm)
+response = query_engine.query("<your_query_here>")
+

Question Answering (QA) over Structured Data

Structured Data is another common source of information for RAG applications. This data is typically stored in databases or spreadsheets and can be queried using SQL or other query languages. LlamaIndex provides tools for connecting LLMs to databases and querying structured data, allowing you to build RAG applications that can retrieve information from databases.

#The database initialized with the data first
+sql_database = SQLDatabase(engine, include_tables=["books"])
+query_engine = NLSQLTableQueryEngine(
+    sql_database=sql_database,
+    tables=["books"],
+    llm=llm,
+    embed_model=embed_model,
+)
+
+query_engine.query("Who wrote 'To Kill a Mockingbird'?")
+

🧪 Exercises

Querying on Unstructured Documents

Create a Python application that provide a txt document containings a list of application comments and make sentiment analysis on it with llama-index.

Your customer review txt file :

Review 1: I was very disappointed with the product. It did not meet my expectations.
+Review 2: The service was excellent! I highly recommend this company.
+Review 3: I had a terrible experience. The product was faulty, and the customer support was unhelpful.
+Review 4: I am extremely satisfied with my purchase. The quality is outstanding.
+

Expected Shell Output:

Saving customer_reviews.txt to customer_reviews (4).txt
+User uploaded file "customer_reviews (4).txt" with length 338 bytes
+The customers' experiences with the company and its products vary. Some have had positive experiences, such as excellent service and high-quality products, while others have encountered issues with faulty products and unhelpful customer support.
+
Solution

Google Collab notebook

Querying SQL Databases with Natural Language

Create a Python application that initializes a list of languages and their creators with sqlalchemy and requests the LLM to retrieve the creators of a language. The LLM should be able to understand the context and retrieve the relevant information from the database.

Expected Shell Output:

[
+    {
+        "language_name": "Python",
+        "creator": "Guido van Rossum",
+        "year_created": 1991
+    },
+    {
+        "language_name": "JavaScript",
+        "creator": "Brendan Eich",
+        "year_created": 1995
+    },
+    {
+        "language_name": "Java",
+        "creator": "James Gosling",
+        "year_created": 1995
+    },
+    {
+        "language_name": "C++",
+        "creator": "Bjarne Stroustrup",
+        "year_created": 1985
+    }
+]
+Guido van Rossum created Python in 1991.
+

CloudAI with GCP

GCP is a suite of cloud computing services provided by Google. It includes a wide range of tools and services for building and consuming LLMs, such as Vertex AI, Google Colab, and ML Flow.

Large Consumer-Facing

  • Gemini: Google's large language model (LLM), positioned as a competitor to OpenAI's GPT models. Gemini's capabilities are integrated into various Google products and services, and are also accessible through APIs. Different versions of Gemini (e.g., Gemini Pro, Gemini Ultra) offer varying levels of capability and access. It powers several consumer-facing features across Google's ecosystem.
  • AI Studio: Cloud-based machine learning platform offered by several companies, most notably Google with its Google AI Studio (now Vertex AI Studio). It provides APIs for leading foundation models, and tools to rapidly prototype, easily tune models with your own data, and seamlessly deploy to applications.

Vertex AI

This is the central hub for most Google Cloud's AI/ML services. It integrates and supersedes many previous offerings.

  • Custom Training: Training machine learning models using various algorithms and frameworks (TensorFlow, PyTorch, scikit-learn, XGBoost, etc.). Provides access to managed compute instances (including TPUs).
  • Prediction: Deploying trained models for inference (making predictions). Offers different deployment options based on scale and latency requirements.
  • Pipelines: Creating and managing machine learning workflows, including data preprocessing, model training, evaluation, and deployment, as a series of connected steps.
  • Model Monitoring: Monitoring deployed models for performance degradation and potential issues (drift).
  • Feature Store: Centralized repository for storing, managing, and versioning features used in machine learning models, improving collaboration and reuse.
  • ...

Google Cloud APIs

Pre-trained Models and APIs: Google offers numerous pre-trained models and APIs for various tasks, making it easier to integrate AI into applications without building models from scratch. Examples include:

  • Natural Language: Processing and understanding text (sentiment analysis, entity recognition, etc.).
  • Vision: Analyzing images (object detection, image classification, optical character recognition, etc.).
  • Speech-to-Text: Converting audio to text.
  • Text-to-Speech: Converting text to audio.
  • Translation API: Translating text between languages.
  • ...

Specialized AI Products

Beyond the core platform and APIs, Google offers several specialized AI products:

  • TensorFlow: A popular open-source machine learning framework developed by Google. While not strictly a "Google Cloud" product, it's deeply integrated with their services.
  • Dialogflow: A conversational AI platform for building complex conversational experiences.
  • ...

🧪 Exercises

Collaborative (Hugging Face)

The platform where the machine learning community collaborates on models, datasets, and applications.

Hugging Face is a platform for researchers and developers to share, explore, and build AI models. It provides a centralized repository for models, datasets, and applications, making it easy to find, use, and contribute to the growing ecosystem of AI technologies.

  • Creating/deploy/customize a model
  • Pre-trained model, use behind the APIs, also a ML part, training model generation for use

🧪 Exercise

Manage models (ML Flow)

MLflow provides tools for managing experiments, tracking model versions, deploying models to various environments, and managing models in a central registry. It's designed to be platform-agnostic, meaning it can work with many different cloud providers and even on-premises infrastructure.

🧪 Exercise

  1. Create a model registry in GCP instance
  2. Create a model in the registry
  3. Deploy the model to GCP instance

📖 Further readings

`,127)]))}const p=s(i,[["render",o],["__file","index.html.vue"]]),c=JSON.parse('{"path":"/services/","title":"AI for services","lang":"en-US","frontmatter":{"description":"AI for services Definitions Google Colab You can use Google collab for a simple to use notebook environment for machine learning and data science. It will provide a container wi...","head":[["meta",{"property":"og:url","content":"https://worldline.github.io/worldline/learning-ai/learning-ai/services/"}],["meta",{"property":"og:title","content":"AI for services"}],["meta",{"property":"og:description","content":"AI for services Definitions Google Colab You can use Google collab for a simple to use notebook environment for machine learning and data science. It will provide a container wi..."}],["meta",{"property":"og:type","content":"article"}],["meta",{"property":"og:locale","content":"en-US"}],["meta",{"property":"og:updated_time","content":"2024-12-12T14:08:27.000Z"}],["meta",{"property":"article:modified_time","content":"2024-12-12T14:08:27.000Z"}],["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"Article\\",\\"headline\\":\\"AI for services\\",\\"image\\":[\\"\\"],\\"dateModified\\":\\"2024-12-12T14:08:27.000Z\\",\\"author\\":[]}"]]},"headers":[{"level":2,"title":"Definitions","slug":"definitions","link":"#definitions","children":[{"level":3,"title":"Google Colab","slug":"google-colab","link":"#google-colab","children":[]},{"level":3,"title":"Langchain","slug":"langchain","link":"#langchain","children":[]}]},{"level":2,"title":"Use APIs (Mistral)","slug":"use-apis-mistral","link":"#use-apis-mistral","children":[{"level":3,"title":"Main enpoints","slug":"main-enpoints","link":"#main-enpoints","children":[]},{"level":3,"title":"Json Mode","slug":"json-mode","link":"#json-mode","children":[]},{"level":3,"title":"Structured Outputs","slug":"structured-outputs","link":"#structured-outputs","children":[]},{"level":3,"title":"🧪 Exercises","slug":"🧪-exercises","link":"#🧪-exercises","children":[]}]},{"level":2,"title":"Use Langchain (Mistral)","slug":"use-langchain-mistral","link":"#use-langchain-mistral","children":[{"level":3,"title":"Support","slug":"support","link":"#support","children":[]},{"level":3,"title":"Prompt templating","slug":"prompt-templating","link":"#prompt-templating","children":[]},{"level":3,"title":"Chain","slug":"chain","link":"#chain","children":[]},{"level":3,"title":"🧪 Exercise","slug":"🧪-exercise","link":"#🧪-exercise","children":[]},{"level":3,"title":"Tool/Function calling","slug":"tool-function-calling","link":"#tool-function-calling","children":[]},{"level":3,"title":"🧪 Exercise","slug":"🧪-exercise-1","link":"#🧪-exercise-1","children":[]}]},{"level":2,"title":"RAG for services (llama-index)","slug":"rag-for-services-llama-index","link":"#rag-for-services-llama-index","children":[{"level":3,"title":"RAG over Unstructured Documents","slug":"rag-over-unstructured-documents","link":"#rag-over-unstructured-documents","children":[]},{"level":3,"title":"Question Answering (QA) over Structured Data","slug":"question-answering-qa-over-structured-data","link":"#question-answering-qa-over-structured-data","children":[]},{"level":3,"title":"🧪 Exercises","slug":"🧪-exercises-1","link":"#🧪-exercises-1","children":[]}]},{"level":2,"title":"CloudAI with GCP","slug":"cloudai-with-gcp","link":"#cloudai-with-gcp","children":[{"level":3,"title":"Large Consumer-Facing","slug":"large-consumer-facing","link":"#large-consumer-facing","children":[]},{"level":3,"title":"Vertex AI","slug":"vertex-ai","link":"#vertex-ai","children":[]},{"level":3,"title":"Google Cloud APIs","slug":"google-cloud-apis","link":"#google-cloud-apis","children":[]},{"level":3,"title":"Specialized AI Products","slug":"specialized-ai-products","link":"#specialized-ai-products","children":[]},{"level":3,"title":"🧪 Exercises","slug":"🧪-exercises-2","link":"#🧪-exercises-2","children":[]}]},{"level":2,"title":"Collaborative (Hugging Face)","slug":"collaborative-hugging-face","link":"#collaborative-hugging-face","children":[{"level":3,"title":"🧪 Exercise","slug":"🧪-exercise-2","link":"#🧪-exercise-2","children":[]}]},{"level":2,"title":"Manage models (ML Flow)","slug":"manage-models-ml-flow","link":"#manage-models-ml-flow","children":[]},{"level":2,"title":"🧪 Exercise","slug":"🧪-exercise-3","link":"#🧪-exercise-3","children":[]},{"level":2,"title":"📖 Further readings","slug":"📖-further-readings","link":"#📖-further-readings","children":[]}],"git":{"updatedTime":1734012507000,"contributors":[{"name":"Brah","username":"Brah","email":"brah.gharbi@gmail.com","commits":10,"url":"https://github.com/Brah"},{"name":"Ibrahim Gharbi","username":"Ibrahim Gharbi","email":"brah.gharbi@gmail.com","commits":4,"url":"https://github.com/Ibrahim Gharbi"}]},"filePathRelative":"services/README.md","autoDesc":true}');export{p as comp,c as data}; diff --git a/assets/index.html-D0OSWfCX.js b/assets/index.html-D0OSWfCX.js new file mode 100644 index 0000000..4ac71de --- /dev/null +++ b/assets/index.html-D0OSWfCX.js @@ -0,0 +1 @@ +import{_ as t,c as a,a as r,o}from"./app-JC71_Alg.js";const n="/learning-ai/assets/logo_worldline-t5KadDQv.png",i="/learning-ai/assets/avatar-Bf9zzubu.png",l={};function s(h,e){return o(),a("div",null,e[0]||(e[0]=[r('

Disclamer

LLMs and MMLLMs are constantly evolving, and new applications for developer training are emerging all the time.

AI for devs | Tech at Worldline

Who we are

avatar

We design payments technology that powers the growth of millions​ of businesses around the world. Engineering the next frontiers​ in payments technology​

  • Leader in payment and secured transactions. ​
  • Over 50bn transactions/year​
  • 7000+ engineers​ in over 40 countries​
  • A huge & diverse​ tech-stack

Follow trainers of this Hands-on Lab

avatar
Gharbi Ibrahim
🔗 @__brah​
🔗 cv.gharbi.org

Follow our Tech team

',10)]))}const c=t(l,[["render",s],["__file","index.html.vue"]]),p=JSON.parse(`{"path":"/","title":"AI for devs | Tech at Worldline","lang":"en-US","frontmatter":{"home":true,"heroImage":"./logo.png","heroText":"Hands-on Lab - AI for Devs","tagline":"Discover AI in practice.","actions":[{"text":"Start the Hands-on Lab →","link":"/overview/","type":"primary"}],"features":[{"title":"Let's start","details":"Prerequisites - Definitions - A bit of History - The market"},{"title":"Prompt with AI","details":"Prompt with AI, Prompt engineering, Definition, Chain of Thought, ReAct Prompting, promt for developers, code explanation..."},{"title":"Online with Librechat","details":"History, Favorites, Presets, Preformatted prompts, AI providers, Plugins & mixing, RAG..."},{"title":"Offline with LM Studio","details":"Installation, Model configuration, enable APIs..."},{"title":"Develop with AI","details":"Github Copilot"},{"title":"AI for services","details":"Cloud LLMs - Advanced RAG"}],"footer":"Worldline © 2024 | tech at Worldline","description":"Disclamer LLMs and MMLLMs are constantly evolving, and new applications for developer training are emerging all the time. AI for devs | Tech at Worldline Who we are avatar We de...","head":[["meta",{"property":"og:url","content":"https://worldline.github.io/worldline/learning-ai/learning-ai/"}],["meta",{"property":"og:title","content":"AI for devs | Tech at Worldline"}],["meta",{"property":"og:description","content":"Disclamer LLMs and MMLLMs are constantly evolving, and new applications for developer training are emerging all the time. AI for devs | Tech at Worldline Who we are avatar We de..."}],["meta",{"property":"og:type","content":"website"}],["meta",{"property":"og:locale","content":"en-US"}],["meta",{"property":"og:updated_time","content":"2024-12-09T20:49:10.000Z"}],["meta",{"property":"article:modified_time","content":"2024-12-09T20:49:10.000Z"}],["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"WebPage\\",\\"name\\":\\"AI for devs | Tech at Worldline\\",\\"description\\":\\"Disclamer LLMs and MMLLMs are constantly evolving, and new applications for developer training are emerging all the time. AI for devs | Tech at Worldline Who we are avatar We de...\\"}"]]},"headers":[{"level":2,"title":"Who we are","slug":"who-we-are","link":"#who-we-are","children":[{"level":3,"title":"Follow trainers of this Hands-on Lab","slug":"follow-trainers-of-this-hands-on-lab","link":"#follow-trainers-of-this-hands-on-lab","children":[]},{"level":3,"title":"Follow our Tech team","slug":"follow-our-tech-team","link":"#follow-our-tech-team","children":[]}]}],"git":{"updatedTime":1733777350000,"contributors":[{"name":"Brah","username":"Brah","email":"brah.gharbi@gmail.com","commits":2,"url":"https://github.com/Brah"},{"name":"Ibrahim Gharbi","username":"Ibrahim Gharbi","email":"brah.gharbi@gmail.com","commits":2,"url":"https://github.com/Ibrahim Gharbi"}]},"filePathRelative":"index.md","autoDesc":true}`);export{c as comp,p as data}; diff --git a/assets/index.html-qqiFBt18.js b/assets/index.html-qqiFBt18.js new file mode 100644 index 0000000..55d5f37 --- /dev/null +++ b/assets/index.html-qqiFBt18.js @@ -0,0 +1,35 @@ +import{_ as a,c as s,a as n,o as t}from"./app-JC71_Alg.js";const i="/learning-ai/assets/copilot_completion-CQ-GiHnM.gif",r="/learning-ai/assets/copilot_generation-B6N3Dysv.gif",o="/learning-ai/assets/copilot_assistance-Cotk3f4O.gif",l="/learning-ai/assets/copilot_assistance2-BM88VuDX.gif",p="/learning-ai/assets/copilot_testing-B1NBiis5.gif",c="/learning-ai/assets/copilot_test-CDuoz2Se.gif",d="/learning-ai/assets/copilot_diagram-BlfyAUjS.png",h={};function g(u,e){return t(),s("div",null,e[0]||(e[0]=[n(`

Develop with AI

Github Copilot

Update

Copilot can now use other LLMs than OpenAI, including Google, and Anthropic to provide code suggestions

Github Copilot is a tool that uses the OpenAI language models to provide code suggestions and suggestions for improving code quality.

Alternative code assistance

There is also other producs indegrated to IDEs such as :

Copilot Chat

Copilot Chat is a chat interface that allows you to ask questions and get suggestions for code improvements.

it's available on :

It is a similar approach to chat GPT prompting optimised for the developper experience.

CLI

CLI helps you using you command line interpreter You can use it in the terminal with the following command:

gh auth login
+gh extension install github.copilot
+gh copilot explain "traceroute github.com"
+

Warning

Github CLI is not supported yet with our Worldline account, so you need to use the web version with the link here

IDEs integration (VSCode)

Completion

copilot-assistance

Generation & Refactoring

copilot-completion

Assistance

copilot-assistancecopilot-assistance2

Test generation

copilot-test

Sortcut usage of Copilot chat

You can also use the chat interface to ask questions with shortcuts :

  • /ask
  • /explain
  • /generate
  • /refactor
  • /test
  • /setupTest
  • ...

copilot-test-with-chat

Documentation

Architecture diagram

Mermaid diagrams is a great tool to create diagrams in markdown files online. With copilot you can generate a diagram based on the code you write or chat with copilot to generate the diagram.

Generate a mermaid architecture diagram for a simple retail app with product catalog, product details , buying tunnel , loyalty. Be detailed. I want to make this app with express node JS Rest API server, please provide the diagram for the server side. Suggest technical stack on the diagram , name the component variables. Parentheses are not supported by mermaid.
+
graph TD;
+    A[Client Application] -->|HTTP Requests| B[Express.js REST API Server]
+    B -->|Fetch Products| C[Product Controller - productController]
+    B -->|Fetch Product Details| D[Product Details Controller - productDetailsController]
+    B -->|Handle Cart Operations| E[Cart Controller - cartController]
+    B -->|Process Orders| F[Order Controller - orderController]
+    B -->|Manage User Accounts| G[User Controller - userController]
+    B -->|Handle Loyalty Program| H[Loyalty Controller - loyaltyController]
+    
+    subgraph Database
+        I[MongoDB - mongoose]
+    end
+    
+    subgraph Middleware
+        J[Authentication Middleware - passport]
+        K[Error Handling Middleware - errorHandler]
+        L[Logging Middleware - morgan]
+    end
+    
+    B -->|Connects to| I
+    B -->|Uses| J
+    B -->|Uses| K
+    B -->|Uses| L
+    
+    C -->|CRUD Operations| I
+    D -->|CRUD Operations| I
+    E -->|CRUD Operations| I
+    F -->|CRUD Operations| I
+    G -->|CRUD Operations| I
+    H -->|CRUD Operations| I
+

copilot-diagram

🧪 Exercise

Gihub Spark

GitHub Spark is an AI-powered tool for creating and sharing micro apps (“sparks”), which can be tailored to your exact needs and preferences, and are directly usable from your desktop and mobile devices. Without needing to write or deploy any code.

And it enables this through a combination of three tightly-integrated components:

  • An NL-based editor, which allows easily describing your ideas, and then refining them over time
  • A managed runtime environment, which hosts your sparks, and provides them access to data storage, theming, and LLMs
  • A PWA-enabled dashboard, which lets you manage and launch your sparks from anywhere

🧪 Exercise

📖 Further readings

',40)]))}const b=a(h,[["render",g],["__file","index.html.vue"]]),v=JSON.parse('{"path":"/develop/","title":"Develop with AI","lang":"en-US","frontmatter":{"description":"Develop with AI Github Copilot Update Copilot can now use other LLMs than OpenAI, including Google, and Anthropic to provide code suggestions Github Copilot is a tool that uses ...","head":[["meta",{"property":"og:url","content":"https://worldline.github.io/worldline/learning-ai/learning-ai/develop/"}],["meta",{"property":"og:title","content":"Develop with AI"}],["meta",{"property":"og:description","content":"Develop with AI Github Copilot Update Copilot can now use other LLMs than OpenAI, including Google, and Anthropic to provide code suggestions Github Copilot is a tool that uses ..."}],["meta",{"property":"og:type","content":"article"}],["meta",{"property":"og:locale","content":"en-US"}],["meta",{"property":"og:updated_time","content":"2024-12-12T13:58:25.000Z"}],["meta",{"property":"article:modified_time","content":"2024-12-12T13:58:25.000Z"}],["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"Article\\",\\"headline\\":\\"Develop with AI\\",\\"image\\":[\\"\\"],\\"dateModified\\":\\"2024-12-12T13:58:25.000Z\\",\\"author\\":[]}"]]},"headers":[{"level":2,"title":"Github Copilot","slug":"github-copilot","link":"#github-copilot","children":[{"level":3,"title":"Copilot Chat","slug":"copilot-chat","link":"#copilot-chat","children":[]},{"level":3,"title":"CLI","slug":"cli","link":"#cli","children":[]},{"level":3,"title":"IDEs integration (VSCode)","slug":"ides-integration-vscode","link":"#ides-integration-vscode","children":[]}]},{"level":2,"title":"🧪 Exercise","slug":"🧪-exercise","link":"#🧪-exercise","children":[]},{"level":2,"title":"Gihub Spark","slug":"gihub-spark","link":"#gihub-spark","children":[]},{"level":2,"title":"🧪 Exercise","slug":"🧪-exercise-1","link":"#🧪-exercise-1","children":[]},{"level":2,"title":"📖 Further readings","slug":"📖-further-readings","link":"#📖-further-readings","children":[]}],"git":{"updatedTime":1734011905000,"contributors":[{"name":"Brah","username":"Brah","email":"brah.gharbi@gmail.com","commits":8,"url":"https://github.com/Brah"},{"name":"Ibrahim Gharbi","username":"Ibrahim Gharbi","email":"brah.gharbi@gmail.com","commits":3,"url":"https://github.com/Ibrahim Gharbi"}]},"filePathRelative":"develop/README.md","autoDesc":true}');export{b as comp,v as data}; diff --git a/assets/jeopardy-CySJ857r.jpg b/assets/jeopardy-CySJ857r.jpg new file mode 100644 index 0000000..e490acb Binary files /dev/null and b/assets/jeopardy-CySJ857r.jpg differ diff --git a/assets/librechat_interface-CYKYbYEb.png b/assets/librechat_interface-CYKYbYEb.png new file mode 100644 index 0000000..21a139b Binary files /dev/null and b/assets/librechat_interface-CYKYbYEb.png differ diff --git a/assets/lmstudio-B6PjFtYg.png b/assets/lmstudio-B6PjFtYg.png new file mode 100644 index 0000000..956e83e Binary files /dev/null and b/assets/lmstudio-B6PjFtYg.png differ diff --git a/assets/logo_worldline-t5KadDQv.png b/assets/logo_worldline-t5KadDQv.png new file mode 100644 index 0000000..6981642 Binary files /dev/null and b/assets/logo_worldline-t5KadDQv.png differ diff --git a/assets/market-C_dAjFms.png b/assets/market-C_dAjFms.png new file mode 100644 index 0000000..3afffea Binary files /dev/null and b/assets/market-C_dAjFms.png differ diff --git a/assets/multi_plugin-TCdQZhy0.png b/assets/multi_plugin-TCdQZhy0.png new file mode 100644 index 0000000..ee1ea76 Binary files /dev/null and b/assets/multi_plugin-TCdQZhy0.png differ diff --git a/assets/prompt-D9YI1LJh.png b/assets/prompt-D9YI1LJh.png new file mode 100644 index 0000000..9ab8068 Binary files /dev/null and b/assets/prompt-D9YI1LJh.png differ diff --git a/assets/react-BB8mFVUF.png b/assets/react-BB8mFVUF.png new file mode 100644 index 0000000..779a411 Binary files /dev/null and b/assets/react-BB8mFVUF.png differ diff --git a/assets/result_prompt-C4XLLbdh.png b/assets/result_prompt-C4XLLbdh.png new file mode 100644 index 0000000..fa8a390 Binary files /dev/null and b/assets/result_prompt-C4XLLbdh.png differ diff --git a/assets/setupDevtools-7MC2TMWH-Bu_VvWcQ.js b/assets/setupDevtools-7MC2TMWH-Bu_VvWcQ.js new file mode 100644 index 0000000..8b57eb0 --- /dev/null +++ b/assets/setupDevtools-7MC2TMWH-Bu_VvWcQ.js @@ -0,0 +1 @@ +import{s as T,w as E}from"./app-JC71_Alg.js";var l="org.vuejs.vuepress",v="VuePress",I=v,r=l,N=v,i="client-data",a="Client Data",g=(p,n)=>{T({app:p,id:l,label:v,packageName:"@vuepress/client",homepage:"https://vuepress.vuejs.org",logo:"https://vuepress.vuejs.org/images/hero.png",componentStateTypes:[I]},t=>{const c=Object.entries(n),u=Object.keys(n),d=Object.values(n);t.on.inspectComponent(e=>{e.instanceData.state.push(...c.map(([s,o])=>({type:I,editable:!1,key:s,value:o.value})))}),t.addInspector({id:r,label:N,icon:"article"}),t.on.getInspectorTree(e=>{e.inspectorId===r&&(e.rootNodes=[{id:i,label:a,children:u.map(s=>({id:s,label:s}))}])}),t.on.getInspectorState(e=>{e.inspectorId===r&&(e.nodeId===i&&(e.state={[a]:c.map(([s,o])=>({key:s,value:o.value}))}),u.includes(e.nodeId)&&(e.state={[a]:[{key:e.nodeId,value:n[e.nodeId].value}]}))}),E(d,()=>{t.notifyComponentUpdate(),t.sendInspectorState(r)})})};export{g as setupDevtools}; diff --git a/assets/style-DxALa4jE.css b/assets/style-DxALa4jE.css new file mode 100644 index 0000000..fb48af8 --- /dev/null +++ b/assets/style-DxALa4jE.css @@ -0,0 +1 @@ +.vp-back-to-top-button{position:fixed!important;inset-inline-end:1rem;bottom:4rem;z-index:100;width:48px;height:48px;padding:12px;border-width:0;border-radius:50%;background:var(--back-to-top-c-bg);color:var(--back-to-top-c-accent-bg);box-shadow:2px 2px 10px 4px var(--back-to-top-c-shadow);cursor:pointer}@media (max-width: 959px){.vp-back-to-top-button{transform:scale(.8);transform-origin:100% 100%}}@media print{.vp-back-to-top-button{display:none}}.vp-back-to-top-button:hover{color:var(--back-to-top-c-accent-hover)}.vp-back-to-top-button .back-to-top-icon{overflow:hidden;width:24px;height:24px;margin:0 auto;background:var(--back-to-top-c-icon);-webkit-mask-image:var(--back-to-top-icon);mask-image:var(--back-to-top-icon);-webkit-mask-position:50%;mask-position:50%;-webkit-mask-size:cover;mask-size:cover}.vp-scroll-progress{position:absolute;right:-2px;bottom:-2px;width:52px;height:52px}.vp-scroll-progress svg{width:100%;height:100%}.vp-scroll-progress circle{opacity:.9;transform:rotate(-90deg);transform-origin:50% 50%}.back-to-top-enter-active,.back-to-top-leave-active{transition:opacity .3s}.back-to-top-enter-from,.back-to-top-leave-to{opacity:0}:root{--back-to-top-z-index: 5;--back-to-top-icon: url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2048%2048'%3e%3cpath%20fill='none'%20stroke='currentColor'%20stroke-linecap='round'%20stroke-linejoin='round'%20stroke-width='4'%20d='M24.008%2014.1V42M12%2026l12-12l12%2012M12%206h24'%20/%3e%3c/svg%3e");--back-to-top-c-bg: var(--vp-c-bg);--back-to-top-c-accent-bg: var(--vp-c-accent-bg);--back-to-top-c-accent-hover: var(--vp-c-accent-hover);--back-to-top-c-shadow: var(--vp-c-shadow);--back-to-top-c-icon: currentcolor}.vp-copy-code-button{position:absolute;top:.5em;right:.5em;z-index:5;width:2.5rem;height:2.5rem;padding:0;border-width:0;border-radius:.5rem;background:#0000;outline:none;opacity:0;cursor:pointer;transition:opacity .4s}@media print{.vp-copy-code-button{display:none}}.vp-copy-code-button:before{content:"";display:inline-block;width:1.25rem;height:1.25rem;padding:.625rem;background:currentcolor;color:var(--copy-code-c-text);font-size:1.25rem;-webkit-mask-image:var(--code-copy-icon);mask-image:var(--code-copy-icon);-webkit-mask-position:50%;mask-position:50%;-webkit-mask-size:1em;mask-size:1em;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat}.vp-copy-code-button:focus,.vp-copy-code-button.copied{opacity:1}.vp-copy-code-button:hover,.vp-copy-code-button.copied{background:var(--copy-code-c-hover)}.vp-copy-code-button.copied:before{-webkit-mask-image:var(--code-copied-icon);mask-image:var(--code-copied-icon)}.vp-copy-code-button.copied:after{content:attr(data-copied);position:absolute;top:0;right:calc(100% + .25rem);display:block;height:1.25rem;padding:.625rem;border-radius:.5rem;background:var(--copy-code-c-hover);color:var(--copy-code-c-text);font-weight:500;line-height:1.25rem;white-space:nowrap}.no-copy-code .vp-copy-code-button{display:none}body:not(.no-copy-code) div[class*=language-]:hover:before{display:none}body:not(.no-copy-code) div[class*=language-]:hover .vp-copy-code-button{opacity:1}:root{--code-copy-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23808080' stroke-width='2'%3e%3cpath stroke-linecap='round' stroke-linejoin='round' d='M9 5H7a2 2 0 0 0-2 2v12a2 2 0 0 0 2 2h10a2 2 0 0 0 2-2V7a2 2 0 0 0-2-2h-2M9 5a2 2 0 0 0 2 2h2a2 2 0 0 0 2-2M9 5a2 2 0 0 1 2-2h2a2 2 0 0 1 2 2' /%3e%3c/svg%3e");--code-copied-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23808080' stroke-width='2'%3e%3cpath stroke-linecap='round' stroke-linejoin='round' d='M9 5H7a2 2 0 0 0-2 2v12a2 2 0 0 0 2 2h10a2 2 0 0 0 2-2V7a2 2 0 0 0-2-2h-2M9 5a2 2 0 0 0 2 2h2a2 2 0 0 0 2-2M9 5a2 2 0 0 1 2-2h2a2 2 0 0 1 2 2m-6 9 2 2 4-4' /%3e%3c/svg%3e");--copy-code-c-text: var(--code-c-line-number);--copy-code-c-hover: var(--code-c-highlight-bg)}.hint-container{position:relative;background:var(--hint-c-soft);transition:background var(--vp-t-color),color var(--vp-t-color)}@media print{.hint-container{page-break-inside:avoid}}.hint-container>.hint-container-title{color:var(--hint-c-title)}.hint-container :not(pre)>code{background:var(--hint-c-soft)}.hint-container .hint-container-title{position:relative;margin-block:.75em;font-weight:600;line-height:1.25}.hint-container.important,.hint-container.info,.hint-container.note,.hint-container.tip,.hint-container.warning,.hint-container.caution{margin-block:.75rem;padding:.25em 1em;border-radius:.5em;color:inherit;font-size:var(--hint-font-size)}@media print{.hint-container.important,.hint-container.info,.hint-container.note,.hint-container.tip,.hint-container.warning,.hint-container.caution{border-inline-start-width:.25em;border-inline-start-style:solid}}.hint-container.important .hint-container-title,.hint-container.info .hint-container-title,.hint-container.note .hint-container-title,.hint-container.tip .hint-container-title,.hint-container.warning .hint-container-title,.hint-container.caution .hint-container-title{padding-inline-start:1.75em}@media print{.hint-container.important .hint-container-title,.hint-container.info .hint-container-title,.hint-container.note .hint-container-title,.hint-container.tip .hint-container-title,.hint-container.warning .hint-container-title,.hint-container.caution .hint-container-title{padding-inline-start:0}}.hint-container.important .hint-container-title:before,.hint-container.info .hint-container-title:before,.hint-container.note .hint-container-title:before,.hint-container.tip .hint-container-title:before,.hint-container.warning .hint-container-title:before,.hint-container.caution .hint-container-title:before{content:" ";position:absolute;inset-inline-start:0;top:calc(50% - .6125em);width:1.25em;height:1.25em;font-size:1.25em}@media print{.hint-container.important .hint-container-title:before,.hint-container.info .hint-container-title:before,.hint-container.note .hint-container-title:before,.hint-container.tip .hint-container-title:before,.hint-container.warning .hint-container-title:before,.hint-container.caution .hint-container-title:before{display:none}}.hint-container.important p,.hint-container.info p,.hint-container.note p,.hint-container.tip p,.hint-container.warning p,.hint-container.caution p{line-height:1.5}.hint-container.important a,.hint-container.info a,.hint-container.note a,.hint-container.tip a,.hint-container.warning a,.hint-container.caution a{color:var(--vp-c-accent)}.hint-container.important{--hint-c-accent: var(--important-c-accent);--hint-c-title: var(--important-c-text);--hint-c-soft: var(--important-c-soft)}.hint-container.important>.hint-container-title:before{background-color:currentColor;-webkit-mask-image:url("data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1024 1024'%3E%3Cpath d='M512 981.333a84.992 84.992 0 0 1-84.907-84.906h169.814A84.992 84.992 0 0 1 512 981.333zm384-128H128v-42.666l85.333-85.334v-256A298.325 298.325 0 0 1 448 177.92V128a64 64 0 0 1 128 0v49.92a298.325 298.325 0 0 1 234.667 291.413v256L896 810.667v42.666zm-426.667-256v85.334h85.334v-85.334h-85.334zm0-256V512h85.334V341.333h-85.334z'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1024 1024'%3E%3Cpath d='M512 981.333a84.992 84.992 0 0 1-84.907-84.906h169.814A84.992 84.992 0 0 1 512 981.333zm384-128H128v-42.666l85.333-85.334v-256A298.325 298.325 0 0 1 448 177.92V128a64 64 0 0 1 128 0v49.92a298.325 298.325 0 0 1 234.667 291.413v256L896 810.667v42.666zm-426.667-256v85.334h85.334v-85.334h-85.334zm0-256V512h85.334V341.333h-85.334z'/%3E%3C/svg%3E");-webkit-mask-position:50%;mask-position:50%;-webkit-mask-size:1em;mask-size:1em;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat}.hint-container.info{--hint-c-accent: var(--info-c-accent);--hint-c-title: var(--info-c-text);--hint-c-soft: var(--info-c-soft)}.hint-container.info>.hint-container-title:before{background-color:currentColor;-webkit-mask-image:url("data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 22C6.477 22 2 17.523 2 12S6.477 2 12 2s10 4.477 10 10-4.477 10-10 10zm-1-11v6h2v-6h-2zm0-4v2h2V7h-2z'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 22C6.477 22 2 17.523 2 12S6.477 2 12 2s10 4.477 10 10-4.477 10-10 10zm-1-11v6h2v-6h-2zm0-4v2h2V7h-2z'/%3E%3C/svg%3E");-webkit-mask-position:50%;mask-position:50%;-webkit-mask-size:1em;mask-size:1em;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat}.hint-container.note{--hint-c-accent: var(--note-c-accent);--hint-c-title: var(--note-c-text);--hint-c-soft: var(--note-c-soft)}.hint-container.note>.hint-container-title:before{background-color:currentColor;-webkit-mask-image:url("data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 22C6.477 22 2 17.523 2 12S6.477 2 12 2s10 4.477 10 10-4.477 10-10 10zm-1-11v6h2v-6h-2zm0-4v2h2V7h-2z'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 22C6.477 22 2 17.523 2 12S6.477 2 12 2s10 4.477 10 10-4.477 10-10 10zm-1-11v6h2v-6h-2zm0-4v2h2V7h-2z'/%3E%3C/svg%3E");-webkit-mask-position:50%;mask-position:50%;-webkit-mask-size:1em;mask-size:1em;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat}.hint-container.tip{--hint-c-accent: var(--tip-c-accent);--hint-c-title: var(--tip-c-text);--hint-c-soft: var(--tip-c-soft)}.hint-container.tip>.hint-container-title:before{background-color:currentColor;-webkit-mask-image:url("data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M7.941 18c-.297-1.273-1.637-2.314-2.187-3a8 8 0 1 1 12.49.002c-.55.685-1.888 1.726-2.185 2.998H7.94zM16 20v1a2 2 0 0 1-2 2h-4a2 2 0 0 1-2-2v-1h8zm-3-9.995V6l-4.5 6.005H11v4l4.5-6H13z'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M7.941 18c-.297-1.273-1.637-2.314-2.187-3a8 8 0 1 1 12.49.002c-.55.685-1.888 1.726-2.185 2.998H7.94zM16 20v1a2 2 0 0 1-2 2h-4a2 2 0 0 1-2-2v-1h8zm-3-9.995V6l-4.5 6.005H11v4l4.5-6H13z'/%3E%3C/svg%3E");-webkit-mask-position:50%;mask-position:50%;-webkit-mask-size:1em;mask-size:1em;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat}.hint-container.warning{--hint-c-accent: var(--warning-c-accent);--hint-c-title: var(--warning-c-text);--hint-c-soft: var(--warning-c-soft)}.hint-container.warning>.hint-container-title:before{background-color:currentColor;-webkit-mask-image:url("data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1024 1024'%3E%3Cpath d='M576.286 752.57v-95.425q0-7.031-4.771-11.802t-11.3-4.772h-96.43q-6.528 0-11.3 4.772t-4.77 11.802v95.424q0 7.031 4.77 11.803t11.3 4.77h96.43q6.528 0 11.3-4.77t4.77-11.803zm-1.005-187.836 9.04-230.524q0-6.027-5.022-9.543-6.529-5.524-12.053-5.524H456.754q-5.524 0-12.053 5.524-5.022 3.516-5.022 10.547l8.538 229.52q0 5.023 5.022 8.287t12.053 3.265h92.913q7.032 0 11.803-3.265t5.273-8.287zM568.25 95.65l385.714 707.142q17.578 31.641-1.004 63.282-8.538 14.564-23.354 23.102t-31.892 8.538H126.286q-17.076 0-31.892-8.538T71.04 866.074q-18.582-31.641-1.004-63.282L455.75 95.65q8.538-15.57 23.605-24.61T512 62t32.645 9.04 23.605 24.61z'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1024 1024'%3E%3Cpath d='M576.286 752.57v-95.425q0-7.031-4.771-11.802t-11.3-4.772h-96.43q-6.528 0-11.3 4.772t-4.77 11.802v95.424q0 7.031 4.77 11.803t11.3 4.77h96.43q6.528 0 11.3-4.77t4.77-11.803zm-1.005-187.836 9.04-230.524q0-6.027-5.022-9.543-6.529-5.524-12.053-5.524H456.754q-5.524 0-12.053 5.524-5.022 3.516-5.022 10.547l8.538 229.52q0 5.023 5.022 8.287t12.053 3.265h92.913q7.032 0 11.803-3.265t5.273-8.287zM568.25 95.65l385.714 707.142q17.578 31.641-1.004 63.282-8.538 14.564-23.354 23.102t-31.892 8.538H126.286q-17.076 0-31.892-8.538T71.04 866.074q-18.582-31.641-1.004-63.282L455.75 95.65q8.538-15.57 23.605-24.61T512 62t32.645 9.04 23.605 24.61z'/%3E%3C/svg%3E");-webkit-mask-position:50%;mask-position:50%;-webkit-mask-size:1em;mask-size:1em;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat}.hint-container.caution{--hint-c-accent: var(--caution-c-accent);--hint-c-title: var(--caution-c-text);--hint-c-soft: var(--caution-c-soft)}.hint-container.caution>.hint-container-title:before{background-color:currentColor;-webkit-mask-image:url("data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 2c5.523 0 10 4.477 10 10v3.764a2 2 0 0 1-1.106 1.789L18 19v1a3 3 0 0 1-2.824 2.995L14.95 23a2.5 2.5 0 0 0 .044-.33L15 22.5V22a2 2 0 0 0-1.85-1.995L13 20h-2a2 2 0 0 0-1.995 1.85L9 22v.5c0 .171.017.339.05.5H9a3 3 0 0 1-3-3v-1l-2.894-1.447A2 2 0 0 1 2 15.763V12C2 6.477 6.477 2 12 2zm-4 9a2 2 0 1 0 0 4 2 2 0 0 0 0-4zm8 0a2 2 0 1 0 0 4 2 2 0 0 0 0-4z'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 2c5.523 0 10 4.477 10 10v3.764a2 2 0 0 1-1.106 1.789L18 19v1a3 3 0 0 1-2.824 2.995L14.95 23a2.5 2.5 0 0 0 .044-.33L15 22.5V22a2 2 0 0 0-1.85-1.995L13 20h-2a2 2 0 0 0-1.995 1.85L9 22v.5c0 .171.017.339.05.5H9a3 3 0 0 1-3-3v-1l-2.894-1.447A2 2 0 0 1 2 15.763V12C2 6.477 6.477 2 12 2zm-4 9a2 2 0 1 0 0 4 2 2 0 0 0 0-4zm8 0a2 2 0 1 0 0 4 2 2 0 0 0 0-4z'/%3E%3C/svg%3E");-webkit-mask-position:50%;mask-position:50%;-webkit-mask-size:1em;mask-size:1em;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat}.hint-container.details{position:relative;display:block;margin-block:.75rem;padding:1.25rem 1rem;border-radius:.5rem;background:var(--detail-c-bg);transition:background var(--vp-t-transform),color var(--vp-t-transform)}.hint-container.details h4{margin-top:0}.hint-container.details figure:last-child,.hint-container.details p:last-child{margin-bottom:0;padding-bottom:0}.hint-container.details a{color:var(--vp-c-accent)}.hint-container.details :not(pre)>code{background:var(--detail-c-soft)}.hint-container.details summary{position:relative;margin:-1rem;padding-block:1em;padding-inline:3em 1.5em;list-style:none;font-size:var(--hint-font-size);cursor:pointer}.hint-container.details summary::-webkit-details-marker{display:none}.hint-container.details summary::marker{color:#0000;font-size:0}.hint-container.details summary:before{background-color:currentColor;-webkit-mask-image:url("data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M7.41 15.41L12 10.83l4.59 4.58L18 14l-6-6-6 6z'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M7.41 15.41L12 10.83l4.59 4.58L18 14l-6-6-6 6z'/%3E%3C/svg%3E");-webkit-mask-position:50%;mask-position:50%;-webkit-mask-size:1em;mask-size:1em;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;content:" ";position:absolute;inset-inline-start:.8em;top:calc(50% - .5em);width:1em;height:1em;font-size:1.25rem;line-height:normal;transition:color,var(--vp-t-color),transform var(--vp-t-transform);transform:rotate(90deg)}.hint-container.details[open]>summary{margin-bottom:.5em}.hint-container.details[open]>summary:before{transform:rotate(180deg)}:root{--hint-font-size: .92rem;--important-c-accent: var(--vp-c-purple-bg);--important-c-text: var(--vp-c-purple-text);--important-c-soft: var(--vp-c-purple-soft);--info-c-accent: var(--vp-c-blue-bg);--info-c-text: var(--vp-c-blue-text);--info-c-soft: var(--vp-c-blue-soft);--note-c-accent: var(--vp-c-grey-bg);--note-c-text: var(--vp-c-grey-text);--note-c-soft: var(--vp-c-grey-soft);--tip-c-accent: var(--vp-c-green-bg);--tip-c-text: var(--vp-c-green-text);--tip-c-soft: var(--vp-c-green-soft);--warning-c-accent: var(--vp-c-yellow-bg);--warning-c-text: var(--vp-c-yellow-text);--warning-c-soft: var(--vp-c-yellow-soft);--caution-c-accent: var(--vp-c-red-bg);--caution-c-text: var(--vp-c-red-text);--caution-c-soft: var(--vp-c-red-soft);--detail-c-bg: var(--vp-c-control);--detail-c-icon: var(--vp-c-border);--detail-c-soft: var(--vp-c-grey-soft)}:root{--medium-zoom-z-index: 100;--medium-zoom-c-bg: var(--vp-c-bg-elv, #fff);--medium-zoom-opacity: 1}.medium-zoom-overlay{z-index:var(--medium-zoom-z-index);background-color:var(--medium-zoom-c-bg)!important}.medium-zoom-overlay~img{z-index:calc(var(--medium-zoom-z-index) + 1)}.medium-zoom--opened .medium-zoom-overlay{opacity:var(--medium-zoom-opacity)}:root{--nprogress-c: var(--vp-c-accent);--nprogress-z-index: 1031}#nprogress{pointer-events:none}#nprogress .bar{position:fixed;top:0;left:0;z-index:var(--nprogress-z-index);width:100%;height:2px;background:var(--nprogress-c)}:root{--code-padding-x: 1.25rem;--code-padding-y: 1rem;--code-border-radius: 6px;--code-line-height: 1.6;--code-font-size: 14px;--code-font-family: consolas, monaco, "Andale Mono", "Ubuntu Mono", monospace}div[class*=language-]{position:relative;border-radius:var(--code-border-radius);background-color:var(--code-c-bg)}div[class*=language-]:before{content:attr(data-title);position:absolute;top:.8em;right:1em;z-index:3;color:var(--code-c-text);font-size:.75rem}div[class*=language-] pre{position:relative;z-index:1;overflow-x:auto;margin:0;border-radius:var(--code-border-radius);font-size:var(--code-font-size);font-family:var(--code-font-family);line-height:var(--code-line-height)}div[class*=language-] pre code{display:block;box-sizing:border-box;width:-moz-fit-content;width:fit-content;min-width:100%;padding:var(--code-padding-y) var(--code-padding-x);background-color:#0000!important;color:var(--code-c-text);overflow-wrap:unset;-webkit-font-smoothing:auto;-moz-osx-font-smoothing:auto}:root{--code-c-text: #f8f8f2;--code-c-bg: #2e3440;--code-c-highlight-bg: rgb(51.6454545455, 60.5484848485, 78.3545454545);--code-c-line-number: rgba(248, 248, 242, .67)}.token.comment,.token.prolog,.token.doctype,.token.cdata{color:#636f88}.token.punctuation{color:#81a1c1}.namespace{opacity:.7}.token.property,.token.tag,.token.constant,.token.symbol,.token.deleted{color:#81a1c1}.token.number{color:#b48ead}.token.boolean{color:#81a1c1}.token.selector,.token.attr-name,.token.string,.token.char,.token.builtin,.token.inserted{color:#a3be8c}.token.operator,.token.entity,.token.url,.language-css .token.string,.style .token.string,.token.variable{color:#81a1c1}.token.atrule,.token.attr-value,.token.function,.token.class-name{color:#88c0d0}.token.keyword{color:#81a1c1}.token.regex,.token.important{color:#ebcb8b}.token.important,.token.bold{font-weight:700}.token.italic{font-style:italic}.token.entity{cursor:help}:root{--code-line-number-width: 3rem}div[class*=language-]:not(.line-numbers-mode) .line-numbers{display:none}div[class*=language-].line-numbers-mode:after{content:"";position:absolute;top:0;left:0;width:var(--code-line-number-width);height:100%;border-right:1px solid var(--code-c-highlight-bg, var(--code-c-text));border-radius:var(--code-border-radius) 0 0 var(--code-border-radius);transition:border var(--vp-t-color)}div[class*=language-].line-numbers-mode pre{vertical-align:middle;margin-left:var(--code-line-number-width)}div[class*=language-].line-numbers-mode code{padding-left:1rem}div[class*=language-].line-numbers-mode .line-numbers{counter-reset:line-number;position:absolute;top:0;width:var(--code-line-number-width);padding-top:var(--code-padding-y);color:var(--code-c-line-number, var(--code-c-text));font-size:var(--code-font-size);line-height:var(--code-line-height);text-align:center}div[class*=language-].line-numbers-mode .line-number{position:relative;z-index:3;font-family:var(--code-font-family);-webkit-user-select:none;-moz-user-select:none;user-select:none}div[class*=language-].line-numbers-mode .line-number:before{content:counter(line-number);counter-increment:line-number}div[class*=language-] .line.highlighted{display:inline-block;width:100%;margin:0 calc(-1*var(--code-padding-x));padding:0 var(--code-padding-x);background-color:var(--code-c-highlight-bg)}div[class*=language-].has-collapsed-lines.collapsed{overflow-y:hidden;height:calc(var(--vp-collapsed-lines)*var(--code-line-height)*var(--code-font-size) + var(--code-padding-y) + 28px)}div[class*=language-].has-collapsed-lines .collapsed-lines{--vp-collapsed-lines-bg: var(--code-c-bg);position:absolute;right:0;bottom:0;left:0;z-index:4;display:flex;align-items:center;justify-content:center;height:28px;background:linear-gradient(to bottom,transparent 0%,var(--vp-collapsed-lines-bg) 55%,var(--vp-collapsed-lines-bg) 100%);cursor:pointer;transition:--vp-collapsed-lines-bg var(--vp-t-color)}div[class*=language-].has-collapsed-lines .collapsed-lines:hover{--vp-collapsed-lines-bg: rgb(0 0 0 / 10%) !important}div[class*=language-].has-collapsed-lines[data-highlighter=shiki] .collapsed-lines{--vp-collapsed-lines-bg: var(--code-c-bg, var(--shiki-light-bg))}[data-theme=dark] div[class*=language-].has-collapsed-lines[data-highlighter=shiki] .collapsed-lines{--vp-collapsed-lines-bg: var(--code-c-bg, var(--shiki-dark-bg))}div[class*=language-].has-collapsed-lines .collapsed-lines:before{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='1em' height='1em' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%23000' stroke-width='2' d='m18 12l-6 6l-6-6m12-6l-6 6l-6-6'/%3E%3C/svg%3E");--vp-collapsed-lines-rotate: 0deg;content:"";display:inline-block;width:24px;height:24px;background-color:var(--code-c-text);-webkit-mask-image:var(--icon);mask-image:var(--icon);-webkit-mask-position:50%;mask-position:50%;-webkit-mask-size:20px;mask-size:20px;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;pointer-events:none;animation:code-collapsed-lines 1.2s infinite alternate-reverse ease-in-out}div[class*=language-].has-collapsed-lines:not(.collapsed) code{padding-bottom:max(var(--code-padding-y),28px)}div[class*=language-].has-collapsed-lines:not(.collapsed) .collapsed-lines:hover{--vp-collapsed-lines-bg: transparent !important}div[class*=language-].has-collapsed-lines:not(.collapsed) .collapsed-lines:before{--vp-collapsed-lines-rotate: 180deg}@property --vp-collapsed-lines-bg{inherits:false;initial-value:#fff;syntax:""}@keyframes code-collapsed-lines{0%{opacity:.3;transform:translateY(-2px) rotate(var(--vp-collapsed-lines-rotate))}to{opacity:1;transform:translateY(2px) rotate(var(--vp-collapsed-lines-rotate))}}.vp-code-tabs-nav{overflow-x:auto;margin:.75rem 0 -.75rem;padding:0;border-radius:6px 6px 0 0;background:var(--code-tabs-c-bg);list-style:none;white-space:nowrap;transition:background var(--vp-t-color)}@media print{.vp-code-tabs-nav{display:none}}@media (max-width: 419px){.vp-code-tabs-nav{margin-inline:-1.5rem;border-radius:0}}.vp-code-tab-nav{position:relative;min-width:3rem;margin:0;padding:6px 12px;border-width:0;border-radius:6px 6px 0 0;background:#0000;color:var(--code-tabs-c-text);font-weight:600;font-size:.875em;line-height:1.4;cursor:pointer;transition:background var(--vp-t-color),color var(--vp-t-color)}.vp-code-tab-nav:hover{background:var(--code-tabs-c-hover)}.vp-code-tab-nav:before,.vp-code-tab-nav:after{content:" ";position:absolute;bottom:0;z-index:1;width:6px;height:6px}.vp-code-tab-nav:before{right:100%}.vp-code-tab-nav:after{left:100%}.vp-code-tab-nav.active{background:var(--code-c-bg, var(--vp-c-bg-alt))}.vp-code-tab-nav.active:before{background:radial-gradient(12px at left top,transparent 50%,var(--code-c-bg) 50%)}.vp-code-tab-nav.active:after{background:radial-gradient(12px at right top,transparent 50%,var(--code-c-bg) 50%)}.vp-code-tab-nav:first-child:before{display:none}[dir=rtl] .vp-code-tab-nav:first-child:before{display:block}[dir=rtl] .vp-code-tab-nav:first-child:after{display:none}.vp-code-tab{display:none}@media print{.vp-code-tab{display:block}}.vp-code-tab.active{display:block}.vp-code-tab div[class*=language-]{border-top-left-radius:0;border-top-right-radius:0}@media (max-width: 419px){.vp-code-tab div[class*=language-]{margin:.75rem -1.5rem;border-radius:0}}.vp-code-tab div[class*=language-].line-numbers-mode:after{border-top-left-radius:0}.vp-code-tab div[class*=language-] pre{border-top-left-radius:0;border-top-right-radius:0}@media (max-width: 419px){.vp-code-tab div[class*=language-] pre{border-radius:0}}@media print{.vp-code-tab div[class*=language-] code{white-space:pre-wrap}}.vp-code-tab-title{display:none;font-weight:500}@media print{.vp-code-tab-title{display:block}}.vp-tabs{margin:1.5rem 0;border:1px solid var(--vp-c-border);border-radius:8px}@media (max-width: 419px){[vp-content]>.vp-tabs{margin-inline:-1.5rem;border:none;border-bottom:1px solid var(--vp-c-border);border-radius:0}}.vp-tabs-nav{overflow-x:auto;margin:0;padding:0;border-radius:.5rem .5rem 0 0;background:var(--tab-c-bg-nav);list-style:none;white-space:nowrap;transition:background var(--vp-t-color)}@media print{.vp-tabs-nav{display:none}}@media (max-width: 419px){.vp-tabs-nav{border-radius:0}}.vp-tab-nav{position:relative;min-width:4rem;margin:0;padding:.5em 1em;border:none;border-radius:.5rem .5rem 0 0;background:#0000;color:var(--tab-c-nav);font-weight:600;font-size:.875em;line-height:1.75;cursor:pointer;transition:background var(--vp-t-color),color var(--vp-t-color)}.vp-tab-nav:hover{background:var(--tab-c-bg-nav-hover)}.vp-tab-nav:before,.vp-tab-nav:after{content:" ";position:absolute;bottom:0;z-index:1;width:8px;height:8px}.vp-tab-nav:before{right:100%}.vp-tab-nav:after{left:100%}.vp-tab-nav.active{background:var(--tab-c-bg)}.vp-tab-nav.active:before{background:radial-gradient(16px at left top,transparent 50%,var(--tab-c-bg) 50%)}.vp-tab-nav.active:after{background:radial-gradient(16px at right top,transparent 50%,var(--tab-c-bg) 50%)}.vp-tab-nav:first-child:before{display:none}.vp-tab{display:none;padding:1rem .75rem;border-radius:0 0 .5rem .5rem;background:var(--tab-c-bg);transition:background var(--vp-t-color)}@media print{.vp-tab{display:block;padding:.5rem}}.vp-tab.active{display:block}.vp-tab:nth-child(n+2) .vp-tab-title{border-top:none}.vp-tab-title{display:none;padding:.25rem 0;border-top:1px solid var(--vp-c-border);font-weight:500}@media print{.vp-tab-title{display:block}}:root{--code-tabs-c-text: var(--code-c-text);--code-tabs-c-bg: var(--code-c-highlight-bg);--code-tabs-c-hover: var(--code-c-bg, var(--vp-c-bg-alt));--tab-c-bg: var(--vp-c-bg);--tab-c-nav: var(--vp-c-text);--tab-c-bg-nav: var(--vp-c-grey-bg);--tab-c-bg-nav-hover: var(--vp-c-control-hover)}.vp-badge{display:inline-block;vertical-align:top;height:18px;padding:0 6px;border-radius:3px;background:var(--vp-c-accent-soft);color:var(--vp-c-accent);font-size:14px;line-height:18px;transition:background var(--vp-t-color),color var(--vp-t-color)}.vp-badge+.vp-badge{margin-inline-start:5px}.vp-badge.tip{background:var(--badge-c-tip-bg);color:var(--badge-c-tip-text)}.vp-badge.warning{background:var(--badge-c-warning-bg);color:var(--badge-c-warning-text)}.vp-badge.danger{background:var(--badge-c-danger-bg);color:var(--badge-c-danger-text)}.vp-badge.important{background:var(--badge-c-important-bg);color:var(--badge-c-important-text)}.vp-badge.info{background:var(--badge-c-info-bg);color:var(--badge-c-info-text)}.vp-badge.note{background:var(--badge-c-note-bg);color:var(--badge-c-note-text)}.vp-features{display:flex;flex-wrap:wrap;place-content:stretch space-between;align-items:flex-start;margin-top:2.5rem;padding:1.2rem 0;border-top:1px solid var(--vp-c-gutter);transition:border-color var(--vp-t-color)}@media (max-width: 719px){.vp-features{flex-direction:column}}.vp-feature{flex-grow:1;flex-basis:30%;max-width:30%}@media (max-width: 719px){.vp-feature{max-width:100%;padding:0 2.5rem}}.vp-feature h2{padding-bottom:0;border-bottom:none;font-weight:500;font-size:1.4rem}@media (max-width: 419px){.vp-feature h2{font-size:1.25rem}}.vp-feature p{color:var(--vp-c-text-mute)}.vp-footer{padding:2.5rem;border-top:1px solid var(--vp-c-border);color:var(--vp-c-text-mute);text-align:center;transition:border-color var(--vp-t-color)}.vp-hero{text-align:center}.vp-hero-image{display:block;max-width:100%;max-height:280px;margin:3rem auto 1.5rem}@media (max-width: 419px){.vp-hero-image{max-height:210px;margin:2rem auto 1.2rem}}#main-title{font-size:3rem}@media (max-width: 419px){#main-title{font-size:2rem}}#main-title,.vp-hero-description,.vp-hero-actions{margin:1.8rem auto}@media (max-width: 419px){#main-title,.vp-hero-description,.vp-hero-actions{margin:1.2rem auto}}.vp-hero-actions{display:flex;flex-wrap:wrap;gap:1rem;justify-content:center}.vp-hero-description{max-width:35rem;color:var(--vp-c-text-mute);font-size:1.6rem;line-height:1.3}@media (max-width: 419px){.vp-hero-description{font-size:1.2rem}}.vp-hero-action-button{display:inline-block;box-sizing:border-box;padding:.8rem 1.6rem;border:2px solid var(--vp-c-accent-bg);border-radius:4px;background-color:var(--vp-c-bg);color:var(--vp-c-accent);font-size:1.2rem;transition:background-color border-color color var(--vp-t-color)}@media (max-width: 419px){.vp-hero-action-button{padding:.6rem 1.2rem;font-size:1rem}}.vp-hero-action-button:hover{color:var(--vp-c-accent-text)}.vp-hero-action-button.primary{background-color:var(--vp-c-accent-bg);color:var(--vp-c-accent-text)}.vp-hero-action-button.primary:hover{border-color:var(--vp-c-accent-hover);background-color:var(--vp-c-accent-hover)}.vp-home{display:block;max-width:var(--homepage-width);margin:0 auto;padding:var(--navbar-height) 2rem 0}@media (max-width: 419px){.vp-home{padding-right:1.5rem;padding-left:1.5rem}}.vp-home .theme-default-content{margin:0;padding:0}.vp-site-logo{vertical-align:top;height:var(--navbar-line-height);margin-right:var(--navbar-padding-v)}.vp-site-name{position:relative;color:var(--vp-c-text);font-weight:600;font-size:1.3rem}@media screen and (max-width: 719px){.vp-site-name{display:block;overflow:hidden;width:calc(100vw - 11rem);text-overflow:ellipsis;white-space:nowrap}}.vp-dropdown-enter-from,.vp-dropdown-leave-to{height:0!important}.vp-navbar-dropdown-wrapper{cursor:pointer}.vp-navbar-dropdown-wrapper:not(.mobile){height:1.8rem}.vp-navbar-dropdown-wrapper:not(.mobile):hover .vp-navbar-dropdown,.vp-navbar-dropdown-wrapper:not(.mobile).open .vp-navbar-dropdown{display:block!important}.vp-navbar-dropdown-wrapper.mobile .vp-navbar-dropdown{overflow:hidden;transition:height .1s ease-out;padding-top:.5rem}.vp-navbar-dropdown-wrapper:not(.mobile) .vp-navbar-dropdown{position:absolute;top:100%;right:0;display:none;overflow-y:auto;box-sizing:border-box;height:auto!important;max-height:calc(100vh - 2.7rem);margin:0;padding:.6rem 0;border:1px solid var(--vp-c-gutter);border-radius:.5rem;background-color:var(--vp-c-bg-elv);text-align:left;white-space:nowrap}.vp-navbar-dropdown-title{display:block;padding:inherit;border:none;background:transparent;color:var(--vp-c-text);font-weight:500;font-size:.9rem;font-family:inherit;line-height:1.4rem;cursor:inherit}.vp-navbar-dropdown-wrapper.mobile .vp-navbar-dropdown-title{display:none}.vp-navbar-dropdown-title:hover{border-color:transparent}.vp-navbar-dropdown-title-mobile{display:none;padding:inherit;border:none;background:transparent;color:var(--vp-c-text);font-weight:600;font-size:inherit;font-family:inherit;line-height:1.4rem;cursor:inherit}.vp-navbar-dropdown-wrapper.mobile .vp-navbar-dropdown-title-mobile{display:block}.vp-navbar-dropdown-title-mobile:hover{color:var(--vp-c-accent)}.vp-navbar-dropdown-item{color:inherit;line-height:1.7rem}.vp-navbar-dropdown-item a{position:relative;display:block;margin-bottom:0;padding:0 1.5rem 0 1.25rem;border-bottom:none;font-weight:400;line-height:1.7rem}.vp-navbar-dropdown-item a:hover,.vp-navbar-dropdown-item a.route-link-active{color:var(--vp-c-accent)}.vp-navbar-dropdown-item a.route-link-active:after{content:"";position:absolute;top:calc(50% - 2px);left:9px;width:0;height:0;border-top:3px solid transparent;border-bottom:3px solid transparent;border-left:5px solid var(--vp-c-accent)}.vp-navbar-dropdown-wrapper.mobile .vp-navbar-dropdown-item>a{font-size:15px;line-height:2rem}.vp-navbar-dropdown-subtitle{margin:.45rem 0 0;padding:1rem 0 .45rem;border-top:1px solid var(--vp-c-gutter);font-size:.9rem}.vp-navbar-dropdown-wrapper.mobile .vp-navbar-dropdown-subtitle{margin-top:0;padding-top:0;padding-bottom:0;border-top:0;font-size:15px;line-height:2rem}.vp-navbar-dropdown-item:first-child .vp-navbar-dropdown-subtitle{margin-top:0;padding-top:0;border-top:0}.vp-navbar-dropdown-subtitle>span{padding:0 1.5rem 0 1.25rem}.vp-navbar-dropdown-subtitle>a{font-weight:inherit}.vp-navbar-dropdown-subtitle>a.route-link-active:after{display:none}.vp-navbar-dropdown-subitem-wrapper{padding:0;list-style:none}.vp-navbar-dropdown-subitem{font-size:.9em}.vp-navbar-dropdown-wrapper.mobile .vp-navbar-dropdown-subitem{padding-left:1rem;font-size:14px}.vp-navbar-items{display:inline-block}@media print{.vp-navbar-items{display:none}}.vp-navbar-items a{display:inline-block;color:inherit;line-height:1.4rem}.vp-navbar-items a:hover,.vp-navbar-items a.route-link-active{color:var(--vp-c-text)}.vp-navbar-item{position:relative;display:inline-block;margin-left:1.5rem;line-height:var(--navbar-line-height)}@media (max-width: 719px){.vp-navbar-item{margin-left:0}}.vp-navbar-item:first-child{margin-left:0}.vp-navbar-item a:hover,.vp-navbar-item a.route-link-active{color:var(--vp-c-accent)}.vp-navbar-item>a:hover,.vp-navbar-item>a.route-link-active{margin-bottom:-2px;border-bottom:2px solid var(--vp-c-accent)}@media (max-width: 719px){.vp-navbar-item>a:hover,.vp-navbar-item>a.route-link-active{margin-bottom:0;border-bottom:none}}.vp-toggle-color-mode-button{display:flex;margin:auto;margin-left:1rem;border:0;background:none;color:var(--vp-c-text);opacity:.8;cursor:pointer}@media print{.vp-toggle-color-mode-button{display:none}}.vp-toggle-color-mode-button:hover{opacity:1}.vp-toggle-color-mode-button .light-icon,.vp-toggle-color-mode-button .dark-icon{width:1.25rem;height:1.25rem}.vp-toggle-sidebar-button{position:absolute;top:.6rem;left:1rem;display:none;padding:.6rem;cursor:pointer}@media screen and (max-width: 719px){.vp-toggle-sidebar-button{display:block}}.vp-toggle-sidebar-button .icon{display:flex;flex-direction:column;align-items:center;justify-content:center;width:1.25rem;height:1.25rem;cursor:inherit}.vp-toggle-sidebar-button .icon span{display:inline-block;width:100%;height:2px;border-radius:2px;background-color:var(--vp-c-text);transition:transform var(--vp-t-transform)}.vp-toggle-sidebar-button .icon span:nth-child(2){margin:6px 0}.vp-theme-container.sidebar-open .vp-toggle-sidebar-button .icon span:nth-child(1){transform:rotate(45deg) translate3d(5.5px,5.5px,0)}.vp-theme-container.sidebar-open .vp-toggle-sidebar-button .icon span:nth-child(2){transform:scale3d(0,1,1)}.vp-theme-container.sidebar-open .vp-toggle-sidebar-button .icon span:nth-child(3){transform:rotate(-45deg) translate3d(6px,-6px,0)}.vp-theme-container.sidebar-open .vp-toggle-sidebar-button .icon span:nth-child(1),.vp-theme-container.sidebar-open .vp-toggle-sidebar-button .icon span:nth-child(3){transform-origin:center}.vp-navbar{--navbar-line-height: calc( var(--navbar-height) - 2 * var(--navbar-padding-v) );position:fixed;top:0;right:0;left:0;z-index:20;box-sizing:border-box;height:var(--navbar-height);padding:var(--navbar-padding-v) var(--navbar-padding-h);border-bottom:1px solid var(--vp-c-border);background-color:var(--vp-navbar-c-bg);line-height:var(--navbar-line-height);transition:background-color var(--vp-t-color),border-color var(--vp-t-color)}@media screen and (max-width: 719px){.vp-navbar{padding-left:4rem}}.vp-navbar-items-wrapper{position:absolute;top:var(--navbar-padding-v);right:var(--navbar-padding-h);display:flex;box-sizing:border-box;height:var(--navbar-line-height);padding-left:var(--navbar-padding-h);font-size:.9rem;white-space:nowrap}.vp-page-meta{max-width:var(--content-width);margin:0 auto;padding:2rem 2.5rem}@media (max-width: 959px){.vp-page-meta{padding:2rem}}@media (max-width: 419px){.vp-page-meta{padding:1.5rem}}.vp-page-meta{display:flex;flex-wrap:wrap;justify-content:space-between;overflow:auto;padding-top:.75rem;padding-bottom:.75rem}@media print{.vp-page-meta{margin:0!important;padding-right:0!important;padding-left:0!important}}@media (max-width: 719px){.vp-page-meta{display:block}}.vp-page-meta .vp-meta-item{flex-grow:1}.vp-page-meta .vp-meta-item .vp-meta-label{font-weight:500}.vp-page-meta .vp-meta-item .vp-meta-label:not(a){color:var(--vp-c-text-mute)}.vp-page-meta .vp-meta-item .vp-meta-info{color:var(--vp-c-text-mute);font-weight:400}.vp-page-meta .git-info{text-align:end}.vp-page-meta .edit-link{margin-top:.25rem;margin-right:.5rem;margin-bottom:.25rem;font-size:14px}@media print{.vp-page-meta .edit-link{display:none}}.vp-page-meta .edit-link .edit-icon{position:relative;bottom:-.125em;width:1em;height:1em;margin-right:.25em}.vp-page-meta .last-updated,.vp-page-meta .contributors{margin-top:.25rem;margin-bottom:.25rem;font-size:14px}@media (max-width: 719px){.vp-page-meta .last-updated,.vp-page-meta .contributors{font-size:13px;text-align:start}}.vp-page-nav{display:flex;flex-wrap:wrap;max-width:var(--content-width, 740px);min-height:2rem;margin-top:0;margin-right:auto;margin-left:auto;padding:1rem 2rem 0;border-top:1px solid var(--vp-c-gutter);transition:border-top var(--vp-t-color)}@media (max-width: 959px){.vp-page-nav{padding-right:1rem;padding-left:1rem}}@media print{.vp-page-nav{display:none}}.vp-page-nav .route-link{display:inline-block;flex-grow:1;margin:.25rem;padding:.25rem .5rem;border:1px solid var(--vp-c-gutter);border-radius:.25rem}.vp-page-nav .route-link:hover{background:var(--vp-c-control)}.vp-page-nav .route-link .hint{color:var(--vp-c-text-mute);font-size:.875rem;line-height:2}.vp-page-nav .prev{text-align:start}.vp-page-nav .next{text-align:end}.vp-page{display:block;padding-top:var(--navbar-height);padding-bottom:2rem;padding-left:var(--sidebar-width)}@media (max-width: 959px){.vp-page{padding-left:var(--sidebar-width-mobile)}}@media (max-width: 719px){.vp-page{padding-left:0}}.vp-page .theme-default-content{max-width:var(--content-width);margin:0 auto;padding:2rem 2.5rem}@media (max-width: 959px){.vp-page .theme-default-content{padding:2rem}}@media (max-width: 419px){.vp-page .theme-default-content{padding:1.5rem}}.vp-page .theme-default-content{padding-top:0}.vp-sidebar-item{border-left:.25rem solid transparent;color:var(--vp-c-text);cursor:default}.vp-sidebar-item:focus-visible{outline-width:1px;outline-offset:-1px}.vp-sidebar-item.vp-sidebar-heading{box-sizing:border-box;width:100%;margin:0;padding:.35rem 1.5rem .35rem 1.25rem;font-weight:700;font-size:1.1em;transition:color .15s ease}.vp-sidebar-item.vp-sidebar-heading+.vp-sidebar-children{overflow:hidden;transition:height .1s ease-out;margin-bottom:.75rem}.vp-sidebar-item.collapsible{cursor:pointer}.vp-sidebar-item:not(.vp-sidebar-heading){display:inline-block;box-sizing:border-box;width:100%;margin:0;padding:.35rem 1rem .35rem 2rem;font-weight:400;font-size:1em;line-height:1.4}.vp-sidebar-item:not(.vp-sidebar-heading)+.vp-sidebar-children{padding-left:1rem;font-size:.95em}.vp-sidebar-children .vp-sidebar-children .vp-sidebar-item:not(.vp-sidebar-heading){padding:.25rem 1rem .25rem 1.75rem}.vp-sidebar-children .vp-sidebar-children .vp-sidebar-item:not(.vp-sidebar-heading).active{border-left-color:transparent;font-weight:500}a.vp-sidebar-heading+.vp-sidebar-children .vp-sidebar-item:not(.vp-sidebar-heading).active{border-left-color:transparent}.vp-sidebar-item.active:not(p.vp-sidebar-heading){border-left-color:var(--vp-c-accent);color:var(--vp-c-accent);font-weight:600}a.vp-sidebar-item{cursor:pointer}a.vp-sidebar-item:hover{color:var(--vp-c-accent)}.vp-sidebar-items{margin:0;padding:1.5rem 0;list-style-type:none}@media (max-width: 719px){.vp-sidebar-items{padding:1rem 0}}.vp-sidebar-items ul{margin:0;padding:0;list-style-type:none}.vp-sidebar-items a{display:inline-block}.vp-sidebar{position:fixed;top:var(--navbar-height);bottom:0;left:0;z-index:10;overflow-y:auto;box-sizing:border-box;width:var(--sidebar-width);margin:0;border-right:1px solid var(--vp-c-border);background-color:var(--vp-sidebar-c-bg);font-size:16px;transition:transform var(--vp-t-transform),background-color var(--vp-t-color),border-color var(--vp-t-color);scrollbar-color:var(--vp-c-accent-bg) var(--vp-c-gutter);scrollbar-width:thin}@media (max-width: 959px){.vp-sidebar{width:var(--sidebar-width-mobile);font-size:15px}}@media (max-width: 719px){.vp-sidebar{top:0;padding-top:var(--navbar-height);transform:translate(-100%)}}.vp-sidebar::-webkit-scrollbar{width:7px}.vp-sidebar::-webkit-scrollbar-track{background-color:var(--vp-c-gutter)}.vp-sidebar::-webkit-scrollbar-thumb{background-color:var(--vp-c-accent-bg)}.vp-sidebar .vp-navbar-items{display:none;padding:.5rem 0 .75rem;border-bottom:1px solid var(--vp-c-gutter);transition:border-color var(--vp-t-color)}@media (max-width: 719px){.vp-sidebar .vp-navbar-items{display:block}.vp-sidebar .vp-navbar-items .vp-navbar-dropdown-item a.route-link-active:after{top:calc(1rem - 2px)}}.vp-sidebar .vp-navbar-items ul{margin:0;padding:0;list-style-type:none}.vp-sidebar .vp-navbar-items a{font-weight:600}.vp-sidebar .vp-navbar-item{display:block;padding:.5rem 0 .5rem 1.5rem;font-size:1.1em;line-height:1.25rem}.vp-sidebar-mask{position:fixed;top:0;left:0;z-index:9;display:none;width:100vw;height:100vh}.vp-theme-container.no-navbar .vp-sidebar{top:0}@media (max-width: 719px){.vp-theme-container.no-navbar .vp-sidebar{padding-top:0}}.vp-theme-container.no-navbar .vp-page{padding-top:0}.vp-theme-container.no-navbar .theme-default-content h1,.vp-theme-container.no-navbar .theme-default-content h2,.vp-theme-container.no-navbar .theme-default-content h3,.vp-theme-container.no-navbar .theme-default-content h4,.vp-theme-container.no-navbar .theme-default-content h5,.vp-theme-container.no-navbar .theme-default-content h6{margin-top:1.5rem;padding-top:0}.vp-theme-container.no-sidebar .vp-sidebar{display:none}@media (max-width: 719px){.vp-theme-container.no-sidebar .vp-sidebar{display:block}}.vp-theme-container.no-sidebar .vp-page{padding-left:0}@media (max-width: 719px){.vp-theme-container.sidebar-open .vp-sidebar{transform:translate(0)}.vp-theme-container.sidebar-open .vp-sidebar-mask{display:block}}.fade-slide-y-enter-active{transition:all .2s ease}.fade-slide-y-leave-active{transition:all .2s cubic-bezier(1,.5,.8,1)}.fade-slide-y-enter-from,.fade-slide-y-leave-to{opacity:0;transform:translateY(10px)}.vp-theme-container[data-v-67c08c1d]{max-width:740px;margin:0 auto;padding:2rem 2.5rem}@media (max-width: 959px){.vp-theme-container[data-v-67c08c1d]{padding:2rem}}:root{--vp-c-white: #fff;--vp-c-black: #000;--vp-c-grey-text: #656869;--vp-c-grey-hover: #e4e4e9;--vp-c-grey-bg: #ebebef;--vp-c-grey-soft: rgb(142 150 170 / 14%);--vp-c-indigo-text: #3451b2;--vp-c-indigo-hover: #3a5ccc;--vp-c-indigo-bg: #5672cd;--vp-c-indigo-soft: rgb(100 108 255 / 14%);--vp-c-purple-text: #6f42c1;--vp-c-purple-hover: #7e4cc9;--vp-c-purple-bg: #8e5cd9;--vp-c-purple-soft: rgb(159 122 234 / 14%);--vp-c-blue-text: #2888a7;--vp-c-blue-hover: #2d98ba;--vp-c-blue-bg: #2fa1c5;--vp-c-blue-soft: rgb(27 178 229 / 14%);--vp-c-green-text: #18794e;--vp-c-green-hover: #299764;--vp-c-green-bg: #30a46c;--vp-c-green-soft: rgb(16 185 129 / 14%);--vp-c-yellow-text: #915930;--vp-c-yellow-hover: #946300;--vp-c-yellow-bg: #c28100;--vp-c-yellow-soft: rgb(234 179 8 / 14%);--vp-c-red-text: #b8272c;--vp-c-red-hover: #d5393e;--vp-c-red-bg: #e0575b;--vp-c-red-soft: rgb(244 63 94 / 14%)}[data-theme=dark]{--vp-c-white: #000;--vp-c-black: #fff;--vp-c-grey-text: #939499;--vp-c-grey-hover: #414853;--vp-c-grey-bg: #32363f;--vp-c-grey-soft: rgb(101 117 133 / 16%);--vp-c-indigo-text: #a8b1ff;--vp-c-indigo-hover: #5c73e7;--vp-c-indigo-bg: #3e63dd;--vp-c-indigo-soft: rgb(100 108 255 / 16%);--vp-c-blue-text: #c9e8f2;--vp-c-blue-hover: #a6d9ea;--vp-c-blue-bg: #2785a3;--vp-c-blue-soft: rgb(27 178 229 / 16%);--vp-c-purple-text: #c8abfa;--vp-c-purple-hover: #a879e6;--vp-c-purple-bg: #8e5cd9;--vp-c-purple-soft: rgb(159 122 234 / 16%);--vp-c-green-text: #3dd68c;--vp-c-green-hover: #30a46c;--vp-c-green-bg: #298459;--vp-c-green-soft: rgb(16 185 129 / 16%);--vp-c-yellow-text: #f9b44e;--vp-c-yellow-hover: #da8b17;--vp-c-yellow-bg: #a46a0a;--vp-c-yellow-soft: rgb(234 179 8 / 16%);--vp-c-red-text: #f66f81;--vp-c-red-hover: #f14158;--vp-c-red-bg: #b62a3c;--vp-c-red-soft: rgb(244 63 94 / 16%)}:root{color-scheme:light}[data-theme=dark]{color-scheme:dark}html,body{background:var(--vp-c-bg, #fff);accent-color:var(--vp-c-accent, #299764);transition:background-color var(--vp-t-color)}html{font-size:16px;font-display:optional;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;-webkit-tap-highlight-color:rgba(0,0,0,0);-webkit-text-size-adjust:none;-moz-text-size-adjust:none;text-size-adjust:none}@media print{html{font-size:12pt}}html[data-theme=dark]{color-scheme:dark}body{min-height:100vh;margin:0;padding:0;color:var(--vp-c-text, rgb(60, 60, 67));font-size:1rem;font-synthesis:style}h1,h2,h3,h4,h5,h6{font-weight:600;line-height:1.25;overflow-wrap:break-word}h1:focus-visible,h2:focus-visible,h3:focus-visible,h4:focus-visible,h5:focus-visible,h6:focus-visible{outline:none}h1{font-size:2rem}h2{padding-bottom:.3rem;border-bottom:1px solid var(--vp-c-gutter, #e2e2e3);font-size:1.65rem;transition:border-color var(--vp-t-color)}h3{font-size:1.35rem}h4{font-size:1.15rem}h5{font-size:1.05rem}h6{font-size:1rem}p,ul,ol{line-height:1.6;overflow-wrap:break-word}@media print{p,ul,ol{line-height:1.5}}ul,ol{padding-inline-start:1.2em}a{color:var(--vp-c-accent, #299764);font-weight:500;text-decoration:none;overflow-wrap:break-word}a.header-anchor{position:relative;color:inherit;text-decoration:none}a.header-anchor:before{content:"¶";position:absolute;top:.4167em;left:-.75em;display:none;color:var(--vp-c-accent, #299764);font-size:.75em}[dir=rtl] a.header-anchor:before{right:-.75em}a.header-anchor:hover:before{display:block}a.header-anchor:focus-visible{outline:none}a.header-anchor:focus-visible:before{display:block;outline:auto}strong{font-weight:600}blockquote{margin:1rem 0;padding:.25rem 0 .25rem 1rem;border-inline-start:.2rem solid var(--vp-c-border-hard, #b8b8ba);color:var(--vp-c-text-mute, rgba(60, 60, 67, .78));font-size:1rem;overflow-wrap:break-word;transition:border-color var(--vp-t-color),color var(--vp-t-color)}blockquote>p{margin:0}hr{border:0;border-bottom:1px solid var(--vp-c-gutter, #e2e2e3);transition:border-color var(--vp-t-color)}:not(pre)>code{margin:0;padding:3px 6px;border-radius:4px;background:var(--vp-c-grey-soft, rgba(142, 150, 170, .14));font-size:.875em;overflow-wrap:break-word;transition:background-color var(--vp-t-color),color var(--vp-t-color)}p a code{color:var(--vp-c-accent, #299764);font-weight:400}table code{padding:.1rem .4rem}kbd{display:inline-block;min-width:1em;margin-inline:.125rem;padding:.25em;border:1px solid var(--vp-c-border, #c2c2c4);border-radius:.25em;box-shadow:1px 1px 4px 0 var(--vp-c-shadow, rgba(0, 0, 0, .15));line-height:1;letter-spacing:-.1em;text-align:center}table{display:block;overflow-x:auto;margin:1rem 0;border-collapse:collapse}tbody tr:nth-child(odd){background:var(--vp-c-bg-alt, #f6f8fa);transition:background-color var(--vp-t-color)}th,td{padding:.6em 1em;border:1px solid var(--vp-c-border-hard, #d1d4d7);transition:border-color var(--vp-t-color)}pre{text-align:left;direction:ltr;white-space:pre;word-spacing:normal;word-wrap:normal;word-break:normal;overflow-wrap:unset;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-hyphens:none;hyphens:none}@media print{pre{white-space:pre-wrap}}pre code{padding:0;border-radius:0}@page{margin:2cm;font-size:12pt;size:a4}@media print{*,:after,:before{box-shadow:none!important;text-shadow:none!important}h2,h3,p{orphans:3;widows:3}h2,h3{page-break-after:avoid}a{color:inherit;font-weight:inherit!important;font-size:inherit!important;text-decoration:underline}a.header-anchor{text-decoration:none}abbr[title]:after{content:" (" attr(title) ")"}pre{border:1px solid #eee;white-space:pre-wrap!important}pre>code{white-space:pre-wrap!important}blockquote{border-inline-start:.2rem solid #ddd;color:inherit}blockquote,pre{orphans:5;widows:5}img,tr,canvas{page-break-inside:avoid}}@media (prefers-reduced-motion: reduce){*,:before,:after{background-attachment:initial!important;scroll-behavior:auto!important;transition-delay:0s!important;transition-duration:0s!important;animation-duration:1ms!important;animation-delay:-1ms!important;animation-iteration-count:1!important}}:root{--vp-c-accent: #299764;--vp-c-accent-bg: #3eaf7c;--vp-c-accent-hover: #4abf8a;--vp-c-accent-text: var(--vp-c-white);--vp-c-accent-soft: rgb(16 185 129 / 14%);--vp-c-bg: #fff;--vp-c-bg-alt: #f6f6f7;--vp-c-bg-elv: #fff;--vp-c-text: rgb(60 60 67);--vp-c-text-mute: rgb(60 60 67 / 78%);--vp-c-text-subtle: rgb(60 60 67 / 56%);--vp-c-gutter: #e2e2e3;--vp-c-border: #c2c2c4;--vp-c-border-hard: #b8b8ba;--vp-c-shadow: rgb(0 0 0 / 15%);--vp-c-control: rgb(142 150 170 / 10%);--vp-c-control-hover: rgb(142 150 170 / 16%);--vp-c-control-disabled: #eaeaea;--vp-navbar-c-bg: var(--vp-c-bg);--vp-sidebar-c-bg: var(--vp-c-bg);--vp-c-code-tab-title: var(--code-c-text, rgb(255 255 255 / 90%));--vp-c-code-tab-bg: var(--code-bg-color, var(--code-c-bg));--vp-c-code-tab-active: var(--vp-c-accent);--badge-c-tip-text: var(--vp-c-green-text);--badge-c-tip-bg: var(--vp-c-green-soft);--badge-c-warning-text: var(--vp-c-yellow-text);--badge-c-warning-bg: var(--vp-c-yellow-soft);--badge-c-danger-text: var(--vp-c-red-text);--badge-c-danger-bg: var(--vp-c-red-soft);--badge-c-important-text: var(--vp-c-purple-text);--badge-c-important-bg: var(--vp-c-purple-soft);--badge-c-info-text: var(--vp-c-indigo-text);--badge-c-info-bg: var(--vp-c-indigo-soft);--badge-c-note-text: var(--vp-c-grey-text);--badge-c-note-bg: var(--vp-c-grey-soft);--font-family: -apple-system, "BlinkMacSystemFont", "Segoe UI", roboto, oxygen, ubuntu, cantarell, "Fira Sans", "Droid Sans", "Helvetica Neue", sans-serif;--navbar-height: 3.6rem;--navbar-padding-v: .7rem;--navbar-padding-h: 1.5rem;--sidebar-width: 20rem;--sidebar-width-mobile: calc(var(--sidebar-width) * .82);--content-width: 740px;--homepage-width: 960px;--header-offset: var(--navbar-height);--vp-t-color: .3s ease;--vp-t-transform: .3s ease;--external-link-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M0 0h24v24H0V0z' fill='none'/%3E%3Cpath d='M9 5v2h6.59L4 18.59 5.41 20 17 8.41V15h2V5H9z'/%3E%3C/svg%3E");--external-link-c-icon: var(--vp-c-text-mute)}[data-theme=dark]{--vp-c-accent: #3dd68c;--vp-c-accent-bg: #3aa675;--vp-c-accent-hover: #349469;--vp-c-accent-soft: rgb(16 185 129 / 16%);--vp-c-bg: #1b1b1f;--vp-c-bg-alt: #161618;--vp-c-bg-elv: #202127;--vp-c-text: rgb(235 235 245 / 86%);--vp-c-text-mute: rgb(235 235 245 / 60%);--vp-c-text-subtle: rgb(235 235 245 / 38%);--vp-c-gutter: #000;--vp-c-border: #3c3f44;--vp-c-border-hard: #45484e;--vp-c-shadow: rgb(0 0 0 / 30%);--vp-c-control: rgb(101 117 133 / 12%);--vp-c-control-hover: rgb(101 117 133 / 18%);--vp-c-control-disabled: #363636}body{font-family:var(--font-family)}code{font-family:var(--code-font-family)}.theme-default-content h1,.theme-default-content h2,.theme-default-content h3,.theme-default-content h4,.theme-default-content h5,.theme-default-content h6{margin-top:calc(.5rem - var(--header-offset));margin-bottom:0;padding-top:calc(1rem + var(--header-offset))}.theme-default-content h1:first-child,.theme-default-content h2:first-child,.theme-default-content h3:first-child,.theme-default-content h4:first-child,.theme-default-content h5:first-child,.theme-default-content h6:first-child{margin-bottom:1rem}.theme-default-content h1:first-child+p,.theme-default-content h1:first-child+pre,.theme-default-content h1:first-child+.custom-container,.theme-default-content h2:first-child+p,.theme-default-content h2:first-child+pre,.theme-default-content h2:first-child+.custom-container,.theme-default-content h3:first-child+p,.theme-default-content h3:first-child+pre,.theme-default-content h3:first-child+.custom-container,.theme-default-content h4:first-child+p,.theme-default-content h4:first-child+pre,.theme-default-content h4:first-child+.custom-container,.theme-default-content h5:first-child+p,.theme-default-content h5:first-child+pre,.theme-default-content h5:first-child+.custom-container,.theme-default-content h6:first-child+p,.theme-default-content h6:first-child+pre,.theme-default-content h6:first-child+.custom-container{margin-top:2rem}@media (max-width: 419px){.theme-default-content h1{font-size:1.9rem}}.theme-default-content a:not(.header-anchor){text-decoration:underline}.theme-default-content img{max-width:100%}div[class*=language-]{margin:.75rem 0;transition:background-color var(--vp-t-color),color var(--vp-t-color)}@media (max-width: 419px){div[class*=language-]{--code-border-radius: 0;margin:.75rem -1.5rem}}div[class*=language-] .line.diff,div[class*=language-] .line.highlighted{transition:background-color var(--vp-t-color)}.table-of-contents .vp-badge{vertical-align:middle}.arrow{display:inline-block;vertical-align:middle;width:1em;height:1em;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='rgba(0,0,0,0.5)' d='M7.41 15.41L12 10.83l4.59 4.58L18 14l-6-6-6 6z'/%3E%3C/svg%3E");background-position:center;background-repeat:no-repeat;line-height:normal;transition:all .3s}[data-theme=dark] .arrow{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='rgba(255,255,255,0.5)' d='M7.41 15.41L12 10.83l4.59 4.58L18 14l-6-6-6 6z'/%3E%3C/svg%3E")}.arrow.down{transform:rotate(180deg)}.arrow.right{transform:rotate(90deg)}.arrow.left{transform:rotate(-90deg)}.vp-external-link-icon:after{content:"";display:inline-block;flex-shrink:0;width:11px;height:11px;margin-top:-1px;margin-left:4px;background:var(--external-link-c-icon);-webkit-mask-image:var(--external-link-icon);mask-image:var(--external-link-icon)}.external-link-icon .external-link:after{content:"";display:inline-block;flex-shrink:0;width:11px;height:11px;margin-top:-1px;margin-left:4px;background:var(--external-link-c-icon);-webkit-mask-image:var(--external-link-icon);mask-image:var(--external-link-icon)}.external-link-icon .theme-default-content a[href*="://"]:not(.no-external-link-icon):after,.external-link-icon .theme-default-content a[target=_blank]:not(.no-external-link-icon):after{content:"";display:inline-block;flex-shrink:0;width:11px;height:11px;margin-top:-1px;margin-left:4px;background:var(--external-link-c-icon);-webkit-mask-image:var(--external-link-icon);mask-image:var(--external-link-icon)}@media screen and (max-width: 719px){.vp-hide-mobile{display:none}}.vp-comment{max-width:var(--content-width);margin:0 auto;padding:2rem 2.5rem}@media (max-width: 959px){.vp-comment{padding:2rem}}@media (max-width: 419px){.vp-comment{padding:1.5rem}}.vp-navbar .DocSearch{transition:background-color var(--vp-t-color)}.vp-navbar .search-box{vertical-align:top;flex:0 0 auto}@media screen and (max-width: 719px){.hint-container{margin-inline:-.75rem}}:root{--vp-c-accent: #356cae;--vp-c-accent-bg: #356cae;--vp-c-accent-hover: #164177;--vp-c-accent-text: var(--vp-c-white);--vp-c-accent-soft: rgba(55, 65, 183, .14)}html.dark{--vp-c-accent: #356cae;--vp-c-accent-bg: #356cae;--vp-c-accent-hover: #164177;--vp-c-accent-text: var(--vp-c-white);--vp-c-accent-soft: rgba(55, 65, 183, .14)}iframe{width:100%}.home .hero img{max-width:150px;width:auto;height:auto} diff --git a/assets/top50-Du4eFrfo.png b/assets/top50-Du4eFrfo.png new file mode 100644 index 0000000..7873ca7 Binary files /dev/null and b/assets/top50-Du4eFrfo.png differ diff --git a/assets/turing_test-DKoxXym2.png b/assets/turing_test-DKoxXym2.png new file mode 100644 index 0000000..0aac0e4 Binary files /dev/null and b/assets/turing_test-DKoxXym2.png differ diff --git a/develop/index.html b/develop/index.html new file mode 100644 index 0000000..1e026b4 --- /dev/null +++ b/develop/index.html @@ -0,0 +1,43 @@ + + + + + + + + + Develop with AI + + + + + +
+ + + diff --git a/favicon.ico b/favicon.ico new file mode 100644 index 0000000..cd391c5 Binary files /dev/null and b/favicon.ico differ diff --git a/index.html b/index.html new file mode 100644 index 0000000..4a1ff8d --- /dev/null +++ b/index.html @@ -0,0 +1,43 @@ + + + + + + + + + AI for devs | Tech at Worldline + + + + + +
+ + + diff --git a/llm/index.html b/llm/index.html new file mode 100644 index 0000000..424ac10 --- /dev/null +++ b/llm/index.html @@ -0,0 +1,43 @@ + + + + + + + + + Online with Librechat + + + + + +
+ + + diff --git a/logo.png b/logo.png new file mode 100644 index 0000000..7ad11b2 Binary files /dev/null and b/logo.png differ diff --git a/logo_worldline.png b/logo_worldline.png new file mode 100644 index 0000000..6981642 Binary files /dev/null and b/logo_worldline.png differ diff --git a/manifest.webmanifest b/manifest.webmanifest new file mode 100644 index 0000000..06a4f99 --- /dev/null +++ b/manifest.webmanifest @@ -0,0 +1,31 @@ +{ + "theme_color": "#00A67E", + "background_color": "#e8d4f2", + "display": "standalone", + "scope": "/learning-ai/", + "start_url": "/learning-ai/index.html", + "name": "Flutter training", + "short_name": "Flutter training", + "icons": [ + { + "src": "icon-192x192.png", + "sizes": "192x192", + "type": "image/png" + }, + { + "src": "icon-256x256.png", + "sizes": "256x256", + "type": "image/png" + }, + { + "src": "icon-384x384.png", + "sizes": "384x384", + "type": "image/png" + }, + { + "src": "icon-512x512.png", + "sizes": "512x512", + "type": "image/png" + } + ] +} diff --git a/offline/index.html b/offline/index.html new file mode 100644 index 0000000..e780846 --- /dev/null +++ b/offline/index.html @@ -0,0 +1,43 @@ + + + + + + + + + Offline with LM Studio + + + + + +
+ + + diff --git a/overview/index.html b/overview/index.html new file mode 100644 index 0000000..142b17c --- /dev/null +++ b/overview/index.html @@ -0,0 +1,43 @@ + + + + + + + + + Let's start + + + + + +
+ + + diff --git a/robots.txt b/robots.txt new file mode 100644 index 0000000..36cfb01 --- /dev/null +++ b/robots.txt @@ -0,0 +1,3 @@ + +User-agent:* +Disallow: diff --git a/services/index.html b/services/index.html new file mode 100644 index 0000000..38b4580 --- /dev/null +++ b/services/index.html @@ -0,0 +1,43 @@ + + + + + + + + + AI for services + + + + + +
+ + + diff --git a/use/index.html b/use/index.html new file mode 100644 index 0000000..719c1a5 --- /dev/null +++ b/use/index.html @@ -0,0 +1,43 @@ + + + + + + + + + Prompt with AI + + + + + +
+ + +