@ottocode/web-ui 0.1.267 → 0.1.269
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.js +7 -7
- package/dist/web-assets/assets/{framework-nJQAxzC3.js → framework-Bfi9-9qL.js} +1 -1
- package/dist/web-assets/assets/icons-DyaxiImC.js +1 -0
- package/dist/web-assets/assets/index--47sjtiF.css +1 -0
- package/dist/web-assets/assets/index-B2JHbjsv.js +148 -0
- package/dist/web-assets/assets/{markdown-1p5Y8Eag.js → markdown-69u93v4z.js} +1 -1
- package/dist/web-assets/assets/{syntax-C0SiaOCe.js → syntax-CKmazKPF.js} +1 -1
- package/dist/web-assets/index.html +6 -6
- package/package.json +1 -1
- package/dist/web-assets/assets/icons-CMdN2kBV.js +0 -1
- package/dist/web-assets/assets/index-CE4C8Pqp.js +0 -142
- package/dist/web-assets/assets/index-DCCaYb5u.css +0 -1
|
@@ -0,0 +1,148 @@
|
|
|
1
|
+
import{R as Qt,o as gt,p as ke,m as _e,k as m,j as o,_ as XE,u as $E,h as Ka,i as JQ,r as AC,f as eC,O as tC,e as La,l as oC,n as sC,g as rC,Q as nC,a as iC,b as aC,c as gC}from"./framework-Bfi9-9qL.js";import{f as lC,ay as Ja,aB as ot,ag as lo,at as so,ab as ja,aa as jQ,j as qt,o as wo,I as Gt,a8 as Je,s as Ta,q as TQ,a1 as QC,l as St,J as os,P as BC,g as cC,a0 as Oa,O as ss,K as EC,L as Un,ae as In,ap as _t,r as OQ,a3 as qQ,v as CC,h as Rn,Y as go,C as Ht,aq as uC,au as Nr,am as qa,ah as Zt,w as Og,i as YQ,an as Ya,R as dr,H as IC,d as HQ,m as dC,ak as zo,x as fs,V as PQ,S as WQ,W as hr,p as hC,c as zQ,n as pC,_ as Wo,a5 as fC,z as Kn,aj as qg,a6 as mC,X as wC,af as kr,B as VQ,ao as Yg,ad as xC,M as Fo,a7 as DC,E as Vi,Z as dn,D as yC,u as Ha,ai as _Q,e as ZQ,F as XQ,az as Pa,A as NC,av as $Q,Q as kC,N as AB,ar as MC,U as bC,G as FC,ax as GC,k as vC,$ as SC,a as UC,al as eB,y as RC,aC as tB,a2 as Br,aw as KC,a4 as Wa,T as cr,t as LC,a9 as JC,aA as jC,b as TC,as as OC,ac as qC}from"./icons-DyaxiImC.js";import{v as Io,p as ho,h as Yt}from"./syntax-CKmazKPF.js";import{M as za,r as Va}from"./markdown-69u93v4z.js";(function(){const e=document.createElement("link").relList;if(e&&e.supports&&e.supports("modulepreload"))return;for(const n of document.querySelectorAll('link[rel="modulepreload"]'))s(n);new MutationObserver(n=>{for(const r of n)if(r.type==="childList")for(const i of r.addedNodes)i.tagName==="LINK"&&i.rel==="modulepreload"&&s(i)}).observe(document,{childList:!0,subtree:!0});function t(n){const r={};return n.integrity&&(r.integrity=n.integrity),n.referrerPolicy&&(r.referrerPolicy=n.referrerPolicy),n.crossOrigin==="use-credentials"?r.credentials="include":n.crossOrigin==="anonymous"?r.credentials="omit":r.credentials="same-origin",r}function s(n){if(n.ep)return;n.ep=!0;const r=t(n);fetch(n.href,r)}})();const Hg=A=>{let e;const t=new Set,s=(l,B)=>{const u=typeof l=="function"?l(e):l;if(!Object.is(u,e)){const E=e;e=B??(typeof u!="object"||u===null)?u:Object.assign({},e,u),t.forEach(c=>c(e,E))}},n=()=>e,a={setState:s,getState:n,getInitialState:()=>g,subscribe:l=>(t.add(l),()=>t.delete(l))},g=e=A(s,n,a);return a},YC=(A=>A?Hg(A):Hg),HC=A=>A;function PC(A,e=HC){const t=Qt.useSyncExternalStore(A.subscribe,Qt.useCallback(()=>e(A.getState()),[A,e]),Qt.useCallback(()=>e(A.getInitialState()),[A,e]));return Qt.useDebugValue(t),t}const Pg=A=>{const e=YC(A),t=s=>PC(e,s);return Object.assign(t,e),t},dt=(A=>A?Pg(A):Pg),WC=300,zC=150,ao=dt(A=>({isOpen:!1,panelHeight:WC,activeTabId:null,isMaximized:!1,get isExpanded(){return this.isOpen},get selectedTerminalId(){return this.activeTabId},openPanel:()=>A({isOpen:!0}),closePanel:()=>A({isOpen:!1,isMaximized:!1}),togglePanel:()=>A(e=>({isOpen:!e.isOpen,isMaximized:e.isOpen?!1:e.isMaximized})),setPanelHeight:e=>A({panelHeight:Math.max(zC,e)}),selectTab:e=>A({activeTabId:e,isOpen:!0}),toggleMaximize:()=>A(e=>({isMaximized:!e.isMaximized})),expandSidebar:()=>A({isOpen:!0}),collapseSidebar:()=>A({isOpen:!1,activeTabId:null,isMaximized:!1}),toggleSidebar:()=>A(e=>({isOpen:!e.isOpen,isMaximized:e.isOpen?!1:e.isMaximized})),selectTerminal:e=>A({activeTabId:e,isOpen:!0})}));function oB(A,e){return function(){return A.apply(e,arguments)}}const{toString:VC}=Object.prototype,{getPrototypeOf:Ln}=Object,{iterator:Jn,toStringTag:sB}=Symbol,jn=(A=>e=>{const t=VC.call(e);return A[t]||(A[t]=t.slice(8,-1).toLowerCase())})(Object.create(null)),xo=A=>(A=A.toLowerCase(),e=>jn(e)===A),Tn=A=>e=>typeof e===A,{isArray:Vs}=Array,Ys=Tn("undefined");function Mr(A){return A!==null&&!Ys(A)&&A.constructor!==null&&!Ys(A.constructor)&&ro(A.constructor.isBuffer)&&A.constructor.isBuffer(A)}const rB=xo("ArrayBuffer");function _C(A){let e;return typeof ArrayBuffer<"u"&&ArrayBuffer.isView?e=ArrayBuffer.isView(A):e=A&&A.buffer&&rB(A.buffer),e}const ZC=Tn("string"),ro=Tn("function"),nB=Tn("number"),br=A=>A!==null&&typeof A=="object",XC=A=>A===!0||A===!1,nn=A=>{if(jn(A)!=="object")return!1;const e=Ln(A);return(e===null||e===Object.prototype||Object.getPrototypeOf(e)===null)&&!(sB in A)&&!(Jn in A)},$C=A=>{if(!br(A)||Mr(A))return!1;try{return Object.keys(A).length===0&&Object.getPrototypeOf(A)===Object.prototype}catch{return!1}},Au=xo("Date"),eu=xo("File"),tu=A=>!!(A&&typeof A.uri<"u"),ou=A=>A&&typeof A.getParts<"u",su=xo("Blob"),ru=xo("FileList"),nu=A=>br(A)&&ro(A.pipe);function iu(){return typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof global<"u"?global:{}}const Wg=iu(),zg=typeof Wg.FormData<"u"?Wg.FormData:void 0,au=A=>{if(!A)return!1;if(zg&&A instanceof zg)return!0;const e=Ln(A);if(!e||e===Object.prototype||!ro(A.append))return!1;const t=jn(A);return t==="formdata"||t==="object"&&ro(A.toString)&&A.toString()==="[object FormData]"},gu=xo("URLSearchParams"),[lu,Qu,Bu,cu]=["ReadableStream","Request","Response","Headers"].map(xo),Eu=A=>A.trim?A.trim():A.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,"");function Fr(A,e,{allOwnKeys:t=!1}={}){if(A===null||typeof A>"u")return;let s,n;if(typeof A!="object"&&(A=[A]),Vs(A))for(s=0,n=A.length;s<n;s++)e.call(null,A[s],s,A);else{if(Mr(A))return;const r=t?Object.getOwnPropertyNames(A):Object.keys(A),i=r.length;let a;for(s=0;s<i;s++)a=r[s],e.call(null,A[a],a,A)}}function iB(A,e){if(Mr(A))return null;e=e.toLowerCase();const t=Object.keys(A);let s=t.length,n;for(;s-- >0;)if(n=t[s],e===n.toLowerCase())return n;return null}const Cs=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:global,aB=A=>!Ys(A)&&A!==Cs;function _i(...A){const{caseless:e,skipUndefined:t}=aB(this)&&this||{},s={},n=(r,i)=>{if(i==="__proto__"||i==="constructor"||i==="prototype")return;const a=e&&iB(s,i)||i,g=Zi(s,a)?s[a]:void 0;nn(g)&&nn(r)?s[a]=_i(g,r):nn(r)?s[a]=_i({},r):Vs(r)?s[a]=r.slice():(!t||!Ys(r))&&(s[a]=r)};for(let r=0,i=A.length;r<i;r++)A[r]&&Fr(A[r],n);return s}const Cu=(A,e,t,{allOwnKeys:s}={})=>(Fr(e,(n,r)=>{t&&ro(n)?Object.defineProperty(A,r,{__proto__:null,value:oB(n,t),writable:!0,enumerable:!0,configurable:!0}):Object.defineProperty(A,r,{__proto__:null,value:n,writable:!0,enumerable:!0,configurable:!0})},{allOwnKeys:s}),A),uu=A=>(A.charCodeAt(0)===65279&&(A=A.slice(1)),A),Iu=(A,e,t,s)=>{A.prototype=Object.create(e.prototype,s),Object.defineProperty(A.prototype,"constructor",{__proto__:null,value:A,writable:!0,enumerable:!1,configurable:!0}),Object.defineProperty(A,"super",{__proto__:null,value:e.prototype}),t&&Object.assign(A.prototype,t)},du=(A,e,t,s)=>{let n,r,i;const a={};if(e=e||{},A==null)return e;do{for(n=Object.getOwnPropertyNames(A),r=n.length;r-- >0;)i=n[r],(!s||s(i,A,e))&&!a[i]&&(e[i]=A[i],a[i]=!0);A=t!==!1&&Ln(A)}while(A&&(!t||t(A,e))&&A!==Object.prototype);return e},hu=(A,e,t)=>{A=String(A),(t===void 0||t>A.length)&&(t=A.length),t-=e.length;const s=A.indexOf(e,t);return s!==-1&&s===t},pu=A=>{if(!A)return null;if(Vs(A))return A;let e=A.length;if(!nB(e))return null;const t=new Array(e);for(;e-- >0;)t[e]=A[e];return t},fu=(A=>e=>A&&e instanceof A)(typeof Uint8Array<"u"&&Ln(Uint8Array)),mu=(A,e)=>{const s=(A&&A[Jn]).call(A);let n;for(;(n=s.next())&&!n.done;){const r=n.value;e.call(A,r[0],r[1])}},wu=(A,e)=>{let t;const s=[];for(;(t=A.exec(e))!==null;)s.push(t);return s},xu=xo("HTMLFormElement"),Du=A=>A.toLowerCase().replace(/[-_\s]([a-z\d])(\w*)/g,function(t,s,n){return s.toUpperCase()+n}),Zi=(({hasOwnProperty:A})=>(e,t)=>A.call(e,t))(Object.prototype),yu=xo("RegExp"),gB=(A,e)=>{const t=Object.getOwnPropertyDescriptors(A),s={};Fr(t,(n,r)=>{let i;(i=e(n,r,A))!==!1&&(s[r]=i||n)}),Object.defineProperties(A,s)},Nu=A=>{gB(A,(e,t)=>{if(ro(A)&&["arguments","caller","callee"].includes(t))return!1;const s=A[t];if(ro(s)){if(e.enumerable=!1,"writable"in e){e.writable=!1;return}e.set||(e.set=()=>{throw Error("Can not rewrite read-only method '"+t+"'")})}})},ku=(A,e)=>{const t={},s=n=>{n.forEach(r=>{t[r]=!0})};return Vs(A)?s(A):s(String(A).split(e)),t},Mu=()=>{},bu=(A,e)=>A!=null&&Number.isFinite(A=+A)?A:e;function Fu(A){return!!(A&&ro(A.append)&&A[sB]==="FormData"&&A[Jn])}const Gu=A=>{const e=new WeakSet,t=s=>{if(br(s)){if(e.has(s))return;if(Mr(s))return s;if(!("toJSON"in s)){e.add(s);const n=Vs(s)?[]:{};return Fr(s,(r,i)=>{const a=t(r);!Ys(a)&&(n[i]=a)}),e.delete(s),n}}return s};return t(A)},vu=xo("AsyncFunction"),Su=A=>A&&(br(A)||ro(A))&&ro(A.then)&&ro(A.catch),lB=((A,e)=>A?setImmediate:e?((t,s)=>(Cs.addEventListener("message",({source:n,data:r})=>{n===Cs&&r===t&&s.length&&s.shift()()},!1),n=>{s.push(n),Cs.postMessage(t,"*")}))(`axios@${Math.random()}`,[]):t=>setTimeout(t))(typeof setImmediate=="function",ro(Cs.postMessage)),Uu=typeof queueMicrotask<"u"?queueMicrotask.bind(Cs):typeof process<"u"&&process.nextTick||lB,Ru=A=>A!=null&&ro(A[Jn]),gA={isArray:Vs,isArrayBuffer:rB,isBuffer:Mr,isFormData:au,isArrayBufferView:_C,isString:ZC,isNumber:nB,isBoolean:XC,isObject:br,isPlainObject:nn,isEmptyObject:$C,isReadableStream:lu,isRequest:Qu,isResponse:Bu,isHeaders:cu,isUndefined:Ys,isDate:Au,isFile:eu,isReactNativeBlob:tu,isReactNative:ou,isBlob:su,isRegExp:yu,isFunction:ro,isStream:nu,isURLSearchParams:gu,isTypedArray:fu,isFileList:ru,forEach:Fr,merge:_i,extend:Cu,trim:Eu,stripBOM:uu,inherits:Iu,toFlatObject:du,kindOf:jn,kindOfTest:xo,endsWith:hu,toArray:pu,forEachEntry:mu,matchAll:wu,isHTMLForm:xu,hasOwnProperty:Zi,hasOwnProp:Zi,reduceDescriptors:gB,freezeMethods:Nu,toObjectSet:ku,toCamelCase:Du,noop:Mu,toFiniteNumber:bu,findKey:iB,global:Cs,isContextDefined:aB,isSpecCompliantForm:Fu,toJSONObject:Gu,isAsyncFn:vu,isThenable:Su,setImmediate:lB,asap:Uu,isIterable:Ru},Ku=gA.toObjectSet(["age","authorization","content-length","content-type","etag","expires","from","host","if-modified-since","if-unmodified-since","last-modified","location","max-forwards","proxy-authorization","referer","retry-after","user-agent"]),Lu=A=>{const e={};let t,s,n;return A&&A.split(`
|
|
2
|
+
`).forEach(function(i){n=i.indexOf(":"),t=i.substring(0,n).trim().toLowerCase(),s=i.substring(n+1).trim(),!(!t||e[t]&&Ku[t])&&(t==="set-cookie"?e[t]?e[t].push(s):e[t]=[s]:e[t]=e[t]?e[t]+", "+s:s)}),e};function Ju(A){let e=0,t=A.length;for(;e<t;){const s=A.charCodeAt(e);if(s!==9&&s!==32)break;e+=1}for(;t>e;){const s=A.charCodeAt(t-1);if(s!==9&&s!==32)break;t-=1}return e===0&&t===A.length?A:A.slice(e,t)}const ju=new RegExp("[\\u0000-\\u0008\\u000a-\\u001f\\u007f]+","g"),Tu=new RegExp("[^\\u0009\\u0020-\\u007e\\u0080-\\u00ff]+","g");function _a(A,e){return gA.isArray(A)?A.map(t=>_a(t,e)):Ju(String(A).replace(e,""))}const Ou=A=>_a(A,ju),qu=A=>_a(A,Tu);function QB(A){const e=Object.create(null);return gA.forEach(A.toJSON(),(t,s)=>{e[s]=qu(t)}),e}const Vg=Symbol("internals");function nr(A){return A&&String(A).trim().toLowerCase()}function an(A){return A===!1||A==null?A:gA.isArray(A)?A.map(an):Ou(String(A))}function Yu(A){const e=Object.create(null),t=/([^\s,;=]+)\s*(?:=\s*([^,;]+))?/g;let s;for(;s=t.exec(A);)e[s[1]]=s[2];return e}const Hu=A=>/^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(A.trim());function li(A,e,t,s,n){if(gA.isFunction(s))return s.call(this,e,t);if(n&&(e=t),!!gA.isString(e)){if(gA.isString(s))return e.indexOf(s)!==-1;if(gA.isRegExp(s))return s.test(e)}}function Pu(A){return A.trim().toLowerCase().replace(/([a-z\d])(\w*)/g,(e,t,s)=>t.toUpperCase()+s)}function Wu(A,e){const t=gA.toCamelCase(" "+e);["get","set","has"].forEach(s=>{Object.defineProperty(A,s+t,{__proto__:null,value:function(n,r,i){return this[s].call(this,e,n,r,i)},configurable:!0})})}let $t=class{constructor(e){e&&this.set(e)}set(e,t,s){const n=this;function r(a,g,l){const B=nr(g);if(!B)throw new Error("header name must be a non-empty string");const u=gA.findKey(n,B);(!u||n[u]===void 0||l===!0||l===void 0&&n[u]!==!1)&&(n[u||g]=an(a))}const i=(a,g)=>gA.forEach(a,(l,B)=>r(l,B,g));if(gA.isPlainObject(e)||e instanceof this.constructor)i(e,t);else if(gA.isString(e)&&(e=e.trim())&&!Hu(e))i(Lu(e),t);else if(gA.isObject(e)&&gA.isIterable(e)){let a={},g,l;for(const B of e){if(!gA.isArray(B))throw TypeError("Object iterator must return a key-value pair");a[l=B[0]]=(g=a[l])?gA.isArray(g)?[...g,B[1]]:[g,B[1]]:B[1]}i(a,t)}else e!=null&&r(t,e,s);return this}get(e,t){if(e=nr(e),e){const s=gA.findKey(this,e);if(s){const n=this[s];if(!t)return n;if(t===!0)return Yu(n);if(gA.isFunction(t))return t.call(this,n,s);if(gA.isRegExp(t))return t.exec(n);throw new TypeError("parser must be boolean|regexp|function")}}}has(e,t){if(e=nr(e),e){const s=gA.findKey(this,e);return!!(s&&this[s]!==void 0&&(!t||li(this,this[s],s,t)))}return!1}delete(e,t){const s=this;let n=!1;function r(i){if(i=nr(i),i){const a=gA.findKey(s,i);a&&(!t||li(s,s[a],a,t))&&(delete s[a],n=!0)}}return gA.isArray(e)?e.forEach(r):r(e),n}clear(e){const t=Object.keys(this);let s=t.length,n=!1;for(;s--;){const r=t[s];(!e||li(this,this[r],r,e,!0))&&(delete this[r],n=!0)}return n}normalize(e){const t=this,s={};return gA.forEach(this,(n,r)=>{const i=gA.findKey(s,r);if(i){t[i]=an(n),delete t[r];return}const a=e?Pu(r):String(r).trim();a!==r&&delete t[r],t[a]=an(n),s[a]=!0}),this}concat(...e){return this.constructor.concat(this,...e)}toJSON(e){const t=Object.create(null);return gA.forEach(this,(s,n)=>{s!=null&&s!==!1&&(t[n]=e&&gA.isArray(s)?s.join(", "):s)}),t}[Symbol.iterator](){return Object.entries(this.toJSON())[Symbol.iterator]()}toString(){return Object.entries(this.toJSON()).map(([e,t])=>e+": "+t).join(`
|
|
3
|
+
`)}getSetCookie(){return this.get("set-cookie")||[]}get[Symbol.toStringTag](){return"AxiosHeaders"}static from(e){return e instanceof this?e:new this(e)}static concat(e,...t){const s=new this(e);return t.forEach(n=>s.set(n)),s}static accessor(e){const s=(this[Vg]=this[Vg]={accessors:{}}).accessors,n=this.prototype;function r(i){const a=nr(i);s[a]||(Wu(n,i),s[a]=!0)}return gA.isArray(e)?e.forEach(r):r(e),this}};$t.accessor(["Content-Type","Content-Length","Accept","Accept-Encoding","User-Agent","Authorization"]);gA.reduceDescriptors($t.prototype,({value:A},e)=>{let t=e[0].toUpperCase()+e.slice(1);return{get:()=>A,set(s){this[t]=s}}});gA.freezeMethods($t);const zu="[REDACTED ****]";function Vu(A){if(gA.hasOwnProp(A,"toJSON"))return!0;let e=Object.getPrototypeOf(A);for(;e&&e!==Object.prototype;){if(gA.hasOwnProp(e,"toJSON"))return!0;e=Object.getPrototypeOf(e)}return!1}function _u(A,e){const t=new Set(e.map(r=>String(r).toLowerCase())),s=[],n=r=>{if(r===null||typeof r!="object"||gA.isBuffer(r))return r;if(s.indexOf(r)!==-1)return;r instanceof $t&&(r=r.toJSON()),s.push(r);let i;if(gA.isArray(r))i=[],r.forEach((a,g)=>{const l=n(a);gA.isUndefined(l)||(i[g]=l)});else{if(!gA.isPlainObject(r)&&Vu(r))return s.pop(),r;i=Object.create(null);for(const[a,g]of Object.entries(r)){const l=t.has(a.toLowerCase())?zu:n(g);gA.isUndefined(l)||(i[a]=l)}}return s.pop(),i};return n(A)}let HA=class BB extends Error{static from(e,t,s,n,r,i){const a=new BB(e.message,t||e.code,s,n,r);return a.cause=e,a.name=e.name,e.status!=null&&a.status==null&&(a.status=e.status),i&&Object.assign(a,i),a}constructor(e,t,s,n,r){super(e),Object.defineProperty(this,"message",{__proto__:null,value:e,enumerable:!0,writable:!0,configurable:!0}),this.name="AxiosError",this.isAxiosError=!0,t&&(this.code=t),s&&(this.config=s),n&&(this.request=n),r&&(this.response=r,this.status=r.status)}toJSON(){const e=this.config,t=e&&gA.hasOwnProp(e,"redact")?e.redact:void 0,s=gA.isArray(t)&&t.length>0?_u(e,t):gA.toJSONObject(e);return{message:this.message,name:this.name,description:this.description,number:this.number,fileName:this.fileName,lineNumber:this.lineNumber,columnNumber:this.columnNumber,stack:this.stack,config:s,code:this.code,status:this.status}}};HA.ERR_BAD_OPTION_VALUE="ERR_BAD_OPTION_VALUE";HA.ERR_BAD_OPTION="ERR_BAD_OPTION";HA.ECONNABORTED="ECONNABORTED";HA.ETIMEDOUT="ETIMEDOUT";HA.ECONNREFUSED="ECONNREFUSED";HA.ERR_NETWORK="ERR_NETWORK";HA.ERR_FR_TOO_MANY_REDIRECTS="ERR_FR_TOO_MANY_REDIRECTS";HA.ERR_DEPRECATED="ERR_DEPRECATED";HA.ERR_BAD_RESPONSE="ERR_BAD_RESPONSE";HA.ERR_BAD_REQUEST="ERR_BAD_REQUEST";HA.ERR_CANCELED="ERR_CANCELED";HA.ERR_NOT_SUPPORT="ERR_NOT_SUPPORT";HA.ERR_INVALID_URL="ERR_INVALID_URL";HA.ERR_FORM_DATA_DEPTH_EXCEEDED="ERR_FORM_DATA_DEPTH_EXCEEDED";const Zu=null;function Xi(A){return gA.isPlainObject(A)||gA.isArray(A)}function cB(A){return gA.endsWith(A,"[]")?A.slice(0,-2):A}function Qi(A,e,t){return A?A.concat(e).map(function(n,r){return n=cB(n),!t&&r?"["+n+"]":n}).join(t?".":""):e}function Xu(A){return gA.isArray(A)&&!A.some(Xi)}const $u=gA.toFlatObject(gA,{},null,function(e){return/^is[A-Z]/.test(e)});function On(A,e,t){if(!gA.isObject(A))throw new TypeError("target must be an object");e=e||new FormData,t=gA.toFlatObject(t,{metaTokens:!0,dots:!1,indexes:!1},!1,function(p,D){return!gA.isUndefined(D[p])});const s=t.metaTokens,n=t.visitor||u,r=t.dots,i=t.indexes,a=t.Blob||typeof Blob<"u"&&Blob,g=t.maxDepth===void 0?100:t.maxDepth,l=a&&gA.isSpecCompliantForm(e);if(!gA.isFunction(n))throw new TypeError("visitor must be a function");function B(f){if(f===null)return"";if(gA.isDate(f))return f.toISOString();if(gA.isBoolean(f))return f.toString();if(!l&&gA.isBlob(f))throw new HA("Blob is not supported. Use a Buffer instead.");return gA.isArrayBuffer(f)||gA.isTypedArray(f)?l&&typeof Blob=="function"?new Blob([f]):Buffer.from(f):f}function u(f,p,D){let F=f;if(gA.isReactNative(e)&&gA.isReactNativeBlob(f))return e.append(Qi(D,p,r),B(f)),!1;if(f&&!D&&typeof f=="object"){if(gA.endsWith(p,"{}"))p=s?p:p.slice(0,-2),f=JSON.stringify(f);else if(gA.isArray(f)&&Xu(f)||(gA.isFileList(f)||gA.endsWith(p,"[]"))&&(F=gA.toArray(f)))return p=cB(p),F.forEach(function(L,K){!(gA.isUndefined(L)||L===null)&&e.append(i===!0?Qi([p],K,r):i===null?p:p+"[]",B(L))}),!1}return Xi(f)?!0:(e.append(Qi(D,p,r),B(f)),!1)}const E=[],c=Object.assign($u,{defaultVisitor:u,convertValue:B,isVisitable:Xi});function d(f,p,D=0){if(!gA.isUndefined(f)){if(D>g)throw new HA("Object is too deeply nested ("+D+" levels). Max depth: "+g,HA.ERR_FORM_DATA_DEPTH_EXCEEDED);if(E.indexOf(f)!==-1)throw Error("Circular reference detected in "+p.join("."));E.push(f),gA.forEach(f,function(k,L){(!(gA.isUndefined(k)||k===null)&&n.call(e,k,gA.isString(L)?L.trim():L,p,c))===!0&&d(k,p?p.concat(L):[L],D+1)}),E.pop()}}if(!gA.isObject(A))throw new TypeError("data must be an object");return d(A),e}function _g(A){const e={"!":"%21","'":"%27","(":"%28",")":"%29","~":"%7E","%20":"+"};return encodeURIComponent(A).replace(/[!'()~]|%20/g,function(s){return e[s]})}function Za(A,e){this._pairs=[],A&&On(A,this,e)}const EB=Za.prototype;EB.append=function(e,t){this._pairs.push([e,t])};EB.toString=function(e){const t=e?function(s){return e.call(this,s,_g)}:_g;return this._pairs.map(function(n){return t(n[0])+"="+t(n[1])},"").join("&")};function AI(A){return encodeURIComponent(A).replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+")}function CB(A,e,t){if(!e)return A;const s=t&&t.encode||AI,n=gA.isFunction(t)?{serialize:t}:t,r=n&&n.serialize;let i;if(r?i=r(e,n):i=gA.isURLSearchParams(e)?e.toString():new Za(e,n).toString(s),i){const a=A.indexOf("#");a!==-1&&(A=A.slice(0,a)),A+=(A.indexOf("?")===-1?"?":"&")+i}return A}class Zg{constructor(){this.handlers=[]}use(e,t,s){return this.handlers.push({fulfilled:e,rejected:t,synchronous:s?s.synchronous:!1,runWhen:s?s.runWhen:null}),this.handlers.length-1}eject(e){this.handlers[e]&&(this.handlers[e]=null)}clear(){this.handlers&&(this.handlers=[])}forEach(e){gA.forEach(this.handlers,function(s){s!==null&&e(s)})}}const Xa={silentJSONParsing:!0,forcedJSONParsing:!0,clarifyTimeoutError:!1,legacyInterceptorReqResOrdering:!0},eI=typeof URLSearchParams<"u"?URLSearchParams:Za,tI=typeof FormData<"u"?FormData:null,oI=typeof Blob<"u"?Blob:null,sI={isBrowser:!0,classes:{URLSearchParams:eI,FormData:tI,Blob:oI},protocols:["http","https","file","blob","url","data"]},$a=typeof window<"u"&&typeof document<"u",$i=typeof navigator=="object"&&navigator||void 0,rI=$a&&(!$i||["ReactNative","NativeScript","NS"].indexOf($i.product)<0),nI=typeof WorkerGlobalScope<"u"&&self instanceof WorkerGlobalScope&&typeof self.importScripts=="function",iI=$a&&window.location.href||"http://localhost",aI=Object.freeze(Object.defineProperty({__proto__:null,hasBrowserEnv:$a,hasStandardBrowserEnv:rI,hasStandardBrowserWebWorkerEnv:nI,navigator:$i,origin:iI},Symbol.toStringTag,{value:"Module"})),Ot={...aI,...sI};function gI(A,e){return On(A,new Ot.classes.URLSearchParams,{visitor:function(t,s,n,r){return Ot.isNode&&gA.isBuffer(t)?(this.append(s,t.toString("base64")),!1):r.defaultVisitor.apply(this,arguments)},...e})}function lI(A){return gA.matchAll(/\w+|\[(\w*)]/g,A).map(e=>e[0]==="[]"?"":e[1]||e[0])}function QI(A){const e={},t=Object.keys(A);let s;const n=t.length;let r;for(s=0;s<n;s++)r=t[s],e[r]=A[r];return e}function uB(A){function e(t,s,n,r){let i=t[r++];if(i==="__proto__")return!0;const a=Number.isFinite(+i),g=r>=t.length;return i=!i&&gA.isArray(n)?n.length:i,g?(gA.hasOwnProp(n,i)?n[i]=gA.isArray(n[i])?n[i].concat(s):[n[i],s]:n[i]=s,!a):((!gA.hasOwnProp(n,i)||!gA.isObject(n[i]))&&(n[i]=[]),e(t,s,n[i],r)&&gA.isArray(n[i])&&(n[i]=QI(n[i])),!a)}if(gA.isFormData(A)&&gA.isFunction(A.entries)){const t={};return gA.forEachEntry(A,(s,n)=>{e(lI(s),n,t,0)}),t}return null}const bs=(A,e)=>A!=null&&gA.hasOwnProp(A,e)?A[e]:void 0;function BI(A,e,t){if(gA.isString(A))try{return(e||JSON.parse)(A),gA.trim(A)}catch(s){if(s.name!=="SyntaxError")throw s}return(t||JSON.stringify)(A)}const Gr={transitional:Xa,adapter:["xhr","http","fetch"],transformRequest:[function(e,t){const s=t.getContentType()||"",n=s.indexOf("application/json")>-1,r=gA.isObject(e);if(r&&gA.isHTMLForm(e)&&(e=new FormData(e)),gA.isFormData(e))return n?JSON.stringify(uB(e)):e;if(gA.isArrayBuffer(e)||gA.isBuffer(e)||gA.isStream(e)||gA.isFile(e)||gA.isBlob(e)||gA.isReadableStream(e))return e;if(gA.isArrayBufferView(e))return e.buffer;if(gA.isURLSearchParams(e))return t.setContentType("application/x-www-form-urlencoded;charset=utf-8",!1),e.toString();let a;if(r){const g=bs(this,"formSerializer");if(s.indexOf("application/x-www-form-urlencoded")>-1)return gI(e,g).toString();if((a=gA.isFileList(e))||s.indexOf("multipart/form-data")>-1){const l=bs(this,"env"),B=l&&l.FormData;return On(a?{"files[]":e}:e,B&&new B,g)}}return r||n?(t.setContentType("application/json",!1),BI(e)):e}],transformResponse:[function(e){const t=bs(this,"transitional")||Gr.transitional,s=t&&t.forcedJSONParsing,n=bs(this,"responseType"),r=n==="json";if(gA.isResponse(e)||gA.isReadableStream(e))return e;if(e&&gA.isString(e)&&(s&&!n||r)){const a=!(t&&t.silentJSONParsing)&&r;try{return JSON.parse(e,bs(this,"parseReviver"))}catch(g){if(a)throw g.name==="SyntaxError"?HA.from(g,HA.ERR_BAD_RESPONSE,this,null,bs(this,"response")):g}}return e}],timeout:0,xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",maxContentLength:-1,maxBodyLength:-1,env:{FormData:Ot.classes.FormData,Blob:Ot.classes.Blob},validateStatus:function(e){return e>=200&&e<300},headers:{common:{Accept:"application/json, text/plain, */*","Content-Type":void 0}}};gA.forEach(["delete","get","head","post","put","patch","query"],A=>{Gr.headers[A]={}});function Bi(A,e){const t=this||Gr,s=e||t,n=$t.from(s.headers);let r=s.data;return gA.forEach(A,function(a){r=a.call(t,r,n.normalize(),e?e.status:void 0)}),n.normalize(),r}function IB(A){return!!(A&&A.__CANCEL__)}let vr=class extends HA{constructor(e,t,s){super(e??"canceled",HA.ERR_CANCELED,t,s),this.name="CanceledError",this.__CANCEL__=!0}};function dB(A,e,t){const s=t.config.validateStatus;!t.status||!s||s(t.status)?A(t):e(new HA("Request failed with status code "+t.status,t.status>=400&&t.status<500?HA.ERR_BAD_REQUEST:HA.ERR_BAD_RESPONSE,t.config,t.request,t))}function cI(A){const e=/^([-+\w]{1,25}):(?:\/\/)?/.exec(A);return e&&e[1]||""}function EI(A,e){A=A||10;const t=new Array(A),s=new Array(A);let n=0,r=0,i;return e=e!==void 0?e:1e3,function(g){const l=Date.now(),B=s[r];i||(i=l),t[n]=g,s[n]=l;let u=r,E=0;for(;u!==n;)E+=t[u++],u=u%A;if(n=(n+1)%A,n===r&&(r=(r+1)%A),l-i<e)return;const c=B&&l-B;return c?Math.round(E*1e3/c):void 0}}function CI(A,e){let t=0,s=1e3/e,n,r;const i=(l,B=Date.now())=>{t=B,n=null,r&&(clearTimeout(r),r=null),A(...l)};return[(...l)=>{const B=Date.now(),u=B-t;u>=s?i(l,B):(n=l,r||(r=setTimeout(()=>{r=null,i(n)},s-u)))},()=>n&&i(n)]}const hn=(A,e,t=3)=>{let s=0;const n=EI(50,250);return CI(r=>{if(!r||typeof r.loaded!="number")return;const i=r.loaded,a=r.lengthComputable?r.total:void 0,g=a!=null?Math.min(i,a):i,l=Math.max(0,g-s),B=n(l);s=Math.max(s,g);const u={loaded:g,total:a,progress:a?g/a:void 0,bytes:l,rate:B||void 0,estimated:B&&a?(a-g)/B:void 0,event:r,lengthComputable:a!=null,[e?"download":"upload"]:!0};A(u)},t)},Xg=(A,e)=>{const t=A!=null;return[s=>e[0]({lengthComputable:t,total:A,loaded:s}),e[1]]},$g=A=>(...e)=>gA.asap(()=>A(...e)),uI=Ot.hasStandardBrowserEnv?((A,e)=>t=>(t=new URL(t,Ot.origin),A.protocol===t.protocol&&A.host===t.host&&(e||A.port===t.port)))(new URL(Ot.origin),Ot.navigator&&/(msie|trident)/i.test(Ot.navigator.userAgent)):()=>!0,II=Ot.hasStandardBrowserEnv?{write(A,e,t,s,n,r,i){if(typeof document>"u")return;const a=[`${A}=${encodeURIComponent(e)}`];gA.isNumber(t)&&a.push(`expires=${new Date(t).toUTCString()}`),gA.isString(s)&&a.push(`path=${s}`),gA.isString(n)&&a.push(`domain=${n}`),r===!0&&a.push("secure"),gA.isString(i)&&a.push(`SameSite=${i}`),document.cookie=a.join("; ")},read(A){if(typeof document>"u")return null;const e=document.cookie.split(";");for(let t=0;t<e.length;t++){const s=e[t].replace(/^\s+/,""),n=s.indexOf("=");if(n!==-1&&s.slice(0,n)===A)return decodeURIComponent(s.slice(n+1))}return null},remove(A){this.write(A,"",Date.now()-864e5,"/")}}:{write(){},read(){return null},remove(){}};function dI(A){return typeof A!="string"?!1:/^([a-z][a-z\d+\-.]*:)?\/\//i.test(A)}function hI(A,e){return e?A.replace(/\/?\/$/,"")+"/"+e.replace(/^\/+/,""):A}function hB(A,e,t){let s=!dI(e);return A&&(s||t===!1)?hI(A,e):e}const Al=A=>A instanceof $t?{...A}:A;function ms(A,e){e=e||{};const t=Object.create(null);Object.defineProperty(t,"hasOwnProperty",{__proto__:null,value:Object.prototype.hasOwnProperty,enumerable:!1,writable:!0,configurable:!0});function s(l,B,u,E){return gA.isPlainObject(l)&&gA.isPlainObject(B)?gA.merge.call({caseless:E},l,B):gA.isPlainObject(B)?gA.merge({},B):gA.isArray(B)?B.slice():B}function n(l,B,u,E){if(gA.isUndefined(B)){if(!gA.isUndefined(l))return s(void 0,l,u,E)}else return s(l,B,u,E)}function r(l,B){if(!gA.isUndefined(B))return s(void 0,B)}function i(l,B){if(gA.isUndefined(B)){if(!gA.isUndefined(l))return s(void 0,l)}else return s(void 0,B)}function a(l,B,u){if(gA.hasOwnProp(e,u))return s(l,B);if(gA.hasOwnProp(A,u))return s(void 0,l)}const g={url:r,method:r,data:r,baseURL:i,transformRequest:i,transformResponse:i,paramsSerializer:i,timeout:i,timeoutMessage:i,withCredentials:i,withXSRFToken:i,adapter:i,responseType:i,xsrfCookieName:i,xsrfHeaderName:i,onUploadProgress:i,onDownloadProgress:i,decompress:i,maxContentLength:i,maxBodyLength:i,beforeRedirect:i,transport:i,httpAgent:i,httpsAgent:i,cancelToken:i,socketPath:i,allowedSocketPaths:i,responseEncoding:i,validateStatus:a,headers:(l,B,u)=>n(Al(l),Al(B),u,!0)};return gA.forEach(Object.keys({...A,...e}),function(B){if(B==="__proto__"||B==="constructor"||B==="prototype")return;const u=gA.hasOwnProp(g,B)?g[B]:n,E=gA.hasOwnProp(A,B)?A[B]:void 0,c=gA.hasOwnProp(e,B)?e[B]:void 0,d=u(E,c,B);gA.isUndefined(d)&&u!==a||(t[B]=d)}),t}const pI=["content-type","content-length"];function fI(A,e,t){if(t!=="content-only"){A.set(e);return}Object.entries(e).forEach(([s,n])=>{pI.includes(s.toLowerCase())&&A.set(s,n)})}const mI=A=>encodeURIComponent(A).replace(/%([0-9A-F]{2})/gi,(e,t)=>String.fromCharCode(parseInt(t,16))),pB=A=>{const e=ms({},A),t=E=>gA.hasOwnProp(e,E)?e[E]:void 0,s=t("data");let n=t("withXSRFToken");const r=t("xsrfHeaderName"),i=t("xsrfCookieName");let a=t("headers");const g=t("auth"),l=t("baseURL"),B=t("allowAbsoluteUrls"),u=t("url");if(e.headers=a=$t.from(a),e.url=CB(hB(l,u,B),A.params,A.paramsSerializer),g&&a.set("Authorization","Basic "+btoa((g.username||"")+":"+(g.password?mI(g.password):""))),gA.isFormData(s)&&(Ot.hasStandardBrowserEnv||Ot.hasStandardBrowserWebWorkerEnv?a.setContentType(void 0):gA.isFunction(s.getHeaders)&&fI(a,s.getHeaders(),t("formDataHeaderPolicy"))),Ot.hasStandardBrowserEnv&&(gA.isFunction(n)&&(n=n(e)),n===!0||n==null&&uI(e.url))){const c=r&&i&&II.read(i);c&&a.set(r,c)}return e},wI=typeof XMLHttpRequest<"u",xI=wI&&function(A){return new Promise(function(t,s){const n=pB(A);let r=n.data;const i=$t.from(n.headers).normalize();let{responseType:a,onUploadProgress:g,onDownloadProgress:l}=n,B,u,E,c,d;function f(){c&&c(),d&&d(),n.cancelToken&&n.cancelToken.unsubscribe(B),n.signal&&n.signal.removeEventListener("abort",B)}let p=new XMLHttpRequest;p.open(n.method.toUpperCase(),n.url,!0),p.timeout=n.timeout;function D(){if(!p)return;const k=$t.from("getAllResponseHeaders"in p&&p.getAllResponseHeaders()),K={data:!a||a==="text"||a==="json"?p.responseText:p.response,status:p.status,statusText:p.statusText,headers:k,config:A,request:p};dB(function($){t($),f()},function($){s($),f()},K),p=null}"onloadend"in p?p.onloadend=D:p.onreadystatechange=function(){!p||p.readyState!==4||p.status===0&&!(p.responseURL&&p.responseURL.startsWith("file:"))||setTimeout(D)},p.onabort=function(){p&&(s(new HA("Request aborted",HA.ECONNABORTED,A,p)),f(),p=null)},p.onerror=function(L){const K=L&&L.message?L.message:"Network Error",W=new HA(K,HA.ERR_NETWORK,A,p);W.event=L||null,s(W),f(),p=null},p.ontimeout=function(){let L=n.timeout?"timeout of "+n.timeout+"ms exceeded":"timeout exceeded";const K=n.transitional||Xa;n.timeoutErrorMessage&&(L=n.timeoutErrorMessage),s(new HA(L,K.clarifyTimeoutError?HA.ETIMEDOUT:HA.ECONNABORTED,A,p)),f(),p=null},r===void 0&&i.setContentType(null),"setRequestHeader"in p&&gA.forEach(QB(i),function(L,K){p.setRequestHeader(K,L)}),gA.isUndefined(n.withCredentials)||(p.withCredentials=!!n.withCredentials),a&&a!=="json"&&(p.responseType=n.responseType),l&&([E,d]=hn(l,!0),p.addEventListener("progress",E)),g&&p.upload&&([u,c]=hn(g),p.upload.addEventListener("progress",u),p.upload.addEventListener("loadend",c)),(n.cancelToken||n.signal)&&(B=k=>{p&&(s(!k||k.type?new vr(null,A,p):k),p.abort(),f(),p=null)},n.cancelToken&&n.cancelToken.subscribe(B),n.signal&&(n.signal.aborted?B():n.signal.addEventListener("abort",B)));const F=cI(n.url);if(F&&!Ot.protocols.includes(F)){s(new HA("Unsupported protocol "+F+":",HA.ERR_BAD_REQUEST,A));return}p.send(r||null)})},DI=(A,e)=>{if(A=A?A.filter(Boolean):[],!e&&!A.length)return;const t=new AbortController;let s=!1;const n=function(g){if(!s){s=!0,i();const l=g instanceof Error?g:this.reason;t.abort(l instanceof HA?l:new vr(l instanceof Error?l.message:l))}};let r=e&&setTimeout(()=>{r=null,n(new HA(`timeout of ${e}ms exceeded`,HA.ETIMEDOUT))},e);const i=()=>{A&&(r&&clearTimeout(r),r=null,A.forEach(g=>{g.unsubscribe?g.unsubscribe(n):g.removeEventListener("abort",n)}),A=null)};A.forEach(g=>g.addEventListener("abort",n));const{signal:a}=t;return a.unsubscribe=()=>gA.asap(i),a},yI=function*(A,e){let t=A.byteLength;if(t<e){yield A;return}let s=0,n;for(;s<t;)n=s+e,yield A.slice(s,n),s=n},NI=async function*(A,e){for await(const t of kI(A))yield*yI(t,e)},kI=async function*(A){if(A[Symbol.asyncIterator]){yield*A;return}const e=A.getReader();try{for(;;){const{done:t,value:s}=await e.read();if(t)break;yield s}}finally{await e.cancel()}},el=(A,e,t,s)=>{const n=NI(A,e);let r=0,i,a=g=>{i||(i=!0,s&&s(g))};return new ReadableStream({async pull(g){try{const{done:l,value:B}=await n.next();if(l){a(),g.close();return}let u=B.byteLength;if(t){let E=r+=u;t(E)}g.enqueue(new Uint8Array(B))}catch(l){throw a(l),l}},cancel(g){return a(g),n.return()}},{highWaterMark:2})};function MI(A){if(!A||typeof A!="string"||!A.startsWith("data:"))return 0;const e=A.indexOf(",");if(e<0)return 0;const t=A.slice(5,e),s=A.slice(e+1);if(/;base64/i.test(t)){let i=s.length;const a=s.length;for(let c=0;c<a;c++)if(s.charCodeAt(c)===37&&c+2<a){const d=s.charCodeAt(c+1),f=s.charCodeAt(c+2);(d>=48&&d<=57||d>=65&&d<=70||d>=97&&d<=102)&&(f>=48&&f<=57||f>=65&&f<=70||f>=97&&f<=102)&&(i-=2,c+=2)}let g=0,l=a-1;const B=c=>c>=2&&s.charCodeAt(c-2)===37&&s.charCodeAt(c-1)===51&&(s.charCodeAt(c)===68||s.charCodeAt(c)===100);l>=0&&(s.charCodeAt(l)===61?(g++,l--):B(l)&&(g++,l-=3)),g===1&&l>=0&&(s.charCodeAt(l)===61||B(l))&&g++;const E=Math.floor(i/4)*3-(g||0);return E>0?E:0}if(typeof Buffer<"u"&&typeof Buffer.byteLength=="function")return Buffer.byteLength(s,"utf8");let r=0;for(let i=0,a=s.length;i<a;i++){const g=s.charCodeAt(i);if(g<128)r+=1;else if(g<2048)r+=2;else if(g>=55296&&g<=56319&&i+1<a){const l=s.charCodeAt(i+1);l>=56320&&l<=57343?(r+=4,i++):r+=3}else r+=3}return r}const Ag="1.16.1",tl=64*1024,{isFunction:Wr}=gA,ol=(A,...e)=>{try{return!!A(...e)}catch{return!1}},bI=A=>{const e=gA.global!==void 0&&gA.global!==null?gA.global:globalThis,{ReadableStream:t,TextEncoder:s}=e;A=gA.merge.call({skipUndefined:!0},{Request:e.Request,Response:e.Response},A);const{fetch:n,Request:r,Response:i}=A,a=n?Wr(n):typeof fetch=="function",g=Wr(r),l=Wr(i);if(!a)return!1;const B=a&&Wr(t),u=a&&(typeof s=="function"?(D=>F=>D.encode(F))(new s):async D=>new Uint8Array(await new r(D).arrayBuffer())),E=g&&B&&ol(()=>{let D=!1;const F=new r(Ot.origin,{body:new t,method:"POST",get duplex(){return D=!0,"half"}}),k=F.headers.has("Content-Type");return F.body!=null&&F.body.cancel(),D&&!k}),c=l&&B&&ol(()=>gA.isReadableStream(new i("").body)),d={stream:c&&(D=>D.body)};a&&["text","arrayBuffer","blob","formData","stream"].forEach(D=>{!d[D]&&(d[D]=(F,k)=>{let L=F&&F[D];if(L)return L.call(F);throw new HA(`Response type '${D}' is not supported`,HA.ERR_NOT_SUPPORT,k)})});const f=async D=>{if(D==null)return 0;if(gA.isBlob(D))return D.size;if(gA.isSpecCompliantForm(D))return(await new r(Ot.origin,{method:"POST",body:D}).arrayBuffer()).byteLength;if(gA.isArrayBufferView(D)||gA.isArrayBuffer(D))return D.byteLength;if(gA.isURLSearchParams(D)&&(D=D+""),gA.isString(D))return(await u(D)).byteLength},p=async(D,F)=>{const k=gA.toFiniteNumber(D.getContentLength());return k??f(F)};return async D=>{let{url:F,method:k,data:L,signal:K,cancelToken:W,timeout:$,onDownloadProgress:X,onUploadProgress:U,responseType:O,headers:T,withCredentials:H="same-origin",fetchOptions:x,maxContentLength:Q,maxBodyLength:I}=pB(D);const N=gA.isNumber(Q)&&Q>-1,G=gA.isNumber(I)&&I>-1;let J=n||fetch;O=O?(O+"").toLowerCase():"text";let q=DI([K,W&&W.toAbortSignal()],$),j=null;const R=q&&q.unsubscribe&&(()=>{q.unsubscribe()});let C;try{if(N&&typeof F=="string"&&F.startsWith("data:")&&MI(F)>Q)throw new HA("maxContentLength size of "+Q+" exceeded",HA.ERR_BAD_RESPONSE,D,j);if(G&&k!=="get"&&k!=="head"){const rA=await p(T,L);if(typeof rA=="number"&&isFinite(rA)&&rA>I)throw new HA("Request body larger than maxBodyLength limit",HA.ERR_BAD_REQUEST,D,j)}if(U&&E&&k!=="get"&&k!=="head"&&(C=await p(T,L))!==0){let rA=new r(F,{method:"POST",body:L,duplex:"half"}),sA;if(gA.isFormData(L)&&(sA=rA.headers.get("content-type"))&&T.setContentType(sA),rA.body){const[bA,LA]=Xg(C,hn($g(U)));L=el(rA.body,tl,bA,LA)}}gA.isString(H)||(H=H?"include":"omit");const h=g&&"credentials"in r.prototype;if(gA.isFormData(L)){const rA=T.getContentType();rA&&/^multipart\/form-data/i.test(rA)&&!/boundary=/i.test(rA)&&T.delete("content-type")}T.set("User-Agent","axios/"+Ag,!1);const v={...x,signal:q,method:k.toUpperCase(),headers:QB(T.normalize()),body:L,duplex:"half",credentials:h?H:void 0};j=g&&new r(F,v);let S=await(g?J(j,x):J(F,v));if(N){const rA=gA.toFiniteNumber(S.headers.get("content-length"));if(rA!=null&&rA>Q)throw new HA("maxContentLength size of "+Q+" exceeded",HA.ERR_BAD_RESPONSE,D,j)}const Z=c&&(O==="stream"||O==="response");if(c&&S.body&&(X||N||Z&&R)){const rA={};["status","statusText","headers"].forEach(PA=>{rA[PA]=S[PA]});const sA=gA.toFiniteNumber(S.headers.get("content-length")),[bA,LA]=X&&Xg(sA,hn($g(X),!0))||[];let QA=0;const qA=PA=>{if(N&&(QA=PA,QA>Q))throw new HA("maxContentLength size of "+Q+" exceeded",HA.ERR_BAD_RESPONSE,D,j);bA&&bA(PA)};S=new i(el(S.body,tl,qA,()=>{LA&&LA(),R&&R()}),rA)}O=O||"text";let eA=await d[gA.findKey(d,O)||"text"](S,D);if(N&&!c&&!Z){let rA;if(eA!=null&&(typeof eA.byteLength=="number"?rA=eA.byteLength:typeof eA.size=="number"?rA=eA.size:typeof eA=="string"&&(rA=typeof s=="function"?new s().encode(eA).byteLength:eA.length)),typeof rA=="number"&&rA>Q)throw new HA("maxContentLength size of "+Q+" exceeded",HA.ERR_BAD_RESPONSE,D,j)}return!Z&&R&&R(),await new Promise((rA,sA)=>{dB(rA,sA,{data:eA,headers:$t.from(S.headers),status:S.status,statusText:S.statusText,config:D,request:j})})}catch(h){if(R&&R(),q&&q.aborted&&q.reason instanceof HA){const v=q.reason;throw v.config=D,j&&(v.request=j),h!==v&&(v.cause=h),v}throw h&&h.name==="TypeError"&&/Load failed|fetch/i.test(h.message)?Object.assign(new HA("Network Error",HA.ERR_NETWORK,D,j,h&&h.response),{cause:h.cause||h}):HA.from(h,h&&h.code,D,j,h&&h.response)}}},FI=new Map,fB=A=>{let e=A&&A.env||{};const{fetch:t,Request:s,Response:n}=e,r=[s,n,t];let i=r.length,a=i,g,l,B=FI;for(;a--;)g=r[a],l=B.get(g),l===void 0&&B.set(g,l=a?new Map:bI(e)),B=l;return l};fB();const eg={http:Zu,xhr:xI,fetch:{get:fB}};gA.forEach(eg,(A,e)=>{if(A){try{Object.defineProperty(A,"name",{__proto__:null,value:e})}catch{}Object.defineProperty(A,"adapterName",{__proto__:null,value:e})}});const sl=A=>`- ${A}`,GI=A=>gA.isFunction(A)||A===null||A===!1;function vI(A,e){A=gA.isArray(A)?A:[A];const{length:t}=A;let s,n;const r={};for(let i=0;i<t;i++){s=A[i];let a;if(n=s,!GI(s)&&(n=eg[(a=String(s)).toLowerCase()],n===void 0))throw new HA(`Unknown adapter '${a}'`);if(n&&(gA.isFunction(n)||(n=n.get(e))))break;r[a||"#"+i]=n}if(!n){const i=Object.entries(r).map(([g,l])=>`adapter ${g} `+(l===!1?"is not supported by the environment":"is not available in the build"));let a=t?i.length>1?`since :
|
|
4
|
+
`+i.map(sl).join(`
|
|
5
|
+
`):" "+sl(i[0]):"as no adapter specified";throw new HA("There is no suitable adapter to dispatch the request "+a,"ERR_NOT_SUPPORT")}return n}const mB={getAdapter:vI,adapters:eg};function ci(A){if(A.cancelToken&&A.cancelToken.throwIfRequested(),A.signal&&A.signal.aborted)throw new vr(null,A)}function rl(A){return ci(A),A.headers=$t.from(A.headers),A.data=Bi.call(A,A.transformRequest),["post","put","patch"].indexOf(A.method)!==-1&&A.headers.setContentType("application/x-www-form-urlencoded",!1),mB.getAdapter(A.adapter||Gr.adapter,A)(A).then(function(s){ci(A),A.response=s;try{s.data=Bi.call(A,A.transformResponse,s)}finally{delete A.response}return s.headers=$t.from(s.headers),s},function(s){if(!IB(s)&&(ci(A),s&&s.response)){A.response=s.response;try{s.response.data=Bi.call(A,A.transformResponse,s.response)}finally{delete A.response}s.response.headers=$t.from(s.response.headers)}return Promise.reject(s)})}const qn={};["object","boolean","number","function","string","symbol"].forEach((A,e)=>{qn[A]=function(s){return typeof s===A||"a"+(e<1?"n ":" ")+A}});const nl={};qn.transitional=function(e,t,s){function n(r,i){return"[Axios v"+Ag+"] Transitional option '"+r+"'"+i+(s?". "+s:"")}return(r,i,a)=>{if(e===!1)throw new HA(n(i," has been removed"+(t?" in "+t:"")),HA.ERR_DEPRECATED);return t&&!nl[i]&&(nl[i]=!0,console.warn(n(i," has been deprecated since v"+t+" and will be removed in the near future"))),e?e(r,i,a):!0}};qn.spelling=function(e){return(t,s)=>(console.warn(`${s} is likely a misspelling of ${e}`),!0)};function SI(A,e,t){if(typeof A!="object")throw new HA("options must be an object",HA.ERR_BAD_OPTION_VALUE);const s=Object.keys(A);let n=s.length;for(;n-- >0;){const r=s[n],i=Object.prototype.hasOwnProperty.call(e,r)?e[r]:void 0;if(i){const a=A[r],g=a===void 0||i(a,r,A);if(g!==!0)throw new HA("option "+r+" must be "+g,HA.ERR_BAD_OPTION_VALUE);continue}if(t!==!0)throw new HA("Unknown option "+r,HA.ERR_BAD_OPTION)}}const gn={assertOptions:SI,validators:qn},Bo=gn.validators;let hs=class{constructor(e){this.defaults=e||{},this.interceptors={request:new Zg,response:new Zg}}async request(e,t){try{return await this._request(e,t)}catch(s){if(s instanceof Error){let n={};Error.captureStackTrace?Error.captureStackTrace(n):n=new Error;const r=(()=>{if(!n.stack)return"";const i=n.stack.indexOf(`
|
|
6
|
+
`);return i===-1?"":n.stack.slice(i+1)})();try{if(!s.stack)s.stack=r;else if(r){const i=r.indexOf(`
|
|
7
|
+
`),a=i===-1?-1:r.indexOf(`
|
|
8
|
+
`,i+1),g=a===-1?"":r.slice(a+1);String(s.stack).endsWith(g)||(s.stack+=`
|
|
9
|
+
`+r)}}catch{}}throw s}}_request(e,t){typeof e=="string"?(t=t||{},t.url=e):t=e||{},t=ms(this.defaults,t);const{transitional:s,paramsSerializer:n,headers:r}=t;s!==void 0&&gn.assertOptions(s,{silentJSONParsing:Bo.transitional(Bo.boolean),forcedJSONParsing:Bo.transitional(Bo.boolean),clarifyTimeoutError:Bo.transitional(Bo.boolean),legacyInterceptorReqResOrdering:Bo.transitional(Bo.boolean)},!1),n!=null&&(gA.isFunction(n)?t.paramsSerializer={serialize:n}:gn.assertOptions(n,{encode:Bo.function,serialize:Bo.function},!0)),t.allowAbsoluteUrls!==void 0||(this.defaults.allowAbsoluteUrls!==void 0?t.allowAbsoluteUrls=this.defaults.allowAbsoluteUrls:t.allowAbsoluteUrls=!0),gn.assertOptions(t,{baseUrl:Bo.spelling("baseURL"),withXsrfToken:Bo.spelling("withXSRFToken")},!0),t.method=(t.method||this.defaults.method||"get").toLowerCase();let i=r&&gA.merge(r.common,r[t.method]);r&&gA.forEach(["delete","get","head","post","put","patch","query","common"],d=>{delete r[d]}),t.headers=$t.concat(i,r);const a=[];let g=!0;this.interceptors.request.forEach(function(f){if(typeof f.runWhen=="function"&&f.runWhen(t)===!1)return;g=g&&f.synchronous;const p=t.transitional||Xa;p&&p.legacyInterceptorReqResOrdering?a.unshift(f.fulfilled,f.rejected):a.push(f.fulfilled,f.rejected)});const l=[];this.interceptors.response.forEach(function(f){l.push(f.fulfilled,f.rejected)});let B,u=0,E;if(!g){const d=[rl.bind(this),void 0];for(d.unshift(...a),d.push(...l),E=d.length,B=Promise.resolve(t);u<E;)B=B.then(d[u++],d[u++]);return B}E=a.length;let c=t;for(;u<E;){const d=a[u++],f=a[u++];try{c=d(c)}catch(p){f.call(this,p);break}}try{B=rl.call(this,c)}catch(d){return Promise.reject(d)}for(u=0,E=l.length;u<E;)B=B.then(l[u++],l[u++]);return B}getUri(e){e=ms(this.defaults,e);const t=hB(e.baseURL,e.url,e.allowAbsoluteUrls);return CB(t,e.params,e.paramsSerializer)}};gA.forEach(["delete","get","head","options"],function(e){hs.prototype[e]=function(t,s){return this.request(ms(s||{},{method:e,url:t,data:(s||{}).data}))}});gA.forEach(["post","put","patch","query"],function(e){function t(s){return function(r,i,a){return this.request(ms(a||{},{method:e,headers:s?{"Content-Type":"multipart/form-data"}:{},url:r,data:i}))}}hs.prototype[e]=t(),e!=="query"&&(hs.prototype[e+"Form"]=t(!0))});let UI=class wB{constructor(e){if(typeof e!="function")throw new TypeError("executor must be a function.");let t;this.promise=new Promise(function(r){t=r});const s=this;this.promise.then(n=>{if(!s._listeners)return;let r=s._listeners.length;for(;r-- >0;)s._listeners[r](n);s._listeners=null}),this.promise.then=n=>{let r;const i=new Promise(a=>{s.subscribe(a),r=a}).then(n);return i.cancel=function(){s.unsubscribe(r)},i},e(function(r,i,a){s.reason||(s.reason=new vr(r,i,a),t(s.reason))})}throwIfRequested(){if(this.reason)throw this.reason}subscribe(e){if(this.reason){e(this.reason);return}this._listeners?this._listeners.push(e):this._listeners=[e]}unsubscribe(e){if(!this._listeners)return;const t=this._listeners.indexOf(e);t!==-1&&this._listeners.splice(t,1)}toAbortSignal(){const e=new AbortController,t=s=>{e.abort(s)};return this.subscribe(t),e.signal.unsubscribe=()=>this.unsubscribe(t),e.signal}static source(){let e;return{token:new wB(function(n){e=n}),cancel:e}}};function RI(A){return function(t){return A.apply(null,t)}}function KI(A){return gA.isObject(A)&&A.isAxiosError===!0}const Aa={Continue:100,SwitchingProtocols:101,Processing:102,EarlyHints:103,Ok:200,Created:201,Accepted:202,NonAuthoritativeInformation:203,NoContent:204,ResetContent:205,PartialContent:206,MultiStatus:207,AlreadyReported:208,ImUsed:226,MultipleChoices:300,MovedPermanently:301,Found:302,SeeOther:303,NotModified:304,UseProxy:305,Unused:306,TemporaryRedirect:307,PermanentRedirect:308,BadRequest:400,Unauthorized:401,PaymentRequired:402,Forbidden:403,NotFound:404,MethodNotAllowed:405,NotAcceptable:406,ProxyAuthenticationRequired:407,RequestTimeout:408,Conflict:409,Gone:410,LengthRequired:411,PreconditionFailed:412,PayloadTooLarge:413,UriTooLong:414,UnsupportedMediaType:415,RangeNotSatisfiable:416,ExpectationFailed:417,ImATeapot:418,MisdirectedRequest:421,UnprocessableEntity:422,Locked:423,FailedDependency:424,TooEarly:425,UpgradeRequired:426,PreconditionRequired:428,TooManyRequests:429,RequestHeaderFieldsTooLarge:431,UnavailableForLegalReasons:451,InternalServerError:500,NotImplemented:501,BadGateway:502,ServiceUnavailable:503,GatewayTimeout:504,HttpVersionNotSupported:505,VariantAlsoNegotiates:506,InsufficientStorage:507,LoopDetected:508,NotExtended:510,NetworkAuthenticationRequired:511,WebServerIsDown:521,ConnectionTimedOut:522,OriginIsUnreachable:523,TimeoutOccurred:524,SslHandshakeFailed:525,InvalidSslCertificate:526};Object.entries(Aa).forEach(([A,e])=>{Aa[e]=A});function xB(A){const e=new hs(A),t=oB(hs.prototype.request,e);return gA.extend(t,hs.prototype,e,{allOwnKeys:!0}),gA.extend(t,e,null,{allOwnKeys:!0}),t.create=function(n){return xB(ms(A,n))},t}const pt=xB(Gr);pt.Axios=hs;pt.CanceledError=vr;pt.CancelToken=UI;pt.isCancel=IB;pt.VERSION=Ag;pt.toFormData=On;pt.AxiosError=HA;pt.Cancel=pt.CanceledError;pt.all=function(e){return Promise.all(e)};pt.spread=RI;pt.isAxiosError=KI;pt.mergeConfig=ms;pt.AxiosHeaders=$t;pt.formToJSON=A=>uB(gA.isHTMLForm(A)?new FormData(A):A);pt.getAdapter=mB.getAdapter;pt.HttpStatusCode=Aa;pt.default=pt;const{Axios:Ck,AxiosError:uk,CanceledError:Ik,isCancel:dk,CancelToken:hk,VERSION:pk,all:fk,Cancel:mk,isAxiosError:wk,spread:xk,toFormData:Dk,AxiosHeaders:yk,HttpStatusCode:Nk,formToJSON:kk,getAdapter:Mk,mergeConfig:bk,create:Fk}=pt,LI=({onRequest:A,onSseError:e,onSseEvent:t,responseTransformer:s,responseValidator:n,sseDefaultRetryDelay:r,sseMaxRetryAttempts:i,sseMaxRetryDelay:a,sseSleepFn:g,url:l,...B})=>{let u;const E=g??(f=>new Promise(p=>setTimeout(p,f)));return{stream:async function*(){let f=r??3e3,p=0;const D=B.signal??new AbortController().signal;for(;!D.aborted;){p++;const F=B.headers instanceof Headers?B.headers:new Headers(B.headers);u!==void 0&&F.set("Last-Event-ID",u);try{const k={redirect:"follow",...B,body:B.serializedBody,headers:F,signal:D};let L=new Request(l,k);A&&(L=await A(l,k));const W=await(B.fetch??globalThis.fetch)(L);if(!W.ok)throw new Error(`SSE failed: ${W.status} ${W.statusText}`);if(!W.body)throw new Error("No body in SSE response");const $=W.body.pipeThrough(new TextDecoderStream).getReader();let X="";const U=()=>{try{$.cancel()}catch{}};D.addEventListener("abort",U);try{for(;;){const{done:O,value:T}=await $.read();if(O)break;X+=T;const H=X.split(`
|
|
10
|
+
|
|
11
|
+
`);X=H.pop()??"";for(const x of H){const Q=x.split(`
|
|
12
|
+
`),I=[];let N;for(const q of Q)if(q.startsWith("data:"))I.push(q.replace(/^data:\s*/,""));else if(q.startsWith("event:"))N=q.replace(/^event:\s*/,"");else if(q.startsWith("id:"))u=q.replace(/^id:\s*/,"");else if(q.startsWith("retry:")){const j=Number.parseInt(q.replace(/^retry:\s*/,""),10);Number.isNaN(j)||(f=j)}let G,J=!1;if(I.length){const q=I.join(`
|
|
13
|
+
`);try{G=JSON.parse(q),J=!0}catch{G=q}}J&&(n&&await n(G),s&&(G=await s(G))),t?.({data:G,event:N,id:u,retry:f}),I.length&&(yield G)}}}finally{D.removeEventListener("abort",U),$.releaseLock()}break}catch(k){if(e?.(k),i!==void 0&&p>=i)break;const L=Math.min(f*2**(p-1),a??3e4);await E(L)}}}()}},JI=A=>{switch(A){case"label":return".";case"matrix":return";";case"simple":return",";default:return"&"}},jI=A=>{switch(A){case"form":return",";case"pipeDelimited":return"|";case"spaceDelimited":return"%20";default:return","}},TI=A=>{switch(A){case"label":return".";case"matrix":return";";case"simple":return",";default:return"&"}},DB=({allowReserved:A,explode:e,name:t,style:s,value:n})=>{if(!e){const a=(A?n:n.map(g=>encodeURIComponent(g))).join(jI(s));switch(s){case"label":return`.${a}`;case"matrix":return`;${t}=${a}`;case"simple":return a;default:return`${t}=${a}`}}const r=JI(s),i=n.map(a=>s==="label"||s==="simple"?A?a:encodeURIComponent(a):Yn({allowReserved:A,name:t,value:a})).join(r);return s==="label"||s==="matrix"?r+i:i},Yn=({allowReserved:A,name:e,value:t})=>{if(t==null)return"";if(typeof t=="object")throw new Error("Deeply-nested arrays/objects aren’t supported. Provide your own `querySerializer()` to handle these.");return`${e}=${A?t:encodeURIComponent(t)}`},yB=({allowReserved:A,explode:e,name:t,style:s,value:n,valueOnly:r})=>{if(n instanceof Date)return r?n.toISOString():`${t}=${n.toISOString()}`;if(s!=="deepObject"&&!e){let g=[];Object.entries(n).forEach(([B,u])=>{g=[...g,B,A?u:encodeURIComponent(u)]});const l=g.join(",");switch(s){case"form":return`${t}=${l}`;case"label":return`.${l}`;case"matrix":return`;${t}=${l}`;default:return l}}const i=TI(s),a=Object.entries(n).map(([g,l])=>Yn({allowReserved:A,name:s==="deepObject"?`${t}[${g}]`:g,value:l})).join(i);return s==="label"||s==="matrix"?i+a:a},OI=/\{[^{}]+\}/g,qI=({path:A,url:e})=>{let t=e;const s=e.match(OI);if(s)for(const n of s){let r=!1,i=n.substring(1,n.length-1),a="simple";i.endsWith("*")&&(r=!0,i=i.substring(0,i.length-1)),i.startsWith(".")?(i=i.substring(1),a="label"):i.startsWith(";")&&(i=i.substring(1),a="matrix");const g=A[i];if(g==null)continue;if(Array.isArray(g)){t=t.replace(n,DB({explode:r,name:i,style:a,value:g}));continue}if(typeof g=="object"){t=t.replace(n,yB({explode:r,name:i,style:a,value:g,valueOnly:!0}));continue}if(a==="matrix"){t=t.replace(n,`;${Yn({name:i,value:g})}`);continue}const l=encodeURIComponent(a==="label"?`.${g}`:g);t=t.replace(n,l)}return t},YI=({baseUrl:A,path:e,query:t,querySerializer:s,url:n})=>{const r=n.startsWith("/")?n:`/${n}`;let i=(A??"")+r;e&&(i=qI({path:e,url:i}));let a=t?s(t):"";return a.startsWith("?")&&(a=a.substring(1)),a&&(i+=`?${a}`),i};function HI(A){const e=A.body!==void 0;if(e&&A.bodySerializer)return"serializedBody"in A?A.serializedBody!==void 0&&A.serializedBody!==""?A.serializedBody:null:A.body!==""?A.body:null;if(e)return A.body}const PI=async(A,e)=>{const t=typeof e=="function"?await e(A):e;if(t)return A.scheme==="bearer"?`Bearer ${t}`:A.scheme==="basic"?`Basic ${btoa(t)}`:t},WI=({allowReserved:A,array:e,object:t}={})=>n=>{const r=[];if(n&&typeof n=="object")for(const i in n){const a=n[i];if(a!=null)if(Array.isArray(a)){const g=DB({allowReserved:A,explode:!0,name:i,style:"form",value:a,...e});g&&r.push(g)}else if(typeof a=="object"){const g=yB({allowReserved:A,explode:!0,name:i,style:"deepObject",value:a,...t});g&&r.push(g)}else{const g=Yn({allowReserved:A,name:i,value:a});g&&r.push(g)}}return r.join("&")},zI=(A,e)=>e?e in A.headers||A.query?.[e]?!0:"Cookie"in A.headers&&A.headers.Cookie&&typeof A.headers.Cookie=="string"?A.headers.Cookie.includes(`${e}=`):!1:!1,VI=async({security:A,...e})=>{for(const t of A){if(zI(e,t.name))continue;const s=await PI(t,e.auth);if(!s)continue;const n=t.name??"Authorization";switch(t.in){case"query":e.query||(e.query={}),e.query[n]=s;break;case"cookie":{const r=`${n}=${s}`;"Cookie"in e.headers&&e.headers.Cookie?e.headers.Cookie=`${e.headers.Cookie}; ${r}`:e.headers.Cookie=r;break}default:e.headers[n]=s;break}}},il=A=>{const e=A.axios?.defaults?.baseURL,t=A.baseURL&&typeof A.baseURL=="string"?A.baseURL:e;return YI({baseUrl:t,path:A.path,query:A.paramsSerializer?void 0:A.query,querySerializer:typeof A.querySerializer=="function"?A.querySerializer:WI(A.querySerializer),url:A.url})},al=(A,e)=>{const t={...A,...e};return t.headers=ea(A.headers,e.headers),t},_I=["common","delete","get","head","patch","post","put"],ea=(...A)=>{const e={};for(const t of A){if(!t||typeof t!="object")continue;const s=Object.entries(t);for(const[n,r]of s)if(_I.includes(n)&&typeof r=="object")e[n]={...e[n],...r};else if(r===null)delete e[n];else if(Array.isArray(r))for(const i of r)e[n]=[...e[n]??[],i];else r!==void 0&&(e[n]=typeof r=="object"?JSON.stringify(r):r)}return e},NB=(A={})=>({...A}),ZI=(A={})=>{let e=al(NB(),A),t;if(e.axios&&!("Axios"in e.axios))t=e.axios;else{const{auth:l,...B}=e;t=pt.create(B)}const s=()=>({...e}),n=l=>(e=al(e,l),t.defaults={...t.defaults,...e,headers:ea(t.defaults.headers,e.headers)},s()),r=async l=>{const B={...e,...l,axios:l.axios??e.axios??t,headers:ea(e.headers,l.headers)};B.security&&await VI({...B,security:B.security}),B.requestValidator&&await B.requestValidator(B),B.body!==void 0&&B.bodySerializer&&(B.body=B.bodySerializer(B.body));const u=il(B);return{opts:B,url:u}},i=async l=>{const{opts:B,url:u}=await r(l);try{const E=B.axios,{auth:c,...d}=B,f=await E({...d,baseURL:"",data:HI(B),headers:B.headers,params:B.paramsSerializer?B.query:void 0,url:u});let{data:p}=f;return B.responseType==="json"&&(B.responseValidator&&await B.responseValidator(p),B.responseTransformer&&(p=await B.responseTransformer(p))),{...f,data:p??{}}}catch(E){const c=E;if(B.throwOnError)throw c;return c.error=c.response?.data??{},c}},a=l=>B=>i({...B,method:l}),g=l=>async B=>{const{opts:u,url:E}=await r(B);return LI({...u,body:u.body,headers:u.headers,method:l,signal:u.signal,url:E})};return{buildUrl:il,connect:a("CONNECT"),delete:a("DELETE"),get:a("GET"),getConfig:s,head:a("HEAD"),instance:t,options:a("OPTIONS"),patch:a("PATCH"),post:a("POST"),put:a("PUT"),request:i,setConfig:n,sse:{connect:g("CONNECT"),delete:g("DELETE"),get:g("GET"),head:g("HEAD"),options:g("OPTIONS"),patch:g("PATCH"),post:g("POST"),put:g("PUT"),trace:g("TRACE")},trace:a("TRACE")}},XI=(A={})=>({...A,baseURL:A.baseURL}),wA=ZI(XI(NB())),$I=A=>(A?.client??wA).get({responseType:"json",url:"/v1/sessions",...A}),Ad=A=>(A?.client??wA).post({responseType:"json",url:"/v1/sessions",...A,headers:{"Content-Type":"application/json",...A?.headers}}),ed=A=>(A.client??wA).delete({responseType:"json",url:"/v1/sessions/{sessionId}",...A}),td=A=>(A.client??wA).patch({responseType:"json",url:"/v1/sessions/{sessionId}",...A,headers:{"Content-Type":"application/json",...A.headers}}),gl=A=>(A.client??wA).delete({responseType:"json",url:"/v1/sessions/{sessionId}/abort",...A}),od=A=>(A.client??wA).get({responseType:"json",url:"/v1/sessions/{sessionId}/queue",...A}),sd=A=>(A.client??wA).delete({responseType:"json",url:"/v1/sessions/{sessionId}/queue/{messageId}",...A}),rd=A=>(A.client??wA).get({responseType:"json",url:"/v1/sessions/{sessionId}/share",...A}),nd=A=>(A.client??wA).post({responseType:"json",url:"/v1/sessions/{sessionId}/share",...A}),id=A=>(A.client??wA).put({responseType:"json",url:"/v1/sessions/{sessionId}/share",...A}),ad=A=>(A.client??wA).post({responseType:"json",url:"/v1/sessions/{sessionId}/messages/{messageId}/retry",...A}),gd=A=>(A.client??wA).post({responseType:"json",url:"/v1/sessions/{id}/approval",...A,headers:{"Content-Type":"application/json",...A.headers}}),ld=A=>(A.client??wA).get({responseType:"json",url:"/v1/sessions/{id}/approval/pending",...A}),Qd=A=>(A.client??wA).get({responseType:"json",url:"/v1/sessions/{id}/messages",...A}),Bd=A=>(A.client??wA).post({responseType:"json",url:"/v1/sessions/{id}/messages",...A,headers:{"Content-Type":"application/json",...A.headers}}),cd=A=>(A?.client??wA).get({responseType:"json",url:"/v1/config/cwd",...A}),Ed=A=>(A?.client??wA).get({responseType:"json",url:"/v1/config",...A}),Cd=A=>(A.client??wA).post({responseType:"json",url:"/v1/config/providers/discover-models",...A,headers:{"Content-Type":"application/json",...A.headers}}),ud=A=>(A.client??wA).delete({responseType:"json",url:"/v1/config/providers/{provider}",...A}),Id=A=>(A.client??wA).put({responseType:"json",url:"/v1/config/providers/{provider}",...A,headers:{"Content-Type":"application/json",...A.headers}}),dd=A=>(A.client??wA).get({responseType:"json",url:"/v1/config/providers/{provider}/models",...A}),hd=A=>(A?.client??wA).get({responseType:"json",url:"/v1/config/models",...A}),pd=A=>(A.client??wA).patch({responseType:"json",url:"/v1/config/defaults",...A,headers:{"Content-Type":"application/json",...A.headers}}),fd=A=>(A?.client??wA).get({responseType:"json",url:"/v1/files",...A}),md=A=>(A?.client??wA).get({responseType:"json",url:"/v1/files/search",...A}),wd=A=>(A?.client??wA).get({responseType:"json",url:"/v1/files/tree",...A}),xd=A=>(A.client??wA).get({responseType:"json",url:"/v1/files/read",...A}),Dd=A=>(A?.client??wA).get({responseType:"json",url:"/v1/git/status",...A}),yd=A=>(A?.client??wA).get({responseType:"json",url:"/v1/git/branch",...A}),ll=A=>(A.client??wA).get({responseType:"json",url:"/v1/git/diff",...A}),Nd=A=>(A.client??wA).post({responseType:"json",url:"/v1/git/stage",...A,headers:{"Content-Type":"application/json",...A.headers}}),kd=A=>(A.client??wA).post({responseType:"json",url:"/v1/git/unstage",...A,headers:{"Content-Type":"application/json",...A.headers}}),Md=A=>(A.client??wA).post({responseType:"json",url:"/v1/git/restore",...A,headers:{"Content-Type":"application/json",...A.headers}}),bd=A=>(A.client??wA).post({responseType:"json",url:"/v1/git/delete",...A,headers:{"Content-Type":"application/json",...A.headers}}),Fd=A=>(A.client??wA).post({responseType:"json",url:"/v1/git/commit",...A,headers:{"Content-Type":"application/json",...A.headers}}),Gd=A=>(A?.client??wA).post({responseType:"json",url:"/v1/git/generate-commit-message",...A,headers:{"Content-Type":"application/json",...A?.headers}}),vd=A=>(A?.client??wA).post({responseType:"json",url:"/v1/git/push",...A,headers:{"Content-Type":"application/json",...A?.headers}}),Sd=A=>(A?.client??wA).post({responseType:"json",url:"/v1/git/pull",...A,headers:{"Content-Type":"application/json",...A?.headers}}),Ud=A=>(A?.client??wA).post({responseType:"json",url:"/v1/git/init",...A,headers:{"Content-Type":"application/json",...A?.headers}}),Rd=A=>(A.client??wA).delete({responseType:"json",url:"/v1/git/remotes",...A,headers:{"Content-Type":"application/json",...A.headers}}),Kd=A=>(A?.client??wA).get({responseType:"json",url:"/v1/git/remotes",...A}),Ld=A=>(A.client??wA).post({responseType:"json",url:"/v1/git/remotes",...A,headers:{"Content-Type":"application/json",...A.headers}}),Jd=A=>(A?.client??wA).get({responseType:"json",url:"/v1/terminals",...A}),jd=A=>(A.client??wA).post({responseType:"json",url:"/v1/terminals",...A,headers:{"Content-Type":"application/json",...A.headers}}),Td=A=>(A.client??wA).delete({responseType:"json",url:"/v1/terminals/{id}",...A}),Od=A=>(A.client??wA).get({responseType:"json",url:"/v1/sessions/{sessionId}/files",...A}),qd=A=>(A.client??wA).post({responseType:"json",url:"/v1/sessions/{sessionId}/branch",...A,headers:{"Content-Type":"application/json",...A.headers}}),Yd=A=>(A.client??wA).get({responseType:"json",url:"/v1/sessions/{sessionId}/branches",...A}),Hd=A=>(A.client??wA).get({responseType:"json",url:"/v1/sessions/{sessionId}/parent",...A}),Pd=A=>(A.client??wA).get({responseType:"json",url:"/v1/sessions/{parentId}/research",...A}),Wd=A=>(A.client??wA).post({responseType:"json",url:"/v1/sessions/{parentId}/research",...A,headers:{"Content-Type":"application/json",...A.headers}}),zd=A=>(A.client??wA).delete({responseType:"json",url:"/v1/research/{researchId}",...A}),Vd=A=>(A.client??wA).post({responseType:"json",url:"/v1/sessions/{parentId}/inject",...A,headers:{"Content-Type":"application/json",...A.headers}}),_d=A=>(A.client??wA).post({responseType:"json",url:"/v1/research/{researchId}/export",...A,headers:{"Content-Type":"application/json",...A.headers}}),Zd=A=>(A?.client??wA).get({responseType:"json",url:"/v1/ottorouter/balance",...A}),Xd=A=>(A?.client??wA).get({responseType:"json",url:"/v1/ottorouter/wallet",...A}),$d=A=>(A?.client??wA).get({responseType:"json",url:"/v1/ottorouter/usdc-balance",...A}),Ah=A=>(A.client??wA).get({responseType:"json",url:"/v1/ottorouter/topup/polar/estimate",...A}),eh=A=>(A.client??wA).post({responseType:"json",url:"/v1/ottorouter/topup/polar",...A,headers:{"Content-Type":"application/json",...A.headers}}),th=A=>(A.client??wA).get({responseType:"json",url:"/v1/ottorouter/topup/polar/status",...A}),oh=A=>(A.client??wA).get({responseType:"json",url:"/v1/ottorouter/topup/razorpay/estimate",...A}),sh=A=>(A.client??wA).post({responseType:"json",url:"/v1/ottorouter/topup/razorpay",...A,headers:{"Content-Type":"application/json",...A.headers}}),rh=A=>(A.client??wA).post({responseType:"json",url:"/v1/ottorouter/topup/razorpay/verify",...A,headers:{"Content-Type":"application/json",...A.headers}}),nh=A=>(A.client??wA).post({responseType:"json",url:"/v1/ottorouter/topup/select",...A,headers:{"Content-Type":"application/json",...A.headers}}),ih=A=>(A.client??wA).post({responseType:"json",url:"/v1/ottorouter/topup/cancel",...A,headers:{"Content-Type":"application/json",...A.headers}}),ah=A=>(A.client??wA).get({responseType:"json",url:"/v1/ottorouter/topup/pending",...A}),gh=A=>(A?.client??wA).get({responseType:"json",url:"/v1/auth/status",...A}),lh=A=>(A?.client??wA).post({responseType:"json",url:"/v1/auth/ottorouter/setup",...A}),Qh=A=>(A.client??wA).post({responseType:"json",url:"/v1/auth/ottorouter/import",...A,headers:{"Content-Type":"application/json",...A.headers}}),Bh=A=>(A?.client??wA).get({responseType:"json",url:"/v1/auth/ottorouter/export",...A}),ch=A=>(A.client??wA).delete({responseType:"json",url:"/v1/auth/{provider}",...A}),Eh=A=>(A.client??wA).post({responseType:"json",url:"/v1/auth/{provider}",...A,headers:{"Content-Type":"application/json",...A.headers}}),Ch=A=>(A.client??wA).post({responseType:"json",url:"/v1/auth/{provider}/oauth/url",...A,headers:{"Content-Type":"application/json",...A.headers}}),uh=A=>(A.client??wA).post({responseType:"json",url:"/v1/auth/{provider}/oauth/exchange",...A,headers:{"Content-Type":"application/json",...A.headers}}),Ih=A=>(A?.client??wA).post({responseType:"json",url:"/v1/auth/copilot/device/start",...A}),dh=A=>(A.client??wA).post({responseType:"json",url:"/v1/auth/copilot/device/poll",...A,headers:{"Content-Type":"application/json",...A.headers}}),hh=A=>(A?.client??wA).get({responseType:"json",url:"/v1/auth/copilot/methods",...A}),ph=A=>(A.client??wA).post({responseType:"json",url:"/v1/auth/copilot/token",...A,headers:{"Content-Type":"application/json",...A.headers}}),fh=A=>(A?.client??wA).post({responseType:"json",url:"/v1/auth/copilot/gh/import",...A}),mh=A=>(A?.client??wA).get({responseType:"json",url:"/v1/auth/copilot/diagnostics",...A}),wh=A=>(A?.client??wA).post({responseType:"json",url:"/v1/auth/onboarding/complete",...A}),xh=A=>(A?.client??wA).get({responseType:"json",url:"/v1/tunnel/status",...A}),Dh=A=>(A?.client??wA).post({responseType:"json",url:"/v1/tunnel/start",...A,headers:{"Content-Type":"application/json",...A?.headers}}),yh=A=>(A?.client??wA).post({responseType:"json",url:"/v1/tunnel/stop",...A}),Nh=A=>(A?.client??wA).get({responseType:"json",url:"/v1/mcp/servers",...A}),kh=A=>(A.client??wA).post({responseType:"json",url:"/v1/mcp/servers",...A,headers:{"Content-Type":"application/json",...A.headers}}),Mh=A=>(A.client??wA).delete({responseType:"json",url:"/v1/mcp/servers/{name}",...A}),bh=A=>(A.client??wA).post({responseType:"json",url:"/v1/mcp/servers/{name}/start",...A}),Fh=A=>(A.client??wA).post({responseType:"json",url:"/v1/mcp/servers/{name}/stop",...A}),Gh=A=>(A.client??wA).post({responseType:"json",url:"/v1/mcp/servers/{name}/auth",...A}),vh=A=>(A.client??wA).post({responseType:"json",url:"/v1/mcp/servers/{name}/auth/callback",...A,headers:{"Content-Type":"application/json",...A.headers}}),Sh=A=>(A.client??wA).get({responseType:"json",url:"/v1/mcp/servers/{name}/auth/status",...A}),Uh=A=>(A.client??wA).get({responseType:"json",url:"/v1/provider-usage/{provider}",...A}),Rh=A=>(A?.client??wA).get({responseType:"json",url:"/v1/skills",...A}),Kh=A=>(A?.client??wA).get({responseType:"json",url:"/v1/config/skills",...A}),Lh=A=>(A.client??wA).put({responseType:"json",url:"/v1/config/skills",...A,headers:{"Content-Type":"application/json",...A.headers}}),Jh=A=>(A.client??wA).get({responseType:"json",url:"/v1/skills/{name}",...A}),jh=A=>(A.client??wA).get({responseType:"json",url:"/v1/skills/{name}/files",...A}),Th=A=>(A.client??wA).get({responseType:"json",url:"/v1/skills/{name}/files/{filePath}",...A});function Oh(A){let e,t,s,n,r,i,a;return g(),{feed:l,reset:g};function g(){e=!0,t="",s=0,n=-1,r=void 0,i=void 0,a=""}function l(u){t=t?t+u:u,e&&qh(t)&&(t=t.slice(kB.length)),e=!1;const E=t.length;let c=0,d=!1;for(;c<E;){d&&(t[c]===`
|
|
14
|
+
`&&++c,d=!1);let f=-1,p=n,D;for(let F=s;f<0&&F<E;++F)D=t[F],D===":"&&p<0?p=F-c:D==="\r"?(d=!0,f=F-c):D===`
|
|
15
|
+
`&&(f=F-c);if(f<0){s=E-c,n=p;break}else s=0,n=-1;B(t,c,p,f),c+=f+1}c===E?t="":c>0&&(t=t.slice(c))}function B(u,E,c,d){if(d===0){a.length>0&&(A({type:"event",id:r,event:i||void 0,data:a.slice(0,-1)}),a="",r=void 0),i=void 0;return}const f=c<0,p=u.slice(E,E+(f?d:c));let D=0;f?D=d:u[E+c+1]===" "?D=c+2:D=c+1;const F=E+D,k=d-D,L=u.slice(F,F+k).toString();if(p==="data")a+=L?`${L}
|
|
16
|
+
`:`
|
|
17
|
+
`;else if(p==="event")i=L;else if(p==="id"&&!L.includes("\0"))r=L;else if(p==="retry"){const K=parseInt(L,10);Number.isNaN(K)||A({type:"reconnect-interval",value:K})}}}const kB=[239,187,191];function qh(A){return kB.every((e,t)=>A.charCodeAt(t)===e)}function Yh(A){return wA.buildUrl({baseURL:A.baseUrl,url:"/v1/sessions/{id}/stream",path:{id:A.sessionId},query:A.projectPath?{project:A.projectPath}:void 0})}function MB(A){return wA.buildUrl({baseURL:A.baseUrl,url:"/v1/events/stream",query:A.projectPath?{project:A.projectPath}:void 0})}async function Hh(A,e){const{baseUrl:t,url:s,fetch:n,onEvent:r,onError:i,onClose:a}=A,g=n||fetch,l=!t.includes("localhost")&&!t.includes("127.0.0.1");try{const B=await g(s,{method:l?"POST":"GET",headers:{Accept:"text/event-stream"},signal:e});if(!B.ok)throw new Error(`Failed to connect to stream: ${B.statusText}`);if(!B.body)throw new Error("Response body is null");const u=B.body.getReader(),E=new TextDecoder,c=Oh(d=>{d.type==="event"&&r({id:d.id,event:d.event,data:d.data})});try{for(;;){const{done:d,value:f}=await u.read();if(d){a?.();break}const p=E.decode(f,{stream:!0});c.feed(p)}}finally{u.releaseLock()}}catch(B){e?.aborted?a?.():i?.(B)}}async function Ph(A,e){const t=MB({baseUrl:A.baseUrl,projectPath:A.projectPath});return Hh({...A,url:t},e)}function bB(){return gt({queryKey:["terminals"],queryFn:async()=>{const A=await Jd();if(A.error)throw new Error("Failed to fetch terminals");return A.data},refetchInterval:2e3})}function Wh(){const A=ke();return _e({mutationFn:async e=>{const t=await jd({body:e});if(t.error)throw new Error("Failed to create terminal");return t.data},onSuccess:async()=>{await A.invalidateQueries({queryKey:["terminals"]})}})}function zh(){const A=ke();return _e({mutationFn:async e=>{if((await Td({path:{id:e}})).error)throw new Error("Failed to kill terminal")},onSuccess:()=>{A.invalidateQueries({queryKey:["terminals"]})}})}const Vh=m.memo(function({terminals:e,onNewTerminal:t,onKillTerminal:s,isCreating:n}){const r=ao(a=>a.activeTabId),i=ao(a=>a.selectTab);return o.jsxs("div",{className:"flex items-center gap-0 overflow-x-auto scrollbar-none",children:[e.map(a=>{const g=a.id===r,l=a.status==="running";return o.jsxs("div",{className:`group flex items-center gap-1.5 px-3 h-9 border-r border-border cursor-pointer select-none shrink-0 transition-colors ${g?"bg-background text-foreground":"bg-muted/30 text-muted-foreground hover:bg-muted/60"}`,onClick:()=>i(a.id),onKeyDown:B=>{B.key==="Enter"&&i(a.id)},role:"tab","aria-selected":g,tabIndex:0,children:[o.jsx("span",{className:"shrink-0",children:a.createdBy==="llm"?o.jsx(lC,{className:"w-3 h-3 text-blue-500"}):o.jsx(Ja,{className:"w-3 h-3 text-green-500"})}),o.jsx("span",{className:"text-xs font-medium truncate max-w-[120px]",children:a.title||a.purpose}),!l&&o.jsx("span",{className:"w-1.5 h-1.5 rounded-full bg-orange-500 shrink-0"}),o.jsx("button",{type:"button",className:"shrink-0 p-0.5 rounded opacity-0 group-hover:opacity-100 hover:bg-muted transition-opacity",onClick:B=>{B.stopPropagation(),s(a.id)},title:"Close terminal",children:o.jsx(ot,{className:"w-3 h-3"})})]},a.id)}),o.jsx("button",{type:"button",className:"flex items-center justify-center w-8 h-9 shrink-0 text-muted-foreground hover:text-foreground hover:bg-muted/50 transition-colors",onClick:t,disabled:n,title:"New terminal",children:o.jsx(lo,{className:"w-3.5 h-3.5"})})]})}),FB="/assets/JetBrainsMonoNerdFontMono-Bold-CU80ifuM.woff2",GB="/assets/JetBrainsMonoNerdFontMono-BoldItalic-D8WKzlhG.woff2",vB="/assets/JetBrainsMonoNerdFontMono-Italic-CO98v9JQ.woff2",SB="/assets/JetBrainsMonoNerdFontMono-Regular-QVq88ZfU.woff2";var tg=(A=>(A[A.CURSOR_KEY_APPLICATION=0]="CURSOR_KEY_APPLICATION",A[A.KEYPAD_KEY_APPLICATION=1]="KEYPAD_KEY_APPLICATION",A[A.IGNORE_KEYPAD_WITH_NUMLOCK=2]="IGNORE_KEYPAD_WITH_NUMLOCK",A[A.ALT_ESC_PREFIX=3]="ALT_ESC_PREFIX",A[A.MODIFY_OTHER_KEYS_STATE_2=4]="MODIFY_OTHER_KEYS_STATE_2",A[A.KITTY_KEYBOARD_FLAGS=5]="KITTY_KEYBOARD_FLAGS",A))(tg||{}),UB=(A=>(A[A.RELEASE=0]="RELEASE",A[A.PRESS=1]="PRESS",A[A.REPEAT=2]="REPEAT",A))(UB||{}),dA=(A=>(A[A.UNIDENTIFIED=0]="UNIDENTIFIED",A[A.GRAVE=1]="GRAVE",A[A.BACKSLASH=2]="BACKSLASH",A[A.BRACKET_LEFT=3]="BRACKET_LEFT",A[A.BRACKET_RIGHT=4]="BRACKET_RIGHT",A[A.COMMA=5]="COMMA",A[A.ZERO=6]="ZERO",A[A.ONE=7]="ONE",A[A.TWO=8]="TWO",A[A.THREE=9]="THREE",A[A.FOUR=10]="FOUR",A[A.FIVE=11]="FIVE",A[A.SIX=12]="SIX",A[A.SEVEN=13]="SEVEN",A[A.EIGHT=14]="EIGHT",A[A.NINE=15]="NINE",A[A.EQUAL=16]="EQUAL",A[A.INTL_BACKSLASH=17]="INTL_BACKSLASH",A[A.INTL_RO=18]="INTL_RO",A[A.INTL_YEN=19]="INTL_YEN",A[A.A=20]="A",A[A.B=21]="B",A[A.C=22]="C",A[A.D=23]="D",A[A.E=24]="E",A[A.F=25]="F",A[A.G=26]="G",A[A.H=27]="H",A[A.I=28]="I",A[A.J=29]="J",A[A.K=30]="K",A[A.L=31]="L",A[A.M=32]="M",A[A.N=33]="N",A[A.O=34]="O",A[A.P=35]="P",A[A.Q=36]="Q",A[A.R=37]="R",A[A.S=38]="S",A[A.T=39]="T",A[A.U=40]="U",A[A.V=41]="V",A[A.W=42]="W",A[A.X=43]="X",A[A.Y=44]="Y",A[A.Z=45]="Z",A[A.MINUS=46]="MINUS",A[A.PERIOD=47]="PERIOD",A[A.QUOTE=48]="QUOTE",A[A.SEMICOLON=49]="SEMICOLON",A[A.SLASH=50]="SLASH",A[A.ALT_LEFT=51]="ALT_LEFT",A[A.ALT_RIGHT=52]="ALT_RIGHT",A[A.BACKSPACE=53]="BACKSPACE",A[A.CAPS_LOCK=54]="CAPS_LOCK",A[A.CONTEXT_MENU=55]="CONTEXT_MENU",A[A.CONTROL_LEFT=56]="CONTROL_LEFT",A[A.CONTROL_RIGHT=57]="CONTROL_RIGHT",A[A.ENTER=58]="ENTER",A[A.META_LEFT=59]="META_LEFT",A[A.META_RIGHT=60]="META_RIGHT",A[A.SHIFT_LEFT=61]="SHIFT_LEFT",A[A.SHIFT_RIGHT=62]="SHIFT_RIGHT",A[A.SPACE=63]="SPACE",A[A.TAB=64]="TAB",A[A.CONVERT=65]="CONVERT",A[A.KANA_MODE=66]="KANA_MODE",A[A.NON_CONVERT=67]="NON_CONVERT",A[A.DELETE=68]="DELETE",A[A.END=69]="END",A[A.HELP=70]="HELP",A[A.HOME=71]="HOME",A[A.INSERT=72]="INSERT",A[A.PAGE_DOWN=73]="PAGE_DOWN",A[A.PAGE_UP=74]="PAGE_UP",A[A.DOWN=75]="DOWN",A[A.LEFT=76]="LEFT",A[A.RIGHT=77]="RIGHT",A[A.UP=78]="UP",A[A.NUM_LOCK=79]="NUM_LOCK",A[A.KP_0=80]="KP_0",A[A.KP_1=81]="KP_1",A[A.KP_2=82]="KP_2",A[A.KP_3=83]="KP_3",A[A.KP_4=84]="KP_4",A[A.KP_5=85]="KP_5",A[A.KP_6=86]="KP_6",A[A.KP_7=87]="KP_7",A[A.KP_8=88]="KP_8",A[A.KP_9=89]="KP_9",A[A.KP_PLUS=90]="KP_PLUS",A[A.KP_BACKSPACE=91]="KP_BACKSPACE",A[A.KP_CLEAR=92]="KP_CLEAR",A[A.KP_CLEAR_ENTRY=93]="KP_CLEAR_ENTRY",A[A.KP_COMMA=94]="KP_COMMA",A[A.KP_PERIOD=95]="KP_PERIOD",A[A.KP_DIVIDE=96]="KP_DIVIDE",A[A.KP_ENTER=97]="KP_ENTER",A[A.KP_EQUAL=98]="KP_EQUAL",A[A.KP_MEMORY_ADD=99]="KP_MEMORY_ADD",A[A.KP_MEMORY_CLEAR=100]="KP_MEMORY_CLEAR",A[A.KP_MEMORY_RECALL=101]="KP_MEMORY_RECALL",A[A.KP_MEMORY_STORE=102]="KP_MEMORY_STORE",A[A.KP_MEMORY_SUBTRACT=103]="KP_MEMORY_SUBTRACT",A[A.KP_MULTIPLY=104]="KP_MULTIPLY",A[A.KP_PAREN_LEFT=105]="KP_PAREN_LEFT",A[A.KP_PAREN_RIGHT=106]="KP_PAREN_RIGHT",A[A.KP_MINUS=107]="KP_MINUS",A[A.KP_SEPARATOR=108]="KP_SEPARATOR",A[A.NUMPAD_UP=109]="NUMPAD_UP",A[A.NUMPAD_DOWN=110]="NUMPAD_DOWN",A[A.NUMPAD_RIGHT=111]="NUMPAD_RIGHT",A[A.NUMPAD_LEFT=112]="NUMPAD_LEFT",A[A.NUMPAD_BEGIN=113]="NUMPAD_BEGIN",A[A.NUMPAD_HOME=114]="NUMPAD_HOME",A[A.NUMPAD_END=115]="NUMPAD_END",A[A.NUMPAD_INSERT=116]="NUMPAD_INSERT",A[A.NUMPAD_DELETE=117]="NUMPAD_DELETE",A[A.NUMPAD_PAGE_UP=118]="NUMPAD_PAGE_UP",A[A.NUMPAD_PAGE_DOWN=119]="NUMPAD_PAGE_DOWN",A[A.ESCAPE=120]="ESCAPE",A[A.F1=121]="F1",A[A.F2=122]="F2",A[A.F3=123]="F3",A[A.F4=124]="F4",A[A.F5=125]="F5",A[A.F6=126]="F6",A[A.F7=127]="F7",A[A.F8=128]="F8",A[A.F9=129]="F9",A[A.F10=130]="F10",A[A.F11=131]="F11",A[A.F12=132]="F12",A[A.F13=133]="F13",A[A.F14=134]="F14",A[A.F15=135]="F15",A[A.F16=136]="F16",A[A.F17=137]="F17",A[A.F18=138]="F18",A[A.F19=139]="F19",A[A.F20=140]="F20",A[A.F21=141]="F21",A[A.F22=142]="F22",A[A.F23=143]="F23",A[A.F24=144]="F24",A[A.F25=145]="F25",A[A.FN_LOCK=146]="FN_LOCK",A[A.PRINT_SCREEN=147]="PRINT_SCREEN",A[A.SCROLL_LOCK=148]="SCROLL_LOCK",A[A.PAUSE=149]="PAUSE",A[A.BROWSER_BACK=150]="BROWSER_BACK",A[A.BROWSER_FAVORITES=151]="BROWSER_FAVORITES",A[A.BROWSER_FORWARD=152]="BROWSER_FORWARD",A[A.BROWSER_HOME=153]="BROWSER_HOME",A[A.BROWSER_REFRESH=154]="BROWSER_REFRESH",A[A.BROWSER_SEARCH=155]="BROWSER_SEARCH",A[A.BROWSER_STOP=156]="BROWSER_STOP",A[A.EJECT=157]="EJECT",A[A.LAUNCH_APP_1=158]="LAUNCH_APP_1",A[A.LAUNCH_APP_2=159]="LAUNCH_APP_2",A[A.LAUNCH_MAIL=160]="LAUNCH_MAIL",A[A.MEDIA_PLAY_PAUSE=161]="MEDIA_PLAY_PAUSE",A[A.MEDIA_SELECT=162]="MEDIA_SELECT",A[A.MEDIA_STOP=163]="MEDIA_STOP",A[A.MEDIA_TRACK_NEXT=164]="MEDIA_TRACK_NEXT",A[A.MEDIA_TRACK_PREVIOUS=165]="MEDIA_TRACK_PREVIOUS",A[A.POWER=166]="POWER",A[A.SLEEP=167]="SLEEP",A[A.AUDIO_VOLUME_DOWN=168]="AUDIO_VOLUME_DOWN",A[A.AUDIO_VOLUME_MUTE=169]="AUDIO_VOLUME_MUTE",A[A.AUDIO_VOLUME_UP=170]="AUDIO_VOLUME_UP",A[A.WAKE_UP=171]="WAKE_UP",A[A.COPY=172]="COPY",A[A.CUT=173]="CUT",A[A.PASTE=174]="PASTE",A))(dA||{}),es=(A=>(A[A.NONE=0]="NONE",A[A.SHIFT=1]="SHIFT",A[A.CTRL=2]="CTRL",A[A.ALT=4]="ALT",A[A.SUPER=8]="SUPER",A[A.CAPSLOCK=16]="CAPSLOCK",A[A.NUMLOCK=32]="NUMLOCK",A))(es||{}),ta=(A=>(A[A.NONE=0]="NONE",A[A.PARTIAL=1]="PARTIAL",A[A.FULL=2]="FULL",A))(ta||{});const Ql=80;var wt=(A=>(A[A.BOLD=1]="BOLD",A[A.ITALIC=2]="ITALIC",A[A.UNDERLINE=4]="UNDERLINE",A[A.STRIKETHROUGH=8]="STRIKETHROUGH",A[A.INVERSE=16]="INVERSE",A[A.INVISIBLE=32]="INVISIBLE",A[A.BLINK=64]="BLINK",A[A.FAINT=128]="FAINT",A))(wt||{});class Er{constructor(e){this.exports=e.exports,this.memory=this.exports.memory}createKeyEncoder(){return new _h(this.exports)}createTerminal(e=80,t=24,s){return new Zh(this.exports,this.memory,e,t,s)}static async load(e){if(e)return Er.loadFromPath(e);const t=new URL("data:application/wasm;base64,AGFzbQEAAAABdRJgBH9/f38Bf2AFf39/f38AYAZ/f39/f38Bf2ACf38AYAJ/fwF/YAF/AGABfwF/YAN/f38AYAV/f39/fwF/YAN/f38Bf2AEf39/fwBgBn9/f39/fwBgAX8BfmAAAGAAAX9gAn9/AX5gA39+fgBgBX9+fn5+AAILAQNlbnYDbG9nAAMDxwTFBAQFAwYDBgMGAwYDBgcEAwYEBQcICQkEBwMJAwkECQkJBAMFBQMDBAcFAwYGBQQHBQAEBwUJBwYGBgYGBgYGBgUHAwMEBAQGCgUFBgkEAQoEBQUABwQEAwYFBAQGBgQJAAcBBwMDAwMHAwMHAQcDAwMDAwMHCgcDAwcFBQkGAwsLCwYDBwUDAwcDAwUHBQMDAwMGBwQKCgQKCgQEBAMDBQIHCgMHBwMHCgkHBwEKCwEDAwQKAwcEAwMHDAcJCQoECgoKAwgJAQcHCgAJCgoDBwMABwgEBQQEAwAHAwUGBwcFBQYHAwMKAQEDAwMDBAQGBgMEAwYGBQMFBQMDAwUDAwUFBAQJBwUEBgUHBAkEBAUDBAMFBgYJAAYECQcDBgUNBgcHBAQDAwQFAwcLBQUFAwQFAwAJAwcDBwQFBgQFBAQEBAQEBAQEBAQEBAQEBAQEBAQHBQQGBAYJBAUEBAQFBQUEBAQEBAUFBAQEBAQEBAQFBQQEBAUEBQQEBAQEBAQFBQQFBAQEBQQEBAQEBQQECQQFBAQEBAQEBAQEAwUEBAQEBAUFBAUEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQHBgQHBgYGBgYGBgQDBQkKCAYGCQYACAQGCQ4FBgMGAw4FDgUBBgkJCAoEAQYJBgQHBgkFBwQABAkHAwcDBwoKAQcKDwQEBAYHBwMDAwYDDAYDABADAwMMAwcEAAkCAgEMBwEADAUHBAQECQQJCQkEBAkJCQMIAAkJCQEGAgIAAgIBAQoJBQ4RBAUBcAEWFgUDAQATBgkBfwFBgIDAAAsHhhJNBm1lbW9yeQIAFWdob3N0dHlfa2V5X2V2ZW50X25ldwABFmdob3N0dHlfa2V5X2V2ZW50X2ZyZWUAAhxnaG9zdHR5X2tleV9ldmVudF9zZXRfYWN0aW9uAAMcZ2hvc3R0eV9rZXlfZXZlbnRfZ2V0X2FjdGlvbgAEGWdob3N0dHlfa2V5X2V2ZW50X3NldF9rZXkABRlnaG9zdHR5X2tleV9ldmVudF9nZXRfa2V5AAYaZ2hvc3R0eV9rZXlfZXZlbnRfc2V0X21vZHMABxpnaG9zdHR5X2tleV9ldmVudF9nZXRfbW9kcwAII2dob3N0dHlfa2V5X2V2ZW50X3NldF9jb25zdW1lZF9tb2RzAAkjZ2hvc3R0eV9rZXlfZXZlbnRfZ2V0X2NvbnN1bWVkX21vZHMACh9naG9zdHR5X2tleV9ldmVudF9zZXRfY29tcG9zaW5nAAsfZ2hvc3R0eV9rZXlfZXZlbnRfZ2V0X2NvbXBvc2luZwAMGmdob3N0dHlfa2V5X2V2ZW50X3NldF91dGY4AA0aZ2hvc3R0eV9rZXlfZXZlbnRfZ2V0X3V0ZjgADilnaG9zdHR5X2tleV9ldmVudF9zZXRfdW5zaGlmdGVkX2NvZGVwb2ludAAPKWdob3N0dHlfa2V5X2V2ZW50X2dldF91bnNoaWZ0ZWRfY29kZXBvaW50ABAXZ2hvc3R0eV9rZXlfZW5jb2Rlcl9uZXcAERhnaG9zdHR5X2tleV9lbmNvZGVyX2ZyZWUAEhpnaG9zdHR5X2tleV9lbmNvZGVyX3NldG9wdAATGmdob3N0dHlfa2V5X2VuY29kZXJfZW5jb2RlABQPZ2hvc3R0eV9vc2NfbmV3ACEQZ2hvc3R0eV9vc2NfZnJlZQAjEGdob3N0dHlfb3NjX25leHQAJRFnaG9zdHR5X29zY19yZXNldABAD2dob3N0dHlfb3NjX2VuZABEGGdob3N0dHlfb3NjX2NvbW1hbmRfdHlwZQBLGGdob3N0dHlfb3NjX2NvbW1hbmRfZGF0YQBMFWdob3N0dHlfcGFzdGVfaXNfc2FmZQBNFWdob3N0dHlfY29sb3JfcmdiX2dldABPD2dob3N0dHlfc2dyX25ldwBQEGdob3N0dHlfc2dyX2ZyZWUAURFnaG9zdHR5X3Nncl9yZXNldABSFmdob3N0dHlfc2dyX3NldF9wYXJhbXMAUxBnaG9zdHR5X3Nncl9uZXh0AFYYZ2hvc3R0eV9zZ3JfdW5rbm93bl9mdWxsAFobZ2hvc3R0eV9zZ3JfdW5rbm93bl9wYXJ0aWFsAFsZZ2hvc3R0eV9zZ3JfYXR0cmlidXRlX3RhZwBcG2dob3N0dHlfc2dyX2F0dHJpYnV0ZV92YWx1ZQBdFGdob3N0dHlfdGVybWluYWxfbmV3AF4gZ2hvc3R0eV90ZXJtaW5hbF9uZXdfd2l0aF9jb25maWcAXxVnaG9zdHR5X3Rlcm1pbmFsX2ZyZWUAjQEXZ2hvc3R0eV90ZXJtaW5hbF9yZXNpemUA2gEWZ2hvc3R0eV90ZXJtaW5hbF93cml0ZQC+AxtnaG9zdHR5X3JlbmRlcl9zdGF0ZV91cGRhdGUAvwMdZ2hvc3R0eV9yZW5kZXJfc3RhdGVfZ2V0X2NvbHMAwgMdZ2hvc3R0eV9yZW5kZXJfc3RhdGVfZ2V0X3Jvd3MAwwMhZ2hvc3R0eV9yZW5kZXJfc3RhdGVfZ2V0X2N1cnNvcl94AMQDIWdob3N0dHlfcmVuZGVyX3N0YXRlX2dldF9jdXJzb3JfeQDFAydnaG9zdHR5X3JlbmRlcl9zdGF0ZV9nZXRfY3Vyc29yX3Zpc2libGUAxgMhZ2hvc3R0eV9yZW5kZXJfc3RhdGVfZ2V0X2JnX2NvbG9yAMcDIWdob3N0dHlfcmVuZGVyX3N0YXRlX2dldF9mZ19jb2xvcgDIAyFnaG9zdHR5X3JlbmRlcl9zdGF0ZV9pc19yb3dfZGlydHkAyQMfZ2hvc3R0eV9yZW5kZXJfc3RhdGVfbWFya19jbGVhbgDLAyFnaG9zdHR5X3JlbmRlcl9zdGF0ZV9nZXRfdmlld3BvcnQAzAMhZ2hvc3R0eV9yZW5kZXJfc3RhdGVfZ2V0X2dyYXBoZW1lAM4DJGdob3N0dHlfdGVybWluYWxfaXNfYWx0ZXJuYXRlX3NjcmVlbgDPAyNnaG9zdHR5X3Rlcm1pbmFsX2hhc19tb3VzZV90cmFja2luZwDQAxlnaG9zdHR5X3Rlcm1pbmFsX2dldF9tb2RlANEDJmdob3N0dHlfdGVybWluYWxfZ2V0X3Njcm9sbGJhY2tfbGVuZ3RoANIDJGdob3N0dHlfdGVybWluYWxfZ2V0X3Njcm9sbGJhY2tfbGluZQDTAyhnaG9zdHR5X3Rlcm1pbmFsX2dldF9zY3JvbGxiYWNrX2dyYXBoZW1lANQDH2dob3N0dHlfdGVybWluYWxfaXNfcm93X3dyYXBwZWQA1QMdZ2hvc3R0eV90ZXJtaW5hbF9oYXNfcmVzcG9uc2UA1gMeZ2hvc3R0eV90ZXJtaW5hbF9yZWFkX3Jlc3Bv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IgVBv39KDQBBLiEBIARBP3FBBnQgAy0AAEEPcUEMdHIiA0H/D0sNAQsgAiABOwAJIAJBDGohAQwCCwJAIANBgPADcUGAsANHDQAgAkEAOgAKIAJBgN4AOwEIIAJBADoADiACQQA7AQwgAkEMaiEBDAILIAJBADoADiACQQA7AAkgAiADIAVBP3FyOwEMIAJBDGohAQwBCwJAIAMsAAEiAUFASA0AIAJBADoACiACQYDaADsBCCACQQA6AA4gAkEAOwEMIAJBDGohAQwBCwJAIAMsAAIiBEFASA0AIAJBADoACiACQYDaADsBCCACQQA6AA4gAkEAOwEMIAJBDGohAQwBCwJAIAMsAAMiBUFASA0AIAJBADoACiACQYDaADsBCCACQQA6AA4gAkEAOwEMIAJBDGohAQwBCwJAIAFBP3FBBnQgAy0AAEEHcUEMdHIiAUH/B0sNACACQQA6AAogAkGA3AA7AQggAkEAOgAOIAJBADsBDCACQQxqIQEMAQsCQCABQYCIAUkNACACQQA6AAogAkGA4AA7AQggAkEAOgAOIAJBADsBDCACQQxqIQEMAQsgAkEAOwAJIAIgASAEQT9xckEGdCAFQT9xciIBOwEMIAIgAUEQdjoADiACQQxqIQELIAFBAmotAAAhAyAAIAEvAQAiATsBACAAQQJqIANBH3EiAzoAACAAQQE6AAQgAiABOwEEIAIgAzoABgwBCyAAQgA3AgALIAJBEGokgICAgAAL3QECBX8BfiOAgICAAEEQayIDJICAgIAAQQAhBAJAA0ACQCACIARLDQBBACEFDAILIAEgBGohBgJAAkAgACgCDCIHIAIgBGsiBWogACgCCEsNAAJAIAVFDQAgACgCBCAHaiAGIAX8CgAACyAAIAAoAgwgBWo2AgwMAQsgACgCACgCACEHIAMgBTYCBCADIAY2AgAgA0EIaiAAIANBAUEBIAcRgYCAgACAgICAACADKQMIIghCIIinIgVB//8DcQ0CIAinIQULIAUgBGohBAwACwsgA0EQaiSAgICAACAFC9YJAQF+QgAhAgJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQCABDrABQQABAgMEBQYHCAkKCwwNDg9BQUEQERITFBUWFxgZGhscHR4fICEiIyQlJicoKSorLC0uQUFBQUFBQUFBQUFBLzBBQUFBQUFBQUFBQUFBQUExMjM0NTY3ODk6O0FBQUE8PUE+QUFBQUE/QUFAQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBC0EAKQOIqsiAACECDEALQQApA5CqyIAAIQIMPwtBACkDmKrIgAAhAgw+C0EAKQOgqsiAACECDD0LQQApA6iqyIAAIQIMPAtBACkDsKrIgAAhAgw7C0EAKQO4qsiAACECDDoLQQApA8CqyIAAIQIMOQtBACkDyKrIgAAhAgw4C0EAKQPQqsiAACECDDcLQQApA9iqyIAAIQIMNgtBACkD4KrIgAAhAgw1C0EAKQPoqsiAACECDDQLQQApA/CqyIAAIQIMMwtBACkD+KrIgAAhAgwyC0EAKQOAq8iAACECDDELQQApA4iryIAAIQIMMAtBACkDkKvIgAAhAgwvC0EAKQOYq8iAACECDC4LQQApA6CryIAAIQIMLQtBACkDqKvIgAAhAgwsC0EAKQOwq8iAACECDCsLQQApA7iryIAAIQIMKgtBACkDwKvIgAAhAgwpC0EAKQPIq8iAACECDCgLQQApA9CryIAAIQIMJwtBACkD2KvIgAAhAgwmC0EAKQPgq8iAACECDCULQQApA+iryIAAIQIMJAtBACkD8KvIgAAhAgwjC0EAKQP4q8iAACECDCILQQApA4CsyIAAIQIMIQtBACkDiKzIgAAhAgwgC0EAKQOQrMiAACECDB8LQQApA5isyIAAIQIMHgtBACkDoKzIgAAhAgwdC0EAKQOorMiAACECDBwLQQApA7CsyIAAIQIMGwtBACkDuKzIgAAhAgwaC0EAKQPArMiAACECDBkLQQApA8isyIAAIQIMGAtBACkD0KzIgAAhAgwXC0EAKQPYrMiAACECDBYLQQApA+CsyIAAIQIMFQtBACkD6KzIgAAhAgwUC0EAKQPwrMiAACECDBMLQQApA/isyIAAIQIMEgtBACkDgK3IgAAhAgwRC0EAKQOIrciAACECDBALQQApA7CqyIAAIQIMDwtBACkDuKrIgAAhAgwOC0EAKQPAqsiAACECDA0LQQApA8iqyIAAIQIMDAtBACkD0KrIgAAhAgwLC0EAKQPYqsiAACECDAoLQQApA+CqyIAAIQIMCQtBACkD6KrIgAAhAgwIC0EAKQPwqsiAACECDAcLQQApA/iqyIAAIQIMBgtBACkDkK3IgAAhAgwFC0EAKQPgrMiAACECDAQLQQApA/isyIAAIQIMAwtBACkDgKvIgAAhAgwCC0EAKQOYrciAACECDAELQQApA9isyIAAIQILIAAgAjcCAAsYACAAIAJB////AHFBCkEAIAEQ5oOAgAALQwEBfwJAIABBzJTJgABBARCagICAACICQf//A3ENACAAQYy1yoAAIAEvAQAgAUECai0AAEEQdHIQnICAgAAhAgsgAgsWACAAIAJB/wNxQQpBACABEOaDgIAACxUAIAAgAkEDcUEKQQAgARDmg4CAAAs8AQF/I4CAgIAAQRBrIgMkgICAgAAgAyACOgAPIAAgA0EPakEBIAEQoYSAgAAhAiADQRBqJICAgIAAIAILyQECAX8BfiOAgICAAEHwEGsiAiSAgICAAAJAAkAgAA0AQaDpyYAAIQAMAQsgAkG41MeAADYC7BAgAiAANgLoECACQegQaiEACwJAAkAgACkCACIDp0HQEEECQQAgA0IgiKcoAgARgICAgACAgICAACIADQBBfyEADAELIAJBAToAECACIAM3AwggAkEYaiACQQhqEKKAgIAAAkBB0BBFDQAgACACQRhqQdAQ/AoAAAsgASAANgIAQQAhAAsgAkHwEGokgICAgAAgAAuZAQEBfyOAgICAAEHAAGsiAiSAgICAACACQQhqQQhqIAFBCGooAgA2AgAgAkEAOgAEIAIgASkCADcDCAJAQSxFDQAgAkEUakEAQSz8CwALIAJBADoAAwJAQThFDQAgACACQQhqQTj8CgAACyAAQQA2AkAgAEIANwI4IAAgAi0ABDoATCAAIAItAAM6AM0QIAJBwABqJICAgIAACz0BAn8CQCAARQ0AIAAoAgAhASAAKAIEIQIgABCkgICAACABIABB0BBBAkEAIAIoAgwRgYCAgACAgICAAAsL4gEBBH8jgICAgABBEGsiASSAgICAAAJAIAAtAExBP3FFDQACQAJAAkAgACgCDEF2ag4CAQACCyABIAApAgA3AwggAUEIaiAAKAIQIAAoAhgQwYCAgAAMAQsgAEEQaiAAEMKAgIAACyAAQQA6AM0QIABBADoATAJAQTRFDQAgAEEMakEAQTT8CwALIAAoAkAiAkUNACABIAApAgA3AwAgACgCACEDIAAoAgQhBCACIAEQw4CAgAAgAyACQQxBAkEAIAQoAgwRgYCAgACAgICAACAAQQA2AkALIAFBEGokgICAgAALDAAgACABEKaAgIAAC69MAgV/AX4jgICAgABB4BBrIgIkgICAgAACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIAAoAjwiA0H/D0kNACAALQBMQT9xIgNBAUcNAQyiAQsgACADQQFqIgQ2AjwgAEHNAGoiBSADaiIGIAE6AAAgAC0ATEE/cQ45AgGiARsDBCwtLgUzNDU2Nzg5Bj1BQghGCUxNTlUPb3BxchBHSKIBCguiAVNUEXYHQAxdEV5fDWAOZ2hpAgsgAiADOgAKIAJCgBA3AsAQIAJBsL/HgAA2ArgQIAIgAkEgajYCvBAgAkG4EGogAkEKahCngICAACIDQf//A3FFDZ4BIAJBuBBqQaDpyYAAQT8QqICAgAAgAi8B0BANoAEgAkGgEGpBEGogAkG4EGpBEGopAgA3AwAgAkGgEGpBCGoiASACQbgQakEIaikCADcDACACIAIpArgQNwOgEAJAIAEgAkEKahCngICAAEH//wNxRQ0AIAJBoBBqEKmAgIAADKEBCyACQdQQaiACQaAQahCqgICAACACQaAQahCpgICA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ACADQf//A3FFDQBBoOnJgAAgASAEELaAgIAACyAAQQE6AEwMFAsgAkKAEDcCwBAgAkGwv8eAADYCuBAgAiACQSBqNgK8EAJAAkACQCACQbgQahC4gICAACIDQf//A3FFDQAgAkG4EGpBoOnJgABBwQAQqICAgAAgAi8B0BANAiACQaAQakEQaiACQbgQakEQaikCADcDACACQaAQakEIaiIBIAJBuBBqQQhqKQIANwMAIAIgAikCuBA3A6AQAkAgARC4gICAAEH//wNxRQ0AIAJBoBBqEKmAgIAADAMLIAJB1BBqIAJBoBBqEKqAgIAAIAJBoBBqEKmAgIAAIAIvAdwQDQIgAigC2BAhBCACKALUECEBDAELIAIoArwQIQEgAigCxBAhBAsgASAEEICAgIAAIANB//8DcUUNAEGg6cmAACABIAQQtoCAgAALIABBAToATAwTCyACQoAQNwLAECACQbC/x4AANgK4ECACIAJBIGo2ArwQAkACQAJAIAJBuBBqELmAgIAAIgNB//8DcUUNACACQbgQakGg6cmAAEHBABCogICAACACLwHQEA0CIAJBoBBqQRBqIAJBuBBqQRBqKQIANwMAIAJBoBBqQQhqIgEgAkG4EGpBCGopAgA3AwAgAiACKQK4EDcDoBACQCABELmAgIAAQf//A3FFDQAgAkGgEGoQqYCAgAAMAwsgAkHUEGogAkGgEGoQqoCAgAAgAkGgEGoQqYCAgAAgAi8B3BANAiACKALYECEEIAIoAtQQIQEMAQsgAigCvBAhASACKALEECEECyABIAQQgICAgAAgA0H//wNxRQ0AQaDpyYAAIAEgBBC2gICAAAsgAEEBOgBMDBILIAJCgBA3AsAQIAJBsL/HgAA2ArgQIAIgAkEgajYCvBACQAJAAkAgAkG4EGoQuoCAgAAiA0H//wNxRQ0AIAJBuBBqQaDpyYAAQcEAEKiAgIAAIAIvAdAQDQIgAkGgEGpBEGogAkG4EGpBEGopAgA3AwAgAkGgEGpBCGoiASACQbgQakEIaikCADcDACACIAIpArgQNwOgEAJAIAEQuoCAgABB//8DcUUNACACQaAQahCpgICAAAwDCyACQdQQaiACQaAQahCqgICAACACQaAQahCpgICAACACLwHcEA0CIAIoAtgQIQQgAigC1BAhAQwBCyACKAK8ECEBIAIoAsQQIQQLIAEgBBCAgICAACADQf//A3FFDQBBoOnJgAAgASAEELaAgIAACyAAQQE6AEwMEQsgAkKAEDcCwBAgAkGwv8eAADYCuBAgAiACQSBqNgK8EAJAAkACQCACQbgQahC7gICAACIDQf//A3FFDQAgAkG4EGpBoOnJgABBwQAQqICAgAAgAi8B0BANAiACQaAQakEQaiACQbgQakEQaikCADcDACACQaAQakEIaiIBIAJBuBBqQQhqKQIANwMAIAIgAikCuBA3A6AQAkAgARC7gICAAEH//wNxRQ0AIAJBoBBqEKmAgIAADAMLIAJB1BBqIAJBoBBqEKqAgIAAIAJBoBBqEKmAgIAAIAIvAdwQDQIgAigC2BAhBCACKALUECEBDAELIAIoArwQIQEgAigCxBAhBAsgASAEEICAgIAAIANB//8DcUUNAEGg6cmAACABIAQQtoCAgAALIABBAToATAwQCyACQoAQNwLAECACQbC/x4AANgK4ECACIAJBIGo2ArwQAkACQAJAIAJBuBBqELyAgIAAIgNB//8DcUUNACACQbgQakGg6cmAAEHBABCogICAACACLwHQEA0CIAJBoBBqQRBqIAJBuBBqQRBqKQIANwMAIAJBoBBqQQhqIgEgAkG4EGpBCGopAgA3AwAgAiACKQK4EDcDoBACQCABELyAgIAAQf//A3FFDQAgAkGgEGoQqYCAgAAMAwsgAkHUEGogAkGgEGoQqoCAgAAgAkGgEGoQqYCAgAAgAi8B3BANAiACKALYECEEIAIoAtQQIQEMAQsgAigCvBAhASACKALEECEECyABIAQQgICAgAAgA0H//wNxRQ0AQaDpyYAAIAEgBBC2gICAAAsgAEEBOgBMDA8LIABBHDoATAwOCyACQoAQNwLAECACQbC/x4AANgK4ECACIAJBIGo2ArwQAkACQAJAIAJBuBBqEL2AgIAAIgNB//8DcUUNACACQbgQakGg6cmAAEHBABCogICAACACLwHQEA0CIAJBoBBqQRBqIAJBuBBqQRBqKQIANwMAIAJBoBBqQQhqIgEgAkG4EGpBCGopAgA3AwAgAiACKQK4EDcDoBACQCABEL2AgIAAQf//A3FFDQAgAkGgEGoQqYCAgAAMAwsgAkHUEGogAkGgEGoQqoCAgAAgAkGgEGoQqYCAgAAgAi8B3BANAiACKALYECEEIAIoAtQQIQEMAQsgAigCvBAhASACKALEECEECyABIAQQgICAgAAgA0H//wNxRQ0AQaDpyYAAIAEgBBC2gICAAAsgAEEBOgBMDA0LIAJCgBA3AsAQIAJBsL/HgAA2ArgQIAIgAkEgajYCvBACQAJAAkAgAkG4EGoQvoCAgAAiA0H//wNxRQ0AIAJBuBBqQaDpyYAAQcEAEKiAgIAAIAIvAdAQDQIgAkGgEGpBEGogAkG4EGpBEGopAgA3AwAgAkGgEGpBCGoiASACQbgQakEIaikCADcDACACIAIpArgQNwOgEAJAIAEQvoCAgABB//8DcUUNACACQaAQahCpgICAAAwDCyACQdQQaiACQaAQahCqgICAACACQaAQahCpgICAACACLwHcEA0CIAIoAtgQIQQgAigC1BAhAQwBCyACKAK8ECEBIAIoAsQQIQQLIAEgBBCAgICAACADQf//A3FFDQBBoOnJgAAgASAEELaAgIAACyAAQQE6AEwMDAsgASAEEICAgIAAIANB//8DcUUNAEGg6cmAACABIAQQtoCAgAALIABBAToATAwKCyAAQQE6AEwMCQsgAkKAEDcCwBAgAkGwv8eAADYCuBAgAiACQSBqNgK8EAJAAkACQCACQbgQahC/gICAACIDQf//A3FFDQAgAkG4EGpBoOnJgABBwgAQqICAgAAgAi8B0BANAiACQaAQakEQaiACQbgQakEQaikCADcDACACQaAQakEIaiIBIAJBuBBqQQhqKQIANwMAIAIgAikCuBA3A6AQAkAgARC/gICAAEH//wNxRQ0AIAJBoBBqEKmAgIAADAMLIAJB1BBqIAJBoBBqEKqAgIAAIAJBoBBqEKmAgIAAIAIvAdwQDQIgAigC2BAhBCACKALUECEBDAELIAIoArwQIQEgAigCxBAhBAsgASAEEICAgIAAIANB//8DcUUNAEGg6cmAACABIAQQtoCAgAALIABBAToATAwICyAAQQE6AM0QIABBATYCDCAAQSo6AEwgACAENgI4IAAgAEEQajYCRAwHCyABIAQQgICAgAAgA0H//wNxRQ0AQaDpyYAAIAEgBBC2gICAAAsgAEEBOgBMDAULIAEgBBCAgICAACADQf//A3FFDQBBoOnJgAAgASAEELaAgIAACyAAQQE6AEwMAwsgAigCvBAhASACKALEECEECyAB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ABCagICAAAsTACAAQb6byoAAQcEAEJqAgIAACxMAIABB/JrKgABBwgAQmoCAgAALCgAgABCkgICAAAs6AQF/AkAgAkEMbCIDRQ0AIAAoAgAgAUGq1arVeiACGyADQQJBACAAKAIEKAIMEYGAgIAAgICAgAALC6kBAwF/AX4CfyOAgICAAEEQayICJICAgIAAIAIgASkCACIDNwMAIAIgACgCHEEfcSIBOgAPIANCIIinIQQgA6chBQJAA0AgAUEfcUUNASACIAFBf2pBH3EiAToADyAFIAAoAhggAUECdGooAgBBDCABQQJqdEECQQAgBCgCDBGBgICAAICAgIAADAALCyACIAAoAhggACgCHBD3g4CAACACQRBqJICAgIAACzQBAX8CQCAAKAIIIgJFDQAgASgCACAAKAIAIAJBAEEAIAEoAgQoAgwRgYCAgACAgICAAAsLPwEBfyOAgICAAEEQayICJICAgIAAIAJBAToADyACIAE6AA4gACACQQ5qEMWAgIAAIQEgAkEQaiSAgICAACABC84KAQR/I4CAgIAAQdAQayICJICAgIAAAkACQAJAAkAgAC0AzRANACACIAAoAjw2AgQgAiAAQc0AajYCACACQoAQNwKwECACQbC/x4AANgKoECACIAJBEGo2AqwQAkAgAkGoEGogAhDGgICAACIAQf//A3ENACACKAKsECEDIAIoArQQIQEMAgsgAkGoEGpBoOnJgABBJhCogICAACACLwHAEA0CIAJBkBBqQRBqIAJBqBBqQRBqKQIANwMAIAJBkBBqQQhqIgMgAkGoEGpBCGopAgA3AwAgAiACKQKoEDcDkBACQCADIAIQxoCAgABB//8DcUUNACACQZAQahCpgICAAAwDCyACQcQQaiACQZAQahCqgICAACACQZAQahCpgICAACACLwHMEA0CIAIoAsgQIQEgAigCxBAhAwwBCwJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQCAALQBMQT9xIgNBYWoOGgMRAhERCRERBBERCwEGBxEKBQoKEQoKEREKAAsgA0EGRg0HDBALIAIgACkCADcDCAJAIAAoAkAiBCACQQhqQQAQtYCAgABB//8DcQ0AIAQoAgQhBSAAKAJEIgMgBCgCADYCACAFQX9qIQQMDwsgAkKAEDcCsBAgAkGwv8eA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AAALQQEhAwsgAkGgAWokgICAgAAgAwvJEwEKfwJAIAEoAgQiAiABKAIMIgNLDQAgASADQQFqNgIMIABBrMDHgABBlMDHgAAgAxsiASkCADcCACAAQQhqIAFBCGopAgA3AgAgAEEQaiABQRBqKQIANwIADwsgASADQQFqIgQ2AgwgAiADayEFIAEoAgAiBiADQQF0aiIHLwEAIQgCQCABLwEIIAFBCmotAABBEHRyIglBASADdHEiCkH///8HcUUNAAJAIAhBWmoiC0EUSw0AQQEgC3RBgYjAAHENAQsgCEEERg0AIAlB////B3EhCUEBIQgDQCADIAhqIQogCEEBaiEIIAkgCnZBAXENAAsgAEEBOgAUIAAgBzYCDCAAIAI2AgggACAGNgIEIABBATYCACABIAMgCGo2AgwgACAIIAUgCCAFSRs2AhAPCwJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQCAIDjwAAQIDFwQFBgcIFhYWFhYWFhYWFhYJCgsMDRYODxAWFhYWFhYWFhgRFhYWFhYWFhYZEhYWFhMWFBYWGhUWCyAAQRBqQQApAqTAx4AANwIAIABBCGpBACkCnMDHgAA3AgAgAEEAKQKUwMeAADcCAA8LIABBEGpBACkC1MDHgAA3AgAgAEEIakEAKQLMwMeAADcCACAAQQApAsTAx4AANwIADwsgAEEQakEAKQLswMeAADcCACAAQQhqQQApAuTAx4AANwIAIABBACkC3MDHgAA3AgAPCyAAQRBqQQApAoTBx4AANwIAIABBCGpBACkC/MDHgAA3AgAgAEEAKQL0wMeAADcCAA8LIABBEGpBACkCnMHHgAA3AgAgAEEIakEAKQKUwceAADcCACAAQQApAozBx4AANwIADwsgAEEQakEAKQKcwceAADcCACAAQQhqQQApApTBx4AANwIAIABBACkCjMHHgAA3AgAPCyAAQRBqQQApArTBx4AANwIAIABBCGpBACkCrMHHgAA3AgAgAEEAKQKkwceAADcCAA8LIABBEGpBACkCzMHHgAA3AgAgAEEIakEAKQLEwceAADcCACAAQQApArzBx4AANwIADwsgAEEQakEAKQLkwceAADcCACAAQQhqQQApAtzBx4AANwIAIABBACkC1MHHgAA3AgAPCyAAQQI6AAQgAEEHNgIAIABBAToAFA8LIABBEGpBACkC/MHHgAA3AgAgAEEIakEAKQL0wceAADcCACAAQQApAuzBx4AANwIADwsgAEEQakEAKQKUwseAADcCACAAQQhqQQApAozCx4AANwIAIABBACkChMLHgAA3AgAPCyAAQQA6AAQgAEEHNgIAIABBAToAFA8LIABBEGpBACkCrMLHgAA3AgAgAEEIakEAKQKkwseAADcCACAAQQApApzCx4AANwIADwsgAEEQakEAKQLEwseAADcCACAAQQhqQQApArzCx4AANwIAIABBACkCtMLHgAA3AgAPCyAAQRBqQQApAtzCx4AANwIAIABBCGpBACkC1MLHgAA3AgAgAEEAKQLMwseAADcCAA8LIABBEGpBACkC9MLHgAA3AgAgAEEIakEAKQLswseAADcCACAAQQApAuTCx4AANwIADwsgAEEQakEAKQKMw8eAADcCACAAQQhqQQApAoTDx4AANwIAIABBACkC/MLHgAA3AgAPCyAAQRBqQQApAqTDx4AANwIAIABBCGpBACkCnMPHgAA3AgAgAEEAKQKUw8eAADcCAA8LIABBEGpBACkCvMPHgAA3AgAgAEEIakEAKQK0w8eAADcCACAAQQApAqzDx4AANwIADwsgAEEQakEAKQLUw8eAADcCACAAQQhqQQApAszDx4AANwIAIABBACkCxMPHgAA3AgAPCyAAQRBqQQApAuzDx4AANwIAIABBCGpBACkC5MPHgAA3AgAgAEEAKQLcw8eAADcCAA8LIAhBYmpB//8DcUEISQ0HIAhB+P8DcUEoRg0GIAhBpn9qQf//A3FBCEkNBSAIQZx/akH//wNxQQhPDQkgAEEbNgIAIABBAToAFCAAIActAABBpH9qOgAEDwsgCkH///8HcUUNA0EBIQggCUH///8HcSAEdkEBcQ0HIABBAToAFCAAQQc2AgAgASADQQJqNgIMAkAgBy8BAiIBQQVLDQAgASEICyAAIAhBB3E6AAQPCyAFQQFNDQcCQAJAIAcvAQJBfmoOBAAJCQEJC0EFIQggBUEFSQ0IQQQhAgJAAkAgCkH///8HcQ0AQQYhCkEIIQkMAQtBBiEKQQghCQJAIAEQ2ICAgABBfWoOAgEACQtBCiEJQQghCkEGIQhBBiECCyABIAMg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gIAAIAIoAgAhBCACLwEKIQUgAi8BCCEGIANBADYCoAQgA0IANwOYBCADIAEpAgA3A5AEQQQhBwJAAkACQAJAAkADQCAHRQ0BIANBqARqIANBkARqEOeAgIAAIAMvAawEIggNAiADKAKoBCIIIAMoAqAENgIAIAMgCDYCoAQgB0F/aiEHDAALCyADQeADakEIaiADQZAEakEIaikDADcDACADQeADakEQaiADQZAEakEQaigCADYCACADIAMpA5AENwPgAyADQgA3A5gEIANBADYCoAQgA0EAKQOg6cmAADcDkARBBCEHAkADQCAHRQ0BIANBqARqIANBkARqEOqAgIAAAkAgAy8BrAQiCA0AIAMoAqgEIgggAygCoAQ2AgAgAyAINgKgBCAHQX9qIQcMAQsLIANBkARqEPuAgIAAIANB4ANqEPuAgIAADAILQQghByADQfgDakEIaiADQZAEakEIaikDADcDACADQfgDakEQaiADQZAEakEQaigCADYCACADIAMpA5AENwP4AyADQQA2AqAEIANCADcDmAQgAyABKQIANwOQBAJAA0AgB0UNASADQagEaiADQZAEahD4gICAAAJAIAMvAawEIggNACADKAKoBCIIIAMoAqAENgIAIAMgCDYCoAQgB0F/aiEHDAELCyADQZAEahD7gICAACADQfgDahD7gICAACADQeADahD7gICAAAwCCyADQdgCakEIaiIIIANBkARqQQhqKQMANwMAIANB2AJqQRBqIgcgA0GQBGpBEGooAgA2AgAgA0GIA2pBCGoiCSADQeADakEIaikDADcDACADQYgDakEQaiIKIANB4ANqQRBqKAIANgIAIANB8AJqQQhqIgsgA0H4A2pBCGopAwA3AwAgA0HwAmpBEGoiDCADQfgDakEQaigCADYCACADIAMpA5AENwPYAiADIAMpA+ADNwOIAyADIAMpA/gDNwPwAiADIAEpAgA3A5ACIANBqAJqIAooAgA2AgAgA0GQAmpBEGogCSkDADcDACADIAMpA4gDNwOYAiADQbwCaiAMKAIANgIAIANBtAJqIAspAwA3AgAgAyADKQPwAjcCrAIgA0HQAmogBygCADYCACADQcgCaiAIKQMANwMAIAMgAykD2AI3A8ACIANCADcDoAMgA0GoA2ogA0GQAmogA0GgA2ogBiAFEOyAgIAAAkAgAy8BtAMiCEUNACADQZACahD6gICAAAwCCyADKAKwAyEKIAMoAqwDIQsgAygCqAMhCSADQbgDaiAGIAUQ9oCAgAACQCADLwG8AyIIRQ0AIANBkAJqEPqAgIAADAILIAMoArgDIQwgA0HAA2ogA0HAAmoQ94CAgAACQCADLwHEAyIIRQ0AIANBkAJqEPqAgIAADAILIAMoAsADIgdBADoACCAHQQA2AQQgByAJNgIAIANB0ANqQgA3AwAgA0IANwPIAyADQcgDaiADQZACaiAHEPyAgIAAIghB//8DcUUNAiADQcgDaiADQZACahCDgYCAACADQZACahD6gICAAAwBCyADQZAEahD7gICAAAsgACAIOwHwAgwBCyADQQE6ANwDIANBADoA2wMgAykDoAMhDQJAQcQARQ0AIANBEGogA0GQAmpBxAD8CgAACyADQZABakEIaiIIIANByANqQQhqKQMANwMAIAMgAykDyAM3A5ABIAMgBTYCaCADIAw2AmQgAyAENgJgIAMgCjYCXCADIAs2AlggAyAJNgJUIANCADcDCCADIA03AwAgAy0A3AMhBCADLQDbAyEKIANB9ABqIAgpAwA3AgAgAyADKQOQATcCbCADIAo6AI0BIAMgBDoAjAEgAyAFOwGKASADIAY7AYgBIANCADcDgAEgAyAHNgJ8IANBADoAqAEgA0EANgKkASADIAk2AqABIANBrAFqIAMgA0GgAWoQhIGAgAACQCADLwGwASIIRQ0AIAMQhYGAgAAgACAIOwHwAgwBCyADQQA6AIcCIANBADoAhgIgAyACKAIARToAuAEgAygCrAEiCCgCACIHKAIYIAcoAhAiB2ogCC8BBEEDdGoiAigCACEFIAgvAQYhBiABKQIAIQ0gA0EBOgCIAgJAQcgARQ0AIANBvQFqQQFqQQBByAD8CwALIABBADsB8AIgA0EAOgC2ASADQQA6ALcBAkBBkAFFDQAgACADQZAB/AoAAAsgACANNwOQAQJAQSRFIgENACAAQZgBakEAQST8CwALIABCADcDyAEgACAFIAdqIAZBA3RqNgLEASAAIAI2AsABIAAgCDYCvAEgACADLQCIAjoA0AEgACADLQCHAjoA0QEgACADLQCGAjoA0gECQEHJAEUNACAAQdMBaiADQb0BakHJAPwKAAALAkAgAQ0AIABBnAJqQQBBJPwLAAsgAEIANwHiAiAAQeoCakEAOgAAIABB2AJqQQApA5inyIAANwMAIABB0AJqQQApA5CnyIAANwMAIABByAJqQQApA4inyIAANwMAIABBACkDgKfIgAA3A8ACIAAgAy0AuAE6AOACIAAgAy0AtwE6AOECIAAgAy0AtgE6AOsCCyADQbAEaiSAgICAAAvOAQECfyOAgICAAEEQayIFJICAgIAAIAUgA0EfcToADwJAAkBBICACQQRqIgJBASADdCIDIAIgA0sbIgNBf2pnayICQf//A3FBfWoiBkENTw0AIAFCASACrIanakF8aiAGQQJ0QYi8yoAAaiIDKAIANgIAIAMgATYCAAwBCyABQgFBICADQYOABGpBEHZBf2pnayIDrUL//wODhqdBEHRqQXxqIANB//8DcUECdEHwvMqAAGoiAygCADYCACADIAE2AgALIAVBEGokgICAgAAL3AEBAX8jgICAgABB8ABrIgMkgICAgAACQEHMAEUNACADQQxqQbT2wYAAQcwA/AoAAAsgAyACNgIMIAMgASkCADcDWAJAAkACQCACQYEESQ0AIANB5ABqIANB2ABqIAJBgHxqEIiBgIAAIAMvAWwiAg0BIAMoAmQhAgJAIAMoAmgiAUUNACACQQAgAfwLAAsgAyABNgIUIAMgAjYCEAsgA0EMakEIEImBgIAAIABBADsBTEHMAEUNASAAIANBDGpBzAD8CgAADAELIAAgAjsBTAsgA0HwAGokgICAgAALoAEBA38jgICAgABBEGsiAiSAgICAACABKAIEIQMgASgCACEEIAIgAC0ADEEDcSIBOgAPIABBBGohAAJAA0AgAUEDcUUNASACIAFBf2ogAXFBA3E6AAwgACABaEEDcUECdGoiASgCABCLgYCAACAEIAEoAgBB8AJBA0EAIAMoAgwRgYCAgACAgICAACACLQAMIQEMAAsLIAJBEGokgICAgAALIwAgACgCACABQfgsQQNBACAAKAIEKAIMEYGAgIAAgICAgAALdwECfyOAgICAAEEQayICJICAgIAAAkACQAJAIAEoAhAiA0UNACABIAMoAgA2AhAMAQsgAkEIaiABEOeAgIAAAkAgAi8BDCIBRQ0AIAAgATsBBAwCCyACKAIIIQMLIAAgAzYCACAAQQA7AQQLIAJBEGokgICAgAALYgEBfyOAgICAAEEgayICJICAgIAAIAJB3KbIgAA2AhAgAiABNgIMIAJBFGogAkEMakG4AhDogICAAAJAIAIvARwiAQ0AIAAgAigCFDYCAAsgACABOwEEIAJBIGokgICAgAALxQECAX8BfiOAgICAAEEgayIDJICAgIAAQoCAgIAQIQQCQAJAQQANAAJAAkAgAg0AQvj///8PIQQMAQsgASkCACIEpyACQQNBACAEQiCIpygCABGAgICAAICAgIAAIgFFrUIghiABrYQhBCABRQ0BCyADIAI2AhQgAyAEPgIQIANBADsBGCADQRBqIQIMAQsgAyAEQiCIPQEMIANBBGohAgsgACACKQIANwIAIABBCGogAkEIaigCADYCACADQSBqJICAgIAAC3cBAn8jgICAgABBEGsiAiSAgICAAAJAAkACQCABKAIQIgNFDQAgASADKAIANgIQDAELIAJBCGogARDqgICAAAJAIAIvAQwiAUUNACAAIAE7AQQMAgsgAigCCCEDCyAAIAM2AgAgAEEAOwEECyACQRBqJICAgIAAC2MBAX8jgICAgABBIGsiAiSAgICAACACQdymyIAANgIQIAIgATYCDCACQRRqIAJBDGpBgIAkEOuAgIAAAkAgAi8BHCIBDQAgACACKAIUNgIACyAAIAE7AQQgAkEgaiSAgICAAAvFAQIBfwF+I4CAgIAAQSBrIgMkgICAgABCgICAgBAhBAJAAkBBAA0AAkACQCACDQBCgID8/w8hBAwBCyABKQIAIgSnIAJBEEEAIARCIIinKAIAEYCAgIAAgICAgAAiAUWtQiCGIAGthCEEIAFFDQELIAMgAjYCFCADIAQ+AhAgA0EAOwEYIANBEGohAgwBCyADIARCIIg9AQwgA0EEaiECCyAAIAIpAgA3AgAgAEEIaiACQQhqKAIANgIAIANBIGokgICAgAAL6g0BKn8jgICAgABBwARrIgUkgICAgAAgBUEBOgAGIAUgAzsBBCAFQQhqQbCSyYAAIAVBBGoQ7YCAgAACQAJAIAUvARwiA0UNACAAIAM7AQwMAQtBAEIBQSAgBSgCDCIGQRxuIgdBBHRBf2pna62GpyAGQRxJGyEIIAUvARoiCSAFLwEYIgpsQf//A3FBA3QiCyAJQQN0IgxqIg1BB3IhDiAKQQN0IQ8gBSgCECIQQQR2IREgAUEcaiESIAFBCGohEyAFQcACaiEUIAVBqAJqIRUgBUGkAWpB8ABqIRYgBUGAAmohFyAFQewBaiEYIAVB2AFqIRkgBUG8AWohGiAFKAIUIRsgBSgCCCEcQQAhHUEAIR5BACEfA0ACQAJAAkACQAJAIARB//8DcSIgRQ0AIAVBIGogExDmgICAAAJAIAUvASQiAUUNACAAIAE7AQwMBwsgBSgCICEhIAVBKGogEhDpgICAAAJAIAUvASwiAUUNACAAIAE7AQwMBwsgBSgCKCEiIAVBMGogHBDugICAACAFQTBqQRBqIgEoAgAhIyAFQcgAaiAQEO+AgIAAIAUoAkghJCAFQdgAaiAREPCAgIAAIAUoAlghJSAFQegAaiAbEPGAgIAAIAUoAmghJiAFQfgAaiAHEPKAgIAAIAVB+ABqQRBqIicoAgAhKCAFQZABaiAIEPOAgIAAIBogBSkDMDcCACAaQQhqIAVBMGpBCGopAwA3AgAgGkEQaiABKQMANwIAIBkgBSkDSDcCACAZQQhqIAVByABqQQhqKQMANwIAIAUgDTYCuAEgBSALNgK0ASAFIAw2ArABIAUgDDYCrAFBACEDIAVBADYCqAEgBSAOICNqQXhxIiM2AtQBIAUgJCAjakEDakF8cSIkNgLoASAFICggJiAlICRqQQdqQXhxIiVqQQNqQXxxIilqQQNqQXxxIiYgBSgCkAFqQf//A2pBgIB8cSIqNgKkASAYQQhqIAVB2ABqQQhqKQMANwIAIBggBSkDWDcCACAXQQhqIAVB6ABqQQhqKQMANwIAIBcgBSkDaDcCACAWQQhqIAVBkAFqQQhqKQMANwIAIBYgBSkDkAE3AgAgFUEQaiAnKQMANwIAIBVBCGogBUH4AGpBCGopAwA3AgAgFSAFKQN4NwIAIAUgJTYC/AEgBSAmNgKQAiAFICk2AqQCIAUgCTsB0gIgBSAKOwHQAiAFIBs2AswCIAUgEDYCyAIgBSAGNgLEAiAFIBw2AsACQQAhAQJAA0AgDCABRg0BICIgAWogDCADaq03AwAgAyAPaiEDIAFBCGohAQwACwsgBSANNgK0BCAFICI2ArAEIAVByANqIAVBsARqIBoQ9ICAgAAgBSgCiAIgJWohAwJAIAUoAoQCIitBA3QiAUUNACADICJqQf8BIAH8CwALIAUoAuABICNqIScgBSgCjAIhLAJAIAUoAtwBIi1BA3QiAUUNACAnICJqQf8BIAH8CwALICIgJGoiAUEANgIMIAEgBSgC+AEiKDYCCCABIAUpAvABQiCJNwIAIAUoAuQBIS4CQCAoRQ0AIAFBEGpBACAo/AsACyAiICZqIgFBADYCDCABIAUoAqACIig2AgggASAFKQKYAkIgiTcCAAJAIChFDQAgAUEQakEAICj8CwALIAUgKTYCvAQgBSAiNgK4BCAFQdgCaiAFQbgEaiAVQfzEx4AAEPWAgIAAICEgJEEQajYCOCAhIC4gI2o2AjQgISAtNgIwICEgJzYCLCAhICwgJWo2AiggISArNgIkICEgAzYCICAhIAw2AhwgIUEANgIYICEgKjYCFCAhICI2AhAgBUEAOgDUAgJAQegARQ0AICFBPGogBUHIA2pB6AD8CgAACyAhICZBEGo2AqQBAkBB8ABFDQAgIUGoAWogBUHYAmpB8AD8CgAACyAhIAk7Aa4CICEgCjsBrAIgISAJOwGqAiAhIAo7AagCICFBoAJqIBRBCGopAgA3AgAgISAUKQIANwKYAiAhIAUtANQCOgCwAiAhIAIpAwA3AwAgIUIANwIIICEgICAJICAgCUkbIgE7Aa4CAkAgHUUNACAhIB02AgggISEDIB0oAgwiIkUNBCAhICI2AgwgIiAhNgIIIB0hAwwECyAeRQ0BICEgHjYCDCAhIQMgHigCCCIiRQ0CICEgIjYCCCAiICE2AgwgHiEDDAILIAAgHzYCCCAAIB02AgQgACAeNgIAIABBADsBDAwFCyAhQQA2AgwgISEdICEhHgwCCyAeICE2AghBACEdIAMhHgwBCyAdICE2AgwgAyEdCyAEIAFrIQQgAiACKQMAQgF8NwMAIB9BgIAkaiEfDAALCyAFQcAEaiSAgICAAAuVBAEKfyOAgICAAEHwAGsiAySAgICAACABLwESIQQgAS8BECEFAkACQAJAIAItAAINACAFIQIMAQsgAi8BACECIAMgASgCABDugICAACADKAIQIQYgA0EYaiABKAIIIgcQ74CAgAAgAygCGCEIIANBKGogB0EEdhDwgICAACADKAIoIQcgA0E4aiABKAIMEPGAgIAAIAMoAjghCSADQcgAaiABKAIEIgpBHG4iCxDygICAACAJIAcgCCAGIAQgBWxB//8DcSAEakEDdGpBB2pB+P///wFxakEDakH8////AXFqQQdqQfj///8BcWpBA2pB/P///wFxIQxBACEFIAMoAlghBAJAIApBG00NAEIBQSAgC0EEdEF/amdrrYanIQULIANB4ABqIAUQ84CAgAACQCACQQZ0QcAAaiIKIAQgDGpBA2pB/P///wFxIAMoAmAiBWpB//8DakGAgPz/AXEgBWtB/P///wFxIARrQfz///8BcSAJa0H4////AXEgB2tB/P///wFxIAhrQfj///8BcSAGa0EDdEFgcSIETQ0AIABBEGpBACkCyMTHgAA3AgAgAEEIakEAKQLAxMeAADcCACAAQQApArjEx4AANwIADAILIAQgCm4hBAsgAEEAOwEUIAAgBDsBEiAAIAI7ARAgACABKQIANwIAIABBCGogAUEIaikCADcCAAsgA0HwAGokgICAgAALmAEBBH8CQAJAIAENAEEAIQJBACEBQQAhA0EAIQRBACEFDAELQgFBICABQX9qZyIDa61C//8Dg4anIgG4RAAAAAAAAOo/ovwDIgJBJGwgAUEBdEEDakH8////B3EiBGohBUF/QQAgA2t0QX9zIQMLIAAgAzsBFCAAIAE2AgQgACACNgIAIAAgBTYCECAAIAQ2AgwgAEEANgIIC0UBAX8gAEEANgIIIAAgAUEPaiIBQQR2QT9qIgJBBnY2AgQgACACQQN2Qfj//x9xIgI2AgwgACACIAFBBHRBgH5xajYCAAtKAQF/IAAgATYCDCAAIAFBE2oiAkH8////AXFBcGo2AgQgACACIAFBAnRqIgJB/P///wdxQXBqNgIIIAAgAiABQQN0akF8cTYCAAtFAQF/IABBADYCCCAAIAFBH2oiAUEFdkE/aiICQQZ2NgIEIAAgAkEDdkH4//8PcSICNgIMIAAgAiABQQV0QYB4cWo2AgALmAEBBH8CQAJAIAENAEEAIQJBACEBQQAhA0EAIQRBACEFDAELQgFBICABQX9qZyIDa61C//8Dg4anIgG4RAAAAAAAAOo/ovwDIgJBHGwgAUEBdEEDakH8////B3EiBGohBUF/QQAgA2t0QX9zIQMLIAAgAzsBFCAAIAE2AgQgACACNgIAIAAgBTYCECAAIAQ2AgwgAEEANgIIC0IBAX8gACABNgIMIAAgAUETakF8cSICQXBqNgIEIAAgAiABQQJ0aiICQXBqNgIIIAAgAUEBdCACakED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cRuEIQMMJAsgA0Jvg0IQQgAgAkEBcRuEIQMMIwsgA0Jfg0IgQgAgAkEBcRuEIQMMIgsgA0K/f4NCwABCACACQQFxG4QhAwwhCyADQv9+g0KAAUIAIAJBAXEbhCEDDCALIANC/32DQoACQgAgAkEBcRuEIQMMHwsgA0L/e4NCgARCACACQQFxG4QhAwweCyADQv93g0KACEIAIAJBAXEbhCEDDB0LIANC/2+DQoAQQgAgAkEBcRuEIQMMHAsgA0L/X4NCgCBCACACQQFxG4QhAwwbCyADQv+/f4NCgMAAQgAgAkEBcRuEIQMMGgsgA0L//36DQoCAAUIAIAJBAXEbhCEDDBkLIANC//99g0KAgAJCACACQQFxG4QhAwwYCyADQv//e4NCgIAEQgAgAkEBcRuEIQMMFwsgA0L//3eDQoCACEIAIAJBAXEbhCEDDBYLIANC//9vg0KAgBBCACACQQFxG4QhAwwVCyADQv//X4NCgIAgQgAgAkEBcRuEIQMMFAsgA0L//79/g0KAgMAAQgAgAkEBcRuEIQMMEwsgA0L///9+g0KAgIABQgAgAkEBcRuEIQMMEgsgA0L///99g0KAgIACQgAgAkEBcRuEIQMMEQsgA0L///97g0KAgIAEQgAgAkEBcRuEIQMMEAsgA0L///93g0KAgIAIQgAgAkEBcRuEIQMMDwsgA0L///9vg0KAgIAQQgAgAkEBcRuEIQMMDgsgA0L///9fg0KAgIAgQgAgAkEBcRuEIQMMDQsgA0L///+/f4NCgICAwABCACACQQFxG4QhAwwMCyADQv////9+g0KAgICAAUIAIAJBAXEbhCEDDAsLIANC/////32DQoCAgIACQgAgAkEBcRuEIQMMCgsgA0L/////e4NCgICAgARCACACQQFxG4QhAwwJCyADQv////93g0KAgICACEIAIAJBAXEbhCEDDAgLIANC/////2+DQoCAgIAQQgAgAkEBcRuEIQMMBwsgA0L/////X4NCgICAgCBCACACQQFxG4QhAwwGCyADQv////+/f4NCgICAgMAAQgAgAkEBcRuEIQMMBQsgA0L//////36DQoCAgICAAUIAIAJBAXEbhCEDDAQLIANC//////99g0KAgICAgAJCACACQQFxG4QhAwwDCyADQv//////e4NCgICAgIAEQgAgAkEBcRuEIQMMAgsgA0L//////3eDQoCAgICACEIAIAJBAXEbhCEDDAELIANC//////8Pg0KAgICAgHBCACACQQFxG4QhAwsgACADPgIAIABBBGogA0IgiDwAAA8LAAu9AQEDfyOAgICAAEEQayIBJICAgIAAAkAgAEUNACABIAApAqgbNwMIIAAoAqgbIQIgACgCrBshAyAAQdQbahCkgICAACAAQegsaiABQQhqEMOAgIAAIABBgBJqIAFBCGoQjoGAgAAgAEEwaiABQQhqEI+BgIAAIABBGGogAUEIahDkgICAACAAQYQBaiABQQhqEMOAgIAAIAIgAEH4LEEDQQAgAygCDBGBgICAAICAgIAACyABQRBqJICAgIAAC+4BAQV/I4CAgIAAQcAAayICJICAgIAAIAJBHGogAEHICGoiAxCQgYCAACACKAI8IQQgAigCOCEFIAIoAhwhBiACQRxqIAMQkIGAgAACQCAERQ0AIAIoAihBqtWq1XogAigCPBshBANAIAVFDQEgAiAGKQIANwMQIAIgASkCADcDCCACQQhqEPuAgIAAIAQgARCRgYCAACAEQQxqIQQgBkEIaiEGIAVBf2ohBQwACwsCQCAAKALQCCIFRQ0AIAEoAgAgAygCACAFQTtsQQNBACABKAIEKAIMEYGAgIAAgICAgAALIAJBwABqJICAgIAACzQBAX8CQCAAKAIIIgJFDQAgASgCACAAKAIEIAJBAEEAIAEoAgQoAgwRgYCAgACAgICAAAsLmAEBA38jgICAgABBMGsiAiSAgICAACACIAEoAgQ2AiggAiABKAIIIgM2AiwgASgCACEEQWQhAQJAA0AgAUUNASACQQxqIAFBhKrIgABqKAIAQQJ0aiAENgIAIAQgAUHoqciAAGooAgAgA2xqIQQgAUEEaiEBDAALCwJAQSRFDQAgACACQQxqQST8CgAACyACQTBqJICAgIAACzcBAX8CQCAAKAIIIgJFDQAgASgCACAAKAIAIAJBLGxBA0EAIAEoAgQoAgwRgYCAgACAgICAAAsLzQIBBn8jgICAgABBMGsiASSAgICAACAAQZgBaiECIAAoArwBKAIAIQMCQCAALwHMASIERQ0AIANBPGogAygCECAEEJOBgIAAC0EAIQQgAkHQh8KAABCUgYCAACEFIABBADsBzAECQCAFQQFxDQAgASADQTxqIAMoAhAgAhCVgYCAAAJAAkAgAS8BAiIEDQAgASEDDAELIAAoArwBKAIAIQZBrM3HgAAhBQJAIARBAUcNACABQRRqQgA3AgAgAUEcakIANwIAIAFCADcCDCABQQE6AAggASADKAKYAkEBdDYCBCABQQRqIQULIAFBJGogACAGIAUQloGAgAAgAS8BKCIEDQEgAUEsaiABKAIkIgNBPGogAygCECACEJWBgIAAIAEvAS4iBA0BIAFBLGohAwsgACADLwEAOwHMAUEAIQQLIAFBMGokgICAgAAgBAs9ACAAKAIEIAFqIAJB//8DcUEkbGoiAiACLwEgQX9qIgI7ASACQCACQf//A3ENACAAIAAoAghBf2o2AggLC6oBAQJ/I4CAgIAAQSBrIgIkgICAgAAgAkEYaiAAQRhqIgMoAgA2AgAgAkEQaiAAQRBqKQIANwMAIAJBCGogAEEIaikCADcDACACIAApAgA3AwBBACEAAkAgAy8BACABLwEYRw0AIAIgARCXgYCAAEEBcUUNACACQQhqIAFBCGoQl4GAgABBAXFFDQAgAkEQaiABQRBqEJeBgIAAIQALIAJBIGokgICAgAAgAAtOAQF/I4CAgIAAQRBrIgQkgICAgAAgBEEMaiABIAIgAxCYgYCAAAJAIAQvAQ4iAw0AIAAgBC8BDDsBAAsgACADOwECIARBEGokgICAgAAL4gcBBH8jgICAgABB4BBrIgQkgICAgAACQAJAIAIgASgCvAEoAgBGDQAgBEEIaiABIAIgAxCZgYCAAAJAIAQvAQwiAUUNACAAIAE7AQQMAgsgAEEAOwEEIAAgBCgCCDYCAAwBCyAEQRBqIAEgAiADEJmBgIAAAkAgBC8BFCICRQ0AIAAgAjsBBAwBCyAEKAIQIQICQCABLwHMAUUNACAEQRhqIAJBPGogAigCECABQZgBaiIDEJWBgIAAAkACQCAELwEaIgVFDQAgBCAFOwEcIARCgBA3AsAQIARBsL/HgAA2ArgQIAQgBEEgajYCvBACQAJAAkAgBEG4EGogBEEcahCagYCAACIFQf//A3ENACAEKAK8ECEGIAQoAsQQIQcMAQsgBEG4EGpBoOnJgABB2AAQqICAgAAgBC8B0BANASAEQaAQakEQaiAEQbgQakEQaikCADcDACAEQaAQakEIaiIGIARBuBBqQQhqKQIANwMAIAQgBCkCuBA3A6AQAkAgBiAEQRxqEJqBgIAAQf//A3FFDQAgBEGgEGoQqYCAgAAMAgsgBEHUEGogBEGgEGoQqoCAgAAgBEGgEGoQqYCAgAAgBC8B3BANASAEKALYECEHIAQoAtQQIQYLIAYgBxCAgICAACAFQf//A3FFDQBBoOnJgAAgBiAHELaAgIAACyADQgA3AwBBACEFIANBGGpBADYCACADQRBqQgA3AwAgA0EIakIANwMADAELIAQvARghBQsgASAFOwHMAQsCQCABKAK4ASIDRQ0AIAFBADYCuAEgAUEAOwHOAQJAIAEgAxCbgYCAACIFQf//A3FFDQAgBCAFOwEeIARCgBA3AsAQIARBsL/HgAA2ArgQIAQgBEEgajYCvBACQAJAIARBuBBqIARBHmoQnIGAgAAiBUH//wNxRQ0AIARBuBBqQaDpyYAAQdwAEKiAgIAAIAQvAdAQDQIgBEGgEGpBEGogBEG4EGpBEGopAgA3AwAgBEGgEGpBCGoiBiAEQbgQakEIaikCADcDACAEIAQpArgQNwOgEAJAIAYgBEEeahCcgYCAAEH//wNxRQ0AIARBoBBqEKmAgIAADAMLIARB1BBqIARBoBBqEKqAgIAAIARBoBBqEKmAgIAAIAQvAdwQDQIgBCgC2BAhByAEKALUECEGDAELIAQoArwQIQYgBCgCxBAhBwsgBiAHEICAgIAAIAVB//8DcUUNAEGg6cmAACAGIAcQtoCAgAALIAMgAUGQAWoiBRCdgYCAACAFIAMQnoGAgAALIAEQn4GAgAAgACACNgIAIABBADsBBAsgBEHgEGokgICAgAALYwECfwJAAkAgAC0ABCICIAEtAARGDQBBACEDDAELQQEhAwJAAkAgAg4DAgABAgsgAC0AACABLQAARg8LIAAvAQAgAEECai0AAEEQdHIgAS8BACABQQJqLQAAQRB0ckYPCyADC+ACAQR/I4CAgIAAQRBrIgQkgICAgAAgASgCBCACaiEFAkADQCABLwFmIgZBAkkNASAFIAZBf2oiBkH//wNxQSRsai8BIA0BIAEgBjsBZiABIAIgBhDIgYCAAAwACwsgBEEMaiABIAIgAxDJgYCAAAJAAkAgBC0ADkUNACAAQQA7AQIgACAELwEMIgE7AQAgBSABQSRsaiIBIAEvASBBAWo7ASAMAQsCQCABLwFkRQ0AIABBgIAENgEADAELAkAgASgCDCIGIAEvAWYiB0sNAAJAIAEoAgggBrhEzczMzMzM7D+i/ANPDQAgAEGAgOgANgEADAILIABBgIAENgEADAELIAUgASACIAMgBxDKgYCAACIGQf//A3EiAkEkbGpBATsBICABIAEoAghBAWo2AggCQCACIAEvAWZHDQAgASAGQQFqOwFmCyAAIAY7AQAgAEEAOwECCyAEQRBqJICAgIAAC6wQARd/I4CAgIAAQbAEayIEJICAgIAAIAIoApgCIQUCQCADLQAERQ0AIAVCAUEgIAMoAgBBf2pna61C//8Dg4anIgYgBSAGSxshBQsgAigCoAIhBgJAIAMtAAxFDQAgBkIBQSAgAygCCEF/amdrrUL//wODhqciByAGIAdLGyEGCyACKAKcAiEIAkAgAy0AFEUNACAIQgFBICADKAIQQX9qZ2utQv//A4OGpyIHIAggB0sbIQgLIAIoAqQCIQkCQCADLQAcRQ0AIAlCAUEgIAMoAhhBf2pna61C//8Dg4anIgMgCSADSxshCQsgAi8BqgIhCiACLwGoAiELIAQgAUEYahDmgICAAAJAAkACQCAELwEEIgMNACAEKAIAIQcgBEEIaiAFEO6AgIAAIAQoAhghAyAEQSBqIAYQ74CAgAAgBCgCICEMIARBMGogBkEEdhDwgICAACAEKAIwIQ0gBEHAAGogCRDxgICAACAEKAJAIQ4gBEHQAGogCEEcbiIPEPKAgIAAIA4gDSAMIAMgCiALbEH//wNxQQN0IhAgCkEDdCIRaiISakEHakF4cSITakEDakF8cSIUakEHakF4cSINakEDakF8cSEMIAQoAmAhDkEAIQMCQCAIQRtNDQBCAUEgIA9BBHRBf2pna62GpyEDCyAEQegAaiADEPOAgIAAIARBmAFqIARBCGpBCGopAwA3AgAgBEGgAWogBEEIakEQaikDADcCACAEQbQBaiAEQSBqQQhqKQMANwIAIAQgEjYCjAEgBCAQNgKIASAEIBE2AoQBIAQgETYCgAEgBEEANgJ8IAQgEzYCqAEgBCAUNgK8ASAEIAQpAwg3ApABIAQgBCkDIDcCrAEgBCAOIAxqQQNqQXxxIg4gBCgCaGpB//8DakGAgHxxIhA2AnggBEHIAWogBEEwakEIaikDADcCACAEQdwBaiAEQcAAakEIaikDADcCACAEQfABaiAEQegAakEIaikDADcCACAEQYQCaiAEQdAAakEIaikDADcCACAEQYwCaiAEQdAAakEQaikDADcCACAEIA02AtABIAQgDjYC5AEgBCAMNgL4ASAEIAQpAzA3AsABIAQgBCkDQDcC1AEgBCAEKQNoNwLoASAEIAQpA1A3AvwBIAQgCjsBpgIgBCALOwGkAiAEIAk2AqACIAQgBjYCnAIgBCAINgKYAiAEIAU2ApQCIAQgASkCLDcDqAICQAJAAkAgEEGBgCRPDQAgBEGwAmogAUEsahDpgICAACAELwG0AiIDDQJBgIAkIRUgBEGwAmohAwwBCyAEQbgCaiAEQagCaiAQEOuAgIAAIAQvAcACIgMNASAEQbgCaiEDIAQoArwCIRULIAJBEGohCSAEQZQCaiEPIARB/AFqIRYgBEGQAWohFyALQQN0IQUgAygCACEIQQAhBkEAIQMDQCARIANGDQMgCCADaiARIAZqrTcDACAGIAVqIQYgA0EIaiEDDAALCyAHIAEoAig2AgAgASAHNgIoCyAAIAM7AQQMAQsgBCASNgKkBCAEIAg2AqAEIARBuANqIARBoARqIBcQ9ICAgAAgBCgC3AEgDWohBgJAIAQoAtgBIhdBA3QiA0UNACAGIAhqQf8BIAP8CwALIAQoArQBIBNqIQUgBCgC4AEhGAJAIAQoArABIhlBA3QiA0UNACAFIAhqQf8BIAP8CwALIAggFGoiA0EANgIMIAMgBCgCzAEiEjYCCCADIAQpAsQBQiCJNwIAIAQoArgBIRoCQCASRQ0AIANBEGpBACAS/AsACyAIIA5qIgNBADYCDCADIAQoAvQBIhI2AgggAyAEKQLsAUIgiTcCAAJAIBJFDQAgA0EQakEAIBL8CwALIAQgDDYCrAQgBCAINgKoBCAEQcgCaiAEQagEaiAWQfzEx4AAEPWAgIAAIAcgFEEQajYCOCAHIBogE2o2AjQgByAZNgIwIAcgBTYCLCAHIBggDWo2AiggByAXNgIkIAcgBjYCICAHIBE2AhwgB0EANgIYIAcgEDYCFCAHIAg2AhAgBEEAOgDEAgJAQegARQ0AIAdBPGogBEG4A2pB6AD8CgAACyAHIA5BEGo2AqQBAkBB8ABFDQAgB0GoAWogBEHIAmpB8AD8CgAACyAHIAo7Aa4CIAcgCzsBrAIgByAKOwGqAiAHIAs7AagCIAdBoAJqIA9BCGopAgA3AgAgByAPKQIANwKYAiAHIAQtAMQCOgCwAiAHIAEpAwA3AwAgB0IANwIIIAdBADsBrgIgASABKAJcIBVqNgJcIAEgASkDAEIBfDcDACAHIAIvAa4COwGuAiAHIAIvAawCOwGsAiAHQRBqIQUgBygCGCAHKAIQaiEDIAIvAa4CQQFqIREgAigCGCACKAIQaiEGAkADQCARQX9qIhFFDQEgBSAJIAMgBkEAIAcvAawCEKCBgIAAIQggBkEIaiEGIANBCGohAyAIQf//A3FFDQALIAEgBxCwgYCAACAAIAg7AQQMAQsCQCABKAJ0RQ0AIAEoAnAhAyABKAJsIQYDQCADRQ0BAkAgBigCACIRKAIAIAJHDQAgESAHNgIACyAGQQRqIQYgA0F/aiEDDAALCyAHIAI2AgwCQAJAIAIoAggiA0UNACAHIAM2AgggAyAHNgIMDAELIAdBADYCCCABIAc2AlQLIAIgBzYCCCAHIAIoAgwiAzYCDCACKAIIIQYCQAJAIANFDQAgAyAGNgIIDAELIAEgBjYCWAsgASACELCBgIAAIAAgBzYCACAAQQA7AQQLIARBsARqJICAgIAACzIBAX8CQCAAQYiuyoAAQdYAEJqAgIAAIgJB//8DcQ0AIAAgAS8BABClhICAACECCyACC+8GAwd/AX4FfyOAgICAAEHQAGsiAiSAgICAACACQQhqQQJqIAFBC2otAAA6AAAgAiABLwAJOwEIIAEtAAghAyABKAIEIQQgASgCACEFIAEoAgwhBiABKAIQIQcgABCBgoCAAAJAAkAgACgCkAFBFEECQQAgACgClAEoAgARgICAgACAgICAACIBDQBBASEGDAELIAIgAEGQAWoiCCkDACIJNwMQIAJBJGogAkEQaiAGIAcQgISAgAACQCACLwEsIgYNACACKAIoIQcgAigCJCEKAkACQCADQQFxRQ0AIAJBDGpBAmogAkEIakECai0AADoAACACIAIvAQg7AQwMAQsgAkEAOgBEIAJBMGogAkEQaiAFIAQQgISAgAACQCACLwE4IgZFDQAgB0UNAiAJpyAKIAdBAEEAIAlCIIinKAIMEYGAgIAAgICAgAAMAgsgAi0ARCEDIAIoAjQhBCACKAIwIQULIAEgAzoACCABIAQ2AgQgASAFNgIAIAEgAi8BDDsACSABQQtqIAJBDmotAAA6AAAgASAHNgIQIAEgCjYCDCACQRBqIAAoArwBKAIAIgNBIGoiBCADKAIQIAcQwIGAgABBJiEGAkACQCACLwEYDQAgA0EQaiEFIAIoAhAhBgJAIAIoAhQiB0UNACAGIAEoAgwgB/wKAAALIAYgBSgCACILayEHIAEoAgAhDCABKAIQIQoCQAJAAkAgAS0ACEEBcQ0AIAJBJGogBCALIAEoAgQiDRDAgYCAAEEmIQYgAi8BLA0CIAIoAiQhBgJAIAIoAigiC0UNACAGIAwgC/wKAAALIAJBADoAICAGIAUoAgAiC2shDAwBCyACQQE6ACALIAIgDTYCNCACIAw2AjAgAiAKNgJAIAIgBzYCPCACIAItACAiDjoAOEEAIQYgAkEANgJIIAIgBTYCRCACQcwAaiADQagBaiALIAJBMGogAkHEAGoQxoGAgAACQAJAAkAgAi8BTg4CBQABC0EnIQYgDkEBcUUNAQwCC0EoIQYgDkEBcQ0BCyAEIAUoAgAiACAMIABqIA0QwYGAgAALIAQgBSgCACIAIAcgAGogChDBgYCAAAsgASAIEJ2BgIAADAELIAAgAi8BTDsBzgEgACABNgK4AQwBCyAIIAEQnoGAgAALIAJB0ABqJICAgIAAIAYLMgEBfwJAIABB3q7KgABB2gAQmoCAgAAiAkH//wNxDQAgACABLwEAEKWEgIAAIQILIAILcAECfyABKAIEIQIgASgCACEBAkAgACgCECIDRQ0AIAEgACgCDCADQQBBACACKAIMEYGAgIAAgICAgAALAkAgAC0ACEEBcQ0AIAAoAgQiA0UNACABIAAoAgAgA0EAQQAgAigCDBGBgICAAICAgIAACwsiACAAKAIAIAFBFEECQQAgACgCBCgCDBGBgICAAICAgIAAC9oCAQV/I4CAgIAAQcAAayIBJICAgIAAIAFBDGogAEEAIAAoArwBEM2BgIAAIAFBDGohAgJAIAEtABgNACABQRxqIABBhMXHgAAQuYGAgAAgACgCvAEiAiABKQIcNwIAIAJBCGogAUEcakEIaigCADYCACABQSxqIABBACABQRxqEM2BgIAAIAFBLGohAgsgACACLwEEOwHIASAAIAIoAgA7AcoBIAAoArwBIgIoAgAiAygCGCADKAIQIgNqIAIvAQRBA3RqIgQoAgAhBSACLwEGIQIgACAENgLAASAAIAUgA2ogAkEDdGo2AsQBAkAgAC8BzAFFDQAgABCSgYCAACICQf//A3FFDQAgASACOwE+IAFBPmoQ1YGAgAAgAEGYAWoiAkEYakEANgIAIAJBEGpCADcDACACQQhqQgA3AwAgAkIANwMAIABBADsBzAELIAFBwABqJICAgIAAC5MVBAh/AX4HfwF+I4CAgIAAQcABayIGJICAgIAAIARBA3QhByAAKAIAIQggAigCACEJIAEoAgAhCiADKAIAIQsgBSAALwGcAiIMIAEvAZwCIg0gDCANSRsiDSAFIA1JGyAEayENAkAgAikDACIOQoCAgIDAA4NCAFENACAOpyAIaiIPIAdqIRACQCAOQoCAgIDAAINQDQAgAEEcaiERIA8gBEEDdGohEiAQIQwgDSEFA0ACQAJAIAVFDQAgDCkDAEIDg0IBUg0BIAYgACgCKCAAKAIAIhNqNgIMIAZBEGogBkEMaiASIBNrEKGBgIAAIAYoAhAhFCARIBMgEyAGKAIUIhUoAgBqIBUoAgQQooGAgAAgBkEMaiAUEKOBgIAAIAwgDCkDAEJ8gzcDAAwBCwJAAkAgDSAALwGcAiIMRg0AIAxBAWohBSACKAIAIAAoAgBqIQwCQANAIAVBf2oiBUUNASAMKQMAIQ4gDEEIaiEMIA5CA4NCAVENAwwACwsgAiACKQMAQv////+/f4MiDjcDAAwECyACIAIpAwBC/////79/gyIONwMADAMLIAIpAwAhDgwCCyASQQhqIRIgDEEIaiEMIAVBf2ohBQwACwsCQCAOQoCAgICAAoNQDQAgAEGYAWohFCAPIARBA3RqIRIgECEMIA0hBQNAAkACQCAFRQ0AIAwtAAVBIHFFDQEgBiAAKAKUASAAKAIAIhNqNgIcIAZBIGogBkEcaiASIBNrEKSBgIAAIAYtAChFDQEgFCATIAYoAiQvAQAQpYGAgAAgBkEcaiAGKAIgEKaBgIAAIAwgDCkDAEL///////93gzcDAAwBCwJAAkAgDSAALwGcAiIMRg0AIAxBAWohBSACKAIAIAAoAgBqIQwCQANAIAVBf2oiBUUNASAMLQAFIRIgDEEIaiEMIBJBIHENAwwACwsgAiACKQMAQv//////fYMiDjcDAAwECyACIAIpAwBC//////99gyIONwMADAMLIAIpAwAhDgwCCyAMQQhqIQwgEkEIaiESIAVBf2ohBQwACwsCQCAOQoCAgICAAYNQDQAgAEEsaiETIBAhBSANIQwDQAJAAkACQAJAAkAgDEUNACAFKQMAQhqIpyISQf//A3ENAQwECyANIAAvAZwCIgxHDQEMAgsgEyAAKAIAIBIQk4GAgAAMAgsgDEEBaiEFIAIoAgAgACgCAGohDANAIAVBf2oiBUUNASAMKAECIRIgDEEIaiEMIBJBgPj/H3ENBAwACwsgAiACKQMAQv//////foM3AwAMAgsgBUEIaiEFIAxBf2ohDAwACwsCQCANQQN0IgxFDQAgEEEAIAz8CwALIAAvAZwCIQwLIAkgCGohBSALIApqIRIgAykDACEOAkACQCANIAxB//8DcUkNACAOQoCAgIBwgyEOIAIoAgAhEwwBCyACKQMAIhZCgICAgPADgyAOQoCAgICAvH+DhCAWIA6EQoCAgICAwACDhCEOIBanIRMLIAUgB2ohCiASIAdqIQwgAiAOIBOthDcDAAJAAkACQCADLQAEQRxxRQ0AIABBLGohCSAAQZgBaiEHIABBHGohCCASIARBA3QiE2ohEiAFIBNqIRMgCiEFA0AgDUUNAiAFQvz//5+AgHdC////n4CAdyAMKQMAIg5CA4NCAVEbIA6DNwMAAkAgDCkDACIOQgODQgFSDQAgBiABKAIoIAEoAgAiFGo2AiwgBkEwaiAGQSxqIBIgFGsQp4GAgAACQAJAIAYtADgNAEEAIQRBACEVDAELIAYoAjAgFGohBCAGKAI0IRULIAYgACgCKCAAKAIAIhRqNgI8IAZBwABqIAggFCAVEKiBgIAAAkAgBi8BSEUNAEEiIRUMBQsgBigCQCEVAkAgBigCRCIRQQJ0IgNFDQAgFSAEIAP8CgAACyAGIBE2AlAgBiAVIAAoAgBrNgJMAkAgBkE8aiATIBRrIAZBzABqEKmBgIAAQf//A3FFDQAgCCAAKAIAIBUgERCigYCAAEEhIRUMBQsgBSAFKQMAQnyDQgGENwMAIAIgAikDAEKAgICAwACENwMAIAwpAwAhDgsCQCAOQoCAgICAgAiDUA0AIAYgASgClAEgASgCACIRajYCVCAGQdgAaiAGQdQAaiASIBFrEKqBgIAAIAAoAgAhBCAGLwFYIRQCQAJAAkACQAJAIAEgAEcNACAAKAKcASAEaiAUQRxsaiIVIBUvARhBAWo7ARggBiAAKAKUASAAKAIAIhVqNgJcIAZB4ABqIAZB3ABqIBMgFWsQq4GAgAAgBi8BbEUNAUEgIRUMCQtBICEVIAAoApQBIARqIgNBfGooAgAgA0F4aigCAE8NCCAGIAA2AnAgBiABNgJ0IAZB+ABqIAcgBCABKAKcASARaiAUQRxsaiIVIAZB8ABqEKyBgIAAIAYtAHpFDQEgACgCnAEgACgCAGogBi8BeCIRQRxsaiIUIBQvARhBAWo7ARgMAwsgBigCZCEVIAYtAGhFDQEgByAAKAIAIBUvAQAQpYGAgAAgFS8BACAURw0BIAUgBSkDAEKAgICAgIAIhDcDAAwDCyAGQfwAaiAVIAEgABCtgYCAAAJAIAYvAZABRQ0AQR0hFQwHCyAGQQA2ApgBIAYgADYClAEgBkGeAWogByAAKAIAIAZB/ABqIBQgBkGUAWoQroGAgABBHiEVAkACQCAGLwGiAQ4CAAgBCyAGLwGeASAUIAYtAKABGyERDAILQR8hFQwGCyAVIBQ7AQAgBSAFKQMAQoCAgICAgAiENwMAIAIgAikDAEKAgICAgAKENwMADAELIAYgACgClAEgACgCACIUajYCpAEgBkGoAWogBkGkAWogEyAUaxCrgYCAAEEgIRUgBi8BtAENBCAGKAKsASEUAkAgBi0AsAFFDQAgByAAKAIAIBQvAQAQpYGAgAAgFC8BACARQf//A3FHDQAgBSAFKQMAQoCAgICAgAiENwMADAELIBQgETsBACAFIAUpAwBCgICAgICACIQ3AwAgAiACKQMAQoCAgICAAoQ3AwALAkAgDCgBAkGA+P8fcUUNACACIAIpAwBCgICAgIABhDcDAAJAIAEgAEcNACAFIAUpAwBC////n4CAf4MgDCkDACIOQoCAgOD//wCDhDcDACAAKAIwIAAoAgBqIA5CGoinQf//A3FBJGxqIhQgFC8BIEEBajsBIAwBCyAGQboBaiAJIAAoAgAgASgCMCABKAIAaiAMKQMAQhqIpyIUQf//A3FBJGxqIBQQr4GAgABBGyEVAkACQCAGLwG+AQ4CAQYAC0EcIRUMBQsCQAJAIAYtALwBRQ0AIAYvAboBIRQMAQsgDCkDAEIaiKchFAsgBSAUrUL//wODQhqGIAUpAwBC////n4CAf4OENwMACyASQQhqIRIgDEEIaiEMIBNBCGohEyAFQQhqIQUgDUF/aiENDAALCyANQQN0IgVFDQAgCiAMIAX8CgAAC0EAIRUgAC8BnAIgAS8BnAIiAE0NACAKIABBf2pB//8DcUEDdGoiACkDACIOQoCAgICAgAODQoCAgICAgANSDQAgACAOQv///////3yDNwMACyAGQcABaiSAgICAACAVC6QCAwZ/AX4CfyOAgICAAEEQayIDJICAgIAAAkACQCABKAIAIgRBfGooAgBFDQAgBEFwaiEFIARBdGohBiAEQXhqKAIAIgdBf2oiCCACELqBgIAAIgmncSEBIAlCOYinIQoDQCAEIAFqLAAAIgtFDQEgB0UNAQJAIAtBf0oNACAKIAtB/wBxRw0AIAIgBigCACAEaiABQQJ0aiILKAIARw0AIAUoAgAgBGogAUEDdGohAUEBIQcMAwsgB0F/aiEHIAFBAWogCHEhAQwACwtBACEBIANBDmpBADoAACADQQA7AQxBACEHQQAhCwsgACAHOgAIIAAgATYCBCAAIAs2AgAgACADLwEMOwAJIABBC2ogA0EOai0AADoAACADQRBqJICAgIAAC7EBACAAKAIAIAFqIAIgACgCCCABamsiAUEHdkH4//8PcWoiAEJ/QQAgA0ECdEEPakEEdiIDQcAAIAFBBHZBP3EiAWsiAiADIAJJGyICa0E/ca2IIAGthiAAKQMAhDcDACAAQQhqIQEgAyACayEAAkADQCAAQcEASQ0BIAFCfzcDACABQQhqIQEgAEFAaiEADAALCwJAIABFDQAgASABKQMAQn9BACAAa0E/ca2IhDcDAAsLNwEBfyAAKAIAIgIgASACIAJBdGooAgBqa0ECdmpBAToAACAAKAIAQXxqIgAgACgCAEF/ajYCAAukAgMGfwF+An8jgICAgABBEGsiAySAgICAAAJAAkAgASgCACIEQXxqKAIARQ0AIARBcGohBSAEQXRqIQYgBEF4aigCACIHQX9qIgggAhC6gYCAACIJp3EhASAJQjmIpyEKA0AgBCABaiwAACILRQ0BIAdFDQECQCALQX9KDQAgCiALQf8AcUcNACACIAYoAgAgBGogAUECdGoiCygCAEcNAEEBIQcgBSgCACAEaiABQQF0aiEBDAMLIAdBf2ohByABQQFqIAhxIQEMAAsLQQAhASAD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BiACIAEvAYgBOwEEIAJBCGpBsJLJgAAgAkEEahDtgICAAAJAIAIvARwiBEUNACAAIAQ7AQQMAgsgAi8BGCEJIAIvARohCiACKAIMIQQgAigCFCELIAIoAhAhByACQSBqIAIoAggiDBDugICAACACKAIwIQ0gAkE4aiAHEO+AgIAAIAIoAjghDiACQcgAaiAHQQR2EPCAgIAAIAIoAkghDyACQdgAaiALEPGAgIAAIAIoAlghECACQegAaiAEQRxuIhEQ8oCAgAAgECAPIA4gDSAKIAlsQf//A3FBA3QiEiAKQQN0IghqIhNqQQdqQXhxIhRqQQNqQXxxIg5qQQdqQXhxIg9qQQNqQXxxIRAgAigCeCEVQQAhDQJAIARBHEkNAEIBQSAgEUEEdEF/amdrrYanIQ0LIAJBgAFqIA0Q84CAgAAgAkG0AWogAkEgakEIaikDADcCACACQbwBaiACQSBqQRBqKQMANwIAIAJB0AFqIAJBOGpBCGopAwA3AgAgAiATNgKoASACIBI2AqQBIAIgCDYCoAEgAiAINgKcASACQQA2ApgBIAIgFDYCxAEgAiAONgLYASACIAIpAyA3AqwBIAIgAikDODcCyAEgAiAVIBBqQQNqQXxxIhIgAigCgAFqQf//A2pBgIB8cSIVNgKUASACQeQBaiACQcgAakEIaikDADcCACACQfgBaiACQdgAakEIaikDADcCACACQYwCaiACQYABakEIaikDADcCACACQaACaiACQegAakEIaikDADcCACACQagCaiACQegAakEQaikDADcCACACIA82AuwBIAIgEjYCgAIgAiAQNgKUAiACIAIpA0g3AtwBIAIgAikDWDcC8AEgAiACKQOAATcChAIgAiACKQNoNwKYAiACIAo7AcICIAIgCTsBwAIgAiALNgK8AiACIAc2ArgCIAIgBDYCtAIgAiAMNgKwAgJAAkAgBigCCCIHRQ0AIAcgBigCDCIENgIMDAELIAEgBigCDCIENgJUCwJAAkAgBEUNACAEIAYoAgg2AggMAQsgBSAGKAIINgIACyAGKAIQIQsCQCAGKAIUIgRFDQAgC0EAIAT8CwALIAEgASgCaCAGLwGuAmtBAWo2AmgCQCABLQCNAUECRw0AIAEtAIQBRQ0AAkAgASgCgAEiBCAGLwGuAiIHTw0AIAFBAToAjQEMAQsgASAEIAdrNgKAAQsgAkGwAmohDCACQZgCaiERIAJBrAFqIRYgCUEDdCENQQAhB0EAIQQCQANAIAggBEYNASALIARqIAggB2qtNwMAIAcgDWohByAEQQhqIQQMAAsLIAIgEzYCqAQgAiALNgKkBCACQbgDaiACQaQEaiAWEPSAgIAAIAIoAvgBIA9qIQcCQCACKAL0ASIWQQN0IgRFDQAgByALakH/ASAE/AsACyACKALQASAUaiENIAIoAvwBIRcCQCACKALMASIYQQN0IgRFDQAgDSALakH/ASAE/AsACyALIA5qIgRBADYCDCAEIAIoAugBIhM2AgggBCACKQLgAUIgiTcCACACKALUASEZAkAgE0UNACAEQRBqQQAgE/wLAAsgCyASaiIEQQA2AgwgBCACKAKQAiITNgIIIAQgAikCiAJCIIk3AgACQCATRQ0AIARBEGpBACAT/AsACyACIBA2ArAEIAIgCzYCrAQgAkHIAmogAkGsBGogEUH8xMeAABD1gICAACAGIA5BEGo2AjggBiAZIBRqNgI0IAYgGDYCMCAGIA02AiwgBiAXIA9qNgIoIAYgFjYCJCAGIAc2AiAgBiAINgIcIAZBADYCGCAGIBU2AhQgBiALNgIQIAJBADoAxAICQEHoAEUNACAGQTxqIAJBuANqQegA/AoAAAsgBiASQRBqNgKkAQJAQfAARQ0AIAZBqAFqIAJByAJqQfAA/AoAAAsgBiAJOwGsAiAGIAo7AaoCIAYgCTsBqAIgBkEBOwGuAiAGIAM2AgggBiACLQDEAjoAsAIgBkGgAmogDEEIaikCADcCACAGIAwpAgA3ApgCAkACQCADKAIMIgRFDQAgBiAENgIMIAQgBjYCCAwBCyAGQQA2AgwgBSAGNgIACyADIAY2AgwgASAGKQMAQgF8NwMIIAYgASkDACIaNwMAIAEgGkIBfDcDAAJAIAEoAnRFDQAgASgCcCEEIAEoAmwhBwNAIARFDQECQCAHKAIAIggoAgAgBkcNACABKAJUIQMgCEEBOgAIIAhBADYBBCAIIAM2AgALIAdBBGohByAEQX9qIQQMAAsLIABBADsBBCAAIAY2AgAgASgCfEEAOgAIDAELIAJBAToAtgQgAiABLwGIATsBtAQgAkG4BGpBsJLJgAAgAkG0BGoQ7YCAgAACQCACLwHMBCIERQ0AIAAgBDsBBAwBCyACLwHKBCENIAIvAcgEIQkgAigCxAQhBiACKALABCEEIAIoArwEIQcgAigCuAQhAyACQdAEaiABQRhqEOaAgIAAAkACQCACLwHUBCIMDQAgAigC0AQhCyACQdgEaiADEO6AgIAAIAIoAugEIQogAkHwBGogBBDvgICAACACKALwBCEOIAJBgAVqIARBBHYQ8ICAgAAgAigCgAUhDyACQZAFaiAGEPGAgIAAIAIoApAFIRAgAkGgBWogB0EcbiIVEPKAgIAAIBAgDyAOIAogDSAJbEH//wNxQQN0IhIgDUEDdCIIaiITakEHakF4cSIUakEDakF8cSIOakEHakF4cSIPakEDakF8cSEKIAIoArAFIQxBACEQAkAgB0EbTQ0AQgFBICAVQQR0QX9qZ2uthqchEAsgAkG4BWogEBDzgICAACACQegFaiACQdgEakEIaikDADcCACACQfAFaiACQdgEakEQaikDADcCACACQYQGaiACQfAEakEIaikDADcCACACIBM2AtwFIAIgEjYC2AUgAiAINgLUBSACIAg2AtAFIAJBADYCzAUgAiAUNgL4BSACIA42AowGIAIgAikD2AQ3AuAFIAIgAikD8AQ3AvwFIAIgDCAKakEDakF8cSIQIAIoArgFakH//wNqQYCAfHEiEjYCyAUgAkGYBmogAkGABWpBCGopAwA3AgAgAkGsBmogAkGQBWpBCGopAwA3AgAgAkHABmogAkG4BWpBCGopAwA3AgAgAkHUBmogAkGgBWpBCGopAwA3AgAgAkHcBmogAkGgBWpBEGopAwA3AgAgAiAPNgKgBiACIBA2ArQGIAIgCjYCyAYgAiACKQOABTcCkAYgAiACKQOQBTcCpAYgAiACKQO4BTcCuAYgAiACKQOgBTcCzAYgAiANOwH2BiACIAk7AfQGIAIgBjYC8AYgAiAENgLsBiACIAc2AugGIAIgAzYC5AYgAiABKQIsNwP4BgJAAkACQCASQYGAJE8NACACQYAHaiABQSxqEOmAgIAAIAIvAYQHIgwNAkGAgCQhFSACQYAHaiEEDAELIAJBiAdqIAJB+AZqIBIQ64CAgAAgAi8BkAciDA0BIAJBiAdqIQQgAigCjAchFQsgAkHkBmohDCACQcwGaiERIAJB4AVqIRYgCUEDdCEDIAQoAgAhBkEAIQdBACEEA0Ag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KAIQNgIcIAMgAykCCDcCFCADQSBqIANBFGogAS8BigFBf2pB//8DcRDPgYCAACAAQQE6AAwgACADLwEkOwEEIAAgAygCICIBNgIAIABBACADKAIoIAMtADAbNgIIIAAgAS8BrAJBf2o7AQYMAgsgAEEBOgAMIABBADoACCAAIAEoAlgiATYCACAAIAEvAa4CQX9qOwEEIAAgAS8BrAJBf2o7AQYMAQsgA0E0aiABQQAQu4GAgAAgAyADKAI8NgJIIAMgAykCNDcCQCADQcwAaiADQcAAakEBEN+BgIAAAkAgAy0AXA0AIABBAToADCAAIAMoAlQ2AgggACADLwFQOwEEIAAgAygCTCIBNgIAIAAgAS8BrAJBf2o7AQYMAQsgAEIANwIAIABBCGpCADcCAAsgA0HgAGokgICAgAALcQECfyOAgICAAEEQayICJICAgIAAIAJBBGogAEEAELuBgIAAAkACQCABKAIAIgMgAigCBCIARw0AIAEvAQQgAi8BCE8hAQwBCwNAIAAoAgwiAEEARyEBIAAgA0YNASAADQALCyACQRBqJICAgIAAIAEL+QIBBn8jgICAgABBIGsiAiSAgICAAAJAAkACQAJAIAEtACxFDQAgAUEkaiEDIAEvASohBCABLwEoIQUgASgCJCEGIAJBADoABCABLwEwIQcgAS0AIEEBcUUNASABIAdBAWoiBTsBMCAFQf//A3EgBEH//wNxSQ0CIAJBCGogARC0gYCAACADQQhqIAJBCGpBCGooAgA2AgAgAyACKQIINwIAIAEtACxFDQIgASABLwEoOwEwDAILIABCADcCACAAQQhqQgA3AgAMAgsCQCAHQf//A3EiBEUNAAJAIAQgBUH//wNxRw0AIANCADcCACADQQhqQQA2AgAMAgsgASAHQX9qOwEwDAELIAJBFGogARC0gYCAACADQQhqIAJBFGpBCGooAgA2AgAgAyACKQIUNwIAIAEtACxFDQAgASABLwEqQX9qOwEwCyAAQQA7AQYgACAHOwEEIAAgBjYCACAAQQE6AAwgACACLQAEOgAICyACQSBqJICAgIAAC7sBAQR/AkAgACgCdEUNACAAKAJwIQIgACgCbCEDA0AgAkUNAQJAIAMoAgAiBCgCACABRw0AAkAgASgCCCIFDQAgASgCDCEFCyAEQQA2AQQgBCAFNgIACyADQQRqIQMgAkF/aiECDAALCyABKAIMIQICQAJAIAEoAggiA0UNACADIAI2AgwMAQsgACACNgJUCyABKAIIIQMCQAJAIAJFDQAgAiADNgIIDAELIAAgAzYCWAsgACABELCBgIAAC8QBAgN/AX4jgICAgABBMGsiAySAgICAAAJAAkAgAi8BBCIEIAEvAYgBSQ0AIABCADcCACAAQQhqQgA3AgAMAQsgAigCACEFIANBDGogASACLQAIELuBgIAAIANBGGogA0EMaiAFEM+BgIAAAkAgAy0AKA0AIAAgAykDGCIGPgIAIABBAToADCAAIAMoAiA2AgggACAEOwEGIABBBGogBkIgiD0BAAwBCyAAQgA3AgAgAEEIakIANwIACyADQTBqJICAgIAACzgCAX8BfiOAgICAAEEQayIBJICAgIAAIAEgADYCDCABQQxqEKKEgIAAIQIgAUEQaiSAgICAACACC6QCAQJ/I4CAgIAAQSBrIgMkgICAgAACQAJAAkACQAJAAkACQAJAIAJBA3EOBAYAAQEGCyABLQCNAQ4DAQIDAQsgAEEAOgAIIABBADYCBCAAIAEoAlQ2AgAMBQsgA0EIaiABQQAQu4GAgAAgA0EIaiEBDAILIANBADoAHCADQQA2AhggAyABKAJUNgIUIANBFGohAQwBCyABKAJ8IQELIAAgASkCADcCACAAQQhqIAFBCGooAgA2AgAMAQsgAUHYAGohAiABLwGKASEBA0ACQCABQf//A3EgAigCACICLwGuAiIESw0AIABBADoACCAAQQA7AQYgACACNgIAIAAgBCABazsBBAwCCyACQQhqIQIgASAEayEBDAALCyADQSBqJICAgIAAC8sOARh/I4CAgIAAQcAEayIDJICAgIAAIAAoAhQhBAJAAkACQCAALwEaIAAoAgQiBS8BmgJBf2pB//8DcUcNACAAKAIQIQYgA0EIaiABQRhqEOaAgIAAIAMvAQwiBQ0CIAIvARAhByACLwESIQUgAygCCCEIIANBEGogAigCABDugICAACADKAIgIQkgA0EoaiACKAIIIgoQ74CAgAAgAygCKCELIANBOGogCkEEdhDwgICAACADKAI4IQogA0HIAGogAigCDBDxgICAACADKAJIIQwgA0HYAGogAigCBCINQRxuIg4Q8oCAgAAgDCAKIAsgCSAHIAVsQf//A3FBA3QiByAFQQN0Ig9qIhBqQQdqQXhxIhFqQQNqQXxxIhJqQQdqQXhxIhNqQQNqQXxxIQsgAygCaCEJQQAhBSANQRtNDQFCAUEgIA5BBHRBf2pna62GpyEFDAELIAUgBS8BngJBAWo7AZ4CIAAgACgCCCICQQhqNgIIIAAoAgQoAgAhByACKAIIIQJBACEFIABBADoAHCAAQQA7ARggACAALwEaQQFqOwEaIAAgAiAHajYCDAwBCyADQfAAaiAFEPOAgIAAIANBoAFqIANBEGpBCGopAwA3AgAgA0GoAWogA0EQakEQaikDADcCACADQbwBaiADQShqQQhqKQMANwIAIAMgEDYClAEgAyAHNgKQASADIA82AowBIAMgDzYCiAEgA0EANgKEASADIBE2ArABIAMgEjYCxAEgAyADKQMQNwKYASADIAMpAyg3ArQBIAMgCSALakEDakF8cSIMIAMoAnBqQf//A2pBgIB8cSINNgKAASADQdABaiADQThqQQhqKQMANwIAIANB5AFqIANByABqQQhqKQMANwIAIANB+AFqIANB8ABqQQhqKQMANwIAIANBjAJqIANB2ABqQQhqKQMANwIAIANBlAJqIANB2ABqQRBqKQMANwIAIAMgEzYC2AEgAyAMNgLsASADIAs2AoACIAMgAykDODcCyAEgAyADKQNINwLcASADIAMpA3A3AvABIAMgAykDWDcChAIgA0GsAmogAkEQaigCADYCACADQaQCaiACQQhqKQIANwIAIAMgAikCADcCnAIgAyABKQIsNwOwAgJAAkACQCANQYGAJE8NACADQbgCaiABQSxqEOmAgIAAIAMvAbwCIgUNAkGAgCQhFCADQbgCaiECDAELIANBwAJqIANBsAJqIA0Q64CAgAAgAy8ByAIiBQ0BIANBwAJqIQIgAygCxAIhFAsgA0GcAmohDiADQYQCaiEVIANBmAFqIRYgAy8BrgIiF0EDdCEJIAMvAawCIhhBA3QhCiACKAIAIQdBACECIA8hBQJAA0AgCSACRg0BIAcgAmogBa03AwAgAkEIaiECIAUgCmohBQwACwsgAyAQNgKwBCADIAc2AqwEIANBwANqIANBrARqIBYQ9ICAgAAgAygC5AEgE2ohBQJAIAMoAuABIhBBA3QiAkUNACAFIAdqQf8BIAL8CwALIAMoArwBIBFq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ADsBKCAFQf//AzYCJCAFIAQpAgA3AwggBSACKQIANwMQIABBLmohByAAKAIEIAFqIQggACgCACABaiEJIAVBCGogAhCBhICAACEKIAAoAhBBf2qtIQsgBUEQaiECIAMhDAJAA0AgC1ANAQJAIAkgAC8BICAKp3EiDUH//wNxQQF0aiIOLwEAIgRFDQACQCAIIARBHGxqIgEvARgiDw0AIAVBCGogARDDgYCAACAHIAEvARZBAXRqIgYgBi8BAEF/ajsBACABQRhqQQAoAqySyYAANgIAIAFBEGpBACkCpJLJgAA3AgAgAUEIakEAKQKcksmAADcCACABQQApApSSyYAANwIAIAQgA0H//wNxIgEgBCABSRshAwwBCwJAAkAgAS8BFiIQIAZB//8DcSIRSQ0AIBAgEUcNASAPIAIvARhPDQELIA4gDDsBACACIA07ARQgByACLwEWQQF0aiIGIAYvAQBBAWo7AQAgACAALwEsIgYgAi8BFiICIAYgAksbOwEsIAcgAS8BFkEBdGoiAiACLwEAQX9qOwEAIAEvARYhBiAEIQwgASECCyACIAZBAWoiBjsBFiAKQgF8IQogC0J/fCELDAELCyAOIAw7AQAgAiANOwEUIAcgAi8BFkEBdGoiASABLwEAQQFqOwEAIAAgAC8BLCIBIAIvARYiAiABIAJLGzsBLAsgCSAFLwEkQQF0aiADOwEAIAggA0H//wNxQRxsaiICIAUpAxA3AgAgAkEIaiAFQRBqQQhqKQMANwIAIAJBEGogBUEQakEQaikDADcCACACQRhqIAVBEGpBGGooAgA2AgAgBUEwaiSAgICAACADC60BAQh/AkACQCABLQAIIgMgAi0ACHNBAXENACAAKAIEIgQgACgCACIAIAQbKAIAIQQgAigCECEFIAIoAgwhBiACKAIAIQcgASgCECEIIAEoAgwhCSABKAIAIQogACgCACEAAkAgA0EBcUUNACAKIAdHDQEMAgsgCiAEaiABKAIEIAcgAGogAigCBBCxgICAAEEBcQ0BC0EADwsgBCAJaiAIIAAgBmogBRCxgICAAAv8AgEEfyOAgICAAEEQayIFJICAgIAAIAUgBCkCADcDACABKAIEIAJqIQYCQANAIAEvAW4iB0ECSQ0BIAYgB0F/aiIHQf//A3FBHGxqLwEYDQEgASAHOwFuIAEgAiAH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HkEBdGoiASABLwEAQQFqOwEAIAAgAC8BJCIBIAIvAR4iAiABIAJLGzsBJAsgCCAELwEkQQF0aiADOwEAAkBBJEUNACAHIANB//8DcUEkbGogBEEIakEk/AoAAAsgBEEwaiSAgICAACADC5c0BAN/AX4XfwF+I4CAgIAAQfANayIDJICAgIAAIAAgATsBiAECQAJAAkAgAi0ABEUNAEEAIQQgA0EAOgAQIAMgAi8BADsBDCADIAIvAQIiBTYCCCADQRRqIAAgA0EIahC5gYCAACADLQAgRQ0AIANBJGogAEGExceAABC5gYCAAAJAIAMtADBFDQAgA0GYAWpBCGogA0EkakEIaigCADYCACADIAMpAiQ3A5gBQQIhBAsgA0HoAGpBCGogA0EUakEIaigCADYCACADQYABaiADQZgBakEIaigCADYCACADQQA6AJABIAMgAykCFDcDaCADQQE6AHQgAyADKQOYATcDeCADIAQ6AJQBIAMgBDoAhAEgA0EAOgCIASADQagBaiADQegAahC0gYCAAAJAAkAgAy0AsAFFDQACQEEkRQ0AIANB7AFqIANB6ABqQST8CgAACyADQQE6AJgCIAMgAykDqAEiBjcCkAIgAyAGQjCIp0F/ajsBnAIgA0HsAWohAgwBCwJAQSRFDQAgA0G4AWogA0HoAGpBJPwKAAALIANB4gFqQgA3AQAgA0IANwLcASADQbgBaiECCwJAQTRFDQAgA0E0aiACQTT8CgAAC0EAIQcCQANAIANBoAJqIANBNGoQt4GAgAAgAy0ArAJFDQEgAygCoAIiAigCGCACKAIQaiADLwGkAkEDdGopAwBCIYinQQFxIAdqIQcMAAsLIANBsAJqIAAgA0EUahCEgYCAACADLwG0AiICDQIgAC8BigEgBUF/c2pB//8DcSEIQQAhCSADKAKwAiEKDAELQQEhCQsgACgCVCECIANBuAJqIABB+IfCgABBjNTHgAAQzIGAgAAgA0EBOgDuAiADIAE7AewCIANB8AJqIAJBmAJqIANB7AJqEO2AgIAAAkACQCADLwGEAyICDQAgAy8BggMhCyADLwGAAyEMIAMoAvwCIQ0gAygC+AIhASADKAL0AiEFIAMoAvACIQ4gA0GIA2ogAEEYahDmgICAACADLwGMAyICDQAgAygCiAMhDyADQZADaiAOEO6AgIAAIAMoAqADIQIgA0GoA2ogARDvgICAACADKAKoAyEQIANBuANqIAFBBHYQ8ICAgAAgAygCuAMhESADQcgDaiANEPGAgIAAIAMoAsgDIRIgA0HYA2ogBUEcbiITEPKAgIAAIBIgESAQIAIgCyAMbEH//wNxQQN0IhQgC0EDdCIEaiIVakEHakF4cSIWakEDakF8cSIXakEHakF4cSIRakEDakF8cSEQIAMoAugDIRJBACECAkAgBUEbTQ0AQgFBICATQQR0QX9qZ2uthqchAgsgA0HwA2ogAhDzgICAACADQaAEaiADQZADakEIaikDADcCACADQagEaiADQZADakEQaikDADcCACADQbwEaiADQagDakEIaikDADcCACADIBU2ApQEIAMgFDYCkAQgAyAENgKMBCADIAQ2AogEIANBADYChAQgAyAWNgKwBCADIBc2AsQEIAMgAykDkAM3ApgEIAMgAykDqAM3ArQEIAMgEiAQakEDakF8cSISIAMoAvADakH//wNqQYCAfHEiFDYCgAQgA0HQBGogA0G4A2pBCGopAwA3AgAgA0HkBGogA0HIA2pBCGopAwA3AgAgA0H4BGogA0HwA2pBCGopAwA3AgAgA0GMBWogA0HYA2pBCGopAwA3AgAgA0GUBWogA0HYA2pBEGopAwA3AgAgAyARNgLYBCADIBI2AuwEIAMgEDYCgAUgAyADKQO4AzcCyAQgAyADKQPIAzcC3AQgAyADKQPwAzcC8AQgAyADKQPYAzcChAUgAyALOwGuBSADIAw7AawFIAMgDTYCqAUgAyABNgKkBSADIAU2AqAFIAMgDjYCnAUgAyAAKQIsNwOwBQJAAkACQAJAIBRBgYAkTw0AIANBuAVqIABBLGoQ6YCAgAAgAy8BvAUiAg0CQYCAJCETIANBuAVqIQIMAQsgA0HABWogA0GwBWogFBDrgICAACADLwHIBSICDQEgA0HABWohAiADKALEBSETCyAAQdQAaiEYIANBnAVqIQ4gA0GEBWohGSADQZgEaiEaIAxBA3QhDSACKAIAIQVBACEBQQAhAgNAIAQgAkYNAiAFIAJqIAQgAWqtNwMAIAEgDWohASACQQhqIQIMAAsLIA8gACgCKDYCACAAIA82AigMAQsgAyAVNgKsByADIAU2AqgHIANBwAZqIANBqAdqIBoQ9ICAgAAgAygC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CmogA0HICmogECACaxCngYCAAAJAAkAgAy0A1AoNAEEAIQ5BACEWDAELIAMoAswKIAJqIQ4gAygC0AohFgsCQCADKAK8ByIBKAIoIAEoAgAiAmoiBEF8aigCACAEQXhqKAIASQ0AIANB2ApqQQhqQgA3AwAgA0IANwPYCiADQgA3A/AKIANBAToA7AogAyADKAK4CkEBdDYC6AogA0G4B2ogACADQdgKahC9gYCAACICQf//A3ENCyADKAK8ByIBKAIAIQILIANB/ApqIAFBHGoiBCACIBYQqIGAgAACQAJAIAMvAYQLDQAgBCABKAIAIAMoAvwKIAMoAoALEKKBgIAADAELIBZBAnQhBCADKAK4CiINIQIDQCACIgFBAXQhAiABIA1rIARJDQALIBlCADcDACAZQQhqQgA3AwAgA0EBOgCUCyADIAE2ApALIANCADcDiAsgA0G4B2ogACADQYgLahC9gYCAACICQf//A3ENCyADKAK8ByEBCyADIAEoAiggASgCACIEajYCqAsgAygCxAchAiADKALAByELIANBrAtqIAFBHGoiGiAEIBYQqIGAgAACQCADLwG0C0UNAEEiIQIMCwsgAygCrAshDQJAIAMoArALIhZBAnQiFUUNACANIA4gFfwKAAALIAEoAgAhDiADIBY2ArwLIAMgDSAOazYCuAsCQCADQagLaiACIARrIANBuAtqEKmBgIAAQf//A3FFDQAgGiABKAIAIA0gFhCigYCAAEEhIQIMCwsgAiACKQMAQnyDQgGENwMAIAsgCykDAEKAgICAwACENwMAIBApAwAhBgsCQAJAIAZCgICAgICACINCAFINACADKAK8ByEBDAELIAMgBSgCpAEgBSgCECIEajYCwAsgA0HEC2ogA0HAC2ogECAEaxCqgYCAACADLwHECyEWIAUoAqwBIQsCQCADKAK8ByIBKAKUASABKAIAIgJqIg1BfGooAgAgDUF4aigCAEkNACADQcgLakEIakIANwMAIANCADcDyAsgA0IANwPgCyADQQE6ANwLIAMgAygCtApBAXQ2AtgLIANBuAdqIAAgA0HIC2oQvYGAgAAiAkH//wNxDQsgAygCvAciASgCACECCyADQewLaiABQRBqIg0gAkEAIAsgBGogFkEcbGoiCygCBCALLQAIQQFxGyALKAIQaiIEEMCBgIAAAkACQCADLwH0Cw0AIA0gASgCACADKALsCyADKALwCxDBgYCAAAwBCyADKAK8CiINIQIDQCACIgFBAXQhAiABIA1rIARJDQALIANB+AtqQRBqQgA3AwAgA0H4C2pBCGpCADcDACADQgA3A/gLIANBAToAlAwgAyABNgKQDCADQbgHaiAAIANB+AtqEL2BgIAAIgJB//8DcQ0LIAMoArwHIQELIAEoAgAhBCADQZgMaiALIBQgARCtgYCAACADLwGsDCICDQogA0EANgK0DCADIAE2ArAMIANBugxqIAFBmAFqIAQgA0GYDGogFiADQbAMahCugYCAACADQboMaiEBIAMtALwMIQICQAJAAkACQCADLwG+DA4CAwEAC0GszceAACECDAELIANBwAxqQQhqQgA3AwAgA0IANwPADCADQgA3A9gMIANBAToA1AwgAyADKAK0CkEBdDYC0AwgA0HADGohAgsgA0G4B2ogACACEL2BgIAAIgJB//8DcQ0LIAMoArwHIgEoAgAhBCADQeQMaiALIBQgARCtgYCAACADLwH4DCICDQsgA0EANgKADSADIAE2AvwMIANBhA1qIAFBmAFqIAQgA0HkDGogFiADQfwMahCugYCAACADLwGIDSICDQsgAyADLwGEDTsBig0gA0GKDWohASADLQCGDSECCwJAIAJB/wFxRQ0AIAEvAQAhFgsgAyADKAK8ByIBKAKUASABKAIAIgRqNgKMDSADKALAByELIANBkA1qIANBjA1qIAMoAsQHIgIgBGsQq4GAgAACQCADLwGcDUUNAEEgIQIMCwsgAygClA0hDQJAAkAgAy0AmA1FDQAgAUGYAWogASgCACANLwEAEKWBgIAAQoCAgICAgAghBiACIQQgDS8BACAWQf//A3FGDQELIA0gFjsBACACIAIpAwBCgICAgICACIQ3AwBCgICAgIACIQYgCyEECyAEIAQpAwAgBoQ3AwAgECkDACEGCwJAIAZCGoinIgRB//8DcSINRQ0AIANBoA1qQQhqIAUoAkAgBSgCEGogDUEkbGoiAkEIaikCADcDACADQaANakEQaiACQRBqKQIANwMAIANBoA1qQRhqIAJBGGooAgA2AgAgAyACKQIANwOgDSADQcINaiABQSxqIAEoAgAgA0GgDWogBBCvgYCAACADQcINaiEEIAMtAMQNIQICQAJAAkACQCADLwHGDQ4CAwEAC0GszceAACECDAELIBNCADcCACATQQhqQgA3AgAgE0EQakIANwIAIANBAToAzA0gAyADKAKwCkEBdDYCyA0gA0HIDWohAgsgA0G4B2ogACACEL2BgIAAIgJB//8DcQ0LIANB6A1qIAMoArwHIgFBLGogASgCACADQaANaiAQKQMAQhqIpxCvgYCAACADLwHsDSICDQsgAyADLwHoDTsB7g0gA0HuDWohBCADLQDqDSECCwJAAkAgAkH/AXFFDQAgBC8BACEEDAELIBApAwBCGoinIQQLIAMoAsAHIgsgCykDAEKAgICAgAGENwMAIAMoAsQHIgIgAikDAEL///+fgIB/gyAErUL//wODQhqGhDcDAAsgAy8B0AciBCABLwGcAkF/akH//wNxRg0AIAMgBEEBajsB0AcgAyACQQhqNgLEBwwBCyADQQE6ANQHDAALCyASLQAEQQJxDQELIAMgAygCyAdBAWo2AsgHCyAPIAUvAa4CQX9qQf//A3FHDQMgACAFELCBgIAADAMLIA0gEEEBakH//wNxIgQgDSAESxshDQsgAUEEaiEBIAJBAWohAgwACwsLIAkNAQsgACAKEM6BgIAACyADQfANaiSAgICAACACC5YDAgF/AX4jgICAgABB4AFrIgQkgICAgAAgBEEIaiABIAIQuYGAgAACQAJAAkACQCADLQAMRQ0AIARBGGogASADELmBgIAAIARBGGohAQwBCyAEQShqIAEgAi0ACBC1gYCAACAEQShqIQEgBC0ANEUNAQsgBEE4akEIaiAEQQhqQQhqKAIANgIAIARB0ABqIAFBCGooAgA2AgAgBCAEKQIINwM4IARBAToAYCAEQQI6AGQgBEEBOgBEIARBAjoAVCAEQQE6AFggBCABKQIANwNIIARB6ABqIARBOGoQtIGAgAACQAJAIAQtAHBFDQACQEEkRQ0AIARBrAFqIARBOGpBJPwKAAALIARBAToA2AEgBCAEKQNoIgU3AtABIAQgBUIgiD0B3AEgBEGsAWohAQwBCwJAQSRFDQAgBEH4AGogBEE4akEk/AoAAAsgBEGiAWpCADcBACAEQgA3ApwBIARB+ABqIQELQTRFDQEgACABQTT8CgAADAELIABCADcCJCAAQSpqQgA3AQALIARB4AFqJICAgIAAC/0CAQR/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EGohAgJAA0AgBkF/aiIGRQ0BIAItAAUhFCACQQhqIQIgFEEgcQ0DDAALCyAPIA8pAwBC//////99gyIXNwMADAQLIA8gDykDAEL//////32DIhc3AwAMAwsgDykDACEXDAILIAJBCGohAiAUQQhqIRQgBkF/aiEGDAALCwJAIBdCgICAgIABg1ANACALIQYgECECA0ACQAJAAkACQAJAIAJFDQAgBikDAEIaiKciFEH//wNxDQEMBAsgECAFLwGsAiICRw0BDAILIAogBSgCECAUEJOBgIAADAILIAJBAWohBiAPKAIAIAUoAhBqIQIDQCAGQX9qIgZFDQEgAigBAiEUIAJBCGohAiAUQYD4/x9xDQQMAAsLIA8gDykDAEL//////36DNwMADAILIAZBCGohBiACQX9qIQIMAAsLAkAgEEEDdCICRQ0AIAtBACAC/AsACyATQQFqIRMMAAsLQgFBICASQQR0QX9qZ2uthqchBgwDCyAAIAUQuIGAgAAMAQsCQCAAKAJ0RQ0AIAAoAnAhAiAAKAJsIQYDQCACRQ0BAkAgBigCACIUKAIAIAVHDQACQCAULwEEIgggB08NACAUQQA2AQQMAQsgFCAIIAdrOwEECyAGQQRqIQYgAkF/aiECDAALCyAFIA07Aa4CCyAEIAdqIQQMAQsLIAVBmAJqIRIgBCAHaiEEIANBkAFqIAYQ84CAgAAgA0HEAWogA0EwakEIaikDADcCACADQcwBaiADQTBqQRBqKQMANwIAIANB4AFqIANByABqQQhqKQMANwIAIAMgFTYCuAEgAyATNgK0ASADIBQ2ArABIAMgFDYCrAFBACEGIANBADYCqAEgAyAONgLUASADIA82AugBIAMgAykDMDcCvAEgAyADKQNINwLYASADIBYgEWpBA2pBfHEiEyADKAKQAWpB//8DakGAgHxxIgc2AqQBIANB9AFqIANB2ABqQQhqKQMANwIAIANBiAJqIANB6ABqQQhqKQMANwIAIANBnAJqIANBkAFqQQhqKQMANwIAIANBuAJqIANB+ABqQRBqKQMANwIAIANBsAJqIANB+ABqQQhqKQMANwIAIAMgEDYC/AEgAyATNgKQAiADIBE2AqQCIAMgAykDWDcC7AEgAyADKQNoNwKAAiADIAMpA5ABNwKUAiADIAMpA3g3AqgCIAMgCjsB0gIg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BSAQIQwgECEBA0ACQAJAIAVFDQAgAS0ABUEgcUUNASAEIAYoAqQBIAYoAhAiCmo2AoAEIARBhARqIARBgARqIAwgCmsQpIGAgAAgBC0AjARFDQEgCyAKIAQoAogELwEAEKWBgIAAIARBgARqIAQoAoQEEKaBgIAAIAEgASkDAEL///////93gzcDAAwBCwJAAkAgDyAGLwGsAiIBRg0AIAFBAWohBSAJKAIAIAYoAhBqIQECQANAIAVBf2oiBUUNASABLQAFIQwgAUEIaiEBIAxBIHENAwwACwsgCSAJKQMAQv//////fYMiCDcDAAwECyAJIAkpAwBC//////99gyIINwMADAMLIAkpAwAhCAwCCyAFQX9qIQUgDEEIaiEMIAFBCGohAQwACwsCQCAIQoCAgICAAYNQDQAgBkE8aiEKIA8hASAQIQUDQAJAAkACQAJAAkAgAUUNACAFKQMAQhqIpyIMQf//A3ENAQwECyAPIAYvAawCIgFHDQEMAgsgCiAGKAIQIAwQk4GAgAAMAgsgAUEBaiEFIAkoAgAgBigCEGohAQNAIAVBf2oiBUUNASABKAECIQYgAUEIaiEBIAZBgPj/H3ENBAwACwsgCSAJKQMAQv//////foM3AwAMAgsgAUF/aiEBIAVBCGohBQwACwsgD0EDdCIBRQ0AIBBBACAB/AsADAALCwJAAkAgAC0AAUECcUUNACAHIAIgA0EBENGBgIAAIgFB//8DcUUNAQwCCyAHIAIgA0EAENGBgIAAIgFB//8DcQ0BCwJAIAAtACRBAnFFDQAgACgCICIBRQ0AIAEgAiADQQAQ0YGAgAAiAUH//wNxDQELIAAgAjsB8hFBACEBIABBADsB+BEgAEEAOwH0ESAAIAM7AfARIAAgAkF/ajsB+hEgACADQX9qOwH2ESAAQe4RaiIFIAUtAABBAXI6AAALIARBkARqJICAgIAAIAELHQACQCAARQ0AIAAgAEGoG2ogASACENmBgIAAGgsLHwAgACgCCCgCGCABKAIAQQJ0akHAAmogASgCBDYCAAvyAQECfyAAKAIYIgFBAToAmAIgASAAKAIYLwHIATsBkAIgASAAKAIYLwHKATsBkgIgASAAKAIYIgIpApgBNwLUASABQewBaiACQbABaigCADYCACABQeQBaiACQagBaikCADcCACABQdwBaiACQaABaikCADcCACABIAAoAhgtANIBQQFxOgCUAiABIAAoAhgtANEBQQFxOgCVAiABIAAoAgBBCHZBAXE6AJYCIAEgACgCGCIAKQLAAjcC8AEgAUGIAmogAEHYAmopAgA3AgAgAUGAAmogAEHQAmopAgA3AgAgAUH4AWogAEHIAmopAgA3AgALrQUDB38EfgN/I4CAgIAAQeAAayIBJICAgIAAAkACQCAAKAIYIgItAJgCRQ0AIAIvAZACIQMgAi8BkgIhBCACLQCUAiEFIAItAJUCIQYgAi0AlgIhBwJAQTxFDQAgASACQdQBakE8/AoAAAtCgAJCACAHQQFxGyEIDAELQQAhBSABQRhqQQA2AgBCACEIIAFBEGpCADcDACABQQhqQgA3AwAgAUEkakEAKQOIp8iAADcCACABQSxqQQApA5CnyIAANwIAIAFBNGpBACkDmKfIgAA3AgAgAUIANwMAIAFBACkDgKfIgAA3AhxBACEGQQAhA0EAIQQLIAIpApgBIQkgAiABKQMANwKYASACQaABaiIHKQIAIQogByABQQhqKQMANwIAIAJBqAFqIgcpAgAhCyAHIAFBEGopAwA3AgAgAkGwAWoiAigCACEHIAIgAUEYaigCADYCACABQcAAakEYaiIMIAc2AgAgAUHAAGpBEGoiDSALNwMAIAFBwABqQQhqIg4gCjcDACABIAk3A0AgACgCGBCSgYCAACEHIAAoAhghAgJAAkAgB0H//wNxRQ0AIAIgASkDQDcCmAEgAkGwAWogDCgCADYCACACQagBaiANKQMANwIAIAJBoAFqIA4pAwA3AgAMAQsgAiABKQIcNwLAAiACQdgCaiABQTRqKQIANwIAIAJB0AJqIAFBLGopAgA3AgAgAkHIAmogAUEkaikCADcCACAAIAA1AgBC//3//w+DIAiEPgIAIAAoAhggBkEBcToA0QEgACgCGCAFQQFxOgDSASAAKAIYIANB//8DcSICIAAvAfIRQX9qQf//A3EiAyACIANJGyAEQf//A3EiAiAALwHwEUF/akH//wNxIgAgAiAASRsQ3oGAgAALIAFB4ABqJICAgIAAIAcLqwgDB38BfgF/I4CAgIAAQYABayIDJICAgIAAAkACQAJAAkAgAkH//wNxIgQgAC8BygEiBU8NACADQQxqIAAoArwBIgYgBSACa0H//wNx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IAYgB2sQoYGAgAAgASgC+BAhByALIAIoAhAiCCAIIAEoAvwQIgkoAgBqIAkoAgQQooGAgAAgAUHwAGogBxCjgYCAACAFIAUpAwBCfIM3AwAMAQsCQAJAIBEgAi8BrAIiBUYNACAFQQFqIQMgDSgCACACKAIQaiEFAkADQCADQX9qIgNFDQEgBSkDACEKIAVBCGohBSAKQgODQgFRDQMMAAsLIA0gDSkDAEL/////v3+DIgo3AwAMBAsgDSANKQMAQv////+/f4MiCjcDAAwDCyANKQMAIQoMAgsgA0F/aiEDIAZBCGohBiAFQQhqIQUMAAsLAkAgCkKAgICAgAKDUA0AIAJBqAFqIQggESEDIAwhBiAMIQUDQAJAAkAgA0UNACAFLQAFQSBxRQ0BIAEgAigCpAEgAigCECIHajYCdCABQZARaiABQfQAaiAGIAdrEKSBgIAAIAEtAJgRRQ0BIAggAigCECABKAKUES8BABClgYCAACABQfQAaiABKAKQERCmgYCAACAFIAUpAwBC////////d4M3AwAMAQsCQAJAIBEgAi8BrAIiBUYNACAFQQFqIQMgDSgCACACKAIQaiEFAkADQCADQX9qIgNFDQEgBS0ABSEGIAVBCGohBSAGQSBxDQMMAAsLIA0gDSkDAEL//////32DIgo3AwAMBAsgDSANKQMAQv//////fYMiCjcDAAwDCyANKQMAIQoMAgsgA0F/aiEDIAZBCGohBiAFQQhqIQUMAAsLAkAgCkKAgICAgAGDUA0AIAJBPGohByARIQUgDCEDA0ACQAJAAkACQAJAIAVFDQAgAykDAEIaiKciBkH//wNxDQEMBAsgESACLwGsAiIFRw0BDAILIAcgAigCECAGEJOBgIAADAILIAVBAWohBSANKAIAIAIoAhBqIQIDQCAFQX9qIgVFDQEgAigBAiEDIAJBCGohAiADQYD4/x9xDQQMAAsLIA0gDSkDAEL//////36DNwMADAILIAVBf2ohBSADQQhqIQMMAAsLIBFBA3QiAkUNACAMQQAgAvwLAAsgACgCGCAEQX9qOwHKASAAKAIYQQEQ6YGAgAAgACgCGBCSgYCAACIEQf//A3ENAQtBACECDAULIAEgBDsBJiABQoAQNwKYESABQbC/x4AANgKQESABIAFB+ABqNgKUEQJAAkACQCABQZARaiABQSZqEPKBgIAAIgRB//8DcUUNACABQZARakGg6cmAAEEtEKiAgIAAIAEvAagRDQIgAUH4EGpBEGogAUGQEWpBEGopAgA3AwAgAUH4EGpBCGoiAiABQZARakEIaikCADcDACABIAEpApARNwP4EAJAIAIgAUEmahDygYCAAEH//wNxRQ0AIAFB+BBqEKmAgIAADAMLIAFBKGogAUH4EGoQqoCAgAAgAUH4EGoQqYCAgAAgAS8BMA0CIAEoAiwhBSABKAIoIQIMAQsgASgClBEhAiABKAKcESEFCyACIAUQgICAgAAgBEH//wNxRQ0AQaDpyYAAIAIgBRC2gICAAAsgACgCGCIEQgA3ApgBQQAhAiAEQbABakEANgIAIARBqAFqQgA3AgAgBEGgAWpCADcCACAAKAIYEJKBgIAAGgwECyABQShqIAMQsYGAgAAgAS8BLCICDQMCQAJAIAEoAihFDQAgAxDvgYCAACICQf//A3FFDQEMBQsCQCADKAK8ASIAKAIAIAMoAlhHDQAgAUH4AGogAEEBEM+BgIAAQZzNx4AAIQQCQCABLQCIAQ0AIAFB+BBqQQhqIAFB+ABqQQhqKAIANgIAIAEgASkCeDcD+BAgAUH4EGohBAsgACAEKQIANwIAIABBCGogBEEIaigCADYCACADKAK8ASIEKAIAIgAoAhggACgCEGogBC8BBCICQQN0aiIEIAAvAa4CIAJBf3NqQQN0IgJqKQMAIQoCQCACRQ0AIARBCGogBCAC/AoAAAsgBCAKNwMAIABBAToAsAIgAygCvAEiACgCACIEKAIYIAQoAhAiBGogAC8BBEEDdGoiAigCACEFIAAvAQYhACADIAI2AsABIAMgBSAEaiAAQQN0ajYCxAEMAQsgAxDvgYCAACICQf//A3ENBAtBACECIAMvAcwBRQ0DIAFBkBFqIAgQ7IGAgAAgAS0AmBFFDQMgAy8BiAFBA3QhACADKALEASADLwHIAUEDdGshBCABKQOQESEKA0AgAEUNBCAEIAo3AwAgAEF4aiEAIARBCGohBAwACwsgAygCvAEoAgAhBCABQeAAaiADELGBgIAAIAEvAWQiAg0CAkACQCAEIAMoArwBIgAoAgAiB0YNACABQdAAakEGaiEEIAFB0ABqQQRqIQUgAUHQAGpBCGogAEEIaigCADYCACABIAApAgA3A1AgASADLwHIATsBViABQdAAaiECDAELIAFBkBFqIABBARDPgYCAAAJAIAEtAKARRQ0AQZzNx4AAIQJBos3HgAAhBEGgzceAACEFDAELIAFBKGpBBmohBCABQShqQQRqIQUgAUEoakEIaiABQZARakEIaigCADYCACABIAEpApARNwMoIAFBKGohAgsgBC8BACEGIAUvAQAhBQJAAkACQAJAAkAgByACKAIAIgRHDQAgAC8BBCAFRw0AIAAvAQZB//8DcSAGRg0BCyADKALAASIAIAApAwBCgICAgIDAAIQ3AwAgBCgCGCAEKAIQaiAFQQN0aiIAIAApAwBCgICAgIDAAIQ3AwAgAygCvAEiACgCACACKAIARg0AIAMvAcwBDQFBvKfIgAAhCUGgp8iAACEHDAILIAAgAikCADcCACAAQQhqIAJBCGooAgA2AgAMAgsgAUGUAWohCSAIKQIAIQogCEIANwMAIAFB+ABqQRhqIAhBGGoiACgCADYCACABQfgAakEQaiAIQRBqIgcpAgA3AwAgAUH4AGpBCGogCEEIaiILKQIANwMAIAtCADcDACAHQgA3AwAgAEEANgIAIAFBAToAlAEgASAKNwN4IAMQkoGAgAAaIAMoArwBIQAgAUH4AGohBwsCQCADKAK4AUUNACAAKAIAIgBBqAFqIAAoAhAgAy8BzgEQpYGAgAAgAygCvAEhAAsgACACKQIANwIAIABBCGogAkEIaigCADYCAAJAIAktAABFDQAgCCAHKQIANwIAIAhBGGoiACAHQRhqKAIANgIAIAhBEGoiAiAHQRBqKQIANwIAIAhBCGogB0EIaikCADcCACADEJKBgIAAIgdB//8DcUUNACABIAc7AXQgAUH0AGoQ4IGAgAAgAEEANgIAIAJCADcDACAIQQhqQgA3AwAgCEIANwMAIANBADsBzAELIAMoArgBIgBFDQAgA0EANgK4ASADQQA7Ac4BAkAgAyAAKAIMIAAoAhBBACAAKAIAIAAtAAhBAXEiAhtBACAAKAIEIAIbENOBgIAAIgJB//8DcUUNACABIAI7AUAgAUHAAGoQ4YGAgAALIAAgA0GQAWoiAhCdgYCAACACIAAQnoGAgAALIAQoAhggBCgCECICaiAFQQN0aiIAKAIAIQUgAyAANgLAASADIAUgAmogBkEDdGo2AsQBIAAgACkDAEKAgICAgMAAhDcDACADLQCkAUUNASADIARBEGogAygCwAEiACAAKAIAIAQoAhBqIAQvAawCEOiBgIAADAELIANBARDYgYCAACACQQE6ALACAkADQCACKAIMIgVFDQEgAkEQaiAFQRBqIAYgAi8BrgJBf2pB//8DcUEDdGogBSgCGCAFKAIQaiIHQQAgAi8BrAIQoIGAgAAiAkH//wNxDQMgBykDACEKAkAgBS8BrgJBA3RBeGoiAEUNACAHIAdBCGogAPwKAAALIAcgAGogCjcDACAFQQE6ALACIAMoAnAhACADKAJsIQQgByEGIAUhAiADKAJ0RQ0AA0ACQCAADQAgByEGIAUhAgwCCwJAIAQoAgAiAigCACAFRw0AAkAgAi8BBCIGDQAgAiAFKAIIIgY2AgAgBi8BrgIhBgsgAiAGQX9qOwEECyAAQX9qIQAgBEEEaiEEDAALCwsgBiACLwGuAkF/akH//wNxQQN0aiINKAIAIAIoAhBqIQwgAi8BrAIhEQJAIA0pAwAiCkKAgICAwACDUA0AIAJBLGohCyARIQQgDCEFIAwhAANAAkACQCAERQ0AIAApAwBCA4NCAVINASABIAIoAjggAigCECIGajYCcCABQeAAaiABQfAAaiAFIAZrEKGBgIAAIAEoAmAhBiALIAIoAhAiByAHIAEoAmQiCSgCAGogCSgCBBCigYCAACABQfAAaiAGEKOBgIAAIAAgACkDAEJ8gzcDAAwBCwJAAkAgESACLwGsAiIARg0AIABBAWohBCANKAIAIAIoAhBqIQACQANAIARBf2oiBEUNASAAKQMAIQogAEEIaiEAIApCA4NCAVENAwwACwsgDSANKQMAQv////+/f4MiCjcDAAwECyANIA0pAwBC/////79/gyIKNwMADAMLIA0pAwAhCgwCCyAEQX9qIQQgBUEIaiEFIABBCGohAAwACwsCQCAKQoCAgICAAoNQDQAgAkGoAWohByARIQQgDCEFIAwhAANAAkACQCAERQ0AIAAtAAVBIHFFDQEgASACKAKkASACKAIQIgZqNgJ0IAFB+BBqIAFB9ABqIAUgBmsQpIGAgAAgAS0AgBFFDQEgByACKAIQIAEoAvwQLwEAEKWBgIAAIAFB9ABqIAEoAvgQEKaBgIAAIAAgACkDAEL///////93gzcDAAwBCwJAAkAgESACLwGsAiIARg0AIABBAWohBCANKAIAIAIoAhBqIQACQANAIARBf2oiBEUNASAALQAFIQUgAEEIaiEAIAVBIHENAwwACwsgDSANKQMAQv//////fYMiCjcDAAwECyANIA0pAwBC//////99gyIKNwMADAMLIA0pAwAhCgwCCyAEQX9qIQQgBUEIaiEFIABBCGohAAwACwsCQCAKQoCAgICAAYNQDQAgAkE8aiEGIBEhACAMIQQDQAJAAkACQAJAAkAgAEUNACAEKQMAQhqIpyIFQf//A3ENAQwECyARIAIvAawCIgBHDQEMAgsgBiACKAIQIAUQk4GAgAAMAgsgAEEBaiEEIA0oAgAgAigCEGohAANAIARBf2oiBEUNASAAKAECIQIgAEEIaiEAIAJBgPj/H3FFDQAMBAsLIA0gDSkDAEL//////36DNwMADAILIABBf2ohACAEQQhqIQQMAAsLAkAgEUEDdCIARQ0AIAxBACAA/AsACyADKAK8ASIAIAEpA0A3AgAgAEEIaiABQcAAakEIaigCADYCACADKAK8ASIAKAIAIgQoAhggBCgCECIEaiAALwEEQQN0aiICKAIAIQUgAC8BBiEAIAMgAjYCwAEgAyAFIARqIABBA3RqNgLEAQtBACECIAMvAcwBRQ0AIAFB+BBqIAgQ7IGAgAAgAS0AgBFFDQAgAy8BiAFBA3QhACADKALEASADLwHIAUEDdGshBCABKQP4ECEKA0AgAEUNASAEIAo3AwAgAEF4aiEAIARBCGohBAwACwsgAUGwEWokgICAgAAgAgtcAQR/IAAoAhgiAi0A0QEhAyACLwHKASEEIAIvAcgBIQUgAiAALwH4ESAALwH0ERDegYCAACAAIAEQ84GAgAAgACgCGCAFIAQQ3oGAgAAgACgCGCADQQFxOgDRAQsxAQF/AkAgAEHe7cmAAEErEJqAgIAAIgJB//8DcQ0AIAAgAS8BABClhICAACECCyACC4QJAw9/AX4BfyOAgICAAEHAAWsiAiSAgICAAAJAIAFFDQAgACgCGCIDLwHKASIEIAAvAfQRSQ0AIAAvAfYRIgUgBEkNACADLwHIASIGIAAvAfgRIgdJDQAgBiAALwH6ESIISw0AQQAhCQJAIAcNACAIIAAvAfIRQX9qQf//A3FPIQkLIAIgAyADKAK8ARCEgYCAAAJAAkAgAi8BBCIDDQAgBSAEa0EBaiIDIAEgA0H//wNxIgogASAKSRsiC2tB//8DcSEMIAJBIGpBCGohDSACQYABakEQaiEOQQAhDyACKAIAIQEMAQsgAiADOwEKIAJBCmoQrYKAgAAACwNAIA8gDEkhEAJAAkACQANAIA8gCk8NAyABKAIAIgMoAhggAygCEGogAS8BBEEDdGoiAyADKQMAIhFCgICAgIDAAIQ3AwACQAJAAkAgEEUNACACQQxqIAEgCxDPgYCAACACKAIMIgYoAhAhBSAGKAIYIQcgAi8BECEIIAAgASgCAEEQaiADEKqCgIAAIAAgBkEQaiISIAcgBWogCEEDdGoiBRCqgoCAACAJRQ0BIAUgBSkDAEL/////b4M3AwAgAyADKQMAQv////9vgzcDACAFIAUpAwBC/////1+DNwMAIAMgAykDAEL/////X4MiETcDACAGIAEoAgAiB0cNAiADIAUpAwA3AwAgBSARNwMAIAMgAykDAEKAgICAgMAAhDcDAAwFCyAAKAIYIAEoAgAiBUEQaiADIBGnIAUoAhBqIAAvAfgRIgVBA3RqIAAvAfoRQQFqQf//A3EgBWsQ6IGAgAAMBAsgBiABKAIAIgdGDQILIAdBEGogEiADIAUgAC8B+BEgAC8B+hFBAWpB//8DcRCggYCAAEH//wNxIgZFDQIgASgCACEDQazNx4AAIQUCQAJAAkACQAJAIAZBZWoOCAAEAQIEAgMDAAsgDUIANwIAIA1BCGpCADcCACANQRBqQgA3AgAgAkEBOgAkIAIgAygCmAJBAXQ2AiAgAkEgaiEFDAMLIAJBwABqQQhqQgA3AwAgAkHAAGpBEGpCADcDACACQgA3A0AgAkEBOgBcIAIgAygCpAJBAXQ2AlggAkHAAGohBQwCCyACQeAAakEIakIANwMAIAJCADcDYCACQgA3A3ggAkEBOgB0IAIgAygCnAJBAXQ2AnAgAkHgAGohBQwBCyAOQgA3AwAgDkEIakIANwMAIAJCADcDgAEgAkEBOgCMASACIAMoAqACQQF0NgKIASACQYABaiEFCyACQaQBaiAAKAIYIAMgBRCWgYCAAAJAIAIvAagBDgIBAAALCwALIAdBEGogBSAALwH4ESIGIAMgBiAALwH6ESAGa0EBakH//wNxEKuCgIAACyACQawBaiABQQEQz4GAgAAgD0EBaiEPIAItALwBDQEgASACKQKsATcCACABQQhqIAJBrAFqQQhqKAIANgIADAELCyAAKAIYIAEQzoGAgAAgACgCGCAALwH4ESAEEN6BgIAAIAAoAhhBADoA0QELIAJBwAFqJICAgIAACw0AIAAoAggQ8IGAgAALKAEBfwJAIAAoAggQ8IGAgAAiAUH//wNxDQAgACgCCBD2gYCAAAsgAQtRAQF/IAAoAhhBADoA0QEgACgCGCEBAkACQCAALQABQQFxRQ0AIAAvAfgRIQAMAQtBACAALwH4ESIAIAEvAcgBIABJGyEACyABIAAQ94GAgAALVQEDfyAAKAK8ASABOwEGIAAoArwBIgIoAgAiAygCGCADKAIQIgNqIAIvAQRBA3RqKAIAIQQgAi8BBiECIAAgATsByAEgACAEIANqIAJBA3RqNgLEAQsbACAAKAIIIgBBMGogACgCGC8ByAEQioGAgAALVAEBfwJAAkAgACgCCCIAKAIYIgEvAcoBIAAvAfQRRw0AIAEvAcgBIgEgAC8B+BFJDQAgASAALwH6EU0NAQsgAEEBEPqBgIAADwsgAEEBEPuBgIAAC7sHAwl/AX4BfyOAgICAAEHAAGsiAiSAgICAAEEAIQMgACgCGEEAOgDRASAAKAIYIgQgBC8BygEiBSAFQQAgAC8B9BEiACAFIABJG2tB//8DcSIAIAFBASABQQFLGyIBIAAgAUkbIgFrOwHKASACQQRqIAQoArwBIgAgARDfgYCAAAJAAkAgAi0AFEUNAAwBCyACKAIMIQMgAi8BCiEGIAIvAQghBSACKAIEIQELAkACQAJAAkACQCAAKAIAIAFHDQAgAC8BBEH//wNxIAVB//8DcUcNACAALwEGIAZB//8DcUcNACAFQf//A3EhBwwBCyAEKALAASIAIAApAwBCgICAgIDAAIQ3AwAgASgCGCABKAIQaiAFQf//A3EiB0EDdGoiACAAKQMAQoCAgICAwACENwMAIAQoArwBIgAoAgAgAUYNACAEQZgBaiEIIAQvAcwBDQFBvKfIgAAhCUGgp8iAACEKDAILIAAgAzYCCCAAIAY7AQYgACAFOwEEIAAgATYCAAwCCyACQTRqIQkgCCkCACELIAhCADcDACACQRhqQRhqIAhBGGoiACgCADYCACACQRhqQRBqIAhBEGoiCikCADcDACACQRhqQQhqIAhBCGoiDCkCADcDACAMQgA3AwAgCkIANwMAIABBADYCACACQQE6ADQgAiALNwMYIAQQkoGAgAAaIAQoArwBIQAgAkEYaiEKCwJAIAQoArgBRQ0AIAAoAgAiAEGoAWogACgCECAELwHOARClgYCAACAEKAK8ASEACyAAIAM2AgggACAGOwEGIAAgBTsBBCAAIAE2AgACQCAJLQAARQ0AIAggCikCADcCACAIQRhqIgAgCkEYaigCADYCACAIQRBqIgUgCkEQaikCADcCACAIQQhqIgMgCkEIaikCADcCACAEEJKBgIAAIgpB//8DcUUNACACIAo7ATwgAkE8ahDggYCAACAAQQA2AgAgBUIANwMAIANCADcDACAIQgA3AwAgBEEAOwHMAQsgBCgCuAEiAEUNACAEQQA2ArgBIARBADsBzgECQCAEIAAoAgwgACgCEEEAIAAoAgAgAC0ACEEBcSIFG0EAIAAoAgQgBRsQ04GAgAAiBUH//wNxRQ0AIAIgBTsBPiACQT5qEOGBgIAACyAAIARBkAFqIgUQnYGAgAAgBSAAEJ6BgIAACyABKAIYIAEoAhAiAGogB0EDdGoiASgCACEFIAQgATYCwAEgBCAFIABqIAZB//8DcUEDdGo2AsQBIAJBwABqJICAgIAAC1wBBH8gACgCGCICLQDRASEDIAIvAcoBIQQgAi8ByAEhBSACIAAvAfgRIAAvAfQREN6BgIAAIAAgARCpgoCAACAAKAIYIAUgBBDegYCAACAAKAIYIANBAXE6ANEBC1UBAX8gASgCBCECIAAoAgghAAJAIAEtAAhFDQAgACgCGCIBQQE6ANwCIAEgAjYC2AIPCyAAKAIYIQACQCABKAIADQAgACACNgLQAg8LIAAgAjYC1AILoAgBCX8jgICAgABBwABrIgEkgICAgAAgACgCCCICQRhqIgNBABD+gYCAACACKAIYIQQCQCACLQAkIgBBAnFFDQAgBCgClAEhBSAEKAKQASEGIAIgAEH9AXE6ACQgAigCICIARQ0AIAAQi4GAgAAgBiAAQfACQQNBACAFKAIMEYGAgIAAgICAgAAgAygCACEECyABQQE6AAYgASAELwGIATsBBCABQQhqQbCSyYAAIAFBBGoQ7YCAgAACQCABLwEcDQBBACEHAkAgBC8BigEiAEUNACAAQX9qQf//A3EgAS8BGkH//wNxbkEBaiEHCyAEQSxqIQggBCgCMCEFIAQoAiwhCSAEQdQAaiIGIQADQAJAAkAgACgCACIARQ0AIAAoAhQiA0GAgCRNDQEgCSAAKAIQIANBEEEAIAUoAgwRgYCAgACAgICAAAwBCyABQQI6ACQgASAHQYCAJGw2AiAgCCABQSBqEIaBgIAAIAFBAjoALCABIAdBuAJsNgIoIARBGGogAUEoahCGgYCAACAEQTRqIQACQANAIAAoAgAiAEUNASAAQXxqKAIAQXhqIgNFDQAgAEEEakEAIAP8CwAMAAsLIAFBMGogBEEQaiAEIAQvAYgBIAQvAYoBEOyAgIAAIAEvATwNAiAEIAEoAjg2AlwgBCABKQMwNwJUIAQgBC8BigE2AmgCQAJAIAQoAnQNAEGq1arVeiEDDAELIAQoAmwhAwsgBCgCcCEAAkADQCAARQ0BIAMoAgAiBSAGKAIANgIAIAVBAToACCAFQQA2AQQgAEF/aiEAIANBBGohAwwACwsgBCgCfEEAOgAIIARBADoAjQEgBCgCvAEiACgCACIDKAIYIAMoAhAiA2oiBSgCACEGIARBmAFqIgkgBEGQAWoQ/4GAgAAgBEEAOgDSASAEQQE7ANABIAQgBiADajYCxAEgBCAFNgLAASAEIAA2ArwBIARCADcByAECQEEkRQ0AIAlBAEEk/AsACwJAQcgARQ0AIARB1AFqQQBByAD8CwALIARCADcA4QIgBEHpAmpBADsAACAEQdgCakEAKQOYp8iAADcDACAEQdACakEAKQOQp8iAADcDACAEQcgCakEAKQOIp8iAADcDACAEQQApA4CnyIAANwPAAiAEEICCgIAAIAJB7hFqIgBBADoAACACQYAIOwHsESACQQxqQgA8AAAgAkKExICQAz4CCCACQQRqIAJBFGoxAAA8AAAgAiACNQIQPgIAIAJBMGpBCBCJgYCAACACQQA2AogBIAJCADcD4BEgAkEAOwH0ESACQQA2AiwgAkEAOwH4ESAAIAAtAABBAXI6AAAgAiACLwHwEUF/ajsB9hEgAiACLwHyEUF/ajsB+hEgAUHAAGokgICAgAAPCyAAQQxqIQAMAAsLAAseACAAIAFBAXE6ABAgACAAQQRqIAEQgoKAgAA2AgALQwECfwJAIAAoAiAiAEUNACABKAIAIQIgASgCBCEDIAAgARCdgYCAACACIABBFEECQQAgAygCDBGBgICAAICAgIAACwtjAQF/AkAgAC0AvAJFDQACQCAALQC0AkEBcUUNACAAKAKgAiEBIAAgACgCnAIQzoGAgAAgACABEM6BgIAACyAAIAAtAOsCQQFyOgDrAgsCQEEkRQ0AIABBnAJqQQBBJPwLAAsLYAECfwJAIAAvAc4BIgFFDQAgACgCvAEoAgAiAkGoAWogAigCECABEKWBgIAAIAAoArgBIABBkAFqIgEQnYGAgAAgASAAKAK4ARCegYCAACAAQQA2ArgBIABBADsBzgELCygAAkAgAC0ACEEDcSABQQFxIgF2QQFxDQBBAA8LIAAgAUECdGooAgAL1gIDAn8BfgV/I4CAgIAAQTBrIgIkgICAgAAgABCBgoCAACAAQZgBaiEDAkBBJEUNACACQQhqIANBJPwKAAALIAIgACgBzgE2AgAgAiAAQdIBai8BADsBBCAAKQPAASEEIAAoArwBIQUgAC8ByAEhBiAALwHKASEHIAAvAcwBIQgCQEE8RQ0AIAMgAUE8/AoAAAsgAEEAOwHOASAAIAg7AcwBIAAgBzsBygEgACAGOwHIASAAIAU2ArwBIABBADYCuAECQAJAIAAQkoGAgAAiCUH//wNxRQ0AIABBzgFqIQECQEEkRQ0AIAMgAkEIakEk/AoAAAsgACAIOwHMASAAIAc7AcoBIAAgBjsByAEgACAENwPAASAAIAU2ArwBIAEgAigCADYBACABQQRqIAIvAQQ7AQAMAQsgACABLwEwIAEvATIQ3oGAgAALIAJBMGokgICAgAAgCQumCAMGfwF+BH8jgICAgABB0BBrIgMkgICAgAACQAJAAkAgAUEDcQ4DAgABAgsgAkEBcQ0BIAAtAChBAXFFDQEgAEECQQAQhYKAgAAMAQsgAkEBcUUNACAAENyBgIAACyAAQRhqIQQCQAJAAkACQAJAAkACQAJAAkAgAkEBcSAALQAoQQFxRg0AIAAoAhgiBRCBgoCAACAAQRxqIgYgAhCCgoCAACIHDQJBACEHQQAhCAJAIAAtACRBAXFFDQAgBigCACEICyADIAUpApABIgk3A5AQIAlCIIinIQogAC8B8BEhCyAALwHyESEMIAmnIQ0gAkEBcQ0BIAgoAmAhBwwBC0EAIQggAUEDcUECRw0HDAILIAMgCzsBshAgAyAMOwGwECADQQA2AqwQIAMgBzYCqBACQCANQfACQQNBACAKKAIAEYCAgIAAgICAgAAiBw0AQQEhCAwHCyADQRBqIANBkBBqIANBqBBqEOGAgIAAAkAgAy8BgAMiCEUNACANIAdB8AJBA0EAIAooAgwRgYCAgACAgICAAAwHCwJAQfACRQ0AIAcgA0EQakHwAvwKAAALIAYgAkEBcSIIQQJ0aiAHNgIAIAAgAC0AJEEBIAh0cjoAJAsgByAFKQLAAjcCwAIgB0HYAmogBUHYAmopAgA3AgAgB0HQAmogBUHQAmopAgA3AgAgB0HIAmogBUHIAmopAgA3AgAgBxCAgoCAACAAQe4RaiIHIActAABBAXI6AAAgBCACEP6BgIAAIAFBA3FBAkcNASAFIQgLAkAgAkEBcUUNACAAQQJBABCFgoCAACAIRQ0EIAQoAgAgCEGYAWoQg4KAgAAiAEH//wNxRQ0EIAMgADsBCCADQQhqEIaCgIAADAQLIAAQ3YGAgAAiAEH//wNxRQ0DIAMgADsBDCADQQA6AAogA0KAEDcCsBAgA0Gwv8eAADYCqBAgAyADQRBqNgKsECADQagQaiADQQpqEIeCgIAAIgBB//8DcUUNASADQagQakGg6cmAAEHGABCogICAACADLwHAEA0DIANBkBBqQRBqIANBqBBqQRBqKQIANwMAIANBkBBqQQhqIgIgA0GoEGpBCGopAgA3AwAgAyADKQKoEDcDkBACQCACIANBCmoQh4KAgABB//8DcUUNACADQZAQahCpgICAAAwECyADQcQQaiADQZAQahCqgICAACADQZAQahCpgICAACADLwHMEA0DIAMoAsgQIQcgAygCxBAhAgwCC0EAIQggBCgCACAFQZgBahCDgoCAACIAQf//A3FFDQMgAyAAOwEOIANBDmoQhoKAgAAMAwsgAygCrBAhAiADKAK0ECEHCyACIAcQgICAgAAgAEH//wNxRQ0AQaDpyYAAIAIgBxC2gICAAAtBACEICyADQdAQaiSAgICAACAIC4sHAgN/AX4jgICAgABBsAJrIgMkgICAgAACQAJAAkACQAJAAkACQANAIAAoAhghBAJAIAFB/wFxIgFBFkYNACAELQDhAiEFAkAgAQ4EBAUDAAQLIARBkMXHgABBjNTHgAAQ0oGAgAAgBBCfgYCAAAwICyAEEIiCgIAAIgFB//8DcUUNBiADIAE7AQIgA0ECahCJgoCAAEECIQEMAAsLIAVBA3FBAUYgAnIhASAALQAoQQFxDQMgA0EEaiAEQQAQtYGAgAAgAy0AEEUNAyADQcgAakEIaiADQQRqQQhqKAIANgIAIAMgAykCBDcDSCADQfgAaiAAKAIYQQAQu4GAgAAgA0HgAGogA0H4AGpBCGooAgA2AgAgA0EAOgBwIANBAToAVCADQQI6AHQgA0ECOgBkIANBADoAaCADIAMpA3g3A1ggA0GIAWogA0HIAGoQtIGAgAACQCADLQCQAUUNAAJAQSRFDQAgA0HMAWogA0HIAGpBJPwKAAALIANBAToA+AEgAyADKQOIASIGNwLwASADIAZCMIinQX9qOwH8ASADQcwBaiEEDAMLAkBBJEUNACADQZgBaiADQcgAakEk/AoAAAsgA0HCAWpCADcBACADQgA3ArwBIANBmAFqIQQMAgsgAEEAIAIQioKAgAAgACgCGCIELwHKAUEBakH//wNxIgEgAC8B8BFPDQQgA0EAOgCYAiADQQA7AZQCIAMgATYCkAIgBCADQZACakGM1MeAACAFQQNxQQFGIAJyEOaBgIAADAQLIABBASACEIqCgIAAIAAoAhgiAC8BygEiBEUNAyADQQA7AaQCIANBADoAnAIgA0EAOgCoAiADIARBf2pB//8DcTYCoAIgA0EBOgCsAiAAQYTFx4AAIANBoAJqIAVBA3FBAUYgAnIQ5oGAgAAMAwsCQEE0RQ0AIANBFGogBEE0/AoAAAsDQCADQYACaiADQRRqELeBgIAAIAMtAIwCRQ0BAkAgAygCgAIiBCgCGCAEKAIQaiADLwGEAkEDdGopAwBCJYinQQdxDgUBAAAAAgELCyAAKAIYIgQQiIKAgABB//8DcQ0AIAQQn4GAgAALIAAoAhhBhMXHgABBjNTHgAAgARDmgYCAACAAKAIYQQA6ANEBIABB7hFqIgAgAC0AAEEBcjoAAAwBCyAEEJ+BgIAAIAAoAhhBADoA0QELIANBsAJqJICAgIAAC8kCAQN/I4CAgIAAQcAQayIBJICAgIAAIAFCgBA3AqAQIAFBsL/HgAA2ApgQIAEgATYCnBACQAJAAkAgAUGYEGogABCLgoCAACICQf//A3ENACABKAKcECEAIAEoAqQQIQMMAQsgAUGYEGpBoOnJgABBwAAQqICAgAAgAS8BsBANASABQYAQakEQaiABQZgQakEQaikCADcDACABQYAQakEIaiIDIAFBmBBqQQhqKQIANwMAIAEgASkCmBA3A4AQAkAgAyAAEIuCgIAAQf//A3FFDQAgAUGAEGoQqYCAgAAMAgsgAUG0EGogAUGAEGoQqoCAgAAgAUGAEGoQqYCAgAAgAS8BvBANASABKAK4ECEDIAEoArQQIQALIAAgAxCAgICAACACQf//A3FFDQBBoOnJgAAgACADELaAgIAACyABQcAQaiSAgICAAAu3AQECfyOAgICAAEEQayICJICAgIAAAkAgAEHZ8smAAEE9EJqAgIAAIgNB//8DcQ0AIAEtAAAhAyACQdnqwIAANgIAIAJBATYCBCACQQlBByADQQFxIgMbNgIMIAJB4azAgABB3JPAgAAgAxs2AgggACACEKeEgIAAIgNB//8DcQ0AIABBlvPJgABBBRCagICAACIDQf//A3ENACAAIAEvAQIQpYSAgAAhAwsgAkEQaiSAgICAACADC6YCAgp/AX4jgICAgABBEGsiASSAgICAACAAKAJYIQJBACEDAkADQCACKAIYIAIoAhAiBGogAi8BrgIiBUEDdGohBiADIAVqIQdBACEIAkADQAJAAkAgCCAFRg0AIAAvAYgBQQFqIQkgBiAIQX9zQQN0aigCACAEaiEKA0AgCUF/aiIJRQ0CIAopAwAhCyAKQQhqIQogC0L+//+DgIADg1ANAAsgAC8BigEgA2shCgwFCyAHIQMgAigCCCICDQMMAgsgAyAALwGKAU8NASAIQQFqIQggA0EBaiEDDAALCwtBACEKCyAKQQFqIQoCQANAAkAgCkF/aiIKDQBBACEJDAILIAFBCGogABCxgYCAACABLwEMIglFDQALCyABQRBqJICAgIAAIAkLyQIBA38jgICAgABBwBBrIgEkgICAgAAgAUKAEDcCoBAgAUGwv8eAADYCmBAgASABNgKcEAJAAkACQCABQZgQaiAAEIKEgIAAIgJB//8DcQ0AIAEoApwQIQAgASgCpBAhAwwBCyABQZgQakGg6cmAAEHDABCogICAACABLwGwEA0BIAFBgBBqQRBqIAFBmBBqQRBqKQIANwMAIAFBgBBqQQhqIgMgAUGYEGpBCGopAgA3AwAgASABKQKYEDcDgBACQCADIAAQgoSAgABB//8DcUUNACABQYAQahCpgICAAAwCCyABQbQQaiABQYAQahCqgICAACABQYAQahCpgICAACABLwG8EA0BIAEoArgQIQMgASgCtBAhAAsgACADEICAgIAAIAJB//8DcUUNAEGg6cmAACAAIAMQtoCAgAALIAFBwBBqJICAgIAAC6cFAQR/I4CAgIAAQdAQayIDJICAgIAAAkACQAJAAkACQAJAAkACQAJAAkACQCABQf8BcQ4DAQACAwsgACgCGCIBLwHIASABKALEASkDAEKAgICAgIADg0KAgICAgIABUWpBAWohBAwHCyAAKAIYIgQvAcgBIgENAkEAIQEMAwsgAC8B8hEhBAwFCyADIAE6AA8gA0KAEDcCsBAgA0Gwv8eAADYCqBAgAyADQRBqNgKsECADQagQaiADQQ9qEKeCgIAAIgBB//8DcUUNAiADQagQakGg6cmAAEEyEKiAgIAAIAMvAcAQDQYgA0GQEGpBEGogA0GoEGpBEGopAgA3AwAgA0GQEGpBCGoiASADQagQakEIaikCADcDACADIAMpAqgQNwOQEAJAIAEgA0EPahCngoCAAEH//wNxRQ0AIANBkBBqEKmAgIAADAcLIANBxBBqIANBkBBqEKqAgIAAIANBkBBqEKmAgIAAIAMvAcwQDQYgAygCyBAhBCADKALEECEBDAMLIAEgBCgCxAEpAwBCgICAgICAA4NCgICAgICAAlFrQf//A3EhAQsgBBCogoCAACAALwHyESEEDAMLIAMoAqwQIQEgAygCtBAhBAsgASAEEICAgIAAIABB//8DcUUNAkGg6cmAACABIAQQtoCAgAAMAgtBACEBCyAAKAIYQQA6ANEBIAAoAhgoAsABIgUgBSkDAEKAgICAgMAAhDcDACAAKAIYIgAoAsQBIAAvAcgBQQN0ayABQQN0aiEFIARB//8DcSABayEBIAAoArwBKAIAQRBqIQQgACgCwAEhBgJAIAAtAOECQQNxQQFGDQAgAkEBcQ0AIAAgBCAGIAUgARDogYCAAAwBCyAAIAQgBiAFIAEQ54GAgAALIANB0BBqJICAgIAACzEBAX8CQCAAQZvyyYAAQT4QmoCAgAAiAkH//wNxDQAgACABLwEAEKWEgIAAIQILIAILpAMCAX8BfiAAKAIIIAEgAhCMgYCAAEEAIQMCQAJAAkACQAJAAkACQCABQf//A3EiAUHpd2oOAwEFAgALAkACQAJAIAFBfWoOBAUICAEACyABQS9GDQEgAUHFAEYNBQwHCyAAKAIIQQFBARDjgYCAAEEADwsgACgCCEEAIAIQhIKAgAAPCyAAKAIIQQEgAhCEgoCAAA8LIAAoAghBAiACEISCgIAADwsCQCAAKAIIIgE1AgAgAUEEaiIAMQAAQiCGhCIEQoCAAYNCAFINACAAIARCIIg8AAAgASAEQt///v8Pgz4CAEEADwsgACAEQiCIPAAAIAEgBELf////D4NCIEIAIAJBAXEiABuEPgIAIAEgASgCGEGQAWpBhAFB0AAgABsgAS8B8BEQ2YGAgAAiA0H//wNxDQIgAUECQQAQhYKAgAAgAUEBQQEQ44GAgABBAA8LIAJBAXENASAAKAIIQQA7AfgRIAAoAggiASABLwHyEUF/ajsB+hFBAA8LIAAoAgghAQJAIAJBAXENACABEN2BgIAADwsgARDcgYCAAEEADwsgAwsRACAAIAEvAQBBARCMgoCAAAsRACAAIAEvAQBBABCMgoCAAAsPACAAKAIIQQEQkIKAgAAL7QMDAX8Bfgh/I4CAgIAAQSBrIgIkgICAgAACQAJAAkACQCAANQIAIABBBGoxAABCIIaEIgNCgASDQgBSDQAgAUEBIAFBAUsbIQEMAQsgAUEBIAFBAUsbIQEgA0KAgIKACINQRQ0BCyAAKAIYIgQgASAELwHIASIEIAEgBEkbEOWBgIAAIAAoAhhBADoA0QEMAQsgA0KAgICACIMhAwJAIAAoAhgiBS0A0QFFDQAgBUEAOgDRASABQX9qIQEgACgCGCEFC0EAIAAvAfgRIgYgBS8ByAEiBCAGSRshByAALwH6ESEIIAAvAfYRIQkgAC8B9BEhCgJAIANCAFINACAEIAdHDQAgBS8BygEgCkH//wNxSw0AIAUgBCAKEN6BgIAADAELA0AgBSAEIAdrQf//A3EiBCABIAQgAUkbIgYQ5YGAgAAgASAETQ0BAkACQCAAKAIYIgQvAcoBIgUgCkH//wNxRw0AIAkhBSADUA0DDAELIAVFDQICQCADUEUNACACQQxqIAQoArwBQQEQ34GAgAAgAigCDCILKAIYIAsoAhBqIAIvARBBA3RqLQAEQQFxRQ0DCyAFQX9qIQULIAQgCCAFEN6BgIAAIAEgBkF/c2ohASAAKAIYIgUvAcgBIQQMAAsLIAJBIGokgICAgAALVAECfyABQQN2IQIgAUEHcUHAp8iAAGotAAAhAwJAAkAgAUGABE8NACAAIAJqQQxqIQEMAQsgAiAAKAIEakFAaiEBCyADQf8BcSIAIAEtAABxIABGC5EBAQZ/IAFB//8DcSECQQAhAwJAA0AgAyACRg0BIAAoAggiAUEwaiEEIAEoAhgiBS8ByAEiBiEHAkADQCAHQf//A3EgAS8B+hFPDQEgBUEBEOSBgIAAIAQgASgCGCIFLwHIASIHEJGCgIAAQQFxRQ0ACwsgA0EBaiEDIAZB//8DcSAAKAIIKAIYLwHIAUcNAAsLCw0AIAAoAggQ9oGAgAALMgEBfwJAIAAoAggiABDwgYCAACIBQf//A3ENACAALQAAQQhxRQ0AIAAQ9oGAgAALIAELxQECA38BfgJAIAAoAhgiAS8ByAEiAiAALwHyEUF/aiIDQf//A3FHDQAgASgCwAEiASABKQMAQoCAgIAQhDcDACAAKAIYIQELIAEoAsABKQMAIQQCQCAAEPCBgIAAIgFB//8DcQ0AIAAoAhggAC8B+BEQ94GAgAAgAiADQf//A3FHDQAgACgCGCgCwAEiAiACKQMAQv//////Y4MgBEKAgICAgByDhDcDACAAKAIYKALAASIAIAApAwBCgICAgCCENwMACyABC8QCAQR/I4CAgIAAQTBrIgMkgICAgABBACEEAkAgACgCvAEoAgBBEGogACgCwAEgASACEJeCgIAAQf//A3FFDQAgA0EgakIANwMAIANCADcDGCADQgA3AwggA0EBOgAUIAMgACgCvAEoAgAiBCgCoAJBAXQ2AhAgACgCxAEhBSAALwHIASEGIANBKGogACAEIANBCGoQloGAgAAgAy8BLCIEDQACQAJAAkACQEECIAEgBkEDdCAFa2pBA3YiBCAALwHIASIBSSAEIAFGGw4DAgEAAgsgACgCxAEhAQwCCyAAKALEASABIARrQf//A3FBA3RrIQEMAQsgACgCxAEgBCABa0EDdGohAQtBACEEIAAoArwBKAIAQRBqIAAoAsABIAEgAhCXgoCAACIAQf//A3FFDQAgACEECyADQTBqJICAgIAAIAQLqgUDCX8BfgF/I4CAgIAAQTBrIgQkgICAgAAgBCAAKAIoIAAoAgAiBWoiBjYCDCACIAVrIQcCQAJAAkACQCACKQMAQgODQgFRDQAgBEEQaiAAQRxqIgYgBUEBEKiBgIAAIAQvARgiCEUNAQwDC0EAIQkgBkF8aigCAEUNASAGQXBqIQogBkF0aiELIAZBeGooAgAiCEF/aiIMIAcQuoGAgAAiDadxIQIgDUI5iKchDgNAIAYgAmosAAAiAUUNAiAIRQ0CAkAgAUF/Sg0AIA4gAUH/AHFHDQAgByALKAIAIAZqIAJBAnRqKAIARw0AIAooAgAgBmogAkEDdGohCQwDCyAIQX9qIQggAkEBaiAMcSECDAALCyAEKAIQIgggAzsBACAIQQJqIANB////AHFBEHY6AAAgBEEBNgIgIAQgCCAAKAIAazYCHCAEKAIUIQwCQCAEQQxqIAcgBEEcahCpgYCAAEH//wNxRQ0AIAYgACgCACAIIAwQooGAgABBASEIDAILIAIgAikDAEJ8g0IBhDcDACABIAEpAwBCgICAgMAAhDcDAEEAIQgMAQsCQCAJKAIEIgJBA3FFDQAgCSgCACAFaiACQQJ0aiICIAM7AQAgAkECaiADQf///wBxQRB2OgAAIAkgCSgCBEEBajYCBEEAIQgMAQsgBEEkaiAAQRxqIgEgBSACQQFyEKiBgIAAIAQvASwiCA0AIAkoAgAgACgCAGohCCAEKAIkIQICQCAJKAIEIgZBAnQiDEUNACACIAggDPwKAAALIAIgCSgCBEECdGoiDCADOwEAIAxBAmogA0H///8AcUEQdjoAACAJIAIgACgCAGs2AgAgCSAJKAIEQQFqNgIEIAEgACgCACAIIAYQooGAgABBACEICyAEQTBqJICAgIAAIAgLhAQDB38BfgF/I4CAgIAAQdAAayIBJICAgIAAIAAvAc4BIQIgAUEwaiEDAkACQAJAAkADQCABIAAoArwBKAIAIgQoAqQBIAQoAhAiBWo2AgggACgCwAEhBiABQQxqIAFBCGogACgCxAEiByAFaxCrgYCAAAJAIAEvARgNAAJAIAEtABQNACABKAIQIQUMAwsgBEGoAWogBCgCECABKAIQIgUvAQAQpYGAgABCgICAgICACCEIIAUvAQAgAkH//wNxRw0CIAchBgwDCwJAAkAgACgCuAEiBQ0AQQAhBwwBCyAFKAIQIQcLIAQoAqQCIQIgAUEcaiAEQSBqIAQoAhAgBxDAgYCAACACIQUCQAJAIAEvASQNACACIQkMAQsDQCAFIAJrIQYgBSEJIAVBAXQhBSAGIAdJDQALCyADQgA3AwAgAUIANwMoIAFBAToARCABIAk2AkAgAUEBOgA8IAEgBCgCnAJBAXQ2AjggAUHIAGogACAAKAK8ASgCACABQShqEJaBgIAAIAEvAUwiBQ0EIAAvAc4BIgINAAwDCwsgBSACOwEAIAcgBykDAEKAgICAgIAIhDcDAEKAgICAgAIhCAsgBiAGKQMAIAiENwMAIAQoAqwBIAQoAhBqIAAvAc4BQRxsaiIFIAUvARhBAWo7ARgLQQAhBQsgAUHQAGokgICAgAAgBQvVFAUGfwJ+An8BfgV/I4CAgIAAQSBrIgIkgICAgABBACEDAkACQCAAKAIsDQACQAJAIAAoAhgiBC8ByAEiBSAALwH6ESIGSw0AIAZBAWohBwwBCyAALwHyESEHCyAANQIAIABBBGoxAABCIIaEIQhBASEGAkACQAJAAkACQAJAAkACQCABQf///wBxQf8BTQ0AIAhCgICAgIAEgyEJAkAgBUUNACAJUA0AIAdBf2ohCiAEKALEASEGQQEhCwJAIAhCgASDQgBSDQAgBSAKQf//A3FHDQAgBikDACIMQgKDQgGIpyAMQvz//wODUHIhCwsCQCAGIAtBA3RrIg0pAwAiDEKAgICAgIADg0KAgICAgIACUg0AIAYgC0EBaiILQQN0ayINKQMAIQwLIAxCAoNCAFINACAMQvz//wODUA0AQQAhBiACQQA6AAcgDEICiKciDiEPAkAgDKdBAXFFDQAgAiAEKAK8ASgCACIQKAI4IBAoAhAiEGo2AgggAkEMaiACQQhqIA0gEGsQp4GAgAACQAJAIAItABQNAEEAIRAMAQsgAigCDCAQaiEGIAIoAhAhEAsgDiEPA0AgEEUNASAPIAYvAQAgBkECai0AAEEQdHIiESACQQdqEJqCgIAAGiAGQQRqIQYgEEF/aiEQIBEhDwwACwsgDyABIAJBB2oQmoKAgABBAXENACABQf7//wBxQY78A0cNCEEAIQMgDkH/AXEgDkGA/v8AcUEHdkGEiMKAAGovAQBqQQF0QYSIw4AAai8BAEGE8MaAAGotAABBwABxRQ0KIAxCgICAgICAA4MhCAJAIAFB////AHFBj/wDRw0AIAhCgICAgICAAVENCSAEIAsQ5YGAgAAgACgCGC8ByAEgCkH//wNxIgZHDQggAC0AAUECcUUNCyAAQQBBf0EAIAdB//8DcSAALwHyEUYbEJuCgIAAIAAQlYKAgAAiA0H//wNxDQsMCAsgCEKAgICAgIABUg0IIA0gDEL9//////98gzcDACAAKAIYKALEASALQX9qQf//A3FBA3RrIgMgAykDAEL///////98gzcDAAJAIAAoAhgiAy8ByAEgCkH//wNxRw0AIANBADoA0QEMCQsgA0EBEOWBgIAADAgLIAFB/wFxIAFBgP7/AHFBB3ZBhIjCgABqLwEAakEBdEGEiMOAAGovAQBBhPDGgABqLQAAQQNxIgYNACAJUEUNCSAFDQEMBQsgACABOwHgESAAQQE6AOQRIABB4hFqIAFBEHZBH3EiAzoAACACIAE7ARggAiADOgAaIAQtANEBRQ0DIAhCgASDQgBSDQEMAwsgBCgCxAEiAEFwaiAAQXhqIgAgACkDAEKAgICAgIADg0KAgICAgIACURsiACkDACIIQgKDQgBSDQMgCEL8//8Dg0IAUQ0DIAFB/v//AHFBjvwDRw0BQQAhAyAIQgKIpyIGQf8BcSAGQYD+/wBxQQd2QYSIwoAAai8BAGpBAXRBhIjDgABqLwEAQYTwxoAAai0AAEECdkEPcUELRw0HDAELIAAQlYKAgAAiA0H//wNxDQYgADUCACAAQQRqMQAAQiCGhCEIDAELIAQgACABEJaCgIAAIQMMBQsCQCAIQgKDUA0AIAYgACgCGC8ByAFqIAAvAfIRTw0AIAAgBhCcgoCAAAsCQAJAAkACQCAGQQFHDQAgACgCGCgCwAEiAyADKQMAQoCAgICAwACENwMAAkACQCAAKAIYIgMtANwCRQ0AIAMoAtgCIQYgA0IANwLYAiAAKAIYIQMMAQsgAygC0AIhBgsgAUEgIAMgBkECdGpBwAJqKAIAIgRBAkkiBhshBQJAIAFB////AHFB/wFLDQAgBg0AQZ7wxoAAQZ70xoAAIARBAkYbIAFB////AHFBAXRqLwEAIQULAkACQCADKALEASIGKQMAQiqIp0EDcQ4EBAABBAQLIAMvAcgBIAAvAfIRQX9qQf//A3FPDQMgAyADKAK8ASgCAEEQaiADKALAASAGQQhqQQEQ6IGAgAAgACgCGCIBLwHKAUUNAyABLwHIAUECSQ0CDAMLIAMgAygCvAEoAgBBEGogAygCwAEgBkF4akEBEOiBgIAAIAAoAhgiAS8BygFFDQIgAS8ByAFBAkkNAQwCCyAAKAIYIQMCQCAHIAAvAfgRa0H//wNxQQFLDQAgAygCwAEiASABKQMAQoCAgICAwACENwMAIABBAEEAEJuCgIAADAMLAkAgAy8ByAEgB0F/akH//wNxRw0AIAAtAAFBAnFFDQcgAEEAQX9BACAHQf//A3EgAC8B8hFGGxCbgoCAACAAEJWCgIAAIgNB//8DcQ0IIAAoAhghAwsgAygCwAEiAyADKQMAQoCAgICAwACENwMAIAAgAUEBEJuCgIAAIAAoAhhBARDkgYCAACAAQQBBAhCbgoCAAAwCCyABEJ2CgIAAIgEgASkDAEL///////98gzcDAAsgACgCGCEEAkAgBikDAEIDg0IBUg0AIAQoArwBKAIAIgFBEGogBhDqgYCAACABLwGsAkEBaiEDIAAoAhgiBCgCwAEiECgCACABKAIQaiEBAkADQCADQX9qIgNFDQEgASkDACEIIAFBCGohASAIQgODQgFRDQIMAAsLIBAgECkDAEL/////v3+DNwMAIAAoAhghBAsCQCAELwHMASAGKQMAIghCGoinIhBB//8DcSIBRiIDDQAgAUUNACAEKAK8ASgCACIBQTxqIAEoAhAgEBCTgYCAACAGKQMAIQgLIAYgCEKAgIB8gyAFrUL///8Ag0IChoQiCTcDACAGIAAoAhgvAcwBIgGtQhqGIAlC/P//n4CAfIOEIgk3AwAgBkKAgICAgIAEQgAgACgCGC0A0gEbIAlC/P//////AIOENwMAAkAgAw0AIAFFDQAgACgCGCgCvAEoAgAiAygCQCADKAIQaiABQSRsaiIBIAEvASBBAWo7ASAgACgCGCgCwAEiASABKQMAQoCAgICAAYQ3AwALAkAgACgCGCIBLwHOAUUNACABEJiCgIAAIgFB//8DcUUNASACIAE7AR4gAkEeahCegoCAAAwBCyAIQoCAgICAgAiDUA0AIAEoArwBKAIAIgFBEGogBhDrgYCAACABLwGsAkEBaiEDIAAoAhgoAsABIgQoAgAgASgCEGohAQJAA0AgA0F/aiIDRQ0BIAEtAAUhBiABQQhqIQEgBkEgcUUNAAwCCwsgBCAEKQMAQv//////fYM3AwALAkAgACgCGCIALwHIASAHQX9qQf//A3FHDQAgAEEBOgDRAQwECyAAQQEQ5IGAgAAMAwsQn4KAgAAMAgsgACANKQMAQgKIp0EBEJuCgIAAIAAoAhhBARDkgYCAACAAQQBBAhCbgoCAAAJAIAAoAhgiAy8ByAEgBkcNACADQQE6ANEBDAELIANBARDkgYCAAAsgACgCGCgCwAEiAyADKQMAQoCAgICAwACENwMAIAAoAhggDSABEJaCgIAAIQMMAQtBACEDCyACQSBqJICAgIAAIAMLlQEAIAIgAUH/AXEgAUGA/v8AcUEHdkGEiMKAAGovAQBqQQF0QYSIw4AAai8BAEGE8MaAAGotAABBBHRBwAdxIAItAABBA3EgAEH/AXEgAEGA/v8AcUEHdkGEiMKAAGovAQBqQQF0QYSIw4AAai8BAEGE8MaAAGotAABBPHFyckGcxceAAGotAAAiAEEBdkEDcToAACAAC84HAgZ/An4jgICAgABBEGsiAySAgICAAAJAAkAgACgCGCIELQDcAkUNACAEKALYAiEFIARCADcC2AIgACgCGCEEDAELIAQoAtACIQULAkAgBCAFQQJ0akHAAmooAgAiBUECSQ0AIAFB////AHEhBkEgIQEgBkH/AUsNAEGe8MaAAEGe9MaAACAFQQJGGyAGQQF0ai8BACEBCwJAIAJBA3EgBCgCxAEiBikDAEIqiKdBA3EiBUYNAAJAAkACQCAFDgQDAAEDAwsgBC8ByAEgAC8B8hFBf2pB//8DcU8NAiAEIAQoArwBKAIAQRBqIAQoAsABIAZBCGpBARDogYCAACAAKAIYIgQvAcoBRQ0CIAQvAcgBQQJJDQEMAgsgBCAEKAK8ASgCAEEQaiAEKALAASAGQXhqQQEQ6IGAgAAgACgCGCIELwHKAUUNASAELwHIAUECTw0BCyAEEJ2CgIAAIgQgBCkDAEL///////98gzcDAAsgACgCGCEHAkAgBikDAEIDg0IBUg0AIAcoArwBKAIAIgRBEGogBhDqgYCAACAELwGsAkEBaiEFIAAoAhgiBygCwAEiCCgCACAEKAIQaiEEAkADQCAFQX9qIgVFDQEgBCkDACEJIARBCGohBCAJQgODQgFRDQIMAAsLIAggCCkDAEL/////v3+DNwMAIAAoAhghBwsCQCAHLwHMASAGKQMAIglCGoinIghB//8DcSIERiIFDQAgBEUNACAHKAK8ASgCACIEQTxqIAQoAhAgCBCTgYCAACAGKQMAIQkLIAYgCUKAgIB8gyABrUL///8Ag0IChoQiCjcDACAGIAAoAhgvAcwBIgStQhqGIApC/P//n4CAfIMgAq1CA4NCKoaEhCIKNwMAIAZCgICAgICABEIAIAAoAhgtANIBGyAKQvz//////wODhDcDAAJAIAUNACAERQ0AIAAoAhgoArwBKAIAIgUoAkAgBSgCEGogBEEkbGoiBCAELwEgQQFqOwEgIAAoAhgoAsABIgQgBCkDAEKAgICAgAGENwMACwJAAkAgACgCGCIELwHOAUUNACAEEJiCgIAAIgRB//8DcUUNASADIAQ7AQ4gA0EOahCegoCAAAwBCyAJQoCAgICAgAiDUA0AIAQoArwBKAIAIgRBEGogBhDrgYCAACAELwGsAkEBaiEFIAAoAhgoAsABIgYoAgAgBCgCEGohBAJAA0AgBUF/aiIFRQ0BIAQtAAUhACAEQQhqIQQgAEEgcQ0CDAALCyAGIAYpAwBC//////99gzcDAAsgA0EQaiSAgICAAAvUCAMLfwF+A38jgICAgABBkAFrIgIkgICAgAAgACgCGEEAOgDRAQJAIAAoAhgiAy8ByAEiBCAALwH4EUkNACAEIAAvAfoRIgVLDQAgAygCvAEoAgAiBkEQaiEHAkAgAygCxAEiCCkDAEKAgICAgIADg0KAgICAgIACUg0AIAMgByADKALAASAIQXhqQQIQ6IGAgAAgAC8B+hEhBSAAKAIYIgMvAcgBIQQLAkAgBSAEayIFQQFqQf//A3EiBCABIAQgASAESRsiCUYNAAJAIAggBSAJa0H//wNxQQN0IgRqIgEpAwBCgICAgICAA4NCgICAgICAAVINACADIAcgAygCwAEgAUECEOiBgIAACyAIIQUgCCAJQQN0aiIKIQsgCCEMA0ACQAJAAkACQAJAIAwgBGoiAyAISQ0AIAsgBGoiASkDAEIDgyENIAMpAwBCA4NCAVENASANQgFRDQIMBAsgACgCGCEDDAULIAYoAjggBigCECIOaiEPIAQgCmogDmshECAEIAVqIA5rIQ4gDUIBUQ0BIAIgDzYCCCACQQxqIAJBCGogDhChgYCAACACIAIoAhApAgA3AxggAkEIaiACKAIMEKOBgIAAIAJBCGogECACQRhqEKGCgIAADAILIAIgBigCOCAGKAIQIg5qNgIgIAJBJGogAkEgaiAEIApqIA5rEKGBgIAAIAIgAigCKCkCADcDMCACQSBqIAIoAiQQo4GAgAAgAkEgaiAEIAVqIA5rIAJBMGoQoYKAgAAMAQsgAiAPNgI4IAJBPGogAkE4aiAOEKGBgIAAIAIoAkAhDiACQcgAaiACQThqIBAQoYGAgAAgDikCACENIA4gAigCTCIPKQIANwIAIA8gDTcCAAsgASkDAEKAgICAgIAIgyENAkACQCADLQAFQSBxDQAgDVANASACIAYoAqQBIAYoAhAiDmo2AmQgAkHoAGogAkHkAGogBCAKaiAOaxCkgYCAACACKAJsLwEAIQ8gAkHkAGogAigCaBCmgYCAACACQeQAaiAEIAVqIA5rIA8QooKAgAAMAQsgBigCpAEgBigCECIOaiEPIAQgCmogDmshECAEIAVqIA5rIQ4CQCANQgBSDQAgAiAPNgJUIAJB2ABqIAJB1ABqIA4QpIGAgAAgAigCXC8BACEOIAJB1ABqIAIoAlgQpoGAgAAgAkHUAGogECAOEKKCgIAADAELIAIgDzYCdCACQfgAaiACQfQAaiAOEKSBgIAAIAIoAnwhDiACQYQBaiACQfQAaiAQEKSBgIAAIA4vAQAhDyAOIAIoAogBIhAvAQA7AQAgECAPOwEACyABKQMAIQ0gASADKQMANwMAIAMgDTcDACAFQXhqIQUgCkF4aiEKIAtBeGohCyAMQXhqIQwMAAsLIAMgByADKALAASAIIAkQ6IGAgAAgACgCGCgCwAEiBCAEKQMAQoCAgICAwACENwMACyACQZABaiSAgICAAAtuAQN/I4CAgIAAQSBrIgEkgICAgAAgAUEMaiAAKAK8AUEBEN+BgIAAIAEoAgwiAigCGCACKAIQIgJqIAEvARBBA3RqKAIAIQMgAC8BiAEhACABQSBqJICAgIAAIAMgAmogAEF/akH//wNxQQN0agvJAgEDfyOAgICAAEHAEGsiASSAgICAACABQoAQNwKgECABQbC/x4AANgKYECABIAE2ApwQAkACQAJAIAFBmBBqIAAQo4KAgAAiAkH//wNxDQAgASgCnBAhACABKAKkECEDDAELIAFBmBBqQaDpyYAAQdkAEKiAgIAAIAEvAbAQDQEgAUGAEGpBEGogAUGYEGpBEGopAgA3AwAgAUGAEGpBCGoiAyABQZgQakEIaikCADcDACABIAEpApgQNwOAEAJAIAMgABCjgoCAAEH//wNxRQ0AIAFBgBBqEKmAgIAADAILIAFBtBBqIAFBgBBqEKqAgIAAIAFBgBBqEKmAgIAAIAEvAbwQDQEgASgCuBAhAyABKAK0ECEACyAAIAMQgICAgAAgAkH//wNxRQ0AQaDpyYAAIAAgAxC2gICAAAsgAUHAEGokgICAgAALxQIBBH8jgICAgABBwBBrIgAkgICAgAAgAEKAEDcCoBAgAEGwv8eAADYCmBAgACAANgKcEAJAAkACQCAAQZgQahCggoCAACIBQf//A3ENACAAKAKcECECIAAoAqQQIQMMAQsgAEGYEGpBoOnJgABByQAQqICAgAAgAC8BsBANASAAQYAQakEQaiAAQZgQakEQaikCADcDACAAQYAQakEIaiICIABBmBBqQQhqKQIANwMAIAAgACkCmBA3A4AQAkAgAhCggoCAAEH//wNxRQ0AIABBgBBqEKmAgIAADAILIABBtBBqIABBgBBqEKqAgIAAIABBgBBqEKmAgIAAIAAvAbwQDQEgACgCuBAhAyAAKAK0ECECCyACIAMQgICAgAAgAUH//wNxRQ0AQaDpyYAAIAIgAxC2gICAAAsgAEHAEGokgICAgAALEwAgAEH288mAAEHJABCagICAAAufAwMBfwF+Cn8jgICAgABBEGsiAySAgICAACABELqBgIAAIQQCQAJAIAAoAgAiBQ0AIASnIQZBACEHQX8hCAwBCyAFQXhqKAIAIgdBf2oiCCAEp3EhBgsgBUF0aiEJIAVBeGohCiAEQjmIpyELIAchDAJAAkADQCAFIAZqIg0sAAAiDkUNASAMRQ0BAkACQCAOQX9KDQAgCyAOQf8AcUcNACABIAkoAgAgBWogBkECdGoiDigCAEcNASADQQE6AAggBUFwaigCACAFaiAGQQN0aiEGIANBCGohDAwECyAHIAooAgBHDQAgBiAHIA5BAUYbIQcLIAxBf2ohDCAGQQFqIAhxIQYMAAsLIAUgB2ogDSAHIAooAgBJIg4bIAtBgAFyOgAAIAAoAgAiDEF8aiIFIAUoAgBBAWo2AgAgA0EAOgAMIAwgDEFwaigCAGogByAGIA4bIg5BA3RqIQYgDCAMQXRqKAIAaiAOQQJ0aiEOIANBDGohDAsCQCAMLQAAQQFxDQAgDiABNgIACyAGIAIpAgA3AgAgA0EQaiSAgICAAAtNAQF/I4CAgIAAQRBrIgMkgICAgAAgA0EEaiAAIAEQx4GAgAACQCADLQAMDQAgAygCBCABNgIACyADKAIIIAI7AQAgA0EQaiSAgICAAAsyAQF/AkAgAEG/9MmAAEHXABCagICAACICQf//A3ENACAAIAEvAQAQpYSAgAAhAgsgAgseACAAKAIIIAEvAQAgAUECai0AAEEQdHIQmYKAgAALegEDfyABLwEAIQIgACgCCCIBKAIYQQA6ANEBAkACQCABLwH2ESIDIAEoAhgiAC8BygEiBEkNACADIARrIQEMAQsgAS8B8BEgBEF/c2ohAQsgACABQf//A3EiASACQf//A3EiAkEBIAJBAUsbIgIgASACSRsQ6YGAgAALEgAgACgCCCABLwEAEPqBgIAACzcBAX8CQCAAQbiwyoAAQTAQmoCAgAAiAkH//wNxDQAgAEGMtcqAACABLQAAELGEgIAAIQILIAILhgIDAn8BfgN/I4CAgIAAQSBrIgEkgICAgAAgAEEAOgDRAQJAIAAoAsABIgIpAwAiA0KAgICAEINCAFENACACIANC/////2+DNwMAIAFBDGogACgCvAEiBEEBEM+BgIAAAkAgAS0AHA0AIAEoAgwiBCgCGCAEKAIQaiABLwEQQQN0aiIEIAQpAwBC/////1+DNwMAIAAoArwBIQQLIAQoAgAiBSgCGCAFKAIQIgZqIAQvAQRBA3RqKAIAIAZqIAUvAawCQX9qQf//A3FBA3RqIgQpAwBCgICAgICAA4NCgICAgICAA1INACAAIAVBEGogAiAEQQEQ6IGAgAALIAFBIGokgICAgAALygkDCn8BfgN/I4CAgIAAQfABayICJICAgIAAAkAgAUUNACAAKAIYIgMvAcoBIgQgAC8B9BFJDQAgAC8B9hEiBSAESQ0AIAMvAcgBIgYgAC8B+BEiB0kNACAGIAAvAfoRIghLDQBBACEJAkAgBw0AIAggAC8B8hFBf2pB//8DcU8hCQsgAkEMaiADKAK8ASAFIARrIgZB//8DcRDPgYCAAEGczceAACEFAkAgAi0AHA0AIAJBIGpBCGogAkEMakEIaigCADYCACACIAIpAgw3AyAgAkEBOgAsIAJBIGohBQsgAkEwaiADIAUQhIGAgAACQCACLwE0IgMNACABIAZBAWpB//8DcSIHIAEgB0kbIQggAkHQAGpBCGohCiACQbABakEQaiELIAIoAjAhAQNAAkACQCAHRQ0AIAEoAgAiAygCGCADKAIQaiABLwEEQQN0aiIDIAMpAwAiDEKAgICAgMAAhDcDAAJAAkACQAJAIAcgCE0NACACQTxqIAEgCBDfgYCAACACKAI8IgYoAhAhBSAGKAIYIQ0gAi8BQCEOIAAgASgCAEEQaiADEKqCgIAAIAAgBkEQaiIPIA0gBWogDkEDdGoiBRCqgoCAACAJRQ0BIAUgBSkDAEL/////b4M3AwAgAyADKQMAQv////9vgzcDACAFIAUpAwBC/////1+DNwMAIAMgAykDAEL/////X4MiDDcDACAGIAEoAgAiDUcNAiADIAUpAwA3AwAgBSAMNwMAIAMgAykDAEKAgICAgMAAhDcDAAwFCyAAKAIYIAEoAgAiBUEQaiADIAynIAUoAhBqIAAvAfgRIgVBA3RqIAAvAfoRQQFqQf//A3EgBWsQ6IGAgAAMBAsgBiABKAIAIg1GDQELIA1BEGogDyADIAUgAC8B+BEgAC8B+hFBAWpB//8DcRCggYCAAEH//wNxIgZFDQIgASgCACEDQazNx4AAIQUCQAJAAkACQAJAIAZBZWoOCAAEAQIEAgMDAAsgCkIANwIAIApBCGpCADcCACAKQRBqQgA3AgAgAkEBOgBUIAIgAygCmAJBAXQ2AlAgAkHQAGohBQwDCyACQfAAakEIakIANwMAIAJB8ABqQRBqQgA3AwAgAkIANwNwIAJBAToAjAEgAiADKAKkAkEBdDYCiAEgAkHwAGohBQwCCyACQZABakEIakIANwMAIAJCADcDkAEgAkIANwOoASACQQE6AKQBIAIgAygCnAJBAXQ2AqABIAJBkAFqIQUMAQsgC0IANwMAIAtBCGpCADcDACACQgA3A7ABIAJBAToAvAEgAiADKAKgAkEBdDYCuAEgAkGwAWohBQsgAkHUAWogACgCGCADIAUQloGAgAACQCACLwHYAQ4CBAAACwALIA1BEGogBSAALwH4ESIGIAMgBiAALwH6ESAGa0EBakH//wNxEKuCgIAADAELIAAoAhggARDOgYCAACAAKAIYIAAvAfgRIAQQ3oGAgAAgACgCGEEAOgDRAQwDCyACQdwBaiABQQEQ34GAgAAgB0F/aiEHIAItAOwBDQAgASACKQLcATcCACABQQhqIAJB3AFqQQhqKAIANgIADAALCyACIAM7ATogAkE6ahCsgoCAAAALIAJB8AFqJICAgIAAC6kEAwN/AX4DfyACKAIAIAEoAgBqIQMCQAJAIAAvAfoRIgQgAC8B8hFBf2pB//8DcUYNACAALwH4EUEBSw0BCyADIAEvAZwCQX9qQf//A3FBA3RqIgUpAwAiBkKAgICAgIADg0KAgICAgIADUg0AIAUgBkL///////98gzcDACAALwH6ESEECyADIARB//8DcUEDdGohBwJAIAMgAC8B+BEiBEEDdGoiCCkDAEKAgICAgIADg0KAgICAgIACUg0AAkAgAyAEQX9qQf//A3FBA3RqIgkpAwBCA4NCAVINACABIAkQ6oGAgAAgAS8BnAJBAWohBSACKAIAIAEoAgBqIQQCQANAIAVBf2oiBUUNASAEKQMAIQYgBEEIaiEEIAZCA4NCAVENAgwACwsgAiACKQMAQv////+/f4M3AwALIAkgCSkDAEKDgID8//98gzcDACAIIAgpAwBC////////fIM3AwALAkAgBykDACIGQoCAgICAgAODQoCAgICAgAFRDQAPCyADIAAvAfoRQQFqQf//A3FBA3RqIQACQCAGQgODQgFSDQAgASAHEOqBgIAAIAEvAZwCQQFqIQUgAigCACABKAIAaiEEAkADQCAFQX9qIgVFDQEgBCkDACEGIARBCGohBCAGQgODQgFRDQIMAAsLIAIgAikDAEL/////v3+DNwMACyAHIAcpAwBCg4CA/P//fIM3AwAgACAAKQMAQv///////3yDNwMAC5wMBAZ/AX4HfwF+I4CAgIAAQdAAayIGJICAgIAAIAMoAgAgACgCACIHaiIIIARBA3QiCWohCiABKAIAIQsCQCADKQMAIgxCgICAgMAAg1ANACAAQRxqIQ0gCCAJaiEOIAohCSAFIQ8DQAJAAkAgD0UNACAJKQMAQgODQgFSDQEgBiAAKAIoIAAoAgAiEGo2AgggBkEMaiAGQQhqIA4gEGsQoYGAgAAgBigCDCERIA0gECAQIAYoAhAiEigCAGogEigCBBCigYCAACAGQQhqIBEQo4GAgAAgCSAJKQMAQnyDNwMADAELAkACQCAFIAAvAZwCIglGDQAgCUEBaiEPIAMoAgAgACgCAGohCQJAA0AgD0F/aiIPRQ0BIAkpAwAhDCAJQQhqIQkgDEIDg0IBUQ0DDAALCyADIAMpAwBC/////79/gyIMNwMADAQLIAMgAykDAEL/////v3+DIgw3AwAMAwsgAykDACEMDAILIA5BCGohDiAJQQhqIQkgD0F/aiEPDAALCwJAIAxCgICAgIACg1ANACAAQZgBaiERIAggBEEDdGohDiAKIQkgBSEPA0ACQAJAIA9FDQAgCS0ABUEgcUUNASAGIAAoApQBIAAoAgAiEGo2AhggBkEcaiAGQRhqIA4gEGsQpIGAgAAgBi0AJEUNASARIBAgBigCIC8BABClgYCAACAGQRhqIAYoAhwQpoGAgAAgCSAJKQMAQv///////3eDNwMADAELAkACQCAFIAAvAZwCIglGDQAgCUEBaiEPIAMoAgAgACgCAGohCQJAA0AgD0F/aiIPRQ0BIAktAAUhDiAJQQhqIQkgDkEgcQ0DDAALCyADIAMpAwBC//////99gyIMNwMADAQLIAMgAykDAEL//////32DIgw3AwAMAwsgAykDACEMDAILIAlBCGohCSAOQQhqIQ4gD0F/aiEPDAALCwJAIAxCgICAgIABg1ANACAAQSxqIRAgCiEPIAUhCQNAAkACQAJAAkACQCAJRQ0AIA8pAwBCGoinIg5B//8DcQ0BDAQLIAUgAC8BnAIiCUcNAQwCCyAQIAAoAgAgDhCTgYCAAAwCCyAJQQFqIQ8gAygCACAAKAIAaiEJA0AgD0F/aiIPRQ0BIAkoAQIhDiAJQQhqIQkgDkGA+P8fcQ0EDAALCyADIAMpAwBC//////9+gzcDAAwCCyAPQQhqIQ8gCUF/aiEJDAALCyACQQN0IQ8gCyAHaiEJAkAgBUEDdCITRSIHDQAgCkEAIBP8CwALIAkgD2ohCwJAAkAgAS0ABEEccUUNACAIIARBA3RqIRAgCSACQQN0aiERIAohCSALIQ8gBSEOA0AgDkUNAiAJIA8pAwAiDDcDAAJAIAxCA4NCAVINACAJIAxCfIM3AwAgBiAAKAIoIAAoAgAiEmo2AiggBkEsaiAGQShqIBEgEmsQoYGAgAAgBiAGKAIwKQIANwM4IAZBKGogBigCLBCjgYCAACAGQShqIBAgEmsgBkE4ahChgoCAACAPIA8pAwBCfIM3AwAgCSAJKQMAQnyDQgGENwMAIAMgAykDAEKAgICAwACENwMAIA8pAwAhDAsCQCAMQoCAgICAgAiDUA0AIAkgCSkDAEL///////93gzcDACAGIAAoApQBIAAoAgAiEmo2AkAgBkHEAGogBkHAAGogESASaxCkgYCAACAGKAJILwEAIQ0gBkHAAGogBigCRBCmgYCAACAGQcAAaiAQIBJrIA0QooKAgAAgCSAJKQMAQoCAgICAgAiENwMAIAMgAykDAEKAgICAgAKENwMACyAQQQhqIRAgCUEIaiEJIBFBCGohESAPQQhqIQ8gDkF/aiEODAALCyAHDQAgCiALIBP8CgAACwJAIAMpAwAiDEKAgICAgAGDQgBSDQAgBUEBaiEJAkADQAJAIAlBf2oiCQ0AQgAhFAwCCyAKKAECIQ8gCkEIaiEKIA9BgPj/H3FFDQALQoCAgICAASEUCyADIBQgDIQ3AwALAkAgBw0AIAtBACAT/AsACwJAIAUgAC8BnAJHDQAgASABKQMAQv////+/fIM3AwALIAZB0ABqJICAgIAAC8gCAQN/I4CAgIAAQcAQayIBJICAgIAAIAFCgBA3AqAQIAFBsL/HgAA2ApgQIAEgATYCnBACQAJAAkAgAUGYEGogABCDhICAACICQf//A3ENACABKAKcECEAIAEoAqQQIQMMAQsgAUGYEGpBoOnJgABBMhCogICAACABLwGwEA0BIAFBgBBqQRBqIAFBmBBqQRBqKQIANwMAIAFBgBBqQQhqIgMgAUGYEGpBCGopAgA3AwAgASABKQKYEDcDgBACQCADIAAQg4SAgABB//8DcUUNACABQYAQahCpgICAAAwCCyABQbQQaiABQYAQahCqgICAACABQYAQahCpgICAACABLwG8EA0BIAEoArgQIQMgASgCtBAhAAsgACADEICAgIAAIAJB//8DcUUNAEGg6cmAACAAIAMQtoCAgAALIAFBwBBqJICAgIAAC8gCAQN/I4CAgIAAQcAQayIBJICAgIAAIAFCgBA3AqAQIAFBsL/HgAA2ApgQIAEgATYCnBACQAJAAkAgAUGYEGogABCEhICAACICQf//A3ENACABKAKcECEAIAEoAqQQIQMMAQsgAUGYEGpBoOnJgABBMhCogICAACABLwGwEA0BIAFBgBBqQRBqIAFBmBBqQRBqKQIANwMAIAFBgBBqQQhqIgMgAUGYEGpBCGopAgA3AwAgASABKQKYEDcDgBACQCADIAAQhISAgABB//8DcUUNACABQYAQahCpgICAAAwCCyABQbQQaiABQYAQahCqgICAACABQYAQahCpgICAACABLwG8EA0BIAEoArgQIQMgASgCtBAhAAsgACADEICAgIAAIAJB//8DcUUNAEGg6cmAACAAIAMQtoCAgAALIAFBwBBqJICAgIAACw8AIAAoAghBABCvgoCAAAviAwEDfyOAgICAAEHQEGsiAiSAgICAAAJAAkACQAJAIAFB/wFxDgQAAgIBAgsgACgCGC8ByAEiAUEHcSEDIAFBA3YhBAJAIAFB/wNLDQAgACAEaiIBIANBwKfIgABqLQAAIAEtADxzOgA8DAMLIAQgACgCNGpBQGoiASADQcCnyIAAai0AACABLQAAczoAAAwCCyAAQTBqQQAQiYGAgAAMAQsgAiABOgAPIAJCgBA3ArAQIAJBsL/HgAA2AqgQIAIgAkEQajYCrBACQAJAIAJBqBBqIAJBD2oQsIKAgAAiAUH//wNxRQ0AIAJBqBBqQaDpyYAAQTsQqICAgAAgAi8BwBANAiACQZAQakEQaiACQagQakEQaikCADcDACACQZAQakEIaiIAIAJBqBBqQQhqKQIANwMAIAIgAikCqBA3A5AQAkAgACACQQ9qELCCgIAAQf//A3FFDQAgAkGQEGoQqYCAgAAMAwsgAkHEEGogAkGQEGoQqoCAgAAgAkGQEGoQqYCAgAAgAi8BzBANAiACKALIECEDIAIoAsQQIQAMAQsgAigCrBAhACACKAK0ECEDCyAAIAMQgICAgAAgAUH//wNxRQ0AQaDpyYAAIAAgAxC2gICAAAsgAkHQEGokgICAgAALNwEBfwJAIABByLHKgABBORCagICAACICQf//A3ENACAAQYy1yoAAIAEtAAAQr4SAgAAhAgsgAgsPACAAKAIIQQMQr4KAgAALOAEBfyAAKAIIIgIgAi8B7BFB/f8DcTsB7BECQCABQQVHDQAgACgCCCIAIAAvAewRQQJyOwHsEQsLQgEBfwJAIAAgASADELSCgIAAIgFB//8DcQ0AIAAgACgCBCIEIANqNgIEIANFDQAgACgCACAEaiACIAP8CgAACyABC2ABA38jgICAgABBEGsiAySAgICAACADIAAoAgQiBCAC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ADoAnREgAEEAOwGUESAAIANBAWo6AJwRDAILIAJCgBA3ArAoIAJBsL/HgAA2AqgoIAIgAkGQGGo2AqwoAkACQCACQagoahC7goCAACIDQf//A3FFDQAgAkGoKGpBoOnJgABBLBCogICAACACLwHAKA0DIAJBkChqQRBqIAJBqChqQRBqKQIANwMAIAJBkChqQQhqIgcgAkGoKGpBCGopAgA3AwAgAiACKQKoKDcDkCgCQCAHELuCgIAAQf//A3FFDQAgAkGQKGoQqYCAgAAMBAsgAkHEKGogAkGQKGoQqoCAgAAgAkGQKGoQqYCAgAAgAi8BzCgNAyACKALIKCEJIAIoAsQoIQcMAQsgAigCrCghByACKAK0KCEJCyAHIAkQgICAgAAgA0H//wNxRQ0BQaDpyYAAIAcgCRC2gICAAAwBCyACQQI6ALABIANB/wFxIQcgAEHkEGohCSAAQZcRaiEKIAAvARAgAEESai0AAEEQdHIhAyAALQCbESELAkACQCABQf8BcUHtAEYNACADQf///wdxRQ0AIAIgAzsBxAEgAkHGAWogA0EQdjoAACACIAE6AMgBIAIgBzYCwAEgAiAJNgK8ASACIAs2ArgBIAIgCjYCtAEgAiACLQCwAToA4AEgAkKAEDcCsCggAkGwv8eAADYCqCggAiACQZAYajYCrCgCQCACQagoaiACQbQBahC8goCAACIDQf//A3ENACACKAKsKCEHIAIoArQoIQkMAgsgAkGoKGpBoOnJgABB1QAQqICAgAAgAi8BwCgNAiACQZAoakEQaiACQagoakEQaikCADcDACACQZAoakEIaiIHIAJBqChqQQhqKQIANwMAIAIgAikCqCg3A5AoAkAgByACQbQBahC8goCAAEH//wNxRQ0AIAJBkChqEKmAgIAADAMLIAJBxChqIAJBkChqEKqAgIAAIAJBkChqEKmAgIAAIAIvAcwoDQIgAigCyCghCSACKALEKCEHDAELIAIgAzsB9AEgAkHkAWpBEmogA0EQdjoAACACIAE6APgBIAIgBzYC8AEgAiAJNgLsASACIAs2AugBIAIgCjYC5AEgAkEBOgCUAiACIAItALABOgCQAiACQeQBaiEIDAELIAcgCRCAgICAACADQf//A3FFDQBBoOnJgAAgByAJELaAgIAAC0H4sMeAACEDAkAgAC0AlhFB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AtQFIAJCgBA3ArAoIAJBsL/HgAA2AqgoIAIgAkGQGGo2AqwoAkAgAkGoKGogAkHUBWoQv4KAgAAiAUH//wNxDQAgAigCrCghBCACKAK0KCEFDIQBCyACQagoakGg6cmAAEHFABCogICAACACLwHAKA2KASACQZAoakEQaiACQagoakEQaikCADcDACACQZAoakEIaiACQagoakEIaikCADcDACACIAIpAqgoNwOQKAJAIAwgAkHUBWoQv4KAgABB//8DcUUNACACQZAoahCpgICAAAyLAQsgAkHEKGogAkGQKGoQqoCAgAAgAkGQKGoQqYCAgAAgAi8BzCgNigEgAigCyCghBSACKALEKCEEDIMBCyAIRQ2BASACIAg2AvgFIAIgBDYC9AUgAkKAEDcCsCggAkGwv8eAADYCqCggAiACQZAYajYCrCgCQCACQagoaiACQfQFahDAgoCAACIBQf//A3ENACACKAKsKCEEIAIoArQoIQUMgQELIAJBqChqQaDpyYAAQcUAEKiAgIAAIAIvAcAoDYkBIAJBkChqQRBqIAJBqChqQRBqKQIANwMAIAJBkChqQQhqIAJBqChqQQhqKQIANwMAIAIgAikCqCg3A5AoAkAgDCACQfQFahDAgoCAAEH//wNxRQ0AIAJBkChqEKmAgIAADIoBCyACQcQoaiACQZAoahCqgICAACACQZAoahCpgICAACACLwHMKA2JASACKALIKCEFIAIoAsQoIQQMgAELIAhFDX0gAiAINgKcBiACIAQ2ApgGIAJCgBA3ArAoIAJBsL/HgAA2AqgoIAIgAkGQGGo2AqwoAkAgAkGoKGogAkGYBmoQwYKAgAAiAUH//wNxDQAgAigCrCghBCACKAK0KCEFDH0LIAJBqChqQaDpyYAAQcUAEKiAgIAAIAIvAcAoDYgBIAJBkChqQRBqIAJBqChqQRBqKQIANwMAIAJBkChqQQhqIAJBqChqQQhqKQIANwMAIAIgAikCqCg3A5AoAkAgDCACQZgGahDBgoCAAEH//wNxRQ0AIAJBkChqEKmAgIAADIkBCyACQcQoaiACQZAoahCqgICAACACQZAoahCpgICAACACLwHMKA2IASACKALIKCEFIAIoAsQoIQQMfAsgCEUNeiACIAg2AsAGIAIgBDYCvAYgAkKAEDcCsCggAkGwv8eAADYCqCggAiACQZAYajYCrCgCQCACQagoaiACQbwGahDCgoCAACIBQf//A3ENACACKAKsKCEEIAIoArQoIQUMegsgAkGoKGpBoOnJgABBxQAQqICAgAAgAi8BwCgNhwEgAkGQKGpBEGogAkGoKGpBEGopAgA3AwAgAkGQKGpBCGogAkGoKGpBCGopAgA3AwAgAiACKQKoKDcDkCgCQCAMIAJBvAZqEMKCgIAAQf//A3FFDQAgAkGQKGoQqYCAgAAMiAELIAJBxChqIAJBkChqEKqAgIAAIAJBkChqEKmAgIAAIAIvAcwoDYcBIAIoAsgoIQUgAigCxCghBAx5CyAIRQ13IAIgCDYC4AYgAiAENgLcBiACQoAQNwKwKCACQbC/x4AANgKoKCACIAJBkBhqNgKsKAJAIAJBqChqIAJB3AZqEMOCgIAAIgFB//8DcQ0AIAIoAqwoIQQgAigCtCghBQx3CyACQagoakGg6cmAAEHFABCogICAACACLwHAKA2GASACQZAoakEQaiACQagoakEQaikCADcDACACQZAoakEIaiACQagoakEIaikCADcDACACIAIpAqgoNwOQKAJAIAwgAkHcBmoQw4KAgABB//8DcUUNACACQZAoahCpgICAAAyHAQsgAkHEKGogAkGQKGoQqoCAgAAgAkGQKGoQqYCAgAAgAi8BzCgNhgEgAigCyCghBSACKALEKCEEDHYLQcqyx4AAQcyyx4AAIAQtAABBP0YbIQEMdAtByrLHgABBzLLHgAAgBC0AAEE/RhshAQxyCyAIRQ1wIAIgCDYC4AcgAiAENgLcByACQoAQNwKwKCACQbC/x4AANgKoKCACIAJBkBhqNgKsKAJAIAJBqChqIAJB3AdqEMSCgIAAIgFB//8DcQ0AIAIoAqwoIQQgAigCtCghBQxwCyACQagoakGg6cmAAEHFABCogICAACACLwHAKA2DASACQZAoakEQaiACQagoakEQaikCADcDACACQZAoakEIaiACQagoakEIaikCADcDACACIAIpAqgoNwOQKAJAIAwgAkHcB2oQxIKAgABB//8DcUUNACACQZAoahCpgICAAAyEAQsgAkHEKGogAkGQKGoQqoCAgAAgAkGQKGoQqYCAgAAgAi8BzCgNgwEgAigCyCghBSACKALEKCEEDG8LIAhFDW0gAiAINgKACCACIAQ2AvwH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AkHEFWpBC2ogAUEQdjoAACACQcgAOgDMFSACIAg2AsgVIAIgBDYCxBUgAkKAEDcCsCggAkGwv8eAADYCqCggAiACQZAYajYCrCgCQAJAIAJBqChqIAJBxBVqEOKCgIAAQf//A3EiAQ0AIAIoAqwoIQQgAigCtCghBQwBCyACQagoakGg6cmAAEEtEKiAgIAAIAIvAcAoDVkgAkGQKGpBEGogAkGoKGpBEGopAgA3AwAgDCACQagoakEIaikCADcDACACIAIpAqgoNwOQKAJAIAwgAkHEFWoQ4oKAgABB//8DcUUNACACQZAoahCpgICAAAxaCyACQcQoaiACQZAoahCqgICAACACQZAoahCpgICAACACLwHMKA1ZIAIoAsgoIQUgAigCxCghBAsgBCAFEICAgIAAIAFFDVhBoOnJgAAgBCAFELaAgIAADFgLIAAQ+IGAgAAMVwsCQCAIRQ0AIAIgATsAwRUgAkG4FWpBC2ogAUEQdjoAACACQcUAOgDAFSACIAg2ArwVIAIgBDYCuBUgAkKAEDcCsCggAkGwv8eAADYCqCggAiACQZAYajYCrCgCQAJAIAJBqChqIAJBuBVqEOOCgIAAQf//A3EiAQ0AIAIoAqwoIQQgAigCtCghBQwBCyACQagoakGg6cmAAEEvEKiAgIAAIAIvAcAoDVggAkGQKGpBEGogAkGoKGpBEGopAgA3AwAgDCACQagoakEIaikCADcDACACIAIpAqgoNwOQKAJAIAwgAkG4FWoQ44KAgABB//8DcUUNACACQZAoahCpgICAAAxZCyACQcQoaiACQZAoahCqgICAACACQZAoahCpgICAACACLwHMKA1YIAIoAsgoIQUgAigCxCghBAsgBCAFEICAgIAAIAFFDVdBoOnJgAAgBCAFELaAgIAADFcLIAAQ9YGAgAAhBAwJCwJAIAhFDQAgAiABOwC1FSACQawVakELaiABQRB2OgAAIAJBxAA6ALQVIAIgCDYCsBUgAiAENgKsFSACQoAQNwKwKCACQbC/x4AANgKoKCACIAJBkBhqNgKsKAJAAkAgAkGoKGogAkGsFWoQ5IKAgABB//8DcSIBDQAgAigCrCghBCACKAK0KCEFDAELIAJBqChqQaDpyYAAQSsQqICAgAAgAi8BwCgNVyACQZAoakEQaiACQagoakEQaikCADcDACAMIAJBqChqQQhqKQIANwMAIAIgAikCqCg3A5AoAkAgDCACQawVahDkgoCAAEH//wNxRQ0AIAJBkChqEKmAgIAADFgLIAJBxChqIAJBkChqEKqAgIAAIAJBkChqEKmAgIAAIAIvAcwoDVcgAigCyCghBSACKALEKCEECyAEIAUQgICAgAAgAUUNVkGg6cmAACAEIAUQtoCAgAAMVgsgABD0gYCAACEEDAgLAkAgCEUNACACIAE7AJ0VIAJBlBVqQQtqIAFBEHY6AAAgAkE3OgCcFSACIAg2ApgVIAIgBDYClBUgAkKAEDcCsCggAkGwv8eAADYCqCggAiACQZAYajYCrCgCQAJAIAJBqChqIAJBlBVqEOWCgIAAQf//A3EiAQ0AIAIoAqwoIQQgAigCtCghBQwBCyACQagoakGg6cmAAEElEKiAgIAAIAIvAcAoDVYgAkGQKGpBEGogAkGoKGpBEGopAgA3AwAgDCACQagoakEIaikCADcDACACIAIpAqgoNwOQKAJAIAwgAkGUFWoQ5YKAgABB//8DcUUNACACQZAoahCpgICAAAxXCyACQcQoaiACQZAoahCqgICAACACQZAoahCpgICAACACLwHMKA1WIAIoAsgoIQUgAigCxCghBAsgBCAFEICAgIAAIAFFDVVBoOnJgAAgBCAFELaAgIAADFULIAAoAggQ3IGAgAAMVAsCQCAIQQFGDQAgAiAINgKAFSACIAQ2AvwUIAJB/BRqEOaCgIAADFQLAkAgBC0AAEFYakH/AXEiAUEDSw0AIAJBAzYCkBUgAiABNgKMFSAAIAJBjBVqENuBgIAADFQLIAJBATYCiBUgAiAENgKEFSACQYQVahDmgoCAAAxTCwJAIAhBAUYNACACIAg2AugUIAIgBDYC5BQgAkHkFGoQ5oKAgAAMUwsCQCAELQAAQVhqQf8BcSIBQQNLDQAgAkECNgL4FCACIAE2AvQUIAAgAkH0FGoQ24GAgAAMUwsgAkEBNgLwFCACIAQ2AuwUIAJB7BRqEOaCgIAADFILAkAgCEEBRg0AIAIgCDYC0BQgAiAENgLMFCACQcwUahDmgoCAAAxSCwJAIAQtAABBWGpB/wFxIgFBA0sNACACQQE2AuAUIAIgATYC3BQgACACQdwUahDbgYCAAAxSCyACQQE2AtgUIAIgBDYC1BQgAkHUFGoQ5oKAgAAMUQsgB0HjAEYNAQsgAiABOwCBFyACQfgWakELaiABQRB2OgAAIAIgBToAgBcgAiAINgL8FiACIAQ2AvgWIAJB+BZqEOeCgIAADE8LAkAgCEUNACACIAE7AKEWIFEgAUEQdjoAACACQeMAOgCgFiACIAg2ApwWIAIgBDYCmBYgAkKAEDcCsCggAkGwv8eAADYCqCggAiACQZAYajYCrCgCQAJAIAJBqChqIAJBmBZqEOiCgIAAQf//A3EiAQ0AIAIoAqwoIQQgAigCtCghBQwBCyACQagoakGg6cmAAEEwEKiAgIAAIAIvAcAoDVAgAkGQKGpBEGogAkGoKGpBEGopAgA3AwAgDCACQagoakEIaikCADcDACACIAIpAqgoNwOQKAJAIAwgAkGYFmoQ6IKAgABB//8DcUUNACACQZAoahCpgICAAAxRCyACQcQoaiACQZAoahCqgICAACACQZAoahCpgICAACACLwHMKA1QIAIoAsgoIQUgAigCxCghBAsgBCAFEICAgIAAIAFFDU9BoOnJgAAgBCAFELaAgIAADE8LIAAQ/YGAgAAMTgsCQAJAIAgOAgABAwsgABDigYCAACEEDAELIAQtAABBI0cNASAAKAIIIgUoAhgiAUGwAWoiBCgCACEHIARBADsBACABQagBaiIEKQIAIQYgBEIANwIAIAJBkBhqQQhqIgggAUGgAWopAgA3AwAgAkGQGGpBEGoiCSAGNwMAIAJBkBhqQRhqIgogBzYCACACIAEpApgBNwOQGAJAIAUoAhgQkoGAgAAiBEH//wNxRQ0AIAUoAhgiASACKQOQGDcCmAEgAUGwAWogCigCADYCACABQagBaiAJKQMANwIAIAFBoAFqIAgpAwA3AgAMAQsgBUEAOwH0ESAFQQA7AfgRIAUgBS8B8BFBf2o7AfYRIAUgBS8B8hFBf2o7AfoRIAUgBTUCAEL//f//D4M+AgAgBUEBQQEQ44GAgAAgBSgCGEGExceAAEGM1MeAAEEAEOaBgIAAA0AgBSgCGCIEMwHMAUIahkKUAoQhBiAEKAK8ASgCACIHLwGsAiIJQQN0IQEgBCgCwAEiCCgCACAHKAIQaiEEAkADQCABRQ0BIAQgBjcDACABQXhqIQEgBEEIaiEEDAALCwJAIAUoAhgiAS8BzAEiBEUNACAHKAJAIAcoAhBqIARBJGxqIgEgAS8BICAJajsBICAIIAgpAwBCgICAgIABhDcDACAFKAIYIQELIAEoAsABIgEgASkDAEKAgICAgMAAhDcDAAJAIAUoAhgiAS8BygEgBS8B8BFBf2pB//8DcUcNACAFQQFBARDjgYCAAEEAIQQMAgsgAUEBEOmBgIAADAALCyAEQf//A3ENTwxMCyACIAE7AKkVIAJBoBVqQQtqIAFBEHY6AAAgAkE4OgCoFSACIAg2AqQVIAIgBDYCoBUgAkGgFWoQ54KAgAAMSwsCQCAIRQ0AIAIgCDYCsBQgAiAENgKsFCACQoAQNwKwKCACQbC/x4AANgKoKCACIAJBkBhqNgKsKAJAAkAgAkGoKGogAkGsFGoQ6YKAgAAiAUH//wNxDQAgAigCrCghBCACKAK0KCEFDAELIAJBqChqQaDpyYAAQcUAEKiAgIAAIAIvAcAoDUwgAkGQKGpBEGogAkGoKGpBEGopAgA3AwAgAkGQKGpBCGogAkGoKGpBCGopAgA3AwAgAiACKQKoKDcDkCgCQCAMIAJBrBRqEOmCgIAAQf//A3FFDQAgAkGQKGoQqYCAgAAMTQsgAkHEKGogAkGQKGoQqoCAgAAgAkGQKGoQqYCAgAAgAi8BzCgNTCACKALIKCEFIAIoAsQoIQQLIAQgBRCAgICAACABQf//A3FFDUtBoOnJgAAgBCAFELaAgIAADEsLQQEhCEEBIQECQAJAAkACQCAHDgMCAQADCyAFLwECIQgLIAUvAQAhAQsgACgCCCABQf//A3EgCBDjgYCAAAxLCyBOIAovAAA7AAAgAiALOwGkFCACQaYUaiALQRB2OgAAIE5BAmogCkECai0AADoAACACIAk6AKgUIAIgUjoApxQgAiAHNgKgFCACIAU2ApwUIAJBADYCmBQgAiAENgKUFCACQoAQNwKwKCACQbC/x4AANgKoKCACIAJBkBhqNgKsKAJAAkAgAkGoKGogAkGUFGoQ6oKAgAAiAUH//wNxRQ0AIAJBqChqQaDpyYAAQSkQqICAgAAgAi8BwCgNTCACQZAoakEQaiACQagoakEQaikCADcDACACQZAoakEIaiACQagoakEIaikCADcDACACIAIpAqgoNwOQKAJAIAwgAkGUFGoQ6oKAgABB//8DcUUNACACQZAoahCpgICAAAxNCyACQcQoaiACQZAoahCqgICAACACQZAoahCpgICAACACLwHMKA1MIAIoAsgoIQUgAigCxCghBAwBCyACKAKsKCEEIAIoArQoIQULIAQgBRCAgICAACABQf//A3FFDUpBoOnJgAAgBCAFELaAgIAADEoLAkAgCEUNACACIAg2ApAUIAIgBDYCjBQgAkKAEDcCsCggAkGwv8eAADYCqCggAiACQZAYajYCrCgCQAJAIAJBqChqIAJBjBRqEOuCgIAAIgFB//8DcQ0AIAIoAqwoIQQgAigCtCghBQwBCyACQagoakGg6cmAAEHFABCogICAACACLwHAKA1LIAJBkChqQRBqIAJBqChqQRBqKQIANwMAIAJBkChqQQhqIAJBqChqQQhqKQIANwMAIAIgAikCqCg3A5AoAkAgDCACQYwUahDrgoCAAEH//wNxRQ0AIAJBkChqEKmAgIAADEwLIAJBxChqIAJBkChqEKqAgIAAIAJBkChqEKmAgIAAIAIvAcwoDUsgAigCyCghBSACKALEKCEECyAEIAUQgICAgAAgAUH//wNxRQ1KQaDpyYAAIAQgBRC2gICAAAxKC0EBIQECQAJAAkAgBw4CAQACCyAFLwEAIQELIAAoAggiBCAEKAIYLwHKAUEBakH//wNxIAEQ44GAgAAMSgsgTSAKLwAAOwAAIAIgCzsBhBQgAkGGFGogC0EQdjoAACBNQQJqIApBAmotAAA6AAAgAiAJOgCIFCACIFI6AIcUIAIgBzYCgBQgAiAFNgL8EyACQQA2AvgTIAIgBDYC9BMgAkKAEDcCsCggAkGwv8eAADYCqCggAiACQZAYajYCrCgCQAJAIAJBqChqIAJB9BNqEOyCgIAAIgFB//8DcUUNACACQagoakGg6cmAAEEpEKiAgIAAIAIvAcAoDUsgAkGQKGpBEGogAkGoKGpBEGopAgA3AwAgAkGQKGpBCGogAkGoKGpBCGopAgA3AwAgAiACKQKoKDcDkCgCQCAMIAJB9BNqEOyCgIAAQf//A3FFDQAgAkGQKGoQqYCAgAAMTAsgAkHEKGogAkGQKGoQqoCAgAAgAkGQKGoQqYCAgAAgAi8BzCgNSyACKALIKCEFIAIoAsQoIQQMAQsgAigCrCghBCACKAK0KCEFCyAEIAUQgICAgAAgAUH//wNxRQ1JQaDpyYAAIAQgBRC2gICAAAxJCwJAIAhFDQAgAiAINgLwEyACIAQ2AuwTIAJCgBA3ArAoIAJBsL/HgAA2AqgoIAIgAkGQGGo2AqwoAkACQCACQagoaiACQewTahDtgoCAACIBQf//A3ENACACKAKsKCEEIAIoArQoIQUMAQsgAkGoKGpBoOnJgABBxQAQqICAgAAgAi8BwCgNSiACQZAoakEQaiACQagoakEQaikCADcDACACQZAoakEIaiACQagoakEIaikCADcDACACIAIpAqgoNwOQKAJAIAwgAkHsE2oQ7YKAgABB//8DcUUNACACQZAoahCpgICAAAxLCyACQcQoaiACQZAoahCqgICAACACQZAoahCpgICAACACLwHMKA1KIAIoAsgoIQUgAigCxCghBAsgBCAFEICAgIAAIAFB//8DcUUNSUGg6cmAACAEIAUQtoCAgAAMSQtBASEBAkACQAJAIAcOAgEAAgsgBS8BACEBCyAAKAIIIAEQkIKAgAAMSQsgTCAKLwAAOwAAIAIgCzsB5BMgAkHmE2ogC0EQdjoAACBMQQJqIApBAmotAAA6AAAgAiAJOgDoEyACIFI6AOcTIAIgBzYC4BMgAiAFNgLcEyACQQA2AtgTIAIgBDYC1BMgAkKAEDcCsCggAkGwv8eAADYCqCggAiACQZAYajYCrCgCQAJAIAJBqChqIAJB1BNqEO6CgIAAIgFB//8DcUUNACACQagoakGg6cmAAEExEKiAgIAAIAIvAcAoDUogAkGQKGpBEGogAkGoKGpBEGopAgA3AwAgAkGQKGpBCGogAkGoKGpBCGopAgA3AwAgAiACKQKoKDcDkCgCQCAMIAJB1BNqEO6CgIAAQf//A3FFDQAgAkGQKGoQqYCAgAAMSwsgAkHEKGogAkGQKGoQqoCAgAAgAkGQKGoQqYCAgAAgAi8BzCgNSiACKALIKCEFIAIoAsQoIQQMAQsgAigCrCghBCACKAK0KCEFCyAEIAUQgICAgAAgAUH//wNxRQ1IQaDpyYAAIAQgBRC2gICAAAxICwJAIAhFDQAgAiAINgLQEyACIAQ2AswTIAJCgBA3ArAoIAJBsL/HgAA2AqgoIAIgAkGQGGo2AqwoAkACQCACQagoaiACQcwTahDvgoCAACIBQf//A3ENACACKAKsKCEEIAIoArQoIQUMAQsgAkGoKGpBoOnJgABBxQAQqICAgAAgAi8BwCgNSSACQZAoakEQaiACQagoakEQaikCADcDACACQZAoakEIaiACQagoakEIaikCADcDACACIAIpAqgoNwOQKAJAIAwgAkHME2oQ74KAgABB//8DcUUNACACQZAoahCpgICAAAxKCyACQcQoaiACQZAoahCqgICAACACQZAoahCpgICAACACLwHMKA1JIAIoAsgoIQUgAigCxCghBAsgBCAFEICAgIAAIAFB//8DcUUNSEGg6cmAACAEIAUQtoCAgAAMSAtBASEBAkACQAJAIAcOAgEAAgsgBS8BACEBCyACIAE7AcoTIAAgAkHKE2oQpoKAgAAMSAsgSyAKLwAAOwAAIAIgCzsBwBMgAkHCE2ogC0EQdjoAACBLQQJqIApBAmotAAA6AAAgAiAJOgDEEyACIFI6AMMTIAIgBzYCvBMgAiAFNgK4EyACQQA2ArQTIAIgBDYCsBMgAkGwE2oQ8IKAgAAMRwsCQAJAIAhBAUcNACAELQAAQSRGDQELIEogCi8AADsAACACIAs7AfgSIAJB+hJqIAtBEHY6AAAgSkECaiAKQQJqLQAAOgAAIAJB/QA6APwSIAIgUjoA+xIgAiAHNgL0EiACIAU2AvASIAIgCDYC7BIgAiAENgLoEiACQegSahDxgoCAAAxHCwJAIAdBAUYNACBJIAovAAA7AAAgAiALOwGQEyACQZITaiALQRB2OgAAIElBAmogCkECai0AADoAACACQf0AOgCUEyACIFI6AJMTIAIgBzYCjBMgAiAFNgKIEyACQQE2AoQTIAIgBDYCgBMgAkGAE2oQ8YKAgAAMRwsCQAJAAkAgBS8BACIBDgIBAAILQQEhAQsgACgCCCABNgIsDEcLIEggCi8AADsAACACIAs7AagTIAJBqhNqIAtBEHY6AAAgSEECaiAKQQJqLQAAOgAAIAJB/QA6AKwTIAIgUjoAqxMgAkEBNgKkEyACIAU2AqATIAJBATYCnBMgAiAENgKYEyACQZgTahDxgoCAAAxGCwJAIAhFDQAgRyAKLwAAOwAAIAIgCzsB4BIgAkHiEmogC0EQdjoAACBHQQJqIApBAmotAAA6AAAgAkHAADoA5BIgAiBSOgDjEiACIAc2AtwSIAIgBTYC2BIgAiAINgLUEiACIAQ2AtASIAJCgBA3ArAoIAJBsL/HgAA2AqgoIAIgAkGQGGo2AqwoAkACQCACQagoaiACQdASahDygoCAACIBQf//A3ENACACKAKsKCEEIAIoArQoIQUMAQsgAkGoKGpBoOnJgABBMhCogICAACACLwHAKA1HIAJBkChqQRBqIAJBqChqQRBqKQIANwMAIAJBkChqQQhqIAJBqChqQQhqKQIANwMAIAIgAikCqCg3A5AoAkAgDCACQdASahDygoCAAEH//wNxRQ0AIAJBkChqEKmAgIAADEgLIAJBxChqIAJBkChqEKqAgIAAIAJBkChqEKmAgIAAIAIvAcwoDUcgAigCyCghBSACKALEKCEECyAEIAUQgICAgAAgAUH//wNxRQ1GQaDpyYAAIAQgBRC2gICAAAxGC0EBIQECQAJAAkAgBw4CAQACCyAFLwEAIQELIAAoAgggARCcgoCAAAxGCyBGIAovAAA7AAAgAiALOwHIEiACQcoSaiALQRB2OgAAIEZBAmogCkECai0AADoAACACQcAAOgDMEiACIFI6AMsSIAIgBzYCxBIgAiAFNgLAEiACQQA2ArwSIAIgBDYCuBIgAkKAEDcCsCggAkGwv8eAADYCqCggAiACQZAYajYCrCgCQAJAIAJBqChqIAJBuBJqEPOCgIAAIgFB//8DcUUNACACQagoakGg6cmAAEEpEKiAgIAAIAIvAcAoDUcgAkGQKGpBEGogAkGoKGpBEGopAgA3AwAgAkGQKGpBCGogAkGoKGpBCGopAgA3AwAgAiACKQKoKDcDkCgCQCAMIAJBuBJqEPOCgIAAQf//A3FFDQAgAkGQKGoQqYCAgAAMSAsgAkHEKGogAkGQKGoQqoCAgAAgAkGQKGoQqYCAgAAgAi8BzCgNRyACKALIKCEFIAIoAsQoIQQMAQsgAigCrCghBCACKAK0KCEFCyAEIAUQgICAgAAgAUH//wNxRQ1FQaDpyYAAIAQgBRC2gICAAAxFCyBBIAovAAA7AAAgAiALOwGwEiACQbISaiALQRB2OgAAIEFBAmogCkECai0AADoAACACQfUAOgC0EiACIFI6ALMSIAIgBzYCrBIgAiAFNgKoEiACIAg2AqQSIAIgBDYCoBIgAkKAEDcCsCggAkGwv8eAADYCqCggAiACQZAYajYCrCgCQAJAIAJBqChqIAJBoBJqEPSCgIAAIgFB//8DcUUNACACQagoakGg6cmAAEEyEKiAgIAAIAIvAcAoDUYgAkGQKGpBEGogAkGoKGpBEGopAgA3AwAgAkGQKGpBCGogAkGoKGpBCGopAgA3AwAgAiACKQKoKDcDkCgCQCAMIAJBoBJqEPSCgIAAQf//A3FFDQAgAkGQKGoQqYCAgAAMRwsgAkHEKGogAkGQKGoQqoCAgAAgAkGQKGoQqYCAgAAgAi8BzCgNRiACKALIKCEFIAIoAsQoIQQMAQsgAigCrCghBCACKAK0KCEFCyAEIAUQgICAgAAgAUH//wNxRQ1EQaDpyYAAIAQgBRC2gICAAAxECwJAAkACQAJAAkACQAJAAkACQAJAIAQtAABBRGoOBAMAAk0BCyAHDQNBACEBDAgLIEIgCi8AADsAACACIAs7AZgSIAJBmhJqIAtBEHY6AAAgQkECaiAKQQJqLQAAOgAAIAJB9QA6AJwSIAIgUjoAmxIgAiAHNgKUEiACIAU2ApASIAJBATYCjBIgAiAENgKIEiACQYgSahD1goCAAAxLC0EAIQEgB0EBRw0FAkAgBS8BACIBQR9LDQAgAiABQR9xIgE6ALcRDAYLIEMgCi8AADsAACACIAs7AcgRIAJByhFqIAtBEHY6AAAgQ0ECaiAKQQJqLQAAOgAAIAJB9QA6AMwRIAIgUjoAyxEgAkEBNgLEESACIAU2AsARIAJBATYCvBEgAiAENgK4ESACQQA6ALcRIAJCgBA3ArAoIAJBsL/HgAA2AqgoIAIgAkGQGGo2AqwoIAJBqChqIAJBuBFqEPaCgIAAIgFB//8DcUUNAyACQagoakGg6cmAAEE3EKiAgIAAIAIvAcAoDUogAkGQKGpBEGogAkGoKGpBEGopAgA3AwAgAkGQKGpBCGogAkGoKGpBCGopAgA3AwAgAiACKQKoKDcDkCgCQCAMIAJBuBFqEPaCgIAAQf//A3FFDQAgAkGQKGoQqYCAgAAMSwsgAkHEKGogAkGQKGoQqoCAgAAgAkGQKGoQqYCAgAAgAi8BzCgNSiACKALIKCEFIAIoAsQoIQQMBAtBASEBIAdBAUcNASAFLwEAIQEMAQsCQCAFLwEAIgFBIEkNACBEIAovAAA7AAAgAiALOwHkESACQeYRaiALQRB2OgAAIERBAmogCkECai0AADoAACACQfUAOgDoESACIFI6AOcRIAIgBzYC4BEgAiAFNgLcESACQQE2AtgRIAIgBDYC1BEgAkEAOgDTESACQdQRahD3goCAAAxJCyACIAFBH3EiAToA0xEgB0EBRg0EAkACQAJAIAUvAQJBf2oOAwcBAgALIEUgCi8AADsAACACIAs7AfwRIAJB/hFqIAtBEHY6AAAgRUECaiAKQQJqLQAAOgAAIAJB9QA6AIASIAIgUjoA/xEgAiAHNgL4ESACIAU2AvQRIAJBATYC8BEgAiAENgLsESACQewRahD3goCAAAxKCyACIAE6AIcSIAAoAggoAhhB4gJqQQEgARC4goCAAAxJCyACIAE6AIcSIAAoAggoAhhB4gJqQQIgARC4goCAAAxICyAAKAIIKAIYIQQCQCABQf//A3EiAUEHSw0AIARB4gJqIQcDQCABRQ1JIAcgBC0A6gIiBUEHcWpBADoAACAEIAVBf2pBB3E6AOoCIAFBf2ohAQwACwsgBEIANwDiAiAEQQA6AOoCDEcLIAIoAqwoIQQgAigCtCghBQsgBCAFEICAgIAAIAFB//8DcUUNRUGg6cmAACAEIAUQtoCAgAAMRQsgACgCCCgCGCIEIAQtAOoCQQFqQQdxIgU6AOoCIAQgBWogAToA4gIgAiABOgDSEQxECyAAKAIIKAIYIgQgBC0A6gJBB3FqIAE6AOICIAIgAToAhxIMQwsgABDigYCAACEEDBoLAkACQCAIRQ0AIEAgCi8AADsAACACIAs7AawRIAJBrhFqIAtBEHY6AAAgQEECaiAKQQJqLQAAOgAAIAJB9AA6ALARIAIgUjoArxEgAiAHNgKoESACIAU2AqQRIAIgCDYCoBEgAiAENgKcESACQoAQNwKwKCACQbC/x4AANgKoKCACIAJBkBhqNgKsKAJAIAJBqChqIAJBnBFqEPiCgIAAIgFB//8DcQ0AIAIoAqwoIQQgAigCtCghBQwCCyACQagoakGg6cmAAEHFABCogICAACACLwHAKA1DIAJBkChqQRBqIAJBqChqQRBqKQIANwMAIAJBkChqQQhqIAJBqChqQQhqKQIANwMAIAIgAikCqCg3A5AoAkAgDCACQZwRahD4goCAAEH//wNxRQ0AIAJBkChqEKmAgIAADEQLIAJBxChqIAJBkChqEKqAgIAAIAJBkChqEKmAgIAAIAIvAcwoDUMgAigCyCghBSACKALEKCEEDAELAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIAdFDQAgBS8BAEFyag4KAgEDAQQBAQUGBwELIDggCi8AADsAACACIAs7AZQRIAJBlhFqIAtBEHY6AAAgOEECaiAKQQJqLQAAOgAAIAJB9AA6AJgRIAIgUjoAlxEgAkEANgKQESACIAU2AowRIAJBADYCiBEgAiAENgKEESACQoAQNwKwKCACQbC/x4AANgKoKCACIAJBkBhqNgKsKCACQagoaiACQYQRahD5goCAACIBQf//A3FFDQ8gAkGoKGpBoOnJgABBNRCogICAACACLwHAKA1TIAJBkChqQRBqIAJBqChqQRBqKQIANwMAIAJBkChqQQhqIAJBqChqQQhqKQIANwMAIAIgAikCqCg3A5AoAkAgDCACQYQRahD5goCAAEH//wNxRQ0AIAJBkChqEKmAgIAADFQLIAJBxChqIAJBkChqEKqAgIAAIAJBkChqEKmAgIAAIAIvAcwoDVMgAigCyCghBSACKALEKCEEDBALIDkgCi8AADsAACACIAs7AfwQIAJB/hBqIAtBEHY6AAAgOUECaiAKQQJqLQAAOgAAIAJB9AA6AIARIAIgUjoA/xAgAiAHNgL4ECACIAU2AvQQIAJBADYC8BAgAiAENgLsECACQoAQNwKwKCACQbC/x4AANgKoKCACIAJBkBhqNgKsKCACQagoaiACQewQahD6goCAACIBQf//A3FFDQwgAkGoKGpBoOnJgABBwQAQqICAgAAgAi8BwCgNUiACQZAoakEQaiACQagoakEQaikCADcDACACQZAoakEIaiACQagoakEIaikCADcDACACIAIpAqgoNwOQKAJAIAwgAkHsEGoQ+oKAgABB//8DcUUNACACQZAoahCpgICAAAxTCyACQcQoaiACQZAoahCqgICAACACQZAoahCpgICAACACLwHMKA1SIAIoAsgoIQUgAigCxCghBAwNCyAHQQFGDVEgOiAKLwAAOwAAIAIgCzsB7A8gAkHuD2ogC0EQdjoAACA6QQJqIApBAmotAAA6AAAgAkH0ADoA8A8gAiBSOgDvDyACIAc2AugPIAIgBTYC5A8gAkEANgLgDyACIAQ2AtwPIAJCgBA3ArAoIAJBsL/HgAA2AqgoIAIgAkGQGGo2AqwoAkAgAkGoKGogAkHcD2oQ+4KAgAAiAUH//wNxDQAgAigCrCghBCACKAK0KCEFDAsLIAJBqChqQaDpyYAAQT0QqICAgAAgAi8BwCgNUSACQZAoakEQaiACQagoakEQaikCADcDACACQZAoakEIaiACQagoakEIaikCADcDACACIAIpAqgoNwOQKAJAIAwgAkHcD2oQ+4KAgABB//8DcUUNACACQZAoahCpgICAAAxSCyACQcQoaiACQZAoahCqgICAACACQZAoahCpgICAACACLwHMKA1RIAIoAsgoIQUgAigCxCghBAwKCyAHQQFGDVAgOyAKLwAAOwAAIAIgCzsBhBAgAkGGEGogC0EQdjoAACA7QQJqIApBAmotAAA6AAAgAkH0ADoAiBAgAiBSOgCHECACIAc2AoAQIAIgBTYC/A8gAkEANgL4DyACIAQ2AvQPIAJCgBA3ArAoIAJBsL/HgAA2AqgoIAIgAkGQGGo2AqwoAkAgAkGoKGogAkH0D2oQ/IKAgAAiAUH//wNxDQAgAigCrCghBCACKAK0KCEFDAkLIAJBqChqQaDpyYAAQT0QqICAgAAgAi8BwCgNUCACQZAoakEQaiACQagoakEQaikCADcDACACQZAoakEIaiACQagoakEIaikCADcDACACIAIpAqgoNwOQKAJAIAwgAkH0D2oQ/IKAgABB//8DcUUNACACQZAoahCpgICAAAxRCyACQcQoaiACQZAoahCqgICAACACQZAoahCpgICAACACLwHMKA1QIAIoAsgoIQUgAigCxCghBAwICyAHQQFGDU8gPCAKLwAAOwAAIAIgCzsBnBAgAkGeEGogC0EQdjoAACA8QQJqIApBAmotAAA6AAAgAkH0ADoAoBAgAiBSOgCfECACIAc2ApgQIAIgBTYClBAgAkEANgKQECACIAQ2AowQIAJCgBA3ArAoIAJBsL/HgAA2AqgoIAIgAkGQGGo2AqwoAkAgAkGoKGogAkGMEGoQ/YKAgAAiAUH//wNxDQAgAigCrCghBCACKAK0KCEFDAcLIAJBqChqQaDpyYAAQT0QqICAgAAgAi8BwCgNTyACQZAoakEQaiACQagoakEQaikCADcDACACQZAoakEIaiACQagoakEIaikCADcDACACIAIpAqgoNwOQKAJAIAwgAkGMEGoQ/YKAgABB//8DcUUNACACQZAoahCpgICAAAxQCyACQcQoaiACQZAoahCqgICAACACQZAoahCpgICAACACLwHMKA1PIAIoAsgoIQUgAigCxCghBAwGCyAHQQFGDU4gPSAKLwAAOwAAIAIgCzsBtBAgAkG2EGogC0EQdjoAACA9QQJqIApBAmotAAA6AAAgAkH0ADoAuBAgAiBSOgC3ECACIAc2ArAQIAIgBTYCrBAgAkEANgKoECACIAQ2AqQQIAJCgBA3ArAoIAJBsL/HgAA2AqgoIAIgAkGQGGo2AqwoAkAgAkGoKGogAkGkEGoQ/oKAgAAiAUH//wNxDQAgAigCrCghBCACKAK0KCEFDAULIAJBqChqQaDpyYAAQT0QqICAgAAgAi8BwCgNTiACQZAoakEQaiACQagoakEQaikCADcDACACQZAoakEIaiACQagoakEIaikCADcDACACIAIpAqgoNwOQKAJAIAwgAkGkEGoQ/oKAgABB//8DcUUNACACQZAoahCpgICAAAxPCyACQcQoaiACQZAoahCqgICAACACQZAoahCpgICAACACLwHMKA1OIAIoAsgoIQUgAigCxCghBAwECyAHQX5xQQJGDQEMAgsCQCAHQX5xQQJHDQAgBS8BAg4DTQBNAAsgPyAKLwAAOwAAIAIgCzsB5BAgAkHmEGogC0EQdjoAACA/QQJqIApBAmotAAA6AAAgAkH0ADoA6BAgAiBSOgDnECACIAc2AuAQIAIgBTYC3BAgAkEANgLYECACIAQ2AtQQIAJB1BBqEP+CgIAADEwLIAUvAQIOA0sASwALID4gCi8AADsAACACIAs7AcwQIAJBzhBqIAtBEHY6AAAgPkECaiAKQQJqLQAAOgAAIAJB9AA6ANAQIAIgUjoAzxAgAiAHNgLIECACIAU2AsQQIAJBADYCwBAgAiAENgK8ECACQbwQahD/goCAAAxKCyAEIAUQgICAgAAgAUH//wNxRQ1JQaDpyYAAIAQgBRC2gICAAAxJCyAEIAUQgICAgAAgAUH//wNxRQ1IQaDpyYAAIAQgBRC2gICAAAxICyAEIAUQgICAgAAgAUH//wNxRQ1HQaDpyYAAIAQgBRC2gICAAAxHCyAEIAUQgICAgAAgAUH//wNxRQ1GQaDpyYAAIAQgBRC2gICAAAxGCyACKAKsKCEEIAIoArQoIQULIAQgBRCAgICAACABQf//A3FFDURBoOnJgAAgBCAFELaAgIAADEQLIAIoAqwoIQQgAigCtCghBQsgBCAFEICAgIAAIAFB//8DcUUNQkGg6cmAACAEIAUQtoCAgAAMQgsgBCAFEICAgIAAIAFB//8DcUUNQUGg6cmAACAEIAUQtoCAgAAMQQsgMyAKLwAAOwAAIAIgCzsB1A8gAkHWD2ogC0EQdjoAACAzQQJqIApBAmotAAA6AAAgAkHzADoA2A8gAiBSOgDXDyACIAc2AtAPIAIgBTYCzA8gAiAINgLIDyACIAQ2AsQPIAJBxA9qEICDgIAADEALAkACQAJAAkACQAJAIAQtAABBQmoOAgACAQtBgAIhASAHDgIEAwILIDUgCi8AADsAACACIAs7AbwPIAJBvg9qIAtBEHY6AAAgNUECaiAKQQJqLQAAOgAAIAJB8wA6AMAPIAIgUjoAvw8gAiAHNgK4DyACIAU2ArQPIAJBATYCsA8gAiAENgKsDyACQawPahD1goCAAAxDCwNAIAdFDUMgAkH2DmogBS8BACIBQQAQ0oKAgAACQAJAIAItAPgORQ0AIAAoAggiAUEMajEAACFWIAE1AgghVyABQQRqMQAAIVggATUCACFZAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIAIvAfYOIgRBf2oOGQE2AgMEBQYHCDY2CTY2NjY2NjY2NjY2NgoACwJAIARBmHhqDhEQNhESExQVFjY2NjY2NjYXGAALAkAgBEH1d2oODxkaNjYbNjY2NjYcNh0eHwALAkAgBEGWcGoOBiEiNjY2IwALAkAgBEFTag4DDDYNAAsCQCAEQb5/ag4EDjY2DwALQgEhBkL+/////x8hWgJAIARB/v99ag4DJjYlAAsgBEEoRg0KIARB1A9GDR8gBEGAEEYNIwJAIARBjIACRw0AQgQhBkL7/////x8hWgwmC0IIIQZC9/////8fIVoMJQtCECEGQu//////HyFaDCQLQt//////HyFaQiAhBgwjC0LAACEGQr//////HyFaDCILQoABIQZC//7///8fIVoMIQtCgAIhBkL//f///x8hWgwgC0KABCEGQv/7////HyFaDB8LQoAIIQZC//f///8fIVoMHgtCgBAhBkL/7////x8hWgwdC0KAICEGQv/f////HyFaDBwLQoDAACEGQv+/////HyFaDBsLQoCAASEGQv///v//HyFaDBoLQoCAAiEGQv///f//HyFaDBkLQoCABCEGQv//+///HyFaDBgLQoCACCEGQv//9///HyFaDBcLQoCAECEGQv//7///HyFaDBYLQoCAICEGQv//3///HyFaDBULQoCAwAAhBkL//7///x8hWgwUC0KAgIABIQZC/////v8fIVoMEwtCgICAAiEGQv////3/HyFaDBILQoCAgAQhBkL////7/x8hWgwRC0KAgIAIIQZC////9/8fIVoMEAtCgICAECEGQv///+//HyFaDA8LQoCAgCAhBkL////f/x8hWgwOC0KAgIDAACEGQv///7//HyFaDA0LQoCAgIABIQZC//////4fIVoMDAtCgICAgAIhBkL//////R8hWgwLC0KAgICABCEGQv/////7HyFaDAoLQoCAgIAIIQZC//////cfIVoMCQtCgICAgBAhBkL/////7x8hWgwIC0KAgICAICEGQv/////fHyFaDAcLQoCAgIDAACEGQv////+/HyFaDAYLQoCAgICAASEGQv//////HiFaDAULQoCAgICAAiEGQv//////HSFaDAQLQoCAgICABCEGQv//////GyFaDAMLQoCAgICACCEGQv//////FyFaDAILQoCAgICAECEGQv//////DyFaDAELQgIhBkL9/////x8hWgsgASAGIFkgWEIghoSDIFogVyBWQiCGhIOEIgY+AgggAUEMaiAGQiCIPAAADAELIAIgATsB+g4gAkKAEDcCsCggAkGwv8eAADYCqCggAiACQZAYajYCrCgCQAJAIAJBqChqIAJB+g5qEIGDgIAAIgFB//8DcUUNACACQagoakGg6cmAAEEsEKiAgIAAIAIvAcAoDQIgAkGQKGpBEGogAkGoKGpBEGopAgA3AwAgAkGQKGpBCGogAkGoKGpBCGopAgA3AwAgAiACKQKoKDcDkCgCQCAMIAJB+g5qEIGDgIAAQf//A3FFDQAgAkGQKGoQqYCAgAAMAwsgAkHEKGogAkGQKGoQqoCAgAAgAkGQKGoQqYCAgAAgAi8BzCgNAiACKALIKCEIIAIoAsQoIQQMAQsgAigCrCghBCACKAK0KCEICyAEIAgQgICAgAAgAUH//wNxRQ0AQaDpyYAAIAQgCBC2gICAAAsgBUECaiEFIAdBf2ohBwwACwsgNiAKLwAAOwAA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BCAIELaAgIAADAELIAAgBCABEIyCgIAAIgRB//8DcQ1BCyAFQQJqIQUgB0F/aiEHDAALCwJAAkACQAJAIAcOAwABAgMLIABB9rLHgAAQtYKAgAAMPgsgAkEAOwH+DSACIAUvAQA7AfwNIAAgAkH8DWoQtYKAgAAMPQsgAiAFKAEANgGADiAAIAJBgA5qELWCgIAADDwLIDEgCi8AADsAACACIAs7AZQOIAJBlg5qIAtBEHY6AAAgMUECaiAKQQJqLQAAOgAAIAJB8gA6AJgOIAIgUjoAlw4gAiAHNgKQDiACIAU2AowOIAJBADYCiA4gAiAENgKEDiACQoAQNwKwKCACQbC/x4AANgKoKCACIAJBkBhqNgKsKAJAAkAgAkGoKGogAkGEDmoQhYOAgAAiAUH//wNxRQ0AIAJBqChqQaDpyYAAQS0QqICAgAAgAi8BwCgNPSACQZAoakEQaiACQagoakEQaikCADcDACACQZAoakEIaiACQagoakEIaikCADcDACACIAIpAqgoNwOQKAJAIAwgAkGEDmoQhYOAgABB//8DcUUNACACQZAoahCpgICAAAw+CyACQcQoaiACQZAoahCqgICAACACQZAoahCpgICAACACLwHMKA09IAIoAsgoIQUgAigCxCghBAwBCyACKAKsKCEEIAIoArQoIQULIAQgBRCAgICAACABQf//A3FFDTtBoOnJgAAgBCAFELaAgIAADDsLAkAgCEEBRg0AIAIgCDYC+A0gAiAENgL0DSACQfQNahCGg4CAAAw7CwJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIAQtAAAiAUFgag4DAAMBAgtCACEGQQEhASAHDgITAwQLQfCyx4AAIQEgBw4CCwgJCyABQT5GDU0LIAJBATYC8A0gAiAENgLsDSACQoAQNwKwKCACQbC/x4AANgKoKCACIAJBkBhqNgKsKAJAIAJBqChqIAJB7A1qEIeDgIAAIgFB//8DcQ0AIAIoAqwoIQQgAigCtCghBQwSCyACQagoakGg6cmAAEHFABCogICAACACLwHAKA1MIAJBkChqQRBqIAJBqChqQRBqKQIANwMAIAJBkChqQQhqIAJBqChqQQhqKQIANwMAIAIgAikCqCg3A5AoAkAgDCACQewNahCHg4CAAEH//wNxRQ0AIAJBkChqEKmAgIAADE0LIAJBxChqIAJBkChqEKqAgIAAIAJBkChqEKmAgIAAIAIvAcwoDUwgAigCyCghBSACKALEKCEEDBELQQIhAUKAICEGIAUvAQAiBA4HDQ4NDwMBAgQLIC4gCi8AADsAACACIAs7AcwNIAJBzg1qIAtBEHY6AAAgLkECaiAKQQJqLQAAOgAAIAJB8QA6ANANIAIgUjoAzw0gAiAHNgLIDSACIAU2AsQNIAJBATYCwA0gAiAENgK8DSACQoAQNwKwKCACQbC/x4AANgKoKCACIAJBkBhqNgKsKCACQagoaiACQbwNahCIg4CAACIBQf//A3FFDQogAkGoKGpBoOnJgABBNRCogICAACACLwHAKA1KIAJBkChqQRBqIAJBqChqQRBqKQIANwMAIAJBkChqQQhqIAJBqChqQQhqKQIANwMAIAIgAikCqCg3A5AoAkAgDCACQbwNahCIg4CAAEH//wNxRQ0AIAJBkChqEKmAgIAADEsLIAJBxChqIAJBkChqEKqAgIAAIAJBkChqEKmAgIAAIAIvAcwoDUogAigCyCghBSACKALEKCEEDAsLQQAhAQwNC0EAIQELQgAhBgwLCyACIAQ7AboNIAJCgBA3ArAoIAJBsL/HgAA2AqgoIAIgAkGQGGo2AqwoIAJBqChqIAJBug1qEImDgIAAIgFB//8DcUUNBCACQagoakGg6cmAAEEvEKiAgIAAIAIvAcAoDUYgAkGQKGpBEGogAkGoKGpBEGopAgA3AwAgAkGQKGpBCGogAkGoKGpBCGopAgA3AwAgAiACKQKoKDcDkCgCQCAMIAJBug1qEImDgIAAQf//A3FFDQAgAkGQKGoQqYCAgAAMRwsgAkHEKGogAkGQKGoQqoCAgAAgAkGQKGoQqYCAgAAgAi8BzCgNRiACKALIKCEFIAIoAsQoIQQMBQsgBS8BACIBQQNJDQELQfSyx4AAIQEMAQsgAUECdEHguMqAAGooAgAhAQsCQAJAAkACQAJAAkAgAS0AAUUNACAAKAIIIgUoAhghBCABLQAAQQNxDgMBAgMBCyAvIAovAAA7AAAgAiALOwHkDSACQeYNaiALQRB2OgAAIC9BAmogCkECai0AADoAACACQfEAOgDoDSACIFI6AOcNIAIgBzYC4A0gAiAFNgLcDSACQQE2AtgNIAIgBDYC1A0gAkKAEDcCsCggAkGwv8eAADYCqCggAiACQZAYajYCrCggAkGoKGogAkHUDWoQioOAgAAiAUH//wNxRQ0DIAJBqChqQaDpyYAAQTgQqICAgAAgAi8BwCgNRyACQZAoakEQaiACQagoakEQaikCADcDACACQZAoakEIaiACQagoakEIaikCADcDACACIAIpAqgoNwOQKAJAIAwgAkHUDWoQioOAgABB//8DcUUNACACQZAoahCpgICAAAxICyACQcQoaiACQZAoahCqgICAACACQZAoahCpgICAACACLwHMKA1HIAIoAsgoIQUgAigCxCghBAwECyAEQQA6ANIBDEYLIARBAToA0gEgBSgCGEEBOgDhAgxFCyAEQQE6ANIBIAUoAhhBAjoA4QIMRAsgAigCrCghBCACKAK0KCEFCyAEIAUQgICAgAAgAUH//wNxRQ1CQaDpyYAAIAQgBRC2gICAAAxCCyACKAKsKCEEIAIoArQoIQULIAQgBRCAgICAACABQf//A3FFDUBBoOnJgAAgBCAFELaAgIAADEALIAIoAqwoIQQgAigCtCghBQsgBCAFEICAgIAAIAFB//8DcUUNPkGg6cmAACAEIAUQtoCAgAAMPgtCACEGC0EBIQELIAAoAggiBCAENQIAQv/f//8PgyAGhD4CACAAKAIIKAIYIAE6ANABDDsLIAQgBRCAgICAACABQf//A3FFDTpBoOnJgAAgBCAFELaAgIAADDoLAkAgCEECRg0AIAIgCDYCtA0gAiAENgKwDSACQbANahCGg4CAAAw6CwJAIAQtAABBP0cNACAELQABQSRHDQAgB0EBRg06IC0gCi8AADsAACACIAs7AagNIAJBqg1qIAtBEHY6AAAgAkECNgKcDSAtQQJqIApBAmotAAA6AAAgAkHwADoArA0gAiBSOgCrDSACIAc2AqQNIAIgBTYCoA0gAiAENgKYDSACQoAQNwKwKCACQbC/x4AANgKoKCACIAJBkBhqNgKsKAJAAkAgAkGoKGogAkGYDWoQi4OAgAAiAUH//wNxDQAgAigCrCghBCACKAK0KCEFDAELIAJBqChqQaDpyYAAQSwQqICAgAAgAi8BwCgNOyACQZAoakEQaiACQagoakEQaikCADcDACACQZAoakEIaiACQagoakEIaikCADcDACACIAIpAqgoNwOQKAJAIAwgAkGYDWoQi4OAgABB//8DcUUNACACQZAoahCpgICAAAw8CyACQcQoaiACQZAoahCqgICAACACQZAoahCpgICAACACLwHMKA07IAIoAsgoIQUgAigCxCghBAsgBCAFEICAgIAAIAFB//8DcUUNOkGg6cmAACAEIAUQtoCAgAAMOgsgAkECNgKUDSACIAQ2ApANIAJBkA1qEIaDgIAADDkLAkACQAJAAkACQAJAAkACQAJAAkACQCAIRQ0AIAQtAAAiAUE/Rw0FIAdBAUcNASAIQQFGDQMgLCAKLwAAOwAAIAIgCzsB5AwgAkHmDGogC0EQdjoAACAsQQJqIApBAmotAAA6AAAgAkHuADoA6AwgAiBSOgDnDCACQQE2AuAMIAIgBTYC3AwgAiAINgLYDCACIAQ2AtQMIAJB1AxqEL2CgIAADEMLIAdBAUYNAQsgKyAKLwAAOwAAIAIgCzsBzAwgAkHODGogC0EQdjoAACArQQJqIApBAmotAAA6AAAgAkHuADoA0AwgAiBSOgDPDCACIAc2AsgMIAIgBTYCxAwgAiAINgLADCACIAQ2ArwMIAJBvAxqEIyDgIAADEELAkACQCAFLwEAQXtqDgIAAQMLIAAoAgwgAEHupMCAAEEEELOCgIAAIQQMGQsgACgCCCIBKAIYIgUvAcoBIQQgBS8ByAEhBSABLQABQQFxDQMMBwsgBS8BAEHkB0YNFgsgKiAKLwAAOwAAIAIgCzsB/AwgAkH+DGogC0EQdjoAACAqQQJqIApBAmotAAA6AAAgAkHuADoAgA0gAiBSOgD/DCACQQE2AvgMIAIgBTYC9AwgAiAINgLwDCACIAQ2AuwMIAJB7AxqEIyDgIAADD4LAkAgCEEBRg0AIAIgCDYCjA0gAiAENgKIDSACQoAQNwKwKCACQbC/x4AANgKoKCACIAJBkBhqNgKsKAJAIAJBqChqIAJBiA1qEI2DgIAAIgFB//8DcQ0AIAIoAqwoIQQgAigCtCghBQwFCyACQagoakGg6cmAAEHFABCogICAACACLwHAKA0+IAJBkChqQRBqIAJBqChqQRBqKQIANwMAIAJBkChqQQhqIAJBqChqQQhqKQIANwMAIAIgAikCqCg3A5AoAkAgDCACQYgNahCNg4CAAEH//wNxRQ0AIAJBkChqEKmAgIAADD8LIAJBxChqIAJBkChqEKqAgIAAIAJBkChqEKmAgIAAIAIvAcwoDT4gAigCyCghBSACKALEKCEEDAQLIAFBPkYNAiACIAE6AIcNIAJCgBA3ArAoIAJBsL/HgAA2AqgoIAIgAkGQGGo2AqwoAkAgAkGoKGogAkGHDWoQjoOAgAAiAUH//wNxDQAgAigCrCghBCACKAK0KCEFDAILIAJBqChqQaDpyYAAQTQQqICAgAAgAi8BwCgNPSACQZAoakEQaiACQagoakEQaikCADcDACACQZAoakEIaiACQagoakEIaikCADcDACACIAIpAqgoNwOQKAJAIAwgAkGHDWoQjoOAgABB//8DcUUNACACQZAoahCpgICAAAw+CyACQcQoaiACQZAoahCqgICAACACQZAoahCpgICAACACLwHMKA09IAIoAsgoIQUgAigCxCghBAwBC0EAIARB//8DcSIEIAEvAfQRayIHIAcgBEsbIQRBACAFQf//A3EiBSABLwH4EWsiASABIAVLGyEFDAMLIAQgBRCAgICAACABQf//A3FFDTtBoOnJgAAgBCAFELaAgIAADDsLIAAoAggiASABLwHsEUH9/wNxOwHsEQw6CyAEIAUQgICAgAAgAUH//wNxRQ05QaDpyYAAIAQgBRC2gICAAAw5CyACQiA3ArAoIAJBsL/HgAA2AqgoIAIgAkGQGGo2AqwoIAJBqChqQcinyIAAQQIQmoCAgABB//8DcQ0PIAJBqChqQYy1yoAAIARBAWoQj4OAgABB//8DcQ0PIAJBqChqQcqnyIAAQQEQmoCAgABB//8DcQ0PIAJBqChqQYy1yoAAIAVBAWoQj4OAgABB//8DcQ0PIAJBqChqQcunyIAAQQEQmoCAgABB//8DcQ0PIAAoAgwgACACKAKsKCACKAK0KBCzgoCAACEEDBALAkACQCAELQAAIgFBPkYNACACIAE6ALMMIAJCgBA3ArAoIAJBsL/HgAA2AqgoIAIgAkGQGGo2AqwoAkAgAkGoKGogAkGzDGoQkIOAgAAiAUH//wNxDQAgAigCrCghBCACKAK0KCEFDAILIAJBqChqQaDpyYAAQTQQqICAgAAgAi8BwCgNOSACQZAoakEQaiACQagoakEQaikCADcDACACQZAoakEIaiACQagoakEIaikCADcDACACIAIpAqgoNwOQKAJAIAwgAkGzDGoQkIOAgABB//8DcUUNACACQZAoahCpgICAAAw6CyACQcQoaiACQZAoahCqgICAACACQZAoahCpgICAACACLwHMKA05IAIoAsgoIQUgAigCxCghBAwBCwJAIAdFDQBBACEIAkACQAJAAkACQAJAIAUvAQAiAQ4FAwABBAIEC0EBIQEMAgtBAiEBDAELQQMhAUEBIQgLAkAgB0ECTQ0AICkgCi8AADsAACACIAs7AagMIAJBqgxqIAtBEHY6AAAgKUECaiAKQQJqLQAAOgAAIAJB7QA6AKwMIAIgUjoAqwwgAiAHNgKkDCACIAU2AqAMIAJBATYCnAwgAiAENgKYDCACQZgMahCRg4CAAAw8CyAHQQJGIAhxRQ0BQQVBAyAFLwECQQJGGyEBDAELICggCi8AADsAACACIAs7AZAMIAJBkgxqIAtBEHY6AAAgKEECaiAKQQJqLQAAOgAAIAJB7QA6AJQMIAIgUjoAkwwgAiAHNgKMDCACIAU2AogMIAJBATYChAwgAiAENgKADCACQYAMahCRg4CAAAw6CyAAIAEQsoKAgAAMOQsgACgCCCIBIAEvAewRQf3/A3E7AewRDDgLIAQgBRCAgICAACABQf//A3FFDTdBoOnJgAAgBCAFELaAgIAADDcLIAIgCzsB4AsgAkHiC2ogC0EQdjoAACACQQA2AuQLIAIgBzYC3AsgAiAFNgLYCwNAIAJB6AtqIAJB2AtqENeAgIAAIAItAPwLRQ03IAIoAugLIgRBAUYNACAAKAIIKAIYIQECQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQCAEDh8AIAECAwQFBgcICQoLDA0ODxAREhMUFRcWGBkbGh0cAAsgAUIANwOYASABQbABakEANgIAIAFBqAFqQgA3AwAgAUGgAWpCADcDAAwdCyABIAEvAbABQQFyOwGwAQwcCyABIAEvAbABQfr/A3E7AbABDBsLIAEgAS8BsAFBAnI7AbABDBoLIAEgAS8BsAFB/f8DcTsBsAEMGQsgASABLwGwAUEEcjsBsAEMGAsgASACLQDsC0EHcUEIdCABLwGwAUH/8QNxcjsBsAEMFwsgAUECOgCsASABIAIvAewLIgQ6AKgBIAEgBEEIdjoAqQEgASACQe4Lai0AADoAqgEMFgsgAUEBOgCsASABIAItAOwLOgCoAQwVCyABQgA3A6gBDBQLIAEgAS8BsAFBgAFyOwGwAQwTCyABIAEvAbABQf/+A3E7AbABDBILIAEgAS8BsAFBCHI7AbABDBELIAEgAS8BsAFB9/8DcTsBsAEMEAsgASABLwGwAUEQcjsBsAEMDwsgASABLwGwAUHv/wNxOwGwAQwOCyABIAEvAbABQSByOwGwAQwNCyABIAEvAbABQd//A3E7AbABDAwLIAEgAS8BsAFBwAByOwGwAQwLCyABIAEvAbABQb//A3E7AbABDAoLIAFBAjoAnAEgASACLwHsCyIEOgCYASABIARBCHY6AJkBIAEgAkHuC2otAAA6AJoBDAkLIAFBAjoApAEgASACLwHsCyIEOgCgASABIARBCHY6AKEBIAEgAkHuC2otAAA6AKIBDAgLIAFBAToAnAEgASACLQDsCzoAmAEMBwsgAUEBOgCkASABIAItAOwLOgCgAQwGCyABQgA3A5gBDAULIAFCADcDoAEMBAsgAUEBOgCcASABIAItAOwLOgCYAQwDCyABQQE6AKQBIAEgAi0A7As6AKABDAILIAFBAToAnAEgASACLQDsCzoAmAEMAQsgAUEBOgCkASABIAItAOwLOgCgAQsgARCSgYCAABoMAAsLAAsgAiAINgK4DCACIAQ2ArQMIAJCgBA3ArAoIAJBsL/HgAA2AqgoIAIgAkGQGGo2AqwoAkACQCACQagoaiACQbQMahCSg4CAACIBQf//A3FFDQAgAkGoKGpBoOnJgABBxQAQqICAgAAgAi8BwCgNNiACQZAoakEQaiACQagoakEQaikCADcDACACQZAoakEIaiACQagoakEIaikCADcDACACIAIpAqgoNwOQKAJAIAwgAkG0DGoQkoOAgABB//8DcUUNACACQZAoahCpgICAAAw3CyACQcQoaiACQZAoahCqgICAACACQZAoahCpgICAACACLwHMKA02IAIoAsgoIQUgAigCxCghBAwBCyACKAKsKCEEIAIoArQoIQULIAQgBRCAgICAACABQf//A3FFDTRBoOnJgAAgBCAFELaAgIAADDQLA0AgB0UNNCACQdALaiAFLwEAIgEgCEUQ0oKAgAACQAJAIAItANILRQ0AIAIgAi8B0As7AdQLIAAgAkHUC2oQjoKAgAAiBEH//wNxDTkMAQsgAiABOwHWCyACQdYLahDTgoCAAAsgBUECaiEFIAdBf2ohBwwACwsgBCAFEICAgIAAIAFB//8DcUUNMkGg6cmAACAEIAUQtoCAgAAMMgsCQAJAAkAgBS8BACIBDgQAAgIBAgsgABCugoCAAAwzCyAAELGCgIAADDILIAIgAToAjwsgAkKAEDcCsCggAkGwv8eAADYCqCggAiACQZAYajYCrCgCQAJAIAJBqChqIAJBjwtqEJODgIAAIgFB//8DcUUNACACQagoakGg6cmAAEErEKiAgIAAIAIvAcAoDTMgAkGQKGpBEGogAkGoKGpBEGopAgA3AwAgAkGQKGpBCGogAkGoKGpBCGopAgA3AwAgAiACKQKoKDcDkCgCQCAMIAJBjwtqEJODgIAAQf//A3FFDQAgAkGQKGoQqYCAgAAMNAsgAkHEKGogAkGQKGoQqoCAgAAgAkGQKGoQqYCAgAAgAi8BzCgNMyACKALIKCEFIAIoAsQoIQQMAQsgAigCrCghBCACKAK0KCEFCyAEIAUQgICAgAAgAUH//wNxRQ0xQaDpyYAAIAQgBRC2gICAAAwxCyAEIAUQgICAgAAgAUH//wNxRQ0wQaDpyYAAIAQgBRC2gICAAAwwCyAEIAUQgICAgAAgAUH//wNxRQ0vQaDpyYAAIAQgBRC2gICAAAwvC0EBIQECQAJAAkAgBw4CAQACCyAFLwEAIQELIAAoAggiBCAEKAIYIgQvAcoBQQFqQf//A3EgAUH//wNxaiIBQf//AyABQf//A0kbIAQvAcgBQQFqQf//A3EQ44GAgAAMLwsgJCAKLwAAOwAAIAIgCzsB5AogAkHmCmogC0EQdjoAACAkQQJqIApBAmotAAA6AAAgAkHlADoA6AogAiBSOgDnCiACIAc2AuAKIAIgBTYC3AogAkEANgLYCiACIAQ2AtQKIAJCgBA3ArAoIAJBsL/HgAA2AqgoIAIgAkGQGGo2AqwoAkACQCACQagoaiACQdQKahCUg4CAACIBQf//A3FFDQAgAkGoKGpBoOnJgABBKRCogICAACACLwHAKA0wIAJBkChqQRBqIAJBqChqQRBqKQIANwMAIAJBkChqQQhqIAJBqChqQQhqKQIANwMAIAIgAikCqCg3A5AoAkAgDCACQdQKahCUg4CAAEH//wNxRQ0AIAJBkChqEKmAgIAADDELIAJBxChqIAJBkChqEKqAgIAAIAJBkChqEKmAgIAAIAIvAcwoDTAgAigCyCghBSACKALEKCEEDAELIAIoAqwoIQQgAigCtCghBQsgBCAFEICAgIAAIAFB//8DcUUNLkGg6cmAACAEIAUQtoCAgAAMLgsgBCAFEICAgIAAIAFB//8DcUUNLUGg6cmAACAEIAUQtoCAgAAMLQtBASEBAkACQAJAIAcOAgEAAgsgBS8BACEBCyAAKAIIIgQgASAEKAIYLwHIAUEBakH//wNxEOOBgIAADC0LICMgCi8AADsAACACIAs7AcQKIAJBxgpqIAtBEHY6AAAgI0ECaiAKQQJqLQAAOgAAIAJB5AA6AMgKIAIgUjoAxwogAiAHNgLACiACIAU2ArwKIAJBADYCuAogAiAENgK0CiACQoAQNwKwKCACQbC/x4AANgKoKCACIAJBkBhqNgKsKAJAAkAgAkGoKGogAkG0CmoQlYOAgAAiAUH//wNxRQ0AIAJBqChqQaDpyYAAQSkQqICAgAAgAi8BwCgNLiACQZAoakEQaiACQagoakEQaikCADcDACACQZAoakEIaiACQagoakEIaikCADcDACACIAIpAqgoNwOQKAJAIAwgAkG0CmoQlYOAgABB//8DcUUNACACQZAoahCpgICAAAwvCyACQcQoaiACQZAoahCqgICAACACQZAoahCpgICAACACLwHMKA0uIAIoAsgoIQUgAigCxCghBAwBCyACKAKsKCEEIAIoArQoIQULIAQgBRCAgICAACABQf//A3FFDSxBoOnJgAAgBCAFELaAgIAADCwLIAEtAAQNKyAiIAovAAA7AAAgAiALOwGsCiACQa4KaiALQRB2OgAAICJBAmogCkECai0AADoAACACQeMAOgCwCiACIFI6AK8KIAIgBzYCqAogAiAFNgKkCiACIAg2AqAKIAIgBDYCnAogAkKAEDcCsCggAkGwv8eAADYCqCggAiACQZAYajYCrCgCQAJAIAJBqChqIAJBnApqEJaDgIAAIgFB//8DcQ0AIAIoAqwoIQQgAigCtCghBQwBCyACQagoakGg6cmAAEE3EKiAgIAAIAIvAcAoDSwgAkGQKGpBEGogAkGoKGpBEGopAgA3AwAgAkGQKGpBCGogAkGoKGpBCGopAgA3AwAgAiACKQKoKDcDkCgCQCAMIAJBnApq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A3FFDRVBoOnJgAAgBCAFELaAgIAADBULQQEhAQJAAkACQCAHDgIBAAILIAUvAQAhAQsgACgCCCABEPOBgIAADBULIBggCi8AADsAACACIAs7AfQHIAJB9gdqIAtBEHY6AAAgGEECaiAKQQJqLQAAOgAAIAJBzQA6APgHIAIgUjoA9wcgAiAHNgLwByACIAU2AuwHIAJBADYC6AcgAiAENgLkByACQoAQNwKwKCACQbC/x4AANgKoKCACIAJBkBhqNgKsKAJAAkAgAkGoKGogAkHkB2oQoIOAgAAiAUH//wNxRQ0AIAJBqChqQaDpyYAAQSgQqICAgAAgAi8BwCgNFiACQZAoakEQaiACQagoakEQaikCADcDACACQZAoakEIaiACQagoakEIaikCADcDACACIAIpAqgoNwOQKAJAIAwgAkHkB2oQoIOAgABB//8DcUUNACACQZAoahCpgICAAAwXCyACQcQoaiACQZAoahCqgICAACACQZAoahCpgICAACACLwHMKA0WIAIoAsgoIQUgAigCxCghBAwBCyACKAKsKCEEIAIoArQoIQULIAQgBRCAgICAACABQf//A3FFDRRBoOnJgAAgBCAFELaAgIAADBQLIAQgBRCAgICAACABQf//A3FFDRNBoOnJgAAgBCAFELaAgIAADBMLQQEhAQJAAkACQCAHDgIBAAILIAUvAQAhAQsgACgCCCABEKmCgIAADBMLIBcgCi8AADsAACACIAs7AdQHIAJB1gdqIAtBEHY6AAAgF0ECaiAKQQJqLQAAOgAAIAJBzAA6ANgHIAIgUjoA1wcgAiAHNgLQByACIAU2AswHIAJBADYCyAcgAiAENgLEByACQoAQNwKwKCACQbC/x4AANgKoKCACIAJBkBhqNgKsKAJAAkAgAkGoKGogAkHEB2oQoYOAgAAiAUH//wNxRQ0AIAJBqChqQaDpyYAAQSgQqICAgAAgAi8BwCgNFCACQZAoakEQaiACQagoakEQaikCADcDACACQZAoakEIaiACQagoakEIaikCADcDACACIAIpAqgoNwOQKAJAIAwgAkHEB2oQoYOAgABB//8DcUUNACACQZAoahCpgICAAAwVCyACQcQoaiACQZAoahCqgICAACACQZAoahCpgICAACACLwHMKA0UIAIoAsgoIQUgAigCxCghBAwBCyACKAKs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gABBAhCagICAACEDCyACQcAAaiSAgICAACADC8gCAQN/I4CAgIAAQcAQayIBJICAgIAAIAFCgBA3AqAQIAFBsL/HgAA2ApgQIAEgATYCnBACQAJAAkAgAUGYEGogABCzg4CAACICQf//A3ENACABKAKcECEAIAEoAqQQIQMMAQsgAUGYEGpBoOnJgABBLhCogICAACABLwGwEA0BIAFBgBBqQRBqIAFBmBBqQRBqKQIANwMAIAFBgBBqQQhqIgMgAUGYEGpBCGopAgA3AwAgASABKQKYEDcDgBACQCADIAAQs4OAgABB//8DcUUNACABQYAQahCpgICAAAwCCyABQbQQaiABQYAQahCqgICAACABQYAQahCpgICAACABLwG8EA0BIAEoArgQIQMgASgCtBAhAAsgACADEICAgIAAIAJB//8DcUUNAEGg6cmAACAAIAMQtoCAgAALIAFBwBBqJICAgIAACy4BAX8CQCAAQYuYyoAAQSsQmoCAgAAiAkH//wNxDQAgACABEK6EgIAAIQILIAILPQEBfwJAIABBwvbJgABBwgAQmoCAgAAiAkH//wNxDQAgACABKAIAIAEoAgRBjLXKgAAQoYSAgAAhAgsgAgs9AQF/AkAgAEGz98mAAEHCABCagICAACICQf//A3ENACAAIAEoAgAgASgCBEGMtcqAABChhICAACECCyACCz0BAX8CQCAAQaH4yYAAQcIAEJqAgIAAIgJB//8DcQ0AIAAgASgCACABKAIEQYy1yoAAEKGEgIAAIQILIAILPQEBfwJAIABB4/jJgABBwgAQmoCAgAAiAkH//wNxDQAgACABKAIAIAEoAgRBjLXKgAAQoYSAgAAhAgsgAgs9AQF/AkAgAEHW+cmAAEHCABCagICAACICQf//A3ENACAAIAEoAgAgASgCBEGMtcqAABChhICAACECCyACCz0BAX8CQCAAQZr7yYAAQcIAEJqAgIAAIgJB//8DcQ0AIAAgASgCACABKAIEQYy1yoAAEKGEgIAAIQILIAILPQEBfwJAIABBgfzJgABBwgAQmoCAgAAiAkH//wNxDQAgACABKAIAIAEoAgRBjLXKgAAQoYSAgAAhAgsgAgs9AQF/AkAgAEH3/MmAAEHCABCagICAACICQf//A3ENACAAIAEoAgAgASgCBEGMtcqAABChhICAACECCyACCz0BAX8CQCAAQeX9yYAAQcIAEJqAgIAAIgJB//8DcQ0AIAAgASgCACABKAIEQYy1yoAAEKGEgIAAIQILIAILPQEBfwJAIABB1f7JgABBwgAQmoCAgAAiAkH//wNxDQAgACABKAIAIAEoAgRBjLXKgAAQoYSAgAAhAgsgAgs9AQF/AkAgAEHL/8mAAEHCABCagICAACICQf//A3ENACAAIAEoAgAgASgCBEGMtcqAABChhICAACECCyACCz0BAX8CQCAAQcCAyoAAQcIAEJqAgIAAIgJB//8DcQ0AIAAgASgCACABKAIEQYy1yoAAEKGEgIAAIQILIAILPQEBfwJAIABBuIHKgABBwgAQmoCAgAAiAkH//wNxDQAgACABKAIAIAEoAgRBjLXKgAAQoYSAgAAhAgsgAgs9AQF/AkAgAEGggsqAAEHCABCagICAACICQf//A3ENACAAIAEoAgAgASgCBEGMtcqAABChhICAACECCyACCz0BAX8CQCAAQZGDyoAAQcIAEJqAgIAAIgJB//8DcQ0AIAAgASgCACABKAIEQYy1yoAAEKGEgIAAIQILIAILPQEBfwJAIABBrYTKgABBwgAQmoCAgAAiAkH//wNxDQAgACABKAIAIAEoAgRBjLXKgAAQoYSAgAAhAgsgAgs9AQF/AkAgAEGVhcqAAEHCABCagICAACICQf//A3ENACAAIAEoAgAgASgCBEGMtcqAABChhICAACECCyACCz0BAX8CQCAAQayGyoAAQcIAEJqAgIAAIgJB//8DcQ0AIAAgASgCACABKAIEQYy1yoAAEKGEgIAAIQILIAILLgEBfwJAIABB14XKgABBLBCagICAACICQf//A3ENACAAIAEQroSAgAAhAgsgAgvoCwECfwJAIAFB//8DcSIDQQJHDQAgAkEBcUUNACAAQQE6AAIgAEGCgAI7AQAPCwJAIANBBEcNACACQQFxRQ0AIABBAToAAiAAQYSAAjsBAA8LAkAgAUH//wNxIgNBDEcNACACQQFxRQ0AIABBAToAAiAAQYyAAjsBAA8LAkAgA0EURw0AIAJBAXFFDQAgAEEBOgACIABBlIACOwEADwsCQCABQf//A3EiA0EBRw0AIAJBAXENACAAQQE6AAIgAEEBOwEADwsCQCADQQNHDQAgAkEBcQ0AIABBAToAAiAAQQM7AQAPCwJAIAFB//8DcSIDQQRGIAJBAXMiBHFBAUcNACAAQQE6AAIgAEGEgH5BBCACQQFxGzsBAA8LAkAgA0EFRw0AIAJBAXENACAAQQE6AAIgAEEFOwEADwsCQCABQf//A3EiA0EGRw0AIAJBAXENACAAQQE6AAIgAEEGOwEADwsCQCADQQdHDQAgAkEBcQ0AIABBAToAAiAAQQc7AQAPCwJAIAFB//8DcSIDQQhHDQAgAkEBcQ0AIABBAToAAiAAQQg7AQAPCwJAIANBCUcNACACQQFxDQAgAEEBOgACIABBCTsBAA8LAkAgAUH//wNxIgNBDEYgBHFBAUcNACAAQQE6AAIgAEGMgH5BDCACQQFxGzsBAA8LAkAgA0EZRw0AIAJBAXENACAAQQE6AAIgAEEZOwEADwsCQCABQf//A3EiA0EoRw0AIAJBAXENACAAQQE6AAIgAEEoOwEADwsCQCADQS1HDQAgAkEBcQ0AIABBAToAAiAAQS07AQAPCwJAIAFB//8DcSIDQS9HDQAgAkEBcQ0AIABBAToAAiAAQS87AQAPCwJAIANBwgBHDQAgAkEBcQ0AIABBAToAAiAAQcIAOwEADwsCQCABQf//A3EiA0HFAEcNACACQQFxDQAgAEEBOgACIABBxQA7AQAPCwJAIANB6AdHDQAgAkEBcQ0AIABBAToAAiAAQegHOwEADwsCQCABQf//A3EiA0HqB0cNACACQQFxDQAgAEEBOgACIABB6gc7AQAPCwJAIANB6wdHDQAgAkEBcQ0AIABBAToAAiAAQesHOwEADwsCQCABQf//A3EiA0HsB0cNACACQQFxDQAgAEEBOgACIABB7Ac7AQAPCwJAIANB7QdHDQAgAkEBcQ0AIABBAToAAiAAQe0HOwEADwsCQCABQf//A3EiA0HuB0cNACACQQFxDQAgAEEBOgACIABB7gc7AQAPCwJAIANB7wdHDQAgAkEBcQ0AIABBAToAAiAAQe8HOwEADwsCQCABQf//A3EiA0H3B0cNACACQQFxDQAgAEEBOgACIABB9wc7AQAPCwJAIANB+AdHDQAgAkEBcQ0AIABBAToAAiAAQfgHOwEADwsCQCABQf//A3EiA0GLCEcNACACQQFxDQAgAEEBOgACIABBiwg7AQAPCwJAIANBjAhHDQAgAkEBcQ0AIABBAToAAiAAQYwIOwEADwsCQCABQf//A3EiA0GPCEcNACACQQFxDQAgAEEBOgACIABBjwg7AQAPCwJAIANBlQhHDQAgAkEBcQ0AIABBAToAAiAAQZUIOwEADwsCQCABQf//A3EiA0GXCEcNACACQQFxDQAgAEEBOgACIABBlwg7AQAPCwJAIANBmAhHDQAgAkEBcQ0AIABBAToAAiAAQZgIOwEADwsCQCABQf//A3EiA0GZCEcNACACQQFxDQAgAEEBOgACIABBmQg7AQAPCwJAIANB1A9HDQAgAkEBcQ0AIABBAToAAiAAQdQPOwEADwsCQCABQf//A3EiA0HqD0cNACACQQFxDQAgAEEBOgACIABB6g87AQAPCwJAIANB6w9HDQAgAkEBcQ0AIABBAToAAiAAQesPOwEADwsCQCABQf//A3EiAUHvD0cNACACQQFxDQAgAEEBOgACIABB7w87AQAPCwJAIAFBgBBHDQAgAkEBcQ0AIABBAToAAiAAQYAQOwEADwsgAEEANgEAC8gCAQN/I4CAgIAAQcAQayIBJICAgIAAIAFCgBA3AqAQIAFBsL/HgAA2ApgQIAEgATYCnBACQAJAAkAgAUGYEGogABC0g4CAACICQf//A3ENACABKAKcECEAIAEoAqQQIQMMAQsgAUGYEGpBoOnJgABBJxCogICAACABLwGwEA0BIAFBgBBqQRBqIAFBmBBqQRBqKQIANwMAIAFBgBBqQQhqIgMgAUGYEGpBCGopAgA3AwAgASABKQKYEDcDgBACQCADIAAQtIOAgABB//8DcUUNACABQYAQahCpgICAAAwCCyABQbQQaiABQYAQahCqgICAACABQYAQahCpgICAACABLwG8EA0BIAEoArgQIQMgASgCtBAhAAsgACADEICAgIAAIAJB//8DcUUNAEGg6cmAACAAIAMQtoCAgAALIAFBwBBqJICAgIAAC+kBAgZ/AX5BACECA38CQAJAIAIgAU8iAw0AAkAgACACaiIELAAAIgVBAEgNAEEBIQUMAgsgBUH/AXFBzKfIgABqLQAAIgZB8QFGDQAgAiAGQQdxIgVqIAFLDQAgBEEBai0AACIHQoDBgoSJECAGQQF2QfgAca0iCIinQbABcUkNACAHQr///vz7ESAIiKdB/wFxSw0AAkACQCAFQX5qDgMDAAEDCyAEQQJqLAAAQb9/Sg0BQQMhBQwCCyAEQQJqLAAAQb9/Sg0AIARBA2osAABBQE4NAEEEIQUMAQsgAw8LIAUgAmohAgwACwsTACAAQbaYyoAAQcYAEJqAgIAACzQBAX8CQCAAQdSZyoAAQS0QmoCAgAAiAkH//wNxDQAgAEGMtcqAACABEKyEgIAAIQILIAILEgAgAEGjmcqAAEExEJqAgIAAC1ABA38CQAJAIAAgAkcNAEEBIQMMAQsDQCABRSEDIAFFDQEgAUF/aiEBIAItAAAhBCAALQAAIQUgAkEBaiECIABBAWohACAFIARGDQALCyADCzwBAX8CQCAAQfyYyoAAQScQmoCAgAAiAkH//wNxDQAgACABKAIAIAEoAgRBjLXKgAAQoYSAgAAhAgsgAgvIAgEDfyOAgICAAEHAEGsiASSAgICAACABQoAQNwKgECABQbC/x4AANgKYECABIAE2ApwQAkACQAJAIAFBmBBqIAAQrIOAgAAiAkH//wNxDQAgASgCnBAhACABKAKkECEDDAELIAFBmBBqQaDpyYAAQSsQqICAgAAgAS8BsBANASABQYAQakEQaiABQZgQakEQaikCADcDACABQYAQakEIaiIDIAFBmBBqQQhqKQIANwMAIAEgASkCmBA3A4AQAkAgAyAAEKyDgIAAQf//A3FFDQAgAUGAEGoQqYCAgAAMAgsgAUG0EGogAUGAEGoQqoCAgAAgAUGAEGoQqYCAgAAgAS8BvBANASABKAK4ECEDIAEoArQQIQALIAAgAxCAgICAACACQf//A3FFDQBBoOnJgAAgACADELaAgIAACyABQcAQaiSAgICAAAsuAQF/AkAgAEHj8cmAAEE4EJqAgIAAIgJB//8DcQ0AIAAgARCmhICAACECCyACCy4BAX8CQCAAQavxyYAAQTgQmoCAgAAiAkH//wNxDQAgACABEKaEgIAAIQILIAILLgEBfwJAIABB8/DJgABBOBCagICAACICQf//A3ENACAAIAEQpoSAgAAhAgsgAgvIAgEDfyOAgICAAEHAEGsiASSAgICAACABQoAQNwKgECABQbC/x4AANgKYECABIAE2ApwQAkACQAJAIAFBmBBqIAAQqoOAgAAiAkH//wNxDQAgASgCnBAhACABKAKkECEDDAELIAFBmBBqQaDpyYAAQTQQqICAgAAgAS8BsBANASABQYAQakEQaiABQZgQakEQaikCADcDACABQYAQakEIaiIDIAFBmBBqQQhqKQIANwMAIAEgASkCmBA3A4AQAkAgAyAAEKqDgIAAQf//A3FFDQAgAUGAEGoQqYCAgAAMAgsgAUG0EGogAUGAEGoQqoCAgAAgAUGAEGoQqYCAgAAgAS8BvBANASABKAK4ECEDIAEoArQQIQALIAAgAxCAgICAACACQf//A3FFDQBBoOnJgAAgACADELaAgIAACyABQcAQaiSAgICAAAvIAgEDfyOAgICAAEHAEGsiASSAgICAACABQoAQNwKgECABQbC/x4AANgKYECABIAE2ApwQAkACQAJAIAFBmBBqIAAQqYOAgAAiAkH//wNxDQAgASgCnBAhACABKAKkECEDDAELIAFBmBBqQaDpyYAAQTQQqICAgAAgAS8BsBANASABQYAQakEQaiABQZgQakEQaikCADcDACABQYAQakEIaiIDIAFBmBBqQQhqKQIANwMAIAEgASkCmBA3A4AQAkAgAyAAEKmDgIAAQf//A3FFDQAgAUGAEGoQqYCAgAAMAgsgAUG0EGogAUGAEGoQqoCAgAAgAUGAEGoQqYCAgAAgAS8BvBANASABKAK4ECEDIAEoArQQIQALIAAgAxCAgICAACACQf//A3FFDQBBoOnJgAAgACADELaAgIAACyABQcAQaiSAgICAAAvIAgEDfyOAgICAAEHAEGsiASSAgICAACABQoAQNwKgECABQbC/x4AANgKYECABIAE2ApwQAkACQAJAIAFBmBBqIAAQq4OAgAAiAkH//wNxDQAgASgCnBAhACABKAKkECEDDAELIAFBmBBqQaDpyYAAQTAQqICAgAAgAS8BsBANASABQYAQakEQaiABQZgQakEQaikCADcDACABQYAQakEIaiIDIAFBmBBqQQhqKQIANwMAIAEgASkCmBA3A4AQAkAgAyAAEKuDgIAAQf//A3FFDQAgAUGAEGoQqYCAgAAMAgsgAUG0EGogAUGAEGoQqoCAgAAgAUGAEGoQqYCAgAAgAS8BvBANASABKAK4ECEDIAEoArQQIQALIAAgAxCAgICAACACQf//A3FFDQBBoOnJgAAgACADELaAgIAACyABQcAQaiSAgICAAAsuAQF/AkAgAEGH78mAAEEwEJqAgIAAIgJB//8DcQ0AIAAgARCmhICAACECCyACCy4BAX8CQCAAQd3uyYAAQSoQmoCAgAAiAkH//wNxDQAgACABEKaEgIAAIQILIAILLgEBfwJAIABBse7JgABBLBCagICAACICQf//A3ENACAAIAEQpoSAgAAhAgsgAgsuAQF/AkAgAEGJ7smAAEEoEJqAgIAAIgJB//8DcQ0AIAAgARCmhICAACECCyACCy4BAX8CQCAAQZfsyYAAQSIQmoCAgAAiAkH//wNxDQAgACABEKaEgIAAIQILIAILyAIBA38jgICAgABBwBBrIgEkgICAgAAgAUKAEDcCoBAgAUGwv8eAADYCmBAgASABNgKcEAJAAkACQCABQZgQaiAAEKeDgIAAIgJB//8DcQ0AIAEoApwQIQAgASgCpBAhAwwBCyABQZgQakGg6cmAAEE0EKiAgIAAIAEvAbAQDQEgAUGAEGpBEGogAUGYEGpBEGopAgA3AwAgAUGAEGpBCGoiAyABQZgQakEIaikCADcDACABIAEpApgQNwOAEAJAIAMgABCng4CAAEH//wNxRQ0AIAFBgBBqEKmAgIAADAILIAFBtBBqIAFBgBBqEKqAgIAAIAFBgBBqEKmAgIAAIAEvAbwQDQEgASgCuBAhAyABKAK0ECEACyAAIAMQgICAgAAgAkH//wNxRQ0AQaDpyYAAIAAgAxC2gICAAAsgAUHAEGokgICAgAALyAIBA38jgICAgABBwBBrIgEkgICAgAAgAUKAEDcCoBAgAUGwv8eAADYCmBAgASABNgKcEAJAAkACQCABQZgQaiAAEKiDgIAAIgJB//8DcQ0AIAEoApwQIQAgASgCpBAhAwwBCyABQZgQakGg6cmAAEEuEKiAgIAAIAEvAbAQDQEgAUGAEGpBEGogAUGYEGpBEGopAgA3AwAgAUGAEGpBCGoiAyABQZgQakEIaikCADcDACABIAEpApgQNwOAEAJAIAMgABCog4CAAEH//wNxRQ0AIAFBgBBqEKmAgIAADAILIAFBtBBqIAFBgBBqEKqAgIAAIAFBgBBqEKmAgIAAIAEvAbwQDQEgASgCuBAhAyABKAK0ECEACyAAIAMQgICAgAAgAkH//wNxRQ0AQaDpyYAAIAAgAxC2gICAAAsgAUHAEGokgICAgAALLgEBfwJAIABBxvDJgABBLRCagICAACICQf//A3ENACAAIAEQpoSAgAAhAgsgAgs9AQF/AkAgAEHJl8qAAEHCABCagICAACICQf//A3ENACAAIAEoAgAgASgCBEGMtcqAABChhICAACECCyACCy4BAX8CQCAAQaOXyoAAQSYQmoCAgAAiAkH//wNxDQAgACABEK6EgIAAIQILIAILPQEBfwJAIABB4ZbKgABBwgAQmoCAgAAiAkH//wNxDQAgACABKAIAIAEoAgRBjLXKgAAQoYSAgAAhAgsgAgsuAQF/AkAgAEG7lsqAAEEmEJqAgIAAIgJB//8DcQ0AIAAgARCuhICAACECCyACCz0BAX8CQCAAQfmVyoAAQcIAEJqAgIAAIgJB//8DcQ0AIAAgASgCACABKAIEQYy1yoAAEKGEgIAAIQILIAILLgEBfwJAIABBy5XKgABBLhCagICAACICQf//A3ENACAAIAEQroSAgAAhAgsgAgs9AQF/AkAgAEGJlcqAAEHCABCagICAACICQf//A3ENACAAIAEoAgAgASgCBEGMtcqAABChhICAACECCyACC8gCAQN/I4CAgIAAQcAQayIBJICAgIAAIAFCgBA3AqAQIAFBsL/HgAA2ApgQIAEgATYCnBACQAJAAkAgAUGYEGogABCvg4CAACICQf//A3ENACABKAKcECEAIAEoAqQQIQMMAQsgAUGYEGpBoOnJgABBLxCogICAACABLwGwEA0BIAFBgBBqQRBqIAFBmBBqQRBqKQIANwMAIAFBgBBqQQhqIgMgAUGYEGpBCGopAgA3AwAgASABKQKYEDcDgBACQCADIAAQr4OAgABB//8DcUUNACABQYAQahCpgICAAAwCCyABQbQQaiABQYAQahCqgICAACABQYAQahCpgICAACABLwG8EA0BIAEoArgQIQMgASgCtBAhAAsgACADEICAgIAAIAJB//8DcUUNAEGg6cmAACAAIAMQtoCAgAALIAFBwBBqJICAgIAAC8gCAQN/I4CAgIAAQcAQayIBJICAgIAAIAFCgBA3AqAQIAFBsL/HgAA2ApgQIAEgATYCnBACQAJAAkAgAUGYEGogABC9g4CAACICQf//A3ENACABKAKcECEAIAEoAqQQIQMMAQsgAUGYEGpBoOnJgABBMBCogICAACABLwGwEA0BIAFBgBBqQRBqIAFBmBBqQRBqKQIANwMAIAFBgBBqQQhqIgMgAUGYEGpBCGopAgA3AwAgASABKQKYEDcDgBACQCADIAAQvYOAgABB//8DcUUNACABQYAQahCpgICAAAwCCyABQbQQaiABQYAQahCqgICAACABQYAQahCpgICAACABLwG8EA0BIAEoArgQIQMgASgCtBAhAAsgACADEICAgIAAIAJB//8DcUUNAEGg6cmAACAAIAMQtoCAgAALIAFBwBBqJICAgIAACy4BAX8CQCAAQa2UyoAAQS8QmoCAgAAiAkH//wNxDQAgACABEK6EgIAAIQILIAILLgEBfwJAIABBh5TKgABBJhCagICAACICQf//A3ENACAAIAEQroSAgAAhAgsgAgsuAQF/AkAgAEHYk8qAAEEvEJqAgIAAIgJB//8DcQ0AIAAgARCuhICAACECCyACC8gCAQN/I4CAgIAAQcAQayIBJICAgIAAIAFCgBA3AqAQIAFBsL/HgAA2ApgQIAEgATYCnBACQAJAAkAgAUGYEGogABC4g4CAACICQf//A3ENACABKAKcECEAIAEoAqQQIQMMAQsgAUGYEGpBoOnJgABBNRCogICAACABLwGwEA0BIAFBgBBqQRBqIAFBmBBqQRBqKQIANwMAIAFBgBBqQQhqIgMgAUGYEGpBCGopAgA3AwAgASABKQKYEDcDgBACQCADIAAQuIOAgABB//8DcUUNACABQYAQahCpgICAAAwCCyABQbQQaiABQYAQahCqgICAACABQYAQahCpgICAACABLwG8EA0BIAEoArgQIQMgASgCtBAhAAsgACADEICAgIAAIAJB//8DcUUNAEGg6cmAACAAIAMQtoCAgAALIAFBwBBqJICAgIAACy4BAX8CQCAAQfGSyoAAQTQQmoCAgAAiAkH//wNxDQAgACABEK6EgIAAIQILIAILyAIBA38jgICAgABBwBBrIgEkgICAgAAgAUKAEDcCoBAgAUGwv8eAADYCmBAgASABNgKcEAJAAkACQCABQZgQaiAAELyDgIAAIgJB//8DcQ0AIAEoApwQIQAgASgCpBAhAwwBCyABQZgQakGg6cmAAEE2EKiAgIAAIAEvAbAQDQEgAUGAEGpBEGogAUGYEGpBEGopAgA3AwAgAUGAEGpBCGoiAyABQZgQakEIaikCADcDACABIAEpApgQNwOAEAJAIAMgABC8g4CAAEH//wNxRQ0AIAFBgBBqEKmAgIAADAILIAFBtBBqIAFBgBBqEKqAgIAAIAFBgBBqEKmAgIAAIAEvAbwQDQEgASgCuBAhAyABKAK0ECEACyAAIAMQgICAgAAgAkH//wNxRQ0AQaDpyYAAIAAgAxC2gICAAAsgAUHAEGokgICAgAALLwEBfwJAIABBr5LKgABBwgAQmoCAgAAiAkH//wNxDQAgACABEK6EgIAAIQILIAILLgEBfwJAIABB/ZHKgABBMhCagICAACICQf//A3ENACAAIAEQroSAgAAhAgsgAgsuAQF/AkAgAEG/kcqAAEE+EJqAgIAAIgJB//8DcQ0AIAAgARCuhICAACECCyACCy4BAX8CQCAAQZqPyoAAQToQmoCAgAAiAkH//wNxDQAgACABEK6EgIAAIQILIAILLgEBfwJAIABB1I/KgABBOhCagICAACICQf//A3ENACAAIAEQroSAgAAhAgsgAgsuAQF/AkAgAEGOkMqAAEE6EJqAgIAAIgJB//8DcQ0AIAAgARCuhICAACECCyACCy4BAX8CQCAAQciQyoAAQToQmoCAgAAiAkH//wNxDQAgACABEK6EgIAAIQILIAILyQIBA38jgICAgABBwBBrIgEkgICAgAAgAUKAEDcCoBAgAUGwv8eAADYCmBAgASABNgKcEAJAAkACQCABQZgQaiAAELuDgIAAIgJB//8DcQ0AIAEoApwQIQAgASgCpBAhAwwBCyABQZgQakGg6cmAAEHAABCogICAACABLwGwEA0BIAFBgBBqQRBqIAFBmBBqQRBqKQIANwMAIAFBgBBqQQhqIgMgAUGYEGpBCGopAgA3AwAgASABKQKYEDcDgBACQCADIAAQu4OAgABB//8DcUUNACABQYAQahCpgICAAAwCCyABQbQQaiABQYAQahCqgICAACABQYAQahCpgICAACABLwG8EA0BIAEoArgQIQMgASgCtBAhAAsgACADEICAgIAAIAJB//8DcUUNAEGg6cmAACAAIAMQtoCAgAALIAFBwBBqJICAgIAAC8kCAQN/I4CAgIAAQcAQayIBJICAgIAAIAFCgBA3AqAQIAFBsL/HgAA2ApgQIAEgATYCnBACQAJAAkAgAUGYEGogABC5g4CAACICQf//A3ENACABKAKcECEAIAEoAqQQIQMMAQsgAUGYEGpBoOnJgABBxQAQqICAgAAgAS8BsBANASABQYAQakEQaiABQZgQakEQaikCADcDACABQYAQakEIaiIDIAFBmBBqQQhqKQIANwMAIAEgASkCmBA3A4AQAkAgAyAAELmDgIAAQf//A3FFDQAgAUGAEGoQqYCAgAAMAgsgAUG0EGogAUGAEGoQqoCAgAAgAUGAEGoQqYCAgAAgAS8BvBANASABKAK4ECEDIAEoArQQIQALIAAgAxCAgICAACACQf//A3FFDQBBoOnJgAAgACADELaAgIAACyABQcAQaiSAgICAAAs3AQF/AkAgAEHAjsqAAEEqEJqAgIAAIgJB//8DcQ0AIABBjLXKgAAgAS8BABCPg4CAACECCyACC8gCAQN/I4CAgIAAQcAQayIBJICAgIAAIAFCgBA3AqAQIAFBsL/HgAA2ApgQIAEgATYCnBACQAJAAkAgAUGYEGogABC6g4CAACICQf//A3ENACABKAKcECEAIAEoAqQQIQMMAQsgAUGYEGpBoOnJgABBMxCogICAACABLwGwEA0BIAFBgBBqQRBqIAFBmBBqQRBqKQIANwMAIAFBgBBqQQhqIgMgAUGYEGpBCGopAgA3AwAgASABKQKYEDcDgBACQCADIAAQuoOAgABB//8DcUUNACABQYAQahCpgICAAAwCCyABQbQQaiABQYAQahCqgICAACABQYAQahCpgICAACABLwG8EA0BIAEoArgQIQMgASgCtBAhAAsgACADEICAgIAAIAJB//8DcUUNAEGg6cmAACAAIAMQtoCAgAALIAFBwBBqJICAgIAACy4BAX8CQCAAQZaOyoAAQSoQmoCAgAAiAkH//wNxDQAgACABEK6EgIAAIQILIAILNwEBfwJAIABB9YzKgABBLRCagICAACICQf//A3ENACAAQYy1yoAAIAEvAQAQj4OAgAAhAgsgAgsuAQF/AkAgAEHLjMqAAEEqEJqAgIAAIgJB//8DcQ0AIAAgARCuhICAACECCyACC8kCAQN/I4CAgIAAQcAQayIBJICAgIAAIAFCgBA3AqAQIAFBsL/HgAA2ApgQIAEgATYCnBACQAJAAkAgAUGYEGogABC3g4CAACICQf//A3ENACABKAKcECEAIAEoAqQQIQMMAQsgAUGYEGpBoOnJgABBxQAQqICAgAAgAS8BsBANASABQYAQakEQaiABQZgQakEQaikCADcDACABQYAQakEIaiIDIAFBmBBqQQhqKQIANwMAIAEgASkCmBA3A4AQ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gAAhAgsgAgsuAQF/AkAgAEH1+smAAEElEJqAgIAAIgJB//8DcQ0AIAAgARCuhICAACECCyACC8gCAQN/I4CAgIAAQcAQayIBJICAgIAAIAFCgBA3AqAQIAFBsL/HgAA2ApgQIAEgATYCnBACQAJAAkAgAUGYEGogABCxg4CAACICQf//A3ENACABKAKcECEAIAEoAqQQIQMMAQsgAUGYEGpBoOnJgABBMBCogICAACABLwGwEA0BIAFBgBBqQRBqIAFBmBBqQRBqKQIANwMAIAFBgBBqQQhqIgMgAUGYEGpBCGopAgA3AwAgASABKQKYEDcDgBACQCADIAAQsYOAgABB//8DcUUNACABQYAQahCpgICAAAwCCyABQbQQaiABQYAQahCqgICAACABQYAQahCpgICAACABLwG8EA0BIAEoArgQIQMgASgCtBAhAAsgACADEICAgIAAIAJB//8DcUUNAEGg6cmAACAAIAMQtoCAgAALIAFBwBBqJICAgIAAC8gCAQN/I4CAgIAAQcAQayIBJICAgIAAIAFCgBA3AqAQIAFBsL/HgAA2ApgQIAEgATYCnBACQAJAAkAgAUGYEGogABCwg4CAACICQf//A3ENACABKAKcECEAIAEoAqQQIQMMAQsgAUGYEGpBoOnJgABBMxCogICAACABLwGwEA0BIAFBgBBqQRBqIAFBmBBqQRBqKQIANwMAIAFBgBBqQQhqIgMgAUGYEGpBCGopAgA3AwAgASABKQKYEDcDgBACQCADIAAQsIOAgABB//8DcUUNACABQYAQahCpgICAAAwCCyABQbQQaiABQYAQahCqgICAACABQYAQahCpgICAACABLwG8EA0BIAEoArgQIQMgASgCtBAhAAsgACADEICAgIAAIAJB//8DcUUNAEGg6cmAACAAIAMQtoCAgAALIAFBwBBqJICAgIAACy4BAX8CQCAAQaX5yYAAQTEQmoCAgAAiAkH//wNxDQAgACABEK6EgIAAIQILIAILyAIBA38jgICAgABBwBBrIgEkgICAgAAgAUKAEDcCoBAgAUGwv8eAADYCmBAgASABNgKcEAJAAkACQCABQZgQaiAAEK6DgIAAIgJB//8DcQ0AIAEoApwQIQAgASgCpBAhAwwBCyABQZgQakGg6cmAAEExEKiAgIAAIAEvAbAQDQEgAUGAEGpBEGogAUGYEGpBEGopAgA3AwAgAUGAEGpBCGoiAyABQZgQakEIaikCADcDACABIAEpApgQNwOAEAJAIAMgABCug4CAAEH//wNxRQ0AIAFBgBBqEKmAgIAADAILIAFBtBBqIAFBgBBqEKqAgIAAIAFBgBBqEKmAgIAAIAEvAbwQDQEgASgCuBAhAyABKAK0ECEACyAAIAMQgICAgAAgAkH//wNxRQ0AQaDpyYAAIAAgAxC2gICAAAsgAUHAEGokgICAgAALLgEBfwJAIABBhPfJgABBLxCagICAACICQf//A3ENACAAIAEQroSAgAAhAgsgAgu7AQECfwJAIABB6OvJgABBLxCagICAACICQf//A3ENACABKAIEIQMgASgCACEBIABB7OrAgABBAhCagICAACICQf//A3ENAANAAkACQCADRQ0AIAAgAS0AAEEKQQBBjLXKgAAQ5oOAgAAiAkH//wNxDQMgA0EBRg0BIABB8+rAgABBAhCagICAACICQf//A3FFDQEMAwsgAEGjksCAAEECEJqAgIAADwsgAUEBaiEBIANBf2ohAwwACwsgAgsuAQF/AkAgAEG57MmAAEErEJqAgIAAIgJB//8DcQ0AIAAgARCmhICAACECCyACCy4BAX8CQCAAQbfvyYAAQTEQmoCAgAAiAkH//wNxDQAgACABEKaEgIAAIQILIAILLgEBfwJAIABB6O/JgABBMRCagICAACICQf//A3ENACAAIAEQpoSAgAAhAgsgAgsuAQF/AkAgAEGZ8MmAAEEtEJqAgIAAIgJB//8DcQ0AIAAgARCmhICAACECCyACCy4BAX8CQCAAQZvzyYAAQSgQmoCAgAAiAkH//wNxDQAgACABEKaEgIAAIQILIAILNwEBfwJAIABBw/PJgABBMxCagICAACICQf//A3ENACAAQYy1yoAAIAEtAAAQqISAgAAhAgsgAgsuAQF/AkAgAEGU9smAAEEuEJqAgIAAIgJB//8DcQ0AIAAgARCuhICAACECCyACCy4BAX8CQCAAQfX3yYAAQSwQmoCAgAAiAkH//wNxDQAgACABEK6EgIAAIQILIAILLgEBfwJAIABBmPrJgABBMBCagICAACICQf//A3ENACAAIAEQroSAgAAhAgsgAgsuAQF/AkAgAEHI+smAAEEtEJqAgIAAIgJB//8DcQ0AIAAgARCuhICAACECCyACCy4BAX8CQCAAQZf/yYAAQTQQmoCAgAAiAkH//wNxDQAgACABEK6EgIAAIQILIAILLgEBfwJAIABB7obKgABBKxCagICAACICQf//A3ENACAAIAEQroSAgAAhAgsgAgs3AQF/AkAgAEGZh8qAAEElEJqAgIAAIgJB//8DcQ0AIABBjLXKgAAgAS8BABCPg4CAACECCyACCy4BAX8CQCAAQb6HyoAAQS0QmoCAgAAiAkH//wNxDQAgACABEK6EgIAAIQILIAILLgEBfwJAIABB34jKgABBNxCagICAACICQf//A3ENACAAIAEQroSAgAAhAgsgAgs9AQF/AkAgAEGKisqAAEHCABCagICAACICQf//A3ENACAAIAEoAgAgASgCBEGMtcqAABChhICAACECCyACCy4BAX8CQCAAQaKNyoAAQTIQmoCAgAAiAkH//wNxDQAgACABEK6EgIAAIQILIAILLwEBfwJAIABB1I3KgABBwgAQmoCAgAAiAkH//wNxDQAgACABEK6EgIAAIQILIAILLgEBfwJAIABB6o7KgABBMBCagICAACICQf//A3ENACAAIAEQroSAgAAhAgsgAgsuAQF/AkAgAEGCkcqAAEE9EJqAgIAAIgJB//8DcQ0AIAAgARCuhICAACECCyACCy4BAX8CQCAAQaWTyoAAQTMQmoCAgAAiAkH//wNxDQAgACABEK6EgIAAIQILIAILLgEBfwJAIABB3JTKgABBLRCagICAACICQf//A3ENACAAIAEQroSAgAAhAgsgAgvdCQMCfwJ+CH8jgICAgABBIGsiAySAgICAAAJAIABFDQAgAEHAG2ohBEEAKQPotceAACIFQoCAgIDwH4MhBiAFpyEHIABB4ixqIQggAEHSG2ohCQNAIAJFDQEgAS0AACEKAkACQAJAAkACQCAALQDWLEEPcQ0AIApB+rLHgABqLQAAIQsgAC0A5CwiDEUNASAILQAAQRZ0IAAvAeAsQQZ0ciAKQT9xciENDAILIAQgChC5goCAACENDAILQf8BIAtBD3F2IApxIQ0LIAAgDTsB4CwgCCANQYCA/ABxQRB2OgAAIAAgDCALQQ9xIg5qQf8BcUH6tMeAAGotAAAiCzoA5CwCQAJAAkACQAJAAkACQAJAIAtFDQAgC0EMRg0BIANBADoABiADQQA7AQQMCQsgAEEAOwHgLCAIQQA6AAAgAyANOwEEIAMgDTsBACADIA1BEHZBH3EiDToABiADIA06AAJBASEMDAELIABBADsB4CwgAEEAOgDkLCAIQQA6AAAgAyAHOwEEIAMgB0EQdjoABiAGUA0BIAxFIQwLAkAgAy8BBCADLQAGQRB0ciILQRBPDQBBACENAkBBAA0AAkACQAJAAkACQAJAIAtBD3EOEAoKCgYGCgYKAAEFBQUCAwQKCyAEEI+CgIAADAkLIARBARCSgoCAAAwICyAEEJOCgIAADAcLIARB8LXHgAAQ/IGAgAAMBgsgBEH8tceAABD8gYCAAAwFCyAEEJSCgIAAIQ0MBAsgAyALOgALIANBC2oQuoKAgAAMAwsgC0EbRg0BIAMgCzsBDCADIAtBEHY6AA4gBCADQQxqEKSCgIAAIQ0MAgsgDA0CDAULQQAhDSAAQQA7AdAbIABBADsA2ywgAEEBOgDWLCAAQQA6AN0sIABBADsB1CwgCUEAOgAACyANQf//A3FBAEcgDHINAiAALQDkLCINRQ0AIAgtAABBFnQgAC8B4CxBBnRyIApBP3FyIQoMAQtB/wEgDnYgCnEhCkEAIQ0LIAAgCjsB4CwgCCAKQYCA/ABxQRB2OgAAIAAgDSAOakH/AXFB+rTHgABqLQAAIg06AOQsAkACQCANRQ0AAkAgDUEMRw0AIABBADsB4CwgAEEAOgDkLCAIQQA6AAAgAyAHOwEUIAMgB0EQdjoAFiAGUEUNAgwECyADQQA6ABYgA0EAOwEUDAMLIABBADsB4CwgCEEAOgAAIAMgCjsBFCADIAo7ARAgAyAKQRB2QR9xIgo6ABYgAyAKOgASCwJAIAMvARQgAy0AFkEQdHIiCkEPSw0AAkBBAA0AAkACQAJAAkACQAJAIApBD3EOEAkJCQYGCQYJAAEFBQUCAwQJCyAEEI+CgIAADAgLIARBARCSgoCAAAwHCyAEEJOCgIAADAYLIARB8LXHgAAQ/IGAgAAMBQsgBEH8tceAABD8gYCAAAwECyAEEJSCgIAAIQ0MAgsgAyAKOgAbIANBG2oQuoKAgAAMAgsCQCAKQRtGDQAgAyAKOwEcIAMgCkEQdjoAHiAEIANBHGoQpIKAgAAhDQwBCyAAQQA7AdAbIABBADsA2ywgAEEBOgDWLCAAQQA6AN0sIABBADsB1CwgCUEAOgAADAELIA1B//8DcQ0CCyABQQFqIQEgAkF/aiECDAALCyADQSBqJICAgIAAC7E3Awh/An4afyOAgICAAEHwA2siASSAgICAAEECIQICQCAARQ0AQQEhAyAALQD0LCEEIAAgAC0AKCIFQQFxOgD0LAJAIAQgBXMiBkEBcUUNACAAQYASaiIEIABBqBtqEI6BgIAAQagJRQ0AIARBiLbHgABBqAn8CgAACyABQQhqIAAoAhgiB0EBELuBgIAAIAAvAewRIABB7hFqLQAAQRB0ciEEAkAgAC0ApRsgAC0AKHNBAXENACAEQf//D3FBgIABTw0AIAAoAhgtAOsCQQNxDQAgAC8BoBsgBy8BigFHDQAgAC8BohsgBy8BiAFHDQACQCAALQDgGg0AQQAhAwwBCyAAKALUGiABKAIIRw0AIAAvAdgaQf//A3EgAS8BDEH//wNxRw0AIAAvAdoaQf//A3EgAS8BDkchAwsgACAHLwGKASIFOwGgGyAHLwGIASEIIAAgASkDCDcC1BogACAIOwGiGyAAQdwaaiABQRBqKAIANgIAIABBAToA4BogACAHLwHIATsBjBIgACAHLwHKATYCiBIgACAHKALEASkDADcDgBIgACAHKQKYATcCkBIgAEGYEmogB0GgAWopAgA3AgAgAEGgEmogB0GoAWopAgA3AgAgAEGoEmogB0GwAWooAgA2AgAgBy0A0AEhCCAAIARBC3ZBAXE6ALUSIAAgCEEDcToAtBIgAEIANwKsEiAAIAA1AgAiCaciBEEMdkEBcToAtxIgACAEQQ12QQFxOgC2EiAAQQRqIQQCQAJAIAAtALQBRQ0AIAFBAToAvAMgASAALwGwATsBuAMgASAAQbIBai0AADoAugMgAUG4A2ohCAwBCyAAQbgBaiEICyAEMQAAIQogACAIKQIANwPAEgJAQYAIRQ0AIABByBJqIABBwAFqQYAI/AoAAAsgCkIghiEKAkACQCAALQCUAUUNACABQQE6ALwDIAEgAC8BkAE7AbgDIAEgAEGSAWotAAA6ALoDIAFBuANqIQQMAQsgAEGYAWohBAsgCSAKhCEJQQAgBCkCACIKpyAKQoCAgIDwH4NQGyEEAkACQCAALQCkAUUNACABQQE6ALwDIAEgAC8BoAE7AbgDIAEgAEGiAWotAAA6ALoDIAFBuANqIQgMAQsgAEGoAWohCAsgAEGoG2ohCyAAQcyZs34gCCkCACIKpyAKQoCAgIDwH4NQGyIIIAQgCUKAAYNQIgwbIg07AbwSIAAgBCAIIAwbIgQ7AbgSIABBvhJqIA1BEHY6AAAgAEG6EmogBEEQdjoAACAAQcgaaiEEAkAgACgCzBoiCCAFRg0AAkACQCAIIAVPDQAgACgC0BoiDCAFTw0BA0BBfyAMQQF2IAxqQQVqIg0gDSAMSRsiDCAFSQ0ACyABIAspAgAiCTcD+AIgAUGEA2ogAUH4AmogDEE7bBDogICAACABLwGMAw0DIAlCIIinIQ4gCachDyABKAKEAyENAkAgACgCzBoiEA0AAkAgACgC0BoiEEUNACAPIAQoAgAgEEE7bEEDQQAgDigCDBGBgICAAICAgIAACyAAIAw2AtAaIAAgDTYCyBoMAgsgASAMNgLoAyABIBA2AuQDIAEgDTYC4AMgAUGQA2ogBBCQgYCAACABKAKwAyENIAEoApADIREgASgCqAMhEiABKAKkAyETIAEoAqADIRQgASgCnAMhFSABKAKYAyEWIAEoApQDIRcgAUG4A2ogAUHgA2oQkIGAgAAgASgC0AMhGCABKALMAyEZIAEoAsgDIRogASgCxAMhGyABKALAAyEcIAEoArwDIR0CQCABKALUAyIQQQN0QQAgASgC2AMiDBsiHkUiHw0AIAEoArgDQarVqtV6IAwbIBFBqtWq1XogDRsgHvwKAAALAkAgEEEMbEEAIAwbIiBFIhENACAdQarVqtV6IAwbIBdBqtWq1XogDRsgIPwKAAALAkAgHw0AIBxBqtWq1XogDBsgFkGq1arVeiANGyAe/AoAAAsCQCARDQAgG0Gq1arVeiAMGyAVQarVqtV6IA0bICD8CgAACwJAIBBBACAMGyIeRQ0AIBpBqtWq1XogDBsgFEGq1arVeiANGyAe/AoAAAsCQCAQQQZsQQAgDBsiEEUNACAZQarVqtV6IAwbIBNBqtWq1XogDRsgEPwKAAALAkAgEQ0AIBhBqtWq1XogDBsgEkGq1arVeiANGyAg/AoAAAsCQCAAKALQGiIMRQ0AIA8gBCgCACAMQTtsQQNBACAOKAIMEYGAgIAAgICAgAALIAQgASkC4AM3AgAgBEEIaiABQeADakEIaigCADYCAAwBCyABQTxqIAQQkIGAgAACQCABKAJcIgxFDQAgASgCSEGq1arVeiAMGyAFQQxsaiEIIAEoAjxBqtWq1XogDBsgBUEDdGohDCABKAJYIAVrIQUCQANAIAVFDQEgASAMKQIANwNoIAEgCykCADcDYCABQeAAahD7gICAACAIIAsQkYGAgAAgDEEIaiEMIAhBDGohCCAFQX9qIQUMAAsLIAAvAaAbIQULIAAgBTYCzBoMAQsgACAFNgLMGiABQRhqIAQQkIGAgAAgCEEGbCEQIAhBA3QhESAIQQxsIQwgAC8BoBshHyABKAI4IRIgASgCMCETIAEoAiwhFCABKAIoIRUgASgCJCEWIAEoAhwhFyABKAIYIRggCCEFQQAhDgNAIB8gBUYNAQJAAkAgEg0AQarVqtV6IQ8gEUGq1arVempCADcCACAMQarVqtV6aiINQQhqQQAoAtjTx4AANgIAIA1BACkD0NPHgAA3AgBBqtWq1XohIEGq1arVeiEeDAELIBggEWpCADcCACAXIAxqIg1BCGpBACgC2NPHgAA2AgAgDUEAKQPQ08eAADcCACAWIA4gCGpBDGxqIQ0gFSEPIBQhICATIR4LIA1BCGpBACgC5NPHgAA2AgAgDUEAKQLc08eAADcCACAPIAVqQQE6AAAgICAQaiINQQRqQQAvAfjTx4AAOwEAIA1BACgC9NPHgAA2AQAgHiAMaiINQQApA+jTx4AANwIAIA1BCGpBACgC8NPHgAA2AgAgBUEBaiEFIBBBBmohECARQQhqIREgDEEMaiEMIA5BAWohDgwACwsgAUHwAGogBBCQgYCAAAJAAkAgASgCkAENAEGq1arVeiEbQarVqtV6IRVBACEhQarVqtV6IRNBqtWq1XohFkGq1arVeiEXQarVqtV6IRpBqtWq1XohGAwBCyABKAKMASEhIAEoAoABIRggASgCcCEWIAEoAnQhEyABKAJ4IRcgASgCfCEVIAEoAoQBIRogASgCiAEhGwsgAUGUAWogB0GA1MeAAEGM1MeAABDMgYCAAEHcpsiAAK1CIIYgAUHYAWqthCEKQQAhIEEAIRJBACEQA0AgAUHIAWogAUGUAWoQt4GAgAACQAJAAkACQAJAAkACQAJAAkAgAS0A1AFFDQAgAS8BzAEhBSABKALIASERIAAtALISRQ0BDAgLIActALwCRQ0FIAAtAJwbRSADckEBcUUNAQwDCyARIAcoArwBIgQoAgBHDQYgBSAELwEERw0GIAAgIDsBrhIgAEEBOgCyEiAAIAcvAcgBIgQ7AawSAkAgBA0AQQAhBAwCCyAHKALEAUF4aikDAEKAgICAgIADg0KAgICAgIABUSEEDAELIActALQCIQwgBy8BrgIhFSAHLwGsAiEWIAcoAqgCIR8gBy8BogIhDSAHLwGgAiERIAcoApwCIQUgAC8B9hohFyAALwH0GiEYIAAoAvAaIQsgACgC5BohBCAALQD8GiEIIAAvAeoaIQ4gASAALwHoGiIZOwG4AyABIA47AZADIAQhDwJAIAhBAXFFDQAgBCgCACEPCyAEQQZqIAFBkANqIAhBAXEiIBsvAQAhFCAEQQRqIAFBuANqICAbLwEAIR4gASAROwG4AyABIA07AZADIAUhIAJAIAxBAXEiBEUNACAFKAIAISALIA8gIEcNASAeQf//A3EgBUEEaiABQbgDaiAEGy8BAEH//wNxRw0BIBRB//8DcSAFQQZqIAFBkANqIAQbLwEAQf//A3FHDQEgASAYOwG4AyABIBc7AZADIA5BEHQgGXIhBAJAIAhBAXEiBUUNACAEKAIAIQsLIARBBmogAUGQA2ogBRsvAQAhCCAEQQRqIAFBuANqIAUbLwEAIQUgASAWOwG4AyABIBU7AZADIA1BEHQgEXIhBAJAIAxBAXFFDQAgBCgCACEfCyALIB9HDQEgBUH//wNxIARBBGogAUG4A2ogDEEBcSIFGy8BAEH//wNxRw0BIAhB//8DcSAEQQZqIAFBkANqIAUbLwEAQf//A3FHDQEgAC0AgBsgBy0AuAJHDQEgEEEBcSEEQQEhECAERQ0EDAILIAAgBDoAsBIMBAsgAUG4A2pBGGoiBSAHQZwCaiIEQRhqKQIANwMAIAFBuANqQRBqIgggBEEQaikCADcDACABQbgDakEIaiIMIARBCGopAgA3AwAgASAEKQIANwO4AwJAAkACQAJAAkAgAUG4A2ogBxDAg4CAAEEDcQ4EAAECAwALIAFBkANqQRhqIAUoAgAiBTYCACABQZADakEQaiAIKQMANwMAIAFBkANqQQhqIAwpAwA3AwAgASABKQO4AyIJNwOQAyABQeADakEIaiAJpyABQZADaiAFQQFxGyIFQQhqKAIANgIAIAEgBSkCADcD4AMgAUHgA2ohCAwDCyABQZADakEYaiAFKAIAIgU2AgAgAUGQA2pBEGogCCkDADcDACABQZADakEIaiAMKQMANwMAIAEgASkDuAM3A5ADIAFB4ANqQQhqIAEoApQDIAFBnANqIAVBAXEbIgVBCGooAgA2AgAgASAFKQIANwPgAyABQeADaiEIDAILIAFBkANqQRhqIAUoAgAiDTYCACABQZADakEQaiAIKQMANwMAIAFBkANqQQhqIAwpAwA3AwAgASABKQO4AyIJNwOQAyABQeADakEIaiAJpyABQZADaiANQQFxGyIIQQhqKAIANgIAIAEgCCkCADcD4AMgASABLwHKAzsBkAMgASABKAK8A0EGaiABQZADaiAFLQAAQQFxGy8BADsB5gMgAUHgA2ohCAwBCyABQZADakEYaiAFKAIAIg02AgAgAUGQA2pBEGogCCkDADcDACABQZADakEIaiAMKQMANwMAIAEgASkDuAM3A5ADIAFB4ANqQQhqIAEoApQDIAFBnANqIA1BAXEbIghBCGooAgA2AgAgASAIKQIANwPgAyABIAEvAb4DOwGQAyABIAEoArgDQQZqIAFBkANqIAUtAABBAXEbLwEAOwHmAyABQeADaiEICyAAQeQaaiEFIAFB+AFqQQhqIAhBCGooAgA2AgAgASAIKQIANwP4ASABQbgDakEYaiIIIARBGGopAgA3AwAgAUG4A2pBEGoiDCAEQRBqKQIANwMAIAFBuANqQQhqIg0gBEEIaikCADcDACABIAQpAgA3A7gDAkACQAJAAkACQCABQbgDaiAHEMCDgIAAQQNxDgQAAQIDAAsgAUGQA2pBGGogCCgCACIENgIAIAFBkANqQRBqIAwpAwA3AwAgAUGQA2pBCGogDSkDADcDACABIAEpA7gDNwOQAyABQeADakEIaiABKAKUAyABQZwDaiAEQQFxGyIEQQhqKAIANgIAIAEgBCkCADcD4AMgAUHgA2ohBAwDCyABQZADakEYaiAIKAIAIgQ2AgAgAUGQA2pBEGogDCkDADcDACABQZADakEIaiANKQMANwMAIAEgASkDuAMiCTcDkAMgAUHgA2pBCGogCacgAUGQA2ogBEEBcRsiBEEIaigCADYCACABIAQpAgA3A+ADIAFB4ANqIQQMAgsgAUGQA2pBGGogCCgCACIENgIAIAFBkANqQRBqIAwpAwA3AwAgAUGQA2pBCGogDSkDADcD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AkEIaiIHIABBCGoiCCkCADcDACACIAApAgA3AwAgAkHgAGpBGGoiCSAEKAIAIgo2AgAgAkHgAGpBEGoiCyAGKQIANwMAIAJB4ABqQQhqIgwgCCkCADcDACACIAApAgAiDTcDYEEBIQQgAkEgakEIaiANpyACQeAAaiAKQQFxGyIGQQhqKAIANgIAIAIgBikCADcDICACQTBqIAFBAiACQSBqEM2BgIAAIAIvATQhCCACKAIwIQYgCSADKAIAIgM2AgAgCyAFKQMANwMAIAwgBykDADcDACACIAIpAwA3A2AgAkHAAGpBCGogAigCZCACQewAaiADQQFxGyIDQQhqKAIANgIAIAIgAykCADcDQCACQdAAaiABQQIgAkHAAGoQzYGAgAAgAi8BVCEDIAIoAlAhAQJAAkACQAJAIAAtABxFDQACQCAGIAFNIgANACAIQf//A3EgA0H//wNxTw0ECwJAIAYgAUkiAQ0AIAhB//8DcSADQf//A3FLDQQLIAANASAIQf//A3EgA0H//wNxTw0BQQMhBAwDCyAGIAFPDQFBACEEDAILQX5BACAIQf//A3EgA0H//wNxSxtBACABGyEEDAELAkAgBiABTQ0AQQEhBAwBCyAIQf//A3EgA0H//wNxSyEECyACQYABaiSAgICAACAEC5sBAgJ/AX4jgICAgABBEGsiAySAgICAACABKAIEIQQgASgCACEBIAMgAkH/////A0s6AAwCQAJAIAJBgICAgARJDQBCgICAgBAhBQwBCwJAIAJBAnQiAg0AQvz///8PIQUMAQsgASACQQJBACAEKAIAEYCAgIAAgICAgAAiAkWtQiCGIAKthCEFCyAAIAU3AgAgA0EQaiSAgICAAAsSAAJAIAANAEEADwsgAC8BohsLEgACQCAADQBBAA8LIAAvAaAbCxIAAkAgAA0AQQAPCyAALwGMEgsSAAJAIAANAEEADwsgACgCiBILHwACQAJAIAANAEEAIQAMAQsgAC0AthIhAAsgAEEBcQsxAQF/AkAgAA0AQQAPCyAALwG4EiIBQRB0IAFBgP4DcXIgAEG6EmotAAByQf///wdxCzQBAX8CQCAADQBBzJmzBg8LIAAvAbwSIgFBEHQgAUGA/gNxciAAQb4Sai0AAHJB////B3ELhgEBA38jgICAgABBEGsiAiSAgICAAEEBIQMCQCAA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ARCxgICAAEEBcUUNAiAEQTBqIARBCGogARD7g4CAACAELwE0IgJFDQEgACACOwEkDAULIABBADsBJEEkRQ0EIAAgBEEIakEk/AoAAAwECyAEKAIwIgJBAToACCACQQI6AAAgAiAELQAvIgVBH3E6AAEMAQsgBEE4aiACIAUQ8oOAgAACQCAELwE8RQ0AIABBADsBJEEkRQ0DIAAgBEEIakEk/AoAAAwDCyAELwE4IQUgBC0AOiEGIARBwABqIARBCGogARD7g4CAAAJAIAQvAUQiAkUNACAAIAI7ASQMAwsgBCgCQCICIAUgBkEQdHIiBTsBACACQQA6AAggAkECOgAEIAJBAmogBUEQdjoAACACIAQtAC8iBUEfcToABQsgBUEBaiEGQXYhAgJAAkADQCACRQ0BIAJBqrXKgABqIQUgAkEBaiECIAZBH3EiByAFLQAAQR9xRw0ACyAEQQE6AEwgBCAHOgBLIARBywBqIQIMAQtBqOnJgAAhAgsgAi8AACICQYACTw0ACyAAQQA7ASRBJEUNACAAIARBCGpBJPwKAAALIARB0ABqJICAgIAAC90BAQF/I4CAgIAAQcAAayIEJICAgIAAAkBBJEUNACAEQRRqQaiUyYAAQST8CgAACyAEQQhqIAMQ+IOAgAACQAJAIAQoAghFDQAgAEEAOwEkQSRFDQEgAEGolMmAAEEk/AoAAAwBCyAEQThqIARBFGogARD7g4CAAAJAIAQvATwiA0UNACAEQRRqIAEQwoCAgAAgACADOwEkDAELIAQoAjgiA0ECOgAIIANBAjoAACAAQQA7ASQgAyACQR9xOgABQSRFDQAgACAEQRRqQST8CgAACyAEQcAAaiSAgICAAAtYAAJAIAMgAkkNACAAQgA3AgAPCyAEQf8BcSEEAkADQCACIANGDQECQCABIANqLQAAIARHDQAgAEEBOgAEIAAgAzYCAA8LIANBAWohAwwACwsgAEIANwIAC3kCAX8BfiOAgICAAEEQayIDJICAgIAAAkACQEEBDQBCgICAgBAhBAwBCwJAIAINAEL/////DyEEDAELIAEoAgAgAkEAQQAgASgCBCgCABGAgICAAICAgIAAIgJFrUIghiACrYQhBAsgACAENwIAIANBEGokgICAgAALewECfyOAgICAAEEgayIEJICAgIAAIAQgASkCADcDCCAEQRRqIARBCGogAxCIgYCAAAJAIAQvARwiBQ0AIAQoAhQhAQJAIAQoAhgiA0UNACABIAIgA/wKAAALIAAgAzYCBCAAIAE2AgALIAAgBTsBCCAEQSBqJICAgIAAC5oGAgd/A34jgICAgABBoAFrIgIkgICAgAACQCAAKAIEIgMNACAAKAIAIQMLIAEoAhAhBCABKAIMIQUgAS0ACCEGIAEoAgQhByABKAIAIQggAygCACEAIAJBOGpCADcDACACQgA3AzAgAkKsmuLTo9Lw+h83A1AgAkKsmuLTo9Lw+h83A0ggAkKsmuLTo9Lw+h83A0ACQEE4RQ0AIAJB2ABqQfjqyYAAQTj8CgAACyACIAZBAXEiAToAYCACQoGAgIAQNwNYIAIgAToAkAECQAJAIAFFDQAgAiAINgBhIAJChYCAgNAANwNYDAELIAJBMGogCCAAaiAHEJ+EgIAACyACQeAAaiEGIAJBMGogACAFaiAEEJ+EgIAAIAIpA0AhCSACKAJcIQACQAJAAkACQAJAAkAgAigCWCIFQRBLDQAgAEEDTQ0BIAI1AmBCIIYgBiAAQQF2QQxxIgFqNQIAhCEKIAYgAEF8aiIAajUAAEIghiAGIAAgAWtqNQAAhCELDAULIAIpA1AhCiACKQNIIQtBACEBIABBEEkNAUEAIQMgACEIDAILQgAhCyAADQJCACEKDAMLQRAhCAJAQRAgAGsiA0UNACACQZABaiAGIABqQSBqIAP8CgAACwJAIABFDQAgAkGQAWogA2ogBiAA/AoAAAsgAkGQAWohBgsgBiADaiEEIAggA2shAyALIAqFIAmFIQkCQANAIAFBEGoiACADTw0BIAJBIGogBCABaiIBQQhqKQAAIAmFQgAgASkAAELb0dCFmtrfgWeFQgAQxYSAgAAgAikDKCACKQMghSEJIAAhAQwACwsgBiAIaiIBQXhqKQAAIQsgAUFwaikAACEKDAELIAYgAEEBdmoxAABCCIYgAjEAYEIQhoQgBiAAakF/ajEAAIQhCgsgAkEQaiAKQtvR0IWa2t+BZ4VCACALIAmFQgAQxYSAgAAgAiACKQMYQtvR0IWa2t+BZ4VCACAFrSACKQMQhUKvyPXFx6yHu6B/hUIAEMWEgIAAIAIpAwAhCSACKQMIIQogAkGgAWokgICAgAAgCiAJhQsyAQF/AkAgAEH3r8qAAEHBABCagICAACICQf//A3ENACAAIAEvAQAQpYSAgAAhAgsgAgsxAQF/AkAgAEHosMqAAEEwEJqAgIAAIgJB//8DcQ0AIAAgAS8BABClhICAACECCyACCzEBAX8CQCAAQZixyoAAQTAQmoCAgAAiAkH//wNxDQAgACABLwEAEKWEgIAAIQILIAILMwEBfyAAQQhqIQBBACEBAkADQCAAKAIAIgBFDQEgASAAQXxqKAIAakF4aiEBDAALCyABC4IBAQF/I4CAgIAAQRBrIgMkgICAgAACQAJAIAJBe2pBfE8NACAAQSo2AQAMAQsgA0EMaiABIAJBEBDIgICAAAJAIAMvAQ4NACAAQQA7AQAgACADLwEMQf8BbCACQQJ0QeS7yoAAaigCAG46AAIMAQsgAEEqNgEACyADQRBqJICAgIAAC9siCgR/AX4CfwF+An8BfgJ/AXwBfgN/I4CAgIAAQYAHayIDJICAgIAAAkACQAJAAkACQAJAAkAgAkUNACACIAEtAAAiBEFVakH9AXFFIgVGDQAgASAFaiEGAkACQAJAAkACQAJAIAIgBWsiBUECSQ0AIAYtAABBMEcNACAGLQABIgJBv39qQf8BcUEaSUEFdCACckH/AXFB+ABHDQBCACEHIANCADcC7AYgAyAFQX5qNgLoBkECIQggAyAGQQJqNgLkBiADQgA3A0ggA0HkBmogA0HIAGoQiISAgAAgAygC7AYiAiADKALwBiIBayEJAkACQCACIAMoAugGTw0AIAMoAuQGIAJqLQAAQS5GDQELQgAhCiAJIQsMAgsgAyACQQFqIgI2AuwGIANB5AZqIANByABqEIiEgIAAIAEgAmsgAygC7AYiAiADKALwBiIBa2oiDCAJaiELQgAgDK1CAoZ9IQoMAQtCACEKIANCADcC7AYgAyAFNgLoBiADIAY2AuQGIANCADcDSCADQeQGaiADQcgAahCJhICAACADKALsBiIIIAMoAvAGIgJrIQkCQAJAAkAgCCADKALoBk8NACADKALkBiAIai0AAEEuRg0BC0IAIQcgCSELDAELIAMgCEEBaiIBNgLsBiADQeQGaiADQcgAahCJhICAACACIAFrIAMoAuwGIgggAygC8AYiAmtqIgEgCWohC0IAIAGtfSEHCwJAAkACQCALRQ0AQgAhDQJAIAggAygC6AZPDQAgAygC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gICAACIEQf//A3ENACAAQe/qwIAAQQMQmoCAgAAiBEH//wNxDQACQCACKAIAIgQNACAAIAEQrYSAgAAiBEH//wNxDQEgAigCACEECwJAIARBAUcNACAAIAEgAigCBCACKAIIQQIQs4SAgAAiBEH//wNxDQEgAigCACEECwJAIARBAkcNACAAIAEgAigCBCACKAIIQQIQs4SAgAAiBEH//wNxDQEgAigCACEECwJAIARBA0cNACAAQaaSwIAAQQIQmoCAgAAiBEH//wNxDQEgAEHY6sCAAEECEJqAgIAAIgRB//8DcQ0BIABBl7DAgABBAxCagICAACIEQf//A3ENASAAQe/qwIAAQQMQmoCAgAAiBEH//wNxDQEgACABIAIoAgQgAigCCBC0hICAACIEQf//A3ENASAAQdfqwIAAQQMQmoCAgAAiBEH//wNxDQEgAEG9r8CAAEEEEJqAgIAAIgRB//8DcQ0BIABB7+rAgABBAxCagICAACIEQf//A3ENASACLQAMIQYgA0EBNgIEIANB2erAgAA2AgBBByEEQdyTwIAAIQUCQAJAAkACQCAGQQNxDgQDAAECAwtBDCEEQf2iwIAAIQUMAgtBCSEEQeSTwIAAIQUMAQtBBSEEQYubwIAAIQULIAMgBTYCCCADIAQ2AgwgACADEKeEgIAAIgRB//8DcQ0BIABB1+rAgABBAxCagICAACIEQf//A3ENASAAQceWwIAAQQYQmoCAgAAiBEH//wNxDQEgAEHv6sCAAEEDEJqAgIAAIgRB//8DcQ0BIAAgASACLQANELWEgIAAIgRB//8DcQ0BIABB1+rAgABBAxCagICAACIEQf//A3ENASAAQb+UwIAAQQsQmoCAgAAiBEH//wNxDQEgAEHv6sCAAEEDEJqAgIAAIgRB//8DcQ0BIAAgASACLQAOELWEgIAAIgRB//8DcQ0BIABB1+rAgABBAxCagICAACIEQf//A3ENASAAQZWcwIAAQQwQmoCAgAAiBEH//wNxDQEgAEHv6sCAAEEDEJqAgIAAIgRB//8DcQ0BIAAgASACLQAPELWEgIAAIgRB//8DcQ0BIABBo5LAgABBAhCagICAACIEQf//A3ENASACKAIAIQQLAkAgBEEERw0AIAAgARCthICAACIEQf//A3ENASACKAIAIQQLAkAgBEEFRw0AIABBppLAgABBAhCagICAACIEQf//A3ENASAAQdjqwIAAQQIQmoCAgAAiBEH//wNxDQEgAEGcrcCAAEEHEJqAgIAAIgRB//8DcQ0BIABB7+rAgABBAxCagICAACIEQf//A3ENASAAIAEgAigCBCACKAIIELSEgIAAIgRB//8DcQ0BIABBo5LAgABBAhCagICAACIEQf//A3ENASACKAIAIQQLAkAgBEEGRw0AIABBppLAgABBAhCagICAACIEQf//A3ENASAAQdjqwIAAQQIQmoCAgAAiBEH//wNxDQEgAEGcrsCAAEEJEJqAgIAAIgRB//8DcQ0BIABB7+rAgABBAxCagICAACIEQf//A3ENASAAIAEgAkEEahC2hICAACIEQf//A3ENASAAQaOSwIAAQQIQmoCAgAAiBEH//wNxDQEgAigCACEECwJAIARBB0cNACAAQaaSwIAAQQIQmoCAgAAiBEH//wNxDQEgAEHY6sCAAEECEJqAgIAAIgRB//8DcQ0BIABBva/AgABBBBCagICAACIEQf//A3ENASAAQe/qwIAAQQMQmoCAgAAiBEH//wNxDQEgACABIAItAAwQq4SAgAAiBEH//wNxDQEgAEHX6sCAAEEDEJqAgIAAIgRB//8DcQ0BIABBtrHAgABBBBCagICAACIEQf//A3ENASAAQe/qwIAAQQMQmoCAgAAiBEH//wNxDQEgACABIAIoAgQgAigCCEEBELOEgIAAIgRB//8DcQ0BIABBo5LAgABBAhCagICAACIEQf//A3ENASACKAIAIQQLAkAgBEEIRw0AIABBppLAgABBAhCagICAACIEQf//A3ENASAAQdjqwIAAQQIQmoCAgAAiBEH//wNxDQEgAEGGrMCAAEEFEJqAgIAAIgRB//8DcQ0BIABB7+rAgABBAxCagICAACIEQf//A3ENASAAIAEgAigCBCACKAIIQQEQs4SAgAAiBEH//wNxDQEgAEGjksCAAEECEJqAgIAAIgRB//8DcQ0BIAIoAgAhBAsCQCAEQQlHDQAgAEGmksCAAEECEJqAgIAAIgRB//8DcQ0BIABB2OrAgABBAhCagICAACIEQf//A3ENASAAQYaswIAAQQUQmoCAgAAiBEH//wNxDQEgAEHv6sCAAEEDEJqAgIAAIgRB//8DcQ0BIAAgASACKAIEIAIoAghBARCzhICAACIE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KAIEIAIoAghBARCzhICAACIEQf//A3ENASAAQdfqwIAAQQMQmoCAgAAiBEH//wNxDQEgAEHLlMCAAEEEEJqAgIAAIgRB//8DcQ0BIABB7+rAgABBAxCagICAACIEQf//A3ENASAAIAEgAigCDCACKAIQQQEQs4SAgAAiBEH//wNxDQEgAEGjksCAAEECEJqAgIAAIgRB//8DcQ0BIAIoAgAhBAsCQCAEQQ1HDQAgAEGmksCAAEECEJqAgIAAIgRB//8DcQ0BIABB2OrAgABBAhCagICAACIEQf//A3ENASAAQZiwwIAAQQIQmoCAgAAiBEH//wNxDQEgAEHv6sCAAEEDEJqAgIAAIgRB//8DcQ0BIAAgASACKAIEIAIoAggQtISAgAAiBEH//wNxDQEgAEHX6sCAAEEDEJqAgIAAIgRB//8DcQ0BIABBlKjAgABBAxCagICAACIEQf//A3ENASAAQe/qwIAAQQMQmoCAgAAiBEH//wNxDQEgACABIAIoAgwgAigCEEEBELOEgIAAIgRB//8DcQ0BIABBo5LAgABBAhCagICAACIEQf//A3ENASACKAIAIQQLAkAgBEEORw0AIAAgARCthICAACIEQf//A3ENASACKAIAIQQLAkAgBEEPRw0AIABBppLAgABBAhCagICAACIEQf//A3ENASAAQdjqwIAAQQIQmoCAgAAiBEH//wNxDQEgAEHinMCAAEELEJqAgIAAIgRB//8DcQ0BIABB7+rAgABBAxCagICAACIEQf//A3ENASAAIAEgAi8BBBCPg4CAACIEQf//A3ENASAAQaOSwIAAQQIQmoCAgAAiBEH//wNxDQEgAigCACEECwJAIARBEEcNACAAIAEgAigCBCACKAIIQQIQs4SAgAAiBEH//wNxDQEgAigCACEECwJAIARBEUcNACAAQdLqwIAAQQQQmoCAgAAiBEH//wNxDQEgAEGGrMCAAEGim8CAACACLQAMG0EFEJqAgIAAIgRB//8DcQ0BIABB7+rAgABBAxCagICAACIEQf//A3ENAQJAAkAgAi0ADA0AIAAgARCthICAACIEQf//A3ENAyACLQAMRQ0BCyAAIAEgAigCBCACKAIIQQEQs4SAgAAiBEH//wNxDQILIABBo5LAgABBAhCagICAACIEQf//A3ENASACKAIAIQQLAkAgBEESRw0A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/wNxRQ0BDAMLIABBo5LAgABBAhCagICAAA8LAkAgA0EBRg0AIABB8+rAgABBAhCagICAACIFQf//A3ENAgsgAkEBaiECIANBf2ohAwwACwsgBQstAAJAIAJFDQAgACABIAIgA0EBELOEgIAADwsgAEGCpsCAAEEEIAEQoYSAgAALJwAgAEH+qsCAAEH/rMCAACACQQFxIgIbQQRBBSACGyABEKGEgIAACy8AAkAgAi0AAUUNACAAIAEgAi0AABCrhICAAA8LIABBgqbAgABBBCABEKGEgIAAC2UBAX8jgICAgABBEGsiAySAgICAACADQdnqwIAANgIAIANBATYCBCADQQNBAiACQQFxIgIbNgIMIANBp6bAgABB35nAgAAgAhs2AgggACADEKeEgIAAIQIgA0EQaiSAgICAACACC/wCAQd/I4CAgIAAQRBrIgUkgICAgAAgA0F/aiEGIAEoAgghByABKAIEIQhBACEJQQAhCgJAA0AgCiAGTw0BIAIoAgQgCWohCUEBIQoMAAsLAkACQAJAIAIgBkEDdGooAgQgBGwgCWoiCyABKAIMIgpqIAdLDQBBACEJAkADQCAJIAZPDQECQCACKAIEIglFDQAgCCAKaiACKAIAIAn8CgAACyABIAEoAgwgCWoiCjYCDEEBIQkMAAsLIAIgBkEDdGoiCSgCACECAkACQCAJKAIEIgkOAgMAAQsCQCAERQ0AIAggCmogAi0AACAE/AsACyABIAEoAgwgBGo2AgwMAgsDQCAERQ0CAkAgCUUNACAIIApqIAIgCfwKAAALIAEgASgCDCAJaiIKNgIMIARBf2ohBAwACwsgBUEIaiABIAIgAyAEIAEoAgAoAgARgYCAgACAgICAACAAIAUpAwg3AgAMAQsgACALNgIAIABBADsBBAsgBUEQaiSAgICAAAtgAQJ/QgFBICAAQX9qZ2siAK1C//8Dg4anIQECQCAAQf//A3FBAnRB8LzKgABqIgIoAgAiAEUNACACIAFBEHQgAGpBfGooAgA2AgAgAA8LQQAgAUAAIgBBEHQgAEF/RhsL4AEBAn8jgICAgABBEGsiBiSAgICAACAGIANBH3E6AA9BfyAEQQRqIgcgByAESRsiBEEBIAN0IgMgBCADSxshBAJAAkACQCACQQRqIgIgAyACIANLGyIDQX9qZyICQW9qQQxLDQAg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WzM7MTB+ABtbMjM7MTB+ABtbMTM7MTB+ABtbMjsxMH4AG1syMTsxMH4AG1syMDsxMH4AeyAuLi4gfQAuewBlbXB0eQBpbml0eQBjYXBhY2l0eQBIeXBlcmxpbmtTZXRPdXRPZk1lbW9yeQBTdHlsZVNldE91dE9mTWVtb3J5AFN0cmluZ3NPdXRPZk1lbW9yeQBIeXBlcmxpbmtNYXBPdXRPZk1lbW9yeQBHcmFwaGVtZU1hcE91dE9mTWVtb3J5AFN0cmluZ0FsbG9jT3V0T2ZNZW1vcnkAR3JhcGhlbWVBbGxvY091dE9mTWVtb3J5AHByaW1hcnkAc2Vjb25kYXJ5AGRuZC1jb3B5AG5vdGlmeQBzZW1hbnRpY19vcHRpb25fa2V5AGh5cGVybGlua19wYXJhbV9rZXkAa2l0dHlfY29sb3JfcHJvdG9jb2xfa2V5AHNwZWNpYWxfa2V5AGJvZHkAG095ABtPOXkAG084eQAbTzd5ABtPNnkAG08xNnkAG081eQAbTzE1eQAbTzR5ABtPMTR5ABtPM3kAG08xM3kAG08yeQAbTzEyeQAbTzExeQAbTzEweQBjb25lbXVfc2hvd19tZXNzYWdlX2JveABjb25lbXVfbWVzc2FnZV9ib3gAG094ABtPOXgAG084eAAbTzd4ABtPNngAG08xNngAG081eAAbTzE1eAAbTzR4ABtPMTR4ABtPM3gAG08xM3gAG08yeAAbTzEyeAAbTzExeAAbTzEweABxdWVzdGlvbl9hcnJvdwBzd2FsbG93AE92ZXJmbG93AHJlZHJhdwAbT3cAG085dwAbTzh3ABtPN3cAG082dwAbTzE2dwAbTzV3ABtPMTV3ABtPNHcAG08xNHcAG08zdwAbTzEzdwAbTzJ3ABtPMTJ3ABtPMTF3ABtPMTB3ABtPdgAbTzl2ABtPOHYAG083dgAbTzZ2ABtPMTZ2ABtPNXYAG08xNXYAG080dgAbTzE0dgAbTzN2ABtPMTN2ABtPMnYAG08xMnYAG08xMXYAG08xMHYAY29udGV4dC1tZW51ABtPdQAbTzl1ABtPOHUAG083dQAbTzZ1ABtPMTZ1ABtPNXUAG08xNXUAG080dQAbTzE0dQAbTzN1ABtPMTN1ABtPMnUAG08xMnUAG08xMXUAG08xMHUAY29uZW11X3RhYl90eHQAY3Vyc29yX3RleHQAdmVydGljYWwtdGV4dABJbnB1dE91dHB1dABjb25lbXVfd2FpdF9pbnB1dABlbmRfb2ZfaW5wdXQAZGNzX3B1dABhcGNfcHV0AHpvb20tb3V0AENvbm5lY3Rpb25UaW1lZE91dABsaXN0AGNvbmVtdV9wcm9ncmVzc19yZXBvcnQAcHJvbXB0X3N0YXJ0AHNlbWFudGljX29wdGlvbl9zdGFydABoeXBlcmxpbmtfc3RhcnQAc2VtYW50aWNfZXhpdF9jb2RlX3N0YXJ0AGFwY19zdGFydABzZW1hbnRpY19wcm9tcHQAcHJpbnQAY3VycmVudABwcmVhbGxvY19zZWdtZW50AGRlZmF1bHQAd2FpdAByaWdodABsZWZ0AE5vU3BhY2VMZWZ0AHJlc2V0AEludmFsaWRGb3JtYXQAG090ABtPOXQAG084dAAbTzd0ABtPNnQAG08xNnQAG081dAAbTzE1dAAbTzR0ABtPMTR0ABtPM3QAG08xM3QAG08ydAAbTzEydAAbTzExdAAbTzEwdAByZXF1ZXN0cwBjbGlja19ldmVudHMAY2xpcGJvYXJkX2NvbnRlbnRzAGR5bmFtaWNfc2VnbWVudHMAY3Jvc3MAcHJvZ3Jlc3MAaXRlbXMAcGFyYW1zAGR1cmF0aW9uX21zAGludGVybWVkaWF0ZXMAU3lzdGVtUmVzb3VyY2VzAGFsaWFzABtPcwAbTzlzABtPOHMAG083cwAbTzZzABtPMTZzABtPNXMAG08xNXMAG080cwAbTzE0cwAbTzNzABtPMTNzABtPMnMAG08xMnMAG08xMXMAG08xMHMAZmxldXIAbGVmdF9wdHIAdGVybWluYXRvcgBjdXJzb3IAZXJyb3IARGVjb2RlRXJyb3IAb3NjX2NvbG9yAGNyb3NzaGFpcgBJc0RpcgBwb2ludGVyAEludmFsaWRDaGFyYWN0ZXIAdG9wX3JpZ2h0X2Nvcm5lcgBib3R0b21fcmlnaHRfY29ybmVyAHRvcF9sZWZ0X2Nvcm5lcgBib3R0b21fbGVmdF9jb3JuZXIAQ29ubmVjdGlvblJlc2V0QnlQZWVyABtPcgAbTzlyABtPOHIAG083cgAbTzZyABtPMTZyABtPNXIAG08xNXIAG080cgAbTzE0cgAbTzNyABtPMTNyABtPMnIAG08xMnIAG08xMXIAG08xMHIAG09xABtPOXEAG084cQAbTzdxABtPNnEAG08xNnEAG081cQAbTzE1cQAbTzRxABtPMTRxABtPM3EAG08xM3EAG08ycQAbTzEycQAbTzExcQAbTzEwcQBkbmQtbm8tZHJvcABoZWxwAHBhcmFtc19zZXAAY29uZW11X3NsZWVwAHJpZ2h0X3VubGVzc19wZW5kaW5nX3dyYXAAG09wABtPOXAAG084cAAbTzdwABtPNnAAG08xNnAAG081cAAbTzE1cAAbTzRwABtPMTRwABtPM3AAG08xM3AAG08ycAAbTzEycAAbTzExcAAbTzEwcABEaXZpc2lvbkJ5WmVybwBjb25lbXVfZ3VpbWFjcm8AG09vABtPOW8AG084bwAbTzdvABtPNm8AG08xNm8AG081bwAbTzE1bwAbTzRvABtPMTRvABtPM28AG08xM28AG08ybwAbTzEybwAbTzExbwAbTzEwbwB0ZXJtaW5hbC5QYXJzZXIuQWN0aW9uAGNvbnRpbnVhdGlvbgBVdGY4RXhwZWN0ZWRDb250aW51YXRpb24AY29sb3Jfb3BlcmF0aW9uAE1pc3NpbmdPcGVyYXRpb24ATG9ja1Zpb2xhdGlvbgBzaG93X2Rlc2t0b3Bfbm90aWZpY2F0aW9uAHJ4dnRfZXh0ZW5zaW9uAGNoYW5nZV93aW5kb3dfaWNvbgB6b29tLWluAGxlbgBuYW4AG09uABtPOW4AG084bgAbTzduABtPNm4AG08xNm4AG081bgAbTzE1bgAbTzRuABtPMTRuABtPM24AG08xM24AG08ybgAbTzEybgAbTzExbgAbWzBuABtPMTBuAHh0ZXJtAEVuZE9mU3RyZWFtABtPbQAbTzltABtPOG0AG083bQAbTzZtABtPMTZtABtPNW0AG08xNW0AG080bQAbTzE0bQAbTzNtABtPMTNtABtPMm0AG08xMm0AG08xMW0AG08xMG0AY21kbGluZV91cmwAa2l0dHlfY29sb3JfcHJvdG9jb2wAbnVsbABhbGwtc2Nyb2xsAGNlbGwAdmlzdWFsX2JlbGwAYWxsAGJlbABmaW5hbABtYXNrAGRjc191bmhvb2sAZGNzX2hvb2sAZG5kLWxpbmsAV291bGRCbG9jawAbT2sAG085awAbTzhrABtPN2sAG082awAbTzE2awAbTzVrABtPMTVrABtPNGsAG08xNGsAG08zawAbTzEzawAbTzJrABtPMTJrABtPMTFrABtPMTBrABtPagAbTzlqABtPOGoAG083agAbTzZqABtPMTZqABtPNWoAG08xNWoAG080agAbTzE0agAbTzNqABtPMTNqABtPMmoAG08xMmoAG08xMWoAG08xMGoAaHlwZXJsaW5rX3VyaQBIeXBlcmxpbmtTZXROZWVkc1JlaGFzaABTdHlsZVNldE5lZWRzUmVoYXNoAGxlZnRfcHRyX3dhdGNoAGNzaV9kaXNwYXRjaABvc2NfZGlzcGF0Y2gAZXNjX2Rpc3BhdGNoAGFsbG9jYWJsZV9zdHJpbmcAU3RyZWFtaW5nAFV0ZjhPdmVybG9uZ0VuY29kaW5nAE5vdE9wZW5Gb3JSZWFkaW5nAGdyYWJiaW5nAEludmFsaWRFbnVtVGFnAGluZgBVdGY4RW5jb2Rlc1N1cnJvZ2F0ZUhhbGYAVXRmOENhbm5vdEVuY29kZVN1cnJvZ2F0ZUhhbGYAbmVzdy1yZXNpemUAcm93LXJlc2l6ZQBudy1yZXNpemUAZXctcmVzaXplAG5zLXJlc2l6ZQBuLXJlc2l6ZQBjb2wtcmVzaXplAG53c2UtcmVzaXplAG5lLXJlc2l6ZQByZW1vdmUAZG5kLW1vdmUAdHJ1ZQBjb25lbXVfcHJvZ3Jlc3NfcHJldmFsdWUAY29uZW11X3Byb2dyZXNzX3ZhbHVlAGNvbmVtdV9zbGVlcF92YWx1ZQBzZW1hbnRpY19vcHRpb25fdmFsdWUAaHlwZXJsaW5rX3BhcmFtX3ZhbHVlAGtpdHR5X2NvbG9yX3Byb3RvY29sX3ZhbHVlAFV0ZjhJbnZhbGlkU3RhcnRCeXRlAGV4ZWN1dGUAY29tcGxldGUAY29uZW11X3Byb2dyZXNzX3ByZXN0YXRlAGNvbmVtdV9wcm9ncmVzc19zdGF0ZQBhbHRlcm5hdGUAaW5kZXRlcm1pbmF0ZQBwYXVzZQBmYWxzZQBCcm9rZW5QaXBlAG1vdXNlX3NoYXBlAGNtZGxpbmUAY2hhbmdlX3dpbmRvd190aXRsZQBub3RpZmljYXRpb25fdGl0bGUAY29uZW11X2NoYW5nZV90YWJfdGl0bGUAY3Jvc3NlZF9jaXJjbGUAVW5zZWVrYWJs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c2NfMTYAb3NjXzExNgBvc2NfNQAyMjczNzM2NzU0NDMyMzIwNTk0Nzg3NTk3NjU2MjUAMTIzMjU5NTE2NDQwNzgzMDk0NTk1NTgyNTg4MzI1NDM1MzQ4Mzg2NDM4NTA1NDg1Nzg0ODQ0NDk1MzU2MDgyOTE2MjU5NzY1NjI1ADUyOTM5NTU5MjAzMzkzNzcxMTkxNzcwMTU2MjkyNDc3NjIyNjI4MjExOTc1MDk3NjU2MjUAODA3NzkzNTY2OTQ2MzE2MDg4NzQxNjEwMDUwODQ5NTczMDk5MTg1MzYzMzg5NTUxNjM5NTU2ODg0NzY1NjI1ADE0OTAxMTYxMTkzODQ3NjU2MjUAMTg4MDc5MDk2MTMxNTY2MDAxMjc0OTk3ODQ1OTU1NTU5MzA4NDUwOTg2NDg5MDgzNTM0MDAzNDQxNDAwMjczMDA0NTQ2NzYxNTEyNzU2MzQ3NjU2MjUAMzQ2OTQ0Njk1MTk1MzYxNDE4ODgyMzg0ODk2Mjc4MzgxMzQ3NjU2MjUAMzgxNDY5NzI2NTYyNQAyMDY3OTUxNTMxMzgyNTY5MTg3MTc4NTIxNzMwMTc0OTA3MTMzOTE0NTMwMjc3MjUyMTk3MjY1NjI1ADQ4MTQ4MjQ4NjA5NjgwODk2MzI2Mzk5NDQ4NTY0NjIzMTgyOTYzNDUyNTQxMjA1Mzg0NzA0ODgwOTk4NDY5ODg5MTYzOTcwOTQ3MjY1NjI1ADg4ODE3ODQxOTcwMDEyNTIzMjMzODkwNTMzNDQ3MjY1NjI1ADMxNTU0NDM2MjA4ODQwNDcyMjE2NDY5MTQyNjExMzExNDQ5MTg2OTI4MjU3NDA0MzYwOTIwMTkwODExMTU3MjI2NTYyNQA1ODIwNzY2MDkxMzQ2NzQwNzIyNjU2MjUAMTM1NTI1MjcxNTYwNjg4MDU0MjUwOTMxNjAwMTA4NzQyNzEzOTI4MjIyNjU2MjUANTA0ODcwOTc5MzQxNDQ3NTU1NDYzNTA2MjgxNzgwOTgzMTg2OTkwODUyMTE4NDY5Nzc0NzIzMDUyOTc4NTE1NjI1ADkzMTMyMjU3NDYxNTQ3ODUxNTYyNQAxMTc1NDk0MzUwODIyMjg3NTA3OTY4NzM2NTM3MjIyMjQ1Njc3ODE4NjY1NTU2NzcyMDg3NTIxNTA4NzUxNzA2Mjc4NDE3MjU5NDU0NzI3MTcyODUxNTYyNQAyMTY4NDA0MzQ0OTcxMDA4ODY4MDE0OTA1NjAxNzM5ODgzNDIyODUxNTYyNQAxNDIxMDg1NDcxNTIwMjAwMzcxNzQyMjQ4NTM1MTU2MjUANzcwMzcxOTc3NzU0ODk0MzQxMjIyMzkxMTc3MDMzOTcwOTI3NDE1MjQwNjU5Mjg2MTU1Mjc4MDk1OTc1NTE4MjI2NjIzNTM1MTU2MjUAMzMwODcyMjQ1MDIxMjExMDY5OTQ4NTYzNDc2ODI3OTg1MTQxNDI2MzI0ODQ0MzYwMzUxNTYyNQA2MTAzNTE1NjI1ADE5NzIxNTIyNjMwNTI1Mjk1MTM1MjkzMjE0MTMyMDY5NjU1NzQxODMwMTYwODc3NzI1NTc1MTE5MjU2OTczMjY2NjAxNTYyNQAzNjM3OTc4ODA3MDkxNzEyOTUxNjYwMTU2MjUAODQ3MDMyOTQ3MjU0MzAwMzM5MDY4MzIyNTAwNjc5NjQxOTYyMDUxMzkxNjAxNTYyNQAyMzg0MTg1NzkxMDE1NjI1ADEyOTI0Njk3MDcxMTQxMDU3NDE5ODY1NzYwODEzNTkzMTY5NTg2OTY1ODE0MjMyODI2MjMyOTEwMTU2MjUANTU1MTExNTEyMzEyNTc4MjcwMjExODE1ODM0MDQ1NDEwMTU2MjUAMzAwOTI2NTUzODEwNTA1NjAyMDM5OTk2NTUzNTI4ODk0ODkzNTIxNTc4MzgyNTMzNjU0NDA1NTA2MjQwNDM2ODA3Mjc0ODE4NDIwNDEwMTU2MjUAMTUyNTg3ODkwNjI1ADgyNzE4MDYxMjU1MzAyNzY3NDg3MTQwODY5MjA2OTk2Mjg1MzU2NTgxMjExMDkwMDg3ODkwNjI1ADE5MjU5Mjk5NDQzODcyMzU4NTMwNTU5Nzc5NDI1ODQ5MjczMTg1MzgxMDE2NDgyMTUzODgxOTUyMzk5Mzg3OTU1NjY1NTg4Mzc4OTA2MjUAMzU1MjcxMzY3ODgwMDUwMDkyOTM1NTYyMTMzNzg5MDYyNQAyMzI4MzA2NDM2NTM4Njk2Mjg5MDYyNQAxMjYyMTc3NDQ4MzUzNjE4ODg4NjU4NzY1NzA0NDUyNDU3OTY3NDc3MTMwMjk2MTc0NDM2ODA3NjMyNDQ2Mjg5MDYyNQA1NDIxMDEwODYyNDI3NTIyMTcwMDM3MjY0MDA0MzQ5NzA4NTU3MTI4OTA2MjUANTk2MDQ2NDQ3NzUzOTA2MjUAMzIzMTE3NDI2Nzc4NTI2NDM1NDk2NjQ0MDIwMzM5ODI5MjM5Njc0MTQ1MzU1ODIwNjU1ODIyNzUzOTA2MjUAMTM4Nzc3ODc4MDc4MTQ0NTY3NTUyOTUzOTU4NTExMzUyNTM5MDYyNQA3NTIzMTYzODQ1MjYyNjQwMDUwOTk5OTEzODM4MjIyMzcyMzM4MDM5NDU5NTYzMzQxMzYwMTM3NjU2MDEwOTIwMTgxODcwNDYwNTEwMjUzOTA2MjUANDkzMDM4MDY1NzYzMTMyMzc4MzgyMzMwMzUzMzAxNzQxMzkzNTQ1NzU0MDIxOTQzMTM5Mzc3OTgxNDI0MzMxNjY1MDM5MDYyNQA5MDk0OTQ3MDE3NzI5MjgyMzc5MTUwMzkwNjI1ADIxMTc1ODIzNjgxMzU3NTA4NDc2NzA4MDYyNTE2OTkxMDQ5MDUxMjg0NzkwMDM5MDYyNQAzMzg4MTMxNzg5MDE3MjAxMzU2MjczMjkwMDAyNzE4NTY3ODQ4MjA1NTY2NDA2MjUAMTQ1NTE5MTUyMjgzNjY4NTE4MDY2NDA2MjUANzg4ODYwOTA1MjIxMDExODA1NDExNzI4NTY1MjgyNzg2MjI5NjczMjA2NDM1MTA5MDIzMDA0NzcwMjc4OTMwNjY0MDYyNQAxMjAzNzA2MjE1MjQyMDIyNDA4MTU5OTg2MjE0MTE1NTc5NTc0MDg2MzEzNTMwMTM0NjE3NjIyMDI0OTYxNzQ3MjI5MDk5MjczNjgxNjQwNjI1ADIyMjA0NDYwNDkyNTAzMTMwODA4NDcyNjMzMzYxODE2NDA2MjUANTE2OTg3ODgyODQ1NjQyMjk2Nzk0NjMwNDMyNTQzNzI2NzgzNDc4NjMyNTY5MzEzMDQ5MzE2NDA2MjUAOTUzNjc0MzE2NDA2MjUANDcwMTk3NzQwMzI4OTE1MDAzMTg3NDk0NjE0ODg4ODk4MjcxMTI3NDY2MjIyNzA4ODM1MDA4NjAzNTAwNjgyNTExMzY2OTAzNzgxODkwODY5MTQwNjI1ADg2NzM2MTczNzk4ODQwMzU0NzIwNTk2MjI0MDY5NTk1MzM2OTE0MDYyNQAzNzI1MjkwMjk4NDYxOTE0MDYyNQAyMDE5NDgzOTE3MzY1NzkwMjIxODU0MDI1MTI3MTIzOTMyNzQ3OTYzNDA4NDczODc5MDk4ODkyMjExOTE0MDYyNQA1Njg0MzQxODg2MDgwODAxNDg2OTY4OTk0MTQwNjI1ADMwODE0ODc5MTEwMTk1NzczNjQ4ODk1NjQ3MDgxMzU4ODM3MDk2NjA5NjI2MzcxNDQ2MjExMTIzODM5MDIwNzI5MDY0OTQxNDA2MjUAMTMyMzQ4ODk4MDA4NDg0NDI3OTc5NDI1MzkwNzMxMTk0MDU2NTcwNTI5OTM3NzQ0MTQwNjI1ADI0NDE0MDYyNQAzODUxODU5ODg4Nzc0NDcxNzA2MTExOTU1ODg1MTY5ODU0NjM3MDc2MjAzMjk2NDMwNzc2MzkwNDc5ODc3NTkxMTMzMTE3Njc1NzgxMjUANzEwNTQyNzM1NzYwMTAwMTg1ODcxMTI0MjY3NTc4MTI1ADMwNTE3NTc4MTI1ADE2NTQzNjEyMjUxMDYwNTUzNDk3NDI4MTczODQxMzk5MjU3MDcxMzE2MjQyMjE4MDE3NTc4MTI1ADI1MjQzNTQ4OTY3MDcyMzc3NzczMTc1MzE0MDg5MDQ5MTU5MzQ5NTQyNjA1OTIzNDg4NzM2MTUyNjQ4OTI1NzgxMjUANDY1NjYxMjg3MzA3NzM5MjU3ODEyNQA1ODc3NDcxNzU0MTExNDM3NTM5ODQzNjgyNjg2MTExMjI4Mzg5MDkzMzI3NzgzODYwNDM3NjA3NTQzNzU4NTMxMzkyMDg2Mjk3MjczNjM1ODY0MjU3ODEyNQAxMDg0MjAyMTcyNDg1NTA0NDM0MDA3NDUyODAwODY5OTQxNzExNDI1NzgxMjUAMTE5MjA5Mjg5NTUwNzgxMjUANjQ2MjM0ODUzNTU3MDUyODcwOTkzMjg4MDQwNjc5NjU4NDc5MzQ4MjkwNzExNjQxMzExNjQ1NTA3ODEyNQAyNzc1NTU3NTYxNTYyODkxMzUxMDU5MDc5MTcwMjI3MDUwNzgxMjUAMTUwNDYzMjc2OTA1MjUyODAxMDE5OTk4Mjc2NzY0NDQ3NDQ2NzYwNzg5MTkxMjY2ODI3MjAyNzUzMTIwMjE4NDAzNjM3NDA5MjEwMjA1MDc4MTI1ADQyMzUxNjQ3MzYyNzE1MDE2OTUzNDE2MTI1MDMzOTgyMDk4MTAyNTY5NTgwMDc4MTI1ADE4MTg5ODk0MDM1NDU4NTY0NzU4MzAwNzgxMjUAOTg2MDc2MTMxNTI2MjY0NzU2NzY0NjYwNzA2NjAzNDgyNzg3MDkxNTA4MDQzODg2Mjc4NzU1OTYyODQ4NjYzMzMwMDc4MTI1ADExMzY4NjgzNzcyMTYxNjAyOTczOTM3OTg4MjgxMjUANjE2Mjk3NTgyMjAzOTE1NDcyOTc3OTEyOTQxNjI3MTc2NzQxOTMyMTkyNTI3NDI4OTI0MjIyNDc2NzgwNDE0NTgxMjk4ODI4MTI1ADI2NDY5Nzc5NjAxNjk2ODg1NTk1ODg1MDc4MTQ2MjM4ODExMzE0MTA1OTg3NTQ4ODI4MTI1ADE3MzQ3MjM0NzU5NzY4MDcwOTQ0MTE5MjQ0ODEzOTE5MDY3MzgyODEyNQA5NDAzOTU0ODA2NTc4MzAwMDYzNzQ5ODkyMjk3Nzc3OTY1NDIyNTQ5MzI0NDU0MTc2NzAwMTcyMDcwMDEzNjUwMjI3MzM4MDc1NjM3ODE3MzgyODEyNQA3NDUwNTgwNTk2OTIzODI4MTI1ADQwMzg5Njc4MzQ3MzE1ODA0NDM3MDgwNTAyNTQyNDc4NjU0OTU5MjY4MTY5NDc3NTgxOTc3ODQ0MjM4MjgxMjUAMTAzMzk3NTc2NTY5MTI4NDU5MzU4OTI2MDg2NTA4NzQ1MzU2Njk1NzI2NTEzODYyNjA5ODYzMjgxMjUAMTkwNzM0ODYzMjgxMjUAMjQwNzQxMjQzMDQ4NDA0NDgxNjMxOTk3MjQyODIzMTE1OTE0ODE3MjYyNzA2MDI2OTIzNTI0NDA0OTkyMzQ5NDQ1ODE5ODU0NzM2MzI4MTI1ADQ0NDA4OTIwOTg1MDA2MjYxNjE2OTQ1MjY2NzIzNjMyODEyNQAxNTc3NzIxODEwNDQyMDIzNjEwODIzNDU3MTMwNTY1NTcyNDU5MzQ2NDEyODcwMjE4MDQ2MDA5NTQwNTU3ODYxMzI4MTI1ADI5MTAzODMwNDU2NzMzNzAzNjEzMjgxMjUANjc3NjI2MzU3ODAzNDQwMjcxMjU0NjU4MDAwNTQzNzEzNTY5NjQxMTEzMjgxMjUAMjk4MDIzMjIzODc2OTUzMTI1ADE2MTU1ODcxMzM4OTI2MzIxNzc0ODMyMjAxMDE2OTkxNDYxOTgzNzA3MjY3NzkxMDMyNzkxMTM3Njk1MzEyNQA2OTM4ODkzOTAzOTA3MjI4Mzc3NjQ3Njk3OTI1NTY3NjI2OTUzMTI1ADM3NjE1ODE5MjI2MzEzMjAwMjU0OTk5NTY5MTkxMTExODYxNjkwMTk3Mjk3ODE2NzA2ODAwNjg4MjgwMDU0NjAwOTA5MzUyMzAyNTUxMjY5NTMxMjUANDU0NzQ3MzUwODg2NDY0MTE4OTU3NTE5NTMxMjUAMjQ2NTE5MDMyODgxNTY2MTg5MTkxMTY1MTc2NjUwODcwNjk2NzcyODc3MDEwOTcxNTY5Njg4OTkwNzEyMTY1ODMyNTE5NTMxMjUAMTA1ODc5MTE4NDA2Nzg3NTQyMzgzNTQwMzEyNTg0OTU1MjQ1MjU2NDIzOTUwMTk1MzEyNQAxNzc2MzU2ODM5NDAwMjUwNDY0Njc3ODEwNjY4OTQ1MzEyNQA5NjI5NjQ5NzIxOTM2MTc5MjY1Mjc5ODg5NzEyOTI0NjM2NTkyNjkwNTA4MjQxMDc2OTQwOTc2MTk5NjkzOTc3ODMyNzk0MTg5NDUzMTI1ADc2MjkzOTQ1MzEyNQA0MTM1OTAzMDYyNzY1MTM4Mzc0MzU3MDQzNDYwMzQ5ODE0MjY3ODI5MDYwNTU0NTA0Mzk0NTMxMjUAMjcxMDUwNTQzMTIxMzc2MTA4NTAxODYzMjAwMjE3NDg1NDI3ODU2NDQ1MzEyNQAxMTY0MTUzMjE4MjY5MzQ4MTQ0NTMxMjUANjMxMDg4NzI0MTc2ODA5NDQ0MzI5MzgyODUyMjI2MjI4OTgzNzM4NTY1MTQ4MDg3MjE4NDAzODE2MjIzMTQ0NTMxMjUAMTAwOTc0MTk1ODY4Mjg5NTExMDkyNzAxMjU2MzU2MTk2NjM3Mzk4MTcwNDIzNjkzOTU0OTQ0NjEwNTk1NzAzMTI1ADE4NjI2NDUxNDkyMzA5NTcwMzEyNQA0MzM2ODA4Njg5OTQyMDE3NzM2MDI5ODExMjAzNDc5NzY2ODQ1NzAzMTI1ADIzNTA5ODg3MDE2NDQ1NzUwMTU5Mzc0NzMwNzQ0NDQ0OTEzNTU2MzczMzExMTM1NDQxNzUwNDMwMTc1MDM0MTI1NTY4MzQ1MTg5MDk0NTQzNDU3MDMxMjUAMjg0MjE3MDk0MzA0MDQwMDc0MzQ4NDQ5NzA3MDMxMjUAMTU0MDc0Mzk1NTUwOTc4ODY4MjQ0NDc4MjM1NDA2Nzk0MTg1NDgzMDQ4MTMxODU3MjMxMDU1NjE5MTk1MTAzNjQ1MzI0NzA3MDMxMjUANjYxNzQ0NDkwMDQyNDIyMTM5ODk3MTI2OTUzNjU1OTcwMjgyODUyNjQ5Njg4NzIwNzAzMTI1ADEyMjA3MDMxMjUAMjU4NDkzOTQxNDIyODIxMTQ4Mzk3MzE1MjE2MjcxODYzMzkxNzM5MzE2Mjg0NjU2NTI0NjU4MjAzMTI1ADQ3NjgzNzE1ODIwMzEyNQAxMTEwMjIzMDI0NjI1MTU2NTQwNDIzNjMxNjY4MDkwODIwMzEyNQA2MDE4NTMxMDc2MjEwMTEyMDQwNzk5OTMxMDcwNTc3ODk3ODcwNDMxNTY3NjUwNjczMDg4MTEwMTI0ODA4NzM2MTQ1NDk2MzY4NDA4MjAzMTI1ADE2OTQwNjU4OTQ1MDg2MDA2NzgxMzY2NDUwMDEzNTkyODM5MjQxMDI3ODMyMDMxMjUAMzk0NDMwNDUyNjEwNTA1OTAyNzA1ODY0MjgyNjQxMzkzMTE0ODM2NjAzMjE3NTU0NTExNTAyMzg1MTM5NDY1MzMyMDMxMjUANzI3NTk1NzYxNDE4MzQyNTkwMzMyMDMxMjUAb3NjXzE1AG9zY18xMTUAb3NjXzEwNQBvc2NfNABvc2NfMTQAb3NjXzExNABvc2NfMTA0ADEzMwBvc2NfMTMAb3NjXzExMwA1MgAyMgBvc2NfMTIAb3NjXzExMgBoYW5kMQAyMQBvc2NfMTEAb3NjXzExMQBvc2NfMTAAb3NjXzExMABlcnJvci4ALnsgLgAsIC4AQGVudW1Gcm9tSW50KAAkJwB7IAAgPSAALCAAGxsAGw0AMjU1IDI1MCAyNTAJCXNub3cKMjQ4IDI0OCAyNTUJCWdob3N0IHdoaXRlCjI0OCAyNDggMjU1CQlHaG9zdFdoaXRlCjI0NSAyNDUgMjQ1CQl3aGl0ZSBzbW9rZQoyNDUgMjQ1IDI0NQkJV2hpdGVTbW9rZQoyMjAgMjIwIDIyMAkJZ2FpbnNib3JvCjI1NSAyNTAgMjQwCQlmbG9yYWwgd2hpdGUKMjU1IDI1MCAyNDAJCUZsb3JhbFdoaXRlCjI1MyAyNDUgMjMwCQlvbGQgbGFjZQoyNTMgMjQ1IDIzMAkJT2xkTGFjZQoyNTAgMjQwIDIzMAkJbGluZW4KMjUwIDIzNSAyMTUJCWFudGlxdWUgd2hpdGUKMjUwIDIzNSAyMTUJCUFudGlxdWVXaGl0ZQoyNTUgMjM5IDIxMwkJcGFwYXlhIHdoaXAKMjU1IDIzOSAyMTMJCVBhcGF5YVdoaXAKMjU1IDIzNSAyMDUJCWJsYW5jaGVkIGFsbW9uZAoyNTUgMjM1IDIwNQkJQmxhbmNoZWRBbG1vbmQKMjU1IDIyOCAxOTYJCWJpc3F1ZQoyNTUgMjE4IDE4NQkJcGVhY2ggcHVmZgoyNTUgMjE4IDE4NQkJUGVhY2hQdWZmCjI1NSAyMjIgMTczCQluYXZham8gd2hpdGUKMjU1IDIyMiAxNzMJCU5hdmFqb1doaXRlCjI1NSAyMjggMTgxCQltb2NjYXNpbgoyNTUgMjQ4IDIyMAkJY29ybnNpbGsKMjU1IDI1NSAyNDAJCWl2b3J5CjI1NSAyNTAgMjA1CQlsZW1vbiBjaGlmZm9uCjI1NSAyNTAgMjA1CQlMZW1vbkNoaWZmb24KMjU1IDI0NSAyMzgJCXNlYXNoZWxsCjI0MCAyNTUgMjQwCQlob25leWRldwoyNDUgMjU1IDI1MAkJbWludCBjcmVhbQoyNDUgMjU1IDI1MAkJTWludENyZWFtCjI0MCAyNTUgMjU1CQlhenVyZQoyNDAgMjQ4IDI1NQkJYWxpY2UgYmx1ZQoyNDAgMjQ4IDI1NQkJQWxpY2VCbHVlCjIzMCAyMzAgMjUwCQlsYXZlbmRlcgoyNTUgMjQwIDI0NQkJbGF2ZW5kZXIgYmx1c2gKMjU1IDI0MCAyNDUJCUxhdmVuZGVyQmx1c2gKMjU1IDIyOCAyMjUJCW1pc3R5IHJvc2UKMjU1IDIyOCAyMjUJCU1pc3R5Um9zZQoyNTUgMjU1IDI1NQkJd2hpdGUKICAwICAgMCAgIDAJCWJsYWNrCiA0NyAgNzkgIDc5CQlkYXJrIHNsYXRlIGdyYXkKIDQ3ICA3OSAgNzkJCURhcmtTbGF0ZUdyYXkKIDQ3ICA3OSAgNzkJCWRhcmsgc2xhdGUgZ3JleQogNDcgIDc5ICA3OQkJRGFya1NsYXRlR3JleQoxMDUgMTA1IDEwNQkJZGltIGdyYXkKMTA1IDEwNSAxMDUJCURpbUdyYXkKMTA1IDEwNSAxMDUJCWRpbSBncmV5CjEwNSAxMDUgMTA1CQlEaW1HcmV5CjExMiAxMjggMTQ0CQlzbGF0ZSBncmF5CjExMiAxMjggMTQ0CQlTbGF0ZUdyYXkKMTEyIDEyOCAxNDQJCXNsYXRlIGdyZXkKMTEyIDEyOCAxNDQJCVNsYXRlR3JleQoxMTkgMTM2IDE1MwkJbGlnaHQgc2xhdGUgZ3JheQoxMTkgMTM2IDE1MwkJTGlnaHRTbGF0ZUdyYXkKMTE5IDEzNiAxNTMJCWxpZ2h0IHNsYXRlIGdyZXkKMTE5IDEzNiAxNTMJCUxpZ2h0U2xhdGVHcmV5CjE5MCAxOTAgMTkwCQlncmF5CjE5MCAxOTAgMTkwCQlncmV5CjE5MCAxOTAgMTkwCQl4MTEgZ3JheQoxOTAgMTkwIDE5MAkJWDExR3JheQoxOTAgMTkwIDE5MAkJeDExIGdyZXkKMTkwIDE5MCAxOTAJCVgxMUdyZXkKMTI4IDEyOCAxMjgJCXdlYiBncmF5CjEyOCAxMjggMTI4CQlXZWJHcmF5CjEyOCAxMjggMTI4CQl3ZWIgZ3JleQoxMjggMTI4IDEyOAkJV2ViR3JleQoyMTEgMjExIDIxMQkJbGlnaHQgZ3JleQoyMTEgMjExIDIxMQkJTGlnaHRHcmV5CjIxMSAyMTEgMjExCQlsaWdodCBncmF5CjIxMSAyMTEgMjExCQlMaWdodEdyYXkKIDI1ICAyNSAxMTIJCW1pZG5pZ2h0IGJsdWUKIDI1ICAyNSAxMTIJCU1pZG5pZ2h0Qmx1ZQogIDAgICAwIDEyOAkJbmF2eQogIDAgICAwIDEyOAkJbmF2eSBibHVlCiAgMCAgIDAgMTI4CQlOYXZ5Qmx1ZQoxMDAgMTQ5IDIzNwkJY29ybmZsb3dlciBibHVlCjEwMCAxNDkgMjM3CQlDb3JuZmxvd2VyQmx1ZQogNzIgIDYxIDEzOQkJZGFyayBzbGF0ZSBibHVlCiA3MiAgNjEgMTM5CQlEYXJrU2xhdGVCbHVlCjEwNiAgOTAgMjA1CQlzbGF0ZSBibHVlCjEwNiAgOTAgMjA1CQlTbGF0ZUJsdWUKMTIzIDEwNCAyMzgJCW1lZGl1bSBzbGF0ZSBibHVlCjEyMyAxMDQgMjM4CQlNZWRpdW1TbGF0ZUJsdWUKMTMyIDExMiAyNTUJCWxpZ2h0IHNsYXRlIGJsdWUKMTMyIDExMiAyNTUJCUxpZ2h0U2xhdGVCbHVlCiAgMCAgIDAgMjA1CQltZWRpdW0gYmx1ZQogIDAgICAwIDIwNQkJTWVkaXVtQmx1ZQogNjUgMTA1IDIyNQkJcm95YWwgYmx1ZQogNjUgMTA1IDIyNQkJUm95YWxCbHVlCiAgMCAgIDAgMjU1CQlibHVlCiAzMCAxNDQgMjU1CQlkb2RnZXIgYmx1ZQogMzAgMTQ0IDI1NQkJRG9kZ2VyQmx1ZQogIDAgMTkxIDI1NQkJZGVlcCBza3kgYmx1ZQogIDAgMTkxIDI1NQkJRGVlcFNreUJsdWUKMTM1IDIwNiAyMzUJCXNreSBibHVlCjEzNSAyMDYgMjM1CQlTa3lCbHVlCjEzNSAyMDYgMjUwCQlsaWdodCBza3kgYmx1ZQoxMzUgMjA2IDI1MAkJTGlnaHRTa3lCbHVlCiA3MCAxMzAgMTgwCQlzdGVlbCBibHVlCiA3MCAxMzAgMTgwCQlTdGVlbEJsdWUKMTc2IDE5NiAyMjIJCWxpZ2h0IHN0ZWVsIGJsdWUKMTc2IDE5NiAyMjIJCUxpZ2h0U3RlZWxCbHVlCjE3MyAyMTYgMjMwCQlsaWdodCBibHVlCjE3MyAyMTYgMjMwCQlMaWdodEJsdWUKMTc2IDIyNCAyMzAJCXBvd2RlciBibHVlCjE3NiAyMjQgMjMwCQlQb3dkZXJCbHVlCjE3NSAyMzggMjM4CQlwYWxlIHR1cnF1b2lzZQoxNzUgMjM4IDIzOAkJUGFsZVR1cnF1b2lzZQogIDAgMjA2IDIwOQkJZGFyayB0dXJxdW9pc2UKICAwIDIwNiAyMDkJCURhcmtUdXJxdW9pc2UKIDcyIDIwOSAyMDQJCW1lZGl1bSB0dXJxdW9pc2UKIDcyIDIwOSAyMDQJCU1lZGl1bVR1cnF1b2lzZQogNjQgMjI0IDIwOAkJdHVycXVvaXNlCiAgMCAyNTUgMjU1CQljeWFuCiAgMCAyNTUgMjU1CQlhcXVhCjIyNCAyNTUgMjU1CQlsaWdodCBjeWFuCjIyNCAyNTUgMjU1CQlMaWdodEN5YW4KIDk1IDE1OCAxNjAJCWNhZGV0IGJsdWUKIDk1IDE1OCAxNjAJCUNhZGV0Qmx1ZQoxMDIgMjA1IDE3MAkJbWVkaXVtIGFxdWFtYXJpbmUKMTAyIDIwNSAxNzAJCU1lZGl1bUFxdWFtYXJpbmUKMTI3IDI1NSAyMTIJCWFxdWFtYXJpbmUKICAwIDEwMCAgIDAJCWRhcmsgZ3JlZW4KICAwIDEwMCAgIDAJCURhcmtHcmVlbgogODUgMTA3ICA0NwkJZGFyayBvbGl2ZSBncmVlbgogODUgMTA3ICA0NwkJRGFya09saXZlR3JlZW4KMTQzIDE4OCAxNDMJCWRhcmsgc2VhIGdyZWVuCjE0MyAxODggMTQzCQlEYXJrU2VhR3JlZW4KIDQ2IDEzOSAgODcJCXNlYSBncmVlbgogNDYgMTM5ICA4NwkJU2VhR3JlZW4KIDYwIDE3OSAxMTMJCW1lZGl1bSBzZWEgZ3JlZW4KIDYwIDE3OSAxMTMJCU1lZGl1bVNlYUdyZWVuCiAzMiAxNzggMTcwCQlsaWdodCBzZWEgZ3JlZW4KIDMyIDE3OCAxNzAJCUxpZ2h0U2VhR3JlZW4KMTUyIDI1MSAxNTIJCXBhbGUgZ3JlZW4KMTUyIDI1MSAxNTIJCVBhbGVHcmVlbgogIDAgMjU1IDEyNwkJc3ByaW5nIGdyZWVuCiAgMCAyNTUgMTI3CQlTcHJpbmdHcmVlbgoxMjQgMjUyICAgMAkJbGF3biBncmVlbgoxMjQgMjUyICAgMAkJTGF3bkdyZWVuCiAgMCAyNTUgICAwCQlncmVlbgogIDAgMjU1ICAgMAkJbGltZQogIDAgMjU1ICAgMAkJeDExIGdyZWVuCiAgMCAyNTUgICAwCQlYMTFHcmVlbgogIDAgMTI4ICAgMAkJd2ViIGdyZWVuCiAgMCAxMjggICAwCQlXZWJHcmVlbgoxMjcgMjU1ICAgMAkJY2hhcnRyZXVzZQogIDAgMjUwIDE1NAkJbWVkaXVtIHNwcmluZyBncmVlbgogIDAgMjUwIDE1NAkJTWVkaXVtU3ByaW5nR3JlZW4KMTczIDI1NSAgNDcJCWdyZWVuIHllbGxvdwoxNzMgMjU1ICA0NwkJR3JlZW5ZZWxsb3cKIDUwIDIwNSAgNTAJCWxpbWUgZ3JlZW4KIDUwIDIwNSAgNTAJCUxpbWVHcmVlbgoxNTQgMjA1ICA1MAkJeWVsbG93IGdyZWVuCjE1NCAyMDUgIDUwCQlZZWxsb3dHcmVlbgogMzQgMTM5ICAzNAkJZm9yZXN0IGdyZWVuCiAzNCAxMzkgIDM0CQlGb3Jlc3RHcmVlbgoxMDcgMTQyICAzNQkJb2xpdmUgZHJhYgoxMDcgMTQyICAzNQkJT2xpdmVEcmFiCjE4OSAxODMgMTA3CQlkYXJrIGtoYWtpCjE4OSAxODMgMTA3CQlEYXJrS2hha2kKMjQwIDIzMCAxNDAJCWtoYWtpCjIzOCAyMzIgMTcwCQlwYWxlIGdvbGRlbnJvZAoyMzggMjMyIDE3MAkJUGFsZUdvbGRlbnJvZAoyNTAgMjUwIDIxMAkJbGlnaHQgZ29sZGVucm9kIHllbGxvdwoyNTAgMjUwIDIxMAkJTGlnaHRHb2xkZW5yb2RZZWxsb3cKMjU1IDI1NSAyMjQJCWxpZ2h0IHllbGxvdwoyNTUgMjU1IDIyNAkJTGlnaHRZZWxsb3cKMjU1IDI1NSAgIDAJCXllbGxvdwoyNTUgMjE1ICAgMAkJZ29sZAoyMzggMjIxIDEzMAkJbGlnaHQgZ29sZGVucm9kCjIzOCAyMjEgMTMwCQlMaWdodEdvbGRlbnJvZAoyMTggMTY1ICAzMgkJZ29sZGVucm9kCjE4NCAxMzQgIDExCQlkYXJrIGdvbGRlbnJvZAoxODQgMTM0ICAxMQkJRGFya0dvbGRlbnJvZAoxODggMTQzIDE0MwkJcm9zeSBicm93bgoxODggMTQzIDE0MwkJUm9zeUJyb3duCjIwNSAgOTIgIDkyCQlpbmRpYW4gcmVkCjIwNSAgOTIgIDkyCQlJbmRpYW5SZWQKMTM5ICA2OSAgMTkJCXNhZGRsZSBicm93bgoxMzkgIDY5ICAxOQkJU2FkZGxlQnJvd24KMTYwICA4MiAgNDUJCXNpZW5uYQoyMDUgMTMzICA2MwkJcGVydQoyMjIgMTg0IDEzNQkJYnVybHl3b29kCjI0NSAyNDUgMjIwCQliZWlnZQoyNDUgMjIyIDE3OQkJd2hlYXQKMjQ0IDE2NCAgOTYJCXNhbmR5IGJyb3duCjI0NCAxNjQgIDk2CQlTYW5keUJyb3duCjIxMCAxODAgMTQwCQl0YW4KMjEwIDEwNSAgMzAJCWNob2NvbGF0ZQoxNzggIDM0ICAzNAkJZmlyZWJyaWNrCjE2NSAgNDIgIDQyCQlicm93bgoyMzMgMTUwIDEyMgkJZGFyayBzYWxtb24KMjMzIDE1MCAxMjIJCURhcmtTYWxtb24KMjUwIDEyOCAxMTQJCXNhbG1vbgoyNTUgMTYwIDEyMgkJbGlnaHQgc2FsbW9uCjI1NSAxNjAgMTIyCQlMaWdodFNhbG1vbgoyNTUgMTY1ICAgMAkJb3JhbmdlCjI1NSAxNDAgICAwCQlkYXJrIG9yYW5nZQoyNTUgMTQwICAgMAkJRGFya09yYW5nZQoyNTUgMTI3ICA4MAkJY29yYWwKMjQwIDEyOCAxMjgJCWxpZ2h0IGNvcmFsCjI0MCAxMjggMTI4CQlMaWdodENvcmFsCjI1NSAgOTkgIDcxCQl0b21hdG8KMjU1ICA2OSAgIDAJCW9yYW5nZSByZWQKMjU1ICA2OSAgIDAJCU9yYW5nZVJlZAoyNTUgICAwICAgMAkJcmVkCjI1NSAxMDUgMTgwCQlob3QgcGluawoyNTUgMTA1IDE4MAkJSG90UGluawoyNTUgIDIwIDE0NwkJZGVlcCBwaW5rCjI1NSAgMjAgMTQ3CQlEZWVwUGluawoyNTUgMTkyIDIwMwkJcGluawoyNTUgMTgyIDE5MwkJbGlnaHQgcGluawoyNTUgMTgyIDE5MwkJTGlnaHRQaW5rCjIxOSAxMTIgMTQ3CQlwYWxlIHZpb2xldCByZWQKMjE5IDExMiAxNDcJCVBhbGVWaW9sZXRSZWQKMTc2ICA0OCAgOTYJCW1hcm9vbgoxNzYgIDQ4ICA5NgkJeDExIG1hcm9vbgoxNzYgIDQ4ICA5NgkJWDExTWFyb29uCjEyOCAgIDAgICAwCQl3ZWIgbWFyb29uCjEyOCAgIDAgICAwCQlXZWJNYXJvb24KMTk5ICAyMSAxMzMJCW1lZGl1bSB2aW9sZXQgcmVkCjE5OSAgMjEgMTMzCQlNZWRpdW1WaW9sZXRSZWQKMjA4ICAzMiAxNDQJCXZpb2xldCByZWQKMjA4ICAzMiAxNDQJCVZpb2xldFJlZAoyNTUgICAwIDI1NQkJbWFnZW50YQoyNTUgICAwIDI1NQkJZnVjaHNpYQoyMzggMTMwIDIzOAkJdmlvbGV0CjIyMSAxNjAgMjIxCQlwbHVtCjIxOCAxMTIgMjE0CQlvcmNoaWQKMTg2ICA4NSAyMTEJCW1lZGl1bSBvcmNoaWQKMTg2ICA4NSAyMTEJCU1lZGl1bU9yY2hpZAoxNTMgIDUwIDIwNAkJZGFyayBvcmNoaWQKMTUzICA1MCAyMDQJCURhcmtPcmNoaWQKMTQ4ICAgMCAyMTEJCWRhcmsgdmlvbGV0CjE0OCAgIDAgMjExCQlEYXJrVmlvbGV0CjEzOCAgNDMgMjI2CQlibHVlIHZpb2xldAoxMzggIDQzIDIyNgkJQmx1ZVZpb2xldAoxNjAgIDMyIDI0MAkJcHVycGxlCjE2MCAgMzIgMjQwCQl4MTEgcHVycGxlCjE2MCAgMzIgMjQwCQlYMTFQdXJwbGUKMTI4ICAgMCAxMjgJCXdlYiBwdXJwbGUKMTI4ICAgMCAxMjgJCVdlYlB1cnBsZQoxNDcgMTEyIDIxOQkJbWVkaXVtIHB1cnBsZQoxNDcgMTEyIDIxOQkJTWVkaXVtUHVycGxlCjIxNiAxOTEgMjE2CQl0aGlzdGxlCjI1NSAyNTAgMjUwCQlzbm93MQoyMzggMjMzIDIzMwkJc25vdzIKMjA1IDIwMSAyMDEJCXNub3czCjEzOSAxMzcgMTM3CQlzbm93NAoyNTUgMjQ1IDIzOAkJc2Vhc2hlbGwxCjIzOCAyMjkgMjIyCQlzZWFzaGVsbDIKMjA1IDE5NyAxOTEJCXNlYXNoZWxsMwoxMzkgMTM0IDEzMAkJc2Vhc2hlbGw0CjI1NSAyMzkgMjE5CQlBbnRpcXVlV2hpdGUxCjIzOCAyMjMgMjA0CQlBbnRpcXVlV2hpdGUyCjIwNSAxOTIgMTc2CQlBbnRpcXVlV2hpdGUzCjEzOSAxMzEgMTIwCQlBbnRpcXVlV2hpdGU0CjI1NSAyMjggMTk2CQliaXNxdWUxCjIzOCAyMTMgMTgzCQliaXNxdWUyCjIwNSAxODMgMTU4CQliaXNxdWUzCjEzOSAxMjUgMTA3CQliaXNxdWU0CjI1NSAyMTggMTg1CQlQZWFjaFB1ZmYxCjIzOCAyMDMgMTczCQlQZWFjaFB1ZmYyCjIwNSAxNzUgMTQ5CQlQZWFjaFB1ZmYzCjEzOSAxMTkgMTAxCQlQZWFjaFB1ZmY0CjI1NSAyMjIgMTczCQlOYXZham9XaGl0ZTEKMjM4IDIwNyAxNjEJCU5hdmFqb1doaXRlMgoyMDUgMTc5IDEzOQkJTmF2YWpvV2hpdGUzCjEzOSAxMjEgIDk0CQlOYXZham9XaGl0ZTQKMjU1IDI1MCAyMDUJCUxlbW9uQ2hpZmZvbjEKMjM4IDIzMyAxOTEJCUxlbW9uQ2hpZmZvbjIKMjA1IDIwMSAxNjUJCUxlbW9uQ2hpZmZvbjMKMTM5IDEzNyAxMTIJCUxlbW9uQ2hpZmZvbjQKMjU1IDI0OCAyMjAJCWNvcm5zaWxrMQoyMzggMjMyIDIwNQkJY29ybnNpbGsyCjIwNSAyMDAgMTc3CQljb3Juc2lsazMKMTM5IDEzNiAxMjAJCWNvcm5zaWxrNAoyNTUgMjU1IDI0MAkJaXZvcnkxCjIzOCAyMzggMjI0CQlpdm9yeTIKMjA1IDIwNSAxOTMJCWl2b3J5MwoxMzkgMTM5IDEzMQkJaXZvcnk0CjI0MCAyNTUgMjQwCQlob25leWRldzEKMjI0IDIzOCAyMjQJCWhvbmV5ZGV3MgoxOTMgMjA1IDE5MwkJaG9uZXlkZXczCjEzMSAxMzkgMTMxCQlob25leWRldzQKMjU1IDI0MCAyNDUJCUxhdmVuZGVyQmx1c2gxCjIzOCAyMjQgMjI5CQlMYXZlbmRlckJsdXNoMgoyMDUgMTkzIDE5NwkJTGF2ZW5kZXJCbHVzaDMKMTM5IDEzMSAxMzQJCUxhdmVuZGVyQmx1c2g0CjI1NSAyMjggMjI1CQlNaXN0eVJvc2UxCjIzOCAyMTMgMjEwCQlNaXN0eVJvc2UyCjIwNSAxODMgMTgxCQlNaXN0eVJvc2UzCjEzOSAxMjUgMTIzCQlNaXN0eVJvc2U0CjI0MCAyNTUgMjU1CQlhenVyZTEKMjI0IDIzOCAyMzgJCWF6dXJlMgoxOTMgMjA1IDIwNQkJYXp1cmUzCjEzMSAxMzkgMTM5CQlhenVyZTQKMTMxIDExMSAyNTUJCVNsYXRlQmx1ZTEKMTIyIDEwMyAyMzgJCVNsYXRlQmx1ZTIKMTA1ICA4OSAyMDUJCVNsYXRlQmx1ZTMKIDcxICA2MCAxMzkJCVNsYXRlQmx1ZTQKIDcyIDExOCAyNTUJCVJveWFsQmx1ZTEKIDY3IDExMCAyMzgJCVJveWFsQmx1ZTIKIDU4ICA5NSAyMDUJCVJveWFsQmx1ZTMKIDM5ICA2NCAxMzkJCVJveWFsQmx1ZTQKICAwICAgMCAyNTUJCWJsdWUxCiAgMCAgIDAgMjM4CQlibHVlMgogIDAgICAwIDIwNQkJYmx1ZTMKICAwICAgMCAxMzkJCWJsdWU0CiAzMCAxNDQgMjU1CQlEb2RnZXJCbHVlMQogMjggMTM0IDIzOAkJRG9kZ2VyQmx1ZTIKIDI0IDExNiAyMDUJCURvZGdlckJsdWUzCiAxNiAgNzggMTM5CQlEb2RnZXJCbHVlNAogOTkgMTg0IDI1NQkJU3RlZWxCbHVlMQogOTIgMTcyIDIzOAkJU3RlZWxCbHVlMgogNzkgMTQ4IDIwNQkJU3RlZWxCbHVlMwogNTQgMTAwIDEzOQkJU3RlZWxCbHVlNAogIDAgMTkxIDI1NQkJRGVlcFNreUJsdWUxCiAgMCAxNzggMjM4CQlEZWVwU2t5Qmx1ZTIKICAwIDE1NCAyMDUJCURlZXBTa3lCbHVlMwogIDAgMTA0IDEzOQkJRGVlcFNreUJsdWU0CjEzNSAyMDYgMjU1CQlTa3lCbHVlMQoxMjYgMTkyIDIzOAkJU2t5Qmx1ZTIKMTA4IDE2NiAyMDUJCVNreUJsdWUzCiA3NCAxMTIgMTM5CQlTa3lCbHVlNAoxNzYgMjI2IDI1NQkJTGlnaHRTa3lCbHVlMQoxNjQgMjExIDIzOAkJTGlnaHRTa3lCbHVlMgoxNDEgMTgyIDIwNQkJTGlnaHRTa3lCbHVlMwogOTYgMTIzIDEzOQkJTGlnaHRTa3lCbHVlNAoxOTggMjI2IDI1NQkJU2xhdGVHcmF5MQoxODUgMjExIDIzOAkJU2xhdGVHcmF5MgoxNTkgMTgyIDIwNQkJU2xhdGVHcmF5MwoxMDggMTIzIDEzOQkJU2xhdGVHcmF5NAoyMDIgMjI1IDI1NQkJTGlnaHRTdGVlbEJsdWUxCjE4OCAyMTAgMjM4CQlMaWdodFN0ZWVsQmx1ZTIKMTYyIDE4MSAyMDUJCUxpZ2h0U3RlZWxCbHVlMwoxMTAgMTIzIDEzOQkJTGlnaHRTdGVlbEJsdWU0CjE5MSAyMzkgMjU1CQlMaWdodEJsdWUxCjE3OCAyMjMgMjM4CQlMaWdodEJsdWUyCjE1NCAxOTIgMjA1CQlMaWdodEJsdWUzCjEwNCAxMzEgMTM5CQlMaWdodEJsdWU0CjIyNCAyNTUgMjU1CQlMaWdodEN5YW4xCjIwOSAyMzggMjM4CQlMaWdodEN5YW4yCjE4MCAyMDUgMjA1CQlMaWdodEN5YW4zCjEyMiAxMzkgMTM5CQlMaWdodEN5YW40CjE4NyAyNTUgMjU1CQlQYWxlVHVycXVvaXNlMQoxNzQgMjM4IDIzOAkJUGFsZVR1cnF1b2lzZTIKMTUwIDIwNSAyMDUJCVBhbGVUdXJxdW9pc2UzCjEwMiAxMzkgMTM5CQlQYWxlVHVycXVvaXNlNAoxNTIgMjQ1IDI1NQkJQ2FkZXRCbHVlMQoxNDIgMjI5IDIzOAkJQ2FkZXRCbHVlMgoxMjIgMTk3IDIwNQkJQ2FkZXRCbHVlMwogODMgMTM0IDEzOQkJQ2FkZXRCbHVlNAogIDAgMjQ1IDI1NQkJdHVycXVvaXNlMQogIDAgMjI5IDIzOAkJdHVycXVvaXNlMgogIDAgMTk3IDIwNQkJdHVycXVvaXNlMwogIDAgMTM0IDEzOQkJdHVycXVvaXNlNAogIDAgMjU1IDI1NQkJY3lhbjEKICAwIDIzOCAyMzgJCWN5YW4yCiAgMCAyMDUgMjA1CQljeWFuMwogIDAgMTM5IDEzOQkJY3lhbjQKMTUxIDI1NSAyNTUJCURhcmtTbGF0ZUdyYXkxCjE0MSAyMzggMjM4CQlEYXJrU2xhdGVHcmF5MgoxMjEgMjA1IDIwNQkJRGFya1NsYXRlR3JheTMKIDgyIDEzOSAxMzkJCURhcmtTbGF0ZUdyYXk0CjEyNyAyNTUgMjEyCQlhcXVhbWFyaW5lMQoxMTggMjM4IDE5OAkJYXF1YW1hcmluZTIKMTAyIDIwNSAxNzAJCWFxdWFtYXJpbmUzCiA2OSAxMzkgMTE2CQlhcXVhbWFyaW5lNAoxOTMgMjU1IDE5MwkJRGFya1NlYUdyZWVuMQoxODAgMjM4IDE4MAkJRGFya1NlYUdyZWVuMgoxNTUgMjA1IDE1NQkJRGFya1NlYUdyZWVuMwoxMDUgMTM5IDEwNQkJRGFya1NlYUdyZWVuNAogODQgMjU1IDE1OQkJU2VhR3JlZW4xCiA3OCAyMzggMTQ4CQlTZWFHcmVlbjIKIDY3IDIwNSAxMjgJCVNlYUdyZWVuMwogNDYgMTM5ICA4NwkJU2VhR3JlZW40CjE1NCAyNTUgMTU0CQlQYWxlR3JlZW4xCjE0NCAyMzggMTQ0CQlQYWxlR3JlZW4yCjEyNCAyMDUgMTI0CQlQYWxlR3JlZW4zCiA4NCAxMzkgIDg0CQlQYWxlR3JlZW40CiAgMCAyNTUgMTI3CQlTcHJpbmdHcmVlbjEKICAwIDIzOCAxMTgJCVNwcmluZ0dyZWVuMgogIDAgMjA1IDEwMgkJU3ByaW5nR3JlZW4zCiAgMCAxMzkgIDY5CQlTcHJpbmdHcmVlbjQKICAwIDI1NSAgIDAJCWdyZWVuMQogIDAgMjM4ICAgMAkJZ3JlZW4yCiAgMCAyMDUgICAwCQlncmVlbjMKICAwIDEzOSAgIDAJCWdyZWVuNAoxMjcgMjU1ICAgMAkJY2hhcnRyZXVzZTEKMTE4IDIzOCAgIDAJCWNoYXJ0cmV1c2UyCjEwMiAyMDUgICAwCQljaGFydHJldXNlMwogNjkgMTM5ICAgMAkJY2hhcnRyZXVzZTQKMTkyIDI1NSAgNjIJCU9saXZlRHJhYjEKMTc5IDIzOCAgNTgJCU9saXZlRHJhYjIKMTU0IDIwNSAgNTAJCU9saXZlRHJhYjMKMTA1IDEzOSAgMzQJCU9saXZlRHJhYjQKMjAyIDI1NSAxMTIJCURhcmtPbGl2ZUdyZWVuMQoxODggMjM4IDEwNAkJRGFya09saXZlR3JlZW4yCjE2MiAyMDUgIDkwCQlEYXJrT2xpdmVHcmVlbjMKMTEwIDEzOSAgNjEJCURhcmtPbGl2ZUdyZWVuNAoyNTUgMjQ2IDE0MwkJa2hha2kxCjIzOCAyMzAgMTMzCQlraGFraTIKMjA1IDE5OCAxMTUJCWtoYWtpMwoxMzkgMTM0ICA3OAkJa2hha2k0CjI1NSAyMzYgMTM5CQlMaWdodEdvbGRlbnJvZDEKMjM4IDIyMCAxMzAJCUxpZ2h0R29sZGVucm9kMgoyMDUgMTkwIDExMgkJTGlnaHRHb2xkZW5yb2QzCjEzOSAxMjkgIDc2CQlMaWdodEdvbGRlbnJvZDQKMjU1IDI1NSAyMjQJCUxpZ2h0WWVsbG93MQoyMzggMjM4IDIwOQkJTGlnaHRZZWxsb3cyCjIwNSAyMDUgMTgwCQlMaWdodFllbGxvdzMKMTM5IDEzOSAxMjIJCUxpZ2h0WWVsbG93NAoyNTUgMjU1ICAgMAkJeWVsbG93MQoyMzggMjM4ICAgMAkJeWVsbG93MgoyMDUgMjA1ICAgMAkJeWVsbG93MwoxMzkgMTM5ICAgMAkJeWVsbG93NAoyNTUgMjE1ICAgMAkJZ29sZDEKMjM4IDIwMSAgIDAJCWdvbGQyCjIwNSAxNzMgICAwCQlnb2xkMwoxMzkgMTE3ICAgMAkJZ29sZDQKMjU1IDE5MyAgMzcJCWdvbGRlbnJvZDEKMjM4IDE4MCAgMzQJCWdvbGRlbnJvZDIKMjA1IDE1NSAgMjkJCWdvbGRlbnJvZDMKMTM5IDEwNSAgMjAJCWdvbGRlbnJvZDQKMjU1IDE4NSAgMTUJCURhcmtHb2xkZW5yb2QxCjIzOCAxNzMgIDE0CQlEYXJrR29sZGVucm9kMgoyMDUgMTQ5ICAxMgkJRGFya0dvbGRlbnJvZDMKMTM5IDEwMSAgIDgJCURhcmtHb2xkZW5yb2Q0CjI1NSAxOTMgMTkzCQlSb3N5QnJvd24xCjIzOCAxODAgMTgwCQlSb3N5QnJvd24yCjIwNSAxNTUgMTU1CQlSb3N5QnJvd24zCjEzOSAxMDUgMTA1CQlSb3N5QnJvd240CjI1NSAxMDYgMTA2CQlJbmRpYW5SZWQxCjIzOCAgOTkgIDk5CQlJbmRpYW5SZWQyCjIwNSAgODUgIDg1CQlJbmRpYW5SZWQzCjEzOSAgNTggIDU4CQlJbmRpYW5SZWQ0CjI1NSAxMzAgIDcxCQlzaWVubmExCjIzOCAxMjEgIDY2CQlzaWVubmEyCjIwNSAxMDQgIDU3CQlzaWVubmEzCjEzOSAgNzEgIDM4CQlzaWVubmE0CjI1NSAyMTEgMTU1CQlidXJseXdvb2QxCjIzOCAxOTcgMTQ1CQlidXJseXdvb2QyCjIwNSAxNzAgMTI1CQlidXJseXdvb2QzCjEzOSAxMTUgIDg1CQlidXJseXdvb2Q0CjI1NSAyMzEgMTg2CQl3aGVhdDEKMjM4IDIxNiAxNzQJCXdoZWF0MgoyMDUgMTg2IDE1MAkJd2hlYXQzCjEzOSAxMjYgMTAyCQl3aGVhdDQKMjU1IDE2NSAgNzkJCXRhbjEKMjM4IDE1NCAgNzMJCXRhbjIKMjA1IDEzMyAgNjMJCXRhbjMKMTM5ICA5MCAgNDMJCXRhbjQKMjU1IDEyNyAgMzYJCWNob2NvbGF0ZTEKMjM4IDExOCAgMzMJCWNob2NvbGF0ZTIKMjA1IDEwMiAgMjkJCWNob2NvbGF0ZTMKMTM5ICA2OSAgMTkJCWNob2NvbGF0ZTQKMjU1ICA0OCAgNDgJCWZpcmVicmljazEKMjM4ICA0NCAgNDQJCWZpcmVicmljazIKMjA1ICAzOCAgMzgJCWZpcmVicmljazMKMTM5ICAyNiAgMjYJCWZpcmVicmljazQKMjU1ICA2NCAgNjQJCWJyb3duMQoyMzggIDU5ICA1OQkJYnJvd24yCjIwNSAgNTEgIDUxCQlicm93bjMKMTM5ICAzNSAgMzUJCWJyb3duNAoyNTUgMTQwIDEwNQkJc2FsbW9uMQoyMzggMTMwICA5OAkJc2FsbW9uMgoyMDUgMTEyICA4NAkJc2FsbW9uMwoxMzkgIDc2ICA1NwkJc2FsbW9uNAoyNTUgMTYwIDEyMgkJTGlnaHRTYWxtb24xCjIzOCAxNDkgMTE0CQlMaWdodFNhbG1vbjIKMjA1IDEyOSAgOTgJCUxpZ2h0U2FsbW9uMwoxMzkgIDg3ICA2NgkJTGlnaHRTYWxtb240CjI1NSAxNjUgICAwCQlvcmFuZ2UxCjIzOCAxNTQgICAwCQlvcmFuZ2UyCjIwNSAxMzMgICAwCQlvcmFuZ2UzCjEzOSAgOTAgICAwCQlvcmFuZ2U0CjI1NSAxMjcgICAwCQlEYXJrT3JhbmdlMQoyMzggMTE4ICAgMAkJRGFya09yYW5nZTIKMjA1IDEwMiAgIDAJCURhcmtPcmFuZ2UzCjEzOSAgNjkgICAwCQlEYXJrT3JhbmdlNAoyNTUgMTE0ICA4NgkJY29yYWwxCjIzOCAxMDYgIDgwCQljb3JhbDIKMjA1ICA5MSAgNjkJCWNvcmFsMwoxMzkgIDYyICA0NwkJY29yYWw0CjI1NSAgOTkgIDcxCQl0b21hdG8xCjIzOCAgOTIgIDY2CQl0b21hdG8yCjIwNSAgNzkgIDU3CQl0b21hdG8zCjEzOSAgNTQgIDM4CQl0b21hdG80CjI1NSAgNjkgICAwCQlPcmFuZ2VSZWQxCjIzOCAgNjQgICAwCQlPcmFuZ2VSZWQyCjIwNSAgNTUgICAwCQlPcmFuZ2VSZWQzCjEzOSAgMzcgICAwCQlPcmFuZ2VSZWQ0CjI1NSAgIDAgICAwCQlyZWQxCjIzOCAgIDAgICAwCQlyZWQyCjIwNSAgIDAgICAwCQlyZWQzCjEzOSAgIDAgICAwCQlyZWQ0CjI1NSAgMjAgMTQ3CQlEZWVwUGluazEKMjM4ICAxOCAxMzcJCURlZXBQaW5rMgoyMDUgIDE2IDExOAkJRGVlcFBpbmszCjEzOSAgMTAgIDgwCQlEZWVwUGluazQKMjU1IDExMCAxODAJCUhvdFBpbmsxCjIzOCAxMDYgMTY3CQlIb3RQaW5rMgoyMDUgIDk2IDE0NAkJSG90UGluazMKMTM5ICA1OCAgOTgJCUhvdFBpbms0CjI1NSAxODEgMTk3CQlwaW5rMQoyMzggMTY5IDE4NAkJcGluazIKMjA1IDE0NSAxNTgJCXBpbmszCjEzOSAgOTkgMTA4CQlwaW5rNAoyNTUgMTc0IDE4NQkJTGlnaHRQaW5rMQoyMzggMTYyIDE3MwkJTGlnaHRQaW5rMgoyMDUgMTQwIDE0OQkJTGlnaHRQaW5rMwoxMzkgIDk1IDEwMQkJTGlnaHRQaW5rNAoyNTUgMTMwIDE3MQkJUGFsZVZpb2xldFJlZDEKMjM4IDEyMSAxNTkJCVBhbGVWaW9sZXRSZWQyCjIwNSAxMDQgMTM3CQlQYWxlVmlvbGV0UmVkMwoxMzkgIDcxICA5MwkJUGFsZVZpb2xldFJlZDQKMjU1ICA1MiAxNzkJCW1hcm9vbjEKMjM4ICA0OCAxNjcJCW1hcm9vbjIKMjA1ICA0MSAxNDQJCW1hcm9vbjMKMTM5ICAyOCAgOTgJCW1hcm9vbjQKMjU1ICA2MiAxNTAJCVZpb2xldFJlZDEKMjM4ICA1OCAxNDAJCVZpb2xldFJlZDIKMjA1ICA1MCAxMjAJCVZpb2xldFJlZDMKMTM5ICAzNCAgODIJCVZpb2xldFJlZDQKMjU1ICAgMCAyNTUJCW1hZ2VudGExCjIzOCAgIDAgMjM4CQltYWdlbnRhMgoyMDUgICAwIDIwNQkJbWFnZW50YTMKMTM5ICAgMCAxMzkJCW1hZ2VudGE0CjI1NSAxMzEgMjUwCQlvcmNoaWQxCjIzOCAxMjIgMjMzCQlvcmNoaWQyCjIwNSAxMDUgMjAxCQlvcmNoaWQzCjEzOSAgNzEgMTM3CQlvcmNoaWQ0CjI1NSAxODcgMjU1CQlwbHVtMQoyMzggMTc0IDIzOAkJcGx1bTIKMjA1IDE1MCAyMDUJCXBsdW0zCjEzOSAxMDIgMTM5CQlwbHVtNAoyMjQgMTAyIDI1NQkJTWVkaXVtT3JjaGlkMQoyMDkgIDk1IDIzOAkJTWVkaXVtT3JjaGlkMgoxODAgIDgyIDIwNQkJTWVkaXVtT3JjaGlkMwoxMjIgIDU1IDEzOQkJTWVkaXVtT3JjaGlkNAoxOTEgIDYyIDI1NQkJRGFya09yY2hpZDEKMTc4ICA1OCAyMzgJCURhcmtPcmNoaWQyCjE1NCAgNTAgMjA1CQlEYXJrT3JjaGlkMwoxMDQgIDM0IDEzOQkJRGFya09yY2hpZDQKMTU1ICA0OCAyNTUJCXB1cnBsZTEKMTQ1ICA0NCAyMzgJCXB1cnBsZTIKMTI1ICAzOCAyMDUJCXB1cnBsZTMKIDg1ICAyNiAxMzkJCXB1cnBsZTQKMTcxIDEzMCAyNTUJCU1lZGl1bVB1cnBsZTEKMTU5IDEyMSAyMzgJCU1lZGl1bVB1cnBsZTIKMTM3IDEwNCAyMDUJCU1lZGl1bVB1cnBsZTMKIDkzICA3MSAxMzkJCU1lZGl1bVB1cnBsZTQKMjU1IDIyNSAyNTUJCXRoaXN0bGUxCjIzOCAyMTAgMjM4CQl0aGlzdGxlMgoyMDUgMTgxIDIwNQkJdGhpc3RsZTMKMTM5IDEyMyAxMzkJCXRoaXN0bGU0CiAgMCAgIDAgICAwCQlncmF5MAogIDAgICAwICAgMAkJZ3JleTAKICAzICAgMyAgIDMJCWdyYXkxCiAgMyAgIDMgICAzCQlncmV5MQogIDUgICA1ICAgNQkJZ3JheTIKICA1ICAgNSAgIDUJCWdyZXkyCiAgOCAgIDggICA4CQlncmF5MwogIDggICA4ICAgOAkJZ3JleTMKIDEwICAxMCAgMTAJCWdyYXk0CiAxMCAgMTAgIDEwCQlncmV5NAogMTMgIDEzICAxMwkJZ3JheTUKIDEzICAxMyAgMTMJCWdyZXk1CiAxNSAgMTUgIDE1CQlncmF5NgogMTUgIDE1ICAxNQkJZ3JleTYKIDE4ICAxOCAgMTgJCWdyYXk3CiAxOCAgMTggIDE4CQlncmV5NwogMjAgIDIwICAyMAkJZ3JheTgKIDIwICAyMCAgMjAJCWdyZXk4CiAyMyAgMjMgIDIzCQlncmF5OQogMjMgIDIzICAyMwkJZ3JleTkKIDI2ICAyNiAgMjYJCWdyYXkxMAogMjYgIDI2ICAyNgkJZ3JleTEwCiAyOCAgMjggIDI4CQlncmF5MTEKIDI4ICAyOCAgMjgJCWdyZXkxMQogMzEgIDMxICAzMQkJZ3JheTEyCiAzMSAgMzEgIDMxCQlncmV5MTIKIDMzICAzMyAgMzMJCWdyYXkxMwogMzMgIDMzICAzMwkJZ3JleTEzCiAzNiAgMzYgIDM2CQlncmF5MTQKIDM2ICAzNiAgMzYJCWdyZXkxNAogMzggIDM4ICAzOAkJZ3JheTE1CiAzOCAgMzggIDM4CQlncmV5MTUKIDQxICA0MSAgNDEJCWdyYXkxNgogNDEgIDQxICA0MQkJZ3JleTE2CiA0MyAgNDMgIDQzCQlncmF5MTcKIDQzICA0MyAgNDMJCWdyZXkxNwogNDYgIDQ2ICA0NgkJZ3JheTE4CiA0NiAgNDYgIDQ2CQlncmV5MTgKIDQ4ICA0OCAgNDgJCWdyYXkxOQogNDggIDQ4ICA0OAkJZ3JleTE5CiA1MSAgNTEgIDUxCQlncmF5MjAKIDUxICA1MSAgNTEJCWdyZXkyMAogNTQgIDU0ICA1NAkJZ3JheTIxCiA1NCAgNTQgIDU0CQlncmV5MjEKIDU2ICA1NiAgNTYJCWdyYXkyMgogNTYgIDU2ICA1NgkJZ3JleTIyCiA1OSAgNTkgIDU5CQlncmF5MjMKIDU5ICA1OSAgNTkJCWdyZXkyMwogNjEgIDYxICA2MQkJZ3JheTI0CiA2MSAgNjEgIDYxCQlncmV5MjQKIDY0ICA2NCAgNjQJCWdyYXkyNQogNjQgIDY0ICA2NAkJZ3JleTI1CiA2NiAgNjYgIDY2CQlncmF5MjYKIDY2ICA2NiAgNjYJCWdyZXkyNgogNjkgIDY5ICA2OQkJZ3JheTI3CiA2OSAgNjkgIDY5CQlncmV5MjcKIDcxICA3MSAgNzEJCWdyYXkyOAogNzEgIDcxICA3MQkJZ3JleTI4CiA3NCAgNzQgIDc0CQlncmF5MjkKIDc0ICA3NCAgNzQJCWdyZXkyOQogNzcgIDc3ICA3NwkJZ3JheTMwCiA3NyAgNzcgIDc3CQlncmV5MzAKIDc5ICA3OSAgNzkJCWdyYXkzMQogNzkgIDc5ICA3OQkJZ3JleTMxCiA4MiAgODIgIDgyCQlncmF5MzIKIDgyICA4MiAgODIJCWdyZXkzMgogODQgIDg0ICA4NAkJZ3JheTMzCiA4NCAgODQgIDg0CQlncmV5MzMKIDg3ICA4NyAgODcJCWdyYXkzNAogODcgIDg3ICA4NwkJZ3JleTM0CiA4OSAgODkgIDg5CQlncmF5MzUKIDg5ICA4OSAgODkJCWdyZXkzNQogOTIgIDkyICA5MgkJZ3JheTM2CiA5MiAgOTIgIDkyCQlncmV5MzYKIDk0ICA5NCAgOTQJCWdyYXkzNwogOTQgIDk0ICA5NAkJZ3JleTM3CiA5NyAgOTcgIDk3CQlncmF5MzgKIDk3ICA5NyAgOTcJCWdyZXkzOAogOTkgIDk5ICA5OQkJZ3JheTM5CiA5OSAgOTkgIDk5CQlncmV5MzkKMTAyIDEwMiAxMDIJCWdyYXk0MAoxMDIgMTAyIDEwMgkJZ3JleTQwCjEwNSAxMDUgMTA1CQlncmF5NDEKMTA1IDEwNSAxMDUJCWdyZXk0MQoxMDcgMTA3IDEwNwkJZ3JheTQyCjEwNyAxMDcgMTA3CQlncmV5NDIKMTEwIDExMCAxMTAJCWdyYXk0MwoxMTAgMTEwIDExMAkJZ3JleTQzCjExMiAxMTIgMTEyCQlncmF5NDQKMTEyIDExMiAxMTIJCWdyZXk0NAoxMTUgMTE1IDExNQkJZ3JheTQ1CjExNSAxMTUgMTE1CQlncmV5NDUKMTE3IDExNyAxMTcJCWdyYXk0NgoxMTcgMTE3IDExNwkJZ3JleTQ2CjEyMCAxMjAgMTIwCQlncmF5NDcKMTIwIDEyMCAxMjAJCWdyZXk0NwoxMjIgMTIyIDEyMgkJZ3JheTQ4CjEyMiAxMjIgMTIyCQlncmV5NDgKMTI1IDEyNSAxMjUJCWdyYXk0OQoxMjUgMTI1IDEyNQkJZ3JleTQ5CjEyNyAxMjcgMTI3CQlncmF5NTAKMTI3IDEyNyAxMjcJCWdyZXk1MAoxMzAgMTMwIDEzMAkJZ3JheTUxCjEzMCAxMzAgMTMwCQlncmV5NTEKMTMzIDEzMyAxMzMJCWdyYXk1MgoxMzMgMTMzIDEzMwkJZ3JleTUyCjEzNSAxMzUgMTM1CQlncmF5NTMKMTM1IDEzNSAxMzUJCWdyZXk1MwoxMzggMTM4IDEzOAkJZ3JheTU0CjEzOCAxMzggMTM4CQlncmV5NTQKMTQwIDE0MCAxNDAJCWdyYXk1NQoxNDAgMTQwIDE0MAkJZ3JleTU1CjE0MyAxNDMgMTQzCQlncmF5NTYKMTQzIDE0MyAxNDMJCWdyZXk1NgoxNDUgMTQ1IDE0NQkJZ3JheTU3CjE0NSAxNDUgMTQ1CQlncmV5NTcKMTQ4IDE0OCAxNDgJCWdyYXk1OAoxNDggMTQ4IDE0OAkJZ3JleTU4CjE1MCAxNTAgMTUwCQlncmF5NTkKMTUwIDE1MCAxNTAJCWdyZXk1OQoxNTMgMTUzIDE1MwkJZ3JheTYwCjE1MyAxNTMgMTUzCQlncmV5NjAKMTU2IDE1NiAxNTYJCWdyYXk2MQoxNTYgMTU2IDE1NgkJZ3JleTYxCjE1OCAxNTggMTU4CQlncmF5NjIKMTU4IDE1OCAxNTgJCWdyZXk2MgoxNjEgMTYxIDE2MQkJZ3JheTYzCjE2MSAxNjEgMTYxCQlncmV5NjMKMTYzIDE2MyAxNjMJCWdyYXk2NAoxNjMgMTYzIDE2MwkJZ3JleTY0CjE2NiAxNjYgMTY2CQlncmF5NjUKMTY2IDE2NiAxNjYJCWdyZXk2NQoxNjggMTY4IDE2OAkJZ3JheTY2CjE2OCAxNjggMTY4CQlncmV5NjYKMTcxIDE3MSAxNzEJCWdyYXk2NwoxNzEgMTcxIDE3MQkJZ3JleTY3CjE3MyAxNzMgMTczCQlncmF5NjgKMTczIDE3MyAxNzMJCWdyZXk2OAoxNzYgMTc2IDE3NgkJZ3JheTY5CjE3NiAxNzYgMTc2CQlncmV5NjkKMTc5IDE3OSAxNzkJCWdyYXk3MAoxNzkgMTc5IDE3OQkJZ3JleTcwCjE4MSAxODEgMTgxCQlncmF5NzEKMTgxIDE4MSAxODEJCWdyZXk3MQoxODQgMTg0IDE4NAkJZ3JheTcyCjE4NCAxODQgMTg0CQlncmV5NzIKMTg2IDE4NiAxODYJCWdyYXk3MwoxODYgMTg2IDE4NgkJZ3JleTczCjE4OSAxODkgMTg5CQlncmF5NzQKMTg5IDE4OSAxODkJCWdyZXk3NAoxOTEgMTkxIDE5MQkJZ3JheTc1CjE5MSAxOTEgMTkxCQlncmV5NzUKMTk0IDE5NCAxOTQJCWdyYXk3NgoxOTQgMTk0IDE5NAkJZ3JleTc2CjE5NiAxOTYgMTk2CQlncmF5NzcKMTk2IDE5NiAxOTYJCWdyZXk3NwoxOTkgMTk5IDE5OQkJZ3JheTc4CjE5OSAxOTkgMTk5CQlncmV5NzgKMjAxIDIwMSAyMDEJCWdyYXk3OQoyMDEgMjAxIDIwMQkJZ3JleTc5CjIwNCAyMDQgMjA0CQlncmF5ODAKMjA0IDIwNCAyMDQJCWdyZXk4MAoyMDcgMjA3IDIwNwkJZ3JheTgxCjIwNyAyMDcgMjA3CQlncmV5ODEKMjA5IDIwOSAyMDkJCWdyYXk4MgoyMDkgMjA5IDIwOQkJZ3JleTgyCjIxMiAyMTIgMjEyCQlncmF5ODMKMjEyIDIxMiAyMTIJCWdyZXk4MwoyMTQgMjE0IDIxNAkJZ3JheTg0CjIxNCAyMTQgMjE0CQlncmV5ODQKMjE3IDIxNyAyMTcJCWdyYXk4NQoyMTcgMjE3IDIxNwkJZ3JleTg1CjIxOSAyMTkgMjE5CQlncmF5ODYKMjE5IDIxOSAyMTkJCWdyZXk4NgoyMjIgMjIyIDIyMgkJZ3JheTg3CjIyMiAyMjIgMjIyCQlncmV5ODcKMjI0IDIyNCAyMjQJCWdyYXk4OAoyMjQgMjI0IDIyNAkJZ3JleTg4CjIyNyAyMjcgMjI3CQlncmF5ODkKMjI3IDIyNyAyMjcJCWdyZXk4OQoyMjkgMjI5IDIyOQkJZ3JheTkwCjIyOSAyMjkgMjI5CQlncmV5OTAKMjMyIDIzMiAyMzIJCWdyYXk5MQoyMzIgMjMyIDIzMgkJZ3JleTkxCjIzNSAyMzUgMjM1CQlncmF5OTIKMjM1IDIzNSAyMzUJCWdyZXk5MgoyMzcgMjM3IDIzNwkJZ3JheTkzCjIzNyAyMzcgMjM3CQlncmV5OTMKMjQwIDI0MCAyNDAJCWdyYXk5NAoyNDAgMjQwIDI0MAkJZ3JleTk0CjI0MiAyNDIgMjQyCQlncmF5OTUKMjQyIDI0MiAyNDIJCWdyZXk5NQoyNDUgMjQ1IDI0NQkJZ3JheTk2CjI0NSAyNDUgMjQ1CQlncmV5OTYKMjQ3IDI0NyAyNDcJCWdyYXk5NwoyNDcgMjQ3IDI0NwkJZ3JleTk3CjI1MCAyNTAgMjUwCQlncmF5OTgKMjUwIDI1MCAyNTAJCWdyZXk5OAoyNTIgMjUyIDI1MgkJZ3JheTk5CjI1MiAyNTIgMjUyCQlncmV5OTkKMjU1IDI1NSAyNTUJCWdyYXkxMDAKMjU1IDI1NSAyNTUJCWdyZXkxMDAKMTY5IDE2OSAxNjkJCWRhcmsgZ3JleQoxNjkgMTY5IDE2OQkJRGFya0dyZXkKMTY5IDE2OSAxNjkJCWRhcmsgZ3JheQoxNjkgMTY5IDE2OQkJRGFya0dy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AAD/rwAA/9cAAP//AF8AAABfAF8AXwCHAF8ArwBfANcAXwD/AF9fAABfX18AX1+HAF9frwBfX9cAX1//AF+HAABfh18AX4eHAF+HrwBfh9cAX4f/AF+vAABfr18AX6+HAF+vrwBfr9cAX6//AF/XAABf118AX9eHAF/XrwBf19cAX9f/AF//AABf/18AX/+HAF//rwBf/9cAX///AIcAAACHAF8AhwCHAIcArwCHANcAhwD/AIdfAACHX18Ah1+HAIdfrwCHX9cAh1//AIeHAACHh18Ah4eHAIeHrwCHh9cAh4f/AIevAACHr18Ah6+HAIevrwCHr9cAh6//AIfXAACH118Ah9eHAIfXrwCH19cAh9f/AIf/AACH/18Ah/+HAIf/rwCH/9cAh///AK8AAACvAF8ArwCHAK8ArwCvANcArwD/AK9fAACvX18Ar1+HAK9frwCvX9cAr1//AK+HAACvh18Ar4eHAK+HrwCvh9cAr4f/AK+vAACvr18Ar6+HAK+vrwCvr9cAr6//AK/XAACv118Ar9eHAK/XrwCv19cAr9f/AK//AACv/18Ar/+HAK//rwCv/9cAr///ANcAAADXAF8A1wCHANcArwDXANcA1wD/ANdfAADXX18A11+HANdfrwDXX9cA11//ANeHAADXh18A14eHANeHrwDXh9cA14f/ANevAADXr18A16+HANevrwDXr9cA16//ANfXAADX118A19eHANfXrwDX19cA19f/ANf/AADX/18A1/+HANf/rwDX/9cA1///AP8AAAD/AF8A/wCHAP8ArwD/ANcA/wD/AP9fAAD/X18A/1+HAP9frwD/X9cA/1//AP+HAAD/h18A/4eHAP+HrwD/h9cA/4f/AP+vAAD/r18A/6+HAP+vrwD/r9cA/6//AP/XAAD/118A/9eHAP/XrwD/19cA/9f/AP//AAD//18A//+HAP//rwD//9cA////AAgICAASEhIAHBwcACYmJgAwMDAAOjo6AERERABOTk4AWFhYAGJiYgBsbGwAdnZ2AICAgACKiooAlJSUAJ6engCoqKgAsrKyALy8vADGxsYA0NDQANra2gDk5OQA7u7uAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAEAAQACAAMABAAFAAYABwAIAAkACgALAAwADQAOAA8AEAABABEAAQABAAEAEgATABQAFQAWABcAGAABAAEAGQAaAAEAGwAcAB0AHgAfAAEAIAABACEAIgAjACQAJQAmACcAKAApACkAKQApACkAKQApACkAKQApACkAKQApACkAKQApACkAKQApACkAKQApACkAKQApACkAKQApACkAKQApACkAKQApACkAKQApACkAKQApACkAKQApACkAKQApACkAKQApACkAKQApACkAKQApACkAKQApACkAKQApACkAKQApACkAKQApACkAKQApACkAKQApACkAKQApACkAKQApACkAKQApACkAKQApACkAKQApACkAKQApACkAKQApACkAKQApACkAKQApACkAKQApACkAKQApACkAKQApACkAKQApACkAKgABACsAAQAsAC0ALgAvADAAMQAyADMANAA1ADYAMAAxADIAMwA0ADUANgAwADEAMgAzADQANQA2ADAAMQAyADMANAA1ADYAMAAxADIAMwA0ADUANgAwADEAMgAzADQANQA2ADAANwA4ADgAOAA4ADgAOAA4ADgAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQApACkAOQABAAEAOgA7AAEAPAA9AD4AAQABAAEAAQABAAEAPwABAAEAQABBAEIAQwBEAEUARgBHAEgASQBKAEsATABNAAEATgBPAFAAUQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAUgABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAUwABAAEAAQABAAEAAQABAAEAVABVAAEAVgABAFcAKQApACkAKQApACkAKQApACkAKQApACkAKQApACkAKQApACkAKQApACkAKQApAFgAKQApACkAKQBZAFoAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAWwApAFwAXQABAAEAAQABAAEAAQABAAEAAQBeAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAF8AAQBgAGEAYgABAAEAAQABAAEAAQBjAAEAAQABAAEAAQBkAFUAZQABAGYAZwABAAEAaABpAAEAAQABAAEAAQABAGoAawBsAG0AbgBvAHAAcQByAHMAdAABAHUAdQB1AHYAKQApACkAKQApACkAKQApACkAKQApACkAKQApACkAKQApACkAKQApACkAKQApACkAKQApACkAKQApACkAKQApACkAKQApACkAKQApACkAKQApACkAKQApACkAKQApACkAKQApACkAKQApACkAKQApACkAKQApACkAKQApACkAKQApACkAKQApACkAKQApACkAKQApACkAKQApACkAKQApACkAKQApACkAKQApACkAKQApACkAKQApACkAKQApACkAKQApACkAKQApACkAKQApACkAKQApACkAKQApACkAKQApACkAKQApACkAKQApACkAKQApACkAKQApACkAKQApACkAKQApACkAKQApACkAKQApACkAKQApACkAKQApACkAKQApACkAKQApACkAKQApACkAKQApACkAKQApACkAKQApACkAKQApACkAKQApACkAKQApACkAKQApACkAKQApACkAKQApACkAKQApACkAKQApACkAKQApACkAKQApACkAKQApACkAKQApACkAKQApACkAKQApACkAKQApACkAKQApACkAKQApACkAKQApACkAKQApACkAKQApACkAKQApACkAKQApACkAKQApACkAKQApACkAKQApACkAKQApACkAKQApACkAKQApACkAKQApACkAKQApACkAKQApACkAdwApACkAKQApACkAKQApACkAKQApACkAKQApACkAKQApACkAKQApACkAKQApACkAKQApACkAKQApACkAKQApACkAKQApACkAKQApACkAKQApACkAKQApACkAKQApACkAKQApACkAKQApACkAKQApACkAKQApACkAKQApACkAKQApACkAKQApACkAKQApACkAKQApACkAKQApACkAKQApACkAKQApACkAKQApACkAKQApACkAKQApACkAKQApACkAKQApACkAKQApACkAKQApACkAKQApACkAKQApACkAKQApACkAKQApACkAKQApACkAKQApACkAKQApACkAKQApACkAKQApACkAKQApACkAKQApACkAKQApACkAKQApACkAKQApACkAKQApACkAKQApACkAKQApACkAKQApACkAKQApACkAKQApACkAKQApACkAKQApACkAKQApACkAKQApACkAKQApACkAKQApACkAKQApACkAKQApACkAKQApACkAKQApACkAKQApACkAKQApACkAKQApACkAKQApACkAKQApACkAKQApACkAKQApACkAKQApACkAKQApACkAKQApACkAKQApACkAKQApACkAKQApACkAKQApACkAKQApACkAKQApACkAKQApACkAKQApACkAKQApACkAKQApACkAKQB3AAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAeAB5ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQABAAEAAgABAAEAAQABAAEAAQACAAEAAQABAAEAAQACAAIAAgACAAIAAgACAAIAAgACAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAQABAAEAAQABAAEAAQABAAMAAQABAAEAAQADAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEABAAEAAQABAAEAAQABAABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQAAQAEAAEABAAEAAEABAAEAAEABAABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEABQAFAAUABQAFAAUAAQABAAEAAQABAAEAAQABAAEAAQAEAAQABAAEAAQABAAEAAQABAAEAAQAAQAAAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQAEAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQAEAAQABAAEAAQABAAEAAUAAQAEAAQABAAEAAQABAABAAEABAAEAAEABAAEAAQABAABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQAFAAEABAABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAQABAAEAAQABAAEAAQABAAEAAQABAABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAQABAAEAAQABAAEAAQABAAEAAEAAQABAAEAAQABAAEAAQABAAQAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEABAAEAAQABAABAAQABAAEAAQABAAEAAQABAAEAAEABAAEAAQAAQAEAAQABAAEAAQAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQAEAAQABAABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAUABQABAAEAAQABAAEABAAEAAQABAAEAAQABAAEAAQAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABQAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABgABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQAEAAYABAABAAYABgAGAAQABAAEAAQABAAEAAQABAAGAAYABgAGAAQABgAGAAEABAAEAAQABAAEAAQABAABAAEAAQABAAEAAQABAAEAAQABAAQABAABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEABAAGAAYAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAQAAQAHAAYABgAEAAQABAAEAAEAAQAGAAYAAQABAAYABgAEAAEAAQABAAEAAQABAAEAAQABAAcAAQABAAEAAQABAAEAAQABAAEAAQAEAAQAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAQAAQABAAQABAAGAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQAEAAEABgAGAAYABAAEAAEAAQABAAEABAAEAAEAAQAEAAQABAABAAEAAQAEAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAQABAABAAEAAQAEAAEAAQABAAEAAQABAAEAAQABAAEAAQAEAAQABgABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEABAABAAYABgAGAAQABAAEAAQABAABAAQABAAGAAEABgAGAAQAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAQABAABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAQABAAEAAQABAAEAAEABAAGAAYAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAQAAQAHAAQABgAEAAQABAAEAAEAAQAGAAYAAQABAAYABgAEAAEAAQABAAEAAQABAAEABAAEAAcAAQABAAEAAQABAAEAAQABAAEAAQAEAAQAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEABAABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEABwAGAAQABgAGAAEAAQABAAYABgAGAAEABgAGAAYABAABAAEAAQABAAEAAQABAAEAAQAHAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEABAAGAAYABgAEAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEABAABAAQABAAEAAYABgAGAAYAAQAEAAQABAABAAQABAAEAAQAAQABAAEAAQABAAEAAQAEAAQAAQABAAEAAQABAAEAAQABAAEAAQABAAQABAABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEABAAGAAYAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAQAAQAGAAQABwAGAAcABgAGAAEABAAHAAcAAQAHAAcABAAEAAEAAQABAAEAAQABAAEABwAHAAEAAQABAAEAAQABAAEAAQABAAEAAQAEAAQAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEABgABAAEAAQABAAEAAQABAAEAAQABAAEAAQAEAAQABgAGAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEABAAEAAEABwAGAAYABAAEAAQABAABAAYABgAGAAEABgAGAAYABAAFAAEAAQABAAEAAQABAAEAAQAHAAEAAQABAAEAAQABAAEAAQABAAEABAAEAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQAEAAYABgABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAQAAQABAAEAAQAHAAYABgAEAAQABAABAAQAAQAGAAYABgAGAAYABgAGAAcAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEABgAGAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEABAABAAYABAAEAAQABAAEAAQABAABAAEAAQABAAEAAQABAAEAAQABAAEAAQAEAAQABAAEAAQABAAEAAQAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAQAAQAGAAQABAAEAAQABAAEAAQABAAEAAEAAQABAAEAAQABAAEAAQABAAEAAQAEAAQABAAEAAQABAAEAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEABAAEAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAQAAQAEAAEABAABAAEAAQABAAYABgABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAGAAQABAAEAAQABAABAAQABAABAAEAAQABAAEABAAEAAQABAAEAAQABAAEAAQABAAEAAEABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQAAQABAAEAAQABAAEAAQABAAEABAABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQAEAAQABAAEAAYABAAEAAQABAAEAAQAAQAEAAQABgAGAAQABAABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEABgAGAAQABAABAAEAAQABAAQABAAEAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEABAAEAAQABAABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAQAAQAGAAQABAABAAEAAQABAAEAAQAEAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAQAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAJAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEABAAEAAQAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQAEAAQABAAHAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEABAAEAAcAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAQABAABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQAEAAQAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQAEAAQABgAEAAQABAAEAAQABAAEAAYABgAGAAYABgAGAAYABgAEAAYABgAEAAQABAAEAAQABAAEAAQABAAEAAQAAQABAAEAAQABAAEAAQABAAEABAABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQAEAAQABAAAAAQAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEABAAEAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEABAABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAQABAAEAAYABgAGAAYABAAEAAYABgAGAAEAAQABAAEABgAGAAQABgAGAAYABgAGAAYABAAEAAQAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEABAAEAAYABgAEAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAYABAAGAAQABAAEAAQABAAEAAQAAQAEAAEABAABAAEABAAEAAQABAAEAAQABAAEAAYABgAGAAYABgAGAAQABAAEAAQABAAEAAQABAAEAAQAAQABAAQAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAQABAAEAAQABgABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEABAAHAAQABAAEAAQABAAHAAQABwAGAAYABgAGAAQABwAHAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQAEAAQABAAEAAQABAAEAAQABAABAAEAAQABAAEAAQABAAEAAQABAAEAAQAEAAQABgABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQAGAAQABAAEAAQABgAGAAQABAAHAAQABAAEAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQAEAAYABAAEAAYABgAGAAQABgAEAAQABAAHAAcAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEABgAGAAYABgAGAAYABgAGAAQABAAEAAQABAAEAAQABAAGAAYABAAEAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQAEAAQABAABAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABgAEAAQABAAEAAQABAAEAAEAAQABAAEABAABAAEAAQABAAEAAQAEAAEAAQAGAAQABAABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAEAAQABAAEAAQABAAEAAQABAAEAAQAAAAQADAAAAAAAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAAAAAAAAAAAAAAAAAAABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAMAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAwABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQADAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAwABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQADAAMAAwADAAMAAwABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQADAAMAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEADQANAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAMADgAOAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAA8AAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQADAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEADQANAA0ADQADAAMAAwANAAMAAwANAAEAAQABAAEAAwADAAMAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQADAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAMAAwABAAEAAQABAAEAAQABAAEAAQABAAMAAQABAAEAAQABAAEAAQABAAEAAwABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAMAAwANAA0AAQADAAMAAwADAAMADwABAA8ADwAPAA8ADwAPAA8AAwAPAA8AAwAPAAEADQANAA8ADwADAA8ADwAPAA8AEAAPAA8AAwAPAAMAAwAPAA8AAwAPAA8ADwADAA8ADwAPAAMAAwARABEAEQARABEAEQARABEAAwADAAMADwAPAA8ADwAPAAMADwADAA8ADwAPAA8ADwANAA0ADQANAA0ADQANAA0ADQANAA0ADQAPAA8ADwAPAA8ADwAPAA8ADwAPAA8AAwADAA8ADwADAA8AAwADAA8AAwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwADAA8ADwADAA0ADwAPAA8ADwAPAA8AAQABAAEAAQAOAA4ADgAOAA4ADgAPAA8AAwANAAMAAwADAAMADwADAA8AAwADAA8ADwAPAAMADQAPAA8ADwAPAA8AAwAPAA8ADQANAA8ADwAPAA8AAwADAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwANAA0ADwAPAA8ADwAPAA0ADQAPAA8AAwAPAA8ADwAPAA8ADQADAA8AAwAPAAMADQAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8AAwANAA8ADwAPAA8ADwADAAMADQANAAMADQAPAAMAAwAQAA0ADwAPAA0ADwAPAA8ADwADAA8ADwANAAEAAQADAAMAEgASABAAEAAPAAMADwAPAAMAAQADAAEAAwABAAEAAQABAAEAAQADAAEAAQABAAMAAQABAAEAAQABAAEADQABAAEAAQABAAEAAQABAAEAAQABAAMAAwABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQADAAEAAQADAAEAAQABAAEADQABAA0AAQABAAEAAQANAA0ADQABAA0AAQABAAEAAQABAAEAAQABAAEAAQABAAMAAwAPAA8ADwABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQANAA0ADQABAAEAAQABAAEAAQABAAEAAQADAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQANAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQANAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQADAAMAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAwADAAMAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQANAA0AAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEADQABAAEAAQABAA0AAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQAEAAQABAABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQAEAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAA4ADgABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAAEADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAAEAAQABAAEAAQABAAEAAQABAAEAAQABAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4AAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ABAAEAAQABAATABMADQAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgANAA4AAQABAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgABAAEABAAEAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgABAAEAAQABAAEADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgABAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAAAADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4AAQAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4AAQABAAEAAQABAAEAAQABAAEADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4AAQAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAAEAAQABAAEAAQABAAEAAQAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADQAOAA0ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgABAAEAAQAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAQABAAEAAQAAQAEAAQABAAEAAQABAAEAAQABAAEAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQAEAAQAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAQABAABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAQAAQABAAEABAABAAEAAQABAAQAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAYABgAEAAQABgABAAEAAQABAAQAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAYABgABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEABgAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYABgAEAAQAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEABAABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEABAAEAAQABAAEAAQABAAEAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEABAAEAAQABAAEAAQABAAEAAQABAAEAAYABwABAAEAAQABAAEAAQABAAEAAQABAAEAAQAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgAAQABAAEABAAEAAQABgABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEABAAGAAYABAAEAAQABAAGAAYABAAEAAYABgAHAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAQAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQAEAAQABAAEAAQABAAGAAYABAAEAAYABgAEAAQAAQABAAEAAQABAAEAAQABAAEAAQABAAEABAABAAEAAQABAAEAAQABAAEABAAGAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEABAABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQAEAAEABAAEAAQAAQABAAQABAABAAEAAQABAAEABAAEAAEABAABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEABgAEAAQABgAGAAEAAQABAAEAAQAGAAQAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAYABgAEAAYABgAEAAYABgABAAYABAABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQAUABUAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFQAVABQAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFAAVABUAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFQAUABUAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFQAVABQAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFAAVABUAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFQAUABUAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFQAVABQAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFAAVABUAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFQAUABUAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFQAVABQAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFAAVABUAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFQAUABUAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFQAVABQAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFAAVABUAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFQAUABUAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFQAVABQAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFAAVABUAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFQAUABUAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFQAVABQAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFAAVABUAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFQAUABUAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFQAVABQAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFAAVABUAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFQAUABUAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFQAVABQAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFAAVABUAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFQAUABUAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFQAVABQAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFAAVABUAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFQAUABUAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFQAVABQAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFAAVABUAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFQAUABUAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFQAVABQAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFAAVABUAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFQAUABUAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFQAVABQAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFAAVABUAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFQAUABUAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFQAVABQAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFAAVABUAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFQAUABUAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFQAVABQAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFAAVABUAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFQAUABUAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFQAVABQAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFAAVABUAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFQAUABUAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFQAVABQAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFAAVABUAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFQAUABUAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFQAVABQAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFAAVABUAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFQAUABUAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFQAVABQAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFAAVABUAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFQAUABUAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFQAVABQAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFAAVABUAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFQAUABUAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFQAVABQAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFAAVABUAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFQAUABUAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFQAVABQAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFAAVABUAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFQAUABUAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFQAVABQAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFAAVABUAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFQAVABUAFQABAAEAAQABAAEAAQABAAEAAQABAAEAAQAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoAAQABAAEAAQALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAEAAQABAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQAEAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQADgAOAA4ADgAOAA4ADgAOAA4ADgABAAEAAQABAAEAAQAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgABAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4AAQAOAA4ADgAOAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAAAAQAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAcABwAAAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAA4ADgAOAA4ADgAOAA4AAQABAAEAAQABAAEAAQABAAEAAAAAAAAAAAAAAAAAAAAAAAAAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAQAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQAEAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQAEAAQABAAEAAQAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAQABAAEAAEABAAEAAEAAQABAAEAAQAEAAQABAAEAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEABAAEAAQAAQABAAEAAQAEAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAQABAABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAQABAAEAAQAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAQABAAEAAQABAABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEABAAEAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEABAAEAAQABAABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAQABAAEAAQABAAEAAQABAAEAAQABAABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAQABAAEAAQAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAYABAAGAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEABAABAAEABAAEAAEAAQABAAEAAQABAAEAAQABAAEABAAEAAQABgABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQAGAAYABgAEAAQABAAEAAYABgAEAAQAAQABAAUAAQABAAEAAQAEAAEAAQABAAEAAQABAAEAAQABAAEABQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEABAAEAAQAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEABAAEAAQABAAEAAYABAAEAAQABAAEAAQABAAEAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEABgAGAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQAEAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAQABAAGAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAYABgAGAAQABAAEAAQABAAEAAQABAAEAAYABwABAAUABQABAAEAAQABAAEABAAEAAQABAABAAYABAABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEABgAGAAYABAAEAAQABgAGAAQABwAEAAQAAQABAAEAAQABAAEABAABAAEABAABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAQABgAGAAYABAAEAAQABAAEAAQABAAEAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAQABAAGAAYAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQAEAAQAAQAHAAYABAAGAAYABgAGAAEAAQAGAAYAAQABAAYABgAHAAEAAQABAAEAAQABAAEAAQABAAcAAQABAAEAAQABAAEAAQABAAEAAQAGAAYAAQABAAQABAAEAAQABAAEAAQAAQABAAEABAAEAAQABAAEAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEABwAGAAYABAAEAAQABAAEAAQAAQAHAAEAAQAHAAEABwAHAAcABgABAAYABgAEAAcABAAFAAQAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAQABAABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAYABgAGAAQABAAEAAQABAAEAAQABAAGAAYABAAEAAQABgAEAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQAEAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAcABgAGAAQABAAEAAQABAAEAAYABAAGAAYABwAGAAQABAAGAAQABAABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAcABgAGAAQABAAEAAQAAQABAAYABgAGAAYABAAEAAYABAAEAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAQABAABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAYABgAGAAQABAAEAAQABAAEAAQABAAGAAYABAAGAAQABAABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAQABgAEAAYABgAEAAQABAAEAAQABAAHAAQAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAQABgAEAAEAAQAEAAQABAAEAAYABAAEAAQABAAEAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEABgAGAAYABAAEAAQABAAEAAQABAAEAAQABgAEAAQAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAcABgAGAAYABgAGAAEABgAGAAEAAQAEAAQABwAEAAUABgAFAAYABAABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQAGAAYABgAEAAQABAAEAAEAAQAEAAQABgAGAAYABgAEAAEAAQABAAYAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQAEAAQABAAEAAQABAAEAAQABAAEAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEABAAEAAQABAAEAAQABgAFAAQABAAEAAQAAQABAAEAAQABAAEAAQABAAQAAQABAAEAAQABAAEAAQABAAEABAAEAAQABAAEAAQABgAGAAQABAAEAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEABQAFAAUABQAFAAUABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAGAAQABAABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEABgAEAAQABAAEAAQABAAEAAEABAAEAAQABAAEAAQABgAEAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAABAAYABAAEAAQABAAEAAQABAAGAAQABAAGAAQABAABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEABAAEAAQABAAEAAQAAQABAAEABAABAAQABAABAAQABAAEAAQABAAEAAQABQAEAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAYABgAGAAYABgABAAQABAABAAYABgAEAAYABAABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEABAAEAAYABgABAAEAAQABAAEAAQABAAEAAQAEAAQABQAGAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAYABgAEAAQABAAEAAQAAQABAAEABgAGAAQABwAEAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQAEAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEABAABAAEAAQABAAEAAQAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEABAAEAAQABAAEAAQABAAEAAQABAAEAAQABgAGAAYABAAEAAQAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQAEAAQABAAEAAQAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAQABAAEAAQABAAEAAQAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEACgABAAEAAQAKAAoACgAKAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAQAAQAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAEAAQABAAEAAQABAAEABAAEAAQABAABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEADgAOAA4ADgAEAAEAAQABAAEAAQABAAEAAQABAAEAAQATABMAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgABAAEAAQABAAEAAQABAAEADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEADgAOAA4ADgAOAA4ADgAOAA4ADgABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAA4ADgAOAA4AAQAOAA4ADgAOAA4ADgAOAAEADgAOAAEADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAA4AAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAA4ADgAOAAEAAQAOAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQAOAA4ADgAOAAEAAQABAAEAAQABAAEAAQAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEABAAEAAEAAAAAAAAAAAABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAABAAEABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEABwAHAAQABAAEAAEAAQABAAcABwAHAAcABwAHAAAAAAAAAAAAAAAAAAAAAAAEAAQABAAEAAQABAAEAAQAAQABAAQABAAEAAQABAAEAAQAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEABAAEAAQABAABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAQABAAEAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4AAQABAAEAAQABAAEAAQABAAEADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAEAAQABAAEABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAEAAQABAAEAAQABAAEAAQAEAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQAEAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEABAAEAAQABAAEAAEABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAQABAAEAAQABAAEAAQAAQAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQAAQABAAQABAAEAAQABAAEAAQAAQAEAAQAAQAEAAQABAAEAAQAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQAEAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEABAABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAQABAAEAAQAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEABAAEAAQABAABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEABAAEAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQAEAAQABAAEAAQABAAEAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEABAAEAAQABAAEAAQABAABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAA8ADwAPAA8ADQAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPABEADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8AAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQAPAA8ADwABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAA8AAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEADwAPAA8ADwADAAMAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAwADAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQARAAEAAQARABEAEQARABEAEQARABEAEQARAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAOABEADQAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA4ADgAOAA4ADgAOAA4ADgAOAA4ADQAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADQAOAA4AEQARABEAEQARAA0AEQARABEADgAPAA8ADwAPAA4ADgAOAA4ADgAOAA4ADgAOAA8ADwAPAA8ADwAPAA8AEQARAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwARABEAEQARABEAEQAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPABEAEQARABEAEQARABEAEQARABEAEQARABEADQANAA0AEQARABEAEQARAA0AEQARABEAEQARABEADQARABEAEQARAAMADwAPAAMAAwADAAMAAwADAAMAAwADABEAEQARABEAEQARABEAEQARAAMAEQARABEAEQARABEAEQARABEAEQARABEAEQARABEAEQARABEAEQARABEAEQARABEAEQARABEAEQARABEAEQARABEAEQARABEAEQARABEAEQARABEAEQARABEAEQARABEAEQARABEAEQARABEAEQARABEAEQARABEAEQARABEAEQARAA0AEQARABEAEQADABEAEQARABEAEQARABEAFwARABEAEQARABEAEQARABEAEQARABEAEQARAA0ADwAPAAMAAwAPAAMAAwADAA8ADwADAAMAEQARABEAEQARABEAEQANABEAEQARABEADQANAA0AEQARABEAEQARABEAEQARABEAEQARABEAEQARABEAEQARABEAEQASABcAEgARAA0AFwARABEAEgAQABAAAwADABEAEQARABEAEQADAAMAAwADAAMAAwADAAMAAwADAAMAAwANABEAEQARABEAEQARABEAEQARABEAEQARAA0AEQARABEADwAPAAMAEQADAA8AAwARABEAEQAYABgAGAAYABgAEQARABEAEQARABEAEQARAA0AEQARABEAEQARABEAEQARABEAEQARABEADQARABEAEQARABEAEQARABEAEQANABEAEQARABEAEQARAA0AEQARABEAEQARABEAEQARABEAEQARABEAEQARABEAEQARABEAEQARABEAEQARABEAAwARAAMAEgAXABEAEQASABIAEgASABcAFwAXABIAEgAXABcAEQARAA0AEQARABEAEQARABEAEQARABEAEQARABEAEQARABEAEQARABEAFwAXABcAFwASABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwARABEAEQAXAA0AEQARABEAFwAXABcAEQAXABcAFwARABEAEQARABEAEQARABcAEQAXABEAEQARABEAEQARABEAEQARABEAEQARABEAEQARABEAEQANABEAEQARABEAEQARABcAEQARABEAEQARAA0AEQARAA0AEQARABEAEQARABEAEQANABEAEQARAA0AEQARABEAEQARABEAEQARABEAEQARAA0AEQARABEAEQARABEAEQARABEAEQARABEAEQARAA0AEQARABEAEQANABEAEQARABEADQANAA0AEQARABEADQANAA0ADQARABEAEQARABEAEQARABEAEQANABEADQANAA0AEQADAA8AEQARABEAEQARABEAEQARABEADQARABEAEQARAA0AEQARABEAEQANAA0AEQARABEAEQARABEAEQARABEAEQARABEAEQARABEAEQARABEAEQARABEAEQARABEAEQARABEAEQARABEAEQARABEAEQARABEAEQARABEAEQARABEAAQABAAEAAQABAAEAAQABAA8ADwAPAAMAAwARABEAEQARAA8ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADwAPAA8ADwAPAA8ADwADAAMADwAPAAMAEAAQAAMAAwADAAMAFwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwADAA8ADwADAAMAAwADAA8ADwAQAA8ADwAPAA8AFwAXAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8AEQADAA8ADwADAA8ADwAPAA8ADwAPAA8ADwADAAMADwAPAA8ADwAPAA8ADwAPAA8AAwAPAA8ADwAPAA8AAwADAAMADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8AAwADAAMADwAPAA8ADwAPAA8ADwAPAAMAAwADAA8ADwADAA8AAwAPAA8ADwAPAAMADwAPAA8ADwAPAA8AAwAPAA8ADwADAA8ADwAPAA8ADwAPAAMAEQARABEAEQARABEAEQARABEAEQARABEAEQARABEAEQARABEAEQARABEADQARABEAEQARABEAEQARABEAEQARABEAEQARABEAEQARABEAEQARABEAEQARABEAEQARABEAEQARABEAEQARABEAEQARABEAEQARABEAEQARABEAEQARABEAEQARABEAEQARABEAEQARABcAFwAXABEAEQARABcAFwAXABcAFwABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQARABEAEQARABEAEQARAA0AEQARABEAEQARAA0AEQARABEADQARABEADQARABEAEQANABEAEQARABEAEQARABEAEQARABEAFwARABEAEQARABEAEQARABEAEQANABEAEQARABEADQARABcAFwAXABEAEQANAA0AEQANABEAEQARABcAEQARABEAEQARAA8ADwAPAA8ADwADABcAAwADAAMAEQARABEADwAPABEAEQARAA8ADwAPAA8AEQARABEAEQADAAMAAwADAAMAAwAPAA8ADwADAA8AEQARAA8ADwAPAAMADwAPAAMAEQARABEAEQARABEAEQARABEADwAPAA8AAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEADwAPAA8ADwAPAA8ADwAPAA8ADwAPABEAEQARABEAEQARABEAEQARABEAEQARAA8ADwAPAA8AEQAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwABAAEAAQABAAEAAQABAAEAAQABAAEAAQAPAA8ADwAPAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQAPAA8ADwAPAA8ADwAPAA8AAQABAAEAAQABAAEAAQABAAEAAQAPAA8ADwAPAA8ADwABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAA8ADwAPAA8ADwAPAA8ADwABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAAEAAQABAAEAAQABAAEAAQABAAEAAQABABcAEQARABcAEQARABEAEQARABEAEQARABcAFwAXABcAFwAXABcAFwARABEAEQARABEAEQAXABEAEQARABEAEQARABEAEQARABcAFwAXABcAFwAXABcAFwAXABcAEQABABcAFwAXABEAEQARABEAEQARABEAAQARABEAEQARABEAEQARABEAEQARABEAEQARABEAEQARABEAEQARABEAEQARABEAEQARABEAEQARABEAEQARABEAEQARABEAEQARABEAEQARABEAEQARABEAEQARABEAEQAXABEAEQARABEAEQARABEAEQARABEAEQARABEAEQARABEAEQARABEAEQARABEAEQARABEAEQARABEAEQARABEAEQARABEAEQARABEAEQARABEAEQARABEAEQARABEAEQARABEAEQARABEAEQARABEAEQARABEAEQARABEAFwAXABEAFwAXABEAFwARABEAEQARABEAEQARABEAEQARABEAEQARABEAEQARABEAFwAXABcAEQAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABEAEQARABEAEQARABEAEQARABEAEQARABEAEQARABEAEQARABEAEQARABEAEQARABEAEQARABEAEQARABEAEQARABEADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwARABEAEQARABEAEQARABEAEQARABEAEQARAA8ADwAPABEAEQARABEAEQARABEAEQARABEADwAPAA8ADwAPABEAEQARABEAEQARABEAEQARABEAEQARABEAEQARABEAEQARABEAEQARABEAEQARABEAEQARABEAEQARABEAEQARABEAEQARABEAEQARABEAEQARABEAEQARABEAEQARABEAEQARABEAFwAXABcAEQAPAA8ADwAPAA8ADwAPABEAEQARABEAEQARABEAEQARABEAEQARABEAEQARAA8ADwARABEAEQARABEAEQARABEAEQARABEADwAPAA8ADwAPAA8AFwAXABcAFwAXABcAFwAXABcADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwABAAEADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAAEAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFBbRwZJR0GBAgMIG4CLXEuch4SFioyNgAAAAEAAgADAAQABQAGAAcACAAJAAoACwAMAA0ADgAPABAAEQASABMAFAAVABYAFwAYABkAGgAbABwAHQAeAB8AIAAhACIAowAkACUAJgAnACgAKQAqACsALAAtAC4ALwAwADEAMgAzADQANQA2ADcAOAA5ADoAOwA8AD0APgA/AEAAQQBCAEMARABFAEYARwBIAEkASgBLAEwATQBOAE8AUABRAFIAUwBUAFUAVgBXAFgAWQBaAFsAXABdAF4AXwBgAGEAYgBjAGQAZQBmAGcAaABpAGoAawBsAG0AbgBvAHAAcQByAHMAdAB1AHYAdwB4AHkAegB7AHwAfQB+AH8AgACBAIIAgwCEAIUAhgCHAIgAiQCKAIsAjACNAI4AjwCQAJEAkgCTAJQAlQCWAJcAmACZAJoAmwCcAJ0AngCfAKAAoQCiAKMApAClAKYApwCoAKkAqgCrAKwArQCuAK8AsACxALIAswC0ALUAtgC3ALgAuQC6ALsAvAC9AL4AvwDAAMEAwgDDAMQAxQDGAMcAyADJAMoAywDMAM0AzgDPANAA0QDSANMA1ADVANYA1wDYANkA2gDbANwA3QDeAN8A4ADhAOIA4wDkAOUA5gDnAOgA6QDqAOsA7ADtAO4A7wDwAPEA8gDzAPQA9QD2APcA+AD5APoA+wD8AP0A/gD/AAAAAQACAAMABAAFAAYABwAIAAkACgALAAwADQAOAA8AEAARABIAEwAUABUAFgAXABgAGQAaABsAHAAdAB4AHwAgACEAIgAjACQAJQAmACcAKAApACoAKwAsAC0ALgAvADAAMQAyADMANAA1ADYANwA4ADkAOgA7ADwAPQA+AD8AQABBAEIAQwBEAEUARgBHAEgASQBKAEsATABNAE4ATwBQAFEAUgBTAFQAVQBWAFcAWABZAFoAWwBcAF0AXgBfAMYlkiUJJAwkDSQKJLAAsQAkJAskGCUQJQwlFCU8JbojuyMAJbwjvSMcJSQlNCUsJQIlZCJlIsADYCKjALcAfwCAAIEAggCDAIQAhQCGAIcAiACJAIoAiwCMAI0AjgCPAJAAkQCSAJMAlACVAJYAlwCYAJkAmgCbAJwAnQCeAJ8AoAChAKIAowCkAKUApgCnAKgAqQCqAKsArACtAK4ArwCwALEAsgCzALQAtQC2ALcAuAC5ALoAuwC8AL0AvgC/AMAAwQDCAMMAxADFAMYAxwDIAMkAygDLAMwAzQDOAM8A0ADRANIA0wDUANUA1gDXANgA2QDaANsA3ADdAN4A3wDgAOEA4gDjAOQA5QDmAOcA6ADpAOoA6wDsAO0A7gDvAPAA8QDyAPMA9AD1APYA9wD4APkA+gD7APwA/QD+AP8AAAAAAAAAAgAAAAEAAAAAAAAAAwAAAAEAAAAAAAAAAgAAAAAAAAAAAAAAAwAAAAAAAAABAAAAAQAAAAAAAAABAAAAAgAAAAAAAAABAAAAAwAAAAAAAABCAAADAQMCAwMDBAMFAwYDBwEIAQkBCggLAQwBDQoAAwEDAgMDAwQDBQMGAwcBCAEJAQoICwEMAQ0KAAMBAwIDAwMEAwUDBgMHAQgBCQEKCAsBDAENCgADAQMCAwMDBAMFAwYDBwEIAQkBCggLAQwBDQoAAwEDAgMDAwQDBQMGAwcBCAEJAQoICwEMAQ0KAAMBAwIDAwMEAwUDBgMHAQgBCQEKCAsBDAENCgADAQMCAwMDBAMFAwYDBwEIAQkBCggLAQwBDQoAAwEDAgMDAwQDBQMGAwcBCAEJAQoICwEAAA0KAAMBAwIDAwMEAwUDBgMHAQgBCQEKCAsBDAENCgADAQMCAwMDBAMFAwYDBwEIAQkBCggLAQwBDQoAAwEDAgMDAwQDBQMGAwcBCAEJAQoICwEMAQ0KAAMBAwIDAwMEAwUDBgMHAQgBCQEKCAsBDAENCgADAQMCAwMDBAMFAwYDBwEIAQkBCggLAQwBDQoAAwEDAgMDAwQDBQMGAwcBCAEJAQoICwEMAQ0KAAMBAwIDAwMEAwUDBgMHAQgBCQEKCAsBDAENCgADAQMCAwMDBAMFAwYDBwEIAQkBCggLAQwBDQoAAwEDAgMDAwQDBQMGAwcBCAEJAQoICwEMAQ0KAAMBAwIDAwMEAwUDBgMHAQgBCQEKCAsBDAENCgADAQMCAwMDBAMFAwYDBwEIAQkBCggLAQwBDQoAAwEDAgMDAwQDBQMGAwcBCAEJAQoICwEMAQ0KAAMBAwIDAwMEAwUDBgMHAQgBCQEKCAsBDAENCgADAQMCAwMDBAMFAwYDBwEIAQkBCggLAQwBDQoAAwEDAgMDAwQDBQMGAwcBCAEJAQoICwEMAQ0KAAMBAwIDAwMEAwUDBgMHAQgBCQEKCAsBDAENCgADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwEDAgMDAwQDBQMGAwcBCAEJAQoICwEMAQ0KAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQAAAwEDAgMDAwQDBQMGAwcBCAEJAQoICwEMAQ0KAAMBAwIDAwMEAwUDBgMHAQgBCQEKCAsBDAENCgADAQMCAwMDBAMFAwYDBwEIAQkBCggLAQwBDQoAAwEDAgMDAwQDBQMGAwcBCAEJAQoICwEMAQ0KAAICBAIEBAQEBAQEBgEJBAkECQQKCAsADAkNCgACAgQCBAQEBAQEBAYBCQQJBAkECggLAAwJDQoAAgIEAgQEBAQEBAQGAQkECQQJBAoICwAMCQ0KAAICBAIEBAQEBAQEBgEJBAkECQQKCAsADAkNCgACAgQCBAQEBAQEBAYBCQQJBAkECggLAAwJDQoAAgIEAgQEBAQEBAQGAQkECQQJBAoICwAMCQ0KAAICBAIEBAQEBAQEBgEJBAkECQQKCAsADAkNCgACAgQCBAQEBAQEBAYBCQQJBAkECggLAAwJDQoAAgIEAgQEBAQEBAQGAQkECQQJBAoICwAMCQ0KAAICBAIEBAQEBAQEBgEJBAkECQQKCAsADAkNCgACAgQCBAQEBAQEBAYBCQQJBAkECggLAAwJDQoAAgIEAgQEBAQEBAQGAQkECQQJBAoICwAMCQ0KAAICBAIEBAQEBAQEBgEJBAkECQQKCAsADAkNCgACAgQCBAQEBAQEBAYBCQQJBAkECggLAAwJDQoAAgIEAgQEBAQEBAQGAQkECQQJBAoICwAMCQ0KAAICBAIEBAQEBAQEBgEJBAkECQQKCAsADAkNCgACAAYABgUFBgAFBQYBCAUIBQsACggLAAwJDQoAAgAGAAYFBQYABQUGAQgFCAULAAoICwAMCQ0KAAIABgAGBQUGAAUFBgEIBQgFCwAKCAsADAkNCgACAAYABgUFBgAFBQYBCAUIBQsACggLAAwJDQoAAgAGAAYFBQYABQUGAQgFCAULAAoICwAMCQ0KAAIABgAGBQUGAAUFBgEIBQgFCwAKCAsADAkNCgACAAYABgUFBgAFBQYBCAUIBQsACggLAAwJDQoAAgAGAAYFBQYABQUGAQgFCAULAAoICwAMCQ0KAAIABgAGBQUGAAUFBgEIBQgFCwAKCAsADAkNCgACAAYABgUFBgAFBQYBCAUIBQsACggLAAwJDQoAAgAGAAYGAAYABQUGAQsACwALAAoICwAMCQ0KAAIABgAGBQUGAAUFBgEIBQgFCwAKCAsADAkNCgACAAYABgUEBgAGAAYBCAQLAAsACggLAAwJDQoAAgAGAAYFBAYABgAGAQgECwALAAoICwAMCQ0KAAIABgAGBQQGAAYABgEIBAsACwAKCAsADAkNCgACAAYABgUEBgAGAAYBCAQLAAsACggLAAwJDQoAAgAGAAYABwAHAAcAAAoACgAKAAoICwAMCQ0KAAIABgAGAAcABwAHAAAKAAoACgAKCAsADAkNCgACAAYABgAHAAcABwAACgAKAAoACggLAAwJDQoAAgAGAAYABwAHAAcAAAoACgAKAAoICwAMCQ0KAAIABgAGAAcABwAHAAAKAAoACgAKCAsADAkNCgACAAYABgAHAAcABwAACgAKAAoACggLAAwJDQoAAgAGAAYABwAHAAcAAAoACgAKAAoICwAMCQ0KAAIABgAGAAcABwAHAAAKAAoACgAKCAsADAkNCgACAAYABgAHAAcABwAACgAKAAoACggLAAwJDQoAAgAGAAYABwAHAAcAAAoACgAKAAoICwAMCQ0KAAIABgAGAAcABwAHAAAKAAoACgAKCAsADAkNCgACAAYABgAHAAcABwAACgAKAAoACggLAAwJDQoAAgAGAAYABwAHAAcAAAoACgAKAAoICwAMCQ0KAAIABgAGAAcABwAHAAAKAAoACgAKCAsADAkNCgACAAYABgAHAAcABwAACgAKAAoACggLAAwJDQoAAgAGAAYABwAHAAcAAAoACgAKAAoICwAMCQ0KAAIHAAAGAAcABwAHAAAKAAoACgAKCAsADAkNCgACAAYABgAHAAcABwAACgAKAAoACggLAAwJDQoAAgAGAAYABwAHAAcAAAoACgAKAAoICwAMCQ0KAAIABgAGAAcABwAHAAAKAAoACgAKCAsADAkNCgACAAYABgAHAAcABwAACgAKAAoACggLAAwJDQoAAgAGAAYABwAHAAcAAAoACgAKAAoICwAMCQ0KAAIABgAGAAcABwAHAAAKAAoACgAKCAsADAkNCgACAAYABgAHAAcABwAACgAKAAoACggLAAwJDQoAAg0AAAYABwAHAAcAAAoACgAKAAoICwAMCQ0KAAIABgAGAAcABwAHAAAKAAoACgAKCAsADAkNCgACAAYABgAHAAcABwAACgAKAAoACggLAAwJDQoAAgMAAAYABwAHAAcAAAoACgAKAAoICwAMCQ0KAAIABgAGAAcABwAHAAAKAAoACgAKCAsADAkNCgACDAAABgAHAAcABwAACgAKAAoACggLAAwJDQoAAg0AAAYABwAHAAcAAAoACgAKAAoICwAMCQ0KAAINAAAGAAcABwAHAAAKAAoACgAKCAsADAkNCgACAAYABgAHAAcABwAACgAKAAoACggLAAwJDQoAAgAGAAYABwAHAAcAAAoACgAKAAoICwAMCQ0KAAIABgAGAAcABwAHAAAKAAoACgAKCAsADAkNCgACAAYABgAHAAcABwAACgAKAAoACggLAAwJDQoAAgAGAAYABwAHAAcAAAoACgAKAAoICwAMCQ0KAAIABgAGAAcABwAHAAAKAAoACgAKCAsADAkNCgACAAYABgAHAAcABwAACgAKAAoACggLAAwJDQoAAgAGAAYABwAHAAcAAAoACgAKAAoICwAMCQ0KAAIABgAGAAcABwAHAAAKAAoACgAKCAsADAkNCgACAAYABgAHAAcABwAACgAKAAoACggLAAwJDQoAAgAGAAYABwAHAAcAAAoACgAKAAoICwAMCQ0KAAIABgAGAAcABwAHAAAKAAoACgAKCAsADAkNCgACAAYABgAHAAcABwAACgAKAAoACggLAAwJDQoAAgAGAAYABwAHAAcAAAoACgAKAAoICwAMCQ0KAAIABgAGAAcABwAHAAAKAAoACgAKCAsADAkNCgACAAYABgAHAAcABwAACgAKAAoACggLAAwJDQoAAgAGAAYABwAHAAcAAAoACgAKAAoICwAMCQ0KAAIABgAGAAcABwAHAAAKAAoACgAKCAsADAkNCgACAAYABgAHAAcABwAACgAKAAoACggLAAwJDQoAAgAGAAYABwAHAAcAAAoACgAKAAoICwAMCQ0KAAIABgAGAAcABwAHAAAKAAoACgAKCAsADAkNCgACAAYABgAHAAcABwAACgAKAAoACggLAAwJDQoAAgAGAAYABwAHAAcAAAoACgAKAAoICwAMCQ0KAAIABgAGAAcABwAHAAAKAAoACgAKCAsADAkNCgACAAYABgAHAAcABwAACgAKAAoACggLAAwJDQoAAgAGAAYABwAHAAcAAAoACgAKAAoICwAMCQ0KAAIABgAGAAcABwAHAAAKAAoACgAKCAsADAkNCgACAAYABgAHAAcABwAACgAKAAoACggLAAwJDQoAAgAGAAYABwAHAAcAAAoACgAKAAoICwAMCQ0KAAIABgAGAAcABwAHAAAKAAoACgAKCAsADAkNCgACAAYABgAHAAcABwAACgAKAAoACggLAAwJDQoAAgEBAgEDAQQBBQEGAQcBCAEJAQoBCwAMCQ0KAAMAAwADAAMAAwADAAMAAwADAAMAAwADDAkAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwwJAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMMCQADAAMAAwADAAMAAwADAAMAAwADAAMAAwADDAkAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwwJAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMMCQADAAMAAwADAAMAAwADAAMAAwADAAMAAwADDAkAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwwJAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMMCQADAAMAAwADAAMAAwADAAMAAwADAAMAAwADDAkAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwwJAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMMCQADAAMAAwADAAMAAwADAAMAAwADAAMAAwADDAkAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwwJAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMMCQADAAMAAwADAAMAAwADAAMAAwADAAMAAwADDAkAAwcABwAHAAcABwAHAAcABwAHAAcABwAHAAwJBwAAAwADAAMAAwADAAMAAwADAAMAAwADAAMMCQADAAMAAwADAAMAAwADAAMAAwADAAMAAwADDAkAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwwJAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMMCQADAAMAAwADAAMAAwADAAMAAwADAAMAAwADDAkAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwwJAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMMCQADDQANAA0ADQANAA0ADQANAA0ADQANAA0ADAkNAAADAAMAAwADAAMAAwADAAMAAwADAAMAAwwJAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMMCQADAwADAAMAAwADAAMAAwADAAMAAwADAAMADAkDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwJAAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMCQwADQANAA0ADQANAA0ADQANAA0ADQANAA0ADAkNAA0ADQANAA0ADQANAA0ADQANAA0ADQANAAwJDQAAAAEAAgADAAQABQAGAAcACAAJAAoACwAMCQ0AAAABAAIAAwAEAAUABgAHAAgACQAKAAsADAkNAAAAAQACAAMABAAFAAYABwAIAAkACgALAAwJDQAAAAEAAgADAAQABQAGAAcACAAJAAoACwAMCQ0AAAABAAIAAwAEAAUABgAHAAgACQAKAAsADAkNAAAAAQACAAMABAAFAAYABwAIAAkACgALAAwJDQAAAAEAAgADAAQABQAGAAcACAAJAAoACwAMCQ0AAAABAAIAAwAEAAUABgAHAAgACQAKAAsADAkNAAAAAQACAAMABAAFAAYABwAIAAkACgALAAwJDQAAAAEAAgADAAQABQAGAAcACAAJAAoACwAMCQ0AAAABAAIAAwAEAAUABgAHAAgACQAKAAsADAkNAAAAAQACAAMABAAFAAYABwAIAAkACgALAAwJDQAAAAEAAgADAAQABQAGAAcACAAJAAoACwAMCQ0AAAABAAIAAwAEAAUABgAHAAgACQAKAAsADAkNAAAAAQACAAMABAAFAAYABwAIAAkACgALAAwJDQAAAAEAAgADAAQABQAGAAcACAAJAAoACwAMCQ0AAAABAAIAAwAEAAUABgAHAAgACQAKAAsADAkNAAAAAQACAAMABAAFAAYABwAIAAkACgALAAwJDQAAAAEAAgADAAQABQAGAAcACAAJAAoACwAMCQ0AAAABAAIAAwAEAAUABgAHAAgACQAKAAsADAkNAAAAAQACAAMABAAFAAYABwAIAAkACgALAAwJDQAAAAEAAgADAAQABQAGAAcACAAJAAoACwAMCQ0AAAABAAIAAwAEAAUABgAHAAgACQAKAAsADAkNAAAAAQACAAMABAAFAAYABwAIAAkACgALAAwJDQAAAAEAAgADAAQABQAGAAcACAAJAAoACwAMCQ0AAAABAAIAAwAEAAUABgAHAAgACQAKAAsADAkNAAAAAQACAAMABAAFAAYABwAIAAkACgALAAwJDQAAAAEAAgADAAQABQAGAAcACAAJAAoACwAMCQ0AAAABAAIAAwAEAAUABgAHAAgACQAKAAsADAkNAAAAAQACAAMABAAFAAYABwAIAAkACgALAAwJDQAAAAEAAgADAAQABQAGAAcACAAJAAoACwAMCQ0AAAABAAIAAwAEAAUABgAHAAgACQAKAAsADAkNAAAAAQACAAMABAAFAAYABwAIAAkACgALAAwJDQAAAAEAAgADAAQABQAGAAcACAAJAAoACwAMCQ0AAAABAAIAAwAEAAUABgAHAAgACQAKAAsADAkNAAAAAQACAAMABAAFAAYABwAIAAkACgALAAwJDQAAAAEAAgADAAQABQAGAAcACAAJAAoACwAMCQ0AAAABAAIAAwAEAAUABgAHAAgACQAKAAsADAkNAAAAAQACAAMABAAFAAYABwAIAAkACgALAAwJDQAAAAEAAgADAAQABQAGAAcACAAJAAoACwAMCQ0AAAABAAIAAwAEAAUABgAHAAgACQAKAAsADAkNAAAAAQACAAMABAAFAAYABwAIAAkACgALAAwJDQAAAAEAAgADAAQABQAGAAcACAAJAAoACwAMCQ0AAAABAAIAAwAEAAUABgAHAAgACQAKAAsADAkNAAAAAQACAAMABAAFAAYABwAIAAkACgALAAwJDQAAAAEAAgADAAQABQAGAAcACAAJAAoACwAMCQ0AAAABAAIAAwAEAAUABgAHAAgACQAKAAsADAkNAAAAAQACAAMABAAFAAYABwAIAAkACgALAAwJDQAAAAEAAgADAAQABQAGAAcACAAJAAoACwAMCQ0AAAABAAIAAwAEAAUABgAHAAgACQAKAAsADAkNAAAAAQACAAMABAAFAAYABwAIAAkACgALAAwJDQAAAAEAAgADAAQABQAGAAcACAAJAAoACwAMCQ0AAAABAAIAAwAEAAUABgAHAAgACQAKAAsADAkNAAAAAQACAAMABAAFAAYABwAIAAkACgALAAwJDQAAAAEAAgADAAQABQAGAAcACAAJAAoACwAMCQ0AAAABAAIAAwAEAAUABgAHAAgACQAKAAsADAkNAAAAAQACAAMABAAFAAYABwAIAAkACgALAAwJDQAAAAEAAgADAAQABQAGAAcACAAJAAoACwAMCQ0AAAABAAIAAwAEAAUABgAHAAgACQAKAAsADAkNAAAAAQACAAMABAAFAAYABwAIAAkACgALAAwJDQAAAAEAAgADAAQABQAGAAcACAAJAAoACwAMCQ0AAAABAAIAAwAEAAUABgAHAAgACQAKAAsADAkNAAAAAQACAAMABAAFAAYABwAIAAkACgALAAwJDQAAAAEAAgADAAQABQAGAAcACAAJAAoACwAMCQ0AAAABAAIAAwAEAAUABgAHAAgACQAKAAsADAkNAAAAAQACAAMABAAFAAYABwAIAAkACgALAAwJDQAAAAEAAgADAAQABQAGAAcACAAJAAoACwAMCQ0AAAABAAIAAwAEAAUABgAHAAgACQAKAAsADAkNAAAAAQACAAMABAAFAAYABwAIAAkACgALAAwJDQAAAAEAAgADAAQABQAGAAcACAAJAAoACwAMCQ0AAAABAAIAAwAEAAUABgAHAAgACQAKAAsADAkNAAAAAQACAAMABAAFAAYABwAIAAkACgALAAwJDQAAAAEAAgADAAQABQAGAAcACAAJAAoACwAMCQ0AAAABAAIAAwAEAAUABgAHAAgACQAKAAsADAkNAAAAAQACAAMABAAFAAYABwAIAAkACgALAAwJDQAAAAEAAgADAAQABQAGAAcACAAJAAoACwAMCQ0AAAABAAIAAwAEAAUABgAHAAgACQAKAAsADAkNAAAAAQACAAMABAAFAAYABwAIAAkACgALAAwJDQAAAAEAAgADAAQABQAGAAcACAAJAAoACwAMCQ0AAAABAAIAAwAEAAUABgAHAAgACQAKAAsADAkNAAAAAQACAAMABAAFAAYABwAIAAkACgALAAwJDQAAAAEAAgADAAQABQAGAAcACAAJAAoACwAMCQ0AAAABAAIAAwAEAAUABgAHAAgACQAKAAsADAkNAAAAAQACAAMABAAFAAYABwAIAAkACgALAAwJDQAAAAEAAgADAAQABQAGAAcACAAJAAoACwAMCQ0AAAABAAIAAwAEAAUABgAHAAgACQAKAAsADAkNAAAAAQACAAMABAAFAAYABwAIAAkACgALAAwJDQAAAAEAAgADAAQABQAGAAcACAAJAAoACwAMCQ0AAAABAAIAAwAEAAUABgAHAAgACQAKAAsADAkNAAAAAQACAAMABAAFAAYABwAIAAkACgALAAwJDQAAAAEAAgADAAQABQAGAAcACAAJAAoACwAMCQ0AAAABAAIAAwAEAAUABgAHAAgACQAKAAsADAkNAAAAAQACAAMABAAFAAYABwAIAAkACgALAAwJDQAAAAEAAgADAAQABQAGAAcACAAJAAoACwAMCQ0AAAABAAIAAwAEAAUABgAHAAgACQAKAAsADAkNAAAAAQACAAMABAAFAAYABwAIAAkACgALAAwJDQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAEAAAAAAQEBAAAAAAAAAAABAAAAAQAAAAEAAAACAAAAAQAAAAAAAAAAAAAAAAECAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQEBAQEBAQEBAQEBAQEBAQkJCQkJCQkJCQkJCQkJCQkHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwgIAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICCgMDAwMDAwMDAwMDAwQDAwsGBgYFCAgICAgICAgICAgADBgkPGBUDAwMMEgMDAwMDAwMDAwMDAwMAAwMDAwMAAwADAwMGAwMDAwMGAwYDAwMDAwMDAwMGAwMDAwMGAwMDAwMDAwYDAwMDAwMDAwMJAwkDAwMJAwMDAwMJAwkDAwMJAwMDAwMDAwMDAwAAP3/AAABAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAQAAAAAAAAAAAAAAAAAAAAAAHR8hAMxmZgC1vWgA8MZ0AIGivgCylLsAir63AMXIxgBmZmYA1U5TALnKSgDnxUcAeqbaAMOX2ABwwLEA6urqAAAAAAAAAF8AAACHAAAArwAAANcAAAD/AABfAAAAX18AAF+HAABfrwAAX9cAAF//AACHAAAAh18AAIeHAACHrwAAh9cAAIf/AACvAAAAr18AAK+HAACvrwAAr9cAAK//AADXAAAA118AANeHAADXrwAA19cAANf/AAD/AAAA/18AAP+HAAD/rwAA/9cAAP//AF8AAABfAF8AXwCHAF8ArwBfANcAXwD/AF9fAABfX18AX1+HAF9frwBfX9cAX1//AF+HAABfh18AX4eHAF+HrwBfh9cAX4f/AF+vAABfr18AX6+HAF+vrwBfr9cAX6//AF/XAABf118AX9eHAF/XrwBf19cAX9f/AF//AABf/18AX/+HAF//rwBf/9cAX///AIcAAACHAF8AhwCHAIcArwCHANcAhwD/AIdfAACHX18Ah1+HAIdfrwCHX9cAh1//AIeHAACHh18Ah4eHAIeHrwCHh9cAh4f/AIevAACHr18Ah6+HAIevrwCHr9cAh6//AIfXAACH118Ah9eHAIfXrwCH19cAh9f/AIf/AACH/18Ah/+HAIf/rwCH/9cAh///AK8AAACvAF8ArwCHAK8ArwCvANcArwD/AK9fAACvX18Ar1+HAK9frwCvX9cAr1//AK+HAACvh18Ar4eHAK+HrwCvh9cAr4f/AK+vAACvr18Ar6+HAK+vrwCvr9cAr6//AK/XAACv118Ar9eHAK/XrwCv19cAr9f/AK//AACv/18Ar/+HAK//rwCv/9cAr///ANcAAADXAF8A1wCHANcArwDXANcA1wD/ANdfAADXX18A11+HANdfrwDXX9cA11//ANeHAADXh18A14eHANeHrwDXh9cA14f/ANevAADXr18A16+HANevrwDXr9cA16//ANfXAADX118A19eHANfXrwDX19cA19f/ANf/AADX/18A1/+HANf/rwDX/9cA1///AP8AAAD/AF8A/wCHAP8ArwD/ANcA/wD/AP9fAAD/X18A/1+HAP9frwD/X9cA/1//AP+HAAD/h18A/4eHAP+HrwD/h9cA/4f/AP+vAAD/r18A/6+HAP+vrwD/r9cA/6//AP/XAAD/118A/9eHAP/XrwD/19cA/9f/AP//AAD//18A//+HAP//rwD//9cA////AAgICAASEhIAHBwcACYmJgAwMDAAOjo6AERERABOTk4AWFhYAGJiYgBsbGwAdnZ2AICAgACKiooAlJSUAJ6engCoqKgAsrKyALy8vADGxsYA0NDQANra2gDk5OQA7u7uAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAGAAAABwAAAAgAAAAJAAAABgAAAAoAAAALAAAAqqqqqgAAAAAAAAAAEwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAGAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAANAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAPAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAARAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAATAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAOAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAASAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAZAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAaAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAALAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAKAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAABAwUHAQMFBwEDBQcBAwUHAQMFBwEDBQcAAgQGAQMFBwEDBQcBAwUHAQMFBwMDBwcDAwcHAQMFBwAAAAAAAAAAAQMFBwACBAYBAwUHAQMFBwEDBQcBAwUHAAIEBgEDBQcBAwUHAQMFBwEDBQcDAwcHAwMHBwEDBQcAAAAAAAAAAAEDBQcAAgQGAAIEBgEDBQcAAgQGAQMFBwACBAYBAwUHAQMFBwEDBQcBAwUHAwMHBwMDBwcBAwUHAAAAAAAAAAABAwUHAQMFBwACBAYAAgQGAAIEBgACBAYAAgQGAQMFBwEDBQcBAwUHAQMFBwMDBwcDAwcHAQMFBwAAAAAAAAAAAQMFBwACBAYBAwUHAQMFBwEDBQcBAwUHAAIEBgEDBQcBAwUHAQMFBwEDBQcDAwcHAwMHBwEDBQcAAAAAAAAAAAEDBQcAAgQGAQMFBwEDBQcBAwUHAQMFBwACBAYBAwUHAQMFBwEDBQcBAwUHAwMHBwMDBwcBAwUHAAAAAAAAAAABAwUHAQMFBwEDBQcBAwUHAQMFBwEDBQcAAgQGAQMFBwEDBQcBAwUHAQMFBwMDBwcDAwcHAQMFBwAAAAAAAAAAAAIEBgACBAYAAgQGAAIEBgACBAYAAgQGAAIEBgACBAYAAgQGAAIEBgACBAYCAgYGAgIGBgACBAYAAAAAAAAAAAACBAYAAgQGAAIEBgACBAYAAgQGAAIEBgACBAYAAgQGAAIEBgACBAYAAgQGAgIGBgICBgYAAgQGAAAAAAAAAAAAAgQGAAIEBgACBAYAAgQGAAIEBgACBAYAAgQGAAIEBgACBAYAAgQGAAIEBgICBgYCAgYGAAIEBgAAAAAAAAAAAQMFBwEDBQcBAwUHAQMFBwEDBQcBAwUHAAIEBgEDBQcBAwUHAQMFBwQGAQMDAwcHAwMHBwEDBQcAAAAAAAAAAAEDBQcBAwUHAQMFBwEDBQcBAwUHAQMFBwACBAYBAwUHAQAFBAEDBQcBAwUHAwMHBwMDBwcBAwUHAAAAAAAAAAABAwUHAQMFBwEDBQcBAwUHAQMFBwEDBQcAAgQGAQMFBwEABQQBAwUHAQMFBwMDBwcDAwcHAQMFBwAAAAAAAAAAAQMFBwEDBQcBAwUHAQMFBwEDBQcBAwUHAAIEBgEDBQcBAwUHAQMFBwEDBQcDAwcHAgIGBgEDBQcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAZBAQAAQAAACGDRAABAAAABITEAAEAAAAgQwQAAQAAADyCRAABAAAAHkVEAAEAAAAsRgQAAQAAAAFGBAABAAA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AAIAAADfChAABAAAAAYAAQACAAAA2goQAAQAAAAHAAEAAgAAANUKEAAEAAAACAABAAIAAAAhCxAABQAAAAkAAQACAAAAGwsQAAUAAAAMAAEAAgAAABULEAAFAAAADQABAAIAAAAKCxAABQAAAAoAAQACAAAA/woQAAUAAAALAAEAAgAAAPQKEAAFAAAADgABAAIAAADpChAABQAAAA8AAQACAAAAUAoQAAMAAAAAAAAAAgAAAI8KEAAEAAAAAQABAAIAAACEChAABAAAAAQAAQACAAAAeQoQAAQAAAAFAAEAAgAAAG4KEAAEAAAAAgABAAIAAABjChAABAAAAAMAAQACAAAAXgoQAAQAAAAGAAEAAgAAAFkKEAAEAAAABwABAAIAAABUChAABAAAAAgAAQACAAAAoAoQAAUAAAAJAAEAAgAAAJoKEAAFAAAADAABAAIAAACUChAABQAAAA0AAQACAAAAiQoQAAUAAAAKAAEAAgAAAH4KEAAFAAAACwABAAIAAABzChAABQAAAA4AAQACAAAAaAoQAAUAAAAPAAEAAgAAAF4TEAADAAAAAAAAAAIAAACdExAABAAAAAEAAQACAAAAkhMQAAQAAAAEAAEAAgAAAIcTEAAEAAAABQABAAIAAAB8ExAABAAAAAIAAQACAAAAcRMQAAQAAAADAAEAAgAAAGwTEAAEAAAABgABAAIAAABnExAABAAAAAcAAQACAAAAYhMQAAQAAAAIAAEAAgAAAK4TEAAFAAAACQABAAIAAACoExAABQAAAAwAAQACAAAAohMQAAUAAAANAAEAAgAAAJcTEAAFAAAACgABAAIAAACMExAABQAAAAsAAQACAAAAgRMQAAUAAAAOAAEAAgAAAHYTEAAFAAAADwABAAIAAAAeEhAAAwAAAAAAAAACAAAAXRIQAAQAAAABAAEAAgAAAFISEAAEAAAABAABAAIAAABHEhAABAAAAAUAAQACAAAAPBIQAAQAAAACAAEAAgAAADESEAAEAAAAAwABAAIAAAAsEhAABAAAAAYAAQACAAAAJxIQAAQAAAAHAAEAAgAAACISEAAEAAAACAABAAIAAABzEhAABQAAAAkAAQACAAAAaBIQAAUAAAAMAAEAAgAAAGISEAAFAAAADQABAAIAAABXEhAABQAAAAoAAQACAAAATBIQAAUAAAALAAEAAgAAAEESEAAFAAAADgABAAIAAAA2EhAABQAAAA8AAQACAAAAEBEQAAMAAAAAAAAAAgAAAE8REAAEAAAAAQABAAIAAABEERAABAAAAAQAAQACAAAAOREQAAQAAAAFAAEAAgAAAC4REAAEAAAAAgABAAIAAAAjERAABAAAAAMAAQACAAAAHhEQAAQAAAAGAAEAAgAAABkREAAEAAAABwABAAIAAAAUERAABAAAAAgAAQACAAAAYBEQAAUAAAAJAAEAAgAAAFoREAAFAAAADAABAAIAAABUERAABQAAAA0AAQACAAAASREQAAUAAAAKAAEAAgAAAD4REAAFAAAACwABAAIAAAAzERAABQAAAA4AAQACAAAAKBEQAAUAAAAPAAEAAgAAAB8aEAADAAAAAAAAAAIAAABeGhAABAAAAAEAAQACAAAAUxoQAAQAAAAEAAEAAgAAAEgaEAAEAAAABQABAAIAAAA9GhAABAAAAAIAAQACAAAAMhoQAAQAAAADAAEAAgAAAC0aEAAEAAAABgABAAIAAAAoGhAABAAAAAcAAQACAAAAIxoQAAQAAAAIAAEAAgAAAG8aEAAFAAAACQABAAIAAABpGhAABQAAAAwAAQACAAAAYxoQAAUAAAANAAEAAgAAAFgaEAAFAAAACgABAAIAAABNGhAABQAAAAsAAQACAAAAQhoQAAUAAAAOAAEAAgAAADcaEAAFAAAADwABAAIAAAB6NRAAAQAAAAAAAQAAAAAAtBMQAAMAAAAAAAAAAgAAAPMTEAAEAAAAAQABAAIAAADoExAABAAAAAQAAQACAAAA3RMQAAQAAAAFAAEAAgAAANITEAAEAAAAAgABAAIAAADHExAABAAAAAMAAQACAAAAwhMQAAQAAAAGAAEAAgAAAL0TEAAEAAAABwABAAIAAAC4ExAABAAAAAgAAQACAAAABBQQAAUAAAAJAAEAAgAAAP4TEAAFAAAADAABAAIAAAD4ExAABQAAAA0AAQACAAAA7RMQAAUAAAAKAAEAAgAAAOITEAAFAAAACwABAAIAAADXExAABQAAAA4AAQACAAAAzBMQAAUAAAAPAAEAAgAAAIsSEAADAAAAAAAAAAIAAADKEhAABAAAAAEAAQACAAAAvxIQAAQAAAAEAAEAAgAAALQSEAAEAAAABQABAAIAAACpEhAABAAAAAIAAQACAAAAnhIQAAQAAAADAAEAAgAAAJkSEAAEAAAABgABAAIAAACUEhAABAAAAAcAAQACAAAAjxIQAAQAAAAIAAEAAgAAANsSEAAFAAAACQABAAIAAADVEhAABQAAAAwAAQACAAAAzxIQAAUAAAANAAEAAgAAAMQSEAAFAAAACgABAAIAAAC5EhAABQAAAAsAAQACAAAArhIQAAUAAAAOAAEAAgAAAKMSEAAFAAAADwABAAIAAAC+GxAABgAAAAEAAQAAAAAArxsQAAYAAAAEAAEAAAAAAKAbEAAGAAAABQABAAAAAACRGxAABgAAAAIAAQAAAAAAghsQAAYAAAADAAEAAAAAAHsbEAAGAAAABgABAAAAAAB0GxAABgAAAAcAAQAAAAAAbRsQAAYAAAAIAAEAAAAAANUbEAAHAAAACQABAAAAAADNGxAABwAAAAwAAQAAAAAAxRsQAAcAAAANAAEAAAAAALYbEAAHAAAACgABAAAAAACnGxAABwAAAAsAAQAAAAAAmBsQAAcAAAAOAAEAAAAAAIkbEAAHAAAADwABAAAAAABlGxAAAwAAAAAAAQEAAAAAaRsQAAMAAAAAAAECAAAAAEoCEAAKAAAAAQABAAAAAAB2NRAAAgAAAAQAAQAAAAAAJwIQAAoAAAAFAAEAAAAAABACEAAKAAAAAgABAAAAAAD5ARAACgAAAAMAAQAAAAAA7gEQAAoAAAAGAAEAAAAAAOMBEAAKAAAABwABAAAAAADYARAACgAAAAgAAQAAAAAAbQIQAAsAAAAJAAEAAAAAAGECEAALAAAADAABAAAAAABVAhAACwAAAA0AAQAAAAAAPgIQAAsAAAAKAAEAAAAAADICEAALAAAACwABAAAAAAAbAhAACwAAAA4AAQAAAAAABAIQAAsAAAAPAAEAAAAAAHc1EAABAAAAAAABAAAAAAAAGhAABgAAAAEAAQAAAAAA8RkQAAYAAAAEAAEAAAAAAOIZEAAGAAAABQABAAAAAADTGRAABgAAAAIAAQAAAAAAxBkQAAYAAAADAAEAAAAAAL0ZEAAGAAAABgABAAAAAAC2GRAABgAAAAcAAQAAAAAArxkQAAYAAAAIAAEAAAAAABcaEAAHAAAACQABAAAAAAAPGhAABwAAAAwAAQAAAAAABxoQAAcAAAANAAEAAAAAAPgZEAAHAAAACgABAAAAAADpGRAABwAAAAsAAQAAAAAA2hkQAAcAAAAOAAEAAAAAAMsZEAAHAAAADwABAAAAAACrGRAAAwAAAAAAAQAAAAAAjBkQAAYAAAABAAEAAAAAAH0ZEAAGAAAABAABAAAAAABuGRAABgAAAAUAAQAAAAAAXxkQAAYAAAACAAEAAAAAAFAZEAAGAAAAAwABAAAAAABJGRAABgAAAAYAAQAAAAAAQhkQAAYAAAAHAAEAAAAAADsZEAAGAAAACAABAAAAAACjGRAABwAAAAkAAQAAAAAAmxkQAAcAAAAMAAEAAAAAAJMZEAAHAAAADQABAAAAAACEGRAABwAAAAoAAQAAAAAAdRkQAAcAAAALAAEAAAAAAGYZEAAHAAAADgABAAAAAABXGRAABwAAAA8AAQAAAAAANxkQAAMAAAAAAAEAAAAAAJkHEAAHAAAAAQABAAAAAAANBhAABwAAAAQAAQAAAAAALQUQAAcAAAAFAAEAAAAAAFIEEAAHAAAAAgABAAAAAAB4AxAABwAAAAMAAQAAAAAAuQEQAAcAAAAGAAEAAAAAAE8BEAAHAAAABwABAAAAAACvABAABwAAAAgAAQAAAAAA+wgQAAgAAAAJAAEAAAAAAH0IEAAIAAAADAABAAAAAAAGCBAACAAAAA0AAQAAAAAA8QYQAAgAAAAKAAEAAAAAAKAFEAAIAAAACwABAAAAAADFBBAACAAAAA4AAQAAAAAA5QMQAAgAAAAPAAEAAAAAADMZEAADAAAAAAABAAAAAAAUGRAABgAAAAEAAQAAAAAABRkQAAYAAAAEAAEAAAAAAPYYEAAGAAAABQABAAAAAADnGBAABgAAAAIAAQAAAAAA2BgQAAYAAAADAAEAAAAAANEYEAAGAAAABgABAAAAAADKGBAABgAAAAcAAQAAAAAAwxgQAAYAAAAIAAEAAAAAACsZEAAHAAAACQABAAAAAAAjGRAABwAAAAwAAQAAAAAAGxkQAAcAAAANAAEAAAAAAAwZEAAHAAAACgABAAAAAAD9GBAABwAAAAsAAQAAAAAA7hgQAAcAAAAOAAEAAAAAAN8YEAAHAAAADwABAAAAAAC/GBAAAwAAAAAAAQAAAAAAegcQAAcAAAABAAEAAAAAAO4FEAAHAAAABAABAAAAAAAOBRAABwAAAAUAAQAAAAAAMwQQAAcAAAACAAEAAAAAAFkDEAAHAAAAAwABAAAAAACaARAABwAAAAYAAQAAAAAAMAEQAAcAAAAHAAEAAAAAAGYAEAAHAAAACAABAAAAAADYCBAACAAAAAkAAQAAAAAAWggQAAgAAAAMAAEAAAAAAOMHEAAIAAAADQABAAAAAACgBhAACAAAAAoAAQAAAAAAfQUQAAgAAAALAAEAAAAAAKIEEAAIAAAADgABAAAAAADCAxAACAAAAA8AAQAAAAAAcQQQAAUAAAAAAAEAAAAAAGQHEAAHAAAAAQABAAAAAADYBRAABwAAAAQAAQAAAAAA+AQQAAcAAAAFAAEAAAAAAB0EEAAHAAAAAgABAAAAAABDAxAABwAAAAMAAQAAAAAAhAEQAAcAAAAGAAEAAAAAABoBEAAHAAAABwABAAAAAAAxABAABwAAAAgAAQAAAAAAvwgQAAgAAAAJAAEAAAAAAEEIEAAIAAAADAABAAAAAADKBxAACAAAAA0AAQAAAAAAZQYQAAgAAAAKAAEAAAAAAGQFEAAIAAAACwABAAAAAACJBBAACAAAAA4AAQAAAAAAqQMQAAgAAAAPAAEAAAAAACgDEAAFAAAAAAABAAAAAABcBxAABwAAAAEAAQAAAAAA0AUQAAcAAAAEAAEAAAAAAPAEEAAHAAAABQABAAAAAAAVBBAABwAAAAIAAQAAAAAAOwMQAAcAAAADAAEAAAAAAHwBEAAHAAAABgABAAAAAAASARAABwAAAAcAAQAAAAAAHwAQAAcAAAAIAAEAAAAAALYIEAAIAAAACQABAAAAAAA4CBAACAAAAAwAAQAAAAAAwQcQAAgAAAANAAEAAAAAAFEGEAAIAAAACgABAAAAAABbBRAACAAAAAsAAQAAAAAAgAQQAAgAAAAOAAEAAAAAAKADEAAIAAAADwABAAAAAABuARAABQAAAAAAAQAAAAAAVAcQAAcAAAABAAEAAAAAAMgFEAAHAAAABAABAAAAAADoBBAABwAAAAUAAQAAAAAADQQQAAcAAAACAAEAAAAAADMDEAAHAAAAAwABAAAAAAB0ARAABwAAAAYAAQAAAAAACgEQAAcAAAAHAAEAAAAAAA0AEAAHAAAACAABAAAAAACtCBAACAAAAAkAAQAAAAAALwgQAAgAAAAMAAEAAAAAALgHEAAIAAAADQABAAAAAAA9BhAACAAAAAoAAQAAAAAAUgUQAAgAAAALAAEAAAAAAHcEEAAIAAAADgABAAAAAACXAxAACAAAAA8AAQAAAAAABAEQAAUAAAAAAAEAAAAAALAHEAAHAAAAAQABAAAAAAAkBhAABwAAAAQAAQAAAAAARAUQAAcAAAAFAAEAAAAAAGkEEAAHAAAAAgABAAAAAACPAxAABwAAAAMAAQAAAAAA0AEQAAcAAAAGAAEAAAAAAGYBEAAHAAAABwABAAAAAADxABAABwAAAAgAAQAAAAAAFQkQAAgAAAAJAAEAAAAAAJcIEAAIAAAADAABAAAAAAAgCBAACAAAAA0AAQAAAAAAOgcQAAgAAAAKAAEAAAAAALoFEAAIAAAACwABAAAAAADfBBAACAAAAA4AAQAAAAAA/wMQAAgAAAAPAAEAAAAAAKcIEAAFAAAAAAABAAAAAACoBxAABwAAAAEAAQAAAAAAHAYQAAcAAAAEAAEAAAAAADwFEAAHAAAABQABAAAAAABhBBAABwAAAAIAAQAAAAAAhwMQAAcAAAADAAEAAAAAAMgBEAAHAAAABgABAAAAAABeARAABwAAAAcAAQAAAAAA3gAQAAcAAAAIAAEAAAAAAAwJEAAIAAAACQABAAAAAACOCBAACAAAAAwAAQAAAAAAFwgQAAgAAAANAAEAAAAAACUHEAAIAAAACgABAAAAAACxBRAACAAAAAsAAQAAAAAA1gQQAAgAAAAOAAEAAAAAAPYDEAAIAAAADwABAAAAAAApCBAABQAAAAAAAQAAAAAAkQcQAAcAAAABAAEAAAAAAAUGEAAHAAAABAABAAAAAAAlBRAABwAAAAUAAQAAAAAASgQQAAcAAAACAAEAAAAAAHADEAAHAAAAAwABAAAAAACxARAABwAAAAYAAQAAAAAARwEQAAcAAAAHAAEAAAAAAKcAEAAHAAAACAABAAAAAADyCBAACAAAAAkAAQAAAAAAdAgQAAgAAAAMAAEAAAAAAP0HEAAIAAAADQABAAAAAADoBhAACAAAAAoAAQAAAAAAlwUQAAgAAAALAAEAAAAAALwEEAAIAAAADgABAAAAAADcAxAACAAAAA8AAQAAAAAALAYQAAUAAAAAAAEAAAAAAIIHEAAHAAAAAQABAAAAAAD2BRAABwAAAAQAAQAAAAAAFgUQAAcAAAAFAAEAAAAAADsEEAAHAAAAAgABAAAAAABhAxAABwAAAAMAAQAAAAAAogEQAAcAAAAGAAEAAAAAADgBEAAHAAAABwABAAAAAACDABAABwAAAAgAAQAAAAAA4QgQAAgAAAAJAAEAAAAAAGMIEAAIAAAADAABAAAAAADsBxAACAAAAA0AAQAAAAAAwAYQAAgAAAAKAAEAAAAAAIYFEAAIAAAACwABAAAAAACrBBAACAAAAA4AAQAAAAAAywMQAAgAAAAPAAEAAAAAAEwFEAAFAAAAAAABAAAAAACqqqqqAAAAAKqqqqoAAAAAqqqqqgAAAACqqqqqAAAAAKqqqqoAAAAAqqqqqgAAAACqqqqqAAAAAKqqqqoAAAAAqqqqqgAAAACqqqqqAAAAAKqqqqoAAAAAqqqqqgAAAACqqqqqAAAAAKqqqqoAAAAAqqqqqgAAAACqqqqqAAAAAKqqqqoAAAAAqqqqqgAAAACqqqqqAAAAAKqqqqoAAAAAqqqqqgAAAACqqqqqAAAAAKqqqqoAAAAAqqqqqgAAAACqqqqqAAAAAKqqqqoAAAAAqqqqqgAAAACqqqqqAAAAAKqqqqoAAAAAqqqqqgAAAACqqqqqAAAAAKqqqqoAAAAAqqqqqgAAAACqqqqqAAAAAKqqqqoAAAAAqqqqqgAAAACqqqqqAAAAAKqqqqoAAAAAqqqqqgAAAACqqqqqAAAAAKqqqqoAAAAAqqqqqgAAAACqqqqqAAAAAKqqqqoAAAAAqqqqqgAAAACqqqqqAAAAAKqqqqoAAAAAqqqqqgAAAACqqqqqAAAAAKqqqqoAAAAAqqqqqgAAAACqqqqqAAAAAKqqqqoAAAAAoBYSAB0AAACqqqqqAAAAAKqqqqoAAAAAqqqqqgAAAACqqqqqAAAAAHAYEgARAAAAqqqqqgAAAACqqqqqAAAAAKqqqqoAAAAAqqqqqgAAAACqqqqqAAAAAIAZEgASAAAAqqqqqgAAAACqqqqqAAAAAKqqqqoAAAAAoBoSABAAAACgGxIAEQAAAKqqqqoAAAAAsBwSABEAAADAHRIAEAAAAMAeEgAQAAAAwB8SABAAAADAIBIAEQAAANAhEgARAAAA4CISABEAAADwIxIAEQAAAKqqqqoAAAAAACUSABAAAAAAJhIAEAAAAAAnEgAQAAAAACgSABAAAAAAKRIAEAAAAAAqEgAQAAAAACsSABAAAAAALBIAEAAAAAAtEgAQAAAAAC4SABAAAAAALxIAEAAA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OiB3YXJuaW5nKHN0cmVhbSk6IGludmFsaWQgbmV4dCBsaW5lIGNvbW1hbmQ6IHdhcm5pbmcoc3RyZWFtKTogaW52YWxpZCB0YWIgc2V0IGNvbW1hbmQ6IHdhcm5pbmcoc3RyZWFtKTogaW52YWxpZCByZXZlcnNlIGluZGV4IGNvbW1hbmQ6IHdhcm5pbmcoc3RyZWFtKTogaW52YWxpZCBzaW5nbGUgc2hpZnQgMiBjb21tYW5kOiB3YXJuaW5nKHN0cmVhbSk6IGludmFsaWQgc2luZ2xlIHNoaWZ0IDMgY29tbWFuZDogd2FybmluZyhzdHJlYW0pOiB1bmltcGxlbWVudGVkIEVTQyBjYWxsYmFjazogd2FybmluZyhzdHJlYW0pOiBpbnZhbGlkIGZ1bGwgcmVzZXQgY29tbWFuZDogd2FybmluZyhzdHJlYW0pOiBpbnZhbGlkIGxvY2tpbmcgc2hpZnQgMSByaWdodCBjb21tYW5kOiB3YXJuaW5nKHN0cmVhbSk6IGludmFsaWQgbG9ja2luZyBzaGlmdCAyIHJpZ2h0IGNvbW1hbmQ6IHdhcm5pbmcoc3RyZWFtKTogaW52YWxpZCBsb2NraW5nIHNoaWZ0IDMgcmlnaHQgY29tbWFuZDogd2FybmluZyh0ZXJtaW5hbCk6IGN1cnNvciBjb3B5IGZhaWxlZCBlbnRlcmluZyBhbHQgc2NyZWVuIGVycj13YXJuaW5nKHRlcm1pbmFsKTogcmVzdG9yZSBjdXJzb3Igb24gc3dpdGNoIHNjcmVlbiBmYWlsZWQgdG89IGVycj13YXJuaW5nKHN0cmVhbSk6IHVuaW1wbGVtZW50ZWQgc2V0TW9kZTogd2FybmluZyhzdHJlYW0pOiBpbnZhbGlkIEMwIGNoYXJhY3RlciwgaWdub3Jpbmc6IDB4d2FybmluZyh0ZXJtaW5hbCk6IHplcm8td2lkdGggY2hhcmFjdGVyIHdpdGggbm8gcHJpb3IgY2hhcmFjdGVyLCBpZ25vcmluZ3dhcm5pbmcodGVybWluYWwpOiBlcnJvciByZWFsbG9jYXRpbmcgZm9yIG1vcmUgaHlwZXJsaW5rIHNwYWNlLCBpZ25vcmluZyBoeXBlcmxpbmsgZXJyPXdhcm5pbmcocGFyc2VyKTogaW52YWxpZCBpbnRlcm1lZGlhdGVzIGNvdW50d2FybmluZyhwYXJzZXIpOiBDU0kgY29sb24gb3IgbWl4ZWQgc2VwYXJhdG9ycyBvbmx5IGFsbG93ZWQgZm9yICdtJyBjb21tYW5kLCBnb3Q6IHdhcm5pbmcoc3RyZWFtKTogaW52YWxpZCBjdXJzb3IgZG93biBjb21tYW5kOiB3YXJuaW5nKHN0cmVhbSk6IGlnbm9yaW5nIHVuaW1wbGVtZW50ZWQgQ1NJIEIgd2l0aCBpbnRlcm1lZGlhdGVzOiB3YXJuaW5nKHN0cmVhbSk6IGludmFsaWQgY3Vyc29yIHJpZ2h0IGNvbW1hbmQ6IHdhcm5pbmcoc3RyZWFtKTogaWdub3JpbmcgdW5pbXBsZW1lbnRlZCBDU0kgQyB3aXRoIGludGVybWVkaWF0ZXM6IHdhcm5pbmcoc3RyZWFtKTogaW52YWxpZCBjdXJzb3IgdXAgY29tbWFuZDogd2FybmluZyhzdHJlYW0pOiBpZ25vcmluZyB1bmltcGxlbWVudGVkIENTSSBFIHdpdGggaW50ZXJtZWRpYXRlczogd2FybmluZyhzdHJlYW0pOiBpZ25vcmluZyB1bmltcGxlbWVudGVkIENTSSBGIHdpdGggaW50ZXJtZWRpYXRlczogd2FybmluZyhzdHJlYW0pOiBpbnZhbGlkIGhvcml6b250YWwgdGFiIGNvbW1hbmQ6IHdhcm5pbmcoc3RyZWFtKTogaWdub3JpbmcgdW5pbXBsZW1lbnRlZCBDU0kgSSB3aXRoIGludGVybWVkaWF0ZXM6IHdhcm5pbmcoc3RyZWFtKTogaW52YWxpZCBlcmFzZSBkaXNwbGF5IGNvbW1hbmQ6IHdhcm5pbmcoc3RyZWFtKTogaW52YWxpZCBlcmFzZSBsaW5lIGNvbW1hbmQ6IHdhcm5pbmcoc3RyZWFtKTogaW52YWxpZCBJTCBjb21tYW5kOiB3YXJuaW5nKHN0cmVhbSk6IGlnbm9yaW5nIHVuaW1wbGVtZW50ZWQgQ1NJIEwgd2l0aCBpbnRlcm1lZGlhdGVzOiB3YXJuaW5nKHN0cmVhbSk6IGludmFsaWQgREwgY29tbWFuZDogd2FybmluZyhzdHJlYW0pOiBpZ25vcmluZyB1bmltcGxlbWVudGVkIENTSSBNIHdpdGggaW50ZXJtZWRpYXRlczogd2FybmluZyhzdHJlYW0pOiBpbnZhbGlkIGRlbGV0ZSBjaGFyYWN0ZXJzIGNvbW1hbmQ6IHdhcm5pbmcoc3RyZWFtKTogaWdub3JpbmcgdW5pbXBsZW1lbnRlZCBDU0kgUCB3aXRoIGludGVybWVkaWF0ZXM6IHdhcm5pbmcoc3RyZWFtKTogaW52YWxpZCBzY3JvbGwgdXAgY29tbWFuZDogd2FybmluZyhzdHJlYW0pOiBpZ25vcmluZyB1bmltcGxlbWVudGVkIENTSSBTIHdpdGggaW50ZXJtZWRpYXRlczogd2FybmluZyhzdHJlYW0pOiBpbnZhbGlkIHNjcm9sbCBkb3duIGNvbW1hbmQ6IHdhcm5pbmcoc3RyZWFtKTogaWdub3JpbmcgdW5pbXBsZW1lbnRlZCBDU0kgVCB3aXRoIGludGVybWVkaWF0ZXM6IHdhcm5pbmcoc3RyZWFtKTogaW52YWxpZCBjdXJzb3IgdGFidWxhdGlvbiBjb250cm9sOiB3YXJuaW5nKHN0cmVhbSk6IGlnbm9yaW5nIHVuaW1wbGVtZW50ZWQgQ1NJIFcgd2l0aCBpbnRlcm1lZGlhdGVzOiB3YXJuaW5nKHN0cmVhbSk6IGludmFsaWQgZXJhc2UgY2hhcmFjdGVycyBjb21tYW5kOiB3YXJuaW5nKHN0cmVhbSk6IGlnbm9yaW5nIHVuaW1wbGVtZW50ZWQgQ1NJIFggd2l0aCBpbnRlcm1lZGlhdGVzOiB3YXJuaW5nKHN0cmVhbSk6IGludmFsaWQgaG9yaXpvbnRhbCB0YWIgYmFjayBjb21tYW5kOiB3YXJuaW5nKHN0cmVhbSk6IGlnbm9yaW5nIHVuaW1wbGVtZW50ZWQgQ1NJIFogd2l0aCBpbnRlcm1lZGlhdGVzOiB3YXJuaW5nKHN0cmVhbSk6IGludmFsaWQgSFBSIGNvbW1hbmQ6IHdhcm5pbmcoc3RyZWFtKTogaWdub3JpbmcgdW5pbXBsZW1lbnRlZCBDU0kgYSB3aXRoIGludGVybWVkaWF0ZXM6IHdhcm5pbmcoc3RyZWFtKTogaW52YWxpZCBwcmludCByZXBlYXQgY29tbWFuZDogd2FybmluZyhzdHJlYW0pOiBpZ25vcmluZyB1bmltcGxlbWVudGVkIENTSSBiIHdpdGggaW50ZXJtZWRpYXRlczogd2FybmluZyhzdHJlYW0pOiBpbnZhbGlkIGRldmljZSBhdHRyaWJ1dGVzIGNvbW1hbmQ6IHdhcm5pbmcoc3RyZWFtKTogaW52YWxpZCBWUEEgY29tbWFuZDogd2FybmluZyhzdHJlYW0pOiBpZ25vcmluZyB1bmltcGxlbWVudGVkIENTSSBkIHdpdGggaW50ZXJtZWRpYXRlczogd2FybmluZyhzdHJlYW0pOiBpbnZhbGlkIFZQUiBjb21tYW5kOiB3YXJuaW5nKHN0cmVhbSk6IGlnbm9yaW5nIHVuaW1wbGVtZW50ZWQgQ1NJIGUgd2l0aCBpbnRlcm1lZGlhdGVzOiB3YXJuaW5nKHN0cmVhbSk6IGludmFsaWQgdGFiIGNsZWFyIGNvbW1hbmQ6IHdhcm5pbmcoc3RyZWFtKTogdW5rbm93biB0YWIgY2xlYXIgbW9kZTogd2FybmluZyhzdHJlYW0pOiBpZ25vcmluZyB1bmltcGxlbWVudGVkIENTSSBnIHdpdGggaW50ZXJtZWRpYXRlczogd2FybmluZyhzdHJlYW0pOiBpbnZhbGlkIHNldCBtb2RlIGNvbW1hbmQ6IHdhcm5pbmcoc3RyZWFtKTogdW5pbXBsZW1lbnRlZCBtb2RlOiB3YXJuaW5nKHN0cmVhbSk6IGludmFsaWQgc2V0TW9kaWZ5S2V5Rm9ybWF0OiB3YXJuaW5nKHN0cmVhbSk6IHVua25vd24gQ1NJIG0gd2l0aCBpbnRlcm1lZGlhdGU6IHdhcm5pbmcoc3RyZWFtKTogaWdub3JpbmcgdW5pbXBsZW1lbnRlZCBDU0kgbSB3aXRoIGludGVybWVkaWF0ZXM6IHdhcm5pbmcoc3RyZWFtKTogaW52YWxpZCBkZXZpY2Ugc3RhdHVzIHJlcG9ydCBjb21tYW5kOiB3YXJuaW5nKHN0cmVhbSk6IHVua25vd24gQ1NJIG4gd2l0aCBpbnRlcm1lZGlhdGU6IHdhcm5pbmcoc3RyZWFtKTogaWdub3JpbmcgdW5pbXBsZW1lbnRlZCBDU0kgbiB3aXRoIGludGVybWVkaWF0ZXM6IHdhcm5pbmcoc3RyZWFtKTogaWdub3JpbmcgdW5pbXBsZW1lbnRlZCBDU0kgcCB3aXRoIGludGVybWVkaWF0ZXM6IHdhcm5pbmcoc3RyZWFtKTogaW52YWxpZCBERUNSUU0gY29tbWFuZDogd2FybmluZyhzdHJlYW0pOiBpbnZhbGlkIGN1cnNvciBzdHlsZSB2YWx1ZTogd2FybmluZyhzdHJlYW0pOiBpbnZhbGlkIHNldCBjdXJvciBzdHlsZSBjb21tYW5kOiB3YXJuaW5nKHN0cmVhbSk6IGludmFsaWQgc2V0IHByb3RlY3RlZCBtb2RlIGNvbW1hbmQ6IHdhcm5pbmcoc3RyZWFtKTogaWdub3JpbmcgdW5pbXBsZW1lbnRlZCBDU0kgcSB3aXRoIGludGVybWVkaWF0ZXM6IHdhcm5pbmcoc3RyZWFtKTogaW52YWxpZCBERUNTVEJNIGNvbW1hbmQ6IHdhcm5pbmcoc3RyZWFtKTogdW5pbXBsZW1lbnRlZCByZXN0b3JlIG1vZGU6IHdhcm5pbmcoc3RyZWFtKTogdW5rbm93biBDU0kgcyB3aXRoIGludGVybWVkaWF0ZTogd2FybmluZyhzdHJlYW0pOiBpZ25vcmluZyB1bmltcGxlbWVudGVkIENTSSBzIHdpdGggaW50ZXJtZWRpYXRlczogd2FybmluZyhzdHJlYW0pOiBpbnZhbGlkIERFQ1NMUk0gY29tbWFuZDogd2FybmluZyhzdHJlYW0pOiB1bmltcGxlbWVudGVkIHNhdmUgbW9kZTogd2FybmluZyhzdHJlYW0pOiBpbnZhbGlkIFhUU0hJRlRFU0NBUEUgY29tbWFuZDogd2FybmluZyhzdHJlYW0pOiBpZ25vcmluZyBDU0kgMTQgdCB3aXRoIGV4dHJhIHBhcmFtZXRlcnM6IHdhcm5pbmcoc3RyZWFtKTogaWdub3JpbmcgQ1NJIDE2IHQgd2l0aCBleHRyYSBwYXJhbWV0ZXJzOiB3YXJuaW5nKHN0cmVhbSk6IGlnbm9yaW5nIENTSSAxOCB0IHdpdGggZXh0cmEgcGFyYW1ldGVyczogd2FybmluZyhzdHJlYW0pOiBpZ25vcmluZyBDU0kgMjEgdCB3aXRoIGV4dHJhIHBhcmFtZXRlcnM6IHdhcm5pbmcoc3RyZWFtKTogaWdub3JpbmcgQ1NJIDIyLzIzIHQgd2l0aCBleHRyYSBwYXJhbWV0ZXJzOiB3YXJuaW5nKHN0cmVhbSk6IGlnbm9yaW5nIENTSSB0IHdpdGggdW5pbXBsZW1lbnRlZCBwYXJhbWV0ZXI6IGVycm9yKHN0cmVhbSk6IGlnbm9yaW5nIENTSSB0IHdpdGggbm8gcGFyYW1ldGVyczogd2FybmluZyhzdHJlYW0pOiBpZ25vcmluZyB1bmltcGxlbWVudGVkIENTSSB0IHdpdGggaW50ZXJtZWRpYXRlczogd2FybmluZyhzdHJlYW0pOiBpbnZhbGlkIHB1c2hLaXR0eUtleWJvYXJkIGNvbW1hbmQ6IHdhcm5pbmcoc3RyZWFtKTogaW52YWxpZCBzZXRLaXR0eUtleWJvYXJkIGNvbW1hbmQ6IHdhcm5pbmcoc3RyZWFtKTogaWdub3JpbmcgdW5pbXBsZW1lbnRlZCBDU0kgdTogd2FybmluZyhzdHJlYW0pOiBpbnZhbGlkIElDSCBjb21tYW5kOiB3YXJuaW5nKHN0cmVhbSk6IGlnbm9yaW5nIHVuaW1wbGVtZW50ZWQgQ1NJIEA6IHdhcm5pbmcoc3RyZWFtKTogdW5pbXBsZW1lbnRlZCBDU0kgY2FsbGJhY2s6IHdhcm5pbmcoc3RyZWFtKTogaWdub3JpbmcgdW5pbXBsZW1lbnRlZCBDU0kgQSB3aXRoIGludGVybWVkaWF0ZXM6IHdhcm5pbmcoc3RyZWFtKTogaW52YWxpZCBjdXJzb3IgbGVmdCBjb21tYW5kOiB3YXJuaW5nKHN0cmVhbSk6IGlnbm9yaW5nIHVuaW1wbGVtZW50ZWQgQ1NJIEQgd2l0aCBpbnRlcm1lZGlhdGVzOiB3YXJuaW5nKHN0cmVhbSk6IGludmFsaWQgSFBBIGNvbW1hbmQ6IHdhcm5pbmcoc3RyZWFtKTogaWdub3JpbmcgdW5pbXBsZW1lbnRlZCBDU0kgRyB3aXRoIGludGVybWVkaWF0ZXM6IHdhcm5pbmcoc3RyZWFtKTogaW52YWxpZCBDVVAgY29tbWFuZDogd2FybmluZyhzdHJlYW0pOiBpZ25vcmluZyB1bmltcGxlbWVudGVkIENTSSBIIHdpdGggaW50ZXJtZWRpYXRlczogd2FybmluZyhzdHJlYW0pOiB1bmltcGxlbWVudGVkIENTSSBhY3Rpb246IHdhcm5pbmcoc3RyZWFtKTogY2hhbmdlIHRpdGxlIHJlcXVlc3Q6IGludmFsaWQgdXRmLTgsIGlnbm9yaW5nIHJlcXVlc3R3YXJuaW5nKHN0cmVhbSk6IHVua25vd24gY3Vyc29yIHNoYXBlOiB3YXJuaW5nKHN0cmVhbSk6IGludmFsaWQgT1NDLCBzaG91bGQgbmV2ZXIgaGFwcGVud2FybmluZyhzdHJlYW0pOiB1bmltcGxlbWVudGVkIE9TQyBjYWxsYmFjazogd2FybmluZyhvc2MpOiBPU0Mgc2VxdWVuY2UgdG9vIGxvbmcgKD4gKSwgaWdub3JpbmcuIHN0YXRlPXdhcm5pbmcob3NjKTogT1NDIDEwIHJlcXVpcmVzIGFuIGFsbG9jYXRvciwgYnV0IG5vbmUgd2FzIHByb3ZpZGVkd2FybmluZyhvc2MpOiBPU0MgMTA0IHJlcXVpcmVzIGFuIGFsbG9jYXRvciwgYnV0IG5vbmUgd2FzIHByb3ZpZGVkd2FybmluZyhvc2MpOiBPU0MgMTEgcmVxdWlyZXMgYW4gYWxsb2NhdG9yLCBidXQgbm9uZSB3YXMgcHJvdmlkZWR3YXJuaW5nKG9zYyk6IE9TQyAxMSByZXF1aXJlcyBhbiBhbGxvY2F0b3IsIGJ1dCBub25lIHdhcyBwcm92aWRlZHdhcm5pbmcob3NjKTogT1NDIDEyIHJlcXVpcmVzIGFuIGFsbG9jYXRvciwgYnV0IG5vbmUgd2FzIHByb3ZpZGVkd2FybmluZyhvc2MpOiBPU0MgMTMgcmVxdWlyZXMgYW4gYWxsb2NhdG9yLCBidXQgbm9uZSB3YXMgcHJvdmlkZWR3YXJuaW5nKG9zYyk6IE9TQyAxNCByZXF1aXJlcyBhbiBhbGxvY2F0b3IsIGJ1dCBub25lIHdhcyBwcm92aWRlZHdhcm5pbmcob3NjKTogT1NDIDE1IHJlcXVpcmVzIGFuIGFsbG9jYXRvciwgYnV0IG5vbmUgd2FzIHByb3ZpZGVkd2FybmluZyhvc2MpOiBPU0MgMTYgcmVxdWlyZXMgYW4gYWxsb2NhdG9yLCBidXQgbm9uZSB3YXMgcHJvdmlkZWR3YXJuaW5nKG9zYyk6IE9TQyAxNyByZXF1aXJlcyBhbiBhbGxvY2F0b3IsIGJ1dCBub25lIHdhcyBwcm92aWRlZHdhcm5pbmcob3NjKTogT1NDIDE4IHJlcXVpcmVzIGFuIGFsbG9jYXRvciwgYnV0IG5vbmUgd2FzIHByb3ZpZGVkd2FybmluZyhvc2MpOiBPU0MgMTkgcmVxdWlyZXMgYW4gYWxsb2NhdG9yLCBidXQgbm9uZSB3YXMgcHJvdmlkZWT2ehAAAAAAAAAAAADdNBAAAQAAAAEAAADFNBAAAgAAAAEAAADENBAAAwAAAAEAAABWKRAAAwAAAAIAAADDNBAABAAAAAIAAADHIxAABQAAAAIAAABTLBAABQAAAAMAAAB0JhAABgAAAAMAAACNMBAABwAAAAMAAACvHhAABwAAAAQAAADyLBAACAAAAAQAAABQKRAACQAAAAQAAABhMxAACgAAAAQAAABhIhAACgAAAAUAAADLKRAACwAAAAUAAADNIxAADAAAAAUAAAAJMRAADAAAAAYAAACMHxAADQAAAAYAAAAOLhAADgAAAAYAAADDJxAADgAAAAcAAACpMxAADwAAAAcAAAADIxAAEAAAAAcAAADzKhAAEQAAAAcAAAARJRAAEQAAAAgAAAAlLxAAEgAAAAgAAAD3HhAAEwAAAAgAAAB9LRAAEwAAAAkAAABVKBAAFAAAAAkAAAAgMhAAFQAAAAkAAAAcIRAAFQAAAAoAAABUKhAAFgAAAAoAAACGJBAAFwAAAAoAAAB/MRAAGAAAAAoAAACQIBAAGAAAAAsAAADbLhAAGQAAAAsAAACsJhAAGgAAAAsAAACtNBAAGgAAAAwAAAC1IhAAGwAAAAwAAADzKxAAHAAAAAwAAAAqJhAAHAAAAA0AAAD3LxAAHQAAAA0AAAAXHhAAHgAAAA0AAABZLBAAHwAAAA0AAACsKBAAHwAAAA4AAAC7MhAAIAAAAA4AAAC5IRAAIQAAAA4AAACpKRAAIQAAAA8AAABjJBAAIgAAAA8AAACVMBAAIwAAAA8AAAAmIBAAIwAAABAAAABvLhAAJAAAABAAAABhJxAAJQAAABAAAAC5MxAAJgAAABAAAABSIxAAJgAAABEAAABDKxAAJwAAABEAAABiJRAAKAAAABEAAAB4LxAAKAAAABIAAABiHxAAKQAAABIAAAD7LBAAKgAAABIAAAAqKBAAKgAAABMAAAA2MhAAKwAAABMAAACMIRAALAAAABMAAADFKhAALQAAABMAAADjJBAALQAAABQAAABQMRAALgAAABQAAACpIBAALwAAABQAAAD1LhAALwAAABUAAAB7JhAAMAAAABUAAAAzNBAAMQAAABUAAADRIhAAMQAAABYAAADAKxAAMgAAABYAAABHJhAAMwAAABYAAABgMBAANAAAABYAAACCHhAANAAAABcAAADFLBAANQAAABcAAAAZKRAANgAAABcAAAAqMxAANgAAABgAAAApIhAANwAAABgAAADXKRAAOAAAABgAAADaIxAAOAAAABkAAAAWMRAAOQAAABkAAACaHxAAOgAAABkAAADSLRAAOwAAABkAAACHJxAAOwAAABoAAABsMxAAPAAAABoAAAAUIxAAPQAAABoAAAAFKxAAPQAAABsAAAAjJRAAPgAAABsAAAA4LxAAPwAAABsAAAC3HhAAPwAAABwAAACRLRAAQAAAABwAAABqKBAAQQAAABwAAADdMRAAQgAAABwAAADZIBAAQgAAAB0AAAAQKhAAQwAAAB0AAACeJBAARAAAAB0AAACYMRAARAAAAB4AAABKIBAARQAAAB4AAACULhAARgAAAB4AAADHJhAARgAAAB8AAABlNBAARwAAAB8AAABsIhAASAAAAB8AAAAQLBAASAAAACAAAADgJRAASQAAACAAAAAVMBAASgAAACAAAAA2HhAASwAAACAAAAB5LBAASwAAACEAAADMKBAATAAAACEAAADcMhAATQAAACEAAADbIRAATQAAACIAAABaKRAATgAAACIAAAATJBAATwAAACIAAAC5MBAATwAAACMAAADVHxAAUAAAACMAAAAdLhAAUQAAACMAAAAOJxAAUgAAACMAAADgMxAAUgAAACQAAAB5IxAAUwAAACQAAABrKxAAVAAAACQAAACLJRAAVAAAACUAAAChLxAAVQAAACUAAAALHxAAVgAAACUAAAAmLRAAVgAAACYAAADSJxAAVwAAACYAAABiMhAAWAAAACYAAAAyIRAAWQAAACYAAABrKhAAWQAAACcAAAB3YXJuaW5nKG9zYyk6IHVua25vd24gcnh2dCBleHRlbnNpb246IHdhcm5pbmcob3NjKTogaW52YWxpZCBPU0MgY29tbWFuZDogAAAAAAAAAAEAAAACAAAABAAAAAkAAAATAAAAJgAAAEwAAACZAAAAMwEAAGYCAADMBAAAmQkAADMTAABmJgAAzEwAAJmZAAAzMwEAZmYCAMzMBACZmQkAMzMTAGZmJgDMzEwAmZmZADMzMwFmZmYCzMzMBP///w93YXJuaW5nKHNjcmVlbik6IChTY3JlZW4uYWRqdXN0Q2FwYWNpdHkpIEZhaWxlZCB0byBhZGQgY3Vyc29yIHN0eWxlIGJhY2sgdG8gcGFnZSwgZXJyPXdhcm5pbmcoc2NyZWVuKTogKFNjcmVlbi5hZGp1c3RDYXBhY2l0eSkgRmFpbGVkIHRvIGFkZCBjdXJzb3IgaHlwZXJsaW5rIGJhY2sgdG8gcGFnZSwgZXJyPWVycm9yKHBhZ2VfbGlzdCk6IGZhaWxlZCB0byByZWdyb3cgYWN0aXZlIGFyZWEgYWZ0ZXIgZXJhc2UgZXJyPXdhcm5pbmcodGVybWluYWwpOiBzY3JvbGwgY2xlYXIgZmFpbGVkLCBkb2luZyBhIG5vcm1hbCBjbGVhciBlcnI9ZXJyb3IodGVybWluYWwpOiB1bmltcGxlbWVudGVkIGVyYXNlIGxpbmUgbW9kZTogZXJyb3IodGVybWluYWwpOiBpbnNlcnRMaW5lcyB0cmFja1BpbiBlcnJvciBlcnI9ZXJyb3IodGVybWluYWwpOiBkZWxldGVMaW5lcyB0cmFja1BpbiBlcnJvciBlcnI9d2FybmluZyh0ZXJtaW5hbCk6IGludmFsaWQgb3IgdW5rbm93biB0YWIgY2xlYXIgc2V0dGluZzogd2FybmluZyhvc2MpOiB6ZXJvIGxlbmd0aCBrZXkgaW4ga2l0dHkgY29sb3IgcHJvdG9jb2x3YXJuaW5nKG9zYyk6IHVua25vd24ga2V5IGluIGtpdHR5IGNvbG9yIHByb3RvY29sOiB3YXJuaW5nKG9zYyk6IGV4Y2VlZGVkIGxpbWl0IGZvciBudW1iZXIgb2Yga2V5cyBpbiBraXR0eSBjb2xvciBwcm90b2NvbCwgaWdub3Jpbmd3YXJuaW5nKG9zYyk6IHVuYWJsZSB0byBhcHBlbmQga2l0dHkgY29sb3IgcHJvdG9jb2wgb3B0aW9uOiB3YXJuaW5nKG9zYyk6IGludmFsaWQgY29sb3IgZm9ybWF0IGluIGtpdHR5IGNvbG9yIHByb3RvY29sOiB3YXJuaW5nKG9zYyk6IGFsbG9jYXRpb24gZmFpbGVkIG9uIGFsbG9jYWJsZSBzdHJpbmcgdGVybWluYXRpb24AAQIDBEVTQyAgJycgKFUrKTB4RVNDIFsgAAAAAAAAAAAAAAAAAAAAAAAAAiAAAAoLDA0ODxAREhPvv70AAAAAAAEAAAACAAAAAwAAAAQAAAAAAAAAAADQCRAACwAAAGQYEAALAAAAcBgQAAoAAAB/EhAACwAAADgYEAANAAAAhgwQAAsAAAB8DhAADwAAAC8PEAAFAAAAJxgQABAAAACFFhAACgAAAJYPEAAVAAAAygwQABIAAACqFBAAEQAAAFEYEAASAAAAUxMQAAoAAAB7GBAACAAAAIQYEAAMAAAAoxcQAA8AAADEERAADQAAAEYYEAAKAAAAkRgQABAAAACLFBAACQAAAPIWEAAKAAAAPgsQAAgAAADxEBAADgAAADgUEAALAAAAVgkQABMAAAAwFBAAEwAAAKwJEAAWAAAAPgkQABcAAAAYFBAAFwAAAH0JEAAXAAAAlQkQABYAAADDCRAAGAAAAMUUEAAOAAAAlg0QAAsAAAA9DxAAEAAAAGoJEAASAAAAWwkQAA4AAAA1FBAADgAAANQdEAALAAAAqA0QAA0AAAAPDxAACwAAALMREAAQAAAAihEQABgAAACVFBAAFAAAANgUEAAYAAAA/RYQABUAAAAMFhAAFAAAAPEUEAAdAAAAARcQABEAAABw2REActkRAHDZEQCiSBIAoEgSAKBIEgCgSBIAoEgSAKBIEgCgSBIAoEgSAKBIEgCgSBIAoEgSAKBIEgCgSBIAoEgSAKBIEgCkSBIApkgSAKhIEgCiSBIAqkgSAKxIEgCuSBIAsEgSAKRIEgCySBIAtEgSAKBIEgCgSBIAoEgSAKBIEgCgSBIAskgSAKJIEgCgSBIAoEgSAKBIEgCgSBIAoEgSAKBIEgCgSBIAoEgSAKBIEgCgSBIAoEgSAKBIEgCgSBIAoEgSAKBIEgCgSBIAoEgSAKBIEgCgSBIAoEgSAKBIEgCgSBIAoEgSAKBIEgCgSBIAoEgSAKBIEgCsSBIArkgSALBIEgCkSBIAoEgSALZIEgC4SBIAukgSALxIEgC+SBIAwEgSAMJIEgDESBIAoEgSAMZIEgDISBIAykgSAKBIEgDMSBIAzkgSANBIEgDSSBIA1EgSANZIEgDYSBIA2kgSANxIEgDeSBIA4EgSAOJIEgDkSBIAoEgSAKBIEgCgSBIAsEgSAA8AAAD/AAAA/w8AAP//AAAIAAAAAAAAAAIAAAAEAAAA",self.location),s=[];if(t.protocol==="file:"){let r=t.pathname;r.match(/^\/[A-Za-z]:\//)&&(r=r.slice(1)),s.push(r)}s.push(t.href,"./ghostty-vt.wasm","/ghostty-vt.wasm");let n=null;for(const r of s)try{return await Er.loadFromPath(r)}catch(i){n=i instanceof Error?i:new Error(String(i))}throw n||new Error("Failed to load Ghostty WASM")}static async loadFromPath(e){let t;if(typeof Bun<"u"&&typeof Bun.file=="function")try{const r=Bun.file(e);await r.exists()&&(t=await r.arrayBuffer())}catch{}if(!t)try{const r=await(await XE(async()=>{const{readFile:i}=await import("./__vite-browser-external-2447137e-BIHI7g3E.js");return{readFile:i}},[])).readFile(e);t=r.buffer.slice(r.byteOffset,r.byteOffset+r.byteLength)}catch{}if(!t){const r=await fetch(e);if(!r.ok)throw new Error(`Failed to fetch WASM: ${r.status} ${r.statusText}`);if(t=await r.arrayBuffer(),t.byteLength===0)throw new Error(`WASM file is empty (0 bytes). Check path: ${e}`)}if(!t)throw new Error(`Could not load WASM from path: ${e}`);const s=await WebAssembly.compile(t),n=await WebAssembly.instantiate(s,{env:{log:(r,i)=>{const a=new Uint8Array(n.exports.memory.buffer,r,i);console.log("[ghostty-vt]",new TextDecoder().decode(a))}}});return new Er(n)}}class _h{constructor(e){this.encoder=0,this.exports=e;const t=this.exports.ghostty_wasm_alloc_opaque(),s=this.exports.ghostty_key_encoder_new(0,t);if(s!==0)throw new Error(`Failed to create key encoder: ${s}`);const n=new DataView(this.exports.memory.buffer);this.encoder=n.getUint32(t,!0),this.exports.ghostty_wasm_free_opaque(t)}setOption(e,t){const s=this.exports.ghostty_wasm_alloc_u8();new DataView(this.exports.memory.buffer).setUint8(s,typeof t=="boolean"?t?1:0:t),this.exports.ghostty_key_encoder_setopt(this.encoder,e,s),this.exports.ghostty_wasm_free_u8(s)}setKittyFlags(e){this.setOption(tg.KITTY_KEYBOARD_FLAGS,e)}encode(e){const t=this.exports.ghostty_wasm_alloc_opaque(),s=this.exports.ghostty_key_event_new(0,t);if(s!==0)throw new Error(`Failed to create key event: ${s}`);const n=new DataView(this.exports.memory.buffer),r=n.getUint32(t,!0);if(this.exports.ghostty_wasm_free_opaque(t),this.exports.ghostty_key_event_set_action(r,e.action),this.exports.ghostty_key_event_set_key(r,e.key),this.exports.ghostty_key_event_set_mods(r,e.mods),e.utf8){const E=new TextEncoder().encode(e.utf8),c=this.exports.ghostty_wasm_alloc_u8_array(E.length);new Uint8Array(this.exports.memory.buffer).set(E,c),this.exports.ghostty_key_event_set_utf8(r,c,E.length),this.exports.ghostty_wasm_free_u8_array(c,E.length)}const i=32,a=this.exports.ghostty_wasm_alloc_u8_array(i),g=this.exports.ghostty_wasm_alloc_usize(),l=this.exports.ghostty_key_encoder_encode(this.encoder,r,a,i,g);if(l!==0)throw this.exports.ghostty_wasm_free_u8_array(a,i),this.exports.ghostty_wasm_free_usize(g),this.exports.ghostty_key_event_free(r),new Error(`Failed to encode key: ${l}`);const B=n.getUint32(g,!0),u=new Uint8Array(this.exports.memory.buffer,a,B).slice();return this.exports.ghostty_wasm_free_u8_array(a,i),this.exports.ghostty_wasm_free_usize(g),this.exports.ghostty_key_event_free(r),u}dispose(){this.encoder&&(this.exports.ghostty_key_encoder_free(this.encoder),this.encoder=0)}}const RB=class Oo{constructor(e,t,s=80,n=24,r){var i;if(this.viewportBufferPtr=0,this.viewportBufferSize=0,this.cellPool=[],this.graphemeBuffer=null,this.graphemeBufferPtr=0,this.exports=e,this.memory=t,this._cols=s,this._rows=n,r){const a=this.exports.ghostty_wasm_alloc_u8_array(Ql);if(a===0)throw new Error("Failed to allocate config (out of memory)");try{const g=new DataView(this.memory.buffer);let l=a;g.setUint32(l,r.scrollbackLimit??1e4,!0),l+=4,g.setUint32(l,r.fgColor??0,!0),l+=4,g.setUint32(l,r.bgColor??0,!0),l+=4,g.setUint32(l,r.cursorColor??0,!0),l+=4;for(let B=0;B<16;B++)g.setUint32(l,((i=r.palette)==null?void 0:i[B])??0,!0),l+=4;this.handle=this.exports.ghostty_terminal_new_with_config(s,n,a)}finally{this.exports.ghostty_wasm_free_u8_array(a,Ql)}}else this.handle=this.exports.ghostty_terminal_new(s,n);if(!this.handle)throw new Error("Failed to create terminal");this.initCellPool()}get cols(){return this._cols}get rows(){return this._rows}write(e){const t=typeof e=="string"?new TextEncoder().encode(e):e,s=this.exports.ghostty_wasm_alloc_u8_array(t.length);new Uint8Array(this.memory.buffer).set(t,s),this.exports.ghostty_terminal_write(this.handle,s,t.length),this.exports.ghostty_wasm_free_u8_array(s,t.length)}resize(e,t){e===this._cols&&t===this._rows||(this._cols=e,this._rows=t,this.exports.ghostty_terminal_resize(this.handle,e,t),this.invalidateBuffers(),this.initCellPool())}free(){this.viewportBufferPtr&&(this.exports.ghostty_wasm_free_u8_array(this.viewportBufferPtr,this.viewportBufferSize),this.viewportBufferPtr=0),this.exports.ghostty_terminal_free(this.handle)}update(){return this.exports.ghostty_render_state_update(this.handle)}getCursor(){return this.update(),{x:this.exports.ghostty_render_state_get_cursor_x(this.handle),y:this.exports.ghostty_render_state_get_cursor_y(this.handle),viewportX:this.exports.ghostty_render_state_get_cursor_x(this.handle),viewportY:this.exports.ghostty_render_state_get_cursor_y(this.handle),visible:this.exports.ghostty_render_state_get_cursor_visible(this.handle),blinking:!1,style:"block"}}getColors(){const e=this.exports.ghostty_render_state_get_bg_color(this.handle),t=this.exports.ghostty_render_state_get_fg_color(this.handle);return{background:{r:e>>16&255,g:e>>8&255,b:e&255},foreground:{r:t>>16&255,g:t>>8&255,b:t&255},cursor:null}}isRowDirty(e){return this.exports.ghostty_render_state_is_row_dirty(this.handle,e)}markClean(){this.exports.ghostty_render_state_mark_clean(this.handle)}getViewport(){const e=this._cols*this._rows,t=e*Oo.CELL_SIZE;return(!this.viewportBufferPtr||this.viewportBufferSize<t)&&(this.viewportBufferPtr&&this.exports.ghostty_wasm_free_u8_array(this.viewportBufferPtr,this.viewportBufferSize),this.viewportBufferPtr=this.exports.ghostty_wasm_alloc_u8_array(t),this.viewportBufferSize=t),this.exports.ghostty_render_state_get_viewport(this.handle,this.viewportBufferPtr,e)<0?this.cellPool:(this.parseCellsIntoPool(this.viewportBufferPtr,e),this.cellPool)}getLine(e){if(e<0||e>=this._rows)return null;this.update();const t=this.getViewport(),s=e*this._cols;return t.slice(s,s+this._cols).map(n=>({...n}))}isDirty(){return this.update()!==ta.NONE}needsFullRedraw(){return this.update()===ta.FULL}clearDirty(){this.markClean()}isAlternateScreen(){return!!this.exports.ghostty_terminal_is_alternate_screen(this.handle)}hasBracketedPaste(){return this.getMode(2004,!1)}hasFocusEvents(){return this.getMode(1004,!1)}hasMouseTracking(){return this.exports.ghostty_terminal_has_mouse_tracking(this.handle)!==0}getDimensions(){return{cols:this._cols,rows:this._rows}}getScrollbackLength(){return this.exports.ghostty_terminal_get_scrollback_length(this.handle)}getScrollbackLine(e){const t=this._cols*Oo.CELL_SIZE;(!this.viewportBufferPtr||this.viewportBufferSize<t)&&(this.viewportBufferPtr&&this.exports.ghostty_wasm_free_u8_array(this.viewportBufferPtr,this.viewportBufferSize),this.viewportBufferPtr=this.exports.ghostty_wasm_alloc_u8_array(t),this.viewportBufferSize=t),this.update();const s=this.exports.ghostty_terminal_get_scrollback_line(this.handle,e,this.viewportBufferPtr,this._cols);if(s<0)return null;const n=[],r=this.memory.buffer,i=new Uint8Array(r,this.viewportBufferPtr,s*Oo.CELL_SIZE),a=new DataView(r,this.viewportBufferPtr,s*Oo.CELL_SIZE);for(let g=0;g<s;g++){const l=g*Oo.CELL_SIZE;n.push({codepoint:a.getUint32(l,!0),fg_r:i[l+4],fg_g:i[l+5],fg_b:i[l+6],bg_r:i[l+7],bg_g:i[l+8],bg_b:i[l+9],flags:i[l+10],width:i[l+11],hyperlink_id:a.getUint16(l+12,!0),grapheme_len:i[l+14]})}return n}isRowWrapped(e){return this.exports.ghostty_terminal_is_row_wrapped(this.handle,e)!==0}getHyperlinkUri(e){return null}hasResponse(){return this.exports.ghostty_terminal_has_response(this.handle)}readResponse(){if(!this.hasResponse())return null;const e=256,t=this.exports.ghostty_wasm_alloc_u8_array(e);try{const s=this.exports.ghostty_terminal_read_response(this.handle,t,e);if(s<=0)return null;const n=new Uint8Array(this.memory.buffer,t,s);return new TextDecoder().decode(n.slice())}finally{this.exports.ghostty_wasm_free_u8_array(t,e)}}getMode(e,t=!1){return this.exports.ghostty_terminal_get_mode(this.handle,e,t)!==0}initCellPool(){const e=this._cols*this._rows;if(this.cellPool.length<e)for(let t=this.cellPool.length;t<e;t++)this.cellPool.push({codepoint:0,fg_r:204,fg_g:204,fg_b:204,bg_r:0,bg_g:0,bg_b:0,flags:0,width:1,hyperlink_id:0,grapheme_len:0})}parseCellsIntoPool(e,t){const s=this.memory.buffer,n=new Uint8Array(s,e,t*Oo.CELL_SIZE),r=new DataView(s,e,t*Oo.CELL_SIZE);for(let i=0;i<t;i++){const a=i*Oo.CELL_SIZE,g=this.cellPool[i];g.codepoint=r.getUint32(a,!0),g.fg_r=n[a+4],g.fg_g=n[a+5],g.fg_b=n[a+6],g.bg_r=n[a+7],g.bg_g=n[a+8],g.bg_b=n[a+9],g.flags=n[a+10],g.width=n[a+11],g.hyperlink_id=r.getUint16(a+12,!0),g.grapheme_len=n[a+14]}}getGrapheme(e,t){this.graphemeBuffer||(this.graphemeBufferPtr=this.exports.ghostty_wasm_alloc_u8_array(64),this.graphemeBuffer=new Uint32Array(this.memory.buffer,this.graphemeBufferPtr,16));const s=this.exports.ghostty_render_state_get_grapheme(this.handle,e,t,this.graphemeBufferPtr,16);if(s<0)return null;const n=new Uint32Array(this.memory.buffer,this.graphemeBufferPtr,s);return Array.from(n)}getGraphemeString(e,t){const s=this.getGrapheme(e,t);return!s||s.length===0?" ":String.fromCodePoint(...s)}getScrollbackGrapheme(e,t){this.graphemeBuffer||(this.graphemeBufferPtr=this.exports.ghostty_wasm_alloc_u8_array(64),this.graphemeBuffer=new Uint32Array(this.memory.buffer,this.graphemeBufferPtr,16));const s=this.exports.ghostty_terminal_get_scrollback_grapheme(this.handle,e,t,this.graphemeBufferPtr,16);if(s<0)return null;const n=new Uint32Array(this.memory.buffer,this.graphemeBufferPtr,s);return Array.from(n)}getScrollbackGraphemeString(e,t){const s=this.getScrollbackGrapheme(e,t);return!s||s.length===0?" ":String.fromCodePoint(...s)}invalidateBuffers(){this.viewportBufferPtr&&(this.exports.ghostty_wasm_free_u8_array(this.viewportBufferPtr,this.viewportBufferSize),this.viewportBufferPtr=0,this.viewportBufferSize=0)}};RB.CELL_SIZE=16;let Zh=RB;class po{constructor(){this.listeners=[],this.event=e=>(this.listeners.push(e),{dispose:()=>{const t=this.listeners.indexOf(e);t>=0&&this.listeners.splice(t,1)}})}fire(e){for(const t of this.listeners)t(e)}dispose(){this.listeners=[]}}class Xh{constructor(e){this.bufferChangeEmitter=new po,this.terminal=e}get active(){const e=this.terminal.wasmTerm;return e?e.isAlternateScreen()?this.alternate:this.normal:this.normal}get normal(){return this._normalBuffer||(this._normalBuffer=new Bl(this.terminal,"normal")),this._normalBuffer}get alternate(){return this._alternateBuffer||(this._alternateBuffer=new Bl(this.terminal,"alternate")),this._alternateBuffer}get onBufferChange(){return this.bufferChangeEmitter.event}_fireBufferChange(e){this.bufferChangeEmitter.fire(e)}}class Bl{constructor(e,t){this.terminal=e,this.bufferType=t;const s={codepoint:0,fg_r:204,fg_g:204,fg_b:204,bg_r:0,bg_g:0,bg_b:0,flags:0,width:1,hyperlink_id:0,grapheme_len:0};this.nullCell=new oa(s,0)}get type(){return this.bufferType}get cursorX(){const e=this.getWasmTerm();return e?e.getCursor().x:0}get cursorY(){const e=this.getWasmTerm();return e?e.getCursor().y:0}get viewportY(){return 0}get baseY(){return 0}get length(){const e=this.getWasmTerm();return e?this.bufferType==="alternate"?e.rows:e.getScrollbackLength()+e.rows:0}getLine(e){const t=this.getWasmTerm();if(!t||e<0||e>=this.length)return;const s=t.getScrollbackLength();let n,r,i;if(this.bufferType==="normal"&&e<s){const a=e;n=t.getScrollbackLine(a),i=!1}else r=this.bufferType==="normal"?e-s:e,n=t.getLine(r),i=t.isRowWrapped(r);if(n)return new $h(n,i,t.cols)}getNullCell(){return this.nullCell}getWasmTerm(){return this.terminal.wasmTerm}}class $h{constructor(e,t,s){this.cells=e,this._isWrapped=t,this._length=s}get length(){return this._length}get isWrapped(){return this._isWrapped}getCell(e){if(!(e<0||e>=this._length))return e>=this.cells.length?new oa({codepoint:0,fg_r:204,fg_g:204,fg_b:204,bg_r:0,bg_g:0,bg_b:0,flags:0,width:1,hyperlink_id:0,grapheme_len:0},e):new oa(this.cells[e],e)}translateToString(e=!1,t=0,s=this._length){const n=Math.max(0,Math.min(t,this._length)),r=Math.max(n,Math.min(s,this._length));let i="";for(let a=n;a<r;a++){const g=this.getCell(a);if(g){const l=g.getChars();i+=l}}return e&&(i=i.trimEnd()),i}}class oa{constructor(e,t){this.cell=e,this.x=t}getChars(){const e=this.cell.codepoint;return e===0?"":e<0||e>1114111||e>=55296&&e<=57343?"�":String.fromCodePoint(e)}getCode(){return this.cell.codepoint}getWidth(){return this.cell.width}getFgColorMode(){return-1}getBgColorMode(){return-1}getFgColor(){return this.cell.fg_r<<16|this.cell.fg_g<<8|this.cell.fg_b}getBgColor(){return this.cell.bg_r<<16|this.cell.bg_g<<8|this.cell.bg_b}isBold(){return this.cell.flags&wt.BOLD?1:0}isItalic(){return this.cell.flags&wt.ITALIC?1:0}isUnderline(){return this.cell.flags&wt.UNDERLINE?1:0}isStrikethrough(){return this.cell.flags&wt.STRIKETHROUGH?1:0}isBlink(){return this.cell.flags&wt.BLINK?1:0}isInverse(){return this.cell.flags&wt.INVERSE?1:0}isInvisible(){return this.cell.flags&wt.INVISIBLE?1:0}isFaint(){return this.cell.flags&wt.FAINT?1:0}getHyperlinkId(){return this.cell.hyperlink_id}getCodepoint(){return this.cell.codepoint}isDim(){return(this.cell.flags&wt.FAINT)!==0}}const A0={KeyA:dA.A,KeyB:dA.B,KeyC:dA.C,KeyD:dA.D,KeyE:dA.E,KeyF:dA.F,KeyG:dA.G,KeyH:dA.H,KeyI:dA.I,KeyJ:dA.J,KeyK:dA.K,KeyL:dA.L,KeyM:dA.M,KeyN:dA.N,KeyO:dA.O,KeyP:dA.P,KeyQ:dA.Q,KeyR:dA.R,KeyS:dA.S,KeyT:dA.T,KeyU:dA.U,KeyV:dA.V,KeyW:dA.W,KeyX:dA.X,KeyY:dA.Y,KeyZ:dA.Z,Digit1:dA.ONE,Digit2:dA.TWO,Digit3:dA.THREE,Digit4:dA.FOUR,Digit5:dA.FIVE,Digit6:dA.SIX,Digit7:dA.SEVEN,Digit8:dA.EIGHT,Digit9:dA.NINE,Digit0:dA.ZERO,Enter:dA.ENTER,Escape:dA.ESCAPE,Backspace:dA.BACKSPACE,Tab:dA.TAB,Space:dA.SPACE,Minus:dA.MINUS,Equal:dA.EQUAL,BracketLeft:dA.BRACKET_LEFT,BracketRight:dA.BRACKET_RIGHT,Backslash:dA.BACKSLASH,Semicolon:dA.SEMICOLON,Quote:dA.QUOTE,Backquote:dA.GRAVE,Comma:dA.COMMA,Period:dA.PERIOD,Slash:dA.SLASH,CapsLock:dA.CAPS_LOCK,F1:dA.F1,F2:dA.F2,F3:dA.F3,F4:dA.F4,F5:dA.F5,F6:dA.F6,F7:dA.F7,F8:dA.F8,F9:dA.F9,F10:dA.F10,F11:dA.F11,F12:dA.F12,PrintScreen:dA.PRINT_SCREEN,ScrollLock:dA.SCROLL_LOCK,Pause:dA.PAUSE,Insert:dA.INSERT,Home:dA.HOME,PageUp:dA.PAGE_UP,Delete:dA.DELETE,End:dA.END,PageDown:dA.PAGE_DOWN,ArrowRight:dA.RIGHT,ArrowLeft:dA.LEFT,ArrowDown:dA.DOWN,ArrowUp:dA.UP,NumLock:dA.NUM_LOCK,NumpadDivide:dA.KP_DIVIDE,NumpadMultiply:dA.KP_MULTIPLY,NumpadSubtract:dA.KP_MINUS,NumpadAdd:dA.KP_PLUS,NumpadEnter:dA.KP_ENTER,Numpad1:dA.KP_1,Numpad2:dA.KP_2,Numpad3:dA.KP_3,Numpad4:dA.KP_4,Numpad5:dA.KP_5,Numpad6:dA.KP_6,Numpad7:dA.KP_7,Numpad8:dA.KP_8,Numpad9:dA.KP_9,Numpad0:dA.KP_0,NumpadDecimal:dA.KP_PERIOD,IntlBackslash:dA.INTL_BACKSLASH,ContextMenu:dA.CONTEXT_MENU,F13:dA.F13,F14:dA.F14,F15:dA.F15,F16:dA.F16,F17:dA.F17,F18:dA.F18,F19:dA.F19,F20:dA.F20,F21:dA.F21,F22:dA.F22,F23:dA.F23,F24:dA.F24};class e0{constructor(e,t,s,n,r,i,a){this.keydownListener=null,this.keypressListener=null,this.pasteListener=null,this.compositionStartListener=null,this.compositionUpdateListener=null,this.compositionEndListener=null,this.isComposing=!1,this.isDisposed=!1,this.encoder=e.createKeyEncoder(),this.container=t,this.onDataCallback=s,this.onBellCallback=n,this.onKeyCallback=r,this.customKeyEventHandler=i,this.getModeCallback=a,this.attach()}setCustomKeyEventHandler(e){this.customKeyEventHandler=e}attach(){typeof this.container.hasAttribute=="function"&&typeof this.container.setAttribute=="function"&&(this.container.hasAttribute("tabindex")||this.container.setAttribute("tabindex","0"),this.container.style&&(this.container.style.outline="none")),this.keydownListener=this.handleKeyDown.bind(this),this.container.addEventListener("keydown",this.keydownListener),this.pasteListener=this.handlePaste.bind(this),this.container.addEventListener("paste",this.pasteListener),this.compositionStartListener=this.handleCompositionStart.bind(this),this.container.addEventListener("compositionstart",this.compositionStartListener),this.compositionUpdateListener=this.handleCompositionUpdate.bind(this),this.container.addEventListener("compositionupdate",this.compositionUpdateListener),this.compositionEndListener=this.handleCompositionEnd.bind(this),this.container.addEventListener("compositionend",this.compositionEndListener)}mapKeyCode(e){return A0[e]??null}extractModifiers(e){let t=es.NONE;return e.shiftKey&&(t|=es.SHIFT),e.ctrlKey&&(t|=es.CTRL),e.altKey&&(t|=es.ALT),e.metaKey&&(t|=es.SUPER),t}isPrintableCharacter(e){return e.ctrlKey&&!e.altKey||e.altKey&&!e.ctrlKey||e.metaKey?!1:e.key.length===1}handleKeyDown(e){if(this.isDisposed||this.isComposing||e.isComposing||e.keyCode===229)return;if(this.onKeyCallback&&this.onKeyCallback({key:e.key,domEvent:e}),this.customKeyEventHandler&&this.customKeyEventHandler(e)){e.preventDefault();return}if((e.ctrlKey||e.metaKey)&&e.code==="KeyV"||e.metaKey&&e.code==="KeyC")return;if(this.isPrintableCharacter(e)){e.preventDefault(),this.onDataCallback(e.key);return}const t=this.mapKeyCode(e.code);if(t===null)return;const s=this.extractModifiers(e);if(s===es.NONE||s===es.SHIFT){let r=null;switch(t){case dA.ENTER:r="\r";break;case dA.TAB:r=" ";break;case dA.BACKSPACE:r="";break;case dA.ESCAPE:r="\x1B";break;case dA.HOME:r="\x1B[H";break;case dA.END:r="\x1B[F";break;case dA.INSERT:r="\x1B[2~";break;case dA.DELETE:r="\x1B[3~";break;case dA.PAGE_UP:r="\x1B[5~";break;case dA.PAGE_DOWN:r="\x1B[6~";break;case dA.F1:r="\x1BOP";break;case dA.F2:r="\x1BOQ";break;case dA.F3:r="\x1BOR";break;case dA.F4:r="\x1BOS";break;case dA.F5:r="\x1B[15~";break;case dA.F6:r="\x1B[17~";break;case dA.F7:r="\x1B[18~";break;case dA.F8:r="\x1B[19~";break;case dA.F9:r="\x1B[20~";break;case dA.F10:r="\x1B[21~";break;case dA.F11:r="\x1B[23~";break;case dA.F12:r="\x1B[24~";break}if(r!==null){e.preventDefault(),this.onDataCallback(r);return}}const n=UB.PRESS;try{if(this.getModeCallback){const g=this.getModeCallback(1);this.encoder.setOption(tg.CURSOR_KEY_APPLICATION,g)}const r=e.key.length===1&&e.key.charCodeAt(0)<128?e.key.toLowerCase():void 0,i=this.encoder.encode({action:n,key:t,mods:s,utf8:r}),a=new TextDecoder().decode(i);e.preventDefault(),e.stopPropagation(),a.length>0&&this.onDataCallback(a)}catch(r){console.warn("Failed to encode key:",e.code,r)}}handlePaste(e){if(this.isDisposed)return;e.preventDefault(),e.stopPropagation();const t=e.clipboardData;if(!t){console.warn("No clipboard data available");return}const s=t.getData("text/plain");if(!s){console.warn("No text in clipboard");return}this.onDataCallback(s)}handleCompositionStart(e){this.isDisposed||(this.isComposing=!0)}handleCompositionUpdate(e){this.isDisposed}handleCompositionEnd(e){if(this.isDisposed)return;this.isComposing=!1;const t=e.data;if(t&&t.length>0&&this.onDataCallback(t),this.container&&this.container.childNodes)for(let s=this.container.childNodes.length-1;s>=0;s--){const n=this.container.childNodes[s];n.nodeType===3&&this.container.removeChild(n)}}dispose(){this.isDisposed||(this.keydownListener&&(this.container.removeEventListener("keydown",this.keydownListener),this.keydownListener=null),this.keypressListener&&(this.container.removeEventListener("keypress",this.keypressListener),this.keypressListener=null),this.pasteListener&&(this.container.removeEventListener("paste",this.pasteListener),this.pasteListener=null),this.compositionStartListener&&(this.container.removeEventListener("compositionstart",this.compositionStartListener),this.compositionStartListener=null),this.compositionUpdateListener&&(this.container.removeEventListener("compositionupdate",this.compositionUpdateListener),this.compositionUpdateListener=null),this.compositionEndListener&&(this.container.removeEventListener("compositionend",this.compositionEndListener),this.compositionEndListener=null),this.isDisposed=!0)}isActive(){return!this.isDisposed}}class t0{constructor(e){this.terminal=e,this.providers=[],this.linkCache=new Map,this.scannedRows=new Set}registerProvider(e){this.providers.push(e),this.invalidateCache()}async getLinkAt(e,t){const s=this.terminal.buffer.active.getLine(t);if(!s||e<0||e>=s.length)return;const n=s.getCell(e);if(!n)return;const r=n.getHyperlinkId();if(r>0){const i=`h${r}`;if(this.linkCache.has(i))return this.linkCache.get(i)}if(this.scannedRows.has(t)||await this.scanRow(t),r>0){const i=`h${r}`,a=this.linkCache.get(i);if(a)return a}for(const i of this.linkCache.values())if(this.isPositionInLink(e,t,i))return i}async scanRow(e){this.scannedRows.add(e);const t=[];for(const s of this.providers){const n=await new Promise(r=>{s.provideLinks(e,r)});n&&t.push(...n)}for(const s of t)this.cacheLink(s)}cacheLink(e){const{start:t}=e.range,s=this.terminal.buffer.active.getLine(t.y);if(s){const a=s.getCell(t.x);if(!a){const{start:l,end:B}=e.range,u=`r${l.y}:${l.x}-${B.x}`;this.linkCache.set(u,e);return}const g=a.getHyperlinkId();if(g>0){this.linkCache.set(`h${g}`,e);return}}const{start:n,end:r}=e.range,i=`r${n.y}:${n.x}-${r.x}`;this.linkCache.set(i,e)}isPositionInLink(e,t,s){const{start:n,end:r}=s.range;return t<n.y||t>r.y?!1:n.y===r.y?e>=n.x&&e<=r.x:t===n.y?e>=n.x:t===r.y?e<=r.x:!0}invalidateCache(){this.linkCache.clear(),this.scannedRows.clear()}invalidateRows(e,t){for(let n=e;n<=t;n++)this.scannedRows.delete(n);const s=[];for(const[n,r]of this.linkCache.entries()){const{start:i,end:a}=r.range;(i.y>=e&&i.y<=t||a.y>=e&&a.y<=t||i.y<e&&a.y>t)&&s.push(n)}for(const n of s)this.linkCache.delete(n)}dispose(){var e;this.linkCache.clear(),this.scannedRows.clear();for(const t of this.providers)(e=t.dispose)==null||e.call(t);this.providers=[]}}class o0{constructor(e){this.terminal=e}provideLinks(e,t){const s=[],n=new Set,r=this.terminal.buffer.active.getLine(e);if(!r){t(void 0);return}for(let i=0;i<r.length;i++){const a=r.getCell(i);if(!a)continue;const g=a.getHyperlinkId();if(g===0||n.has(g))continue;n.add(g);const l=this.findLinkRange(g,e,i);if(!this.terminal.wasmTerm)continue;const B=this.terminal.wasmTerm.getHyperlinkUri(g);B&&s.push({text:B,range:l,activate:u=>{(u.ctrlKey||u.metaKey)&&window.open(B,"_blank","noopener,noreferrer")}})}t(s.length>0?s:void 0)}findLinkRange(e,t,s){const n=this.terminal.buffer.active;let r=t,i=s;for(;i>0;){const B=n.getLine(r);if(!B)break;const u=B.getCell(i-1);if(!u||u.getHyperlinkId()!==e)break;i--}if(i===0&&r>0){let B=r-1;for(;B>=0;){const u=n.getLine(B);if(!u||u.length===0)break;const E=u.getCell(u.length-1);if(!E||E.getHyperlinkId()!==e)break;r=B,i=0;for(let c=u.length-1;c>=0;c--){const d=u.getCell(c);if(!d||d.getHyperlinkId()!==e){i=c+1;break}}if(i===0)B--;else break}}let a=t,g=s;const l=n.getLine(a);if(l){for(;g<l.length-1;){const B=l.getCell(g+1);if(!B||B.getHyperlinkId()!==e)break;g++}if(g===l.length-1){let B=a+1;const u=n.length;for(;B<u;){const E=n.getLine(B);if(!E||E.length===0)break;const c=E.getCell(0);if(!c||c.getHyperlinkId()!==e)break;a=B,g=0;for(let d=0;d<E.length;d++){const f=E.getCell(d);if(!f)break;if(f.getHyperlinkId()!==e){g=d-1;break}g=d}if(g===E.length-1)B++;else break}}}return{start:{x:i,y:r},end:{x:g,y:a}}}dispose(){}}const og=class Qr{constructor(e){this.terminal=e}provideLinks(e,t){const s=[],n=this.terminal.buffer.active.getLine(e);if(!n){t(void 0);return}const r=this.lineToText(n);Qr.URL_REGEX.lastIndex=0;let i=Qr.URL_REGEX.exec(r);for(;i!==null;){let a=i[0];const g=i.index;let l=i.index+a.length-1;const B=a.replace(Qr.TRAILING_PUNCTUATION,"");B.length<a.length&&(a=B,l=g+a.length-1),a.length>8&&s.push({text:a,range:{start:{x:g,y:e},end:{x:l,y:e}},activate:u=>{(u.ctrlKey||u.metaKey)&&window.open(a,"_blank","noopener,noreferrer")}}),i=Qr.URL_REGEX.exec(r)}t(s.length>0?s:void 0)}lineToText(e){const t=[];for(let s=0;s<e.length;s++){const n=e.getCell(s);if(!n){t.push(" ");continue}const r=n.getCodepoint();r===0||r<32?t.push(" "):t.push(String.fromCodePoint(r))}return t.join("")}dispose(){}};og.URL_REGEX=/(?:https?:\/\/|mailto:|ftp:\/\/|ssh:\/\/|git:\/\/|tel:|magnet:|gemini:\/\/|gopher:\/\/|news:)[\w\-.~:\/?#@!$&*+,;=%]+/gi;og.TRAILING_PUNCTUATION=/[.,;!?)\]]+$/;let s0=og;const cl={foreground:"#d4d4d4",background:"#1e1e1e",cursor:"#ffffff",cursorAccent:"#1e1e1e",selectionBackground:"#d4d4d4",selectionForeground:"#1e1e1e",black:"#000000",red:"#cd3131",green:"#0dbc79",yellow:"#e5e510",blue:"#2472c8",magenta:"#bc3fbc",cyan:"#11a8cd",white:"#e5e5e5",brightBlack:"#666666",brightRed:"#f14c4c",brightGreen:"#23d18b",brightYellow:"#f5f543",brightBlue:"#3b8eea",brightMagenta:"#d670d6",brightCyan:"#29b8db",brightWhite:"#ffffff"};class r0{constructor(e,t={}){this.cursorVisible=!0,this.lastCursorPosition={x:0,y:0},this.lastViewportY=0,this.currentBuffer=null,this.currentSelectionCoords=null,this.hoveredHyperlinkId=0,this.previousHoveredHyperlinkId=0,this.hoveredLinkRange=null,this.previousHoveredLinkRange=null,this.canvas=e;const s=e.getContext("2d",{alpha:!0});if(!s)throw new Error("Failed to get 2D rendering context");this.ctx=s,this.fontSize=t.fontSize??15,this.fontFamily=t.fontFamily??"monospace",this.cursorStyle=t.cursorStyle??"block",this.cursorBlink=t.cursorBlink??!1,this.theme={...cl,...t.theme},this.devicePixelRatio=t.devicePixelRatio??window.devicePixelRatio??1,this.palette=[this.theme.black,this.theme.red,this.theme.green,this.theme.yellow,this.theme.blue,this.theme.magenta,this.theme.cyan,this.theme.white,this.theme.brightBlack,this.theme.brightRed,this.theme.brightGreen,this.theme.brightYellow,this.theme.brightBlue,this.theme.brightMagenta,this.theme.brightCyan,this.theme.brightWhite],this.metrics=this.measureFont(),this.cursorBlink&&this.startCursorBlink()}measureFont(){const e=document.createElement("canvas").getContext("2d");e.font=`${this.fontSize}px ${this.fontFamily}`;const t=e.measureText("M"),s=Math.ceil(t.width),n=t.actualBoundingBoxAscent||this.fontSize*.8,r=t.actualBoundingBoxDescent||this.fontSize*.2,i=Math.ceil(n+r)+2,a=Math.ceil(n)+1;return{width:s,height:i,baseline:a}}remeasureFont(){this.metrics=this.measureFont()}rgbToCSS(e,t,s){return`rgb(${e}, ${t}, ${s})`}resize(e,t){const s=e*this.metrics.width,n=t*this.metrics.height;this.canvas.style.width=`${s}px`,this.canvas.style.height=`${n}px`,this.canvas.width=s*this.devicePixelRatio,this.canvas.height=n*this.devicePixelRatio,this.ctx.scale(this.devicePixelRatio,this.devicePixelRatio),this.ctx.textBaseline="alphabetic",this.ctx.textAlign="left",this.ctx.fillStyle=this.theme.background,this.ctx.fillRect(0,0,s,n)}render(e,t=!1,s=0,n,r=1){var i;this.currentBuffer=e;const a=e.getCursor(),g=e.getDimensions(),l=n?n.getScrollbackLength():0;(i=e.needsFullRedraw)!=null&&i.call(e)&&(t=!0),(this.canvas.width!==g.cols*this.metrics.width*this.devicePixelRatio||this.canvas.height!==g.rows*this.metrics.height*this.devicePixelRatio)&&(this.resize(g.cols,g.rows),t=!0),s!==this.lastViewportY&&(t=!0,this.lastViewportY=s);const B=a.x!==this.lastCursorPosition.x||a.y!==this.lastCursorPosition.y;if(B||this.cursorBlink){if(!t&&!e.isRowDirty(a.y)){const D=e.getLine(a.y);D&&this.renderLine(D,a.y,g.cols)}if(B&&this.lastCursorPosition.y!==a.y&&!t&&!e.isRowDirty(this.lastCursorPosition.y)){const D=e.getLine(this.lastCursorPosition.y);D&&this.renderLine(D,this.lastCursorPosition.y,g.cols)}}const u=this.selectionManager&&this.selectionManager.hasSelection(),E=new Set;if(this.currentSelectionCoords=u?this.selectionManager.getSelectionCoords():null,this.currentSelectionCoords){const D=this.currentSelectionCoords;for(let F=D.startRow;F<=D.endRow;F++)E.add(F)}if(this.selectionManager){const D=this.selectionManager.getDirtySelectionRows();if(D.size>0){for(const F of D)E.add(F);this.selectionManager.clearDirtySelectionRows()}}const c=new Set,d=this.hoveredHyperlinkId!==this.previousHoveredHyperlinkId,f=JSON.stringify(this.hoveredLinkRange)!==JSON.stringify(this.previousHoveredLinkRange);if(d){for(let D=0;D<g.rows;D++){let F=null;if(s>0)if(D<s&&n){const k=l-Math.floor(s)+D;F=n.getScrollbackLine(k)}else{const k=D-Math.floor(s);F=e.getLine(k)}else F=e.getLine(D);if(F){for(const k of F)if(k.hyperlink_id===this.hoveredHyperlinkId||k.hyperlink_id===this.previousHoveredHyperlinkId){c.add(D);break}}}this.previousHoveredHyperlinkId=this.hoveredHyperlinkId}if(f){if(this.previousHoveredLinkRange)for(let D=this.previousHoveredLinkRange.startY;D<=this.previousHoveredLinkRange.endY;D++)c.add(D);if(this.hoveredLinkRange)for(let D=this.hoveredLinkRange.startY;D<=this.hoveredLinkRange.endY;D++)c.add(D);this.previousHoveredLinkRange=this.hoveredLinkRange}const p=new Set;for(let D=0;D<g.rows;D++)(s>0||t||e.isRowDirty(D)||E.has(D)||c.has(D))&&(p.add(D),D>0&&p.add(D-1),D<g.rows-1&&p.add(D+1));for(let D=0;D<g.rows;D++){if(!p.has(D))continue;let F=null;if(s>0)if(D<s&&n){const k=l-Math.floor(s)+D;F=n.getScrollbackLine(k)}else{const k=s>0?D-Math.floor(s):D;F=e.getLine(k)}else F=e.getLine(D);F&&this.renderLine(F,D,g.cols)}s===0&&a.visible&&this.cursorVisible&&this.renderCursor(a.x,a.y),n&&r>0&&this.renderScrollbar(s,l,g.rows,r),this.lastCursorPosition={x:a.x,y:a.y},e.clearDirty()}renderLine(e,t,s){const n=t*this.metrics.height;this.ctx.fillStyle=this.theme.background,this.ctx.fillRect(0,n,s*this.metrics.width,this.metrics.height);for(let r=0;r<e.length;r++){const i=e[r];i.width!==0&&this.renderCellBackground(i,r,t)}for(let r=0;r<e.length;r++){const i=e[r];i.width!==0&&this.renderCellText(i,r,t)}}renderCellBackground(e,t,s){const n=t*this.metrics.width,r=s*this.metrics.height,i=this.metrics.width*e.width;if(this.isInSelection(t,s)){this.ctx.fillStyle=this.theme.selectionBackground,this.ctx.fillRect(n,r,i,this.metrics.height);return}let a=e.bg_r,g=e.bg_g,l=e.bg_b;e.flags&wt.INVERSE&&(a=e.fg_r,g=e.fg_g,l=e.fg_b),a===0&&g===0&&l===0||(this.ctx.fillStyle=this.rgbToCSS(a,g,l),this.ctx.fillRect(n,r,i,this.metrics.height))}renderCellText(e,t,s){var n;const r=t*this.metrics.width,i=s*this.metrics.height,a=this.metrics.width*e.width;if(e.flags&wt.INVISIBLE)return;const g=this.isInSelection(t,s);let l="";if(e.flags&wt.ITALIC&&(l+="italic "),e.flags&wt.BOLD&&(l+="bold "),this.ctx.font=`${l}${this.fontSize}px ${this.fontFamily}`,g)this.ctx.fillStyle=this.theme.selectionForeground;else{let c=e.fg_r,d=e.fg_g,f=e.fg_b;e.flags&wt.INVERSE&&(c=e.bg_r,d=e.bg_g,f=e.bg_b),this.ctx.fillStyle=this.rgbToCSS(c,d,f)}e.flags&wt.FAINT&&(this.ctx.globalAlpha=.5);const B=r,u=i+this.metrics.baseline;let E;if(e.grapheme_len>0&&(n=this.currentBuffer)!=null&&n.getGraphemeString?E=this.currentBuffer.getGraphemeString(s,t):E=String.fromCodePoint(e.codepoint||32),this.ctx.fillText(E,B,u),e.flags&wt.FAINT&&(this.ctx.globalAlpha=1),e.flags&wt.UNDERLINE){const c=i+this.metrics.baseline+2;this.ctx.strokeStyle=this.ctx.fillStyle,this.ctx.lineWidth=1,this.ctx.beginPath(),this.ctx.moveTo(r,c),this.ctx.lineTo(r+a,c),this.ctx.stroke()}if(e.flags&wt.STRIKETHROUGH){const c=i+this.metrics.height/2;this.ctx.strokeStyle=this.ctx.fillStyle,this.ctx.lineWidth=1,this.ctx.beginPath(),this.ctx.moveTo(r,c),this.ctx.lineTo(r+a,c),this.ctx.stroke()}if(e.hyperlink_id>0&&e.hyperlink_id===this.hoveredHyperlinkId){const c=i+this.metrics.baseline+2;this.ctx.strokeStyle="#4A90E2",this.ctx.lineWidth=1,this.ctx.beginPath(),this.ctx.moveTo(r,c),this.ctx.lineTo(r+a,c),this.ctx.stroke()}if(this.hoveredLinkRange){const c=this.hoveredLinkRange;if(s===c.startY&&t>=c.startX&&(s<c.endY||t<=c.endX)||s>c.startY&&s<c.endY||s===c.endY&&t<=c.endX&&(s>c.startY||t>=c.startX)){const d=i+this.metrics.baseline+2;this.ctx.strokeStyle="#4A90E2",this.ctx.lineWidth=1,this.ctx.beginPath(),this.ctx.moveTo(r,d),this.ctx.lineTo(r+a,d),this.ctx.stroke()}}}renderCursor(e,t){const s=e*this.metrics.width,n=t*this.metrics.height;switch(this.ctx.fillStyle=this.theme.cursor,this.cursorStyle){case"block":this.ctx.fillRect(s,n,this.metrics.width,this.metrics.height);break;case"underline":const r=Math.max(2,Math.floor(this.metrics.height*.15));this.ctx.fillRect(s,n+this.metrics.height-r,this.metrics.width,r);break;case"bar":const i=Math.max(2,Math.floor(this.metrics.width*.15));this.ctx.fillRect(s,n,i,this.metrics.height);break}}startCursorBlink(){this.cursorBlinkInterval=window.setInterval(()=>{this.cursorVisible=!this.cursorVisible},530)}stopCursorBlink(){this.cursorBlinkInterval!==void 0&&(clearInterval(this.cursorBlinkInterval),this.cursorBlinkInterval=void 0),this.cursorVisible=!0}setTheme(e){this.theme={...cl,...e},this.palette=[this.theme.black,this.theme.red,this.theme.green,this.theme.yellow,this.theme.blue,this.theme.magenta,this.theme.cyan,this.theme.white,this.theme.brightBlack,this.theme.brightRed,this.theme.brightGreen,this.theme.brightYellow,this.theme.brightBlue,this.theme.brightMagenta,this.theme.brightCyan,this.theme.brightWhite]}setFontSize(e){this.fontSize=e,this.metrics=this.measureFont()}setFontFamily(e){this.fontFamily=e,this.metrics=this.measureFont()}setCursorStyle(e){this.cursorStyle=e}setCursorBlink(e){e&&!this.cursorBlink?(this.cursorBlink=!0,this.startCursorBlink()):!e&&this.cursorBlink&&(this.cursorBlink=!1,this.stopCursorBlink())}renderScrollbar(e,t,s,n=1){const r=this.ctx,i=this.canvas.height/this.devicePixelRatio,a=this.canvas.width/this.devicePixelRatio,g=8,l=a-g-4,B=4,u=i-B*2;if(r.fillStyle=this.theme.background,r.fillRect(l-2,0,g+6,i),n<=0||t===0)return;const E=t+s,c=Math.max(20,s/E*u),d=e/t,f=B+(u-c)*(1-d);r.fillStyle=`rgba(128, 128, 128, ${.1*n})`,r.fillRect(l,B,g,u);const p=e>0?.5:.3;r.fillStyle=`rgba(128, 128, 128, ${p*n})`,r.fillRect(l,f,g,c)}getMetrics(){return{...this.metrics}}getCanvas(){return this.canvas}setSelectionManager(e){this.selectionManager=e}isInSelection(e,t){const s=this.currentSelectionCoords;if(!s)return!1;const{startCol:n,startRow:r,endCol:i,endRow:a}=s;return r===a?t===r&&e>=n&&e<=i:t===r?e>=n:t===a?e<=i:t>r&&t<a}setHoveredHyperlinkId(e){this.hoveredHyperlinkId=e}setHoveredLinkRange(e){this.hoveredLinkRange=e}get charWidth(){return this.metrics.width}get charHeight(){return this.metrics.height}clear(){this.ctx.fillStyle=this.theme.background,this.ctx.fillRect(0,0,this.canvas.width,this.canvas.height)}dispose(){this.stopCursorBlink()}}const Hn=class ln{constructor(e,t,s,n){this.selectionStart=null,this.selectionEnd=null,this.isSelecting=!1,this.mouseDownTarget=null,this.dirtySelectionRows=new Set,this.selectionChangedEmitter=new po,this.boundMouseUpHandler=null,this.boundContextMenuHandler=null,this.boundClickHandler=null,this.boundDocumentMouseMoveHandler=null,this.autoScrollInterval=null,this.autoScrollDirection=0,this.terminal=e,this.renderer=t,this.wasmTerm=s,this.textarea=n,this.attachEventListeners()}getViewportY(){const e=typeof this.terminal.getViewportY=="function"?this.terminal.getViewportY():this.terminal.viewportY||0;return Math.max(0,Math.floor(e))}viewportRowToAbsolute(e){const t=this.wasmTerm.getScrollbackLength(),s=this.getViewportY();return t+e-s}absoluteRowToViewport(e){const t=this.wasmTerm.getScrollbackLength(),s=this.getViewportY();return e-t+s}getSelection(){if(!this.selectionStart||!this.selectionEnd)return"";let{col:e,absoluteRow:t}=this.selectionStart,{col:s,absoluteRow:n}=this.selectionEnd;(t>n||t===n&&e>s)&&([e,s]=[s,e],[t,n]=[n,t]);const r=this.wasmTerm.getScrollbackLength();let i="";for(let a=t;a<=n;a++){let g=null;if(a<r)g=this.wasmTerm.getScrollbackLine(a);else{const c=a-r;g=this.wasmTerm.getLine(c)}if(!g)continue;let l=-1;const B=a===t?e:0,u=a===n?s:g.length-1;let E="";for(let c=B;c<=u;c++){const d=g[c];if(d&&d.codepoint!==0){let f;if(d.grapheme_len>0)if(a<r)f=this.wasmTerm.getScrollbackGraphemeString(a,c);else{const p=a-r;f=this.wasmTerm.getGraphemeString(p,c)}else f=String.fromCodePoint(d.codepoint);E+=f,f.trim()&&(l=E.length)}else E+=" "}l>=0?E=E.substring(0,l):E="",i+=E,a<n&&(i+=`
|
|
18
|
+
`)}return i}hasSelection(){return!this.selectionStart||!this.selectionEnd?!1:!(this.selectionStart.col===this.selectionEnd.col&&this.selectionStart.absoluteRow===this.selectionEnd.absoluteRow)}clearSelection(){if(!this.hasSelection())return;const e=this.normalizeSelection();if(e)for(let t=e.startRow;t<=e.endRow;t++)this.dirtySelectionRows.add(t);this.selectionStart=null,this.selectionEnd=null,this.isSelecting=!1,this.requestRender()}selectAll(){const e=this.wasmTerm.getDimensions(),t=this.getViewportY();this.selectionStart={col:0,absoluteRow:t},this.selectionEnd={col:e.cols-1,absoluteRow:t+e.rows-1},this.requestRender(),this.selectionChangedEmitter.fire()}select(e,t,s){const n=this.wasmTerm.getDimensions();t=Math.max(0,Math.min(t,n.rows-1)),e=Math.max(0,Math.min(e,n.cols-1));let r=t,i=e+s-1;for(;i>=n.cols;)i-=n.cols,r++;r=Math.min(r,n.rows-1);const a=this.getViewportY();this.selectionStart={col:e,absoluteRow:a+t},this.selectionEnd={col:i,absoluteRow:a+r},this.requestRender(),this.selectionChangedEmitter.fire()}selectLines(e,t){const s=this.wasmTerm.getDimensions();e=Math.max(0,Math.min(e,s.rows-1)),t=Math.max(0,Math.min(t,s.rows-1)),e>t&&([e,t]=[t,e]);const n=this.getViewportY();this.selectionStart={col:0,absoluteRow:n+e},this.selectionEnd={col:s.cols-1,absoluteRow:n+t},this.requestRender(),this.selectionChangedEmitter.fire()}getSelectionPosition(){const e=this.normalizeSelection();if(e)return{start:{x:e.startCol,y:e.startRow},end:{x:e.endCol,y:e.endRow}}}deselect(){this.clearSelection(),this.selectionChangedEmitter.fire()}focus(){const e=this.renderer.getCanvas();e.parentElement&&e.parentElement.focus()}getSelectionCoords(){return this.normalizeSelection()}getDirtySelectionRows(){return this.dirtySelectionRows}clearDirtySelectionRows(){this.dirtySelectionRows.clear()}get onSelectionChange(){return this.selectionChangedEmitter.event}dispose(){this.selectionChangedEmitter.dispose(),this.stopAutoScroll(),this.boundMouseUpHandler&&(document.removeEventListener("mouseup",this.boundMouseUpHandler),this.boundMouseUpHandler=null),this.boundDocumentMouseMoveHandler&&(document.removeEventListener("mousemove",this.boundDocumentMouseMoveHandler),this.boundDocumentMouseMoveHandler=null),this.boundContextMenuHandler&&(this.renderer.getCanvas().removeEventListener("contextmenu",this.boundContextMenuHandler),this.boundContextMenuHandler=null),this.boundClickHandler&&(document.removeEventListener("click",this.boundClickHandler),this.boundClickHandler=null)}attachEventListeners(){const e=this.renderer.getCanvas();e.addEventListener("mousedown",t=>{if(t.button===0){e.parentElement&&e.parentElement.focus();const s=this.pixelToCell(t.offsetX,t.offsetY);this.hasSelection()&&this.clearSelection();const n=this.viewportRowToAbsolute(s.row);this.selectionStart={col:s.col,absoluteRow:n},this.selectionEnd={col:s.col,absoluteRow:n},this.isSelecting=!0}}),e.addEventListener("mousemove",t=>{if(this.isSelecting){this.markCurrentSelectionDirty();const s=this.pixelToCell(t.offsetX,t.offsetY),n=this.viewportRowToAbsolute(s.row);this.selectionEnd={col:s.col,absoluteRow:n},this.requestRender(),this.updateAutoScroll(t.offsetY,e.clientHeight)}}),e.addEventListener("mouseleave",t=>{if(this.isSelecting){const s=e.getBoundingClientRect();t.clientY<s.top?this.startAutoScroll(-1):t.clientY>s.bottom&&this.startAutoScroll(1)}}),e.addEventListener("mouseenter",()=>{this.isSelecting&&this.stopAutoScroll()}),this.boundDocumentMouseMoveHandler=t=>{if(this.isSelecting){const s=e.getBoundingClientRect(),n=Math.max(s.left,Math.min(t.clientX,s.right)),r=Math.max(s.top,Math.min(t.clientY,s.bottom)),i=n-s.left,a=r-s.top;if((t.clientX<s.left||t.clientX>s.right||t.clientY<s.top||t.clientY>s.bottom)&&(t.clientY<s.top?this.startAutoScroll(-1):t.clientY>s.bottom?this.startAutoScroll(1):this.stopAutoScroll(),this.autoScrollDirection===0)){this.markCurrentSelectionDirty();const g=this.pixelToCell(i,a),l=this.viewportRowToAbsolute(g.row);this.selectionEnd={col:g.col,absoluteRow:l},this.requestRender()}}},document.addEventListener("mousemove",this.boundDocumentMouseMoveHandler),document.addEventListener("mousedown",t=>{this.mouseDownTarget=t.target}),this.boundMouseUpHandler=t=>{if(this.isSelecting){this.isSelecting=!1,this.stopAutoScroll();const s=this.getSelection();s&&(this.copyToClipboard(s),this.selectionChangedEmitter.fire())}},document.addEventListener("mouseup",this.boundMouseUpHandler),e.addEventListener("dblclick",t=>{const s=this.pixelToCell(t.offsetX,t.offsetY),n=this.getWordAtCell(s.col,s.row);if(n){const r=this.viewportRowToAbsolute(s.row);this.selectionStart={col:n.startCol,absoluteRow:r},this.selectionEnd={col:n.endCol,absoluteRow:r},this.requestRender();const i=this.getSelection();i&&(this.copyToClipboard(i),this.selectionChangedEmitter.fire())}}),this.boundContextMenuHandler=t=>{if(this.renderer.getCanvas().getBoundingClientRect(),this.textarea.style.position="fixed",this.textarea.style.left=`${t.clientX}px`,this.textarea.style.top=`${t.clientY}px`,this.textarea.style.width="1px",this.textarea.style.height="1px",this.textarea.style.zIndex="1000",this.textarea.style.opacity="0",this.textarea.style.pointerEvents="auto",this.hasSelection()){const s=this.getSelection();this.textarea.value=s,this.textarea.select(),this.textarea.setSelectionRange(0,s.length)}else this.textarea.value="";this.textarea.focus(),setTimeout(()=>{const s=()=>{this.textarea.style.pointerEvents="none",this.textarea.style.zIndex="-10",this.textarea.style.width="0",this.textarea.style.height="0",this.textarea.style.left="0",this.textarea.style.top="0",this.textarea.value="",document.removeEventListener("click",s),document.removeEventListener("contextmenu",s),this.textarea.removeEventListener("blur",s)};document.addEventListener("click",s,{once:!0}),document.addEventListener("contextmenu",s,{once:!0}),this.textarea.addEventListener("blur",s,{once:!0})},10)},e.addEventListener("contextmenu",this.boundContextMenuHandler),this.boundClickHandler=t=>{if(this.isSelecting||this.mouseDownTarget&&e.contains(this.mouseDownTarget))return;const s=t.target;e.contains(s)||this.hasSelection()&&this.clearSelection()},document.addEventListener("click",this.boundClickHandler)}markCurrentSelectionDirty(){const e=this.normalizeSelection();if(e)for(let t=e.startRow;t<=e.endRow;t++)this.dirtySelectionRows.add(t)}updateAutoScroll(e,t){const s=ln.AUTO_SCROLL_EDGE_SIZE;e<s?this.startAutoScroll(-1):e>t-s?this.startAutoScroll(1):this.stopAutoScroll()}startAutoScroll(e){this.autoScrollInterval!==null&&this.autoScrollDirection===e||(this.stopAutoScroll(),this.autoScrollDirection=e,this.autoScrollInterval=setInterval(()=>{if(!this.isSelecting){this.stopAutoScroll();return}const t=ln.AUTO_SCROLL_SPEED*this.autoScrollDirection;if(this.terminal.scrollLines(t),this.selectionEnd){const s=this.wasmTerm.getDimensions();if(this.autoScrollDirection<0){const n=this.viewportRowToAbsolute(0);n<this.selectionEnd.absoluteRow&&(this.selectionEnd={col:0,absoluteRow:n})}else{const n=this.viewportRowToAbsolute(s.rows-1);n>this.selectionEnd.absoluteRow&&(this.selectionEnd={col:s.cols-1,absoluteRow:n})}}this.requestRender()},ln.AUTO_SCROLL_INTERVAL))}stopAutoScroll(){this.autoScrollInterval!==null&&(clearInterval(this.autoScrollInterval),this.autoScrollInterval=null),this.autoScrollDirection=0}pixelToCell(e,t){const s=this.renderer.getMetrics(),n=Math.floor(e/s.width),r=Math.floor(t/s.height);return{col:Math.max(0,Math.min(n,this.terminal.cols-1)),row:Math.max(0,Math.min(r,this.terminal.rows-1))}}normalizeSelection(){if(!this.selectionStart||!this.selectionEnd)return null;let{col:e,absoluteRow:t}=this.selectionStart,{col:s,absoluteRow:n}=this.selectionEnd;(t>n||t===n&&e>s)&&([e,s]=[s,e],[t,n]=[n,t]);let r=this.absoluteRowToViewport(t),i=this.absoluteRowToViewport(n);const a=this.wasmTerm.getDimensions(),g=a.rows-1;return i<0||r>g?null:(r<0&&(r=0,e=0),i>g&&(i=g,s=a.cols-1),{startCol:e,startRow:r,endCol:s,endRow:i})}getWordAtCell(e,t){const s=this.wasmTerm.getLine(t);if(!s)return null;const n=a=>{if(!a||a.codepoint===0)return!1;const g=String.fromCodePoint(a.codepoint);return/[\w-]/.test(g)};if(!n(s[e]))return null;let r=e;for(;r>0&&n(s[r-1]);)r--;let i=e;for(;i<s.length-1&&n(s[i+1]);)i++;return{startCol:r,endCol:i}}async copyToClipboard(e){if(navigator.clipboard&&navigator.clipboard.writeText)try{await navigator.clipboard.writeText(e);return}catch{}const t=document.activeElement;try{const s=this.textarea;s.value=e,s.style.position="fixed",s.style.left="-9999px",s.style.top="0",s.style.width="1px",s.style.height="1px",s.style.opacity="0",s.focus(),s.select(),s.setSelectionRange(0,e.length);const n=document.execCommand("copy");t&&t.focus(),n||console.error("❌ execCommand copy failed")}catch(s){console.error("❌ Fallback copy failed:",s),t&&t.focus()}}requestRender(){}};Hn.AUTO_SCROLL_EDGE_SIZE=30;Hn.AUTO_SCROLL_SPEED=3;Hn.AUTO_SCROLL_INTERVAL=50;let n0=Hn;class i0{constructor(e={}){this.unicode={get activeVersion(){return"15.1"}},this.dataEmitter=new po,this.resizeEmitter=new po,this.bellEmitter=new po,this.selectionChangeEmitter=new po,this.keyEmitter=new po,this.titleChangeEmitter=new po,this.scrollEmitter=new po,this.renderEmitter=new po,this.cursorMoveEmitter=new po,this.onData=this.dataEmitter.event,this.onResize=this.resizeEmitter.event,this.onBell=this.bellEmitter.event,this.onSelectionChange=this.selectionChangeEmitter.event,this.onKey=this.keyEmitter.event,this.onTitleChange=this.titleChangeEmitter.event,this.onScroll=this.scrollEmitter.event,this.onRender=this.renderEmitter.event,this.onCursorMove=this.cursorMoveEmitter.event,this.isOpen=!1,this.isDisposed=!1,this.addons=[],this.currentTitle="",this.viewportY=0,this.targetViewportY=0,this.lastCursorY=0,this.isDraggingScrollbar=!1,this.scrollbarDragStart=null,this.scrollbarDragStartViewportY=0,this.scrollbarVisible=!1,this.scrollbarOpacity=0,this.SCROLLBAR_HIDE_DELAY_MS=1500,this.SCROLLBAR_FADE_DURATION_MS=200,this.animateScroll=()=>{if(!this.wasmTerm||this.scrollAnimationStartTime===void 0)return;const s=this.options.smoothScrollDuration??100,n=this.targetViewportY-this.viewportY;if(Math.abs(n)<.01){this.viewportY=this.targetViewportY,this.scrollEmitter.fire(Math.floor(this.viewportY)),this.getScrollbackLength()>0&&this.showScrollbar(),this.scrollAnimationFrame=void 0,this.scrollAnimationStartTime=void 0,this.scrollAnimationStartY=void 0;return}const r=1-(1/(s/1e3*60))**2;this.viewportY+=n*r;const i=Math.floor(this.viewportY);this.scrollEmitter.fire(i),this.getScrollbackLength()>0&&this.showScrollbar(),this.scrollAnimationFrame=requestAnimationFrame(this.animateScroll)},this.handleMouseMove=s=>{if(!(!this.canvas||!this.renderer||!this.wasmTerm)){if(this.isDraggingScrollbar){this.processScrollbarDrag(s);return}if(this.linkDetector){if(this.mouseMoveThrottleTimeout){this.pendingMouseMove=s;return}this.processMouseMove(s),this.mouseMoveThrottleTimeout=window.setTimeout(()=>{if(this.mouseMoveThrottleTimeout=void 0,this.pendingMouseMove){const n=this.pendingMouseMove;this.pendingMouseMove=void 0,this.processMouseMove(n)}},16)}}},this.handleMouseLeave=()=>{var s,n;this.renderer&&this.wasmTerm&&((this.renderer.hoveredHyperlinkId||0)>0&&this.renderer.setHoveredHyperlinkId(0),this.renderer.setHoveredLinkRange(null)),this.currentHoveredLink&&((n=(s=this.currentHoveredLink).hover)==null||n.call(s,!1),this.currentHoveredLink=void 0,this.element&&(this.element.style.cursor="text"))},this.handleClick=async s=>{if(!this.canvas||!this.renderer||!this.linkDetector||!this.wasmTerm)return;const n=this.canvas.getBoundingClientRect(),r=Math.floor((s.clientX-n.left)/this.renderer.charWidth),i=Math.floor((s.clientY-n.top)/this.renderer.charHeight),a=this.wasmTerm.getScrollbackLength();let g;const l=this.getViewportY(),B=Math.max(0,Math.floor(l));if(B>0)if(i<B)g=a-B+i;else{const E=i-B;g=a+E}else g=a+i;const u=await this.linkDetector.getLinkAt(r,g);u&&(u.activate(s),(s.ctrlKey||s.metaKey)&&s.preventDefault())},this.handleWheel=s=>{var n,r,i;if(s.preventDefault(),s.stopPropagation(),!(this.customWheelEventHandler&&this.customWheelEventHandler(s)))if(((n=this.wasmTerm)==null?void 0:n.isAlternateScreen())??!1){const a=s.deltaY>0?"down":"up",g=Math.min(Math.abs(Math.round(s.deltaY/33)),5);for(let l=0;l<g;l++)a==="up"?this.dataEmitter.fire("\x1B[A"):this.dataEmitter.fire("\x1B[B")}else{let a;if(s.deltaMode===WheelEvent.DOM_DELTA_PIXEL){const g=((i=(r=this.renderer)==null?void 0:r.getMetrics())==null?void 0:i.height)??20;a=s.deltaY/g}else s.deltaMode===WheelEvent.DOM_DELTA_LINE?a=s.deltaY:s.deltaMode===WheelEvent.DOM_DELTA_PAGE?a=s.deltaY*this.rows:a=s.deltaY/33;if(a!==0){const g=this.viewportY-a;this.smoothScrollTo(g)}}},this.handleMouseDown=s=>{if(!this.canvas||!this.renderer||!this.wasmTerm)return;const n=this.wasmTerm.getScrollbackLength();if(n===0)return;const r=this.canvas.getBoundingClientRect(),i=s.clientX-r.left,a=s.clientY-r.top,g=r.width,l=r.height,B=8,u=g-B-4,E=4;if(i>=u&&i<=u+B){s.preventDefault(),s.stopPropagation(),s.stopImmediatePropagation();const c=l-E*2,d=this.rows,f=n+d,p=Math.max(20,d/f*c),D=this.viewportY/n,F=E+(c-p)*(1-D);if(a>=F&&a<=F+p)this.isDraggingScrollbar=!0,this.scrollbarDragStart=a,this.scrollbarDragStartViewportY=this.viewportY,this.canvas&&(this.canvas.style.userSelect="none",this.canvas.style.webkitUserSelect="none");else{const k=1-(a-E)/c,L=Math.round(k*n);this.scrollToLine(Math.max(0,Math.min(n,L)))}}},this.handleMouseUp=()=>{this.isDraggingScrollbar&&(this.isDraggingScrollbar=!1,this.scrollbarDragStart=null,this.canvas&&(this.canvas.style.userSelect="",this.canvas.style.webkitUserSelect=""),this.scrollbarVisible&&this.getScrollbackLength()>0&&this.showScrollbar())},this.ghostty=e.ghostty??E0();const t={cols:e.cols??80,rows:e.rows??24,cursorBlink:e.cursorBlink??!1,cursorStyle:e.cursorStyle??"block",theme:e.theme??{},scrollback:e.scrollback??1e4,fontSize:e.fontSize??15,fontFamily:e.fontFamily??"monospace",allowTransparency:e.allowTransparency??!1,convertEol:e.convertEol??!1,disableStdin:e.disableStdin??!1,smoothScrollDuration:e.smoothScrollDuration??100};this.options=new Proxy(t,{set:(s,n,r)=>{const i=s[n];return s[n]=r,this.isOpen&&this.handleOptionChange(n,r,i),!0}}),this.cols=this.options.cols,this.rows=this.options.rows,this.buffer=new Xh(this)}handleOptionChange(e,t,s){if(t!==s)switch(e){case"disableStdin":break;case"cursorBlink":case"cursorStyle":this.renderer&&(this.renderer.setCursorStyle(this.options.cursorStyle),this.renderer.setCursorBlink(this.options.cursorBlink));break;case"theme":this.renderer&&console.warn("ghostty-web: theme changes after open() are not yet fully supported");break;case"fontSize":this.renderer&&(this.renderer.setFontSize(this.options.fontSize),this.handleFontChange());break;case"fontFamily":this.renderer&&(this.renderer.setFontFamily(this.options.fontFamily),this.handleFontChange());break;case"cols":case"rows":this.resize(this.options.cols,this.options.rows);break}}handleFontChange(){if(!this.renderer||!this.wasmTerm||!this.canvas)return;this.selectionManager&&this.selectionManager.clearSelection(),this.renderer.resize(this.cols,this.rows);const e=this.renderer.getMetrics();this.canvas.width=e.width*this.cols,this.canvas.height=e.height*this.rows,this.canvas.style.width=`${e.width*this.cols}px`,this.canvas.style.height=`${e.height*this.rows}px`,this.renderer.render(this.wasmTerm,!0,this.viewportY,this)}parseColorToHex(e){if(!e)return 0;if(e.startsWith("#")){let s=e.slice(1);s.length===3&&(s=s[0]+s[0]+s[1]+s[1]+s[2]+s[2]);const n=Number.parseInt(s,16);return Number.isNaN(n)?0:n}const t=e.match(/rgb\((\d+),\s*(\d+),\s*(\d+)\)/);if(t){const s=Number.parseInt(t[1],10),n=Number.parseInt(t[2],10),r=Number.parseInt(t[3],10);return s<<16|n<<8|r}return 0}buildWasmConfig(){const e=this.options.theme,t=this.options.scrollback;if(!e&&t===1e4)return;const s=[this.parseColorToHex(e?.black),this.parseColorToHex(e?.red),this.parseColorToHex(e?.green),this.parseColorToHex(e?.yellow),this.parseColorToHex(e?.blue),this.parseColorToHex(e?.magenta),this.parseColorToHex(e?.cyan),this.parseColorToHex(e?.white),this.parseColorToHex(e?.brightBlack),this.parseColorToHex(e?.brightRed),this.parseColorToHex(e?.brightGreen),this.parseColorToHex(e?.brightYellow),this.parseColorToHex(e?.brightBlue),this.parseColorToHex(e?.brightMagenta),this.parseColorToHex(e?.brightCyan),this.parseColorToHex(e?.brightWhite)];return{scrollbackLimit:t,fgColor:this.parseColorToHex(e?.foreground),bgColor:this.parseColorToHex(e?.background),cursorColor:this.parseColorToHex(e?.cursor),palette:s}}open(e){if(this.isOpen)throw new Error("Terminal is already open");if(this.isDisposed)throw new Error("Terminal has been disposed");this.element=e,this.isOpen=!0;try{e.hasAttribute("tabindex")||e.setAttribute("tabindex","0"),e.setAttribute("contenteditable","true"),e.addEventListener("beforeinput",n=>n.preventDefault()),e.setAttribute("role","textbox"),e.setAttribute("aria-label","Terminal input"),e.setAttribute("aria-multiline","true");const t=this.buildWasmConfig();this.wasmTerm=this.ghostty.createTerminal(this.cols,this.rows,t),this.canvas=document.createElement("canvas"),this.canvas.style.display="block",e.appendChild(this.canvas),this.textarea=document.createElement("textarea"),this.textarea.setAttribute("autocorrect","off"),this.textarea.setAttribute("autocapitalize","off"),this.textarea.setAttribute("spellcheck","false"),this.textarea.setAttribute("tabindex","0"),this.textarea.setAttribute("aria-label","Terminal input"),this.textarea.style.position="absolute",this.textarea.style.left="0",this.textarea.style.top="0",this.textarea.style.width="1px",this.textarea.style.height="1px",this.textarea.style.padding="0",this.textarea.style.border="none",this.textarea.style.margin="0",this.textarea.style.opacity="0",this.textarea.style.clipPath="inset(50%)",this.textarea.style.overflow="hidden",this.textarea.style.whiteSpace="nowrap",this.textarea.style.resize="none",e.appendChild(this.textarea);const s=this.textarea;this.canvas.addEventListener("mousedown",n=>{n.preventDefault(),s.focus()}),this.canvas.addEventListener("touchend",n=>{n.preventDefault(),s.focus()}),this.renderer=new r0(this.canvas,{fontSize:this.options.fontSize,fontFamily:this.options.fontFamily,cursorStyle:this.options.cursorStyle,cursorBlink:this.options.cursorBlink,theme:this.options.theme}),this.renderer.resize(this.cols,this.rows),this.inputHandler=new e0(this.ghostty,e,n=>{this.options.disableStdin||this.dataEmitter.fire(n)},()=>{this.bellEmitter.fire()},n=>{this.keyEmitter.fire(n)},this.customKeyEventHandler,n=>{var r;return((r=this.wasmTerm)==null?void 0:r.getMode(n,!1))??!1}),this.selectionManager=new n0(this,this.renderer,this.wasmTerm,this.textarea),this.renderer.setSelectionManager(this.selectionManager),this.selectionManager.onSelectionChange(()=>{this.selectionChangeEmitter.fire()}),this.textarea.addEventListener("paste",n=>{var r;n.preventDefault(),n.stopPropagation();const i=(r=n.clipboardData)==null?void 0:r.getData("text");i&&this.paste(i)}),this.linkDetector=new t0(this),this.linkDetector.registerProvider(new o0(this)),this.linkDetector.registerProvider(new s0(this)),e.addEventListener("mousedown",this.handleMouseDown,{capture:!0}),e.addEventListener("mousemove",this.handleMouseMove),e.addEventListener("mouseleave",this.handleMouseLeave),e.addEventListener("click",this.handleClick),document.addEventListener("mouseup",this.handleMouseUp),e.addEventListener("wheel",this.handleWheel,{passive:!1,capture:!0}),this.renderer.render(this.wasmTerm,!0,this.viewportY,this,this.scrollbarOpacity),this.startRenderLoop(),this.focus()}catch(t){throw this.isOpen=!1,this.cleanupComponents(),new Error(`Failed to open terminal: ${t}`)}}write(e,t){this.assertOpen(),this.options.convertEol&&typeof e=="string"&&(e=e.replace(/\n/g,`\r
|
|
19
|
+
`)),this.writeInternal(e,t)}writeInternal(e,t){var s;this.wasmTerm.write(e),this.processTerminalResponses(),typeof e=="string"&&e.includes("\x07")?this.bellEmitter.fire():e instanceof Uint8Array&&e.includes(7)&&this.bellEmitter.fire(),(s=this.linkDetector)==null||s.invalidateCache(),this.viewportY!==0&&this.scrollToBottom(),typeof e=="string"&&e.includes("\x1B]")&&this.checkForTitleChange(e),t&&requestAnimationFrame(t)}writeln(e,t){if(typeof e=="string")this.write(e+`\r
|
|
20
|
+
`,t);else{const s=new Uint8Array(e.length+2);s.set(e),s[e.length]=13,s[e.length+1]=10,this.write(s,t)}}paste(e){this.assertOpen(),!this.options.disableStdin&&(this.wasmTerm.hasBracketedPaste()?this.dataEmitter.fire("\x1B[200~"+e+"\x1B[201~"):this.dataEmitter.fire(e))}input(e,t=!1){this.assertOpen(),!this.options.disableStdin&&(t?this.dataEmitter.fire(e):this.write(e))}resize(e,t){if(this.assertOpen(),e===this.cols&&t===this.rows)return;this.cols=e,this.rows=t,this.wasmTerm.resize(e,t),this.renderer.resize(e,t);const s=this.renderer.getMetrics();this.canvas.width=s.width*e,this.canvas.height=s.height*t,this.canvas.style.width=`${s.width*e}px`,this.canvas.style.height=`${s.height*t}px`,this.resizeEmitter.fire({cols:e,rows:t}),this.renderer.render(this.wasmTerm,!0,this.viewportY,this)}clear(){this.assertOpen(),this.wasmTerm.write("\x1B[2J\x1B[H")}reset(){this.assertOpen(),this.wasmTerm&&this.wasmTerm.free();const e=this.buildWasmConfig();this.wasmTerm=this.ghostty.createTerminal(this.cols,this.rows,e),this.renderer.clear(),this.currentTitle=""}focus(){this.isOpen&&this.element&&(this.element.focus(),setTimeout(()=>{var e;(e=this.element)==null||e.focus()},0))}blur(){this.isOpen&&this.element&&this.element.blur()}loadAddon(e){e.activate(this),this.addons.push(e)}getSelection(){var e;return((e=this.selectionManager)==null?void 0:e.getSelection())||""}hasSelection(){var e;return((e=this.selectionManager)==null?void 0:e.hasSelection())||!1}clearSelection(){var e;(e=this.selectionManager)==null||e.clearSelection()}selectAll(){var e;(e=this.selectionManager)==null||e.selectAll()}select(e,t,s){var n;(n=this.selectionManager)==null||n.select(e,t,s)}selectLines(e,t){var s;(s=this.selectionManager)==null||s.selectLines(e,t)}getViewportY(){return this.viewportY}getSelectionPosition(){var e;return(e=this.selectionManager)==null?void 0:e.getSelectionPosition()}attachCustomKeyEventHandler(e){this.customKeyEventHandler=e,this.inputHandler&&this.inputHandler.setCustomKeyEventHandler(e)}attachCustomWheelEventHandler(e){this.customWheelEventHandler=e}registerLinkProvider(e){if(!this.linkDetector)throw new Error("Terminal must be opened before registering link providers");this.linkDetector.registerProvider(e)}scrollLines(e){if(!this.wasmTerm)throw new Error("Terminal not open");const t=this.getScrollbackLength(),s=Math.max(0,Math.min(t,this.viewportY-e));s!==this.viewportY&&(this.viewportY=s,this.scrollEmitter.fire(this.viewportY),t>0&&this.showScrollbar())}scrollPages(e){this.scrollLines(e*this.rows)}scrollToTop(){const e=this.getScrollbackLength();e>0&&this.viewportY!==e&&(this.viewportY=e,this.scrollEmitter.fire(this.viewportY),this.showScrollbar())}scrollToBottom(){this.viewportY!==0&&(this.viewportY=0,this.scrollEmitter.fire(this.viewportY),this.getScrollbackLength()>0&&this.showScrollbar())}scrollToLine(e){const t=this.getScrollbackLength(),s=Math.max(0,Math.min(t,e));s!==this.viewportY&&(this.viewportY=s,this.scrollEmitter.fire(this.viewportY),t>0&&this.showScrollbar())}smoothScrollTo(e){if(!this.wasmTerm)return;const t=this.getScrollbackLength(),s=Math.max(0,Math.min(t,e));if((this.options.smoothScrollDuration??100)===0){this.viewportY=s,this.targetViewportY=s,this.scrollEmitter.fire(Math.floor(this.viewportY)),t>0&&this.showScrollbar();return}this.targetViewportY=s,!this.scrollAnimationFrame&&(this.scrollAnimationStartTime=Date.now(),this.scrollAnimationStartY=this.viewportY,this.animateScroll())}dispose(){if(!this.isDisposed){this.isDisposed=!0,this.isOpen=!1,this.animationFrameId&&(cancelAnimationFrame(this.animationFrameId),this.animationFrameId=void 0),this.scrollAnimationFrame&&(cancelAnimationFrame(this.scrollAnimationFrame),this.scrollAnimationFrame=void 0),this.mouseMoveThrottleTimeout&&(clearTimeout(this.mouseMoveThrottleTimeout),this.mouseMoveThrottleTimeout=void 0),this.pendingMouseMove=void 0;for(const e of this.addons)e.dispose();this.addons=[],this.cleanupComponents(),this.dataEmitter.dispose(),this.resizeEmitter.dispose(),this.bellEmitter.dispose(),this.selectionChangeEmitter.dispose(),this.keyEmitter.dispose(),this.titleChangeEmitter.dispose(),this.scrollEmitter.dispose(),this.renderEmitter.dispose(),this.cursorMoveEmitter.dispose()}}startRenderLoop(){const e=()=>{if(!this.isDisposed&&this.isOpen){this.renderer.render(this.wasmTerm,!1,this.viewportY,this,this.scrollbarOpacity);const t=this.wasmTerm.getCursor();t.y!==this.lastCursorY&&(this.lastCursorY=t.y,this.cursorMoveEmitter.fire()),this.animationFrameId=requestAnimationFrame(e)}};e()}getScrollbackLine(e){return this.wasmTerm?this.wasmTerm.getScrollbackLine(e):null}getScrollbackLength(){return this.wasmTerm?this.wasmTerm.getScrollbackLength():0}cleanupComponents(){this.selectionManager&&(this.selectionManager.dispose(),this.selectionManager=void 0),this.inputHandler&&(this.inputHandler.dispose(),this.inputHandler=void 0),this.renderer&&(this.renderer.dispose(),this.renderer=void 0),this.canvas&&this.canvas.parentNode&&(this.canvas.parentNode.removeChild(this.canvas),this.canvas=void 0),this.textarea&&this.textarea.parentNode&&(this.textarea.parentNode.removeChild(this.textarea),this.textarea=void 0),this.element&&(this.element.removeEventListener("wheel",this.handleWheel),this.element.removeEventListener("mousedown",this.handleMouseDown,{capture:!0}),this.element.removeEventListener("mousemove",this.handleMouseMove),this.element.removeEventListener("mouseleave",this.handleMouseLeave),this.element.removeEventListener("click",this.handleClick),this.element.removeAttribute("contenteditable"),this.element.removeAttribute("role"),this.element.removeAttribute("aria-label"),this.element.removeAttribute("aria-multiline")),this.isOpen&&typeof document<"u"&&document.removeEventListener("mouseup",this.handleMouseUp),this.scrollbarHideTimeout&&(window.clearTimeout(this.scrollbarHideTimeout),this.scrollbarHideTimeout=void 0),this.linkDetector&&(this.linkDetector.dispose(),this.linkDetector=void 0),this.wasmTerm&&(this.wasmTerm.free(),this.wasmTerm=void 0),this.ghostty=void 0,this.element=void 0,this.textarea=void 0}assertOpen(){if(this.isDisposed)throw new Error("Terminal has been disposed");if(!this.isOpen)throw new Error("Terminal must be opened before use. Call terminal.open(parent) first.")}processMouseMove(e){if(!this.canvas||!this.renderer||!this.linkDetector||!this.wasmTerm)return;const t=this.canvas.getBoundingClientRect(),s=Math.floor((e.clientX-t.left)/this.renderer.charWidth),n=Math.floor((e.clientY-t.top)/this.renderer.charHeight);let r=0,i=null;const a=this.getViewportY(),g=Math.max(0,Math.floor(a));if(g>0){const d=this.wasmTerm.getScrollbackLength();if(n<g){const f=d-g+n;i=this.wasmTerm.getScrollbackLine(f)}else{const f=n-g;i=this.wasmTerm.getLine(f)}}else i=this.wasmTerm.getLine(n);i&&s>=0&&s<i.length&&(r=i[s].hyperlink_id);const l=this.renderer.hoveredHyperlinkId||0;r!==l&&this.renderer.setHoveredHyperlinkId(r);const B=this.wasmTerm.getScrollbackLength();let u;const E=this.getViewportY(),c=Math.max(0,Math.floor(E));if(c>0)if(n<c)u=B-c+n;else{const d=n-c;u=B+d}else u=B+n;this.linkDetector.getLinkAt(s,u).then(d=>{var f,p,D,F;if(d!==this.currentHoveredLink&&((p=(f=this.currentHoveredLink)==null?void 0:f.hover)==null||p.call(f,!1),this.currentHoveredLink=d,(D=d?.hover)==null||D.call(d,!0),this.element&&(this.element.style.cursor=d?"pointer":"text"),this.renderer))if(d){const k=((F=this.wasmTerm)==null?void 0:F.getScrollbackLength())||0,L=this.getViewportY(),K=Math.max(0,Math.floor(L)),W=d.range.start.y-k+K,$=d.range.end.y-k+K;W<this.rows&&$>=0?this.renderer.setHoveredLinkRange({startX:d.range.start.x,startY:Math.max(0,W),endX:d.range.end.x,endY:Math.min(this.rows-1,$)}):this.renderer.setHoveredLinkRange(null)}else this.renderer.setHoveredLinkRange(null)}).catch(d=>{console.warn("Link detection error:",d)})}processScrollbarDrag(e){if(!this.canvas||!this.renderer||!this.wasmTerm||this.scrollbarDragStart===null)return;const t=this.wasmTerm.getScrollbackLength();if(t===0)return;const s=this.canvas.getBoundingClientRect(),n=e.clientY-s.top-this.scrollbarDragStart,r=s.height-8,i=this.rows,a=t+i,g=Math.max(20,i/a*r),l=-n/(r-g),B=Math.round(l*t),u=this.scrollbarDragStartViewportY+B;this.scrollToLine(Math.max(0,Math.min(t,u)))}showScrollbar(){this.scrollbarHideTimeout&&(window.clearTimeout(this.scrollbarHideTimeout),this.scrollbarHideTimeout=void 0),this.scrollbarVisible?this.scrollbarOpacity=1:(this.scrollbarVisible=!0,this.scrollbarOpacity=0,this.fadeInScrollbar()),this.isDraggingScrollbar||(this.scrollbarHideTimeout=window.setTimeout(()=>{this.hideScrollbar()},this.SCROLLBAR_HIDE_DELAY_MS))}hideScrollbar(){this.scrollbarHideTimeout&&(window.clearTimeout(this.scrollbarHideTimeout),this.scrollbarHideTimeout=void 0),this.scrollbarVisible&&this.fadeOutScrollbar()}fadeInScrollbar(){const e=Date.now(),t=()=>{const s=Date.now()-e,n=Math.min(s/this.SCROLLBAR_FADE_DURATION_MS,1);this.scrollbarOpacity=n,this.renderer&&this.wasmTerm&&this.renderer.render(this.wasmTerm,!1,this.viewportY,this,this.scrollbarOpacity),n<1&&requestAnimationFrame(t)};t()}fadeOutScrollbar(){const e=Date.now(),t=this.scrollbarOpacity,s=()=>{const n=Date.now()-e,r=Math.min(n/this.SCROLLBAR_FADE_DURATION_MS,1);this.scrollbarOpacity=t*(1-r),this.renderer&&this.wasmTerm&&this.renderer.render(this.wasmTerm,!1,this.viewportY,this,this.scrollbarOpacity),r<1?requestAnimationFrame(s):(this.scrollbarVisible=!1,this.scrollbarOpacity=0,this.renderer&&this.wasmTerm&&this.renderer.render(this.wasmTerm,!1,this.viewportY,this,0))};s()}processTerminalResponses(){if(!this.wasmTerm)return;const e=this.wasmTerm.readResponse();e&&this.dataEmitter.fire(e)}checkForTitleChange(e){const t=/\x1b\]([012]);([^\x07\x1b]*?)(?:\x07|\x1b\\)/g;let s=null;for(;(s=t.exec(e))!==null;){const n=s[1],r=s[2];(n==="0"||n==="2")&&r!==this.currentTitle&&(this.currentTitle=r,this.titleChangeEmitter.fire(r))}}getMode(e,t=!1){return this.assertOpen(),this.wasmTerm.getMode(e,t)}hasBracketedPaste(){return this.assertOpen(),this.wasmTerm.hasBracketedPaste()}hasFocusEvents(){return this.assertOpen(),this.wasmTerm.hasFocusEvents()}hasMouseTracking(){return this.assertOpen(),this.wasmTerm.hasMouseTracking()}}const a0=2,g0=1,l0=15,Q0=100;class B0{constructor(){this._isResizing=!1}activate(e){this._terminal=e}dispose(){this._resizeObserver&&(this._resizeObserver.disconnect(),this._resizeObserver=void 0),this._resizeDebounceTimer&&(clearTimeout(this._resizeDebounceTimer),this._resizeDebounceTimer=void 0),this._lastCols=void 0,this._lastRows=void 0,this._terminal=void 0}fit(){if(this._isResizing)return;const e=this.proposeDimensions();if(!e||!this._terminal)return;const t=this._terminal,s=t.cols,n=t.rows;if(!(e.cols===this._lastCols&&e.rows===this._lastRows||e.cols===s&&e.rows===n)){this._lastCols=e.cols,this._lastRows=e.rows,this._isResizing=!0;try{t.resize&&typeof t.resize=="function"&&t.resize(e.cols,e.rows)}finally{setTimeout(()=>{this._isResizing=!1},50)}}}proposeDimensions(){var e;if(!((e=this._terminal)!=null&&e.element))return;const t=this._terminal.renderer;if(!t||typeof t.getMetrics!="function")return;const s=t.getMetrics();if(!s||s.width===0||s.height===0)return;const n=this._terminal.element;if(typeof n.clientWidth>"u")return;const r=window.getComputedStyle(n),i=Number.parseInt(r.getPropertyValue("padding-top"))||0,a=Number.parseInt(r.getPropertyValue("padding-bottom"))||0,g=Number.parseInt(r.getPropertyValue("padding-left"))||0,l=Number.parseInt(r.getPropertyValue("padding-right"))||0,B=n.clientWidth,u=n.clientHeight;if(B===0||u===0)return;const E=B-g-l-l0,c=u-i-a,d=Math.max(a0,Math.floor(E/s.width)),f=Math.max(g0,Math.floor(c/s.height));return{cols:d,rows:f}}observeResize(){var e;(e=this._terminal)!=null&&e.element&&(this._resizeObserver||(this._resizeObserver=new ResizeObserver(t=>{this._isResizing||!t[0]||(this._resizeDebounceTimer&&clearTimeout(this._resizeDebounceTimer),this._resizeDebounceTimer=setTimeout(()=>{this.fit()},Q0))}),this._resizeObserver.observe(this._terminal.element)))}}let pn=null;async function c0(){pn||(pn=await Er.load())}function E0(){if(!pn)throw new Error(`ghostty-web not initialized. Call init() before creating Terminal instances.
|
|
21
|
+
Example:
|
|
22
|
+
import { init, Terminal } from "ghostty-web";
|
|
23
|
+
await init();
|
|
24
|
+
const term = new Terminal();
|
|
25
|
+
|
|
26
|
+
For tests, pass a Ghostty instance directly:
|
|
27
|
+
import { Ghostty, Terminal } from "ghostty-web";
|
|
28
|
+
const ghostty = await Ghostty.load();
|
|
29
|
+
const term = new Terminal({ ghostty });`);return pn}const C0={};function KB(){const A=C0?.VITE_API_BASE_URL;if(A)return A;if(typeof window<"u"){const e=window;if(e.OTTO_SERVER_URL)return e.OTTO_SERVER_URL;if(e.__OTTO_API_URL__)return e.__OTTO_API_URL__}return"http://localhost:9100"}function LB(){return KB()}const sg=KB(),u0='"JetBrainsMono NFM", monospace',I0=1500,d0=5,h0=600;function p0(){if(typeof document>"u")return"#121216";const A=document.createElement("div");A.style.display="none",A.className="bg-background",document.body.appendChild(A);const e=getComputedStyle(A).backgroundColor;document.body.removeChild(A);const t=e.match(/rgba?\((\d+),\s*(\d+),\s*(\d+)/);if(t){const s=Number(t[1]),n=Number(t[2]),r=Number(t[3]);return`#${(1<<24|s<<16|n<<8|r).toString(16).slice(1)}`}return"#121216"}let El=!1;async function f0(){if(El||typeof document>"u"||!("FontFace"in window))return;const e=[{file:"JetBrainsMonoNerdFontMono-Regular.woff2",weight:"400",style:"normal"},{file:"JetBrainsMonoNerdFontMono-Bold.woff2",weight:"700",style:"normal"},{file:"JetBrainsMonoNerdFontMono-Italic.woff2",weight:"400",style:"italic"},{file:"JetBrainsMonoNerdFontMono-BoldItalic.woff2",weight:"700",style:"italic"}].map(async t=>{try{const s=new URL(Object.assign({"../../assets/fonts/JetBrainsMonoNerdFontMono-Bold.woff2":FB,"../../assets/fonts/JetBrainsMonoNerdFontMono-BoldItalic.woff2":GB,"../../assets/fonts/JetBrainsMonoNerdFontMono-Italic.woff2":vB,"../../assets/fonts/JetBrainsMonoNerdFontMono-Regular.woff2":SB})[`../../assets/fonts/${t.file}`],import.meta.url).href,r=await new FontFace("JetBrainsMono NFM",`url("${s}") format("woff2")`,{weight:t.weight,style:t.style}).load();document.fonts.add(r)}catch{}});await Promise.allSettled(e),El=!0}function m0(){const A=wA.getConfig?.();return A&&typeof A.baseURL=="string"&&A.baseURL.length>0?A.baseURL:LB()}function w0(A){return A.replace(/^http/,"ws")}function x0({terminalId:A,isActive:e,onExit:t}){const s=m.useRef(null),n=m.useRef(null),r=m.useRef(null),i=m.useRef(null),a=m.useRef(0),g=m.useRef(null),[l,B]=m.useState(!1),u=m.useRef(t);u.current=t;const E=m.useRef(null),c=m.useRef(!1),d=m.useRef("#121216"),f=m.useRef(!1),p=m.useRef(null),D=m.useCallback(()=>{if(r.current)try{r.current.fit()}catch{}},[]),F=m.useCallback((k,L)=>{i.current&&(i.current.close(),i.current=null);const W=`${w0(L)}/v1/terminals/${A}/ws`,$=new WebSocket(W);i.current=$;let X=!1;$.onopen=()=>{a.current=0,k.cols&&k.rows&&$.send(JSON.stringify({type:"resize",cols:k.cols,rows:k.rows}))},$.onmessage=U=>{const O=typeof U.data=="string"?U.data:"";if(O.startsWith("{"))try{const H=JSON.parse(O);if(H.type==="exit"){k.write(`\r
|
|
30
|
+
\x1B[33m[Process exited with code ${H.exitCode}]\x1B[0m\r
|
|
31
|
+
`),u.current&&u.current(A);return}}catch{}const T=c.current?k.getViewportY():0;k.write(O),c.current&&T>0&&k.scrollToLine(T),X||(X=!0,setTimeout(()=>B(!0),200))},$.onerror=()=>{},$.onclose=()=>{i.current===$&&(i.current=null),!f.current&&a.current<d0&&(a.current++,g.current=setTimeout(()=>{n.current&&!f.current&&F(n.current,L)},I0))}},[A]);return m.useEffect(()=>{if(!s.current||!A)return;let k=!1;f.current=!1;let L=null,K=null,W=null;return B(!1),a.current=0,i.current&&(i.current.close(),i.current=null),g.current&&(clearTimeout(g.current),g.current=null),(async()=>{if(await c0(),k||!s.current)return;await f0(),await document.fonts.ready;const X=p0();L=new i0({theme:{background:X,foreground:"#d4d4d4",cursor:"#ffffff",cursorAccent:"#000000",selectionBackground:"#264f78",black:"#000000",red:"#cd3131",green:"#0dbc79",yellow:"#e5e510",blue:"#2472c8",magenta:"#bc3fbc",cyan:"#11a8cd",white:"#e5e5e5",brightBlack:"#666666",brightRed:"#f14c4c",brightGreen:"#23d18b",brightYellow:"#f5f543",brightBlue:"#3b8eea",brightMagenta:"#d670d6",brightCyan:"#29b8db",brightWhite:"#e5e5e5"},fontSize:13,fontFamily:u0,cursorBlink:!0,convertEol:!0,scrollback:5e3}),K=new B0,L.loadAddon(K),L.open(s.current),L.onData(()=>{n.current?.renderer&&(n.current.renderer.setCursorBlink(!1),E.current&&clearTimeout(E.current),E.current=setTimeout(()=>{n.current?.renderer&&document.activeElement&&s.current?.contains(document.activeElement)&&n.current.renderer.setCursorBlink(!0)},h0))}),d.current=X;const U=()=>{n.current?.renderer&&(n.current.renderer.setCursorBlink(!0),n.current.renderer.setTheme({cursor:"#ffffff",cursorAccent:"#000000"}))},O=()=>{n.current?.renderer&&(n.current.renderer.setCursorBlink(!1),n.current.renderer.setTheme({cursor:d.current,cursorAccent:d.current}))};if(s.current.addEventListener("focusin",U),s.current.addEventListener("focusout",O),p.current={focusin:U,focusout:O},await new Promise(H=>{requestAnimationFrame(()=>{try{K?.fit()}catch{}H()})}),k)return;const T=m0();F(L,T),L.onData(H=>{i.current?.readyState===WebSocket.OPEN&&i.current.send(H)}),L.onResize(({cols:H,rows:x})=>{i.current?.readyState===WebSocket.OPEN&&i.current.send(JSON.stringify({type:"resize",cols:H,rows:x}))}),L.onScroll(()=>{c.current=L.getViewportY()>0}),n.current=L,r.current=K,W=new ResizeObserver(()=>{requestAnimationFrame(()=>{if(r.current&&!k)try{r.current.fit()}catch{}})}),W.observe(s.current),setTimeout(()=>{k||B(!0)},2e3)})().catch(X=>{console.error("[TerminalViewer] Failed to initialize:",X)}),()=>{k=!0,f.current=!0,s.current&&p.current&&(s.current.removeEventListener("focusin",p.current.focusin),s.current.removeEventListener("focusout",p.current.focusout),p.current=null),E.current&&(clearTimeout(E.current),E.current=null),g.current&&(clearTimeout(g.current),g.current=null),i.current&&(i.current.close(),i.current=null),W&&W.disconnect(),L&&L.dispose(),n.current=null,r.current=null}},[A,F]),m.useEffect(()=>{const k=n.current;k&&(e?(D(),k.focus()):(k.blur(),k.renderer&&(k.renderer.setCursorBlink(!1),k.renderer.setTheme({cursor:d.current,cursorAccent:d.current}))))},[e,D]),m.useEffect(()=>{D()},[D]),o.jsx("div",{className:"flex h-full flex-col overflow-hidden bg-background absolute inset-0",style:{visibility:e?"visible":"hidden"},"data-terminal-viewer":!0,children:o.jsxs("div",{className:"relative flex-1 min-h-0 overflow-hidden",children:[o.jsx("div",{ref:s,className:"absolute inset-0 bg-background"}),o.jsx("div",{className:"absolute inset-0 bg-background flex items-center justify-center pointer-events-none transition-opacity duration-300",style:{opacity:l?0:1},children:o.jsxs("div",{className:"flex items-center gap-2 text-muted-foreground",children:[o.jsxs("svg",{className:"animate-spin h-4 w-4",viewBox:"0 0 24 24",fill:"none","aria-hidden":"true",children:[o.jsx("circle",{className:"opacity-25",cx:"12",cy:"12",r:"10",stroke:"currentColor",strokeWidth:"4"}),o.jsx("path",{className:"opacity-75",fill:"currentColor",d:"M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4z"})]}),o.jsx("span",{className:"text-xs",children:"Loading terminal…"})]})})]})})}const Cl=150,D0=.85,y0=m.memo(function(){const e=ao(K=>K.isOpen),t=ao(K=>K.panelHeight),s=ao(K=>K.setPanelHeight),n=ao(K=>K.activeTabId),r=ao(K=>K.selectTab),i=ao(K=>K.closePanel),a=ao(K=>K.isMaximized),g=ao(K=>K.toggleMaximize),l=ao(K=>K.togglePanel),{data:B}=bB(),u=Wh(),E=zh(),c=m.useRef(null),d=B?.terminals??[],f=m.useRef(!1),p=m.useRef(d);p.current=d,m.useEffect(()=>{e&&p.current.length>0&&(!n||!p.current.find(K=>K.id===n))&&r(p.current[0].id)},[e,d.length,n,r]),m.useEffect(()=>{e&&B&&d.length===0&&!f.current&&!u.isPending&&(f.current=!0,u.mutateAsync({command:"bash",purpose:"Manual shell"}).then(K=>{r(K.terminalId)}).catch(()=>{}).finally(()=>{f.current=!1}))},[e,B,d.length,r]);const D=m.useCallback(async()=>{try{const K=await u.mutateAsync({command:"bash",purpose:"Manual shell"});r(K.terminalId)}catch{}},[u,r]),F=m.useCallback(async K=>{try{if(await E.mutateAsync(K),n===K){const W=p.current.filter($=>$.id!==K);W.length>0?r(W[0].id):(r(null),i())}}catch{}},[E,n,r,i]);m.useEffect(()=>{const K=W=>{W.key==="`"&&W.ctrlKey&&(W.preventDefault(),l())};return window.addEventListener("keydown",K),()=>window.removeEventListener("keydown",K)},[l]);const k=m.useCallback(K=>{K.preventDefault(),c.current={startY:K.clientY,startHeight:t};const W=X=>{if(!c.current)return;const U=c.current.startY-X.clientY,O=c.current.startHeight+U,T=window.innerHeight*D0;s(Math.min(Math.max(Cl,O),T))},$=()=>{c.current=null,document.removeEventListener("mousemove",W),document.removeEventListener("mouseup",$),document.body.style.cursor="",document.body.style.userSelect=""};document.addEventListener("mousemove",W),document.addEventListener("mouseup",$),document.body.style.cursor="row-resize",document.body.style.userSelect="none"},[t,s]);if(!e)return null;const L=a?"100%":`${t}px`;return o.jsxs("div",{className:"border-t border-border bg-background flex flex-col shrink-0 relative",style:{height:L,minHeight:Cl},children:[!a&&o.jsx("div",{className:"h-2 w-full cursor-row-resize hover:bg-primary/30 active:bg-primary/50 transition-colors absolute -top-1 left-0 right-0 z-10",onMouseDown:k}),o.jsxs("div",{className:"h-9 border-b border-border flex items-center shrink-0",children:[o.jsxs("div",{className:"flex items-center gap-1.5 px-3 shrink-0 border-r border-border h-full",children:[o.jsx(so,{className:"w-3.5 h-3.5 text-muted-foreground"}),o.jsx("span",{className:"text-xs font-medium text-muted-foreground",children:"Terminal"}),d.length>0&&o.jsxs("span",{className:"text-[10px] text-muted-foreground/70",children:["(",d.length,")"]})]}),o.jsx(Vh,{terminals:d,onNewTerminal:D,onKillTerminal:F,isCreating:u.isPending}),o.jsxs("div",{className:"ml-auto flex items-center gap-0.5 px-2 shrink-0",children:[o.jsx("button",{type:"button",className:"p-1 rounded text-muted-foreground hover:text-foreground hover:bg-muted transition-colors",onClick:g,title:a?"Restore":"Maximize",children:a?o.jsx(ja,{className:"w-3.5 h-3.5"}):o.jsx(jQ,{className:"w-3.5 h-3.5"})}),o.jsx("button",{type:"button",className:"p-1 rounded text-muted-foreground hover:text-foreground hover:bg-muted transition-colors",onClick:i,title:"Close panel",children:o.jsx(qt,{className:"w-3.5 h-3.5"})})]})]}),o.jsxs("div",{className:"flex-1 min-h-0 overflow-hidden relative",children:[d.map(K=>o.jsx(x0,{terminalId:K.id,isActive:K.id===n,onExit:F},K.id)),d.length===0&&o.jsxs("div",{className:"flex flex-col items-center justify-center h-full text-muted-foreground",children:[o.jsx(so,{className:"w-8 h-8 mb-2 opacity-40"}),o.jsx("div",{className:"text-xs",children:"No terminals running"})]})]})]})}),N0=m.memo(function(){const e=ao(r=>r.isOpen),t=ao(r=>r.togglePanel),{data:s}=bB(),n=s?.count??0;return o.jsxs("button",{type:"button",onClick:t,className:`relative h-14 w-full transition-colors touch-manipulation flex items-center justify-center ${e?"bg-muted border-r-2 border-primary":"hover:bg-muted/50"}`,title:"Terminals",children:[o.jsx(so,{className:"w-5 h-5 text-muted-foreground mx-auto"}),n>0&&o.jsx("span",{className:"absolute top-1 right-1 w-5 h-5 bg-primary text-primary-foreground text-xs rounded-full flex items-center justify-center font-semibold",children:n>9?"9+":n})]})}),ye=m.forwardRef(({className:A="",variant:e="primary",size:t="md",...s},n)=>{const r="inline-flex items-center justify-center rounded font-medium transition-colors focus-visible:outline-none disabled:opacity-50 disabled:cursor-not-allowed",i={primary:"bg-primary text-primary-foreground hover:bg-primary/90",secondary:"bg-muted text-foreground hover:bg-muted/80 border border-border",ghost:"text-muted-foreground hover:text-foreground hover:bg-muted/50"},a={sm:"px-3 py-1.5 text-sm",md:"px-4 py-2 text-sm",lg:"px-6 py-3 text-base",icon:"w-10 h-10 p-0"};return o.jsx("button",{ref:n,className:`${r} ${i[e]} ${a[t]} ${A}`,...s})});ye.displayName="Button";const k0=m.forwardRef(({className:A="",children:e,...t},s)=>o.jsx("div",{ref:s,className:`bg-card text-card-foreground border border-border rounded-lg ${A}`,...t,children:e}));k0.displayName="Card";const Qn=m.forwardRef(({className:A="",...e},t)=>o.jsx("input",{ref:t,className:`w-full px-3 py-2 bg-muted border border-border rounded text-foreground placeholder-muted-foreground outline-none ${A}`,...e}));Qn.displayName="Input";const Pn=m.forwardRef(({className:A="",...e},t)=>o.jsx("textarea",{ref:t,className:`w-full px-3 py-2 bg-muted border border-border rounded text-foreground placeholder-muted-foreground outline-none resize-none ${A}`,...e}));Pn.displayName="Textarea";const rg=dt(A=>({isOpen:!1,title:"Confirm Action",message:"",confirmLabel:"Confirm",cancelLabel:"Cancel",variant:"default",onConfirm:()=>{},onCancel:void 0,openConfirmation:e=>A({isOpen:!0,title:e.title||"Confirm Action",message:e.message,confirmLabel:e.confirmLabel||"Confirm",cancelLabel:e.cancelLabel||"Cancel",variant:e.variant||"default",onConfirm:e.onConfirm,onCancel:e.onCancel}),closeConfirmation:()=>A({isOpen:!1,onConfirm:()=>{},onCancel:void 0})}));function M0(){const{isOpen:A,title:e,message:t,confirmLabel:s,cancelLabel:n,variant:r,onConfirm:i,onCancel:a,closeConfirmation:g}=rg(),[l,B]=m.useState(!1);m.useEffect(()=>{A||B(!1)},[A]);const u=m.useCallback(async()=>{B(!0);try{await i(),g()}catch(d){console.error("Confirmation action failed:",d),B(!1)}},[i,g]),E=m.useCallback(()=>{a?.(),g()},[a,g]),c=d=>{d.target===d.currentTarget&&!l&&E()};return m.useEffect(()=>{const d=f=>{if(A&&!l){const p=f.target,D=p.tagName==="INPUT"||p.tagName==="TEXTAREA"||p.isContentEditable;(f.key==="Escape"||f.key==="q"&&!D)&&(f.preventDefault(),E()),f.key==="Enter"&&(f.preventDefault(),u())}};if(A)return document.addEventListener("keydown",d),()=>document.removeEventListener("keydown",d)},[A,l,u,E]),A?o.jsx("div",{role:"dialog","aria-modal":"true",className:"fixed inset-0 bg-black/50 flex items-center justify-center z-50",onClick:c,onKeyDown:d=>{const f=d.target,p=f.tagName==="INPUT"||f.tagName==="TEXTAREA"||f.isContentEditable;(d.key==="Escape"||d.key==="q"&&!p)&&!l&&(d.preventDefault(),E())},children:o.jsxs("div",{className:"bg-background border border-border rounded-lg shadow-lg max-w-md w-full mx-4",children:[o.jsxs("div",{className:"flex items-center justify-between p-4 border-b border-border",children:[o.jsxs("div",{className:"flex items-center gap-2",children:[r==="destructive"&&o.jsx(wo,{className:"w-5 h-5 text-destructive"}),o.jsx("h2",{className:"text-lg font-semibold",children:e})]}),o.jsx("button",{type:"button",onClick:E,disabled:l,className:"p-1 hover:bg-muted rounded transition-colors disabled:opacity-50","aria-label":"Close",children:o.jsx(ot,{className:"w-5 h-5"})})]}),o.jsx("div",{className:"p-4",children:o.jsx("p",{className:"text-muted-foreground",children:t})}),o.jsxs("div",{className:"flex items-center justify-end gap-3 p-4 border-t border-border",children:[o.jsx("button",{type:"button",onClick:E,disabled:l,className:"px-4 py-2 text-sm font-medium rounded transition-colors hover:bg-muted disabled:opacity-50",children:n}),o.jsx("button",{type:"button",onClick:u,disabled:l,className:`px-4 py-2 text-sm font-medium rounded transition-colors disabled:opacity-50 ${r==="destructive"?"bg-destructive text-destructive-foreground hover:bg-destructive/90":"bg-primary text-primary-foreground hover:bg-primary/90"}`,children:l?"Processing...":s})]})]})}):null}let b0=0;const no=dt(A=>({toasts:[],addToast:e=>{const t=`toast-${++b0}`;return A(s=>({toasts:[...s.toasts,{...e,id:t}]})),t},removeToast:e=>A(t=>({toasts:t.toasts.filter(s=>s.id!==e)})),updateToast:(e,t)=>A(s=>({toasts:s.toasts.map(n=>n.id===e?{...n,...t}:n)})),clearToasts:()=>A({toasts:[]})}));function ae(A,e="default",t=4e3){const s=no.getState().addToast({message:A,type:e,duration:t});return t>0&&setTimeout(()=>{no.getState().removeToast(s)},t),s}ae.success=(A,e=4e3)=>ae(A,"success",e);ae.error=(A,e=5e3)=>ae(A,"error",e);ae.info=(A,e=4e3)=>ae(A,"default",e);ae.loading=A=>ae(A,"loading",0);ae.successWithAction=(A,e,t=6e3)=>{const s=no.getState().addToast({message:A,type:"success",duration:t,action:e});return t>0&&setTimeout(()=>{no.getState().removeToast(s)},t),s};function _s(){return typeof window>"u"?null:window}function sa(A){const e=_s();return e?.OTTO_OPEN_URL?(e.OTTO_OPEN_URL(A),!0):!1}function F0(A){const e=_s();return e?.OTTO_SHOW_NOTIFICATION?(e.OTTO_SHOW_NOTIFICATION(A),!0):!1}function G0(){const A=_s();return A?.OTTO_LIST_SYSTEM_FONTS?A.OTTO_LIST_SYSTEM_FONTS():null}function v0(A){const e=_s();return e?.OTTO_SET_DESKTOP_FONT?(e.OTTO_SET_DESKTOP_FONT(A),!0):!1}function S0(A){const e=_s();return e?.OTTO_OPEN_SESSION?(e.OTTO_OPEN_SESSION(A),!0):!1}function U0(){return!!_s()?.OTTO_LIST_SYSTEM_FONTS}function Co(A){sa(A)||(window.self!==window.top?window.parent.postMessage({type:"otto-open-url",url:A},"*"):window.open(A,"_blank","noopener,noreferrer"))}const R0={default:{icon:o.jsx(QC,{className:"size-4 text-muted-foreground"}),accent:"",bar:"bg-muted-foreground/40"},success:{icon:o.jsx(TQ,{className:"size-4 text-emerald-400"}),accent:"border-l-emerald-400",bar:"bg-emerald-400/40"},error:{icon:o.jsx(Ta,{className:"size-4 text-red-400"}),accent:"border-l-red-400",bar:"bg-red-400/40"},loading:{icon:o.jsx(Je,{className:"size-4 text-muted-foreground animate-spin"}),accent:"",bar:""}};function K0({toast:A}){const[e,t]=m.useState("enter"),[s,n]=m.useState(100),r=no(E=>E.removeToast),i=m.useRef(null);m.useEffect(()=>{requestAnimationFrame(()=>{requestAnimationFrame(()=>t("visible"))});const E=A.duration;if(E&&E>0){const c=Date.now();i.current=setInterval(()=>{const d=Date.now()-c,f=Math.max(0,100-d/E*100);n(f),f<=0&&i.current&&clearInterval(i.current)},30)}return()=>{i.current&&clearInterval(i.current)}},[A.duration]);const a=()=>{t("exit"),setTimeout(()=>r(A.id),180)},g=async()=>{A.action?.onClick?await A.action.onClick():A.action?.href&&Co(A.action.href)},l=async()=>{A.activateActionOnClick&&A.action&&await g(),a()},B=R0[A.type],u=e==="enter"?"opacity-0 translate-y-2 scale-95":e==="exit"?"opacity-0 translate-y-1 scale-95":"opacity-100 translate-y-0 scale-100";return o.jsxs("div",{className:`
|
|
32
|
+
relative overflow-hidden
|
|
33
|
+
border border-border bg-card
|
|
34
|
+
rounded-lg shadow-md
|
|
35
|
+
transition-all duration-180 ease-out
|
|
36
|
+
cursor-pointer group
|
|
37
|
+
${B.accent?`border-l-2 ${B.accent}`:""}
|
|
38
|
+
${u}
|
|
39
|
+
`,onClick:l,role:"alert",children:[o.jsxs("div",{className:"flex items-start gap-2.5 px-3 py-2.5",children:[o.jsx("span",{className:"mt-px shrink-0",children:B.icon}),o.jsx("div",{className:"flex-1 min-w-0",children:o.jsx("span",{className:"text-[13px] leading-relaxed text-foreground",children:A.message})}),o.jsx("button",{type:"button",onClick:E=>{E.stopPropagation(),a()},className:"shrink-0 size-5 inline-flex items-center justify-center rounded text-muted-foreground/40 hover:text-muted-foreground transition-colors opacity-0 group-hover:opacity-100 mt-px","aria-label":"Dismiss",children:o.jsx(ot,{className:"size-3"})})]}),A.action&&o.jsx("div",{className:"flex items-center px-3 pb-2.5 pt-0 pl-[34px]",children:o.jsxs("button",{type:"button",onClick:async E=>{E.stopPropagation(),await g(),a()},className:"inline-flex items-center gap-1.5 text-[12px] font-medium text-primary-foreground bg-primary hover:bg-primary/90 transition-colors px-2.5 py-1 rounded-md",children:[A.action.label,o.jsx(Gt,{className:"size-3"})]})}),Number(A.duration)>0&&A.type!=="loading"&&o.jsx("div",{className:"h-px w-full bg-border/50",children:o.jsx("div",{className:`h-full ${B.bar}`,style:{width:`${s}%`,transition:"width 80ms linear"}})})]})}function L0(){const A=no(e=>e.toasts);return A.length===0?null:o.jsx("div",{className:"fixed bottom-3 right-3 z-[9999] flex flex-col-reverse gap-1.5 w-[340px]",children:A.map(e=>o.jsx(K0,{toast:e},e.id))})}const Sr=dt(A=>({pendingApprovals:[],addPendingApproval:e=>A(t=>({pendingApprovals:[...t.pendingApprovals,e]})),removePendingApproval:e=>A(t=>({pendingApprovals:t.pendingApprovals.filter(s=>s.callId!==e)})),updatePendingApproval:(e,t)=>A(s=>({pendingApprovals:s.pendingApprovals.map(n=>n.callId===e?{...n,args:t}:n)})),clearPendingApprovals:()=>A({pendingApprovals:[]}),setPendingApprovals:e=>A({pendingApprovals:e})}));function J0(A,e){let t;try{t=A()}catch{return}return{getItem:n=>{var r;const i=g=>g===null?null:JSON.parse(g,void 0),a=(r=t.getItem(n))!=null?r:null;return a instanceof Promise?a.then(i):i(a)},setItem:(n,r)=>t.setItem(n,JSON.stringify(r,void 0)),removeItem:n=>t.removeItem(n)}}const ra=A=>e=>{try{const t=A(e);return t instanceof Promise?t:{then(s){return ra(s)(t)},catch(s){return this}}}catch(t){return{then(s){return this},catch(s){return ra(s)(t)}}}},j0=(A,e)=>(t,s,n)=>{let r={storage:J0(()=>window.localStorage),partialize:p=>p,version:0,merge:(p,D)=>({...D,...p}),...e},i=!1,a=0;const g=new Set,l=new Set;let B=r.storage;if(!B)return A((...p)=>{console.warn(`[zustand persist middleware] Unable to update item '${r.name}', the given storage is currently unavailable.`),t(...p)},s,n);const u=()=>{const p=r.partialize({...s()});return B.setItem(r.name,{state:p,version:r.version})},E=n.setState;n.setState=(p,D)=>(E(p,D),u());const c=A((...p)=>(t(...p),u()),s,n);n.getInitialState=()=>c;let d;const f=()=>{var p,D;if(!B)return;const F=++a;i=!1,g.forEach(L=>{var K;return L((K=s())!=null?K:c)});const k=((D=r.onRehydrateStorage)==null?void 0:D.call(r,(p=s())!=null?p:c))||void 0;return ra(B.getItem.bind(B))(r.name).then(L=>{if(L)if(typeof L.version=="number"&&L.version!==r.version){if(r.migrate){const K=r.migrate(L.state,L.version);return K instanceof Promise?K.then(W=>[!0,W]):[!0,K]}console.error("State loaded from storage couldn't be migrated since no migrate function was provided")}else return[!1,L.state];return[!1,void 0]}).then(L=>{var K;if(F!==a)return;const[W,$]=L;if(d=r.merge($,(K=s())!=null?K:c),t(d,!0),W)return u()}).then(()=>{F===a&&(k?.(s(),void 0),d=s(),i=!0,l.forEach(L=>L(d)))}).catch(L=>{F===a&&k?.(void 0,L)})};return n.persist={setOptions:p=>{r={...r,...p},p.storage&&(B=p.storage)},clearStorage:()=>{B?.removeItem(r.name)},getOptions:()=>r,rehydrate:()=>f(),hasHydrated:()=>i,onHydrate:p=>(g.add(p),()=>{g.delete(p)}),onFinishHydration:p=>(l.add(p),()=>{l.delete(p)})},r.skipHydration||f(),d||c},JB=j0,rs=dt()(JB((A,e)=>({widths:{},setWidth:(t,s)=>A(n=>({widths:{...n.widths,[t]:s}})),getWidth:(t,s)=>e().widths[t]??s}),{name:"panel-widths"})),Zs=m.memo(function({panelKey:e,side:t,minWidth:s,maxWidth:n,defaultWidth:r,onWidthChange:i}){const a=m.useRef(null),g=m.useCallback(l=>{l.preventDefault();const B=rs.getState().getWidth(e,r);a.current={startX:l.clientX,startWidth:B};const u=c=>{if(!a.current)return;const d=c.clientX-a.current.startX,f=t==="right"?a.current.startWidth-d:a.current.startWidth+d,p=Math.min(Math.max(s,f),n);rs.getState().setWidth(e,p),i?.(p)},E=()=>{a.current=null,document.removeEventListener("mousemove",u),document.removeEventListener("mouseup",E),document.body.style.cursor="",document.body.style.userSelect=""};document.addEventListener("mousemove",u),document.addEventListener("mouseup",E),document.body.style.cursor="col-resize",document.body.style.userSelect="none"},[e,t,s,n,r,i]);return o.jsx("div",{className:`w-1 h-full cursor-col-resize hover:bg-primary/30 active:bg-primary/50 transition-colors absolute top-0 bottom-0 z-10 ${t==="right"?"left-0":"right-0"}`,onMouseDown:g})});function ns({icon:A,title:e,onClose:t,children:s,closeTitle:n="Close sidebar"}){return o.jsxs("div",{className:"h-12 border-b border-sidebar-border px-2.5 flex items-center gap-2 shrink-0 bg-sidebar",children:[o.jsxs("div",{className:"flex items-center gap-2 min-w-0 shrink-0 pr-1",children:[o.jsx("span",{className:"text-muted-foreground shrink-0",children:A}),o.jsx("span",{className:"text-sm font-medium text-foreground truncate",children:e})]}),s&&o.jsx("div",{className:"flex min-w-0 flex-1 items-center gap-1",children:s}),o.jsx("button",{type:"button",onClick:t,className:"ml-auto h-8 w-8 shrink-0 rounded-md text-muted-foreground hover:text-foreground hover:bg-muted flex items-center justify-center",title:n,children:o.jsx(St,{className:"size-[17px]"})})]})}function is(A){return Array.isArray?Array.isArray(A):TB(A)==="[object Array]"}function T0(A){if(typeof A=="string")return A;if(typeof A=="bigint")return A.toString();const e=A+"";return e=="0"&&1/A==-1/0?"-0":e}function na(A){return A==null?"":T0(A)}function Xt(A){return typeof A=="string"}function Bn(A){return typeof A=="number"}function O0(A){return A===!0||A===!1||q0(A)&&TB(A)=="[object Boolean]"}function jB(A){return typeof A=="object"}function q0(A){return jB(A)&&A!==null}function to(A){return A!=null}function zr(A){return!A.trim().length}function TB(A){return A==null?A===void 0?"[object Undefined]":"[object Null]":Object.prototype.toString.call(A)}const Y0="Incorrect 'index' type",H0=A=>`Invalid value for key ${A}`,P0=A=>`Pattern length exceeds max of ${A}.`,W0=A=>`Missing ${A} property in key`,z0=A=>`Property 'weight' in key '${A}' must be a positive integer`,ul=Object.prototype.hasOwnProperty;class V0{constructor(e){this._keys=[],this._keyMap={};let t=0;e.forEach(s=>{const n=OB(s);this._keys.push(n),this._keyMap[n.id]=n,t+=n.weight}),this._keys.forEach(s=>{s.weight/=t})}get(e){return this._keyMap[e]}keys(){return this._keys}toJSON(){return JSON.stringify(this._keys)}}function OB(A){let e=null,t=null,s=null,n=1,r=null;if(Xt(A)||is(A))s=A,e=Il(A),t=ia(A);else{if(!ul.call(A,"name"))throw new Error(W0("name"));const i=A.name;if(s=i,ul.call(A,"weight")&&(n=A.weight,n<=0))throw new Error(z0(i));e=Il(i),t=ia(i),r=A.getFn}return{path:e,id:t,weight:n,src:s,getFn:r}}function Il(A){return is(A)?A:A.split(".")}function ia(A){return is(A)?A.join("."):A}function _0(A,e){const t=[];let s=!1;const n=(r,i,a,g)=>{if(to(r))if(!i[a])t.push(g!==void 0?{v:r,i:g}:r);else{const l=i[a],B=r[l];if(!to(B))return;if(a===i.length-1&&(Xt(B)||Bn(B)||O0(B)||typeof B=="bigint"))t.push(g!==void 0?{v:na(B),i:g}:na(B));else if(is(B)){s=!0;for(let u=0,E=B.length;u<E;u+=1)n(B[u],i,a+1,u)}else i.length&&n(B,i,a+1,g)}};return n(A,Xt(e)?e.split("."):e,0),s?t:t[0]}const Z0={includeMatches:!1,findAllMatches:!1,minMatchCharLength:1},X0={isCaseSensitive:!1,ignoreDiacritics:!1,includeScore:!1,keys:[],shouldSort:!0,sortFn:(A,e)=>A.score===e.score?A.idx<e.idx?-1:1:A.score<e.score?-1:1},$0={location:0,threshold:.6,distance:100},Ap={useExtendedSearch:!1,useTokenSearch:!1,getFn:_0,ignoreLocation:!1,ignoreFieldNorm:!1,fieldNormWeight:1},le=Object.freeze({...X0,...Z0,...$0,...Ap}),ep=/[^ ]+/g;function tp(A=1,e=3){const t=new Map,s=Math.pow(10,e);return{get(n){const r=n.match(ep).length;if(t.has(r))return t.get(r);const i=1/Math.pow(r,.5*A),a=parseFloat(Math.round(i*s)/s);return t.set(r,a),a},clear(){t.clear()}}}class ng{constructor({getFn:e=le.getFn,fieldNormWeight:t=le.fieldNormWeight}={}){this.norm=tp(t,3),this.getFn=e,this.isCreated=!1,this.docs=[],this.keys=[],this._keysMap={},this.setIndexRecords()}setSources(e=[]){this.docs=e}setIndexRecords(e=[]){this.records=e}setKeys(e=[]){this.keys=e,this._keysMap={},e.forEach((t,s)=>{this._keysMap[t.id]=s})}create(){this.isCreated||!this.docs.length||(this.isCreated=!0,Xt(this.docs[0])?this.docs.forEach((e,t)=>{this._addString(e,t)}):this.docs.forEach((e,t)=>{this._addObject(e,t)}),this.norm.clear())}add(e){const t=this.size();Xt(e)?this._addString(e,t):this._addObject(e,t)}removeAt(e){this.records.splice(e,1);for(let t=e,s=this.size();t<s;t+=1)this.records[t].i-=1}removeAll(e){for(let t=e.length-1;t>=0;t-=1)this.records.splice(e[t],1);for(let t=0,s=this.records.length;t<s;t+=1)this.records[t].i=t}getValueForItemAtKeyId(e,t){return e[this._keysMap[t]]}size(){return this.records.length}_addString(e,t){if(!to(e)||zr(e))return;const s={v:e,i:t,n:this.norm.get(e)};this.records.push(s)}_addObject(e,t){const s={i:t,$:{}};this.keys.forEach((n,r)=>{const i=n.getFn?n.getFn(e):this.getFn(e,n.path);if(to(i)){if(is(i)){const a=[];for(let g=0,l=i.length;g<l;g+=1){const B=i[g];if(to(B)){if(Xt(B)){if(!zr(B)){const u={v:B,i:g,n:this.norm.get(B)};a.push(u)}}else if(to(B.v)){const u=Xt(B.v)?B.v:na(B.v);if(!zr(u)){const E={v:u,i:B.i,n:this.norm.get(u)};a.push(E)}}}}s.$[r]=a}else if(Xt(i)&&!zr(i)){const a={v:i,n:this.norm.get(i)};s.$[r]=a}}}),this.records.push(s)}toJSON(){return{keys:this.keys.map(({getFn:e,...t})=>t),records:this.records}}}function qB(A,e,{getFn:t=le.getFn,fieldNormWeight:s=le.fieldNormWeight}={}){const n=new ng({getFn:t,fieldNormWeight:s});return n.setKeys(A.map(OB)),n.setSources(e),n.create(),n}function op(A,{getFn:e=le.getFn,fieldNormWeight:t=le.fieldNormWeight}={}){const{keys:s,records:n}=A,r=new ng({getFn:e,fieldNormWeight:t});return r.setKeys(s),r.setIndexRecords(n),r}function sp(A=[],e=le.minMatchCharLength){const t=[];let s=-1,n=-1,r=0;for(let i=A.length;r<i;r+=1){const a=A[r];a&&s===-1?s=r:!a&&s!==-1&&(n=r-1,n-s+1>=e&&t.push([s,n]),s=-1)}return A[r-1]&&r-s>=e&&t.push([s,r-1]),t}const cs=32;function rp(A,e,t,{location:s=le.location,distance:n=le.distance,threshold:r=le.threshold,findAllMatches:i=le.findAllMatches,minMatchCharLength:a=le.minMatchCharLength,includeMatches:g=le.includeMatches,ignoreLocation:l=le.ignoreLocation}={}){if(e.length>cs)throw new Error(P0(cs));const B=e.length,u=A.length,E=Math.max(0,Math.min(s,u));let c=r,d=E;const f=(X,U)=>{const O=X/B;if(l)return O;const T=Math.abs(E-U);return n?O+T/n:T?1:O},p=a>1||g,D=p?Array(u):[];let F;for(;(F=A.indexOf(e,d))>-1;){const X=f(0,F);if(c=Math.min(X,c),d=F+B,p){let U=0;for(;U<B;)D[F+U]=1,U+=1}}d=-1;let k=[],L=1,K=B+u;const W=1<<B-1;for(let X=0;X<B;X+=1){let U=0,O=K;for(;U<O;)f(X,E+O)<=c?U=O:K=O,O=Math.floor((K-U)/2+U);K=O;let T=Math.max(1,E-O+1);const H=i?u:Math.min(E+O,u)+B,x=Array(H+2);x[H+1]=(1<<X)-1;for(let I=H;I>=T;I-=1){const N=I-1,G=t[A[N]];if(p&&(D[N]=+!!G),x[I]=(x[I+1]<<1|1)&G,X&&(x[I]|=(k[I+1]|k[I])<<1|1|k[I+1]),x[I]&W&&(L=f(X,N),L<=c)){if(c=L,d=N,d<=E)break;T=Math.max(1,2*E-d)}}if(f(X+1,E)>c)break;k=x}const $={isMatch:d>=0,score:Math.max(.001,L)};if(p){const X=sp(D,a);X.length?g&&($.indices=X):$.isMatch=!1}return $}function np(A){const e={};for(let t=0,s=A.length;t<s;t+=1){const n=A.charAt(t);e[n]=(e[n]||0)|1<<s-t-1}return e}function ig(A){if(A.length<=1)return A;A.sort((t,s)=>t[0]-s[0]||t[1]-s[1]);const e=[A[0]];for(let t=1,s=A.length;t<s;t+=1){const n=e[e.length-1],r=A[t];r[0]<=n[1]+1?n[1]=Math.max(n[1],r[1]):e.push(r)}return e}const YB={ł:"l",Ł:"L",đ:"d",Đ:"D",ø:"o",Ø:"O",ħ:"h",Ħ:"H",ŧ:"t",Ŧ:"T",ı:"i",ß:"ss"},ip=new RegExp("["+Object.keys(YB).join("")+"]","g"),pr=String.prototype.normalize?A=>A.normalize("NFD").replace(/[\u0300-\u036F\u0483-\u0489\u0591-\u05BD\u05BF\u05C1\u05C2\u05C4\u05C5\u05C7\u0610-\u061A\u064B-\u065F\u0670\u06D6-\u06DC\u06DF-\u06E4\u06E7\u06E8\u06EA-\u06ED\u0711\u0730-\u074A\u07A6-\u07B0\u07EB-\u07F3\u07FD\u0816-\u0819\u081B-\u0823\u0825-\u0827\u0829-\u082D\u0859-\u085B\u08D3-\u08E1\u08E3-\u0903\u093A-\u093C\u093E-\u094F\u0951-\u0957\u0962\u0963\u0981-\u0983\u09BC\u09BE-\u09C4\u09C7\u09C8\u09CB-\u09CD\u09D7\u09E2\u09E3\u09FE\u0A01-\u0A03\u0A3C\u0A3E-\u0A42\u0A47\u0A48\u0A4B-\u0A4D\u0A51\u0A70\u0A71\u0A75\u0A81-\u0A83\u0ABC\u0ABE-\u0AC5\u0AC7-\u0AC9\u0ACB-\u0ACD\u0AE2\u0AE3\u0AFA-\u0AFF\u0B01-\u0B03\u0B3C\u0B3E-\u0B44\u0B47\u0B48\u0B4B-\u0B4D\u0B56\u0B57\u0B62\u0B63\u0B82\u0BBE-\u0BC2\u0BC6-\u0BC8\u0BCA-\u0BCD\u0BD7\u0C00-\u0C04\u0C3E-\u0C44\u0C46-\u0C48\u0C4A-\u0C4D\u0C55\u0C56\u0C62\u0C63\u0C81-\u0C83\u0CBC\u0CBE-\u0CC4\u0CC6-\u0CC8\u0CCA-\u0CCD\u0CD5\u0CD6\u0CE2\u0CE3\u0D00-\u0D03\u0D3B\u0D3C\u0D3E-\u0D44\u0D46-\u0D48\u0D4A-\u0D4D\u0D57\u0D62\u0D63\u0D82\u0D83\u0DCA\u0DCF-\u0DD4\u0DD6\u0DD8-\u0DDF\u0DF2\u0DF3\u0E31\u0E34-\u0E3A\u0E47-\u0E4E\u0EB1\u0EB4-\u0EB9\u0EBB\u0EBC\u0EC8-\u0ECD\u0F18\u0F19\u0F35\u0F37\u0F39\u0F3E\u0F3F\u0F71-\u0F84\u0F86\u0F87\u0F8D-\u0F97\u0F99-\u0FBC\u0FC6\u102B-\u103E\u1056-\u1059\u105E-\u1060\u1062-\u1064\u1067-\u106D\u1071-\u1074\u1082-\u108D\u108F\u109A-\u109D\u135D-\u135F\u1712-\u1714\u1732-\u1734\u1752\u1753\u1772\u1773\u17B4-\u17D3\u17DD\u180B-\u180D\u1885\u1886\u18A9\u1920-\u192B\u1930-\u193B\u1A17-\u1A1B\u1A55-\u1A5E\u1A60-\u1A7C\u1A7F\u1AB0-\u1ABE\u1B00-\u1B04\u1B34-\u1B44\u1B6B-\u1B73\u1B80-\u1B82\u1BA1-\u1BAD\u1BE6-\u1BF3\u1C24-\u1C37\u1CD0-\u1CD2\u1CD4-\u1CE8\u1CED\u1CF2-\u1CF4\u1CF7-\u1CF9\u1DC0-\u1DF9\u1DFB-\u1DFF\u20D0-\u20F0\u2CEF-\u2CF1\u2D7F\u2DE0-\u2DFF\u302A-\u302F\u3099\u309A\uA66F-\uA672\uA674-\uA67D\uA69E\uA69F\uA6F0\uA6F1\uA802\uA806\uA80B\uA823-\uA827\uA880\uA881\uA8B4-\uA8C5\uA8E0-\uA8F1\uA8FF\uA926-\uA92D\uA947-\uA953\uA980-\uA983\uA9B3-\uA9C0\uA9E5\uAA29-\uAA36\uAA43\uAA4C\uAA4D\uAA7B-\uAA7D\uAAB0\uAAB2-\uAAB4\uAAB7\uAAB8\uAABE\uAABF\uAAC1\uAAEB-\uAAEF\uAAF5\uAAF6\uABE3-\uABEA\uABEC\uABED\uFB1E\uFE00-\uFE0F\uFE20-\uFE2F]/g,"").replace(ip,e=>YB[e]):A=>A;class ag{constructor(e,{location:t=le.location,threshold:s=le.threshold,distance:n=le.distance,includeMatches:r=le.includeMatches,findAllMatches:i=le.findAllMatches,minMatchCharLength:a=le.minMatchCharLength,isCaseSensitive:g=le.isCaseSensitive,ignoreDiacritics:l=le.ignoreDiacritics,ignoreLocation:B=le.ignoreLocation}={}){if(this.options={location:t,threshold:s,distance:n,includeMatches:r,findAllMatches:i,minMatchCharLength:a,isCaseSensitive:g,ignoreDiacritics:l,ignoreLocation:B},e=g?e:e.toLowerCase(),e=l?pr(e):e,this.pattern=e,this.chunks=[],!this.pattern.length)return;const u=(c,d)=>{this.chunks.push({pattern:c,alphabet:np(c),startIndex:d})},E=this.pattern.length;if(E>cs){let c=0;const d=E%cs,f=E-d;for(;c<f;)u(this.pattern.substr(c,cs),c),c+=cs;if(d){const p=E-cs;u(this.pattern.substr(p),p)}}else u(this.pattern,0)}searchIn(e){const{isCaseSensitive:t,ignoreDiacritics:s,includeMatches:n}=this.options;if(e=t?e:e.toLowerCase(),e=s?pr(e):e,this.pattern===e){const f={isMatch:!0,score:0};return n&&(f.indices=[[0,e.length-1]]),f}const{location:r,distance:i,threshold:a,findAllMatches:g,minMatchCharLength:l,ignoreLocation:B}=this.options,u=[];let E=0,c=!1;this.chunks.forEach(({pattern:f,alphabet:p,startIndex:D})=>{const{isMatch:F,score:k,indices:L}=rp(e,f,p,{location:r+D,distance:i,threshold:a,findAllMatches:g,minMatchCharLength:l,includeMatches:n,ignoreLocation:B});F&&(c=!0),E+=k,F&&L&&u.push(...L)});const d={isMatch:c,score:c?E/this.chunks.length:1};return c&&n&&(d.indices=ig(u)),d}}class as{constructor(e){this.pattern=e}static isMultiMatch(e){return dl(e,this.multiRegex)}static isSingleMatch(e){return dl(e,this.singleRegex)}search(e){return{isMatch:!1,score:1}}}function dl(A,e){const t=A.match(e);return t?t[1]:null}class ap extends as{constructor(e){super(e)}static get type(){return"exact"}static get multiRegex(){return/^="(.*)"$/}static get singleRegex(){return/^=(.*)$/}search(e){const t=e===this.pattern;return{isMatch:t,score:t?0:1,indices:[0,this.pattern.length-1]}}}class gp extends as{constructor(e){super(e)}static get type(){return"inverse-exact"}static get multiRegex(){return/^!"(.*)"$/}static get singleRegex(){return/^!(.*)$/}search(e){const s=e.indexOf(this.pattern)===-1;return{isMatch:s,score:s?0:1,indices:[0,e.length-1]}}}class lp extends as{constructor(e){super(e)}static get type(){return"prefix-exact"}static get multiRegex(){return/^\^"(.*)"$/}static get singleRegex(){return/^\^(.*)$/}search(e){const t=e.startsWith(this.pattern);return{isMatch:t,score:t?0:1,indices:[0,this.pattern.length-1]}}}class Qp extends as{constructor(e){super(e)}static get type(){return"inverse-prefix-exact"}static get multiRegex(){return/^!\^"(.*)"$/}static get singleRegex(){return/^!\^(.*)$/}search(e){const t=!e.startsWith(this.pattern);return{isMatch:t,score:t?0:1,indices:[0,e.length-1]}}}class Bp extends as{constructor(e){super(e)}static get type(){return"suffix-exact"}static get multiRegex(){return/^"(.*)"\$$/}static get singleRegex(){return/^(.*)\$$/}search(e){const t=e.endsWith(this.pattern);return{isMatch:t,score:t?0:1,indices:[e.length-this.pattern.length,e.length-1]}}}class cp extends as{constructor(e){super(e)}static get type(){return"inverse-suffix-exact"}static get multiRegex(){return/^!"(.*)"\$$/}static get singleRegex(){return/^!(.*)\$$/}search(e){const t=!e.endsWith(this.pattern);return{isMatch:t,score:t?0:1,indices:[0,e.length-1]}}}class HB extends as{constructor(e,{location:t=le.location,threshold:s=le.threshold,distance:n=le.distance,includeMatches:r=le.includeMatches,findAllMatches:i=le.findAllMatches,minMatchCharLength:a=le.minMatchCharLength,isCaseSensitive:g=le.isCaseSensitive,ignoreDiacritics:l=le.ignoreDiacritics,ignoreLocation:B=le.ignoreLocation}={}){super(e),this._bitapSearch=new ag(e,{location:t,threshold:s,distance:n,includeMatches:r,findAllMatches:i,minMatchCharLength:a,isCaseSensitive:g,ignoreDiacritics:l,ignoreLocation:B})}static get type(){return"fuzzy"}static get multiRegex(){return/^"(.*)"$/}static get singleRegex(){return/^(.*)$/}search(e){return this._bitapSearch.searchIn(e)}}class PB extends as{constructor(e){super(e)}static get type(){return"include"}static get multiRegex(){return/^'"(.*)"$/}static get singleRegex(){return/^'(.*)$/}search(e){let t=0,s;const n=[],r=this.pattern.length;for(;(s=e.indexOf(this.pattern,t))>-1;)t=s+r,n.push([s,t-1]);const i=!!n.length;return{isMatch:i,score:i?0:1,indices:n}}}const aa=[ap,PB,lp,Qp,cp,Bp,gp,HB],hl=aa.length,Ep="\0",Cp="|";function up(A){const e=[],t=A.length;let s=0;for(;s<t;){for(;s<t&&A[s]===" ";)s++;if(s>=t)break;let n=s;for(;n<t&&A[n]!==" "&&A[n]!=='"';)n++;if(n<t&&A[n]==='"'){for(n++;n<t;){if(A[n]==='"'){const r=n+1;if(r>=t||A[r]===" "){n++;break}if(A[r]==="$"&&(r+1>=t||A[r+1]===" ")){n+=2;break}}n++}e.push(A.substring(s,n)),s=n}else{for(;n<t&&A[n]!==" ";)n++;e.push(A.substring(s,n)),s=n}}return e}function Ip(A,e={}){return A.replace(/\\\|/g,Ep).split(Cp).map(s=>{const n=s.replace(/\u0000/g,"|"),r=up(n.trim()).filter(a=>a&&!!a.trim()),i=[];for(let a=0,g=r.length;a<g;a+=1){const l=r[a];let B=!1,u=-1;for(;!B&&++u<hl;){const E=aa[u],c=E.isMultiMatch(l);c&&(i.push(new E(c,e)),B=!0)}if(!B)for(u=-1;++u<hl;){const E=aa[u],c=E.isSingleMatch(l);if(c){i.push(new E(c,e));break}}}return i})}const dp=new Set([HB.type,PB.type]);class hp{constructor(e,{isCaseSensitive:t=le.isCaseSensitive,ignoreDiacritics:s=le.ignoreDiacritics,includeMatches:n=le.includeMatches,minMatchCharLength:r=le.minMatchCharLength,ignoreLocation:i=le.ignoreLocation,findAllMatches:a=le.findAllMatches,location:g=le.location,threshold:l=le.threshold,distance:B=le.distance}={}){this.query=null,this.options={isCaseSensitive:t,ignoreDiacritics:s,includeMatches:n,minMatchCharLength:r,findAllMatches:a,ignoreLocation:i,location:g,threshold:l,distance:B},e=t?e:e.toLowerCase(),e=s?pr(e):e,this.pattern=e,this.query=Ip(this.pattern,this.options)}static condition(e,t){return t.useExtendedSearch}searchIn(e){const t=this.query;if(!t)return{isMatch:!1,score:1};const{includeMatches:s,isCaseSensitive:n,ignoreDiacritics:r}=this.options;e=n?e:e.toLowerCase(),e=r?pr(e):e;let i=0;const a=[];let g=0,l=!1;for(let B=0,u=t.length;B<u;B+=1){const E=t[B];a.length=0,i=0,l=!1;for(let c=0,d=E.length;c<d;c+=1){const f=E[c],{isMatch:p,indices:D,score:F}=f.search(e);if(p){i+=1,g+=F;const k=f.constructor.type;k.startsWith("inverse")&&(l=!0),s&&(dp.has(k)?a.push(...D):a.push(D))}else{g=0,i=0,a.length=0,l=!1;break}}if(i){const c={isMatch:!0,score:g/i};return l&&(c.hasInverse=!0),s&&(c.indices=ig(a)),c}}return{isMatch:!1,score:1}}}const ga=[];function gg(...A){ga.push(...A)}function fn(A,e){for(let t=0,s=ga.length;t<s;t+=1){const n=ga[t];if(n.condition(A,e))return new n(A,e)}return new ag(A,e)}const mn={AND:"$and",OR:"$or"},la={PATH:"$path",PATTERN:"$val"},Qa=A=>!!(A[mn.AND]||A[mn.OR]),pp=A=>!!A[la.PATH],fp=A=>!is(A)&&jB(A)&&!Qa(A),pl=A=>({[mn.AND]:Object.keys(A).map(e=>({[e]:A[e]}))});function WB(A,e,{auto:t=!0}={}){const s=n=>{if(Xt(n)){const g={keyId:null,pattern:n};return t&&(g.searcher=fn(n,e)),g}const r=Object.keys(n),i=pp(n);if(!i&&r.length>1&&!Qa(n))return s(pl(n));if(fp(n)){const g=i?n[la.PATH]:r[0],l=i?n[la.PATTERN]:n[g];if(!Xt(l))throw new Error(H0(g));const B={keyId:ia(g),pattern:l};return t&&(B.searcher=fn(l,e)),B}const a={children:[],operator:r[0]};return r.forEach(g=>{const l=n[g];is(l)&&l.forEach(B=>{a.children.push(s(B))})}),a};return Qa(A)||(A=pl(A)),s(A)}function Ba(A,{ignoreFieldNorm:e=le.ignoreFieldNorm}){let t=1;return A.forEach(({key:s,norm:n,score:r})=>{const i=s?s.weight:null;t*=Math.pow(r===0&&i?Number.EPSILON:r,(i||1)*(e?1:n))}),t}function mp(A,{ignoreFieldNorm:e=le.ignoreFieldNorm}){A.forEach(t=>{t.score=Ba(t.matches,{ignoreFieldNorm:e})})}class wp{constructor(e){this.limit=e,this.heap=[]}get size(){return this.heap.length}shouldInsert(e){return this.size<this.limit||e<this.heap[0].score}insert(e){this.size<this.limit?(this.heap.push(e),this._bubbleUp(this.size-1)):e.score<this.heap[0].score&&(this.heap[0]=e,this._sinkDown(0))}extractSorted(e){return this.heap.sort(e)}_bubbleUp(e){const t=this.heap;for(;e>0;){const s=e-1>>1;if(t[e].score<=t[s].score)break;const n=t[e];t[e]=t[s],t[s]=n,e=s}}_sinkDown(e){const t=this.heap,s=t.length;let n=e;do{e=n;const r=2*e+1,i=2*e+2;if(r<s&&t[r].score>t[n].score&&(n=r),i<s&&t[i].score>t[n].score&&(n=i),n!==e){const a=t[e];t[e]=t[n],t[n]=a}}while(n!==e)}}function xp(A,e){const t=A.matches;e.matches=[],to(t)&&t.forEach(s=>{if(!to(s.indices)||!s.indices.length)return;const{indices:n,value:r}=s,i={indices:n,value:r};s.key&&(i.key=s.key.src),s.idx>-1&&(i.refIndex=s.idx),e.matches.push(i)})}function Dp(A,e){e.score=A.score}function yp(A,e,{includeMatches:t=le.includeMatches,includeScore:s=le.includeScore}={}){const n=[];return t&&n.push(xp),s&&n.push(Dp),A.map(r=>{const{idx:i}=r,a={item:e[i],refIndex:i};return n.length&&n.forEach(g=>{g(r,a)}),a})}const Np=/\b\w+\b/g;function ca({isCaseSensitive:A=!1,ignoreDiacritics:e=!1}={}){return{tokenize(t){return A||(t=t.toLowerCase()),e&&(t=pr(t)),t.match(Np)||[]}}}function kp(A,e,t){const s=new Map,n=new Map;let r=0;function i(a,g,l,B){const u=t.tokenize(a);if(!u.length)return;r++;const E=new Map;for(const c of u)E.set(c,(E.get(c)||0)+1);for(const[c,d]of E){const f={docIdx:g,keyIdx:l,subIdx:B,tf:d};let p=s.get(c);p||(p=[],s.set(c,p)),p.push(f),n.set(c,(n.get(c)||0)+1)}}for(const a of A){const{i:g,v:l,$:B}=a;if(l!==void 0){i(l,g,-1,-1);continue}if(B)for(let u=0;u<e;u++){const E=B[u];if(E)if(Array.isArray(E))for(const c of E)i(c.v,g,u,c.i??-1);else i(E.v,g,u,-1)}}return{terms:s,fieldCount:r,df:n}}function Mp(A,e,t,s){const{i:n,v:r,$:i}=e;function a(g,l,B){const u=s.tokenize(g);if(!u.length)return;A.fieldCount++;const E=new Map;for(const c of u)E.set(c,(E.get(c)||0)+1);for(const[c,d]of E){const f={docIdx:n,keyIdx:l,subIdx:B,tf:d};let p=A.terms.get(c);p||(p=[],A.terms.set(c,p)),p.push(f),A.df.set(c,(A.df.get(c)||0)+1)}}if(r!==void 0){a(r,-1,-1);return}if(i)for(let g=0;g<t;g++){const l=i[g];if(l)if(Array.isArray(l))for(const B of l)a(B.v,g,B.i??-1);else a(l.v,g,-1)}}function fl(A,e){for(const[t,s]of A.terms){const n=s.filter(i=>i.docIdx!==e),r=s.length-n.length;r>0&&(A.fieldCount-=r,A.df.set(t,(A.df.get(t)||0)-r),n.length===0?(A.terms.delete(t),A.df.delete(t)):A.terms.set(t,n))}}class vo{constructor(e,t,s){this.options={...le,...t},this.options.useExtendedSearch,this.options.useTokenSearch,this._keyStore=new V0(this.options.keys),this._docs=e,this._myIndex=null,this._invertedIndex=null,this.setCollection(e,s),this._lastQuery=null,this._lastSearcher=null}_getSearcher(e){if(this._lastQuery===e)return this._lastSearcher;const t=this._invertedIndex?{...this.options,_invertedIndex:this._invertedIndex}:this.options,s=fn(e,t);return this._lastQuery=e,this._lastSearcher=s,s}setCollection(e,t){if(this._docs=e,t&&!(t instanceof ng))throw new Error(Y0);if(this._myIndex=t||qB(this.options.keys,this._docs,{getFn:this.options.getFn,fieldNormWeight:this.options.fieldNormWeight}),this.options.useTokenSearch){const s=ca({isCaseSensitive:this.options.isCaseSensitive,ignoreDiacritics:this.options.ignoreDiacritics});this._invertedIndex=kp(this._myIndex.records,this._myIndex.keys.length,s)}}add(e){if(to(e)&&(this._docs.push(e),this._myIndex.add(e),this._invertedIndex)){const t=this._myIndex.records[this._myIndex.records.length-1],s=ca({isCaseSensitive:this.options.isCaseSensitive,ignoreDiacritics:this.options.ignoreDiacritics});Mp(this._invertedIndex,t,this._myIndex.keys.length,s)}}remove(e=()=>!1){const t=[],s=[];for(let n=0,r=this._docs.length;n<r;n+=1)e(this._docs[n],n)&&(t.push(this._docs[n]),s.push(n));if(s.length){if(this._invertedIndex)for(const n of s)fl(this._invertedIndex,n);for(let n=s.length-1;n>=0;n-=1)this._docs.splice(s[n],1);this._myIndex.removeAll(s)}return t}removeAt(e){this._invertedIndex&&fl(this._invertedIndex,e);const t=this._docs.splice(e,1)[0];return this._myIndex.removeAt(e),t}getIndex(){return this._myIndex}search(e,t){const{limit:s=-1}=t||{},{includeMatches:n,includeScore:r,shouldSort:i,sortFn:a,ignoreFieldNorm:g}=this.options;if(Xt(e)&&!e.trim()){let u=this._docs.map((E,c)=>({item:E,refIndex:c}));return Bn(s)&&s>-1&&(u=u.slice(0,s)),u}const l=Bn(s)&&s>0&&Xt(e);let B;if(l){const u=new wp(s);Xt(this._docs[0])?this._searchStringList(e,{heap:u,ignoreFieldNorm:g}):this._searchObjectList(e,{heap:u,ignoreFieldNorm:g}),B=u.extractSorted(a)}else B=Xt(e)?Xt(this._docs[0])?this._searchStringList(e):this._searchObjectList(e):this._searchLogical(e),mp(B,{ignoreFieldNorm:g}),i&&B.sort(a),Bn(s)&&s>-1&&(B=B.slice(0,s));return yp(B,this._docs,{includeMatches:n,includeScore:r})}_searchStringList(e,{heap:t,ignoreFieldNorm:s}={}){const n=this._getSearcher(e),{records:r}=this._myIndex,i=t?null:[];return r.forEach(({v:a,i:g,n:l})=>{if(!to(a))return;const{isMatch:B,score:u,indices:E}=n.searchIn(a);if(B){const c={item:a,idx:g,matches:[{score:u,value:a,norm:l,indices:E}]};t?(c.score=Ba(c.matches,{ignoreFieldNorm:s}),t.shouldInsert(c.score)&&t.insert(c)):i.push(c)}}),i}_searchLogical(e){const t=WB(e,this.options),s=(a,g,l)=>{if(!("children"in a)){const{keyId:c,searcher:d}=a;let f;return c===null?(f=[],this._myIndex.keys.forEach((p,D)=>{f.push(...this._findMatches({key:p,value:g[D],searcher:d}))})):f=this._findMatches({key:this._keyStore.get(c),value:this._myIndex.getValueForItemAtKeyId(g,c),searcher:d}),f&&f.length?[{idx:l,item:g,matches:f}]:[]}const{children:B,operator:u}=a,E=[];for(let c=0,d=B.length;c<d;c+=1){const f=B[c],p=s(f,g,l);if(p.length)E.push(...p);else if(u===mn.AND)return[]}return E},n=this._myIndex.records,r=new Map,i=[];return n.forEach(({$:a,i:g})=>{if(to(a)){const l=s(t,a,g);l.length&&(r.has(g)||(r.set(g,{idx:g,item:a,matches:[]}),i.push(r.get(g))),l.forEach(({matches:B})=>{r.get(g).matches.push(...B)}))}}),i}_searchObjectList(e,{heap:t,ignoreFieldNorm:s}={}){const n=this._getSearcher(e),{keys:r,records:i}=this._myIndex,a=t?null:[];return i.forEach(({$:g,i:l})=>{if(!to(g))return;const B=[];let u=!1,E=!1;if(r.forEach((c,d)=>{const f=this._findMatches({key:c,value:g[d],searcher:n});f.length?(B.push(...f),f[0].hasInverse&&(E=!0)):u=!0}),!(E&&u)&&B.length){const c={idx:l,item:g,matches:B};t?(c.score=Ba(c.matches,{ignoreFieldNorm:s}),t.shouldInsert(c.score)&&t.insert(c)):a.push(c)}}),a}_findMatches({key:e,value:t,searcher:s}){if(!to(t))return[];const n=[];if(is(t))t.forEach(({v:r,i,n:a})=>{if(!to(r))return;const{isMatch:g,score:l,indices:B,hasInverse:u}=s.searchIn(r);g&&n.push({score:l,key:e,value:r,idx:i,norm:a,indices:B,hasInverse:u})});else{const{v:r,n:i}=t,{isMatch:a,score:g,indices:l,hasInverse:B}=s.searchIn(r);a&&n.push({score:g,key:e,value:r,norm:i,indices:l,hasInverse:B})}return n}}class bp{static condition(e,t){return t.useTokenSearch}constructor(e,t){this.options=t,this.analyzer=ca({isCaseSensitive:t.isCaseSensitive,ignoreDiacritics:t.ignoreDiacritics});const s=this.analyzer.tokenize(e),n=t._invertedIndex,{df:r,fieldCount:i}=n;this.termSearchers=[],this.idfWeights=[];for(const a of s){this.termSearchers.push(new ag(a,{location:t.location,threshold:t.threshold,distance:t.distance,includeMatches:t.includeMatches,findAllMatches:t.findAllMatches,minMatchCharLength:t.minMatchCharLength,isCaseSensitive:t.isCaseSensitive,ignoreDiacritics:t.ignoreDiacritics,ignoreLocation:!0}));const g=r.get(a)||0,l=Math.log(1+(i-g+.5)/(g+.5));this.idfWeights.push(l)}}searchIn(e){if(!this.termSearchers.length)return{isMatch:!1,score:1};const t=[];let s=0,n=0,r=0;for(let g=0;g<this.termSearchers.length;g++){const l=this.termSearchers[g].searchIn(e),B=this.idfWeights[g];n+=B,l.isMatch&&(r++,s+=B*(1-l.score),l.indices&&t.push(...l.indices))}if(r===0)return{isMatch:!1,score:1};const i=n>0?1-s/n:0,a={isMatch:!0,score:Math.max(.001,i)};return this.options.includeMatches&&t.length&&(a.indices=ig(t)),a}}vo.version="7.3.0";vo.createIndex=qB;vo.parseIndex=op;vo.config=le;vo.match=function(A,e,t){return fn(A,{...le,...t}).searchIn(e)};vo.parseQuery=WB;gg(hp);gg(bp);vo.use=function(...A){A.forEach(e=>gg(e))};function Fp(A){switch(A.split(".").pop()?.toLowerCase()){case"ts":case"tsx":case"js":case"jsx":case"mjs":case"cjs":case"py":case"rb":case"go":case"rs":case"java":case"c":case"cpp":case"h":case"hpp":return Un;case"json":case"yaml":case"yml":case"toml":return EC;case"md":case"txt":case"log":return ss;case"png":case"jpg":case"jpeg":case"gif":case"svg":case"webp":return Oa;case"css":case"scss":case"sass":case"less":return cC;case"html":case"xml":return BC;default:return os}}function Gp(A,e){const t=e.get(A);return t?{added:{icon:lo,label:"Added",className:"text-green-500"},modified:{icon:In,label:"Modified",className:"text-yellow-500"},untracked:{icon:lo,label:"Untracked",className:"text-blue-500"}}[t]||{icon:In,label:"Modified",className:"text-yellow-500"}:null}function vp({files:A,changedFiles:e=[],query:t,selectedIndex:s,onSelect:n,onEnterSelect:r,onClose:i}){const a=m.useMemo(()=>new Map(e?.map(B=>[B.path,B.status])||[]),[e]),g=m.useMemo(()=>new vo(A.map(B=>({path:B,filename:B.split("/").pop()||B,normalized:B.replace(/[.\-_/]/g,"")})),{keys:[{name:"filename",weight:2},{name:"normalized",weight:1.5},{name:"path",weight:1}],threshold:.3,distance:200,ignoreLocation:!0,includeScore:!0}),[A]),l=m.useMemo(()=>{if(!t)return A.slice(0,20);const B=t.replace(/[.\-_/]/g,""),u=g.search(B);return u.sort((E,c)=>{const d=E.score??1,f=c.score??1;if(Math.abs(d-f)<.05){const D=a.has(E.item.path),F=a.has(c.item.path);if(D&&!F)return-1;if(!D&&F)return 1}return d-f}),u.slice(0,20).map(E=>E.item.path)},[g,t,A,a]);return m.useEffect(()=>{document.getElementById(`file-item-${s}`)?.scrollIntoView({block:"nearest"})},[s]),m.useEffect(()=>{r(l[s])},[l,s,r]),m.useEffect(()=>{const B=u=>{u.target.closest("[data-file-mention-popup]")||i()};return document.addEventListener("mousedown",B),()=>document.removeEventListener("mousedown",B)},[i]),l.length===0?o.jsx("div",{"data-file-mention-popup":!0,className:"absolute bottom-full left-0 right-0 mb-2 bg-card border border-border rounded-lg shadow-lg z-50 p-3",children:o.jsx("span",{className:"text-muted-foreground text-sm",children:"No files found"})}):o.jsx("div",{"data-file-mention-popup":!0,className:"absolute bottom-full left-0 right-0 mb-2 bg-card border border-border rounded-lg shadow-lg max-h-[300px] overflow-y-auto z-50",children:l.map((B,u)=>o.jsx("button",{type:"button",id:`file-item-${u}`,onMouseDown:E=>{E.preventDefault(),n(B)},className:`w-full text-left px-3 py-2 hover:bg-accent ${u===s?"bg-accent":""}`,children:o.jsxs("div",{className:"flex items-center gap-2 w-full",children:[(()=>{const E=Fp(B);return o.jsx(E,{className:"w-4 h-4 flex-shrink-0 text-muted-foreground"})})(),o.jsx("span",{className:"font-mono text-sm flex-1 truncate",children:B}),(()=>{const E=Gp(B,a);return E&&o.jsx("span",{title:E.label,children:o.jsx(E.icon,{className:`w-3.5 h-3.5 flex-shrink-0 ${E.className}`})})})()]})},B))})}function Sp(){if(typeof window<"u"&&typeof window.fetch=="function")return"fetch"}function jA(A){if(!A)return"Unknown error";if(typeof A=="string")return A;if(A&&typeof A=="object"){const e=A;if(e.error&&typeof e.error=="object"){const t=e.error;if(typeof t.message=="string")return t.message}if(typeof e.error=="string")return e.error;if(typeof e.message=="string")return e.message;try{return JSON.stringify(A)}catch{return"Error occurred (unable to parse)"}}return"Unknown error"}function Up(){const e=window.OTTO_SERVER_URL||sg;wA.setConfig({baseURL:e,adapter:Sp()})}Up();function fr(){const A=window;return A.OTTO_SERVER_URL?A.OTTO_SERVER_URL:sg}function Ei(A){return{...A,title:A.title??null,createdAt:typeof A.createdAt=="string"?new Date(A.createdAt).getTime():A.createdAt,lastActiveAt:typeof A.lastActiveAt=="string"?new Date(A.lastActiveAt).getTime():A.lastActiveAt}}function Rp(A){return{...A,createdAt:typeof A.createdAt=="string"?new Date(A.createdAt).getTime():A.createdAt,completedAt:A.completedAt?typeof A.completedAt=="string"?new Date(A.completedAt).getTime():A.completedAt:null}}const io={async getSessions(){return(await this.getSessionsPage({limit:200})).items},async getSessionsPage(A={}){const{limit:e=50,offset:t=0}=A,s=await $I({query:{limit:e,offset:t}});if(s.error)throw new Error(jA(s.error));const n=s.data;return{items:(n?.items??[]).map(r=>Ei(r)),hasMore:n?.hasMore??!1,nextOffset:n?.nextOffset??null}},async createSession(A){const e=await Ad({body:A});if(e.error)throw new Error(jA(e.error));if(!e.data)throw new Error("No data returned from create session");return Ei(e.data)},async updateSession(A,e){const t=await td({path:{sessionId:A},body:e});if(t.error)throw new Error(jA(t.error));return Ei(t.data)},async deleteSession(A){const e=await ed({path:{sessionId:A}});if(e.error)throw new Error(jA(e.error));return e.data},async abortSession(A){const e=await gl({path:{sessionId:A}});if(e.error)throw new Error(jA(e.error));return e.data},async abortMessage(A,e){const t=await gl({path:{sessionId:A}});if(t.error)throw new Error("Failed to abort message");return t.data},async getQueueState(A){const e=await od({path:{sessionId:A}});if(e.error)throw new Error("Failed to get queue state");return e.data},async removeFromQueue(A,e){const t=await sd({path:{sessionId:A,messageId:e}});if(t.error)throw new Error("Failed to remove from queue");return t.data},async getMessages(A){const e=await Qd({path:{id:A}});if(e.error)throw new Error(jA(e.error));return(e.data||[]).map(Rp)},async sendMessage(A,e){const t=await Bd({path:{id:A},body:e});if(t.error)throw new Error(jA(t.error));return t.data},getStreamUrl(A){return Yh({baseUrl:fr(),sessionId:A})},async retryMessage(A,e){const t=await ad({path:{sessionId:A,messageId:e}});if(t.error)throw new Error(jA(t.error));return t.data}},Rt={async initGitRepo(){const A=await Ud();if(A.error)throw new Error(jA(A.error));return A.data?.data},async getGitStatus(){const A=await Dd();if(A.error)throw new Error(jA(A.error));return A.data?.data},async getGitDiff(A,e=!1){const t=await ll({query:{file:A,staged:e?"true":"false"}});if(t.error)throw new Error(jA(t.error));return t.data?.data},async getGitDiffFullFile(A,e=!1){const t=await ll({query:{file:A,staged:e?"true":"false",fullFile:"true"}});if(t.error)throw new Error(jA(t.error));return t.data?.data},async generateCommitMessage(A){const e=await Gd({body:A?{sessionId:A}:{}});if(e.error)throw new Error(jA(e.error));return e.data?.data},async stageFiles(A){const e=await Nd({body:{files:A}});if(e.error)throw new Error(jA(e.error));return e.data?.data},async unstageFiles(A){const e=await kd({body:{files:A}});if(e.error)throw new Error(jA(e.error));return e.data?.data},async restoreFiles(A){const e=await Md({body:{files:A}});if(e.error)throw new Error(jA(e.error));return e.data?.data},async deleteFiles(A){const e=await bd({body:{files:A}});if(e.error)throw new Error(jA(e.error));return e.data?.data},async commitChanges(A){const e=await Fd({body:{message:A}});if(e.error)throw new Error(jA(e.error));return e.data?.data},async getGitBranch(){const A=await yd();if(A.error)throw new Error(jA(A.error));return A.data?.data},async pushCommits(){const A=await vd({body:{}});if(A.error)throw new Error(jA(A.error));return A.data?.data},async pullChanges(){const A=await Sd({body:{}});if(A.error)throw new Error(jA(A.error));return A.data?.data},async getRemotes(){const A=await Kd();if(A.error)throw new Error(jA(A.error));return A.data?.data?.remotes},async addRemote(A,e){const t=await Ld({body:{name:A,url:e}});if(t.error)throw new Error(jA(t.error));return t.data?.data},async removeRemote(A){const e=await Rd({body:{name:A}});if(e.error)throw new Error(jA(e.error));return e.data?.data}},gs={async getConfig(){const A=await Ed();if(A.error)throw new Error(jA(A.error));return A.data},async getModels(A){const e=await dd({path:{provider:A}});if(e.error)throw new Error(jA(e.error));return e.data},async getAllModels(){const A=await hd();if(A.error)throw new Error(jA(A.error));return A.data},async discoverProviderModels(A){const e=await Cd({body:A});if(e.error)throw new Error(jA(e.error));return e.data},async updateProviderSettings(A,e){const t=await Id({path:{provider:A},body:e});if(t.error)throw new Error(jA(t.error));return t.data},async deleteProviderSettings(A){const e=await ud({path:{provider:A}});if(e.error)throw new Error(jA(e.error));return e.data},async updateDefaults(A){const e=await pd({body:A});if(e.error)throw new Error(jA(e.error));return e.data}},ir={async listFiles(){const A=await fd();if(A.error)throw new Error(jA(A.error));return A.data},async searchFiles(A=""){const e=await md({query:{q:A}});if(e.error)throw new Error(jA(e.error));return e.data},async getFileTree(A="."){const e=await wd({query:{path:A}});if(e.error)throw new Error(jA(e.error));return e.data},async readFileContent(A){const e=await xd({query:{path:A}});if(e.error)throw new Error(jA(e.error));return e.data},async getSessionFiles(A){const e=await Od({path:{sessionId:A}});if(e.error)throw new Error(jA(e.error));return e.data}},Fs={async createBranch(A,e){const t=await qd({path:{sessionId:A},body:e});if(t.error)throw new Error(jA(t.error));return t.data},async listBranches(A){const e=await Yd({path:{sessionId:A}});if(e.error)throw new Error(jA(e.error));return e.data},async getParentSession(A){const e=await Hd({path:{sessionId:A}});if(e.error)throw new Error(jA(e.error));return e.data},async getShareStatus(A){const e=await rd({path:{sessionId:A}});return e.error?{shared:!1}:e.data},async shareSession(A){const e=await nd({path:{sessionId:A}});if(e.error)throw new Error(jA(e.error));return e.data},async syncSession(A){const e=await id({path:{sessionId:A}});if(e.error)throw new Error(jA(e.error));return e.data}},ml={async approveToolCall(A,e,t){const s=await gd({path:{id:A},body:{callId:e,approved:t,sessionId:A}});if(s.error)throw new Error("Failed to send tool approval");return s.data},async getPendingApprovals(A){const e=await ld({path:{id:A}});return e.error?{ok:!1,pending:[]}:e.data}},co={async getOttoRouterBalance(){try{const A=await Zd();return A.error?null:A.data}catch{return null}},async getOttoRouterWallet(){try{const A=await Xd();return A.error?{configured:!1}:A.data}catch{return{configured:!1}}},async getOttoRouterUsdcBalance(A="mainnet"){try{const e=await $d({query:{network:A}});return e.error?null:e.data}catch{return null}},async getPolarTopupEstimate(A){try{const e=await Ah({query:{amount:A}});return e.error?null:e.data}catch{return null}},async createPolarCheckout(A,e){const t=await eh({body:{amount:A,successUrl:e}});if(t.error)throw new Error(jA(t.error));return t.data},async selectTopupMethod(A,e){const t=await nh({body:{sessionId:A,method:e}});if(t.error)throw new Error(jA(t.error));return t.data},async cancelTopup(A,e){const t=await ih({body:{sessionId:A,reason:e}});if(t.error)throw new Error(jA(t.error));return t.data},async getPendingTopup(A){try{const e=await ah({query:{sessionId:A}});return e.error?{hasPending:!1}:e.data}catch{return{hasPending:!1}}},async getPolarTopupStatus(A){try{const e=await th({query:{checkoutId:A}});return e.error?null:e.data}catch{return null}},async getRazorpayTopupEstimate(A){try{const e=await oh({query:{amount:A}});return e.error?null:e.data}catch{return null}},async createRazorpayOrder(A){const e=await sh({body:{amount:A}});if(e.error)throw new Error(jA(e.error));return e.data},async verifyRazorpayPayment(A){const e=await rh({body:A});if(e.error)throw new Error(jA(e.error));return e.data}},bt={async getAuthStatus(){const A=await gh();if(A.error)throw new Error(jA(A.error));return A.data},async setupOttoRouterWallet(){const A=await lh();if(A.error)throw new Error(jA(A.error));return A.data},async importOttoRouterWallet(A){const e=await Qh({body:{privateKey:A}});if(e.error)throw new Error(jA(e.error));return e.data},async exportOttoRouterWallet(){const A=await Bh();if(A.error)throw new Error(jA(A.error));return A.data},async addProvider(A,e){const t=await Eh({path:{provider:A},body:{apiKey:e}});if(t.error)throw new Error(jA(t.error));return t.data},async removeProvider(A){const e=await ch({path:{provider:A}});if(e.error)throw new Error(jA(e.error));return e.data},async completeOnboarding(){const A=await wh();if(A.error)throw new Error(jA(A.error));return A.data},getOAuthStartUrl(A,e){const t=`${fr()}/v1/auth/${A}/oauth/start`;return e?`${t}?mode=${e}`:t},async getOAuthUrl(A,e){const t=await Ch({path:{provider:A},body:{mode:e}});if(t.error)throw new Error(jA(t.error));return t.data},async exchangeOAuthCode(A,e,t){const s=await uh({path:{provider:A},body:{code:e,sessionId:t}});if(s.error)throw new Error(jA(s.error));return s.data},async startCopilotDeviceFlow(){const A=await Ih();if(A.error)throw new Error(jA(A.error));return A.data},async pollCopilotDeviceFlow(A){const e=await dh({body:{sessionId:A}});if(e.error)throw new Error(jA(e.error));return e.data},async getCopilotAuthMethods(){const A=await hh();if(A.error)throw new Error(jA(A.error));return A.data},async saveCopilotToken(A){const e=await ph({body:{token:A}});if(e.error)throw new Error(jA(e.error));return e.data},async importCopilotTokenFromGh(){const A=await fh();if(A.error)throw new Error(jA(A.error));return A.data},async getCopilotDiagnostics(){const A=await mh();if(A.error)throw new Error(jA(A.error));return A.data},async getProviderUsage(A){const e=await Uh({path:{provider:A}});if(e.error)throw new Error(jA(e.error));return e.data}},Gs={async listSkills(){const A=await Rh();if(A.error)throw new Error(jA(A.error));return A.data},async getSkill(A){const e=await Jh({path:{name:A}});if(e.error)throw new Error(jA(e.error));return e.data},async getSkillFiles(A){const e=await jh({path:{name:A}});if(e.error)throw new Error(jA(e.error));return e.data},async getSkillFileContent(A,e){const t=await Th({path:{name:A,filePath:e}});if(t.error)throw new Error(jA(t.error));return t.data},async getSkillsConfig(){const A=await Kh();if(A.error)throw new Error(jA(A.error));return A.data},async updateSkillsConfig(A){const e=await Lh({body:A});if(e.error)throw new Error(jA(e.error));return e.data}};class Kp{getSessions=io.getSessions;getSessionsPage=io.getSessionsPage;createSession=io.createSession;updateSession=io.updateSession;deleteSession=io.deleteSession;abortSession=io.abortSession;abortMessage=io.abortMessage;getQueueState=io.getQueueState;removeFromQueue=io.removeFromQueue;getMessages=io.getMessages;sendMessage=io.sendMessage;getStreamUrl=io.getStreamUrl;retryMessage=io.retryMessage;initGitRepo=Rt.initGitRepo;getGitStatus=Rt.getGitStatus;getGitDiff=Rt.getGitDiff;getGitDiffFullFile=Rt.getGitDiffFullFile;generateCommitMessage=Rt.generateCommitMessage;stageFiles=Rt.stageFiles;unstageFiles=Rt.unstageFiles;restoreFiles=Rt.restoreFiles;deleteFiles=Rt.deleteFiles;commitChanges=Rt.commitChanges;getGitBranch=Rt.getGitBranch;pushCommits=Rt.pushCommits;pullChanges=Rt.pullChanges;getRemotes=Rt.getRemotes;addRemote=Rt.addRemote;removeRemote=Rt.removeRemote;getConfig=gs.getConfig;getModels=gs.getModels;getAllModels=gs.getAllModels;discoverProviderModels=gs.discoverProviderModels;updateProviderSettings=gs.updateProviderSettings;deleteProviderSettings=gs.deleteProviderSettings;updateDefaults=gs.updateDefaults;listFiles=ir.listFiles;searchFiles=ir.searchFiles;getFileTree=ir.getFileTree;readFileContent=ir.readFileContent;getSessionFiles=ir.getSessionFiles;createBranch=Fs.createBranch;listBranches=Fs.listBranches;getParentSession=Fs.getParentSession;getShareStatus=Fs.getShareStatus;shareSession=Fs.shareSession;syncSession=Fs.syncSession;approveToolCall=ml.approveToolCall;getPendingApprovals=ml.getPendingApprovals;getOttoRouterBalance=co.getOttoRouterBalance;getOttoRouterWallet=co.getOttoRouterWallet;getOttoRouterUsdcBalance=co.getOttoRouterUsdcBalance;getPolarTopupEstimate=co.getPolarTopupEstimate;createPolarCheckout=co.createPolarCheckout;selectTopupMethod=co.selectTopupMethod;cancelTopup=co.cancelTopup;getPendingTopup=co.getPendingTopup;getPolarTopupStatus=co.getPolarTopupStatus;getRazorpayTopupEstimate=co.getRazorpayTopupEstimate;createRazorpayOrder=co.createRazorpayOrder;verifyRazorpayPayment=co.verifyRazorpayPayment;getAuthStatus=bt.getAuthStatus;setupOttoRouterWallet=bt.setupOttoRouterWallet;importOttoRouterWallet=bt.importOttoRouterWallet;exportOttoRouterWallet=bt.exportOttoRouterWallet;addProvider=bt.addProvider;removeProvider=bt.removeProvider;completeOnboarding=bt.completeOnboarding;getOAuthStartUrl=bt.getOAuthStartUrl;getOAuthUrl=bt.getOAuthUrl;exchangeOAuthCode=bt.exchangeOAuthCode;startCopilotDeviceFlow=bt.startCopilotDeviceFlow;pollCopilotDeviceFlow=bt.pollCopilotDeviceFlow;getCopilotAuthMethods=bt.getCopilotAuthMethods;saveCopilotToken=bt.saveCopilotToken;importCopilotTokenFromGh=bt.importCopilotTokenFromGh;getCopilotDiagnostics=bt.getCopilotDiagnostics;getProviderUsage=bt.getProviderUsage;listSkills=Gs.listSkills;getSkill=Gs.getSkill;getSkillFiles=Gs.getSkillFiles;getSkillFileContent=Gs.getSkillFileContent;getSkillsConfig=Gs.getSkillsConfig;updateSkillsConfig=Gs.updateSkillsConfig}const mA=new Kp;function Vo(){return gt({queryKey:["config"],queryFn:()=>mA.getConfig(),staleTime:3e4})}function Lp(A){return gt({queryKey:["models",A],queryFn:()=>A?mA.getModels(A):null,enabled:!!A})}function Xs(){return gt({queryKey:["models","all"],queryFn:()=>mA.getAllModels()})}function Ur(){const A=ke();return _e({mutationFn:e=>mA.updateDefaults(e),onMutate:async e=>{await A.cancelQueries({queryKey:["config"]});const t=A.getQueryData(["config"]);if(t){const s=Object.fromEntries(Object.entries(e).filter(([n,r])=>n!=="scope"&&r!==void 0));A.setQueryData(["config"],{...t,defaults:{...t.defaults,...s}})}return{previousConfig:t}},onError:(e,t,s)=>{s?.previousConfig&&A.setQueryData(["config"],s.previousConfig)},onSuccess:()=>{A.invalidateQueries({queryKey:["config"]})}})}const zB="otto-preferences",Cr="IBM Plex Mono",Ks={vimMode:!1,compactThread:!0,fontFamily:Cr};function Jp(A){const e=A.trim();return!e||e===Cr?`"${Cr}", monospace`:`"${e.replaceAll('"','\\"')}", "${Cr}", monospace`}function VB(A){typeof document>"u"||(document.documentElement.style.setProperty("--otto-font-family",Jp(A)),document.documentElement.dataset.ottoFontFamily=A,!v0(A)&&window.self!==window.top&&window.parent.postMessage({type:"otto-font-family-changed",fontFamily:A},"*"))}function jp(){if(typeof window>"u")return Ks;try{const A=window.localStorage.getItem(zB);if(A){const e=JSON.parse(A);return{vimMode:typeof e.vimMode=="boolean"?e.vimMode:Ks.vimMode,compactThread:typeof e.compactThread=="boolean"?e.compactThread:Ks.compactThread,fontFamily:typeof e.fontFamily=="string"&&e.fontFamily.trim()?e.fontFamily.trim():Ks.fontFamily}}}catch(A){console.warn("Failed to load preferences",A)}return Ks}let Ls=jp();VB(Ls.fontFamily);const Ea=new Set;function Tp(){return Ls}function Op(){return Ks}function qp(A){return Ea.add(A),()=>Ea.delete(A)}function Yp(){for(const A of Ea)A()}function Hp(A){if(Ls={...Ls,...A},A.fontFamily!==void 0&&VB(Ls.fontFamily),typeof window<"u")try{window.localStorage.setItem(zB,JSON.stringify(Ls))}catch(e){console.warn("Failed to persist preferences",e)}Yp()}function $s(){const A=m.useSyncExternalStore(qp,Tp,Op),{data:e}=Vo(),t=Ur(),s=m.useCallback(r=>{const i={};r.vimMode!==void 0&&(i.vimMode=r.vimMode),r.compactThread!==void 0&&(i.compactThread=r.compactThread),r.fontFamily!==void 0&&(i.fontFamily=r.fontFamily.trim()||Cr),Object.keys(i).length>0&&Hp(i),r.fullWidthContent!==void 0&&r.fullWidthContent!==e?.defaults?.fullWidthContent&&t.mutate({fullWidthContent:r.fullWidthContent,scope:"global"})},[e?.defaults?.fullWidthContent,t]),n=m.useMemo(()=>({...A,fullWidthContent:e?.defaults?.fullWidthContent??!1}),[A,e?.defaults?.fullWidthContent]);return m.useMemo(()=>({preferences:n,updatePreferences:s}),[n,s])}function lg(A){const{data:e,isLoading:t,error:s}=gt({queryKey:["share-status",A],queryFn:()=>mA.getShareStatus(A),enabled:!!A,staleTime:3e4});return{data:e,isLoading:t,error:s}}const Wn=[{id:"models",label:"/models",description:"Open model selector",icon:_t},{id:"agents",label:"/agents",description:"Open agent selector",icon:so},{id:"new",label:"/new",description:"Create new session",icon:lo},{id:"stop",label:"/stop",description:"Stop current generation",icon:OQ},{id:"help",label:"/help",description:"Show keyboard shortcuts and help",icon:qQ},{id:"vim",label:"/vim",description:A=>A.vimModeEnabled?"Disable Vim mode":"Enable Vim mode",icon:CC},{id:"reasoning",label:"/reasoning",description:A=>A.reasoningEnabled?"Disable extended thinking":"Enable extended thinking",icon:Rn},{id:"stage",label:"/stage",description:"Stage all changes (git add -A)",icon:go},{id:"commit",label:"/commit",description:"Commit staged changes",icon:Ht},{id:"compact",label:"/compact",description:"Compact conversation to reduce context size",icon:ja},{id:"init",label:"/init",description:"Generate AGENTS.md and .agents docs from the real repo structure",icon:ss},{id:"branch",label:"/branch",description:"Branch session from last message",icon:uC},{id:"delete",label:"/delete",description:"Delete current session",icon:Nr},{id:"share",label:"/share",description:"Share session publicly",icon:qa},{id:"sync",label:"/sync",description:"Sync new messages to shared session",icon:Zt}];function _B(A,e){return typeof A.description=="function"?A.description(e):A.description}function Pp(A){const e=A.trim().toLowerCase();if(e.startsWith("/"))return Wn.find(t=>t.label.toLowerCase()===e||`/${t.id}`.toLowerCase()===e)}function ZB(A){return A==="compact"||A==="init"}function Wp(A){return Wn.find(e=>e.id===A)?.label}function zp(A,e){const t=Wn.filter(r=>!(r.id==="share"&&e.isShared||r.id==="sync"&&!e.isShared));if(!A)return t;const s=A.toLowerCase(),n=[];for(const r of t){const i=_B(r,e),a=r.label.toLowerCase().includes(s),g=i.toLowerCase().includes(s);if(a||g){const l=a?10:5;n.push({...r,matchScore:l})}}return n.sort((r,i)=>{const a=i.matchScore-r.matchScore;return a!==0?a:r.label.localeCompare(i.label)})}function Vp({query:A,selectedIndex:e,onSelect:t,onEnterSelect:s,onClose:n,sessionId:r}){const{preferences:i}=$s(),{data:a}=Vo(),{data:g}=lg(r),l=m.useMemo(()=>({vimModeEnabled:i.vimMode,reasoningEnabled:a?.defaults?.reasoningText??!0,isShared:g?.shared}),[i.vimMode,a?.defaults?.reasoningText,g?.shared]),B=m.useMemo(()=>zp(A,l),[A,l]);return m.useEffect(()=>{document.getElementById(`command-item-${e}`)?.scrollIntoView({block:"nearest"})},[e]),m.useEffect(()=>{s(B[e]?.id)},[B,e,s]),m.useEffect(()=>{const u=E=>{E.target.closest("[data-command-popup]")||n()};return document.addEventListener("mousedown",u),()=>document.removeEventListener("mousedown",u)},[n]),B.length===0?o.jsx("div",{"data-command-popup":!0,className:"absolute bottom-full left-0 right-0 mb-2 bg-card border border-border rounded-lg shadow-lg z-50 p-3",children:o.jsx("span",{className:"text-muted-foreground text-sm",children:"No commands found"})}):o.jsx("div",{"data-command-popup":!0,className:"absolute bottom-full left-0 right-0 mb-2 bg-card border border-border rounded-lg shadow-lg max-h-[300px] overflow-y-auto z-50",children:B.map((u,E)=>{const c=u.icon;return o.jsx("button",{type:"button",id:`command-item-${E}`,onMouseDown:d=>{d.preventDefault(),t(u.id)},className:`w-full text-left px-3 py-2 hover:bg-accent ${E===e?"bg-accent":""}`,children:o.jsxs("div",{className:"flex items-center gap-3 w-full",children:[o.jsx(c,{className:"w-4 h-4 flex-shrink-0 text-primary"}),o.jsxs("div",{className:"flex-1 min-w-0",children:[o.jsx("div",{className:"font-mono text-sm font-medium text-foreground",children:u.label}),o.jsx("div",{className:"text-xs text-muted-foreground truncate",children:_B(u,l)})]})]})},u.id)})})}const _p={sm:"max-w-sm",md:"max-w-md",lg:"max-w-lg",xl:"max-w-xl","2xl":"max-w-2xl"};function So({isOpen:A,onClose:e,title:t,children:s,showCloseButton:n=!0,closeOnBackdropClick:r=!0,closeOnEscape:i=!0,maxWidth:a="md",position:g="fixed"}){if(m.useEffect(()=>{if(!A||!i)return;const u=E=>{const c=E.target,d=c.tagName==="INPUT"||c.tagName==="TEXTAREA"||c.isContentEditable;(E.key==="Escape"||E.key==="q"&&!d)&&(E.preventDefault(),E.stopPropagation(),e())};return document.addEventListener("keydown",u),()=>document.removeEventListener("keydown",u)},[A,i,e]),m.useEffect(()=>{if(A)return document.body.style.overflow="hidden",()=>{document.body.style.overflow=""}},[A]),!A)return null;const l=u=>{r&&u.target===u.currentTarget&&e()},B=g==="absolute"?"absolute":"fixed";return o.jsxs(o.Fragment,{children:[o.jsx("button",{type:"button","data-native-overlay-root":"true",className:`${B} inset-0 bg-black/50 backdrop-blur-sm z-[9999] cursor-default`,onClick:l,onKeyDown:u=>{(u.key==="Enter"||u.key===" ")&&l(u)},"aria-label":"Close modal"}),o.jsx("div",{"data-native-overlay-root":"true",className:`${B} top-1/2 left-1/2 -translate-x-1/2 -translate-y-1/2 z-[9999] w-full ${_p[a]} max-h-[calc(100dvh-2rem)] px-4 flex`,children:o.jsxs("div",{className:"bg-background border border-border rounded-lg shadow-lg max-h-full w-full flex flex-col overflow-hidden",children:[(t||n)&&o.jsxs("div",{className:"flex flex-shrink-0 items-center justify-between p-4 border-b border-border",children:[t&&o.jsx("div",{className:"text-lg font-semibold text-foreground",children:t}),n&&o.jsx("button",{type:"button",onClick:e,className:"text-muted-foreground hover:text-foreground transition-colors ml-auto","aria-label":"Close",children:o.jsx(ot,{className:"h-5 w-5"})})]}),o.jsx("div",{className:"p-6 overflow-y-auto",children:s})]})})]})}const Zp=[{keys:["Ctrl","H"],description:"Navigate to left sidebar (sessions)",category:"Navigation"},{keys:["Ctrl","L"],description:"Navigate to right sidebar (git)",category:"Navigation"},{keys:["Ctrl","/"],description:"Toggle left sidebar collapse/expand",category:"Navigation"},{keys:["Ctrl","\\"],description:"Toggle right sidebar collapse/expand",category:"Navigation"},{keys:["Ctrl","N"],description:"Create new session",category:"Navigation"},{keys:["ESC"],description:"Close sidebar and return to center",category:"Navigation"},{keys:["J"],description:"Navigate to next item (in focused list)",category:"List Navigation"},{keys:["K"],description:"Navigate to previous item (in focused list)",category:"List Navigation"},{keys:["Enter"],description:"Select focused item and return to input",category:"List Navigation"},{keys:["Space"],description:"Toggle stage/unstage for focused file (git panel)",category:"Git Operations"},{keys:["A"],description:"Stage all unstaged files",category:"Git Operations"},{keys:["U"],description:"Unstage all staged files",category:"Git Operations"},{keys:["C"],description:"Open commit modal (if files are staged)",category:"Git Operations"},{keys:["Tab"],description:"Toggle plan mode",category:"Chat"},{keys:["Enter"],description:"Send message",category:"Chat"},{keys:["Shift","Enter"],description:"New line in message",category:"Chat"},{keys:["@"],description:"Mention file (opens file picker)",category:"Chat"},{keys:["/"],description:"Slash command (opens command menu)",category:"Chat"}],Xp=[{keys:["i"],description:"Enter insert mode at cursor (vim mode)",category:"Vim Mode"},{keys:["a"],description:"Enter insert mode after cursor (vim mode)",category:"Vim Mode"},{keys:["I"],description:"Enter insert mode at line start (vim mode)",category:"Vim Mode"},{keys:["A"],description:"Enter insert mode at line end (vim mode)",category:"Vim Mode"},{keys:["o"],description:"New line below and enter insert mode (vim mode)",category:"Vim Mode"},{keys:["O"],description:"New line above and enter insert mode (vim mode)",category:"Vim Mode"},{keys:["ESC"],description:"Return to normal mode (vim mode)",category:"Vim Mode"},{keys:["Enter"],description:"Send message in normal mode (vim mode)",category:"Vim Mode"},{keys:["w"],description:"Jump to next word start (vim mode)",category:"Vim Mode"},{keys:["e"],description:"Jump to next word end (vim mode)",category:"Vim Mode"},{keys:["b"],description:"Jump to previous word start (vim mode)",category:"Vim Mode"},{keys:["x"],description:"Delete character under cursor (vim mode)",category:"Vim Mode"},{keys:["s"],description:"Delete character and enter insert mode (vim mode)",category:"Vim Mode"},{keys:["S"],description:"Delete line and enter insert mode (vim mode)",category:"Vim Mode"},{keys:["f","{char}"],description:"Find and jump to next character on line (vim mode)",category:"Vim Mode"},{keys:["d","d"],description:"Delete current line (vim mode)",category:"Vim Mode"},{keys:["0"],description:"Jump to line start (vim mode)",category:"Vim Mode"},{keys:["$"],description:"Jump to line end (vim mode)",category:"Vim Mode"}],$p=[{command:"/models",description:"Open model selector"},{command:"/agents",description:"Open agent selector"},{command:"/new",description:"Create new session"},{command:"/help",description:"Show keyboard shortcuts and help (this modal)"},{command:"/compact",description:"Compact conversation to reduce context size"},{command:"/init",description:"Generate AGENTS.md and focused .agents docs for the repo"}];function Af(A){const e={};for(const t of A)e[t.category]||(e[t.category]=[]),e[t.category].push(t);return e}function ef({isOpen:A,onClose:e}){const t=[...Zp,...Xp],s=Af(t),n=m.useRef(null),r=m.useRef(null);return m.useEffect(()=>{A?(r.current=document.activeElement,r.current&&r.current.blur()):r.current&&(r.current.focus(),r.current=null)},[A]),m.useEffect(()=>{if(!A)return;const i=a=>{const g=a.target;if(!(g.tagName==="INPUT"||g.tagName==="TEXTAREA"||g.isContentEditable))if(a.key==="j"){a.preventDefault();const B=n.current;B&&B.scrollBy({top:100,behavior:"smooth"})}else if(a.key==="k"){a.preventDefault();const B=n.current;B&&B.scrollBy({top:-100,behavior:"smooth"})}else a.key==="Enter"&&(a.preventDefault(),e())};return document.addEventListener("keydown",i),()=>document.removeEventListener("keydown",i)},[A,e]),o.jsx(So,{isOpen:A,onClose:e,title:o.jsxs("div",{className:"flex items-center gap-2",children:[o.jsx(qQ,{className:"w-5 h-5"}),o.jsx("span",{children:"Keyboard Shortcuts & Help"})]}),maxWidth:"2xl",closeOnEscape:!0,closeOnBackdropClick:!0,children:o.jsxs("div",{ref:n,className:"space-y-6 max-h-[70vh] overflow-y-auto",children:[Object.entries(s).map(([i,a])=>o.jsxs("div",{children:[o.jsxs("h3",{className:"text-sm font-semibold text-foreground mb-3 flex items-center gap-2",children:[o.jsx(Og,{className:"w-4 h-4"}),i]}),o.jsx("div",{className:"space-y-2",children:a.map((g,l)=>o.jsxs("div",{className:"flex items-center justify-between py-2 px-3 rounded-lg bg-accent/50 hover:bg-accent transition-colors",children:[o.jsx("span",{className:"text-sm text-foreground",children:g.description}),o.jsx("div",{className:"flex items-center gap-1",children:g.keys.map(B=>o.jsxs("span",{className:"flex items-center gap-1",children:[o.jsx("kbd",{className:"px-2 py-1 text-xs font-mono bg-background border border-border rounded shadow-sm",children:B}),g.keys.indexOf(B)<g.keys.length-1&&o.jsx("span",{className:"text-muted-foreground",children:"+"})]},B))})]},`${i}-${g.description}`))})]},i)),o.jsxs("div",{children:[o.jsxs("h3",{className:"text-sm font-semibold text-foreground mb-3 flex items-center gap-2",children:[o.jsx(Og,{className:"w-4 h-4"}),"Slash Commands"]}),o.jsx("div",{className:"space-y-2",children:$p.map((i,a)=>o.jsxs("div",{className:"flex items-center justify-between py-2 px-3 rounded-lg bg-accent/50 hover:bg-accent transition-colors",children:[o.jsx("span",{className:"text-sm text-foreground",children:i.description}),o.jsx("kbd",{className:"px-2 py-1 text-xs font-mono bg-background border border-border rounded shadow-sm",children:i.command})]},i.command))})]}),o.jsx("div",{className:"pt-4 border-t border-border",children:o.jsxs("p",{className:"text-xs text-muted-foreground",children:[o.jsx("strong",{children:"Tip:"})," Shortcuts are disabled when typing in input fields. Press ",o.jsx("kbd",{className:"text-xs",children:"ESC"})," to close popups and return focus to chat input."]})})]})})}const tf=`<svg width="24" height="24" viewBox="0 0 40 40" xmlns="http://www.w3.org/2000/svg">
|
|
40
|
+
<path d="M26.9568 9.88184H22.1265L30.7753 31.7848H35.4917L26.9568 9.88184ZM13.028 9.88184L4.4917 31.7848H9.32203L11.2305 27.1793H20.2166L22.0126 31.6724H26.8444L18.0832 9.88184H13.028ZM12.5783 23.1361L15.4987 15.3853L18.5315 23.1361H12.5783Z" fill="currentColor"/>
|
|
41
|
+
</svg>`,of=`<svg width="24" height="24" viewBox="0 0 40 40" xmlns="http://www.w3.org/2000/svg">
|
|
42
|
+
<path d="M32.8377 17.282C33.2127 16.25 33.3072 15.218 33.2127 14.1875C33.1197 13.1571 32.7447 12.1251 32.2752 11.1876C31.4322 9.78209 30.2127 8.6571 28.8072 8.0001C27.3072 7.34461 25.7127 7.15711 24.1197 7.53211C23.3698 6.78212 22.5253 6.12512 21.5878 5.65713C20.6503 5.18913 19.5253 5.00013 18.4948 5.00013C16.8851 4.99074 15.3125 5.48246 13.9948 6.40712C12.6824 7.34311 11.7449 8.6571 11.2754 10.1571C10.1504 10.4376 9.21289 10.9071 8.27539 11.4696C7.4324 12.1251 6.77541 12.9696 6.21291 13.8126C5.36992 15.2195 5.08792 16.8125 5.27542 18.407C5.46399 19.9968 6.11605 21.496 7.1504 22.718C6.79608 23.7086 6.66795 24.7659 6.77541 25.8124C6.86991 26.8444 7.2449 27.8749 7.7129 28.8124C8.55739 30.2194 9.77538 31.3444 11.1824 31.9999C12.6824 32.6569 14.2753 32.8444 15.8698 32.4694C16.6198 33.2194 17.4628 33.8749 18.4003 34.3444C19.3378 34.8139 20.4628 34.9999 21.4948 34.9999C23.1043 35.0097 24.6769 34.5185 25.9947 33.5944C27.3072 32.6569 28.2447 31.3444 28.7127 29.8444C29.7719 29.6432 30.7682 29.1934 31.6197 28.5319C32.4627 27.8749 33.2127 27.1249 33.6822 26.1874C34.5251 24.7819 34.8071 23.1875 34.6196 21.5945C34.4322 20 33.8697 18.5015 32.8377 17.282ZM21.5878 33.0304C20.0878 33.0304 18.9628 32.5609 17.9323 31.7179C17.9323 31.7179 18.0253 31.6234 18.1198 31.6234L24.1197 28.1554C24.2862 28.0803 24.4196 27.9469 24.4947 27.7804C24.5698 27.636 24.6021 27.4731 24.5877 27.3109V18.875L27.1197 20.375V27.3124C27.1455 28.0547 27.0215 28.7945 26.755 29.4878C26.4885 30.181 26.085 30.8134 25.5687 31.3473C25.0523 31.8811 24.4337 32.3054 23.7497 32.5949C23.0658 32.8843 22.3305 33.0314 21.5878 33.0304ZM9.49488 27.8749C8.83789 26.7499 8.55739 25.4374 8.83789 24.125C8.83789 24.125 8.93239 24.2195 9.02539 24.2195L15.0253 27.6874C15.1693 27.7638 15.3325 27.7966 15.4948 27.7819C15.6823 27.7819 15.8698 27.7819 15.9628 27.6874L23.2753 23.4695V26.3749L17.1823 29.9374C16.5506 30.3042 15.8527 30.5427 15.1287 30.6393C14.4046 30.7358 13.6686 30.6884 12.9629 30.4999C11.4629 30.1249 10.2449 29.1874 9.49488 27.8749ZM7.9004 14.8445C8.56239 13.7234 9.58826 12.8627 10.8074 12.4056V19.532C10.8074 19.718 10.8074 19.907 10.9004 20C10.9755 20.1665 11.1089 20.2998 11.2754 20.375L18.5878 24.5944L16.0573 26.0944L10.0574 22.625C9.41842 22.2639 8.85742 21.7797 8.40684 21.2004C7.95627 20.6211 7.62506 19.9582 7.4324 19.25C7.05741 17.8445 7.1504 16.157 7.9004 14.8445ZM28.6197 19.625L21.3073 15.407L23.8377 13.9071L29.8377 17.375C30.7752 17.9375 31.5252 18.6875 31.9947 19.625C32.4642 20.5625 32.7447 21.5945 32.6502 22.7195C32.5603 23.7755 32.1699 24.7837 31.5252 25.6249C30.8697 26.4694 30.0252 27.1249 28.9947 27.4999V20.375C28.9947 20.1875 28.9947 20 28.9002 19.907C28.9002 19.907 28.8072 19.718 28.6197 19.625ZM31.1502 15.875C31.1502 15.875 31.0572 15.782 30.9627 15.782L24.9627 12.3126C24.7752 12.2196 24.6822 12.2196 24.4947 12.2196C24.3072 12.2196 24.1197 12.2196 24.0252 12.3126L16.7128 16.532V13.6251L22.8073 10.0626C23.7448 9.50009 24.7752 9.31259 25.9002 9.31259C26.9322 9.31259 27.9627 9.68759 28.9002 10.3446C29.7447 11.0001 30.4947 11.8446 30.8697 12.7821C31.2447 13.7196 31.3377 14.8445 31.1502 15.875ZM15.4003 21.125L12.8699 19.625V12.5946C12.8699 11.5626 13.1503 10.4376 13.7128 9.59459C14.2753 8.6571 15.1198 8.0001 16.0573 7.53211C17.0127 7.05249 18.0956 6.88812 19.1503 7.06261C20.1823 7.15711 21.2128 7.62511 22.0573 8.2821C22.0573 8.2821 21.9628 8.3751 21.8698 8.3751L15.8698 11.8446C15.7033 11.9197 15.57 12.0531 15.4948 12.2196C15.4003 12.4071 15.4003 12.5001 15.4003 12.6876V21.125ZM16.7128 18.125L19.9948 16.25L23.2753 18.125V21.875L19.9948 23.75L16.7128 21.875V18.125Z" fill="currentColor"/>
|
|
43
|
+
</svg>`,sf=`<svg width="24" height="24" viewBox="0 0 40 40" xmlns="http://www.w3.org/2000/svg">
|
|
44
|
+
<path d="M37 20.034C27.8809 20.5837 20.5808 27.8809 20.0326 37H19.966C19.4163 27.8809 12.1177 20.5837 3 20.034V19.9674C12.1191 19.4163 19.4163 12.1191 19.966 3H20.0326C20.5822 12.1191 27.8809 19.4163 37 19.9674V20.034Z" fill="currentColor"/>
|
|
45
|
+
</svg>`,Ca=`<svg width="24" height="24" viewBox="0 0 40 40" xmlns="http://www.w3.org/2000/svg">
|
|
46
|
+
<path fill-rule="evenodd" clip-rule="evenodd" d="M12.1766 4.57738C12.7424 4.45248 13.3253 4.4821 13.8719 4.64802C14.3313 4.78771 14.7467 5.0176 15.1232 5.32158C15.7506 5.82452 16.2805 6.54484 16.6847 7.39778C17.0911 8.25589 17.3555 9.20672 17.4555 10.1602C18.7946 9.57485 20.2806 9.21797 21.8134 9.11449L21.9219 9.10819C23.7727 8.99312 25.6026 9.25154 27.1981 9.88772C27.4129 9.97483 27.6238 10.0679 27.8301 10.1665C27.9364 9.23136 28.196 8.30283 28.5958 7.46464C28.9999 6.60982 29.5307 5.89059 30.1561 5.38591C30.5055 5.09396 30.9329 4.86411 31.4086 4.71235C31.9551 4.54805 32.5357 4.5182 33.1014 4.64297C33.9545 4.83037 34.6868 5.24855 35.2633 5.85515C35.3459 5.94188 35.4243 6.03325 35.5005 6.12759V15.9511C35.3966 15.8807 35.2901 15.8126 35.18 15.748C33.9142 15.0017 32.2379 14.6416 30.117 14.7452C29.8396 14.7591 29.5632 14.7076 29.3236 14.5989C29.084 14.4902 28.8918 14.3286 28.7724 14.1347C28.1043 13.0417 27.1301 12.2596 25.9154 11.7747C24.7492 11.325 23.443 11.1355 22.1451 11.2285C19.4969 11.3914 17.161 12.5451 16.4653 13.9998C16.3668 14.2045 16.1901 14.3819 15.9582 14.5068C15.7263 14.6316 15.4499 14.6982 15.1673 14.6986C12.8978 14.7019 11.1405 15.1127 9.85572 15.854C8.74521 16.4951 7.98775 17.3916 7.58779 18.4649C7.22593 19.4754 7.17595 20.5375 7.44274 21.5654C7.68101 22.4825 8.14742 23.2424 8.68139 23.6517L8.69905 23.6631C9.14965 24.0034 9.24462 24.5344 8.92988 24.9534C8.16414 25.9759 7.59183 27.5 7.49823 28.9645C7.39192 30.6379 7.89443 32.0911 9.02827 33.1334L9.06232 33.1649C9.23327 33.3188 9.34304 33.5076 9.37893 33.7085C9.41476 33.9096 9.37497 34.1146 9.26414 34.2988C9.01373 34.7141 8.79967 35.1146 8.61959 35.4996H5.70206C5.88367 35.0312 6.10757 34.5494 6.37562 34.0555L6.40463 33.9973L6.38824 33.9785C5.81212 33.3209 5.38162 32.5935 5.11552 31.8266L5.10543 31.7951C4.78254 30.8384 4.65491 29.8484 4.72828 28.8612C4.82189 27.3653 5.31963 25.8324 6.05146 24.6028L6.07795 24.5599L6.0729 24.5573C5.4496 23.8702 4.98861 22.99 4.73333 22.0169L4.72198 21.9779C4.37027 20.6205 4.43825 19.2181 4.92001 17.8847C5.47739 16.3806 6.5735 15.0886 8.18819 14.1549C8.31563 14.0811 8.44921 14.0069 8.58301 13.9379C8.24476 11.4838 8.33005 9.45005 8.82141 7.90485C9.09153 7.05352 9.48977 6.34345 10.0172 5.78955C10.5916 5.18463 11.3236 4.76644 12.1766 4.57738ZM12.8767 6.64096C12.6303 6.7238 12.4193 6.8594 12.27 7.03199L12.2599 7.04208C11.9664 7.35278 11.7109 7.80949 11.5195 8.4094C11.1578 9.54695 11.0601 11.091 11.2558 12.9831C12.1706 12.7727 13.1684 12.641 14.2427 12.5933L14.2642 12.5908L14.3045 12.5353C14.4022 12.4008 14.5061 12.271 14.6186 12.143C14.8802 10.8758 14.6661 9.36166 14.0813 8.12559C13.7963 7.52741 13.4494 7.05655 13.1176 6.78855C13.0491 6.73286 12.972 6.68361 12.8893 6.64096L12.883 6.63719L12.8767 6.64096ZM32.3963 6.70403C32.3135 6.74667 32.2365 6.79719 32.1679 6.85288C31.8361 7.12084 31.4873 7.5929 31.2043 8.19118C30.5875 9.49635 30.3808 11.1109 30.7149 12.4193L30.8385 12.5782L30.8549 12.6009H30.9192C31.975 12.6011 33.0258 12.7194 34.0385 12.9503C34.2214 11.1026 34.1192 9.59119 33.7661 8.47499C33.5745 7.87507 33.3189 7.41836 33.0231 7.10767L33.0143 7.09758C32.8652 6.92452 32.6555 6.78729 32.4088 6.70403L32.4 6.70278L32.3963 6.70403Z" fill="currentColor"/>
|
|
47
|
+
<path d="M21.5208 22.8469C21.7175 22.8312 21.9155 22.876 22.0695 22.9718L22.5262 23.2555L22.9941 22.9692C23.1476 22.8755 23.343 22.8314 23.5378 22.8469C23.7324 22.8626 23.912 22.9364 24.0373 23.0525L24.046 23.0601C24.3009 23.3081 24.2473 23.6677 23.9262 23.8648L23.3057 24.2432V24.9761C23.3045 25.1391 23.2194 25.295 23.0698 25.41C22.92 25.5248 22.717 25.5894 22.5059 25.5891C22.2946 25.5895 22.0908 25.5249 21.9408 25.41C21.7912 25.295 21.706 25.1391 21.705 24.9761V24.2205L21.1285 23.8623C21.0527 23.8153 20.9899 23.7567 20.9432 23.6907C20.8964 23.6247 20.8663 23.5512 20.8561 23.4763C20.8459 23.4017 20.8551 23.3262 20.8826 23.2542C20.9103 23.182 20.9572 23.1146 21.0188 23.0562C21.1443 22.9384 21.3244 22.8627 21.5208 22.8469Z" fill="currentColor"/>
|
|
48
|
+
<path fill-rule="evenodd" clip-rule="evenodd" d="M22.6284 19.5913C24.6195 19.5913 26.4584 20.1055 27.8327 20.9965C29.1727 21.8626 29.9705 23.0264 29.9707 24.1853C29.9707 25.6448 29.1066 26.7822 27.5602 27.5089C26.2412 28.1253 24.4732 28.4247 22.4479 28.4247C20.3014 28.4247 18.4671 27.9996 17.1439 27.2188C15.8314 26.4461 15.0955 25.3604 15.0955 24.1853C15.0957 23.0232 15.9423 21.8558 17.3419 20.9864C18.763 20.1036 20.6394 19.5914 22.6284 19.5913ZM22.6284 21.0634C21.1527 21.0534 19.716 21.4302 18.5529 22.1317C17.5721 22.7399 17.0165 23.5056 17.0165 24.1877C17.0168 24.8911 17.4639 25.5495 18.3144 26.0508C19.2825 26.6211 20.7055 26.9526 22.4479 26.9526C24.1473 26.9526 25.581 26.7109 26.5575 26.2525C27.5425 25.7922 28.0472 25.1239 28.0472 24.1853C28.0469 23.4898 27.5235 22.7218 26.5941 22.1203C25.5644 21.4547 24.1684 21.0634 22.6284 21.0634Z" fill="currentColor"/>
|
|
49
|
+
<path d="M13.3142 19.8978C14.331 19.8978 15.1595 20.54 15.1595 21.3308C15.1599 21.7093 14.9655 22.0727 14.6197 22.3411C14.2735 22.6095 13.8033 22.7614 13.3129 22.7624C12.8231 22.7611 12.3531 22.6091 12.0074 22.3411C11.6621 22.0731 11.4676 21.7101 11.4675 21.332C11.4664 20.9532 11.6605 20.5891 12.0061 20.3204C12.3519 20.0516 12.8239 19.8994 13.3142 19.8978Z" fill="currentColor"/>
|
|
50
|
+
<path d="M31.8364 19.8978C32.8574 19.8978 33.683 20.54 33.683 21.3308C33.6834 21.7095 33.4892 22.0727 33.1431 22.3411C32.7968 22.6095 32.3267 22.7615 31.8364 22.7624C31.3466 22.7611 30.8779 22.6091 30.5321 22.3411C30.1866 22.0731 29.9923 21.7104 29.9922 21.332C29.991 20.9532 30.184 20.5891 30.5295 20.3204C30.8753 20.0516 31.3458 19.8992 31.8364 19.8978Z" fill="currentColor"/>
|
|
51
|
+
</svg>`,rf=`<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
52
|
+
<path d="M3.10913 12.07C3.65512 12.07 5.76627 11.5988 6.85825 10.98C7.95023 10.3612 7.95023 10.3612 10.207 8.75965C13.0642 6.73196 15.0845 7.41088 18.3968 7.41088" fill="currentColor"/>
|
|
53
|
+
<path d="M3.10913 12.07C3.65512 12.07 5.76627 11.5988 6.85825 10.98C7.95023 10.3612 7.95023 10.3612 10.207 8.75965C13.0642 6.73196 15.0845 7.41088 18.3968 7.41088" stroke="currentColor" stroke-width="3.27593"/>
|
|
54
|
+
<path d="M21.6 7.43108L16.0037 10.6622V4.20001L21.6 7.43108Z" fill="currentColor" stroke="currentColor" stroke-width="0.0363992"/>
|
|
55
|
+
<path d="M3 12.072C3.54599 12.072 5.65714 12.5432 6.74912 13.162C7.8411 13.7808 7.8411 13.7808 10.0978 15.3823C12.9551 17.41 14.9753 16.7311 18.2877 16.7311" fill="currentColor"/>
|
|
56
|
+
<path d="M3 12.072C3.54599 12.072 5.65714 12.5432 6.74912 13.162C7.8411 13.7808 7.8411 13.7808 10.0978 15.3823C12.9551 17.41 14.9753 16.7311 18.2877 16.7311" stroke="currentColor" stroke-width="3.27593"/>
|
|
57
|
+
<path d="M21.4909 16.7109L15.8945 13.4798V19.942L21.4909 16.7109Z" fill="currentColor" stroke="currentColor" stroke-width="0.0363992"/>
|
|
58
|
+
</svg>`,nf=`<svg width="24" height="24" viewBox="0 0 40 40" xmlns="http://www.w3.org/2000/svg">
|
|
59
|
+
<path d="M20.056 4.50022C14.0839 4.44597 9.20616 9.15015 9.15036 15.0106C9.09611 20.8726 13.8855 25.6621 19.8576 25.7163H23.6085V21.7391H20.056C16.3252 21.7825 13.2671 18.8468 13.2237 15.1827C13.1787 11.5216 16.1702 8.52086 19.901 8.47746H20.056C23.7868 8.47746 26.8108 11.4457 26.8216 15.1083V24.8809C26.8216 28.5109 23.8085 31.4683 20.1211 31.5132C18.3617 31.5007 16.6759 30.8049 15.42 29.5726L12.551 32.3905C14.5529 34.3571 17.239 35.4715 20.0451 35.4998H20.1877C26.0823 35.413 30.8175 30.7212 30.85 24.9351V14.8603C30.7059 9.0928 25.9165 4.50022 20.056 4.50022Z" fill="currentColor"/>
|
|
60
|
+
</svg>`,af=`<svg width="24" height="24" viewBox="0 0 40 40" xmlns="http://www.w3.org/2000/svg">
|
|
61
|
+
<path d="M35.6638 9.91965C35.3251 9.75432 35.1785 10.0703 34.9811 10.2316C34.9131 10.2836 34.8558 10.3516 34.7985 10.413C34.3025 10.9423 33.7238 11.289 32.9678 11.2476C31.8625 11.1863 30.9186 11.533 30.0839 12.3783C29.9066 11.3356 29.3173 10.7143 28.4213 10.3143C27.9519 10.1063 27.4773 9.89965 27.148 9.44766C26.9186 9.12633 26.856 8.76767 26.7413 8.41568C26.668 8.20235 26.5946 7.98502 26.3506 7.94902C26.084 7.90769 25.98 8.13035 25.876 8.31702C25.4587 9.07967 25.2973 9.91965 25.3133 10.7703C25.3493 12.6849 26.1573 14.2102 27.764 15.2942C27.9466 15.4182 27.9933 15.5435 27.9359 15.7249C27.8266 16.0982 27.696 16.4609 27.5813 16.8355C27.508 17.0742 27.3986 17.1248 27.1426 17.0222C26.2777 16.6504 25.4919 16.1164 24.828 15.4489C23.6854 14.3449 22.6534 13.1263 21.3654 12.1716C21.067 11.9511 20.7606 11.7416 20.4468 11.5436C19.1335 10.2676 20.6201 9.21967 20.9641 9.09567C21.3241 8.965 21.0881 8.51968 19.9254 8.52501C18.7628 8.53035 17.6988 8.91834 16.3428 9.43699C16.1413 9.51421 15.934 9.57529 15.7229 9.61966C14.4557 9.38091 13.1598 9.33506 11.8789 9.48366C9.36565 9.76365 7.35902 10.953 5.88305 12.9809C4.10975 15.4182 3.69243 18.1888 4.20308 21.0768C4.74041 24.122 6.29504 26.6433 8.683 28.6139C11.1603 30.6579 14.0122 31.6592 17.2668 31.4672C19.2428 31.3539 21.4441 31.0886 23.9254 28.9873C24.552 29.2993 25.208 29.4233 26.2986 29.5166C27.1386 29.5953 27.9466 29.4766 28.5719 29.3459C29.5519 29.1379 29.4839 28.23 29.1306 28.0646C26.2573 26.726 26.888 27.2713 26.3133 26.83C27.7746 25.102 29.9746 23.3074 30.8359 17.4928C30.9026 17.0302 30.8452 16.7395 30.8359 16.3662C30.8306 16.1395 30.8826 16.0502 31.1426 16.0249C31.8639 15.95 32.5637 15.7349 33.2025 15.3915C35.0638 14.3742 35.8158 12.7049 35.9931 10.7023C36.0198 10.3956 35.9878 10.081 35.6638 9.91965ZM19.4414 27.9433C16.6562 25.754 15.3055 25.0327 14.7482 25.0634C14.2256 25.0954 14.3202 25.6913 14.4349 26.0807C14.5549 26.4647 14.7109 26.7286 14.9295 27.066C15.0815 27.2886 15.1855 27.6206 14.7789 27.87C13.8816 28.4246 12.3229 27.6833 12.2496 27.6473C10.435 26.578 8.91632 25.1673 7.84834 23.2381C6.81637 21.3808 6.21638 19.3888 6.11771 17.2622C6.09105 16.7475 6.24171 16.5662 6.7537 16.4729C7.42583 16.3442 8.11451 16.3267 8.79233 16.4209C11.6349 16.8368 14.0536 18.1075 16.0828 20.1194C17.2402 21.2661 18.1161 22.6354 19.0188 23.974C19.9788 25.3953 21.0108 26.75 22.3254 27.8593C22.7894 28.2486 23.1587 28.5446 23.5134 28.7619C22.4441 28.8819 20.6601 28.9086 19.4414 27.9433ZM20.7748 19.3568C20.7745 19.2906 20.7904 19.2253 20.8211 19.1666C20.8517 19.1078 20.8962 19.0575 20.9507 19.0198C21.0052 18.9821 21.068 18.9583 21.1337 18.9503C21.1995 18.9424 21.2662 18.9505 21.3281 18.9741C21.407 19.0024 21.475 19.0546 21.5228 19.1235C21.5706 19.1923 21.5958 19.2743 21.5947 19.3581C21.5949 19.4123 21.5843 19.4659 21.5636 19.5159C21.5428 19.5659 21.5123 19.6113 21.4738 19.6494C21.4354 19.6875 21.3897 19.7176 21.3395 19.7378C21.2893 19.7581 21.2356 19.7682 21.1814 19.7675C21.1277 19.7676 21.0745 19.7571 21.0248 19.7365C20.9752 19.7158 20.9302 19.6855 20.8925 19.6473C20.8548 19.609 20.825 19.5636 20.805 19.5138C20.785 19.4639 20.7739 19.4105 20.7748 19.3568ZM24.9213 21.4848C24.6547 21.5928 24.3893 21.6861 24.1347 21.6981C23.7516 21.7114 23.3756 21.5918 23.0707 21.3594C22.7054 21.0528 22.4441 20.8821 22.3347 20.3488C22.297 20.0881 22.3042 19.823 22.3561 19.5648C22.4494 19.1288 22.3454 18.8488 22.0374 18.5955C21.7881 18.3875 21.4694 18.3302 21.1201 18.3302C21.0005 18.3232 20.8843 18.2875 20.7814 18.2262C20.6348 18.1542 20.5148 17.9728 20.6294 17.7488C20.6668 17.6768 20.8428 17.5008 20.8854 17.4688C21.3601 17.1995 21.9081 17.2875 22.4134 17.4902C22.8827 17.6822 23.2374 18.0342 23.748 18.5328C24.2694 19.1341 24.364 19.3008 24.6613 19.7515C24.896 20.1048 25.1093 20.4674 25.2547 20.8821C25.344 21.1421 25.2293 21.3541 24.9213 21.4848Z" fill="currentColor"/>
|
|
62
|
+
</svg>`,gf=`<svg width="24" height="24" viewBox="0 0 40 40" xmlns="http://www.w3.org/2000/svg">
|
|
63
|
+
<path d="M12.4579 15.6036L26.1529 35H20.0656L6.37059 15.6036H12.4579ZM12.4524 26.3764L15.4974 30.6909L12.4551 35H6.36377L12.4524 26.3764ZM33.6365 7.15727V35H28.647V14.2236L33.6365 7.15727ZM33.6365 5L20.0656 24.2205L17.0206 19.9073L27.5451 5H33.6365Z" fill="currentColor"/>
|
|
64
|
+
</svg>`,wl=`<svg width="24" height="24" viewBox="0 0 40 40" xmlns="http://www.w3.org/2000/svg">
|
|
65
|
+
<path d="M20.1312 7.50002L17.4088 11.1913H5.81625L8.5375 7.50002H20.1325H20.1312ZM34.0675 28.81L31.3475 32.5H19.795L22.5125 28.81H34.0675ZM35 7.50002L16.58 32.5H5L23.42 7.50002H35Z" fill="currentColor"/>
|
|
66
|
+
</svg>`,lf=`<svg width="24" height="24" viewBox="0 0 100 100" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
67
|
+
<path d="M55.0151 11H45.7732C42.9871 11 41.594 11 40.5458 11.7564C39.4977 12.5128 39.0587 13.8349 38.1807 16.479L28.4934 45.6545C26.899 50.4561 26.1019 52.8569 27.2993 54.5162C28.4967 56.1754 31.0264 56.1754 36.0858 56.1754H38.1307C41.9554 56.1754 43.8677 56.1754 45.0206 57.2527C45.2855 57.5002 45.5155 57.7825 45.7043 58.092C46.5262 59.4389 46.1395 61.3117 45.3662 65.0574C42.291 79.9519 40.7534 87.3991 43.0079 88.8933C43.4871 89.2109 44.0292 89.4215 44.5971 89.5107C47.2691 89.9303 51.1621 83.398 58.9481 70.3336L70.7118 50.5949C72.8831 46.9517 73.9687 45.13 73.6853 43.639C73.5201 42.7697 73.0712 41.9797 72.4091 41.3927C71.2734 40.386 69.1528 40.386 64.9115 40.386C61.2258 40.386 59.3829 40.386 58.2863 39.5068C57.6438 38.9916 57.176 38.2907 56.9467 37.4998C56.5553 36.1498 57.2621 34.4479 58.6757 31.044L62.4033 22.0683C64.4825 17.0618 65.5221 14.5585 64.3345 12.7793C63.1468 11 60.4362 11 55.0151 11Z" fill="currentColor"/>
|
|
68
|
+
</svg>`,Qf=`<svg width="24" height="24" viewBox="0 0 40 40" xmlns="http://www.w3.org/2000/svg">
|
|
69
|
+
<path d="M6 32V12L13 22L20 12V32H17V20L13 26L9 20V32H6ZM22 32V12L29 22L36 12V32H33V20L29 26L25 20V32H22Z" fill="currentColor"/>
|
|
70
|
+
</svg>`,Bf=`<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
71
|
+
<path opacity="0.2" d="M19.2002 17.4H8.40017V13.8H15.6002V10.2H19.2002V17.4ZM8.40017 13.8H4.80017V10.2H8.40017V13.8Z" fill="currentColor"/>
|
|
72
|
+
<path d="M8.40005 17.4H19.2001V21H4.80005V13.8H8.40005V17.4ZM15.6001 10.2V13.8H8.40005V10.2H15.6001ZM19.2001 10.2H15.6001V6.6H4.80005V3H19.2001V10.2Z" fill="currentColor"/>
|
|
73
|
+
</svg>`,cf=`<svg width="24" height="24" viewBox="0 0 40 40" xmlns="http://www.w3.org/2000/svg">
|
|
74
|
+
<path d="M35.3993 26.4544C34.2871 28.3855 27.8314 32.9425 20 32.9425C12.1686 32.9425 5.71288 28.3855 4.60075 26.4544C4.5427 26.3532 4.50826 26.2401 4.5 26.1237V22.418C4.51199 22.3209 4.53496 22.2256 4.56846 22.1338C5.04896 20.9261 6.30833 19.1733 7.93325 18.7031C8.14896 18.149 8.468 17.3404 8.76508 16.7437C8.71727 16.2776 8.69485 15.8094 8.69792 15.3409C8.69792 13.6217 9.06217 12.113 10.1601 10.9906C10.6729 10.4662 11.3097 10.0644 12.064 9.76091C13.871 8.29357 16.4453 7.05745 19.9716 7.05745C23.4978 7.05745 26.129 8.29357 27.936 9.76091C28.6903 10.0644 29.3271 10.4662 29.8399 10.9906C30.9378 12.113 31.3021 13.6217 31.3021 15.3409C31.3021 15.8162 31.284 16.2877 31.2349 16.7437C31.532 17.3404 31.851 18.149 32.0667 18.7031C33.6917 19.1733 34.951 20.9261 35.4315 22.1338C35.4677 22.2248 35.4908 22.3205 35.5 22.418V26.1237C35.4917 26.2401 35.4573 26.3532 35.3993 26.4544ZM20.2222 18.7147H19.7778C19.6422 18.945 19.4889 19.1644 19.3193 19.3709C18.3247 20.5941 16.8419 21.2981 14.7881 21.2981C12.56 21.2981 10.9273 20.8344 9.90304 19.6719C9.86495 19.6283 9.82833 19.5835 9.79325 19.5375L9.66667 19.6719V28.1775C11.5202 29.1837 15.4972 30.992 20 30.992C24.5028 30.992 28.4798 29.1837 30.3333 28.1775V19.6719L30.2067 19.5375C30.2067 19.5375 30.1641 19.5957 30.097 19.6719C29.0727 20.8344 27.44 21.2981 25.2119 21.2981C23.1581 21.2981 21.6753 20.5941 20.6807 19.3709C20.5111 19.1644 20.3578 18.945 20.2222 18.7147ZM23.2292 22.9127C23.9383 22.9127 24.5208 23.4952 24.5208 24.2043V26.7877C24.5208 27.4968 23.9383 28.0793 23.2292 28.0793C22.52 28.0793 21.9375 27.4968 21.9375 26.7877V24.2043C21.9375 23.4952 22.52 22.9127 23.2292 22.9127ZM16.7708 22.9127C17.48 22.9127 18.0625 23.4952 18.0625 24.2043V26.7877C18.0625 27.4968 17.48 28.0793 16.7708 28.0793C16.0617 28.0793 15.4792 27.4968 15.4792 26.7877V24.2043C15.4792 23.4952 16.0617 22.9127 16.7708 22.9127ZM21.0501 14.9237C21.2258 16.289 21.5707 17.3947 22.1842 18.149C22.7551 18.8517 23.649 19.3606 25.2119 19.3606C27.2437 19.3606 28.1724 18.9253 28.6438 18.3905C29.1398 17.8287 29.3646 16.9051 29.3646 15.3409C29.3646 13.8684 29.0507 12.9552 28.454 12.3455C27.8378 11.7152 26.7502 11.2321 24.8063 11.0216C22.8856 10.8136 21.975 11.1998 21.5345 11.7049C21.187 12.1014 20.97 12.7485 20.9688 13.7431V13.7702C20.9688 14.1121 20.9959 14.4966 21.0501 14.9237ZM18.9499 14.9237C19.0041 14.4966 19.0312 14.1117 19.0312 13.7689V13.7431C19.03 12.7485 18.813 12.1014 18.4655 11.7049C18.025 11.1998 17.1144 10.8136 15.1937 11.0216C13.2498 11.2321 12.1622 11.7152 11.546 12.3455C10.9493 12.9552 10.6354 13.8684 10.6354 15.3409C10.6354 16.9051 10.8615 17.8287 11.3562 18.3905C11.8276 18.9253 12.7563 19.3606 14.7881 19.3606C16.351 19.3606 17.2449 18.8517 17.8158 18.149C18.4293 17.3947 18.7742 16.289 18.9499 14.9237Z" fill="currentColor"/>
|
|
75
|
+
</svg>`,Ef={anthropic:tf,openai:of,google:sf,ollama:Ca,"ollama-cloud":Ca,openrouter:rf,groq:nf,deepseek:af,xai:gf,zai:wl,"zai-coding":wl,ottorouter:lf,minimax:Qf,opencode:Bf,copilot:cf},eo=m.memo(function({provider:e,className:t="",size:s=16}){const n=e.toLowerCase(),r=Ef[n]??(n.includes("ollama")?Ca:void 0);return r?o.jsx("span",{className:`inline-flex items-center justify-center text-foreground/70 dark:text-foreground/80 ${t}`,style:{width:s,height:s},title:e,dangerouslySetInnerHTML:{__html:r.replace(/<svg/,`<svg width="${s}" height="${s}" style="width:${s}px;height:${s}px"`)}}):o.jsx("span",{className:`inline-flex items-center justify-center text-[10px] font-medium text-muted-foreground uppercase ${t}`,style:{width:s,height:s},title:e,children:e.slice(0,2)})});function XB(A={}){return gt({queryKey:["files",A.query??""],queryFn:async()=>await mA.searchFiles(A.query??""),enabled:A.enabled??!0,staleTime:1e4,refetchOnWindowFocus:!0,retry:1})}function Cf({enabled:A,onSend:e,textareaRef:t,setMessage:s}){const[n,r]=m.useState(A?"normal":"insert"),[i,a]=m.useState(""),g=m.useCallback((E,c)=>{for(;c<E.length&&/\S/.test(E[c]);)c++;for(;c<E.length&&/\s/.test(E[c]);)c++;return Math.min(c,E.length)},[]),l=m.useCallback((E,c)=>{for(c<E.length&&/\S/.test(E[c])&&c++;c<E.length&&/\s/.test(E[c]);)c++;for(;c<E.length&&/\S/.test(E[c]);)c++;return Math.max(0,c-1)},[]),B=m.useCallback((E,c)=>{for(c=Math.max(0,c-1);c>0&&/\s/.test(E[c]);)c--;for(;c>0&&/\S/.test(E[c-1]);)c--;return c},[]),u=m.useCallback(E=>{const c=t.current;if(!c)return!1;const d=E.key;if(d==="i")return E.preventDefault(),r("insert"),!0;if(d==="a"){E.preventDefault(),r("insert");const f=c.selectionStart;return setTimeout(()=>{c.setSelectionRange(f+1,f+1)},0),!0}if(d==="I"){E.preventDefault(),r("insert");const p=c.value.lastIndexOf(`
|
|
76
|
+
`,c.selectionStart-1)+1;return setTimeout(()=>{c.setSelectionRange(p,p)},0),!0}if(d==="A"){E.preventDefault(),r("insert");const f=c.value;let p=f.indexOf(`
|
|
77
|
+
`,c.selectionStart);return p===-1&&(p=f.length),setTimeout(()=>{c.setSelectionRange(p,p)},0),!0}if(d==="0"){E.preventDefault();const p=c.value.lastIndexOf(`
|
|
78
|
+
`,c.selectionStart-1)+1;return c.setSelectionRange(p,p),!0}if(d==="$"){E.preventDefault();const f=c.value;let p=f.indexOf(`
|
|
79
|
+
`,c.selectionStart);return p===-1&&(p=f.length),c.setSelectionRange(p,p),!0}if(d==="o"){E.preventDefault(),r("insert");const f=c.value;let p=f.indexOf(`
|
|
80
|
+
`,c.selectionStart);p===-1&&(p=f.length);const D=`${f.slice(0,p)}
|
|
81
|
+
${f.slice(p)}`;return s(D),setTimeout(()=>{c.setSelectionRange(p+1,p+1)},0),!0}if(d==="O"){E.preventDefault(),r("insert");const f=c.value,p=f.lastIndexOf(`
|
|
82
|
+
`,c.selectionStart-1)+1,D=`${f.slice(0,p)}
|
|
83
|
+
${f.slice(p)}`;return s(D),setTimeout(()=>{c.setSelectionRange(p,p)},0),!0}if(i==="f"&&d.length===1&&d!=="Escape"){E.preventDefault();const f=c.value,p=f.slice(f.lastIndexOf(`
|
|
84
|
+
`,c.selectionStart-1)+1,f.indexOf(`
|
|
85
|
+
`,c.selectionStart)===-1?f.length:f.indexOf(`
|
|
86
|
+
`,c.selectionStart)),D=c.selectionStart-f.lastIndexOf(`
|
|
87
|
+
`,c.selectionStart-1)-1,F=p.indexOf(d,D+1);if(F!==-1){const k=f.lastIndexOf(`
|
|
88
|
+
`,c.selectionStart-1)+1+F;c.setSelectionRange(k,k)}return a(""),!0}if(d==="f")return E.preventDefault(),a("f"),setTimeout(()=>a(""),2e3),!0;if(d==="d"){if(i==="d"){E.preventDefault();const f=c.value,p=f.lastIndexOf(`
|
|
89
|
+
`,c.selectionStart-1)+1;let D=f.indexOf(`
|
|
90
|
+
`,c.selectionStart);D===-1?D=f.length:D+=1;const F=f.slice(0,p)+f.slice(D);return s(F),a(""),setTimeout(()=>{c.setSelectionRange(p,p)},0),!0}return E.preventDefault(),a("d"),setTimeout(()=>a(""),1e3),!0}if(d==="Enter")return E.preventDefault(),e(),!0;if(d==="Escape")return E.preventDefault(),!0;if(d==="w"){E.preventDefault();const f=c.value,p=g(f,c.selectionStart);return c.setSelectionRange(p,p),!0}if(d==="e"){E.preventDefault();const f=c.value,p=l(f,c.selectionStart);return c.setSelectionRange(p,p),!0}if(d==="b"){E.preventDefault();const f=c.value,p=B(f,c.selectionStart);return c.setSelectionRange(p,p),!0}if(d==="x"){E.preventDefault();const f=c.value,p=c.selectionStart;if(p<f.length){const D=f.slice(0,p)+f.slice(p+1);s(D),setTimeout(()=>{c.setSelectionRange(p,p)},0)}return!0}if(d==="s"){E.preventDefault();const f=c.value,p=c.selectionStart;if(p<f.length){const D=f.slice(0,p)+f.slice(p+1);s(D),r("insert"),setTimeout(()=>{c.setSelectionRange(p,p)},0)}else r("insert");return!0}if(d==="S"){E.preventDefault();const f=c.value,p=f.lastIndexOf(`
|
|
91
|
+
`,c.selectionStart-1)+1;let D=f.indexOf(`
|
|
92
|
+
`,c.selectionStart);D===-1&&(D=f.length);const F=f.slice(0,p)+f.slice(D);return s(F),r("insert"),setTimeout(()=>{c.setSelectionRange(p,p)},0),!0}if(d==="h"){E.preventDefault();const f=c.selectionStart;return f>0&&c.setSelectionRange(f-1,f-1),!0}if(d==="l"){E.preventDefault();const f=c.selectionStart;return f<c.value.length&&c.setSelectionRange(f+1,f+1),!0}if(d==="j"){E.preventDefault();const f=c.value,p=c.selectionStart,D=f.lastIndexOf(`
|
|
93
|
+
`,p-1)+1,F=p-D,k=f.indexOf(`
|
|
94
|
+
`,p);if(k!==-1){const L=k+1;let K=f.indexOf(`
|
|
95
|
+
`,L);K===-1&&(K=f.length);const W=K-L,$=L+Math.min(F,W);c.setSelectionRange($,$)}return!0}if(d==="k"){E.preventDefault();const f=c.value,p=c.selectionStart,D=f.lastIndexOf(`
|
|
96
|
+
`,p-1)+1;if(D>0){const F=p-D,k=D-1,L=f.lastIndexOf(`
|
|
97
|
+
`,k-1)+1,K=k-L,W=L+Math.min(F,K);c.setSelectionRange(W,W)}return!0}return!1},[i,e,t,s,g,l,B]);return{vimMode:n,setVimMode:r,handleVimNormalMode:u}}function uf(){const[A,e]=m.useState(!1),[t,s]=m.useState(""),[n,r]=m.useState(0),[i,a]=m.useState(),g=m.useCallback((u,E,c)=>{const d=E.current;if(!d)return;const f=d.value,p=d.selectionStart,F=f.slice(0,p).match(/(^|[\s])@(\S*)$/);if(!F)return;const k=p-F[0].length+F[1].length,L=`${f.slice(0,k)}@${u} ${f.slice(p)}`;c(L),e(!1),setTimeout(()=>{const K=k+u.length+2;d.setSelectionRange(K,K),d.focus()},0)},[]),l=m.useCallback(u=>{a(u)},[]),B=m.useCallback((u,E)=>{const d=u.slice(0,E).match(/(^|[\s])@(\S*)$/);d?(e(!0),s(d[2]),r(0)):e(!1)},[]);return{showFileMention:A,mentionQuery:t,mentionSelectedIndex:n,currentFileToSelect:i,setShowFileMention:e,setMentionQuery:s,setMentionSelectedIndex:r,setCurrentFileToSelect:a,handleFileSelect:g,handleEnterSelect:l,checkForMention:B}}function If({onCommand:A,onSendCommandMessage:e,updatePreferences:t,updateReasoningText:s,vimModeEnabled:n,reasoningEnabled:r,textareaRef:i,setMessage:a,setShowShortcutsModal:g,sessionId:l}){const[B,u]=m.useState(!1),[E,c]=m.useState(""),[d,f]=m.useState(0),[p,D]=m.useState(),F=m.useCallback(async K=>{const W=()=>{a(""),u(!1),i.current&&(i.current.style.height="auto"),i.current?.focus()};if(K==="help"){g(!0),W();return}if(K==="vim"){t({vimMode:!n}),W();return}if(K==="reasoning"){s(!r),W();return}if(K==="stop"){if(l)try{await mA.abortSession(l)}catch($){console.error("Failed to stop generation:",$)}W();return}if(ZB(K)){const $=Wp(K);if($&&e){await e($),W();return}}A&&A(K),W()},[A,e,n,r,t,s,i,a,g,l]),k=m.useCallback(K=>{D(K)},[]),L=m.useCallback(K=>{K.startsWith("/")&&!K.includes(" ")?(u(!0),c(K.slice(1)),f(0)):u(!1)},[]);return{showCommandSuggestions:B,commandQuery:E,commandSelectedIndex:d,currentCommandToSelect:p,setShowCommandSuggestions:u,setCommandQuery:c,setCommandSelectedIndex:f,setCurrentCommandToSelect:D,handleCommandSelect:F,handleCommandEnterSelect:k,checkForCommand:L}}function df(A){return e=>{const{showFileMention:t,showCommandSuggestions:s,mentionSelectedIndex:n,commandSelectedIndex:r,currentFileToSelect:i,currentCommandToSelect:a,isPlanMode:g,vimModeEnabled:l,vimMode:B,setMentionSelectedIndex:u,setCommandSelectedIndex:E,setShowFileMention:c,setShowCommandSuggestions:d,setIsPlanMode:f,setVimMode:p,handleFileSelect:D,handleCommandSelect:F,handleSend:k,handleVimNormalMode:L,onPlanModeToggle:K}=A;if(s){const W=Wn.length;e.key==="ArrowDown"||e.ctrlKey&&e.key==="j"?(e.preventDefault(),E((r+1)%W)):e.key==="ArrowUp"||e.ctrlKey&&e.key==="k"?(e.preventDefault(),E((r-1+W)%W)):e.key==="Enter"?(e.preventDefault(),a&&F(a)):e.key==="Escape"&&(e.preventDefault(),d(!1));return}if(t){e.key==="ArrowDown"||e.ctrlKey&&e.key==="j"?(e.preventDefault(),u((n+1)%20)):e.key==="ArrowUp"||e.ctrlKey&&e.key==="k"?(e.preventDefault(),u((n-1+20)%20)):e.key==="Enter"?(e.preventDefault(),i&&D(i)):e.key==="Escape"&&(e.preventDefault(),c(!1),l&&p("normal"));return}if(!(l&&B==="normal"&&L(e))){if(l&&B==="insert"&&e.key==="Escape"){e.preventDefault(),p("normal");return}if(e.key==="Tab"){e.preventDefault();const W=!g;f(W),K?.(W)}else e.key==="Enter"&&!e.shiftKey&&(!l||B==="normal")&&(e.preventDefault(),k())}}}const Ne=dt(A=>({balance:null,usdcBalance:null,network:"mainnet",isPaymentPending:!1,lastPaymentAmount:null,walletAddress:null,isLoading:!1,isTopupModalOpen:!1,scope:null,payg:null,subscription:null,limits:null,setBalance:e=>A({balance:e}),setUsdcBalance:e=>A({usdcBalance:e}),setNetwork:e=>A({network:e}),setPaymentPending:e=>A({isPaymentPending:e}),setLastPaymentAmount:e=>A({lastPaymentAmount:e}),setWalletAddress:e=>A({walletAddress:e}),setLoading:e=>A({isLoading:e}),openTopupModal:()=>A({isTopupModalOpen:!0}),closeTopupModal:()=>A({isTopupModalOpen:!1}),setScope:e=>A({scope:e}),setPayg:e=>A({payg:e}),setSubscription:e=>A({subscription:e}),setLimits:e=>A({limits:e})}));function hf(A){if(!A)return"";if(typeof A=="string")return A;try{const e=A,t=e.cmd??e.command;if(typeof t=="string")return t;const s=e.path??e.pattern??e.query;if(typeof s=="string")return s;const n=JSON.stringify(A,null,2);return n.length>120?`${n.slice(0,120)}...`:n}catch{return String(A)}}function pf({approval:A,sessionId:e,isProcessing:t,onProcess:s}){const{removePendingApproval:n}=Sr(),r=A.toolName.replace(/_/g," "),i=hf(A.args),a=m.useCallback(async()=>{s(A.callId);try{await mA.approveToolCall(e,A.callId,!0),n(A.callId)}catch(l){console.error("Failed to approve:",l)}},[e,A.callId,n,s]),g=m.useCallback(async()=>{s(A.callId);try{await mA.approveToolCall(e,A.callId,!1),n(A.callId)}catch(l){console.error("Failed to reject:",l)}},[e,A.callId,n,s]);return o.jsxs("div",{className:"flex items-center gap-2 px-3 py-2 min-w-0",children:[o.jsx(Ya,{className:"h-3.5 w-3.5 text-amber-500 flex-shrink-0"}),o.jsx("span",{className:"text-xs font-medium text-foreground truncate",children:r}),i&&o.jsx("code",{className:"text-[11px] font-mono text-muted-foreground bg-muted/50 px-1.5 py-0.5 rounded truncate max-w-[200px]",children:i}),o.jsxs("div",{className:"flex items-center gap-1.5 ml-auto flex-shrink-0",children:[o.jsxs("button",{type:"button",onClick:g,disabled:t,title:"Reject (N)",className:"flex items-center gap-1 px-2 py-1 text-[11px] font-medium rounded border border-border bg-background hover:bg-muted transition-colors disabled:opacity-50",children:[o.jsx(ot,{className:"w-3 h-3"}),o.jsx("span",{className:"hidden sm:inline",children:"Reject"}),o.jsx("kbd",{className:"ml-0.5 text-[9px] text-muted-foreground opacity-70",children:"N"})]}),o.jsxs("button",{type:"button",onClick:a,disabled:t,title:"Approve (Y)",className:"flex items-center gap-1 px-2 py-1 text-[11px] font-medium rounded bg-amber-600 text-white hover:bg-amber-700 transition-colors disabled:opacity-50",children:[o.jsx(Ht,{className:"w-3 h-3"}),t?"...":"Approve",!t&&o.jsx("kbd",{className:"ml-0.5 text-[9px] opacity-70",children:"Y"})]})]})]})}const ff=m.memo(function({sessionId:e}){const{pendingApprovals:t,removePendingApproval:s}=Sr(),[n,r]=m.useState(null),i=m.useCallback(async()=>{try{await Promise.all(t.map(g=>mA.approveToolCall(e,g.callId,!0)));for(const g of t)s(g.callId)}catch(g){console.error("Failed to approve all:",g)}},[e,t,s]),a=t.length>0;return o.jsx("div",{className:"grid transition-[grid-template-rows,opacity] duration-200 ease-out",style:{gridTemplateRows:a?"1fr":"0fr",opacity:a?1:0},children:o.jsx("div",{className:"overflow-hidden",children:o.jsxs("div",{className:"border border-amber-200 dark:border-amber-800 border-b-0 bg-amber-50/80 dark:bg-amber-950/30 rounded-t-xl overflow-hidden -mb-1 pb-2",children:[o.jsx("div",{className:"divide-y divide-amber-200/50 dark:divide-amber-800/50",children:t.map(g=>o.jsx(pf,{approval:g,sessionId:e,isProcessing:n===g.callId,onProcess:r},g.callId))}),t.length>1&&o.jsxs("div",{className:"flex items-center justify-between gap-2 px-3 py-1.5 border-t border-amber-200 dark:border-amber-800 bg-amber-100/50 dark:bg-amber-900/20",children:[o.jsxs("span",{className:"text-[11px] text-amber-800 dark:text-amber-200",children:[t.length," tools waiting"]}),o.jsxs("button",{type:"button",onClick:i,title:"Approve All (A)",className:"flex items-center gap-1 px-2.5 py-1 text-[11px] font-medium rounded bg-amber-600 text-white hover:bg-amber-700 transition-colors",children:[o.jsx(YQ,{className:"w-3 h-3"}),"Approve All",o.jsx("kbd",{className:"ml-0.5 text-[9px] opacity-70",children:"A"})]})]})]})})})}),$B=m.memo(m.forwardRef(function({onSend:e,onCommand:t,disabled:s,onConfigClick:n,onPlanModeToggle:r,isPlanMode:i,reasoningEnabled:a,sessionId:g,images:l=[],documents:B=[],onFileRemove:u,isDragging:E=!1,onPaste:c,visionEnabled:d=!1,attachmentEnabled:f=!1,modelName:p,providerName:D,isCustomProvider:F=!1,authType:k,isFreeModel:L,researchContexts:K=[],onResearchContextRemove:W,onModelInfoClick:$,agent:X,agents:U=[],onAgentChange:O},T){const[H,x]=m.useState(""),[Q,I]=m.useState(i||!1),[N,G]=m.useState(!1),[J,q]=m.useState(!1),j=m.useRef(null),R=m.useRef(null),{preferences:C,updatePreferences:h}=$s(),{data:v}=Vo(),S=Ur(),Z=Ne($A=>$A.subscription),eA=D==="ottorouter",rA=m.useMemo(()=>eA&&Z?.active?Z.tierName??"GO":null,[eA,Z]);m.useEffect(()=>{if(!J)return;const $A=De=>{R.current&&!R.current.contains(De.target)&&q(!1)};return document.addEventListener("mousedown",$A),()=>document.removeEventListener("mousedown",$A)},[J]);const sA=m.useRef(()=>{}),{showFileMention:bA,mentionQuery:LA,mentionSelectedIndex:QA,currentFileToSelect:qA,setShowFileMention:PA,setMentionSelectedIndex:Ce,setCurrentFileToSelect:MA,handleFileSelect:ZA,handleEnterSelect:fe,checkForMention:He}=uf(),{data:me,isLoading:Re}=XB({enabled:bA,query:LA}),it=me?.files||[],Ke=me?.changedFiles||[],{showCommandSuggestions:NA,commandQuery:Ie,commandSelectedIndex:WA,currentCommandToSelect:Y,setShowCommandSuggestions:y,setCommandSelectedIndex:M,setCurrentCommandToSelect:_,handleCommandSelect:tA,handleCommandEnterSelect:aA,checkForCommand:EA}=If({onCommand:t,onSendCommandMessage:e,updatePreferences:h,updateReasoningText:$A=>S.mutate({reasoningText:$A,scope:"global"}),vimModeEnabled:C.vimMode,reasoningEnabled:v?.defaults?.reasoningText??!0,textareaRef:j,setMessage:x,setShowShortcutsModal:G,sessionId:g}),{vimMode:_A,setVimMode:zA,handleVimNormalMode:XA}=Cf({enabled:C.vimMode,onSend:()=>sA.current(),textareaRef:j,setMessage:x});m.useEffect(()=>{j.current?.focus()},[]),m.useEffect(()=>{i!==void 0&&I(i)},[i]),m.useImperativeHandle(T,()=>({focus:()=>{j.current?.focus()},setValue:$A=>{x($A),j.current?.focus()}}));const Ge=m.useCallback(()=>{const $A=j.current;$A&&($A.style.height="auto",$A.style.height=`${$A.scrollHeight}px`)},[]);m.useEffect(()=>{Ge()},[Ge,H]);const VA=m.useCallback(()=>{PA(!1),MA(void 0)},[PA,MA]),xe=m.useCallback(()=>{y(!1),_(void 0)},[y,_]),Wt=m.useCallback($A=>{ZA($A,j,x)},[ZA]),Le=m.useCallback(()=>{const $A=H.trim();if(!$A||s)return;const De=()=>{x(""),PA(!1),y(!1),MA(void 0),_(void 0),j.current&&(j.current.style.height="auto"),C.vimMode&&zA("normal"),j.current?.focus()},de=Pp($A);if(de){if(ZB(de.id)){e(de.label),De();return}if(t){t(de.id),De();return}}e(H),De()},[H,s,t,e,C.vimMode,PA,y,MA,_,zA]);m.useEffect(()=>{sA.current=Le},[Le]);const Pe=m.useCallback($A=>{if(C.vimMode&&_A==="normal")return;const De=$A.target.value;x(De),EA(De),De.startsWith("/")&&!De.includes(" ")?(PA(!1),MA(void 0)):(y(!1),_(void 0),He(De,$A.target.selectionStart))},[C.vimMode,_A,EA,PA,MA,y,_,He]),Ro=m.useMemo(()=>df({showFileMention:bA,showCommandSuggestions:NA,mentionSelectedIndex:QA,commandSelectedIndex:WA,currentFileToSelect:qA,currentCommandToSelect:Y,isPlanMode:Q,vimModeEnabled:C.vimMode,vimMode:_A,setMentionSelectedIndex:Ce,setCommandSelectedIndex:M,setShowFileMention:PA,setShowCommandSuggestions:y,setIsPlanMode:I,setVimMode:zA,handleFileSelect:Wt,handleCommandSelect:tA,handleSend:Le,handleVimNormalMode:XA,onPlanModeToggle:r}),[bA,NA,QA,WA,qA,Y,Q,C.vimMode,_A,Ce,M,PA,y,zA,Wt,tA,Le,XA,r]);m.useEffect(()=>{C.vimMode||zA("insert")},[C.vimMode,zA]);const Qe=m.useCallback($A=>{c?.($A)},[c]),ve=l.length>0,zt=B.length>0,Oe=ve||zt,Ze=C.fullWidthContent?"w-full pointer-events-auto relative":"max-w-3xl mx-auto pointer-events-auto relative";return o.jsxs(o.Fragment,{children:[E&&(()=>{const $A=d||f,De=[...d?["Images"]:[],...f?["PDF"]:[],"Markdown","Text"].join(", ");return o.jsx("div",{className:"fixed inset-0 z-50 flex items-center justify-center bg-background/80 backdrop-blur-sm pointer-events-none",children:o.jsxs("div",{className:`flex flex-col items-center gap-4 p-8 rounded-2xl border-2 border-dashed ${$A?"bg-card border-primary/50":"bg-card border-muted-foreground/30"}`,children:[o.jsx("div",{className:`p-4 rounded-full ${$A?"bg-primary/10":"bg-muted"}`,children:o.jsx(os,{className:`w-12 h-12 ${$A?"text-primary":"text-muted-foreground"}`})}),o.jsxs("div",{className:"text-center",children:[o.jsx("p",{className:"text-lg font-medium text-foreground",children:"Drop files here"}),o.jsxs("p",{className:"text-sm text-muted-foreground",children:[De," up to 10MB"]})]})]})})})(),o.jsx("div",{className:"absolute bottom-0 left-0 right-0 pt-16 pb-5 md:pb-6 px-2 md:px-4 bg-gradient-to-t from-background via-background to-transparent pointer-events-none z-20 safe-area-inset-bottom",children:o.jsxs("div",{className:Ze,children:[C.vimMode&&_A==="normal"&&o.jsx("div",{className:"absolute -top-6 right-0 px-2 py-0.5 text-xs font-mono font-semibold bg-amber-500/90 text-white rounded shadow-sm",children:"NORMAL"}),C.vimMode&&_A==="insert"&&o.jsx("div",{className:"absolute -top-6 right-0 px-2 py-0.5 text-xs font-mono font-semibold bg-green-500/90 text-white rounded shadow-sm",children:"INSERT"}),g&&o.jsx("div",{className:"pointer-events-auto w-3/4 mx-auto relative z-0",children:o.jsx(ff,{sessionId:g})}),o.jsxs("div",{className:`relative z-10 flex flex-col rounded-3xl p-1 transition-all touch-manipulation ${Q?"bg-slate-100 dark:bg-slate-900/40 border border-slate-300 dark:border-slate-700 focus-within:border-slate-400 dark:focus-within:border-slate-600 focus-within:ring-1 focus-within:ring-slate-300 dark:focus-within:ring-slate-700":"bg-card border border-border focus-within:border-primary/60 focus-within:ring-1 focus-within:ring-primary/40"}`,children:[Oe&&o.jsxs("div",{className:"flex flex-wrap gap-2 px-3 pt-2 pb-1",children:[l.map($A=>o.jsxs("div",{className:"relative group w-12 h-12 rounded-lg overflow-hidden bg-muted",children:[o.jsx("img",{src:$A.preview,alt:"Attachment",className:"w-full h-full object-cover"}),o.jsx("button",{type:"button",onClick:()=>u?.($A.id),className:"absolute top-0 right-0 p-0.5 bg-black/60 rounded-bl-md opacity-0 group-hover:opacity-100 transition-opacity",children:o.jsx(ot,{className:"w-3 h-3 text-white"})})]},$A.id)),B.map($A=>o.jsxs("div",{className:"relative group flex items-center gap-2 px-3 py-2 rounded-lg bg-muted max-w-[200px]",children:[$A.type==="pdf"?o.jsx(os,{className:"w-4 h-4 text-red-500 flex-shrink-0"}):o.jsx(ss,{className:"w-4 h-4 text-blue-500 flex-shrink-0"}),o.jsx("span",{className:"text-xs truncate",children:$A.name}),o.jsx("button",{type:"button",onClick:()=>u?.($A.id),className:"absolute top-0 right-0 p-0.5 bg-black/60 rounded-bl-md opacity-0 group-hover:opacity-100 transition-opacity",children:o.jsx(ot,{className:"w-3 h-3 text-white"})})]},$A.id))]}),K.length>0&&o.jsx("div",{className:"flex flex-wrap gap-2 px-3 pt-2 pb-1",children:K.map($A=>o.jsxs("div",{className:"relative group flex items-center gap-2 px-3 py-2 rounded-lg bg-teal-500/10 border border-teal-500/30 max-w-[200px]",children:[o.jsx(dr,{className:"w-4 h-4 text-teal-500 flex-shrink-0"}),o.jsx("span",{className:"text-xs truncate text-teal-600 dark:text-teal-400",children:$A.label}),W&&o.jsx("button",{type:"button",onClick:()=>W($A.id),className:"absolute top-0 right-0 p-0.5 bg-black/60 rounded-bl-md opacity-0 group-hover:opacity-100 transition-opacity",children:o.jsx(ot,{className:"w-3 h-3 text-white"})})]},$A.id))}),o.jsxs("div",{className:"flex items-end gap-1",children:[n&&o.jsx("button",{type:"button",onClick:n,className:"flex items-center justify-center w-10 h-10 rounded-full hover:bg-background/50 active:bg-background/70 transition-colors text-muted-foreground hover:text-foreground flex-shrink-0 touch-manipulation",children:o.jsx(IC,{className:"w-4 h-4"})}),o.jsx(Pn,{ref:j,value:H,onChange:Pe,onKeyDown:Ro,onPaste:Qe,placeholder:Q?"Plan mode - Type a message...":"Type a message...",disabled:s,rows:1,className:`border-0 bg-transparent pl-1 pr-2 py-2 max-h-[200px] overflow-y-auto leading-normal resize-none scrollbar-hide text-base ${C.vimMode&&_A==="normal"?"caret-[6px]":""}`,style:{height:"2.5rem"}}),o.jsx("button",{type:"button",onClick:Le,disabled:s||!H.trim()&&!Oe,className:`flex items-center justify-center w-10 h-10 rounded-full transition-colors flex-shrink-0 touch-manipulation ${H.trim()||Oe?"bg-primary hover:bg-primary/90 active:bg-primary/80 text-primary-foreground":"bg-transparent text-muted-foreground"}`,children:o.jsx(HQ,{className:"w-4 h-4"})})]})]}),o.jsx("div",{className:`grid transition-[grid-template-rows] duration-200 ease-out ${a||d||p||D||k||X?"grid-rows-[1fr]":"grid-rows-[0fr]"}`,children:o.jsx("div",{className:J?"overflow-visible":"overflow-hidden",children:o.jsxs("div",{className:"grid grid-cols-[auto_1fr_auto] items-center mt-1 px-3",children:[o.jsxs("div",{className:"justify-self-start flex-shrink-0 relative",ref:R,children:[X&&U.length>0&&o.jsxs("button",{type:"button",onClick:()=>q(!J),className:"text-[10px] text-muted-foreground flex items-center gap-1 transition-colors hover:text-foreground cursor-pointer",children:[o.jsx("span",{className:"uppercase font-medium",children:X}),o.jsx(dC,{className:`h-2.5 w-2.5 transition-transform ${J?"rotate-180":""}`})]}),J&&o.jsx("div",{className:"absolute bottom-full left-0 mb-1 min-w-[120px] bg-popover border border-border rounded-md shadow-lg overflow-hidden z-50",children:U.map($A=>o.jsx("button",{type:"button",onClick:()=>{O?.($A),q(!1)},className:`w-full text-left px-3 py-1.5 text-xs transition-colors hover:bg-accent ${$A===X?"text-foreground font-medium bg-accent/50":"text-muted-foreground"}`,children:$A},$A))})]}),o.jsx("div",{className:"justify-self-center",children:(D||p||k)&&o.jsx("div",{className:"text-[10px] text-muted-foreground flex items-center gap-1 px-2 py-0.5",children:o.jsxs("button",{type:"button",onClick:$,className:"flex items-center gap-1 transition-colors hover:text-foreground cursor-pointer",children:[D&&o.jsxs(o.Fragment,{children:[o.jsx(eo,{provider:D,size:12,className:"opacity-70"}),o.jsx("span",{className:"opacity-40",children:"/"})]}),p&&o.jsx("span",{children:p}),F&&o.jsx("span",{className:"opacity-50",children:"(custom)"}),k&&k==="oauth"&&o.jsx("span",{className:"opacity-50",children:"(pro)"}),eA&&rA&&o.jsxs("span",{className:"opacity-50",children:["(",rA.toLowerCase(),")"]}),L&&o.jsx("span",{className:"opacity-50",children:"(free)"})]})})}),o.jsxs("div",{className:"justify-self-end flex-shrink-0 flex items-center gap-2",children:[a&&o.jsxs("span",{className:"text-[10px] text-indigo-600 dark:text-indigo-300 flex items-center gap-1 w-[52px] justify-center",children:[o.jsx(Rn,{className:"h-3 w-3 flex-shrink-0"}),(v?.defaults?.reasoningLevel??"high").replace("xhigh","x-high")]}),d&&o.jsxs("span",{className:"text-[10px] text-emerald-600 dark:text-emerald-400 flex items-center gap-1",children:[o.jsx(Oa,{className:"h-3 w-3"}),"images"]})]})]})})}),bA&&!Re&&o.jsx(vp,{files:it,changedFiles:Ke,query:LA,selectedIndex:QA,onSelect:Wt,onEnterSelect:fe,onClose:VA}),NA&&o.jsx(Vp,{query:Ie,selectedIndex:WA,onSelect:tA,onEnterSelect:aA,onClose:xe,sessionId:g}),o.jsx(ef,{isOpen:N,onClose:()=>G(!1)})]})})]})})),mf=50,Qo=["sessions","list"];function wf(){return $E({queryKey:Qo,queryFn:({pageParam:A=0})=>mA.getSessionsPage({limit:mf,offset:A}),getNextPageParam:A=>A.nextOffset??void 0,initialPageParam:0,staleTime:3e4,refetchInterval:3e4,refetchOnWindowFocus:!1})}function zn(){const A=wf();return{data:m.useMemo(()=>A.data?.pages?A.data.pages.flatMap(t=>t.items??[]):[],[A.data]),isLoading:A.isLoading,isError:A.isError,error:A.error,hasNextPage:A.hasNextPage,fetchNextPage:A.fetchNextPage,isFetchingNextPage:A.isFetchingNextPage}}function Qg(A){const{data:e}=zn();return e?.find(t=>t.id===A)}function xf(){const A=ke();return _e({mutationFn:e=>mA.createSession(e),onSuccess:e=>{A.setQueryData(Qo,t=>{if(!t)return t;const s=t.pages[0];return s?{...t,pages:[{...s,items:[e,...s.items]},...t.pages.slice(1)]}:t}),A.invalidateQueries({queryKey:Qo})}})}function Bg(A){const e=ke();return _e({mutationFn:t=>mA.updateSession(A,t),onSuccess:async()=>{await e.invalidateQueries({queryKey:Qo}),await e.invalidateQueries({queryKey:["session",A]})}})}function Df(){const A=ke();return _e({mutationFn:e=>mA.deleteSession(e),onSuccess:()=>{A.invalidateQueries({queryKey:Qo})}})}function ua(A,e={}){const{enabled:t=!0,staleTime:s=15e3}=e;return gt({queryKey:["messages",A],queryFn:()=>{if(!A)throw new Error("Session ID is required");return mA.getMessages(A)},enabled:!!A&&t,staleTime:s,refetchOnWindowFocus:!1})}function yf(A){const e=ke();return _e({mutationFn:t=>mA.sendMessage(A,t),onSuccess:()=>{e.invalidateQueries({queryKey:["messages",A]}),e.invalidateQueries({queryKey:Qo})}})}const We=dt(A=>({isExpanded:!1,skills:[],globalEnabled:!0,totalCount:0,enabledCount:0,selectedSkill:null,isViewerOpen:!1,viewingFile:null,toggleSidebar:()=>{A(e=>{const t=!e.isExpanded;return t&&(Te.getState().collapseSidebar(),et.getState().collapseSidebar(),mt.getState().collapseSidebar(),kt.getState().collapseSidebar(),je.getState().collapseSidebar(),At.getState().collapseSidebar(),$e.getState().collapseSidebar()),{isExpanded:t}})},expandSidebar:()=>{Te.getState().collapseSidebar(),et.getState().collapseSidebar(),mt.getState().collapseSidebar(),kt.getState().collapseSidebar(),je.getState().collapseSidebar(),At.getState().collapseSidebar(),$e.getState().collapseSidebar(),A({isExpanded:!0})},collapseSidebar:()=>A({isExpanded:!1}),setSkills:e=>A({skills:e}),setSkillsConfig:({skills:e,globalEnabled:t,totalCount:s,enabledCount:n})=>A({skills:e,globalEnabled:t,totalCount:s,enabledCount:n}),selectSkill:e=>A({selectedSkill:e,isViewerOpen:!1,viewingFile:null}),openViewer:e=>A({isViewerOpen:!0,viewingFile:e}),closeViewer:()=>A({isViewerOpen:!1,viewingFile:null})})),$e=dt(A=>({isExpanded:!1,servers:[],loading:new Set,authUrls:new Map,copilotDevice:null,toggleSidebar:()=>{A(e=>{const t=!e.isExpanded;return t&&(Te.getState().collapseSidebar(),et.getState().collapseSidebar(),mt.getState().collapseSidebar(),kt.getState().collapseSidebar(),je.getState().collapseSidebar(),At.getState().collapseSidebar(),We.getState().collapseSidebar()),{isExpanded:t}})},expandSidebar:()=>{Te.getState().collapseSidebar(),et.getState().collapseSidebar(),mt.getState().collapseSidebar(),kt.getState().collapseSidebar(),je.getState().collapseSidebar(),At.getState().collapseSidebar(),We.getState().collapseSidebar(),A({isExpanded:!0})},collapseSidebar:()=>A({isExpanded:!1}),setServers:e=>A({servers:e}),setLoading:(e,t)=>A(s=>{const n=new Set(s.loading);return t?n.add(e):n.delete(e),{loading:n}}),updateServer:(e,t)=>A(s=>({servers:s.servers.map(n=>n.name===e?{...n,...t}:n)})),setAuthUrl:(e,t)=>A(s=>{const n=new Map(s.authUrls);return t?n.set(e,t):n.delete(e),{authUrls:n}}),setCopilotDevice:e=>A({copilotDevice:e})})),At=dt(A=>({isExpanded:!1,selectedFile:null,isViewerOpen:!1,expandedDirs:new Set,toggleSidebar:()=>{A(e=>{const t=!e.isExpanded;return t&&(Te.getState().collapseSidebar(),et.getState().collapseSidebar(),mt.getState().collapseSidebar(),kt.getState().collapseSidebar(),je.getState().collapseSidebar(),$e.getState().collapseSidebar(),We.getState().collapseSidebar()),{isExpanded:t}})},expandSidebar:()=>{Te.getState().collapseSidebar(),et.getState().collapseSidebar(),mt.getState().collapseSidebar(),kt.getState().collapseSidebar(),je.getState().collapseSidebar(),$e.getState().collapseSidebar(),We.getState().collapseSidebar(),A({isExpanded:!0})},collapseSidebar:()=>A({isExpanded:!1,isViewerOpen:!1,selectedFile:null}),openFile:e=>A({selectedFile:e,isViewerOpen:!0}),closeViewer:()=>A({isViewerOpen:!1,selectedFile:null}),toggleDir:e=>A(t=>{const s=new Set(t.expandedDirs);return s.has(e)?s.delete(e):s.add(e),{expandedDirs:s}})})),je=dt(A=>({isExpanded:!1,status:"idle",url:null,qrCode:null,error:null,progress:null,toggleSidebar:()=>{A(e=>{const t=!e.isExpanded;return t&&(Te.getState().collapseSidebar(),et.getState().collapseSidebar(),kt.getState().collapseSidebar(),mt.getState().collapseSidebar(),At.getState().collapseSidebar(),$e.getState().collapseSidebar(),We.getState().collapseSidebar()),{isExpanded:t}})},expandSidebar:()=>{Te.getState().collapseSidebar(),et.getState().collapseSidebar(),kt.getState().collapseSidebar(),mt.getState().collapseSidebar(),At.getState().collapseSidebar(),$e.getState().collapseSidebar(),We.getState().collapseSidebar(),A({isExpanded:!0})},collapseSidebar:()=>A({isExpanded:!1}),setStatus:e=>A({status:e}),setUrl:e=>A({url:e}),setQrCode:e=>A({qrCode:e}),setError:e=>A({error:e}),setProgress:e=>A({progress:e}),reset:()=>A({status:"idle",url:null,qrCode:null,error:null,progress:null})})),kt=dt(A=>({isExpanded:!1,toggleSidebar:()=>{A(e=>{const t=!e.isExpanded;return t&&(Te.getState().collapseSidebar(),et.getState().collapseSidebar(),mt.getState().collapseSidebar(),je.getState().collapseSidebar(),At.getState().collapseSidebar(),$e.getState().collapseSidebar(),We.getState().collapseSidebar()),{isExpanded:t}})},expandSidebar:()=>A({isExpanded:!0}),collapseSidebar:()=>A({isExpanded:!1})})),mt=dt((A,e)=>({isExpanded:!1,activeResearchSessionId:null,parentSessionId:null,toggleSidebar:()=>{A(t=>{const s=!t.isExpanded;return s&&(Te.getState().collapseSidebar(),et.getState().collapseSidebar(),kt.getState().collapseSidebar(),je.getState().collapseSidebar(),At.getState().collapseSidebar(),$e.getState().collapseSidebar(),We.getState().collapseSidebar()),{isExpanded:s}})},expandSidebar:()=>{Te.getState().collapseSidebar(),et.getState().collapseSidebar(),kt.getState().collapseSidebar(),je.getState().collapseSidebar(),At.getState().collapseSidebar(),$e.getState().collapseSidebar(),We.getState().collapseSidebar(),A({isExpanded:!0})},collapseSidebar:()=>A({isExpanded:!1}),selectResearchSession:t=>A({activeResearchSessionId:t}),setParentSessionId:t=>{e().parentSessionId!==t&&A({parentSessionId:t,activeResearchSessionId:null})},reset:()=>A({activeResearchSessionId:null,parentSessionId:null})})),et=dt(A=>({isExpanded:!1,selectedFile:null,allOperations:[],selectedOperationIndex:0,isDiffOpen:!1,toggleSidebar:()=>{A(e=>{const t=!e.isExpanded;return t&&(Te.getState().collapseSidebar(),mt.getState().collapseSidebar(),kt.getState().collapseSidebar(),je.getState().collapseSidebar(),At.getState().collapseSidebar(),$e.getState().collapseSidebar(),We.getState().collapseSidebar()),{isExpanded:t}})},expandSidebar:()=>{Te.getState().collapseSidebar(),mt.getState().collapseSidebar(),kt.getState().collapseSidebar(),je.getState().collapseSidebar(),At.getState().collapseSidebar(),$e.getState().collapseSidebar(),We.getState().collapseSidebar(),A({isExpanded:!0})},collapseSidebar:()=>A({isExpanded:!1,isDiffOpen:!1,selectedFile:null,allOperations:[],selectedOperationIndex:0}),openDiff:(e,t)=>A({selectedFile:e,allOperations:t,selectedOperationIndex:t.length-1,isDiffOpen:!0,isExpanded:!0}),selectOperation:e=>A({selectedOperationIndex:e}),closeDiff:()=>A({isDiffOpen:!1,selectedFile:null,allOperations:[],selectedOperationIndex:0})})),Te=dt(A=>({isExpanded:!1,activeSessionId:null,selectedFile:null,selectedFileStaged:!1,isDiffOpen:!1,isCommitModalOpen:!1,commitSessionId:null,wasSessionListCollapsed:!1,toggleSidebar:()=>{A(e=>{const t=!e.isExpanded;return t&&(et.getState().collapseSidebar(),mt.getState().collapseSidebar(),kt.getState().collapseSidebar(),je.getState().collapseSidebar(),At.getState().collapseSidebar(),$e.getState().collapseSidebar(),We.getState().collapseSidebar()),{isExpanded:t}})},expandSidebar:()=>A({isExpanded:!0}),collapseSidebar:()=>A({isExpanded:!1,isDiffOpen:!1,selectedFile:null}),openDiff:(e,t)=>A({selectedFile:e,selectedFileStaged:t,isDiffOpen:!0,isExpanded:!0}),closeDiff:()=>A({isDiffOpen:!1,selectedFile:null}),switchFile:(e,t)=>A({selectedFile:e,selectedFileStaged:t}),openCommitModal:()=>A(e=>({isCommitModalOpen:!0,commitSessionId:e.activeSessionId})),openCommitModalForSession:e=>A({isCommitModalOpen:!0,commitSessionId:e}),closeCommitModal:()=>A({isCommitModalOpen:!1,commitSessionId:null}),setActiveSessionId:e=>A({activeSessionId:e}),setSessionListCollapsed:e=>A({wasSessionListCollapsed:e})}));function Vn(){const A=Te(e=>e.isExpanded);return gt({queryKey:["git","status"],queryFn:()=>mA.getGitStatus(),refetchInterval:A?5e3:!1,retry:1,staleTime:3e3})}function Nf(A,e=!1){return gt({queryKey:["git","diff",A,e],queryFn:()=>A?mA.getGitDiff(A,e):null,enabled:!!A,retry:1,refetchInterval:!1})}function kf(A){return _e({mutationFn:()=>mA.generateCommitMessage(A??void 0)})}function _n(){const A=ke();return _e({mutationFn:e=>mA.stageFiles(e),onSuccess:()=>{A.invalidateQueries({queryKey:["git","status"]})}})}function cg(){const A=ke();return _e({mutationFn:e=>mA.unstageFiles(e),onSuccess:()=>{A.invalidateQueries({queryKey:["git","status"]})}})}function Ac(){const A=ke();return _e({mutationFn:e=>mA.restoreFiles(e),onSuccess:()=>{A.invalidateQueries({queryKey:["git","status"]})}})}function ec(){const A=ke();return _e({mutationFn:e=>mA.deleteFiles(e),onSuccess:()=>{A.invalidateQueries({queryKey:["git","status"]})}})}function Mf(){const A=ke();return _e({mutationFn:e=>mA.commitChanges(e),onSuccess:()=>{A.invalidateQueries({queryKey:["git","status"]}),A.invalidateQueries({queryKey:["git","branch"]})}})}function bf(){const A=ke();return _e({mutationFn:()=>mA.pushCommits(),onSuccess:()=>{A.invalidateQueries({queryKey:["git","status"]}),A.invalidateQueries({queryKey:["git","branch"]})}})}function Ff(){const A=ke();return _e({mutationFn:()=>mA.pullChanges(),onSuccess:()=>{A.invalidateQueries({queryKey:["git","status"]}),A.invalidateQueries({queryKey:["git","branch"]})}})}function Gf(){const A=ke();return _e({mutationFn:()=>mA.initGitRepo(),onSuccess:()=>{A.invalidateQueries({queryKey:["git","status"]}),A.invalidateQueries({queryKey:["git","branch"]})}})}function vf(){const A=Te(e=>e.isExpanded);return gt({queryKey:["git","remotes"],queryFn:()=>mA.getRemotes(),enabled:A,retry:1,staleTime:1e4})}function Sf(){const A=ke();return _e({mutationFn:({name:e,url:t})=>mA.addRemote(e,t),onSuccess:()=>{A.invalidateQueries({queryKey:["git","remotes"]}),A.invalidateQueries({queryKey:["git","status"]})}})}function Uf(){const A=ke();return _e({mutationFn:e=>mA.removeRemote(e),onSuccess:()=>{A.invalidateQueries({queryKey:["git","remotes"]}),A.invalidateQueries({queryKey:["git","status"]})}})}const Eg=["image/png","image/jpeg","image/gif","image/webp"],Cg=["application/pdf"],tc=["text/plain","text/markdown","text/x-markdown","application/json","text/csv","text/xml","application/xml","text/yaml","text/x-yaml","application/x-yaml","text/html","text/css","text/javascript","application/javascript","application/typescript"],oc=[".txt",".md",".markdown",".json",".csv",".xml",".yaml",".yml",".html",".css",".js",".ts",".jsx",".tsx",".py",".rs",".go",".java",".c",".cpp",".h",".hpp",".rb",".php",".sh",".bash",".zsh",".toml",".ini",".cfg",".env",".log",".sql",".graphql",".svelte",".vue"],Rf=[...Eg,...Cg,...tc];function Kf(){return`file-${Date.now()}-${Math.random().toString(36).slice(2,9)}`}function Lf(A){if(Eg.includes(A.type))return"image";if(Cg.includes(A.type))return"pdf";if(tc.includes(A.type))return"text";const e=A.name.toLowerCase().slice(A.name.lastIndexOf("."));return oc.includes(e)?"text":null}function Jf(A){if(Rf.includes(A.type))return!0;const e=A.name.toLowerCase().slice(A.name.lastIndexOf("."));return oc.includes(e)}async function xl(A){return new Promise((e,t)=>{const s=new FileReader;s.onload=()=>{const r=s.result.split(",")[1];e(r)},s.onerror=t,s.readAsDataURL(A)})}async function jf(A){return new Promise((e,t)=>{const s=new FileReader;s.onload=()=>e(s.result),s.onerror=t,s.readAsText(A)})}async function Tf(A){return new Promise((e,t)=>{const s=new FileReader;s.onload=()=>e(s.result),s.onerror=t,s.readAsDataURL(A)})}function sc(A={}){const{maxFiles:e=10,maxSizeMB:t=10,pageWide:s=!0,supportsImages:n=!0,supportsFileAttachments:r=!0,onError:i}=A,[a,g]=m.useState([]),[l,B]=m.useState(!1),[u,E]=m.useState(null),c=t*1024*1024,d=m.useCallback(U=>!n&&Eg.includes(U.type)?"This model does not support image attachments":!r&&Cg.includes(U.type)?"This model does not support PDF attachments":Jf(U)?U.size>c?`File too large: ${(U.size/1024/1024).toFixed(1)}MB. Max: ${t}MB`:null:`Unsupported file type: ${U.name.slice(U.name.lastIndexOf("."))||U.type||"unknown"}`,[c,t,n,r]),f=m.useCallback(async U=>{E(null);const O=Array.from(U),T=e-a.length;if(T<=0){const Q=`Maximum ${e} files allowed`;E(Q),i?.(Q);return}const H=O.slice(0,T),x=[];for(const Q of H){const I=d(Q);if(I){E(I),i?.(I);continue}const N=Lf(Q);if(N)try{let G,J,q,j=Q.type;if(N==="image")[G,J]=await Promise.all([Tf(Q),xl(Q)]);else if(N==="pdf")J=await xl(Q),j="application/pdf";else if(q=await jf(Q),J=q,!j){const R=Q.name.toLowerCase();j=R.endsWith(".md")||R.endsWith(".markdown")?"text/markdown":"text/plain"}x.push({id:Kf(),file:Q,type:N,name:Q.name,preview:G,data:J,mediaType:j,textContent:q})}catch{const G=`Failed to process file: ${Q.name}`;E(G),i?.(G)}}x.length>0&&g(Q=>[...Q,...x])},[a.length,e,d,i]),p=m.useCallback(U=>{g(O=>O.filter(T=>T.id!==U)),E(null)},[]),D=m.useCallback(()=>{g([]),E(null)},[]),F=m.useCallback(U=>{U.preventDefault(),U.stopPropagation(),U.dataTransfer.types.includes("Files")&&B(!0)},[]),k=m.useCallback(U=>{U.preventDefault(),U.stopPropagation();const O=U.currentTarget.getBoundingClientRect(),T=U.clientX,H=U.clientY;(T<O.left||T>O.right||H<O.top||H>O.bottom)&&B(!1)},[]),L=m.useCallback(U=>{U.preventDefault(),U.stopPropagation()},[]),K=m.useCallback(U=>{U.preventDefault(),U.stopPropagation(),B(!1);const O=U.dataTransfer.files;O.length>0&&f(Array.from(O))},[f]),W=m.useCallback(U=>{const O=U.clipboardData?.items;if(!O)return;const T=[];for(const H of Array.from(O))if(H.kind==="file"){const x=H.getAsFile();x&&T.push(x)}T.length>0&&(U.preventDefault(),f(T))},[f]);m.useEffect(()=>{if(!s)return;let U=0;const O=Q=>{Q.preventDefault(),Q.dataTransfer?.types.includes("Files")&&(U++,U===1&&B(!0))},T=Q=>{Q.preventDefault(),U--,U===0&&B(!1)},H=Q=>{Q.preventDefault()},x=Q=>{Q.preventDefault(),U=0,B(!1);const I=Q.dataTransfer?.files;I&&I.length>0&&f(Array.from(I))};return document.addEventListener("dragenter",O),document.addEventListener("dragleave",T),document.addEventListener("dragover",H),document.addEventListener("drop",x),()=>{document.removeEventListener("dragenter",O),document.removeEventListener("dragleave",T),document.removeEventListener("dragover",H),document.removeEventListener("drop",x)}},[s,f]);const $=a.filter(U=>U.type==="image"),X=a.filter(U=>U.type==="pdf"||U.type==="text");return{files:a,images:$,documents:X,isDragging:l,error:u,addFiles:f,removeFile:p,clearFiles:D,handleDragEnter:F,handleDragLeave:k,handleDragOver:L,handleDrop:K,handlePaste:W}}const Ia=dt((A,e)=>({pendingRestoreText:null,setPendingRestoreText:t=>A({pendingRestoreText:t}),consumeRestoreText:()=>{const t=e().pendingRestoreText;return A({pendingRestoreText:null}),t}})),cn=dt((A,e)=>({pendingContexts:new Map,addContext:(t,s)=>{A(n=>{const r=new Map(n.pendingContexts),i=r.get(t)||[];return i.some(a=>a.id===s.id)||r.set(t,[...i,s]),{pendingContexts:r}})},removeContext:(t,s)=>{A(n=>{const r=new Map(n.pendingContexts),i=r.get(t)||[];return r.set(t,i.filter(a=>a.id!==s)),{pendingContexts:r}})},getContexts:t=>e().pendingContexts.get(t)||[],clearContexts:t=>{A(s=>{const n=new Map(s.pendingContexts);return n.delete(t),{pendingContexts:n}})},consumeContexts:t=>{const s=e().getContexts(t);return e().clearContexts(t),s}})),Of=/<research-context\s+from="([^"]+)"\s+label="([^"]+)"[^>]*>([\s\S]*?)<\/research-context>/g;function qf(A){const e=[];let t=A;const s=new RegExp(Of);let n=s.exec(A);for(;n!==null;){const[r,i,a,g]=n;e.push({id:i,from:i,label:a,content:g.trim()}),t=t.replace(r,""),n=s.exec(A)}return t=t.trim(),{researchContexts:e,cleanContent:t}}function Yf(A){return A.length===0?"":A.map(e=>e.content).join(`
|
|
98
|
+
|
|
99
|
+
`)}const rc=m.forwardRef(function({provider:e,model:t,onChange:s,disabled:n=!1,dropdownMode:r="absolute"},i){const{data:a}=Xs(),{data:g,isLoading:l}=Lp(e),[B,u]=m.useState(!1),[E,c]=m.useState(""),[d,f]=m.useState(0),[p,D]=m.useState({}),[F,k]=m.useState({}),[L,K]=m.useState({}),W=m.useRef(null),$=m.useRef(null),X=m.useRef([]);m.useEffect(()=>{a&&D(j=>{const R={...j};for(const[C,h]of Object.entries(a))R[C]={...h,models:L[C]?j[C]?.models??h.models:h.models};return R})},[a,L]);const U=m.useMemo(()=>{const j=Object.keys(a??{});return!e||j.includes(e)?j:[e,...j]},[a,e]);m.useEffect(()=>{!e||!g||(D(j=>({...j,[e]:{...j[e]??{},label:g.label||e,models:g.models}})),K(j=>({...j,[e]:!0})))},[g,e]),m.useEffect(()=>{if(!(!B||!U.length))for(const j of U)!(p[j]??a?.[j])?.dynamicModels||L[j]||F[j]||(k(C=>({...C,[j]:!0})),mA.getModels(j).then(C=>{D(h=>({...h,[j]:{...h[j]??a?.[j]??{},label:C.label||j,models:C.models,allowAnyModel:C.allowAnyModel,dynamicModels:!0}})),K(h=>({...h,[j]:!0}))}).catch(()=>{K(C=>({...C,[j]:!0}))}).finally(()=>{k(C=>({...C,[j]:!1}))}))},[a,U,L,B,p,F]),m.useImperativeHandle(i,()=>({openAndFocus:()=>{u(!0)}}));const O=m.useMemo(()=>{const j=[];for(const[R,C]of Object.entries(p))for(const h of C.models)j.push({providerKey:R,providerLabel:C.label,modelId:h.id,modelLabel:h.label,toolCall:h.toolCall,reasoningText:h.reasoningText,contextWindow:h.contextWindow,maxOutputTokens:h.maxOutputTokens,available:h.available,unavailableReason:h.unavailableReason});return j},[p]),T=m.useMemo(()=>new vo(O,{keys:[{name:"modelLabel",weight:2},{name:"modelId",weight:1},{name:"providerLabel",weight:.5}],threshold:.3,ignoreLocation:!0,includeScore:!0,distance:100,minMatchCharLength:1}),[O]),H=m.useMemo(()=>{if(!E.trim())return p;const R=T.search(E).sort((h,v)=>{const S=h.score??1,Z=v.score??1;if(Math.abs(S-Z)<.001){const eA=h.item.modelLabel.toLowerCase(),rA=v.item.modelLabel.toLowerCase(),sA=E.toLowerCase(),bA=eA.indexOf(sA),LA=rA.indexOf(sA);if(bA>=0&&LA<0)return-1;if(LA>=0&&bA<0)return 1;if(bA>=0&&LA>=0)return bA-LA}return S-Z}),C={};for(const h of R){const v=h.item;C[v.providerKey]||(C[v.providerKey]={label:v.providerLabel,models:[]}),C[v.providerKey].models.find(Z=>Z.id===v.modelId)||C[v.providerKey].models.push({id:v.modelId,label:v.modelLabel,toolCall:v.toolCall,reasoningText:v.reasoningText,contextWindow:v.contextWindow,maxOutputTokens:v.maxOutputTokens,available:v.available,unavailableReason:v.unavailableReason})}return C},[p,E,T]),x=m.useMemo(()=>{const j=[];for(const[R,C]of Object.entries(H))for(const h of C.models)j.push({providerKey:R,providerLabel:C.label,modelId:h.id,modelLabel:h.label,toolCall:h.toolCall,reasoningText:h.reasoningText,contextWindow:h.contextWindow,maxOutputTokens:h.maxOutputTokens,available:h.available,unavailableReason:h.unavailableReason});return j},[H]);m.useEffect(()=>{B&&f(0)},[B]),m.useEffect(()=>{B&&d>=0&&d<X.current.length&&X.current[d]?.scrollIntoView({block:"nearest",behavior:"smooth"})},[d,B]),m.useEffect(()=>{const j=C=>{W.current&&!W.current.contains(C.target)&&u(!1)},R=C=>{const h=C.target,v=h.tagName==="INPUT"||h.tagName==="TEXTAREA"||h.isContentEditable;(C.key==="Escape"||C.key==="q"&&!v)&&u(!1)};return B&&(document.addEventListener("mousedown",j),document.addEventListener("keydown",R),setTimeout(()=>$.current?.focus(),0)),()=>{document.removeEventListener("mousedown",j),document.removeEventListener("keydown",R)}},[B]);const Q=(j,R,C)=>{C!==!1&&(s(j,R),u(!1),c(""))},I=j=>{if(x.length!==0){if(j.key==="ArrowDown"||j.ctrlKey&&j.key==="j")j.preventDefault(),f(R=>R<x.length-1?R+1:0);else if(j.key==="ArrowUp"||j.ctrlKey&&j.key==="k")j.preventDefault(),f(R=>R>0?R-1:x.length-1);else if(j.key==="Enter"){j.preventDefault();const R=x[d];R&&R.available!==!1&&Q(R.providerKey,R.modelId,R.available)}}},N=p[e]?.label||g?.label||e,G=p[e]?.models.find(j=>j.id===t)?.label||g?.models.find(j=>j.id===t)?.label||t,J=E.trim()?Object.keys(H):U,q=r==="inline"?"relative":"absolute z-50";return o.jsxs("div",{ref:W,className:"relative w-full",children:[o.jsxs("button",{type:"button",onClick:()=>!n&&u(!B),disabled:n,className:"w-full flex items-center justify-between px-3 py-2 bg-[hsl(var(--secondary))] border border-[hsl(var(--border))] rounded-md hover:bg-[hsl(var(--accent))] focus:outline-none focus:ring-2 focus:ring-[hsl(var(--ring))] disabled:opacity-50 disabled:cursor-not-allowed transition-colors",children:[o.jsxs("span",{className:"flex items-center gap-2 text-sm truncate",children:[o.jsx("span",{className:"text-[hsl(var(--muted-foreground))]",children:N}),o.jsx("span",{className:"text-[hsl(var(--muted-foreground))]/50",children:"/"}),o.jsx("span",{className:"text-[hsl(var(--foreground))]",children:G})]}),o.jsx(qt,{className:`w-4 h-4 text-[hsl(var(--muted-foreground))] transition-transform ${B?"rotate-180":""}`})]}),B&&o.jsxs("div",{className:`${q} mt-1 w-full bg-[hsl(var(--popover))] border border-[hsl(var(--border))] rounded-md shadow-lg max-h-80 overflow-hidden flex flex-col`,children:[o.jsx("div",{className:"p-2 border-b border-[hsl(var(--border))]",children:o.jsxs("div",{className:"relative",children:[o.jsx(zo,{className:"absolute left-3 top-1/2 -translate-y-1/2 w-4 h-4 text-[hsl(var(--muted-foreground))]"}),o.jsx("input",{ref:$,type:"text",value:E,onChange:j=>c(j.target.value),onKeyDown:I,placeholder:"Search providers and models...",className:"w-full pl-9 pr-3 py-2 bg-[hsl(var(--secondary))] border border-[hsl(var(--border))] rounded text-sm text-[hsl(var(--foreground))] placeholder-[hsl(var(--muted-foreground))] focus:outline-none focus:ring-2 focus:ring-[hsl(var(--ring))]"})]})}),o.jsx("div",{className:"overflow-y-auto",children:J.length===0?o.jsx("div",{className:"p-4 text-center text-[hsl(var(--muted-foreground))] text-sm",children:l?"Loading models...":"No models found"}):J.map(j=>{const R=H[j],C=F[j]||j===e&&l&&!R;return o.jsxs("div",{className:"border-b border-[hsl(var(--border))] last:border-0",children:[o.jsx("div",{className:"sticky top-0 px-3 py-2 text-xs font-semibold text-[hsl(var(--muted-foreground))] uppercase tracking-wider bg-[hsl(var(--muted))] z-10",children:R?.label||j}),o.jsx("div",{children:C?o.jsx("div",{className:"px-4 py-2 text-sm text-[hsl(var(--muted-foreground))]",children:"Loading models..."}):R?.models.length?R.models.map(h=>{const v=j===e&&h.id===t,S=x.findIndex(rA=>rA.providerKey===j&&rA.modelId===h.id),Z=S===d,eA=h.available!==!1;return o.jsxs("button",{ref:rA=>{S>=0&&(X.current[S]=rA)},type:"button",disabled:!eA,title:h.unavailableReason,onClick:()=>Q(j,h.id,h.available),onMouseEnter:()=>f(S),className:`w-full text-left px-4 py-2 text-sm flex items-center justify-between transition-colors ${Z?"bg-[hsl(var(--accent))]":"hover:bg-[hsl(var(--accent))]"} ${v?"text-[hsl(var(--accent-foreground))] font-medium":"text-[hsl(var(--foreground))]"} ${eA?"":"opacity-60 cursor-not-allowed"}`,children:[o.jsx("span",{className:"truncate",children:h.label}),(!eA||h.toolCall||h.reasoningText)&&o.jsxs("div",{className:"flex gap-1 ml-2 flex-shrink-0",children:[!eA&&o.jsx("span",{className:"text-[10px] px-1.5 py-0.5 bg-red-600/20 text-red-400 rounded",children:"Unavailable"}),h.toolCall&&o.jsx("span",{className:"text-[10px] px-1.5 py-0.5 bg-green-600/20 text-green-400 rounded",children:"Tools"}),h.reasoningText&&o.jsx("span",{className:"text-[10px] px-1.5 py-0.5 bg-purple-600/20 text-purple-400 rounded",children:"Reasoning"})]})]},h.id)}):o.jsx("div",{className:"px-4 py-2 text-sm text-[hsl(var(--muted-foreground))]",children:"No models available"})})]},j)})})]})]})}),Hf=m.forwardRef(function({agent:e,agents:t,onChange:s,disabled:n=!1},r){const[i,a]=m.useState(!1),[g,l]=m.useState(""),[B,u]=m.useState(0),E=m.useRef(null),c=m.useRef(null),d=m.useRef([]);m.useImperativeHandle(r,()=>({openAndFocus:()=>{a(!0)}}));const f=m.useMemo(()=>new vo(t,{threshold:.4,ignoreLocation:!0}),[t]),p=m.useMemo(()=>g.trim()?f.search(g).map(L=>L.item):t,[t,g,f]);m.useEffect(()=>{i&&u(0)},[i]),m.useEffect(()=>{i&&B>=0&&B<d.current.length&&d.current[B]?.scrollIntoView({block:"nearest",behavior:"smooth"})},[B,i]),m.useEffect(()=>{const k=K=>{E.current&&!E.current.contains(K.target)&&a(!1)},L=K=>{const W=K.target,$=W.tagName==="INPUT"||W.tagName==="TEXTAREA"||W.isContentEditable;(K.key==="Escape"||K.key==="q"&&!$)&&a(!1)};return i&&(document.addEventListener("mousedown",k),document.addEventListener("keydown",L),setTimeout(()=>c.current?.focus(),0)),()=>{document.removeEventListener("mousedown",k),document.removeEventListener("keydown",L)}},[i]);const D=k=>{s(k),a(!1),l("")},F=k=>{if(p.length!==0){if(k.key==="ArrowDown"||k.ctrlKey&&k.key==="j")k.preventDefault(),u(L=>L<p.length-1?L+1:0);else if(k.key==="ArrowUp"||k.ctrlKey&&k.key==="k")k.preventDefault(),u(L=>L>0?L-1:p.length-1);else if(k.key==="Enter"){k.preventDefault();const L=p[B];L&&D(L)}}};return o.jsxs("div",{ref:E,className:"relative w-full",children:[o.jsxs("button",{type:"button",onClick:()=>!n&&a(!i),disabled:n,className:"w-full flex items-center justify-between px-3 py-2 bg-[hsl(var(--secondary))] border border-[hsl(var(--border))] rounded-md hover:bg-[hsl(var(--accent))] focus:outline-none focus:ring-2 focus:ring-[hsl(var(--ring))] disabled:opacity-50 disabled:cursor-not-allowed transition-colors",children:[o.jsx("span",{className:"text-sm text-[hsl(var(--foreground))] truncate",children:e}),o.jsx(qt,{className:`w-4 h-4 text-[hsl(var(--muted-foreground))] transition-transform ${i?"rotate-180":""}`})]}),i&&o.jsxs("div",{className:"absolute z-50 mt-1 w-full bg-[hsl(var(--popover))] border border-[hsl(var(--border))] rounded-md shadow-lg max-h-80 overflow-hidden flex flex-col",children:[o.jsx("div",{className:"p-2 border-b border-[hsl(var(--border))]",children:o.jsxs("div",{className:"relative",children:[o.jsx(zo,{className:"absolute left-3 top-1/2 -translate-y-1/2 w-4 h-4 text-[hsl(var(--muted-foreground))]"}),o.jsx("input",{ref:c,type:"text",value:g,onChange:k=>l(k.target.value),onKeyDown:F,placeholder:"Search agents...",className:"w-full pl-9 pr-3 py-2 bg-[hsl(var(--secondary))] border border-[hsl(var(--border))] rounded text-sm text-[hsl(var(--foreground))] placeholder-[hsl(var(--muted-foreground))] focus:outline-none focus:ring-2 focus:ring-[hsl(var(--ring))]"})]})}),o.jsx("div",{className:"overflow-y-auto",children:p.length===0?o.jsx("div",{className:"p-4 text-center text-[hsl(var(--muted-foreground))] text-sm",children:"No agents found"}):p.map((k,L)=>{const K=k===e,W=L===B;return o.jsx("button",{ref:$=>{d.current[L]=$},type:"button",onClick:()=>D(k),onMouseEnter:()=>u(L),className:`w-full text-left px-4 py-2 text-sm transition-colors ${W?"bg-[hsl(var(--accent))]":"hover:bg-[hsl(var(--accent))]"} ${K?"text-[hsl(var(--accent-foreground))] font-medium":"text-[hsl(var(--foreground))]"}`,children:o.jsx("span",{className:"truncate",children:k})},k)})})]})]})}),Dl=[{value:"minimal",label:"Minimal"},{value:"low",label:"Low"},{value:"medium",label:"Medium"},{value:"high",label:"High"},{value:"max",label:"Max"},{value:"xhigh",label:"X-High"}];function Pf({value:A,onChange:e,disabled:t}){const s=m.useRef(null),[n,r]=m.useState({left:0,width:0});return m.useLayoutEffect(()=>{if(!s.current)return;const i=Dl.findIndex(l=>l.value===A),g=s.current.querySelectorAll("[data-tab]")[i];g&&r({left:g.offsetLeft,width:g.offsetWidth})},[A]),o.jsxs("div",{ref:s,className:`relative flex rounded-full bg-muted p-1 ${t?"opacity-40 pointer-events-none":""}`,children:[o.jsx("div",{className:"absolute top-1 bottom-1 rounded-full bg-foreground shadow-md",style:{left:n.left,width:n.width,transition:"left 200ms ease, width 200ms ease"}}),Dl.map(i=>o.jsx("button",{"data-tab":!0,type:"button",onClick:()=>e(i.value),disabled:t,className:`relative z-10 flex-1 px-3 py-1.5 text-xs font-medium rounded-full transition-colors duration-200 ${A===i.value?"text-background":"text-muted-foreground hover:text-foreground"}`,children:i.label},i.value))]})}function nc({isOpen:A,onClose:e,initialFocus:t,chatInputRef:s,agent:n,provider:r,model:i,modelSupportsReasoning:a,onAgentChange:g,onProviderChange:l,onModelChange:B,onModelSelectorChange:u,modalPosition:E="fixed"}){const{data:c,isLoading:d}=Vo(),f=Ur(),p=c?.defaults?.reasoningText??!0,D=c?.defaults?.reasoningLevel??"high",F=m.useRef(null),k=m.useRef(null);m.useEffect(()=>{A&&t&&setTimeout(()=>{t==="agent"?F.current?.openAndFocus():t==="model"&&k.current?.openAndFocus()},100)},[A,t]);const L=()=>{e(),setTimeout(()=>{s?.current?.focus()},100)},K=(W,$)=>{u?u(W,$):(l(W),B($))};return o.jsx(So,{isOpen:A,onClose:L,title:"Configuration",closeOnEscape:!0,closeOnBackdropClick:!0,maxWidth:"lg",position:E,children:d?o.jsx("div",{className:"text-center text-muted-foreground py-8",children:"Loading configuration..."}):c?o.jsxs("div",{className:"space-y-4",children:[a&&o.jsxs("div",{className:"space-y-3",children:[o.jsxs("div",{className:"flex items-center justify-between",children:[o.jsx("div",{className:"text-sm font-medium text-foreground",children:"Extended Thinking"}),o.jsx("button",{type:"button",role:"switch","aria-checked":p,onClick:()=>f.mutate({reasoningText:!p,scope:"global"}),className:`relative inline-flex h-6 w-11 items-center rounded-full transition-colors focus:outline-none focus:ring-2 focus:ring-primary focus:ring-offset-2 ${p?"bg-primary":"bg-muted"}`,children:o.jsx("span",{className:`inline-block h-4 w-4 transform rounded-full transition-transform ${p?"translate-x-6":"translate-x-1"} ${p?"bg-primary-foreground":"bg-foreground"}`})})]}),o.jsx(Pf,{value:D,onChange:W=>f.mutate({reasoningLevel:W,scope:"global"}),disabled:!p})]}),o.jsxs("div",{children:[o.jsx("div",{className:"block text-sm font-medium text-foreground mb-2",children:"Agent"}),o.jsx(Hf,{ref:F,agent:n,agents:c.agents,onChange:g})]}),o.jsxs("div",{children:[o.jsx("div",{className:"block text-sm font-medium text-foreground mb-2",children:"Provider / Model"}),o.jsx(rc,{ref:k,provider:r,model:i,onChange:K,dropdownMode:"inline"})]})]}):null})}const Wf=m.memo(m.forwardRef(function({sessionId:e,userContext:t,onNewSession:s,onDeleteSession:n,modalPosition:r},i){const a=Qg(e),[g,l]=m.useState(""),[B,u]=m.useState(""),[E,c]=m.useState(""),[d,f]=m.useState(!1),[p,D]=m.useState(null),[F,k]=m.useState(0),L=m.useRef(null),K=yf(e),W=Bg(e),$=Df(),{data:X}=Xs(),{data:U}=Vo(),{data:O}=Vn(),T=_n(),H=Te(NA=>NA.openCommitModalForSession),x=Te(NA=>NA.setActiveSessionId),Q=ke(),I=X?.[B]?.models?.find(NA=>NA.id===E)?.reasoningText,N=X?.[B]?.models?.find(NA=>NA.id===E)?.vision,G=X?.[B]?.models?.find(NA=>NA.id===E)?.attachment,J=X?.[B]?.models?.find(NA=>NA.id===E)?.free,{images:q,documents:j,isDragging:R,removeFile:C,clearFiles:h,handlePaste:v}=sc({supportsImages:!!N,supportsFileAttachments:!!G,onError:ae.error}),S=cn(NA=>NA.pendingContexts),Z=cn(NA=>NA.removeContext),eA=cn(NA=>NA.consumeContexts),rA=S.get(e)||[],sA=m.useMemo(()=>rA.map(NA=>({id:NA.id,label:NA.label})),[rA]),bA=m.useCallback(NA=>{Z(e,NA)},[e,Z]),LA=X?.[B]?.authType,QA=X?.[B]?.label?.includes("(custom)")??!1;m.useEffect(()=>{a&&(l(a.agent),u(a.provider),c(a.model))},[a]),m.useEffect(()=>(x(e),()=>x(null)),[e,x]),m.useEffect(()=>{k(NA=>NA+1)},[]);const qA=Ia(NA=>NA.pendingRestoreText),PA=Ia(NA=>NA.consumeRestoreText);m.useEffect(()=>{if(qA){const NA=PA();NA&&L.current?.setValue(NA)}},[qA,PA]),m.useImperativeHandle(i,()=>({focus:()=>{L.current?.focus()}}));const Ce=m.useCallback(async NA=>{try{const Ie=eA(e),WA=Yf(Ie),Y=WA?`${WA}
|
|
100
|
+
|
|
101
|
+
${NA}`:NA,y=q.length>0?q.map(_=>({data:_.data,mediaType:_.mediaType})):void 0,M=j.length>0?j.map(_=>({type:_.type,name:_.name,data:_.data,mediaType:_.mediaType,textContent:_.textContent})):void 0;await K.mutateAsync({content:Y,images:y,files:M,agent:g||void 0,provider:B||void 0,model:E||void 0,userContext:t||void 0,reasoningText:I&&(U?.defaults?.reasoningText??!0),reasoningLevel:U?.defaults?.reasoningLevel??"high"}),h()}catch(Ie){console.error("Failed to send message:",Ie)}},[K,j,q,h,g,B,E,t,e,eA,U?.defaults?.reasoningLevel,U?.defaults?.reasoningText,I]),MA=m.useCallback(()=>{f(NA=>!NA)},[]),ZA=m.useCallback(()=>{f(!1),D(null)},[]),fe=m.useCallback(async NA=>{if(NA==="models")D("model"),f(!0);else if(NA==="agents")D("agent"),f(!0);else if(NA==="new")s?.();else if(NA==="stage"){const Ie=O?.unstaged?.map(y=>y.path)??[],WA=O?.untracked?.map(y=>y.path)??[],Y=[...Ie,...WA];Y.length>0&&T.mutate(Y)}else if(NA==="commit")H(e);else if(NA==="compact")Ce("/compact");else if(NA==="init")Ce("/init");else if(NA==="delete")$.mutate(e,{onSuccess:()=>{n?.()}});else if(NA==="share"){const Ie=ae.loading("Sharing session...");try{const WA=await mA.shareSession(e);WA.shared&&(ae.successWithAction(WA.message==="Already shared"?"Already shared":"Session shared!",{label:"Open",href:WA.url}),Q.invalidateQueries({queryKey:["share-status",e]}))}catch(WA){ae.error(WA instanceof Error?WA.message:"Failed to share")}finally{no.getState().removeToast(Ie)}}else if(NA==="sync"){const Ie=ae.loading("Syncing session...");try{const WA=await mA.syncSession(e);if(WA.synced){const Y=WA.newMessages>0?`Synced ${WA.newMessages} new messages`:"Already synced";ae.successWithAction(Y,{label:"Open",href:WA.url}),Q.invalidateQueries({queryKey:["share-status",e]})}}catch(WA){ae.error(WA instanceof Error?WA.message:"Failed to sync")}finally{no.getState().removeToast(Ie)}}},[s,O,T,H,Ce,$,e,n,Q]),He=m.useCallback(async NA=>{l(NA);try{await W.mutateAsync({agent:NA})}catch(Ie){console.error("Failed to update agent:",Ie)}},[W]),me=m.useCallback(async(NA,Ie)=>{u(NA),c(Ie);try{await W.mutateAsync({provider:NA,model:Ie})}catch(WA){console.error("Failed to update model:",WA)}},[W]),Re=m.useCallback(async NA=>{if(u(NA),E)try{await W.mutateAsync({provider:NA,model:E})}catch(Ie){console.error("Failed to update provider:",Ie)}},[E,W]),it=m.useCallback(async NA=>{c(NA);try{await W.mutateAsync({provider:B,model:NA})}catch(Ie){console.error("Failed to update model:",Ie)}},[B,W]),Ke=m.useCallback(async NA=>{const Ie=NA?"plan":"build";l(Ie);try{await W.mutateAsync({agent:Ie})}catch(WA){console.error("Failed to switch agent:",WA)}},[W]);return o.jsxs(o.Fragment,{children:[o.jsx(nc,{isOpen:d,onClose:ZA,initialFocus:p,chatInputRef:L,agent:g,provider:B,model:E,modelSupportsReasoning:I,onAgentChange:He,onProviderChange:Re,onModelChange:it,onModelSelectorChange:me,modalPosition:r}),o.jsx($B,{ref:L,onSend:Ce,onCommand:fe,disabled:K.isPending,onConfigClick:MA,onPlanModeToggle:Ke,isPlanMode:g==="plan",reasoningEnabled:I&&(U?.defaults?.reasoningText??!0),sessionId:e,images:q,documents:j,onFileRemove:C,isDragging:R,onPaste:v,visionEnabled:N,attachmentEnabled:G,modelName:E,providerName:B,isCustomProvider:QA,authType:LA,isFreeModel:J,researchContexts:sA,onResearchContextRemove:bA,onModelInfoClick:()=>{D("model"),f(!0)},agent:g,agents:U?.agents,onAgentChange:He},F)]})}));function zf({sessionId:A,onStop:e,disabled:t}){const[s,n]=m.useState(!1),r=async()=>{if(!s){n(!0);try{await mA.abortSession(A),e?.()}catch(i){console.error("Failed to abort stream:",i)}finally{setTimeout(()=>n(!1),1e3)}}};return o.jsxs("button",{type:"button",onClick:r,disabled:t||s,className:"flex items-center gap-1.5 text-sm text-destructive hover:text-destructive/80 disabled:opacity-50 disabled:cursor-not-allowed transition-colors",title:"Stop generation",children:[o.jsx(OQ,{className:"w-4 h-4"}),o.jsx("span",{className:"font-medium",children:s?"Stopping...":"Stop"})]})}const Vf=m.memo(m.forwardRef(function({onSessionCreated:e,wordmark:t,compact:s,modalPosition:n},r){const{data:i}=Vo(),{data:a}=Xs(),g=ke(),[l,B]=m.useState(!1),[u,E]=m.useState(!1),c=m.useRef(null),[d,f]=m.useState(""),[p,D]=m.useState(""),[F,k]=m.useState(""),[L,K]=m.useState(!1),[W,$]=m.useState(null),X=m.useRef(null),U=m.useRef(!1);m.useEffect(()=>{U.current||!i?.defaults||(U.current=!0,f(i.defaults.agent||"general"),D(i.defaults.provider||""),k(i.defaults.model||""))},[i]);const O=a?.[p]?.models?.find(QA=>QA.id===F)?.vision,T=a?.[p]?.models?.find(QA=>QA.id===F)?.attachment,H=a?.[p]?.models?.find(QA=>QA.id===F)?.reasoningText,x=a?.[p]?.models?.find(QA=>QA.id===F)?.free,Q=a?.[p]?.authType,I=a?.[p]?.label?.includes("(custom)")??!1,{images:N,documents:G,isDragging:J,removeFile:q,clearFiles:j,handlePaste:R}=sc({supportsImages:!!O,supportsFileAttachments:!!T,onError:ae.error});m.useImperativeHandle(r,()=>({focus:()=>{X.current?.focus()}})),m.useEffect(()=>{const QA=setTimeout(()=>{X.current?.focus()},100);return()=>clearTimeout(QA)},[]);const C=m.useCallback(QA=>{f(QA)},[]),h=m.useCallback(QA=>{f(QA?"plan":"build")},[]),v=m.useCallback(QA=>{D(QA)},[]),S=m.useCallback(QA=>{k(QA)},[]),Z=m.useCallback((QA,qA)=>{D(QA),k(qA)},[]),eA=m.useCallback(()=>{K(QA=>!QA)},[]),rA=m.useCallback(()=>{K(!1),$(null)},[]),sA=m.useCallback(QA=>{QA==="models"?($("model"),K(!0)):QA==="agents"&&($("agent"),K(!0))},[]),bA=m.useCallback(async QA=>{if(!(l||!QA.trim())){B(!0);try{const qA=await mA.createSession({agent:d||"general",provider:p||void 0,model:F||void 0});g.invalidateQueries({queryKey:Qo});const PA=N.length>0?N.map(MA=>({data:MA.data,mediaType:MA.mediaType})):void 0,Ce=G.length>0?G.map(MA=>({type:MA.type,name:MA.name,data:MA.data,mediaType:MA.mediaType,textContent:MA.textContent})):void 0;await mA.sendMessage(qA.id,{content:QA,images:PA,files:Ce,agent:d||void 0,provider:p||void 0,model:F||void 0,reasoningText:H&&(i?.defaults?.reasoningText??!0),reasoningLevel:i?.defaults?.reasoningLevel??"high"}),j(),c.current=qA.id,E(!0),setTimeout(()=>{c.current&&e(c.current)},250)}catch(qA){ae.error(qA instanceof Error?qA.message:"Failed to create session"),B(!1)}}},[l,i,d,p,F,N,G,j,e,g,H]),LA=m.useMemo(()=>o.jsx("svg",{width:s?60:80,height:s?24:32,viewBox:"0 0 748 303",fill:"currentColor",className:"text-muted-foreground/30","aria-label":"otto",role:"img",children:o.jsx("path",{d:"M192.877 257.682C192.877 263.287 191.783 268.551 189.596 273.473C187.545 278.395 184.674 282.701 180.982 286.393C177.428 289.947 173.189 292.818 168.268 295.006C163.482 297.057 158.287 298.082 152.682 298.082H44.1953C38.7266 298.082 33.5312 297.057 28.6094 295.006C23.6875 292.818 19.3809 289.947 15.6895 286.393C12.1348 282.701 9.26367 278.395 7.07617 273.473C5.02539 268.551 4 263.287 4 257.682V120.074C4 114.469 5.02539 109.205 7.07617 104.283C9.26367 99.3613 12.1348 95.123 15.6895 91.5684C19.3809 87.877 23.6875 85.0059 28.6094 82.9551C33.5312 80.7676 38.7266 79.6738 44.1953 79.6738H152.682C158.287 79.6738 163.482 80.7676 168.268 82.9551C173.189 85.0059 177.428 87.877 180.982 91.5684C184.674 95.123 187.545 99.3613 189.596 104.283C191.783 109.205 192.877 114.469 192.877 120.074V257.682ZM44.1953 120.074V257.682H152.682V120.074H44.1953ZM331.715 4V298.082H289.674V46.041H239.225V4H331.715ZM478.961 4V298.082H436.92V46.041H386.471V4H478.961ZM743.717 257.682C743.717 263.287 742.623 268.551 740.436 273.473C738.385 278.395 735.514 282.701 731.822 286.393C728.268 289.947 724.029 292.818 719.107 295.006C714.322 297.057 709.127 298.082 703.521 298.082H595.035C589.566 298.082 584.371 297.057 579.449 295.006C574.527 292.818 570.221 289.947 566.529 286.393C562.975 282.701 560.104 278.395 557.916 273.473C555.865 268.551 554.84 263.287 554.84 257.682V120.074C554.84 114.469 555.865 109.205 557.916 104.283C560.104 99.3613 562.975 95.123 566.529 91.5684C570.221 87.877 574.527 85.0059 579.449 82.9551C584.371 80.7676 589.566 79.6738 595.035 79.6738H703.521C709.127 79.6738 714.322 80.7676 719.107 82.9551C724.029 85.0059 728.268 87.877 731.822 91.5684C735.514 95.123 738.385 99.3613 740.436 104.283C742.623 109.205 743.717 114.469 743.717 120.074V257.682ZM595.035 120.074V257.682H703.521V120.074H595.035Z"})}),[s]);return o.jsxs("div",{className:`flex-1 flex flex-col items-center justify-center px-4 transition-opacity duration-250 ease-out ${u?"opacity-0 scale-[0.98]":"opacity-100 scale-100"}`,style:{transitionProperty:"opacity, transform"},children:[o.jsx(nc,{isOpen:L,onClose:rA,initialFocus:W,chatInputRef:X,agent:d,provider:p,model:F,modelSupportsReasoning:H,onAgentChange:C,onProviderChange:v,onModelChange:S,onModelSelectorChange:Z,modalPosition:n}),o.jsxs("div",{className:`w-full ${s?"max-w-xl":"max-w-2xl"}`,children:[o.jsx("div",{className:"flex justify-center mb-6",children:t||LA}),o.jsx("div",{className:"relative min-h-[110px]",children:o.jsx($B,{ref:X,onSend:bA,onCommand:sA,disabled:l,sessionId:void 0,images:N,documents:G,onFileRemove:q,isDragging:J,onPaste:R,visionEnabled:O,attachmentEnabled:T,modelName:F,providerName:p,isCustomProvider:I,authType:Q,isFreeModel:x,onConfigClick:eA,onModelInfoClick:()=>{$("model"),K(!0)},reasoningEnabled:H&&(i?.defaults?.reasoningText??!0),agent:d,agents:i?.agents,onAgentChange:C,onPlanModeToggle:h,isPlanMode:d==="plan"})})]})]})}));function _f(A){const e=A.split(".").pop()?.toLowerCase();return{js:"javascript",jsx:"jsx",ts:"typescript",tsx:"tsx",py:"python",rb:"ruby",go:"go",rs:"rust",java:"java",c:"c",cpp:"cpp",h:"c",hpp:"cpp",cs:"csharp",php:"php",sh:"bash",bash:"bash",zsh:"bash",sql:"sql",json:"json",yaml:"yaml",yml:"yaml",xml:"xml",html:"html",css:"css",scss:"scss",md:"markdown",txt:"text",svelte:"svelte"}[e||""]||"javascript"}function Zf(A){const e=A.split(`
|
|
102
|
+
`),t=[];let s=0,n=0,r=!1,i="";for(const a of e){if(a.startsWith("*** Update File:")||a.startsWith("*** Add File:")){const l=a.match(/\*\*\* (?:Update|Add) File: (.+)/);l&&(i=l[1]),r=!0,n=1,s=1}if(a.startsWith("+++")||a.startsWith("*** Update File:")){const l=a.match(/\+\+\+ b\/(.+)/)||a.match(/\*\*\* Update File: (.+)/);l&&(i=l[1])}const g=a.match(/^@@ -(\d+)(?:,\d+)? \+(\d+)(?:,\d+)? @@/);if(g){s=Number.parseInt(g[1],10),n=Number.parseInt(g[2],10),r=!0,t.push({content:a,codeContent:a,type:"header"});continue}if(a.startsWith("@@")&&!a.match(/^@@ -\d+/)){r=!0,t.push({content:a,codeContent:a,type:"header"});continue}if(a.startsWith("***")||a.startsWith("diff ")||a.startsWith("index ")||a.startsWith("---")||a.startsWith("+++")){t.push({content:a,codeContent:a,type:"meta"});continue}r?a.startsWith("+")?t.push({content:a,codeContent:a.slice(1),type:"add",newLineNum:n++}):a.startsWith("-")?t.push({content:a,codeContent:a.slice(1),type:"remove",oldLineNum:s++}):a.startsWith(" ")||a===""?t.push({content:a,codeContent:a.startsWith(" ")?a.slice(1):a,type:"context",oldLineNum:s++,newLineNum:n++}):t.push({content:a,codeContent:a,type:"context"}):t.push({content:a,codeContent:a,type:"meta"})}return{lines:t,filePath:i}}function mr({patch:A}){const{lines:e,filePath:t}=Zf(A),s=_f(t),n=document?.documentElement.classList.contains("dark")?Io:ho;return o.jsx("div",{className:"bg-card/60 border border-border rounded-lg overflow-hidden max-h-96 max-w-full",children:o.jsx("div",{className:"overflow-x-auto overflow-y-auto max-h-96 text-xs font-mono",children:o.jsx("div",{className:"min-w-max",children:e.map((r,i)=>{const a=`line-${i}-${r.content.slice(0,20)}`;if(r.type==="meta"||r.type==="header")return o.jsx("div",{className:`px-3 py-0.5 whitespace-pre ${r.type==="header"?"text-muted-foreground/80 bg-muted/20":"text-muted-foreground/80"}`,children:r.content},a);let g="",l="";switch(r.type){case"add":g="text-emerald-700 dark:text-emerald-300",l="bg-emerald-500/10";break;case"remove":g="text-red-600 dark:text-red-300",l="bg-red-500/10";break;default:g="text-foreground/80"}let B=r.content;return r.codeContent.trim()&&s!=="text"&&(B=o.jsx(Yt,{language:s,style:n,customStyle:{margin:0,padding:0,background:"transparent",display:"inline",fontSize:"inherit",lineHeight:"inherit"},codeTagProps:{style:{fontFamily:"inherit",background:"transparent"}},PreTag:"span",children:r.codeContent}),r.type==="add"?B=o.jsxs(o.Fragment,{children:[o.jsx("span",{className:"select-none",children:"+"}),B]}):r.type==="remove"?B=o.jsxs(o.Fragment,{children:[o.jsx("span",{className:"select-none",children:"-"}),B]}):r.type==="context"&&(B=o.jsxs(o.Fragment,{children:[o.jsx("span",{className:"select-none",children:" "}),B]}))),o.jsxs("div",{className:`flex ${l}`,children:[o.jsx("div",{className:"px-2 py-0.5 text-right text-muted-foreground/40 select-none w-12 flex-shrink-0",children:r.oldLineNum||""}),o.jsx("div",{className:"px-2 py-0.5 text-right text-muted-foreground/40 select-none w-12 flex-shrink-0 border-r border-border/50",children:r.newLineNum||""}),o.jsx("div",{className:`px-3 py-0.5 flex-1 whitespace-pre ${g}`,children:B})]},a)})})})})}function Xf(A){const e=A.split(".").pop()?.toLowerCase();return{js:"javascript",jsx:"jsx",ts:"typescript",tsx:"tsx",py:"python",rb:"ruby",go:"go",rs:"rust",java:"java",c:"c",cpp:"cpp",h:"c",hpp:"cpp",cs:"csharp",php:"php",sh:"bash",bash:"bash",zsh:"bash",sql:"sql",json:"json",yaml:"yaml",yml:"yaml",xml:"xml",html:"html",css:"css",scss:"scss",md:"markdown",txt:"text",svelte:"svelte"}[e||""]||"javascript"}function ic(A){return A==="bash"?"shell":A}function Ci(A){return ic(A)==="shell"}function $f(A,e){if(!e)return null;const s={read:["path"],edit:["path"],multiedit:["path"],write:["path"],copy_into:["targetPath","sourcePath"],apply_patch:["path"],glob:["pattern"],grep:["query","pattern"],ripgrep:["query","pattern"],shell:["cmd","command"],bash:["cmd","command"],terminal:["command"],git_commit:["message"],git_diff:["file"],tree:["path"],ls:["path"],web_search:["query","url"],skill:["name"]}[A];if(!s){for(const[n,r]of Object.entries(e))if(typeof r=="string"&&r.length>0&&r.length<200)return{key:n,value:r};return null}for(const n of s){const r=e[n];if(typeof r=="string"&&r.length>0)return{key:n,value:r}}return null}function Am(A){if(!A)return null;const e=A.cmd??A.command;return typeof e=="string"&&e.length>0?e:null}const em=m.memo(function({toolName:e,args:t,pendingApproval:s,onApprove:n,onReject:r}){const[i,a]=m.useState(!1),g=ic(e),l=g.replace(/_/g," "),B=$f(g,t),E=(Ci(g)?Am(t):null)||B?.value,c=typeof t?.path=="string"?t.path:"",d=Xf(c),f=document?.documentElement.classList.contains("dark")?Io:ho,p=()=>{a(!0),Promise.resolve(n(s.callId)).catch(()=>{a(!1)})},D=()=>{a(!0),Promise.resolve(r(s.callId)).catch(()=>{a(!1)})},F=()=>{if(e==="apply_patch"&&t?.patch)return o.jsx("div",{className:"ml-6 max-w-full overflow-hidden",children:o.jsx(mr,{patch:String(t.patch)})});if(e==="write"&&t?.content){const k=String(t.content);return o.jsx("div",{className:"ml-6 max-w-full overflow-hidden",children:o.jsx("div",{className:"bg-emerald-500/10 border border-emerald-500/30 rounded-lg overflow-hidden max-h-96",children:o.jsx("div",{className:"overflow-x-auto overflow-y-auto max-h-96 text-xs",children:o.jsx(Yt,{language:d,style:f,customStyle:{margin:0,padding:"0.75rem",background:"transparent",fontSize:"inherit"},showLineNumbers:!0,lineNumberStyle:{minWidth:"2.5em",paddingRight:"1em",color:"var(--muted-foreground)",opacity:.4,userSelect:"none"},children:k})})})})}if((e==="edit"||e==="multiedit"||e==="copy_into")&&(B?.value||c)){const k=e==="copy_into"?`Lines ${String(t?.startLine??"?")}-${String(t?.endLine??"?")} from ${String(t?.sourcePath??"source")} will be copied into this file.`:e==="multiedit"?"Multiple exact replacements will be applied atomically.":"An exact text replacement will be applied to this file.";return o.jsx("div",{className:"ml-6 text-xs text-muted-foreground",children:k})}if(Ci(g)&&t?.cmd){const k=String(t.cmd);return o.jsx("div",{className:"ml-6 max-w-full overflow-hidden",children:o.jsx("div",{className:"bg-card/60 border border-border rounded-lg overflow-hidden",children:o.jsx("div",{className:"overflow-x-auto text-xs",children:o.jsx(Yt,{language:"bash",style:f,customStyle:{margin:0,padding:"0.75rem",background:"transparent",fontSize:"inherit"},children:k})})})})}return null};return o.jsxs("div",{className:"flex flex-col gap-2 py-1",children:[o.jsxs("div",{className:"flex items-center gap-2 flex-wrap",children:[o.jsx(Ya,{className:"h-4 w-4 text-amber-500 flex-shrink-0"}),o.jsx("span",{className:"font-medium text-foreground text-sm",children:l}),E&&!Ci(g)&&o.jsx("code",{className:"text-xs font-mono text-foreground/80 bg-muted/50 px-1.5 py-0.5 rounded truncate max-w-xs",children:E}),o.jsx("span",{className:"text-amber-600 dark:text-amber-400 font-medium text-sm",children:"requires approval"})]}),F(),o.jsxs("div",{className:"flex items-center gap-2 ml-6",children:[o.jsxs("button",{type:"button",onClick:D,disabled:i,title:"Reject (N or Esc)",className:"flex items-center gap-1.5 px-3 py-1.5 text-xs font-medium rounded border border-border bg-background hover:bg-muted transition-colors disabled:opacity-50",children:[o.jsx(ot,{className:"w-3 h-3"}),"Reject",o.jsx("kbd",{className:"ml-1 text-[10px] text-muted-foreground opacity-70",children:"N"})]}),o.jsxs("button",{type:"button",onClick:p,disabled:i,title:"Approve (Y)",className:"flex items-center gap-1.5 px-3 py-1.5 text-xs font-medium rounded bg-amber-600 text-white hover:bg-amber-700 transition-colors disabled:opacity-50",children:[o.jsx(Ht,{className:"w-3 h-3"}),i?"Approving...":"Approve",!i&&o.jsx("kbd",{className:"ml-1 text-[10px] opacity-70",children:"Y"})]})]})]})});function Mt(A){return A?A>=1e3?`${(A/1e3).toFixed(1)}s`:`${A}ms`:""}function Ar(A){if(!A||typeof A!="object")return!1;const e=A;return e.ok===!1||"error"in e||e.success===!1}function er(A){if(!A||typeof A!="object")return null;const e=A,t=["error","stderr","message","detail","details","reason"];for(const s of t){const n=e[s];if(typeof n=="string"){const r=n.trim();if(r.length)return r}}return null}function Pt({error:A,stack:e,showStack:t=!1}){return o.jsx("div",{className:"mt-2 ml-5 p-3 bg-red-50 dark:bg-red-950/20 border border-red-200 dark:border-red-800 rounded text-sm",children:o.jsxs("div",{className:"flex items-start gap-2",children:[o.jsx(wo,{className:"h-4 w-4 flex-shrink-0 text-red-600 dark:text-red-400 mt-0.5"}),o.jsxs("div",{className:"flex-1 space-y-2",children:[o.jsxs("div",{children:[o.jsx("div",{className:"font-medium text-red-600 dark:text-red-400",children:"Tool Error:"}),o.jsx("div",{className:"mt-1 text-red-900 dark:text-red-200 whitespace-pre-wrap",children:A})]}),t&&e&&o.jsxs("details",{className:"mt-2",children:[o.jsx("summary",{className:"cursor-pointer text-xs text-red-700 dark:text-red-300 hover:text-red-600 dark:hover:text-red-200",children:"View stack trace"}),o.jsx("pre",{className:"mt-2 p-2 bg-red-100/50 dark:bg-red-900/20 rounded text-xs overflow-x-auto text-red-800 dark:text-red-300",children:e})]})]})]})})}function tm(A){const e=A.split(".").pop()?.toLowerCase();return{js:"javascript",jsx:"jsx",ts:"typescript",tsx:"tsx",py:"python",rb:"ruby",go:"go",rs:"rust",java:"java",c:"c",cpp:"cpp",h:"c",hpp:"cpp",cs:"csharp",php:"php",sh:"bash",bash:"bash",zsh:"bash",sql:"sql",json:"json",yaml:"yaml",yml:"yaml",xml:"xml",html:"html",css:"css",scss:"scss",md:"markdown",txt:"text"}[e||""]||"text"}function om(A){if(!A)return;const e=A.match(/@(\d+)-(\d+)/);if(e)return Number.parseInt(e[1],10)}function sm({contentJson:A,toolDurationMs:e,isExpanded:t,onToggle:s,compact:n}){const r=A.result||{},i=A.args||{},a=typeof r=="object"&&"ok"in r&&r.ok===!1,g=a&&"error"in r&&typeof r.error=="string"?r.error:null,l=a&&"stack"in r&&typeof r.stack=="string"?r.stack:void 0,B=String(r.path||i.path||""),u=String(r.content||""),E=r.lineRange,c=u.split(`
|
|
103
|
+
`),d=Mt(e),f=tm(B),p=document?.documentElement.classList.contains("dark")?Io:ho,D=om(E),F=E?`${B}:${E.replace("@","")}`:B,k=u.length>0||a;return o.jsxs("div",{className:"text-[12px]",children:[o.jsxs("button",{type:"button",onClick:()=>k&&s(),className:`flex items-center gap-2 transition-colors w-full min-w-0 ${a?"text-red-700 dark:text-red-300 hover:text-red-600 dark:hover:text-red-200":k?"text-blue-700 dark:text-blue-300 hover:text-blue-600 dark:hover:text-blue-200":"text-blue-700 dark:text-blue-300"}`,children:[k?t?o.jsx(St,{className:"h-3 w-3 flex-shrink-0 rotate-90 transition-transform"}):o.jsx(St,{className:"h-3 w-3 flex-shrink-0 transition-transform"}):o.jsx("div",{className:"w-3 flex-shrink-0"}),a&&o.jsx(wo,{className:"h-3 w-3 flex-shrink-0 text-red-600 dark:text-red-400"}),o.jsxs("span",{className:"font-medium flex-shrink-0",children:["read",a?" error":""]}),!n&&o.jsxs(o.Fragment,{children:[o.jsx("span",{className:"text-muted-foreground/70 flex-shrink-0",children:"·"}),o.jsx("span",{className:"text-foreground/70 min-w-0 flex-shrink overflow-hidden text-ellipsis whitespace-nowrap",dir:"rtl",title:F,children:`${F}`})]}),!a&&c.length>0&&!n&&o.jsxs("span",{className:"text-muted-foreground/80 flex-shrink-0 whitespace-nowrap",children:["· ",c.length," lines · ",d]}),a&&!n&&o.jsxs("span",{className:"text-muted-foreground/80 flex-shrink-0",children:["· ",d]})]}),t&&a&&g&&o.jsx(Pt,{error:g,stack:l,showStack:!0}),t&&!a&&u&&o.jsx("div",{className:"mt-2 ml-5 bg-card/60 border border-border rounded-lg overflow-hidden max-h-96 overflow-y-auto max-w-full",children:o.jsx("div",{className:"overflow-x-auto max-w-full",children:o.jsx(Yt,{language:f,style:p,customStyle:{margin:0,padding:"0.75rem",fontSize:"0.75rem",lineHeight:"1.5",background:"transparent",maxWidth:"100%"},showLineNumbers:!0,startingLineNumber:D,wrapLines:!0,wrapLongLines:!0,children:u})})})]})}function rm({contentJson:A,toolDurationMs:e,isExpanded:t,onToggle:s,compact:n}){const r=A.result||{},i=A.args||{},a=A.artifact,g=typeof r=="object"&&"ok"in r&&r.ok===!1,l=g&&"error"in r&&typeof r.error=="string"?r.error:null,B=g&&"stack"in r&&typeof r.stack=="string"?r.stack:void 0,u=String(r.path||i.path||""),E=Number(r.bytes||0),c=a?.patch?String(a.patch):"",d=Mt(e),f=c.length>0||g;return o.jsxs("div",{className:"text-[12px]",children:[o.jsxs("button",{type:"button",onClick:()=>f&&s(),className:`flex items-center gap-2 transition-colors min-w-0 w-full ${g?"text-red-700 dark:text-red-300 hover:text-red-600 dark:hover:text-red-200":f?"text-emerald-700 dark:text-emerald-300 hover:text-emerald-600 dark:hover:text-emerald-200":"text-emerald-700 dark:text-emerald-300"}`,children:[f?t?o.jsx(St,{className:"h-3 w-3 flex-shrink-0 rotate-90 transition-transform"}):o.jsx(St,{className:"h-3 w-3 flex-shrink-0 transition-transform"}):o.jsx("div",{className:"w-3 flex-shrink-0"}),g&&o.jsx(wo,{className:"h-3 w-3 flex-shrink-0 text-red-600 dark:text-red-400"}),o.jsxs("span",{className:"font-medium flex-shrink-0",children:["write",g?" error":""]}),!n&&o.jsxs(o.Fragment,{children:[o.jsx("span",{className:"text-muted-foreground/70 flex-shrink-0",children:"·"}),o.jsx("span",{className:"text-foreground/70 min-w-0 flex-shrink overflow-hidden text-ellipsis whitespace-nowrap",dir:"rtl",title:u,children:`${u}`})]}),!g&&E>0&&!n&&o.jsxs("span",{className:"text-muted-foreground/80 whitespace-nowrap flex-shrink-0",children:["· ",E," bytes · ",d]}),g&&!n&&o.jsxs("span",{className:"text-muted-foreground/80 flex-shrink-0",children:["· ",d]})]}),t&&g&&l&&o.jsx(Pt,{error:l,stack:B,showStack:!0}),t&&!g&&c&&o.jsx("div",{className:"mt-2 ml-5",children:o.jsx(mr,{patch:c})})]})}const da='"JetBrainsMono NFM", monospace';let yl=!1,Vr=null;function ac(){return yl?Promise.resolve():Vr||(Vr=nm().then(()=>{yl=!0}),Vr)}async function nm(){if(typeof document>"u"||!("FontFace"in window))return;const e=[{file:"JetBrainsMonoNerdFontMono-Regular.woff2",weight:"400",style:"normal"},{file:"JetBrainsMonoNerdFontMono-Bold.woff2",weight:"700",style:"normal"},{file:"JetBrainsMonoNerdFontMono-Italic.woff2",weight:"400",style:"italic"},{file:"JetBrainsMonoNerdFontMono-BoldItalic.woff2",weight:"700",style:"italic"}].map(async t=>{try{const s=new URL(Object.assign({"../assets/fonts/JetBrainsMonoNerdFontMono-Bold.woff2":FB,"../assets/fonts/JetBrainsMonoNerdFontMono-BoldItalic.woff2":GB,"../assets/fonts/JetBrainsMonoNerdFontMono-Italic.woff2":vB,"../assets/fonts/JetBrainsMonoNerdFontMono-Regular.woff2":SB})[`../assets/fonts/${t.file}`],import.meta.url).href,r=await new FontFace("JetBrainsMono NFM",`url("${s}") format("woff2")`,{weight:t.weight,style:t.style}).load();document.fonts.add(r)}catch{}});await Promise.allSettled(e)}const Nl={sm:"h-3 w-3",md:"h-4 w-4",lg:"h-5 w-5"},im={sm:"p-1",md:"p-1.5",lg:"p-2"};function En({text:A,className:e="",size:t="sm"}){const[s,n]=m.useState(!1),r=async i=>{i.stopPropagation();try{await navigator.clipboard.writeText(A),n(!0),setTimeout(()=>n(!1),2e3)}catch{}};return o.jsx("button",{type:"button",onClick:r,className:`${im[t]} rounded hover:bg-muted/50 text-muted-foreground hover:text-foreground transition-colors ${e}`,title:"Copy",children:s?o.jsx(Ht,{className:`${Nl[t]} text-emerald-500`}):o.jsx(fs,{className:Nl[t]})})}function nt({title:A,icon:e,subtitle:t,copyText:s,variant:n="default",maxHeight:r="max-h-80",children:i}){const a=n==="error";return o.jsxs("div",{className:`bg-card/60 border rounded-lg overflow-hidden flex flex-col ${r} ${a?"border-red-500/50":"border-border"}`,children:[o.jsxs("div",{className:`flex items-center justify-between gap-2 text-xs px-3 py-1.5 border-b border-border sticky top-0 ${a?"text-red-600 dark:text-red-400 bg-red-500/10":"text-muted-foreground bg-muted/30"}`,children:[o.jsxs("div",{className:"flex items-center gap-2",children:[e,o.jsx("span",{children:A}),t&&o.jsx("span",{className:"text-muted-foreground/60",children:t})]}),s&&o.jsx(En,{text:s})]}),o.jsx("div",{className:"overflow-auto flex-1",children:i})]})}function gc({images:A}){const[e,t]=m.useState(null);return A.length===0?null:o.jsx("div",{className:"flex flex-wrap gap-2 mt-2",children:A.map((s,n)=>{const r=`data:${s.mimeType};base64,${s.data}`,i=e===n;return o.jsx("div",{className:"relative",children:i?o.jsxs("div",{className:"relative",children:[o.jsx("button",{type:"button",onClick:()=>t(null),className:"absolute top-1 right-1 z-10 p-0.5 rounded bg-black/60 text-white hover:bg-black/80 transition-colors",children:o.jsx(ot,{className:"h-3 w-3"})}),o.jsx("img",{src:r,alt:`Tool result ${n+1}`,className:"max-w-full max-h-[32rem] rounded-lg border border-border object-contain"})]}):o.jsxs("button",{type:"button",onClick:()=>t(n),className:"group relative overflow-hidden rounded-lg border border-border hover:border-foreground/30 transition-colors",children:[o.jsx("img",{src:r,alt:`Tool result ${n+1}`,className:"w-48 h-32 object-cover"}),o.jsx("div",{className:"absolute inset-0 bg-black/0 group-hover:bg-black/10 transition-colors flex items-center justify-center",children:o.jsx(Oa,{className:"h-5 w-5 text-white opacity-0 group-hover:opacity-80 transition-opacity drop-shadow-lg"})})]})},`img-${n}-${s.mimeType}`)})})}const am={default:{normal:"text-muted-foreground",hover:"hover:text-foreground",error:"text-red-700 dark:text-red-300",errorHover:"hover:text-red-600 dark:hover:text-red-200"},blue:{normal:"text-blue-700 dark:text-blue-300",hover:"hover:text-blue-600 dark:hover:text-blue-200",error:"text-red-700 dark:text-red-300",errorHover:"hover:text-red-600 dark:hover:text-red-200"},emerald:{normal:"text-emerald-700 dark:text-emerald-300",hover:"hover:text-emerald-600 dark:hover:text-emerald-200",error:"text-red-700 dark:text-red-300",errorHover:"hover:text-red-600 dark:hover:text-red-200"},purple:{normal:"text-purple-700 dark:text-purple-300",hover:"hover:text-purple-600 dark:hover:text-purple-200",error:"text-red-700 dark:text-red-300",errorHover:"hover:text-red-600 dark:hover:text-red-200"},cyan:{normal:"text-cyan-700 dark:text-cyan-300",hover:"hover:text-cyan-600 dark:hover:text-cyan-200",error:"text-red-700 dark:text-red-300",errorHover:"hover:text-red-600 dark:hover:text-red-200"},amber:{normal:"text-amber-700 dark:text-amber-300",hover:"hover:text-amber-600 dark:hover:text-amber-200",error:"text-red-700 dark:text-red-300",errorHover:"hover:text-red-600 dark:hover:text-red-200"},red:{normal:"text-red-700 dark:text-red-300",hover:"hover:text-red-600 dark:hover:text-red-200",error:"text-red-700 dark:text-red-300",errorHover:"hover:text-red-600 dark:hover:text-red-200"}};function uo({toolName:A,isExpanded:e,onToggle:t,isError:s=!1,colorVariant:n="default",canExpand:r=!0,children:i}){const a=am[n],g=s?`${a.error} ${a.errorHover}`:`${a.normal} ${a.hover}`;return o.jsxs("button",{type:"button",onClick:()=>r&&t(),className:`flex items-center gap-2 transition-colors w-full min-w-0 ${g}`,children:[r?e?o.jsx(qt,{className:"h-3 w-3 flex-shrink-0"}):o.jsx(St,{className:"h-3 w-3 flex-shrink-0"}):o.jsx("div",{className:"w-3 flex-shrink-0"}),s&&o.jsx(wo,{className:"h-3 w-3 flex-shrink-0 text-red-600 dark:text-red-400"}),o.jsxs("span",{className:"font-medium flex-shrink-0",children:[A,s?" error":""]}),i]})}function pe(){return o.jsx("span",{className:"text-muted-foreground/70 flex-shrink-0",children:"·"})}function Rr({children:A,className:e=""}){return o.jsx("span",{className:`text-foreground/70 ${e}`,children:A})}function Ut({children:A,className:e=""}){return o.jsx("span",{className:`text-muted-foreground/80 flex-shrink-0 whitespace-nowrap ${e}`,children:A})}function tr({children:A}){return o.jsx("span",{className:"text-emerald-600 dark:text-emerald-400 flex-shrink-0",children:A})}function Kr({children:A}){return o.jsx("span",{className:"text-red-600 dark:text-red-400 flex-shrink-0",children:A})}function gm({contentJson:A,toolDurationMs:e,isExpanded:t,onToggle:s,compact:n}){m.useEffect(()=>{ac()},[]);const r=A.result||{},i=A.args||{},a=typeof r=="object"&&"ok"in r&&r.ok===!1,g=a&&"error"in r&&typeof r.error=="string"?r.error:null,l=a&&"stack"in r&&typeof r.stack=="string"?r.stack:void 0,B=String(r.stdout||""),u=String(r.stderr||""),E=Number(r.exitCode??0),c=String(i.cmd||""),d=i.cwd?String(i.cwd):void 0,f=Mt(e),p=document?.documentElement.classList.contains("dark")?Io:ho,D=B.length>0||u.length>0,F=a||E!==0,k=u.length>0,L=B+(B&&u?`
|
|
104
|
+
`:"")+u,K={margin:0,padding:"0.75rem",fontFamily:da,fontSize:"0.75rem",lineHeight:"1.5",background:"transparent",maxWidth:"100%"},W={style:{fontFamily:da}};return o.jsxs("div",{className:"text-[12px]",children:[o.jsxs(uo,{toolName:"shell",isExpanded:t,onToggle:s,isError:F,colorVariant:"default",canExpand:!0,children:[!n&&o.jsxs(o.Fragment,{children:[o.jsx(pe,{}),o.jsx("span",{className:"text-foreground/70 min-w-0 truncate font-mono text-[11px]",title:c,children:c})]}),!a&&!n&&o.jsxs(o.Fragment,{children:[o.jsx(pe,{}),E===0?o.jsxs(tr,{children:["exit ",E]}):o.jsxs(Kr,{children:["exit ",E]}),o.jsx(pe,{}),o.jsx(Ut,{children:f})]}),a&&!n&&o.jsxs(Ut,{children:["· ",f]})]}),t&&a&&g&&o.jsx(Pt,{error:g,stack:l,showStack:!0}),t&&!a&&o.jsxs("div",{className:"mt-2 ml-5 flex flex-col gap-2 max-w-full",children:[o.jsx(nt,{title:"command",icon:o.jsx(so,{className:"h-3 w-3"}),subtitle:d&&d!=="."?`in ${d}`:void 0,copyText:c,maxHeight:"",children:o.jsx("div",{className:"px-3 py-2 font-mono text-xs bg-muted/10 break-all",children:c})}),D&&(E===0?o.jsx(nt,{title:"output",copyText:L,maxHeight:"max-h-[30rem]",children:o.jsx(Yt,{language:"bash",style:p,customStyle:K,codeTagProps:W,wrapLines:!0,wrapLongLines:!0,children:L})}):o.jsxs(o.Fragment,{children:[B&&o.jsx(nt,{title:"stdout",copyText:B,maxHeight:"max-h-60",children:o.jsx(Yt,{language:"bash",style:p,customStyle:K,codeTagProps:W,wrapLines:!0,wrapLongLines:!0,children:B})}),k&&o.jsx(nt,{title:"stderr",copyText:u,variant:"error",maxHeight:"max-h-60",children:o.jsx(Yt,{language:"bash",style:p,customStyle:K,codeTagProps:W,wrapLines:!0,wrapLongLines:!0,children:u})})]}))]})]})}function lm(A){if(!A||A.length<3)return null;const e=A[0],t=A[1],s=A.slice(3);if(e==="?"&&t==="?")return{status:"??",file:s,type:"untracked"};let n="unstaged";return e!==" "&&t!==" "?n="both":e!==" "&&(n="staged"),{status:`${e}${t}`,file:s,type:n}}function Qm(A){return A==="??"?"?":A[0]==="A"||A[1]==="A"?"+":A[0]==="M"||A[1]==="M"?"~":A[0]==="D"||A[1]==="D"?"-":A[0]==="R"||A[1]==="R"?"→":A}function Bm(A){switch(A){case"staged":return"text-emerald-600 dark:text-emerald-400";case"unstaged":return"text-amber-600 dark:text-amber-400";case"untracked":return"text-muted-foreground/60";case"both":return"text-blue-600 dark:text-blue-400"}}function cm({contentJson:A,toolDurationMs:e,isExpanded:t,onToggle:s}){const n=A.result||{},r=Ar(n),i=er(n),a=Number(n.staged||0),g=Number(n.unstaged||0),l=n.raw||[],B=String(n.summary||""),u=Mt(e),E=l.map(lm).filter(Boolean),c=a>0||g>0,d=E.length>0||r||!!B;return o.jsxs("div",{className:"text-[12px]",children:[o.jsxs(uo,{toolName:"git status",isExpanded:t,onToggle:s,isError:r,colorVariant:"blue",canExpand:d,children:[o.jsx(pe,{}),c?o.jsxs(o.Fragment,{children:[a>0&&o.jsxs("span",{className:"text-emerald-600 dark:text-emerald-400 flex-shrink-0",children:[a," staged"]}),g>0&&o.jsxs("span",{className:"text-amber-600 dark:text-amber-400 flex-shrink-0",children:[g," unstaged"]})]}):o.jsx("span",{className:"text-muted-foreground/60 flex-shrink-0",children:"clean"}),o.jsx(pe,{}),o.jsx(Ut,{children:u})]}),t&&r&&i&&o.jsx(Pt,{error:i}),t&&!r&&(E.length>0||B)&&o.jsx("div",{className:"mt-2 ml-5",children:E.length>0?o.jsx("div",{className:"bg-card/60 border border-border rounded-lg overflow-hidden max-h-96 overflow-y-auto",children:o.jsx("div",{className:"divide-y divide-border/50",children:E.map((f,p)=>o.jsxs("div",{className:"flex items-center gap-2 px-3 py-1.5 font-mono hover:bg-muted/20",children:[o.jsx("span",{className:`font-semibold w-6 flex-shrink-0 ${Bm(f.type)}`,children:Qm(f.status)}),o.jsx("span",{className:"text-foreground/80 break-all",children:f.file})]},`${f.file}-${p}`))})}):B&&o.jsx("div",{className:"bg-card/60 border border-border rounded-lg p-3 text-muted-foreground",children:B})})]})}function Em({contentJson:A,toolDurationMs:e,isExpanded:t,onToggle:s}){const n=A.result||{},r=A.args||{},i=String(n.patch||n.diff||""),a=r.all||n.all,g=Mt(e),l=Ar(n)||!!A.error,B=er(n)||(typeof A.error=="string"?A.error:null),u=n&&typeof n=="object"&&"stack"in n?String(n.stack):void 0,E=i.split(`
|
|
105
|
+
`);let c=0,d=0,f=0;for(const D of E)D.startsWith("diff --git")?c+=1:D.startsWith("+")&&!D.startsWith("+++")?d+=1:D.startsWith("-")&&!D.startsWith("---")&&(f+=1);const p=c>0;return o.jsxs("div",{className:"text-[12px]",children:[o.jsxs(uo,{toolName:"git diff",isExpanded:t,onToggle:s,isError:l,colorVariant:"purple",canExpand:!0,children:[a&&o.jsxs(o.Fragment,{children:[o.jsx(pe,{}),o.jsx("span",{className:"text-muted-foreground/60",children:"(all)"})]}),o.jsx(pe,{}),p?o.jsxs(o.Fragment,{children:[o.jsxs(Rr,{children:[c," ",c===1?"file":"files"]}),d>0&&o.jsxs(o.Fragment,{children:[o.jsx(pe,{}),o.jsxs(tr,{children:["+",d]})]}),f>0&&o.jsxs(o.Fragment,{children:[o.jsx(pe,{}),o.jsxs(Kr,{children:["-",f]})]})]}):o.jsx("span",{className:"text-muted-foreground/60",children:"no changes"}),o.jsx(pe,{}),o.jsx(Ut,{children:g})]}),t&&l&&B&&o.jsx(Pt,{error:B,stack:u,showStack:!0}),t&&!l&&o.jsxs("div",{className:"mt-2 ml-5 flex flex-col gap-2 max-w-full",children:[o.jsx(nt,{title:"options",icon:o.jsx(go,{className:"h-3 w-3"}),maxHeight:"",children:o.jsx("div",{className:"px-3 py-2 font-mono text-xs bg-muted/10",children:a?"git diff (all working tree)":"git diff (staged only)"})}),i&&o.jsx(mr,{patch:i}),!i&&o.jsx(nt,{title:"diff",maxHeight:"",children:o.jsx("div",{className:"px-3 py-2 text-muted-foreground/60 italic",children:"No changes to show"})})]})]})}function Cm({contentJson:A,toolDurationMs:e}){const t=A.result||{},s=String(t.message||""),n=Mt(e),r=document?.documentElement.classList.contains("dark")?Io:ho;return o.jsxs("div",{className:"text-xs space-y-2",children:[o.jsxs("div",{className:"flex items-center gap-2",children:[o.jsx("span",{className:"font-medium text-emerald-700 dark:text-emerald-300",children:"git commit"}),o.jsx("span",{className:"text-muted-foreground/70",children:"·"}),o.jsx("span",{className:"text-muted-foreground/80",children:n})]}),s&&o.jsx("div",{className:"bg-card/60 border border-border rounded-lg overflow-hidden max-w-full",children:o.jsx("div",{className:"overflow-x-auto max-w-full",children:o.jsx(Yt,{language:"bash",style:r,customStyle:{margin:0,padding:"0.75rem",fontSize:"0.75rem",lineHeight:"1.5",background:"transparent",maxWidth:"100%"},wrapLines:!0,wrapLongLines:!0,children:s})})})]})}function kl({contentJson:A,toolDurationMs:e,isExpanded:t,onToggle:s,toolName:n}){const r=A.artifact,i=Mt(e),a=(K,W)=>W<=1?`${K}`:`${K}-${K+W-1}`,g=K=>{const W=`-${a(K.oldStart,K.oldLines)}`,$=`+${a(K.newStart,K.newLines)}`,X=[];K.additions>0&&X.push(`+${K.additions}`),K.deletions>0&&X.push(`-${K.deletions}`);const U=X.length>0?` (${X.join(", ")})`:"";return`${W} ${$}${U}`},l=r?.summary||{},B=Number(l.files||0),u=Number(l.additions||0),E=Number(l.deletions||0),c=r?.patch?String(r.patch):"",d=Array.isArray(A.result?.changes)?A.result?.changes:[],p=(n||A.name||"apply_patch").replace(/_/g," "),D=B===1?d[0]?.filePath||(typeof A.result?.path=="string"?A.result.path:typeof A.args?.path=="string"?A.args.path:null):null,F=A.error||A.result&&"ok"in A.result&&A.result.ok===!1,k=typeof A.error=="string"?A.error:A.result&&"error"in A.result&&typeof A.result.error=="string"?A.result.error:null,L=A.result&&typeof A.result=="object"&&"stack"in A.result&&typeof A.result.stack=="string"?A.result.stack:void 0;return o.jsxs("div",{className:"text-[12px]",children:[o.jsxs("button",{type:"button",onClick:s,className:`flex items-center gap-2 transition-colors w-full ${F?"text-red-700 dark:text-red-300 hover:text-red-600 dark:hover:text-red-200":"text-purple-700 dark:text-purple-300 hover:text-purple-600 dark:hover:text-purple-200"}`,children:[o.jsx(St,{className:`h-3 w-3 flex-shrink-0 transition-transform ${t?"rotate-90":""}`}),o.jsxs("span",{className:"font-medium flex-shrink-0",children:[p,F?" error":""]}),o.jsx("span",{className:"text-muted-foreground/70 flex-shrink-0",children:"·"}),D?o.jsx("span",{className:"text-foreground/70 min-w-0 flex-shrink overflow-hidden text-ellipsis whitespace-nowrap",dir:"rtl",title:D,children:`${D}`}):o.jsxs("span",{className:"text-foreground/70 flex-shrink-0",children:[B," ",B===1?"file":"files"]}),o.jsxs("span",{className:"text-emerald-600 dark:text-emerald-400 flex-shrink-0",children:["+",u]}),o.jsxs("span",{className:"text-red-600 dark:text-red-400 flex-shrink-0",children:["-",E]}),o.jsxs("span",{className:"text-muted-foreground/80 flex-shrink-0",children:["· ",i]})]}),t&&F&&k&&o.jsxs("div",{children:[o.jsx(Pt,{error:k,stack:L,showStack:!0}),c&&o.jsx("div",{className:"mt-2 ml-5",children:o.jsxs("details",{children:[o.jsx("summary",{className:"cursor-pointer text-xs text-red-700 dark:text-red-300 hover:text-red-600 dark:hover:text-red-200",children:"Show patch that failed"}),o.jsx("div",{className:"mt-2",children:o.jsx(mr,{patch:c})})]})})]}),t&&!F&&d.length>0&&o.jsx("div",{className:"mt-2 ml-5 space-y-2",children:d.map(K=>o.jsxs("div",{className:"space-y-1",children:[o.jsx("div",{className:"font-mono text-foreground/80",children:K.filePath}),o.jsx("div",{className:"flex flex-wrap gap-2",children:K.hunks.map((W,$)=>o.jsx("span",{className:"rounded bg-muted px-2 py-0.5 text-[0.65rem] font-mono text-muted-foreground",children:g(W)},`apply-patch-${K.filePath}-hunk-${$}`))})]},`apply-patch-${K.filePath}-${K.kind}`))}),t&&!F&&c&&o.jsx("div",{className:"mt-2 ml-5",children:o.jsx(mr,{patch:c})})]})}function um({contentJson:A,toolDurationMs:e,isExpanded:t,onToggle:s}){const n=A.result||{},r=A.args||{},i=Ar(n),a=er(n),g=n&&typeof n=="object"&&"stack"in n?String(n.stack):void 0,l=n.entries||[],B=Mt(e),u=typeof r.path=="string"?r.path:".";return o.jsxs("div",{className:"text-[12px]",children:[o.jsxs(uo,{toolName:"ls",isExpanded:t,onToggle:s,isError:i,colorVariant:"cyan",canExpand:!0,children:[u&&u!=="."&&o.jsxs(o.Fragment,{children:[o.jsx(pe,{}),o.jsx("span",{className:"text-foreground/70 truncate min-w-0",title:u,children:u.length>30?`…${u.slice(-30)}`:u})]}),o.jsx(pe,{}),o.jsxs(Rr,{children:[l.length," ",l.length===1?"entry":"entries"]}),o.jsx(pe,{}),o.jsx(Ut,{children:B})]}),t&&i&&a&&o.jsx(Pt,{error:a,stack:g,showStack:!0}),t&&!i&&o.jsxs("div",{className:"mt-2 ml-5 flex flex-col gap-2 max-w-full",children:[o.jsx(nt,{title:"path",icon:o.jsx(PQ,{className:"h-3 w-3"}),copyText:u,maxHeight:"",children:o.jsx("div",{className:"px-3 py-2 font-mono text-xs bg-muted/10 break-all",children:u})}),l.length>0&&o.jsx(nt,{title:"entries",copyText:l.map(E=>E.name||"").join(`
|
|
106
|
+
`),maxHeight:"max-h-80",children:o.jsx("div",{className:"divide-y divide-border/50",children:l.map((E,c)=>{const d=E,f=d.type==="dir"||d.isDirectory;return o.jsxs("div",{className:"flex items-center gap-1.5 px-3 py-1 font-mono text-foreground/80 hover:bg-muted/20",children:[f?o.jsx(WQ,{className:"h-3 w-3 text-blue-500 flex-shrink-0"}):o.jsx(os,{className:"h-3 w-3 text-muted-foreground flex-shrink-0"}),o.jsx("span",{className:"truncate",children:d.name})]},`${d.name}-${c}`)})})}),l.length===0&&o.jsx(nt,{title:"entries",maxHeight:"",children:o.jsx("div",{className:"px-3 py-2 text-muted-foreground/60 italic",children:"Directory is empty"})})]})]})}function Im({contentJson:A,toolDurationMs:e,isExpanded:t,onToggle:s}){const n=A.result||{},r=A.args||{},i=Ar(n),a=er(n),g=n&&typeof n=="object"&&"stack"in n?String(n.stack):void 0,l=String(n.tree||""),B=l.split(`
|
|
107
|
+
`).filter(f=>f.length>0).length,u=Mt(e),E=document?.documentElement.classList.contains("dark")?Io:ho,c=typeof r.path=="string"?r.path:".",d=typeof r.depth=="number"?r.depth:void 0;return o.jsxs("div",{className:"text-[12px]",children:[o.jsxs(uo,{toolName:"tree",isExpanded:t,onToggle:s,isError:i,colorVariant:"cyan",canExpand:!0,children:[c&&c!=="."&&o.jsxs(o.Fragment,{children:[o.jsx(pe,{}),o.jsx("span",{className:"text-foreground/70 truncate min-w-0",title:c,children:c.length>30?`…${c.slice(-30)}`:c})]}),o.jsx(pe,{}),o.jsxs(Rr,{children:[B," ",B===1?"item":"items"]}),o.jsx(pe,{}),o.jsx(Ut,{children:u})]}),t&&i&&a&&o.jsx(Pt,{error:a,stack:g,showStack:!0}),t&&!i&&o.jsxs("div",{className:"mt-2 ml-5 flex flex-col gap-2 max-w-full",children:[o.jsx(nt,{title:"path",icon:o.jsx(hr,{className:"h-3 w-3"}),subtitle:d?`depth: ${d}`:void 0,copyText:c,maxHeight:"",children:o.jsx("div",{className:"px-3 py-2 font-mono text-xs bg-muted/10 break-all",children:c})}),l&&o.jsx(nt,{title:"tree",copyText:l,maxHeight:"max-h-80",children:o.jsx("div",{className:"overflow-x-auto max-w-full",children:o.jsx(Yt,{language:"bash",style:E,customStyle:{margin:0,padding:"0.75rem",fontSize:"0.75rem",lineHeight:"1.5",background:"transparent",maxWidth:"100%"},wrapLines:!0,wrapLongLines:!0,children:l})})}),!l&&o.jsx(nt,{title:"tree",maxHeight:"",children:o.jsx("div",{className:"px-3 py-2 text-muted-foreground/60 italic",children:"No tree output"})})]})]})}function dm({contentJson:A,toolDurationMs:e,isExpanded:t,onToggle:s,compact:n}){const r=A.result||{},i=A.args||{},a=r.matches||[],g=r.files||[],l=Mt(e),B=Ar(r)||!!A.error,u=er(r)||(typeof A.error=="string"?A.error:null),E=r&&typeof r=="object"&&"stack"in r?String(r.stack):void 0,c=a.length>0?a.length:g.length,d=a.length>0?a.length===1?"match":"matches":g.length===1?"file":"files",f=typeof i.pattern=="string"?i.pattern:typeof i.query=="string"?i.query:typeof i.filePattern=="string"?i.filePattern:"",p=(()=>{if(typeof i.path=="string"&&i.path!==".")return i.path})();return o.jsxs("div",{className:"text-[12px]",children:[o.jsxs(uo,{toolName:"search",isExpanded:t,onToggle:s,isError:B,colorVariant:"amber",canExpand:!0,children:[f&&!n&&o.jsxs(o.Fragment,{children:[o.jsx(pe,{}),o.jsxs("span",{className:"font-mono text-foreground/90 text-[11px] truncate min-w-0",title:f,children:['"',f.length>30?`${f.slice(0,30)}…`:f,'"']})]}),!n&&o.jsxs(o.Fragment,{children:[o.jsx(pe,{}),o.jsxs(Rr,{children:[c," ",d]}),o.jsx(pe,{}),o.jsx(Ut,{children:l})]})]}),t&&B&&u&&o.jsx(Pt,{error:u,stack:E,showStack:!0}),t&&!B&&o.jsxs("div",{className:"mt-2 ml-5 flex flex-col gap-2 max-w-full",children:[o.jsx(nt,{title:"query",icon:o.jsx(zo,{className:"h-3 w-3"}),subtitle:p,copyText:f,maxHeight:"",children:o.jsx("div",{className:"px-3 py-2 font-mono text-xs bg-muted/10 break-all",children:f||"(empty)"})}),a.length>0&&o.jsx(nt,{title:"results",copyText:a.map(D=>{const F=D;return`${F.file}:${F.line}: ${F.text}`}).join(`
|
|
108
|
+
`),maxHeight:"max-h-80",children:o.jsx("div",{className:"divide-y divide-border/50",children:a.map((D,F)=>{const k=D;return o.jsxs("div",{className:"px-3 py-1.5 font-mono hover:bg-muted/20",children:[o.jsxs("div",{className:"text-blue-600 dark:text-blue-400 truncate",children:[k.file,":",k.line]}),o.jsx("div",{className:"text-foreground/80 truncate",children:k.text})]},`${k.file}-${k.line}-${F}`)})})}),g.length>0&&a.length===0&&o.jsx(nt,{title:"files",copyText:g.map(String).join(`
|
|
109
|
+
`),maxHeight:"max-h-80",children:o.jsx("div",{className:"divide-y divide-border/50",children:g.map(D=>o.jsx("div",{className:"px-3 py-1 font-mono text-foreground/80 truncate hover:bg-muted/20",children:String(D)},String(D)))})}),c===0&&o.jsx(nt,{title:"results",maxHeight:"",children:o.jsx("div",{className:"px-3 py-2 text-muted-foreground/60 italic",children:"No results found"})})]})]})}function hm({toolDurationMs:A}){const e=Mt(A);return o.jsx("div",{className:"text-[12px]",children:o.jsxs("div",{className:"flex items-center gap-2",children:[o.jsx("span",{className:"font-medium text-emerald-700 dark:text-emerald-300",children:"Done"}),e&&o.jsxs(o.Fragment,{children:[o.jsx("span",{className:"text-muted-foreground/70",children:"·"}),o.jsx("span",{className:"text-muted-foreground/80",children:e})]})]})})}function pm({toolName:A,contentJson:e,toolDurationMs:t,isExpanded:s,onToggle:n,compact:r}){const i=e.result,a=Mt(t),g=Array.isArray(i?.images)?i.images:[],l=g.length>0,B=i&&(Object.keys(i).length>0||l),u=document?.documentElement.classList.contains("dark")?Io:ho,E=e.error||i&&typeof i=="object"&&"ok"in i&&i.ok===!1,c=typeof e.error=="string"?e.error:i&&typeof i=="object"&&"error"in i&&typeof i.error=="string"?i.error:null,d=i&&typeof i=="object"&&"stack"in i&&typeof i.stack=="string"?i.stack:void 0;return o.jsxs("div",{className:"text-[12px]",children:[o.jsxs("button",{type:"button",onClick:n,className:`flex items-center gap-2 transition-colors w-full ${E?"text-red-700 dark:text-red-300 hover:text-red-600 dark:hover:text-red-200":"text-foreground hover:text-foreground/80"}`,children:[o.jsx(St,{className:`h-3 w-3 flex-shrink-0 transition-transform ${s?"rotate-90":""}`}),E&&o.jsx(wo,{className:"h-3 w-3 flex-shrink-0 text-red-600 dark:text-red-400"}),o.jsxs("span",{className:"font-medium flex-shrink-0",children:[A,E?" error":""]}),!r&&o.jsxs(o.Fragment,{children:[o.jsx("span",{className:"text-muted-foreground/70 flex-shrink-0",children:"·"}),o.jsx("span",{className:"text-muted-foreground/80 flex-shrink-0",children:a})]})]}),s&&E&&c&&o.jsx(Pt,{error:c,stack:d,showStack:!0}),s&&!E&&B&&o.jsxs("div",{className:"mt-2 ml-5",children:[l&&o.jsx(gc,{images:g}),!l&&o.jsx("div",{className:"bg-card/60 border border-border rounded-lg overflow-hidden max-h-96 overflow-y-auto max-w-full",children:o.jsx("div",{className:"overflow-x-auto max-w-full",children:o.jsx(Yt,{language:"json",style:u,customStyle:{margin:0,padding:"0.75rem",fontSize:"0.75rem",lineHeight:"1.5",background:"transparent",maxWidth:"100%"},wrapLines:!0,wrapLongLines:!0,children:JSON.stringify(i,null,2)})})})]})]})}function fm({contentJson:A,toolDurationMs:e}){return o.jsx("div",{className:"text-[12px]",children:o.jsxs("div",{className:"text-muted-foreground",children:[o.jsxs("div",{children:["Tool: ",A.name]}),o.jsxs("div",{children:["Duration: ",e,"ms"]}),o.jsx("pre",{className:"mt-2 text-[10px] bg-card border border-border p-2 rounded overflow-x-auto",children:JSON.stringify(A,null,2)})]})})}function mm({contentJson:A}){const e=A.result||{},t=e.items||[],s=e.note;return o.jsx("div",{className:"text-[12px]",children:o.jsxs("div",{className:"bg-blue-500/10 border border-blue-500/30 dark:bg-blue-500/5 dark:border-blue-500/20 rounded-lg p-3 space-y-2",children:[s&&o.jsx("div",{className:"text-blue-700 dark:text-blue-300 text-sm font-medium mb-3",children:s}),o.jsx("div",{className:"space-y-1.5",children:t.map((n,r)=>o.jsxs("div",{className:"flex items-start gap-2",children:[n.status==="completed"&&o.jsx(hC,{className:"h-4 w-4 text-emerald-600 dark:text-emerald-300 flex-shrink-0 mt-0.5"}),n.status==="in_progress"&&o.jsx(zQ,{className:"h-4 w-4 text-blue-700 dark:text-blue-300 flex-shrink-0 mt-0.5 animate-pulse"}),n.status==="pending"&&o.jsx(pC,{className:"h-4 w-4 text-muted-foreground flex-shrink-0 mt-0.5"}),n.status==="cancelled"&&o.jsx(Ta,{className:"h-4 w-4 text-muted-foreground/50 flex-shrink-0 mt-0.5"}),o.jsx("span",{className:`text-sm ${n.status==="completed"?"text-muted-foreground line-through":n.status==="in_progress"?"text-foreground":n.status==="cancelled"?"text-muted-foreground/50 line-through":"text-muted-foreground/80"}`,children:n.step})]},`${n.step}-${r}`))})]})})}function wm({contentJson:A}){const e=A.result||{},t=String(e.message||"Processing..."),s=e.stage?String(e.stage):void 0,n=e.pct?Number(e.pct):void 0;return o.jsxs("div",{className:"flex items-center gap-2 text-sm text-violet-700 dark:text-violet-300 animate-pulse",children:[s&&o.jsxs("span",{className:"text-muted-foreground/80",children:["[",s,"]"]}),o.jsx("span",{children:t}),n!==void 0&&o.jsxs("span",{className:"text-muted-foreground/80",children:["(",n,"%)"]})]})}function xm({contentJson:A,toolDurationMs:e,isExpanded:t,onToggle:s}){const n=A.result||{},r=A.args||{},i=Mt(e),a=Ar(n)||!!A.error,g=er(n)||(typeof A.error=="string"?A.error:null),l=n&&typeof n=="object"&&"stack"in n?String(n.stack):void 0,B="results"in n,u=n.results||[],E=n,c=typeof r.query=="string"?r.query:void 0,d=typeof r.url=="string"?r.url:E.url;if(B)return o.jsxs("div",{className:"text-[12px]",children:[o.jsxs(uo,{toolName:"web search",isExpanded:t,onToggle:s,isError:a,colorVariant:"purple",canExpand:!0,children:[c&&o.jsxs(o.Fragment,{children:[o.jsx(pe,{}),o.jsxs("span",{className:"font-mono text-foreground/90 text-[11px] truncate min-w-0",title:c,children:['"',c.length>25?`${c.slice(0,25)}…`:c,'"']})]}),o.jsx(pe,{}),o.jsxs(Rr,{children:[u.length," ",u.length===1?"result":"results"]}),o.jsx(pe,{}),o.jsx(Ut,{children:i})]}),t&&a&&g&&o.jsx(Pt,{error:g,stack:l,showStack:!0}),t&&!a&&o.jsxs("div",{className:"mt-2 ml-5 flex flex-col gap-2 max-w-full",children:[o.jsx(nt,{title:"query",icon:o.jsx(Wo,{className:"h-3 w-3"}),copyText:c,maxHeight:"",children:o.jsx("div",{className:"px-3 py-2 font-mono text-xs bg-muted/10 break-all",children:c||"(empty)"})}),u.length>0&&o.jsx(nt,{title:"results",copyText:u.map(p=>`${p.title}
|
|
110
|
+
${p.url}`).join(`
|
|
111
|
+
|
|
112
|
+
`),maxHeight:"max-h-80",children:o.jsx("div",{className:"divide-y divide-border/50",children:u.map((p,D)=>o.jsxs("div",{className:"px-3 py-2 hover:bg-muted/20",children:[o.jsxs("a",{href:p.url,target:"_blank",rel:"noopener noreferrer",className:"flex items-center gap-1 text-blue-600 dark:text-blue-400 hover:underline font-medium",children:[p.title,o.jsx(Gt,{className:"h-3 w-3 flex-shrink-0"})]}),o.jsx("p",{className:"text-muted-foreground text-xs mt-0.5",children:p.snippet}),o.jsx("p",{className:"text-xs text-muted-foreground/60 truncate mt-0.5",children:p.url})]},`${p.url}-${D}`))})}),u.length===0&&o.jsx(nt,{title:"results",maxHeight:"",children:o.jsx("div",{className:"px-3 py-2 text-muted-foreground/60 italic",children:"No results found"})})]})]});const f=d&&d.length>50?`${d.slice(0,50)}...`:d;return o.jsxs("div",{className:"text-[12px]",children:[o.jsxs(uo,{toolName:"web fetch",isExpanded:t,onToggle:s,isError:a,colorVariant:"purple",canExpand:!0,children:[f&&o.jsxs(o.Fragment,{children:[o.jsx(pe,{}),o.jsx("span",{className:"text-foreground/70 truncate min-w-0",title:d,children:f})]}),o.jsx(pe,{}),o.jsx(Ut,{children:i})]}),t&&a&&g&&o.jsx(Pt,{error:g,stack:l,showStack:!0}),t&&!a&&o.jsxs("div",{className:"mt-2 ml-5 flex flex-col gap-2 max-w-full",children:[o.jsx(nt,{title:"url",icon:o.jsx(fC,{className:"h-3 w-3"}),copyText:d,maxHeight:"",children:o.jsx("div",{className:"px-3 py-2 font-mono text-xs bg-muted/10 break-all",children:o.jsx("a",{href:d,target:"_blank",rel:"noopener noreferrer",className:"text-blue-600 dark:text-blue-400 hover:underline",children:d})})}),E.content&&o.jsx(nt,{title:"content",copyText:E.content,maxHeight:"max-h-80",children:o.jsx("div",{className:"px-3 py-2 text-xs text-foreground/80 whitespace-pre-wrap break-words",children:E.content})}),!E.content&&o.jsx(nt,{title:"content",maxHeight:"",children:o.jsx("div",{className:"px-3 py-2 text-muted-foreground/60 italic",children:"No content returned"})})]})]})}function Dm({contentJson:A,debug:e,sessionId:t,onRetry:s,onCompact:n}){const[r,i]=m.useState(!1),a=A.type==="balance_low"||A.errorType==="balance_low",g=A.type==="context_length_exceeded"||A.errorType==="context_length_exceeded";A.isRetryable;let l,B,u,E=!1;A.error&&typeof A.error=="object"?(l=A.error,l.message&&typeof l.message=="string"&&(B=l.message),l.type&&typeof l.type=="string"&&(u=l.type)):A.details&&typeof A.details=="object"?(l=A.details,A.message&&typeof A.message=="string"&&(B=A.message),A.type&&typeof A.type=="string"&&(u=A.type),A.isAborted===!0&&(E=!0)):(A.message&&typeof A.message=="string"&&(B=A.message),A.type&&typeof A.type=="string"&&(u=A.type),A.isAborted===!0&&(E=!0),l=A);let c;if(l?.responseBody&&typeof l.responseBody=="string")try{const K=JSON.parse(l.responseBody);K.error&&typeof K.error=="object"&&(c={type:typeof K.error.type=="string"?K.error.type:void 0,message:typeof K.error.message=="string"?K.error.message:void 0,code:typeof K.error.code=="string"?K.error.code:void 0})}catch{}const d=String(l?.url??"").includes("githubcopilot.com")||String(B??"").toLowerCase().includes("copilot model"),f=String(c?.message??B??"").toLowerCase(),p=d&&(c?.code==="model_not_supported"||f.includes("model is not supported")||f.includes("not available for this account/organization token"));if(c?.message?.toLowerCase().includes("not accessible via the /chat/completions")&&String(l?.url??"").includes("githubcopilot.com")){const K=l?.requestBodyValues?.model;return o.jsxs("div",{className:"space-y-3",children:[o.jsxs("div",{className:"space-y-1",children:[o.jsx("div",{className:"font-medium text-amber-600 dark:text-amber-400",children:"Model requires Responses API"}),o.jsx("p",{className:"text-sm text-foreground",children:K?o.jsxs(o.Fragment,{children:[o.jsx("code",{className:"px-1 py-0.5 bg-muted rounded text-xs",children:String(K)})," ","must be sent through the Responses API. If this persists, refresh auth and retry."]}):"This model must be sent through the Responses API. If this persists, refresh auth and retry."}),o.jsx("p",{className:"text-xs text-muted-foreground",children:"Codex models (gpt-5.1-codex, gpt-5.2-codex, etc.) require the Responses API. Try a chat-compatible model like gpt-5, claude-sonnet-4, or gpt-4.1."})]}),s&&o.jsx("div",{className:"pt-1",children:o.jsxs("button",{type:"button",onClick:s,className:"flex items-center gap-1.5 px-3 py-1.5 text-xs font-medium rounded bg-primary text-primary-foreground hover:bg-primary/90 transition-colors",children:[o.jsx(Zt,{className:"w-3 h-3"}),"Retry"]})})]})}if(p){const K=l?.requestBodyValues?.model;return o.jsxs("div",{className:"space-y-3",children:[o.jsxs("div",{className:"space-y-1",children:[o.jsx("div",{className:"font-medium text-amber-600 dark:text-amber-400",children:"Model not available"}),o.jsx("p",{className:"text-sm text-foreground",children:K?o.jsxs(o.Fragment,{children:[o.jsx("code",{className:"px-1 py-0.5 bg-muted rounded text-xs",children:String(K)})," ","is not available for the current Copilot token."]}):"The requested model is not available for the current Copilot token."}),o.jsx("p",{className:"text-xs text-muted-foreground",children:"Your org may restrict third-party OAuth apps, so OAuth and GH tokens can see different model entitlements."}),o.jsxs("p",{className:"text-xs text-muted-foreground",children:["Check model settings at"," ",o.jsx("a",{href:"https://github.com/settings/copilot",target:"_blank",rel:"noopener noreferrer",className:"underline hover:text-foreground transition-colors",onClick:W=>{W.preventDefault(),Co("https://github.com/settings/copilot")},children:"github.com/settings/copilot"}),", then reconnect Copilot with OAuth or token mode."]})]}),s&&o.jsx("div",{className:"pt-1",children:o.jsxs("button",{type:"button",onClick:s,className:"flex items-center gap-1.5 px-3 py-1.5 text-xs font-medium rounded bg-primary text-primary-foreground hover:bg-primary/90 transition-colors",children:[o.jsx(Zt,{className:"w-3 h-3"}),"Retry"]})})]})}if(a)return o.jsxs("div",{className:"space-y-3",children:[o.jsxs("div",{className:"flex items-center gap-2",children:[o.jsx(Kn,{className:"h-4 w-4 text-amber-500"}),o.jsx("span",{className:"font-medium text-foreground",children:"Balance too low"})]}),o.jsx("p",{className:"text-sm text-muted-foreground",children:"Top up in the modal, then retry your request."}),s&&o.jsx("div",{className:"pt-1",children:o.jsxs("button",{type:"button",onClick:s,className:"flex items-center gap-1.5 px-3 py-1.5 text-xs font-medium rounded bg-primary text-primary-foreground hover:bg-primary/90 transition-colors",children:[o.jsx(Zt,{className:"w-3 h-3"}),"Retry"]})})]});if(g)return o.jsxs("div",{className:"space-y-3",children:[o.jsxs("div",{className:"flex items-center gap-2",children:[o.jsx(qg,{className:"h-4 w-4 text-amber-500"}),o.jsx("span",{className:"font-medium text-foreground",children:"Context window exceeded"})]}),o.jsx("p",{className:"text-sm text-muted-foreground",children:"The conversation is too long for the model. Compact to reduce context size, then retry."}),o.jsxs("div",{className:"flex items-center gap-2 pt-1",children:[n&&o.jsxs("button",{type:"button",onClick:n,className:"flex items-center gap-1.5 px-3 py-1.5 text-xs font-medium rounded bg-primary text-primary-foreground hover:bg-primary/90 transition-colors",children:[o.jsx(qg,{className:"w-3 h-3"}),"Compact"]}),s&&o.jsxs("button",{type:"button",onClick:s,className:"flex items-center gap-1.5 px-3 py-1.5 text-xs font-medium rounded border border-border text-foreground hover:bg-muted transition-colors",children:[o.jsx(Zt,{className:"w-3 h-3"}),"Retry"]})]})]});const F=K=>{if(K==null)return o.jsx("span",{className:"text-muted-foreground",children:"null"});if(typeof K=="boolean")return o.jsx("span",{className:"text-amber-600 dark:text-amber-400",children:String(K)});if(typeof K=="number")return o.jsx("span",{className:"text-blue-600 dark:text-blue-400",children:K});if(typeof K=="string"){if(K.startsWith("{")||K.startsWith("["))try{const W=JSON.parse(K);return o.jsx("pre",{className:"mt-1 p-2 bg-muted/50 rounded text-xs overflow-x-auto",children:o.jsx("code",{children:JSON.stringify(W,null,2)})})}catch{}return o.jsx("span",{className:"text-foreground",children:K})}return typeof K=="object"?o.jsx("pre",{className:"mt-1 p-2 bg-muted/50 rounded text-xs overflow-x-auto",children:o.jsx("code",{children:JSON.stringify(K,null,2)})}):o.jsx("span",{className:"text-foreground",children:String(K)})},k=["name","statusCode","url","model","isRetryable","cause"],L=new Set;return o.jsxs("div",{className:"space-y-2 text-sm",children:[E&&o.jsx("div",{className:"text-amber-600 dark:text-amber-400 font-medium",children:"Request aborted"}),c?.message&&o.jsxs("div",{className:"space-y-1",children:[o.jsx("div",{className:"font-medium text-red-600 dark:text-red-400",children:"API Error:"}),o.jsx("div",{className:"text-foreground",children:c.message}),c.type&&o.jsxs("div",{className:"text-xs text-muted-foreground",children:["Type: ",c.type]})]}),!c?.message&&B&&o.jsxs("div",{className:"space-y-1",children:[o.jsx("div",{className:"font-medium text-red-600 dark:text-red-400",children:"Error:"}),o.jsx("div",{className:"text-foreground",children:B}),u&&o.jsxs("div",{className:"text-xs text-muted-foreground",children:["Type: ",u]})]}),s&&o.jsx("div",{className:"pt-2",children:o.jsxs("button",{type:"button",onClick:s,className:"flex items-center gap-1.5 px-3 py-1.5 text-xs font-medium rounded bg-primary text-primary-foreground hover:bg-primary/90 transition-colors",children:[o.jsx(Zt,{className:"w-3 h-3"}),"Retry"]})}),l&&o.jsx("div",{className:"space-y-1.5",children:k.map(K=>{const W=l[K];return W==null?null:(L.add(K),o.jsxs("div",{className:"flex gap-2",children:[o.jsxs("span",{className:"font-medium text-muted-foreground min-w-[100px]",children:[K,":"]}),F(W)]},K))})}),l&&o.jsxs("div",{className:"mt-3 border-t border-border pt-2",children:[o.jsxs("button",{type:"button",onClick:()=>i(!r),className:"flex items-center gap-1 text-xs text-muted-foreground hover:text-foreground transition-colors",children:[r?o.jsx(qt,{className:"h-3 w-3"}):o.jsx(St,{className:"h-3 w-3"}),r?"Hide":"View"," Raw Error Details"]}),r&&o.jsx("div",{className:"mt-2",children:o.jsx("pre",{className:"p-3 bg-muted/50 rounded text-xs overflow-x-auto max-h-96 overflow-y-auto",children:o.jsx("code",{children:JSON.stringify(l,null,2)})})})]}),e&&o.jsxs("details",{className:"mt-4 text-xs",children:[o.jsx("summary",{className:"cursor-pointer text-muted-foreground",children:"Debug Info"}),o.jsx("pre",{className:"mt-2 p-2 bg-muted/30 rounded overflow-x-auto",children:o.jsx("code",{children:JSON.stringify({contentJson:A,errorDetails:l,apiError:c},null,2)})})]})]})}function lc(A){return A?new Date(A).toLocaleDateString(void 0,{month:"short",day:"numeric",hour:"2-digit",minute:"2-digit"}):""}function ui({session:A,onNavigate:e,compact:t}){return t?o.jsxs("button",{type:"button",onClick:()=>e?.(A.id),disabled:!e,className:"w-full text-left py-1 px-2 rounded text-xs hover:bg-muted/50 transition-colors flex items-center justify-between gap-2",children:[o.jsx("span",{className:"truncate text-foreground",children:A.title||"Untitled"}),e&&o.jsx(Gt,{className:"w-3 h-3 text-muted-foreground flex-shrink-0"})]}):o.jsxs("button",{type:"button",onClick:()=>e?.(A.id),disabled:!e,className:"w-full text-left p-2 rounded-md border border-border hover:bg-muted/50 transition-colors group",children:[o.jsxs("div",{className:"flex items-center justify-between gap-2",children:[o.jsx("span",{className:"font-medium text-sm truncate text-foreground",children:A.title||"Untitled"}),e&&o.jsx(Gt,{className:"w-3 h-3 text-muted-foreground opacity-0 group-hover:opacity-100 transition-opacity flex-shrink-0"})]}),o.jsxs("div",{className:"flex items-center gap-2 text-xs text-muted-foreground mt-1",children:[A.agent&&o.jsx("span",{className:"text-violet-600 dark:text-violet-400",children:A.agent}),A.agent&&A.provider&&o.jsx("span",{children:"·"}),A.provider&&o.jsx("span",{children:A.provider}),A.messageCount!==void 0&&o.jsxs(o.Fragment,{children:[o.jsx("span",{children:"·"}),o.jsxs("span",{children:[A.messageCount," msgs"]})]}),A.createdAt&&o.jsxs(o.Fragment,{children:[o.jsx("span",{children:"·"}),o.jsx("span",{children:lc(A.createdAt)})]})]})]})}function Ml({message:A,onNavigate:e,compact:t}){const s="sessionId"in A?A.sessionId:"",n="sessionTitle"in A?A.sessionTitle:null,r="content"in A?A.content:"contentPreview"in A?A.contentPreview:"matchedContent"in A?A.matchedContent:"";return t?o.jsxs("button",{type:"button",onClick:()=>e?.(s),disabled:!e||!s,className:"w-full text-left py-1 px-2 rounded text-xs hover:bg-muted/50 transition-colors flex items-center justify-between gap-2",children:[o.jsx("span",{className:"truncate text-foreground/80",children:r?.slice(0,50)||n||s.slice(0,8)}),e&&s&&o.jsx(Gt,{className:"w-3 h-3 text-muted-foreground flex-shrink-0"})]}):o.jsxs("button",{type:"button",onClick:()=>e?.(s),disabled:!e||!s,className:"w-full text-left p-2 rounded-md border border-border hover:bg-muted/50 transition-colors group",children:[o.jsxs("div",{className:"flex items-center justify-between gap-2",children:[o.jsx("span",{className:"text-xs text-muted-foreground",children:n||s.slice(0,8)}),e&&s&&o.jsx(Gt,{className:"w-3 h-3 text-muted-foreground opacity-0 group-hover:opacity-100 transition-opacity flex-shrink-0"})]}),r&&o.jsx("div",{className:"text-xs text-foreground/80 mt-1 line-clamp-2",children:r}),o.jsxs("div",{className:"flex items-center gap-2 text-xs text-muted-foreground mt-1",children:[A.role&&o.jsx("span",{className:"capitalize",children:A.role}),A.createdAt&&o.jsxs(o.Fragment,{children:[o.jsx("span",{children:"·"}),o.jsx("span",{children:lc(A.createdAt)})]})]})]})}function bl({args:A,toolName:e}){const t=(i,a)=>a==null||typeof a=="boolean"&&!a||Array.isArray(a)&&a.length===0?null:o.jsxs("span",{className:"inline-flex items-center gap-1 px-1.5 py-0.5 rounded bg-muted text-muted-foreground",children:[o.jsxs("span",{className:"opacity-60",children:[i,":"]}),o.jsx("span",{className:"text-foreground/80",children:typeof a=="string"?a:JSON.stringify(a)})]},i),r=({query_sessions:["agent","sessionType","startDate","endDate"],query_messages:["sessionId","role","search","toolName"],search_history:["query"],get_session_context:["sessionId","includeMessages"],get_parent_session:["includeMessages"]}[e]||Object.keys(A).slice(0,3)).filter(i=>A[i]!==void 0&&A[i]!==null).map(i=>t(i,A[i])).filter(Boolean);return r.length===0?null:o.jsxs("div",{className:"flex items-center gap-1.5 flex-wrap text-xs mb-2 pb-2 border-b border-border",children:[o.jsx(wC,{className:"w-3 h-3 text-muted-foreground flex-shrink-0"}),r]})}function ym({toolName:A,contentJson:e,toolDurationMs:t,isExpanded:s,onToggle:n,onNavigateToSession:r,compact:i}){const a=e.result||{},g=e.args||{},l=typeof a=="object"&&"ok"in a&&a.ok===!1,B=l&&"error"in a&&typeof a.error=="string"?a.error:null,u=Mt(t);if(A==="present_action"){const d=a.links||[],f=a.summary,p=a.title;return d.length===0&&!f?null:o.jsxs("div",{className:"mt-2 mb-1",children:[p&&o.jsx("div",{className:"text-sm font-medium text-foreground mb-1.5",children:p}),f&&o.jsxs("div",{className:"text-xs text-muted-foreground mb-2 flex items-center gap-1.5",children:[o.jsx(mC,{className:"w-3.5 h-3.5 text-teal-500"}),o.jsx("span",{children:f})]}),d.length>0&&o.jsx("div",{className:"space-y-1.5",children:d.map(D=>o.jsxs("button",{type:"button",onClick:()=>r?.(D.sessionId),disabled:!r,className:"w-full text-left px-3 py-2 rounded-lg border border-teal-500/30 bg-teal-500/5 hover:bg-teal-500/10 transition-colors group flex items-center justify-between gap-2",children:[o.jsxs("div",{children:[o.jsx("div",{className:"font-medium text-sm text-foreground",children:D.title}),D.description&&o.jsx("div",{className:"text-xs text-muted-foreground mt-0.5",children:D.description})]}),r&&o.jsx(Gt,{className:"w-4 h-4 text-teal-600 dark:text-teal-400 opacity-60 group-hover:opacity-100 transition-opacity flex-shrink-0"})]},D.sessionId))})]})}const E=()=>{switch(A){case"query_sessions":{const d=a.sessions||[],f=a.total;return`${d.length} session${d.length!==1?"s":""}${f?` of ${f}`:""}`}case"query_messages":{const d=a.messages||[];return`${d.length} message${d.length!==1?"s":""}`}case"search_history":{const d=g.query,f=a.results||[],p=d?`"${d.slice(0,20)}${d.length>20?"…":""}"`:"";return`${f.length} result${f.length!==1?"s":""}${p?` for ${p}`:""}`}case"get_session_context":return a.session?.title||g.sessionId?.slice(0,8)||"session";case"get_parent_session":return a.parentSession?.title||"parent session";default:return A}},c=()=>{const d=Object.keys(g).length>0&&!i;switch(A){case"query_sessions":{const f=a.sessions||[];return o.jsxs("div",{className:i?"p-1":"p-2",children:[d&&o.jsx(bl,{args:g,toolName:A}),f.length===0?o.jsx("div",{className:"text-xs text-muted-foreground",children:"No sessions found"}):o.jsxs("div",{className:i?"space-y-0.5":"space-y-2",children:[f.slice(0,i?5:10).map(p=>o.jsx(ui,{session:p,onNavigate:r,compact:i},p.id)),f.length>(i?5:10)&&o.jsxs("div",{className:"text-xs text-muted-foreground text-center",children:["+",f.length-(i?5:10)," more"]})]})]})}case"query_messages":{const f=a.messages||[];return o.jsxs("div",{className:i?"p-1":"p-2",children:[d&&o.jsx(bl,{args:g,toolName:A}),f.length===0?o.jsx("div",{className:"text-xs text-muted-foreground",children:"No messages found"}):o.jsxs("div",{className:i?"space-y-0.5":"space-y-2",children:[f.slice(0,i?5:10).map(p=>o.jsx(Ml,{message:p,onNavigate:r,compact:i},p.id)),f.length>(i?5:10)&&o.jsxs("div",{className:"text-xs text-muted-foreground text-center",children:["+",f.length-(i?5:10)," more"]})]})]})}case"search_history":{const f=a.results||[],p=g.query;return o.jsxs("div",{className:i?"p-1":"p-2",children:[p&&!i&&o.jsxs("div",{className:"flex items-center gap-1.5 text-xs mb-2 pb-2 border-b border-border",children:[o.jsx(zo,{className:"w-3 h-3 text-muted-foreground flex-shrink-0"}),o.jsx("span",{className:"text-muted-foreground",children:"Query:"}),o.jsxs("span",{className:"text-foreground font-medium",children:['"',p,'"']})]}),f.length===0?o.jsx("div",{className:"text-xs text-muted-foreground",children:"No results found"}):o.jsxs("div",{className:i?"space-y-0.5":"space-y-2",children:[f.slice(0,i?5:10).map((D,F)=>o.jsx(Ml,{message:D,onNavigate:r,compact:i},`${D.sessionId}-${D.messageId}-${F}`)),f.length>(i?5:10)&&o.jsxs("div",{className:"text-xs text-muted-foreground text-center",children:["+",f.length-(i?5:10)," more"]})]})]})}case"get_session_context":case"get_parent_session":{const f=A==="get_parent_session"?a.parentSession:a.session,p=a.stats,D=a.messages;return f?i?o.jsx("div",{className:"p-1",children:o.jsx(ui,{session:f,onNavigate:r,compact:!0})}):o.jsxs("div",{className:"p-2 space-y-3",children:[o.jsx(ui,{session:f,onNavigate:r}),p&&o.jsxs("div",{className:"flex gap-4 text-xs text-muted-foreground",children:[p.totalMessages!==void 0&&o.jsxs("span",{children:[p.totalMessages," messages"]}),p.totalToolCalls!==void 0&&o.jsxs("span",{children:[p.totalToolCalls," tool calls"]})]}),D&&D.length>0&&o.jsxs("div",{className:"space-y-1",children:[o.jsx("div",{className:"text-xs font-medium text-muted-foreground",children:"Recent messages:"}),o.jsx("div",{className:"space-y-1 max-h-48 overflow-y-auto",children:D.slice(0,5).map(F=>o.jsxs("div",{className:"text-xs p-1.5 rounded bg-muted/30",children:[o.jsxs("span",{className:"font-medium capitalize text-foreground/70",children:[F.role,":"," "]}),o.jsx("span",{className:"text-foreground/60 line-clamp-2",children:F.content})]},F.id))})]})]}):o.jsx("div",{className:`text-xs text-muted-foreground ${i?"p-1":"p-2"}`,children:"Session not found"})}default:return o.jsx("pre",{className:"text-xs p-2 overflow-auto max-h-48",children:JSON.stringify(a,null,2)})}};return o.jsxs("div",{className:"text-[12px]",children:[o.jsxs(uo,{toolName:A,isExpanded:s,onToggle:n,isError:l,colorVariant:"default",canExpand:!0,children:[!i&&o.jsxs(o.Fragment,{children:[o.jsx(pe,{}),o.jsx("span",{className:"text-foreground/70 min-w-0 truncate",children:E()})]}),!l&&!i&&o.jsxs(o.Fragment,{children:[o.jsx(pe,{}),o.jsx(tr,{children:"Done"}),o.jsx(pe,{}),o.jsx(Ut,{children:u})]}),l&&!i&&o.jsxs(o.Fragment,{children:[o.jsx(pe,{}),o.jsx(Kr,{children:"Error"}),o.jsxs(Ut,{children:["· ",u]})]})]}),s&&l&&B&&o.jsx(Pt,{error:B}),s&&!l&&o.jsx("div",{className:i?"mt-1 ml-3":"mt-2 ml-5",children:i?o.jsx("div",{className:"border border-border rounded-md overflow-hidden max-h-48 overflow-y-auto",children:c()}):o.jsx(nt,{title:"results",maxHeight:"max-h-96",children:c()})})]})}const Nm=/[\x1B\x9B][[()#;?]*(?:[0-9]{1,4}(?:;[0-9]{0,4})*)?[0-9A-ORZcf-nq-uy=><~]/g,km=/[\x00-\x08\x0B\x0C\x0E-\x1F\x7F]/g;function Mm(A){return A.replace(Nm,"").replace(km,"").replace(/\\n/g,`
|
|
113
|
+
`).replace(/\r\n/g,`
|
|
114
|
+
`).replace(/\r/g,`
|
|
115
|
+
`)}function bm({contentJson:A,toolDurationMs:e,isExpanded:t,onToggle:s,compact:n}){const[,r]=m.useState(!1);m.useEffect(()=>{ac().then(()=>r(!0))},[]);const i=A.result||{},a=A.args||{},g=String(a.operation||a.command||""),l=typeof i=="object"&&"ok"in i&&i.ok===!1,B=l&&"error"in i&&typeof i.error=="string"?i.error:null,u=l&&"stack"in i&&typeof i.stack=="string"?i.stack:void 0,E=Mt(e),c=String(i.terminalId||a.terminalId||""),d=c.length>12?`${c.slice(0,12)}…`:c,f=String(i.purpose||a.purpose||""),p=String(i.command||a.command||""),D=()=>{const X=i.pid?`PID ${i.pid}`:"";return o.jsxs("div",{className:"mt-2 ml-5 flex flex-col gap-1 text-xs",children:[p&&o.jsxs("div",{className:"flex items-center gap-2 text-foreground/70",children:[o.jsx(so,{className:"h-3 w-3"}),o.jsx("code",{className:"font-mono",children:p})]}),f&&o.jsx("div",{className:"text-muted-foreground/70",children:f}),o.jsxs("div",{className:"flex items-center gap-2 text-muted-foreground/60",children:[d&&o.jsx("span",{className:"font-mono",children:d}),X&&o.jsxs(o.Fragment,{children:[o.jsx("span",{children:"·"}),o.jsx("span",{children:X})]})]})]})},F=()=>{const X=String(i.text||i.output||""),U=Mm(X),O=String(i.status||""),T=i.exitCode,H=typeof i.lines=="number"?i.lines:0;return o.jsxs("div",{className:"mt-2 ml-5 flex flex-col gap-2 max-w-full",children:[o.jsxs("div",{className:"flex items-center gap-2 text-xs text-muted-foreground/70",children:[d&&o.jsx("span",{className:"font-mono",children:d}),o.jsx("span",{children:"·"}),o.jsxs("span",{children:[H," lines"]}),o.jsx("span",{children:"·"}),o.jsxs("span",{className:O==="running"?"text-emerald-600 dark:text-emerald-400":"",children:[O,O==="exited"&&T!==void 0?` (${T})`:""]})]}),U.trim()&&o.jsx(nt,{title:"output",copyText:U,maxHeight:"max-h-[30rem]",children:o.jsx("pre",{className:"px-3 py-2 text-xs text-foreground/85 whitespace-pre-wrap break-words overflow-x-auto",style:{fontFamily:da},children:U})})]})},k=()=>{const X=Array.isArray(i.terminals)?i.terminals:[],U=typeof i.count=="number"?i.count:X.length;return o.jsxs("div",{className:"mt-2 ml-5 flex flex-col gap-1 text-xs",children:[o.jsxs("div",{className:"text-muted-foreground/70",children:[U," terminal",U!==1?"s":""]}),X.slice(0,8).map((O,T)=>o.jsxs("div",{className:"flex items-center gap-2 text-foreground/70 font-mono",children:[o.jsx("span",{className:`h-2 w-2 rounded-full ${O.status==="running"?"bg-emerald-500":"bg-muted-foreground/40"}`}),o.jsx("span",{className:"truncate max-w-[100px]",children:String(O.id||"").slice(0,12)}),o.jsx("span",{className:"text-muted-foreground/60 truncate",children:String(O.purpose||"")})]},String(O.id||T)))]})},L=()=>{const X=String(a.input||"");return X?o.jsx("div",{className:"mt-2 ml-5 text-xs",children:o.jsx("code",{className:"font-mono text-foreground/70 whitespace-pre-wrap",children:X})}):null},W=`terminal ${g||"terminal"}`,$=!l&&(g==="start"||g==="read"||g==="list"||g==="write"&&(a.input||i.message));return o.jsxs("div",{className:"text-[12px]",children:[o.jsxs(uo,{toolName:W,isExpanded:t,onToggle:s,isError:!!l,colorVariant:"amber",canExpand:!!$||!!l,children:[!n&&d&&o.jsxs(o.Fragment,{children:[o.jsx(pe,{}),o.jsx("span",{className:"text-foreground/70 font-mono text-[11px]",children:d})]}),!n&&f&&!d&&o.jsxs(o.Fragment,{children:[o.jsx(pe,{}),o.jsx("span",{className:"text-foreground/70 text-[11px] truncate max-w-xs",children:f})]}),!l&&!n&&o.jsxs(o.Fragment,{children:[o.jsx(pe,{}),o.jsx(tr,{children:"ok"}),o.jsx(pe,{}),o.jsx(Ut,{children:E})]}),l&&!n&&o.jsxs(Ut,{children:["· ",E]})]}),t&&l&&B&&o.jsx(Pt,{error:B,stack:u,showStack:!0}),t&&!l&&g==="start"&&D(),t&&!l&&g==="read"&&F(),t&&!l&&g==="list"&&k(),t&&!l&&g==="write"&&L()]})}function Fm(A){const e=A.indexOf("__");return e===-1?{server:"",tool:A}:{server:A.slice(0,e),tool:A.slice(e+2)}}function Gm(A){return A.includes("__")}function vm({toolName:A,contentJson:e,toolDurationMs:t,isExpanded:s,onToggle:n,compact:r}){const{server:i,tool:a}=Fm(A),g=e.result||{},l=e.args||{},B=Mt(t),u=document?.documentElement.classList.contains("dark")?Io:ho,E=typeof g=="object"&&"ok"in g&&g.ok===!1,c=E&&"error"in g&&typeof g.error=="string"?g.error:typeof e.error=="string"?e.error:null,d=E&&"stack"in g&&typeof g.stack=="string"?g.stack:void 0,f=typeof g.result=="string"?g.result:g.result&&typeof g.result=="object"?JSON.stringify(g.result,null,2):null,p=Array.isArray(g.images)?g.images:[],D=p.length>0,F=!E&&(f||Object.keys(g).length>0||D),k=f||JSON.stringify(g,null,2),L=k.startsWith("{")||k.startsWith("["),K=Object.entries(l).slice(0,3).map(([$,X])=>{const U=typeof X=="string"?X.length>30?`${X.slice(0,27)}…`:X:JSON.stringify(X);return`${$}=${U}`}).join(" "),W=i?`${i} › ${a}`:a;return o.jsxs("div",{className:"text-[12px]",children:[o.jsxs(uo,{toolName:W,isExpanded:s,onToggle:n,isError:!!E,colorVariant:"purple",canExpand:!!F||!!E||D,children:[!r&&K&&o.jsxs(o.Fragment,{children:[o.jsx(pe,{}),o.jsx("span",{className:"text-foreground/60 truncate max-w-xs font-mono text-[11px]",children:K})]}),!E&&!r&&o.jsxs(o.Fragment,{children:[o.jsx(pe,{}),o.jsx(tr,{children:"ok"}),o.jsx(pe,{}),o.jsx(Ut,{children:B})]}),E&&!r&&o.jsxs(o.Fragment,{children:[o.jsx(pe,{}),o.jsx(Kr,{children:"error"}),o.jsx(pe,{}),o.jsx(Ut,{children:B})]})]}),s&&E&&c&&o.jsx(Pt,{error:c,stack:d,showStack:!0}),s&&!E&&F&&o.jsxs("div",{className:"mt-2 ml-5 flex flex-col gap-2 max-w-full",children:[D&&o.jsx(gc,{images:p}),k&&!D&&o.jsx(nt,{title:"result",icon:o.jsx(kr,{className:"h-3 w-3"}),copyText:k,maxHeight:"max-h-[30rem]",children:o.jsx(Yt,{language:L?"json":"text",style:u,customStyle:{margin:0,padding:"0.75rem",fontSize:"0.75rem",lineHeight:"1.5",background:"transparent",maxWidth:"100%"},wrapLines:!0,wrapLongLines:!0,children:k})})]})]})}function Sm({contentJson:A,toolDurationMs:e,isExpanded:t,onToggle:s,compact:n}){const r=A.result||{},i=A.args||{},a=Mt(e),g=Array.isArray(i.tools)?i.tools:[],l=Array.isArray(r.loaded)?r.loaded:[],B=Array.isArray(r.notFound)?r.notFound:[],u=r.ok===!1,E=l.length>0||B.length>0;return o.jsxs("div",{className:"text-[12px]",children:[o.jsxs(uo,{toolName:"load_mcp_tools",isExpanded:t,onToggle:s,isError:u,colorVariant:"purple",canExpand:E,children:[!n&&o.jsxs(o.Fragment,{children:[o.jsx(pe,{}),o.jsxs("span",{className:"text-foreground/60 font-mono text-[11px]",children:[g.length," tool",g.length!==1?"s":""]})]}),!u&&!n&&o.jsxs(o.Fragment,{children:[o.jsx(pe,{}),o.jsxs(tr,{children:[l.length," loaded"]}),o.jsx(pe,{}),o.jsx(Ut,{children:a})]}),u&&!n&&o.jsxs(o.Fragment,{children:[o.jsx(pe,{}),o.jsx(Kr,{children:"error"}),o.jsx(pe,{}),o.jsx(Ut,{children:a})]})]}),t&&E&&o.jsxs("div",{className:"mt-1.5 ml-5 flex flex-col gap-1",children:[l.map(c=>o.jsxs("div",{className:"flex items-center gap-1.5 text-[11px]",children:[o.jsx(Ht,{className:"h-3 w-3 text-green-500"}),o.jsx(kr,{className:"h-3 w-3 text-purple-400"}),o.jsx("span",{className:"font-mono text-foreground/70",children:c})]},c)),B.map(c=>o.jsxs("div",{className:"flex items-center gap-1.5 text-[11px]",children:[o.jsx(ot,{className:"h-3 w-3 text-red-400"}),o.jsx("span",{className:"font-mono text-foreground/40 line-through",children:c})]},c))]})]})}function Um({contentJson:A,toolDurationMs:e,isExpanded:t,onToggle:s,compact:n}){const r=A.result||{},i=Mt(e),a=typeof r=="object"&&"ok"in r&&r.ok===!1,g=a&&"error"in r&&typeof r.error=="string"?r.error:null,l=r.name,B=r.description,u=r.content,E=r.scope,c=r.availableFiles,d=r.securityNotices,f=B?.startsWith("Sub-file:"),p=c?.length??0,D=d?.length??0,F=!!u||a;return o.jsxs("div",{className:"text-[12px]",children:[o.jsxs("button",{type:"button",onClick:()=>F&&s(),className:`flex items-center gap-2 transition-colors w-full min-w-0 ${a?"text-red-700 dark:text-red-300 hover:text-red-600 dark:hover:text-red-200":F?"text-violet-700 dark:text-violet-300 hover:text-violet-600 dark:hover:text-violet-200":"text-violet-700 dark:text-violet-300"}`,children:[F?o.jsx(St,{className:`h-3 w-3 flex-shrink-0 transition-transform ${t?"rotate-90":""}`}):o.jsx("div",{className:"w-3 flex-shrink-0"}),a&&o.jsx(wo,{className:"h-3 w-3 flex-shrink-0 text-red-600 dark:text-red-400"}),f?o.jsx(ss,{className:"h-3 w-3 flex-shrink-0"}):o.jsx(VQ,{className:"h-3 w-3 flex-shrink-0"}),o.jsxs("span",{className:"font-medium flex-shrink-0",children:["skill",a?" error":""]}),l&&!n&&o.jsxs(o.Fragment,{children:[o.jsx("span",{className:"text-muted-foreground/70 flex-shrink-0",children:"·"}),o.jsx("span",{className:"text-foreground/70 truncate",children:f?B?.replace("Sub-file: ",""):l})]}),E&&!n&&!f&&o.jsxs("span",{className:"text-muted-foreground/80 flex-shrink-0",children:["· ",E]}),p>0&&!n&&o.jsxs("span",{className:"text-muted-foreground/80 flex-shrink-0",children:["· ",p," file",p!==1?"s":""]}),D>0&&!n&&o.jsxs("span",{className:"text-amber-600 dark:text-amber-400 flex-shrink-0 flex items-center gap-0.5",children:["· ",o.jsx(Yg,{className:"h-3 w-3 inline"})," ",D]}),i&&!n&&o.jsxs("span",{className:"text-muted-foreground/80 flex-shrink-0",children:["· ",i]})]}),t&&a&&g&&o.jsx(Pt,{error:g}),t&&!a&&o.jsxs("div",{className:"mt-2 ml-5 space-y-2",children:[D>0&&d&&o.jsxs("div",{className:"bg-amber-50 dark:bg-amber-950/30 border border-amber-200 dark:border-amber-800 rounded-lg p-2.5 space-y-1",children:[o.jsxs("div",{className:"flex items-center gap-1.5 text-amber-700 dark:text-amber-300 font-medium text-[11px]",children:[o.jsx(Yg,{className:"h-3 w-3"}),"Security Notice",D>1?"s":""]}),d.map((k,L)=>o.jsxs("div",{className:"text-amber-600 dark:text-amber-400 text-[11px] leading-snug",children:[o.jsx("span",{className:"font-mono bg-amber-100 dark:bg-amber-900/40 rounded px-1 py-0.5",children:k.type})," ",k.description]},`${k.type}-${k.line??L}`))]}),B&&!f&&o.jsx("p",{className:"text-muted-foreground italic",children:B}),u&&o.jsx("div",{className:"bg-card/60 border border-border rounded-lg overflow-hidden max-h-96 overflow-y-auto max-w-full",children:o.jsx("div",{className:"p-3 whitespace-pre-wrap font-mono text-xs leading-relaxed",children:u})}),p>0&&c&&o.jsxs("details",{className:"group",children:[o.jsxs("summary",{className:"text-muted-foreground cursor-pointer hover:text-foreground/80 text-[11px] select-none",children:[p," available sub-file",p!==1?"s":""]}),o.jsx("div",{className:"mt-1.5 bg-card/40 border border-border rounded-lg p-2 space-y-0.5 max-h-48 overflow-y-auto",children:c.map(k=>o.jsxs("div",{className:"flex items-center justify-between gap-2 font-mono text-[11px]",children:[o.jsx("span",{className:"text-foreground/80 truncate",children:k.relativePath}),o.jsx("span",{className:"text-muted-foreground/60 flex-shrink-0 tabular-nums",children:Rm(k.size)})]},k.relativePath))})]})]})]})}function Rm(A){if(A<1024)return`${A}B`;const e=A/1024;return e<1024?`${e.toFixed(1)}KB`:`${(e/1024).toFixed(1)}MB`}function Km({part:A}){const[e,t]=m.useState(!0),s=m.useRef(null),n=m.useRef(!1);let r="";const i=A.contentJson||A.content;return i&&typeof i=="object"&&"text"in i?r=String(i.text):typeof i=="string"&&(r=i),m.useEffect(()=>{s.current&&e&&!A.completedAt&&!n.current&&(s.current.scrollTop=s.current.scrollHeight)},[r,e,A.completedAt]),!r||!r.trim()?null:o.jsxs("div",{className:"w-full",children:[o.jsxs("button",{type:"button",onClick:()=>t(!e),className:"flex items-center gap-2 text-xs text-muted-foreground hover:text-foreground transition-colors w-full",children:[e?o.jsx(qt,{className:"h-3 w-3 flex-shrink-0"}):o.jsx(St,{className:"h-3 w-3 flex-shrink-0"}),o.jsx("span",{className:"font-medium",children:"Reasoning"}),!A.completedAt&&o.jsx("span",{className:"text-muted-foreground/60 animate-pulse",children:"thinking..."})]}),e&&o.jsx("div",{ref:s,className:"mt-2 p-3 bg-muted/30 rounded-md border border-border max-h-48 overflow-y-auto",role:"log",onMouseEnter:()=>{n.current=!0},onMouseLeave:()=>{n.current=!1},children:o.jsx("div",{className:"text-sm text-muted-foreground whitespace-pre-wrap font-mono",children:r})})]})}const Lm={Read:"read",Edit:"edit",MultiEdit:"multiedit",Write:"write",CopyInto:"copy_into",Ls:"ls",Tree:"tree",Cd:"cd",Pwd:"pwd",Glob:"glob",Grep:"ripgrep",Shell:"shell",Bash:"shell",bash:"shell",Terminal:"terminal",GitStatus:"git_status",GitDiff:"git_diff",GitCommit:"git_commit",ApplyPatch:"apply_patch",UpdateTodos:"update_todos",UpdatePlan:"update_todos",ProgressUpdate:"progress_update",Finish:"finish",WebSearch:"websearch",LoadMcpTools:"load_mcp_tools",Skill:"skill"};function Jm(A){return Lm[A]??A}const jm=new Set(["shell","edit","multiedit","write","copy_into","apply_patch","terminal"]);function ha({toolName:A,contentJson:e,toolDurationMs:t,debug:s,onNavigateToSession:n,compact:r,sessionId:i,onRetry:a,onCompact:g}){const[l,B]=m.useState(!1),u=Jm(A),E=r&&!jm.has(u),d={contentJson:e,toolDurationMs:t??void 0,isExpanded:l,onToggle:()=>B(!l),compact:E};if(s)return o.jsx(fm,{...d,toolName:A});switch(u){case"read":return o.jsx(sm,{...d});case"edit":case"multiedit":case"copy_into":return o.jsx(kl,{...d,toolName:u});case"write":return o.jsx(rm,{...d});case"shell":return o.jsx(gm,{...d});case"git_status":return o.jsx(cm,{...d});case"git_diff":return o.jsx(Em,{...d});case"git_commit":return o.jsx(Cm,{...d});case"apply_patch":return o.jsx(kl,{...d});case"terminal":return o.jsx(bm,{...d});case"ls":return o.jsx(um,{...d});case"tree":return o.jsx(Im,{...d});case"ripgrep":case"grep":case"glob":return o.jsx(dm,{...d});case"websearch":return o.jsx(xm,{...d});case"finish":return o.jsx(hm,{...d});case"update_todos":case"update_plan":return o.jsx(mm,{...d});case"progress_update":return o.jsx(wm,{...d});case"load_mcp_tools":return o.jsx(Sm,{...d,toolName:A});case"skill":return o.jsx(Um,{...d});case"error":return o.jsx(Dm,{...d,sessionId:i,onRetry:a,onCompact:g});case"query_sessions":case"query_messages":case"search_history":case"get_session_context":case"get_parent_session":case"present_action":return o.jsx(ym,{toolName:A,...d,onNavigateToSession:n});default:return Gm(u)?o.jsx(vm,{...d,toolName:A}):o.jsx(pm,{...d,toolName:A})}}const Qc=m.createContext("normal");function Tm({density:A,children:e}){return o.jsx(Qc.Provider,{value:A,children:e})}function Om(){return m.useContext(Qc)}function ug(){return Om()==="compact"}function pa(A){const e=A.contentJson;if(e&&typeof e=="object")return e;try{if(A.content){const t=JSON.parse(A.content);if(t&&typeof t=="object"&&!Array.isArray(t))return t}}catch{}return null}function qm(A){const e=pa(A);if(!e)return;const t=e.args;if(t&&typeof t=="object"&&!Array.isArray(t))return t}function Ym(A){if(!A)return null;const e=["cmd","command","script","input"];for(const t of e){const s=A[t];if(typeof s=="string"&&s.trim().length>0)return s.trim()}return null}function Hm(A){return A.match(/^\*\*\*\s+(?:Update|Add|Delete|Replace in):\s+(.+)$/m)?.[1]?.trim()||null}function Bc(A){return A==="bash"?"shell":A}function fa(A){return Bc(A)==="shell"}function Pm(A,e){if(!e)return null;const t=[{key:"path",match:!0},{key:"file",match:!0},{key:"target",match:!0},{key:"cwd",match:!0},{key:"query",match:!0},{key:"pattern",match:!0},{key:"glob",match:!0},{key:"dir",match:!0}];for(const{key:s}of t){const n=e[s];if(typeof n=="string"&&n.trim().length>0)return{key:s,value:n.trim()}}if(fa(A)){const s=e.command;if(typeof s=="string"&&s.trim().length>0)return{key:"command",value:s.trim()}}if(A==="apply_patch"){const s=e.patch;if(typeof s=="string"&&s.trim().length>0){const n=Hm(s);if(n)return{key:"patch",value:n}}}return null}function Wm(A,e){if(!A)return null;const t=[];for(const[n,r]of Object.entries(A))if(!(e&&n===e)){if(typeof r=="string"||typeof r=="number"){const i=`${n}=${String(r)}`;t.push(i)}if(t.length>=3)break}if(!t.length)return null;const s=t.join(" ");return s.length>120?`${s.slice(0,117)}…`:s}const Fl=m.memo(function({part:e,showLine:t,isLastToolCall:s,isLastProgressUpdate:n,onNavigateToSession:r,compact:i,pendingApproval:a,onApprove:g,onReject:l,sessionId:B,onRetry:u,onCompact:E}){const c=ug();if(e.type==="tool_call"&&((e.toolName||"")==="progress_update"||!s&&!a)||e.type==="tool_result"&&e.toolName==="progress_update"&&!n)return null;if(e.type==="text"){const L=e.contentJson||e.content;let K="";if(L&&typeof L=="object"&&"text"in L?K=String(L.text):typeof L=="string"&&(K=L),!K||!K.trim())return null}if(e.type==="reasoning"){const L=e.contentJson||e.content;let K="";if(L&&typeof L=="object"&&"text"in L?K=String(L.text):typeof L=="string"&&(K=L),!K||!K.trim())return null}const d=e.type==="tool_call"||e.type==="tool_result",f=["flex-1","min-w-0","max-w-full"];d||e.type==="reasoning"?f.push(i?"pt-0.5":"pt-1"):e.type==="error"?f.push("pt-0.5"):e.type==="text"?(f.push("pt-0"),f.push("-mt-0.5")):f.push("pt-0");const p=f.join(" "),D=()=>{if(e.type==="reasoning")return o.jsx(Rn,{className:"h-4 w-4 text-indigo-600 dark:text-indigo-300"});if(e.type==="tool_call")return o.jsx(Je,{className:"h-4 w-4 text-amber-600 dark:text-amber-300 animate-spin"});if(e.type==="error")return pa(e)?.isAborted===!0?o.jsx(xC,{className:"h-4 w-4 text-amber-600 dark:text-amber-400"}):o.jsx(wo,{className:"h-4 w-4 text-red-600 dark:text-red-400"});if(e.type==="tool_result"){const L=e.toolName||"";return L==="read"?o.jsx(ss,{className:"h-4 w-4 text-blue-600 dark:text-blue-300"}):L==="write"||L==="copy_into"?o.jsx(Fo,{className:"h-4 w-4 text-emerald-600 dark:text-emerald-300"}):L==="ls"?o.jsx(DC,{className:"h-4 w-4 text-cyan-600 dark:text-cyan-300"}):L==="tree"?o.jsx(hr,{className:"h-4 w-4 text-cyan-600 dark:text-cyan-300"}):fa(L)?o.jsx(so,{className:"h-4 w-4 text-muted-foreground"}):L==="ripgrep"||L==="grep"||L==="glob"?o.jsx(zo,{className:"h-4 w-4 text-amber-600 dark:text-amber-300"}):L==="apply_patch"?o.jsx(Vi,{className:"h-4 w-4 text-purple-600 dark:text-purple-300"}):L==="git_status"?o.jsx(go,{className:"h-4 w-4 text-blue-600 dark:text-blue-300"}):L==="git_diff"?o.jsx(Vi,{className:"h-4 w-4 text-purple-600 dark:text-purple-300"}):L==="git_commit"?o.jsx(dn,{className:"h-4 w-4 text-emerald-600 dark:text-emerald-300"}):L==="finish"?o.jsx(Ht,{className:"h-4 w-4 text-emerald-600 dark:text-emerald-300"}):L==="query_sessions"||L==="query_messages"||L==="search_history"||L==="get_session_context"||L==="get_parent_session"?o.jsx(yC,{className:"h-4 w-4 text-teal-600 dark:text-teal-300"}):L==="terminal"?o.jsx(so,{className:"h-4 w-4 text-amber-600 dark:text-amber-300"}):L==="skill"?o.jsx(VQ,{className:"h-4 w-4 text-violet-600 dark:text-violet-300"}):L.includes("__")?o.jsx(kr,{className:"h-4 w-4 text-purple-600 dark:text-purple-300"}):o.jsx(so,{className:"h-4 w-4 text-muted-foreground"})}return o.jsx(_t,{className:"h-4 w-4 text-violet-600 dark:text-violet-300"})},F=()=>{const L=e.toolName||"";let K;try{e.contentJson&&typeof e.contentJson=="object"?K=e.contentJson:typeof e.content=="string"?K=JSON.parse(e.content):K={}}catch{K={result:e.content}}return o.jsx(ha,{toolName:L,contentJson:K,toolDurationMs:e.toolDurationMs,debug:!1,onNavigateToSession:r,compact:i})},k=()=>{if(e.type==="reasoning")return o.jsx(Km,{part:e});if(e.type==="text"){let L="";const K=e.contentJson||e.content;return K&&typeof K=="object"&&"text"in K?L=String(K.text):typeof K=="string"?L=K:K&&(L=JSON.stringify(K,null,2)),o.jsxs("div",{className:"relative group",children:[o.jsx("div",{className:"absolute -top-1 right-0 opacity-0 group-hover:opacity-100 transition-opacity z-10",children:o.jsx(En,{text:L,className:"bg-background/80 backdrop-blur-sm border border-border/50 shadow-sm",size:"md"})}),o.jsx("div",{className:`${c?"text-[14px]":"text-base"} text-foreground leading-relaxed markdown-content max-w-full overflow-x-auto`,children:o.jsx(za,{remarkPlugins:[Va],components:{a:({href:W,children:$,...X})=>o.jsx("a",{href:W,target:"_blank",rel:"noopener noreferrer",className:"text-primary underline decoration-primary/35 underline-offset-2 transition-colors hover:text-primary/90 hover:decoration-primary",onClick:U=>{window.self!==window.top&&W&&(U.preventDefault(),window.parent.postMessage({type:"otto-open-url",url:W},"*"))},...X,children:$}),pre:({children:W,...$})=>{const X=(()=>{if(!W)return"";const U=Array.isArray(W)?W[0]:W;if(U&&typeof U=="object"&&"props"in U){const O=U.props;if(typeof O.children=="string")return O.children}return""})();return o.jsxs("div",{className:"relative group/code my-3",children:[o.jsx("div",{className:"absolute top-2 right-2 opacity-0 group-hover/code:opacity-100 transition-opacity z-10",children:o.jsx(En,{text:X,className:"bg-background/80 backdrop-blur-sm border border-border/50 shadow-sm",size:"sm"})}),o.jsx("pre",{...$,className:"overflow-x-auto",children:W})]})},table:({children:W,...$})=>o.jsx("div",{className:"overflow-x-auto max-w-full min-w-0 my-3",children:o.jsx("table",{...$,children:W})})},children:L})}),L.length>500&&o.jsx("div",{className:"absolute -bottom-1 right-0 opacity-0 group-hover:opacity-100 transition-opacity z-10",children:o.jsx(En,{text:L,className:"bg-background/80 backdrop-blur-sm border border-border/50 shadow-sm",size:"md"})})]})}if(e.type==="error"){let L;try{e.contentJson&&typeof e.contentJson=="object"?L=e.contentJson:typeof e.content=="string"?L=JSON.parse(e.content):L={}}catch{L={message:e.content||"Unknown error"}}return o.jsx(ha,{toolName:"error",contentJson:L,toolDurationMs:e.toolDurationMs,debug:!1,compact:i,sessionId:B,onRetry:u,onCompact:E})}if(e.type==="tool_call"){const L=pa(e),K=e.toolName||(typeof L?.name=="string"?L.name:"tool"),W=Bc(K),$=W.includes("__")?W.replace("__"," › "):W.replace(/_/g," "),X=qm(e),U=a?.args,O=X||U,T=Pm(W,O),H=Wm(O,T?.key),x=fa(W)?Ym(O):null,Q=[];if(x?Q.push({key:"cmd",node:o.jsx("code",{className:"font-mono text-foreground/90 truncate max-w-xs",children:x})}):T&&Q.push({key:"primary",node:o.jsx("code",{className:"font-mono text-foreground/85 truncate max-w-xs",children:T.value})}),H&&Q.push({key:"args",node:o.jsx("span",{className:"text-muted-foreground/80 truncate max-w-xs",children:H})}),a&&a.callId===e.toolCallId&&g&&l)return o.jsx(em,{toolName:K,args:O,pendingApproval:a,onApprove:g,onReject:l});Q.length===0&&Q.push({key:"running",node:o.jsx("span",{className:"text-muted-foreground/75",children:"running…"})});const N=[`flex flex-wrap items-center gap-x-2 gap-y-1 ${c?"text-[12px]":"text-[13px]"} text-foreground/80 max-w-full`];return e.ephemeral&&N.push("animate-pulse"),o.jsxs("div",{className:N.join(" "),children:[o.jsx("span",{className:"font-medium text-foreground",children:$}),Q.map(G=>o.jsxs(m.Fragment,{children:[o.jsx("span",{className:"text-muted-foreground/65",children:"·"}),G.node]},G.key))]})}return e.type==="tool_result"?F():null};return o.jsxs("div",{className:`flex ${c?"gap-1.5":"gap-3"} pb-2 relative max-w-full overflow-hidden`,children:[o.jsxs("div",{className:`flex-shrink-0 ${c?"w-4":"w-6"} flex items-start justify-center relative pt-0.5`,children:[o.jsx("div",{className:"flex h-5 w-5 shrink-0 items-center justify-center rounded-full relative bg-background",children:D()}),t&&o.jsx("div",{className:"absolute left-1/2 -translate-x-1/2 w-[2px] bg-border z-0",style:{top:"1.25rem",bottom:"-0.5rem"}})]}),o.jsx("div",{className:p,children:k()})]})},(A,e)=>A.part.id===e.part.id&&A.part.content===e.part.content&&A.part.ephemeral===e.part.ephemeral&&A.part.completedAt===e.part.completedAt&&A.showLine===e.showLine&&A.isLastToolCall===e.isLastToolCall&&A.isLastProgressUpdate===e.isLastProgressUpdate&&A.compact===e.compact&&A.onNavigateToSession===e.onNavigateToSession&&A.pendingApproval?.callId===e.pendingApproval?.callId&&A.onApprove===e.onApprove&&A.onReject===e.onReject),cc=new Set(["read","ls","tree","ripgrep","grep","glob","websearch","skill","query_sessions","query_messages","search_history","get_session_context","get_parent_session"]);function Ig(A){if(A.contentJson&&typeof A.contentJson=="object")return A.contentJson;try{if(A.content){const e=JSON.parse(A.content);if(e&&typeof e=="object"&&!Array.isArray(e))return e}}catch{}return null}function zm(A){const t=Ig(A)?.args;return t&&typeof t=="object"&&!Array.isArray(t)?t:{}}function Vm(A){const t=Ig(A)?.result;return t&&typeof t=="object"&&!Array.isArray(t)?t:{}}function ls(A,e=56){return A.length>e?`${A.slice(0,e-1)}…`:A}function _m(A){const t=Ig(A)?.text;return typeof t=="string"&&t.trim()?t.trim():typeof A.content=="string"?A.content.trim():""}function Zm(A){return A.split(`
|
|
116
|
+
`).map(t=>t.trim()).find(Boolean)||A.trim()}function Xm(A){return A.replace(/^Reasoning:\s*/i,"").replace(/^[-*+]\s+/,"").replace(/\[(.*?)\]\((.*?)\)/g,"$1").replace(/[*_`#>~]+/g,"").replace(/\s+/g," ").trim()}function yo(A,...e){for(const t of e){const s=A[t];if(typeof s=="string"&&s.trim())return s.trim()}}function $m(A){return A.type==="reasoning"?!0:A.type!=="tool_call"&&A.type!=="tool_result"?!1:!!(A.toolName&&cc.has(A.toolName))}function Aw(A){if(A.type==="reasoning"){const s=_m(A),n=Xm(Zm(s));return{id:A.id,label:n?ls(n):"Thinking through the approach",toolName:"reasoning",fullText:s||void 0,startedAt:A.startedAt,completedAt:A.completedAt}}if(!A.toolName||!cc.has(A.toolName))return null;const e=zm(A),t=Vm(A);if(A.toolName==="read"){const s=yo(t,"path")||yo(e,"path");return{id:A.id,toolName:A.toolName,path:s,label:s?`Reading ${ls(s)}`:"Reading file contents",startedAt:A.startedAt,completedAt:A.completedAt}}if(A.toolName==="ls"||A.toolName==="tree"){const s=yo(e,"path")||yo(t,"path");return{id:A.id,toolName:A.toolName,path:s,label:s?`Scanning ${ls(s)}`:"Scanning the project",startedAt:A.startedAt,completedAt:A.completedAt}}if(A.toolName==="ripgrep"||A.toolName==="grep"||A.toolName==="glob"){const s=yo(e,"query","pattern","filePattern")||yo(t,"query","pattern");return{id:A.id,toolName:A.toolName,query:s,label:s?`Searching for ${ls(s,42)}`:"Searching code",startedAt:A.startedAt,completedAt:A.completedAt}}if(A.toolName==="websearch"){const s=yo(e,"query"),n=yo(e,"url")||yo(t,"url");return{id:A.id,toolName:A.toolName,query:s,url:n,label:s?`Researching ${ls(s,42)}`:n?`Reviewing ${ls(n,42)}`:"Researching references",startedAt:A.startedAt,completedAt:A.completedAt}}if(A.toolName==="skill"){const s=yo(e,"name");return{id:A.id,toolName:A.toolName,label:s?`Loading skill ${ls(s,36)}`:"Loading a skill",startedAt:A.startedAt,completedAt:A.completedAt}}return{id:A.id,toolName:A.toolName,label:"Reviewing prior context",startedAt:A.startedAt,completedAt:A.completedAt}}function ew(A){const e=new Map;for(const s of A)s.type==="tool_result"&&s.toolCallId&&e.set(s.toolCallId,s);const t=[];for(const s of A){if(s.type==="tool_call"&&s.toolCallId&&e.has(s.toolCallId))continue;const n=Aw(s);n&&t.push(n)}return t}function tw(A){const e=new Set;for(const t of A)t.path&&e.add(t.path);return e}function ow(A){let e=null,t=null;for(const s of A){const n=s.startedAt??null,r=s.completedAt??s.startedAt??null;n!==null&&(e===null||n<e)&&(e=n),r!==null&&(t===null||r>t)&&(t=r)}return e!==null&&t!==null&&t>e?t-e:null}function sw(A){const e=Math.round(A/1e3);if(e<60)return`${e}s`;const t=Math.floor(e/60),s=e%60;return s>0?`${t}m ${s}s`:`${t}m`}function rw(A){const e=tw(A);let t=0,s=0,n=0,r=0,i=0;for(const c of A)switch(c.toolName){case"reasoning":r+=1;break;case"read":break;case"ls":case"tree":s+=1;break;case"ripgrep":case"grep":case"glob":t+=1;break;case"websearch":n+=1;break;case"skill":case"query_sessions":case"query_messages":case"search_history":case"get_session_context":case"get_parent_session":i+=1;break}const a=e.size>0||s>0,g=ow(A),l=g!==null?sw(g):null,B=r>0&&e.size===0&&t===0&&s===0&&n===0&&i===0,u=B?l?`Thought for ${l}`:"Thought through the approach":n>0?a||t>0?"Researched and reviewed the project":"Researched references":i>0&&t>0?"Reviewed context and searched code":a&&t>0?"Reviewed files and searched code":s>0?"Explored project structure":e.size>0?"Reviewed project files":i>0?"Reviewed prior context":"Thought through the approach",E=[];return!B&&l&&E.push(l),e.size>0&&E.push(`${e.size} ${e.size===1?"file":"files"}`),t>0&&E.push(`${t} ${t===1?"search":"searches"}`),s>0&&e.size===0&&E.push(`${s} ${s===1?"scan":"scans"}`),n>0&&E.push(`${n} ${n===1?"web lookup":"web lookups"}`),i>0&&u!=="Reviewed prior context"&&E.push("prior context"),r>0&&!B&&E.push("reasoning"),E.length===0&&r===0&&E.push(`${A.length} ${A.length===1?"step":"steps"}`),{title:u,details:E}}const No=320,ko="cubic-bezier(0.25, 1, 0.5, 1)",Gl=140;function nw({entries:A,titleOverride:e,showLine:t,collapsed:s}){const n=ug(),r=s&&A.length>0,[i,a]=m.useState(r),[g,l]=m.useState(r),B=m.useRef(null),u=m.useRef(null),E=m.useRef(null),c=m.useRef(!1),d=m.useRef(A.length),[f,p]=m.useState(0),D=m.useMemo(()=>rw(A),[A]),k=[e||D.title,...D.details].join(" · "),L=A.some($=>$.toolName==="reasoning"),K=A.length>0?A[A.length-1]:null;m.useEffect(()=>{if(!s&&!g){a(!1);return}if(!g&&s&&l(!0),i||A.length===0)return;const $=window.setTimeout(()=>a(!0),500);return()=>window.clearTimeout($)},[s,i,g,A.length]),m.useLayoutEffect(()=>{if(i)return;const $=B.current;if(!$)return;const X=()=>{const O=Math.min($.scrollHeight,Gl);p(T=>T===O?T:O)};X();const U=new ResizeObserver(()=>X());return U.observe($),()=>U.disconnect()},[i]),m.useEffect(()=>()=>{E.current!==null&&window.cancelAnimationFrame(E.current)},[]),m.useEffect(()=>{if(i||c.current)return;const $=u.current;if(!$)return;const X=B.current?.scrollHeight??0,U=X>f+1,O=U?Math.max(0,X-f):0;if(E.current!==null&&(window.cancelAnimationFrame(E.current),E.current=null),!U){$.scrollTop=0;return}const T=$.scrollTop,H=O-T;if(H<=1){$.scrollTop=O;return}const x=performance.now(),Q=Math.min(360,Math.max(180,H*.9)),I=N=>{const G=Math.min(1,(N-x)/Q),J=1-(1-G)**3;if($.scrollTop=T+H*J,G<1&&!c.current){E.current=window.requestAnimationFrame(I);return}E.current=null};E.current=window.requestAnimationFrame(I)},[A.length,K?.fullText,i,f]),m.useEffect(()=>{d.current=A.length},[A.length]);const W=!i;return o.jsxs("div",{className:`flex ${n?"gap-1.5":"gap-3"} pb-2 relative max-w-full overflow-hidden`,children:[o.jsxs("div",{className:`flex-shrink-0 ${n?"w-4":"w-6"} flex items-start justify-center relative pt-0.5`,children:[o.jsx("div",{className:"flex h-5 w-5 shrink-0 items-center justify-center rounded-full relative bg-background",children:L?o.jsx(Rn,{className:"h-4 w-4 text-indigo-600 dark:text-indigo-300"}):o.jsx(zo,{className:"h-4 w-4 text-amber-600 dark:text-amber-300"})}),t&&o.jsx("div",{className:"absolute left-1/2 -translate-x-1/2 w-[2px] bg-border z-0",style:{top:"1.25rem",bottom:"-0.5rem"}})]}),o.jsx("div",{className:"flex-1 min-w-0 pt-0.5",children:o.jsxs("div",{className:"relative rounded-lg overflow-hidden",style:{border:W?"1px solid hsl(var(--border) / 0.6)":"1px solid transparent",background:W?"hsl(var(--muted) / 0.2)":"transparent",padding:W?n?"6px 8px":"8px 12px":"0px 0px",transition:`border ${No}ms ${ko}, background ${No}ms ${ko}, padding ${No}ms ${ko}`},children:[o.jsxs("div",{style:{overflow:"hidden",opacity:W?1:0,maxHeight:W?`${Gl+28}px`:"0px",transition:`opacity ${No}ms ${ko}, max-height ${No}ms ${ko}`},children:[o.jsx("div",{className:"text-[11px] font-medium uppercase tracking-[0.18em] text-muted-foreground/70 mb-1",children:"Exploring"}),o.jsx("div",{ref:u,className:"overflow-y-auto",style:{height:`${f}px`,transition:`height ${No}ms ${ko}`,maskImage:"linear-gradient(to bottom, transparent 0px, black 20px)",WebkitMaskImage:"linear-gradient(to bottom, transparent 0px, black 20px)"},role:"log",onMouseEnter:()=>{c.current=!0},onMouseLeave:()=>{c.current=!1},children:o.jsx("div",{ref:B,className:"pt-2.5",children:A.map(($,X)=>{const U=X===A.length-1,O=X>=d.current;return $.toolName==="reasoning"&&$.fullText&&$.fullText.trim()?o.jsx("div",{className:"px-1 py-0.5",style:{animation:O?`ottoEntryIn ${No}ms ${ko} both`:void 0},children:o.jsx("p",{className:`text-[11px] leading-relaxed font-mono whitespace-pre-wrap ${U?"text-foreground/80":"text-muted-foreground/60"}`,children:$.fullText})},$.id):o.jsx("div",{className:`flex items-center px-1 ${n?"text-[13px]":"text-[14px]"} leading-5 h-7 ${U?"text-foreground":"text-muted-foreground/70"}`,style:{animation:O?`ottoEntryIn ${No}ms ${ko} both`:void 0},children:o.jsx("span",{className:"block min-w-0 truncate",children:$.label})},$.id)})})})]}),o.jsx("div",{className:`flex items-center ${n?"text-[11px]":"text-xs"}`,style:{opacity:i?1:0,height:i?"20px":"0px",overflow:"hidden",transition:`opacity ${No}ms ${ko}, height ${No}ms ${ko}`},children:o.jsx("span",{className:"block min-w-0 truncate leading-none text-foreground",title:k,children:k})})]})}),o.jsx("style",{children:"@keyframes ottoEntryIn { from { opacity: 0; transform: translateY(6px); } to { opacity: 1; transform: translateY(0); } }"})]})}const Lo=320,Jo="cubic-bezier(0.25, 1, 0.5, 1)",vl=140;function dg(A){if(A.contentJson&&typeof A.contentJson=="object")return A.contentJson;try{if(A.content){const e=JSON.parse(A.content);if(e&&typeof e=="object"&&!Array.isArray(e))return e}}catch{}return{}}function iw(A){const e=dg(A);return typeof e._streamedInput=="string"?e._streamedInput:""}function aw(A){const e=dg(A);return typeof e._streamedOutput=="string"?e._streamedOutput:""}function gw(A){const t=dg(A)?.args;if(t&&typeof t=="object"&&!Array.isArray(t))return t}function lw(A){return A.match(/^\*\*\*\s+(?:Update|Add|Delete|Replace in):\s+(.+)$/m)?.[1]?.trim()||null}const Qw={shell:{Icon:so,color:"text-muted-foreground",label:"Running"},bash:{Icon:so,color:"text-muted-foreground",label:"Running"},write:{Icon:Fo,color:"text-emerald-600 dark:text-emerald-300",label:"Writing"},apply_patch:{Icon:Vi,color:"text-purple-600 dark:text-purple-300",label:"Patching"},edit:{Icon:Fo,color:"text-purple-600 dark:text-purple-300",label:"Editing"},multiedit:{Icon:Fo,color:"text-purple-600 dark:text-purple-300",label:"Editing"},copy_into:{Icon:Fo,color:"text-purple-600 dark:text-purple-300",label:"Copying"},terminal:{Icon:so,color:"text-amber-600 dark:text-amber-300",label:"Terminal"}};function Ec(A){return A==="bash"?"shell":A}function Lr(A){return Ec(A)==="shell"}function Bw(A,e){if(!e)return"";if(Lr(A)){const t=String(e.cmd||"");return t.length>80?`${t.slice(0,77)}…`:t}if(A==="write"||A==="edit"||A==="multiedit")return String(e.path||"");if(A==="copy_into")return String(e.targetPath||"");if(A==="apply_patch"){const t=String(e.patch||"");return lw(t)||""}return""}function cw(A,e){if(Lr(A)){const t=Yo(e,"cmd");if(t)return t.length>80?`${t.slice(0,77)}…`:t}if(A==="write")return Yo(e,"path")||Yo(e,"filePath");if(A==="edit"||A==="multiedit")return Yo(e,"path");if(A==="copy_into")return Yo(e,"targetPath");if(A==="apply_patch"){const t=e.match(/\*\*\*\s+(?:Update|Add|Delete|Replace in):\s+(.+?)(?:\\n|")/);return t?t[1].trim():""}return""}function Ew(A){try{if(A.contentJson&&typeof A.contentJson=="object")return A.contentJson;if(typeof A.content=="string")return JSON.parse(A.content)}catch{}return{}}function Cw({part:A,showLine:e}){const t=ug(),s=m.useRef(null),n=m.useRef(null),r=m.useRef(null),i=m.useRef(!1),a=m.useRef(0),[g,l]=m.useState(0),B=Ec(A.toolName||""),u=A.type==="tool_result",E=Qw[B]||{Icon:so,color:"text-muted-foreground",label:B.replace(/_/g," ")},[c,d]=m.useState(()=>u),[f,p]=m.useState(()=>u),D=gw(A),F=iw(A),k=aw(A),L=Bw(B,D)||cw(B,F),K=uw(B,F),W=Lr(B)?k||K||(D?Sl(B,D):""):D?Sl(B,D):K,$=W.trim().length>0;m.useEffect(()=>{if(!u&&!f){d(!1);return}if(!f&&u&&p(!0),c||!u)return;const O=window.setTimeout(()=>d(!0),500);return()=>window.clearTimeout(O)},[u,c,f]),m.useLayoutEffect(()=>{if(!$){l(0);return}const O=s.current;if(!O||O.textContent!==W)return;const T=Math.min(O.scrollHeight,vl-12);l(H=>H===T?H:T)},[W,$]),m.useEffect(()=>()=>{r.current!==null&&window.cancelAnimationFrame(r.current)},[]),m.useEffect(()=>{const O=n.current;if(!O||i.current)return;const T=W.length,H=s.current?.scrollHeight??0,x=H>g+1,Q=x?Math.max(0,H-g):0;if(r.current!==null&&(window.cancelAnimationFrame(r.current),r.current=null),!x){O.scrollTop=0,a.current=T;return}if(T<=a.current){O.scrollTop=Q,a.current=T;return}const I=O.scrollTop,N=Q-I;if(N<=1){O.scrollTop=Q,a.current=T;return}const G=performance.now(),J=Math.min(360,Math.max(180,N*.9)),q=j=>{const R=Math.min(1,(j-G)/J),C=1-(1-R)**3;if(O.scrollTop=I+N*C,R<1&&!i.current){r.current=window.requestAnimationFrame(q);return}r.current=null};r.current=window.requestAnimationFrame(q),a.current=T},[W,g]);const X=!c,U=u?Ew(A):null;return o.jsxs("div",{className:`flex ${t?"gap-1.5":"gap-3"} pb-2 relative max-w-full overflow-hidden`,children:[o.jsxs("div",{className:`flex-shrink-0 ${t?"w-4":"w-6"} flex items-start justify-center relative pt-0.5`,children:[o.jsx("div",{className:"flex h-5 w-5 shrink-0 items-center justify-center rounded-full relative bg-background",children:o.jsx(E.Icon,{className:`h-4 w-4 ${E.color}`})}),e&&o.jsx("div",{className:"absolute left-1/2 -translate-x-1/2 w-[2px] bg-border z-0",style:{top:"1.25rem",bottom:"-0.5rem"}})]}),o.jsx("div",{className:"flex-1 min-w-0 pt-0.5",children:o.jsxs("div",{className:"relative rounded-lg overflow-hidden",style:{border:X?"1px solid hsl(var(--border) / 0.6)":"1px solid transparent",background:X?"hsl(var(--muted) / 0.2)":"transparent",padding:X?t?"6px 8px":"8px 12px":"0px 0px",transition:`border ${Lo}ms ${Jo}, background ${Lo}ms ${Jo}, padding ${Lo}ms ${Jo}`},children:[o.jsxs("div",{style:{overflow:"hidden",opacity:X?1:0,maxHeight:X?`${vl+28}px`:"0px",transition:`opacity ${Lo}ms ${Jo}, max-height ${Lo}ms ${Jo}`},children:[o.jsxs("div",{className:`flex items-center gap-2 ${t?"text-[12px]":"text-[13px]"} font-medium uppercase tracking-[0.18em] text-muted-foreground/70`,children:[o.jsx(Je,{className:"h-3 w-3 animate-spin flex-shrink-0"}),o.jsx("span",{className:"flex-shrink-0",children:E.label}),L&&o.jsxs(o.Fragment,{children:[o.jsx("span",{className:"text-muted-foreground/40 flex-shrink-0",children:"·"}),o.jsx("span",{className:"truncate text-foreground/60 lowercase tracking-normal font-normal font-mono",children:L})]}),!D&&!K&&!k&&o.jsx("span",{className:"text-muted-foreground/50 animate-pulse lowercase tracking-normal font-normal",children:"generating…"})]}),o.jsx("div",{style:{overflow:"hidden",opacity:$?1:0,height:$?`${g+6}px`:"0px",transition:`opacity ${Lo}ms ${Jo}, height ${Lo}ms ${Jo}`},children:W&&o.jsx("div",{className:"pt-1.5",children:o.jsx("section",{ref:n,className:"overflow-y-auto","aria-label":`${E.label} content`,style:{height:`${g}px`,maskImage:"linear-gradient(to bottom, transparent 0px, black 20px)",WebkitMaskImage:"linear-gradient(to bottom, transparent 0px, black 20px)"},onMouseEnter:()=>{i.current=!0},onMouseLeave:()=>{i.current=!1},children:o.jsx("pre",{ref:s,className:"px-1 pt-2.5 pb-1 text-[11px] leading-relaxed text-foreground/60 font-mono whitespace-pre-wrap break-all",children:W})})})})]}),o.jsx("div",{className:"min-w-0 text-xs",style:{opacity:c?1:0,maxHeight:c?"1200px":"0px",overflow:"hidden",transition:`opacity ${Lo}ms ${Jo}, max-height ${Lo}ms ${Jo}`},children:U?o.jsx("div",{className:"min-w-0",children:o.jsx(ha,{toolName:B,contentJson:U,toolDurationMs:A.toolDurationMs??void 0,debug:!1,compact:!1})}):o.jsx("div",{className:"flex min-w-0 items-center",children:o.jsx("span",{className:"block min-w-0 truncate leading-5 text-foreground",title:L||E.label,children:L?`${E.label} · ${L}`:E.label})})})]})})]})}function Sl(A,e){return Lr(A)?String(e.cmd||""):A==="write"?String(e.content||""):A==="apply_patch"?String(e.patch||""):A==="edit"?String(e.oldString||""):""}function Yo(A,e){const s=new RegExp(`"${e}"\\s*:\\s*"`).exec(A);if(!s)return"";const n=s.index+s[0].length;let r="",i=n;for(;i<A.length;)if(A[i]==="\\"&&i+1<A.length){const a=A[i+1];a==="n"?r+=`
|
|
117
|
+
`:a==="t"?r+=" ":a==='"'?r+='"':a==="\\"?r+="\\":r+=a,i+=2}else{if(A[i]==='"')break;r+=A[i],i+=1}return r}function uw(A,e){return e?Lr(A)?Yo(e,"cmd"):A==="write"?Yo(e,"content"):A==="apply_patch"?Yo(e,"patch"):A==="edit"?Yo(e,"oldString"):"":""}const Ii={currentMessageId:null,queuedMessages:[],queueLength:0};function Iw(A){const{data:e}=gt({queryKey:["queueState",A],queryFn:()=>Ii,enabled:!!A,initialData:Ii,staleTime:1/0});return e??Ii}function Cc(A,e){const t=Iw(A);if(!A||!t)return{isQueued:!1,isRunning:!1,position:null};if(t.currentMessageId===e)return{isQueued:!1,isRunning:!0,position:null};const s=t.queuedMessages.find(n=>n.messageId===e);return s?{isQueued:!0,isRunning:!1,position:s.position}:{isQueued:!1,isRunning:!1,position:null}}function dw(A){const e=ke();return _e({mutationFn:t=>{if(!A)throw new Error("No session ID");return mA.createBranch(A,t)},onSuccess:()=>{e.invalidateQueries({queryKey:Qo}),A&&e.invalidateQueries({queryKey:["branches",A]})}})}function uc(A){return gt({queryKey:["parentSession",A],queryFn:()=>{if(!A)throw new Error("No session ID");return mA.getParentSession(A)},enabled:!!A})}function hw({isOpen:A,onClose:e,sessionId:t,message:s,onBranchCreated:n}){const r=Qg(t),i=dw(t),[a,g]=m.useState(""),[l,B]=m.useState(!0),u=m.useId(),E=m.useId(),c=s.parts?.find(p=>p.type==="text")?.content||"",d=(()=>{try{return JSON.parse(c)?.text?.slice(0,100)||""}catch{return c.slice(0,100)}})(),f=async p=>{p.preventDefault();try{const D=await i.mutateAsync({fromMessageId:s.id,title:a.trim()||void 0,provider:l?r?.provider:void 0,model:l?r?.model:void 0,agent:l?r?.agent:void 0});e(),n&&D.session&&n(D.session.id)}catch(D){console.error("Failed to create branch:",D)}};return o.jsx(So,{isOpen:A,onClose:e,title:o.jsxs("div",{className:"flex items-center gap-2",children:[o.jsx(go,{className:"h-5 w-5 text-primary"}),o.jsx("span",{children:"Branch Session"})]}),maxWidth:"md",children:o.jsxs("form",{onSubmit:f,className:"space-y-4",children:[o.jsxs("div",{className:"text-sm text-muted-foreground",children:[o.jsx("p",{children:"Creating branch from message:"}),o.jsxs("p",{className:"mt-1 p-2 bg-muted/50 rounded text-foreground italic truncate",children:['"',d,'..."']})]}),o.jsxs("div",{className:"space-y-2",children:[o.jsx("label",{htmlFor:u,className:"block text-sm font-medium text-foreground",children:"Branch Title (optional)"}),o.jsx("input",{id:u,type:"text",value:a,onChange:p=>g(p.target.value),placeholder:`Branch of ${r?.title||"Untitled"}`,className:"w-full px-3 py-2 bg-background border border-border rounded-md text-foreground placeholder:text-muted-foreground focus:outline-none focus:ring-2 focus:ring-primary/50"})]}),o.jsxs("div",{className:"flex items-center gap-2",children:[o.jsx("input",{id:E,type:"checkbox",checked:l,onChange:p=>B(p.target.checked),className:"h-4 w-4 rounded border-border text-primary focus:ring-primary/50"}),o.jsx("label",{htmlFor:E,className:"text-sm text-foreground",children:"Use same provider/model/agent as parent"})]}),r&&o.jsx("div",{className:"text-xs text-muted-foreground bg-muted/30 rounded p-2",children:o.jsxs("div",{className:"flex gap-4",children:[o.jsxs("span",{children:[o.jsx("strong",{children:"Provider:"})," ",r.provider]}),o.jsxs("span",{children:[o.jsx("strong",{children:"Model:"})," ",r.model]}),o.jsxs("span",{children:[o.jsx("strong",{children:"Agent:"})," ",r.agent]})]})}),o.jsxs("div",{className:"flex justify-end gap-2 pt-2",children:[o.jsx("button",{type:"button",onClick:e,className:"px-4 py-2 text-sm text-muted-foreground hover:text-foreground transition-colors",children:"Cancel"}),o.jsx("button",{type:"submit",disabled:i.isPending,className:"px-4 py-2 text-sm bg-primary text-primary-foreground rounded-md hover:bg-primary/90 disabled:opacity-50 disabled:cursor-not-allowed flex items-center gap-2",children:i.isPending?o.jsxs(o.Fragment,{children:[o.jsx(Je,{className:"h-4 w-4 animate-spin"}),"Creating..."]}):o.jsxs(o.Fragment,{children:[o.jsx(go,{className:"h-4 w-4"}),"Create Branch"]})})]}),i.isError&&o.jsx("p",{className:"text-sm text-red-500",children:i.error?.message||"Failed to create branch"})]})})}const Ul=["Generating...","Cooking up something...","Thinking...","Processing...","Working on it...","Crafting response...","Brewing magic...","Computing..."];function pw(A){const e=A.split("").reduce((t,s)=>t+s.charCodeAt(0),0);return Ul[e%Ul.length]}const Ic=m.memo(function({sessionId:e,message:t,showHeader:s,hasNextAssistantMessage:n,onBranchCreated:r,compact:i,showBranchButton:a=!0,onNavigateToSession:g,onRetry:l,onCompact:B}){const{isQueued:u}=Cc(e,t.id),[E,c]=m.useState(!1),[d,f]=m.useState(!1),[p,D]=m.useState(!1),{pendingApprovals:F,removePendingApproval:k}=Sr(),L=m.useCallback(async C=>{if(e)try{await mA.approveToolCall(e,C,!0),k(C)}catch(h){console.error("Failed to approve tool call:",h)}},[e,k]),K=m.useCallback(async C=>{if(e)try{await mA.approveToolCall(e,C,!1),k(C)}catch(h){console.error("Failed to reject tool call:",h)}},[e,k]),W=m.useMemo(()=>F.filter(C=>C.messageId===t.id),[F,t.id]),$=m.useCallback(async()=>{if(e)try{await Promise.all(W.map(C=>mA.approveToolCall(e,C.callId,!0)));for(const C of W)k(C.callId)}catch(C){console.error("Failed to approve all tool calls:",C)}},[e,W,k]),X=m.useMemo(()=>[...t.parts||[]].sort((h,v)=>{const S=(h.index??0)-(v.index??0);if(S!==0)return S;const Z=(h.stepIndex??0)-(v.stepIndex??0);return Z!==0?Z:(h.startedAt??0)-(v.startedAt??0)}),[t.parts]),U=X.some(C=>C.toolName==="finish"),O=X.reduce((C,h,v)=>h.type==="tool_result"&&h.toolName==="progress_update"?v:C,-1),T=O>=0?X[O]:null,H=new Set(X.filter(C=>C.ephemeral&&["shell","bash","edit","multiedit","write","copy_into","apply_patch","terminal"].includes(C.toolName||"")).map(C=>C.toolCallId).filter(C=>!!C)),x=m.useMemo(()=>{const C=[];let h=[],v=-1,S;const Z=eA=>{if(h.length===0){eA&&(S=eA);return}const rA=ew(h);if(rA.length>0)C.push({kind:"group",id:`compact-${h[0].id}`,entries:rA,titleOverride:S});else for(const[sA,bA]of h.entries())C.push({kind:"part",index:v+sA,part:bA});h=[],v=-1,S=eA};for(const[eA,rA]of X.entries()){if((rA.type==="tool_result"||rA.type==="tool_call")&&rA.toolName==="progress_update"){let bA;const LA=rA.contentJson&&typeof rA.contentJson=="object"?rA.contentJson:null;if(LA){const QA=LA.args??LA.result;if(QA&&typeof QA=="object"){const qA=QA.message;typeof qA=="string"&&qA.trim()&&(bA=qA.trim())}}bA&&Z(bA);continue}if(i&&$m(rA)){h.length===0&&(v=eA),h.push(rA);continue}Z(),C.push({kind:"part",index:eA,part:rA})}return Z(),C},[X,i]),Q=x.length>0,I=X.findIndex(C=>!(C.type==="tool_result"&&C.toolName==="progress_update")),N=t.status==="pending"&&!U&&!!T,G=t.status==="pending"&&!U&&!T&&!u,J=C=>C?new Date(C).toLocaleTimeString([],{hour:"2-digit",minute:"2-digit"}):"",q=t.status==="complete",j=m.useCallback(()=>{const C=X.filter(h=>h.type==="text").map(h=>{try{return JSON.parse(h.content||"{}")?.text||""}catch{return h.content||""}}).join(`
|
|
118
|
+
`);navigator.clipboard.writeText(C),D(!0),setTimeout(()=>D(!1),2e3)},[X]),R=m.useCallback(()=>{f(!0)},[]);return u?null:o.jsxs("div",{className:"relative group",onMouseEnter:()=>c(!0),onMouseLeave:()=>c(!1),children:[s&&o.jsxs("div",{className:"pb-2 flex items-center justify-between",children:[o.jsxs("div",{className:"inline-flex items-center bg-violet-500/10 border border-violet-500/30 dark:bg-violet-500/5 dark:border-violet-500/20 rounded-full pr-3 md:pr-4 flex-shrink min-w-0",children:[o.jsx("div",{className:"flex h-8 w-8 shrink-0 items-center justify-center rounded-full border border-violet-500/50 bg-violet-500/20 dark:bg-violet-500/10",children:o.jsx(_t,{className:"h-3.5 w-3.5 text-violet-700 dark:text-violet-300"})}),o.jsxs("div",{className:"flex items-center gap-x-1.5 md:gap-x-2 text-xs md:text-sm text-muted-foreground pl-2 md:pl-3 min-w-0",children:[t.agent&&o.jsx("span",{className:"font-medium text-violet-700 dark:text-violet-300 whitespace-nowrap",title:t.agent,children:t.agent}),t.provider&&o.jsxs(o.Fragment,{children:[t.agent&&o.jsx("span",{className:"text-muted-foreground/50",children:"·"}),o.jsx(eo,{provider:t.provider,size:14,className:"opacity-70"})]}),t.model&&o.jsxs(o.Fragment,{children:[o.jsx("span",{className:"hidden md:inline text-muted-foreground/50",children:"·"}),o.jsx("span",{className:"hidden md:inline text-muted-foreground whitespace-nowrap",title:t.model,children:t.model})]}),t.createdAt&&o.jsxs(o.Fragment,{children:[o.jsx("span",{className:"text-muted-foreground/50",children:"·"}),o.jsx("span",{className:"text-muted-foreground whitespace-nowrap",children:J(t.createdAt)})]})]})]}),E&&q&&e&&a&&o.jsx("button",{type:"button",onClick:R,className:"ml-4 p-1.5 text-muted-foreground hover:text-primary transition-colors flex-shrink-0",title:"Branch from this message",children:o.jsx(go,{className:"h-4 w-4"})})]}),o.jsxs("div",{className:"relative ml-1",children:[x.map((C,h)=>{const v=h<x.length-1||n||N;if(C.kind==="group")return o.jsx(nw,{entries:C.entries,titleOverride:C.titleOverride,showLine:v,collapsed:t.status!=="pending"||h<x.length-1},C.id);const{part:S,index:Z}=C,eA=Z===X.length-1;if(S.ephemeral&&(S.type==="tool_call"||S.type==="tool_result")&&["shell","bash","edit","multiedit","write","copy_into","apply_patch","terminal"].includes(S.toolName||""))return o.jsx(Cw,{part:S,showLine:v},S.id);const sA=S.type==="tool_call"&&S.toolCallId?F.find(qA=>qA.callId===S.toolCallId)??null:null;if(S.type==="tool_result"&&S.toolCallId&&H.has(S.toolCallId))return null;const bA=S.type==="tool_result"&&S.toolName==="finish",LA=v&&!bA,QA=S.type==="tool_call"&&eA;return o.jsx(Fl,{part:S,showLine:LA,isFirstPart:Z===I&&!s,isLastToolCall:QA,onNavigateToSession:g,compact:i,pendingApproval:sA,onApprove:L,onReject:K,sessionId:e,onRetry:l,onCompact:B},S.id)}),W.length>1&&o.jsxs("div",{className:"flex items-center gap-3 py-2 px-3 my-2 bg-amber-50 dark:bg-amber-950/30 border border-amber-200 dark:border-amber-800 rounded-lg",children:[o.jsx(Ya,{className:"h-4 w-4 text-amber-600 dark:text-amber-400 flex-shrink-0"}),o.jsxs("span",{className:"text-sm text-amber-800 dark:text-amber-200 flex-1",children:[W.length," tools waiting for approval"]}),o.jsxs("button",{type:"button",onClick:$,title:"Approve All (A)",className:"flex items-center gap-1.5 px-3 py-1.5 text-xs font-medium rounded bg-amber-600 text-white hover:bg-amber-700 transition-colors",children:[o.jsx(YQ,{className:"w-3.5 h-3.5"}),"Approve All",o.jsx("kbd",{className:"ml-1 text-[10px] opacity-70",children:"A"})]})]}),N&&T&&o.jsx(Fl,{part:T,showLine:n,isFirstPart:!Q&&!s,isLastProgressUpdate:!0,compact:i},T.id),G&&o.jsxs("div",{className:"flex gap-3 pb-2 relative",children:[o.jsx("div",{className:"flex-shrink-0 w-6 flex items-start justify-center relative pt-0.5",children:o.jsx("div",{className:"flex h-5 w-5 shrink-0 items-center justify-center rounded-full relative bg-card text-violet-700 dark:bg-background dark:text-violet-300",children:o.jsx(_t,{className:"h-4 w-4"})})}),o.jsx("div",{className:"flex-1 pt-0.5",children:o.jsx("div",{className:"text-base text-foreground animate-pulse",children:pw(t.id)})})]})]}),q&&e&&o.jsx("div",{className:"grid ml-7 transition-[grid-template-rows] duration-200 ease-out",style:{gridTemplateRows:E?"1fr":"0fr"},children:o.jsx("div",{className:"overflow-hidden",children:o.jsxs("div",{className:"flex gap-2 mt-2",children:[a&&o.jsxs("button",{type:"button",onClick:R,className:"flex items-center gap-1.5 px-2 py-1 text-xs text-muted-foreground hover:text-foreground hover:bg-muted/50 rounded transition-colors",children:[o.jsx(go,{className:"h-3 w-3"}),"Branch"]}),o.jsx("button",{type:"button",onClick:j,className:"flex items-center gap-1.5 px-2 py-1 text-xs text-muted-foreground hover:text-foreground hover:bg-muted/50 rounded transition-colors",children:p?o.jsxs(o.Fragment,{children:[o.jsx(Ht,{className:"h-3 w-3 text-green-500"}),"Copied"]}):o.jsxs(o.Fragment,{children:[o.jsx(fs,{className:"h-3 w-3"}),"Copy"]})})]})})}),d&&e&&o.jsx(hw,{isOpen:d,onClose:()=>f(!1),sessionId:e,message:t,onBranchCreated:r})]})},(A,e)=>{const t=A.message.parts||[],s=e.message.parts||[];if(t.length!==s.length)return!1;for(let n=0;n<t.length;n++){const r=t[n],i=s[n];if(r.id!==i.id||r.index!==i.index||r.stepIndex!==i.stepIndex||r.type!==i.type||r.content!==i.content||r.toolName!==i.toolName||r.toolCallId!==i.toolCallId||r.ephemeral!==i.ephemeral||r.completedAt!==i.completedAt||r.startedAt!==i.startedAt)return!1}return A.message.id===e.message.id&&A.message.status===e.message.status&&A.message.completedAt===e.message.completedAt&&A.showHeader===e.showHeader&&A.hasNextAssistantMessage===e.hasNextAssistantMessage&&A.isLastMessage===e.isLastMessage&&A.sessionId===e.sessionId&&A.compact===e.compact&&A.onNavigateToSession===e.onNavigateToSession}),dc=m.memo(function({sessionId:e,message:t,nextAssistantMessageId:s}){const[n,r]=m.useState(null),i=t.parts||[],a=ke(),{isQueued:g,position:l}=Cc(e,s??""),B=Ia(T=>T.setPendingRestoreText),u=i.filter(T=>T.type==="text"),E=i.filter(T=>T.type==="image"),c=i.filter(T=>T.type==="file"),d=u[0];let f="";if(d){const T=d.contentJson||d.content;T&&typeof T=="object"&&"text"in T?f=String(T.text):typeof T=="string"?f=T:T&&(f=JSON.stringify(T,null,2))}const{researchContexts:p,cleanContent:D}=qf(f),F=[];for(const T of E)try{const H=T.contentJson||JSON.parse(T.content||"{}");if(H&&typeof H=="object"&&"data"in H){const x=H,Q=`data:${x.mediaType};base64,${x.data}`;F.push({id:T.id,src:Q})}}catch{}const k=[];for(const T of c)try{const H=T.contentJson||JSON.parse(T.content||"{}");if(H&&typeof H=="object"&&"type"in H){const x=H;if(x.type==="image"&&x.data){const Q=`data:${x.mediaType};base64,${x.data}`;F.push({id:T.id,src:Q})}else k.push({id:T.id,type:x.type,name:x.name})}}catch{}const L=T=>T?new Date(T).toLocaleTimeString([],{hour:"2-digit",minute:"2-digit"}):"",K=D.trim().length>0,W=F.length>0,$=k.length>0,X=p.length>0;if(!K&&!W&&!$&&!X)return null;const U=async()=>{if(!(!e||!s)){B(D);try{await mA.removeFromQueue(e,s),a.invalidateQueries({queryKey:["messages",e]})}catch(T){console.error("Failed to cancel queued message:",T)}}},O=async()=>{if(!(!e||!s))try{await mA.removeFromQueue(e,s),a.invalidateQueries({queryKey:["messages",e]})}catch(T){console.error("Failed to delete queued message:",T)}};return o.jsxs(o.Fragment,{children:[o.jsx("div",{className:"relative pb-8 pt-6",children:o.jsxs("div",{className:"flex gap-3 md:gap-4 justify-end",children:[o.jsxs("div",{className:"flex flex-col items-end min-w-0 flex-1 max-w-[calc(100%-3rem)] md:max-w-2xl",children:[o.jsxs("div",{className:"flex items-center gap-2 text-xs text-muted-foreground pb-2 justify-end",children:[o.jsx("span",{className:"font-medium text-emerald-700 dark:text-emerald-300",children:"You"}),t.createdAt&&o.jsx("span",{children:"·"}),t.createdAt&&o.jsx("span",{children:L(t.createdAt)}),g&&o.jsxs(o.Fragment,{children:[o.jsx("span",{children:"·"}),o.jsxs("span",{className:"inline-flex items-center gap-1 text-amber-600 dark:text-amber-400",children:[o.jsx(Ha,{className:"h-3 w-3"}),"Queued",l!==null&&l>0?` #${l+1}`:""]})]})]}),o.jsxs("div",{className:"inline-block max-w-full text-sm text-foreground leading-relaxed bg-emerald-500/5 border border-emerald-500/20 rounded-xl px-4 py-3 [word-break:break-word] overflow-hidden",children:[W&&o.jsx("div",{className:"flex flex-wrap gap-2 mb-2",children:F.map(T=>o.jsx("button",{type:"button",onClick:()=>r(T.src),className:"w-16 h-16 rounded-lg overflow-hidden bg-muted hover:ring-2 hover:ring-primary/50 transition-all",children:o.jsx("img",{src:T.src,alt:"Attachment",className:"w-full h-full object-cover"})},T.id))}),$&&o.jsx("div",{className:"flex flex-wrap gap-2 mb-2",children:k.map(T=>o.jsxs("div",{className:"flex items-center gap-2 px-3 py-2 rounded-lg bg-muted/50 border border-border",children:[T.type==="pdf"?o.jsx(os,{className:"w-4 h-4 text-red-500 flex-shrink-0"}):o.jsx(ss,{className:"w-4 h-4 text-blue-500 flex-shrink-0"}),o.jsx("span",{className:"text-xs truncate max-w-[150px]",children:T.name})]},T.id))}),X&&o.jsx("div",{className:"flex flex-wrap gap-2 mb-2",children:p.map(T=>o.jsxs("div",{className:"flex items-center gap-2 px-3 py-2 rounded-lg bg-teal-500/10 border border-teal-500/30",children:[o.jsx(dr,{className:"w-4 h-4 text-teal-500 flex-shrink-0"}),o.jsx("span",{className:"text-xs text-teal-600 dark:text-teal-400",children:T.label})]},T.id))}),K&&o.jsx("div",{className:"prose prose-invert prose-sm [&>*:first-child]:mt-0 [&>*:last-child]:mb-0 [&_*]:[word-break:break-word] [&_*]:overflow-wrap-anywhere whitespace-pre-wrap",children:o.jsx(za,{remarkPlugins:[Va],components:{a:({href:T,children:H,...x})=>o.jsx("a",{href:T,target:"_blank",rel:"noopener noreferrer",className:"text-primary underline decoration-primary/35 underline-offset-2 transition-colors hover:text-primary/90 hover:decoration-primary",onClick:Q=>{window.self!==window.top&&T&&(Q.preventDefault(),window.parent.postMessage({type:"otto-open-url",url:T},"*"))},...x,children:H})},children:D.replace(/\n/g,`
|
|
119
|
+
`)})})]}),g&&o.jsxs("div",{className:"flex items-center gap-2 mt-2",children:[o.jsxs("button",{type:"button",onClick:U,className:"inline-flex items-center gap-1.5 px-2.5 py-1 text-xs rounded-md bg-muted hover:bg-muted/80 text-muted-foreground hover:text-foreground transition-colors",title:"Cancel and restore to input",children:[o.jsx(_Q,{className:"h-3 w-3"}),"Cancel"]}),o.jsxs("button",{type:"button",onClick:O,className:"inline-flex items-center gap-1.5 px-2.5 py-1 text-xs rounded-md bg-destructive/10 hover:bg-destructive/20 text-destructive transition-colors",title:"Delete from queue",children:[o.jsx(Nr,{className:"h-3 w-3"}),"Delete"]})]})]}),o.jsx("div",{className:"flex-shrink-0 w-8 flex items-start justify-center",children:o.jsx("div",{className:"flex h-8 w-8 shrink-0 items-center justify-center rounded-full border-2 border-emerald-500/50 bg-emerald-500/20 dark:bg-emerald-500/10 relative bg-background",children:o.jsx(Ja,{className:"h-4 w-4 text-emerald-700 dark:text-emerald-300"})})})]})}),n&&o.jsxs("div",{role:"dialog","aria-modal":"true",className:"fixed inset-0 z-50 flex items-center justify-center bg-black/80 p-4",onClick:()=>r(null),onKeyDown:T=>T.key==="Escape"&&r(null),tabIndex:-1,children:[o.jsx("button",{type:"button",onClick:()=>r(null),className:"absolute top-4 right-4 p-2 rounded-full bg-white/10 hover:bg-white/20 transition-colors",children:o.jsx(ot,{className:"w-6 h-6 text-white"})}),o.jsx("img",{src:n,alt:"Expanded attachment",className:"max-w-full max-h-full object-contain rounded-lg",onClick:T=>T.stopPropagation(),onKeyDown:T=>T.key==="Enter"&&T.stopPropagation()})]})]})},(A,e)=>{const t=A.message.parts?.[0],s=e.message.parts?.[0];return A.message.id===e.message.id&&t?.content===s?.content&&t?.contentJson===s?.contentJson&&A.message.createdAt===e.message.createdAt&&A.message.parts?.length===e.message.parts?.length&&A.sessionId===e.sessionId&&A.nextAssistantMessageId===e.nextAssistantMessageId}),fw={openai:{id:"openai",models:[{id:"chatgpt-image-latest",ownedBy:"openai",label:"chatgpt-image-latest",modalities:{input:["text","image"],output:["text","image"]},toolCall:!1,reasoningText:!1,attachment:!0,temperature:!1,releaseDate:"2025-12-16",lastUpdated:"2025-12-16",openWeights:!1,limit:{context:0,output:0}},{id:"gpt-3.5-turbo",ownedBy:"openai",label:"GPT-3.5-turbo",modalities:{input:["text"],output:["text"]},toolCall:!1,reasoningText:!1,attachment:!1,temperature:!0,knowledge:"2021-09-01",releaseDate:"2023-03-01",lastUpdated:"2023-11-06",openWeights:!1,cost:{input:.5,output:1.5,cacheRead:1.25},limit:{context:16385,output:4096}},{id:"gpt-4",ownedBy:"openai",label:"GPT-4",modalities:{input:["text"],output:["text"]},toolCall:!0,reasoningText:!1,attachment:!0,temperature:!0,knowledge:"2023-11",releaseDate:"2023-11-06",lastUpdated:"2024-04-09",openWeights:!1,cost:{input:30,output:60},limit:{context:8192,output:8192}},{id:"gpt-4-turbo",ownedBy:"openai",label:"GPT-4 Turbo",modalities:{input:["text","image"],output:["text"]},toolCall:!0,reasoningText:!1,attachment:!0,temperature:!0,knowledge:"2023-12",releaseDate:"2023-11-06",lastUpdated:"2024-04-09",openWeights:!1,cost:{input:10,output:30},limit:{context:128e3,output:4096}},{id:"gpt-4.1",ownedBy:"openai",label:"GPT-4.1",modalities:{input:["text","image","pdf"],output:["text"]},toolCall:!0,reasoningText:!1,attachment:!0,temperature:!0,knowledge:"2024-04",releaseDate:"2025-04-14",lastUpdated:"2025-04-14",openWeights:!1,cost:{input:2,output:8,cacheRead:.5},limit:{context:1047576,output:32768}},{id:"gpt-4.1-mini",ownedBy:"openai",label:"GPT-4.1 mini",modalities:{input:["text","image","pdf"],output:["text"]},toolCall:!0,reasoningText:!1,attachment:!0,temperature:!0,knowledge:"2024-04",releaseDate:"2025-04-14",lastUpdated:"2025-04-14",openWeights:!1,cost:{input:.4,output:1.6,cacheRead:.1},limit:{context:1047576,output:32768}},{id:"gpt-4.1-nano",ownedBy:"openai",label:"GPT-4.1 nano",modalities:{input:["text","image"],output:["text"]},toolCall:!0,reasoningText:!1,attachment:!0,temperature:!0,knowledge:"2024-04",releaseDate:"2025-04-14",lastUpdated:"2025-04-14",openWeights:!1,cost:{input:.1,output:.4,cacheRead:.03},limit:{context:1047576,output:32768}},{id:"gpt-4o",ownedBy:"openai",label:"GPT-4o",modalities:{input:["text","image","pdf"],output:["text"]},toolCall:!0,reasoningText:!1,attachment:!0,temperature:!0,knowledge:"2023-09",releaseDate:"2024-05-13",lastUpdated:"2024-08-06",openWeights:!1,cost:{input:2.5,output:10,cacheRead:1.25},limit:{context:128e3,output:16384}},{id:"gpt-4o-2024-05-13",ownedBy:"openai",label:"GPT-4o (2024-05-13)",modalities:{input:["text","image"],output:["text"]},toolCall:!0,reasoningText:!1,attachment:!0,temperature:!0,knowledge:"2023-09",releaseDate:"2024-05-13",lastUpdated:"2024-05-13",openWeights:!1,cost:{input:5,output:15},limit:{context:128e3,output:4096}},{id:"gpt-4o-2024-08-06",ownedBy:"openai",label:"GPT-4o (2024-08-06)",modalities:{input:["text","image"],output:["text"]},toolCall:!0,reasoningText:!1,attachment:!0,temperature:!0,knowledge:"2023-09",releaseDate:"2024-08-06",lastUpdated:"2024-08-06",openWeights:!1,cost:{input:2.5,output:10,cacheRead:1.25},limit:{context:128e3,output:16384}},{id:"gpt-4o-2024-11-20",ownedBy:"openai",label:"GPT-4o (2024-11-20)",modalities:{input:["text","image"],output:["text"]},toolCall:!0,reasoningText:!1,attachment:!0,temperature:!0,knowledge:"2023-09",releaseDate:"2024-11-20",lastUpdated:"2024-11-20",openWeights:!1,cost:{input:2.5,output:10,cacheRead:1.25},limit:{context:128e3,output:16384}},{id:"gpt-4o-mini",ownedBy:"openai",label:"GPT-4o mini",modalities:{input:["text","image","pdf"],output:["text"]},toolCall:!0,reasoningText:!1,attachment:!0,temperature:!0,knowledge:"2023-09",releaseDate:"2024-07-18",lastUpdated:"2024-07-18",openWeights:!1,cost:{input:.15,output:.6,cacheRead:.08},limit:{context:128e3,output:16384}},{id:"gpt-5",ownedBy:"openai",label:"GPT-5",modalities:{input:["text","image"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!1,knowledge:"2024-09-30",releaseDate:"2025-08-07",lastUpdated:"2025-08-07",openWeights:!1,cost:{input:1.25,output:10,cacheRead:.125},limit:{context:4e5,output:128e3}},{id:"gpt-5-chat-latest",ownedBy:"openai",label:"GPT-5 Chat (latest)",modalities:{input:["text","image"],output:["text"]},toolCall:!1,reasoningText:!0,attachment:!0,temperature:!0,knowledge:"2024-09-30",releaseDate:"2025-08-07",lastUpdated:"2025-08-07",openWeights:!1,cost:{input:1.25,output:10},limit:{context:4e5,output:128e3}},{id:"gpt-5-codex",ownedBy:"openai",label:"GPT-5-Codex",modalities:{input:["text","image"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!1,temperature:!1,knowledge:"2024-09-30",releaseDate:"2025-09-15",lastUpdated:"2025-09-15",openWeights:!1,cost:{input:1.25,output:10,cacheRead:.125},limit:{context:4e5,output:128e3}},{id:"gpt-5-mini",ownedBy:"openai",label:"GPT-5 Mini",modalities:{input:["text","image"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!1,knowledge:"2024-05-30",releaseDate:"2025-08-07",lastUpdated:"2025-08-07",openWeights:!1,cost:{input:.25,output:2,cacheRead:.025},limit:{context:4e5,output:128e3}},{id:"gpt-5-nano",ownedBy:"openai",label:"GPT-5 Nano",modalities:{input:["text","image"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!1,knowledge:"2024-05-30",releaseDate:"2025-08-07",lastUpdated:"2025-08-07",openWeights:!1,cost:{input:.05,output:.4,cacheRead:.005},limit:{context:4e5,output:128e3}},{id:"gpt-5-pro",ownedBy:"openai",label:"GPT-5 Pro",modalities:{input:["text","image"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!1,knowledge:"2024-09-30",releaseDate:"2025-10-06",lastUpdated:"2025-10-06",openWeights:!1,cost:{input:15,output:120},limit:{context:4e5,output:272e3}},{id:"gpt-5.1",ownedBy:"openai",label:"GPT-5.1",modalities:{input:["text","image"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!1,knowledge:"2024-09-30",releaseDate:"2025-11-13",lastUpdated:"2025-11-13",openWeights:!1,cost:{input:1.25,output:10,cacheRead:.13},limit:{context:4e5,output:128e3}},{id:"gpt-5.1-chat-latest",ownedBy:"openai",label:"GPT-5.1 Chat",modalities:{input:["text","image"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!1,knowledge:"2024-09-30",releaseDate:"2025-11-13",lastUpdated:"2025-11-13",openWeights:!1,cost:{input:1.25,output:10,cacheRead:.125},limit:{context:128e3,output:16384}},{id:"gpt-5.1-codex",ownedBy:"openai",label:"GPT-5.1 Codex",modalities:{input:["text","image"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!1,knowledge:"2024-09-30",releaseDate:"2025-11-13",lastUpdated:"2025-11-13",openWeights:!1,cost:{input:1.25,output:10,cacheRead:.125},limit:{context:4e5,output:128e3}},{id:"gpt-5.1-codex-max",ownedBy:"openai",label:"GPT-5.1 Codex Max",modalities:{input:["text","image"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!1,knowledge:"2024-09-30",releaseDate:"2025-11-13",lastUpdated:"2025-11-13",openWeights:!1,cost:{input:1.25,output:10,cacheRead:.125},limit:{context:4e5,output:128e3}},{id:"gpt-5.1-codex-mini",ownedBy:"openai",label:"GPT-5.1 Codex mini",modalities:{input:["text","image"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!1,knowledge:"2024-09-30",releaseDate:"2025-11-13",lastUpdated:"2025-11-13",openWeights:!1,cost:{input:.25,output:2,cacheRead:.025},limit:{context:4e5,output:128e3}},{id:"gpt-5.2",ownedBy:"openai",label:"GPT-5.2",modalities:{input:["text","image"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!1,knowledge:"2025-08-31",releaseDate:"2025-12-11",lastUpdated:"2025-12-11",openWeights:!1,cost:{input:1.75,output:14,cacheRead:.175},limit:{context:4e5,output:128e3}},{id:"gpt-5.2-chat-latest",ownedBy:"openai",label:"GPT-5.2 Chat",modalities:{input:["text","image"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!1,knowledge:"2025-08-31",releaseDate:"2025-12-11",lastUpdated:"2025-12-11",openWeights:!1,cost:{input:1.75,output:14,cacheRead:.175},limit:{context:128e3,output:16384}},{id:"gpt-5.2-codex",ownedBy:"openai",label:"GPT-5.2 Codex",modalities:{input:["text","image","pdf"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!1,knowledge:"2025-08-31",releaseDate:"2025-12-11",lastUpdated:"2025-12-11",openWeights:!1,cost:{input:1.75,output:14,cacheRead:.175},limit:{context:4e5,output:128e3}},{id:"gpt-5.2-pro",ownedBy:"openai",label:"GPT-5.2 Pro",modalities:{input:["text","image"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!1,knowledge:"2025-08-31",releaseDate:"2025-12-11",lastUpdated:"2025-12-11",openWeights:!1,cost:{input:21,output:168},limit:{context:4e5,output:128e3}},{id:"gpt-5.3-chat-latest",ownedBy:"openai",label:"GPT-5.3 Chat (latest)",modalities:{input:["text","image"],output:["text"]},toolCall:!0,reasoningText:!1,attachment:!0,temperature:!0,knowledge:"2025-08-31",releaseDate:"2026-03-03",lastUpdated:"2026-03-03",openWeights:!1,cost:{input:1.75,output:14,cacheRead:.175},limit:{context:128e3,output:16384}},{id:"gpt-5.3-codex",ownedBy:"openai",label:"GPT-5.3 Codex",modalities:{input:["text","image","pdf"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!1,knowledge:"2025-08-31",releaseDate:"2026-02-05",lastUpdated:"2026-02-05",openWeights:!1,cost:{input:1.75,output:14,cacheRead:.175},limit:{context:4e5,output:128e3}},{id:"gpt-5.3-codex-spark",ownedBy:"openai",label:"GPT-5.3 Codex Spark",modalities:{input:["text","image","pdf"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!1,knowledge:"2025-08-31",releaseDate:"2026-02-05",lastUpdated:"2026-02-05",openWeights:!1,cost:{input:1.75,output:14,cacheRead:.175},limit:{context:128e3,output:32e3}},{id:"gpt-5.4",ownedBy:"openai",label:"GPT-5.4",modalities:{input:["text","image","pdf"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!1,knowledge:"2025-08-31",releaseDate:"2026-03-05",lastUpdated:"2026-03-05",openWeights:!1,cost:{input:2.5,output:15,cacheRead:.25},limit:{context:105e4,output:128e3}},{id:"gpt-5.4-mini",ownedBy:"openai",label:"GPT-5.4 mini",modalities:{input:["text","image"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!1,knowledge:"2025-08-31",releaseDate:"2026-03-17",lastUpdated:"2026-03-17",openWeights:!1,cost:{input:.75,output:4.5,cacheRead:.075},limit:{context:4e5,output:128e3}},{id:"gpt-5.4-nano",ownedBy:"openai",label:"GPT-5.4 nano",modalities:{input:["text","image"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!1,knowledge:"2025-08-31",releaseDate:"2026-03-17",lastUpdated:"2026-03-17",openWeights:!1,cost:{input:.2,output:1.25,cacheRead:.02},limit:{context:4e5,output:128e3}},{id:"gpt-5.4-pro",ownedBy:"openai",label:"GPT-5.4 Pro",modalities:{input:["text","image"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!1,knowledge:"2025-08-31",releaseDate:"2026-03-05",lastUpdated:"2026-03-05",openWeights:!1,cost:{input:30,output:180},limit:{context:105e4,output:128e3}},{id:"gpt-5.5",ownedBy:"openai",label:"GPT-5.5",modalities:{input:["text","image","pdf"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!1,knowledge:"2025-12-01",releaseDate:"2026-04-23",lastUpdated:"2026-04-23",openWeights:!1,cost:{input:5,output:30,cacheRead:.5},limit:{context:105e4,output:128e3}},{id:"gpt-5.5-pro",ownedBy:"openai",label:"GPT-5.5 Pro",modalities:{input:["text","image","pdf"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!1,knowledge:"2025-12-01",releaseDate:"2026-04-23",lastUpdated:"2026-04-23",openWeights:!1,cost:{input:30,output:180},limit:{context:105e4,output:128e3}},{id:"gpt-image-1",ownedBy:"openai",label:"gpt-image-1",modalities:{input:["text","image"],output:["image"]},toolCall:!1,reasoningText:!1,attachment:!0,temperature:!1,releaseDate:"2025-04-24",lastUpdated:"2025-04-24",openWeights:!1,limit:{context:0,output:0}},{id:"gpt-image-1-mini",ownedBy:"openai",label:"gpt-image-1-mini",modalities:{input:["text","image"],output:["text","image"]},toolCall:!1,reasoningText:!1,attachment:!0,temperature:!1,releaseDate:"2025-09-26",lastUpdated:"2025-09-26",openWeights:!1,limit:{context:0,output:0}},{id:"gpt-image-1.5",ownedBy:"openai",label:"gpt-image-1.5",modalities:{input:["text","image"],output:["text","image"]},toolCall:!1,reasoningText:!1,attachment:!0,temperature:!1,releaseDate:"2025-11-25",lastUpdated:"2025-11-25",openWeights:!1,limit:{context:0,output:0}},{id:"o1",ownedBy:"openai",label:"o1",modalities:{input:["text","image","pdf"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!1,knowledge:"2023-09",releaseDate:"2024-12-05",lastUpdated:"2024-12-05",openWeights:!1,cost:{input:15,output:60,cacheRead:7.5},limit:{context:2e5,output:1e5}},{id:"o1-mini",ownedBy:"openai",label:"o1-mini",modalities:{input:["text"],output:["text"]},toolCall:!1,reasoningText:!0,attachment:!1,temperature:!1,knowledge:"2023-09",releaseDate:"2024-09-12",lastUpdated:"2024-09-12",openWeights:!1,cost:{input:1.1,output:4.4,cacheRead:.55},limit:{context:128e3,output:65536}},{id:"o1-preview",ownedBy:"openai",label:"o1-preview",modalities:{input:["text"],output:["text"]},toolCall:!1,reasoningText:!0,attachment:!1,temperature:!0,knowledge:"2023-09",releaseDate:"2024-09-12",lastUpdated:"2024-09-12",openWeights:!1,cost:{input:15,output:60,cacheRead:7.5},limit:{context:128e3,output:32768}},{id:"o1-pro",ownedBy:"openai",label:"o1-pro",modalities:{input:["text","image"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!1,knowledge:"2023-09",releaseDate:"2025-03-19",lastUpdated:"2025-03-19",openWeights:!1,cost:{input:150,output:600},limit:{context:2e5,output:1e5}},{id:"o3",ownedBy:"openai",label:"o3",modalities:{input:["text","image","pdf"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!1,knowledge:"2024-05",releaseDate:"2025-04-16",lastUpdated:"2025-04-16",openWeights:!1,cost:{input:2,output:8,cacheRead:.5},limit:{context:2e5,output:1e5}},{id:"o3-deep-research",ownedBy:"openai",label:"o3-deep-research",modalities:{input:["text","image"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!1,knowledge:"2024-05",releaseDate:"2024-06-26",lastUpdated:"2024-06-26",openWeights:!1,cost:{input:10,output:40,cacheRead:2.5},limit:{context:2e5,output:1e5}},{id:"o3-mini",ownedBy:"openai",label:"o3-mini",modalities:{input:["text"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!1,temperature:!1,knowledge:"2024-05",releaseDate:"2024-12-20",lastUpdated:"2025-01-29",openWeights:!1,cost:{input:1.1,output:4.4,cacheRead:.55},limit:{context:2e5,output:1e5}},{id:"o3-pro",ownedBy:"openai",label:"o3-pro",modalities:{input:["text","image"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!1,knowledge:"2024-05",releaseDate:"2025-06-10",lastUpdated:"2025-06-10",openWeights:!1,cost:{input:20,output:80},limit:{context:2e5,output:1e5}},{id:"o4-mini",ownedBy:"openai",label:"o4-mini",modalities:{input:["text","image"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!1,knowledge:"2024-05",releaseDate:"2025-04-16",lastUpdated:"2025-04-16",openWeights:!1,cost:{input:1.1,output:4.4,cacheRead:.28},limit:{context:2e5,output:1e5}},{id:"o4-mini-deep-research",ownedBy:"openai",label:"o4-mini-deep-research",modalities:{input:["text","image"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!1,knowledge:"2024-05",releaseDate:"2024-06-26",lastUpdated:"2024-06-26",openWeights:!1,cost:{input:2,output:8,cacheRead:.5},limit:{context:2e5,output:1e5}},{id:"text-embedding-3-large",ownedBy:"openai",label:"text-embedding-3-large",modalities:{input:["text"],output:["text"]},toolCall:!1,reasoningText:!1,attachment:!1,temperature:!1,knowledge:"2024-01",releaseDate:"2024-01-25",lastUpdated:"2024-01-25",openWeights:!1,cost:{input:.13,output:0},limit:{context:8191,output:3072}},{id:"text-embedding-3-small",ownedBy:"openai",label:"text-embedding-3-small",modalities:{input:["text"],output:["text"]},toolCall:!1,reasoningText:!1,attachment:!1,temperature:!1,knowledge:"2024-01",releaseDate:"2024-01-25",lastUpdated:"2024-01-25",openWeights:!1,cost:{input:.02,output:0},limit:{context:8191,output:1536}},{id:"text-embedding-ada-002",ownedBy:"openai",label:"text-embedding-ada-002",modalities:{input:["text"],output:["text"]},toolCall:!1,reasoningText:!1,attachment:!1,temperature:!1,knowledge:"2022-12",releaseDate:"2022-12-15",lastUpdated:"2022-12-15",openWeights:!1,cost:{input:.1,output:0},limit:{context:8192,output:1536}}],label:"OpenAI",env:["OPENAI_API_KEY"],npm:"@ai-sdk/openai",doc:"https://platform.openai.com/docs/models"},anthropic:{id:"anthropic",models:[{id:"claude-3-5-haiku-20241022",ownedBy:"anthropic",label:"Claude Haiku 3.5",modalities:{input:["text","image","pdf"],output:["text"]},toolCall:!0,reasoningText:!1,attachment:!0,temperature:!0,knowledge:"2024-07-31",releaseDate:"2024-10-22",lastUpdated:"2024-10-22",openWeights:!1,cost:{input:.8,output:4,cacheRead:.08,cacheWrite:1},limit:{context:2e5,output:8192}},{id:"claude-3-5-haiku-latest",ownedBy:"anthropic",label:"Claude Haiku 3.5 (latest)",modalities:{input:["text","image","pdf"],output:["text"]},toolCall:!0,reasoningText:!1,attachment:!0,temperature:!0,knowledge:"2024-07-31",releaseDate:"2024-10-22",lastUpdated:"2024-10-22",openWeights:!1,cost:{input:.8,output:4,cacheRead:.08,cacheWrite:1},limit:{context:2e5,output:8192}},{id:"claude-3-5-sonnet-20240620",ownedBy:"anthropic",label:"Claude Sonnet 3.5",modalities:{input:["text","image","pdf"],output:["text"]},toolCall:!0,reasoningText:!1,attachment:!0,temperature:!0,knowledge:"2024-04-30",releaseDate:"2024-06-20",lastUpdated:"2024-06-20",openWeights:!1,cost:{input:3,output:15,cacheRead:.3,cacheWrite:3.75},limit:{context:2e5,output:8192}},{id:"claude-3-5-sonnet-20241022",ownedBy:"anthropic",label:"Claude Sonnet 3.5 v2",modalities:{input:["text","image","pdf"],output:["text"]},toolCall:!0,reasoningText:!1,attachment:!0,temperature:!0,knowledge:"2024-04-30",releaseDate:"2024-10-22",lastUpdated:"2024-10-22",openWeights:!1,cost:{input:3,output:15,cacheRead:.3,cacheWrite:3.75},limit:{context:2e5,output:8192}},{id:"claude-3-7-sonnet-20250219",ownedBy:"anthropic",label:"Claude Sonnet 3.7",modalities:{input:["text","image","pdf"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!0,knowledge:"2024-10-31",releaseDate:"2025-02-19",lastUpdated:"2025-02-19",openWeights:!1,cost:{input:3,output:15,cacheRead:.3,cacheWrite:3.75},limit:{context:2e5,output:64e3}},{id:"claude-3-haiku-20240307",ownedBy:"anthropic",label:"Claude Haiku 3",modalities:{input:["text","image","pdf"],output:["text"]},toolCall:!0,reasoningText:!1,attachment:!0,temperature:!0,knowledge:"2023-08-31",releaseDate:"2024-03-13",lastUpdated:"2024-03-13",openWeights:!1,cost:{input:.25,output:1.25,cacheRead:.03,cacheWrite:.3},limit:{context:2e5,output:4096}},{id:"claude-3-opus-20240229",ownedBy:"anthropic",label:"Claude Opus 3",modalities:{input:["text","image","pdf"],output:["text"]},toolCall:!0,reasoningText:!1,attachment:!0,temperature:!0,knowledge:"2023-08-31",releaseDate:"2024-02-29",lastUpdated:"2024-02-29",openWeights:!1,cost:{input:15,output:75,cacheRead:1.5,cacheWrite:18.75},limit:{context:2e5,output:4096}},{id:"claude-3-sonnet-20240229",ownedBy:"anthropic",label:"Claude Sonnet 3",modalities:{input:["text","image","pdf"],output:["text"]},toolCall:!0,reasoningText:!1,attachment:!0,temperature:!0,knowledge:"2023-08-31",releaseDate:"2024-03-04",lastUpdated:"2024-03-04",openWeights:!1,cost:{input:3,output:15,cacheRead:.3,cacheWrite:.3},limit:{context:2e5,output:4096}},{id:"claude-haiku-4-5",ownedBy:"anthropic",label:"Claude Haiku 4.5 (latest)",modalities:{input:["text","image","pdf"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!0,knowledge:"2025-02-28",releaseDate:"2025-10-15",lastUpdated:"2025-10-15",openWeights:!1,cost:{input:1,output:5,cacheRead:.1,cacheWrite:1.25},limit:{context:2e5,output:64e3}},{id:"claude-haiku-4-5-20251001",ownedBy:"anthropic",label:"Claude Haiku 4.5",modalities:{input:["text","image","pdf"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!0,knowledge:"2025-02-28",releaseDate:"2025-10-15",lastUpdated:"2025-10-15",openWeights:!1,cost:{input:1,output:5,cacheRead:.1,cacheWrite:1.25},limit:{context:2e5,output:64e3}},{id:"claude-opus-4-0",ownedBy:"anthropic",label:"Claude Opus 4 (latest)",modalities:{input:["text","image","pdf"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!0,knowledge:"2025-03-31",releaseDate:"2025-05-22",lastUpdated:"2025-05-22",openWeights:!1,cost:{input:15,output:75,cacheRead:1.5,cacheWrite:18.75},limit:{context:2e5,output:32e3}},{id:"claude-opus-4-1",ownedBy:"anthropic",label:"Claude Opus 4.1 (latest)",modalities:{input:["text","image","pdf"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!0,knowledge:"2025-03-31",releaseDate:"2025-08-05",lastUpdated:"2025-08-05",openWeights:!1,cost:{input:15,output:75,cacheRead:1.5,cacheWrite:18.75},limit:{context:2e5,output:32e3}},{id:"claude-opus-4-1-20250805",ownedBy:"anthropic",label:"Claude Opus 4.1",modalities:{input:["text","image","pdf"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!0,knowledge:"2025-03-31",releaseDate:"2025-08-05",lastUpdated:"2025-08-05",openWeights:!1,cost:{input:15,output:75,cacheRead:1.5,cacheWrite:18.75},limit:{context:2e5,output:32e3}},{id:"claude-opus-4-20250514",ownedBy:"anthropic",label:"Claude Opus 4",modalities:{input:["text","image","pdf"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!0,knowledge:"2025-03-31",releaseDate:"2025-05-22",lastUpdated:"2025-05-22",openWeights:!1,cost:{input:15,output:75,cacheRead:1.5,cacheWrite:18.75},limit:{context:2e5,output:32e3}},{id:"claude-opus-4-5",ownedBy:"anthropic",label:"Claude Opus 4.5 (latest)",modalities:{input:["text","image","pdf"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!0,knowledge:"2025-03-31",releaseDate:"2025-11-24",lastUpdated:"2025-11-24",openWeights:!1,cost:{input:5,output:25,cacheRead:.5,cacheWrite:6.25},limit:{context:2e5,output:64e3}},{id:"claude-opus-4-5-20251101",ownedBy:"anthropic",label:"Claude Opus 4.5",modalities:{input:["text","image","pdf"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!0,knowledge:"2025-03-31",releaseDate:"2025-11-01",lastUpdated:"2025-11-01",openWeights:!1,cost:{input:5,output:25,cacheRead:.5,cacheWrite:6.25},limit:{context:2e5,output:64e3}},{id:"claude-opus-4-6",ownedBy:"anthropic",label:"Claude Opus 4.6",modalities:{input:["text","image","pdf"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!0,knowledge:"2025-05-31",releaseDate:"2026-02-05",lastUpdated:"2026-03-13",openWeights:!1,cost:{input:5,output:25,cacheRead:.5,cacheWrite:6.25},limit:{context:1e6,output:128e3}},{id:"claude-opus-4-7",ownedBy:"anthropic",label:"Claude Opus 4.7",modalities:{input:["text","image","pdf"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!1,knowledge:"2026-01-31",releaseDate:"2026-04-16",lastUpdated:"2026-04-16",openWeights:!1,cost:{input:5,output:25,cacheRead:.5,cacheWrite:6.25},limit:{context:1e6,output:128e3}},{id:"claude-sonnet-4-0",ownedBy:"anthropic",label:"Claude Sonnet 4 (latest)",modalities:{input:["text","image","pdf"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!0,knowledge:"2025-03-31",releaseDate:"2025-05-22",lastUpdated:"2025-05-22",openWeights:!1,cost:{input:3,output:15,cacheRead:.3,cacheWrite:3.75},limit:{context:2e5,output:64e3}},{id:"claude-sonnet-4-20250514",ownedBy:"anthropic",label:"Claude Sonnet 4",modalities:{input:["text","image","pdf"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!0,knowledge:"2025-03-31",releaseDate:"2025-05-22",lastUpdated:"2025-05-22",openWeights:!1,cost:{input:3,output:15,cacheRead:.3,cacheWrite:3.75},limit:{context:2e5,output:64e3}},{id:"claude-sonnet-4-5",ownedBy:"anthropic",label:"Claude Sonnet 4.5 (latest)",modalities:{input:["text","image","pdf"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!0,knowledge:"2025-07-31",releaseDate:"2025-09-29",lastUpdated:"2025-09-29",openWeights:!1,cost:{input:3,output:15,cacheRead:.3,cacheWrite:3.75},limit:{context:2e5,output:64e3}},{id:"claude-sonnet-4-5-20250929",ownedBy:"anthropic",label:"Claude Sonnet 4.5",modalities:{input:["text","image","pdf"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!0,knowledge:"2025-07-31",releaseDate:"2025-09-29",lastUpdated:"2025-09-29",openWeights:!1,cost:{input:3,output:15,cacheRead:.3,cacheWrite:3.75},limit:{context:2e5,output:64e3}},{id:"claude-sonnet-4-6",ownedBy:"anthropic",label:"Claude Sonnet 4.6",modalities:{input:["text","image","pdf"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!0,knowledge:"2025-08-31",releaseDate:"2026-02-17",lastUpdated:"2026-03-13",openWeights:!1,cost:{input:3,output:15,cacheRead:.3,cacheWrite:3.75},limit:{context:1e6,output:64e3}}],label:"Anthropic",env:["ANTHROPIC_API_KEY"],npm:"@ai-sdk/anthropic",doc:"https://docs.anthropic.com/en/docs/about-claude/models"},google:{id:"google",models:[{id:"gemini-1.5-flash",ownedBy:"google",label:"Gemini 1.5 Flash",modalities:{input:["text","image","audio","video"],output:["text"]},toolCall:!0,reasoningText:!1,attachment:!0,temperature:!0,knowledge:"2024-04",releaseDate:"2024-05-14",lastUpdated:"2024-05-14",openWeights:!1,cost:{input:.075,output:.3,cacheRead:.01875},limit:{context:1e6,output:8192}},{id:"gemini-1.5-flash-8b",ownedBy:"google",label:"Gemini 1.5 Flash-8B",modalities:{input:["text","image","audio","video"],output:["text"]},toolCall:!0,reasoningText:!1,attachment:!0,temperature:!0,knowledge:"2024-04",releaseDate:"2024-10-03",lastUpdated:"2024-10-03",openWeights:!1,cost:{input:.0375,output:.15,cacheRead:.01},limit:{context:1e6,output:8192}},{id:"gemini-1.5-pro",ownedBy:"google",label:"Gemini 1.5 Pro",modalities:{input:["text","image","audio","video"],output:["text"]},toolCall:!0,reasoningText:!1,attachment:!0,temperature:!0,knowledge:"2024-04",releaseDate:"2024-02-15",lastUpdated:"2024-02-15",openWeights:!1,cost:{input:1.25,output:5,cacheRead:.3125},limit:{context:1e6,output:8192}},{id:"gemini-2.0-flash",ownedBy:"google",label:"Gemini 2.0 Flash",modalities:{input:["text","image","audio","video","pdf"],output:["text"]},toolCall:!0,reasoningText:!1,attachment:!0,temperature:!0,knowledge:"2024-06",releaseDate:"2024-12-11",lastUpdated:"2024-12-11",openWeights:!1,cost:{input:.1,output:.4,cacheRead:.025},limit:{context:1048576,output:8192}},{id:"gemini-2.0-flash-lite",ownedBy:"google",label:"Gemini 2.0 Flash Lite",modalities:{input:["text","image","audio","video","pdf"],output:["text"]},toolCall:!0,reasoningText:!1,attachment:!0,temperature:!0,knowledge:"2024-06",releaseDate:"2024-12-11",lastUpdated:"2024-12-11",openWeights:!1,cost:{input:.075,output:.3},limit:{context:1048576,output:8192}},{id:"gemini-2.5-flash",ownedBy:"google",label:"Gemini 2.5 Flash",modalities:{input:["text","image","audio","video","pdf"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!0,knowledge:"2025-01",releaseDate:"2025-03-20",lastUpdated:"2025-06-05",openWeights:!1,cost:{input:.3,output:2.5,cacheRead:.03},limit:{context:1048576,output:65536}},{id:"gemini-2.5-flash-image",ownedBy:"google",label:"Gemini 2.5 Flash Image",modalities:{input:["text","image"],output:["text","image"]},toolCall:!1,reasoningText:!0,attachment:!0,temperature:!0,knowledge:"2025-06",releaseDate:"2025-08-26",lastUpdated:"2025-08-26",openWeights:!1,cost:{input:.3,output:30,cacheRead:.075},limit:{context:32768,output:32768}},{id:"gemini-2.5-flash-image-preview",ownedBy:"google",label:"Gemini 2.5 Flash Image (Preview)",modalities:{input:["text","image"],output:["text","image"]},toolCall:!1,reasoningText:!0,attachment:!0,temperature:!0,knowledge:"2025-06",releaseDate:"2025-08-26",lastUpdated:"2025-08-26",openWeights:!1,cost:{input:.3,output:30,cacheRead:.075},limit:{context:32768,output:32768}},{id:"gemini-2.5-flash-lite",ownedBy:"google",label:"Gemini 2.5 Flash Lite",modalities:{input:["text","image","audio","video","pdf"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!0,knowledge:"2025-01",releaseDate:"2025-06-17",lastUpdated:"2025-06-17",openWeights:!1,cost:{input:.1,output:.4,cacheRead:.025},limit:{context:1048576,output:65536}},{id:"gemini-2.5-flash-lite-preview-06-17",ownedBy:"google",label:"Gemini 2.5 Flash Lite Preview 06-17",modalities:{input:["text","image","audio","video","pdf"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!0,knowledge:"2025-01",releaseDate:"2025-06-17",lastUpdated:"2025-06-17",openWeights:!1,cost:{input:.1,output:.4,cacheRead:.025},limit:{context:1048576,output:65536}},{id:"gemini-2.5-flash-lite-preview-09-2025",ownedBy:"google",label:"Gemini 2.5 Flash Lite Preview 09-25",modalities:{input:["text","image","audio","video","pdf"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!0,knowledge:"2025-01",releaseDate:"2025-09-25",lastUpdated:"2025-09-25",openWeights:!1,cost:{input:.1,output:.4,cacheRead:.025},limit:{context:1048576,output:65536}},{id:"gemini-2.5-flash-preview-04-17",ownedBy:"google",label:"Gemini 2.5 Flash Preview 04-17",modalities:{input:["text","image","audio","video","pdf"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!0,knowledge:"2025-01",releaseDate:"2025-04-17",lastUpdated:"2025-04-17",openWeights:!1,cost:{input:.15,output:.6,cacheRead:.0375},limit:{context:1048576,output:65536}},{id:"gemini-2.5-flash-preview-05-20",ownedBy:"google",label:"Gemini 2.5 Flash Preview 05-20",modalities:{input:["text","image","audio","video","pdf"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!0,knowledge:"2025-01",releaseDate:"2025-05-20",lastUpdated:"2025-05-20",openWeights:!1,cost:{input:.15,output:.6,cacheRead:.0375},limit:{context:1048576,output:65536}},{id:"gemini-2.5-flash-preview-09-2025",ownedBy:"google",label:"Gemini 2.5 Flash Preview 09-25",modalities:{input:["text","image","audio","video","pdf"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!0,knowledge:"2025-01",releaseDate:"2025-09-25",lastUpdated:"2025-09-25",openWeights:!1,cost:{input:.3,output:2.5,cacheRead:.075},limit:{context:1048576,output:65536}},{id:"gemini-2.5-flash-preview-tts",ownedBy:"google",label:"Gemini 2.5 Flash Preview TTS",modalities:{input:["text"],output:["audio"]},toolCall:!1,reasoningText:!1,attachment:!1,temperature:!1,knowledge:"2025-01",releaseDate:"2025-05-01",lastUpdated:"2025-05-01",openWeights:!1,cost:{input:.5,output:10},limit:{context:8e3,output:16e3}},{id:"gemini-2.5-pro",ownedBy:"google",label:"Gemini 2.5 Pro",modalities:{input:["text","image","audio","video","pdf"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!0,knowledge:"2025-01",releaseDate:"2025-03-20",lastUpdated:"2025-06-05",openWeights:!1,cost:{input:1.25,output:10,cacheRead:.125},limit:{context:1048576,output:65536}},{id:"gemini-2.5-pro-preview-05-06",ownedBy:"google",label:"Gemini 2.5 Pro Preview 05-06",modalities:{input:["text","image","audio","video","pdf"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!0,knowledge:"2025-01",releaseDate:"2025-05-06",lastUpdated:"2025-05-06",openWeights:!1,cost:{input:1.25,output:10,cacheRead:.31},limit:{context:1048576,output:65536}},{id:"gemini-2.5-pro-preview-06-05",ownedBy:"google",label:"Gemini 2.5 Pro Preview 06-05",modalities:{input:["text","image","audio","video","pdf"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!0,knowledge:"2025-01",releaseDate:"2025-06-05",lastUpdated:"2025-06-05",openWeights:!1,cost:{input:1.25,output:10,cacheRead:.31},limit:{context:1048576,output:65536}},{id:"gemini-2.5-pro-preview-tts",ownedBy:"google",label:"Gemini 2.5 Pro Preview TTS",modalities:{input:["text"],output:["audio"]},toolCall:!1,reasoningText:!1,attachment:!1,temperature:!1,knowledge:"2025-01",releaseDate:"2025-05-01",lastUpdated:"2025-05-01",openWeights:!1,cost:{input:1,output:20},limit:{context:8e3,output:16e3}},{id:"gemini-3-flash-preview",ownedBy:"google",label:"Gemini 3 Flash Preview",modalities:{input:["text","image","video","audio","pdf"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!0,knowledge:"2025-01",releaseDate:"2025-12-17",lastUpdated:"2025-12-17",openWeights:!1,cost:{input:.5,output:3,cacheRead:.05},limit:{context:1048576,output:65536}},{id:"gemini-3-pro-preview",ownedBy:"google",label:"Gemini 3 Pro Preview",modalities:{input:["text","image","video","audio","pdf"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!0,knowledge:"2025-01",releaseDate:"2025-11-18",lastUpdated:"2025-11-18",openWeights:!1,cost:{input:2,output:12,cacheRead:.2},limit:{context:1e6,output:64e3}},{id:"gemini-3.1-flash-image-preview",ownedBy:"google",label:"Gemini 3.1 Flash Image (Preview)",modalities:{input:["text","image","pdf"],output:["text","image"]},toolCall:!1,reasoningText:!0,attachment:!0,temperature:!0,knowledge:"2025-01",releaseDate:"2026-02-26",lastUpdated:"2026-02-26",openWeights:!1,cost:{input:.25,output:60},limit:{context:131072,output:32768}},{id:"gemini-3.1-flash-lite-preview",ownedBy:"google",label:"Gemini 3.1 Flash Lite Preview",modalities:{input:["text","image","video","audio","pdf"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!0,knowledge:"2025-01",releaseDate:"2026-03-03",lastUpdated:"2026-03-03",openWeights:!1,cost:{input:.25,output:1.5,cacheRead:.025,cacheWrite:1},limit:{context:1048576,output:65536}},{id:"gemini-3.1-pro-preview",ownedBy:"google",label:"Gemini 3.1 Pro Preview",modalities:{input:["text","image","video","audio","pdf"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!0,knowledge:"2025-01",releaseDate:"2026-02-19",lastUpdated:"2026-02-19",openWeights:!1,cost:{input:2,output:12,cacheRead:.2},limit:{context:1048576,output:65536}},{id:"gemini-3.1-pro-preview-customtools",ownedBy:"google",label:"Gemini 3.1 Pro Preview Custom Tools",modalities:{input:["text","image","video","audio","pdf"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!0,knowledge:"2025-01",releaseDate:"2026-02-19",lastUpdated:"2026-02-19",openWeights:!1,cost:{input:2,output:12,cacheRead:.2},limit:{context:1048576,output:65536}},{id:"gemini-embedding-001",ownedBy:"google",label:"Gemini Embedding 001",modalities:{input:["text"],output:["text"]},toolCall:!1,reasoningText:!1,attachment:!1,temperature:!1,knowledge:"2025-05",releaseDate:"2025-05-20",lastUpdated:"2025-05-20",openWeights:!1,cost:{input:.15,output:0},limit:{context:2048,output:3072}},{id:"gemini-flash-latest",ownedBy:"google",label:"Gemini Flash Latest",modalities:{input:["text","image","audio","video","pdf"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!0,knowledge:"2025-01",releaseDate:"2025-09-25",lastUpdated:"2025-09-25",openWeights:!1,cost:{input:.3,output:2.5,cacheRead:.075},limit:{context:1048576,output:65536}},{id:"gemini-flash-lite-latest",ownedBy:"google",label:"Gemini Flash-Lite Latest",modalities:{input:["text","image","audio","video","pdf"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!0,knowledge:"2025-01",releaseDate:"2025-09-25",lastUpdated:"2025-09-25",openWeights:!1,cost:{input:.1,output:.4,cacheRead:.025},limit:{context:1048576,output:65536}},{id:"gemini-live-2.5-flash",ownedBy:"google",label:"Gemini Live 2.5 Flash",modalities:{input:["text","image","audio","video"],output:["text","audio"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!0,knowledge:"2025-01",releaseDate:"2025-09-01",lastUpdated:"2025-09-01",openWeights:!1,cost:{input:.5,output:2},limit:{context:128e3,output:8e3}},{id:"gemini-live-2.5-flash-preview-native-audio",ownedBy:"google",label:"Gemini Live 2.5 Flash Preview Native Audio",modalities:{input:["text","audio","video"],output:["text","audio"]},toolCall:!0,reasoningText:!0,attachment:!1,temperature:!1,knowledge:"2025-01",releaseDate:"2025-06-17",lastUpdated:"2025-09-18",openWeights:!1,cost:{input:.5,output:2},limit:{context:131072,output:65536}},{id:"gemma-3-12b-it",ownedBy:"google",label:"Gemma 3 12B",modalities:{input:["text","image"],output:["text"]},toolCall:!1,reasoningText:!1,attachment:!0,temperature:!0,knowledge:"2024-10",releaseDate:"2025-03-13",lastUpdated:"2025-03-13",openWeights:!0,cost:{input:0,output:0},limit:{context:32768,output:8192}},{id:"gemma-3-27b-it",ownedBy:"google",label:"Gemma 3 27B",modalities:{input:["text","image"],output:["text"]},toolCall:!0,reasoningText:!1,attachment:!0,temperature:!0,knowledge:"2024-10",releaseDate:"2025-03-12",lastUpdated:"2025-03-12",openWeights:!0,cost:{input:0,output:0},limit:{context:131072,output:8192}},{id:"gemma-3-4b-it",ownedBy:"google",label:"Gemma 3 4B",modalities:{input:["text","image"],output:["text"]},toolCall:!1,reasoningText:!1,attachment:!0,temperature:!0,knowledge:"2024-10",releaseDate:"2025-03-13",lastUpdated:"2025-03-13",openWeights:!0,cost:{input:0,output:0},limit:{context:32768,output:8192}},{id:"gemma-3n-e2b-it",ownedBy:"google",label:"Gemma 3n 2B",modalities:{input:["text"],output:["text"]},toolCall:!1,reasoningText:!1,attachment:!0,temperature:!0,knowledge:"2024-10",releaseDate:"2025-07-09",lastUpdated:"2025-07-09",openWeights:!0,cost:{input:0,output:0},limit:{context:8192,output:2e3}},{id:"gemma-3n-e4b-it",ownedBy:"google",label:"Gemma 3n 4B",modalities:{input:["text"],output:["text"]},toolCall:!1,reasoningText:!1,attachment:!0,temperature:!0,knowledge:"2024-10",releaseDate:"2025-05-20",lastUpdated:"2025-05-20",openWeights:!0,cost:{input:0,output:0},limit:{context:8192,output:2e3}},{id:"gemma-4-26b-a4b-it",ownedBy:"google",label:"Gemma 4 26B",modalities:{input:["text","image"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!1,temperature:!0,releaseDate:"2026-04-02",lastUpdated:"2026-04-02",openWeights:!0,limit:{context:256e3,output:8192}},{id:"gemma-4-31b-it",ownedBy:"google",label:"Gemma 4 31B",modalities:{input:["text","image"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!1,temperature:!0,releaseDate:"2026-04-02",lastUpdated:"2026-04-02",openWeights:!0,limit:{context:256e3,output:8192}}],label:"Google",env:["GOOGLE_GENERATIVE_AI_API_KEY","GEMINI_API_KEY"],npm:"@ai-sdk/google",doc:"https://ai.google.dev/gemini-api/docs/pricing"},openrouter:{id:"openrouter",models:[{id:"anthropic/claude-3.5-haiku",ownedBy:"anthropic",label:"Claude Haiku 3.5",modalities:{input:["text","image","pdf"],output:["text"]},toolCall:!0,reasoningText:!1,attachment:!0,temperature:!0,knowledge:"2024-07-31",releaseDate:"2024-10-22",lastUpdated:"2024-10-22",openWeights:!1,cost:{input:.8,output:4,cacheRead:.08,cacheWrite:1},limit:{context:2e5,output:8192}},{id:"anthropic/claude-3.7-sonnet",ownedBy:"anthropic",label:"Claude Sonnet 3.7",modalities:{input:["text","image","pdf"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!0,knowledge:"2024-01",releaseDate:"2025-02-19",lastUpdated:"2025-02-19",openWeights:!1,cost:{input:15,output:75,cacheRead:1.5,cacheWrite:18.75},limit:{context:2e5,output:128e3}},{id:"anthropic/claude-haiku-4.5",ownedBy:"anthropic",label:"Claude Haiku 4.5",modalities:{input:["text","image","pdf"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!0,knowledge:"2025-02-28",releaseDate:"2025-10-15",lastUpdated:"2025-10-15",openWeights:!1,cost:{input:1,output:5,cacheRead:.1,cacheWrite:1.25},limit:{context:2e5,output:64e3}},{id:"anthropic/claude-opus-4",ownedBy:"anthropic",label:"Claude Opus 4",modalities:{input:["text","image","pdf"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!0,knowledge:"2025-03-31",releaseDate:"2025-05-22",lastUpdated:"2025-05-22",openWeights:!1,cost:{input:15,output:75,cacheRead:1.5,cacheWrite:18.75},limit:{context:2e5,output:32e3}},{id:"anthropic/claude-opus-4.1",ownedBy:"anthropic",label:"Claude Opus 4.1",modalities:{input:["text","image","pdf"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!0,knowledge:"2025-03-31",releaseDate:"2025-08-05",lastUpdated:"2025-08-05",openWeights:!1,cost:{input:15,output:75,cacheRead:1.5,cacheWrite:18.75},limit:{context:2e5,output:32e3}},{id:"anthropic/claude-opus-4.5",ownedBy:"anthropic",label:"Claude Opus 4.5",modalities:{input:["text","image","pdf"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!0,knowledge:"2025-05-30",releaseDate:"2025-11-24",lastUpdated:"2025-11-24",openWeights:!1,cost:{input:5,output:25,cacheRead:.5,cacheWrite:6.25},limit:{context:2e5,output:32e3}},{id:"anthropic/claude-opus-4.6",ownedBy:"anthropic",label:"Claude Opus 4.6",modalities:{input:["text","image","pdf"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!0,knowledge:"2025-05-31",releaseDate:"2026-02-05",lastUpdated:"2026-02-05",openWeights:!1,cost:{input:5,output:25,cacheRead:.5,cacheWrite:6.25},limit:{context:1e6,output:128e3}},{id:"anthropic/claude-opus-4.7",ownedBy:"anthropic",label:"Claude Opus 4.7",modalities:{input:["text","image","pdf"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!1,knowledge:"2026-01-31",releaseDate:"2026-04-16",lastUpdated:"2026-04-16",openWeights:!1,cost:{input:5,output:25,cacheRead:.5,cacheWrite:6.25},limit:{context:1e6,output:128e3}},{id:"anthropic/claude-sonnet-4",ownedBy:"anthropic",label:"Claude Sonnet 4",modalities:{input:["text","image","pdf"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!0,knowledge:"2025-03-31",releaseDate:"2025-05-22",lastUpdated:"2025-05-22",openWeights:!1,cost:{input:3,output:15,cacheRead:.3,cacheWrite:3.75},limit:{context:2e5,output:64e3}},{id:"anthropic/claude-sonnet-4.5",ownedBy:"anthropic",label:"Claude Sonnet 4.5",modalities:{input:["text","image","pdf"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!0,knowledge:"2025-07-31",releaseDate:"2025-09-29",lastUpdated:"2025-09-29",openWeights:!1,cost:{input:3,output:15,cacheRead:.3,cacheWrite:3.75},limit:{context:1e6,output:64e3}},{id:"anthropic/claude-sonnet-4.6",ownedBy:"anthropic",label:"Claude Sonnet 4.6",modalities:{input:["text","image"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!0,knowledge:"2025-08-31",releaseDate:"2026-02-17",lastUpdated:"2026-02-17",openWeights:!1,cost:{input:3,output:15,cacheRead:.3,cacheWrite:3.75},limit:{context:1e6,output:128e3}},{id:"arcee-ai/trinity-large-preview:free",label:"Trinity Large Preview",modalities:{input:["text"],output:["text"]},toolCall:!0,reasoningText:!1,attachment:!1,temperature:!0,knowledge:"2025-06",releaseDate:"2026-01-28",lastUpdated:"2026-01-28",openWeights:!0,cost:{input:0,output:0},limit:{context:131072,output:131072}},{id:"arcee-ai/trinity-large-thinking",label:"Trinity Large Thinking",modalities:{input:["text"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!1,temperature:!0,releaseDate:"2026-04-01",lastUpdated:"2026-04-03",openWeights:!0,cost:{input:.22,output:.85},limit:{context:262144,output:8e4}},{id:"black-forest-labs/flux.2-flex",label:"FLUX.2 Flex",modalities:{input:["image","text"],output:["image"]},toolCall:!1,reasoningText:!1,attachment:!1,temperature:!0,knowledge:"2025-06",releaseDate:"2025-11-25",lastUpdated:"2026-01-31",openWeights:!1,cost:{input:0,output:0},limit:{context:67344,output:67344}},{id:"black-forest-labs/flux.2-klein-4b",label:"FLUX.2 Klein 4B",modalities:{input:["image","text"],output:["image"]},toolCall:!1,reasoningText:!1,attachment:!1,temperature:!0,knowledge:"2025-06",releaseDate:"2026-01-14",lastUpdated:"2026-01-31",openWeights:!0,cost:{input:0,output:0},limit:{context:40960,output:40960}},{id:"black-forest-labs/flux.2-max",label:"FLUX.2 Max",modalities:{input:["image","text"],output:["image"]},toolCall:!1,reasoningText:!1,attachment:!1,temperature:!0,knowledge:"2025-06",releaseDate:"2025-12-16",lastUpdated:"2026-01-31",openWeights:!1,cost:{input:0,output:0},limit:{context:46864,output:46864}},{id:"black-forest-labs/flux.2-pro",label:"FLUX.2 Pro",modalities:{input:["image","text"],output:["image"]},toolCall:!1,reasoningText:!1,attachment:!1,temperature:!0,knowledge:"2025-06",releaseDate:"2025-11-25",lastUpdated:"2026-01-31",openWeights:!1,cost:{input:0,output:0},limit:{context:46864,output:46864}},{id:"bytedance-seed/seedream-4.5",label:"Seedream 4.5",modalities:{input:["image","text"],output:["image"]},toolCall:!1,reasoningText:!1,attachment:!1,temperature:!0,knowledge:"2025-06",releaseDate:"2025-12-23",lastUpdated:"2026-01-31",openWeights:!0,cost:{input:0,output:0},limit:{context:4096,output:4096}},{id:"cognitivecomputations/dolphin-mistral-24b-venice-edition:free",label:"Uncensored (free)",modalities:{input:["text"],output:["text"]},toolCall:!1,reasoningText:!1,attachment:!1,temperature:!0,knowledge:"2025-06",releaseDate:"2025-07-09",lastUpdated:"2026-01-31",openWeights:!0,cost:{input:0,output:0},limit:{context:32768,output:32768}},{id:"deepseek/deepseek-chat-v3-0324",label:"DeepSeek V3 0324",modalities:{input:["text"],output:["text"]},toolCall:!1,reasoningText:!1,attachment:!1,temperature:!0,knowledge:"2024-10",releaseDate:"2025-03-24",lastUpdated:"2025-03-24",openWeights:!0,cost:{input:0,output:0},limit:{context:16384,output:8192}},{id:"deepseek/deepseek-chat-v3.1",label:"DeepSeek-V3.1",modalities:{input:["text"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!1,temperature:!0,knowledge:"2025-07",releaseDate:"2025-08-21",lastUpdated:"2025-08-21",openWeights:!0,cost:{input:.2,output:.8},limit:{context:163840,output:163840}},{id:"deepseek/deepseek-r1",label:"DeepSeek: R1",modalities:{input:["text"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!1,temperature:!0,knowledge:"2024-07",releaseDate:"2025-01-20",lastUpdated:"2025-01-20",openWeights:!0,cost:{input:.7,output:2.5},limit:{context:64e3,output:16e3}},{id:"deepseek/deepseek-r1-distill-llama-70b",label:"DeepSeek R1 Distill Llama 70B",modalities:{input:["text"],output:["text"]},toolCall:!1,reasoningText:!0,attachment:!1,temperature:!0,knowledge:"2024-10",releaseDate:"2025-01-23",lastUpdated:"2025-01-23",openWeights:!0,cost:{input:0,output:0},limit:{context:8192,output:8192}},{id:"deepseek/deepseek-v3.1-terminus",label:"DeepSeek V3.1 Terminus",modalities:{input:["text"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!1,temperature:!0,knowledge:"2025-07",releaseDate:"2025-09-22",lastUpdated:"2025-09-22",openWeights:!0,cost:{input:.27,output:1},limit:{context:131072,output:65536}},{id:"deepseek/deepseek-v3.1-terminus:exacto",label:"DeepSeek V3.1 Terminus (exacto)",modalities:{input:["text"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!1,temperature:!0,knowledge:"2025-07",releaseDate:"2025-09-22",lastUpdated:"2025-09-22",openWeights:!0,cost:{input:.27,output:1},limit:{context:131072,output:65536}},{id:"deepseek/deepseek-v3.2",label:"DeepSeek V3.2",modalities:{input:["text"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!1,temperature:!0,knowledge:"2024-07",releaseDate:"2025-12-01",lastUpdated:"2025-12-01",openWeights:!0,cost:{input:.28,output:.4},limit:{context:163840,output:65536}},{id:"deepseek/deepseek-v3.2-speciale",label:"DeepSeek V3.2 Speciale",modalities:{input:["text"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!1,temperature:!0,knowledge:"2024-07",releaseDate:"2025-12-01",lastUpdated:"2025-12-01",openWeights:!0,cost:{input:.27,output:.41},limit:{context:163840,output:65536}},{id:"deepseek/deepseek-v4-flash",label:"DeepSeek V4 Flash",modalities:{input:["text"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!1,temperature:!0,knowledge:"2025-05",releaseDate:"2026-04-24",lastUpdated:"2026-04-24",openWeights:!0,cost:{input:.14,output:.28,cacheRead:.028},limit:{context:1048576,output:393216}},{id:"deepseek/deepseek-v4-pro",label:"DeepSeek V4 Pro",modalities:{input:["text"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!1,temperature:!0,knowledge:"2025-05",releaseDate:"2026-04-24",lastUpdated:"2026-04-24",openWeights:!0,cost:{input:1.74,output:3.48,cacheRead:.145},limit:{context:1048576,output:393216}},{id:"google/gemini-2.0-flash-001",ownedBy:"google",label:"Gemini 2.0 Flash",modalities:{input:["text","image","audio","video","pdf"],output:["text"]},toolCall:!0,reasoningText:!1,attachment:!0,temperature:!0,knowledge:"2024-06",releaseDate:"2024-12-11",lastUpdated:"2024-12-11",openWeights:!1,cost:{input:.1,output:.4,cacheRead:.025},limit:{context:1048576,output:8192}},{id:"google/gemini-2.5-flash",ownedBy:"google",label:"Gemini 2.5 Flash",modalities:{input:["text","image","audio","video","pdf"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!0,knowledge:"2025-01",releaseDate:"2025-07-17",lastUpdated:"2025-07-17",openWeights:!1,cost:{input:.3,output:2.5,cacheRead:.0375},limit:{context:1048576,output:65536}},{id:"google/gemini-2.5-flash-lite",ownedBy:"google",label:"Gemini 2.5 Flash Lite",modalities:{input:["text","image","audio","video","pdf"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!0,knowledge:"2025-01",releaseDate:"2025-06-17",lastUpdated:"2025-06-17",openWeights:!1,cost:{input:.1,output:.4,cacheRead:.025},limit:{context:1048576,output:65536}},{id:"google/gemini-2.5-flash-lite-preview-09-2025",ownedBy:"google",label:"Gemini 2.5 Flash Lite Preview 09-25",modalities:{input:["text","image","audio","video","pdf"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!0,knowledge:"2025-01",releaseDate:"2025-09-25",lastUpdated:"2025-09-25",openWeights:!1,cost:{input:.1,output:.4,cacheRead:.025},limit:{context:1048576,output:65536}},{id:"google/gemini-2.5-flash-preview-09-2025",ownedBy:"google",label:"Gemini 2.5 Flash Preview 09-25",modalities:{input:["text","image","audio","video","pdf"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!0,knowledge:"2025-01",releaseDate:"2025-09-25",lastUpdated:"2025-09-25",openWeights:!1,cost:{input:.3,output:2.5,cacheRead:.031},limit:{context:1048576,output:65536}},{id:"google/gemini-2.5-pro",ownedBy:"google",label:"Gemini 2.5 Pro",modalities:{input:["text","image","audio","video","pdf"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!0,knowledge:"2025-01",releaseDate:"2025-03-20",lastUpdated:"2025-06-05",openWeights:!1,cost:{input:1.25,output:10,cacheRead:.125},limit:{context:1048576,output:65536}},{id:"google/gemini-2.5-pro-preview-05-06",ownedBy:"google",label:"Gemini 2.5 Pro Preview 05-06",modalities:{input:["text","image","audio","video","pdf"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!0,knowledge:"2025-01",releaseDate:"2025-05-06",lastUpdated:"2025-05-06",openWeights:!1,cost:{input:1.25,output:10,cacheRead:.31},limit:{context:1048576,output:65536}},{id:"google/gemini-2.5-pro-preview-06-05",ownedBy:"google",label:"Gemini 2.5 Pro Preview 06-05",modalities:{input:["text","image","audio","video","pdf"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!0,knowledge:"2025-01",releaseDate:"2025-06-05",lastUpdated:"2025-06-05",openWeights:!1,cost:{input:1.25,output:10,cacheRead:.31},limit:{context:1048576,output:65536}},{id:"google/gemini-3-flash-preview",ownedBy:"google",label:"Gemini 3 Flash Preview",modalities:{input:["text","image","audio","video","pdf"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!0,knowledge:"2025-01",releaseDate:"2025-12-17",lastUpdated:"2025-12-17",openWeights:!1,cost:{input:.5,output:3,cacheRead:.05},limit:{context:1048576,output:65536}},{id:"google/gemini-3-pro-preview",ownedBy:"google",label:"Gemini 3 Pro Preview",modalities:{input:["text","image","audio","video","pdf"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!0,knowledge:"2025-01",releaseDate:"2025-11-18",lastUpdated:"2025-11",openWeights:!1,cost:{input:2,output:12},limit:{context:105e4,output:66e3}},{id:"google/gemini-3.1-flash-image-preview",ownedBy:"google",label:"Gemini 3.1 Flash Image Preview (Nano Banana 2)",modalities:{input:["text","image"],output:["text","image"]},toolCall:!1,reasoningText:!0,attachment:!0,temperature:!0,knowledge:"2025-01",releaseDate:"2026-02-26",lastUpdated:"2026-02-26",openWeights:!1,cost:{input:.5,output:3},limit:{context:65536,output:65536}},{id:"google/gemini-3.1-flash-lite-preview",ownedBy:"google",label:"Gemini 3.1 Flash Lite Preview",modalities:{input:["text","image","video","pdf","audio"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!0,releaseDate:"2026-03-03",lastUpdated:"2026-03-03",openWeights:!1,cost:{input:.25,output:1.5,cacheRead:.025,cacheWrite:.083},limit:{context:1048576,output:65536}},{id:"google/gemini-3.1-pro-preview",ownedBy:"google",label:"Gemini 3.1 Pro Preview",modalities:{input:["text","image","audio","video","pdf"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!0,knowledge:"2025-01",releaseDate:"2026-02-19",lastUpdated:"2026-02-19",openWeights:!1,cost:{input:2,output:12},limit:{context:1048576,output:65536}},{id:"google/gemini-3.1-pro-preview-customtools",ownedBy:"google",label:"Gemini 3.1 Pro Preview Custom Tools",modalities:{input:["text","image","audio","video","pdf"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!0,knowledge:"2025-01",releaseDate:"2026-02-19",lastUpdated:"2026-02-19",openWeights:!1,cost:{input:2,output:12},limit:{context:1048576,output:65536}},{id:"google/gemma-2-9b-it",ownedBy:"google",label:"Gemma 2 9B",modalities:{input:["text"],output:["text"]},toolCall:!1,reasoningText:!1,attachment:!1,temperature:!0,knowledge:"2024-06",releaseDate:"2024-06-28",lastUpdated:"2024-06-28",openWeights:!0,cost:{input:.03,output:.09},limit:{context:8192,output:8192}},{id:"google/gemma-3-12b-it",ownedBy:"google",label:"Gemma 3 12B",modalities:{input:["text","image"],output:["text"]},toolCall:!1,reasoningText:!1,attachment:!0,temperature:!0,knowledge:"2024-10",releaseDate:"2025-03-13",lastUpdated:"2025-03-13",openWeights:!0,cost:{input:.03,output:.1},limit:{context:131072,output:131072}},{id:"google/gemma-3-12b-it:free",ownedBy:"google",label:"Gemma 3 12B (free)",modalities:{input:["text","image"],output:["text"]},toolCall:!1,reasoningText:!1,attachment:!0,temperature:!0,knowledge:"2024-10",releaseDate:"2025-03-13",lastUpdated:"2025-03-13",openWeights:!0,cost:{input:0,output:0},limit:{context:32768,output:8192}},{id:"google/gemma-3-27b-it",ownedBy:"google",label:"Gemma 3 27B",modalities:{input:["text","image"],output:["text"]},toolCall:!0,reasoningText:!1,attachment:!0,temperature:!0,knowledge:"2024-10",releaseDate:"2025-03-12",lastUpdated:"2025-03-12",openWeights:!0,cost:{input:.04,output:.15},limit:{context:96e3,output:96e3}},{id:"google/gemma-3-27b-it:free",ownedBy:"google",label:"Gemma 3 27B (free)",modalities:{input:["text","image"],output:["text"]},toolCall:!0,reasoningText:!1,attachment:!0,temperature:!0,knowledge:"2024-10",releaseDate:"2025-03-12",lastUpdated:"2025-03-12",openWeights:!0,cost:{input:0,output:0},limit:{context:131072,output:8192}},{id:"google/gemma-3-4b-it",ownedBy:"google",label:"Gemma 3 4B",modalities:{input:["text","image"],output:["text"]},toolCall:!1,reasoningText:!1,attachment:!0,temperature:!0,knowledge:"2024-10",releaseDate:"2025-03-13",lastUpdated:"2025-03-13",openWeights:!0,cost:{input:.01703,output:.06815},limit:{context:96e3,output:96e3}},{id:"google/gemma-3-4b-it:free",ownedBy:"google",label:"Gemma 3 4B (free)",modalities:{input:["text","image"],output:["text"]},toolCall:!1,reasoningText:!1,attachment:!0,temperature:!0,knowledge:"2024-10",releaseDate:"2025-03-13",lastUpdated:"2025-03-13",openWeights:!0,cost:{input:0,output:0},limit:{context:32768,output:8192}},{id:"google/gemma-3n-e2b-it:free",ownedBy:"google",label:"Gemma 3n 2B (free)",modalities:{input:["text"],output:["text"]},toolCall:!1,reasoningText:!1,attachment:!0,temperature:!0,knowledge:"2024-06",releaseDate:"2025-07-09",lastUpdated:"2025-07-09",openWeights:!0,cost:{input:0,output:0},limit:{context:8192,output:2e3}},{id:"google/gemma-3n-e4b-it",ownedBy:"google",label:"Gemma 3n 4B",modalities:{input:["text"],output:["text"]},toolCall:!1,reasoningText:!1,attachment:!0,temperature:!0,knowledge:"2024-06",releaseDate:"2025-05-20",lastUpdated:"2025-05-20",openWeights:!0,cost:{input:.02,output:.04},limit:{context:32768,output:32768}},{id:"google/gemma-3n-e4b-it:free",ownedBy:"google",label:"Gemma 3n 4B (free)",modalities:{input:["text"],output:["text"]},toolCall:!1,reasoningText:!1,attachment:!0,temperature:!0,knowledge:"2024-06",releaseDate:"2025-05-20",lastUpdated:"2025-05-20",openWeights:!0,cost:{input:0,output:0},limit:{context:8192,output:2e3}},{id:"google/gemma-4-26b-a4b-it",ownedBy:"google",label:"Gemma 4 26B A4B",modalities:{input:["text","image","video"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!0,knowledge:"2025-01",releaseDate:"2026-04-03",lastUpdated:"2026-04-03",openWeights:!0,cost:{input:.13,output:.4},limit:{context:262144,output:262144}},{id:"google/gemma-4-26b-a4b-it:free",ownedBy:"google",label:"Gemma 4 26B A4B (free)",modalities:{input:["text","image","video"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!0,knowledge:"2025-01",releaseDate:"2026-04-03",lastUpdated:"2026-04-03",openWeights:!0,cost:{input:0,output:0},limit:{context:262144,output:32768}},{id:"google/gemma-4-31b-it",ownedBy:"google",label:"Gemma 4 31B",modalities:{input:["text","image","video"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!0,knowledge:"2025-01",releaseDate:"2026-04-02",lastUpdated:"2026-04-02",openWeights:!0,cost:{input:.14,output:.4},limit:{context:262144,output:262144}},{id:"google/gemma-4-31b-it:free",ownedBy:"google",label:"Gemma 4 31B (free)",modalities:{input:["text","image","video"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!0,knowledge:"2025-01",releaseDate:"2026-04-02",lastUpdated:"2026-04-02",openWeights:!0,cost:{input:0,output:0},limit:{context:262144,output:32768}},{id:"inception/mercury-2",label:"Mercury 2",modalities:{input:["text"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!1,temperature:!0,releaseDate:"2026-03-04",lastUpdated:"2026-03-04",openWeights:!1,cost:{input:.25,output:.75,cacheRead:.025},limit:{context:128e3,output:5e4}},{id:"inception/mercury-edit-2",label:"Mercury Edit 2",modalities:{input:["text"],output:["text"]},toolCall:!1,reasoningText:!0,attachment:!1,temperature:!0,releaseDate:"2026-03-30",lastUpdated:"2026-03-30",openWeights:!1,cost:{input:.25,output:.75,cacheRead:.025},limit:{context:128e3,output:8192}},{id:"liquid/lfm-2.5-1.2b-instruct:free",label:"LFM2.5-1.2B-Instruct (free)",modalities:{input:["text"],output:["text"]},toolCall:!1,reasoningText:!1,attachment:!1,temperature:!0,knowledge:"2025-06",releaseDate:"2026-01-20",lastUpdated:"2026-01-28",openWeights:!0,cost:{input:0,output:0},limit:{context:131072,output:32768}},{id:"liquid/lfm-2.5-1.2b-thinking:free",label:"LFM2.5-1.2B-Thinking (free)",modalities:{input:["text"],output:["text"]},toolCall:!1,reasoningText:!0,attachment:!1,temperature:!0,knowledge:"2025-06",releaseDate:"2026-01-20",lastUpdated:"2026-01-28",openWeights:!0,cost:{input:0,output:0},limit:{context:131072,output:32768}},{id:"meta-llama/llama-3.2-11b-vision-instruct",label:"Llama 3.2 11B Vision Instruct",modalities:{input:["text","image"],output:["text"]},toolCall:!1,reasoningText:!1,attachment:!0,temperature:!0,knowledge:"2023-12",releaseDate:"2024-09-25",lastUpdated:"2024-09-25",openWeights:!0,cost:{input:0,output:0},limit:{context:131072,output:8192}},{id:"meta-llama/llama-3.2-3b-instruct:free",label:"Llama 3.2 3B Instruct (free)",modalities:{input:["text","image"],output:["text"]},toolCall:!1,reasoningText:!1,attachment:!0,temperature:!0,knowledge:"2023-12",releaseDate:"2024-09-25",lastUpdated:"2024-09-25",openWeights:!0,cost:{input:0,output:0},limit:{context:131072,output:131072}},{id:"meta-llama/llama-3.3-70b-instruct:free",label:"Llama 3.3 70B Instruct (free)",modalities:{input:["text"],output:["text"]},toolCall:!0,reasoningText:!1,attachment:!1,temperature:!0,knowledge:"2024-12",releaseDate:"2024-12-06",lastUpdated:"2024-12-06",openWeights:!0,cost:{input:0,output:0},limit:{context:131072,output:131072}},{id:"minimax/minimax-01",ownedBy:"minimax",label:"MiniMax-01",modalities:{input:["text","image"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!0,releaseDate:"2025-01-15",lastUpdated:"2025-01-15",openWeights:!0,cost:{input:.2,output:1.1},limit:{context:1e6,output:1e6}},{id:"minimax/minimax-m1",ownedBy:"minimax",label:"MiniMax M1",modalities:{input:["text"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!1,temperature:!0,releaseDate:"2025-06-17",lastUpdated:"2025-06-17",openWeights:!0,cost:{input:.4,output:2.2},limit:{context:1e6,output:4e4}},{id:"minimax/minimax-m2",ownedBy:"minimax",label:"MiniMax M2",modalities:{input:["text"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!1,temperature:!0,releaseDate:"2025-10-23",lastUpdated:"2025-10-23",openWeights:!0,cost:{input:.28,output:1.15,cacheRead:.28,cacheWrite:1.15},limit:{context:196600,output:118e3}},{id:"minimax/minimax-m2.1",ownedBy:"minimax",label:"MiniMax M2.1",modalities:{input:["text"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!1,temperature:!0,releaseDate:"2025-12-23",lastUpdated:"2025-12-23",openWeights:!0,cost:{input:.3,output:1.2},limit:{context:204800,output:131072}},{id:"minimax/minimax-m2.5",ownedBy:"minimax",label:"MiniMax M2.5",modalities:{input:["text"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!1,temperature:!0,releaseDate:"2026-02-12",lastUpdated:"2026-02-12",openWeights:!0,cost:{input:.3,output:1.2,cacheRead:.03},limit:{context:204800,output:131072}},{id:"minimax/minimax-m2.5:free",ownedBy:"minimax",label:"MiniMax M2.5 (free)",modalities:{input:["text"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!1,temperature:!0,releaseDate:"2026-02-12",lastUpdated:"2026-02-12",openWeights:!0,cost:{input:0,output:0},limit:{context:204800,output:131072}},{id:"minimax/minimax-m2.7",ownedBy:"minimax",label:"MiniMax M2.7",modalities:{input:["text"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!1,temperature:!0,releaseDate:"2026-03-18",lastUpdated:"2026-03-18",openWeights:!0,cost:{input:.3,output:1.2,cacheRead:.06,cacheWrite:.375},limit:{context:204800,output:131072}},{id:"mistralai/codestral-2508",label:"Codestral 2508",modalities:{input:["text"],output:["text"]},toolCall:!0,reasoningText:!1,attachment:!1,temperature:!0,knowledge:"2025-05",releaseDate:"2025-08-01",lastUpdated:"2025-08-01",openWeights:!0,cost:{input:.3,output:.9},limit:{context:256e3,output:256e3}},{id:"mistralai/devstral-2512",label:"Devstral 2 2512",modalities:{input:["text"],output:["text"]},toolCall:!0,reasoningText:!1,attachment:!1,temperature:!0,knowledge:"2025-12",releaseDate:"2025-09-12",lastUpdated:"2025-09-12",openWeights:!0,cost:{input:.15,output:.6},limit:{context:262144,output:262144}},{id:"mistralai/devstral-medium-2507",label:"Devstral Medium",modalities:{input:["text"],output:["text"]},toolCall:!0,reasoningText:!1,attachment:!1,temperature:!0,knowledge:"2025-05",releaseDate:"2025-07-10",lastUpdated:"2025-07-10",openWeights:!0,cost:{input:.4,output:2},limit:{context:131072,output:131072}},{id:"mistralai/devstral-small-2505",label:"Devstral Small",modalities:{input:["text"],output:["text"]},toolCall:!0,reasoningText:!1,attachment:!1,temperature:!0,knowledge:"2025-05",releaseDate:"2025-05-07",lastUpdated:"2025-05-07",openWeights:!0,cost:{input:.06,output:.12},limit:{context:128e3,output:128e3}},{id:"mistralai/devstral-small-2507",label:"Devstral Small 1.1",modalities:{input:["text"],output:["text"]},toolCall:!0,reasoningText:!1,attachment:!1,temperature:!0,knowledge:"2025-05",releaseDate:"2025-07-10",lastUpdated:"2025-07-10",openWeights:!0,cost:{input:.1,output:.3},limit:{context:131072,output:131072}},{id:"mistralai/mistral-medium-3",label:"Mistral Medium 3",modalities:{input:["text","image"],output:["text"]},toolCall:!0,reasoningText:!1,attachment:!0,temperature:!0,knowledge:"2025-05",releaseDate:"2025-05-07",lastUpdated:"2025-05-07",openWeights:!1,cost:{input:.4,output:2},limit:{context:131072,output:131072}},{id:"mistralai/mistral-medium-3.1",label:"Mistral Medium 3.1",modalities:{input:["text","image"],output:["text"]},toolCall:!0,reasoningText:!1,attachment:!0,temperature:!0,knowledge:"2025-05",releaseDate:"2025-08-12",lastUpdated:"2025-08-12",openWeights:!1,cost:{input:.4,output:2},limit:{context:262144,output:262144}},{id:"mistralai/mistral-small-2603",label:"Mistral Small 4",modalities:{input:["text","image"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!0,knowledge:"2025-06",releaseDate:"2026-03-16",lastUpdated:"2026-03-16",openWeights:!0,cost:{input:.15,output:.6},limit:{context:262144,output:262144}},{id:"mistralai/mistral-small-3.1-24b-instruct",label:"Mistral Small 3.1 24B Instruct",modalities:{input:["text","image"],output:["text"]},toolCall:!0,reasoningText:!1,attachment:!0,temperature:!0,knowledge:"2024-10",releaseDate:"2025-03-17",lastUpdated:"2025-03-17",openWeights:!0,cost:{input:0,output:0},limit:{context:128e3,output:8192}},{id:"mistralai/mistral-small-3.2-24b-instruct",label:"Mistral Small 3.2 24B Instruct",modalities:{input:["text","image"],output:["text"]},toolCall:!0,reasoningText:!1,attachment:!0,temperature:!0,knowledge:"2024-10",releaseDate:"2025-06-20",lastUpdated:"2025-06-20",openWeights:!0,cost:{input:0,output:0},limit:{context:96e3,output:8192}},{id:"moonshotai/kimi-k2",ownedBy:"moonshot",label:"Kimi K2",modalities:{input:["text"],output:["text"]},toolCall:!0,reasoningText:!1,attachment:!1,temperature:!0,knowledge:"2024-10",releaseDate:"2025-07-11",lastUpdated:"2025-07-11",openWeights:!0,cost:{input:.55,output:2.2},limit:{context:131072,output:32768}},{id:"moonshotai/kimi-k2-0905",ownedBy:"moonshot",label:"Kimi K2 Instruct 0905",modalities:{input:["text"],output:["text"]},toolCall:!0,reasoningText:!1,attachment:!1,temperature:!0,knowledge:"2024-10",releaseDate:"2025-09-05",lastUpdated:"2025-09-05",openWeights:!0,cost:{input:.6,output:2.5},limit:{context:262144,output:16384}},{id:"moonshotai/kimi-k2-0905:exacto",ownedBy:"moonshot",label:"Kimi K2 Instruct 0905 (exacto)",modalities:{input:["text"],output:["text"]},toolCall:!0,reasoningText:!1,attachment:!1,temperature:!0,knowledge:"2024-10",releaseDate:"2025-09-05",lastUpdated:"2025-09-05",openWeights:!0,cost:{input:.6,output:2.5},limit:{context:262144,output:16384}},{id:"moonshotai/kimi-k2-thinking",ownedBy:"moonshot",label:"Kimi K2 Thinking",modalities:{input:["text"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!1,temperature:!0,knowledge:"2024-08",releaseDate:"2025-11-06",lastUpdated:"2025-11-06",openWeights:!0,cost:{input:.6,output:2.5,cacheRead:.15},limit:{context:262144,output:262144}},{id:"moonshotai/kimi-k2.5",ownedBy:"moonshot",label:"Kimi K2.5",modalities:{input:["text","image","video"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!0,knowledge:"2025-01",releaseDate:"2026-01-27",lastUpdated:"2026-01-27",openWeights:!0,cost:{input:.6,output:3,cacheRead:.1},limit:{context:262144,output:262144}},{id:"moonshotai/kimi-k2.6",ownedBy:"moonshot",label:"Kimi K2.6",modalities:{input:["text","image"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!0,releaseDate:"2026-04-20",lastUpdated:"2026-04-20",openWeights:!0,cost:{input:.95,output:4,cacheRead:.16},limit:{context:262144,output:262144}},{id:"nousresearch/hermes-3-llama-3.1-405b:free",label:"Hermes 3 405B Instruct (free)",modalities:{input:["text"],output:["text"]},toolCall:!1,reasoningText:!0,attachment:!1,temperature:!0,knowledge:"2023-12",releaseDate:"2024-08-16",lastUpdated:"2024-08-16",openWeights:!0,cost:{input:0,output:0},limit:{context:131072,output:131072}},{id:"nousresearch/hermes-4-405b",label:"Hermes 4 405B",modalities:{input:["text"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!1,temperature:!0,knowledge:"2023-12",releaseDate:"2025-08-25",lastUpdated:"2025-08-25",openWeights:!0,cost:{input:1,output:3},limit:{context:131072,output:131072}},{id:"nousresearch/hermes-4-70b",label:"Hermes 4 70B",modalities:{input:["text"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!1,temperature:!0,knowledge:"2023-12",releaseDate:"2025-08-25",lastUpdated:"2025-08-25",openWeights:!0,cost:{input:.13,output:.4},limit:{context:131072,output:131072}},{id:"nvidia/nemotron-3-nano-30b-a3b:free",label:"Nemotron 3 Nano 30B A3B (free)",modalities:{input:["text"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!1,temperature:!0,knowledge:"2025-11",releaseDate:"2025-12-14",lastUpdated:"2026-01-31",openWeights:!0,cost:{input:0,output:0},limit:{context:256e3,output:256e3}},{id:"nvidia/nemotron-3-nano-omni-30b-a3b-reasoning:free",label:"Nemotron 3 Nano Omni (free)",modalities:{input:["text","image","video","audio"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!0,releaseDate:"2026-04-28",lastUpdated:"2026-04-28",openWeights:!0,cost:{input:0,output:0},limit:{context:256e3,output:65536}},{id:"nvidia/nemotron-3-super-120b-a12b",label:"Nemotron 3 Super",modalities:{input:["text"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!1,temperature:!0,knowledge:"2024-04",releaseDate:"2026-03-11",lastUpdated:"2026-03-11",openWeights:!0,cost:{input:.1,output:.5},limit:{context:262144,output:262144}},{id:"nvidia/nemotron-3-super-120b-a12b:free",label:"Nemotron 3 Super (free)",modalities:{input:["text"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!1,temperature:!0,knowledge:"2024-04",releaseDate:"2026-03-11",lastUpdated:"2026-03-11",openWeights:!0,cost:{input:0,output:0},limit:{context:262144,output:262144}},{id:"nvidia/nemotron-nano-12b-v2-vl:free",label:"Nemotron Nano 12B 2 VL (free)",modalities:{input:["text","image"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!1,temperature:!0,knowledge:"2025-11",releaseDate:"2025-10-28",lastUpdated:"2026-01-31",openWeights:!0,cost:{input:0,output:0},limit:{context:128e3,output:128e3}},{id:"nvidia/nemotron-nano-9b-v2",label:"nvidia-nemotron-nano-9b-v2",modalities:{input:["text"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!1,temperature:!0,knowledge:"2024-09",releaseDate:"2025-08-18",lastUpdated:"2025-08-18",openWeights:!0,cost:{input:.04,output:.16},limit:{context:131072,output:131072}},{id:"nvidia/nemotron-nano-9b-v2:free",label:"Nemotron Nano 9B V2 (free)",modalities:{input:["text"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!1,temperature:!0,knowledge:"2024-09",releaseDate:"2025-09-05",lastUpdated:"2025-08-18",openWeights:!0,cost:{input:0,output:0},limit:{context:128e3,output:128e3}},{id:"openai/gpt-4.1",ownedBy:"openai",label:"GPT-4.1",modalities:{input:["text","image"],output:["text"]},toolCall:!0,reasoningText:!1,attachment:!0,temperature:!0,knowledge:"2024-04",releaseDate:"2025-04-14",lastUpdated:"2025-04-14",openWeights:!1,cost:{input:2,output:8,cacheRead:.5},limit:{context:1047576,output:32768}},{id:"openai/gpt-4.1-mini",ownedBy:"openai",label:"GPT-4.1 Mini",modalities:{input:["text","image"],output:["text"]},toolCall:!0,reasoningText:!1,attachment:!0,temperature:!0,knowledge:"2024-04",releaseDate:"2025-04-14",lastUpdated:"2025-04-14",openWeights:!1,cost:{input:.4,output:1.6,cacheRead:.1},limit:{context:1047576,output:32768}},{id:"openai/gpt-4o-mini",ownedBy:"openai",label:"GPT-4o-mini",modalities:{input:["text","image"],output:["text"]},toolCall:!0,reasoningText:!1,attachment:!0,temperature:!0,knowledge:"2024-10",releaseDate:"2024-07-18",lastUpdated:"2024-07-18",openWeights:!1,cost:{input:.15,output:.6,cacheRead:.08},limit:{context:128e3,output:16384}},{id:"openai/gpt-5",ownedBy:"openai",label:"GPT-5",modalities:{input:["text","image"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!0,knowledge:"2024-10-01",releaseDate:"2025-08-07",lastUpdated:"2025-08-07",openWeights:!1,cost:{input:1.25,output:10},limit:{context:4e5,output:128e3}},{id:"openai/gpt-5-chat",ownedBy:"openai",label:"GPT-5 Chat (latest)",modalities:{input:["text","image"],output:["text"]},toolCall:!1,reasoningText:!0,attachment:!0,temperature:!0,knowledge:"2024-09-30",releaseDate:"2025-08-07",lastUpdated:"2025-08-07",openWeights:!1,cost:{input:1.25,output:10},limit:{context:4e5,output:128e3}},{id:"openai/gpt-5-codex",ownedBy:"openai",label:"GPT-5 Codex",modalities:{input:["text","image"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!0,knowledge:"2024-10-01",releaseDate:"2025-09-15",lastUpdated:"2025-09-15",openWeights:!1,cost:{input:1.25,output:10,cacheRead:.125},limit:{context:4e5,output:128e3}},{id:"openai/gpt-5-image",ownedBy:"openai",label:"GPT-5 Image",modalities:{input:["text","image","pdf"],output:["text","image"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!0,knowledge:"2024-10-01",releaseDate:"2025-10-14",lastUpdated:"2025-10-14",openWeights:!1,cost:{input:5,output:10,cacheRead:1.25},limit:{context:4e5,output:128e3}},{id:"openai/gpt-5-mini",ownedBy:"openai",label:"GPT-5 Mini",modalities:{input:["text","image"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!0,knowledge:"2024-10-01",releaseDate:"2025-08-07",lastUpdated:"2025-08-07",openWeights:!1,cost:{input:.25,output:2},limit:{context:4e5,output:128e3}},{id:"openai/gpt-5-nano",ownedBy:"openai",label:"GPT-5 Nano",modalities:{input:["text","image"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!0,knowledge:"2024-10-01",releaseDate:"2025-08-07",lastUpdated:"2025-08-07",openWeights:!1,cost:{input:.05,output:.4},limit:{context:4e5,output:128e3}},{id:"openai/gpt-5-pro",ownedBy:"openai",label:"GPT-5 Pro",modalities:{input:["text","image"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!1,knowledge:"2024-09-30",releaseDate:"2025-10-06",lastUpdated:"2025-10-06",openWeights:!1,cost:{input:15,output:120},limit:{context:4e5,output:272e3}},{id:"openai/gpt-5.1",ownedBy:"openai",label:"GPT-5.1",modalities:{input:["text","image"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!0,knowledge:"2024-09-30",releaseDate:"2025-11-13",lastUpdated:"2025-11-13",openWeights:!1,cost:{input:1.25,output:10,cacheRead:.125},limit:{context:4e5,output:128e3}},{id:"openai/gpt-5.1-chat",ownedBy:"openai",label:"GPT-5.1 Chat",modalities:{input:["text","image"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!0,knowledge:"2024-09-30",releaseDate:"2025-11-13",lastUpdated:"2025-11-13",openWeights:!1,cost:{input:1.25,output:10,cacheRead:.125},limit:{context:128e3,output:16384}},{id:"openai/gpt-5.1-codex",ownedBy:"openai",label:"GPT-5.1-Codex",modalities:{input:["text","image"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!0,knowledge:"2024-09-30",releaseDate:"2025-11-13",lastUpdated:"2025-11-13",openWeights:!1,cost:{input:1.25,output:10,cacheRead:.125},limit:{context:4e5,output:128e3}},{id:"openai/gpt-5.1-codex-max",ownedBy:"openai",label:"GPT-5.1-Codex-Max",modalities:{input:["text","image"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!0,knowledge:"2024-09-30",releaseDate:"2025-11-13",lastUpdated:"2025-11-13",openWeights:!1,cost:{input:1.1,output:9,cacheRead:.11},limit:{context:4e5,output:128e3}},{id:"openai/gpt-5.1-codex-mini",ownedBy:"openai",label:"GPT-5.1-Codex-Mini",modalities:{input:["text","image"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!0,knowledge:"2024-09-30",releaseDate:"2025-11-13",lastUpdated:"2025-11-13",openWeights:!1,cost:{input:.25,output:2,cacheRead:.025},limit:{context:4e5,output:1e5}},{id:"openai/gpt-5.2",ownedBy:"openai",label:"GPT-5.2",modalities:{input:["text","image"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!1,knowledge:"2025-08-31",releaseDate:"2025-12-11",lastUpdated:"2025-12-11",openWeights:!1,cost:{input:1.75,output:14,cacheRead:.175},limit:{context:4e5,output:128e3}},{id:"openai/gpt-5.2-chat",ownedBy:"openai",label:"GPT-5.2 Chat",modalities:{input:["text","image"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!1,knowledge:"2025-08-31",releaseDate:"2025-12-11",lastUpdated:"2025-12-11",openWeights:!1,cost:{input:1.75,output:14,cacheRead:.175},limit:{context:128e3,output:16384}},{id:"openai/gpt-5.2-codex",ownedBy:"openai",label:"GPT-5.2-Codex",modalities:{input:["text","image"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!0,knowledge:"2025-08-31",releaseDate:"2026-01-14",lastUpdated:"2026-01-14",openWeights:!1,cost:{input:1.75,output:14,cacheRead:.175},limit:{context:4e5,output:128e3}},{id:"openai/gpt-5.2-pro",ownedBy:"openai",label:"GPT-5.2 Pro",modalities:{input:["text","image"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!1,knowledge:"2025-08-31",releaseDate:"2025-12-11",lastUpdated:"2025-12-11",openWeights:!1,cost:{input:21,output:168},limit:{context:4e5,output:128e3}},{id:"openai/gpt-5.3-codex",ownedBy:"openai",label:"GPT-5.3-Codex",modalities:{input:["text","image","pdf"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!1,knowledge:"2025-08-31",releaseDate:"2026-02-24",lastUpdated:"2026-02-24",openWeights:!1,cost:{input:1.75,output:14,cacheRead:.175},limit:{context:4e5,output:128e3}},{id:"openai/gpt-5.4",ownedBy:"openai",label:"GPT-5.4",modalities:{input:["text","image","pdf"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!1,knowledge:"2025-08-31",releaseDate:"2026-03-05",lastUpdated:"2026-03-05",openWeights:!1,cost:{input:2.5,output:15,cacheRead:.25},limit:{context:105e4,output:128e3}},{id:"openai/gpt-5.4-mini",ownedBy:"openai",label:"GPT-5.4 Mini",modalities:{input:["text","image","pdf"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!0,knowledge:"2025-08-31",releaseDate:"2026-03-17",lastUpdated:"2026-03-17",openWeights:!1,cost:{input:.75,output:4.5,cacheRead:.075},limit:{context:4e5,output:128e3}},{id:"openai/gpt-5.4-nano",ownedBy:"openai",label:"GPT-5.4 Nano",modalities:{input:["text","image","pdf"],output:["text"]},toolCall:!0,reasoningText:!1,attachment:!0,temperature:!0,knowledge:"2025-08-31",releaseDate:"2026-03-17",lastUpdated:"2026-03-17",openWeights:!1,cost:{input:.2,output:1.25,cacheRead:.02},limit:{context:4e5,output:128e3}},{id:"openai/gpt-5.4-pro",ownedBy:"openai",label:"GPT-5.4 Pro",modalities:{input:["text","image","pdf"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!1,knowledge:"2025-08-31",releaseDate:"2026-03-05",lastUpdated:"2026-03-05",openWeights:!1,cost:{input:30,output:180,cacheRead:30},limit:{context:105e4,output:128e3}},{id:"openai/gpt-5.5",ownedBy:"openai",label:"GPT-5.5",modalities:{input:["text","image","pdf"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!1,knowledge:"2025-12-01",releaseDate:"2026-04-23",lastUpdated:"2026-04-23",openWeights:!1,cost:{input:5,output:30,cacheRead:.5},limit:{context:105e4,output:128e3}},{id:"openai/gpt-5.5-pro",ownedBy:"openai",label:"GPT-5.5 Pro",modalities:{input:["text","image","pdf"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!1,knowledge:"2025-12-01",releaseDate:"2026-04-23",lastUpdated:"2026-04-23",openWeights:!1,cost:{input:30,output:180},limit:{context:105e4,output:128e3}},{id:"openai/gpt-oss-120b",ownedBy:"openai",label:"GPT OSS 120B",modalities:{input:["text"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!1,temperature:!0,releaseDate:"2025-08-05",lastUpdated:"2025-08-05",openWeights:!0,cost:{input:.072,output:.28},limit:{context:131072,output:32768}},{id:"openai/gpt-oss-120b:exacto",ownedBy:"openai",label:"GPT OSS 120B (exacto)",modalities:{input:["text"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!1,temperature:!0,releaseDate:"2025-08-05",lastUpdated:"2025-08-05",openWeights:!0,cost:{input:.05,output:.24},limit:{context:131072,output:32768}},{id:"openai/gpt-oss-120b:free",ownedBy:"openai",label:"gpt-oss-120b (free)",modalities:{input:["text"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!1,temperature:!0,releaseDate:"2025-08-05",lastUpdated:"2025-08-05",openWeights:!0,cost:{input:0,output:0},limit:{context:131072,output:32768}},{id:"openai/gpt-oss-20b",ownedBy:"openai",label:"GPT OSS 20B",modalities:{input:["text"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!1,temperature:!0,releaseDate:"2025-08-05",lastUpdated:"2025-08-05",openWeights:!0,cost:{input:.05,output:.2},limit:{context:131072,output:32768}},{id:"openai/gpt-oss-20b:free",ownedBy:"openai",label:"gpt-oss-20b (free)",modalities:{input:["text"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!1,temperature:!0,releaseDate:"2025-08-05",lastUpdated:"2026-01-31",openWeights:!0,cost:{input:0,output:0},limit:{context:131072,output:32768}},{id:"openai/gpt-oss-safeguard-20b",ownedBy:"openai",label:"GPT OSS Safeguard 20B",modalities:{input:["text"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!1,temperature:!0,releaseDate:"2025-10-29",lastUpdated:"2025-10-29",openWeights:!1,cost:{input:.075,output:.3},limit:{context:131072,output:65536}},{id:"openai/o4-mini",ownedBy:"openai",label:"o4 Mini",modalities:{input:["text","image"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!0,knowledge:"2024-06",releaseDate:"2025-04-16",lastUpdated:"2025-04-16",openWeights:!1,cost:{input:1.1,output:4.4,cacheRead:.28},limit:{context:2e5,output:1e5}},{id:"openrouter/elephant-alpha",label:"Elephant (free)",modalities:{input:["text"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!1,temperature:!0,releaseDate:"2026-04-13",lastUpdated:"2026-04-13",openWeights:!1,cost:{input:0,output:0},limit:{context:262144,output:32768}},{id:"openrouter/free",label:"Free Models Router",modalities:{input:["text","image"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!0,releaseDate:"2026-02-01",lastUpdated:"2026-02-01",openWeights:!1,cost:{input:0,output:0},limit:{context:2e5,output:8e3}},{id:"openrouter/owl-alpha",label:"Owl Alpha",modalities:{input:["text"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!1,temperature:!0,releaseDate:"2026-04-28",lastUpdated:"2026-04-30",openWeights:!1,cost:{input:0,output:0},limit:{context:1048756,output:262144}},{id:"openrouter/pareto-code",label:"Pareto Code Router",modalities:{input:["text"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!0,releaseDate:"2026-04-21",lastUpdated:"2026-04-21",openWeights:!1,limit:{context:2e5,output:2e5}},{id:"poolside/laguna-m.1:free",label:"Laguna M.1",modalities:{input:["text"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!1,temperature:!0,releaseDate:"2026-04-28",lastUpdated:"2026-04-28",openWeights:!1,cost:{input:0,output:0,cacheRead:0,cacheWrite:0},limit:{context:131072,output:8192}},{id:"poolside/laguna-xs.2:free",label:"Laguna XS.2",modalities:{input:["text"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!1,temperature:!0,releaseDate:"2026-04-28",lastUpdated:"2026-04-28",openWeights:!0,cost:{input:0,output:0,cacheRead:0,cacheWrite:0},limit:{context:131072,output:8192}},{id:"prime-intellect/intellect-3",ownedBy:"zai",label:"Intellect 3",modalities:{input:["text"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!1,temperature:!0,knowledge:"2024-10",releaseDate:"2025-01-15",lastUpdated:"2025-01-15",openWeights:!0,cost:{input:.2,output:1.1},limit:{context:131072,output:8192}},{id:"qwen/qwen-2.5-coder-32b-instruct",label:"Qwen2.5 Coder 32B Instruct",modalities:{input:["text"],output:["text"]},toolCall:!1,reasoningText:!1,attachment:!1,temperature:!0,knowledge:"2024-10",releaseDate:"2024-11-11",lastUpdated:"2024-11-11",openWeights:!0,cost:{input:0,output:0},limit:{context:32768,output:8192}},{id:"qwen/qwen-3.6-27b",label:"Qwen3.6 27B",modalities:{input:["text","image","video"],output:["text"]},toolCall:!0,reasoningText:!1,attachment:!0,temperature:!0,knowledge:"2025-04",releaseDate:"2026-04-22",lastUpdated:"2026-04-22",openWeights:!0,cost:{input:.195,output:1.56},limit:{context:262144,output:81920}},{id:"qwen/qwen2.5-vl-72b-instruct",label:"Qwen2.5 VL 72B Instruct",modalities:{input:["text","image"],output:["text"]},toolCall:!1,reasoningText:!1,attachment:!0,temperature:!0,knowledge:"2024-10",releaseDate:"2025-02-01",lastUpdated:"2025-02-01",openWeights:!0,cost:{input:0,output:0},limit:{context:32768,output:8192}},{id:"qwen/qwen3-235b-a22b-07-25",label:"Qwen3 235B A22B Instruct 2507",modalities:{input:["text"],output:["text"]},toolCall:!0,reasoningText:!1,attachment:!1,temperature:!0,knowledge:"2025-04",releaseDate:"2025-04-28",lastUpdated:"2025-07-21",openWeights:!0,cost:{input:.15,output:.85},limit:{context:262144,output:131072}},{id:"qwen/qwen3-235b-a22b-thinking-2507",label:"Qwen3 235B A22B Thinking 2507",modalities:{input:["text"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!1,temperature:!0,knowledge:"2025-04",releaseDate:"2025-07-25",lastUpdated:"2025-07-25",openWeights:!0,cost:{input:.078,output:.312},limit:{context:262144,output:81920}},{id:"qwen/qwen3-30b-a3b-instruct-2507",label:"Qwen3 30B A3B Instruct 2507",modalities:{input:["text"],output:["text"]},toolCall:!0,reasoningText:!1,attachment:!1,temperature:!0,knowledge:"2025-04",releaseDate:"2025-07-29",lastUpdated:"2025-07-29",openWeights:!0,cost:{input:.2,output:.8},limit:{context:262e3,output:262e3}},{id:"qwen/qwen3-30b-a3b-thinking-2507",label:"Qwen3 30B A3B Thinking 2507",modalities:{input:["text"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!1,temperature:!0,knowledge:"2025-04",releaseDate:"2025-07-29",lastUpdated:"2025-07-29",openWeights:!0,cost:{input:.2,output:.8},limit:{context:262e3,output:262e3}},{id:"qwen/qwen3-coder",label:"Qwen3 Coder",modalities:{input:["text"],output:["text"]},toolCall:!0,reasoningText:!1,attachment:!1,temperature:!0,knowledge:"2025-04",releaseDate:"2025-07-23",lastUpdated:"2025-07-23",openWeights:!0,cost:{input:.3,output:1.2},limit:{context:262144,output:66536}},{id:"qwen/qwen3-coder-30b-a3b-instruct",label:"Qwen3 Coder 30B A3B Instruct",modalities:{input:["text"],output:["text"]},toolCall:!0,reasoningText:!1,attachment:!1,temperature:!0,knowledge:"2025-04",releaseDate:"2025-07-31",lastUpdated:"2025-07-31",openWeights:!0,cost:{input:.07,output:.27},limit:{context:16e4,output:65536}},{id:"qwen/qwen3-coder-flash",label:"Qwen3 Coder Flash",modalities:{input:["text"],output:["text"]},toolCall:!0,reasoningText:!1,attachment:!1,temperature:!0,knowledge:"2025-04",releaseDate:"2025-07-23",lastUpdated:"2025-07-23",openWeights:!1,cost:{input:.3,output:1.5},limit:{context:128e3,output:66536}},{id:"qwen/qwen3-coder:exacto",label:"Qwen3 Coder (exacto)",modalities:{input:["text"],output:["text"]},toolCall:!0,reasoningText:!1,attachment:!1,temperature:!0,knowledge:"2025-04",releaseDate:"2025-07-23",lastUpdated:"2025-07-23",openWeights:!0,cost:{input:.38,output:1.53},limit:{context:131072,output:32768}},{id:"qwen/qwen3-max",label:"Qwen3 Max",modalities:{input:["text"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!1,temperature:!0,releaseDate:"2025-09-05",lastUpdated:"2025-09-05",openWeights:!1,cost:{input:1.2,output:6},limit:{context:262144,output:32768}},{id:"qwen/qwen3-next-80b-a3b-instruct",label:"Qwen3 Next 80B A3B Instruct",modalities:{input:["text"],output:["text"]},toolCall:!0,reasoningText:!1,attachment:!1,temperature:!0,knowledge:"2025-04",releaseDate:"2025-09-11",lastUpdated:"2025-09-11",openWeights:!0,cost:{input:.14,output:1.4},limit:{context:262144,output:262144}},{id:"qwen/qwen3-next-80b-a3b-thinking",label:"Qwen3 Next 80B A3B Thinking",modalities:{input:["text"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!1,temperature:!0,knowledge:"2025-04",releaseDate:"2025-09-11",lastUpdated:"2025-09-11",openWeights:!0,cost:{input:.14,output:1.4},limit:{context:262144,output:262144}},{id:"qwen/qwen3.5-397b-a17b",label:"Qwen3.5 397B A17B",modalities:{input:["text","image","video"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!0,knowledge:"2025-04",releaseDate:"2026-02-16",lastUpdated:"2026-02-16",openWeights:!0,cost:{input:.6,output:3.6},limit:{context:262144,output:65536}},{id:"qwen/qwen3.5-flash-02-23",label:"Qwen: Qwen3.5-Flash",modalities:{input:["text","image","video"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!0,releaseDate:"2026-02-25",lastUpdated:"2026-02-25",openWeights:!1,cost:{input:.065,output:.26},limit:{context:1e6,output:65536}},{id:"qwen/qwen3.5-plus-02-15",label:"Qwen3.5 Plus 2026-02-15",modalities:{input:["text","image","video"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!0,knowledge:"2025-04",releaseDate:"2026-02-16",lastUpdated:"2026-02-16",openWeights:!1,cost:{input:.4,output:2.4},limit:{context:1e6,output:65536}},{id:"qwen/qwen3.6-plus",label:"Qwen3.6 Plus",modalities:{input:["text","image","video"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!0,knowledge:"2025-04",releaseDate:"2026-04-02",lastUpdated:"2026-04-02",openWeights:!1,cost:{input:.325,output:1.95},limit:{context:1e6,output:65536}},{id:"sourceful/riverflow-v2-fast-preview",label:"Riverflow V2 Fast Preview",modalities:{input:["text","image"],output:["image"]},toolCall:!1,reasoningText:!1,attachment:!1,temperature:!0,knowledge:"2025-06",releaseDate:"2025-12-08",lastUpdated:"2026-01-28",openWeights:!0,cost:{input:0,output:0},limit:{context:8192,output:8192}},{id:"sourceful/riverflow-v2-max-preview",label:"Riverflow V2 Max Preview",modalities:{input:["text","image"],output:["image"]},toolCall:!1,reasoningText:!1,attachment:!1,temperature:!0,knowledge:"2025-06",releaseDate:"2025-12-08",lastUpdated:"2026-01-28",openWeights:!0,cost:{input:0,output:0},limit:{context:8192,output:8192}},{id:"sourceful/riverflow-v2-standard-preview",label:"Riverflow V2 Standard Preview",modalities:{input:["text","image"],output:["image"]},toolCall:!1,reasoningText:!1,attachment:!1,temperature:!0,knowledge:"2025-06",releaseDate:"2025-12-08",lastUpdated:"2026-01-28",openWeights:!0,cost:{input:0,output:0},limit:{context:8192,output:8192}},{id:"stepfun/step-3.5-flash",label:"Step 3.5 Flash",modalities:{input:["text"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!1,temperature:!0,knowledge:"2025-01",releaseDate:"2026-01-29",lastUpdated:"2026-01-29",openWeights:!0,cost:{input:.1,output:.3,cacheRead:.02},limit:{context:256e3,output:256e3}},{id:"x-ai/grok-3",ownedBy:"xai",label:"Grok 3",modalities:{input:["text"],output:["text"]},toolCall:!0,reasoningText:!1,attachment:!1,temperature:!0,knowledge:"2024-11",releaseDate:"2025-02-17",lastUpdated:"2025-02-17",openWeights:!1,cost:{input:3,output:15,cacheRead:.75,cacheWrite:15},limit:{context:131072,output:8192}},{id:"x-ai/grok-3-beta",ownedBy:"xai",label:"Grok 3 Beta",modalities:{input:["text"],output:["text"]},toolCall:!0,reasoningText:!1,attachment:!1,temperature:!0,knowledge:"2024-11",releaseDate:"2025-02-17",lastUpdated:"2025-02-17",openWeights:!1,cost:{input:3,output:15,cacheRead:.75,cacheWrite:15},limit:{context:131072,output:8192}},{id:"x-ai/grok-3-mini",ownedBy:"xai",label:"Grok 3 Mini",modalities:{input:["text"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!1,temperature:!0,knowledge:"2024-11",releaseDate:"2025-02-17",lastUpdated:"2025-02-17",openWeights:!1,cost:{input:.3,output:.5,cacheRead:.075,cacheWrite:.5},limit:{context:131072,output:8192}},{id:"x-ai/grok-3-mini-beta",ownedBy:"xai",label:"Grok 3 Mini Beta",modalities:{input:["text"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!1,temperature:!0,knowledge:"2024-11",releaseDate:"2025-02-17",lastUpdated:"2025-02-17",openWeights:!1,cost:{input:.3,output:.5,cacheRead:.075,cacheWrite:.5},limit:{context:131072,output:8192}},{id:"x-ai/grok-4",ownedBy:"xai",label:"Grok 4",modalities:{input:["text"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!1,temperature:!0,knowledge:"2025-07",releaseDate:"2025-07-09",lastUpdated:"2025-07-09",openWeights:!1,cost:{input:3,output:15,cacheRead:.75,cacheWrite:15},limit:{context:256e3,output:64e3}},{id:"x-ai/grok-4-fast",ownedBy:"xai",label:"Grok 4 Fast",modalities:{input:["text","image"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!1,temperature:!0,knowledge:"2024-11",releaseDate:"2025-08-19",lastUpdated:"2025-08-19",openWeights:!1,cost:{input:.2,output:.5,cacheRead:.05,cacheWrite:.05},limit:{context:2e6,output:3e4}},{id:"x-ai/grok-4.1-fast",ownedBy:"xai",label:"Grok 4.1 Fast",modalities:{input:["text","image"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!1,temperature:!0,knowledge:"2024-11",releaseDate:"2025-11-19",lastUpdated:"2025-11-19",openWeights:!1,cost:{input:.2,output:.5,cacheRead:.05,cacheWrite:.05},limit:{context:2e6,output:3e4}},{id:"x-ai/grok-4.20-beta",ownedBy:"xai",label:"Grok 4.20 Beta",modalities:{input:["text","image"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!0,releaseDate:"2026-03-12",lastUpdated:"2026-03-12",openWeights:!1,cost:{input:2,output:6,cacheRead:.2},limit:{context:2e6,output:3e4}},{id:"x-ai/grok-4.20-multi-agent-beta",ownedBy:"xai",label:"Grok 4.20 Multi - Agent Beta",modalities:{input:["text","image"],output:["text"]},toolCall:!1,reasoningText:!0,attachment:!0,temperature:!0,releaseDate:"2026-03-12",lastUpdated:"2026-03-12",openWeights:!1,cost:{input:2,output:6,cacheRead:.2},limit:{context:2e6,output:3e4}},{id:"x-ai/grok-4.3",ownedBy:"xai",label:"Grok 4.3",modalities:{input:["text","image"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!0,releaseDate:"2026-05-01",lastUpdated:"2026-05-01",openWeights:!1,cost:{input:1.25,output:2.5,cacheRead:.2},limit:{context:1e6,output:1e6}},{id:"x-ai/grok-code-fast-1",ownedBy:"xai",label:"Grok Code Fast 1",modalities:{input:["text"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!1,temperature:!0,knowledge:"2025-08",releaseDate:"2025-08-26",lastUpdated:"2025-08-26",openWeights:!1,cost:{input:.2,output:1.5,cacheRead:.02},limit:{context:256e3,output:1e4}},{id:"xiaomi/mimo-v2-flash",label:"Xiaomi: MiMo-V2-Flash",modalities:{input:["text"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!1,temperature:!0,knowledge:"2024-12-01",releaseDate:"2025-12-16",lastUpdated:"2026-02-04",openWeights:!0,cost:{input:.1,output:.3,cacheRead:.01},limit:{context:262144,output:65536}},{id:"xiaomi/mimo-v2-omni",label:"Xiaomi: MiMo-V2-Omni",modalities:{input:["text","image","audio","video","pdf"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!0,knowledge:"2024-12",releaseDate:"2026-03-18",lastUpdated:"2026-03-18",openWeights:!1,cost:{input:.4,output:2,cacheRead:.08},limit:{context:262144,output:131072}},{id:"xiaomi/mimo-v2-pro",label:"Xiaomi: MiMo-V2-Pro",modalities:{input:["text"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!0,knowledge:"2024-12",releaseDate:"2026-03-18",lastUpdated:"2026-03-18",openWeights:!1,cost:{input:1,output:3,cacheRead:.2},limit:{context:1048576,output:131072}},{id:"xiaomi/mimo-v2.5",label:"Xiaomi: MiMo-V2.5",modalities:{input:["text","image","audio","video"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!0,knowledge:"2024-12",releaseDate:"2026-04-22",lastUpdated:"2026-04-22",openWeights:!0,cost:{input:.4,output:2,cacheRead:.08},limit:{context:1048576,output:131072}},{id:"xiaomi/mimo-v2.5-pro",label:"Xiaomi: MiMo-V2.5-Pro",modalities:{input:["text"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!0,knowledge:"2024-12",releaseDate:"2026-04-22",lastUpdated:"2026-04-22",openWeights:!0,cost:{input:1,output:3,cacheRead:.2},limit:{context:1048576,output:131072}},{id:"z-ai/glm-4.5",ownedBy:"zai",label:"GLM 4.5",modalities:{input:["text"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!1,temperature:!0,knowledge:"2025-04",releaseDate:"2025-07-28",lastUpdated:"2025-07-28",openWeights:!0,cost:{input:.6,output:2.2},limit:{context:128e3,output:96e3}},{id:"z-ai/glm-4.5-air",ownedBy:"zai",label:"GLM 4.5 Air",modalities:{input:["text"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!1,temperature:!0,knowledge:"2025-04",releaseDate:"2025-07-28",lastUpdated:"2025-07-28",openWeights:!0,cost:{input:.2,output:1.1},limit:{context:128e3,output:96e3}},{id:"z-ai/glm-4.5-air:free",ownedBy:"zai",label:"GLM 4.5 Air (free)",modalities:{input:["text"],output:["text"]},toolCall:!1,reasoningText:!0,attachment:!1,temperature:!0,knowledge:"2025-04",releaseDate:"2025-07-28",lastUpdated:"2025-07-28",openWeights:!0,cost:{input:0,output:0},limit:{context:128e3,output:96e3}},{id:"z-ai/glm-4.5v",ownedBy:"zai",label:"GLM 4.5V",modalities:{input:["text","image","video"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!0,knowledge:"2025-04",releaseDate:"2025-08-11",lastUpdated:"2025-08-11",openWeights:!0,cost:{input:.6,output:1.8},limit:{context:64e3,output:16384}},{id:"z-ai/glm-4.6",ownedBy:"zai",label:"GLM 4.6",modalities:{input:["text"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!1,temperature:!0,knowledge:"2025-09",releaseDate:"2025-09-30",lastUpdated:"2025-09-30",openWeights:!0,cost:{input:.6,output:2.2,cacheRead:.11},limit:{context:2e5,output:128e3}},{id:"z-ai/glm-4.6:exacto",ownedBy:"zai",label:"GLM 4.6 (exacto)",modalities:{input:["text"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!1,temperature:!0,knowledge:"2025-09",releaseDate:"2025-09-30",lastUpdated:"2025-09-30",openWeights:!0,cost:{input:.6,output:1.9,cacheRead:.11},limit:{context:2e5,output:128e3}},{id:"z-ai/glm-4.7",ownedBy:"zai",label:"GLM-4.7",modalities:{input:["text"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!1,temperature:!0,knowledge:"2025-04",releaseDate:"2025-12-22",lastUpdated:"2025-12-22",openWeights:!0,cost:{input:.6,output:2.2,cacheRead:.11},limit:{context:204800,output:131072}},{id:"z-ai/glm-4.7-flash",ownedBy:"zai",label:"GLM-4.7-Flash",modalities:{input:["text"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!1,temperature:!0,releaseDate:"2026-01-19",lastUpdated:"2026-01-19",openWeights:!0,cost:{input:.07,output:.4},limit:{context:2e5,output:65535}},{id:"z-ai/glm-5",ownedBy:"zai",label:"GLM-5",modalities:{input:["text"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!1,temperature:!0,releaseDate:"2026-02-12",lastUpdated:"2026-02-12",openWeights:!0,cost:{input:1,output:3.2,cacheRead:.2},limit:{context:202752,output:131e3}},{id:"z-ai/glm-5-turbo",ownedBy:"zai",label:"GLM-5-Turbo",modalities:{input:["text"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!1,temperature:!0,releaseDate:"2026-03-16",lastUpdated:"2026-03-16",openWeights:!1,cost:{input:.96,output:3.2,cacheRead:.192,cacheWrite:0},limit:{context:202752,output:131072}},{id:"z-ai/glm-5.1",ownedBy:"zai",label:"GLM-5.1",modalities:{input:["text"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!1,temperature:!0,releaseDate:"2026-04-07",lastUpdated:"2026-04-07",openWeights:!0,cost:{input:1.4,output:4.4,cacheRead:.26},limit:{context:202752,output:131072}}],label:"OpenRouter",env:["OPENROUTER_API_KEY"],npm:"@openrouter/ai-sdk-provider",api:"https://openrouter.ai/api/v1",doc:"https://openrouter.ai/models"},opencode:{id:"opencode",models:[{id:"big-pickle",label:"Big Pickle",modalities:{input:["text"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!1,temperature:!0,knowledge:"2025-01",releaseDate:"2025-10-17",lastUpdated:"2025-10-17",openWeights:!1,cost:{input:0,output:0,cacheRead:0,cacheWrite:0},limit:{context:2e5,output:128e3},provider:{npm:"@ai-sdk/anthropic"}},{id:"claude-3-5-haiku",ownedBy:"anthropic",label:"Claude Haiku 3.5",modalities:{input:["text","image","pdf"],output:["text"]},toolCall:!0,reasoningText:!1,attachment:!0,temperature:!0,knowledge:"2024-07-31",releaseDate:"2024-10-22",lastUpdated:"2024-10-22",openWeights:!1,cost:{input:.8,output:4,cacheRead:.08,cacheWrite:1},limit:{context:2e5,output:8192},provider:{npm:"@ai-sdk/anthropic"}},{id:"claude-haiku-4-5",ownedBy:"anthropic",label:"Claude Haiku 4.5",modalities:{input:["text","image","pdf"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!0,knowledge:"2025-02-28",releaseDate:"2025-10-15",lastUpdated:"2025-10-15",openWeights:!1,cost:{input:1,output:5,cacheRead:.1,cacheWrite:1.25},limit:{context:2e5,output:64e3},provider:{npm:"@ai-sdk/anthropic"}},{id:"claude-opus-4-1",ownedBy:"anthropic",label:"Claude Opus 4.1",modalities:{input:["text","image","pdf"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!0,knowledge:"2025-03-31",releaseDate:"2025-08-05",lastUpdated:"2025-08-05",openWeights:!1,cost:{input:15,output:75,cacheRead:1.5,cacheWrite:18.75},limit:{context:2e5,output:32e3},provider:{npm:"@ai-sdk/anthropic"}},{id:"claude-opus-4-5",ownedBy:"anthropic",label:"Claude Opus 4.5",modalities:{input:["text","image","pdf"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!0,knowledge:"2025-03-31",releaseDate:"2025-11-24",lastUpdated:"2025-11-24",openWeights:!1,cost:{input:5,output:25,cacheRead:.5,cacheWrite:6.25},limit:{context:2e5,output:64e3},provider:{npm:"@ai-sdk/anthropic"}},{id:"claude-opus-4-6",ownedBy:"anthropic",label:"Claude Opus 4.6",modalities:{input:["text","image","pdf"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!0,knowledge:"2025-05-31",releaseDate:"2026-02-05",lastUpdated:"2026-03-13",openWeights:!1,cost:{input:5,output:25,cacheRead:.5,cacheWrite:6.25},limit:{context:1e6,output:128e3},provider:{npm:"@ai-sdk/anthropic"}},{id:"claude-opus-4-7",ownedBy:"anthropic",label:"Claude Opus 4.7",modalities:{input:["text","image","pdf"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!1,knowledge:"2026-01-31",releaseDate:"2026-04-16",lastUpdated:"2026-04-16",openWeights:!1,cost:{input:5,output:25,cacheRead:.5,cacheWrite:6.25},limit:{context:1e6,output:128e3},provider:{npm:"@ai-sdk/anthropic"}},{id:"claude-sonnet-4",ownedBy:"anthropic",label:"Claude Sonnet 4",modalities:{input:["text","image","pdf"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!0,knowledge:"2025-03-31",releaseDate:"2025-05-22",lastUpdated:"2025-05-22",openWeights:!1,cost:{input:3,output:15,cacheRead:.3,cacheWrite:3.75},limit:{context:1e6,output:64e3},provider:{npm:"@ai-sdk/anthropic"}},{id:"claude-sonnet-4-5",ownedBy:"anthropic",label:"Claude Sonnet 4.5",modalities:{input:["text","image","pdf"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!0,knowledge:"2025-07-31",releaseDate:"2025-09-29",lastUpdated:"2025-09-29",openWeights:!1,cost:{input:3,output:15,cacheRead:.3,cacheWrite:3.75},limit:{context:1e6,output:64e3},provider:{npm:"@ai-sdk/anthropic"}},{id:"claude-sonnet-4-6",ownedBy:"anthropic",label:"Claude Sonnet 4.6",modalities:{input:["text","image","pdf"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!0,knowledge:"2025-08-31",releaseDate:"2026-02-17",lastUpdated:"2026-02-17",openWeights:!1,cost:{input:3,output:15,cacheRead:.3,cacheWrite:3.75},limit:{context:1e6,output:64e3},provider:{npm:"@ai-sdk/anthropic"}},{id:"gemini-3-flash",ownedBy:"google",label:"Gemini 3 Flash",modalities:{input:["text","image","video","audio","pdf"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!0,knowledge:"2025-01",releaseDate:"2025-12-17",lastUpdated:"2025-12-17",openWeights:!1,cost:{input:.5,output:3,cacheRead:.05},limit:{context:1048576,output:65536},provider:{npm:"@ai-sdk/google"}},{id:"gemini-3-pro",ownedBy:"google",label:"Gemini 3 Pro",modalities:{input:["text","image","video","audio","pdf"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!0,knowledge:"2025-01",releaseDate:"2025-11-18",lastUpdated:"2025-11-18",openWeights:!1,cost:{input:2,output:12,cacheRead:.2},limit:{context:1048576,output:65536},provider:{npm:"@ai-sdk/google"}},{id:"gemini-3.1-pro",ownedBy:"google",label:"Gemini 3.1 Pro Preview",modalities:{input:["text","image","video","audio","pdf"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!0,knowledge:"2025-01",releaseDate:"2026-02-19",lastUpdated:"2026-02-19",openWeights:!1,cost:{input:2,output:12,cacheRead:.2},limit:{context:1048576,output:65536},provider:{npm:"@ai-sdk/google"}},{id:"glm-4.6",ownedBy:"zai",label:"GLM-4.6",modalities:{input:["text"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!1,temperature:!0,knowledge:"2025-04",releaseDate:"2025-09-30",lastUpdated:"2025-09-30",openWeights:!0,cost:{input:.6,output:2.2,cacheRead:.1},limit:{context:204800,output:131072}},{id:"glm-4.7",ownedBy:"zai",label:"GLM-4.7",modalities:{input:["text"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!1,temperature:!0,knowledge:"2025-04",releaseDate:"2025-12-22",lastUpdated:"2025-12-22",openWeights:!0,cost:{input:.6,output:2.2,cacheRead:.1},limit:{context:204800,output:131072}},{id:"glm-4.7-free",ownedBy:"zai",label:"GLM-4.7 Free",modalities:{input:["text"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!1,temperature:!0,knowledge:"2025-04",releaseDate:"2025-12-22",lastUpdated:"2025-12-22",openWeights:!0,cost:{input:0,output:0,cacheRead:0},limit:{context:204800,output:131072}},{id:"glm-5",ownedBy:"zai",label:"GLM-5",modalities:{input:["text"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!1,temperature:!0,knowledge:"2025-04",releaseDate:"2026-02-11",lastUpdated:"2026-02-11",openWeights:!0,cost:{input:1,output:3.2,cacheRead:.2},limit:{context:204800,output:131072}},{id:"glm-5-free",ownedBy:"zai",label:"GLM-5 Free",modalities:{input:["text"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!1,temperature:!0,knowledge:"2025-04",releaseDate:"2026-02-11",lastUpdated:"2026-02-11",openWeights:!0,cost:{input:0,output:0,cacheRead:0},limit:{context:204800,output:131072}},{id:"glm-5.1",ownedBy:"zai",label:"GLM-5.1",modalities:{input:["text"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!1,temperature:!0,knowledge:"2025-04",releaseDate:"2026-04-07",lastUpdated:"2026-04-07",openWeights:!0,cost:{input:1.4,output:4.4,cacheRead:.26},limit:{context:204800,output:131072}},{id:"gpt-5",ownedBy:"openai",label:"GPT-5",modalities:{input:["text","image"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!1,knowledge:"2024-09-30",releaseDate:"2025-08-07",lastUpdated:"2025-08-07",openWeights:!1,cost:{input:1.07,output:8.5,cacheRead:.107},limit:{context:4e5,output:128e3},provider:{npm:"@ai-sdk/openai"}},{id:"gpt-5-codex",ownedBy:"openai",label:"GPT-5 Codex",modalities:{input:["text","image"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!1,knowledge:"2024-09-30",releaseDate:"2025-09-15",lastUpdated:"2025-09-15",openWeights:!1,cost:{input:1.07,output:8.5,cacheRead:.107},limit:{context:4e5,output:128e3},provider:{npm:"@ai-sdk/openai"}},{id:"gpt-5-nano",ownedBy:"openai",label:"GPT-5 Nano",modalities:{input:["text","image"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!1,knowledge:"2024-05-30",releaseDate:"2025-08-07",lastUpdated:"2025-08-07",openWeights:!1,cost:{input:0,output:0,cacheRead:0},limit:{context:4e5,output:128e3},provider:{npm:"@ai-sdk/openai"}},{id:"gpt-5.1",ownedBy:"openai",label:"GPT-5.1",modalities:{input:["text","image"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!1,knowledge:"2024-09-30",releaseDate:"2025-11-13",lastUpdated:"2025-11-13",openWeights:!1,cost:{input:1.07,output:8.5,cacheRead:.107},limit:{context:4e5,output:128e3},provider:{npm:"@ai-sdk/openai"}},{id:"gpt-5.1-codex",ownedBy:"openai",label:"GPT-5.1 Codex",modalities:{input:["text","image"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!1,knowledge:"2024-09-30",releaseDate:"2025-11-13",lastUpdated:"2025-11-13",openWeights:!1,cost:{input:1.07,output:8.5,cacheRead:.107},limit:{context:4e5,output:128e3},provider:{npm:"@ai-sdk/openai"}},{id:"gpt-5.1-codex-max",ownedBy:"openai",label:"GPT-5.1 Codex Max",modalities:{input:["text","image"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!1,knowledge:"2024-09-30",releaseDate:"2025-11-13",lastUpdated:"2025-11-13",openWeights:!1,cost:{input:1.25,output:10,cacheRead:.125},limit:{context:4e5,output:128e3},provider:{npm:"@ai-sdk/openai"}},{id:"gpt-5.1-codex-mini",ownedBy:"openai",label:"GPT-5.1 Codex Mini",modalities:{input:["text","image"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!1,knowledge:"2024-09-30",releaseDate:"2025-11-13",lastUpdated:"2025-11-13",openWeights:!1,cost:{input:.25,output:2,cacheRead:.025},limit:{context:4e5,output:128e3},provider:{npm:"@ai-sdk/openai"}},{id:"gpt-5.2",ownedBy:"openai",label:"GPT-5.2",modalities:{input:["text","image"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!1,knowledge:"2025-08-31",releaseDate:"2025-12-11",lastUpdated:"2025-12-11",openWeights:!1,cost:{input:1.75,output:14,cacheRead:.175},limit:{context:4e5,output:128e3},provider:{npm:"@ai-sdk/openai"}},{id:"gpt-5.2-codex",ownedBy:"openai",label:"GPT-5.2 Codex",modalities:{input:["text","image","pdf"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!1,knowledge:"2025-08-31",releaseDate:"2026-01-14",lastUpdated:"2026-01-14",openWeights:!1,cost:{input:1.75,output:14,cacheRead:.175},limit:{context:4e5,output:128e3},provider:{npm:"@ai-sdk/openai"}},{id:"gpt-5.3-codex",ownedBy:"openai",label:"GPT-5.3 Codex",modalities:{input:["text","image","pdf"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!1,knowledge:"2025-08-31",releaseDate:"2026-02-24",lastUpdated:"2026-02-24",openWeights:!1,cost:{input:1.75,output:14,cacheRead:.175},limit:{context:4e5,output:128e3},provider:{npm:"@ai-sdk/openai"}},{id:"gpt-5.3-codex-spark",ownedBy:"openai",label:"GPT-5.3 Codex Spark",modalities:{input:["text"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!1,temperature:!1,knowledge:"2025-08-31",releaseDate:"2026-02-12",lastUpdated:"2026-02-12",openWeights:!1,cost:{input:1.75,output:14,cacheRead:.175},limit:{context:128e3,output:128e3},provider:{npm:"@ai-sdk/openai"}},{id:"gpt-5.4",ownedBy:"openai",label:"GPT-5.4",modalities:{input:["text","image","pdf"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!1,knowledge:"2025-08-31",releaseDate:"2026-03-05",lastUpdated:"2026-03-05",openWeights:!1,cost:{input:2.5,output:15,cacheRead:.25},limit:{context:105e4,output:128e3},provider:{npm:"@ai-sdk/openai"}},{id:"gpt-5.4-mini",ownedBy:"openai",label:"GPT-5.4 Mini",modalities:{input:["text","image","pdf"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!1,knowledge:"2025-08-31",releaseDate:"2026-03-17",lastUpdated:"2026-03-17",openWeights:!1,cost:{input:.75,output:4.5,cacheRead:.075},limit:{context:4e5,output:128e3},provider:{npm:"@ai-sdk/openai"}},{id:"gpt-5.4-nano",ownedBy:"openai",label:"GPT-5.4 Nano",modalities:{input:["text","image","pdf"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!1,knowledge:"2025-08-31",releaseDate:"2026-03-17",lastUpdated:"2026-03-17",openWeights:!1,cost:{input:.2,output:1.25,cacheRead:.02},limit:{context:4e5,output:128e3},provider:{npm:"@ai-sdk/openai"}},{id:"gpt-5.4-pro",ownedBy:"openai",label:"GPT-5.4 Pro",modalities:{input:["text","image","pdf"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!1,knowledge:"2025-08-31",releaseDate:"2026-03-05",lastUpdated:"2026-03-05",openWeights:!1,cost:{input:30,output:180,cacheRead:30},limit:{context:105e4,output:128e3},provider:{npm:"@ai-sdk/openai"}},{id:"gpt-5.5",ownedBy:"openai",label:"GPT-5.5",modalities:{input:["text","image","pdf"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!1,knowledge:"2025-12-01",releaseDate:"2026-04-23",lastUpdated:"2026-04-23",openWeights:!1,cost:{input:5,output:30,cacheRead:.5},limit:{context:105e4,output:128e3},provider:{npm:"@ai-sdk/openai"}},{id:"gpt-5.5-pro",ownedBy:"openai",label:"GPT-5.5 Pro",modalities:{input:["text","image","pdf"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!1,knowledge:"2025-12-01",releaseDate:"2026-04-24",lastUpdated:"2026-04-24",openWeights:!1,cost:{input:30,output:180,cacheRead:30},limit:{context:105e4,output:128e3},provider:{npm:"@ai-sdk/openai"}},{id:"grok-code",ownedBy:"xai",label:"Grok Code Fast 1",modalities:{input:["text"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!0,releaseDate:"2025-08-20",lastUpdated:"2025-08-20",openWeights:!1,cost:{input:0,output:0,cacheRead:0,cacheWrite:0},limit:{context:256e3,output:256e3}},{id:"hy3-preview-free",label:"Hy3 preview Free",modalities:{input:["text"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!1,temperature:!0,knowledge:"2025-06",releaseDate:"2026-04-20",lastUpdated:"2026-04-20",openWeights:!0,cost:{input:0,output:0,cacheRead:0},limit:{context:256e3,output:64e3}},{id:"kimi-k2",ownedBy:"moonshot",label:"Kimi K2",modalities:{input:["text"],output:["text"]},toolCall:!0,reasoningText:!1,attachment:!1,temperature:!0,knowledge:"2024-10",releaseDate:"2025-09-05",lastUpdated:"2025-09-05",openWeights:!0,cost:{input:.4,output:2.5,cacheRead:.4},limit:{context:262144,output:262144}},{id:"kimi-k2-thinking",ownedBy:"moonshot",label:"Kimi K2 Thinking",modalities:{input:["text"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!1,temperature:!0,knowledge:"2024-10",releaseDate:"2025-09-05",lastUpdated:"2025-09-05",openWeights:!0,cost:{input:.4,output:2.5,cacheRead:.4},limit:{context:262144,output:262144}},{id:"kimi-k2.5",ownedBy:"moonshot",label:"Kimi K2.5",modalities:{input:["text","image","video"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!0,knowledge:"2024-10",releaseDate:"2026-01-27",lastUpdated:"2026-01-27",openWeights:!0,cost:{input:.6,output:3,cacheRead:.08},limit:{context:262144,output:65536}},{id:"kimi-k2.5-free",ownedBy:"moonshot",label:"Kimi K2.5 Free",modalities:{input:["text","image","video"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!0,knowledge:"2024-10",releaseDate:"2026-01-27",lastUpdated:"2026-01-27",openWeights:!0,cost:{input:0,output:0,cacheRead:0},limit:{context:262144,output:262144}},{id:"kimi-k2.6",ownedBy:"moonshot",label:"Kimi K2.6",modalities:{input:["text","image","video"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!0,knowledge:"2024-10",releaseDate:"2026-04-21",lastUpdated:"2026-04-21",openWeights:!0,cost:{input:.95,output:4,cacheRead:.16},limit:{context:262144,output:65536}},{id:"ling-2.6-flash-free",label:"Ling 2.6 Flash Free",modalities:{input:["text"],output:["text"]},toolCall:!0,reasoningText:!1,attachment:!1,temperature:!0,knowledge:"2025-06",releaseDate:"2026-04-21",lastUpdated:"2026-04-21",openWeights:!0,cost:{input:0,output:0},limit:{context:262100,output:32800}},{id:"mimo-v2-flash-free",label:"MiMo V2 Flash Free",modalities:{input:["text"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!1,temperature:!0,knowledge:"2024-12",releaseDate:"2025-12-16",lastUpdated:"2025-12-16",openWeights:!0,cost:{input:0,output:0,cacheRead:0},limit:{context:262144,output:65536}},{id:"mimo-v2-omni-free",label:"MiMo V2 Omni Free",modalities:{input:["text","image","audio","pdf"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!0,knowledge:"2024-12",releaseDate:"2026-03-18",lastUpdated:"2026-03-18",openWeights:!0,cost:{input:0,output:0,cacheRead:0},limit:{context:262144,output:64e3}},{id:"mimo-v2-pro-free",label:"MiMo V2 Pro Free",modalities:{input:["text"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!0,knowledge:"2024-12",releaseDate:"2026-03-18",lastUpdated:"2026-03-18",openWeights:!0,cost:{input:0,output:0,cacheRead:0},limit:{context:1048576,output:64e3}},{id:"minimax-m2.1",ownedBy:"minimax",label:"MiniMax M2.1",modalities:{input:["text"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!1,temperature:!0,knowledge:"2025-01",releaseDate:"2025-12-23",lastUpdated:"2025-12-23",openWeights:!0,cost:{input:.3,output:1.2,cacheRead:.1},limit:{context:204800,output:131072}},{id:"minimax-m2.1-free",ownedBy:"minimax",label:"MiniMax M2.1 Free",modalities:{input:["text"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!1,temperature:!0,knowledge:"2025-01",releaseDate:"2025-12-23",lastUpdated:"2025-12-23",openWeights:!0,cost:{input:0,output:0,cacheRead:0},limit:{context:204800,output:131072},provider:{npm:"@ai-sdk/anthropic"}},{id:"minimax-m2.5",ownedBy:"minimax",label:"MiniMax M2.5",modalities:{input:["text"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!1,temperature:!0,knowledge:"2025-01",releaseDate:"2026-02-12",lastUpdated:"2026-02-12",openWeights:!0,cost:{input:.3,output:1.2,cacheRead:.06},limit:{context:204800,output:131072}},{id:"minimax-m2.5-free",ownedBy:"minimax",label:"MiniMax M2.5 Free",modalities:{input:["text"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!1,temperature:!0,knowledge:"2025-01",releaseDate:"2026-02-12",lastUpdated:"2026-02-12",openWeights:!0,cost:{input:0,output:0,cacheRead:0},limit:{context:204800,output:131072},provider:{npm:"@ai-sdk/anthropic"}},{id:"minimax-m2.7",ownedBy:"minimax",label:"MiniMax M2.7",modalities:{input:["text"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!1,temperature:!0,knowledge:"2025-01",releaseDate:"2026-03-18",lastUpdated:"2026-03-18",openWeights:!0,cost:{input:.3,output:1.2,cacheRead:.06},limit:{context:204800,output:131072}},{id:"nemotron-3-super-free",label:"Nemotron 3 Super Free",modalities:{input:["text"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!1,temperature:!0,knowledge:"2026-02",releaseDate:"2026-03-11",lastUpdated:"2026-03-11",openWeights:!0,cost:{input:0,output:0,cacheRead:0},limit:{context:204800,output:128e3}},{id:"qwen3-coder",label:"Qwen3 Coder",modalities:{input:["text"],output:["text"]},toolCall:!0,reasoningText:!1,attachment:!1,temperature:!0,knowledge:"2025-04",releaseDate:"2025-07-23",lastUpdated:"2025-07-23",openWeights:!0,cost:{input:.45,output:1.8},limit:{context:262144,output:65536}},{id:"qwen3.5-plus",label:"Qwen3.5 Plus",modalities:{input:["text","image","video"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!0,knowledge:"2025-04",releaseDate:"2026-02-16",lastUpdated:"2026-02-16",openWeights:!1,cost:{input:.2,output:1.2,cacheRead:.02,cacheWrite:.25},limit:{context:262144,output:65536},provider:{npm:"@ai-sdk/anthropic"}},{id:"qwen3.6-plus",label:"Qwen3.6 Plus",modalities:{input:["text","image","video"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!0,knowledge:"2025-04",releaseDate:"2026-04-02",lastUpdated:"2026-04-02",openWeights:!1,cost:{input:.5,output:3,cacheRead:.05,cacheWrite:.625},limit:{context:262144,output:65536},provider:{npm:"@ai-sdk/anthropic"}},{id:"qwen3.6-plus-free",label:"Qwen3.6 Plus Free",modalities:{input:["text"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!1,temperature:!0,knowledge:"2024-12",releaseDate:"2026-03-30",lastUpdated:"2026-03-30",openWeights:!1,cost:{input:0,output:0,cacheRead:0},limit:{context:1048576,output:64e3}},{id:"trinity-large-preview-free",label:"Trinity Large Preview",modalities:{input:["text"],output:["text"]},toolCall:!0,reasoningText:!1,attachment:!1,temperature:!0,knowledge:"2025-06",releaseDate:"2026-01-28",lastUpdated:"2026-01-28",openWeights:!0,cost:{input:0,output:0},limit:{context:131072,output:131072}}],label:"OpenCode Zen",env:["OPENCODE_API_KEY"],npm:"@ai-sdk/openai-compatible",api:"https://opencode.ai/zen/v1",doc:"https://opencode.ai/docs/zen"},xai:{id:"xai",models:[{id:"grok-2",ownedBy:"xai",label:"Grok 2",modalities:{input:["text"],output:["text"]},toolCall:!0,reasoningText:!1,attachment:!1,temperature:!0,knowledge:"2024-08",releaseDate:"2024-08-20",lastUpdated:"2024-08-20",openWeights:!1,cost:{input:2,output:10,cacheRead:2},limit:{context:131072,output:8192}},{id:"grok-2-1212",ownedBy:"xai",label:"Grok 2 (1212)",modalities:{input:["text"],output:["text"]},toolCall:!0,reasoningText:!1,attachment:!1,temperature:!0,knowledge:"2024-08",releaseDate:"2024-12-12",lastUpdated:"2024-12-12",openWeights:!1,cost:{input:2,output:10,cacheRead:2},limit:{context:131072,output:8192}},{id:"grok-2-latest",ownedBy:"xai",label:"Grok 2 Latest",modalities:{input:["text"],output:["text"]},toolCall:!0,reasoningText:!1,attachment:!1,temperature:!0,knowledge:"2024-08",releaseDate:"2024-08-20",lastUpdated:"2024-12-12",openWeights:!1,cost:{input:2,output:10,cacheRead:2},limit:{context:131072,output:8192}},{id:"grok-2-vision",ownedBy:"xai",label:"Grok 2 Vision",modalities:{input:["text","image"],output:["text"]},toolCall:!0,reasoningText:!1,attachment:!0,temperature:!0,knowledge:"2024-08",releaseDate:"2024-08-20",lastUpdated:"2024-08-20",openWeights:!1,cost:{input:2,output:10,cacheRead:2},limit:{context:8192,output:4096}},{id:"grok-2-vision-1212",ownedBy:"xai",label:"Grok 2 Vision (1212)",modalities:{input:["text","image"],output:["text"]},toolCall:!0,reasoningText:!1,attachment:!0,temperature:!0,knowledge:"2024-08",releaseDate:"2024-08-20",lastUpdated:"2024-12-12",openWeights:!1,cost:{input:2,output:10,cacheRead:2},limit:{context:8192,output:4096}},{id:"grok-2-vision-latest",ownedBy:"xai",label:"Grok 2 Vision Latest",modalities:{input:["text","image"],output:["text"]},toolCall:!0,reasoningText:!1,attachment:!0,temperature:!0,knowledge:"2024-08",releaseDate:"2024-08-20",lastUpdated:"2024-12-12",openWeights:!1,cost:{input:2,output:10,cacheRead:2},limit:{context:8192,output:4096}},{id:"grok-3",ownedBy:"xai",label:"Grok 3",modalities:{input:["text"],output:["text"]},toolCall:!0,reasoningText:!1,attachment:!1,temperature:!0,knowledge:"2024-11",releaseDate:"2025-02-17",lastUpdated:"2025-02-17",openWeights:!1,cost:{input:3,output:15,cacheRead:.75},limit:{context:131072,output:8192}},{id:"grok-3-fast",ownedBy:"xai",label:"Grok 3 Fast",modalities:{input:["text"],output:["text"]},toolCall:!0,reasoningText:!1,attachment:!1,temperature:!0,knowledge:"2024-11",releaseDate:"2025-02-17",lastUpdated:"2025-02-17",openWeights:!1,cost:{input:5,output:25,cacheRead:1.25},limit:{context:131072,output:8192}},{id:"grok-3-fast-latest",ownedBy:"xai",label:"Grok 3 Fast Latest",modalities:{input:["text"],output:["text"]},toolCall:!0,reasoningText:!1,attachment:!1,temperature:!0,knowledge:"2024-11",releaseDate:"2025-02-17",lastUpdated:"2025-02-17",openWeights:!1,cost:{input:5,output:25,cacheRead:1.25},limit:{context:131072,output:8192}},{id:"grok-3-latest",ownedBy:"xai",label:"Grok 3 Latest",modalities:{input:["text"],output:["text"]},toolCall:!0,reasoningText:!1,attachment:!1,temperature:!0,knowledge:"2024-11",releaseDate:"2025-02-17",lastUpdated:"2025-02-17",openWeights:!1,cost:{input:3,output:15,cacheRead:.75},limit:{context:131072,output:8192}},{id:"grok-3-mini",ownedBy:"xai",label:"Grok 3 Mini",modalities:{input:["text"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!1,temperature:!0,knowledge:"2024-11",releaseDate:"2025-02-17",lastUpdated:"2025-02-17",openWeights:!1,cost:{input:.3,output:.5,cacheRead:.075},limit:{context:131072,output:8192}},{id:"grok-3-mini-fast",ownedBy:"xai",label:"Grok 3 Mini Fast",modalities:{input:["text"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!1,temperature:!0,knowledge:"2024-11",releaseDate:"2025-02-17",lastUpdated:"2025-02-17",openWeights:!1,cost:{input:.6,output:4,cacheRead:.15},limit:{context:131072,output:8192}},{id:"grok-3-mini-fast-latest",ownedBy:"xai",label:"Grok 3 Mini Fast Latest",modalities:{input:["text"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!1,temperature:!0,knowledge:"2024-11",releaseDate:"2025-02-17",lastUpdated:"2025-02-17",openWeights:!1,cost:{input:.6,output:4,cacheRead:.15},limit:{context:131072,output:8192}},{id:"grok-3-mini-latest",ownedBy:"xai",label:"Grok 3 Mini Latest",modalities:{input:["text"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!1,temperature:!0,knowledge:"2024-11",releaseDate:"2025-02-17",lastUpdated:"2025-02-17",openWeights:!1,cost:{input:.3,output:.5,cacheRead:.075},limit:{context:131072,output:8192}},{id:"grok-4",ownedBy:"xai",label:"Grok 4",modalities:{input:["text"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!1,temperature:!0,knowledge:"2025-07",releaseDate:"2025-07-09",lastUpdated:"2025-07-09",openWeights:!1,cost:{input:3,output:15,cacheRead:.75},limit:{context:256e3,output:64e3}},{id:"grok-4-1-fast",ownedBy:"xai",label:"Grok 4.1 Fast",modalities:{input:["text","image"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!0,knowledge:"2025-07",releaseDate:"2025-11-19",lastUpdated:"2025-11-19",openWeights:!1,cost:{input:.2,output:.5,cacheRead:.05},limit:{context:2e6,output:3e4}},{id:"grok-4-1-fast-non-reasoning",ownedBy:"xai",label:"Grok 4.1 Fast (Non-Reasoning)",modalities:{input:["text","image"],output:["text"]},toolCall:!0,reasoningText:!1,attachment:!0,temperature:!0,knowledge:"2025-07",releaseDate:"2025-11-19",lastUpdated:"2025-11-19",openWeights:!1,cost:{input:.2,output:.5,cacheRead:.05},limit:{context:2e6,output:3e4}},{id:"grok-4-fast",ownedBy:"xai",label:"Grok 4 Fast",modalities:{input:["text","image"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!0,knowledge:"2025-07",releaseDate:"2025-09-19",lastUpdated:"2025-09-19",openWeights:!1,cost:{input:.2,output:.5,cacheRead:.05},limit:{context:2e6,output:3e4}},{id:"grok-4-fast-non-reasoning",ownedBy:"xai",label:"Grok 4 Fast (Non-Reasoning)",modalities:{input:["text","image"],output:["text"]},toolCall:!0,reasoningText:!1,attachment:!0,temperature:!0,knowledge:"2025-07",releaseDate:"2025-09-19",lastUpdated:"2025-09-19",openWeights:!1,cost:{input:.2,output:.5,cacheRead:.05},limit:{context:2e6,output:3e4}},{id:"grok-4.20-0309-non-reasoning",ownedBy:"xai",label:"Grok 4.20 (Non-Reasoning)",modalities:{input:["text","image"],output:["text"]},toolCall:!0,reasoningText:!1,attachment:!0,temperature:!0,releaseDate:"2026-03-09",lastUpdated:"2026-03-09",openWeights:!1,cost:{input:2,output:6,cacheRead:.2},limit:{context:2e6,output:3e4}},{id:"grok-4.20-0309-reasoning",ownedBy:"xai",label:"Grok 4.20 (Reasoning)",modalities:{input:["text","image"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!0,releaseDate:"2026-03-09",lastUpdated:"2026-03-09",openWeights:!1,cost:{input:2,output:6,cacheRead:.2},limit:{context:2e6,output:3e4}},{id:"grok-4.20-multi-agent-0309",ownedBy:"xai",label:"Grok 4.20 Multi-Agent",modalities:{input:["text","image"],output:["text"]},toolCall:!1,reasoningText:!0,attachment:!0,temperature:!0,releaseDate:"2026-03-09",lastUpdated:"2026-03-09",openWeights:!1,cost:{input:2,output:6,cacheRead:.2},limit:{context:2e6,output:3e4}},{id:"grok-4.3",ownedBy:"xai",label:"Grok 4.3",modalities:{input:["text","image"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!0,releaseDate:"2026-05-01",lastUpdated:"2026-05-01",openWeights:!1,cost:{input:1.25,output:2.5,cacheRead:.2},limit:{context:1e6,output:3e4}},{id:"grok-beta",ownedBy:"xai",label:"Grok Beta",modalities:{input:["text"],output:["text"]},toolCall:!0,reasoningText:!1,attachment:!1,temperature:!0,knowledge:"2024-08",releaseDate:"2024-11-01",lastUpdated:"2024-11-01",openWeights:!1,cost:{input:5,output:15,cacheRead:5},limit:{context:131072,output:4096}},{id:"grok-code-fast-1",ownedBy:"xai",label:"Grok Code Fast 1",modalities:{input:["text"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!1,temperature:!0,knowledge:"2023-10",releaseDate:"2025-08-28",lastUpdated:"2025-08-28",openWeights:!1,cost:{input:.2,output:1.5,cacheRead:.02},limit:{context:256e3,output:1e4}},{id:"grok-vision-beta",ownedBy:"xai",label:"Grok Vision Beta",modalities:{input:["text","image"],output:["text"]},toolCall:!0,reasoningText:!1,attachment:!0,temperature:!0,knowledge:"2024-08",releaseDate:"2024-11-01",lastUpdated:"2024-11-01",openWeights:!1,cost:{input:5,output:15,cacheRead:5},limit:{context:8192,output:4096}}],label:"xAI",env:["XAI_API_KEY"],npm:"@ai-sdk/xai",doc:"https://docs.x.ai/docs/models"},zai:{id:"zai",models:[{id:"glm-4.5",ownedBy:"zai",label:"GLM-4.5",modalities:{input:["text"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!1,temperature:!0,knowledge:"2025-04",releaseDate:"2025-07-28",lastUpdated:"2025-07-28",openWeights:!0,cost:{input:.6,output:2.2,cacheRead:.11,cacheWrite:0},limit:{context:131072,output:98304}},{id:"glm-4.5-air",ownedBy:"zai",label:"GLM-4.5-Air",modalities:{input:["text"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!1,temperature:!0,knowledge:"2025-04",releaseDate:"2025-07-28",lastUpdated:"2025-07-28",openWeights:!0,cost:{input:.2,output:1.1,cacheRead:.03,cacheWrite:0},limit:{context:131072,output:98304}},{id:"glm-4.5-flash",ownedBy:"zai",label:"GLM-4.5-Flash",modalities:{input:["text"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!1,temperature:!0,knowledge:"2025-04",releaseDate:"2025-07-28",lastUpdated:"2025-07-28",openWeights:!0,cost:{input:0,output:0,cacheRead:0,cacheWrite:0},limit:{context:131072,output:98304}},{id:"glm-4.5v",ownedBy:"zai",label:"GLM-4.5V",modalities:{input:["text","image","video"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!0,knowledge:"2025-04",releaseDate:"2025-08-11",lastUpdated:"2025-08-11",openWeights:!0,cost:{input:.6,output:1.8},limit:{context:64e3,output:16384}},{id:"glm-4.6",ownedBy:"zai",label:"GLM-4.6",modalities:{input:["text"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!1,temperature:!0,knowledge:"2025-04",releaseDate:"2025-09-30",lastUpdated:"2025-09-30",openWeights:!0,cost:{input:.6,output:2.2,cacheRead:.11,cacheWrite:0},limit:{context:204800,output:131072}},{id:"glm-4.6v",ownedBy:"zai",label:"GLM-4.6V",modalities:{input:["text","image","video"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!0,knowledge:"2025-04",releaseDate:"2025-12-08",lastUpdated:"2025-12-08",openWeights:!0,cost:{input:.3,output:.9},limit:{context:128e3,output:32768}},{id:"glm-4.7",ownedBy:"zai",label:"GLM-4.7",modalities:{input:["text"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!1,temperature:!0,knowledge:"2025-04",releaseDate:"2025-12-22",lastUpdated:"2025-12-22",openWeights:!0,cost:{input:.6,output:2.2,cacheRead:.11,cacheWrite:0},limit:{context:204800,output:131072}},{id:"glm-4.7-flash",ownedBy:"zai",label:"GLM-4.7-Flash",modalities:{input:["text"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!1,temperature:!0,knowledge:"2025-04",releaseDate:"2026-01-19",lastUpdated:"2026-01-19",openWeights:!0,cost:{input:0,output:0,cacheRead:0,cacheWrite:0},limit:{context:2e5,output:131072}},{id:"glm-4.7-flashx",ownedBy:"zai",label:"GLM-4.7-FlashX",modalities:{input:["text"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!1,temperature:!0,knowledge:"2025-04",releaseDate:"2026-01-19",lastUpdated:"2026-01-19",openWeights:!0,cost:{input:.07,output:.4,cacheRead:.01,cacheWrite:0},limit:{context:2e5,output:131072}},{id:"glm-5",ownedBy:"zai",label:"GLM-5",modalities:{input:["text"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!1,temperature:!0,releaseDate:"2026-02-11",lastUpdated:"2026-02-11",openWeights:!0,cost:{input:1,output:3.2,cacheRead:.2,cacheWrite:0},limit:{context:204800,output:131072}},{id:"glm-5-turbo",ownedBy:"zai",label:"GLM-5-Turbo",modalities:{input:["text"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!1,temperature:!0,releaseDate:"2026-03-16",lastUpdated:"2026-03-16",openWeights:!1,cost:{input:1.2,output:4,cacheRead:.24,cacheWrite:0},limit:{context:2e5,output:131072}},{id:"glm-5.1",ownedBy:"zai",label:"GLM-5.1",modalities:{input:["text"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!1,temperature:!0,releaseDate:"2026-03-27",lastUpdated:"2026-03-27",openWeights:!1,cost:{input:1.4,output:4.4,cacheRead:.26,cacheWrite:0},limit:{context:2e5,output:131072}},{id:"glm-5v-turbo",ownedBy:"zai",label:"GLM-5V-Turbo",modalities:{input:["text","image","video","pdf"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!0,releaseDate:"2026-04-01",lastUpdated:"2026-04-01",openWeights:!1,cost:{input:1.2,output:4,cacheRead:.24,cacheWrite:0},limit:{context:2e5,output:131072}}],label:"Z.AI",env:["ZHIPU_API_KEY"],npm:"@ai-sdk/openai-compatible",api:"https://api.z.ai/api/paas/v4",doc:"https://docs.z.ai/guides/overview/pricing"},"zai-coding":{id:"zai-coding",models:[{id:"glm-4.5-air",ownedBy:"zai",label:"GLM-4.5-Air",modalities:{input:["text"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!1,temperature:!0,knowledge:"2025-04",releaseDate:"2025-07-28",lastUpdated:"2025-07-28",openWeights:!0,cost:{input:0,output:0,cacheRead:0,cacheWrite:0},limit:{context:131072,output:98304}},{id:"glm-4.7",ownedBy:"zai",label:"GLM-4.7",modalities:{input:["text"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!1,temperature:!0,knowledge:"2025-04",releaseDate:"2025-12-22",lastUpdated:"2025-12-22",openWeights:!0,cost:{input:0,output:0,cacheRead:0,cacheWrite:0},limit:{context:204800,output:131072}},{id:"glm-5-turbo",ownedBy:"zai",label:"GLM-5-Turbo",modalities:{input:["text"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!1,temperature:!0,releaseDate:"2026-03-16",lastUpdated:"2026-03-16",openWeights:!1,cost:{input:0,output:0,cacheRead:0,cacheWrite:0},limit:{context:2e5,output:131072}},{id:"glm-5.1",ownedBy:"zai",label:"GLM-5.1",modalities:{input:["text"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!1,temperature:!0,releaseDate:"2026-03-27",lastUpdated:"2026-03-27",openWeights:!1,cost:{input:0,output:0,cacheRead:0,cacheWrite:0},limit:{context:2e5,output:131072}},{id:"glm-5v-turbo",ownedBy:"zai",label:"GLM-5V-Turbo",modalities:{input:["text","image","video","pdf"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!0,releaseDate:"2026-04-01",lastUpdated:"2026-04-01",openWeights:!1,cost:{input:0,output:0,cacheRead:0,cacheWrite:0},limit:{context:2e5,output:131072}}],label:"Z.AI Coding Plan",env:["ZHIPU_API_KEY"],npm:"@ai-sdk/openai-compatible",api:"https://api.z.ai/api/coding/paas/v4",doc:"https://docs.z.ai/devpack/overview"},moonshot:{id:"moonshot",models:[{id:"kimi-k2-0711-preview",ownedBy:"moonshot",label:"Kimi K2 0711",modalities:{input:["text"],output:["text"]},toolCall:!0,reasoningText:!1,attachment:!1,temperature:!0,knowledge:"2024-10",releaseDate:"2025-07-14",lastUpdated:"2025-07-14",openWeights:!0,cost:{input:.6,output:2.5,cacheRead:.15},limit:{context:131072,output:16384}},{id:"kimi-k2-0905-preview",ownedBy:"moonshot",label:"Kimi K2 0905",modalities:{input:["text"],output:["text"]},toolCall:!0,reasoningText:!1,attachment:!1,temperature:!0,knowledge:"2024-10",releaseDate:"2025-09-05",lastUpdated:"2025-09-05",openWeights:!0,cost:{input:.6,output:2.5,cacheRead:.15},limit:{context:262144,output:262144}},{id:"kimi-k2-thinking",ownedBy:"moonshot",label:"Kimi K2 Thinking",modalities:{input:["text"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!1,temperature:!0,knowledge:"2024-08",releaseDate:"2025-11-06",lastUpdated:"2025-11-06",openWeights:!0,cost:{input:.6,output:2.5,cacheRead:.15},limit:{context:262144,output:262144}},{id:"kimi-k2-thinking-turbo",ownedBy:"moonshot",label:"Kimi K2 Thinking Turbo",modalities:{input:["text"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!1,temperature:!0,knowledge:"2024-08",releaseDate:"2025-11-06",lastUpdated:"2025-11-06",openWeights:!0,cost:{input:1.15,output:8,cacheRead:.15},limit:{context:262144,output:262144}},{id:"kimi-k2-turbo-preview",ownedBy:"moonshot",label:"Kimi K2 Turbo",modalities:{input:["text"],output:["text"]},toolCall:!0,reasoningText:!1,attachment:!1,temperature:!0,knowledge:"2024-10",releaseDate:"2025-09-05",lastUpdated:"2025-09-05",openWeights:!0,cost:{input:2.4,output:10,cacheRead:.6},limit:{context:262144,output:262144}},{id:"kimi-k2.5",ownedBy:"moonshot",label:"Kimi K2.5",modalities:{input:["text","image","video"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!1,temperature:!1,knowledge:"2025-01",releaseDate:"2026-01",lastUpdated:"2026-01",openWeights:!0,cost:{input:.6,output:3,cacheRead:.1},limit:{context:262144,output:262144}},{id:"kimi-k2.6",ownedBy:"moonshot",label:"Kimi K2.6",modalities:{input:["text","image","video"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!0,knowledge:"2025-01",releaseDate:"2026-04-21",lastUpdated:"2026-04-21",openWeights:!0,cost:{input:.95,output:4,cacheRead:.16},limit:{context:262144,output:262144}}],label:"Moonshot AI",env:["MOONSHOT_API_KEY"],npm:"@ai-sdk/openai-compatible",api:"https://api.moonshot.ai/v1",doc:"https://platform.moonshot.ai/docs/api/chat"},minimax:{id:"minimax",models:[{id:"MiniMax-M2",ownedBy:"minimax",label:"MiniMax-M2",modalities:{input:["text"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!1,temperature:!0,releaseDate:"2025-10-27",lastUpdated:"2025-10-27",openWeights:!0,cost:{input:.3,output:1.2},limit:{context:196608,output:128e3}},{id:"MiniMax-M2.1",ownedBy:"minimax",label:"MiniMax-M2.1",modalities:{input:["text"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!1,temperature:!0,releaseDate:"2025-12-23",lastUpdated:"2025-12-23",openWeights:!0,cost:{input:.3,output:1.2},limit:{context:204800,output:131072}},{id:"MiniMax-M2.5",ownedBy:"minimax",label:"MiniMax-M2.5",modalities:{input:["text"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!1,temperature:!0,releaseDate:"2026-02-12",lastUpdated:"2026-02-12",openWeights:!0,cost:{input:.3,output:1.2,cacheRead:.03,cacheWrite:.375},limit:{context:204800,output:131072}},{id:"MiniMax-M2.5-highspeed",ownedBy:"minimax",label:"MiniMax-M2.5-highspeed",modalities:{input:["text"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!1,temperature:!0,releaseDate:"2026-02-13",lastUpdated:"2026-02-13",openWeights:!0,cost:{input:.6,output:2.4,cacheRead:.06,cacheWrite:.375},limit:{context:204800,output:131072}},{id:"MiniMax-M2.7",ownedBy:"minimax",label:"MiniMax-M2.7",modalities:{input:["text"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!1,temperature:!0,releaseDate:"2026-03-18",lastUpdated:"2026-03-18",openWeights:!0,cost:{input:.3,output:1.2,cacheRead:.06,cacheWrite:.375},limit:{context:204800,output:131072}},{id:"MiniMax-M2.7-highspeed",ownedBy:"minimax",label:"MiniMax-M2.7-highspeed",modalities:{input:["text"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!1,temperature:!0,releaseDate:"2026-03-18",lastUpdated:"2026-03-18",openWeights:!0,cost:{input:.6,output:2.4,cacheRead:.06,cacheWrite:.375},limit:{context:204800,output:131072}}],label:"MiniMax (minimax.io)",env:["MINIMAX_API_KEY"],npm:"@ai-sdk/anthropic",api:"https://api.minimax.io/anthropic/v1",doc:"https://platform.minimax.io/docs/guides/quickstart"},copilot:{id:"copilot",models:[{id:"claude-haiku-4.5",ownedBy:"anthropic",label:"Claude Haiku 4.5",modalities:{input:["text","image"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!0,knowledge:"2025-02-28",releaseDate:"2025-10-15",lastUpdated:"2025-10-15",openWeights:!1,cost:{input:0,output:0},limit:{context:144e3,output:32e3}},{id:"claude-opus-4.5",ownedBy:"anthropic",label:"Claude Opus 4.5",modalities:{input:["text","image"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!0,knowledge:"2025-03-31",releaseDate:"2025-11-24",lastUpdated:"2025-08-01",openWeights:!1,cost:{input:0,output:0},limit:{context:16e4,output:32e3}},{id:"claude-opus-4.6",ownedBy:"anthropic",label:"Claude Opus 4.6",modalities:{input:["text","image"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!0,knowledge:"2025-05-31",releaseDate:"2026-02-05",lastUpdated:"2026-02-05",openWeights:!1,cost:{input:0,output:0},limit:{context:144e3,output:64e3}},{id:"claude-opus-4.7",ownedBy:"anthropic",label:"Claude Opus 4.7",modalities:{input:["text","image"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!1,knowledge:"2026-01-31",releaseDate:"2026-04-16",lastUpdated:"2026-04-16",openWeights:!1,cost:{input:0,output:0},limit:{context:144e3,output:64e3}},{id:"claude-opus-41",ownedBy:"anthropic",label:"Claude Opus 4.1",modalities:{input:["text","image"],output:["text"]},toolCall:!1,reasoningText:!0,attachment:!0,temperature:!0,knowledge:"2025-03-31",releaseDate:"2025-08-05",lastUpdated:"2025-08-05",openWeights:!1,cost:{input:0,output:0},limit:{context:8e4,output:16e3}},{id:"claude-sonnet-4",ownedBy:"anthropic",label:"Claude Sonnet 4",modalities:{input:["text","image"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!0,knowledge:"2025-03-31",releaseDate:"2025-05-22",lastUpdated:"2025-05-22",openWeights:!1,cost:{input:0,output:0},limit:{context:216e3,output:16e3}},{id:"claude-sonnet-4.5",ownedBy:"anthropic",label:"Claude Sonnet 4.5",modalities:{input:["text","image"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!0,knowledge:"2025-03-31",releaseDate:"2025-09-29",lastUpdated:"2025-09-29",openWeights:!1,cost:{input:0,output:0},limit:{context:144e3,output:32e3}},{id:"claude-sonnet-4.6",ownedBy:"anthropic",label:"Claude Sonnet 4.6",modalities:{input:["text","image"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!0,knowledge:"2025-08-31",releaseDate:"2026-02-17",lastUpdated:"2026-02-17",openWeights:!1,cost:{input:0,output:0},limit:{context:2e5,output:32e3}},{id:"gemini-2.5-pro",ownedBy:"google",label:"Gemini 2.5 Pro",modalities:{input:["text","image","audio","video"],output:["text"]},toolCall:!0,reasoningText:!1,attachment:!0,temperature:!0,knowledge:"2025-01",releaseDate:"2025-03-20",lastUpdated:"2025-06-05",openWeights:!1,cost:{input:0,output:0},limit:{context:128e3,output:64e3}},{id:"gemini-3-flash-preview",ownedBy:"google",label:"Gemini 3 Flash",modalities:{input:["text","image","audio","video"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!0,knowledge:"2025-01",releaseDate:"2025-12-17",lastUpdated:"2025-12-17",openWeights:!1,cost:{input:0,output:0},limit:{context:128e3,output:64e3}},{id:"gemini-3-pro-preview",ownedBy:"google",label:"Gemini 3 Pro Preview",modalities:{input:["text","image","audio","video"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!0,knowledge:"2025-01",releaseDate:"2025-11-18",lastUpdated:"2025-11-18",openWeights:!1,cost:{input:0,output:0},limit:{context:128e3,output:64e3}},{id:"gemini-3.1-pro-preview",ownedBy:"google",label:"Gemini 3.1 Pro Preview",modalities:{input:["text","image"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!0,knowledge:"2025-01",releaseDate:"2026-02-19",lastUpdated:"2026-02-19",openWeights:!1,cost:{input:0,output:0},limit:{context:128e3,output:64e3}},{id:"gpt-4.1",ownedBy:"openai",label:"GPT-4.1",modalities:{input:["text","image"],output:["text"]},toolCall:!0,reasoningText:!1,attachment:!0,temperature:!0,knowledge:"2024-04",releaseDate:"2025-04-14",lastUpdated:"2025-04-14",openWeights:!1,cost:{input:0,output:0},limit:{context:128e3,output:16384}},{id:"gpt-4o",ownedBy:"openai",label:"GPT-4o",modalities:{input:["text","image"],output:["text"]},toolCall:!0,reasoningText:!1,attachment:!0,temperature:!0,knowledge:"2023-09",releaseDate:"2024-05-13",lastUpdated:"2024-05-13",openWeights:!1,cost:{input:0,output:0},limit:{context:128e3,output:4096}},{id:"gpt-5",ownedBy:"openai",label:"GPT-5",modalities:{input:["text","image"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!0,knowledge:"2024-10",releaseDate:"2025-08-07",lastUpdated:"2025-08-07",openWeights:!1,cost:{input:0,output:0},limit:{context:128e3,output:128e3}},{id:"gpt-5-mini",ownedBy:"openai",label:"GPT-5-mini",modalities:{input:["text","image"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!0,knowledge:"2024-06",releaseDate:"2025-08-13",lastUpdated:"2025-08-13",openWeights:!1,cost:{input:0,output:0},limit:{context:264e3,output:64e3}},{id:"gpt-5.1",ownedBy:"openai",label:"GPT-5.1",modalities:{input:["text","image"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!1,knowledge:"2024-09-30",releaseDate:"2025-11-13",lastUpdated:"2025-11-13",openWeights:!1,cost:{input:0,output:0},limit:{context:264e3,output:64e3}},{id:"gpt-5.1-codex",ownedBy:"openai",label:"GPT-5.1-Codex",modalities:{input:["text","image"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!1,temperature:!1,knowledge:"2024-09-30",releaseDate:"2025-11-13",lastUpdated:"2025-11-13",openWeights:!1,cost:{input:0,output:0},limit:{context:4e5,output:128e3}},{id:"gpt-5.1-codex-max",ownedBy:"openai",label:"GPT-5.1-Codex-max",modalities:{input:["text","image"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!1,knowledge:"2024-09-30",releaseDate:"2025-12-04",lastUpdated:"2025-12-04",openWeights:!1,cost:{input:0,output:0},limit:{context:4e5,output:128e3}},{id:"gpt-5.1-codex-mini",ownedBy:"openai",label:"GPT-5.1-Codex-mini",modalities:{input:["text","image"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!1,temperature:!1,knowledge:"2024-09-30",releaseDate:"2025-11-13",lastUpdated:"2025-11-13",openWeights:!1,cost:{input:0,output:0},limit:{context:4e5,output:128e3}},{id:"gpt-5.2",ownedBy:"openai",label:"GPT-5.2",modalities:{input:["text","image"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!1,knowledge:"2025-08-31",releaseDate:"2025-12-11",lastUpdated:"2025-12-11",openWeights:!1,cost:{input:0,output:0},limit:{context:264e3,output:64e3}},{id:"gpt-5.2-codex",ownedBy:"openai",label:"GPT-5.2-Codex",modalities:{input:["text","image"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!1,temperature:!1,knowledge:"2025-08-31",releaseDate:"2025-12-11",lastUpdated:"2025-12-11",openWeights:!1,cost:{input:0,output:0},limit:{context:4e5,output:128e3}},{id:"gpt-5.3-codex",ownedBy:"openai",label:"GPT-5.3-Codex",modalities:{input:["text","image"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!1,temperature:!1,knowledge:"2025-08-31",releaseDate:"2026-02-24",lastUpdated:"2026-02-24",openWeights:!1,cost:{input:0,output:0},limit:{context:4e5,output:128e3}},{id:"gpt-5.4",ownedBy:"openai",label:"GPT-5.4",modalities:{input:["text","image"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!1,temperature:!1,knowledge:"2025-08-31",releaseDate:"2026-03-05",lastUpdated:"2026-03-05",openWeights:!1,cost:{input:0,output:0},limit:{context:4e5,output:128e3}},{id:"gpt-5.4-mini",ownedBy:"openai",label:"GPT-5.4 Mini",modalities:{input:["text","image"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,temperature:!1,knowledge:"2025-08-31",releaseDate:"2026-03-17",lastUpdated:"2026-03-17",openWeights:!1,cost:{input:0,output:0},limit:{context:4e5,output:128e3}},{id:"gpt-5.5",ownedBy:"openai",label:"GPT-5.5",modalities:{input:["text","image"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!1,temperature:!1,knowledge:"2025-08-31",releaseDate:"2026-04-22",lastUpdated:"2026-04-22",openWeights:!1,cost:{input:0,output:0},limit:{context:4e5,output:128e3}},{id:"grok-code-fast-1",ownedBy:"xai",label:"Grok Code Fast 1",modalities:{input:["text"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!1,temperature:!0,knowledge:"2025-08",releaseDate:"2025-08-27",lastUpdated:"2025-08-27",openWeights:!1,cost:{input:0,output:0},limit:{context:128e3,output:64e3}}],label:"GitHub Copilot",env:["GITHUB_TOKEN"],npm:"@ai-sdk/openai-compatible",api:"https://api.githubcopilot.com",doc:"https://docs.github.com/en/copilot"},"ollama-cloud":{id:"ollama-cloud",models:[{id:"cogito-2.1:671b",label:"cogito-2.1:671b",modalities:{input:["text"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!1,releaseDate:"2025-11-19",lastUpdated:"2026-01-19",openWeights:!0,limit:{context:163840,output:32e3}},{id:"deepseek-v3.1:671b",label:"deepseek-v3.1:671b",modalities:{input:["text"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!1,releaseDate:"2025-08-21",lastUpdated:"2026-01-19",openWeights:!0,limit:{context:163840,output:163840}},{id:"deepseek-v3.2",label:"deepseek-v3.2",modalities:{input:["text"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!1,releaseDate:"2025-06-15",lastUpdated:"2026-01-19",openWeights:!0,limit:{context:163840,output:65536}},{id:"deepseek-v4-flash",label:"deepseek-v4-flash",modalities:{input:["text"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!1,releaseDate:"2026-04-24",lastUpdated:"2026-04-24",openWeights:!0,limit:{context:1048576,output:1048576}},{id:"deepseek-v4-pro",label:"deepseek-v4-pro",modalities:{input:["text"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!1,releaseDate:"2026-04-24",lastUpdated:"2026-04-24",openWeights:!0,limit:{context:1048576,output:1048576}},{id:"devstral-2:123b",label:"devstral-2:123b",modalities:{input:["text"],output:["text"]},toolCall:!0,reasoningText:!1,attachment:!1,releaseDate:"2025-12-09",lastUpdated:"2026-01-19",openWeights:!0,limit:{context:262144,output:262144}},{id:"devstral-small-2:24b",label:"devstral-small-2:24b",modalities:{input:["text","image"],output:["text"]},toolCall:!0,reasoningText:!1,attachment:!0,releaseDate:"2025-12-09",lastUpdated:"2026-01-19",openWeights:!0,limit:{context:262144,output:262144}},{id:"gemini-3-flash-preview",ownedBy:"google",label:"gemini-3-flash-preview",modalities:{input:["text","image"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,knowledge:"2025-01",releaseDate:"2025-12-17",lastUpdated:"2026-04-08",openWeights:!0,limit:{context:1048576,output:65536}},{id:"gemma3:12b",label:"gemma3:12b",modalities:{input:["text","image"],output:["text"]},toolCall:!1,reasoningText:!1,attachment:!0,releaseDate:"2024-12-01",lastUpdated:"2026-01-19",openWeights:!0,limit:{context:131072,output:131072}},{id:"gemma3:27b",label:"gemma3:27b",modalities:{input:["text","image"],output:["text"]},toolCall:!1,reasoningText:!1,attachment:!0,releaseDate:"2025-07-27",lastUpdated:"2026-01-19",openWeights:!0,limit:{context:131072,output:131072}},{id:"gemma3:4b",label:"gemma3:4b",modalities:{input:["text","image"],output:["text"]},toolCall:!1,reasoningText:!1,attachment:!0,releaseDate:"2024-12-01",lastUpdated:"2026-01-19",openWeights:!0,limit:{context:131072,output:131072}},{id:"gemma4:31b",label:"gemma4:31b",modalities:{input:["text","image"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,knowledge:"2025-01",releaseDate:"2026-04-02",lastUpdated:"2026-04-08",openWeights:!0,limit:{context:262144,output:262144}},{id:"glm-4.6",ownedBy:"zai",label:"glm-4.6",modalities:{input:["text"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!1,releaseDate:"2025-09-29",lastUpdated:"2026-01-19",openWeights:!0,limit:{context:202752,output:131072}},{id:"glm-4.7",ownedBy:"zai",label:"glm-4.7",modalities:{input:["text"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!1,releaseDate:"2025-12-22",lastUpdated:"2026-01-19",openWeights:!0,limit:{context:202752,output:131072}},{id:"glm-5",ownedBy:"zai",label:"glm-5",modalities:{input:["text"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!1,releaseDate:"2026-02-11",lastUpdated:"2026-02-11",openWeights:!0,limit:{context:202752,output:131072}},{id:"glm-5.1",ownedBy:"zai",label:"glm-5.1",modalities:{input:["text"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!1,releaseDate:"2026-03-27",lastUpdated:"2026-04-07",openWeights:!0,limit:{context:202752,output:131072}},{id:"gpt-oss:120b",ownedBy:"openai",label:"gpt-oss:120b",modalities:{input:["text"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!1,releaseDate:"2025-08-05",lastUpdated:"2026-01-19",openWeights:!0,limit:{context:131072,output:32768}},{id:"gpt-oss:20b",ownedBy:"openai",label:"gpt-oss:20b",modalities:{input:["text"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!1,releaseDate:"2025-08-05",lastUpdated:"2026-01-19",openWeights:!0,limit:{context:131072,output:32768}},{id:"kimi-k2-thinking",ownedBy:"moonshot",label:"kimi-k2-thinking",modalities:{input:["text"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!1,knowledge:"2024-08",releaseDate:"2025-11-06",lastUpdated:"2026-01-19",openWeights:!0,limit:{context:262144,output:262144}},{id:"kimi-k2:1t",ownedBy:"moonshot",label:"kimi-k2:1t",modalities:{input:["text"],output:["text"]},toolCall:!0,reasoningText:!1,attachment:!1,knowledge:"2024-10",releaseDate:"2025-07-11",lastUpdated:"2026-01-19",openWeights:!0,limit:{context:262144,output:262144}},{id:"kimi-k2.5",ownedBy:"moonshot",label:"kimi-k2.5",modalities:{input:["text","image"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,releaseDate:"2026-01-27",lastUpdated:"2026-01-27",openWeights:!0,limit:{context:262144,output:262144}},{id:"kimi-k2.6:cloud",ownedBy:"moonshot",label:"kimi-k2.6:cloud",modalities:{input:["text","image"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,releaseDate:"2026-04-20",lastUpdated:"2026-04-20",openWeights:!0,limit:{context:262144,output:262144}},{id:"minimax-m2",ownedBy:"minimax",label:"minimax-m2",modalities:{input:["text"],output:["text"]},toolCall:!0,reasoningText:!1,attachment:!1,releaseDate:"2025-10-23",lastUpdated:"2026-01-19",openWeights:!0,limit:{context:204800,output:128e3}},{id:"minimax-m2.1",ownedBy:"minimax",label:"minimax-m2.1",modalities:{input:["text"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!1,releaseDate:"2025-12-23",lastUpdated:"2026-01-19",openWeights:!0,limit:{context:204800,output:131072}},{id:"minimax-m2.5",ownedBy:"minimax",label:"minimax-m2.5",modalities:{input:["text"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!1,knowledge:"2025-01",releaseDate:"2026-02-12",lastUpdated:"2026-02-12",openWeights:!0,limit:{context:204800,output:131072}},{id:"minimax-m2.7",ownedBy:"minimax",label:"minimax-m2.7",modalities:{input:["text"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!1,releaseDate:"2026-03-18",lastUpdated:"2026-03-18",openWeights:!0,limit:{context:196608,output:196608}},{id:"ministral-3:14b",label:"ministral-3:14b",modalities:{input:["text","image"],output:["text"]},toolCall:!0,reasoningText:!1,attachment:!0,releaseDate:"2024-12-01",lastUpdated:"2026-01-19",openWeights:!0,limit:{context:262144,output:128e3}},{id:"ministral-3:3b",label:"ministral-3:3b",modalities:{input:["text","image"],output:["text"]},toolCall:!0,reasoningText:!1,attachment:!0,releaseDate:"2024-10-22",lastUpdated:"2026-01-19",openWeights:!0,limit:{context:262144,output:128e3}},{id:"ministral-3:8b",label:"ministral-3:8b",modalities:{input:["text","image"],output:["text"]},toolCall:!0,reasoningText:!1,attachment:!0,releaseDate:"2024-12-01",lastUpdated:"2026-01-19",openWeights:!0,limit:{context:262144,output:128e3}},{id:"mistral-large-3:675b",label:"mistral-large-3:675b",modalities:{input:["text","image"],output:["text"]},toolCall:!0,reasoningText:!1,attachment:!0,releaseDate:"2025-12-02",lastUpdated:"2026-01-19",openWeights:!0,limit:{context:262144,output:262144}},{id:"nemotron-3-nano:30b",label:"nemotron-3-nano:30b",modalities:{input:["text"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!1,releaseDate:"2025-12-15",lastUpdated:"2026-01-19",openWeights:!0,limit:{context:1048576,output:131072}},{id:"nemotron-3-super",label:"nemotron-3-super",modalities:{input:["text"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!1,releaseDate:"2026-03-11",lastUpdated:"2026-03-12",openWeights:!0,limit:{context:262144,output:65536}},{id:"qwen3-coder-next",label:"qwen3-coder-next",modalities:{input:["text"],output:["text"]},toolCall:!0,reasoningText:!1,attachment:!1,releaseDate:"2026-02-02",lastUpdated:"2026-02-08",openWeights:!0,limit:{context:262144,output:65536}},{id:"qwen3-coder:480b",label:"qwen3-coder:480b",modalities:{input:["text"],output:["text"]},toolCall:!0,reasoningText:!1,attachment:!1,releaseDate:"2025-07-22",lastUpdated:"2026-01-19",openWeights:!0,limit:{context:262144,output:65536}},{id:"qwen3-next:80b",label:"qwen3-next:80b",modalities:{input:["text"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!1,releaseDate:"2025-09-15",lastUpdated:"2026-01-19",openWeights:!0,limit:{context:262144,output:32768}},{id:"qwen3-vl:235b",label:"qwen3-vl:235b",modalities:{input:["text","image"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,releaseDate:"2025-09-22",lastUpdated:"2026-01-19",openWeights:!0,limit:{context:262144,output:32768}},{id:"qwen3-vl:235b-instruct",label:"qwen3-vl:235b-instruct",modalities:{input:["text","image"],output:["text"]},toolCall:!0,reasoningText:!1,attachment:!0,releaseDate:"2025-09-22",lastUpdated:"2026-01-19",openWeights:!0,limit:{context:262144,output:131072}},{id:"qwen3.5:397b",label:"qwen3.5:397b",modalities:{input:["text","image"],output:["text"]},toolCall:!0,reasoningText:!0,attachment:!0,releaseDate:"2026-02-15",lastUpdated:"2026-02-17",openWeights:!0,limit:{context:262144,output:65536}},{id:"rnj-1:8b",label:"rnj-1:8b",modalities:{input:["text"],output:["text"]},toolCall:!0,reasoningText:!1,attachment:!1,releaseDate:"2025-12-06",lastUpdated:"2026-01-19",openWeights:!0,limit:{context:32768,output:4096}}],label:"Ollama Cloud",env:["OLLAMA_API_KEY"],npm:"ai-sdk-ollama",api:"https://ollama.com",doc:"https://docs.ollama.com/cloud"}};var di={},ar={},Rl;function mw(){if(Rl)return ar;Rl=1,ar.byteLength=a,ar.toByteArray=l,ar.fromByteArray=E;for(var A=[],e=[],t=typeof Uint8Array<"u"?Uint8Array:Array,s="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",n=0,r=s.length;n<r;++n)A[n]=s[n],e[s.charCodeAt(n)]=n;e[45]=62,e[95]=63;function i(c){var d=c.length;if(d%4>0)throw new Error("Invalid string. Length must be a multiple of 4");var f=c.indexOf("=");f===-1&&(f=d);var p=f===d?0:4-f%4;return[f,p]}function a(c){var d=i(c),f=d[0],p=d[1];return(f+p)*3/4-p}function g(c,d,f){return(d+f)*3/4-f}function l(c){var d,f=i(c),p=f[0],D=f[1],F=new t(g(c,p,D)),k=0,L=D>0?p-4:p,K;for(K=0;K<L;K+=4)d=e[c.charCodeAt(K)]<<18|e[c.charCodeAt(K+1)]<<12|e[c.charCodeAt(K+2)]<<6|e[c.charCodeAt(K+3)],F[k++]=d>>16&255,F[k++]=d>>8&255,F[k++]=d&255;return D===2&&(d=e[c.charCodeAt(K)]<<2|e[c.charCodeAt(K+1)]>>4,F[k++]=d&255),D===1&&(d=e[c.charCodeAt(K)]<<10|e[c.charCodeAt(K+1)]<<4|e[c.charCodeAt(K+2)]>>2,F[k++]=d>>8&255,F[k++]=d&255),F}function B(c){return A[c>>18&63]+A[c>>12&63]+A[c>>6&63]+A[c&63]}function u(c,d,f){for(var p,D=[],F=d;F<f;F+=3)p=(c[F]<<16&16711680)+(c[F+1]<<8&65280)+(c[F+2]&255),D.push(B(p));return D.join("")}function E(c){for(var d,f=c.length,p=f%3,D=[],F=16383,k=0,L=f-p;k<L;k+=F)D.push(u(c,k,k+F>L?L:k+F));return p===1?(d=c[f-1],D.push(A[d>>2]+A[d<<4&63]+"==")):p===2&&(d=(c[f-2]<<8)+c[f-1],D.push(A[d>>10]+A[d>>4&63]+A[d<<2&63]+"=")),D.join("")}return ar}var _r={};var Kl;function ww(){return Kl||(Kl=1,_r.read=function(A,e,t,s,n){var r,i,a=n*8-s-1,g=(1<<a)-1,l=g>>1,B=-7,u=t?n-1:0,E=t?-1:1,c=A[e+u];for(u+=E,r=c&(1<<-B)-1,c>>=-B,B+=a;B>0;r=r*256+A[e+u],u+=E,B-=8);for(i=r&(1<<-B)-1,r>>=-B,B+=s;B>0;i=i*256+A[e+u],u+=E,B-=8);if(r===0)r=1-l;else{if(r===g)return i?NaN:(c?-1:1)*(1/0);i=i+Math.pow(2,s),r=r-l}return(c?-1:1)*i*Math.pow(2,r-s)},_r.write=function(A,e,t,s,n,r){var i,a,g,l=r*8-n-1,B=(1<<l)-1,u=B>>1,E=n===23?Math.pow(2,-24)-Math.pow(2,-77):0,c=s?0:r-1,d=s?1:-1,f=e<0||e===0&&1/e<0?1:0;for(e=Math.abs(e),isNaN(e)||e===1/0?(a=isNaN(e)?1:0,i=B):(i=Math.floor(Math.log(e)/Math.LN2),e*(g=Math.pow(2,-i))<1&&(i--,g*=2),i+u>=1?e+=E/g:e+=E*Math.pow(2,1-u),e*g>=2&&(i++,g/=2),i+u>=B?(a=0,i=B):i+u>=1?(a=(e*g-1)*Math.pow(2,n),i=i+u):(a=e*Math.pow(2,u-1)*Math.pow(2,n),i=0));n>=8;A[t+c]=a&255,c+=d,a/=256,n-=8);for(i=i<<n|a,l+=n;l>0;A[t+c]=i&255,c+=d,i/=256,l-=8);A[t+c-d]|=f*128}),_r}var Ll;function hg(){return Ll||(Ll=1,(function(A){const e=mw(),t=ww(),s=typeof Symbol=="function"&&typeof Symbol.for=="function"?Symbol.for("nodejs.util.inspect.custom"):null;A.Buffer=a,A.SlowBuffer=F,A.INSPECT_MAX_BYTES=50;const n=2147483647;A.kMaxLength=n,a.TYPED_ARRAY_SUPPORT=r(),!a.TYPED_ARRAY_SUPPORT&&typeof console<"u"&&typeof console.error=="function"&&console.error("This browser lacks typed array (Uint8Array) support which is required by `buffer` v5.x. Use `buffer` v4.x if you require old browser support.");function r(){try{const Y=new Uint8Array(1),y={foo:function(){return 42}};return Object.setPrototypeOf(y,Uint8Array.prototype),Object.setPrototypeOf(Y,y),Y.foo()===42}catch{return!1}}Object.defineProperty(a.prototype,"parent",{enumerable:!0,get:function(){if(a.isBuffer(this))return this.buffer}}),Object.defineProperty(a.prototype,"offset",{enumerable:!0,get:function(){if(a.isBuffer(this))return this.byteOffset}});function i(Y){if(Y>n)throw new RangeError('The value "'+Y+'" is invalid for option "size"');const y=new Uint8Array(Y);return Object.setPrototypeOf(y,a.prototype),y}function a(Y,y,M){if(typeof Y=="number"){if(typeof y=="string")throw new TypeError('The "string" argument must be of type string. Received type number');return u(Y)}return g(Y,y,M)}a.poolSize=8192;function g(Y,y,M){if(typeof Y=="string")return E(Y,y);if(ArrayBuffer.isView(Y))return d(Y);if(Y==null)throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof Y);if(it(Y,ArrayBuffer)||Y&&it(Y.buffer,ArrayBuffer)||typeof SharedArrayBuffer<"u"&&(it(Y,SharedArrayBuffer)||Y&&it(Y.buffer,SharedArrayBuffer)))return f(Y,y,M);if(typeof Y=="number")throw new TypeError('The "value" argument must not be of type number. Received type number');const _=Y.valueOf&&Y.valueOf();if(_!=null&&_!==Y)return a.from(_,y,M);const tA=p(Y);if(tA)return tA;if(typeof Symbol<"u"&&Symbol.toPrimitive!=null&&typeof Y[Symbol.toPrimitive]=="function")return a.from(Y[Symbol.toPrimitive]("string"),y,M);throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof Y)}a.from=function(Y,y,M){return g(Y,y,M)},Object.setPrototypeOf(a.prototype,Uint8Array.prototype),Object.setPrototypeOf(a,Uint8Array);function l(Y){if(typeof Y!="number")throw new TypeError('"size" argument must be of type number');if(Y<0)throw new RangeError('The value "'+Y+'" is invalid for option "size"')}function B(Y,y,M){return l(Y),Y<=0?i(Y):y!==void 0?typeof M=="string"?i(Y).fill(y,M):i(Y).fill(y):i(Y)}a.alloc=function(Y,y,M){return B(Y,y,M)};function u(Y){return l(Y),i(Y<0?0:D(Y)|0)}a.allocUnsafe=function(Y){return u(Y)},a.allocUnsafeSlow=function(Y){return u(Y)};function E(Y,y){if((typeof y!="string"||y==="")&&(y="utf8"),!a.isEncoding(y))throw new TypeError("Unknown encoding: "+y);const M=k(Y,y)|0;let _=i(M);const tA=_.write(Y,y);return tA!==M&&(_=_.slice(0,tA)),_}function c(Y){const y=Y.length<0?0:D(Y.length)|0,M=i(y);for(let _=0;_<y;_+=1)M[_]=Y[_]&255;return M}function d(Y){if(it(Y,Uint8Array)){const y=new Uint8Array(Y);return f(y.buffer,y.byteOffset,y.byteLength)}return c(Y)}function f(Y,y,M){if(y<0||Y.byteLength<y)throw new RangeError('"offset" is outside of buffer bounds');if(Y.byteLength<y+(M||0))throw new RangeError('"length" is outside of buffer bounds');let _;return y===void 0&&M===void 0?_=new Uint8Array(Y):M===void 0?_=new Uint8Array(Y,y):_=new Uint8Array(Y,y,M),Object.setPrototypeOf(_,a.prototype),_}function p(Y){if(a.isBuffer(Y)){const y=D(Y.length)|0,M=i(y);return M.length===0||Y.copy(M,0,0,y),M}if(Y.length!==void 0)return typeof Y.length!="number"||Ke(Y.length)?i(0):c(Y);if(Y.type==="Buffer"&&Array.isArray(Y.data))return c(Y.data)}function D(Y){if(Y>=n)throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+n.toString(16)+" bytes");return Y|0}function F(Y){return+Y!=Y&&(Y=0),a.alloc(+Y)}a.isBuffer=function(y){return y!=null&&y._isBuffer===!0&&y!==a.prototype},a.compare=function(y,M){if(it(y,Uint8Array)&&(y=a.from(y,y.offset,y.byteLength)),it(M,Uint8Array)&&(M=a.from(M,M.offset,M.byteLength)),!a.isBuffer(y)||!a.isBuffer(M))throw new TypeError('The "buf1", "buf2" arguments must be one of type Buffer or Uint8Array');if(y===M)return 0;let _=y.length,tA=M.length;for(let aA=0,EA=Math.min(_,tA);aA<EA;++aA)if(y[aA]!==M[aA]){_=y[aA],tA=M[aA];break}return _<tA?-1:tA<_?1:0},a.isEncoding=function(y){switch(String(y).toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"latin1":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return!0;default:return!1}},a.concat=function(y,M){if(!Array.isArray(y))throw new TypeError('"list" argument must be an Array of Buffers');if(y.length===0)return a.alloc(0);let _;if(M===void 0)for(M=0,_=0;_<y.length;++_)M+=y[_].length;const tA=a.allocUnsafe(M);let aA=0;for(_=0;_<y.length;++_){let EA=y[_];if(it(EA,Uint8Array))aA+EA.length>tA.length?(a.isBuffer(EA)||(EA=a.from(EA)),EA.copy(tA,aA)):Uint8Array.prototype.set.call(tA,EA,aA);else if(a.isBuffer(EA))EA.copy(tA,aA);else throw new TypeError('"list" argument must be an Array of Buffers');aA+=EA.length}return tA};function k(Y,y){if(a.isBuffer(Y))return Y.length;if(ArrayBuffer.isView(Y)||it(Y,ArrayBuffer))return Y.byteLength;if(typeof Y!="string")throw new TypeError('The "string" argument must be one of type string, Buffer, or ArrayBuffer. Received type '+typeof Y);const M=Y.length,_=arguments.length>2&&arguments[2]===!0;if(!_&&M===0)return 0;let tA=!1;for(;;)switch(y){case"ascii":case"latin1":case"binary":return M;case"utf8":case"utf-8":return ZA(Y).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return M*2;case"hex":return M>>>1;case"base64":return me(Y).length;default:if(tA)return _?-1:ZA(Y).length;y=(""+y).toLowerCase(),tA=!0}}a.byteLength=k;function L(Y,y,M){let _=!1;if((y===void 0||y<0)&&(y=0),y>this.length||((M===void 0||M>this.length)&&(M=this.length),M<=0)||(M>>>=0,y>>>=0,M<=y))return"";for(Y||(Y="utf8");;)switch(Y){case"hex":return q(this,y,M);case"utf8":case"utf-8":return Q(this,y,M);case"ascii":return G(this,y,M);case"latin1":case"binary":return J(this,y,M);case"base64":return x(this,y,M);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return j(this,y,M);default:if(_)throw new TypeError("Unknown encoding: "+Y);Y=(Y+"").toLowerCase(),_=!0}}a.prototype._isBuffer=!0;function K(Y,y,M){const _=Y[y];Y[y]=Y[M],Y[M]=_}a.prototype.swap16=function(){const y=this.length;if(y%2!==0)throw new RangeError("Buffer size must be a multiple of 16-bits");for(let M=0;M<y;M+=2)K(this,M,M+1);return this},a.prototype.swap32=function(){const y=this.length;if(y%4!==0)throw new RangeError("Buffer size must be a multiple of 32-bits");for(let M=0;M<y;M+=4)K(this,M,M+3),K(this,M+1,M+2);return this},a.prototype.swap64=function(){const y=this.length;if(y%8!==0)throw new RangeError("Buffer size must be a multiple of 64-bits");for(let M=0;M<y;M+=8)K(this,M,M+7),K(this,M+1,M+6),K(this,M+2,M+5),K(this,M+3,M+4);return this},a.prototype.toString=function(){const y=this.length;return y===0?"":arguments.length===0?Q(this,0,y):L.apply(this,arguments)},a.prototype.toLocaleString=a.prototype.toString,a.prototype.equals=function(y){if(!a.isBuffer(y))throw new TypeError("Argument must be a Buffer");return this===y?!0:a.compare(this,y)===0},a.prototype.inspect=function(){let y="";const M=A.INSPECT_MAX_BYTES;return y=this.toString("hex",0,M).replace(/(.{2})/g,"$1 ").trim(),this.length>M&&(y+=" ... "),"<Buffer "+y+">"},s&&(a.prototype[s]=a.prototype.inspect),a.prototype.compare=function(y,M,_,tA,aA){if(it(y,Uint8Array)&&(y=a.from(y,y.offset,y.byteLength)),!a.isBuffer(y))throw new TypeError('The "target" argument must be one of type Buffer or Uint8Array. Received type '+typeof y);if(M===void 0&&(M=0),_===void 0&&(_=y?y.length:0),tA===void 0&&(tA=0),aA===void 0&&(aA=this.length),M<0||_>y.length||tA<0||aA>this.length)throw new RangeError("out of range index");if(tA>=aA&&M>=_)return 0;if(tA>=aA)return-1;if(M>=_)return 1;if(M>>>=0,_>>>=0,tA>>>=0,aA>>>=0,this===y)return 0;let EA=aA-tA,_A=_-M;const zA=Math.min(EA,_A),XA=this.slice(tA,aA),Ge=y.slice(M,_);for(let VA=0;VA<zA;++VA)if(XA[VA]!==Ge[VA]){EA=XA[VA],_A=Ge[VA];break}return EA<_A?-1:_A<EA?1:0};function W(Y,y,M,_,tA){if(Y.length===0)return-1;if(typeof M=="string"?(_=M,M=0):M>2147483647?M=2147483647:M<-2147483648&&(M=-2147483648),M=+M,Ke(M)&&(M=tA?0:Y.length-1),M<0&&(M=Y.length+M),M>=Y.length){if(tA)return-1;M=Y.length-1}else if(M<0)if(tA)M=0;else return-1;if(typeof y=="string"&&(y=a.from(y,_)),a.isBuffer(y))return y.length===0?-1:$(Y,y,M,_,tA);if(typeof y=="number")return y=y&255,typeof Uint8Array.prototype.indexOf=="function"?tA?Uint8Array.prototype.indexOf.call(Y,y,M):Uint8Array.prototype.lastIndexOf.call(Y,y,M):$(Y,[y],M,_,tA);throw new TypeError("val must be string, number or Buffer")}function $(Y,y,M,_,tA){let aA=1,EA=Y.length,_A=y.length;if(_!==void 0&&(_=String(_).toLowerCase(),_==="ucs2"||_==="ucs-2"||_==="utf16le"||_==="utf-16le")){if(Y.length<2||y.length<2)return-1;aA=2,EA/=2,_A/=2,M/=2}function zA(Ge,VA){return aA===1?Ge[VA]:Ge.readUInt16BE(VA*aA)}let XA;if(tA){let Ge=-1;for(XA=M;XA<EA;XA++)if(zA(Y,XA)===zA(y,Ge===-1?0:XA-Ge)){if(Ge===-1&&(Ge=XA),XA-Ge+1===_A)return Ge*aA}else Ge!==-1&&(XA-=XA-Ge),Ge=-1}else for(M+_A>EA&&(M=EA-_A),XA=M;XA>=0;XA--){let Ge=!0;for(let VA=0;VA<_A;VA++)if(zA(Y,XA+VA)!==zA(y,VA)){Ge=!1;break}if(Ge)return XA}return-1}a.prototype.includes=function(y,M,_){return this.indexOf(y,M,_)!==-1},a.prototype.indexOf=function(y,M,_){return W(this,y,M,_,!0)},a.prototype.lastIndexOf=function(y,M,_){return W(this,y,M,_,!1)};function X(Y,y,M,_){M=Number(M)||0;const tA=Y.length-M;_?(_=Number(_),_>tA&&(_=tA)):_=tA;const aA=y.length;_>aA/2&&(_=aA/2);let EA;for(EA=0;EA<_;++EA){const _A=parseInt(y.substr(EA*2,2),16);if(Ke(_A))return EA;Y[M+EA]=_A}return EA}function U(Y,y,M,_){return Re(ZA(y,Y.length-M),Y,M,_)}function O(Y,y,M,_){return Re(fe(y),Y,M,_)}function T(Y,y,M,_){return Re(me(y),Y,M,_)}function H(Y,y,M,_){return Re(He(y,Y.length-M),Y,M,_)}a.prototype.write=function(y,M,_,tA){if(M===void 0)tA="utf8",_=this.length,M=0;else if(_===void 0&&typeof M=="string")tA=M,_=this.length,M=0;else if(isFinite(M))M=M>>>0,isFinite(_)?(_=_>>>0,tA===void 0&&(tA="utf8")):(tA=_,_=void 0);else throw new Error("Buffer.write(string, encoding, offset[, length]) is no longer supported");const aA=this.length-M;if((_===void 0||_>aA)&&(_=aA),y.length>0&&(_<0||M<0)||M>this.length)throw new RangeError("Attempt to write outside buffer bounds");tA||(tA="utf8");let EA=!1;for(;;)switch(tA){case"hex":return X(this,y,M,_);case"utf8":case"utf-8":return U(this,y,M,_);case"ascii":case"latin1":case"binary":return O(this,y,M,_);case"base64":return T(this,y,M,_);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return H(this,y,M,_);default:if(EA)throw new TypeError("Unknown encoding: "+tA);tA=(""+tA).toLowerCase(),EA=!0}},a.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};function x(Y,y,M){return y===0&&M===Y.length?e.fromByteArray(Y):e.fromByteArray(Y.slice(y,M))}function Q(Y,y,M){M=Math.min(Y.length,M);const _=[];let tA=y;for(;tA<M;){const aA=Y[tA];let EA=null,_A=aA>239?4:aA>223?3:aA>191?2:1;if(tA+_A<=M){let zA,XA,Ge,VA;switch(_A){case 1:aA<128&&(EA=aA);break;case 2:zA=Y[tA+1],(zA&192)===128&&(VA=(aA&31)<<6|zA&63,VA>127&&(EA=VA));break;case 3:zA=Y[tA+1],XA=Y[tA+2],(zA&192)===128&&(XA&192)===128&&(VA=(aA&15)<<12|(zA&63)<<6|XA&63,VA>2047&&(VA<55296||VA>57343)&&(EA=VA));break;case 4:zA=Y[tA+1],XA=Y[tA+2],Ge=Y[tA+3],(zA&192)===128&&(XA&192)===128&&(Ge&192)===128&&(VA=(aA&15)<<18|(zA&63)<<12|(XA&63)<<6|Ge&63,VA>65535&&VA<1114112&&(EA=VA))}}EA===null?(EA=65533,_A=1):EA>65535&&(EA-=65536,_.push(EA>>>10&1023|55296),EA=56320|EA&1023),_.push(EA),tA+=_A}return N(_)}const I=4096;function N(Y){const y=Y.length;if(y<=I)return String.fromCharCode.apply(String,Y);let M="",_=0;for(;_<y;)M+=String.fromCharCode.apply(String,Y.slice(_,_+=I));return M}function G(Y,y,M){let _="";M=Math.min(Y.length,M);for(let tA=y;tA<M;++tA)_+=String.fromCharCode(Y[tA]&127);return _}function J(Y,y,M){let _="";M=Math.min(Y.length,M);for(let tA=y;tA<M;++tA)_+=String.fromCharCode(Y[tA]);return _}function q(Y,y,M){const _=Y.length;(!y||y<0)&&(y=0),(!M||M<0||M>_)&&(M=_);let tA="";for(let aA=y;aA<M;++aA)tA+=NA[Y[aA]];return tA}function j(Y,y,M){const _=Y.slice(y,M);let tA="";for(let aA=0;aA<_.length-1;aA+=2)tA+=String.fromCharCode(_[aA]+_[aA+1]*256);return tA}a.prototype.slice=function(y,M){const _=this.length;y=~~y,M=M===void 0?_:~~M,y<0?(y+=_,y<0&&(y=0)):y>_&&(y=_),M<0?(M+=_,M<0&&(M=0)):M>_&&(M=_),M<y&&(M=y);const tA=this.subarray(y,M);return Object.setPrototypeOf(tA,a.prototype),tA};function R(Y,y,M){if(Y%1!==0||Y<0)throw new RangeError("offset is not uint");if(Y+y>M)throw new RangeError("Trying to access beyond buffer length")}a.prototype.readUintLE=a.prototype.readUIntLE=function(y,M,_){y=y>>>0,M=M>>>0,_||R(y,M,this.length);let tA=this[y],aA=1,EA=0;for(;++EA<M&&(aA*=256);)tA+=this[y+EA]*aA;return tA},a.prototype.readUintBE=a.prototype.readUIntBE=function(y,M,_){y=y>>>0,M=M>>>0,_||R(y,M,this.length);let tA=this[y+--M],aA=1;for(;M>0&&(aA*=256);)tA+=this[y+--M]*aA;return tA},a.prototype.readUint8=a.prototype.readUInt8=function(y,M){return y=y>>>0,M||R(y,1,this.length),this[y]},a.prototype.readUint16LE=a.prototype.readUInt16LE=function(y,M){return y=y>>>0,M||R(y,2,this.length),this[y]|this[y+1]<<8},a.prototype.readUint16BE=a.prototype.readUInt16BE=function(y,M){return y=y>>>0,M||R(y,2,this.length),this[y]<<8|this[y+1]},a.prototype.readUint32LE=a.prototype.readUInt32LE=function(y,M){return y=y>>>0,M||R(y,4,this.length),(this[y]|this[y+1]<<8|this[y+2]<<16)+this[y+3]*16777216},a.prototype.readUint32BE=a.prototype.readUInt32BE=function(y,M){return y=y>>>0,M||R(y,4,this.length),this[y]*16777216+(this[y+1]<<16|this[y+2]<<8|this[y+3])},a.prototype.readBigUInt64LE=Ie(function(y){y=y>>>0,qA(y,"offset");const M=this[y],_=this[y+7];(M===void 0||_===void 0)&&PA(y,this.length-8);const tA=M+this[++y]*2**8+this[++y]*2**16+this[++y]*2**24,aA=this[++y]+this[++y]*2**8+this[++y]*2**16+_*2**24;return BigInt(tA)+(BigInt(aA)<<BigInt(32))}),a.prototype.readBigUInt64BE=Ie(function(y){y=y>>>0,qA(y,"offset");const M=this[y],_=this[y+7];(M===void 0||_===void 0)&&PA(y,this.length-8);const tA=M*2**24+this[++y]*2**16+this[++y]*2**8+this[++y],aA=this[++y]*2**24+this[++y]*2**16+this[++y]*2**8+_;return(BigInt(tA)<<BigInt(32))+BigInt(aA)}),a.prototype.readIntLE=function(y,M,_){y=y>>>0,M=M>>>0,_||R(y,M,this.length);let tA=this[y],aA=1,EA=0;for(;++EA<M&&(aA*=256);)tA+=this[y+EA]*aA;return aA*=128,tA>=aA&&(tA-=Math.pow(2,8*M)),tA},a.prototype.readIntBE=function(y,M,_){y=y>>>0,M=M>>>0,_||R(y,M,this.length);let tA=M,aA=1,EA=this[y+--tA];for(;tA>0&&(aA*=256);)EA+=this[y+--tA]*aA;return aA*=128,EA>=aA&&(EA-=Math.pow(2,8*M)),EA},a.prototype.readInt8=function(y,M){return y=y>>>0,M||R(y,1,this.length),this[y]&128?(255-this[y]+1)*-1:this[y]},a.prototype.readInt16LE=function(y,M){y=y>>>0,M||R(y,2,this.length);const _=this[y]|this[y+1]<<8;return _&32768?_|4294901760:_},a.prototype.readInt16BE=function(y,M){y=y>>>0,M||R(y,2,this.length);const _=this[y+1]|this[y]<<8;return _&32768?_|4294901760:_},a.prototype.readInt32LE=function(y,M){return y=y>>>0,M||R(y,4,this.length),this[y]|this[y+1]<<8|this[y+2]<<16|this[y+3]<<24},a.prototype.readInt32BE=function(y,M){return y=y>>>0,M||R(y,4,this.length),this[y]<<24|this[y+1]<<16|this[y+2]<<8|this[y+3]},a.prototype.readBigInt64LE=Ie(function(y){y=y>>>0,qA(y,"offset");const M=this[y],_=this[y+7];(M===void 0||_===void 0)&&PA(y,this.length-8);const tA=this[y+4]+this[y+5]*2**8+this[y+6]*2**16+(_<<24);return(BigInt(tA)<<BigInt(32))+BigInt(M+this[++y]*2**8+this[++y]*2**16+this[++y]*2**24)}),a.prototype.readBigInt64BE=Ie(function(y){y=y>>>0,qA(y,"offset");const M=this[y],_=this[y+7];(M===void 0||_===void 0)&&PA(y,this.length-8);const tA=(M<<24)+this[++y]*2**16+this[++y]*2**8+this[++y];return(BigInt(tA)<<BigInt(32))+BigInt(this[++y]*2**24+this[++y]*2**16+this[++y]*2**8+_)}),a.prototype.readFloatLE=function(y,M){return y=y>>>0,M||R(y,4,this.length),t.read(this,y,!0,23,4)},a.prototype.readFloatBE=function(y,M){return y=y>>>0,M||R(y,4,this.length),t.read(this,y,!1,23,4)},a.prototype.readDoubleLE=function(y,M){return y=y>>>0,M||R(y,8,this.length),t.read(this,y,!0,52,8)},a.prototype.readDoubleBE=function(y,M){return y=y>>>0,M||R(y,8,this.length),t.read(this,y,!1,52,8)};function C(Y,y,M,_,tA,aA){if(!a.isBuffer(Y))throw new TypeError('"buffer" argument must be a Buffer instance');if(y>tA||y<aA)throw new RangeError('"value" argument is out of bounds');if(M+_>Y.length)throw new RangeError("Index out of range")}a.prototype.writeUintLE=a.prototype.writeUIntLE=function(y,M,_,tA){if(y=+y,M=M>>>0,_=_>>>0,!tA){const _A=Math.pow(2,8*_)-1;C(this,y,M,_,_A,0)}let aA=1,EA=0;for(this[M]=y&255;++EA<_&&(aA*=256);)this[M+EA]=y/aA&255;return M+_},a.prototype.writeUintBE=a.prototype.writeUIntBE=function(y,M,_,tA){if(y=+y,M=M>>>0,_=_>>>0,!tA){const _A=Math.pow(2,8*_)-1;C(this,y,M,_,_A,0)}let aA=_-1,EA=1;for(this[M+aA]=y&255;--aA>=0&&(EA*=256);)this[M+aA]=y/EA&255;return M+_},a.prototype.writeUint8=a.prototype.writeUInt8=function(y,M,_){return y=+y,M=M>>>0,_||C(this,y,M,1,255,0),this[M]=y&255,M+1},a.prototype.writeUint16LE=a.prototype.writeUInt16LE=function(y,M,_){return y=+y,M=M>>>0,_||C(this,y,M,2,65535,0),this[M]=y&255,this[M+1]=y>>>8,M+2},a.prototype.writeUint16BE=a.prototype.writeUInt16BE=function(y,M,_){return y=+y,M=M>>>0,_||C(this,y,M,2,65535,0),this[M]=y>>>8,this[M+1]=y&255,M+2},a.prototype.writeUint32LE=a.prototype.writeUInt32LE=function(y,M,_){return y=+y,M=M>>>0,_||C(this,y,M,4,4294967295,0),this[M+3]=y>>>24,this[M+2]=y>>>16,this[M+1]=y>>>8,this[M]=y&255,M+4},a.prototype.writeUint32BE=a.prototype.writeUInt32BE=function(y,M,_){return y=+y,M=M>>>0,_||C(this,y,M,4,4294967295,0),this[M]=y>>>24,this[M+1]=y>>>16,this[M+2]=y>>>8,this[M+3]=y&255,M+4};function h(Y,y,M,_,tA){QA(y,_,tA,Y,M,7);let aA=Number(y&BigInt(4294967295));Y[M++]=aA,aA=aA>>8,Y[M++]=aA,aA=aA>>8,Y[M++]=aA,aA=aA>>8,Y[M++]=aA;let EA=Number(y>>BigInt(32)&BigInt(4294967295));return Y[M++]=EA,EA=EA>>8,Y[M++]=EA,EA=EA>>8,Y[M++]=EA,EA=EA>>8,Y[M++]=EA,M}function v(Y,y,M,_,tA){QA(y,_,tA,Y,M,7);let aA=Number(y&BigInt(4294967295));Y[M+7]=aA,aA=aA>>8,Y[M+6]=aA,aA=aA>>8,Y[M+5]=aA,aA=aA>>8,Y[M+4]=aA;let EA=Number(y>>BigInt(32)&BigInt(4294967295));return Y[M+3]=EA,EA=EA>>8,Y[M+2]=EA,EA=EA>>8,Y[M+1]=EA,EA=EA>>8,Y[M]=EA,M+8}a.prototype.writeBigUInt64LE=Ie(function(y,M=0){return h(this,y,M,BigInt(0),BigInt("0xffffffffffffffff"))}),a.prototype.writeBigUInt64BE=Ie(function(y,M=0){return v(this,y,M,BigInt(0),BigInt("0xffffffffffffffff"))}),a.prototype.writeIntLE=function(y,M,_,tA){if(y=+y,M=M>>>0,!tA){const zA=Math.pow(2,8*_-1);C(this,y,M,_,zA-1,-zA)}let aA=0,EA=1,_A=0;for(this[M]=y&255;++aA<_&&(EA*=256);)y<0&&_A===0&&this[M+aA-1]!==0&&(_A=1),this[M+aA]=(y/EA>>0)-_A&255;return M+_},a.prototype.writeIntBE=function(y,M,_,tA){if(y=+y,M=M>>>0,!tA){const zA=Math.pow(2,8*_-1);C(this,y,M,_,zA-1,-zA)}let aA=_-1,EA=1,_A=0;for(this[M+aA]=y&255;--aA>=0&&(EA*=256);)y<0&&_A===0&&this[M+aA+1]!==0&&(_A=1),this[M+aA]=(y/EA>>0)-_A&255;return M+_},a.prototype.writeInt8=function(y,M,_){return y=+y,M=M>>>0,_||C(this,y,M,1,127,-128),y<0&&(y=255+y+1),this[M]=y&255,M+1},a.prototype.writeInt16LE=function(y,M,_){return y=+y,M=M>>>0,_||C(this,y,M,2,32767,-32768),this[M]=y&255,this[M+1]=y>>>8,M+2},a.prototype.writeInt16BE=function(y,M,_){return y=+y,M=M>>>0,_||C(this,y,M,2,32767,-32768),this[M]=y>>>8,this[M+1]=y&255,M+2},a.prototype.writeInt32LE=function(y,M,_){return y=+y,M=M>>>0,_||C(this,y,M,4,2147483647,-2147483648),this[M]=y&255,this[M+1]=y>>>8,this[M+2]=y>>>16,this[M+3]=y>>>24,M+4},a.prototype.writeInt32BE=function(y,M,_){return y=+y,M=M>>>0,_||C(this,y,M,4,2147483647,-2147483648),y<0&&(y=4294967295+y+1),this[M]=y>>>24,this[M+1]=y>>>16,this[M+2]=y>>>8,this[M+3]=y&255,M+4},a.prototype.writeBigInt64LE=Ie(function(y,M=0){return h(this,y,M,-BigInt("0x8000000000000000"),BigInt("0x7fffffffffffffff"))}),a.prototype.writeBigInt64BE=Ie(function(y,M=0){return v(this,y,M,-BigInt("0x8000000000000000"),BigInt("0x7fffffffffffffff"))});function S(Y,y,M,_,tA,aA){if(M+_>Y.length)throw new RangeError("Index out of range");if(M<0)throw new RangeError("Index out of range")}function Z(Y,y,M,_,tA){return y=+y,M=M>>>0,tA||S(Y,y,M,4),t.write(Y,y,M,_,23,4),M+4}a.prototype.writeFloatLE=function(y,M,_){return Z(this,y,M,!0,_)},a.prototype.writeFloatBE=function(y,M,_){return Z(this,y,M,!1,_)};function eA(Y,y,M,_,tA){return y=+y,M=M>>>0,tA||S(Y,y,M,8),t.write(Y,y,M,_,52,8),M+8}a.prototype.writeDoubleLE=function(y,M,_){return eA(this,y,M,!0,_)},a.prototype.writeDoubleBE=function(y,M,_){return eA(this,y,M,!1,_)},a.prototype.copy=function(y,M,_,tA){if(!a.isBuffer(y))throw new TypeError("argument should be a Buffer");if(_||(_=0),!tA&&tA!==0&&(tA=this.length),M>=y.length&&(M=y.length),M||(M=0),tA>0&&tA<_&&(tA=_),tA===_||y.length===0||this.length===0)return 0;if(M<0)throw new RangeError("targetStart out of bounds");if(_<0||_>=this.length)throw new RangeError("Index out of range");if(tA<0)throw new RangeError("sourceEnd out of bounds");tA>this.length&&(tA=this.length),y.length-M<tA-_&&(tA=y.length-M+_);const aA=tA-_;return this===y&&typeof Uint8Array.prototype.copyWithin=="function"?this.copyWithin(M,_,tA):Uint8Array.prototype.set.call(y,this.subarray(_,tA),M),aA},a.prototype.fill=function(y,M,_,tA){if(typeof y=="string"){if(typeof M=="string"?(tA=M,M=0,_=this.length):typeof _=="string"&&(tA=_,_=this.length),tA!==void 0&&typeof tA!="string")throw new TypeError("encoding must be a string");if(typeof tA=="string"&&!a.isEncoding(tA))throw new TypeError("Unknown encoding: "+tA);if(y.length===1){const EA=y.charCodeAt(0);(tA==="utf8"&&EA<128||tA==="latin1")&&(y=EA)}}else typeof y=="number"?y=y&255:typeof y=="boolean"&&(y=Number(y));if(M<0||this.length<M||this.length<_)throw new RangeError("Out of range index");if(_<=M)return this;M=M>>>0,_=_===void 0?this.length:_>>>0,y||(y=0);let aA;if(typeof y=="number")for(aA=M;aA<_;++aA)this[aA]=y;else{const EA=a.isBuffer(y)?y:a.from(y,tA),_A=EA.length;if(_A===0)throw new TypeError('The value "'+y+'" is invalid for argument "value"');for(aA=0;aA<_-M;++aA)this[aA+M]=EA[aA%_A]}return this};const rA={};function sA(Y,y,M){rA[Y]=class extends M{constructor(){super(),Object.defineProperty(this,"message",{value:y.apply(this,arguments),writable:!0,configurable:!0}),this.name=`${this.name} [${Y}]`,this.stack,delete this.name}get code(){return Y}set code(tA){Object.defineProperty(this,"code",{configurable:!0,enumerable:!0,value:tA,writable:!0})}toString(){return`${this.name} [${Y}]: ${this.message}`}}}sA("ERR_BUFFER_OUT_OF_BOUNDS",function(Y){return Y?`${Y} is outside of buffer bounds`:"Attempt to access memory outside buffer bounds"},RangeError),sA("ERR_INVALID_ARG_TYPE",function(Y,y){return`The "${Y}" argument must be of type number. Received type ${typeof y}`},TypeError),sA("ERR_OUT_OF_RANGE",function(Y,y,M){let _=`The value of "${Y}" is out of range.`,tA=M;return Number.isInteger(M)&&Math.abs(M)>2**32?tA=bA(String(M)):typeof M=="bigint"&&(tA=String(M),(M>BigInt(2)**BigInt(32)||M<-(BigInt(2)**BigInt(32)))&&(tA=bA(tA)),tA+="n"),_+=` It must be ${y}. Received ${tA}`,_},RangeError);function bA(Y){let y="",M=Y.length;const _=Y[0]==="-"?1:0;for(;M>=_+4;M-=3)y=`_${Y.slice(M-3,M)}${y}`;return`${Y.slice(0,M)}${y}`}function LA(Y,y,M){qA(y,"offset"),(Y[y]===void 0||Y[y+M]===void 0)&&PA(y,Y.length-(M+1))}function QA(Y,y,M,_,tA,aA){if(Y>M||Y<y){const EA=typeof y=="bigint"?"n":"";let _A;throw y===0||y===BigInt(0)?_A=`>= 0${EA} and < 2${EA} ** ${(aA+1)*8}${EA}`:_A=`>= -(2${EA} ** ${(aA+1)*8-1}${EA}) and < 2 ** ${(aA+1)*8-1}${EA}`,new rA.ERR_OUT_OF_RANGE("value",_A,Y)}LA(_,tA,aA)}function qA(Y,y){if(typeof Y!="number")throw new rA.ERR_INVALID_ARG_TYPE(y,"number",Y)}function PA(Y,y,M){throw Math.floor(Y)!==Y?(qA(Y,M),new rA.ERR_OUT_OF_RANGE("offset","an integer",Y)):y<0?new rA.ERR_BUFFER_OUT_OF_BOUNDS:new rA.ERR_OUT_OF_RANGE("offset",`>= 0 and <= ${y}`,Y)}const Ce=/[^+/0-9A-Za-z-_]/g;function MA(Y){if(Y=Y.split("=")[0],Y=Y.trim().replace(Ce,""),Y.length<2)return"";for(;Y.length%4!==0;)Y=Y+"=";return Y}function ZA(Y,y){y=y||1/0;let M;const _=Y.length;let tA=null;const aA=[];for(let EA=0;EA<_;++EA){if(M=Y.charCodeAt(EA),M>55295&&M<57344){if(!tA){if(M>56319){(y-=3)>-1&&aA.push(239,191,189);continue}else if(EA+1===_){(y-=3)>-1&&aA.push(239,191,189);continue}tA=M;continue}if(M<56320){(y-=3)>-1&&aA.push(239,191,189),tA=M;continue}M=(tA-55296<<10|M-56320)+65536}else tA&&(y-=3)>-1&&aA.push(239,191,189);if(tA=null,M<128){if((y-=1)<0)break;aA.push(M)}else if(M<2048){if((y-=2)<0)break;aA.push(M>>6|192,M&63|128)}else if(M<65536){if((y-=3)<0)break;aA.push(M>>12|224,M>>6&63|128,M&63|128)}else if(M<1114112){if((y-=4)<0)break;aA.push(M>>18|240,M>>12&63|128,M>>6&63|128,M&63|128)}else throw new Error("Invalid code point")}return aA}function fe(Y){const y=[];for(let M=0;M<Y.length;++M)y.push(Y.charCodeAt(M)&255);return y}function He(Y,y){let M,_,tA;const aA=[];for(let EA=0;EA<Y.length&&!((y-=2)<0);++EA)M=Y.charCodeAt(EA),_=M>>8,tA=M%256,aA.push(tA),aA.push(_);return aA}function me(Y){return e.toByteArray(MA(Y))}function Re(Y,y,M,_){let tA;for(tA=0;tA<_&&!(tA+M>=y.length||tA>=Y.length);++tA)y[tA+M]=Y[tA];return tA}function it(Y,y){return Y instanceof y||Y!=null&&Y.constructor!=null&&Y.constructor.name!=null&&Y.constructor.name===y.name}function Ke(Y){return Y!==Y}const NA=(function(){const Y="0123456789abcdef",y=new Array(256);for(let M=0;M<16;++M){const _=M*16;for(let tA=0;tA<16;++tA)y[_+tA]=Y[M]+Y[tA]}return y})();function Ie(Y){return typeof BigInt>"u"?WA:Y}function WA(){throw new Error("BigInt not supported")}})(di)),di}var xt=hg();const vs=typeof globalThis=="object"&&"crypto"in globalThis?globalThis.crypto:void 0;function Jr(A){return A instanceof Uint8Array||ArrayBuffer.isView(A)&&A.constructor.name==="Uint8Array"}function ma(A){if(!Number.isSafeInteger(A)||A<0)throw new Error("positive integer expected, got "+A)}function Ds(A,...e){if(!Jr(A))throw new Error("Uint8Array expected");if(e.length>0&&!e.includes(A.length))throw new Error("Uint8Array expected of length "+e+", got length="+A.length)}function hc(A){if(typeof A!="function"||typeof A.create!="function")throw new Error("Hash should be wrapped by utils.createHasher");ma(A.outputLen),ma(A.blockLen)}function wn(A,e=!0){if(A.destroyed)throw new Error("Hash instance has been destroyed");if(e&&A.finished)throw new Error("Hash#digest() has already been called")}function xw(A,e){Ds(A);const t=e.outputLen;if(A.length<t)throw new Error("digestInto() expects output buffer of length at least "+t)}function Hs(...A){for(let e=0;e<A.length;e++)A[e].fill(0)}function hi(A){return new DataView(A.buffer,A.byteOffset,A.byteLength)}function Mo(A,e){return A<<32-e|A>>>e}const pc=typeof Uint8Array.from([]).toHex=="function"&&typeof Uint8Array.fromHex=="function",Dw=Array.from({length:256},(A,e)=>e.toString(16).padStart(2,"0"));function ps(A){if(Ds(A),pc)return A.toHex();let e="";for(let t=0;t<A.length;t++)e+=Dw[A[t]];return e}const jo={_0:48,_9:57,A:65,F:70,a:97,f:102};function Jl(A){if(A>=jo._0&&A<=jo._9)return A-jo._0;if(A>=jo.A&&A<=jo.F)return A-(jo.A-10);if(A>=jo.a&&A<=jo.f)return A-(jo.a-10)}function xn(A){if(typeof A!="string")throw new Error("hex string expected, got "+typeof A);if(pc)return Uint8Array.fromHex(A);const e=A.length,t=e/2;if(e%2)throw new Error("hex string expected, got unpadded hex of length "+e);const s=new Uint8Array(t);for(let n=0,r=0;n<t;n++,r+=2){const i=Jl(A.charCodeAt(r)),a=Jl(A.charCodeAt(r+1));if(i===void 0||a===void 0){const g=A[r]+A[r+1];throw new Error('hex string expected, got non-hex character "'+g+'" at index '+r)}s[n]=i*16+a}return s}function yw(A){if(typeof A!="string")throw new Error("string expected");return new Uint8Array(new TextEncoder().encode(A))}function pg(A){return typeof A=="string"&&(A=yw(A)),Ds(A),A}function bo(...A){let e=0;for(let s=0;s<A.length;s++){const n=A[s];Ds(n),e+=n.length}const t=new Uint8Array(e);for(let s=0,n=0;s<A.length;s++){const r=A[s];t.set(r,n),n+=r.length}return t}class fc{}function mc(A){const e=s=>A().update(pg(s)).digest(),t=A();return e.outputLen=t.outputLen,e.blockLen=t.blockLen,e.create=()=>A(),e}function fg(A=32){if(vs&&typeof vs.getRandomValues=="function")return vs.getRandomValues(new Uint8Array(A));if(vs&&typeof vs.randomBytes=="function")return Uint8Array.from(vs.randomBytes(A));throw new Error("crypto.getRandomValues must be defined")}function Nw(A,e,t,s){if(typeof A.setBigUint64=="function")return A.setBigUint64(e,t,s);const n=BigInt(32),r=BigInt(4294967295),i=Number(t>>n&r),a=Number(t&r),g=s?4:0,l=s?0:4;A.setUint32(e+g,i,s),A.setUint32(e+l,a,s)}function kw(A,e,t){return A&e^~A&t}function Mw(A,e,t){return A&e^A&t^e&t}class wc extends fc{constructor(e,t,s,n){super(),this.finished=!1,this.length=0,this.pos=0,this.destroyed=!1,this.blockLen=e,this.outputLen=t,this.padOffset=s,this.isLE=n,this.buffer=new Uint8Array(e),this.view=hi(this.buffer)}update(e){wn(this),e=pg(e),Ds(e);const{view:t,buffer:s,blockLen:n}=this,r=e.length;for(let i=0;i<r;){const a=Math.min(n-this.pos,r-i);if(a===n){const g=hi(e);for(;n<=r-i;i+=n)this.process(g,i);continue}s.set(e.subarray(i,i+a),this.pos),this.pos+=a,i+=a,this.pos===n&&(this.process(t,0),this.pos=0)}return this.length+=e.length,this.roundClean(),this}digestInto(e){wn(this),xw(e,this),this.finished=!0;const{buffer:t,view:s,blockLen:n,isLE:r}=this;let{pos:i}=this;t[i++]=128,Hs(this.buffer.subarray(i)),this.padOffset>n-i&&(this.process(s,0),i=0);for(let u=i;u<n;u++)t[u]=0;Nw(s,n-8,BigInt(this.length*8),r),this.process(s,0);const a=hi(e),g=this.outputLen;if(g%4)throw new Error("_sha2: outputLen should be aligned to 32bit");const l=g/4,B=this.get();if(l>B.length)throw new Error("_sha2: outputLen bigger than state");for(let u=0;u<l;u++)a.setUint32(4*u,B[u],r)}digest(){const{buffer:e,outputLen:t}=this;this.digestInto(e);const s=e.slice(0,t);return this.destroy(),s}_cloneInto(e){e||(e=new this.constructor),e.set(...this.get());const{blockLen:t,buffer:s,length:n,finished:r,destroyed:i,pos:a}=this;return e.destroyed=i,e.finished=r,e.length=n,e.pos=a,n%t&&e.buffer.set(s),e}clone(){return this._cloneInto()}}const _o=Uint32Array.from([1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225]),Kt=Uint32Array.from([1779033703,4089235720,3144134277,2227873595,1013904242,4271175723,2773480762,1595750129,1359893119,2917565137,2600822924,725511199,528734635,4215389547,1541459225,327033209]),Zr=BigInt(2**32-1),jl=BigInt(32);function bw(A,e=!1){return e?{h:Number(A&Zr),l:Number(A>>jl&Zr)}:{h:Number(A>>jl&Zr)|0,l:Number(A&Zr)|0}}function Fw(A,e=!1){const t=A.length;let s=new Uint32Array(t),n=new Uint32Array(t);for(let r=0;r<t;r++){const{h:i,l:a}=bw(A[r],e);[s[r],n[r]]=[i,a]}return[s,n]}const Tl=(A,e,t)=>A>>>t,Ol=(A,e,t)=>A<<32-t|e>>>t,Ss=(A,e,t)=>A>>>t|e<<32-t,Us=(A,e,t)=>A<<32-t|e>>>t,Xr=(A,e,t)=>A<<64-t|e>>>t-32,$r=(A,e,t)=>A>>>t-32|e<<64-t;function To(A,e,t,s){const n=(e>>>0)+(s>>>0);return{h:A+t+(n/2**32|0)|0,l:n|0}}const Gw=(A,e,t)=>(A>>>0)+(e>>>0)+(t>>>0),vw=(A,e,t,s)=>e+t+s+(A/2**32|0)|0,Sw=(A,e,t,s)=>(A>>>0)+(e>>>0)+(t>>>0)+(s>>>0),Uw=(A,e,t,s,n)=>e+t+s+n+(A/2**32|0)|0,Rw=(A,e,t,s,n)=>(A>>>0)+(e>>>0)+(t>>>0)+(s>>>0)+(n>>>0),Kw=(A,e,t,s,n,r)=>e+t+s+n+r+(A/2**32|0)|0,Lw=Uint32Array.from([1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298]),Zo=new Uint32Array(64);class Jw extends wc{constructor(e=32){super(64,e,8,!1),this.A=_o[0]|0,this.B=_o[1]|0,this.C=_o[2]|0,this.D=_o[3]|0,this.E=_o[4]|0,this.F=_o[5]|0,this.G=_o[6]|0,this.H=_o[7]|0}get(){const{A:e,B:t,C:s,D:n,E:r,F:i,G:a,H:g}=this;return[e,t,s,n,r,i,a,g]}set(e,t,s,n,r,i,a,g){this.A=e|0,this.B=t|0,this.C=s|0,this.D=n|0,this.E=r|0,this.F=i|0,this.G=a|0,this.H=g|0}process(e,t){for(let u=0;u<16;u++,t+=4)Zo[u]=e.getUint32(t,!1);for(let u=16;u<64;u++){const E=Zo[u-15],c=Zo[u-2],d=Mo(E,7)^Mo(E,18)^E>>>3,f=Mo(c,17)^Mo(c,19)^c>>>10;Zo[u]=f+Zo[u-7]+d+Zo[u-16]|0}let{A:s,B:n,C:r,D:i,E:a,F:g,G:l,H:B}=this;for(let u=0;u<64;u++){const E=Mo(a,6)^Mo(a,11)^Mo(a,25),c=B+E+kw(a,g,l)+Lw[u]+Zo[u]|0,f=(Mo(s,2)^Mo(s,13)^Mo(s,22))+Mw(s,n,r)|0;B=l,l=g,g=a,a=i+c|0,i=r,r=n,n=s,s=c+f|0}s=s+this.A|0,n=n+this.B|0,r=r+this.C|0,i=i+this.D|0,a=a+this.E|0,g=g+this.F|0,l=l+this.G|0,B=B+this.H|0,this.set(s,n,r,i,a,g,l,B)}roundClean(){Hs(Zo)}destroy(){this.set(0,0,0,0,0,0,0,0),Hs(this.buffer)}}const xc=Fw(["0x428a2f98d728ae22","0x7137449123ef65cd","0xb5c0fbcfec4d3b2f","0xe9b5dba58189dbbc","0x3956c25bf348b538","0x59f111f1b605d019","0x923f82a4af194f9b","0xab1c5ed5da6d8118","0xd807aa98a3030242","0x12835b0145706fbe","0x243185be4ee4b28c","0x550c7dc3d5ffb4e2","0x72be5d74f27b896f","0x80deb1fe3b1696b1","0x9bdc06a725c71235","0xc19bf174cf692694","0xe49b69c19ef14ad2","0xefbe4786384f25e3","0x0fc19dc68b8cd5b5","0x240ca1cc77ac9c65","0x2de92c6f592b0275","0x4a7484aa6ea6e483","0x5cb0a9dcbd41fbd4","0x76f988da831153b5","0x983e5152ee66dfab","0xa831c66d2db43210","0xb00327c898fb213f","0xbf597fc7beef0ee4","0xc6e00bf33da88fc2","0xd5a79147930aa725","0x06ca6351e003826f","0x142929670a0e6e70","0x27b70a8546d22ffc","0x2e1b21385c26c926","0x4d2c6dfc5ac42aed","0x53380d139d95b3df","0x650a73548baf63de","0x766a0abb3c77b2a8","0x81c2c92e47edaee6","0x92722c851482353b","0xa2bfe8a14cf10364","0xa81a664bbc423001","0xc24b8b70d0f89791","0xc76c51a30654be30","0xd192e819d6ef5218","0xd69906245565a910","0xf40e35855771202a","0x106aa07032bbd1b8","0x19a4c116b8d2d0c8","0x1e376c085141ab53","0x2748774cdf8eeb99","0x34b0bcb5e19b48a8","0x391c0cb3c5c95a63","0x4ed8aa4ae3418acb","0x5b9cca4f7763e373","0x682e6ff3d6b2b8a3","0x748f82ee5defb2fc","0x78a5636f43172f60","0x84c87814a1f0ab72","0x8cc702081a6439ec","0x90befffa23631e28","0xa4506cebde82bde9","0xbef9a3f7b2c67915","0xc67178f2e372532b","0xca273eceea26619c","0xd186b8c721c0c207","0xeada7dd6cde0eb1e","0xf57d4f7fee6ed178","0x06f067aa72176fba","0x0a637dc5a2c898a6","0x113f9804bef90dae","0x1b710b35131c471b","0x28db77f523047d84","0x32caab7b40c72493","0x3c9ebe0a15c9bebc","0x431d67c49c100d4c","0x4cc5d4becb3e42b6","0x597f299cfc657e2a","0x5fcb6fab3ad6faec","0x6c44198c4a475817"].map(A=>BigInt(A))),jw=xc[0],Tw=xc[1],Xo=new Uint32Array(80),$o=new Uint32Array(80);class Ow extends wc{constructor(e=64){super(128,e,16,!1),this.Ah=Kt[0]|0,this.Al=Kt[1]|0,this.Bh=Kt[2]|0,this.Bl=Kt[3]|0,this.Ch=Kt[4]|0,this.Cl=Kt[5]|0,this.Dh=Kt[6]|0,this.Dl=Kt[7]|0,this.Eh=Kt[8]|0,this.El=Kt[9]|0,this.Fh=Kt[10]|0,this.Fl=Kt[11]|0,this.Gh=Kt[12]|0,this.Gl=Kt[13]|0,this.Hh=Kt[14]|0,this.Hl=Kt[15]|0}get(){const{Ah:e,Al:t,Bh:s,Bl:n,Ch:r,Cl:i,Dh:a,Dl:g,Eh:l,El:B,Fh:u,Fl:E,Gh:c,Gl:d,Hh:f,Hl:p}=this;return[e,t,s,n,r,i,a,g,l,B,u,E,c,d,f,p]}set(e,t,s,n,r,i,a,g,l,B,u,E,c,d,f,p){this.Ah=e|0,this.Al=t|0,this.Bh=s|0,this.Bl=n|0,this.Ch=r|0,this.Cl=i|0,this.Dh=a|0,this.Dl=g|0,this.Eh=l|0,this.El=B|0,this.Fh=u|0,this.Fl=E|0,this.Gh=c|0,this.Gl=d|0,this.Hh=f|0,this.Hl=p|0}process(e,t){for(let k=0;k<16;k++,t+=4)Xo[k]=e.getUint32(t),$o[k]=e.getUint32(t+=4);for(let k=16;k<80;k++){const L=Xo[k-15]|0,K=$o[k-15]|0,W=Ss(L,K,1)^Ss(L,K,8)^Tl(L,K,7),$=Us(L,K,1)^Us(L,K,8)^Ol(L,K,7),X=Xo[k-2]|0,U=$o[k-2]|0,O=Ss(X,U,19)^Xr(X,U,61)^Tl(X,U,6),T=Us(X,U,19)^$r(X,U,61)^Ol(X,U,6),H=Sw($,T,$o[k-7],$o[k-16]),x=Uw(H,W,O,Xo[k-7],Xo[k-16]);Xo[k]=x|0,$o[k]=H|0}let{Ah:s,Al:n,Bh:r,Bl:i,Ch:a,Cl:g,Dh:l,Dl:B,Eh:u,El:E,Fh:c,Fl:d,Gh:f,Gl:p,Hh:D,Hl:F}=this;for(let k=0;k<80;k++){const L=Ss(u,E,14)^Ss(u,E,18)^Xr(u,E,41),K=Us(u,E,14)^Us(u,E,18)^$r(u,E,41),W=u&c^~u&f,$=E&d^~E&p,X=Rw(F,K,$,Tw[k],$o[k]),U=Kw(X,D,L,W,jw[k],Xo[k]),O=X|0,T=Ss(s,n,28)^Xr(s,n,34)^Xr(s,n,39),H=Us(s,n,28)^$r(s,n,34)^$r(s,n,39),x=s&r^s&a^r&a,Q=n&i^n&g^i&g;D=f|0,F=p|0,f=c|0,p=d|0,c=u|0,d=E|0,{h:u,l:E}=To(l|0,B|0,U|0,O|0),l=a|0,B=g|0,a=r|0,g=i|0,r=s|0,i=n|0;const I=Gw(O,H,Q);s=vw(I,U,T,x),n=I|0}({h:s,l:n}=To(this.Ah|0,this.Al|0,s|0,n|0)),{h:r,l:i}=To(this.Bh|0,this.Bl|0,r|0,i|0),{h:a,l:g}=To(this.Ch|0,this.Cl|0,a|0,g|0),{h:l,l:B}=To(this.Dh|0,this.Dl|0,l|0,B|0),{h:u,l:E}=To(this.Eh|0,this.El|0,u|0,E|0),{h:c,l:d}=To(this.Fh|0,this.Fl|0,c|0,d|0),{h:f,l:p}=To(this.Gh|0,this.Gl|0,f|0,p|0),{h:D,l:F}=To(this.Hh|0,this.Hl|0,D|0,F|0),this.set(s,n,r,i,a,g,l,B,u,E,c,d,f,p,D,F)}roundClean(){Hs(Xo,$o)}destroy(){Hs(this.buffer),this.set(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0)}}const Dc=mc(()=>new Jw),qw=mc(()=>new Ow);const mg=BigInt(0),wa=BigInt(1);function ws(A,e=""){if(typeof A!="boolean"){const t=e&&`"${e}"`;throw new Error(t+"expected boolean, got type="+typeof A)}return A}function fo(A,e,t=""){const s=Jr(A),n=A?.length,r=e!==void 0;if(!s||r&&n!==e){const i=t&&`"${t}" `,a=r?` of length ${e}`:"",g=s?`length=${n}`:`type=${typeof A}`;throw new Error(i+"expected Uint8Array"+a+", got "+g)}return A}function An(A){const e=A.toString(16);return e.length&1?"0"+e:e}function yc(A){if(typeof A!="string")throw new Error("hex string expected, got "+typeof A);return A===""?mg:BigInt("0x"+A)}function Zn(A){return yc(ps(A))}function wr(A){return Ds(A),yc(ps(Uint8Array.from(A).reverse()))}function wg(A,e){return xn(A.toString(16).padStart(e*2,"0"))}function Nc(A,e){return wg(A,e).reverse()}function ut(A,e,t){let s;if(typeof e=="string")try{s=xn(e)}catch(r){throw new Error(A+" must be hex string or Uint8Array, cause: "+r)}else if(Jr(e))s=Uint8Array.from(e);else throw new Error(A+" must be hex string or Uint8Array");const n=s.length;if(typeof t=="number"&&n!==t)throw new Error(A+" of length "+t+" expected, got "+n);return s}function ql(A){return Uint8Array.from(A)}const pi=A=>typeof A=="bigint"&&mg<=A;function Yw(A,e,t){return pi(A)&&pi(e)&&pi(t)&&e<=A&&A<t}function xa(A,e,t,s){if(!Yw(e,t,s))throw new Error("expected valid "+A+": "+t+" <= n < "+s+", got "+e)}function kc(A){let e;for(e=0;A>mg;A>>=wa,e+=1);return e}const jr=A=>(wa<<BigInt(A))-wa;function Hw(A,e,t){if(typeof A!="number"||A<2)throw new Error("hashLen must be a number");if(typeof e!="number"||e<2)throw new Error("qByteLen must be a number");if(typeof t!="function")throw new Error("hmacFn must be a function");const s=c=>new Uint8Array(c),n=c=>Uint8Array.of(c);let r=s(A),i=s(A),a=0;const g=()=>{r.fill(1),i.fill(0),a=0},l=(...c)=>t(i,r,...c),B=(c=s(0))=>{i=l(n(0),c),r=l(),c.length!==0&&(i=l(n(1),c),r=l())},u=()=>{if(a++>=1e3)throw new Error("drbg: tried 1000 values");let c=0;const d=[];for(;c<e;){r=l();const f=r.slice();d.push(f),c+=r.length}return bo(...d)};return(c,d)=>{g(),B(c);let f;for(;!(f=d(u()));)B();return g(),f}}function Tr(A,e,t={}){if(!A||typeof A!="object")throw new Error("expected valid options object");function s(n,r,i){const a=A[n];if(i&&a===void 0)return;const g=typeof a;if(g!==r||a===null)throw new Error(`param "${n}" is invalid: expected ${r}, got ${g}`)}Object.entries(e).forEach(([n,r])=>s(n,r,!1)),Object.entries(t).forEach(([n,r])=>s(n,r,!0))}function Dn(A){const e=new WeakMap;return(t,...s)=>{const n=e.get(t);if(n!==void 0)return n;const r=A(t,...s);return e.set(t,r),r}}const oo=BigInt(0),vt=BigInt(1),us=BigInt(2),Mc=BigInt(3),bc=BigInt(4),Fc=BigInt(5),Pw=BigInt(7),Gc=BigInt(8),Ww=BigInt(9),vc=BigInt(16);function ft(A,e){const t=A%e;return t>=oo?t:e+t}function Ct(A,e,t){let s=A;for(;e-- >oo;)s*=s,s%=t;return s}function Yl(A,e){if(A===oo)throw new Error("invert: expected non-zero number");if(e<=oo)throw new Error("invert: expected positive modulus, got "+e);let t=ft(A,e),s=e,n=oo,r=vt;for(;t!==oo;){const a=s/t,g=s%t,l=n-r*a;s=t,t=g,n=r,r=l}if(s!==vt)throw new Error("invert: does not exist");return ft(n,e)}function xg(A,e,t){if(!A.eql(A.sqr(e),t))throw new Error("Cannot find square root")}function Sc(A,e){const t=(A.ORDER+vt)/bc,s=A.pow(e,t);return xg(A,s,e),s}function zw(A,e){const t=(A.ORDER-Fc)/Gc,s=A.mul(e,us),n=A.pow(s,t),r=A.mul(e,n),i=A.mul(A.mul(r,us),n),a=A.mul(r,A.sub(i,A.ONE));return xg(A,a,e),a}function Vw(A){const e=ys(A),t=Uc(A),s=t(e,e.neg(e.ONE)),n=t(e,s),r=t(e,e.neg(s)),i=(A+Pw)/vc;return(a,g)=>{let l=a.pow(g,i),B=a.mul(l,s);const u=a.mul(l,n),E=a.mul(l,r),c=a.eql(a.sqr(B),g),d=a.eql(a.sqr(u),g);l=a.cmov(l,B,c),B=a.cmov(E,u,d);const f=a.eql(a.sqr(B),g),p=a.cmov(l,B,f);return xg(a,p,g),p}}function Uc(A){if(A<Mc)throw new Error("sqrt is not defined for small field");let e=A-vt,t=0;for(;e%us===oo;)e/=us,t++;let s=us;const n=ys(A);for(;Hl(n,s)===1;)if(s++>1e3)throw new Error("Cannot find square root: probably non-prime P");if(t===1)return Sc;let r=n.pow(s,e);const i=(e+vt)/us;return function(g,l){if(g.is0(l))return l;if(Hl(g,l)!==1)throw new Error("Cannot find square root");let B=t,u=g.mul(g.ONE,r),E=g.pow(l,e),c=g.pow(l,i);for(;!g.eql(E,g.ONE);){if(g.is0(E))return g.ZERO;let d=1,f=g.sqr(E);for(;!g.eql(f,g.ONE);)if(d++,f=g.sqr(f),d===B)throw new Error("Cannot find square root");const p=vt<<BigInt(B-d-1),D=g.pow(u,p);B=d,u=g.sqr(D),E=g.mul(E,u),c=g.mul(c,D)}return c}}function _w(A){return A%bc===Mc?Sc:A%Gc===Fc?zw:A%vc===Ww?Vw(A):Uc(A)}const Zw=(A,e)=>(ft(A,e)&vt)===vt,Xw=["create","isValid","is0","neg","inv","sqrt","sqr","eql","add","sub","mul","pow","div","addN","subN","mulN","sqrN"];function $w(A){const e={ORDER:"bigint",MASK:"bigint",BYTES:"number",BITS:"number"},t=Xw.reduce((s,n)=>(s[n]="function",s),e);return Tr(A,t),A}function Ax(A,e,t){if(t<oo)throw new Error("invalid exponent, negatives unsupported");if(t===oo)return A.ONE;if(t===vt)return e;let s=A.ONE,n=e;for(;t>oo;)t&vt&&(s=A.mul(s,n)),n=A.sqr(n),t>>=vt;return s}function Rc(A,e,t=!1){const s=new Array(e.length).fill(t?A.ZERO:void 0),n=e.reduce((i,a,g)=>A.is0(a)?i:(s[g]=i,A.mul(i,a)),A.ONE),r=A.inv(n);return e.reduceRight((i,a,g)=>A.is0(a)?i:(s[g]=A.mul(i,s[g]),A.mul(i,a)),r),s}function Hl(A,e){const t=(A.ORDER-vt)/us,s=A.pow(e,t),n=A.eql(s,A.ONE),r=A.eql(s,A.ZERO),i=A.eql(s,A.neg(A.ONE));if(!n&&!r&&!i)throw new Error("invalid Legendre symbol result");return n?1:r?0:-1}function Kc(A,e){e!==void 0&&ma(e);const t=e!==void 0?e:A.toString(2).length,s=Math.ceil(t/8);return{nBitLength:t,nByteLength:s}}function ys(A,e,t=!1,s={}){if(A<=oo)throw new Error("invalid field: expected ORDER > 0, got "+A);let n,r,i=!1,a;if(typeof e=="object"&&e!=null){if(s.sqrt||t)throw new Error("cannot specify opts in two arguments");const E=e;E.BITS&&(n=E.BITS),E.sqrt&&(r=E.sqrt),typeof E.isLE=="boolean"&&(t=E.isLE),typeof E.modFromBytes=="boolean"&&(i=E.modFromBytes),a=E.allowedLengths}else typeof e=="number"&&(n=e),s.sqrt&&(r=s.sqrt);const{nBitLength:g,nByteLength:l}=Kc(A,n);if(l>2048)throw new Error("invalid field: expected ORDER of <= 2048 bytes");let B;const u=Object.freeze({ORDER:A,isLE:t,BITS:g,BYTES:l,MASK:jr(g),ZERO:oo,ONE:vt,allowedLengths:a,create:E=>ft(E,A),isValid:E=>{if(typeof E!="bigint")throw new Error("invalid field element: expected bigint, got "+typeof E);return oo<=E&&E<A},is0:E=>E===oo,isValidNot0:E=>!u.is0(E)&&u.isValid(E),isOdd:E=>(E&vt)===vt,neg:E=>ft(-E,A),eql:(E,c)=>E===c,sqr:E=>ft(E*E,A),add:(E,c)=>ft(E+c,A),sub:(E,c)=>ft(E-c,A),mul:(E,c)=>ft(E*c,A),pow:(E,c)=>Ax(u,E,c),div:(E,c)=>ft(E*Yl(c,A),A),sqrN:E=>E*E,addN:(E,c)=>E+c,subN:(E,c)=>E-c,mulN:(E,c)=>E*c,inv:E=>Yl(E,A),sqrt:r||(E=>(B||(B=_w(A)),B(u,E))),toBytes:E=>t?Nc(E,l):wg(E,l),fromBytes:(E,c=!0)=>{if(a){if(!a.includes(E.length)||E.length>l)throw new Error("Field.fromBytes: expected "+a+" bytes, got "+E.length);const f=new Uint8Array(l);f.set(E,t?0:f.length-E.length),E=f}if(E.length!==l)throw new Error("Field.fromBytes: expected "+l+" bytes, got "+E.length);let d=t?wr(E):Zn(E);if(i&&(d=ft(d,A)),!c&&!u.isValid(d))throw new Error("invalid field element: outside of range 0..ORDER");return d},invertBatch:E=>Rc(u,E),cmov:(E,c,d)=>d?c:E});return Object.freeze(u)}function Lc(A){if(typeof A!="bigint")throw new Error("field order must be bigint");const e=A.toString(2).length;return Math.ceil(e/8)}function Jc(A){const e=Lc(A);return e+Math.ceil(e/2)}function ex(A,e,t=!1){const s=A.length,n=Lc(e),r=Jc(e);if(s<16||s<r||s>1024)throw new Error("expected "+r+"-1024 bytes of input, got "+s);const i=t?wr(A):Zn(A),a=ft(i,e-vt)+vt;return t?Nc(a,n):wg(a,n)}const Ps=BigInt(0),Is=BigInt(1);function yn(A,e){const t=e.negate();return A?t:e}function ds(A,e){const t=Rc(A.Fp,e.map(s=>s.Z));return e.map((s,n)=>A.fromAffine(s.toAffine(t[n])))}function jc(A,e){if(!Number.isSafeInteger(A)||A<=0||A>e)throw new Error("invalid window size, expected [1.."+e+"], got W="+A)}function fi(A,e){jc(A,e);const t=Math.ceil(e/A)+1,s=2**(A-1),n=2**A,r=jr(A),i=BigInt(A);return{windows:t,windowSize:s,mask:r,maxNumber:n,shiftBy:i}}function Pl(A,e,t){const{windowSize:s,mask:n,maxNumber:r,shiftBy:i}=t;let a=Number(A&n),g=A>>i;a>s&&(a-=r,g+=Is);const l=e*s,B=l+Math.abs(a)-1,u=a===0,E=a<0,c=e%2!==0;return{nextN:g,offset:B,isZero:u,isNeg:E,isNegF:c,offsetF:l}}function tx(A,e){if(!Array.isArray(A))throw new Error("array expected");A.forEach((t,s)=>{if(!(t instanceof e))throw new Error("invalid point at index "+s)})}function ox(A,e){if(!Array.isArray(A))throw new Error("array of scalars expected");A.forEach((t,s)=>{if(!e.isValid(t))throw new Error("invalid scalar at index "+s)})}const mi=new WeakMap,Tc=new WeakMap;function wi(A){return Tc.get(A)||1}function Wl(A){if(A!==Ps)throw new Error("invalid wNAF")}class Oc{constructor(e,t){this.BASE=e.BASE,this.ZERO=e.ZERO,this.Fn=e.Fn,this.bits=t}_unsafeLadder(e,t,s=this.ZERO){let n=e;for(;t>Ps;)t&Is&&(s=s.add(n)),n=n.double(),t>>=Is;return s}precomputeWindow(e,t){const{windows:s,windowSize:n}=fi(t,this.bits),r=[];let i=e,a=i;for(let g=0;g<s;g++){a=i,r.push(a);for(let l=1;l<n;l++)a=a.add(i),r.push(a);i=a.double()}return r}wNAF(e,t,s){if(!this.Fn.isValid(s))throw new Error("invalid scalar");let n=this.ZERO,r=this.BASE;const i=fi(e,this.bits);for(let a=0;a<i.windows;a++){const{nextN:g,offset:l,isZero:B,isNeg:u,isNegF:E,offsetF:c}=Pl(s,a,i);s=g,B?r=r.add(yn(E,t[c])):n=n.add(yn(u,t[l]))}return Wl(s),{p:n,f:r}}wNAFUnsafe(e,t,s,n=this.ZERO){const r=fi(e,this.bits);for(let i=0;i<r.windows&&s!==Ps;i++){const{nextN:a,offset:g,isZero:l,isNeg:B}=Pl(s,i,r);if(s=a,!l){const u=t[g];n=n.add(B?u.negate():u)}}return Wl(s),n}getPrecomputes(e,t,s){let n=mi.get(t);return n||(n=this.precomputeWindow(t,e),e!==1&&(typeof s=="function"&&(n=s(n)),mi.set(t,n))),n}cached(e,t,s){const n=wi(e);return this.wNAF(n,this.getPrecomputes(n,e,s),t)}unsafe(e,t,s,n){const r=wi(e);return r===1?this._unsafeLadder(e,t,n):this.wNAFUnsafe(r,this.getPrecomputes(r,e,s),t,n)}createCache(e,t){jc(t,this.bits),Tc.set(e,t),mi.delete(e)}hasCache(e){return wi(e)!==1}}function sx(A,e,t,s){let n=e,r=A.ZERO,i=A.ZERO;for(;t>Ps||s>Ps;)t&Is&&(r=r.add(n)),s&Is&&(i=i.add(n)),n=n.double(),t>>=Is,s>>=Is;return{p1:r,p2:i}}function qc(A,e,t,s){tx(t,A),ox(s,e);const n=t.length,r=s.length;if(n!==r)throw new Error("arrays of points and scalars must have equal length");const i=A.ZERO,a=kc(BigInt(n));let g=1;a>12?g=a-3:a>4?g=a-2:a>0&&(g=2);const l=jr(g),B=new Array(Number(l)+1).fill(i),u=Math.floor((e.BITS-1)/g)*g;let E=i;for(let c=u;c>=0;c-=g){B.fill(i);for(let f=0;f<r;f++){const p=s[f],D=Number(p>>BigInt(c)&l);B[D]=B[D].add(t[f])}let d=i;for(let f=B.length-1,p=i;f>0;f--)p=p.add(B[f]),d=d.add(p);if(E=E.add(d),c!==0)for(let f=0;f<g;f++)E=E.double()}return E}function zl(A,e,t){if(e){if(e.ORDER!==A)throw new Error("Field.ORDER must match order: Fp == p, Fn == n");return $w(e),e}else return ys(A,{isLE:t})}function Yc(A,e,t={},s){if(s===void 0&&(s=A==="edwards"),!e||typeof e!="object")throw new Error(`expected valid ${A} CURVE object`);for(const g of["p","n","h"]){const l=e[g];if(!(typeof l=="bigint"&&l>Ps))throw new Error(`CURVE.${g} must be positive bigint`)}const n=zl(e.p,t.Fp,s),r=zl(e.n,t.Fn,s),a=["Gx","Gy","a",A==="weierstrass"?"b":"d"];for(const g of a)if(!n.isValid(e[g]))throw new Error(`CURVE.${g} must be valid field element of CURVE.Fp`);return e=Object.freeze(Object.assign({},e)),{CURVE:e,Fp:n,Fn:r}}const As=BigInt(0),yt=BigInt(1),xi=BigInt(2),rx=BigInt(8);function nx(A,e,t,s){const n=A.sqr(t),r=A.sqr(s),i=A.add(A.mul(e.a,n),r),a=A.add(A.ONE,A.mul(e.d,A.mul(n,r)));return A.eql(i,a)}function ix(A,e={}){const t=Yc("edwards",A,e,e.FpFnLE),{Fp:s,Fn:n}=t;let r=t.CURVE;const{h:i}=r;Tr(e,{},{uvRatio:"function"});const a=xi<<BigInt(n.BYTES*8)-yt,g=p=>s.create(p),l=e.uvRatio||((p,D)=>{try{return{isValid:!0,value:s.sqrt(s.div(p,D))}}catch{return{isValid:!1,value:As}}});if(!nx(s,r,r.Gx,r.Gy))throw new Error("bad curve params: generator point");function B(p,D,F=!1){const k=F?yt:As;return xa("coordinate "+p,D,k,a),D}function u(p){if(!(p instanceof d))throw new Error("ExtendedPoint expected")}const E=Dn((p,D)=>{const{X:F,Y:k,Z:L}=p,K=p.is0();D==null&&(D=K?rx:s.inv(L));const W=g(F*D),$=g(k*D),X=s.mul(L,D);if(K)return{x:As,y:yt};if(X!==yt)throw new Error("invZ was invalid");return{x:W,y:$}}),c=Dn(p=>{const{a:D,d:F}=r;if(p.is0())throw new Error("bad point: ZERO");const{X:k,Y:L,Z:K,T:W}=p,$=g(k*k),X=g(L*L),U=g(K*K),O=g(U*U),T=g($*D),H=g(U*g(T+X)),x=g(O+g(F*g($*X)));if(H!==x)throw new Error("bad point: equation left != right (1)");const Q=g(k*L),I=g(K*W);if(Q!==I)throw new Error("bad point: equation left != right (2)");return!0});class d{constructor(D,F,k,L){this.X=B("x",D),this.Y=B("y",F),this.Z=B("z",k,!0),this.T=B("t",L),Object.freeze(this)}static CURVE(){return r}static fromAffine(D){if(D instanceof d)throw new Error("extended point not allowed");const{x:F,y:k}=D||{};return B("x",F),B("y",k),new d(F,k,yt,g(F*k))}static fromBytes(D,F=!1){const k=s.BYTES,{a:L,d:K}=r;D=ql(fo(D,k,"point")),ws(F,"zip215");const W=ql(D),$=D[k-1];W[k-1]=$&-129;const X=wr(W),U=F?a:s.ORDER;xa("point.y",X,As,U);const O=g(X*X),T=g(O-yt),H=g(K*O-L);let{isValid:x,value:Q}=l(T,H);if(!x)throw new Error("bad point: invalid y coordinate");const I=(Q&yt)===yt,N=($&128)!==0;if(!F&&Q===As&&N)throw new Error("bad point: x=0 and x_0=1");return N!==I&&(Q=g(-Q)),d.fromAffine({x:Q,y:X})}static fromHex(D,F=!1){return d.fromBytes(ut("point",D),F)}get x(){return this.toAffine().x}get y(){return this.toAffine().y}precompute(D=8,F=!0){return f.createCache(this,D),F||this.multiply(xi),this}assertValidity(){c(this)}equals(D){u(D);const{X:F,Y:k,Z:L}=this,{X:K,Y:W,Z:$}=D,X=g(F*$),U=g(K*L),O=g(k*$),T=g(W*L);return X===U&&O===T}is0(){return this.equals(d.ZERO)}negate(){return new d(g(-this.X),this.Y,this.Z,g(-this.T))}double(){const{a:D}=r,{X:F,Y:k,Z:L}=this,K=g(F*F),W=g(k*k),$=g(xi*g(L*L)),X=g(D*K),U=F+k,O=g(g(U*U)-K-W),T=X+W,H=T-$,x=X-W,Q=g(O*H),I=g(T*x),N=g(O*x),G=g(H*T);return new d(Q,I,G,N)}add(D){u(D);const{a:F,d:k}=r,{X:L,Y:K,Z:W,T:$}=this,{X,Y:U,Z:O,T}=D,H=g(L*X),x=g(K*U),Q=g($*k*T),I=g(W*O),N=g((L+K)*(X+U)-H-x),G=I-Q,J=I+Q,q=g(x-F*H),j=g(N*G),R=g(J*q),C=g(N*q),h=g(G*J);return new d(j,R,h,C)}subtract(D){return this.add(D.negate())}multiply(D){if(!n.isValidNot0(D))throw new Error("invalid scalar: expected 1 <= sc < curve.n");const{p:F,f:k}=f.cached(this,D,L=>ds(d,L));return ds(d,[F,k])[0]}multiplyUnsafe(D,F=d.ZERO){if(!n.isValid(D))throw new Error("invalid scalar: expected 0 <= sc < curve.n");return D===As?d.ZERO:this.is0()||D===yt?this:f.unsafe(this,D,k=>ds(d,k),F)}isSmallOrder(){return this.multiplyUnsafe(i).is0()}isTorsionFree(){return f.unsafe(this,r.n).is0()}toAffine(D){return E(this,D)}clearCofactor(){return i===yt?this:this.multiplyUnsafe(i)}toBytes(){const{x:D,y:F}=this.toAffine(),k=s.toBytes(F);return k[k.length-1]|=D&yt?128:0,k}toHex(){return ps(this.toBytes())}toString(){return`<Point ${this.is0()?"ZERO":this.toHex()}>`}get ex(){return this.X}get ey(){return this.Y}get ez(){return this.Z}get et(){return this.T}static normalizeZ(D){return ds(d,D)}static msm(D,F){return qc(d,n,D,F)}_setWindowSize(D){this.precompute(D)}toRawBytes(){return this.toBytes()}}d.BASE=new d(r.Gx,r.Gy,yt,g(r.Gx*r.Gy)),d.ZERO=new d(As,yt,yt,As),d.Fp=s,d.Fn=n;const f=new Oc(d,n.BITS);return d.BASE.precompute(8),d}function ax(A,e,t={}){if(typeof e!="function")throw new Error('"hash" function param is required');Tr(t,{},{adjustScalarBytes:"function",randomBytes:"function",domain:"function",prehash:"function",mapToCurve:"function"});const{prehash:s}=t,{BASE:n,Fp:r,Fn:i}=A,a=t.randomBytes||fg,g=t.adjustScalarBytes||(U=>U),l=t.domain||((U,O,T)=>{if(ws(T,"phflag"),O.length||T)throw new Error("Contexts/pre-hash are not supported");return U});function B(U){return i.create(wr(U))}function u(U){const O=k.secretKey;U=ut("private key",U,O);const T=ut("hashed private key",e(U),2*O),H=g(T.slice(0,O)),x=T.slice(O,2*O),Q=B(H);return{head:H,prefix:x,scalar:Q}}function E(U){const{head:O,prefix:T,scalar:H}=u(U),x=n.multiply(H),Q=x.toBytes();return{head:O,prefix:T,scalar:H,point:x,pointBytes:Q}}function c(U){return E(U).pointBytes}function d(U=Uint8Array.of(),...O){const T=bo(...O);return B(e(l(T,ut("context",U),!!s)))}function f(U,O,T={}){U=ut("message",U),s&&(U=s(U));const{prefix:H,scalar:x,pointBytes:Q}=E(O),I=d(T.context,H,U),N=n.multiply(I).toBytes(),G=d(T.context,N,Q,U),J=i.create(I+G*x);if(!i.isValid(J))throw new Error("sign failed: invalid s");const q=bo(N,i.toBytes(J));return fo(q,k.signature,"result")}const p={zip215:!0};function D(U,O,T,H=p){const{context:x,zip215:Q}=H,I=k.signature;U=ut("signature",U,I),O=ut("message",O),T=ut("publicKey",T,k.publicKey),Q!==void 0&&ws(Q,"zip215"),s&&(O=s(O));const N=I/2,G=U.subarray(0,N),J=wr(U.subarray(N,I));let q,j,R;try{q=A.fromBytes(T,Q),j=A.fromBytes(G,Q),R=n.multiplyUnsafe(J)}catch{return!1}if(!Q&&q.isSmallOrder())return!1;const C=d(x,j.toBytes(),q.toBytes(),O);return j.add(q.multiplyUnsafe(C)).subtract(R).clearCofactor().is0()}const F=r.BYTES,k={secretKey:F,publicKey:F,signature:2*F,seed:F};function L(U=a(k.seed)){return fo(U,k.seed,"seed")}function K(U){const O=X.randomSecretKey(U);return{secretKey:O,publicKey:c(O)}}function W(U){return Jr(U)&&U.length===i.BYTES}function $(U,O){try{return!!A.fromBytes(U,O)}catch{return!1}}const X={getExtendedPublicKey:E,randomSecretKey:L,isValidSecretKey:W,isValidPublicKey:$,toMontgomery(U){const{y:O}=A.fromBytes(U),T=k.publicKey,H=T===32;if(!H&&T!==57)throw new Error("only defined for 25519 and 448");const x=H?r.div(yt+O,yt-O):r.div(O-yt,O+yt);return r.toBytes(x)},toMontgomerySecret(U){const O=k.secretKey;fo(U,O);const T=e(U.subarray(0,O));return g(T).subarray(0,O)},randomPrivateKey:L,precompute(U=8,O=A.BASE){return O.precompute(U,!1)}};return Object.freeze({keygen:K,getPublicKey:c,sign:f,verify:D,utils:X,Point:A,lengths:k})}function gx(A){const e={a:A.a,d:A.d,p:A.Fp.ORDER,n:A.n,h:A.h,Gx:A.Gx,Gy:A.Gy},t=A.Fp,s=ys(e.n,A.nBitLength,!0),n={Fp:t,Fn:s,uvRatio:A.uvRatio},r={randomBytes:A.randomBytes,adjustScalarBytes:A.adjustScalarBytes,domain:A.domain,prehash:A.prehash,mapToCurve:A.mapToCurve};return{CURVE:e,curveOpts:n,hash:A.hash,eddsaOpts:r}}function lx(A,e){const t=e.Point;return Object.assign({},e,{ExtendedPoint:t,CURVE:A,nBitLength:t.Fn.BITS,nByteLength:t.Fn.BYTES})}function Qx(A){const{CURVE:e,curveOpts:t,hash:s,eddsaOpts:n}=gx(A),r=ix(e,t),i=ax(r,s,n);return lx(A,i)}const Bx=BigInt(1),Vl=BigInt(2);BigInt(3);const cx=BigInt(5),Ex=BigInt(8),Dg=BigInt("0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffed"),Hc={p:Dg,n:BigInt("0x1000000000000000000000000000000014def9dea2f79cd65812631a5cf5d3ed"),h:Ex,a:BigInt("0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffec"),d:BigInt("0x52036cee2b6ffe738cc740797779e89800700a4d4141d8ab75eb4dca135978a3"),Gx:BigInt("0x216936d3cd6e53fec0a4e231fdd6dc5c692cc7609525a7b2c9562d608f25d51a"),Gy:BigInt("0x6666666666666666666666666666666666666666666666666666666666666658")};function Cx(A){const e=BigInt(10),t=BigInt(20),s=BigInt(40),n=BigInt(80),r=Dg,a=A*A%r*A%r,g=Ct(a,Vl,r)*a%r,l=Ct(g,Bx,r)*A%r,B=Ct(l,cx,r)*l%r,u=Ct(B,e,r)*B%r,E=Ct(u,t,r)*u%r,c=Ct(E,s,r)*E%r,d=Ct(c,n,r)*c%r,f=Ct(d,n,r)*c%r,p=Ct(f,e,r)*B%r;return{pow_p_5_8:Ct(p,Vl,r)*A%r,b2:a}}function ux(A){return A[0]&=248,A[31]&=127,A[31]|=64,A}const _l=BigInt("19681161376707505956807079304988542015446066515923890162744021073123829784752");function Ix(A,e){const t=Dg,s=ft(e*e*e,t),n=ft(s*s*e,t),r=Cx(A*n).pow_p_5_8;let i=ft(A*s*r,t);const a=ft(e*i*i,t),g=i,l=ft(i*_l,t),B=a===A,u=a===ft(-A,t),E=a===ft(-A*_l,t);return B&&(i=g),(u||E)&&(i=l),Zw(i,t)&&(i=ft(-i,t)),{isValid:B||u,value:i}}const dx=ys(Hc.p,{isLE:!0}),hx={...Hc,Fp:dx,hash:qw,adjustScalarBytes:ux,uvRatio:Ix},Xn=Qx(hx);var Cn={exports:{}};const px={},fx=Object.freeze(Object.defineProperty({__proto__:null,default:px},Symbol.toStringTag,{value:"Module"})),Pc=Ka(fx);var mx=Cn.exports,Zl;function Wc(){return Zl||(Zl=1,(function(A){(function(e,t){function s(x,Q){if(!x)throw new Error(Q||"Assertion failed")}function n(x,Q){x.super_=Q;var I=function(){};I.prototype=Q.prototype,x.prototype=new I,x.prototype.constructor=x}function r(x,Q,I){if(r.isBN(x))return x;this.negative=0,this.words=null,this.length=0,this.red=null,x!==null&&((Q==="le"||Q==="be")&&(I=Q,Q=10),this._init(x||0,Q||10,I||"be"))}typeof e=="object"?e.exports=r:t.BN=r,r.BN=r,r.wordSize=26;var i;try{typeof window<"u"&&typeof window.Buffer<"u"?i=window.Buffer:i=Pc.Buffer}catch{}r.isBN=function(Q){return Q instanceof r?!0:Q!==null&&typeof Q=="object"&&Q.constructor.wordSize===r.wordSize&&Array.isArray(Q.words)},r.max=function(Q,I){return Q.cmp(I)>0?Q:I},r.min=function(Q,I){return Q.cmp(I)<0?Q:I},r.prototype._init=function(Q,I,N){if(typeof Q=="number")return this._initNumber(Q,I,N);if(typeof Q=="object")return this._initArray(Q,I,N);I==="hex"&&(I=16),s(I===(I|0)&&I>=2&&I<=36),Q=Q.toString().replace(/\s+/g,"");var G=0;Q[0]==="-"&&(G++,this.negative=1),G<Q.length&&(I===16?this._parseHex(Q,G,N):(this._parseBase(Q,I,G),N==="le"&&this._initArray(this.toArray(),I,N)))},r.prototype._initNumber=function(Q,I,N){Q<0&&(this.negative=1,Q=-Q),Q<67108864?(this.words=[Q&67108863],this.length=1):Q<4503599627370496?(this.words=[Q&67108863,Q/67108864&67108863],this.length=2):(s(Q<9007199254740992),this.words=[Q&67108863,Q/67108864&67108863,1],this.length=3),N==="le"&&this._initArray(this.toArray(),I,N)},r.prototype._initArray=function(Q,I,N){if(s(typeof Q.length=="number"),Q.length<=0)return this.words=[0],this.length=1,this;this.length=Math.ceil(Q.length/3),this.words=new Array(this.length);for(var G=0;G<this.length;G++)this.words[G]=0;var J,q,j=0;if(N==="be")for(G=Q.length-1,J=0;G>=0;G-=3)q=Q[G]|Q[G-1]<<8|Q[G-2]<<16,this.words[J]|=q<<j&67108863,this.words[J+1]=q>>>26-j&67108863,j+=24,j>=26&&(j-=26,J++);else if(N==="le")for(G=0,J=0;G<Q.length;G+=3)q=Q[G]|Q[G+1]<<8|Q[G+2]<<16,this.words[J]|=q<<j&67108863,this.words[J+1]=q>>>26-j&67108863,j+=24,j>=26&&(j-=26,J++);return this._strip()};function a(x,Q){var I=x.charCodeAt(Q);if(I>=48&&I<=57)return I-48;if(I>=65&&I<=70)return I-55;if(I>=97&&I<=102)return I-87;s(!1,"Invalid character in "+x)}function g(x,Q,I){var N=a(x,I);return I-1>=Q&&(N|=a(x,I-1)<<4),N}r.prototype._parseHex=function(Q,I,N){this.length=Math.ceil((Q.length-I)/6),this.words=new Array(this.length);for(var G=0;G<this.length;G++)this.words[G]=0;var J=0,q=0,j;if(N==="be")for(G=Q.length-1;G>=I;G-=2)j=g(Q,I,G)<<J,this.words[q]|=j&67108863,J>=18?(J-=18,q+=1,this.words[q]|=j>>>26):J+=8;else{var R=Q.length-I;for(G=R%2===0?I+1:I;G<Q.length;G+=2)j=g(Q,I,G)<<J,this.words[q]|=j&67108863,J>=18?(J-=18,q+=1,this.words[q]|=j>>>26):J+=8}this._strip()};function l(x,Q,I,N){for(var G=0,J=0,q=Math.min(x.length,I),j=Q;j<q;j++){var R=x.charCodeAt(j)-48;G*=N,R>=49?J=R-49+10:R>=17?J=R-17+10:J=R,s(R>=0&&J<N,"Invalid character"),G+=J}return G}r.prototype._parseBase=function(Q,I,N){this.words=[0],this.length=1;for(var G=0,J=1;J<=67108863;J*=I)G++;G--,J=J/I|0;for(var q=Q.length-N,j=q%G,R=Math.min(q,q-j)+N,C=0,h=N;h<R;h+=G)C=l(Q,h,h+G,I),this.imuln(J),this.words[0]+C<67108864?this.words[0]+=C:this._iaddn(C);if(j!==0){var v=1;for(C=l(Q,h,Q.length,I),h=0;h<j;h++)v*=I;this.imuln(v),this.words[0]+C<67108864?this.words[0]+=C:this._iaddn(C)}this._strip()},r.prototype.copy=function(Q){Q.words=new Array(this.length);for(var I=0;I<this.length;I++)Q.words[I]=this.words[I];Q.length=this.length,Q.negative=this.negative,Q.red=this.red};function B(x,Q){x.words=Q.words,x.length=Q.length,x.negative=Q.negative,x.red=Q.red}if(r.prototype._move=function(Q){B(Q,this)},r.prototype.clone=function(){var Q=new r(null);return this.copy(Q),Q},r.prototype._expand=function(Q){for(;this.length<Q;)this.words[this.length++]=0;return this},r.prototype._strip=function(){for(;this.length>1&&this.words[this.length-1]===0;)this.length--;return this._normSign()},r.prototype._normSign=function(){return this.length===1&&this.words[0]===0&&(this.negative=0),this},typeof Symbol<"u"&&typeof Symbol.for=="function")try{r.prototype[Symbol.for("nodejs.util.inspect.custom")]=u}catch{r.prototype.inspect=u}else r.prototype.inspect=u;function u(){return(this.red?"<BN-R: ":"<BN: ")+this.toString(16)+">"}var E=["","0","00","000","0000","00000","000000","0000000","00000000","000000000","0000000000","00000000000","000000000000","0000000000000","00000000000000","000000000000000","0000000000000000","00000000000000000","000000000000000000","0000000000000000000","00000000000000000000","000000000000000000000","0000000000000000000000","00000000000000000000000","000000000000000000000000","0000000000000000000000000"],c=[0,0,25,16,12,11,10,9,8,8,7,7,7,7,6,6,6,6,6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5],d=[0,0,33554432,43046721,16777216,48828125,60466176,40353607,16777216,43046721,1e7,19487171,35831808,62748517,7529536,11390625,16777216,24137569,34012224,47045881,64e6,4084101,5153632,6436343,7962624,9765625,11881376,14348907,17210368,20511149,243e5,28629151,33554432,39135393,45435424,52521875,60466176];r.prototype.toString=function(Q,I){Q=Q||10,I=I|0||1;var N;if(Q===16||Q==="hex"){N="";for(var G=0,J=0,q=0;q<this.length;q++){var j=this.words[q],R=((j<<G|J)&16777215).toString(16);J=j>>>24-G&16777215,G+=2,G>=26&&(G-=26,q--),J!==0||q!==this.length-1?N=E[6-R.length]+R+N:N=R+N}for(J!==0&&(N=J.toString(16)+N);N.length%I!==0;)N="0"+N;return this.negative!==0&&(N="-"+N),N}if(Q===(Q|0)&&Q>=2&&Q<=36){var C=c[Q],h=d[Q];N="";var v=this.clone();for(v.negative=0;!v.isZero();){var S=v.modrn(h).toString(Q);v=v.idivn(h),v.isZero()?N=S+N:N=E[C-S.length]+S+N}for(this.isZero()&&(N="0"+N);N.length%I!==0;)N="0"+N;return this.negative!==0&&(N="-"+N),N}s(!1,"Base should be between 2 and 36")},r.prototype.toNumber=function(){var Q=this.words[0];return this.length===2?Q+=this.words[1]*67108864:this.length===3&&this.words[2]===1?Q+=4503599627370496+this.words[1]*67108864:this.length>2&&s(!1,"Number can only safely store up to 53 bits"),this.negative!==0?-Q:Q},r.prototype.toJSON=function(){return this.toString(16,2)},i&&(r.prototype.toBuffer=function(Q,I){return this.toArrayLike(i,Q,I)}),r.prototype.toArray=function(Q,I){return this.toArrayLike(Array,Q,I)};var f=function(Q,I){return Q.allocUnsafe?Q.allocUnsafe(I):new Q(I)};r.prototype.toArrayLike=function(Q,I,N){this._strip();var G=this.byteLength(),J=N||Math.max(1,G);s(G<=J,"byte array longer than desired length"),s(J>0,"Requested array length <= 0");var q=f(Q,J),j=I==="le"?"LE":"BE";return this["_toArrayLike"+j](q,G),q},r.prototype._toArrayLikeLE=function(Q,I){for(var N=0,G=0,J=0,q=0;J<this.length;J++){var j=this.words[J]<<q|G;Q[N++]=j&255,N<Q.length&&(Q[N++]=j>>8&255),N<Q.length&&(Q[N++]=j>>16&255),q===6?(N<Q.length&&(Q[N++]=j>>24&255),G=0,q=0):(G=j>>>24,q+=2)}if(N<Q.length)for(Q[N++]=G;N<Q.length;)Q[N++]=0},r.prototype._toArrayLikeBE=function(Q,I){for(var N=Q.length-1,G=0,J=0,q=0;J<this.length;J++){var j=this.words[J]<<q|G;Q[N--]=j&255,N>=0&&(Q[N--]=j>>8&255),N>=0&&(Q[N--]=j>>16&255),q===6?(N>=0&&(Q[N--]=j>>24&255),G=0,q=0):(G=j>>>24,q+=2)}if(N>=0)for(Q[N--]=G;N>=0;)Q[N--]=0},Math.clz32?r.prototype._countBits=function(Q){return 32-Math.clz32(Q)}:r.prototype._countBits=function(Q){var I=Q,N=0;return I>=4096&&(N+=13,I>>>=13),I>=64&&(N+=7,I>>>=7),I>=8&&(N+=4,I>>>=4),I>=2&&(N+=2,I>>>=2),N+I},r.prototype._zeroBits=function(Q){if(Q===0)return 26;var I=Q,N=0;return(I&8191)===0&&(N+=13,I>>>=13),(I&127)===0&&(N+=7,I>>>=7),(I&15)===0&&(N+=4,I>>>=4),(I&3)===0&&(N+=2,I>>>=2),(I&1)===0&&N++,N},r.prototype.bitLength=function(){var Q=this.words[this.length-1],I=this._countBits(Q);return(this.length-1)*26+I};function p(x){for(var Q=new Array(x.bitLength()),I=0;I<Q.length;I++){var N=I/26|0,G=I%26;Q[I]=x.words[N]>>>G&1}return Q}r.prototype.zeroBits=function(){if(this.isZero())return 0;for(var Q=0,I=0;I<this.length;I++){var N=this._zeroBits(this.words[I]);if(Q+=N,N!==26)break}return Q},r.prototype.byteLength=function(){return Math.ceil(this.bitLength()/8)},r.prototype.toTwos=function(Q){return this.negative!==0?this.abs().inotn(Q).iaddn(1):this.clone()},r.prototype.fromTwos=function(Q){return this.testn(Q-1)?this.notn(Q).iaddn(1).ineg():this.clone()},r.prototype.isNeg=function(){return this.negative!==0},r.prototype.neg=function(){return this.clone().ineg()},r.prototype.ineg=function(){return this.isZero()||(this.negative^=1),this},r.prototype.iuor=function(Q){for(;this.length<Q.length;)this.words[this.length++]=0;for(var I=0;I<Q.length;I++)this.words[I]=this.words[I]|Q.words[I];return this._strip()},r.prototype.ior=function(Q){return s((this.negative|Q.negative)===0),this.iuor(Q)},r.prototype.or=function(Q){return this.length>Q.length?this.clone().ior(Q):Q.clone().ior(this)},r.prototype.uor=function(Q){return this.length>Q.length?this.clone().iuor(Q):Q.clone().iuor(this)},r.prototype.iuand=function(Q){var I;this.length>Q.length?I=Q:I=this;for(var N=0;N<I.length;N++)this.words[N]=this.words[N]&Q.words[N];return this.length=I.length,this._strip()},r.prototype.iand=function(Q){return s((this.negative|Q.negative)===0),this.iuand(Q)},r.prototype.and=function(Q){return this.length>Q.length?this.clone().iand(Q):Q.clone().iand(this)},r.prototype.uand=function(Q){return this.length>Q.length?this.clone().iuand(Q):Q.clone().iuand(this)},r.prototype.iuxor=function(Q){var I,N;this.length>Q.length?(I=this,N=Q):(I=Q,N=this);for(var G=0;G<N.length;G++)this.words[G]=I.words[G]^N.words[G];if(this!==I)for(;G<I.length;G++)this.words[G]=I.words[G];return this.length=I.length,this._strip()},r.prototype.ixor=function(Q){return s((this.negative|Q.negative)===0),this.iuxor(Q)},r.prototype.xor=function(Q){return this.length>Q.length?this.clone().ixor(Q):Q.clone().ixor(this)},r.prototype.uxor=function(Q){return this.length>Q.length?this.clone().iuxor(Q):Q.clone().iuxor(this)},r.prototype.inotn=function(Q){s(typeof Q=="number"&&Q>=0);var I=Math.ceil(Q/26)|0,N=Q%26;this._expand(I),N>0&&I--;for(var G=0;G<I;G++)this.words[G]=~this.words[G]&67108863;return N>0&&(this.words[G]=~this.words[G]&67108863>>26-N),this._strip()},r.prototype.notn=function(Q){return this.clone().inotn(Q)},r.prototype.setn=function(Q,I){s(typeof Q=="number"&&Q>=0);var N=Q/26|0,G=Q%26;return this._expand(N+1),I?this.words[N]=this.words[N]|1<<G:this.words[N]=this.words[N]&~(1<<G),this._strip()},r.prototype.iadd=function(Q){var I;if(this.negative!==0&&Q.negative===0)return this.negative=0,I=this.isub(Q),this.negative^=1,this._normSign();if(this.negative===0&&Q.negative!==0)return Q.negative=0,I=this.isub(Q),Q.negative=1,I._normSign();var N,G;this.length>Q.length?(N=this,G=Q):(N=Q,G=this);for(var J=0,q=0;q<G.length;q++)I=(N.words[q]|0)+(G.words[q]|0)+J,this.words[q]=I&67108863,J=I>>>26;for(;J!==0&&q<N.length;q++)I=(N.words[q]|0)+J,this.words[q]=I&67108863,J=I>>>26;if(this.length=N.length,J!==0)this.words[this.length]=J,this.length++;else if(N!==this)for(;q<N.length;q++)this.words[q]=N.words[q];return this},r.prototype.add=function(Q){var I;return Q.negative!==0&&this.negative===0?(Q.negative=0,I=this.sub(Q),Q.negative^=1,I):Q.negative===0&&this.negative!==0?(this.negative=0,I=Q.sub(this),this.negative=1,I):this.length>Q.length?this.clone().iadd(Q):Q.clone().iadd(this)},r.prototype.isub=function(Q){if(Q.negative!==0){Q.negative=0;var I=this.iadd(Q);return Q.negative=1,I._normSign()}else if(this.negative!==0)return this.negative=0,this.iadd(Q),this.negative=1,this._normSign();var N=this.cmp(Q);if(N===0)return this.negative=0,this.length=1,this.words[0]=0,this;var G,J;N>0?(G=this,J=Q):(G=Q,J=this);for(var q=0,j=0;j<J.length;j++)I=(G.words[j]|0)-(J.words[j]|0)+q,q=I>>26,this.words[j]=I&67108863;for(;q!==0&&j<G.length;j++)I=(G.words[j]|0)+q,q=I>>26,this.words[j]=I&67108863;if(q===0&&j<G.length&&G!==this)for(;j<G.length;j++)this.words[j]=G.words[j];return this.length=Math.max(this.length,j),G!==this&&(this.negative=1),this._strip()},r.prototype.sub=function(Q){return this.clone().isub(Q)};function D(x,Q,I){I.negative=Q.negative^x.negative;var N=x.length+Q.length|0;I.length=N,N=N-1|0;var G=x.words[0]|0,J=Q.words[0]|0,q=G*J,j=q&67108863,R=q/67108864|0;I.words[0]=j;for(var C=1;C<N;C++){for(var h=R>>>26,v=R&67108863,S=Math.min(C,Q.length-1),Z=Math.max(0,C-x.length+1);Z<=S;Z++){var eA=C-Z|0;G=x.words[eA]|0,J=Q.words[Z]|0,q=G*J+v,h+=q/67108864|0,v=q&67108863}I.words[C]=v|0,R=h|0}return R!==0?I.words[C]=R|0:I.length--,I._strip()}var F=function(Q,I,N){var G=Q.words,J=I.words,q=N.words,j=0,R,C,h,v=G[0]|0,S=v&8191,Z=v>>>13,eA=G[1]|0,rA=eA&8191,sA=eA>>>13,bA=G[2]|0,LA=bA&8191,QA=bA>>>13,qA=G[3]|0,PA=qA&8191,Ce=qA>>>13,MA=G[4]|0,ZA=MA&8191,fe=MA>>>13,He=G[5]|0,me=He&8191,Re=He>>>13,it=G[6]|0,Ke=it&8191,NA=it>>>13,Ie=G[7]|0,WA=Ie&8191,Y=Ie>>>13,y=G[8]|0,M=y&8191,_=y>>>13,tA=G[9]|0,aA=tA&8191,EA=tA>>>13,_A=J[0]|0,zA=_A&8191,XA=_A>>>13,Ge=J[1]|0,VA=Ge&8191,xe=Ge>>>13,Wt=J[2]|0,Le=Wt&8191,Pe=Wt>>>13,Ro=J[3]|0,Qe=Ro&8191,ve=Ro>>>13,zt=J[4]|0,Oe=zt&8191,Ze=zt>>>13,$A=J[5]|0,De=$A&8191,de=$A>>>13,Ko=J[6]|0,b=Ko&8191,P=Ko>>>13,z=J[7]|0,w=z&8191,V=z>>>13,nA=J[8]|0,oA=nA&8191,IA=nA>>>13,yA=J[9]|0,FA=yA&8191,DA=yA>>>13;N.negative=Q.negative^I.negative,N.length=19,R=Math.imul(S,zA),C=Math.imul(S,XA),C=C+Math.imul(Z,zA)|0,h=Math.imul(Z,XA);var Ee=(j+R|0)+((C&8191)<<13)|0;j=(h+(C>>>13)|0)+(Ee>>>26)|0,Ee&=67108863,R=Math.imul(rA,zA),C=Math.imul(rA,XA),C=C+Math.imul(sA,zA)|0,h=Math.imul(sA,XA),R=R+Math.imul(S,VA)|0,C=C+Math.imul(S,xe)|0,C=C+Math.imul(Z,VA)|0,h=h+Math.imul(Z,xe)|0;var UA=(j+R|0)+((C&8191)<<13)|0;j=(h+(C>>>13)|0)+(UA>>>26)|0,UA&=67108863,R=Math.imul(LA,zA),C=Math.imul(LA,XA),C=C+Math.imul(QA,zA)|0,h=Math.imul(QA,XA),R=R+Math.imul(rA,VA)|0,C=C+Math.imul(rA,xe)|0,C=C+Math.imul(sA,VA)|0,h=h+Math.imul(sA,xe)|0,R=R+Math.imul(S,Le)|0,C=C+Math.imul(S,Pe)|0,C=C+Math.imul(Z,Le)|0,h=h+Math.imul(Z,Pe)|0;var Ae=(j+R|0)+((C&8191)<<13)|0;j=(h+(C>>>13)|0)+(Ae>>>26)|0,Ae&=67108863,R=Math.imul(PA,zA),C=Math.imul(PA,XA),C=C+Math.imul(Ce,zA)|0,h=Math.imul(Ce,XA),R=R+Math.imul(LA,VA)|0,C=C+Math.imul(LA,xe)|0,C=C+Math.imul(QA,VA)|0,h=h+Math.imul(QA,xe)|0,R=R+Math.imul(rA,Le)|0,C=C+Math.imul(rA,Pe)|0,C=C+Math.imul(sA,Le)|0,h=h+Math.imul(sA,Pe)|0,R=R+Math.imul(S,Qe)|0,C=C+Math.imul(S,ve)|0,C=C+Math.imul(Z,Qe)|0,h=h+Math.imul(Z,ve)|0;var ne=(j+R|0)+((C&8191)<<13)|0;j=(h+(C>>>13)|0)+(ne>>>26)|0,ne&=67108863,R=Math.imul(ZA,zA),C=Math.imul(ZA,XA),C=C+Math.imul(fe,zA)|0,h=Math.imul(fe,XA),R=R+Math.imul(PA,VA)|0,C=C+Math.imul(PA,xe)|0,C=C+Math.imul(Ce,VA)|0,h=h+Math.imul(Ce,xe)|0,R=R+Math.imul(LA,Le)|0,C=C+Math.imul(LA,Pe)|0,C=C+Math.imul(QA,Le)|0,h=h+Math.imul(QA,Pe)|0,R=R+Math.imul(rA,Qe)|0,C=C+Math.imul(rA,ve)|0,C=C+Math.imul(sA,Qe)|0,h=h+Math.imul(sA,ve)|0,R=R+Math.imul(S,Oe)|0,C=C+Math.imul(S,Ze)|0,C=C+Math.imul(Z,Oe)|0,h=h+Math.imul(Z,Ze)|0;var ge=(j+R|0)+((C&8191)<<13)|0;j=(h+(C>>>13)|0)+(ge>>>26)|0,ge&=67108863,R=Math.imul(me,zA),C=Math.imul(me,XA),C=C+Math.imul(Re,zA)|0,h=Math.imul(Re,XA),R=R+Math.imul(ZA,VA)|0,C=C+Math.imul(ZA,xe)|0,C=C+Math.imul(fe,VA)|0,h=h+Math.imul(fe,xe)|0,R=R+Math.imul(PA,Le)|0,C=C+Math.imul(PA,Pe)|0,C=C+Math.imul(Ce,Le)|0,h=h+Math.imul(Ce,Pe)|0,R=R+Math.imul(LA,Qe)|0,C=C+Math.imul(LA,ve)|0,C=C+Math.imul(QA,Qe)|0,h=h+Math.imul(QA,ve)|0,R=R+Math.imul(rA,Oe)|0,C=C+Math.imul(rA,Ze)|0,C=C+Math.imul(sA,Oe)|0,h=h+Math.imul(sA,Ze)|0,R=R+Math.imul(S,De)|0,C=C+Math.imul(S,de)|0,C=C+Math.imul(Z,De)|0,h=h+Math.imul(Z,de)|0;var ie=(j+R|0)+((C&8191)<<13)|0;j=(h+(C>>>13)|0)+(ie>>>26)|0,ie&=67108863,R=Math.imul(Ke,zA),C=Math.imul(Ke,XA),C=C+Math.imul(NA,zA)|0,h=Math.imul(NA,XA),R=R+Math.imul(me,VA)|0,C=C+Math.imul(me,xe)|0,C=C+Math.imul(Re,VA)|0,h=h+Math.imul(Re,xe)|0,R=R+Math.imul(ZA,Le)|0,C=C+Math.imul(ZA,Pe)|0,C=C+Math.imul(fe,Le)|0,h=h+Math.imul(fe,Pe)|0,R=R+Math.imul(PA,Qe)|0,C=C+Math.imul(PA,ve)|0,C=C+Math.imul(Ce,Qe)|0,h=h+Math.imul(Ce,ve)|0,R=R+Math.imul(LA,Oe)|0,C=C+Math.imul(LA,Ze)|0,C=C+Math.imul(QA,Oe)|0,h=h+Math.imul(QA,Ze)|0,R=R+Math.imul(rA,De)|0,C=C+Math.imul(rA,de)|0,C=C+Math.imul(sA,De)|0,h=h+Math.imul(sA,de)|0,R=R+Math.imul(S,b)|0,C=C+Math.imul(S,P)|0,C=C+Math.imul(Z,b)|0,h=h+Math.imul(Z,P)|0;var se=(j+R|0)+((C&8191)<<13)|0;j=(h+(C>>>13)|0)+(se>>>26)|0,se&=67108863,R=Math.imul(WA,zA),C=Math.imul(WA,XA),C=C+Math.imul(Y,zA)|0,h=Math.imul(Y,XA),R=R+Math.imul(Ke,VA)|0,C=C+Math.imul(Ke,xe)|0,C=C+Math.imul(NA,VA)|0,h=h+Math.imul(NA,xe)|0,R=R+Math.imul(me,Le)|0,C=C+Math.imul(me,Pe)|0,C=C+Math.imul(Re,Le)|0,h=h+Math.imul(Re,Pe)|0,R=R+Math.imul(ZA,Qe)|0,C=C+Math.imul(ZA,ve)|0,C=C+Math.imul(fe,Qe)|0,h=h+Math.imul(fe,ve)|0,R=R+Math.imul(PA,Oe)|0,C=C+Math.imul(PA,Ze)|0,C=C+Math.imul(Ce,Oe)|0,h=h+Math.imul(Ce,Ze)|0,R=R+Math.imul(LA,De)|0,C=C+Math.imul(LA,de)|0,C=C+Math.imul(QA,De)|0,h=h+Math.imul(QA,de)|0,R=R+Math.imul(rA,b)|0,C=C+Math.imul(rA,P)|0,C=C+Math.imul(sA,b)|0,h=h+Math.imul(sA,P)|0,R=R+Math.imul(S,w)|0,C=C+Math.imul(S,V)|0,C=C+Math.imul(Z,w)|0,h=h+Math.imul(Z,V)|0;var re=(j+R|0)+((C&8191)<<13)|0;j=(h+(C>>>13)|0)+(re>>>26)|0,re&=67108863,R=Math.imul(M,zA),C=Math.imul(M,XA),C=C+Math.imul(_,zA)|0,h=Math.imul(_,XA),R=R+Math.imul(WA,VA)|0,C=C+Math.imul(WA,xe)|0,C=C+Math.imul(Y,VA)|0,h=h+Math.imul(Y,xe)|0,R=R+Math.imul(Ke,Le)|0,C=C+Math.imul(Ke,Pe)|0,C=C+Math.imul(NA,Le)|0,h=h+Math.imul(NA,Pe)|0,R=R+Math.imul(me,Qe)|0,C=C+Math.imul(me,ve)|0,C=C+Math.imul(Re,Qe)|0,h=h+Math.imul(Re,ve)|0,R=R+Math.imul(ZA,Oe)|0,C=C+Math.imul(ZA,Ze)|0,C=C+Math.imul(fe,Oe)|0,h=h+Math.imul(fe,Ze)|0,R=R+Math.imul(PA,De)|0,C=C+Math.imul(PA,de)|0,C=C+Math.imul(Ce,De)|0,h=h+Math.imul(Ce,de)|0,R=R+Math.imul(LA,b)|0,C=C+Math.imul(LA,P)|0,C=C+Math.imul(QA,b)|0,h=h+Math.imul(QA,P)|0,R=R+Math.imul(rA,w)|0,C=C+Math.imul(rA,V)|0,C=C+Math.imul(sA,w)|0,h=h+Math.imul(sA,V)|0,R=R+Math.imul(S,oA)|0,C=C+Math.imul(S,IA)|0,C=C+Math.imul(Z,oA)|0,h=h+Math.imul(Z,IA)|0;var ee=(j+R|0)+((C&8191)<<13)|0;j=(h+(C>>>13)|0)+(ee>>>26)|0,ee&=67108863,R=Math.imul(aA,zA),C=Math.imul(aA,XA),C=C+Math.imul(EA,zA)|0,h=Math.imul(EA,XA),R=R+Math.imul(M,VA)|0,C=C+Math.imul(M,xe)|0,C=C+Math.imul(_,VA)|0,h=h+Math.imul(_,xe)|0,R=R+Math.imul(WA,Le)|0,C=C+Math.imul(WA,Pe)|0,C=C+Math.imul(Y,Le)|0,h=h+Math.imul(Y,Pe)|0,R=R+Math.imul(Ke,Qe)|0,C=C+Math.imul(Ke,ve)|0,C=C+Math.imul(NA,Qe)|0,h=h+Math.imul(NA,ve)|0,R=R+Math.imul(me,Oe)|0,C=C+Math.imul(me,Ze)|0,C=C+Math.imul(Re,Oe)|0,h=h+Math.imul(Re,Ze)|0,R=R+Math.imul(ZA,De)|0,C=C+Math.imul(ZA,de)|0,C=C+Math.imul(fe,De)|0,h=h+Math.imul(fe,de)|0,R=R+Math.imul(PA,b)|0,C=C+Math.imul(PA,P)|0,C=C+Math.imul(Ce,b)|0,h=h+Math.imul(Ce,P)|0,R=R+Math.imul(LA,w)|0,C=C+Math.imul(LA,V)|0,C=C+Math.imul(QA,w)|0,h=h+Math.imul(QA,V)|0,R=R+Math.imul(rA,oA)|0,C=C+Math.imul(rA,IA)|0,C=C+Math.imul(sA,oA)|0,h=h+Math.imul(sA,IA)|0,R=R+Math.imul(S,FA)|0,C=C+Math.imul(S,DA)|0,C=C+Math.imul(Z,FA)|0,h=h+Math.imul(Z,DA)|0;var RA=(j+R|0)+((C&8191)<<13)|0;j=(h+(C>>>13)|0)+(RA>>>26)|0,RA&=67108863,R=Math.imul(aA,VA),C=Math.imul(aA,xe),C=C+Math.imul(EA,VA)|0,h=Math.imul(EA,xe),R=R+Math.imul(M,Le)|0,C=C+Math.imul(M,Pe)|0,C=C+Math.imul(_,Le)|0,h=h+Math.imul(_,Pe)|0,R=R+Math.imul(WA,Qe)|0,C=C+Math.imul(WA,ve)|0,C=C+Math.imul(Y,Qe)|0,h=h+Math.imul(Y,ve)|0,R=R+Math.imul(Ke,Oe)|0,C=C+Math.imul(Ke,Ze)|0,C=C+Math.imul(NA,Oe)|0,h=h+Math.imul(NA,Ze)|0,R=R+Math.imul(me,De)|0,C=C+Math.imul(me,de)|0,C=C+Math.imul(Re,De)|0,h=h+Math.imul(Re,de)|0,R=R+Math.imul(ZA,b)|0,C=C+Math.imul(ZA,P)|0,C=C+Math.imul(fe,b)|0,h=h+Math.imul(fe,P)|0,R=R+Math.imul(PA,w)|0,C=C+Math.imul(PA,V)|0,C=C+Math.imul(Ce,w)|0,h=h+Math.imul(Ce,V)|0,R=R+Math.imul(LA,oA)|0,C=C+Math.imul(LA,IA)|0,C=C+Math.imul(QA,oA)|0,h=h+Math.imul(QA,IA)|0,R=R+Math.imul(rA,FA)|0,C=C+Math.imul(rA,DA)|0,C=C+Math.imul(sA,FA)|0,h=h+Math.imul(sA,DA)|0;var YA=(j+R|0)+((C&8191)<<13)|0;j=(h+(C>>>13)|0)+(YA>>>26)|0,YA&=67108863,R=Math.imul(aA,Le),C=Math.imul(aA,Pe),C=C+Math.imul(EA,Le)|0,h=Math.imul(EA,Pe),R=R+Math.imul(M,Qe)|0,C=C+Math.imul(M,ve)|0,C=C+Math.imul(_,Qe)|0,h=h+Math.imul(_,ve)|0,R=R+Math.imul(WA,Oe)|0,C=C+Math.imul(WA,Ze)|0,C=C+Math.imul(Y,Oe)|0,h=h+Math.imul(Y,Ze)|0,R=R+Math.imul(Ke,De)|0,C=C+Math.imul(Ke,de)|0,C=C+Math.imul(NA,De)|0,h=h+Math.imul(NA,de)|0,R=R+Math.imul(me,b)|0,C=C+Math.imul(me,P)|0,C=C+Math.imul(Re,b)|0,h=h+Math.imul(Re,P)|0,R=R+Math.imul(ZA,w)|0,C=C+Math.imul(ZA,V)|0,C=C+Math.imul(fe,w)|0,h=h+Math.imul(fe,V)|0,R=R+Math.imul(PA,oA)|0,C=C+Math.imul(PA,IA)|0,C=C+Math.imul(Ce,oA)|0,h=h+Math.imul(Ce,IA)|0,R=R+Math.imul(LA,FA)|0,C=C+Math.imul(LA,DA)|0,C=C+Math.imul(QA,FA)|0,h=h+Math.imul(QA,DA)|0;var SA=(j+R|0)+((C&8191)<<13)|0;j=(h+(C>>>13)|0)+(SA>>>26)|0,SA&=67108863,R=Math.imul(aA,Qe),C=Math.imul(aA,ve),C=C+Math.imul(EA,Qe)|0,h=Math.imul(EA,ve),R=R+Math.imul(M,Oe)|0,C=C+Math.imul(M,Ze)|0,C=C+Math.imul(_,Oe)|0,h=h+Math.imul(_,Ze)|0,R=R+Math.imul(WA,De)|0,C=C+Math.imul(WA,de)|0,C=C+Math.imul(Y,De)|0,h=h+Math.imul(Y,de)|0,R=R+Math.imul(Ke,b)|0,C=C+Math.imul(Ke,P)|0,C=C+Math.imul(NA,b)|0,h=h+Math.imul(NA,P)|0,R=R+Math.imul(me,w)|0,C=C+Math.imul(me,V)|0,C=C+Math.imul(Re,w)|0,h=h+Math.imul(Re,V)|0,R=R+Math.imul(ZA,oA)|0,C=C+Math.imul(ZA,IA)|0,C=C+Math.imul(fe,oA)|0,h=h+Math.imul(fe,IA)|0,R=R+Math.imul(PA,FA)|0,C=C+Math.imul(PA,DA)|0,C=C+Math.imul(Ce,FA)|0,h=h+Math.imul(Ce,DA)|0;var KA=(j+R|0)+((C&8191)<<13)|0;j=(h+(C>>>13)|0)+(KA>>>26)|0,KA&=67108863,R=Math.imul(aA,Oe),C=Math.imul(aA,Ze),C=C+Math.imul(EA,Oe)|0,h=Math.imul(EA,Ze),R=R+Math.imul(M,De)|0,C=C+Math.imul(M,de)|0,C=C+Math.imul(_,De)|0,h=h+Math.imul(_,de)|0,R=R+Math.imul(WA,b)|0,C=C+Math.imul(WA,P)|0,C=C+Math.imul(Y,b)|0,h=h+Math.imul(Y,P)|0,R=R+Math.imul(Ke,w)|0,C=C+Math.imul(Ke,V)|0,C=C+Math.imul(NA,w)|0,h=h+Math.imul(NA,V)|0,R=R+Math.imul(me,oA)|0,C=C+Math.imul(me,IA)|0,C=C+Math.imul(Re,oA)|0,h=h+Math.imul(Re,IA)|0,R=R+Math.imul(ZA,FA)|0,C=C+Math.imul(ZA,DA)|0,C=C+Math.imul(fe,FA)|0,h=h+Math.imul(fe,DA)|0;var JA=(j+R|0)+((C&8191)<<13)|0;j=(h+(C>>>13)|0)+(JA>>>26)|0,JA&=67108863,R=Math.imul(aA,De),C=Math.imul(aA,de),C=C+Math.imul(EA,De)|0,h=Math.imul(EA,de),R=R+Math.imul(M,b)|0,C=C+Math.imul(M,P)|0,C=C+Math.imul(_,b)|0,h=h+Math.imul(_,P)|0,R=R+Math.imul(WA,w)|0,C=C+Math.imul(WA,V)|0,C=C+Math.imul(Y,w)|0,h=h+Math.imul(Y,V)|0,R=R+Math.imul(Ke,oA)|0,C=C+Math.imul(Ke,IA)|0,C=C+Math.imul(NA,oA)|0,h=h+Math.imul(NA,IA)|0,R=R+Math.imul(me,FA)|0,C=C+Math.imul(me,DA)|0,C=C+Math.imul(Re,FA)|0,h=h+Math.imul(Re,DA)|0;var vA=(j+R|0)+((C&8191)<<13)|0;j=(h+(C>>>13)|0)+(vA>>>26)|0,vA&=67108863,R=Math.imul(aA,b),C=Math.imul(aA,P),C=C+Math.imul(EA,b)|0,h=Math.imul(EA,P),R=R+Math.imul(M,w)|0,C=C+Math.imul(M,V)|0,C=C+Math.imul(_,w)|0,h=h+Math.imul(_,V)|0,R=R+Math.imul(WA,oA)|0,C=C+Math.imul(WA,IA)|0,C=C+Math.imul(Y,oA)|0,h=h+Math.imul(Y,IA)|0,R=R+Math.imul(Ke,FA)|0,C=C+Math.imul(Ke,DA)|0,C=C+Math.imul(NA,FA)|0,h=h+Math.imul(NA,DA)|0;var CA=(j+R|0)+((C&8191)<<13)|0;j=(h+(C>>>13)|0)+(CA>>>26)|0,CA&=67108863,R=Math.imul(aA,w),C=Math.imul(aA,V),C=C+Math.imul(EA,w)|0,h=Math.imul(EA,V),R=R+Math.imul(M,oA)|0,C=C+Math.imul(M,IA)|0,C=C+Math.imul(_,oA)|0,h=h+Math.imul(_,IA)|0,R=R+Math.imul(WA,FA)|0,C=C+Math.imul(WA,DA)|0,C=C+Math.imul(Y,FA)|0,h=h+Math.imul(Y,DA)|0;var uA=(j+R|0)+((C&8191)<<13)|0;j=(h+(C>>>13)|0)+(uA>>>26)|0,uA&=67108863,R=Math.imul(aA,oA),C=Math.imul(aA,IA),C=C+Math.imul(EA,oA)|0,h=Math.imul(EA,IA),R=R+Math.imul(M,FA)|0,C=C+Math.imul(M,DA)|0,C=C+Math.imul(_,FA)|0,h=h+Math.imul(_,DA)|0;var fA=(j+R|0)+((C&8191)<<13)|0;j=(h+(C>>>13)|0)+(fA>>>26)|0,fA&=67108863,R=Math.imul(aA,FA),C=Math.imul(aA,DA),C=C+Math.imul(EA,FA)|0,h=Math.imul(EA,DA);var hA=(j+R|0)+((C&8191)<<13)|0;return j=(h+(C>>>13)|0)+(hA>>>26)|0,hA&=67108863,q[0]=Ee,q[1]=UA,q[2]=Ae,q[3]=ne,q[4]=ge,q[5]=ie,q[6]=se,q[7]=re,q[8]=ee,q[9]=RA,q[10]=YA,q[11]=SA,q[12]=KA,q[13]=JA,q[14]=vA,q[15]=CA,q[16]=uA,q[17]=fA,q[18]=hA,j!==0&&(q[19]=j,N.length++),N};Math.imul||(F=D);function k(x,Q,I){I.negative=Q.negative^x.negative,I.length=x.length+Q.length;for(var N=0,G=0,J=0;J<I.length-1;J++){var q=G;G=0;for(var j=N&67108863,R=Math.min(J,Q.length-1),C=Math.max(0,J-x.length+1);C<=R;C++){var h=J-C,v=x.words[h]|0,S=Q.words[C]|0,Z=v*S,eA=Z&67108863;q=q+(Z/67108864|0)|0,eA=eA+j|0,j=eA&67108863,q=q+(eA>>>26)|0,G+=q>>>26,q&=67108863}I.words[J]=j,N=q,q=G}return N!==0?I.words[J]=N:I.length--,I._strip()}function L(x,Q,I){return k(x,Q,I)}r.prototype.mulTo=function(Q,I){var N,G=this.length+Q.length;return this.length===10&&Q.length===10?N=F(this,Q,I):G<63?N=D(this,Q,I):G<1024?N=k(this,Q,I):N=L(this,Q,I),N},r.prototype.mul=function(Q){var I=new r(null);return I.words=new Array(this.length+Q.length),this.mulTo(Q,I)},r.prototype.mulf=function(Q){var I=new r(null);return I.words=new Array(this.length+Q.length),L(this,Q,I)},r.prototype.imul=function(Q){return this.clone().mulTo(Q,this)},r.prototype.imuln=function(Q){var I=Q<0;I&&(Q=-Q),s(typeof Q=="number"),s(Q<67108864);for(var N=0,G=0;G<this.length;G++){var J=(this.words[G]|0)*Q,q=(J&67108863)+(N&67108863);N>>=26,N+=J/67108864|0,N+=q>>>26,this.words[G]=q&67108863}return N!==0&&(this.words[G]=N,this.length++),this.length=Q===0?1:this.length,I?this.ineg():this},r.prototype.muln=function(Q){return this.clone().imuln(Q)},r.prototype.sqr=function(){return this.mul(this)},r.prototype.isqr=function(){return this.imul(this.clone())},r.prototype.pow=function(Q){var I=p(Q);if(I.length===0)return new r(1);for(var N=this,G=0;G<I.length&&I[G]===0;G++,N=N.sqr());if(++G<I.length)for(var J=N.sqr();G<I.length;G++,J=J.sqr())I[G]!==0&&(N=N.mul(J));return N},r.prototype.iushln=function(Q){s(typeof Q=="number"&&Q>=0);var I=Q%26,N=(Q-I)/26,G=67108863>>>26-I<<26-I,J;if(I!==0){var q=0;for(J=0;J<this.length;J++){var j=this.words[J]&G,R=(this.words[J]|0)-j<<I;this.words[J]=R|q,q=j>>>26-I}q&&(this.words[J]=q,this.length++)}if(N!==0){for(J=this.length-1;J>=0;J--)this.words[J+N]=this.words[J];for(J=0;J<N;J++)this.words[J]=0;this.length+=N}return this._strip()},r.prototype.ishln=function(Q){return s(this.negative===0),this.iushln(Q)},r.prototype.iushrn=function(Q,I,N){s(typeof Q=="number"&&Q>=0);var G;I?G=(I-I%26)/26:G=0;var J=Q%26,q=Math.min((Q-J)/26,this.length),j=67108863^67108863>>>J<<J,R=N;if(G-=q,G=Math.max(0,G),R){for(var C=0;C<q;C++)R.words[C]=this.words[C];R.length=q}if(q!==0)if(this.length>q)for(this.length-=q,C=0;C<this.length;C++)this.words[C]=this.words[C+q];else this.words[0]=0,this.length=1;var h=0;for(C=this.length-1;C>=0&&(h!==0||C>=G);C--){var v=this.words[C]|0;this.words[C]=h<<26-J|v>>>J,h=v&j}return R&&h!==0&&(R.words[R.length++]=h),this.length===0&&(this.words[0]=0,this.length=1),this._strip()},r.prototype.ishrn=function(Q,I,N){return s(this.negative===0),this.iushrn(Q,I,N)},r.prototype.shln=function(Q){return this.clone().ishln(Q)},r.prototype.ushln=function(Q){return this.clone().iushln(Q)},r.prototype.shrn=function(Q){return this.clone().ishrn(Q)},r.prototype.ushrn=function(Q){return this.clone().iushrn(Q)},r.prototype.testn=function(Q){s(typeof Q=="number"&&Q>=0);var I=Q%26,N=(Q-I)/26,G=1<<I;if(this.length<=N)return!1;var J=this.words[N];return!!(J&G)},r.prototype.imaskn=function(Q){s(typeof Q=="number"&&Q>=0);var I=Q%26,N=(Q-I)/26;if(s(this.negative===0,"imaskn works only with positive numbers"),this.length<=N)return this;if(I!==0&&N++,this.length=Math.min(N,this.length),I!==0){var G=67108863^67108863>>>I<<I;this.words[this.length-1]&=G}return this.length===0&&(this.words[0]=0,this.length=1),this._strip()},r.prototype.maskn=function(Q){return this.clone().imaskn(Q)},r.prototype.iaddn=function(Q){return s(typeof Q=="number"),s(Q<67108864),Q<0?this.isubn(-Q):this.negative!==0?this.length===1&&(this.words[0]|0)<=Q?(this.words[0]=Q-(this.words[0]|0),this.negative=0,this):(this.negative=0,this.isubn(Q),this.negative=1,this):this._iaddn(Q)},r.prototype._iaddn=function(Q){this.words[0]+=Q;for(var I=0;I<this.length&&this.words[I]>=67108864;I++)this.words[I]-=67108864,I===this.length-1?this.words[I+1]=1:this.words[I+1]++;return this.length=Math.max(this.length,I+1),this},r.prototype.isubn=function(Q){if(s(typeof Q=="number"),s(Q<67108864),Q<0)return this.iaddn(-Q);if(this.negative!==0)return this.negative=0,this.iaddn(Q),this.negative=1,this;if(this.words[0]-=Q,this.length===1&&this.words[0]<0)this.words[0]=-this.words[0],this.negative=1;else for(var I=0;I<this.length&&this.words[I]<0;I++)this.words[I]+=67108864,this.words[I+1]-=1;return this._strip()},r.prototype.addn=function(Q){return this.clone().iaddn(Q)},r.prototype.subn=function(Q){return this.clone().isubn(Q)},r.prototype.iabs=function(){return this.negative=0,this},r.prototype.abs=function(){return this.clone().iabs()},r.prototype._ishlnsubmul=function(Q,I,N){var G=Q.length+N,J;this._expand(G);var q,j=0;for(J=0;J<Q.length;J++){q=(this.words[J+N]|0)+j;var R=(Q.words[J]|0)*I;q-=R&67108863,j=(q>>26)-(R/67108864|0),this.words[J+N]=q&67108863}for(;J<this.length-N;J++)q=(this.words[J+N]|0)+j,j=q>>26,this.words[J+N]=q&67108863;if(j===0)return this._strip();for(s(j===-1),j=0,J=0;J<this.length;J++)q=-(this.words[J]|0)+j,j=q>>26,this.words[J]=q&67108863;return this.negative=1,this._strip()},r.prototype._wordDiv=function(Q,I){var N=this.length-Q.length,G=this.clone(),J=Q,q=J.words[J.length-1]|0,j=this._countBits(q);N=26-j,N!==0&&(J=J.ushln(N),G.iushln(N),q=J.words[J.length-1]|0);var R=G.length-J.length,C;if(I!=="mod"){C=new r(null),C.length=R+1,C.words=new Array(C.length);for(var h=0;h<C.length;h++)C.words[h]=0}var v=G.clone()._ishlnsubmul(J,1,R);v.negative===0&&(G=v,C&&(C.words[R]=1));for(var S=R-1;S>=0;S--){var Z=(G.words[J.length+S]|0)*67108864+(G.words[J.length+S-1]|0);for(Z=Math.min(Z/q|0,67108863),G._ishlnsubmul(J,Z,S);G.negative!==0;)Z--,G.negative=0,G._ishlnsubmul(J,1,S),G.isZero()||(G.negative^=1);C&&(C.words[S]=Z)}return C&&C._strip(),G._strip(),I!=="div"&&N!==0&&G.iushrn(N),{div:C||null,mod:G}},r.prototype.divmod=function(Q,I,N){if(s(!Q.isZero()),this.isZero())return{div:new r(0),mod:new r(0)};var G,J,q;return this.negative!==0&&Q.negative===0?(q=this.neg().divmod(Q,I),I!=="mod"&&(G=q.div.neg()),I!=="div"&&(J=q.mod.neg(),N&&J.negative!==0&&J.iadd(Q)),{div:G,mod:J}):this.negative===0&&Q.negative!==0?(q=this.divmod(Q.neg(),I),I!=="mod"&&(G=q.div.neg()),{div:G,mod:q.mod}):(this.negative&Q.negative)!==0?(q=this.neg().divmod(Q.neg(),I),I!=="div"&&(J=q.mod.neg(),N&&J.negative!==0&&J.isub(Q)),{div:q.div,mod:J}):Q.length>this.length||this.cmp(Q)<0?{div:new r(0),mod:this}:Q.length===1?I==="div"?{div:this.divn(Q.words[0]),mod:null}:I==="mod"?{div:null,mod:new r(this.modrn(Q.words[0]))}:{div:this.divn(Q.words[0]),mod:new r(this.modrn(Q.words[0]))}:this._wordDiv(Q,I)},r.prototype.div=function(Q){return this.divmod(Q,"div",!1).div},r.prototype.mod=function(Q){return this.divmod(Q,"mod",!1).mod},r.prototype.umod=function(Q){return this.divmod(Q,"mod",!0).mod},r.prototype.divRound=function(Q){var I=this.divmod(Q);if(I.mod.isZero())return I.div;var N=I.div.negative!==0?I.mod.isub(Q):I.mod,G=Q.ushrn(1),J=Q.andln(1),q=N.cmp(G);return q<0||J===1&&q===0?I.div:I.div.negative!==0?I.div.isubn(1):I.div.iaddn(1)},r.prototype.modrn=function(Q){var I=Q<0;I&&(Q=-Q),s(Q<=67108863);for(var N=(1<<26)%Q,G=0,J=this.length-1;J>=0;J--)G=(N*G+(this.words[J]|0))%Q;return I?-G:G},r.prototype.modn=function(Q){return this.modrn(Q)},r.prototype.idivn=function(Q){var I=Q<0;I&&(Q=-Q),s(Q<=67108863);for(var N=0,G=this.length-1;G>=0;G--){var J=(this.words[G]|0)+N*67108864;this.words[G]=J/Q|0,N=J%Q}return this._strip(),I?this.ineg():this},r.prototype.divn=function(Q){return this.clone().idivn(Q)},r.prototype.egcd=function(Q){s(Q.negative===0),s(!Q.isZero());var I=this,N=Q.clone();I.negative!==0?I=I.umod(Q):I=I.clone();for(var G=new r(1),J=new r(0),q=new r(0),j=new r(1),R=0;I.isEven()&&N.isEven();)I.iushrn(1),N.iushrn(1),++R;for(var C=N.clone(),h=I.clone();!I.isZero();){for(var v=0,S=1;(I.words[0]&S)===0&&v<26;++v,S<<=1);if(v>0)for(I.iushrn(v);v-- >0;)(G.isOdd()||J.isOdd())&&(G.iadd(C),J.isub(h)),G.iushrn(1),J.iushrn(1);for(var Z=0,eA=1;(N.words[0]&eA)===0&&Z<26;++Z,eA<<=1);if(Z>0)for(N.iushrn(Z);Z-- >0;)(q.isOdd()||j.isOdd())&&(q.iadd(C),j.isub(h)),q.iushrn(1),j.iushrn(1);I.cmp(N)>=0?(I.isub(N),G.isub(q),J.isub(j)):(N.isub(I),q.isub(G),j.isub(J))}return{a:q,b:j,gcd:N.iushln(R)}},r.prototype._invmp=function(Q){s(Q.negative===0),s(!Q.isZero());var I=this,N=Q.clone();I.negative!==0?I=I.umod(Q):I=I.clone();for(var G=new r(1),J=new r(0),q=N.clone();I.cmpn(1)>0&&N.cmpn(1)>0;){for(var j=0,R=1;(I.words[0]&R)===0&&j<26;++j,R<<=1);if(j>0)for(I.iushrn(j);j-- >0;)G.isOdd()&&G.iadd(q),G.iushrn(1);for(var C=0,h=1;(N.words[0]&h)===0&&C<26;++C,h<<=1);if(C>0)for(N.iushrn(C);C-- >0;)J.isOdd()&&J.iadd(q),J.iushrn(1);I.cmp(N)>=0?(I.isub(N),G.isub(J)):(N.isub(I),J.isub(G))}var v;return I.cmpn(1)===0?v=G:v=J,v.cmpn(0)<0&&v.iadd(Q),v},r.prototype.gcd=function(Q){if(this.isZero())return Q.abs();if(Q.isZero())return this.abs();var I=this.clone(),N=Q.clone();I.negative=0,N.negative=0;for(var G=0;I.isEven()&&N.isEven();G++)I.iushrn(1),N.iushrn(1);do{for(;I.isEven();)I.iushrn(1);for(;N.isEven();)N.iushrn(1);var J=I.cmp(N);if(J<0){var q=I;I=N,N=q}else if(J===0||N.cmpn(1)===0)break;I.isub(N)}while(!0);return N.iushln(G)},r.prototype.invm=function(Q){return this.egcd(Q).a.umod(Q)},r.prototype.isEven=function(){return(this.words[0]&1)===0},r.prototype.isOdd=function(){return(this.words[0]&1)===1},r.prototype.andln=function(Q){return this.words[0]&Q},r.prototype.bincn=function(Q){s(typeof Q=="number");var I=Q%26,N=(Q-I)/26,G=1<<I;if(this.length<=N)return this._expand(N+1),this.words[N]|=G,this;for(var J=G,q=N;J!==0&&q<this.length;q++){var j=this.words[q]|0;j+=J,J=j>>>26,j&=67108863,this.words[q]=j}return J!==0&&(this.words[q]=J,this.length++),this},r.prototype.isZero=function(){return this.length===1&&this.words[0]===0},r.prototype.cmpn=function(Q){var I=Q<0;if(this.negative!==0&&!I)return-1;if(this.negative===0&&I)return 1;this._strip();var N;if(this.length>1)N=1;else{I&&(Q=-Q),s(Q<=67108863,"Number is too big");var G=this.words[0]|0;N=G===Q?0:G<Q?-1:1}return this.negative!==0?-N|0:N},r.prototype.cmp=function(Q){if(this.negative!==0&&Q.negative===0)return-1;if(this.negative===0&&Q.negative!==0)return 1;var I=this.ucmp(Q);return this.negative!==0?-I|0:I},r.prototype.ucmp=function(Q){if(this.length>Q.length)return 1;if(this.length<Q.length)return-1;for(var I=0,N=this.length-1;N>=0;N--){var G=this.words[N]|0,J=Q.words[N]|0;if(G!==J){G<J?I=-1:G>J&&(I=1);break}}return I},r.prototype.gtn=function(Q){return this.cmpn(Q)===1},r.prototype.gt=function(Q){return this.cmp(Q)===1},r.prototype.gten=function(Q){return this.cmpn(Q)>=0},r.prototype.gte=function(Q){return this.cmp(Q)>=0},r.prototype.ltn=function(Q){return this.cmpn(Q)===-1},r.prototype.lt=function(Q){return this.cmp(Q)===-1},r.prototype.lten=function(Q){return this.cmpn(Q)<=0},r.prototype.lte=function(Q){return this.cmp(Q)<=0},r.prototype.eqn=function(Q){return this.cmpn(Q)===0},r.prototype.eq=function(Q){return this.cmp(Q)===0},r.red=function(Q){return new T(Q)},r.prototype.toRed=function(Q){return s(!this.red,"Already a number in reduction context"),s(this.negative===0,"red works only with positives"),Q.convertTo(this)._forceRed(Q)},r.prototype.fromRed=function(){return s(this.red,"fromRed works only with numbers in reduction context"),this.red.convertFrom(this)},r.prototype._forceRed=function(Q){return this.red=Q,this},r.prototype.forceRed=function(Q){return s(!this.red,"Already a number in reduction context"),this._forceRed(Q)},r.prototype.redAdd=function(Q){return s(this.red,"redAdd works only with red numbers"),this.red.add(this,Q)},r.prototype.redIAdd=function(Q){return s(this.red,"redIAdd works only with red numbers"),this.red.iadd(this,Q)},r.prototype.redSub=function(Q){return s(this.red,"redSub works only with red numbers"),this.red.sub(this,Q)},r.prototype.redISub=function(Q){return s(this.red,"redISub works only with red numbers"),this.red.isub(this,Q)},r.prototype.redShl=function(Q){return s(this.red,"redShl works only with red numbers"),this.red.shl(this,Q)},r.prototype.redMul=function(Q){return s(this.red,"redMul works only with red numbers"),this.red._verify2(this,Q),this.red.mul(this,Q)},r.prototype.redIMul=function(Q){return s(this.red,"redMul works only with red numbers"),this.red._verify2(this,Q),this.red.imul(this,Q)},r.prototype.redSqr=function(){return s(this.red,"redSqr works only with red numbers"),this.red._verify1(this),this.red.sqr(this)},r.prototype.redISqr=function(){return s(this.red,"redISqr works only with red numbers"),this.red._verify1(this),this.red.isqr(this)},r.prototype.redSqrt=function(){return s(this.red,"redSqrt works only with red numbers"),this.red._verify1(this),this.red.sqrt(this)},r.prototype.redInvm=function(){return s(this.red,"redInvm works only with red numbers"),this.red._verify1(this),this.red.invm(this)},r.prototype.redNeg=function(){return s(this.red,"redNeg works only with red numbers"),this.red._verify1(this),this.red.neg(this)},r.prototype.redPow=function(Q){return s(this.red&&!Q.red,"redPow(normalNum)"),this.red._verify1(this),this.red.pow(this,Q)};var K={k256:null,p224:null,p192:null,p25519:null};function W(x,Q){this.name=x,this.p=new r(Q,16),this.n=this.p.bitLength(),this.k=new r(1).iushln(this.n).isub(this.p),this.tmp=this._tmp()}W.prototype._tmp=function(){var Q=new r(null);return Q.words=new Array(Math.ceil(this.n/13)),Q},W.prototype.ireduce=function(Q){var I=Q,N;do this.split(I,this.tmp),I=this.imulK(I),I=I.iadd(this.tmp),N=I.bitLength();while(N>this.n);var G=N<this.n?-1:I.ucmp(this.p);return G===0?(I.words[0]=0,I.length=1):G>0?I.isub(this.p):I.strip!==void 0?I.strip():I._strip(),I},W.prototype.split=function(Q,I){Q.iushrn(this.n,0,I)},W.prototype.imulK=function(Q){return Q.imul(this.k)};function $(){W.call(this,"k256","ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f")}n($,W),$.prototype.split=function(Q,I){for(var N=4194303,G=Math.min(Q.length,9),J=0;J<G;J++)I.words[J]=Q.words[J];if(I.length=G,Q.length<=9){Q.words[0]=0,Q.length=1;return}var q=Q.words[9];for(I.words[I.length++]=q&N,J=10;J<Q.length;J++){var j=Q.words[J]|0;Q.words[J-10]=(j&N)<<4|q>>>22,q=j}q>>>=22,Q.words[J-10]=q,q===0&&Q.length>10?Q.length-=10:Q.length-=9},$.prototype.imulK=function(Q){Q.words[Q.length]=0,Q.words[Q.length+1]=0,Q.length+=2;for(var I=0,N=0;N<Q.length;N++){var G=Q.words[N]|0;I+=G*977,Q.words[N]=I&67108863,I=G*64+(I/67108864|0)}return Q.words[Q.length-1]===0&&(Q.length--,Q.words[Q.length-1]===0&&Q.length--),Q};function X(){W.call(this,"p224","ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001")}n(X,W);function U(){W.call(this,"p192","ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff")}n(U,W);function O(){W.call(this,"25519","7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed")}n(O,W),O.prototype.imulK=function(Q){for(var I=0,N=0;N<Q.length;N++){var G=(Q.words[N]|0)*19+I,J=G&67108863;G>>>=26,Q.words[N]=J,I=G}return I!==0&&(Q.words[Q.length++]=I),Q},r._prime=function(Q){if(K[Q])return K[Q];var I;if(Q==="k256")I=new $;else if(Q==="p224")I=new X;else if(Q==="p192")I=new U;else if(Q==="p25519")I=new O;else throw new Error("Unknown prime "+Q);return K[Q]=I,I};function T(x){if(typeof x=="string"){var Q=r._prime(x);this.m=Q.p,this.prime=Q}else s(x.gtn(1),"modulus must be greater than 1"),this.m=x,this.prime=null}T.prototype._verify1=function(Q){s(Q.negative===0,"red works only with positives"),s(Q.red,"red works only with red numbers")},T.prototype._verify2=function(Q,I){s((Q.negative|I.negative)===0,"red works only with positives"),s(Q.red&&Q.red===I.red,"red works only with red numbers")},T.prototype.imod=function(Q){return this.prime?this.prime.ireduce(Q)._forceRed(this):(B(Q,Q.umod(this.m)._forceRed(this)),Q)},T.prototype.neg=function(Q){return Q.isZero()?Q.clone():this.m.sub(Q)._forceRed(this)},T.prototype.add=function(Q,I){this._verify2(Q,I);var N=Q.add(I);return N.cmp(this.m)>=0&&N.isub(this.m),N._forceRed(this)},T.prototype.iadd=function(Q,I){this._verify2(Q,I);var N=Q.iadd(I);return N.cmp(this.m)>=0&&N.isub(this.m),N},T.prototype.sub=function(Q,I){this._verify2(Q,I);var N=Q.sub(I);return N.cmpn(0)<0&&N.iadd(this.m),N._forceRed(this)},T.prototype.isub=function(Q,I){this._verify2(Q,I);var N=Q.isub(I);return N.cmpn(0)<0&&N.iadd(this.m),N},T.prototype.shl=function(Q,I){return this._verify1(Q),this.imod(Q.ushln(I))},T.prototype.imul=function(Q,I){return this._verify2(Q,I),this.imod(Q.imul(I))},T.prototype.mul=function(Q,I){return this._verify2(Q,I),this.imod(Q.mul(I))},T.prototype.isqr=function(Q){return this.imul(Q,Q.clone())},T.prototype.sqr=function(Q){return this.mul(Q,Q)},T.prototype.sqrt=function(Q){if(Q.isZero())return Q.clone();var I=this.m.andln(3);if(s(I%2===1),I===3){var N=this.m.add(new r(1)).iushrn(2);return this.pow(Q,N)}for(var G=this.m.subn(1),J=0;!G.isZero()&&G.andln(1)===0;)J++,G.iushrn(1);s(!G.isZero());var q=new r(1).toRed(this),j=q.redNeg(),R=this.m.subn(1).iushrn(1),C=this.m.bitLength();for(C=new r(2*C*C).toRed(this);this.pow(C,R).cmp(j)!==0;)C.redIAdd(j);for(var h=this.pow(C,G),v=this.pow(Q,G.addn(1).iushrn(1)),S=this.pow(Q,G),Z=J;S.cmp(q)!==0;){for(var eA=S,rA=0;eA.cmp(q)!==0;rA++)eA=eA.redSqr();s(rA<Z);var sA=this.pow(h,new r(1).iushln(Z-rA-1));v=v.redMul(sA),h=sA.redSqr(),S=S.redMul(h),Z=rA}return v},T.prototype.invm=function(Q){var I=Q._invmp(this.m);return I.negative!==0?(I.negative=0,this.imod(I).redNeg()):this.imod(I)},T.prototype.pow=function(Q,I){if(I.isZero())return new r(1).toRed(this);if(I.cmpn(1)===0)return Q.clone();var N=4,G=new Array(1<<N);G[0]=new r(1).toRed(this),G[1]=Q;for(var J=2;J<G.length;J++)G[J]=this.mul(G[J-1],Q);var q=G[0],j=0,R=0,C=I.bitLength()%26;for(C===0&&(C=26),J=I.length-1;J>=0;J--){for(var h=I.words[J],v=C-1;v>=0;v--){var S=h>>v&1;if(q!==G[0]&&(q=this.sqr(q)),S===0&&j===0){R=0;continue}j<<=1,j|=S,R++,!(R!==N&&(J!==0||v!==0))&&(q=this.mul(q,G[j]),R=0,j=0)}C=26}return q},T.prototype.convertTo=function(Q){var I=Q.umod(this.m);return I===Q?I.clone():I},T.prototype.convertFrom=function(Q){var I=Q.clone();return I.red=null,I},r.mont=function(Q){return new H(Q)};function H(x){T.call(this,x),this.shift=this.m.bitLength(),this.shift%26!==0&&(this.shift+=26-this.shift%26),this.r=new r(1).iushln(this.shift),this.r2=this.imod(this.r.sqr()),this.rinv=this.r._invmp(this.m),this.minv=this.rinv.mul(this.r).isubn(1).div(this.m),this.minv=this.minv.umod(this.r),this.minv=this.r.sub(this.minv)}n(H,T),H.prototype.convertTo=function(Q){return this.imod(Q.ushln(this.shift))},H.prototype.convertFrom=function(Q){var I=this.imod(Q.mul(this.rinv));return I.red=null,I},H.prototype.imul=function(Q,I){if(Q.isZero()||I.isZero())return Q.words[0]=0,Q.length=1,Q;var N=Q.imul(I),G=N.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),J=N.isub(G).iushrn(this.shift),q=J;return J.cmp(this.m)>=0?q=J.isub(this.m):J.cmpn(0)<0&&(q=J.iadd(this.m)),q._forceRed(this)},H.prototype.mul=function(Q,I){if(Q.isZero()||I.isZero())return new r(0)._forceRed(this);var N=Q.mul(I),G=N.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),J=N.isub(G).iushrn(this.shift),q=J;return J.cmp(this.m)>=0?q=J.isub(this.m):J.cmpn(0)<0&&(q=J.iadd(this.m)),q._forceRed(this)},H.prototype.invm=function(Q){var I=this.imod(Q._invmp(this.m).mul(this.r2));return I._forceRed(this)}})(A,mx)})(Cn)),Cn.exports}var wx=Wc();const Xl=JQ(wx);var en={exports:{}};var $l;function zc(){return $l||($l=1,(function(A,e){var t=hg(),s=t.Buffer;function n(i,a){for(var g in i)a[g]=i[g]}s.from&&s.alloc&&s.allocUnsafe&&s.allocUnsafeSlow?A.exports=t:(n(t,e),e.Buffer=r);function r(i,a,g){return s(i,a,g)}r.prototype=Object.create(s.prototype),n(s,r),r.from=function(i,a,g){if(typeof i=="number")throw new TypeError("Argument must not be a number");return s(i,a,g)},r.alloc=function(i,a,g){if(typeof i!="number")throw new TypeError("Argument must be a number");var l=s(i);return a!==void 0?typeof g=="string"?l.fill(a,g):l.fill(a):l.fill(0),l},r.allocUnsafe=function(i){if(typeof i!="number")throw new TypeError("Argument must be a number");return s(i)},r.allocUnsafeSlow=function(i){if(typeof i!="number")throw new TypeError("Argument must be a number");return t.SlowBuffer(i)}})(en,en.exports)),en.exports}var Di,AQ;function xx(){if(AQ)return Di;AQ=1;var A=zc().Buffer;function e(t){if(t.length>=255)throw new TypeError("Alphabet too long");for(var s=new Uint8Array(256),n=0;n<s.length;n++)s[n]=255;for(var r=0;r<t.length;r++){var i=t.charAt(r),a=i.charCodeAt(0);if(s[a]!==255)throw new TypeError(i+" is ambiguous");s[a]=r}var g=t.length,l=t.charAt(0),B=Math.log(g)/Math.log(256),u=Math.log(256)/Math.log(g);function E(f){if((Array.isArray(f)||f instanceof Uint8Array)&&(f=A.from(f)),!A.isBuffer(f))throw new TypeError("Expected Buffer");if(f.length===0)return"";for(var p=0,D=0,F=0,k=f.length;F!==k&&f[F]===0;)F++,p++;for(var L=(k-F)*u+1>>>0,K=new Uint8Array(L);F!==k;){for(var W=f[F],$=0,X=L-1;(W!==0||$<D)&&X!==-1;X--,$++)W+=256*K[X]>>>0,K[X]=W%g>>>0,W=W/g>>>0;if(W!==0)throw new Error("Non-zero carry");D=$,F++}for(var U=L-D;U!==L&&K[U]===0;)U++;for(var O=l.repeat(p);U<L;++U)O+=t.charAt(K[U]);return O}function c(f){if(typeof f!="string")throw new TypeError("Expected String");if(f.length===0)return A.alloc(0);for(var p=0,D=0,F=0;f[p]===l;)D++,p++;for(var k=(f.length-p)*B+1>>>0,L=new Uint8Array(k);p<f.length;){var K=f.charCodeAt(p);if(K>255)return;var W=s[K];if(W===255)return;for(var $=0,X=k-1;(W!==0||$<F)&&X!==-1;X--,$++)W+=g*L[X]>>>0,L[X]=W%256>>>0,W=W/256>>>0;if(W!==0)throw new Error("Non-zero carry");F=$,p++}for(var U=k-F;U!==k&&L[U]===0;)U++;var O=A.allocUnsafe(D+(k-U));O.fill(0,0,D);for(var T=D;U!==k;)O[T++]=L[U++];return O}function d(f){var p=c(f);if(p)return p;throw new Error("Non-base"+g+" character")}return{encode:E,decodeUnsafe:c,decode:d}}return Di=e,Di}var yi,eQ;function Dx(){if(eQ)return yi;eQ=1;var A=xx(),e="123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz";return yi=A(e),yi}var yx=Dx();const tQ=JQ(yx),oQ=Dc;var Xe={},Ni,sQ;function Nx(){if(sQ)return Ni;sQ=1;var A=zc().Buffer;function e(t){if(t.length>=255)throw new TypeError("Alphabet too long");for(var s=new Uint8Array(256),n=0;n<s.length;n++)s[n]=255;for(var r=0;r<t.length;r++){var i=t.charAt(r),a=i.charCodeAt(0);if(s[a]!==255)throw new TypeError(i+" is ambiguous");s[a]=r}var g=t.length,l=t.charAt(0),B=Math.log(g)/Math.log(256),u=Math.log(256)/Math.log(g);function E(f){if((Array.isArray(f)||f instanceof Uint8Array)&&(f=A.from(f)),!A.isBuffer(f))throw new TypeError("Expected Buffer");if(f.length===0)return"";for(var p=0,D=0,F=0,k=f.length;F!==k&&f[F]===0;)F++,p++;for(var L=(k-F)*u+1>>>0,K=new Uint8Array(L);F!==k;){for(var W=f[F],$=0,X=L-1;(W!==0||$<D)&&X!==-1;X--,$++)W+=256*K[X]>>>0,K[X]=W%g>>>0,W=W/g>>>0;if(W!==0)throw new Error("Non-zero carry");D=$,F++}for(var U=L-D;U!==L&&K[U]===0;)U++;for(var O=l.repeat(p);U<L;++U)O+=t.charAt(K[U]);return O}function c(f){if(typeof f!="string")throw new TypeError("Expected String");if(f.length===0)return A.alloc(0);for(var p=0,D=0,F=0;f[p]===l;)D++,p++;for(var k=(f.length-p)*B+1>>>0,L=new Uint8Array(k);p<f.length;){var K=f.charCodeAt(p);if(K>255)return;var W=s[K];if(W===255)return;for(var $=0,X=k-1;(W!==0||$<F)&&X!==-1;X--,$++)W+=g*L[X]>>>0,L[X]=W%256>>>0,W=W/256>>>0;if(W!==0)throw new Error("Non-zero carry");F=$,p++}for(var U=k-F;U!==k&&L[U]===0;)U++;var O=A.allocUnsafe(D+(k-U));O.fill(0,0,D);for(var T=D;U!==k;)O[T++]=L[U++];return O}function d(f){var p=c(f);if(p)return p;throw new Error("Non-base"+g+" character")}return{encode:E,decodeUnsafe:c,decode:d}}return Ni=e,Ni}var ki,rQ;function kx(){if(rQ)return ki;rQ=1;var A=Nx(),e="123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz";return ki=A(e),ki}function Ho(A,e,t){return e<=A&&A<=t}function $n(A){if(A===void 0)return{};if(A===Object(A))return A;throw TypeError("Could not convert argument to dictionary")}function Mx(A){for(var e=String(A),t=e.length,s=0,n=[];s<t;){var r=e.charCodeAt(s);if(r<55296||r>57343)n.push(r);else if(56320<=r&&r<=57343)n.push(65533);else if(55296<=r&&r<=56319)if(s===t-1)n.push(65533);else{var i=A.charCodeAt(s+1);if(56320<=i&&i<=57343){var a=r&1023,g=i&1023;n.push(65536+(a<<10)+g),s+=1}else n.push(65533)}s+=1}return n}function bx(A){for(var e="",t=0;t<A.length;++t){var s=A[t];s<=65535?e+=String.fromCharCode(s):(s-=65536,e+=String.fromCharCode((s>>10)+55296,(s&1023)+56320))}return e}var Nn=-1;function yg(A){this.tokens=[].slice.call(A)}yg.prototype={endOfStream:function(){return!this.tokens.length},read:function(){return this.tokens.length?this.tokens.shift():Nn},prepend:function(A){if(Array.isArray(A))for(var e=A;e.length;)this.tokens.unshift(e.pop());else this.tokens.unshift(A)},push:function(A){if(Array.isArray(A))for(var e=A;e.length;)this.tokens.push(e.shift());else this.tokens.push(A)}};var Ws=-1;function Mi(A,e){if(A)throw TypeError("Decoder error");return e||65533}var kn="utf-8";function Mn(A,e){if(!(this instanceof Mn))return new Mn(A,e);if(A=A!==void 0?String(A).toLowerCase():kn,A!==kn)throw new Error("Encoding not supported. Only utf-8 is supported");e=$n(e),this._streaming=!1,this._BOMseen=!1,this._decoder=null,this._fatal=!!e.fatal,this._ignoreBOM=!!e.ignoreBOM,Object.defineProperty(this,"encoding",{value:"utf-8"}),Object.defineProperty(this,"fatal",{value:this._fatal}),Object.defineProperty(this,"ignoreBOM",{value:this._ignoreBOM})}Mn.prototype={decode:function(e,t){var s;typeof e=="object"&&e instanceof ArrayBuffer?s=new Uint8Array(e):typeof e=="object"&&"buffer"in e&&e.buffer instanceof ArrayBuffer?s=new Uint8Array(e.buffer,e.byteOffset,e.byteLength):s=new Uint8Array(0),t=$n(t),this._streaming||(this._decoder=new Fx({fatal:this._fatal}),this._BOMseen=!1),this._streaming=!!t.stream;for(var n=new yg(s),r=[],i;!n.endOfStream()&&(i=this._decoder.handler(n,n.read()),i!==Ws);)i!==null&&(Array.isArray(i)?r.push.apply(r,i):r.push(i));if(!this._streaming){do{if(i=this._decoder.handler(n,n.read()),i===Ws)break;i!==null&&(Array.isArray(i)?r.push.apply(r,i):r.push(i))}while(!n.endOfStream());this._decoder=null}return r.length&&["utf-8"].indexOf(this.encoding)!==-1&&!this._ignoreBOM&&!this._BOMseen&&(r[0]===65279?(this._BOMseen=!0,r.shift()):this._BOMseen=!0),bx(r)}};function bn(A,e){if(!(this instanceof bn))return new bn(A,e);if(A=A!==void 0?String(A).toLowerCase():kn,A!==kn)throw new Error("Encoding not supported. Only utf-8 is supported");e=$n(e),this._streaming=!1,this._encoder=null,this._options={fatal:!!e.fatal},Object.defineProperty(this,"encoding",{value:"utf-8"})}bn.prototype={encode:function(e,t){e=e?String(e):"",t=$n(t),this._streaming||(this._encoder=new Gx(this._options)),this._streaming=!!t.stream;for(var s=[],n=new yg(Mx(e)),r;!n.endOfStream()&&(r=this._encoder.handler(n,n.read()),r!==Ws);)Array.isArray(r)?s.push.apply(s,r):s.push(r);if(!this._streaming){for(;r=this._encoder.handler(n,n.read()),r!==Ws;)Array.isArray(r)?s.push.apply(s,r):s.push(r);this._encoder=null}return new Uint8Array(s)}};function Fx(A){var e=A.fatal,t=0,s=0,n=0,r=128,i=191;this.handler=function(a,g){if(g===Nn&&n!==0)return n=0,Mi(e);if(g===Nn)return Ws;if(n===0){if(Ho(g,0,127))return g;if(Ho(g,194,223))n=1,t=g-192;else if(Ho(g,224,239))g===224&&(r=160),g===237&&(i=159),n=2,t=g-224;else if(Ho(g,240,244))g===240&&(r=144),g===244&&(i=143),n=3,t=g-240;else return Mi(e);return t=t<<6*n,null}if(!Ho(g,r,i))return t=n=s=0,r=128,i=191,a.prepend(g),Mi(e);if(r=128,i=191,s+=1,t+=g-128<<6*(n-s),s!==n)return null;var l=t;return t=n=s=0,l}}function Gx(A){A.fatal,this.handler=function(e,t){if(t===Nn)return Ws;if(Ho(t,0,127))return t;var s,n;Ho(t,128,2047)?(s=1,n=192):Ho(t,2048,65535)?(s=2,n=224):Ho(t,65536,1114111)&&(s=3,n=240);for(var r=[(t>>6*s)+n];s>0;){var i=t>>6*(s-1);r.push(128|i&63),s-=1}return r}}const vx=Object.freeze(Object.defineProperty({__proto__:null,TextDecoder:Mn,TextEncoder:bn},Symbol.toStringTag,{value:"Module"})),Sx=Ka(vx);var nQ;function Ux(){if(nQ)return Xe;nQ=1;var A=Xe&&Xe.__createBinding||(Object.create?(function(U,O,T,H){H===void 0&&(H=T),Object.defineProperty(U,H,{enumerable:!0,get:function(){return O[T]}})}):(function(U,O,T,H){H===void 0&&(H=T),U[H]=O[T]})),e=Xe&&Xe.__setModuleDefault||(Object.create?(function(U,O){Object.defineProperty(U,"default",{enumerable:!0,value:O})}):function(U,O){U.default=O}),t=Xe&&Xe.__decorate||function(U,O,T,H){var x=arguments.length,Q=x<3?O:H===null?H=Object.getOwnPropertyDescriptor(O,T):H,I;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")Q=Reflect.decorate(U,O,T,H);else for(var N=U.length-1;N>=0;N--)(I=U[N])&&(Q=(x<3?I(Q):x>3?I(O,T,Q):I(O,T))||Q);return x>3&&Q&&Object.defineProperty(O,T,Q),Q},s=Xe&&Xe.__importStar||function(U){if(U&&U.__esModule)return U;var O={};if(U!=null)for(var T in U)T!=="default"&&Object.hasOwnProperty.call(U,T)&&A(O,U,T);return e(O,U),O},n=Xe&&Xe.__importDefault||function(U){return U&&U.__esModule?U:{default:U}};Object.defineProperty(Xe,"__esModule",{value:!0}),Xe.deserializeUnchecked=Xe.deserialize=Xe.serialize=Xe.BinaryReader=Xe.BinaryWriter=Xe.BorshError=Xe.baseDecode=Xe.baseEncode=void 0;const r=n(Wc()),i=n(kx()),a=s(Sx),g=typeof TextDecoder!="function"?a.TextDecoder:TextDecoder,l=new g("utf-8",{fatal:!0});function B(U){return typeof U=="string"&&(U=Buffer.from(U,"utf8")),i.default.encode(Buffer.from(U))}Xe.baseEncode=B;function u(U){return Buffer.from(i.default.decode(U))}Xe.baseDecode=u;const E=1024;class c extends Error{constructor(O){super(O),this.fieldPath=[],this.originalMessage=O}addToFieldPath(O){this.fieldPath.splice(0,0,O),this.message=this.originalMessage+": "+this.fieldPath.join(".")}}Xe.BorshError=c;class d{constructor(){this.buf=Buffer.alloc(E),this.length=0}maybeResize(){this.buf.length<16+this.length&&(this.buf=Buffer.concat([this.buf,Buffer.alloc(E)]))}writeU8(O){this.maybeResize(),this.buf.writeUInt8(O,this.length),this.length+=1}writeU16(O){this.maybeResize(),this.buf.writeUInt16LE(O,this.length),this.length+=2}writeU32(O){this.maybeResize(),this.buf.writeUInt32LE(O,this.length),this.length+=4}writeU64(O){this.maybeResize(),this.writeBuffer(Buffer.from(new r.default(O).toArray("le",8)))}writeU128(O){this.maybeResize(),this.writeBuffer(Buffer.from(new r.default(O).toArray("le",16)))}writeU256(O){this.maybeResize(),this.writeBuffer(Buffer.from(new r.default(O).toArray("le",32)))}writeU512(O){this.maybeResize(),this.writeBuffer(Buffer.from(new r.default(O).toArray("le",64)))}writeBuffer(O){this.buf=Buffer.concat([Buffer.from(this.buf.subarray(0,this.length)),O,Buffer.alloc(E)]),this.length+=O.length}writeString(O){this.maybeResize();const T=Buffer.from(O,"utf8");this.writeU32(T.length),this.writeBuffer(T)}writeFixedArray(O){this.writeBuffer(Buffer.from(O))}writeArray(O,T){this.maybeResize(),this.writeU32(O.length);for(const H of O)this.maybeResize(),T(H)}toArray(){return this.buf.subarray(0,this.length)}}Xe.BinaryWriter=d;function f(U,O,T){const H=T.value;T.value=function(...x){try{return H.apply(this,x)}catch(Q){if(Q instanceof RangeError){const I=Q.code;if(["ERR_BUFFER_OUT_OF_BOUNDS","ERR_OUT_OF_RANGE"].indexOf(I)>=0)throw new c("Reached the end of buffer when deserializing")}throw Q}}}class p{constructor(O){this.buf=O,this.offset=0}readU8(){const O=this.buf.readUInt8(this.offset);return this.offset+=1,O}readU16(){const O=this.buf.readUInt16LE(this.offset);return this.offset+=2,O}readU32(){const O=this.buf.readUInt32LE(this.offset);return this.offset+=4,O}readU64(){const O=this.readBuffer(8);return new r.default(O,"le")}readU128(){const O=this.readBuffer(16);return new r.default(O,"le")}readU256(){const O=this.readBuffer(32);return new r.default(O,"le")}readU512(){const O=this.readBuffer(64);return new r.default(O,"le")}readBuffer(O){if(this.offset+O>this.buf.length)throw new c(`Expected buffer length ${O} isn't within bounds`);const T=this.buf.slice(this.offset,this.offset+O);return this.offset+=O,T}readString(){const O=this.readU32(),T=this.readBuffer(O);try{return l.decode(T)}catch(H){throw new c(`Error decoding UTF-8 string: ${H}`)}}readFixedArray(O){return new Uint8Array(this.readBuffer(O))}readArray(O){const T=this.readU32(),H=Array();for(let x=0;x<T;++x)H.push(O());return H}}t([f],p.prototype,"readU8",null),t([f],p.prototype,"readU16",null),t([f],p.prototype,"readU32",null),t([f],p.prototype,"readU64",null),t([f],p.prototype,"readU128",null),t([f],p.prototype,"readU256",null),t([f],p.prototype,"readU512",null),t([f],p.prototype,"readString",null),t([f],p.prototype,"readFixedArray",null),t([f],p.prototype,"readArray",null),Xe.BinaryReader=p;function D(U){return U.charAt(0).toUpperCase()+U.slice(1)}function F(U,O,T,H,x){try{if(typeof H=="string")x[`write${D(H)}`](T);else if(H instanceof Array)if(typeof H[0]=="number"){if(T.length!==H[0])throw new c(`Expecting byte array of length ${H[0]}, but got ${T.length} bytes`);x.writeFixedArray(T)}else if(H.length===2&&typeof H[1]=="number"){if(T.length!==H[1])throw new c(`Expecting byte array of length ${H[1]}, but got ${T.length} bytes`);for(let Q=0;Q<H[1];Q++)F(U,null,T[Q],H[0],x)}else x.writeArray(T,Q=>{F(U,O,Q,H[0],x)});else if(H.kind!==void 0)switch(H.kind){case"option":{T==null?x.writeU8(0):(x.writeU8(1),F(U,O,T,H.type,x));break}case"map":{x.writeU32(T.size),T.forEach((Q,I)=>{F(U,O,I,H.key,x),F(U,O,Q,H.value,x)});break}default:throw new c(`FieldType ${H} unrecognized`)}else k(U,T,x)}catch(Q){throw Q instanceof c&&Q.addToFieldPath(O),Q}}function k(U,O,T){if(typeof O.borshSerialize=="function"){O.borshSerialize(T);return}const H=U.get(O.constructor);if(!H)throw new c(`Class ${O.constructor.name} is missing in schema`);if(H.kind==="struct")H.fields.map(([x,Q])=>{F(U,x,O[x],Q,T)});else if(H.kind==="enum"){const x=O[H.field];for(let Q=0;Q<H.values.length;++Q){const[I,N]=H.values[Q];if(I===x){T.writeU8(Q),F(U,I,O[I],N,T);break}}}else throw new c(`Unexpected schema kind: ${H.kind} for ${O.constructor.name}`)}function L(U,O,T=d){const H=new T;return k(U,O,H),H.toArray()}Xe.serialize=L;function K(U,O,T,H){try{if(typeof T=="string")return H[`read${D(T)}`]();if(T instanceof Array){if(typeof T[0]=="number")return H.readFixedArray(T[0]);if(typeof T[1]=="number"){const x=[];for(let Q=0;Q<T[1];Q++)x.push(K(U,null,T[0],H));return x}else return H.readArray(()=>K(U,O,T[0],H))}if(T.kind==="option")return H.readU8()?K(U,O,T.type,H):void 0;if(T.kind==="map"){let x=new Map;const Q=H.readU32();for(let I=0;I<Q;I++){const N=K(U,O,T.key,H),G=K(U,O,T.value,H);x.set(N,G)}return x}return W(U,T,H)}catch(x){throw x instanceof c&&x.addToFieldPath(O),x}}function W(U,O,T){if(typeof O.borshDeserialize=="function")return O.borshDeserialize(T);const H=U.get(O);if(!H)throw new c(`Class ${O.name} is missing in schema`);if(H.kind==="struct"){const x={};for(const[Q,I]of U.get(O).fields)x[Q]=K(U,Q,I,T);return new O(x)}if(H.kind==="enum"){const x=T.readU8();if(x>=H.values.length)throw new c(`Enum index: ${x} is out of range`);const[Q,I]=H.values[x],N=K(U,Q,I,T);return new O({[Q]:N})}throw new c(`Unexpected schema kind: ${H.kind} for ${O.constructor.name}`)}function $(U,O,T,H=p){const x=new H(T),Q=W(U,O,x);if(x.offset<T.length)throw new c(`Unexpected ${T.length-x.offset} bytes after deserialized data`);return Q}Xe.deserialize=$;function X(U,O,T,H=p){const x=new H(T);return W(U,O,x)}return Xe.deserializeUnchecked=X,Xe}var bi=Ux(),cA={},iQ;function Rx(){if(iQ)return cA;iQ=1,Object.defineProperty(cA,"__esModule",{value:!0}),cA.s16=cA.s8=cA.nu64be=cA.u48be=cA.u40be=cA.u32be=cA.u24be=cA.u16be=cA.nu64=cA.u48=cA.u40=cA.u32=cA.u24=cA.u16=cA.u8=cA.offset=cA.greedy=cA.Constant=cA.UTF8=cA.CString=cA.Blob=cA.Boolean=cA.BitField=cA.BitStructure=cA.VariantLayout=cA.Union=cA.UnionLayoutDiscriminator=cA.UnionDiscriminator=cA.Structure=cA.Sequence=cA.DoubleBE=cA.Double=cA.FloatBE=cA.Float=cA.NearInt64BE=cA.NearInt64=cA.NearUInt64BE=cA.NearUInt64=cA.IntBE=cA.Int=cA.UIntBE=cA.UInt=cA.OffsetLayout=cA.GreedyCount=cA.ExternalLayout=cA.bindConstructorLayout=cA.nameWithProperty=cA.Layout=cA.uint8ArrayToBuffer=cA.checkUint8Array=void 0,cA.constant=cA.utf8=cA.cstr=cA.blob=cA.unionLayoutDiscriminator=cA.union=cA.seq=cA.bits=cA.struct=cA.f64be=cA.f64=cA.f32be=cA.f32=cA.ns64be=cA.s48be=cA.s40be=cA.s32be=cA.s24be=cA.s16be=cA.ns64=cA.s48=cA.s40=cA.s32=cA.s24=void 0;const A=hg();function e(C){if(!(C instanceof Uint8Array))throw new TypeError("b must be a Uint8Array")}cA.checkUint8Array=e;function t(C){return e(C),A.Buffer.from(C.buffer,C.byteOffset,C.length)}cA.uint8ArrayToBuffer=t;let s=class{constructor(h,v){if(!Number.isInteger(h))throw new TypeError("span must be an integer");this.span=h,this.property=v}makeDestinationObject(){return{}}getSpan(h,v){if(0>this.span)throw new RangeError("indeterminate span");return this.span}replicate(h){const v=Object.create(this.constructor.prototype);return Object.assign(v,this),v.property=h,v}fromArray(h){}};cA.Layout=s;function n(C,h){return h.property?C+"["+h.property+"]":C}cA.nameWithProperty=n;function r(C,h){if(typeof C!="function")throw new TypeError("Class must be constructor");if(Object.prototype.hasOwnProperty.call(C,"layout_"))throw new Error("Class is already bound to a layout");if(!(h&&h instanceof s))throw new TypeError("layout must be a Layout");if(Object.prototype.hasOwnProperty.call(h,"boundConstructor_"))throw new Error("layout is already bound to a constructor");C.layout_=h,h.boundConstructor_=C,h.makeDestinationObject=(()=>new C),Object.defineProperty(C.prototype,"encode",{value(v,S){return h.encode(this,v,S)},writable:!0}),Object.defineProperty(C,"decode",{value(v,S){return h.decode(v,S)},writable:!0})}cA.bindConstructorLayout=r;class i extends s{isCount(){throw new Error("ExternalLayout is abstract")}}cA.ExternalLayout=i;class a extends i{constructor(h=1,v){if(!Number.isInteger(h)||0>=h)throw new TypeError("elementSpan must be a (positive) integer");super(-1,v),this.elementSpan=h}isCount(){return!0}decode(h,v=0){e(h);const S=h.length-v;return Math.floor(S/this.elementSpan)}encode(h,v,S){return 0}}cA.GreedyCount=a;class g extends i{constructor(h,v=0,S){if(!(h instanceof s))throw new TypeError("layout must be a Layout");if(!Number.isInteger(v))throw new TypeError("offset must be integer or undefined");super(h.span,S||h.property),this.layout=h,this.offset=v}isCount(){return this.layout instanceof l||this.layout instanceof B}decode(h,v=0){return this.layout.decode(h,v+this.offset)}encode(h,v,S=0){return this.layout.encode(h,v,S+this.offset)}}cA.OffsetLayout=g;class l extends s{constructor(h,v){if(super(h,v),6<this.span)throw new RangeError("span must not exceed 6 bytes")}decode(h,v=0){return t(h).readUIntLE(v,this.span)}encode(h,v,S=0){return t(v).writeUIntLE(h,S,this.span),this.span}}cA.UInt=l;class B extends s{constructor(h,v){if(super(h,v),6<this.span)throw new RangeError("span must not exceed 6 bytes")}decode(h,v=0){return t(h).readUIntBE(v,this.span)}encode(h,v,S=0){return t(v).writeUIntBE(h,S,this.span),this.span}}cA.UIntBE=B;class u extends s{constructor(h,v){if(super(h,v),6<this.span)throw new RangeError("span must not exceed 6 bytes")}decode(h,v=0){return t(h).readIntLE(v,this.span)}encode(h,v,S=0){return t(v).writeIntLE(h,S,this.span),this.span}}cA.Int=u;class E extends s{constructor(h,v){if(super(h,v),6<this.span)throw new RangeError("span must not exceed 6 bytes")}decode(h,v=0){return t(h).readIntBE(v,this.span)}encode(h,v,S=0){return t(v).writeIntBE(h,S,this.span),this.span}}cA.IntBE=E;const c=Math.pow(2,32);function d(C){const h=Math.floor(C/c),v=C-h*c;return{hi32:h,lo32:v}}function f(C,h){return C*c+h}class p extends s{constructor(h){super(8,h)}decode(h,v=0){const S=t(h),Z=S.readUInt32LE(v),eA=S.readUInt32LE(v+4);return f(eA,Z)}encode(h,v,S=0){const Z=d(h),eA=t(v);return eA.writeUInt32LE(Z.lo32,S),eA.writeUInt32LE(Z.hi32,S+4),8}}cA.NearUInt64=p;class D extends s{constructor(h){super(8,h)}decode(h,v=0){const S=t(h),Z=S.readUInt32BE(v),eA=S.readUInt32BE(v+4);return f(Z,eA)}encode(h,v,S=0){const Z=d(h),eA=t(v);return eA.writeUInt32BE(Z.hi32,S),eA.writeUInt32BE(Z.lo32,S+4),8}}cA.NearUInt64BE=D;class F extends s{constructor(h){super(8,h)}decode(h,v=0){const S=t(h),Z=S.readUInt32LE(v),eA=S.readInt32LE(v+4);return f(eA,Z)}encode(h,v,S=0){const Z=d(h),eA=t(v);return eA.writeUInt32LE(Z.lo32,S),eA.writeInt32LE(Z.hi32,S+4),8}}cA.NearInt64=F;class k extends s{constructor(h){super(8,h)}decode(h,v=0){const S=t(h),Z=S.readInt32BE(v),eA=S.readUInt32BE(v+4);return f(Z,eA)}encode(h,v,S=0){const Z=d(h),eA=t(v);return eA.writeInt32BE(Z.hi32,S),eA.writeUInt32BE(Z.lo32,S+4),8}}cA.NearInt64BE=k;class L extends s{constructor(h){super(4,h)}decode(h,v=0){return t(h).readFloatLE(v)}encode(h,v,S=0){return t(v).writeFloatLE(h,S),4}}cA.Float=L;class K extends s{constructor(h){super(4,h)}decode(h,v=0){return t(h).readFloatBE(v)}encode(h,v,S=0){return t(v).writeFloatBE(h,S),4}}cA.FloatBE=K;class W extends s{constructor(h){super(8,h)}decode(h,v=0){return t(h).readDoubleLE(v)}encode(h,v,S=0){return t(v).writeDoubleLE(h,S),8}}cA.Double=W;class $ extends s{constructor(h){super(8,h)}decode(h,v=0){return t(h).readDoubleBE(v)}encode(h,v,S=0){return t(v).writeDoubleBE(h,S),8}}cA.DoubleBE=$;class X extends s{constructor(h,v,S){if(!(h instanceof s))throw new TypeError("elementLayout must be a Layout");if(!(v instanceof i&&v.isCount()||Number.isInteger(v)&&0<=v))throw new TypeError("count must be non-negative integer or an unsigned integer ExternalLayout");let Z=-1;!(v instanceof i)&&0<h.span&&(Z=v*h.span),super(Z,S),this.elementLayout=h,this.count=v}getSpan(h,v=0){if(0<=this.span)return this.span;let S=0,Z=this.count;if(Z instanceof i&&(Z=Z.decode(h,v)),0<this.elementLayout.span)S=Z*this.elementLayout.span;else{let eA=0;for(;eA<Z;)S+=this.elementLayout.getSpan(h,v+S),++eA}return S}decode(h,v=0){const S=[];let Z=0,eA=this.count;for(eA instanceof i&&(eA=eA.decode(h,v));Z<eA;)S.push(this.elementLayout.decode(h,v)),v+=this.elementLayout.getSpan(h,v),Z+=1;return S}encode(h,v,S=0){const Z=this.elementLayout,eA=h.reduce((rA,sA)=>rA+Z.encode(sA,v,S+rA),0);return this.count instanceof i&&this.count.encode(h.length,v,S),eA}}cA.Sequence=X;class U extends s{constructor(h,v,S){if(!(Array.isArray(h)&&h.reduce((eA,rA)=>eA&&rA instanceof s,!0)))throw new TypeError("fields must be array of Layout instances");typeof v=="boolean"&&S===void 0&&(S=v,v=void 0);for(const eA of h)if(0>eA.span&&eA.property===void 0)throw new Error("fields cannot contain unnamed variable-length layout");let Z=-1;try{Z=h.reduce((eA,rA)=>eA+rA.getSpan(),0)}catch{}super(Z,v),this.fields=h,this.decodePrefixes=!!S}getSpan(h,v=0){if(0<=this.span)return this.span;let S=0;try{S=this.fields.reduce((Z,eA)=>{const rA=eA.getSpan(h,v);return v+=rA,Z+rA},0)}catch{throw new RangeError("indeterminate span")}return S}decode(h,v=0){e(h);const S=this.makeDestinationObject();for(const Z of this.fields)if(Z.property!==void 0&&(S[Z.property]=Z.decode(h,v)),v+=Z.getSpan(h,v),this.decodePrefixes&&h.length===v)break;return S}encode(h,v,S=0){const Z=S;let eA=0,rA=0;for(const sA of this.fields){let bA=sA.span;if(rA=0<bA?bA:0,sA.property!==void 0){const LA=h[sA.property];LA!==void 0&&(rA=sA.encode(LA,v,S),0>bA&&(bA=sA.getSpan(v,S)))}eA=S,S+=bA}return eA+rA-Z}fromArray(h){const v=this.makeDestinationObject();for(const S of this.fields)S.property!==void 0&&0<h.length&&(v[S.property]=h.shift());return v}layoutFor(h){if(typeof h!="string")throw new TypeError("property must be string");for(const v of this.fields)if(v.property===h)return v}offsetOf(h){if(typeof h!="string")throw new TypeError("property must be string");let v=0;for(const S of this.fields){if(S.property===h)return v;0>S.span?v=-1:0<=v&&(v+=S.span)}}}cA.Structure=U;class O{constructor(h){this.property=h}decode(h,v){throw new Error("UnionDiscriminator is abstract")}encode(h,v,S){throw new Error("UnionDiscriminator is abstract")}}cA.UnionDiscriminator=O;class T extends O{constructor(h,v){if(!(h instanceof i&&h.isCount()))throw new TypeError("layout must be an unsigned integer ExternalLayout");super(v||h.property||"variant"),this.layout=h}decode(h,v){return this.layout.decode(h,v)}encode(h,v,S){return this.layout.encode(h,v,S)}}cA.UnionLayoutDiscriminator=T;class H extends s{constructor(h,v,S){let Z;if(h instanceof l||h instanceof B)Z=new T(new g(h));else if(h instanceof i&&h.isCount())Z=new T(h);else if(h instanceof O)Z=h;else throw new TypeError("discr must be a UnionDiscriminator or an unsigned integer layout");if(v===void 0&&(v=null),!(v===null||v instanceof s))throw new TypeError("defaultLayout must be null or a Layout");if(v!==null){if(0>v.span)throw new Error("defaultLayout must have constant span");v.property===void 0&&(v=v.replicate("content"))}let eA=-1;v&&(eA=v.span,0<=eA&&(h instanceof l||h instanceof B)&&(eA+=Z.layout.span)),super(eA,S),this.discriminator=Z,this.usesPrefixDiscriminator=h instanceof l||h instanceof B,this.defaultLayout=v,this.registry={};let rA=this.defaultGetSourceVariant.bind(this);this.getSourceVariant=function(sA){return rA(sA)},this.configGetSourceVariant=function(sA){rA=sA.bind(this)}}getSpan(h,v=0){if(0<=this.span)return this.span;const S=this.getVariant(h,v);if(!S)throw new Error("unable to determine span for unrecognized variant");return S.getSpan(h,v)}defaultGetSourceVariant(h){if(Object.prototype.hasOwnProperty.call(h,this.discriminator.property)){if(this.defaultLayout&&this.defaultLayout.property&&Object.prototype.hasOwnProperty.call(h,this.defaultLayout.property))return;const v=this.registry[h[this.discriminator.property]];if(v&&(!v.layout||v.property&&Object.prototype.hasOwnProperty.call(h,v.property)))return v}else for(const v in this.registry){const S=this.registry[v];if(S.property&&Object.prototype.hasOwnProperty.call(h,S.property))return S}throw new Error("unable to infer src variant")}decode(h,v=0){let S;const Z=this.discriminator,eA=Z.decode(h,v),rA=this.registry[eA];if(rA===void 0){const sA=this.defaultLayout;let bA=0;this.usesPrefixDiscriminator&&(bA=Z.layout.span),S=this.makeDestinationObject(),S[Z.property]=eA,S[sA.property]=sA.decode(h,v+bA)}else S=rA.decode(h,v);return S}encode(h,v,S=0){const Z=this.getSourceVariant(h);if(Z===void 0){const eA=this.discriminator,rA=this.defaultLayout;let sA=0;return this.usesPrefixDiscriminator&&(sA=eA.layout.span),eA.encode(h[eA.property],v,S),sA+rA.encode(h[rA.property],v,S+sA)}return Z.encode(h,v,S)}addVariant(h,v,S){const Z=new x(this,h,v,S);return this.registry[h]=Z,Z}getVariant(h,v=0){let S;return h instanceof Uint8Array?S=this.discriminator.decode(h,v):S=h,this.registry[S]}}cA.Union=H;class x extends s{constructor(h,v,S,Z){if(!(h instanceof H))throw new TypeError("union must be a Union");if(!Number.isInteger(v)||0>v)throw new TypeError("variant must be a (non-negative) integer");if(typeof S=="string"&&Z===void 0&&(Z=S,S=null),S){if(!(S instanceof s))throw new TypeError("layout must be a Layout");if(h.defaultLayout!==null&&0<=S.span&&S.span>h.defaultLayout.span)throw new Error("variant span exceeds span of containing union");if(typeof Z!="string")throw new TypeError("variant must have a String property")}let eA=h.span;0>h.span&&(eA=S?S.span:0,0<=eA&&h.usesPrefixDiscriminator&&(eA+=h.discriminator.layout.span)),super(eA,Z),this.union=h,this.variant=v,this.layout=S||null}getSpan(h,v=0){if(0<=this.span)return this.span;let S=0;this.union.usesPrefixDiscriminator&&(S=this.union.discriminator.layout.span);let Z=0;return this.layout&&(Z=this.layout.getSpan(h,v+S)),S+Z}decode(h,v=0){const S=this.makeDestinationObject();if(this!==this.union.getVariant(h,v))throw new Error("variant mismatch");let Z=0;return this.union.usesPrefixDiscriminator&&(Z=this.union.discriminator.layout.span),this.layout?S[this.property]=this.layout.decode(h,v+Z):this.property?S[this.property]=!0:this.union.usesPrefixDiscriminator&&(S[this.union.discriminator.property]=this.variant),S}encode(h,v,S=0){let Z=0;if(this.union.usesPrefixDiscriminator&&(Z=this.union.discriminator.layout.span),this.layout&&!Object.prototype.hasOwnProperty.call(h,this.property))throw new TypeError("variant lacks property "+this.property);this.union.discriminator.encode(this.variant,v,S);let eA=Z;if(this.layout&&(this.layout.encode(h[this.property],v,S+Z),eA+=this.layout.getSpan(v,S+Z),0<=this.union.span&&eA>this.union.span))throw new Error("encoded variant overruns containing union");return eA}fromArray(h){if(this.layout)return this.layout.fromArray(h)}}cA.VariantLayout=x;function Q(C){return 0>C&&(C+=4294967296),C}class I extends s{constructor(h,v,S){if(!(h instanceof l||h instanceof B))throw new TypeError("word must be a UInt or UIntBE layout");if(typeof v=="string"&&S===void 0&&(S=v,v=!1),4<h.span)throw new RangeError("word cannot exceed 32 bits");super(h.span,S),this.word=h,this.msb=!!v,this.fields=[];let Z=0;this._packedSetValue=function(eA){return Z=Q(eA),this},this._packedGetValue=function(){return Z}}decode(h,v=0){const S=this.makeDestinationObject(),Z=this.word.decode(h,v);this._packedSetValue(Z);for(const eA of this.fields)eA.property!==void 0&&(S[eA.property]=eA.decode(h));return S}encode(h,v,S=0){const Z=this.word.decode(v,S);this._packedSetValue(Z);for(const eA of this.fields)if(eA.property!==void 0){const rA=h[eA.property];rA!==void 0&&eA.encode(rA)}return this.word.encode(this._packedGetValue(),v,S)}addField(h,v){const S=new N(this,h,v);return this.fields.push(S),S}addBoolean(h){const v=new G(this,h);return this.fields.push(v),v}fieldFor(h){if(typeof h!="string")throw new TypeError("property must be string");for(const v of this.fields)if(v.property===h)return v}}cA.BitStructure=I;class N{constructor(h,v,S){if(!(h instanceof I))throw new TypeError("container must be a BitStructure");if(!Number.isInteger(v)||0>=v)throw new TypeError("bits must be positive integer");const Z=8*h.span,eA=h.fields.reduce((rA,sA)=>rA+sA.bits,0);if(v+eA>Z)throw new Error("bits too long for span remainder ("+(Z-eA)+" of "+Z+" remain)");this.container=h,this.bits=v,this.valueMask=(1<<v)-1,v===32&&(this.valueMask=4294967295),this.start=eA,this.container.msb&&(this.start=Z-eA-v),this.wordMask=Q(this.valueMask<<this.start),this.property=S}decode(h,v){const S=this.container._packedGetValue();return Q(S&this.wordMask)>>>this.start}encode(h){if(typeof h!="number"||!Number.isInteger(h)||h!==Q(h&this.valueMask))throw new TypeError(n("BitField.encode",this)+" value must be integer not exceeding "+this.valueMask);const v=this.container._packedGetValue(),S=Q(h<<this.start);this.container._packedSetValue(Q(v&~this.wordMask)|S)}}cA.BitField=N;class G extends N{constructor(h,v){super(h,1,v)}decode(h,v){return!!super.decode(h,v)}encode(h){typeof h=="boolean"&&(h=+h),super.encode(h)}}cA.Boolean=G;class J extends s{constructor(h,v){if(!(h instanceof i&&h.isCount()||Number.isInteger(h)&&0<=h))throw new TypeError("length must be positive integer or an unsigned integer ExternalLayout");let S=-1;h instanceof i||(S=h),super(S,v),this.length=h}getSpan(h,v){let S=this.span;return 0>S&&(S=this.length.decode(h,v)),S}decode(h,v=0){let S=this.span;return 0>S&&(S=this.length.decode(h,v)),t(h).slice(v,v+S)}encode(h,v,S){let Z=this.length;if(this.length instanceof i&&(Z=h.length),!(h instanceof Uint8Array&&Z===h.length))throw new TypeError(n("Blob.encode",this)+" requires (length "+Z+") Uint8Array as src");if(S+Z>v.length)throw new RangeError("encoding overruns Uint8Array");const eA=t(h);return t(v).write(eA.toString("hex"),S,Z,"hex"),this.length instanceof i&&this.length.encode(Z,v,S),Z}}cA.Blob=J;class q extends s{constructor(h){super(-1,h)}getSpan(h,v=0){e(h);let S=v;for(;S<h.length&&h[S]!==0;)S+=1;return 1+S-v}decode(h,v=0){const S=this.getSpan(h,v);return t(h).slice(v,v+S-1).toString("utf-8")}encode(h,v,S=0){typeof h!="string"&&(h=String(h));const Z=A.Buffer.from(h,"utf8"),eA=Z.length;if(S+eA>v.length)throw new RangeError("encoding overruns Buffer");const rA=t(v);return Z.copy(rA,S),rA[S+eA]=0,eA+1}}cA.CString=q;class j extends s{constructor(h,v){if(typeof h=="string"&&v===void 0&&(v=h,h=void 0),h===void 0)h=-1;else if(!Number.isInteger(h))throw new TypeError("maxSpan must be an integer");super(-1,v),this.maxSpan=h}getSpan(h,v=0){return e(h),h.length-v}decode(h,v=0){const S=this.getSpan(h,v);if(0<=this.maxSpan&&this.maxSpan<S)throw new RangeError("text length exceeds maxSpan");return t(h).slice(v,v+S).toString("utf-8")}encode(h,v,S=0){typeof h!="string"&&(h=String(h));const Z=A.Buffer.from(h,"utf8"),eA=Z.length;if(0<=this.maxSpan&&this.maxSpan<eA)throw new RangeError("text length exceeds maxSpan");if(S+eA>v.length)throw new RangeError("encoding overruns Buffer");return Z.copy(t(v),S),eA}}cA.UTF8=j;class R extends s{constructor(h,v){super(0,v),this.value=h}decode(h,v){return this.value}encode(h,v,S){return 0}}return cA.Constant=R,cA.greedy=((C,h)=>new a(C,h)),cA.offset=((C,h,v)=>new g(C,h,v)),cA.u8=(C=>new l(1,C)),cA.u16=(C=>new l(2,C)),cA.u24=(C=>new l(3,C)),cA.u32=(C=>new l(4,C)),cA.u40=(C=>new l(5,C)),cA.u48=(C=>new l(6,C)),cA.nu64=(C=>new p(C)),cA.u16be=(C=>new B(2,C)),cA.u24be=(C=>new B(3,C)),cA.u32be=(C=>new B(4,C)),cA.u40be=(C=>new B(5,C)),cA.u48be=(C=>new B(6,C)),cA.nu64be=(C=>new D(C)),cA.s8=(C=>new u(1,C)),cA.s16=(C=>new u(2,C)),cA.s24=(C=>new u(3,C)),cA.s32=(C=>new u(4,C)),cA.s40=(C=>new u(5,C)),cA.s48=(C=>new u(6,C)),cA.ns64=(C=>new F(C)),cA.s16be=(C=>new E(2,C)),cA.s24be=(C=>new E(3,C)),cA.s32be=(C=>new E(4,C)),cA.s40be=(C=>new E(5,C)),cA.s48be=(C=>new E(6,C)),cA.ns64be=(C=>new k(C)),cA.f32=(C=>new L(C)),cA.f32be=(C=>new K(C)),cA.f64=(C=>new W(C)),cA.f64be=(C=>new $(C)),cA.struct=((C,h,v)=>new U(C,h,v)),cA.bits=((C,h,v)=>new I(C,h,v)),cA.seq=((C,h,v)=>new X(C,h,v)),cA.union=((C,h,v)=>new H(C,h,v)),cA.unionLayoutDiscriminator=((C,h)=>new T(C,h)),cA.blob=((C,h)=>new J(C,h)),cA.cstr=(C=>new q(C)),cA.utf8=((C,h)=>new j(C,h)),cA.constant=((C,h)=>new R(C,h)),cA}var iA=Rx(),Kx=8078011;function Vc(A){return Array.isArray(A)?"%5B"+A.map(Vc).join("%2C%20")+"%5D":typeof A=="bigint"?`${A}n`:encodeURIComponent(String(A!=null&&Object.getPrototypeOf(A)===null?{...A}:A))}function Lx([A,e]){return`${A}=${Vc(e)}`}function Jx(A){const e=Object.entries(A).map(Lx).join("&");return btoa(e)}function jx(A,e={}){{let t=`Solana error #${A}; Decode this error by running \`npx @solana/errors decode -- ${A}`;return Object.keys(e).length&&(t+=` '${Jx(e)}'`),`${t}\``}}var Tx=class extends Error{cause=this.cause;context;constructor(...[e,t]){let s,n;if(t){const{cause:i,...a}=t;i&&(n={cause:i}),Object.keys(a).length>0&&(s=a)}const r=jx(e,s);super(r,n),this.context={__code:e,...s},this.name="SolanaError"}},Ox=8078e3,qx=8078001,Yx=8078004,Hx=8078005,Px=8078006;function _c(A){return Array.isArray(A)?"%5B"+A.map(_c).join("%2C%20")+"%5D":typeof A=="bigint"?`${A}n`:encodeURIComponent(String(A!=null&&Object.getPrototypeOf(A)===null?{...A}:A))}function Wx([A,e]){return`${A}=${_c(e)}`}function zx(A){const e=Object.entries(A).map(Wx).join("&");return btoa(e)}function Vx(A,e={}){{let t=`Solana error #${A}; Decode this error by running \`npx @solana/errors decode -- ${A}`;return Object.keys(e).length&&(t+=` '${zx(e)}'`),`${t}\``}}var ur=class extends Error{cause=this.cause;context;constructor(...[A,e]){let t,s;if(e){const{cause:r,...i}=e;r&&(s={cause:r}),Object.keys(i).length>0&&(t=i)}const n=Vx(A,t);super(n,s),this.context={__code:A,...t},this.name="SolanaError"}};function _x(A,e){return"fixedSize"in e?e.fixedSize:e.getSizeFromValue(A)}function Zx(A){return Object.freeze({...A,encode:e=>{const t=new Uint8Array(_x(e,A));return A.write(e,t,0),t}})}function Xx(A){return Object.freeze({...A,decode:(e,t=0)=>A.read(e,t)[0]})}function Rs(A){return"fixedSize"in A&&typeof A.fixedSize=="number"}function $x(A,e){if(Rs(A)!==Rs(e))throw new ur(Yx);if(Rs(A)&&Rs(e)&&A.fixedSize!==e.fixedSize)throw new ur(Hx,{decoderFixedSize:e.fixedSize,encoderFixedSize:A.fixedSize});if(!Rs(A)&&!Rs(e)&&A.maxSize!==e.maxSize)throw new ur(Px,{decoderMaxSize:e.maxSize,encoderMaxSize:A.maxSize});return{...e,...A,decode:e.decode,encode:A.encode,read:e.read,write:A.write}}function AD(A,e,t=0){if(e.length-t<=0)throw new ur(Ox,{codecDescription:A})}function eD(A,e,t,s=0){const n=t.length-s;if(n<e)throw new ur(qx,{bytesLength:n,codecDescription:A,expected:e})}function tD(A,e,t,s){if(s<e||s>t)throw new Tx(Kx,{codecDescription:A,max:t,min:e,value:s})}function Zc(A){return A?.endian!==1}function oD(A){return Zx({fixedSize:A.size,write(e,t,s){A.range&&tD(A.name,A.range[0],A.range[1],e);const n=new ArrayBuffer(A.size);return A.set(new DataView(n),e,Zc(A.config)),t.set(new Uint8Array(n),s),s+A.size}})}function sD(A){return Xx({fixedSize:A.size,read(e,t=0){AD(A.name,e,t),eD(A.name,A.size,e,t);const s=new DataView(rD(e,t,A.size));return[A.get(s,Zc(A.config)),t+A.size]}})}function rD(A,e,t){const s=A.byteOffset+(e??0),n=t??A.byteLength;return A.buffer.slice(s,s+n)}var nD=(A={})=>oD({config:A,name:"u64",range:[0n,BigInt("0xffffffffffffffff")],set:(e,t,s)=>e.setBigUint64(0,BigInt(t),s),size:8}),iD=(A={})=>sD({config:A,get:(e,t)=>e.getBigUint64(0,t),name:"u64",size:8}),aD=(A={})=>$x(nD(A),iD(A));class gD extends TypeError{constructor(e,t){let s;const{message:n,explanation:r,...i}=e,{path:a}=e,g=a.length===0?n:`At path: ${a.join(".")} -- ${n}`;super(r??g),r!=null&&(this.cause=g),Object.assign(this,i),this.name=this.constructor.name,this.failures=()=>s??(s=[e,...t()])}}function lD(A){return Or(A)&&typeof A[Symbol.iterator]=="function"}function Or(A){return typeof A=="object"&&A!=null}function Fn(A){return Or(A)&&!Array.isArray(A)}function mo(A){return typeof A=="symbol"?A.toString():typeof A=="string"?JSON.stringify(A):`${A}`}function QD(A){const{done:e,value:t}=A.next();return e?void 0:t}function BD(A,e,t,s){if(A===!0)return;A===!1?A={}:typeof A=="string"&&(A={message:A});const{path:n,branch:r}=e,{type:i}=t,{refinement:a,message:g=`Expected a value of type \`${i}\`${a?` with refinement \`${a}\``:""}, but received: \`${mo(s)}\``}=A;return{value:s,type:i,refinement:a,key:n[n.length-1],path:n,branch:r,...A,message:g}}function*aQ(A,e,t,s){lD(A)||(A=[A]);for(const n of A){const r=BD(n,e,t,s);r&&(yield r)}}function*Ng(A,e,t={}){const{path:s=[],branch:n=[A],coerce:r=!1,mask:i=!1}=t,a={path:s,branch:n,mask:i};r&&(A=e.coercer(A,a));let g="valid";for(const l of e.validator(A,a))l.explanation=t.message,g="not_valid",yield[l,void 0];for(let[l,B,u]of e.entries(A,a)){const E=Ng(B,u,{path:l===void 0?s:[...s,l],branch:l===void 0?n:[...n,B],coerce:r,mask:i,message:t.message});for(const c of E)c[0]?(g=c[0].refinement!=null?"not_refined":"not_valid",yield[c[0],void 0]):r&&(B=c[1],l===void 0?A=B:A instanceof Map?A.set(l,B):A instanceof Set?A.add(B):Or(A)&&(B!==void 0||l in A)&&(A[l]=B))}if(g!=="not_valid")for(const l of e.refiner(A,a))l.explanation=t.message,g="not_refined",yield[l,void 0];g==="valid"&&(yield[void 0,A])}let Uo=class{constructor(e){const{type:t,schema:s,validator:n,refiner:r,coercer:i=g=>g,entries:a=function*(){}}=e;this.type=t,this.schema=s,this.entries=a,this.coercer=i,n?this.validator=(g,l)=>{const B=n(g,l);return aQ(B,l,this,g)}:this.validator=()=>[],r?this.refiner=(g,l)=>{const B=r(g,l);return aQ(B,l,this,g)}:this.refiner=()=>[]}assert(e,t){return cD(e,this,t)}create(e,t){return xr(e,this,t)}is(e){return Xc(e,this)}mask(e,t){return ED(e,this,t)}validate(e,t={}){return qr(e,this,t)}};function cD(A,e,t){const s=qr(A,e,{message:t});if(s[0])throw s[0]}function xr(A,e,t){const s=qr(A,e,{coerce:!0,message:t});if(s[0])throw s[0];return s[1]}function ED(A,e,t){const s=qr(A,e,{coerce:!0,mask:!0,message:t});if(s[0])throw s[0];return s[1]}function Xc(A,e){return!qr(A,e)[0]}function qr(A,e,t={}){const s=Ng(A,e,t),n=QD(s);return n[0]?[new gD(n[0],function*(){for(const i of s)i[0]&&(yield i[0])}),void 0]:[void 0,n[1]]}function Ns(A,e){return new Uo({type:A,schema:null,validator:e})}function CD(){return Ns("any",()=>!0)}function TA(A){return new Uo({type:"array",schema:A,*entries(e){if(A&&Array.isArray(e))for(const[t,s]of e.entries())yield[t,s,A]},coercer(e){return Array.isArray(e)?e.slice():e},validator(e){return Array.isArray(e)||`Expected an array value, but received: ${mo(e)}`}})}function Go(){return Ns("boolean",A=>typeof A=="boolean")}function kg(A){return Ns("instance",e=>e instanceof A||`Expected a \`${A.name}\` instance, but received: ${mo(e)}`)}function Bt(A){const e=mo(A),t=typeof A;return new Uo({type:"literal",schema:t==="string"||t==="number"||t==="boolean"?A:null,validator(s){return s===A||`Expected the literal \`${e}\`, but received: ${mo(s)}`}})}function uD(){return Ns("never",()=>!1)}function OA(A){return new Uo({...A,validator:(e,t)=>e===null||A.validator(e,t),refiner:(e,t)=>e===null||A.refiner(e,t)})}function BA(){return Ns("number",A=>typeof A=="number"&&!isNaN(A)||`Expected a number, but received: ${mo(A)}`)}function oe(A){return new Uo({...A,validator:(e,t)=>e===void 0||A.validator(e,t),refiner:(e,t)=>e===void 0||A.refiner(e,t)})}function $c(A,e){return new Uo({type:"record",schema:null,*entries(t){if(Or(t))for(const s in t){const n=t[s];yield[s,s,A],yield[s,n,e]}},validator(t){return Fn(t)||`Expected an object, but received: ${mo(t)}`},coercer(t){return Fn(t)?{...t}:t}})}function GA(){return Ns("string",A=>typeof A=="string"||`Expected a string, but received: ${mo(A)}`)}function Mg(A){const e=uD();return new Uo({type:"tuple",schema:null,*entries(t){if(Array.isArray(t)){const s=Math.max(A.length,t.length);for(let n=0;n<s;n++)yield[n,t[n],A[n]||e]}},validator(t){return Array.isArray(t)||`Expected an array, but received: ${mo(t)}`},coercer(t){return Array.isArray(t)?t.slice():t}})}function xA(A){const e=Object.keys(A);return new Uo({type:"type",schema:A,*entries(t){if(Or(t))for(const s of e)yield[s,t[s],A[s]]},validator(t){return Fn(t)||`Expected an object, but received: ${mo(t)}`},coercer(t){return Fn(t)?{...t}:t}})}function Ao(A){const e=A.map(t=>t.type).join(" | ");return new Uo({type:"union",schema:null,coercer(t,s){for(const n of A){const[r,i]=n.validate(t,{coerce:!0,mask:s.mask});if(!r)return i}return t},validator(t,s){const n=[];for(const r of A){const[...i]=Ng(t,r,s),[a]=i;if(a[0])for(const[g]of i)g&&n.push(g);else return[]}return[`Expected the value to satisfy a union of \`${e}\`, but received: ${mo(t)}`,...n]}})}function or(){return Ns("unknown",()=>!0)}function Yr(A,e,t){return new Uo({...A,coercer:(s,n)=>Xc(s,e)?A.coercer(t(s,n),n):A.coercer(s,n)})}var tn,ID=new Uint8Array(16);function AE(){if(!tn&&(tn=typeof crypto<"u"&&crypto.getRandomValues&&crypto.getRandomValues.bind(crypto)||typeof msCrypto<"u"&&typeof msCrypto.getRandomValues=="function"&&msCrypto.getRandomValues.bind(msCrypto),!tn))throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");return tn(ID)}const dD=/^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i;function Ai(A){return typeof A=="string"&&dD.test(A)}var Ft=[];for(var Fi=0;Fi<256;++Fi)Ft.push((Fi+256).toString(16).substr(1));function ei(A){var e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0,t=(Ft[A[e+0]]+Ft[A[e+1]]+Ft[A[e+2]]+Ft[A[e+3]]+"-"+Ft[A[e+4]]+Ft[A[e+5]]+"-"+Ft[A[e+6]]+Ft[A[e+7]]+"-"+Ft[A[e+8]]+Ft[A[e+9]]+"-"+Ft[A[e+10]]+Ft[A[e+11]]+Ft[A[e+12]]+Ft[A[e+13]]+Ft[A[e+14]]+Ft[A[e+15]]).toLowerCase();if(!Ai(t))throw TypeError("Stringified UUID is invalid");return t}var gQ,Gi,vi=0,Si=0;function hD(A,e,t){var s=e&&t||0,n=e||new Array(16);A=A||{};var r=A.node||gQ,i=A.clockseq!==void 0?A.clockseq:Gi;if(r==null||i==null){var a=A.random||(A.rng||AE)();r==null&&(r=gQ=[a[0]|1,a[1],a[2],a[3],a[4],a[5]]),i==null&&(i=Gi=(a[6]<<8|a[7])&16383)}var g=A.msecs!==void 0?A.msecs:Date.now(),l=A.nsecs!==void 0?A.nsecs:Si+1,B=g-vi+(l-Si)/1e4;if(B<0&&A.clockseq===void 0&&(i=i+1&16383),(B<0||g>vi)&&A.nsecs===void 0&&(l=0),l>=1e4)throw new Error("uuid.v1(): Can't create more than 10M uuids/sec");vi=g,Si=l,Gi=i,g+=122192928e5;var u=((g&268435455)*1e4+l)%4294967296;n[s++]=u>>>24&255,n[s++]=u>>>16&255,n[s++]=u>>>8&255,n[s++]=u&255;var E=g/4294967296*1e4&268435455;n[s++]=E>>>8&255,n[s++]=E&255,n[s++]=E>>>24&15|16,n[s++]=E>>>16&255,n[s++]=i>>>8|128,n[s++]=i&255;for(var c=0;c<6;++c)n[s+c]=r[c];return e||ei(n)}function eE(A){if(!Ai(A))throw TypeError("Invalid UUID");var e,t=new Uint8Array(16);return t[0]=(e=parseInt(A.slice(0,8),16))>>>24,t[1]=e>>>16&255,t[2]=e>>>8&255,t[3]=e&255,t[4]=(e=parseInt(A.slice(9,13),16))>>>8,t[5]=e&255,t[6]=(e=parseInt(A.slice(14,18),16))>>>8,t[7]=e&255,t[8]=(e=parseInt(A.slice(19,23),16))>>>8,t[9]=e&255,t[10]=(e=parseInt(A.slice(24,36),16))/1099511627776&255,t[11]=e/4294967296&255,t[12]=e>>>24&255,t[13]=e>>>16&255,t[14]=e>>>8&255,t[15]=e&255,t}function pD(A){A=unescape(encodeURIComponent(A));for(var e=[],t=0;t<A.length;++t)e.push(A.charCodeAt(t));return e}var fD="6ba7b810-9dad-11d1-80b4-00c04fd430c8",mD="6ba7b811-9dad-11d1-80b4-00c04fd430c8";function tE(A,e,t){function s(n,r,i,a){if(typeof n=="string"&&(n=pD(n)),typeof r=="string"&&(r=eE(r)),r.length!==16)throw TypeError("Namespace must be array-like (16 iterable integer values, 0-255)");var g=new Uint8Array(16+n.length);if(g.set(r),g.set(n,r.length),g=t(g),g[6]=g[6]&15|e,g[8]=g[8]&63|128,i){a=a||0;for(var l=0;l<16;++l)i[a+l]=g[l];return i}return ei(g)}try{s.name=A}catch{}return s.DNS=fD,s.URL=mD,s}function wD(A){if(typeof A=="string"){var e=unescape(encodeURIComponent(A));A=new Uint8Array(e.length);for(var t=0;t<e.length;++t)A[t]=e.charCodeAt(t)}return xD(DD(yD(A),A.length*8))}function xD(A){for(var e=[],t=A.length*32,s="0123456789abcdef",n=0;n<t;n+=8){var r=A[n>>5]>>>n%32&255,i=parseInt(s.charAt(r>>>4&15)+s.charAt(r&15),16);e.push(i)}return e}function oE(A){return(A+64>>>9<<4)+14+1}function DD(A,e){A[e>>5]|=128<<e%32,A[oE(e)-1]=e;for(var t=1732584193,s=-271733879,n=-1732584194,r=271733878,i=0;i<A.length;i+=16){var a=t,g=s,l=n,B=r;t=Lt(t,s,n,r,A[i],7,-680876936),r=Lt(r,t,s,n,A[i+1],12,-389564586),n=Lt(n,r,t,s,A[i+2],17,606105819),s=Lt(s,n,r,t,A[i+3],22,-1044525330),t=Lt(t,s,n,r,A[i+4],7,-176418897),r=Lt(r,t,s,n,A[i+5],12,1200080426),n=Lt(n,r,t,s,A[i+6],17,-1473231341),s=Lt(s,n,r,t,A[i+7],22,-45705983),t=Lt(t,s,n,r,A[i+8],7,1770035416),r=Lt(r,t,s,n,A[i+9],12,-1958414417),n=Lt(n,r,t,s,A[i+10],17,-42063),s=Lt(s,n,r,t,A[i+11],22,-1990404162),t=Lt(t,s,n,r,A[i+12],7,1804603682),r=Lt(r,t,s,n,A[i+13],12,-40341101),n=Lt(n,r,t,s,A[i+14],17,-1502002290),s=Lt(s,n,r,t,A[i+15],22,1236535329),t=Jt(t,s,n,r,A[i+1],5,-165796510),r=Jt(r,t,s,n,A[i+6],9,-1069501632),n=Jt(n,r,t,s,A[i+11],14,643717713),s=Jt(s,n,r,t,A[i],20,-373897302),t=Jt(t,s,n,r,A[i+5],5,-701558691),r=Jt(r,t,s,n,A[i+10],9,38016083),n=Jt(n,r,t,s,A[i+15],14,-660478335),s=Jt(s,n,r,t,A[i+4],20,-405537848),t=Jt(t,s,n,r,A[i+9],5,568446438),r=Jt(r,t,s,n,A[i+14],9,-1019803690),n=Jt(n,r,t,s,A[i+3],14,-187363961),s=Jt(s,n,r,t,A[i+8],20,1163531501),t=Jt(t,s,n,r,A[i+13],5,-1444681467),r=Jt(r,t,s,n,A[i+2],9,-51403784),n=Jt(n,r,t,s,A[i+7],14,1735328473),s=Jt(s,n,r,t,A[i+12],20,-1926607734),t=jt(t,s,n,r,A[i+5],4,-378558),r=jt(r,t,s,n,A[i+8],11,-2022574463),n=jt(n,r,t,s,A[i+11],16,1839030562),s=jt(s,n,r,t,A[i+14],23,-35309556),t=jt(t,s,n,r,A[i+1],4,-1530992060),r=jt(r,t,s,n,A[i+4],11,1272893353),n=jt(n,r,t,s,A[i+7],16,-155497632),s=jt(s,n,r,t,A[i+10],23,-1094730640),t=jt(t,s,n,r,A[i+13],4,681279174),r=jt(r,t,s,n,A[i],11,-358537222),n=jt(n,r,t,s,A[i+3],16,-722521979),s=jt(s,n,r,t,A[i+6],23,76029189),t=jt(t,s,n,r,A[i+9],4,-640364487),r=jt(r,t,s,n,A[i+12],11,-421815835),n=jt(n,r,t,s,A[i+15],16,530742520),s=jt(s,n,r,t,A[i+2],23,-995338651),t=Tt(t,s,n,r,A[i],6,-198630844),r=Tt(r,t,s,n,A[i+7],10,1126891415),n=Tt(n,r,t,s,A[i+14],15,-1416354905),s=Tt(s,n,r,t,A[i+5],21,-57434055),t=Tt(t,s,n,r,A[i+12],6,1700485571),r=Tt(r,t,s,n,A[i+3],10,-1894986606),n=Tt(n,r,t,s,A[i+10],15,-1051523),s=Tt(s,n,r,t,A[i+1],21,-2054922799),t=Tt(t,s,n,r,A[i+8],6,1873313359),r=Tt(r,t,s,n,A[i+15],10,-30611744),n=Tt(n,r,t,s,A[i+6],15,-1560198380),s=Tt(s,n,r,t,A[i+13],21,1309151649),t=Tt(t,s,n,r,A[i+4],6,-145523070),r=Tt(r,t,s,n,A[i+11],10,-1120210379),n=Tt(n,r,t,s,A[i+2],15,718787259),s=Tt(s,n,r,t,A[i+9],21,-343485551),t=ts(t,a),s=ts(s,g),n=ts(n,l),r=ts(r,B)}return[t,s,n,r]}function yD(A){if(A.length===0)return[];for(var e=A.length*8,t=new Uint32Array(oE(e)),s=0;s<e;s+=8)t[s>>5]|=(A[s/8]&255)<<s%32;return t}function ts(A,e){var t=(A&65535)+(e&65535),s=(A>>16)+(e>>16)+(t>>16);return s<<16|t&65535}function ND(A,e){return A<<e|A>>>32-e}function ti(A,e,t,s,n,r){return ts(ND(ts(ts(e,A),ts(s,r)),n),t)}function Lt(A,e,t,s,n,r,i){return ti(e&t|~e&s,A,e,n,r,i)}function Jt(A,e,t,s,n,r,i){return ti(e&s|t&~s,A,e,n,r,i)}function jt(A,e,t,s,n,r,i){return ti(e^t^s,A,e,n,r,i)}function Tt(A,e,t,s,n,r,i){return ti(t^(e|~s),A,e,n,r,i)}var kD=tE("v3",48,wD);function MD(A,e,t){A=A||{};var s=A.random||(A.rng||AE)();if(s[6]=s[6]&15|64,s[8]=s[8]&63|128,e){t=t||0;for(var n=0;n<16;++n)e[t+n]=s[n];return e}return ei(s)}function bD(A,e,t,s){switch(A){case 0:return e&t^~e&s;case 1:return e^t^s;case 2:return e&t^e&s^t&s;case 3:return e^t^s}}function Ui(A,e){return A<<e|A>>>32-e}function FD(A){var e=[1518500249,1859775393,2400959708,3395469782],t=[1732584193,4023233417,2562383102,271733878,3285377520];if(typeof A=="string"){var s=unescape(encodeURIComponent(A));A=[];for(var n=0;n<s.length;++n)A.push(s.charCodeAt(n))}else Array.isArray(A)||(A=Array.prototype.slice.call(A));A.push(128);for(var r=A.length/4+2,i=Math.ceil(r/16),a=new Array(i),g=0;g<i;++g){for(var l=new Uint32Array(16),B=0;B<16;++B)l[B]=A[g*64+B*4]<<24|A[g*64+B*4+1]<<16|A[g*64+B*4+2]<<8|A[g*64+B*4+3];a[g]=l}a[i-1][14]=(A.length-1)*8/Math.pow(2,32),a[i-1][14]=Math.floor(a[i-1][14]),a[i-1][15]=(A.length-1)*8&4294967295;for(var u=0;u<i;++u){for(var E=new Uint32Array(80),c=0;c<16;++c)E[c]=a[u][c];for(var d=16;d<80;++d)E[d]=Ui(E[d-3]^E[d-8]^E[d-14]^E[d-16],1);for(var f=t[0],p=t[1],D=t[2],F=t[3],k=t[4],L=0;L<80;++L){var K=Math.floor(L/20),W=Ui(f,5)+bD(K,p,D,F)+k+e[K]+E[L]>>>0;k=F,F=D,D=Ui(p,30)>>>0,p=f,f=W}t[0]=t[0]+f>>>0,t[1]=t[1]+p>>>0,t[2]=t[2]+D>>>0,t[3]=t[3]+F>>>0,t[4]=t[4]+k>>>0}return[t[0]>>24&255,t[0]>>16&255,t[0]>>8&255,t[0]&255,t[1]>>24&255,t[1]>>16&255,t[1]>>8&255,t[1]&255,t[2]>>24&255,t[2]>>16&255,t[2]>>8&255,t[2]&255,t[3]>>24&255,t[3]>>16&255,t[3]>>8&255,t[3]&255,t[4]>>24&255,t[4]>>16&255,t[4]>>8&255,t[4]&255]}var GD=tE("v5",80,FD);const vD="00000000-0000-0000-0000-000000000000";function SD(A){if(!Ai(A))throw TypeError("Invalid UUID");return parseInt(A.substr(14,1),16)}const UD=Object.freeze(Object.defineProperty({__proto__:null,NIL:vD,parse:eE,stringify:ei,v1:hD,v3:kD,v4:MD,v5:GD,validate:Ai,version:SD},Symbol.toStringTag,{value:"Module"})),sE=Ka(UD);var Ri,lQ;function RD(){if(lQ)return Ri;lQ=1;const A=sE.v4;return Ri=function(t,s,n,r){if(typeof t!="string")throw new TypeError(t+" must be a string");r=r||{};const i=typeof r.version=="number"?r.version:2;if(i!==1&&i!==2)throw new TypeError(i+" must be 1 or 2");const a={method:t};if(i===2&&(a.jsonrpc="2.0"),s){if(typeof s!="object"&&!Array.isArray(s))throw new TypeError(s+" must be an object, array or omitted");a.params=s}if(typeof n>"u"){const g=typeof r.generator=="function"?r.generator:function(){return A()};a.id=g(a,r)}else i===2&&n===null?r.notificationIdNull&&(a.id=null):a.id=n;return a},Ri}var Ki,QQ;function KD(){if(QQ)return Ki;QQ=1;const A=sE.v4,e=RD(),t=function(s,n){if(!(this instanceof t))return new t(s,n);n||(n={}),this.options={reviver:typeof n.reviver<"u"?n.reviver:null,replacer:typeof n.replacer<"u"?n.replacer:null,generator:typeof n.generator<"u"?n.generator:function(){return A()},version:typeof n.version<"u"?n.version:2,notificationIdNull:typeof n.notificationIdNull=="boolean"?n.notificationIdNull:!1},this.callServer=s};return Ki=t,t.prototype.request=function(s,n,r,i){const a=this;let g=null;const l=Array.isArray(s)&&typeof n=="function";if(this.options.version===1&&l)throw new TypeError("JSON-RPC 1.0 does not support batching");if(l||!l&&s&&typeof s=="object"&&typeof n=="function")i=n,g=s;else{typeof r=="function"&&(i=r,r=void 0);const E=typeof i=="function";try{g=e(s,n,r,{generator:this.options.generator,version:this.options.version,notificationIdNull:this.options.notificationIdNull})}catch(c){if(E){i(c);return}throw c}if(!E)return g}let u;try{u=JSON.stringify(g,this.options.replacer)}catch(E){i(E);return}return this.callServer(u,function(E,c){a._parseResponse(E,c,i)}),g},t.prototype._parseResponse=function(s,n,r){if(s){r(s);return}if(!n){r();return}let i;try{i=JSON.parse(n,this.options.reviver)}catch(a){r(a);return}if(r.length===3)if(Array.isArray(i)){const a=function(l){return typeof l.error<"u"},g=function(l){return!a(l)};r(null,i.filter(a),i.filter(g));return}else{r(null,i.error,i.result);return}r(null,i)},Ki}KD();var Li={exports:{}},BQ;function LD(){return BQ||(BQ=1,(function(A){var e=Object.prototype.hasOwnProperty,t="~";function s(){}Object.create&&(s.prototype=Object.create(null),new s().__proto__||(t=!1));function n(g,l,B){this.fn=g,this.context=l,this.once=B||!1}function r(g,l,B,u,E){if(typeof B!="function")throw new TypeError("The listener must be a function");var c=new n(B,u||g,E),d=t?t+l:l;return g._events[d]?g._events[d].fn?g._events[d]=[g._events[d],c]:g._events[d].push(c):(g._events[d]=c,g._eventsCount++),g}function i(g,l){--g._eventsCount===0?g._events=new s:delete g._events[l]}function a(){this._events=new s,this._eventsCount=0}a.prototype.eventNames=function(){var l=[],B,u;if(this._eventsCount===0)return l;for(u in B=this._events)e.call(B,u)&&l.push(t?u.slice(1):u);return Object.getOwnPropertySymbols?l.concat(Object.getOwnPropertySymbols(B)):l},a.prototype.listeners=function(l){var B=t?t+l:l,u=this._events[B];if(!u)return[];if(u.fn)return[u.fn];for(var E=0,c=u.length,d=new Array(c);E<c;E++)d[E]=u[E].fn;return d},a.prototype.listenerCount=function(l){var B=t?t+l:l,u=this._events[B];return u?u.fn?1:u.length:0},a.prototype.emit=function(l,B,u,E,c,d){var f=t?t+l:l;if(!this._events[f])return!1;var p=this._events[f],D=arguments.length,F,k;if(p.fn){switch(p.once&&this.removeListener(l,p.fn,void 0,!0),D){case 1:return p.fn.call(p.context),!0;case 2:return p.fn.call(p.context,B),!0;case 3:return p.fn.call(p.context,B,u),!0;case 4:return p.fn.call(p.context,B,u,E),!0;case 5:return p.fn.call(p.context,B,u,E,c),!0;case 6:return p.fn.call(p.context,B,u,E,c,d),!0}for(k=1,F=new Array(D-1);k<D;k++)F[k-1]=arguments[k];p.fn.apply(p.context,F)}else{var L=p.length,K;for(k=0;k<L;k++)switch(p[k].once&&this.removeListener(l,p[k].fn,void 0,!0),D){case 1:p[k].fn.call(p[k].context);break;case 2:p[k].fn.call(p[k].context,B);break;case 3:p[k].fn.call(p[k].context,B,u);break;case 4:p[k].fn.call(p[k].context,B,u,E);break;default:if(!F)for(K=1,F=new Array(D-1);K<D;K++)F[K-1]=arguments[K];p[k].fn.apply(p[k].context,F)}}return!0},a.prototype.on=function(l,B,u){return r(this,l,B,u,!1)},a.prototype.once=function(l,B,u){return r(this,l,B,u,!0)},a.prototype.removeListener=function(l,B,u,E){var c=t?t+l:l;if(!this._events[c])return this;if(!B)return i(this,c),this;var d=this._events[c];if(d.fn)d.fn===B&&(!E||d.once)&&(!u||d.context===u)&&i(this,c);else{for(var f=0,p=[],D=d.length;f<D;f++)(d[f].fn!==B||E&&!d[f].once||u&&d[f].context!==u)&&p.push(d[f]);p.length?this._events[c]=p.length===1?p[0]:p:i(this,c)}return this},a.prototype.removeAllListeners=function(l){var B;return l?(B=t?t+l:l,this._events[B]&&i(this,B)):(this._events=new s,this._eventsCount=0),this},a.prototype.off=a.prototype.removeListener,a.prototype.addListener=a.prototype.on,a.prefixed=t,a.EventEmitter=a,A.exports=a})(Li)),Li.exports}LD();class rE extends fc{constructor(e,t){super(),this.finished=!1,this.destroyed=!1,hc(e);const s=pg(t);if(this.iHash=e.create(),typeof this.iHash.update!="function")throw new Error("Expected instance of class which extends utils.Hash");this.blockLen=this.iHash.blockLen,this.outputLen=this.iHash.outputLen;const n=this.blockLen,r=new Uint8Array(n);r.set(s.length>n?e.create().update(s).digest():s);for(let i=0;i<r.length;i++)r[i]^=54;this.iHash.update(r),this.oHash=e.create();for(let i=0;i<r.length;i++)r[i]^=106;this.oHash.update(r),Hs(r)}update(e){return wn(this),this.iHash.update(e),this}digestInto(e){wn(this),Ds(e,this.outputLen),this.finished=!0,this.iHash.digestInto(e),this.oHash.update(e),this.oHash.digestInto(e),this.destroy()}digest(){const e=new Uint8Array(this.oHash.outputLen);return this.digestInto(e),e}_cloneInto(e){e||(e=Object.create(Object.getPrototypeOf(this),{}));const{oHash:t,iHash:s,finished:n,destroyed:r,blockLen:i,outputLen:a}=this;return e=e,e.finished=n,e.destroyed=r,e.blockLen=i,e.outputLen=a,e.oHash=t._cloneInto(e.oHash),e.iHash=s._cloneInto(e.iHash),e}clone(){return this._cloneInto()}destroy(){this.destroyed=!0,this.oHash.destroy(),this.iHash.destroy()}}const nE=(A,e,t)=>new rE(A,e).update(t).digest();nE.create=(A,e)=>new rE(A,e);const cQ=(A,e)=>(A+(A>=0?e:-e)/iE)/e;function JD(A,e,t){const[[s,n],[r,i]]=e,a=cQ(i*A,t),g=cQ(-n*A,t);let l=A-a*s-g*r,B=-a*n-g*i;const u=l<Po,E=B<Po;u&&(l=-l),E&&(B=-B);const c=jr(Math.ceil(kc(t)/2))+Os;if(l<Po||l>=c||B<Po||B>=c)throw new Error("splitScalar (endomorphism): failed, k="+A);return{k1neg:u,k1:l,k2neg:E,k2:B}}function Da(A){if(!["compact","recovered","der"].includes(A))throw new Error('Signature format must be "compact", "recovered", or "der"');return A}function Ji(A,e){const t={};for(let s of Object.keys(e))t[s]=A[s]===void 0?e[s]:A[s];return ws(t.lowS,"lowS"),ws(t.prehash,"prehash"),t.format!==void 0&&Da(t.format),t}class jD extends Error{constructor(e=""){super(e)}}const qo={Err:jD,_tlv:{encode:(A,e)=>{const{Err:t}=qo;if(A<0||A>256)throw new t("tlv.encode: wrong tag");if(e.length&1)throw new t("tlv.encode: unpadded data");const s=e.length/2,n=An(s);if(n.length/2&128)throw new t("tlv.encode: long form length too big");const r=s>127?An(n.length/2|128):"";return An(A)+r+n+e},decode(A,e){const{Err:t}=qo;let s=0;if(A<0||A>256)throw new t("tlv.encode: wrong tag");if(e.length<2||e[s++]!==A)throw new t("tlv.decode: wrong tlv");const n=e[s++],r=!!(n&128);let i=0;if(!r)i=n;else{const g=n&127;if(!g)throw new t("tlv.decode(long): indefinite length not supported");if(g>4)throw new t("tlv.decode(long): byte length is too big");const l=e.subarray(s,s+g);if(l.length!==g)throw new t("tlv.decode: length bytes not complete");if(l[0]===0)throw new t("tlv.decode(long): zero leftmost byte");for(const B of l)i=i<<8|B;if(s+=g,i<128)throw new t("tlv.decode(long): not minimal encoding")}const a=e.subarray(s,s+i);if(a.length!==i)throw new t("tlv.decode: wrong value length");return{v:a,l:e.subarray(s+i)}}},_int:{encode(A){const{Err:e}=qo;if(A<Po)throw new e("integer: negative integers are not allowed");let t=An(A);if(Number.parseInt(t[0],16)&8&&(t="00"+t),t.length&1)throw new e("unexpected DER parsing assertion: unpadded hex");return t},decode(A){const{Err:e}=qo;if(A[0]&128)throw new e("invalid signature integer: negative");if(A[0]===0&&!(A[1]&128))throw new e("invalid signature integer: unnecessary leading zero");return Zn(A)}},toSig(A){const{Err:e,_int:t,_tlv:s}=qo,n=ut("signature",A),{v:r,l:i}=s.decode(48,n);if(i.length)throw new e("invalid signature: left bytes after parsing");const{v:a,l:g}=s.decode(2,r),{v:l,l:B}=s.decode(2,g);if(B.length)throw new e("invalid signature: left bytes after parsing");return{r:t.decode(a),s:t.decode(l)}},hexFromSig(A){const{_tlv:e,_int:t}=qo,s=e.encode(2,t.encode(A.r)),n=e.encode(2,t.encode(A.s)),r=s+n;return e.encode(48,r)}},Po=BigInt(0),Os=BigInt(1),iE=BigInt(2),on=BigInt(3),TD=BigInt(4);function Js(A,e){const{BYTES:t}=A;let s;if(typeof e=="bigint")s=e;else{let n=ut("private key",e);try{s=A.fromBytes(n)}catch{throw new Error(`invalid private key: expected ui8a of size ${t}, got ${typeof e}`)}}if(!A.isValidNot0(s))throw new Error("invalid private key: out of range [1..N-1]");return s}function OD(A,e={}){const t=Yc("weierstrass",A,e),{Fp:s,Fn:n}=t;let r=t.CURVE;const{h:i,n:a}=r;Tr(e,{},{allowInfinityPoint:"boolean",clearCofactor:"function",isTorsionFree:"function",fromBytes:"function",toBytes:"function",endo:"object",wrapPrivateKey:"boolean"});const{endo:g}=e;if(g&&(!s.is0(r.a)||typeof g.beta!="bigint"||!Array.isArray(g.basises)))throw new Error('invalid endo: expected "beta": bigint and "basises": array');const l=gE(s,n);function B(){if(!s.isOdd)throw new Error("compression is not supported: Field does not have .isOdd()")}function u(H,x,Q){const{x:I,y:N}=x.toAffine(),G=s.toBytes(I);if(ws(Q,"isCompressed"),Q){B();const J=!s.isOdd(N);return bo(aE(J),G)}else return bo(Uint8Array.of(4),G,s.toBytes(N))}function E(H){fo(H,void 0,"Point");const{publicKey:x,publicKeyUncompressed:Q}=l,I=H.length,N=H[0],G=H.subarray(1);if(I===x&&(N===2||N===3)){const J=s.fromBytes(G);if(!s.isValid(J))throw new Error("bad point: is not on curve, wrong x");const q=f(J);let j;try{j=s.sqrt(q)}catch(h){const v=h instanceof Error?": "+h.message:"";throw new Error("bad point: is not on curve, sqrt error"+v)}B();const R=s.isOdd(j);return(N&1)===1!==R&&(j=s.neg(j)),{x:J,y:j}}else if(I===Q&&N===4){const J=s.BYTES,q=s.fromBytes(G.subarray(0,J)),j=s.fromBytes(G.subarray(J,J*2));if(!p(q,j))throw new Error("bad point: is not on curve");return{x:q,y:j}}else throw new Error(`bad point: got length ${I}, expected compressed=${x} or uncompressed=${Q}`)}const c=e.toBytes||u,d=e.fromBytes||E;function f(H){const x=s.sqr(H),Q=s.mul(x,H);return s.add(s.add(Q,s.mul(H,r.a)),r.b)}function p(H,x){const Q=s.sqr(x),I=f(H);return s.eql(Q,I)}if(!p(r.Gx,r.Gy))throw new Error("bad curve params: generator point");const D=s.mul(s.pow(r.a,on),TD),F=s.mul(s.sqr(r.b),BigInt(27));if(s.is0(s.add(D,F)))throw new Error("bad curve params: a or b");function k(H,x,Q=!1){if(!s.isValid(x)||Q&&s.is0(x))throw new Error(`bad point coordinate ${H}`);return x}function L(H){if(!(H instanceof U))throw new Error("ProjectivePoint expected")}function K(H){if(!g||!g.basises)throw new Error("no endo");return JD(H,g.basises,n.ORDER)}const W=Dn((H,x)=>{const{X:Q,Y:I,Z:N}=H;if(s.eql(N,s.ONE))return{x:Q,y:I};const G=H.is0();x==null&&(x=G?s.ONE:s.inv(N));const J=s.mul(Q,x),q=s.mul(I,x),j=s.mul(N,x);if(G)return{x:s.ZERO,y:s.ZERO};if(!s.eql(j,s.ONE))throw new Error("invZ was invalid");return{x:J,y:q}}),$=Dn(H=>{if(H.is0()){if(e.allowInfinityPoint&&!s.is0(H.Y))return;throw new Error("bad point: ZERO")}const{x,y:Q}=H.toAffine();if(!s.isValid(x)||!s.isValid(Q))throw new Error("bad point: x or y not field elements");if(!p(x,Q))throw new Error("bad point: equation left != right");if(!H.isTorsionFree())throw new Error("bad point: not in prime-order subgroup");return!0});function X(H,x,Q,I,N){return Q=new U(s.mul(Q.X,H),Q.Y,Q.Z),x=yn(I,x),Q=yn(N,Q),x.add(Q)}class U{constructor(x,Q,I){this.X=k("x",x),this.Y=k("y",Q,!0),this.Z=k("z",I),Object.freeze(this)}static CURVE(){return r}static fromAffine(x){const{x:Q,y:I}=x||{};if(!x||!s.isValid(Q)||!s.isValid(I))throw new Error("invalid affine point");if(x instanceof U)throw new Error("projective point not allowed");return s.is0(Q)&&s.is0(I)?U.ZERO:new U(Q,I,s.ONE)}static fromBytes(x){const Q=U.fromAffine(d(fo(x,void 0,"point")));return Q.assertValidity(),Q}static fromHex(x){return U.fromBytes(ut("pointHex",x))}get x(){return this.toAffine().x}get y(){return this.toAffine().y}precompute(x=8,Q=!0){return T.createCache(this,x),Q||this.multiply(on),this}assertValidity(){$(this)}hasEvenY(){const{y:x}=this.toAffine();if(!s.isOdd)throw new Error("Field doesn't support isOdd");return!s.isOdd(x)}equals(x){L(x);const{X:Q,Y:I,Z:N}=this,{X:G,Y:J,Z:q}=x,j=s.eql(s.mul(Q,q),s.mul(G,N)),R=s.eql(s.mul(I,q),s.mul(J,N));return j&&R}negate(){return new U(this.X,s.neg(this.Y),this.Z)}double(){const{a:x,b:Q}=r,I=s.mul(Q,on),{X:N,Y:G,Z:J}=this;let q=s.ZERO,j=s.ZERO,R=s.ZERO,C=s.mul(N,N),h=s.mul(G,G),v=s.mul(J,J),S=s.mul(N,G);return S=s.add(S,S),R=s.mul(N,J),R=s.add(R,R),q=s.mul(x,R),j=s.mul(I,v),j=s.add(q,j),q=s.sub(h,j),j=s.add(h,j),j=s.mul(q,j),q=s.mul(S,q),R=s.mul(I,R),v=s.mul(x,v),S=s.sub(C,v),S=s.mul(x,S),S=s.add(S,R),R=s.add(C,C),C=s.add(R,C),C=s.add(C,v),C=s.mul(C,S),j=s.add(j,C),v=s.mul(G,J),v=s.add(v,v),C=s.mul(v,S),q=s.sub(q,C),R=s.mul(v,h),R=s.add(R,R),R=s.add(R,R),new U(q,j,R)}add(x){L(x);const{X:Q,Y:I,Z:N}=this,{X:G,Y:J,Z:q}=x;let j=s.ZERO,R=s.ZERO,C=s.ZERO;const h=r.a,v=s.mul(r.b,on);let S=s.mul(Q,G),Z=s.mul(I,J),eA=s.mul(N,q),rA=s.add(Q,I),sA=s.add(G,J);rA=s.mul(rA,sA),sA=s.add(S,Z),rA=s.sub(rA,sA),sA=s.add(Q,N);let bA=s.add(G,q);return sA=s.mul(sA,bA),bA=s.add(S,eA),sA=s.sub(sA,bA),bA=s.add(I,N),j=s.add(J,q),bA=s.mul(bA,j),j=s.add(Z,eA),bA=s.sub(bA,j),C=s.mul(h,sA),j=s.mul(v,eA),C=s.add(j,C),j=s.sub(Z,C),C=s.add(Z,C),R=s.mul(j,C),Z=s.add(S,S),Z=s.add(Z,S),eA=s.mul(h,eA),sA=s.mul(v,sA),Z=s.add(Z,eA),eA=s.sub(S,eA),eA=s.mul(h,eA),sA=s.add(sA,eA),S=s.mul(Z,sA),R=s.add(R,S),S=s.mul(bA,sA),j=s.mul(rA,j),j=s.sub(j,S),S=s.mul(rA,Z),C=s.mul(bA,C),C=s.add(C,S),new U(j,R,C)}subtract(x){return this.add(x.negate())}is0(){return this.equals(U.ZERO)}multiply(x){const{endo:Q}=e;if(!n.isValidNot0(x))throw new Error("invalid scalar: out of range");let I,N;const G=J=>T.cached(this,J,q=>ds(U,q));if(Q){const{k1neg:J,k1:q,k2neg:j,k2:R}=K(x),{p:C,f:h}=G(q),{p:v,f:S}=G(R);N=h.add(S),I=X(Q.beta,C,v,J,j)}else{const{p:J,f:q}=G(x);I=J,N=q}return ds(U,[I,N])[0]}multiplyUnsafe(x){const{endo:Q}=e,I=this;if(!n.isValid(x))throw new Error("invalid scalar: out of range");if(x===Po||I.is0())return U.ZERO;if(x===Os)return I;if(T.hasCache(this))return this.multiply(x);if(Q){const{k1neg:N,k1:G,k2neg:J,k2:q}=K(x),{p1:j,p2:R}=sx(U,I,G,q);return X(Q.beta,j,R,N,J)}else return T.unsafe(I,x)}multiplyAndAddUnsafe(x,Q,I){const N=this.multiplyUnsafe(Q).add(x.multiplyUnsafe(I));return N.is0()?void 0:N}toAffine(x){return W(this,x)}isTorsionFree(){const{isTorsionFree:x}=e;return i===Os?!0:x?x(U,this):T.unsafe(this,a).is0()}clearCofactor(){const{clearCofactor:x}=e;return i===Os?this:x?x(U,this):this.multiplyUnsafe(i)}isSmallOrder(){return this.multiplyUnsafe(i).is0()}toBytes(x=!0){return ws(x,"isCompressed"),this.assertValidity(),c(U,this,x)}toHex(x=!0){return ps(this.toBytes(x))}toString(){return`<Point ${this.is0()?"ZERO":this.toHex()}>`}get px(){return this.X}get py(){return this.X}get pz(){return this.Z}toRawBytes(x=!0){return this.toBytes(x)}_setWindowSize(x){this.precompute(x)}static normalizeZ(x){return ds(U,x)}static msm(x,Q){return qc(U,n,x,Q)}static fromPrivateKey(x){return U.BASE.multiply(Js(n,x))}}U.BASE=new U(r.Gx,r.Gy,s.ONE),U.ZERO=new U(s.ZERO,s.ONE,s.ZERO),U.Fp=s,U.Fn=n;const O=n.BITS,T=new Oc(U,e.endo?Math.ceil(O/2):O);return U.BASE.precompute(8),U}function aE(A){return Uint8Array.of(A?2:3)}function gE(A,e){return{secretKey:e.BYTES,publicKey:1+A.BYTES,publicKeyUncompressed:1+2*A.BYTES,publicKeyHasPrefix:!0,signature:2*e.BYTES}}function qD(A,e={}){const{Fn:t}=A,s=e.randomBytes||fg,n=Object.assign(gE(A.Fp,t),{seed:Jc(t.ORDER)});function r(c){try{return!!Js(t,c)}catch{return!1}}function i(c,d){const{publicKey:f,publicKeyUncompressed:p}=n;try{const D=c.length;return d===!0&&D!==f||d===!1&&D!==p?!1:!!A.fromBytes(c)}catch{return!1}}function a(c=s(n.seed)){return ex(fo(c,n.seed,"seed"),t.ORDER)}function g(c,d=!0){return A.BASE.multiply(Js(t,c)).toBytes(d)}function l(c){const d=a(c);return{secretKey:d,publicKey:g(d)}}function B(c){if(typeof c=="bigint")return!1;if(c instanceof A)return!0;const{secretKey:d,publicKey:f,publicKeyUncompressed:p}=n;if(t.allowedLengths||d===f)return;const D=ut("key",c).length;return D===f||D===p}function u(c,d,f=!0){if(B(c)===!0)throw new Error("first arg must be private key");if(B(d)===!1)throw new Error("second arg must be public key");const p=Js(t,c);return A.fromHex(d).multiply(p).toBytes(f)}return Object.freeze({getPublicKey:g,getSharedSecret:u,keygen:l,Point:A,utils:{isValidSecretKey:r,isValidPublicKey:i,randomSecretKey:a,isValidPrivateKey:r,randomPrivateKey:a,normPrivateKeyToScalar:c=>Js(t,c),precompute(c=8,d=A.BASE){return d.precompute(c,!1)}},lengths:n})}function YD(A,e,t={}){hc(e),Tr(t,{},{hmac:"function",lowS:"boolean",randomBytes:"function",bits2int:"function",bits2int_modN:"function"});const s=t.randomBytes||fg,n=t.hmac||((Q,...I)=>nE(e,Q,bo(...I))),{Fp:r,Fn:i}=A,{ORDER:a,BITS:g}=i,{keygen:l,getPublicKey:B,getSharedSecret:u,utils:E,lengths:c}=qD(A,t),d={prehash:!1,lowS:typeof t.lowS=="boolean"?t.lowS:!1,format:void 0,extraEntropy:!1},f="compact";function p(Q){const I=a>>Os;return Q>I}function D(Q,I){if(!i.isValidNot0(I))throw new Error(`invalid signature ${Q}: out of range 1..Point.Fn.ORDER`);return I}function F(Q,I){Da(I);const N=c.signature,G=I==="compact"?N:I==="recovered"?N+1:void 0;return fo(Q,G,`${I} signature`)}class k{constructor(I,N,G){this.r=D("r",I),this.s=D("s",N),G!=null&&(this.recovery=G),Object.freeze(this)}static fromBytes(I,N=f){F(I,N);let G;if(N==="der"){const{r:R,s:C}=qo.toSig(fo(I));return new k(R,C)}N==="recovered"&&(G=I[0],N="compact",I=I.subarray(1));const J=i.BYTES,q=I.subarray(0,J),j=I.subarray(J,J*2);return new k(i.fromBytes(q),i.fromBytes(j),G)}static fromHex(I,N){return this.fromBytes(xn(I),N)}addRecoveryBit(I){return new k(this.r,this.s,I)}recoverPublicKey(I){const N=r.ORDER,{r:G,s:J,recovery:q}=this;if(q==null||![0,1,2,3].includes(q))throw new Error("recovery id invalid");if(a*iE<N&&q>1)throw new Error("recovery id is ambiguous for h>1 curve");const R=q===2||q===3?G+a:G;if(!r.isValid(R))throw new Error("recovery id 2 or 3 invalid");const C=r.toBytes(R),h=A.fromBytes(bo(aE((q&1)===0),C)),v=i.inv(R),S=K(ut("msgHash",I)),Z=i.create(-S*v),eA=i.create(J*v),rA=A.BASE.multiplyUnsafe(Z).add(h.multiplyUnsafe(eA));if(rA.is0())throw new Error("point at infinify");return rA.assertValidity(),rA}hasHighS(){return p(this.s)}toBytes(I=f){if(Da(I),I==="der")return xn(qo.hexFromSig(this));const N=i.toBytes(this.r),G=i.toBytes(this.s);if(I==="recovered"){if(this.recovery==null)throw new Error("recovery bit must be present");return bo(Uint8Array.of(this.recovery),N,G)}return bo(N,G)}toHex(I){return ps(this.toBytes(I))}assertValidity(){}static fromCompact(I){return k.fromBytes(ut("sig",I),"compact")}static fromDER(I){return k.fromBytes(ut("sig",I),"der")}normalizeS(){return this.hasHighS()?new k(this.r,i.neg(this.s),this.recovery):this}toDERRawBytes(){return this.toBytes("der")}toDERHex(){return ps(this.toBytes("der"))}toCompactRawBytes(){return this.toBytes("compact")}toCompactHex(){return ps(this.toBytes("compact"))}}const L=t.bits2int||function(I){if(I.length>8192)throw new Error("input is too large");const N=Zn(I),G=I.length*8-g;return G>0?N>>BigInt(G):N},K=t.bits2int_modN||function(I){return i.create(L(I))},W=jr(g);function $(Q){return xa("num < 2^"+g,Q,Po,W),i.toBytes(Q)}function X(Q,I){return fo(Q,void 0,"message"),I?fo(e(Q),void 0,"prehashed message"):Q}function U(Q,I,N){if(["recovered","canonical"].some(Z=>Z in N))throw new Error("sign() legacy options not supported");const{lowS:G,prehash:J,extraEntropy:q}=Ji(N,d);Q=X(Q,J);const j=K(Q),R=Js(i,I),C=[$(R),$(j)];if(q!=null&&q!==!1){const Z=q===!0?s(c.secretKey):q;C.push(ut("extraEntropy",Z))}const h=bo(...C),v=j;function S(Z){const eA=L(Z);if(!i.isValidNot0(eA))return;const rA=i.inv(eA),sA=A.BASE.multiply(eA).toAffine(),bA=i.create(sA.x);if(bA===Po)return;const LA=i.create(rA*i.create(v+bA*R));if(LA===Po)return;let QA=(sA.x===bA?0:2)|Number(sA.y&Os),qA=LA;return G&&p(LA)&&(qA=i.neg(LA),QA^=1),new k(bA,qA,QA)}return{seed:h,k2sig:S}}function O(Q,I,N={}){Q=ut("message",Q);const{seed:G,k2sig:J}=U(Q,I,N);return Hw(e.outputLen,i.BYTES,n)(G,J)}function T(Q){let I;const N=typeof Q=="string"||Jr(Q),G=!N&&Q!==null&&typeof Q=="object"&&typeof Q.r=="bigint"&&typeof Q.s=="bigint";if(!N&&!G)throw new Error("invalid signature, expected Uint8Array, hex string or Signature instance");if(G)I=new k(Q.r,Q.s);else if(N){try{I=k.fromBytes(ut("sig",Q),"der")}catch(J){if(!(J instanceof qo.Err))throw J}if(!I)try{I=k.fromBytes(ut("sig",Q),"compact")}catch{return!1}}return I||!1}function H(Q,I,N,G={}){const{lowS:J,prehash:q,format:j}=Ji(G,d);if(N=ut("publicKey",N),I=X(ut("message",I),q),"strict"in G)throw new Error("options.strict was renamed to lowS");const R=j===void 0?T(Q):k.fromBytes(ut("sig",Q),j);if(R===!1)return!1;try{const C=A.fromBytes(N);if(J&&R.hasHighS())return!1;const{r:h,s:v}=R,S=K(I),Z=i.inv(v),eA=i.create(S*Z),rA=i.create(h*Z),sA=A.BASE.multiplyUnsafe(eA).add(C.multiplyUnsafe(rA));return sA.is0()?!1:i.create(sA.x)===h}catch{return!1}}function x(Q,I,N={}){const{prehash:G}=Ji(N,d);return I=X(I,G),k.fromBytes(Q,"recovered").recoverPublicKey(I).toBytes()}return Object.freeze({keygen:l,getPublicKey:B,getSharedSecret:u,utils:E,lengths:c,Point:A,sign:O,verify:H,recoverPublicKey:x,Signature:k,hash:e})}function HD(A){const e={a:A.a,b:A.b,p:A.Fp.ORDER,n:A.n,h:A.h,Gx:A.Gx,Gy:A.Gy},t=A.Fp;let s=A.allowedPrivateKeyLengths?Array.from(new Set(A.allowedPrivateKeyLengths.map(i=>Math.ceil(i/2)))):void 0;const n=ys(e.n,{BITS:A.nBitLength,allowedLengths:s,modFromBytes:A.wrapPrivateKey}),r={Fp:t,Fn:n,allowInfinityPoint:A.allowInfinityPoint,endo:A.endo,isTorsionFree:A.isTorsionFree,clearCofactor:A.clearCofactor,fromBytes:A.fromBytes,toBytes:A.toBytes};return{CURVE:e,curveOpts:r}}function PD(A){const{CURVE:e,curveOpts:t}=HD(A),s={hmac:A.hmac,randomBytes:A.randomBytes,lowS:A.lowS,bits2int:A.bits2int,bits2int_modN:A.bits2int_modN};return{CURVE:e,curveOpts:t,hash:A.hash,ecdsaOpts:s}}function WD(A,e){const t=e.Point;return Object.assign({},e,{ProjectivePoint:t,CURVE:Object.assign({},A,Kc(t.Fn.ORDER,t.Fn.BITS))})}function zD(A){const{CURVE:e,curveOpts:t,hash:s,ecdsaOpts:n}=PD(A),r=OD(e,t),i=YD(r,s,n);return WD(A,i)}function VD(A,e){const t=s=>zD({...A,hash:s});return{...t(e),create:t}}const bg={p:BigInt("0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f"),n:BigInt("0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141"),h:BigInt(1),a:BigInt(0),b:BigInt(7),Gx:BigInt("0x79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798"),Gy:BigInt("0x483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8")},_D={beta:BigInt("0x7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee"),basises:[[BigInt("0x3086d221a7d46bcde86c90e49284eb15"),-BigInt("0xe4437ed6010e88286f547fa90abfe4c3")],[BigInt("0x114ca50f7a8e2f3f657c1108d9d44cfd8"),BigInt("0x3086d221a7d46bcde86c90e49284eb15")]]},EQ=BigInt(2);function ZD(A){const e=bg.p,t=BigInt(3),s=BigInt(6),n=BigInt(11),r=BigInt(22),i=BigInt(23),a=BigInt(44),g=BigInt(88),l=A*A*A%e,B=l*l*A%e,u=Ct(B,t,e)*B%e,E=Ct(u,t,e)*B%e,c=Ct(E,EQ,e)*l%e,d=Ct(c,n,e)*c%e,f=Ct(d,r,e)*d%e,p=Ct(f,a,e)*f%e,D=Ct(p,g,e)*p%e,F=Ct(D,a,e)*f%e,k=Ct(F,t,e)*B%e,L=Ct(k,i,e)*d%e,K=Ct(L,s,e)*l%e,W=Ct(K,EQ,e);if(!ya.eql(ya.sqr(W),A))throw new Error("Cannot find square root");return W}const ya=ys(bg.p,{sqrt:ZD}),XD=VD({...bg,Fp:ya,lowS:!0,endo:_D},Dc);Xn.utils.randomPrivateKey;Xn.getPublicKey;function CQ(A){try{return Xn.ExtendedPoint.fromHex(A),!0}catch{return!1}}Xn.verify;const $D=A=>xt.Buffer.isBuffer(A)?A:A instanceof Uint8Array?xt.Buffer.from(A.buffer,A.byteOffset,A.byteLength):xt.Buffer.from(A);class A2{constructor(e){Object.assign(this,e)}encode(){return xt.Buffer.from(bi.serialize(un,this))}static decode(e){return bi.deserialize(un,this,e)}static decodeUnchecked(e){return bi.deserializeUnchecked(un,this,e)}}const un=new Map;var lE;const e2=32,ji=32;function t2(A){return A._bn!==void 0}let uQ=1;class Ye extends A2{constructor(e){if(super({}),this._bn=void 0,t2(e))this._bn=e._bn;else{if(typeof e=="string"){const t=tQ.decode(e);if(t.length!=ji)throw new Error("Invalid public key input");this._bn=new Xl(t)}else this._bn=new Xl(e);if(this._bn.byteLength()>ji)throw new Error("Invalid public key input")}}static unique(){const e=new Ye(uQ);return uQ+=1,new Ye(e.toBuffer())}equals(e){return this._bn.eq(e._bn)}toBase58(){return tQ.encode(this.toBytes())}toJSON(){return this.toBase58()}toBytes(){const e=this.toBuffer();return new Uint8Array(e.buffer,e.byteOffset,e.byteLength)}toBuffer(){const e=this._bn.toArrayLike(xt.Buffer);if(e.length===ji)return e;const t=xt.Buffer.alloc(32);return e.copy(t,32-e.length),t}get[Symbol.toStringTag](){return`PublicKey(${this.toString()})`}toString(){return this.toBase58()}static async createWithSeed(e,t,s){const n=xt.Buffer.concat([e.toBuffer(),xt.Buffer.from(t),s.toBuffer()]),r=oQ(n);return new Ye(r)}static createProgramAddressSync(e,t){let s=xt.Buffer.alloc(0);e.forEach(function(r){if(r.length>e2)throw new TypeError("Max seed length exceeded");s=xt.Buffer.concat([s,$D(r)])}),s=xt.Buffer.concat([s,t.toBuffer(),xt.Buffer.from("ProgramDerivedAddress")]);const n=oQ(s);if(CQ(n))throw new Error("Invalid seeds, address must fall off the curve");return new Ye(n)}static async createProgramAddress(e,t){return this.createProgramAddressSync(e,t)}static findProgramAddressSync(e,t){let s=255,n;for(;s!=0;){try{const r=e.concat(xt.Buffer.from([s]));n=this.createProgramAddressSync(r,t)}catch(r){if(r instanceof TypeError)throw r;s--;continue}return[n,s]}throw new Error("Unable to find a viable program address nonce")}static async findProgramAddress(e,t){return this.findProgramAddressSync(e,t)}static isOnCurve(e){const t=new Ye(e);return CQ(t.toBytes())}}lE=Ye;Ye.default=new lE("11111111111111111111111111111111");un.set(Ye,{kind:"struct",fields:[["_bn","u256"]]});new Ye("BPFLoader1111111111111111111111111111111111");const o2=64,Ve=(A="publicKey")=>iA.blob(32,A),js=(A="string")=>{const e=iA.struct([iA.u32("length"),iA.u32("lengthPadding"),iA.blob(iA.offset(iA.u32(),-8),"chars")],A),t=e.decode.bind(e),s=e.encode.bind(e),n=e;return n.decode=(r,i)=>t(r,i).chars.toString(),n.encode=(r,i,a)=>{const g={chars:xt.Buffer.from(r,"utf8")};return s(g,i,a)},n.alloc=r=>iA.u32().span+iA.u32().span+xt.Buffer.from(r,"utf8").length,n},s2=(A="authorized")=>iA.struct([Ve("staker"),Ve("withdrawer")],A),r2=(A="lockup")=>iA.struct([iA.ns64("unixTimestamp"),iA.ns64("epoch"),Ve("custodian")],A),n2=(A="voteInit")=>iA.struct([Ve("nodePubkey"),Ve("authorizedVoter"),Ve("authorizedWithdrawer"),iA.u8("commission")],A),i2=(A="voteAuthorizeWithSeedArgs")=>iA.struct([iA.u32("voteAuthorizationType"),Ve("currentAuthorityDerivedKeyOwnerPubkey"),js("currentAuthorityDerivedKeySeed"),Ve("newAuthorized")],A);xt.Buffer.alloc(o2).fill(0);new Ye("SysvarC1ock11111111111111111111111111111111");new Ye("SysvarEpochSchedu1e111111111111111111111111");new Ye("Sysvar1nstructions1111111111111111111111111");new Ye("SysvarRecentB1ockHashes11111111111111111111");new Ye("SysvarRent111111111111111111111111111111111");new Ye("SysvarRewards111111111111111111111111111111");new Ye("SysvarS1otHashes111111111111111111111111111");new Ye("SysvarS1otHistory11111111111111111111111111");new Ye("SysvarStakeHistory1111111111111111111111111");const a2=iA.nu64("lamportsPerSignature"),g2=iA.struct([iA.u32("version"),iA.u32("state"),Ve("authorizedPubkey"),Ve("nonce"),iA.struct([a2],"feeCalculator")]);g2.span;function zs(A){const e=iA.blob(8,A),t=e.decode.bind(e),s=e.encode.bind(e),n=e,r=aD();return n.decode=(i,a)=>{const g=t(i,a);return r.decode(g)},n.encode=(i,a,g)=>{const l=r.encode(i);return s(l,a,g)},n}Object.freeze({Create:{index:0,layout:iA.struct([iA.u32("instruction"),iA.ns64("lamports"),iA.ns64("space"),Ve("programId")])},Assign:{index:1,layout:iA.struct([iA.u32("instruction"),Ve("programId")])},Transfer:{index:2,layout:iA.struct([iA.u32("instruction"),zs("lamports")])},CreateWithSeed:{index:3,layout:iA.struct([iA.u32("instruction"),Ve("base"),js("seed"),iA.ns64("lamports"),iA.ns64("space"),Ve("programId")])},AdvanceNonceAccount:{index:4,layout:iA.struct([iA.u32("instruction")])},WithdrawNonceAccount:{index:5,layout:iA.struct([iA.u32("instruction"),iA.ns64("lamports")])},InitializeNonceAccount:{index:6,layout:iA.struct([iA.u32("instruction"),Ve("authorized")])},AuthorizeNonceAccount:{index:7,layout:iA.struct([iA.u32("instruction"),Ve("authorized")])},Allocate:{index:8,layout:iA.struct([iA.u32("instruction"),iA.ns64("space")])},AllocateWithSeed:{index:9,layout:iA.struct([iA.u32("instruction"),Ve("base"),js("seed"),iA.ns64("space"),Ve("programId")])},AssignWithSeed:{index:10,layout:iA.struct([iA.u32("instruction"),Ve("base"),js("seed"),Ve("programId")])},TransferWithSeed:{index:11,layout:iA.struct([iA.u32("instruction"),zs("lamports"),js("seed"),Ve("programId")])},UpgradeNonceAccount:{index:12,layout:iA.struct([iA.u32("instruction")])}});new Ye("11111111111111111111111111111111");new Ye("BPFLoader2111111111111111111111111111111111");iA.struct([iA.u32("typeIndex"),zs("deactivationSlot"),iA.nu64("lastExtendedSlot"),iA.u8("lastExtendedStartIndex"),iA.u8(),iA.seq(Ve(),iA.offset(iA.u8(),-1),"authority")]);const It=Yr(kg(Ye),GA(),A=>new Ye(A)),QE=Mg([GA(),Bt("base64")]),Fg=Yr(kg(xt.Buffer),QE,A=>xt.Buffer.from(A[0],"base64"));function BE(A){return Ao([xA({jsonrpc:Bt("2.0"),id:GA(),result:A}),xA({jsonrpc:Bt("2.0"),id:GA(),error:xA({code:or(),message:GA(),data:oe(CD())})})])}const l2=BE(or());function st(A){return Yr(BE(A),l2,e=>"error"in e?e:{...e,result:xr(e.result,A)})}function Do(A){return st(xA({context:xA({slot:BA()}),value:A}))}function oi(A){return xA({context:xA({slot:BA()}),value:A})}const Q2=xA({foundation:BA(),foundationTerm:BA(),initial:BA(),taper:BA(),terminal:BA()});st(TA(OA(xA({epoch:BA(),effectiveSlot:BA(),amount:BA(),postBalance:BA(),commission:oe(OA(BA()))}))));const B2=TA(xA({slot:BA(),prioritizationFee:BA()})),c2=xA({total:BA(),validator:BA(),foundation:BA(),epoch:BA()}),E2=xA({epoch:BA(),slotIndex:BA(),slotsInEpoch:BA(),absoluteSlot:BA(),blockHeight:oe(BA()),transactionCount:oe(BA())}),C2=xA({slotsPerEpoch:BA(),leaderScheduleSlotOffset:BA(),warmup:Go(),firstNormalEpoch:BA(),firstNormalSlot:BA()}),u2=$c(GA(),TA(BA())),ks=OA(Ao([xA({}),GA()])),I2=xA({err:ks}),d2=Bt("receivedSignature");xA({"solana-core":GA(),"feature-set":oe(BA())});const h2=xA({program:GA(),programId:It,parsed:or()}),p2=xA({programId:It,accounts:TA(It),data:GA()});Do(xA({err:OA(Ao([xA({}),GA()])),logs:OA(TA(GA())),accounts:oe(OA(TA(OA(xA({executable:Go(),owner:GA(),lamports:BA(),data:TA(GA()),rentEpoch:oe(BA())}))))),unitsConsumed:oe(BA()),returnData:oe(OA(xA({programId:GA(),data:Mg([GA(),Bt("base64")])}))),innerInstructions:oe(OA(TA(xA({index:BA(),instructions:TA(Ao([h2,p2]))}))))}));Do(xA({byIdentity:$c(GA(),TA(BA())),range:xA({firstSlot:BA(),lastSlot:BA()})}));st(Q2);st(c2);st(B2);st(E2);st(C2);st(u2);st(BA());Do(xA({total:BA(),circulating:BA(),nonCirculating:BA(),nonCirculatingAccounts:TA(It)}));const f2=xA({amount:GA(),uiAmount:OA(BA()),decimals:BA(),uiAmountString:oe(GA())});Do(TA(xA({address:It,amount:GA(),uiAmount:OA(BA()),decimals:BA(),uiAmountString:oe(GA())})));Do(TA(xA({pubkey:It,account:xA({executable:Go(),owner:It,lamports:BA(),data:Fg,rentEpoch:BA()})})));const Na=xA({program:GA(),parsed:or(),space:BA()});Do(TA(xA({pubkey:It,account:xA({executable:Go(),owner:It,lamports:BA(),data:Na,rentEpoch:BA()})})));Do(TA(xA({lamports:BA(),address:It})));const Gg=xA({executable:Go(),owner:It,lamports:BA(),data:Fg,rentEpoch:BA()});xA({pubkey:It,account:Gg});const m2=Yr(Ao([kg(xt.Buffer),Na]),Ao([QE,Na]),A=>Array.isArray(A)?xr(A,Fg):A),w2=xA({executable:Go(),owner:It,lamports:BA(),data:m2,rentEpoch:BA()});xA({pubkey:It,account:w2});xA({state:Ao([Bt("active"),Bt("inactive"),Bt("activating"),Bt("deactivating")]),active:BA(),inactive:BA()});st(TA(xA({signature:GA(),slot:BA(),err:ks,memo:OA(GA()),blockTime:oe(OA(BA()))})));st(TA(xA({signature:GA(),slot:BA(),err:ks,memo:OA(GA()),blockTime:oe(OA(BA()))})));xA({subscription:BA(),result:oi(Gg)});const x2=xA({pubkey:It,account:Gg});xA({subscription:BA(),result:oi(x2)});const D2=xA({parent:BA(),slot:BA(),root:BA()});xA({subscription:BA(),result:D2});const y2=Ao([xA({type:Ao([Bt("firstShredReceived"),Bt("completed"),Bt("optimisticConfirmation"),Bt("root")]),slot:BA(),timestamp:BA()}),xA({type:Bt("createdBank"),parent:BA(),slot:BA(),timestamp:BA()}),xA({type:Bt("frozen"),slot:BA(),timestamp:BA(),stats:xA({numTransactionEntries:BA(),numSuccessfulTransactions:BA(),numFailedTransactions:BA(),maxTransactionsPerEntry:BA()})}),xA({type:Bt("dead"),slot:BA(),timestamp:BA(),err:GA()})]);xA({subscription:BA(),result:y2});xA({subscription:BA(),result:oi(Ao([I2,d2]))});xA({subscription:BA(),result:BA()});xA({pubkey:GA(),gossip:OA(GA()),tpu:OA(GA()),rpc:OA(GA()),version:OA(GA())});const IQ=xA({votePubkey:GA(),nodePubkey:GA(),activatedStake:BA(),epochVoteAccount:Go(),epochCredits:TA(Mg([BA(),BA(),BA()])),commission:BA(),lastVote:BA(),rootSlot:OA(BA())});st(xA({current:TA(IQ),delinquent:TA(IQ)}));const N2=Ao([Bt("processed"),Bt("confirmed"),Bt("finalized")]),k2=xA({slot:BA(),confirmations:OA(BA()),err:ks,confirmationStatus:oe(N2)});Do(TA(OA(k2)));st(BA());const cE=xA({accountKey:It,writableIndexes:TA(BA()),readonlyIndexes:TA(BA())}),vg=xA({signatures:TA(GA()),message:xA({accountKeys:TA(GA()),header:xA({numRequiredSignatures:BA(),numReadonlySignedAccounts:BA(),numReadonlyUnsignedAccounts:BA()}),instructions:TA(xA({accounts:TA(BA()),data:GA(),programIdIndex:BA()})),recentBlockhash:GA(),addressTableLookups:oe(TA(cE))})}),EE=xA({pubkey:It,signer:Go(),writable:Go(),source:oe(Ao([Bt("transaction"),Bt("lookupTable")]))}),CE=xA({accountKeys:TA(EE),signatures:TA(GA())}),uE=xA({parsed:or(),program:GA(),programId:It}),IE=xA({accounts:TA(It),data:GA(),programId:It}),M2=Ao([IE,uE]),b2=Ao([xA({parsed:or(),program:GA(),programId:GA()}),xA({accounts:TA(GA()),data:GA(),programId:GA()})]),dE=Yr(M2,b2,A=>"accounts"in A?xr(A,IE):xr(A,uE)),hE=xA({signatures:TA(GA()),message:xA({accountKeys:TA(EE),instructions:TA(dE),recentBlockhash:GA(),addressTableLookups:oe(OA(TA(cE)))})}),Gn=xA({accountIndex:BA(),mint:GA(),owner:oe(GA()),programId:oe(GA()),uiTokenAmount:f2}),pE=xA({writable:TA(It),readonly:TA(It)}),si=xA({err:ks,fee:BA(),innerInstructions:oe(OA(TA(xA({index:BA(),instructions:TA(xA({accounts:TA(BA()),data:GA(),programIdIndex:BA()}))})))),preBalances:TA(BA()),postBalances:TA(BA()),logMessages:oe(OA(TA(GA()))),preTokenBalances:oe(OA(TA(Gn))),postTokenBalances:oe(OA(TA(Gn))),loadedAddresses:oe(pE),computeUnitsConsumed:oe(BA()),costUnits:oe(BA())}),Sg=xA({err:ks,fee:BA(),innerInstructions:oe(OA(TA(xA({index:BA(),instructions:TA(dE)})))),preBalances:TA(BA()),postBalances:TA(BA()),logMessages:oe(OA(TA(GA()))),preTokenBalances:oe(OA(TA(Gn))),postTokenBalances:oe(OA(TA(Gn))),loadedAddresses:oe(pE),computeUnitsConsumed:oe(BA()),costUnits:oe(BA())}),sr=Ao([Bt(0),Bt("legacy")]),Ms=xA({pubkey:GA(),lamports:BA(),postBalance:OA(BA()),rewardType:OA(GA()),commission:oe(OA(BA()))});st(OA(xA({blockhash:GA(),previousBlockhash:GA(),parentSlot:BA(),transactions:TA(xA({transaction:vg,meta:OA(si),version:oe(sr)})),rewards:oe(TA(Ms)),blockTime:OA(BA()),blockHeight:OA(BA())})));st(OA(xA({blockhash:GA(),previousBlockhash:GA(),parentSlot:BA(),rewards:oe(TA(Ms)),blockTime:OA(BA()),blockHeight:OA(BA())})));st(OA(xA({blockhash:GA(),previousBlockhash:GA(),parentSlot:BA(),transactions:TA(xA({transaction:CE,meta:OA(si),version:oe(sr)})),rewards:oe(TA(Ms)),blockTime:OA(BA()),blockHeight:OA(BA())})));st(OA(xA({blockhash:GA(),previousBlockhash:GA(),parentSlot:BA(),transactions:TA(xA({transaction:hE,meta:OA(Sg),version:oe(sr)})),rewards:oe(TA(Ms)),blockTime:OA(BA()),blockHeight:OA(BA())})));st(OA(xA({blockhash:GA(),previousBlockhash:GA(),parentSlot:BA(),transactions:TA(xA({transaction:CE,meta:OA(Sg),version:oe(sr)})),rewards:oe(TA(Ms)),blockTime:OA(BA()),blockHeight:OA(BA())})));st(OA(xA({blockhash:GA(),previousBlockhash:GA(),parentSlot:BA(),rewards:oe(TA(Ms)),blockTime:OA(BA()),blockHeight:OA(BA())})));st(OA(xA({blockhash:GA(),previousBlockhash:GA(),parentSlot:BA(),transactions:TA(xA({transaction:vg,meta:OA(si)})),rewards:oe(TA(Ms)),blockTime:OA(BA())})));st(OA(xA({blockhash:GA(),previousBlockhash:GA(),parentSlot:BA(),signatures:TA(GA()),blockTime:OA(BA())})));st(OA(xA({slot:BA(),meta:OA(si),blockTime:oe(OA(BA())),transaction:vg,version:oe(sr)})));st(OA(xA({slot:BA(),transaction:hE,meta:OA(Sg),blockTime:oe(OA(BA())),version:oe(sr)})));Do(xA({blockhash:GA(),lastValidBlockHeight:BA()}));Do(Go());const F2=xA({slot:BA(),numTransactions:BA(),numSlots:BA(),samplePeriodSecs:BA()});st(TA(F2));Do(OA(xA({feeCalculator:xA({lamportsPerSignature:BA()})})));st(GA());st(GA());const G2=xA({err:ks,logs:TA(GA()),signature:GA()});xA({result:oi(G2),subscription:BA()});Object.freeze({CreateLookupTable:{index:0,layout:iA.struct([iA.u32("instruction"),zs("recentSlot"),iA.u8("bumpSeed")])},FreezeLookupTable:{index:1,layout:iA.struct([iA.u32("instruction")])},ExtendLookupTable:{index:2,layout:iA.struct([iA.u32("instruction"),zs(),iA.seq(Ve(),iA.offset(iA.u32(),-8),"addresses")])},DeactivateLookupTable:{index:3,layout:iA.struct([iA.u32("instruction")])},CloseLookupTable:{index:4,layout:iA.struct([iA.u32("instruction")])}});new Ye("AddressLookupTab1e1111111111111111111111111");Object.freeze({RequestUnits:{index:0,layout:iA.struct([iA.u8("instruction"),iA.u32("units"),iA.u32("additionalFee")])},RequestHeapFrame:{index:1,layout:iA.struct([iA.u8("instruction"),iA.u32("bytes")])},SetComputeUnitLimit:{index:2,layout:iA.struct([iA.u8("instruction"),iA.u32("units")])},SetComputeUnitPrice:{index:3,layout:iA.struct([iA.u8("instruction"),zs("microLamports")])}});new Ye("ComputeBudget111111111111111111111111111111");iA.struct([iA.u8("numSignatures"),iA.u8("padding"),iA.u16("signatureOffset"),iA.u16("signatureInstructionIndex"),iA.u16("publicKeyOffset"),iA.u16("publicKeyInstructionIndex"),iA.u16("messageDataOffset"),iA.u16("messageDataSize"),iA.u16("messageInstructionIndex")]);new Ye("Ed25519SigVerify111111111111111111111111111");XD.utils.isValidPrivateKey;iA.struct([iA.u8("numSignatures"),iA.u16("signatureOffset"),iA.u8("signatureInstructionIndex"),iA.u16("ethAddressOffset"),iA.u8("ethAddressInstructionIndex"),iA.u16("messageDataOffset"),iA.u16("messageDataSize"),iA.u8("messageInstructionIndex"),iA.blob(20,"ethAddress"),iA.blob(64,"signature"),iA.u8("recoveryId")]);new Ye("KeccakSecp256k11111111111111111111111111111");var fE;new Ye("StakeConfig11111111111111111111111111111111");class mE{constructor(e,t,s){this.unixTimestamp=void 0,this.epoch=void 0,this.custodian=void 0,this.unixTimestamp=e,this.epoch=t,this.custodian=s}}fE=mE;mE.default=new fE(0,0,Ye.default);Object.freeze({Initialize:{index:0,layout:iA.struct([iA.u32("instruction"),s2(),r2()])},Authorize:{index:1,layout:iA.struct([iA.u32("instruction"),Ve("newAuthorized"),iA.u32("stakeAuthorizationType")])},Delegate:{index:2,layout:iA.struct([iA.u32("instruction")])},Split:{index:3,layout:iA.struct([iA.u32("instruction"),iA.ns64("lamports")])},Withdraw:{index:4,layout:iA.struct([iA.u32("instruction"),iA.ns64("lamports")])},Deactivate:{index:5,layout:iA.struct([iA.u32("instruction")])},Merge:{index:7,layout:iA.struct([iA.u32("instruction")])},AuthorizeWithSeed:{index:8,layout:iA.struct([iA.u32("instruction"),Ve("newAuthorized"),iA.u32("stakeAuthorizationType"),js("authoritySeed"),Ve("authorityOwner")])}});new Ye("Stake11111111111111111111111111111111111111");Object.freeze({InitializeAccount:{index:0,layout:iA.struct([iA.u32("instruction"),n2()])},Authorize:{index:1,layout:iA.struct([iA.u32("instruction"),Ve("newAuthorized"),iA.u32("voteAuthorizationType")])},Withdraw:{index:3,layout:iA.struct([iA.u32("instruction"),iA.ns64("lamports")])},UpdateValidatorIdentity:{index:4,layout:iA.struct([iA.u32("instruction")])},AuthorizeWithSeed:{index:10,layout:iA.struct([iA.u32("instruction"),i2()])}});new Ye("Vote111111111111111111111111111111111111111");new Ye("Va1idator1nfo111111111111111111111111111111");xA({name:GA(),website:oe(GA()),details:oe(GA()),iconUrl:oe(GA()),keybaseUsername:oe(GA())});new Ye("Vote111111111111111111111111111111111111111");iA.struct([Ve("nodePubkey"),Ve("authorizedWithdrawer"),iA.u8("commission"),iA.nu64(),iA.seq(iA.struct([iA.nu64("slot"),iA.u32("confirmationCount")]),iA.offset(iA.u32(),-8),"votes"),iA.u8("rootSlotValid"),iA.nu64("rootSlot"),iA.nu64(),iA.seq(iA.struct([iA.nu64("epoch"),Ve("authorizedVoter")]),iA.offset(iA.u32(),-8),"authorizedVoters"),iA.struct([iA.seq(iA.struct([Ve("authorizedPubkey"),iA.nu64("epochOfLastAuthorizedSwitch"),iA.nu64("targetEpoch")]),32,"buf"),iA.nu64("idx"),iA.u8("isEmpty")],"priorVoters"),iA.nu64(),iA.seq(iA.struct([iA.nu64("epoch"),iA.nu64("credits"),iA.nu64("prevCredits")]),iA.offset(iA.u32(),-8),"epochCredits"),iA.struct([iA.nu64("slot"),iA.nu64("timestamp")],"lastTimestamp")]);function v2(A){if(A.length>=255)throw new TypeError("Alphabet too long");const e=new Uint8Array(256);for(let l=0;l<e.length;l++)e[l]=255;for(let l=0;l<A.length;l++){const B=A.charAt(l),u=B.charCodeAt(0);if(e[u]!==255)throw new TypeError(B+" is ambiguous");e[u]=l}const t=A.length,s=A.charAt(0),n=Math.log(t)/Math.log(256),r=Math.log(256)/Math.log(t);function i(l){if(l instanceof Uint8Array||(ArrayBuffer.isView(l)?l=new Uint8Array(l.buffer,l.byteOffset,l.byteLength):Array.isArray(l)&&(l=Uint8Array.from(l))),!(l instanceof Uint8Array))throw new TypeError("Expected Uint8Array");if(l.length===0)return"";let B=0,u=0,E=0;const c=l.length;for(;E!==c&&l[E]===0;)E++,B++;const d=(c-E)*r+1>>>0,f=new Uint8Array(d);for(;E!==c;){let F=l[E],k=0;for(let L=d-1;(F!==0||k<u)&&L!==-1;L--,k++)F+=256*f[L]>>>0,f[L]=F%t>>>0,F=F/t>>>0;if(F!==0)throw new Error("Non-zero carry");u=k,E++}let p=d-u;for(;p!==d&&f[p]===0;)p++;let D=s.repeat(B);for(;p<d;++p)D+=A.charAt(f[p]);return D}function a(l){if(typeof l!="string")throw new TypeError("Expected String");if(l.length===0)return new Uint8Array;let B=0,u=0,E=0;for(;l[B]===s;)u++,B++;const c=(l.length-B)*n+1>>>0,d=new Uint8Array(c);for(;B<l.length;){const F=l.charCodeAt(B);if(F>255)return;let k=e[F];if(k===255)return;let L=0;for(let K=c-1;(k!==0||L<E)&&K!==-1;K--,L++)k+=t*d[K]>>>0,d[K]=k%256>>>0,k=k/256>>>0;if(k!==0)throw new Error("Non-zero carry");E=L,B++}let f=c-E;for(;f!==c&&d[f]===0;)f++;const p=new Uint8Array(u+(c-f));let D=u;for(;f!==c;)p[D++]=d[f++];return p}function g(l){const B=a(l);if(B)return B;throw new Error("Non-base"+t+" character")}return{encode:i,decodeUnsafe:a,decode:g}}var S2="123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz";v2(S2);function U2(A){throw new Error('Could not dynamically require "'+A+'". Please configure the dynamicRequireTargets or/and ignoreDynamicRequires option of @rollup/plugin-commonjs appropriately for this require call to work.')}var Ti={exports:{}},dQ;function R2(){return dQ||(dQ=1,(function(A){(function(e){var t=function(b){var P,z=new Float64Array(16);if(b)for(P=0;P<b.length;P++)z[P]=b[P];return z},s=function(){throw new Error("no PRNG")},n=new Uint8Array(16),r=new Uint8Array(32);r[0]=9;var i=t(),a=t([1]),g=t([56129,1]),l=t([30883,4953,19914,30187,55467,16705,2637,112,59544,30585,16505,36039,65139,11119,27886,20995]),B=t([61785,9906,39828,60374,45398,33411,5274,224,53552,61171,33010,6542,64743,22239,55772,9222]),u=t([54554,36645,11616,51542,42930,38181,51040,26924,56412,64982,57905,49316,21502,52590,14035,8553]),E=t([26200,26214,26214,26214,26214,26214,26214,26214,26214,26214,26214,26214,26214,26214,26214,26214]),c=t([41136,18958,6951,50414,58488,44335,6150,12099,55207,15867,153,11085,57099,20417,9344,11139]);function d(b,P,z,w){b[P]=z>>24&255,b[P+1]=z>>16&255,b[P+2]=z>>8&255,b[P+3]=z&255,b[P+4]=w>>24&255,b[P+5]=w>>16&255,b[P+6]=w>>8&255,b[P+7]=w&255}function f(b,P,z,w,V){var nA,oA=0;for(nA=0;nA<V;nA++)oA|=b[P+nA]^z[w+nA];return(1&oA-1>>>8)-1}function p(b,P,z,w){return f(b,P,z,w,16)}function D(b,P,z,w){return f(b,P,z,w,32)}function F(b,P,z,w){for(var V=w[0]&255|(w[1]&255)<<8|(w[2]&255)<<16|(w[3]&255)<<24,nA=z[0]&255|(z[1]&255)<<8|(z[2]&255)<<16|(z[3]&255)<<24,oA=z[4]&255|(z[5]&255)<<8|(z[6]&255)<<16|(z[7]&255)<<24,IA=z[8]&255|(z[9]&255)<<8|(z[10]&255)<<16|(z[11]&255)<<24,yA=z[12]&255|(z[13]&255)<<8|(z[14]&255)<<16|(z[15]&255)<<24,FA=w[4]&255|(w[5]&255)<<8|(w[6]&255)<<16|(w[7]&255)<<24,DA=P[0]&255|(P[1]&255)<<8|(P[2]&255)<<16|(P[3]&255)<<24,Ee=P[4]&255|(P[5]&255)<<8|(P[6]&255)<<16|(P[7]&255)<<24,UA=P[8]&255|(P[9]&255)<<8|(P[10]&255)<<16|(P[11]&255)<<24,Ae=P[12]&255|(P[13]&255)<<8|(P[14]&255)<<16|(P[15]&255)<<24,ne=w[8]&255|(w[9]&255)<<8|(w[10]&255)<<16|(w[11]&255)<<24,ge=z[16]&255|(z[17]&255)<<8|(z[18]&255)<<16|(z[19]&255)<<24,ie=z[20]&255|(z[21]&255)<<8|(z[22]&255)<<16|(z[23]&255)<<24,se=z[24]&255|(z[25]&255)<<8|(z[26]&255)<<16|(z[27]&255)<<24,re=z[28]&255|(z[29]&255)<<8|(z[30]&255)<<16|(z[31]&255)<<24,ee=w[12]&255|(w[13]&255)<<8|(w[14]&255)<<16|(w[15]&255)<<24,RA=V,YA=nA,SA=oA,KA=IA,JA=yA,vA=FA,CA=DA,uA=Ee,fA=UA,hA=Ae,pA=ne,kA=ge,te=ie,Be=se,ue=re,ce=ee,AA,we=0;we<20;we+=2)AA=RA+te|0,JA^=AA<<7|AA>>>25,AA=JA+RA|0,fA^=AA<<9|AA>>>23,AA=fA+JA|0,te^=AA<<13|AA>>>19,AA=te+fA|0,RA^=AA<<18|AA>>>14,AA=vA+YA|0,hA^=AA<<7|AA>>>25,AA=hA+vA|0,Be^=AA<<9|AA>>>23,AA=Be+hA|0,YA^=AA<<13|AA>>>19,AA=YA+Be|0,vA^=AA<<18|AA>>>14,AA=pA+CA|0,ue^=AA<<7|AA>>>25,AA=ue+pA|0,SA^=AA<<9|AA>>>23,AA=SA+ue|0,CA^=AA<<13|AA>>>19,AA=CA+SA|0,pA^=AA<<18|AA>>>14,AA=ce+kA|0,KA^=AA<<7|AA>>>25,AA=KA+ce|0,uA^=AA<<9|AA>>>23,AA=uA+KA|0,kA^=AA<<13|AA>>>19,AA=kA+uA|0,ce^=AA<<18|AA>>>14,AA=RA+KA|0,YA^=AA<<7|AA>>>25,AA=YA+RA|0,SA^=AA<<9|AA>>>23,AA=SA+YA|0,KA^=AA<<13|AA>>>19,AA=KA+SA|0,RA^=AA<<18|AA>>>14,AA=vA+JA|0,CA^=AA<<7|AA>>>25,AA=CA+vA|0,uA^=AA<<9|AA>>>23,AA=uA+CA|0,JA^=AA<<13|AA>>>19,AA=JA+uA|0,vA^=AA<<18|AA>>>14,AA=pA+hA|0,kA^=AA<<7|AA>>>25,AA=kA+pA|0,fA^=AA<<9|AA>>>23,AA=fA+kA|0,hA^=AA<<13|AA>>>19,AA=hA+fA|0,pA^=AA<<18|AA>>>14,AA=ce+ue|0,te^=AA<<7|AA>>>25,AA=te+ce|0,Be^=AA<<9|AA>>>23,AA=Be+te|0,ue^=AA<<13|AA>>>19,AA=ue+Be|0,ce^=AA<<18|AA>>>14;RA=RA+V|0,YA=YA+nA|0,SA=SA+oA|0,KA=KA+IA|0,JA=JA+yA|0,vA=vA+FA|0,CA=CA+DA|0,uA=uA+Ee|0,fA=fA+UA|0,hA=hA+Ae|0,pA=pA+ne|0,kA=kA+ge|0,te=te+ie|0,Be=Be+se|0,ue=ue+re|0,ce=ce+ee|0,b[0]=RA>>>0&255,b[1]=RA>>>8&255,b[2]=RA>>>16&255,b[3]=RA>>>24&255,b[4]=YA>>>0&255,b[5]=YA>>>8&255,b[6]=YA>>>16&255,b[7]=YA>>>24&255,b[8]=SA>>>0&255,b[9]=SA>>>8&255,b[10]=SA>>>16&255,b[11]=SA>>>24&255,b[12]=KA>>>0&255,b[13]=KA>>>8&255,b[14]=KA>>>16&255,b[15]=KA>>>24&255,b[16]=JA>>>0&255,b[17]=JA>>>8&255,b[18]=JA>>>16&255,b[19]=JA>>>24&255,b[20]=vA>>>0&255,b[21]=vA>>>8&255,b[22]=vA>>>16&255,b[23]=vA>>>24&255,b[24]=CA>>>0&255,b[25]=CA>>>8&255,b[26]=CA>>>16&255,b[27]=CA>>>24&255,b[28]=uA>>>0&255,b[29]=uA>>>8&255,b[30]=uA>>>16&255,b[31]=uA>>>24&255,b[32]=fA>>>0&255,b[33]=fA>>>8&255,b[34]=fA>>>16&255,b[35]=fA>>>24&255,b[36]=hA>>>0&255,b[37]=hA>>>8&255,b[38]=hA>>>16&255,b[39]=hA>>>24&255,b[40]=pA>>>0&255,b[41]=pA>>>8&255,b[42]=pA>>>16&255,b[43]=pA>>>24&255,b[44]=kA>>>0&255,b[45]=kA>>>8&255,b[46]=kA>>>16&255,b[47]=kA>>>24&255,b[48]=te>>>0&255,b[49]=te>>>8&255,b[50]=te>>>16&255,b[51]=te>>>24&255,b[52]=Be>>>0&255,b[53]=Be>>>8&255,b[54]=Be>>>16&255,b[55]=Be>>>24&255,b[56]=ue>>>0&255,b[57]=ue>>>8&255,b[58]=ue>>>16&255,b[59]=ue>>>24&255,b[60]=ce>>>0&255,b[61]=ce>>>8&255,b[62]=ce>>>16&255,b[63]=ce>>>24&255}function k(b,P,z,w){for(var V=w[0]&255|(w[1]&255)<<8|(w[2]&255)<<16|(w[3]&255)<<24,nA=z[0]&255|(z[1]&255)<<8|(z[2]&255)<<16|(z[3]&255)<<24,oA=z[4]&255|(z[5]&255)<<8|(z[6]&255)<<16|(z[7]&255)<<24,IA=z[8]&255|(z[9]&255)<<8|(z[10]&255)<<16|(z[11]&255)<<24,yA=z[12]&255|(z[13]&255)<<8|(z[14]&255)<<16|(z[15]&255)<<24,FA=w[4]&255|(w[5]&255)<<8|(w[6]&255)<<16|(w[7]&255)<<24,DA=P[0]&255|(P[1]&255)<<8|(P[2]&255)<<16|(P[3]&255)<<24,Ee=P[4]&255|(P[5]&255)<<8|(P[6]&255)<<16|(P[7]&255)<<24,UA=P[8]&255|(P[9]&255)<<8|(P[10]&255)<<16|(P[11]&255)<<24,Ae=P[12]&255|(P[13]&255)<<8|(P[14]&255)<<16|(P[15]&255)<<24,ne=w[8]&255|(w[9]&255)<<8|(w[10]&255)<<16|(w[11]&255)<<24,ge=z[16]&255|(z[17]&255)<<8|(z[18]&255)<<16|(z[19]&255)<<24,ie=z[20]&255|(z[21]&255)<<8|(z[22]&255)<<16|(z[23]&255)<<24,se=z[24]&255|(z[25]&255)<<8|(z[26]&255)<<16|(z[27]&255)<<24,re=z[28]&255|(z[29]&255)<<8|(z[30]&255)<<16|(z[31]&255)<<24,ee=w[12]&255|(w[13]&255)<<8|(w[14]&255)<<16|(w[15]&255)<<24,RA=V,YA=nA,SA=oA,KA=IA,JA=yA,vA=FA,CA=DA,uA=Ee,fA=UA,hA=Ae,pA=ne,kA=ge,te=ie,Be=se,ue=re,ce=ee,AA,we=0;we<20;we+=2)AA=RA+te|0,JA^=AA<<7|AA>>>25,AA=JA+RA|0,fA^=AA<<9|AA>>>23,AA=fA+JA|0,te^=AA<<13|AA>>>19,AA=te+fA|0,RA^=AA<<18|AA>>>14,AA=vA+YA|0,hA^=AA<<7|AA>>>25,AA=hA+vA|0,Be^=AA<<9|AA>>>23,AA=Be+hA|0,YA^=AA<<13|AA>>>19,AA=YA+Be|0,vA^=AA<<18|AA>>>14,AA=pA+CA|0,ue^=AA<<7|AA>>>25,AA=ue+pA|0,SA^=AA<<9|AA>>>23,AA=SA+ue|0,CA^=AA<<13|AA>>>19,AA=CA+SA|0,pA^=AA<<18|AA>>>14,AA=ce+kA|0,KA^=AA<<7|AA>>>25,AA=KA+ce|0,uA^=AA<<9|AA>>>23,AA=uA+KA|0,kA^=AA<<13|AA>>>19,AA=kA+uA|0,ce^=AA<<18|AA>>>14,AA=RA+KA|0,YA^=AA<<7|AA>>>25,AA=YA+RA|0,SA^=AA<<9|AA>>>23,AA=SA+YA|0,KA^=AA<<13|AA>>>19,AA=KA+SA|0,RA^=AA<<18|AA>>>14,AA=vA+JA|0,CA^=AA<<7|AA>>>25,AA=CA+vA|0,uA^=AA<<9|AA>>>23,AA=uA+CA|0,JA^=AA<<13|AA>>>19,AA=JA+uA|0,vA^=AA<<18|AA>>>14,AA=pA+hA|0,kA^=AA<<7|AA>>>25,AA=kA+pA|0,fA^=AA<<9|AA>>>23,AA=fA+kA|0,hA^=AA<<13|AA>>>19,AA=hA+fA|0,pA^=AA<<18|AA>>>14,AA=ce+ue|0,te^=AA<<7|AA>>>25,AA=te+ce|0,Be^=AA<<9|AA>>>23,AA=Be+te|0,ue^=AA<<13|AA>>>19,AA=ue+Be|0,ce^=AA<<18|AA>>>14;b[0]=RA>>>0&255,b[1]=RA>>>8&255,b[2]=RA>>>16&255,b[3]=RA>>>24&255,b[4]=vA>>>0&255,b[5]=vA>>>8&255,b[6]=vA>>>16&255,b[7]=vA>>>24&255,b[8]=pA>>>0&255,b[9]=pA>>>8&255,b[10]=pA>>>16&255,b[11]=pA>>>24&255,b[12]=ce>>>0&255,b[13]=ce>>>8&255,b[14]=ce>>>16&255,b[15]=ce>>>24&255,b[16]=CA>>>0&255,b[17]=CA>>>8&255,b[18]=CA>>>16&255,b[19]=CA>>>24&255,b[20]=uA>>>0&255,b[21]=uA>>>8&255,b[22]=uA>>>16&255,b[23]=uA>>>24&255,b[24]=fA>>>0&255,b[25]=fA>>>8&255,b[26]=fA>>>16&255,b[27]=fA>>>24&255,b[28]=hA>>>0&255,b[29]=hA>>>8&255,b[30]=hA>>>16&255,b[31]=hA>>>24&255}function L(b,P,z,w){F(b,P,z,w)}function K(b,P,z,w){k(b,P,z,w)}var W=new Uint8Array([101,120,112,97,110,100,32,51,50,45,98,121,116,101,32,107]);function $(b,P,z,w,V,nA,oA){var IA=new Uint8Array(16),yA=new Uint8Array(64),FA,DA;for(DA=0;DA<16;DA++)IA[DA]=0;for(DA=0;DA<8;DA++)IA[DA]=nA[DA];for(;V>=64;){for(L(yA,IA,oA,W),DA=0;DA<64;DA++)b[P+DA]=z[w+DA]^yA[DA];for(FA=1,DA=8;DA<16;DA++)FA=FA+(IA[DA]&255)|0,IA[DA]=FA&255,FA>>>=8;V-=64,P+=64,w+=64}if(V>0)for(L(yA,IA,oA,W),DA=0;DA<V;DA++)b[P+DA]=z[w+DA]^yA[DA];return 0}function X(b,P,z,w,V){var nA=new Uint8Array(16),oA=new Uint8Array(64),IA,yA;for(yA=0;yA<16;yA++)nA[yA]=0;for(yA=0;yA<8;yA++)nA[yA]=w[yA];for(;z>=64;){for(L(oA,nA,V,W),yA=0;yA<64;yA++)b[P+yA]=oA[yA];for(IA=1,yA=8;yA<16;yA++)IA=IA+(nA[yA]&255)|0,nA[yA]=IA&255,IA>>>=8;z-=64,P+=64}if(z>0)for(L(oA,nA,V,W),yA=0;yA<z;yA++)b[P+yA]=oA[yA];return 0}function U(b,P,z,w,V){var nA=new Uint8Array(32);K(nA,w,V,W);for(var oA=new Uint8Array(8),IA=0;IA<8;IA++)oA[IA]=w[IA+16];return X(b,P,z,oA,nA)}function O(b,P,z,w,V,nA,oA){var IA=new Uint8Array(32);K(IA,nA,oA,W);for(var yA=new Uint8Array(8),FA=0;FA<8;FA++)yA[FA]=nA[FA+16];return $(b,P,z,w,V,yA,IA)}var T=function(b){this.buffer=new Uint8Array(16),this.r=new Uint16Array(10),this.h=new Uint16Array(10),this.pad=new Uint16Array(8),this.leftover=0,this.fin=0;var P,z,w,V,nA,oA,IA,yA;P=b[0]&255|(b[1]&255)<<8,this.r[0]=P&8191,z=b[2]&255|(b[3]&255)<<8,this.r[1]=(P>>>13|z<<3)&8191,w=b[4]&255|(b[5]&255)<<8,this.r[2]=(z>>>10|w<<6)&7939,V=b[6]&255|(b[7]&255)<<8,this.r[3]=(w>>>7|V<<9)&8191,nA=b[8]&255|(b[9]&255)<<8,this.r[4]=(V>>>4|nA<<12)&255,this.r[5]=nA>>>1&8190,oA=b[10]&255|(b[11]&255)<<8,this.r[6]=(nA>>>14|oA<<2)&8191,IA=b[12]&255|(b[13]&255)<<8,this.r[7]=(oA>>>11|IA<<5)&8065,yA=b[14]&255|(b[15]&255)<<8,this.r[8]=(IA>>>8|yA<<8)&8191,this.r[9]=yA>>>5&127,this.pad[0]=b[16]&255|(b[17]&255)<<8,this.pad[1]=b[18]&255|(b[19]&255)<<8,this.pad[2]=b[20]&255|(b[21]&255)<<8,this.pad[3]=b[22]&255|(b[23]&255)<<8,this.pad[4]=b[24]&255|(b[25]&255)<<8,this.pad[5]=b[26]&255|(b[27]&255)<<8,this.pad[6]=b[28]&255|(b[29]&255)<<8,this.pad[7]=b[30]&255|(b[31]&255)<<8};T.prototype.blocks=function(b,P,z){for(var w=this.fin?0:2048,V,nA,oA,IA,yA,FA,DA,Ee,UA,Ae,ne,ge,ie,se,re,ee,RA,YA,SA,KA=this.h[0],JA=this.h[1],vA=this.h[2],CA=this.h[3],uA=this.h[4],fA=this.h[5],hA=this.h[6],pA=this.h[7],kA=this.h[8],te=this.h[9],Be=this.r[0],ue=this.r[1],ce=this.r[2],AA=this.r[3],we=this.r[4],Se=this.r[5],Me=this.r[6],he=this.r[7],be=this.r[8],Ue=this.r[9];z>=16;)V=b[P+0]&255|(b[P+1]&255)<<8,KA+=V&8191,nA=b[P+2]&255|(b[P+3]&255)<<8,JA+=(V>>>13|nA<<3)&8191,oA=b[P+4]&255|(b[P+5]&255)<<8,vA+=(nA>>>10|oA<<6)&8191,IA=b[P+6]&255|(b[P+7]&255)<<8,CA+=(oA>>>7|IA<<9)&8191,yA=b[P+8]&255|(b[P+9]&255)<<8,uA+=(IA>>>4|yA<<12)&8191,fA+=yA>>>1&8191,FA=b[P+10]&255|(b[P+11]&255)<<8,hA+=(yA>>>14|FA<<2)&8191,DA=b[P+12]&255|(b[P+13]&255)<<8,pA+=(FA>>>11|DA<<5)&8191,Ee=b[P+14]&255|(b[P+15]&255)<<8,kA+=(DA>>>8|Ee<<8)&8191,te+=Ee>>>5|w,UA=0,Ae=UA,Ae+=KA*Be,Ae+=JA*(5*Ue),Ae+=vA*(5*be),Ae+=CA*(5*he),Ae+=uA*(5*Me),UA=Ae>>>13,Ae&=8191,Ae+=fA*(5*Se),Ae+=hA*(5*we),Ae+=pA*(5*AA),Ae+=kA*(5*ce),Ae+=te*(5*ue),UA+=Ae>>>13,Ae&=8191,ne=UA,ne+=KA*ue,ne+=JA*Be,ne+=vA*(5*Ue),ne+=CA*(5*be),ne+=uA*(5*he),UA=ne>>>13,ne&=8191,ne+=fA*(5*Me),ne+=hA*(5*Se),ne+=pA*(5*we),ne+=kA*(5*AA),ne+=te*(5*ce),UA+=ne>>>13,ne&=8191,ge=UA,ge+=KA*ce,ge+=JA*ue,ge+=vA*Be,ge+=CA*(5*Ue),ge+=uA*(5*be),UA=ge>>>13,ge&=8191,ge+=fA*(5*he),ge+=hA*(5*Me),ge+=pA*(5*Se),ge+=kA*(5*we),ge+=te*(5*AA),UA+=ge>>>13,ge&=8191,ie=UA,ie+=KA*AA,ie+=JA*ce,ie+=vA*ue,ie+=CA*Be,ie+=uA*(5*Ue),UA=ie>>>13,ie&=8191,ie+=fA*(5*be),ie+=hA*(5*he),ie+=pA*(5*Me),ie+=kA*(5*Se),ie+=te*(5*we),UA+=ie>>>13,ie&=8191,se=UA,se+=KA*we,se+=JA*AA,se+=vA*ce,se+=CA*ue,se+=uA*Be,UA=se>>>13,se&=8191,se+=fA*(5*Ue),se+=hA*(5*be),se+=pA*(5*he),se+=kA*(5*Me),se+=te*(5*Se),UA+=se>>>13,se&=8191,re=UA,re+=KA*Se,re+=JA*we,re+=vA*AA,re+=CA*ce,re+=uA*ue,UA=re>>>13,re&=8191,re+=fA*Be,re+=hA*(5*Ue),re+=pA*(5*be),re+=kA*(5*he),re+=te*(5*Me),UA+=re>>>13,re&=8191,ee=UA,ee+=KA*Me,ee+=JA*Se,ee+=vA*we,ee+=CA*AA,ee+=uA*ce,UA=ee>>>13,ee&=8191,ee+=fA*ue,ee+=hA*Be,ee+=pA*(5*Ue),ee+=kA*(5*be),ee+=te*(5*he),UA+=ee>>>13,ee&=8191,RA=UA,RA+=KA*he,RA+=JA*Me,RA+=vA*Se,RA+=CA*we,RA+=uA*AA,UA=RA>>>13,RA&=8191,RA+=fA*ce,RA+=hA*ue,RA+=pA*Be,RA+=kA*(5*Ue),RA+=te*(5*be),UA+=RA>>>13,RA&=8191,YA=UA,YA+=KA*be,YA+=JA*he,YA+=vA*Me,YA+=CA*Se,YA+=uA*we,UA=YA>>>13,YA&=8191,YA+=fA*AA,YA+=hA*ce,YA+=pA*ue,YA+=kA*Be,YA+=te*(5*Ue),UA+=YA>>>13,YA&=8191,SA=UA,SA+=KA*Ue,SA+=JA*be,SA+=vA*he,SA+=CA*Me,SA+=uA*Se,UA=SA>>>13,SA&=8191,SA+=fA*we,SA+=hA*AA,SA+=pA*ce,SA+=kA*ue,SA+=te*Be,UA+=SA>>>13,SA&=8191,UA=(UA<<2)+UA|0,UA=UA+Ae|0,Ae=UA&8191,UA=UA>>>13,ne+=UA,KA=Ae,JA=ne,vA=ge,CA=ie,uA=se,fA=re,hA=ee,pA=RA,kA=YA,te=SA,P+=16,z-=16;this.h[0]=KA,this.h[1]=JA,this.h[2]=vA,this.h[3]=CA,this.h[4]=uA,this.h[5]=fA,this.h[6]=hA,this.h[7]=pA,this.h[8]=kA,this.h[9]=te},T.prototype.finish=function(b,P){var z=new Uint16Array(10),w,V,nA,oA;if(this.leftover){for(oA=this.leftover,this.buffer[oA++]=1;oA<16;oA++)this.buffer[oA]=0;this.fin=1,this.blocks(this.buffer,0,16)}for(w=this.h[1]>>>13,this.h[1]&=8191,oA=2;oA<10;oA++)this.h[oA]+=w,w=this.h[oA]>>>13,this.h[oA]&=8191;for(this.h[0]+=w*5,w=this.h[0]>>>13,this.h[0]&=8191,this.h[1]+=w,w=this.h[1]>>>13,this.h[1]&=8191,this.h[2]+=w,z[0]=this.h[0]+5,w=z[0]>>>13,z[0]&=8191,oA=1;oA<10;oA++)z[oA]=this.h[oA]+w,w=z[oA]>>>13,z[oA]&=8191;for(z[9]-=8192,V=(w^1)-1,oA=0;oA<10;oA++)z[oA]&=V;for(V=~V,oA=0;oA<10;oA++)this.h[oA]=this.h[oA]&V|z[oA];for(this.h[0]=(this.h[0]|this.h[1]<<13)&65535,this.h[1]=(this.h[1]>>>3|this.h[2]<<10)&65535,this.h[2]=(this.h[2]>>>6|this.h[3]<<7)&65535,this.h[3]=(this.h[3]>>>9|this.h[4]<<4)&65535,this.h[4]=(this.h[4]>>>12|this.h[5]<<1|this.h[6]<<14)&65535,this.h[5]=(this.h[6]>>>2|this.h[7]<<11)&65535,this.h[6]=(this.h[7]>>>5|this.h[8]<<8)&65535,this.h[7]=(this.h[8]>>>8|this.h[9]<<5)&65535,nA=this.h[0]+this.pad[0],this.h[0]=nA&65535,oA=1;oA<8;oA++)nA=(this.h[oA]+this.pad[oA]|0)+(nA>>>16)|0,this.h[oA]=nA&65535;b[P+0]=this.h[0]>>>0&255,b[P+1]=this.h[0]>>>8&255,b[P+2]=this.h[1]>>>0&255,b[P+3]=this.h[1]>>>8&255,b[P+4]=this.h[2]>>>0&255,b[P+5]=this.h[2]>>>8&255,b[P+6]=this.h[3]>>>0&255,b[P+7]=this.h[3]>>>8&255,b[P+8]=this.h[4]>>>0&255,b[P+9]=this.h[4]>>>8&255,b[P+10]=this.h[5]>>>0&255,b[P+11]=this.h[5]>>>8&255,b[P+12]=this.h[6]>>>0&255,b[P+13]=this.h[6]>>>8&255,b[P+14]=this.h[7]>>>0&255,b[P+15]=this.h[7]>>>8&255},T.prototype.update=function(b,P,z){var w,V;if(this.leftover){for(V=16-this.leftover,V>z&&(V=z),w=0;w<V;w++)this.buffer[this.leftover+w]=b[P+w];if(z-=V,P+=V,this.leftover+=V,this.leftover<16)return;this.blocks(this.buffer,0,16),this.leftover=0}if(z>=16&&(V=z-z%16,this.blocks(b,P,V),P+=V,z-=V),z){for(w=0;w<z;w++)this.buffer[this.leftover+w]=b[P+w];this.leftover+=z}};function H(b,P,z,w,V,nA){var oA=new T(nA);return oA.update(z,w,V),oA.finish(b,P),0}function x(b,P,z,w,V,nA){var oA=new Uint8Array(16);return H(oA,0,z,w,V,nA),p(b,P,oA,0)}function Q(b,P,z,w,V){var nA;if(z<32)return-1;for(O(b,0,P,0,z,w,V),H(b,16,b,32,z-32,b),nA=0;nA<16;nA++)b[nA]=0;return 0}function I(b,P,z,w,V){var nA,oA=new Uint8Array(32);if(z<32||(U(oA,0,32,w,V),x(P,16,P,32,z-32,oA)!==0))return-1;for(O(b,0,P,0,z,w,V),nA=0;nA<32;nA++)b[nA]=0;return 0}function N(b,P){var z;for(z=0;z<16;z++)b[z]=P[z]|0}function G(b){var P,z,w=1;for(P=0;P<16;P++)z=b[P]+w+65535,w=Math.floor(z/65536),b[P]=z-w*65536;b[0]+=w-1+37*(w-1)}function J(b,P,z){for(var w,V=~(z-1),nA=0;nA<16;nA++)w=V&(b[nA]^P[nA]),b[nA]^=w,P[nA]^=w}function q(b,P){var z,w,V,nA=t(),oA=t();for(z=0;z<16;z++)oA[z]=P[z];for(G(oA),G(oA),G(oA),w=0;w<2;w++){for(nA[0]=oA[0]-65517,z=1;z<15;z++)nA[z]=oA[z]-65535-(nA[z-1]>>16&1),nA[z-1]&=65535;nA[15]=oA[15]-32767-(nA[14]>>16&1),V=nA[15]>>16&1,nA[14]&=65535,J(oA,nA,1-V)}for(z=0;z<16;z++)b[2*z]=oA[z]&255,b[2*z+1]=oA[z]>>8}function j(b,P){var z=new Uint8Array(32),w=new Uint8Array(32);return q(z,b),q(w,P),D(z,0,w,0)}function R(b){var P=new Uint8Array(32);return q(P,b),P[0]&1}function C(b,P){var z;for(z=0;z<16;z++)b[z]=P[2*z]+(P[2*z+1]<<8);b[15]&=32767}function h(b,P,z){for(var w=0;w<16;w++)b[w]=P[w]+z[w]}function v(b,P,z){for(var w=0;w<16;w++)b[w]=P[w]-z[w]}function S(b,P,z){var w,V,nA=0,oA=0,IA=0,yA=0,FA=0,DA=0,Ee=0,UA=0,Ae=0,ne=0,ge=0,ie=0,se=0,re=0,ee=0,RA=0,YA=0,SA=0,KA=0,JA=0,vA=0,CA=0,uA=0,fA=0,hA=0,pA=0,kA=0,te=0,Be=0,ue=0,ce=0,AA=z[0],we=z[1],Se=z[2],Me=z[3],he=z[4],be=z[5],Ue=z[6],lt=z[7],ze=z[8],tt=z[9],at=z[10],rt=z[11],ct=z[12],ht=z[13],Dt=z[14],lA=z[15];w=P[0],nA+=w*AA,oA+=w*we,IA+=w*Se,yA+=w*Me,FA+=w*he,DA+=w*be,Ee+=w*Ue,UA+=w*lt,Ae+=w*ze,ne+=w*tt,ge+=w*at,ie+=w*rt,se+=w*ct,re+=w*ht,ee+=w*Dt,RA+=w*lA,w=P[1],oA+=w*AA,IA+=w*we,yA+=w*Se,FA+=w*Me,DA+=w*he,Ee+=w*be,UA+=w*Ue,Ae+=w*lt,ne+=w*ze,ge+=w*tt,ie+=w*at,se+=w*rt,re+=w*ct,ee+=w*ht,RA+=w*Dt,YA+=w*lA,w=P[2],IA+=w*AA,yA+=w*we,FA+=w*Se,DA+=w*Me,Ee+=w*he,UA+=w*be,Ae+=w*Ue,ne+=w*lt,ge+=w*ze,ie+=w*tt,se+=w*at,re+=w*rt,ee+=w*ct,RA+=w*ht,YA+=w*Dt,SA+=w*lA,w=P[3],yA+=w*AA,FA+=w*we,DA+=w*Se,Ee+=w*Me,UA+=w*he,Ae+=w*be,ne+=w*Ue,ge+=w*lt,ie+=w*ze,se+=w*tt,re+=w*at,ee+=w*rt,RA+=w*ct,YA+=w*ht,SA+=w*Dt,KA+=w*lA,w=P[4],FA+=w*AA,DA+=w*we,Ee+=w*Se,UA+=w*Me,Ae+=w*he,ne+=w*be,ge+=w*Ue,ie+=w*lt,se+=w*ze,re+=w*tt,ee+=w*at,RA+=w*rt,YA+=w*ct,SA+=w*ht,KA+=w*Dt,JA+=w*lA,w=P[5],DA+=w*AA,Ee+=w*we,UA+=w*Se,Ae+=w*Me,ne+=w*he,ge+=w*be,ie+=w*Ue,se+=w*lt,re+=w*ze,ee+=w*tt,RA+=w*at,YA+=w*rt,SA+=w*ct,KA+=w*ht,JA+=w*Dt,vA+=w*lA,w=P[6],Ee+=w*AA,UA+=w*we,Ae+=w*Se,ne+=w*Me,ge+=w*he,ie+=w*be,se+=w*Ue,re+=w*lt,ee+=w*ze,RA+=w*tt,YA+=w*at,SA+=w*rt,KA+=w*ct,JA+=w*ht,vA+=w*Dt,CA+=w*lA,w=P[7],UA+=w*AA,Ae+=w*we,ne+=w*Se,ge+=w*Me,ie+=w*he,se+=w*be,re+=w*Ue,ee+=w*lt,RA+=w*ze,YA+=w*tt,SA+=w*at,KA+=w*rt,JA+=w*ct,vA+=w*ht,CA+=w*Dt,uA+=w*lA,w=P[8],Ae+=w*AA,ne+=w*we,ge+=w*Se,ie+=w*Me,se+=w*he,re+=w*be,ee+=w*Ue,RA+=w*lt,YA+=w*ze,SA+=w*tt,KA+=w*at,JA+=w*rt,vA+=w*ct,CA+=w*ht,uA+=w*Dt,fA+=w*lA,w=P[9],ne+=w*AA,ge+=w*we,ie+=w*Se,se+=w*Me,re+=w*he,ee+=w*be,RA+=w*Ue,YA+=w*lt,SA+=w*ze,KA+=w*tt,JA+=w*at,vA+=w*rt,CA+=w*ct,uA+=w*ht,fA+=w*Dt,hA+=w*lA,w=P[10],ge+=w*AA,ie+=w*we,se+=w*Se,re+=w*Me,ee+=w*he,RA+=w*be,YA+=w*Ue,SA+=w*lt,KA+=w*ze,JA+=w*tt,vA+=w*at,CA+=w*rt,uA+=w*ct,fA+=w*ht,hA+=w*Dt,pA+=w*lA,w=P[11],ie+=w*AA,se+=w*we,re+=w*Se,ee+=w*Me,RA+=w*he,YA+=w*be,SA+=w*Ue,KA+=w*lt,JA+=w*ze,vA+=w*tt,CA+=w*at,uA+=w*rt,fA+=w*ct,hA+=w*ht,pA+=w*Dt,kA+=w*lA,w=P[12],se+=w*AA,re+=w*we,ee+=w*Se,RA+=w*Me,YA+=w*he,SA+=w*be,KA+=w*Ue,JA+=w*lt,vA+=w*ze,CA+=w*tt,uA+=w*at,fA+=w*rt,hA+=w*ct,pA+=w*ht,kA+=w*Dt,te+=w*lA,w=P[13],re+=w*AA,ee+=w*we,RA+=w*Se,YA+=w*Me,SA+=w*he,KA+=w*be,JA+=w*Ue,vA+=w*lt,CA+=w*ze,uA+=w*tt,fA+=w*at,hA+=w*rt,pA+=w*ct,kA+=w*ht,te+=w*Dt,Be+=w*lA,w=P[14],ee+=w*AA,RA+=w*we,YA+=w*Se,SA+=w*Me,KA+=w*he,JA+=w*be,vA+=w*Ue,CA+=w*lt,uA+=w*ze,fA+=w*tt,hA+=w*at,pA+=w*rt,kA+=w*ct,te+=w*ht,Be+=w*Dt,ue+=w*lA,w=P[15],RA+=w*AA,YA+=w*we,SA+=w*Se,KA+=w*Me,JA+=w*he,vA+=w*be,CA+=w*Ue,uA+=w*lt,fA+=w*ze,hA+=w*tt,pA+=w*at,kA+=w*rt,te+=w*ct,Be+=w*ht,ue+=w*Dt,ce+=w*lA,nA+=38*YA,oA+=38*SA,IA+=38*KA,yA+=38*JA,FA+=38*vA,DA+=38*CA,Ee+=38*uA,UA+=38*fA,Ae+=38*hA,ne+=38*pA,ge+=38*kA,ie+=38*te,se+=38*Be,re+=38*ue,ee+=38*ce,V=1,w=nA+V+65535,V=Math.floor(w/65536),nA=w-V*65536,w=oA+V+65535,V=Math.floor(w/65536),oA=w-V*65536,w=IA+V+65535,V=Math.floor(w/65536),IA=w-V*65536,w=yA+V+65535,V=Math.floor(w/65536),yA=w-V*65536,w=FA+V+65535,V=Math.floor(w/65536),FA=w-V*65536,w=DA+V+65535,V=Math.floor(w/65536),DA=w-V*65536,w=Ee+V+65535,V=Math.floor(w/65536),Ee=w-V*65536,w=UA+V+65535,V=Math.floor(w/65536),UA=w-V*65536,w=Ae+V+65535,V=Math.floor(w/65536),Ae=w-V*65536,w=ne+V+65535,V=Math.floor(w/65536),ne=w-V*65536,w=ge+V+65535,V=Math.floor(w/65536),ge=w-V*65536,w=ie+V+65535,V=Math.floor(w/65536),ie=w-V*65536,w=se+V+65535,V=Math.floor(w/65536),se=w-V*65536,w=re+V+65535,V=Math.floor(w/65536),re=w-V*65536,w=ee+V+65535,V=Math.floor(w/65536),ee=w-V*65536,w=RA+V+65535,V=Math.floor(w/65536),RA=w-V*65536,nA+=V-1+37*(V-1),V=1,w=nA+V+65535,V=Math.floor(w/65536),nA=w-V*65536,w=oA+V+65535,V=Math.floor(w/65536),oA=w-V*65536,w=IA+V+65535,V=Math.floor(w/65536),IA=w-V*65536,w=yA+V+65535,V=Math.floor(w/65536),yA=w-V*65536,w=FA+V+65535,V=Math.floor(w/65536),FA=w-V*65536,w=DA+V+65535,V=Math.floor(w/65536),DA=w-V*65536,w=Ee+V+65535,V=Math.floor(w/65536),Ee=w-V*65536,w=UA+V+65535,V=Math.floor(w/65536),UA=w-V*65536,w=Ae+V+65535,V=Math.floor(w/65536),Ae=w-V*65536,w=ne+V+65535,V=Math.floor(w/65536),ne=w-V*65536,w=ge+V+65535,V=Math.floor(w/65536),ge=w-V*65536,w=ie+V+65535,V=Math.floor(w/65536),ie=w-V*65536,w=se+V+65535,V=Math.floor(w/65536),se=w-V*65536,w=re+V+65535,V=Math.floor(w/65536),re=w-V*65536,w=ee+V+65535,V=Math.floor(w/65536),ee=w-V*65536,w=RA+V+65535,V=Math.floor(w/65536),RA=w-V*65536,nA+=V-1+37*(V-1),b[0]=nA,b[1]=oA,b[2]=IA,b[3]=yA,b[4]=FA,b[5]=DA,b[6]=Ee,b[7]=UA,b[8]=Ae,b[9]=ne,b[10]=ge,b[11]=ie,b[12]=se,b[13]=re,b[14]=ee,b[15]=RA}function Z(b,P){S(b,P,P)}function eA(b,P){var z=t(),w;for(w=0;w<16;w++)z[w]=P[w];for(w=253;w>=0;w--)Z(z,z),w!==2&&w!==4&&S(z,z,P);for(w=0;w<16;w++)b[w]=z[w]}function rA(b,P){var z=t(),w;for(w=0;w<16;w++)z[w]=P[w];for(w=250;w>=0;w--)Z(z,z),w!==1&&S(z,z,P);for(w=0;w<16;w++)b[w]=z[w]}function sA(b,P,z){var w=new Uint8Array(32),V=new Float64Array(80),nA,oA,IA=t(),yA=t(),FA=t(),DA=t(),Ee=t(),UA=t();for(oA=0;oA<31;oA++)w[oA]=P[oA];for(w[31]=P[31]&127|64,w[0]&=248,C(V,z),oA=0;oA<16;oA++)yA[oA]=V[oA],DA[oA]=IA[oA]=FA[oA]=0;for(IA[0]=DA[0]=1,oA=254;oA>=0;--oA)nA=w[oA>>>3]>>>(oA&7)&1,J(IA,yA,nA),J(FA,DA,nA),h(Ee,IA,FA),v(IA,IA,FA),h(FA,yA,DA),v(yA,yA,DA),Z(DA,Ee),Z(UA,IA),S(IA,FA,IA),S(FA,yA,Ee),h(Ee,IA,FA),v(IA,IA,FA),Z(yA,IA),v(FA,DA,UA),S(IA,FA,g),h(IA,IA,DA),S(FA,FA,IA),S(IA,DA,UA),S(DA,yA,V),Z(yA,Ee),J(IA,yA,nA),J(FA,DA,nA);for(oA=0;oA<16;oA++)V[oA+16]=IA[oA],V[oA+32]=FA[oA],V[oA+48]=yA[oA],V[oA+64]=DA[oA];var Ae=V.subarray(32),ne=V.subarray(16);return eA(Ae,Ae),S(ne,ne,Ae),q(b,ne),0}function bA(b,P){return sA(b,P,r)}function LA(b,P){return s(P,32),bA(b,P)}function QA(b,P,z){var w=new Uint8Array(32);return sA(w,z,P),K(b,n,w,W)}var qA=Q,PA=I;function Ce(b,P,z,w,V,nA){var oA=new Uint8Array(32);return QA(oA,V,nA),qA(b,P,z,w,oA)}function MA(b,P,z,w,V,nA){var oA=new Uint8Array(32);return QA(oA,V,nA),PA(b,P,z,w,oA)}var ZA=[1116352408,3609767458,1899447441,602891725,3049323471,3964484399,3921009573,2173295548,961987163,4081628472,1508970993,3053834265,2453635748,2937671579,2870763221,3664609560,3624381080,2734883394,310598401,1164996542,607225278,1323610764,1426881987,3590304994,1925078388,4068182383,2162078206,991336113,2614888103,633803317,3248222580,3479774868,3835390401,2666613458,4022224774,944711139,264347078,2341262773,604807628,2007800933,770255983,1495990901,1249150122,1856431235,1555081692,3175218132,1996064986,2198950837,2554220882,3999719339,2821834349,766784016,2952996808,2566594879,3210313671,3203337956,3336571891,1034457026,3584528711,2466948901,113926993,3758326383,338241895,168717936,666307205,1188179964,773529912,1546045734,1294757372,1522805485,1396182291,2643833823,1695183700,2343527390,1986661051,1014477480,2177026350,1206759142,2456956037,344077627,2730485921,1290863460,2820302411,3158454273,3259730800,3505952657,3345764771,106217008,3516065817,3606008344,3600352804,1432725776,4094571909,1467031594,275423344,851169720,430227734,3100823752,506948616,1363258195,659060556,3750685593,883997877,3785050280,958139571,3318307427,1322822218,3812723403,1537002063,2003034995,1747873779,3602036899,1955562222,1575990012,2024104815,1125592928,2227730452,2716904306,2361852424,442776044,2428436474,593698344,2756734187,3733110249,3204031479,2999351573,3329325298,3815920427,3391569614,3928383900,3515267271,566280711,3940187606,3454069534,4118630271,4000239992,116418474,1914138554,174292421,2731055270,289380356,3203993006,460393269,320620315,685471733,587496836,852142971,1086792851,1017036298,365543100,1126000580,2618297676,1288033470,3409855158,1501505948,4234509866,1607167915,987167468,1816402316,1246189591];function fe(b,P,z,w){for(var V=new Int32Array(16),nA=new Int32Array(16),oA,IA,yA,FA,DA,Ee,UA,Ae,ne,ge,ie,se,re,ee,RA,YA,SA,KA,JA,vA,CA,uA,fA,hA,pA,kA,te=b[0],Be=b[1],ue=b[2],ce=b[3],AA=b[4],we=b[5],Se=b[6],Me=b[7],he=P[0],be=P[1],Ue=P[2],lt=P[3],ze=P[4],tt=P[5],at=P[6],rt=P[7],ct=0;w>=128;){for(JA=0;JA<16;JA++)vA=8*JA+ct,V[JA]=z[vA+0]<<24|z[vA+1]<<16|z[vA+2]<<8|z[vA+3],nA[JA]=z[vA+4]<<24|z[vA+5]<<16|z[vA+6]<<8|z[vA+7];for(JA=0;JA<80;JA++)if(oA=te,IA=Be,yA=ue,FA=ce,DA=AA,Ee=we,UA=Se,Ae=Me,ne=he,ge=be,ie=Ue,se=lt,re=ze,ee=tt,RA=at,YA=rt,CA=Me,uA=rt,fA=uA&65535,hA=uA>>>16,pA=CA&65535,kA=CA>>>16,CA=(AA>>>14|ze<<18)^(AA>>>18|ze<<14)^(ze>>>9|AA<<23),uA=(ze>>>14|AA<<18)^(ze>>>18|AA<<14)^(AA>>>9|ze<<23),fA+=uA&65535,hA+=uA>>>16,pA+=CA&65535,kA+=CA>>>16,CA=AA&we^~AA&Se,uA=ze&tt^~ze&at,fA+=uA&65535,hA+=uA>>>16,pA+=CA&65535,kA+=CA>>>16,CA=ZA[JA*2],uA=ZA[JA*2+1],fA+=uA&65535,hA+=uA>>>16,pA+=CA&65535,kA+=CA>>>16,CA=V[JA%16],uA=nA[JA%16],fA+=uA&65535,hA+=uA>>>16,pA+=CA&65535,kA+=CA>>>16,hA+=fA>>>16,pA+=hA>>>16,kA+=pA>>>16,SA=pA&65535|kA<<16,KA=fA&65535|hA<<16,CA=SA,uA=KA,fA=uA&65535,hA=uA>>>16,pA=CA&65535,kA=CA>>>16,CA=(te>>>28|he<<4)^(he>>>2|te<<30)^(he>>>7|te<<25),uA=(he>>>28|te<<4)^(te>>>2|he<<30)^(te>>>7|he<<25),fA+=uA&65535,hA+=uA>>>16,pA+=CA&65535,kA+=CA>>>16,CA=te&Be^te&ue^Be&ue,uA=he&be^he&Ue^be&Ue,fA+=uA&65535,hA+=uA>>>16,pA+=CA&65535,kA+=CA>>>16,hA+=fA>>>16,pA+=hA>>>16,kA+=pA>>>16,Ae=pA&65535|kA<<16,YA=fA&65535|hA<<16,CA=FA,uA=se,fA=uA&65535,hA=uA>>>16,pA=CA&65535,kA=CA>>>16,CA=SA,uA=KA,fA+=uA&65535,hA+=uA>>>16,pA+=CA&65535,kA+=CA>>>16,hA+=fA>>>16,pA+=hA>>>16,kA+=pA>>>16,FA=pA&65535|kA<<16,se=fA&65535|hA<<16,Be=oA,ue=IA,ce=yA,AA=FA,we=DA,Se=Ee,Me=UA,te=Ae,be=ne,Ue=ge,lt=ie,ze=se,tt=re,at=ee,rt=RA,he=YA,JA%16===15)for(vA=0;vA<16;vA++)CA=V[vA],uA=nA[vA],fA=uA&65535,hA=uA>>>16,pA=CA&65535,kA=CA>>>16,CA=V[(vA+9)%16],uA=nA[(vA+9)%16],fA+=uA&65535,hA+=uA>>>16,pA+=CA&65535,kA+=CA>>>16,SA=V[(vA+1)%16],KA=nA[(vA+1)%16],CA=(SA>>>1|KA<<31)^(SA>>>8|KA<<24)^SA>>>7,uA=(KA>>>1|SA<<31)^(KA>>>8|SA<<24)^(KA>>>7|SA<<25),fA+=uA&65535,hA+=uA>>>16,pA+=CA&65535,kA+=CA>>>16,SA=V[(vA+14)%16],KA=nA[(vA+14)%16],CA=(SA>>>19|KA<<13)^(KA>>>29|SA<<3)^SA>>>6,uA=(KA>>>19|SA<<13)^(SA>>>29|KA<<3)^(KA>>>6|SA<<26),fA+=uA&65535,hA+=uA>>>16,pA+=CA&65535,kA+=CA>>>16,hA+=fA>>>16,pA+=hA>>>16,kA+=pA>>>16,V[vA]=pA&65535|kA<<16,nA[vA]=fA&65535|hA<<16;CA=te,uA=he,fA=uA&65535,hA=uA>>>16,pA=CA&65535,kA=CA>>>16,CA=b[0],uA=P[0],fA+=uA&65535,hA+=uA>>>16,pA+=CA&65535,kA+=CA>>>16,hA+=fA>>>16,pA+=hA>>>16,kA+=pA>>>16,b[0]=te=pA&65535|kA<<16,P[0]=he=fA&65535|hA<<16,CA=Be,uA=be,fA=uA&65535,hA=uA>>>16,pA=CA&65535,kA=CA>>>16,CA=b[1],uA=P[1],fA+=uA&65535,hA+=uA>>>16,pA+=CA&65535,kA+=CA>>>16,hA+=fA>>>16,pA+=hA>>>16,kA+=pA>>>16,b[1]=Be=pA&65535|kA<<16,P[1]=be=fA&65535|hA<<16,CA=ue,uA=Ue,fA=uA&65535,hA=uA>>>16,pA=CA&65535,kA=CA>>>16,CA=b[2],uA=P[2],fA+=uA&65535,hA+=uA>>>16,pA+=CA&65535,kA+=CA>>>16,hA+=fA>>>16,pA+=hA>>>16,kA+=pA>>>16,b[2]=ue=pA&65535|kA<<16,P[2]=Ue=fA&65535|hA<<16,CA=ce,uA=lt,fA=uA&65535,hA=uA>>>16,pA=CA&65535,kA=CA>>>16,CA=b[3],uA=P[3],fA+=uA&65535,hA+=uA>>>16,pA+=CA&65535,kA+=CA>>>16,hA+=fA>>>16,pA+=hA>>>16,kA+=pA>>>16,b[3]=ce=pA&65535|kA<<16,P[3]=lt=fA&65535|hA<<16,CA=AA,uA=ze,fA=uA&65535,hA=uA>>>16,pA=CA&65535,kA=CA>>>16,CA=b[4],uA=P[4],fA+=uA&65535,hA+=uA>>>16,pA+=CA&65535,kA+=CA>>>16,hA+=fA>>>16,pA+=hA>>>16,kA+=pA>>>16,b[4]=AA=pA&65535|kA<<16,P[4]=ze=fA&65535|hA<<16,CA=we,uA=tt,fA=uA&65535,hA=uA>>>16,pA=CA&65535,kA=CA>>>16,CA=b[5],uA=P[5],fA+=uA&65535,hA+=uA>>>16,pA+=CA&65535,kA+=CA>>>16,hA+=fA>>>16,pA+=hA>>>16,kA+=pA>>>16,b[5]=we=pA&65535|kA<<16,P[5]=tt=fA&65535|hA<<16,CA=Se,uA=at,fA=uA&65535,hA=uA>>>16,pA=CA&65535,kA=CA>>>16,CA=b[6],uA=P[6],fA+=uA&65535,hA+=uA>>>16,pA+=CA&65535,kA+=CA>>>16,hA+=fA>>>16,pA+=hA>>>16,kA+=pA>>>16,b[6]=Se=pA&65535|kA<<16,P[6]=at=fA&65535|hA<<16,CA=Me,uA=rt,fA=uA&65535,hA=uA>>>16,pA=CA&65535,kA=CA>>>16,CA=b[7],uA=P[7],fA+=uA&65535,hA+=uA>>>16,pA+=CA&65535,kA+=CA>>>16,hA+=fA>>>16,pA+=hA>>>16,kA+=pA>>>16,b[7]=Me=pA&65535|kA<<16,P[7]=rt=fA&65535|hA<<16,ct+=128,w-=128}return w}function He(b,P,z){var w=new Int32Array(8),V=new Int32Array(8),nA=new Uint8Array(256),oA,IA=z;for(w[0]=1779033703,w[1]=3144134277,w[2]=1013904242,w[3]=2773480762,w[4]=1359893119,w[5]=2600822924,w[6]=528734635,w[7]=1541459225,V[0]=4089235720,V[1]=2227873595,V[2]=4271175723,V[3]=1595750129,V[4]=2917565137,V[5]=725511199,V[6]=4215389547,V[7]=327033209,fe(w,V,P,z),z%=128,oA=0;oA<z;oA++)nA[oA]=P[IA-z+oA];for(nA[z]=128,z=256-128*(z<112?1:0),nA[z-9]=0,d(nA,z-8,IA/536870912|0,IA<<3),fe(w,V,nA,z),oA=0;oA<8;oA++)d(b,8*oA,w[oA],V[oA]);return 0}function me(b,P){var z=t(),w=t(),V=t(),nA=t(),oA=t(),IA=t(),yA=t(),FA=t(),DA=t();v(z,b[1],b[0]),v(DA,P[1],P[0]),S(z,z,DA),h(w,b[0],b[1]),h(DA,P[0],P[1]),S(w,w,DA),S(V,b[3],P[3]),S(V,V,B),S(nA,b[2],P[2]),h(nA,nA,nA),v(oA,w,z),v(IA,nA,V),h(yA,nA,V),h(FA,w,z),S(b[0],oA,IA),S(b[1],FA,yA),S(b[2],yA,IA),S(b[3],oA,FA)}function Re(b,P,z){var w;for(w=0;w<4;w++)J(b[w],P[w],z)}function it(b,P){var z=t(),w=t(),V=t();eA(V,P[2]),S(z,P[0],V),S(w,P[1],V),q(b,w),b[31]^=R(z)<<7}function Ke(b,P,z){var w,V;for(N(b[0],i),N(b[1],a),N(b[2],a),N(b[3],i),V=255;V>=0;--V)w=z[V/8|0]>>(V&7)&1,Re(b,P,w),me(P,b),me(b,b),Re(b,P,w)}function NA(b,P){var z=[t(),t(),t(),t()];N(z[0],u),N(z[1],E),N(z[2],a),S(z[3],u,E),Ke(b,z,P)}function Ie(b,P,z){var w=new Uint8Array(64),V=[t(),t(),t(),t()],nA;for(z||s(P,32),He(w,P,32),w[0]&=248,w[31]&=127,w[31]|=64,NA(V,w),it(b,V),nA=0;nA<32;nA++)P[nA+32]=b[nA];return 0}var WA=new Float64Array([237,211,245,92,26,99,18,88,214,156,247,162,222,249,222,20,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16]);function Y(b,P){var z,w,V,nA;for(w=63;w>=32;--w){for(z=0,V=w-32,nA=w-12;V<nA;++V)P[V]+=z-16*P[w]*WA[V-(w-32)],z=Math.floor((P[V]+128)/256),P[V]-=z*256;P[V]+=z,P[w]=0}for(z=0,V=0;V<32;V++)P[V]+=z-(P[31]>>4)*WA[V],z=P[V]>>8,P[V]&=255;for(V=0;V<32;V++)P[V]-=z*WA[V];for(w=0;w<32;w++)P[w+1]+=P[w]>>8,b[w]=P[w]&255}function y(b){var P=new Float64Array(64),z;for(z=0;z<64;z++)P[z]=b[z];for(z=0;z<64;z++)b[z]=0;Y(b,P)}function M(b,P,z,w){var V=new Uint8Array(64),nA=new Uint8Array(64),oA=new Uint8Array(64),IA,yA,FA=new Float64Array(64),DA=[t(),t(),t(),t()];He(V,w,32),V[0]&=248,V[31]&=127,V[31]|=64;var Ee=z+64;for(IA=0;IA<z;IA++)b[64+IA]=P[IA];for(IA=0;IA<32;IA++)b[32+IA]=V[32+IA];for(He(oA,b.subarray(32),z+32),y(oA),NA(DA,oA),it(b,DA),IA=32;IA<64;IA++)b[IA]=w[IA];for(He(nA,b,z+64),y(nA),IA=0;IA<64;IA++)FA[IA]=0;for(IA=0;IA<32;IA++)FA[IA]=oA[IA];for(IA=0;IA<32;IA++)for(yA=0;yA<32;yA++)FA[IA+yA]+=nA[IA]*V[yA];return Y(b.subarray(32),FA),Ee}function _(b,P){var z=t(),w=t(),V=t(),nA=t(),oA=t(),IA=t(),yA=t();return N(b[2],a),C(b[1],P),Z(V,b[1]),S(nA,V,l),v(V,V,b[2]),h(nA,b[2],nA),Z(oA,nA),Z(IA,oA),S(yA,IA,oA),S(z,yA,V),S(z,z,nA),rA(z,z),S(z,z,V),S(z,z,nA),S(z,z,nA),S(b[0],z,nA),Z(w,b[0]),S(w,w,nA),j(w,V)&&S(b[0],b[0],c),Z(w,b[0]),S(w,w,nA),j(w,V)?-1:(R(b[0])===P[31]>>7&&v(b[0],i,b[0]),S(b[3],b[0],b[1]),0)}function tA(b,P,z,w){var V,nA=new Uint8Array(32),oA=new Uint8Array(64),IA=[t(),t(),t(),t()],yA=[t(),t(),t(),t()];if(z<64||_(yA,w))return-1;for(V=0;V<z;V++)b[V]=P[V];for(V=0;V<32;V++)b[V+32]=w[V];if(He(oA,b,z),y(oA),Ke(IA,yA,oA),NA(yA,P.subarray(32)),me(IA,yA),it(nA,IA),z-=64,D(P,0,nA,0)){for(V=0;V<z;V++)b[V]=0;return-1}for(V=0;V<z;V++)b[V]=P[V+64];return z}var aA=32,EA=24,_A=32,zA=16,XA=32,Ge=32,VA=32,xe=32,Wt=32,Le=EA,Pe=_A,Ro=zA,Qe=64,ve=32,zt=64,Oe=32,Ze=64;e.lowlevel={crypto_core_hsalsa20:K,crypto_stream_xor:O,crypto_stream:U,crypto_stream_salsa20_xor:$,crypto_stream_salsa20:X,crypto_onetimeauth:H,crypto_onetimeauth_verify:x,crypto_verify_16:p,crypto_verify_32:D,crypto_secretbox:Q,crypto_secretbox_open:I,crypto_scalarmult:sA,crypto_scalarmult_base:bA,crypto_box_beforenm:QA,crypto_box_afternm:qA,crypto_box:Ce,crypto_box_open:MA,crypto_box_keypair:LA,crypto_hash:He,crypto_sign:M,crypto_sign_keypair:Ie,crypto_sign_open:tA,crypto_secretbox_KEYBYTES:aA,crypto_secretbox_NONCEBYTES:EA,crypto_secretbox_ZEROBYTES:_A,crypto_secretbox_BOXZEROBYTES:zA,crypto_scalarmult_BYTES:XA,crypto_scalarmult_SCALARBYTES:Ge,crypto_box_PUBLICKEYBYTES:VA,crypto_box_SECRETKEYBYTES:xe,crypto_box_BEFORENMBYTES:Wt,crypto_box_NONCEBYTES:Le,crypto_box_ZEROBYTES:Pe,crypto_box_BOXZEROBYTES:Ro,crypto_sign_BYTES:Qe,crypto_sign_PUBLICKEYBYTES:ve,crypto_sign_SECRETKEYBYTES:zt,crypto_sign_SEEDBYTES:Oe,crypto_hash_BYTES:Ze,gf:t,D:l,L:WA,pack25519:q,unpack25519:C,M:S,A:h,S:Z,Z:v,pow2523:rA,add:me,set25519:N,modL:Y,scalarmult:Ke,scalarbase:NA};function $A(b,P){if(b.length!==aA)throw new Error("bad key size");if(P.length!==EA)throw new Error("bad nonce size")}function De(b,P){if(b.length!==VA)throw new Error("bad public key size");if(P.length!==xe)throw new Error("bad secret key size")}function de(){for(var b=0;b<arguments.length;b++)if(!(arguments[b]instanceof Uint8Array))throw new TypeError("unexpected type, use Uint8Array")}function Ko(b){for(var P=0;P<b.length;P++)b[P]=0}e.randomBytes=function(b){var P=new Uint8Array(b);return s(P,b),P},e.secretbox=function(b,P,z){de(b,P,z),$A(z,P);for(var w=new Uint8Array(_A+b.length),V=new Uint8Array(w.length),nA=0;nA<b.length;nA++)w[nA+_A]=b[nA];return Q(V,w,w.length,P,z),V.subarray(zA)},e.secretbox.open=function(b,P,z){de(b,P,z),$A(z,P);for(var w=new Uint8Array(zA+b.length),V=new Uint8Array(w.length),nA=0;nA<b.length;nA++)w[nA+zA]=b[nA];return w.length<32||I(V,w,w.length,P,z)!==0?null:V.subarray(_A)},e.secretbox.keyLength=aA,e.secretbox.nonceLength=EA,e.secretbox.overheadLength=zA,e.scalarMult=function(b,P){if(de(b,P),b.length!==Ge)throw new Error("bad n size");if(P.length!==XA)throw new Error("bad p size");var z=new Uint8Array(XA);return sA(z,b,P),z},e.scalarMult.base=function(b){if(de(b),b.length!==Ge)throw new Error("bad n size");var P=new Uint8Array(XA);return bA(P,b),P},e.scalarMult.scalarLength=Ge,e.scalarMult.groupElementLength=XA,e.box=function(b,P,z,w){var V=e.box.before(z,w);return e.secretbox(b,P,V)},e.box.before=function(b,P){de(b,P),De(b,P);var z=new Uint8Array(Wt);return QA(z,b,P),z},e.box.after=e.secretbox,e.box.open=function(b,P,z,w){var V=e.box.before(z,w);return e.secretbox.open(b,P,V)},e.box.open.after=e.secretbox.open,e.box.keyPair=function(){var b=new Uint8Array(VA),P=new Uint8Array(xe);return LA(b,P),{publicKey:b,secretKey:P}},e.box.keyPair.fromSecretKey=function(b){if(de(b),b.length!==xe)throw new Error("bad secret key size");var P=new Uint8Array(VA);return bA(P,b),{publicKey:P,secretKey:new Uint8Array(b)}},e.box.publicKeyLength=VA,e.box.secretKeyLength=xe,e.box.sharedKeyLength=Wt,e.box.nonceLength=Le,e.box.overheadLength=e.secretbox.overheadLength,e.sign=function(b,P){if(de(b,P),P.length!==zt)throw new Error("bad secret key size");var z=new Uint8Array(Qe+b.length);return M(z,b,b.length,P),z},e.sign.open=function(b,P){if(de(b,P),P.length!==ve)throw new Error("bad public key size");var z=new Uint8Array(b.length),w=tA(z,b,b.length,P);if(w<0)return null;for(var V=new Uint8Array(w),nA=0;nA<V.length;nA++)V[nA]=z[nA];return V},e.sign.detached=function(b,P){for(var z=e.sign(b,P),w=new Uint8Array(Qe),V=0;V<w.length;V++)w[V]=z[V];return w},e.sign.detached.verify=function(b,P,z){if(de(b,P,z),P.length!==Qe)throw new Error("bad signature size");if(z.length!==ve)throw new Error("bad public key size");var w=new Uint8Array(Qe+b.length),V=new Uint8Array(Qe+b.length),nA;for(nA=0;nA<Qe;nA++)w[nA]=P[nA];for(nA=0;nA<b.length;nA++)w[nA+Qe]=b[nA];return tA(V,w,w.length,z)>=0},e.sign.keyPair=function(){var b=new Uint8Array(ve),P=new Uint8Array(zt);return Ie(b,P),{publicKey:b,secretKey:P}},e.sign.keyPair.fromSecretKey=function(b){if(de(b),b.length!==zt)throw new Error("bad secret key size");for(var P=new Uint8Array(ve),z=0;z<P.length;z++)P[z]=b[32+z];return{publicKey:P,secretKey:new Uint8Array(b)}},e.sign.keyPair.fromSeed=function(b){if(de(b),b.length!==Oe)throw new Error("bad seed size");for(var P=new Uint8Array(ve),z=new Uint8Array(zt),w=0;w<32;w++)z[w]=b[w];return Ie(P,z,!0),{publicKey:P,secretKey:z}},e.sign.publicKeyLength=ve,e.sign.secretKeyLength=zt,e.sign.seedLength=Oe,e.sign.signatureLength=Qe,e.hash=function(b){de(b);var P=new Uint8Array(Ze);return He(P,b,b.length),P},e.hash.hashLength=Ze,e.verify=function(b,P){return de(b,P),b.length===0||P.length===0||b.length!==P.length?!1:f(b,0,P,0,b.length)===0},e.setPRNG=function(b){s=b},(function(){var b=typeof self<"u"?self.crypto||self.msCrypto:null;if(b&&b.getRandomValues){var P=65536;e.setPRNG(function(z,w){var V,nA=new Uint8Array(w);for(V=0;V<w;V+=P)b.getRandomValues(nA.subarray(V,V+Math.min(w-V,P)));for(V=0;V<w;V++)z[V]=nA[V];Ko(nA)})}else typeof U2<"u"&&(b=Pc,b&&b.randomBytes&&e.setPRNG(function(z,w){var V,nA=b.randomBytes(w);for(V=0;V<w;V++)z[V]=nA[V];Ko(nA)}))})()})(A.exports?A.exports:self.nacl=self.nacl||{})})(Ti)),Ti.exports}R2();const K2={models:[{id:"claude-3-5-haiku-20241022",name:"Claude Haiku 3.5",owned_by:"anthropic",context_length:2e5,max_output:8192,reasoning:!1,tool_call:!0,attachment:!0,temperature:!0,knowledge:"2024-07-31",release_date:"2024-10-22",last_updated:"2024-10-22",open_weights:!1,modalities:{input:["text","image","pdf"],output:["text"]},pricing:{input:.8039999999999999,output:4.02,cache_read:.0804,cache_write:1.005}},{id:"claude-3-5-haiku-latest",name:"Claude Haiku 3.5 (latest)",owned_by:"anthropic",context_length:2e5,max_output:8192,reasoning:!1,tool_call:!0,attachment:!0,temperature:!0,knowledge:"2024-07-31",release_date:"2024-10-22",last_updated:"2024-10-22",open_weights:!1,modalities:{input:["text","image","pdf"],output:["text"]},pricing:{input:.8039999999999999,output:4.02,cache_read:.0804,cache_write:1.005}},{id:"claude-3-5-sonnet-20240620",name:"Claude Sonnet 3.5",owned_by:"anthropic",context_length:2e5,max_output:8192,reasoning:!1,tool_call:!0,attachment:!0,temperature:!0,knowledge:"2024-04-30",release_date:"2024-06-20",last_updated:"2024-06-20",open_weights:!1,modalities:{input:["text","image","pdf"],output:["text"]},pricing:{input:3.0149999999999997,output:15.075,cache_read:.30149999999999993,cache_write:3.76875}},{id:"claude-3-5-sonnet-20241022",name:"Claude Sonnet 3.5 v2",owned_by:"anthropic",context_length:2e5,max_output:8192,reasoning:!1,tool_call:!0,attachment:!0,temperature:!0,knowledge:"2024-04-30",release_date:"2024-10-22",last_updated:"2024-10-22",open_weights:!1,modalities:{input:["text","image","pdf"],output:["text"]},pricing:{input:3.0149999999999997,output:15.075,cache_read:.30149999999999993,cache_write:3.76875}},{id:"claude-haiku-4-5",name:"Claude Haiku 4.5 (latest)",owned_by:"anthropic",context_length:2e5,max_output:64e3,reasoning:!0,tool_call:!0,attachment:!0,temperature:!0,knowledge:"2025-02-28",release_date:"2025-10-15",last_updated:"2025-10-15",open_weights:!1,modalities:{input:["text","image","pdf"],output:["text"]},pricing:{input:1.005,output:5.0249999999999995,cache_read:.10049999999999999,cache_write:1.2562499999999999}},{id:"claude-haiku-4-5-20251001",name:"Claude Haiku 4.5",owned_by:"anthropic",context_length:2e5,max_output:64e3,reasoning:!0,tool_call:!0,attachment:!0,temperature:!0,knowledge:"2025-02-28",release_date:"2025-10-15",last_updated:"2025-10-15",open_weights:!1,modalities:{input:["text","image","pdf"],output:["text"]},pricing:{input:1.005,output:5.0249999999999995,cache_read:.10049999999999999,cache_write:1.2562499999999999}},{id:"claude-opus-4-0",name:"Claude Opus 4 (latest)",owned_by:"anthropic",context_length:2e5,max_output:32e3,reasoning:!0,tool_call:!0,attachment:!0,temperature:!0,knowledge:"2025-03-31",release_date:"2025-05-22",last_updated:"2025-05-22",open_weights:!1,modalities:{input:["text","image","pdf"],output:["text"]},pricing:{input:15.075,output:75.37499999999999,cache_read:1.5074999999999998,cache_write:18.843749999999996}},{id:"claude-opus-4-1",name:"Claude Opus 4.1 (latest)",owned_by:"anthropic",context_length:2e5,max_output:32e3,reasoning:!0,tool_call:!0,attachment:!0,temperature:!0,knowledge:"2025-03-31",release_date:"2025-08-05",last_updated:"2025-08-05",open_weights:!1,modalities:{input:["text","image","pdf"],output:["text"]},pricing:{input:15.075,output:75.37499999999999,cache_read:1.5074999999999998,cache_write:18.843749999999996}},{id:"claude-opus-4-1-20250805",name:"Claude Opus 4.1",owned_by:"anthropic",context_length:2e5,max_output:32e3,reasoning:!0,tool_call:!0,attachment:!0,temperature:!0,knowledge:"2025-03-31",release_date:"2025-08-05",last_updated:"2025-08-05",open_weights:!1,modalities:{input:["text","image","pdf"],output:["text"]},pricing:{input:15.075,output:75.37499999999999,cache_read:1.5074999999999998,cache_write:18.843749999999996}},{id:"claude-opus-4-20250514",name:"Claude Opus 4",owned_by:"anthropic",context_length:2e5,max_output:32e3,reasoning:!0,tool_call:!0,attachment:!0,temperature:!0,knowledge:"2025-03-31",release_date:"2025-05-22",last_updated:"2025-05-22",open_weights:!1,modalities:{input:["text","image","pdf"],output:["text"]},pricing:{input:15.075,output:75.37499999999999,cache_read:1.5074999999999998,cache_write:18.843749999999996}},{id:"claude-opus-4-5",name:"Claude Opus 4.5 (latest)",owned_by:"anthropic",context_length:2e5,max_output:64e3,reasoning:!0,tool_call:!0,attachment:!0,temperature:!0,knowledge:"2025-03-31",release_date:"2025-11-24",last_updated:"2025-11-24",open_weights:!1,modalities:{input:["text","image","pdf"],output:["text"]},pricing:{input:5.0249999999999995,output:25.124999999999996,cache_read:.5025,cache_write:6.281249999999999}},{id:"claude-opus-4-5-20251101",name:"Claude Opus 4.5",owned_by:"anthropic",context_length:2e5,max_output:64e3,reasoning:!0,tool_call:!0,attachment:!0,temperature:!0,knowledge:"2025-03-31",release_date:"2025-11-01",last_updated:"2025-11-01",open_weights:!1,modalities:{input:["text","image","pdf"],output:["text"]},pricing:{input:5.0249999999999995,output:25.124999999999996,cache_read:.5025,cache_write:6.281249999999999}},{id:"claude-opus-4-6",name:"Claude Opus 4.6",owned_by:"anthropic",context_length:1e6,max_output:128e3,reasoning:!0,tool_call:!0,attachment:!0,temperature:!0,knowledge:"2025-05-31",release_date:"2026-02-05",last_updated:"2026-03-13",open_weights:!1,modalities:{input:["text","image","pdf"],output:["text"]},pricing:{input:5.0249999999999995,output:25.124999999999996,cache_read:.5025,cache_write:6.281249999999999}},{id:"claude-opus-4-7",name:"Claude Opus 4.7",owned_by:"anthropic",context_length:1e6,max_output:128e3,reasoning:!0,tool_call:!0,attachment:!0,temperature:!1,knowledge:"2026-01-31",release_date:"2026-04-16",last_updated:"2026-04-16",open_weights:!1,modalities:{input:["text","image","pdf"],output:["text"]},pricing:{input:5.0249999999999995,output:25.124999999999996,cache_read:.5025,cache_write:6.281249999999999}},{id:"claude-sonnet-4-0",name:"Claude Sonnet 4 (latest)",owned_by:"anthropic",context_length:2e5,max_output:64e3,reasoning:!0,tool_call:!0,attachment:!0,temperature:!0,knowledge:"2025-03-31",release_date:"2025-05-22",last_updated:"2025-05-22",open_weights:!1,modalities:{input:["text","image","pdf"],output:["text"]},pricing:{input:3.0149999999999997,output:15.075,cache_read:.30149999999999993,cache_write:3.76875}},{id:"claude-sonnet-4-20250514",name:"Claude Sonnet 4",owned_by:"anthropic",context_length:2e5,max_output:64e3,reasoning:!0,tool_call:!0,attachment:!0,temperature:!0,knowledge:"2025-03-31",release_date:"2025-05-22",last_updated:"2025-05-22",open_weights:!1,modalities:{input:["text","image","pdf"],output:["text"]},pricing:{input:3.0149999999999997,output:15.075,cache_read:.30149999999999993,cache_write:3.76875}},{id:"claude-sonnet-4-5",name:"Claude Sonnet 4.5 (latest)",owned_by:"anthropic",context_length:2e5,max_output:64e3,reasoning:!0,tool_call:!0,attachment:!0,temperature:!0,knowledge:"2025-07-31",release_date:"2025-09-29",last_updated:"2025-09-29",open_weights:!1,modalities:{input:["text","image","pdf"],output:["text"]},pricing:{input:3.0149999999999997,output:15.075,cache_read:.30149999999999993,cache_write:3.76875}},{id:"claude-sonnet-4-5-20250929",name:"Claude Sonnet 4.5",owned_by:"anthropic",context_length:2e5,max_output:64e3,reasoning:!0,tool_call:!0,attachment:!0,temperature:!0,knowledge:"2025-07-31",release_date:"2025-09-29",last_updated:"2025-09-29",open_weights:!1,modalities:{input:["text","image","pdf"],output:["text"]},pricing:{input:3.0149999999999997,output:15.075,cache_read:.30149999999999993,cache_write:3.76875}},{id:"claude-sonnet-4-6",name:"Claude Sonnet 4.6",owned_by:"anthropic",context_length:1e6,max_output:64e3,reasoning:!0,tool_call:!0,attachment:!0,temperature:!0,knowledge:"2025-08-31",release_date:"2026-02-17",last_updated:"2026-03-13",open_weights:!1,modalities:{input:["text","image","pdf"],output:["text"]},pricing:{input:3.0149999999999997,output:15.075,cache_read:.30149999999999993,cache_write:3.76875}},{id:"deepseek-chat",name:"DeepSeek Chat",owned_by:"deepseek",context_length:1e6,max_output:384e3,reasoning:!1,tool_call:!0,attachment:!0,temperature:!0,knowledge:"2025-09",release_date:"2025-12-01",last_updated:"2026-02-28",open_weights:!0,modalities:{input:["text"],output:["text"]},pricing:{input:.1407,output:.2814,cache_read:.02814}},{id:"deepseek-reasoner",name:"DeepSeek Reasoner",owned_by:"deepseek",context_length:1e6,max_output:384e3,reasoning:!0,tool_call:!0,attachment:!0,temperature:!0,knowledge:"2025-09",release_date:"2025-12-01",last_updated:"2026-02-28",open_weights:!0,modalities:{input:["text"],output:["text"]},pricing:{input:.1407,output:.2814,cache_read:.02814}},{id:"deepseek-v4-flash",name:"DeepSeek V4 Flash",owned_by:"deepseek",context_length:1e6,max_output:384e3,reasoning:!0,tool_call:!0,attachment:!1,temperature:!0,knowledge:"2025-05",release_date:"2026-04-24",last_updated:"2026-04-24",open_weights:!0,modalities:{input:["text"],output:["text"]},pricing:{input:.1407,output:.2814,cache_read:.02814}},{id:"deepseek-v4-pro",name:"DeepSeek V4 Pro",owned_by:"deepseek",context_length:1e6,max_output:384e3,reasoning:!0,tool_call:!0,attachment:!1,temperature:!0,knowledge:"2025-05",release_date:"2026-04-24",last_updated:"2026-04-24",open_weights:!0,modalities:{input:["text"],output:["text"]},pricing:{input:1.7486999999999997,output:3.4973999999999994,cache_read:.14572499999999997}},{id:"gemini-3-flash-preview",name:"Gemini 3 Flash Preview",owned_by:"google",context_length:1048576,max_output:65536,reasoning:!0,tool_call:!0,attachment:!0,temperature:!0,knowledge:"2025-01",release_date:"2025-12-17",last_updated:"2025-12-17",open_weights:!1,modalities:{input:["text","image","video","audio","pdf"],output:["text"]},pricing:{input:.5025,output:3.0149999999999997,cache_read:.050249999999999996}},{id:"gemini-3-pro-preview",name:"Gemini 3 Pro Preview",owned_by:"google",context_length:1e6,max_output:64e3,reasoning:!0,tool_call:!0,attachment:!0,temperature:!0,knowledge:"2025-01",release_date:"2025-11-18",last_updated:"2025-11-18",open_weights:!1,modalities:{input:["text","image","video","audio","pdf"],output:["text"]},pricing:{input:2.01,output:12.059999999999999,cache_read:.20099999999999998}},{id:"gemini-3.1-flash-image-preview",name:"Gemini 3.1 Flash Image (Preview)",owned_by:"google",context_length:131072,max_output:32768,reasoning:!0,tool_call:!1,attachment:!0,temperature:!0,knowledge:"2025-01",release_date:"2026-02-26",last_updated:"2026-02-26",open_weights:!1,modalities:{input:["text","image","pdf"],output:["text","image"]},pricing:{input:.25125,output:60.3}},{id:"gemini-3.1-flash-lite-preview",name:"Gemini 3.1 Flash Lite Preview",owned_by:"google",context_length:1048576,max_output:65536,reasoning:!0,tool_call:!0,attachment:!0,temperature:!0,knowledge:"2025-01",release_date:"2026-03-03",last_updated:"2026-03-03",open_weights:!1,modalities:{input:["text","image","video","audio","pdf"],output:["text"]},pricing:{input:.25125,output:1.5074999999999998,cache_read:.025124999999999998,cache_write:1.005}},{id:"gemini-3.1-pro-preview",name:"Gemini 3.1 Pro Preview",owned_by:"google",context_length:1048576,max_output:65536,reasoning:!0,tool_call:!0,attachment:!0,temperature:!0,knowledge:"2025-01",release_date:"2026-02-19",last_updated:"2026-02-19",open_weights:!1,modalities:{input:["text","image","video","audio","pdf"],output:["text"]},pricing:{input:2.01,output:12.059999999999999,cache_read:.20099999999999998}},{id:"gemini-3.1-pro-preview-customtools",name:"Gemini 3.1 Pro Preview Custom Tools",owned_by:"google",context_length:1048576,max_output:65536,reasoning:!0,tool_call:!0,attachment:!0,temperature:!0,knowledge:"2025-01",release_date:"2026-02-19",last_updated:"2026-02-19",open_weights:!1,modalities:{input:["text","image","video","audio","pdf"],output:["text"]},pricing:{input:2.01,output:12.059999999999999,cache_read:.20099999999999998}},{id:"MiniMax-M2.1",name:"MiniMax-M2.1",owned_by:"minimax",context_length:204800,max_output:131072,reasoning:!0,tool_call:!0,attachment:!1,temperature:!0,release_date:"2025-12-23",last_updated:"2025-12-23",open_weights:!0,modalities:{input:["text"],output:["text"]},pricing:{input:.30149999999999993,output:1.2059999999999997}},{id:"MiniMax-M2.5",name:"MiniMax-M2.5",owned_by:"minimax",context_length:204800,max_output:131072,reasoning:!0,tool_call:!0,attachment:!1,temperature:!0,release_date:"2026-02-12",last_updated:"2026-02-12",open_weights:!0,modalities:{input:["text"],output:["text"]},pricing:{input:.30149999999999993,output:1.2059999999999997,cache_read:.030149999999999996,cache_write:.37687499999999996}},{id:"MiniMax-M2.7",name:"MiniMax-M2.7",owned_by:"minimax",context_length:204800,max_output:131072,reasoning:!0,tool_call:!0,attachment:!1,temperature:!0,release_date:"2026-03-18",last_updated:"2026-03-18",open_weights:!0,modalities:{input:["text"],output:["text"]},pricing:{input:.30149999999999993,output:1.2059999999999997,cache_read:.06029999999999999,cache_write:.37687499999999996}},{id:"kimi-k2-0711-preview",name:"Kimi K2 0711",owned_by:"moonshot",context_length:131072,max_output:16384,reasoning:!1,tool_call:!0,attachment:!1,temperature:!0,knowledge:"2024-10",release_date:"2025-07-14",last_updated:"2025-07-14",open_weights:!0,modalities:{input:["text"],output:["text"]},pricing:{input:.6029999999999999,output:2.5124999999999997,cache_read:.15074999999999997}},{id:"kimi-k2-0905-preview",name:"Kimi K2 0905",owned_by:"moonshot",context_length:262144,max_output:262144,reasoning:!1,tool_call:!0,attachment:!1,temperature:!0,knowledge:"2024-10",release_date:"2025-09-05",last_updated:"2025-09-05",open_weights:!0,modalities:{input:["text"],output:["text"]},pricing:{input:.6029999999999999,output:2.5124999999999997,cache_read:.15074999999999997}},{id:"kimi-k2-thinking",name:"Kimi K2 Thinking",owned_by:"moonshot",context_length:262144,max_output:262144,reasoning:!0,tool_call:!0,attachment:!1,temperature:!0,knowledge:"2024-08",release_date:"2025-11-06",last_updated:"2025-11-06",open_weights:!0,modalities:{input:["text"],output:["text"]},pricing:{input:.6029999999999999,output:2.5124999999999997,cache_read:.15074999999999997}},{id:"kimi-k2-thinking-turbo",name:"Kimi K2 Thinking Turbo",owned_by:"moonshot",context_length:262144,max_output:262144,reasoning:!0,tool_call:!0,attachment:!1,temperature:!0,knowledge:"2024-08",release_date:"2025-11-06",last_updated:"2025-11-06",open_weights:!0,modalities:{input:["text"],output:["text"]},pricing:{input:1.1557499999999998,output:8.04,cache_read:.15074999999999997}},{id:"kimi-k2-turbo-preview",name:"Kimi K2 Turbo",owned_by:"moonshot",context_length:262144,max_output:262144,reasoning:!1,tool_call:!0,attachment:!1,temperature:!0,knowledge:"2024-10",release_date:"2025-09-05",last_updated:"2025-09-05",open_weights:!0,modalities:{input:["text"],output:["text"]},pricing:{input:2.4119999999999995,output:10.049999999999999,cache_read:.6029999999999999}},{id:"kimi-k2.5",name:"Kimi K2.5",owned_by:"moonshot",context_length:262144,max_output:262144,reasoning:!0,tool_call:!0,attachment:!1,temperature:!1,knowledge:"2025-01",release_date:"2026-01",last_updated:"2026-01",open_weights:!0,modalities:{input:["text","image","video"],output:["text"]},pricing:{input:.6029999999999999,output:3.0149999999999997,cache_read:.10049999999999999,cache_write:.6029999999999999}},{id:"kimi-k2.6",name:"Kimi K2.6",owned_by:"moonshot",context_length:262144,max_output:262144,reasoning:!0,tool_call:!0,attachment:!0,temperature:!0,knowledge:"2025-01",release_date:"2026-04-21",last_updated:"2026-04-21",open_weights:!0,modalities:{input:["text","image","video"],output:["text"]},pricing:{input:.9547499999999999,output:4.02,cache_read:.1608}},{id:"gpt-5",name:"GPT-5",owned_by:"openai",context_length:4e5,max_output:128e3,reasoning:!0,tool_call:!0,attachment:!0,temperature:!1,knowledge:"2024-09-30",release_date:"2025-08-07",last_updated:"2025-08-07",open_weights:!1,modalities:{input:["text","image"],output:["text"]},pricing:{input:1.2562499999999999,output:10.049999999999999,cache_read:.125625}},{id:"gpt-5-chat-latest",name:"GPT-5 Chat (latest)",owned_by:"openai",context_length:4e5,max_output:128e3,reasoning:!0,tool_call:!1,attachment:!0,temperature:!0,knowledge:"2024-09-30",release_date:"2025-08-07",last_updated:"2025-08-07",open_weights:!1,modalities:{input:["text","image"],output:["text"]},pricing:{input:1.2562499999999999,output:10.049999999999999}},{id:"gpt-5-codex",name:"GPT-5-Codex",owned_by:"openai",context_length:4e5,max_output:128e3,reasoning:!0,tool_call:!0,attachment:!1,temperature:!1,knowledge:"2024-09-30",release_date:"2025-09-15",last_updated:"2025-09-15",open_weights:!1,modalities:{input:["text","image"],output:["text"]},pricing:{input:1.2562499999999999,output:10.049999999999999,cache_read:.125625}},{id:"gpt-5-mini",name:"GPT-5 Mini",owned_by:"openai",context_length:4e5,max_output:128e3,reasoning:!0,tool_call:!0,attachment:!0,temperature:!1,knowledge:"2024-05-30",release_date:"2025-08-07",last_updated:"2025-08-07",open_weights:!1,modalities:{input:["text","image"],output:["text"]},pricing:{input:.25125,output:2.01,cache_read:.025124999999999998}},{id:"gpt-5-nano",name:"GPT-5 Nano",owned_by:"openai",context_length:4e5,max_output:128e3,reasoning:!0,tool_call:!0,attachment:!0,temperature:!1,knowledge:"2024-05-30",release_date:"2025-08-07",last_updated:"2025-08-07",open_weights:!1,modalities:{input:["text","image"],output:["text"]},pricing:{input:.050249999999999996,output:.40199999999999997,cache_read:.005025}},{id:"gpt-5-pro",name:"GPT-5 Pro",owned_by:"openai",context_length:4e5,max_output:272e3,reasoning:!0,tool_call:!0,attachment:!0,temperature:!1,knowledge:"2024-09-30",release_date:"2025-10-06",last_updated:"2025-10-06",open_weights:!1,modalities:{input:["text","image"],output:["text"]},pricing:{input:15.075,output:120.6}},{id:"gpt-5.1",name:"GPT-5.1",owned_by:"openai",context_length:4e5,max_output:128e3,reasoning:!0,tool_call:!0,attachment:!0,temperature:!1,knowledge:"2024-09-30",release_date:"2025-11-13",last_updated:"2025-11-13",open_weights:!1,modalities:{input:["text","image"],output:["text"]},pricing:{input:1.2562499999999999,output:10.049999999999999,cache_read:.13065}},{id:"gpt-5.1-chat-latest",name:"GPT-5.1 Chat",owned_by:"openai",context_length:128e3,max_output:16384,reasoning:!0,tool_call:!0,attachment:!0,temperature:!1,knowledge:"2024-09-30",release_date:"2025-11-13",last_updated:"2025-11-13",open_weights:!1,modalities:{input:["text","image"],output:["text"]},pricing:{input:1.2562499999999999,output:10.049999999999999,cache_read:.125625}},{id:"gpt-5.1-codex",name:"GPT-5.1 Codex",owned_by:"openai",context_length:4e5,max_output:128e3,reasoning:!0,tool_call:!0,attachment:!0,temperature:!1,knowledge:"2024-09-30",release_date:"2025-11-13",last_updated:"2025-11-13",open_weights:!1,modalities:{input:["text","image"],output:["text"]},pricing:{input:1.2562499999999999,output:10.049999999999999,cache_read:.125625}},{id:"gpt-5.1-codex-max",name:"GPT-5.1 Codex Max",owned_by:"openai",context_length:4e5,max_output:128e3,reasoning:!0,tool_call:!0,attachment:!0,temperature:!1,knowledge:"2024-09-30",release_date:"2025-11-13",last_updated:"2025-11-13",open_weights:!1,modalities:{input:["text","image"],output:["text"]},pricing:{input:1.2562499999999999,output:10.049999999999999,cache_read:.125625}},{id:"gpt-5.1-codex-mini",name:"GPT-5.1 Codex mini",owned_by:"openai",context_length:4e5,max_output:128e3,reasoning:!0,tool_call:!0,attachment:!0,temperature:!1,knowledge:"2024-09-30",release_date:"2025-11-13",last_updated:"2025-11-13",open_weights:!1,modalities:{input:["text","image"],output:["text"]},pricing:{input:.25125,output:2.01,cache_read:.025124999999999998}},{id:"gpt-5.2",name:"GPT-5.2",owned_by:"openai",context_length:4e5,max_output:128e3,reasoning:!0,tool_call:!0,attachment:!0,temperature:!1,knowledge:"2025-08-31",release_date:"2025-12-11",last_updated:"2025-12-11",open_weights:!1,modalities:{input:["text","image"],output:["text"]},pricing:{input:1.7587499999999998,output:14.069999999999999,cache_read:.17587499999999998}},{id:"gpt-5.2-chat-latest",name:"GPT-5.2 Chat",owned_by:"openai",context_length:128e3,max_output:16384,reasoning:!0,tool_call:!0,attachment:!0,temperature:!1,knowledge:"2025-08-31",release_date:"2025-12-11",last_updated:"2025-12-11",open_weights:!1,modalities:{input:["text","image"],output:["text"]},pricing:{input:1.7587499999999998,output:14.069999999999999,cache_read:.17587499999999998}},{id:"gpt-5.2-codex",name:"GPT-5.2 Codex",owned_by:"openai",context_length:4e5,max_output:128e3,reasoning:!0,tool_call:!0,attachment:!0,temperature:!1,knowledge:"2025-08-31",release_date:"2025-12-11",last_updated:"2025-12-11",open_weights:!1,modalities:{input:["text","image","pdf"],output:["text"]},pricing:{input:1.7587499999999998,output:14.069999999999999,cache_read:.17587499999999998}},{id:"gpt-5.2-pro",name:"GPT-5.2 Pro",owned_by:"openai",context_length:4e5,max_output:128e3,reasoning:!0,tool_call:!0,attachment:!0,temperature:!1,knowledge:"2025-08-31",release_date:"2025-12-11",last_updated:"2025-12-11",open_weights:!1,modalities:{input:["text","image"],output:["text"]},pricing:{input:21.104999999999997,output:168.83999999999997}},{id:"gpt-5.3-chat-latest",name:"GPT-5.3 Chat (latest)",owned_by:"openai",context_length:128e3,max_output:16384,reasoning:!1,tool_call:!0,attachment:!0,temperature:!0,knowledge:"2025-08-31",release_date:"2026-03-03",last_updated:"2026-03-03",open_weights:!1,modalities:{input:["text","image"],output:["text"]},pricing:{input:1.7587499999999998,output:14.069999999999999,cache_read:.17587499999999998}},{id:"gpt-5.3-codex",name:"GPT-5.3 Codex",owned_by:"openai",context_length:4e5,max_output:128e3,reasoning:!0,tool_call:!0,attachment:!0,temperature:!1,knowledge:"2025-08-31",release_date:"2026-02-05",last_updated:"2026-02-05",open_weights:!1,modalities:{input:["text","image","pdf"],output:["text"]},pricing:{input:1.7587499999999998,output:14.069999999999999,cache_read:.17587499999999998}},{id:"gpt-5.3-codex-spark",name:"GPT-5.3 Codex Spark",owned_by:"openai",context_length:128e3,max_output:32e3,reasoning:!0,tool_call:!0,attachment:!0,temperature:!1,knowledge:"2025-08-31",release_date:"2026-02-05",last_updated:"2026-02-05",open_weights:!1,modalities:{input:["text","image","pdf"],output:["text"]},pricing:{input:1.7587499999999998,output:14.069999999999999,cache_read:.17587499999999998}},{id:"gpt-5.4",name:"GPT-5.4",owned_by:"openai",context_length:105e4,max_output:128e3,reasoning:!0,tool_call:!0,attachment:!0,temperature:!1,knowledge:"2025-08-31",release_date:"2026-03-05",last_updated:"2026-03-05",open_weights:!1,modalities:{input:["text","image","pdf"],output:["text"]},pricing:{input:2.5124999999999997,output:15.075,cache_read:.25125}},{id:"gpt-5.4-mini",name:"GPT-5.4 mini",owned_by:"openai",context_length:4e5,max_output:128e3,reasoning:!0,tool_call:!0,attachment:!0,temperature:!1,knowledge:"2025-08-31",release_date:"2026-03-17",last_updated:"2026-03-17",open_weights:!1,modalities:{input:["text","image"],output:["text"]},pricing:{input:.7537499999999999,output:4.522499999999999,cache_read:.07537499999999998}},{id:"gpt-5.4-nano",name:"GPT-5.4 nano",owned_by:"openai",context_length:4e5,max_output:128e3,reasoning:!0,tool_call:!0,attachment:!0,temperature:!1,knowledge:"2025-08-31",release_date:"2026-03-17",last_updated:"2026-03-17",open_weights:!1,modalities:{input:["text","image"],output:["text"]},pricing:{input:.20099999999999998,output:1.2562499999999999,cache_read:.0201}},{id:"gpt-5.4-pro",name:"GPT-5.4 Pro",owned_by:"openai",context_length:105e4,max_output:128e3,reasoning:!0,tool_call:!0,attachment:!0,temperature:!1,knowledge:"2025-08-31",release_date:"2026-03-05",last_updated:"2026-03-05",open_weights:!1,modalities:{input:["text","image"],output:["text"]},pricing:{input:30.15,output:180.89999999999998}},{id:"gpt-5.5",name:"GPT-5.5",owned_by:"openai",context_length:105e4,max_output:128e3,reasoning:!0,tool_call:!0,attachment:!0,temperature:!1,knowledge:"2025-12-01",release_date:"2026-04-23",last_updated:"2026-04-23",open_weights:!1,modalities:{input:["text","image","pdf"],output:["text"]},pricing:{input:5.0249999999999995,output:30.15,cache_read:.5025}},{id:"gpt-5.5-pro",name:"GPT-5.5 Pro",owned_by:"openai",context_length:105e4,max_output:128e3,reasoning:!0,tool_call:!0,attachment:!0,temperature:!1,knowledge:"2025-12-01",release_date:"2026-04-23",last_updated:"2026-04-23",open_weights:!1,modalities:{input:["text","image","pdf"],output:["text"]},pricing:{input:30.15,output:180.89999999999998}},{id:"grok-4.20-0309-non-reasoning",name:"Grok 4.20 (Non-Reasoning)",owned_by:"xai",context_length:2e6,max_output:3e4,reasoning:!1,tool_call:!0,attachment:!0,temperature:!0,release_date:"2026-03-09",last_updated:"2026-03-09",open_weights:!1,modalities:{input:["text","image"],output:["text"]},pricing:{input:2.01,output:6.029999999999999,cache_read:.20099999999999998}},{id:"grok-4.20-0309-reasoning",name:"Grok 4.20 (Reasoning)",owned_by:"xai",context_length:2e6,max_output:3e4,reasoning:!0,tool_call:!0,attachment:!0,temperature:!0,release_date:"2026-03-09",last_updated:"2026-03-09",open_weights:!1,modalities:{input:["text","image"],output:["text"]},pricing:{input:2.01,output:6.029999999999999,cache_read:.20099999999999998}},{id:"grok-4.20-multi-agent-0309",name:"Grok 4.20 Multi-Agent",owned_by:"xai",context_length:2e6,max_output:3e4,reasoning:!0,tool_call:!1,attachment:!0,temperature:!0,release_date:"2026-03-09",last_updated:"2026-03-09",open_weights:!1,modalities:{input:["text","image"],output:["text"]},pricing:{input:2.01,output:6.029999999999999,cache_read:.20099999999999998}},{id:"grok-4.3",name:"Grok 4.3",owned_by:"xai",context_length:1e6,max_output:3e4,reasoning:!0,tool_call:!0,attachment:!0,temperature:!0,release_date:"2026-05-01",last_updated:"2026-05-01",open_weights:!1,modalities:{input:["text","image"],output:["text"]},pricing:{input:1.2562499999999999,output:2.5124999999999997,cache_read:.20099999999999998}},{id:"glm-4.7",name:"GLM-4.7",owned_by:"zai",context_length:204800,max_output:131072,reasoning:!0,tool_call:!0,attachment:!1,temperature:!0,knowledge:"2025-04",release_date:"2025-12-22",last_updated:"2025-12-22",open_weights:!0,modalities:{input:["text"],output:["text"]},pricing:{input:.6029999999999999,output:2.211,cache_read:.11055}},{id:"glm-4.7-flash",name:"GLM-4.7-Flash",owned_by:"zai",context_length:2e5,max_output:131072,reasoning:!0,tool_call:!0,attachment:!1,temperature:!0,knowledge:"2025-04",release_date:"2026-01-19",last_updated:"2026-01-19",open_weights:!0,modalities:{input:["text"],output:["text"]},pricing:{input:0,output:0}},{id:"glm-4.7-flashx",name:"GLM-4.7-FlashX",owned_by:"zai",context_length:2e5,max_output:131072,reasoning:!0,tool_call:!0,attachment:!1,temperature:!0,knowledge:"2025-04",release_date:"2026-01-19",last_updated:"2026-01-19",open_weights:!0,modalities:{input:["text"],output:["text"]},pricing:{input:.07035,output:.40199999999999997,cache_read:.01005}},{id:"glm-5",name:"GLM-5",owned_by:"zai",context_length:204800,max_output:131072,reasoning:!0,tool_call:!0,attachment:!1,temperature:!0,release_date:"2026-02-11",last_updated:"2026-02-11",open_weights:!0,modalities:{input:["text"],output:["text"]},pricing:{input:1.005,output:3.2159999999999997,cache_read:.20099999999999998}},{id:"glm-5-turbo",name:"GLM-5-Turbo",owned_by:"zai",context_length:2e5,max_output:131072,reasoning:!0,tool_call:!0,attachment:!1,temperature:!0,release_date:"2026-03-16",last_updated:"2026-03-16",open_weights:!1,modalities:{input:["text"],output:["text"]},pricing:{input:1.2059999999999997,output:4.02,cache_read:.24119999999999997}},{id:"glm-5.1",name:"GLM-5.1",owned_by:"zai",context_length:2e5,max_output:131072,reasoning:!0,tool_call:!0,attachment:!1,temperature:!0,release_date:"2026-03-27",last_updated:"2026-03-27",open_weights:!1,modalities:{input:["text"],output:["text"]},pricing:{input:1.4069999999999998,output:4.422,cache_read:.2613}},{id:"glm-5v-turbo",name:"GLM-5V-Turbo",owned_by:"zai",context_length:2e5,max_output:131072,reasoning:!0,tool_call:!0,attachment:!0,temperature:!0,release_date:"2026-04-01",last_updated:"2026-04-01",open_weights:!1,modalities:{input:["text","image","video","pdf"],output:["text"]},pricing:{input:1.2059999999999997,output:4.02,cache_read:.24119999999999997}}]},ka="ollama-cloud",wE="ottorouter",L2={openai:"@ai-sdk/openai",anthropic:"@ai-sdk/anthropic",google:"@ai-sdk/google",openrouter:"@openrouter/ai-sdk-provider",xai:"@ai-sdk/xai",moonshot:"@ai-sdk/openai-compatible",zai:"@ai-sdk/openai-compatible",minimax:"@ai-sdk/anthropic"};function J2(A){const e=A.owned_by;return{id:A.id,ownedBy:e,label:A.name,modalities:A.modalities,toolCall:A.tool_call,reasoningText:A.reasoning,attachment:A.attachment,temperature:A.temperature,knowledge:A.knowledge,releaseDate:A.release_date,lastUpdated:A.last_updated,openWeights:A.open_weights,cost:{input:A.pricing.input,output:A.pricing.output,cacheRead:A.pricing.cache_read,cacheWrite:A.pricing.cache_write},limit:{context:A.context_length,output:A.max_output},provider:{npm:L2[e]}}}function j2(){const A=K2.models.map(J2);if(!A.length)return null;A.sort((s,n)=>{const r=s.ownedBy??"",i=n.ownedBy??"";return r===i?s.id.localeCompare(n.id):r==="openai"?-1:i==="openai"?1:r.localeCompare(i)});const e="gpt-5-codex",t=A.findIndex(s=>s.id===e);if(t>0){const[s]=A.splice(t,1);A.unshift(s)}return{id:wE,label:"OttoRouter",env:["OTTOROUTER_PRIVATE_KEY"],api:"https://api.ottorouter.org/v1",doc:"https://ottorouter.org/docs",models:A}}function T2(){return{id:ka,label:"Ollama Cloud",env:["OLLAMA_API_KEY"],npm:"ai-sdk-ollama",api:"https://ollama.com",doc:"https://docs.ollama.com/cloud",models:[]}}function O2(A){const e=A[ka]??T2(),t=j2(),s={...A};return s[ka]=e,t&&(s[wE]=t),s}const ri=O2(fw),q2={openai:[{match:A=>A.includes("gpt-4o-mini"),inputPerMillion:.15,outputPerMillion:.6},{match:A=>A.includes("gpt-4o"),inputPerMillion:5,outputPerMillion:15},{match:A=>A.includes("gpt-4.1-mini"),inputPerMillion:1,outputPerMillion:4},{match:A=>A.includes("gpt-4.1"),inputPerMillion:5,outputPerMillion:15}],anthropic:[{match:A=>A.includes("claude-3-haiku"),inputPerMillion:.25,outputPerMillion:1.25},{match:A=>A.includes("claude-3-sonnet"),inputPerMillion:3,outputPerMillion:15},{match:A=>A.includes("claude-3-opus"),inputPerMillion:15,outputPerMillion:75}],google:[{match:A=>A.includes("gemini-1.5-flash"),inputPerMillion:.35,outputPerMillion:1.05},{match:A=>A.includes("gemini-1.5-pro"),inputPerMillion:3.5,outputPerMillion:10.5}],"ollama-cloud":[],openrouter:[],opencode:[],ottorouter:[],xai:[],zai:[],"zai-coding":[],moonshot:[],minimax:[],copilot:[]};function Y2(A,e){const t=q2[A];if(t)return t.find(s=>{try{return s.match(e)}catch{return!1}})}function H2(A,e){const t=ri[A];if(!t)return;const s=e.toLowerCase();return t.models.find(n=>n.id?.toLowerCase()===s)}function xE(A,e,t){const s=typeof t.inputTokens=="number"?t.inputTokens:0,n=typeof t.outputTokens=="number"?t.outputTokens:0,r=typeof t.cachedInputTokens=="number"?t.cachedInputTokens:0,i=typeof t.cacheCreationInputTokens=="number"?t.cacheCreationInputTokens:0;if(!s&&!n&&!r&&!i)return;const a=H2(A,e);if(a?.cost?.input!=null||a?.cost?.output!=null){const c=typeof a.cost?.input=="number"?a.cost.input:0,d=typeof a.cost?.output=="number"?a.cost.output:0,f=typeof a.cost?.cacheRead=="number"?a.cost.cacheRead:0,p=typeof a.cost?.cacheWrite=="number"?a.cost.cacheWrite:0,F=Math.max(0,s-r-i)*c/1e6,k=n*d/1e6,L=r*f/1e6,K=i*p/1e6,W=F+k+L+K;return Number.isFinite(W)?Number(W.toFixed(6)):void 0}const g=Y2(A,e.toLowerCase());if(!g)return;const B=Math.max(0,s-r-i)*g.inputPerMillion/1e6,u=n*g.outputPerMillion/1e6,E=B+u;return Number.isFinite(E)?Number(E.toFixed(6)):void 0}var Ma={};function Ug(...A){return A.filter(Boolean).map(e=>e.replace(/\\/g,"/")).join("/").replace(/\/+\/+/g,"/")}function P2(){return(Ma.HOME||Ma.USERPROFILE||"").replace(/\\/g,"/")}function W2(){const A=Ma.XDG_CONFIG_HOME;return A?.trim()?A.replace(/\\/g,"/"):Ug(P2(),".config")}function z2(){return Ug(W2(),"otto")}const V2="catalog-models.json";function _2(){return Ug(z2(),V2)}function Dr(A){return typeof A=="object"&&A!==null&&!Array.isArray(A)}function Z2(A){try{return globalThis.process?.getBuiltinModule?.("node:fs")?.readFileSync(A,"utf8")??null}catch{return null}}function X2(A,e){if(!Dr(e))return null;const t=Array.isArray(e.models)?e.models.filter(s=>Dr(s)&&typeof s.id=="string"):[];return{id:typeof e.id=="string"?e.id:A,label:typeof e.label=="string"?e.label:void 0,models:t}}function $2(A){if(!Dr(A))return{};const e=Dr(A.providers)?A.providers:A,t={};for(const[s,n]of Object.entries(e)){const r=X2(s,n);r&&(t[s]=r)}return t}function A1(A){return{version:1,updatedAt:Dr(A)&&typeof A.updatedAt=="string"?A.updatedAt:new Date(0).toISOString(),providers:$2(A)}}function e1(){try{const A=Z2(_2());if(!A)return null;const e=JSON.parse(A);return A1(e)}catch{return null}}function t1(A){return e1()?.providers[A]}function DE(A){return typeof A=="string"&&o1.includes(A)}const o1=Object.keys(ri);function yE(A,e){if(DE(A)&&ri[A])return s1(A).find(s=>s.id===e)}function s1(A){return t1(A)?.models??(DE(A)?ri[A]?.models:void 0)??[]}function Rg(A){const[e,t]=m.useState(0);return m.useEffect(()=>{const s=A.current;if(!s)return;const n=()=>t(s.clientWidth);n();const r=new ResizeObserver(()=>n());return r.observe(s),()=>r.disconnect()},[A]),e}function NE({sessionId:A,title:e,className:t=""}){const[s,n]=m.useState(!1),[r,i]=m.useState(e||""),a=m.useRef(null),{mutate:g}=Bg(A);m.useEffect(()=>{s&&a.current&&(a.current.focus(),a.current.select())},[s]),m.useEffect(()=>{i(e||"")},[e]);const l=m.useCallback(()=>{const u=r.trim();u&&u!==(e||"")&&g({title:u}),n(!1)},[r,e,g]),B=m.useCallback(()=>{i(e||""),n(!1)},[e]);return s?o.jsx("input",{ref:a,type:"text",value:r,onChange:u=>i(u.target.value),onBlur:l,onKeyDown:u=>{u.key==="Enter"&&l(),u.key==="Escape"&&B()},className:`w-full bg-muted/30 text-foreground rounded px-2 py-1 outline-none ring-1 ring-primary/50 focus:ring-primary ${t}`}):o.jsxs("button",{type:"button",onClick:()=>n(!0),className:`group flex items-center gap-2 hover:opacity-80 transition-opacity truncate text-left ${t}`,title:"Click to edit title",children:[o.jsx("span",{className:"truncate",children:e||"Untitled Session"}),o.jsx(In,{className:"h-3.5 w-3.5 opacity-0 group-hover:opacity-50 flex-shrink-0 transition-opacity"})]})}function r1({session:A,onNavigateToSession:e}){const{data:t}=uc(A.sessionType==="branch"?A.id:void 0),{preferences:s}=$s(),{data:n}=lg(A.id),r=m.useRef(null),i=Rg(r),a=i>0&&i<640,g=m.useMemo(()=>{const L=A.totalInputTokens||0,K=A.totalOutputTokens||0,W=A.totalCachedTokens||0,$=A.totalCacheCreationTokens||0;return xE(A.provider,A.model,{inputTokens:L,outputTokens:K,cachedInputTokens:W,cacheCreationInputTokens:$})??0},[A.provider,A.model,A.totalInputTokens,A.totalOutputTokens,A.totalCachedTokens,A.totalCacheCreationTokens]),l=L=>{if(!L)return"0s";const K=Math.floor(L/1e3),W=Math.floor(K/60),$=Math.floor(W/60);return $>0?`${$}h ${W%60}m`:W>0?`${W}m ${K%60}s`:`${K}s`},B=L=>L.toLocaleString("en-US"),u=L=>L>=1e6?`${(L/1e6).toFixed(1)}M`:L>=1e3?`${(L/1e3).toFixed(1)}K`:L.toString(),E=A.currentContextTokens||0,c=A.totalOutputTokens||0,d=A.sessionType==="branch",f=t?.parent,p=m.useMemo(()=>yE(A.provider,A.model)?.limit?.context,[A.provider,A.model]),D=p?E/p*100:0,F=()=>D>=90?"text-red-600 dark:text-red-400":D>=70?"text-amber-600 dark:text-amber-400":"text-foreground",k=s.fullWidthContent?"w-full px-6 py-6":"max-w-3xl mx-auto px-6 py-6";return o.jsx("div",{ref:r,className:"border-b border-border bg-background/95 backdrop-blur-sm",children:o.jsxs("div",{className:k,children:[d&&o.jsxs("div",{className:"flex items-center gap-2 mb-3 text-sm",children:[o.jsx(go,{className:"h-4 w-4 text-violet-500"}),o.jsx("span",{className:"text-violet-600 dark:text-violet-400 font-medium",children:"Branch"}),f&&o.jsxs(o.Fragment,{children:[o.jsx("span",{className:"text-muted-foreground",children:"from"}),o.jsxs("button",{type:"button",onClick:()=>e?.(f.id),className:"text-primary hover:underline flex items-center gap-1",children:[f.title||`Session ${f.id.slice(0,8)}`,o.jsx(ZQ,{className:"h-3 w-3"})]})]}),!f&&A.parentSessionId&&o.jsx("span",{className:"text-muted-foreground italic text-xs",children:"(parent deleted)"})]}),o.jsxs("div",{className:"flex items-center gap-3",children:[o.jsx(NE,{sessionId:A.id,title:A.title,className:"text-2xl font-semibold text-foreground leading-tight"}),n?.shared&&o.jsxs("button",{type:"button",onClick:()=>Co(n.url),className:"flex items-center gap-1.5 px-2 py-1 rounded-md bg-emerald-500/10 text-emerald-600 dark:text-emerald-400 hover:bg-emerald-500/20 transition-colors text-xs font-medium flex-shrink-0",children:[o.jsx(qa,{className:"h-3 w-3"}),o.jsx("span",{children:"Shared"}),n.pendingMessages&&n.pendingMessages>0?o.jsxs("span",{className:"flex items-center gap-0.5 text-amber-600 dark:text-amber-400",children:[o.jsx(Zt,{className:"h-2.5 w-2.5"}),n.pendingMessages]}):o.jsx(Gt,{className:"h-2.5 w-2.5 opacity-60"})]})]}),o.jsxs("div",{className:"flex flex-wrap items-center gap-x-5 gap-y-2 mt-4 text-sm text-muted-foreground",children:[o.jsxs("div",{className:"flex items-center gap-3",children:[o.jsxs("div",{className:"flex items-center gap-1.5",title:`Current context window: ${B(E)} tokens`,children:[o.jsx("span",{className:"text-xs opacity-70",children:"ctx"}),o.jsx("span",{className:`font-medium ${F()}`,children:u(E)})]}),!a&&o.jsxs("div",{className:"flex items-center gap-1.5",title:`Total output: ${B(c)} tokens`,children:[o.jsx("span",{className:"text-xs opacity-70",children:"out"}),o.jsx("span",{className:"font-medium text-foreground",children:u(c)})]})]}),!a&&o.jsxs("div",{className:"flex items-center gap-2",children:[o.jsx(Ha,{className:"w-4 h-4"}),o.jsx("span",{className:"font-medium text-foreground",children:l(A.totalToolTimeMs)})]}),g>0&&!a&&o.jsxs("div",{className:"flex items-center gap-1.5",children:[o.jsx(XQ,{className:"w-4 h-4"}),o.jsx("span",{className:"font-medium text-foreground",children:g.toFixed(4)})]}),o.jsxs("div",{className:"flex items-center gap-2 ml-auto",children:[o.jsx(eo,{provider:A.provider,size:18}),!a&&o.jsx("span",{className:"font-medium text-foreground",children:A.model})]})]})]})})}const Eo=dt(A=>({usage:{},isLoading:{},lastFetched:{},isModalOpen:!1,modalProvider:null,setUsage:(e,t)=>A(s=>({usage:{...s.usage,[e]:t}})),setLoading:(e,t)=>A(s=>({isLoading:{...s.isLoading,[e]:t}})),setLastFetched:(e,t)=>A(s=>({lastFetched:{...s.lastFetched,[e]:t}})),openModal:e=>A({isModalOpen:!0,modalProvider:e}),closeModal:()=>A({isModalOpen:!1,modalProvider:null})})),Bs=22,ba=2.5,Fa=(Bs-ba)/2,Oi=2*Math.PI*Fa;function n1(A){return A>=90?"#ef4444":A>=70?"#f59e0b":"#3b82f6"}const hQ=m.memo(function({usage:e,provider:t}){const s=Eo(a=>a.openModal),n=e.primaryWindow?.usedPercent??0,r=Oi-n/100*Oi,i=n1(n);return o.jsxs("button",{type:"button",onClick:()=>s(t),className:"relative flex items-center hover:opacity-80 transition-opacity cursor-pointer",title:`Usage: ${Math.round(n)}% (5h window) — Click for details`,children:[o.jsxs("svg",{width:Bs,height:Bs,className:"-rotate-90",role:"img","aria-label":"Usage ring",children:[o.jsx("circle",{cx:Bs/2,cy:Bs/2,r:Fa,fill:"none",stroke:"hsl(var(--muted))",strokeWidth:ba}),o.jsx("circle",{cx:Bs/2,cy:Bs/2,r:Fa,fill:"none",stroke:i,strokeWidth:ba,strokeDasharray:Oi,strokeDashoffset:r,strokeLinecap:"round",className:"transition-all duration-500"})]}),o.jsx("span",{className:"absolute inset-0 flex items-center justify-center rotate-0 font-medium text-muted-foreground",style:{fontSize:7},children:"5h"})]})});function i1(A){if(!A)return"Unknown";const e=Date.now(),s=new Date(A).getTime()-e;if(s<=0)return"Now";const n=Math.floor(s/864e5),r=Math.floor(s%864e5/36e5),i=Math.floor(s%36e5/6e4);return n>0?`${n}d ${r}h`:r>0?`${r}h ${i}m`:`${i}m`}function pQ(A){return A<=18e3?"5 Hour":A<=86400?"24 Hour":"7 Day"}function qi({label:A,window:e}){const t=Math.min(e.usedPercent,100),s=t>=90?"bg-red-500":t>=70?"bg-amber-500":"bg-blue-500";return o.jsxs("div",{className:"space-y-1.5",children:[o.jsxs("div",{className:"flex items-center justify-between text-sm",children:[o.jsx("span",{className:"text-muted-foreground",children:A}),o.jsxs("div",{className:"flex items-center gap-2",children:[o.jsxs("span",{className:"font-medium text-foreground",children:[Math.round(t),"%"]}),e.resetsAt&&o.jsxs("span",{className:"text-xs text-muted-foreground",children:["resets in ",i1(e.resetsAt)]})]})]}),o.jsx("div",{className:"h-2 rounded-full bg-muted overflow-hidden",children:o.jsx("div",{className:`h-full rounded-full transition-all duration-500 ${s}`,style:{width:`${t}%`}})})]})}const a1=m.memo(function(){const e=Eo(i=>i.isModalOpen),t=Eo(i=>i.modalProvider),s=Eo(i=>i.closeModal),n=Eo(i=>t?i.usage[t]:void 0),r=m.useMemo(()=>o.jsxs("div",{className:"flex items-center gap-2",children:[t&&o.jsx(eo,{provider:t,size:20}),o.jsx("span",{children:"Usage & Limits"})]}),[t]);return n?o.jsx(So,{isOpen:e,onClose:s,title:r,maxWidth:"sm",children:o.jsxs("div",{className:"space-y-5",children:[n.limitReached&&o.jsxs("div",{className:"flex items-center gap-2 px-3 py-2 rounded-md bg-red-500/10 border border-red-500/20",children:[o.jsx("span",{className:"w-2 h-2 rounded-full bg-red-500 flex-shrink-0"}),o.jsx("span",{className:"text-sm text-red-600 dark:text-red-400 font-medium",children:"Rate limit reached"})]}),n.primaryWindow&&o.jsx(qi,{label:`${pQ(n.primaryWindow.windowSeconds)} Window`,window:n.primaryWindow}),n.secondaryWindow&&o.jsx(qi,{label:`${pQ(n.secondaryWindow.windowSeconds)} Window`,window:n.secondaryWindow}),n.sonnetWindow&&n.sonnetWindow.usedPercent>0&&o.jsx(qi,{label:"Sonnet (7 Day)",window:{usedPercent:n.sonnetWindow.usedPercent,windowSeconds:604800,resetsAt:n.sonnetWindow.resetsAt}}),n.extraUsage?.is_enabled&&o.jsx("div",{className:"pt-2 border-t border-border space-y-1",children:o.jsxs("div",{className:"flex items-center justify-between text-sm",children:[o.jsx("span",{className:"text-muted-foreground",children:"Extra Credits"}),o.jsxs("span",{className:"font-medium text-foreground",children:["$",n.extraUsage.used_credits.toFixed(2)," / $",n.extraUsage.monthly_limit]})]})}),n.credits?.has_credits&&o.jsx("div",{className:"pt-2 border-t border-border space-y-1",children:o.jsxs("div",{className:"flex items-center justify-between text-sm",children:[o.jsx("span",{className:"text-muted-foreground",children:"Credits"}),o.jsx("span",{className:"font-medium text-foreground",children:n.credits.balance!==null?`$${n.credits.balance.toFixed(2)}`:"Available"})]})}),n.planType&&o.jsx("div",{className:"pt-2 border-t border-border",children:o.jsxs("div",{className:"flex items-center justify-between text-sm",children:[o.jsx("span",{className:"text-muted-foreground",children:"Plan"}),o.jsx("span",{className:"font-medium text-foreground capitalize",children:n.planType})]})})]})}):null}),g1=6e4,l1=3e4,Yi=new Set;function Q1(A,e){const t=Eo(l=>l.setUsage),s=Eo(l=>l.setLoading),n=Eo(l=>l.setLastFetched),r=Eo(l=>A?l.usage[A]:void 0),i=e==="oauth"&&(A==="anthropic"||A==="openai"),a=m.useCallback(async()=>{if(!A||!i||Yi.has(A))return;const l=Eo.getState().lastFetched[A]??0;if(!(l&&Date.now()-l<l1)){Yi.add(A),s(A,!0);try{const B=await mA.getProviderUsage(A);t(A,B),n(A,Date.now())}catch{}finally{s(A,!1),Yi.delete(A)}}},[A,i,t,s,n]),g=m.useRef(a);return g.current=a,m.useEffect(()=>{if(!A||!i)return;g.current();const l=setInterval(()=>g.current(),g1);return()=>clearInterval(l)},[i,A]),{usage:r,fetchUsage:a,isOAuthProvider:i}}function ni(A){const e=Ne(p=>p.setBalance),t=Ne(p=>p.setUsdcBalance),s=Ne(p=>p.setWalletAddress),n=Ne(p=>p.setLoading),r=Ne(p=>p.setScope),i=Ne(p=>p.setPayg),a=Ne(p=>p.setSubscription),g=Ne(p=>p.setLimits),l=Eo(p=>p.setUsage),B=Ne(p=>p.balance),u=Ne(p=>p.usdcBalance),E=Ne(p=>p.subscription),c=Ne(p=>p.network),d=m.useCallback(async()=>{if(A==="ottorouter"){n(!0);try{const[p,D,F]=await Promise.all([mA.getOttoRouterBalance(),mA.getOttoRouterUsdcBalance(c),mA.getOttoRouterWallet()]);if(p){e(p.balance),s(p.walletAddress),r(p.scope??null),i(p.payg??null),a(p.subscription??null),g(p.limits??null);const k=p.subscription;k?.active&&k.usageWindows&&l("ottorouter",{provider:"ottorouter",primaryWindow:{usedPercent:k.usageWindows.fiveHour.percentUsed,windowSeconds:18e3,resetsAt:null},secondaryWindow:{usedPercent:k.usageWindows.weekly.percentUsed,windowSeconds:604800,resetsAt:null},limitReached:!1,planType:k.tierName??"GO"})}else F?.configured&&F.publicKey&&s(F.publicKey);D&&(t(D.usdcBalance),!p&&D.walletAddress&&s(D.walletAddress))}catch{}finally{n(!1)}}},[A,c,e,t,s,n,r,i,a,g,l]),f=E?.active&&!E.usageWindows;return m.useEffect(()=>{A==="ottorouter"&&(B===null||u===null||f)&&d()},[A,B,u,f,d]),{fetchBalance:d}}function B1({session:A,isVisible:e,isGenerating:t,onNavigateToSession:s}){const{data:n}=uc(A.sessionType==="branch"?A.id:void 0),{data:r}=lg(A.id),i=m.useMemo(()=>{const $=A.totalInputTokens||0,X=A.totalOutputTokens||0,U=A.totalCachedTokens||0,O=A.totalCacheCreationTokens||0;return xE(A.provider,A.model,{inputTokens:$,outputTokens:X,cachedInputTokens:U,cacheCreationInputTokens:O})??0},[A.provider,A.model,A.totalInputTokens,A.totalOutputTokens,A.totalCachedTokens,A.totalCacheCreationTokens]),a=$=>$>=1e6?`${($/1e6).toFixed(1)}M`:$>=1e3?`${($/1e3).toFixed(1)}K`:$.toString(),g=A.currentContextTokens||0,l=A.sessionType==="branch",B=n?.parent,u=m.useMemo(()=>yE(A.provider,A.model)?.limit?.context,[A.provider,A.model]),E=u?g/u*100:0,c=()=>E>=90?"text-red-600 dark:text-red-400":E>=70?"text-amber-600 dark:text-amber-400":"text-foreground",{data:d}=Xs(),f=d?.[A.provider]?.authType,{usage:p,isOAuthProvider:D}=Q1(A.provider,f),F=A.provider==="ottorouter";ni(F?"ottorouter":void 0);const k=Eo($=>$.usage.ottorouter),L=m.useRef(null),K=Rg(L),W=K>0&&K<640;return o.jsxs(o.Fragment,{children:[o.jsx("div",{ref:L,className:`absolute top-0 left-0 right-0 h-12 border-b border-border bg-background/40 backdrop-blur-xl supports-[backdrop-filter]:bg-background/20 z-10 transition-transform duration-200 ${e?"translate-y-0":"-translate-y-full"}`,children:o.jsxs("div",{className:"h-full px-2.5 flex items-center justify-between gap-3 text-sm",children:[o.jsxs("div",{className:"flex-1 min-w-0 flex items-center gap-1.5 text-muted-foreground",children:[l&&o.jsx(go,{className:"size-4 flex-shrink-0 text-violet-500"}),o.jsx(NE,{sessionId:A.id,title:A.title,className:"text-foreground font-medium text-sm"}),r?.shared&&o.jsxs("button",{type:"button",onClick:()=>Co(r.url),className:"flex items-center gap-1 px-1.5 py-0.5 rounded bg-emerald-500/10 text-emerald-600 dark:text-emerald-400 hover:bg-emerald-500/20 transition-colors text-xs font-medium flex-shrink-0",children:[o.jsx(qa,{className:"h-3 w-3"}),r.pendingMessages&&r.pendingMessages>0?o.jsxs("span",{className:"flex items-center gap-0.5 text-amber-600 dark:text-amber-400",children:[o.jsx(Zt,{className:"h-2.5 w-2.5"}),r.pendingMessages]}):o.jsx(Gt,{className:"h-2.5 w-2.5 opacity-60"})]}),l&&B&&o.jsxs(o.Fragment,{children:[!W&&o.jsx("span",{className:"text-muted-foreground",children:"from"}),o.jsxs("button",{type:"button",onClick:()=>s?.(B.id),className:"text-primary hover:underline flex items-center gap-0.5 truncate max-w-32",title:B.title||`Session ${B.id.slice(0,8)}`,children:[o.jsx("span",{className:"truncate",children:B.title||`Session ${B.id.slice(0,8)}`}),o.jsx(ZQ,{className:"h-3 w-3 flex-shrink-0"})]})]})]}),o.jsxs("div",{className:"flex-shrink-0 flex items-center gap-3 text-muted-foreground",children:[t&&o.jsx(zf,{sessionId:A.id}),D&&p&&o.jsx(hQ,{usage:p,provider:A.provider}),F&&k&&o.jsx(hQ,{usage:k,provider:"ottorouter"}),o.jsx("div",{className:"flex items-center gap-2",children:o.jsxs("div",{className:"flex items-center gap-1",title:`Current context window: ${g.toLocaleString()} tokens`,children:[o.jsx("span",{className:"text-xs opacity-70",children:"ctx"}),o.jsx("span",{className:`font-medium ${c()}`,children:a(g)})]})}),i>0&&!W&&o.jsxs("div",{className:"flex items-center gap-1",children:[o.jsx(XQ,{className:"size-3.5"}),o.jsx("span",{className:"text-foreground font-medium",children:i.toFixed(4)})]}),o.jsxs("div",{className:"flex items-center gap-1.5",children:[o.jsx(eo,{provider:A.provider,size:14}),!W&&o.jsx("span",{className:"font-medium text-foreground",children:A.model})]})]})]})}),o.jsx(a1,{})]})}const c1=m.memo(function({pendingTopup:e,onMethodSelected:t,onCancel:s}){const[n,r]=m.useState(!1),[i,a]=m.useState(null),g=Ne(c=>c.openTopupModal),l=Ne(c=>!!c.subscription?.active),B=async()=>{a("crypto"),r(!0);try{await mA.selectTopupMethod(e.sessionId,"crypto"),t("crypto")}catch(c){ae.error(c instanceof Error?c.message:"Failed to process payment"),r(!1),a(null)}},u=async()=>{a("fiat"),g(),mA.selectTopupMethod(e.sessionId,"fiat").catch(()=>{}),t("fiat")},E=async()=>{r(!0);try{await mA.cancelTopup(e.sessionId),s()}catch(c){ae.error(c instanceof Error?c.message:"Failed to cancel"),r(!1)}};return o.jsxs("div",{className:"flex flex-col gap-3 py-2",children:[o.jsxs("div",{className:"flex items-center gap-2",children:[o.jsx(wo,{className:"h-4 w-4 text-amber-500 flex-shrink-0"}),o.jsx("span",{className:"font-medium text-foreground text-sm",children:"Insufficient Balance"}),o.jsx("span",{className:"text-amber-600 dark:text-amber-400 font-medium text-sm",children:"payment required"})]}),l&&o.jsx("p",{className:"ml-6 text-xs text-muted-foreground",children:"GO credits may not apply to this request. Add balance to continue."}),o.jsxs("div",{className:"ml-6 bg-muted/30 rounded-lg p-3 space-y-2 text-sm",children:[o.jsxs("div",{className:"flex justify-between",children:[o.jsx("span",{className:"text-muted-foreground",children:"Request cost"}),o.jsxs("span",{className:"font-mono",children:["~$",e.amountUsd.toFixed(4)]})]}),o.jsxs("div",{className:"flex justify-between",children:[o.jsx("span",{className:"text-muted-foreground",children:"Current balance"}),o.jsxs("span",{className:"font-mono",children:["$",e.currentBalance.toFixed(4)]})]})]}),o.jsxs("div",{className:"ml-6 flex flex-wrap items-center gap-2",children:[o.jsxs("button",{type:"button",onClick:E,disabled:n,title:"Cancel request",className:"flex items-center gap-1.5 px-3 py-1.5 text-xs font-medium rounded border border-border bg-background hover:bg-muted transition-colors disabled:opacity-50",children:[o.jsx(ot,{className:"w-3 h-3"}),"Cancel"]}),o.jsxs("button",{type:"button",onClick:B,disabled:n,title:"Pay with USDC from your wallet",className:"flex items-center gap-1.5 px-3 py-1.5 text-xs font-medium rounded bg-violet-600 text-white hover:bg-violet-700 transition-colors disabled:opacity-50",children:[i==="crypto"&&n?o.jsx(Je,{className:"w-3 h-3 animate-spin"}):o.jsx(Pa,{className:"w-3 h-3"}),"Pay with USDC"]}),o.jsxs("button",{type:"button",onClick:u,disabled:n,title:"Top up with card (min $5)",className:"flex items-center gap-1.5 px-3 py-1.5 text-xs font-medium rounded border border-violet-500 text-violet-600 dark:text-violet-400 hover:bg-violet-500/10 transition-colors disabled:opacity-50",children:[i==="fiat"&&n?o.jsx(Je,{className:"w-3 h-3 animate-spin"}):o.jsx(Kn,{className:"w-3 h-3"}),"Top up with Card",o.jsx("span",{className:"text-[10px] opacity-70",children:"(min $5)"})]})]}),o.jsx("p",{className:"ml-6 text-xs text-muted-foreground",children:i==="crypto"?"Processing USDC payment from your wallet...":i==="fiat"?"Opening checkout...":"Select a payment method to continue your request."})]})}),vn=dt(A=>({pendingTopup:null,isProcessing:!1,selectedMethod:null,setPendingTopup:e=>A({pendingTopup:e,isProcessing:!1,selectedMethod:null}),setProcessing:e=>A({isProcessing:e}),setSelectedMethod:e=>A({selectedMethod:e}),clearPendingTopup:()=>A({pendingTopup:null,isProcessing:!1,selectedMethod:null})})),E1=m.memo(function({messages:e,session:t,sessionId:s,isGenerating:n,compact:r=!1,disableAutoScroll:i=!1,onSelectSession:a}){const g=ke(),{preferences:l}=$s(),B=m.useRef(null),u=m.useRef(null),E=m.useRef(null),c=m.useRef(null),d=Rg(c),f=d>0&&d<640?"compact":"normal",[p,D]=m.useState(!0),F=m.useRef(!0),[k,L]=m.useState(!1),K=m.useRef(!1),W=m.useRef(void 0),$=m.useRef(0),X=m.useRef(void 0),U=m.useRef(!1),O=m.useRef(t?.id),T=m.useRef(e.length),H=m.useRef(n),x=m.useRef(0),Q=m.useRef(0),I=vn(v=>v.pendingTopup),N=vn(v=>v.clearPendingTopup),G=I&&I.sessionId===s,J=m.useCallback(()=>{const v=u.current;if(!v)return;const{scrollTop:S,scrollHeight:Z,clientHeight:eA}=v,rA=Z-S-eA,sA=Z>x.current,bA=S<Q.current-5;x.current=Z,Q.current=S,rA<100?(F.current=!0,D(!0)):bA?(F.current=!1,D(!1),K.current=!0):!sA&&F.current&&(F.current=!1,D(!1)),(bA||!F.current&&rA>=100)&&(W.current&&clearTimeout(W.current),W.current=setTimeout(()=>{K.current=!1},150));const LA=E.current;if(LA){const QA=LA.getBoundingClientRect(),qA=v.getBoundingClientRect();L(QA.bottom<qA.top)}},[]);m.useEffect(()=>{if(i)return;const v=t?.id!==O.current;if(O.current=t?.id,v&&(U.current=!1),!U.current&&e.length>0){U.current=!0;const S=u.current;S&&(S.scrollTop=S.scrollHeight)}},[e.length,t?.id,i]),m.useEffect(()=>{if(i)return;const v=n&&!H.current,S=e.length>T.current;H.current=n,T.current=e.length,v?(K.current=!1,F.current=!0,D(!0),requestAnimationFrame(()=>{requestAnimationFrame(()=>{const Z=u.current;Z&&(Z.scrollTop=Z.scrollHeight)})})):S&&!K.current&&!n&&(F.current=!0,D(!0))},[e.length,n,i]),m.useEffect(()=>{if(i)return;const v=u.current;if(!v||!p||K.current)return;$.current=v.scrollHeight-v.clientHeight;const S=()=>{const Z=u.current;if(!Z||K.current)return;const eA=Z.scrollTop,sA=Z.scrollHeight-Z.clientHeight-eA;if(Math.abs(sA)<1){Z.scrollTop=Z.scrollHeight-Z.clientHeight;return}if(Math.abs(sA)<10){Z.scrollTop=Z.scrollHeight-Z.clientHeight;return}Z.scrollTop=eA+sA*.15,X.current=requestAnimationFrame(S)};X.current&&cancelAnimationFrame(X.current),X.current=requestAnimationFrame(S)},[e,p]),m.useEffect(()=>()=>{W.current&&clearTimeout(W.current),X.current&&cancelAnimationFrame(X.current)},[]);const q=()=>{K.current=!1,F.current=!0,D(!0);const v=u.current;v&&(v.scrollTop=v.scrollHeight)},j=m.useMemo(()=>e.filter(v=>v.role!=="system"),[e]),R=l.fullWidthContent?r?"w-full space-y-4":"w-full space-y-6":r?"max-w-3xl mx-auto space-y-4":"max-w-3xl mx-auto space-y-6",C=m.useCallback(v=>async()=>{if(s&&v){g.setQueryData(["messages",s],S=>S&&S.map(Z=>{if(Z.id!==v)return Z;const eA=Z.parts?.filter(rA=>!(rA.type==="error"||rA.type==="tool_call"&&rA.toolName==="finish"))??[];return{...Z,status:"pending",parts:eA,error:null}}));try{await mA.retryMessage(s,v)}catch(S){ae.error(S instanceof Error?S.message:"Failed to retry")}}},[s,g]),h=m.useCallback(async()=>{if(s)try{await mA.sendMessage(s,{content:"/compact"})}catch(v){ae.error(v instanceof Error?v.message:"Failed to compact")}},[s]);return e.length===0?o.jsx("div",{className:"flex-1 flex items-center justify-center text-muted-foreground text-sm",children:"No messages yet. Start a conversation below."}):o.jsx("div",{ref:c,className:"absolute inset-0 flex flex-col",children:o.jsxs(Tm,{density:f,children:[t&&o.jsx(B1,{session:t,isVisible:k,isGenerating:n,onNavigateToSession:a}),o.jsxs("div",{ref:u,className:"flex-1 overflow-y-auto",onScroll:J,children:[o.jsx("div",{ref:E,children:t&&o.jsx(r1,{session:t,onNavigateToSession:a})}),o.jsx("div",{className:f==="compact"?"px-2 pt-3 pb-56":r?"p-4 pb-56":"p-6 pb-64",children:o.jsxs("div",{className:R,children:[j.map((v,S)=>{const Z=j[S-1],eA=j[S+1],rA=S===j.length-1;if(v.role==="user"){const sA=eA&&eA.role==="assistant"?eA:void 0;return o.jsx(dc,{sessionId:s,message:v,isFirst:S===0,nextAssistantMessageId:sA?.id},v.id)}if(v.role==="assistant"){const sA=!Z||Z.role!=="assistant",bA=eA&&eA.role==="assistant";return o.jsx(Ic,{sessionId:s,message:v,showHeader:sA,hasNextAssistantMessage:bA,isLastMessage:rA,onBranchCreated:a,onRetry:rA?C(v.id):void 0,compact:r,onCompact:rA?h:void 0},v.id)}return null}),G&&I&&o.jsx("div",{className:"py-4",children:o.jsx(c1,{pendingTopup:I,onMethodSelected:()=>N(),onCancel:()=>N()})}),o.jsx("div",{ref:B})]})})]}),!p&&o.jsxs("button",{type:"button",onClick:q,className:"absolute bottom-36 left-1/2 -translate-x-1/2 flex items-center gap-2 px-4 py-2 bg-background border border-border rounded-full shadow-lg hover:bg-muted/50 transition-all text-sm text-foreground z-10",children:[o.jsx(NC,{className:"w-4 h-4"}),o.jsx("span",{children:"Scroll to bottom"})]})]})})});class kE{abortController=null;handlers=new Map;running=!1;async connect(e){this.abortController&&this.abortController.abort(),this.abortController=new AbortController,this.running=!0;const t=!e.includes("localhost")&&!e.includes("127.0.0.1");try{const s=await fetch(e,{method:t?"POST":"GET",headers:{Accept:"text/event-stream"},signal:this.abortController.signal});if(!s.ok){console.error("[SSE] Connection failed:",s.status);return}const n=s.body?.getReader();if(!n){console.error("[SSE] No response body");return}const r=new TextDecoder;let i="";for(;this.running;){const{done:a,value:g}=await n.read();if(a)break;i+=r.decode(g,{stream:!0});let l=i.indexOf(`
|
|
120
|
+
|
|
121
|
+
`);for(;l!==-1;){const B=i.slice(0,l);i=i.slice(l+2);const u=B.split(`
|
|
122
|
+
`);let E="message",c="";for(const d of u)d.startsWith("event: ")?E=d.slice(7).trim():d.startsWith("data: ")?c+=(c?`
|
|
123
|
+
`:"")+d.slice(6):d.startsWith(":");if(c)try{const d=JSON.parse(c);this.emit({type:E,payload:d})}catch(d){console.error(`[SSE] Failed to parse ${E}:`,d)}l=i.indexOf(`
|
|
124
|
+
|
|
125
|
+
`)}}}catch(s){s instanceof Error&&s.name==="AbortError"||s instanceof TypeError&&s.message==="Load failed"||console.error("[SSE] Connection error:",s)}}disconnect(){this.running=!1,this.abortController&&(this.abortController.abort(),this.abortController=null)}on(e,t){return this.handlers.has(e)||this.handlers.set(e,new Set),this.handlers.get(e)?.add(t),()=>{this.off(e,t)}}off(e,t){const s=this.handlers.get(e);s&&(s.delete(t),s.size===0&&this.handlers.delete(e))}emit(e){const t=this.handlers.get(e.type);if(t)for(const n of t)n(e);const s=this.handlers.get("*");if(s)for(const n of s)n(e)}}function ME(A,e=!0){const t=ke(),s=m.useRef(null),n=m.useRef(null),{addPendingApproval:r,removePendingApproval:i,updatePendingApproval:a,setPendingApprovals:g}=Sr();m.useEffect(()=>{if(!A||!e)return;n.current=null;let l=0;mA.getPendingApprovals(A).then(Q=>{Q.ok&&Q.pending.length>0?g(Q.pending):g([])}).catch(()=>{g([])});const B=new kE;s.current=B;const u=mA.getStreamUrl(A);console.log("[useSessionStream] Connecting to stream:",u),B.connect(u);const E=Q=>{if(n.current){const I=Q.findIndex(N=>N.id===n.current);if(I!==-1)return I}for(let I=Q.length-1;I>=0;I-=1){const N=Q[I];if(N.role==="assistant"&&N.status!=="complete")return I}return-1},c=Q=>{if(Q.contentJson&&typeof Q.contentJson=="object"&&!Array.isArray(Q.contentJson)&&"text"in Q.contentJson)return String(Q.contentJson.text??"");if(typeof Q.content=="string"){try{const I=JSON.parse(Q.content);if(I&&typeof I.text=="string")return I.text}catch{}return Q.content}return""},d=Q=>typeof Q?.callId=="string"?Q.callId:typeof Q?.toolCallId=="string"?Q.toolCallId:null,f=Q=>typeof Q?.name=="string"?Q.name:typeof Q?.toolName=="string"?Q.toolName:null,p=Q=>Q?.args??Q?.input,D=Q=>typeof Q?.delta=="string"?Q.delta:typeof Q?.inputTextDelta=="string"?Q.inputTextDelta:null,F=Q=>typeof Q?.delta=="string"?Q.delta:typeof Q?.outputTextDelta=="string"?Q.outputTextDelta:null,k=(Q,I)=>{const N=(()=>{const J=Q.map(q=>q.index).filter(q=>Number.isFinite(q));return J.length>0?Math.max(...J)+.001:0})();if(typeof I!="number")return N;const G=Q.filter(J=>J.stepIndex===I).map(J=>J.index).filter(J=>Number.isFinite(J));return G.length>0?Math.max(...G)+.001:N},L=Q=>{const I=typeof Q?.messageId=="string"?Q.messageId:null,N=typeof Q?.partId=="string"?Q.partId:null,G=typeof Q?.delta=="string"?Q.delta:null;!I||!N||G===null||t.setQueryData(["messages",A],J=>{if(!J)return J;const q=[...J],j=q.findIndex(S=>S.id===I);if(j===-1)return J;const R=q[j],C=R.parts?[...R.parts]:[];let h=C.findIndex(S=>S.id===N);const v=typeof Q?.stepIndex=="number"?Q.stepIndex:null;if(h===-1){const S={id:N,messageId:I,index:k(C,v),stepIndex:v,type:"reasoning",content:JSON.stringify({text:G}),contentJson:{text:G},agent:R.agent,provider:R.provider,model:R.model,startedAt:Date.now(),completedAt:null,toolName:null,toolCallId:null,toolDurationMs:null};C.push(S),h=C.length-1}else{const S=C[h],eA=`${c(S)}${G}`;C[h]={...S,content:JSON.stringify({text:eA}),contentJson:{text:eA},stepIndex:v??S.stepIndex??null,completedAt:null}}return q[j]={...R,parts:C},q})},K=Q=>{const I=typeof Q?.messageId=="string"?Q.messageId:null,N=typeof Q?.partId=="string"?Q.partId:null,G=typeof Q?.delta=="string"?Q.delta:null;!I||!N||G===null||t.setQueryData(["messages",A],J=>{if(!J)return J;const q=[...J],j=q.findIndex(S=>S.id===I);if(j===-1)return J;const R=q[j],C=R.parts?[...R.parts]:[];let h=C.findIndex(S=>S.id===N);const v=typeof Q?.stepIndex=="number"?Q.stepIndex:null;if(h===-1){const S={id:N,messageId:I,index:k(C,v),stepIndex:v,type:"text",content:JSON.stringify({text:G}),contentJson:{text:G},agent:R.agent,provider:R.provider,model:R.model,startedAt:Date.now(),completedAt:null,toolName:null,toolCallId:null,toolDurationMs:null};C.push(S),h=C.length-1}else{const S=C[h],eA=`${c(S)}${G}`;C[h]={...S,content:JSON.stringify({text:eA}),contentJson:{text:eA},stepIndex:v??S.stepIndex??null,completedAt:null}}return q[j]={...R,parts:C},q})},W=Q=>{if(!Q)return;const I=d(Q),N=f(Q);N&&t.setQueryData(["messages",A],G=>{if(!G)return G;const J=[...G];let q=E(J);if(typeof Q.messageId=="string"){const Z=J.findIndex(eA=>eA.id===Q.messageId);Z!==-1&&(q=Z)}if(q===-1)return G;const j=J[q],R=j.parts?[...j.parts]:[];let C=-1;I&&(C=R.findIndex(Z=>Z.toolCallId===I&&Z.ephemeral)),C===-1&&!I&&(C=R.findIndex(Z=>Z.ephemeral&&Z.toolName===N));const h=p(Q),v=typeof Q.stepIndex=="number"?Q.stepIndex:null,S={name:N};if(I&&(S.callId=I),h!==void 0&&(S.args=h),C===-1){const Z={id:I?`ephemeral-tool-call-${I}`:`ephemeral-tool-call-${N}-${Date.now()}`,messageId:j.id,index:k(R,v),stepIndex:v,type:"tool_call",content:JSON.stringify(S),contentJson:S,agent:j.agent,provider:j.provider,model:j.model,startedAt:Date.now(),completedAt:null,toolName:N,toolCallId:I,toolDurationMs:null,ephemeral:!0};R.push(Z)}else{const Z=R[C],eA={...typeof Z.contentJson=="object"&&!Array.isArray(Z.contentJson)?Z.contentJson:{},name:N};I&&(eA.callId=I),h!==void 0&&(eA.args=h),R[C]={...Z,content:JSON.stringify(eA),contentJson:eA,stepIndex:v??Z.stepIndex??null,toolCallId:I??Z.toolCallId,toolName:N}}return J[q]={...j,parts:R},J})},$=(Q,I)=>{if(!Q)return;const N=d(Q),G=f(Q);G&&t.setQueryData(["messages",A],J=>{if(!J)return J;const q=[...J];let j=E(q);if(typeof Q.messageId=="string"){const S=q.findIndex(Z=>Z.id===Q.messageId);S!==-1&&(j=S)}if(j===-1)return J;const R=q[j],C=R.parts?[...R.parts]:[];let h=-1;N&&(h=C.findIndex(S=>S.toolCallId===N&&S.ephemeral)),h===-1&&!N&&(h=C.findIndex(S=>S.ephemeral&&S.toolName===G));const v=typeof Q.stepIndex=="number"?Q.stepIndex:null;if(h===-1){const S={name:G,_streamedInput:I};N&&(S.callId=N);const Z={id:N?`ephemeral-tool-call-${N}`:`ephemeral-tool-call-${G}-${Date.now()}`,messageId:R.id,index:k(C,v),stepIndex:v,type:"tool_call",content:JSON.stringify(S),contentJson:S,agent:R.agent,provider:R.provider,model:R.model,startedAt:Date.now(),completedAt:null,toolName:G,toolCallId:N,toolDurationMs:null,ephemeral:!0};C.push(Z)}else{const S=C[h],Z=typeof S.contentJson?._streamedInput=="string"?S.contentJson._streamedInput:"",eA={...typeof S.contentJson=="object"&&!Array.isArray(S.contentJson)?S.contentJson:{},_streamedInput:Z+I};C[h]={...S,content:JSON.stringify(eA),contentJson:eA,stepIndex:v??S.stepIndex??null}}return q[j]={...R,parts:C},q})},X=(Q,I)=>{if(!Q)return;const N=d(Q),G=f(Q);G&&t.setQueryData(["messages",A],J=>{if(!J)return J;const q=[...J];let j=E(q);if(typeof Q.messageId=="string"){const S=q.findIndex(Z=>Z.id===Q.messageId);S!==-1&&(j=S)}if(j===-1)return J;const R=q[j],C=R.parts?[...R.parts]:[];let h=-1;N&&(h=C.findIndex(S=>S.toolCallId===N&&S.ephemeral)),h===-1&&!N&&(h=C.findIndex(S=>S.ephemeral&&S.toolName===G));const v=typeof Q.stepIndex=="number"?Q.stepIndex:null;if(h===-1){const S={name:G,_streamedOutput:I};N&&(S.callId=N);const Z={id:N?`ephemeral-tool-call-${N}`:`ephemeral-tool-call-${G}-${Date.now()}`,messageId:R.id,index:k(C,v),stepIndex:v,type:"tool_call",content:JSON.stringify(S),contentJson:S,agent:R.agent,provider:R.provider,model:R.model,startedAt:Date.now(),completedAt:null,toolName:G,toolCallId:N,toolDurationMs:null,ephemeral:!0};C.push(Z)}else{const S=C[h],Z=typeof S.contentJson?._streamedOutput=="string"?S.contentJson._streamedOutput:"",eA={...typeof S.contentJson=="object"&&!Array.isArray(S.contentJson)?S.contentJson:{},_streamedOutput:Z+I};C[h]={...S,content:JSON.stringify(eA),contentJson:eA,stepIndex:v??S.stepIndex??null}}return q[j]={...R,parts:C},q})},U=Q=>{const I=d(Q);if(!I)return;const N=f(Q),G=typeof Q?.stepIndex=="number"?Q.stepIndex:null,J=Q?.result,q=Q?.artifact,j=p(Q);t.setQueryData(["messages",A],R=>{if(!R)return R;let C=!1;const h=Date.now(),v=R.map(S=>{if(!S.parts?.length)return S;let Z=!1;const eA=S.parts.map(rA=>{if(!(rA.ephemeral&&rA.toolCallId===I))return rA;Z=!0,C=!0;const sA={...typeof rA.contentJson=="object"&&!Array.isArray(rA.contentJson)?rA.contentJson:{},name:N??rA.toolName??"tool",callId:I};j!==void 0&&(sA.args=j),J!==void 0&&(sA.result=J),q!==void 0&&(sA.artifact=q);const bA=rA.startedAt&&Number.isFinite(rA.startedAt)?Math.max(0,h-rA.startedAt):rA.toolDurationMs;return{...rA,type:"tool_result",content:JSON.stringify(sA),contentJson:sA,stepIndex:G??rA.stepIndex??null,completedAt:h,toolName:N??rA.toolName,toolDurationMs:bA??null}});return Z?{...S,parts:eA}:S});return C?v:R})},O=Q=>{const I=d(Q);I&&t.setQueryData(["messages",A],N=>{if(!N)return N;let G=!1;const J=N.map(q=>{if(!q.parts?.length)return q;const j=q.parts.filter(R=>!(R.ephemeral&&R.toolCallId===I));return j.length===q.parts.length?q:(G=!0,{...q,parts:j})});return G?J:N})},T=Q=>{Q&&t.setQueryData(["messages",A],I=>{if(!I)return I;const N=I.findIndex(q=>q.id===Q);if(N===-1)return I;const G=I[N];if(!G.parts?.some(q=>q.ephemeral&&q.type==="tool_call"))return I;const J=[...I];return J[N]={...G,parts:G.parts?.filter(q=>!(q.ephemeral&&q.type==="tool_call"))??[]},J})},H=Q=>{const I=typeof Q?.id=="string"?Q.id:null;I&&t.setQueryData(["messages",A],N=>{if(!N)return N;const G=[...N],J=G.findIndex(j=>j.id===I);if(J===-1)return N;const q=G[J];return G[J]={...q,status:"complete",completedAt:Date.now()},G})},x=B.on("*",Q=>{const I=Q.payload;switch(Q.type){case"message.created":{const N=typeof I?.role=="string"?I.role:null,G=typeof I?.id=="string"?I.id:null;if(N==="assistant"&&G&&(n.current=G),G&&N){const J=typeof I?.agent=="string"?I.agent:"",q=typeof I?.provider=="string"?I.provider:"",j=typeof I?.model=="string"?I.model:"",R=typeof I?.content=="string"?I.content:null,C=N==="user"&&R?[{id:`${G}-text`,messageId:G,index:0,stepIndex:null,type:"text",content:JSON.stringify({text:R}),contentJson:{text:R},agent:J,provider:q,model:j,startedAt:Date.now(),completedAt:Date.now(),toolName:null,toolCallId:null,toolDurationMs:null}]:[];t.setQueryData(["messages",A],h=>{if(!h||h.some(Z=>Z.id===G))return h;const v={id:G,sessionId:A,role:N,status:N==="user"?"complete":"pending",agent:J,provider:q,model:j,createdAt:Date.now(),completedAt:null,latencyMs:null,promptTokens:null,completionTokens:null,totalTokens:null,error:null,parts:C},S=[...h,v];return S.sort((Z,eA)=>Z.createdAt-eA.createdAt),S})}break}case"message.part.delta":{K(I);break}case"reasoning.delta":{L(I);break}case"message.completed":{const N=typeof I?.id=="string"?I.id:null;N&&n.current===N&&(n.current=null),H(I),T(N),t.invalidateQueries({queryKey:["messages",A]}),t.invalidateQueries({queryKey:Qo});break}case"tool.delta":{const N=typeof I?.channel=="string"?I.channel:null,G=N==="output"?F(I):D(I);N==="input"||N==null&&G?G?$(I,G):W(I):N==="output"&&G&&X(I,G);break}case"tool.call":{W(I);break}case"tool.result":{U(I);break}case"tool.approval.required":{const N=typeof I?.callId=="string"?I.callId:null,G=typeof I?.toolName=="string"?I.toolName:null,J=typeof I?.messageId=="string"?I.messageId:null,q=I?.args;N&&G&&J&&r({callId:N,toolName:G,args:q,messageId:J,createdAt:Date.now()});break}case"tool.approval.resolved":{const N=typeof I?.callId=="string"?I.callId:null;N&&i(N);break}case"tool.approval.updated":{const N=typeof I?.callId=="string"?I.callId:null,G=I?.args;N&&a(N,G);break}case"error":{O(I);const N=typeof I?.messageId=="string"?I.messageId:null;N&&T(N),t.invalidateQueries({queryKey:["messages",A]});break}case"message.updated":{const N=typeof I?.id=="string"?I.id:null,G=typeof I?.status=="string"?I.status:null;N&&G&&t.setQueryData(["messages",A],J=>{if(!J)return J;const q=J.findIndex(R=>R.id===N);if(q===-1)return J;const j=[...J];return j[q]={...j[q],status:G},j});break}case"queue.updated":{const N={currentMessageId:I?.currentMessageId,queuedMessages:I?.queuedMessages??[],queueLength:I?.queueLength??0};t.setQueryData(["queueState",A],N);break}}if(Q.type==="finish-step"){const N=Date.now();N-l>=2e3&&(l=N,t.invalidateQueries({queryKey:Qo}))}});return()=>{x(),B.disconnect()}},[A,t,r,i,e,g,a])}function C1(A){const{pendingApprovals:e,removePendingApproval:t}=Sr(),s=e,n=m.useCallback(async a=>{if(A)try{await mA.approveToolCall(A,a,!0),t(a)}catch(g){console.error("Failed to approve tool call:",g)}},[A,t]),r=m.useCallback(async a=>{if(A)try{await mA.approveToolCall(A,a,!1),t(a)}catch(g){console.error("Failed to reject tool call:",g)}},[A,t]),i=m.useCallback(async()=>{if(A)try{await Promise.all(s.map(a=>mA.approveToolCall(A,a.callId,!0)));for(const a of s)t(a.callId)}catch(a){console.error("Failed to approve all tool calls:",a)}},[A,s,t]);m.useEffect(()=>{if(!A||s.length===0)return;const a=g=>{if(g.target instanceof HTMLInputElement||g.target instanceof HTMLTextAreaElement||g.target?.isContentEditable)return;const l=s[0];g.key==="y"||g.key==="Y"?(g.preventDefault(),n(l.callId)):g.key==="n"||g.key==="N"||g.key==="Escape"?(g.preventDefault(),r(l.callId)):(g.key==="a"||g.key==="A")&&(g.preventDefault(),i())};return window.addEventListener("keydown",a),()=>window.removeEventListener("keydown",a)},[A,s,n,r,i])}const u1=({height:A=22})=>{const e=Math.round(A*2.4686468646864688);return o.jsx("svg",{width:e,height:A,viewBox:"0 0 748 303",fill:"currentColor",className:"text-foreground","aria-label":"otto",role:"img",children:o.jsx("path",{d:"M192.877 257.682C192.877 263.287 191.783 268.551 189.596 273.473C187.545 278.395 184.674 282.701 180.982 286.393C177.428 289.947 173.189 292.818 168.268 295.006C163.482 297.057 158.287 298.082 152.682 298.082H44.1953C38.7266 298.082 33.5312 297.057 28.6094 295.006C23.6875 292.818 19.3809 289.947 15.6895 286.393C12.1348 282.701 9.26367 278.395 7.07617 273.473C5.02539 268.551 4 263.287 4 257.682V120.074C4 114.469 5.02539 109.205 7.07617 104.283C9.26367 99.3613 12.1348 95.123 15.6895 91.5684C19.3809 87.877 23.6875 85.0059 28.6094 82.9551C33.5312 80.7676 38.7266 79.6738 44.1953 79.6738H152.682C158.287 79.6738 163.482 80.7676 168.268 82.9551C173.189 85.0059 177.428 87.877 180.982 91.5684C184.674 95.123 187.545 99.3613 189.596 104.283C191.783 109.205 192.877 114.469 192.877 120.074V257.682ZM44.1953 120.074V257.682H152.682V120.074H44.1953ZM331.715 4V298.082H289.674V46.041H239.225V4H331.715ZM478.961 4V298.082H436.92V46.041H386.471V4H478.961ZM743.717 257.682C743.717 263.287 742.623 268.551 740.436 273.473C738.385 278.395 735.514 282.701 731.822 286.393C728.268 289.947 724.029 292.818 719.107 295.006C714.322 297.057 709.127 298.082 703.521 298.082H595.035C589.566 298.082 584.371 297.057 579.449 295.006C574.527 292.818 570.221 289.947 566.529 286.393C562.975 282.701 560.104 278.395 557.916 273.473C555.865 268.551 554.84 263.287 554.84 257.682V120.074C554.84 114.469 555.865 109.205 557.916 104.283C560.104 99.3613 562.975 95.123 566.529 91.5684C570.221 87.877 574.527 85.0059 579.449 82.9551C584.371 80.7676 589.566 79.6738 595.035 79.6738H703.521C709.127 79.6738 714.322 80.7676 719.107 82.9551C724.029 85.0059 728.268 87.877 731.822 91.5684C735.514 95.123 738.385 99.3613 740.436 104.283C742.623 109.205 743.717 114.469 743.717 120.074V257.682ZM595.035 120.074V257.682H703.521V120.074H595.035Z"})})},I1={sm:{ring:48,icon:20,iconSize:16},md:{ring:72,icon:32,iconSize:24},lg:{ring:96,icon:40,iconSize:32}},Hi=m.memo(function({status:e,label:t,sublabel:s,size:n="md"}){const{ring:r,icon:i,iconSize:a}=I1[n],g={position:"relative",display:"flex",alignItems:"center",justifyContent:"center",width:r,height:r},l={content:'""',position:"absolute",inset:0,borderRadius:"50%"},B=()=>e==="success"?"rgb(34, 197, 94)":e==="error"?"rgb(239, 68, 68)":"currentColor";return o.jsxs("div",{className:"flex flex-col items-center justify-center gap-5",children:[o.jsxs("div",{style:g,children:[o.jsx("div",{style:{...l,border:"2px solid hsl(var(--muted))"}}),e==="loading"&&o.jsx("div",{className:"animate-spin",style:{...l,border:"2px solid transparent",borderTopColor:"hsl(var(--foreground))",animation:"spin 1s cubic-bezier(0.4, 0, 0.2, 1) infinite"}}),e==="success"&&o.jsx("div",{style:{...l,border:`2px solid ${B()}`,opacity:.3}}),e==="error"&&o.jsx("div",{style:{...l,border:`2px solid ${B()}`,opacity:.3}}),o.jsxs("div",{style:{position:"relative",zIndex:1},children:[e==="loading"&&o.jsx(u1,{height:Math.round(i*.65)}),e==="success"&&o.jsx(TQ,{className:"text-green-500",style:{width:a,height:a}}),e==="error"&&o.jsx(Ta,{className:"text-red-500",style:{width:a,height:a}})]})]}),t&&o.jsxs("div",{className:"flex flex-col items-center gap-1",children:[o.jsx("span",{className:"text-sm font-medium text-foreground",children:t}),s&&o.jsx("span",{className:"text-xs text-muted-foreground",children:s})]})]})}),d1=[10,25,50,100],Pi=5,Wi=2,Qs=500,h1=5e3,p1="https://share.ottocode.io/checkout/success";function f1(){return new Promise((A,e)=>{if(window.Razorpay){A();return}const t=document.createElement("script");t.src="https://checkout.razorpay.com/v1/checkout.js",t.onload=()=>A(),t.onerror=()=>e(new Error("Failed to load Razorpay")),document.head.appendChild(t)})}function m1({className:A="w-5 h-5"}){return o.jsxs("svg",{className:A,viewBox:"0 0 24 24",fill:"currentColor",xmlns:"http://www.w3.org/2000/svg",children:[o.jsx("title",{children:"Polar"}),o.jsx("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M5.08734 21.1119C10.2671 24.6182 17.3085 23.2616 20.8148 18.0818C24.3211 12.9021 22.9645 5.86065 17.7848 2.35436C12.605 -1.15192 5.56353 0.204698 2.05724 5.38446C-1.44904 10.5642 -0.0924184 17.6057 5.08734 21.1119ZM6.58958 21.2045C11.3278 23.6286 17.3384 21.3531 20.0147 16.1221C22.6909 10.891 21.0194 4.68533 16.2811 2.2612C11.543 -0.162919 5.53235 2.11252 2.8561 7.34355C0.179842 12.5745 1.85138 18.7803 6.58958 21.2045Z"}),o.jsx("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M7.93988 22.4416C12.2169 23.8337 17.2485 20.1561 19.1782 14.2276C21.1078 8.29898 19.2047 2.3644 14.9276 0.9723C10.6505 -0.419794 5.61905 3.25775 3.68942 9.18633C1.7598 15.1149 3.6628 21.0495 7.93988 22.4416ZM9.24825 21.991C12.868 22.7631 16.7819 18.796 17.9904 13.1305C19.1988 7.46494 17.244 2.24622 13.6243 1.47416C10.0046 0.702105 6.09064 4.66908 4.88222 10.3347C3.67381 16.0002 5.62854 21.2189 9.24825 21.991Z"}),o.jsx("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M10.2406 22.9252C13.1024 23.2308 15.9585 18.4574 16.6199 12.2635C17.2812 6.06969 15.4974 0.800854 12.6356 0.495275C9.77386 0.189695 6.91772 4.96309 6.25634 11.157C5.59498 17.3508 7.37878 22.6196 10.2406 22.9252ZM11.5798 21.04C13.6508 21.0073 15.264 16.8146 15.1828 11.6754C15.1017 6.53608 13.3568 2.39642 11.2858 2.42914C9.21463 2.46187 7.60148 6.65457 7.68268 11.7939C7.76387 16.9331 9.50864 21.0727 11.5798 21.04Z"})]})}function w1({className:A="w-5 h-5"}){return o.jsxs("svg",{className:A,viewBox:"0 0 24 24",fill:"currentColor",xmlns:"http://www.w3.org/2000/svg",children:[o.jsx("title",{children:"Razorpay"}),o.jsx("path",{d:"M22.436 0l-11.91 7.773-1.174 4.276 6.625-4.297L11.65 24h4.391l6.395-24zM14.26 10.098L3.389 17.166 1.564 24h9.008l3.688-13.902Z"})]})}const Kg=m.memo(function(){const e=Ne(MA=>MA.isTopupModalOpen),t=Ne(MA=>MA.closeTopupModal),s=Ne(MA=>MA.balance),n=Ne(MA=>MA.setBalance),r=Ne(MA=>MA.usdcBalance),i=Ne(MA=>MA.subscription),[a,g]=m.useState("amount"),[l,B]=m.useState("polar"),[u,E]=m.useState(25),[c,d]=m.useState(""),[f,p]=m.useState(!1),[D,F]=m.useState(null),[k,L]=m.useState(null),[K,W]=m.useState(!1),[$,X]=m.useState(!1),[U,O]=m.useState(null),[T,H]=m.useState(!1),[x,Q]=m.useState(null),[I,N]=m.useState(0),[G,J]=m.useState(!1),q=m.useRef(null),j=f?parseFloat(c)||0:u,R=!!i?.active,C=l==="razorpay"?Wi:Pi,h=m.useCallback(async MA=>{if(MA<C||MA>Qs){F(null),L(null);return}W(!0);try{if(l==="polar"){const ZA=await mA.getPolarTopupEstimate(MA);F(ZA),L(null)}else{const ZA=await mA.getRazorpayTopupEstimate(MA);L(ZA),F(null)}}catch{F(null),L(null)}finally{W(!1)}},[l,C]);m.useEffect(()=>{if(e&&j>=C&&a==="amount"){const MA=setTimeout(()=>h(j),300);return()=>clearTimeout(MA)}},[e,j,h,a,C]);const v=m.useCallback(()=>{q.current&&(clearInterval(q.current),q.current=null),H(!1)},[]);m.useEffect(()=>{e||(v(),g("amount"),O(null),Q(null),N(0))},[e,v]),m.useEffect(()=>()=>v(),[v]);const S=m.useCallback(MA=>{if(q.current)return;H(!0),N(0);const ZA=async()=>{try{const fe=await mA.getPolarTopupStatus(MA);if(N(He=>He+1),fe?.confirmed){v(),Q(fe.amountUsd),localStorage.removeItem("pendingPolarCheckout");const He=await mA.getOttoRouterBalance();He?.balance!==void 0&&n(He.balance),g("confirmed")}}catch{N(fe=>fe+1)}};ZA(),q.current=setInterval(ZA,h1)},[v,n]),Z=MA=>{E(MA),p(!1),d("")},eA=MA=>{d(MA),p(!0)},rA=m.useCallback(MA=>{window.self!==window.top?window.parent.postMessage({type:"otto-open-url",url:MA},"*"):window.open(MA,"_blank")},[]),sA=async()=>{if(j<Pi||j>Qs){ae.error(`Amount must be between $${Pi} and $${Qs}`);return}X(!0);try{const MA=await mA.createPolarCheckout(j,p1);if(MA.checkoutUrl&&MA.checkoutId){const ZA={url:MA.checkoutUrl,checkoutId:MA.checkoutId,creditAmount:MA.creditAmount,chargeAmount:MA.chargeAmount};O(ZA),localStorage.setItem("pendingPolarCheckout",MA.checkoutId),g("checkout"),rA(MA.checkoutUrl),S(MA.checkoutId)}}catch(MA){ae.error(MA instanceof Error?MA.message:"Failed to create checkout")}finally{X(!1)}},bA=async()=>{if(j<Wi||j>Qs){ae.error(`Amount must be between $${Wi} and $${Qs}`);return}X(!0);try{await f1();const MA=await mA.createRazorpayOrder(j);g("razorpay-processing");const ZA=new window.Razorpay({key:MA.keyId,amount:MA.amount,currency:MA.currency,name:"Setu",description:`Top up $${MA.creditAmountUsd.toFixed(2)} credits`,order_id:MA.orderId,handler:async fe=>{try{const He=await mA.verifyRazorpayPayment({razorpay_order_id:fe.razorpay_order_id,razorpay_payment_id:fe.razorpay_payment_id,razorpay_signature:fe.razorpay_signature});if(He.success){Q(He.credited);const me=await mA.getOttoRouterBalance();me?.balance!==void 0&&n(me.balance),g("confirmed")}}catch(He){ae.error(He instanceof Error?He.message:"Payment verification failed"),g("amount")}},modal:{ondismiss:()=>{g("amount")}},theme:{color:"#7c3aed"}});ZA.on("payment.failed",()=>{ae.error("Payment failed. Please try again."),g("amount")}),ZA.open()}catch(MA){ae.error(MA instanceof Error?MA.message:"Failed to create order"),g("amount")}finally{X(!1)}},LA=()=>{l==="polar"?sA():bA()},QA=async()=>{if(U){J(!0);try{const MA=await mA.getPolarTopupStatus(U.checkoutId);if(MA?.confirmed){v(),Q(MA.amountUsd),localStorage.removeItem("pendingPolarCheckout");const ZA=await mA.getOttoRouterBalance();ZA?.balance!==void 0&&n(ZA.balance),g("confirmed")}else ae.error("Payment not confirmed yet. Keep waiting or try again.")}catch(MA){console.error("[OttoRouterTopupModal] Check failed:",MA),ae.error("Failed to check payment status")}finally{J(!1)}}},qA=()=>{t()},PA=j>=C&&j<=Qs,Ce=a==="confirmed"?"Payment Confirmed":a==="checkout"?"Waiting for Payment":a==="razorpay-processing"?"Processing Payment":"Add Credits";return o.jsx(So,{isOpen:e,onClose:t,title:Ce,maxWidth:"md",children:o.jsxs("div",{className:"space-y-6",children:[a==="confirmed"&&o.jsxs(o.Fragment,{children:[o.jsx("div",{className:"py-4",children:o.jsx(Hi,{status:"success",label:`+$${x?.toFixed(2)??U?.creditAmount.toFixed(2)}`,sublabel:"Credits added to your balance"})}),o.jsx("button",{type:"button",onClick:qA,className:"w-full h-12 bg-foreground text-background rounded-lg font-medium hover:bg-foreground/90 transition-colors flex items-center justify-center gap-2",children:"Done"})]}),a==="razorpay-processing"&&o.jsx("div",{className:"py-8",children:o.jsx(Hi,{status:"loading",label:"Complete payment in the Razorpay window",sublabel:"Do not close this page"})}),a==="checkout"&&U&&o.jsxs(o.Fragment,{children:[o.jsxs("div",{className:"py-4",children:[o.jsx(Hi,{status:"loading",label:"Complete your payment",sublabel:"A checkout window has been opened"}),o.jsxs("div",{className:"flex items-center justify-center gap-2 mt-4 px-3 py-1.5 bg-muted/40 rounded-full w-fit mx-auto",children:[o.jsx("div",{className:"w-1.5 h-1.5 rounded-full bg-blue-500 animate-pulse"}),o.jsx("span",{className:"text-xs text-muted-foreground font-mono",children:T?`Checking... (${I})`:"Paused"})]})]}),o.jsxs("div",{className:"space-y-2",children:[o.jsxs("button",{type:"button",onClick:QA,disabled:G,className:"w-full h-12 bg-foreground text-background rounded-lg font-medium hover:bg-foreground/90 transition-colors disabled:opacity-50 flex items-center justify-center gap-2",children:[G?o.jsx(Je,{className:"w-4 h-4 animate-spin"}):o.jsx(Zt,{className:"w-4 h-4"}),G?"Checking...":"Check Now"]}),o.jsxs("button",{type:"button",onClick:()=>rA(U.url),className:"w-full h-11 bg-transparent border border-border text-foreground rounded-lg font-medium hover:bg-muted/50 transition-colors flex items-center justify-center gap-2",children:[o.jsx(Gt,{className:"w-4 h-4"}),"Open Checkout Again"]})]}),o.jsx("p",{className:"text-xs text-muted-foreground text-center",children:"Status checks automatically every 5 seconds. You can close this and it will keep checking."})]}),a==="amount"&&o.jsxs(o.Fragment,{children:[R&&o.jsx("div",{className:"text-xs text-muted-foreground bg-muted/30 border border-border rounded-lg px-3 py-2",children:"You are on GO. Top-ups add extra balance for additional usage."}),o.jsxs("div",{className:"flex items-center justify-between py-3 px-4 bg-muted/40 rounded-lg",children:[o.jsx("span",{className:"text-sm text-muted-foreground",children:"Current Balance"}),o.jsxs("span",{className:"text-lg font-mono font-semibold",children:["$",s?.toFixed(2)??"0.00"]})]}),o.jsxs("div",{className:"flex rounded-lg border border-border overflow-hidden",children:[o.jsxs("button",{type:"button",onClick:()=>B("polar"),className:`flex-1 flex items-center justify-center gap-2 py-2.5 text-sm font-medium transition-colors ${l==="polar"?"bg-foreground text-background":"bg-transparent text-muted-foreground hover:text-foreground"}`,children:[o.jsx(m1,{className:"w-3.5 h-3.5"}),"Polar"]}),o.jsxs("button",{type:"button",onClick:()=>B("razorpay"),className:`flex-1 flex items-center justify-center gap-2 py-2.5 text-sm font-medium transition-colors ${l==="razorpay"?"bg-foreground text-background":"bg-transparent text-muted-foreground hover:text-foreground"}`,children:[o.jsx(w1,{className:"w-3.5 h-3.5"}),"Razorpay"]})]}),o.jsxs("div",{className:"space-y-4",children:[o.jsx("div",{className:"grid grid-cols-4 gap-2",children:d1.map(MA=>o.jsxs("button",{type:"button",onClick:()=>Z(MA),className:`h-12 text-base font-mono rounded-lg border-2 transition-all ${!f&&u===MA?"bg-foreground text-background border-foreground":"bg-transparent border-border text-foreground hover:border-foreground/40"}`,children:["$",MA]},MA))}),o.jsxs("div",{className:"relative",children:[o.jsx("span",{className:"absolute left-4 top-1/2 -translate-y-1/2 text-muted-foreground text-lg",children:"$"}),o.jsx("input",{type:"number",placeholder:"Custom",value:c,onChange:MA=>eA(MA.target.value),onFocus:()=>p(!0),min:C,max:Qs,step:"1",className:`w-full h-12 pl-8 pr-4 text-base font-mono bg-transparent border-2 rounded-lg outline-none transition-all ${f?"border-foreground":"border-border focus:border-foreground/40"}`})]})]}),o.jsx("div",{className:`grid transition-all duration-200 ease-out ${PA?"grid-rows-[1fr] opacity-100":"grid-rows-[0fr] opacity-0"}`,children:o.jsx("div",{className:"overflow-hidden",children:o.jsx("div",{className:"space-y-3 py-4 border-t border-border",children:K?o.jsxs(o.Fragment,{children:[o.jsxs("div",{className:"flex justify-between items-center",children:[o.jsx("span",{className:"text-sm text-muted-foreground",children:"Credits"}),o.jsx("div",{className:"h-6 w-16 bg-muted/60 rounded animate-pulse"})]}),o.jsxs("div",{className:"flex justify-between items-center",children:[o.jsx("span",{className:"text-sm text-muted-foreground",children:"Fee"}),o.jsx("div",{className:"h-4 w-12 bg-muted/60 rounded animate-pulse"})]}),o.jsxs("div",{className:"flex justify-between items-center pt-3 border-t border-border",children:[o.jsx("span",{className:"font-medium",children:"Total"}),o.jsx("div",{className:"h-7 w-20 bg-muted/60 rounded animate-pulse"})]})]}):l==="polar"&&D?o.jsxs(o.Fragment,{children:[o.jsxs("div",{className:"flex justify-between items-center",children:[o.jsx("span",{className:"text-sm text-muted-foreground",children:"Credits"}),o.jsxs("span",{className:"font-mono text-lg",children:["$",D.creditAmount.toFixed(2)]})]}),o.jsxs("div",{className:"flex justify-between items-center",children:[o.jsx("span",{className:"text-sm text-muted-foreground",children:"Fee"}),o.jsxs("span",{className:"font-mono text-sm text-muted-foreground",children:["+$",D.feeAmount.toFixed(2)]})]}),o.jsxs("div",{className:"flex justify-between items-center pt-3 border-t border-border",children:[o.jsx("span",{className:"font-medium",children:"Total"}),o.jsxs("span",{className:"font-mono text-xl font-semibold",children:["$",D.chargeAmount.toFixed(2)]})]})]}):l==="razorpay"&&k?o.jsxs(o.Fragment,{children:[o.jsxs("div",{className:"flex justify-between items-center",children:[o.jsx("span",{className:"text-sm text-muted-foreground",children:"Credits"}),o.jsxs("span",{className:"font-mono text-lg",children:["$",k.creditAmountUsd.toFixed(2)]})]}),o.jsxs("div",{className:"flex justify-between items-center",children:[o.jsx("span",{className:"text-sm text-muted-foreground",children:"Fee"}),o.jsxs("span",{className:"font-mono text-sm text-muted-foreground",children:["+₹",k.feeAmountInr.toFixed(2)]})]}),o.jsxs("div",{className:"flex justify-between items-center pt-3 border-t border-border",children:[o.jsx("span",{className:"font-medium",children:"Total"}),o.jsxs("span",{className:"font-mono text-xl font-semibold",children:["₹",k.chargeAmountInr.toFixed(2)]})]}),o.jsxs("p",{className:"text-[10px] text-muted-foreground text-right",children:["1 USD ≈ ",k.exchangeRate," INR"]})]}):null})})}),o.jsxs("button",{type:"button",onClick:LA,disabled:!PA||$,className:"w-full h-12 bg-foreground text-background rounded-lg font-medium hover:bg-foreground/90 transition-colors disabled:opacity-50 disabled:cursor-not-allowed flex items-center justify-center gap-2",children:[$?o.jsx(Je,{className:"w-4 h-4 animate-spin"}):o.jsx(Kn,{className:"w-4 h-4"}),l==="polar"?"Pay with Card":"Pay with Razorpay"]}),o.jsxs("div",{className:"relative pt-6",children:[o.jsxs("div",{className:"absolute inset-x-0 top-0 flex items-center",children:[o.jsx("div",{className:"flex-1 h-px bg-border"}),o.jsx("span",{className:"px-3 text-xs text-muted-foreground",children:"OR"}),o.jsx("div",{className:"flex-1 h-px bg-border"})]}),o.jsxs("div",{className:"flex items-start gap-3 p-4 bg-muted/30 rounded-lg",children:[o.jsx(Pa,{className:"w-5 h-5 text-muted-foreground mt-0.5"}),o.jsxs("div",{className:"flex-1 min-w-0",children:[o.jsxs("div",{className:"flex items-center justify-between",children:[o.jsx("span",{className:"font-medium text-sm",children:"Pay with USDC"}),r!==null&&o.jsxs("span",{className:"text-xs font-mono text-muted-foreground",children:[r.toFixed(2)," USDC"]})]}),o.jsx("p",{className:"text-xs text-muted-foreground mt-1",children:"Send USDC to your Setu wallet to increase balance."})]})]})]})]})]})})}),x1=m.memo(function({sessionId:e,onSelectSession:t}){const{data:s=[],isLoading:n}=ua(e),{data:r=[]}=zn(),{preferences:i}=$s();ME(e),C1(e);const a=m.useMemo(()=>r.find(l=>l.id===e),[r,e]),g=m.useMemo(()=>s.some(l=>l.role==="assistant"&&l.status==="pending"),[s]);return n?o.jsx("div",{className:"flex-1 flex items-center justify-center text-muted-foreground",children:"Loading messages..."}):o.jsxs(o.Fragment,{children:[o.jsx(E1,{messages:s,sessionId:e,session:a,isGenerating:g,compact:i.compactThread,onSelectSession:t}),o.jsx(Kg,{})]})}),fQ=1440*60*1e3;function D1(A){const e=Date.now()-A,t=Math.floor(e/6e4);if(t<1)return"just now";if(t<60)return`${t}m ago`;const s=Math.floor(t/60);if(s<24)return`${s}h ago`;const n=Math.floor(s/24);if(n<7)return`${n}d ago`;const r=Math.floor(n/7);if(r<5)return`${r}w ago`;const i=Math.floor(n/30);return i<12?`${i}mo ago`:`${Math.floor(n/365)}y ago`}function y1(A){const e=new Date,t=new Date(e.getFullYear(),e.getMonth(),e.getDate()).getTime(),s=t-fQ,n=t-fQ*7;return A>=t?"Today":A>=s?"Yesterday":A>=n?"Earlier":"Older"}const N1=m.memo(function({session:e,isActive:t,onClick:s}){const n=e.title||`Session ${e.id.slice(0,8)}`,r=e.isRunning??!1,i=e.lastActiveAt??e.createdAt,a=D1(i);return o.jsx("button",{type:"button",onClick:s,className:`w-full text-left px-3 py-2.5 rounded-lg transition-colors duration-150 ${t?"bg-sidebar-accent text-sidebar-foreground":"text-sidebar-foreground hover:bg-sidebar-accent/50"}`,title:`${n} — ${a}`,children:o.jsxs("span",{className:"block min-w-0",children:[o.jsx("span",{className:`block truncate text-[13px] leading-5 ${t?"font-medium":"font-normal"}`,children:n}),o.jsxs("span",{className:"mt-0.5 flex items-center justify-between gap-3 text-[11px] leading-4 text-sidebar-muted-foreground",children:[o.jsx("span",{className:"truncate",children:a}),o.jsxs("span",{className:"relative flex h-2 w-2 shrink-0",children:[r&&o.jsx("span",{className:"absolute inline-flex h-full w-full animate-ping rounded-full bg-emerald-400 opacity-75"}),o.jsx("span",{className:`relative inline-flex h-2 w-2 rounded-full ${r?"bg-emerald-500":"bg-sidebar-muted-foreground/35"}`})]})]})]})})}),Lg=dt(A=>({currentFocus:null,sessionIndex:0,gitFileIndex:0,setFocus:e=>A({currentFocus:e}),setSessionIndex:e=>A({sessionIndex:e}),setGitFileIndex:e=>A({gitFileIndex:e}),resetGitFileIndex:()=>A({gitFileIndex:0}),resetSessionIndex:()=>A({sessionIndex:0})})),k1=m.memo(function({activeSessionId:e,onSelectSession:t}){const{data:s=[],isLoading:n,hasNextPage:r,fetchNextPage:i,isFetchingNextPage:a}=zn(),{currentFocus:g,sessionIndex:l}=Lg(),B=m.useRef(new Map),u=m.useRef(null),E=m.useRef(void 0),c=m.useCallback(F=>{E.current=F,t(F)},[t]),d=m.useMemo(()=>s.map((F,k)=>({id:F.id,index:k,title:F.title,agent:F.agent,createdAt:F.createdAt,lastActiveAt:F.lastActiveAt,activityAt:F.lastActiveAt??F.createdAt})),[s]),f=m.useMemo(()=>new Map(s.map(F=>[F.id,F])),[s]),p=m.useMemo(()=>{const F=new Map;for(const k of d){const L=y1(k.activityAt),K=F.get(L)??[];K.push(k),F.set(L,K)}return Array.from(F.entries()).map(([k,L])=>({label:k,sessions:L}))},[d]);if(m.useEffect(()=>{if(g==="sessions"){const F=d[l];F&&B.current.get(F.id)?.scrollIntoView({block:"nearest",behavior:"smooth"})}},[g,l,d]),m.useEffect(()=>{if(!e||E.current===e||s.length===0)return;const F=s.findIndex(k=>k.id===e);if(F===-1&&r){i();return}F!==-1&&(E.current=e,requestAnimationFrame(()=>{B.current.get(e)?.scrollIntoView({block:"nearest",behavior:"smooth"})}))},[e,s,r,i]),m.useEffect(()=>{const F=u.current;if(!F)return;const k=()=>{const{scrollTop:L,scrollHeight:K,clientHeight:W}=F;K-L-W<100&&r&&!a&&i()};return F.addEventListener("scroll",k,{passive:!0}),()=>F.removeEventListener("scroll",k)},[r,a,i]),n)return o.jsxs("div",{className:"flex flex-col gap-2 px-3 py-2",children:[o.jsx("div",{className:"h-8 rounded-md bg-sidebar-accent/50 animate-pulse"}),o.jsx("div",{className:"h-8 rounded-md bg-sidebar-accent/50 animate-pulse"}),o.jsx("div",{className:"h-8 rounded-md bg-sidebar-accent/50 animate-pulse"}),o.jsx("div",{className:"h-8 rounded-md bg-sidebar-accent/50 animate-pulse"})]});if(d.length===0)return o.jsx("div",{className:"px-4 py-8 text-center text-sm text-sidebar-muted-foreground",children:"No sessions yet. Create one to get started."});const D=F=>{const k=f.get(F.id);if(!k)return null;const L=g==="sessions"&&l===F.index;return o.jsx("div",{ref:K=>{K?B.current.set(F.id,K):B.current.delete(F.id)},className:L?"ring-1 ring-sidebar-ring/40 rounded-md":"",children:o.jsx(N1,{session:k,isActive:F.id===e,onClick:()=>c(F.id)})},F.id)};return o.jsxs("div",{ref:u,className:"flex flex-col h-full overflow-y-auto scrollbar-hide",children:[o.jsx("div",{className:"h-12 shrink-0","aria-hidden":"true"}),p.length>0&&o.jsx("div",{className:"pt-3 pb-1",children:o.jsx("div",{className:"space-y-3",children:p.map(F=>o.jsxs("div",{children:[o.jsx("h4",{className:"sticky top-12 z-10 px-3 py-2 mb-1 text-[11px] font-medium uppercase tracking-[0.18em] text-sidebar-muted-foreground/80 bg-sidebar/95 backdrop-blur supports-[backdrop-filter]:bg-sidebar/75 border-b border-sidebar-border/60",children:F.label}),o.jsx("div",{className:"flex flex-col gap-1 px-3",children:F.sessions.map(k=>D(k))})]},F.label))})}),a&&o.jsx("div",{className:"flex justify-center py-3",children:o.jsx(Je,{className:"h-4 w-4 animate-spin text-sidebar-muted-foreground"})})]})}),M1=new Set(["png","jpg","jpeg","gif","svg","webp","ico","bmp","avif"]);function b1(A){const e=A.split(".").pop()?.toLowerCase()??"";return M1.has(e)}const F1={js:"javascript",jsx:"jsx",ts:"typescript",tsx:"tsx",py:"python",rb:"ruby",go:"go",rs:"rust",java:"java",c:"c",cpp:"cpp",h:"c",hpp:"cpp",cs:"csharp",php:"php",sh:"bash",bash:"bash",zsh:"bash",sql:"sql",json:"json",yaml:"yaml",yml:"yaml",xml:"xml",html:"html",css:"css",scss:"scss",md:"markdown",txt:"plaintext",svelte:"svelte"};function G1(A){const e=A.split(".").pop()?.toLowerCase()??"";return e?F1[e]??"plaintext":"plaintext"}function v1(A){const e=A.split("/");return e[e.length-1]}function S1({diff:A}){const e=document?.documentElement.classList.contains("dark")?Io:ho,t=A.language&&A.language.trim().length>0?A.language:G1(A.file),s=v1(A.file);if(A.isNewFile&&A.content)return o.jsxs("div",{className:"flex flex-col h-full bg-transparent",children:[o.jsxs("div",{className:"px-3 py-1.5 bg-sidebar-accent/30 border-b border-sidebar-border/60 flex items-center justify-between min-h-8",children:[o.jsx("span",{className:"font-mono text-[12px] text-foreground truncate",title:A.file,children:s}),o.jsxs("div",{className:"flex items-center gap-2 text-[10px] flex-shrink-0",children:[o.jsxs("span",{className:"text-green-600 dark:text-green-500",children:["+",A.insertions]}),o.jsx("span",{className:"text-muted-foreground",children:t})]})]}),o.jsx("div",{className:"px-4 py-3 bg-green-500/10 border-b border-green-500/20",children:o.jsxs("p",{className:"text-[12px] text-green-600 dark:text-green-400 font-medium",children:["New file: ",A.insertions," lines"]})}),o.jsx("div",{className:"flex-1 overflow-auto",children:o.jsx("div",{className:"code-with-line-numbers",children:o.jsx(Yt,{language:t,style:e,wrapLines:!0,wrapLongLines:!0,lineProps:()=>({className:"code-line"}),customStyle:{margin:0,padding:"1rem",background:"transparent"},codeTagProps:{style:{flex:1}},children:A.content})})})]});if(A.isBinary){const B=b1(A.file)?wA.buildUrl({baseURL:LB(),url:"/v1/files/raw",query:{path:A.file}}):null;return o.jsxs("div",{className:"flex flex-col h-full bg-transparent",children:[o.jsxs("div",{className:"px-3 py-1.5 bg-sidebar-accent/30 border-b border-sidebar-border/60 flex items-center justify-between min-h-8",children:[o.jsx("span",{className:"font-mono text-[12px] text-foreground truncate",title:A.file,children:s}),o.jsx("div",{className:"flex items-center gap-2 text-[10px] flex-shrink-0",children:o.jsx("span",{className:"text-muted-foreground",children:"Binary file"})})]}),B?o.jsx("div",{className:"flex-1 flex items-center justify-center p-4 overflow-auto",children:o.jsx("img",{src:B,alt:s,className:"max-w-full max-h-[60vh] object-contain rounded border border-border"})}):o.jsx("div",{className:"flex-1 flex items-center justify-center",children:o.jsx("div",{className:"p-4 text-center",children:o.jsx("p",{className:"text-[12px] text-muted-foreground",children:"Binary file - cannot display diff"})})})]})}const n=A.diff.split(`
|
|
126
|
+
`),r=[];let i=0,a=0;for(const l of n)if(l.startsWith("@@")){const B=l.match(/@@ -(\d+)(?:,\d+)? \+(\d+)(?:,\d+)? @@/);B&&(i=parseInt(B[1],10),a=parseInt(B[2],10)),r.push({oldLineNumber:null,newLineNumber:null,content:l,codeContent:l,type:"hunk"})}else l.startsWith("diff")||l.startsWith("index")||l.startsWith("---")||l.startsWith("+++")?r.push({oldLineNumber:null,newLineNumber:null,content:l,codeContent:l,type:"meta"}):l.startsWith("+")?(r.push({oldLineNumber:null,newLineNumber:a,content:l,codeContent:l.slice(1),type:"add"}),a++):l.startsWith("-")?(r.push({oldLineNumber:i,newLineNumber:null,content:l,codeContent:l.slice(1),type:"delete"}),i++):(r.push({oldLineNumber:i,newLineNumber:a,content:l,codeContent:l,type:"context"}),i++,a++);const g=(l,B)=>{let u="flex hover:bg-muted/20",E="flex-shrink-0 w-20 px-2 py-0.5 text-xs font-mono select-none border-r border-border",c="flex-1 px-4 py-0.5 font-mono text-xs whitespace-pre";l.type==="hunk"?(u+=" bg-blue-500/10",E+=" text-blue-600 dark:text-blue-400",c+=" text-blue-600 dark:text-blue-400 font-semibold"):l.type==="add"?(u+=" bg-green-500/10",E+=" text-green-700 dark:text-green-400",c+=" text-green-700 dark:text-green-400"):l.type==="delete"?(u+=" bg-red-500/10",E+=" text-red-600 dark:text-red-400",c+=" text-red-600 dark:text-red-400"):l.type==="meta"?(c+=" text-muted-foreground",E+=" text-muted-foreground"):(c+=" text-foreground/80",E+=" text-muted-foreground");const d=l.oldLineNumber!==null?l.oldLineNumber.toString():"",f=l.newLineNumber!==null?l.newLineNumber.toString():"";let p=l.content||" ";return l.type!=="meta"&&l.type!=="hunk"&&t!=="plaintext"&&l.codeContent.trim()&&(p=o.jsx(Yt,{language:t,style:e,customStyle:{margin:0,padding:0,background:"transparent",display:"inline",fontSize:"inherit",lineHeight:"inherit"},codeTagProps:{style:{fontFamily:"inherit",background:"transparent"}},PreTag:"span",children:l.codeContent}),l.type==="add"?p=o.jsxs(o.Fragment,{children:[o.jsx("span",{className:"select-none",children:"+"}),p]}):l.type==="delete"&&(p=o.jsxs(o.Fragment,{children:[o.jsx("span",{className:"select-none",children:"-"}),p]}))),o.jsxs("div",{className:u,children:[o.jsx("div",{className:E,"aria-hidden":"true",style:{pointerEvents:"none"},children:o.jsxs("div",{className:"flex justify-between gap-2",children:[o.jsx("span",{className:"text-right w-8",children:d}),o.jsx("span",{className:"text-right w-8",children:f})]})}),o.jsx("div",{className:c,children:p})]},B)};return o.jsx("div",{className:"flex flex-col h-full bg-transparent",children:o.jsx("div",{className:"flex-1 overflow-auto",children:A.diff.trim()===""?o.jsx("div",{className:"p-4 text-[12px] text-muted-foreground",children:"No changes to display"}):o.jsxs("div",{className:"min-w-max",children:[o.jsxs("div",{className:"sticky top-0 z-10 px-3 py-1.5 bg-sidebar-accent/95 border-b border-sidebar-border/60 flex items-center justify-between min-h-8 backdrop-blur-sm",children:[o.jsx("span",{className:"font-mono text-[12px] text-foreground truncate",title:A.file,children:s}),o.jsxs("div",{className:"flex items-center gap-2 text-[10px] flex-shrink-0 pl-3",children:[A.insertions>0&&o.jsxs("span",{className:"text-green-600 dark:text-green-500",children:["+",A.insertions]}),A.deletions>0&&o.jsxs("span",{className:"text-red-600 dark:text-red-500",children:["-",A.deletions]}),o.jsx("span",{className:"text-muted-foreground",children:t})]})]}),r.map(g)]})})})}function U1(A,e=2){const t=A.split("/");return t.length<=e+1?A:`../${t.slice(-e).join("/")}`}function sn({file:A,staged:e,showModifiedIndicator:t=!1}){const{openDiff:s}=Te(),n=_n(),r=cg(),i=Ac(),a=ec(),g=rg(k=>k.openConfirmation),[l,B]=m.useState(e),u=async k=>{k.stopPropagation();const L=k.target.checked;B(L);try{L?await n.mutateAsync([A.path]):await r.mutateAsync([A.path])}catch(K){B(!L),console.error("Failed to stage/unstage file:",K)}},E=async k=>{k.stopPropagation(),g({title:"Restore File",message:`Restore ${A.path} to HEAD state? This will discard all changes.`,confirmLabel:"Restore",variant:"destructive",onConfirm:async()=>{try{await i.mutateAsync([A.path])}catch(L){throw console.error("Failed to restore file:",L),L}}})},c=async k=>{k.stopPropagation(),g({title:"Delete File",message:`Delete ${A.path}? This will permanently remove the untracked file.`,confirmLabel:"Delete",variant:"destructive",onConfirm:async()=>{try{await a.mutateAsync([A.path])}catch(L){throw console.error("Failed to delete file:",L),L}}})},d=()=>{s(A.path,e)},p=(()=>{switch(A.status){case"added":case"untracked":return{icon:AB,color:"text-green-500",label:"A",labelColor:"text-green-500"};case"deleted":return{icon:kC,color:"text-red-500",label:"D",labelColor:"text-red-500"};case"modified":return{icon:os,color:"text-blue-500",label:"M",labelColor:"text-blue-500"};case"renamed":return{icon:os,color:"text-purple-500",label:"R",labelColor:"text-purple-500"};case"conflicted":return{icon:$Q,color:"text-red-500",label:"C",labelColor:"text-red-500"};default:return{icon:os,color:"text-muted-foreground",label:"?",labelColor:"text-muted-foreground"}}})(),D=p.icon,F=U1(A.path,2);return o.jsxs("button",{type:"button",className:"flex items-center gap-2 px-3 py-1.5 hover:bg-muted/50 cursor-pointer group transition-colors w-full text-left h-9",onClick:d,children:[o.jsx("input",{type:"checkbox",checked:l,onChange:u,onClick:k=>k.stopPropagation(),className:"w-4 h-4 rounded border-border","aria-label":`${l?"Unstage":"Stage"} ${A.path}`}),o.jsxs("div",{className:"flex items-center gap-2 flex-1 min-w-0",children:[o.jsx(D,{className:`w-4 h-4 flex-shrink-0 ${p.color}`}),o.jsx("div",{className:"flex-1 min-w-0",children:o.jsxs("div",{className:"flex items-center gap-2",children:[o.jsx("span",{className:"text-sm text-foreground font-mono truncate",title:`${A.path}
|
|
127
|
+
${A.absPath}`,children:F}),o.jsxs("div",{className:"flex items-center gap-1 flex-shrink-0",children:[o.jsx("span",{className:`text-xs font-semibold ${p.labelColor}`,children:p.label}),t&&o.jsx("div",{title:"Also modified in working directory",children:o.jsx(wo,{className:"w-3.5 h-3.5 text-orange-500"})})]})]})})]}),A.insertions!==void 0||A.deletions!==void 0?o.jsxs("div",{className:"flex items-center gap-2 text-xs flex-shrink-0",children:[A.insertions!==void 0&&A.insertions>0&&o.jsxs("span",{className:"text-green-500",children:["+",A.insertions]}),A.deletions!==void 0&&A.deletions>0&&o.jsxs("span",{className:"text-red-500",children:["-",A.deletions]})]}):null,o.jsxs("div",{className:"w-7 flex items-center justify-center flex-shrink-0",children:[!e&&A.status==="untracked"&&o.jsx("button",{type:"button",onClick:c,className:"p-1 hover:bg-destructive/10 rounded opacity-0 group-hover:opacity-100 transition-opacity",title:"Delete untracked file","aria-label":`Delete ${A.path}`,children:o.jsx(Nr,{className:"w-4 h-4 text-destructive"})}),!e&&A.status!=="untracked"&&A.status!=="added"&&o.jsx("button",{type:"button",onClick:E,className:"p-1 hover:bg-destructive/10 rounded opacity-0 group-hover:opacity-100 transition-opacity",title:"Restore file to HEAD (Shift+R)","aria-label":`Restore ${A.path}`,children:o.jsx(_Q,{className:"w-4 h-4 text-destructive"})}),e&&!t&&o.jsx(Ht,{className:"w-4 h-4 text-green-500 opacity-0 group-hover:opacity-100 transition-opacity"})]})]})}function R1({status:A}){const{openCommitModal:e,openDiff:t}=Te(),s=_n();cg();const{currentFocus:n,gitFileIndex:r}=Lg(),i=m.useRef(new Map),a=(A.conflicted?.length??0)>0,g=A.staged.length>0,l=A.unstaged.length>0||A.untracked.length>0,B=[...A.unstaged,...A.untracked],u=B.length>0;m.useMemo(()=>[...A.conflicted??[],...A.staged,...A.unstaged,...A.untracked],[A]);const E=new Set(A.unstaged.map(f=>f.path)),c=()=>{const f=B.map(p=>p.path);f.length>0&&s.mutate(f)},d=A.conflicted?.length??0;return m.useEffect(()=>{if(n==="git"&&r>=0){i.current.get(r)?.scrollIntoView({block:"nearest",behavior:"smooth"});const D=[...A.conflicted??[],...A.staged,...A.unstaged,...A.untracked][r];if(D){const F=A.staged.includes(D);t(D.path,F)}}},[n,r,A.conflicted,A.staged,A.unstaged,A.untracked,t]),o.jsxs("div",{className:"flex flex-col",children:[a&&o.jsxs("div",{className:"border-b border-border",children:[o.jsx("div",{className:"px-3 py-2 bg-red-500/10 flex items-center justify-between",children:o.jsxs("span",{className:"text-xs font-semibold text-red-500 uppercase flex items-center gap-1.5",children:[o.jsx($Q,{className:"w-3.5 h-3.5"}),"Conflicts (",d,")"]})}),o.jsx("div",{className:"divide-y divide-border",children:A.conflicted?.map((f,p)=>{const D=p,F=n==="git"&&r===D;return o.jsx("div",{ref:k=>{k?i.current.set(D,k):i.current.delete(D)},className:F?"ring-1 ring-inset ring-primary/40":"",children:o.jsx(sn,{file:f,staged:!1})},f.path)})})]}),g&&o.jsxs("div",{className:"border-b border-border",children:[o.jsxs("div",{className:"px-3 py-2 bg-muted/50 flex items-center justify-between",children:[o.jsxs("span",{className:"text-xs font-semibold text-foreground uppercase",children:["Staged Changes (",A.staged.length,")"]}),o.jsxs("div",{className:"flex items-center gap-1",children:[A.staged.length>0&&!a&&o.jsxs(ye,{variant:"primary",size:"sm",onClick:e,className:"h-6 text-xs",children:[o.jsx(dn,{className:"w-3 h-3 mr-1"}),"Commit"]}),A.staged.length>0&&a&&o.jsx("span",{className:"text-xs text-muted-foreground",children:"Resolve conflicts first"})]})]}),o.jsx("div",{className:"divide-y divide-border",children:A.staged.map((f,p)=>{const D=d+p,F=n==="git"&&r===D;return o.jsx("div",{ref:k=>{k?i.current.set(D,k):i.current.delete(D)},className:F?"ring-1 ring-inset ring-primary/40":"",children:o.jsx(sn,{file:f,staged:!0,showModifiedIndicator:E.has(f.path)})},f.path)})})]}),l&&o.jsxs("div",{children:[o.jsxs("div",{className:"px-3 py-2 bg-muted/50 flex items-center justify-between",children:[o.jsxs("span",{className:"text-xs font-semibold text-foreground uppercase",children:["Changes (",A.unstaged.length+A.untracked.length,")"]}),u&&o.jsxs(ye,{variant:"ghost",size:"sm",onClick:c,title:"Stage all changes",className:"h-6 text-xs",children:[o.jsx(MC,{className:"w-3 h-3 mr-1"}),"Stage All"]})]}),o.jsxs("div",{className:"divide-y divide-border",children:[A.unstaged.map((f,p)=>{const D=d+A.staged.length+p,F=n==="git"&&r===D;return o.jsx("div",{ref:k=>{k?i.current.set(D,k):i.current.delete(D)},className:F?"ring-1 ring-inset ring-primary/40":"",children:o.jsx(sn,{file:f,staged:!1})},f.path)}),A.untracked.map((f,p)=>{const D=d+A.staged.length+A.unstaged.length+p,F=n==="git"&&r===D;return o.jsx("div",{ref:k=>{k?i.current.set(D,k):i.current.delete(D)},className:F?"ring-1 ring-inset ring-primary/40":"",children:o.jsx(sn,{file:f,staged:!1})},f.path)})]})]}),!a&&!g&&!l&&o.jsx("div",{className:"p-4 text-sm text-muted-foreground text-center",children:"No changes"})]})}const mQ="git",wQ=320,K1=320,L1=600,J1=m.memo(function({onFixWithAI:e}){const t=Te(sA=>sA.isExpanded),s=Te(sA=>sA.collapseSidebar),n=rs(sA=>sA.widths[mQ]??wQ),{data:r,isLoading:i,error:a,refetch:g}=Vn(),{data:l}=vf(),B=ke(),u=bf(),E=Ff(),c=Gf(),d=Sf(),f=Uf(),[p,D]=m.useState([]),[F,k]=m.useState(!1),[L,K]=m.useState(!1),[W,$]=m.useState("origin"),[X,U]=m.useState(""),[O,T]=m.useState(null);m.useEffect(()=>{t&&B.invalidateQueries({queryKey:["git","status"]})},[t,B]);const H=()=>{g()},x=m.useCallback((sA,bA)=>{const LA=`${Date.now()}-${Math.random().toString(36).slice(2,7)}`;D(QA=>[...QA,{id:LA,message:sA,context:bA}])},[]),Q=m.useCallback(sA=>{D(bA=>bA.filter(LA=>LA.id!==sA))},[]),I=async()=>{try{await u.mutateAsync()}catch(sA){x(sA instanceof Error?sA.message:"Failed to push","git push")}},N=async()=>{try{await E.mutateAsync()}catch(sA){x(sA instanceof Error?sA.message:"Failed to pull","git pull")}},G=async()=>{if(!(!W.trim()||!X.trim()))try{await d.mutateAsync({name:W.trim(),url:X.trim()}),$("origin"),U(""),K(!1)}catch(sA){x(sA instanceof Error?sA.message:"Failed to add remote","git remote add")}},J=async sA=>{if(O!==sA){T(sA);return}T(null);try{await f.mutateAsync(sA)}catch(bA){x(bA instanceof Error?bA.message:"Failed to remove remote","git remote remove")}},q=m.useCallback(sA=>{const bA=sA.context?`I got a git error during ${sA.context}:
|
|
128
|
+
|
|
129
|
+
${sA.message}
|
|
130
|
+
|
|
131
|
+
Please help me fix this.`:`I got a git error:
|
|
132
|
+
|
|
133
|
+
${sA.message}
|
|
134
|
+
|
|
135
|
+
Please help me fix this.`;Q(sA.id),e?.(bA)},[e,Q]);if(!t)return null;const R=[...r?.conflicted||[],...r?.staged||[],...r?.unstaged||[],...r?.untracked||[]].length,C=r?.remotes&&r.remotes.length>0,h=r?.hasUpstream??!1,v=r&&C&&(r.ahead>0||!h),S=r&&r.behind>0,Z=u.isPending||E.isPending,eA=a instanceof Error&&a.message.toLowerCase().includes("not a git repository"),rA=C?h?v?`Push ${r?.ahead} commit(s) to remote`:"Nothing to push":"Publish branch to remote":"No remote configured";return o.jsxs("div",{className:"border-l border-sidebar-border sidebar-fade-in flex h-full relative",style:{width:n},children:[o.jsx(Zs,{panelKey:mQ,side:"right",minWidth:K1,maxWidth:L1,defaultWidth:wQ}),o.jsxs("div",{className:"flex-1 flex flex-col h-full min-w-0 w-full",children:[o.jsx(ns,{icon:o.jsx(go,{className:"size-[15px]"}),title:o.jsxs(o.Fragment,{children:["Git Changes",R>0&&o.jsxs("span",{className:"ml-2 text-xs text-muted-foreground",children:["(",R,")"]})]}),onClose:s}),o.jsx("div",{className:"flex-1 overflow-y-auto",children:i?o.jsx("div",{className:"p-4 text-sm text-muted-foreground",children:"Loading git status..."}):eA?o.jsxs("div",{className:"p-4 flex flex-col items-center justify-center gap-3 text-center",children:[o.jsx(bC,{className:"w-10 h-10 text-muted-foreground"}),o.jsx("div",{className:"text-sm text-muted-foreground",children:"No git repository found in this directory."}),o.jsxs(ye,{variant:"secondary",size:"sm",onClick:()=>c.mutate(),disabled:c.isPending,className:"gap-1.5",children:[o.jsx(go,{className:`w-3.5 h-3.5 ${c.isPending?"animate-spin":""}`}),c.isPending?"Initializing...":"Initialize Repository"]}),c.isError&&o.jsx("span",{className:"text-xs text-orange-500",children:c.error instanceof Error?c.error.message:"Failed to initialize"})]}):a?o.jsx("div",{className:"p-3 text-sm text-muted-foreground",children:o.jsxs("div",{className:"flex flex-col gap-2",children:[o.jsx("span",{className:"text-orange-500",children:a instanceof Error?a.message:"Failed to load git status"}),o.jsx(ye,{variant:"secondary",size:"sm",onClick:H,children:"Retry"})]})}):!r||R===0?o.jsx("div",{className:"p-3 text-sm text-muted-foreground",children:"No changes detected"}):o.jsx(R1,{status:r})}),r&&!eA&&!a&&o.jsxs("div",{className:"border-t border-border",children:[o.jsxs("button",{type:"button",onClick:()=>k(!F),className:"w-full px-3 py-2 flex items-center gap-2 text-xs text-muted-foreground hover:text-foreground hover:bg-muted/50 transition-colors",children:[F?o.jsx(qt,{className:"w-3 h-3"}):o.jsx(St,{className:"w-3 h-3"}),o.jsx(Wo,{className:"w-3 h-3"}),o.jsx("span",{children:"Remotes"}),r.remotes&&o.jsx("span",{className:"ml-auto text-[10px] opacity-60",children:r.remotes.length})]}),F&&o.jsxs("div",{className:"px-3 pb-2 space-y-1",children:[l&&l.length>0?l.filter(sA=>sA.type==="fetch").map(sA=>o.jsxs("div",{className:"flex items-center gap-2 text-xs group",children:[o.jsx("span",{className:"font-medium text-foreground",children:sA.name}),o.jsx("span",{className:"truncate text-muted-foreground flex-1 min-w-0",children:sA.url}),o.jsx("button",{type:"button",onClick:()=>{O===sA.name?J(sA.name):T(sA.name)},onBlur:()=>T(null),disabled:f.isPending,className:`${O===sA.name?"opacity-100 text-red-500":"opacity-0 group-hover:opacity-100 text-muted-foreground hover:text-red-500"} transition-all p-0.5`,title:O===sA.name?`Click again to confirm removing ${sA.name}`:`Remove ${sA.name}`,children:O===sA.name?o.jsx("span",{className:"text-[10px] font-medium",children:"Remove?"}):o.jsx(Nr,{className:"w-3 h-3"})})]},sA.name)):o.jsx("div",{className:"text-xs text-muted-foreground py-1",children:"No remotes configured"}),L?o.jsxs("div",{className:"space-y-1.5 pt-1",children:[o.jsx("input",{type:"text",value:W,onChange:sA=>$(sA.target.value),placeholder:"Name (e.g. origin)",className:"w-full text-xs px-2 py-1 rounded border border-border bg-background text-foreground placeholder:text-muted-foreground focus:outline-none focus:ring-1 focus:ring-primary"}),o.jsx("input",{type:"text",value:X,onChange:sA=>U(sA.target.value),placeholder:"URL (e.g. https://github.com/...)",className:"w-full text-xs px-2 py-1 rounded border border-border bg-background text-foreground placeholder:text-muted-foreground focus:outline-none focus:ring-1 focus:ring-primary",onKeyDown:sA=>{sA.key==="Enter"&&G(),sA.key==="Escape"&&K(!1)}}),o.jsxs("div",{className:"flex gap-1",children:[o.jsx(ye,{variant:"secondary",size:"sm",onClick:G,disabled:d.isPending||!W.trim()||!X.trim(),className:"flex-1 h-6 text-[10px]",children:d.isPending?"Adding...":"Add"}),o.jsx(ye,{variant:"ghost",size:"sm",onClick:()=>K(!1),className:"h-6 text-[10px]",children:"Cancel"})]})]}):o.jsxs("button",{type:"button",onClick:()=>K(!0),className:"flex items-center gap-1 text-xs text-muted-foreground hover:text-foreground transition-colors pt-1",children:[o.jsx(lo,{className:"w-3 h-3"}),o.jsx("span",{children:"Add remote"})]})]})]}),p.length>0&&o.jsx("div",{className:"border-t border-border",children:p.map(sA=>o.jsxs("div",{className:"px-3 py-2 text-xs border-b border-border last:border-b-0 bg-orange-50 dark:bg-orange-950/20 flex items-start gap-2",children:[o.jsx("span",{className:"text-orange-500 flex-1 min-w-0 break-words",children:sA.message}),o.jsxs("div",{className:"flex items-center gap-1 flex-shrink-0",children:[e&&o.jsxs("button",{type:"button",onClick:()=>q(sA),className:"flex items-center gap-1 text-[10px] px-1.5 py-0.5 rounded bg-primary/10 text-primary hover:bg-primary/20 transition-colors",title:"Fix with AI",children:[o.jsx(_t,{className:"w-3 h-3"}),"Fix"]}),o.jsx("button",{type:"button",onClick:()=>Q(sA.id),className:"text-muted-foreground hover:text-foreground transition-colors p-0.5",title:"Dismiss",children:o.jsx(ot,{className:"w-3 h-3"})})]})]},sA.id))}),o.jsxs("div",{className:"h-10 border-t border-border flex items-center gap-1 px-2",children:[o.jsxs(ye,{variant:"secondary",size:"sm",onClick:N,disabled:Z||!C||!h,title:C?h?S?`Pull ${r?.behind} commit(s) from remote`:"Pull from remote":"Branch not published yet":"No remote configured",className:"flex-1 h-7 text-xs gap-1.5",children:[o.jsx(FC,{className:`w-3.5 h-3.5 ${E.isPending?"animate-pulse":""}`}),"Pull",S&&o.jsxs("span",{className:"text-orange-500",children:["↓",r?.behind]})]}),o.jsxs(ye,{variant:"secondary",size:"sm",onClick:I,disabled:!v||Z,title:rA,className:"flex-1 h-7 text-xs gap-1.5",children:[o.jsx(GC,{className:`w-3.5 h-3.5 ${u.isPending?"animate-pulse":""}`}),!h&&C?"Publish":"Push",h&&r&&r.ahead>0&&o.jsxs("span",{className:"text-green-500",children:["↑",r.ahead]})]})]}),o.jsxs("div",{className:"h-9 px-3 border-t border-border text-xs text-muted-foreground flex items-center justify-between gap-2",children:[o.jsxs("div",{className:"flex items-center gap-2 min-w-0 flex-1",children:[o.jsx(go,{className:"w-3 h-3 flex-shrink-0"}),r?.branch&&o.jsx("span",{className:"truncate",children:r.branch}),r&&!h&&C&&o.jsx("span",{className:"text-[10px] text-orange-500 flex-shrink-0",children:"unpublished"})]}),o.jsx(ye,{variant:"ghost",size:"icon",onClick:H,title:"Refresh git status",className:"h-6 w-6 flex-shrink-0",disabled:i,children:o.jsx(Zt,{className:`w-3 h-3 ${i?"animate-spin":""}`})})]})]})]})}),j1=m.memo(function(){const e=Te(r=>r.isExpanded),t=Te(r=>r.toggleSidebar),{data:s}=Vn(),n=(s?.staged?.length??0)+(s?.unstaged?.length??0)+(s?.untracked?.length??0);return o.jsxs("button",{type:"button",onClick:t,className:`relative h-12 w-full transition-colors touch-manipulation flex items-center justify-center border-r-2 ${e?"bg-muted border-primary":"border-transparent hover:bg-muted/50"}`,title:"Git",children:[o.jsx(go,{className:"size-[18px] text-muted-foreground mx-auto"}),n>0&&o.jsx("span",{className:"absolute top-0.5 right-0.5 w-4 h-4 bg-primary text-primary-foreground text-[10px] rounded-full flex items-center justify-center font-semibold",children:n>9?"9+":n})]})});function bE(A,e=!0){return gt({queryKey:["files","tree",A],queryFn:()=>mA.getFileTree(A),enabled:e,staleTime:1e4,retry:1})}function T1(A){return gt({queryKey:["files","read",A],queryFn:()=>A?mA.readFileContent(A):null,enabled:!!A,staleTime:5e3,retry:1})}function O1(A,e=!1,t=!1){return gt({queryKey:["git","diff","fullFile",A,e],queryFn:()=>A?mA.getGitDiffFullFile(A,e):null,enabled:t&&!!A,retry:1,refetchInterval:!1})}const q1=m.memo(function({mode:e="overlay"}={}){const t=Te(d=>d.isDiffOpen),s=Te(d=>d.selectedFile),n=Te(d=>d.selectedFileStaged),r=Te(d=>d.closeDiff),{data:i,isLoading:a}=Nf(s,n),[g,l]=m.useState(!1),{data:B,isLoading:u}=O1(s,n,g),E=g&&B?B:i,c=g?u:a;return m.useEffect(()=>{t||l(!1)},[t]),m.useEffect(()=>{const d=f=>{const p=f.target,D=p.tagName==="INPUT"||p.tagName==="TEXTAREA"||p.isContentEditable;(f.key==="Escape"||f.key==="q"&&!D)&&t&&r(),f.key==="f"&&!D&&t&&l(F=>!F)};return document.addEventListener("keydown",d),()=>document.removeEventListener("keydown",d)},[t,r]),!t||!s?null:o.jsxs("div",{className:e==="pane"?"h-full w-full bg-transparent flex flex-col":"absolute inset-0 bg-background z-50 flex flex-col animate-in slide-in-from-left duration-300",children:[o.jsxs("div",{className:"h-12 border-b border-sidebar-border px-2.5 flex items-center gap-2 shrink-0 bg-sidebar-accent/40",children:[o.jsx(ye,{variant:"ghost",size:"icon",onClick:r,title:"Close diff viewer (ESC)",className:"h-8 w-8",children:o.jsx(ot,{className:"size-[17px]"})}),o.jsxs("div",{className:"flex-1 flex items-center gap-2 min-w-0",children:[o.jsx("span",{className:"text-[12px] font-medium text-foreground font-mono truncate",title:`${s}
|
|
136
|
+
${E?.absPath||""}`,children:s}),n&&o.jsx("span",{className:"text-[11px] px-1.5 py-0.5 rounded bg-primary/10 text-primary flex-shrink-0",children:"Staged"})]}),o.jsxs(ye,{variant:g?"secondary":"ghost",size:"sm",onClick:()=>l(d=>!d),title:g?"Show diff only (f)":"Show full file with diff (f)",className:"flex items-center gap-1.5 text-[12px] h-8 px-2.5",children:[g?o.jsx(ja,{className:"w-3.5 h-3.5"}):o.jsx(jQ,{className:"w-3.5 h-3.5"}),g?"Diff":"Full File"]})]}),o.jsx("div",{className:"flex-1 overflow-auto",children:c?o.jsx("div",{className:"h-full flex items-center justify-center text-muted-foreground",children:"Loading diff..."}):E?o.jsx(S1,{diff:E}):o.jsx("div",{className:"h-full flex items-center justify-center text-muted-foreground",children:"No diff available"})})]})});function Y1(){const{isCommitModalOpen:A,closeCommitModal:e}=Te(),t=Te(u=>u.commitSessionId),s=Mf(),n=kf(t),[r,i]=m.useState(""),a=m.useId(),g=m.useCallback(async()=>{if(r.trim())try{await s.mutateAsync(r),i(""),e()}catch(u){console.error("Failed to commit:",u)}},[r,s,e]),l=()=>{i(""),e()},B=m.useCallback(async()=>{try{const u=await n.mutateAsync();i(u.message)}catch(u){console.error("Failed to generate commit message:",u)}},[n]);return m.useEffect(()=>{if(!A)return;const u=E=>{(E.metaKey||E.ctrlKey)&&E.key==="Enter"&&(E.preventDefault(),E.stopPropagation(),r.trim()&&!s.isPending&&g()),(E.metaKey||E.ctrlKey)&&E.key==="g"&&(E.preventDefault(),E.stopPropagation(),B())};return document.addEventListener("keydown",u),()=>document.removeEventListener("keydown",u)},[A,r,s.isPending,g,B]),o.jsx(So,{isOpen:A,onClose:l,title:o.jsxs("div",{className:"flex items-center gap-2",children:[o.jsx(dn,{className:"w-5 h-5"}),o.jsx("span",{children:"Commit Changes"})]}),maxWidth:"2xl",children:o.jsxs("div",{className:"space-y-4",children:[o.jsxs("div",{className:"space-y-2",children:[o.jsx("label",{htmlFor:a,className:"text-sm font-medium text-foreground",children:"Commit Message"}),o.jsx(Pn,{id:a,value:r,onChange:u=>i(u.target.value),placeholder:"Enter commit message...",rows:6,className:"w-full resize-none",autoFocus:!0,disabled:n.isPending})]}),o.jsx(ye,{variant:"secondary",onClick:B,className:"w-full",disabled:n.isPending,children:n.isPending?o.jsxs(o.Fragment,{children:[o.jsx(Je,{className:"w-4 h-4 mr-2 animate-spin"}),"Generating..."]}):o.jsxs(o.Fragment,{children:[o.jsx(_t,{className:"w-4 h-4 mr-2"}),"Generate commit message"," ",o.jsx("span",{className:"text-muted-foreground ml-1",children:"(⌘G)"})]})}),n.isError&&o.jsx("div",{className:"text-sm text-red-600 dark:text-red-400 bg-red-500/10 border border-red-500/20 rounded px-3 py-2",children:n.error?.message||"Failed to generate commit message"}),o.jsxs("div",{className:"flex items-center justify-end gap-2 pt-4 border-t border-border",children:[o.jsxs(ye,{variant:"ghost",onClick:l,children:["Cancel ",o.jsx("span",{className:"text-muted-foreground ml-1",children:"(Esc)"})]}),o.jsx(ye,{variant:"primary",onClick:g,disabled:!r.trim()||s.isPending,children:s.isPending?o.jsx("span",{children:"Committing..."}):o.jsxs(o.Fragment,{children:[o.jsx(dn,{className:"w-4 h-4 mr-2"}),"Commit ",o.jsx("span",{className:"text-muted-foreground ml-1",children:"(⌘↵)"})]})})]}),s.isError&&o.jsx("div",{className:"text-sm text-red-600 dark:text-red-400 bg-red-500/10 border border-red-500/20 rounded px-3 py-2",children:s.error?.message||"Failed to commit changes"})]})})}function FE(A,e=!0){const t=et(s=>s.isExpanded);return gt({queryKey:["session",A,"files"],queryFn:()=>A?mA.getSessionFiles(A):null,enabled:!!A&&e,refetchInterval:t&&e?5e3:!1,retry:1,staleTime:3e3})}const xQ="session-files",DQ=320,H1=320,P1=600;function W1(A){switch(A){case"write":return o.jsx(AB,{className:"w-3 h-3 text-green-500"});case"patch":return o.jsx(Fo,{className:"w-3 h-3 text-blue-500"});default:return o.jsx(Fo,{className:"w-3 h-3 text-muted-foreground"})}}function z1(A){return A.split("/").pop()||A}function V1(A){if(A.artifact?.summary)return{additions:A.artifact.summary.additions,deletions:A.artifact.summary.deletions};const e=A.artifact?.patch||A.patch;if(e){let t=0,s=0;const n=e.split(`
|
|
137
|
+
`);for(const r of n)r.startsWith("+")&&!r.startsWith("+++")?t++:r.startsWith("-")&&!r.startsWith("---")&&s++;return{additions:t,deletions:s}}return A.content?{additions:A.content.split(`
|
|
138
|
+
`).length,deletions:0}:{additions:0,deletions:0}}function _1({file:A}){const e=et(g=>g.openDiff),s=et(g=>g.selectedFile)===A.path,n=A.operations[A.operations.length-1],{totalAdditions:r,totalDeletions:i}=m.useMemo(()=>{let g=0,l=0;for(const B of A.operations){const u=V1(B);g+=u.additions,l+=u.deletions}return{totalAdditions:g,totalDeletions:l}},[A.operations]),a=()=>{A.operations.length>0&&e(A.path,A.operations)};return o.jsx("button",{type:"button",onClick:a,className:`w-full text-left px-3 py-2 hover:bg-muted/50 transition-colors ${s?"bg-muted":""}`,children:o.jsxs("div",{className:"flex items-center gap-2",children:[W1(n?.operation||"write"),o.jsx("div",{className:"flex-1 min-w-0",children:o.jsx("div",{className:"text-sm font-medium truncate",children:z1(A.path)})}),o.jsxs("div",{className:"flex items-center gap-1 text-xs shrink-0",children:[A.operationCount>1&&o.jsxs("span",{className:"bg-muted text-muted-foreground px-1 rounded mr-1",children:[A.operationCount,"x"]}),o.jsxs("span",{className:"text-green-500",children:["+",r]}),o.jsxs("span",{className:"text-red-500",children:["-",i]})]})]})})}const Z1=m.memo(function({sessionId:e}){const t=et(l=>l.isExpanded),s=et(l=>l.collapseSidebar),n=rs(l=>l.widths[xQ]??DQ),{data:r,isLoading:i,error:a,refetch:g}=FE(e,t);return t?o.jsxs("div",{className:"border-l border-sidebar-border sidebar-fade-in flex h-full relative",style:{width:n},children:[o.jsx(Zs,{panelKey:xQ,side:"right",minWidth:H1,maxWidth:P1,defaultWidth:DQ}),o.jsxs("div",{className:"flex-1 flex flex-col h-full min-w-0",children:[o.jsx(ns,{icon:o.jsx(Fo,{className:"size-[15px]"}),title:o.jsxs(o.Fragment,{children:["Session Files",r&&r.totalFiles>0&&o.jsxs("span",{className:"ml-2 text-xs text-muted-foreground",children:["(",r.totalFiles,")"]})]}),onClose:s}),o.jsx("div",{className:"flex-1 overflow-y-auto",children:i?o.jsx("div",{className:"p-4 text-sm text-muted-foreground",children:"Loading session files..."}):a?o.jsx("div",{className:"p-4 text-sm text-orange-500",children:a instanceof Error?a.message:"Failed to load files"}):!r||r.totalFiles===0?o.jsx("div",{className:"p-4 text-sm text-muted-foreground",children:"No files modified in this session"}):o.jsx("div",{className:"divide-y divide-border",children:r.files.map(l=>o.jsx(_1,{file:l},l.path))})}),o.jsxs("div",{className:"h-9 px-3 border-t border-border text-xs text-muted-foreground flex items-center justify-between gap-2",children:[o.jsxs("div",{className:"flex items-center gap-2 min-w-0 flex-1",children:[o.jsx(Fo,{className:"w-3 h-3 flex-shrink-0"}),r&&r.totalOperations>0?o.jsxs("span",{className:"truncate",children:[r.totalFiles," file",r.totalFiles!==1?"s":""," •"," ",r.totalOperations," op",r.totalOperations!==1?"s":""]}):o.jsx("span",{className:"truncate",children:"No changes"})]}),o.jsx("div",{className:"flex items-center gap-1 flex-shrink-0",children:o.jsx(ye,{variant:"ghost",size:"icon",onClick:()=>g(),title:"Refresh session files",className:"h-6 w-6 transition-transform duration-200 hover:scale-110",disabled:i,children:o.jsx(Zt,{className:`w-3 h-3 ${i?"animate-spin":""}`})})})]})]})]}):null}),X1=m.memo(function({sessionId:e}){const t=et(i=>i.isExpanded),s=et(i=>i.toggleSidebar),{data:n}=FE(e,t),r=n?.totalFiles??0;return o.jsxs("button",{type:"button",onClick:s,className:`relative h-12 w-full transition-colors touch-manipulation flex items-center justify-center border-r-2 ${t?"bg-muted border-primary":"border-transparent hover:bg-muted/50"}`,title:"Session Files",children:[o.jsx(Fo,{className:"size-[18px] text-muted-foreground mx-auto"}),r>0&&o.jsx("span",{className:"absolute top-0.5 right-0.5 w-4 h-4 bg-primary text-primary-foreground text-[10px] rounded-full flex items-center justify-center font-semibold",children:r>9?"9+":r})]})});function $1(A){const e=A.split(`
|
|
139
|
+
`),t=[];let s=0,n=0;const r=[];for(const i of e){if(i.startsWith("*** Begin Patch")||i.startsWith("*** End Patch")||i.startsWith("*** Update File:")||i.startsWith("*** Add File:")||i.startsWith("*** Delete File:")){r.length>0&&(t.push(`@@ -1,${n} +1,${s} @@`),t.push(...r),r.length=0,s=0,n=0),t.push(i);continue}if(i.match(/^@@ -\d+(?:,\d+)? \+\d+(?:,\d+)? @@/)){r.length>0&&(t.push(`@@ -1,${n} +1,${s} @@`),t.push(...r),r.length=0,s=0,n=0),t.push(i);continue}if(i.startsWith("@@")){t.push(i);continue}i.startsWith("+")?(s++,r.push(i)):i.startsWith("-")?(n++,r.push(i)):i.startsWith(" ")||i.startsWith(" ")?(s++,n++,r.push(i.startsWith(" ")?` ${i}`:i)):i.trim()===""?(r.push(" "),s++,n++):(s++,n++,r.push(` ${i}`))}return r.length>0&&(t.push(`@@ -1,${n} +1,${s} @@`),t.push(...r)),t.join(`
|
|
140
|
+
`)}function Ay(A){const e=A.split(".").pop()?.toLowerCase();return{js:"javascript",jsx:"jsx",ts:"typescript",tsx:"tsx",py:"python",rb:"ruby",go:"go",rs:"rust",java:"java",c:"c",cpp:"cpp",h:"c",hpp:"cpp",cs:"csharp",php:"php",sh:"bash",bash:"bash",zsh:"bash",sql:"sql",json:"json",yaml:"yaml",yml:"yaml",xml:"xml",html:"html",css:"css",scss:"scss",md:"markdown",txt:"text",svelte:"svelte"}[e||""]||"javascript"}function ey(A){const e=A.split(`
|
|
141
|
+
`),t=[];let s=0,n=0,r=!1,i="";for(const a of e){if(a.startsWith("+++")||a.startsWith("*** Update File:")){const l=a.match(/\+\+\+ b\/(.+)/)||a.match(/\*\*\* Update File: (.+)/);l&&(i=l[1])}if(a.startsWith("*** Add File:")){const l=a.match(/\*\*\* Add File: (.+)/);l&&(i=l[1])}const g=a.match(/^@@ -(\d+)(?:,\d+)? \+(\d+)(?:,\d+)? @@/);if(g){s=Number.parseInt(g[1],10),n=Number.parseInt(g[2],10),r=!0,t.push({content:a,codeContent:a,type:"header"});continue}if(a.startsWith("***")||a.startsWith("diff ")||a.startsWith("index ")||a.startsWith("---")||a.startsWith("+++")||a.startsWith("@@")&&!r){t.push({content:a,codeContent:a,type:"meta"});continue}r?a.startsWith("+")?t.push({content:a,codeContent:a.slice(1),type:"add",newLineNum:n++}):a.startsWith("-")?t.push({content:a,codeContent:a.slice(1),type:"remove",oldLineNum:s++}):a.startsWith(" ")||a===""?t.push({content:a,codeContent:a.startsWith(" ")?a.slice(1):a,type:"context",oldLineNum:s++,newLineNum:n++}):t.push({content:a,codeContent:a,type:"context",oldLineNum:s++,newLineNum:n++}):t.push({content:a,codeContent:a,type:"meta"})}return{lines:t,filePath:i}}function ty({patch:A}){const{lines:e,filePath:t}=ey(A),s=Ay(t),n=document?.documentElement.classList.contains("dark")?Io:ho;return o.jsx("div",{className:"bg-card/60 border border-border rounded-lg overflow-hidden h-full",children:o.jsx("div",{className:"overflow-x-auto overflow-y-auto h-full text-xs font-mono",children:e.map((r,i)=>{const a=`line-${i}-${r.content.slice(0,20)}`;if(r.type==="meta"||r.type==="header")return o.jsx("div",{className:`px-3 py-0.5 whitespace-pre-wrap break-all ${r.type==="header"?"text-muted-foreground/80 bg-muted/20":"text-muted-foreground/80"}`,children:r.content},a);let g="",l="";switch(r.type){case"add":g="text-emerald-700 dark:text-emerald-300",l="bg-emerald-500/10";break;case"remove":g="text-red-600 dark:text-red-300",l="bg-red-500/10";break;default:g="text-foreground/80"}let B=r.content;return r.codeContent.trim()&&s!=="text"&&(B=o.jsx(Yt,{language:s,style:n,customStyle:{margin:0,padding:0,background:"transparent",display:"inline",fontSize:"inherit",lineHeight:"inherit"},codeTagProps:{style:{fontFamily:"inherit",background:"transparent"}},PreTag:"span",children:r.codeContent}),r.type==="add"?B=o.jsxs(o.Fragment,{children:[o.jsx("span",{className:"select-none",children:"+"}),B]}):r.type==="remove"?B=o.jsxs(o.Fragment,{children:[o.jsx("span",{className:"select-none",children:"-"}),B]}):r.type==="context"&&(B=o.jsxs(o.Fragment,{children:[o.jsx("span",{className:"select-none",children:" "}),B]}))),o.jsxs("div",{className:`flex ${l}`,children:[o.jsx("div",{className:"px-2 py-0.5 text-right text-muted-foreground/40 select-none w-12 flex-shrink-0","aria-hidden":"true",style:{pointerEvents:"none"},children:r.oldLineNum||""}),o.jsx("div",{className:"px-2 py-0.5 text-right text-muted-foreground/40 select-none w-12 flex-shrink-0 border-r border-border/50","aria-hidden":"true",style:{pointerEvents:"none"},children:r.newLineNum||""}),o.jsx("div",{className:`px-3 py-0.5 flex-1 min-w-0 whitespace-pre-wrap break-all ${g}`,children:B})]},a)})})})}function oy(A){return new Date(A).toLocaleTimeString([],{hour:"2-digit",minute:"2-digit"})}const sy=m.memo(function({mode:e="overlay"}={}){const t=et(u=>u.isDiffOpen),s=et(u=>u.selectedFile),n=et(u=>u.allOperations),r=et(u=>u.selectedOperationIndex),i=et(u=>u.selectOperation),a=et(u=>u.closeDiff),g=n[r],l=m.useMemo(()=>{if(!g||!s)return null;let u=null;if(g.artifact?.patch)u=g.artifact.patch;else if(g.patch)u=g.patch;else if(g.content){const c=g.content.split(`
|
|
142
|
+
`);u=`*** Add File: ${s}
|
|
143
|
+
${c.map(d=>`+${d}`).join(`
|
|
144
|
+
`)}`}return u?/@@ -\d+(?:,\d+)? \+\d+(?:,\d+)? @@/.test(u)?u:$1(u):null},[g,s]);if(m.useEffect(()=>{const u=E=>{const c=E.target,d=c.tagName==="INPUT"||c.tagName==="TEXTAREA"||c.isContentEditable;(E.key==="Escape"||E.key==="q"&&!d)&&t&&a(),!d&&t&&n.length>1&&(E.key==="ArrowLeft"||E.key==="["?(E.preventDefault(),i(Math.max(0,r-1))):(E.key==="ArrowRight"||E.key==="]")&&(E.preventDefault(),i(Math.min(n.length-1,r+1))))};return document.addEventListener("keydown",u),()=>document.removeEventListener("keydown",u)},[t,a,n.length,r,i]),!t||!s||!g)return null;const B=n.length>1;return o.jsxs("div",{className:e==="pane"?"h-full w-full bg-transparent flex flex-col":"absolute inset-0 bg-background z-50 flex flex-col animate-in slide-in-from-left duration-300",children:[o.jsxs("div",{className:"h-12 border-b border-sidebar-border px-2.5 flex items-center gap-2 shrink-0 bg-sidebar-accent/40",children:[o.jsx(ye,{variant:"ghost",size:"icon",onClick:a,title:"Close diff viewer (ESC)",className:"h-8 w-8",children:o.jsx(ot,{className:"size-[17px]"})}),o.jsxs("div",{className:"flex-1 flex items-center gap-2 min-w-0",children:[o.jsx("span",{className:"text-[12px] font-medium text-foreground font-mono truncate",title:s,children:s}),o.jsx("span",{className:"text-[11px] px-1.5 py-0.5 rounded bg-primary/10 text-primary flex-shrink-0 capitalize",children:g.operation}),g.artifact?.summary&&o.jsxs("div",{className:"flex items-center gap-1 text-[11px] flex-shrink-0",children:[o.jsxs("span",{className:"text-green-500",children:["+",g.artifact.summary.additions]}),o.jsxs("span",{className:"text-red-500",children:["-",g.artifact.summary.deletions]})]})]}),B&&o.jsxs("div",{className:"flex items-center gap-1 shrink-0",children:[o.jsx(ye,{variant:"ghost",size:"icon",onClick:()=>i(Math.max(0,r-1)),disabled:r===0,title:"Previous operation (←)",className:"h-8 w-8",children:o.jsx(vC,{className:"size-[17px]"})}),o.jsxs("span",{className:"text-[11px] text-muted-foreground min-w-[50px] text-center",children:[r+1," / ",n.length]}),o.jsx(ye,{variant:"ghost",size:"icon",onClick:()=>i(Math.min(n.length-1,r+1)),disabled:r===n.length-1,title:"Next operation (→)",className:"h-8 w-8",children:o.jsx(St,{className:"size-[17px]"})})]})]}),B&&o.jsx("div",{className:"border-b border-border px-2 py-1.5 flex gap-1.5 overflow-x-auto shrink-0",children:n.map((u,E)=>o.jsxs("button",{type:"button",onClick:()=>i(E),className:`px-2 py-1 text-[11px] rounded-md flex items-center gap-1.5 shrink-0 transition-colors ${E===r?"bg-primary text-primary-foreground":"bg-muted hover:bg-muted/80 text-muted-foreground"}`,children:[o.jsx("span",{className:"capitalize",children:u.operation}),o.jsx("span",{className:"opacity-70",children:oy(u.timestamp)}),u.artifact?.summary&&o.jsxs("span",{className:"opacity-70",children:["+",u.artifact.summary.additions,"/-",u.artifact.summary.deletions]})]},u.toolCallId))}),o.jsx("div",{className:"flex-1 overflow-hidden p-4",children:l?o.jsx(ty,{patch:l}):o.jsx("div",{className:"h-full flex items-center justify-center text-muted-foreground",children:"No diff content available"})})]})});class ry{async listResearchSessions(e){const t=await Pd({path:{parentId:e}});if(t.error)throw new Error(JSON.stringify(t.error));return t.data}async createResearchSession(e,t){const s=await Wd({path:{parentId:e},body:t});if(s.error)throw new Error(JSON.stringify(s.error));return s.data}async deleteResearchSession(e){const t=await zd({path:{researchId:e}});if(t.error)throw new Error(JSON.stringify(t.error));return t.data}async injectContext(e,t,s){const n=await Vd({path:{parentId:e},body:{researchSessionId:t,label:s}});if(n.error)throw new Error(JSON.stringify(n.error));return n.data}async exportToNewSession(e,t){const s=await _d({path:{researchId:e},body:t??{}});if(s.error)throw new Error(JSON.stringify(s.error));return s.data}}const ii=new ry;function GE(A,e=!0){return gt({queryKey:["research","sessions",A],queryFn:()=>ii.listResearchSessions(A),enabled:!!A&&e,staleTime:3e4})}function ny(){const A=ke();return _e({mutationFn:({parentSessionId:e,data:t})=>ii.createResearchSession(e,t??{}),onSuccess:(e,{parentSessionId:t})=>{A.invalidateQueries({queryKey:["research","sessions",t]})}})}function iy(){const A=cn(e=>e.addContext);return _e({mutationFn:({parentSessionId:e,researchSessionId:t,label:s})=>ii.injectContext(e,t,s),onSuccess:(e,{parentSessionId:t})=>{A(t,{id:e.sessionId,sessionId:e.sessionId,label:e.label,content:e.content})}})}function ay(){const A=ke();return _e({mutationFn:({researchId:e,data:t})=>ii.exportToNewSession(e,t),onSuccess:()=>{A.invalidateQueries({queryKey:Qo})}})}const yQ="research",NQ=384,gy=384,ly=640;m.memo(function({parentSessionId:e,onNavigateToSession:t}){const s=mt(QA=>QA.isExpanded),n=mt(QA=>QA.collapseSidebar),r=rs(QA=>QA.widths[yQ]??NQ),i=mt(QA=>QA.activeResearchSessionId),a=mt(QA=>QA.selectResearchSession),[g,l]=m.useState(!1),[B,u]=m.useState(""),[E,c]=m.useState(!1),[d,f]=m.useState("idle"),p=m.useRef(null),D=m.useRef(null),{data:F,isLoading:k,refetch:L}=GE(e,s),K=ny(),W=iy(),$=ay(),{data:X}=Xs(),{data:U}=ua(i??void 0,{enabled:s}),{data:O}=ua(e??void 0,{enabled:s});ME(i??void 0,s);const T=Bg(i??""),H=ke(),x=_e({mutationFn:async({sessionId:QA,content:qA})=>mA.sendMessage(QA,{content:qA}),onSuccess:(QA,{sessionId:qA})=>{H.invalidateQueries({queryKey:["messages",qA]})}});m.useEffect(()=>{e&&mt.getState().setParentSessionId(e)},[e]),m.useEffect(()=>{F?.sessions?.length?F.sessions.some(qA=>qA.id===i)||a(F.sessions[0].id):F?.sessions?.length===0&&a(null)},[F,i,a]),m.useEffect(()=>{D.current?.scrollIntoView({behavior:"smooth"})},[]);const Q=m.useCallback(()=>{const QA=p.current;QA&&(QA.style.height="auto",QA.style.height=`${Math.min(QA.scrollHeight,120)}px`)},[]);m.useEffect(()=>{Q()},[Q]);const I=m.useCallback(async()=>{if(e)try{const QA=await K.mutateAsync({parentSessionId:e,data:{}});await L(),a(QA.session.id),l(!1)}catch(QA){console.error("Failed to create research session:",QA)}},[e,K,a,L]),N=m.useCallback(QA=>{a(QA.id),l(!1)},[a]),G=m.useCallback(async()=>{if(!e||!i)return;if(O?.some(MA=>MA.role==="system"&&MA.parts?.some(ZA=>typeof ZA.content=="string"&&ZA.content.includes(`from="${i}"`)))){f("error"),setTimeout(()=>f("idle"),3e3);return}const Ce=`Research ${new Date().toLocaleTimeString([],{hour:"2-digit",minute:"2-digit"})}`;try{await W.mutateAsync({parentSessionId:e,researchSessionId:i,label:Ce}),f("success"),setTimeout(()=>f("idle"),5e3),H.invalidateQueries({queryKey:["messages",e]})}catch(MA){console.error("Failed to inject context:",MA),f("error"),setTimeout(()=>f("idle"),3e3)}},[e,i,W,O,H]),J=m.useCallback(async()=>{if(i)try{const QA=await $.mutateAsync({researchId:i});t&&QA.newSession?.id&&t(QA.newSession.id)}catch(QA){console.error("Failed to export to session:",QA)}},[i,$,t]),q=m.useCallback(async()=>{if(!(!B.trim()||!e))try{let QA=i;QA||(QA=(await K.mutateAsync({parentSessionId:e,data:{}})).session.id,a(QA)),await x.mutateAsync({sessionId:QA,content:B}),u(""),p.current&&(p.current.style.height="auto")}catch(QA){console.error("Failed to send message:",QA)}},[B,e,i,K,a,x]),j=m.useCallback(QA=>{QA.key==="Enter"&&!QA.shiftKey&&(QA.preventDefault(),q())},[q]),R=m.useMemo(()=>U?.some(QA=>QA.role==="assistant"&&QA.status==="pending")??!1,[U]),C=m.useMemo(()=>!i||!O?!1:O.some(QA=>QA.role==="system"&&QA.parts?.some(qA=>typeof qA.content=="string"&&qA.content.includes(`from="${i}"`))),[i,O]),h=m.useCallback(async(QA,qA)=>{if(!i){c(!1);return}try{await T.mutateAsync({provider:QA,model:qA}),await H.invalidateQueries({queryKey:["research","sessions",e]}),c(!1)}catch(PA){console.error("Failed to update research session model:",PA)}},[i,T,H,e]),v=Qg(e??"");if(!s)return null;const S=F?.sessions??[],Z=S.find(QA=>QA.id===i),eA=U??[],rA=Z?.provider??v?.provider??"",sA=Z?.model??v?.model??"",bA=X?.[rA]?.label??rA,LA=X?.[rA]?.models.find(QA=>QA.id===sA)?.label??sA;return o.jsxs("div",{className:"border-l border-sidebar-border sidebar-fade-in flex h-full relative",style:{width:r},children:[o.jsx(Zs,{panelKey:yQ,side:"right",minWidth:gy,maxWidth:ly,defaultWidth:NQ}),o.jsxs("div",{className:"flex-1 flex flex-col h-full min-w-0",children:[o.jsxs(ns,{icon:o.jsx(dr,{className:"size-[15px] text-teal-500"}),title:"Research",onClose:n,children:[o.jsx(ye,{variant:"ghost",size:"icon",onClick:()=>l(!g),title:"Research history",className:"h-8 w-8",children:o.jsx(SC,{className:"w-4 h-4"})}),o.jsx(ye,{variant:"ghost",size:"icon",onClick:I,disabled:!e||K.isPending,title:"New research session",className:"h-8 w-8",children:K.isPending?o.jsx(Je,{className:"w-4 h-4 animate-spin"}):o.jsx(lo,{className:"w-4 h-4"})})]}),g?o.jsxs("div",{className:"flex-1 overflow-y-auto",children:[o.jsx("div",{className:"p-2 border-b border-border",children:o.jsx("div",{className:"text-xs font-medium text-muted-foreground px-2 py-1",children:"Research Sessions"})}),k?o.jsx("div",{className:"p-4 text-sm text-muted-foreground",children:"Loading..."}):S.length===0?o.jsx("div",{className:"p-4 text-sm text-muted-foreground",children:"No research sessions yet"}):o.jsx("div",{className:"p-2 space-y-1",children:S.map(QA=>o.jsxs("button",{type:"button",onClick:()=>N(QA),className:`w-full text-left p-2 rounded-md text-sm transition-colors ${QA.id===i?"bg-teal-500/10 border border-teal-500/30 text-foreground":"hover:bg-muted"}`,children:[o.jsx("div",{className:"font-medium truncate",children:QA.title||"Untitled"}),o.jsxs("div",{className:"text-xs text-muted-foreground",children:[QA.messageCount," messages •"," ",Qy(QA.lastActiveAt??QA.createdAt)]})]},QA.id))})]}):o.jsxs(o.Fragment,{children:[o.jsx("div",{className:"flex-1 overflow-y-auto px-3 py-3 research-messages text-[13px]",children:i?eA.length===0?o.jsx("div",{className:"text-xs text-muted-foreground text-center py-8",children:o.jsx("p",{children:"Ask a question to start researching."})}):o.jsxs("div",{className:"space-y-1.5",children:[eA.map((QA,qA)=>{if(QA.role==="user"){const PA=eA[qA+1];return o.jsx(dc,{sessionId:i,message:QA,isFirst:qA===0,nextAssistantMessageId:PA?.role==="assistant"?PA.id:void 0},QA.id)}if(QA.role==="assistant"){const PA=qA>0?eA[qA-1]:null,Ce=eA[qA+1],MA=PA?.role!=="assistant",ZA=Ce?.role==="assistant";return o.jsx(Ic,{sessionId:i,message:QA,showHeader:MA,hasNextAssistantMessage:ZA,isLastMessage:qA===eA.length-1,compact:!0,onNavigateToSession:t},QA.id)}return null}),o.jsx("div",{ref:D})]}):o.jsxs("div",{className:"text-xs text-muted-foreground text-center py-8",children:[o.jsx(dr,{className:"w-8 h-8 mx-auto mb-2 text-muted-foreground/50"}),o.jsx("p",{children:"Start researching by asking a question below."})]})}),o.jsxs("div",{className:"p-3 border-t border-border",children:[o.jsx("div",{className:"relative flex flex-col rounded-3xl bg-card border border-border focus-within:border-teal-500/60 focus-within:ring-1 focus-within:ring-teal-500/40 p-1",children:o.jsxs("div",{className:"flex items-end gap-1",children:[o.jsx(Pn,{ref:p,value:B,onChange:QA=>u(QA.target.value),onKeyDown:j,placeholder:"Ask anything...",disabled:!e||x.isPending||K.isPending,rows:1,className:"flex-1 border-0 bg-transparent pl-2 pr-1 py-2 max-h-[120px] overflow-y-auto leading-normal resize-none scrollbar-hide text-sm focus:ring-0 focus:outline-none",style:{height:"2.25rem"}}),o.jsx("button",{type:"button",onClick:q,disabled:!B.trim()||!e||x.isPending||K.isPending||R,className:`flex items-center justify-center w-9 h-9 rounded-full transition-colors flex-shrink-0 ${B.trim()&&e&&!R?"bg-teal-500 hover:bg-teal-600 text-white":"bg-transparent text-muted-foreground"}`,children:x.isPending||K.isPending?o.jsx(Je,{className:"w-4 h-4 animate-spin"}):o.jsx(HQ,{className:"w-4 h-4"})})]})}),d==="success"&&o.jsxs("div",{className:"flex items-center gap-2 mt-2 px-2 py-1.5 text-xs rounded-lg bg-teal-500/10 border border-teal-500/30 text-teal-600 dark:text-teal-400",children:[o.jsx(Ht,{className:"w-3 h-3 flex-shrink-0"}),o.jsx("span",{className:"flex-1",children:"Context injected — will be used on next request"}),o.jsx("button",{type:"button",onClick:()=>f("idle"),className:"hover:text-teal-500",children:o.jsx(ot,{className:"w-3 h-3"})})]}),d==="error"&&o.jsxs("div",{className:"flex items-center gap-2 mt-2 px-2 py-1.5 text-xs rounded-lg bg-red-500/10 border border-red-500/30 text-red-600 dark:text-red-400",children:[o.jsx(ot,{className:"w-3 h-3 flex-shrink-0"}),o.jsx("span",{className:"flex-1",children:"Failed to inject context"}),o.jsx("button",{type:"button",onClick:()=>f("idle"),className:"hover:text-red-500",children:o.jsx(ot,{className:"w-3 h-3"})})]}),o.jsxs("div",{className:"flex gap-2 mt-2",children:[o.jsxs("button",{type:"button",onClick:G,disabled:!i||W.isPending||R||C,className:`flex-1 flex items-center justify-center gap-1.5 px-2 py-1.5 text-xs rounded-lg transition-colors disabled:opacity-50 disabled:cursor-not-allowed ${C?"bg-teal-500/10 text-teal-600 dark:text-teal-400 border border-teal-500/30":"bg-muted hover:bg-muted/80 text-muted-foreground hover:text-foreground"}`,title:C?"Already injected into main session":"Inject findings into main session",children:[W.isPending?o.jsx(Je,{className:"w-3 h-3 animate-spin"}):C?o.jsx(Ht,{className:"w-3 h-3"}):o.jsx(UC,{className:"w-3 h-3"}),C?"Injected":"Inject"]}),o.jsxs("button",{type:"button",onClick:J,disabled:!i||$.isPending||R,className:"flex-1 flex items-center justify-center gap-1.5 px-2 py-1.5 text-xs rounded-lg bg-muted hover:bg-muted/80 text-muted-foreground hover:text-foreground transition-colors disabled:opacity-50 disabled:cursor-not-allowed",title:"Export to new main session",children:[$.isPending?o.jsx(Je,{className:"w-3 h-3 animate-spin"}):o.jsx(Gt,{className:"w-3 h-3"}),"Export"]})]})]})]}),o.jsxs("div",{className:"h-9 px-3 border-t border-border text-xs text-muted-foreground flex items-center justify-between",children:[o.jsxs("span",{className:"text-[10px]",children:[S.length," research session",S.length!==1?"s":""]}),(bA||LA)&&o.jsxs("button",{type:"button",onClick:()=>c(!0),className:"flex items-center gap-1 text-[10px] hover:text-foreground transition-colors",children:[o.jsx("span",{className:"opacity-60",children:bA}),o.jsx("span",{className:"opacity-40",children:"/"}),o.jsx("span",{children:LA}),o.jsx(qt,{className:"w-3 h-3 opacity-40"})]})]}),o.jsx(So,{isOpen:E,onClose:()=>c(!1),title:"Select Model for Research",maxWidth:"md",children:(rA||sA)&&o.jsx(rc,{provider:rA,model:sA,onChange:h})})]})]})});function Qy(A){const e=Date.now()-A,t=Math.floor(e/6e4);if(t<1)return"just now";if(t<60)return`${t}m ago`;const s=Math.floor(t/60);return s<24?`${s}h ago`:`${Math.floor(s/24)}d ago`}m.memo(function({parentSessionId:e}){const t=mt(i=>i.isExpanded),s=mt(i=>i.toggleSidebar),{data:n}=GE(e??null),r=n?.sessions?.length??0;return o.jsxs("button",{type:"button",onClick:s,className:`relative h-12 w-full transition-colors touch-manipulation flex items-center justify-center border-r-2 ${t?"bg-muted border-primary":"border-transparent hover:bg-muted/50"}`,title:"Research (⌘⇧R)",children:[o.jsx(dr,{className:"size-[18px] text-muted-foreground mx-auto"}),r>0&&o.jsx("span",{className:"absolute top-0.5 right-0.5 w-4 h-4 bg-primary text-primary-foreground text-[10px] rounded-full flex items-center justify-center font-semibold",children:r>9?"9+":r})]})});var By=Object.defineProperty,Sn=Object.getOwnPropertySymbols,vE=Object.prototype.hasOwnProperty,SE=Object.prototype.propertyIsEnumerable,kQ=(A,e,t)=>e in A?By(A,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):A[e]=t,Ga=(A,e)=>{for(var t in e||(e={}))vE.call(e,t)&&kQ(A,t,e[t]);if(Sn)for(var t of Sn(e))SE.call(e,t)&&kQ(A,t,e[t]);return A},va=(A,e)=>{var t={};for(var s in A)vE.call(A,s)&&e.indexOf(s)<0&&(t[s]=A[s]);if(A!=null&&Sn)for(var s of Sn(A))e.indexOf(s)<0&&SE.call(A,s)&&(t[s]=A[s]);return t};var xs;(A=>{const e=class Fe{constructor(g,l,B,u){if(this.version=g,this.errorCorrectionLevel=l,this.modules=[],this.isFunction=[],g<Fe.MIN_VERSION||g>Fe.MAX_VERSION)throw new RangeError("Version value out of range");if(u<-1||u>7)throw new RangeError("Mask value out of range");this.size=g*4+17;let E=[];for(let d=0;d<this.size;d++)E.push(!1);for(let d=0;d<this.size;d++)this.modules.push(E.slice()),this.isFunction.push(E.slice());this.drawFunctionPatterns();const c=this.addEccAndInterleave(B);if(this.drawCodewords(c),u==-1){let d=1e9;for(let f=0;f<8;f++){this.applyMask(f),this.drawFormatBits(f);const p=this.getPenaltyScore();p<d&&(u=f,d=p),this.applyMask(f)}}n(0<=u&&u<=7),this.mask=u,this.applyMask(u),this.drawFormatBits(u),this.isFunction=[]}static encodeText(g,l){const B=A.QrSegment.makeSegments(g);return Fe.encodeSegments(B,l)}static encodeBinary(g,l){const B=A.QrSegment.makeBytes(g);return Fe.encodeSegments([B],l)}static encodeSegments(g,l,B=1,u=40,E=-1,c=!0){if(!(Fe.MIN_VERSION<=B&&B<=u&&u<=Fe.MAX_VERSION)||E<-1||E>7)throw new RangeError("Invalid value");let d,f;for(d=B;;d++){const k=Fe.getNumDataCodewords(d,l)*8,L=i.getTotalBits(g,d);if(L<=k){f=L;break}if(d>=u)throw new RangeError("Data too long")}for(const k of[Fe.Ecc.MEDIUM,Fe.Ecc.QUARTILE,Fe.Ecc.HIGH])c&&f<=Fe.getNumDataCodewords(d,k)*8&&(l=k);let p=[];for(const k of g){t(k.mode.modeBits,4,p),t(k.numChars,k.mode.numCharCountBits(d),p);for(const L of k.getData())p.push(L)}n(p.length==f);const D=Fe.getNumDataCodewords(d,l)*8;n(p.length<=D),t(0,Math.min(4,D-p.length),p),t(0,(8-p.length%8)%8,p),n(p.length%8==0);for(let k=236;p.length<D;k^=253)t(k,8,p);let F=[];for(;F.length*8<p.length;)F.push(0);return p.forEach((k,L)=>F[L>>>3]|=k<<7-(L&7)),new Fe(d,l,F,E)}getModule(g,l){return 0<=g&&g<this.size&&0<=l&&l<this.size&&this.modules[l][g]}getModules(){return this.modules}drawFunctionPatterns(){for(let B=0;B<this.size;B++)this.setFunctionModule(6,B,B%2==0),this.setFunctionModule(B,6,B%2==0);this.drawFinderPattern(3,3),this.drawFinderPattern(this.size-4,3),this.drawFinderPattern(3,this.size-4);const g=this.getAlignmentPatternPositions(),l=g.length;for(let B=0;B<l;B++)for(let u=0;u<l;u++)B==0&&u==0||B==0&&u==l-1||B==l-1&&u==0||this.drawAlignmentPattern(g[B],g[u]);this.drawFormatBits(0),this.drawVersion()}drawFormatBits(g){const l=this.errorCorrectionLevel.formatBits<<3|g;let B=l;for(let E=0;E<10;E++)B=B<<1^(B>>>9)*1335;const u=(l<<10|B)^21522;n(u>>>15==0);for(let E=0;E<=5;E++)this.setFunctionModule(8,E,s(u,E));this.setFunctionModule(8,7,s(u,6)),this.setFunctionModule(8,8,s(u,7)),this.setFunctionModule(7,8,s(u,8));for(let E=9;E<15;E++)this.setFunctionModule(14-E,8,s(u,E));for(let E=0;E<8;E++)this.setFunctionModule(this.size-1-E,8,s(u,E));for(let E=8;E<15;E++)this.setFunctionModule(8,this.size-15+E,s(u,E));this.setFunctionModule(8,this.size-8,!0)}drawVersion(){if(this.version<7)return;let g=this.version;for(let B=0;B<12;B++)g=g<<1^(g>>>11)*7973;const l=this.version<<12|g;n(l>>>18==0);for(let B=0;B<18;B++){const u=s(l,B),E=this.size-11+B%3,c=Math.floor(B/3);this.setFunctionModule(E,c,u),this.setFunctionModule(c,E,u)}}drawFinderPattern(g,l){for(let B=-4;B<=4;B++)for(let u=-4;u<=4;u++){const E=Math.max(Math.abs(u),Math.abs(B)),c=g+u,d=l+B;0<=c&&c<this.size&&0<=d&&d<this.size&&this.setFunctionModule(c,d,E!=2&&E!=4)}}drawAlignmentPattern(g,l){for(let B=-2;B<=2;B++)for(let u=-2;u<=2;u++)this.setFunctionModule(g+u,l+B,Math.max(Math.abs(u),Math.abs(B))!=1)}setFunctionModule(g,l,B){this.modules[l][g]=B,this.isFunction[l][g]=!0}addEccAndInterleave(g){const l=this.version,B=this.errorCorrectionLevel;if(g.length!=Fe.getNumDataCodewords(l,B))throw new RangeError("Invalid argument");const u=Fe.NUM_ERROR_CORRECTION_BLOCKS[B.ordinal][l],E=Fe.ECC_CODEWORDS_PER_BLOCK[B.ordinal][l],c=Math.floor(Fe.getNumRawDataModules(l)/8),d=u-c%u,f=Math.floor(c/u);let p=[];const D=Fe.reedSolomonComputeDivisor(E);for(let k=0,L=0;k<u;k++){let K=g.slice(L,L+f-E+(k<d?0:1));L+=K.length;const W=Fe.reedSolomonComputeRemainder(K,D);k<d&&K.push(0),p.push(K.concat(W))}let F=[];for(let k=0;k<p[0].length;k++)p.forEach((L,K)=>{(k!=f-E||K>=d)&&F.push(L[k])});return n(F.length==c),F}drawCodewords(g){if(g.length!=Math.floor(Fe.getNumRawDataModules(this.version)/8))throw new RangeError("Invalid argument");let l=0;for(let B=this.size-1;B>=1;B-=2){B==6&&(B=5);for(let u=0;u<this.size;u++)for(let E=0;E<2;E++){const c=B-E,f=(B+1&2)==0?this.size-1-u:u;!this.isFunction[f][c]&&l<g.length*8&&(this.modules[f][c]=s(g[l>>>3],7-(l&7)),l++)}}n(l==g.length*8)}applyMask(g){if(g<0||g>7)throw new RangeError("Mask value out of range");for(let l=0;l<this.size;l++)for(let B=0;B<this.size;B++){let u;switch(g){case 0:u=(B+l)%2==0;break;case 1:u=l%2==0;break;case 2:u=B%3==0;break;case 3:u=(B+l)%3==0;break;case 4:u=(Math.floor(B/3)+Math.floor(l/2))%2==0;break;case 5:u=B*l%2+B*l%3==0;break;case 6:u=(B*l%2+B*l%3)%2==0;break;case 7:u=((B+l)%2+B*l%3)%2==0;break;default:throw new Error("Unreachable")}!this.isFunction[l][B]&&u&&(this.modules[l][B]=!this.modules[l][B])}}getPenaltyScore(){let g=0;for(let E=0;E<this.size;E++){let c=!1,d=0,f=[0,0,0,0,0,0,0];for(let p=0;p<this.size;p++)this.modules[E][p]==c?(d++,d==5?g+=Fe.PENALTY_N1:d>5&&g++):(this.finderPenaltyAddHistory(d,f),c||(g+=this.finderPenaltyCountPatterns(f)*Fe.PENALTY_N3),c=this.modules[E][p],d=1);g+=this.finderPenaltyTerminateAndCount(c,d,f)*Fe.PENALTY_N3}for(let E=0;E<this.size;E++){let c=!1,d=0,f=[0,0,0,0,0,0,0];for(let p=0;p<this.size;p++)this.modules[p][E]==c?(d++,d==5?g+=Fe.PENALTY_N1:d>5&&g++):(this.finderPenaltyAddHistory(d,f),c||(g+=this.finderPenaltyCountPatterns(f)*Fe.PENALTY_N3),c=this.modules[p][E],d=1);g+=this.finderPenaltyTerminateAndCount(c,d,f)*Fe.PENALTY_N3}for(let E=0;E<this.size-1;E++)for(let c=0;c<this.size-1;c++){const d=this.modules[E][c];d==this.modules[E][c+1]&&d==this.modules[E+1][c]&&d==this.modules[E+1][c+1]&&(g+=Fe.PENALTY_N2)}let l=0;for(const E of this.modules)l=E.reduce((c,d)=>c+(d?1:0),l);const B=this.size*this.size,u=Math.ceil(Math.abs(l*20-B*10)/B)-1;return n(0<=u&&u<=9),g+=u*Fe.PENALTY_N4,n(0<=g&&g<=2568888),g}getAlignmentPatternPositions(){if(this.version==1)return[];{const g=Math.floor(this.version/7)+2,l=this.version==32?26:Math.ceil((this.version*4+4)/(g*2-2))*2;let B=[6];for(let u=this.size-7;B.length<g;u-=l)B.splice(1,0,u);return B}}static getNumRawDataModules(g){if(g<Fe.MIN_VERSION||g>Fe.MAX_VERSION)throw new RangeError("Version number out of range");let l=(16*g+128)*g+64;if(g>=2){const B=Math.floor(g/7)+2;l-=(25*B-10)*B-55,g>=7&&(l-=36)}return n(208<=l&&l<=29648),l}static getNumDataCodewords(g,l){return Math.floor(Fe.getNumRawDataModules(g)/8)-Fe.ECC_CODEWORDS_PER_BLOCK[l.ordinal][g]*Fe.NUM_ERROR_CORRECTION_BLOCKS[l.ordinal][g]}static reedSolomonComputeDivisor(g){if(g<1||g>255)throw new RangeError("Degree out of range");let l=[];for(let u=0;u<g-1;u++)l.push(0);l.push(1);let B=1;for(let u=0;u<g;u++){for(let E=0;E<l.length;E++)l[E]=Fe.reedSolomonMultiply(l[E],B),E+1<l.length&&(l[E]^=l[E+1]);B=Fe.reedSolomonMultiply(B,2)}return l}static reedSolomonComputeRemainder(g,l){let B=l.map(u=>0);for(const u of g){const E=u^B.shift();B.push(0),l.forEach((c,d)=>B[d]^=Fe.reedSolomonMultiply(c,E))}return B}static reedSolomonMultiply(g,l){if(g>>>8||l>>>8)throw new RangeError("Byte out of range");let B=0;for(let u=7;u>=0;u--)B=B<<1^(B>>>7)*285,B^=(l>>>u&1)*g;return n(B>>>8==0),B}finderPenaltyCountPatterns(g){const l=g[1];n(l<=this.size*3);const B=l>0&&g[2]==l&&g[3]==l*3&&g[4]==l&&g[5]==l;return(B&&g[0]>=l*4&&g[6]>=l?1:0)+(B&&g[6]>=l*4&&g[0]>=l?1:0)}finderPenaltyTerminateAndCount(g,l,B){return g&&(this.finderPenaltyAddHistory(l,B),l=0),l+=this.size,this.finderPenaltyAddHistory(l,B),this.finderPenaltyCountPatterns(B)}finderPenaltyAddHistory(g,l){l[0]==0&&(g+=this.size),l.pop(),l.unshift(g)}};e.MIN_VERSION=1,e.MAX_VERSION=40,e.PENALTY_N1=3,e.PENALTY_N2=3,e.PENALTY_N3=40,e.PENALTY_N4=10,e.ECC_CODEWORDS_PER_BLOCK=[[-1,7,10,15,20,26,18,20,24,30,18,20,24,26,30,22,24,28,30,28,28,28,28,30,30,26,28,30,30,30,30,30,30,30,30,30,30,30,30,30,30],[-1,10,16,26,18,24,16,18,22,22,26,30,22,22,24,24,28,28,26,26,26,26,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28],[-1,13,22,18,26,18,24,18,22,20,24,28,26,24,20,30,24,28,28,26,30,28,30,30,30,30,28,30,30,30,30,30,30,30,30,30,30,30,30,30,30],[-1,17,28,22,16,22,28,26,26,24,28,24,28,22,24,24,30,28,28,26,28,30,24,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30]],e.NUM_ERROR_CORRECTION_BLOCKS=[[-1,1,1,1,1,1,2,2,2,2,4,4,4,4,4,6,6,6,6,7,8,8,9,9,10,12,12,12,13,14,15,16,17,18,19,19,20,21,22,24,25],[-1,1,1,1,2,2,4,4,4,5,5,5,8,9,9,10,10,11,13,14,16,17,17,18,20,21,23,25,26,28,29,31,33,35,37,38,40,43,45,47,49],[-1,1,1,2,2,4,4,6,6,8,8,8,10,12,16,12,17,16,18,21,20,23,23,25,27,29,34,34,35,38,40,43,45,48,51,53,56,59,62,65,68],[-1,1,1,2,4,4,4,5,6,8,8,11,11,16,16,18,16,19,21,25,25,25,34,30,32,35,37,40,42,45,48,51,54,57,60,63,66,70,74,77,81]],A.QrCode=e;function t(a,g,l){if(g<0||g>31||a>>>g)throw new RangeError("Value out of range");for(let B=g-1;B>=0;B--)l.push(a>>>B&1)}function s(a,g){return(a>>>g&1)!=0}function n(a){if(!a)throw new Error("Assertion error")}const r=class Et{constructor(g,l,B){if(this.mode=g,this.numChars=l,this.bitData=B,l<0)throw new RangeError("Invalid argument");this.bitData=B.slice()}static makeBytes(g){let l=[];for(const B of g)t(B,8,l);return new Et(Et.Mode.BYTE,g.length,l)}static makeNumeric(g){if(!Et.isNumeric(g))throw new RangeError("String contains non-numeric characters");let l=[];for(let B=0;B<g.length;){const u=Math.min(g.length-B,3);t(parseInt(g.substring(B,B+u),10),u*3+1,l),B+=u}return new Et(Et.Mode.NUMERIC,g.length,l)}static makeAlphanumeric(g){if(!Et.isAlphanumeric(g))throw new RangeError("String contains unencodable characters in alphanumeric mode");let l=[],B;for(B=0;B+2<=g.length;B+=2){let u=Et.ALPHANUMERIC_CHARSET.indexOf(g.charAt(B))*45;u+=Et.ALPHANUMERIC_CHARSET.indexOf(g.charAt(B+1)),t(u,11,l)}return B<g.length&&t(Et.ALPHANUMERIC_CHARSET.indexOf(g.charAt(B)),6,l),new Et(Et.Mode.ALPHANUMERIC,g.length,l)}static makeSegments(g){return g==""?[]:Et.isNumeric(g)?[Et.makeNumeric(g)]:Et.isAlphanumeric(g)?[Et.makeAlphanumeric(g)]:[Et.makeBytes(Et.toUtf8ByteArray(g))]}static makeEci(g){let l=[];if(g<0)throw new RangeError("ECI assignment value out of range");if(g<128)t(g,8,l);else if(g<16384)t(2,2,l),t(g,14,l);else if(g<1e6)t(6,3,l),t(g,21,l);else throw new RangeError("ECI assignment value out of range");return new Et(Et.Mode.ECI,0,l)}static isNumeric(g){return Et.NUMERIC_REGEX.test(g)}static isAlphanumeric(g){return Et.ALPHANUMERIC_REGEX.test(g)}getData(){return this.bitData.slice()}static getTotalBits(g,l){let B=0;for(const u of g){const E=u.mode.numCharCountBits(l);if(u.numChars>=1<<E)return 1/0;B+=4+E+u.bitData.length}return B}static toUtf8ByteArray(g){g=encodeURI(g);let l=[];for(let B=0;B<g.length;B++)g.charAt(B)!="%"?l.push(g.charCodeAt(B)):(l.push(parseInt(g.substring(B+1,B+3),16)),B+=2);return l}};r.NUMERIC_REGEX=/^[0-9]*$/,r.ALPHANUMERIC_REGEX=/^[A-Z0-9 $%*+.\/:-]*$/,r.ALPHANUMERIC_CHARSET="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ $%*+-./:";let i=r;A.QrSegment=r})(xs||(xs={}));(A=>{(e=>{const t=class{constructor(n,r){this.ordinal=n,this.formatBits=r}};t.LOW=new t(0,1),t.MEDIUM=new t(1,0),t.QUARTILE=new t(2,3),t.HIGH=new t(3,2),e.Ecc=t})(A.QrCode||(A.QrCode={}))})(xs||(xs={}));(A=>{(e=>{const t=class{constructor(n,r){this.modeBits=n,this.numBitsCharCount=r}numCharCountBits(n){return this.numBitsCharCount[Math.floor((n+7)/17)]}};t.NUMERIC=new t(1,[10,12,14]),t.ALPHANUMERIC=new t(2,[9,11,13]),t.BYTE=new t(4,[8,16,16]),t.KANJI=new t(8,[8,10,12]),t.ECI=new t(7,[0,0,0]),e.Mode=t})(A.QrSegment||(A.QrSegment={}))})(xs||(xs={}));var Ts=xs;var cy={L:Ts.QrCode.Ecc.LOW,M:Ts.QrCode.Ecc.MEDIUM,Q:Ts.QrCode.Ecc.QUARTILE,H:Ts.QrCode.Ecc.HIGH},UE=128,RE="L",KE="#FFFFFF",LE="#000000",JE=!1,jE=1,Ey=4,Cy=0,uy=.1;function TE(A,e=0){const t=[];return A.forEach(function(s,n){let r=null;s.forEach(function(i,a){if(!i&&r!==null){t.push(`M${r+e} ${n+e}h${a-r}v1H${r+e}z`),r=null;return}if(a===s.length-1){if(!i)return;r===null?t.push(`M${a+e},${n+e} h1v1H${a+e}z`):t.push(`M${r+e},${n+e} h${a+1-r}v1H${r+e}z`);return}i&&r===null&&(r=a)})}),t.join("")}function OE(A,e){return A.slice().map((t,s)=>s<e.y||s>=e.y+e.h?t:t.map((n,r)=>r<e.x||r>=e.x+e.w?n:!1))}function Iy(A,e,t,s){if(s==null)return null;const n=A.length+t*2,r=Math.floor(e*uy),i=n/e,a=(s.width||r)*i,g=(s.height||r)*i,l=s.x==null?A.length/2-a/2:s.x*i,B=s.y==null?A.length/2-g/2:s.y*i,u=s.opacity==null?1:s.opacity;let E=null;if(s.excavate){let d=Math.floor(l),f=Math.floor(B),p=Math.ceil(a+l-d),D=Math.ceil(g+B-f);E={x:d,y:f,w:p,h:D}}const c=s.crossOrigin;return{x:l,y:B,h:g,w:a,excavation:E,opacity:u,crossOrigin:c}}function dy(A,e){return e!=null?Math.max(Math.floor(e),0):A?Ey:Cy}function qE({value:A,level:e,minVersion:t,includeMargin:s,marginSize:n,imageSettings:r,size:i,boostLevel:a}){let g=Qt.useMemo(()=>{const d=(Array.isArray(A)?A:[A]).reduce((f,p)=>(f.push(...Ts.QrSegment.makeSegments(p)),f),[]);return Ts.QrCode.encodeSegments(d,cy[e],t,void 0,void 0,a)},[A,e,t,a]);const{cells:l,margin:B,numCells:u,calculatedImageSettings:E}=Qt.useMemo(()=>{let c=g.getModules();const d=dy(s,n),f=c.length+d*2,p=Iy(c,i,d,r);return{cells:c,margin:d,numCells:f,calculatedImageSettings:p}},[g,i,r,s,n]);return{qrcode:g,margin:B,cells:l,numCells:u,calculatedImageSettings:E}}var hy=(function(){try{new Path2D().addPath(new Path2D)}catch{return!1}return!0})(),py=Qt.forwardRef(function(e,t){const s=e,{value:n,size:r=UE,level:i=RE,bgColor:a=KE,fgColor:g=LE,includeMargin:l=JE,minVersion:B=jE,boostLevel:u,marginSize:E,imageSettings:c}=s,f=va(s,["value","size","level","bgColor","fgColor","includeMargin","minVersion","boostLevel","marginSize","imageSettings"]),{style:p}=f,D=va(f,["style"]),F=c?.src,k=Qt.useRef(null),L=Qt.useRef(null),K=Qt.useCallback(Q=>{k.current=Q,typeof t=="function"?t(Q):t&&(t.current=Q)},[t]),[W,$]=Qt.useState(!1),{margin:X,cells:U,numCells:O,calculatedImageSettings:T}=qE({value:n,level:i,minVersion:B,boostLevel:u,includeMargin:l,marginSize:E,imageSettings:c,size:r});Qt.useEffect(()=>{if(k.current!=null){const Q=k.current,I=Q.getContext("2d");if(!I)return;let N=U;const G=L.current,J=T!=null&&G!==null&&G.complete&&G.naturalHeight!==0&&G.naturalWidth!==0;J&&T.excavation!=null&&(N=OE(U,T.excavation));const q=window.devicePixelRatio||1;Q.height=Q.width=r*q;const j=r/O*q;I.scale(j,j),I.fillStyle=a,I.fillRect(0,0,O,O),I.fillStyle=g,hy?I.fill(new Path2D(TE(N,X))):U.forEach(function(R,C){R.forEach(function(h,v){h&&I.fillRect(v+X,C+X,1,1)})}),T&&(I.globalAlpha=T.opacity),J&&I.drawImage(G,T.x+X,T.y+X,T.w,T.h)}}),Qt.useEffect(()=>{$(!1)},[F]);const H=Ga({height:r,width:r},p);let x=null;return F!=null&&(x=Qt.createElement("img",{src:F,key:F,style:{display:"none"},onLoad:()=>{$(!0)},ref:L,crossOrigin:T?.crossOrigin})),Qt.createElement(Qt.Fragment,null,Qt.createElement("canvas",Ga({style:H,height:r,width:r,ref:K,role:"img"},D)),x)});py.displayName="QRCodeCanvas";var ai=Qt.forwardRef(function(e,t){const s=e,{value:n,size:r=UE,level:i=RE,bgColor:a=KE,fgColor:g=LE,includeMargin:l=JE,minVersion:B=jE,boostLevel:u,title:E,marginSize:c,imageSettings:d}=s,f=va(s,["value","size","level","bgColor","fgColor","includeMargin","minVersion","boostLevel","title","marginSize","imageSettings"]),{margin:p,cells:D,numCells:F,calculatedImageSettings:k}=qE({value:n,level:i,minVersion:B,boostLevel:u,includeMargin:l,marginSize:c,imageSettings:d,size:r});let L=D,K=null;d!=null&&k!=null&&(k.excavation!=null&&(L=OE(D,k.excavation)),K=Qt.createElement("image",{href:d.src,height:k.h,width:k.w,x:k.x+p,y:k.y+p,preserveAspectRatio:"none",opacity:k.opacity,crossOrigin:k.crossOrigin}));const W=TE(L,p);return Qt.createElement("svg",Ga({height:r,width:r,viewBox:`0 0 ${F} ${F}`,ref:t,role:"img"},f),!!E&&Qt.createElement("title",null,E),Qt.createElement("path",{fill:a,d:`M0,0 h${F}v${F}H0z`,shapeRendering:"crispEdges"}),Qt.createElement("path",{fill:g,d:W,shapeRendering:"crispEdges"}),K)});ai.displayName="QRCodeSVG";const gr=["wallet","defaults"],Nt=dt((A,e)=>({isOpen:!1,currentStep:"wallet",manageMode:!1,isLoading:!1,error:null,authStatus:null,setOpen:t=>A({isOpen:t}),setStep:t=>A({currentStep:t}),setManageMode:t=>A({manageMode:t}),setLoading:t=>A({isLoading:t}),setError:t=>A({error:t}),setAuthStatus:t=>A({authStatus:t}),nextStep:()=>{const{currentStep:t}=e(),s=gr.indexOf(t);s<gr.length-1&&A({currentStep:gr[s+1]})},prevStep:()=>{const{currentStep:t}=e(),s=gr.indexOf(t);s>0&&A({currentStep:gr[s-1]})},reset:()=>A({isOpen:!1,currentStep:"wallet",manageMode:!1,isLoading:!1,error:null})})),zi=typeof window<"u"&&window.self!==window.top;function Jg(){const A=Nt(H=>H.setAuthStatus),e=Nt(H=>H.setOpen),t=Nt(H=>H.setLoading),s=Nt(H=>H.setError),n=Nt(H=>H.authStatus),r=Nt(H=>H.isOpen),i=ke(),[a,g]=m.useState(!1),[l,B]=m.useState(!1),u=m.useRef(null),E=m.useRef(new Set),c=m.useCallback(async()=>{t(!0),s(null);try{const H=await mA.getAuthStatus();return A(H),i.invalidateQueries({queryKey:["config"]}),i.invalidateQueries({queryKey:["models"]}),H}catch(H){const x=H instanceof Error?H.message:"Failed to load";return s(x),null}finally{t(!1)}},[A,t,s,i]),d=m.useCallback(async()=>{const H=await c();if(H){const x=Object.values(H.providers).some(I=>I.configured);(!H.onboardingComplete||!x||!H.ottorouter.configured)&&e(!0)}g(!0)},[c,e]),f=m.useCallback(async()=>{t(!0),s(null);try{const H=await mA.setupOttoRouterWallet();return await c(),H}catch(H){const x=H instanceof Error?H.message:"Setup failed";throw s(x),H}finally{t(!1)}},[c,t,s]),p=m.useCallback(async H=>{t(!0),s(null);try{const x=await mA.importOttoRouterWallet(H);return await c(),x}catch(x){const Q=x instanceof Error?x.message:"Import failed";throw s(Q),x}finally{t(!1)}},[c,t,s]),D=m.useCallback(async(H,x)=>{t(!0),s(null);try{const Q=await mA.addProvider(H,x);return await c(),Q}catch(Q){const I=Q instanceof Error?Q.message:"Failed to add provider";throw s(I),Q}finally{t(!1)}},[c,t,s]),F=m.useCallback(async H=>{t(!0),s(null);try{const x=await mA.updateProviderSettings(H.id,{enabled:!0,custom:!0,label:H.label,baseURL:H.baseURL,...H.apiKey?{apiKey:H.apiKey}:{},compatibility:H.compatibility,models:H.models,allowAnyModel:H.allowAnyModel});return await c(),x}catch(x){const Q=x instanceof Error?x.message:"Failed to add custom provider";throw s(Q),x}finally{t(!1)}},[c,t,s]),k=m.useCallback(async H=>{t(!0),s(null);try{const Q=Nt.getState().authStatus?.providers[H]?.custom?await mA.deleteProviderSettings(H):await mA.removeProvider(H);return await c(),Q}catch(x){const Q=x instanceof Error?x.message:"Failed to remove provider";throw s(Q),x}finally{t(!1)}},[c,t,s]),L=m.useCallback(async()=>{t(!0),s(null);try{await mA.completeOnboarding(),await c(),e(!1)}catch(H){const x=H instanceof Error?H.message:"Failed to complete onboarding";throw s(x),H}finally{t(!1)}},[c,t,s,e]),K=m.useCallback(()=>{const H=Nt.getState().authStatus;H&&(E.current=new Set(Object.entries(H.providers).filter(([,x])=>x.configured).map(([x])=>x)))},[]),W=m.useCallback((H,x)=>{const Q=mA.getOAuthStartUrl(H,x);if(sa(Q))return K(),B(!0),null;if(zi)return K(),window.parent.postMessage({type:"otto-open-url",url:Q},"*"),B(!0),null;const I=600,N=700,G=window.screenX+(window.outerWidth-I)/2,J=window.screenY+(window.outerHeight-N)/2;return window.open(Q,"oauth_popup",`width=${I},height=${N},left=${G},top=${J},toolbar=no,menubar=no`)},[K]),$=m.useCallback(async(H,x)=>{const{url:Q,sessionId:I}=await mA.getOAuthUrl(H,x);if(sa(Q))return K(),B(!0),{popup:null,sessionId:I};if(zi)return K(),window.parent.postMessage({type:"otto-open-url",url:Q},"*"),B(!0),{popup:null,sessionId:I};const N=600,G=700,J=window.screenX+(window.outerWidth-N)/2,q=window.screenY+(window.outerHeight-G)/2;return{popup:window.open(Q,"oauth_popup",`width=${N},height=${G},left=${J},top=${q},toolbar=no,menubar=no`),sessionId:I}},[K]),X=m.useCallback(async(H,x,Q)=>{t(!0),s(null);try{return await mA.exchangeOAuthCode(H,x,Q),await c(),!0}catch(I){const N=I instanceof Error?I.message:"Failed to exchange code";throw s(N),I}finally{t(!1)}},[c,t,s]);m.useEffect(()=>{if(!l||!zi)return;u.current=setInterval(()=>{c()},3e3);const H=setTimeout(()=>{B(!1)},3e5);return()=>{clearInterval(u.current),clearTimeout(H)}},[l,c]),m.useEffect(()=>{if(!l||!n)return;Object.entries(n.providers).filter(([,Q])=>Q.configured).some(([Q])=>!E.current.has(Q))&&B(!1)},[n,l]),m.useEffect(()=>{const H=x=>{x.data?.type==="oauth-success"&&c()};return window.addEventListener("message",H),()=>window.removeEventListener("message",H)},[c]);const U=m.useCallback(async H=>{const x=await mA.pollCopilotDeviceFlow(H);return x.status==="complete"&&await c(),x},[c]),O=m.useCallback(async H=>{t(!0),s(null);try{const x=await mA.saveCopilotToken(H);return await c(),x}catch(x){const Q=x instanceof Error?x.message:"Failed to save Copilot token";throw s(Q),x}finally{t(!1)}},[c,t,s]),T=m.useCallback(async()=>{t(!0),s(null);try{const H=await mA.importCopilotTokenFromGh();return await c(),H}catch(H){const x=H instanceof Error?H.message:"Failed to import Copilot token from GH";throw s(x),H}finally{t(!1)}},[c,t,s]);return{authStatus:n,isOpen:r,initialized:a,fetchAuthStatus:c,checkOnboarding:d,setupWallet:f,importWallet:p,addProvider:D,addCustomProvider:F,removeProvider:k,completeOnboarding:L,startOAuth:W,startOAuthManual:$,exchangeOAuthCode:X,startCopilotDeviceFlow:mA.startCopilotDeviceFlow.bind(mA),pollCopilotDeviceFlow:U,getCopilotAuthMethods:mA.getCopilotAuthMethods.bind(mA),saveCopilotToken:O,importCopilotTokenFromGh:T,getCopilotDiagnostics:mA.getCopilotDiagnostics.bind(mA)}}const rn="pendingPolarCheckout";function fy(){const A=m.useRef(!1),e=m.useRef(null),t=Ne(n=>n.setBalance),s=no(n=>n.removeToast);m.useEffect(()=>{if(A.current)return;const r=new URLSearchParams(window.location.search).get("topup"),i=localStorage.getItem(rn);if(r==="pending"||i){A.current=!0;const a=new URL(window.location.href);if(a.searchParams.delete("topup"),window.history.replaceState({},"",a.toString()),!i){ae.info("Checking top-up status...");return}e.current=ae.loading("Verifying top-up...");let g=0;const l=10,B=2e3,u=()=>{e.current&&(s(e.current),e.current=null)},E=async()=>{g++;try{const c=await mA.getPolarTopupStatus(i);if(c?.confirmed){localStorage.removeItem(rn),u();const d=await mA.getOttoRouterBalance();d?.balance!==void 0&&t(d.balance),ae.success(`Top-up confirmed! +$${c.amountUsd?.toFixed(2)} credited`);return}g<l?setTimeout(E,B):(localStorage.removeItem(rn),u(),ae.info("Top-up is still processing. Balance will update automatically."))}catch{g<l?setTimeout(E,B):(localStorage.removeItem(rn),u(),ae.error("Could not verify top-up. Please check your balance."))}};setTimeout(E,1500)}},[t,s])}const MQ="settings",bQ=320,my=320,wy=500,YE="IBM Plex Mono",xy=[YE,"System UI","Arial","Avenir","BlinkMacSystemFont","Courier New","Fira Code","Georgia","Helvetica","Inter","Menlo","Monaco","SF Mono","Segoe UI","Times New Roman","Ubuntu","Verdana"];function Dy(){const A=G0();return A||(typeof window>"u"||window.self===window.top?Promise.resolve(null):new Promise((e,t)=>{const s=crypto.randomUUID(),n=window.setTimeout(()=>{window.removeEventListener("message",r),e(null)},3e3);function r(i){if(!(i.data?.type!=="otto-system-fonts-result"||i.data.requestId!==s)){if(window.clearTimeout(n),window.removeEventListener("message",r),i.data.error){t(new Error(i.data.error));return}e(i.data.fonts??null)}}window.addEventListener("message",r),window.parent.postMessage({type:"otto-list-system-fonts",requestId:s},"*")}))}const qs=m.memo(function({title:e,icon:t,children:s,action:n}){return o.jsxs("div",{className:"border-b border-border",children:[o.jsxs("div",{className:"px-4 py-3 flex items-center gap-2 bg-muted/30",children:[t,o.jsx("span",{className:"text-sm font-medium flex-1",children:e}),n]}),o.jsx("div",{className:"px-4 py-3 space-y-3",children:s})]})}),Es=m.memo(function({label:e,value:t}){return o.jsxs("div",{className:"flex items-center justify-between text-sm",children:[o.jsx("span",{className:"text-muted-foreground",children:e}),o.jsx("span",{className:"font-mono text-foreground",children:t})]})}),lr=m.memo(function({label:e,checked:t,onChange:s}){return o.jsxs("div",{className:"flex min-w-0 items-center justify-between gap-3 text-sm",children:[o.jsx("span",{className:"min-w-0 flex-1 truncate text-muted-foreground",children:e}),o.jsx("button",{type:"button",role:"switch","aria-checked":t,onClick:()=>s(!t),className:`relative inline-flex h-6 w-11 shrink-0 items-center rounded-full transition-colors focus:outline-none focus:ring-2 focus:ring-primary focus:ring-offset-2 ${t?"bg-primary":"bg-muted"}`,children:o.jsx("span",{className:`inline-block h-4 w-4 transform rounded-full transition-transform ${t?"translate-x-6":"translate-x-1"} ${t?"bg-primary-foreground":"bg-foreground"}`})})]})}),Ir=m.memo(function({label:e,value:t,options:s,onChange:n,disabled:r}){const[i,a]=m.useState(!1),[g,l]=m.useState(null),B=m.useRef(null),u=s.find(E=>E.id===t);return m.useEffect(()=>{if(!i||!B.current)return;const E=()=>{const c=B.current?.getBoundingClientRect();if(!c)return;const d=Math.max(c.width,160);l({top:c.bottom+4,left:c.right-d,width:d})};return E(),window.addEventListener("scroll",E,!0),window.addEventListener("resize",E),()=>{window.removeEventListener("scroll",E,!0),window.removeEventListener("resize",E)}},[i]),o.jsxs("div",{className:"flex items-center justify-between text-sm",children:[o.jsx("span",{className:"text-muted-foreground",children:e}),o.jsxs("div",{className:"relative",children:[o.jsxs("button",{ref:B,type:"button",onClick:()=>!r&&a(!i),disabled:r,className:"flex items-center gap-1 px-2 py-1 text-xs font-mono bg-muted hover:bg-muted/80 rounded border border-border disabled:opacity-50",children:[o.jsx("span",{className:"max-w-[120px] truncate",children:u?.label||t||"Select..."}),o.jsx(qt,{className:"w-3 h-3"})]}),i&&g&&typeof document<"u"&&AC.createPortal(o.jsxs(o.Fragment,{children:[o.jsx("div",{className:"fixed inset-0 z-[10000]",onClick:()=>a(!1),role:"presentation"}),o.jsx("div",{className:"fixed z-[10001] max-h-[240px] overflow-y-auto bg-popover border border-border rounded-md shadow-lg",style:{top:g.top,left:g.left,minWidth:g.width},children:s.map(E=>o.jsx("button",{type:"button",onClick:()=>{n(E.id),a(!1)},className:`w-full px-3 py-2 text-left text-xs font-mono hover:bg-muted truncate ${E.id===t?"bg-muted/50":""}`,children:E.label},E.id))})]}),document.body)]})]})}),yy=m.memo(function({value:e,onChange:t}){const[s,n]=m.useState(!1),[r,i]=m.useState(""),[a,g]=m.useState([]),[l,B]=m.useState(!1),[u,E]=m.useState(null),c=typeof window<"u"&&typeof window.queryLocalFonts=="function",d=U0()||typeof window<"u"&&window.self!==window.top,f=m.useMemo(()=>Array.from(new Set([e,...a,...xy].filter(Boolean))).sort((k,L)=>k.localeCompare(L)),[a,e]),p=m.useMemo(()=>{const k=r.trim().toLowerCase();return k?f.filter(L=>L.toLowerCase().includes(k)):f},[f,r]),D=m.useCallback(async()=>{if(l||a.length>0)return;const k=window.queryLocalFonts;B(!0),E(null);try{if(k){const K=await k();g(Array.from(new Set(K.map(W=>W.family).filter(Boolean))));return}const L=await Dy();if(L?.length){g(L);return}E("Local font access is not supported in this browser")}catch(L){E(L instanceof Error?L.message:"Unable to load local fonts")}finally{B(!1)}},[l,a.length]),F=()=>{n(!0),D()};return o.jsx("div",{className:"space-y-2 text-sm",children:o.jsxs("div",{className:"flex items-center justify-between gap-3",children:[o.jsx("span",{className:"text-muted-foreground",children:"UI Font"}),o.jsxs("div",{className:"relative min-w-0",children:[o.jsxs("button",{type:"button",onClick:()=>s?n(!1):F(),className:"flex max-w-[170px] items-center gap-1 rounded border border-border bg-muted px-2 py-1 text-xs hover:bg-muted/80",children:[o.jsx("span",{className:"truncate",style:{fontFamily:e},children:e||YE}),o.jsx(qt,{className:"h-3 w-3 shrink-0"})]}),s&&o.jsxs(o.Fragment,{children:[o.jsx("div",{className:"fixed inset-0 z-40",onClick:()=>n(!1),role:"presentation"}),o.jsxs("div",{className:"absolute right-0 top-full z-50 mt-1 w-72 rounded-md border border-border bg-popover shadow-lg",children:[o.jsx("div",{className:"border-b border-border p-2",children:o.jsx("input",{type:"search",value:r,onChange:k=>i(k.target.value),placeholder:"Search system fonts...",className:"w-full rounded border border-border bg-background px-2 py-1.5 text-xs outline-none placeholder:text-muted-foreground/70 focus:border-primary"})}),o.jsxs("div",{className:"max-h-64 overflow-y-auto py-1",children:[p.map(k=>o.jsx("button",{type:"button",onClick:()=>{t(k),n(!1),i("")},className:`w-full px-3 py-2 text-left text-xs hover:bg-muted ${k===e?"bg-muted/50":""}`,style:{fontFamily:k},children:k},k)),p.length===0&&o.jsx("div",{className:"px-3 py-2 text-xs text-muted-foreground",children:"No fonts found"})]}),o.jsx("div",{className:"border-t border-border px-3 py-2 text-xs text-muted-foreground",children:l?"Loading local fonts...":u||(a.length>0?`${a.length} local fonts found`:c?"Choose a font or allow local font access if prompted":d?"Loading desktop system fonts if available":"Showing common system fonts")})]})]})]})]})})}),Ny=m.memo(function({label:e,value:t,onCommit:s,placeholder:n,hint:r,disabled:i}){const[a,g]=m.useState(t!=null?String(t):"");m.useEffect(()=>{g(t!=null?String(t):"")},[t]);const l=t!=null?String(t):"",B=a.trim(),u=B?Number(B.replaceAll(",","")):null,E=u!==null&&Number.isFinite(u)&&u>0?String(Math.floor(u)):B===""?"":null,c=E!==null&&E!==l,d=m.useCallback(()=>{E===null||E===l||(g(E),s(E===""?null:Number(E)))},[E,s,l]);return o.jsxs("div",{className:"space-y-1.5",children:[o.jsxs("div",{className:"flex min-w-0 items-center justify-between gap-3 text-sm",children:[o.jsx("span",{className:"min-w-0 flex-1 truncate whitespace-nowrap text-muted-foreground",children:e}),o.jsxs("div",{className:"flex shrink-0 items-center gap-1 rounded border border-border bg-muted px-2 py-1 text-xs font-mono transition-colors focus-within:border-primary",children:[o.jsx("input",{type:"text",inputMode:"numeric",value:a,onChange:f=>g(f.target.value),onKeyDown:f=>{f.key==="Enter"&&(f.preventDefault(),d()),f.key==="Escape"&&(g(l),f.currentTarget.blur())},placeholder:n,disabled:i,className:"w-24 bg-transparent text-right outline-none placeholder:text-muted-foreground/70 disabled:opacity-50"}),o.jsx("button",{type:"button",onClick:d,disabled:i||!c,className:"inline-flex items-center justify-center text-muted-foreground transition-colors hover:text-foreground disabled:cursor-not-allowed disabled:opacity-40","aria-label":`Save ${e}`,children:o.jsx(Ht,{className:"h-4 w-4"})})]})]}),r?o.jsx("p",{className:"text-xs text-muted-foreground",children:r}):null]})});function ky({isOpen:A,onClose:e}){const{data:t}=Vo(),{preferences:s,updatePreferences:n}=$s(),r=Ur();return o.jsx(So,{isOpen:A,onClose:e,title:"Preferences",maxWidth:"lg",children:o.jsxs("div",{className:"-m-6",children:[o.jsxs(qs,{title:"Editor",icon:o.jsx(KC,{className:"w-4 h-4 text-muted-foreground"}),children:[o.jsx(lr,{label:"Vim Mode",checked:s.vimMode,onChange:i=>n({vimMode:i})}),o.jsx(lr,{label:"Compact Thread",checked:s.compactThread,onChange:i=>n({compactThread:i})}),o.jsx(lr,{label:"Full Width Content",checked:s.fullWidthContent,onChange:i=>n({fullWidthContent:i})}),o.jsx(yy,{value:s.fontFamily,onChange:i=>n({fontFamily:i})})]}),o.jsxs(qs,{title:"Automation",icon:o.jsx(tB,{className:"w-4 h-4 text-muted-foreground"}),children:[o.jsx(Ny,{label:"Auto Compact",value:t?.defaults?.autoCompactThresholdTokens,onCommit:i=>r.mutate({autoCompactThresholdTokens:i,scope:"global"}),placeholder:"Tokens",disabled:r.isPending}),o.jsx(Ir,{label:"Tool Approval",value:t?.defaults?.toolApproval??"dangerous",options:[{id:"auto",label:"Auto (no approval)"},{id:"dangerous",label:"Dangerous only"},{id:"yolo",label:"YOLO (hard blocks only)"},{id:"all",label:"All tools"}],onChange:i=>r.mutate({toolApproval:i,scope:"global"}),disabled:r.isPending}),o.jsx(lr,{label:"Guided Mode",checked:t?.defaults?.guidedMode??!1,onChange:i=>r.mutate({guidedMode:i,scope:"global"})})]}),o.jsxs(qs,{title:"Reasoning",icon:o.jsx(_t,{className:"w-4 h-4 text-muted-foreground"}),children:[o.jsx(lr,{label:"Show Reasoning",checked:t?.defaults?.reasoningText??!0,onChange:i=>r.mutate({reasoningText:i,scope:"global"})}),o.jsx(Ir,{label:"Reasoning Level",value:t?.defaults?.reasoningLevel??"high",options:[{id:"minimal",label:"Minimal"},{id:"low",label:"Low"},{id:"medium",label:"Medium"},{id:"high",label:"High"},{id:"max",label:"Max"},{id:"xhigh",label:"Extra High"}],onChange:i=>r.mutate({reasoningLevel:i,scope:"global"}),disabled:r.isPending})]})]})})}const My=m.memo(function(){const e=kt(T=>T.isExpanded),t=kt(T=>T.collapseSidebar),[s,n]=m.useState(!1),r=rs(T=>T.widths[MQ]??bQ),{data:i}=Vo(),{data:a}=Xs(),g=Ur(),l=Ne(T=>T.balance),B=Ne(T=>T.walletAddress),u=Ne(T=>T.usdcBalance),E=Ne(T=>T.isLoading),c=Ne(T=>T.openTopupModal);fy();const d=i?.providers?.includes("ottorouter"),{fetchBalance:f}=ni(d?"ottorouter":void 0),p=Nt(T=>T.setOpen),D=Nt(T=>T.setStep),F=Nt(T=>T.setManageMode),{fetchAuthStatus:k}=Jg(),L=m.useCallback(async()=>await mA.exportOttoRouterWallet(),[]),K=m.useMemo(()=>!i?.providers||!a?[]:i.providers.filter(T=>a[T]).map(T=>({id:T,label:a[T]?.label||T})),[i?.providers,a]),W=m.useMemo(()=>{const T=i?.defaults?.provider;return!T||!a?.[T]?[]:a[T].models.map(H=>({id:H.id,label:H.label}))},[i?.defaults?.provider,a]),$=m.useMemo(()=>i?.agents?i.agents.map(T=>({id:T,label:T})):[],[i?.agents]);if(!e)return null;const X=T=>{const H=a?.[T]?.models?.[0]?.id;g.mutate({provider:T,model:H||i?.defaults?.model,scope:"global"})},U=T=>{g.mutate({model:T,scope:"global"})},O=T=>{g.mutate({agent:T,scope:"global"})};return o.jsxs("div",{className:"border-l border-sidebar-border sidebar-fade-in flex h-full relative",style:{width:r},children:[o.jsx(Zs,{panelKey:MQ,side:"right",minWidth:my,maxWidth:wy,defaultWidth:bQ}),o.jsxs("div",{className:"flex-1 flex flex-col h-full min-w-0",children:[o.jsx(ns,{icon:o.jsx(eB,{className:"size-[15px]"}),title:"Settings",onClose:t}),o.jsxs("div",{className:"flex-1 overflow-y-auto",children:[o.jsxs(qs,{title:"Default Model",icon:o.jsx(RC,{className:"w-4 h-4 text-muted-foreground"}),children:[o.jsx(Ir,{label:"Provider",value:i?.defaults?.provider??"",options:K,onChange:X,disabled:g.isPending}),o.jsx(Ir,{label:"Model",value:i?.defaults?.model??"",options:W,onChange:U,disabled:g.isPending}),o.jsx(Ir,{label:"Agent",value:i?.defaults?.agent??"",options:$,onChange:O,disabled:g.isPending})]}),o.jsx(qs,{title:"Providers",icon:o.jsx(tB,{className:"w-4 h-4 text-muted-foreground"}),action:o.jsx("button",{type:"button",onClick:()=>{k().then(()=>{D("wallet"),F(!0),p(!0)})},className:"p-1 hover:bg-muted rounded transition-colors",title:"Manage providers",children:o.jsx(In,{className:"w-3.5 h-3.5 text-muted-foreground"})}),children:o.jsx("div",{className:"flex flex-wrap gap-2",children:i?.providers?.map(T=>o.jsx("span",{className:"px-2 py-1 text-xs bg-muted rounded-md font-mono",children:T},T))??o.jsx("span",{className:"text-muted-foreground text-sm",children:"None"})})}),i?.providers?.includes("ottorouter")&&o.jsx(Fy,{ottorouterWallet:B,ottorouterBalance:l,ottorouterUsdcBalance:u,ottorouterLoading:E,refreshSetuBalance:f,openTopupModal:c,onExportPrivateKey:L}),o.jsx(Kg,{})]}),o.jsxs("button",{type:"button",onClick:()=>n(!0),title:"Open preferences",className:"group shrink-0 w-full h-10 px-3 flex items-center gap-2 bg-muted/20 hover:bg-muted/60 border-t border-border transition-colors text-left cursor-pointer",children:[o.jsx(Ja,{className:"w-4 h-4 text-muted-foreground group-hover:text-foreground transition-colors"}),o.jsx("span",{className:"text-sm flex-1 text-muted-foreground group-hover:text-foreground transition-colors",children:"Preferences"}),o.jsx(St,{className:"w-4 h-4 text-muted-foreground group-hover:text-foreground group-hover:translate-x-0.5 transition-all"})]}),o.jsx(ky,{isOpen:s,onClose:()=>n(!1)})]})]})});function by(){const A=Ne(t=>t.subscription),e=Ne(t=>t.payg);return A?.active?o.jsxs(o.Fragment,{children:[o.jsx(Es,{label:"Plan",value:A.tierName??"GO"}),A.usageWindows&&o.jsxs(o.Fragment,{children:[o.jsx(Es,{label:"5h",value:`${Math.round(A.usageWindows.fiveHour.percentUsed)}%`}),o.jsx(Es,{label:"Week",value:`${Math.round(A.usageWindows.weekly.percentUsed)}%`})]}),e&&e.effectiveSpendableUsd>0&&o.jsx(Es,{label:"Credits",value:`$${e.effectiveSpendableUsd.toFixed(2)}`}),A.periodEnd&&o.jsx(Es,{label:"Renews",value:new Date(A.periodEnd).toLocaleDateString("en-US",{month:"short",day:"numeric",year:"numeric"}).replace(",","")})]}):null}const Fy=m.memo(function({ottorouterWallet:e,ottorouterBalance:t,ottorouterUsdcBalance:s,ottorouterLoading:n,refreshSetuBalance:r,openTopupModal:i,onExportPrivateKey:a}){const g=Ne(x=>!!x.subscription?.active),[l,B]=m.useState(!1),[u,E]=m.useState(!1),[c,d]=m.useState(null),[f,p]=m.useState(!1),[D,F]=m.useState(null),[k,L]=m.useState(!1),K=m.useCallback(async()=>{e&&(await navigator.clipboard.writeText(e),B(!0),setTimeout(()=>B(!1),2e3))},[e]),W=async()=>{E(!0),L(!1),d(null),F(null),p(!0);try{const x=await a();d(x.privateKey)}catch(x){F(x instanceof Error?x.message:"Failed to export private key")}finally{p(!1)}},$=()=>{f||(E(!1),L(!1),d(null),F(null))},X=async()=>{c&&(await navigator.clipboard.writeText(c),L(!0),setTimeout(()=>L(!1),2e3))},U=x=>x?`${x.slice(0,4)}...${x.slice(-4)}`:"Not configured",O=x=>x===null?"—":`$${x.toFixed(4)}`,T=x=>x===null?"—":`${x.toFixed(2)} USDC`,H=e!==null;return o.jsxs(qs,{title:"Setu Credits",icon:o.jsx(Pa,{className:"w-4 h-4 text-muted-foreground"}),action:o.jsx("button",{type:"button",onClick:r,disabled:n,className:"p-1 hover:bg-muted rounded transition-colors disabled:opacity-50",title:"Refresh balances",children:o.jsx(Zt,{className:`w-3.5 h-3.5 text-muted-foreground ${n?"animate-spin":""}`})}),children:[H?o.jsxs(o.Fragment,{children:[o.jsx("div",{className:"flex justify-center pb-3",children:o.jsx("div",{className:"p-2 bg-white rounded-lg",children:o.jsx(ai,{value:e,size:120,level:"M",includeMargin:!1})})}),o.jsxs("div",{className:"flex items-center justify-between text-sm",children:[o.jsx("span",{className:"text-muted-foreground",children:"Address"}),o.jsxs("button",{type:"button",onClick:K,className:"flex items-center gap-1.5 font-mono text-foreground hover:text-muted-foreground transition-colors",title:"Copy address",children:[U(e),l?o.jsx(Ht,{className:"w-3 h-3 text-green-500"}):o.jsx(fs,{className:"w-3 h-3 text-muted-foreground"})]})]}),o.jsx(by,{}),!g&&o.jsxs(o.Fragment,{children:[o.jsx(Es,{label:"Balance",value:O(t)}),o.jsx(Es,{label:"USDC",value:T(s)})]})]}):o.jsxs(o.Fragment,{children:[o.jsx("div",{className:"flex justify-center pb-3",children:o.jsx("div",{className:"w-[136px] h-[136px] bg-muted rounded-lg animate-pulse"})}),o.jsxs("div",{className:"flex items-center justify-between text-sm",children:[o.jsx("span",{className:"text-muted-foreground",children:"Address"}),o.jsx("div",{className:"w-24 h-4 bg-muted rounded animate-pulse"})]}),o.jsxs("div",{className:"flex items-center justify-between text-sm",children:[o.jsx("span",{className:"text-muted-foreground",children:"Balance"}),o.jsx("div",{className:"w-16 h-4 bg-muted rounded animate-pulse"})]}),o.jsxs("div",{className:"flex items-center justify-between text-sm",children:[o.jsx("span",{className:"text-muted-foreground",children:"USDC"}),o.jsx("div",{className:"w-20 h-4 bg-muted rounded animate-pulse"})]})]}),o.jsxs(ye,{variant:"secondary",size:"sm",onClick:i,className:"w-full mt-2 gap-2",children:[o.jsx(lo,{className:"w-4 h-4"}),"Top Up Balance"]}),o.jsxs(ye,{variant:"ghost",size:"sm",onClick:W,className:"w-full gap-2",children:[o.jsx(Br,{className:"w-4 h-4"}),"Export Private Key"]}),u&&o.jsx("div",{className:"fixed inset-0 z-[9999] flex items-center justify-center bg-black/60 backdrop-blur-sm",children:o.jsxs("div",{className:"bg-background border border-border rounded-xl w-full max-w-lg mx-6 shadow-2xl",children:[o.jsxs("div",{className:"flex items-center gap-3 p-6 border-b border-border",children:[o.jsx(Br,{className:"w-5 h-5 text-muted-foreground"}),o.jsx("h3",{className:"text-lg font-semibold",children:"Export Setu Private Key"})]}),o.jsxs("div",{className:"p-6",children:[o.jsx("p",{className:"text-sm text-muted-foreground mb-4",children:"Keep this private key secret. Anyone with this key can spend funds from your Setu wallet."}),f&&o.jsxs("div",{className:"flex items-center gap-2 text-sm text-muted-foreground",children:[o.jsx(Je,{className:"w-4 h-4 animate-spin"}),"Exporting private key..."]}),!f&&c&&o.jsxs("div",{className:"space-y-3",children:[o.jsx("textarea",{readOnly:!0,value:c,className:"w-full min-h-[110px] px-4 py-3 bg-muted/50 border border-border rounded-lg text-foreground outline-none font-mono text-xs resize-y"}),o.jsxs(ye,{variant:"secondary",size:"sm",onClick:X,className:"w-full gap-2",children:[k?o.jsx(Ht,{className:"w-4 h-4 text-green-500"}):o.jsx(fs,{className:"w-4 h-4"}),k?"Copied":"Copy Private Key"]})]}),!f&&D&&o.jsx("p",{className:"text-sm text-red-500 mt-3",children:D}),o.jsx("div",{className:"flex gap-3 mt-5",children:o.jsx("button",{type:"button",onClick:$,disabled:f,className:"flex-1 h-11 px-4 bg-transparent border border-border text-foreground rounded-lg font-medium hover:bg-muted/50 transition-colors disabled:opacity-50",children:"Close"})})]})]})})]})}),Gy=m.memo(function(){const e=kt(s=>s.isExpanded),t=kt(s=>s.toggleSidebar);return o.jsx("button",{type:"button",onClick:t,className:`relative h-12 w-full transition-colors touch-manipulation flex items-center justify-center border-r-2 ${e?"bg-muted border-primary":"border-transparent hover:bg-muted/50"}`,title:"Settings",children:o.jsx(eB,{className:"size-[18px] text-muted-foreground mx-auto"})})});async function vy(){const A=await xh();if(A.error)throw new Error(JSON.stringify(A.error));return A.data}async function Sy(){const A=await Dh({body:{}});if(A.error)throw new Error(JSON.stringify(A.error));return A.data}async function Uy(){const A=await yh();if(A.error)throw new Error(JSON.stringify(A.error));return A.data}function Ry(){const A=je(n=>n.setStatus),e=je(n=>n.setUrl),t=je(n=>n.setError),s=gt({queryKey:["tunnel","status"],queryFn:vy,refetchInterval:3e3});return m.useEffect(()=>{s.data&&(A(s.data.status),e(s.data.url),t(s.data.error))},[s.data,A,e,t]),s}function Ky(){const A=ke(),e=je(r=>r.setStatus),t=je(r=>r.setUrl),s=je(r=>r.setError),n=je(r=>r.setProgress);return _e({mutationFn:()=>Sy(),onMutate:()=>{e("starting"),n("Connecting..."),s(null)},onSuccess:r=>{r.ok&&r.url?(e("connected"),t(r.url),n(null)):r.ok||(e("error"),s(r.error||"Failed to start tunnel"),n(null)),A.invalidateQueries({queryKey:["tunnel"]})},onError:r=>{e("error"),s(r.message),n(null)}})}function Ly(){const A=ke(),e=je(t=>t.reset);return _e({mutationFn:Uy,onSuccess:()=>{e(),A.invalidateQueries({queryKey:["tunnel"]})}})}function Jy(){const A=je(a=>a.setStatus),e=je(a=>a.setUrl),t=je(a=>a.setError),s=je(a=>a.setProgress),n=je(a=>a.isExpanded),r=m.useRef(null),i=m.useCallback(()=>{r.current&&r.current.close();const a=new EventSource(wA.buildUrl({baseURL:sg,url:"/v1/tunnel/stream"}));return r.current=a,a.onmessage=g=>{try{const l=JSON.parse(g.data);l.type==="status"&&(A(l.status),e(l.url),t(l.error),s(l.progress))}catch{}},a.onerror=()=>{a.close(),r.current=null},()=>{a.close(),r.current=null}},[A,e,t,s]);return m.useEffect(()=>n?i():()=>{r.current&&(r.current.close(),r.current=null)},[n,i]),{connect:i}}function jy(A){try{const t=new URL(A).hostname;return t.length>24?`${t.slice(0,12)}...${t.slice(-8)}`:t}catch{return A.length>24?`${A.slice(0,12)}...${A.slice(-8)}`:A}}const Ty=m.memo(function(){const e=je(d=>d.isExpanded),t=je(d=>d.collapseSidebar),s=je(d=>d.status),n=je(d=>d.url),r=je(d=>d.error),i=je(d=>d.progress),a=Ky(),g=Ly(),[l,B]=m.useState(!1);Ry(),Jy();const u=async()=>{n&&(await navigator.clipboard.writeText(n),B(!0),setTimeout(()=>B(!1),2e3))},E=()=>{a.mutate()},c=()=>{g.mutate()};return e?o.jsxs("div",{className:"w-80 border-l border-sidebar-border sidebar-fade-in flex flex-col h-full",children:[o.jsx(ns,{icon:o.jsx(Wo,{className:"size-[15px]"}),title:"Remote Access",onClose:t}),o.jsxs("div",{className:"flex-1 overflow-y-auto p-4",children:[s==="idle"&&o.jsxs("div",{className:"flex flex-col items-center justify-center h-full text-center",children:[o.jsx(Wo,{className:"w-12 h-12 text-muted-foreground/30 mb-4"}),o.jsx("h3",{className:"text-sm font-medium mb-2",children:"Access from anywhere"}),o.jsx("p",{className:"text-xs text-muted-foreground mb-6 max-w-[200px]",children:"Start a secure tunnel to access otto from your phone or another device."}),o.jsx("button",{type:"button",onClick:E,disabled:a.isPending,className:"px-4 py-2 bg-primary text-primary-foreground rounded-md text-sm font-medium hover:bg-primary/90 transition-colors disabled:opacity-50",children:a.isPending?"Starting...":"Start Tunnel"})]}),s==="starting"&&o.jsxs("div",{className:"flex flex-col items-center justify-center h-full text-center",children:[o.jsx(Je,{className:"w-8 h-8 text-primary animate-spin mb-4"}),o.jsx("h3",{className:"text-sm font-medium mb-2",children:"Setting up..."}),i&&o.jsx("p",{className:"text-xs text-muted-foreground max-w-[220px] break-words",children:i})]}),s==="connected"&&n&&o.jsxs("div",{className:"flex flex-col",children:[o.jsxs("div",{className:"flex items-center gap-2 mb-4",children:[o.jsx("div",{className:"w-2 h-2 rounded-full bg-green-500 animate-pulse"}),o.jsx("span",{className:"text-xs font-medium text-green-600",children:"Connected"})]}),o.jsx("div",{className:"flex justify-center pb-4",children:o.jsx("div",{className:"p-3 bg-white rounded-lg",children:o.jsx(ai,{value:n,size:160,level:"M",includeMargin:!1})})}),o.jsx("p",{className:"text-xs text-muted-foreground mb-4 text-center",children:"Scan with your phone camera"}),o.jsxs("div",{className:"flex items-center justify-between text-sm mb-4",children:[o.jsx("span",{className:"text-muted-foreground",children:"URL"}),o.jsxs("button",{type:"button",onClick:u,className:"flex items-center gap-1.5 font-mono text-foreground hover:text-muted-foreground transition-colors",title:"Copy URL",children:[jy(n),l?o.jsx(Ht,{className:"w-3 h-3 text-green-500"}):o.jsx(fs,{className:"w-3 h-3 text-muted-foreground"})]})]}),o.jsxs("button",{type:"button",onClick:()=>Co(n),className:"flex items-center justify-center gap-2 px-4 py-2 border border-border rounded-md text-sm hover:bg-muted transition-colors mb-3",children:[o.jsx(Gt,{className:"w-3.5 h-3.5"}),"Open in browser"]}),o.jsx("button",{type:"button",onClick:c,disabled:g.isPending,className:"w-full px-4 py-2 text-sm text-muted-foreground hover:text-foreground transition-colors",children:g.isPending?"Stopping...":"Stop Tunnel"})]}),s==="error"&&o.jsxs("div",{className:"flex flex-col items-center justify-center h-full text-center",children:[r?.includes("Rate limited")?o.jsxs(o.Fragment,{children:[o.jsx(Ha,{className:"w-8 h-8 text-yellow-500 mb-4"}),o.jsx("h3",{className:"text-sm font-medium mb-2",children:"Rate Limited"}),o.jsx("p",{className:"text-xs text-muted-foreground mb-6 max-w-[220px]",children:"Cloudflare limits anonymous tunnel requests. Please wait 5-10 minutes before trying again."})]}):o.jsxs(o.Fragment,{children:[o.jsx(wo,{className:"w-8 h-8 text-destructive mb-4"}),o.jsx("h3",{className:"text-sm font-medium mb-2",children:"Connection failed"}),o.jsx("p",{className:"text-xs text-muted-foreground mb-6 max-w-[200px]",children:r||"Unable to establish tunnel connection."})]}),o.jsx("button",{type:"button",onClick:E,disabled:a.isPending||r?.includes("Rate limited"),className:"px-4 py-2 bg-primary text-primary-foreground rounded-md text-sm font-medium hover:bg-primary/90 transition-colors disabled:opacity-50",title:r?.includes("Rate limited")?"Wait 5-10 minutes":void 0,children:r?.includes("Rate limited")?"Wait & Try Again":"Try Again"})]})]})]}):null}),Oy=m.memo(function(){const e=je(r=>r.isExpanded),t=je(r=>r.toggleSidebar),n=je(r=>r.status)==="connected";return o.jsxs("button",{type:"button",onClick:t,className:`relative h-12 w-full transition-colors touch-manipulation flex items-center justify-center border-r-2 ${e?"bg-muted border-primary":"border-transparent hover:bg-muted/50"}`,title:"Remote Access",children:[o.jsx(Wo,{className:"size-[18px] text-muted-foreground mx-auto"}),n&&o.jsx("span",{className:"absolute top-1.5 right-1.5 w-2 h-2 bg-green-500 rounded-full animate-pulse"})]})});function qy(){const A=$e(t=>t.setServers),e=gt({queryKey:["mcp","servers"],queryFn:async()=>{const{data:t}=await Nh();return t},refetchInterval:1e4});return m.useEffect(()=>{e.data?.servers&&A(e.data.servers)},[e.data,A]),e}function Yy(){const A=ke();return _e({mutationFn:async e=>{const{data:t,error:s}=await bh({path:{name:e}});if(s)throw new Error("Failed to start server");const n=t;if(!n.ok)throw new Error(n.error||"Failed to start server");return n},onSettled:()=>{A.invalidateQueries({queryKey:["mcp","servers"]})}})}function Hy(){const A=ke(),e=$e(t=>t.setLoading);return _e({mutationFn:async t=>{e(t,!0);const{data:s,error:n}=await Fh({path:{name:t}});if(n)throw new Error("Failed to stop server");const r=s;if(!r.ok)throw new Error(r.error||"Failed to stop server");return r},onSettled:(t,s,n)=>{e(n,!1),A.invalidateQueries({queryKey:["mcp","servers"]})}})}function Py(){const A=ke();return _e({mutationFn:async e=>{const{data:t,error:s}=await kh({body:e});if(s)throw new Error("Failed to add MCP server");const n=t;if(!n.ok)throw new Error(n.error||"Failed to add MCP server");return n},onSuccess:()=>{A.invalidateQueries({queryKey:["mcp","servers"]})}})}function Wy(){const A=ke();return _e({mutationFn:async e=>{const{data:t,error:s}=await Mh({path:{name:e}});if(s)throw new Error("Failed to remove MCP server");const n=t;if(!n.ok)throw new Error(n.error||"Failed to remove MCP server");return n},onSuccess:()=>{A.invalidateQueries({queryKey:["mcp","servers"]})}})}function zy(){const A=ke();return _e({mutationFn:async e=>{const{data:t,error:s}=await Gh({path:{name:e}});if(s)throw new Error("Failed to initiate auth");const n=t;if(!n.ok)throw new Error(n.error||"Failed to initiate auth");return n},onSettled:()=>{A.invalidateQueries({queryKey:["mcp","servers"]})}})}function Vy(A){return gt({queryKey:["mcp","auth",A],queryFn:async()=>{if(!A)return{authenticated:!1};const{data:e}=await Sh({path:{name:A}});return e},enabled:!!A,refetchInterval:3e3})}function _y(){const A=$e(i=>i.copilotDevice),e=$e(i=>i.setCopilotDevice),t=$e(i=>i.setLoading),s=ke(),n=m.useRef(null),r=m.useCallback(()=>{n.current&&(clearInterval(n.current),n.current=null)},[]);return m.useEffect(()=>{if(!A){r();return}const{sessionId:i,serverName:a,interval:g}=A,l=(g||5)*1e3+1e3;return n.current=setInterval(async()=>{try{const{data:B}=await vh({path:{name:a},body:{sessionId:i}}),u=B;u?.status==="complete"?(r(),e(null),t(a,!1),s.invalidateQueries({queryKey:["mcp","servers"]})):u?.status==="error"&&(r(),e(null),t(a,!1))}catch{r(),e(null),t(a,!1)}},l),r},[A,e,t,s,r]),A}function Zy(A){const e=A.trim().split(/\s+/);return{command:e[0]??"",args:e.slice(1)}}function Xy(A){const e=A.trim();if(!e)return;const t={};for(const s of e.split(`
|
|
145
|
+
`)){const n=s.indexOf("=");n>0&&(t[s.slice(0,n).trim()]=s.slice(n+1).trim())}return Object.keys(t).length>0?t:void 0}function $y(A){const e=A.trim();if(!e)return;const t={};for(const s of e.split(`
|
|
146
|
+
`)){const n=s.indexOf(":");n>0&&(t[s.slice(0,n).trim()]=s.slice(n+1).trim())}return Object.keys(t).length>0?t:void 0}const AN=m.memo(function({isOpen:e,onClose:t}){const[s,n]=m.useState("local"),[r,i]=m.useState(""),[a,g]=m.useState(""),[l,B]=m.useState(""),[u,E]=m.useState("http"),[c,d]=m.useState(""),[f,p]=m.useState(""),[D,F]=m.useState("global"),[k,L]=m.useState(null),K=Py(),W=m.useCallback(()=>{i(""),g(""),B(""),E("http"),d(""),p(""),F("global"),L(null),n("local")},[]),$=m.useCallback(()=>{W(),t()},[W,t]),X=m.useCallback(async()=>{L(null);const H=r.trim();if(!H){L("Server name is required");return}try{if(s==="local"){const x=a.trim();if(!x){L("Command is required");return}if(/^https?:\/\//i.test(x)){L("Local commands cannot be URLs. Switch to Remote (HTTP) for remote servers.");return}const{command:Q,args:I}=Zy(x);await K.mutateAsync({name:H,transport:"stdio",command:Q,args:I,env:Xy(f),scope:D})}else{const x=l.trim();if(!x){L("URL is required");return}await K.mutateAsync({name:H,transport:u,url:x,headers:$y(c),scope:D})}$()}catch(x){L(x instanceof Error?x.message:"Failed to add server")}},[r,s,a,f,l,u,c,D,K,$]),U=m.useRef(null),[O,T]=m.useState(void 0);return m.useEffect(()=>{const H=U.current;if(!H)return;const x=new ResizeObserver(()=>{T(H.scrollHeight)});return x.observe(H),()=>x.disconnect()},[]),o.jsx(So,{isOpen:e,onClose:$,title:"Add MCP Server",children:o.jsx("div",{className:"overflow-hidden transition-[height] duration-200 ease-in-out",style:{height:O!==void 0?O:"auto"},children:o.jsxs("div",{ref:U,className:"space-y-4",children:[o.jsxs("div",{className:"relative flex w-full rounded-lg bg-muted p-1",children:[o.jsx("div",{className:"absolute top-1 bottom-1 rounded-md bg-background shadow-md border border-border transition-all duration-200 ease-in-out",style:{left:s==="local"?"4px":"50%",right:s==="remote"?"4px":"50%"}}),o.jsxs("button",{type:"button",onClick:()=>n("local"),className:`relative z-10 flex items-center justify-center gap-2 flex-1 text-sm font-medium py-2 rounded-md transition-colors duration-200 ${s==="local"?"text-foreground":"text-muted-foreground/50"}`,children:[o.jsx(so,{className:"w-4 h-4"}),"Local (stdio)"]}),o.jsxs("button",{type:"button",onClick:()=>n("remote"),className:`relative z-10 flex items-center justify-center gap-2 flex-1 text-sm font-medium py-2 rounded-md transition-colors duration-200 ${s==="remote"?"text-foreground":"text-muted-foreground/50"}`,children:[o.jsx(Wo,{className:"w-4 h-4"}),"Remote (HTTP)"]})]}),o.jsxs("div",{children:[o.jsx("div",{className:"text-sm font-medium mb-1",children:"Name"}),o.jsx(Qn,{value:r,onChange:H=>i(H.target.value),placeholder:"e.g. github, linear, helius",autoFocus:!0})]}),s==="local"?o.jsxs(o.Fragment,{children:[o.jsxs("div",{children:[o.jsx("div",{className:"text-sm font-medium mb-1",children:"Command"}),o.jsx(Qn,{value:a,onChange:H=>g(H.target.value),placeholder:"e.g. npx -y @modelcontextprotocol/server-github",onKeyDown:H=>{H.key==="Enter"&&X()}}),o.jsxs("p",{className:"text-xs text-muted-foreground mt-1",children:["Like"," ",o.jsx("code",{className:"bg-muted px-1 rounded",children:"npx -y helius-mcp@latest"})]})]}),o.jsxs("div",{children:[o.jsx("div",{className:"text-sm font-medium mb-1",children:"Environment Variables"}),o.jsx("textarea",{value:f,onChange:H=>p(H.target.value),placeholder:`GITHUB_TOKEN=ghp_xxx
|
|
147
|
+
API_KEY=sk-xxx`,rows:2,className:"w-full bg-muted border border-border rounded-md px-3 py-2 text-sm font-mono resize-none focus:outline-none focus:ring-1 focus:ring-primary"}),o.jsx("p",{className:"text-xs text-muted-foreground mt-1",children:"One per line: KEY=VALUE"})]})]}):o.jsxs(o.Fragment,{children:[o.jsxs("div",{children:[o.jsx("div",{className:"text-sm font-medium mb-1",children:"URL"}),o.jsx(Qn,{value:l,onChange:H=>B(H.target.value),placeholder:"e.g. https://mcp.linear.app/mcp",onKeyDown:H=>{H.key==="Enter"&&X()}})]}),o.jsxs("div",{children:[o.jsx("div",{className:"text-sm font-medium mb-1",children:"Transport"}),o.jsxs("div",{className:"relative flex w-full rounded-lg border border-border bg-muted/50 p-0.5",children:[o.jsx("div",{className:"absolute top-0.5 bottom-0.5 rounded-md bg-background shadow-md border border-border transition-all duration-200 ease-in-out",style:{left:u==="http"?"2px":"50%",right:u==="sse"?"2px":"50%"}}),o.jsx("button",{type:"button",onClick:()=>E("http"),className:`relative z-10 flex items-center justify-center gap-1.5 text-xs font-medium py-1.5 rounded-md flex-1 transition-colors duration-200 ${u==="http"?"text-foreground":"text-muted-foreground/50"}`,children:"HTTP (recommended)"}),o.jsx("button",{type:"button",onClick:()=>E("sse"),className:`relative z-10 flex items-center justify-center gap-1.5 text-xs font-medium py-1.5 rounded-md flex-1 transition-colors duration-200 ${u==="sse"?"text-foreground":"text-muted-foreground/50"}`,children:"SSE (legacy)"})]})]}),o.jsxs("div",{children:[o.jsx("div",{className:"text-sm font-medium mb-1",children:"Headers"}),o.jsx("textarea",{value:c,onChange:H=>d(H.target.value),placeholder:"Authorization: Bearer xxx",rows:2,className:"w-full bg-muted border border-border rounded-md px-3 py-2 text-sm font-mono resize-none focus:outline-none focus:ring-1 focus:ring-primary"}),o.jsx("p",{className:"text-xs text-muted-foreground mt-1",children:"One per line: Header-Name: value"})]}),o.jsx("p",{className:"text-xs text-muted-foreground",children:"For OAuth servers (Linear, Notion, etc.), leave headers empty and authenticate after adding."})]}),o.jsxs("div",{children:[o.jsx("div",{className:"text-sm font-medium mb-1",children:"Scope"}),o.jsxs("div",{className:"relative flex w-full rounded-lg border border-border bg-muted/50 p-0.5",children:[o.jsx("div",{className:"absolute top-0.5 bottom-0.5 rounded-md bg-background shadow-md border border-border transition-all duration-200 ease-in-out",style:{left:D==="global"?"2px":"50%",right:D==="project"?"2px":"50%"}}),o.jsxs("button",{type:"button",onClick:()=>F("global"),className:`relative z-10 flex items-center justify-center gap-1.5 text-xs font-medium py-1.5 rounded-md flex-1 transition-colors duration-200 ${D==="global"?"text-foreground":"text-muted-foreground/50"}`,children:[o.jsx(Wa,{className:"w-3 h-3"}),"All projects"]}),o.jsxs("button",{type:"button",onClick:()=>F("project"),className:`relative z-10 flex items-center justify-center gap-1.5 text-xs font-medium py-1.5 rounded-md flex-1 transition-colors duration-200 ${D==="project"?"text-foreground":"text-muted-foreground/50"}`,children:[o.jsx(cr,{className:"w-3 h-3"}),"This project only"]})]}),o.jsx("p",{className:"text-xs text-muted-foreground mt-1",children:D==="global"?"Saved to ~/.config/otto/config.json":"Saved to .otto/config.json (project-local)"})]}),k&&o.jsx("div",{className:"text-sm text-red-400 bg-red-500/10 px-3 py-2 rounded",children:k}),o.jsxs("div",{className:"flex justify-end gap-2 pt-2",children:[o.jsx(ye,{variant:"ghost",onClick:$,children:"Cancel"}),o.jsx(ye,{variant:"primary",onClick:X,disabled:K.isPending,children:K.isPending?o.jsxs(o.Fragment,{children:[o.jsx(Je,{className:"w-3 h-3 animate-spin mr-1"}),"Adding..."]}):"Add Server"})]})]})})})}),Sa=m.memo(function({checked:e,loading:t,onChange:s,disabled:n}){return o.jsx("button",{type:"button",role:"switch","aria-checked":e,disabled:n||t,onClick:r=>{r.stopPropagation(),s()},className:`relative inline-flex h-5 w-9 flex-shrink-0 items-center rounded-full transition-colors duration-200 focus-visible:outline-none disabled:opacity-50 disabled:cursor-not-allowed ${e?"bg-green-500":"bg-muted-foreground/30"}`,children:o.jsx("span",{className:`inline-block h-3.5 w-3.5 rounded-full transition-transform duration-200 ${e?"translate-x-[18px]":"translate-x-[3px]"} ${t?"bg-transparent":"bg-white"}`,children:t?o.jsx(Je,{className:"w-3.5 h-3.5 animate-spin text-white"}):null})})}),eN=m.memo(function({userCode:e,verificationUri:t}){const[s,n]=m.useState(!1),r=m.useCallback(()=>{navigator.clipboard.writeText(e).then(()=>{n(!0),setTimeout(()=>n(!1),2e3)})},[e]);return o.jsx("div",{className:"px-3 pb-2.5 pt-0",children:o.jsxs("div",{className:"rounded-md bg-yellow-500/10 border border-yellow-500/20 p-2 space-y-1.5",children:[o.jsxs("div",{className:"flex items-center gap-1.5 text-xs",children:[o.jsx(Je,{className:"w-3 h-3 animate-spin text-yellow-500 flex-shrink-0"}),o.jsx("span",{className:"text-yellow-500/80",children:"Enter code at GitHub:"})]}),o.jsxs("div",{className:"flex items-center gap-2",children:[o.jsx("code",{className:"text-sm font-mono font-bold text-yellow-400 tracking-wider",children:e}),o.jsx("button",{type:"button",onClick:r,className:"text-yellow-500/60 hover:text-yellow-400 transition-colors",title:"Copy code",children:o.jsx(LC,{className:"w-3.5 h-3.5"})}),s&&o.jsx("span",{className:"text-xs text-green-400",children:"Copied!"})]}),o.jsxs("a",{href:t,target:"_blank",rel:"noopener noreferrer",onClick:i=>{i.preventDefault(),Co(t)},className:"inline-flex items-center gap-1 text-xs text-yellow-400 hover:text-yellow-300 underline underline-offset-2",children:["Open GitHub login",o.jsx(Gt,{className:"w-3 h-3"})]})]})})}),tN=m.memo(function({server:e,isLoading:t,authUrl:s,copilotDevice:n,onStart:r,onStop:i,onRemove:a,onAuth:g}){const[l,B]=m.useState(!1),u=e.connected&&e.tools.length>0,E=e.transport==="http"||e.transport==="sse",c=(!!s||!!n)&&!e.connected,d=m.useCallback(()=>{e.authRequired&&!e.connected?g():e.connected?i():r()},[e.connected,e.authRequired,g,i,r]),f=m.useCallback(()=>{u&&B(p=>!p)},[u]);return o.jsxs("div",{className:`group transition-colors duration-200 ${e.connected?"bg-green-500/5 hover:bg-green-500/10":c?"bg-yellow-500/5 hover:bg-yellow-500/10":"hover:bg-accent"}`,children:[o.jsxs("div",{className:"flex items-center gap-3 px-3 py-2",children:[o.jsx(Sa,{checked:e.connected,loading:t||c,onChange:d}),o.jsxs("div",{className:"flex-1 min-w-0",children:[o.jsxs("div",{className:"flex items-center gap-1.5",children:[o.jsx("span",{className:"text-sm font-medium truncate",children:e.name}),E&&o.jsx(Wo,{className:"w-3 h-3 text-muted-foreground flex-shrink-0"}),e.authRequired&&!e.connected&&o.jsx(JC,{className:"w-3 h-3 text-yellow-500 flex-shrink-0"})]}),o.jsxs("div",{className:"flex items-center gap-1.5 mt-0.5",children:[o.jsx("span",{className:"text-xs text-muted-foreground truncate",children:E?e.url:`${e.command??""} ${e.args.join(" ")}`}),o.jsx("span",{className:"flex items-center flex-shrink-0 opacity-50",title:e.scope==="project"?"Project-local":"Global",children:e.scope==="project"?o.jsx(cr,{className:"w-3 h-3"}):o.jsx(Wa,{className:"w-3 h-3"})})]})]}),o.jsxs("div",{className:"flex items-center gap-0.5 flex-shrink-0",children:[u&&o.jsxs("button",{type:"button",onClick:f,className:"flex items-center gap-0.5 text-xs text-muted-foreground hover:text-foreground px-1.5 py-1 rounded transition-colors",children:[o.jsx(jC,{className:"w-3 h-3"}),e.tools.length,l?o.jsx(qt,{className:"w-3 h-3"}):o.jsx(St,{className:"w-3 h-3"})]}),o.jsx(ye,{variant:"ghost",size:"icon",onClick:a,title:"Remove server",className:"h-6 w-6 opacity-0 group-hover:opacity-100 transition-opacity",children:o.jsx(Nr,{className:"w-3 h-3 text-muted-foreground hover:text-red-400"})})]})]}),n&&!e.connected&&o.jsx(eN,{userCode:n.userCode,verificationUri:n.verificationUri}),!n&&c&&s&&o.jsx("div",{className:"px-3 pb-2.5 pt-0",children:o.jsxs("div",{className:"flex items-center gap-1.5 text-xs",children:[o.jsx(Je,{className:"w-3 h-3 animate-spin text-yellow-500 flex-shrink-0"}),o.jsx("span",{className:"text-yellow-500/80",children:"Waiting for auth..."}),o.jsxs("a",{href:s,target:"_blank",rel:"noopener noreferrer",onClick:p=>{p.preventDefault(),Co(s)},className:"inline-flex items-center gap-0.5 text-yellow-400 hover:text-yellow-300 underline underline-offset-2",children:["Open login",o.jsx(Gt,{className:"w-3 h-3"})]})]})}),u&&l&&o.jsx("div",{className:"px-3 pb-2.5 pt-0",children:o.jsx("div",{className:"flex flex-wrap gap-1",children:e.tools.map(p=>o.jsx("span",{className:"text-xs bg-muted px-1.5 py-0.5 rounded",title:p,children:p.split("__").pop()},p))})})]})});function oN(A,e){const{data:t}=Vy(A),s=m.useRef(!1);m.useEffect(()=>{t?.authenticated&&!s.current&&e(),s.current=t?.authenticated??!1},[t?.authenticated,e])}const sN=m.memo(function(){const e=$e(Q=>Q.isExpanded),t=$e(Q=>Q.collapseSidebar),s=$e(Q=>Q.servers),n=$e(Q=>Q.loading),r=$e(Q=>Q.authUrls),i=$e(Q=>Q.setAuthUrl),a=$e(Q=>Q.setLoading),g=$e(Q=>Q.setCopilotDevice),{isLoading:l}=qy(),B=Yy(),u=Hy(),E=Wy(),c=zy(),d=_y(),[f,p]=m.useState(!1),[D,F]=m.useState(null),[k,L]=m.useState(null),[K,W]=m.useState(""),$=ke(),X=m.useCallback(()=>{D&&(i(D,null),F(null),$.invalidateQueries({queryKey:["mcp","servers"]}))},[D,i,$]);oN(D,X),m.useEffect(()=>{for(const Q of n)s.find(N=>N.name===Q)?.connected&&a(Q,!1)},[s,n,a]);const U=m.useCallback((Q,I)=>{I.sessionId&&I.userCode&&I.verificationUri&&(g({sessionId:I.sessionId,userCode:I.userCode,verificationUri:I.verificationUri,interval:I.interval??5,serverName:Q}),Co(I.verificationUri))},[g]),O=m.useCallback(async Q=>{try{a(Q,!0);const I=await c.mutateAsync(Q);if(I.authType==="copilot-device"){if(I.authenticated){a(Q,!1),$.invalidateQueries({queryKey:["mcp","servers"]});return}U(Q,I)}else I.authUrl?(i(Q,I.authUrl),F(Q),Co(I.authUrl)):a(Q,!1)}catch{a(Q,!1),i(Q,null)}},[c,i,a,U,$]),T=m.useCallback(async Q=>{try{a(Q,!0);const I=await B.mutateAsync(Q);I.authType==="copilot-device"&&!I.connected?U(Q,I):I.authRequired&&I.authUrl?(i(Q,I.authUrl),F(Q),Co(I.authUrl)):a(Q,!1)}catch{a(Q,!1),i(Q,null)}},[B,i,a,U]),H=m.useMemo(()=>{const Q=K.trim().toLowerCase();return[...Q?s.filter(N=>{const G=N.command?`${N.command} ${N.args.join(" ")}`:"";return N.name.toLowerCase().includes(Q)||(N.url??"").toLowerCase().includes(Q)||G.toLowerCase().includes(Q)}):s].sort((N,G)=>N.connected&&!G.connected?-1:!N.connected&&G.connected?1:N.name.localeCompare(G.name))},[s,K]);if(!e)return null;const x=s.filter(Q=>Q.connected).length;return o.jsxs("div",{className:"w-80 border-l border-sidebar-border sidebar-fade-in flex flex-col h-full",children:[o.jsx(ns,{icon:o.jsx(kr,{className:"size-[15px]"}),title:o.jsxs(o.Fragment,{children:["MCP Servers",x>0&&o.jsxs("span",{className:"ml-2 text-xs bg-green-500/20 text-green-400 px-1.5 py-0.5 rounded-full",children:[x," active"]})]}),onClose:t,children:o.jsx(ye,{variant:"ghost",size:"icon",onClick:()=>p(!0),title:"Add MCP server",className:"h-7 w-7",children:o.jsx(lo,{className:"w-4 h-4"})})}),s.length>0&&o.jsx("div",{className:"px-2 py-2 border-b border-sidebar-border/60",children:o.jsxs("div",{className:"relative",children:[o.jsx(zo,{className:"absolute left-2 top-1/2 -translate-y-1/2 w-3.5 h-3.5 text-muted-foreground pointer-events-none"}),o.jsx("input",{type:"text",value:K,onChange:Q=>W(Q.target.value),placeholder:"Search servers...",className:"w-full h-8 pl-7 pr-7 text-[12px] bg-muted/40 border border-sidebar-border/60 rounded-md outline-none focus:border-foreground/20 placeholder:text-muted-foreground"}),K&&o.jsx("button",{type:"button",onClick:()=>W(""),className:"absolute right-1.5 top-1/2 -translate-y-1/2 h-5 w-5 rounded text-muted-foreground hover:text-foreground hover:bg-muted flex items-center justify-center",title:"Clear search",children:o.jsx(ot,{className:"w-3 h-3"})})]})}),o.jsx("div",{className:"flex-1 overflow-y-auto",children:l&&s.length===0?o.jsxs("div",{className:"flex items-center justify-center h-32 text-muted-foreground",children:[o.jsx(Je,{className:"w-4 h-4 animate-spin mr-2"}),"Loading..."]}):s.length===0?o.jsxs("div",{className:"p-4 text-sm text-muted-foreground space-y-3",children:[o.jsx("p",{children:"No MCP servers configured."}),o.jsxs(ye,{variant:"primary",size:"sm",onClick:()=>p(!0),className:"w-full",children:[o.jsx(lo,{className:"w-3 h-3 mr-1"}),"Add MCP Server"]}),o.jsxs("p",{className:"text-xs",children:["Or add servers to"," ",o.jsx("code",{className:"bg-muted px-1 py-0.5 rounded text-xs",children:".otto/config.json"})]})]}):H.length===0?o.jsxs("div",{className:"p-4 text-sm text-muted-foreground text-center",children:['No servers match "',K,'".']}):o.jsx("div",{className:"py-1",children:H.map(Q=>o.jsx(tN,{server:Q,isLoading:n.has(Q.name),authUrl:r.get(Q.name),copilotDevice:d?.serverName===Q.name?d:null,onStart:()=>T(Q.name),onStop:()=>u.mutate(Q.name),onRemove:()=>L(Q.name),onAuth:()=>O(Q.name)},Q.name))})}),o.jsx(AN,{isOpen:f,onClose:()=>p(!1)}),o.jsxs(So,{isOpen:!!k,onClose:()=>L(null),title:"Remove MCP Server",maxWidth:"sm",showCloseButton:!1,children:[o.jsxs("p",{className:"text-sm text-muted-foreground mb-4",children:["Are you sure you want to remove"," ",o.jsx("span",{className:"font-medium text-foreground",children:k}),"? This will stop the server and remove its configuration."]}),o.jsxs("div",{className:"flex justify-end gap-2",children:[o.jsx(ye,{variant:"secondary",size:"sm",onClick:()=>L(null),children:"Cancel"}),o.jsx(ye,{variant:"primary",size:"sm",className:"bg-red-500 hover:bg-red-600 text-white",onClick:()=>{k&&E.mutate(k),L(null)},children:"Remove"})]})]})]})}),rN=m.memo(function(){const e=$e(r=>r.isExpanded),t=$e(r=>r.toggleSidebar),n=$e(r=>r.servers).filter(r=>r.connected).length;return o.jsxs("button",{type:"button",onClick:t,className:`relative h-12 w-full transition-colors touch-manipulation flex items-center justify-center border-r-2 ${e?"bg-muted border-primary":"border-transparent hover:bg-muted/50"}`,title:"MCP Servers",children:[o.jsx(kr,{className:"size-[18px] text-muted-foreground mx-auto"}),n>0&&o.jsx("span",{className:"absolute top-1.5 right-1.5 w-2 h-2 bg-green-500 rounded-full"})]})});function nN(){const A=We(t=>t.setSkillsConfig),e=gt({queryKey:["skills"],queryFn:async()=>mA.getSkillsConfig(),refetchInterval:3e4});return m.useEffect(()=>{e.data?.items&&A({skills:e.data.items,globalEnabled:e.data.enabled,totalCount:e.data.totalCount,enabledCount:e.data.enabledCount})},[e.data,A]),e}function iN(){const A=ke(),e=We(t=>t.setSkillsConfig);return _e({mutationFn:t=>mA.updateSkillsConfig(t),onSuccess:t=>{e({skills:t.items,globalEnabled:t.enabled,totalCount:t.totalCount,enabledCount:t.enabledCount}),A.setQueryData(["skills"],t)}})}function HE(A){return gt({queryKey:["skills",A],queryFn:async()=>A?mA.getSkill(A):null,enabled:!!A})}function aN(A){return gt({queryKey:["skills",A,"files"],queryFn:async()=>A?mA.getSkillFiles(A):null,enabled:!!A})}function gN(A,e){return gt({queryKey:["skills",A,"files",e],queryFn:async()=>!A||!e?null:mA.getSkillFileContent(A,e),enabled:!!A&&!!e})}const lN={cwd:cr,parent:cr,repo:cr,user:Wa,system:Wo},FQ={cwd:"Project",parent:"Parent",repo:"Repository",user:"User",system:"System"};function QN(A){return A<1024?`${A} B`:A<1024*1024?`${(A/1024).toFixed(1)} KB`:`${(A/(1024*1024)).toFixed(1)} MB`}const BN=m.memo(function(){const e=We(W=>W.isExpanded),t=We(W=>W.collapseSidebar),s=We(W=>W.skills),n=We(W=>W.globalEnabled),r=We(W=>W.totalCount),i=We(W=>W.enabledCount),a=We(W=>W.selectedSkill),g=We(W=>W.selectSkill),l=We(W=>W.openViewer),B=We(W=>W.viewingFile),[u,E]=m.useState(""),{isLoading:c,isFetching:d,refetch:f}=nN(),p=iN(),{data:D}=HE(a),{data:F}=aN(a),k=F?.files??[],L=m.useMemo(()=>{const W=u.trim().toLowerCase();return W?s.filter($=>$.name.toLowerCase().includes(W)||($.description??"").toLowerCase().includes(W)):s},[s,u]),K=m.useMemo(()=>{const W=new Map;for(const $ of L){const X=W.get($.scope)??[];X.push($),W.set($.scope,X)}return W},[L]);return e?o.jsxs("div",{className:"w-80 border-l border-sidebar-border sidebar-fade-in flex flex-col h-full",children:[o.jsx(ns,{icon:o.jsx(_t,{className:"size-[15px]"}),title:"Skills",onClose:t,children:o.jsx(Sa,{checked:n,loading:p.isPending,onChange:()=>p.mutate({enabled:!n})})}),!a&&r>0&&o.jsx("div",{className:"px-2 py-2 border-b border-sidebar-border/60",children:o.jsxs("div",{className:"relative",children:[o.jsx(zo,{className:"absolute left-2 top-1/2 -translate-y-1/2 w-3.5 h-3.5 text-muted-foreground pointer-events-none"}),o.jsx("input",{type:"text",value:u,onChange:W=>E(W.target.value),placeholder:"Search skills...",className:"w-full h-8 pl-7 pr-7 text-[12px] bg-muted/40 border border-sidebar-border/60 rounded-md outline-none focus:border-foreground/20 placeholder:text-muted-foreground"}),u&&o.jsx("button",{type:"button",onClick:()=>E(""),className:"absolute right-1.5 top-1/2 -translate-y-1/2 h-5 w-5 rounded text-muted-foreground hover:text-foreground hover:bg-muted flex items-center justify-center",title:"Clear search",children:o.jsx(ot,{className:"w-3 h-3"})})]})}),a&&D?o.jsxs("div",{className:"flex-1 overflow-y-auto",children:[o.jsx("div",{className:"p-3 border-b border-border",children:o.jsx("button",{type:"button",onClick:()=>g(null),className:"text-xs text-muted-foreground hover:text-foreground transition-colors",children:"← Back to list"})}),o.jsxs("div",{className:"px-3 py-3 border-b border-border",children:[o.jsx("h3",{className:"font-medium text-sm mb-1",children:D.name}),o.jsx("p",{className:"text-xs text-muted-foreground mb-2",children:D.description}),o.jsxs("div",{className:"flex items-center gap-2",children:[o.jsx("span",{className:"text-[10px] px-1.5 py-0.5 rounded bg-muted text-muted-foreground",children:FQ[D.scope]??D.scope}),D.license&&o.jsx("span",{className:"text-[10px] px-1.5 py-0.5 rounded bg-muted text-muted-foreground",children:D.license})]})]}),o.jsxs("div",{className:"py-1",children:[o.jsx("div",{className:"flex items-center gap-1.5 px-3 py-2 text-[10px] uppercase tracking-wider text-muted-foreground font-medium",children:"Files"}),o.jsx("button",{type:"button",onClick:()=>l(null),className:`w-full text-left px-3 py-2 hover:bg-accent transition-colors ${B===null?"bg-accent":""}`,children:o.jsxs("div",{className:"flex items-center gap-2",children:[o.jsx(ss,{className:"w-3.5 h-3.5 flex-shrink-0 text-muted-foreground"}),o.jsx("span",{className:"text-sm font-mono truncate flex-1",children:"SKILL.md"})]})}),k.map(W=>o.jsx("button",{type:"button",onClick:()=>l(W.relativePath),className:`w-full text-left px-3 py-2 hover:bg-accent transition-colors ${B===W.relativePath?"bg-accent":""}`,children:o.jsxs("div",{className:"flex items-center gap-2",children:[o.jsx(Un,{className:"w-3.5 h-3.5 flex-shrink-0 text-muted-foreground"}),o.jsx("span",{className:"text-sm font-mono truncate flex-1",children:W.relativePath}),o.jsx("span",{className:"text-[10px] text-muted-foreground flex-shrink-0",children:QN(W.size)})]})},W.relativePath))]})]}):o.jsx("div",{className:"flex-1 overflow-y-auto",children:c?o.jsx("div",{className:"flex items-center justify-center py-8",children:o.jsx(Je,{className:"w-4 h-4 animate-spin text-muted-foreground"})}):r===0?o.jsxs("div",{className:"flex flex-col items-center justify-center h-full text-center p-4",children:[o.jsx(_t,{className:"w-12 h-12 text-muted-foreground/30 mb-4"}),o.jsx("h3",{className:"text-sm font-medium mb-2",children:"No skills found"}),o.jsxs("p",{className:"text-xs text-muted-foreground max-w-[220px]",children:["Create skills in"," ",o.jsx("code",{className:"text-[10px] bg-muted px-1 rounded",children:".otto/skills/ or .agents/skills/"})," ","or"," ",o.jsx("code",{className:"text-[10px] bg-muted px-1 rounded",children:"~/.config/otto/skills/ or ~/.agents/skills/"})]})]}):n?s.length===0?o.jsxs("div",{className:"flex flex-col items-center justify-center h-full text-center p-4",children:[o.jsx(_t,{className:"w-12 h-12 text-muted-foreground/30 mb-4"}),o.jsx("h3",{className:"text-sm font-medium mb-2",children:"All skills are disabled"}),o.jsx("p",{className:"text-xs text-muted-foreground max-w-[220px]",children:"Enable individual skills or turn all skills back on."})]}):L.length===0?o.jsxs("div",{className:"flex flex-col items-center justify-center h-full text-center p-4",children:[o.jsx(_t,{className:"w-12 h-12 text-muted-foreground/30 mb-4"}),o.jsx("h3",{className:"text-sm font-medium mb-2",children:"No matches"}),o.jsxs("p",{className:"text-xs text-muted-foreground max-w-[220px]",children:['No skills match "',u,'".']})]}):o.jsx("div",{className:"py-1",children:["cwd","parent","repo","user","system"].map(W=>{const $=K.get(W);if(!$?.length)return null;const X=lN[W]??Wo;return o.jsxs("div",{children:[o.jsxs("div",{className:"flex items-center gap-1.5 px-3 py-2 text-[10px] uppercase tracking-wider text-muted-foreground font-medium",children:[o.jsx(X,{className:"w-3 h-3"}),FQ[W]??W]}),$.map(U=>o.jsx("button",{type:"button",onClick:()=>g(U.name),className:`w-full text-left px-3 py-2 hover:bg-accent transition-colors ${a===U.name?"bg-accent":""}`,children:o.jsxs("div",{className:"flex items-start gap-2",children:[o.jsx(ss,{className:"w-3.5 h-3.5 flex-shrink-0 text-muted-foreground"}),o.jsxs("div",{className:"min-w-0 flex-1",children:[o.jsx("div",{className:"text-sm font-medium truncate",children:U.name}),o.jsx("div",{className:"text-xs text-muted-foreground truncate",children:U.description})]}),o.jsx(Sa,{checked:U.enabled!==!1,loading:p.isPending,onChange:()=>p.mutate({items:{[U.name]:{enabled:U.enabled===!1}}})})]})},`${U.scope}-${U.name}`))]},W)})}):o.jsxs("div",{className:"flex flex-col items-center justify-center h-full text-center p-4",children:[o.jsx(_t,{className:"w-12 h-12 text-muted-foreground/30 mb-4"}),o.jsx("h3",{className:"text-sm font-medium mb-2",children:"Skills are disabled"}),o.jsx("p",{className:"text-xs text-muted-foreground max-w-[220px]",children:"Turn the skills toggle on to make discovered skills available."})]})}),o.jsxs("div",{className:"h-9 px-3 border-t border-border text-xs text-muted-foreground flex items-center justify-between gap-2",children:[o.jsxs("div",{className:"flex items-center gap-2 min-w-0 flex-1",children:[o.jsx(_t,{className:"w-3 h-3 flex-shrink-0"}),o.jsxs("span",{className:"truncate",children:[i,"/",r," ",r===1?"skill":"skills"]})]}),o.jsx(ye,{variant:"ghost",size:"icon",onClick:()=>f(),title:"Refresh skills",className:"h-6 w-6 flex-shrink-0",disabled:d,children:o.jsx(Zt,{className:`w-3 h-3 ${d?"animate-spin":""}`})})]})]}):null}),cN=m.memo(function(){const e=We(s=>s.isExpanded),t=We(s=>s.toggleSidebar);return o.jsx("button",{type:"button",onClick:t,className:`relative h-12 w-full transition-colors touch-manipulation flex items-center justify-center border-r-2 ${e?"bg-muted border-primary":"border-transparent hover:bg-muted/50"}`,title:"Skills",children:o.jsx(_t,{className:"size-[18px] text-muted-foreground mx-auto"})})}),EN={js:"javascript",jsx:"jsx",ts:"typescript",tsx:"tsx",py:"python",rb:"ruby",go:"go",rs:"rust",java:"java",c:"c",cpp:"cpp",h:"c",hpp:"cpp",cs:"csharp",php:"php",sh:"bash",bash:"bash",zsh:"bash",sql:"sql",json:"json",yaml:"yaml",yml:"yaml",xml:"xml",html:"html",css:"css",scss:"scss",md:"markdown",txt:"plaintext",toml:"toml"};function CN(A){const e=A.split(".").pop()?.toLowerCase()??"";return EN[e]??"plaintext"}const uN=m.memo(function({mode:e="overlay"}={}){const t=We(f=>f.isViewerOpen),s=We(f=>f.viewingFile),n=We(f=>f.selectedSkill),r=We(f=>f.closeViewer),{data:i}=HE(n),{data:a,isLoading:g}=gN(n,s),l=s===null,B=l?i?.content:a?.content,u=l?!i:g,E=l?"SKILL.md":s??"",c=CN(E);if(m.useEffect(()=>{const f=p=>{const D=p.target,F=D.tagName==="INPUT"||D.tagName==="TEXTAREA"||D.isContentEditable;(p.key==="Escape"||p.key==="q"&&!F)&&t&&r()};return document.addEventListener("keydown",f),()=>document.removeEventListener("keydown",f)},[t,r]),!t||!n)return null;const d=document?.documentElement.classList.contains("dark")?Io:ho;return o.jsxs("div",{className:e==="pane"?"h-full w-full bg-transparent flex flex-col":"absolute inset-0 bg-background z-50 flex flex-col animate-in slide-in-from-left duration-300",children:[o.jsxs("div",{className:"h-12 border-b border-sidebar-border px-2.5 flex items-center gap-2 shrink-0 bg-sidebar-accent/40",children:[o.jsx(ye,{variant:"ghost",size:"icon",onClick:r,title:"Close viewer (ESC)",className:"h-8 w-8",children:o.jsx(ot,{className:"size-[17px]"})}),o.jsxs("div",{className:"flex-1 flex items-center gap-2 min-w-0",children:[o.jsx("span",{className:"text-[12px] text-muted-foreground flex-shrink-0",children:n}),o.jsx("span",{className:"text-[12px] text-muted-foreground",children:"/"}),o.jsx("span",{className:"text-[12px] font-medium text-foreground font-mono truncate",title:E,children:E})]}),o.jsx("span",{className:"text-[11px] text-muted-foreground pr-1",children:c})]}),o.jsx("div",{className:"flex-1 overflow-auto",children:u?o.jsx("div",{className:"h-full flex items-center justify-center text-muted-foreground",children:"Loading..."}):B?o.jsx("div",{className:"code-with-line-numbers",children:o.jsx(Yt,{language:c,style:d,wrapLines:!0,wrapLongLines:!0,lineProps:()=>({className:"code-line"}),customStyle:{margin:0,padding:"1rem",background:"transparent",fontSize:"0.75rem",lineHeight:"1.25rem"},codeTagProps:{style:{flex:1}},children:B})}):o.jsx("div",{className:"h-full flex items-center justify-center text-muted-foreground",children:"Unable to load file"})})]})}),GQ="file-browser",vQ=320,IN=280,dN=600;function hN({dirPath:A}){const t=At(r=>r.expandedDirs).has(A),{data:s,isLoading:n}=bE(A,t);return t?n?o.jsx("div",{className:"pl-4 py-1 text-xs text-muted-foreground",children:"Loading..."}):o.jsx("div",{className:"pl-3",children:s?.items.map(r=>o.jsx(PE,{name:r.name,path:r.path,type:r.type,gitignored:r.gitignored,vendor:r.vendor},r.path))}):null}function PE({name:A,path:e,type:t,gitignored:s,vendor:n}){const r=At(E=>E.expandedDirs),i=At(E=>E.toggleDir),a=At(E=>E.openFile),g=At(E=>E.selectedFile),l=r.has(e),B=g===e,u=m.useCallback(()=>{t==="directory"?i(e):a(e)},[t,e,i,a]);return o.jsxs("div",{children:[o.jsxs("button",{type:"button",onClick:u,className:`w-full text-left flex items-center gap-1.5 px-2 py-1 text-sm hover:bg-muted/50 rounded transition-colors ${B?"bg-muted text-foreground":"text-foreground/80"} ${s||n?"opacity-40":""}`,children:[t==="directory"?o.jsxs(o.Fragment,{children:[l?o.jsx(qt,{className:"w-3 h-3 text-muted-foreground flex-shrink-0"}):o.jsx(St,{className:"w-3 h-3 text-muted-foreground flex-shrink-0"}),l?o.jsx(PQ,{className:"w-3.5 h-3.5 text-blue-500 flex-shrink-0"}):o.jsx(WQ,{className:"w-3.5 h-3.5 text-blue-500 flex-shrink-0"})]}):o.jsxs(o.Fragment,{children:[o.jsx("span",{className:"w-3 flex-shrink-0"}),o.jsx(Un,{className:"w-3.5 h-3.5 text-muted-foreground flex-shrink-0"})]}),o.jsx("span",{className:"truncate",children:A})]}),t==="directory"&&o.jsx(hN,{dirPath:e})]})}const pN=m.memo(function(){const e=At(a=>a.isExpanded),t=At(a=>a.collapseSidebar),s=rs(a=>a.widths[GQ]??vQ),{data:n,isLoading:r,refetch:i}=bE(".");return e?o.jsxs("div",{className:"border-l border-sidebar-border sidebar-fade-in flex h-full relative",style:{width:s},children:[o.jsx(Zs,{panelKey:GQ,side:"right",minWidth:IN,maxWidth:dN,defaultWidth:vQ}),o.jsxs("div",{className:"flex-1 flex flex-col h-full min-w-0",children:[o.jsx(ns,{icon:o.jsx(hr,{className:"size-[15px]"}),title:"Files",onClose:t}),o.jsx("div",{className:"flex-1 overflow-y-auto p-1",children:r?o.jsx("div",{className:"p-4 text-sm text-muted-foreground",children:"Loading file tree..."}):!n||n.items.length===0?o.jsx("div",{className:"p-4 text-sm text-muted-foreground",children:"No files found"}):n.items.map(a=>o.jsx(PE,{name:a.name,path:a.path,type:a.type,gitignored:a.gitignored,vendor:a.vendor},a.path))}),o.jsxs("div",{className:"h-9 px-3 border-t border-border text-xs text-muted-foreground flex items-center justify-between gap-2",children:[o.jsxs("div",{className:"flex items-center gap-2 min-w-0 flex-1",children:[o.jsx(hr,{className:"w-3 h-3 flex-shrink-0"}),o.jsx("span",{className:"truncate",children:"Project Files"})]}),o.jsx(ye,{variant:"ghost",size:"icon",onClick:()=>i(),title:"Refresh file tree",className:"h-6 w-6 flex-shrink-0",disabled:r,children:o.jsx(Zt,{className:`w-3 h-3 ${r?"animate-spin":""}`})})]})]})]}):null}),fN=m.memo(function(){const e=At(s=>s.isExpanded),t=At(s=>s.toggleSidebar);return o.jsx("button",{type:"button",onClick:t,className:`relative h-12 w-full transition-colors touch-manipulation flex items-center justify-center border-r-2 ${e?"bg-muted border-primary":"border-transparent hover:bg-muted/50"}`,title:"Files",children:o.jsx(hr,{className:"size-[18px] text-muted-foreground mx-auto"})})}),mN={js:"javascript",jsx:"jsx",ts:"typescript",tsx:"tsx",py:"python",rb:"ruby",go:"go",rs:"rust",java:"java",c:"c",cpp:"cpp",h:"c",hpp:"cpp",cs:"csharp",php:"php",sh:"bash",bash:"bash",zsh:"bash",sql:"sql",json:"json",yaml:"yaml",yml:"yaml",xml:"xml",html:"html",css:"css",scss:"scss",md:"markdown",markdown:"markdown",mdx:"markdown",txt:"plaintext",svelte:"svelte",toml:"toml",lock:"plaintext"};function WE(A){return A.split(".").pop()?.toLowerCase()??""}function wN(A){const e=WE(A);return mN[e]??"plaintext"}function xN(A){const e=WE(A);return e==="md"||e==="markdown"||e==="mdx"}const DN=m.memo(function({mode:e="overlay"}={}){const t=At(B=>B.isViewerOpen),s=At(B=>B.selectedFile),n=At(B=>B.closeViewer),{data:r,isLoading:i}=T1(s);if(m.useEffect(()=>{const B=u=>{const E=u.target,c=E.tagName==="INPUT"||E.tagName==="TEXTAREA"||E.isContentEditable;(u.key==="Escape"||u.key==="q"&&!c)&&t&&n()};return document.addEventListener("keydown",B),()=>document.removeEventListener("keydown",B)},[t,n]),!t||!s)return null;const a=document?.documentElement.classList.contains("dark")?Io:ho,g=wN(s),l=xN(s);return o.jsxs("div",{className:e==="pane"?"h-full w-full bg-transparent flex flex-col":"absolute inset-0 bg-background z-50 flex flex-col animate-in slide-in-from-left duration-300",children:[o.jsxs("div",{className:"h-12 border-b border-sidebar-border px-2.5 flex items-center gap-2 shrink-0 bg-sidebar-accent/40",children:[o.jsx(ye,{variant:"ghost",size:"icon",onClick:n,title:"Close file viewer (ESC)",className:"h-8 w-8",children:o.jsx(ot,{className:"size-[17px]"})}),o.jsxs("div",{className:"flex-1 flex items-center gap-2 min-w-0",children:[o.jsx("span",{className:"text-[12px] font-medium text-foreground font-mono truncate",title:s,children:s}),r&&o.jsxs("span",{className:"text-[11px] text-muted-foreground flex-shrink-0",children:[r.lineCount," lines"]})]}),o.jsx("span",{className:"text-[11px] text-muted-foreground pr-1",children:g})]}),o.jsx("div",{className:"flex-1 overflow-auto",children:i?o.jsx("div",{className:"h-full flex items-center justify-center text-muted-foreground",children:"Loading file..."}):r?l?o.jsx("div",{className:"p-4 text-[13px] text-foreground leading-5 markdown-content max-w-full overflow-x-auto",children:o.jsx(za,{remarkPlugins:[Va],components:{a:({href:B,children:u,...E})=>o.jsx("a",{href:B,target:"_blank",rel:"noopener noreferrer",onClick:c=>{window.self!==window.top&&B&&(c.preventDefault(),window.parent.postMessage({type:"otto-open-url",url:B},"*"))},...E,children:u}),table:({children:B,...u})=>o.jsx("div",{className:"overflow-x-auto max-w-full min-w-0 my-3",children:o.jsx("table",{...u,children:B})})},children:r.content})}):o.jsx("div",{className:"code-with-line-numbers",children:o.jsx(Yt,{language:g,style:a,wrapLines:!0,wrapLongLines:!0,lineProps:()=>({className:"code-line"}),customStyle:{margin:0,padding:"1rem",background:"transparent",fontSize:"0.75rem",lineHeight:"1.25rem"},codeTagProps:{style:{flex:1}},children:r.content})}):o.jsx("div",{className:"h-full flex items-center justify-center text-muted-foreground",children:"Unable to load file"})})]})}),Ua=dt(A=>({isOpen:!1,open:()=>A({isOpen:!0}),close:()=>A({isOpen:!1}),toggle:()=>A(e=>({isOpen:!e.isOpen}))}));function yN(A,e){const t=A.toLowerCase(),s=e.toLowerCase();if(t.length===0)return{match:!0,score:0};if(s.includes(t))return{match:!0,score:100-s.indexOf(t)};let n=0,r=0,i=-1;for(let a=0;a<s.length&&n<t.length;a++)s[a]===t[n]&&(r+=10,i===a-1&&(r+=5),(a===0||s[a-1]==="/"||s[a-1]===".")&&(r+=8),i=a,n++);return{match:n===t.length,score:r}}const NN=m.memo(function(){const e=Ua(D=>D.isOpen),t=Ua(D=>D.close),s=At(D=>D.openFile),n=At(D=>D.expandSidebar),[r,i]=m.useState(""),[a,g]=m.useState(0),l=m.useRef(null),B=m.useRef(null),{data:u}=XB({enabled:e,query:r}),E=m.useMemo(()=>new Set(u?.ignoredFiles??[]),[u?.ignoredFiles]),c=m.useMemo(()=>u?.files?r?u.files.map(F=>({file:F,...yN(r,F)})).filter(F=>F.match).sort((F,k)=>k.score-F.score).slice(0,50).map(F=>F.file):u.files.slice(0,50):[],[u?.files,r]);m.useEffect(()=>{e&&(i(""),g(0),setTimeout(()=>l.current?.focus(),0))},[e]),m.useEffect(()=>{B.current?.children[a]?.scrollIntoView({block:"nearest"})},[a]);const d=m.useCallback(D=>{n(),s(D),t()},[n,s,t]),f=m.useCallback(D=>{D.key==="ArrowDown"||D.ctrlKey&&D.key==="j"?(D.preventDefault(),g(F=>Math.min(F+1,c.length-1))):D.key==="ArrowUp"||D.ctrlKey&&D.key==="k"?(D.preventDefault(),g(F=>Math.max(F-1,0))):D.key==="Enter"&&c[a]?(D.preventDefault(),d(c[a])):D.key==="Escape"&&(D.preventDefault(),t())},[c,a,d,t]),p=m.useCallback(D=>{D.target===D.currentTarget&&t()},[t]);return e?o.jsx("div",{role:"dialog","aria-modal":"true",className:"fixed inset-0 bg-black/50 flex items-start justify-center z-[60] pt-[15vh]",onClick:p,onKeyDown:D=>{D.key==="Escape"&&t()},children:o.jsxs("div",{className:"bg-background border border-border rounded-lg shadow-2xl w-full max-w-lg overflow-hidden",children:[o.jsxs("div",{className:"flex items-center gap-2 px-3 border-b border-border",children:[o.jsx(zo,{className:"w-4 h-4 text-muted-foreground flex-shrink-0"}),o.jsx("input",{ref:l,type:"text",value:r,onChange:D=>{i(D.target.value),g(0)},onKeyDown:f,placeholder:"Search files by name...",className:"flex-1 bg-transparent py-3 text-sm text-foreground placeholder-muted-foreground outline-none"}),o.jsx("kbd",{className:"text-[10px] text-muted-foreground bg-muted px-1.5 py-0.5 rounded border border-border font-mono",children:"ESC"})]}),o.jsx("div",{ref:B,className:"max-h-[40vh] overflow-y-auto",children:c.length===0?o.jsx("div",{className:"px-4 py-8 text-center text-sm text-muted-foreground",children:r?"No matching files":"No files found"}):c.map((D,F)=>{const k=E.has(D);return o.jsxs("button",{type:"button",onClick:()=>d(D),className:`w-full text-left flex items-center gap-2 px-3 py-2 text-sm transition-colors ${F===a?"bg-accent text-accent-foreground":"text-foreground/80 hover:bg-muted/50"} ${k?"opacity-40":""}`,children:[o.jsx(Un,{className:"w-3.5 h-3.5 text-muted-foreground flex-shrink-0"}),o.jsx(kN,{path:D,query:r}),k&&o.jsx("span",{className:"ml-auto text-[10px] text-muted-foreground italic",children:"ignored"})]},D)})}),c.length>0&&o.jsxs("div",{className:"px-3 py-2 border-t border-border text-xs text-muted-foreground flex items-center gap-3",children:[o.jsxs("span",{children:[o.jsx("kbd",{className:"bg-muted px-1 py-0.5 rounded border border-border font-mono",children:"↑↓"})," ","navigate"]}),o.jsxs("span",{children:[o.jsx("kbd",{className:"bg-muted px-1 py-0.5 rounded border border-border font-mono",children:"↵"})," ","open"]}),o.jsxs("span",{className:"ml-auto",children:[c.length," files"]})]})]})}):null});function kN({path:A,query:e}){if(!e)return o.jsx("span",{className:"truncate font-mono text-xs",children:A});const t=A.toLowerCase(),s=e.toLowerCase(),n=t.indexOf(s);return n>=0?o.jsxs("span",{className:"truncate font-mono text-xs",children:[A.slice(0,n),o.jsx("span",{className:"text-primary font-semibold",children:A.slice(n,n+e.length)}),A.slice(n+e.length)]}):o.jsx("span",{className:"truncate font-mono text-xs",children:A})}const MN=[{value:"openai-compatible",label:"OpenAI-compatible"},{value:"openai",label:"OpenAI"},{value:"anthropic",label:"Anthropic"},{value:"google",label:"Google"},{value:"openrouter",label:"OpenRouter"},{value:"ollama",label:"Ollama"}];function SQ(A){return A>=1e6?`${(A/1e6).toFixed(1)}M`:A>=1e3?`${Math.round(A/1e3)}K`:String(A)}const bN=m.memo(function({authStatus:e,onSetupWallet:t,onImportWallet:s,onAddProvider:n,onAddCustomProvider:r,onRemoveProvider:i,onStartOAuth:a,onStartOAuthManual:g,onExchangeOAuthCode:l,onOpenTopup:B,onNext:u,manageMode:E=!1,onClose:c,hideHeader:d=!1,onStartCopilotDeviceFlow:f,onPollCopilotDeviceFlow:p,onGetCopilotAuthMethods:D,onSaveCopilotToken:F,onImportCopilotTokenFromGh:k,onGetCopilotDiagnostics:L}){const[K,W]=m.useState(!1),[$,X]=m.useState(!1),[U,O]=m.useState(!1),[T,H]=m.useState(""),[x,Q]=m.useState(!1),[I,N]=m.useState(null),[G,J]=m.useState(null),[q,j]=m.useState(""),[R,C]=m.useState(!1),[h,v]=m.useState(""),[S,Z]=m.useState(""),[eA,rA]=m.useState(""),[sA,bA]=m.useState(""),[LA,QA]=m.useState(""),[qA,PA]=m.useState("openai-compatible"),[Ce,MA]=m.useState(!0),[ZA,fe]=m.useState(!1),[He,me]=m.useState(null),[Re,it]=m.useState(!1),[Ke,NA]=m.useState([]),[Ie,WA]=m.useState(null),[Y,y]=m.useState(null),[M,_]=m.useState(null),[tA,aA]=m.useState(null),[EA,_A]=m.useState(""),[zA,XA]=m.useState(!1),[Ge,VA]=m.useState(!1),[xe,Wt]=m.useState(null),[Le,Pe]=m.useState(!1),[Ro,Qe]=m.useState(null),[ve,zt]=m.useState("oauth"),[Oe,Ze]=m.useState(""),[$A,De]=m.useState(!1),[de,Ko]=m.useState(!1),[b,P]=m.useState(null),[z,w]=m.useState(null),[V,nA]=m.useState(!1),[oA,IA]=m.useState(!1),[yA,FA]=m.useState(!1),DA=m.useRef(void 0),Ee=m.useRef(!1),UA=m.useRef(p);UA.current=p;const Ae=Ne(lA=>lA.balance),ne=Ne(lA=>lA.usdcBalance),ge=Ne(lA=>lA.payg),ie=Ne(lA=>lA.subscription),se=Ne(lA=>lA.isLoading),re=m.useRef(null),ee=m.useRef(null),RA=m.useRef(null),YA=Ne(lA=>lA.isTopupModalOpen),SA=m.useRef(!1),{fetchBalance:KA}=ni("ottorouter"),JA=ge?.effectiveSpendableUsd??Ae??0,vA=ie?.active?`GO ${(ie.creditsRemaining??0).toFixed(1)} credits`:`$${JA.toFixed(2)}`;m.useEffect(()=>{SA.current&&!YA&&KA(),SA.current=YA},[YA,KA]),m.useEffect(()=>{!e.ottorouter.configured&&!$&&(X(!0),t().finally(()=>X(!1)))},[e.ottorouter.configured,t,$]),m.useEffect(()=>{G&&re.current&&re.current.focus()},[G]),m.useEffect(()=>{tA&&ee.current&&ee.current.focus()},[tA]),m.useEffect(()=>{U&&RA.current&&RA.current.focus()},[U]),m.useEffect(()=>{if(!Le||!xe||!UA.current)return;Ee.current=!1;const lA=Math.max((xe.interval||5)*1e3+2e3,7e3),qe=()=>{DA.current=setTimeout(async()=>{if(!Ee.current)try{const Hr=UA.current;if(!Hr)return;const rr=await Hr(xe.sessionId);if(Ee.current)return;rr.status==="complete"?(Wt(null),Pe(!1),Qe(null),IA(!1)):rr.status==="error"?(Qe(rr.error||"Authorization failed"),Pe(!1)):qe()}catch{Ee.current||qe()}},lA)};qe();const Vt=setTimeout(()=>{Pe(!1),Qe("Authorization timed out. Please try again.")},3e5);return()=>{Ee.current=!0,DA.current&&clearTimeout(DA.current),clearTimeout(Vt)}},[Le,xe]);const CA=async()=>{e.ottorouter.publicKey&&(await navigator.clipboard.writeText(e.ottorouter.publicKey),W(!0),setTimeout(()=>W(!1),2e3))},uA=lA=>`${lA.slice(0,8)}...${lA.slice(-6)}`,fA=async lA=>{if(q.trim())try{await n(lA,q.trim()),J(null),j("")}catch{}},hA=()=>{v(""),Z(""),rA(""),bA(""),QA(""),PA("openai-compatible"),MA(!0),me(null),NA([]),WA(null)},pA=()=>{ZA||(C(!1),hA())},kA=async()=>{const lA=eA.trim();if(!lA){WA("Enter a base URL first.");return}it(!0),WA(null);try{const qe=await mA.discoverProviderModels({compatibility:qA,baseURL:lA,apiKey:sA.trim()||void 0});qe.baseURL&&rA(qe.baseURL),NA(qe.models),qe.models.length>0&&QA(qe.models.map(Vt=>Vt.id).join(`
|
|
148
|
+
`)),WA(qe.message||(qe.models.length>0?`Fetched ${qe.models.length} model${qe.models.length===1?"":"s"}.`:"No models found."))}catch(qe){NA([]),WA(qe instanceof Error?qe.message:"Failed to fetch models")}finally{it(!1)}},te=async()=>{const lA=h.trim(),qe=S.trim()||lA,Vt=eA.trim(),Hr=sA.trim(),rr=LA.split(/[\n,]/).map(Pr=>Pr.trim()).filter(Boolean);if(!lA||!Vt){me("Provider ID and base URL are required.");return}fe(!0),me(null);try{await r({id:lA,label:qe,baseURL:Vt,apiKey:Hr||void 0,compatibility:qA,models:rr,allowAnyModel:Ce}),C(!1),hA()}catch(Pr){me(Pr instanceof Error?Pr.message:"Failed to add custom provider")}finally{fe(!1)}},Be=async lA=>{if(M===lA){y(lA);try{await i(lA)}finally{y(null),_(null)}}else _(lA)},ue=()=>{_(null)},ce=()=>{f&&(FA(!0),Qe(null),f().then(lA=>{Wt(lA),FA(!1)}).catch(lA=>{Qe(lA instanceof Error?lA.message:"Failed to start device flow"),FA(!1)}))},AA=async(lA,qe)=>{lA==="anthropic"?aA({provider:lA,sessionId:null,mode:qe}):lA==="copilot"?(zt("oauth"),Ze(""),w(null),P(null),Pe(!1),Wt(null),Qe(null),IA(!0),D&&D().then(Vt=>P(Vt)).catch(()=>{}),L&&L().then(Vt=>w(Vt)).catch(()=>{}),ce()):a(lA,qe)},we=async()=>{if(tA){VA(!0);try{const{sessionId:lA}=await g(tA.provider,tA.mode);aA({...tA,sessionId:lA})}catch(lA){console.error("Failed to start OAuth:",lA)}VA(!1)}},Se=async()=>{if(!(!tA||!tA.sessionId||!EA.trim())){XA(!0);try{await l(tA.provider,EA.trim(),tA.sessionId),aA(null),_A("")}catch{}XA(!1)}},Me=()=>{aA(null),_A("")},he=()=>{xe&&(Co(xe.verificationUri),Pe(!0))},be=lA=>{zt(lA),Qe(null),lA==="token"&&Pe(!1),lA==="oauth"&&!xe&&!yA&&ce()},Ue=async()=>{if(!(!Oe.trim()||!F)){De(!0),Qe(null);try{await F(Oe.trim()),tt()}catch(lA){Qe(lA instanceof Error?lA.message:"Failed to save Copilot token")}finally{De(!1)}}},lt=async()=>{if(k){Ko(!0),Qe(null);try{await k(),tt()}catch(lA){Qe(lA instanceof Error?lA.message:"Failed to import token from GitHub CLI")}finally{Ko(!1)}}},ze=async()=>{xe&&(await navigator.clipboard.writeText(xe.userCode),nA(!0),setTimeout(()=>nA(!1),2e3))},tt=()=>{Wt(null),Pe(!1),Qe(null),Ze(""),De(!1),Ko(!1),zt("oauth"),nA(!1),IA(!1),FA(!1),Ee.current=!0,DA.current&&(clearTimeout(DA.current),DA.current=void 0)},at=()=>{N(null),H(""),O(!0)},rt=()=>{x||(O(!1),N(null),H(""))},ct=async()=>{if(!(!T.trim()||x)){Q(!0),N(null);try{await s(T.trim()),O(!1),H(""),KA()}catch(lA){N(lA instanceof Error?lA.message:"Failed to import wallet")}finally{Q(!1)}}},ht=Object.entries(e.providers).filter(([lA,qe])=>qe.configured&&lA!=="ottorouter"),Dt=Object.entries(e.providers).filter(([lA,qe])=>!qe.configured&&lA!=="ottorouter");return o.jsxs("div",{className:"min-h-screen flex flex-col",children:[!d&&o.jsxs("div",{className:"flex items-center justify-between px-4 sm:px-6 py-4 border-b border-border",children:[o.jsxs("div",{className:"flex items-center gap-3",children:[o.jsx(eo,{provider:"ottorouter",size:24}),o.jsx("span",{className:"font-semibold text-foreground",children:"otto"})]}),!E&&o.jsxs("div",{className:"flex items-center gap-2 text-sm text-muted-foreground",children:[o.jsx("span",{className:"w-2 h-2 rounded-full bg-green-500"}),"Step 1 of 2"]})]}),o.jsx("div",{className:`flex-1 px-4 sm:px-6 lg:px-12 pb-32 ${d?"pt-8 sm:pt-10 lg:pt-14":"pt-6 sm:pt-8 lg:pt-12"}`,children:o.jsxs("div",{className:"max-w-7xl mx-auto",children:[o.jsxs("div",{className:"mb-10",children:[o.jsx("h1",{className:"text-2xl sm:text-3xl lg:text-4xl font-semibold text-foreground mb-3",children:E?"Manage Providers":"Welcome to otto"}),o.jsx("p",{className:"text-lg text-muted-foreground max-w-2xl",children:E?"Add or remove AI providers. Your changes are saved automatically.":"Setu is your default AI provider. GO plan credits are applied automatically."})]}),o.jsxs("div",{className:"grid grid-cols-1 sm:grid-cols-3 gap-6 sm:gap-8",children:[o.jsx("div",{children:o.jsx("div",{className:"bg-card rounded-2xl border border-border p-5",children:e.ottorouter.configured&&e.ottorouter.publicKey?o.jsxs("div",{className:"flex flex-col h-full",children:[o.jsxs("div",{className:"flex items-center gap-2 px-3 py-2 bg-green-500/10 border border-green-500/20 rounded-lg",children:[o.jsx(eo,{provider:"ottorouter",size:16}),o.jsx("span",{className:"text-sm font-medium text-green-600 dark:text-green-400",children:"Setu"}),o.jsx("span",{className:"text-xs text-green-600/60 dark:text-green-500/60 ml-auto",children:"Default Provider"})]}),o.jsx("div",{className:"flex justify-center py-4 mt-4",children:o.jsx("div",{className:"bg-white p-2 rounded-lg",children:o.jsx(ai,{value:e.ottorouter.publicKey,size:140,level:"M"})})}),o.jsxs("div",{className:"space-y-2 mt-4",children:[o.jsxs("button",{type:"button",onClick:CA,className:"w-full flex items-center justify-center gap-2 px-3 py-2 bg-muted hover:bg-muted/80 rounded-lg text-xs font-mono text-muted-foreground transition-colors",children:[uA(e.ottorouter.publicKey),K?o.jsx(Ht,{className:"w-3.5 h-3.5 text-green-500"}):o.jsx(fs,{className:"w-3.5 h-3.5 text-muted-foreground"})]}),o.jsxs("div",{className:"space-y-1.5 px-3 py-2 bg-muted/50 rounded-lg",children:[o.jsxs("div",{className:"flex items-center justify-between gap-2",children:[o.jsx("div",{className:"flex items-center gap-1.5 min-w-0",children:o.jsx("span",{className:"font-mono text-xs sm:text-sm text-foreground truncate",children:vA})}),o.jsx("button",{type:"button",onClick:KA,disabled:se,className:"p-0.5 text-muted-foreground hover:text-foreground transition-colors disabled:opacity-50",children:o.jsx(Zt,{className:`w-3 h-3 ${se?"animate-spin":""}`})})]}),o.jsxs("span",{className:"text-[10px] text-muted-foreground font-mono",children:["Balance $",(Ae??0).toFixed(2)," • On-chain"," ",(ne??0).toFixed(2)," USDC"]})]})]}),o.jsxs("div",{className:"flex items-center gap-4 py-4",children:[o.jsx("div",{className:"flex-1 h-px bg-border"}),o.jsx("span",{className:"text-xs text-muted-foreground font-medium",children:"OR"}),o.jsx("div",{className:"flex-1 h-px bg-border"})]}),o.jsxs("button",{type:"button",onClick:B,className:"w-full flex items-center justify-center gap-2 px-4 py-2.5 bg-primary text-primary-foreground rounded-lg text-sm font-medium hover:bg-primary/90 transition-colors",children:[o.jsx(Kn,{className:"w-4 h-4"}),"Top Up with Card"]}),o.jsxs("button",{type:"button",onClick:at,className:"w-full mt-2 flex items-center justify-center gap-2 px-4 py-2.5 border border-border text-foreground rounded-lg text-sm font-medium hover:bg-muted/50 transition-colors",children:[o.jsx(Br,{className:"w-4 h-4"}),"Import Wallet"]})]}):o.jsx("div",{className:"flex items-center justify-center py-16",children:o.jsx(Je,{className:"w-8 h-8 animate-spin text-muted-foreground"})})})}),o.jsxs("div",{className:"sm:col-span-2 space-y-6",children:[o.jsxs("div",{children:[o.jsxs("div",{className:"flex items-center justify-between mb-4",children:[o.jsx("h2",{className:"font-semibold text-foreground",children:"Connected Providers"}),ht.length>0&&o.jsxs("span",{className:"text-sm text-muted-foreground",children:[ht.length," active"]})]}),ht.length===0?o.jsx("div",{className:"text-sm text-muted-foreground py-4",children:"No providers connected yet. Add one below."}):o.jsx("div",{className:"flex flex-wrap gap-2",children:ht.map(([lA,qe])=>o.jsxs("div",{className:`flex items-center gap-2 pl-3 pr-2 py-2 rounded-full transition-all duration-200 ${M===lA?"bg-destructive/10 border border-destructive/30":"group bg-green-500/10 border border-green-500/20"}`,children:[o.jsx(eo,{provider:lA,size:16}),o.jsx("span",{className:`text-sm font-medium transition-colors ${M===lA?"text-destructive":"text-green-600 dark:text-green-400"}`,children:qe.label}),M!==lA&&o.jsx("span",{className:"text-xs text-green-600/60 dark:text-green-500/60",children:qe.type==="oauth"?"OAuth":"API"}),M===lA?o.jsxs("div",{className:"flex items-center gap-1 ml-1",children:[o.jsx("span",{className:"text-xs text-destructive/80 mr-1",children:"Remove?"}),o.jsx("button",{type:"button",onClick:()=>Be(lA),disabled:Y===lA,className:"px-2 py-0.5 text-xs bg-destructive text-destructive-foreground rounded hover:bg-destructive/90 transition-colors disabled:opacity-50",children:Y===lA?o.jsx(Je,{className:"w-3 h-3 animate-spin"}):"Yes"}),o.jsx("button",{type:"button",onClick:ue,className:"px-2 py-0.5 text-xs bg-muted text-muted-foreground rounded hover:bg-muted/80 transition-colors",children:"No"})]}):lA!=="ottorouter"&&o.jsx("button",{type:"button",onClick:()=>Be(lA),className:"ml-1 p-1 text-green-600/40 dark:text-green-500/40 hover:text-green-600/80 dark:hover:text-green-500/80 opacity-0 group-hover:opacity-100 transition-opacity",children:o.jsx(ot,{className:"w-3 h-3"})})]},lA))})]}),o.jsxs("div",{children:[o.jsx("h2",{className:"font-semibold text-foreground mb-4",children:"Add Providers"}),o.jsxs("div",{className:"grid grid-cols-1 sm:grid-cols-2 gap-3 items-start",children:[Dt.map(([lA,qe])=>o.jsx("div",{children:G===lA?o.jsxs("div",{className:"flex items-center gap-2 p-3 bg-card border border-ring rounded-xl overflow-hidden",children:[o.jsx("div",{className:"shrink-0",children:o.jsx(eo,{provider:lA,size:18})}),o.jsx("input",{ref:re,type:"password",value:q,onChange:Vt=>j(Vt.target.value),placeholder:`${qe.label} API key...`,className:"flex-1 min-w-0 bg-transparent text-sm outline-none placeholder:text-muted-foreground text-foreground",onKeyDown:Vt=>{Vt.key==="Enter"&&fA(lA),Vt.key==="Escape"&&(J(null),j(""))}}),o.jsx("button",{type:"button",onClick:()=>fA(lA),disabled:!q.trim(),className:"shrink-0 px-3 py-1.5 bg-primary text-primary-foreground text-sm font-medium rounded-lg disabled:opacity-50",children:"Add"}),o.jsx("button",{type:"button",onClick:()=>{J(null),j("")},className:"shrink-0 p-1.5 text-muted-foreground hover:text-foreground",children:o.jsx(ot,{className:"w-4 h-4"})})]}):o.jsxs("div",{className:"flex items-center justify-between p-3 bg-card border border-border hover:border-border/80 rounded-xl transition-colors gap-2",children:[o.jsxs("div",{className:"flex items-center gap-3 min-w-0",children:[o.jsx(eo,{provider:lA,size:20}),o.jsxs("div",{className:"min-w-0",children:[o.jsx("div",{className:"font-medium text-foreground truncate",children:qe.label}),o.jsxs("div",{className:"text-xs text-muted-foreground",children:[qe.modelCount," models"]})]})]}),o.jsxs("div",{className:"flex items-center gap-1",children:[lA!=="copilot"&&o.jsxs("button",{type:"button",onClick:()=>J(lA),className:"flex items-center gap-1.5 px-3 py-1.5 text-sm text-muted-foreground hover:text-foreground hover:bg-muted rounded-lg transition-colors",children:[o.jsx(Br,{className:"w-3.5 h-3.5"}),"API"]}),qe.supportsOAuth&&o.jsxs("button",{type:"button",onClick:()=>AA(lA,lA==="anthropic"?"max":void 0),className:"flex items-center gap-1.5 px-3 py-1.5 text-sm text-muted-foreground hover:text-foreground hover:bg-muted rounded-lg transition-colors",children:[o.jsx(Gt,{className:"w-3.5 h-3.5"}),lA==="anthropic"?"Pro":lA==="copilot"?"Login":"OAuth"]})]})]})},lA)),o.jsxs("button",{type:"button",onClick:()=>C(!0),className:"group flex items-center justify-between p-3 bg-card border border-dashed border-border hover:border-primary/60 hover:bg-primary/5 hover:shadow-sm rounded-xl transition-all gap-2 text-left cursor-pointer",children:[o.jsxs("div",{className:"flex items-center gap-3 min-w-0",children:[o.jsx("span",{className:"inline-flex items-center justify-center w-5 h-5 rounded-full bg-muted text-muted-foreground group-hover:bg-primary/10 group-hover:text-primary transition-colors",children:o.jsx(lo,{className:"w-3.5 h-3.5"})}),o.jsxs("div",{className:"min-w-0",children:[o.jsx("div",{className:"font-medium text-foreground truncate",children:"Custom Provider"}),o.jsx("div",{className:"text-xs text-muted-foreground group-hover:text-foreground/70 transition-colors",children:"OpenAI-compatible or Ollama endpoint"})]})]}),o.jsxs("span",{className:"flex items-center gap-1.5 px-3 py-1.5 text-sm text-muted-foreground group-hover:text-primary group-hover:bg-primary/10 rounded-lg transition-colors",children:[o.jsx(Br,{className:"w-3.5 h-3.5"}),"Add"]})]})]})]})]})]})]})}),o.jsx("div",{className:"fixed bottom-0 left-0 right-0 px-4 sm:px-6 py-4 border-t border-border bg-background",children:o.jsxs("div",{className:"max-w-7xl mx-auto flex items-center justify-between",children:[!E&&o.jsx("div",{className:"text-xs sm:text-sm text-muted-foreground hidden sm:block",children:"You can add more providers later in settings"}),E?o.jsx("button",{type:"button",onClick:c,className:"flex items-center gap-2 px-6 py-3 bg-primary text-primary-foreground rounded-lg font-medium hover:bg-primary/90 transition-colors ml-auto",children:"Done"}):o.jsxs("button",{type:"button",onClick:u,className:"flex items-center gap-2 px-6 py-3 bg-primary text-primary-foreground rounded-lg font-medium hover:bg-primary/90 transition-colors",children:["Continue",o.jsx(zQ,{className:"w-4 h-4"})]})]})}),R&&o.jsx("div",{className:"fixed inset-0 z-[9999] flex items-center justify-center bg-black/60 backdrop-blur-sm",children:o.jsxs("div",{className:"bg-background border border-border rounded-xl w-full max-w-2xl mx-6 shadow-2xl max-h-[90vh] overflow-y-auto",children:[o.jsxs("div",{className:"flex items-center gap-3 p-6 border-b border-border",children:[o.jsx("span",{className:"inline-flex items-center justify-center w-6 h-6 rounded-full bg-muted text-muted-foreground",children:o.jsx(lo,{className:"w-4 h-4"})}),o.jsx("h3",{className:"text-lg font-semibold",children:"Add Custom Provider"})]}),o.jsxs("div",{className:"p-6 space-y-4",children:[o.jsxs("div",{className:"grid grid-cols-1 sm:grid-cols-2 gap-4",children:[o.jsxs("label",{className:"space-y-2",children:[o.jsx("span",{className:"text-sm font-medium text-foreground",children:"Provider ID"}),o.jsx("input",{type:"text",value:h,onChange:lA=>v(lA.target.value),placeholder:"my-provider",className:"w-full h-11 px-4 bg-muted/50 border border-border rounded-lg text-foreground placeholder:text-muted-foreground outline-none focus:border-foreground/30 transition-colors font-mono text-sm"})]}),o.jsxs("label",{className:"space-y-2",children:[o.jsx("span",{className:"text-sm font-medium text-foreground",children:"Display Name"}),o.jsx("input",{type:"text",value:S,onChange:lA=>Z(lA.target.value),placeholder:"My Provider",className:"w-full h-11 px-4 bg-muted/50 border border-border rounded-lg text-foreground placeholder:text-muted-foreground outline-none focus:border-foreground/30 transition-colors text-sm"})]})]}),o.jsxs("div",{className:"flex items-center justify-between gap-3 p-3 bg-muted/30 border border-border rounded-lg",children:[o.jsxs("div",{className:"min-w-0",children:[o.jsx("div",{className:"text-sm font-medium text-foreground",children:"Fetch models from provider"}),o.jsx("div",{className:"text-xs text-muted-foreground",children:"For Ollama, this reads /api/tags and /api/show to include context windows."})]}),o.jsxs("button",{type:"button",onClick:kA,disabled:!eA.trim()||Re,className:"shrink-0 px-3 py-2 bg-primary text-primary-foreground rounded-lg text-sm font-medium hover:bg-primary/90 transition-colors disabled:opacity-50 flex items-center gap-2",children:[Re&&o.jsx(Je,{className:"w-3.5 h-3.5 animate-spin"}),"Fetch Models"]})]}),Ie&&o.jsx("p",{className:"text-xs text-muted-foreground",children:Ie}),Ke.length>0&&o.jsx("div",{className:"space-y-2 max-h-44 overflow-y-auto border border-border rounded-lg p-2",children:Ke.map(lA=>o.jsxs("div",{className:"flex items-center justify-between gap-3 p-2 bg-card rounded-md",children:[o.jsxs("div",{className:"min-w-0",children:[o.jsx("div",{className:"text-sm font-medium text-foreground truncate",children:lA.label}),o.jsx("div",{className:"text-xs text-muted-foreground font-mono truncate",children:lA.id})]}),o.jsxs("div",{className:"flex flex-wrap justify-end gap-1 shrink-0",children:[lA.contextWindow&&o.jsxs("span",{className:"text-[10px] px-1.5 py-0.5 bg-blue-600/20 text-blue-400 rounded",children:[SQ(lA.contextWindow)," ctx"]}),lA.maxOutputTokens&&o.jsxs("span",{className:"text-[10px] px-1.5 py-0.5 bg-cyan-600/20 text-cyan-400 rounded",children:[SQ(lA.maxOutputTokens)," out"]}),lA.toolCall&&o.jsx("span",{className:"text-[10px] px-1.5 py-0.5 bg-green-600/20 text-green-400 rounded",children:"Tools"}),lA.reasoningText&&o.jsx("span",{className:"text-[10px] px-1.5 py-0.5 bg-purple-600/20 text-purple-400 rounded",children:"Reasoning"}),lA.vision&&o.jsx("span",{className:"text-[10px] px-1.5 py-0.5 bg-orange-600/20 text-orange-400 rounded",children:"Vision"})]})]},lA.id))}),o.jsxs("label",{className:"space-y-2 block",children:[o.jsx("span",{className:"text-sm font-medium text-foreground",children:"Base URL"}),o.jsx("input",{type:"url",value:eA,onChange:lA=>rA(lA.target.value),placeholder:"https://api.example.com/v1",className:"w-full h-11 px-4 bg-muted/50 border border-border rounded-lg text-foreground placeholder:text-muted-foreground outline-none focus:border-foreground/30 transition-colors font-mono text-sm"})]}),o.jsxs("div",{className:"grid grid-cols-1 sm:grid-cols-2 gap-4",children:[o.jsxs("label",{className:"space-y-2",children:[o.jsx("span",{className:"text-sm font-medium text-foreground",children:"API Key"}),o.jsx("input",{type:"password",value:sA,onChange:lA=>bA(lA.target.value),placeholder:"Optional",className:"w-full h-11 px-4 bg-muted/50 border border-border rounded-lg text-foreground placeholder:text-muted-foreground outline-none focus:border-foreground/30 transition-colors font-mono text-sm"})]}),o.jsxs("label",{className:"space-y-2",children:[o.jsx("span",{className:"text-sm font-medium text-foreground",children:"Compatibility"}),o.jsx("select",{value:qA,onChange:lA=>PA(lA.target.value),className:"w-full h-11 px-4 bg-muted/50 border border-border rounded-lg text-foreground outline-none focus:border-foreground/30 transition-colors text-sm",children:MN.map(lA=>o.jsx("option",{value:lA.value,children:lA.label},lA.value))})]})]}),o.jsxs("label",{className:"space-y-2 block",children:[o.jsx("span",{className:"text-sm font-medium text-foreground",children:"Models"}),o.jsx("textarea",{value:LA,onChange:lA=>QA(lA.target.value),placeholder:"gpt-4o, claude-sonnet-4-5, llama3.3",className:"w-full min-h-[90px] px-4 py-3 bg-muted/50 border border-border rounded-lg text-foreground placeholder:text-muted-foreground outline-none focus:border-foreground/30 transition-colors font-mono text-sm resize-y"}),o.jsx("span",{className:"text-xs text-muted-foreground",children:"Comma or newline separated. Leave blank to allow any model."})]}),o.jsxs("label",{className:"flex items-center gap-3 text-sm text-muted-foreground",children:[o.jsx("input",{type:"checkbox",checked:Ce,onChange:lA=>MA(lA.target.checked),className:"h-4 w-4 accent-primary"}),"Allow entering model IDs not listed above"]}),He&&o.jsx("p",{className:"text-sm text-red-500",children:He}),o.jsxs("div",{className:"flex gap-3 pt-2",children:[o.jsx("button",{type:"button",onClick:pA,disabled:ZA,className:"flex-1 h-11 px-4 bg-transparent border border-border text-foreground rounded-lg font-medium hover:bg-muted/50 transition-colors disabled:opacity-50",children:"Cancel"}),o.jsx("button",{type:"button",onClick:te,disabled:!h.trim()||!eA.trim()||ZA,className:"flex-1 h-11 px-4 bg-foreground text-background rounded-lg font-medium hover:bg-foreground/90 transition-colors disabled:opacity-50 flex items-center justify-center gap-2",children:ZA?o.jsx(Je,{className:"w-4 h-4 animate-spin"}):"Add Provider"})]})]})]})}),U&&o.jsx("div",{className:"fixed inset-0 z-[9999] flex items-center justify-center bg-black/60 backdrop-blur-sm",children:o.jsxs("div",{className:"bg-background border border-border rounded-xl w-full max-w-lg mx-6 shadow-2xl",children:[o.jsxs("div",{className:"flex items-center gap-3 p-6 border-b border-border",children:[o.jsx(eo,{provider:"ottorouter",size:24}),o.jsx("h3",{className:"text-lg font-semibold",children:"Import Setu Wallet"})]}),o.jsxs("div",{className:"p-6",children:[o.jsx("p",{className:"text-sm text-muted-foreground mb-4",children:"Paste your base58 private key to replace the current wallet used for Setu."}),o.jsx("textarea",{ref:RA,value:T,onChange:lA=>H(lA.target.value),placeholder:"Enter private key",className:"w-full min-h-[110px] px-4 py-3 bg-muted/50 border border-border rounded-lg text-foreground placeholder:text-muted-foreground outline-none focus:border-foreground/30 transition-colors font-mono text-xs resize-y",onKeyDown:lA=>{(lA.metaKey||lA.ctrlKey)&&lA.key==="Enter"&&(lA.preventDefault(),ct()),lA.key==="Escape"&&rt()}}),I&&o.jsx("p",{className:"text-sm text-red-500 mt-3",children:I}),o.jsxs("div",{className:"flex gap-3 mt-5",children:[o.jsx("button",{type:"button",onClick:rt,disabled:x,className:"flex-1 h-11 px-4 bg-transparent border border-border text-foreground rounded-lg font-medium hover:bg-muted/50 transition-colors disabled:opacity-50",children:"Cancel"}),o.jsx("button",{type:"button",onClick:ct,disabled:!T.trim()||x,className:"flex-1 h-11 px-4 bg-foreground text-background rounded-lg font-medium hover:bg-foreground/90 transition-colors disabled:opacity-50 flex items-center justify-center gap-2",children:x?o.jsx(Je,{className:"w-4 h-4 animate-spin"}):"Import Wallet"})]})]})]})}),tA&&o.jsx("div",{className:"fixed inset-0 z-[9999] flex items-center justify-center bg-black/60 backdrop-blur-sm",children:o.jsxs("div",{className:"bg-background border border-border rounded-xl w-full max-w-lg mx-6 shadow-2xl",children:[o.jsxs("div",{className:"flex items-center gap-3 p-6 border-b border-border",children:[o.jsx(eo,{provider:tA.provider,size:24}),o.jsxs("h3",{className:"text-lg font-semibold",children:["Connect"," ",e.providers[tA.provider]?.label||tA.provider]})]}),tA.sessionId?o.jsxs("div",{className:"p-6",children:[o.jsx("p",{className:"text-sm text-muted-foreground mb-4",children:"Paste the authorization code:"}),o.jsx("input",{type:"text",ref:ee,value:EA,onChange:lA=>_A(lA.target.value),placeholder:"Paste code here...",className:"w-full h-11 px-4 bg-muted/50 border border-border rounded-lg text-foreground placeholder:text-muted-foreground outline-none focus:border-foreground/30 transition-colors mb-4 font-mono text-sm",onKeyDown:lA=>{lA.key==="Enter"&&Se(),lA.key==="Escape"&&Me()}}),o.jsxs("div",{className:"flex gap-3",children:[o.jsx("button",{type:"button",onClick:Me,className:"flex-1 h-11 px-4 bg-transparent border border-border text-foreground rounded-lg font-medium hover:bg-muted/50 transition-colors",children:"Cancel"}),o.jsx("button",{type:"button",onClick:Se,disabled:!EA.trim()||zA,className:"flex-1 h-11 px-4 bg-foreground text-background rounded-lg font-medium hover:bg-foreground/90 transition-colors disabled:opacity-50 flex items-center justify-center gap-2",children:zA?o.jsx(Je,{className:"w-4 h-4 animate-spin"}):"Connect"})]})]}):o.jsxs("div",{className:"p-6",children:[o.jsxs("p",{className:"text-sm text-muted-foreground mb-6",children:["You'll be redirected to"," ",e.providers[tA.provider]?.label||tA.provider," ","to authorize access. After authorizing, copy the code and return here."]}),o.jsxs("div",{className:"flex gap-3",children:[o.jsx("button",{type:"button",onClick:Me,className:"flex-1 h-11 px-4 bg-transparent border border-border text-foreground rounded-lg font-medium hover:bg-muted/50 transition-colors",children:"Cancel"}),o.jsx("button",{type:"button",onClick:we,disabled:Ge,className:"flex-1 h-11 px-4 bg-foreground text-background rounded-lg font-medium hover:bg-foreground/90 transition-colors disabled:opacity-50 flex items-center justify-center gap-2",children:Ge?o.jsx(Je,{className:"w-4 h-4 animate-spin"}):o.jsxs(o.Fragment,{children:["Continue",o.jsx(Gt,{className:"w-4 h-4"})]})})]})]})]})}),oA&&o.jsx("div",{className:"fixed inset-0 z-[9999] flex items-center justify-center bg-black/60 backdrop-blur-sm",children:o.jsxs("div",{className:"bg-background border border-border rounded-xl w-full max-w-lg mx-6 shadow-2xl",children:[o.jsxs("div",{className:"flex items-center gap-3 p-6 border-b border-border",children:[o.jsx(eo,{provider:"copilot",size:24}),o.jsx("h3",{className:"text-lg font-semibold",children:"Connect GitHub Copilot"})]}),o.jsxs("div",{className:"p-6 space-y-4",children:[o.jsxs("div",{className:"flex items-center gap-2",children:[o.jsx("button",{type:"button",onClick:()=>be("oauth"),className:`px-3 py-1.5 rounded-lg text-sm font-medium transition-colors ${ve==="oauth"?"bg-foreground text-background":"bg-muted text-muted-foreground hover:text-foreground"}`,children:"OAuth"}),o.jsx("button",{type:"button",onClick:()=>be("token"),className:`px-3 py-1.5 rounded-lg text-sm font-medium transition-colors ${ve==="token"?"bg-foreground text-background":"bg-muted text-muted-foreground hover:text-foreground"}`,children:"Token"})]}),ve==="oauth"?o.jsxs(o.Fragment,{children:[o.jsx("p",{className:"text-sm text-muted-foreground",children:"Enter this code on GitHub to authorize:"}),o.jsx("div",{className:"flex items-center justify-center gap-3",children:yA?o.jsx("div",{className:"bg-muted px-6 py-3 rounded-lg animate-pulse",children:o.jsx("div",{className:"h-9 w-48 bg-muted-foreground/20 rounded"})}):xe?o.jsxs(o.Fragment,{children:[o.jsx("code",{className:"text-3xl font-mono font-bold tracking-widest text-foreground bg-muted px-6 py-3 rounded-lg select-all",children:xe.userCode}),o.jsx("button",{type:"button",onClick:ze,className:"p-2 text-muted-foreground hover:text-foreground transition-colors",children:V?o.jsx(Ht,{className:"w-5 h-5 text-green-500"}):o.jsx(fs,{className:"w-5 h-5"})})]}):null})]}):o.jsxs(o.Fragment,{children:[o.jsx("p",{className:"text-sm text-muted-foreground",children:"Paste a GitHub token with Copilot model access."}),o.jsx("input",{type:"password",value:Oe,onChange:lA=>Ze(lA.target.value),placeholder:"gho_...",className:"w-full h-11 px-4 bg-muted/50 border border-border rounded-lg text-foreground placeholder:text-muted-foreground outline-none focus:border-foreground/30 transition-colors"}),b?.ghImport.available&&o.jsx("button",{type:"button",onClick:lt,disabled:de,className:"w-full h-10 px-4 bg-muted text-foreground rounded-lg font-medium hover:bg-muted/80 transition-colors disabled:opacity-50 flex items-center justify-center gap-2",children:de?o.jsx(Je,{className:"w-4 h-4 animate-spin"}):"Import from GH CLI"}),b?.ghImport.available&&!b.ghImport.authenticated&&o.jsx("p",{className:"text-xs text-muted-foreground",children:b.ghImport.reason||"GitHub CLI is not authenticated"}),b&&!b.ghImport.available&&b.ghImport.reason&&o.jsx("p",{className:"text-xs text-muted-foreground",children:b.ghImport.reason})]}),z&&z.tokenSources.length>0&&o.jsx("div",{className:"text-xs text-muted-foreground space-y-1",children:z.tokenSources.map(lA=>o.jsxs("div",{children:[lA.source,":"," ",lA.configured?lA.error?lA.error:`${lA.modelCount??0} models visible`:"not configured",lA.restrictedByOrgPolicy&&lA.restrictedOrg?` (org restriction: ${lA.restrictedOrg})`:""]},lA.source))}),Ro&&o.jsx("p",{className:"text-sm text-red-500 text-center",children:Ro}),Le&&ve==="oauth"&&o.jsxs("div",{className:"flex items-center justify-center gap-2 text-sm text-muted-foreground",children:[o.jsx(Je,{className:"w-4 h-4 animate-spin"}),"Waiting for authorization..."]}),o.jsxs("div",{className:"flex gap-3",children:[o.jsx("button",{type:"button",onClick:tt,className:"flex-1 h-11 px-4 bg-transparent border border-border text-foreground rounded-lg font-medium hover:bg-muted/50 transition-colors",children:"Cancel"}),ve==="oauth"?o.jsx("button",{type:"button",onClick:he,disabled:Le||yA,className:"flex-1 h-11 px-4 bg-foreground text-background rounded-lg font-medium hover:bg-foreground/90 transition-colors disabled:opacity-50 flex items-center justify-center gap-2",children:Le||yA?o.jsx(Je,{className:"w-4 h-4 animate-spin"}):o.jsxs(o.Fragment,{children:["Open GitHub",o.jsx(Gt,{className:"w-4 h-4"})]})}):o.jsx("button",{type:"button",onClick:Ue,disabled:!Oe.trim()||$A,className:"flex-1 h-11 px-4 bg-foreground text-background rounded-lg font-medium hover:bg-foreground/90 transition-colors disabled:opacity-50 flex items-center justify-center gap-2",children:$A?o.jsx(Je,{className:"w-4 h-4 animate-spin"}):"Save token"})]})]})]})})]})}),FN=m.memo(function({authStatus:e,onComplete:t,onBack:s,hideHeader:n=!1}){const[r,i]=m.useState(null),[a,g]=m.useState(null),[l,B]=m.useState(!0),[u,E]=m.useState(!1),[c,d]=m.useState("ottorouter"),[f,p]=m.useState("kimi-k2.5"),[D,F]=m.useState(e.defaults.agent||"build"),[k,L]=m.useState(e.defaults.toolApproval||"dangerous"),[K,W]=m.useState(!1),$=m.useRef(!1),X=m.useId(),U=m.useId(),O=m.useId(),T=m.useId();m.useEffect(()=>{(async()=>{try{const[N,G]=await Promise.all([mA.getConfig(),mA.getAllModels()]);i(N),g(G);const J=N?.defaults?.provider||"ottorouter",q=N?.defaults?.model||"kimi-k2.5",j=G?.[J]?.models?.length>0,R=j?J:"ottorouter",C=j&&G[J].models.some(h=>h.id===q)?q:G?.[R]?.models?.[0]?.id||"kimi-k2.5";d(R),p(C),N?.defaults?.agent&&F(N.defaults.agent),N?.defaults?.toolApproval&&L(N.defaults.toolApproval),N?.defaults?.guidedMode&&W(N.defaults.guidedMode)}catch{}finally{B(!1)}})()},[]),m.useEffect(()=>{if(r?.agents?.length){const I=r.agents;(!D||!I.includes(D))&&F(I.includes("build")?"build":I[0])}},[r,D]),m.useEffect(()=>{if(a?.[c]&&$.current){const I=a[c];I.models.some(N=>N.id===f)||p(I.models[0]?.id||"")}},[c,a,f]);const H=async()=>{E(!0);try{await mA.updateDefaults({provider:c,model:f,agent:D,toolApproval:k,guidedMode:K,fullWidthContent:r?.defaults?.fullWidthContent??!0,scope:"global"}),await t()}catch{}finally{E(!1)}};if(l)return o.jsx("div",{className:"min-h-screen flex items-center justify-center",children:o.jsx(Je,{className:"w-8 h-8 animate-spin text-muted-foreground"})});const x=r?.providers.filter(I=>(e.providers[I]?.configured||I==="ottorouter")&&a?.[I]?.models?.length>0)||["ottorouter"],Q=a?.[c]?.models||[];return o.jsxs("div",{className:"min-h-screen flex flex-col",children:[!n&&o.jsxs("div",{className:"flex items-center justify-between px-6 py-4 border-b border-border",children:[o.jsxs("div",{className:"flex items-center gap-3",children:[o.jsx(eo,{provider:"ottorouter",size:24}),o.jsx("span",{className:"font-semibold text-foreground",children:"otto"})]}),o.jsxs("div",{className:"flex items-center gap-2 text-sm text-muted-foreground",children:[o.jsx("span",{className:"w-2 h-2 rounded-full bg-blue-500"}),"Step 2 of 2"]})]}),o.jsx("div",{className:`flex-1 px-4 sm:px-6 lg:px-12 pb-32 ${n?"pt-8 sm:pt-10 lg:pt-14":"pt-6 sm:pt-8 lg:pt-12"}`,children:o.jsxs("div",{className:"max-w-7xl mx-auto",children:[o.jsxs("div",{className:"mb-10",children:[o.jsx("h1",{className:"text-3xl lg:text-4xl font-semibold text-foreground mb-3",children:"Configure Defaults"}),o.jsx("p",{className:"text-lg text-muted-foreground",children:"Set your preferences. You can change these anytime in settings."})]}),o.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-6",children:[o.jsxs("div",{className:"md:col-span-2",children:[o.jsx("label",{htmlFor:X,className:"block text-sm font-medium text-muted-foreground mb-2",children:"Default Provider"}),o.jsxs("div",{className:"relative",children:[o.jsx("select",{id:X,value:c,onChange:I=>{$.current=!0,d(I.target.value)},className:"w-full px-4 py-3 bg-card border border-border rounded-xl text-foreground appearance-none cursor-pointer focus:outline-none focus:border-ring transition-colors",children:x.map(I=>o.jsx("option",{value:I,children:e.providers[I]?.label||I},I))}),o.jsx(qt,{className:"absolute right-4 top-1/2 -translate-y-1/2 w-5 h-5 text-muted-foreground pointer-events-none"})]})]}),o.jsxs("div",{className:"md:col-span-2",children:[o.jsx("label",{htmlFor:U,className:"block text-sm font-medium text-muted-foreground mb-2",children:"Default Model"}),o.jsxs("div",{className:"relative",children:[o.jsx("select",{id:U,value:f,onChange:I=>p(I.target.value),className:"w-full px-4 py-3 bg-card border border-border rounded-xl text-foreground appearance-none cursor-pointer focus:outline-none focus:border-ring transition-colors",children:Q.map(I=>o.jsx("option",{value:I.id,children:I.label||I.id},I.id))}),o.jsx(qt,{className:"absolute right-4 top-1/2 -translate-y-1/2 w-5 h-5 text-muted-foreground pointer-events-none"})]})]}),o.jsxs("div",{children:[o.jsx("label",{htmlFor:O,className:"block text-sm font-medium text-muted-foreground mb-2",children:"Default Agent"}),o.jsxs("div",{className:"relative",children:[o.jsx("select",{id:O,value:D,onChange:I=>F(I.target.value),className:"w-full px-4 py-3 bg-card border border-border rounded-xl text-foreground appearance-none cursor-pointer focus:outline-none focus:border-ring transition-colors",children:(r?.agents||["build"]).map(I=>o.jsx("option",{value:I,children:I},I))}),o.jsx(qt,{className:"absolute right-4 top-1/2 -translate-y-1/2 w-5 h-5 text-muted-foreground pointer-events-none"})]})]}),o.jsxs("div",{children:[o.jsx("label",{htmlFor:T,className:"block text-sm font-medium text-muted-foreground mb-2",children:"Tool Approval"}),o.jsxs("div",{className:"relative",children:[o.jsxs("select",{id:T,value:k,onChange:I=>L(I.target.value),className:"w-full px-4 py-3 bg-card border border-border rounded-xl text-foreground appearance-none cursor-pointer focus:outline-none focus:border-ring transition-colors",children:[o.jsx("option",{value:"auto",children:"Auto - run without asking"}),o.jsx("option",{value:"dangerous",children:"Dangerous - approve writes only"}),o.jsx("option",{value:"yolo",children:"YOLO - skip approvals except hard safety blocks"}),o.jsx("option",{value:"all",children:"All - approve every tool"})]}),o.jsx(qt,{className:"absolute right-4 top-1/2 -translate-y-1/2 w-5 h-5 text-muted-foreground pointer-events-none"})]}),o.jsx("p",{className:"mt-2 text-sm text-muted-foreground",children:"Controls when tool executions need approval. YOLO still blocks extreme destructive commands."})]}),o.jsx("div",{className:"md:col-span-2",children:o.jsxs("div",{className:"flex items-center justify-between px-4 py-3 bg-card border border-border rounded-xl",children:[o.jsxs("div",{children:[o.jsx("span",{className:"text-sm font-medium text-foreground",children:"Guided Mode"}),o.jsx("p",{className:"text-sm text-muted-foreground mt-0.5",children:"AI will run commands and manage services for you instead of giving instructions"})]}),o.jsx("button",{type:"button",role:"switch","aria-checked":K,onClick:()=>W(!K),className:`relative inline-flex h-6 w-11 items-center rounded-full transition-colors focus:outline-none focus:ring-2 focus:ring-primary focus:ring-offset-2 ${K?"bg-primary":"bg-muted"}`,children:o.jsx("span",{className:`inline-block h-4 w-4 transform rounded-full transition-transform ${K?"translate-x-6":"translate-x-1"} ${K?"bg-primary-foreground":"bg-foreground"}`})})]})})]})]})}),o.jsx("div",{className:"fixed bottom-0 left-0 right-0 px-4 sm:px-6 py-4 border-t border-border bg-background",children:o.jsxs("div",{className:"max-w-7xl mx-auto flex items-center justify-between",children:[o.jsxs("button",{type:"button",onClick:s,className:"flex items-center gap-2 px-4 py-3 text-muted-foreground hover:text-foreground transition-colors",children:[o.jsx(TC,{className:"w-4 h-4"}),"Back"]}),o.jsx("button",{type:"button",onClick:H,disabled:u,className:"flex items-center gap-2 px-6 py-3 bg-primary text-primary-foreground rounded-lg font-medium hover:bg-primary/90 transition-colors disabled:opacity-50",children:u?o.jsxs(o.Fragment,{children:[o.jsx(Je,{className:"w-4 h-4 animate-spin"}),"Setting up..."]}):o.jsxs(o.Fragment,{children:["Start Using otto",o.jsx(_t,{className:"w-4 h-4"})]})})]})})]})}),GN=m.memo(function({hideHeader:e=!1,style:t}){const s=Nt(O=>O.isOpen),n=Nt(O=>O.currentStep),r=Nt(O=>O.manageMode),i=Nt(O=>O.authStatus),a=Nt(O=>O.nextStep),g=Nt(O=>O.prevStep),l=Nt(O=>O.reset),B=Ne(O=>O.openTopupModal),{setupWallet:u,importWallet:E,addProvider:c,addCustomProvider:d,removeProvider:f,completeOnboarding:p,startOAuth:D,startOAuthManual:F,exchangeOAuthCode:k,startCopilotDeviceFlow:L,pollCopilotDeviceFlow:K,getCopilotAuthMethods:W,saveCopilotToken:$,importCopilotTokenFromGh:X,getCopilotDiagnostics:U}=Jg();return!s||!i?null:o.jsxs("div",{className:"fixed inset-0 z-[9999] bg-background text-foreground overflow-y-auto",style:t,children:[n==="wallet"&&o.jsx(bN,{authStatus:i,onSetupWallet:u,onImportWallet:E,onAddProvider:c,onAddCustomProvider:d,onRemoveProvider:f,onStartOAuth:D,onStartOAuthManual:F,onExchangeOAuthCode:k,onOpenTopup:B,onNext:a,manageMode:r,onClose:l,hideHeader:e,onStartCopilotDeviceFlow:L,onPollCopilotDeviceFlow:K,onGetCopilotAuthMethods:W,onSaveCopilotToken:$,onImportCopilotTokenFromGh:X,onGetCopilotDiagnostics:U}),n==="defaults"&&o.jsx(FN,{authStatus:i,onComplete:p,onBack:g,hideHeader:e})]})});function UQ(A){return A==="success"?"success":A==="error"?"error":"default"}function jg(A){return A.action?.href??(A.sessionId?`/sessions/${encodeURIComponent(A.sessionId)}`:void 0)}function Ra(A){const e=jg(A);if(!(!e||typeof window>"u")&&!(A.sessionId&&S0(A.sessionId))){if(e.startsWith("/")){window.location.href=e;return}Co(e)}}function vN(){return new Promise(A=>{let e=!1;const t=s=>{e||(e=!0,setTimeout(()=>A(s??Notification.permission),100))};try{const s=Notification.requestPermission(t);s&&typeof s.then=="function"&&s.then(t).catch(()=>t())}catch{t()}setTimeout(()=>t(),1500)})}function SN(A){const e=A.body?`${A.title}: ${A.body}`:A.title;if(jg(A)){const s=ae(e,UQ(A.level),6e3);no.getState().updateToast(s,{activateActionOnClick:!0,action:A.action?{...A.action,onClick:()=>Ra(A)}:{label:"Open session",onClick:()=>Ra(A)}});return}ae(e,UQ(A.level),5e3)}function UN(A){if(typeof window>"u")return!1;if(F0(A))return!0;if(window.parent&&window.parent!==window){const t={type:"otto-notification",notification:A};return window.parent.postMessage(t,"*"),!0}if(!("Notification"in window)||Notification.permission!=="granted")return!1;const e=new Notification(A.title,{body:A.body,tag:A.id,data:{href:jg(A)}});return e.onclick=()=>{window.focus(),Ra(A),e.close()},!0}function RN(A,e){A.setQueryData(Qo,t=>t&&{...t,pages:t.pages.map(s=>({...s,items:s.items.map(n=>n.id===e.sessionId?{...n,isRunning:e.status==="running"}:n)}))})}function KN(A){try{const{hostname:e}=new URL(A);return e==="localhost"||e==="127.0.0.1"||e.startsWith("192.168.")||e.startsWith("10.")||/^172\.(1[6-9]|2\d|3[01])\./.test(e)}catch{return!1}}async function LN(A){const e=await fetch(new URL("/openapi.json",A),{cache:"no-store",credentials:"include"});if(!e.ok)throw new Error(`Local API returned ${e.status}`)}function JN(A){const e=ke(),t=m.useRef(A);return m.useEffect(()=>{t.current=A},[A]),m.useEffect(()=>{if(typeof window>"u"||window.parent!==window||!("Notification"in window)||Notification.permission!=="default"||window.localStorage.getItem("otto-notification-permission-prompted"))return;window.localStorage.setItem("otto-notification-permission-prompted","1");const s=ae("Enable browser notifications for background session updates.","default",0);no.getState().updateToast(s,{action:{label:"Enable",onClick:async()=>{const n=await vN(),r=Notification.permission;n==="granted"||r==="granted"?ae.success("Browser notifications enabled."):ae.info("Browser notifications were not enabled.")}}})},[]),m.useEffect(()=>{const s=new AbortController;let n=!1;const r=fr();return Ph({baseUrl:r,onEvent:i=>{if(i.event==="heartbeat")return;let a;try{a=JSON.parse(i.data)}catch(g){console.error("[client-events] Failed to parse event:",g);return}if(i.event==="session.status"){const g=a;RN(e,g),g.status!=="running"&&e.invalidateQueries({queryKey:Qo});return}if(i.event==="notification"){const g=a,l=g.sessionId===t.current&&document.visibilityState==="visible",B=g.source==="session"||!!g.sessionId;let u=!1;l||(u=UN(g)),(!B||!u&&!l)&&SN(g)}},onError:i=>{if(!s.signal.aborted&&(console.error("[client-events] Stream error:",i),!n&&KN(r))){n=!0;const a=ae("Safari may need permission to access the local otto server.","default",0);no.getState().updateToast(a,{action:{label:"Allow access",onClick:async()=>{await LN(r),ae.success("Local otto server access confirmed.")}}})}}},s.signal),()=>s.abort()},[e]),MB({baseUrl:fr()})}const zE="otto-theme";function jN(){if(typeof window>"u")return"dark";const A=window.localStorage.getItem(zE);return A==="light"||A==="dark"?A:window.matchMedia?.("(prefers-color-scheme: light)").matches?"light":"dark"}function TN(){const[A,e]=m.useState(()=>jN());m.useEffect(()=>{if(typeof document>"u")return;const s=document.documentElement;A==="dark"?s.classList.add("dark"):s.classList.remove("dark");try{window.localStorage.setItem(zE,A)}catch(n){console.warn("Failed to persist theme preference",n)}window.parent&&window.parent!==window&&window.parent.postMessage({type:"otto-set-theme",theme:A},"*")},[A]),m.useEffect(()=>{if(typeof window>"u")return;const s=n=>{n.data?.type==="otto-set-theme"&&(n.data.theme==="light"||n.data.theme==="dark")&&e(n.data.theme)};return window.addEventListener("message",s),()=>window.removeEventListener("message",s)},[]);const t=m.useCallback(()=>{e(s=>s==="dark"?"light":"dark")},[]);return m.useMemo(()=>({theme:A,setTheme:e,toggleTheme:t}),[A,t])}function ON(){const[A,e]=m.useState(null);return m.useEffect(()=>{(async()=>{try{const s=await cd({baseURL:fr()});if(s.error)throw new Error(JSON.stringify(s.error));const n=s.data;console.log("[useWorkingDirectory] Success:",n),n.dirName&&(console.log("[useWorkingDirectory] Setting title to:",n.dirName),e(n.dirName),document.title=n.dirName)}catch(s){console.error("[useWorkingDirectory] Error:",s),document.title="otto"}})()},[]),A}const yr=dt()(JB(A=>({isCollapsed:!1,toggleCollapse:()=>A(e=>({isCollapsed:!e.isCollapsed})),setCollapsed:e=>A({isCollapsed:e})}),{name:"sidebar-storage"}));function qN({sessionIds:A,activeSessionId:e,gitFiles:t,onSelectSession:s,onNewSession:n,onStageFile:r,onUnstageFile:i,onRestoreFile:a,onDeleteFile:g,onStageAll:l,onUnstageAll:B,onOpenCommitModal:u,onViewDiff:E,onReturnToInput:c}){const{currentFocus:d,sessionIndex:f,gitFileIndex:p,setFocus:D,setSessionIndex:F,setGitFileIndex:k,resetGitFileIndex:L}=Lg(),{setCollapsed:K,toggleCollapse:W}=yr(),{isExpanded:$,toggleSidebar:X}=Te(),U=Te(x=>x.closeDiff),O=mt(x=>x.toggleSidebar),T=A.indexOf(e||""),H=m.useCallback(x=>{const Q=x.target,I=Q.tagName==="INPUT"||Q.tagName==="TEXTAREA"||Q.isContentEditable,N=!!Q.closest("[data-terminal-viewer]");if((x.ctrlKey||x.metaKey)&&x.key==="h"){x.preventDefault(),d==="sessions"?(document.activeElement?.blur(),D("input"),K(!0),setTimeout(()=>c?.(),50)):d==="git"?(document.activeElement?.blur(),D("input"),X(),U(),setTimeout(()=>c?.(),50)):(document.activeElement?.blur(),D("sessions"),K(!1),T>=0&&F(T));return}if((x.ctrlKey||x.metaKey)&&x.key==="l"){x.preventDefault(),d==="git"?(document.activeElement?.blur(),D("input"),X(),U(),setTimeout(()=>c?.(),50)):d==="sessions"?(document.activeElement?.blur(),D("input"),K(!0),setTimeout(()=>c?.(),50)):(document.activeElement?.blur(),$||X(),D("git"),L());return}if((x.ctrlKey||x.metaKey)&&x.key==="/"){x.preventDefault(),W();return}if((x.ctrlKey||x.metaKey)&&x.key==="\\"){x.preventDefault(),X();return}if((x.ctrlKey||x.metaKey)&&x.shiftKey&&x.key==="r"){x.preventDefault(),O();return}if((x.ctrlKey||x.metaKey)&&x.key==="n"){x.preventDefault(),n();return}if((x.ctrlKey||x.metaKey)&&x.key==="p"){x.preventDefault(),Ua.getState().toggle();return}if(x.key==="Escape"&&!N||x.key==="q"&&!I&&(d==="sessions"||d==="git")){x.preventDefault(),d==="sessions"?K(!0):d==="git"&&(X(),U()),D("input"),c?.();return}if(d==="sessions"&&!I){if(x.key==="j"&&A.length>0){x.preventDefault();const G=Math.min(f+1,A.length-1);F(G);return}if(x.key==="k"&&A.length>0){x.preventDefault();const G=Math.max(f-1,0);F(G);return}if(x.key==="Enter"&&A[f]){x.preventDefault(),s(A[f]),D("input");return}}if(d==="git"&&!I){if(x.key==="j"&&t.length>0){x.preventDefault();const G=Math.min(p+1,t.length-1);k(G);return}if(x.key==="k"&&t.length>0){x.preventDefault();const G=Math.max(p-1,0);k(G);return}if(x.key===" "&&t[p]){x.preventDefault();const G=t[p];G.staged?i?.(G.path):r?.(G.path);return}if(x.key==="a"){x.preventDefault(),l?.();return}if(x.key==="u"){x.preventDefault(),B?.();return}if(x.key==="R"&&t[p]){x.preventDefault();const G=t[p];!G.staged&&G.status!=="untracked"&&G.status!=="added"&&a?.(G.path);return}if(x.shiftKey&&x.key==="D"||x.key==="Backspace"){x.preventDefault();const G=t[p];G&&!G.staged&&G.status==="untracked"&&g?.(G.path);return}if(x.key==="c"){x.preventDefault(),u?.();return}if(x.key==="Enter"&&t[p]){x.preventDefault();const G=t[p];E?.(G.path,G.staged);return}}},[d,f,p,A,t,T,$,D,F,k,L,K,X,O,W,s,n,r,i,a,g,l,B,u,E,c,U]);return m.useEffect(()=>(window.addEventListener("keydown",H),()=>window.removeEventListener("keydown",H)),[H]),{currentFocus:d,sessionIndex:f,gitFileIndex:p}}function YN(A){const e=m.useRef(null),t=m.useRef(null),s=Ne(l=>l.setBalance),n=Ne(l=>l.setPaymentPending),r=no(l=>l.removeToast),i=no(l=>l.updateToast),a=vn(l=>l.setPendingTopup),g=vn(l=>l.clearPendingTopup);m.useEffect(()=>{if(!A)return;const l=new kE;e.current=l;const B=mA.getStreamUrl(A);l.connect(B);const u=l.on("*",E=>{const c=E.payload;switch(E.type){case"ottorouter.topup.required":{const d=typeof c?.amountUsd=="number"?c.amountUsd:0,f=typeof c?.currentBalance=="number"?c.currentBalance:0,p=typeof c?.minTopupUsd=="number"?c.minTopupUsd:5,D=typeof c?.suggestedTopupUsd=="number"?c.suggestedTopupUsd:10,F=typeof c?.messageId=="string"?c.messageId:"";a({sessionId:A,messageId:F,amountUsd:d,currentBalance:f,minTopupUsd:p,suggestedTopupUsd:D});break}case"ottorouter.topup.method_selected":{c?.method==="crypto"&&(n(!0),t.current=ae.loading("💳 Processing crypto payment..."));break}case"ottorouter.topup.cancelled":{g();const d=typeof c?.reason=="string"?c.reason:"Request cancelled";ae(`⚠️ ${d}`);break}case"ottorouter.payment.required":{const d=typeof c?.amountUsd=="number"?c.amountUsd:0;n(!0),t.current||(t.current=ae.loading(`💳 Payment required: $${d.toFixed(2)}`));break}case"ottorouter.payment.signing":{t.current?i(t.current,{message:"✍️ Signing transaction..."}):t.current=ae.loading("✍️ Signing transaction...");break}case"ottorouter.payment.complete":{g();const d=c?.amountUsd,f=c?.newBalance,p=typeof c?.transactionId=="string"?c.transactionId:void 0,D=typeof d=="number"?d:typeof d=="string"?parseFloat(d):0,F=typeof f=="number"?f:typeof f=="string"?parseFloat(f):0;s(F),n(!1),t.current&&(r(t.current),t.current=null);const k=`✅ Paid $${D.toFixed(2)}`;p?ae.successWithAction(k,{label:"View Tx",href:`https://orbmarkets.io/tx/${p}`}):ae.success(k);break}case"ottorouter.fiat.checkout_created":{g(),n(!1),t.current&&(r(t.current),t.current=null),ae.success("💳 Complete payment, then retry your message");break}case"ottorouter.balance.updated":{const d=c?.balanceRemaining,f=typeof d=="number"?d:typeof d=="string"?parseFloat(d):null;f!==null&&!Number.isNaN(f)&&s(f);break}case"ottorouter.payment.error":{g();const d=typeof c?.error=="string"?c.error:"Payment failed";n(!1),t.current&&(r(t.current),t.current=null),ae.error(`❌ ${d}`);break}}});return()=>{u(),l.disconnect()}},[A,s,n,r,i,a,g])}const gi=eC({component:HN});function HN(){const{checkOnboarding:A}=Jg();return m.useEffect(()=>{A()},[A]),o.jsxs(o.Fragment,{children:[o.jsx(tC,{}),o.jsx(GN,{}),o.jsx(Kg,{}),null]})}const PN=La("/")({beforeLoad:()=>{throw oC({to:"/sessions"})},component:()=>null});function RQ({height:A=16,className:e=""}){const t=Math.round(A*2.4686468646864688);return o.jsx("svg",{width:t,height:A,viewBox:"0 0 748 303",fill:"currentColor",className:e,"aria-label":"otto",role:"img",children:o.jsx("path",{d:"M192.877 257.682C192.877 263.287 191.783 268.551 189.596 273.473C187.545 278.395 184.674 282.701 180.982 286.393C177.428 289.947 173.189 292.818 168.268 295.006C163.482 297.057 158.287 298.082 152.682 298.082H44.1953C38.7266 298.082 33.5312 297.057 28.6094 295.006C23.6875 292.818 19.3809 289.947 15.6895 286.393C12.1348 282.701 9.26367 278.395 7.07617 273.473C5.02539 268.551 4 263.287 4 257.682V120.074C4 114.469 5.02539 109.205 7.07617 104.283C9.26367 99.3613 12.1348 95.123 15.6895 91.5684C19.3809 87.877 23.6875 85.0059 28.6094 82.9551C33.5312 80.7676 38.7266 79.6738 44.1953 79.6738H152.682C158.287 79.6738 163.482 80.7676 168.268 82.9551C173.189 85.0059 177.428 87.877 180.982 91.5684C184.674 95.123 187.545 99.3613 189.596 104.283C191.783 109.205 192.877 114.469 192.877 120.074V257.682ZM44.1953 120.074V257.682H152.682V120.074H44.1953ZM331.715 4V298.082H289.674V46.041H239.225V4H331.715ZM478.961 4V298.082H436.92V46.041H386.471V4H478.961ZM743.717 257.682C743.717 263.287 742.623 268.551 740.436 273.473C738.385 278.395 735.514 282.701 731.822 286.393C728.268 289.947 724.029 292.818 719.107 295.006C714.322 297.057 709.127 298.082 703.521 298.082H595.035C589.566 298.082 584.371 297.057 579.449 295.006C574.527 292.818 570.221 289.947 566.529 286.393C562.975 282.701 560.104 278.395 557.916 273.473C555.865 268.551 554.84 263.287 554.84 257.682V120.074C554.84 114.469 555.865 109.205 557.916 104.283C560.104 99.3613 562.975 95.123 566.529 91.5684C570.221 87.877 574.527 85.0059 579.449 82.9551C584.371 80.7676 589.566 79.6738 595.035 79.6738H703.521C709.127 79.6738 714.322 80.7676 719.107 82.9551C724.029 85.0059 728.268 87.877 731.822 91.5684C735.514 95.123 738.385 99.3613 740.436 104.283C742.623 109.205 743.717 114.469 743.717 120.074V257.682ZM595.035 120.074V257.682H703.521V120.074H595.035Z"})})}const KQ="left-sidebar",LQ=272,WN=256,zN=480,VN=m.memo(function({children:e,onNewSession:t}){const s=Te(a=>a.isDiffOpen),n=yr(a=>a.isCollapsed),r=yr(a=>a.toggleCollapse),i=rs(a=>a.widths[KQ]??LQ);return m.useEffect(()=>(n?document.body.style.overflow="":document.body.style.overflow="hidden",()=>{document.body.style.overflow=""}),[n]),n?o.jsxs("aside",{className:"w-12 md:w-12 border-r border-border bg-background flex flex-col transition-all duration-300 ease-in-out hidden md:flex",children:[o.jsx("div",{className:"h-12 border-b border-border flex items-center justify-center",children:o.jsx(ye,{variant:"ghost",size:"icon",onClick:t,title:"New session",className:"h-8 w-8 rounded-md touch-manipulation text-muted-foreground hover:bg-muted/50",children:o.jsx(lo,{className:"size-[18px]"})})}),o.jsx("button",{type:"button",className:"flex-1 cursor-pointer hover:bg-muted/50 transition-colors touch-manipulation",onClick:s?void 0:r,title:s?void 0:"Expand sidebar","aria-label":"Expand sidebar"}),o.jsx("div",{className:"h-12 border-t border-border flex items-center justify-center",children:o.jsx(ye,{variant:"ghost",size:"icon",onClick:r,title:"Expand sidebar",disabled:s,className:"h-8 w-8 transition-transform duration-200 hover:scale-110 touch-manipulation text-muted-foreground hover:bg-muted/50",children:o.jsx(St,{className:"size-[18px]"})})})]}):o.jsxs(o.Fragment,{children:[!n&&o.jsx("div",{className:"fixed inset-0 bg-black/50 z-40 md:hidden",onClick:r,"aria-hidden":"true"}),o.jsxs("aside",{className:"border-r border-sidebar-border sidebar-fade-in flex transition-all duration-300 ease-in-out fixed md:relative top-0 left-0 z-50 h-screen md:h-auto w-full md:w-auto",style:{maxWidth:"100%"},children:[o.jsxs("div",{className:"flex-1 flex flex-col min-w-0 relative",style:{width:i},children:[o.jsxs("div",{className:"h-14 border-b border-sidebar-border px-4 flex items-center gap-2 md:hidden bg-sidebar",children:[o.jsx(ye,{variant:"ghost",size:"icon",onClick:r,title:"Close menu",className:"touch-manipulation flex-shrink-0 text-sidebar-foreground hover:bg-sidebar-accent","aria-label":"Close menu",children:o.jsx(ot,{className:"w-5 h-5"})}),o.jsx("div",{className:"flex-1 flex items-center",children:o.jsx(RQ,{height:14,className:"text-sidebar-foreground"})})]}),o.jsxs("div",{className:"flex-1 relative overflow-hidden",children:[o.jsx("div",{className:"absolute top-0 left-0 right-0 z-10 pointer-events-none",children:o.jsxs("div",{className:"h-12 px-3 flex items-center justify-between border-b border-sidebar-border/40 bg-sidebar/40 backdrop-blur-xl supports-[backdrop-filter]:bg-sidebar/20",children:[o.jsx("div",{className:"flex items-center text-sidebar-foreground/90",children:o.jsx(RQ,{height:14,className:"select-none"})}),o.jsx("button",{type:"button",onClick:t,className:"w-8 h-8 rounded-full bg-sidebar-primary flex items-center justify-center hover:opacity-90 transition-opacity touch-manipulation pointer-events-auto",title:"New session",children:o.jsx(lo,{className:"w-4 h-4 text-sidebar-primary-foreground"})})]})}),o.jsx("div",{className:"absolute inset-0 overflow-hidden",children:e})]}),o.jsx("div",{className:"h-12 border-t border-sidebar-border px-2 flex items-center justify-end",children:o.jsx(ye,{variant:"ghost",size:"icon",onClick:r,title:"Collapse sidebar",disabled:s,className:"transition-transform duration-200 hover:scale-110 touch-manipulation text-sidebar-muted-foreground hover:bg-sidebar-accent w-8 h-8",children:o.jsxs("svg",{xmlns:"http://www.w3.org/2000/svg",width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",className:"transition-transform duration-300",role:"img","aria-label":"Collapse sidebar",children:[o.jsx("title",{children:"Collapse sidebar"}),o.jsx("path",{d:"M15 18l-6-6 6-6"})]})})})]}),o.jsx("div",{className:"hidden md:block",children:o.jsx(Zs,{panelKey:KQ,side:"left",minWidth:WN,maxWidth:zN,defaultWidth:LQ})})]})]})}),_N=m.memo(function({sidebar:e,children:t,onNewSession:s,theme:n,onToggleTheme:r,sessionId:i,onFixWithAI:a}){const g=Te(U=>U.isExpanded),l=Te(U=>U.isDiffOpen),B=et(U=>U.isExpanded),u=et(U=>U.isDiffOpen),E=kt(U=>U.isExpanded),c=je(U=>U.isExpanded),d=At(U=>U.isExpanded),f=At(U=>U.isViewerOpen),p=$e(U=>U.isExpanded),D=We(U=>U.isExpanded),F=We(U=>U.isViewerOpen),k=yr(U=>U.setCollapsed),L=g||B||E||c||d||p||D,K=l||u||f||F,W=L||K,$=m.useRef(!1),X=m.useRef(null);return m.useEffect(()=>{W&&!$.current?(X.current=yr.getState().isCollapsed,k(!0)):!W&&$.current&&X.current!==null&&(k(X.current),X.current=null),$.current=W},[W,k]),o.jsxs("div",{className:"h-screen flex bg-background touch-manipulation border-t border-border/50",children:[o.jsx(VN,{onNewSession:s,children:e}),o.jsxs("div",{className:"flex-1 flex flex-col overflow-hidden w-full md:w-auto",children:[o.jsxs("div",{className:"flex-1 flex overflow-hidden",children:[o.jsx("main",{className:K?"relative hidden md:flex shrink-0 basis-[clamp(360px,28vw,520px)] min-w-[320px] flex-col overflow-hidden":"relative flex-1 flex flex-col overflow-hidden min-w-0",children:t}),K&&o.jsxs("section",{className:"flex flex-1 min-w-0 md:border-l md:border-sidebar-border bg-sidebar",children:[o.jsx(q1,{mode:"pane"}),o.jsx(sy,{mode:"pane"}),o.jsx(DN,{mode:"pane"}),o.jsx(uN,{mode:"pane"})]}),o.jsxs("div",{className:"hidden md:flex",children:[o.jsx(J1,{onFixWithAI:a}),o.jsx(Z1,{sessionId:i}),o.jsx(My,{}),o.jsx(Ty,{}),o.jsx(pN,{}),o.jsx(sN,{}),o.jsx(BN,{}),o.jsxs("div",{className:`flex flex-col w-12 border-l ${L?"sidebar-fade-in border-sidebar-border":"bg-background border-border"}`,children:[o.jsx(j1,{}),o.jsx(X1,{sessionId:i}),o.jsx(fN,{}),o.jsx(Oy,{}),o.jsx(rN,{}),o.jsx(cN,{}),o.jsx(Gy,{}),o.jsx("div",{className:"flex-1"}),o.jsx(N0,{}),o.jsx("div",{className:"h-12 border-t border-border flex items-center justify-center",children:o.jsx(ye,{variant:"ghost",size:"icon",onClick:r,title:`Switch to ${n==="dark"?"light":"dark"} mode`,"aria-label":`Switch to ${n==="dark"?"light":"dark"} mode`,className:"touch-manipulation",children:n==="dark"?o.jsx(OC,{className:"w-4 h-4"}):o.jsx(qC,{className:"w-4 h-4"})})})]})]})]}),o.jsx(y0,{})]}),o.jsx(Y1,{}),o.jsx(M0,{}),o.jsx(NN,{})]})});function VE({sessionId:A}){const e=m.useRef(null),t=xf(),{data:s}=Vo(),{theme:n,toggleTheme:r}=TN(),{openCommitModal:i,openDiff:a}=Te(),g=sC(),{data:l=[]}=zn(),{data:B}=Vn(),u=_n(),E=cg(),c=Ac(),d=ec(),f=rg(U=>U.openConfirmation);ON(),JN(A),YN(A),ni(s?.defaults?.provider);const p=m.useCallback(()=>{setTimeout(()=>{e.current?.focus()},100)},[]),D=m.useCallback(()=>{g({to:"/sessions"})},[g]),F=m.useCallback(U=>{g({to:"/sessions/$sessionId",params:{sessionId:U},replace:!1}),p()},[g,p]),k=m.useCallback(()=>{g({to:"/sessions"})},[g]),L=m.useCallback(U=>{g({to:"/sessions/$sessionId",params:{sessionId:U}}),p()},[g,p]),K=m.useCallback(async U=>{try{const O=await t.mutateAsync({agent:s?.defaults.agent||"general",provider:s?.defaults.provider,model:s?.defaults.model,title:"Fix Git Error"});g({to:"/sessions/$sessionId",params:{sessionId:O.id},replace:!1}),await mA.sendMessage(O.id,{content:U})}catch(O){console.error("Failed to create fix session:",O)}},[t,s,g]),W=m.useMemo(()=>B?[...(B.conflicted??[]).map(U=>({path:U.path,staged:!1,status:U.status})),...B.staged.map(U=>({path:U.path,staged:!0,status:U.status})),...B.unstaged.map(U=>({path:U.path,staged:!1,status:U.status})),...B.untracked.map(U=>({path:U.path,staged:!1,status:U.status}))]:[],[B]),$=m.useMemo(()=>l.map(U=>U.id),[l]);qN({sessionIds:$,activeSessionId:A,gitFiles:W,onSelectSession:L,onNewSession:D,onStageFile:U=>u.mutate([U]),onUnstageFile:U=>E.mutate([U]),onRestoreFile:U=>c.mutate([U]),onDeleteFile:U=>{f({title:"Delete File",message:`Delete ${U}? This will permanently remove the untracked file.`,confirmLabel:"Delete",variant:"destructive",onConfirm:async()=>{await d.mutateAsync([U])}})},onStageAll:()=>{const U=W.filter(O=>!O.staged).map(O=>O.path);U.length>0&&u.mutate(U)},onUnstageAll:()=>{const U=W.filter(O=>O.staged).map(O=>O.path);U.length>0&&E.mutate(U)},onOpenCommitModal:i,onViewDiff:a,onReturnToInput:p}),m.useEffect(()=>{A&&p()},[A,p]),m.useEffect(()=>{const U=O=>{O.data?.type==="otto-navigate-session"&&typeof O.data.sessionId=="string"&&(window.parent?.postMessage({type:"otto-navigate-session-ack",sessionId:O.data.sessionId},"*"),g({to:"/sessions/$sessionId",params:{sessionId:O.data.sessionId}}),p())};return window.addEventListener("message",U),()=>window.removeEventListener("message",U)},[g,p]);const X=m.useMemo(()=>A?o.jsxs(o.Fragment,{children:[o.jsx(x1,{sessionId:A,onSelectSession:L}),o.jsx(Wf,{ref:e,sessionId:A,onNewSession:D,onDeleteSession:k})]}):o.jsx(Vf,{onSessionCreated:F}),[A,D,L,k,F]);return o.jsxs(o.Fragment,{children:[o.jsx(_N,{onNewSession:D,theme:n,onToggleTheme:r,sessionId:A,onNavigateToSession:L,onFixWithAI:K,sidebar:o.jsx(k1,{activeSessionId:A,onSelectSession:L}),children:X}),o.jsx(L0,{})]})}const ZN=La("/sessions/")({component:XN});function XN(){return o.jsx(VE,{})}const _E=La("/sessions/$sessionId")({component:$N});function $N(){const{sessionId:A}=_E.useParams();return o.jsx(VE,{sessionId:A})}const Ak=PN.update({id:"/",path:"/",getParentRoute:()=>gi}),ek=ZN.update({id:"/sessions/",path:"/sessions/",getParentRoute:()=>gi}),tk=_E.update({id:"/sessions/$sessionId",path:"/sessions/$sessionId",getParentRoute:()=>gi}),ok={IndexRoute:Ak,SessionsSessionIdRoute:tk,SessionsIndexRoute:ek},sk=gi._addFileChildren(ok)._addFileTypes(),rk=()=>{const t=(typeof globalThis<"u"?globalThis.OTTO_ROUTER_BASEPATH:void 0)??"/"??"/";if(!t||t==="/")return"/";const s=t.replace(/\/+$/,"")||"/";return s.startsWith("/")?s:`/${s}`},nk=rC({routeTree:sk,basepath:rk()}),Tg=new nC({defaultOptions:{queries:{refetchOnWindowFocus:!1,retry:1,structuralSharing:!0}}});Tg.prefetchQuery({queryKey:["sessions"],queryFn:()=>mA.getSessions()});Tg.prefetchQuery({queryKey:["config"],queryFn:()=>mA.getConfig()});function ik(){return o.jsx(iC,{client:Tg,children:o.jsx(aC,{router:nk})})}const ZE=document.getElementById("root");if(!ZE)throw new Error("Root element not found");gC.createRoot(ZE).render(o.jsx(m.StrictMode,{children:o.jsx(ik,{})}));
|