@tokmizer/plugin 0.9.60 → 0.9.61
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/.claude-plugin/plugin.json +1 -1
- package/.codex-plugin/plugin.json +1 -1
- package/README.md +45 -14
- package/command-templates/tkr-status.md +1 -1
- package/dist/bin/tkr-codex-hook.js +4 -4
- package/dist/bin/tkr-daemon.js +58 -58
- package/dist/bin/tkr-exec +35 -35
- package/dist/bin/tkr-exec.js +35 -35
- package/dist/bin/tkr-processor.js +4 -4
- package/dist/bin/tkr-shim.js +4 -4
- package/dist/bin/tkr.js +85 -85
- package/dist/hooks-host/command-expansion.js +3 -0
- package/dist/hooks-host/post-tool-use.js +4 -4
- package/dist/hooks-host/pre-tool-use.js +5 -5
- package/dist/hooks-host/reducer-stop.js +13 -13
- package/dist/hooks-host/session-recap.js +1 -1
- package/dist/index.js +4 -4
- package/dist/native/manifest.json +12 -12
- package/dist/native/single.json +12 -12
- package/dist/native/tkr-exec-darwin-arm64 +0 -0
- package/dist/native/tkr-exec-darwin-x64 +0 -0
- package/dist/native/tkr-exec-linux-arm64 +0 -0
- package/dist/native/tkr-exec-linux-x64 +0 -0
- package/dist/native/tkr-exec-win32-arm64.exe +0 -0
- package/dist/native/tkr-exec-win32-x64.exe +0 -0
- package/hooks/hooks.json +12 -0
- package/package.json +7 -7
package/dist/bin/tkr-daemon.js
CHANGED
|
@@ -1,33 +1,33 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import { createRequire as __tkrCreateRequire } from "node:module"; const require = __tkrCreateRequire(import.meta.url);
|
|
3
|
-
var ik=Object.create;var Ci=Object.defineProperty;var ak=Object.getOwnPropertyDescriptor;var lk=Object.getOwnPropertyNames;var ck=Object.getPrototypeOf,uk=Object.prototype.hasOwnProperty;var ht=(e=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(e,{get:(t,n)=>(typeof require<"u"?require:t)[n]}):e)(function(e){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+e+'" is not supported')});var k=(e,t,n)=>()=>{if(n)throw n[0];try{return e&&(t=e(e=0)),t}catch(r){throw n=[r],r}};var _e=(e,t)=>()=>{try{return t||e((t={exports:{}}).exports,t),t.exports}catch(n){throw t=0,n}},ce=(e,t)=>{for(var n in t)Ci(e,n,{get:t[n],enumerable:!0})},fk=(e,t,n,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of lk(t))!uk.call(e,o)&&o!==n&&Ci(e,o,{get:()=>t[o],enumerable:!(r=ak(t,o))||r.enumerable});return e};var dk=(e,t,n)=>(n=e!=null?ik(ck(e)):{},fk(t||!e||!e.__esModule?Ci(n,"default",{value:e,enumerable:!0}):n,e));var D,Oi,S,Ke,gr=k(()=>{(function(e){e.assertEqual=o=>{};function t(o){}e.assertIs=t;function n(o){throw new Error}e.assertNever=n,e.arrayToEnum=o=>{let s={};for(let i of o)s[i]=i;return s},e.getValidEnumValues=o=>{let s=e.objectKeys(o).filter(a=>typeof o[o[a]]!="number"),i={};for(let a of s)i[a]=o[a];return e.objectValues(i)},e.objectValues=o=>e.objectKeys(o).map(function(s){return o[s]}),e.objectKeys=typeof Object.keys=="function"?o=>Object.keys(o):o=>{let s=[];for(let i in o)Object.prototype.hasOwnProperty.call(o,i)&&s.push(i);return s},e.find=(o,s)=>{for(let i of o)if(s(i))return i},e.isInteger=typeof Number.isInteger=="function"?o=>Number.isInteger(o):o=>typeof o=="number"&&Number.isFinite(o)&&Math.floor(o)===o;function r(o,s=" | "){return o.map(i=>typeof i=="string"?`'${i}'`:i).join(s)}e.joinValues=r,e.jsonStringifyReplacer=(o,s)=>typeof s=="bigint"?s.toString():s})(D||(D={}));(function(e){e.mergeShapes=(t,n)=>({...t,...n})})(Oi||(Oi={}));S=D.arrayToEnum(["string","nan","number","integer","float","boolean","date","bigint","symbol","function","undefined","null","array","object","unknown","promise","void","never","map","set"]),Ke=e=>{switch(typeof e){case"undefined":return S.undefined;case"string":return S.string;case"number":return Number.isNaN(e)?S.nan:S.number;case"boolean":return S.boolean;case"function":return S.function;case"bigint":return S.bigint;case"symbol":return S.symbol;case"object":return Array.isArray(e)?S.array:e===null?S.null:e.then&&typeof e.then=="function"&&e.catch&&typeof e.catch=="function"?S.promise:typeof Map<"u"&&e instanceof Map?S.map:typeof Set<"u"&&e instanceof Set?S.set:typeof Date<"u"&&e instanceof Date?S.date:S.object;default:return S.unknown}}});var b,mk,pe,Ro=k(()=>{gr();b=D.arrayToEnum(["invalid_type","invalid_literal","custom","invalid_union","invalid_union_discriminator","invalid_enum_value","unrecognized_keys","invalid_arguments","invalid_return_type","invalid_date","invalid_string","too_small","too_big","invalid_intersection_types","not_multiple_of","not_finite"]),mk=e=>JSON.stringify(e,null,2).replace(/"([^"]+)":/g,"$1:"),pe=class e extends Error{get errors(){return this.issues}constructor(t){super(),this.issues=[],this.addIssue=r=>{this.issues=[...this.issues,r]},this.addIssues=(r=[])=>{this.issues=[...this.issues,...r]};let n=new.target.prototype;Object.setPrototypeOf?Object.setPrototypeOf(this,n):this.__proto__=n,this.name="ZodError",this.issues=t}format(t){let n=t||function(s){return s.message},r={_errors:[]},o=s=>{for(let i of s.issues)if(i.code==="invalid_union")i.unionErrors.map(o);else if(i.code==="invalid_return_type")o(i.returnTypeError);else if(i.code==="invalid_arguments")o(i.argumentsError);else if(i.path.length===0)r._errors.push(n(i));else{let a=r,l=0;for(;l<i.path.length;){let c=i.path[l];l===i.path.length-1?(a[c]=a[c]||{_errors:[]},a[c]._errors.push(n(i))):a[c]=a[c]||{_errors:[]},a=a[c],l++}}};return o(this),r}static assert(t){if(!(t instanceof e))throw new Error(`Not a ZodError: ${t}`)}toString(){return this.message}get message(){return JSON.stringify(this.issues,D.jsonStringifyReplacer,2)}get isEmpty(){return this.issues.length===0}flatten(t=n=>n.message){let n={},r=[];for(let o of this.issues)if(o.path.length>0){let s=o.path[0];n[s]=n[s]||[],n[s].push(t(o))}else r.push(t(o));return{formErrors:r,fieldErrors:n}}get formErrors(){return this.flatten()}};pe.create=e=>new pe(e)});var pk,et,Pi=k(()=>{Ro();gr();pk=(e,t)=>{let n;switch(e.code){case b.invalid_type:e.received===S.undefined?n="Required":n=`Expected ${e.expected}, received ${e.received}`;break;case b.invalid_literal:n=`Invalid literal value, expected ${JSON.stringify(e.expected,D.jsonStringifyReplacer)}`;break;case b.unrecognized_keys:n=`Unrecognized key(s) in object: ${D.joinValues(e.keys,", ")}`;break;case b.invalid_union:n="Invalid input";break;case b.invalid_union_discriminator:n=`Invalid discriminator value. Expected ${D.joinValues(e.options)}`;break;case b.invalid_enum_value:n=`Invalid enum value. Expected ${D.joinValues(e.options)}, received '${e.received}'`;break;case b.invalid_arguments:n="Invalid function arguments";break;case b.invalid_return_type:n="Invalid function return type";break;case b.invalid_date:n="Invalid date";break;case b.invalid_string:typeof e.validation=="object"?"includes"in e.validation?(n=`Invalid input: must include "${e.validation.includes}"`,typeof e.validation.position=="number"&&(n=`${n} at one or more positions greater than or equal to ${e.validation.position}`)):"startsWith"in e.validation?n=`Invalid input: must start with "${e.validation.startsWith}"`:"endsWith"in e.validation?n=`Invalid input: must end with "${e.validation.endsWith}"`:D.assertNever(e.validation):e.validation!=="regex"?n=`Invalid ${e.validation}`:n="Invalid";break;case b.too_small:e.type==="array"?n=`Array must contain ${e.exact?"exactly":e.inclusive?"at least":"more than"} ${e.minimum} element(s)`:e.type==="string"?n=`String must contain ${e.exact?"exactly":e.inclusive?"at least":"over"} ${e.minimum} character(s)`:e.type==="number"?n=`Number must be ${e.exact?"exactly equal to ":e.inclusive?"greater than or equal to ":"greater than "}${e.minimum}`:e.type==="bigint"?n=`Number must be ${e.exact?"exactly equal to ":e.inclusive?"greater than or equal to ":"greater than "}${e.minimum}`:e.type==="date"?n=`Date must be ${e.exact?"exactly equal to ":e.inclusive?"greater than or equal to ":"greater than "}${new Date(Number(e.minimum))}`:n="Invalid input";break;case b.too_big:e.type==="array"?n=`Array must contain ${e.exact?"exactly":e.inclusive?"at most":"less than"} ${e.maximum} element(s)`:e.type==="string"?n=`String must contain ${e.exact?"exactly":e.inclusive?"at most":"under"} ${e.maximum} character(s)`:e.type==="number"?n=`Number must be ${e.exact?"exactly":e.inclusive?"less than or equal to":"less than"} ${e.maximum}`:e.type==="bigint"?n=`BigInt must be ${e.exact?"exactly":e.inclusive?"less than or equal to":"less than"} ${e.maximum}`:e.type==="date"?n=`Date must be ${e.exact?"exactly":e.inclusive?"smaller than or equal to":"smaller than"} ${new Date(Number(e.maximum))}`:n="Invalid input";break;case b.custom:n="Invalid input";break;case b.invalid_intersection_types:n="Intersection results could not be merged";break;case b.not_multiple_of:n=`Number must be a multiple of ${e.multipleOf}`;break;case b.not_finite:n="Number must be finite";break;default:n=t.defaultError,D.assertNever(e)}return{message:n}},et=pk});function gk(e){Xc=e}function un(){return Xc}var Xc,Ao=k(()=>{Pi();Xc=et});function _(e,t){let n=un(),r=hr({issueData:t,data:e.data,path:e.path,errorMaps:[e.common.contextualErrorMap,e.schemaErrorMap,n,n===et?void 0:et].filter(o=>!!o)});e.common.issues.push(r)}var hr,hk,Q,A,Pt,oe,$o,Co,yt,fn,Ii=k(()=>{Ao();Pi();hr=e=>{let{data:t,path:n,errorMaps:r,issueData:o}=e,s=[...n,...o.path||[]],i={...o,path:s};if(o.message!==void 0)return{...o,path:s,message:o.message};let a="",l=r.filter(c=>!!c).slice().reverse();for(let c of l)a=c(i,{data:t,defaultError:a}).message;return{...o,path:s,message:a}},hk=[];Q=class e{constructor(){this.value="valid"}dirty(){this.value==="valid"&&(this.value="dirty")}abort(){this.value!=="aborted"&&(this.value="aborted")}static mergeArray(t,n){let r=[];for(let o of n){if(o.status==="aborted")return A;o.status==="dirty"&&t.dirty(),r.push(o.value)}return{status:t.value,value:r}}static async mergeObjectAsync(t,n){let r=[];for(let o of n){let s=await o.key,i=await o.value;r.push({key:s,value:i})}return e.mergeObjectSync(t,r)}static mergeObjectSync(t,n){let r={};for(let o of n){let{key:s,value:i}=o;if(s.status==="aborted"||i.status==="aborted")return A;s.status==="dirty"&&t.dirty(),i.status==="dirty"&&t.dirty(),s.value!=="__proto__"&&(typeof i.value<"u"||o.alwaysSet)&&(r[s.value]=i.value)}return{status:t.value,value:r}}},A=Object.freeze({status:"aborted"}),Pt=e=>({status:"dirty",value:e}),oe=e=>({status:"valid",value:e}),$o=e=>e.status==="aborted",Co=e=>e.status==="dirty",yt=e=>e.status==="valid",fn=e=>typeof Promise<"u"&&e instanceof Promise});var Qc=k(()=>{});var v,eu=k(()=>{(function(e){e.errToObj=t=>typeof t=="string"?{message:t}:t||{},e.toString=t=>typeof t=="string"?t:t?.message})(v||(v={}))});function P(e){if(!e)return{};let{errorMap:t,invalid_type_error:n,required_error:r,description:o}=e;if(t&&(n||r))throw new Error(`Can't use "invalid_type_error" or "required_error" in conjunction with custom error map.`);return t?{errorMap:t,description:o}:{errorMap:(i,a)=>{let{message:l}=e;return i.code==="invalid_enum_value"?{message:l??a.defaultError}:typeof a.data>"u"?{message:l??r??a.defaultError}:i.code!=="invalid_type"?{message:a.defaultError}:{message:l??n??a.defaultError}},description:o}}function ou(e){let t="[0-5]\\d";e.precision?t=`${t}\\.\\d{${e.precision}}`:e.precision==null&&(t=`${t}(\\.\\d+)?`);let n=e.precision?"+":"?";return`([01]\\d|2[0-3]):[0-5]\\d(:${t})${n}`}function Ik(e){return new RegExp(`^${ou(e)}$`)}function su(e){let t=`${ru}T${ou(e)}`,n=[];return n.push(e.local?"Z?":"Z"),e.offset&&n.push("([+-]\\d{2}:?\\d{2})"),t=`${t}(${n.join("|")})`,new RegExp(`^${t}$`)}function Nk(e,t){return!!((t==="v4"||!t)&&Tk.test(e)||(t==="v6"||!t)&&Ak.test(e))}function Dk(e,t){if(!Sk.test(e))return!1;try{let[n]=e.split(".");if(!n)return!1;let r=n.replace(/-/g,"+").replace(/_/g,"/").padEnd(n.length+(4-n.length%4)%4,"="),o=JSON.parse(atob(r));return!(typeof o!="object"||o===null||"typ"in o&&o?.typ!=="JWT"||!o.alg||t&&o.alg!==t)}catch{return!1}}function Mk(e,t){return!!((t==="v4"||!t)&&Rk.test(e)||(t==="v6"||!t)&&$k.test(e))}function Fk(e,t){let n=(e.toString().split(".")[1]||"").length,r=(t.toString().split(".")[1]||"").length,o=n>r?n:r,s=Number.parseInt(e.toFixed(o).replace(".","")),i=Number.parseInt(t.toFixed(o).replace(".",""));return s%i/10**o}function dn(e){if(e instanceof ge){let t={};for(let n in e.shape){let r=e.shape[n];t[n]=Ae.create(dn(r))}return new ge({...e._def,shape:()=>t})}else return e instanceof rt?new rt({...e._def,type:dn(e.element)}):e instanceof Ae?Ae.create(dn(e.unwrap())):e instanceof We?We.create(dn(e.unwrap())):e instanceof Ze?Ze.create(e.items.map(t=>dn(t))):e}function Di(e,t){let n=Ke(e),r=Ke(t);if(e===t)return{valid:!0,data:e};if(n===S.object&&r===S.object){let o=D.objectKeys(t),s=D.objectKeys(e).filter(a=>o.indexOf(a)!==-1),i={...e,...t};for(let a of s){let l=Di(e[a],t[a]);if(!l.valid)return{valid:!1};i[a]=l.data}return{valid:!0,data:i}}else if(n===S.array&&r===S.array){if(e.length!==t.length)return{valid:!1};let o=[];for(let s=0;s<e.length;s++){let i=e[s],a=t[s],l=Di(i,a);if(!l.valid)return{valid:!1};o.push(l.data)}return{valid:!0,data:o}}else return n===S.date&&r===S.date&&+e==+t?{valid:!0,data:e}:{valid:!1}}function iu(e,t){return new zt({values:e,typeName:C.ZodEnum,...P(t)})}function nu(e,t){let n=typeof e=="function"?e(t):typeof e=="string"?{message:e}:e;return typeof n=="string"?{message:n}:n}function au(e,t={},n){return e?bt.create().superRefine((r,o)=>{let s=e(r);if(s instanceof Promise)return s.then(i=>{if(!i){let a=nu(t,r),l=a.fatal??n??!0;o.addIssue({code:"custom",...a,fatal:l})}});if(!s){let i=nu(t,r),a=i.fatal??n??!0;o.addIssue({code:"custom",...i,fatal:a})}}):bt.create()}var $e,tu,N,yk,kk,bk,wk,_k,Sk,xk,vk,Ek,Ni,Tk,Rk,Ak,$k,Ck,Ok,ru,Pk,kt,It,Nt,Dt,Mt,mn,Ft,Ht,bt,nt,Me,pn,rt,ge,Lt,tt,Oo,jt,Ze,Po,gn,hn,Io,Bt,Ut,zt,Jt,wt,Ce,Ae,We,Gt,Kt,yn,Hk,yr,kr,Zt,Lk,C,jk,lu,cu,Bk,Uk,uu,zk,Jk,Gk,Kk,Zk,Wk,Vk,qk,Yk,Xk,Qk,eb,tb,nb,rb,ob,sb,ib,ab,lb,cb,ub,fb,db,mb,pb,gb,hb,yb,kb,bb,wb,_b,Sb,fu=k(()=>{Ro();Ao();eu();Ii();gr();$e=class{constructor(t,n,r,o){this._cachedPath=[],this.parent=t,this.data=n,this._path=r,this._key=o}get path(){return this._cachedPath.length||(Array.isArray(this._key)?this._cachedPath.push(...this._path,...this._key):this._cachedPath.push(...this._path,this._key)),this._cachedPath}},tu=(e,t)=>{if(yt(t))return{success:!0,data:t.value};if(!e.common.issues.length)throw new Error("Validation failed but no issues detected.");return{success:!1,get error(){if(this._error)return this._error;let n=new pe(e.common.issues);return this._error=n,this._error}}};N=class{get description(){return this._def.description}_getType(t){return Ke(t.data)}_getOrReturnCtx(t,n){return n||{common:t.parent.common,data:t.data,parsedType:Ke(t.data),schemaErrorMap:this._def.errorMap,path:t.path,parent:t.parent}}_processInputParams(t){return{status:new Q,ctx:{common:t.parent.common,data:t.data,parsedType:Ke(t.data),schemaErrorMap:this._def.errorMap,path:t.path,parent:t.parent}}}_parseSync(t){let n=this._parse(t);if(fn(n))throw new Error("Synchronous parse encountered promise.");return n}_parseAsync(t){let n=this._parse(t);return Promise.resolve(n)}parse(t,n){let r=this.safeParse(t,n);if(r.success)return r.data;throw r.error}safeParse(t,n){let r={common:{issues:[],async:n?.async??!1,contextualErrorMap:n?.errorMap},path:n?.path||[],schemaErrorMap:this._def.errorMap,parent:null,data:t,parsedType:Ke(t)},o=this._parseSync({data:t,path:r.path,parent:r});return tu(r,o)}"~validate"(t){let n={common:{issues:[],async:!!this["~standard"].async},path:[],schemaErrorMap:this._def.errorMap,parent:null,data:t,parsedType:Ke(t)};if(!this["~standard"].async)try{let r=this._parseSync({data:t,path:[],parent:n});return yt(r)?{value:r.value}:{issues:n.common.issues}}catch(r){r?.message?.toLowerCase()?.includes("encountered")&&(this["~standard"].async=!0),n.common={issues:[],async:!0}}return this._parseAsync({data:t,path:[],parent:n}).then(r=>yt(r)?{value:r.value}:{issues:n.common.issues})}async parseAsync(t,n){let r=await this.safeParseAsync(t,n);if(r.success)return r.data;throw r.error}async safeParseAsync(t,n){let r={common:{issues:[],contextualErrorMap:n?.errorMap,async:!0},path:n?.path||[],schemaErrorMap:this._def.errorMap,parent:null,data:t,parsedType:Ke(t)},o=this._parse({data:t,path:r.path,parent:r}),s=await(fn(o)?o:Promise.resolve(o));return tu(r,s)}refine(t,n){let r=o=>typeof n=="string"||typeof n>"u"?{message:n}:typeof n=="function"?n(o):n;return this._refinement((o,s)=>{let i=t(o),a=()=>s.addIssue({code:b.custom,...r(o)});return typeof Promise<"u"&&i instanceof Promise?i.then(l=>l?!0:(a(),!1)):i?!0:(a(),!1)})}refinement(t,n){return this._refinement((r,o)=>t(r)?!0:(o.addIssue(typeof n=="function"?n(r,o):n),!1))}_refinement(t){return new Ce({schema:this,typeName:C.ZodEffects,effect:{type:"refinement",refinement:t}})}superRefine(t){return this._refinement(t)}constructor(t){this.spa=this.safeParseAsync,this._def=t,this.parse=this.parse.bind(this),this.safeParse=this.safeParse.bind(this),this.parseAsync=this.parseAsync.bind(this),this.safeParseAsync=this.safeParseAsync.bind(this),this.spa=this.spa.bind(this),this.refine=this.refine.bind(this),this.refinement=this.refinement.bind(this),this.superRefine=this.superRefine.bind(this),this.optional=this.optional.bind(this),this.nullable=this.nullable.bind(this),this.nullish=this.nullish.bind(this),this.array=this.array.bind(this),this.promise=this.promise.bind(this),this.or=this.or.bind(this),this.and=this.and.bind(this),this.transform=this.transform.bind(this),this.brand=this.brand.bind(this),this.default=this.default.bind(this),this.catch=this.catch.bind(this),this.describe=this.describe.bind(this),this.pipe=this.pipe.bind(this),this.readonly=this.readonly.bind(this),this.isNullable=this.isNullable.bind(this),this.isOptional=this.isOptional.bind(this),this["~standard"]={version:1,vendor:"zod",validate:n=>this["~validate"](n)}}optional(){return Ae.create(this,this._def)}nullable(){return We.create(this,this._def)}nullish(){return this.nullable().optional()}array(){return rt.create(this)}promise(){return wt.create(this,this._def)}or(t){return Lt.create([this,t],this._def)}and(t){return jt.create(this,t,this._def)}transform(t){return new Ce({...P(this._def),schema:this,typeName:C.ZodEffects,effect:{type:"transform",transform:t}})}default(t){let n=typeof t=="function"?t:()=>t;return new Gt({...P(this._def),innerType:this,defaultValue:n,typeName:C.ZodDefault})}brand(){return new yr({typeName:C.ZodBranded,type:this,...P(this._def)})}catch(t){let n=typeof t=="function"?t:()=>t;return new Kt({...P(this._def),innerType:this,catchValue:n,typeName:C.ZodCatch})}describe(t){let n=this.constructor;return new n({...this._def,description:t})}pipe(t){return kr.create(this,t)}readonly(){return Zt.create(this)}isOptional(){return this.safeParse(void 0).success}isNullable(){return this.safeParse(null).success}},yk=/^c[^\s-]{8,}$/i,kk=/^[0-9a-z]+$/,bk=/^[0-9A-HJKMNP-TV-Z]{26}$/i,wk=/^[0-9a-fA-F]{8}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{12}$/i,_k=/^[a-z0-9_-]{21}$/i,Sk=/^[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]*$/,xk=/^[-+]?P(?!$)(?:(?:[-+]?\d+Y)|(?:[-+]?\d+[.,]\d+Y$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:(?:[-+]?\d+W)|(?:[-+]?\d+[.,]\d+W$))?(?:(?:[-+]?\d+D)|(?:[-+]?\d+[.,]\d+D$))?(?:T(?=[\d+-])(?:(?:[-+]?\d+H)|(?:[-+]?\d+[.,]\d+H$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:[-+]?\d+(?:[.,]\d+)?S)?)??$/,vk=/^(?!\.)(?!.*\.\.)([A-Z0-9_'+\-\.]*)[A-Z0-9_+-]@([A-Z0-9][A-Z0-9\-]*\.)+[A-Z]{2,}$/i,Ek="^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$",Tk=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/,Rk=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\/(3[0-2]|[12]?[0-9])$/,Ak=/^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))$/,$k=/^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/,Ck=/^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/,Ok=/^([0-9a-zA-Z-_]{4})*(([0-9a-zA-Z-_]{2}(==)?)|([0-9a-zA-Z-_]{3}(=)?))?$/,ru="((\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-((0[13578]|1[02])-(0[1-9]|[12]\\d|3[01])|(0[469]|11)-(0[1-9]|[12]\\d|30)|(02)-(0[1-9]|1\\d|2[0-8])))",Pk=new RegExp(`^${ru}$`);kt=class e extends N{_parse(t){if(this._def.coerce&&(t.data=String(t.data)),this._getType(t)!==S.string){let s=this._getOrReturnCtx(t);return _(s,{code:b.invalid_type,expected:S.string,received:s.parsedType}),A}let r=new Q,o;for(let s of this._def.checks)if(s.kind==="min")t.data.length<s.value&&(o=this._getOrReturnCtx(t,o),_(o,{code:b.too_small,minimum:s.value,type:"string",inclusive:!0,exact:!1,message:s.message}),r.dirty());else if(s.kind==="max")t.data.length>s.value&&(o=this._getOrReturnCtx(t,o),_(o,{code:b.too_big,maximum:s.value,type:"string",inclusive:!0,exact:!1,message:s.message}),r.dirty());else if(s.kind==="length"){let i=t.data.length>s.value,a=t.data.length<s.value;(i||a)&&(o=this._getOrReturnCtx(t,o),i?_(o,{code:b.too_big,maximum:s.value,type:"string",inclusive:!0,exact:!0,message:s.message}):a&&_(o,{code:b.too_small,minimum:s.value,type:"string",inclusive:!0,exact:!0,message:s.message}),r.dirty())}else if(s.kind==="email")vk.test(t.data)||(o=this._getOrReturnCtx(t,o),_(o,{validation:"email",code:b.invalid_string,message:s.message}),r.dirty());else if(s.kind==="emoji")Ni||(Ni=new RegExp(Ek,"u")),Ni.test(t.data)||(o=this._getOrReturnCtx(t,o),_(o,{validation:"emoji",code:b.invalid_string,message:s.message}),r.dirty());else if(s.kind==="uuid")wk.test(t.data)||(o=this._getOrReturnCtx(t,o),_(o,{validation:"uuid",code:b.invalid_string,message:s.message}),r.dirty());else if(s.kind==="nanoid")_k.test(t.data)||(o=this._getOrReturnCtx(t,o),_(o,{validation:"nanoid",code:b.invalid_string,message:s.message}),r.dirty());else if(s.kind==="cuid")yk.test(t.data)||(o=this._getOrReturnCtx(t,o),_(o,{validation:"cuid",code:b.invalid_string,message:s.message}),r.dirty());else if(s.kind==="cuid2")kk.test(t.data)||(o=this._getOrReturnCtx(t,o),_(o,{validation:"cuid2",code:b.invalid_string,message:s.message}),r.dirty());else if(s.kind==="ulid")bk.test(t.data)||(o=this._getOrReturnCtx(t,o),_(o,{validation:"ulid",code:b.invalid_string,message:s.message}),r.dirty());else if(s.kind==="url")try{new URL(t.data)}catch{o=this._getOrReturnCtx(t,o),_(o,{validation:"url",code:b.invalid_string,message:s.message}),r.dirty()}else s.kind==="regex"?(s.regex.lastIndex=0,s.regex.test(t.data)||(o=this._getOrReturnCtx(t,o),_(o,{validation:"regex",code:b.invalid_string,message:s.message}),r.dirty())):s.kind==="trim"?t.data=t.data.trim():s.kind==="includes"?t.data.includes(s.value,s.position)||(o=this._getOrReturnCtx(t,o),_(o,{code:b.invalid_string,validation:{includes:s.value,position:s.position},message:s.message}),r.dirty()):s.kind==="toLowerCase"?t.data=t.data.toLowerCase():s.kind==="toUpperCase"?t.data=t.data.toUpperCase():s.kind==="startsWith"?t.data.startsWith(s.value)||(o=this._getOrReturnCtx(t,o),_(o,{code:b.invalid_string,validation:{startsWith:s.value},message:s.message}),r.dirty()):s.kind==="endsWith"?t.data.endsWith(s.value)||(o=this._getOrReturnCtx(t,o),_(o,{code:b.invalid_string,validation:{endsWith:s.value},message:s.message}),r.dirty()):s.kind==="datetime"?su(s).test(t.data)||(o=this._getOrReturnCtx(t,o),_(o,{code:b.invalid_string,validation:"datetime",message:s.message}),r.dirty()):s.kind==="date"?Pk.test(t.data)||(o=this._getOrReturnCtx(t,o),_(o,{code:b.invalid_string,validation:"date",message:s.message}),r.dirty()):s.kind==="time"?Ik(s).test(t.data)||(o=this._getOrReturnCtx(t,o),_(o,{code:b.invalid_string,validation:"time",message:s.message}),r.dirty()):s.kind==="duration"?xk.test(t.data)||(o=this._getOrReturnCtx(t,o),_(o,{validation:"duration",code:b.invalid_string,message:s.message}),r.dirty()):s.kind==="ip"?Nk(t.data,s.version)||(o=this._getOrReturnCtx(t,o),_(o,{validation:"ip",code:b.invalid_string,message:s.message}),r.dirty()):s.kind==="jwt"?Dk(t.data,s.alg)||(o=this._getOrReturnCtx(t,o),_(o,{validation:"jwt",code:b.invalid_string,message:s.message}),r.dirty()):s.kind==="cidr"?Mk(t.data,s.version)||(o=this._getOrReturnCtx(t,o),_(o,{validation:"cidr",code:b.invalid_string,message:s.message}),r.dirty()):s.kind==="base64"?Ck.test(t.data)||(o=this._getOrReturnCtx(t,o),_(o,{validation:"base64",code:b.invalid_string,message:s.message}),r.dirty()):s.kind==="base64url"?Ok.test(t.data)||(o=this._getOrReturnCtx(t,o),_(o,{validation:"base64url",code:b.invalid_string,message:s.message}),r.dirty()):D.assertNever(s);return{status:r.value,value:t.data}}_regex(t,n,r){return this.refinement(o=>t.test(o),{validation:n,code:b.invalid_string,...v.errToObj(r)})}_addCheck(t){return new e({...this._def,checks:[...this._def.checks,t]})}email(t){return this._addCheck({kind:"email",...v.errToObj(t)})}url(t){return this._addCheck({kind:"url",...v.errToObj(t)})}emoji(t){return this._addCheck({kind:"emoji",...v.errToObj(t)})}uuid(t){return this._addCheck({kind:"uuid",...v.errToObj(t)})}nanoid(t){return this._addCheck({kind:"nanoid",...v.errToObj(t)})}cuid(t){return this._addCheck({kind:"cuid",...v.errToObj(t)})}cuid2(t){return this._addCheck({kind:"cuid2",...v.errToObj(t)})}ulid(t){return this._addCheck({kind:"ulid",...v.errToObj(t)})}base64(t){return this._addCheck({kind:"base64",...v.errToObj(t)})}base64url(t){return this._addCheck({kind:"base64url",...v.errToObj(t)})}jwt(t){return this._addCheck({kind:"jwt",...v.errToObj(t)})}ip(t){return this._addCheck({kind:"ip",...v.errToObj(t)})}cidr(t){return this._addCheck({kind:"cidr",...v.errToObj(t)})}datetime(t){return typeof t=="string"?this._addCheck({kind:"datetime",precision:null,offset:!1,local:!1,message:t}):this._addCheck({kind:"datetime",precision:typeof t?.precision>"u"?null:t?.precision,offset:t?.offset??!1,local:t?.local??!1,...v.errToObj(t?.message)})}date(t){return this._addCheck({kind:"date",message:t})}time(t){return typeof t=="string"?this._addCheck({kind:"time",precision:null,message:t}):this._addCheck({kind:"time",precision:typeof t?.precision>"u"?null:t?.precision,...v.errToObj(t?.message)})}duration(t){return this._addCheck({kind:"duration",...v.errToObj(t)})}regex(t,n){return this._addCheck({kind:"regex",regex:t,...v.errToObj(n)})}includes(t,n){return this._addCheck({kind:"includes",value:t,position:n?.position,...v.errToObj(n?.message)})}startsWith(t,n){return this._addCheck({kind:"startsWith",value:t,...v.errToObj(n)})}endsWith(t,n){return this._addCheck({kind:"endsWith",value:t,...v.errToObj(n)})}min(t,n){return this._addCheck({kind:"min",value:t,...v.errToObj(n)})}max(t,n){return this._addCheck({kind:"max",value:t,...v.errToObj(n)})}length(t,n){return this._addCheck({kind:"length",value:t,...v.errToObj(n)})}nonempty(t){return this.min(1,v.errToObj(t))}trim(){return new e({...this._def,checks:[...this._def.checks,{kind:"trim"}]})}toLowerCase(){return new e({...this._def,checks:[...this._def.checks,{kind:"toLowerCase"}]})}toUpperCase(){return new e({...this._def,checks:[...this._def.checks,{kind:"toUpperCase"}]})}get isDatetime(){return!!this._def.checks.find(t=>t.kind==="datetime")}get isDate(){return!!this._def.checks.find(t=>t.kind==="date")}get isTime(){return!!this._def.checks.find(t=>t.kind==="time")}get isDuration(){return!!this._def.checks.find(t=>t.kind==="duration")}get isEmail(){return!!this._def.checks.find(t=>t.kind==="email")}get isURL(){return!!this._def.checks.find(t=>t.kind==="url")}get isEmoji(){return!!this._def.checks.find(t=>t.kind==="emoji")}get isUUID(){return!!this._def.checks.find(t=>t.kind==="uuid")}get isNANOID(){return!!this._def.checks.find(t=>t.kind==="nanoid")}get isCUID(){return!!this._def.checks.find(t=>t.kind==="cuid")}get isCUID2(){return!!this._def.checks.find(t=>t.kind==="cuid2")}get isULID(){return!!this._def.checks.find(t=>t.kind==="ulid")}get isIP(){return!!this._def.checks.find(t=>t.kind==="ip")}get isCIDR(){return!!this._def.checks.find(t=>t.kind==="cidr")}get isBase64(){return!!this._def.checks.find(t=>t.kind==="base64")}get isBase64url(){return!!this._def.checks.find(t=>t.kind==="base64url")}get minLength(){let t=null;for(let n of this._def.checks)n.kind==="min"&&(t===null||n.value>t)&&(t=n.value);return t}get maxLength(){let t=null;for(let n of this._def.checks)n.kind==="max"&&(t===null||n.value<t)&&(t=n.value);return t}};kt.create=e=>new kt({checks:[],typeName:C.ZodString,coerce:e?.coerce??!1,...P(e)});It=class e extends N{constructor(){super(...arguments),this.min=this.gte,this.max=this.lte,this.step=this.multipleOf}_parse(t){if(this._def.coerce&&(t.data=Number(t.data)),this._getType(t)!==S.number){let s=this._getOrReturnCtx(t);return _(s,{code:b.invalid_type,expected:S.number,received:s.parsedType}),A}let r,o=new Q;for(let s of this._def.checks)s.kind==="int"?D.isInteger(t.data)||(r=this._getOrReturnCtx(t,r),_(r,{code:b.invalid_type,expected:"integer",received:"float",message:s.message}),o.dirty()):s.kind==="min"?(s.inclusive?t.data<s.value:t.data<=s.value)&&(r=this._getOrReturnCtx(t,r),_(r,{code:b.too_small,minimum:s.value,type:"number",inclusive:s.inclusive,exact:!1,message:s.message}),o.dirty()):s.kind==="max"?(s.inclusive?t.data>s.value:t.data>=s.value)&&(r=this._getOrReturnCtx(t,r),_(r,{code:b.too_big,maximum:s.value,type:"number",inclusive:s.inclusive,exact:!1,message:s.message}),o.dirty()):s.kind==="multipleOf"?Fk(t.data,s.value)!==0&&(r=this._getOrReturnCtx(t,r),_(r,{code:b.not_multiple_of,multipleOf:s.value,message:s.message}),o.dirty()):s.kind==="finite"?Number.isFinite(t.data)||(r=this._getOrReturnCtx(t,r),_(r,{code:b.not_finite,message:s.message}),o.dirty()):D.assertNever(s);return{status:o.value,value:t.data}}gte(t,n){return this.setLimit("min",t,!0,v.toString(n))}gt(t,n){return this.setLimit("min",t,!1,v.toString(n))}lte(t,n){return this.setLimit("max",t,!0,v.toString(n))}lt(t,n){return this.setLimit("max",t,!1,v.toString(n))}setLimit(t,n,r,o){return new e({...this._def,checks:[...this._def.checks,{kind:t,value:n,inclusive:r,message:v.toString(o)}]})}_addCheck(t){return new e({...this._def,checks:[...this._def.checks,t]})}int(t){return this._addCheck({kind:"int",message:v.toString(t)})}positive(t){return this._addCheck({kind:"min",value:0,inclusive:!1,message:v.toString(t)})}negative(t){return this._addCheck({kind:"max",value:0,inclusive:!1,message:v.toString(t)})}nonpositive(t){return this._addCheck({kind:"max",value:0,inclusive:!0,message:v.toString(t)})}nonnegative(t){return this._addCheck({kind:"min",value:0,inclusive:!0,message:v.toString(t)})}multipleOf(t,n){return this._addCheck({kind:"multipleOf",value:t,message:v.toString(n)})}finite(t){return this._addCheck({kind:"finite",message:v.toString(t)})}safe(t){return this._addCheck({kind:"min",inclusive:!0,value:Number.MIN_SAFE_INTEGER,message:v.toString(t)})._addCheck({kind:"max",inclusive:!0,value:Number.MAX_SAFE_INTEGER,message:v.toString(t)})}get minValue(){let t=null;for(let n of this._def.checks)n.kind==="min"&&(t===null||n.value>t)&&(t=n.value);return t}get maxValue(){let t=null;for(let n of this._def.checks)n.kind==="max"&&(t===null||n.value<t)&&(t=n.value);return t}get isInt(){return!!this._def.checks.find(t=>t.kind==="int"||t.kind==="multipleOf"&&D.isInteger(t.value))}get isFinite(){let t=null,n=null;for(let r of this._def.checks){if(r.kind==="finite"||r.kind==="int"||r.kind==="multipleOf")return!0;r.kind==="min"?(n===null||r.value>n)&&(n=r.value):r.kind==="max"&&(t===null||r.value<t)&&(t=r.value)}return Number.isFinite(n)&&Number.isFinite(t)}};It.create=e=>new It({checks:[],typeName:C.ZodNumber,coerce:e?.coerce||!1,...P(e)});Nt=class e extends N{constructor(){super(...arguments),this.min=this.gte,this.max=this.lte}_parse(t){if(this._def.coerce)try{t.data=BigInt(t.data)}catch{return this._getInvalidInput(t)}if(this._getType(t)!==S.bigint)return this._getInvalidInput(t);let r,o=new Q;for(let s of this._def.checks)s.kind==="min"?(s.inclusive?t.data<s.value:t.data<=s.value)&&(r=this._getOrReturnCtx(t,r),_(r,{code:b.too_small,type:"bigint",minimum:s.value,inclusive:s.inclusive,message:s.message}),o.dirty()):s.kind==="max"?(s.inclusive?t.data>s.value:t.data>=s.value)&&(r=this._getOrReturnCtx(t,r),_(r,{code:b.too_big,type:"bigint",maximum:s.value,inclusive:s.inclusive,message:s.message}),o.dirty()):s.kind==="multipleOf"?t.data%s.value!==BigInt(0)&&(r=this._getOrReturnCtx(t,r),_(r,{code:b.not_multiple_of,multipleOf:s.value,message:s.message}),o.dirty()):D.assertNever(s);return{status:o.value,value:t.data}}_getInvalidInput(t){let n=this._getOrReturnCtx(t);return _(n,{code:b.invalid_type,expected:S.bigint,received:n.parsedType}),A}gte(t,n){return this.setLimit("min",t,!0,v.toString(n))}gt(t,n){return this.setLimit("min",t,!1,v.toString(n))}lte(t,n){return this.setLimit("max",t,!0,v.toString(n))}lt(t,n){return this.setLimit("max",t,!1,v.toString(n))}setLimit(t,n,r,o){return new e({...this._def,checks:[...this._def.checks,{kind:t,value:n,inclusive:r,message:v.toString(o)}]})}_addCheck(t){return new e({...this._def,checks:[...this._def.checks,t]})}positive(t){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!1,message:v.toString(t)})}negative(t){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!1,message:v.toString(t)})}nonpositive(t){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!0,message:v.toString(t)})}nonnegative(t){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!0,message:v.toString(t)})}multipleOf(t,n){return this._addCheck({kind:"multipleOf",value:t,message:v.toString(n)})}get minValue(){let t=null;for(let n of this._def.checks)n.kind==="min"&&(t===null||n.value>t)&&(t=n.value);return t}get maxValue(){let t=null;for(let n of this._def.checks)n.kind==="max"&&(t===null||n.value<t)&&(t=n.value);return t}};Nt.create=e=>new Nt({checks:[],typeName:C.ZodBigInt,coerce:e?.coerce??!1,...P(e)});Dt=class extends N{_parse(t){if(this._def.coerce&&(t.data=!!t.data),this._getType(t)!==S.boolean){let r=this._getOrReturnCtx(t);return _(r,{code:b.invalid_type,expected:S.boolean,received:r.parsedType}),A}return oe(t.data)}};Dt.create=e=>new Dt({typeName:C.ZodBoolean,coerce:e?.coerce||!1,...P(e)});Mt=class e extends N{_parse(t){if(this._def.coerce&&(t.data=new Date(t.data)),this._getType(t)!==S.date){let s=this._getOrReturnCtx(t);return _(s,{code:b.invalid_type,expected:S.date,received:s.parsedType}),A}if(Number.isNaN(t.data.getTime())){let s=this._getOrReturnCtx(t);return _(s,{code:b.invalid_date}),A}let r=new Q,o;for(let s of this._def.checks)s.kind==="min"?t.data.getTime()<s.value&&(o=this._getOrReturnCtx(t,o),_(o,{code:b.too_small,message:s.message,inclusive:!0,exact:!1,minimum:s.value,type:"date"}),r.dirty()):s.kind==="max"?t.data.getTime()>s.value&&(o=this._getOrReturnCtx(t,o),_(o,{code:b.too_big,message:s.message,inclusive:!0,exact:!1,maximum:s.value,type:"date"}),r.dirty()):D.assertNever(s);return{status:r.value,value:new Date(t.data.getTime())}}_addCheck(t){return new e({...this._def,checks:[...this._def.checks,t]})}min(t,n){return this._addCheck({kind:"min",value:t.getTime(),message:v.toString(n)})}max(t,n){return this._addCheck({kind:"max",value:t.getTime(),message:v.toString(n)})}get minDate(){let t=null;for(let n of this._def.checks)n.kind==="min"&&(t===null||n.value>t)&&(t=n.value);return t!=null?new Date(t):null}get maxDate(){let t=null;for(let n of this._def.checks)n.kind==="max"&&(t===null||n.value<t)&&(t=n.value);return t!=null?new Date(t):null}};Mt.create=e=>new Mt({checks:[],coerce:e?.coerce||!1,typeName:C.ZodDate,...P(e)});mn=class extends N{_parse(t){if(this._getType(t)!==S.symbol){let r=this._getOrReturnCtx(t);return _(r,{code:b.invalid_type,expected:S.symbol,received:r.parsedType}),A}return oe(t.data)}};mn.create=e=>new mn({typeName:C.ZodSymbol,...P(e)});Ft=class extends N{_parse(t){if(this._getType(t)!==S.undefined){let r=this._getOrReturnCtx(t);return _(r,{code:b.invalid_type,expected:S.undefined,received:r.parsedType}),A}return oe(t.data)}};Ft.create=e=>new Ft({typeName:C.ZodUndefined,...P(e)});Ht=class extends N{_parse(t){if(this._getType(t)!==S.null){let r=this._getOrReturnCtx(t);return _(r,{code:b.invalid_type,expected:S.null,received:r.parsedType}),A}return oe(t.data)}};Ht.create=e=>new Ht({typeName:C.ZodNull,...P(e)});bt=class extends N{constructor(){super(...arguments),this._any=!0}_parse(t){return oe(t.data)}};bt.create=e=>new bt({typeName:C.ZodAny,...P(e)});nt=class extends N{constructor(){super(...arguments),this._unknown=!0}_parse(t){return oe(t.data)}};nt.create=e=>new nt({typeName:C.ZodUnknown,...P(e)});Me=class extends N{_parse(t){let n=this._getOrReturnCtx(t);return _(n,{code:b.invalid_type,expected:S.never,received:n.parsedType}),A}};Me.create=e=>new Me({typeName:C.ZodNever,...P(e)});pn=class extends N{_parse(t){if(this._getType(t)!==S.undefined){let r=this._getOrReturnCtx(t);return _(r,{code:b.invalid_type,expected:S.void,received:r.parsedType}),A}return oe(t.data)}};pn.create=e=>new pn({typeName:C.ZodVoid,...P(e)});rt=class e extends N{_parse(t){let{ctx:n,status:r}=this._processInputParams(t),o=this._def;if(n.parsedType!==S.array)return _(n,{code:b.invalid_type,expected:S.array,received:n.parsedType}),A;if(o.exactLength!==null){let i=n.data.length>o.exactLength.value,a=n.data.length<o.exactLength.value;(i||a)&&(_(n,{code:i?b.too_big:b.too_small,minimum:a?o.exactLength.value:void 0,maximum:i?o.exactLength.value:void 0,type:"array",inclusive:!0,exact:!0,message:o.exactLength.message}),r.dirty())}if(o.minLength!==null&&n.data.length<o.minLength.value&&(_(n,{code:b.too_small,minimum:o.minLength.value,type:"array",inclusive:!0,exact:!1,message:o.minLength.message}),r.dirty()),o.maxLength!==null&&n.data.length>o.maxLength.value&&(_(n,{code:b.too_big,maximum:o.maxLength.value,type:"array",inclusive:!0,exact:!1,message:o.maxLength.message}),r.dirty()),n.common.async)return Promise.all([...n.data].map((i,a)=>o.type._parseAsync(new $e(n,i,n.path,a)))).then(i=>Q.mergeArray(r,i));let s=[...n.data].map((i,a)=>o.type._parseSync(new $e(n,i,n.path,a)));return Q.mergeArray(r,s)}get element(){return this._def.type}min(t,n){return new e({...this._def,minLength:{value:t,message:v.toString(n)}})}max(t,n){return new e({...this._def,maxLength:{value:t,message:v.toString(n)}})}length(t,n){return new e({...this._def,exactLength:{value:t,message:v.toString(n)}})}nonempty(t){return this.min(1,t)}};rt.create=(e,t)=>new rt({type:e,minLength:null,maxLength:null,exactLength:null,typeName:C.ZodArray,...P(t)});ge=class e extends N{constructor(){super(...arguments),this._cached=null,this.nonstrict=this.passthrough,this.augment=this.extend}_getCached(){if(this._cached!==null)return this._cached;let t=this._def.shape(),n=D.objectKeys(t);return this._cached={shape:t,keys:n},this._cached}_parse(t){if(this._getType(t)!==S.object){let c=this._getOrReturnCtx(t);return _(c,{code:b.invalid_type,expected:S.object,received:c.parsedType}),A}let{status:r,ctx:o}=this._processInputParams(t),{shape:s,keys:i}=this._getCached(),a=[];if(!(this._def.catchall instanceof Me&&this._def.unknownKeys==="strip"))for(let c in o.data)i.includes(c)||a.push(c);let l=[];for(let c of i){let u=s[c],f=o.data[c];l.push({key:{status:"valid",value:c},value:u._parse(new $e(o,f,o.path,c)),alwaysSet:c in o.data})}if(this._def.catchall instanceof Me){let c=this._def.unknownKeys;if(c==="passthrough")for(let u of a)l.push({key:{status:"valid",value:u},value:{status:"valid",value:o.data[u]}});else if(c==="strict")a.length>0&&(_(o,{code:b.unrecognized_keys,keys:a}),r.dirty());else if(c!=="strip")throw new Error("Internal ZodObject error: invalid unknownKeys value.")}else{let c=this._def.catchall;for(let u of a){let f=o.data[u];l.push({key:{status:"valid",value:u},value:c._parse(new $e(o,f,o.path,u)),alwaysSet:u in o.data})}}return o.common.async?Promise.resolve().then(async()=>{let c=[];for(let u of l){let f=await u.key,d=await u.value;c.push({key:f,value:d,alwaysSet:u.alwaysSet})}return c}).then(c=>Q.mergeObjectSync(r,c)):Q.mergeObjectSync(r,l)}get shape(){return this._def.shape()}strict(t){return v.errToObj,new e({...this._def,unknownKeys:"strict",...t!==void 0?{errorMap:(n,r)=>{let o=this._def.errorMap?.(n,r).message??r.defaultError;return n.code==="unrecognized_keys"?{message:v.errToObj(t).message??o}:{message:o}}}:{}})}strip(){return new e({...this._def,unknownKeys:"strip"})}passthrough(){return new e({...this._def,unknownKeys:"passthrough"})}extend(t){return new e({...this._def,shape:()=>({...this._def.shape(),...t})})}merge(t){return new e({unknownKeys:t._def.unknownKeys,catchall:t._def.catchall,shape:()=>({...this._def.shape(),...t._def.shape()}),typeName:C.ZodObject})}setKey(t,n){return this.augment({[t]:n})}catchall(t){return new e({...this._def,catchall:t})}pick(t){let n={};for(let r of D.objectKeys(t))t[r]&&this.shape[r]&&(n[r]=this.shape[r]);return new e({...this._def,shape:()=>n})}omit(t){let n={};for(let r of D.objectKeys(this.shape))t[r]||(n[r]=this.shape[r]);return new e({...this._def,shape:()=>n})}deepPartial(){return dn(this)}partial(t){let n={};for(let r of D.objectKeys(this.shape)){let o=this.shape[r];t&&!t[r]?n[r]=o:n[r]=o.optional()}return new e({...this._def,shape:()=>n})}required(t){let n={};for(let r of D.objectKeys(this.shape))if(t&&!t[r])n[r]=this.shape[r];else{let s=this.shape[r];for(;s instanceof Ae;)s=s._def.innerType;n[r]=s}return new e({...this._def,shape:()=>n})}keyof(){return iu(D.objectKeys(this.shape))}};ge.create=(e,t)=>new ge({shape:()=>e,unknownKeys:"strip",catchall:Me.create(),typeName:C.ZodObject,...P(t)});ge.strictCreate=(e,t)=>new ge({shape:()=>e,unknownKeys:"strict",catchall:Me.create(),typeName:C.ZodObject,...P(t)});ge.lazycreate=(e,t)=>new ge({shape:e,unknownKeys:"strip",catchall:Me.create(),typeName:C.ZodObject,...P(t)});Lt=class extends N{_parse(t){let{ctx:n}=this._processInputParams(t),r=this._def.options;function o(s){for(let a of s)if(a.result.status==="valid")return a.result;for(let a of s)if(a.result.status==="dirty")return n.common.issues.push(...a.ctx.common.issues),a.result;let i=s.map(a=>new pe(a.ctx.common.issues));return _(n,{code:b.invalid_union,unionErrors:i}),A}if(n.common.async)return Promise.all(r.map(async s=>{let i={...n,common:{...n.common,issues:[]},parent:null};return{result:await s._parseAsync({data:n.data,path:n.path,parent:i}),ctx:i}})).then(o);{let s,i=[];for(let l of r){let c={...n,common:{...n.common,issues:[]},parent:null},u=l._parseSync({data:n.data,path:n.path,parent:c});if(u.status==="valid")return u;u.status==="dirty"&&!s&&(s={result:u,ctx:c}),c.common.issues.length&&i.push(c.common.issues)}if(s)return n.common.issues.push(...s.ctx.common.issues),s.result;let a=i.map(l=>new pe(l));return _(n,{code:b.invalid_union,unionErrors:a}),A}}get options(){return this._def.options}};Lt.create=(e,t)=>new Lt({options:e,typeName:C.ZodUnion,...P(t)});tt=e=>e instanceof Bt?tt(e.schema):e instanceof Ce?tt(e.innerType()):e instanceof Ut?[e.value]:e instanceof zt?e.options:e instanceof Jt?D.objectValues(e.enum):e instanceof Gt?tt(e._def.innerType):e instanceof Ft?[void 0]:e instanceof Ht?[null]:e instanceof Ae?[void 0,...tt(e.unwrap())]:e instanceof We?[null,...tt(e.unwrap())]:e instanceof yr||e instanceof Zt?tt(e.unwrap()):e instanceof Kt?tt(e._def.innerType):[],Oo=class e extends N{_parse(t){let{ctx:n}=this._processInputParams(t);if(n.parsedType!==S.object)return _(n,{code:b.invalid_type,expected:S.object,received:n.parsedType}),A;let r=this.discriminator,o=n.data[r],s=this.optionsMap.get(o);return s?n.common.async?s._parseAsync({data:n.data,path:n.path,parent:n}):s._parseSync({data:n.data,path:n.path,parent:n}):(_(n,{code:b.invalid_union_discriminator,options:Array.from(this.optionsMap.keys()),path:[r]}),A)}get discriminator(){return this._def.discriminator}get options(){return this._def.options}get optionsMap(){return this._def.optionsMap}static create(t,n,r){let o=new Map;for(let s of n){let i=tt(s.shape[t]);if(!i.length)throw new Error(`A discriminator value for key \`${t}\` could not be extracted from all schema options`);for(let a of i){if(o.has(a))throw new Error(`Discriminator property ${String(t)} has duplicate value ${String(a)}`);o.set(a,s)}}return new e({typeName:C.ZodDiscriminatedUnion,discriminator:t,options:n,optionsMap:o,...P(r)})}};jt=class extends N{_parse(t){let{status:n,ctx:r}=this._processInputParams(t),o=(s,i)=>{if($o(s)||$o(i))return A;let a=Di(s.value,i.value);return a.valid?((Co(s)||Co(i))&&n.dirty(),{status:n.value,value:a.data}):(_(r,{code:b.invalid_intersection_types}),A)};return r.common.async?Promise.all([this._def.left._parseAsync({data:r.data,path:r.path,parent:r}),this._def.right._parseAsync({data:r.data,path:r.path,parent:r})]).then(([s,i])=>o(s,i)):o(this._def.left._parseSync({data:r.data,path:r.path,parent:r}),this._def.right._parseSync({data:r.data,path:r.path,parent:r}))}};jt.create=(e,t,n)=>new jt({left:e,right:t,typeName:C.ZodIntersection,...P(n)});Ze=class e extends N{_parse(t){let{status:n,ctx:r}=this._processInputParams(t);if(r.parsedType!==S.array)return _(r,{code:b.invalid_type,expected:S.array,received:r.parsedType}),A;if(r.data.length<this._def.items.length)return _(r,{code:b.too_small,minimum:this._def.items.length,inclusive:!0,exact:!1,type:"array"}),A;!this._def.rest&&r.data.length>this._def.items.length&&(_(r,{code:b.too_big,maximum:this._def.items.length,inclusive:!0,exact:!1,type:"array"}),n.dirty());let s=[...r.data].map((i,a)=>{let l=this._def.items[a]||this._def.rest;return l?l._parse(new $e(r,i,r.path,a)):null}).filter(i=>!!i);return r.common.async?Promise.all(s).then(i=>Q.mergeArray(n,i)):Q.mergeArray(n,s)}get items(){return this._def.items}rest(t){return new e({...this._def,rest:t})}};Ze.create=(e,t)=>{if(!Array.isArray(e))throw new Error("You must pass an array of schemas to z.tuple([ ... ])");return new Ze({items:e,typeName:C.ZodTuple,rest:null,...P(t)})};Po=class e extends N{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse(t){let{status:n,ctx:r}=this._processInputParams(t);if(r.parsedType!==S.object)return _(r,{code:b.invalid_type,expected:S.object,received:r.parsedType}),A;let o=[],s=this._def.keyType,i=this._def.valueType;for(let a in r.data)o.push({key:s._parse(new $e(r,a,r.path,a)),value:i._parse(new $e(r,r.data[a],r.path,a)),alwaysSet:a in r.data});return r.common.async?Q.mergeObjectAsync(n,o):Q.mergeObjectSync(n,o)}get element(){return this._def.valueType}static create(t,n,r){return n instanceof N?new e({keyType:t,valueType:n,typeName:C.ZodRecord,...P(r)}):new e({keyType:kt.create(),valueType:t,typeName:C.ZodRecord,...P(n)})}},gn=class extends N{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse(t){let{status:n,ctx:r}=this._processInputParams(t);if(r.parsedType!==S.map)return _(r,{code:b.invalid_type,expected:S.map,received:r.parsedType}),A;let o=this._def.keyType,s=this._def.valueType,i=[...r.data.entries()].map(([a,l],c)=>({key:o._parse(new $e(r,a,r.path,[c,"key"])),value:s._parse(new $e(r,l,r.path,[c,"value"]))}));if(r.common.async){let a=new Map;return Promise.resolve().then(async()=>{for(let l of i){let c=await l.key,u=await l.value;if(c.status==="aborted"||u.status==="aborted")return A;(c.status==="dirty"||u.status==="dirty")&&n.dirty(),a.set(c.value,u.value)}return{status:n.value,value:a}})}else{let a=new Map;for(let l of i){let c=l.key,u=l.value;if(c.status==="aborted"||u.status==="aborted")return A;(c.status==="dirty"||u.status==="dirty")&&n.dirty(),a.set(c.value,u.value)}return{status:n.value,value:a}}}};gn.create=(e,t,n)=>new gn({valueType:t,keyType:e,typeName:C.ZodMap,...P(n)});hn=class e extends N{_parse(t){let{status:n,ctx:r}=this._processInputParams(t);if(r.parsedType!==S.set)return _(r,{code:b.invalid_type,expected:S.set,received:r.parsedType}),A;let o=this._def;o.minSize!==null&&r.data.size<o.minSize.value&&(_(r,{code:b.too_small,minimum:o.minSize.value,type:"set",inclusive:!0,exact:!1,message:o.minSize.message}),n.dirty()),o.maxSize!==null&&r.data.size>o.maxSize.value&&(_(r,{code:b.too_big,maximum:o.maxSize.value,type:"set",inclusive:!0,exact:!1,message:o.maxSize.message}),n.dirty());let s=this._def.valueType;function i(l){let c=new Set;for(let u of l){if(u.status==="aborted")return A;u.status==="dirty"&&n.dirty(),c.add(u.value)}return{status:n.value,value:c}}let a=[...r.data.values()].map((l,c)=>s._parse(new $e(r,l,r.path,c)));return r.common.async?Promise.all(a).then(l=>i(l)):i(a)}min(t,n){return new e({...this._def,minSize:{value:t,message:v.toString(n)}})}max(t,n){return new e({...this._def,maxSize:{value:t,message:v.toString(n)}})}size(t,n){return this.min(t,n).max(t,n)}nonempty(t){return this.min(1,t)}};hn.create=(e,t)=>new hn({valueType:e,minSize:null,maxSize:null,typeName:C.ZodSet,...P(t)});Io=class e extends N{constructor(){super(...arguments),this.validate=this.implement}_parse(t){let{ctx:n}=this._processInputParams(t);if(n.parsedType!==S.function)return _(n,{code:b.invalid_type,expected:S.function,received:n.parsedType}),A;function r(a,l){return hr({data:a,path:n.path,errorMaps:[n.common.contextualErrorMap,n.schemaErrorMap,un(),et].filter(c=>!!c),issueData:{code:b.invalid_arguments,argumentsError:l}})}function o(a,l){return hr({data:a,path:n.path,errorMaps:[n.common.contextualErrorMap,n.schemaErrorMap,un(),et].filter(c=>!!c),issueData:{code:b.invalid_return_type,returnTypeError:l}})}let s={errorMap:n.common.contextualErrorMap},i=n.data;if(this._def.returns instanceof wt){let a=this;return oe(async function(...l){let c=new pe([]),u=await a._def.args.parseAsync(l,s).catch(m=>{throw c.addIssue(r(l,m)),c}),f=await Reflect.apply(i,this,u);return await a._def.returns._def.type.parseAsync(f,s).catch(m=>{throw c.addIssue(o(f,m)),c})})}else{let a=this;return oe(function(...l){let c=a._def.args.safeParse(l,s);if(!c.success)throw new pe([r(l,c.error)]);let u=Reflect.apply(i,this,c.data),f=a._def.returns.safeParse(u,s);if(!f.success)throw new pe([o(u,f.error)]);return f.data})}}parameters(){return this._def.args}returnType(){return this._def.returns}args(...t){return new e({...this._def,args:Ze.create(t).rest(nt.create())})}returns(t){return new e({...this._def,returns:t})}implement(t){return this.parse(t)}strictImplement(t){return this.parse(t)}static create(t,n,r){return new e({args:t||Ze.create([]).rest(nt.create()),returns:n||nt.create(),typeName:C.ZodFunction,...P(r)})}},Bt=class extends N{get schema(){return this._def.getter()}_parse(t){let{ctx:n}=this._processInputParams(t);return this._def.getter()._parse({data:n.data,path:n.path,parent:n})}};Bt.create=(e,t)=>new Bt({getter:e,typeName:C.ZodLazy,...P(t)});Ut=class extends N{_parse(t){if(t.data!==this._def.value){let n=this._getOrReturnCtx(t);return _(n,{received:n.data,code:b.invalid_literal,expected:this._def.value}),A}return{status:"valid",value:t.data}}get value(){return this._def.value}};Ut.create=(e,t)=>new Ut({value:e,typeName:C.ZodLiteral,...P(t)});zt=class e extends N{_parse(t){if(typeof t.data!="string"){let n=this._getOrReturnCtx(t),r=this._def.values;return _(n,{expected:D.joinValues(r),received:n.parsedType,code:b.invalid_type}),A}if(this._cache||(this._cache=new Set(this._def.values)),!this._cache.has(t.data)){let n=this._getOrReturnCtx(t),r=this._def.values;return _(n,{received:n.data,code:b.invalid_enum_value,options:r}),A}return oe(t.data)}get options(){return this._def.values}get enum(){let t={};for(let n of this._def.values)t[n]=n;return t}get Values(){let t={};for(let n of this._def.values)t[n]=n;return t}get Enum(){let t={};for(let n of this._def.values)t[n]=n;return t}extract(t,n=this._def){return e.create(t,{...this._def,...n})}exclude(t,n=this._def){return e.create(this.options.filter(r=>!t.includes(r)),{...this._def,...n})}};zt.create=iu;Jt=class extends N{_parse(t){let n=D.getValidEnumValues(this._def.values),r=this._getOrReturnCtx(t);if(r.parsedType!==S.string&&r.parsedType!==S.number){let o=D.objectValues(n);return _(r,{expected:D.joinValues(o),received:r.parsedType,code:b.invalid_type}),A}if(this._cache||(this._cache=new Set(D.getValidEnumValues(this._def.values))),!this._cache.has(t.data)){let o=D.objectValues(n);return _(r,{received:r.data,code:b.invalid_enum_value,options:o}),A}return oe(t.data)}get enum(){return this._def.values}};Jt.create=(e,t)=>new Jt({values:e,typeName:C.ZodNativeEnum,...P(t)});wt=class extends N{unwrap(){return this._def.type}_parse(t){let{ctx:n}=this._processInputParams(t);if(n.parsedType!==S.promise&&n.common.async===!1)return _(n,{code:b.invalid_type,expected:S.promise,received:n.parsedType}),A;let r=n.parsedType===S.promise?n.data:Promise.resolve(n.data);return oe(r.then(o=>this._def.type.parseAsync(o,{path:n.path,errorMap:n.common.contextualErrorMap})))}};wt.create=(e,t)=>new wt({type:e,typeName:C.ZodPromise,...P(t)});Ce=class extends N{innerType(){return this._def.schema}sourceType(){return this._def.schema._def.typeName===C.ZodEffects?this._def.schema.sourceType():this._def.schema}_parse(t){let{status:n,ctx:r}=this._processInputParams(t),o=this._def.effect||null,s={addIssue:i=>{_(r,i),i.fatal?n.abort():n.dirty()},get path(){return r.path}};if(s.addIssue=s.addIssue.bind(s),o.type==="preprocess"){let i=o.transform(r.data,s);if(r.common.async)return Promise.resolve(i).then(async a=>{if(n.value==="aborted")return A;let l=await this._def.schema._parseAsync({data:a,path:r.path,parent:r});return l.status==="aborted"?A:l.status==="dirty"?Pt(l.value):n.value==="dirty"?Pt(l.value):l});{if(n.value==="aborted")return A;let a=this._def.schema._parseSync({data:i,path:r.path,parent:r});return a.status==="aborted"?A:a.status==="dirty"?Pt(a.value):n.value==="dirty"?Pt(a.value):a}}if(o.type==="refinement"){let i=a=>{let l=o.refinement(a,s);if(r.common.async)return Promise.resolve(l);if(l instanceof Promise)throw new Error("Async refinement encountered during synchronous parse operation. Use .parseAsync instead.");return a};if(r.common.async===!1){let a=this._def.schema._parseSync({data:r.data,path:r.path,parent:r});return a.status==="aborted"?A:(a.status==="dirty"&&n.dirty(),i(a.value),{status:n.value,value:a.value})}else return this._def.schema._parseAsync({data:r.data,path:r.path,parent:r}).then(a=>a.status==="aborted"?A:(a.status==="dirty"&&n.dirty(),i(a.value).then(()=>({status:n.value,value:a.value}))))}if(o.type==="transform")if(r.common.async===!1){let i=this._def.schema._parseSync({data:r.data,path:r.path,parent:r});if(!yt(i))return A;let a=o.transform(i.value,s);if(a instanceof Promise)throw new Error("Asynchronous transform encountered during synchronous parse operation. Use .parseAsync instead.");return{status:n.value,value:a}}else return this._def.schema._parseAsync({data:r.data,path:r.path,parent:r}).then(i=>yt(i)?Promise.resolve(o.transform(i.value,s)).then(a=>({status:n.value,value:a})):A);D.assertNever(o)}};Ce.create=(e,t,n)=>new Ce({schema:e,typeName:C.ZodEffects,effect:t,...P(n)});Ce.createWithPreprocess=(e,t,n)=>new Ce({schema:t,effect:{type:"preprocess",transform:e},typeName:C.ZodEffects,...P(n)});Ae=class extends N{_parse(t){return this._getType(t)===S.undefined?oe(void 0):this._def.innerType._parse(t)}unwrap(){return this._def.innerType}};Ae.create=(e,t)=>new Ae({innerType:e,typeName:C.ZodOptional,...P(t)});We=class extends N{_parse(t){return this._getType(t)===S.null?oe(null):this._def.innerType._parse(t)}unwrap(){return this._def.innerType}};We.create=(e,t)=>new We({innerType:e,typeName:C.ZodNullable,...P(t)});Gt=class extends N{_parse(t){let{ctx:n}=this._processInputParams(t),r=n.data;return n.parsedType===S.undefined&&(r=this._def.defaultValue()),this._def.innerType._parse({data:r,path:n.path,parent:n})}removeDefault(){return this._def.innerType}};Gt.create=(e,t)=>new Gt({innerType:e,typeName:C.ZodDefault,defaultValue:typeof t.default=="function"?t.default:()=>t.default,...P(t)});Kt=class extends N{_parse(t){let{ctx:n}=this._processInputParams(t),r={...n,common:{...n.common,issues:[]}},o=this._def.innerType._parse({data:r.data,path:r.path,parent:{...r}});return fn(o)?o.then(s=>({status:"valid",value:s.status==="valid"?s.value:this._def.catchValue({get error(){return new pe(r.common.issues)},input:r.data})})):{status:"valid",value:o.status==="valid"?o.value:this._def.catchValue({get error(){return new pe(r.common.issues)},input:r.data})}}removeCatch(){return this._def.innerType}};Kt.create=(e,t)=>new Kt({innerType:e,typeName:C.ZodCatch,catchValue:typeof t.catch=="function"?t.catch:()=>t.catch,...P(t)});yn=class extends N{_parse(t){if(this._getType(t)!==S.nan){let r=this._getOrReturnCtx(t);return _(r,{code:b.invalid_type,expected:S.nan,received:r.parsedType}),A}return{status:"valid",value:t.data}}};yn.create=e=>new yn({typeName:C.ZodNaN,...P(e)});Hk=Symbol("zod_brand"),yr=class extends N{_parse(t){let{ctx:n}=this._processInputParams(t),r=n.data;return this._def.type._parse({data:r,path:n.path,parent:n})}unwrap(){return this._def.type}},kr=class e extends N{_parse(t){let{status:n,ctx:r}=this._processInputParams(t);if(r.common.async)return(async()=>{let s=await this._def.in._parseAsync({data:r.data,path:r.path,parent:r});return s.status==="aborted"?A:s.status==="dirty"?(n.dirty(),Pt(s.value)):this._def.out._parseAsync({data:s.value,path:r.path,parent:r})})();{let o=this._def.in._parseSync({data:r.data,path:r.path,parent:r});return o.status==="aborted"?A:o.status==="dirty"?(n.dirty(),{status:"dirty",value:o.value}):this._def.out._parseSync({data:o.value,path:r.path,parent:r})}}static create(t,n){return new e({in:t,out:n,typeName:C.ZodPipeline})}},Zt=class extends N{_parse(t){let n=this._def.innerType._parse(t),r=o=>(yt(o)&&(o.value=Object.freeze(o.value)),o);return fn(n)?n.then(o=>r(o)):r(n)}unwrap(){return this._def.innerType}};Zt.create=(e,t)=>new Zt({innerType:e,typeName:C.ZodReadonly,...P(t)});Lk={object:ge.lazycreate};(function(e){e.ZodString="ZodString",e.ZodNumber="ZodNumber",e.ZodNaN="ZodNaN",e.ZodBigInt="ZodBigInt",e.ZodBoolean="ZodBoolean",e.ZodDate="ZodDate",e.ZodSymbol="ZodSymbol",e.ZodUndefined="ZodUndefined",e.ZodNull="ZodNull",e.ZodAny="ZodAny",e.ZodUnknown="ZodUnknown",e.ZodNever="ZodNever",e.ZodVoid="ZodVoid",e.ZodArray="ZodArray",e.ZodObject="ZodObject",e.ZodUnion="ZodUnion",e.ZodDiscriminatedUnion="ZodDiscriminatedUnion",e.ZodIntersection="ZodIntersection",e.ZodTuple="ZodTuple",e.ZodRecord="ZodRecord",e.ZodMap="ZodMap",e.ZodSet="ZodSet",e.ZodFunction="ZodFunction",e.ZodLazy="ZodLazy",e.ZodLiteral="ZodLiteral",e.ZodEnum="ZodEnum",e.ZodEffects="ZodEffects",e.ZodNativeEnum="ZodNativeEnum",e.ZodOptional="ZodOptional",e.ZodNullable="ZodNullable",e.ZodDefault="ZodDefault",e.ZodCatch="ZodCatch",e.ZodPromise="ZodPromise",e.ZodBranded="ZodBranded",e.ZodPipeline="ZodPipeline",e.ZodReadonly="ZodReadonly"})(C||(C={}));jk=(e,t={message:`Input not instance of ${e.name}`})=>au(n=>n instanceof e,t),lu=kt.create,cu=It.create,Bk=yn.create,Uk=Nt.create,uu=Dt.create,zk=Mt.create,Jk=mn.create,Gk=Ft.create,Kk=Ht.create,Zk=bt.create,Wk=nt.create,Vk=Me.create,qk=pn.create,Yk=rt.create,Xk=ge.create,Qk=ge.strictCreate,eb=Lt.create,tb=Oo.create,nb=jt.create,rb=Ze.create,ob=Po.create,sb=gn.create,ib=hn.create,ab=Io.create,lb=Bt.create,cb=Ut.create,ub=zt.create,fb=Jt.create,db=wt.create,mb=Ce.create,pb=Ae.create,gb=We.create,hb=Ce.createWithPreprocess,yb=kr.create,kb=()=>lu().optional(),bb=()=>cu().optional(),wb=()=>uu().optional(),_b={string:(e=>kt.create({...e,coerce:!0})),number:(e=>It.create({...e,coerce:!0})),boolean:(e=>Dt.create({...e,coerce:!0})),bigint:(e=>Nt.create({...e,coerce:!0})),date:(e=>Mt.create({...e,coerce:!0}))},Sb=A});var h={};ce(h,{BRAND:()=>Hk,DIRTY:()=>Pt,EMPTY_PATH:()=>hk,INVALID:()=>A,NEVER:()=>Sb,OK:()=>oe,ParseStatus:()=>Q,Schema:()=>N,ZodAny:()=>bt,ZodArray:()=>rt,ZodBigInt:()=>Nt,ZodBoolean:()=>Dt,ZodBranded:()=>yr,ZodCatch:()=>Kt,ZodDate:()=>Mt,ZodDefault:()=>Gt,ZodDiscriminatedUnion:()=>Oo,ZodEffects:()=>Ce,ZodEnum:()=>zt,ZodError:()=>pe,ZodFirstPartyTypeKind:()=>C,ZodFunction:()=>Io,ZodIntersection:()=>jt,ZodIssueCode:()=>b,ZodLazy:()=>Bt,ZodLiteral:()=>Ut,ZodMap:()=>gn,ZodNaN:()=>yn,ZodNativeEnum:()=>Jt,ZodNever:()=>Me,ZodNull:()=>Ht,ZodNullable:()=>We,ZodNumber:()=>It,ZodObject:()=>ge,ZodOptional:()=>Ae,ZodParsedType:()=>S,ZodPipeline:()=>kr,ZodPromise:()=>wt,ZodReadonly:()=>Zt,ZodRecord:()=>Po,ZodSchema:()=>N,ZodSet:()=>hn,ZodString:()=>kt,ZodSymbol:()=>mn,ZodTransformer:()=>Ce,ZodTuple:()=>Ze,ZodType:()=>N,ZodUndefined:()=>Ft,ZodUnion:()=>Lt,ZodUnknown:()=>nt,ZodVoid:()=>pn,addIssueToContext:()=>_,any:()=>Zk,array:()=>Yk,bigint:()=>Uk,boolean:()=>uu,coerce:()=>_b,custom:()=>au,date:()=>zk,datetimeRegex:()=>su,defaultErrorMap:()=>et,discriminatedUnion:()=>tb,effect:()=>mb,enum:()=>ub,function:()=>ab,getErrorMap:()=>un,getParsedType:()=>Ke,instanceof:()=>jk,intersection:()=>nb,isAborted:()=>$o,isAsync:()=>fn,isDirty:()=>Co,isValid:()=>yt,late:()=>Lk,lazy:()=>lb,literal:()=>cb,makeIssue:()=>hr,map:()=>sb,nan:()=>Bk,nativeEnum:()=>fb,never:()=>Vk,null:()=>Kk,nullable:()=>gb,number:()=>cu,object:()=>Xk,objectUtil:()=>Oi,oboolean:()=>wb,onumber:()=>bb,optional:()=>pb,ostring:()=>kb,pipeline:()=>yb,preprocess:()=>hb,promise:()=>db,quotelessJson:()=>mk,record:()=>ob,set:()=>ib,setErrorMap:()=>gk,strictObject:()=>Qk,string:()=>lu,symbol:()=>Jk,transformer:()=>mb,tuple:()=>rb,undefined:()=>Gk,union:()=>eb,unknown:()=>Wk,util:()=>D,void:()=>qk});var Mi=k(()=>{Ao();Ii();Qc();gr();fu();Ro()});var Wt=k(()=>{Mi();Mi()});var _t,br=k(()=>{"use strict";Wt();_t=h.object({slug:h.string().min(1).max(64),description:h.string().max(255).optional(),match_command:h.string().min(1),priority:h.number().int().default(50),strip_ansi:h.boolean().default(!1),strip_lines_matching:h.array(h.string()).default([]),keep_failures:h.boolean().default(!1),strip_on_failure:h.boolean().default(!1),fold_passing:h.boolean().default(!1),fold_passing_threshold:h.number().int().positive().max(1e3).optional(),mask_abs_paths:h.boolean().default(!1),preserve_exact:h.boolean().default(!1),truncate_lines_at:h.number().int().positive().max(1e4).optional(),max_lines:h.number().int().positive().max(1e5).optional(),scale_with_level:h.boolean().default(!0),transform:h.string().max(64).optional(),on_empty:h.string().max(255).optional()})});function St(e){return JSON.stringify(e)+kn}function*No(e){let t=0;for(;;){let n=e.indexOf(kn,t);if(n<0)return;yield e.slice(t,n),t=n+1}}function wr(){return`${process.pid}-${Date.now()}-${Math.random().toString(36).slice(2,8)}`}var xb,vb,Eb,Tb,du,xO,vO,mu,kn,pu,Fi=k(()=>{"use strict";Wt();br();xb=h.object({id:h.string().min(1).max(64),op:h.literal("filter"),cmd:h.string().min(1).max(2048),plan:h.enum(["trial","smart","pro"]),allowed:h.array(h.string().min(1).max(64)).max(512).optional(),installId:h.string().min(1).max(64).optional()}),vb=h.object({id:h.string().min(1).max(64),op:h.literal("ping")}),Eb=h.object({id:h.string().min(1).max(64),op:h.literal("shutdown"),installId:h.string().min(1).max(64)}),Tb=h.object({id:h.string().min(1).max(64),op:h.literal("reload"),installId:h.string().min(1).max(64).optional()}),du=h.discriminatedUnion("op",[xb,vb,Eb,Tb]),xO=h.object({id:h.string(),ok:h.literal(!0),data:h.unknown()}),vO=h.object({id:h.string(),ok:h.literal(!1),err:h.string(),retryAfterMs:h.number().int().nonnegative().optional()}),mu=h.object({filter:_t.nullable(),cacheHit:h.boolean().optional()}),kn=`
|
|
4
|
-
`,pu=64*1024});import
|
|
3
|
+
var ik=Object.create;var Ci=Object.defineProperty;var ak=Object.getOwnPropertyDescriptor;var lk=Object.getOwnPropertyNames;var ck=Object.getPrototypeOf,uk=Object.prototype.hasOwnProperty;var gt=(e=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(e,{get:(t,n)=>(typeof require<"u"?require:t)[n]}):e)(function(e){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+e+'" is not supported')});var k=(e,t,n)=>()=>{if(n)throw n[0];try{return e&&(t=e(e=0)),t}catch(r){throw n=[r],r}};var _e=(e,t)=>()=>{try{return t||e((t={exports:{}}).exports,t),t.exports}catch(n){throw t=0,n}},ce=(e,t)=>{for(var n in t)Ci(e,n,{get:t[n],enumerable:!0})},fk=(e,t,n,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of lk(t))!uk.call(e,o)&&o!==n&&Ci(e,o,{get:()=>t[o],enumerable:!(r=ak(t,o))||r.enumerable});return e};var dk=(e,t,n)=>(n=e!=null?ik(ck(e)):{},fk(t||!e||!e.__esModule?Ci(n,"default",{value:e,enumerable:!0}):n,e));var D,Oi,S,Ke,hr=k(()=>{(function(e){e.assertEqual=o=>{};function t(o){}e.assertIs=t;function n(o){throw new Error}e.assertNever=n,e.arrayToEnum=o=>{let s={};for(let i of o)s[i]=i;return s},e.getValidEnumValues=o=>{let s=e.objectKeys(o).filter(a=>typeof o[o[a]]!="number"),i={};for(let a of s)i[a]=o[a];return e.objectValues(i)},e.objectValues=o=>e.objectKeys(o).map(function(s){return o[s]}),e.objectKeys=typeof Object.keys=="function"?o=>Object.keys(o):o=>{let s=[];for(let i in o)Object.prototype.hasOwnProperty.call(o,i)&&s.push(i);return s},e.find=(o,s)=>{for(let i of o)if(s(i))return i},e.isInteger=typeof Number.isInteger=="function"?o=>Number.isInteger(o):o=>typeof o=="number"&&Number.isFinite(o)&&Math.floor(o)===o;function r(o,s=" | "){return o.map(i=>typeof i=="string"?`'${i}'`:i).join(s)}e.joinValues=r,e.jsonStringifyReplacer=(o,s)=>typeof s=="bigint"?s.toString():s})(D||(D={}));(function(e){e.mergeShapes=(t,n)=>({...t,...n})})(Oi||(Oi={}));S=D.arrayToEnum(["string","nan","number","integer","float","boolean","date","bigint","symbol","function","undefined","null","array","object","unknown","promise","void","never","map","set"]),Ke=e=>{switch(typeof e){case"undefined":return S.undefined;case"string":return S.string;case"number":return Number.isNaN(e)?S.nan:S.number;case"boolean":return S.boolean;case"function":return S.function;case"bigint":return S.bigint;case"symbol":return S.symbol;case"object":return Array.isArray(e)?S.array:e===null?S.null:e.then&&typeof e.then=="function"&&e.catch&&typeof e.catch=="function"?S.promise:typeof Map<"u"&&e instanceof Map?S.map:typeof Set<"u"&&e instanceof Set?S.set:typeof Date<"u"&&e instanceof Date?S.date:S.object;default:return S.unknown}}});var b,mk,pe,Ro=k(()=>{hr();b=D.arrayToEnum(["invalid_type","invalid_literal","custom","invalid_union","invalid_union_discriminator","invalid_enum_value","unrecognized_keys","invalid_arguments","invalid_return_type","invalid_date","invalid_string","too_small","too_big","invalid_intersection_types","not_multiple_of","not_finite"]),mk=e=>JSON.stringify(e,null,2).replace(/"([^"]+)":/g,"$1:"),pe=class e extends Error{get errors(){return this.issues}constructor(t){super(),this.issues=[],this.addIssue=r=>{this.issues=[...this.issues,r]},this.addIssues=(r=[])=>{this.issues=[...this.issues,...r]};let n=new.target.prototype;Object.setPrototypeOf?Object.setPrototypeOf(this,n):this.__proto__=n,this.name="ZodError",this.issues=t}format(t){let n=t||function(s){return s.message},r={_errors:[]},o=s=>{for(let i of s.issues)if(i.code==="invalid_union")i.unionErrors.map(o);else if(i.code==="invalid_return_type")o(i.returnTypeError);else if(i.code==="invalid_arguments")o(i.argumentsError);else if(i.path.length===0)r._errors.push(n(i));else{let a=r,l=0;for(;l<i.path.length;){let c=i.path[l];l===i.path.length-1?(a[c]=a[c]||{_errors:[]},a[c]._errors.push(n(i))):a[c]=a[c]||{_errors:[]},a=a[c],l++}}};return o(this),r}static assert(t){if(!(t instanceof e))throw new Error(`Not a ZodError: ${t}`)}toString(){return this.message}get message(){return JSON.stringify(this.issues,D.jsonStringifyReplacer,2)}get isEmpty(){return this.issues.length===0}flatten(t=n=>n.message){let n={},r=[];for(let o of this.issues)if(o.path.length>0){let s=o.path[0];n[s]=n[s]||[],n[s].push(t(o))}else r.push(t(o));return{formErrors:r,fieldErrors:n}}get formErrors(){return this.flatten()}};pe.create=e=>new pe(e)});var pk,et,Pi=k(()=>{Ro();hr();pk=(e,t)=>{let n;switch(e.code){case b.invalid_type:e.received===S.undefined?n="Required":n=`Expected ${e.expected}, received ${e.received}`;break;case b.invalid_literal:n=`Invalid literal value, expected ${JSON.stringify(e.expected,D.jsonStringifyReplacer)}`;break;case b.unrecognized_keys:n=`Unrecognized key(s) in object: ${D.joinValues(e.keys,", ")}`;break;case b.invalid_union:n="Invalid input";break;case b.invalid_union_discriminator:n=`Invalid discriminator value. Expected ${D.joinValues(e.options)}`;break;case b.invalid_enum_value:n=`Invalid enum value. Expected ${D.joinValues(e.options)}, received '${e.received}'`;break;case b.invalid_arguments:n="Invalid function arguments";break;case b.invalid_return_type:n="Invalid function return type";break;case b.invalid_date:n="Invalid date";break;case b.invalid_string:typeof e.validation=="object"?"includes"in e.validation?(n=`Invalid input: must include "${e.validation.includes}"`,typeof e.validation.position=="number"&&(n=`${n} at one or more positions greater than or equal to ${e.validation.position}`)):"startsWith"in e.validation?n=`Invalid input: must start with "${e.validation.startsWith}"`:"endsWith"in e.validation?n=`Invalid input: must end with "${e.validation.endsWith}"`:D.assertNever(e.validation):e.validation!=="regex"?n=`Invalid ${e.validation}`:n="Invalid";break;case b.too_small:e.type==="array"?n=`Array must contain ${e.exact?"exactly":e.inclusive?"at least":"more than"} ${e.minimum} element(s)`:e.type==="string"?n=`String must contain ${e.exact?"exactly":e.inclusive?"at least":"over"} ${e.minimum} character(s)`:e.type==="number"?n=`Number must be ${e.exact?"exactly equal to ":e.inclusive?"greater than or equal to ":"greater than "}${e.minimum}`:e.type==="bigint"?n=`Number must be ${e.exact?"exactly equal to ":e.inclusive?"greater than or equal to ":"greater than "}${e.minimum}`:e.type==="date"?n=`Date must be ${e.exact?"exactly equal to ":e.inclusive?"greater than or equal to ":"greater than "}${new Date(Number(e.minimum))}`:n="Invalid input";break;case b.too_big:e.type==="array"?n=`Array must contain ${e.exact?"exactly":e.inclusive?"at most":"less than"} ${e.maximum} element(s)`:e.type==="string"?n=`String must contain ${e.exact?"exactly":e.inclusive?"at most":"under"} ${e.maximum} character(s)`:e.type==="number"?n=`Number must be ${e.exact?"exactly":e.inclusive?"less than or equal to":"less than"} ${e.maximum}`:e.type==="bigint"?n=`BigInt must be ${e.exact?"exactly":e.inclusive?"less than or equal to":"less than"} ${e.maximum}`:e.type==="date"?n=`Date must be ${e.exact?"exactly":e.inclusive?"smaller than or equal to":"smaller than"} ${new Date(Number(e.maximum))}`:n="Invalid input";break;case b.custom:n="Invalid input";break;case b.invalid_intersection_types:n="Intersection results could not be merged";break;case b.not_multiple_of:n=`Number must be a multiple of ${e.multipleOf}`;break;case b.not_finite:n="Number must be finite";break;default:n=t.defaultError,D.assertNever(e)}return{message:n}},et=pk});function hk(e){Xc=e}function un(){return Xc}var Xc,Ao=k(()=>{Pi();Xc=et});function _(e,t){let n=un(),r=gr({issueData:t,data:e.data,path:e.path,errorMaps:[e.common.contextualErrorMap,e.schemaErrorMap,n,n===et?void 0:et].filter(o=>!!o)});e.common.issues.push(r)}var gr,gk,Q,A,Pt,oe,$o,Co,yt,fn,Ii=k(()=>{Ao();Pi();gr=e=>{let{data:t,path:n,errorMaps:r,issueData:o}=e,s=[...n,...o.path||[]],i={...o,path:s};if(o.message!==void 0)return{...o,path:s,message:o.message};let a="",l=r.filter(c=>!!c).slice().reverse();for(let c of l)a=c(i,{data:t,defaultError:a}).message;return{...o,path:s,message:a}},gk=[];Q=class e{constructor(){this.value="valid"}dirty(){this.value==="valid"&&(this.value="dirty")}abort(){this.value!=="aborted"&&(this.value="aborted")}static mergeArray(t,n){let r=[];for(let o of n){if(o.status==="aborted")return A;o.status==="dirty"&&t.dirty(),r.push(o.value)}return{status:t.value,value:r}}static async mergeObjectAsync(t,n){let r=[];for(let o of n){let s=await o.key,i=await o.value;r.push({key:s,value:i})}return e.mergeObjectSync(t,r)}static mergeObjectSync(t,n){let r={};for(let o of n){let{key:s,value:i}=o;if(s.status==="aborted"||i.status==="aborted")return A;s.status==="dirty"&&t.dirty(),i.status==="dirty"&&t.dirty(),s.value!=="__proto__"&&(typeof i.value<"u"||o.alwaysSet)&&(r[s.value]=i.value)}return{status:t.value,value:r}}},A=Object.freeze({status:"aborted"}),Pt=e=>({status:"dirty",value:e}),oe=e=>({status:"valid",value:e}),$o=e=>e.status==="aborted",Co=e=>e.status==="dirty",yt=e=>e.status==="valid",fn=e=>typeof Promise<"u"&&e instanceof Promise});var Qc=k(()=>{});var v,eu=k(()=>{(function(e){e.errToObj=t=>typeof t=="string"?{message:t}:t||{},e.toString=t=>typeof t=="string"?t:t?.message})(v||(v={}))});function P(e){if(!e)return{};let{errorMap:t,invalid_type_error:n,required_error:r,description:o}=e;if(t&&(n||r))throw new Error(`Can't use "invalid_type_error" or "required_error" in conjunction with custom error map.`);return t?{errorMap:t,description:o}:{errorMap:(i,a)=>{let{message:l}=e;return i.code==="invalid_enum_value"?{message:l??a.defaultError}:typeof a.data>"u"?{message:l??r??a.defaultError}:i.code!=="invalid_type"?{message:a.defaultError}:{message:l??n??a.defaultError}},description:o}}function ou(e){let t="[0-5]\\d";e.precision?t=`${t}\\.\\d{${e.precision}}`:e.precision==null&&(t=`${t}(\\.\\d+)?`);let n=e.precision?"+":"?";return`([01]\\d|2[0-3]):[0-5]\\d(:${t})${n}`}function Ik(e){return new RegExp(`^${ou(e)}$`)}function su(e){let t=`${ru}T${ou(e)}`,n=[];return n.push(e.local?"Z?":"Z"),e.offset&&n.push("([+-]\\d{2}:?\\d{2})"),t=`${t}(${n.join("|")})`,new RegExp(`^${t}$`)}function Nk(e,t){return!!((t==="v4"||!t)&&Tk.test(e)||(t==="v6"||!t)&&Ak.test(e))}function Dk(e,t){if(!Sk.test(e))return!1;try{let[n]=e.split(".");if(!n)return!1;let r=n.replace(/-/g,"+").replace(/_/g,"/").padEnd(n.length+(4-n.length%4)%4,"="),o=JSON.parse(atob(r));return!(typeof o!="object"||o===null||"typ"in o&&o?.typ!=="JWT"||!o.alg||t&&o.alg!==t)}catch{return!1}}function Mk(e,t){return!!((t==="v4"||!t)&&Rk.test(e)||(t==="v6"||!t)&&$k.test(e))}function Fk(e,t){let n=(e.toString().split(".")[1]||"").length,r=(t.toString().split(".")[1]||"").length,o=n>r?n:r,s=Number.parseInt(e.toFixed(o).replace(".","")),i=Number.parseInt(t.toFixed(o).replace(".",""));return s%i/10**o}function dn(e){if(e instanceof he){let t={};for(let n in e.shape){let r=e.shape[n];t[n]=Ae.create(dn(r))}return new he({...e._def,shape:()=>t})}else return e instanceof rt?new rt({...e._def,type:dn(e.element)}):e instanceof Ae?Ae.create(dn(e.unwrap())):e instanceof We?We.create(dn(e.unwrap())):e instanceof Ze?Ze.create(e.items.map(t=>dn(t))):e}function Di(e,t){let n=Ke(e),r=Ke(t);if(e===t)return{valid:!0,data:e};if(n===S.object&&r===S.object){let o=D.objectKeys(t),s=D.objectKeys(e).filter(a=>o.indexOf(a)!==-1),i={...e,...t};for(let a of s){let l=Di(e[a],t[a]);if(!l.valid)return{valid:!1};i[a]=l.data}return{valid:!0,data:i}}else if(n===S.array&&r===S.array){if(e.length!==t.length)return{valid:!1};let o=[];for(let s=0;s<e.length;s++){let i=e[s],a=t[s],l=Di(i,a);if(!l.valid)return{valid:!1};o.push(l.data)}return{valid:!0,data:o}}else return n===S.date&&r===S.date&&+e==+t?{valid:!0,data:e}:{valid:!1}}function iu(e,t){return new zt({values:e,typeName:C.ZodEnum,...P(t)})}function nu(e,t){let n=typeof e=="function"?e(t):typeof e=="string"?{message:e}:e;return typeof n=="string"?{message:n}:n}function au(e,t={},n){return e?bt.create().superRefine((r,o)=>{let s=e(r);if(s instanceof Promise)return s.then(i=>{if(!i){let a=nu(t,r),l=a.fatal??n??!0;o.addIssue({code:"custom",...a,fatal:l})}});if(!s){let i=nu(t,r),a=i.fatal??n??!0;o.addIssue({code:"custom",...i,fatal:a})}}):bt.create()}var $e,tu,N,yk,kk,bk,wk,_k,Sk,xk,vk,Ek,Ni,Tk,Rk,Ak,$k,Ck,Ok,ru,Pk,kt,It,Nt,Dt,Mt,mn,Ft,Ht,bt,nt,Me,pn,rt,he,Lt,tt,Oo,jt,Ze,Po,hn,gn,Io,Bt,Ut,zt,Jt,wt,Ce,Ae,We,Gt,Kt,yn,Hk,yr,kr,Zt,Lk,C,jk,lu,cu,Bk,Uk,uu,zk,Jk,Gk,Kk,Zk,Wk,Vk,qk,Yk,Xk,Qk,eb,tb,nb,rb,ob,sb,ib,ab,lb,cb,ub,fb,db,mb,pb,hb,gb,yb,kb,bb,wb,_b,Sb,fu=k(()=>{Ro();Ao();eu();Ii();hr();$e=class{constructor(t,n,r,o){this._cachedPath=[],this.parent=t,this.data=n,this._path=r,this._key=o}get path(){return this._cachedPath.length||(Array.isArray(this._key)?this._cachedPath.push(...this._path,...this._key):this._cachedPath.push(...this._path,this._key)),this._cachedPath}},tu=(e,t)=>{if(yt(t))return{success:!0,data:t.value};if(!e.common.issues.length)throw new Error("Validation failed but no issues detected.");return{success:!1,get error(){if(this._error)return this._error;let n=new pe(e.common.issues);return this._error=n,this._error}}};N=class{get description(){return this._def.description}_getType(t){return Ke(t.data)}_getOrReturnCtx(t,n){return n||{common:t.parent.common,data:t.data,parsedType:Ke(t.data),schemaErrorMap:this._def.errorMap,path:t.path,parent:t.parent}}_processInputParams(t){return{status:new Q,ctx:{common:t.parent.common,data:t.data,parsedType:Ke(t.data),schemaErrorMap:this._def.errorMap,path:t.path,parent:t.parent}}}_parseSync(t){let n=this._parse(t);if(fn(n))throw new Error("Synchronous parse encountered promise.");return n}_parseAsync(t){let n=this._parse(t);return Promise.resolve(n)}parse(t,n){let r=this.safeParse(t,n);if(r.success)return r.data;throw r.error}safeParse(t,n){let r={common:{issues:[],async:n?.async??!1,contextualErrorMap:n?.errorMap},path:n?.path||[],schemaErrorMap:this._def.errorMap,parent:null,data:t,parsedType:Ke(t)},o=this._parseSync({data:t,path:r.path,parent:r});return tu(r,o)}"~validate"(t){let n={common:{issues:[],async:!!this["~standard"].async},path:[],schemaErrorMap:this._def.errorMap,parent:null,data:t,parsedType:Ke(t)};if(!this["~standard"].async)try{let r=this._parseSync({data:t,path:[],parent:n});return yt(r)?{value:r.value}:{issues:n.common.issues}}catch(r){r?.message?.toLowerCase()?.includes("encountered")&&(this["~standard"].async=!0),n.common={issues:[],async:!0}}return this._parseAsync({data:t,path:[],parent:n}).then(r=>yt(r)?{value:r.value}:{issues:n.common.issues})}async parseAsync(t,n){let r=await this.safeParseAsync(t,n);if(r.success)return r.data;throw r.error}async safeParseAsync(t,n){let r={common:{issues:[],contextualErrorMap:n?.errorMap,async:!0},path:n?.path||[],schemaErrorMap:this._def.errorMap,parent:null,data:t,parsedType:Ke(t)},o=this._parse({data:t,path:r.path,parent:r}),s=await(fn(o)?o:Promise.resolve(o));return tu(r,s)}refine(t,n){let r=o=>typeof n=="string"||typeof n>"u"?{message:n}:typeof n=="function"?n(o):n;return this._refinement((o,s)=>{let i=t(o),a=()=>s.addIssue({code:b.custom,...r(o)});return typeof Promise<"u"&&i instanceof Promise?i.then(l=>l?!0:(a(),!1)):i?!0:(a(),!1)})}refinement(t,n){return this._refinement((r,o)=>t(r)?!0:(o.addIssue(typeof n=="function"?n(r,o):n),!1))}_refinement(t){return new Ce({schema:this,typeName:C.ZodEffects,effect:{type:"refinement",refinement:t}})}superRefine(t){return this._refinement(t)}constructor(t){this.spa=this.safeParseAsync,this._def=t,this.parse=this.parse.bind(this),this.safeParse=this.safeParse.bind(this),this.parseAsync=this.parseAsync.bind(this),this.safeParseAsync=this.safeParseAsync.bind(this),this.spa=this.spa.bind(this),this.refine=this.refine.bind(this),this.refinement=this.refinement.bind(this),this.superRefine=this.superRefine.bind(this),this.optional=this.optional.bind(this),this.nullable=this.nullable.bind(this),this.nullish=this.nullish.bind(this),this.array=this.array.bind(this),this.promise=this.promise.bind(this),this.or=this.or.bind(this),this.and=this.and.bind(this),this.transform=this.transform.bind(this),this.brand=this.brand.bind(this),this.default=this.default.bind(this),this.catch=this.catch.bind(this),this.describe=this.describe.bind(this),this.pipe=this.pipe.bind(this),this.readonly=this.readonly.bind(this),this.isNullable=this.isNullable.bind(this),this.isOptional=this.isOptional.bind(this),this["~standard"]={version:1,vendor:"zod",validate:n=>this["~validate"](n)}}optional(){return Ae.create(this,this._def)}nullable(){return We.create(this,this._def)}nullish(){return this.nullable().optional()}array(){return rt.create(this)}promise(){return wt.create(this,this._def)}or(t){return Lt.create([this,t],this._def)}and(t){return jt.create(this,t,this._def)}transform(t){return new Ce({...P(this._def),schema:this,typeName:C.ZodEffects,effect:{type:"transform",transform:t}})}default(t){let n=typeof t=="function"?t:()=>t;return new Gt({...P(this._def),innerType:this,defaultValue:n,typeName:C.ZodDefault})}brand(){return new yr({typeName:C.ZodBranded,type:this,...P(this._def)})}catch(t){let n=typeof t=="function"?t:()=>t;return new Kt({...P(this._def),innerType:this,catchValue:n,typeName:C.ZodCatch})}describe(t){let n=this.constructor;return new n({...this._def,description:t})}pipe(t){return kr.create(this,t)}readonly(){return Zt.create(this)}isOptional(){return this.safeParse(void 0).success}isNullable(){return this.safeParse(null).success}},yk=/^c[^\s-]{8,}$/i,kk=/^[0-9a-z]+$/,bk=/^[0-9A-HJKMNP-TV-Z]{26}$/i,wk=/^[0-9a-fA-F]{8}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{12}$/i,_k=/^[a-z0-9_-]{21}$/i,Sk=/^[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]*$/,xk=/^[-+]?P(?!$)(?:(?:[-+]?\d+Y)|(?:[-+]?\d+[.,]\d+Y$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:(?:[-+]?\d+W)|(?:[-+]?\d+[.,]\d+W$))?(?:(?:[-+]?\d+D)|(?:[-+]?\d+[.,]\d+D$))?(?:T(?=[\d+-])(?:(?:[-+]?\d+H)|(?:[-+]?\d+[.,]\d+H$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:[-+]?\d+(?:[.,]\d+)?S)?)??$/,vk=/^(?!\.)(?!.*\.\.)([A-Z0-9_'+\-\.]*)[A-Z0-9_+-]@([A-Z0-9][A-Z0-9\-]*\.)+[A-Z]{2,}$/i,Ek="^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$",Tk=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/,Rk=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\/(3[0-2]|[12]?[0-9])$/,Ak=/^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))$/,$k=/^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/,Ck=/^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/,Ok=/^([0-9a-zA-Z-_]{4})*(([0-9a-zA-Z-_]{2}(==)?)|([0-9a-zA-Z-_]{3}(=)?))?$/,ru="((\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-((0[13578]|1[02])-(0[1-9]|[12]\\d|3[01])|(0[469]|11)-(0[1-9]|[12]\\d|30)|(02)-(0[1-9]|1\\d|2[0-8])))",Pk=new RegExp(`^${ru}$`);kt=class e extends N{_parse(t){if(this._def.coerce&&(t.data=String(t.data)),this._getType(t)!==S.string){let s=this._getOrReturnCtx(t);return _(s,{code:b.invalid_type,expected:S.string,received:s.parsedType}),A}let r=new Q,o;for(let s of this._def.checks)if(s.kind==="min")t.data.length<s.value&&(o=this._getOrReturnCtx(t,o),_(o,{code:b.too_small,minimum:s.value,type:"string",inclusive:!0,exact:!1,message:s.message}),r.dirty());else if(s.kind==="max")t.data.length>s.value&&(o=this._getOrReturnCtx(t,o),_(o,{code:b.too_big,maximum:s.value,type:"string",inclusive:!0,exact:!1,message:s.message}),r.dirty());else if(s.kind==="length"){let i=t.data.length>s.value,a=t.data.length<s.value;(i||a)&&(o=this._getOrReturnCtx(t,o),i?_(o,{code:b.too_big,maximum:s.value,type:"string",inclusive:!0,exact:!0,message:s.message}):a&&_(o,{code:b.too_small,minimum:s.value,type:"string",inclusive:!0,exact:!0,message:s.message}),r.dirty())}else if(s.kind==="email")vk.test(t.data)||(o=this._getOrReturnCtx(t,o),_(o,{validation:"email",code:b.invalid_string,message:s.message}),r.dirty());else if(s.kind==="emoji")Ni||(Ni=new RegExp(Ek,"u")),Ni.test(t.data)||(o=this._getOrReturnCtx(t,o),_(o,{validation:"emoji",code:b.invalid_string,message:s.message}),r.dirty());else if(s.kind==="uuid")wk.test(t.data)||(o=this._getOrReturnCtx(t,o),_(o,{validation:"uuid",code:b.invalid_string,message:s.message}),r.dirty());else if(s.kind==="nanoid")_k.test(t.data)||(o=this._getOrReturnCtx(t,o),_(o,{validation:"nanoid",code:b.invalid_string,message:s.message}),r.dirty());else if(s.kind==="cuid")yk.test(t.data)||(o=this._getOrReturnCtx(t,o),_(o,{validation:"cuid",code:b.invalid_string,message:s.message}),r.dirty());else if(s.kind==="cuid2")kk.test(t.data)||(o=this._getOrReturnCtx(t,o),_(o,{validation:"cuid2",code:b.invalid_string,message:s.message}),r.dirty());else if(s.kind==="ulid")bk.test(t.data)||(o=this._getOrReturnCtx(t,o),_(o,{validation:"ulid",code:b.invalid_string,message:s.message}),r.dirty());else if(s.kind==="url")try{new URL(t.data)}catch{o=this._getOrReturnCtx(t,o),_(o,{validation:"url",code:b.invalid_string,message:s.message}),r.dirty()}else s.kind==="regex"?(s.regex.lastIndex=0,s.regex.test(t.data)||(o=this._getOrReturnCtx(t,o),_(o,{validation:"regex",code:b.invalid_string,message:s.message}),r.dirty())):s.kind==="trim"?t.data=t.data.trim():s.kind==="includes"?t.data.includes(s.value,s.position)||(o=this._getOrReturnCtx(t,o),_(o,{code:b.invalid_string,validation:{includes:s.value,position:s.position},message:s.message}),r.dirty()):s.kind==="toLowerCase"?t.data=t.data.toLowerCase():s.kind==="toUpperCase"?t.data=t.data.toUpperCase():s.kind==="startsWith"?t.data.startsWith(s.value)||(o=this._getOrReturnCtx(t,o),_(o,{code:b.invalid_string,validation:{startsWith:s.value},message:s.message}),r.dirty()):s.kind==="endsWith"?t.data.endsWith(s.value)||(o=this._getOrReturnCtx(t,o),_(o,{code:b.invalid_string,validation:{endsWith:s.value},message:s.message}),r.dirty()):s.kind==="datetime"?su(s).test(t.data)||(o=this._getOrReturnCtx(t,o),_(o,{code:b.invalid_string,validation:"datetime",message:s.message}),r.dirty()):s.kind==="date"?Pk.test(t.data)||(o=this._getOrReturnCtx(t,o),_(o,{code:b.invalid_string,validation:"date",message:s.message}),r.dirty()):s.kind==="time"?Ik(s).test(t.data)||(o=this._getOrReturnCtx(t,o),_(o,{code:b.invalid_string,validation:"time",message:s.message}),r.dirty()):s.kind==="duration"?xk.test(t.data)||(o=this._getOrReturnCtx(t,o),_(o,{validation:"duration",code:b.invalid_string,message:s.message}),r.dirty()):s.kind==="ip"?Nk(t.data,s.version)||(o=this._getOrReturnCtx(t,o),_(o,{validation:"ip",code:b.invalid_string,message:s.message}),r.dirty()):s.kind==="jwt"?Dk(t.data,s.alg)||(o=this._getOrReturnCtx(t,o),_(o,{validation:"jwt",code:b.invalid_string,message:s.message}),r.dirty()):s.kind==="cidr"?Mk(t.data,s.version)||(o=this._getOrReturnCtx(t,o),_(o,{validation:"cidr",code:b.invalid_string,message:s.message}),r.dirty()):s.kind==="base64"?Ck.test(t.data)||(o=this._getOrReturnCtx(t,o),_(o,{validation:"base64",code:b.invalid_string,message:s.message}),r.dirty()):s.kind==="base64url"?Ok.test(t.data)||(o=this._getOrReturnCtx(t,o),_(o,{validation:"base64url",code:b.invalid_string,message:s.message}),r.dirty()):D.assertNever(s);return{status:r.value,value:t.data}}_regex(t,n,r){return this.refinement(o=>t.test(o),{validation:n,code:b.invalid_string,...v.errToObj(r)})}_addCheck(t){return new e({...this._def,checks:[...this._def.checks,t]})}email(t){return this._addCheck({kind:"email",...v.errToObj(t)})}url(t){return this._addCheck({kind:"url",...v.errToObj(t)})}emoji(t){return this._addCheck({kind:"emoji",...v.errToObj(t)})}uuid(t){return this._addCheck({kind:"uuid",...v.errToObj(t)})}nanoid(t){return this._addCheck({kind:"nanoid",...v.errToObj(t)})}cuid(t){return this._addCheck({kind:"cuid",...v.errToObj(t)})}cuid2(t){return this._addCheck({kind:"cuid2",...v.errToObj(t)})}ulid(t){return this._addCheck({kind:"ulid",...v.errToObj(t)})}base64(t){return this._addCheck({kind:"base64",...v.errToObj(t)})}base64url(t){return this._addCheck({kind:"base64url",...v.errToObj(t)})}jwt(t){return this._addCheck({kind:"jwt",...v.errToObj(t)})}ip(t){return this._addCheck({kind:"ip",...v.errToObj(t)})}cidr(t){return this._addCheck({kind:"cidr",...v.errToObj(t)})}datetime(t){return typeof t=="string"?this._addCheck({kind:"datetime",precision:null,offset:!1,local:!1,message:t}):this._addCheck({kind:"datetime",precision:typeof t?.precision>"u"?null:t?.precision,offset:t?.offset??!1,local:t?.local??!1,...v.errToObj(t?.message)})}date(t){return this._addCheck({kind:"date",message:t})}time(t){return typeof t=="string"?this._addCheck({kind:"time",precision:null,message:t}):this._addCheck({kind:"time",precision:typeof t?.precision>"u"?null:t?.precision,...v.errToObj(t?.message)})}duration(t){return this._addCheck({kind:"duration",...v.errToObj(t)})}regex(t,n){return this._addCheck({kind:"regex",regex:t,...v.errToObj(n)})}includes(t,n){return this._addCheck({kind:"includes",value:t,position:n?.position,...v.errToObj(n?.message)})}startsWith(t,n){return this._addCheck({kind:"startsWith",value:t,...v.errToObj(n)})}endsWith(t,n){return this._addCheck({kind:"endsWith",value:t,...v.errToObj(n)})}min(t,n){return this._addCheck({kind:"min",value:t,...v.errToObj(n)})}max(t,n){return this._addCheck({kind:"max",value:t,...v.errToObj(n)})}length(t,n){return this._addCheck({kind:"length",value:t,...v.errToObj(n)})}nonempty(t){return this.min(1,v.errToObj(t))}trim(){return new e({...this._def,checks:[...this._def.checks,{kind:"trim"}]})}toLowerCase(){return new e({...this._def,checks:[...this._def.checks,{kind:"toLowerCase"}]})}toUpperCase(){return new e({...this._def,checks:[...this._def.checks,{kind:"toUpperCase"}]})}get isDatetime(){return!!this._def.checks.find(t=>t.kind==="datetime")}get isDate(){return!!this._def.checks.find(t=>t.kind==="date")}get isTime(){return!!this._def.checks.find(t=>t.kind==="time")}get isDuration(){return!!this._def.checks.find(t=>t.kind==="duration")}get isEmail(){return!!this._def.checks.find(t=>t.kind==="email")}get isURL(){return!!this._def.checks.find(t=>t.kind==="url")}get isEmoji(){return!!this._def.checks.find(t=>t.kind==="emoji")}get isUUID(){return!!this._def.checks.find(t=>t.kind==="uuid")}get isNANOID(){return!!this._def.checks.find(t=>t.kind==="nanoid")}get isCUID(){return!!this._def.checks.find(t=>t.kind==="cuid")}get isCUID2(){return!!this._def.checks.find(t=>t.kind==="cuid2")}get isULID(){return!!this._def.checks.find(t=>t.kind==="ulid")}get isIP(){return!!this._def.checks.find(t=>t.kind==="ip")}get isCIDR(){return!!this._def.checks.find(t=>t.kind==="cidr")}get isBase64(){return!!this._def.checks.find(t=>t.kind==="base64")}get isBase64url(){return!!this._def.checks.find(t=>t.kind==="base64url")}get minLength(){let t=null;for(let n of this._def.checks)n.kind==="min"&&(t===null||n.value>t)&&(t=n.value);return t}get maxLength(){let t=null;for(let n of this._def.checks)n.kind==="max"&&(t===null||n.value<t)&&(t=n.value);return t}};kt.create=e=>new kt({checks:[],typeName:C.ZodString,coerce:e?.coerce??!1,...P(e)});It=class e extends N{constructor(){super(...arguments),this.min=this.gte,this.max=this.lte,this.step=this.multipleOf}_parse(t){if(this._def.coerce&&(t.data=Number(t.data)),this._getType(t)!==S.number){let s=this._getOrReturnCtx(t);return _(s,{code:b.invalid_type,expected:S.number,received:s.parsedType}),A}let r,o=new Q;for(let s of this._def.checks)s.kind==="int"?D.isInteger(t.data)||(r=this._getOrReturnCtx(t,r),_(r,{code:b.invalid_type,expected:"integer",received:"float",message:s.message}),o.dirty()):s.kind==="min"?(s.inclusive?t.data<s.value:t.data<=s.value)&&(r=this._getOrReturnCtx(t,r),_(r,{code:b.too_small,minimum:s.value,type:"number",inclusive:s.inclusive,exact:!1,message:s.message}),o.dirty()):s.kind==="max"?(s.inclusive?t.data>s.value:t.data>=s.value)&&(r=this._getOrReturnCtx(t,r),_(r,{code:b.too_big,maximum:s.value,type:"number",inclusive:s.inclusive,exact:!1,message:s.message}),o.dirty()):s.kind==="multipleOf"?Fk(t.data,s.value)!==0&&(r=this._getOrReturnCtx(t,r),_(r,{code:b.not_multiple_of,multipleOf:s.value,message:s.message}),o.dirty()):s.kind==="finite"?Number.isFinite(t.data)||(r=this._getOrReturnCtx(t,r),_(r,{code:b.not_finite,message:s.message}),o.dirty()):D.assertNever(s);return{status:o.value,value:t.data}}gte(t,n){return this.setLimit("min",t,!0,v.toString(n))}gt(t,n){return this.setLimit("min",t,!1,v.toString(n))}lte(t,n){return this.setLimit("max",t,!0,v.toString(n))}lt(t,n){return this.setLimit("max",t,!1,v.toString(n))}setLimit(t,n,r,o){return new e({...this._def,checks:[...this._def.checks,{kind:t,value:n,inclusive:r,message:v.toString(o)}]})}_addCheck(t){return new e({...this._def,checks:[...this._def.checks,t]})}int(t){return this._addCheck({kind:"int",message:v.toString(t)})}positive(t){return this._addCheck({kind:"min",value:0,inclusive:!1,message:v.toString(t)})}negative(t){return this._addCheck({kind:"max",value:0,inclusive:!1,message:v.toString(t)})}nonpositive(t){return this._addCheck({kind:"max",value:0,inclusive:!0,message:v.toString(t)})}nonnegative(t){return this._addCheck({kind:"min",value:0,inclusive:!0,message:v.toString(t)})}multipleOf(t,n){return this._addCheck({kind:"multipleOf",value:t,message:v.toString(n)})}finite(t){return this._addCheck({kind:"finite",message:v.toString(t)})}safe(t){return this._addCheck({kind:"min",inclusive:!0,value:Number.MIN_SAFE_INTEGER,message:v.toString(t)})._addCheck({kind:"max",inclusive:!0,value:Number.MAX_SAFE_INTEGER,message:v.toString(t)})}get minValue(){let t=null;for(let n of this._def.checks)n.kind==="min"&&(t===null||n.value>t)&&(t=n.value);return t}get maxValue(){let t=null;for(let n of this._def.checks)n.kind==="max"&&(t===null||n.value<t)&&(t=n.value);return t}get isInt(){return!!this._def.checks.find(t=>t.kind==="int"||t.kind==="multipleOf"&&D.isInteger(t.value))}get isFinite(){let t=null,n=null;for(let r of this._def.checks){if(r.kind==="finite"||r.kind==="int"||r.kind==="multipleOf")return!0;r.kind==="min"?(n===null||r.value>n)&&(n=r.value):r.kind==="max"&&(t===null||r.value<t)&&(t=r.value)}return Number.isFinite(n)&&Number.isFinite(t)}};It.create=e=>new It({checks:[],typeName:C.ZodNumber,coerce:e?.coerce||!1,...P(e)});Nt=class e extends N{constructor(){super(...arguments),this.min=this.gte,this.max=this.lte}_parse(t){if(this._def.coerce)try{t.data=BigInt(t.data)}catch{return this._getInvalidInput(t)}if(this._getType(t)!==S.bigint)return this._getInvalidInput(t);let r,o=new Q;for(let s of this._def.checks)s.kind==="min"?(s.inclusive?t.data<s.value:t.data<=s.value)&&(r=this._getOrReturnCtx(t,r),_(r,{code:b.too_small,type:"bigint",minimum:s.value,inclusive:s.inclusive,message:s.message}),o.dirty()):s.kind==="max"?(s.inclusive?t.data>s.value:t.data>=s.value)&&(r=this._getOrReturnCtx(t,r),_(r,{code:b.too_big,type:"bigint",maximum:s.value,inclusive:s.inclusive,message:s.message}),o.dirty()):s.kind==="multipleOf"?t.data%s.value!==BigInt(0)&&(r=this._getOrReturnCtx(t,r),_(r,{code:b.not_multiple_of,multipleOf:s.value,message:s.message}),o.dirty()):D.assertNever(s);return{status:o.value,value:t.data}}_getInvalidInput(t){let n=this._getOrReturnCtx(t);return _(n,{code:b.invalid_type,expected:S.bigint,received:n.parsedType}),A}gte(t,n){return this.setLimit("min",t,!0,v.toString(n))}gt(t,n){return this.setLimit("min",t,!1,v.toString(n))}lte(t,n){return this.setLimit("max",t,!0,v.toString(n))}lt(t,n){return this.setLimit("max",t,!1,v.toString(n))}setLimit(t,n,r,o){return new e({...this._def,checks:[...this._def.checks,{kind:t,value:n,inclusive:r,message:v.toString(o)}]})}_addCheck(t){return new e({...this._def,checks:[...this._def.checks,t]})}positive(t){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!1,message:v.toString(t)})}negative(t){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!1,message:v.toString(t)})}nonpositive(t){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!0,message:v.toString(t)})}nonnegative(t){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!0,message:v.toString(t)})}multipleOf(t,n){return this._addCheck({kind:"multipleOf",value:t,message:v.toString(n)})}get minValue(){let t=null;for(let n of this._def.checks)n.kind==="min"&&(t===null||n.value>t)&&(t=n.value);return t}get maxValue(){let t=null;for(let n of this._def.checks)n.kind==="max"&&(t===null||n.value<t)&&(t=n.value);return t}};Nt.create=e=>new Nt({checks:[],typeName:C.ZodBigInt,coerce:e?.coerce??!1,...P(e)});Dt=class extends N{_parse(t){if(this._def.coerce&&(t.data=!!t.data),this._getType(t)!==S.boolean){let r=this._getOrReturnCtx(t);return _(r,{code:b.invalid_type,expected:S.boolean,received:r.parsedType}),A}return oe(t.data)}};Dt.create=e=>new Dt({typeName:C.ZodBoolean,coerce:e?.coerce||!1,...P(e)});Mt=class e extends N{_parse(t){if(this._def.coerce&&(t.data=new Date(t.data)),this._getType(t)!==S.date){let s=this._getOrReturnCtx(t);return _(s,{code:b.invalid_type,expected:S.date,received:s.parsedType}),A}if(Number.isNaN(t.data.getTime())){let s=this._getOrReturnCtx(t);return _(s,{code:b.invalid_date}),A}let r=new Q,o;for(let s of this._def.checks)s.kind==="min"?t.data.getTime()<s.value&&(o=this._getOrReturnCtx(t,o),_(o,{code:b.too_small,message:s.message,inclusive:!0,exact:!1,minimum:s.value,type:"date"}),r.dirty()):s.kind==="max"?t.data.getTime()>s.value&&(o=this._getOrReturnCtx(t,o),_(o,{code:b.too_big,message:s.message,inclusive:!0,exact:!1,maximum:s.value,type:"date"}),r.dirty()):D.assertNever(s);return{status:r.value,value:new Date(t.data.getTime())}}_addCheck(t){return new e({...this._def,checks:[...this._def.checks,t]})}min(t,n){return this._addCheck({kind:"min",value:t.getTime(),message:v.toString(n)})}max(t,n){return this._addCheck({kind:"max",value:t.getTime(),message:v.toString(n)})}get minDate(){let t=null;for(let n of this._def.checks)n.kind==="min"&&(t===null||n.value>t)&&(t=n.value);return t!=null?new Date(t):null}get maxDate(){let t=null;for(let n of this._def.checks)n.kind==="max"&&(t===null||n.value<t)&&(t=n.value);return t!=null?new Date(t):null}};Mt.create=e=>new Mt({checks:[],coerce:e?.coerce||!1,typeName:C.ZodDate,...P(e)});mn=class extends N{_parse(t){if(this._getType(t)!==S.symbol){let r=this._getOrReturnCtx(t);return _(r,{code:b.invalid_type,expected:S.symbol,received:r.parsedType}),A}return oe(t.data)}};mn.create=e=>new mn({typeName:C.ZodSymbol,...P(e)});Ft=class extends N{_parse(t){if(this._getType(t)!==S.undefined){let r=this._getOrReturnCtx(t);return _(r,{code:b.invalid_type,expected:S.undefined,received:r.parsedType}),A}return oe(t.data)}};Ft.create=e=>new Ft({typeName:C.ZodUndefined,...P(e)});Ht=class extends N{_parse(t){if(this._getType(t)!==S.null){let r=this._getOrReturnCtx(t);return _(r,{code:b.invalid_type,expected:S.null,received:r.parsedType}),A}return oe(t.data)}};Ht.create=e=>new Ht({typeName:C.ZodNull,...P(e)});bt=class extends N{constructor(){super(...arguments),this._any=!0}_parse(t){return oe(t.data)}};bt.create=e=>new bt({typeName:C.ZodAny,...P(e)});nt=class extends N{constructor(){super(...arguments),this._unknown=!0}_parse(t){return oe(t.data)}};nt.create=e=>new nt({typeName:C.ZodUnknown,...P(e)});Me=class extends N{_parse(t){let n=this._getOrReturnCtx(t);return _(n,{code:b.invalid_type,expected:S.never,received:n.parsedType}),A}};Me.create=e=>new Me({typeName:C.ZodNever,...P(e)});pn=class extends N{_parse(t){if(this._getType(t)!==S.undefined){let r=this._getOrReturnCtx(t);return _(r,{code:b.invalid_type,expected:S.void,received:r.parsedType}),A}return oe(t.data)}};pn.create=e=>new pn({typeName:C.ZodVoid,...P(e)});rt=class e extends N{_parse(t){let{ctx:n,status:r}=this._processInputParams(t),o=this._def;if(n.parsedType!==S.array)return _(n,{code:b.invalid_type,expected:S.array,received:n.parsedType}),A;if(o.exactLength!==null){let i=n.data.length>o.exactLength.value,a=n.data.length<o.exactLength.value;(i||a)&&(_(n,{code:i?b.too_big:b.too_small,minimum:a?o.exactLength.value:void 0,maximum:i?o.exactLength.value:void 0,type:"array",inclusive:!0,exact:!0,message:o.exactLength.message}),r.dirty())}if(o.minLength!==null&&n.data.length<o.minLength.value&&(_(n,{code:b.too_small,minimum:o.minLength.value,type:"array",inclusive:!0,exact:!1,message:o.minLength.message}),r.dirty()),o.maxLength!==null&&n.data.length>o.maxLength.value&&(_(n,{code:b.too_big,maximum:o.maxLength.value,type:"array",inclusive:!0,exact:!1,message:o.maxLength.message}),r.dirty()),n.common.async)return Promise.all([...n.data].map((i,a)=>o.type._parseAsync(new $e(n,i,n.path,a)))).then(i=>Q.mergeArray(r,i));let s=[...n.data].map((i,a)=>o.type._parseSync(new $e(n,i,n.path,a)));return Q.mergeArray(r,s)}get element(){return this._def.type}min(t,n){return new e({...this._def,minLength:{value:t,message:v.toString(n)}})}max(t,n){return new e({...this._def,maxLength:{value:t,message:v.toString(n)}})}length(t,n){return new e({...this._def,exactLength:{value:t,message:v.toString(n)}})}nonempty(t){return this.min(1,t)}};rt.create=(e,t)=>new rt({type:e,minLength:null,maxLength:null,exactLength:null,typeName:C.ZodArray,...P(t)});he=class e extends N{constructor(){super(...arguments),this._cached=null,this.nonstrict=this.passthrough,this.augment=this.extend}_getCached(){if(this._cached!==null)return this._cached;let t=this._def.shape(),n=D.objectKeys(t);return this._cached={shape:t,keys:n},this._cached}_parse(t){if(this._getType(t)!==S.object){let c=this._getOrReturnCtx(t);return _(c,{code:b.invalid_type,expected:S.object,received:c.parsedType}),A}let{status:r,ctx:o}=this._processInputParams(t),{shape:s,keys:i}=this._getCached(),a=[];if(!(this._def.catchall instanceof Me&&this._def.unknownKeys==="strip"))for(let c in o.data)i.includes(c)||a.push(c);let l=[];for(let c of i){let u=s[c],f=o.data[c];l.push({key:{status:"valid",value:c},value:u._parse(new $e(o,f,o.path,c)),alwaysSet:c in o.data})}if(this._def.catchall instanceof Me){let c=this._def.unknownKeys;if(c==="passthrough")for(let u of a)l.push({key:{status:"valid",value:u},value:{status:"valid",value:o.data[u]}});else if(c==="strict")a.length>0&&(_(o,{code:b.unrecognized_keys,keys:a}),r.dirty());else if(c!=="strip")throw new Error("Internal ZodObject error: invalid unknownKeys value.")}else{let c=this._def.catchall;for(let u of a){let f=o.data[u];l.push({key:{status:"valid",value:u},value:c._parse(new $e(o,f,o.path,u)),alwaysSet:u in o.data})}}return o.common.async?Promise.resolve().then(async()=>{let c=[];for(let u of l){let f=await u.key,d=await u.value;c.push({key:f,value:d,alwaysSet:u.alwaysSet})}return c}).then(c=>Q.mergeObjectSync(r,c)):Q.mergeObjectSync(r,l)}get shape(){return this._def.shape()}strict(t){return v.errToObj,new e({...this._def,unknownKeys:"strict",...t!==void 0?{errorMap:(n,r)=>{let o=this._def.errorMap?.(n,r).message??r.defaultError;return n.code==="unrecognized_keys"?{message:v.errToObj(t).message??o}:{message:o}}}:{}})}strip(){return new e({...this._def,unknownKeys:"strip"})}passthrough(){return new e({...this._def,unknownKeys:"passthrough"})}extend(t){return new e({...this._def,shape:()=>({...this._def.shape(),...t})})}merge(t){return new e({unknownKeys:t._def.unknownKeys,catchall:t._def.catchall,shape:()=>({...this._def.shape(),...t._def.shape()}),typeName:C.ZodObject})}setKey(t,n){return this.augment({[t]:n})}catchall(t){return new e({...this._def,catchall:t})}pick(t){let n={};for(let r of D.objectKeys(t))t[r]&&this.shape[r]&&(n[r]=this.shape[r]);return new e({...this._def,shape:()=>n})}omit(t){let n={};for(let r of D.objectKeys(this.shape))t[r]||(n[r]=this.shape[r]);return new e({...this._def,shape:()=>n})}deepPartial(){return dn(this)}partial(t){let n={};for(let r of D.objectKeys(this.shape)){let o=this.shape[r];t&&!t[r]?n[r]=o:n[r]=o.optional()}return new e({...this._def,shape:()=>n})}required(t){let n={};for(let r of D.objectKeys(this.shape))if(t&&!t[r])n[r]=this.shape[r];else{let s=this.shape[r];for(;s instanceof Ae;)s=s._def.innerType;n[r]=s}return new e({...this._def,shape:()=>n})}keyof(){return iu(D.objectKeys(this.shape))}};he.create=(e,t)=>new he({shape:()=>e,unknownKeys:"strip",catchall:Me.create(),typeName:C.ZodObject,...P(t)});he.strictCreate=(e,t)=>new he({shape:()=>e,unknownKeys:"strict",catchall:Me.create(),typeName:C.ZodObject,...P(t)});he.lazycreate=(e,t)=>new he({shape:e,unknownKeys:"strip",catchall:Me.create(),typeName:C.ZodObject,...P(t)});Lt=class extends N{_parse(t){let{ctx:n}=this._processInputParams(t),r=this._def.options;function o(s){for(let a of s)if(a.result.status==="valid")return a.result;for(let a of s)if(a.result.status==="dirty")return n.common.issues.push(...a.ctx.common.issues),a.result;let i=s.map(a=>new pe(a.ctx.common.issues));return _(n,{code:b.invalid_union,unionErrors:i}),A}if(n.common.async)return Promise.all(r.map(async s=>{let i={...n,common:{...n.common,issues:[]},parent:null};return{result:await s._parseAsync({data:n.data,path:n.path,parent:i}),ctx:i}})).then(o);{let s,i=[];for(let l of r){let c={...n,common:{...n.common,issues:[]},parent:null},u=l._parseSync({data:n.data,path:n.path,parent:c});if(u.status==="valid")return u;u.status==="dirty"&&!s&&(s={result:u,ctx:c}),c.common.issues.length&&i.push(c.common.issues)}if(s)return n.common.issues.push(...s.ctx.common.issues),s.result;let a=i.map(l=>new pe(l));return _(n,{code:b.invalid_union,unionErrors:a}),A}}get options(){return this._def.options}};Lt.create=(e,t)=>new Lt({options:e,typeName:C.ZodUnion,...P(t)});tt=e=>e instanceof Bt?tt(e.schema):e instanceof Ce?tt(e.innerType()):e instanceof Ut?[e.value]:e instanceof zt?e.options:e instanceof Jt?D.objectValues(e.enum):e instanceof Gt?tt(e._def.innerType):e instanceof Ft?[void 0]:e instanceof Ht?[null]:e instanceof Ae?[void 0,...tt(e.unwrap())]:e instanceof We?[null,...tt(e.unwrap())]:e instanceof yr||e instanceof Zt?tt(e.unwrap()):e instanceof Kt?tt(e._def.innerType):[],Oo=class e extends N{_parse(t){let{ctx:n}=this._processInputParams(t);if(n.parsedType!==S.object)return _(n,{code:b.invalid_type,expected:S.object,received:n.parsedType}),A;let r=this.discriminator,o=n.data[r],s=this.optionsMap.get(o);return s?n.common.async?s._parseAsync({data:n.data,path:n.path,parent:n}):s._parseSync({data:n.data,path:n.path,parent:n}):(_(n,{code:b.invalid_union_discriminator,options:Array.from(this.optionsMap.keys()),path:[r]}),A)}get discriminator(){return this._def.discriminator}get options(){return this._def.options}get optionsMap(){return this._def.optionsMap}static create(t,n,r){let o=new Map;for(let s of n){let i=tt(s.shape[t]);if(!i.length)throw new Error(`A discriminator value for key \`${t}\` could not be extracted from all schema options`);for(let a of i){if(o.has(a))throw new Error(`Discriminator property ${String(t)} has duplicate value ${String(a)}`);o.set(a,s)}}return new e({typeName:C.ZodDiscriminatedUnion,discriminator:t,options:n,optionsMap:o,...P(r)})}};jt=class extends N{_parse(t){let{status:n,ctx:r}=this._processInputParams(t),o=(s,i)=>{if($o(s)||$o(i))return A;let a=Di(s.value,i.value);return a.valid?((Co(s)||Co(i))&&n.dirty(),{status:n.value,value:a.data}):(_(r,{code:b.invalid_intersection_types}),A)};return r.common.async?Promise.all([this._def.left._parseAsync({data:r.data,path:r.path,parent:r}),this._def.right._parseAsync({data:r.data,path:r.path,parent:r})]).then(([s,i])=>o(s,i)):o(this._def.left._parseSync({data:r.data,path:r.path,parent:r}),this._def.right._parseSync({data:r.data,path:r.path,parent:r}))}};jt.create=(e,t,n)=>new jt({left:e,right:t,typeName:C.ZodIntersection,...P(n)});Ze=class e extends N{_parse(t){let{status:n,ctx:r}=this._processInputParams(t);if(r.parsedType!==S.array)return _(r,{code:b.invalid_type,expected:S.array,received:r.parsedType}),A;if(r.data.length<this._def.items.length)return _(r,{code:b.too_small,minimum:this._def.items.length,inclusive:!0,exact:!1,type:"array"}),A;!this._def.rest&&r.data.length>this._def.items.length&&(_(r,{code:b.too_big,maximum:this._def.items.length,inclusive:!0,exact:!1,type:"array"}),n.dirty());let s=[...r.data].map((i,a)=>{let l=this._def.items[a]||this._def.rest;return l?l._parse(new $e(r,i,r.path,a)):null}).filter(i=>!!i);return r.common.async?Promise.all(s).then(i=>Q.mergeArray(n,i)):Q.mergeArray(n,s)}get items(){return this._def.items}rest(t){return new e({...this._def,rest:t})}};Ze.create=(e,t)=>{if(!Array.isArray(e))throw new Error("You must pass an array of schemas to z.tuple([ ... ])");return new Ze({items:e,typeName:C.ZodTuple,rest:null,...P(t)})};Po=class e extends N{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse(t){let{status:n,ctx:r}=this._processInputParams(t);if(r.parsedType!==S.object)return _(r,{code:b.invalid_type,expected:S.object,received:r.parsedType}),A;let o=[],s=this._def.keyType,i=this._def.valueType;for(let a in r.data)o.push({key:s._parse(new $e(r,a,r.path,a)),value:i._parse(new $e(r,r.data[a],r.path,a)),alwaysSet:a in r.data});return r.common.async?Q.mergeObjectAsync(n,o):Q.mergeObjectSync(n,o)}get element(){return this._def.valueType}static create(t,n,r){return n instanceof N?new e({keyType:t,valueType:n,typeName:C.ZodRecord,...P(r)}):new e({keyType:kt.create(),valueType:t,typeName:C.ZodRecord,...P(n)})}},hn=class extends N{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse(t){let{status:n,ctx:r}=this._processInputParams(t);if(r.parsedType!==S.map)return _(r,{code:b.invalid_type,expected:S.map,received:r.parsedType}),A;let o=this._def.keyType,s=this._def.valueType,i=[...r.data.entries()].map(([a,l],c)=>({key:o._parse(new $e(r,a,r.path,[c,"key"])),value:s._parse(new $e(r,l,r.path,[c,"value"]))}));if(r.common.async){let a=new Map;return Promise.resolve().then(async()=>{for(let l of i){let c=await l.key,u=await l.value;if(c.status==="aborted"||u.status==="aborted")return A;(c.status==="dirty"||u.status==="dirty")&&n.dirty(),a.set(c.value,u.value)}return{status:n.value,value:a}})}else{let a=new Map;for(let l of i){let c=l.key,u=l.value;if(c.status==="aborted"||u.status==="aborted")return A;(c.status==="dirty"||u.status==="dirty")&&n.dirty(),a.set(c.value,u.value)}return{status:n.value,value:a}}}};hn.create=(e,t,n)=>new hn({valueType:t,keyType:e,typeName:C.ZodMap,...P(n)});gn=class e extends N{_parse(t){let{status:n,ctx:r}=this._processInputParams(t);if(r.parsedType!==S.set)return _(r,{code:b.invalid_type,expected:S.set,received:r.parsedType}),A;let o=this._def;o.minSize!==null&&r.data.size<o.minSize.value&&(_(r,{code:b.too_small,minimum:o.minSize.value,type:"set",inclusive:!0,exact:!1,message:o.minSize.message}),n.dirty()),o.maxSize!==null&&r.data.size>o.maxSize.value&&(_(r,{code:b.too_big,maximum:o.maxSize.value,type:"set",inclusive:!0,exact:!1,message:o.maxSize.message}),n.dirty());let s=this._def.valueType;function i(l){let c=new Set;for(let u of l){if(u.status==="aborted")return A;u.status==="dirty"&&n.dirty(),c.add(u.value)}return{status:n.value,value:c}}let a=[...r.data.values()].map((l,c)=>s._parse(new $e(r,l,r.path,c)));return r.common.async?Promise.all(a).then(l=>i(l)):i(a)}min(t,n){return new e({...this._def,minSize:{value:t,message:v.toString(n)}})}max(t,n){return new e({...this._def,maxSize:{value:t,message:v.toString(n)}})}size(t,n){return this.min(t,n).max(t,n)}nonempty(t){return this.min(1,t)}};gn.create=(e,t)=>new gn({valueType:e,minSize:null,maxSize:null,typeName:C.ZodSet,...P(t)});Io=class e extends N{constructor(){super(...arguments),this.validate=this.implement}_parse(t){let{ctx:n}=this._processInputParams(t);if(n.parsedType!==S.function)return _(n,{code:b.invalid_type,expected:S.function,received:n.parsedType}),A;function r(a,l){return gr({data:a,path:n.path,errorMaps:[n.common.contextualErrorMap,n.schemaErrorMap,un(),et].filter(c=>!!c),issueData:{code:b.invalid_arguments,argumentsError:l}})}function o(a,l){return gr({data:a,path:n.path,errorMaps:[n.common.contextualErrorMap,n.schemaErrorMap,un(),et].filter(c=>!!c),issueData:{code:b.invalid_return_type,returnTypeError:l}})}let s={errorMap:n.common.contextualErrorMap},i=n.data;if(this._def.returns instanceof wt){let a=this;return oe(async function(...l){let c=new pe([]),u=await a._def.args.parseAsync(l,s).catch(m=>{throw c.addIssue(r(l,m)),c}),f=await Reflect.apply(i,this,u);return await a._def.returns._def.type.parseAsync(f,s).catch(m=>{throw c.addIssue(o(f,m)),c})})}else{let a=this;return oe(function(...l){let c=a._def.args.safeParse(l,s);if(!c.success)throw new pe([r(l,c.error)]);let u=Reflect.apply(i,this,c.data),f=a._def.returns.safeParse(u,s);if(!f.success)throw new pe([o(u,f.error)]);return f.data})}}parameters(){return this._def.args}returnType(){return this._def.returns}args(...t){return new e({...this._def,args:Ze.create(t).rest(nt.create())})}returns(t){return new e({...this._def,returns:t})}implement(t){return this.parse(t)}strictImplement(t){return this.parse(t)}static create(t,n,r){return new e({args:t||Ze.create([]).rest(nt.create()),returns:n||nt.create(),typeName:C.ZodFunction,...P(r)})}},Bt=class extends N{get schema(){return this._def.getter()}_parse(t){let{ctx:n}=this._processInputParams(t);return this._def.getter()._parse({data:n.data,path:n.path,parent:n})}};Bt.create=(e,t)=>new Bt({getter:e,typeName:C.ZodLazy,...P(t)});Ut=class extends N{_parse(t){if(t.data!==this._def.value){let n=this._getOrReturnCtx(t);return _(n,{received:n.data,code:b.invalid_literal,expected:this._def.value}),A}return{status:"valid",value:t.data}}get value(){return this._def.value}};Ut.create=(e,t)=>new Ut({value:e,typeName:C.ZodLiteral,...P(t)});zt=class e extends N{_parse(t){if(typeof t.data!="string"){let n=this._getOrReturnCtx(t),r=this._def.values;return _(n,{expected:D.joinValues(r),received:n.parsedType,code:b.invalid_type}),A}if(this._cache||(this._cache=new Set(this._def.values)),!this._cache.has(t.data)){let n=this._getOrReturnCtx(t),r=this._def.values;return _(n,{received:n.data,code:b.invalid_enum_value,options:r}),A}return oe(t.data)}get options(){return this._def.values}get enum(){let t={};for(let n of this._def.values)t[n]=n;return t}get Values(){let t={};for(let n of this._def.values)t[n]=n;return t}get Enum(){let t={};for(let n of this._def.values)t[n]=n;return t}extract(t,n=this._def){return e.create(t,{...this._def,...n})}exclude(t,n=this._def){return e.create(this.options.filter(r=>!t.includes(r)),{...this._def,...n})}};zt.create=iu;Jt=class extends N{_parse(t){let n=D.getValidEnumValues(this._def.values),r=this._getOrReturnCtx(t);if(r.parsedType!==S.string&&r.parsedType!==S.number){let o=D.objectValues(n);return _(r,{expected:D.joinValues(o),received:r.parsedType,code:b.invalid_type}),A}if(this._cache||(this._cache=new Set(D.getValidEnumValues(this._def.values))),!this._cache.has(t.data)){let o=D.objectValues(n);return _(r,{received:r.data,code:b.invalid_enum_value,options:o}),A}return oe(t.data)}get enum(){return this._def.values}};Jt.create=(e,t)=>new Jt({values:e,typeName:C.ZodNativeEnum,...P(t)});wt=class extends N{unwrap(){return this._def.type}_parse(t){let{ctx:n}=this._processInputParams(t);if(n.parsedType!==S.promise&&n.common.async===!1)return _(n,{code:b.invalid_type,expected:S.promise,received:n.parsedType}),A;let r=n.parsedType===S.promise?n.data:Promise.resolve(n.data);return oe(r.then(o=>this._def.type.parseAsync(o,{path:n.path,errorMap:n.common.contextualErrorMap})))}};wt.create=(e,t)=>new wt({type:e,typeName:C.ZodPromise,...P(t)});Ce=class extends N{innerType(){return this._def.schema}sourceType(){return this._def.schema._def.typeName===C.ZodEffects?this._def.schema.sourceType():this._def.schema}_parse(t){let{status:n,ctx:r}=this._processInputParams(t),o=this._def.effect||null,s={addIssue:i=>{_(r,i),i.fatal?n.abort():n.dirty()},get path(){return r.path}};if(s.addIssue=s.addIssue.bind(s),o.type==="preprocess"){let i=o.transform(r.data,s);if(r.common.async)return Promise.resolve(i).then(async a=>{if(n.value==="aborted")return A;let l=await this._def.schema._parseAsync({data:a,path:r.path,parent:r});return l.status==="aborted"?A:l.status==="dirty"?Pt(l.value):n.value==="dirty"?Pt(l.value):l});{if(n.value==="aborted")return A;let a=this._def.schema._parseSync({data:i,path:r.path,parent:r});return a.status==="aborted"?A:a.status==="dirty"?Pt(a.value):n.value==="dirty"?Pt(a.value):a}}if(o.type==="refinement"){let i=a=>{let l=o.refinement(a,s);if(r.common.async)return Promise.resolve(l);if(l instanceof Promise)throw new Error("Async refinement encountered during synchronous parse operation. Use .parseAsync instead.");return a};if(r.common.async===!1){let a=this._def.schema._parseSync({data:r.data,path:r.path,parent:r});return a.status==="aborted"?A:(a.status==="dirty"&&n.dirty(),i(a.value),{status:n.value,value:a.value})}else return this._def.schema._parseAsync({data:r.data,path:r.path,parent:r}).then(a=>a.status==="aborted"?A:(a.status==="dirty"&&n.dirty(),i(a.value).then(()=>({status:n.value,value:a.value}))))}if(o.type==="transform")if(r.common.async===!1){let i=this._def.schema._parseSync({data:r.data,path:r.path,parent:r});if(!yt(i))return A;let a=o.transform(i.value,s);if(a instanceof Promise)throw new Error("Asynchronous transform encountered during synchronous parse operation. Use .parseAsync instead.");return{status:n.value,value:a}}else return this._def.schema._parseAsync({data:r.data,path:r.path,parent:r}).then(i=>yt(i)?Promise.resolve(o.transform(i.value,s)).then(a=>({status:n.value,value:a})):A);D.assertNever(o)}};Ce.create=(e,t,n)=>new Ce({schema:e,typeName:C.ZodEffects,effect:t,...P(n)});Ce.createWithPreprocess=(e,t,n)=>new Ce({schema:t,effect:{type:"preprocess",transform:e},typeName:C.ZodEffects,...P(n)});Ae=class extends N{_parse(t){return this._getType(t)===S.undefined?oe(void 0):this._def.innerType._parse(t)}unwrap(){return this._def.innerType}};Ae.create=(e,t)=>new Ae({innerType:e,typeName:C.ZodOptional,...P(t)});We=class extends N{_parse(t){return this._getType(t)===S.null?oe(null):this._def.innerType._parse(t)}unwrap(){return this._def.innerType}};We.create=(e,t)=>new We({innerType:e,typeName:C.ZodNullable,...P(t)});Gt=class extends N{_parse(t){let{ctx:n}=this._processInputParams(t),r=n.data;return n.parsedType===S.undefined&&(r=this._def.defaultValue()),this._def.innerType._parse({data:r,path:n.path,parent:n})}removeDefault(){return this._def.innerType}};Gt.create=(e,t)=>new Gt({innerType:e,typeName:C.ZodDefault,defaultValue:typeof t.default=="function"?t.default:()=>t.default,...P(t)});Kt=class extends N{_parse(t){let{ctx:n}=this._processInputParams(t),r={...n,common:{...n.common,issues:[]}},o=this._def.innerType._parse({data:r.data,path:r.path,parent:{...r}});return fn(o)?o.then(s=>({status:"valid",value:s.status==="valid"?s.value:this._def.catchValue({get error(){return new pe(r.common.issues)},input:r.data})})):{status:"valid",value:o.status==="valid"?o.value:this._def.catchValue({get error(){return new pe(r.common.issues)},input:r.data})}}removeCatch(){return this._def.innerType}};Kt.create=(e,t)=>new Kt({innerType:e,typeName:C.ZodCatch,catchValue:typeof t.catch=="function"?t.catch:()=>t.catch,...P(t)});yn=class extends N{_parse(t){if(this._getType(t)!==S.nan){let r=this._getOrReturnCtx(t);return _(r,{code:b.invalid_type,expected:S.nan,received:r.parsedType}),A}return{status:"valid",value:t.data}}};yn.create=e=>new yn({typeName:C.ZodNaN,...P(e)});Hk=Symbol("zod_brand"),yr=class extends N{_parse(t){let{ctx:n}=this._processInputParams(t),r=n.data;return this._def.type._parse({data:r,path:n.path,parent:n})}unwrap(){return this._def.type}},kr=class e extends N{_parse(t){let{status:n,ctx:r}=this._processInputParams(t);if(r.common.async)return(async()=>{let s=await this._def.in._parseAsync({data:r.data,path:r.path,parent:r});return s.status==="aborted"?A:s.status==="dirty"?(n.dirty(),Pt(s.value)):this._def.out._parseAsync({data:s.value,path:r.path,parent:r})})();{let o=this._def.in._parseSync({data:r.data,path:r.path,parent:r});return o.status==="aborted"?A:o.status==="dirty"?(n.dirty(),{status:"dirty",value:o.value}):this._def.out._parseSync({data:o.value,path:r.path,parent:r})}}static create(t,n){return new e({in:t,out:n,typeName:C.ZodPipeline})}},Zt=class extends N{_parse(t){let n=this._def.innerType._parse(t),r=o=>(yt(o)&&(o.value=Object.freeze(o.value)),o);return fn(n)?n.then(o=>r(o)):r(n)}unwrap(){return this._def.innerType}};Zt.create=(e,t)=>new Zt({innerType:e,typeName:C.ZodReadonly,...P(t)});Lk={object:he.lazycreate};(function(e){e.ZodString="ZodString",e.ZodNumber="ZodNumber",e.ZodNaN="ZodNaN",e.ZodBigInt="ZodBigInt",e.ZodBoolean="ZodBoolean",e.ZodDate="ZodDate",e.ZodSymbol="ZodSymbol",e.ZodUndefined="ZodUndefined",e.ZodNull="ZodNull",e.ZodAny="ZodAny",e.ZodUnknown="ZodUnknown",e.ZodNever="ZodNever",e.ZodVoid="ZodVoid",e.ZodArray="ZodArray",e.ZodObject="ZodObject",e.ZodUnion="ZodUnion",e.ZodDiscriminatedUnion="ZodDiscriminatedUnion",e.ZodIntersection="ZodIntersection",e.ZodTuple="ZodTuple",e.ZodRecord="ZodRecord",e.ZodMap="ZodMap",e.ZodSet="ZodSet",e.ZodFunction="ZodFunction",e.ZodLazy="ZodLazy",e.ZodLiteral="ZodLiteral",e.ZodEnum="ZodEnum",e.ZodEffects="ZodEffects",e.ZodNativeEnum="ZodNativeEnum",e.ZodOptional="ZodOptional",e.ZodNullable="ZodNullable",e.ZodDefault="ZodDefault",e.ZodCatch="ZodCatch",e.ZodPromise="ZodPromise",e.ZodBranded="ZodBranded",e.ZodPipeline="ZodPipeline",e.ZodReadonly="ZodReadonly"})(C||(C={}));jk=(e,t={message:`Input not instance of ${e.name}`})=>au(n=>n instanceof e,t),lu=kt.create,cu=It.create,Bk=yn.create,Uk=Nt.create,uu=Dt.create,zk=Mt.create,Jk=mn.create,Gk=Ft.create,Kk=Ht.create,Zk=bt.create,Wk=nt.create,Vk=Me.create,qk=pn.create,Yk=rt.create,Xk=he.create,Qk=he.strictCreate,eb=Lt.create,tb=Oo.create,nb=jt.create,rb=Ze.create,ob=Po.create,sb=hn.create,ib=gn.create,ab=Io.create,lb=Bt.create,cb=Ut.create,ub=zt.create,fb=Jt.create,db=wt.create,mb=Ce.create,pb=Ae.create,hb=We.create,gb=Ce.createWithPreprocess,yb=kr.create,kb=()=>lu().optional(),bb=()=>cu().optional(),wb=()=>uu().optional(),_b={string:(e=>kt.create({...e,coerce:!0})),number:(e=>It.create({...e,coerce:!0})),boolean:(e=>Dt.create({...e,coerce:!0})),bigint:(e=>Nt.create({...e,coerce:!0})),date:(e=>Mt.create({...e,coerce:!0}))},Sb=A});var g={};ce(g,{BRAND:()=>Hk,DIRTY:()=>Pt,EMPTY_PATH:()=>gk,INVALID:()=>A,NEVER:()=>Sb,OK:()=>oe,ParseStatus:()=>Q,Schema:()=>N,ZodAny:()=>bt,ZodArray:()=>rt,ZodBigInt:()=>Nt,ZodBoolean:()=>Dt,ZodBranded:()=>yr,ZodCatch:()=>Kt,ZodDate:()=>Mt,ZodDefault:()=>Gt,ZodDiscriminatedUnion:()=>Oo,ZodEffects:()=>Ce,ZodEnum:()=>zt,ZodError:()=>pe,ZodFirstPartyTypeKind:()=>C,ZodFunction:()=>Io,ZodIntersection:()=>jt,ZodIssueCode:()=>b,ZodLazy:()=>Bt,ZodLiteral:()=>Ut,ZodMap:()=>hn,ZodNaN:()=>yn,ZodNativeEnum:()=>Jt,ZodNever:()=>Me,ZodNull:()=>Ht,ZodNullable:()=>We,ZodNumber:()=>It,ZodObject:()=>he,ZodOptional:()=>Ae,ZodParsedType:()=>S,ZodPipeline:()=>kr,ZodPromise:()=>wt,ZodReadonly:()=>Zt,ZodRecord:()=>Po,ZodSchema:()=>N,ZodSet:()=>gn,ZodString:()=>kt,ZodSymbol:()=>mn,ZodTransformer:()=>Ce,ZodTuple:()=>Ze,ZodType:()=>N,ZodUndefined:()=>Ft,ZodUnion:()=>Lt,ZodUnknown:()=>nt,ZodVoid:()=>pn,addIssueToContext:()=>_,any:()=>Zk,array:()=>Yk,bigint:()=>Uk,boolean:()=>uu,coerce:()=>_b,custom:()=>au,date:()=>zk,datetimeRegex:()=>su,defaultErrorMap:()=>et,discriminatedUnion:()=>tb,effect:()=>mb,enum:()=>ub,function:()=>ab,getErrorMap:()=>un,getParsedType:()=>Ke,instanceof:()=>jk,intersection:()=>nb,isAborted:()=>$o,isAsync:()=>fn,isDirty:()=>Co,isValid:()=>yt,late:()=>Lk,lazy:()=>lb,literal:()=>cb,makeIssue:()=>gr,map:()=>sb,nan:()=>Bk,nativeEnum:()=>fb,never:()=>Vk,null:()=>Kk,nullable:()=>hb,number:()=>cu,object:()=>Xk,objectUtil:()=>Oi,oboolean:()=>wb,onumber:()=>bb,optional:()=>pb,ostring:()=>kb,pipeline:()=>yb,preprocess:()=>gb,promise:()=>db,quotelessJson:()=>mk,record:()=>ob,set:()=>ib,setErrorMap:()=>hk,strictObject:()=>Qk,string:()=>lu,symbol:()=>Jk,transformer:()=>mb,tuple:()=>rb,undefined:()=>Gk,union:()=>eb,unknown:()=>Wk,util:()=>D,void:()=>qk});var Mi=k(()=>{Ao();Ii();Qc();hr();fu();Ro()});var Wt=k(()=>{Mi();Mi()});var _t,br=k(()=>{"use strict";Wt();_t=g.object({slug:g.string().min(1).max(64),description:g.string().max(255).optional(),match_command:g.string().min(1),priority:g.number().int().default(50),strip_ansi:g.boolean().default(!1),strip_lines_matching:g.array(g.string()).default([]),keep_failures:g.boolean().default(!1),strip_on_failure:g.boolean().default(!1),fold_passing:g.boolean().default(!1),fold_passing_threshold:g.number().int().positive().max(1e3).optional(),mask_abs_paths:g.boolean().default(!1),preserve_exact:g.boolean().default(!1),truncate_lines_at:g.number().int().positive().max(1e4).optional(),max_lines:g.number().int().positive().max(1e5).optional(),scale_with_level:g.boolean().default(!0),transform:g.string().max(64).optional(),on_empty:g.string().max(255).optional()})});function St(e){return JSON.stringify(e)+kn}function*No(e){let t=0;for(;;){let n=e.indexOf(kn,t);if(n<0)return;yield e.slice(t,n),t=n+1}}function wr(){return`${process.pid}-${Date.now()}-${Math.random().toString(36).slice(2,8)}`}var xb,vb,Eb,Tb,du,xO,vO,mu,kn,pu,Fi=k(()=>{"use strict";Wt();br();xb=g.object({id:g.string().min(1).max(64),op:g.literal("filter"),cmd:g.string().min(1).max(2048),plan:g.enum(["trial","smart","pro"]),allowed:g.array(g.string().min(1).max(64)).max(512).optional(),installId:g.string().min(1).max(64).optional()}),vb=g.object({id:g.string().min(1).max(64),op:g.literal("ping")}),Eb=g.object({id:g.string().min(1).max(64),op:g.literal("shutdown"),installId:g.string().min(1).max(64)}),Tb=g.object({id:g.string().min(1).max(64),op:g.literal("reload"),installId:g.string().min(1).max(64).optional()}),du=g.discriminatedUnion("op",[xb,vb,Eb,Tb]),xO=g.object({id:g.string(),ok:g.literal(!0),data:g.unknown()}),vO=g.object({id:g.string(),ok:g.literal(!1),err:g.string(),retryAfterMs:g.number().int().nonnegative().optional()}),mu=g.object({filter:_t.nullable(),cacheHit:g.boolean().optional()}),kn=`
|
|
4
|
+
`,pu=64*1024});import hu from"node:os";import{join as Se}from"node:path";function w(){return process.env.TOKMIZER_HOME||Se(hu.homedir(),".tokmizer")}function _r(){return Se(w(),"install-id")}function Do(){return Se(w(),"bundle-refresh.json")}function Mo(){return Se(w(),"skills")}function Oe(e){return Se(Mo(),`${e}.md`)}function xt(){return Se(w(),"content-cache")}function gu(){return Se(w(),"restore.json")}function Hi(e){return Se(xt(),e)}function Fo(){return Se(w(),"reducer-context.txt")}function Sr(){return Se(w(),"reducer-rules.json")}function Li(){return Se(w(),"managed-commands.json")}function Ho(){return process.env.TOKMIZER_CLAUDE_COMMANDS_DIR||Se(hu.homedir(),".claude","commands")}function Vt(e){return Se(Ho(),`${e}.md`)}var H=k(()=>{"use strict"});import Rb from"node:os";import{join as xr}from"node:path";import{existsSync as Ab,statSync as $b,lstatSync as yu,unlinkSync as Cb,mkdirSync as Ob,chmodSync as Pb}from"node:fs";import{createHash as Ib}from"node:crypto";function Nb(e){let t=Ib("sha256").update(w()).digest("hex").slice(0,8),n=xr(Rb.tmpdir(),`tkr-${e}-${t}`),r=xr(n,"d.sock");if(Buffer.byteLength(r)>ji)throw new Error("Temporary directory path is too long for IPC");return ku(n,e),r}function Db(e,t){try{let n=yu(e);return n.isDirectory()&&n.uid===t&&(n.mode&63)===0}catch{return!1}}function ku(e,t){Ob(e,{recursive:!0,mode:448});let n=yu(e);if(!n.isDirectory()||n.uid!==t)throw new Error("Unsafe IPC directory");Pb(e,448)}function ot(){if(process.platform==="win32")return{path:`\\\\.\\pipe\\tokmizer-${process.env.USERNAME??"tokmizer"}`,isPipe:!0};let e=typeof process.getuid=="function"?process.getuid():0,t=process.env.XDG_RUNTIME_DIR;if(t&&Db(t,e)){let o=xr(t,`tokmizer-${e}.sock`);if(Buffer.byteLength(o)<=ji)return{path:o,isPipe:!1}}let n=xr(w(),"run"),r=xr(n,"daemon.sock");return Buffer.byteLength(r)>ji?{path:Nb(e),isPipe:!1}:(ku(n,e),{path:r,isPipe:!1})}async function vr(){let{path:e,isPipe:t}=ot();if(t||!Ab(e))return;try{if(!$b(e).isSocket())return}catch{return}let n=await import("node:net");if(!await new Promise(o=>{let s=n.createConnection(e),i=a=>{s.removeAllListeners();try{s.destroy()}catch{}o(a)};s.once("connect",()=>i(!0)),s.once("error",a=>{let l=a.code;i(l!=="ECONNREFUSED"&&l!=="ENOENT")}),setTimeout(()=>i(!0),250)}))try{Cb(e)}catch{}}function _u(){let e=process.ppid;if(!e||e===1)return!1;try{return process.kill(e,0),!0}catch{return!1}}var ji,bu,wu,Lo=k(()=>{"use strict";H();ji=100;bu=3e4,wu=5*6e4});var Eu={};ce(Eu,{OutputVerbosity:()=>xu,ReducerLevel:()=>vu,Settings:()=>qt,slugKey:()=>se});import{createHash as Mb}from"node:crypto";function se(e){let t=Su.get(e);return t||(t=Mb("sha256").update(`tkr:${e}`).digest("hex").slice(0,16),Su.set(e,t)),t}var xu,vu,qt,Su,st=k(()=>{"use strict";Wt();xu=g.enum(["normal","compact","minimal"]),vu=g.enum(["off","light","balanced","max"]),qt=g.object({enabled:g.boolean().default(!0),telemetryOptIn:g.boolean().default(!0),outputVerbosity:xu.default("compact"),reducer:vu.default("off"),filters:g.object({enableAll:g.boolean().default(!0),disabled:g.array(g.string().max(64)).max(100).default([])}).default({enableAll:!0,disabled:[]})}),Su=new Map});function bn(e,t,n,r=t){let o=Tu.get(r);o||(o=new Map,Tu.set(r,o));let s=JSON.stringify([e,n?[...n].sort():null]),i=o.get(s);if(i!==void 0)return i;let a=null;for(let l of t)n&&!n.has(se(l.slug))||l.matchRegex.test(e)&&(!a||l.priority>a.priority)&&(a=l);if(o.size>=Fb){let l=o.keys().next().value;l&&o.delete(l)}return o.set(s,a),a}var Tu,Fb,jo=k(()=>{"use strict";st();Tu=new WeakMap,Fb=256});import{join as Bi}from"node:path";import{mkdir as Hb,readFile as Lb,writeFile as jb,unlink as Ru,rename as Bb}from"node:fs/promises";function Bo(){try{let e=Intl.DateTimeFormat().resolvedOptions().timeZone;return e&&e.length>0?e:"Etc/UTC"}catch{return"Etc/UTC"}}function zi(e){return e?.dir??w()}async function Z(e){let t=zi(e);try{let n=await Lb(Bi(t,Ui),"utf8"),r=JSON.parse(n),o=r.timeZone;return{...r,lastSettingsRevision:r.lastSettingsRevision??0,get timeZone(){return o??=Bo()},bonusActive:r.bonusActive??!1,...r.bonusResetAt!==void 0?{bonusResetAt:r.bonusResetAt}:{}}}catch{return null}}async function Ji(e,t){let n=zi(t);await Hb(n,{recursive:!0}),e.installedAt==null&&(e.installedAt=Math.floor(Date.now()/1e3));let r=Bi(n,Ui),o=`${r}.tmp-${process.pid}-${process.hrtime.bigint()}`;await jb(o,JSON.stringify(e,null,2),{mode:384});try{await Bb(o,r)}catch(s){try{await Ru(o)}catch{}throw s}}async function Au(e){let t=zi(e);try{await Ru(Bi(t,Ui))}catch{return}}var Ui,Fe=k(()=>{"use strict";H();Ui="state.json"});import{createRequire as Ub}from"node:module";function Jb(){let e="0.9.61";if(e)return e;for(let t of["../package.json","../../package.json"])try{let n=zb(t).version;if(typeof n=="string"&&n)return n}catch{}return"0.0.0"}function wn(e,t){if(!e||!t)return!1;let n=e.split(".").map(o=>parseInt(o,10)),r=t.split(".").map(o=>parseInt(o,10));for(let o=0;o<3;o+=1){let s=n[o]??0,i=r[o]??0;if(Number.isNaN(s)||Number.isNaN(i))return!1;if(s<i)return!0;if(s>i)return!1}return!1}var zb,ue,vt=k(()=>{"use strict";zb=Ub(import.meta.url);ue=Jb()});var $u,Cu=k(()=>{"use strict";$u=`-----BEGIN PUBLIC KEY-----
|
|
5
5
|
MCowBQYDK2VwAyEAj/kMlXlhTIGHRKxOKMuGFa1S1ybxxwgdYcAE0YM9fgU=
|
|
6
6
|
-----END PUBLIC KEY-----
|
|
7
7
|
`});import{existsSync as Gb,mkdirSync as ZO,rmSync as WO,writeFileSync as VO}from"node:fs";import{join as Kb}from"node:path";function Vb(){return Kb(w(),"network-off")}function qb(){let e=process.env.TOKMIZER_NETWORK;return e!==void 0&&Zb.has(e.trim().toLowerCase())}function Y(){return qb()?!1:!Gb(Vb())}function _n(){if(!Y())throw new Er}var Zb,Wb,XO,Er,He=k(()=>{"use strict";H();Zb=new Set(["0","off","false","no"]),Wb="Network is off for Tokmizer. Turn it back on with: tkr network on",XO=["Tokmizer contacts tokmizer.com to keep its rules up to date and to improve the product. No account or email is needed.","It sends a random install ID, your computer name, OS and CPU model, a hash of your network card address and of your user name, and the plugin version. Command contents and output are never sent.","Usage stats (command names, token counts and install health counts) are sent only while they are on. Check with: tkr telemetry status.","Turn all network access off: tkr network off. Usage stats only: tkr telemetry off."].join(`
|
|
8
8
|
`),Er=class extends Error{constructor(){super(Wb),this.name="NetworkDisabledError"}}});import{createHmac as Yb,createPublicKey as Xb,verify as Qb}from"node:crypto";function Tr(){return((process.env.TOKMIZER_DEV==="1"?process.env.TOKMIZER_RESP_SIGNING_PUBLIC_KEY_PEM:void 0)??$u).replace(/\\n/g,`
|
|
9
|
-
`)}function tw(e,t,n,r){try{let o=Xb({key:r,format:"pem"});return Qb(null,Buffer.from(`${t}.${e}`,"utf8"),o,Buffer.from(n,"base64url"))}catch{return!1}}async function Yt(e){let t=await e.text(),n=Tr(),r=e.headers?.get?.("x-tokmizer-resp-ts")??null;if(r!==null){let i=Number(r);if(!Number.isFinite(i)||Date.now()-i>ew)throw new Et("http","stale server response (resp-ts outside freshness window)")}if(!n||!n.includes("BEGIN PUBLIC KEY"))throw new Et("http","no signing public key configured; refusing to trust server response");let o=e.headers?.get?.("x-tokmizer-resp-sig")??null,s=Number(r);if(!o||r===null||!Number.isFinite(s))throw new Et("http","missing server response signature");if(!tw(t,s,o,n))throw new Et("http","invalid server response signature");return JSON.parse(t)}function nw(e,t,n){return Yb("sha256",n).update(`${t}.${e}`).digest("hex")}async function Le(e,t,n,r){_n();let o=Date.now(),s=n===void 0?"":JSON.stringify(n),i=r.signingSecret?nw(s,o,r.signingSecret):"0".repeat(64),a={"content-type":"application/json","x-tokmizer-fingerprint":r.fingerprint,"x-tokmizer-install-id":r.installId,"x-tokmizer-sig":i,"x-tokmizer-ts":String(o),"x-tokmizer-plugin-version":ue};r.bearer&&(a.authorization=`Bearer ${r.bearer}`);let l=r.timeoutMs??5e3,c=e!=="GET"&&e!=="DELETE",u={method:e,headers:a,signal:AbortSignal.timeout(l)};c&&(u.body=s);try{return await fetch(`${r.baseUrl}${t}`,u)}catch(f){let d=f.name;throw d==="TimeoutError"||d==="AbortError"?new Et("timeout",`${e} ${t} timed out after ${l}ms`):new Et("network",`${e} ${t} failed: ${f.message}`)}}var ew,Et,Sn=k(()=>{"use strict";vt();Cu();He();ew=300*1e3;Et=class extends Error{constructor(n,r,o){super(r);this.kind=n;this.status=o;this.name="TransportError"}kind;status}});import{createCipheriv as iP,createDecipheriv as rw,hkdfSync as ow,randomBytes as aP}from"node:crypto";function aw(e){return Buffer.from(ow("sha256",Buffer.from(e,"utf8"),sw,iw,32))}function Uo(e,t){let n=aw(t),r=Buffer.from(e,"base64url"),o=r.subarray(0,12),s=r.subarray(12,28),i=r.subarray(28),a=rw("aes-256-gcm",n,o);return a.setAuthTag(s),Buffer.concat([a.update(i),a.final()]).toString("utf8")}var sw,iw,Gi=k(()=>{"use strict";sw=Buffer.from("tokmizer-bundle-enc-v1"),iw=Buffer.from("rules-bundle")});import{chmodSync as lw,readFileSync as cw,writeFileSync as uw,mkdirSync as fw,renameSync as dw}from"node:fs";import{join as Ou}from"node:path";function Ki(){return Ou(w(),"bundle-cache.json")}function Pu(e){try{let t=w();fw(t,{recursive:!0});let n={...e,fetchedAt:Date.now()},r=Ou(t,`bundle-cache.${process.pid}.tmp`);uw(r,JSON.stringify(n),{mode:384}),dw(r,Ki()),lw(Ki(),384)}catch{}}function Iu(){try{let e=cw(Ki(),"utf8"),t=mw.safeParse(JSON.parse(e));return t.success?t.data:null}catch{return null}}var mw,Nu=k(()=>{"use strict";Wt();H();mw=
|
|
9
|
+
`)}function tw(e,t,n,r){try{let o=Xb({key:r,format:"pem"});return Qb(null,Buffer.from(`${t}.${e}`,"utf8"),o,Buffer.from(n,"base64url"))}catch{return!1}}async function Yt(e){let t=await e.text(),n=Tr(),r=e.headers?.get?.("x-tokmizer-resp-ts")??null;if(r!==null){let i=Number(r);if(!Number.isFinite(i)||Date.now()-i>ew)throw new Et("http","stale server response (resp-ts outside freshness window)")}if(!n||!n.includes("BEGIN PUBLIC KEY"))throw new Et("http","no signing public key configured; refusing to trust server response");let o=e.headers?.get?.("x-tokmizer-resp-sig")??null,s=Number(r);if(!o||r===null||!Number.isFinite(s))throw new Et("http","missing server response signature");if(!tw(t,s,o,n))throw new Et("http","invalid server response signature");return JSON.parse(t)}function nw(e,t,n){return Yb("sha256",n).update(`${t}.${e}`).digest("hex")}async function Le(e,t,n,r){_n();let o=Date.now(),s=n===void 0?"":JSON.stringify(n),i=r.signingSecret?nw(s,o,r.signingSecret):"0".repeat(64),a={"content-type":"application/json","x-tokmizer-fingerprint":r.fingerprint,"x-tokmizer-install-id":r.installId,"x-tokmizer-sig":i,"x-tokmizer-ts":String(o),"x-tokmizer-plugin-version":ue};r.bearer&&(a.authorization=`Bearer ${r.bearer}`);let l=r.timeoutMs??5e3,c=e!=="GET"&&e!=="DELETE",u={method:e,headers:a,signal:AbortSignal.timeout(l)};c&&(u.body=s);try{return await fetch(`${r.baseUrl}${t}`,u)}catch(f){let d=f.name;throw d==="TimeoutError"||d==="AbortError"?new Et("timeout",`${e} ${t} timed out after ${l}ms`):new Et("network",`${e} ${t} failed: ${f.message}`)}}var ew,Et,Sn=k(()=>{"use strict";vt();Cu();He();ew=300*1e3;Et=class extends Error{constructor(n,r,o){super(r);this.kind=n;this.status=o;this.name="TransportError"}kind;status}});import{createCipheriv as iP,createDecipheriv as rw,hkdfSync as ow,randomBytes as aP}from"node:crypto";function aw(e){return Buffer.from(ow("sha256",Buffer.from(e,"utf8"),sw,iw,32))}function Uo(e,t){let n=aw(t),r=Buffer.from(e,"base64url"),o=r.subarray(0,12),s=r.subarray(12,28),i=r.subarray(28),a=rw("aes-256-gcm",n,o);return a.setAuthTag(s),Buffer.concat([a.update(i),a.final()]).toString("utf8")}var sw,iw,Gi=k(()=>{"use strict";sw=Buffer.from("tokmizer-bundle-enc-v1"),iw=Buffer.from("rules-bundle")});import{chmodSync as lw,readFileSync as cw,writeFileSync as uw,mkdirSync as fw,renameSync as dw}from"node:fs";import{join as Ou}from"node:path";function Ki(){return Ou(w(),"bundle-cache.json")}function Pu(e){try{let t=w();fw(t,{recursive:!0});let n={...e,fetchedAt:Date.now()},r=Ou(t,`bundle-cache.${process.pid}.tmp`);uw(r,JSON.stringify(n),{mode:384}),dw(r,Ki()),lw(Ki(),384)}catch{}}function Iu(){try{let e=cw(Ki(),"utf8"),t=mw.safeParse(JSON.parse(e));return t.success?t.data:null}catch{return null}}var mw,Nu=k(()=>{"use strict";Wt();H();mw=g.object({payload:g.string().min(1),signature:g.string().min(1),enc:g.literal("v1"),fetchedAt:g.number().int().nonnegative()})});import{createPublicKey as pw,verify as hw}from"node:crypto";function Jo(){let e=Number(process.env.TOKMIZER_MAX_BUNDLE_AGE_MS);return Number.isFinite(e)&&e>0?e:yw}function Du(e,t=Date.now()){return t-e.fetchedAt>Jo()}function kw(e,t){let n=Tr();if(!n||!n.includes("BEGIN PUBLIC KEY"))throw new Error("tkr-daemon: no valid signing public key configured (set TOKMIZER_RESP_SIGNING_PUBLIC_KEY_PEM at build time).");let r=pw({key:n,format:"pem"});if(!hw(null,Buffer.from(e.payload,"utf8"),r,Buffer.from(e.signature,"base64url")))throw new Error("tkr-daemon: rules bundle signature invalid");return JSON.parse(Uo(e.payload,t))}async function Mu(e,t,n){if(e instanceof zo&&(e.status===401||e.status===403))try{return await n.heartbeat(t),await n.fetchBundle(t)}catch(r){return n.log(`initial fetch failed after heartbeat: ${r.message}`),null}return n.log(`initial fetch failed: ${e.message}`),null}async function Wi(e){let t=await Z();if(!t||!t.jwt)throw new Error("tkr-daemon: not activated (no JWT)");if(!t.signingSecret)throw new Error("tkr-daemon: not activated (no signing secret)");let n=await Le("GET","/api/v1/rules/bundle",void 0,{baseUrl:e,bearer:t.jwt,signingSecret:t.signingSecret,fingerprint:t.fingerprint??"0".repeat(64),installId:t.installId,timeoutMs:1e4});if(!n.ok)throw new zo(n.status);let r=gw.parse(await n.json()),o=Fu(r,t.signingSecret);return Pu(r),o}function Fu(e,t){let n=kw(e,t),r=Zi.parse(n);if(Date.now()-r.signedAt>Jo())throw new Error("tkr-daemon: rules bundle is stale");return Vi(r,{signedAt:r.signedAt,fetchedAt:Date.now()})}function Vi(e,t){let n=new Map;for(let r of e.filters)n.set(r.slug,{...r,matchRegex:new RegExp(r.match_command)});return{bundleVersion:e.bundleVersion,signedAt:t.signedAt,ruleCount:n.size,startedAt:Date.now(),fetchedAt:t.fetchedAt,selectFor:(r,o,s)=>bn(r,n.values(),s?new Set(s):null,n)}}async function Rr(){try{let e=Iu();if(!e)return null;let t=await Z();return t?.signingSecret?Fu(e,t.signingSecret):null}catch{return null}}var Zi,gw,yw,zo,xn=k(()=>{"use strict";Wt();br();jo();Fe();Sn();Gi();Nu();Zi=g.object({bundleVersion:g.number().int().nonnegative(),signedAt:g.number().int(),filters:g.array(_t)}),gw=g.object({payload:g.string().min(1),signature:g.string().min(1),enc:g.literal("v1")}),yw=10080*60*1e3;zo=class extends Error{status;constructor(t){super(`tkr-daemon: bundle fetch failed ${t}`),this.status=t}}});import vn from"node:os";import{createHash as _w,randomUUID as Sw}from"node:crypto";import{readFile as ju,writeFile as Bu,mkdir as xw}from"node:fs/promises";async function Go(){try{let n=(await ju(_r(),"utf8")).trim();if(/^[0-9a-f-]{36}$/i.test(n))return n}catch{}await xw(w(),{recursive:!0});let e=Sw();try{return await Bu(_r(),e,{mode:384,flag:"wx"}),e}catch{try{let t=(await ju(_r(),"utf8")).trim();if(/^[0-9a-f-]{36}$/i.test(t))return t}catch{}return await Bu(_r(),e,{mode:384}),e}}function qi(e){return _w("sha256").update(e).digest("hex")}function vw(){let e=vn.networkInterfaces();for(let t of Object.keys(e))for(let n of e[t]??[])if(!n.internal&&n.mac&&n.mac!=="00:00:00:00:00:00")return n.mac;return"no-mac"}async function it(){let e=await Go(),t=vn.hostname(),n=vn.platform(),r=vn.release(),o=vn.cpus(),s=o[0]?.model??"unknown",i=o.length,a=qi(vw()),l=qi(vn.userInfo().username),c=[t,n,r,s,String(i),a,l,e].join("|");return{fingerprint:qi(c),installId:e,hostname:t,os:n,osVersion:r,cpuModel:s,cpuCores:i,macHash:a,usernameHash:l}}var En=k(()=>{"use strict";H()});var qu={};ce(qu,{STATIC_COMMAND_NAMES:()=>Ko,commandInstalled:()=>Vu,commandsInstallStatus:()=>Nw,installCommand:()=>ta,isFresh:()=>Qi,pruneCommands:()=>qo,pruneSkills:()=>Vo,readBundleRefresh:()=>Dw,readSkill:()=>Mw,recordBundleRefresh:()=>Yo,writeSkill:()=>ea});import{chmod as Yi,mkdir as Zo,readFile as Ar,writeFile as Wo,stat as Xi,readdir as $w,rm as Ju}from"node:fs/promises";import{existsSync as Cw}from"node:fs";import{dirname as Ow}from"node:path";async function Ku(){try{let e=JSON.parse(await Ar(Li(),"utf8"));return Array.isArray(e)?e.filter(t=>typeof t=="string"):[]}catch{return[]}}async function Zu(e){try{await Zo(w(),{recursive:!0}),await Wo(Li(),JSON.stringify(e),{mode:384})}catch{}}function Wu(){let e=Number(process.env.TOKMIZER_MAX_BUNDLE_AGE_MS);return Number.isFinite(e)&&e>0?Math.min(e,zu):zu}async function Qi(e){try{let t=await Xi(Oe(e)),n=Date.now()-t.mtimeMs;return n<Iw&&n<=Wu()}catch{return!1}}async function ea(e,t){await Zo(Mo(),{recursive:!0}),await Wo(Oe(e),t,{mode:384}),await Yi(Oe(e),384)}async function Vo(e){let t=new Set(e),n;try{n=await $w(Mo())}catch{return}for(let r of n){if(!r.endsWith(".md"))continue;let o=r.slice(0,-3);if(!t.has(o))try{await Ju(Oe(o))}catch{}}}async function ta(e,t){if(!process.env.TOKMIZER_CLAUDE_COMMANDS_DIR&&!Cw(Ow(Ho())))return;await Zo(Ho(),{recursive:!0});try{if(!(await Ar(Vt(e),"utf8")).includes(Gu))return}catch{}await Wo(Vt(e),t,{mode:384}),await Yi(Vt(e),384);let n=await Ku();n.includes(e)||await Zu([...n,e])}async function qo(e){let t=new Set([...e,...Ko]),n=await Ku(),r=new Set([...n,...Pw]);for(let o of r)if(!t.has(o))try{if(!(await Ar(Vt(o),"utf8")).includes(Gu))continue;await Ju(Vt(o))}catch{}await Zu(n.filter(o=>t.has(o)))}async function Nw(){let e=0;for(let t of Ko)await Vu(t)&&e++;return{installed:e,total:Ko.length}}async function Vu(e){try{return await Xi(Vt(e)),!0}catch{return!1}}async function Yo(e){try{await Zo(w(),{recursive:!0}),await Wo(Do(),JSON.stringify({at:Date.now(),error:e}),{mode:384}),await Yi(Do(),384)}catch{}}async function Dw(){try{return JSON.parse(await Ar(Do(),"utf8"))}catch{return null}}async function Mw(e){try{let t=await Xi(Oe(e));return Date.now()-t.mtimeMs>Wu()?null:await Ar(Oe(e),"utf8")}catch{return null}}var Gu,Ko,Pw,Iw,zu,na=k(()=>{"use strict";H();Gu="managed-by: tokmizer",Ko=["tkr","tkr-gain","tkr-status","tkr-link","tkr-unlink","tkr-compression","tkr-telemetry","tkr-update","tkr-yolo"],Pw=["power","tkr-reducer"];Iw=3600*1e3,zu=10080*60*1e3});import{readFileSync as Fw}from"node:fs";import{join as Hw}from"node:path";function je(){try{return Fw(Hw(w(),"yolo-mode"),"utf8")==="on"}catch{return!1}}var $r=k(()=>{"use strict";H()});import{chmod as Lw,mkdir as jw,readFile as XP,writeFile as Yu,stat as Bw,readdir as Uw,rm as Tn,rename as zw}from"node:fs/promises";import{readFileSync as Jw}from"node:fs";import{createHash as Gw}from"node:crypto";import{join as Xo}from"node:path";function Qu(){try{let e=JSON.parse(Jw(gu(),"utf8")),t=e.maxAgeDays;return{...typeof t=="number"&&Number.isFinite(t)&&t>0?{maxAgeDays:Math.min(t,365)}:{},...e.disabled===!0?{disabled:!0}:{}}}catch{return{}}}function qw(){let e=Qu().maxAgeDays;return e?e*Xu:Kw}function ra(e,t,n=process.env){let r=Number(n[e]);return Number.isFinite(r)&&r>0?r:t}function Yw(e){return`${Hi(e)}${Cr}`}function Xw(e){return e===""?[]:(e.endsWith(`
|
|
10
10
|
`)?e.slice(0,-1):e).split(`
|
|
11
11
|
`)}async function Qw(e,t,n=process.env,r={}){if(je()||!Vw.test(e))return!1;let o=Buffer.byteLength(t,"utf8");if(o>ra("TOKMIZER_CCR_ENTRY_MAX_BYTES",Ww,n))return!1;let s=Hi(e),i=`${s}.tmp-${process.pid}-${process.hrtime.bigint()}`;try{if(await jw(xt(),{recursive:!0}),je())return!1;if(await Yu(i,t,{mode:384}),await Lw(i,384),je())return await Tn(i,{force:!0}),!1;await zw(i,s)}catch{try{await Tn(i)}catch{}return!1}let a={at:Date.now(),bytes:o,lines:Xw(t).length,partial:r.partial===!0,...r.label?{label:r.label.slice(0,40)}:{}};try{await Yu(Yw(e),JSON.stringify(a),{mode:384})}catch{}return!0}function ef(e){let t=e.TOKMIZER_CCR_DISABLED;return t==="1"||t==="true"||je()||Qu().disabled===!0}async function oa(e,t,n,r){let o=Gw("sha256").update(e).digest("hex").slice(0,16);return await Qw(o,e,r,{partial:t,label:n})?o:null}async function Or(e,t,n=process.env,r={}){if(ef(n)||!e)return t;let o=i=>`
|
|
12
12
|
[tkr restore ${i}]`;if(Buffer.byteLength(e,"utf8")<=Buffer.byteLength(o("0".repeat(16)),"utf8"))return t;if(r.raw){let i=await oa(r.raw,!1,r.label,n);if(i)return`${t}${o(i)}`}let s=await oa(e,!0,r.label,n);return s?`${t}${o(s)}`:t}async function Qo(e,t,n=process.env,r={}){if(ef(n)||!e)return t;let o=await oa(e,!1,r.label,n);return o?`${t}
|
|
13
13
|
[tkr restore ${o}]`:t}async function tf(){let e;try{e=await Uw(xt())}catch{return}let t=ra("TOKMIZER_CCR_MAX_AGE_MS",qw()),n=ra("TOKMIZER_CCR_DIR_CAP_BYTES",Zw),r=Date.now(),o=new Map;for(let a of e){let l=Xo(xt(),a);try{let c=await Bw(l);r-c.mtimeMs>t?await Tn(l):o.set(a,{mtimeMs:c.mtimeMs,size:c.size})}catch{}}for(let a of[...o.keys()])if(!(!a.endsWith(Cr)||o.has(a.slice(0,-Cr.length)))){try{await Tn(Xo(xt(),a))}catch{}o.delete(a)}let s=[...o.entries()].filter(([a])=>!a.endsWith(Cr)).sort((a,l)=>a[1].mtimeMs-l[1].mtimeMs),i=s.reduce((a,[,l])=>a+l.size,0);for(let[a,l]of s){if(i<=n)break;try{await Tn(Xo(xt(),a)),i-=l.size,await Tn(Xo(xt(),`${a}${Cr}`),{force:!0})}catch{}}}var Xu,Kw,Zw,Ww,Vw,Cr,oI,es=k(()=>{"use strict";H();$r();Xu=1440*60*1e3,Kw=30*Xu,Zw=200*1024*1024,Ww=8*1024*1024,Vw=/^[0-9a-f]{8,64}$/i,Cr=".meta",oI=["usage: tkr restore <hash> [--lines a:b] [--grep pattern]"," tkr restore --list"," tkr restore --grep <pattern>",""].join(`
|
|
14
|
-
`)});var uf={};ce(uf,{clearSettingsCache:()=>o0,loadSettingsCache:()=>ee,saveSettingsCache:()=>ts,updateSettingsCache:()=>ia});import{readFile as sf,writeFile as af,mkdir as lf,chmod as e0,rm as Pr,rename as cf,readdir as t0}from"node:fs/promises";import{randomUUID as n0}from"node:crypto";import{join as Rn}from"node:path";import{setTimeout as nf}from"node:timers/promises";async function ee(){let e=null;try{let t=JSON.parse(await sf(Rn(w(),sa),"utf8"));typeof t=="object"&&t!==null&&!Array.isArray(t)&&(e=t)}catch{}return e?qt.parse({...rf,...e}):rf}async function ts(e){await lf(w(),{recursive:!0});let t=Rn(w(),sa),n=`${t}.tmp-${process.pid}-${process.hrtime.bigint()}`;await af(n,JSON.stringify(e,null,2),{mode:384});try{await e0(n,384),await cf(n,t)}catch(r){try{await Pr(n,{force:!0})}catch{}throw r}}async function of(e){let t=[];for(let n of await t0(e)){let r=/^([1-9]\d*)-[0-9a-f-]{36}\.json$/.exec(n);if(!r)continue;let o=Rn(e,n);try{process.kill(Number(r[1]),0)}catch(s){let i=s.code;if(i==="ESRCH"){await Pr(o,{force:!0});continue}if(i!=="EPERM")throw s}try{let s=JSON.parse(await sf(o,"utf8"));if(!Number.isSafeInteger(s)||s<0)throw new Error("Invalid local settings lock");t.push({id:n,ticket:s})}catch(s){if(s.code!=="ENOENT")throw s}}return t}async function ia(e){let t=r0.parse(e),n=Rn(w(),"settings-cache-locks");await lf(n,{recursive:!0,mode:448});let r=`${process.pid}-${n0()}.json`,o=Rn(n,r),s=`${o}.tmp`,i=performance.now()+3e3,a=async l=>{for(await af(s,String(l),{mode:384});;)try{await cf(s,o);return}catch(c){let u=c.code;if(process.platform!=="win32"||u!=="EPERM"&&u!=="EBUSY"||performance.now()>=i)throw c;await nf(10)}};try{await a(0);let l=Math.max(0,...(await of(n)).map(c=>c.ticket))+1;if(!Number.isSafeInteger(l))throw new Error("Invalid local settings lock");for(await a(l);;){if(!(await of(n)).some(u=>u.id!==r&&(u.ticket===0||u.ticket<l||u.ticket===l&&u.id<r))){let u=await ee(),f=qt.parse({...u,...t,filters:{...u.filters,...t.filters}});return await ts(f),f}if(performance.now()>=i)throw new Error("Timed out waiting for local settings lock after 3 seconds; another process may still be updating settings");await nf(10)}}finally{await Promise.all([Pr(o,{force:!0}),Pr(s,{force:!0})])}}async function o0(){try{await Pr(Rn(w(),sa),{force:!0})}catch{}}var sa,rf,r0,at=k(()=>{"use strict";st();H();sa="settings-cache.json",rf=qt.parse({}),r0=qt.partial().extend({filters:qt.shape.filters.removeDefault().partial().optional()})});import{basename as i0}from"node:path";function lt(e){let t=i0(e).replace(/\.(m?js|ts)$/,"");if(t==="tkr")return[];for(let[n,r]of Object.entries(a0))if(r===t)return[n];for(let[n,r]of Object.entries(l0))if(r===t)return["hook",n];return null}var a0,l0,Ir=k(()=>{"use strict";a0={exec:"tkr-exec",processor:"tkr-processor",daemon:"tkr-daemon","shim-run":"tkr-shim"},l0={codex:"tkr-codex-hook",cursor:"tkr-cursor-hook",gemini:"tkr-gemini-hook",agent:"tkr-agent-hook",copilot:"tkr-copilot-hook",droid:"tkr-droid-hook",trae:"tkr-trae-hook",qwen:"tkr-qwen-hook",crush:"tkr-crush-hook",junie:"tkr-junie-hook",zcode:"tkr-zcode-hook",grok:"tkr-grok-hook",context:"tkr-context-hook","pre-tool-use":"pre-tool-use","post-tool-use":"post-tool-use","session-recap":"session-recap","session-start":"on-session-start","reducer-session-start":"reducer-session-start","reducer-prompt-submit":"reducer-prompt-submit","reducer-stop":"reducer-stop"}});import{realpathSync as df}from"node:fs";import{delimiter as c0,join as An}from"node:path";import u0 from"node:os";function xe(){return!1}function Xt(e,t=process.execPath){let n=xe()?lt(e):null;return n?[process.execPath,...n]:[t,e]}function mf(e,t){try{return df(e)===df(t)}catch{return!1}}function Qt(e=process.env.PATH??"",t=process.platform,n=process.execPath){let r=t==="win32"?"tkr.exe":"tkr";for(let o of e.split(t==="win32"?";":c0)){if(!o||o.includes("node_modules"))continue;let s=An(o,r);if(mf(s,n))return s}if(t!=="win32"){let o=u0.homedir();for(let s of[An(o,".local","bin",r),An(o,".local","share","tokmizer","current","dist","bin",r),An("/opt/homebrew/bin",r),An("/usr/local/bin",r),An("/home/linuxbrew/.linuxbrew/bin",r)])if(mf(s,n))return s}return n}var Ve=k(()=>{"use strict";Ir()});import{rmSync as f0,statSync as d0}from"node:fs";import{join as aa}from"node:path";function ve(){return aa(w(),"shims")}function Tt(){return aa(w(),"fail-open")}function fe(e=Date.now()){try{if(e-d0(Tt()).mtimeMs<m0)return!0;f0(Tt(),{force:!0})}catch{}return!1}function rs(){return`[ -f ${ie(Tt())} ]`}function Nr(){return aa(w(),"shim-fallbacks")}function ie(e){return`'${e.replace(/'/g,"'\\''")}'`}function pf(e){if(!e.startsWith("'")||!e.endsWith("'")||e.length<2)return null;let n=e.slice(1,-1).split("'\\''");return n.some(r=>r.includes("'"))?null:n.join("'")}function os(e){return["set -f",`_tk_d=${ie(ve())}`,"_tk_o=$IFS; IFS=:; _tk_p=; _tk_x=","for _tk_e in $PATH; do",' [ -n "$_tk_e" ] || continue',' [ "$_tk_e" -ef "$_tk_d" ] && continue'," _tk_p=${_tk_p:+$_tk_p:}$_tk_e",' [ -z "$_tk_x" ] && [ -f "$_tk_e/$_tk_c" ] && [ -x "$_tk_e/$_tk_c" ] && _tk_x=$_tk_e/$_tk_c',"done","IFS=$_tk_o; PATH=$_tk_p; export PATH; set +f",'[ -n "$_tk_x" ] || { echo "$_tk_c: command not found" >&2; exit 127; }','exec "$_tk_x" "$@"'].map(t=>`${e}${t}`)}var ns,m0,Ee=k(()=>{"use strict";H();ns="tokmizer: shim target missing, running command directly; run `tkr doctor --fix`";m0=24*36e5});import{accessSync as p0,chmodSync as
|
|
14
|
+
`)});var uf={};ce(uf,{clearSettingsCache:()=>o0,loadSettingsCache:()=>ee,saveSettingsCache:()=>ts,updateSettingsCache:()=>ia});import{readFile as sf,writeFile as af,mkdir as lf,chmod as e0,rm as Pr,rename as cf,readdir as t0}from"node:fs/promises";import{randomUUID as n0}from"node:crypto";import{join as Rn}from"node:path";import{setTimeout as nf}from"node:timers/promises";async function ee(){let e=null;try{let t=JSON.parse(await sf(Rn(w(),sa),"utf8"));typeof t=="object"&&t!==null&&!Array.isArray(t)&&(e=t)}catch{}return e?qt.parse({...rf,...e}):rf}async function ts(e){await lf(w(),{recursive:!0});let t=Rn(w(),sa),n=`${t}.tmp-${process.pid}-${process.hrtime.bigint()}`;await af(n,JSON.stringify(e,null,2),{mode:384});try{await e0(n,384),await cf(n,t)}catch(r){try{await Pr(n,{force:!0})}catch{}throw r}}async function of(e){let t=[];for(let n of await t0(e)){let r=/^([1-9]\d*)-[0-9a-f-]{36}\.json$/.exec(n);if(!r)continue;let o=Rn(e,n);try{process.kill(Number(r[1]),0)}catch(s){let i=s.code;if(i==="ESRCH"){await Pr(o,{force:!0});continue}if(i!=="EPERM")throw s}try{let s=JSON.parse(await sf(o,"utf8"));if(!Number.isSafeInteger(s)||s<0)throw new Error("Invalid local settings lock");t.push({id:n,ticket:s})}catch(s){if(s.code!=="ENOENT")throw s}}return t}async function ia(e){let t=r0.parse(e),n=Rn(w(),"settings-cache-locks");await lf(n,{recursive:!0,mode:448});let r=`${process.pid}-${n0()}.json`,o=Rn(n,r),s=`${o}.tmp`,i=performance.now()+3e3,a=async l=>{for(await af(s,String(l),{mode:384});;)try{await cf(s,o);return}catch(c){let u=c.code;if(process.platform!=="win32"||u!=="EPERM"&&u!=="EBUSY"||performance.now()>=i)throw c;await nf(10)}};try{await a(0);let l=Math.max(0,...(await of(n)).map(c=>c.ticket))+1;if(!Number.isSafeInteger(l))throw new Error("Invalid local settings lock");for(await a(l);;){if(!(await of(n)).some(u=>u.id!==r&&(u.ticket===0||u.ticket<l||u.ticket===l&&u.id<r))){let u=await ee(),f=qt.parse({...u,...t,filters:{...u.filters,...t.filters}});return await ts(f),f}if(performance.now()>=i)throw new Error("Timed out waiting for local settings lock after 3 seconds; another process may still be updating settings");await nf(10)}}finally{await Promise.all([Pr(o,{force:!0}),Pr(s,{force:!0})])}}async function o0(){try{await Pr(Rn(w(),sa),{force:!0})}catch{}}var sa,rf,r0,at=k(()=>{"use strict";st();H();sa="settings-cache.json",rf=qt.parse({}),r0=qt.partial().extend({filters:qt.shape.filters.removeDefault().partial().optional()})});import{basename as i0}from"node:path";function lt(e){let t=i0(e).replace(/\.(m?js|ts)$/,"");if(t==="tkr")return[];for(let[n,r]of Object.entries(a0))if(r===t)return[n];for(let[n,r]of Object.entries(l0))if(r===t)return["hook",n];return null}var a0,l0,Ir=k(()=>{"use strict";a0={exec:"tkr-exec",processor:"tkr-processor",daemon:"tkr-daemon","shim-run":"tkr-shim"},l0={codex:"tkr-codex-hook",cursor:"tkr-cursor-hook",gemini:"tkr-gemini-hook",agent:"tkr-agent-hook",copilot:"tkr-copilot-hook",droid:"tkr-droid-hook",trae:"tkr-trae-hook",qwen:"tkr-qwen-hook",crush:"tkr-crush-hook",junie:"tkr-junie-hook",zcode:"tkr-zcode-hook",grok:"tkr-grok-hook",context:"tkr-context-hook","pre-tool-use":"pre-tool-use","post-tool-use":"post-tool-use","session-recap":"session-recap","session-start":"on-session-start","reducer-session-start":"reducer-session-start","reducer-prompt-submit":"reducer-prompt-submit","reducer-stop":"reducer-stop","command-expansion":"command-expansion"}});import{realpathSync as df}from"node:fs";import{delimiter as c0,join as An}from"node:path";import u0 from"node:os";function xe(){return!1}function Xt(e,t=process.execPath){let n=xe()?lt(e):null;return n?[process.execPath,...n]:[t,e]}function mf(e,t){try{return df(e)===df(t)}catch{return!1}}function Qt(e=process.env.PATH??"",t=process.platform,n=process.execPath){let r=t==="win32"?"tkr.exe":"tkr";for(let o of e.split(t==="win32"?";":c0)){if(!o||o.includes("node_modules"))continue;let s=An(o,r);if(mf(s,n))return s}if(t!=="win32"){let o=u0.homedir();for(let s of[An(o,".local","bin",r),An(o,".local","share","tokmizer","current","dist","bin",r),An("/opt/homebrew/bin",r),An("/usr/local/bin",r),An("/home/linuxbrew/.linuxbrew/bin",r)])if(mf(s,n))return s}return n}var Ve=k(()=>{"use strict";Ir()});import{rmSync as f0,statSync as d0}from"node:fs";import{join as aa}from"node:path";function ve(){return aa(w(),"shims")}function Tt(){return aa(w(),"fail-open")}function fe(e=Date.now()){try{if(e-d0(Tt()).mtimeMs<m0)return!0;f0(Tt(),{force:!0})}catch{}return!1}function rs(){return`[ -f ${ie(Tt())} ]`}function Nr(){return aa(w(),"shim-fallbacks")}function ie(e){return`'${e.replace(/'/g,"'\\''")}'`}function pf(e){if(!e.startsWith("'")||!e.endsWith("'")||e.length<2)return null;let n=e.slice(1,-1).split("'\\''");return n.some(r=>r.includes("'"))?null:n.join("'")}function os(e){return["set -f",`_tk_d=${ie(ve())}`,"_tk_o=$IFS; IFS=:; _tk_p=; _tk_x=","for _tk_e in $PATH; do",' [ -n "$_tk_e" ] || continue',' [ "$_tk_e" -ef "$_tk_d" ] && continue'," _tk_p=${_tk_p:+$_tk_p:}$_tk_e",' [ -z "$_tk_x" ] && [ -f "$_tk_e/$_tk_c" ] && [ -x "$_tk_e/$_tk_c" ] && _tk_x=$_tk_e/$_tk_c',"done","IFS=$_tk_o; PATH=$_tk_p; export PATH; set +f",'[ -n "$_tk_x" ] || { echo "$_tk_c: command not found" >&2; exit 127; }','exec "$_tk_x" "$@"'].map(t=>`${e}${t}`)}var ns,m0,Ee=k(()=>{"use strict";H();ns="tokmizer: shim target missing, running command directly; run `tkr doctor --fix`";m0=24*36e5});import{accessSync as p0,chmodSync as h0,constants as g0,existsSync as ss,mkdirSync as y0,readdirSync as k0,readFileSync as b0,realpathSync as hf,renameSync as w0,unlinkSync as _0,writeFileSync as S0}from"node:fs";import{chmod as x0,mkdir as v0,rename as E0,unlink as T0,writeFile as R0}from"node:fs/promises";import{basename as la,dirname as ct,join as qe,sep as $n}from"node:path";import A0 from"node:os";function Cn(){return qe(w(),"bin","tkr-shim-launch")}function ut(){return qe(w(),"bin","tkr-hook")}function gf(){return qe(process.env.CLAUDE_CONFIG_DIR||qe(A0.homedir(),".claude"),"plugins","cache","tokmizer","tokmizer")}function $0(e){let t=ct(ct(ct(e)));return yf.test(la(t))&&la(ct(t))==="tokmizer"?ct(t):null}function ca(e){return/[\n\r]/.test(e)||e.includes(`${$n}_npx${$n}`)||e.includes(`${$n}.bun${$n}install${$n}cache${$n}`)}function ua(e){let t=e.match(/^(.*)[\\/]Cellar[\\/]([^\\/]+)[\\/][^\\/]+[\\/](.*)$/);if(!t)return e;let n=qe(t[1],"opt",t[2],t[3]);try{return hf(n)===hf(e)?n:e}catch{return e}}function C0(e=process.execPath){return ca(e)?"":ua(e)}function Mr(e,t=xe()){if(t&<(e)){let o=Qt();return{single:ca(o)?"":ua(o),js:"",cache:gf(),node:""}}let n=C0(),r=$0(e);return r?{single:"",js:"",cache:r,node:n}:{single:"",js:ca(e)?"":ua(e),cache:gf(),node:n}}function O0(e){try{return p0(e,g0.X_OK),!0}catch{return!1}}function P0(e){let t=null,n=-1,r;try{r=k0(e)}catch{return null}for(let o of r){if(!yf.test(o))continue;let s=qe(e,o);if(!ss(qe(s,"dist","bin","tkr-shim.js"))||!ss(qe(s,"dist","bin",Dr)))continue;let[i,a,l]=o.split(".").map(Number),c=i*1e6+a*1e3+l;c>n&&(n=c,t=s)}return t}function kf(e){return e.single&&O0(e.single)||e.js&&ss(e.js)&&(la(e.js)!=="tkr-shim.js"||ss(qe(ct(e.js),Dr)))?!0:e.cache!==""&&P0(e.cache)!==null}function bf(e,t){return["#!/bin/sh",`_tk_f=${fa}`,`${t}=$1`,"shift",`_tk_s=${ie(e.single)}`,`_tk_j=${ie(e.js)}`,`_tk_k=${ie(e.cache)}`,`_tk_n=${ie(e.node)}`]}function wf(e,t){return["_tk_t=",`if [ -n "$_tk_j" ] && [ -f "${t}" ] && { [ "\${_tk_j##*/}" != tkr-shim.js ] || [ -f "\${_tk_j%/*}/${Dr}" ]; }; then _tk_t=${t}; fi`,'if [ -z "$_tk_t" ] && [ -n "$_tk_k" ] && [ -d "$_tk_k" ]; then'," _tk_b=-1",' for _tk_r in "$_tk_k"/*/; do'," _tk_v=${_tk_r%/}; _tk_v=${_tk_v##*/}"," case $_tk_v in *[!0-9.]*|.*|*.|*..*|0[0-9]*|*.0[0-9]*|*[0-9][0-9][0-9][0-9][0-9][0-9][0-9]*) continue ;; [0-9]*.[0-9]*.[0-9]*) ;; *) continue ;; esac"," case ${_tk_v#*.*.} in *.*) continue ;; esac",` [ -f "\${_tk_r}dist/bin/${e}" ] && [ -f "\${_tk_r}dist/bin/${Dr}" ] || continue`," _tk_1=${_tk_v%%.*}; _tk_2=${_tk_v#*.}; _tk_3=${_tk_2#*.}; _tk_2=${_tk_2%%.*}"," _tk_v=$((_tk_1 * 1000000 + _tk_2 * 1000 + _tk_3))",` if [ "$_tk_v" -gt "$_tk_b" ]; then _tk_b=$_tk_v; _tk_t=\${_tk_r}dist/bin/${e}; fi`," done","fi",'if [ -z "$_tk_t" ]; then',` _tk_d=${ie(ve())}`," set -f; _tk_o=$IFS; IFS=:"," for _tk_e in $PATH; do"," case $_tk_e in /*/node_modules/*|*/node_modules) continue ;; /*) ;; *) continue ;; esac",' [ ! "$_tk_e" -ef "$_tk_d" ] || continue',' for _tk_g in "$_tk_e/../lib/node_modules/@tokmizer/plugin/dist/bin" "$_tk_e/../opt/tokmizer/libexec/lib/node_modules/@tokmizer/plugin/dist/bin"; do',` if [ -f "$_tk_g/${Dr}" ] && [ -f "$_tk_g/${e}" ]; then _tk_t=$_tk_g/${e}; break 2; fi`," done"," done"," IFS=$_tk_o; set +f","fi","_tk_x=",'if [ -n "$_tk_t" ]; then',' for _tk_x in "$_tk_n" "$(command -v node 2>/dev/null)" /opt/homebrew/bin/node /usr/local/bin/node /usr/bin/node ""; do',' [ -n "$_tk_x" ] && [ -x "$_tk_x" ] && break'," done","fi"]}function I0(e){return[...bf(e,"_tk_c"),`if ! ${rs()}; then`,' if [ -n "$_tk_s" ] && [ -x "$_tk_s" ]; then exec "$_tk_s" shim-run --as "$_tk_c" "$@"; fi',...wf("tkr-shim.js","$_tk_j").map(t=>` ${t}`),' if [ -n "$_tk_x" ]; then exec "$_tk_x" "$_tk_t" --as "$_tk_c" "$@"; fi',` echo ${ie(ns)} >&2`,` { echo x >> ${ie(Nr())}; } 2>/dev/null`,"fi",...os(""),""].join(`
|
|
15
15
|
`)}function _f(e){return[...bf(e,"_tk_m"),"case $_tk_m in tkr-*-hook) ;; *) { /bin/cat || /usr/bin/cat; } >/dev/null 2>&1; exit 0 ;; esac",'if [ -n "$_tk_s" ] && [ -x "$_tk_s" ]; then _tk_w=${_tk_m#tkr-}; exec "$_tk_s" hook "${_tk_w%-hook}" "$@"; fi',...wf("$_tk_m.js","${_tk_j%/*}/$_tk_m.js"),'if [ -n "$_tk_x" ]; then exec "$_tk_x" "$_tk_t" "$@"; fi',"{ /bin/cat || /usr/bin/cat; } >/dev/null 2>&1","exit 0",""].join(`
|
|
16
|
-
`)}function N0(e){let t=a=>{let l=e.match(new RegExp(`^${a}=(.*)$`,"m"));return l?a==="_tk_f"?l[1]:pf(l[1]):null},n=Number(t("_tk_f")),r=t("_tk_s"),o=t("_tk_j"),s=t("_tk_k"),i=t("_tk_n")??"";return!Number.isInteger(n)||r===null||o===null||s===null?null:{format:n,target:{single:r,js:o,cache:s,node:i}}}function Fr(e=Cn()){try{return N0(b0(e,"utf8"))}catch{return null}}function da(e=Fr()){return e!==null&&e.format===fa&&kf(e.target)}async function Sf(e,t){let n=`${e}.${process.pid}.tmp`;try{return await v0(ct(e),{recursive:!0,mode:448}),await R0(n,t,{mode:493}),await x0(n,493),await E0(n,e),!0}catch{try{await T0(n)}catch{}return!1}}function ma(e){return Sf(Cn(),I0(e))}function xf(e){return Sf(ut(),_f(e))}function vf(e){let t=Mr(qe(ct(e),"tkr-shim.js")),n=Fr(ut());if(n&&n.format===fa&&kf(n.target)&&t.single===""&&t.js==="")return;let r=ut(),o=`${r}.${process.pid}.tmp`;try{y0(ct(r),{recursive:!0,mode:448}),S0(o,_f(t),{mode:493}),
|
|
16
|
+
`)}function N0(e){let t=a=>{let l=e.match(new RegExp(`^${a}=(.*)$`,"m"));return l?a==="_tk_f"?l[1]:pf(l[1]):null},n=Number(t("_tk_f")),r=t("_tk_s"),o=t("_tk_j"),s=t("_tk_k"),i=t("_tk_n")??"";return!Number.isInteger(n)||r===null||o===null||s===null?null:{format:n,target:{single:r,js:o,cache:s,node:i}}}function Fr(e=Cn()){try{return N0(b0(e,"utf8"))}catch{return null}}function da(e=Fr()){return e!==null&&e.format===fa&&kf(e.target)}async function Sf(e,t){let n=`${e}.${process.pid}.tmp`;try{return await v0(ct(e),{recursive:!0,mode:448}),await R0(n,t,{mode:493}),await x0(n,493),await E0(n,e),!0}catch{try{await T0(n)}catch{}return!1}}function ma(e){return Sf(Cn(),I0(e))}function xf(e){return Sf(ut(),_f(e))}function vf(e){let t=Mr(qe(ct(e),"tkr-shim.js")),n=Fr(ut());if(n&&n.format===fa&&kf(n.target)&&t.single===""&&t.js==="")return;let r=ut(),o=`${r}.${process.pid}.tmp`;try{y0(ct(r),{recursive:!0,mode:448}),S0(o,_f(t),{mode:493}),h0(o,493),w0(o,r)}catch{try{_0(o)}catch{}}}var fa,Dr,yf,is=k(()=>{"use strict";H();Ve();Ir();Ee();fa=1,Dr="tkr-shim.stable",yf=/^(?:0|[1-9]\d{0,5})\.(?:0|[1-9]\d{0,5})\.(?:0|[1-9]\d{0,5})$/});import{chmod as D0,lstat as Ef,mkdir as M0,readFile as ha,rename as F0,rm as jI,unlink as Tf,writeFile as H0}from"node:fs/promises";import{createHash as Rf}from"node:crypto";import{basename as L0,join as Af}from"node:path";function $f(){return Af(w(),"backup","config")}function pa(e){let t=Hr(e),n=Rf("sha256").update(t).digest("hex").slice(0,16),r=L0(t).replace(/[^A-Za-z0-9._-]/g,"_").slice(0,80);return Af($f(),`${n}-${r}`)}function Cf(e){return`${pa(e)}.written`}function Of(e){return Rf("sha256").update(e).digest("hex")}async function B0(e){try{return await Ef(e),!0}catch{return!1}}async function ga(e,t){let n=`${e}.tmp-${process.pid}`;try{return await M0($f(),{recursive:!0,mode:448}),await H0(n,t,{mode:384}),await D0(n,384),await F0(n,e),!0}catch{return await Tf(n).catch(()=>{}),!1}}async function U0(e,t){let n=`${e}${j0}`;try{if(!(await Ef(n)).isFile())return!1}catch{return!1}let r=!await B0(t);if(r&&!await ga(t,await ha(n,"utf8")))throw new Error("backup");return await Tf(n).catch(()=>{}),r}async function z0(e,t){try{return(await ha(Cf(e),"utf8")).trim()===Of(t)}catch{return!1}}async function Pf(e,t){let n=t;try{n===void 0&&(n=await ha(e,"utf8"))}catch(r){return r.code==="ENOENT"}try{if(await U0(e,pa(e)))return!0}catch{return!1}return await z0(e,n)?!0:ga(pa(e),n)}async function ft(e,t,n){return!await Pf(e,n)||!await Ye(e,t)?!1:(await ga(Cf(e),`${Of(t)}
|
|
17
17
|
`),!0)}var j0,On=k(()=>{"use strict";H();ae();j0=".tkr-bak"});import{readFile as J0,writeFile as G0,rename as K0,mkdir as Df,chmod as Z0,stat as W0,unlink as V0}from"node:fs/promises";import{existsSync as q0,lstatSync as Y0,readlinkSync as X0,realpathSync as If}from"node:fs";import{basename as Q0,dirname as ls,join as e_,resolve as Nf}from"node:path";function I(e){return e!=null&&typeof e=="object"&&!Array.isArray(e)}async function te(e){if(!q0(e))return{};try{let t=JSON.parse(await J0(e,"utf8"));return I(t)?t:null}catch{return null}}function Hr(e){let t=Nf(e);for(let n=0;n<32;n++){try{return If(t)}catch{}try{if(!Y0(t).isSymbolicLink())break;t=Nf(ls(t),X0(t))}catch{break}}try{return e_(If(ls(t)),Q0(t))}catch{return t}}async function Ye(e,t){let n=Hr(e),r=`${n}.tmp-${process.pid}`;try{await Df(ls(n),{recursive:!0});let o=384;try{o=(await W0(n)).mode&511}catch{}return await G0(r,t,{mode:o}),await Z0(r,o),await K0(r,n),!0}catch{try{await V0(r)}catch{}return!1}}async function ne(e,t){try{await Df(ls(e),{recursive:!0})}catch{return!1}return ft(e,`${JSON.stringify(t,null,2)}
|
|
18
|
-
`)}function as(e){return`'${e.replace(/'/g,"'\\''")}'`}function Mf(e,t,n=process.platform,r="-x"){return n==="win32"?t:`[ ! ${r} ${as(e)} ] || exec ${t}`}function Rt(e,t,n){if(process.platform!=="win32")return vf(n),Mf(ut(),`/bin/sh ${as(ut())} ${e}`,process.platform,"-f");let r=xe()?lt(n):null;return r?[as(Qt(t)),...r].join(" "):`node ${as(n)}`}function Pe(e,t){if(typeof e!="string")return!1;if(e.includes(t))return!0;let n=lt(t);return n?.length?new RegExp(`^\\s*${t_}\\s+${n.join("\\s+")}(?:\\s|$)`,"i").test(e):!1}function Pn(e,t,n,r){let o=i=>i!==n&&t(i),s=!1;for(let i=e.length-1;i>=0;i--){let a=e[i];if(!r){o(a)&&(e.splice(i,1),s=!0);continue}if(!I(a)||!Array.isArray(a.hooks))continue;let l=a.hooks.filter(c=>!o(c));l.length!==a.hooks.length&&(s=!0,l.length?a.hooks=l:e.splice(i,1))}return s}var t_,ae=k(()=>{"use strict";Ir();Ve();is();On();t_=String.raw`(?:'(?:(?:[^']|'\\'')*[\\/])?tkr(?:\.(?:exe|cmd|bat|ps1))?'|"(?:[^"]*[\\/])?tkr(?:\.(?:exe|cmd|bat|ps1))?"|(?:[^\s'"]*[\\/])?tkr(?:\.(?:exe|cmd|bat|ps1))?)`});function de(e,t){let n=e[t];return typeof n=="string"&&n?n:null}function Lr(e){return e!=null&&typeof e=="object"&&!Array.isArray(e)}function r_(e){return de(e,"prompt_id")||de(e,"scratchpad_dir")?!0:Lr(e.effort)}function o_(e){return de(e,"tool_use_id")?.startsWith("toolu_")===!0||/^claude/i.test(de(e,"model")??"")}function Lf(e){return Lr(e)?u_.filter(([,t])=>t(e)).map(([t])=>t):[]}function ya(e,t){if(!Lr(e))return null;let n=Lf(e);return n.length>1?null:n.length===1?n[0]:o_(e)&&f_.has(t)?"claude-code":t==="codex"?null:t}function jf(e,t){let n=ya(e,t);return n==="claude-code"||n==="codex"?n:null}var s_,i_,a_,l_,c_,u_,f_,cs=k(()=>{"use strict";s_=new Set(["BeforeTool","AfterTool","BeforeAgent","AfterAgent","BeforeModel","AfterModel","BeforeToolSelection"]),i_=new Set(["preToolUse","postToolUse","beforeShellExecution","afterShellExecution","beforeSubmitPrompt","sessionStart","sessionEnd","stop"]),a_=new Set(["pre_tool","post_tool"]),l_=new Set(["before_tool_call","after_tool_call"]),c_=new Set(["runTerminalCommand","run_in_terminal"]),u_=[["codex",e=>de(e,"turn_id")!==null],["claude-code",r_],["cursor",e=>de(e,"cursor_version")!==null||de(e,"generation_id")!==null||de(e,"conversation_id")!==null||Array.isArray(e.workspace_roots)||i_.has(de(e,"hook_event_name")??"")],["gemini-cli",e=>s_.has(de(e,"hook_event_name")??"")],["qwen-code",e=>e.hook_event_name==="PreToolUse"&&e.tool_name==="run_shell_command"],["vibe",e=>a_.has(de(e,"hook_event_name")??"")],["antigravity",e=>Lr(e.toolCall)],["copilot",e=>de(e,"toolName")!==null&&"toolArgs"in e||c_.has(de(e,"tool_name")??"")],["grok",e=>e.toolName==="run_terminal_command"||e.tool_name==="run_terminal_command"||Lr(e.toolInput)&&!("toolArgs"in e)],["droid",e=>e.tool_name==="Execute"],["trae",e=>e.tool_name==="RunCommand"],["crush",e=>e.hook_event_name===void 0&&de(e,"event")!==null&&!l_.has(de(e,"event"))]],f_=new Set(["codex","antigravity"])});var At,ka=k(()=>{"use strict";cs();At="tkr-context-hook"});function ba(e){return typeof e=="string"&&(d_.test(e)||m_.test(e)||p_.test(e))}function
|
|
18
|
+
`)}function as(e){return`'${e.replace(/'/g,"'\\''")}'`}function Mf(e,t,n=process.platform,r="-x"){return n==="win32"?t:`[ ! ${r} ${as(e)} ] || exec ${t}`}function Rt(e,t,n){if(process.platform!=="win32")return vf(n),Mf(ut(),`/bin/sh ${as(ut())} ${e}`,process.platform,"-f");let r=xe()?lt(n):null;return r?[as(Qt(t)),...r].join(" "):`node ${as(n)}`}function Pe(e,t){if(typeof e!="string")return!1;if(e.includes(t))return!0;let n=lt(t);return n?.length?new RegExp(`^\\s*${t_}\\s+${n.join("\\s+")}(?:\\s|$)`,"i").test(e):!1}function Pn(e,t,n,r){let o=i=>i!==n&&t(i),s=!1;for(let i=e.length-1;i>=0;i--){let a=e[i];if(!r){o(a)&&(e.splice(i,1),s=!0);continue}if(!I(a)||!Array.isArray(a.hooks))continue;let l=a.hooks.filter(c=>!o(c));l.length!==a.hooks.length&&(s=!0,l.length?a.hooks=l:e.splice(i,1))}return s}var t_,ae=k(()=>{"use strict";Ir();Ve();is();On();t_=String.raw`(?:'(?:(?:[^']|'\\'')*[\\/])?tkr(?:\.(?:exe|cmd|bat|ps1))?'|"(?:[^"]*[\\/])?tkr(?:\.(?:exe|cmd|bat|ps1))?"|(?:[^\s'"]*[\\/])?tkr(?:\.(?:exe|cmd|bat|ps1))?)`});function de(e,t){let n=e[t];return typeof n=="string"&&n?n:null}function Lr(e){return e!=null&&typeof e=="object"&&!Array.isArray(e)}function r_(e){return de(e,"prompt_id")||de(e,"scratchpad_dir")?!0:Lr(e.effort)}function o_(e){return de(e,"tool_use_id")?.startsWith("toolu_")===!0||/^claude/i.test(de(e,"model")??"")}function Lf(e){return Lr(e)?u_.filter(([,t])=>t(e)).map(([t])=>t):[]}function ya(e,t){if(!Lr(e))return null;let n=Lf(e);return n.length>1?null:n.length===1?n[0]:o_(e)&&f_.has(t)?"claude-code":t==="codex"?null:t}function jf(e,t){let n=ya(e,t);return n==="claude-code"||n==="codex"?n:null}var s_,i_,a_,l_,c_,u_,f_,cs=k(()=>{"use strict";s_=new Set(["BeforeTool","AfterTool","BeforeAgent","AfterAgent","BeforeModel","AfterModel","BeforeToolSelection"]),i_=new Set(["preToolUse","postToolUse","beforeShellExecution","afterShellExecution","beforeSubmitPrompt","sessionStart","sessionEnd","stop"]),a_=new Set(["pre_tool","post_tool"]),l_=new Set(["before_tool_call","after_tool_call"]),c_=new Set(["runTerminalCommand","run_in_terminal"]),u_=[["codex",e=>de(e,"turn_id")!==null],["claude-code",r_],["cursor",e=>de(e,"cursor_version")!==null||de(e,"generation_id")!==null||de(e,"conversation_id")!==null||Array.isArray(e.workspace_roots)||i_.has(de(e,"hook_event_name")??"")],["gemini-cli",e=>s_.has(de(e,"hook_event_name")??"")],["qwen-code",e=>e.hook_event_name==="PreToolUse"&&e.tool_name==="run_shell_command"],["vibe",e=>a_.has(de(e,"hook_event_name")??"")],["antigravity",e=>Lr(e.toolCall)],["copilot",e=>de(e,"toolName")!==null&&"toolArgs"in e||c_.has(de(e,"tool_name")??"")],["grok",e=>e.toolName==="run_terminal_command"||e.tool_name==="run_terminal_command"||Lr(e.toolInput)&&!("toolArgs"in e)],["droid",e=>e.tool_name==="Execute"],["trae",e=>e.tool_name==="RunCommand"],["crush",e=>e.hook_event_name===void 0&&de(e,"event")!==null&&!l_.has(de(e,"event"))]],f_=new Set(["codex","antigravity"])});var At,ka=k(()=>{"use strict";cs();At="tkr-context-hook"});function ba(e){return typeof e=="string"&&(d_.test(e)||m_.test(e)||p_.test(e))}function g_(e){if(typeof e!="string")return null;if(Pe(e,At))return"context";if(ba(e))return"claude-code";for(let[n,r]of h_)if(Pe(e,n))return r;return Pe(e,"tkr-agent-hook")?/\b(vibe|antigravity)['"]?\s*$/.exec(e)?.[1]??null:null}function Bf(e){return t=>{let n=g_(t);return n!==null&&n!=="context"&&n!==e}}var d_,m_,p_,h_,wa=k(()=>{"use strict";ae();ka();d_=/tkr-exec(?:\.exe)?['"]?\s+--(?:pre-tool-use|post-tool-use|session-start)(?=\s|['"]|$)/i,m_=/(?:^|[\s'"\\/])tkr(?:\.exe)?['"]?\s+hook\s+(?:pre-tool-use|post-tool-use|session-start|session-recap|reducer-session-start|reducer-prompt-submit|reducer-stop|command-expansion)(?=\s|['"]|$)/i,p_=/(?:tokmizer|\$\{?CLAUDE_PLUGIN_ROOT\}?)[^'"\n]*?[\\/]+(?:dist[\\/]+hooks-host[\\/]+(?:pre-tool-use|post-tool-use|session-recap|reducer-session-start|reducer-prompt-submit|reducer-stop|command-expansion)\.js|hooks[\\/]+on-session-start\.mjs)/i;h_=[["tkr-codex-hook","codex"],["tkr-cursor-hook","cursor"],["tkr-gemini-hook","gemini-cli"],["tkr-copilot-hook","copilot"],["tkr-droid-hook","droid"],["tkr-trae-hook","trae"],["tkr-qwen-hook","qwen-code"],["tkr-crush-hook","crush"],["tkr-junie-hook","junie"],["tkr-zcode-hook","zcode"],["tkr-grok-hook","grok"]]});var Qf={};ce(Qf,{claudeFormHook:()=>ba,codexConfigFile:()=>Br,codexFindingLines:()=>Ea,codexFindings:()=>Ur,codexHome:()=>In,codexPluginProvidesHook:()=>Dn,codexPlugins:()=>Sa,disableLegacyPlugins:()=>Xf,projectCodexDirs:()=>fs,repairCodexConfig:()=>ds,stripJsonHooks:()=>va,stripTomlHooks:()=>xa});import{existsSync as _a,readFileSync as y_,readdirSync as k_}from"node:fs";import{dirname as Uf,join as Be,resolve as jr}from"node:path";import Wf from"node:os";function In(){return process.env.CODEX_HOME||Be(Wf.homedir(),".codex")}function Br(){return Be(In(),"config.toml")}function Nn(e){try{return y_(e,"utf8")}catch{return null}}function Vf(e){let t=[],n=null;return e.forEach((r,o)=>{let s=n===null&&b_.test(r);for(let i of r.matchAll(/"""|'''/g))n===null?n=i[0]:n===i[0]&&(n=null);s&&(t.length&&(t[t.length-1].end=o),t.push({header:r.trim().replace(/\s*#.*$/,""),start:o,end:e.length}))}),t}function zf(e){return e.split(/[.+-]/).map(t=>/^\d+$/.test(t)?Number(t):-1)}function __(e,t){let[n,r]=[zf(e),zf(t)];for(let o=0;o<Math.max(n.length,r.length);o++){let s=(r[o]??-1)-(n[o]??-1);if(s)return s}return t.localeCompare(e)}function S_(e){let t=Be(In(),"plugins","cache",e,"tokmizer"),n;try{n=k_(t).sort(__)[0]}catch{return null}if(!n)return null;let r=Be(t,n),o=Nn(Be(r,".codex-plugin","plugin.json"));try{if(o!==null&&JSON.parse(o).hooks!=null)return"hooked"}catch{}return _a(Be(r,"hooks","hooks.json"))?"legacy":null}function Yf(e){let t=[],n=Vf(e);for(let r of n){let o=w_.exec(r.header);if(!o)continue;let s=e.slice(r.start+1,r.end);t.push({marketplace:o[1]??o[2],enabled:!s.some(i=>/^\s*enabled\s*=\s*false\s*(?:#.*)?$/.test(i)),table:r})}return e.forEach((r,o)=>{let s=qf.exec(r);if(!s)return;let i=n.filter(l=>l.start<o&&o<l.end)[0];(!/^\s*plugins\s*\./.test(r)?i?.header!=="[plugins]":i!==void 0)||t.push({marketplace:s[3],enabled:!/(?:^|,)\s*enabled\s*=\s*false\s*(?:,|$)/.test(s[4]),line:o})}),t}function Sa(e=Nn(Br())){return e?Yf(e.split(/\r?\n/)).map(t=>({id:`tokmizer@${t.marketplace}`,marketplace:t.marketplace,enabled:t.enabled,state:S_(t.marketplace)})):[]}function Dn(){let e=Sa().filter(t=>t.enabled&&t.state);return e.length>0&&e.every(t=>t.state==="hooked")}function Xf(e,t){let n=e.split(/(?<=\n)/),r=n.map(s=>s.replace(/\r?\n$/,"")),o=Yf(r).filter(s=>t.includes(`tokmizer@${s.marketplace}`));for(let s of o.sort((i,a)=>(a.table?.start??a.line)-(i.table?.start??i.line))){if(s.line!==void 0){let c=qf.exec(r[s.line]),u=/\benabled\s*=\s*\w+/.test(c[4])?c[4].replace(/\benabled\s*=\s*\w+/,"enabled = false"):c[4].trim()?` enabled = false,${c[4]}`:" enabled = false ";n[s.line]=`${c[1]}${u}${c[5]}${n[s.line].slice(r[s.line].length)}`;continue}let i=s.table,a=/\r\n$/.test(n[i.start]??"")?`\r
|
|
19
19
|
`:`
|
|
20
|
-
`,l=r.slice(i.start+1,i.end).findIndex(c=>/^\s*enabled\s*=/.test(c));l>=0?n[i.start+1+l]=`enabled = false${a}`:n.splice(i.start+1,0,`enabled = false${a}`),/\n$/.test(n[i.start])||(n[i.start]+=a)}return n.join("")}function Gf(e){let t=e.trim();if(t.startsWith("'"))return/^'([^']*)'/.exec(t)?.[1]??t;let n=/^"((?:\\.|[^"\\])*)"/.exec(t);if(!n)return t;try{return JSON.parse(`"${n[1]}"`)}catch{return n[1]}}function xa(e,t){let n=e.split(/(?<=\n)/),r=n.map(u=>u.replace(/\r?\n$/,"")),o=Vf(r),s=new Set,i=new Map,a=[],l=[];o.forEach((u,f)=>{let d=r.slice(u.start+1,u.end);if(Jf.test(u.header)){let g=d.map(y=>v_.exec(y)?.[1]).find(y=>y!=null);g&&t(Gf(g))&&(s.add(u),a.push(g.trim()));return}let m=x_.exec(u.header);if(!m)return;let p=[];for(let g of o.slice(f+1)){if(Jf.exec(g.header)?.[2]!==m[2])break;p.push(g)}i.set(u,p)});for(let[u,f]of i)f.length&&f.every(d=>s.has(d))&&s.add(u);for(let u of[...s].sort((f,d)=>d.start-f.start)){let f=u.end,d=f;for(;d-1>u.start&&/^\s*(?:#.*)?$/.test(r[d-1]);)d--;let m=r.slice(d,f).findIndex(p=>/^\s*#/.test(p));m>=0&&f<r.length&&(f=d+m),n.splice(u.start,f-u.start)}let c=n.join("");for(let u of c.split(/\r?\n/))if(!/^\s*#/.test(u))for(let f of u.matchAll(E_))t(Gf(f[1]))&&l.push(u.trim());return{text:c,removed:a,inline:l}}function va(e,t){let n=[];if(!I(e.hooks))return n;let r=e.hooks;for(let[o,s]of Object.entries(r)){if(!Array.isArray(s))continue;let i=[];for(let a of s){if(!I(a)||!Array.isArray(a.hooks)){i.push(a);continue}let l=a.hooks.filter(c=>{let u=I(c)&&t(c.command);return u&&n.push(String(c.command)),!u});l.length&&i.push(l.length===a.hooks.length?a:{...a,hooks:l})}i.length?r[o]=i:delete r[o]}return n}function T_(){return Be(In(),"hooks.json")}function fs(e=process.cwd()){let t=[],n=new Set([jr(Wf.homedir()),jr(In(),"..")]),r=jr(e);for(let o=0;o<64;o++){let s=Be(r,".codex");if(jr(s)!==jr(In())&&_a(s)&&t.push(s),_a(Be(r,".git"))||n.has(r)||Uf(r)===r)break;r=Uf(r)}return t}function Kf(e){let t=Nn(e);if(!t)return null;try{let n=JSON.parse(t);if(!I(n))return null;let r=va(structuredClone(n),us);return r.length?{kind:"hooks-json",file:e,commands:r}:null}catch{return null}}function Zf(e,t=Nn(e)){if(!t)return null;let n=xa(t,us);return n.removed.length||n.inline.length?{kind:"config-toml",file:e,commands:n.removed,inline:n.inline}:null}function Ur(e=process.cwd(),t=!1){let n=[Kf(T_())],r=Nn(Br());n.push(Zf(Br(),r));let o=r?Sa(r).filter(s=>s.enabled&&s.state==="legacy").map(s=>s.id):[];if(o.length&&n.push({kind:"legacy-plugin",file:Br(),ids:o}),t)for(let s of fs(e))n.push(Kf(Be(s,"hooks.json")),Zf(Be(s,"config.toml")));return n.filter(s=>s!==null)}function Ea(e){return e.map(t=>t.kind==="legacy-plugin"?`Codex: the ${t.ids.join(", ")} plugin is an old build that makes Codex run the Claude Code hooks (error "updatedInput without permissionDecision:allow") \u2014 run: tkr doctor --fix`:t.kind==="config-toml"&&t.inline.length&&!t.commands.length?`Codex: ${t.file} has Tokmizer hooks made for another agent, written in a form tkr cannot edit safely \u2014 remove them by hand, then run: tkr setup-codex`:`Codex: ${t.file} has ${t.commands.length} Tokmizer hook${t.commands.length===1?"":"s"} made for another agent (copied or imported, e.g. by Codex /import) \u2014 run: tkr doctor --fix`)}async function ds(e=Ur()){let t=[],n=!1,r=!1;for(let o of e){if(o.kind==="hooks-json"){let i=await te(o.file),a=i?va(i,us):[];if(!i||a.length&&!await ne(o.file,i)){r=!0,t.push(`Could not update ${o.file}; remove the Tokmizer hooks made for another agent from it by hand.`);continue}a.length&&(n=!0,t.push(`Removed ${a.length} Tokmizer hook${a.length===1?"":"s"} made for another agent from ${o.file} (backup in ~/.tokmizer/backup/config).`));continue}let s=Nn(o.file);if(s!==null){if(o.kind==="config-toml"){let i=xa(s,us);if(!i.removed.length)continue;if(!await ft(o.file,i.text,s)){r=!0,t.push(`Could not update ${o.file}; remove the Tokmizer hooks made for another agent from it by hand.`);continue}n=!0,t.push(`Removed ${i.removed.length} Tokmizer hook${i.removed.length===1?"":"s"} made for another agent from ${o.file} (backup in ~/.tokmizer/backup/config).`);continue}if(!await ft(o.file,Xf(s,o.ids),s)){r=!0,t.push(`Could not update ${o.file}; run: codex plugin remove ${o.ids[0]}`);continue}n=!0,t.push(`Turned off the old ${o.ids.join(", ")} Codex plugin, which ran the Claude Code hooks (backup in ~/.tokmizer/backup/config). Once a newer Tokmizer is out, codex plugin marketplace upgrade then codex plugin add ${o.ids[0]} brings it back.`)}}return{lines:t,changed:n,error:r}}var us,b_,w_,qf,x_,Jf,v_,E_,Ta=k(()=>{"use strict";ae();On();wa();wa();us=Bf("codex");b_=/^\s*\[\[?[^\[\]=,]+\]\]?\s*(?:#.*)?$/;w_=/^\[\s*plugins\s*\.\s*(?:"tokmizer@([^"]+)"|'tokmizer@([^']+)')\s*\]$/,qf=/^(\s*(?:plugins\s*\.\s*)?(["'])tokmizer@([^"']+)\2\s*=\s*\{)([^}]*)(\}.*)$/;x_=/^\[\[\s*hooks\s*\.\s*(["']?)([A-Za-z]+)\1\s*\]\]$/,Jf=/^\[\[\s*hooks\s*\.\s*(["']?)([A-Za-z]+)\1\s*\.\s*(["']?)hooks\3\s*\]\]$/,v_=/^\s*command\s*=\s*(.+)$/,E_=/\bcommand\s*=\s*("(?:\\.|[^"\\])*"|'[^']*')/g});var od={};ce(od,{codexDoctorFix:()=>P_,codexDoctorLines:()=>O_,codexHookCommand:()=>C_,codexHookInstalled:()=>Ca,codexHooksFile:()=>Ie,ensureCodexHook:()=>td,removeCodexHook:()=>nd,setupCodexHook:()=>rd});import{existsSync as R_,readFileSync as A_}from"node:fs";import{join as ms}from"node:path";import $_ from"node:os";function Ie(){return ms(process.env.CODEX_HOME||ms($_.homedir(),".codex"),"hooks.json")}function Ra(e){return e!=null&&typeof e=="object"&&Pe(e.command,ed)}function Aa(e){return(Array.isArray(e.hooks)?e.hooks:[]).find(Ra)}function $a(){try{return(JSON.parse(A_(Ie(),"utf8")).hooks?.PreToolUse??[]).some(t=>Aa(t)!=null)}catch{return!1}}function Ca(){return $a()||Dn()}async function td(e){let t=Ie(),n=await te(t);if(!n)return"error";let r=n.hooks&&typeof n.hooks=="object"?n.hooks:{},o=Array.isArray(r.PreToolUse)?r.PreToolUse:[],s="added",i=o.map(Aa).find(a=>a!=null);if(i){let a=Pn(o,Ra,i,!0);if(i.command===e&&i.timeout===10&&!a)return"present";i.command=e,i.timeout=10,s="updated"}else o.push({matcher:"Bash",hooks:[{type:"command",command:e,timeout:10}]});return r.PreToolUse=o,n.hooks=r,await ne(t,n)?s:"error"}function C_(e,t){return Rt(ed,e,t)}async function nd(){let e=Ie();if(!R_(e))return"absent";let t=await te(e);if(!t)return"error";let n=Array.isArray(t.hooks?.PreToolUse)?t.hooks.PreToolUse:[];if(!n.some(o=>Aa(o)!=null))return"absent";let r=n.map(o=>({...o,hooks:(o.hooks??[]).filter(s=>!Ra(s))})).filter(o=>o.hooks.length>0);return t.hooks.PreToolUse=r,r.length||delete t.hooks.PreToolUse,await ne(e,t)?"removed":"error"}async function rd(e){let t=await ds();return Dn()?{hook:await nd()==="error"?"error":"plugin",repair:t}:{hook:await td(e),repair:t}}function O_(){let e=Ea(Ur(process.cwd(),!0));return Dn()&&$a()&&e.push(`Codex: the Tokmizer plugin and ${Ie()} both run the Tokmizer hook \u2014 run: tkr doctor --fix`),e}async function P_(e){let t=Ur(process.cwd(),!0),n=Dn()&&$a();if(!t.length&&!n)return[];let r=new Set(fs().flatMap(l=>[ms(l,"hooks.json"),ms(l,"config.toml")])),o=await ds(t.filter(l=>r.has(l.file))),{hook:s,repair:i}=await rd(e),a=[...o.lines,...i.lines];return s==="error"?a.push(`Could not update ${Ie()}; run tkr setup-codex again.`):s==="plugin"?a.push(n?`Removed the extra Tokmizer hook from ${Ie()}: the Tokmizer Codex plugin already runs it.`:"The Tokmizer Codex plugin runs the Codex hook."):a.push(`${s==="present"?"The Codex hook is set":"Added the Codex hook"} in ${Ie()}.`),(i.changed||o.changed||s==="added"||s==="updated")&&a.push("In Codex, run /hooks once, approve the Tokmizer hook, then restart Codex."),a}var ed,ps=k(()=>{"use strict";ae();Ta();ed="tkr-codex-hook"});import{existsSync as EN,readFileSync as I_}from"node:fs";import{join as N_}from"node:path";import D_ from"node:os";function zr(){return N_(D_.homedir(),".cursor","hooks.json")}function F_(e){return I(e)&&Pe(e.command,M_)}function H_(e){let t=I(e.hooks)?e.hooks:{},n=Array.isArray(t[sd])?t[sd]:[];return{hooks:t,entries:n}}function gs(){try{let e=JSON.parse(I_(zr(),"utf8"));return H_(e).entries.some(F_)}catch{return!1}}var M_,sd,hs=k(()=>{"use strict";ae();M_="tkr-cursor-hook",sd="preToolUse"});import{existsSync as ON,readFileSync as L_}from"node:fs";import{join as j_}from"node:path";import B_ from"node:os";function Jr(){return j_(process.env.GEMINI_CLI_HOME||B_.homedir(),".gemini","settings.json")}function z_(e){return I(e)&&Pe(e.command,U_)}function J_(e){return(Array.isArray(e.hooks)?e.hooks:[]).find(z_)}function G_(e){let t=I(e.hooks)?e.hooks:{},n=Array.isArray(t[id])?t[id]:[];return{hooks:t,groups:n}}function ad(){try{let e=JSON.parse(L_(Jr(),"utf8"));return G_(e).groups.some(t=>J_(t)!=null)}catch{return!1}}var U_,id,ys=k(()=>{"use strict";ae();U_="tkr-gemini-hook",id="BeforeTool"});import{existsSync as K_,readFileSync as Z_}from"node:fs";function ks(e,t){return I(e)&&Pe(e.command,t)}function ld(e){return e.path??(e.nested?["hooks"]:[])}function cd(e,t){let n=e;for(let r of ld(t))I(n[r])||(n[r]={}),n=n[r];return n}function ud(e,t){let n=e;for(let o of ld(t))n=I(n)?n[o]:void 0;if(!I(n))return[];let r=n[t.event];return Array.isArray(r)?r:[]}function W_(e){return I(e)&&Array.isArray(e.hooks)?e.hooks:[]}function fd(e,t){return(t.matcher===void 0?e:e.flatMap(W_)).filter(r=>ks(r,t.mark))}function dd(e,t){return fd(ud(e,t),t).length>0}function Gr(e,t){try{let n=JSON.parse(Z_(e,"utf8"));return I(n)&&dd(n,t)}catch{return!1}}function V_(e,t,n){let r=cd(e,t),o=Array.isArray(r[t.event])?r[t.event]:[];r[t.event]=o;let s=fd(o,t)[0],i=t.entry(n);if(s){let a=Pn(o,c=>ks(c,t.mark),s,t.matcher!==void 0),l=Object.entries(i).filter(([c,u])=>JSON.stringify(s[c])!==JSON.stringify(u));if(!l.length&&!a)return"present";for(let[c,u]of l)s[c]=u;return"updated"}return o.push(t.matcher===void 0?i:{matcher:t.matcher,hooks:[i]}),"added"}function q_(e,t){if(!dd(e,t))return!1;let n=cd(e,t),r=ud(e,t),o=t.matcher===void 0?r.filter(s=>!ks(s,t.mark)):r.map(s=>I(s)&&Array.isArray(s.hooks)?{...s,hooks:s.hooks.filter(i=>!ks(i,t.mark))}:s).filter(s=>!I(s)||!Array.isArray(s.hooks)||s.hooks.length>0);return o.length?n[t.event]=o:delete n[t.event],!0}async function Kr(e,t,n){let r=await te(e);if(!r||t.prepare&&!t.prepare(r))return"error";let o=V_(r,t,n);return o==="present"||await ne(e,r)?o:"error"}async function en(e,t){if(!K_(e))return"absent";let n=await te(e);return n?q_(n,t)?await ne(e,n)?"removed":"error":"absent":"error"}var Oa=k(()=>{"use strict";ae()});import{existsSync as Ia,readFileSync as Y_}from"node:fs";import{join as le}from"node:path";import X_ from"node:os";function Xe(){return X_.homedir()}function Fn(e){return e.version===void 0&&(e.version=1),e.version===1}function Q_(e,t,n){return Promise.all(e.map(r=>Kr(r,t,n))).then(r=>r.includes("error")?"error":r.includes("updated")?"updated":r.includes("added")?"added":"present")}function eS(e,t){return Promise.all(e.map(n=>en(n,t))).then(n=>n.includes("error")?"error":n.includes("removed")?"removed":"absent")}function tn(e,t){return{...e,installed:()=>e.files().some(n=>Gr(n,t)),ensure:n=>Q_(e.files(),t,n),remove:()=>eS(e.files(),t)}}function Da(){return le(process.env.COPILOT_HOME||le(Xe(),".copilot"),"hooks","tokmizer.json")}function Ma(){let e=[le(Xe(),".trae","hooks.json")];return Ia(le(Xe(),".trae-cn"))&&e.push(le(Xe(),".trae-cn","hooks.json")),e}function Fa(){return le(process.env.QWEN_HOME||le(Xe(),".qwen"),"settings.json")}function sS(){return le(process.env.XDG_CONFIG_HOME||le(Xe(),".config"),"crush","crush.json")}function aS(){return le(Xe(),".junie","config.json")}function Ha(e){return e.hooks===void 0&&(e.hooks={}),I(e.hooks)?(e.hooks.enabled===void 0&&(e.hooks.enabled=!0),e.hooks.events===void 0||I(e.hooks.events)):!1}function La(){return le(Xe(),".zcode","cli","config.json")}function uS(){return le(Xe(),".grok","hooks","tokmizer.json")}function Pa(){return le(Xe(),".factory")}function Mn(){return[{file:le(Pa(),"hooks.json"),spec:Na},{file:le(Pa(),"hooks","hooks.json"),spec:Na},{file:le(Pa(),"settings.json"),spec:dS}]}function md(e){try{let t=JSON.parse(Y_(e,"utf8"));return I(t)?t:null}catch{return null}}function pd(e,t){let n=t?e?.hooks:e;return I(n)&&Array.isArray(n.PreToolUse)&&n.PreToolUse.length>0}function bs(){let[e,t,n]=Mn(),r=Ia(e.file)?e:Ia(t.file)?t:null;return r&&pd(md(r.file),!1)?r:pd(md(n.file),!0)?n:r??e}var tS,nS,rS,oS,iS,lS,cS,fS,Na,dS,mS,Hn,ws=k(()=>{"use strict";ae();Oa();tS={mark:"tkr-copilot-hook",event:"PreToolUse",nested:!0,entry:e=>({type:"command",command:e,bash:e,powershell:e,timeout:10,timeoutSec:10}),prepare:Fn};nS={mark:"tkr-trae-hook",event:"PreToolUse",nested:!0,matcher:"RunCommand",entry:e=>({type:"command",command:e,timeout:30}),prepare:Fn};rS={mark:"tkr-qwen-hook",event:"PreToolUse",nested:!0,matcher:"run_shell_command",entry:e=>({name:"tokmizer",type:"command",command:e,timeout:10})};oS={mark:"tkr-crush-hook",event:"PreToolUse",nested:!0,entry:e=>({name:"tokmizer",matcher:"^bash$",command:e,timeout:10})};iS={mark:"tkr-junie-hook",event:"PreToolUse",nested:!0,matcher:"^Bash$",entry:e=>({type:"command",command:e,timeout:10})};lS={mark:"tkr-zcode-hook",event:"PreToolUse",nested:!0,path:["hooks","events"],matcher:"Bash",entry:e=>({type:"command",command:e,timeoutMs:1e4}),prepare:Ha};cS={mark:"tkr-grok-hook",event:"PreToolUse",nested:!0,matcher:"Bash",entry:e=>({type:"command",command:e,timeout:10})};fS="tkr-droid-hook",Na={mark:fS,event:"PreToolUse",nested:!1,matcher:"Execute",entry:e=>({type:"command",command:e,timeout:10})},dS={...Na,nested:!0};mS={id:"droid",label:"Factory Droid",setup:"tkr setup-droid",bin:"tkr-droid-hook",restart:"Restart Droid, then check it with /hooks.",files:()=>[bs().file],installed:()=>Mn().some(e=>Gr(e.file,e.spec)),ensure:async e=>{let t=bs(),n=await Kr(t.file,t.spec,e);return n==="error"||await Promise.all(Mn().filter(r=>r.file!==t.file).map(r=>en(r.file,r.spec))),n},remove:async()=>{let e=await Promise.all(Mn().map(t=>en(t.file,t.spec)));return e.includes("error")?"error":e.includes("removed")?"removed":"absent"}},Hn=[tn({id:"copilot",label:"GitHub Copilot",setup:"tkr setup-copilot",bin:"tkr-copilot-hook",restart:"Restart VS Code or Copilot CLI so they load the new hook.",files:()=>[Da()]},tS),mS,tn({id:"trae",label:"Trae",setup:"tkr setup-trae",bin:"tkr-trae-hook",restart:"Restart Trae so it loads the new hook.",files:Ma},nS),tn({id:"qwen-code",label:"Qwen Code",setup:"tkr setup-qwen",bin:"tkr-qwen-hook",restart:"Restart Qwen Code, then check it with /hooks.",files:()=>[Fa()]},rS),tn({id:"crush",label:"Crush",setup:"tkr setup-crush",bin:"tkr-crush-hook",restart:"Restart Crush so it loads the new hook.",files:()=>[sS()]},oS),tn({id:"junie",label:"Junie CLI",setup:"tkr setup-junie",bin:"tkr-junie-hook",restart:"Restart Junie CLI so it loads the new hook.",files:()=>[aS()]},iS),tn({id:"zcode",label:"ZCode",setup:"tkr setup-zcode",bin:"tkr-zcode-hook",restart:"Restart ZCode so it loads the new hook.",files:()=>[La()]},lS),tn({id:"grok",label:"Grok Build",setup:"tkr setup-grok",bin:"tkr-grok-hook",restart:"Restart Grok Build (1.0.4 or newer) so it loads the new hook.",files:()=>[uS()]},cS)]});import{existsSync as KN,accessSync as ZN,constants as WN,readFileSync as pS}from"node:fs";function hS(e){return e.includes(gS)}function gd(e){try{return hS(pS(e,"utf8"))}catch{return!1}}var gS,hd=k(()=>{"use strict";ae();Ve();On();H();gS='"rewrite", "--host"'});import{readFile as kd,mkdir as yS}from"node:fs/promises";import{existsSync as Ba,readFileSync as bd}from"node:fs";import{dirname as kS,join as ja}from"node:path";import wd from"node:os";function Vr(){return ja(process.env.VIBE_HOME||ja(wd.homedir(),".vibe"),"hooks.toml")}function yd(e){return JSON.stringify(e)}function bS(e){return["[[hooks]]",`name = ${yd(_d)}`,'type = "pre_tool"','match = "bash"',`command = ${yd(e)}`,"timeout = 10.0","strict = false",'description = "Route shell commands through tokmizer."',""].join(`
|
|
20
|
+
`,l=r.slice(i.start+1,i.end).findIndex(c=>/^\s*enabled\s*=/.test(c));l>=0?n[i.start+1+l]=`enabled = false${a}`:n.splice(i.start+1,0,`enabled = false${a}`),/\n$/.test(n[i.start])||(n[i.start]+=a)}return n.join("")}function Gf(e){let t=e.trim();if(t.startsWith("'"))return/^'([^']*)'/.exec(t)?.[1]??t;let n=/^"((?:\\.|[^"\\])*)"/.exec(t);if(!n)return t;try{return JSON.parse(`"${n[1]}"`)}catch{return n[1]}}function xa(e,t){let n=e.split(/(?<=\n)/),r=n.map(u=>u.replace(/\r?\n$/,"")),o=Vf(r),s=new Set,i=new Map,a=[],l=[];o.forEach((u,f)=>{let d=r.slice(u.start+1,u.end);if(Jf.test(u.header)){let h=d.map(y=>v_.exec(y)?.[1]).find(y=>y!=null);h&&t(Gf(h))&&(s.add(u),a.push(h.trim()));return}let m=x_.exec(u.header);if(!m)return;let p=[];for(let h of o.slice(f+1)){if(Jf.exec(h.header)?.[2]!==m[2])break;p.push(h)}i.set(u,p)});for(let[u,f]of i)f.length&&f.every(d=>s.has(d))&&s.add(u);for(let u of[...s].sort((f,d)=>d.start-f.start)){let f=u.end,d=f;for(;d-1>u.start&&/^\s*(?:#.*)?$/.test(r[d-1]);)d--;let m=r.slice(d,f).findIndex(p=>/^\s*#/.test(p));m>=0&&f<r.length&&(f=d+m),n.splice(u.start,f-u.start)}let c=n.join("");for(let u of c.split(/\r?\n/))if(!/^\s*#/.test(u))for(let f of u.matchAll(E_))t(Gf(f[1]))&&l.push(u.trim());return{text:c,removed:a,inline:l}}function va(e,t){let n=[];if(!I(e.hooks))return n;let r=e.hooks;for(let[o,s]of Object.entries(r)){if(!Array.isArray(s))continue;let i=[];for(let a of s){if(!I(a)||!Array.isArray(a.hooks)){i.push(a);continue}let l=a.hooks.filter(c=>{let u=I(c)&&t(c.command);return u&&n.push(String(c.command)),!u});l.length&&i.push(l.length===a.hooks.length?a:{...a,hooks:l})}i.length?r[o]=i:delete r[o]}return n}function T_(){return Be(In(),"hooks.json")}function fs(e=process.cwd()){let t=[],n=new Set([jr(Wf.homedir()),jr(In(),"..")]),r=jr(e);for(let o=0;o<64;o++){let s=Be(r,".codex");if(jr(s)!==jr(In())&&_a(s)&&t.push(s),_a(Be(r,".git"))||n.has(r)||Uf(r)===r)break;r=Uf(r)}return t}function Kf(e){let t=Nn(e);if(!t)return null;try{let n=JSON.parse(t);if(!I(n))return null;let r=va(structuredClone(n),us);return r.length?{kind:"hooks-json",file:e,commands:r}:null}catch{return null}}function Zf(e,t=Nn(e)){if(!t)return null;let n=xa(t,us);return n.removed.length||n.inline.length?{kind:"config-toml",file:e,commands:n.removed,inline:n.inline}:null}function Ur(e=process.cwd(),t=!1){let n=[Kf(T_())],r=Nn(Br());n.push(Zf(Br(),r));let o=r?Sa(r).filter(s=>s.enabled&&s.state==="legacy").map(s=>s.id):[];if(o.length&&n.push({kind:"legacy-plugin",file:Br(),ids:o}),t)for(let s of fs(e))n.push(Kf(Be(s,"hooks.json")),Zf(Be(s,"config.toml")));return n.filter(s=>s!==null)}function Ea(e){return e.map(t=>t.kind==="legacy-plugin"?`Codex: the ${t.ids.join(", ")} plugin is an old build that makes Codex run the Claude Code hooks (error "updatedInput without permissionDecision:allow") \u2014 run: tkr doctor --fix`:t.kind==="config-toml"&&t.inline.length&&!t.commands.length?`Codex: ${t.file} has Tokmizer hooks made for another agent, written in a form tkr cannot edit safely \u2014 remove them by hand, then run: tkr setup-codex`:`Codex: ${t.file} has ${t.commands.length} Tokmizer hook${t.commands.length===1?"":"s"} made for another agent (copied or imported, e.g. by Codex /import) \u2014 run: tkr doctor --fix`)}async function ds(e=Ur()){let t=[],n=!1,r=!1;for(let o of e){if(o.kind==="hooks-json"){let i=await te(o.file),a=i?va(i,us):[];if(!i||a.length&&!await ne(o.file,i)){r=!0,t.push(`Could not update ${o.file}; remove the Tokmizer hooks made for another agent from it by hand.`);continue}a.length&&(n=!0,t.push(`Removed ${a.length} Tokmizer hook${a.length===1?"":"s"} made for another agent from ${o.file} (backup in ~/.tokmizer/backup/config).`));continue}let s=Nn(o.file);if(s!==null){if(o.kind==="config-toml"){let i=xa(s,us);if(!i.removed.length)continue;if(!await ft(o.file,i.text,s)){r=!0,t.push(`Could not update ${o.file}; remove the Tokmizer hooks made for another agent from it by hand.`);continue}n=!0,t.push(`Removed ${i.removed.length} Tokmizer hook${i.removed.length===1?"":"s"} made for another agent from ${o.file} (backup in ~/.tokmizer/backup/config).`);continue}if(!await ft(o.file,Xf(s,o.ids),s)){r=!0,t.push(`Could not update ${o.file}; run: codex plugin remove ${o.ids[0]}`);continue}n=!0,t.push(`Turned off the old ${o.ids.join(", ")} Codex plugin, which ran the Claude Code hooks (backup in ~/.tokmizer/backup/config). Once a newer Tokmizer is out, codex plugin marketplace upgrade then codex plugin add ${o.ids[0]} brings it back.`)}}return{lines:t,changed:n,error:r}}var us,b_,w_,qf,x_,Jf,v_,E_,Ta=k(()=>{"use strict";ae();On();wa();wa();us=Bf("codex");b_=/^\s*\[\[?[^\[\]=,]+\]\]?\s*(?:#.*)?$/;w_=/^\[\s*plugins\s*\.\s*(?:"tokmizer@([^"]+)"|'tokmizer@([^']+)')\s*\]$/,qf=/^(\s*(?:plugins\s*\.\s*)?(["'])tokmizer@([^"']+)\2\s*=\s*\{)([^}]*)(\}.*)$/;x_=/^\[\[\s*hooks\s*\.\s*(["']?)([A-Za-z]+)\1\s*\]\]$/,Jf=/^\[\[\s*hooks\s*\.\s*(["']?)([A-Za-z]+)\1\s*\.\s*(["']?)hooks\3\s*\]\]$/,v_=/^\s*command\s*=\s*(.+)$/,E_=/\bcommand\s*=\s*("(?:\\.|[^"\\])*"|'[^']*')/g});var od={};ce(od,{codexDoctorFix:()=>P_,codexDoctorLines:()=>O_,codexHookCommand:()=>C_,codexHookInstalled:()=>Ca,codexHooksFile:()=>Ie,ensureCodexHook:()=>td,removeCodexHook:()=>nd,setupCodexHook:()=>rd});import{existsSync as R_,readFileSync as A_}from"node:fs";import{join as ms}from"node:path";import $_ from"node:os";function Ie(){return ms(process.env.CODEX_HOME||ms($_.homedir(),".codex"),"hooks.json")}function Ra(e){return e!=null&&typeof e=="object"&&Pe(e.command,ed)}function Aa(e){return(Array.isArray(e.hooks)?e.hooks:[]).find(Ra)}function $a(){try{return(JSON.parse(A_(Ie(),"utf8")).hooks?.PreToolUse??[]).some(t=>Aa(t)!=null)}catch{return!1}}function Ca(){return $a()||Dn()}async function td(e){let t=Ie(),n=await te(t);if(!n)return"error";let r=n.hooks&&typeof n.hooks=="object"?n.hooks:{},o=Array.isArray(r.PreToolUse)?r.PreToolUse:[],s="added",i=o.map(Aa).find(a=>a!=null);if(i){let a=Pn(o,Ra,i,!0);if(i.command===e&&i.timeout===10&&!a)return"present";i.command=e,i.timeout=10,s="updated"}else o.push({matcher:"Bash",hooks:[{type:"command",command:e,timeout:10}]});return r.PreToolUse=o,n.hooks=r,await ne(t,n)?s:"error"}function C_(e,t){return Rt(ed,e,t)}async function nd(){let e=Ie();if(!R_(e))return"absent";let t=await te(e);if(!t)return"error";let n=Array.isArray(t.hooks?.PreToolUse)?t.hooks.PreToolUse:[];if(!n.some(o=>Aa(o)!=null))return"absent";let r=n.map(o=>({...o,hooks:(o.hooks??[]).filter(s=>!Ra(s))})).filter(o=>o.hooks.length>0);return t.hooks.PreToolUse=r,r.length||delete t.hooks.PreToolUse,await ne(e,t)?"removed":"error"}async function rd(e){let t=await ds();return Dn()?{hook:await nd()==="error"?"error":"plugin",repair:t}:{hook:await td(e),repair:t}}function O_(){let e=Ea(Ur(process.cwd(),!0));return Dn()&&$a()&&e.push(`Codex: the Tokmizer plugin and ${Ie()} both run the Tokmizer hook \u2014 run: tkr doctor --fix`),e}async function P_(e){let t=Ur(process.cwd(),!0),n=Dn()&&$a();if(!t.length&&!n)return[];let r=new Set(fs().flatMap(l=>[ms(l,"hooks.json"),ms(l,"config.toml")])),o=await ds(t.filter(l=>r.has(l.file))),{hook:s,repair:i}=await rd(e),a=[...o.lines,...i.lines];return s==="error"?a.push(`Could not update ${Ie()}; run tkr setup-codex again.`):s==="plugin"?a.push(n?`Removed the extra Tokmizer hook from ${Ie()}: the Tokmizer Codex plugin already runs it.`:"The Tokmizer Codex plugin runs the Codex hook."):a.push(`${s==="present"?"The Codex hook is set":"Added the Codex hook"} in ${Ie()}.`),(i.changed||o.changed||s==="added"||s==="updated")&&a.push("In Codex, run /hooks once, approve the Tokmizer hook, then restart Codex."),a}var ed,ps=k(()=>{"use strict";ae();Ta();ed="tkr-codex-hook"});import{existsSync as EN,readFileSync as I_}from"node:fs";import{join as N_}from"node:path";import D_ from"node:os";function zr(){return N_(D_.homedir(),".cursor","hooks.json")}function F_(e){return I(e)&&Pe(e.command,M_)}function H_(e){let t=I(e.hooks)?e.hooks:{},n=Array.isArray(t[sd])?t[sd]:[];return{hooks:t,entries:n}}function hs(){try{let e=JSON.parse(I_(zr(),"utf8"));return H_(e).entries.some(F_)}catch{return!1}}var M_,sd,gs=k(()=>{"use strict";ae();M_="tkr-cursor-hook",sd="preToolUse"});import{existsSync as ON,readFileSync as L_}from"node:fs";import{join as j_}from"node:path";import B_ from"node:os";function Jr(){return j_(process.env.GEMINI_CLI_HOME||B_.homedir(),".gemini","settings.json")}function z_(e){return I(e)&&Pe(e.command,U_)}function J_(e){return(Array.isArray(e.hooks)?e.hooks:[]).find(z_)}function G_(e){let t=I(e.hooks)?e.hooks:{},n=Array.isArray(t[id])?t[id]:[];return{hooks:t,groups:n}}function ad(){try{let e=JSON.parse(L_(Jr(),"utf8"));return G_(e).groups.some(t=>J_(t)!=null)}catch{return!1}}var U_,id,ys=k(()=>{"use strict";ae();U_="tkr-gemini-hook",id="BeforeTool"});import{existsSync as K_,readFileSync as Z_}from"node:fs";function ks(e,t){return I(e)&&Pe(e.command,t)}function ld(e){return e.path??(e.nested?["hooks"]:[])}function cd(e,t){let n=e;for(let r of ld(t))I(n[r])||(n[r]={}),n=n[r];return n}function ud(e,t){let n=e;for(let o of ld(t))n=I(n)?n[o]:void 0;if(!I(n))return[];let r=n[t.event];return Array.isArray(r)?r:[]}function W_(e){return I(e)&&Array.isArray(e.hooks)?e.hooks:[]}function fd(e,t){return(t.matcher===void 0?e:e.flatMap(W_)).filter(r=>ks(r,t.mark))}function dd(e,t){return fd(ud(e,t),t).length>0}function Gr(e,t){try{let n=JSON.parse(Z_(e,"utf8"));return I(n)&&dd(n,t)}catch{return!1}}function V_(e,t,n){let r=cd(e,t),o=Array.isArray(r[t.event])?r[t.event]:[];r[t.event]=o;let s=fd(o,t)[0],i=t.entry(n);if(s){let a=Pn(o,c=>ks(c,t.mark),s,t.matcher!==void 0),l=Object.entries(i).filter(([c,u])=>JSON.stringify(s[c])!==JSON.stringify(u));if(!l.length&&!a)return"present";for(let[c,u]of l)s[c]=u;return"updated"}return o.push(t.matcher===void 0?i:{matcher:t.matcher,hooks:[i]}),"added"}function q_(e,t){if(!dd(e,t))return!1;let n=cd(e,t),r=ud(e,t),o=t.matcher===void 0?r.filter(s=>!ks(s,t.mark)):r.map(s=>I(s)&&Array.isArray(s.hooks)?{...s,hooks:s.hooks.filter(i=>!ks(i,t.mark))}:s).filter(s=>!I(s)||!Array.isArray(s.hooks)||s.hooks.length>0);return o.length?n[t.event]=o:delete n[t.event],!0}async function Kr(e,t,n){let r=await te(e);if(!r||t.prepare&&!t.prepare(r))return"error";let o=V_(r,t,n);return o==="present"||await ne(e,r)?o:"error"}async function en(e,t){if(!K_(e))return"absent";let n=await te(e);return n?q_(n,t)?await ne(e,n)?"removed":"error":"absent":"error"}var Oa=k(()=>{"use strict";ae()});import{existsSync as Ia,readFileSync as Y_}from"node:fs";import{join as le}from"node:path";import X_ from"node:os";function Xe(){return X_.homedir()}function Fn(e){return e.version===void 0&&(e.version=1),e.version===1}function Q_(e,t,n){return Promise.all(e.map(r=>Kr(r,t,n))).then(r=>r.includes("error")?"error":r.includes("updated")?"updated":r.includes("added")?"added":"present")}function eS(e,t){return Promise.all(e.map(n=>en(n,t))).then(n=>n.includes("error")?"error":n.includes("removed")?"removed":"absent")}function tn(e,t){return{...e,installed:()=>e.files().some(n=>Gr(n,t)),ensure:n=>Q_(e.files(),t,n),remove:()=>eS(e.files(),t)}}function Da(){return le(process.env.COPILOT_HOME||le(Xe(),".copilot"),"hooks","tokmizer.json")}function Ma(){let e=[le(Xe(),".trae","hooks.json")];return Ia(le(Xe(),".trae-cn"))&&e.push(le(Xe(),".trae-cn","hooks.json")),e}function Fa(){return le(process.env.QWEN_HOME||le(Xe(),".qwen"),"settings.json")}function sS(){return le(process.env.XDG_CONFIG_HOME||le(Xe(),".config"),"crush","crush.json")}function aS(){return le(Xe(),".junie","config.json")}function Ha(e){return e.hooks===void 0&&(e.hooks={}),I(e.hooks)?(e.hooks.enabled===void 0&&(e.hooks.enabled=!0),e.hooks.events===void 0||I(e.hooks.events)):!1}function La(){return le(Xe(),".zcode","cli","config.json")}function uS(){return le(Xe(),".grok","hooks","tokmizer.json")}function Pa(){return le(Xe(),".factory")}function Mn(){return[{file:le(Pa(),"hooks.json"),spec:Na},{file:le(Pa(),"hooks","hooks.json"),spec:Na},{file:le(Pa(),"settings.json"),spec:dS}]}function md(e){try{let t=JSON.parse(Y_(e,"utf8"));return I(t)?t:null}catch{return null}}function pd(e,t){let n=t?e?.hooks:e;return I(n)&&Array.isArray(n.PreToolUse)&&n.PreToolUse.length>0}function bs(){let[e,t,n]=Mn(),r=Ia(e.file)?e:Ia(t.file)?t:null;return r&&pd(md(r.file),!1)?r:pd(md(n.file),!0)?n:r??e}var tS,nS,rS,oS,iS,lS,cS,fS,Na,dS,mS,Hn,ws=k(()=>{"use strict";ae();Oa();tS={mark:"tkr-copilot-hook",event:"PreToolUse",nested:!0,entry:e=>({type:"command",command:e,bash:e,powershell:e,timeout:10,timeoutSec:10}),prepare:Fn};nS={mark:"tkr-trae-hook",event:"PreToolUse",nested:!0,matcher:"RunCommand",entry:e=>({type:"command",command:e,timeout:30}),prepare:Fn};rS={mark:"tkr-qwen-hook",event:"PreToolUse",nested:!0,matcher:"run_shell_command",entry:e=>({name:"tokmizer",type:"command",command:e,timeout:10})};oS={mark:"tkr-crush-hook",event:"PreToolUse",nested:!0,entry:e=>({name:"tokmizer",matcher:"^bash$",command:e,timeout:10})};iS={mark:"tkr-junie-hook",event:"PreToolUse",nested:!0,matcher:"^Bash$",entry:e=>({type:"command",command:e,timeout:10})};lS={mark:"tkr-zcode-hook",event:"PreToolUse",nested:!0,path:["hooks","events"],matcher:"Bash",entry:e=>({type:"command",command:e,timeoutMs:1e4}),prepare:Ha};cS={mark:"tkr-grok-hook",event:"PreToolUse",nested:!0,matcher:"Bash",entry:e=>({type:"command",command:e,timeout:10})};fS="tkr-droid-hook",Na={mark:fS,event:"PreToolUse",nested:!1,matcher:"Execute",entry:e=>({type:"command",command:e,timeout:10})},dS={...Na,nested:!0};mS={id:"droid",label:"Factory Droid",setup:"tkr setup-droid",bin:"tkr-droid-hook",restart:"Restart Droid, then check it with /hooks.",files:()=>[bs().file],installed:()=>Mn().some(e=>Gr(e.file,e.spec)),ensure:async e=>{let t=bs(),n=await Kr(t.file,t.spec,e);return n==="error"||await Promise.all(Mn().filter(r=>r.file!==t.file).map(r=>en(r.file,r.spec))),n},remove:async()=>{let e=await Promise.all(Mn().map(t=>en(t.file,t.spec)));return e.includes("error")?"error":e.includes("removed")?"removed":"absent"}},Hn=[tn({id:"copilot",label:"GitHub Copilot",setup:"tkr setup-copilot",bin:"tkr-copilot-hook",restart:"Restart VS Code or Copilot CLI so they load the new hook.",files:()=>[Da()]},tS),mS,tn({id:"trae",label:"Trae",setup:"tkr setup-trae",bin:"tkr-trae-hook",restart:"Restart Trae so it loads the new hook.",files:Ma},nS),tn({id:"qwen-code",label:"Qwen Code",setup:"tkr setup-qwen",bin:"tkr-qwen-hook",restart:"Restart Qwen Code, then check it with /hooks.",files:()=>[Fa()]},rS),tn({id:"crush",label:"Crush",setup:"tkr setup-crush",bin:"tkr-crush-hook",restart:"Restart Crush so it loads the new hook.",files:()=>[sS()]},oS),tn({id:"junie",label:"Junie CLI",setup:"tkr setup-junie",bin:"tkr-junie-hook",restart:"Restart Junie CLI so it loads the new hook.",files:()=>[aS()]},iS),tn({id:"zcode",label:"ZCode",setup:"tkr setup-zcode",bin:"tkr-zcode-hook",restart:"Restart ZCode so it loads the new hook.",files:()=>[La()]},lS),tn({id:"grok",label:"Grok Build",setup:"tkr setup-grok",bin:"tkr-grok-hook",restart:"Restart Grok Build (1.0.4 or newer) so it loads the new hook.",files:()=>[uS()]},cS)]});import{existsSync as KN,accessSync as ZN,constants as WN,readFileSync as pS}from"node:fs";function gS(e){return e.includes(hS)}function hd(e){try{return gS(pS(e,"utf8"))}catch{return!1}}var hS,gd=k(()=>{"use strict";ae();Ve();On();H();hS='"rewrite", "--host"'});import{readFile as kd,mkdir as yS}from"node:fs/promises";import{existsSync as Ba,readFileSync as bd}from"node:fs";import{dirname as kS,join as ja}from"node:path";import wd from"node:os";function Vr(){return ja(process.env.VIBE_HOME||ja(wd.homedir(),".vibe"),"hooks.toml")}function yd(e){return JSON.stringify(e)}function bS(e){return["[[hooks]]",`name = ${yd(_d)}`,'type = "pre_tool"','match = "bash"',`command = ${yd(e)}`,"timeout = 10.0","strict = false",'description = "Route shell commands through tokmizer."',""].join(`
|
|
21
21
|
`)}function Ua(e){let t=[],n=[];for(let r of e.split(/(?<=\n)/))/^\s*\[\[?\s*[A-Za-z0-9_-]/.test(r)&&n.length&&(t.push(n.join("")),n=[]),n.push(r);return n.length&&t.push(n.join("")),t}function Wr(e){return/^\s*\[\[hooks\]\]/.test(e)&&new RegExp(`^\\s*name\\s*=\\s*"${_d}"\\s*$`,"m").test(e)}async function Sd(e,t){try{await yS(kS(e),{recursive:!0})}catch{return!1}return ft(e,t)}function xd(){try{return Ua(bd(Vr(),"utf8")).some(Wr)}catch{return!1}}async function vd(e){let t=Vr(),n="";try{Ba(t)&&(n=await kd(t,"utf8"))}catch{return"error"}let r=bS(e),o=Ua(n),s=o.filter(Wr);if(s.length===1&&s[0].trimEnd()===r.trimEnd())return"present";let i=o.filter(l=>!Wr(l)).join("").trimEnd(),a=i?`${i}
|
|
22
22
|
|
|
23
23
|
${r}`:r;return await Sd(t,a)?s.length?"updated":"added":"error"}async function Ed(){let e=Vr();if(!Ba(e))return"absent";let t;try{t=await kd(e,"utf8")}catch{return"error"}let n=Ua(t);if(!n.some(Wr))return"absent";let r=n.filter(s=>!Wr(s)).join("").trimEnd(),o=r?`${r}
|
|
24
|
-
`:"";return await Sd(e,o)?"removed":"error"}function dt(){return ja(wd.homedir(),".gemini","config","hooks.json")}function wS(e){return{enabled:!0,PreToolUse:[{matcher:"run_command",hooks:[{type:"command",command:e,timeout:10}]}]}}function Td(){try{let e=JSON.parse(bd(dt(),"utf8"));return I(e)&&I(e[Zr])}catch{return!1}}async function Rd(e){let t=dt(),n=await te(t);if(!n)return"error";let r=wS(e),o=n[Zr];return o!==void 0&&JSON.stringify(o)===JSON.stringify(r)?"present":(n[Zr]=r,await ne(t,n)?o===void 0?"added":"updated":"error")}async function Ad(){let e=dt();if(!Ba(e))return"absent";let t=await te(e);return t?Zr in t?(delete t[Zr],await ne(e,t)?"removed":"error"):"absent":"error"}var _d,Zr,za=k(()=>{"use strict";ae();On();_d="tokmizer-rewrite",Zr="tokmizer-rewrite"});import{dirname as _S,join as Ne}from"node:path";import SS from"node:os";function Ga(e){return Yr.find(t=>t.host===e)}function $d(e){return e.kind==="hook"?e.file():_S(e.files()[0].target)}function Xr(e){return e.kind==="hook"?e.installed():
|
|
24
|
+
`:"";return await Sd(e,o)?"removed":"error"}function dt(){return ja(wd.homedir(),".gemini","config","hooks.json")}function wS(e){return{enabled:!0,PreToolUse:[{matcher:"run_command",hooks:[{type:"command",command:e,timeout:10}]}]}}function Td(){try{let e=JSON.parse(bd(dt(),"utf8"));return I(e)&&I(e[Zr])}catch{return!1}}async function Rd(e){let t=dt(),n=await te(t);if(!n)return"error";let r=wS(e),o=n[Zr];return o!==void 0&&JSON.stringify(o)===JSON.stringify(r)?"present":(n[Zr]=r,await ne(t,n)?o===void 0?"added":"updated":"error")}async function Ad(){let e=dt();if(!Ba(e))return"absent";let t=await te(e);return t?Zr in t?(delete t[Zr],await ne(e,t)?"removed":"error"):"absent":"error"}var _d,Zr,za=k(()=>{"use strict";ae();On();_d="tokmizer-rewrite",Zr="tokmizer-rewrite"});import{dirname as _S,join as Ne}from"node:path";import SS from"node:os";function Ga(e){return Yr.find(t=>t.host===e)}function $d(e){return e.kind==="hook"?e.file():_S(e.files()[0].target)}function Xr(e){return e.kind==="hook"?e.installed():hd(e.files()[0].target)}var qr,Ja,Yr,_s=k(()=>{"use strict";ae();gd();za();qr=()=>SS.homedir(),Ja=()=>process.env.XDG_CONFIG_HOME||Ne(qr(),".config"),Yr=[{host:"opencode",label:"OpenCode",command:"setup-opencode",kind:"shim",files:()=>[{template:"opencode.js",target:Ne(Ja(),"opencode","plugins","tokmizer.js")}],next:"Restart OpenCode so it loads the plugin."},{host:"kilo",label:"Kilo Code",command:"setup-kilo",kind:"shim",files:()=>[{template:"kilo.js",target:Ne(Ja(),"kilo","plugin","tokmizer.js")}],next:"Restart Kilo Code (CLI or VS Code extension) so it loads the plugin."},{host:"amp",label:"Amp",command:"setup-amp",kind:"shim",files:()=>[{template:"amp.js",target:Ne(Ja(),"amp","plugins","tokmizer.js")}],next:"Reload plugins in Amp (or restart it), then check it with: amp plugins list"},{host:"vibe",label:"Mistral Vibe",command:"setup-vibe",kind:"hook",file:Vr,installed:xd,ensure:vd,remove:Ed,next:"Restart Vibe so it reads hooks.toml."},{host:"antigravity",label:"Antigravity",command:"setup-antigravity",kind:"hook",file:dt,installed:Td,ensure:Rd,remove:Ad,next:"Restart Antigravity, then check it with /hooks."},{host:"openclaw",label:"OpenClaw",command:"setup-openclaw",kind:"shim",files:()=>{let e=Ne(qr(),".openclaw","extensions","tokmizer");return["index.js","openclaw.plugin.json","package.json"].map(t=>({template:`openclaw/${t}`,target:Ne(e,t)}))},next:"Run: openclaw plugins enable tokmizer && openclaw gateway restart"},{host:"pi",label:"Pi",command:"setup-pi",kind:"shim",files:()=>[{template:"pi.js",target:Ne(process.env.PI_CODING_AGENT_DIR||Ne(qr(),".pi","agent"),"extensions","tokmizer.js")}],next:"Restart Pi (or run /reload) so it loads the extension."},{host:"omp",label:"Oh My Pi",command:"setup-omp",kind:"shim",files:()=>[{template:"omp.js",target:Ne(qr(),".omp","agent","extensions","tokmizer.js")}],next:"Restart omp so it loads the extension."},{host:"hermes",label:"Hermes",command:"setup-hermes",kind:"shim",files:()=>{let e=Ne(process.env.HERMES_HOME||Ne(qr(),".hermes"),"plugins","tokmizer");return["__init__.py","plugin.yaml"].map(t=>({template:`hermes/${t}`,target:Ne(e,t)}))},next:"Run: hermes plugins enable tokmizer, then restart Hermes (needs Hermes v2026.8.16 or newer)."}]});function Wa(e){return Ka.filter(t=>Pd.has(t.host)===e).flatMap(t=>t.vars)}function Od(e){return Pd.has(e)||($S[e]?.installed()??!1)}function Ss(e){return null}function xs(e=process.env){let t=process.platform,n=t==="darwin"||t==="linux"||t==="win32"?t:"other",r=process.arch,o=e.TOKMIZER_HOST;if(o&&Za.includes(o)){let s=o;return{host:s,source:"env",os:n,arch:r,shimRecommended:!Od(s)}}for(let s of Ka)if(s.vars.some(i=>e[i]))return{host:s.host,source:"env",os:n,arch:r,shimRecommended:!Od(s.host)};return{host:"shell",source:"fallback",os:n,arch:r,shimRecommended:!0}}var Ka,Za,Pd,$S,Qr=k(()=>{"use strict";gs();ys();_s();ws();Ka=[{host:"claude-code",vars:["CLAUDECODE","CLAUDE_CODE_ENTRYPOINT","CLAUDE_CODE","CLAUDE_CODE_VERSION","ANTHROPIC_CLAUDE_CODE"]},{host:"codex",vars:["CODEX_VERSION","CODEX_CLI","OPENAI_CODEX","CODEX_THREAD_ID","CODEX_SESSION_ID"]},{host:"cursor",vars:["CURSOR_AGENT","CURSOR_VERSION","CURSOR_TRACE_ID"]},{host:"cline",vars:["CLINE_VERSION","CLINE_API_KEY"]},{host:"aider",vars:["AIDER_VERSION","AIDER_MODEL"]},{host:"qwen-code",vars:["QWEN_CODE"]},{host:"gemini-cli",vars:["GEMINI_CLI","GEMINI_CLI_VERSION","GEMINI_API_KEY"]},{host:"windsurf",vars:["WINDSURF_VERSION","WINDSURF_USER"]},{host:"copilot",vars:["GITHUB_COPILOT_VERSION","COPILOT_INTEGRATION_ID"]},{host:"opencode",vars:[]},{host:"amp",vars:[]},{host:"vibe",vars:[]},{host:"antigravity",vars:[]},{host:"openclaw",vars:[]},{host:"pi",vars:[]},{host:"omp",vars:[]},{host:"hermes",vars:[]},{host:"crush",vars:["CRUSH"]},{host:"droid",vars:[]},{host:"trae",vars:[]},{host:"junie",vars:[]},{host:"zcode",vars:[]},{host:"grok",vars:[]},{host:"kilo",vars:[]}],Za=[...Ka.map(e=>e.host),"shell"],Pd=new Set(["claude-code","codex"]),$S={cursor:{installed:hs,setup:"tkr setup-cursor"},"gemini-cli":{installed:ad,setup:"tkr setup-gemini"},...Object.fromEntries(Yr.map(e=>[e.host,{installed:()=>Xr(e),setup:`tkr ${e.command}`}])),...Object.fromEntries(Hn.map(e=>[e.id,{installed:e.installed,setup:e.setup}]))}});import{mkdir as Va,writeFile as Md,readFile as vs,unlink as Fd,chmod as Hd,rename as CS,copyFile as Ld,stat as OS,readdir as PS,rm as IS}from"node:fs/promises";import{existsSync as Ya,realpathSync as jd}from"node:fs";import{basename as NS,delimiter as Id,join as me,dirname as Bd}from"node:path";import{fileURLToPath as DS}from"node:url";import Ln from"node:os";function Nd(e){try{return jd(e)}catch{return e}}function Ud(){let e=ve(),t={...process.env},n=process.platform==="win32"?"Path":"PATH",r=t[n]??t.PATH??"",o=Nd(e),s=r.split(Id).filter(i=>i&&i!==e&&Nd(i)!==o);return t[n]=s.join(Id),n==="Path"&&(t.PATH=t[n]),t}function zd(){try{let e=Ln.platform()==="win32";return Ya(me(ve(),e?"git.cmd":"git"))}catch{return!1}}function Dd(e){return`"${e.map(t=>`\${${t}:-}`).join("")}"`}function Gd(e){let t=e.match(/^#!\/bin\/sh\n_tk_f=(\d+)\n/);return t!==null&&Number(t[1])>=Jd&&e.includes(`exec /bin/sh ${ie(Cn())} "$_tk_c" "$@"`)}function FS(e){return["#!/bin/sh",`_tk_f=${Jd}`,`_tk_c=${ie(e)}`,`if [ -z ${Dd(Wa(!0))} ] && { [ -n ${Dd(["TOKMIZER_HOST",...Wa(!1)])} ] || [ -t 1 ]; } && [ -f ${ie(Cn())} ] && ! ${rs()}; then`,` exec /bin/sh ${ie(Cn())} "$_tk_c" "$@"`,"fi",...os(""),""].join(`
|
|
25
25
|
`)}function HS(e){let t=xe()?lt(e):null,n=t?Qt():e;return{check:n,run:t?[`"${n}"`,...t].join(" "):`node "${n}"`}}function LS(e,t){let n=HS(e),r=ve();return["@echo off",`if exist "${Tt()}" goto tkpass`,`if not exist "${n.check}" goto tkmissing`,`${n.run} --as "${t}" %*`,"exit /b %errorlevel%",":tkmissing",`echo ${ns.replace(/`/g,"")} 1>&2`,":tkpass",`set "PATH=%PATH:${r}\\;=%"`,`set "PATH=%PATH:${r};=%"`,`set "PATH=%PATH:;${r}=%"`,"for %%E in (.exe .cmd .bat .com) do for %%I in ("+t+'%%E) do if not "%%~$PATH:I"=="" if /i not "%%~dp$PATH:I"=="%~dp0" (',' "%%~$PATH:I" %*'," exit /b",")",`echo ${t}: command not found 1>&2`,"exit /b 9009",""].join(`\r
|
|
26
26
|
`)}function jS(e){return me(ve(),Ln.platform()==="win32"?`${e}.cmd`:e)}function BS(e,t){return Ln.platform()==="win32"?LS(e,t):FS(t)}async function Kd(e,t,n){let r=`${e}.${process.pid}.tmp`;try{return await Md(r,t,{mode:n}),await Hd(r,n),await CS(r,e),!0}catch{try{await Fd(r)}catch{}return!1}}function Zd(){return new Date().toISOString().replace(/[-:]/g,"").replace(/\..*$/,"").replace("T","-")}async function US(e,t,n){try{let r=(await PS(e)).filter(o=>o.startsWith(t)).sort().slice(0,-n);for(let o of r)await IS(me(e,o),{recursive:!0,force:!0})}catch{}}async function Wd(e,t={}){let n=ve();if(!Ya(n))return{stale:0,rewritten:0};let r=0,o=0,s=null;for(let i of MS){let a=jS(i),l=BS(e,i),c;try{c=await vs(a,"utf8")}catch{continue}if(!(c===l||Ln.platform()!=="win32"&&Gd(c))&&(r+=1,!t.dryRun)){try{s||(s=me(w(),"backup",`shims-${Zd()}`),await Va(s,{recursive:!0,mode:448})),await Ld(a,me(s,i))}catch{}await Kd(a,l,493)&&(o+=1)}}return s&&await US(Bd(s),"shims-",3),{stale:r,rewritten:o}}function JS(e){return`'${e.replace(/\\/g,"\\\\").replace(/'/g,"\\'")}'`}function GS(){let e=ve();return[`export PATH=${ie(e)}:"$PATH"`,`export PATH="${e}:$PATH"`,`set -gx PATH ${JS(e)} $PATH`,`$env:Path = '${e.replace(/'/g,"''")};' + $env:Path`,`$env:Path = "${e};" + $env:Path`]}function KS(){return me(w(),"global-path")}function ZS(){return Ya(KS())}function qa(){return me(w(),"backup","global-path.json")}function Vd(e){let t=GS(),n=e.split(`
|
|
27
27
|
`),r=[],o=0;for(let s=0;s<n.length;s+=1){let i=n[s].replace(/\r$/,""),a=n[s+1]?.replace(/\r$/,"");if(i===zS&&a!==void 0&&t.includes(a)){r.length&&r[r.length-1].replace(/\r$/,"")===""&&r.pop(),o+=1,s+=1;continue}r.push(n[s])}return{content:o?r.join(`
|
|
28
28
|
`):e,removed:o}}function qd(){let e=Ln.homedir(),t=[".zshrc",".zprofile",".bashrc",".bash_profile",".bash_login",".profile",me(".config","fish","config.fish")].map(n=>me(e,n));return Ln.platform()!=="win32"?t:[...t,me(e,"Documents","PowerShell","profile.ps1"),me(e,"Documents","WindowsPowerShell","profile.ps1"),me(e,"OneDrive","Documents","PowerShell","profile.ps1"),me(e,"OneDrive","Documents","WindowsPowerShell","profile.ps1")]}async function Yd(){let e=0;for(let t of qd())try{e+=Vd(await vs(t,"utf8")).removed}catch{}return e}async function WS(){try{let e=JSON.parse(await vs(qa(),"utf8"));return Array.isArray(e)?e.filter(t=>t!=null&&typeof t=="object"&&typeof t.file=="string"):[]}catch{return[]}}async function Xd(e={}){if(!e.force&&ZS())return[];let t=[],n=await WS();for(let r of qd()){let o,s;try{o=jd(r),s=await vs(o,"utf8")}catch{continue}let i=Vd(s);if(!i.removed)continue;let a=me(w(),"backup","rc"),l=me(a,`${NS(r)}-${Zd()}`);try{let c=await OS(o);if(typeof process.getuid=="function"&&c.uid!==process.getuid())continue;if(await Va(a,{recursive:!0,mode:448}),await Ld(o,l),await Hd(l,384),!await Kd(o,i.content,c.mode&511)){await Fd(l).catch(()=>{});continue}}catch{continue}t.push(r),n.push({file:r,backup:l,fish:r.endsWith("config.fish"),at:new Date().toISOString()})}if(t.length)try{await Va(Bd(qa()),{recursive:!0,mode:448}),await Md(qa(),`${JSON.stringify(n,null,2)}
|
|
29
|
-
`,{mode:384})}catch{}return t}function Qd(){return process.env.TOKMIZER_SHIM_JS?process.env.TOKMIZER_SHIM_JS:DS(new URL("../bin/tkr-shim.js",import.meta.url))}var MS,Jd,zS,Es=k(()=>{"use strict";Ir();Ve();H();Qr();Ee();is();Ee();MS=["git","npm","yarn","pnpm","docker","kubectl","terraform","tofu","cargo","go","mvn","gradle","rg","grep","find","ls","cat","tail","head","ps","lsof","ssh","scp","rsync","curl","wget","jq","yq","make"];Jd=1;zS="# tokmizer-shim PATH (managed by tokmizer)"});var ym={};ce(ym,{connectDaemon:()=>Rs,shutdownDaemon:()=>
|
|
30
|
-
`)}catch{}}function fx(e){try{rl(w(),{recursive:!0}),nl(sl(),String(Date.now()))}catch{}ux(`spawn failed: ${e.message}`)}function dx(){try{nx(sl(),{force:!0})}catch{}}async function Ts(e,t){return new Promise((n,r)=>{let o=XS(e),s=a=>{if(o.removeAllListeners("connect"),o.removeAllListeners("error"),clearTimeout(i),a){try{o.destroy()}catch{}r(a)}else n(o)},i=setTimeout(()=>s(new Error("connect timeout")),t);o.once("connect",()=>s(null)),o.once("error",a=>s(a))})}function mx(){return process.env.TOKMIZER_DAEMON_BIN?process.env.TOKMIZER_DAEMON_BIN:sx(new URL("../bin/tkr-daemon.js",import.meta.url))}async function el(e,t=3e3){let n=Math.ceil(t/75),r=process.platform==="win32";for(let o=0;o<n;o++){if(r)try{return(await Ts(e,75)).destroy(),!0}catch{}else if(pm(e))return!0;await new Promise(s=>setTimeout(s,75))}return!1}async function px(e){let t=mx();if(!xe()&&!pm(t))throw new Error(`tkr-daemon binary not found at ${t}`);let{path:n}=ot(),r=process.platform==="win32"?w():ox(n);try{rl(r,{recursive:!0})}catch{}let o=ol(r,"daemon.spawn.lock"),s=null;try{s=Qa(o,"wx"),nl(s,String(process.pid))}catch(i){if(i.code==="EEXIST"){if(await el(n,5e3))return;try{tl(o)}catch{}try{s=Qa(o,"wx"),nl(s,String(process.pid))}catch(l){if(l.code==="EEXIST"){await el(n,5e3);return}throw l}}else throw i}try{let i=null;try{i=Qa(il(),"a")}catch{}let[a,...l]=Xt(t);if(QS(a,l,{detached:!0,stdio:["ignore","ignore",i??"ignore"],env:{...process.env,TOKMIZER_DAEMON_INSTALL_ID:e}}).unref(),i!==null)try{dm(i)}catch{}if(!await el(n,3e3))throw new Error("tkr-daemon failed to bind socket within 3s")}finally{if(s!==null){try{dm(s)}catch{}try{tl(o)}catch{}}}}async function
|
|
29
|
+
`,{mode:384})}catch{}return t}function Qd(){return process.env.TOKMIZER_SHIM_JS?process.env.TOKMIZER_SHIM_JS:DS(new URL("../bin/tkr-shim.js",import.meta.url))}var MS,Jd,zS,Es=k(()=>{"use strict";Ir();Ve();H();Qr();Ee();is();Ee();MS=["git","npm","yarn","pnpm","docker","kubectl","terraform","tofu","cargo","go","mvn","gradle","rg","grep","find","ls","cat","tail","head","ps","lsof","ssh","scp","rsync","curl","wget","jq","yq","make"];Jd=1;zS="# tokmizer-shim PATH (managed by tokmizer)"});var ym={};ce(ym,{connectDaemon:()=>Rs,shutdownDaemon:()=>gm});import{createConnection as XS}from"node:net";import{spawn as QS}from"node:child_process";import{existsSync as pm,openSync as Qa,closeSync as dm,unlinkSync as tl,writeFileSync as nl,mkdirSync as rl,readFileSync as ex,appendFileSync as tx,rmSync as nx,statSync as rx}from"node:fs";import{dirname as ox,join as ol}from"node:path";import{fileURLToPath as sx}from"node:url";function sl(){return ol(w(),"daemon.spawn.fail")}function il(){return ol(w(),"daemon.log")}function cx(){try{let e=Number(ex(sl(),"utf8"));return Number.isFinite(e)&&Date.now()-e<ax}catch{return!1}}function ux(e){try{rl(w(),{recursive:!0});let t=il();try{rx(t).size>lx&&tl(t)}catch{}tx(t,`${new Date().toISOString()} ${e}
|
|
30
|
+
`)}catch{}}function fx(e){try{rl(w(),{recursive:!0}),nl(sl(),String(Date.now()))}catch{}ux(`spawn failed: ${e.message}`)}function dx(){try{nx(sl(),{force:!0})}catch{}}async function Ts(e,t){return new Promise((n,r)=>{let o=XS(e),s=a=>{if(o.removeAllListeners("connect"),o.removeAllListeners("error"),clearTimeout(i),a){try{o.destroy()}catch{}r(a)}else n(o)},i=setTimeout(()=>s(new Error("connect timeout")),t);o.once("connect",()=>s(null)),o.once("error",a=>s(a))})}function mx(){return process.env.TOKMIZER_DAEMON_BIN?process.env.TOKMIZER_DAEMON_BIN:sx(new URL("../bin/tkr-daemon.js",import.meta.url))}async function el(e,t=3e3){let n=Math.ceil(t/75),r=process.platform==="win32";for(let o=0;o<n;o++){if(r)try{return(await Ts(e,75)).destroy(),!0}catch{}else if(pm(e))return!0;await new Promise(s=>setTimeout(s,75))}return!1}async function px(e){let t=mx();if(!xe()&&!pm(t))throw new Error(`tkr-daemon binary not found at ${t}`);let{path:n}=ot(),r=process.platform==="win32"?w():ox(n);try{rl(r,{recursive:!0})}catch{}let o=ol(r,"daemon.spawn.lock"),s=null;try{s=Qa(o,"wx"),nl(s,String(process.pid))}catch(i){if(i.code==="EEXIST"){if(await el(n,5e3))return;try{tl(o)}catch{}try{s=Qa(o,"wx"),nl(s,String(process.pid))}catch(l){if(l.code==="EEXIST"){await el(n,5e3);return}throw l}}else throw i}try{let i=null;try{i=Qa(il(),"a")}catch{}let[a,...l]=Xt(t);if(QS(a,l,{detached:!0,stdio:["ignore","ignore",i??"ignore"],env:{...process.env,TOKMIZER_DAEMON_INSTALL_ID:e}}).unref(),i!==null)try{dm(i)}catch{}if(!await el(n,3e3))throw new Error("tkr-daemon failed to bind socket within 3s")}finally{if(s!==null){try{dm(s)}catch{}try{tl(o)}catch{}}}}async function gm(e={}){let{path:t}=e.socketPath?{path:e.socketPath}:ot(),n=await Go();try{let r=await Ts(t,hm);r.write(St({id:wr(),op:"shutdown",installId:n})),await new Promise(o=>setTimeout(o,150));try{r.destroy()}catch{}return!0}catch{return!1}}async function hx(e,t){let n=Date.now()+t;for(;Date.now()<n;){try{(await Ts(e,250)).destroy()}catch{return!0}await new Promise(r=>setTimeout(r,100))}return!1}async function Rs(e={}){let{path:t}=e.socketPath?{path:e.socketPath}:ot(),n=await Go(),r=null,o=0,s=!1;for(;o<=mm;)try{r=await Ts(t,hm),dx();break}catch{if(o+=1,o>mm)throw new Error(`tkr-daemon unreachable at ${t}`);if(cx())throw new Error(`tkr-daemon spawn on cooldown (see ${il()})`);await vr();try{await px(n),s=!0}catch(u){throw fx(u),u}}if(!r)throw new Error("tkr-daemon: socket setup failed");let i=new Map,a="";r.setEncoding("utf8"),r.on("data",u=>{a+=u;let f=-1;for(let m=0;m<a.length;m++)a[m]===kn&&(f=m);if(f<0)return;let d=[];for(let m of No(a.slice(0,f+1)))d.push(m);a=a.slice(f+1);for(let m of d)if(m)try{let p=JSON.parse(m),h=i.get(p.id);if(!h)continue;clearTimeout(h.timer),i.delete(p.id),h.resolve(p)}catch{}}),r.on("close",()=>{for(let u of i.values())clearTimeout(u.timer),u.reject(new Error("daemon socket closed"));i.clear()}),r.on("error",()=>{});function l(u){return new Promise((f,d)=>{if(r.destroyed||!r.writable){d(new Error("daemon socket closed"));return}let m=setTimeout(()=>{i.delete(u.id),d(new Error(`daemon request timeout (${u.op})`))},ix);i.set(u.id,{resolve:f,reject:d,timer:m}),r.write(St(u))})}let c={filter:async(u,f,d)=>{let m=await l({id:wr(),op:"filter",cmd:u.slice(0,2048),plan:f,...d&&d.length>0?{allowed:d.slice(0,512)}:{},installId:n});if(!m.ok)return null;let p=mu.safeParse(m.data);return p.success?p.data.filter:null},ping:async()=>{let u=await l({id:wr(),op:"ping"});if(!u.ok)throw new Error(u.err);return u.data},reload:async()=>{let u=await l({id:wr(),op:"reload",installId:n});if(!u.ok)throw new Error(u.err);return u.data},close:()=>{try{r.destroy()}catch{}}};if(!e.skipVersionCheck&&!s){let u=!1;try{let f=await c.ping();if(f.version&&wn(ue,f.version))throw new Error(`newer daemon ${f.version} already running`);u=f.version!==ue}catch(f){throw c.close(),f}if(u){try{await gm(e.socketPath?{socketPath:e.socketPath}:{})}catch{}c.close();let f=await hx(t,2e3);if(await vr(),!f)throw new Error("stale daemon still running after shutdown request");return Rs({...e,skipVersionCheck:!0})}}return c}var hm,ix,mm,ax,lx,al=k(()=>{"use strict";Fi();Lo();H();Ve();En();vt();hm=500,ix=3e3,mm=1,ax=6e4,lx=256*1024});import{readFileSync as gx,renameSync as yx,statSync as kx,writeFileSync as bx}from"node:fs";function As(e,t,n){try{if(kx(e).size<=t)return;let r=gx(e,"utf8").split(`
|
|
31
31
|
`).filter(a=>a.trim()!==""),o=[],s=0;for(let a=r.length-1;a>=0;a-=1){let l=r[a],c=Buffer.byteLength(l)+1;if(s+c>n)break;o.push(l),s+=c}o.reverse();let i=`${e}.tmp-${process.pid}`;bx(i,o.length?`${o.join(`
|
|
32
32
|
`)}
|
|
33
33
|
`:"",{mode:384}),yx(i,e)}catch{}}var ll=k(()=>{"use strict"});var Tm={};ce(Tm,{autoUpdateEnabled:()=>fl,claimSelfUpdateSlot:()=>Em,defaultDeps:()=>Px,maybeSpawnSelfUpdate:()=>Nx,selfUpdate:()=>Cx,setAutoUpdate:()=>Ax});import{spawn as Sm}from"node:child_process";import{accessSync as wx,constants as _x,existsSync as eo,mkdirSync as xm,readFileSync as vm,rmSync as Sx,writeFileSync as ul,appendFileSync as xx}from"node:fs";import{fileURLToPath as vx}from"node:url";import{join as Ue}from"node:path";import Ex from"node:os";function fl(){return process.env.TOKMIZER_AUTO_UPDATE==="0"?!1:!eo(cl())}function Ax(e){if(e){Sx(cl(),{force:!0});return}xm(w(),{recursive:!0,mode:448}),ul(cl(),String(Date.now()))}function Em(e=Date.now()){try{let t=Number(vm(wm(),"utf8"));if(Number.isFinite(t)&&e-t<Tx)return!1}catch{}try{xm(w(),{recursive:!0,mode:448}),ul(wm(),String(e))}catch{return!1}return!0}function $x(e){try{let t=Ue(w(),"self-update.log");xx(t,`${new Date().toISOString()} ${e}
|
|
@@ -43,24 +43,24 @@ ${r}
|
|
|
43
43
|
|
|
44
44
|
${r}`:`${n}
|
|
45
45
|
`:r}function pl(e){return to(e)!==null}function Is(e){return to(e)?.agents??[]}function Gm(e){let t=to(e);return t?e.slice(t.bodyStart,t.end-nn.length):null}var Bn,Bx,nn,Jm,Km=k(()=>{"use strict";ae();Bn="managed-by: tokmizer";Bx="<!-- tokmizer:begin managed-by: tokmizer -->",nn="<!-- tokmizer:end -->",Jm=/<!-- tokmizer:begin managed-by: tokmizer(?: agents: ([a-z0-9,-]*))? -->/g});var ip={};ce(ip,{AGENT_BONUSES:()=>Ms,agentBonus:()=>Fs,forgetReducerFiles:()=>sv,installAgentBonuses:()=>tv,powerInstalled:()=>ev,reducerInstalled:()=>sp,removeAgentBonuses:()=>rv,renderPower:()=>Xm,repairReducerHooks:()=>nv,syncReducerRules:()=>ov});import{existsSync as qm,readFileSync as ro}from"node:fs";import{readFile as Ym,unlink as so}from"node:fs/promises";import{join as B}from"node:path";import Jx from"node:os";function rn(e,t,n=[]){return{file:()=>B(e(),"power","SKILL.md"),format:"skill",placeholder:null,front:["user-invocable: true",...n],invoke:t}}function Un(e){return{...rn(()=>B(re(),".agents","skills"),e),shared:!0}}function $t(e,t,n=""){return{file:e,spec:r=>({mark:At,event:r,nested:!0,...n===null?{}:{matcher:n},...t})}}function Fs(e){return Ms.find(t=>t.id===e)}function Wm(e){return["---",...e,"---"].join(`
|
|
46
|
-
`)}function Xm(e){let t=Fm(e.placeholder),n=`<!-- ${Bn} -->`;return e.format==="gemini-toml"?[`# ${Bn}`,`description = ${JSON.stringify(
|
|
47
|
-
`):`${e.format==="skill"?Wm(["name: power",`description: ${JSON.stringify(
|
|
46
|
+
`)}function Xm(e){let t=Fm(e.placeholder),n=`<!-- ${Bn} -->`;return e.format==="gemini-toml"?[`# ${Bn}`,`description = ${JSON.stringify(hl)}`,`prompt = ${JSON.stringify(t)}`,""].join(`
|
|
47
|
+
`):`${e.format==="skill"?Wm(["name: power",`description: ${JSON.stringify(hl)}`,...e.front??[]]):Wm([`description: ${JSON.stringify(hl)}`,...e.front??[]])}
|
|
48
48
|
|
|
49
49
|
${n}
|
|
50
50
|
|
|
51
51
|
${t}
|
|
52
|
-
`}function Qm(e){if(e==="codex")return Ca();if(e==="cursor")return
|
|
53
|
-
`)}function hl(){return Ms.filter(e=>e.reducer.kind==="rules")}function ep(e,t,n){let r=new Set([...Object.keys(t.agents),...n===null?[]:Is(n)]);return hl().filter(o=>r.has(o.id)&&io(o.reducer.file())===e).map(o=>o.id).sort()}async function tp(e){try{return await Ym(e,"utf8")}catch(t){if(t.code==="ENOENT")return null;throw t}}function Ds(e,t,n){return ft(e,n,t??void 0)}async function np(e,t,n){if(t===null)return"present";let r;try{r=await tp(e)}catch{return"error"}let o=io(e);if(!t){let i=r===null?null:ml(r);if(i===null)return"present";if(!i.trim()&&n.created.includes(o))try{return await so(o),"removed"}catch{return"error"}return await Ds(e,r,i)?"removed":"error"}let s=dl(r??"",t,ep(o,n,r));return s===r?"present":await Ds(e,r,s)?r!==null&&pl(r)?"updated":"added":"error"}async function Yx(e,t){let n=Hs(),r=io(t);!qm(t)&&!n.created.includes(r)&&n.created.push(r),n.agents[e.id]=t;let o=await np(t,await yl(),n);return o==="error"||!await kl(n)?"error":o==="removed"?"updated":o}async function Xx(e,t){let n=Hs(),r=io(t),o=e.id in n.agents,s=n.created.includes(r);delete n.agents[e.id];let i;try{i=await tp(t)}catch{return"error"}let a=i===null?null:Gm(i),l=i===null?[]:Is(i);if(!o&&(a===null||l.length&&!l.includes(e.id)))return"absent";let c=ep(r,n,i).filter(f=>f!==e.id);if(c.length||(n.created=n.created.filter(f=>f!==r)),!await kl(n))return"error";if(i===null||a===null)return"removed";if(c.length){let f=dl(i,a,c);return f===i||await Ds(t,i,f)?"removed":"error"}let u=ml(i)??i;if(!u.trim()&&s)try{return await so(r),"removed"}catch{return"error"}return await Ds(t,i,u)?"removed":"error"}async function rp(e){if(e===null)return;let t=Fo();if(!e){try{await so(t)}catch{}return}try{if(await Ym(t,"utf8")===e)return}catch{}await Ye(t,e)}function bl(e){if(e.includes("error"))return"error";for(let t of["added","updated","removed"])if(e.includes(t))return t;return e.includes("present")?"present":"absent"}async function op(e,t,n){let r=e.reducer;if(r.kind==="none")return"none";if(r.kind==="plugin")return await rp(await yl()),"plugin";if(r.kind==="rules")return Yx(e,r.file());if(r.kind==="antigravity")return Vx(Vm("antigravity","session",t,n));let o=[],s=r.targets();for(let i of s)for(let a of r.events)o.push(await Kr(i.file,i.spec(a.event),Vm(r.format,a.kind,t,n)));if(r.cleanup){let i=new Set(s.map(a=>a.file));for(let a of r.cleanup().filter(l=>!i.has(l.file)))for(let l of r.events)await en(a.file,a.spec(l.event))}return bl(o)}async function Qx(e){let t=e.reducer;if(t.kind==="none"||t.kind==="plugin")return"absent";if(t.kind==="rules")return Xx(e,t.file());if(t.kind==="antigravity")return qx();let n=[];for(let r of t.cleanup?t.cleanup():t.targets())for(let o of t.events)n.push(await en(r.file,r.spec(o.event)));return bl(n)}function sp(e){let t=e.reducer;if(t.kind==="rules"){if(e.id in Hs().agents)return!0;try{return pl(ro(t.file(),"utf8"))}catch{return!1}}if(t.kind==="antigravity")try{let n=JSON.parse(ro(dt(),"utf8"));return I(n)&&I(n[oo])}catch{return!1}if(t.kind==="plugin"){let n=Ga(e.id);return n?Xr(n):!1}return t.kind!=="hooks"?!1:(t.cleanup?t.cleanup():t.targets()).some(n=>t.events.some(r=>Gr(n.file,n.spec(r.event))))}function ev(e){if("none"in e.power||e.power.shared&&!Qm(e.id))return!1;try{return ro(e.power.file(),"utf8").includes(Bn)}catch{return!1}}async function tv(e,t,n){let r=Fs(e);if(!r)return{lines:[],error:!1};let o=[],s=!1,i=await Zx(r).catch(()=>"error");"none"in r.power?o.push(`/power: not available in ${r.label} (${r.power.none}).`):i==="unsafe"?o.push(`/power: skipped, the Tokmizer folder path ${Oe("power")} contains characters the agent would interpret.`):i==="skipped"?o.push(`/power: ${r.power.file()} already exists and is not Tokmizer's; left it untouched.`):i==="error"?(s=!0,o.push(`/power: could not write ${r.power.file()}.`)):o.push(`/power: ${i==="present"?"already set":"added"} in ${r.power.file()}. Use it with: ${r.power.invoke}`);let a=await op(r,t,n).catch(()=>"error");return a==="error"?(s=!0,o.push(`Reducer: could not update the ${r.label} configuration.`)):a==="none"?o.push(`Reducer: not available in ${r.label} (${r.reducer.note}).`):o.push(`Reducer: follows tkr reducer <off|light|balanced|max>; ${r.reducer.note}.`),{lines:o,error:s}}async function nv(e,t,n){let r=Fs(e);!r||r.reducer.kind==="rules"||!sp(r)||await op(r,t,n).catch(()=>null)}async function rv(e,t=!1){let n=Fs(e);if(!n)return"absent";let r=[await Wx(n,t).catch(()=>"error"),await Qx(n).catch(()=>"error")];return bl(r)}async function ov(){let e=await yl();await rp(e);let t=Hs(),n=!1;for(let s of hl())if(!(s.id in t.agents))try{let i=ro(s.reducer.file(),"utf8");Is(i).includes(s.id)&&(t.agents[s.id]=s.reducer.file(),n=!0)}catch{}n&&await kl(t);let r=[],o=new Set;for(let s of hl()){if(!(s.id in t.agents))continue;let i=s.reducer.file(),a=io(i);if(o.has(a))continue;o.add(a);let l=await np(i,e,t).catch(()=>"error");(l==="updated"||l==="added"||l==="removed")&&r.push(i)}return r}async function sv(){for(let e of[Fo(),Sr()])try{await so(e)}catch{}}var re,Zm,Ns,no,gl,Ms,Kx,oo,ap=k(()=>{"use strict";ae();Oa();ps();ys();hs();ws();za();ka();Hm();Cs();Km();H();On();_s();re=()=>Jx.homedir(),Zm=()=>process.env.PI_CODING_AGENT_DIR||B(re(),".pi","agent"),Ns=()=>process.env.XDG_CONFIG_HOME||B(re(),".config");no=[{event:"SessionStart",kind:"session"},{event:"UserPromptSubmit",kind:"prompt"}],gl="Tokmizer power workflow: plan, execute, review, verify and wrap up a coding request with few tokens. Use only when the user explicitly asks for power.",Ms=[{id:"codex",label:"Codex",power:Un("$power <request> (or pick it in /skills)"),reducer:{kind:"hooks",format:"hso",events:no,targets:()=>[$t(Ie(),{entry:e=>({type:"command",command:e,timeout:10})})],note:"injected by a SessionStart and a UserPromptSubmit hook in hooks.json; approve them once in /hooks"}},{id:"gemini",label:"Gemini CLI",power:{file:()=>B(process.env.GEMINI_CLI_HOME||re(),".gemini","commands","power.toml"),format:"gemini-toml",placeholder:"{{args}}",invoke:"/power <request>"},reducer:{kind:"hooks",format:"gemini",events:[{event:"SessionStart",kind:"session"},{event:"BeforeAgent",kind:"prompt"}],targets:()=>[$t(Jr(),{entry:e=>({name:"tokmizer-reducer",type:"command",command:e,timeout:1e4})},"*")],note:"injected by a SessionStart and a BeforeAgent hook in settings.json"}},{id:"cursor",label:"Cursor",power:Un("/power <request>"),reducer:{kind:"hooks",format:"cursor",events:[{event:"sessionStart",kind:"session"}],targets:()=>[$t(zr(),{entry:e=>({command:e,timeout:10}),prepare:Fn},null)],note:"injected by a sessionStart hook in hooks.json (Cursor has no per-prompt context hook)"}},{id:"copilot",label:"GitHub Copilot",power:Un("/power <request>"),reducer:{kind:"hooks",format:"copilot",events:[{event:"sessionStart",kind:"session"}],targets:()=>[$t(Da(),{entry:e=>({type:"command",command:e,bash:e,powershell:e,timeout:10,timeoutSec:10}),prepare:Fn},null)],note:"injected by a sessionStart hook (Copilot drops per-prompt hook output)"}},{id:"droid",label:"Factory Droid",power:Un("/power <request>"),reducer:{kind:"hooks",format:"hso",events:no,targets:()=>{let e=bs();return[$t(e.file,{nested:e.spec.nested,entry:t=>({type:"command",command:t,timeout:10})})]},cleanup:()=>Mn().map(e=>$t(e.file,{nested:e.spec.nested,entry:t=>({type:"command",command:t,timeout:10})})),note:"injected by a SessionStart and a UserPromptSubmit hook"}},{id:"qwen-code",label:"Qwen Code",power:{file:()=>B(process.env.QWEN_HOME||B(re(),".qwen"),"commands","power.md"),format:"markdown",placeholder:"{{args}}",invoke:"/power <request>"},reducer:{kind:"hooks",format:"hso",events:no,targets:()=>[$t(Fa(),{entry:e=>({name:"tokmizer-reducer",type:"command",command:e,timeout:10})})],note:"injected by a SessionStart and a UserPromptSubmit hook in settings.json"}},{id:"crush",label:"Crush",power:Un("user:power from the command palette (ctrl+p)"),reducer:{kind:"rules",file:()=>B(Ns(),"crush","CRUSH.md"),note:"written into a managed block of CRUSH.md (Crush has no session or prompt hook)"}},{id:"junie",label:"Junie CLI",power:{file:()=>B(re(),".junie","commands","power.md"),format:"markdown",placeholder:"$prompt",front:["allowPromptArgument: true"],invoke:"/power <request>"},reducer:{kind:"rules",file:()=>B(re(),".junie","AGENTS.md"),note:"written into a managed block of ~/.junie/AGENTS.md (Junie ignores session-start context)"}},{id:"zcode",label:"ZCode",power:rn(()=>B(re(),".zcode","skills"),"/power <request>"),reducer:{kind:"hooks",format:"hso",events:no,targets:()=>[{file:La(),spec:e=>({mark:At,event:e,nested:!0,path:["hooks","events"],matcher:"",entry:t=>({type:"command",command:t,timeoutMs:1e4}),prepare:Ha})}],note:"injected by a SessionStart and a UserPromptSubmit hook in config.json"}},{id:"trae",label:"Trae",power:{none:"Trae documents no file location for custom commands or skills"},reducer:{kind:"hooks",format:"plain",events:no,targets:()=>Ma().map(e=>$t(e,{entry:t=>({type:"command",command:t,timeout:30}),prepare:Fn})),note:"injected by a SessionStart and a UserPromptSubmit hook in hooks.json"}},{id:"grok",label:"Grok Build",power:rn(()=>B(re(),".grok","skills"),"/power <request>"),reducer:{kind:"rules",file:()=>B(re(),".grok","AGENTS.md"),note:"written into a managed block of ~/.grok/AGENTS.md (Grok ignores the output of session and prompt hooks)"}},{id:"vibe",label:"Mistral Vibe",power:rn(()=>B(process.env.VIBE_HOME||B(re(),".vibe"),"skills"),"/power <request>"),reducer:{kind:"rules",file:()=>B(process.env.VIBE_HOME||B(re(),".vibe"),"AGENTS.md"),note:"written into a managed block of AGENTS.md (Vibe has no session or prompt hook)"}},{id:"opencode",label:"OpenCode",power:{file:()=>B(Ns(),"opencode","commands","power.md"),format:"markdown",placeholder:"$ARGUMENTS",invoke:"/power <request>"},reducer:{kind:"plugin",note:"added to the system prompt by the Tokmizer plugin (OpenCode's experimental.chat.system.transform plugin hook)"}},{id:"kilo",label:"Kilo Code",power:{file:()=>B(Ns(),"kilo","commands","power.md"),format:"markdown",placeholder:"$ARGUMENTS",invoke:"/power <request>"},reducer:{kind:"plugin",note:"added to the system prompt by the Tokmizer plugin (Kilo's experimental.chat.system.transform plugin hook)"}},{id:"amp",label:"Amp",power:Un("ask Amp to use the power skill (Amp has no custom slash commands)"),reducer:{kind:"rules",file:()=>B(Ns(),"amp","AGENTS.md"),note:"written into a managed block of ~/.config/amp/AGENTS.md (Amp plugins can only append to each user message)"}},{id:"pi",label:"Pi",power:{file:()=>B(Zm(),"prompts","power.md"),format:"markdown",placeholder:"$ARGUMENTS",invoke:"/power <request> (run /reload first)"},reducer:{kind:"rules",file:()=>B(Zm(),"APPEND_SYSTEM.md"),note:"written into a managed block of APPEND_SYSTEM.md, which Pi appends to its system prompt"}},{id:"omp",label:"Oh My Pi",power:{file:()=>B(re(),".omp","agent","commands","power.md"),format:"markdown",placeholder:"$ARGUMENTS",invoke:"/power <request>"},reducer:{kind:"rules",file:()=>B(re(),".omp","agent","APPEND_SYSTEM.md"),note:"written into a managed block of APPEND_SYSTEM.md, which omp appends to its system prompt"}},{id:"hermes",label:"Hermes",power:rn(()=>B(process.env.HERMES_HOME||B(re(),".hermes"),"skills"),"/power <request>"),reducer:{kind:"plugin",note:"added as a system prompt section by the Tokmizer plugin (register_system_prompt_section)"}},{id:"openclaw",label:"OpenClaw",power:rn(()=>B(re(),".openclaw","skills"),"/power <request>"),reducer:{kind:"plugin",note:"added to the system prompt by the Tokmizer plugin's before_prompt_build hook, which OpenClaw only runs once you set plugins.entries.tokmizer.hooks.allowConversationAccess to true"}},{id:"antigravity",label:"Antigravity",power:rn(()=>B(re(),".gemini","config","skills"),"/power <request>"),reducer:{kind:"antigravity",note:"injected as a system message by a SessionStart hook in hooks.json"}}];Kx=/[\r\n]|!\{|@\{|\$\{|\{\{/;oo="tokmizer-reducer"});function ao(e){let t=e;for(let[n,r]of iv)t=t.replace(n,r);return t}var iv,wl=k(()=>{"use strict";iv=[[/(authorization\s*:\s*)([A-Za-z][A-Za-z0-9._-]*)\s+[^\s'"]+/gi,"$1$2 [REDACTED]"],[/(authorization\s*:\s*)[A-Za-z0-9._\-+/=]{8,}/gi,"$1[REDACTED]"],[/(bearer\s+)[A-Za-z0-9._\-+/=]{8,}/gi,"$1[REDACTED]"],[/((?:^|\s)(?:-b|--cookie)[=\s]+['"]?)[^\s'";=]+=[^\s'";]+(?:\s*;\s*[^\s'";=]+=[^\s'";]+)*/gi,"$1[REDACTED]"],[/((?:^|[\s'"])(?:Set-)?Cookie\s*:\s*)[^\s'";=]+=[^\s'";]+(?:\s*;\s*[^\s'";=]+=[^\s'";]+)*/gi,"$1[REDACTED]"],[/(--?(?:password|passwd|passphrase|apipass|pass|pwd|token|api[-_]?key|secret|bearer|cookie|jwt)(?:-[a-z0-9]+)*[=\s]+)\S+/gi,"$1[REDACTED]"],[/((?:^|\s)-b[=\s]?['"]?)[^\s'"=]+=[^\s'"]+/gi,"$1[REDACTED]"],[/((?:^|\s)(?:-u[=\s]?|(?:--user|-a)[=\s])['"]?[^\s:/'"]*:)(\/[^/\s'"][^\s'"]*|[^\s/'"0-9][^\s'"]*|[0-9][^\s'"]*[^\s'"0-9][^\s'"]*)/gi,"$1[REDACTED]"],[/((?:^|\s)(?:-u[=\s]?|(?:--user|-a)[=\s])['"]?[^\s:/'"]*[^\s:/'"0-9][^\s:/'"]*:)(?:\/[^/\s'"]|[^\s/'"])[^\s'"]*/gi,"$1[REDACTED]"],[/((?:^|\s)(?:-u[=\s]?|(?:--user|-a)[=\s])['"]?:)(?:\/[^/\s'"]|[^\s/'"])[^\s'"]*/gi,"$1[REDACTED]"],[/((?:[A-Za-z0-9]+-){0,8}(?:X-Api-Key|Private-Token|[A-Za-z0-9]+-(?:Token|Key|Auth|Secret))\s*:\s*)[^\s'"]+/gi,"$1[REDACTED]"],[/((?:^|[\s'"])(?:Set-)?Cookie\s*:\s*)[^\s'"]+/gi,"$1[REDACTED]"],[/(-i\s+)(\/[^\s]+|~\/[^\s]+|[A-Z]:\\[^\s]+)/g,"$1[REDACTED]"],[/([a-zA-Z][a-zA-Z0-9+.-]{0,31}:\/\/[^:/\s@]*:)[^\s@]+(@[^@/\s]+)/g,"$1[REDACTED]$2"],[/(AWS_(?:ACCESS_KEY_ID|SECRET_ACCESS_KEY|SESSION_TOKEN)\s*=\s*)\S+/g,"$1[REDACTED]"],[/(GOOGLE_APPLICATION_CREDENTIALS\s*=\s*)\S+/g,"$1[REDACTED]"],[/(AZURE_(?:CLIENT_SECRET|TENANT_ID|CLIENT_ID)\s*=\s*)\S+/g,"$1[REDACTED]"],[/(sk-(?:proj-)?[A-Za-z0-9_-]{20,})/g,"sk-[REDACTED]"],[/\b(OPENAI_API_KEY\s*=\s*)\S+/g,"$1[REDACTED]"],[/\b(ANTHROPIC_API_KEY\s*=\s*)\S+/g,"$1[REDACTED]"],[/(sk-ant-[A-Za-z0-9_-]{20,})/g,"sk-ant-[REDACTED]"],[/\b(GH(?:_|ITHUB_)?TOKEN\s*=\s*)\S+/g,"$1[REDACTED]"],[/\b(GITLAB_TOKEN\s*=\s*)\S+/g,"$1[REDACTED]"],[/\b(SLACK_(?:BOT_)?TOKEN\s*=\s*)\S+/g,"$1[REDACTED]"],[/(xox[bpsoa]-[A-Za-z0-9-]{10,})/g,"xox[REDACTED]"],[/(xapp-[A-Za-z0-9-]{10,})/g,"[REDACTED]"],[/(sk_(?:test|live)_[A-Za-z0-9]{16,})/g,"sk_[REDACTED]"],[/(gh[a-z])_[A-Za-z0-9]{20,}/g,"$1_[REDACTED]"],[/(github_pat)_[A-Za-z0-9_]{20,}/g,"$1_[REDACTED]"],[/(gl(?:pat|rt|soat|imt|dt|ft|agent|oas|cbt|ptt))-[A-Za-z0-9_-]{16,}/g,"$1-[REDACTED]"],[/(npm_[A-Za-z0-9_-]{20,})/g,"npm_[REDACTED]"],[/(?:AKIA|ASIA|AGPA|AIDA|AROA|ANPA)[0-9A-Z]{16,}/g,"[REDACTED_AWS_KEY]"],[/AIza[A-Za-z0-9_-]{35}/g,"[REDACTED_GOOGLE_KEY]"],[/hv[sb]\.[A-Za-z0-9_-]{20,}/g,"[REDACTED_VAULT_TOKEN]"],[/dop_v1_[A-Za-z0-9]{40,}/g,"[REDACTED]"],[/dckr_pat_[A-Za-z0-9_-]{20,}/g,"[REDACTED]"],[/pypi-[A-Za-z0-9_-]{16,}/g,"[REDACTED]"],[/rk_(?:live|test)_[A-Za-z0-9]{16,}/g,"[REDACTED]"],[/whsec_[A-Za-z0-9]{16,}/g,"[REDACTED]"],[/SG\.[A-Za-z0-9_-]{20,}\.[A-Za-z0-9_-]{20,}/g,"[REDACTED]"],[/(eyJ[A-Za-z0-9_-]{6,}(?:\.[A-Za-z0-9_-]{4,}){1,2})/g,"[REDACTED_JWT]"],[/-----BEGIN [A-Z ]*PRIVATE KEY-----(?:[\s\S]*?-----END[^\n]*-----|\r?\n[A-Za-z0-9+/=][A-Za-z0-9+/=\r\n]*)?/g,"[REDACTED_PEM]"],[/\b((?:--?)?[A-Za-z0-9_]*(?:TOKEN|SECRET|PASSWORD|PASSWD|PASS|APIKEY|KEY|CRED|CREDS|CREDENTIAL|CREDENTIALS|AUTH|_PWD)[A-Za-z0-9_]*['"]?\s*=\s*)(?:"[^"]*"|'[^']*'|[^"'\s]\S*)/gi,"$1[REDACTED]"],[/\b([A-Za-z0-9_]*(?:TOKEN|SECRET|PASSWORD|PASSWD|PASS|APIKEY|KEY|CRED|CREDS|CREDENTIAL|CREDENTIALS|_PWD)[A-Za-z0-9_]*['"]?\s*:\s*)(?:"[^"]*"|'[^']*'|[^\s'",}]+)/gi,"$1[REDACTED]"],[/((?:^|[\s'"{,])['"]?(?:[A-Za-z0-9_]+_)?auth['"]?\s*:\s*)(?:"[^"]*"|'[^']*'|[^\s'",}]+)/gi,"$1[REDACTED]"],[/(\bpwd\s*[=:]\s*)(?:"[^"]*"|'[^']*'|[^/~\s][^\s;'"]*)/gi,"$1[REDACTED]"],[/([=:]\s*["']?)[A-Za-z0-9_\-+/=]{40,}/g,"$1[REDACTED]"]]});import{existsSync as av,mkdirSync as mF,writeFileSync as pF}from"node:fs";import{join as lv}from"node:path";function uv(){return lv(w(),cv)}function lp(){return av(uv())}var cv,cp=k(()=>{"use strict";H();at();He();vt();cv="telemetry-notice-shown"});import{join as js}from"node:path";import{appendFileSync as dp,chmodSync as fv,existsSync as lo,mkdirSync as xl,readFileSync as Tl,renameSync as vl,rmdirSync as mp,statSync as Rl,unlinkSync as zn,utimesSync as dv,writeFileSync as Al}from"node:fs";function $l(e){return js(co(),`${e}.lock`)}function pv(e){let t=$l(e);try{return xl(co(),{recursive:!0,mode:448}),xl(t),!0}catch{try{Date.now()-Rl(t).mtimeMs>mv&&mp(t)}catch{return!1}return!1}}function gv(e){try{dv($l(e),new Date,new Date)}catch{return}}function hv(e){try{mp($l(e))}catch{return}}function co(){return js(w(),"spool")}function Ls(e){return js(co(),`${e}.jsonl`)}function Bs(e){return js(co(),`${e}.pending.jsonl`)}function Us(e,t){if(Y())try{xl(co(),{recursive:!0,mode:448});let n=Ls(e);if(lo(n)&&Rl(n).size>=El)return;dp(n,JSON.stringify(t)+`
|
|
52
|
+
`}function Qm(e){if(e==="codex")return Ca();if(e==="cursor")return hs();let t=Hn.find(r=>r.id===e);if(t)return t.installed();let n=Ga(e);return n?Xr(n):!1}function Gx(e){return Ms.filter(t=>t.id!==e&&!("none"in t.power)&&t.power.shared&&Qm(t.id)).map(t=>t.id)}async function Zx(e){return"none"in e.power?"none":Kx.test(Oe("power"))?"unsafe":Um(e.power.file(),Xm(e.power))}async function Wx(e,t){if("none"in e.power)return"absent";let n=e.power;return n.shared&&!t&&Gx(e.id).length?"absent":zm(n.file(),n.format==="skill")}function Vm(e,t,n,r){let o=`${Rt(At,n,r)} ${e} ${t}`;return o.includes(At)?o:`${o} ${At}`}async function Vx(e){let t=dt(),n=await te(t);if(!n)return"error";let r={enabled:!0,SessionStart:[{type:"command",command:e,timeout:10}]},o=n[oo];return o!==void 0&&JSON.stringify(o)===JSON.stringify(r)?"present":(n[oo]=r,await ne(t,n)?o===void 0?"added":"updated":"error")}async function qx(){let e=dt();if(!qm(e))return"absent";let t=await te(e);return t?oo in t?(delete t[oo],await ne(e,t)?"removed":"error"):"absent":"error"}async function yl(){if(!$s())return"";try{let e=await Mm("session");return e?e.text:null}catch{return null}}function io(e){return Hr(e)}function Hs(){try{let e=JSON.parse(ro(Sr(),"utf8"));if(!I(e))return{agents:{},created:[]};let t=I(e.agents)?Object.fromEntries(Object.entries(e.agents).filter(r=>typeof r[1]=="string")):{},n=Array.isArray(e.created)?e.created.filter(r=>typeof r=="string"):[];return{agents:t,created:n}}catch{return{agents:{},created:[]}}}async function kl(e){if(!Object.keys(e.agents).length&&!e.created.length){try{await so(Sr())}catch{}return!0}return Ye(Sr(),`${JSON.stringify(e,null,2)}
|
|
53
|
+
`)}function gl(){return Ms.filter(e=>e.reducer.kind==="rules")}function ep(e,t,n){let r=new Set([...Object.keys(t.agents),...n===null?[]:Is(n)]);return gl().filter(o=>r.has(o.id)&&io(o.reducer.file())===e).map(o=>o.id).sort()}async function tp(e){try{return await Ym(e,"utf8")}catch(t){if(t.code==="ENOENT")return null;throw t}}function Ds(e,t,n){return ft(e,n,t??void 0)}async function np(e,t,n){if(t===null)return"present";let r;try{r=await tp(e)}catch{return"error"}let o=io(e);if(!t){let i=r===null?null:ml(r);if(i===null)return"present";if(!i.trim()&&n.created.includes(o))try{return await so(o),"removed"}catch{return"error"}return await Ds(e,r,i)?"removed":"error"}let s=dl(r??"",t,ep(o,n,r));return s===r?"present":await Ds(e,r,s)?r!==null&&pl(r)?"updated":"added":"error"}async function Yx(e,t){let n=Hs(),r=io(t);!qm(t)&&!n.created.includes(r)&&n.created.push(r),n.agents[e.id]=t;let o=await np(t,await yl(),n);return o==="error"||!await kl(n)?"error":o==="removed"?"updated":o}async function Xx(e,t){let n=Hs(),r=io(t),o=e.id in n.agents,s=n.created.includes(r);delete n.agents[e.id];let i;try{i=await tp(t)}catch{return"error"}let a=i===null?null:Gm(i),l=i===null?[]:Is(i);if(!o&&(a===null||l.length&&!l.includes(e.id)))return"absent";let c=ep(r,n,i).filter(f=>f!==e.id);if(c.length||(n.created=n.created.filter(f=>f!==r)),!await kl(n))return"error";if(i===null||a===null)return"removed";if(c.length){let f=dl(i,a,c);return f===i||await Ds(t,i,f)?"removed":"error"}let u=ml(i)??i;if(!u.trim()&&s)try{return await so(r),"removed"}catch{return"error"}return await Ds(t,i,u)?"removed":"error"}async function rp(e){if(e===null)return;let t=Fo();if(!e){try{await so(t)}catch{}return}try{if(await Ym(t,"utf8")===e)return}catch{}await Ye(t,e)}function bl(e){if(e.includes("error"))return"error";for(let t of["added","updated","removed"])if(e.includes(t))return t;return e.includes("present")?"present":"absent"}async function op(e,t,n){let r=e.reducer;if(r.kind==="none")return"none";if(r.kind==="plugin")return await rp(await yl()),"plugin";if(r.kind==="rules")return Yx(e,r.file());if(r.kind==="antigravity")return Vx(Vm("antigravity","session",t,n));let o=[],s=r.targets();for(let i of s)for(let a of r.events)o.push(await Kr(i.file,i.spec(a.event),Vm(r.format,a.kind,t,n)));if(r.cleanup){let i=new Set(s.map(a=>a.file));for(let a of r.cleanup().filter(l=>!i.has(l.file)))for(let l of r.events)await en(a.file,a.spec(l.event))}return bl(o)}async function Qx(e){let t=e.reducer;if(t.kind==="none"||t.kind==="plugin")return"absent";if(t.kind==="rules")return Xx(e,t.file());if(t.kind==="antigravity")return qx();let n=[];for(let r of t.cleanup?t.cleanup():t.targets())for(let o of t.events)n.push(await en(r.file,r.spec(o.event)));return bl(n)}function sp(e){let t=e.reducer;if(t.kind==="rules"){if(e.id in Hs().agents)return!0;try{return pl(ro(t.file(),"utf8"))}catch{return!1}}if(t.kind==="antigravity")try{let n=JSON.parse(ro(dt(),"utf8"));return I(n)&&I(n[oo])}catch{return!1}if(t.kind==="plugin"){let n=Ga(e.id);return n?Xr(n):!1}return t.kind!=="hooks"?!1:(t.cleanup?t.cleanup():t.targets()).some(n=>t.events.some(r=>Gr(n.file,n.spec(r.event))))}function ev(e){if("none"in e.power||e.power.shared&&!Qm(e.id))return!1;try{return ro(e.power.file(),"utf8").includes(Bn)}catch{return!1}}async function tv(e,t,n){let r=Fs(e);if(!r)return{lines:[],error:!1};let o=[],s=!1,i=await Zx(r).catch(()=>"error");"none"in r.power?o.push(`/power: not available in ${r.label} (${r.power.none}).`):i==="unsafe"?o.push(`/power: skipped, the Tokmizer folder path ${Oe("power")} contains characters the agent would interpret.`):i==="skipped"?o.push(`/power: ${r.power.file()} already exists and is not Tokmizer's; left it untouched.`):i==="error"?(s=!0,o.push(`/power: could not write ${r.power.file()}.`)):o.push(`/power: ${i==="present"?"already set":"added"} in ${r.power.file()}. Use it with: ${r.power.invoke}`);let a=await op(r,t,n).catch(()=>"error");return a==="error"?(s=!0,o.push(`Reducer: could not update the ${r.label} configuration.`)):a==="none"?o.push(`Reducer: not available in ${r.label} (${r.reducer.note}).`):o.push(`Reducer: follows tkr reducer <off|light|balanced|max>; ${r.reducer.note}.`),{lines:o,error:s}}async function nv(e,t,n){let r=Fs(e);!r||r.reducer.kind==="rules"||!sp(r)||await op(r,t,n).catch(()=>null)}async function rv(e,t=!1){let n=Fs(e);if(!n)return"absent";let r=[await Wx(n,t).catch(()=>"error"),await Qx(n).catch(()=>"error")];return bl(r)}async function ov(){let e=await yl();await rp(e);let t=Hs(),n=!1;for(let s of gl())if(!(s.id in t.agents))try{let i=ro(s.reducer.file(),"utf8");Is(i).includes(s.id)&&(t.agents[s.id]=s.reducer.file(),n=!0)}catch{}n&&await kl(t);let r=[],o=new Set;for(let s of gl()){if(!(s.id in t.agents))continue;let i=s.reducer.file(),a=io(i);if(o.has(a))continue;o.add(a);let l=await np(i,e,t).catch(()=>"error");(l==="updated"||l==="added"||l==="removed")&&r.push(i)}return r}async function sv(){for(let e of[Fo(),Sr()])try{await so(e)}catch{}}var re,Zm,Ns,no,hl,Ms,Kx,oo,ap=k(()=>{"use strict";ae();Oa();ps();ys();gs();ws();za();ka();Hm();Cs();Km();H();On();_s();re=()=>Jx.homedir(),Zm=()=>process.env.PI_CODING_AGENT_DIR||B(re(),".pi","agent"),Ns=()=>process.env.XDG_CONFIG_HOME||B(re(),".config");no=[{event:"SessionStart",kind:"session"},{event:"UserPromptSubmit",kind:"prompt"}],hl="Tokmizer power workflow: plan, execute, review, verify and wrap up a coding request with few tokens. Use only when the user explicitly asks for power.",Ms=[{id:"codex",label:"Codex",power:Un("$power <request> (or pick it in /skills)"),reducer:{kind:"hooks",format:"hso",events:no,targets:()=>[$t(Ie(),{entry:e=>({type:"command",command:e,timeout:10})})],note:"injected by a SessionStart and a UserPromptSubmit hook in hooks.json; approve them once in /hooks"}},{id:"gemini",label:"Gemini CLI",power:{file:()=>B(process.env.GEMINI_CLI_HOME||re(),".gemini","commands","power.toml"),format:"gemini-toml",placeholder:"{{args}}",invoke:"/power <request>"},reducer:{kind:"hooks",format:"gemini",events:[{event:"SessionStart",kind:"session"},{event:"BeforeAgent",kind:"prompt"}],targets:()=>[$t(Jr(),{entry:e=>({name:"tokmizer-reducer",type:"command",command:e,timeout:1e4})},"*")],note:"injected by a SessionStart and a BeforeAgent hook in settings.json"}},{id:"cursor",label:"Cursor",power:Un("/power <request>"),reducer:{kind:"hooks",format:"cursor",events:[{event:"sessionStart",kind:"session"}],targets:()=>[$t(zr(),{entry:e=>({command:e,timeout:10}),prepare:Fn},null)],note:"injected by a sessionStart hook in hooks.json (Cursor has no per-prompt context hook)"}},{id:"copilot",label:"GitHub Copilot",power:Un("/power <request>"),reducer:{kind:"hooks",format:"copilot",events:[{event:"sessionStart",kind:"session"}],targets:()=>[$t(Da(),{entry:e=>({type:"command",command:e,bash:e,powershell:e,timeout:10,timeoutSec:10}),prepare:Fn},null)],note:"injected by a sessionStart hook (Copilot drops per-prompt hook output)"}},{id:"droid",label:"Factory Droid",power:Un("/power <request>"),reducer:{kind:"hooks",format:"hso",events:no,targets:()=>{let e=bs();return[$t(e.file,{nested:e.spec.nested,entry:t=>({type:"command",command:t,timeout:10})})]},cleanup:()=>Mn().map(e=>$t(e.file,{nested:e.spec.nested,entry:t=>({type:"command",command:t,timeout:10})})),note:"injected by a SessionStart and a UserPromptSubmit hook"}},{id:"qwen-code",label:"Qwen Code",power:{file:()=>B(process.env.QWEN_HOME||B(re(),".qwen"),"commands","power.md"),format:"markdown",placeholder:"{{args}}",invoke:"/power <request>"},reducer:{kind:"hooks",format:"hso",events:no,targets:()=>[$t(Fa(),{entry:e=>({name:"tokmizer-reducer",type:"command",command:e,timeout:10})})],note:"injected by a SessionStart and a UserPromptSubmit hook in settings.json"}},{id:"crush",label:"Crush",power:Un("user:power from the command palette (ctrl+p)"),reducer:{kind:"rules",file:()=>B(Ns(),"crush","CRUSH.md"),note:"written into a managed block of CRUSH.md (Crush has no session or prompt hook)"}},{id:"junie",label:"Junie CLI",power:{file:()=>B(re(),".junie","commands","power.md"),format:"markdown",placeholder:"$prompt",front:["allowPromptArgument: true"],invoke:"/power <request>"},reducer:{kind:"rules",file:()=>B(re(),".junie","AGENTS.md"),note:"written into a managed block of ~/.junie/AGENTS.md (Junie ignores session-start context)"}},{id:"zcode",label:"ZCode",power:rn(()=>B(re(),".zcode","skills"),"/power <request>"),reducer:{kind:"hooks",format:"hso",events:no,targets:()=>[{file:La(),spec:e=>({mark:At,event:e,nested:!0,path:["hooks","events"],matcher:"",entry:t=>({type:"command",command:t,timeoutMs:1e4}),prepare:Ha})}],note:"injected by a SessionStart and a UserPromptSubmit hook in config.json"}},{id:"trae",label:"Trae",power:{none:"Trae documents no file location for custom commands or skills"},reducer:{kind:"hooks",format:"plain",events:no,targets:()=>Ma().map(e=>$t(e,{entry:t=>({type:"command",command:t,timeout:30}),prepare:Fn})),note:"injected by a SessionStart and a UserPromptSubmit hook in hooks.json"}},{id:"grok",label:"Grok Build",power:rn(()=>B(re(),".grok","skills"),"/power <request>"),reducer:{kind:"rules",file:()=>B(re(),".grok","AGENTS.md"),note:"written into a managed block of ~/.grok/AGENTS.md (Grok ignores the output of session and prompt hooks)"}},{id:"vibe",label:"Mistral Vibe",power:rn(()=>B(process.env.VIBE_HOME||B(re(),".vibe"),"skills"),"/power <request>"),reducer:{kind:"rules",file:()=>B(process.env.VIBE_HOME||B(re(),".vibe"),"AGENTS.md"),note:"written into a managed block of AGENTS.md (Vibe has no session or prompt hook)"}},{id:"opencode",label:"OpenCode",power:{file:()=>B(Ns(),"opencode","commands","power.md"),format:"markdown",placeholder:"$ARGUMENTS",invoke:"/power <request>"},reducer:{kind:"plugin",note:"added to the system prompt by the Tokmizer plugin (OpenCode's experimental.chat.system.transform plugin hook)"}},{id:"kilo",label:"Kilo Code",power:{file:()=>B(Ns(),"kilo","commands","power.md"),format:"markdown",placeholder:"$ARGUMENTS",invoke:"/power <request>"},reducer:{kind:"plugin",note:"added to the system prompt by the Tokmizer plugin (Kilo's experimental.chat.system.transform plugin hook)"}},{id:"amp",label:"Amp",power:Un("ask Amp to use the power skill (Amp has no custom slash commands)"),reducer:{kind:"rules",file:()=>B(Ns(),"amp","AGENTS.md"),note:"written into a managed block of ~/.config/amp/AGENTS.md (Amp plugins can only append to each user message)"}},{id:"pi",label:"Pi",power:{file:()=>B(Zm(),"prompts","power.md"),format:"markdown",placeholder:"$ARGUMENTS",invoke:"/power <request> (run /reload first)"},reducer:{kind:"rules",file:()=>B(Zm(),"APPEND_SYSTEM.md"),note:"written into a managed block of APPEND_SYSTEM.md, which Pi appends to its system prompt"}},{id:"omp",label:"Oh My Pi",power:{file:()=>B(re(),".omp","agent","commands","power.md"),format:"markdown",placeholder:"$ARGUMENTS",invoke:"/power <request>"},reducer:{kind:"rules",file:()=>B(re(),".omp","agent","APPEND_SYSTEM.md"),note:"written into a managed block of APPEND_SYSTEM.md, which omp appends to its system prompt"}},{id:"hermes",label:"Hermes",power:rn(()=>B(process.env.HERMES_HOME||B(re(),".hermes"),"skills"),"/power <request>"),reducer:{kind:"plugin",note:"added as a system prompt section by the Tokmizer plugin (register_system_prompt_section)"}},{id:"openclaw",label:"OpenClaw",power:rn(()=>B(re(),".openclaw","skills"),"/power <request>"),reducer:{kind:"plugin",note:"added to the system prompt by the Tokmizer plugin's before_prompt_build hook, which OpenClaw only runs once you set plugins.entries.tokmizer.hooks.allowConversationAccess to true"}},{id:"antigravity",label:"Antigravity",power:rn(()=>B(re(),".gemini","config","skills"),"/power <request>"),reducer:{kind:"antigravity",note:"injected as a system message by a SessionStart hook in hooks.json"}}];Kx=/[\r\n]|!\{|@\{|\$\{|\{\{/;oo="tokmizer-reducer"});function ao(e){let t=e;for(let[n,r]of iv)t=t.replace(n,r);return t}var iv,wl=k(()=>{"use strict";iv=[[/(authorization\s*:\s*)([A-Za-z][A-Za-z0-9._-]*)\s+[^\s'"]+/gi,"$1$2 [REDACTED]"],[/(authorization\s*:\s*)[A-Za-z0-9._\-+/=]{8,}/gi,"$1[REDACTED]"],[/(bearer\s+)[A-Za-z0-9._\-+/=]{8,}/gi,"$1[REDACTED]"],[/((?:^|\s)(?:-b|--cookie)[=\s]+['"]?)[^\s'";=]+=[^\s'";]+(?:\s*;\s*[^\s'";=]+=[^\s'";]+)*/gi,"$1[REDACTED]"],[/((?:^|[\s'"])(?:Set-)?Cookie\s*:\s*)[^\s'";=]+=[^\s'";]+(?:\s*;\s*[^\s'";=]+=[^\s'";]+)*/gi,"$1[REDACTED]"],[/(--?(?:password|passwd|passphrase|apipass|pass|pwd|token|api[-_]?key|secret|bearer|cookie|jwt)(?:-[a-z0-9]+)*[=\s]+)\S+/gi,"$1[REDACTED]"],[/((?:^|\s)-b[=\s]?['"]?)[^\s'"=]+=[^\s'"]+/gi,"$1[REDACTED]"],[/((?:^|\s)(?:-u[=\s]?|(?:--user|-a)[=\s])['"]?[^\s:/'"]*:)(\/[^/\s'"][^\s'"]*|[^\s/'"0-9][^\s'"]*|[0-9][^\s'"]*[^\s'"0-9][^\s'"]*)/gi,"$1[REDACTED]"],[/((?:^|\s)(?:-u[=\s]?|(?:--user|-a)[=\s])['"]?[^\s:/'"]*[^\s:/'"0-9][^\s:/'"]*:)(?:\/[^/\s'"]|[^\s/'"])[^\s'"]*/gi,"$1[REDACTED]"],[/((?:^|\s)(?:-u[=\s]?|(?:--user|-a)[=\s])['"]?:)(?:\/[^/\s'"]|[^\s/'"])[^\s'"]*/gi,"$1[REDACTED]"],[/((?:[A-Za-z0-9]+-){0,8}(?:X-Api-Key|Private-Token|[A-Za-z0-9]+-(?:Token|Key|Auth|Secret))\s*:\s*)[^\s'"]+/gi,"$1[REDACTED]"],[/((?:^|[\s'"])(?:Set-)?Cookie\s*:\s*)[^\s'"]+/gi,"$1[REDACTED]"],[/(-i\s+)(\/[^\s]+|~\/[^\s]+|[A-Z]:\\[^\s]+)/g,"$1[REDACTED]"],[/([a-zA-Z][a-zA-Z0-9+.-]{0,31}:\/\/[^:/\s@]*:)[^\s@]+(@[^@/\s]+)/g,"$1[REDACTED]$2"],[/(AWS_(?:ACCESS_KEY_ID|SECRET_ACCESS_KEY|SESSION_TOKEN)\s*=\s*)\S+/g,"$1[REDACTED]"],[/(GOOGLE_APPLICATION_CREDENTIALS\s*=\s*)\S+/g,"$1[REDACTED]"],[/(AZURE_(?:CLIENT_SECRET|TENANT_ID|CLIENT_ID)\s*=\s*)\S+/g,"$1[REDACTED]"],[/(sk-(?:proj-)?[A-Za-z0-9_-]{20,})/g,"sk-[REDACTED]"],[/\b(OPENAI_API_KEY\s*=\s*)\S+/g,"$1[REDACTED]"],[/\b(ANTHROPIC_API_KEY\s*=\s*)\S+/g,"$1[REDACTED]"],[/(sk-ant-[A-Za-z0-9_-]{20,})/g,"sk-ant-[REDACTED]"],[/\b(GH(?:_|ITHUB_)?TOKEN\s*=\s*)\S+/g,"$1[REDACTED]"],[/\b(GITLAB_TOKEN\s*=\s*)\S+/g,"$1[REDACTED]"],[/\b(SLACK_(?:BOT_)?TOKEN\s*=\s*)\S+/g,"$1[REDACTED]"],[/(xox[bpsoa]-[A-Za-z0-9-]{10,})/g,"xox[REDACTED]"],[/(xapp-[A-Za-z0-9-]{10,})/g,"[REDACTED]"],[/(sk_(?:test|live)_[A-Za-z0-9]{16,})/g,"sk_[REDACTED]"],[/(gh[a-z])_[A-Za-z0-9]{20,}/g,"$1_[REDACTED]"],[/(github_pat)_[A-Za-z0-9_]{20,}/g,"$1_[REDACTED]"],[/(gl(?:pat|rt|soat|imt|dt|ft|agent|oas|cbt|ptt))-[A-Za-z0-9_-]{16,}/g,"$1-[REDACTED]"],[/(npm_[A-Za-z0-9_-]{20,})/g,"npm_[REDACTED]"],[/(?:AKIA|ASIA|AGPA|AIDA|AROA|ANPA)[0-9A-Z]{16,}/g,"[REDACTED_AWS_KEY]"],[/AIza[A-Za-z0-9_-]{35}/g,"[REDACTED_GOOGLE_KEY]"],[/hv[sb]\.[A-Za-z0-9_-]{20,}/g,"[REDACTED_VAULT_TOKEN]"],[/dop_v1_[A-Za-z0-9]{40,}/g,"[REDACTED]"],[/dckr_pat_[A-Za-z0-9_-]{20,}/g,"[REDACTED]"],[/pypi-[A-Za-z0-9_-]{16,}/g,"[REDACTED]"],[/rk_(?:live|test)_[A-Za-z0-9]{16,}/g,"[REDACTED]"],[/whsec_[A-Za-z0-9]{16,}/g,"[REDACTED]"],[/SG\.[A-Za-z0-9_-]{20,}\.[A-Za-z0-9_-]{20,}/g,"[REDACTED]"],[/(eyJ[A-Za-z0-9_-]{6,}(?:\.[A-Za-z0-9_-]{4,}){1,2})/g,"[REDACTED_JWT]"],[/-----BEGIN [A-Z ]*PRIVATE KEY-----(?:[\s\S]*?-----END[^\n]*-----|\r?\n[A-Za-z0-9+/=][A-Za-z0-9+/=\r\n]*)?/g,"[REDACTED_PEM]"],[/\b((?:--?)?[A-Za-z0-9_]*(?:TOKEN|SECRET|PASSWORD|PASSWD|PASS|APIKEY|KEY|CRED|CREDS|CREDENTIAL|CREDENTIALS|AUTH|_PWD)[A-Za-z0-9_]*['"]?\s*=\s*)(?:"[^"]*"|'[^']*'|[^"'\s]\S*)/gi,"$1[REDACTED]"],[/\b([A-Za-z0-9_]*(?:TOKEN|SECRET|PASSWORD|PASSWD|PASS|APIKEY|KEY|CRED|CREDS|CREDENTIAL|CREDENTIALS|_PWD)[A-Za-z0-9_]*['"]?\s*:\s*)(?:"[^"]*"|'[^']*'|[^\s'",}]+)/gi,"$1[REDACTED]"],[/((?:^|[\s'"{,])['"]?(?:[A-Za-z0-9_]+_)?auth['"]?\s*:\s*)(?:"[^"]*"|'[^']*'|[^\s'",}]+)/gi,"$1[REDACTED]"],[/(\bpwd\s*[=:]\s*)(?:"[^"]*"|'[^']*'|[^/~\s][^\s;'"]*)/gi,"$1[REDACTED]"],[/([=:]\s*["']?)[A-Za-z0-9_\-+/=]{40,}/g,"$1[REDACTED]"]]});import{existsSync as av,mkdirSync as mF,writeFileSync as pF}from"node:fs";import{join as lv}from"node:path";function uv(){return lv(w(),cv)}function lp(){return av(uv())}var cv,cp=k(()=>{"use strict";H();at();He();vt();cv="telemetry-notice-shown"});import{join as js}from"node:path";import{appendFileSync as dp,chmodSync as fv,existsSync as lo,mkdirSync as xl,readFileSync as Tl,renameSync as vl,rmdirSync as mp,statSync as Rl,unlinkSync as zn,utimesSync as dv,writeFileSync as Al}from"node:fs";function $l(e){return js(co(),`${e}.lock`)}function pv(e){let t=$l(e);try{return xl(co(),{recursive:!0,mode:448}),xl(t),!0}catch{try{Date.now()-Rl(t).mtimeMs>mv&&mp(t)}catch{return!1}return!1}}function hv(e){try{dv($l(e),new Date,new Date)}catch{return}}function gv(e){try{mp($l(e))}catch{return}}function co(){return js(w(),"spool")}function Ls(e){return js(co(),`${e}.jsonl`)}function Bs(e){return js(co(),`${e}.pending.jsonl`)}function Us(e,t){if(Y())try{xl(co(),{recursive:!0,mode:448});let n=Ls(e);if(lo(n)&&Rl(n).size>=El)return;dp(n,JSON.stringify(t)+`
|
|
54
54
|
`,{mode:384}),fv(n,384)}catch{return}}function up(e,t){dp(e,Tl(t,"utf8"),{mode:384}),Al(t,"",{mode:384});try{zn(t)}catch{return}}function yv(e){if(Rl(e).size<=El)return;let t=Tl(e,"utf8").split(`
|
|
55
55
|
`).filter(o=>o.trim()),n=0,r=[];for(let o=t.length-1;o>=0;o--){let s=t[o]??"";if(n+=Buffer.byteLength(s,"utf8")+1,n>El)break;r.unshift(s)}Al(e,r.length?r.join(`
|
|
56
56
|
`)+`
|
|
57
57
|
`:"",{mode:384})}function kv(e){try{let t=Bs(e),n=Ls(e),r=`${n}.merging`;if(lo(r)&&up(t,r),lo(t))lo(n)&&(vl(n,r),up(t,r));else{if(!lo(n))return[];vl(n,t)}yv(t);let o=[];for(let s of Tl(t,"utf8").split(`
|
|
58
58
|
`))if(s.trim())try{o.push(JSON.parse(s))}catch{continue}return o.length===0?(zn(t),[]):o}catch{return[]}}function pp(e){try{zn(Bs(e))}catch{return}}function bv(e,t){if(t.length===0){pp(e);return}let n=Bs(e),r=`${n}.tmp`;Al(r,t.map(o=>JSON.stringify(o)).join(`
|
|
59
59
|
`)+`
|
|
60
|
-
`,{mode:384}),vl(r,n)}async function zs(e,t,n={}){if(!Y()||Sl.has(e)||!pv(e))return"fail";Sl.add(e);try{if(!(await ee()).telemetryOptIn)return fp(e),"empty";if(!lp())return"fail";let r=kv(e);if(r.length===0)return"empty";let o=await Z();if(!o)return"fail";if(n.requirePro&&o.plan!=="pro")return pp(e),"ok";let s=n.baseUrl??process.env.TOKMIZER_BASE_URL??"https://tokmizer.com",i=await it();for(let a=0;a<r.length;a+=_l){if(!(await ee()).telemetryOptIn)return fp(e),"empty";
|
|
61
|
-
`).length<6)}var Dv,Mv,Fv,Hv,jv,Gs,zv,Gv,Kn=k(()=>{"use strict";Dv=/^(\s*)(?:export\s+)?(?:async\s+)?(?:function|interface|type|const|let|var|def|fn|impl|trait|struct|enum)\s+[\w$]+/,Mv=/\{\s*$/,Fv=/^\s*(?:(?:public|private|protected|static|async|get|set|readonly|override)\s+)*([\w$]+)\s*\(([^)]*)\)\s*(?::\s*[^{]+)?\{\s*$/,Hv=new Set(["if","for","while","switch","catch","do","with","return","else","function","await","yield"]);jv=/^\s*(?:if|for|while|switch|try|do)\b[^{}]*\{\s*$/;Gs=/^\s*… \d+ lines? folded(?: \(\d+-\d+\): Read offset=\d+ limit=\d+ before editing)? …$/,zv=/^\s*… (\d+) lines? folded(?: \(\d+-\d+\): Read offset=\d+ limit=\d+ before editing)? …$/;Gv=/\b(?:function|class|interface|import\s+|export\s+|def\s+|fn\s+|impl\s+|package\s+|namespace\s+|using\s+|#include|=>\s*\{|=\s*function)/});function Ip(e){let t=[],n=0,r=()=>{n>0&&t.push(`\u2026 ${n} verbose log line${n===1?"":"s"} dropped \u2026`),n=0};for(let o of e){if(Cp.test(o.replace($p,""))&&!Op.test(o)&&!Pp.test(o)){n+=1;continue}r(),t.push(o)}return r(),t}function Ap(e){if(e.trim()===""||/^\s/.test(e)||Op.test(e)||Pp.test(e)||Zv.test(e))return null;let t=e.replace($p,"");return Cp.test(t)||Kv.test(t)?"\0verbose":e.replace(/\d+/g,"#")}function Np(e){let t=[],n=0;for(;n<e.length;){let r=Ap(e[n]),o=n+1;if(r!==null)for(;o<e.length&&Ap(e[o])===r;)o+=1;let s=o-n;r===null||s<Wv?t.push(...e.slice(n,o)):(t.push(...e.slice(n,n+Tp)),t.push(`\u2026 ${s-Tp-Rp} similar log lines dropped \u2026`),t.push(...e.slice(o-Rp,o))),n=o}return t}function Zs(e){if(e.length===0)return e;let t=[],n=1,r=e[0];for(let o=1;o<e.length;o++){if(e[o]===r){n+=1;continue}t.push(n>1?`${r} \xD7${n}`:r),r=e[o],n=1}return t.push(n>1?`${r} \xD7${n}`:r),t}function Dp(e){let t=[],n=0;for(let r of e){if(r.trim()===""){n+=1;continue}n>0&&t.push(""),n=0,t.push(r)}return t}var $p,Cp,Op,Pp,Kv,Zv,Wv,Tp,Rp,Ws=k(()=>{"use strict";Il();$p=/^\s*(?:\d{4}-\d{2}-\d{2}[T\s]\d{2}:\d{2}:\d{2}(?:\.\d+)?Z?|\d{2}:\d{2}:\d{2}(?:\.\d+)?)\s*/,Cp=/^\s*(?:\[(?:DEBUG|TRACE|INFO|VERBOSE)\]|(?:DEBUG|TRACE|INFO|VERBOSE)(?!\s*:))(?=\s|:|$)(?!\s*[+\-*\/%&|^?]*=)/,Op=new RegExp(Ct.source,"i"),Pp=/\bWARN(?:ING)?\b/i;Kv=/^(?:DEBUG|INFO):[\w.-]+:/,Zv=/Error|Exception|Traceback|panic|fail|FAIL|Fail|SEVERE|CRITICAL/,Wv=8,Tp=1,Rp=2});function
|
|
60
|
+
`,{mode:384}),vl(r,n)}async function zs(e,t,n={}){if(!Y()||Sl.has(e)||!pv(e))return"fail";Sl.add(e);try{if(!(await ee()).telemetryOptIn)return fp(e),"empty";if(!lp())return"fail";let r=kv(e);if(r.length===0)return"empty";let o=await Z();if(!o)return"fail";if(n.requirePro&&o.plan!=="pro")return pp(e),"ok";let s=n.baseUrl??process.env.TOKMIZER_BASE_URL??"https://tokmizer.com",i=await it();for(let a=0;a<r.length;a+=_l){if(!(await ee()).telemetryOptIn)return fp(e),"empty";hv(e);let l=await Le("POST",t,{events:r.slice(a,a+_l),...n.consent?{consent:!0}:{}},{baseUrl:s,bearer:o.jwt,signingSecret:o.signingSecret,fingerprint:i.fingerprint,installId:i.installId});if(!l.ok)return l.status===401||l.status===403?"auth":"fail";bv(e,r.slice(a+_l))}return"ok"}catch{return"fail"}finally{Sl.delete(e),gv(e)}}function fp(e){try{zn(Ls(e))}catch{}try{zn(`${Ls(e)}.merging`)}catch{}try{zn(Bs(e))}catch{return}}var El,_l,mv,Sl,Cl=k(()=>{"use strict";H();Fe();En();Sn();at();He();cp();El=512*1024,_l=100,mv=12e4,Sl=new Set});var yp={};ce(yp,{commandName:()=>Js,flushTelemetry:()=>Ol,recordTelemetry:()=>uo});function $v(e){if(!/[\\/]/.test(e))return e;let t=e.split(/[\\/]/).filter(r=>r.length>0).pop()??"",n=t.toLowerCase().endsWith(".exe")?t.slice(0,-4):t;return Tv.has(n.toLowerCase())?n:""}function Cv(e,t,n){let r=0;for(;e==="git"&&r<n.length&&n[r].startsWith("-");)r+=Av.has(n[r])?2:1;let o=(n[r]??"").toLowerCase();return t.has(o)?`${e} ${o}`:e}function hp(e){let t=e.toLowerCase();return t.startsWith("git")||xv.has(t)}function Js(e){let t=e.trim().split(/\s+/).filter(l=>l.length>0),n=0;for(;n<t.length&&Sv.test(t[n]??"");)n+=1;let r=$v(t[n]??"");if(!r||!wv.test(r)||r.length>Ev)return"";let o=Rv.get(r.toLowerCase());if(o)return Cv(r.toLowerCase(),o,t.slice(n+1));if(hp(r)||vv.test(r)||ao(r)!==r)return"";let s=t[n+1];return s&&hp(s)?"":(s&&gp.has(r.toLowerCase())&&_v.test(s)?`${r} ${s}`:r).slice(0,64)}async function uo(e){if(!e.telemetryOptIn)return;let t=Js(e.cmd),n=t&&ao(t)===t?t:"other",r=e.sessionId?e.sessionId.replace(/[^A-Za-z0-9._-]/g,"").slice(0,64):"";Us("telemetry",{cmd:n,tokensSaved:Math.max(0,Math.round(e.tokensSaved)),...e.tokensRestored?{tokensRestored:Math.max(0,Math.round(e.tokensRestored))}:{},...e.rawTokens!=null?{rawTokens:Math.max(0,Math.round(e.rawTokens))}:{},optimized:e.optimized,...r?{sessionId:r}:{},...e.host?{host:e.host}:{}})}async function Ol(e){return zs("telemetry","/api/v1/telemetry",{baseUrl:e,consent:!0})}var wv,_v,Sv,xv,vv,Ev,gp,Tv,Rv,Av,Jn=k(()=>{"use strict";wl();Cl();wv=/^[a-z0-9][a-z0-9._-]*$/i,_v=/^[a-z][a-z-]+$/,Sv=/^[A-Za-z_][A-Za-z0-9_]*=/,xv=new Set(["gh","glab","gup","hub","gist"]),vv=/^(gh[a-z]_|github_pat_|gl(?:pat|rt|soat|imt|dt|ft|agent|oas)-|npm_|xox|sk-|sk_|eyj|a(?:kia|sia|gpa|ida|roa|npa)|aiza|hv[sb]\.)/i,Ev=24,gp=new Set(["docker","podman","npm","pnpm","yarn","npx","bun","deno","cargo","rustup","go","pip","pip3","uv","poetry","brew","apt","apt-get","dnf","yum","pacman","kubectl","helm","terraform","aws","gcloud","az","systemctl","composer","bundle","gem","dotnet","prisma","tkr","rtk","token"]),Tv=new Set([...gp,"git","gh","node","python","python3","bash","sh","zsh","psql","mysql","sqlite3","java","ruby","perl","rg","fd","jq","make","gradle","mvn","vitest","jest","tsc","esbuild","vite","webpack","playwright","rails","rake"]),Rv=new Map([["git",new Set(["status","diff","log","show","blame","ls-files","rev-parse","branch","fetch","pull","push","commit","checkout","switch","merge","rebase","stash","tag","remote","add","reset","restore","clean","grep"])],["gh",new Set(["pr","issue","run","repo","api"])]]),Av=new Set(["-C","-c"])});function Qe(e){return e.replace(Ov,"").replace(Pv,"")}var Ov,Pv,fo=k(()=>{"use strict";Ov=/\x1b\[[0-9;?]*[ -/]*[@-~]/g,Pv=/\x1b\][^\x07\x1b]*(?:\x07|\x1b\\)/g});function kp(e,t){return t.length===0?e:e.filter(n=>!t.some(r=>r.test(n)))}var bp=k(()=>{"use strict"});function wp(e,t){return e.map(n=>{if(n.length<=t)return n;let r=n.charCodeAt(t-1),o=n.charCodeAt(t),s=r>=55296&&r<=56319&&o>=56320&&o<=57343?t-1:t;return`${n.slice(0,s)}\u2026`})}var _p=k(()=>{"use strict"});function Gn(e){return`\u2026 (${e} more lines omitted)`}function Sp(e,t){if(e.length<=t)return{kept:e,dropped:[]};let n=Math.ceil(t*.7),r=t-n,o=e.slice(n,e.length-r);return{kept:[...e.slice(0,n),Gn(o.length),...e.slice(e.length-r)],dropped:o}}var Pl=k(()=>{"use strict"});function xp(e,t){let n=t>0?t:5,r=[],o=0,s=a=>{o>=n?r.push(`\u2026 ${o} passing checks folded \u2026`):r.push(...a)},i=[];for(let a of e)Iv.test(a)&&!Ct.test(a)?(i.push(a),o+=1):(s(i),i=[],o=0,r.push(a));return s(i),r}var Iv,Ct,Il=k(()=>{"use strict";Iv=/^\s*(?:[✓✔√]|ok )/,Ct=/✕|✗|×|\bFAIL\b|\bERROR\b|\bFATAL\b|\bError|\berror|Expected|Received|\bfailed\b|^\s*Tests?:|^\s*Test Suites?:/});function vp(e){return e.map(t=>t.replace(Nv,n=>{let r=n.split("/").filter(Boolean);return r.length<=2?n:`\u2026/${r.slice(-2).join("/")}`}))}var Nv,Ep=k(()=>{"use strict";Nv=/(?:\/[\w.@+-]+){3,}/g});function Lv(e){let t=Fv.exec(e);return!t||Hv.has(t[1])?!1:!/=>|\bfunction\b/.test(t[2])}function Bv(e,t,n){let r=t;for(;r<e.length;){if(e[r]==="\\"){r+=2;continue}if(e[r]===n)return!0;r+=1}return!1}function Uv(e,t){let n=0,r=null,o=0;for(;o<e.length;){let s=e[o];if(t.inBlockComment){if(s==="*"&&e[o+1]==="/"){t.inBlockComment=!1,o+=2;continue}o+=1;continue}if(t.inTemplate){if(s==="\\"){o+=2;continue}s==="`"&&(t.inTemplate=!1),o+=1;continue}if(r){if(s==="\\"){o+=2;continue}s===r&&(r=null),o+=1;continue}if(s==="/"&&e[o+1]==="/")break;if(s==="/"&&e[o+1]==="*"){t.inBlockComment=!0,o+=2;continue}if(s==="`"){t.inTemplate=!0,o+=1;continue}if(s==="'"||s==='"'){let i=o>0?e[o-1]:"";!(s==="'"&&(i==="<"||i==="&"))&&Bv(e,o+1,s)&&(r=s),o+=1;continue}s==="{"||s==="("||s==="["?n+=1:(s==="}"||s===")"||s==="]")&&(n-=1),o+=1}return n}function Jv(e,t,n){let r=n==null?"":` (${n}-${n+t-1}): Read offset=${n} limit=${t} before editing`;return`${e}\u2026 ${t} ${t===1?"line":"lines"} folded${r} \u2026`}function Nl(e){let t=new Array(e.length).fill(!1);for(let n=0;n<e.length;n+=1){let r=zv.exec(e[n]);if(!r)continue;let o=Number(r[1])-1,s=n+1;for(;o>0&&s<e.length&&e[s]==="";)t[s]=!0,o-=1,s+=1;n=s-1}return t}function mo(e,t=3,n=!1){let r=[],o=0;for(;o<e.length;){let s=e[o];if(Dv.test(s)&&Mv.test(s)||Lv(s)||jv.test(s)){let i={inBlockComment:!1,inTemplate:!1},a=0,l=o,c=!1;for(;l<e.length&&l-o<200;)if(a+=Uv(e[l],i),l+=1,a<=0&&!i.inTemplate&&!i.inBlockComment){c=!0;break}let u=l-o;if(c&&u<t){r.push(...e.slice(o,l)),o=l;continue}if(c&&u>=3){let f=u-2,d=/^\s*/.exec(e[o+1]??"")?.[0]??" ";r.push(s),r.push(Jv(d,f,n?o+2:null));for(let m=0;m<f-1;m++)r.push("");r.push(e[l-1]),o=l;continue}}r.push(s),o+=1}return r}function Ks(e){let t=e.slice(0,4096);return!(!Gv.test(t)||t.split(`
|
|
61
|
+
`).length<6)}var Dv,Mv,Fv,Hv,jv,Gs,zv,Gv,Kn=k(()=>{"use strict";Dv=/^(\s*)(?:export\s+)?(?:async\s+)?(?:function|interface|type|const|let|var|def|fn|impl|trait|struct|enum)\s+[\w$]+/,Mv=/\{\s*$/,Fv=/^\s*(?:(?:public|private|protected|static|async|get|set|readonly|override)\s+)*([\w$]+)\s*\(([^)]*)\)\s*(?::\s*[^{]+)?\{\s*$/,Hv=new Set(["if","for","while","switch","catch","do","with","return","else","function","await","yield"]);jv=/^\s*(?:if|for|while|switch|try|do)\b[^{}]*\{\s*$/;Gs=/^\s*… \d+ lines? folded(?: \(\d+-\d+\): Read offset=\d+ limit=\d+ before editing)? …$/,zv=/^\s*… (\d+) lines? folded(?: \(\d+-\d+\): Read offset=\d+ limit=\d+ before editing)? …$/;Gv=/\b(?:function|class|interface|import\s+|export\s+|def\s+|fn\s+|impl\s+|package\s+|namespace\s+|using\s+|#include|=>\s*\{|=\s*function)/});function Ip(e){let t=[],n=0,r=()=>{n>0&&t.push(`\u2026 ${n} verbose log line${n===1?"":"s"} dropped \u2026`),n=0};for(let o of e){if(Cp.test(o.replace($p,""))&&!Op.test(o)&&!Pp.test(o)){n+=1;continue}r(),t.push(o)}return r(),t}function Ap(e){if(e.trim()===""||/^\s/.test(e)||Op.test(e)||Pp.test(e)||Zv.test(e))return null;let t=e.replace($p,"");return Cp.test(t)||Kv.test(t)?"\0verbose":e.replace(/\d+/g,"#")}function Np(e){let t=[],n=0;for(;n<e.length;){let r=Ap(e[n]),o=n+1;if(r!==null)for(;o<e.length&&Ap(e[o])===r;)o+=1;let s=o-n;r===null||s<Wv?t.push(...e.slice(n,o)):(t.push(...e.slice(n,n+Tp)),t.push(`\u2026 ${s-Tp-Rp} similar log lines dropped \u2026`),t.push(...e.slice(o-Rp,o))),n=o}return t}function Zs(e){if(e.length===0)return e;let t=[],n=1,r=e[0];for(let o=1;o<e.length;o++){if(e[o]===r){n+=1;continue}t.push(n>1?`${r} \xD7${n}`:r),r=e[o],n=1}return t.push(n>1?`${r} \xD7${n}`:r),t}function Dp(e){let t=[],n=0;for(let r of e){if(r.trim()===""){n+=1;continue}n>0&&t.push(""),n=0,t.push(r)}return t}var $p,Cp,Op,Pp,Kv,Zv,Wv,Tp,Rp,Ws=k(()=>{"use strict";Il();$p=/^\s*(?:\d{4}-\d{2}-\d{2}[T\s]\d{2}:\d{2}:\d{2}(?:\.\d+)?Z?|\d{2}:\d{2}:\d{2}(?:\.\d+)?)\s*/,Cp=/^\s*(?:\[(?:DEBUG|TRACE|INFO|VERBOSE)\]|(?:DEBUG|TRACE|INFO|VERBOSE)(?!\s*:))(?=\s|:|$)(?!\s*[+\-*\/%&|^?]*=)/,Op=new RegExp(Ct.source,"i"),Pp=/\bWARN(?:ING)?\b/i;Kv=/^(?:DEBUG|INFO):[\w.-]+:/,Zv=/Error|Exception|Traceback|panic|fail|FAIL|Fail|SEVERE|CRITICAL/,Wv=8,Tp=1,Rp=2});function ge(e,t){Mp.set(e,t)}function Fp(e){return Mp.get(e)}var Mp,mt=k(()=>{"use strict";Mp=new Map});function eE(e){if(e<1024)return String(e);let t=["K","M","G","T"],n=e/1024,r=0;for(;n>=1024&&r<t.length-1;)n/=1024,r+=1;return`${n.toFixed(1)}${t[r]}`}function tE(e){let t=/^(\d+(?:[.,]\d+)?)([KMGTPkmgtp])?/.exec(e),n=t[2]?Qv[t[2].toLowerCase()]:0;return Number(t[1].replace(",","."))*1024**n}function nE(e){let t=Xv.exec(e);if(!t)return null;let n=t[2].trim();if(n===""||n==="."||n==="..")return null;let r=t[1],o=/^\d+$/.test(r)?eE(Number(r)):r,s=e.charCodeAt(0)===100;return{name:n,size:o,sizeKey:tE(r),isDir:s}}function rE(e){if(e.length<3)return null;let t=new Map;for(let o of e){let s=o.name.lastIndexOf(".");if(s<=0)continue;let i=o.name.slice(s);t.set(i,(t.get(i)??0)+1)}let n=null,r=0;for(let[o,s]of t)s>r&&(r=s,n=o);return n&&r>=Math.ceil(e.length/2)?`${r} ${n}`:null}function oE(e){let t=[],n=[],r=!1;for(let f of e){if(f.trim()===""||/^total\s+\d+/.test(f))continue;if(qv.test(f.trim())||!Vv.test(f))return e;let d=nE(f);if(!d){if(/\s\.\.?$/.test(f))continue;return e}r=!0,(d.isDir?t:n).push(d)}if(!r)return e;let o=(f,d)=>f.name.localeCompare(d.name);t.sort(o),n.sort((f,d)=>d.sizeKey-f.sizeKey||o(f,d));let s=[...t,...n],i=[];for(let f of s){let d=f.isDir?`${f.name}/`:f.name;i.push(f.isDir?d:`${d} ${f.size}`)}if(i.length>Dl){let f=i.length-Dl;i=[...i.slice(0,Dl),`\u2026 ${f} more lines omitted`]}let a=n.length===1?"file":"files",l=t.length===1?"dir":"dirs",c=rE(n),u=`${n.length} ${a}, ${t.length} ${l}`+(c?` (${c})`:"");return i.push(u),i}var Vv,qv,Yv,Xv,Qv,Dl,Hp=k(()=>{"use strict";mt();Vv=/^[dbclps\-][rwxsStT\-]{9}[@.+]?(?:\s|$)/,qv=/^[./~][^\s]*:$/,Yv=String.raw`(?:[^\s\d]{3,}\s+\d{1,2}|\d{1,2}\s+[^\s\d]{3,})\s+(?:\d{1,2}:\d{2}|\d{4})|\d{4}-\d{2}-\d{2}\s+\d{2}:\d{2}(?::\d{2}(?:\.\d+)?)?(?:\s+[+-]\d{4})?`,Xv=new RegExp(String.raw`^\S+\s+\d+\s+\S+\s+(?:\S+\s+)?(\d+(?:[.,]\d+)?[KMGTPkmgtp]?i?B?)\s+(?:${Yv})\s+(.+)$`),Qv={k:1,m:2,g:3,t:4,p:5},Dl=1e3;ge("smart-ls",oE)});var Lp=k(()=>{"use strict";Kn();mt();ge("smart-read",e=>mo(e))});function sE(e){let t=e[0].split("/");for(let n of e.slice(1)){let r=n.split("/"),o=0;for(;o<t.length&&o<r.length&&t[o]===r[o];)o+=1;if(t=t.slice(0,o),t.length===0)break}return t.join("/")}function iE(e){if(e.length<2||e.some(o=>o.startsWith('"')))return"";let t=e[0];for(let o of e.slice(1)){let s=0;for(;s<t.length&&s<o.length&&t[t.length-1-s]===o[o.length-1-s];)s+=1;if(t=t.slice(t.length-s),!t)return""}let n=t.indexOf("."),r=n<0?"":t.slice(n);return r.length>=3&&e.every(o=>o.length>r.length)?r:""}function aE(e){let t=e.filter(c=>c.trim()!=="");if(t.length===0||t.filter(c=>!/\s/.test(c.trim())).length<t.length*.6)return e;let r=new Map,o=[],s=0;for(let c of t){let u=c.trim();if(u.startsWith("find:")){o.push(u);continue}let f=u.replace(/^\.\//,"").replace(/\/+$/,""),d=f.lastIndexOf("/"),m=d>=0?f.slice(0,d):"",p=d>=0?f.slice(d+1):f;if(!p)continue;let h=r.get(m)??[];h.push(/\s/.test(p)?`"${p}"`:p),r.set(m,h),s+=1}if(s===0)return e;let i=[...r.keys()].sort(),a=i.every(c=>c!=="")?sE(i):"",l=[`${s}F ${i.length}D${a?` in ${a}/`:""}:`];for(let c of i){let u=a?c.slice(a.length).replace(/^\//,""):c,f=r.get(c),d=iE(f),m=d?f.map(p=>p.slice(0,-d.length)):f;l.push(`${u?`${u}/`:"./"} (${f.length}${d?`, *${d}`:""}): ${m.join(" ")}`)}if(l.length+o.length>jp){let c=Math.max(0,jp-o.length),u=l.length-c;return[...l.slice(0,c),`\u2026 ${u} more lines omitted`,...o]}return[...l,...o]}var jp,Bp=k(()=>{"use strict";mt();jp=1e3;ge("smart-find",aE)});function Jp(e){let t=e.trim();return t.length>Up?`${t.slice(0,Up)}\u2026`:t}function mE(e){let t=[],n="";for(let r of e){let o=n?`${n}, ${r}`:r;o.length>=cE&&n?(t.push(`${n},`),n=r):n=o}return n&&t.push(n),t}function pE(e){let t=null;for(let n of e){let r=n.split("/").slice(0,-1);if(t===null){t=r;continue}let o=0;for(;o<t.length&&o<r.length&&t[o]===r[o];)o+=1;if(t=t.slice(0,o),t.length===0)return""}return t?t.join("/"):""}function hE(e){let t=e.filter(m=>m.trim()!=="");if(t.length===0)return e;let n=new Map,r=new Map,o=null,s=0,i=0;for(let m of t){if(m==="--"){o&&n.get(o).push({separator:!0});continue}if(/^[A-Za-z]:[\\/]/.test(m))return e;let p=uE.exec(m),h=fE.exec(m);if(p&&h)return e;let y=p||h?null:dE.exec(m),T=(p??h??y)?.[1];if(!T)return e;let E=p?{line:p[2],content:p[3],context:!1}:h?{line:h[2],content:h[3],context:!0}:{line:"",content:y[2],context:!1},x=n.get(T)??[];x.push(E),n.set(T,x),E.context||(s+=1,r.set(T,(r.get(T)??0)+1)),i+=1,o=T}if(n.size===i)return e;let a=[...n.keys()].sort((m,p)=>{let h=zp.test(m)?1:0,y=zp.test(p)?1:0;return h-y||(m<p?-1:m>p?1:0)}),l=a.length>1?pE(a):"",c=m=>l?m.slice(l.length+1):m,u=[];for(let m of a){u.push(`${c(m)} (${r.get(m)??0}):`);for(let p of n.get(m))"separator"in p?u.push(" --"):p.line?u.push(` ${p.line}${p.context?"-":":"} ${Jp(p.content)}`):u.push(` ${Jp(p.content)}`)}let f=a.length>1&&u.length>lE?mE(a.map(m=>`${c(m)} (${r.get(m)??0})`)):[],d=[`${s}m ${a.length}f${l?` in ${l}/`:""}:`,...f,"",...u];if(d.length>Ml){let m=d.length-Ml;return[...d.slice(0,Ml),`\u2026 ${m} more lines omitted`]}return d}var Ml,Up,lE,cE,uE,fE,dE,zp,Gp=k(()=>{"use strict";mt();Ml=1e3,Up=200,lE=60,cE=190,uE=/^([^\s:]+):(\d+):(.*)$/,fE=/^([^:]+?)-(\d+)-(.*)$/,dE=/^([^\s:]+):(.*)$/,zp=/(?:^|\/)(?:__tests__|tests?|spec|fixtures?|__mocks__|__snapshots__)\/|\.(?:test|spec)\.[^/]+$/i;ge("smart-grep",hE)});function bE(e){if(!e.some(c=>Kp.test(c)))return e;let t=[],n=0,r=0,o=0,s="",i=!1,a=!1,l=()=>{r>0&&t.push(`${s} \u2026 ${r} ${r===1?"line":"lines"} folded \u2026`),r=0};for(let c of e){let u=c.slice(0,o),f=gE.test(u),d=f?c.slice(o):c,m=yE.test(d),p=i&&m?null:Kp.exec(c);if(p){l(),n=0,o=p[1]?.length??0,i=!0,a=!1,t.push(c);continue}if(/^diff --(?:git|cc|combined) /.test(d)&&(a=!0),m&&!a&&!(o>0&&d.trim().length===0)){n+=1,n<=kE?t.push(c):(r+=1,s=f?u:"");continue}l(),t.push(c)}return l(),t}var Kp,gE,yE,kE,Zp=k(()=>{"use strict";mt();Kp=/^(?:([|\\/ ._-]*\*[|\\/* ._-]* ))?commit [0-9a-f]{7,40}\b/,gE=/^[|\\/* ._-]*$/,yE=/^ {4}/,kE=2;ge("smart-log",bE)});var wE,_E,SE,Wp=k(()=>{"use strict";mt();wE=/^[\s=]+$/,_E=/^\s*=+\s+(.*?)\s+=+\s*$/,SE=512;ge("strip-banners",e=>{let t=[];for(let n of e){if(wE.test(n))continue;let r=n.length<=SE?_E.exec(n):null;t.push(r?r[1]:n)}return t})});function xE(e){let t=[],n=0,r=0;for(;r<e.length;){let o=e[r].replace(/\s+$/,"");if(o===""){n+=1,r+=1,n<=1&&t.push("");continue}n=0;let s=1;for(;r+s<e.length&&e[r+s].replace(/\s+$/,"")===o;)s+=1;if(s>=3)t.push(o),t.push(` \u2026 (repeated ${s}x)`);else for(let i=0;i<s;i++)t.push(o);r+=s}for(;t.length>0&&t[t.length-1]==="";)t.pop();return t}var Vp=k(()=>{"use strict";mt();ge("squeeze-output",xE)});function vE(e){return e==="compact"?.6:e==="minimal"?.3:1}function TE(e){let[t,n,r,o]=e.slice(-4);if(!t||!n||!r||!o||!/^\s*Test Files\s+([1-9]\d*) passed \(\1\)$/.test(t)||!/^\s*Tests\s+([1-9]\d*) passed \(\1\)$/.test(n)||!/^\s*Start at\s+\d{2}:\d{2}:\d{2}$/.test(r))return e;let s=/^(\s*Duration\s+\d+(?:\.\d+)?(?:ms|s)) \(transform [^\n]+\)$/.exec(o)?.[1];return s?[...e.slice(0,-4).filter((a,l)=>l>2||!/^ RUN v\d+\.\d+\.\d+(?:[\w.+-]*) .+$/.test(a)),t,n,s]:e}function RE(e){let t=qp.get(e);if(t)return t;let n=e.strip_lines_matching.map(o=>new RegExp(o)),r={def:e,stripRegexes:n};return qp.set(e,r),r}function Vs(e,t,n={}){return Fl(e,t,n).text}function Fl(e,t,n={}){let r=n.verbosity??"normal";if(!t.strip_ansi&&t.strip_lines_matching.length===0&&!t.transform&&!t.mask_abs_paths&&!t.fold_passing&&!t.truncate_lines_at&&!t.max_lines&&!t.on_empty&&!n.smartCode&&r==="normal")return{text:e,droppedTail:null};let o=RE(t),s=e;t.strip_ansi&&(s=Qe(s));let i=s.endsWith(`
|
|
62
62
|
`),a=(i?s.slice(0,-1):s).split(`
|
|
63
|
-
`);o.stripRegexes.length&&(a=t.keep_failures?a.filter(d=>Ct.test(d)||!o.stripRegexes.some(m=>m.test(d))):kp(a,o.stripRegexes)),r!=="normal"&&!t.preserve_exact&&(a=Zs(a),a=Dp(a)),r==="minimal"&&!t.preserve_exact&&(a=Ip(a),(t.slug==="vitest"||t.slug==="npm-test")&&(a=TE(a)));let l=t.transform==="smart-read"&&n.smartCode!==!0?r==="compact"?8:r==="minimal"?6:3:3;if(!t.preserve_exact&&(n.smartCode||n.smartCode===void 0&&r!=="normal"&&Ks(s))&&(a=mo(a,l)),t.transform){let d=Fp(t.transform);t.transform==="smart-read"?a=mo(a,l,t.slug==="read-tool"):d&&(a=d(a))}let c=t.slug==="read-tool";if(!c){let d=Nl(a);d.some(Boolean)&&(a=a.filter((m,p)=>!d[p]))}t.mask_abs_paths&&(a=vp(a)),t.fold_passing&&(a=xp(a,t.fold_passing_threshold??5)),t.truncate_lines_at&&(a=wp(a,t.truncate_lines_at));let u=null;if(t.max_lines){let d=t.scale_with_level?vE(n.verbosity):1,m=Math.min(t.max_lines,Math.max(EE,Math.round(t.max_lines*d))),p=c?Nl(a):null,
|
|
63
|
+
`);o.stripRegexes.length&&(a=t.keep_failures?a.filter(d=>Ct.test(d)||!o.stripRegexes.some(m=>m.test(d))):kp(a,o.stripRegexes)),r!=="normal"&&!t.preserve_exact&&(a=Zs(a),a=Dp(a)),r==="minimal"&&!t.preserve_exact&&(a=Ip(a),(t.slug==="vitest"||t.slug==="npm-test")&&(a=TE(a)));let l=t.transform==="smart-read"&&n.smartCode!==!0?r==="compact"?8:r==="minimal"?6:3:3;if(!t.preserve_exact&&(n.smartCode||n.smartCode===void 0&&r!=="normal"&&Ks(s))&&(a=mo(a,l)),t.transform){let d=Fp(t.transform);t.transform==="smart-read"?a=mo(a,l,t.slug==="read-tool"):d&&(a=d(a))}let c=t.slug==="read-tool";if(!c){let d=Nl(a);d.some(Boolean)&&(a=a.filter((m,p)=>!d[p]))}t.mask_abs_paths&&(a=vp(a)),t.fold_passing&&(a=xp(a,t.fold_passing_threshold??5)),t.truncate_lines_at&&(a=wp(a,t.truncate_lines_at));let u=null;if(t.max_lines){let d=t.scale_with_level?vE(n.verbosity):1,m=Math.min(t.max_lines,Math.max(EE,Math.round(t.max_lines*d))),p=c?Nl(a):null,h=p?p.filter(y=>!y).length:a.length;if(h>m){let y=m;if(p){let E=0;for(y=0;y<a.length&&E<m;)p[y]||(E+=1),y+=1}let T=h-m;if(t.keep_failures){let E=a.slice(y),x=E.filter(O=>!Ct.test(O)),R=E.reduce((O,F,L)=>O+(!Ct.test(F)&&!p?.[y+L]?1:0),0);u=x.length>0?x.join(`
|
|
64
64
|
`):null,a=[...a.slice(0,y),...R>0?[Gn(R)]:[],...E.filter(O=>Ct.test(O))]}else if(c)u=a.slice(y).join(`
|
|
65
65
|
`),a=[...a.slice(0,y),Gn(T)];else{let{kept:E,dropped:x}=Sp(a,m);u=x.length>0?x.join(`
|
|
66
66
|
`):null,a=E}}}let f=a.join(`
|
|
@@ -70,19 +70,19 @@ ${t}
|
|
|
70
70
|
`))}return o}var $,on=k(()=>{$=class e extends Error{line;column;codeblock;constructor(t,n){let[r,o]=AE(n.toml,n.ptr),s=$E(n.toml,r,o);super(`Invalid TOML document: ${t}
|
|
71
71
|
|
|
72
72
|
${s}`,n),this.line=r,this.column=o,this.codeblock=s}static x(t,n,r){throw new e(t,{toml:n.s,ptr:r??n.p})}}});function qs(e){let t=e.p,n=e.s.charCodeAt(e.p++),r=n,o=n===39,s=n===e.s.charCodeAt(e.p)&&n===e.s.charCodeAt(e.p+1);s&&((n=e.s.charCodeAt(e.p+=2))===10?e.p++:n===13&&e.s.charCodeAt(e.p+1)===10&&(e.p+=2));let i="",a=e.p,l=0;for(;e.p<e.s.length;e.p++)if(n=e.s.charCodeAt(e.p),s&&(n===10||n===13&&e.s.charCodeAt(e.p+1)===10))l=l&&3;else if(n<32&&n!==9||n===127)$.x("control characters are not allowed in strings",e);else if((!l||l===3)&&n===r&&(!s||e.s.charCodeAt(e.p+1)===r&&e.s.charCodeAt(e.p+2)===r)){if(s&&(e.s.charCodeAt(e.p+3)===r&&e.p++,e.s.charCodeAt(e.p+3)===r&&e.p++),!l){let c=e.s.slice(a,e.p);i=i?i+c:c}return e.p+=s?3:1,i}else if(!l)!o&&n===92&&(i+=e.s.slice(a,a=e.p),l=1);else if(l===1)if(n===120||n===117||n===85){let c=e.p++-1,u=0,f=n===120?2:n===117?4:8;for(let d=0;d<f;d++,e.p++){let m=e.s.charCodeAt(e.p),p=m>=48&&m<=57?m-48:m>=65&&m<=70?m-65+10:m>=97&&m<=102?m-97+10:-1;p<0&&$.x("invalid non-hex character in unicode escape",e),u=u<<4|p}(u<0||u>1114111||u>=55296&&u<=57343)&&$.x("invalid unicode escape",e,c),i+=String.fromCodePoint(u),a=e.p--,l=0}else s&&(n===32||n===9)?l=2:(n===98?i+="\b":n===116?i+=" ":n===110?i+=`
|
|
73
|
-
`:n===102?i+="\f":n===114?i+="\r":n===101?i+="\x1B":n===34?i+='"':n===92?i+="\\":$.x("unrecognised escape sequence",e),a=e.p+1,l=0);else n!==32&&n!==9&&(l===2&&$.x("invalid escape: only line-ending whitespace may be escaped",e,a),l=!o&&n===92?1:0,a=e.p);$.x("unfinished string",e,t)}var Ll=k(()=>{on();});var CE,sn,jl=k(()=>{CE=/^(\d{4}-\d{2}-\d{2})?[Tt ]?(?:(\d{2}):\d{2}(?::\d{2}(?:\.\d+)?)?)?(Z|z|[-+]\d{2}:\d{2})?$/i,sn=class e extends Date{#t=!1;#n=!1;#e=null;constructor(t,n,r){let o=!0,s=!0,i="Z",a;if(typeof t=="string")if(n)e:{if(n<3){if(+t.slice(11,13)>23){t="";break e}n===2?(i=null,t+="Z"):(a=t.charCodeAt(t.length-1))!==90&&a!==122&&(i=t.slice(t.length-6)),r&&(t=t.slice(0,10)+"T"+t.slice(11))}else n===4&&(t=+t.slice(0,2)>23?"":`0000-01-01T${t}Z`);o=n!==4,s=n!==3}else{let l=t.match(CE);l?(l[1]||(o=!1,t=`0000-01-01T${t}`),s=!!l[2],s&&t[10]===" "&&(t=t.replace(" ","T")),l[2]&&+l[2]>23?t="":(i=l[3]||null,!i&&s&&(t+="Z"))):t=""}super(t),isNaN(this.getTime())||(this.#t=o,this.#n=s,this.#e=i)}isDateTime(){return this.#t&&this.#n}isLocal(){return!this.#t||!this.#n||!this.#e}isDate(){return this.#t&&!this.#n}isTime(){return this.#n&&!this.#t}isValid(){return this.#t||this.#n}toISOString(){let t=super.toISOString();if(this.isDate())return t.slice(0,10);if(this.isTime())return t.slice(11,23);if(this.#e===null)return t.slice(0,-1);if(this.#e==="Z"||this.#e==="z")return t;let n=+this.#e.slice(1,3)*60+ +this.#e.slice(4,6);return n=this.#e[0]==="-"?n:-n,new Date(this.getTime()-n*6e4).toISOString().slice(0,-1)+this.#e}static wrapAsOffsetDateTime(t,n="Z"){let r=new e(t);return r.#e=n,r}static wrapAsLocalDateTime(t){let n=new e(t);return n.#e=null,n}static wrapAsLocalDate(t){let n=new e(t);return n.#n=!1,n.#e=null,n}static wrapAsLocalTime(t){let n=new e(t);return n.#t=!1,n.#e=null,n}}});function Te(e,t=10){return t===16?e>47&&e<58||e>64&&e<71||e>96&&e<103:e>47&&e<48+t}function Ul(e,t){return e===32||e===9||e===10||e===13||t&&(e===t||e===44)||e===35}function go(e,t){let n=e.p,r=e.s.charCodeAt(e.p);if(r===91||r===123){e.d--||$.x("document contains excessively nested structures. aborting.",e);let o=r===91?Qp(e):Xp(e);return e.d++,o}return r===34||r===39?qs(e):r===116?((e.s.charCodeAt(++e.p)!==114||e.s.charCodeAt(++e.p)!==117||e.s.charCodeAt(++e.p)!==101)&&$.x("invalid value",e,n),e.p++,!0):r===102?((e.s.charCodeAt(++e.p)!==97||e.s.charCodeAt(++e.p)!==108||e.s.charCodeAt(++e.p)!==115||e.s.charCodeAt(++e.p)!==101)&&$.x("invalid value",e,n),e.p++,!1):r===43||r===45?Ys(e,e.p,e.s.charCodeAt(++e.p),44-r,t):e.s.charCodeAt(e.p+4)===45&&e.s.charCodeAt(e.p+7)===45?OE(e,r,t):e.s.charCodeAt(e.p+2)===58?PE(e,r,t):Ys(e,e.p,r,0,t)}function Ys(e,t,n,r,o){let s=n,i=0,a=!1;if(s===105)return(e.s.charCodeAt(++e.p)!==110||e.s.charCodeAt(++e.p)!==102)&&$.x("invalid value",e,t),e.p++,(r||1)/0;if(s===110)return(e.s.charCodeAt(++e.p)!==97||e.s.charCodeAt(++e.p)!==110)&&$.x("invalid value",e,t),e.p++,NaN;if(s===48){if(++e.p>=e.s.length||Ul(s=e.s.charCodeAt(e.p),o))return e.bi===!0?0n:0;if(!r){if(s===120)return Bl(e,t,16,o);if(s===98)return Bl(e,t,2,o);if(s===111)return Bl(e,t,8,o)}s===46?i=2:s===101||s===69?i=4:$.x("illegal leading zero",e,t)}else Te(s)||$.x("invalid value",e,t);for(;++e.p<e.s.length&&(s=e.s.charCodeAt(e.p),!Ul(s,o));)i||(i=1),s===95?(i&1||$.x("illegal underscore",e),i+=11,a=!0):i===1&&s===46?i=2:(i===1||i===3)&&(s===101||s===69)?i=4:i===4&&(s===43||s===45)||(Te(s)?i>9?i-=11:i&1||i++:$.x("illegal character in numeric literal",e));if(!i){let c=(n-48)*(r||1);return e.bi===!0?BigInt(c):c}i&1||$.x("unfinished numeric value",e,t);let l=e.s.slice(t,e.p);return a&&(l=l.replaceAll("_","")),i>1?parseFloat(l):Yp(e,l,10,t)}function Bl(e,t,n,r){let o,s=1;for(;++e.p<e.s.length&&(o=e.s.charCodeAt(e.p),!Ul(o,r));)o===95?(s&1&&$.x("illegal underscore",e),s=3):Te(o,n)?s&1&&s--:$.x("illegal character in numeric literal",e);s&1&&$.x("unfinished numeric value",e);let i=e.s.slice(t+2,e.p);return s&&(i=i.replaceAll("_","")),Yp(e,i,n,t)}function Yp(e,t,n,r){if(e.bi!==!0)e:{let o=parseInt(t,n);if(!Number.isSafeInteger(o)){if(e.bi)break e;$.x("integer value cannot be represented losslessly",e,r)}return o}return BigInt(n===10?t:(n===2?"0b":n===8?"0o":"0x")+t)}function OE(e,t,n){let r=e.p++,o;if(!Te(t)||!Te(e.s.charCodeAt(e.p++))||!Te(e.s.charCodeAt(e.p++))||!Te(e.s.charCodeAt(e.p++)))return Ys(e,e.p=r,t,0,n);if(e.p+=5,Te(e.s.charCodeAt(e.p++))||$.x("invalid date-time: date part is malformed",e,r),e.p>=e.s.length||((t=e.s.charCodeAt(e.p))!==32||(o=!0,!Te(e.s.charCodeAt(e.p+1))))&&t!==84&&t!==116){let i=e.s.slice(r,e.p);return po(e,i,3,!1,r)}if(e.s.charCodeAt(e.p+=3)!==58&&$.x("invalid date-time: time part is malformed",e,r),e.s.charCodeAt(e.p+=3)===58&&(e.p+=3),e.s.charCodeAt(e.p)===46)for(;Te(e.s.charCodeAt(++e.p)););if(t=e.s.charCodeAt(e.p)){if(t===90||t===122){let i=e.s.slice(r,++e.p);return po(e,i,1,o,r,"[+00:00]")}if(t===43||t===45){let i=e.s.slice(r,e.p+=6);return po(e,i,1,o,r,!e.ld&&"["+e.s.slice(e.p-6,e.p)+"]")}}let s=e.s.slice(r,e.p);return po(e,s,2,o,r)}function PE(e,t,n){let r=e.p;if(!Te(t)||!Te(e.s.charCodeAt(++e.p)))return Ys(e,--e.p,t,0,n);if(e.s.charCodeAt(e.p+=4)===58&&(e.p+=3),e.s.charCodeAt(e.p)===46)for(;Te(e.s.charCodeAt(++e.p)););let o=e.s.slice(r,e.p);return po(e,o,4,!1,r)}function po(e,t,n,r,o,s){if(e.ld){let i=new sn(t,n,r);return i.isValid()||$.x("invalid date",e,o),i}try{switch(s&&(t+=s),n){case 1:return Temporal.ZonedDateTime.from(t);case 2:return Temporal.PlainDateTime.from(t);case 3:return Temporal.PlainDate.from(t);case 4:return Temporal.PlainTime.from(t)}}catch(i){$.x(i instanceof Error?i.message:""+i,e,o)}}var zl=k(()=>{Ll();Jl();on();jl();});function IE(e){for(;e.p<e.s.length;e.p++){let t=e.s.charCodeAt(e.p);if(t===10)break;if(t===13&&e.s.charCodeAt(e.p+1)===10){e.p++;break}(t<32&&t!==9||t===127)&&$.x("control characters are not allowed in comments",e)}}function ze(e,t,n){let r;for(;e.p<e.s.length;){for(;e.p<e.s.length&&((r=e.s.charCodeAt(e.p))===32||r===9||!t&&(r===10||r===13&&e.s.charCodeAt(e.p+1)===10));)e.p++;if(n||r!==35)break;IE(e)}}var Gl=k(()=>{on();});function Xs(e,t=61){let n,r=0,o=[],s,i=e.s.charCodeAt(n=e.p);do{if(i===t)return r||$.x("unexpected end of key",e),r===1&&o.push(e.s.slice(s,e.p)),e.p++,o;i===46?(r||$.x("illegal empty bare key",e),r===1&&o.push(e.s.slice(s,e.p)),r=0):!r&&(i===34||i===39)?(i===e.s.charCodeAt(e.p+1)&&i===e.s.charCodeAt(e.p+2)&&$.x("illegal quoted key: multiline strings are not allowed",e),o.push(qs(e)),r=2,e.p--):i===32||i===9?r===1&&(o.push(e.s.slice(s,e.p)),r=2):r===2||i<48&&i!==45||i>57&&i<65||i>90&&i<97&&i!==95||i>122?$.x("illegal character in key",e):r||(r=1,s=e.p)}while(i=e.s.charCodeAt(++e.p));$.x("incomplete key-value: cannot find end of key",e,n)}function Xp(e){let t=e.p++,n=Object.create(null),r=new Set,o;for(;e.p<e.s.length;){if(ze(e),(o=e.s.charCodeAt(e.p))===125)return e.p++,n;let s,i=n,a=!1,l=e.p,c=Xs(e);for(let f=0;f<c.length;f++){f&&(i=a?i[s]:i[s]=Object.create(null)),s=c[f],(a=Object.hasOwn(i,s))&&(typeof i[s]!="object"||r.has(i[s]))&&$.x("trying to redefine an already defined value",e,l);let d=s==="__proto__";if(e.uk&&(d||s==="constructor")){i=e.uk!==1&&$.x("document contains an unsafe property",e,l);break}!a&&d&&Object.defineProperty(i,s,{enumerable:!0,configurable:!0,writable:!0})}a&&$.x("trying to redefine an already defined value",e,l),ze(e,!0,!0);let u=go(e,125);if(i&&typeof(i[s]=u)=="object"&&r.add(u),ze(e),(o=e.s.charCodeAt(e.p++))===125)return n;o!==44&&$.x("expected comma or end of structure",e,e.p-1)}$.x("unfinished table",e,t)}function Qp(e){let t=e.p++,n=[],r;for(;e.p<e.s.length;){if(ze(e),(r=e.s.charCodeAt(e.p))===93)return e.p++,n;if(n.push(go(e,93)),ze(e),(r=e.s.charCodeAt(e.p++))===93)return n;r!==44&&$.x("expected comma or end of structure",e,e.p-1)}$.x("unfinished array",e,t)}var Jl=k(()=>{Ll();zl();Gl();on();});function eg(e,t,n,r,o){let s=n,i=r,a,l=!1,c;for(let u=0;u<t.length;u++){if(u){if(s=l?s[a]:s[a]=Object.create(null),i=(c=i[a]).c,o===0&&(c.t===1||c.t===2))return null;if(c.t===2){let f=s.length-1;s=s[f],i=i[f].c}}if(a=t[u],(l=Object.hasOwn(s,a))&&i[a]?.t===0&&i[a]?.d)return null;if(!l){let f=a==="__proto__";if(e.uk&&(f||a==="constructor"))return!1;f&&(Object.defineProperty(s,a,{enumerable:!0,configurable:!0,writable:!0}),Object.defineProperty(i,a,{enumerable:!0,configurable:!0,writable:!0})),i[a]={t:u<t.length-1&&o===2?3:o,d:!1,i:0,c:Object.create(null)}}}if(c=i[a],c.t!==o&&!(o===1&&c.t===3)||(o===2&&(c.d||(c.d=!0,s[a]=[]),s[a].push(s=Object.create(null)),c.c[c.i++]=c={t:1,d:!1,i:0,c:Object.create(null)}),c.d))return null;if(c.d=!0,o===1)s=l?s[a]:s[a]=Object.create(null);else if(o===0&&l)return null;return[a,s,c.c]}function tg(e,t,n){(t===null||e.uk===2)&&$.x(t===null?"trying to redefine an already defined table or value":"document contains an unsafe property",e,n)}function Kl(e,t={}){let n={s:e,p:0,d:t.maxDepth??1e3,bi:t.integersAsBigInt??!1,ld:t.useLegacyDate??!0,uk:t.unsafeKeyBehaviour==="throw"?2:t.unsafeKeyBehaviour==="drop"?1:0},r=Object.create(null),o=Object.create(null),s,i=!1,a=r,l=o;for(e.charCodeAt(0)===65279&&n.p++,ze(n);n.p<e.length;){if(e.charCodeAt(n.p)===91){let c=e.charCodeAt(++n.p)===91;s=n.p+=+c,i=!1;let u=Xs(n,93);c&&(e.charCodeAt(n.p)!==93&&$.x("expected end of table array declaration",n),n.p++);let f=eg(n,u,r,o,c?2:1);f?(l=f[2],a=f[1]):(tg(n,f,s),i=!0)}else{s=n.p;let c=Xs(n),u=eg(n,c,a,l,0);!u&&!i&&tg(n,u,s),ze(n,!0,!0);let f=go(n,void 0);u&&!i&&(u[1][u[0]]=f)}ze(n,!0),n.p<e.length&&(s=e.charCodeAt(n.p))!==10&&(s!==13||e.charCodeAt(n.p+1)!==10)&&$.x("each key-value declaration must be followed by an end-of-line",n),ze(n)}return r}var ng=k(()=>{Jl();zl();Gl();on();});function ho(e){let t=typeof e;if(t==="object"){if(Array.isArray(e))return"array";if(typeof e.getUTCDate=="function"&&e instanceof Date)return"date";if(globalThis.Temporal){if(e.until){if(e instanceof Temporal.ZonedDateTime)return"temporal/tz+uc";if(e instanceof Temporal.PlainDateTime||e instanceof Temporal.PlainDate)return"temporal/uc";if(e instanceof Temporal.PlainTime||e instanceof Temporal.Instant)return"temporal";if(e instanceof Temporal.PlainYearMonth)return"temporal/x"}else if(e.toPlainDate&&e instanceof Temporal.PlainMonthDay||e.negated&&e instanceof Temporal.Duration)return"temporal/x"}}return t}function DE(e){for(let t=0;t<e.length;t++)if(ho(e[t])!=="object")return!1;return e.length!=0}function og(e){return JSON.stringify(e).replaceAll("\x7F","\\u007f")}function ME(e){return og(rg?e.toWellFormed():e)}function sg(e){if(NE.test(e))return e;if(rg&&!e.isWellFormed())throw new RangeError("key contains illegal lone surrogates");return og(e)}function Zl(e,t,n,r,o){if(n===0)throw new Error("Could not stringify the object: maximum object depth exceeded");switch(t){case"number":if(isNaN(e))return"nan";if(e===1/0)return"inf";if(e===-1/0)return"-inf";if(Number.isInteger(e)&&(r||!Number.isSafeInteger(e)))return e.toFixed(1);case"bigint":case"boolean":case"temporal":return e.toString();case"string":return ME(e);case"date":if(isNaN(e.getTime()))throw new TypeError("cannot serialize invalid date");return e.toISOString();case"object":return FE(e,n,r,o);case"array":return HE(e,n,r,o);case"temporal/tz+uc":if(o){let s=e.timeZoneId,i=s.charCodeAt(0);if(i!==43&&i!==45&&(i!==85&&i!==71&&i!==90&&i!==69||s!=="UTC"&&s!=="UCT"&&s!=="Universal"&&s!=="Zulu"&&!s.startsWith("GMT")&&s!=="Greenwich"&&!s.startsWith("Etc/")))throw new TypeError("Temporal objects with an IANA timezone are not allowed in Temporal strict mode")}case"temporal/uc":if(o&&e.calendarId!=="iso8601")throw new TypeError("Temporal objects with a non-default calendar are not allowed in Temporal strict mode");return e.toString({calendarName:"never",timeZoneName:"never"});case"temporal/x":throw new TypeError("Unsupported "+e[Symbol.toStringTag])}}function FE(e,t,n,r){let o=Object.keys(e);if(o.length===0)return"{}";let s="{ ";for(let i=0;i<o.length;i++){let a=o[i];i&&(s+=", "),s+=sg(a)+" = "+Zl(e[a],ho(e[a]),t-1,n,r)}return s+" }"}function HE(e,t,n,r){if(e.length===0)return"[]";let o="[ ";for(let s=0;s<e.length;s++){if(s&&(o+=", "),e[s]===null||e[s]===void 0)throw new TypeError("arrays cannot contain null or undefined values");o+=Zl(e[s],ho(e[s]),t-1,n,r)}return o+" ]"}function LE(e,t,n,r,o){if(n===0)throw new Error("Could not stringify the object: maximum object depth exceeded");let s="";for(let i=0;i<e.length;i++)s+=`${s&&`
|
|
73
|
+
`:n===102?i+="\f":n===114?i+="\r":n===101?i+="\x1B":n===34?i+='"':n===92?i+="\\":$.x("unrecognised escape sequence",e),a=e.p+1,l=0);else n!==32&&n!==9&&(l===2&&$.x("invalid escape: only line-ending whitespace may be escaped",e,a),l=!o&&n===92?1:0,a=e.p);$.x("unfinished string",e,t)}var Ll=k(()=>{on();});var CE,sn,jl=k(()=>{CE=/^(\d{4}-\d{2}-\d{2})?[Tt ]?(?:(\d{2}):\d{2}(?::\d{2}(?:\.\d+)?)?)?(Z|z|[-+]\d{2}:\d{2})?$/i,sn=class e extends Date{#t=!1;#n=!1;#e=null;constructor(t,n,r){let o=!0,s=!0,i="Z",a;if(typeof t=="string")if(n)e:{if(n<3){if(+t.slice(11,13)>23){t="";break e}n===2?(i=null,t+="Z"):(a=t.charCodeAt(t.length-1))!==90&&a!==122&&(i=t.slice(t.length-6)),r&&(t=t.slice(0,10)+"T"+t.slice(11))}else n===4&&(t=+t.slice(0,2)>23?"":`0000-01-01T${t}Z`);o=n!==4,s=n!==3}else{let l=t.match(CE);l?(l[1]||(o=!1,t=`0000-01-01T${t}`),s=!!l[2],s&&t[10]===" "&&(t=t.replace(" ","T")),l[2]&&+l[2]>23?t="":(i=l[3]||null,!i&&s&&(t+="Z"))):t=""}super(t),isNaN(this.getTime())||(this.#t=o,this.#n=s,this.#e=i)}isDateTime(){return this.#t&&this.#n}isLocal(){return!this.#t||!this.#n||!this.#e}isDate(){return this.#t&&!this.#n}isTime(){return this.#n&&!this.#t}isValid(){return this.#t||this.#n}toISOString(){let t=super.toISOString();if(this.isDate())return t.slice(0,10);if(this.isTime())return t.slice(11,23);if(this.#e===null)return t.slice(0,-1);if(this.#e==="Z"||this.#e==="z")return t;let n=+this.#e.slice(1,3)*60+ +this.#e.slice(4,6);return n=this.#e[0]==="-"?n:-n,new Date(this.getTime()-n*6e4).toISOString().slice(0,-1)+this.#e}static wrapAsOffsetDateTime(t,n="Z"){let r=new e(t);return r.#e=n,r}static wrapAsLocalDateTime(t){let n=new e(t);return n.#e=null,n}static wrapAsLocalDate(t){let n=new e(t);return n.#n=!1,n.#e=null,n}static wrapAsLocalTime(t){let n=new e(t);return n.#t=!1,n.#e=null,n}}});function Te(e,t=10){return t===16?e>47&&e<58||e>64&&e<71||e>96&&e<103:e>47&&e<48+t}function Ul(e,t){return e===32||e===9||e===10||e===13||t&&(e===t||e===44)||e===35}function ho(e,t){let n=e.p,r=e.s.charCodeAt(e.p);if(r===91||r===123){e.d--||$.x("document contains excessively nested structures. aborting.",e);let o=r===91?Qp(e):Xp(e);return e.d++,o}return r===34||r===39?qs(e):r===116?((e.s.charCodeAt(++e.p)!==114||e.s.charCodeAt(++e.p)!==117||e.s.charCodeAt(++e.p)!==101)&&$.x("invalid value",e,n),e.p++,!0):r===102?((e.s.charCodeAt(++e.p)!==97||e.s.charCodeAt(++e.p)!==108||e.s.charCodeAt(++e.p)!==115||e.s.charCodeAt(++e.p)!==101)&&$.x("invalid value",e,n),e.p++,!1):r===43||r===45?Ys(e,e.p,e.s.charCodeAt(++e.p),44-r,t):e.s.charCodeAt(e.p+4)===45&&e.s.charCodeAt(e.p+7)===45?OE(e,r,t):e.s.charCodeAt(e.p+2)===58?PE(e,r,t):Ys(e,e.p,r,0,t)}function Ys(e,t,n,r,o){let s=n,i=0,a=!1;if(s===105)return(e.s.charCodeAt(++e.p)!==110||e.s.charCodeAt(++e.p)!==102)&&$.x("invalid value",e,t),e.p++,(r||1)/0;if(s===110)return(e.s.charCodeAt(++e.p)!==97||e.s.charCodeAt(++e.p)!==110)&&$.x("invalid value",e,t),e.p++,NaN;if(s===48){if(++e.p>=e.s.length||Ul(s=e.s.charCodeAt(e.p),o))return e.bi===!0?0n:0;if(!r){if(s===120)return Bl(e,t,16,o);if(s===98)return Bl(e,t,2,o);if(s===111)return Bl(e,t,8,o)}s===46?i=2:s===101||s===69?i=4:$.x("illegal leading zero",e,t)}else Te(s)||$.x("invalid value",e,t);for(;++e.p<e.s.length&&(s=e.s.charCodeAt(e.p),!Ul(s,o));)i||(i=1),s===95?(i&1||$.x("illegal underscore",e),i+=11,a=!0):i===1&&s===46?i=2:(i===1||i===3)&&(s===101||s===69)?i=4:i===4&&(s===43||s===45)||(Te(s)?i>9?i-=11:i&1||i++:$.x("illegal character in numeric literal",e));if(!i){let c=(n-48)*(r||1);return e.bi===!0?BigInt(c):c}i&1||$.x("unfinished numeric value",e,t);let l=e.s.slice(t,e.p);return a&&(l=l.replaceAll("_","")),i>1?parseFloat(l):Yp(e,l,10,t)}function Bl(e,t,n,r){let o,s=1;for(;++e.p<e.s.length&&(o=e.s.charCodeAt(e.p),!Ul(o,r));)o===95?(s&1&&$.x("illegal underscore",e),s=3):Te(o,n)?s&1&&s--:$.x("illegal character in numeric literal",e);s&1&&$.x("unfinished numeric value",e);let i=e.s.slice(t+2,e.p);return s&&(i=i.replaceAll("_","")),Yp(e,i,n,t)}function Yp(e,t,n,r){if(e.bi!==!0)e:{let o=parseInt(t,n);if(!Number.isSafeInteger(o)){if(e.bi)break e;$.x("integer value cannot be represented losslessly",e,r)}return o}return BigInt(n===10?t:(n===2?"0b":n===8?"0o":"0x")+t)}function OE(e,t,n){let r=e.p++,o;if(!Te(t)||!Te(e.s.charCodeAt(e.p++))||!Te(e.s.charCodeAt(e.p++))||!Te(e.s.charCodeAt(e.p++)))return Ys(e,e.p=r,t,0,n);if(e.p+=5,Te(e.s.charCodeAt(e.p++))||$.x("invalid date-time: date part is malformed",e,r),e.p>=e.s.length||((t=e.s.charCodeAt(e.p))!==32||(o=!0,!Te(e.s.charCodeAt(e.p+1))))&&t!==84&&t!==116){let i=e.s.slice(r,e.p);return po(e,i,3,!1,r)}if(e.s.charCodeAt(e.p+=3)!==58&&$.x("invalid date-time: time part is malformed",e,r),e.s.charCodeAt(e.p+=3)===58&&(e.p+=3),e.s.charCodeAt(e.p)===46)for(;Te(e.s.charCodeAt(++e.p)););if(t=e.s.charCodeAt(e.p)){if(t===90||t===122){let i=e.s.slice(r,++e.p);return po(e,i,1,o,r,"[+00:00]")}if(t===43||t===45){let i=e.s.slice(r,e.p+=6);return po(e,i,1,o,r,!e.ld&&"["+e.s.slice(e.p-6,e.p)+"]")}}let s=e.s.slice(r,e.p);return po(e,s,2,o,r)}function PE(e,t,n){let r=e.p;if(!Te(t)||!Te(e.s.charCodeAt(++e.p)))return Ys(e,--e.p,t,0,n);if(e.s.charCodeAt(e.p+=4)===58&&(e.p+=3),e.s.charCodeAt(e.p)===46)for(;Te(e.s.charCodeAt(++e.p)););let o=e.s.slice(r,e.p);return po(e,o,4,!1,r)}function po(e,t,n,r,o,s){if(e.ld){let i=new sn(t,n,r);return i.isValid()||$.x("invalid date",e,o),i}try{switch(s&&(t+=s),n){case 1:return Temporal.ZonedDateTime.from(t);case 2:return Temporal.PlainDateTime.from(t);case 3:return Temporal.PlainDate.from(t);case 4:return Temporal.PlainTime.from(t)}}catch(i){$.x(i instanceof Error?i.message:""+i,e,o)}}var zl=k(()=>{Ll();Jl();on();jl();});function IE(e){for(;e.p<e.s.length;e.p++){let t=e.s.charCodeAt(e.p);if(t===10)break;if(t===13&&e.s.charCodeAt(e.p+1)===10){e.p++;break}(t<32&&t!==9||t===127)&&$.x("control characters are not allowed in comments",e)}}function ze(e,t,n){let r;for(;e.p<e.s.length;){for(;e.p<e.s.length&&((r=e.s.charCodeAt(e.p))===32||r===9||!t&&(r===10||r===13&&e.s.charCodeAt(e.p+1)===10));)e.p++;if(n||r!==35)break;IE(e)}}var Gl=k(()=>{on();});function Xs(e,t=61){let n,r=0,o=[],s,i=e.s.charCodeAt(n=e.p);do{if(i===t)return r||$.x("unexpected end of key",e),r===1&&o.push(e.s.slice(s,e.p)),e.p++,o;i===46?(r||$.x("illegal empty bare key",e),r===1&&o.push(e.s.slice(s,e.p)),r=0):!r&&(i===34||i===39)?(i===e.s.charCodeAt(e.p+1)&&i===e.s.charCodeAt(e.p+2)&&$.x("illegal quoted key: multiline strings are not allowed",e),o.push(qs(e)),r=2,e.p--):i===32||i===9?r===1&&(o.push(e.s.slice(s,e.p)),r=2):r===2||i<48&&i!==45||i>57&&i<65||i>90&&i<97&&i!==95||i>122?$.x("illegal character in key",e):r||(r=1,s=e.p)}while(i=e.s.charCodeAt(++e.p));$.x("incomplete key-value: cannot find end of key",e,n)}function Xp(e){let t=e.p++,n=Object.create(null),r=new Set,o;for(;e.p<e.s.length;){if(ze(e),(o=e.s.charCodeAt(e.p))===125)return e.p++,n;let s,i=n,a=!1,l=e.p,c=Xs(e);for(let f=0;f<c.length;f++){f&&(i=a?i[s]:i[s]=Object.create(null)),s=c[f],(a=Object.hasOwn(i,s))&&(typeof i[s]!="object"||r.has(i[s]))&&$.x("trying to redefine an already defined value",e,l);let d=s==="__proto__";if(e.uk&&(d||s==="constructor")){i=e.uk!==1&&$.x("document contains an unsafe property",e,l);break}!a&&d&&Object.defineProperty(i,s,{enumerable:!0,configurable:!0,writable:!0})}a&&$.x("trying to redefine an already defined value",e,l),ze(e,!0,!0);let u=ho(e,125);if(i&&typeof(i[s]=u)=="object"&&r.add(u),ze(e),(o=e.s.charCodeAt(e.p++))===125)return n;o!==44&&$.x("expected comma or end of structure",e,e.p-1)}$.x("unfinished table",e,t)}function Qp(e){let t=e.p++,n=[],r;for(;e.p<e.s.length;){if(ze(e),(r=e.s.charCodeAt(e.p))===93)return e.p++,n;if(n.push(ho(e,93)),ze(e),(r=e.s.charCodeAt(e.p++))===93)return n;r!==44&&$.x("expected comma or end of structure",e,e.p-1)}$.x("unfinished array",e,t)}var Jl=k(()=>{Ll();zl();Gl();on();});function eh(e,t,n,r,o){let s=n,i=r,a,l=!1,c;for(let u=0;u<t.length;u++){if(u){if(s=l?s[a]:s[a]=Object.create(null),i=(c=i[a]).c,o===0&&(c.t===1||c.t===2))return null;if(c.t===2){let f=s.length-1;s=s[f],i=i[f].c}}if(a=t[u],(l=Object.hasOwn(s,a))&&i[a]?.t===0&&i[a]?.d)return null;if(!l){let f=a==="__proto__";if(e.uk&&(f||a==="constructor"))return!1;f&&(Object.defineProperty(s,a,{enumerable:!0,configurable:!0,writable:!0}),Object.defineProperty(i,a,{enumerable:!0,configurable:!0,writable:!0})),i[a]={t:u<t.length-1&&o===2?3:o,d:!1,i:0,c:Object.create(null)}}}if(c=i[a],c.t!==o&&!(o===1&&c.t===3)||(o===2&&(c.d||(c.d=!0,s[a]=[]),s[a].push(s=Object.create(null)),c.c[c.i++]=c={t:1,d:!1,i:0,c:Object.create(null)}),c.d))return null;if(c.d=!0,o===1)s=l?s[a]:s[a]=Object.create(null);else if(o===0&&l)return null;return[a,s,c.c]}function th(e,t,n){(t===null||e.uk===2)&&$.x(t===null?"trying to redefine an already defined table or value":"document contains an unsafe property",e,n)}function Kl(e,t={}){let n={s:e,p:0,d:t.maxDepth??1e3,bi:t.integersAsBigInt??!1,ld:t.useLegacyDate??!0,uk:t.unsafeKeyBehaviour==="throw"?2:t.unsafeKeyBehaviour==="drop"?1:0},r=Object.create(null),o=Object.create(null),s,i=!1,a=r,l=o;for(e.charCodeAt(0)===65279&&n.p++,ze(n);n.p<e.length;){if(e.charCodeAt(n.p)===91){let c=e.charCodeAt(++n.p)===91;s=n.p+=+c,i=!1;let u=Xs(n,93);c&&(e.charCodeAt(n.p)!==93&&$.x("expected end of table array declaration",n),n.p++);let f=eh(n,u,r,o,c?2:1);f?(l=f[2],a=f[1]):(th(n,f,s),i=!0)}else{s=n.p;let c=Xs(n),u=eh(n,c,a,l,0);!u&&!i&&th(n,u,s),ze(n,!0,!0);let f=ho(n,void 0);u&&!i&&(u[1][u[0]]=f)}ze(n,!0),n.p<e.length&&(s=e.charCodeAt(n.p))!==10&&(s!==13||e.charCodeAt(n.p+1)!==10)&&$.x("each key-value declaration must be followed by an end-of-line",n),ze(n)}return r}var nh=k(()=>{Jl();zl();Gl();on();});function go(e){let t=typeof e;if(t==="object"){if(Array.isArray(e))return"array";if(typeof e.getUTCDate=="function"&&e instanceof Date)return"date";if(globalThis.Temporal){if(e.until){if(e instanceof Temporal.ZonedDateTime)return"temporal/tz+uc";if(e instanceof Temporal.PlainDateTime||e instanceof Temporal.PlainDate)return"temporal/uc";if(e instanceof Temporal.PlainTime||e instanceof Temporal.Instant)return"temporal";if(e instanceof Temporal.PlainYearMonth)return"temporal/x"}else if(e.toPlainDate&&e instanceof Temporal.PlainMonthDay||e.negated&&e instanceof Temporal.Duration)return"temporal/x"}}return t}function DE(e){for(let t=0;t<e.length;t++)if(go(e[t])!=="object")return!1;return e.length!=0}function oh(e){return JSON.stringify(e).replaceAll("\x7F","\\u007f")}function ME(e){return oh(rh?e.toWellFormed():e)}function sh(e){if(NE.test(e))return e;if(rh&&!e.isWellFormed())throw new RangeError("key contains illegal lone surrogates");return oh(e)}function Zl(e,t,n,r,o){if(n===0)throw new Error("Could not stringify the object: maximum object depth exceeded");switch(t){case"number":if(isNaN(e))return"nan";if(e===1/0)return"inf";if(e===-1/0)return"-inf";if(Number.isInteger(e)&&(r||!Number.isSafeInteger(e)))return e.toFixed(1);case"bigint":case"boolean":case"temporal":return e.toString();case"string":return ME(e);case"date":if(isNaN(e.getTime()))throw new TypeError("cannot serialize invalid date");return e.toISOString();case"object":return FE(e,n,r,o);case"array":return HE(e,n,r,o);case"temporal/tz+uc":if(o){let s=e.timeZoneId,i=s.charCodeAt(0);if(i!==43&&i!==45&&(i!==85&&i!==71&&i!==90&&i!==69||s!=="UTC"&&s!=="UCT"&&s!=="Universal"&&s!=="Zulu"&&!s.startsWith("GMT")&&s!=="Greenwich"&&!s.startsWith("Etc/")))throw new TypeError("Temporal objects with an IANA timezone are not allowed in Temporal strict mode")}case"temporal/uc":if(o&&e.calendarId!=="iso8601")throw new TypeError("Temporal objects with a non-default calendar are not allowed in Temporal strict mode");return e.toString({calendarName:"never",timeZoneName:"never"});case"temporal/x":throw new TypeError("Unsupported "+e[Symbol.toStringTag])}}function FE(e,t,n,r){let o=Object.keys(e);if(o.length===0)return"{}";let s="{ ";for(let i=0;i<o.length;i++){let a=o[i];i&&(s+=", "),s+=sh(a)+" = "+Zl(e[a],go(e[a]),t-1,n,r)}return s+" }"}function HE(e,t,n,r){if(e.length===0)return"[]";let o="[ ";for(let s=0;s<e.length;s++){if(s&&(o+=", "),e[s]===null||e[s]===void 0)throw new TypeError("arrays cannot contain null or undefined values");o+=Zl(e[s],go(e[s]),t-1,n,r)}return o+" ]"}function LE(e,t,n,r,o){if(n===0)throw new Error("Could not stringify the object: maximum object depth exceeded");let s="";for(let i=0;i<e.length;i++)s+=`${s&&`
|
|
74
74
|
`}[[${t}]]
|
|
75
|
-
`,s+=Wl(0,e[i],t,n,r,o);return s}function Wl(e,t,n,r,o,s){if(r===0)throw new Error("Could not stringify the object: maximum object depth exceeded");let i="",a="",l=Object.keys(t);for(let c=0;c<l.length;c++){let u=l[c];if(t[u]!==null&&t[u]!==void 0){let f=
|
|
75
|
+
`,s+=Wl(0,e[i],t,n,r,o);return s}function Wl(e,t,n,r,o,s){if(r===0)throw new Error("Could not stringify the object: maximum object depth exceeded");let i="",a="",l=Object.keys(t);for(let c=0;c<l.length;c++){let u=l[c];if(t[u]!==null&&t[u]!==void 0){let f=go(t[u]);if(f==="symbol"||f==="function")throw new TypeError(`cannot serialize values of type '${f}'`);let d=sh(u);if(f==="array"&&DE(t[u]))a+=(a&&`
|
|
76
76
|
`)+LE(t[u],n?`${n}.${d}`:d,r-1,o,s);else if(f==="object"){let m=n?`${n}.${d}`:d;a+=(a&&`
|
|
77
77
|
`)+Wl(m,t[u],m,r-1,o,s)}else i+=d,i+=" = ",i+=Zl(t[u],f,r,o,s),i+=`
|
|
78
78
|
`}}return e&&(i||!a)&&(i=i?`[${e}]
|
|
79
79
|
${i}`:`[${e}]`),i&&a?`${i}
|
|
80
|
-
${a}`:i||a}function Vl(e,{maxDepth:t=1e3,numbersAsFloat:n=!1,strictTemporal:r=!1}={}){if(
|
|
80
|
+
${a}`:i||a}function Vl(e,{maxDepth:t=1e3,numbersAsFloat:n=!1,strictTemporal:r=!1}={}){if(go(e)!=="object")throw new TypeError("stringify can only be called with an object");let o=Wl(0,e,"",t,n,r);return o[o.length-1]!==`
|
|
81
81
|
`?o+`
|
|
82
|
-
`:o}var NE,
|
|
83
|
-
`)[0]})`}),{filters:n,tests:r,issues:o}}let a=VE(i.schema_version);if(a)return o.push({file:t,message:a}),{filters:n,tests:r,issues:o};let l=i.filters;if(typeof l!="object"||l===null||Array.isArray(l))return o.push({file:t,message:"no [filters.<name>] table found"}),{filters:n,tests:r,issues:o};for(let[c,u]of Object.entries(l)){let f=WE(c,u);if("message"in f){o.push({file:t,message:f.message});continue}n.set(f.filter.slug,f.filter),f.tests.length>0&&r.set(f.filter.slug,{file:t,tests:f.tests})}return{filters:n,tests:r,issues:o}}function QE(){let e=[];for(let t of[
|
|
84
|
-
`),
|
|
85
|
-
`))if(!/^\s*[✓✔√]\s/.test(t)&&jT.some(n=>n.test(t)))return!0;return!1}var jT,
|
|
82
|
+
`:o}var NE,rh,ih=k(()=>{NE=/^[a-z0-9-_]+$/i,rh=!!"".isWellFormed});var ql={};ce(ql,{TomlDate:()=>sn,TomlError:()=>$,default:()=>jE,parse:()=>Kl,stringify:()=>Vl});var jE,Yl=k(()=>{nh();ih();jl();on();jE={parse:Kl,stringify:Vl,TomlDate:sn,TomlError:$}});import{readdir as BE,readFile as uh,writeFile as KH,mkdir as ZH,rename as WH}from"node:fs/promises";import{readdirSync as UE,statSync as ah}from"node:fs";import{createHash as zE}from"node:crypto";import{basename as XH,join as ni}from"node:path";function ti(){return ni(w(),"filters")}function dh(){return ni(w(),"filters-trust.json")}function mh(e){return typeof e=="string"&&e.startsWith(fh)}function GE(e){return zE("sha256").update(e).digest("hex")}async function KE(){try{let e=JSON.parse(await uh(dh(),"utf8")),t={};if(e.files&&typeof e.files=="object")for(let[n,r]of Object.entries(e.files))typeof r=="string"&&/^[0-9a-f]{64}$/.test(r)&&(t[n]=r);return{v:1,files:t}}catch{return{v:1,files:{}}}}function ZE(e,t){if(t===void 0)return{tests:[]};let n={message:`${e}: tests: each [[filters.${e}.tests]] needs input and expected strings`};if(!Array.isArray(t))return n;let r=[];for(let o of t){if(typeof o!="object"||o===null)return n;let{input:s,expected:i,name:a}=o;if(typeof s!="string"||typeof i!="string")return n;r.push({...typeof a=="string"&&a?{name:a}:{},input:s,expected:i})}return{tests:r}}function WE(e,t){let n=typeof t=="object"&&t!==null&&!Array.isArray(t)?t:{},{tests:r,...o}=n,s=ZE(e,r);if("message"in s)return s;let i=_t.safeParse({...o,slug:e});if(!i.success){let l=i.error.issues.map(c=>`${c.path.join(".")||"rule"}: ${c.message}`).join("; ");return{message:`${e}: ${l}`}}let a;try{a=new RegExp(i.data.match_command)}catch{return{message:`${e}: match_command is not a valid regular expression`}}for(let l of i.data.strip_lines_matching)try{new RegExp(l)}catch{return{message:`${e}: strip_lines_matching has an invalid regular expression`}}return{filter:{...i.data,slug:`${fh}${i.data.slug}`,matchRegex:a},tests:s.tests}}function VE(e){return e===void 0||e===Qs?null:typeof e=="number"&&Number.isInteger(e)?`schema_version ${e} is not supported: this tkr reads schema_version = ${Qs}. Update tkr, or write the file for version ${Qs}`:`schema_version must be the number ${Qs}`}async function qE(e){try{return(await BE(e)).filter(t=>t.endsWith(".toml")).sort()}catch{return[]}}async function YE(e={}){let t=e.requireTrust!==!1,n=ti(),r=new Map,o=new Map,s=[],i=await qE(n);if(i.length===0)return{dir:n,filters:r,tests:o,issues:s};let a=t?await KE():null;for(let l of i){let c;try{c=await uh(ni(n,l),"utf8")}catch{s.push({file:l,message:"could not be read"});continue}if(a){let f=a.files[l];if(!f){s.push({file:l,message:`not trusted yet. Review it, then run: tkr filters trust ${l}`});continue}if(f!==GE(c)){s.push({file:l,message:`changed since it was trusted. Review it, then run: tkr filters trust ${l}`});continue}}let u=await XE(c,l);for(let[f,d]of u.filters)r.set(f,d);for(let[f,d]of u.tests)o.set(f,d);s.push(...u.issues)}return{dir:n,filters:r,tests:o,issues:s}}async function XE(e,t){let n=new Map,r=new Map,o=[],{parse:s}=await Promise.resolve().then(()=>(Yl(),ql)),i;try{i=s(e)}catch(c){return o.push({file:t,message:`not valid TOML (${String(c.message).split(`
|
|
83
|
+
`)[0]})`}),{filters:n,tests:r,issues:o}}let a=VE(i.schema_version);if(a)return o.push({file:t,message:a}),{filters:n,tests:r,issues:o};let l=i.filters;if(typeof l!="object"||l===null||Array.isArray(l))return o.push({file:t,message:"no [filters.<name>] table found"}),{filters:n,tests:r,issues:o};for(let[c,u]of Object.entries(l)){let f=WE(c,u);if("message"in f){o.push({file:t,message:f.message});continue}n.set(f.filter.slug,f.filter),f.tests.length>0&&r.set(f.filter.slug,{file:t,tests:f.tests})}return{filters:n,tests:r,issues:o}}function QE(){let e=[];for(let t of[dh(),ti()])try{let n=ah(t);e.push(`${n.mtimeMs}:${n.size}`)}catch{e.push("-")}try{for(let t of UE(ti()).filter(n=>n.endsWith(".toml")).sort()){let n=ah(ni(ti(),t));e.push(`${t}:${n.mtimeMs}:${n.size}`)}}catch{}return e.join("|")}function eT(){let e=Date.now();if(!ei||e-ch>=JE){ch=e;let t=QE();(!ei||t!==lh)&&(lh=t,ei=YE())}return ei}async function tT(e){let{filters:t}=await eT();return t.size===0?null:bn(e,t.values(),null,t)}function ph(e){return async(t,n)=>await tT(t)??e(t,n)}var fh,Qs,ei,lh,ch,JE,Xl=k(()=>{"use strict";br();jo();Hl();H();fh="user/",Qs=1,ei=null,lh="",ch=0,JE=1e3});var hh={};ce(hh,{flush:()=>Ql,recordEvent:()=>yo});async function yo(e){if(e.plan!=="pro"||mh(e.filterId)||!(await ee()).telemetryOptIn)return;let t=Js(e.cmd);!t||ao(t)!==t||Us("learn",{cmd:t,filterId:e.filterId==null?null:se(e.filterId),rawBytes:e.rawBytes,filteredBytes:e.filteredBytes})}async function Ql(e){return zs("learn","/api/v1/learn",{baseUrl:e,requirePro:!0})}var ko=k(()=>{"use strict";Jn();wl();Cl();st();Xl();at()});var Th=_e((FL,Eh)=>{Eh.exports=vh;vh.sync=aT;var Sh=gt("fs");function iT(e,t){var n=t.pathExt!==void 0?t.pathExt:process.env.PATHEXT;if(!n||(n=n.split(";"),n.indexOf("")!==-1))return!0;for(var r=0;r<n.length;r++){var o=n[r].toLowerCase();if(o&&e.substr(-o.length).toLowerCase()===o)return!0}return!1}function xh(e,t,n){return!e.isSymbolicLink()&&!e.isFile()?!1:iT(t,n)}function vh(e,t,n){Sh.stat(e,function(r,o){n(r,r?!1:xh(o,e,t))})}function aT(e,t){return xh(Sh.statSync(e),e,t)}});var Oh=_e((HL,Ch)=>{Ch.exports=Ah;Ah.sync=lT;var Rh=gt("fs");function Ah(e,t,n){Rh.stat(e,function(r,o){n(r,r?!1:$h(o,t))})}function lT(e,t){return $h(Rh.statSync(e),t)}function $h(e,t){return e.isFile()&&cT(e,t)}function cT(e,t){var n=e.mode,r=e.uid,o=e.gid,s=t.uid!==void 0?t.uid:process.getuid&&process.getuid(),i=t.gid!==void 0?t.gid:process.getgid&&process.getgid(),a=parseInt("100",8),l=parseInt("010",8),c=parseInt("001",8),u=a|l,f=n&c||n&l&&o===i||n&a&&r===s||n&u&&s===0;return f}});var Ih=_e((jL,Ph)=>{var LL=gt("fs"),ri;process.platform==="win32"||global.TESTING_WINDOWS?ri=Th():ri=Oh();Ph.exports=ec;ec.sync=uT;function ec(e,t,n){if(typeof t=="function"&&(n=t,t={}),!n){if(typeof Promise!="function")throw new TypeError("callback not provided");return new Promise(function(r,o){ec(e,t||{},function(s,i){s?o(s):r(i)})})}ri(e,t||{},function(r,o){r&&(r.code==="EACCES"||t&&t.ignoreErrors)&&(r=null,o=!1),n(r,o)})}function uT(e,t){try{return ri.sync(e,t||{})}catch(n){if(t&&t.ignoreErrors||n.code==="EACCES")return!1;throw n}}});var jh=_e((BL,Lh)=>{var Wn=process.platform==="win32"||process.env.OSTYPE==="cygwin"||process.env.OSTYPE==="msys",Nh=gt("path"),fT=Wn?";":":",Dh=Ih(),Mh=e=>Object.assign(new Error(`not found: ${e}`),{code:"ENOENT"}),Fh=(e,t)=>{let n=t.colon||fT,r=e.match(/\//)||Wn&&e.match(/\\/)?[""]:[...Wn?[process.cwd()]:[],...(t.path||process.env.PATH||"").split(n)],o=Wn?t.pathExt||process.env.PATHEXT||".EXE;.CMD;.BAT;.COM":"",s=Wn?o.split(n):[""];return Wn&&e.indexOf(".")!==-1&&s[0]!==""&&s.unshift(""),{pathEnv:r,pathExt:s,pathExtExe:o}},Hh=(e,t,n)=>{typeof t=="function"&&(n=t,t={}),t||(t={});let{pathEnv:r,pathExt:o,pathExtExe:s}=Fh(e,t),i=[],a=c=>new Promise((u,f)=>{if(c===r.length)return t.all&&i.length?u(i):f(Mh(e));let d=r[c],m=/^".*"$/.test(d)?d.slice(1,-1):d,p=Nh.join(m,e),h=!m&&/^\.[\\\/]/.test(e)?e.slice(0,2)+p:p;u(l(h,c,0))}),l=(c,u,f)=>new Promise((d,m)=>{if(f===o.length)return d(a(u+1));let p=o[f];Dh(c+p,{pathExt:s},(h,y)=>{if(!h&&y)if(t.all)i.push(c+p);else return d(c+p);return d(l(c,u,f+1))})});return n?a(0).then(c=>n(null,c),n):a(0)},dT=(e,t)=>{t=t||{};let{pathEnv:n,pathExt:r,pathExtExe:o}=Fh(e,t),s=[];for(let i=0;i<n.length;i++){let a=n[i],l=/^".*"$/.test(a)?a.slice(1,-1):a,c=Nh.join(l,e),u=!l&&/^\.[\\\/]/.test(e)?e.slice(0,2)+c:c;for(let f=0;f<r.length;f++){let d=u+r[f];try{if(Dh.sync(d,{pathExt:o}))if(t.all)s.push(d);else return d}catch{}}}if(t.all&&s.length)return s;if(t.nothrow)return null;throw Mh(e)};Lh.exports=Hh;Hh.sync=dT});var Uh=_e((UL,tc)=>{"use strict";var Bh=(e={})=>{let t=e.env||process.env;return(e.platform||process.platform)!=="win32"?"PATH":Object.keys(t).reverse().find(r=>r.toUpperCase()==="PATH")||"Path"};tc.exports=Bh;tc.exports.default=Bh});var Kh=_e((zL,Gh)=>{"use strict";var zh=gt("path"),mT=jh(),pT=Uh();function Jh(e,t){let n=e.options.env||process.env,r=process.cwd(),o=e.options.cwd!=null,s=o&&process.chdir!==void 0&&!process.chdir.disabled;if(s)try{process.chdir(e.options.cwd)}catch{}let i;try{i=mT.sync(e.command,{path:n[pT({env:n})],pathExt:t?zh.delimiter:void 0})}catch{}finally{s&&process.chdir(r)}return i&&(i=zh.resolve(o?e.options.cwd:"",i)),i}function hT(e){return Jh(e)||Jh(e,!0)}Gh.exports=hT});var Zh=_e((JL,rc)=>{"use strict";var nc=/([()\][%!^"`<>&|;, *?])/g;function gT(e){return e=e.replace(nc,"^$1"),e}function yT(e,t){return e=`${e}`,e=e.replace(/(?=(\\+?)?)\1"/g,'$1$1\\"'),e=e.replace(/(?=(\\+?)?)\1$/,"$1$1"),e=`"${e}"`,e=e.replace(nc,"^$1"),t&&(e=e.replace(nc,"^$1")),e}rc.exports.command=gT;rc.exports.argument=yT});var Vh=_e((GL,Wh)=>{"use strict";Wh.exports=/^#!(.*)/});var Yh=_e((KL,qh)=>{"use strict";var kT=Vh();qh.exports=(e="")=>{let t=e.match(kT);if(!t)return null;let[n,r]=t[0].replace(/#! ?/,"").split(" "),o=n.split("/").pop();return o==="env"?r:r?`${o} ${r}`:o}});var Qh=_e((ZL,Xh)=>{"use strict";var oc=gt("fs"),bT=Yh();function wT(e){let n=Buffer.alloc(150),r;try{r=oc.openSync(e,"r"),oc.readSync(r,n,0,150,0),oc.closeSync(r)}catch{}return bT(n.toString())}Xh.exports=wT});var rg=_e((WL,ng)=>{"use strict";var _T=gt("path"),eg=Kh(),tg=Zh(),ST=Qh(),xT=process.platform==="win32",vT=/\.(?:com|exe)$/i,ET=/node_modules[\\/].bin[\\/][^\\/]+\.cmd$/i;function TT(e){e.file=eg(e);let t=e.file&&ST(e.file);return t?(e.args.unshift(e.file),e.command=t,eg(e)):e.file}function RT(e){if(!xT)return e;let t=TT(e),n=!vT.test(t);if(e.options.forceShell||n){let r=ET.test(t);e.command=_T.normalize(e.command),e.command=tg.command(e.command),e.args=e.args.map(s=>tg.argument(s,r));let o=[e.command].concat(e.args).join(" ");e.args=["/d","/s","/c",`"${o}"`],e.command=process.env.comspec||"cmd.exe",e.options.windowsVerbatimArguments=!0}return e}function AT(e,t,n){t&&!Array.isArray(t)&&(n=t,t=null),t=t?t.slice(0):[],n=Object.assign({},n);let r={command:e,args:t,options:n,file:void 0,original:{command:e,args:t}};return n.shell?r:RT(r)}ng.exports=AT});var ig=_e((VL,sg)=>{"use strict";var sc=process.platform==="win32";function ic(e,t){return Object.assign(new Error(`${t} ${e.command} ENOENT`),{code:"ENOENT",errno:"ENOENT",syscall:`${t} ${e.command}`,path:e.command,spawnargs:e.args})}function $T(e,t){if(!sc)return;let n=e.emit;e.emit=function(r,o){if(r==="exit"){let s=og(o,t);if(s)return n.call(e,"error",s)}return n.apply(e,arguments)}}function og(e,t){return sc&&e===1&&!t.file?ic(t.original,"spawn"):null}function CT(e,t){return sc&&e===1&&!t.file?ic(t.original,"spawnSync"):null}sg.exports={hookChildProcess:$T,verifyENOENT:og,verifyENOENTSync:CT,notFoundError:ic}});var cg=_e((qL,Vn)=>{"use strict";var ag=gt("child_process"),ac=rg(),lc=ig();function lg(e,t,n){let r=ac(e,t,n),o=ag.spawn(r.command,r.args,r.options);return lc.hookChildProcess(o,r),o}function OT(e,t,n){let r=ac(e,t,n),o=ag.spawnSync(r.command,r.args,r.options);return o.error=o.error||lc.verifyENOENTSync(o.status,r),o}Vn.exports=lg;Vn.exports.spawn=lg;Vn.exports.sync=OT;Vn.exports._parse=ac;Vn.exports._enoent=lc});import{readdir as PT,readFile as IT}from"node:fs/promises";import{join as fg,dirname as NT}from"node:path";import{fileURLToPath as DT}from"node:url";function HT(){return process.env.TOKMIZER_DEV==="1"||process.env.TOKMIZER_DEV==="true"}async function dg(){return qn||(HT()?(qn=await LT(FT),qn):(!ug&&process.env.TOKMIZER_DEBUG==="1"&&(process.stderr.write(`tokmizer: disk loader disabled (set TOKMIZER_DEV=1 to re-enable for local dev).
|
|
84
|
+
`),ug=!0),qn=new Map,qn))}async function LT(e){let t=new Map,n,r;try{n=(await Promise.resolve().then(()=>(Yl(),ql))).parse,r=(await PT(e)).filter(o=>o.endsWith(".toml"))}catch{return t}for(let o of r){let s=await IT(fg(e,o),"utf8"),a=n(s).filters;if(a)for(let[l,c]of Object.entries(a)){let u=_t.parse({slug:l,...c});t.set(l,{...u,matchRegex:new RegExp(u.match_command)})}}return t}var MT,FT,qn,ug,mg=k(()=>{"use strict";br();MT=NT(DT(import.meta.url)),FT=process.env.TOKMIZER_FILTERS_DIR||fg(MT,"..","..","filters"),qn=null,ug=!1});function pg(e){if(!e)return!1;for(let t of Qe(e).split(`
|
|
85
|
+
`))if(!/^\s*[✓✔√]\s/.test(t)&&jT.some(n=>n.test(t)))return!0;return!1}var jT,hg=k(()=>{"use strict";fo();jT=[/\bERROR\b/,/\bFAIL\b/,/\bFAILED\b/,/\bFATAL\b/,/^Traceback /m,/^Error: /m,/^\s+at .*\(.*:\d+:\d+\)/m,/panic:/,/SyntaxError:/,/TypeError:/,/ReferenceError:/,/AssertionError:/,/^\s*(?:error|fatal):/i,/thread '.*' panicked/,/\b[1-9]\d* (?:failed|errors?)\b/]});function an(e){let t=e.trim(),n=t.split(/\s+/),r=0;for(;r<n.length;){let a=n[r];if(UT.test(a)){r++;continue}if(BT.has(a)){for(r++,a==="timeout"&&r<n.length&&/^\d+(?:\.\d+)?[smhd]?$/.test(n[r])&&r++;(a==="stdbuf"||a==="nice")&&r<n.length&&n[r].startsWith("-");)r++;continue}break}if(r>=n.length)return t;let o=n[r],s=o.includes("/")?o.slice(o.lastIndexOf("/")+1):o,i=n.slice(r+1);return i.length?`${s} ${i.join(" ")}`:s}function gg(e,t){let n=!1,r=!1,o=0,s=[];for(let i=0;i<e.length;i++){let a=e[i];if(a==="\\"&&!n){i++;continue}a==="'"&&!r?n=!n:a==='"'&&!n?r=!r:!n&&!r&&(a===";"?(s.push(e.slice(o,i)),o=i+1):a==="|"&&e[i+1]==="|"?(s.push(e.slice(o,i)),i++,o=i+1):a==="|"?t||(s.push(e.slice(o,i)),o=i+1):a==="&"&&e[i+1]==="&"&&(s.push(e.slice(o,i)),i++,o=i+1))}return s.push(e.slice(o)),s}function JT(e){let t=gg(e,!1);for(let n=t.length-1;n>=0;n--){let r=t[n].trim();if(r)return r}return e.trim()}function uc(e){let t=gg(e,!0).map(n=>n.trim()).filter(Boolean);if(t.length===0)return null;for(let n of t.slice(0,-1)){let r=an(n).split(/\s+/)[0]??"";if(!zT.has(r))return null}return JT(t[t.length-1])}function yg(e){let t=!1,n=!1,r=0,o=[];for(let s=0;s<e.length;s++){let i=e[s];if(i==="\\"&&!t){s++;continue}i==="'"&&!n?t=!t:i==='"'&&!t?n=!n:!t&&!n&&(i==="|"||i===";"?(o.push(e.slice(r,s)),i==="|"&&e[s+1]==="|"&&s++,r=s+1):i==="&"&&e[s+1]==="&"&&(o.push(e.slice(r,s)),s++,r=s+1))}o.push(e.slice(r));for(let s=o.length-1;s>=0;s--){let i=o[s].trim();if(i)return i}return e.trim()}function fc(e){let t=GT.exec(e);return t?an(e.slice(t[0].length)):null}function kg(e){let t=cc.exec(e),n=e;if(t){if(t[1]!=="bash")return[e];let a=e.indexOf(": ");if(a<0)return[e];n=e.slice(a+2)}let r=uc(n),o=r?an(r):null,i=[o?fc(o):null,o,e].filter(a=>!!a);return[...new Set(i)]}var BT,UT,cc,zT,GT,bg=k(()=>{"use strict";BT=new Set(["sudo","command","time","nice","nohup","env","stdbuf","timeout"]),UT=/^[A-Za-z_][A-Za-z0-9_]*=/,cc=/^([a-z]+)-tool(?::\s|$)/;zT=new Set(["cd","export","source","set","unset","mkdir","true",":","pushd","popd","alias","ulimit","umask","echo","printf","sleep","touch","rm","cp","mv","chmod","ln"]);GT=/^(?:npx|bunx|uvx|pnpm\s+(?:exec|dlx)|yarn\s+(?:exec|dlx)|(?:uv|poetry|pipenv|hatch|pdm|rye)\s+run|bundle\s+exec|python[0-9.]*\s+-m)\s+(?=[^\s-])/});function dc(e){let t=Buffer.from(e,"utf8");if(t.length<=256)return e;let n=256-Buffer.byteLength(wg,"utf8"),r=Math.floor(n/2);for(;(t[r]&192)===128;)r-=1;let o=t.length-(n-r);for(;(t[o]&192)===128;)o+=1;return t.subarray(0,r).toString("utf8")+wg+t.subarray(o).toString("utf8")}var wg,_g=k(()=>{"use strict";wg=`
|
|
86
86
|
[YOLO: omitted]
|
|
87
87
|
`});function WT(e,t){if(!t)return e.split(`
|
|
88
88
|
`).map(s=>s.replace(/^[ \t]+|[ \t]+(?=\r?$)/g,"")).join(`
|
|
@@ -93,76 +93,76 @@ ${a}`:i||a}function Vl(e,{maxDepth:t=1e3,numbersAsFloat:n=!1,strictTemporal:r=!1
|
|
|
93
93
|
`)?`
|
|
94
94
|
`:"",r=(n?e.slice(0,-1):e).split(`
|
|
95
95
|
`),o=r.findIndex(y=>KT.test(y));if(o>=0&&r.slice(0,o).some(y=>y!==""&&!/^Showing \d+ of \d+ (?:open|closed|all) pull requests in \S+$/.test(y)))return e;let s=o>=0?[...r[o].matchAll(/\S+/g)].map(y=>y.index):[],i=[];for(let y=o+1;y<r.length;y+=1){let T=r[y];if(ZT.test(T))continue;if(/…|\.\.\./.test(T))return e;let E;if(o>=0){if(/[^\x20-\x7e]/.test(T))return e;let x=s.map((R,O)=>T.slice(R,s[O+1]));if(x.slice(0,-1).some(R=>R[0]===" "||!R.endsWith(" "))||(E=x.map(R=>R.replace(/ +$/,"")),!/^#\d+$/.test(E[0])||!/^\S+$/.test(E[2])||!/^(OPEN|CLOSED|MERGED|DRAFT)$/.test(E[3])||!/^\d+(?:s|m|h|d|w|mo|y)$/.test(E[4])))return e}else if(E=T.split(" "),E.length!==5||!/^\d+$/.test(E[0])||!E[1]||!E[2]||!/^(OPEN|CLOSED|MERGED|DRAFT)$/.test(E[3])||!mc.test(E[4])||!Number.isFinite(Date.parse(E[4])))return e;if(E.some(x=>/[\u0000-\u001f\u007f]/.test(x)))return e;i.push({index:y,cells:E})}if(i.length===0)return e;o>=0&&(r[o]="ID TITLE BRANCH STATE CREATED");for(let y of i)r[y.index]=y.cells.join(" ");let a=r.join(`
|
|
96
|
-
`)+n;if(!t)return a;let l=new Map;for(let{cells:y}of i)l.set(y[1],(l.get(y[1])??0)+1);let c=new Map,u=[];for(let[y,T]of l){if(y.length<40||T<3||y.trim().split(/\s+/).length<8)continue;let E=`@${c.size+1}`,x=JSON.stringify(y).replace(/\u2028/g,"\\u2028").replace(/\u2029/g,"\\u2029"),R=`TITLE ${E} = ${x}`;T*(Buffer.byteLength(y)-Buffer.byteLength(E))<=Buffer.byteLength(R)+1||(c.set(y,E),u.push(R))}let f=new Map;for(let{cells:y}of i){if(c.has(y[1]))continue;let T=/^((?:\S+\s+){4})\S/.exec(y[1])?.[1];T&&T.length>=24&&f.set(T,(f.get(T)??0)+1)}let d=new Map;for(let[y,T]of f){if(T<3)continue;let E=`@p${d.size+1}`,x=`TITLE prefix ${E} = ${JSON.stringify(y).replace(/\u2028/g,"\\u2028").replace(/\u2029/g,"\\u2029")}`;T*(Buffer.byteLength(y)-Buffer.byteLength(E)-1)<=Buffer.byteLength(x)+1||(d.set(y,E),u.push(x))}let m=i[0].cells[4].slice(10),p=i.length>=3&&mc.test(i[0].cells[4])&&i.every(({cells:y})=>mc.test(y[4])&&y[4].slice(10)===m)&&i.length*m.length>`CREATED suffix = ${JSON.stringify(m)}`.length+1;if(p&&u.push(`CREATED suffix = ${JSON.stringify(m)}`),u.length===0)return a;for(let{index:y,cells:T}of i){let E=c.get(T[1]),x=/^((?:\S+\s+){4})\S/.exec(T[1])?.[1],R=x?d.get(x):void 0;r[y]=T.map((O,F)=>F===1?E??(R?`${R}:${O.slice(x.length)}`:O):F===4&&p?O.slice(0,10):O).join(" ")}let
|
|
97
|
-
`)+n;return Buffer.byteLength(
|
|
96
|
+
`)+n;if(!t)return a;let l=new Map;for(let{cells:y}of i)l.set(y[1],(l.get(y[1])??0)+1);let c=new Map,u=[];for(let[y,T]of l){if(y.length<40||T<3||y.trim().split(/\s+/).length<8)continue;let E=`@${c.size+1}`,x=JSON.stringify(y).replace(/\u2028/g,"\\u2028").replace(/\u2029/g,"\\u2029"),R=`TITLE ${E} = ${x}`;T*(Buffer.byteLength(y)-Buffer.byteLength(E))<=Buffer.byteLength(R)+1||(c.set(y,E),u.push(R))}let f=new Map;for(let{cells:y}of i){if(c.has(y[1]))continue;let T=/^((?:\S+\s+){4})\S/.exec(y[1])?.[1];T&&T.length>=24&&f.set(T,(f.get(T)??0)+1)}let d=new Map;for(let[y,T]of f){if(T<3)continue;let E=`@p${d.size+1}`,x=`TITLE prefix ${E} = ${JSON.stringify(y).replace(/\u2028/g,"\\u2028").replace(/\u2029/g,"\\u2029")}`;T*(Buffer.byteLength(y)-Buffer.byteLength(E)-1)<=Buffer.byteLength(x)+1||(d.set(y,E),u.push(x))}let m=i[0].cells[4].slice(10),p=i.length>=3&&mc.test(i[0].cells[4])&&i.every(({cells:y})=>mc.test(y[4])&&y[4].slice(10)===m)&&i.length*m.length>`CREATED suffix = ${JSON.stringify(m)}`.length+1;if(p&&u.push(`CREATED suffix = ${JSON.stringify(m)}`),u.length===0)return a;for(let{index:y,cells:T}of i){let E=c.get(T[1]),x=/^((?:\S+\s+){4})\S/.exec(T[1])?.[1],R=x?d.get(x):void 0;r[y]=T.map((O,F)=>F===1?E??(R?`${R}:${O.slice(x.length)}`:O):F===4&&p?O.slice(0,10):O).join(" ")}let h=[...r,"",...u].join(`
|
|
97
|
+
`)+n;return Buffer.byteLength(h)<Buffer.byteLength(a)?h:a}function eR(e){let t=XT.exec(e[0]??"");if(!t)return e;let n=QT.exec(e[1]??"");if(!n)return[`* ${t[1]}`,...e.slice(1)];let r=n[1]??n[3],o=n[2]?` [${n[2]} ${n[4]}]`:"";return[`* ${t[1]}...${r}${o}`,...e.slice(2)]}function tR(e){let t=e.endsWith(`
|
|
98
98
|
`)?`
|
|
99
99
|
`:"",n=eR((t?e.slice(0,-1):e).split(`
|
|
100
|
-
`)),r=null,o=[];for(let s of n){if(Object.hasOwn(
|
|
100
|
+
`)),r=null,o=[];for(let s of n){if(Object.hasOwn(Sg,s)){r=Sg[s];continue}if(!s.startsWith(" ")){r=null,o.push(s);continue}if(r==="untracked"){o.push(`?? ${s.slice(1)}`);continue}let i=r?YT.exec(s):null;if(!i)return e;let a=qT[i[1]];o.push(r==="staged"?`${a} ${i[2]}`:` ${a} ${i[2]}`)}return o.join(`
|
|
101
101
|
`)+t}function rR(e){let t=e.split(`
|
|
102
|
-
`);for(let n=0;n<t.length;n+=1){if(!nR.test(t[n]))continue;let r=n;for(;r>0&&
|
|
102
|
+
`);for(let n=0;n<t.length;n+=1){if(!nR.test(t[n]))continue;let r=n;for(;r>0&&xg.test(t[r-1]);)r-=1;for(let o=r;o<n;o+=1)t[o]=t[o].replace(xg," $1 | $2")}return t.join(`
|
|
103
103
|
`)}function sR(e,t){let n=[];for(let r=0;r<t.length;r+=1){let o=t[r];if(o>0&&e.length>o&&e[o-1]!==" ")return null;let s=e.slice(o,t[r+1]??e.length).trim();if(s.includes(" "))return null;n.push(s)}return n}function iR(e){let t=e.endsWith(`
|
|
104
104
|
`)?`
|
|
105
105
|
`:"",n=(t?e.slice(0,-1):e).split(`
|
|
106
|
-
`),r=[],o=[];for(let c of n)c.startsWith("WARNING:")?r.includes(c)||r.push(c):o.push(c);let s=o.findIndex(c=>
|
|
107
|
-
`)+t;let i=o[s],a=[...i.matchAll(/\S+/g)].map(c=>c.index),l=[...r,...o.slice(0,s),i.split(/ +/).join(" ")];for(let c of o.slice(s+1)){if(
|
|
106
|
+
`),r=[],o=[];for(let c of n)c.startsWith("WARNING:")?r.includes(c)||r.push(c):o.push(c);let s=o.findIndex(c=>vg.test(c));if(s<0)return[...r,...o].join(`
|
|
107
|
+
`)+t;let i=o[s],a=[...i.matchAll(/\S+/g)].map(c=>c.index),l=[...r,...o.slice(0,s),i.split(/ +/).join(" ")];for(let c of o.slice(s+1)){if(Eg.test(c)){l.push(c);continue}let u=c.startsWith(" ")||/[^\x20-\x7e]/.test(c)?null:sR(c,a);if(!u)return[...r,...o].join(`
|
|
108
108
|
`)+t;l.push(u.join(" "))}return l.join(`
|
|
109
109
|
`)+t}function aR(e){let t=e.endsWith(`
|
|
110
110
|
`)?`
|
|
111
111
|
`:"",n=(t?e.slice(0,-1):e).split(`
|
|
112
|
-
`),r=n.findIndex(i=>
|
|
113
|
-
`)+t}function pc(e,t,n){if(t!=="compact"&&t!=="minimal")return e;let r=e;if(/^[ \t\r\n]*[\[{]/.test(e)){try{JSON.parse(e)}catch{return e}r=WT(e,t==="minimal")}else n==="gh"?r=VT(e,t==="minimal"):n==="git-status"?r=tR(e):n==="gcloud"?r=iR(e):n==="oc"?r=aR(e):n==="git-diff"?r=rR(e):n==="tofu-plan"&&(r=e.replace(oR,"$1 = "));return Buffer.byteLength(r)<Buffer.byteLength(e)?r:e}var KT,ZT,mc,
|
|
112
|
+
`),r=n.findIndex(i=>vg.test(i.trimEnd()));if(r<0)return e;let o=n[r].trim().split(/ {2,}/).length;if(o<2)return e;let s=[...n.slice(0,r),n[r].trim().split(/ {2,}/).join(" ")];for(let i of n.slice(r+1)){if(Eg.test(i)){s.push(i);continue}if(i.startsWith(" ")||i.includes(" ")||/[^\x20-\x7e]/.test(i))return e;let a=i.trimEnd().split(/ {2,}/);if(a.length===o-1){let l=a[0].indexOf(" ");if(l<0||a[0].indexOf(" ",l+1)>=0)return e;a=[a[0].slice(0,l),a[0].slice(l+1),...a.slice(1)]}if(a.length!==o)return e;s.push(a.join(" "))}return s.join(`
|
|
113
|
+
`)+t}function pc(e,t,n){if(t!=="compact"&&t!=="minimal")return e;let r=e;if(/^[ \t\r\n]*[\[{]/.test(e)){try{JSON.parse(e)}catch{return e}r=WT(e,t==="minimal")}else n==="gh"?r=VT(e,t==="minimal"):n==="git-status"?r=tR(e):n==="gcloud"?r=iR(e):n==="oc"?r=aR(e):n==="git-diff"?r=rR(e):n==="tofu-plan"&&(r=e.replace(oR,"$1 = "));return Buffer.byteLength(r)<Buffer.byteLength(e)?r:e}var KT,ZT,mc,Sg,qT,YT,XT,QT,xg,nR,oR,vg,Eg,Tg=k(()=>{"use strict";KT=/^ID {2,}TITLE {2,}BRANCH {2,}STATE {2,}CREATED *$/,ZT=/^… \([1-9]\d* more lines omitted\)$/,mc=/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(?:\.\d{1,3})?Z$/;Sg={"Changes to be committed:":"staged","Changes not staged for commit:":"unstaged","Untracked files:":"untracked"},qT={modified:"M",deleted:"D","new file":"A",renamed:"R",copied:"C",typechange:"T"},YT=/^\t(modified|deleted|new file|renamed|copied|typechange):\s+(.+)$/,XT=/^On branch (\S+)$/,QT=/^Your branch is (?:up to date with '([^']+)'|(ahead|behind)(?: of)? '([^']+)' by (\d+) commits?(?:, and can be fast-forwarded)?)\.$/;xg=/^ (\S.*?) +\| +(\d+(?: [+-]+)?|Bin .*)$/,nR=/^ \d+ files? changed(?:, \d+ insertions?\(\+\))?(?:, \d+ deletions?\(-\))?$/;oR=/^( *(?:[~+-] +)?(?:[\w.-]+|"[^"\n]*")) {2,}= /gm,vg=/^[A-Z][A-Z0-9_]*(?: +[A-Z][A-Z0-9_]*)+$/,Eg=/^… \(\d+ more lines omitted\)$/});function Rg(e){if(Buffer.byteLength(e)<2048||Ks(e)||cR.test(e))return e;let t=e.split(`
|
|
114
114
|
`),n=[];for(let r=0;r<t.length;){let o=t[r],s=r+1;if(lR.test(o))for(;s<t.length&&t[s]===o;)s+=1;let i=s-r,a=`[tkr: previous log line repeated ${i-1} additional times]`;if(i>=3&&Buffer.byteLength(a)+1<(i-1)*(Buffer.byteLength(o)+1))n.push(o,a);else for(let l=r;l<s;l+=1)n.push(o);r=s}return n.join(`
|
|
115
|
-
`)}var lR,cR,
|
|
115
|
+
`)}var lR,cR,Ag=k(()=>{"use strict";Kn();lR=/^(?:\d{4}-\d{2}-\d{2}[T ]\d{2}:\d{2}:\d{2}(?:\.\d+)?Z?\s+)?(?:\[(?:DEBUG|TRACE|INFO|WARN|WARNING|ERROR|FATAL)\]|DEBUG|TRACE|INFO|WARN|WARNING|ERROR|FATAL)(?::|\s|$)/,cR=/^\[tkr: previous log line repeated \d+ additional times\]$/m});function $g(e){return fR.test(e)}function Cg(e){let t=e.endsWith(`
|
|
116
116
|
`),n=(t?e.slice(0,-1):e).split(`
|
|
117
117
|
`),r=0;for(let o of n)if(o.trim()!==""){if(!uR.test(o))return null;r+=1}return r<2?null:`tsc: 0 errors, ${r} files${t?`
|
|
118
|
-
`:""}`}var uR,fR,Oh=k(()=>{"use strict";uR=/^(?:[A-Za-z]:)?[^\s"'<>|]+\.(?:[cm]?[jt]sx?|json)$/,fR=/--(?:listFiles|listFilesOnly|listEmittedFiles|showConfig|explainFiles|traceResolution)(?:\s|=|$)/});function Yn(e,t){let n=null;for(let r of e){let o=t.exec(r);o&&(n=(n??0)+Number(o[1]))}return n}function oi(e){return dR.test(e)}function si(e,t,n){return n===null?t:(t!==n&&!e.some(r=>r.kind==="frame"&&r.text===t)&&e.push({kind:"frame",text:t}),n)}function gc(e,t=()=>!1){let n=[],r=null,o=-1,s=!1;for(let f of e){let d=f.trimEnd(),m=d.trim();if(!m||hR.test(d)||/^─+$/.test(m))continue;if(t(m)){s=!0,n.push({kind:"out",text:m.replace(/\s*─+$/,"")});continue}if(s){n.push({kind:"out",text:m});continue}let p=mR.exec(d)??pR.exec(d);if(p){o=-1;let y=p[1].replace(/^file:\/\//,"");oi(y)||(r=si(n,`${y}:${p[2]}${p[3]?`:${p[3]}`:""}`,r));continue}let g=gR.exec(d);if(g){o=-1,n.push({kind:"code",text:m,num:Number(g[2]),pointed:g[1]===">"});continue}if(yR.test(m)){o=n.length,n.push({kind:"legend",text:m});continue}n.push(o>=0?{kind:"diff",text:d,segment:o}:{kind:"msg",text:m})}let i=n.some(f=>f.kind==="code"&&f.pointed),a=r?Number(/:(\d+)(?::\d+)?$/.exec(r)?.[1]):NaN,l=!1,c=n.filter(f=>{if(f.kind!=="code")return!0;let d=!l&&(i?f.pointed===!0:f.num===a);return d&&(l=!0),d}),u=new Map;for(let f of c){if(f.kind!=="diff")continue;let d=f.text.length-f.text.trimStart().length;u.set(f.segment,Math.min(u.get(f.segment)??d,d))}for(let f of c)f.kind==="diff"&&(f.text=f.text.slice(u.get(f.segment)??0)),f.kind==="code"&&(f.text=f.text.replace(/^>\s*/,""));return{body:c,loc:r}}function ye(e,t=!1){return{text:e.trim().replace(/\s{2,}/g," "),minor:t}}function kR(e){if(!e.some(l=>/^⎯+ Failed (?:Tests|Suites) \d+ ⎯+$/.test(l.trim())||/^\s*Test Files\s{2,}\d/.test(l)||/^ ?FAIL\s+\S+ > /.test(l)))return null;let t=Yn(e,/^\s*Tests\s+(\d+) failed/),n=[];for(let l of e)/^\s*Test Files\s{2,}\S/.test(l)?n.push(ye(l,!0)):/^\s*(?:Tests|Errors|Type Errors)\s{2,}\S/.test(l)&&n.push(ye(l));let r=[],o=0,s=[],i=[],a=()=>{if(s.length){let{body:l,loc:c}=gc(i);for(let u of s)u.body=l,u.loc=c}s=[],i=[]};for(let l of e){let c=l.trim(),u=/^ ?FAIL\s+(\S.*?)\s*$/.exec(l);if(u){i.some(y=>y.trim())&&a();let d=u[1],m=/^(\S+) \[ \S+ \]$/.exec(d),p=d.split(" > "),g=m?{file:m[1],name:"(suite)",loc:null,body:[]}:p.length>1?{file:p[0],name:p.slice(1).join(" > "),loc:null,body:[]}:{file:null,name:d,loc:null,body:[]};m||(o+=1),r.push(g),s.push(g);continue}let f=/^⎯+ (Unhandled [A-Za-z ]+?) ⎯+$/.exec(c);if(f){a();let d={file:null,name:f[1],loc:null,body:[]};r.push(d),s.push(d);continue}if(/^⎯{3,}/.test(c)||/^(?:Test Files|Tests|Start at|Duration|Errors)\s{2,}/.test(c)){a();continue}s.length&&i.push(l)}if(a(),o===0){let l=null;for(let c of e){let u=/^\s*[❯✓×✗]\s+(\S+)\s+\(\d+ tests?\b/.exec(c);if(u){l=u[1];continue}let f=/^\s+[×✗]\s+(.+?)(?:\s+\d+(?:\.\d+)?m?s)?$/.exec(c);f&&(r.push({file:l,name:f[1],loc:null,body:[]}),o+=1)}}return{failures:r,summary:n,reported:t,counted:o}}function bR(e){if(!e.some(u=>/^\s{2}● (?!Console$)/.test(u))||!e.some(u=>/^Tests:\s/.test(u)||/^(?:FAIL|PASS)\s+\S/.test(u)))return null;let t=Yn(e,/^Tests:\s+(\d+) failed/),n=[];for(let u of e)/^Test Suites:\s/.test(u)?n.push(ye(u,!0)):(/^Tests:\s/.test(u)||/^Snapshots:\s/.test(u)&&/failed|obsolete/.test(u))&&n.push(ye(u));let r=[],o=new Set,s=0,i=null,a=null,l=[],c=()=>{if(a){let u=`${a.file}\0${a.name}`;if(!o.has(u)){o.add(u);let{body:f,loc:d}=gc(l);a.body=f,a.loc=d,r.push(a),a.name!=="Test suite failed to run"&&(s+=1)}}a=null,l=[]};for(let u of e){let f=/^(?:FAIL|PASS)\s+(\S+)/.exec(u);if(f){c(),i=f[1];continue}if(/^(?:Summary of all failing tests|Test Suites:|Tests:|Snapshots:|Time:|Ran all test suites)/.test(u)){c();continue}let d=/^\s{2}● (.+)$/.exec(u);if(d){c(),d[1].trim()!=="Console"&&(a={file:i,name:d[1].trim(),loc:null,body:[]});continue}a&&l.push(u)}return c(),{failures:r,summary:n,reported:t,counted:s}}function Fh(e,t,n,r,o){let s=[],i=new Map,a=null;for(let l=t;l<n;l++){let c=e[l],u=/^\s{2}\d+\) (.+)$/.exec(c);if(u){let{name:f,used:d}=r(u[1],e.slice(l+1,Math.min(n,l+8)));l+=d,a=i.get(f)??null,a||(a=[],i.set(f,a),s.push({file:null,name:f,loc:null,body:[]}));continue}/^\s+Retry #\d+ ─*/.test(c)||a&&a.push(c)}for(let l of s){let{body:c,loc:u}=gc(i.get(l.name),o);l.body=c,l.loc=u}return s}function wR(e){let t=e.findIndex(s=>/^\s*\d+ failing$/.test(s));if(t<0)return null;let n=Number(/(\d+)/.exec(e[t])[1]),r=e.filter(s=>/^\s*\d+ (?:passing|failing|pending)(?: \(\S+\))?$/.test(s)).map(s=>ye(s.replace(/ \(\S+\)\s*$/,""))),o=Fh(e,t+1,e.length,(s,i)=>{let a=[s.trim()],l=0;for(;!a[a.length-1].endsWith(":")&&l<i.length&&i[l].trim();)a.push(i[l].trim()),l+=1;return a[a.length-1].endsWith(":")?{name:a.join(" \u203A ").replace(/:$/,""),used:l}:{name:s.trim(),used:0}});return{failures:o,summary:r,reported:n,counted:o.length}}function _R(e){let t=e.findIndex(a=>/^\s{2}\d+\) .*›.*─{3,}\s*$/.test(a));if(t<0)return null;let n=e.findIndex((a,l)=>l>t&&/^\s{2}\d+ (?:failed|flaky|passed|skipped|interrupted|did not run)(?: \(.+\))?$/.test(a)),r=n<0?e.length:n,o=Yn(e.slice(r),/^\s{2}(\d+) failed$/),s=e.slice(r).filter(a=>/^\s{2}\d+ (?:failed|flaky|passed|skipped|interrupted|did not run)(?: \(.+\))?$/.test(a)).map(a=>ye(a.replace(/ \([\d.]+m?s\)\s*$/,""))),i=Fh(e,t,r,a=>({name:a.replace(/\s*─+\s*$/,"").trim(),used:0}),a=>/^attachment #\d+:/.test(a));return{failures:i,summary:s,reported:o,counted:i.length}}function SR(e){if(!e.some(i=>/^test result: /.test(i))||!e.some(i=>/^---- .+ stdout ----$/.test(i)))return null;let t=Yn(e,/^test result: FAILED\. \d+ passed; (\d+) failed/),n=[];for(let i of e)/^test result: FAILED/.test(i)?n.push(ye(i.replace(/; finished in [\d.]+m?s\s*$/,""))):/^test result: ok/.test(i)?n.push(ye(i.replace(/; finished in [\d.]+m?s\s*$/,""),!0)):/^error(?:\[\w+\])?: /.test(i)&&n.push(ye(i));let r=[],o=null,s=[];for(let i of e){let a=/^---- (.+?) stdout ----$/.exec(i);if(a){o={f:{file:null,name:a[1],loc:null,body:[]},lines:[]},s.push(o),r.push(o.f);continue}if(/^failures:$|^test result: |^running \d+ tests?$/.test(i)){o=null;continue}o&&o.lines.push(i)}for(let{f:i,lines:a}of s){let l=!1,c=!1;for(let u of a){let f=u.trimEnd(),d=f.trim();if(!d)continue;let m=/^thread '.+?'(?: \(\d+\))? panicked at (?:'(.*)', )?(\S+?):(\d+):(\d+):?$/.exec(d);if(m){l=!0,i.loc??=`${m[2]}:${m[3]}:${m[4]}`,m[1]&&i.body.push({kind:"msg",text:m[1]});continue}if(!/^note: run with `RUST_BACKTRACE/.test(d)){if(/^stack backtrace:$/.test(d)){c=!0;continue}if(c){let p=/^at\s+(\S+?):(\d+):(\d+)$/.exec(d);p&&!oi(p[1])&&(i.loc=si(i.body,`${p[1]}:${p[2]}:${p[3]}`,i.loc));continue}i.body.push(l?{kind:"msg",text:f}:{kind:"out",text:f})}}}return{failures:r,summary:n,reported:t,counted:r.length}}function xR(e){if(!e.some(a=>/^\s*--- FAIL: \S/.test(a)))return null;let t=new Map,n=[],r=new Map,o=[],s=null,i=null;for(let a of e){let l=/^=== (?:RUN|CONT|PAUSE|NAME)\s+(\S+)/.exec(a);if(l){s=l[1],i=null;continue}let c=/^\s*--- FAIL: (\S+) \([\d.]+m?s\)/.exec(a);if(c){i={file:null,name:c[1],loc:null,body:[]},r.set(i,[...t.get(c[1])??[]]),n.push(i),s=null;continue}if(/^\s*--- (?:PASS|SKIP): /.test(a)){i=null,s=null;continue}let u=/^(FAIL|ok)\s+(\S+)(?:\s+(?:[\d.]+m?s|\(cached\)|\[[^\]]+\]))?/.exec(a);if(u&&/\t|\s{2,}|\[/.test(a)){o.push(ye(a.replace(/\s+[\d.]+m?s\s*$/,""),u[1]==="ok")),i=null,s=null;continue}if(!/^(?:FAIL|PASS)$/.test(a.trim())){if(/^exit status \d+$/.test(a)){o.push(ye(a,!0));continue}if(i)r.get(i).push(a);else if(s){let f=t.get(s)??[];f.push(a),t.set(s,f)}else(/^#\s\S+$/.test(a)||/^\S+\.go:\d+(?::\d+)?: /.test(a))&&o.push(ye(a))}}for(let a of n){for(let l of r.get(a)){let c=l.trim();if(!c||/^goroutine \d+ \[/.test(c))continue;let u=/^(\/\S+\.go|\S+\.go):(\d+)(?: \+0x[0-9a-f]+)?$/.exec(c);if(u){oi(u[1])||(a.loc=si(a.body,`${u[1]}:${u[2]}`,a.loc));continue}/^(?:[\w.*/()-]+)\(.*\)$/.test(c)||/^created by /.test(c)||a.body.push({kind:"msg",text:c})}a.loc&&a.body.some(l=>l.kind==="msg"&&/^\S+\.go:\d+: /.test(l.text))&&(a.body.unshift({kind:"frame",text:a.loc}),a.loc=null)}return{failures:n,summary:o,reported:null,counted:n.length}}function Ih(e,t){let n=[],r=null,o=!1,s=!1;for(let l of e){let c=l.trimEnd(),u=c.trim();if(/^-{3,} Captured .+ -{3,}$/.test(u)){o=!0;continue}if(o){u&&n.push({kind:"out",text:c});continue}if(/^E(?:\s|$)/.test(c)){c.slice(1).trim()&&n.push({kind:"msg",text:c});continue}let f=/^(\S+?\.py):(\d+):(?: (.*))?$/.exec(c);if(f){if(!oi(f[1])){let d=f[3]?.startsWith("in ")?` ${f[3]}`:"";r=si(n,`${f[1]}:${f[2]}${r===null?"":d}`,r)}continue}/^>\s/.test(c)&&!s&&(s=!0,n.push({kind:"code",text:u.replace(/^>\s*/,"")}))}let i=n.filter(l=>l.kind==="msg"),a=Math.min(...i.map(l=>l.text.slice(1).length-l.text.slice(1).trimStart().length));for(let l of i)l.text=`E ${l.text.slice(1+a)}`;return t&&!i.some(l=>l.text.includes(t.replace(/\.\.\.$/,"")))&&n.unshift({kind:"msg",text:t}),{body:n,loc:r}}function Nh(e,t){return t.push(ye(e.replace(/ in [\d.]+s(?: \([\d:]+\))?$/,""))),(Yn([e],/(\d+) failed/)??0)+(Yn([e],/(\d+) errors?\b/)??0)}function vR(e){if(!e.some(f=>/^={3,} (?:FAILURES|ERRORS|short test summary info) ={3,}$/.test(f)||Ph.test(f)))return null;let t=new Map,n=[],r=[],o="",s=null,i=null,a=null;for(let f of e){let d=/^={3,} (.+?) ={3,}$/.exec(f);if(d){o=d[1],s=null,i=null,!/^(?:FAILURES|ERRORS|short test summary info|warnings summary|test session starts|PASSES)$/.test(o)&&/\b\d+ (?:failed|passed|errors?|skipped|xfailed|xpassed|deselected|warnings?)\b|no tests ran/.test(o)&&(a=Nh(o,r));continue}if(/^(?:\d+ (?:failed|passed|errors?|skipped|xfailed|xpassed|deselected|warnings?)(?:, |\s|$))+(?:in [\d.]+s(?: \([\d:]+\))?)?$/.test(f.trim())){a=Nh(f.trim(),r);continue}if(/^!{3,} .+ !{3,}$/.test(f)){r.push(ye(f.replace(/^!+ | !+$/g,"")));continue}let m=/^_{3,} (.+?) _{3,}$/.exec(f);if(m&&(o==="FAILURES"||o==="ERRORS")){s=[],t.set(m[1],s);continue}let p=Ph.exec(f);if(p&&o!=="FAILURES"&&o!=="ERRORS"){s=null;let g={kind:p[1],id:p[2],msg:p[3]??null,inline:[]};n.push(g),i=g;continue}if(s){s.push(f);continue}i&&/^E(?:\s|$)/.test(f)?i.inline.push(f):i&&f.trim()&&(i=null)}let l=new Set,c=[],u=new Set;for(let f of n){if(u.has(f.id))continue;u.add(f.id);let[d,...m]=f.id.split("::"),p=m.join("."),g=[p,`ERROR collecting ${f.id}`,`ERROR at setup of ${p}`,`ERROR at teardown of ${p}`].find(x=>x&&t.has(x)&&!l.has(x));g&&l.add(g);let{body:y,loc:T}=Ih(g?t.get(g):f.inline,f.msg),E=m.length?m.join("::"):"(collection)";c.push({file:d,name:f.kind==="ERROR"?`${E} [error]`:E,loc:T,body:y})}for(let[f,d]of t){if(l.has(f))continue;let{body:m,loc:p}=Ih(d,null);c.push({file:p?p.replace(/:\d+$/,""):null,name:f,loc:p,body:m})}if(c.length===0)for(let f of e){let d=/^(\S+?)::(\S+) (FAILED|ERROR)\b/.exec(f);d&&c.push({file:d[1],name:d[3]==="ERROR"?`${d[2]} [error]`:d[2],loc:null,body:[]})}return{failures:c,summary:r,reported:a,counted:c.length}}function TR(e,t){return e.length===0?!1:e.every(n=>{let r=n.text.trim();if(!/^[-+]/.test(r))return!1;let o=r.slice(1).trim().replace(/,$/,"");return o.length>0&&t.includes(o)})}function RR(e,t,n){let r=Mh[n],o=e.body.filter(d=>d.kind==="msg");if(!t)return o.length?[` ${o[0].text}`]:[];let s=e.body.filter(d=>d.kind==="diff"),i=r.trimDiff&&TR(s,o.map(d=>d.text).join(`
|
|
119
|
-
`)),a={msg:0,legend:0,diff:0,frame:0,code:0,out:0},l={msg:0,legend:0,diff:0,frame:0,code:0,out:0},c={msg:r.msg,legend:1/0,diff:r.diff,frame:r.frames,code:r.code?1:0,out:r.out},u=[];for(let d of e.body){if((d.kind==="diff"||d.kind==="legend")&&i||d.kind==="diff"&&r.changedOnly&&!/^[-+]/.test(d.text.trim()))continue;let m=d.kind==="legend"?"diff":d.kind;if(a[m]>=c[m]&&d.kind!=="legend"){l[m]+=1;continue}d.kind!=="legend"&&(a[m]+=1),u.push(d.kind==="frame"?` at ${d.text}`:` ${d.text}`)}let f=l.msg+l.diff+(n==="normal"?l.frame+l.out:0);return f>0&&u.push(` ${Gn(f)}`),u}function AR(e){let t=e[0];for(let r of e)for(;!r.startsWith(t);)t=t.slice(0,-1);t=t.slice(0,Math.max(...["_",":",".","/"," ","\u203A","-","[","("].map(r=>t.lastIndexOf(r)))+1);let n=e.map(r=>r.slice(t.length));return t.length>=3&&n.every(r=>r.length>0&&!/[{},\s]/.test(r))?`${t}{${n.join(",")}}`:e.join(", ")}function $R(e){if(!e.loc)return`\xD7 ${e.name}`;let t=e.file&&e.loc.startsWith(`${e.file}:`)?e.loc.slice(e.file.length):e.loc;return`\xD7 ${e.name} ${t}`}function CR(e,t){let n=
|
|
118
|
+
`:""}`}var uR,fR,Og=k(()=>{"use strict";uR=/^(?:[A-Za-z]:)?[^\s"'<>|]+\.(?:[cm]?[jt]sx?|json)$/,fR=/--(?:listFiles|listFilesOnly|listEmittedFiles|showConfig|explainFiles|traceResolution)(?:\s|=|$)/});function Yn(e,t){let n=null;for(let r of e){let o=t.exec(r);o&&(n=(n??0)+Number(o[1]))}return n}function oi(e){return dR.test(e)}function si(e,t,n){return n===null?t:(t!==n&&!e.some(r=>r.kind==="frame"&&r.text===t)&&e.push({kind:"frame",text:t}),n)}function hc(e,t=()=>!1){let n=[],r=null,o=-1,s=!1;for(let f of e){let d=f.trimEnd(),m=d.trim();if(!m||gR.test(d)||/^─+$/.test(m))continue;if(t(m)){s=!0,n.push({kind:"out",text:m.replace(/\s*─+$/,"")});continue}if(s){n.push({kind:"out",text:m});continue}let p=mR.exec(d)??pR.exec(d);if(p){o=-1;let y=p[1].replace(/^file:\/\//,"");oi(y)||(r=si(n,`${y}:${p[2]}${p[3]?`:${p[3]}`:""}`,r));continue}let h=hR.exec(d);if(h){o=-1,n.push({kind:"code",text:m,num:Number(h[2]),pointed:h[1]===">"});continue}if(yR.test(m)){o=n.length,n.push({kind:"legend",text:m});continue}n.push(o>=0?{kind:"diff",text:d,segment:o}:{kind:"msg",text:m})}let i=n.some(f=>f.kind==="code"&&f.pointed),a=r?Number(/:(\d+)(?::\d+)?$/.exec(r)?.[1]):NaN,l=!1,c=n.filter(f=>{if(f.kind!=="code")return!0;let d=!l&&(i?f.pointed===!0:f.num===a);return d&&(l=!0),d}),u=new Map;for(let f of c){if(f.kind!=="diff")continue;let d=f.text.length-f.text.trimStart().length;u.set(f.segment,Math.min(u.get(f.segment)??d,d))}for(let f of c)f.kind==="diff"&&(f.text=f.text.slice(u.get(f.segment)??0)),f.kind==="code"&&(f.text=f.text.replace(/^>\s*/,""));return{body:c,loc:r}}function ye(e,t=!1){return{text:e.trim().replace(/\s{2,}/g," "),minor:t}}function kR(e){if(!e.some(l=>/^⎯+ Failed (?:Tests|Suites) \d+ ⎯+$/.test(l.trim())||/^\s*Test Files\s{2,}\d/.test(l)||/^ ?FAIL\s+\S+ > /.test(l)))return null;let t=Yn(e,/^\s*Tests\s+(\d+) failed/),n=[];for(let l of e)/^\s*Test Files\s{2,}\S/.test(l)?n.push(ye(l,!0)):/^\s*(?:Tests|Errors|Type Errors)\s{2,}\S/.test(l)&&n.push(ye(l));let r=[],o=0,s=[],i=[],a=()=>{if(s.length){let{body:l,loc:c}=hc(i);for(let u of s)u.body=l,u.loc=c}s=[],i=[]};for(let l of e){let c=l.trim(),u=/^ ?FAIL\s+(\S.*?)\s*$/.exec(l);if(u){i.some(y=>y.trim())&&a();let d=u[1],m=/^(\S+) \[ \S+ \]$/.exec(d),p=d.split(" > "),h=m?{file:m[1],name:"(suite)",loc:null,body:[]}:p.length>1?{file:p[0],name:p.slice(1).join(" > "),loc:null,body:[]}:{file:null,name:d,loc:null,body:[]};m||(o+=1),r.push(h),s.push(h);continue}let f=/^⎯+ (Unhandled [A-Za-z ]+?) ⎯+$/.exec(c);if(f){a();let d={file:null,name:f[1],loc:null,body:[]};r.push(d),s.push(d);continue}if(/^⎯{3,}/.test(c)||/^(?:Test Files|Tests|Start at|Duration|Errors)\s{2,}/.test(c)){a();continue}s.length&&i.push(l)}if(a(),o===0){let l=null;for(let c of e){let u=/^\s*[❯✓×✗]\s+(\S+)\s+\(\d+ tests?\b/.exec(c);if(u){l=u[1];continue}let f=/^\s+[×✗]\s+(.+?)(?:\s+\d+(?:\.\d+)?m?s)?$/.exec(c);f&&(r.push({file:l,name:f[1],loc:null,body:[]}),o+=1)}}return{failures:r,summary:n,reported:t,counted:o}}function bR(e){if(!e.some(u=>/^\s{2}● (?!Console$)/.test(u))||!e.some(u=>/^Tests:\s/.test(u)||/^(?:FAIL|PASS)\s+\S/.test(u)))return null;let t=Yn(e,/^Tests:\s+(\d+) failed/),n=[];for(let u of e)/^Test Suites:\s/.test(u)?n.push(ye(u,!0)):(/^Tests:\s/.test(u)||/^Snapshots:\s/.test(u)&&/failed|obsolete/.test(u))&&n.push(ye(u));let r=[],o=new Set,s=0,i=null,a=null,l=[],c=()=>{if(a){let u=`${a.file}\0${a.name}`;if(!o.has(u)){o.add(u);let{body:f,loc:d}=hc(l);a.body=f,a.loc=d,r.push(a),a.name!=="Test suite failed to run"&&(s+=1)}}a=null,l=[]};for(let u of e){let f=/^(?:FAIL|PASS)\s+(\S+)/.exec(u);if(f){c(),i=f[1];continue}if(/^(?:Summary of all failing tests|Test Suites:|Tests:|Snapshots:|Time:|Ran all test suites)/.test(u)){c();continue}let d=/^\s{2}● (.+)$/.exec(u);if(d){c(),d[1].trim()!=="Console"&&(a={file:i,name:d[1].trim(),loc:null,body:[]});continue}a&&l.push(u)}return c(),{failures:r,summary:n,reported:t,counted:s}}function Fg(e,t,n,r,o){let s=[],i=new Map,a=null;for(let l=t;l<n;l++){let c=e[l],u=/^\s{2}\d+\) (.+)$/.exec(c);if(u){let{name:f,used:d}=r(u[1],e.slice(l+1,Math.min(n,l+8)));l+=d,a=i.get(f)??null,a||(a=[],i.set(f,a),s.push({file:null,name:f,loc:null,body:[]}));continue}/^\s+Retry #\d+ ─*/.test(c)||a&&a.push(c)}for(let l of s){let{body:c,loc:u}=hc(i.get(l.name),o);l.body=c,l.loc=u}return s}function wR(e){let t=e.findIndex(s=>/^\s*\d+ failing$/.test(s));if(t<0)return null;let n=Number(/(\d+)/.exec(e[t])[1]),r=e.filter(s=>/^\s*\d+ (?:passing|failing|pending)(?: \(\S+\))?$/.test(s)).map(s=>ye(s.replace(/ \(\S+\)\s*$/,""))),o=Fg(e,t+1,e.length,(s,i)=>{let a=[s.trim()],l=0;for(;!a[a.length-1].endsWith(":")&&l<i.length&&i[l].trim();)a.push(i[l].trim()),l+=1;return a[a.length-1].endsWith(":")?{name:a.join(" \u203A ").replace(/:$/,""),used:l}:{name:s.trim(),used:0}});return{failures:o,summary:r,reported:n,counted:o.length}}function _R(e){let t=e.findIndex(a=>/^\s{2}\d+\) .*›.*─{3,}\s*$/.test(a));if(t<0)return null;let n=e.findIndex((a,l)=>l>t&&/^\s{2}\d+ (?:failed|flaky|passed|skipped|interrupted|did not run)(?: \(.+\))?$/.test(a)),r=n<0?e.length:n,o=Yn(e.slice(r),/^\s{2}(\d+) failed$/),s=e.slice(r).filter(a=>/^\s{2}\d+ (?:failed|flaky|passed|skipped|interrupted|did not run)(?: \(.+\))?$/.test(a)).map(a=>ye(a.replace(/ \([\d.]+m?s\)\s*$/,""))),i=Fg(e,t,r,a=>({name:a.replace(/\s*─+\s*$/,"").trim(),used:0}),a=>/^attachment #\d+:/.test(a));return{failures:i,summary:s,reported:o,counted:i.length}}function SR(e){if(!e.some(i=>/^test result: /.test(i))||!e.some(i=>/^---- .+ stdout ----$/.test(i)))return null;let t=Yn(e,/^test result: FAILED\. \d+ passed; (\d+) failed/),n=[];for(let i of e)/^test result: FAILED/.test(i)?n.push(ye(i.replace(/; finished in [\d.]+m?s\s*$/,""))):/^test result: ok/.test(i)?n.push(ye(i.replace(/; finished in [\d.]+m?s\s*$/,""),!0)):/^error(?:\[\w+\])?: /.test(i)&&n.push(ye(i));let r=[],o=null,s=[];for(let i of e){let a=/^---- (.+?) stdout ----$/.exec(i);if(a){o={f:{file:null,name:a[1],loc:null,body:[]},lines:[]},s.push(o),r.push(o.f);continue}if(/^failures:$|^test result: |^running \d+ tests?$/.test(i)){o=null;continue}o&&o.lines.push(i)}for(let{f:i,lines:a}of s){let l=!1,c=!1;for(let u of a){let f=u.trimEnd(),d=f.trim();if(!d)continue;let m=/^thread '.+?'(?: \(\d+\))? panicked at (?:'(.*)', )?(\S+?):(\d+):(\d+):?$/.exec(d);if(m){l=!0,i.loc??=`${m[2]}:${m[3]}:${m[4]}`,m[1]&&i.body.push({kind:"msg",text:m[1]});continue}if(!/^note: run with `RUST_BACKTRACE/.test(d)){if(/^stack backtrace:$/.test(d)){c=!0;continue}if(c){let p=/^at\s+(\S+?):(\d+):(\d+)$/.exec(d);p&&!oi(p[1])&&(i.loc=si(i.body,`${p[1]}:${p[2]}:${p[3]}`,i.loc));continue}i.body.push(l?{kind:"msg",text:f}:{kind:"out",text:f})}}}return{failures:r,summary:n,reported:t,counted:r.length}}function xR(e){if(!e.some(a=>/^\s*--- FAIL: \S/.test(a)))return null;let t=new Map,n=[],r=new Map,o=[],s=null,i=null;for(let a of e){let l=/^=== (?:RUN|CONT|PAUSE|NAME)\s+(\S+)/.exec(a);if(l){s=l[1],i=null;continue}let c=/^\s*--- FAIL: (\S+) \([\d.]+m?s\)/.exec(a);if(c){i={file:null,name:c[1],loc:null,body:[]},r.set(i,[...t.get(c[1])??[]]),n.push(i),s=null;continue}if(/^\s*--- (?:PASS|SKIP): /.test(a)){i=null,s=null;continue}let u=/^(FAIL|ok)\s+(\S+)(?:\s+(?:[\d.]+m?s|\(cached\)|\[[^\]]+\]))?/.exec(a);if(u&&/\t|\s{2,}|\[/.test(a)){o.push(ye(a.replace(/\s+[\d.]+m?s\s*$/,""),u[1]==="ok")),i=null,s=null;continue}if(!/^(?:FAIL|PASS)$/.test(a.trim())){if(/^exit status \d+$/.test(a)){o.push(ye(a,!0));continue}if(i)r.get(i).push(a);else if(s){let f=t.get(s)??[];f.push(a),t.set(s,f)}else(/^#\s\S+$/.test(a)||/^\S+\.go:\d+(?::\d+)?: /.test(a))&&o.push(ye(a))}}for(let a of n){for(let l of r.get(a)){let c=l.trim();if(!c||/^goroutine \d+ \[/.test(c))continue;let u=/^(\/\S+\.go|\S+\.go):(\d+)(?: \+0x[0-9a-f]+)?$/.exec(c);if(u){oi(u[1])||(a.loc=si(a.body,`${u[1]}:${u[2]}`,a.loc));continue}/^(?:[\w.*/()-]+)\(.*\)$/.test(c)||/^created by /.test(c)||a.body.push({kind:"msg",text:c})}a.loc&&a.body.some(l=>l.kind==="msg"&&/^\S+\.go:\d+: /.test(l.text))&&(a.body.unshift({kind:"frame",text:a.loc}),a.loc=null)}return{failures:n,summary:o,reported:null,counted:n.length}}function Ig(e,t){let n=[],r=null,o=!1,s=!1;for(let l of e){let c=l.trimEnd(),u=c.trim();if(/^-{3,} Captured .+ -{3,}$/.test(u)){o=!0;continue}if(o){u&&n.push({kind:"out",text:c});continue}if(/^E(?:\s|$)/.test(c)){c.slice(1).trim()&&n.push({kind:"msg",text:c});continue}let f=/^(\S+?\.py):(\d+):(?: (.*))?$/.exec(c);if(f){if(!oi(f[1])){let d=f[3]?.startsWith("in ")?` ${f[3]}`:"";r=si(n,`${f[1]}:${f[2]}${r===null?"":d}`,r)}continue}/^>\s/.test(c)&&!s&&(s=!0,n.push({kind:"code",text:u.replace(/^>\s*/,"")}))}let i=n.filter(l=>l.kind==="msg"),a=Math.min(...i.map(l=>l.text.slice(1).length-l.text.slice(1).trimStart().length));for(let l of i)l.text=`E ${l.text.slice(1+a)}`;return t&&!i.some(l=>l.text.includes(t.replace(/\.\.\.$/,"")))&&n.unshift({kind:"msg",text:t}),{body:n,loc:r}}function Ng(e,t){return t.push(ye(e.replace(/ in [\d.]+s(?: \([\d:]+\))?$/,""))),(Yn([e],/(\d+) failed/)??0)+(Yn([e],/(\d+) errors?\b/)??0)}function vR(e){if(!e.some(f=>/^={3,} (?:FAILURES|ERRORS|short test summary info) ={3,}$/.test(f)||Pg.test(f)))return null;let t=new Map,n=[],r=[],o="",s=null,i=null,a=null;for(let f of e){let d=/^={3,} (.+?) ={3,}$/.exec(f);if(d){o=d[1],s=null,i=null,!/^(?:FAILURES|ERRORS|short test summary info|warnings summary|test session starts|PASSES)$/.test(o)&&/\b\d+ (?:failed|passed|errors?|skipped|xfailed|xpassed|deselected|warnings?)\b|no tests ran/.test(o)&&(a=Ng(o,r));continue}if(/^(?:\d+ (?:failed|passed|errors?|skipped|xfailed|xpassed|deselected|warnings?)(?:, |\s|$))+(?:in [\d.]+s(?: \([\d:]+\))?)?$/.test(f.trim())){a=Ng(f.trim(),r);continue}if(/^!{3,} .+ !{3,}$/.test(f)){r.push(ye(f.replace(/^!+ | !+$/g,"")));continue}let m=/^_{3,} (.+?) _{3,}$/.exec(f);if(m&&(o==="FAILURES"||o==="ERRORS")){s=[],t.set(m[1],s);continue}let p=Pg.exec(f);if(p&&o!=="FAILURES"&&o!=="ERRORS"){s=null;let h={kind:p[1],id:p[2],msg:p[3]??null,inline:[]};n.push(h),i=h;continue}if(s){s.push(f);continue}i&&/^E(?:\s|$)/.test(f)?i.inline.push(f):i&&f.trim()&&(i=null)}let l=new Set,c=[],u=new Set;for(let f of n){if(u.has(f.id))continue;u.add(f.id);let[d,...m]=f.id.split("::"),p=m.join("."),h=[p,`ERROR collecting ${f.id}`,`ERROR at setup of ${p}`,`ERROR at teardown of ${p}`].find(x=>x&&t.has(x)&&!l.has(x));h&&l.add(h);let{body:y,loc:T}=Ig(h?t.get(h):f.inline,f.msg),E=m.length?m.join("::"):"(collection)";c.push({file:d,name:f.kind==="ERROR"?`${E} [error]`:E,loc:T,body:y})}for(let[f,d]of t){if(l.has(f))continue;let{body:m,loc:p}=Ig(d,null);c.push({file:p?p.replace(/:\d+$/,""):null,name:f,loc:p,body:m})}if(c.length===0)for(let f of e){let d=/^(\S+?)::(\S+) (FAILED|ERROR)\b/.exec(f);d&&c.push({file:d[1],name:d[3]==="ERROR"?`${d[2]} [error]`:d[2],loc:null,body:[]})}return{failures:c,summary:r,reported:a,counted:c.length}}function TR(e,t){return e.length===0?!1:e.every(n=>{let r=n.text.trim();if(!/^[-+]/.test(r))return!1;let o=r.slice(1).trim().replace(/,$/,"");return o.length>0&&t.includes(o)})}function RR(e,t,n){let r=Mg[n],o=e.body.filter(d=>d.kind==="msg");if(!t)return o.length?[` ${o[0].text}`]:[];let s=e.body.filter(d=>d.kind==="diff"),i=r.trimDiff&&TR(s,o.map(d=>d.text).join(`
|
|
119
|
+
`)),a={msg:0,legend:0,diff:0,frame:0,code:0,out:0},l={msg:0,legend:0,diff:0,frame:0,code:0,out:0},c={msg:r.msg,legend:1/0,diff:r.diff,frame:r.frames,code:r.code?1:0,out:r.out},u=[];for(let d of e.body){if((d.kind==="diff"||d.kind==="legend")&&i||d.kind==="diff"&&r.changedOnly&&!/^[-+]/.test(d.text.trim()))continue;let m=d.kind==="legend"?"diff":d.kind;if(a[m]>=c[m]&&d.kind!=="legend"){l[m]+=1;continue}d.kind!=="legend"&&(a[m]+=1),u.push(d.kind==="frame"?` at ${d.text}`:` ${d.text}`)}let f=l.msg+l.diff+(n==="normal"?l.frame+l.out:0);return f>0&&u.push(` ${Gn(f)}`),u}function AR(e){let t=e[0];for(let r of e)for(;!r.startsWith(t);)t=t.slice(0,-1);t=t.slice(0,Math.max(...["_",":",".","/"," ","\u203A","-","[","("].map(r=>t.lastIndexOf(r)))+1);let n=e.map(r=>r.slice(t.length));return t.length>=3&&n.every(r=>r.length>0&&!/[{},\s]/.test(r))?`${t}{${n.join(",")}}`:e.join(", ")}function $R(e){if(!e.loc)return`\xD7 ${e.name}`;let t=e.file&&e.loc.startsWith(`${e.file}:`)?e.loc.slice(e.file.length):e.loc;return`\xD7 ${e.name} ${t}`}function CR(e,t){let n=Mg[t],r=new Map,o=e.failures.length>n.bulk,s=e.failures.map(c=>{let u=c.body.find(m=>m.kind==="msg")?.text??"",f=(r.get(u)??0)+1;r.set(u,f);let d=u===""||!o||f<=n.repeats;return{f:c,full:d,body:RR(c,d,t).join(`
|
|
120
120
|
`)}}),i=[],a,l=null;for(let c=0;c<s.length;c++){let u=s[c];u.f.file!==a&&(a=u.f.file,a&&i.push(a));let f=c;if(!u.full&&u.f.loc===null)for(;f+1<s.length;){let m=s[f+1];if(m.full||m.f.loc!==null||m.f.file!==u.f.file||m.body!==u.body)break;f+=1}i.push(f>c?`\xD7 ${AR(s.slice(c,f+1).map(m=>m.f.name))}`:$R(u.f)),c=f;let d=s[c+1];d&&d.f.file===u.f.file&&d.body===u.body||u.body&&(u.body===l&&t!=="normal"?i.push(" \u2191 same error"):(i.push(u.body),l=u.body))}for(let c of e.summary)(!c.minor||t==="normal")&&i.push(c.text);return`${i.join(`
|
|
121
121
|
`)}
|
|
122
|
-
`}function
|
|
123
|
-
`).map(r=>{let o=r.endsWith("\r")?r.slice(0,-1):r;return o.includes("\r")?o.slice(o.lastIndexOf("\r")+1):o});for(let r of ER){let o=r(n);if(!(!o||o.failures.length===0))return o.counted===0||o.reported!==null&&o.counted<o.reported?null:CR(o,t)}return null}var Dh,Mh,dR,mR,pR,gR,hR,yR,Ph,ER,Lh=k(()=>{"use strict";fo();Pl();Dh=/^(?:(?:npx|bunx|pnpm(?:\s+(?:exec|dlx))?|yarn(?:\s+exec)?|uv\s+run|poetry\s+run|pipenv\s+run|hatch\s+run|python3?\s+-m)\s+)?(?:\S*\/)?(?:vitest|jest|mocha|pytest|py\.test|playwright\s+test)(?:\s|$)|^(?:npm|pnpm|yarn|bun)\s+(?:run\s+)?(?:test|t)(?:[:-]\S+)?(?:\s|$)|^cargo\s+test(?:\s|$)|^go\s+test(?:\s|$)/,Mh={normal:{msg:40,diff:60,frames:6,code:!0,out:20,bulk:50,repeats:10,trimDiff:!1,changedOnly:!1},compact:{msg:12,diff:24,frames:2,code:!1,out:5,bulk:20,repeats:2,trimDiff:!0,changedOnly:!1},minimal:{msg:6,diff:8,frames:0,code:!1,out:0,bulk:10,repeats:1,trimDiff:!0,changedOnly:!0}},dR=/node_modules|^node:|^internal\/|site-packages|dist-packages|\/lib\/python\d|\/rustc\/|\.cargo\/registry|\.rustup\/|\/go\/src\/|\/go\/pkg\/mod\/|\/libexec\/src\/|<anonymous>/,mR=/^\s*at\s+(?:.*?\()?((?:file:\/\/)?[^\s()]+?):(\d+)(?::(\d+))?\)?\s*$/,pR=/^\s*❯\s+(?:\S+\s+)?([^\s]+?):(\d+)(?::(\d+))?\s*$/,gR=/^\s*(>)?\s*(\d+)\s*\|/,hR=/^\s*\|\s*[\^~]+\s*$/,yR=/^(?:- Expected|\+ Received|- Snapshot|\+ expected - actual|\+ actual - expected|- expected \+ actual)(?:\s+[-+]\s*\d+)?$/;Ph=/^(FAILED|ERROR) (\S+?\.py(?:::\S+)?)(?: - (.*))?$/;ER=[SR,xR,vR,bR,kR,wR,_R]});function jh(){let e="_O1SjF-x7O0LpAJn39Mc0giIdfK3_8cPxAfzfR_a7KL0VKhJskvW12Be0lS2G-4_SDFq_tBtxgOTfsl8QAVNglzzfVR9DjfyZc3DwSXQo4muTQcN-IbfoZ_DMxBQedjPE-mxeMMrayxqIsMu8IiB8henfCeTEVd8ESfu5I8FrfFMQKPM_Nk1lDvjAYKXcAoyIHkpcIALYRP7-DMwuOE7gg64falGJON_JMZGQmj0EEjzUHtqixzojAtoWOS2pVzdYG9kraN6P27NT3kiC84WEYMxUMy4VDJBN7R7BNFTKJtJqBa8Vnw31xja5jyvfJPdhn69qEQ_KvclnoQChjH16FPwjUEralw3858XEBSZ3r5dShFR_StFQB_YWWkGPmu0EeRXCWN-RjgCGiAQTwhsuN4EzPUSSV6NjrUInhdHSgonS5uIFfKI3Hek7QTiMg1u5cUHcfMBjgRJSYlyBw51rWk4wH0xzDiXwHg-aC6loMVUBBmkhUjevbWOOCW-CjnX0q-y38ibT52YA89BZ9Y01DEB4E-WcG8HxEw_Qzzm8PfLz1MbA05TLgs4Gac4XcNKXjAk62d7g12Xf4ugncRD49CcXd4Xg-uHrF_Xb714rctYvAArja-YHkozYk8fkCUX0Hc6Rm4V7XwhIo2vr95WJwic2Pf28EAHeSLMc7VutWk6L99zpYCVmMjezWs9oel4xRXulp8LR5BV6YuDRtdye_gPpWtfGwBrhEZ4vCCOoN2XboE32Bt5bC67p53hSK0PPSBGdwCcoRiOc-LlVj8xWXUc-ia7qb_XCcRE0d6vHnos82Efjuoy5nv3XH5W6E30Q1l51txDgRq-uN8OncQL5EJ0CrjlZG9A1vnOONFRXEz6Q6UfPhkQxPca6odr7lhFXHyifi4vB5w9b1rV7G8KMAtz95JCMbJeJ61Qff1n0xP9nkCDVp60IuJZHTCLDiNfdCMaZF5dFhShz4NE73ApIepN2dKcUGLLrDRjQoeuIXRmejzVYvJVPY2fEsHncTYgETS3oGJLl0NBrnxw2e2ssRyqo0nzQErVQMoHvkw_GZvvjugCe6giTdDlItD2mYM4mIwDHS7Mg1k4Cu9q-cbdTDzJsrlXw5JofMXUGBVhjjOYzNv9oEMyNWKvtbPnKOrTJreRNcARhK7sy4NTmydNucbONfxQe1vUm5YpR1rWl6PbFKwgu5VF8yu7ebh0p1JMoQp72mNcr5-fkCTNiOyTlOUEQ3A2RQfCbldh4Amxj5ss_2wfnUC5Jm6rYoTYIWeySborPtn4YqBTSynDAqBUr5qZ5Dc3V8YrDNnafbUHYVZ2CHWkheUCFFfcMpkwLNu1pgi9VTtO0YlTo7hYA-Y16Tl56i1fUy0OlGU7xOmyC_Na7pierxxGeqMKv6wVE8IBSM9xcBU20iqhwUN5Ql1cVI9GxNxZh9175CCjqXtoNm3Z1ETZr-0t045fThKeOaVnGOlIJJtHBCwjVwjaO6I03INufvMhwA99LeU3UmLh0w1rtUEPuFFlHJerNK2V0lcw_Mh4Q1OxMc87W23o3XSEf2pWiolp5hGgMg3Kn-piOOmD5P1Uiuq6Gmbd4eyaFK4VjQrsiM_sO7MuyNNJqdTbFrgn7nYXEg_Hhjdh0aTacxlGCbqCfQ2t307TfEgijji0xlbheMxxXJyG4YVaYOEiaitEjfow90nYlbzRzgREgAxnXrdRfUm2Q0n0-ZIuBl5A-TXlLz0PJ3SL63uIP9-5yHaJIIIKqNuZi13PLvBy2sDAEfkiX7fi8rAvP1lRUXXacPijeAVhunNnLLK8p4IdLG_miogK7v2r5fs7sOcnkcgdw7ya-8hpeqAHDN1b3AjUaWfiev8yUb1sSYKgbFUBu37Oh-a7A5_BOvvGKVFOH1CBICUHOF-TQmvfiy5EUERi5q9UM-sQGZciRrCYS_CznbYh0Za1hA0jKeAEgp5fEASfCUkGo-Lu87u60vIQaQ2-MnlufFq6Q8m0GHAp0jTaz8vuy1OZDjH9K5PshKxmEt8neOlGbqFkCp9a-y2ymkFO8Zlw9vPNLd7Pa31D0k60OwZ0LxSOehZR0myQ84tU3345UhWWH9ui8lVrYJZDvYZAg7pkvWdN5ni4jyeez_6DOMTbX1VuFLeV0q1S-tPTr5w12sTRR8j_g9cptnrS5jJOEq45BDTM7WVqbr-jJLgOy02-g7hpRF8KjufDan2eIbCZJgM3tzQG8HqWXr9ar5k97f0-Ke1sj1c2aCIZbpeG0WslZRpLEuytSFWVswLj5BjVQ5bEI_MwE3LJW_yFRaZ-1MV2-fk1unGa26bdLLpxc0U6xbU6Z1hK4gWJSuBYfPqYnoub-ChwtP8ZOnbMjqT0P8jtW_rjcCtZuHUmvt5noWQgJclOOZJpVXofDDVF5_G-sKcWtkAoLmqTTOO_b5pyiwEO7ksmdyf5GKl36Y-fghYEoU3JnsU774TMf-PGa1mL5RS7vLXb0ys-7C_nMvVHZ7Eix3OaqHVdy-xvm6YclECpCNlo_FUl-c0ovXDO3c2aHifrr9uOXnt8yitKMHKcj6W_Jnkq7KUcW83eK7jJ64jX_Iz2I00Dw6ukgK7bIrHT9eQ3vOPwEc_VLhWIM-83f9V0NzOrZty4Jnl2MrAm3eEwc3G67H0MkkXNxBYVnJgvLQ_NE1QjtL_waup_fsX3U480bMwKwa4tpkz_xhPOOXK2LIUk_W9OO7wssG-qPnZl_iIHohGzq3N9RyIYaVBdoqf6Ef27HxkX6yLaadCIBLpjbrQB3rr_grexXDaY7gu2zzQ8j0aDup7AuQo3HBNq2xB-jn_IYF-zmdWcUYeGer5xlw4-lujP5ftDTAklRS51nBnKpTv9qxMyDLDFL7K3cyNaGRVdUwbvd1dmERvk2D6ijmzlo33wylS3igIQopUF3VRMpkATPIQHUK_xskfVmIIVi4nnf5cXZjNw6TxBtcIlEN4_U7vbB5HiIlv4huhkNyXSfiKldCjYf6e-JYtq_DprgZ3AKnlCVfm_uzr3vTUFnfEGz4g-ew-rVprlf_uQPGsFj-LQTbcSKDf4az2tOBlky_AzLl5ikEY8IQ97u9amUyFB3ePH-BjU6SJhpXIHCGBi1zia591ydVQmmL2oo1dToAkxTomtvrk9ehaZcXwSEHpqdEpQhGE1VMMmwF-1cJC6shzxi4MJKYHzFyu8qTI7bztuLHpEriKflprZ0knmcm6-e7eUvZ8dSUgBd_lpIzgLg6zxPHxL6oh8ZuQJlD8_i6MfNTNaSS2p7fEWU-5qTYNDlVIk7R08A-A6FUOGKRprCI8Ejgatgx5b1YFAM3w5BJoMJh4eADQ2G044UHGu9Cy1cTfrd5Jd2IutX3SvBpp8S2kD7ndTgyKiw0m-7voy56nQ7ALLBJ2qH51BPSzdSR0RUspzkyaYQmSkXkiBVl-cFG-8X4N6iajWHqMpbcjPq9CB-spmbvb6HeqrAp1hzuTjX_pIpt-NRjAcgPwcf58baDlBYwrlNOvWaRq_CKhgi7N1yE1iPpIEropSMR-Fu59bx4ZE6YsC8Sl0A8h1StWsZOWhVPr0BKHTtC-B3fZ5FjXKW65NywOyGDLOEsa_8Q54VBL9KJGXhzCWrGaKRAYmUXqs6hAcNkFFHjZhPQ7GCFiRycbQ3LvkkYeRlRfolECLitAfikNvkVOQMe2dCBMKApwPriszS3dpv8g5vrciiUyJNZZNy6gAXDQz9v7mP6Ed-T0d9OJYkCofyQb0by3u8GFuWcI8VQdw_JQ3paInH2cpNewdfFZ2gzbhW-5cZdoLH-mq18GR8x00KU0WGEEreSRmQ8_BtV36UWoTxYD_WV29ynOFnEShe4xDxDpvTZRlP3gdIZrAZeWMAeN-QBx5u3EUBrBrJiqQGKHnVaOwKPcr5J5ze7uAaavmVqOeELRui174AeS_HUCh1-OMrOEUqZVuYj0Xa_QYCyt-_SggN_aqFEf7j7BuHA13t3ATmq2597AeTPS8-mzC7DENz8C5GNSUYE7rk2JnG8bMNyMG2a2gkVegFNSOTL10juNCMpdoRN_xpzt8n60riOH6ZW8G3Oq8OsUGpFinuPC4EuapAsPmBIB7HcP9VXjhXVhHfIIJX94z6Kf1RTCTeBSk0X3gJ5ENurxE3W1VsplwczjSc4Znkr1MHlbWjQcVXM6URiAMJidvyTLP7wV7JQktH8lMWVDYq_nFJpQixAo_vizpaa-TXEZgfO1En5W8gFqNZLucFkZ9fSsiHJmVyVMpGIZqz89xd-Qd9v6cdLO08zDvTY7h7N4tfjj-OsMHCGbQ9RMnWcQiUJjHVuiJwFD1NDdZAKwM2Ua6KuOI8AoKF7zloOOJTNfBuY97zBzBvZu0_rdUeNxbMpMSSMjeVzSAM9bZkd3s0rezcK2hLPtz3K0rv7Ys4WV9r1aTCm4iBbaxaXNPfoY9gPfdYjfwoUUlfiGYajQIgZRFzgy-eRoTuCQVpengWpYDW7SlN-1QwLI8Xun4lXpX6OuWDEe5vWQNQiSvuMYxvO-f-7w2PS5yHVrx1pk5s6n6HIwVGkLSR85CsWFmbrmtmrDIebxxZPKH8mgOH7p46QwmOgdToxC6VkDP9P0zGtC1PA0JyQGH57yBE2GFxJnyYZzl0RLB1ZoiEOlBwQKx-ggKAq0X2Z3q4mIlrUPOagLgmelny_AIuzSMLz18A4-zcAMomMfuzb6FOrgQTz3XlPrmSnqNnSW37KxvWMdVXqg-LURASCkB8Z4bdG-1anzebyNJoULi56yQQMBNOWmktNE0uO3G7C_QAcAD44m91m1ni9-6W14xKe-kemb09NssiNPCaR2dTpNkI7s3toJnZ2eAumAWv1wa97yqwuePzvskpzEToX_9mSvj-JNjemHMz68jsG9iZu1DltxzI4hpNOZp79X0RpOFy5eC4if5JoAvqxC1wTH06s_vVBlnaXIDIHkLWyOtNgnnxpNcuXdz9Fh2zESzOW_QJnWZhb5Y1TtPJPYBaBNXUV0Yb3vNjTT1cS_YUCOLGCfnQyWCW_TZwCDw6I5iiL9Kyr0h8rt8GpnSUvNpNp5UFy5qE9sBX17xYmWjUi5x5SBop02g6xx88oIebJzZwfAktTXqMiW8wUpG-kHblaYQHio_qXpsuq-M7TQW0Q850QR9RFLYKl2i8hv9QVdL2Hwh65tUOshzF2d-VES6t74AIdiDI--UUiqL-4rZxsMF6lfjeqK2JqRS0bq15CI5_eN3Q6BJwYQskKlpvd_HGXgFSAqYMDDYxogYUes1N41Gl94kKSiqYK9ehRoGZVyPh_AKw6SSKEl_xQK8r48eLYu8_CcnK6P233k9OdymP4vGdp8A0utn_v47vVR36-TsZ-6wj_MvW2SbYLl7IhDK56p3pplexpDSV8YYRFam4EihnPbp3YAMuYowIHou6yTVf1TD-ULccPN_JNcLTz4sWFTExiLWu9Qu84EAOGwRnFTD8T6K2PFI6sKJihMoChLW4kahUaO9v8Sb0DYCyQ-SOzU4nS8zlcT1nVYNl-bzgfOu46qwBuTg5D_dgHGeZH-s1thyAkwa-nvIYwfQpnx3V4ePVDJYIxOHMq1gAPUS822DJ9R7rMjv9iyH22696qWvmPFOCKJfNNxlP1TVZsOcEjg1sWDbuqPIYCUZd7SM3DVc013TCO4pGZerD1H6bfjA-IFsj0sa3CiRNJ-DA_y1LZkA7J8GPqNFFI90OKMu86wtNczhF0lluj9Gqz3-qaP6PogpFfkjA--CeadmPGC5rlHDdozelV1vcpAFTNOZreDANUc5V_KF-MAemflVkkj3SEP-Mc_casBVGYI0c4QAQ-IE7hb47HcYF0V1bjZg_fPaB-hs4xIS1O-nAmiOt8SPWQ07ReOxm-tX08O2lwrt0RLLNZIHUdm4jBc0hyRiqC6thVKryWtVdiG41qbejETdqERUagwW86oUSMRyugaKvB9-StxdS-TJj9oFkGg2mjgKR2bBpm6vSpJgGbwnpnnbDLMMdawLs8pqp0KIDDKTzNMcdWv4J5VY7FeIAv5Q4ivroSmF4mS8qcJoPX5FcoDpavv1lAOZrJS5Vvd5PfqdMgJ3EysDOnQknYIOdf19K4OErf1Q3dddYMGX4eaaKVSpgalfaA49ZFW0exF93wQfCt3GKrue-0BfM2acgQdIG0IZf1lNBiDka-2gRAF1ip3PYecc0RsutsIg7rW1xpEmg---dXmWylsAESd3F8OdpmTyOrlM8mc6NfomGU1qvCuXYyi2IxhxV6hBIXdBURIX3y_VaF_5uhraH8TTGoqBkSsgUQVpWLn_TLgVb-dOzD1bl7bmY4ehwUjfUcsnDfbclQo4Pr6Fvjku1t1YAH7YMmK71T9r_jNfaQPHyBrKN7OHZ0_Fh6zBoIvcJ4w1vRXqeeEW75BkSajtgIuEYLZTHU2Fn9NmStyUrswNtTkcFJfs0ofbQV7fVgik2iJfyvSXJgfWEm9-jb0m9VmFleddQ9JXgNHB8qFGVZHus1SNHdPu7-vq06bBzsAfVKtWpZkc-D8BT3OoVVAVrep9Je5kjdHwTELKgaGFJgg8Nft01Dh3LHPzNdmDowhL0W5A6WSlUE7r_U2iiUlfekgicZfx21xqE__8O0QB0wPC_lDloZiH1tJsTOC06bFQWMiv0O8FsMuTI1UkgdM2ubGx2CxAR8ZELZ3we95gWYiXvWeAptCW_CZg1MsBoje01oBgY9rjFFFL6ZLGuEXhsdFdzw5QbLVFEJxqy-VZMVJq6MXCZlHQKcJdFctNqPhuO7IPw0FQ4-MWVp7xyvXexwigIwgbf8I9po3h7xnoq_Hqezm8Lya6BouO_6eA4yLKNLb1Qp8OzB18k-i-MFx7ARevkU1LNB2NwuWteTxy_HHGi_PcrYZ6IvtjvbDhO3iF7DDKfr-wuM_XGjITdpla5eMvgfNHFuoBk-SGbU14MEW82tIodXUHwzmt6kPLRM2sw0cJ7HLx02hPRCIWkIQMnL_cSa1FdhR41jyXdnJa3faPCNwqJjfgPduTzHAG14JgcB1BoS-718fvH2ad3Lxw28-Y3qcVojD95v88eiDIevxLKpG80LeCdMQusE1g2U47kfYHlg8IgGH74gRT1Cm0RgKBAw5DGNz-v52VuV_7mKCHtbQqGLd9ZR2YmUK63Kfvr1OkRq7vCNNBDijbBZ6E_rKZaspt1-W1P1priDaJ6WvzR1xYzWwyD5iK5gbCZH5vyOLg_IiAkCrSEiKAu304XJ8Gp2Y0hM8PWllukjQ5l9bAqiSrf2b30kf1BO-W_IyRKWgJgb-iSQd8f3dYfeoQ524BOq81ln8Vo_j6OPR1t8iirDLfKesX_hMclkXFcgP4gzf7CK_1UBL6HrgTygBiaOKLBYoJ-Xj0A54lJoynsdv3QlfqyD-gxCdu2Yvf5csRFDKqHMEOB6QrXrtEZTH75WXppv11FJp_Pwkd-S1st5OqjvUKkrjN_ML6x79paT1gQ3nLiLuSST2Ora6QyPgTDeHagYMbtJHaNJX7B4QJp7DfgrNB_nxPFONfWwyOSlL3EHeqacPWHSX6uWtQJGqcn7Re2p7mYMa-NnVA4KHdtP6rzkB1dJIgDFj03peYH-_zlCmYPywh2-xiaPERbU4Fz5TCcMcdGQX07hlG9SzBvXiELLdU1upYr3v56M3MnGF6ODB92EDmMVRlYJmGQiZT-a02bODa-C9qt1WkslOgWjvnZWeNqxOlJYbTo2EOuMi-x3OxmkcatbPMdpqwON3iCWvT2r-R3a13KVpuqCaxyytpOpRUaae07BOiEEjGLeeWNXWK5PaPEJ1bICD-Q9kqLnteoDmEf-FSZMdrvZ3qt6RWbwEBvLidPLe5KvycA23N6vMXzC5Tgo1kA7FASRQU2sDqkZz4PceKNY5V2uQIRe3-rtvLQW1SJnveBpoEdPMdJuM5_sO8HhM5j0BUCJqRynkRDU8BT4P97C54hHpytUTtRNjdBczio06LC2-Kpv7Pw17u9UY9GAj2SeCeCtu70OMkK7TuyQZ_7Lr3arIk9XWcOJrE-qwrVA2e2DsxlMO_oL2wjmyZ48Dzl-nI9cIpCNEbuDmFaHckVmE6_kbRIEY11OXPk8AxptbhwbfuZ9cgB4Dyy1B6F6vs4M5jlzX81ZHbKAdvssWffs_Ghcjpl0oitK0NvW6uox6knrC_vu4EfPJm7fFdzpGSoyM1oZ3b4GzKn42d_u3kH8Eo2QlGowTKZZFbq7PJk5azIdOGirCPKDs7Walmt5YRQUa8-Abs6qAvWo-iH72QLJojZo9Q4iG5BE9WBQiJ9NGzowyZgLYbGRe9whUEEWGBfkCNJ0pAUaeLqXgtKuDd3kYbvJkv1_J3B9SfmcnPmhnnaWdkiAFMur-dqG9s7dhOoljK0H0o62fGgjwuaq89iWb7Yfh3_UA-3MnaZOoCtjbGxKGnYLcNeYxYVrPgMS9n9ukr2383r3hEO1VCTwBBDRsGZAN7MPQ2TRQeoFLmj4cy4TLaySnV3qOTh0Rk_YBBxIo0RxnnTF6o8ciasOC7GhmTn_RW_gKmcvoiEl65KEvVxhhNDV9Cxx9AhsRgAGkQArkhbJyq4RwUC0o4F1FqFJRdP9LCOrY5zLu3whNjsnf5X2ItEY3QAsCgsUJpIK0BBRpetsnFkk2gLJH83uTw_0J25OG-l21wy6moJ7NXb766nsKzDqnxDTjCbm2obbLxnnxL_4Sie_bS4O_DNXdWRKxqFmoeEKHAV4B4Br49OZHmoDi-4W8RmlZUZm-uwo92XtxnD61RDmIfDE0lmHNAsE3QgzMD89Tle8fBgO00sjZZAWPC49lWzqQfFayCwBfkss7n_oDrA4GFNl5EKspUXPeieOU84b08nTvAMg2REZQEU16tjh3bPwkSGOtqGAv1PuwRN4rXrprnHA5bssQ1R97Bv6GjKsVAa4aawGOlaoeJlOPOH6wCkmL8YjtKcJyE-9vhvRNsjXnCgpFkWllUoQhXINeTE2g817sH_w7iNHqTaCh2KggyC3CTiDrjnjIn7-ZszhtWzBy4tUFkwhf8F92Hw_jCiLik90Uyp20LxX3WdG9jML1P1eEIlczofK5wb-49MBRP7AMCWJqIj119mrOAIqapjurGKDc0y5Q656E9RVjV6AS-UAqTXRTmI1BgOTh-F42twxDiNFii3BR15_QzlKEGyMm2s5nT5IicxJw8XzJFkOCM07dt2FubECBvqCI8O2JtqkiCZ_dmvsYmtS5Q59wQOwR_FrKsyilfSbarShep05h9IfpB5FvgGirJb54h86bQ3NJE6BLvilD1yr64Rjo0JFq9YIo8dNbibtYyqLlsKtwPF1iG8akHIo21USjg45hZyHJFzm_1BD9vk7-kZoOK2HMA8uuk9vlcFQY9AgUJKkfV5vId8iP6vx1oO-b63GWlLvTqF2P3td6M1GhAE74z-I7pkMap9oAxhdRz88A871b0jxPPQrRwnDeBQBozUwiQtg3ide7FCnxnQaA_e9HVlV2WEL1eDgrwO9vIjHiGd_ucmU_tOBuqFu0MS732PQyoj-ev81yqSs5xvXWHrBlTE7sLR_xBgc9rbrcqkvk8SicEyfFHa8ejhsJJkhxqgdLh6AARzxqcsSu_8Xk-bIIBYkjsm_nYr4kk7MtkORR_-L-xU5OPGH2iGPQRgRx5lVfGvKUWU9h4f2v4w7eEcKU4Yc6g4RtVvy6FK9YqyT257w_klmoZFbIY70riBd7UAO9OuK9Plln702-FIKaHHcnvyRW5yskV9_dqei_SIb3r7oVdpyQoY2F4Gy6Aj4XDoE1sl2Z2Qw34pftoxB3qTxP0vCaRCHRoSZ73eUXTPF-QuWHWuc5UdQYUisbfMQn_C14lxdT5mHAXZAoiOcQBhniahvUSpIV2jHARqk05cj0UQuLiRBvj16e1Mcuyx0ASGPqd9X99pmZU5RB7GmjtH1hFjpqUsFfAXmoHuFsNuq1FV3Zz4qO2u-AMT7F1ol6__PZ3d1ROQmz9_7s9od_yO-_LCnQT-hasrN7okNjqiXB2vDy-GrmOKevArvOnBwS3BGKl50jdSr9pNR8a-0JAzcAYorvYQYTwYnRe6h0jmjvIMgI5iiYp8PqKky1u0vsu2b1_v3f4OfysgSzDqwyfvdelQwtBRyXzWMa6zVY1jIQ3uaMdHnDZMzVodf98IZXn2TOmccO8PZRGsOJUiRAUo-ppkoOy2iHGBsGYfiHYwg1Cn0k73_mjn8QCAhd56PzWkGm_HIUmfUaCmACgcj4KGfICrMMT0bClRAdKdMru0RgYxLfgQu80bd99K9KftgUh90tK3Kgygpyqf-SD4YYeY4RGEqUiRjzaI5Ey3COR7jk0OUxpT64HqTJEM80l3WnC8t9Ts3Doz_6RMybqR0HIMoOHGa3DYPYOXZRc9xVviNUdZt6rz-lKmGgjwkCfSgSFHvqYIVvUovQaAAsz3QZhSqsu0WPeNWWH0yeBqB4MZgRBbwttbj7tuTubPsH7bsqSDT0btkr_1KM1uIMQ0YvFFkLad5cr-23YYZiS6nqCTRpNJqvLmonvIeck1r3yCWopyim-25gN-Ck42U3a2S08W3vco2dU1JYYbNK1onUrUfETHfwQpoZJWYSNomQlSjEei4qWhj9IYnrnrD-kJ1WXZgDYvU04I5cQGD6B3pT_AM57vNeOyYRTfhs9x_5t6wxRBPDYclOfZY-Gxa2gr4lfV4xX3-n8zi2KnkDTOENMcFIUahbm4SWU4qqVoft-UAhyOZabQ6Qvp8qwyITDmrnyHmUehnViKSAEJ_iRkpZY3vZB4NkfSnDGEcj6g8iEGp5ELGX7frCwKKbS3Pd0BCfLgqq4ycgzztL4d-VOZxwToaEvbq4_jq85MERfGVBxPhxK_QUmc5Rt-wAkABmVrhi3eCvvmW1W5_FY4bGMRjXrK0dawvKK_gkLEe-Mw1JzM2oyA5-UmBGhMAOCjRiTFG6L7earIZycuPdJrFdUk9_JP6WOEMenYioy6INNzrklmqYzzeeQuDEhS8Gu8LLNkMJ8n1J-enqT6ZUgb0bZFu5mQWpxvcw3oeSuhmUhEOwkiCtEdujoJA8oR0-ZjqCbd5Foj3PYcoa-2cW4HZYVkirNj0zy3NHX6sCHMVYPAwePq-PS86DeVoVacsMAeHMn9AVbZOexRs7z1uOadZ2mE0LFzrtP0pzLc-UZIdFhBy77fh1mSpKpkPDna3ysz0VJABpOJ2_2AvM3Sl4g6RjxIwJzmYhtfe4dF_LIdbVnVJxrturKp6GcOht-KboJzzx8ntWfowUqWmm45OQO84q4Qnx1KZwFHdspL0FGipYjuCp-EjAabmLnRtGAw1OQRGMdMB6XHzETtyxDNyw4KB-2-3WKfns2SBQjR4PxtbyGO81rBt8h1b8oGnnysl55EIwG1ZdeCFAwFGdQ4fphxCsFWICfHMhws6b00PyYjVt7IySJmcpI8sbozm5zLMEh0-qL60pJf07-_a7Q1duScA46XzYMeyJd1CWYkFlp-5cM1OzzcgMgY3gMvZUUUdMeFrexoZxrggzlDJvRY88DOFIFtlgG0suIRAGI5cD2aW2bCcq4PhYs54xTPcR4ZAiSuspHoZ8UMp04lIM7n18whNjnyAYeBZRxInEAy7jb3XQwaxVOmuPdJBlrBM5tKCcZyuJ0llDvbc6STExVr1XOSSj7YSLTrstfxkT1waXOBMBknv1LgH3LYJ5YAzKe8KqQO5VSt3IaKTJjkrpk2urbAxA5FWWT_d2q7YM5QK1qTWZbHuiw6dmyvlfG-UNapFqriKUhWWVdaWAfOEWmT4vGPxwiwtqvANNBt5rx0I-LnIDnlg17184KtTNgmkXE1GDtRWYWBk0SNMwmz_kBdzxy0Zqf4fcMNJy0kGGZHxAotwdp9V7ipvDNc7khrHUIgdP-JGgeL1Wc8tcx0AGtPFP_WQtoiT1J_H_KHPrxQ7RMqj-F9m4zi7-wPhkhNc2Xs_xsyxmr9TdNBJVRpghpam_Ql4uCaJ-Zaldz7XpxctTl6JWeh_HzOwwxp2Lr4vGzqSyM8RLL9dOD5aq4nXxLGa_jYA-Ty4Z3C9NcugS2IKbs73g8OqtLNQOt-WycFIsugWCBBpB8PdH2otaM_ZNqwM7mCFakTkG8z_UaHoJZA3EMo8h4pO_7uu0PrVdH9eb-yLYJk-PozQj2qTU5UNmneLuZ6k7-wb0SucOdfqjXwKXKMBbLQ8VovBjbGXUxGn7Z_dMBKDyIpfJI4BuMGDw_aRTrz0EXQHOKD5i78PmEKt3z3DIA8b2iTGVNVi_0-yB54ZLX0nzCCHkkGUo8Pww9-oCDTOdIhP7SZes2nH8oYfGJmzxRhtylTrmzG5Q4OU4BGIvigPq2fNbioNqIa7VtJLTgT3TTfDAistthZRtoXWpp_uUtdZvsOElj3_k8PXfdGE4REopY0aO9QsM7EljUjmxdvPAlS286hXh_dvZHBTh7IIP4IPewjCZEUwDVhed2g2IYQOqavLD4IA7Av_KckM2EQ0GKcgwxnocy4xQ-1tpXiPxDfDNBGsWG6FI4y41SfLH5FYBx_d1H2HMbjoclnJo8msV1CW3QfeFRRXwn_ygA6IaIo21rEIBzzHobqvcPMnojoJTlphxN7EkmDyXKx4MBcbzOus0JzhgwI_FVhJ1GJgj3wQ7elGQ50ynRh1l15yqaz6YjhueGd_YKKheVDwKPQBTpJjkGRbLM48MiLSzyQWgzLtZsOdFf6qnnpNlJS-Hcstx282WlF4YXFAt78vhamEmNgsmhi5wu9kx4U6z7QKFLl-8nyAFXp2oLa-ifUGgfJ4dxnjOCLFY3h6ZhTYiunODy37uP3RP7WTs55DSEdmHtFvQ69QGbuLvnIrRDaDHt0fTk2KdHdP5mLXSna0N3_wl-fv8I5aNlZWR-Gs3CiI1WhcFbIbW4qP4vheaCkE08sHa1BahPLRQmhvYpJqiahFqq6l5t7UoiuJ8xBOub6mCWU3hME6mTTE49Ds6WnsQYEnNYL3DhzUEGtyRpmoSkHcI-sYNiMdDz-ioiZuy9FGSWkHnCFNFYJkcswA4GQII1uvc5EWp9twFqweQGAdY7qvJYRpgJixJNqd8OsPwR9q_iBEa2s5rkTgm7Sll39j7KaBzpbglVK4gxXVq0qM-2GYV0Re3uxe6-AZ7mfKfi-LWwFBxhZ3FKmEMcS1pFKINjeRY6NTMHWtbX4XVOiQWhVjOeF3tKnXv55offtoucM39zFZBSJCYwzovGGqkugGKFr0Eb1jfvjaf2_wnJJnsRI_6Dj4pYTOhJ3aGmcQ8YAD7rtm7qN4w53xXR54zbLeZhilg3MNUvlbWf01BqH4pXiLf72C6qFvy3lVGOubbiXv1STTYNRTCRMpybJOeQNzGMRVfq-m0WiX6CcsdrUXJp_9NT1SukgLDEfR0lWc9MK2UOT_XZ5Q71S3dXRNM17R_7E5RKxEG8BnYLqwE12G_3vmC_lNRMUZqBTF7VDcUyWBH3hzMH0T2G7lMamN1XbLadgfLkvIzb0ZZ2Mw97zg_ThtCG7S5_oIk-ShVcVmygKP_VSbuQIJD_Oa6EgMUEQZQPkKsXuUedlM-NDeO1AtoeEFA54ELP6VoAXOlmcuwrIZhot0ohFYxiiI04VdhOVBKZTTOFajCKHR97hkbGOCWAeo2x9QWzkjoc_DOKmEseY14Gys4LZRsINjBRglAQeui1ZAVoAJ1dJUvng6RbnJbuy6yZYw9QdlQRIHc6V82j-yoq0pOOhxhtnM6_BP2tgQeBkbMWzqGPFBHfuTQnW5pn-rJb4RylmB8Br_IMzfDcwRqo1KpXfnytgsFZUQLhGaDZgR4EIRoV53j9JyslRGhYxM5Cqnd9MIQlz6cxWUF-tJ3U3RGSYM61hTWjZI4Y6v6mGmgRmnXLE8ecHaNmLIQH8r-B9DMxR4dtwtJjSeZHeCnHQoTAYCECR8Ee4rmyEm5ys22kkHEyUU6OcKiatmrLUHmVxVmhwIEG4XCDlLi-WB6pNNtGHfwMcAuoFhgAAIHHC5SJfyWwmEunm0uYXG9djcRQc2ZpKOTZF-ZaAwd55GY-Yev7GS5aIOLRX-eaO_kp_Ipqmb8_GL36oQyompg_SynhzM3Va5lvPWBHfkGHqkJVgce8yDN0V8fBBovLullZApKwwE9iZ2R8CQ2qJe6GV4TV3yFdYUOnwbvsodUgwpzSj7cs-uQG26hNL22WIVt4drEhuZVgr1fyZtHuyr0UhjVf1DCTO5Bgwa5IXK2THX7jvYO4ngrVR2xLabfGKOwgfy5bOPgcmKGaSSvVRls2fJVq1y_Ud0wHOe3wIxMUgpneV7En78aVDMacRKZI_rCoQP2WzVU_MC0DMG-0FgQbVFIpWo5KQzAVn4N2hv1rGijw02Ddvj8yjp3ZSjyGxeKnnkIvEvx0QcFtp9f8FeIz9Kv1R7QUwbUI9gOOkv5thmKPUaN6LPxdmOVKd1ffUTEZP-houIuLujdGX3Vv-vxx9yXjGvVrdvFZoFKz9apeVlpYv_nNGEGxTA7drvlLfmyxLbIfeF6S8WMa2PolM6s_AvAZRFAs2kvMqbvw2mtf_YAnEsMsoArNK7M-p72UhyLngDXitloqgm_-38Zx0DEXxfU0KQP0Sc2T9XUkaU7_EHf-c_XFuK0eLK8U24DQMbcImljp00zoMGA6lEFxTssy5yuoAslApnFHsofbJ533lrTB3z5X5PVhuE_4KRLd5D8W-PyvcgcIlvQ_xfGq0-VFg6YKsgmNby8iIci793v56HNSsP5eIfColB1w2Ju-oneHXQqsRBAKFoH26o18eiDV_15tM8vVS_ZGW4AtcV-YtgBUjHTaut3s9RWe-5mZiUiuF0NjAs1wS7lQ4jlGDvRCTumN3U23pTnUSDxVysVJv8F39lA638GvUaz9zcautj6lnmj3TUGJTA8l_syo5ta-3zjhTKSX2MJNFQ4mzfWxm8lKcfIy1ACwySEHdFKvqQO7c3l41eyjWvXT7h4GGeTcOOhKZ0_LMzXxpOCkfQkCRI1TZxJ2BOZuFhxPmULfXHtZbPFREjHvJftIoFU_D8N32ZBlWqN3fbXkDAU1oqL579-My_GIQ4Gh8HsrOteOlWw-IETI8cM0GM4BKz83L0iYrRk6JdaMI4WXR1gEwPEOIKG2f9Na0Z4Lm2xVbaGcifVwQs3t5f6mJiNtuwRKFVRdlU-EQ36UobTAyFWtdS11mLrphShbyy7-Ej3kdlW8pIaiGCN6k6rsiQjfL9JgCg7PgC-BfcBtv12h9GdqT8y16YBEEVcdrQNYMg6r0DvLwsYrHfcgAHSwgLITSqUc4lAGHqD7dwKKWguuECdWHZQ51ar-0uGukn2duUkmiwV-AoY0a6yzyMU8ANjwZdAXdOSUWjK4b33R-dXatgxDZvkp_zYBwfYCAbyY-Xzb8fBo4H7ctkKABuIa2EdR1yBvsZRaPadggMRZ7j6twpD8PZrXbCYI6KRJ0FsvpxIEXjPnlnSgtA6JKbzyyv8Rz5Q9L9L2EZWRmmcpvmJhLj-G-dAN9ZUlvXavJzSocRBG85jPKfXFzK6sjqIw0tiK-ccLiwYveEEzl7OTXD0VnqPZZqW1BgrJS9esoT_WZQeTOgH20mrJeWFGzNDuRnKJ3BcqMnOoq9MBxuqnRobNEIHm430rSulyWRF15ceFG7r6RkXOl_1glF1jdiqBsGLZTgBa30RZOV5hzWU9kZtu2JC9Sj9LWkxQdX6aTGhSKeEzZAfNn3AIpDi7OxBZRg4x77GdgApJxNH9F85DkNBFqyhDrQfC0850JK4qtwjRCfZWpATwGtT_5gVAvbHt1CetS68sUkGwd-sAjwruoFuCSXAsCGpqs9l_Enm401p3ramaMyWtxoPnc9cx6QJMCu4hfO2c3NeyfVUYvWndDY3fpkhn8M_4wVVYQtm6zAr5LcYa9IwxhXiwgqD9tPM69HwqDbUv0o3e054O2NSFXRkpwCb-kdQKh-UbCvJ_tOdoieHP_k0xt9cbTNnLcQ0heop2owAN61ZIIl4cYbvGP1cA-i2tUYD4Opyb0pgiL__4YRQQNK6Z-2UurBqdqG9peatTq8dgm_k1mFecHd7HSU1DPiwS_naJRVx3d9wzlfaLJEu2Mu6ASOAsRnGK2O7moWDEDH7I1F-_xhifvl0JOIErzDfLxdUgt9zY3OblWm1ZP9IPAa5FDUSBS0Pl8IWv7tCwQ6CntoNXCfoisIjhbIomZhgRHEJgUnFLynWPsPYlXg0MqOOP16LlO6kZFcUGkBmyvNQf-1JuSaowt8NlRCMBVE5oLWYHsVBQBdf9wW3yhtbHtthVCdWIDyFspUw3CmRKKf3ynXs9VffDaQ3V4V2xySANRIcdoBi2ILrz2UP5kQaKS3A8D9xq_PFCQr9l4gkUD8WKx_HOuGh1eeMaF8fkMhA1mln4tfylQf3sngiXNhIz2V1Q2FnnHWwJ2WpRLMLaPSKjRNnzITfxCWOmoJtzLvxffesNesYQwOnLiXm4-T4dY-cD4CA8hYu72YuZgTlzA5Nms4MbR8buNuAHIAJLZDifQBcmkZEiewxr9qiAxvhx-57jmRAlko6evRgHcWq8RN4jfB7f8vZ9MWBf0DJccEHKr7syrO4Am8ClmG3uK1rJFNETMPJO9R98cUm4JR__5zOUKI_k0cREndVklUTdsqxcApJttRIgRFi-ycfNm5tI2DcWZ8ubi5E9vfnZ1JSFAeiv87xwLc7MUt0tONFxP70sTl_q2Qn-3vivTBmxifYwGb5L1Xq3DeqdkahRk6djuXQGJaNCIbwnRI-pSm6QD8QA2ua30gY4MHJuwyTiiNBQInrZP1SRN1It3b06C3QcaWCO3LPRq0hWFO700IHSc8vYgIWgmHYoePaNtIdYZefRMQDp_6cvdjkgrQkuaHx2ed1La9kzyWZvhxS4pwfw_uD4stEkXBNJl1_OqVOKuTGusbAExt9mKH9CP7At-ffQIirvleAyJLbrZ0g5mU1LGlSv2CbyHA83ULpuCoWOWBFtl_ESX0vWminavorVSN924sXV7971d4_GGgkNfpFvG8NuQWePrL0-gZSyiEQ4eP9zBJXws2gdnUFn0cnb-akozYAz3f4z3HLqLz_-1zCjhuSNIcFukxH6jq6Q3LsWHpF7wZenZxznux0KAW3_-1TkoNXqs6GtQOmHy_EpaZrVOA61XpS_FInMEjWrqcgnCYPG9BtLlCfAqYk6dA_tvTqe1kRDXqi3Jhz1xWfQS9M0m5I4oiSvW1kauu6U7OZmPifMG02NdGEBt7AAe6JfWM1gnny1vAVFfI8xZAVKMI8IpdCfOgTVmbH-X_u_e5gaduWJkmWkhFS2_YveN-x7UpkPkjtg59rBAkaesCjqoscCnkMkszg0fofXKVX7GJwNpLLfITCBgcdYAtL9tgddQg9uZ7IF0EGk2vmX7ENT2vdIFRuD8OFrYu7kld4Gk26_EozdfW-QWpc17zRautOpzwdnwxXunrGQEmB6rVMMXdGY3uF781jlPhaBcM-zXJ3CyX4yUWiyuLs_DqCSJd8z71qs6j4IQO9Qx-xAbCnWHy_vUNb63aH27huJoOFGyjTmUJr8Yr5gNcxvc2e2RLjGo36MqRde7tji2M6NOeGaKEVl9CrAzJbW_0hYnnvdMtGrn1eFC5BojyWyat8xOeXG0dM2T0dB0npzTe41GFi2JrFhr3GqsBmrQ4ierJ2KBq3AMnFhOyoxUvOwn9rjTUYLuz_whJc-Jc6GgLj3pC4vfmqIP04mEMNVHKFcUU1k7M74a9MLbgzzO59L0fDGcIz6c4aAHVaHb7sRK1niLtRJk1x_UpZDQ-dkFqfIz0FMfusj_4MlQPJTaIjmWd8BF0Amew_LXg3LDAyYFlRGHZYYeET-AfXqk6dStoH_AxA-1xF4jrw0VCWDzvW_sEW6PSe1Qm3Mh8ynnbmPxXBhToO8qCegfXRWEjit6i1F0_72royE4AnAO0MlBQ7E_X3_NC44Xma_3vwfwMzWG6_OfUvt_mwMaDDwtO0LLmQbWoJGmjuTiCVd-4s1trN3QWClDlkc9NPOGsmVHlZMsn-4WRavSUMGrNHMrz28vgNzAHqtWtdteFZ8DAnxl7Fwa6erJtBY8neSxVDCvc88lG6hsB4eo37n3osbHhL0J0L9MC1ktnTZ-EO9Ak-96aGBFGswlRxc9eMOlvf2J-dRLSzy7TF3_Sxk3n8Zj_juU_6rtBP1t6CZvtKldJXAv0m_VRUWB7fx9yewjHBJ62wf721TsdlPDUSif12G7zKGnYCU8eGiQxTM1ANDGQz9YCMl3E8SLdIJXXrMkM23TPpvg6HWzQerSsU7oUSAh7rYvnU6TxylNXoHEqqu0u9w9ib3-IUcgdGEzXdj-HOf9y9xouYEEnMfPJ23rTZSQkOVvEx_IzLtGCCh6-1JQPoaGiCtvxtvvRS4LNs6rMvXdDY8uE3iFbS6d9VwVCCcd-nYZbETHyAoS93Gr1hYKRVfQQuHm5AcKj03uZAO-nJ0ZZB_kftJyoS6MndZHTLK0cgWpjXGTvkMxuYAFfUlhI3yqEB7MUDk1iXN0j8y3ZcbWQD36IjAPPGkLDDX_hpEN7UTDXkeWMjKpRbmnBsjS-_1lSRAgHIVvvEupLEnS7PvLgSF8qqliEA_lJG3_ZbgYjHBvdnYc_2sz54XuMJXtONopZJ0NLnm7uRbcc8H5TbWT8gLcyudVeTto1LxLJTjE27KL6bogmSBtl3ghK1IEghTLIfoOIabcMPEU4Er9qpl5E8Wt86Al-dY-SnHspNHkjGDjJeRTgRnxHOpA61y3MIWcwziabplDzaPcG3mOwoMANArkdrn3LlJA-Ew6g59wGhZA-_sLxMcy9Dm73ki01lldLs4IjQR8lfu-6CFx_-HiRBC4s8Deu1wBu7Poa36vIFpSCynboqPQwNQPQ6-WGrkz6y7VdlYFUv8nGGbY5pFXPlbgYxtw_-HIUS79fot1P8zjT1UAKdC1DsAfROzkbUmImRYDa2o6xYqFcUOhiMnQ2zH_jS-a0mKlm_GnQ7OwG2p1SzK9b5BlRMrizOfagFZSnLcJ01o90q3EicAaKcFfGpYFvWug50pPIZNrSZSWpz0MiimrxVIHi6UE3XEiE49uKmUhG3jeRDX8kQD50P8q8cSFxdGEeyzB8GTUEIYfgwvsAdxtkVXCsHf0hPfMPuSi6nVxR3QuhLuBFlhffQWUPSAEc4X9QdWMcGzrawyMUmVOuHGZVxfDoJpS14OQHPC-bEruye6TwlBux2kjYbPUy48Bnq2hqp_AbmVrDoXgLe7-g2rMd_WRW1Lu2hjSOfxy1HG0Winz3nAAAS4YT1vMfHNAjshU9OjC--cUxJH6sTyci46jNYqC7UwkW2ReV1WReTlQsElH3DvjtehgFkCgRnDsB632nd18dt5oecPdB0ZtSOLsEJAgpO-gJ6Z0upuCdzuQ0QtyozJg2fw1rVMa3AJeIkot8KTvw0xYriDRZIHGzss_R7UulsvPUpXhOmxC7MG0jOeKrNJQwQKyvODEVyDv1qBfZTEIrU48bElIIXU-HbPDm3FG1MENx0ik3e01i6VGr7nOHx3qKCw-qpCVPLX04xb73Oy44oRMjXeByxxA3rpVr1V7OrBJQZ3Jw1YlFcMeh476RnLp1j5cHf5BsmNTk8reyCs_k5WfpBEyW2QeJLhwX8rFTJxTj754T69zeyk-yJQYbM9_9zmcrgPFSbUkfz92dbi1XB4vVpKLwQ7Ir_EchAyykIN5Wqu3pT4Z5TG9PmlKXdyPfc5FqE9pE-JJzucXLEvpb6TlY8WXw4ZSif1a9baNlXlmOz3e_6W02Th0_Kgkh7JymK1OYNNlebdITK66MTsFEO_uvbRxEKIzQFi51t-jKv9W7oysR3aeHdFTNh_uSIVRn293pUa2AomQb9TP2HqDlbOdGZ1N4F5AvpoWuoXovVqKirscko1ht1f8ADX25QyCbN4KnNnx2sDlGh04hpi8N_ZljA8LKkDaaXcun2EkjPKa3Kn_2Y4LVPFGi_m5uDDQYBjxIsN6QmyxyR3tn4NhqY0hybro041gA7MV-9x5H0OU2C-kfz_hXD_9XyL5vUOfrotdD_bX6_qYry8XRSQ2S5oG2apX-xHwCjIxi5c6RMfoLCQEj32AUay5Nwx0D9kolAo_UYF9Oclh3zcaYwEohGcfi2depIOzEkIFb0ItifOOPRtE4bAaj9TTqGtMK5OR23v8JSKGaIPu7WSib9ertnFUfoKDn0x4qXXi94k_CowXMfKPPWU-OSWoP7wEtLaTq0TPlQfKWDhW8EBMsiFlEQZeG3Rz-KHP-6-3-vGDCWQ4XtuQC8xsHII0IJN8aE3GmBvA9eGAWJ7_L8yO_X1236_t0qSmv--1AS43jI8Fbu7p7ypuT1VGpO0U0dGcDS2E4kWHtL9ou3drssrI4SkgB2-oQZ_U59yite7FW692VZi7xlpfudEnOlCsxwww6wymaj00jhHFTo79atSkBkozCM0U_avoaj6LTXBoG10Hbd1y9W-NUwZXLGXd5sUyfJn9v5rfjBGNa1Qn0QljBDm1N-AQVgROMIWC0eRaCRrIk-xeKJL1xhK2wsgVXM5WmwM1bR2D8k_nWtzt15n6i9C77rnkKD1j0DwcfdOS7CoqaLQ3bmr6BZLxp_SEOZH9_K4ZiIqMGwhgEx7tWBiH2Kw2KYSWka12vNkO1jqQ2aU7ifUjIeAqayphzuwJQY1rwoUYbINl-Pe9lryUhtyLb7vgvXMa-Pop9RjfRBSY_qb-A9G05UjoxkiylREGp5BR7wp_JcDSsM9sbBeadmoJgtj_BzRRhnoDXCDByt-95c7T4mwhfB9m61eKJUrweI62CdU5S9RnUXFipgdr1npS7JlLmuV-1RRAX-DaY8ytpN-1jmh0V_5Xw7E-SVgNp_AnWpCyuVngT2KBY0SBXtkG6yPCM7UAXEpglGNpn2465m3dYptSHjBDS6gluUoBKpdzoepWWNtZngaPhTFnbLQcqFhBqnaEJjuoPowoXywN3cPmW8oTbH9rKqsoDYM2TYCw2b99T5KGjPux4Ort-aBXxGE0vNfgZqxhq3ylKF_0l63yW60KRsJylsZlPR-QJj604aAO-Qw17rH_17mstNH875UNfsv34yJZOZzfdpe2HA2ddEmJOf4yfHTXysiE8izrMUflUk60sERFhF9J5RqsWbma-jUz-yZ2vViuaLJi1noGwIIsn4Ab8fOC_ZJMcOv4juvsqLxvCL2Hnv9QN8jeXSw7Qu3in91h9So-CPksJhOZcdZdOOeaWMPA0ljeSXRv20GAl3pKgSYIabIcqvLLkUMH4ftm9HNlr69QTYoLHUW0UAn7iJtGSVIT9npMSN1ksczSJObRJiSibBzVz-aKvIprDogTRTMPnYD7pXUh5c_KpsW_jVP_Otvp4gL0BDXMDwoBnl4Gj2ISNqBMHACvEPdpRhAVrk3fxX40tal7dxaz12MQ4IAJD1CMUrOGEzmy4Xosr8gr0urlgAnd5ThCPXv0X0OZ4aqKx1ifb-pOizyJE_qMaF6kA7U4-JECOtwWV0Wa0If8DF2JCnFoq2fAuFAeLw335J0qC8x-ZvZka4FLitAJbH9Lr84FjK0-g5xZH3o7sSOXLWUYDoNsruggpaChr9thLlqR4qO3uhgsJjrF3zFMnsGPK5metVML7c0LJLz6lWW-JaedovXFiOL0hVsXLc1SZ7D-6Tjp_uO098j8KBrZRs2ebgX-dKPMuS1AOJSwlupLizsJ3inZicMIs0wf_0UFkkGe_c0SM7Ui1Xk5FeV4JH80McgWJPzhBZfP_7zQ2VQGVM7M0D8544zHqd51KudWBW6BPZEoM5RnhsPl2Q8_Qj-QmVpzW5J7bE1L1JQRc9chnYPDTWuVr5lp1TleINc7aHLngIEKRjwySMrq_j_dDw3L2MZI8DjWnsuMDWuB3PETEuQAWwbip8dvymH74GdqZUK_pnBSfntYL9BUMoOBHiT5kwuzlOdlxKimqcl74Ad82fD7816XUytakpNhaawn3CeApYpj4hQ7c4zShS_4mcYz4sGdebkewTUVFdCoznOYYcjTCK85j4MSW-_nceEzLJEttmU5Fzzg7fdCG1qd8Epbqqjxu5au_z9-9-tAPJFLb2TMsvTjRcdtIaMNq4obiisR7tCx8Cyi6wlQUU9njnOiot23VM9dOH31xOysZQYjwYhe2w48bwbLzHEOXWL5HgPpxzeY9O_KIk1qLM_pqnUXMtlAx3eLguBQBfwf6MYVdWyQy-JQ9WSvKHu1PWtxmWy5a1e6sFVhFN7NVJnfspMmADxGK5BA48F8IFKchi9N1PumWD2NHQtm5zLOGfj_2W84xDIbF8xlzePHQvZvCMc9-LzICKpm_k2oAOKeW7PK3e8LH3qTh4NmdogD2HtmqLWq5cUfOJHaw_DYce1WCRM_RHwwwGzGbK9rT8qEtxK6Tc9opUHoDUMvcXSRFJrer2NdxBUDznkPjzEdiK2cygo1aeBohUzHjCwut3wltbB9feE_jui5EJCfYujDF74jH_aLTiMPfn2txlQR_ZWkXPHFNrzjXFCMF4UUBfR4AKHVyabxWy6ID8hn_2FcBh1HmM0mWnJT060xfp4f01Xlnbs9tmYwaQdExVJlnHf7yNP10xtPjlWll1UDAbWvAn_8Tit9MKd_gjLBoJTq8bNtyoLXb_ey5T2FXhRiYtExxMf_SChp_wxotmp_HzuotQu9R8qMpyosiTm1ANyrMyRFQ1OD9MnVT9Pj2MCprik2pjIRDRN5UkENx9fssAi1dKZ-DKliJHZMDpDrF9v2WRa2mwoVWekKDqasVcP_ouscRZn6hleU1f1OPiHV7_f_HYZyhslaN6JD4BE30lTP_i2ZGna3888pKqDkJ81TIWFsYZkSbRIM66Y_LaTTVkjGx0w4ZsebY_MW6o_0ngtVt-rsV-4Mi78enic25Vf8aCq35TT1eM_Hh_ku6x0urhs5YkX_2iX5eEzwMmqE-QxE5oWrTzb8AOnM1YDhOvwjD8C8dIVmKQbe2DzFlWCWXLUShAdt5mCeKZtnmG14YaMIichaVX3jPoBppnfd0jjHplmHtbKup_TUT1GRUpXR5hqclOipbr7KSLVXG-s8mzOLm0DA_5U_wnlYrV_P2KRFcJ4DTdv3vl3TifO4QS8KjFjgY-DErXzCurY7O1O8XqiwskeyuSnu4lkrZy9nzkHD9_KXTDwf2-cbGtbERtESUd2OxcfjrlVQ3ZIRrBMIvbYrgrE-eITzeSIfLOpHjdQeWBLffAOmd86w-AADPoSn5ZqxyvXOHK6yuTr95fASF49u99NeRfqfqkblrx3KncGW5VA12aFT5SfWKAAnrJeEyOPJ-CTGNNEwHFzXGNvw7YA60XkV7poK3u4_qVMpiLgepWvlFy6WZUYtLUr-nZ48JBBWdpMR_fkfBxfCQm5ipCHmDC0XJzXdeK1W2KHrX30xU2cdHIqu1_w6Q-GJo_tpLYDLLctDi29mkuWHvkOWyYbFNNqKxnZnp558jSl7Pido6aMYhmbLwvy4yJt4rhLyIiPjnzFJCwwfM1stMuilDTNoHOiarsx_UP0zK-gpDUCI6gt5QrHBwVxatDnxCHjFrFCEWfFkhuYobP_lonXtJn5Z_94yNCB3BYSoTxw8Af8eYc3X78GJ8RwRcH-k4wu2D5NWt_e9XFEwYIm179hTViavPd5eQo3TSg_yXSCjXrLWuU0Efo2JW5po_0Eot1wgvHQcN-ct4geVFhLU-sSCebLvwOsTSBZJG_s8vlE_96rV30nVwoQwNAr8XrkZ8T2Pj6Up40IVoY8OESPz7-Vr3RbQqs3R-giSAFpOGaBG_32JcGMi3llzGhyI-EPUbhAFIrD1zSmrurQlBI9zohSalimklNOTa2J0lnOqoS_WnBKXrUY42uTBQAhrXqRoiwe7tCGrYYyAGWrFHpFzqS2miABfJWOt6KS_InnaLtkWdQ21gTO_ndoJufMJ3eRWswN6kduGiFaKNGIgw762MGwHrCjQhtQbqjuMIQLBnbMeZ1Noz7gJob01IqWEYE_q-0rZ0WXQtJXDG3B5mZMr44oDfvdSXjAyclDAlKKZwexjZe-n-SXOD5Qk70zl8CsjvnJTtu7xbE5KvC9X41h2TzLdedwmVywC8ErKgGKrrY0bFwCvQj70rvbuv6QigyE8K5r17cKLxgmrYOeHMnrFvct84tTzHU3B3Wsh5d2QH0_pChdEmn9_SqcNtFQzhj6J6VXwkhrBPDF6dcDTHIgAFDUqGlUgGHsJBZUbbgOOw--vA6fyCnodX-5XwihkTTfDQASXEOUA4ullaUpMTH_iejuOyTxm1av5XIpby53wxM84RR7ccmcKblzRoOQBMH7Cvom0VMkQptCIUAud-5wsIwJGhwzi8PPWtkQ10QB6EoYvPdoP_8_lH5mGjY20qe52jOEZnRzGeP8-hBxk60nOvVRBMAi828TxWMr_0ZxPU-0bFtUG3sU3Wb4tQwVyjweKFxRZ2kLofuseSZpwdej6fW1Je26wbfZ7I2beK7KmLGzF1g4jVXPcQ9gi6xn8l1C0ax7adgXFtUR7IlB93Zz15Wss8v_1mkP7fVJzvITtRaT5Aj3b_761lPFLou06fxNxfNJa1JQTmRALeC-WzyhGzBdp_vqm9G_pGkaVgC-cuF0psJtptalsZwb81lmmB0Dg0n0N5pHgGLKCtDgOv-axLrpdb4QiCVzJt5iygb7x83DrL04e5cDAtt2N2uMDbcqarHq_t0mhXmb_6IZZMypVFpOxmk-bJUbvI0U_aQMc9WvU3M2xOfyrzKwCSCCBErCxplhC0WpKV-ahQCG1cVnED3mu8-CXiEDaouzVEyU-v3LY70MhIeZFxmzr6RhKgAW7KGflGf-ZPYC6-CfU5Zo_VoA6nNLif3mLqT7e-TzFCQxLlvFgPOjI66BqU3tant1PvDhwRFQ19IB_f0-yPWivaOYRN72iPvAHIwd4Bua05mR58A6uSlKwaU1LAYuRR_joOg_SompfG3SaxD5WithPi1f-7UhGIsZfRuGqF5rZJTNQEvGP8Qg36NyKzHmkjWP6P21cq4dwvciMcdDf1KeXQsExfSZzQi_j5n3AQEcuQ6d4-CcUfuKhTjOG2TxrIQs-F4iUE9PxffMgjreQczRmHX_tFjphqjhICXFzrTCpMaYGFWSJkwBesXK_njlXP6P3awO4THGU4h_xGFgWMvzB-bq26r5bYpbIAC2QS9DsouQQK1y9vFbSqlxrWRH0qda7dNoFCykJReyVXGgwV3qi_4aRMemh6YuuuSDa2djx4EMAVE9RErXSB-NSFO9EIhZvVuX_F69N9dtJKF1uhJ-NfhrFMlPgO2nLEJtSiRzDBC5ewbDcQ6xqvn-nkhkJM9SS1f572eWkC11A7oMrtBU1I3kYcA7MrE2rI1ZIB3G1hIhi4kDFG71jZEVs-4gzcDZPFgsUFtsDYrPxhb8bDYk7MnEbLLsGQshXIo6zmjDraalwX1fFWBWfQQxjVCw9CAUcRwD46AxjCMWaqnaVzdeZt9Oi8eNRp4UqyTepS7tODEGv2h60OPWi6YwIayhFXfFuLVqzOPJYGYs_JDMp7tHq8xhyB8e1nURVfCzsKddi3OfK9ei3YsjPITr8u-XOK37_BmJBjvUsp3eoZr3bXOgAZopR7vfTeekMB_lMnKCB1c45lR1GyJum-3XZn8HREav1nAqbQDF6M2jz50i9CnGlX4t4v2wYrmlBzm59O1QaM2mdAg8Gk8lp3rCrmLfKXs5hxV3YH9gmrtCibvn_rqTw25XG-778zxivPTnZ81GUOG8yyS3UYpkpR01O37f6DClqdnQWcNB0NHLN6KRmW2tKktwEhMQ5wu1zr2vmplYZTr6H57-xvLNSXDsBvsKjhV1ZvSokZkivnvKvhoPXwdEEqbKHXF6C9ZUpo7PAn0o6APAyM2p3SCY3LcPX9hmfGRzuRk0E-A-zyPJiedkWMLGJJX_SekzTzAmoq8DOfkAkdrQ-GrIO01V7A4lM6voMhZuhDvcml-jTueZ1DhdZPQFb20j5pldthIeoHl6MiRKElJ7fRlKWg8fkkGqoYULmqqFXXd6ZnSBaIXhlosJJlKZ6UTApkjoZqEbEePnchacGaS5J3c0tckS0Se6_ppuNvqZ-ZjVqDHG2zvWJpTwlVAxulU9oSFdXfdxHeLrO9mJ0lEW58nyhUSSSCt9LL8LZeLrcL1BywL7vrw9LIUqQQjDxynjXriy3xnNS1EqAk86eUXKZQupfkPxOU9hzVj-5OQSb2Q85I4mYu_hKDl-pvlP_reh_1L3uQta5mkhvIX3zY4Ekl0sdvTV-xbkziDF33P1rg4Ihmu1PZ2cbS9rRLNC73crF8P7jXivQR4TRYd4L86RQPxP51XdP7s__wootwQnT7LqjxBXRG5HPAkH5KgUzIff91YW-QEgT99t9Co9fsx3OgE5L8GUrdcJ3BDZlwEIXDzUX4ZNqmWwnPfLXGcrmd74T_jZgV3a3h3xdrqrzvX3qG7EeiFpXXRT8H7GdcfDQsPjwIhfQermOIWktLIbqG5DX4M3TaYdzzjSvUUIo85iAku7I_j9D-yslJp0vLbCl94qsIsjP6evp5XFV4m5P41Dyo7MRaK78uW7njelk6HXA7Y2JXlMutMjxVljspKlC92LGMJkOZeTZUW9IN0td34eLvIbjw37Chy5hczbr6wNHkFoiPIRzXvixSYI6OcJgOgkJkEBe5IOcKcpyyDnLYwLQa-xYMIZ1h7TqtJVu7ZrmF71XcVKah0EnE_Ey9I9BQy4ZBQnEGRmAHV67LnzfN8rDYfzQYViUsuhCewAjC03Yz4WC4LqDlqhL51cgRhldqLyTM-YsWOyO-Oas8LkM78wyVg4QzfE2haW2lZS6UDDRgTyLUPrjIX9LUtJaRWfkqXkM7qSrmwvkbh89lH9rSi9WR-GY3EcjGptoRq35sXKsAb0bGxfRSV4OlSSCpyn0X57zB76Momk324dY0S-VqY_BG7RJiga5vztpc9Tks3g4EcbWaPMBaWuHV394dSQwxgr9Yl773zIX-UuaudybNB3sg7SqjgPhIVsMtsq7mFLzJY7HcVczCSGcePAd_6v9YlK8N9wcJExeubLboKHg-OAJU7RdjHEdgF1Tqq-0Oxn-v45H5X_RsUJGqVE669yM8elYbLXXA7Um7ArGtP91mJpIHnJBBMEioN598FXsY3bOi5FtbCyPAghIjpE9z_2oMjEJoWpNDoQFNnCetAduGLWY7DJyE7AJJg_wINNlPSbIYADloOwCwl--akGcLcc3ELVLatd1bERQpt_eLKOPjlB7ttQMe4AWn6EXGgmOyw6UgcRf_b_OnQtM0nwTs52qflNAQsexJ8odrWaAVxQUmMXsmB2DRKNPLwUblisZ6uPFTBAGR15N9vYmjx91v-mHsyTRYzPtJy0cN-NOah3MXDLWyHTsuZQuVlbrMHnZ_i5Jbfh_-5xns11XupS2Uw8RJvES89znCPanqS49Il_PB4d5ZjCXc7t4mZPrW13coNaNjcZCQdNrH4ubC_Gyq6N62RCHvmEPcifHZ1QbhUtPT0uhn9i2Et8CJ3h4zjuHoele4yNrOWgAEMominwEpSNRCy_trbgWEpCzxN9kIlHW5Ar6XjbEB2orXBmvGzV3x4SY82S0V11K4koEG2XVdj-sjZl_PsaeARMwTzd0b8H257KoKHlFKvosj57WwAuuB1k83-0lFisW-frIex1LK8FEca3xmvg2_Y3cXGlQorwVnBpNWFv_fyG9WHwf2oHBgppWSIzZ1zrndr2w_qN047FP1GsU-rjU1VrmQ7giWM6mhR_pEmJw0IQkHBbj9us9ywb0I1FN___cNPN8aZyPviZBkwsnVtMOOtea4Ga2OZ7KBYzu_6thERaKuBxNUyOxFuPdbheFHl_Z8HrFJwmmHF2sTDoEg8zg0L_r6DsDLaVfVqBbNBw44_wf0_a6lI2uIrOGoFzk-dq4eSP157MX7xDfXcTZiyA3maF1V7Y8PJMIMZkBkL04I0Hk2_XiDTosYGHZVuNs7tTGjFmh4OamIa3gjxvkYzAGb_ZgqRGGtsoGXpdSfs7HWm2DpbTi3RAT85PaxcnojxMk5ybjJsUHNqVMWbpmBW5MK3S1rGlcOSENY0_Iw6fvLi8Pmv51iKDL0totm8seDNwbNfP2bSbEoDSTT4pqY1-aKS1P-siQJa0m4cEESXkI4gnsmunsq5xSILOz24Y5UkOme4XlnvLtPlOydmrfuST4rXIBGp834LzknUWxdfL6nvsyyZeo4SnaV5nFx4qhhaxFd7J6WVuDysIMciMtKYXQEB83AdaHoe2hgEdcmz9TYXsIbj0CaJpqhFsl_HPdzsSxAZA-50hZpff8xnRgBNH7MMznK5kn7k-5PAdFwKHSAGfJsU9f8XPfRL5P3S7cQrRIGMJN6qeVAilwo7-PDflp1vwOAMmYSAAF94vMkDBDkMsC8XlYhVnT1rulsH2fwV2iYhSqdscX7ucGx1g9op4UCRRkE1gRgmTHg0giV4lStvOvP05swLQFKbik9ghuSUw1ACBFoNqteE_0EcNGtRl0BWzTuzy9avltHscANlAzxDQyoUInOd9j2cmP5zoiQQvq5okthRRP4Q0y5c5X4quXZjnyT3e37PKjN1nfcFFy-h9eWmeNbCHA1mYVRtokJz7oW1GPajG4Rbk9jhpDWoqwZHoe1XEbppHHo0KfFSQFQco64b374-cwl6BJHVN4a_EWtbjupy9oD3TeRfGrrcBm4pIruAFxxvzOg8Lz0fUChNzVeNw83gtGEMC30mYzZzs-RseeHCD7kiYEbsvbns19kDCsuuR_jjTw8lhL_1giIVdXaoZQJUGz2Z2-SGc1hFXsz_yYHzsakGPzfrTFXnLWpSk8tfmyWK64y0UHpQ0R-gPJ7Y49sOlqJMZlKH9eImoQwT-0HHmR1z95EoafvOuHaROZr8hzibfaO5ROeuKBUNMrrZ-T6d3wWbjHN4tbBSImoyRsjwUF4dydK-yobpQAIQRNPyUFoGlcm20tUXrIbg3ajZlDqOdo3iORYS8VxaIMia03xIYqcu_BVYEFtoAPGnprUHyBO14e-0h9ibuzyOIfEWr5sfY0YXh651H_G2mcCpJovFQuuFcqWHZBvRfD5BoIvNd4vi1wjsM96VD4yJ2eF1mVDPVfI5iP1MqOYlAnZ4l2Dxv7IN9sNcwV2FApzjlKS1nvuJAbajomAShagHFGLBZW-8kE4u-anbnUuFnWlHbIA_lgrCpY3sexAGwUYsxaite9gJAnIdJzecbU7RXzDWbhIgLwpowetQrBLn3v2sabpu5ArMrXyt09C7WgjIiJXu78XDtmUUPdCEfh7Bi7gGJjmNz_VCl2QBQzs4QPpEku5L2G3DPjet9npiBgbdEEgvJmxkdZZ_HM-9GpCzByrFUqtGl9Xbj-Y1iy8gjk3uiT9rB0R0d2hq1_U4VFyfobcC06M1r0Vd0wwczDpAdR9U4EPXFI2Fq_m-7WAcTKlkhSCoSOYrLM4tZIpicU3zZroeyS9ZomdEGO76oBXuH-pTvF0liVsp0FGPBTZbhEwjZ99TJtbtYNTveXhCxJLvGy04lafYurA3ChxuIt6jgl_XV2G3qxvAOqcjxueyrMqXFsOPnbXbUASrJLlDNKEt64fLnLNnX5_TUX_4865fnkbG940DwS3_qL4OEHrc5nGfTxJDzFqvAX2uDKBeimI43zwRXlDoycrxnMb8PkikKvPpA__I9iOX63-qEqgfsGuXDxK2rYiP4Te2cdUJNx3kGhehfLWhszWTnMc4bcLp7hLnC7xKUm3LUq1rhiW8UWy4L_-9ztjleZGz20GIkp5vhzDzIUKhUyLe1CHNWpyV6aBXuNRs85D76o8y-wsxwuYNTDWnj4oWhB7CySc2nzOyB8_1cCAzflwCo3J7zo8HrlOYPxTLXcog_njNKWE0-m1ad1dtJaS8uMNOaUrHzZbBBnNxb-bjiKXSei11V6HQQRbUuYOfAGe5FfWGc0Fn8P5EHjT4W05N6h91P73YaElsDJGQqDixxRQRyQD7Fpy4HYGAy3Ybwbsf4sybl7hHcQef0Cp9fRacCjPwEXSZoph9MPAWFAfEcX9konhWwIUrVG2T4F3I0pK-kEvUy2TWYPMpuSqUKmcR1U67H-bgfYr8LlqZsPcdSC5-JTykGC2cxpB_aUp48d8ahTvCKUKoqKg3uVhZ3xxkrzHT0jbfIxlhs-HvX1KbaJ4rLcB5NXRY8v2h7b12nwQ5CwJfq7w2i0JAp02usPA5Y7ZkKjkYsR-R3fQV2APzDpVMApK26Igwv77WvW5XgRD_yA4VdhoAJtGuPH07zzbVaTzyHajAxYq_TGSseIGTH-UlpU4HvljG9L7QDtv8X27rPHPSedlwF4E8dc9G6nQYOsp8JIn3yFC8w8fwzhIeuqqXMdd_7bsFqEYf2ON9VkBoXvw8qLnCDwDIL0NzpS7f2pJoJL8LZfDE75k9LpuHXJzDF8TAxwtSNuYqa80XO4SvYNNgOVGZFekUrY6pwA4Nd14luxFh1yR4X087kUwsRwczyiisd7KJ4T6WzK8b4aLcrcc-OUp7a9f3hVGB9nl5AN9YbXcI5-6xI53zXM2Cg3m8Qk-LDbGKuF_N0eV8HDokzyclmHsbq-dTuQDUJIDtNz7iMwzcvQLg95n7Z8_yTW6voyToAvtyP83d9RBdl2ubYIXjWgSSawsMchpDJN68BltP2UmXdO4rytLzJdCGk3jOj7K12kGaBRlxC27wQpTncwD6tNDbHiBP7GK24xeg1zfszLKgRhiRTvapu25xKG7SBwCRTuxqc7gw23ZW-jRCL57AXpr4q9Mx9FpNt35M677nDvfMKfMcESFJrWvuTEpxNwhtOViVY3hCJUp9EycWGoO-yl2gHZtDP_dMqMfbCDs3uzxW8fptF29hxC36z0kl2s1aUOZPa28Gh2FBNV3_5_UxEdM2b96t1GUvOrjGFzeRqShTywEv5-FKobDhj1PeJvwmAkzjRe0NEOgtxR816ug6cR32AsgmuDOyTF7RihrwfDJABR2tPuSdFslhZJxnWhXMvKnpINjMdo7Lzkh7bHa0auAPXgddiDc8NwZNQlSA3krRV18oWyMDx4Lip4GU07XUsNwO0ZY8JY1LF6yftMaDcWWbFJJv4lmkZQRxA33Un_EFOMIw7ivbEfVLiLtC13GsC_nC7Tqit9cFSR1s4oHGOhgG7ks7NZHJ7Tfc29iHSXonfeXUaCe8R0eJf95wkmGNaowcBGLc9mbb3KtrzzmYRvCDizRY2WCnRimTjyfaeQDbVi28jhtQfFPF581QFWaJiVIGWKlkdDId9W6L7RphDJ1qLdgHPjF2FIAgfEE9q4qwByS9VSgFLgYDmo3kOn9UEAINbfpDxmnrf93dKS0JdBRx9YXhdsrNynxJ13N4aAyuLpNt2zUPjukr_u350Mb0y9qpYvTJL2bHjpHgF-N196NvfbrtQjFywW7-lbrtZ4EDnE_WMIhSW8tsWD01b6yHPJy2FczfeJZXQ3RDnw2Q1mDQOubel63s_CNR6ucZyasgYjOSkDVUwcO1pJ_FpOLI65BjtAQYuMQPyDfjj1-c7dr1x5SfaHjJ35eB1Jfx7IaTDva_l5XvFxJGiNCL6DQhyCkRVxOkKuWiMXvStfF1ORxl-wFJvn1C22uag2lBnbnRvQpgDLM1MEEqdFgSWe1tUrMLZ8BBSIAo3sbz2nEiZnRRhmXKRhOSj3K1cMHwyCA-BU9HISrKGrzSnvb7yqLkN9JK08tpzOoo37ZIgTMhnuCvQl6rjUAmztqiv7z21egXGUkduM6gT4gbpLTKEf8nTNuN7D1M2sPBN110akzuJFT1qlK3GH3Ta3D3Qr2MOrHNzNY-MQYD6tl8v8rH94BmU6_QbkWZy4PTLH7RJWFV2OG6CBaNIVWkLDPMhTMMc6uKTBQGhCNxF-1C4UFj7Hk46Z8MsX5BbwJU3UBUbrkpNHvb260dlhj6j5tTkbSbp0NZgaqHT4i--oqlrGa9GrBBXYhvF134UZtK6WrEfz6wRD30K8pQUvvdlzjYb9FcAOreBOLfJHqyttCu-M06o8nMTljMcDO8WEWN05g95ommEEsYHEICfk8_4t3rl6d0oqIG_vDJ6eLIvDWXMJuW0DszrgYEPkDCY_5SJeUIqduIFYAVRPen-WTYWP2w9VYg_N4R3znjVYb7jU0rvQiHvMdMB3Ha3WQVFpYmZ19aJTUdjONBBp4UfUwX_eHAUXOAjusqXShMTh2m2TaWdVU7tnGfshvT-16eoBaE2j5cPsbBc5dh0r8_zVRQptlzR1GWglQv7LKdNvIa58GWeX53izRLiTrhA27mQwAeOeFAyIbkHoD3fwFJVJLMSSxfJuz9BQe7lD59Je1mG2_HCiBBxKEP7z2LLDsB2sHiX-L1I_3he5qh5vtVJTPQWY3iF86HfwGboJeFjnrZ48a55B65ID6IY7TlX9xnLB_3rO5kr9scvfQ5VoiRZEN0qD_TpKgoAB1Ig1ma6PpkwgQ3S0F7ztb6lARGO_G9_Etp6DJvMHrTP3hbfI2ntceCJSGvPHYx8lGHWJyZASz9GXd9jJGnIAA3OA2-yYMWCMCksYFUG0dKol3N-Nq_gC_kvUpo2G59bc2OSBP6vKOEZwFBl2CkNWzGwcKwaUHMtAnCRTu_zeCOqs09BHn8t3HKDyir6ggMD-kD9He0_Ce3MJJ3ZjuBt-3ql6khkLjJQ-2ffakRbAgn5Ld0G-3Rzz6SYkHgwpg7akwbS-1NTz7sCpCukrr2CrGlQk6yTfBQAyTJEDY6Du5-8sIUw_xPa-Ktng4jDnb9H3janLxnjD9Bx7Mw1F0ZtJ7FhCrmBCyERck0Vh9Qv4JMaUx2lF3MCxXUt3shO42uCYSjJ61UTVXLxAy8n2krLJQXdton1yB1ZcnlCZ8CkoNJdGfuIvz2N7TFiZHw7GCTtWw99M79vWmljLB26DSCUsQOb5zFwN99chNE7_4S5DNHY1ch7VMtRN1puPraSVlND9h4uKMMiSOAeOE_23Kc4RzTwPouhRAP5lcJJkkN5Vd5-r2ifwX1BES_SEhlomZk4QPdIzeJUfsXy8moUEZv-x5MU4JDYUmaxcAE5Kayevi-YcS657oTVnQud2W1XhmnGboDBsDRA9nrAWNFSte2Q-7cVN9wMgIKhQiysC7RTNpALE_5vQa94cNhSI95zngDLTogKpANYPrIxOkLryLbW9I8rnEWI8xYqHCgst3BRKH9gYh3L-fiOY_0je4_i_0Uh1LwgC_M3vcK3IjzL_plxJK9g_YuI_wUUTddDi0aA2U2fre3sjgWLJ1zN8XX8OSwI0BEm3mbN6xYWG3Q199phgNYTOdZBNNxiph3-QGrrQNvW0FqQfuEWueG5HIVexVdQxqGtq7BfsM0HYI4_xXr-_GweZNPmNSarCQYhTpX1i4NB_699UpPyKdEG6iie1y3UK0VFquL9bmrjdNXBsnetEzVA4X2bGHODp5NYBWhC3K36J1K0dGu7ShWh69nzIhDNJ8gA0WYLlrvzKGKp9VPyAX7k0Vrue2FUw0Ru7m3KPX2Upxtja97t8Kn7Vqptxp8AFFG7XXBmHIEuvMptN41dsDwPqTrEpScNNyn2ZnwPafr8W3zp43Qizk5GspYxYZXjht306NBPRmRUe78Y9Uy4jQtixhvHQaeDV2nJ8pOncO_uYMZlUdqlifHbnTqjUOKommTJO2PFmsEZ8Q_cZZrj2Ur_NjVMEbhFNa4yXSJj2OCd8UsPp8fv2iD3EbS-wuk8ewXBNPn5BSSEyudXchtYgeTszxk68b2a2FQuVU9ziRYyKWx8Ok8VVnm0b9f-r9g0gJq5s-Wl4XkbRvaf29ZWIDZnzlJkTLwge3LU2a0Ji_9jOOoSR-5QCTOb2XqPbJGzKKazNH-yx_WpiKYZSZUrzq6pj-h620BgG4ULjtPhQjuK9h5s5s6sdcQ7Tbf3FRwaCBrm2GOYWiVEq03EqwagLuZCBFSxpUaExEvCh7aVfOFxAydxW3vhF7Mtd3ak1QsgkUkqL8xm9qZfNodWRfoOGBe3Em1nH1_lqBTPFbX_REhXjdQh-hm2WLO1VL_gCUaAbNjQu3pOVBBwpnidNKqcavKY3mpsVISJn-hTVQoRjJYlVfdJP2iGk1zMjvZo9qu6Y7U0-ov7PwJqkzBF3FF8MvThimi-ju8u4p1oGOpTtMuq1EqxPP85sxhba47Ex4O372j2kO4NYVS62Ob4lvvYjBXXCc7-qRdxKc3dSYMTCnwpqD9gllEn2MDbMldRwe8ySOhpa0jSirjrIzZSYHKCql7cFzkuIsbyCeoi8teSlR3MvcXYP1Ep1Yhxr5h0X3gkqWDDyXqm7QxYGfuCJmfbZQmP7GX5LFPWOIg_rkAPtbQIxAeC0nuWSEJ34UPTxTnlquGYGAczB1oJAjMWx83a0jtUtmluuFBm5NQccL8AbMXfybRBuVVttDpC9m6iNFgps-xb8tlmJUD7vEYurfw_WZfh6hbfsi8spQvUbCMK3wtXomNV8QLh0UT3Ru5U7bbQwGoElElzoqsUOy71aOWXzWnoNTYLnOfiX1K3Hw1NGH3iCzin-wAg7qeikfeFplACBB3WTffIC999StFweo0bDEVIEDpb_3IrxKAmYcHjIw_FMxNSildcabPYxzdPSJ1FVx2PiNFDTpYhlOR3p-LcNaC21q-uUUy5JjIlv0ly8_bdRHrb7x7spUx_tXoO6wETbph4LRMCnGAwB7SuO9va625675kmUWLaUnqw7AhIjU0hlKLhnMfBJHd4wjfX_Mu0LrUdp428dsnKCl74r_w0gcdhfOvbK2BtH9gdiNS9O46qDJCOQ-fp32xwnKGqCCFuqScIjiugf74Seq2BbnO0fC5VBDGDdPECBPOUWv-OXOlUzd7JIQLFG0c6rub9ErxFPIzkN2Kqj2eSVUDqbyRiJJ2sP45NlC4vBnxvRYoaamYM58W9oXALB6FH2yBJ9KqUXB--gdjoh-6O9CkVJvUDRLWrPYRcGoh9dKUBNbcNYxdemRYkG63lzX56sPy_JWvBGkmrLUiG2ReSF1vvptk-eiHtCaQ_VHWTUofXgcqbZo3MuKIsRWwCHHWntOwt4uXn1kGFlXcnAv-MWMqkw7RMfVl1tuDmYUFsWHwl03wC1YccFd7B9YhZaxxzJiEFL5mJvxyzEZ4ceGa-XPcYdHADSY_19uyr-lWhamTgo8UYgiC8d-28v08o9mcIWbviSbAEvlpsAdoCakMlPl7bhrt-Pa71nlSGjTp_Q903MnIaOB7fBkKhdNoiPpoRzupZOlloSP_hZhxI2Z14PFmpN4vJ6gQtoRrekruqBxo-xtn_jUrZRCjgmD5u3OrDHY3JthLC7pW48ZcaJFeP2ZveneXGOHODS4GebETlYVeZp3pBd9D6MiAkr0n1zgVFStNgptciXfAgYksx5aixcSyrMrEChZxLSDiHHVOOyqgyg1I-3Kp7XmpaYA2NmvOLSUAAME7MAsfgQ1gISxcIBOcPN0lUJPs3p6IX0su8WnhYtfWWoskPOT_dZtjEF1GwOgq47pj86XiHg4FytTsA5oaqbvCqrmTtkBDkwxEmk-cVmFHUZm9R3fYwceHM09tVReNezzsqFHttawGpI7scs3zBokXLOYrexlyLHw3KvLzvNCkOwhqEZrIb6gI91yUR8GLXnPmLzY8qyEECim4xSa4tzP0CVx-xutN1KgX_Lepv5xN-AMdteTG79UpmIQFQphBzYyNFzxQOQHZzoA-9zNbJy2Q_Vk9v2asj0ntyg6-8J_blbYqpyB5IKC_LclTCMnRgqZRnHFM-teS_4OdlD-q0TexSIsMQKGpT2NcfUGXsM5nJrphby2wwb3Sh8tSV6Cfb6mKEGyO917MpJ0_ICIGqNMoAwfLixZyxUZYqz02-WGxm69oIf9O3vcECRAPvCuL66ryK1gVtiQwp5szR85N1Fw2UEOBIYu7tEVSNoGiP-P68R1E1L_X7-K3LcRp_-3VEZJtZjlg0yq6L_Bc2O21hDXkWgFyjXoLXAZ-1BEbYkc5UPebog-8MsoHXGziK4EuX8tVUaltQ5mhXBJNVwzPJP9389pmI5xFB2UF0mYpBbBY_9rWXXvCDyevH_9OJybskGDzoTacgY6JzF0SYRioav6Zzf5EC96khLYI4sMXYftlNI5E4r4zwSDPDnqY6ErRmMjMaxQAPI_qkBu6oLq2zHsU4Eku2b_L8ZWN3xTG2U4hL0R4qa4CFt_LfBn3PqiVgtjz6vBQV8IHx8fzrqcEEp1BxABTfb7soj6KtL_zdHvdGE0PLQCmgWP6ITFuNpYNoF4utyisFMyJGB0q_XUCsaKBJpg-bjqcFGKYXm4OQrht-cWmKJbXTgz2OG3asxub-luX0CUhZdDGkHSkangnTRRqD5ctg75FiYDON-VN2R3AJlGuSlOMWY2BDgCQ7PUbcwWNTVyMAQE7sm9IOlfj0jekEKq4_7QaOAvW9cEP_v-B9BY4VrMB2EGDoJ4erEtRSOftLb-VKpAi9INQyxaOkDu64Vp9qLl_Fq10LzLGeylMJQeTrxIRESFCW2uzce_z-qHo7WbMCBq33pgjM2yDu9epyf2DPRVj5iJ4FsIIal_HY2zFt00rY6773ytdAL-MDD43Z_uNfMOj-v0QfFv9-jkFUY6C72eJVgSeKpAO0E6hIdTa31VqD5fV2IiSjO0YwsD6Y7EQpzogqjLbNcWTf3x83j36bg3odWr4EWnfqpGnooF2CgvuSaHWmgLtYdAo3PkK7sy8lVN6WIvj0zZHC6Co2-zrvblCr11TVGwAaojNDm39-Lb6CRlid3d93RoUPiUrIq2d--rzc90zuztQZjRlEYl3YYoyoBzKTA1GvYC1r6vC-fGFtAFXYgY7MtwXK0VDJKf_bw1ozezM9aL4XWyqs7fURqAPvsV85LkhSot_a_5Z_w2xrTDcZNigbEMuFJcsCqc1J64zKFId8KaRmzkd_8RC1woLPmVvpQecN2X6wqp3SwSP-7-PtlTK3OuWuUf0WX7VF7RUh9-kOR3y88jt6ZFW0jTByroolrruDwvE3ttqJ6wSJwefbxU-yqeuOZIvDw4e-w8COPtsocjHuAGZx0GjFrnPAP9EkUz_tmcEYKDU_U2o5-UWYQi2w4I3g5FF1dXYFbHpYl0B2d4kTespFTnzMGTos5Nf2upSW-OymkSCiAoF6xRoi4u6URDAdzWX6VnVx6kJfM_uoFQ-NGyiHenb_I7zZXCeQ_AB0_5r-xkzOd1LRgqs1_stg3HqBzHlukzwuUqdIZB-S7I7wKQtcn8vmOlJKu63_Ch1ckwuF4Sg6OX-d3g2HO2zIZDrhvS18ewibiPKKIZ1MpVjvTnFLFPUuzVJo2nuDvBPiIkzNi2vzAj2_Z871uR89jmnc_Mamnab2NYW5jCKQtLRq7NY3E7-D_dQNJSWKAE_uKgIsiHXcDTN4rlsP_noj3nr2LMeU_ZYFqO7Fk-S5atOstaOVJC97pauQjwY74D2BDBB753eC8SH7HI9CFaLChwyoKg5a1P4HQYB88mgQgDdWwQVemwZm2Q_Gare5fmgdNEPniOVGFHvBgG5zvQ4uLITI832GD7b9TKaAmrKkVkPMPOHA03eHHwa-GvuNaH0WPVl1EaKKwTHDABG20WmbbypKsA8t4T7CUQkp__9kh3LTbxehm1Qd5yn8ljEnQDdrBEs0d-gjQxDXw81kj4npqQY-9MBFVMSQUzDSKW53uS2f-ETgXO08rg6jZRg5GW9tryinOO0eCdAiQ45ce_LHATk8MBXpYg036NIQkzbVgIINN0jAITsAnsD9jYXDxm6dix_QYml4g_q2GUckWEtCT5R-xbjs2eIUMLTchn_OiPyuYNrxW42IL0MbW0ROr3oPb9aNTUJ37G68890B_LGFE1roJud-gKkXhjcqQvLiPV-xcZayUZgv9-xyko91rjLHct0-4fA0SFemX8GtI7IzY7P_8suXmIKUEskpLAcGgVp8yXqwVtIGKAv0dyOwRBGpGs47YQitBGDcvYM0CFI_MxRRiDpTqUnKek4_g3SbNghKtjTJC4UIbsTn1ukxG14ryH7tX0QeRb9kuaIxR4kCFo8lqVUR7u5ZNR2WI3Rq8o8isbdos_IYncJ1X3uwx48IQ9dpBmfjnZE4tLzKpYUHZPXWqcKMP3IFEQ_334GgQvy7GrZF1Mn_-gAg9h9RzLtdJ5J3Jngkn4dMnpSW_qdJ3VmqoLEUW86UmCq1GVNpWpyFCFJZM2QSFb6SQScOQGHw_dgbcYnH10g2mzlYhm8NMRAO99vlUPnm8TVvZ63-a9UjwlS-b4Dl8mGT_epGx9ao8kdGO9D2NvsB4N70-By4ogRTuMJ0MG6ZHQ0pmKeSPoW2TX_NfkE1b_arDEJT_e93JcYNLPIFsn_Z6-rAfYlFgFtXe_7_jjMfJhrVqu4rnJEEW9h9ghoF5Edns4lb5u0H_HcC4dxTVV7SR-X4VoJhUWzBzySua7y-RCVHAIRVaj0kNyoavU4KxKhB-Hqg3LAcGg2mnVPrRFw3WU3ZpI7WozMGqzoRwGw_ItrHHAjldd1h6wit2PilJw5d7j3711HLcj1ChqSC1VNQvxFP7ktCXWmFRnUMpXuZU3FhY-H7uXwV7V5YSD7kQjOT9oezAuWxEGOPlVeDSFDQzzFz40FllWi2K_E3Y3Y8h9LNLHZtxgMWzlj8U0egsSlU5GuOkUvadpDUNlzHKpsIcjITnP3c04YFKHCqqCS8tnVjgxCVk4j3lnZ8acFAtOS-lsqjdQJnCwpqlXV__Z9_H1f1SsHwchhnzPhKTWX3stWHPlaPUZk3xRJlsGXSZNgAw0VGpoYr0_TSnEpyowdjUz3vkjyJnK4gDVnVQBzFEy5dszntOVJ95eiy5b-mlnQZX-O7Xm2lA6bk2Azu5MWQuaMnadvZGhQpdNQJN08Ss03Nvc4z6eRszAJsv1XarUB3qy8sEh_M28RS95SSdn1piQGG1BoYL46FwD4cGVjYFnGbKns_43eO0M2ikJi_8W4KBB1Gyo1AIem67NYk06a-p7C5OjoxiQSf7r8q3wVD2MHG5K841MoCCeoWgD8bqJA2Rj58sHV9cwSVGwGibWtjJMTaJEif500Wu3aoH3n5d7SkAKtcdD-heuH4-6Tc91XCKPlsuSrdmQpyuR7oGI59s2kwR4Ec4dA2H3kxmfC9rdufHkTx1RrJulIPkeo9qPWEfU4qUyHSUxeOKIoE9ZcZG4fIDRQ2ueG4kztH3qB9nbRuC9yUnl1oK60yE0YYOymtpRPzI-855hQvGQDE9TdhZ9ajS9ifc91hKCJLlbr-mNhHfeanBzxmR7dVJ8RkamfI-fXXgRO-iLGlRulb7WDWEVNbqasiodZWXRZXMgvGsq30OD1RirpeHny8a0ffQ8BpQaWAobgRuB-dEQBcgpOAp8mY7qUoDiaN5IIwss6Nd_0XPdOnuLOMCLnuIGVEIg89IY4Zf1Mu_KL_M6S7Isrto17jfEm7Ph9z9C8Gpr-FTtBVRm6SBYGU7YLCq4G3hJUBnmeIr3DcGz0gpBRPDbvJ4Cez8tKtGFaEAHxCGyPMjfDNLSZp16CNmvqM9W027Zw-TtWY-LXV9GdFNhpYM-yOeqRVDQl2XBktED2Dyr3MwqoiCXgZRE9dhYSInjnd7shV5god2qrrOe8f7LBNpmkccqMqTuvVCXNfaAS2uJBOv2EqJpWiqClJpFyfcgSbo9ZIdkFCJMNH11nPDsOlQENq3BG2r-9P3MpB_PxGvcjB3oR5Pqx_7m9k9vYfNmOL9Cgd1TjpHRNk120_CLzMKfWphjvY0C3rqlPt4LUQZP7Gf1pJAXhI5RUYC8QFVuDZUiLpAb1MdYsWSy7A4tP-Ra-efxn69l0Ai1oXDPjZg5exoa8217rm-8tnu73Dm2_Zf8dIhnRUT80v75djnh9xIV0iqJXno5R-1EwqIVWzagB1auLFqBThPtD9PZagbM6vRkkcAcIZARFI7etxbdQULSFezZUn3zSE_rRAb_nCCyqQj_uiy-GlVV6BtfnoUIjDs9WRs6zOcwOHn3KzwUpjfUPpggjYSh_Vr2KegTPYNN2AGfRpLpTxcCrvjIBh1Sj-g6yWVxmz2kiwSFGlAsW2zNo6vYghT0UC1gjskU2lo7fhy0Wddjv4OX-wauFVLQeQsPXqpwS4m7AxXEt5EJ6sKFwkheqPJjmhEez_bzWEznhP6KPyY0cbVygKrpK9LWKmJa01fhgA9E42qkX6nDf51jC3tU7L1W_e821jdFYNcOGGDuQwjvZTuuVfNCZ8uWsxZlfg0n0I3wfm4DwqNhCIT5G7mwZm2G8GoDtzWRmzgOT2wi91RpoooIej58_6AP_nXKn219ZIR9vNTAzhsHy_zdFLB3onbWn6vH0-UPeQ5oJH-dZrqyVHBx4YnymVlypwB1L50AwU5Js52eQSXRLpduvqeapfGAx9AwA0BQZWWhxfRLCA59XKlg2E4cVSlmdDba1L4_2WPYm94kIo1ooyFxvdNNEiY2APftUMSzD_wyclaVmgvTEHee0-1Gx7U6mYB5ombH2QUWde7BhdgQrCz8gAfwawow7WkakgsGfBfcisVHtflnmyMy3Lzm2K1iV-Qav3wiG-dKO0xR4O20CjVuy3AFkvw5ST0g_zMJxTAdXmNaXTf9llsKrr7DttYP-Qb7JlUUjW11e6hAHoXbwBomFqxM2zDsFzL3ImmJ4-uaVxws47haQxsFgx62WgUEhijqlCzaBbuC0KPeR_K4_qIk3BYf7Uk_wZ3u73nTpFAtcpkw0rPbHTr6lSoTVyzq_MuZ8Y3qIv5TSc-Ao1VkckG9NFf_qHF41Ro8tqJuDRIml3X6DzpI_W6jfGefAoeEZSIQtB3t-k_YXF_DLluNZrOEIy-k-V6Gg80Ctb4_WXXPxWXUJE7TbZZL061daT7nnnFcklX1WnCrlx1rrPWoZd6I8pR2sJOu-yuZUyaTTz6WVnOVScxEQv173mrttHnw1O10EYIHpy49vCgYYMSArKn2TEO8HNo9A_ZVFZ3OYtGkVQ9D1NIW3HfZUXlcM_J4vhSU05m0XEXvXrJFrvNMOPnmZmaUUYpC4Eyc8txvhbbdywi2J2yG5slXb-RlD5cA50br1DEOzHG4LkquGdlFjywJ8hXGTovCnUcz4XF-TJ0z-FpiGVvcPlGGMeSUi7UawBK0wYOnlAqAXlEkk-UfpDzUAtALz-LdDWyTai9o-PlPc9Y9KAGxKnEdhuCdrt3GfHQJtT_WM-Raf0jfnT_9uNYZv1BmE5ololE54NSoQ37hGZU_5RwovDnYxel0ukoLeIkZFHP2KoopgpWnK74OPb2RUQcmqlpBiHhs7GBhyehN_If2BDMDclakiSS2v6_j6fmhbRkMrjDoatu5MIoxdPa1IJv96THT-iyLJqVCtYQZK7CRsSvwbBUpNpuVNFlrMWcUiVJxmMyuqE_G81eke_DdUX0DlubzR6Ri259BhJVhSC6ky7dq6YS5R_f0C6izHwHko9b3Q4b0JffCR27Wum1Ncok1jgpVl7hlaXRgkBvIvUJfO_Vh-7Ycf8hBC0MzyKfg6MMv3krCUTg8emKh5kvRNh2bjC-JWnWUsEoOO1qsUQIW1jUZ0QJGNIJoP-CHU6j3HMBvcMnNfM6NmZZpxRWj_iQ4LyHQfEUd-Rxs-87nEqkCjGBFMhPYMXJv3_2jDn5G--ln801PdIBPbYogqkT55m2LmJbFbdPcgq0Pt5WZenf9JU_CSFMFqQZa1BJ3ZmoIE7cJ9Q3xd3fQC_C62IDhkvDmpHtZ4hTsormK0RMrq7n7854ocGPRqIZ6yXSMZVP4vw4-Oto_LerBRAtmrcKlW2_WV4rJ50Eq38NUUkLtc9UW6YWdkMPez_Dwbo-0ZJOecsLuRZKc_MtTBX_CEZ0ANCGC9ZRW7kmC0ycArgYZcek_Shm1oqY3ldG_g95OpCznUjJxMjVaWLnFaceZewsykH1EZVYNB_asEr0uOVGoSjB-ZtLOZWKn38awORkBTLHl8NVIKPYoEyiy7VVy9ND2NHepekYStSvF8sU06z1VXmflHCGxZtbg9dWfZzFZVuJUW5t5zBAiH9MIgEZ7k2vPQyQ5PhYF77MoWm8_-spBNE7ilCdjWJMsqZQzUZCo1BsaiVDMyNwbjKFGB4exwUeTWgpnneqEC0r9ML43tT_Ly0Nl2uDrMamORiSeup7fs7foVRjgSta6KXS2Kj1oUjjCr0dPPiz7rg2taxzRC1zuHyCbzQx3oMslIoFCwWuYCA4eWoXCV-JsTQ1chJ2l8rFfW1EdpYBILZq9Ned_hHzArELEIO8rI_m-UyNXd6k0l6ALt5m2ukZadAGfzcynZzpHYC31OOjkSdXF_Em37xUc0eSiS7W8QMkFFxSUJwCOjY5_1mJwEZScddK2jiAYZ7s6LH0k-_V-S21AoPWY_g3--o_GK4is6bIrbHaXz3UYz3-EF1tiK9kHrRfed5cdp-5qw_lHfLCncrIKUqe_-JHhrMJMJLqWc9D1C-akRBhKRVe48pguc8xDDRXWYcC4OqkXNK7fKQt0LCsxqk8XKgYFj8mwQegtJg0mTx1STM1-gyIvFpmpHBKqH-8Dnv4xTmW7GAGaUth8OadATY1k3HZm5hRTm8nGNYZxVuEuj5PMKnJPjK6iTGgBRV1cNO8N2OCwpzPcwgeU82XqHfNxhLoFqGe4Cx4XHnTQlt2c6iMUa9ynwqJPps8qSlIgMv9dx4K3iUo2kz7CBTVsJ5Sm_oegWad_oGt9-upFacmhvEE9LsIKdw4FvmDSLOkTCLP4xQLUyLPGJSAedTWbOGDLn-af8N2thnnL3gftOHCvLuo2Fd1LkqTr-NCHLPj4lg04Aq65xG0iRUXFc120C-EzonyGvKyHrcBTPV1-YfPM4UVAfKiNscc2rnzzEj_keJBqTwAv4D1sV97-7BbE3GpbmbF6h7vY8LI3JSeboL5Tm7W5WF7z67pMnpnQFFC4CVGZrzQNwAt0AiH4zqYpgFVM2zzq1T3V_kuOoevinu19aDQlFwQT5bGNw-uX3nI7LqinNKXDpHXx3MCJ3SYZ6FpKnQ5ZmpwSlZ77WkNb0B2O_Q0BFO3M78cMjXIzfs1pZElRdD_NmDUc6rB8If1nK5YcjB1b6vPpEovffyqLX8iYTlhzscAZzBi5MgLEunD4yI9tdHsu6DmzQzEkNT3NTPbXB8JSAoL8huICyn8MQjmTaI4CX4QeoTpj1bBeM_P7QafNIFaA_OGfbowI0GzeTP2mixRKB9uJCldeNUZ1XWP-lYKXH6GF3-W4n9ytcwaUzmaoN2aTYPDJfsy7bxI1OkkxX3ZKai9hMTu_nJwklo8qBX-wqA5Ls0Boep2BLdep_CQVeJ_SOPwr6FfZKU6cmeagCoz5jYgDUTKbjp0EXY4s54WNiRUfYzdscAOmU-xLG77dxXEaBtuQ-fEl0tFg3_3CbmRnI1wWMIVzip1PHyOWuoXUonap1yG85We7ZUqJEJ8Jhaw5eYsLC1m3EkxiQ4czaGTfZlBBfla6aW4xye_K06K762LGeHpe_J7xXspFLHS1QdLAmlW-_VxaAR_0QHDoeEh3nXAMM8-njkf8Pg9mGtXOa3vNSdI2-S72L_aaxdebPPnCqlr90UvO1W6FUzzPZzoQkol_U10Hg0rdJfTT8RPZI_957HDGY8N5GhBsBAIolGIbzKkLydX0KhJwd3q6_sWb64lEphzuoBgIi-c23k9akEJ_VVQwHczaRZkNX1OB8NR8_HJf22GnF16ulregmfH6rcn8mkYboxHktaArrKo6VOvw7U8H9xFefMFlBhinAlJxmzoQ2Z1_FwjiOpVvWY6rRbFCzzWw5miLs5U9A7eIAQnUH_WAd4q6Y1gqFq8Qb-ypVtbJcWi7pGIaAm6eK9mN1o4E9S3Lsy-ekAThBrREaJ6599-H0vvXgFwlvU_KQROQKebh3Ii-KtrpHrznwtLvLsFDCDdY5zhh27mKI5PFIbaG9c7ewl-4Awj4Ighs3Q7T5KTOaDnt2H4u4vyH-K9vYNTi-f6m0r7og0Lngubh-v-9wlgWrMLvZoC4YniIVNQmT1ufO6Az8j6Y90DrnFOIYFJO4l-0lUxUsB8WVU1vHRg7_NuWQla4TC9Jit9CKD6frYwXNlqZnNlxI1LoSmm5EkHybz6yTFd7ObXeIjRpnCO9GGnEU3tcoPcWP62fCXpNJ7YGr9sLamwE0q309QFZxxzHUN-KaOwr8XiQRMYcODaKv0xGSIb-e7APZz8Ck4xpsyx1ky3dww_6JSt422r9yobI7puxx74Bigr_6HwlQr6YnzXtTLmiaMsvN5Ku_vkaHK0GfZ5vW3i3_7tFiRrjK-tRq6ljZzbq-8f43gCzvYV6lCmtSdDI6-Fhcvcf6IHDxxdfC-zan6SOtujsEMzrke7XMKznGjnsDgflDKZfIO_x7DCuGOTR_bz2f2pMp8D6YSRSENIXVn5By__VYYeTnb_h6ZZxAAAHfap62Jr74ishmKx8dR0t3easuC9LwukxXPziZoHKCC2XUid1dffAoE-umh3UUVaQxyGTk57qBkUy-JyJqsIUUoYnJXpuIFm3VXUu6Zlr-dfirYGtWGP9FGZtZDPaB-R_CmrqvCWR1ElgOoPb8dDpUDtCVGnJpeGBeOGxzPzX6WEjplZv7YwFDMnkGMblrqN1c-X5udlmRBjF5zHsnRV3yAb7XGQMNlrJ8U1TIObgm-oxxU3ChS9q6e_SkV73_CMSRlwrygstaBaNv7KK1dFIGIg1RnvDamOXSBRdzFGTvT8ryYBhzqhufeCanMpVlWvQv5Vy8U-GyCsRLoP4skQhuBUpSX6IrmcBpFh24jprsKb_Ux_uhiaGlmM6wJBh4Za0498X46wRX2-3wQNHFdnQqtoPy0s7-Hx2Nv8ZGaRB_3_ZIsAj__6sBwTHpfwZnU_7jL9Ml-doGxTkfQZDYZ0R4CxQ-4SLCvDipVqjsHO21t06QGiM7-OYZlSZrJszIP4YVDGuWqhNjVnWQzmDk4Qf3ZF1r82RUpJvN03WYHeIfHf_V6HhAbj5Pdjlg0yZnsjrgYGCkFk_u0aUjA_tpaQlfJ7RdYwpAgj5wLA6wqIJKUpTtdsJrgS3TCCQC9SNUT8plYR4D1nxBkrsXAnsYjAfa_giYFiYyJlthwL99_ZuZNjFNwuXfd9ysBn1ASDhaV5pco8hQEmsxTdaVnIOoN1n_eG3gm_vqOAjDIPz0RNo623Tv9oxUbxjmX9RhvwbaxWQzZXeMATUAjnRB1eee2LmOkJUKe1RE28516J9gXh6aTKWeZ-YKOHVzvTLJ5mrXfzIgtxs5EyJD5dOup5w_F3a-30674rsYXfUKGMZf-oMkIE06w9NreOrW7kJgPJQh1nMY_TFBwSEvzdpBJjZ1sJfsgMsgsJo7j0nXolfccId-ln0spYzf3A00u21IWiNcgOzlzuqTTeCNAcHdhoUvt3DekznBJS_narGacbpVLxYy7m8vBaYxxRn5aAYxbyB7zhl0j39gvh08d2aYTHHC2ibSHziIzKRl9yliYFsG4cEYf-SccT8YiMCUnXAU4rg3b3LmTusvRJmdC9uYw0Oga5bLrJrz9lbBnonoHwKZV7rs7n2nrk_RuAnO5Zl3TUrVjWmNdCyMOtNvd1LYB69Aaq_9vmOqWOtKDS_6TGkBZjiQpT1xIwQ1ZB4ZjGLNf1dYBDpBYKxNQWQRsOGt-VnrweYIr9pJCbGQ9DyRStm4y1JVgg9IPA7a8uwKRdkNFimYFGin4k27Yquhbx6Ir7rW-a8AlD9FjLW33tSY19sFUabkvr48sHz89S0tT1ELnR0vXBBdiyRIQ3T_2gbD4HX-dsy-Itb2fYoT9-am-iyS4ZzoiagJ2xcuDKCgjjBYMhW8pmpAshmzwXkaBfVj_krML1hj6mLee5zo-m0dnSZUUps_ucD1mSQ1ICqvoLb8fL-j5kpFjqA8NEVdFBRUDYgxepjl8YPzdCduTcAP6x1HI79z0-oxnH718VyYzunpdtcJDZ0LqbfzW0nGssJClBGKhzFrApFwHfONQBrTT3gq7ueH6IIihvRxIotYftVW6cByfBdioyDRKaxPlRcF7CdPiBaNmN1Ojse26OWfh1mYWRM7LaHDuYpCmTCTsOFQCscOVXaEYaM9YdVYb0ZBdRiFOIhHTeNEaa3whlBtnXhJX_D0wXivn01H3TgSc1sq6UjJ24vqtD_4pyKbLdgwEPEgkx-Ko8FIQX6HedVa_S0TGTXHStUNzLyyouE2cz9yjS6x4PbdV4hEa0kIC2FLwWj-O4zlPBL98soFnLCYCnAqprZfoyEi6T0Fj97y2mKT6VbEAl4a3TnyS1itODzh3tUQYRSACnJrydSnd5o5mlOXlswVzQZzM5DGnymdDwfvyU91AIPccHTGaLS-ZoCrdmkiQFT0s9eAKphjtpgWTFaVPx6dyuvQH6UdKf6rAmbI75d7990PJW1nMgKAdFZ0LltA-qjVm5dEcVG6gQyfMVWKjQbnCD6eKjW5HcPJJXOU7xSzt8XDMk5EJgAazE3bJFGjpj4MATCCy2gsnfeXIxf4MfWH8rJFKcwMTUujQOyBNJgOpoYybuHbDMpW2EwH5NaxFevSFX-lQ07I5aOClS2VcFaHFVEvjWUM9k7ulukmAcLsR_HiTX3KbcbW34OzmXdw2vVE2Os67C7JWfvtFrZLA4AGSougSs_DldSQdI7qSuP_-oXvhUx_OUIpWbE9rSCU7SjaSVbgU7g6SQQLZ4E2uvzRIJrlpxCLfZs9M82HObC9EFv5v3dxkGEY9N-_Y0x7scxoRSL5Sadl-BtqDt-v-PeqOP-loa2-LV9U7aVVqc5RC8ytqsXWyUn7cUjyjSZpdq2yW2c9EslxnvFA0Ty8AuHR_dxJWHTSLwQLZQ_fulcz-VipoulYStGJDX_9zGIDqTaptWViAyufbotsrCCYxD-RnanoeSqgSeUaRUk4JkbW1w94-s-BdUtsfFrl7V1szXU0yiyliUfSoDnCrxOY4UiuaRuZPGWe7DKwGiAAeYJ3h0xOYDzDcCFL9ab_gcR3hdZZQ2oblk9bG_pnlmZZeHVsVeY1Lyr2pkPu7E_kRqdw_L3-J0A8Yn95E5aggHywuDD_QRL9uJ3luKwiv2LP8ZO6GybWvv6I-68gpkfnGwCcZIK-IDT9FP5oGEfI34hUtZAfQ-RcE3f-_Ec5YLm3bFskLFcb7ZmnAlh_bIoE6aif_g2JQE-hFJPfX0YT--PS4B0rBY0M8CXf38jSsh016xRollyfuzT72IMIII2ulXMxcTRg_mfiy-mKDu0qp1Rx4L6qkua-7sYkjSZ0C0OgjGu0-GiIH3ivvAE29zJxjfbex2Fc98vCNXRboYQNT__Ll353xDFDLkHTp8Y1I79Yq-wz9iGCLGz6sPm5o_Sv5Eb-sIiPnv23KAQ9NuCI7WhADVGyk1Ax5OnTRk7Tf5an_8McKd0ohDCjWV8oRM6l9bOZIa_jKrlLj-EmWH8JJcgX98gKgHLXJxMZdv4gSqhSxLi0pzWgkNW7lif_YzgXFLumCf7No3gzBQHWTRXwhB0YbkyRWKNEEC-DpYZNmQW2UXzNbzQie6Ehs1CVk5aZf90htSnMLjpPYlt2bP6Dlg-iYfs4PUO-CLLQnbzxAQg2OlUhRaTSQGTksH6tjIYW3xao2-FcyayGB3pS7N8mQxmfWwxXbHHiQkhOlLdvssK-F9Uizwany5K1HySWuKUSW__oWaqrfRhWfIH-x-ZZ7cGlQaxvvb4u05NmRhFWIoMeCe91m0i1ZDNVdJU4RwLbhTqCkdclvCw8kNOhz94IrWt1iorh5Xj3sJtmczOSGXSZAApQBHN7pZSikc3JypWy5tfQX3oKYLQ34F3opSWHVnlJSe5sg88wEGecQElQokjLy9cBOryrTjCyXL_LWf4uhznUm_CxXVvUWINFgzYTWNaaMlFKoI2wyt4ZAD0eBqJJ1DGjtWYLxjPzbkV5a-dv7a-xFpYze_vpZnyXs0WplRzUClpO-BjqDeyr3TGCLRVaD_2C6rAJgnABMqslOFesGuVD2dOfNJDahgrfLogtFxBjoI9vEEVB1D2jVg3QnWE1rokpXOo9CuXzbiz2mFbf6jVvgQk0kq15GBYXhfxf5yrH9kcePqS7d5psBg3V1sJQl-cb8AKa5SAYoh3CEhO2BCMuFIf5qYmbVsmbCk0gYjZGeCyXHpOCEs3kPMnqaQH7z6wrRjmF98ZQ0SSZgldeOdxY_ta7YXpH2nZ8fJlx3Pu8EGNqxCp3lt5fhATyk3DDTYjd2wd-ElTMbA5kwD-8yc5HkpLiTTsjnKug2zF2fd6xOahx4KBCCyDHndbluLK9L528VUZcnKL8IfSREhZ9x05kJRB-3x9gDsPMLtBoRz22wGiH4XXNrC_V1S8Qc-zaD86tgTqNHoqf_mbnpohJw2-DLD_TOHvS_SAyBlh0feVcAqDvDk6QRRmcsL8fwwyy98mp4dbUHYBBfTxYKlYnmyU0ekLOfPWhqyeHFFKFbsVyUjLcspb_MXLUR-g1xWjaitX6QR3l-3F1bAoEzneZ6_LjaPbscQ-W3Gd7gGc7Ac_tfTZ2QWutSH9tgXrv4lBLlVIK5xIYRbVMWr5QF4elepYgdZW1ZNGbz63pBdri9MeIEsUMoqSUgYBk2Uk0dXnlkM2gu6ILmYDoSION-HGZ0zJ5INDK3gn9cyWOkFIRweUzqNJnFb1N04boNdfnoK8eE2CKKMPzzwVX5EOe9SjS9qgpBol0gomLV7rL0aOu_7gRXWdybbS62oCIBhkMn3Au9Bp6K_L-j1loUt3Bqdk35BWOwzTluv6CodyvXaEAdcGvyZf1q5ugPAXo3GCbhN3pXYlb8sgVugXHlVYh3UOQfoxVQSuDza-K2VGwyawY8d7oMvVuu_BKNJkOtGhGIF9pS6rDq35C1eyBCs1Sy4NNM0LQxF66klI4DT3WrFiutWLQA7D97Pivano2J82CioAsdTNgAIZebdXs37AQfUevZ3McF4Q9_v5CxMkBEiwh7kTPdLXzXsrDjehOc5EmJ25moLLFzPuB1QJxGNF-aRpVfqClvZqJkxJDk7P19agou5NnJTVA8nwRGUT7QwftGxxIpsDQoSRFFOLr3QaDNX-woKKqm30ShVF9BdTI3FuqNeJ9Dn8Oxbt9lbU-gV-i_SeN13I4neveRg2HH7Ul7qr7Yd8tw9wAaLztZV5pKberAV6id2aJbEkHGRPkQ1t8XGp6AhvWXNNnMEUX-mGw3m2HXU7tevQsQbdUwSjYOwXW2NnTUCX2XG8SaNkzfHp5lCFKCGarm_tZ_rFVKqXJ8Qo8EecvPfoVk74rzGFg7WZ5yMfnuLA1gvjTmr7C3Kjqv1PNCOLLyHVm0mufooAHDIhfcfq3VZp8qWL3qDeUJ9PNP_3k-YvWt4rI0bBF9RRS2mdeLhm17p37NQjvlWaG1ia4SqpkjWBQrvqTBRzMQl42MS1WsFdoBUZtS8n9H3l5O5tjuu20NPvFoXm2uAn4kJwOZK73nFiYijkm0bLTBBGN60n6rNMSyMEYo5Y_RYSTApH0tOBU8yf0Avi9fEAywm7vdFbJFdnvhKIqj0jO6NiicJcJqElnWq8nYy29Y19o7LGXebI3vOI3S5rpUaMqf47bOqF5_gbDleKPquYT-W1h8vLvfYRuutEKn8B0DLGawT-J5o3R8YnzaQ2jAxw3Zppz50eKRXuB2IGrgFe7yAS0QAUb7NXOHJp3sjt4SWB7lvTHLisIZQgjP4YKqQ4i4DDDDNvEMUzus4stAI64F1XZZfYvra3chxb64qyk0T_W9x5QJlcI_bYly2VHo7HxfcNpOagQIW_7Zfq9Ajfjb2vD5om8FPDVCzkyme_B26G9zemaRGUJMeZ_00rU-x0pnWo_-yExeTb4w6Bnk1cbxP2I9l95O9P3pC5ABtnI37VQQGjgH0_b1cSqt8OlzcAH30wVDvfkwmktD4_3Rq_gnp52mgcfoL7KFKFEs-6Hv74xN1hXCxW4Q9_1dpNWK86NUAl-UxkrWq2zA0T69-n-a3eLBZKx0skvHWYuY_DtbruMzhFImUOhyEFfcAhQi5euVCvSELtdEGoVXQHjkBxTgUOGVKvMP97BPlx1nmUKVg3BIV5bPfh8N_nsEku16-_S0UJh4_615tJmQvNCoyMdgildxFaEdzYczNscrArC4SvFlj8JIZIKlx9ObrVPRG_79GDyeV-W3_N92Ab4hmLsNM3hBXerm_Zbz72AMsARdzt2tncnxbSy5PXGIVIXw8KoAeGVOeh-G-ioBP5fjwIm_GQJeMonr4eAC3kYNd2qWjm7bch88-PsEoRJu5gn6p1a2ZRIC5rvnGYYNU9z0KQeDPUZY4bBwPG6qixItycjS_D_qITWc0StB7yxZAOUPLpGZPEwKgVREE7L8_GsyYuymp2Ttl_0yZdyjQlA9gTb8qyPoMhLcEGcm1gcPi6a7DGVstmGJ4AjnXNAlTkWPDR_Jrc7YDa_IU-nc4kNn-lGo3FE-CYAL6EKgD8WDyYEjxPsJF-rt5E7Xr3kSxgSJq1JzCZOR8dPcfcFzW_2t-wyyB7yeDqQPuy5H_mYi6moMIi-KjYPkFsRfwQNswM6Wh7U_vCmgYhumbSbFb-flg066hS8YTR8ZaUqmTRfZ35EYFq_sG6yh2s_rjh7O_n71lg1843SOidgyFbZTk9oxPat3n1mJHAnG8b_izFNHGls1HoLzd2-3tBAkZW2xzaUIKvpTSgVIpL3Ey_P2P_tnmaKfoLom72n1nGH8Pb_LbOOOPohhv4Vi9WN6QcMZEKPrQvnYjSknfzzeCCxDCTl-f5gcKpiGX7OtP831hCItiLLZkxEUuOIZ6ytPDY-HsfXYqveSEpVSGIrnEuaaHQ9viB5GQTHarBjbmv6NZCmhECWwX64sK9vc4ggzMqYlGJLCUhoEmeyxRqYTRmkCTLQOByA-C0Mnq8awuwmCZ9Y9lrljvY44C_8lHhEHwGrPZFlQTYb9XRvKowqQmRHgrX8jU0xJifKshkekc_EiR0PLMfbpvjpLuBTk9M7dY1U9lXi6AlxtjH8wQmSMZZ72m3NZWQ6TSL2XUEf2XLte2PiJBC5X1psIuOqywDtmqsDmVRkmxoTSftIADsv90BIZgmancSEbn3mfP6rXORYxZvJ4D9ehUEUOPPIaul55FdaivltXE3DNmSvzx711LtqATlH-UqMzTnB0xT2-ift4kXE9uXINE0wgYX5MDeKjI1ZrQgpSX-g4UBMqzyfPE0dcqf7kgDsnwXpT5hj_t-k6uCM_g7QV0jNhyjcwVCyCInHbpKhDOlBFRwBF6gIKqJpcTDCBOUNfzUM_pAKobnfR_0oxQkWLcK9nl-b64XOyCuZCSJgXgCp9coiJzFRBwXQiOny7TJXgGsdmEZGRE17nWEFADxViEB7MLH2aTL4QmtMSwNpLg2cYRlZmTXxvWg-BgLWs8rBHTFh7AtZOD9eYlPMx2lulGB0RWFElsdmf65g-BfPFbWFlPm7D6hTsy3d3HElp-fzEmS-G9jqV9Ir1g0Hphu_gnvOFWV-2yFQ8Pxwyn6H5_ESWF8yi4fIZ82q6qOV_TITXN4y8IGllMI2Q9O-P3zTqIR-o8X0UCMLZISIhfCx45tWYPcYazDZgfvWdzlkzJGGX22T0jRZ1N6jchuBfvvvdYOI1oTrctg10sPbYPTqv9xIKXMYODAk3rVu2N13krwXr9JD0AGlpbk1TdEvf1eLYS8_z6N3nrrSZv0b3amWQ_hPWVJG2UwjDQOvrM-hsEa9sO3TCVRZHq-2oorxFBO6FFAF3BjdYfjpe0p85BfLFoS00Oq_sPjS16aY9PmZAgsKHbUT9nFYZJLVrRu7npjgr1LxCUokhY8xxK1GNcAD24uw5Xn-58OSU4ZhfYWhDzYo8n4kszhJYBrE__MeyKZJqA50KB2AMXR0vxJ4bR7X0dndu670FunL_caLgafEtACOMYAvGcHnU6sr6Gd2Y97qpYPc3K-GZv14h_iggNHQAwMJDcTdQhnz9fEd78I0jOFPSMcKFTNAAXo7w0P_NGZ-cvFWbnVhY6Fst7lvJDJemYIt3PUw98X6dF8f7dpwYRdG81ZzjaYigNYaW-uztervVlsaXKhUuGIPklVAQWIqLO3Q8DZ2NWebPZzPKvT541bpcN56TSyaMSFOCc7DDQJ9Ht7GWpjd0PXRcaJEKQtAwxjAsEj0EQe--SjlO5KjCJXR1PLQs_jy-MIBGO7TdXc7-n_toHARIIoxrKnKmdY0iuFDQOkIZ5aK39mrNt3sUrVfuMV6vw0AJ6MKaXMLORYEZjlvFib6MdZmfhpvrp_nck_q4aFXV4mqqTTohhsD8Z7tXCtJw1XrB3eOWfQ5K7XBNIa4NBmb6nOTHG2t2aZVgTz5RQOGAvGxdXJ4XMBCe5GlWWj1RMb50aCCbE703BoQE27SHu9oLe8KqTZJkAXToy7Fvt1mvjpTGZWuRLdWl-NFRs4z3ZPydp_ZIaKRoazNLHoQCoBG78VA0ANJOWHYrD0f5sfv3ssvIJVEqpa6PAO32hZK2kRHY1-oF0oJWoiHIhCzP7GXp7TEc5wUChliCsx3YPZi5Sc8DXJFhmmMOUiAP-DGOOfGnLsDs77ktEkPqvK_uVLJtg4K-fzRqz0MDKrYbFVxQG89Oi8GzXbsInK1Efpje3_qeRD3iUErJPDVWrAccBfig17RGiQfJa0p0VjS8djWAY9D-zCwzwCJMl0e0RoWISOMHEJ2i5Xb6L5gA7ixNlTec4nGWZzDQc-8BSN1LSdz0q57d8iOytpn6qWQGO3iZs7WDs1SNSBf2wr3ba1f9Jsw-CunblHcX1qIfkaxMjsENZOjp9elk78FPx9fs8-ZDuvrWU_nHrIH11w8tCHhONB8EjdFPpTfI0kZ2Z5MvbRRWbnLUA-6EKbe0NM2djSudjM4qod7SGoR_jquup25VZE0gN_qy4w1TawXVmQ_3jt7_jRT5Qn6YQ-bVYj6b-hDVI89a2hef7e5IBMzZCucdfe4p69BKSgDrP64iKIa2a4S-Be44-Xf9U6KgTiIvPNXCk3QGN7JZWpOixNob1kxtRe29M6mcNWZYRSoKDQZktsHPTmNX1TSAOx5sStVNJfHhrjtPeLmUObqksMWkMWMUpCaZid6ogEnVJ2p97U4AB5gHutv9tFZfYXRZjgey3L9bHNvo-rkSUUw82AdeeT_DySQ2vBehMY3fm1FWt6ZPfO4ejJeJ6L-WQJtmnRxH5sArs6Hn9NXky0TuAaIX3-sNRsvh4b_zIlIOe2XcAoZ3pVAIBghIlsauy6ZRpvwpIHzUMJ3BkzjJzj93-tGrerAmOL5DI1xx8kYVUuKEwmu8mJRZqjeqlPN6B85MxcINSDb0Kd-NG0upKCtztveyCJ4rlUtci5rnJob5uesp6BZZoQFfuMGRYgou_ZnM1z08Ce-KckC01NaDzC7gx1YPCi0Ni8iDfQHatZVisFqHXBd4hzsdtBUW2OxN704T3nm5jBB58VNxLaznbJE8ssJ2tzkofjTYncU3x4DWI53Viua_k0jQD_7lLvonkua8ChD4puvik-JVRva1OBsWFHauypeGJWWuw1PRpW5wpIo09gUzjn14Xk0XApTRkiuVCtCmJRRNotfdkD3sLU6qvPCE6DfK7hJ7lJ64er-Ep2LSYVqKYqBXH6XEmOuByV5jIuI0v-6iAtU8KNJH0fPbnZVWu4aY97AtMK8GPe4vNGgR3rQ37qdRA_evMbHrwvwPvPNjrxx_PUFu1rrngtfhY_w8N9cu3QH7kGjrToJ--ps0eU30T1q292hNc4ccG0uD5-xG_2V-iJoGpn2SUSEkqtgykMCGh2i0yirsJUMtg6IaJZ7UVev69ya32IlKqQnPP2S2UAAeAnmim85dnkvD1HAd2YFpZxyVQAulkSj8KNpIthXc3BC2dpG36yYgjNh2tyroKFu8uJXJWNWD03-QWKSOYcf6mXXxgKV6ECoy5rcR_ihZyU5_mwfJuGUJIg620C3gUjkiiaeWug5zz4BfntYZ_oQHyxgHjYAeZyKSVJ3pTVpjjDt9UGWOCGEarAeRNwbPovByCemLw3J23kqIOed3hxtwWYL4hDsgHC_YkhnyWrUxBt0Np4YqrrhGcoWAvA4SzMK5_r8x4SFRkHP3a6qUFHnv2xtb_5t1u5-MEq3wO3ciX9oe9Hv39oZIEgr0oxP6UUPiHfGkpl7LTTxHaZM5dOpfRHDFp9Y0z-qO41EU4qIv854vHrU5Ti3o4-0h-OsnPpQbnRlikfLUbFkOe32iTxBf0iTLMPBKoWaoV2sDb6-oX7MaOA-APyJiLi4dVaqDTbApbyDLuBGgqGWeDRaSK3WpjqfhAteewET9s2KS2Qf2J8JaZCRw841YEBhsFrGrNp4GpQCyODh8yXLzgQzm5jijDIjuY2hDnP6NuEOTZP-n4g1FprptaEG7WQEWUQZPQz9lIygORYpFez32tO0Xlusn4Yf7NF4gXdigTaicpJvZSQU8qGKxKT07-738-_3oIdIL36wbHK7846HQvW5LJrDUBzQO2VupcMxCoV0KXage55AnyjNPlg15BP_KqMs3z0fbOmI9-3KTMnchQg4wKoqxsLRzNU4UIN7euB8KURU9eomCU71VJvPWQ236Reritk4uB5wN3t7q96ze3s9AldTZhHFE5CkOLcBPXM9nHIyu_fkhAd07h5poUUQdA2puGbw1oBz79rwZA5I3vthjBRveJMBz-BbWIfB19xkWsiR1jIhkLTRX-SeWS5mfOVPQvhvNwa0EuIFxzRXdU63ivry3LiN0BBMf0t-CmjAIlYSiQNtcjXADpGyV-u7UC3A3WGQI37oHHV_1BxJc5YuXQukG-s3CJbxfao2sVeJOaEdfXYRjnwWanpGjdbUE7iRIlv2JU_htn1l4wB-QGfC47eyLG2Ll6ZvXVsKIdd5vXm5MRml_pxv7PX4KCOVsO93D8435PMVPhHCS_Xc9qn9A28y5TAtYbjb7GOTmCVEGiYMR_P5T5qu_Dzj-6DI1dBlJG8lMfJuJhp3YXmfyAhsWU-s7rMqqa4Quyu1YLcMvqcVWjR-SuMn89YYNMSKefD-DA9QbghP8a0CSRXN-PSvofmuDZwZ2oFpG8nzxc1ErIhkB5BQKl88yBzgRceiqlMC8EG12QZ9Xv90m8TeW5Wvgse1PkB2Y1YE5j0y-wAri3Uv64ERmFpR2ttjbf4n8Jg3NwZcxitb9h5iYw_S5tfxOUAGT3NscS0lWqt1I9UqMdA5eieWJkqNhVVaBzn1zJm7VZUYnUyLLEDbMu-8CFzghjUGvgwTpEEfvFsnYPRjWvsQ-sTOBiJo1pDQG98V5DVKREYIAVDcX3MEE3s8M1zjcHS_PN--uaaW_PVaXHsor7o_YAIaZX4a85mWrnpoOF1l7c66dPGLKelLHk-Ez2AaaAckEUeaqxfxXcdnxnG6ZULPqVp952rR6oOA6iS7i0vQq2tDGL_P9gyMOJICiW8ufuZczQTzpzsusGhyQlDErOK9v3lZSXDwYl_c8Rq5-M7F0a1Mb4lvxgkQnWVp4Jr-BDOFBOFk2JWabeSUr5tiOmg70ih4-kxOYYMFslbuFW4rKOId-Xq8DYxZur3wO_yAkjC5TiTcqqNZhTRc11NA98yBxPAqY3GPsvGgzq2rNan3uDf6fV5-ev-jlEg4Z4VcCQ3caB4NtoC8ZivVbzUZNvuQX1a40eGWYAzQTpIBO4a60xoBAXOM_Zd3ukd7mq94VINhZS7AOrSxPgYhycqrSnfr8aNumSv7qCC6fzLUrcLLkaO0pRoD3p8FTkS8-Gmo114g-xuS_V9wfldbU0A5fL4zjKhQJTigo9QOMePGwcWgm8PoNiT2JL7y7K49IXamosl-chNSoWGcBZXFjQM2usPedYXK99QBZy-8nOm6Ve40Ri_CibYa2I063qHE8Z651CQAZ_u_p4P4TCLHzdV-inlGuWofsGlC2ZEBUgIGxiosqbFKOcZ8ilyuVvstalybyptP21NRFyWH55NvV1xSgkrCq1PCs7Zu1x9fOJb1B40twQ_HuPElnl21XH0rjgSHq8sG-QhgcZWORDxJYfzzFWCp4VYpd4ax1ETJ8mQiSqE5p4foS6H00HQc5vDlbm8MEGW42r0MYAe0AVj6cjDbrisbLt-Hz36SZEjenM7bC32jwbD0L95aGSnUu0O_UcHghZPOG1MiSx2vPGbhYCAGC_rJnLKTa-mmk4o_B4AqFYNO9xLNu-wNWDulbgXwz1HQu3I8KOewPEYt3WmnlU_mm3AFCjhY3MDy-78w2IsJk9FI8AP4I8RUTQGucZucaZWptePr0SBx2VQyqs3KrZyMx4XW5EoQXVKzrTdXFLyTmbwICnwH3s0PNzrAZiL2-v2IDqCqe_tMYh5BLp07w8gsZnpBmiL5IU2kfqe3q_TZAT1FQjYUo8r7qIst8IM9LOV4h5mjT6W-gsQ7Tb6va8wkxIF5zXUhnvj0ysiahmPP6vd1gSzVSmEndJwLZyx9SqvMiQV6wL_nPdd54LERBjpI0ttxcogoBTBxNmAHfSGKHmJRRmMNLsq3ilW17Vp5Jh3EV0PrUdDuRkdL3cx1SeprV15mma-zH3q6PD6ws3KlBM-XQK629VKSzT7MpMMxBWEdQaYtJJ-1i75E89w8-nW9jTPctm0QtXLRhvCIy6jHQ3mHGqeQORVpJLDpRMWGADVtRE3YBaSS3pAfatHCv9-KwhdWCjNMJZFuLYmGhWlQJdUZhASYIGlWiCdNpif4P9jeT74AStW6Z_XR_i0nzA_7WnXgCS_9ZhosKutyvWkB277EvzYb0Q5Qv9yw-B9XfZxMJR5KJM-WW3tF7ZuNnjoQmq8fmiyJKST6K2MNGFAEIZCqxiLxttnyg3Lxm_ithCSjCwodH4Ggdg7M_kUIzczG7q20l0Xc1vEIo7Ja3_RV8NgyonG0JLVh83mWvM5R4V7vbonXHUtlaF8TWxiCD--i62T3x3SWt1qEY_q8d0pMe9X4pGYmaoZcmPsBa6QxErrabiG69rNh58qhyomKhCgtv_MPU7nr4JIS6KAVTwJatJAQergE2O5KgW5ilFTu-0GwRmy3hfzF7NSjeRPmecvBMUySmV_em92V_1NHxMJ8kng6DqMsvSiGi1ZdgbyZgyB1G6gtzs6aW8qHMFlcIZHMi_6HFAILc9aCVG7ekvXvBkqNIMsCK2zsJailLj3HUZ-UbaNn3PZpEiLr47oKZpgRACtBU8CtkYbitKrDsFBlWYpQ7CYLzSgazgV6AOXmnm5slPD54xg-zKvJMiZ4_eQEjQw0ytjeB3VofEZPWm4uMZ4RIBjKaycH8E2cy86X_6gby8oDipp3uhj0LRtzEpXLDiNBmc98FaxSMy4N9UuKJfGO-vCfUDe1nuFfDRGI3hyTxA2IW-nPQShWfR8AKL_oDAdzoGu8NehTZwSsU4d9QvSPudX7dqWymu2bUMAOzLul9WHNZJCJN0KjY__cfXZo7Cm0ht5fOCWAwPlplFbVOr7FFCgPpTd5GPbhVxQkZ7PVMDtXhCKHpDYH0_qsUuUfu_2SB1ysaTEBoAbJhKxfx8tlmsHvatsxsVEBR-gB6YTWDoEFDDhyKBmuojUgSJpKDLp5XUl-V-TSwxKKnhTPtPtNk_BSPcHCfZ4SuMm7D7ne4qk_ql91aYtMr22QOxOIXle1ueF-xJUmYuyM1NH-Dciiam3yRGfAw5GtyDXcLiKnFxMipr-tEBlPkPuGGdo28KwtYcNhmEF6qEyqb7KOxxyIpGySlEm9_j3hG55Vz3eeb4p8qrP6NSg5yWXH9c4U4bBL-7hXfYMfzIGw70hVJvudmwo718xvJgZQKQPPLFm4W7ep60TvCp45jeufyHbXNdeU2t3ohVVSnuv8vATRSMFB7r_djC54g4VdoYmntcDHf-Ybzr2Rr3y080wr1XmQzJEei3z0008tPr8BGIspCo1juB-HZ2NmTj29nPX6UPnvX6Wvonbl_wMZB_p7tFVf8Lx1-BbuRtj5PxIj7zUOBFROYMJLla9KEVkTxwzdVgkQjdX8hO6wKAaLLaOmYRKc6NpfGOHkd1PHQocMlJGe64lzvZ-IqlZD0rc1uLiQkM1dypiCbivrAkuPvnjw0jWzA3ZwMbYNB7Wlp0sLOTMyBLT-8CRCrh-L8x38LXRpiWLwkSa0IsPa4_Y4f9QRNx1uSz_tGIE0F9RS1x1OFNgfZxWfqJm8Y7XIh_rDGNET8gj9Jx7923z7WNOFgA6WXT3Qky3tI_abqgU5f7CYXXdV6fCkrKxL3YSi-eAlNIdY8zO4s5kTODfijC2uUqDlRqALl6CjhMrTkSopy5v73dPMCl74CipTwh8fnwBZSA7NNWVu_2Vo_QfFw-Af5O-PGU8p2z6TTHC3GSSI4V-jXfaY01ajAy4hOq2eiEv4qRWTwYqFDhkjrUAiOea8AS6I-KYIxUrnExgy1D0HoLBQCbRC_bL-2PEleBJ0QfbeDLU8rJh6fhge2DLjeBXXECmebd-xLSVdunHvH7Ait8EDGrZrz1xaZv4T8UkvEs3NxGySQiHYp6uVnZbC9TvgsxNscjyTvz6q0aQzSZ4wKsT5voj9ULxLNIb-FcndD85l1PanEk-34Tle2SEWbmAUH8sWDmHQcMX3-ivBw4NSfaihdj1NG8DN5nhzR9BSGB3UuaH6_0XdW6cNwfx4gEBetAhwkFeAUVXlY1yjDSiiagwnTnD2lR5eNFj-wjHKAbtGjTw4swwph9Ugmw5BJEr6tdYVkLIaVArl-w1jhe9WbKP0wjC2Uo-85vCYrUF51Ry3EWEgFkJzD_gZL5Bw4NXy_mZkF991XEU7CFu8lh4kDmK657e4X-GH4sTccvtX9R8rxNFtALUQBBJ5e4u5nQwOqxiQfheKjTYUcq9n5MnWGdZALtofP_33R6jVjz1y4RXMcs_R9DVLreI01EMVRUdnDDaPCoi7dgsYZSBxRph1VSi_Q6wGXPsA9cLLxElih_GGS01NcZvZfUN7Oh7RkBM-ymTdnT6Uhl-9LuRlXqWfTRlf4YHTCSgnopjF_ewDRHBnpyp42lqp0Ue3vY-Hk2laKd7FA6sXGVedffjed1FpYfZ_z6j7qvrltaxSIjsCB2549qK2yoD7pQM7csRmgEFWnV3E3An3iGf7aaoqHMmwRUEy2x7lGIeT_ZqEk3AC_6dTre0fpohCpAYHnI6HoOFoDd-dhsZWZRJNPHESLcvj92JrPzurNtww4j1NVoExC_yJEgrYa5ni1ug7HBjAwbgpaOI9Sb8sd95Yo0AmgjdN6Ggo8_ozNNsz8GRTy6Lfwlvco3AvdWQX9bSND79Qj8qzye6HQPxJH1NgrCBDe2IfSUv7OUCHHomCtDGp1UXnL3BQQ2VCaO1i8zm-RAWpBt8XVl-MMWWnRwDWVxy9W-43nA7tj5c4yG_hSuWuV13gX8VnaVWrDeNv2C4zultTHwZahs0HeeU0vfAiO3wO-Udvo-AlQNljIUCaCaA0uEkV1A-FARIZzw0Pp-c3PGHW8EeKz-O2OrkCkCgG3Z8wrEcKcjVytmr_Tiji2WByP_YXqDqpkiw_d4hMwIWsRR_P2DCKAol0jWQNUklziSg7i834OOVWdQLVLCzGfbM1nwBsnjM6_JoNXukFeUSHNRPnlFodw-MYSwbTCoVizz6pQAfwBomLTrV9KMsSKQNHd9cj5-sYom-mGe6NmT79kOtTaNVyW6lcs1RBE9atkcY1kXMyLfutX7JuQ3ESG2w_eG6-cVQQ4PuLEvJmFc3ejOXZLUqoCjOM5BEqbGPYWea8gJk6dOIDojhFeVLCfVTVJy9iH26a9o_dRHHXhpaCqdrUB0DD_WOo7yuOwrx-1U222qVqPzd1Rky3ch9oOEDUEr070_ZRJJhCwN4HhaQqdvN0AjRVpCdztQ6E9ZfdaGcAfwHQ_zAwpdUPPnJotMccXtth33njJ_B2MqCL45s57a06S2BrBFJ85ionlF1XML0mJ6yPSX1Sb0__FPYp_VBdlEr9CMh8trLvTRPZBXtl3Kaa02qUh91QQDvO4bx9GgOg371bk6b6ABAq4D_RCDn68hfDEXW28iguiJDQgnGN0AHHB6deO5qf9qDvK_S6HPJc8bS3HY8yvUC0-k8Tr-M3K5Xke0xxKbw8SLLrzG9wCUIWFTVEh7N50ObxojQtdfeGjcAI_FrMA7UI1tlVb2CuwlQBYkc60ooEFP825FiJ0nAu8SHK46TunlwCxKvAjKFw7PuQnKbW13g2hjyYtyS7SXSkcvFzjBEqg6t2cJjaPksOoCb-OE8PPq2LTIPrkVewHNkak6FgwdFyXKUbmK26AIVoIXQcTTnceXWCeJgC30v3TwijhHIw1yBXdwghTZYVmwHLOgd0MwvGfD2z3Q9zR0hwLmIkI092e0CQdecvwavXTVs_8ZoOJTLfDoTo47YtWe3GTidgzBKBOv3Nbb38qX5HyXctgchM68113QBRVdgvGbt519Esa2gPbvir5QBfdz1tp5n6oCGbePmpfrIB_-p82s5DoxZPWWhgTWCbK6xhXYof2cR8HQz6ogPqMdhDLHgCWJ-Zhxe_GJxYsMuI5OWhg0GMMlLRPE606S0MHOVezZTpfzWKe_bJN1wmWfoQHb3JyK-Pf2WB0hI9oelWfGlAbMJCNspQfAUPV-HYC4aPsX4IvwS7No14Bzl398HE8BucXntmyjBFCO-r_lbZzcO0Z_5efTb9V05qD4dZ7vvb7sWdheeB70H0S9Cbwl_Od0PlLSCDtYWoy58OGiy3MMyJMoHJkRmXWQOCW3Fig4UIPjIZqv6Yv0lLwVz6K3AwPdQgbA1jacXKDCSGMjMjFmLk6nl97jPQDRimejJHeMFxNgidzIwmazyoGVzMSqGug_lSe2wzvvONUzfhP5tbVs7Yt-u8uKTnKOfiZQt9S0b8FyqMjrijTXqvzw_WzeEdB-59wsUa0JpcJPsGpBhiP9bqbFTYc7_nPufVG0YzlNUoQyaUtOFgKfiJFI0RhV0o3oyvpTqe0qqIPdpsiM_-kOxdTeLQfUBPuI3i6WdIRztPq9YOfITpi1NuVV-n-nldFnNaJUavKUsMXEhBqK8E34wddBEVnvGyaHQzzHlAozirX9XySsdcvZYdiSYgOTRdwrDeKM-Q5JMbXMmbRkxh2ZVyKUqJzx0iJRtoYE9kIDYbPINvQgAq02ijrRYSSde7XJ9Mz508KfuCBopt0aDFkEG8Q6q1GRavADyruAl8lFdX5P4dCv3HY_J-Fj4oMDMczIV6hRDpGKrNDj0OqglkOkl2q1MzV99ezvb5ibM6fVVUqdT85_-tMVS3s-Uaj3URPAO-w71vmRmktdM9ZmM8aVVkh3sUKm7-nekwwgJG36tbV9DZ4YpnVQ_bM3vfMZYa1O33d48SRg4sj9t3J1zRjfeb6zSFQSARRpdD4VF7bjOjiM2y5R4QdPe0zgEmNo-zg7Wz2FCM53PRURmsWL2VLGCVZGEEheVmX9sWZLzT688-MKL0CMT2ym-c-m8N6kd7ZctawvdddjI9aBui9DvL2YEqZOdypNH4fOCzgVAcltgZMYVpWpidKDhOTw2YhOThdmuRSMLHqVWDRnixRW3zt_6hqcbn9iniGcZfsGYUmDs3exexqge3MxMlrvOuopb7cxdbz3O_T2n5wreOVkv40gUlNt8W9JgW4Lbb6hMh_Z-SWddAV7tKJ4vkfxKn5RD2iGEAOX_9ZF9_JXuteD2lJIIC7P6vXsQkV6qcH7yBX0g5G_ZDEM_3rWyI3EbMUY1Gc25O9Rg_Zj8O9zJMPOMcqjonYsLvCBNxBlmlH-2ppuVDhXvV8SWcGiGMyxKkEygBC82wXlkh0R2KUD9ZsIocjlq7jheX9FXTRK1Xh4qH5rfcQK3rrQrMEtVEzJj-D9Nr2PsZyTKT29lcGK0efkMm5URAz-use1meKvVRce1WKK-FAPehse9LIR_a6XwNCRumACWuTI4e_K-CcUEt8udg8rDOLzWFCRyGeSUrYRciTLTdQQFSvkHxGMcZArawiGKSQxvkDX-tuHe81RUct_ifNvS1SzPlQCo4Aq1Lwr83UL5uBuszagur2VdXP6_EKFQzjwrJW62IViy9LIyS-Ffkq7XTaFs07A2k_yyaXGssqbQq8IgnM6FgD68h-IBhwXN3Wj-S58Z3SUBM1HsXDggNh9oBi2Jsd6Vbe3AAJbsRAoZvZUTgip3khavvO4OMCvuHbyfMTUtKIXrl1yrFCoKhf38_Stv1xBEgQtd137LfyY08Mj2if2qR2gVt65v0sNxejriXH4Vt1AxhjkD9n-GUT7Ly03kE5nCLLwWb0-17KhXVwoz2IgFBYcfpj-1fTV8kn9APFRt9uOEJIcImnXM3uzHbZDy1a_A8if44Om6LhvIAVits4Jb7Mudz7nQWbNqEq0ANz08XfEpUZP2ApJZ57koJwSAJz_PdCCHHaJYJCEd8xapbQywMfEmXw0BUQ9l5tcszCfmjIzk3HKe5n1E7vFdm1cY0PHFPQ6V9sCjuAAZia2bocHeDfj48UgLby89A9cB1ElDKitDxQhb9vnXGiFctZXHKpw3IQHiJaLtBLDY2JeGUG_r6GgydR88aIkACUt-mzNfVikodYdqen9XlvrTqCofkmAnWWiyRIjRKnxyavFsgR3cPu_R5HW3Leg-8R3ysm_6V1Nlw-DDC_BNZp5w50h1_YZFbHMOur3TB_xq8no_Kz6-oX5D_Isti9c9OoCOpGNPtuoNgfanF68Yz4iqjte2g9UYpkefaQM-kQG3NT7r71PEZHvzUndf-MG3YmKBZlHPL86eN5dsYSEBkVYvlli-QhNPwmXn7wh_laRuQKTyabxy5xHGVcpOs8BIhdZ9IyyEuCBe5FUjUbCo33sgNPw6W5KoVPV8WvxTSwudNZ3tKYgohe7Q5pSIp5c87y7yc4-Zu0e00EFlc6svlFgG1-bHp0quSEVDlBIILBw0XF5WRlHCvYf0FPjIruvtkyoe3qCwGvhmAWwX_zoT-G6MnX5MZmauFIFyTU3u9PH0QI4-8N9KVptI-VPBGv1usJpD9hoDAtK_-JJla7HI5pBjaB6IItnaOTUfkFEiJgHXEXbblxScoxNh7NdEqV8IRqxreN8nZwVa-lkqvJqANv6HwPp2fNK3CObovRIf9CfzuEtBmHUbuI8BWPXXXW3wk-vgwNyR3m9LzAg7TrDqyBypvPuvAKR8IUdoRG9230ddmG4r9ZpnHtWTRjkbX-CYCVgsPl4nSsjFwsC3grSkuPiV3Y2I8VrXYKGie5kuGE2DDgQxrD1W1h8q5J2bhQNKPzPXYTN_Tf0WEVEtSNGYw7ptPRbChX4Ff1fRXgZel-7c_j-EgHTWtjkieju1px9qm3dVr1eevTTwKcV4r_0q7nYKuKKhBcRWVF_ZBVdl2kbjpjDrDowbvPQ-JIc1wtl54jKmZt6Xg3GacZJLHPEUT2-eyTxF5VemUvN5PqIxWeujS_Ua5RbM4njiedYYJgd5KUH7H3FMR50wJ0MyS6hVcn7qMyxU0BGHJA0CzR_CcVSZbLGD2021gjifXtFkZVFtb6QHGDz8uABDgINnOBBuZ6DMbXj13ghNefsxUJGpS_7lPCJvk1UuSnjwbCD6hLZ5qA2lNkX_PR4JEY5VIHkcQyuGKUVZSfuP__ivn1QAtbObi9vPWSf6pKhUnvHJ17HAfQIT5IIuWsbFTIIsHhEGPKwPlwHl03x6s78XZZ9TpvlKsklKaXpxUiJx-7RMEzUYktYExrVrAL0EEWxLgl647NPukhLZ6X0tT20BpHTu2lzLyth8pu4TAiKnKCzCVdb15a_zDhNgp7IplJbkE11dN7E8XKs67cg0viNpkqGTyUqqqvxjCYcpCp7lyRsze2OQYSe5CvW8hJmWKgayBZCdj1ZuuvCzzUMsm_-HR37jRamqxjIRwYiCgFnZuadp-N21p2CxCjAFhhpU0Duelj-0MngD8_jqRo__lLlO_r9Tpg49FCvyww6B7tk3jcAg5C1XdvXIOWdEcLTS5Xehx_VOOJiNxAIiVzS4OJs_YQFvd0UIAAqsphphRKvPECV4coAUzJxJsnu_kgksoZXppYoXhFkSng_IH-x385HJSavYj_TCOGtABD1atdYj-9hbXEzPHyTzWFwHpwFV7c1M6dImWb31B5nZOm2LBagl2HxTcO5el3BMgaS2YNtOSqppwXmKxvMSZ7mKIbh8HssI0JozOWASs2rk0FuzzHYvl5hXSSVpsY5Z2NZ24UAa1WIOszWMH8nhYB40Jk5INF06OAfM403ehTkkMTZLgvrIk7raMDYglqAyLTkvr-HvrNaK3rbnJsQziHp5MbSUqIttGp6etdTqziyRIG2zgsuEnOtyY5nnuOW-CiwJ6rBqsHyrrpPdy6Y9l7bj_3qNgXkaflxiM0amGGol2iWuduwr6OVqhHNpc9mx1O-q8UCPcUy0jRkkqkMH46_BNvSOCsKgfsnDgynzAJjQ53nCI3vskIo-FWRjH3KS0BML7Fp6DWeasp4jintsn1sV9e99SxOq9vqAr1su0pIaF_-41bWAsuv_bVn7QsyRH3unljLH6KBP5ELdG4CKZRRkKQwk5b03AVtzdjeGqugy2Ps_IGBNzMyO4kWVPHLYhyHb2CiXPadTweRbBW17YJMe0Pm0l59yX7dXBESmJ2EigQvuEaJHn3d3BpauJ0LeCjHRs69e4aGvrRqGDWyRy4Md37BziwWmOjhT3ovL5w7PlKLl1MInFhbep4XYCdxjSKRqJyjJHj0NrA0pobfQQD0XC-yXdjbRBbfS4dVKPM78fNyneb5R_4po0GZL52uX5a-yXQ0NVC8zTBruc7Ld2G3aOrmkZVBioVbg_noEVDtQ1hqbpxMdcfP0L225h-KfxrbE2-0iKnMSMBd-DIZHfkTLCajmdNLJCEuxzOpM3_YRNGxnvvGrtPw4wsyYs7MkghjtnvvzwuzE4SCaSa3lHX7HzYAzxUseKYNohpKO94ovENUxHSQTOIkGSSYkKq7mdupMtH8cldmZS0F8XzMrXirlnWQFcgB3iOz2iOU11ePR-dGdpqci82hi5wGJ19uAdWECi_TXsmX_0JgAirEh2CJ2wV4RScSTh8r1Trv6Y_Q1_NyLYU3xA4nDr64y8N7GzXoizEJNrxGCIvqYJpNjr4_OsCRajWKrcMnuGap0Q17gac7pk3vmIw0Jheiv4nsDYUQ1gsuWAv2xw4ohh3gb85yN1nkrVjoyXNhuENZ6BmHAijr1neg3Eb8iS49vqgkJSeTLh2jrbX-2OJ8v_Fl4B6ddNhhsdMHP0S7S1ipY_kXQJ9NEHjKVcC5pMelKyPSGCx8y0yOVgtRNxkwrKTsf6kuwrqpo7gk_w1WUzNpgN-xRDsAM1rXGIueSBY8GixNOcW4kCjcMtTQxpKENqJkrfNHlPsnLowuIrrxZ08BQjy21gLeEzRqwzyk3OTvdunTylcOICr0jJLri8gNLf3iO59xvHiW_Z_n8hNQJaIpLKQixAXsMGmHJPSl-DeD6sAloioNQLLNFKGXJ1dc-vUTqlGEFHJu0DasCWP_A7CD_XrIHUeeE6CWbaKDSDJbqpp8nwxGLrYXvHFkn5KM35fAdATHShZCMPzOiyaScQ4-m6ywiFQk3kdgyShgMZsCaQoasa51dp-jp5mNPVRPi4qUuBRZbyVzthO0mRQe4e7kvaPTYXpqbxTFZ4_papg8zyqiqn-HmeQQAb260aPsObCJt6AksQv2sMH-vjt3N9b5D_L42OKI5sd7uZ-gNv-5pGv8dPTwyuUH4pmilN6ZYJTtWtSZYnazkS5cUQD1UNf0-c1SBS6ko7VG3KsDe8Dtbco-jycLbeUcxm84F-GSbsqDIg8TIZ1zjM3Sr55Vln88kMpVlgAye_qIX9N2f8hDT6rdeaJgi1S5Qnz3_Vbacxg8kC6yHPxaZ3ynYRr-8Cfq4saNaIvCNlkmoY7Mctduaoj4-BffVIyEL8alHjN0FjjhfWGC5dh1UT-tfT2nnDIQ7Qr-vIhgeqjowrredLbfTNJ1BbaK4rKPC7YpQaOEvCSkQHqR6Uii__n57OiS_j2NCm9AvRPrMsGuok80pRQrZXka34ocAUE33w_xpiYieBzfiPk2vqoeedndArTWQHX4oqFMCb_msAd8ghMjhpDtrbyCAd8X1JcFMK2S7RH_X9GBMsbU-f-2DMLI6BK_YTweA8m5Su7lwiO5U3tuadYUJyOfheERbAmEjbzpabkXTvA5jyrT3iLcSgjup2arCBvoEHIyy7tDiICKf88MOJzoe5tbGvAwB9XbD1T6nC1J-s0D24xjEMLeCviwbBVhJ6qCKdo4IlqkeVVrl_eVz-nljB2nkushXy1I-NVnhf8BZMkEWjrHKXzED7AldgL1R6NnegUSDAW57m1E9LIUf5HPuclb7Z-A_5C3f-4i8pRaJ5-Orqw9p1AUks4e6SbBYA_gfUovruoRcAMXN0aTB6tF-res5dj9kdqJXj_FRTfDrhVfYhQHjGuuE8OPhW3rp0wuq2i_VT0nT4y19Qb7tL12PluB7PYdZ1apkSbNcZ8WY1NWp_-gLmTge8dkx_SFQEpMO2ieTIbCDvpDQwvrc5kRdgfSeCp4lzWyHvATAvUwU9ATcidLykTSmcMJpVLXE3A-k1zaW8IYgsM4_M3tKIS1cs2qRpwI00sFcY_FZbyAb2WQx9yEZFk4XhGWIxK7wQeUS1uqVJ9NUVRWZZryjShBIhU8xkXBaKXh0kg0nchwaPaV0bjGnR8m63FYBh_rIdYs1BKm4Jj189f0ZuTxKgbgS32mjTIQ05woauE-n7NZkGn9FOsQhk13Mqh0FA9kgSTNu0poYSlSOWAArY5YxyPpPhbWeRL0C8lJjG6HDHnPi6dosB7jCttJPs6GxEGqnBqxxq_MRLMAQM_hCa6Sgbw7M60v-E4hZRQkQVcWf_EJlMyGov85DFl50XZpm1TaZ2Jyy61yFozsuQCyZHuasj_jihLZ3PNigDSdMhgJRKPT5i9u0asA7X3po14Th9lSpe8RycjLNFzTw9NAw7JMyeaOTFS2-vCLQQnS4sLCc3LPWo7DQFIerX8CKTjCaJtKK0IZYu1l1bSVh1iX3jyq7ZTAkcGZ09TDukgfkhmlYj_kd8YioukwX7w7KonTK-w7fJWqQI3W8RAihqUf0tmLT_9--Qe9xso59tyLMD0tPEBW585FAUVjjC5tWJUQFkTOlRDdUvGZQPURKHzmGWb-ebbEQnl7FkteETYGpQhyM0pW0kMSRwEy-j4uUxVZYraOCYHEkHnfRU5qXAhmcDHge_QybqTVyiJDyLr-ViCwWC6Rj7pKoAv4lUy9q0L_Xb9bdxiq8-uCKeNtWfwKrDoag9TvpVXTZZYum8lmJRXTIITnAWWIDXs8BLfUkqPDlqNJegUsY0HgjpwbBC2LGqxK92pRimuM4mk3YCIdmBrywrdRz8fU6lOUgBOq_vWlgwHu3TQtHfd2rukupO1pz5OTA2pez2Z3MLIDqlaCRkLa6tZ5watxuy6AYRA5KCFiOKDOsu_em3usm3YM1z0N1j7VlRBBI4pSRygz5qm0Wmg0rt33huj2Wvu4mwQBxfKQXhZ4kFdc5tEDqV_drkDWGbbKneTMV46VUQfc8aPqVsd4-3lvsHsIrbUIEV5HV4NpmeWRQcTApmLOF0AAIveIh59v35IayW0oBXv34E1PLwSZM0jUmWUPk-zK648MbfUUDTMisGGEmzTAvYqGz0yHFz74yKolQbR1j8YH6QnS30FcOZ0avn1aO5y5hvreIpYtuwtweve3cN6kZ1nzqRLF--5LT3GTVK-4VYYIDt3KW_9BAG8VI-mJEZ601w01UYZAsX805cLLinS0oA3sZd8H3SUZuIguujp19dFmWHwrt5kYnDDN1dB9iTg4yW0xp-khjcCAiUdi3pc71oqKR4p70NOVO5ZQmm-Y-HpLfJjz_xS3L6JmA3dPbNKNUxqUdg9VMibWwjW9QK3QS77OfJm516JSAOQMG3pR12Vi4arPn6aoH9q2phO4GxoxATDBk6bPv0YjxmXxRxT9P9OZmbopNeI878ayNlSTgoPhz-MMGnkrYLoCKAxTbkzyzskWsH8TOYGbHHRd3eundVLTZ_6sAgEfYLjRMyNGEd4-BZnOsdhkWrn5U4R0iI_YaEP0ivJA2Jc3ADmmbhAmU9fKSXBKLBIyQxv_tlx7YzMbH2Tck1wX4rI6zQp68EbRCwNKewbnQXL7UUnMWh6sOjKsWHAEqAfyh2I5B_eXJRAnuBQBzYINFYR2qHgyTQGZBb4harsGKObZCt09mGK0uX0-RUl3uiX0hjvECFnseVY_kJVtcC8OVdhC5oVSdNcakh8pCZoj5piKZVC0bKEcHQOUTrONFNo-tQkq4Cm0R2cNLkrB7dhDdxFMbdxJ5Zb05VhoXt0GKKYEEdm0wz6V9djl_c6lmHDmypsTMKgH9yYE61yrMX4VBYk5krTKqq9ymiQAzM5SlfNWMQexfcuqU1etE91jVcF2zSatZ7kalk_TAh1AomEHOAJ-Fj9I65ts1l7OOtt9uKGEKI77z8GXjd3cVaX5NbWQLEqssF7zbZlI7yYoeclZHuL0bxFN_ehhVubJ-ot519LyVZjbO1ZWMH_No7IqTPoxK4wLUq_4CrOnUUkBV_MIx8WbeTsEJMuOSBmHB-nuYwWuICEddU4xk6qktHUoy5DIgHetouw-ZUIO9XnYp4HZgVu1MSbP0xkBiYdMlwZv-Jcf73e1zBQdbt4QqlSvz4SI86sprjt4vBeaRoGqqXxHmu7glek7Lj_xPkkCKgn_ETB5FwkKs5vG-lQ_7zDgo6_LklZzQyawqnR1gczLHBPzM5hF1cNFlsMyJa60Bqua5ywzbhpwpiCgxQlItQUNk_T7QMYk6eUXYpaVX-bb2zudjXBK334Rmx_mCunltIEjTMMQ5Q3iwhiIH-sS68k_UBPBje2uUUZXvd6B6JwTevURYNElCJKmPFxo_tetaKZZQ9Cpg7sl4kulu5U6AWJF8ojkNWS_S1sHORGF74pR7ClMJVBWKJRBwjRd94tmHx_sPVfw9_HehyH6WvgxpmLXFopGWMxTnZz3TtPoTxmHGIqWnOm8QopltEAi7RKLzLwABPT0Mq6NC5lrSAq5jOz-cpcLliebK6N5m14cTdHS04qsBr2TolTNiytvxRbluKZk9Qt3bCOoqAa4pk_paCS-KNmvv8tgaUJVRAHENwE8ShnKkbhVFEbn68xCIIjDUVUKHD40brJg-ws41WA2cz1QhcYjCsddAUtbns8wQnqWBSWkcWmc__u0rkz4BmVTnn8oIGZKbxezG-rAGuYh1h998pn6npEcZZ208SelGHzW7qPHS7lo4cPWvD48bKWG38v22Pqs-EYJ75yWY4-_uqFqoEY66tsdQJcqM8eno4Jfdgb_X6gbbnC8OoZPVGrNCScwE6mNgDUMC_VsmCYYUViw3OfRDQQ7D4Jc1k5PeEryRMoP5jYw7hI53hAhJ9gEdFnwnVAUTmWHqoypvavKLBQI4PJP_4zKi7Tfwvw7cEGV1fMIdtKdtKlrThH-_pEBhnrN4NYUDuUwmueRZ5Tw4AQ_wcMuHgi6CcGDHDLeCcW5f6iHnMEGWvkUWbgTegOI--NDX5DJZPJSeDgvaPR94SF162Ykdddcfp-N3ZN8bA0D8rlSx4HncpUxfX_oQlrZvRt0JNrt2Z-OK2gQAHrAhk4ioqF5tWWP1rnfOcBVtSUqV81L5ZQ9AmJPjjfWSyYRADAngGU5-LLp_OV0C2TgbWZtNBf-FC-Q2695ZgZMzHbKOM9Kp0kl0xRR-c--4aONYozCGN1flRy0gtoU4SxWIRsfJ0n_sf9E3Ccu5PaYw5NOGxwzKdTMUzIKV-8jDINnXG09k3UOHHajo7nutL9zPFjT_kd4joTzjbF32klH8mph4bTfgt_tSWdFBIGT_cvHEJqPSbpMwsjAo5JsrNm2KWyIVK7FOSU3i3Jvl48q6BJI8v_wbJpbcR67WOcjdzfPP7KxCFv93G0jSu9rHhPuyEJeL_KnhJsY5paeI2SGw_u_ra-UvXxezO853gWwjtWxZLtPj7TpVWfMUOgfnQJ87lh4U51EiNz3sFqHv8LIf_q2rCMgTdNg8uayb2Xg7M-slYp0Le531b2ncGs8_4Y8fUlJC7a4rJMU6j3it1zhPVHIblnz6hOqzAd6XPIkp7JJZvUeQhDx2v2u7CJap57OFd0tfmGxpymYDUocgLOz8LcscThAOWeygnM2J8LhhP5j8mBLyFibkOpIoDEaiWHRyhGIBqe7tsgCY05CCrJkmJ3mFyjh_XCYcphFMuGx13uNjqEwrJgzkzznBjnq9edrT5rL0GdIhc58GlW5qvOs316gsk4ET7nSgKViT3w0IaB5-Q1ttcuU5G87DXQydT0WN3M_FBomuMXZRd4O60GCFUPEEnP-t8lpidl5Mff1Yif38he8UETZ6HXm3FJDmWuV3izyusVIq_ghUs9CiFSgdYrQVTE5KIpfo4lHtgmo5frWs_cbmT-Edl7MB-gAbwfKbIAQxhMEa0bfFfRc3F_cvqaMQmQEhIjETFFYxs40azZsVhlV1wKE10K_VE7ntwWtY58YNEyclCKSKfBtvE5Voxk8b_wnu8gVTsDKeOrFnxP4cTY9A4gvSl9oVhsv5mG2rJgKnBeGofvkwJH4zA17LstJyCyVqtUKh4lSX0Wc-F9K20rw6UMZ5hX8fcC-DaktBoOaXLkiBQUODT4KXLuMeMhG4XQF5Uo0EcnY_7ojzdYDmMQT6qWXey2y_vj_j0tsWeFQlmAsHgjPP4ZHmk1shWGixbk0RqWvNwMIls3FLDayxaSEpU2bUR_HxnWXKjUYmaCv7tDx9juNJSYgwvr3YNtYS4xcisQzBP0lr8ZkhR1Zzl59HN8IHh9AGA9zTPYu6SFdX0qcgmC5KXTr3GTp1uKCduTiHkb_oFthRyqrIpYuaibmVaXa4dJk-9043yNWaobQXTdS4NOrKVvJQbFHEgn3fbjFjggh1ze34ICOSe_8xr9AdDQzFv0z0w0e3lkeE3EoXWOnqMYjFakLRjoYqV2vCjjXHV2w8-aTXlF2zlJDeKz6nMJBGcF3frDdz8FafdX_vKjYAM8l0gILMPDm2UopUGFkK516JuKOXsyRij_lRzdLcyTWICt-yLHpOjzz86maPXqkY9Ca7PBiGDxnzd1nKIArlzEc5fyiLflPujaBRUVfQ2qBcsZ9YWZqAJrQBCS0p6uBJzOlwwuHVgJ1kBj46qzrT5St3DbG8U4UvnsNCe902oSv8VTxm3AEiPAGphzDxv39h6fZPNL7hEQb08uQ9lhkPpW5o4U1E6pTaLl6xMQENu6I7jz1hXtqMV_xxxkC8gs8bhdRdBIsso87FwdNYBTPyJqqDto882WYd3oWouAU3v_r2A-tadrs64nr-TU1KKn9yywsCunxiellGigLjJa0U4caqcoF8hNByQvsKPlD-vblMosSjNmEB7zkvlTlJbcCbL8y71EEzH6eSOxWpzliL5UwcZtPm90gDVHW_Dd5gzOCtSbhkT8I0tfPLa3hEpryLhcV7oV_GNETKqc6_e8oLRYRyi7yZki4CJpmyeJJVUV0-3IiI0cgsle4FDxoVyYaWu2dpImUCLBrNzRlprFweaNhXSRz-o_mxZNpi1aAAxjAw32Ef9VOGrGRAE5ZQzXeJ1BSK_u3Ny356vk9LRhKfdp1XLilDBG0tP4N0jWLspTpQ12df-mx7yOIrdbXsyiDcubKVfHg7Nx0UfkHmY7CAy8tany1KQIHMCYi860z8e48HCXNvC5vCI0yEtCVuVbHzq2omwciUJMvVXlwExyTf2D0KDqCLPdIlTW1Jja0155hCd5evU-20TvaLCuffc7H1YKUiYLpb4pkFnLfxNVaDS9iEn2hzFKsRuoe8AXN6aDUZ39XkQL_TUvxphmd3z8_pmF6tXjlvupxUJo5LQtDZSrGQnOTUUEa6IRjdkAG1RcCxuznKIVaZ3mxB8ucwjdGMZJDOsk03b9zj5B6grii11M28N0Tk_60fTd8o9I0O_yh9AX5oBm6KWcihEteAEHxpT-tlJhlsgBMFDfzwMzxKjMKVGBxTuGy02p7gvgyzsL64XfieBZUk-Tc_W6TwQ88RVXKrRn2VpQU2xz-fJmeYRd-6E7FPR3dUEmyvhgQCRr_9iSdCcQvxJeFz0vo6jeMxToT-hnowQkVXSOULyL8e8fyq2LfRE8pVyznIgQ6BT4WpZwZxqOeo9eM3HhENeDy5hpJxT0-3AsvkUdP1hDtD6qBCUUBIo75XPoJJPJmkOCj2Yy0olrl_31JX0nKr98vybX8Lr11OVfczt89CP1vPlSK2jIYiSrqh1Y5LrSV6GA9e0o262DpPDUBdTEeKeN0LS0OKw6QtFMpb1jRqE_AqzfT-U86l-aXYJIk7_WEIuylsXeG4kKP_SXrAROJZ0BmgLP90IHgf7e17UNNt1smZvmchqUEJhU8jZhkNlpBjzJAXMe7vPQRe7Xq0nhxOqIXWUrKrcatw9UCkx5n85ykeaK6NdMdmPM5ji0CtQJZTM2ktu1hgpNKxLZehqZBhkCZfnM3TI19R7On1b2u6NXWGFbbM4NsESn_W8_3wwFeZUWHnuPHLHE2DuB9b2yIF5zNrXS37UYrSkVJSSE75-sJlv8f-ujTAHh8BPZG-HApx9P3O4OhA1-XrLerd509V2g4Gb5SocZaPEFQV0NIWfc0MlgwpWwmdOFoAYrT6PspwG7YRKzfhm5BMscUiYUe9kvjEvvDSLWlKjAHxP5KJeLvsVQk3lK0lIFKQMPI5oxYTGfckyMTUQofZYuWlj2ZLhhsTZaP-hNro504SrTKsCVWyzTtIie4SUsj2UwRoOWMdWS5Z8yTBSywHX1BHVpG3g-JFsiaWpplhY9CSYVRHux6QizQbBN6NhJeGMZ_ZV5Qrw-SlvfO21_GnkeW3WiGUSQcHglqlsGrdR68O7diMylVF7dgl9CxDiLZShtBbYKd4eFRAaAkSg0dMuMzf7bC67wWOoYPl3QFzTu_fdEfuduL2muzh_vU_ZNMF0khAbaqSuenlBN0BrTYxi2IcqdLp3eXHXBaCAlINg6JsGm61ktivDFhFG4iR-AMLKYgyCbhmhK4H3xYm9ltAt5Vp-3YpZbwHdFcEyGAD7pc2XRZs4mwjFdaccuICMiIl-V45B0vcfWYz3gJ51DXyJBrLOcx1LUixhxkuHMMNlsgzZnXNjZj99ACmgrW2mGGsCPMIyHJBTCs5BqhA1owZFOLB6gjqMDcMnzn_TYwIaA4G3syjCX4b93wSOF2ldKPP_pqpPF5l8EYecXzQX4NHp60U6PK9xSOa78-XWDSIkm4mv4-Qtg9VE_yC3TsmfqZGS-m9_r895mOmG4Qywbefzyt8b46RV7_i3QJqu7z2tvqfH7yKJgkoR0S-OCUHvtIsar6W3vOomw4YyYglZmWdfc7iWK7EYZ3tBuonF6dwoc7Uc6m2_vxB-bewborMk3ES8M8_lArUznav7cmV0iO1pcDEEMzoPB7lZ8N0Lroq9kfVZS3SPAExSIFIxCEGu5KCjKub61bS6HBBGKnVJWtgGRkcAWq7ZdJoUpZdgWVQ0RJgaR4X-WHTZcpJLntivEEFSrXDlLCID2XhMpkLC6Bs0wbYVtPfdqrg8IkFdvdwsmhp_-TDx3CfZwJwNphfVyYZLfo8oYbuviBJ11N63JNduVbNn5Y4N2g6cTeVkmY7lMH_TunYaC3drq2uwAE8Mr5UlMGgQl7OB0I78ILS3zMlPvggN-IOBooYMNTPGuuvqm9SXLAhNk-gW8QF4HlPPzYlRk46mzG5Y4vh-3WSDgDkEvr7bg31KHPvVvNqPey_IdgCXNSO94wAMHHYja0R6yZMg_JeFu6FW5wliuGZUus_Le-zCq3TJWjpOP3Q156VYVjKB_ra6KyTpUMciexTZCiGmp-Fg8XF8Ip8GVb6RctuzHRTZ-ooF8F5Q7AmtpAaqNeM1yZtHCouAHHVMmz_FBiNBe0rhHYhP-JJnUSD5sFjGZnA3GlvLBv4MgFO_aOF_3rmwv7-BQkspsfpcqCEH8_LoXZSH6z57_Q-eQjAlFbRePl7O5ExhJwxOXsfN5DkDzSdvrg4wvAmp0NL1zvTJFYA-ZDp6g3fqDbz_wFUeW2Xu4BVFtbZUmBaIP7f_FrOlaQC99Mt203qyPN9tqBpc2i4znVD0UlDR8NPUFHvWpErfXoJhUmtHwsMdDvc2atcfy-vvShKzBW21mMRqOCdjlwiNUG2qxrZ5lKZwzR238-cNFURJZqMjELhoNDrFjP82yh-VO5u9150ycA48Md4_6uhv4hZRe4tbrPAGfWo_ct5pL9bTRZOTupIS5p0sWMiMCMh0YxH1GgVkK_GOEZCV3AJ9qqD-XgftjAFRyHQQp0hmb3wjICYizBP7m70PGPPWNOaVY9FAJJpLDivOCnjScsprShQOA_DZH2yuupIMt6LqsC-kE8HEk8U1u0gGbawKGITFalAyAFG5SO5kfN2hNsXrXb8R3Esy_PhSE5G_i7NTCO0eIS_-A99pooQpym_xQhXKlP8OF4RiaUjOqzbvlchVKBbKD27gup6wFJb9vF6mMx1oWKvYffrHf7ggX3hj1b6W_Klu3HsQSwlemdzIfgf6qoKR7P-8NnzbHA0BdVAfIWpULmGqwZhPpMFJ3t0qKNNnsilVw5gISrFZtyMTsrbVoXUNVYtQPfDCz10BtR6FjxrzxZ8JEdseDZG_41bBMp1sZGZrqZbWtjJKdUtqs-3zyHSJ2hYB4_Ni5TVpyWV-jvsZJZK7Jorjr9jLtMgl4KHOKLNkjzH5PNs6PQFmtw8hJSKZz0gdugdVpT4vTYKPxQj5ueeHkOU3CubIcnG78lGGpWYE5aSM3vrh62L5lYkMpEcjqP4U0kR5YQRmN8fu-q1S1wg9x2n4UrP3KwzN1jvUmGlfKxPYGt9hxi46PntZmA6TwfDK7k0cstGjY7vI-agBU5L2Bl7d-VLKijCPQY3pwkd-pPx3CYDCtA3Cnr2k8KaPWK2fS-fXJYsI47-5eOWupZHAahalA7flPl_xpH8xAAEafq8zLwmY9452Auo4elUkzBydvSEJaUa-OTcMgbT97EJkeiySZw-Mcl9KRCa_hEqbiS6yFoRIa8BMyUOr-yxRuglT2NCUUOHVGTXPE1b0PwZpfwpX3S44tMb7VFUTgyGmRm_RTS_LK_wjYe1jCpYGNA3QwOjv6fbixjTT7nVX1DevlsuBAQLG0sIez4W089Mzh6cqyoymdqSBULMyAvWOWb7KA73t1bvGlMljexI7CZKCtSbi9lUOEmNcgDTS3rCuq6GsEEmneWAfrlJMy6dmoO-F0FpmeV8HipFJlKN7dNsACtBRnuy1ZmbPJOqeLTHWkWOIJg8ve2OIFlxV5onso95y_fi_ZvDgFIjJ3EWFpQcnEXiDzib5d39V5jzDFF5e2xprzLxNq3psr1t5F0AIRthibFMQpJ5u-EBOZOl5Xs3Augm3Nl_V12qeYXsGI9M2BHpdORV38p3QANnNsBcuZFCB1rEyUc2SU78lSb-h8JfDjrBft1WH4PCyBktKcvYSX8ijNwL5cgwwmMroVgZhlBuUNvgF_TcJc-ATAb5UVu1rKQKsyxZkz9qtKEtSY2j2Ib1bKzUeGXJWgSHZ7xgdQFNF3m007wWqd5dVy-xCmLyQtJ8vQxBD4ni0S6WjgWtRKFD4x2L8hLq-DodKN-SYXCWQZ3a6S_nU2NRCfnwFdceVcipieUh3MEeOmfGe1_gHrWjc3AEGxpAmdzcCuCuARr9wI59lmInpa81uOlucXv45T-k4oNGsXBoHFSz7DCPRiPH-a-IMBHztckBnl50gEx_2RQdzJkUKzHUi19Z83660CR4sXjPQuJPysxWvp-Cyl_w_gzYUPzeA_s8h9kT6vBcSLOCTnU9DNcl8M3vVvgKNuOD0_riZMORCgE-G5tzL-aYvoE2or9xCBoBAO4RjcNMCNMe33BLk4vBrMZZComFiAkdl8Qc-rXW46_zEceWR1Q39rkeXrPAz6MQIJKuMLwQoXACJJAayp5gsGF7jXPBwcJ79dr0xN4v7F4k-VZrVOxINmVYqsjrvWTn9wgxIzOVqv4tK1yuPni_X5LtUSIDJiOq28bezM_RmekV4QTpBOvO5Hr1z-Rz8BtamoHAnrc8aBCqREFbZUbIaBD-tpdzTnyBhc4d6J0PM7jaR2uQzp8uENdYse7eYzBSXutblqMXRuPzCjtiZdF9y3qemlkCHcsIqXqA8xCZquoul7fZWMdTME4UBfGYKup2iy4YuRbDGpmqpyPOGpUnKl-5SccbXWPLTxE7IhaB766sLlpA34Q3XOcqiVJ10_3y8beOxFFZk43SrI8TUWL8JqGJa4sl5evmd9a7QQUxCfA0u89TC_Tm1rlYkuiBJs8-zf0ykqZw8khljY9p1nuHaR8r5ccP_AlmfMa1PG6fZSdabBhuRd7mZ7hq_-GDCz9kEw7LVhwBQahoVeINbHXZJAowVm48BJMRbkmZHhwd62Cqo_LBWFfib7ToFWo1krqNM-KDh8kuw5bFwQuvaq_KCCcB807-Ik56NboryMOqMIBQazU_q40tPb47UCq08u89h7YUVBZRm2pyLahN-dTNuTCse3yNyfdgkE83MqJgBghM4gxMfc8GAnAjuS9qi9rQNUOYMdreqUCmZemRcMySGDoxefuf6kRaqSheVCi9XBLwu8wm6RI-cbr4uifh7Hl7V3XkrrU6qHTi-jfqCLCTNPuiw30Kmpae5G2KlXYDkFZEit9CRB19bs1lCvqyb7H-TBlTjsvBazxs73M8rCyztgCyihUTHqdFgIbg6yoOwAGzGmY7IS_5w4trrMZ91dbewrQA2-eFvHG94CjiG0oQK5Gjs3UDpsXmqAQV_A15NHJ5OZ71vkA8esimMLVoGPtFr7jkYm2t79xmcatkQ5oOWf7NUCNmMTA-6pPwrxkA6vh5HaGW2dge5TD8Bar7qoKnmsscdi6FO4X63nA2Q3SURZX6vUHWILxwSfW9iZ1OYRiiaq0yqEjsiaHUhnJU5Gty4ku-yDAJQuolxNLdVAkfE7t9Po4afb_k3yBfLSJiiij-CvFePFhYHCNw59GinoUfbgBMegL_CAgsy0GBYEaZ3povSByB70OzyMS-kSu94Zs81lnZAtUdeSJKcq5SfXKC6Ysug3DNXRjsLSy80xKc8K6su0ZWXGNywnYAGFmtgTmgd4saDr0fsxgeLaZSM1LFedZqXxjFghgPus6J9NjbvCpLx0j666eW0ahPzK3Pio29Yu1RKoOSwPq6ojCoDLM5J0Dbsao_YWsT4AMZpjeZvY7Vk0yMF5cdrjF2PubBJK7JU66j-a0HCsAGGmo6rUVAe5JeWGVyxRJ1TJQSkxMBAWbZuSJblFP_zYHmySakYXEHe3jl7jaXx9X98VyF4-zse_WA8voLCCDBo_AjZE8i4IpxA92AMiOU3WXwxZJ7XAaEWHwDyTggAjBm6bgWvelPPdCW6cO0ZlVAsUZ6sULPqhimRE3f46wvFRVVk6scPR-DhycVYrHdtt1uoLdRmszHRqIvnHkUCkPQjviVKYP3xgZWmf33laGbNXpY2qVB05Zgl4HKOa9uqBPhct7V60nkvxz17JZY9V1V8XIOFl7ruJ9FoNF3_57KbKIC9GnzCRJfwH5uSt4FL4hebgXKT4HRRADkDoAjYv88yh0p7O4ROAhLa7EclCCTHLqiuOE0P5Uu7NXyfRLIS7reZkh29g8-IXxKoejVFONiszgUaS-k_tjY_x2a9gt6QS7uNoZnZhrywqR085wqHBre5mYDrvc_hK2bdXTADtGkLWS9bh3Q6OrxyhxkmHR76NVfxq5M1AuE9f-9WDGMF7kGRJqRkXhgYiEiYLnxKxbUzoc_vzTI_UhfUDgi_fFBbsmpKUYPPHgADNwjS8z4cXCp2f4D_Y4M7MwlirJAak50CjRTts-uEtHrDP8GlD2PRH74bNZaTHNEQ9GvCEKN5tKrEDW0FtTnAktupEYbDoYnSVacMhdm0Grs29LWekCu_3tdofEGNK7c1gmHqEsC1ZxoG8occ8PUcEv425shlxN9pOc2mV4dyMg3Rgk99G_ztuzOIwh23GnXzqnDeg3flOqngVvJbO5ytC1kcaHa62HR8FMUVDf2PFprYrH3SceN5k1RyXc501hS5mYwVW4_I6tjv_UdHpvBvcGqskZO1BI_d1fdmcMwbuHbeAt60sFOfzNhODLNc--qyqNdxDvFh17gqhYESeFIrUVGIg7EBhakz6UULoTV0rHbnq2CG5XpQX_jyeHs38f9S1kd61yGG5pQt0ijmyu-mIchmH53YSuvCGLFnfIF-xuUUtKQMzLGlbbnrCFgeGeSow19wKuysEWGlBhv5fsJ1Bb-ws2fIcXaUgV_oTSKkuB4CrlWbLtiwCt184hhuwOro8m4cgoVoY-4SLCWzb7lL48z9_OOMe8583zIai6D1iQyJ5hadVpaifYoTWjDhQl22qVrRWeLn40aW4AHDkPhPOKbUODxCbFIe-rq42gHdXHNswLZERWacY0KwjKVjHg1sYBr21idPj3Cfn7DsT1gfjlV5Au1ZsgXypLPf5IrMdaEH7VvdnE5inGE7qO_wBLeDJsD1t4_ihgjalZvakx9oQIfUCRISNdaam05KTUBxvR0b2ZXcR9XcByt35Wx2ng2cgj-RsbtgH8uyyLivwRqS9jBi7t-sN9tRecUg7wkGN0-diGYqSPbhk3QVOYFkC6EUNggTKicsoVGHyLVAKWMCuRqfQDVXsT4rzJtb_RT75kp07-i9Zs02Ho0OyRRdFmq7wG8vBxoIzGDW-xUSiIrbogAXGkR_O6sxa2n_V5Ub2oKwjXR5KkA_bobAYewNLDpE0ubG98Mge-legJlHQImseik9MLT4Ssygr4ZwNwEm7p2CILHGOPRaEVaTbxgIEfffcwkkxLFUPojVFheBNZuIVHjrg8BTLT7ngN-ArM68LF4OXucqCKm4jWOdjoinPHh8gYqMy1xRSzQhefD5Ok-SI_5yA_PDk8prYiAzPwI4ywBoLOPaMHlI3vONbqBaVM2sSC7qRfG79pU60RnX5BGYHvvr5OqW05HSVOXhmygRt2ej17v6v2IBFJRdy_YLp6xOT5nr5ZRDOgRzgaqEZaCzPUhUwYuZU2NLcNjPhxjjQaz798-kV8TnksDg-4UjJDeXB2RfprM2iy4yt8dy-3491-ifgYvG6T88OelJWVGF96q1XiBVJ3ggiQNlyjglrmM3gDsm6q1l8MpUMdTWHWBJ6SVlMX9wV4wKnPz6_gT6F7mgQtAnhYh_4imc4Sf1Z2Xbkv4XhVDEw2XzXLKR0tQ4NXIoRytehx1k-2k9n0KuQlC1uMLdqnx9UBGJ0cXny9DYZ9_KkWwZ5XCTYogxRM_QT34vzS_Up4AwsmCVmzAdqerRj0l7Fqw8t6wA1yOG-ZxHWh_7DS3AI5TDkzy7HH9IR0DS3xUGxZjOy2iBtUIRzJt9ZD42YwoCmY61wJQWoIuKW6-b1wcfymM9e4SY_hRm7Awl2D78AohFhhOH-61wgZSlA0MLMdjl_kP-D3E5dbGZs6KeWkngryBLczi0tsjqOHUq8WG1RWhfYvky-Erw3iUAGQCO07yVxe32d7gg_icQkW7F_lIxV6wzVlfrYD7jHUJrmLC86NcnEAYyNglCU1Ibyb4XaN_3zXkTCPxzLZZrDFOpMNsSzWKOWKVMfJcN80p6Aa5__Mj8YHBRjqeZvD2dwV9fAOIU2b-W7RlPfXzFh5s_ZEW8GEcpBa6Q4naAaplDWjxWq6C5lECXGsUuDrmMiKjzLSsy7s-3bpFFgXISk2zDI6ZduMQv2rdeH5TCI7zjZPlkNzUGD9qVK1rSx0lhDxpbnNGF70F4kQ0YGDjR2i19Yj3kbkn2tnleGjG_KkNkzUGpvCqO71LmIA2XPv8fFn_lMcL06waaoSt0w0zt717gJAHvpQH0oNF2yJdO93eLj7Pr6YwhxihDwMAX5VzREUYeG1_1RcYoem3n9hsdmjf3P8HDYu_UOhlEwpYQ4h26Xsa34xeEqfQqiLP_MvytFdqPQEtRN9x0Ax0ESymDaqDgNC0yoirsl_Sq9nfU6tq-bNheTADqspzqZZ4XTasPmtk8Wkti4YLSipOez06ubMDzAKtYGvFy40R9rOZkJN1k_JaEGBeU5iYBmUa-IlKbn9D5-kkfpc0PvMwkDmgXJIj-koVE8S0LN7EVC6kPjc4DdBJyN2G9mg9UUlDmgaqripFdjZrOnMzLfHHk63T1YM58pUZws7NQJLco6uZEJpQEEU7ljONTEAKLgjrLFADyMGwaNq3igG6idzbSl-47qxhIEuJVx6q4cA8-lElul3nAXcTrooR7GAlDLxqtqyUtpE3-w5kJFijLeEVdV-cqk6kzQExswZFk9Ln6MoVHAQfRXHrwcvK9ncu5jpASln_TRTDL7alw4rp4YGvC5SzST34rXaRFeLcjhISDDdmC5XPY9-h68JVH3ubTDarKjhhEfEK6Mlw-WGsM9mFuiscFrMDAuF8-IkEnHpBA3J9Fg36GShwCBlL25xD4IA247RwTQYKQckBcb-n7xsHmuZdg5S0Nw2NxtCU4EB423mYk1HonoonI09rXz_hucRPPvwBfh4pZwfnymaBKoAQxzEQck2xsNFzENrun74OGx0rMXyFXWTzi9uabjPhX9_flJzci9iGgpHRg7xJIJJWZXRoSeSEKJGoEPQtwZRN_SuCT1IXLCos_9ayxzr5vyZ_N6_W0XRDQqplyKKw9vBNpL1PGmghf6ThnlVUy5SjvgHJfTPRpnozj86DxhvKl4Jx2voF6gzdpqzSlfWIrDNh-OgCsOJxZ6m2n9WS8AL8A3ioMDPsOc2bjBu4sDdIpbEyOht72v5by2GnADgfzY19SIqjTiB9cvXCSQJ7PJRyhYQeArjMVFL08i-q9_1MvKewQiTehunGnLWSfFxMWZgyTAZjJIHScpWSkGFjmIUic989tpGLfz1Xt_DE0qIbh9vsEabGnXfZCTTz--17-kw71dR0QcItumCOE0aNaRsScljHDrzrvN8XCLX3LzuQA2l3aY767CL1dxjNYSWA605qTEKYpTdQygK-PCh5I0Ir73pHA0gWoPJZF7p-wjgrpWs0VaELahzm_Yf-qe_ecDnIqmCfkcWOufj-HymhyhSObszWQDht1mgYZCKCfE-zso2c9jdMLPVeJBcvDriMt5k0GutnXKwlpEEeA";if(!e)return null;if(_o&&_o.sealed===e)return _o;let t=null;try{t=Zi.parse(JSON.parse(Uo(e,OR)))}catch{t=null}return _o={sealed:e,bundle:t},_o}function ln(){let e=jh();if(!e?.bundle)return null;if(e.runtime===void 0){let t=Date.now();try{e.runtime=Vi(e.bundle,{signedAt:t,fetchedAt:t})}catch{e.runtime=null}}return e.runtime}function IR(){let e=jh();return e?.bundle?(e.keys??=new Set(e.bundle.filters.map(t=>se(t.slug))),e.keys):null}function Xn(e,t=!1){if(t||!e||e.length===0){let n=IR();return n?new Set(n):null}return new Set(e.map(n=>PR.test(n)?n:se(n)))}var OR,PR,_o,Qn=k(()=>{"use strict";Gi();st();xn();OR="tokmizer-default-rules-v1",PR=/^[0-9a-f]{16}$/,_o=null});function hc(e){Bh=e}async function NR(e,t){let n=await dh();if(n.size>0)return bn(e,n.values(),t,n);let r=ln();return r?r.selectFor(e,"free",t?[...t]:void 0):null}function LR(e,t,n){let r=Vs(e,{...t,keep_failures:!0,fold_passing:!1,mask_abs_paths:!1,transform:void 0,truncate_lines_at:void 0,max_lines:void 0,on_empty:void 0},{verbosity:"normal",smartCode:!1});if(r.trim().length===0)return Qe(e);if(n!=="compact"&&n!=="minimal")return r;let o=r.endsWith(`
|
|
122
|
+
`}function Hg(e,t="normal"){let n=Qe(e).split(`
|
|
123
|
+
`).map(r=>{let o=r.endsWith("\r")?r.slice(0,-1):r;return o.includes("\r")?o.slice(o.lastIndexOf("\r")+1):o});for(let r of ER){let o=r(n);if(!(!o||o.failures.length===0))return o.counted===0||o.reported!==null&&o.counted<o.reported?null:CR(o,t)}return null}var Dg,Mg,dR,mR,pR,hR,gR,yR,Pg,ER,Lg=k(()=>{"use strict";fo();Pl();Dg=/^(?:(?:npx|bunx|pnpm(?:\s+(?:exec|dlx))?|yarn(?:\s+exec)?|uv\s+run|poetry\s+run|pipenv\s+run|hatch\s+run|python3?\s+-m)\s+)?(?:\S*\/)?(?:vitest|jest|mocha|pytest|py\.test|playwright\s+test)(?:\s|$)|^(?:npm|pnpm|yarn|bun)\s+(?:run\s+)?(?:test|t)(?:[:-]\S+)?(?:\s|$)|^cargo\s+test(?:\s|$)|^go\s+test(?:\s|$)/,Mg={normal:{msg:40,diff:60,frames:6,code:!0,out:20,bulk:50,repeats:10,trimDiff:!1,changedOnly:!1},compact:{msg:12,diff:24,frames:2,code:!1,out:5,bulk:20,repeats:2,trimDiff:!0,changedOnly:!1},minimal:{msg:6,diff:8,frames:0,code:!1,out:0,bulk:10,repeats:1,trimDiff:!0,changedOnly:!0}},dR=/node_modules|^node:|^internal\/|site-packages|dist-packages|\/lib\/python\d|\/rustc\/|\.cargo\/registry|\.rustup\/|\/go\/src\/|\/go\/pkg\/mod\/|\/libexec\/src\/|<anonymous>/,mR=/^\s*at\s+(?:.*?\()?((?:file:\/\/)?[^\s()]+?):(\d+)(?::(\d+))?\)?\s*$/,pR=/^\s*❯\s+(?:\S+\s+)?([^\s]+?):(\d+)(?::(\d+))?\s*$/,hR=/^\s*(>)?\s*(\d+)\s*\|/,gR=/^\s*\|\s*[\^~]+\s*$/,yR=/^(?:- Expected|\+ Received|- Snapshot|\+ expected - actual|\+ actual - expected|- expected \+ actual)(?:\s+[-+]\s*\d+)?$/;Pg=/^(FAILED|ERROR) (\S+?\.py(?:::\S+)?)(?: - (.*))?$/;ER=[SR,xR,vR,bR,kR,wR,_R]});function jg(){let e="dkzPDPWV7iEAZHbaIZZnt-lJ7Yf4US4xHjH66eikxd8hOvSVjeXONmZbUcTz0aIrHWuHQaNnF3HzNdHPmsxC8lpFKQwqmOQCgGCSoE7v6aA5YRfJrXN4-lJ8QZxbKpADbBf4_tj49xM8RNrAwXaJcLANR5c0yOVYyP_0AcKhefUi6i83-uwCyBimzbbepB21DqyRurIVbPTQfJVTZ5Vkw-e4Qp0pixUX2f4paMCA1abj2qTzlh7Ld_K9zNm3VrvNc626QWYli7eXnj1yb4OLAH_4sjxcdvz8gLPk9TegysPjMw6KlOGX837Qk-zFSCPhC9hrf-fRmMAHrCQF0CVk4zbbRq4Vg8PViSp-S3Z6xRui0KFlOYzSh383k8T3GxjIdJST3Nbadlf2hO_1Qg_pvEjBtC8WfVf4QN7jFWw6iZPx8K9PpDPZEX-aUASZoGnKkJjckMygi4D-neEg0Txx91xgabALuAnz_h0_sQLT-I-YwbYT1cGlMENkrQW0tyap0O9LXMYx9ufWQ1DpWOPYUSH-rUMJh1lc5sIIf2wSAGHu0zuyVSQQQeVcMQXR6K1rejQ6ZRdMlfHApvZg2xw9Yy3vqUiCva5TfMJHYHthojpF-_wlY6llqc6XGFcHEnQq-i1ksU8eiW6Ni4qZGNW0x08zZxZ-kEfgDwvAqpReeSnAGQF8cmt_ZeqlXAk0DJV3rlksGv9yok88luMb8Ffq6qKiArUdBwZqLnJwgtB1nxlx3YGuXgy2WkHpVwcoH54ZYK9Mqbyuzpvjc2fWqToaJ3uxuKKmU_H4z2mOTZh17tK6OLv9XCJeb14PKlapO9O3Nkj-arq7R75S9mg4-iQ6ecnYtjzgt9b7VUAGSHTyD_dqsbblLzKY-wCROxxFu9pluE9YRhWec9B0_vBzyRdgTcQDnuCgsPoznmu3fyeA3Yp0a64TIo_Bwd09gI674fvhTiRkgbrN52thJ4iZyDuLaySD7_1TiLiETCHsJzvAhJNa31mbfsDT5TDvpOTtUIqX5nVPBtFs3dLyQWZ8PcBH64RXZjHjBcJipDtHeVGmX2Sg7LyRyU0wuB5re13ZCul11Lta4_446QanV4NjCyXNXPPjlnme_9l12CAST9yLHTLecWXyNOf5QSt565YYYW5duu-RTIUCBXNEzyrpkBo0vtcpdR0lOG4PMsLKiHQuMUPEBSGqWiKQmtnJXEUxCYKWbEXbeRaJCa3m_hz8IN_lfqXT7a3s9gEKzjhsD5T3LI9DH6ZCEBVJgVGh2VwIYeenQ-dZoHUSKdr0sfVsqjeyfdSVvQYtScKew2NwDsltp2-buJVQXFoboHuemUfR3wrSEv_99c7BgcpxMQXlX-2C3vtg6LDVHV1-73Skvc448DS-N6QWyhOyUWbm7i8GdwK_0a-u4X6c8y8_TSzI3PvIxpJPU-EDe_1-FIzy_SecUgAV4zD0XiIz_KdJJLGXUqM1gZ-Lp-RS1TAsnHEKGlFp69veZTWmi_Z9YULoG2iAMZqHx0XEPPdAe9FtYvJBr3BKbSHqyDUblbaUp5W1zLuSC_lBqEj8GNnblRM7V5EDzMbTdSQa6eTTf4Xf4HSi-z5XzJPbha4DZ6sMvOUcHvHufyvrYA2uj0DkWIYZImfk6hRzv2LWx0yhAa_l9R04Mx84ikvlHoEDyCIyPtVkIzRH5TIkMUUYFgVgzV1sG7AwVjWtbfTSlxLK0H5IRXFyvXKXwRCBM1kkhFaEFys_TmbRGVIX3sleiGXn8Q2Sfx-B3F_Zt-7YkTq8EkZp_TScDlZq9P4gMi18DrU1CL4SwWCYUw1ubVt3sflVUMDpBMhI_ZJvGJHHw4XkFzeNYQJ0aeN1lAjvLnvYD-vyd3RV1lsbyPIVud7orWVTeOddOA2YbRNGyNrFBaCXSXkkmsF5xNnafGcZYyWgGt3crfhH8PnITAt9mppt0YqrGyenGqb8DBe6-3rHMPoejwkbJq4JczyCYppaEYalm3oW9p6F4y_SORjV4WqBhqhrV6Q6LzH-SeoTRtLtaZaqMRo3Py4LvXlsy1jyl2RPm0FSo6626mEAcfG16DUcodbe3XPHdYlu8nkvSqI7TwSYt_EVwHHyiDTTNUUiO1vRm1RIB3WqtwJImp9VwOKUQcztcGH2MZK39tAJkvcDEuDPuaUt8byv7HYyL7o5JUv_tQmrR0qkS36cacPp2dr1iuIySSLlhP_CHB7ke7HodTqjb5eLOdzNLHojwQPdJ6Kw-VjC8Bm6iix4n87BYt1kNUHRnhDroIHgwF_M1oztWCwVz7dIPSo-W2_SU2IGSB75b3_18b3F9yfWYnJSFjEknrvuvu5dINCer7zleQ8kNzy2BKF_mXcHqC8MNUFPNSm_mxa2_-LirWPPW200NNFu3Q-ZkM8Eot5EYFfM07BNWbKo8OulYjK9BL7jph6pI2RxEctA7G6hKAs-fmhGk5UE3AwwH0Go9-crqgR2Am9VZm26FPYiunHU7tpe32-BBtzBGcLPBztqPhdLnoEttGvxw_JxG8f0H7iOiz2F2ZGUKfkZOnDCyhhJRxVvJsGo685UWUrHvV-NW56QZUTEHMjHepa4Y0JK0EnExR0AnbXr6V0HlpFKTNA9vFsVKtyAx5Y7mFK-4TqkveeRromtGjP_H_Um5ibOs_AXuIGUlJxNFhZNrEMXWZ_ezziJZ0hIZR7BhkDIE87A2cvdEZyJpDq2OfTsqxs2RdIVPZqKYxFjbzI2ZjUX08SbIe5yZHzCX63-eFCyr-IZsmq4X3-3ObsPejLAqUrQRkTtPNdQcSqCEeSQtbD32AEbRTuxzCQIaEPGqbSbjFWR_H98mMEdnEEJ-hy7Jcfunf024T-2Cy25z7qa37EeEhr9wgN6RKf5NUDedbNObas7SYgaIowbNqZqoufkUqbSkwnMNy0bgR1st3ittZXAar2lnqueEFgjy4fUghzcP7ZSmOafSZ3LqS294Jk8Fqg2C2fx6KKcz-4P6vEzukihFw4G06_gjks1cs49CVtbOGkj3MN0RSJQt59u6UdP6g9KuTRXuhMtkd6NklXd-zrJNdGKOO0PqWrSZSZAMkukpqulDKMYe7l7Ot1zzgzzRn4_dQPIeaoAWzqn4Z7pqmJ73BUZBqXBy4Az8aOyWCcqCSyRTXZv0ICT7eanL8ujNR1ZhDJkUgi4VzzsY4GavXikQIZunQngpppMGsPvQVlnhv3a4OxV5mbXtDgog_Zrzt92L3jY6sE5rhcDxzE90-P6AlVqvE8zUVUxdB_zgm_wEeaOUwNncNe-j6y3nCiqEBE3TgDCB1sInEQqiyXyn6bKTct6_6psG9_aXv90XPI0IO5EJFZEMsmNwimM2UbZ2MXAOb1mCy67tNUcI6LMyXzrPX2uEBCdrVNl9dviwPMD23RlMMMLHn7KMM1E8PgunyKskCVf4Vg6eqflE81MotCdsyGuWUdzSlpAgQfpluoDLR1JROsE2-meM-u4Gf8hgPoicUZe8LeHuE_yPeaaffN2TBpphs65D4KRsqHSULcbArDDd6unYX1EuPhZOzOseplxofBz70FDLg-XHyL66qreuB-flinlb90GGA7PPwgBGFj4QAWPFvUoRqSNmBkzlX1x6rmWqo71vkGF6gkehNRSOWJjEP4DhCJoMlxs3Vid2JewfiYx5hPCZKuzSJR359-f21St7ku8jx-0Es6t15CvSQsC5XOMmhXHFz-0yf6n6BGnkv-Xywuo3OHqFzMdwThmPFrInFIeaORMglf1mXlg9ddHCln5TL9W5mdYFZMMHpZxKeW-eSwetdEJR7tCrRtOEW7mY6KVYW1e736QSvZhkLfJITUbTslHalk9iqn9IjTJK-zLX4y-J4-5egoeEsowZVYYXOFF99nu6UjeYtLbe6NgMlcitTOD3-weXOK8K_4R1XCsUCWh7b0EdaWP7fCgtOPqzCPNPgh0ChJEuGS9GURoFvG2h2k4Nx-X8NkabAaN17FllR-HtjZwjj5dzEOZX-vMn0SqlP7rIitQAYCv2EPMXV0VsjB-_zP9LRuSgaTbPEJTfEsI2vKefV8jV_412AuNhBtngzfZap586j7UtiN6eXIjWaWo0wfPvOK5MnZoi9UWj_EdWL359FPz08gHYQEek-rk6kYNqKELax07WqqAdPjEBhf2UtxraxCmgdjTOHzcJf83lj7O71YNfEq64Y93JVo_csCae4IePaYhYow3yr-v0n0OhqvL-32C4h3ZtA8OZ2GocFmSMqepduPtfgsApo0lgl2hC0eHufH9vshXRyDinvSwTE2SufZAM4vwh7qNDapVguKKERGSBDJv4Ba8A_k-hw_zt6Zi2RzxRQC-6MTekf28jJiKwtpZSPKdP9HUjNpcTWQfZMQOKy116RKX8aqRMi4ZljEJcL8WkurvMr3CJpFWsG8_wskTT8fbZyshv7eDfZjVfFnrDxYsYhUiNw2YwctKMyermwg5htk0-l5cYSeSntDPZc5cLEEhIEqbYp5KV8e5r-5oLmggkBubVTLAZrOfaUKCeYI5fw7_zn7bq61nxFgY0-UWYLytwYHpXqRm0TzXObC6I-opHeXtppOlad4o8PMIh0T58vyLPMuyGf5G0LnpeCB7wX9ObK8k4MSzzXMnuRucREpHymGuVuZlD-pGy1DRW2muO63QdN4fNA050CdOHS9nZIaKe5AWN46mS2tklqKYj44lZ9cwUe4hmcGAzMRzTYnFOnnM63hqPmZueiaIn3sJJxZ3Zw7kU4GfXiF8lIlrpUxAB_eNGLYuUq8iUTQcYNS3BEy-FiTxhLr19s-u4xwBDaulPt599UGcSREMYKG9LTJNFe0ZxgMiWBXRv1xLqS_CXpbMpwAtCuLX7ud3NWD0sSuS1ypKx5fPbV1Uip_o-2fdkmqIyefTuldA38yD1r2leaYEqR_ag7oNZU-jP_759wXU4eBzXw2kY6kqOgbes5i_8s3y7HN0X8aJRrsdcusuVBM5g89c7iW2FV3lx2P-aKpdXqb9kXtU9hHPL_xRZKKCZNUMrulOkHCdz2zgHmo-uvAnV6kIYi78lgoXTtgJdiSeFKiWQpok60Zphs5Z4qg1HSbNHJjOrY-upYDsi5_oUIHzwFA5X7OxDN0GrbUjJRzHTe-Z0F52R89Dy1BmaigTHDnOFZfYPYN7wycB3479UmEvHpFIWSOZM79cfwpkRgjS-XltQUetcSjmrC9X358uDvYYk4cq0YDfrVuPq2a5CMAxzv-Fx4wpr39sufFP19PzS7jxMRBpSvuEnEprSTmBUaQWgqcnnYnpdTc7_Ya2IEQUeqyuMl7_EkXL8lLzFWzz3kRZ5ReWphNrXjykCFXCyq8kxZgBytgCafu5L330PJjbMOOoVKHaSi2IhbDVZcnoYR2y30Ov8VUlvjVzKAdNveiZzRR5e1K87J7JCAu0KbEojwj1vJcZ4ZjwEw1tyXvvIvs0Yk0Y_bMuUT1YW-5HYx0ZPLsDvCysZ4wHe5cTnQPBk5fqM0FGggynn_8sjSqm-1J3AkxovF1TWOtoRNrGMPj6IbR5-YCxh1gTPd8S-tY12OTkb1lG5nTSBGAllcD0lK-8BU-DlDCOjnZVxx-yRq3I8PmVz5hJFrVbvlaIWi3sgH6RJhWAoFa0AZ1QNC3BpncH5hTpKklzizZfYB6dBAaq8bU09VMh5i8rCg_K8Lr8e6AorykKSa8X5r2hTZ7umVWmEbYK60VG4WLi0lhL6SpOwBGHr7Lr_81gWOM-wtswntxmr-3xZHIqLD0ksmUJnP9wIk5toNDndTmVpGvA_F7slwSvvd85gOYIXiZqndBFH4IpY6C9JVkQx-mgGn_n1nyiMWpD7uzkGCKRctIfPtRkZ7EoMRSwl8hWHRvFHmig6gxhXjZGue3nRChmIhhcGNLbwQ-JF8bQC4-RKiMtpXA3SrawLlkxogyqWM41AozKjpKc19B0HHfesazoMAnvdKXzXTIpuUUS8RSsqz2HQAPPy5b3Ro90OzrQ-jt9KpAQmCveJM_sfNaG-l7H2XOKY6Umm_m5YEuoSfMDsg_xllqpgNdG3nXYEAYhwHXFjB8OG0zeMkBazRi1TneEZFvhxbdOH47_q-pjyn9iJ78EsF0p63P23kGEiw5kPFq1HLtYY9eRl0JIezha0-oYbgJFkE-4_qFCPhrYGo-5MOXjofgwJ6hANSy3Ew1RmwC1o7xWzY7_7yHyj0TgHrx7Y2Kkj-1vyjjObE0hreZ2rThmC51Vk4NxopTWRZnelVDmWDirJPNZ_1yhRQklXuU1ZfsRohVQlDHsbzX2QcPcgELDkwFJGLUwnbPawN90VZ3xR3Z62dCnVFmGhO9Sr9xF_QrIjWtmQBuQ6R4yOAVc1wM4yCdja1yWrnyXTiWrOZ_Ke0nS-OQB8sz-8-pJ29B9tiyRV9-P7HF6RkvrVueByfL8X7GioGLNdTxiq8jpBbqntdoz5ziKhn6-dqBJD1md48wXFlMaItU3FROdGbBXPn06qwVP4MBnN-jtGkIpiPnXCflkmC6Jydy42aO_b6elvfO5qOcSKqivJpOG-Hrey_EISp5b0JHF8X9yPLLqlPcGyHXixWZMc43AO2nN33_2xZG7AcFt6AM2jE0j7Feu9oO_mTe23HdC2W1b11tWojjnvHsl_5qZprbaHBEP6pOWFZ7VLefTsZT72TuvVlngCESM19nzuo-i5cgdBArgRJm7aXSAxtC_o9ECyhFqs_9zX6KBJN0mz_bO9t1gjHoL1hXswVosbDNaDz8wCdjgkQv-CLCaemVUCrxTuNuuervVsGdaaPLQh4zxuqIgqEcg5XvoI6TfCpEQn8lriZF_Mi918eX8ueje5AlHdcNn-UqHmfAtNNWQNUUxx8TrpMobWE2BJvnd6En2NlgW8EoaBppe1997IdcKa6g0CKRc5NWXlDzsTj6tLs4xCu-CcAWNb4QE5f0ppyZoACq6EyjTNNr92GXUWQH66ktE8I2spMVdhW0wiv2uB0mKPVVZLMBE7DRC4si4I8UxwUzII9Drvm6DjPouUrdeLBUbYmu5792oduBzLZLZ0VaQuVZWsK3gaIU83doWs0jWG-BZC9zZ2sDok6g2ubmF8SYjMYg5ZxQrsunzx_H6_cabpisEB5SQfNVxN42CmDTZi1OqqTp-WY7GQsIH27e__hAzA-Qbb2yWsDXjPlEO0tkwU1-mZS1Rs2W-zMR8uy0dCFY_OHU_T79n54UGZbE2OeOp9h6kXXYa3wSpYk2ZKbTCBITjVp_SHosB2mAUKDYo3Jkqk2qDlIjCatdYDhuj4qHY2kYhfZXxaWDVA3EvDsfuI2YZ9JYpAHWOVqdN5-XtFM2Zhmew1LHeiG6vFqEm8-TwAlz1h-Yi1V2w7GzcmB8MBunjw_NE0CG_RCPlmUt7R18NQWhbB-xOB4fiuP_TL06dMJilTPNiELNqBEuBrS5UaoTzPMeHUfB5QmIMXcYYHSCMPFpLLE-nNISr1qmribftTEslJ5WK_lwYD6AfGaYGfI1np_PF13KOFqUJmjLrjDDz2HUwPwQ1fDLarPIa5vFTtMgEoDiNgn0ztT8h-xnpX2JWaZgnvVVQe1XCm-3ci3DzE59E9JWCtX1y0068-JzpIOfY6Bb2HjaEevSMJ035mplyD_ZCWTM6zpX_EbX49pIrjH6KzAA_VDPiQOi6efYw_44l9BsfXPB_KwIIZ9-CbVA4kyfP1CE5HpzgOb7B0j3BDIsIVyWJhVlQjNuIhlH-aA2U3AXQmkV-FPqBwOQKSMS4ddrGPisNO_UibWeBTNZ_PzgeQl6LVXg_jp38fygF4noQ6-RiWOqV7bCdeVrb4RflxTHevaMioc44e-AfXxLH9bKdwm7kcEQW84Tnbf5wY5vrSjVxObtvg660mZQQQsW4NjW8D1EmsYwMnhA3A6k9sQZleJKH7Zr9mjzUw1So8kDsFTXLwCEfbzDnLVDLiBnYfy16SXNx7bwrmQ9FhKu5I5xqHOZV6EORGiXrKCyn9oWKVLiqkpjhYdZFp3rb-qNd4-o6H66Pm3jnVS9q7Rr9zVy9kaT4G0npnMn9-_gOVTaCHo39dkE99cuxhvopzl_jO6gtewF1WYse8CUxpANbxdRItJ5DTvIgchVCBOYerrXIU6MzJuvQa2hUFQPBSFreA1U_Nz6Qmo8aY7BbeY6rvjSmQIINsoqC5QTZEK3zFNSAV7sd60ym5rEJ2chPyRWCO2m6pf58igXVSszpWItKcXS2oS7YpROSmhR8hx4AqPQqA8ueluTRCo40H7s6r7URYhmZ0FQdsQVODxUIFO45hRM_f7hWTxEdUtIPjOo0d8TF0D0N1toCvKp_X21TJrIMua_JgI0aauCkLAb-Soz5NuPl_amqcghtoyli5nXDT1O20XjBQ2XBtP6JEhG7WUCxWEp7IkFMNtIJbBFfcmk-aVdev_BekCKv-s5jTrblfuTaHo_VWZrCqGHSJTMWdjtOFDUIqQ5y44oOc-WdXy6-hlAE6eQdpOGH9vkivQRY6PfZPfL-jTFGq6SGjAL7zp44JUSh2Ebl1nNFd8DjYyCDJPNwOL66KfFakNtdmlUCJgAL3IPLvhIWqhBmUMaWbbEv5_OMETeQfht0TzBt7I0_ZdyLA_G59DETkL-G95optmBIVB3_INkbgIcfaAArU5N9Nd3FWbJIn7XJiInHSpiH-Uz3lzHS6ClGsWxVefEdyhNHCvZdHZ6oiYUlfXrLy0G_VLZVPqfs2kZF7erltXwymW-EH2IWP1Xzxtxpl9WwmRoqYLHaMhtHPxBaZBrk2qhKiL3SbCq5eQtGi6-5YlXIYyedzm-en9T0hcK9rr6wPj3aBDRbwX1-wcWdwwHjPm0V3VQ3fgYGuHgI7sMg5GkwlvNYq_E9oH-kkwTsIiQsTYghKsV9sCXAXBz_mD2wFajXkG_Oix9bnYweOSQHJerdTOUfQbETzOJW_SrV-8ya8qnvm43BVmtpY2eJs5Dg-x2i6C4wUluRY3cMk3LMvSGMGJmZvYcvvAZzJ7QZKsyuLn056lkqBmgDGKYuqK9JHaPbMTWprad5-QD4iw5u_yPJKvi1OWC6PrHnkKqOIGYJ98xuUSB21Aj1vy_xTBnwaD1p_z7XiBPywGN6WE4Tb5sPqKRFcjfmoiWLtdMeY-eghxNh7Aa4Cx1lsfjip5fHJvB7E-xmL-mmHfZLZwQL05qh95bzwKupU2bsk6VY9Hk5NtFv2SR-RCqIWeOn-V4lJLlULqUlalR8ABhNSyxGK2wntb5Y89d6Ow1UF8ILVGlWRAFG7j2tLGNU4lKLtCp1mmk0AWfBHvOKW8JFQyOueWcQUbWmEqVjPeUh7MEQZalVa55pyJ72LPuI2JIYZnfzHzSV1YFJr5etf3PtvenkCelglL5bD5w4rZgpoTTFrCER2EcQv0LobfTxM0gLhQuWzr8F32gwIkIQC33aoeyznuVrJHTb2aNYRg8EhRiyxIYUa1fc4KICpeRfvNSpjXfkiNGym_qsviBWWexjFI9CAUgvyv7kCOvMTlQ-LZtIfh2IRPJyhOeenONIorL3QFIRGAfH4qzWJNK1WA0V2vGBSWlU6owi5_k37FVqAQSQZADAO-oLy-6lLWEZpZI29PbMi_oqWdjEyrk2039jOe0hXE_iyAmWUo4-Yfa0eAM9F3vaDBSdRag6OBuzGIpprwqsqXmnrPQbIKeYCxCqaYolUI9uOmGsrR3a4-9FEPcBxW-2Negvsp8Y3KDF10qZvNYAJcRRrh4D3yBiggMUWF3epfkr6a1vcpgY8fvl42_BK_DFRFuQqcmpdJ1v6aY5J-2KpFbjSawFZ1OJSTkJBd9KePHmvUFSZHOLF1EzKD64cWFpBebqf5qRWelQpI_7a37OkR9uUyUOCuyG51MNgutFHuB4peS7RxXE8xqW92-MbCLlf2o71pSJxkqKbyXRsSNexRYorgwJ6VAGHH97vCORbDKjDH3l66Uic0J12EEUlkmImGvUzG-uHYEoudNG51ZclpfgcVLye3lweLKUZBFBZ334zHgx7w9pgSgdgfmVqRFKTlgAejcUj2yGLtqt3IHhm7FJYZFtD7VttF_XNVnpgqGcBLSDyNMZXANECwxHzBgn33kRRbsHRDMkIHoPErVC5N5AO1X_exr8Y9Hdb6zip6PFU16kQWNIfGH_K6pkOo3BssYH_uhW_5paIy_34zT94GAySbxfCs-pl8daNYpteqaJVLApmyz-O0RHvEBOV_TVFzTOHQyF8t0qM6zsLYfVsnPnz20a0FPYnZtl08ZB62hc9rWzGd9mfoe1Rj8SdeIEFxDUFucT9VYOHRc4w0CBLsE2dxj-5UjUUGFmySMfBgjeJGsesl_rab1Ib6MLPedgvBkQTQxjR0U9o4zsmuyUusZVBTIqxRCuwpDfHdxBLB_2EwFsLgw_d8CKIe0iwL7L8x6X37dH0xCbDfMZSgXuVq8H6QIstLUqqVc4axlIDL_UtAj0QPga2gwQxnMr5mT76GtEWdBQjoRjUMncjAflz2xUezKdTeCflVgjLgJGH8nY2D1Y2D-iScJwWseaBi1qlQfX2VRZ6_rkoNbdtCdrZM3mPJbLu3NWJkF-RoZYX3xcrNuyOV5V0V92mqriezfDAA9JpO8N9aTslydnkXOgiVis1c86HEfz0tToGj6CsN5x3JbD5q_8VC8RmtDvtlhLGF-hFkb80TLSFLY2UhI-XHMIz1Nsf5noOrq47zpPMvq0K-rHTNOUUmcG5vXAOkJOBOcCx7Coi63jrFfqywEBPzTYnqf5Xjq3PLaDXSXxUJgFrC40b-fhkajESjmKgCn3lBnB7eRG8yr2NIsx4hcrYl8qhlAbkYi6KSpUeTciPmNHdGAzhfSN1KacVmxk6mbMUZ6Bg12W2ntpJ3Y6CbbHphd-1NPco0yTYM8Qk-tUCuzxU2ZSYKEyN2yVz-VKGqoQClfSis08qAzIGH5l0wModGkhW8dQbopeEtays1zcj43Y1GZfGy4AtHczDAW1-BuvVKQ0jgSxDrUKtOG6RoQ7aNyqE2FnbzWd0M3fQ9famtNuht9OSjmR07pvTldUB4upsVseYa0ZWaO_Ce4ehOL0GidZN0TfJ33M1v5z0bLzb2DshJfmTgZmSuBLyGObkt0Lt-Xe-QCXMUa0SbUPV-mTWJrNeVUXuEuF9upzbQLtuTJQ1qKPhDElzsc3w514JKiYj6gmDjTpjUH478AgixKkOgeLcdRw5zb5QShIYwBkVjAfFm8UJltWO3NJvAed7UqnTl-waDikDqrS57qXt5KEd98i8-i5Bcauuj4k8W67qHZZSBQz0QzNULwU761gJYFRDbb_7MAxmbPq9B9h79yCJ4rY2INcgHnmRDE87SghvUBblIsCEY1YG5HKyf4chOk8SDj7QGydz9tbXtOdxY2CazWrN5DFWcZ3dphi6qkRLUbDFtZgS7ogBRBVoBrGAse18o5_7ykRc5iFx3cJ3OSDN7lj16jvC80JrQza4iXYxa1QtsqY5PgZMvR25rGzd8x7IVZ7rXfc9vAmsSlxASyYT22UqfjEOm7sbXW_F1Zk4X3pWX485bDIlMFydD_5xc7isHmGSCbspF-BILyypawIDkXQN6roTNovwQpFnd811ilmhHhSEML82Ql2jCw-yguORruPCDVRYRd6QOJu104-HPSWEKDFp1-dKhBKRMTCvxaCN0zr_gcXsrYkeCLPtHNYrstVqSKvM6Cd1dw8uQdZEC2Es-OvMTnuXasME6J8zY1NdsqYcnpxecfiGrhf25oiKfVZ8Z4qIxZVYaZsMTHr0kjhi6s0qGDeiU7CG9CVzq16wcrNKkooWg6ot91ag02o5hIywMPL7Q-Kmv1UTSKCszFXXAN2BgvYD77s4ik-5w7Vfz-MgxANuOh-N9RyuSE2ms0i9fEiHfCrz_gERD8K29H_Duck1qnLU-FFMmJ62DImpgVAhUSjQO0Oqy8W-W38NIPVnYgkPnHUi3ytq4EYWsJdprJR09h-1xrHToZ5QW3OUOmgbbdbUFbkiqcVgVaRPFYGhE3KUf_jiBDiGgWAu_rzhBov2yllEyD0qLD81GfEN1jz0yU_0iIFa-QKZM9sYdh5hcoENJE4IhRha65PrUtCxWBYi5prZiz5O29Ko17NUWuVuAEIL_WdRpd4riz47N1s8m-IVJiiOjb5rwyI5fp7qnmluVFy6gdEfhs1oqyCJoAZr4HkxxJeULKUOdQ_v41el6P4dathf5I8PrqUS__7WHo_Cxv7DrXibEeijbTRA-vSsXaaFN7naPYLwAKOk4e7pEyx8b2NzZJXtgbeYkEcE1kffkXNfXdW3pc92AymsA3RcHoAkNshtAOAyeHXEgnbdBACISP19FWiirMYA8-BI_BgV1fTdw5QtXxYkySLgMMNO10dL9WhjvO1pMxMnL77_00X9UuMfrEl6yTXVaKRARSvtrhw6LVnxq_UnTDAlVrW-cjeol1Hsr3UhtwoUBGWzoeHIIDdFEsjVq5NSn6jCxcT-64P815PdrIRlb0OOnxaDkRRCuoZSlJtksucdYnqsPcmGpx8klxMfS-iHXKLM_EuQ3zioN6Kvxy26MsayIhrJOvWGhihW49Jb7ZXLrRLmcA0hTzFY4-gcG9pXY3ms0twWkwfXnXoEuPZcKWRX-nWrQnZG7-WtffGqkwznxK0uWS02mTVbJEcMNtKhk9r_Ac9hj6uQDJkJXe-cmodTAzIaUDqeoFyYaUMQz-wMmcxVx2tt1odB1FYfbaGkqY084QWTZCD60pYMdUSEEgX3yAqzqhJUc3LdcyzuhF7g854kajktDBatSp4sSmWRd2pbOpFt9FfhoY9TMfUXyQxlH9wym_SSHdC2SKp6Nkou4pHvstdar59RmQHmscizLnsuRm99UHL_2nIrp_Xni5g2qQts7x1y4pIGESlb-mHVs8muPcDM33ISvQgyT2LRVxrRA5LCt57gvkVVIHhy_XVaQri_nRPjRYa3z_aq9GRkKTgyzTIqWKMZnNSVCMHcEveL56lM0rlD9F-5kEsCUSq-RxPPG4T4EjGSWOEqRHYqDFpmB0zHBl_mHvjYWio78OXoa-u12RxFiJvLuwaFL5S98ovhVijnNVD2Sy2MrJJ1BPwxpJEWWl61D67FGPssRXOGNkBPd9fzvWTzgZw-mJbDmdSPCY8bQlTdL9g1VJp-rVFnUSUOOr7gVDFxl0HqZZqj9ffFS3k20MXy5sncLIDzbwLunuy6-cS0dbmn57GPd1pU3oZwijAXB5pOrRf4h7HJhAkrNyX9PT1aG_Pvt9vfuc-dGFCtaInUOQiOu5SOcMK_V7BvKwxATXG4UU3cgvLtaecGxZk0GIuOT6qn_v5ArMfrqbxSDssv_jkUayrqpcBQojO-N0UnRHwc9hrAzx3Rw2qf1gSds1qQtK3V1qgRByqtYJYgs_7hUJBKc0PxBccwWS0Z0rl0V-zvosW5bvRpefslFTJztBpX8RKTE-Pvbbioyy5_ePHUrq4EHCMQAH6VUBoF2iQWgGceY9R5km6ECcjJuZbv3y0e3m28kAC6QCvgw_CGNis6usbROW_TsA87Jhz__zdYUCiEqhCoXCa6f4UKGj1HKF7ILIe1X8s8VcOSVugc7n_KG4h2_S29SfXIrUm7SRyhptO-gEDdf4-O6Sguqh6rEI7JRT7MnedF3cD7i8Ea8ltBk-n68v9Lia7VSY0zd_CNeT2PCJMsksoD6Iegk-o28pbU-mQ9l_jz0pSxw25MY7c9x49luy7Ih5AY3IAU43GPWN-v6TZba-U4TELuCCoBSv1ho5dUVKg_-m3RIfAvu_NGKwusjomAl6VALEsoIHqpeYtIdGGUWYaPK1ORI3jDRZArq_tBNdFcQIKhU30jfzX82zVHHxLzOofBmPj7YL-9u2Av8HwGygIb4c2gwa25BsPZ9f6vlRxatQIDJB89dJPbFFwFhGYYHc7Ym3gnVmtxgR5slzGEchS0tyal8OtNesO5uoLIEa751PzchKl1a7UvVv1EW53s4cG758AdeBPx8ueKi9NAZx7OgEOqbKvAQfWv98TcISYQvrL6IJ8stDvj1Rw9siR21KzTA_JMfroXi2pRGBFYNz9aWU1yAultWZPRBF9xVDvzZucAFAlsxI5dPgGomoQf8Y-BGwk6Bn2wKyNfE1Jmn30XyTVatCXwNm_N28L0YGAAC2fMZv4xG0Ud9h0iCMfC87f8gOfvs1UWKWggkMSEErc_PYYVka9TrEYUf00DdANXcFx7XczgW8C4n1zwTIc7fusAcfVD3tBPUjBEOwbcPYSjMTHEYfL4kXWoUfvuKEz0dFCC7Tt_EaOS7tacW_UASGUogRzM8tw-5g6o37SpwYl2icakW_IDN3m52Pc40oSMW8veMWkw3k8j8umcoyBsvkm2uAnC9I1aMHLPkm0mOxfnNJkfiwtm_pUWt1BD4w84s3RLEPZXsy5YrbUSLiT52wAXCH1oeHrF3Pw_AmaMjraOVnU8etIHHjlBIXXlui_tbb0tNxdK5Zm0S62M2MOuRc52SA4JsjqWudPaPVFnrs_xwnGb9gSc9qPV54KkZdz5vl1Gr73PpmtUMN0aerCpsBiUX3wSyG6zivhhBixbJaioCK3Q_cgrO0fyRSVtAUpoNaOOq2nsYmhQ43wjaeIXoZmRykhElwg1QS-c8MVqK2vLcMjfgJVdZQmqEGk9uPJ7Us22GE2YvoH8eLjM82z1dLGroLhFiE9sieZcfYDWiAPuUn-MSOiMrs7vopNmQL0owiCeog3mVf7bLs-TSSS648J_LF17LzPzycqDnNyzTnp2VBgTzM1MbS6JHke-pHCySqPCyUvk74nNw3mcV4Bmpigpewa4PsyAx2egnKUXyP881F7QQ6kL1hy1dFoYgosXZy3bnEabimgIkLV94rgwWoeiSoNrHh8Fz14ySzRpieKlbwycbrfnQk2Yysuy0MwlTBnJOFRt0ufKptlDoeuMhhbxhF_isa-Vnv0lbSRZjd6F0XLhepQdEMZVmWG_oadJHpM2BvjWwa9PFXzMdmRldt5Y94Zz2yiiuKYtTaviPw4kcVwqyn43oLpHae0dQux22ZHSJCvpuyzVM_qe4h8_XAnQ7eowdr5LJDkOlD_uulQdP7YLRssmBPCIipLmvC3ousZ9QbB5tb_SZORo0FibA-491gKW2juVwFTad5gcOmbRDlNAx5_09Br8AebD4Uwg_obeqAQqbF1LxFvZFrchGQAOG9ugB97Rn1uU11YRqUg3ia_QQhQqxoYsEWIYK4M1enGGiByI1g-pk-mviFLPiVEj-hUSfz2yrT6Vj-xI0PHVYxQ1oP9aC3eZbC3UqWmObr-OHjWLzFiQmJ1z6dawte2tOz_-O90iBZT6ZipV9p7RCIUB0qJNvbOHNocPaW_N2cm_K4ZNPnkERVd3iINX5erI5p4xZ1V3gVI0U2lccn_O3egmh0pawelC_42mgDSpR_HnEu-xKFIigP2IlGGFBAL8EL6yUQgEkf6JXZb6Zas2Vs88vcf7E6BB9WyeDSht37Pw6vkUcRf3mE_ijjsYz7LjdzY7ePD0sveQtN2Eij8nM4IMy7s5AcskxUpbqmcAuxs7ktGrstZiBUD7gj2FwxFAhF5ckF5BpUiZCVbbrBGf8JPpHLa-ZOS3nGDXtLFNu01Uo9MeAomzIa4WtXRGcdXbfFySJVr6OHnQcBr4e1pJYcjYCd8eg3J_7fBJpU-mXmEk3kXlS845svJS58btV3HCXDl0hdclo19zHAKqNQ49i5objal-zbJhhJlqlwgzcvOaC4QSdRKN50cH9z6G2tPNkFNBILpWqo0Ih0Pi5Z16RFiLwr8DcpHiDQidHm0LUIs1z7CS_NsAUg_HIxpcINjveZmnsKB3ZR5OjBeo_wEmBe576H3MUwDCXM-bvuD9SubsP59fQoRgox7D1X-7SDcy9tVMxbYmDdh-_kJ8Q5o3NWbww5bEvJ8xGIrD8az91MN8LhRazxcWV5c8l98l9DRCAs9TrDW8Xk-uzoIFyP7L0H-ES02V6LPXnuo6TFxPuVbq1Wrq1VYnGWUrjWJM9Wb_8UgWYkgawj1BSOZjJMGDAIJWdcMmwo9yRPJaKMtonlbF9w6XE4YcZfktZe33p7bAMT_ANjkZEwbKokp8JroUKZiSHxwQkLtJy3nDSItxSbeVKC-lT7BqKYusFwlwPSBSkcfZ1rEEAqRZWAIVgrAWKGuNLZJKG-lOqnL2pvByW3MvIRyNdfHGqRTOvbf9ct79BaGmLwg75NkAJYhJ5CO53iMdO9tj3Ho5AQxOQ_VvnTr_mijIfv-xLyoZyPV8U1pgEl4LNc9oHXAeuLZ6xne26Ll03hQOw5Ef7K369cerSmun7whDdE-QefVIXNPPS7Tq1SVjAohx2222ojn9tON-xxTAs6FLLfiAEss_Y0iFFvjkLUpgmYKEAX6HyJdpEtKBNXAZ0GvSVKA0TBx2Jx1FSvNNmiF8oAtN3mOeb5Vabec1APp7ZjKm9haLFrJsgjNbEMtEyivKQEHpuafOUTN80IrOi3pYc_QLWDi5CAdHFNdX-HNGD90Nc141uO9zOjJldyweOSlnFKOwk2_5kx_eEswYh4YsOPMhtFV1rHzk9_TnICTdwl2bQhIFPPKY2e-7VlU349piUp3996aNQ8CWPoa5TUJGKFM384dqfC2kJbsGHY0yl3fvtrsd-3A30NmXLMF8FmT3yJ5IO8ENaua9v8DIX7--ii9YqGnI_502BrEeH0_ITZzy3kGn6gRhmKv5C842-fIU9271C3r8s3p3wYpc31akCFx-HSsVoCgH1Y0hQKXoPtmcQSgdhnkYhV3LnBhoYejqJUUJ4P3_k5160IpI3uhTNI1fgyi_tbAmlLLkyHKHFQdaO4l_duqySvs6D_XAapOX1VT8WmRIRirsck_E2k1Ui6XHipqzSbyL8F5IE1ugarnfiUVsIMrlo4GL7rE80arqDnef7PC9LP_H-x8VM420U5BruSMg-ANZ16HpI0P5CDiogvHsNF46Gk0Tfe3_Ns9tR_1VWubTnjaQF5q1vkobjDGGFNcltfdghEprhznFBY-y4hAK9dShV6zHlSKeCXm42h0ymXEuo6EN_laTmtSgGKBj7p6vB29jd4bLNj1jrdrDXqbKN_z3qgNExutXrJXAl7HYVo3Q9NvxIpXI3aw64va7no478lX38XL1NWCUsjlkEq4DG24QuFEKpCk5bzDYk0G0dQw1JJm00gFKrZR5X9ODCrm3soF2X4lT7WEWpvQdN4iDqy4-nbF62SQZvy2ULbWzCd40wKnvI6x0T5mfUWfO3FRmezboPoy6Ni5jwd3aUpHMN1gCBDPwxiHn-aZ97Vamm2zOrabCdWJRJEGyK8Znsb4LaHA3P9anNwj_TaIBz0e44luuKGXX8cq1DqCXpNKyKcDVPmAXzYDYuRKn3Z6glB3l0SqI5vhHeGOnLHotwpr29GQoPPg2TLuncsDjP6jWYvrS54qu7vcat6RdJOQwSI8hJigKAuaD_16dd9QItoLnC6zE37_4cNIQvEu18ltKoB0m8aC2fa6uf6vReENuaVOQSArcSpolGhZcjR6OeqnqM29DyqJhzUHhUgbLiBEmEPJG5ZfwUlXznynY38X0CVKdyLusQdS62qkvpHi6y5F4nxNw1upqlEoJt3UKTaDI7z-_PRFpySA8PSzzIsq_G2nPbgZbpx1f3y4T8woE7K4OftDyp63aC4b_Rkc6QGs8LM-b9QT9q9nXEE5EtGb0kKiA72Cxida-KCQaRXV5lozUxsJ8tvU8BayhSE4WaE569tror9pkZcp6BuyOGmrf1qtNw_EN1eVMmNuboDymJdEdipE0zcL_cR9nwlYhEENKrxa_yp0s4_d1drpqvgn9gbAp2HoYBD2Mjz823RyeW3GDIW7FmxaCI3SFxtiXvhZkc7oHoHdEDKRLGBT8BDZ7NFVh_vWl2xpiXVwj58LWWMJPStlnbqKGy8Lvui9DrecH-uWEktINS3P29a8I4rVdKILrOeR0AE9Yt6v7ueQa2OyRZHQS6dodn5VrarjPmI7YpLu4LoiDIIiDzwuXz70BJ3gfalwedajfZ34lP1A8-6e0rMDnqev6wRxjwTfO-4HgpG75HMqSJMPDH7XleI_GmS74VNElf0OWFxvkQjp3Vs7JvJxaP7Cqf1oPchRA9_Yrj5ZSOPErZJ9i8DeLWb2n77wg1f-15MUp4cYp-UL1xCnT-YHX12n1Iy3inUlfLWmSnVhD8o-EbI80CyRozKOlrjJfe1J4MFvdKnJizymcm0wfjW_S3s-RP5FQIHibOFqT-ESsh73K-gehwe81DQXDUueVDsiDTWnBSbx3XHo_RAqowkyH3HDmMrYclVoZ4vnjnEysl9hiAdW-ii7qiF5XpcvkbXYyR1_X3eMZ2LASCCD1spxmrXKopgbiOaqX-5P7qJvulRizg4-vq7uZQPh_Vi23DhPclMMzvEa4p_CyzVpUvUzxDlJrCdycjkcKZTteGan0ylmj821m9P_2m6VKItMZlzV_Ugri5cWpJV7imTUK5tqCdSxrHYfcPhW63l5cDhn6aAmUDvopJpWS-Jb00BlD_-T8KxTZgZmcn5ZTOxQBeCdiXsrlaNA_bF6uyuSnfMKL0y3fdOdirnOKoU3Qpn62LhV3wiHEnY2V0WM9WJ5NE10UojqnVmnlZjTMxy2sW1KJjTThhvq9qbheiKkwcaSE1fmFOTBwcuKBhEHPzhA35ou6q7zSCOgtGxLvVbNi8ZDZawZMHYvVe_L3WUZ4xR88NS3mkPsMDzNYje_y1kJVqCluZO3_hDTNxOm4BMS-UTZgXMUB6xSsp6DOzL-9JoS4givFnSt2p3LtlCC2XHC1491JCJ9Saj67q_thr84MooGvC2nYIqZOrsIjJD6e2vFFcVr2EEXos-VTMTvRJnlHe1u3UYOlAAdA3TxHrJ0rJlQ0Dx5zXpvENCsM-Qucmh_zZyC9TKN4XBFJLgmep2e1HMUS2HoXRUtl7jFAlxsbfrAVvHa5ez__7Vw2I5zJiMpbvQKHpWqPlcWbsfD52YeuQLvJnatlToAg3xm0MIL0msxO5Vo-7rAmY0q9yoGwW3uRzzWxlrAtbP2UbXnYq1yyVrisuBahI_hjKWnf3TUd7Aw6F7mIiISeHHrR0TzBeRpNl3I7wq3dISNxzbANE0GYIxbGWyOS_866SkonmDLDSXC3dlFt9UBujFcP6HzfxvOGcpB6KwocqTWyUFoT9gPM2wgbcLD6sBw_ZL_ypx8qE5sBT_LOOJ0HL-Dua0SWiaJhW8ujnAfJuUnPJW3Q7BL6BpLXwUklRI3byjdsKJbQA38hfxPkuNRA0sL8-FPmN7VdG6bJZVyvmDDvpJJqjojwEiUfjULDKLgu4elz-e9SM4WV6CPkL0oDFEX2r1ud70ykE_Slk2W28Sg4gx8twqBZPvNRb1W3BYB8-bhT4_eLfv5dE_mr7lgr_T86snAmBXJGSn-swGIFbcNnMCjM57XLTwAqFiz8V7ECQZ2RVkkMbKqUlBX8fgiOZQK5r2be6iC9PKBjuH2PHRt4llcrH4dnowjl2DXbW-DTmPUJ_3aONUITeA4xZ0tZKUHMG38ycSOWT2Tkd0n4TwYUpTojxALWyEbrb-vxV7mUW7LBNFYG-LYZd5CBP7HLp_5lg0AHSzZGV62_AK9XT1YzZFoH4mVtX-fQK__RLAr-OasSM5O8zXgi8oBYYGLc0j2mTTlvq4703-6lT1z3Nnq0zCGXQfYwqifJN6VmCdeFMqwwi0w7WvNOsaXYOV6jyrXTpEhikva-idNjC04FWaca15ALAyJ0i9NJDQ2RVUMZXAJzbHuv0oLC7MLSd09P0DAF9Tm8faS_xYmxOo1bJea0Wwx5qtz2kGZaYf45sua0nZqwkUrjJd1LF3D-3owiMfvzrk2cBr9FhDK-hokwOFNsHD93JBaSj9GjIvr3sZ3jLIlJLvAmu8QezthylbP9250cCkFlfcpZGF-mtL5ErHsF2933wYet14LrNCQs4HvucPjNEij87JqShT7qwrVNLpzAvSM0JV8rnlcm5PD951T_mjQfqOZUmhpUFwu9TF7AFHr6hgrnjhQRjm7El73iq754ZJm92EsJE4zrXNC1RHCw8_wsUk5vEEstccpPUu3moiwC8BPAvy3Ijrs33dQgpw-Q1nDfa_p-qrRI5r5eNRF4zx3YPw-egLVATpOpnz3Q9uL07_maf00BgSbrOZkX1S24GcdPSdhSTeDpVskHojxzGXWpKU7TcYt_O367UhtijJW6gp1ZpbXRC5nLR4gYjIYa0Dgo39PcKwWbQnYpoklChZlQhDrUSgg-1AhSey6sCFIjeOvfZk9NAOfh8pmMSQnuupzbBoQ3eLNLDFPTpjp_rM6LZQxktwlFMie2ne52EQZTGPJqonalsQCJIxc9xp3xI25flRckonVDJR12PbV_K0Ly69mh6OQvbax2j1oxxe8L4g1lpZVDt5vaxazOAcBtNIdWYSyl4LqcaJC26Fbl-MXSYPs22umfEbcBkTaydqD26_GnzI9Lxeluh_vCtTWZXPGy9pdSSCpwCK6PlVmY_ePfZrak8Sjklp6FAOS6BpcFI13wj9HyEPVcBzfArTXgB67WlpAzIDQyK5qx9k76NSz7qDRnPWQPOy1-PXp85wv7y_QJFwAOnlK6wStrBWTOyVHI_xGTq1pULNSrfFSykABInBiQZTHBEv_jlIBa1ZTDSTSqhC8wqVSS2RpR1cy_gP6vqh_RTIPPQnyg429tNscymEcoxNB6b7y0H0bZagHth8R8unA_SnT7SOoFWTM9iMF6mIbKUXdXoCWpVsxvydj1mWbQtgOiSlCpgpgpiNqp3S4mWo559q-ewLu9P7lWUfoRVHhI5y8y_HimlAfeCfwN6r--U6FpRYrtI8rWH2wFSv9N9AojAPqAP_tTx866dHpoyhM0FyEPtWx0gKCJl2_j9FfeN4RmeW-plIoMkGVyuNMkANC1O0aOtGiis7gS6ESTFWe_PHq7gRk2RIxvIAVU-T_Ic8XIgrFRYiS1KcX55A9mz9s0pgBpbUVKR9WDnB-ssZnNvk-xie-0dOJdnzLAO_5my-nwixnc1ibAYuqSUdCseAaRPhdz_a-1NDbN_SauBePpxuHiy7mono6zgPRwDgK2YRtOFwsTrLZ7deO0bYFneXKnlYd9bbmgl8lbOOnAKnw_nB-MD5rC7JrJ-JpeT1Gxaw1m3V3C-C2xphyTgsZE-gfqe2-e86osAFe7eyYv7RPRad1w9QQE29kT2yUeqgcTiLT5eHoZ-b0SpHcdQ6QcUExnS6vhV3rR9DvJaIVFFL3seAATvxyAoYdIHqCShJMvhyBQOb4lyyaKpX-wnH5H94bVZp8fcG5COZ3Wok9WuGKj9Kl-X40YhJ17IRvhRJA2UJLJIawvOhKaaBGcZHQVMMOhHrtEKn5JX9XvTaltMjnxhTHOFiKxzDdA23_njmN3-CuNZ50g7jtUS_oNHDLtI6RNaK8rkEAEGDdryqijWfoS-UqXtDV95yx871CiKIxfyDBW7e2GeTQa5ScOT5oE5HXA_lHJ4kGEMOavaheYk9dqvmXQ-5SfDFe9PThaTWRzN1TQ143HL4DPrAf152KwYnNACjXFUW4N57I0DQckklDJv7n2BJv-Opc8M_VJFO5_6bD9_PZDyWUnP3tFWa-YsZ2a3GuAfH3cQZ1DHAFT2mqTLGKuWNOgw7mCqBued48XKjYdpNpaT98eU_iJ3X5x9U36hFbfAWD_eTvhL1wb7ynD-y5rGfw5cGJXM4_OlMO1X1vf7lIciE2Crdh16bA2xkTCHTI8lw8rlc2h0vVZMGJsqirxyAogb8yTctZGvOSAeWBkoN56kq64YhYtl4yyGPVU5GoccXhv-fhuBMRAJERFXT5C8O7IluIBJQBCVOvs2jF31SyNCfafEo9Ehwads3Jy0f2SQtEn6KkkDGHMIMeNBoJdHHSve_b_T-LGaEN1gjyZ12P-BsgyvqvcGNP_jWYFXIXzKvc41pa3IIQQGceRC99TDyCodnm6PLJKQHrTUZ79UpqK0REQ_8fo-TX2_WeHHINqO_N5ou7b9NT80dBi8rHY780qN0VkbpvsunVOKN4s8sYoMJS3z25YSFt_2KvKxJDOHxo0scbCuYyOzmS13Pe_yPIqU2gFSZKu9YMv0oSupiGf0P8IsxJD53on7e9GVyISJ49ULmsF7EkDt6_Z36fdpFYMpiCXg7DBijKZTx-cLcmI5oWQN5gQObWGa4tqJ3bGoH-O6Z2mrsrnS2nx8iiQ__AYnmHB5JS3ulp6f2FOOxXyNlIepHyoX1lfpDWAWi4IUa0ZtQypHRdv0E2y-Jc-f97kmuFDPFLmLuEnCLKlyHLaUcifMtom_Flui1VBhJVwvDo6np1O-UxOxmHZWpFdoTUOye_I3KTubriz5pc26EJV2YPcGeSgoSjjqTNxfmQlMrBOrwumW_h_i-LIDu54-SEZPpB1HE9p93m7sC7ClRDLXUN5uetByGdjHHO2pexp2VVkamJNVf33txAbCIKNMPs0zIpR__GfAYJvhDKml6CWdviIBtkm9VBfE1hc9pjayKnIohcWwYE-y_9ZtIj42aDZlUsJ_ttBaYhgvKebJBLGmW8QNxgLj_XPXFutDRhc0eWON9URS5hmxbX4Xzc3zv4FcNphpVKMbqsrIESFmGJt7ZNOZakbMfcMTs3gqQcBpQDqvx_fCf9ey6EIzqTPugsT6WtdTJTfjok_Wtpa--PwVRzgeQB9X3wxHPZRTFkR_J-2p8CGbVy0AELgFjNbimnZLoX75ZKnZ_2SGkDPooEYlI9YjW8VMRRBjq-xMLQCwUPAbCtjgWweE0B3Z0LpXZoW2yqAtJdKIWMDFfVzIuHS9GOSfYR6sNve1O5QuIio0emSkp-0OdsjrHmnpk_MF__ELfUmCsLOwPEAQFhlgoa8L2ITIJMhxKJaGICWTT9vPqBg1l0nSUnbBkHYV2qMsvff_FONZHBEZVn4BO1JpjF-FGwaXiExvFEEmCXdkhi6aNdNj2ZWGa8ei8j00z6J904ugKBzB-qsp9zq24-XINA5yQiynUzPHe6BKBxGSrlHWq-o7WZ3amZuwk5zHq6zccBlF0mJ0LMGc8U-5s7j54i50VY0ks5XLw7tDmnsc615N_HSClGac7Btt9up6AY3dIIDl8DQyEBXEk1G8IFThxKW-Fw_v4FsbAU6oUl5LxyQy6Lji7tmB_Q9oX8z50JbQW4POIzbczLkDNr1aRx3TdleTzqtBjOn44kfG0OzwgoOmG8NY2-4pjnwJIT7_F1l-sJg6_n3-S-QSryafFXSWHHJB9UEdWSvRTE1JysBNFSTa7LeAW3-5yeTRlGELZJH7lc-snkpRr0DXyYyQJdSwPWAVLw3-Yqh0OTEcL36cA8CuiyLOf9l4FqUixqcgJpKTaAMwogp77NkFEujntvXSUcl8T8Ern9Dik4YXC4cPH8CCTO6HI8jangSYVkE8AF7jvDBd4MYYuwgIBmFkhvJcnsc9v3Rx-2CtpJMaaD6G6P5pSNGkigr6wdGIPKBE3jvRJ_XIrCI3XCCl6ViLQJtcX7X7AYwDyHhVeyLr0kdnRihkiwdVjVudvLfhBBQHeP5WYl9g05GoAGkL59j0kTCDIh10VBXH4fLogzYeql6wf9ZDVviDPpflThJxRfx2ewBytegEeul-yzMVhYqlr3KSUG1kliEEojT-jelIPVy5ka5_llwe3oIDqK0KPTy6oaMkAv4UV2Mwx8xHGenipxeCYBKsBgXZF3SsnKFLIe-7Acdmxe1PIrYaNiNIcdc3e1u221yZl-tWVwPwIdNDYmCz9qIaDVSeMuY2MqOKMuMye9KOy_rRqMgF9vs65dHlc5wsRCJVS9Ta077s7B4ifCaWDLcNqTUwZ1OAI_t9wwxPo6M6LrFdsWs53CWsO_YvhP_-OwkREiVCWU5pGg0p9VYotReMcoxu30Qn2dk6uLi7vC6c9_FHx_Cwnzm7UkutfZ5GAoPhOGTbcJVpzGVbXI46Y5frtfhVK4xXbV0qp-Bk_otKlL_Uj6VyU53SZaO_4LTSkLjV9Sg8jr8p4quy5QiLfz_xNt6gAogDdCZJsMptJBKO3oPMJYOnED2m4i46dOd01M0ythsRL1uyctgS4AAoYgaBBnBjBXk3Q7E-hDiCqChEIboJALUcvu282I71sgjvKwh8xkzHyYLcsVhjESyL9_RoaJzTGPwIU_Awm6YrPUNJ5KmvvH-8Ks12lDyapsxl18SP0CbolwamLt8Nfrsqlzsmt9xj5hZG6Nz9Jy1wow-R-KxTKp_OxOMkLHgQi2ltGfjExAz6gHUJ_eDlpOCLEz6WHYnGgXXBor7ElQcQO3muuE4d2LEiHkyPzbTCKE3BHVENfeNYc6B3UDo4uq5LC8J2kkw0Sr5L6mX5HmvR-8TAaCd8Va-X_UE9ePYiv9Uoj95W9Zbr3Mt5i-QnquwWI1diqp12WgwyCTSDPMckkIz0FcaG4CU6UXFROU52NNKgFVk_yJMbqKQapangtLOLOZJYFljm8yeQ4Ajnv8XWWCpc42-owFq2zwFeU7FyiOOdGfTI6X3qkwrEfZr3V9qhaqx5jyA0sjX5GQmUa58vdrJAcF-7DxNw65FPz3QKNeWHHpCJtTze4bWfnKtH5l6XHSW6-bnADsGFzn_i5OZxqzx52NG7KSC9tpa7AuNSYnJou6LnqRd7zaCO7L7K_bQZedLKPjzjR3EcD4_w0HdChoosDYoltVYOq8o6WHZh1yx_TEi6IFpav7qRLI5_nd8BIGUYK_mXZgYEEEiLLwZpQmk_705_wig9_MbOL4WPlLe-6so44LJ0w_-CY8UJSsIWFkVbGY3jIkBTcu095k0_DLfFTWMpa7DRL-v-IfA8vYEvbQQukAAcr2c_gpv58eIfLZOurR-IB1jyZrwh1QKybWGc56p5CbWevil4O42M20U80JILXN1E8XapCOKyZHkAj5UnzGulPclZK6sgw6_RIQnX8VdxOomLUKNEvB3rHSay30gyGycMX8f8AGLPAgFpZgt8Hp_gpaz-8rUPOAgA8G5ry-IWrUqYJE6GQV8NrW9kIJILhp589EdrvCLc3h_ZkMINRNIT58NQNihHjcALihdW5rRSL-8Ys17tSRbaghlNs_NYy_jb9zX9nu-z6NwXV_sCKLg3IivTcXA7mFED0lP289BmgbcjnobxzwL25LSJWm00YHr6NLcy2lJ1-gQCRmMdCc_7pxyQWNao9JdFy0NNEbgZumao5Ey3Sf6PuXo2OeHwQcbUfpFHJ0grYSKEt7Ti3F_m8lj8ruuzx7Vew3EBdcZqPv6hL1xrPxoBkYYQmZXRvQSd3CAAzd-oa5KXZEM9XtQkFGBqkBdYdaI0SsjKG6Zzg65Ku4n9Vun_1Os2KHZdEZ0BDyDGjRgkj2jAFiTg9dGtLmGIEf50bBAVrAgSfSPbH7LcVb2RrpaNQBSZcvhNTMgM1uAlUOboiHkTUvKsjlsJTQq6rBGkob_y9dK_RG4ol8KRkALVE7ZZlqivwBVaLc7RvGA7UL-lhLRhxurNt_S0xUle_ryjh73yHKl0XiRJVrsMlN3HezAc75SA4PDcwvHbYPU7iJVe22lOvPzXAjn7b-JPyuxPlU3EOci171SCUcz6I1yzxHycjYcpgOIApKfQsT8eWts9TECO1EhohTeEmYcNrFxy1MCKPNaw2sHqBxhgg20R32bqS_OfzZjioJuPC6ZZCAs95rsm-WjpB_pxPGhV7x8mYtfcZDJM9G0MyFJrrO0CiUC51gDxEbl8EVxrwCxrph-0lYi2qCUikGVsDa5CGpS7BqKnM6xhutNTCEM1pzfbaxZCNAx3DRzE5CK1u9hRSko1gCdUq-RUPcLGpGyJPNnigZ1jJArxiK8npK88ajIG_qpDe2vzriXzcEM-CGxLASgPf-GynlPk5_gKOjwMWRIxIJmtzVy1kjw3reBeGfIwbu1YALoR7veLKSVfHHukn6AYRd6XgdhZ66EHkg-qHS5vxwCMrpwTLkWx5JRRR_qAd9E_2OOPsGx3Vkyz--S9vlEWOXZJr6Q0gP3GfF69kwec6ycd_DClej3rDl4CtFr1REUDDNB-BSdzrFMtPlySZaue8RUiPcHyb7leqILAsLZNRd19181lLfDDLK1W2NOi6vrYpNZ5ak22ymnEejrBIM75kdye2ZqNEKAvnbpgcCKhG5q1Dp-fnT8PubAEXjAPa4jsVow-uIWt_VHNvSufFJktOQFHDlXFCvNmOdMj160bCrbrassJN2InWzbXANyuEZNiTVMgJSTDzvlwL1m8CCSEogO7o7zPMgNq3G1Oim-2qHR4nW6qcb-shYAKz7tYeY2OdfL5CF-hvZGMwQTHly1CR_uFBl9J0ZTEqhNeVH2xsNUKCdB_X01P9UIlJNHRKmUKZxRR9o920gCo9WDA5VNd_fRYcFd3BDMpXUhdRLLieyr5RDgSVclMUcixALzeKGU-9Oi9anpJfl6F4-Iv_d8Woio5llenQAc7zbhI3NMDW36ULuieh6mj-3D2t9CyiXmQbI_U3bOlWxA1pXKwxSQCevmb8s-1SVMTwmgZ8t8xOExakzAa6oJ5MKNRaKZj6FjN_y_-JbJgY0G_Tud17NGqnyAbRt0eN4sn2qAeiOtpFjUoFV--8z3TITEtP6-BcRPJezo0rXEne4w2y3n_N4AbdY6cl_fxVpu1MEC5Tl5a46RXdg7YMYHL10yc1mJbVF8XiKY-lonsFNNOI-rKXskWee196rseaBQi5k5wv-uiTIsne53gxo4eyjDqZ_8ELoLEiDrNcgjaDjs7I6-9hLSy0_SDgQ2jBU1D_SWLh2L12wcxddHumEXPJLRVkDbexE6YmGlMhq-Jtk-lbLoNYXOIaU_inVjHGK9_jHxyBbM5_4Mz5ScsA_klT4LzlzOaidpuspIHh0OSlB-OXwdnNSz1gbfXZSOrRVaijUtrkfee6xNgdN-C4rQ6_J9K-l35DJeC2YKsf5aj1i3UG2NN9BKDBeCWSL_2TIbW14bi6DKbGu2Np8tqInRBD2eBpgelygfkZuC0lP-WNzhMCNdcy9UNlvkwKJPCL0cXKaDKW-sFzlr4Y5toHxECkx81ppMwFqJ0PEMYtKLR0-83p-lf3u1mo4HIUNy9GxiOEyQ0V9Bcmdn3hNbuEsOCmBUug_ttmyhoQESgFEu0cqoJTfb3EeUiRFzm_i_wb4KbbkmDhgWZXkpwLmed_vePohe9-nouYGKh07WCJjX_0p5L1FoHGeEORr2Eq4hpZ_WL3PFMYYjvZLx93WkfKSIIkzZhx7WHjJgEVcLwxUhiHiq15t7zQpH38md0wHoqIrQest3yY0rhNCiY2_gV5kRO66V9ZDgwxwt8Ur1zz24LzJHAMIScZIZwaubuFmPpot9ZHQuLTMAF2hFVh9FxfMwfqsIVeJPJGKK2D-QXM8qmiy5CU9RnvAUkuG8LTDBmj2BDSn5T_cx4pNKSFOFwaP64RX30NRfIbxXiU7QtIbb8hJ8OSYOKptZ4634VGjTDL3pc7hyCjceP2b01Mfgy0PnDioLbrtgRwbGRtcNsTZujPLP_4-lJHHoalW8wbJmlnjx1AZdi1pma2Hue86MqOEaUQtg7hEij24XnHVvRtZWqO5CRm-p0CqZzlQpLw0TNiHYaNuWkvJGDX7QbGRzXiikwshcDODO4PBIark6xLXPfdr9N9jGOmr1UYRxuCUs5MDY2TozuDKvL5vfp8XvkKTpHdm5IErv-FaNvM4btkOMkheZljrfPYA3FurII7oLWpntLDQ5HuCaRK6KtK8nN8o4FOtRWjdubNL5PVw6zGl1wv51vMn17kpo_GyjrrFlBg2W8nSmvO9S32tC7IOUqErYZdXE9Qj1Yfs-X7c0ugpXKPSqeMl6Ac8yxliA0nBqq6GehbXb7TXXiUWC5fBowJhbhplq-6LbcWts_SG6x-hzj6UYAtVXGyC0nQ62LFN0Yg28bZr7_sw1iqoPi0j0NqTVIl3f9KLEJ0x-Y3Q-MJAUuXmpZ8zCpEM19szVbmCK-4t4ik0PDtufKnQJ4L167HeH7s4Isu1dFGAYg0JW_Xcq5BVKbQ826D-NOOr9IQlOVK5Rb4PZD34CyNjyJm4e3O8SZtmVYMRhMartDcB-LSho8L9XsqtwgR4kXh6Uhy-q_IqTVwKknIDlLW6mEnXa0aAVWmPgM-dXMqUkZJvEdKRXJaUV2lTOEUoehmWp9WEcXzo3oENPzjtKyjgRq2nXG9ypJBiP75QdmzHPii1M9Y71RxGTZlyBIHDWRVdceJ6JvDzCTnYtVMYYCyfRKYtFjMRhQBZ1KFJF9BZFEdBtjOMixjKx3aPLP7LwQ5Ft2tfybrhn2yVGttxE2TNRJ-8pobeCHQ6c-ZUQ5viMcBvvFKrFIjSzbyLuOeIl6jMyH1qi9_ZaT62tltvdiv70hZSyGFZR7iCkJjmx8Rmm1IqQCRdJm__mzKcEVTeimUkuXU3on57VB1y3NBuGbY4G9Y2Nujo3u5HZKf68xm6f9V9Lt1CcL3qywM3NrZs1Tu9v-Z0uVICxwRI6IVfMnbeA4kNDWEmE45zytKogJnbWqOZmuqhaukmtGfUuWTxm9Ur1GKJxljGOAAsqvMVNP6cZBUpI0s8XYKxyuf21_W1lfMcTJiAM1n0WfCsAKD3acT41nFMK3fy_LxyAEH_Mm29iKy9L2FfnM3B6pztNSawApmsVBuUxALpaJlCi5gQuqeDVyEqB6dkKuGxMKehKDUtokQ9m8Rsu9TeT4IFXQ4Xk4UVxyH1TKt0G3hhhkcf-36wlqoiDQ89-zRgfjTliXN4qUtn0KBamgN5_FMavSwhIVDn0NNuO1V03nR6qPiPmlEdeNTYh-p_DGpAg6BxDNDkdBK7rpOTs7WvxmsZ21O_vHg4fM4gZsZtXYFewHXN2ttJsHfvh5TCzv1Rg27ZiiQNIzQrOL6csjXnniQbRItcZWGHn8Q_wgaRdtYZ4p_JMSsIIr7xEvNpNaNj_c9Xy2EyDsCgCc0cSF18lIL3U1MkVAzlj_JPGbJEe9qQpGXfqgwZRNgZCv0Xm1vrU88g7cKl3CkpVAy6wwzTfYpWED2s8PohzNX6f3U7eGpb5nVNhkx4Wv0I9PQgqtKmG1Vv4BvZuRHT39b4ZV_yqsI4tCb__blsnUhEf5unnYMmkx40EA_pyvwEVpzti-asSuxK1Ret68QUGa6m9v2DlepivUkYIkVw_qX1QFGkaQM6OzjjwX8G5I6Sd6rVLfxlLwMCPLeTkz8RwqIm8WY8L32b83irVl84WxsUffyZGNF1RebEolXqEA8MNSxVhwYCMWD_Iy73PiXLo1EqbKELNEi2WUufIQOX2W7iaH6ou-9zMGy1CfFvOx96wRi49hTd-YoXekGagN2pjrwSisRc-iot_-BHIIVh6IPD66EyMghbvBihcGz9P0lFHuso3WgiSYRPC-r30ZbhO1BxytZtPGAo5tcoU1268Vcsl9DnxLqLxOeVOPuBCR4lEMAH32Jgo_C1Nue_nGJ5LbzGs6U6OmBg7qIIzE32CGOykKxxZ2pOan3G6SGBzldQcICRzFYa8wrN7X0qq0FE0tvKgNMqRTTqeZzYPjqb4QI3GNdhMfM4_v-h_jO5W6l12KuAyuxoCmqYxcPiLqDQpuBC4Am5nE1vbbGFBQtI-NFLclzjNzS5L2aKiUX96xpXRW-ab5Pos8Tq1onjKLzx4Jl9OvQ2VtVbvdFF2eK5YY5ybgXwHq4zXk50fU2Kuh9aaGCMHSkjr3OsnPq3DGb3mWNcH0UMMjGCe49HQYNGTbpH7pwIOqiTnMMDrtDUQ7L3wl5iisgdcMZpf-nxWC8DF5NRZ4iGhMOi8AuAS0JaRRAinUKYtyUUNwrvQKQf48hfC4ppITprAqRLWCiFFANo3zUxTIcMFFdlvS3c-op_p5xu84s1U8WgXtO3g619v-MhOL1__DHqJkPfalXyck8deK_DOOJRGoysVjMVaConv5o5YD6ChQQZtB0pH43xcSFeN81Yuc9EVo24cbdpqVGEy6MCjCpQYzwZ40losjDln88tAm75wmHa1BPUeTNuHhNzRPDyq0sUGzD6JQRv2dyrr2dhuwdmFW2qj5fS7AK8rQNoBI7IImi78tjOCG_By12PR_zCXH4x9-UKuU3C_7ZvqG1dl-FmGfjUCSwQ4D59oOMdygOPp8zBV93RC3TPTSV1I7zjuGwaj6Bcs0VzmCkz1X1e_oXYltncpjxexuSFWEbc_dBRxEZxx5Zzluypg72qSvQkCJNL5EX90P4fy68hjdNxIIO4CSNEAEysQCWHA44jR2Hz7iSgBrr6HZrJLQB6zfLv2dHLK6SaI4G78LgoPSWzj6tW1KzKcolDSlafIMjIMp3Pv2gjvJLqKEwvDO8BrychnjfqRdnttsVJ3_wb0IF4cyqwatO1gZvmSSLO3alwwO7OdlsEYRwguCUucTk2LdkyjWoCKPxirelb6rzgvCmB4aK3ow1Fb6oxxfCq57XvXZ926GzLvDmNAvRyfQwrURL4vPUGIVsIdZlZdQ2Uf5xk-LOJGRdV8YfCin3e0u7L_nikEmRA6JighAApH_mwcXFUoHNi1Y9GN-20szYeFetA0oe1XBBj_AzcujKGHgCR6l4gIjGpKrdp5oSuZmUZWphC3WNYnVqn4h3zPLxHZquzm8yc1iEkonlM_RupOlxeF4Ia33Ps0iFzoYlhR-qLpWGDPTljcr6Gpe6vJ1_4A8RzLmon6hlkCFO_IQIbfKYdNkyyyAtvA-RU3QUA1XtFWsEHGCj8dn2cBuloB0i48MKig6NKGTXKZvPFPp5nNVASXVKrYsnPYes-xbI49l_poZQPU1tE28xR7V51MKSA_2d0uI-3cnBjJ1HAOFsP4Lv3qB6vU62Kl2FK_w_oQ55qy0LS4eJbKsbS9XYlpS7-J9Dkpmwu6XSt_q-oEfmTanDoznQohJfX_qdNNwOh_vgdovzKjmvQfLclTIZqkYtFFWLTdriZtvqY0NeCodn60JqvrNKze0AwARyCICp0AwVla6hIj0gU1y5H7Kto108J-4FA57H7PTj2SBKzQVdRABK4GKZzEYYygZkPo5LztKyLugf77EPXW7TR0WmF_K_mb_DEN-71taNV9V7qf2zofFO9R11jzQQ_FgfdDwoEfh9vwZ6J2MgB3irSIYB7cp8Kf4Qb3iJ4gXynqRqQ7s_GaY6rEQTS6xRXpMBLLB1HTX97u6NZqDsSqlIt9CUIuZXRDPclML5rZdMebRFdTKIH3MvItQnvq9Z186RcXEYT9faI3N5KPzKUfoDL_ZsNbLIQG1BjRi-kx9NIJlHZdtGLZF6C__j5umzNUUrFuMqe8xVhj4qkZJMM4mm9ZOySSZKgc9SRt9d_MAQudeoryMfN4kaAoQcNLEi-06z_7DcWTy_bG6-goqTwRvsncrb0J6syVG94KICWwy-AFJOtB7P9VCfZDXsb7yCHu3oWEO7Iyem9Hek5qAmhZlOthbBnvzoL1ICuUXzufg3jnn9H6VfC88Du1j2P2q31L0AV-v-MA95jVSQ9pBbZ8zzbohUWMUdYMlJukqYwOx069eVCOKYYRaaWwFCqB6sJtOllfuSNPsYPWuW6qU-KPm-AnXCQMfNwroXwTilQZ4MgvHEBtF4b0HS8LGHtzPCVb4TbvFYi7hAAKXinxlzs5E6WWkK-7WyNDgdT3rLz2MY9vnwpIc3pam9KyWgR8bS3kkAM7FBYL8rFgRoEdBLf2UV2Zepjr-kAtvG9Oysxyd68DJRiM2WQQj0PHJDgfKkSD0vcc6k591FcgMVUaCtaQDu2Ny1z-wGNEfaPcnQ1vrcSdgsF4wul_gPVsN0Tzy9h-hdERJY1K2boLXqe6WiffIB4heIHrodGEQRcvw18uzVSe9lg8MiDpkQMyBiVzCSm6HtECeMxCuGVQrQVx5P-sGcXUZEbpblYcGZsu6WqmdGHtrr-hgbZis_9Z386NVjeJariZX-Ubjsb3KBo10qBkKp6mdhB7S9U9gdhMp14FMjRxOs8NVH2Ni9D8tPGtTjliJ8Aav42oX3B1UUGufk8KqW53dvbdgv2RoyHbAaKL4oByCm58SZVv-_GJAK5uAgj80A408OcKEknBZmXlPwDApfe3n8ptbZijokM5-7_jRtqFFZQ7R3oA3G-5oV5MFKWFWkTZtXTcyfHDcIH_qqiulSzAYagsBz2mfZ0dyXPWZgu5IbVRE7byro7DLQd9E-LvE-nELl6S4Wp2Wh4kH3BD0YCzVXT7pj-hV66E0s5zHBtZcP0l-EDYSCpjTIsadr7UqmNnEGdvxsSM2E1C2tCphI_B5zhPCIDrxWPPRb7FKvHa4EPuf2nGMZYRN1_aYdcKkJd2iB-8YIl_evue9krcm0g7JdOxo9CYHjL-uuec9Px2V0voJiHH4mf2RFpqOmg6NtHI_YtNEMiw9dSsI33LTua69-XKehas1HXup8BNs-8ac03M8JED8t7i3Jhzo-V7jeyR40_oE2E8Jh3begs9hjt9DD21LWgFgDZkCOv0mQ8Uwk5-j3qTd6lsBSB9ndn_hndo_z21p39DhVzXXyBYyvdcAUzGlwsNxwbWPKsR2OJNcDx5SRp3U2giLsTLbSXYyuOQZuFxTXHtrFVKXnVnJxgELmoG-oA-IwKSNdZ9hJakTRWCTyjXh1sNjOMhB4Bj1ExisBeLMEcvpc3yuihUTkU0r8cDIKOmRIpUPmCB0e2Ao9_RQuwqXFZmX8Zbr8YgEgiUuhxsvvaun6Fidhcsp20WZxNqRp9-RycbO3QqIxVUIEJACN1dW9eFOL1P6M-EENPVMmIkwlPYeNzjMyk7sg8H26gzjQb_9iwWgHH4NV-GMw6qzfKiqhDuq-VktcwYViw1KiUMQUGpA3GSDYBnNBVm6PeTlZKKeZZ0FgZOx0gdzvTHmZ4IqqoAY466Tpc-4-ucH281LlHMzAVK4JPKvYYAEfwyGcHeOT_CR3NbiWOffvcn7F4nZQsQ09H1_mRpM8Is5R1tSIgLN2Yh7KCiuqDhafFKLaIwCpIMuwPS_4gykVpWM4tCAP61N_AFic64AYw4spsCWwUdfS81aFuE_gzqgwQzwzunw2P-g2iBqiBMRncbn06oWQ2AwdgNJpB4YJ6KYYi2yjZ82fEg4Gd2DUxU_TTl5iY1bmJcjdsk_AEOfkYYGVc6QKG3UvWQ92F12OtLJTC6_aHpZzTjCbGEeZs0H0mTdoJCtTXwuUD5yTGePFNnMBITUv7WFKwQzU0_tCIKPVkhBGXb31yurNVo5HPMEiA_iz7LSkanzLV_iOEnrfjgDHuWr82vbjJgZxTRcLOgh0mnDyG7XkSRi5hdTRmFXSNIaAypy-1B4UB61EyZseUqEKSOzL3nIrz_ZfHLN0JpmZjV3G8-pmy5iEKeUpojdlogoEGB2mxJ1DMiLNu4Wq7EP1I4ve8g9Wv13HmL0mHxErJJHQ1R_2d39vdp4HWZNoh4cksYqcXMZgbKhY5QXjAbc8yeQN7zf_9Voi4gg-dw8UDpBEl9-V-8Ra_BDdX-AiOtN-zW3zmRynP9WwguL9rKdJ08ywLnM9naFW-jDsDgXHGlqz2K-xI6y_WElNVfjsvzjB69eIdU9c-k4uLjvYxV028OET7y5z4kvmatU40C9qu34GK5_Eyy8I8ZFK5k_0BcQPFeW9NFDoR28sX2JQ4ArCWED_0swEi5XLeMQZAoxz3YVkVSUSLFvv6njFt_Pbtz1utW-5avdipZcZljT7evlON90enzfL4kzV2G0bFl0wxjUDwcL-hzA1KCYz90kEqoUow9yMBYFxFZxOA-PqFNA8aO1fGdf-VZAuzec6Z-4ND9zkEQK3VS8s03LjSSmvsTb2czvjH1Hgkall5WeAr6pXr4bJ3mnhqoloBBMyyHOS1PK7M0uIHmze-VKFv4aeJ9YzYsavPpGqTQhP_aVWmB7icZObVuAVhBZ7gZ2WCQtuhjicrJg_lBzTtwy3xLZGSlL0T61JXeoKUEGfM97ZJNe-hKUuwJn6mowFQUpv703F9_N2Cd6wgiIjcdC04WguQJAPvcajUg8yvdeswnChXQWyORtngBuPtnTDbqwNg6Ii0B8uD5ajKm54h8zmXJFIpLUaail98baqhMeqT8sObcWENfPE9wckr6BygI_k8KblbTsCvPcwP-jc9QGzWOstEOsN53vXystuTS69B55Ci8nCneCwLlX2Vwv0LmhJQFT6nDNUb7Xo_jBPSQzWmrtAnhPbGfXvS_AXXMha7d09Bbj6Hvao0nOZ-iEeQW5-FHeum4M8ok0M64_4K90tyNXVxHU9BH2z_hTrYIPqnd9j4JTFjbhsKreTaYwNWruTFKGGOFZAGiGmakteitBPNAkehNL8N5aoP9ByvbUDWZV3HAyRT52TvItXYDaHo2ONKJxNq2v1RkfvRxkML5bFdsqj091omRCCsKqyaA8hT59jWtkUuvBhW_majfY5Y-fjekFkD1MQiWwIQEhDcnhE5_EOXcnK-xhnochU6uA1k6WPPkiNVUBns-M8F46sGEdQMiP-4idUukwn5eYueUr9TEkAIusYT7xxnUkqmAwgDwNx4m-OFjko57D4DGO3p-VClmViEIWOkVwKb0uYuSboW_FmzMKIjti77GsipmoAWCyHu-4NCYc61jsYcsHdW1qlaaqOS1Ta56nOUdI3fFb3fY1W4rDQvwgZBRlOL48qKJ8WGPbSC52hoR-JxILATmXkHoqX0zJiLZekjT4uuxhzJPZuIODzKZSfEGJIwT5NEYCdvYFzEnWQ_y_Gjg49s9I9NTz0-L4X5YY8iZFQqUqKPes7A9COLMLNyy6DSH_-iSNQ_zSswN6cBdewdbQv1kOcI-LMxwSL_QJ1tEbNztrb00dxuzDBKFTNsnQleh9hHQ9J6_Hj1r4c5zuFYTH_rHfGMFzaVVrl7CHe4QD9UPEovuKzD0z0vS5fAg7sSi8O5Asux8NNaN-mISiETLbL0QaMK0MjyvHCrjw6t2ZRNEWGEEw-I_sRRwDchnj-FwwBgDQAC9Uep4wyt3cMnmSmJ4pMNjcz5TOcGqbIShN396RqoTjKFvBpCwiHAGX5qlgKXec4mhpt6_xyxJ9CxlafJrsssks15W-NUj-Ey0H55ahHRlVAvtv1U4JCHpM7DEwAfxF6Ry1zJFk7kmP-vQrX2CN-yDdzRTW2J71anwAO2HdJnGZBI-wfctCWE5kjfMYR91hbnjMWBrfbAgg7aPzBPv524MnkPU9WdHa7etQajt5yAWznYFIGEjr66__-1NS_cbCG7HFjEco-G55k_bzkldpUpquhnArdvMiMZLT8q1kfH4E76kqvc4uBqGyUlWftj5yq2V36HhWCushC3TOYNT-WGI_b_bhCGfCRoLSSoJyByJr-x325ZrsNn66eGTJXF_I5ExT6AU-BuVhsQ-c0-272lAEeh0CO-BDBw-uNxRYPPhhPv7629mw0OaYV_be-itS1ab3TQxxwjV7jE7SBaYaCbJutqkJb5R8mpIf9By4NWKTbLFN8Z9f28O6hO_vhrTchsaAPK-8w1e4VOviMNF7CMN1il62NoVQIn5UkNjQ-jaV5K2h9VFl8d5K0oTzrr3PVrJ47V8AS_J2QAGHDIKIB3PrzXkBmofyS8FYipODWWszXnFvM_MMkY9KvmttJo58tJ5N7uTqXcp6xhtv-qnKVNxGWhIJkpuC4bwl7nkLRUlPSB4qmAg4a3uL8l1jUK9PX3ddTvppIWwkxx_lCVFefRc7d4NU8i8iFTJB1MfEtBuk9VbTc4AqBeLmJjz2TqdK3DgsSCWQZmDlhvBiqRkGpr4Zg50UxOMyVnAbg4NI3VarRlwoTZJai-aZXKhqKbSRh6pO3RtxtEw7YV6G93vpVb0EZick1acXXeBC3sv45oKOmcgjUCTojyN2QSXLst-DO9DVPvgagy7oY2-yuhLpT_cTYBsRiSzV3HKYz1A6gLICHsL0H8WpnN0na8fNwn0wgrmS6I4-tH6njUuX_v_OAApAN103gsoJchyEsanu3cKasJCSklrcJ11uI6fF-eeLLkqxHWz-8ua5eZh75zQbd1fTOAms1uzdX9pdvQy13KxPjiuQF4WPVUBzeUTREfp8_cdlkUlAYDLLgXoGB56n3TqdBWGAOY34RB399H9AABfohiDcWDI4h3V1TmNpi7CDGD4q_WZ5jqSd_exEe7ijdNdDzoi5F3FfIbUwQ3Sle933eNS8BSQnHFdJJ-vvgGbj1qIXmOYsAEVb2Pyovv1TJFve1Ge-vjNnFODA077pTi3uHlKnEjx0I71HC-fBRswUtVQ7M3caCmYdQMBnjNr58vPVVj9-y4_w5fjL2fFeEUWvyhR6TtESKkJ2b4M93Hg4vAM7zgzKKFAwQE6hxQFnFlasUfGdYgdyQBVC5pPZDRY_5Zo97AI01bIVngcnVsW2VuULhhf4NXH2_kw9KDKdSYYpfIgrtCm_bD1GhQAqtUsB0oX3g5QSUAv4rbJTac0r7YraW596c_M200gLradke0yiLjcRYvRMtuvinVxglx0JbNVUbPOYlXEBX9XWRifhMR1GW_M_O4lNWtH_bpKicXF9TAcDgI7Q82oVCejlE0m3rERQtNEyQ9vLENhrnNC4Eb4vmxkGnxiYwdpHvMIMdUIoMyPAN80Ld3prK3Hmwb515x1JRvvMm6FI7BYSt15qmkU-PYZkiClVkbAnN5fb1JmfGHoGrXfmUHQZOXhI6Q66H5NdWAPQkknF-_Xcs8nzR4XRWPYyMcBrp9Vy55i9Lc9NUk7WLryocst84JIvnc53b9UaS-Owq3oSTUQdPxlRsHEmiJBrJaRau8akI_xcd8Ceh4HwZRUszp9xeUKleHeZ9W-iS7RWiTRax2pT7JcbKbH01UjWkoi6z3eo9hs-ehTMvYJ4_GxdMCUHmoexnlMh0ddkSj5D1eyln2P0PvVd-8ZcIOQwFu7aC4Lpiomlt3sYRAuY3hxr4bc4UkefA0qjQ4xXQFQIx6u6IS9BFGrWYigokcOEzdl56JNrv0YVWdKe6uNXuvYXWJO4tPLWGG0_e-Dqf7xc9T-BwJUyFFnpgGsfMFoQ049ItvxXZEYeTT4cqB6ZDotjcZa9vAiNqyJBbPh8Vmy58hm3AZARCPHDScFXXpnH9FysJGTWkapNTXq1RIpN14pOq6S3eD-kzyUOf_C_nMkTFv6V26gKB2uQ3nODfCkr8YbMTc9uXiBTQ8-JlxJt3_7qyTHIK5h85V8zVScCCBYOrmrf9eNlTU07oxH28-AUm-7sMOC8lU3c1dgXnrAlogtQ9FY9L6-LhzdqcwQNOVAXrXYl_aiE9zzI39gSPeix028rrWoBZLMztF8Sui--RkAWQZzGNGaZskQfDOUFiWWRIxejJN1YoNOQ1CodxAfvAzcVEUV8jWW3_RapjRNJsIT49dZnPPQ3JQ0QQNiEPkL69gkzfVWbVskVJcZRKdNMK-7FMA2RtDYSh2mYEEhLVBnkYhjhoHAlD9USQd0IUJQ9EsNqYg9RxLedLHLCyz0b1aNFOlvKSJvZue4yyDjBU518BdQRpVBBNdy1K9Kt-Z5RA_aCSlWZdPTFkbQ6V8FXp8mxFbv3Eb3BN4IFSm_uqdw60XU14Eb2jo5zQk9vofPeRwp4fbm1eE-Zs2Up-6KtnZepcfEH71yXmEBGAxkCyMKqU-9UxOhv0st66x_pYYEVHDbU-9KgszY-_90EkETSrQsv21Su_RHHTAEdbDLKp8ZP8lMMyLhsBzH0PeeDblHykLC_5YasJWXSRRXaxQ75Yj1iGi6ReQYrEDTTmTgGJBuGLzuyFttTQc1M3UMSAvaNH8iilRUNTGUuZiu_0EwrVRQ98mOUWELnX74SeAw6ylf3TMA2qPbFzuuyNl1Nhx5tbd0hlLcGl98Vy7bg0RnpP68D_CkAMmugRfSIfipYbiwAtwrkor-9XTRXzUBCviRtD5vJ5LQcoe0z3nlecWyzbucbZAKx9G8gh_qTiiDxYK3UoRhOm1VUUB-nrqldSOFeF7rKz8TkmD_fPJvEvDe1p57DJGu9dNwe2MqJ-MkUsRJVSvoPYLVn4FLg3mpXsRwkDMUSmucjWGkiRlDQAtox0e7L2eKCfUVWRSHu4kGS8RWa3SZ608RD6BC13yl2iTldD4j2Ca6vxY4Nf3mo9s9bSdjez4jI8HTa_67SkVBnCcmdxx15GKDCLuiSlbTfcBTPhrnvyTAjXQ2HdnAyV3qDpONzTmn9HHbrmyabCuUVDBniv7gnVgexj2wcJ0Af1c0cnZ6qBiyQr2yIADkBQ2oKhu95iXOmmauE6W2pjtMi2q2ioLPr00G6n9EPiBdtuuTUvVdrUTni7lJ4A_045gORMu_UrKLTdNZcd7-EH0eE_EhWSXb35buBgHgYPf0CX7GR618_dTGBBbD_gYlb740Wqk7s3AyuWO_SwfE2x9i49oUPvXAkyA2ax9mcnShJv3obu5Hdi3wMI1QGlx3noPVKQ-u5uKqFDCUUfhIcGeju0kC_fz45GTblIqCSy099KCjZTTGlziUCPQXnfxw7xPTgPvzkfT9kFKWTLTA10XMcQgU5-lhmbX9FbPCkToLHHWQkKwiF88NRd0I2bRKjnOwwZmHvEquEcQogv9THIQFfwfoSMkhbVFu9h2mWZzVTa9ezDzw0FPyTczzH3OkxmuFcujFCfiUR8GSSj__a8ieKKfVV7CZKtjqGDi2FRiBsV7dkKADdhpDfbEsBOphhKLV-NxduKVQv4s1KiX-lKJq3C2AvegSp2ucdkS5G39NW35Xw5YBUQlNCCmVj7bONXAHTjM6-DIdQNFwcELxrqwgZ1C8sM9aXQR1UcbARqtH8IvZvOc-V4CJrpLkb_XGcsoo4C4CucnsPuy2gNviSgWB22uddXSyIM_GDMnJ81xw1ActDBDrM6R8tCWoWbtTK0QEEYF9-0V3YUhD-KrWfjv6G2f_Xl6DcLhT5yCiSqaUpkdCwHv-bgyIYMHPyLTiEn8MLosRRuGFwX0PBT3M7gvjevnuBKu8IB183DRbzy1fxNjAz-eiM1rtKGhPiVANZ_LJzMXHkgYwpLTq9jmuKm3bdjouZorhr82-jKyBoS0daaziV2aBTpo2hzXxigy3OV0JKSD6UeiaYsaeVWfIuv7tjxVMenCREsfTnch5uVuqDPWqgi0298B3Q0XEkiRnmQ-z0kBrOYMyqVZCuOwTIhyVydjo9dWvjQp5hr60WN8nWQ6qnTQuDatYfDnPCtDPF6_1D8lSoIi25w-4at_x4SZ4v5SYVfGsyapj66M7hJcw4hrYtxwT8rNKrGTsF0BhqxnSJQE-yjYdjq45rf68GlL5cr4n7g5JVSlsBkIuQ83TdfDTMHOkLr6G3ArFNy2hFkF6i3pp7BwUPeMBk1W5vPMnzF-nh9ipC8Gz4fyTaur-GuX2aygh7gax7wLJGDDmeikqBSJ_SwBzSxAXiTvZ-8ebJi3sKujKSig9M9uMkYOR9e2L4kkmU3eVyNeTHNRSV90AmnXi278DYXm-1hQel3ztB2v8-aklpgVeQO94FFTkz4L6QC65OzwPS4WSQiaoV-e1dBIB_5HwW_gQLZFO1tu2ID8PnMIP2euktEtL29zT8jKD1tPx8kTRN3Bc8W0Ugk0-ExnmAUPumnk5Z5OvU9od2fIfCDiamYIrrplhVKFcNis_DoczYrexVI1NF_HKSyM6S33aMTZ1K-HKONk9ThUj-P5wpSRXur9HtaT_tdvdAoZ8fZPe6jOqJ5Ew8L0wnZALKjULAEdo3Fg2nP-mcNPBKJqL6jj2SX69GtRljoiu5DJR1Ql7kC27t4S0iRdgTyEdk5N5gpd9ZuPKCFQbPKwHKYWsQlEsfw2Zl3RT8oIVxpoM5TH6rbrUAvB5rHzLDR2feDjvLEcBXMHBulTb8BH4Hv4tZSQp93j_eVOtzuxQz9UMlbORN3NlLthIVK2rOC-zf80DSISR94RZ98XRAHrtW2CE1pU5z6Qmz2Qhlg1-BypYB7jU-sLKY_JA-yRi7Zcc-leocT9q8c_nMHHQ6puAJPlzjvoXLRrQkSHPiKIQypVqDpDYsxp2TRyEGRBLL_XDBsyu96HQd2zrBR6qGf7sr4qQ1Vf0Kdae4v2jAY8lt2Qs-tSkU8v_gdtS5S0SnD0J9b16hr76Y-QthhwNrTrruu5ZO1UwUHjVAIoHafWHqWW4uqEKkxoQgDx0R622A0_mteUL02hYk8_VlTsZt-UHrOPdpwzKNV4JAy2SwxrJgm6cAaCRqynMD3LUv7LPsO4bZ97P09tUsPPDY0pXHgDbdhIyNyDLTKbwc1rfr60P2d5Zf_gOiitejSdSlRPMSPdrVuJ7MU8T55fGZjJunE7c4asSzN-o6dzjuyCwbpBupDCQYJC_c32df5Lm5L762z8xc_Pm65RS7_ok0OGxefdXiF1FqN0j0rzFSQyKZHCghfZZh32-MCxBPTx44SwvBqA70F8o-RZ0Ptqj3uKQ0ZznA3zHRib-LmUDa_iwnnAGkTbZM_4LVTv3LqsPleoCOzkkajpKdAubu7kGMrSnzsbQbdMw3JbgCa2M6tRRM8Yj5mqFg09doSNYYa-GdrVgkPAURqHSw41jYZTXMUhuxysbRFyfLP-tcLiKcXpN87E7l4XTyh2bSosEYBgHMvCnbLNJSHtrakHs0eZOpp761gI6Skr46zm0_5TqSKtoDpMnTgZ_pFgeial-Qzvjn3nd9OxN91pBMDiTnVewU_Xhk2RmFk4i63lyYvG-RfAizSyaJfLVI7T6Z_oBRyqAxR2L8PKsbgZcMtvW37zkKHcfr9u_P2rgKYSsvqr7m5Y_sbkIeHjHmyjfUkm6K2EsuyvfTLW2T1EsqfphZch78O1V3icLT8eMumdZ-HtrW9CGUFAVmC3rnGNIneVYQMwWEr-AYqBMkGYfwHUV3FDtz3ABpLOmE0_eALC4tAPKbBgn8vOiWngO_OqbBD1wDXnqnRH9PuaKINsHwxutI2yAAaCb7d7COuzGjILwTOF5b9mXuUgf-vL5eb1qA6DM7NbNi0Em7LwiKEJu5Kvp0MzAR3bKsIPYLkCElGHlOIJxbKzou5HSUtfXxna6KtZ3u7H8qY4D9QBZ_xk2tPW7j04YcRfTMQIdYLWyb29A3TKvSN-hXBgFFc-am7xYp3timB7k6Xk82xk1x4vfOFCoL4EiTmT9GPYP4xD1gEFbAVQW7jiCbnVubEBPfFrAurn7k-0BtmzpeqvesGmlQSrMUDvb46b0ZKXQBsV938l6_S-KwIAGHol6MwfLDFhMnLoalvqR30yosvVQ768ikun4TH3SDS7nuBuZY7In6z-maUDVPzhQrFy9QT4SxHPPR28tPRgUDxqjroiWGVpnfE7iHoOHT5T0KqWqnlV4VnaVBYyvGb26PeO2YJriqb-LGDmGUci4f5w7TsivWOhG2fEAS1_CYkPExvAwhpdMNDOVECYXHytwxF0hkNAwj9-gjYbdoZakv5lRSvlKqeUBajTasrb93ARQSz20XWJipennwAglNGZ497v4o3t9i56uqkDQg5fm7-OxwUj1V-FNriNc3uO-7t3bXnZWV-YSziBm_H0PzQQ7SVwQfpoTn9RSsghAnudOVwyIqxv0X6S-gXvIiOCJiuulY7D5FqYpglgwYoHH10clnC-2OuNVeJJpip4343_5gKm55Dcivyd97htC_CKstzEpOzypP6Ert8DfCr8ATqVUpeZasvW2elwG4e3vebkhmU8lFgaAcNpu6LUtsERwFJRwHUIm4rIxyHoRocDoi0doNpBAfAi3qdcnCHVUccDM_ypPypL4Io3wMEVVeN_K5KesZu148rU2NlTp6qb-GbDF3fuY0BJtpWG6BBwZm4I0efUO1AWzbPDdKVIza9zLlHHXAlnhevQsOhcuLVXx-q8P0kknTn0p1dmYvbdeWqNNBKEUB-r5i638o90Ktpdxczb7WIh4my5kPBoyBBP8P2HfKrwjZub5f5SL-bkWLio-e8V2WT6kg22_a3uM3EeKEaW5d13HqZf9QmsjXArLkDwrQ9ug6kWTmElmV76maTpyUn-VFahFv1spwjPGlKRhVXxoR3u6YMrn0txMeB4jtqg9fu6Qt7eDehTV5l1E6UDX4gNCSoUvQzwbXUHNaJwsAJ6b4gyecGR7APKddZ7rTRtVWRE66FjimR9CZM_b8vy5tUuaxUgbgcKd7rBEU1jqsqdmVg6yM5n2G2W4D_qexHpbmYEekfwAuCFZL5MJ7Spjqop6L5wdwDpS6ywLD8CXLuA9HSSIC5L0mDJs5P3UO3q7dAhRcDDCdPuT4XTJERS8Xcfz8lW0dv8m6fkwFuZGRYg06ph5oiNx_CKQc5e-mn6zn0e4j1x2EJGMo4tfYrYBTrMaU9zPhpT5F6evVmX5uB21D9mX-ImthQwlnJafTDKKAIF1TBgCpVy79yidTkzV8HqtJJCJE7UC4FtwkIgM-g__XUAO2M5rxrRphvdv5BHsJYU2cCmGvPePNuhj9TyXCRL3O9iF5jXelTPZKHXp3lOil8O0Q2UgflIRQ4PwYZPXPrYxGFDSP9do4Y407cJhhfmmR0v2BK6zZXpbLll6LaYIb8iZ6BBUQrgcuDnEfJllNnG4J2r5t_uS-jQAM9tWj-bbR70ntKBq6-6yallBF4E1p5Ii2XwfYxxm4VQ56s7Yr6blPuFRVyo85EVRQGS116K9-By1qvf82qnayz7RWZ9r1p5aX1xnpH4xT2L3aMJzT8ywUCGYzmbHNi5w0de0sapfbysAXKOT0Eaks8o79A1l1jtNM2UtGD4K-uCUeZDmUzw_qfBAkIdB-iuICpZdhIsNQoBgZr5cVrlQ88vhY5dcs9A2hRxRFoTapL7NqBGIx-2Q1Kic9pA9qJG53k9VACSenUFTw-9H1aikzOeQmfKSHA_6HAAXxl4ssfLNQTXzqaVsg5ZwPGrCfUlzV_OvMqqXQbbzrvkJfhvT0-KJi9OngoVI2ko8hfyHu4PTVbtwHZhgezimTnKgv5_8KdIyg0z3d7GOdOycAie977XgIHbo3n_iT5h-cNYDf0kgPAvcQxUYJq3EKUowTsYbHIFCkN_0o8Cmg7OvaAaX4Eaebj0aibaFV4kOiOXnUy7kfn7N64gvBG1qgIJDDqpcv4TGO-2azvN7tywWF1eHmjqADyk9o8QhrVh0bWY0fpjt2RsRWo1fSKghqINAjdes0MPiutlLEsdtjGdyhp-c8bMzjArjV9UAL0-frrg1-v8hfyDlxJM0ykDITlJbp4GMeijD2EoKlnuDXc9UD88HAWkkIZeE0aDuZbo_AkiUjZRYiaE6XPQRwp2c_mlrBantlCKwUBRGohhj7DuCp4nNflWaeBXDPp7KjsiakkO84RIhPE1NMf5PBabdYd-esNE4LxImXqa67Esbqa_Dv60khmou6Znxsy3JYArLdTxMx8u4sO-K3ZgK31vrzeKhzTlmCd6D8A3lGa2bCyTH8fm49nh76KelpkMbUlIwDjRbm679Gr9OiBDfy7xgLj0iJB0piCVhII4OVL0iurT5T3GFEZQWhhVNAWmnk-5nViBrlDqT7zSZUPiSJCcCgsdI9DIRTQyeC8VrC3BXE6LeyfPbAMNTT328pdVwVd_djHZqyxJHfLdlSUPAOg2-92vNbazoFffNNVG652Zm250skBP5Byt89mvLPTVoebIuaHWts-FPpYlkm85wX71DE7emGXGddHC8vAxTSmb76rTVBt9k1CXgNUFQWaaY59A2ZKkLJvkMKaub5zsOERRSltBB3SiZLgwZa91oTOVn84Ql6eSlakejtfEzDoRtMkDCPogXmpi8lWidWv8l9WF26MXMnpDXhV4AUfiJLSlWbX_c3bysvAeRGbMbME2I5s7ON0jE6VIdbioFSgwECagedbYLvMvusbpH-cO_0aAZgrr-Mz9Kb4WU8tstH8sNBFPtIpvBjKOiuvqpSFIYNH8ZcEg0E1IuQ36f24eSsBmVcXsVmUtK0J3gDkrlxvZpk82XLygqo0NRfiJ-0p8gQBrMcwpKElYftMLa70o_8ljav7t7Oo1vRonliR4yxHeJykKde3zZUElqnqGKB1sJnnYRKdTCg_5zmQjNRclD7gaYlfgCehwmTI8ipgfF_0BzcoJWIE-nN3GpQ7WX0THk9DChIyRSYKrq60pHy4Hlf0i-AyMowJTv_UehFbiyyGuV6NSa_GUZ7TeSn3ifVMtmZNu7hXWUIZa2t29kSkfbd6uk54u97RAX5ziQvNhYnqqQ6do-Z1HHwgD1VYCu42dJtnldHsibeFKDPBvlKYpebG3lB2RtpFwo-gDX3BccBz_a6QuU4c-7P3UaMils2mcTC6G5Rr4H_yOBvaz2pxVdGIPb0xVl-4e3oBWnWrXcodvdI4WdcPZgtNJhL0JRw3sE2didF9Pb2Gt9mmzoiEQe0ZDBASXrxKyqbqypGsk7OQl49zPwb6vbAAOuTITAHKoHO73qwiY2TsYrrUv3zPPt-nHtlLvh51992zKldQyXh8GjG9N-DAa_Ni_7h0t0DOY6cyn--6tF7jn81oFpTeIgFgYSR4YeGrqJddUopaYGVS4o09Od0pi95_QZPDScvVJI4jQik6ueGIGlEbrgj5PtDuGA85oNFD80UUcv3hKAa0ob1vQ6MK8Waz2dRYLTtLhXwHFaPA2pgKkLK1ybUGYZdUUwf9goyZ4Voxkscof5dctrqOJxmdswpfmp8jOhy1fuk9U3U62U-HnaYUVr1Ot-942ec2BuLbe1U6FO8ycrhy3CTkeMHyGezA4NvGe5VzeS9zHF4-Oj0ZTb7gh8PSpptL9KjF7sHt5_mHjAo7_ImPw26SWmE0wDeGN67xyCorYOKDePHXlKDkLsmnB7rcNvMUC2e4J-2wlGwjHn3RITdj8GHozX1e40R8zLEusYrP1xjF-jmmsu5GPG5XF5-DsyzBJZNhYSpz_QeYAq8G07HRNOt8J3ss6d4I5fcbIIk6yFgAdr5pFr1HnNhoJc_xnTTIoS06l8EYddSehP5VlS4S2w_eZHUg61YIRvcyfK61U3_KDze8QyY-btf1k34Nw2cuBg-SJpNPKHLp-O3jWadFWF_dexyB-qlELeWxhhQ--ipJpD8XbeNN6E1oyQYqwcGwNhUKuzXr5bfRMAWv1HogHe_5Gd3G_i7HAR6Eh0gM3EaGBJ7K-eEkO7j8JFEYPd_GTt9OE3fCycRD221Rw5-t4Mb6Xc1Q3iMZe1RDQJDFq_TGOyE-vKkt8KGUOSUMJV4M_AmBsoWZy9lE9z-fnwOKTCmXeKNmQdC0HVcvcFNvKjYatF_IkSGiPKl9A3pwqecQmYxk7m8uhDbPq1imSsq1f2jb4u7DKdTncMLRQFIDsgsg1hyIp8_NRHl9cxoq7sVdPN-K8qFb5iPAAdXbn0cB6Uc7H22R0pTFbptIqQqtQKkQB3GPPngTSAyvjsu6NmxCRDlCn8ELTIyR1knxBhrdBvxYu4HbioeWrC3Gb0Z209-WPSN4dnXkC8gDrFHAnCJkmOO5hpIUlL9yqR1D6CXAmCZVkBrRxehiVDUqJD2BeTc4J3Iw6k-9eslAKO9rrQ_XAl37KTZVKtIB2my7HXXhLvwnFRCdjWIwNChR0LuXOXQyHT4YAzCRe9Km2lAsHIKxzdXEMOLVIGb9sm1pc4qSLY5gY_oWU3koKR6tAQEpIavYGhxaokKaYZniZUA1af-NTPYASZOHkVTVa9W1F-CZUaagsf0rbv18EZGiMT_WWG5ejPftLIUUFbw6-UDGDJ4TupasbxedIoQwCA2LWBMVq00DEiOYn0n8kXG1egTnRhNroAQxKxq5G7j8EvUZpXxKVpm8VMz8jhEtTLil-QesOPz_IDuVWce_DoxoPofqFDus4JnnanN60cYOUh5DYph4urheCOqGsXDJprceLsGuxusGha5qLAPxR7XpzS8RtdtVbsmXpZrfGcMhlwdAhvAvZJO6DxN2mM8omRlJS1ZVVudb-pK337ocNqBbprJY94MdtUJUOyOyeNNvesLl5aUFKNcIcULLNOEitnWrrb9WrJ8QFs1RPuukq8RSvMIf0pWJIT9kn0qJNFVbRrBRfs6Uy93pMQfTXJ9yio3vb6Qh1sUT95Agc6jiFvgdkGAYjAcJGhJRBaD03_yqhy2PcIk2Xr4aerCO1o-n5SDv6Om8ZH2VUDBvzDQ_A8UYa-PmMNcA2WeFRlm6whQUeCQDXH1tdXffAm8KKvNuosYF6u_gwhpiKiR-TvSTw4uc-vkweSsyisXBsW-fzR7IgwfNg18Fv0Dg8BHLMz4kJLuCUTjstqAK76IWrHMNqIyEuAqBvFXBluqZC1YRVDAUJiM-9uGgebb3_7cWy2HJ1x7RF6qLCIqNqdCmGLzBkYhLoqSkzkKw2hIpZFeU6nsAxOXAuuFDIPCCJhTIU9ya481h25MmFjjOh4gRlw-hx0LxnNebPLNljnt8k2nH2vDTikSkwONSHg5ft7acG0rbIEFjaLO9K0Sq2ZO5Z7JIApk-W3HKRXYlpU-ISRRNm151MeLuyKX8F_kExqJaj_qLHkbD8OQljX8MZ5yN1z4gkTtvCHiGlCmMi6zt3ll3FBvQjch5lX1YVwE0w-TOOIa1J6L216LZlJXizs5e-JaUhyYMeDTkIU_1LdPKqXHkAqNxCO8EhtxodqMiTGSy9FPL8W1pn_tRsdEDOmpDcd-RffzFTqAFZwQluH3AkLcf_EMua7hhXgyXyzF11G7vhzn9OphTmkVzfZtvpS9ibynb07Ixccb5UdcIp_KGL2F-z8uwl9T35X3_5iyUVEqheb4EE2ZEmkTw5RFrq4CpoEgcxV3PNpqpyXae26nhXrD2JgncjVFN2Z7F5AfZkOqMW0brtqIMdZwhwP0U7l-GIczjsXHuc8DijoxwJ3oUVE5NT841-6JL4IKQ-ut2KJRtxn4IHI0m68TdJjRu2T6vdhXlvB5dB-CTS2uroJZ6_dBx0pxEMoeN0SJbqLYB53LRjEeQml_vaVMcTbL5IYEsSzlGfCAszYeUBtm61-Frolct9Jy0zU8vOvGdnTzC-RvC6lHcJGvZYT1wy4mq6_pbQAY0CCwX8YDcguFGELwDFtrkNF9qLUtZnLetJ65DEZ6geRH-EBoZW2LDITPQv2OJrbsgPMSFtAC8hVXQoOg7I6a6fs38ofAAJK3vdckabjxtxjIC5XTTliDPtumC2Q-_3m3Y4uil51tqL-frD2fehP1Dkp9sXxVuHdFG4w9WURaJktB3M6G_SL3j-BHB2wnyACvRgyKT-_aZCoHr3NU4vJ65otQYvZ3iGJHQGNHTpwuh7tK_hLW5shfRbYV_yiPkGC0XRcFQ4OqqKskQ8oVGDRlnpMkJZqQiDzHZioSTvqkY4PKdFy2h4iOLh1L-qGMPRlP-7W76UfzD6HXwtSX2fJQzLd22QEHyiVDX-ItwNv2s1699iDjh2Y3LWG0dXS79rXPHmE-hyF67-7U3RTrxcVpWtzgwPlAf_ExU4cxtMe9CbXwQ-a1iGdxAFEJ5UXjXVq_vMn-fDONkKTr-2QbMYTgzn4I5j3GW4LSGtOwvlEuLcj_tW42uDxSBZQ3aFYE2neOhXYrI5be-h9g8ApSJfQ3wNfz7NPnB4jT0tWBkhQxxDq2eQ1hT9stlE77KSZuSG0Y-64rN9rhRHWUtFSc3yBtA77XijmslYyqbyG6hnzpG9XRX4svhK-1nWEwIaIFay8eGO1Ti6REdv0zSj_kmOWcU-lOlIQkYxxcw_Rno8TeJ5SJPAZekM3VZqW2jQVGML7HDoExNSv-5QpxWHYIxX4vc2foYB39rx5Qywh6WSCgPmn6gc6rzbLxxBXRBcU2blNKqw-swoOkuXv5dhtGLejLJr16dccFK3pOrka3FBuO2cKvOas7e2gD97j9ARm-IKtvaxKN0Rbna4fXDZ9FR5jZxPnBQD6XLT_4hdSjCT8UQzc8P91YKFu0FlLePYH8rAbUTu0MRIhFL3CQxHLWEnj2s50NV9twXIAtetoUFV30mGSmps1TyF0tDT0vkiwMI1uiiYkUOwXvYV62PXVdM36Z94OKw6ht0DhWOmRaQvkjrLqcZMZgRLxxnMl1yyP8zXrlDVBDo0UbuO0BLyh2IZrHGb8WocFp1RXyGNSytn3rpzeVu-npVN8xlY0aO5TsqQLPRZGP5NlS2zYLH0E8oDhcUmeJ9oxi17YjeRrDpjhjnHe15iR0H0DpSw8juEBIPra-T4QfmfPVoRonzakEQ5h1ELTA5eFAPNVCCY3zAFSXivdjIESsk1s8qH9XyAEyUVGKe6ZkXFVuUqKyV_mXYkXKjqqtqWzkA3YVZfyTg_08_m1jseH2Jx9mtJuUuysDTkTrUPbnpCC9Dz0K9gXix1aZ7kpsUUMci4hV_UyAj2O7QNECIXgr7YQ8U38rSdxyMS2S3UxiCNIoAstGj6W65_96GeRv-y_Yk4QpxJTRboJovG6ApSPqaRLf9KThgXrxyh5SaCE-VJGGt1SOIEDpzlWZ4t3vjlmBoIj-feMQtwuamRm74k6xS0Wzh9rGcPq9iOeX0TCVwPjpYI06ZE2x4h-GqWuZ8wMaI7CJkBm_Ff8opOkog8b2RjrZ7i04P9-JLo5kwRuol95H3T1cUogdcZGXx_GD0FtCnuE1pYo0iIwlMGSWNFl7LqJDYLUrAUNjJOMXZtLPdUhUikO5X_J-zq0cVfO4FUdoEgb0FlZsuP7cyh7MGyTgifJLnamyDFIq_ksuSzhyHuUiSLBRlajyM32__LacVmZPWcLbJNWqD_qKEbghGusIJ4nLeRD1fGLNmxUGN2cO3m7A4OoR5AqH4nNGhXtSC3ATNNFJPIp-93R_ft5kDVbI0eoUvvY9dAGyvhaxrpmK0hjdkHzM_QmVr1dbADWAkuf4_WGQRAOXxVpAI2VJJ6Rk3Zz9NmCHLqAvqccxIQO-vR08d7-kHo8wpWd6ei4fFO-qEyoXVpdY028RyBbm5FrMx5DtqmYtqhbztNye3LXe636Xb9wfQYcOJSVXseQLqa0hwur9Xf2yJExbl5WbjcE9z1Rky-oOH5uITt1pKKvw1qNbAxH2kxVrK-9VwLrwRSV9JNrvDsEaYY3j-eq1w2w-OSB10Urv4P0vkxLUVP07tUazF6zNQI33mdhcoWSW6Ak6CJ4IMF19swSUmj9fd1fSu3Na3-40uncuWiXif0nc0jTXWX0VDAOwJq4RGR3wFWif6c6njz-9gHjHEvrx_eNJJw9V_uqkTp0NblWr8s1bTBxCZWeaABuz-18VdTiCHP-pymYV0kAKm2BHvU0RNRLXvAXBXIAmmZ2gAmjttemRQmnOkz4dF3qARZwsuox3eDB4hni_Qz3-oNYmlgZb97rrY2J4Pwt7sT8mtc_YNSIx6UD_DwhtSNE48xGWEKPriO4WnRG7wv1VWm402Ytu-SHXzmCFj5tOGGBuONPoc6CNdOk1F1_VuXrHW36aAQf9T7_hjMjQoDPdeQYAQjwiIpJge_PYSTcG44Am-Kggxz_bmY--SeXUNcs57mLxSRSQjRPI19E7zbGqG3KV2XCuvdqtLhDvr5-dNDhO72fMEah4IIkg9IUwjjfFPxPmmWDLkZ0nGl49MZUFgjtaUSu3v3hQt3BOYWhXUpMQans6Asi7o3fjV_opEE_lFwbQgGhlfPH3-Ve00Zl0tYKjikzVXqCthsGfcBFOVQWGuiATtaFvS1UbW5zOVEyxtBeqSLvT2aO_QL71tAV6tcFq73Z4FqsQmIyhwqrtr3jSfPzfl0RvGxXqXR7ipK4aUCfCBUgl4a2cfGIs3k3PSxdeNgUw1aNh3aIfymHP03vE7vX1jdKkNFjfF6Oppr6DM3bRwbHXLUiw8fwvT3qgJRJQTAhgEeB3P_75FDN3vfkv-bjlTlY9Y-_C9RgWSV0X5G74AZ8cwaz-dBB-tQU2ebrC3z05wyYPr3MC9kMYARvgmx_y2_i4q4NgdZw36aYlQCQS5Qq0xPhYihEt-KDjd5-sqxgnXCjA6xVNsQtOvGXVSaREa4vGph-mkgKh7BSM0oSx14Ky_d6vR9i7C13_awV301JFOp9EnXoln8J6VCylpZEJzEOeLRu11WPGQuDHn1mtvMm36lojsIHPeJZ6hJ52rD9jJGCCT2hB3y5ub36RBtL3866V_wIq_igibS8x5NKIZo94grWvecamaIybLzdr2azRjMhT4DrC3MrfF34IA7A-ANpadPtS9F7h1AeCdnzYaoa_RS-jnyMtmyoXTcD1ugWy6sTkerzA9g9JHeQp5nrrt5cLLbBmITJjyYXlKMtZeRh8lmbQn6nP7qvkuu7L3pkxSp2mq6HdFcyhLrA9EpOx0sxVU5CbSqmE-j3uvJfb3nxh9pZXXPV_QXMQ2Rbx-yYzqVeQT3_Z6qI7Vc4HfL5Ml9NDJfGQ9OiSCEvE7BeMB2mbNxYqW42NYvQks6whB8Q5KVuw2yzUsr9X0n3eNy0AGuzWb9bIwXRbGhWF5zGUw4N8Da4_TPKZIR-nrN1AmTOjLvsaqM4fkT40tlcYEjuYWXJsNQ-a9xs99lTIi9Of5-Vx0sYonb4cekvywTXrpl0TtX5mo_La3av-4F2mEymXLuVWTbBrwiPH6bavxjAOO963ejkXgAYXJL0PizEen2fbPqh0L6BEc3OuNw-uIut_HryjCmx5ZMdbcNOvvqO9I0AZ6KIw7JM1TsQOqiOxZ6_CJEGISi8l2Y5vQbj7RcFwoeRpEwoLNTtCk6R4y8V4Z50QaPYailR8EUf-inL3mGMIKXRlsnrJ3jRSCY5Wo104R13qNa-ZTGe1FjHR6iI_ssYsXM-olxVK4qWlTjJu0V6KlNswyBAcSd9ZjUdHydrsww9e5sY21dDWArwH_NHlI5mxqu8xaDVwQUl7sSqCSalF3X07U9S_GGqXEAI89HKAGeGttvZ6aQz8v9Wg_gqXuJ0IBXR4HnXDebI8up_5fcAfjowPRvo6iTso0mBlhzgT_bSxl8Kjv0gwN40LLSyZZ33hl2vsc1KoYIka4ZG39yfB4U-NA6KFPj4aEvVPDVU48DkjAhlaDstQFo2X2g7z5dQihAwnIgOEXMXbOWAmQfLQcMKAO7hHDLnrBrmwJHRCuU5Zy83KYIt-cLXCqmd7Qz9VsilCYoIspjqyjD-TE8wbJrTCQcKt4VM9manXYm-7elChaaJ-tYe61ofFY9I5wVXR8LZaLrp2ZvQBbjcHrkRHJTM_CaD9ClNZusqvLKDQhTOc3EqPIM35qTvoKOp6LNFYMPgGnUxSqteBZmq3C4DPi0xgkjQ7yJkQqZvfCAuLopd15TiTqOPOsDOEeUDgjhLL6n_SGVibSKZNlfdlwCjPXopILBwf3oyD9dz2GcAdeGMaVOUIPeIVHSb34P4jMpvA-H7LGxtA735sCcMWMIC0m8jXv8MKe3FHCNPaJ_5hvM6ZZCTikaKy6mxjExk6_5VoyaQnTFbxvfuEJmrjuNmW-e99KtjzvlNx4A5ytOo5H1OH3tCHbsP9reNaXK9axsNsPBZvy6xmWgztJ0OWr_yKG1p0Zr7DkEGj_daCEDW_tmEO9Q_vbdMT4GT9ADgFFfyi6pBSt0GRZiYR_baZnR52sl3oIk61EBedmjNCaFKPgcFDQwhMA4KS_JVs_LeuyT1fFayoBcbNCsd5UgS3ywQvVZ37IBwZmYR0dgPA-SfY2fVmFdIGj8zcTgEwaDFT8MYZA_u4tUm0XhaDnWW5M_Ao3aDlOMMxJSn4NR-oNLOSXrALXojP18PEOPBarWi2_ocyNjbpOQ2TeLyXaYke3ZM3IBgT6xI-fmW1my4GQ8yJlYiptSKUg-oG5Ai0wQX08dLkFVe9cd5ZowgLqexj9BDG9fGHvY2JUWmahHR8lRsuzfANdQ-SGgjsINWhpjViuo0ZqYFVqtN5lU5XQcDphyQRgLY4CzMxIzioahJ-dPijYL3bkPFzg7ptHXJpAUxwYVQ9QzCMboJHZqKGHQfKG6l1nrj_CbTJZ5MxPBZExeumrl3_D1pz21vaXm5chzPExYAm2PYFWLtCnrmAlSRiUuDbovvLtORf46lWIZna96HSpYhXEzRt_G_cycUHQElxMry4LJYgGM0OAifYkDHJTHOokbUgmm4NddguB7ftZvT_1warEHDeKpJK0nuihaRbvkPxH7UivuGWTXCwj6DIj33-lmIjxXC3_EgpdDG7QnXyNtoCNRvbfNehYDvBT5-LG1nGVk3fn8AD9FvX_D_G2_0kuaE1IsFwvGVokz4Qvm8MIqcE_BBGv5-GbFFlH6EFDPQPBk2tdwdCaPCkK0AuNLkqYfCqXg0pavQX-rGbzuqwfq_vBCXFlz--MQFJN1FSjaTOTg84rrKfPjECHEjk8at5OI6RBMx4gthhWuJ5f0y6Tr0qc2mo7DdTJQ-CiRWLTE4pV9OKNyqHXSHm2prKyJJNlgbb9iACz3Dlmb2AjEp4f0Up3atT7OutLGHZ44f3P-cLvjkhO-HBnib6j305pKj3X6lRUy7HJI_U1m_8kxEmauyuPDpwiY6lhd2x4txQuVb3cg91keTLhqFDXlBf6yGM2Dlavj12pNcL9rybbB4jT_b8XXaxPXSe9eOd-cPd6DXVhOcpDQTrrajpdbFxUmdGTRxYS4P8-1MKECxIfFUZAt-TsODrIEnjboNEq50vZBrfJdTlc3qH_0IbxRNjimLxR3ojcfkAkKMKwLuny8FDinLU6X04ZCqNj8OTcR5t5CpFV7GIDyqoQtwwg74T1YXws5hzjZ7FjC5WjOF2EiYqOp5oZiKReHCB0vwHIF7LTVwOHXHI6v8caCXlpKP9GStPpqKwpCHa4tD4_8MeOcp1BpGzxsVcDvdoqMDca3KmqCQidRteaT6cw_vLoQK4_ovI1bHhBvSjs0bCKpejneJECcot81chEuRqfHayeAx6KVCZP2EzOv-Up9QoM1dlazHLrjF-fyWkZuZ2T-rM3dvk4vDKZRydE75gbHOnC4w0x7Vni7Z0uJvWuTarb38FNXZR91tfh8feRFeGNHchTBeU0yueQ7o8DbIiSenfu-zuTQN7csPMA4A2jY3ZhHGMewzqHytOWigx9uMy6LQ9gMDYZAOZpdL7mal9o6g89i7kbfOJPFS56YLB_kxNGtSYIOUkcvsNcf081dwLwDNovEDaQiRi8ktTExyEkDJDPG6T0TKB5HnrO6TF2moqsfayVIdCvkzJ6d0eBcPaDZiO7O0rTZwjCrCMft7eNv9eCxAzVhf5dHOWGwWmSOI5McZjct1oSowiGBSjsxeL7vyqukPnnBtRek-lK1Uxlqr8l4JF_8_qASG3f_XjpziMicc1T1YCH1ZPCFXquSBWtlZcn5rs9_yiWlkzRXm1tYi9ujAeqIA7tqHF_TBvDzD0-LH2mK7or8xN2LBJHkCcVRiSR1-Y-B-bwxj8h4P7S0mgjlEIRAZNlycroPyz8SNCxPoccPyLr3C4aaTxdSwi5EuWlyHlgI8elQYkkTh-Ey8NZtmBAiQRV5TX5lvYZcVLfEOSinQYzfvn8QdyUcvWKzyfb44ubiiO2x7xxxRKBcz1W1gnTFc3B5Ntig_sJuzZI0tGCcF5ok9JOJO9Ma_YSIJ4uOs7AOsV3fQlwo418axc_SOTp2ffP-DRX9pMZWtLRrZjtF_jdghJ_qH3E4-0grDDHEjhXssU6EOZ5we7tFOfZWZMZy2dWHCVFqk_miE1FNVPf-UcdzvuRp-wvXXeDPrHTyvWlBupHY8NZXJs8kt3qNfWlXLNXDyvm2bZx4TgYGD3bJZcTuo0tYlR4QQbq1G-hkpjZEPl1rU0fhYEPId5xfxcoYH04GSRcQ1ZxihujAuhNC2DcGN2n_r-NOKNLO-apoOhqG-zYzctYU0-2qE1ynOR61eS8Hr4hrcFkNlJgn8cGmE0rZIIo6iHiqshgyV6a7n8AnGC2jsT3QkQNEh8ARq_vdbz_FaJzswY0d8TfxDZ07o2uSLxqdpbw0sprpT7hDV8g46pUXaqV_mwLUG3DuqjaXwulU2ur_F-HcLa6Bpl6f-JwzNVTojjis_S3aNJxDuAMQ9sMD9HPBcep3KpUmteN1zCYftLqjl4N0wb4CT8Z2hJQc2kb6vKQnerX_B5_ulNSO-dugMhbJN-lkUu3V62XB4BAFZLtsj1pnuKyrATU-q43UGdiZqNqAZhol46aNX6X44R2k-xHv4hyjSsTypTUSA_cuwl8zsOki8gtWAgrwR3gfIyo1z5mYlFi4UvOpWrNxXTU-TL0RX2HcStlyCKsPXtd5im8_ZKygcQBXXlNVNBPXScFGSs3ayffhc--dvemlIw3kZR1LUAYajjacYe3Ccg8Tmw17eDpqmZPqED7RnsNJpQ6njxNhBt0OXqcGj2d9JHKe-Uv93vTV1pIQ1KunTTxLeb-E-bQ7w1XW3WtcMZRLKBB3y9IQmmVxkBftphm0mnS8YID_PHivHlVof3DwIVPK7zA6TXHD9FQO8greSVMMzK9Xcru-9dsQGSGCctHqNkOQprjK6i-e1TZo1xhcQwB2ckdMDwYgwXtvM_DIYHeOlKm2S52gFQDd7dDaGgOsMDXLGrjhs6SMt99oNjVdOm2d7Skj-5558gu6eae5XVJ3W6Sb-C_nlfVotXc18DX22F_GobSHpn-tesP_1thvaLO1P4QDi7Vn7U0RWErq4Jwv302W1a1lVeNUgNplgdNA12lcjvSYI0vh_oFpQGq5Xa_xlSbStxFwNKsZYUmV6eDBhyf7fM4bW2Q1OPx8boAYx7htVtxt9-x2y6cqUusZkSygapOvAep3LBc9ozBg-rf-vJTuGnZkXhr28Xj69A2nTHs5POE7xEBpV_HxXsyJnqRCniGx-VPxHythhzeAJZK95y6ea_Ln39wZi4oOrw0VVdqDyVdQm97h0Ub8abFw5NyUkG5jWLkn4xoTp5Fr9zzBOOWkO4t6HGYzzGDxV_Q4swjqk6BGYtvWiC-4S0ppBjrrt_iIe9L35CI3zrLkCNa2umhWpZcaGNQK9Og9JbgAQS88dRz4BvVqzDYZSBCgKEvjs5AgGsAabulcVagiXHAYK_NbPnbGfrcll_W_0yTgpkru-eAPbK-Hhda9QOAfOPVDFq7dJh6TDpIIO3QqfcgOArg6nqla7I06jeFv6AL3JyYOvAtQkZxt9aIg-Uw_OhLbvPZH5qGYO7WQr7VK1l3GC6v-eJLoliMY5IPgcUYTBzlC448ZO1R0krAAHjrCufQ_wMI1Cab42U6jhJ8d9GF6FkmBPaSnDWIagyU81gBerr6tRZ3fndHZimOACqgFl_uXb3sg1t1w0lmjZ1H1xiSBqviLQC7L56nyBNaWl4aSN5y7O3vJgXraBsA6VvgnGDN8VnUuQ2msHLaxG5SS-xU6HKF6Sag0bGMwxW5GuFVhiXaFLF2bvinacbsoKDbAtzU2f9fbnJNsW9ddcUZ4t5xVEmi4I3x-a4VKxDjvHt0VK4ID2zL4j7mBHu8M4H4326e3IxCGOOoSl0c4li4I4VBM1Q3ZTMc-d9-RvSARGpku8fTnFrBqgDw28w_uCOq4_oYFr7m2tY_AkXE3fyTEdSNicOl8avpfM3qQzH0-H2gJ2TZWkMpomUZ4T0QVrzYUPLA6uZE9sCT80JZZct0acvu5QdE3XjmPlzZa2L1T98ktj3OXK0WPzikq_9BTnual4WywMSVPsufYoI1n0BfcHS0FFSIyG4ZdxB4qGwFY4yWevoOTawP4QpCQr6-_yaJtgpkdDkfTOlrGy4GntIPRXdXIsZYqTq1SN7cxCVweQIqy3uTr-vfg21DSk7sNbs5uRwialmR8jMwErCCsXBqvKHUTKF91P9vhIc7zbWuchK5W5NTMLPbdvdLIgpSB1_AlCVwdQDlFe1pyoeWpyuxk8vxYDH4DgL88obS4TTeYx1DTSl-xLJ6U2n25Q8WhRBzcfwxHfE8QdnAO0_ZjcMLNQctpJhLrL4Q7_kj1rqKlKr79J8IFdFDOsoxqJKvmFT-e47fT1Nr-ku4GM7RSdGK8UYVEotPGrKn6BMvksEEiENadnuqe3IgTblytyblaY3zzGV5pQ5N4AtnZoiBpsvwFdFVsso4jQdKLOBcTFaOGX8kepD92FCzq50_Ps9posgGaCLgfM9pkWRLLYQA7kKsVBw5dTIMFWPXKEkz685dOjJajbgd4cT9F28X0fOiODEGynIeFqHyjQGWQzTQ8WzjgBjljA450aYik1bPggda9WkyCKt4XiOr8rdvGMJI_l6IfUsOrLZeYEGUnvhF9nHwOxbcEKsCVduBU0fw66hhxuhbl676UPteg-WyeufwIRKDqHEQG4AoNjYLH5_5tTD37eOlbYpSJmvxZxNq1HusvbZVCl8PshmZA9m7L4ei4u1AFqPaaLReLLx3jwD3fONemPacwtnXKVcVmkImmhs1EHCoQ3hgR0ekZIg40EOvTsPUpaHs3FtJH9NUdETUOVwsafiPmFSj2bmLTZkRk-fO6uqdFpW_Q8re2nBYiYNBltEQ0S6Hu7lqMnkkU9f4uZ4xZwKSAmF_UDtDupwLPwAhPmaSSx-czCnXFa41APqbPlLQieq87-E4gTRHD6DF14J9LmJ84mWIL0Pfm7yxy_8hExk1LibTWY8F7b_nm5JJWNIZ38x1COWVp4_PDsI7ahHOKTowUf2YQbv9MfCd9qaatCH3m_lhtUYLM_Oj49iX7057pCqBRHvBr5HJ1ZgELFd3EDTTQb3wYv0_HP57iq4ZPyKDSRoTWHiqDLtppSYkn2eXwgenOCYFTGYx5uUCTLjNp5HxbjIbBiXkVK27-jgGcYjISlW7QCIJiieH-pBaAcc7LV9M9c-5KwJFSn1lsG26hb7vfz1XFyrjdfIudwE_boVJpd1j7x3-qydkDr8_RjYO8jFXnKrl3Xp3v1RNV11bRezAuiBkY_-eJDUpDrS1yBPgHJgOkweggLlre3RwMk6bBksM6Cvp8sHmIMnY-tll9SV_M05OwrPFNWKH03Hp6WED_q70cE7ve0TRHEtrUBvgSGpnvtelqZCLLhIWY_iAeicuHV90UebuUOH4dWzNF1qOQjilbU-LGWePVu7kLcfrta3r-8tyZBCL2-MiHsv5r8T2P-cUdEeMNebQxaevNJJcH2pgD6nSYpgx6sZXQtp53XR8-fMXtxmeIDI29NarS_Pii1Ti9DsIHe2b5ByH0RvZWLtmrWj2uf6S8R4_M18A9vQUEgHMvZqCnHS9hQUPS7zMy_7bBwNKVxHuCgMBnWRwhLW7e-zTebOpVUw8bZIRSwx-Fe0xksFUcS4JcdCawh00OCiAkGEZVMDpQUAOoE9hqFaruGuYTelf3sUADdqlwz2Fvoq0mPW7IervPEbN5mx6G-8lyDkoJxTCCHqFMgjBfi-EZv47goxCXRbybFw2sWZUJkRSk4llRH5fS013Frr7Qrh66v-YPgQ4uSOHhlg72wtT2AxeKAP0ONwNTrc3QylMfbJYKivJ0otUH2FCT8F_AsDphxFTJb-hkQAJxjbBqxS7gMRvsAw8ywfds77KtHnYDlQ_0LY-s2uwwT5uGHbyyo8GTlmA6_Xrf2ejFQcMiR3PxjOEP74T8nqseRAOuPoHJo7Wh3vkoqIiUklzDPaB2qtECX45f2tuWDiTtoLbocFIT9hge065H-lrmDze9o02_ADCGo_oHvDneXOdpV4R7Fw4391Wr7sQzwrdQUREUZXhMemcthEjrsTlAgk71y2y-ofvJOKwnlaTKXQHN0vNlUznKcvQPm6oN6ZWS3z8pJogwwN3TfuyhmMYYfl5Vi3TwvY0U3kQXTUDjQ9lnxWeTMV8sa897zx1rqH9KottagZbB4H3bMPxNMa_wSKsGAcecf2wosTUlOfwRYK0mDnakMAAzhhcQhGvaxJepjNURfpcNR_javXS8b8bo-bTF_McSeo-Y3SWngFARbbJRnSxi7Pd0ZF0Gwujz3uUvRt1otToigl3Eh6HHyUsmVOZQ8VRDhRDxXqnxSsCymjWNezZDAqdo-na7AGYKMziNxOGLJQa71DET99kU-RSK7bo0E7jDN_KEBTuDmWC4M0FaLS79QqB4WLEku0Mzkg-HhSEStPyGxV8X58D9VGvmOCAJEXaifkgRyfkv49lhdDqp3v3d1UKNrpwuYXr60QEoQcrmDxtAL1yeCLDY9tnrml2qCSN9dO44Hb1RYm2PJ4qq5Fuq9_zC_lgELzF9NF7ZYegnQpcTeLwmw8lTK1WRlg7ol3RZwzbZxqeupq_7yWROuCOh87PIJw4dGG9Y_GoGCkzUMZasjhLVv0YyAnmD9AGOHJEUCXGytb9wxWv3vfiaV5RyXsitKdCmVdWtnWzr2B1hqS_JDQa8u5hZPGb6AFagZiBhNC2rkGuqWHDHI6OSvjvhYIzkHOgu_TI4ALuzG1nPf8GR4JDBm84XE_PLYXCKz7JkmkvsKJ_x83fOD0ywKHHICfIdgN5tCRY-vz4dqr1cq98EN3DNti4-CZseGj6RAAw3NbZ45q_h0GOgSrr8O54-IiEvuQyY_ZFKQRzaAj8gVtojh-UVBrZz6klKqHX47z3r1KIl9R1pSuL63R_spRZjh5YkJBPlngwdjuzCZg3cieN2kS7JIlm2vDzfcDqI0zXsTMV2OlO6bpb_ESXOzGyv8WSWZVWSUGsMkV_4BYs87Z4fji2zWlpa5MnwkMMeRFuxA3MvjBtmzIUH54HBfXxuqRczdoxfh3SDrxlyjY3ZOgLqm2yrcmVlE9fx3TmrGAdlWz-tvJZc1jxz9f8KFXi6cZfBENvOVYwKDNYyWbIUekvH0AQxUL3jwY9blqN5LfLLW_CEfzsdW3wgskmPgraoPSQS5FdJhi-0MnxkRzEAesRDZpLS03B-TlMv7d_DN9ty_hrM5UF2ijnuAOMvLOwmIVFgYOK4gN-6W-NbIYh6gLHo8SginHcdrcqfGTa0smvHUyaCtExPyW-ndDDuLqHKXwOOZ5VNmyAhGCoya7Tv976pjRRMumxhuXqjuf1YEneMoiIjBMtHXneGA_mQYkuTyxAZ6LyKxYkNFIr9erFuuSF9EjuVcONZiDunMAehWhUl9x7oYGelpFa40-G92MB1y3kD2Shy6VQhH0MLEq43V9DAsjcRSWNvqrTE2txahdRQQrfwhrIcqiST5772-Yoryu6YPe_WxsK0WInwgkiW1n60AVOSjVHLxJUy-gw9xL0zMtVs3BPTNRv6VxDeS7FIDcWQg6kch5d-n3k5XYloG-tEp7C_sWJLv14e0vPR5vHmjwCjhMq4mXMilhlF8zC_DCkFIC1udul4hl5xYt7Fbu6p3Yj9KhEwfKgsdYaLgUyWVuIJQerBJbvRP60qeBFI4M02ix9VpWmH1Mqm7CIvqnjv4VA0m2QfnL1v1X3cgJKXl7thzDJIx3BgSuQm5Osb1ttzeO-AaxMA4T54OiTILCmnYbraWqkLRqQdoxUhaUEYTjWPerfRAxEre7JTlNsgVBl4_JGBHfsFCsX6fh7S9YKeTRET1Tz5iY1y19QVbZTtyNKmmhWQj8MzodgksoQt8odSuPH8uhbpUd_7dkz_8aotdmBHKlevMxRAaS48FqTalWhB3ssbuUYNAOVhYSDjWYVdZN7tTG1dOKqnW2tGyVIQu5Fxsew-WYSZ0EEkd-HlHtnDcUVkafXQMozdtkf26zAmcCeaM12tvFOKFj_XdWskXR8SJDjbpBp_9PRKQWlzQRziKLC29Oc1y_Y4GBWGgR1wETNSVk055nyBAyi_Uf8gWZ1JJMlRu2NLFwwAmg5QIfcjtr5ROFVurQQKjkUA7djg_L6m-cRt0LPNiqnG78dBt_5kyuWfDxfOeCw5213C81WJ_ODkVKUuAYmaMmbAjPUIoBqJ8V34Vx92mFvKn-so7Mp8aFYsV1LNK0YBKbT-gvy1YgadfaLVI2jIMQqy1gXnDxMp9HDoFv0lg0ZDi7xYqDDlgEEo83143CUaCEntYZUF_XuEm24AWiQAuiOr9nlAo6SoTODiMTuaa4NCZ7H-wS3u_gKZFE1umtVB4rUXxxUdBl1DL3VEMB09KI5rQSNLq6MV5uLKqD9KzBwo6VJZ7rsuKij_rndfLalsWfW1w-1D0dOxjnd48fNOhID3mXIwpvhSF8iC7nRI8OZFtpCapvTmhZg03YO74ikQX_U6NDoUHykMyZXhP-3cX9_sAYairtYdQsYNnVcvGjSTvckoReHrsiRsTdXW_bcPmGad1tOJ52jnzzETlNWj7BqaA1PfiabWsqYX6Pzz-QL59WRkkCq0S5k3sep_vDvj8KmFAzNYhm3IUUV7_bsak2u7vnDG1WHid_M77W6tjkxThtI5p9abY7HXxiTXqs79FJYyAcuh-rkTXm0-bFBdfdfwFPWlWzKXHmUoJDo-TZwXyQostUfyJBN8VD6u5zF7AEcw5Azf21rw29VyiP3rY88LOTtJD8M2i1d8pd9J3n-pde4OZFQliEhHnxKb8gvOp66DtBMrasKVzzd7uyTw40QFiVH4SNdav5bpM2tGCTakwtiztLcISF4EyF3Xs-wg1R952DxjSxgg8Ov9OVowHw60ejVt-oIWHNpmXHqKuqJlDd5XBZqTtSiyeRYosveSgJ0iZDmiDMd2p2OrQvXA5EJa2cTyzxm9Xaoz1Qjey9BWsfv-wN-H_LQGUNiTGrLtqdlIuYKCvQBsKr34cfgaSJ6losNHTZmh8xtYfs3n5ogMX4mbd17zCky06x1n04y6BAAh4_k5HLVuCK7psHc5yP0TOWwEUjVaw4oDAGg1ySOUhR0kWtS5jgGIDz_Qkoz7MKg0TT12HtmhFOO-z3UdfDl0jDlFOIWM1Q3MzNH67JsMDMql6u32Ww7RikYrszStymFSeLVaB40V45UyohdtQmvmP3PO-_24sGiFCkPHuVQAPsFp1wPlOKsKGQuUFBDI5pw_IPACRZ46mHhrE-OBDMxoaXqrl9bj8YyHLYIX6YC4H3iCcFGRJXf5g754WLhd495L2_HyB8OsdrEXl9Dq9SXHlAyAhOdw3DmG37SVc5YFIszThDVs2EogsaUhV0ZGh72W0MaGnY_58-lRkSqsy_4DKctnezvcq8AuZmRQ9ZJyCQvbxnQ9u30tK1xGKMKY8ri5lO3OKkRlfXcq69IBbS0-Abs243iQlK8_CM6RdFomc5OdZohzddg_fwsU_LdmwLhYYTn0aUZ4krm3dLJT2-PwoS8TcUNdg9DtczXJ-MgGrir1ZAq6wf8mgtUd4qbh2nzDfkDlEiBab-Oh_TLl3hilyuIYK-rZDox01pf-8aK_Jyh9SuQhD9ix_EWIA23aW8Jyv2h-BFxVo7juV0-mwomitS6_A2QYjlWM_jq_YDWRKcjEwvPCpJyvijL0MGTc__YfYwQiQX99leZSa8ENqJjCG9NvKW1Ya9m2CQYbqxYs5pQGkh4o7l0M8Fi2LnOTsBfumlCYBzWt9b_L9LEqLFLmuh5zvy7GtfQdMaI6gQu3hkt--fwNhXgBS1puFnzuRY30MVf8umq4xAWy_0WU2eDytXyn5AnL3iIXsJnVAwxkCNkkyc2EefmQb2xInrIaPE67KQWfvddFoibHFqLsz7XFHV4Y8uIoZ-SiW_B8D13JNFEyej3YjxG9--ug6MQ5ccMVXLTqatR41CyV1wZpk8qyyveXMXCqtx4W0I9_sk1TW5_Fob-hR8__ZjCosF7rvYykO6MPUhQy69ZZScboSkJj704a7vt50uko5fw_YwzbSr5s1BgMe3SODYD7lV35VDqlqFMKLJypprGQQe8xEl5a7yTNX_OUCB4gLvDC9ece7d8pzGmv9M9Hd6iTpuHG9z9PviyES5KYFDTc_pi6FvPJV5wp_KPe7DSbcxyCtDO2jPHkcFpHkPmx47S2lbTwrIq4gcchq0F5zbcZiAnPBPKoEzwUrcpXzJKRbZGapiZZMQoqp-7xC1mSk2ko_iUa5A-0L-p1kWVuHipWlhtncmWBgUJQyb7cMwlXtOCU2YSvbagIZuimul7YhcDOT7ICLAGddniiugIuJvVcgnkkncwxzoDNn8sPkbaFmQs0EJl8PYMV7DGHzgMzAK4YEgS_V6LaJ-ftF8L8HoaUDssmHsJZvi0zKa6PVlHC24nHEE6EReRZI_DwGv3RA3ePTI2NvRCM6PQfXGx7koihLMnwqGZZyBGEWVdodClroWVzdNyAiul_-Xd3K4etZUgzA77X-2UOdamjT9_VEeJkTHUmlsYrDTs7liSQsQasect2In2mCHlZHNnHUjMHSstMzdE_oSVzSfloLrqtCF1_Rms_nCFPLPwPsW1sBaetKNf94a3BgxcFaMhkX7lFMzKbPIASs0LDFUsLCrVugEyaWPObre7Hz1GbhHX48c6SK1WyoVfJ0dGTJssQqI3L_4cEqSCPpHyYqt-SFgwBn9GFwbQHqqmXTuq_4v6Li6OXmjZWA604Aq61-FwWyn0-nTpk2OKaXaUzFl72DkP0Ba_oIZjeWm6SMStRP0Cyr6gAfQuoaw1tzMG6_c0e-3VSFDE6OSyljJ_xCoX1Xf06GQl2CpenmuMkq_FWGghTbAhOGYrAf3Y2HM9YfS5EEx1GqrQn-fDkxtRDKm_jBoD-33xPjF3DcYjGzbAm7LmDRG5uq60sOdSoh7kJJ9oLhZMQw00P92GBOozcWOPFf9ikSLluh0ykJGgRm3Zpen4BAu0vp7d9dc2nTl4Be2ciMpqucj4N79GR7M6LWS2-iRMAVkPzB8Y9yfs1Jr2WNfrIu2bfKIkLYUP2vNx4u89wbTUmn_iTr1EvXWJ1fy2UYZ1gHzWB03taEsN_s33khp38e2OwIEJrLcoPR_rRsdvAQuS8Vb9GPs0EMLnQZRSJOHR5S8KvNIisisMydyEozLKGz_bWsXbFfHC32IUJnzfBhzKufYg1_JiBdX8_12nKFhksUUyxLQKpotgVB1J0CTYaem8Y7Q7W6CYP9fKAxR_Hu-KBH3-JFETl0fZGSh4Mmq2a18PlNH578HjPhuZDmrgXdUrJGJjSVKktqyv3RYMSNZbvr7fJ6C9EeKQWiPdJUqf9lhZ7EgX9sR0QUkQGqEo23m8dSQyDNuPYElf_LftU1iFsvz-BE5pcjCnndJYrzQ03vFRZKHmq2cBsc-gFYsufqfCtoBX9q92Scw_Q9ENMGnQdRvvOtSWD8aEkZqNDYSmKXEFqaTp5w9eC54kiA86yyz3oNimqdSeBkv19kLzoE6mRsBbUVuINFxvoNcilAd7pCeGw57HC1nU_SeRlj5n3DODxGXrWCtSccwqUvQCrdwX6IEpm0iLVJAnfgEyrHStNZKG5E0DA6kgFwZAh50JDo0xxPqQ8xUSyymAIDnvlhl9J6MegVQ49PWzpiG09wQE5b7iLKhmNEm60SNf_Nw8ofsLFhv7zD8Lr31qkYiH9KpWEyQzKZfXlKPI-iJVw3aCFdHR0N4mU5KE_OUPR4d53NYroenG96he6EMUiKrK5N9l5zzQTnDuesTcjQYBWHLf8XgqYYE56VyYOSjW2FoSRPPfkwF7jFWnSnAuuW4GJE7J6Q-D7vJUP3GVEyJ1YUsQ_d76iYsTmUr6QcX8IXOilnQcH2wM2kZzHAfsBAboJx7cIKSuL-lSSVih6IJFxcop8wMHj4d61jDdPJVUHticnzuu1mSi_xoG-X8kWNw5yF_q65qC7mj6aqg6y1K2Gy-KDyF-iUyEoS7nsGTMqOJzZdwlcKOAi9wykP_PbfiwXZPmTiN5oQr4pP5nq94q7tyyG-7kzll6hzOPmTwDETz_CPBph1Qy_zB64hiJC0SGI2A7EP8R0IfxVU-tDncrcMHXHmB22qPyg_sZgpRSBjUwlvHr-Lwsm4fStHCRwnkMSu9he2_Eq2Zb2l332Ersv98g5JcZaOm8B__cjO-oUUlBVT-Q94peER7oaGbuY0DhfzkL_22YCHf76w-Hi0PisUnzMMzvNasGknL2ZDmiCZ6mo6vxdFb7FqlyHS8YdxMmXbB8f87_9SIEQswNw5oRBEWuELgt85O-skWcNlVrcVzgaAwNUaqBIZuL6cYHJxP80y6ad2mEQMH6Mx3L7-qxcwzIzXrJB3KCvB4w5_JOBQ296V4Z7CZpXmkIZuo02ofr9fgijz61La-17uRv1EJtFhF8o587cuEl5sFrFppoSiX2HoGrlAIYb883U1gktM_CJojj-m2X9dUKpZz-AutZ9owm2WzAJWDObBXdlXYNpzOtDpb-XQPARP5CMQVXdL0MmerUpSjhWByvDSusRsdRZ7qTgohWfkxfGho9eEayqS8FicXEHCbCLjJdb51lFV2kQnigzqSRFJ9KHh_AmqmPz0o64RfF3SHr7CibCmvKb3il8iIdNSzrw4KHhSs83h1M4P46HQjG7tOFwlCXeXeMxL-mcDisKPqh1mPRr-9frJiJ0GiVokcCWxUK10qzabLvYeBkjJ_Pi_aT5DsJjd3_kwk_Gpm9cAQXPKcFRY4v9xBAQZuklwQD4eTDCe_BdmHA8YDoQUBM_dFY8FTFRuuyP6oB73k02VMrT8S6pVCT-iRE9mQmw4CaUPCcolYFuQGXlWyQ5B-lUMegoNI0qYY_IOpoz4p_YmIYHeh491D78PRdiR4v7xAFEU13Gu8_C7xmm4671IXuymA-VP3FB-QX003mOvztiCJuOZYG-hLyxmSmhWvnwPm9cFCdvyFejvgUaT4acHOG7O1iChCDf5EARdNIBwNdoBmXKTxeWLU643IPeivzkISaxxwvKwXqVOeIKZdFMJv-lbOwdRoZ0CyXEq-F9JQJMZnITBKZSMTgqocBvr-uc76is43pC1ixlafOiF8bxH3k9iea7WAc4ZzaJkDd-5kTK2YkDLjNwa1TYWE925foW4xQoOXo5bw7GECjWfVgBd0ndyhDyHMKW2HOl6UD_oBOP_9SqrONbNDT-bwlUDjzPUA4FupYsay4DhDbBnAK4mu7VQQfqqlteZDmWyn2mzHAWNL2K9jm0QkMhV47ZLRMyh6V5_2gMVMZzX7c3cjfQ3No_QWSS3BCC8XLbIkSDZqnaBIcF-P6w7kdhwmHeDgl8FmgW6kyNwnRg7jS2ND3ESdiJ43LCNoBnKu1boGU2a7bI8DVBwt7gy7MAAsy0CBASZhtdffBtgI-E8D37n2qcDycW72nJh-pekgSNmiIGzoS6ZLnQKF3yy3lED70WMXlnIaYvpSfq9w6xontYr6tZEss1nnkdqC2MY5EX0N5-GTm9Au5I8vAWwJ-OsgGwhnvZD85jmUmzjEBFUhboUQ7EA5p5LWzzch3zm4HA30HL34IqTKiOtGw7d0SFJ-4DWtEQ4RoOrRzgosw4JeqahKjkbP30-TZJ2RlpbvIn6zC-k-KTTqHk9cQ5NaWLVZEFXt9-9FjvAweHaZ85hNLou8h6NmS292sRBKv_4b58bDMOoMERgu2cx5vC0jxZFrkZ3KqMzlFUd2alvNTt8Mod7juEFZi_pSWgSP57ARF_MQE2baRfjkIghWhleJlhE4ydgNFW92BArk2l2twN2Qn9KWcLGWh__msc10nrGxvsTxsJh93ls-xhWGsOy_WyyoRJLOeYiNPHYL8-D9s8uRsvRMExHIVQbTgkClXRCDaset4wX6Pc8WASnvXwHN1mIJf5McaoIjfmC6uHbEUijNQEhFhg-z7C62qQ_Y93QLkE-Bo3k53GkpEMSuchEr6dkfww3cT80lpiZ1pOZtJou3t6hIKNlnDeBRF9Z5PWwM-ODcleJXKewVVACOaahjkO69aqQx9Aqcg8gWL3XGxPOrcXaRxyAE2NS8loFIMxKzM2l55ZW5KmNwxmfLcigD_X2NudF6ErbMSsxKjBGp9pPpva2RxCtKbJtixbEhIUAO5mQXEZGdRauSqJObtb2-ZlYaOyCN4bqh3qs1XGVv_WPi5IHV8H8TuGjq3DVZVt_Vc-iOdQs1V-_92J_g2ehW93bWAXQlbj7CGyc7fno8-a6ECccc4YdUK_72Omp44QL3k5WlmDr122Pmqtql6Bd4fPVDGWcaDpUYUJdxKSpFqBpzv5L3Vk916EacpyUB2bDsnzoM4BwfPKbfL9NOdUbHINjU2iHJD-BK0Xv6AoIp3zOenR9BypiKxBGHVbamMxU2nh2jxlPgo6GIXxxFVtnXjdPi_hXIEJW6EdCIEoHGl_Zij_EOGqoHro44b8sKZgEP04-FpYa7rFghO5X2JAkFCsOiuOKpOy3ag-JevEOPNexYs0ysxS7ra4fJSKN3_GIWi-eNLpRJicDPUCMGc_1J7pmyUTw15mj4sxU6X4byuvn1gKq1oOPBjQBaw4n7doqBxIQLNofF3PRQH6XtWxgmyPqnZ4FSIHa4wBJqEId043IJYUYtAvI74rgrvYMjqopeMukZA9m46XnG9pKS-d25I1a1mgWP_1KRNWpd7ENYQ1aKdnu8NI-nNdfzUcbyXSQAMlR1ESBUtKfMSuZa4qlNnOx3unYD4SA1xRXBBmBLS61aF-oJPwOr2e6XfteT-yadtsB3WaIftPRGdnLD00Q4a2Pv_ui7PcoBGPvJOHeOniI2BXMs7O3A64KxPI5Kg8ilUC1414N_VmFnC-TFP4ucBp67ukynuD2T6j5WdQpoOqlCxnhyRhRw5Fst4hH5nXLAw90l0OnDcArePvgN9f8x6RPe-FswIGTEO3fgUH1BA1Wg54evT5JgFNPA8358xFmWKYypg28WgWCo2rHD-9s5cpREZptfh-Uw4OHQkydtknJIK9t-BTkz-SBeC5DGEkHNk7sJ4nN9eYfMJrKc8jONXc596oFJ0ySM-kbo2lze8awL7Gxx3bFjP6-g3l5_QxjWwJy-8N4125cm4GSzmc77pQaoOtrvSsu17FwAeqtdRQunneqsayfPBeK-dCkhNuTYRUL9eZSAt9OkG7gR8qCm8MOEi33bKZX9YgubgiWEgcgvI7eIgQqwNrvAAyNOamNLWi0vbpX_e6njuFiaChKyOhKbPFhWtBTt110ge-NxD9S3iAhte65iLUEaTIwdCWP58PRzWdTjAxVyCFAYfD309R1lt28lOizAbEbsNM59WQ6nNf8o2KyOFeVNw9KuJebsw-a8wa2sD56WePoMA8MVYXcABuchAKkrJEu1iWIVry1hxZc-SKUSb_1urVhWDRcjZq7GJpavOtcpECiOEQvzVKie59lPwZ71KzDN-_CQN_nQfv3cvC2Mdm9eREnqDEyYJGuqulYtEZ-nFLjEsWzUa3FTefyFNzx8TCDgCS3XkrEMK53I037Y9QE6eOK4oPzjjSNtLiLwSmtE9oHXNSTaxHAlNCcTZ4I2xU6WkQLnbcDtss5t5csvcoKaojUwduxenHAS8BoArUOpmghTiCvGlCX5wPu6V8j8OiPRXsyMweQl8LEbtQEmHiTF1GUtiLkF8in7jTmCvLP3DNm0LVIGiJFzigm_tukuAUiQeUkmXOOLPIjCMGysvrnBPzCKc8jh75QGuucRA0eu5aA45NlmDMCfF9UJ5L2SlRmUwBJh2UCv6oenygPiZ2ToywfIdtguNyrWI7KmHR3wX6kDrd9MqV6KTzCa0ReUbutb8nYHQa3ZIfnxEb2JhaqQ79X1sLZxGbsQoQPgCK5abu1lUZFuc3UDFZhZzZSSefmnIkiETKT9WsaTO3R6w_YXLyGTtIuru1wMCuu9Vs_rj7I8Hk8KF6g4CkMQxwM3qjXmSq1LtWaE8VFEKD3hwL0jjFkBDT6B5_f6CVWAo3y5AYMYoZp-oFoXMm2SQAjqKbLSc_OIM092b2xkRj6KaIAfOz-MG9J-On7HE4fadlhsQYYD_GIEyIZCBhq3KiboFyXdvsZ6fVMUOSWkdx0LCJi7Di7ZXuCxQIStORcMAPvZRBro52FZX2Fzhp1qY49gVpJ-ZUmJ2arxc5bAXjEkgNAeoVHzTh5E3YHmVuk2GoWfwZnpDpXj9QE_rCPjQK67VvlQ5DKYZNnT7mq4xr8CN_UN5Zr5rBapZJCYyFfbGpi-sc3pG-OqFOYGQVQ-W-xyQHCxFj41xaDY4HHvdjQKWTcCImIri-wmy-PKz7jaTNtO0bKghHZ1ndGmoq7mMhFumCaHr_C5IhTP7vACbTmeRtBQyebybIdGax6uISSv9_HNGXvDrvfeyral2kiUAs1mogfJmpEvay2GmyWLrBI24-z0ano6Gyjc4lbD6PxT3wvaDEO29q00WCmhRlw-hZx2tPOu36w2lylvyPci7AutpcMNAxb4-slVeffV71WfYiWoNxXNOUV28_fNK0crziZIiyh39ujHtfaMOd4d2Wgoh74MRG6_wChRnRadTbFA1PjzwdpkgAlT9kgfzf2CA9lDKe4astphkCOq317yzlnKwDjK_xu6WBkK44ps5TY8HEqDZTNjgOhM0RaPMhtq_luX2tQ1Fji7A3fuk2Yj5zq0aAh2mlIbywtuYB1DsOChA7Gn0aE496OoSLTMl4G7MkxSZaSzUgTRkD8ADLeFGcT7aTYuugs0UQKvftz2f1eq01so5ulslLpwkW4YTE78POHsmIttn1fCe7kcywYNQgwgjaB7Z63MudmDYsPen4C0fA9ERGF4evAhfdcdFZvvzDitfEDdSPED35z_mzKOiX4TFzAB0qZcewZqsYyQ7n09WZu46rAKD7Ue30Mf2Sk79BrtevDYs8zCpzOF48zecwDv7d5tRDnd7ZK1HkVHfbsoUiuuLonHjzBvxycFqjFPNxz2WFH5kMXL-MHnM_HruKWfrtLMMNHQogr6-udcex_QTJPGG_5oMcGkKzbFSax0hW3WQ7MWzTmRzR9DMj4uLInk72iS4VZUVFZuNwFIcmkJYoCbOZWSrCh_eIheyDBUNoyFDHpGY1dTLQtlMMhcYhppoApsCulQplAMq98wBagnNacz8m2FJZaJQ0kYvTuz2daBzf4OPZfYS4z_YscoECf_Z2qY__ZoFJ9pR6phXeDU6QvCVtKvuXBvuuwsY303xTzvFTVlq-aNv75qT2yRRq9dnkuyKFfU572HE9sc6yutEtDlvNe-rHQDUz1KRzwCqq3iULyBKn_56DYGQ-JErxtZsjcdazSgC_83s5E3k0YOMahPIIUTGDiXu_S-tVA4QNjEsyo9ePVjT2MNJBtKDuGdKxqglRk4BFa7p-Hro9uZU61pcCypm1C0kBvV3T4NJQcSJfS7RoVE1nnAiC3ShiwIZ-Li_860a0SYSHoWIDgQuk-q4bOICytZVkk3SaFSsooD8C4dPxVnPWxjSvcrzYQ1keLJWJ-ToLDIzlFlA3LfVGye-BSwKdTDdGJpjT3XmfejiZSJxg4OPeEVf3FOexH6tw6u0LUPxLFde7bz_BCCRB9tUCOf2kDbaArmzW1vjxelcktCDu4382FkTqLLMBbhLCgechMqkUX-ky40HxooCVDILw3_oi8n8OuihacTZyFWEmPTSjvnNe612-pS3Hb_aS4UMraLF7j7M6TtsfTQVB8pzywPWoLNbQYAZ-RhmLEziizofgYIYNmIuNSOFrF3ZszQhmA-qJ5cuHAWuYP4wCnA12wNojvEJVs0FkBtiqTkttZCe5Rtu15Om5GYJMxlLgdZbkj8e1R2JgAV1yzoBVXLjaNDAtYBvm-Iw9jH3aZXcIV_Cu-DPaeXvWKsN0uxAxmQPxtoQAilnsM3BtzRjXNmjsE6qwrWS5sl9Wz7Nm6GuQDJ_fECpindqq-L806i9Z_8VZ1lVYVKytZ9UAwARVnhTUBpL0luuz1KvljI0JoE4yKubXRc_FX2dxTjWEK38nAeauaXMV-zxEQO79O8rUXOyCFC8akf06n0y1dAHSp6l6BISPbt1jSL3xfQIEcZjC6HsN272SpJEXH4xC87n_keRkboNc4vAunv_gzDxLodoLEMU04hLMa86APJsCtiNumst-nV4RcbQMSiL0-NU8SRU1boBqYkVbIfGirk4PQMDQO7HtEQVCDUVGcznRLmLDPokwzkuN8gdLEs-DcTEUueHYViioljqc1HPXdjJgDqh5SuGKHMyQMlRSPNQk0GCDgcEQnn7518K239N3r4HffcN1r_0UqcGePFz0cn9E_RDk5hfxoShD2qnKPZ4MJvqX9-KUQL6fc2KnOP06epAy7xTeT34COvQVkHrfqSgu9D2DdB4df2_PrLiB0BCr8MuFLDRDTMrG9gKoKVXZyM2lep6V_jffkm7OdcnApOL0h86ulEdahIC8FvAuAL0ZXWSMOnE4WS9gQQWFDm4tBu1na-Db1kjJ2zPbugNxgcNodD4l8ytZJ4hwe8-FVV8JaBCPIIzdKcKQ614J4ItdRrWrJhv3BO3imNuKdGAljSqa-PEqPlt6obmuOYOKVY5s2NNMYkSyPA1eSxyIdXxiXld5ZoYhEZrdrti2aw7qkDOERdKIn_4BfJ5ue5yke3x9plCpLroRzI0BeYwyxDfoCRDN7AzPy1XPzc249ZbiuslqSyXl01Nc6sA2OPMHFIe2DZdTdCkXqEY6L9_CQyoxKFjSwzmFIeCI1wiXuarhH9gZfwDbMAMYV2FQubnIFljX6RdeJXhpOvYvk1YLme8AnQsQFeZS-2ALjdjrk_XIdLWrx1LUyhivz1rAZNj4Oa-1K9cvFogVg-gPXwx-6nDPtMtl6aylpkm39B8PRPzcW380N43C0Eyqv7MQ7_pEwAXEYtGCijFZRm7JLmsxGVj-jPmrIRIi36OXdh0Zm_Mjb-bPRGX323JpCDrUiRh2URH9518PHwvgNVyYQnnOxEH1oOU4mE2EQh7VtWdpAzwquoWEs54pcYKdhRp_qIqEKYF1zSeICp-7YmRK2ZBBgGOWob-AyCtVKiR2jk8UKUDhUddpSExrFeBtlhEtYnIl2Rmmxk5MZf5xVFlfFRiovOvCoi-fV0jZ5TzWfbt7wXbrvew3a5GoxupGAiFfj95m0wBPVGEnjNfRSrnL4k2VTqIeshsrR6Kucj9E6IbPcLATfgQNZ0jy7xrS9e_Rx6HqdKlpnks6pvexRe8yayc9mDuHyyWNBYd_7T8Ouz5m4Ye-5H6IZgkQqdKak6bZpLCop04wLLEs_W4Xv_f1QJnPBoeSFwG1k3R3o3OPFEYQjvERuVUB-cQ1vqE1gT7UidojjpcsqVDjdVzwU0q-XkQD7ggMrapmJ0KBfzkG7UOUhBTVLiUSajsBo4Znk_nGAUoYuVNEn1h_SCWfgKoA7am4bWE67UuVYX8gpAYuL0modJJNa7UHd9I-K-DDPSHMJ7VxuDe2kJU9ra_DXVZhihhvgjJY9BTPANUqd_GVicR-wXEwWj2wW9XTo1M81PbLolyqRueizE2-6dTSvQNXX3nGcpt1zmYqY3tTPOFPiPzc90hY9FsWGrVJ-PENneiZpRBPb8ikf9CLDn3uNbVNe3taiPTcxjwxElBczVOV_VBzAVUGajk0B5Ql65iXdxKtRoscbwkPiNLwHvYZ4xgZ5qT26OHdDwxKDUZ1IKODFOr0_CldXLyTZKHvqwkVzQP5rDBFJYf9etjZJVxaSDTLadysZ1lPCgnj-0Snh_FfQ9yoQ4qXMCLBU3MIWItG0pUoHH8zsBlMk0IRz9gG_eTAOx0gGqKWGxUFuYoiViZYrzvOiPnAUa7tGanabQQ1me0gJfq6REeV9d1urwLozUy1FbfqVF-5XI06FdHNrnsyVnwvDfDtI6FmzklwSaXygfDyjvRUlD6iLEoLBqHZ6HPEzEhZ5_I6wZA-WEcVvgZ8c-HaPx37580t9kThzJO-q5w7jnfIWUSmswvKRmfqmb_H-IsVkj0aAd6OK3pWhBWaMp-GeBC-nu7AVf2DUoxhv5S8wrCpy_S6-o2kk0OtynOVzAuIKqGD2FAwG-C1KYWyP5zMx8htJlCjFwndle7cLz9AAa18BBC37SMkcUSKCzJ88-aZfQQ3t8N_b2DXQ6cGnCXWo4plPre2LnPhtN0bzCJk5tjwkZTzQXiH3mV9TSUO440nhmBAzEQGTfIXnPk-gWVdouSCO5JrtMLiPXl4JAFaZ44muOEWnt-yWuCfsG_1IDE8klVy46ImnUGIxNIa8OAYNuMR79XPLgFL19tg8EiL63RTaOUakO5E1N0AL5aZnR3WVK8OYROoFvjfep3iOud4w72mg_cPdHsPN-KSYQQPw7PgpGr2Ep5Fkh_knqqz14RxaOh_Zhk6gI8ALgPOyPEm5UJ7hRyD9xJSihn7nYpNJJrKcdKUQE3O5i1VdajngU9HNKxbIvjGo3msg0AM-bxquqTaLxruyGMEiieA3Cjzy_HU_hL9OD2mQfMaEZNEmEnORSXsCh186ajrQPPVwS0oc0FBHYNSM_tbBs3MT6sRWRATNfozuVGfCZQbNHXgyAaUpYLIlLx00SN-R60RzfPulWLrLXJCgWtOyZkV4tI7KoeHAPm-K7vG7490R7n3wVuNVNOYv1Ls2r6AhSduuHrvHw3euD-h6afs1wjpqsvUE9rQDK_ZVdjfnyMkByU731oH7M-UaC7TGDRHYJJeURmUvHkOS8_vHsyz8bv7JlHmP2lqrAyYWWgZQVbU3RUJGAZZxSPgMg3nrwqBHYJaXN8i_DbMm2aKsyL3DajvQPOKucCKCD_07XI14-vLXnR2NRAxGi6P4Muw2JAF11nG2kSznIcWg8mH77gnLOw5EuI9DUYxSuNaNmAk6D0ux8Qpx0ktpX87ADd-oCQFRQabWd2bkO7SacIO7V_lIQyXKL__SSl2qJYtaSaMyIbqp2yepMODIylXbbDfMoFieU23MMPPhbkhYkCzswsRz9CNQGjAvXRDliUVEMAK1R2Z2SI19MddMDmUSH5NouUqT-rseOKZ4gK1B0F940HbAhwgBgpjl580hcSL0YLEL7qeMwCU85rGPKzxpSbkwiFIggXskTheb7UmD3TIYx6HXjIauNI-C6tq0MGgH9hJvbsYWLijLo_kag_XEWf6owHTKKq6OxwYyRul1rpde_jiRXBpLpf9oxqyZWsoO8ffpOtR2JWm75kDo18CK6OO3fQg4n6gBfx3_jZ7YQ5b9puwCj8vaC_FXKcJyyuz2wY2yO5KXSeNpBn5NWS4EXG9yDz6giKZSwK-aE3LsDRfRZU7oqA1ZEQqw1qZRf_OJenIoes468QI4fqcmka5X_atvgAPsTgzPED9y_VhvBeMJXvZscdP32gMiU7JdPjiWCvObgZSrEdp7Q6G_SdgA4LNN2kPoWvL0nBT_aJ_kzZMa5TVIxlhiWiZOK9bAbsLsbcUH-ZY8JnQmDjkw550mLHg9fN1-wHIHRxR7MSsFwnd4Qz49eyrVkCF10NBxfl-ekWX3xJe7jorRKMLWOjZNt843DkGjO45rchXoWq8VqOKWqaBmEPVZeRVimj9C4n60QTj4he6L2Zgzkcv7t-7ptxKD7Lz7UaK-TdI8ZQnxB113C-w4OGCGSBjnOAZC37LoFeprTUNvWpNx8GpfzJrzt1HwV8EHO_LejtQMM9lMCWUSR0vbEL879G812yTBZ0VcFy4jPeZRe12y5NFintuYF7fLpjM-Aj0GzeKzOEgbGqIncsmLC2fOdNv2cCAHfS6CsVA1h9N_SNcLzfCX8FR4YU_VspKCOwrrUk1sgz8aeALDyx-fXRli0V5sVSYM7ZGqvfCz4tZ5rBlds7H0kbo5kmLlmuMmwCbbAK_IuUw5IBzOZoW4To2qjUyFMEiXb9K9w6O6NE_IHYu_axqNagn9JaCzQY3mD79Dr072ugNUcKarK_ySn4mKn6WuU_HpB1tN9RHA2vfTfODXztlrud3t7DZZviaWHDR8lmVZtlUM3JxQFtjDln4sveWH1l65HiyD66bnVuM1Sxu4_beGYoaCyZ3w0US7aunbjaTTCig2sO71m8YD2yGT6qg0oXKQDQjvopSpYjrYUbjyThyE9hqfOLhLJvJngB-wmrhXzw8Gmj48GXusuTEGVG0P8lgPP5Z6uiiNU0lklGzv-5aiBaRjgWb52LFzDM4-kGICUl-rPLzsOMhs0jXhkwGtp5F-L-cyftNN4JJL5ByKEKBXbIsDQDx_dno2qOp4vziLrFOimq8VW65OE1EbGEAkYV-81m_npf7tNKxyT4o_J642XDzU_3XN6u_LCscIVFOMliq5IGHwfoGztJ5sI02_oJKfFn7rjfCXvpGNaG8oWt46rF9fuHSF_Qv38Yup5R5J4WdS67_kBk2C9nIX5lqDOdU74_xmkXFMONi7YziQYU9Ij7PbEuMEVYVV1rVJzle0BHXmyVfLbjJnuiV9Buv7WCy6okQ1-3MS1tWkNSX1uiuuK71GcVbbHue4ahHtN2HdIZMqDhHXZELnm7E7Cl6wLKx_anLZDyd2h4QeMrxePj21BL4LsLkOGelqRPi6Mu4P9RpchwL9w7tit8h-xKhA5S0Pb5w8kULmrhqvrZhWDhzV5wfVzB2mg4LvcNuoMyYEN_FjhC6HAuFxt0839gZ0topk59d8qSN9354CpqQv-dmGKP5mi3T_rOxQ0EoEzqaJUurOWBWIGJ_oPOBBce6ecAMwZ44lNXeDtlfMJi1KRPYTqC2NqQjeJqS58MqiewVn0793JzpcgQOxUk341VH2-y1xNs_RbYJ3NQKfJTbsJA3fU_eC-CkItXBckoXq57HlE9whMOULfOnElA1vjCia0J0PE6dJZGBCUWnPelD_hMxB8SixDw0EQ_cnWiNXBr63lb7rbbuTExmedo8anCSixTn5kgXw2aoWONQc1mZLx6MIs313FBRk0GuRL-iAuqVx7__0Wp5JTE77pCSkRk8NyRb38Z7t8hmAcrwcguL6NSf-H4ESsf-p5zZO29DAq4bvpdB2eVzWadE5ADhNb-DHJ1vA7g-dNF9gwMPcI-8SHN_p59ulztq4ZyRZ4t9e6edjLJwP2HNMEvqLG09QFP7yjLP959beW-lZQbUttRWlmg6QNhjC8OHxb4nWVlw2IyA8tILDNMSL8g2mOvUw3DD6AiBDEz0e85JUb9VwWdldUJ_dFIeZ9GF-sgL6lZT_OzTD2YcPATftJEmd2DC66PBX-Ihxl_Rd3kYGRRx04NWvl1kE0loy0HtNzJOD9l5CfzOzCPmldXx5EnINUTrJH9RW9A65E36UU_V_qC-2atPk3HI79Pm_boM89o9qV7sK4bYgnnUmtvLHKXCznb8kg3gS1xbTTCDpxRK6T9mmuMopInF5dksKjHw9Qkap3HksBpAEuuqq31tZeL4VIHe9KOgvSC5Ls9hKvp3JDj3Z4f0t9U9_a0Jh7v0N3LJlwLKaRHUcwI8NJwG9TFMijhvEYE-CDGSCs09lFCZz6I7RHFddFAOMizanuokFCFX_2oVnMCMl6101-PT_tTyojbMj0wiv3K841MbY_uNM4982qGakU5eLG9BKqFhB7v1IxA80WYqaNwwHpqwckr7hDw7dRABdsJ4uexKaISzo3Tct0KtfOYhSg_ezEifm65DGyLlabiUOxGECM3TwttaKwQIX75G6c0v1UscO0Kd5oejE_ucMvRIUplwYaVA8xtA10zllwwAwoMS1ifT9wSNfct7xNEVK9r_RVZ-Iz9Y_6iDHsaSuuy05984flrpxVeeLtjfFiLTAP86WFdsW4kxWFt2msEePTi4EEavhCNY9xwg6C8_4fBIcqHButGSaGbs7Pb1PxSS6UZ8ahTavw7CWBvHNZ47XWzftVUxh5LrewhhEF8dgUTrMyzJsx8cezHV1z9tJHkDUfginN6QB3hoRZXboEjjriMGIx7I3ZLaKdD1Rz4jL1t9iLFc__WHGwVlVeNP5IK3oVog2l2R_5icn5zFbkFD9oWMaW5QAL1KBkbP6icP6iv5hEEQhyrMUXoejMjCpmTACrNRAt9dbzAbwZPO3Yi3rB9Yesf_Jl57mjrMMlo5NQbg62LrgB6TrmgQa2gvsw1syrxvtwSUJXedWGfmbh8bCrOc_29A-dPOzlq3XHOn4KDX8WZOXm58dH6uAXnM_0VFFjaM1GWltZoe_6aqr1VnKCFHGyTeOcg5u5E8_leRWyOroKa5JFr7r15haABSbHlrH2hK8XfhOWzZQGzo0AjZbw7doUAK6CVmnYpZ11J-GuiscCq9LS2N__o5t8E-hjkK_-CNVI2rERbDWIyJSqw6ZhtZpyuxoV5OFV-Nw73LofJctWKWkZ57xQNSHPAWGyC11xxQ5Fj4_go-xHAUHpjSblmE5b61tn1o5dohoeXT6crOWj1v4YeZEGcRwg4J3BiMrcGlumkWIEOROkUpkGAtRLVHQBB5iGyaQAf65TG35efLhety8_qOMS7AWfpadnXBokL3cFFaEklC3sS4GpCCMyESBBJRQCOc8F6e3wtvY4U7RPgAo6T6LCsCuwVKfLk60ksYPNCXNo-gMrO1MKW-LXaB07RihiesxMKjh4nOIeaq91w5hl1IMEnXfduLIFPOIIsYpMI4r3FfCX-rdx0k3QKUX74w6MbHoP6y8I0T9epr4Xrrij4aI5DzSh3fEGCfsv2ExoVpEcrN0CcsyxBHWXjgqvGNMC25If4qyXPrQuK9WzOP13m2G4rfrKuho-eJUmGcusH7LrVr_CSpxw-nnXfE2C5yRpu5FsZmYeLwiZ96corKeHBivnnb5bC2tWw7yrDDYA8q1CWj489cBHvVWiAmF7bbH5NJwnOgMM1clyXdArYx1-d9yc-AiJopI8sMJBULmIhFYao8L-s4kyRRZ0hjtOHY-ksPYplgJEmpxzXCVuYWylLEfWCMDjjez_eYnt9c4eC-YdcSAinbt06boFFxqflHaZZ7ne0Wf6C1FsHEHjSVHkU3pkDF0r83XFGP5boZc_GjkQP-XVIaQXWdvnksgyaobIsgq6FrW0TBcroOIrG_g31ajdlTWZuoOEOgVyCvBi-vPCgl-EGjHuALvzMxc8C4BiQNRUY7JEJMGxnAsOisZNr-1-9tGsEi7H1wtx3bIw1CV-_TW3Oui1De6Qe4UcKT5LdElOwCZ8CwDfO3LcdUS7-sh5UBIgqqqbTr_7gekJhrCc1V69u9nGCU8LcTO7bZFW2VTDOJtlJ4eRBvDzR9X7RFYvXGE8vmYNwtDlsxebRgfoE7WXwuy2wkZf9hvVdHeRoWFjjRc-00gh9IGSqEyUNVR8OrzvRt7AHmNcCxGBgvCWrvo7st0DM-58r3OHB4GHx2VMkpSWejHi3wvUEXph6FlASvl9DQCAnB4RrsMFNBL50rvk5IXnRtQiWWJyBGkb37qDIhHxoyPiKSNL8ZmXkCyIGG-UQSPEbQMI852VWQA5UbCXLRhO50WPYeHWglx9yEjQqbJFEyiKmVNfs8dx9EfwPyLwnsjNGqiqaJ7lBnXT15kyN6U46dgY0gdPYMu7NsGB9LLagLBSTAaFc75KLhcCdpq6LUoHsmslMcx1rwp7wTEu733l-npAHqbMQ8xEQFgYtBPvUIluJo0VA6qOX3yqg0ji_dnzNWbb7NI4AK5WIXRK8dLUqPBzZNd2KY2_ZbYOixJ4GTPiNwjnB-Fj3kK97cEsgqMkorILdinMa5ZhTZuUTZ8O0NOVStvsvdKJ94AFdjC4zSwj6c8DFYmf0RWPqNMHdFbNBbXLyWI4cfFavc2W4JSymrLq7KhDqdN8VBM_Vr8mhv-TubWBOVUu4suOX-7j_p83sgfkz0LWZUrNePl0RK4sIGVMpUa96QQwSk8atCHNlBH4Y6XPT0nnp7JNFW0UXJ8j911FA3sUes8Y4rYBDvdje_A3BYJ5W7Yacab96KVIAaJv6sbxMTDQyypF3lBjzv4Y1dVwutg8-HE-LU64pFk0EBP57JP8Yhh-SKH-H8Pn22yy12oby7sawX6ztI5z3oCy22c_VY_TM6mwhr9thgztpGemvByiswX8ovz4lysEq6fEEh5rKEqYgArVsC7qvqhSLY9ld5BIcAYAKvUb2mhTIUvgWA09DEGCv8w34HTKX4iRMdZ5W5E3o-eCgYf1r2HS62FewCHC0OeVSFURTuGQCqBwEyj3N4zuKKFzBMwNKed7F2kAdFQVWSM9-4IRJA0prdDmg0x8dlWDq60B0p5e8P73z1MNcOdfMZrz3-azpGafOt8uqvYwu7TWtdcX7k0KaX4Kf3d7-jy0nWWx_-WRh6o1eD6KkmJiKJNh0nr_aCeHpqt-kjGRZPQnuCvTmKYes2aYVuRgixlYNUaNin6FU9u0arAyCHD33CHtJakaKEdCx2b_83Oi4c-9Nci2DmOw5iFWMkvkp6DXBzT2n3Jn3plvAPsswjBEAUnNjX4WzopzFSJl5k-TPEb0aemVj1Rx3rNwO6MFFY1nHGxnrvcQveNPlajx64Wq7bxS8i6MlbixSQ4aTXaK2Nx0Mo2UMeo8U0wRcl8cxPgYo87hbyUQzq57mrs4qTDPiWUHOejfgDV2Dnxg5pdB5beN8vJSN0v3-PA6oUSPBsPvrayOrbBYZ1PaNJaEcszXkY-JpYiC1lVFr19n0NSWcim-WVbYEKpJkJTLzkPNNNc2up76FhP4YWGWt-dqL8icBcUAr9G81rw-s0XA33wdNQrml80wq0p_jDl_WGXAwE6IX09sPRIlYFDbOKqRljbJXc4FYdw1XKhC7BwPB5PcyIXK_p_jMPLZa0Gn1BixzUqsoIQgspcboC7ge2Noh6OuU3_s9PmmWsv7dU6qaQtH6sukWrF98wQP-tD0E6LsZJHCUAdRVB2CmsDGh80aLVrFm2IhE7_Jiw8ms42Lxh1nhFIjYoz2iQ8heEDjBG0wVXRtYSYfWTD3qR59eK9gvwzbBLJj5tFvNWnvLbPkxmZNFR1Wc0x-lJe6okrpXEzsnkmvrvbVmTj1zA5dNYqHbJPr_U9jmkjyABdSWPjHukxnAarSWlhQwHxJmOhHibBksux5N4LW4Tve8a30iDq0o3_ONKu32-Y8qvmCLBg7X-hYPFF85LG2sPqFgU2yOcl9_3Jv7eIlmLL0s6qUrlsqDiLIJOIGCYVpQ7AyrYn5Lb6WvOsDqIRsz5mwbnYCWu4-wX59TmhY-3lputWRIc3iMUOBLtaxAjYAVodrvjN1OdGiVC9LjKOauvfhDIB7FhqOMhyYxVaKpOL4bqnM7_SQ8iTbt3TRNoikPax3i0dUzh_QtALXlR6KiznbGGIwj8WrsOM1yfPK_Z7evRxI9DabUjxUXv1lcvLxPCOvH57AXqCa-yc9nwksR6sMbnMZ5CiOKNQyBvkL2mgmdILy3BfdGcyyHxCI7wsbpn7aM2ZbBoHIM--w6VJmIZpbAHzNMHMHepHle76iVgKyK0Va_kiRvSxmWZDTkFmgXSxzrZVyqODxMhYCf5UbIFcsVMOjPt2APdzGR65eQfxqymI3uobGNmgnVW_3lILEuDhq10s70hcyP2KpXTv7sLpxlTy-0LPRBOdw5WPON3DWrn6f5qjNOxCQHTRaAlXZBhSFodH5TjRboVkpp9tVumz3yCL3UFNN1q_GCmRigmJlukXPYUw-6qlHZpxd6ndyWVoZLYin7umZDF_fqlRWYrSZywPX_cbxr1tcwYH4P6KNuk_qrMhRMb9LxH4YNsuRotDA_XKe0w6C8qvDymWT91FY0gWuW_dMwGWr5ywqlLt6fBeT5PFhL9dOUw1h0YstDrbP9Ox6RPWJaOkkjg_scXIuZ2HdCjUJn1YlZKGs-_Z9CpT4lLntsamLT1rQXnDNj839C1ebP_-RD1KXgoqQ5hfkHEujG6auSohScuuyHozVKPIPiEPQTdqGyygoG_yIlwTFGy3kIZNIFvVW5rMALmk6beNpjLpIXmDOudApGkn_9zmEka1yOGvbGnQU0O9YVPz31DoxgzszQ9EXKSqRlfnGAjhI-w7kNf1C3KO7KAkuD-fN3LYDYyF87c4lmuvjK8rLVW-PdP2jfuncmVXurR-ICac2N_sB9p9NFgVOT7Z0BFJPYsK1WM7FSAQ8nkWCBiwQhAHdsM9AYxdIZBMsVQxNUIGnCvJa6-Btj6MtSvrKVJRSavSSdi6dSshlDIM22LEekh6S0Xmb5cYSQ3wD73JgUPbRNspaZoLmeP_WZNWODkMpatZ5nLyfDTaagF4OtOqA-rsU7kDPbEIWj1yPexa8U6PAChPU06XuaXEJ-LoXURuCo3TJOnKOUr_XSzHXkvCySY0V2jLUXkoTy_dfvmgm5C4Qko94EbeR0dslcyKKAjRvq4u7HMEiUnIVBjTjEdA05Fv_BNDi9BPhht3ofBerjNNqIbvTxDMVImQmrZ8l4_gmJlEJPhHMu0IAAPcgcUF-cxFojtTM5CBeOa9rMeIZRn3pz9wtvlWR7-XPG_wuzQRy7RsOa7yvp3ZPI4EJ6twxymhf--h5gX1IVUDg0DuHEsaED4yjZhf1L9mjk5r6U5h49hONBtLQTkFpu6or97RRzrzC6RIQNP6lMonH_kPrtxNLnuCRMzZloSnBX0ehd6cQwkojPmNy43c6ZD9BH5-6e3QmiefoYpgLZCXn5RSrNbXy9y_CKaikMWENOzGqqTOrT75i5yAxeOm7bL39BhK7cO9Nqu79CU08GwgansuQl_kSGjot-1nl14E2kgd15WJEfcwvh1uPyLkhQVNGsHJrvg9jwijTXDrkrSNBP4Btt-HbdDyBB3pliG0Fwy9jHRicCuyvC81Qh2I1o4vhRRWC5LN0m9UBaLJ0nbfTnn3Uz29ZNxx1BqArzioKF_GkrpErh9TbM2LWeRtB672uTWS1e6fXgbmzm6r_a8fdEJCCTAGIsP4DkWl2MXVd_yxqgIsjDnyudWyBJqJ37ELfe0aY6R6MqHGDQaaECFbHcEp6r7_RzZh-_z662z4LLVXG7_OJz3iOnSURcy1jdslwp42boBS_DwF4XxByZq9D03MJXUTN5G_rCQmOjEQd05nD_MK-bd4HtPSuAWHRUfC0ncN0M8PzlmaZ5bzJ6tuh8ZRXmx25gVEQkeHlNAv72MSAxztvGuS6P7ab29yUweErlhexkTjJanpTyQ3AUVtE74_WU_yBQAaeMwAN2wu1c36fS2-ULGwwOTInnVyxpbtwNPAKmRApkELrVp00X1ly91P25YDAD8cfdF5bEaPFm3Ytq4jJ68b4odXFfYPwARVe7UV7YawfBAf7bd29ceGFgBxExpx6F7WG_E10wGHkieeKV_Y8dT_Sr9Qc6DUBfgDn2od2JY6BVVB4c5BKUnYRmFvlvriGxqMFkK8TL-yHB6ifaJpo6HEYwV6L1TzeM3vS5FAhFJx8dHWjihv575zRNlqBn6r7sBBs7-m-YnixrrIwSQA1tltIpf4ItYqb8_VG-YpKb3PnKaa8wXuioy7C15XcZ3wcb7l0v2xLuUGx5sRxLnJPV4A0R7ksFy7A43TiRjAtT6h5YszPNDMWkWzLYIYE-LF9JfbrAT5Hc_exgJokghRtmNviArZ-tehd-W1_1Oz1_FwR2rcvizrt1TiOHlRGByfDoJgg0IQoa6crXxZdhOTsu5OEu4CKwPrOIlD_6WKJJDuEZA8TAg6LeG9ljVEbmYi-Pa8LYvrs6DwJ1sghkYCRDdEGDT1UwnTS7k5IZDkjgl2E8TBnS2tpJIcA7bZsl-B-aHCgQwVjs7v4hWkFQ";if(!e)return null;if(_o&&_o.sealed===e)return _o;let t=null;try{t=Zi.parse(JSON.parse(Uo(e,OR)))}catch{t=null}return _o={sealed:e,bundle:t},_o}function ln(){let e=jg();if(!e?.bundle)return null;if(e.runtime===void 0){let t=Date.now();try{e.runtime=Vi(e.bundle,{signedAt:t,fetchedAt:t})}catch{e.runtime=null}}return e.runtime}function IR(){let e=jg();return e?.bundle?(e.keys??=new Set(e.bundle.filters.map(t=>se(t.slug))),e.keys):null}function Xn(e,t=!1){if(t||!e||e.length===0){let n=IR();return n?new Set(n):null}return new Set(e.map(n=>PR.test(n)?n:se(n)))}var OR,PR,_o,Qn=k(()=>{"use strict";Gi();st();xn();OR="tokmizer-default-rules-v1",PR=/^[0-9a-f]{16}$/,_o=null});function gc(e){Bg=e}async function NR(e,t){let n=await dg();if(n.size>0)return bn(e,n.values(),t,n);let r=ln();return r?r.selectFor(e,"free",t?[...t]:void 0):null}function LR(e,t,n){let r=Vs(e,{...t,keep_failures:!0,fold_passing:!1,mask_abs_paths:!1,transform:void 0,truncate_lines_at:void 0,max_lines:void 0,on_empty:void 0},{verbosity:"normal",smartCode:!1});if(r.trim().length===0)return Qe(e);if(n!=="compact"&&n!=="minimal")return r;let o=r.endsWith(`
|
|
124
124
|
`)?`
|
|
125
125
|
`:"";return Zs((o?r.slice(0,-1):r).split(`
|
|
126
126
|
`)).join(`
|
|
127
|
-
`)+o}async function er(e,t,n,r={}){let o=Buffer.byteLength(t,"utf8"),{exitCode:s,yolo:i=!1,resolver:a,...l}=r,c=an(
|
|
127
|
+
`)+o}async function er(e,t,n,r={}){let o=Buffer.byteLength(t,"utf8"),{exitCode:s,yolo:i=!1,resolver:a,...l}=r,c=an(yg(e.startsWith("bash-tool: ")?e.slice(11):e)),u=s!=null&&s!==0&&!(s===1&&DR.test(fc(c)??c)),f=ph(a??Bg??NR),d=null;for(let M of kg(e))if(d=await f(M,n),d)break;!d&&o>=MR&&!cc.test(e)&&(d=await f(`bash-tool: ${e}`,n));let m=uc(e.startsWith("bash-tool: ")?e.slice(11):e),p=d?.slug==="git-log"&&m!=null&&/^git\s+log(?:\s|$)/.test(an(m)),h=s==null&&(p?/^(?:fatal|error):/im.test(Qe(t)):pg(t)),y=d?.transform==="smart-read"&&o<=2048&&(t.endsWith(`
|
|
128
128
|
`)?t.slice(0,-1):t).split(`
|
|
129
|
-
`).length<=60,T=o<=16384&&m!=null&&/^(?:head|tail)(?:\s|$)|^sed\s+(?:(?:-[Eru]+|--(?:regexp-extended|unbuffered|sandbox))\s+)*(?:-[Enruse]*n[Enruse]*(?:\s|$)|--(?:quiet|silent)(?:\s|$))/.test(an(m)),E=d?.transform==="smart-read"&&o<=16384&&(l.verbosity??"normal")==="normal"&&l.smartCode!==!0,x=d?.slug==="read-tool"&&o<HR;if(!i&&(E||x||T||y&&l.smartCode!==!0))return{output:t,filterId:d?.slug??null,rawBytes:o,filteredBytes:o,debugBypass:u||
|
|
129
|
+
`).length<=60,T=o<=16384&&m!=null&&/^(?:head|tail)(?:\s|$)|^sed\s+(?:(?:-[Eru]+|--(?:regexp-extended|unbuffered|sandbox))\s+)*(?:-[Enruse]*n[Enruse]*(?:\s|$)|--(?:quiet|silent)(?:\s|$))/.test(an(m)),E=d?.transform==="smart-read"&&o<=16384&&(l.verbosity??"normal")==="normal"&&l.smartCode!==!0,x=d?.slug==="read-tool"&&o<HR;if(!i&&(E||x||T||y&&l.smartCode!==!0))return{output:t,filterId:d?.slug??null,rawBytes:o,filteredBytes:o,debugBypass:u||h,droppedTail:null};if(!i&&d&&!d.preserve_exact&&(u||h)&&Dg.test(c)){let M=Hg(t,l.verbosity??"normal"),W=M===null?o:Buffer.byteLength(M,"utf8");if(M!==null&&W<o)return{output:M,filterId:d.slug,rawBytes:o,filteredBytes:W,debugBypass:!0,droppedTail:t,failureSummary:!0}}if(!d||(u||h)&&d.preserve_exact&&!i)return{output:t,filterId:null,rawBytes:o,filteredBytes:o,debugBypass:u||h,...i?{droppedTail:null}:{}};let R=M=>{if(!i)return M;let W=M.filteredBytes>o||o>0&&M.output.length===0?t:M.output,X=!M.debugBypass&&!d?.preserve_exact?pc(W,"minimal",M.filterId??""):W,Re=dc(X)===X?X:dc(W);return{...M,output:Re,filteredBytes:Buffer.byteLength(Re,"utf8"),droppedTail:null}};if(d.slug==="tsc"&&!u&&!h&&!$g(e)){let M=Cg(t);if(M!==null)return R({output:M,filterId:d.slug,rawBytes:o,filteredBytes:Buffer.byteLength(M,"utf8"),debugBypass:!1,droppedTail:null})}if(u||h){let M=i?Vs(t,{...d,keep_failures:!0,transform:void 0,max_lines:void 0,truncate_lines_at:void 0,on_empty:void 0},{verbosity:"minimal",smartCode:!1}):d.strip_on_failure&&!d.preserve_exact?LR(t,d,l.verbosity):d.strip_ansi&&!d.preserve_exact?Qe(t):t;!i&&l.verbosity==="minimal"&&d.transform!=="smart-read"&&(M=Rg(M)),!i&&d.slug==="pytest"&&(l.verbosity==="compact"||l.verbosity==="minimal")&&/^={3,} test session starts ={3,}\r?$/m.test(M)&&/^={3,} FAILURES ={3,}\r?$/m.test(M)&&(M=M.replace(/^([=_])\1{2,} (.+?) \1{3,}(\r?)$/gm,"$2$3"));let W=!i&&!d.preserve_exact&&o>=FR?Np(M.split(`
|
|
130
130
|
`)).join(`
|
|
131
|
-
`):M,X=W.length<M.length;return R({output:W,filterId:d.slug,rawBytes:o,filteredBytes:Buffer.byteLength(W,"utf8"),debugBypass:!0,...X?{droppedTail:t}:{}})}let{text:O,droppedTail:F}=Fl(t,d,i?{...l,verbosity:"minimal",...d.transform==="smart-read"?{smartCode:!0}:{}}:l),L=!i&&!d.preserve_exact?pc(O,l.verbosity,d.slug):O,J=Buffer.byteLength(L,"utf8");return t.trim().length>0&&J>=o?R({output:t,filterId:d.slug,rawBytes:o,filteredBytes:o,debugBypass:!1,droppedTail:null}):R({output:L,filterId:d.slug,rawBytes:o,filteredBytes:J,debugBypass:!1,droppedTail:F})}var
|
|
132
|
-
`).filter(c=>c.trim()!==""),s=o.length,i=0;for(;s>0;){let c=Buffer.byteLength(o[s-1])+1;if(i+c>n)break;i+=c,s-=1}let a=oA(e);for(let c of o.slice(0,s)){let u=XR(c);if(!u)continue;let f=rA(u.t),d=a[f]??
|
|
131
|
+
`):M,X=W.length<M.length;return R({output:W,filterId:d.slug,rawBytes:o,filteredBytes:Buffer.byteLength(W,"utf8"),debugBypass:!0,...X?{droppedTail:t}:{}})}let{text:O,droppedTail:F}=Fl(t,d,i?{...l,verbosity:"minimal",...d.transform==="smart-read"?{smartCode:!0}:{}}:l),L=!i&&!d.preserve_exact?pc(O,l.verbosity,d.slug):O,J=Buffer.byteLength(L,"utf8");return t.trim().length>0&&J>=o?R({output:t,filterId:d.slug,rawBytes:o,filteredBytes:o,debugBypass:!1,droppedTail:null}):R({output:L,filterId:d.slug,rawBytes:o,filteredBytes:J,debugBypass:!1,droppedTail:F})}var Bg,DR,MR,FR,HR,ii=k(()=>{"use strict";mg();jo();Xl();Hl();hg();bg();_g();fo();Ws();Tg();Ag();Ws();Og();Lg();Qn();Bg=null;DR=/^(?:grep|rg|find|eslint|ruff|flake8|mypy|prettier|biome|black|stylelint)(?:\s|$)|^git\s+(?:diff|grep)\b/,MR=2048,FR=8192,HR=32*1024});function Ug(e){return e?jR[e]??"anthropic":"anthropic"}var jR,zg=k(()=>{"use strict";jR={"claude-code":"anthropic",codex:"openai",copilot:"openai","gemini-cli":"google",cursor:"anthropic",windsurf:"anthropic",cline:"anthropic",aider:"anthropic",shell:"anthropic"}});import{appendFileSync as BR,chmodSync as UR,mkdirSync as zR,readFileSync as Wg,realpathSync as JR,renameSync as Vg,rmSync as qg,statSync as Yg,writeFileSync as yc}from"node:fs";import{basename as Jg,dirname as Xg,join as ai,resolve as GR,sep as Mj}from"node:path";function Qg(){return{n:0,nc:0,r:0,f:0,or:0,of:0,x:0,sn:0,sr:0,sf:0,mr:0,mf:0,rn:0,rb:0,tn:0,tr:0,tf:0,ox:0,t0:null,t1:null,cmds:{},prov:{},rl:{},fb:{}}}function XR(e){let t=e.trim();if(!t)return null;try{let n=JSON.parse(t);return typeof n.t!="number"||!Number.isFinite(n.t)||n.t<0||n.t>864e10||typeof n.r!="number"||!Number.isSafeInteger(n.r)||n.r<0||typeof n.f!="number"||!Number.isSafeInteger(n.f)||n.f<0||n.r+n.f===0?null:{t:n.t,r:n.r,f:n.f,m:n.m===1,...typeof n.h=="string"?{h:n.h}:{},...typeof n.k=="string"?{k:n.k}:{},...typeof n.c=="string"&&n.c?{c:n.c}:{},...typeof n.p=="string"&&n.p?{p:n.p}:{},...typeof n.s=="string"&&n.s?{s:n.s}:{},...typeof n.o=="string"&&qR.has(n.o)?{o:n.o}:{}}}catch{return null}}function QR(e,t){if(!t.c)return;let n=e.cmds[t.c]??{n:0,nc:0,r:0,f:0,sh:!1};n.n+=1,t.f<t.r&&(n.nc+=1,n.rr=(n.rr??0)+t.r,n.rf=(n.rf??0)+t.f),(t.k==="sh"||t.k==="restore")&&(n.sh=!0),t.h==="shell"&&t.k!=="restore"&&(n.tn=(n.tn??0)+1,n.tr=(n.tr??0)+t.r,n.tf=(n.tf??0)+t.f),n.r+=t.r,n.f+=t.f,e.cmds[t.c]=n}function eA(e){return e.s==="b"?`b:${(e.c??"").split(" ")[0]||"other"}`:e.s?.startsWith("u:")?e.s:e.o==="n"?"n":"?"}function tA(e,t){let n=eA(t),r=e.rl[n]??{n:0,nc:0,r:0,f:0};if(r.n+=1,r.r+=t.r,r.f+=t.f,t.f<t.r&&(r.nc+=1),e.rl[n]=r,t.f>=t.r&&t.o){let o=`${t.o} ${t.c??""}`,s=e.fb[o]??{n:0,r:0};s.n+=1,s.r+=t.r,e.fb[o]=s}}function nA(e,t){if(t.m){e.mr+=t.r,e.mf+=t.f;return}if(e.t0=e.t0==null?t.t:Math.min(e.t0,t.t),e.t1=e.t1==null?t.t:Math.max(e.t1,t.t),t.k==="sh"&&t.r>VR){e.ox+=1;return}if(QR(e,t),t.k==="restore"?(e.rn+=1,e.rb+=t.f):tA(e,t),e.n+=1,e.or+=t.r,e.of+=t.f,t.f>t.r&&(e.x+=1),t.h==="shell"&&t.k!=="restore"&&(e.tn+=1,e.tr+=t.r,e.tf+=t.f),t.f<t.r){e.nc+=1,e.r+=t.r,e.f+=t.f,t.k==="sh"&&(e.sn+=1,e.sr+=t.r,e.sf+=t.f);let n=Ug(t.h),r=e.prov[n]??{r:0,f:0};r.r+=t.r,r.f+=t.f,e.prov[n]=r}}function rA(e){let t=new Date(e*1e3);return`${t.getFullYear()}-${String(t.getMonth()+1).padStart(2,"0")}-${String(t.getDate()).padStart(2,"0")}`}function ey(e){return ai(Xg(e),ZR)}function oA(e){let t=ey(e),n;try{n=Wg(t,"utf8")}catch{return{}}try{let r=JSON.parse(n);if(!r.days||typeof r.days!="object")throw new Error("invalid ledger");let o={};for(let[s,i]of Object.entries(r.days))!/^\d{4}-\d{2}-\d{2}$/.test(s)||!i||typeof i!="object"||(o[s]={...Qg(),...i});return o}catch{try{Vg(t,`${t}.corrupt-${Date.now()}`)}catch{}return{}}}function Kg(e,t){let n=`${e}.tmp-${process.pid}`;yc(n,t,{mode:384}),Vg(n,e)}function sA(e){try{return yc(e,String(process.pid),{flag:"wx",mode:384}),!0}catch{}try{return Date.now()-Yg(e).mtimeMs<WR?!1:(qg(e,{force:!0}),yc(e,String(process.pid),{flag:"wx",mode:384}),!0)}catch{return!1}}function iA(e,t=Gg,n=Gg/2){try{if(Yg(e).size<=t)return}catch{return}let r=`${e}.lock`;if(sA(r))try{let o=Wg(e,"utf8").split(`
|
|
132
|
+
`).filter(c=>c.trim()!==""),s=o.length,i=0;for(;s>0;){let c=Buffer.byteLength(o[s-1])+1;if(i+c>n)break;i+=c,s-=1}let a=oA(e);for(let c of o.slice(0,s)){let u=XR(c);if(!u)continue;let f=rA(u.t),d=a[f]??Qg();nA(d,u),a[f]=d}let l=o.slice(s);Kg(e,l.length?`${l.join(`
|
|
133
133
|
`)}
|
|
134
|
-
`:""),
|
|
135
|
-
`.includes(i)){if(s(),
|
|
136
|
-
`;try{zR(w(),{recursive:!0,mode:448}),BR(n,y,{mode:384}),UR(n,384),iA(n)}catch{return}}function ci(e){let t=e.filterId==null?void 0:e.filterId.startsWith("user/")?`u:${e.filterId.slice(5)}`:"b",n=e.filteredBytes<e.rawBytes?void 0:e.filterId==null?"n":e.debugBypass?"e":"g";return{...t?{s:t}:{},...n?{o:n}:{}}}function ui(e,t,n){let r=n!=null?Math.min(e,n):e,o=n!=null?Math.min(t,n):t;return{raw:r,filtered:o}}var KR,ZR,
|
|
137
|
-
`,{mode:384}),wA(n,384),bA(n).size>_A){let o=
|
|
134
|
+
`:""),Kg(ey(e),JSON.stringify({v:1,days:a}))}catch{return}finally{qg(r,{force:!0})}}function aA(e){let t=GR(e),n=t,r="";for(;;){try{return ai(JR(n),r)}catch{}let o=Xg(n);if(o===n)return t;r=r?ai(Jg(n),r):Jg(n),n=o}}function Zg(e){return e.length===0||e[0]==="cd"||e.every(t=>ty.test(t))}function dA(e){let t=[],n="",r=!1,o=null,s=()=>{r&&t.push(n),n="",r=!1};for(let i of e){if(o){i===o?o=null:n+=i;continue}if(i==="'"||i==='"'){o=i,r=!0;continue}if(i===" "||i===" "){s();continue}if(`|;&<>
|
|
135
|
+
`.includes(i)){if(s(),Zg(t)){t=[];continue}return t}n+=i,r=!0}return s(),Zg(t)?[]:t}function tr(e){let t=dA(e).map(a=>a.replace(/^[({]+/,"")).filter(Boolean),n=0;for(;n<t.length;){let a=t[n];if(ty.test(a)){n+=1;continue}if(lA.has(a)){for(n+=1;n<t.length;){let l=t[n];if(l.startsWith("-")){n+=cA.has(l)?2:1;continue}if(/^\d+(?:\.\d+)?[smhd]?$/.test(l)){n+=1;continue}break}continue}break}if(n>=t.length)return"";let r=t[n],o=r.includes("/")?r.slice(r.lastIndexOf("/")+1):r,s=t[n+1];return(s&&!s.startsWith("-")&&uA.test(s)&&fA.has(o.toLowerCase())?`${o} ${s}`:o).slice(0,24)}function mA(){return ai(w(),KR)}function li(e,t,n=mA(),r=!1,o,s,i,a,l={}){if(!Number.isSafeInteger(e)||!Number.isSafeInteger(t)||e<0||t<0||e+t===0)return;let c=o?`,"h":${JSON.stringify(o)}`:"",u=s?`,"k":${JSON.stringify(s)}`:"",f=i?`,"c":${JSON.stringify(i.slice(0,24))}`:"",d=a?aA(a):"",m=d&&d.length<=YR?`,"p":${JSON.stringify(d)}`:"",p=l.s?`,"s":${JSON.stringify(l.s.slice(0,66))}`:"",h=l.o?`,"o":${JSON.stringify(l.o)}`:"",y=`{"t":${Math.floor(Date.now()/1e3)},"r":${e},"f":${t}${r?',"m":1':""}${c}${u}${f}${m}${p}${h}}
|
|
136
|
+
`;try{zR(w(),{recursive:!0,mode:448}),BR(n,y,{mode:384}),UR(n,384),iA(n)}catch{return}}function ci(e){let t=e.filterId==null?void 0:e.filterId.startsWith("user/")?`u:${e.filterId.slice(5)}`:"b",n=e.filteredBytes<e.rawBytes?void 0:e.filterId==null?"n":e.debugBypass?"e":"g";return{...t?{s:t}:{},...n?{o:n}:{}}}function ui(e,t,n){let r=n!=null?Math.min(e,n):e,o=n!=null?Math.min(t,n):t;return{raw:r,filtered:o}}var KR,ZR,Gg,WR,VR,qR,YR,lA,cA,uA,fA,ty,kc=k(()=>{"use strict";H();zg();KR="stats.jsonl",ZR="stats-ledger.json",Gg=2*1024*1024,WR=3e4,VR=3e4,qR=new Set(["n","g","e"]),YR=256;lA=new Set(["sudo","command","time","nice","nohup","env","stdbuf","timeout"]),cA=new Set(["-u","-g","-n","-s","-k"]),uA=/^[a-z0-9][a-z0-9._-]*$/i,fA=new Set(["git","npm","pnpm","yarn","npx","docker","kubectl","helm","cargo","go","brew","gh","pip","pip3","apt","apt-get","systemctl","terraform","aws","gcloud","az","bundle","rake","rails","prisma","poetry","uv","gem","composer"]),ty=/^[A-Za-z_][A-Za-z0-9_]*=/});import{appendFileSync as pA,mkdirSync as hA,readFileSync as gA,writeFileSync as yA,renameSync as kA,statSync as bA,readdirSync as Bj,rmSync as Uj,chmodSync as wA}from"node:fs";import{join as ny}from"node:path";function ry(){return ny(w(),"sessions")}function vA(e){let t=e.replace(/[^A-Za-z0-9._-]/g,"-").replace(/\.\./g,"-").slice(0,80)||"default";return ny(ry(),`${t}.jsonl`)}function fi(e,t){try{let n=vA(e);hA(ry(),{recursive:!0,mode:448});let r=JSON.stringify({t:t.t??Math.floor(Date.now()/1e3),tool:t.tool,target:t.target.slice(0,xA),...t.fail?{fail:1}:{}});if(pA(n,`${r}
|
|
137
|
+
`,{mode:384}),wA(n,384),bA(n).size>_A){let o=gA(n,"utf8").split(`
|
|
138
138
|
`).filter(a=>a.trim()!==""),s=o.slice(o.length-SA),i=`${n}.tmp-${process.pid}`;yA(i,`${s.join(`
|
|
139
139
|
`)}
|
|
140
|
-
`,{mode:384}),kA(i,n)}}catch{}}var _A,SA,Gj,xA,bc=k(()=>{"use strict";H();_A=96*1024,SA=500,Gj=168*3600*1e3,xA=120});async function EA(){if(nr)return nr;if(So)return So;let e=Rs().then(t=>{if(So===e)return nr=t,t;try{t.close()}catch{}return null}).catch(()=>null);return So=e,e}async function TA(){return _c||(_c=!0,wc=await Rr()??ln()),wc}async function oy(e,t,n){let r=await TA();if(!r)return null;let o=r.selectFor(e,t,n?[...n]:void 0);return!o||n&&!n.has(se(o.slug))?null:o}function RA(e){return e?{...e,matchRegex:new RegExp(e.match_command)}:null}function di(e){
|
|
140
|
+
`,{mode:384}),kA(i,n)}}catch{}}var _A,SA,Gj,xA,bc=k(()=>{"use strict";H();_A=96*1024,SA=500,Gj=168*3600*1e3,xA=120});async function EA(){if(nr)return nr;if(So)return So;let e=Rs().then(t=>{if(So===e)return nr=t,t;try{t.close()}catch{}return null}).catch(()=>null);return So=e,e}async function TA(){return _c||(_c=!0,wc=await Rr()??ln()),wc}async function oy(e,t,n){let r=await TA();if(!r)return null;let o=r.selectFor(e,t,n?[...n]:void 0);return!o||n&&!n.has(se(o.slug))?null:o}function RA(e){return e?{...e,matchRegex:new RegExp(e.match_command)}:null}function di(e){gc(async(t,n)=>{let r=e==="free"?"trial":e,o=n??Xn(void 0),s=await EA();if(!s)return oy(t,r,o);try{let i=await s.filter(t,r,o?[...o]:void 0);return!i||o&&!o.has(se(i.slug))?null:RA(i)}catch{return oy(t,r,o)}})}function mi(){if(gc(null),nr)try{nr.close()}catch{}nr=null,So=null,wc=null,_c=!1}var nr,So,wc,_c,Sc=k(()=>{"use strict";al();ii();st();xn();Qn();nr=null,So=null;wc=null,_c=!1});var cy={};ce(cy,{CAPTURING_ENV:()=>vc,kickBackgroundEnroll:()=>pi,processCapturedOutput:()=>hi,resolveExecTimeoutMs:()=>ay,runWrapped:()=>LA,signalNumber:()=>ly,underCapturingExec:()=>MA});import{existsSync as AA,readFileSync as $A,writeFileSync as CA,mkdirSync as OA}from"node:fs";import{join as PA}from"node:path";import{fileURLToPath as IA}from"node:url";import{StringDecoder as NA}from"node:string_decoder";function MA(e=process.env){return e[vc]==="1"}function iy(e,t){let n=new NA("utf8"),r=n.write(Buffer.concat(e));return t?r:r+n.end()}function pi(){try{if(!Y())return;let e=process.env.TOKMIZER_TKR_BIN||IA(new URL("../bin/tkr.js",import.meta.url));if(!xe()&&!AA(e))return;let t=PA(w(),"enroll-kick");try{let s=Number($A(t,"utf8"));if(Number.isFinite(s)&&Date.now()-s<DA)return}catch{}OA(w(),{recursive:!0}),CA(t,String(Date.now()));let[n,...r]=Xt(e);(0,xc.default)(n,[...r,"heartbeat"],{detached:!0,stdio:"ignore"}).unref()}catch{}}function ay(e){let t=Number(e.TOKMIZER_EXEC_TIMEOUT_MS);if(Number.isFinite(t)&&t>0)return t;let n=Number(e.BASH_MAX_TIMEOUT_MS);return Number.isFinite(n)&&n>6e5?n:6e5}function ly(e){return HA[e]??15}async function LA(e){let[t,...n]=e;if(!t)throw new Error("tkr-exec: missing command");let r=je(),o=(0,xc.default)(t,n,{stdio:["inherit","pipe","pipe"],env:{...Ud(),[vc]:"1"}}),s=!1;o.on("spawn",()=>{s=!0});let i=R=>{try{o.kill(R)}catch{}},a=()=>i("SIGINT"),l=()=>i("SIGTERM");process.on("SIGINT",a),process.on("SIGTERM",l);let c=[],u=[],f=0,d=0,m=!1,p=!1;o.stdout?.on("data",R=>{if(f>=rr){m=!0;return}let O=rr-f,F=R.length>O?R.subarray(0,O):R;c.push(F),f+=F.length,R.length>O&&(m=!0)}),o.stderr?.on("data",R=>{if(d>=rr){p=!0;return}let O=rr-d,F=R.length>O?R.subarray(0,O):R;u.push(F),d+=F.length,R.length>O&&(p=!0)});let h,y,T;try{T=await new Promise((R,O)=>{o.on("error",F=>{h&&clearTimeout(h),s?R(1):O(F)}),o.on("close",(F,L)=>{h&&clearTimeout(h),R(F??(L?128+ly(L):0))}),h=setTimeout(()=>{o.kill("SIGTERM"),y=setTimeout(()=>o.kill("SIGKILL"),2e3)},FA),h.unref?.()})}finally{h&&clearTimeout(h),y&&clearTimeout(y),process.off("SIGINT",a),process.off("SIGTERM",l)}let E=iy(c,m),x=iy(u,p);return hi({argv:e,stdout:E,stderr:x,exitCode:T,truncated:m,stderrTruncated:p},{yolo:r,env:process.env,onMissingState:pi})}async function hi({argv:e,stdout:t,stderr:n,exitCode:r,truncated:o,stderrTruncated:s},{yolo:i,env:a,resolver:l,onMissingState:c,deferAccounting:u,...f}){let d=o?`
|
|
141
141
|
\u2026 (output truncated at ${rr/1048576}MB)`:"",m=s?`
|
|
142
|
-
\u2026 (stderr truncated at ${rr/(1024*1024)}MB)`:"",p=()=>{let
|
|
142
|
+
\u2026 (stderr truncated at ${rr/(1024*1024)}MB)`:"",p=()=>{let h=t+d,y=Buffer.byteLength(h,"utf8");return{stdout:h,stderr:n+m,code:r,filterId:null,rawBytes:y,filteredBytes:y,truncated:o}};try{let h=await Z();h||c?.();let y=await ee();if(!y.enabled)return p();let T=a.CLAUDE_CODE_SESSION_ID;T&&h?.token&&fi(T,{tool:"Bash",target:e.join(" "),...r!==0?{fail:1}:{}});let E=h?jn(h):null,x=h?Xn(h.allowedFilters,Os(h)):null,R=new Set(y.filters.disabled.map(se)),O=x&&R.size>0?new Set([...x].filter(V=>!R.has(V))):x,F=e.join(" ");h&&!l&&di(E);let L=await er(F,t,O,{verbosity:y.outputVerbosity,resolver:l,yolo:i,exitCode:r}),J=n,M=0,W=0;if((i||r===0)&&Buffer.byteLength(n,"utf8")>=(i?1:sy)){let V=await er(F,n,O,{verbosity:y.outputVerbosity,resolver:l,yolo:i,exitCode:r});J=V.output,M=V.rawBytes,W=V.filteredBytes}else if(!i&&r!==0&&Buffer.byteLength(n,"utf8")>=sy){let V=await er(F,n,O,{verbosity:y.outputVerbosity,resolver:l,exitCode:r});if(V.failureSummary){try{J=await Or(V.droppedTail??null,V.output,a)}catch{J=V.output}M=V.rawBytes,W=V.filteredBytes}}let X=L.output;if(!i&&L.filteredBytes<L.rawBytes)try{X=new RegExp(Gs.source,"m").test(L.output)?await Qo(t,L.output,a,{label:tr(F)}):await Or(L.droppedTail??null,L.output,a,{raw:o?null:t,label:tr(F)})}catch{}let Ge=X+d,Re=J+m,z=xs(a).host,G=ui(L.rawBytes+Buffer.byteLength(n,"utf8"),Buffer.byteLength(Ge,"utf8")+Buffer.byteLength(Re,"utf8"),Ss(z)),K=!1,q=async()=>{if(!K){K=!0;try{li(G.raw,G.filtered,void 0,!1,z,"sh",tr(F),"cwd"in f?f.cwd:process.cwd(),ci(L)),await yo({cmd:F,filterId:L.filterId,rawBytes:L.rawBytes,filteredBytes:L.filteredBytes,plan:E}),await uo({cmd:F,tokensSaved:Math.max(0,Math.round((G.raw-G.filtered)/4)),rawTokens:Math.round(G.raw/4),optimized:L.filterId!=null,telemetryOptIn:y.telemetryOptIn&&(!u||(await ee()).telemetryOptIn),sessionId:T,host:z})}catch{}}};return u?u(q):await q(),{stdout:Ge,stderr:Re,code:r,filterId:L.filterId,rawBytes:L.rawBytes+M,filteredBytes:L.filteredBytes+W,truncated:o}}catch{return p()}finally{l||mi()}}var xc,rr,sy,DA,vc,FA,HA,Ec=k(()=>{"use strict";xc=dk(cg(),1);ii();st();Qn();Fe();H();Ps();ko();Jn();kc();bc();at();Qr();Es();Sc();es();Kn();$r();Ve();He();rr=10*1024*1024,sy=1024,DA=6e4,vc="TOKMIZER_EXEC_CAPTURING";FA=ay(process.env),HA={SIGHUP:1,SIGINT:2,SIGQUIT:3,SIGILL:4,SIGTRAP:5,SIGABRT:6,SIGBUS:7,SIGFPE:8,SIGKILL:9,SIGUSR1:10,SIGSEGV:11,SIGUSR2:12,SIGPIPE:13,SIGALRM:14,SIGTERM:15}});var Hc={};ce(Hc,{FOLD_MARKER_RE:()=>Gs,captureForRestore:()=>Or,captureOriginalForRestore:()=>Qo,closeDaemonResolver:()=>mi,countedSaving:()=>ui,gatingPlan:()=>jn,graceExceeded:()=>Os,installDaemonResolver:()=>di,loadSettingsCache:()=>ee,processOutput:()=>er,recordEvent:()=>yo,recordStat:()=>li,recordTelemetry:()=>uo,resolveAllowedFilters:()=>Xn,statCmdLabel:()=>tr,statOutcome:()=>ci});var Lc=k(()=>{"use strict";ii();es();Kn();Qn();Ps();ko();Jn();kc();Sc();at()});Fi();Lo();xn();vt();import{createServer as bw}from"node:net";import{chmodSync as ww}from"node:fs";async function Hu(e,t={}){await vr();let{path:n,isPipe:r}=t.socketPath?{path:t.socketPath,isPipe:process.platform==="win32"}:ot(),o=e,s=null,i=Date.now(),a=t.idleTimeoutMs??wu,l=process.env.TOKMIZER_DAEMON_INSTALL_ID??"",c=async p=>{if(i=Date.now(),p.op==="ping")return{id:p.id,ok:!0,data:{pid:process.pid,uptimeMs:o?Date.now()-o.startedAt:0,ruleCount:o?.ruleCount??0,bundleVersion:o?.bundleVersion??0,version:ue}};if(p.op==="shutdown")return!l||p.installId!==l?{id:p.id,ok:!1,err:"forbidden"}:(setTimeout(()=>t.onShutdown?.(),10),{id:p.id,ok:!0,data:{stopping:!0}});if(p.op==="reload"){if(!l||p.installId!==l)return{id:p.id,ok:!1,err:"forbidden"};if(!t.onWarming)return{id:p.id,ok:!1,err:"no_warming_handler"};try{return o=await t.onWarming(),{id:p.id,ok:!0,data:{ruleCount:o.ruleCount,bundleVersion:o.bundleVersion}}}catch(h){return{id:p.id,ok:!1,err:h.message,retryAfterMs:1e3}}}if(p.op==="filter"){if(l&&p.installId!==l)return{id:p.id,ok:!1,err:"forbidden"};if(o&&Du(o))if(t.onWarming)s||(s=t.onWarming(),s.then(y=>{o=y}).catch(()=>{}).finally(()=>{s=null}));else return{id:p.id,ok:!0,data:{filter:null,cacheHit:!0}};if(!o)if(t.onWarming){s||(s=t.onWarming());try{o=await s}catch(y){return s=null,{id:p.id,ok:!1,err:y.message,retryAfterMs:1e3}}s=null}else return{id:p.id,ok:!1,err:"warming",retryAfterMs:250};let h=o.selectFor(p.cmd,p.plan,p.allowed);return{id:p.id,ok:!0,data:{filter:h??null,cacheHit:!0}}}return{id:p.id,ok:!1,err:"unknown_op"}},u=bw(p=>{let h="";p.setEncoding("utf8"),p.on("data",y=>{if(h+=y,Buffer.byteLength(h,"utf8")>pu){p.write(St({id:"?",ok:!1,err:"frame_too_large"})),h="";return}let T=-1;for(let x=0;x<h.length;x++)h[x]===kn&&(T=x);if(T<0)return;let E=[];for(let x of No(h.slice(0,T+1)))E.push(x);h=h.slice(T+1);for(let x of E){if(!x)continue;let R="?";try{let O=JSON.parse(x);typeof O.id=="string"&&O.id.length<=64&&(R=O.id);let F=du.parse(O);c(F).then(L=>{p.write(St(L))}).catch(L=>{p.write(St({id:F.id,ok:!1,err:`internal:${L.message?.slice(0,80)??"error"}`}))})}catch(O){p.write(St({id:R,ok:!1,err:`bad_request:${O.message.slice(0,80)}`}))}}}),p.on("error",()=>{try{p.destroy()}catch{}})}),f=!1,d=setInterval(()=>{if(f)return;if(t.isActive?.()){i=Date.now();return}let p=Date.now()-i;(!_u()&&p>a||p>a*2)&&(f=!0,t.onShutdown?.())},bu);return d.unref(),await new Promise((p,h)=>{u.once("error",h),u.listen(n,()=>{if(u.off("error",h),!r)try{ww(n,384)}catch{}p()})}),{server:u,close:async()=>{clearInterval(d),await new Promise(p=>u.close(()=>p()))},touch:()=>{i=Date.now()}}}xn();function Lu(e){let t=0,n=0,r=null;return async function(){let s=Date.now();if(n>s&&r)throw new Error(`bundle fetch cooling down for ${n-s}ms (last: ${r.message})`);try{let i=await e();return t=0,n=0,r=null,i}catch(i){if(t+=1,r=i,t>=3){let a=Math.min(6e4,500*2**(t-3));n=Date.now()+a}throw i}}}st();En();Fe();Sn();H();import{readFile as mL,writeFile as nT,mkdir as pL}from"node:fs/promises";Sn();Fe();En();He();import{createPublicKey as Ew,verify as Tw}from"node:crypto";function Rw(e,t){let n=Tr();if(!n||!n.includes("BEGIN PUBLIC KEY"))throw new Error("Tokmizer plugin: no valid signing public key. Set TOKMIZER_RESP_SIGNING_PUBLIC_KEY_PEM or rebuild plugin against a prod key.");let r=Ew({key:n,format:"pem"});try{let o=Buffer.from(t,"base64url");return Tw(null,Buffer.from(e,"utf8"),r,o)}catch{return!1}}var Aw=/^[a-z0-9][a-z0-9-]*$/;async function Uu(e){_n();let t=await Z();if(!t)throw new Error("Plugin not activated.");let n=await it(),r=await Le("GET","/api/v1/skills/bundle",void 0,{baseUrl:e,bearer:t.jwt,signingSecret:t.signingSecret,fingerprint:n.fingerprint,installId:n.installId,timeoutMs:8e3});if(!r.ok)throw new Error(`bundle fetch failed ${r.status}`);let o=await Yt(r),s=[];for(let i of o.bundles){if(!Aw.test(i.slug))throw new Error(`invalid bundle slug ${i.slug}`);let a=[...i.fragments].sort((l,c)=>l.position-c.position);for(let l of a)if(!Rw(l.body,l.hash))throw new Error(`fragment signature mismatch on ${i.slug}[${l.position}]`);s.push({slug:i.slug,version:i.version,body:a.map(l=>l.body).join(`
|
|
143
143
|
|
|
144
|
-
`)})}return s}na();es();Fe();En();Sn();at();He();async function s0(e,t){let n=await Z();if(!Y()||!n||n.linked===!1){let a=n?.plan??"free";if(e==="GET")return{plan:a,settings:await ee()};let l=await ia(t);return{plan:a,settings:l}}let r=process.env.TOKMIZER_BASE_URL??"https://tokmizer.com",o=await it(),s=await Le(e,"/api/v1/settings",t,{baseUrl:r,bearer:n.jwt,signingSecret:n.signingSecret,fingerprint:o.fingerprint,installId:o.installId,timeoutMs:8e3});if(!s.ok)throw new Error(`Settings ${e} failed: ${s.status}`);let i=await Yt(s);return await ts(i.settings),i}async function ff(){return s0("GET")}He();at();import{existsSync as xS,readFileSync as vS}from"node:fs";import{basename as ES}from"node:path";ae();Ve();import{dirname as tN,join as Ff}from"node:path";import n_ from"node:os";function Hf(){return Ff(process.env.CLAUDE_CONFIG_DIR||Ff(n_.homedir(),".claude"),"settings.json")}ps();
|
|
145
|
-
`,{mode:384}),BA(n,384),As(n,uy,uy/2)}catch{}}Ve();H();import{execFileSync as p$}from"node:child_process";import{mkdirSync as
|
|
146
|
-
`)){let o=f$.exec(r);if(o&&n!=="# Functions"){let s=fy(o[1].trim());/[$`\\]/.test(s)||t.paths.push(s);continue}if(r.startsWith("# ")&&(n!=="# Functions"||u$.test(r))){n=r;continue}if(n==="# Functions"){let s=a$.exec(r)??l$.exec(r);s&&t.functions.add(s[1])}else if(n==="# Aliases"){let s=c$.exec(r);s&&t.aliases.set(s[1],fy(s[2].trim()))}}}function Tc(e){return e?.code==="ENOENT"}function my(e){let t={functions:new Set,aliases:new Map,paths:[],uncertain:!1},n=
|
|
147
|
-
`,1)[0].slice(2).trim().split(/\s+/),o=r[0]??"";return o==="/usr/bin/env"?or(r[1]??"",void 0,t):xo(o)}catch{return!1}}function T$(e,t,n){try{let r=y$(e);return[e,r.size,r.mtimeMs,r.ino,r.mode,t?n??"":""].join("|")}catch{return`${e}|missing`}}function Ac(e,t=process.platform,n=process.env.PATH,r=_$(),o=Date.now()){let s=t!=="win32"&&Rc(e)==="#!",i=T$(e,s,n),a=S$(r);if(a?.key===i&&(a.ok||o-a.at<w$))return a.ok;let l=xo(e,t)&&(s?E$(e,n):v$(e));return x$(r,{key:i,ok:l,at:o,skipped:(a?.skipped??0)+(l?0:1)}),l}var $$=new Set(["tkr","tkr-exec","token","claude","cd","export","source","echo","mkdir","rm","mv","cp","chmod","ln","true","false",":","test","[","exit","return","nohup","sudo","doas","env"]),C$=new Set(["for","while","until","if","then","else","elif","fi","do","done","case","esac","select","function","time","coproc","in","!","[[","]]","{","}",".","declare","typeset","local","readonly","unset","set","shift","trap","wait","read","eval","exec","break","continue","pushd","popd","dirs","alias","unalias","hash","ulimit","umask","getopts","let","shopt","builtin","command","compgen","complete","disown","suspend","jobs","fg","bg","kill","history","fc","bind","enable","caller","type","printf","pwd","times","logout","mapfile","readarray","help","which","print","whence","where","autoload","zmodload","setopt","unsetopt","emulate","noglob","rehash","functions","bindkey","zle","vared","sched","limit","unlimit","zstyle","zparseopts","ttyctl"]),yy=new Set(["sh","bash","zsh","dash","ksh","fish","python","python3","python2","node","ruby","perl","php","awk","sed","deno","bun"]),ky="(?:dev|start|serve|watch|preview)",O$=new RegExp(`^(?:\\S*/)?(?:bun\\s+(?:install|i|add|remove|rm|update|outdated|audit|test|build|pm|x)(?:\\s|$)|bun\\s+run\\s+(?!${ky}(?:\\s|$))[A-Za-z0-9:_-]+(?:\\s|$)|deno\\s+(?:test|lint|fmt|check|compile|install|info|doc|bench|outdated)(?:\\s|$)|deno\\s+task\\s+(?!${ky}(?:\\s|$))[A-Za-z0-9:_-]+(?:\\s|$)|php\\s+-l(?:\\s|$)|php\\s+(?:\\S*/)?(?:phpunit|pest|paratest|phpstan|pint|ecs|php-cs-fixer|psalm|rector|run-tests\\.php)(?:\\s|$)|php\\s+artisan\\s+(?!(?:serve|tinker|queue:work|queue:listen|horizon|octane:start|reverb:start|schedule:work|pail|dev)(?:\\s|$))\\S)`),P$=/(?:^|\s)--watch(?:\s|=|$)/;function I$(e){return O$.test(e)&&!P$.test(e)}var N$=/^((?:\S*\/)?(sh|bash|zsh|dash|ksh|fish)\s+(-[elux]*c[elux]*)\s+)(['"])/,D$=/[()$]|(?:^|[;&|\n]\s*)(?:and|or|not|begin|end|if|else|switch|case|while|for|function|return)(?:\s|;|$)/,Ey=3;function Ty(e){let t=N$.exec(e);if(!t)return null;let n=t[2]==="fish";if(n&&t[3]!=="-c")return null;let r=t[4],o=t[1].length+1,s=e.indexOf(r,o);if(s<=o)return null;let i=e.slice(s+1);if(i&&!/^\s/.test(i))return null;let a=e.slice(o,s);return r==='"'&&/[$`\\!]/.test(a)||n&&D$.test(a)?null:{script:a,start:o,end:s,quote:r}}var M$=new Set(["cd","export","set","unset","source",".","true",":","pushd","popd"]);function F$(e){return ir(e).filter(n=>{if(n.kind!=="cmd"||n.unsafe)return!1;let r=Ay(n.text);return r!==""&&!M$.has(r)&&!Pc.test(r)}).length>1}function H$(e,t,n,r,o){if(n>=Ey)return null;let s=Ty(e);if(!s)return null;let{script:i,start:a,end:l,quote:c}=s,u=[],f=$y(i,t,n+1,r,
|
|
148
|
-
`||a==="|"){i(a,1);continue}}r+=a,o+=1}return s(),n}function Ay(e){return e.trim().split(/\s+/)[0]??""}function Je(e,t=process.platform){try{let n=vy(R$(import.meta.url)),r=t==="win32",o=e&&e!=="claude-code"&&e!=="codex"&&!r?`TOKMIZER_HOST=${e} `:"";if(r&&(!e||e==="claude-code")){let a=U(n,"..","bin","tkr-exec.exe");if(ki(a))return Ac(a,t)?`'${a.replace(/\\/g,"/").replace(/'/g,"'\\''")}'`:null}let s=U(n,"..","bin","tkr-exec");if(!r&&ki(s))return Ac(s,t)?`${o}'${s.replace(/'/g,"'\\''")}'`:null;if(xe()){let a=r?process.execPath.replace(/\\/g,"/"):process.execPath;return`${o}'${a.replace(/'/g,"'\\''")}' exec`}let i=U(n,"..","bin","tkr-exec.js");return ki(i)?`${o}node '${i.replace(/'/g,"'\\''")}'`:null}catch{return null}}function Ic(e,t="tkr-exec",n=()=>!0,r){return $y(e,t,0,n,r)}function $y(e,t,n,r,o){if(e.includes("<<")||U$.test(e))return e;let s=ir(e),i=[];for(let a=0;a<s.length;a++){let l=s[a];if(l.kind==="sep"||l.unsafe){i.push(l.text);continue}let c=l.text.trim();if(!c){i.push(l.text);continue}let u=Ay(c),f=s[a+1],d=f?.kind==="sep"&&(f.text==="|"||f.text==="|&"),m=f?.kind==="sep"&&f.text==="&",p=!d&&!m&&!wy(l.text)&&!l.text.includes("<(")&&!l.text.includes(">(")?H$(c,t,n,r,o):null;if(p!==null){i.push(`${l.text.match(/^\s*/)?.[0]??""}${p}${l.text.match(/\s*$/)?.[0]??""}`);continue}if(c===t||c.startsWith(t)&&/^\s/.test(c.slice(t.length))||$$.has(u)||C$.has(u)||(yy.has(u)||yy.has(bi(u)))&&!I$(c)||Pc.test(u)||u.startsWith("(")||u.startsWith("#")||u.startsWith("<")||u.startsWith(">")||B$.test(c)||j$(c,u)||u.endsWith(")")||d||m||wy(l.text)||l.text.includes("<(")||l.text.includes(">(")||u==="node"&&c.includes("tkr-exec.js")||!r(u)){i.push(l.text);continue}let
|
|
144
|
+
`)})}return s}na();es();Fe();En();Sn();at();He();async function s0(e,t){let n=await Z();if(!Y()||!n||n.linked===!1){let a=n?.plan??"free";if(e==="GET")return{plan:a,settings:await ee()};let l=await ia(t);return{plan:a,settings:l}}let r=process.env.TOKMIZER_BASE_URL??"https://tokmizer.com",o=await it(),s=await Le(e,"/api/v1/settings",t,{baseUrl:r,bearer:n.jwt,signingSecret:n.signingSecret,fingerprint:o.fingerprint,installId:o.installId,timeoutMs:8e3});if(!s.ok)throw new Error(`Settings ${e} failed: ${s.status}`);let i=await Yt(s);return await ts(i.settings),i}async function ff(){return s0("GET")}He();at();import{existsSync as xS,readFileSync as vS}from"node:fs";import{basename as ES}from"node:path";ae();Ve();import{dirname as tN,join as Ff}from"node:path";import n_ from"node:os";function Hf(){return Ff(process.env.CLAUDE_CONFIG_DIR||Ff(n_.homedir(),".claude"),"settings.json")}ps();gs();ys();ws();_s();var TS=/^(?:tkr|tkr-exec(?:\.exe)?|tkr-[a-z-]+\.js|tkr-[a-z]+-hook|tkr-hook|tkr-shim-launch)$/;function RS(){return[{id:"claude",label:"Claude Code",files:[Hf()]},{id:"codex",label:"Codex",files:[Ie()]},{id:"cursor",label:"Cursor",files:[zr()]},{id:"gemini",label:"Gemini CLI",files:[Jr()]},...Hn.map(e=>({id:e.id,label:e.label,files:e.files()})),...Yr.map(e=>({id:e.host,label:e.label,files:[$d(e)]}))]}function AS(e){let t=new Set;for(let n of e.matchAll(/(['"])((?:\/|[A-Za-z]:(?:\\\\|\\|\/))[^'"\n]+)\1/g)){let r=n[2].replace(/\\\\/g,"\\");TS.test(ES(r.replace(/\\/g,"/")))&&!xS(r)&&t.add(r)}return[...t]}function Cd(e=RS()){let t=[];for(let n of e){let r=[];for(let o of n.files)try{r.push(...AS(vS(o,"utf8")))}catch{}r.length&&t.push({check:n,missing:[...new Set(r)]})}return t}H();Ee();Ee();is();Es();import{existsSync as em,readFileSync as nm,rmSync as rm,statSync as VS,writeFileSync as om,mkdirSync as sm}from"node:fs";import{join as qS}from"node:path";import tm from"node:os";function Xa(){return qS(w(),"healed")}function YS(e){if(!(e<=0))try{let t=Number(nm(Xa(),"utf8"))||0;sm(w(),{recursive:!0,mode:448}),om(Xa(),String(t+e),{mode:384})}catch{}}async function im(e){let t={staleShims:0,rewrittenShims:0,launcher:"absent",hookLauncher:"absent",globalPathRemoved:[],globalPathLines:0};if(tm.platform()!=="win32"&&em(ut())){let r=da(Fr(ut())),o=Mr(e.shimJs);!(!r||e.explicit===!0&&(o.single!==""||o.js!==""))||e.dryRun&&r?t.hookLauncher="ok":e.dryRun?t.hookLauncher="stale":t.hookLauncher=await xf(o)?"written":"failed"}let n=em(ve())&&zd();if(n&&tm.platform()!=="win32"){let r=da(Fr()),o=Mr(e.shimJs);!(!r||e.explicit===!0&&(o.single!==""||o.js!==""))||e.dryRun&&r?t.launcher="ok":e.dryRun?t.launcher="stale":t.launcher=await ma(o)?"written":"failed"}if(n){let r=await Wd(e.shimJs,{dryRun:e.dryRun===!0});t.staleShims=r.stale,t.rewrittenShims=r.rewritten}return e.rc&&(e.dryRun||(t.globalPathRemoved=await Xd()),t.globalPathLines=await Yd()),YS(t.rewrittenShims+(t.launcher==="written"?1:0)+(t.hookLauncher==="written"?1:0)+t.globalPathRemoved.length),t}function am(e){try{e?(sm(w(),{recursive:!0,mode:448}),om(Tt(),String(Date.now()),{mode:384})):rm(Tt(),{force:!0})}catch{}}function lm(){try{return Math.min(1e6,Math.floor(VS(Nr()).size/2))}catch{return 0}}function cm(){try{rm(Nr(),{force:!0})}catch{}}function um(){try{return Math.min(1e6,Number(nm(Xa(),"utf8"))||0)}catch{return 0}}Es();async function fm(){try{if(!(await ee()).telemetryOptIn)return;let e=await im({shimJs:Qd(),rc:!0,dryRun:!0});return{shimFallbacks:lm(),staleShims:Math.min(1e3,e.staleShims+(e.launcher==="stale"?1:0)+(e.hookLauncher==="stale"?1:0)),brokenHooks:Math.min(1e3,Cd().length),globalPathLines:Math.min(100,e.globalPathLines),healed:um(),failOpen:fe()}}catch{return}}vt();var gh="-command",yh=3;async function kh(){try{let{connectDaemon:e}=await Promise.resolve().then(()=>(al(),ym)),t=await e();try{await t.reload()}finally{t.close()}}catch{}}async function bh(e,t){if(!(!t&&await Qi("power"))){try{let n=await Uu(e),r=[],o=[];for(let s of n)if(s.slug.endsWith(gh)){let i=s.slug.slice(0,-gh.length);await ta(i,s.body),o.push(i)}else await ea(s.slug,s.body),r.push(s.slug);await Vo(r),await qo(o),await Yo(null)}catch(n){await Yo(n instanceof Error?n.message:String(n))}try{await tf()}catch{}}}function rT(e){try{return new Intl.DateTimeFormat("en-CA",{timeZone:e,year:"numeric",month:"2-digit",day:"2-digit"}).format(new Date)}catch{return new Date().toISOString().slice(0,10)}}function wo(e,t=0){let n=e.split(".")[1];if(!n)return!0;try{let r=Number(JSON.parse(Buffer.from(n,"base64url").toString("utf8")).exp);return!Number.isFinite(r)||r*1e3<=Date.now()+t}catch{return!0}}async function bo(e,t){let n=await Z();return n&&n.token!==e.token?!1:(await Ji(t),!0)}async function Zn(e){let t=await Z();if(!t)return null;if(!Y())return t;let n=await it(),r=t.timeZone??Bo(),o=await fm(),s={ts:Date.now(),localDate:rT(r),timeZone:r,...o?{health:o}:{}},i;try{i=await Le("POST","/api/v1/license/heartbeat",s,{baseUrl:e,bearer:t.jwt,signingSecret:t.signingSecret,fingerprint:n.fingerprint,installId:n.installId,timeoutMs:5e3})}catch{return t}if(i.status===401){let m=(t.heartbeatAuthFails??0)+1,p={...t,heartbeatAuthFails:m},h=t.linked??(!!t.email||t.plan==="smart"||t.plan==="pro");if(m>=yh&&h&&(p.relinkRequired=!0),!await bo(t,p))return null;if(m>=yh&&!h){try{await nT(`${w()}/state.replaced.json`,JSON.stringify(t),{mode:384})}catch{}try{return await oT(e)}catch{return null}}return null}if(i.status===451){let m=await Z();if(m&&m.token!==t.token)return null;await Au();try{await Vo([]),await qo([])}catch{}return null}if(i.status===426)return await bo(t,{...t,updateRequired:!0}),null;if(i.status===423)return await bo(t,{...t,relinkRequired:!0}),null;if(!i.ok){if(i.status===400)try{(await i.json())?.code==="stale_ts"&&await bo(t,{...t,clockSkewDetected:!0})}catch{}return t}let a;try{a=await Yt(i)}catch{return t}am(a.failOpen===!0),o&&cm();let l=a.settingsRevision??0,c=t.lastSettingsRevision??0,u=l>c,f=a.plan!==t.plan,d={...t,jwt:a.jwt,plan:a.plan,status:a.status,trialEndsAt:a.trialEndsAt,subEndsAt:a.subEndsAt,jwtVersion:a.jwtVersion,lastSettingsRevision:c,lastHeartbeatOkAt:Date.now(),heartbeatAuthFails:0,relinkRequired:!1,updateRequired:!1,clockSkewDetected:!1,timeZone:r,bonusActive:a.bonusActive??!1,...a.bonusResetAt!==void 0?{bonusResetAt:a.bonusResetAt}:{},...a.latestPluginVersion?{latestPluginVersion:a.latestPluginVersion}:{},...Array.isArray(a.allowedFilters)?{allowedFilters:a.allowedFilters.map(se)}:{}};if(u)try{await ff(),d.lastSettingsRevision=l}catch{}if(!await bo(t,d))return Z();if(process.env.TOKMIZER_SELF_UPDATE_CHILD!=="1")try{let{maybeSpawnSelfUpdate:m}=await Promise.resolve().then(()=>(Rm(),Tm));m()}catch{}(u||f)&&await kh(),await bh(e,u||f);try{let{syncReducerRules:m}=await Promise.resolve().then(()=>(ap(),ip));await m()}catch{}try{let{flushTelemetry:m}=await Promise.resolve().then(()=>(Jn(),yp)),{flush:p}=await Promise.resolve().then(()=>(ko(),hh));await m(e),await p(e)}catch{}return d}var $L=5*6e4;async function oT(e){_n();let t=await it(),n=Bo(),r={pluginVersion:ue,timeZone:n,...t},o=await Le("POST","/api/v1/license/enroll",r,{baseUrl:e,fingerprint:t.fingerprint,installId:t.installId,timeoutMs:4e3});if(!o.ok)throw new Error(`enroll failed ${o.status}`);let s=await Yt(o),i={token:s.token,jwt:s.jwt,signingSecret:s.signingSecret,plan:s.plan,status:s.status,trialEndsAt:s.trialEndsAt,subEndsAt:s.subEndsAt,jwtVersion:s.jwtVersion,installId:t.installId,fingerprint:t.fingerprint,pluginVersion:ue,email:"",timeZone:n,bonusActive:!1,linked:!1,lastHeartbeatOkAt:Date.now(),...Array.isArray(s.allowedFilters)&&s.allowedFilters.length>0?{allowedFilters:s.allowedFilters.map(se)}:{}};return await Ji(i),await kh(),await bh(e,!0),i}Fe();Fe();ko();Jn();He();var sT=10*6e4,wh=6e4;function _h(e){let t=0,n=async()=>{let r=Date.now();if(r-t<sT)return;let o;try{o=await Zn(e)}catch{t=r;return}o&&!wo(o.jwt,wh)&&(t=r)};return async()=>{if(!Y())return;let r=await Z();if(!r)return;if(wo(r.jwt,wh)){await n();return}(await Promise.all([Ql(e),Ol(e)])).includes("auth")&&await n()}}Lo();H();vt();import{randomBytes as C1,randomUUID as tk}from"node:crypto";import{lstatSync as O1,mkdirSync as P1,realpathSync as I1,renameSync as N1,rmSync as D1,writeFileSync as M1}from"node:fs";import{dirname as F1,join as Ri}from"node:path";Wt();xn();H();$r();Ec();import{timingSafeEqual as Gc}from"node:crypto";import{chmodSync as _1,lstatSync as S1,realpathSync as x1}from"node:fs";import{dirname as v1}from"node:path";import{createServer as E1}from"node:net";import{existsSync as ki,readFileSync as Cc,readdirSync as Oc}from"node:fs";import{homedir as sr}from"node:os";import{fileURLToPath as R$}from"node:url";import{dirname as vy,join as U,resolve as A$}from"node:path";H();ll();import{appendFileSync as jA,chmodSync as BA,mkdirSync as UA,existsSync as zA,readFileSync as x2,rmSync as v2}from"node:fs";import{dirname as JA,join as GA}from"node:path";var KA="usage.jsonl";var uy=2*1024*1024;function ZA(){return GA(w(),KA)}function ke(e,t,n=ZA()){try{let r=JA(n);zA(r)||UA(r,{recursive:!0,mode:448});let o=e.replace(/[^A-Za-z0-9._-]/g,"").slice(0,64)||"unknown";jA(n,`{"t":${Math.floor(Date.now()/1e3)},"s":"${o}","o":${t?1:0}}
|
|
145
|
+
`,{mode:384}),BA(n,384),As(n,uy,uy/2)}catch{}}Ve();H();import{execFileSync as p$}from"node:child_process";import{mkdirSync as h$,readFileSync as hy,renameSync as g$,statSync as y$,writeFileSync as k$}from"node:fs";import{join as gy}from"node:path";import{closeSync as WA,openSync as VA,readSync as qA,readdirSync as YA,readFileSync as XA,statSync as dy}from"node:fs";import{homedir as QA}from"node:os";import{isAbsolute as e$,join as gi,resolve as t$}from"node:path";var n$=/^[A-Za-z0-9._+@%:,/-]+$/,r$=new Set(["7f454c46","feedface","feedfacf","cefaedfe","cffaedfe","cafebabe","bebafeca"]),o$=32,s$=4*1024*1024;function Rc(e){let t;try{t=VA(e,"r");let n=Buffer.alloc(4),r=qA(t,n,0,4,0);return r>=2&&n[0]===35&&n[1]===33?"#!":r===4?n.toString("hex"):null}catch{return null}finally{t!==void 0&&WA(t)}}function xo(e,t=process.platform){try{let n=dy(e);if(!n.isFile())return!1;if(t==="win32")return!0;if((n.mode&73)===0)return!1;let r=Rc(e);return r==="#!"||r!==null&&r$.has(r)}catch{return!1}}function i$(e){if(/\.[A-Za-z0-9]+$/.test(e))return[e];let t=(process.env.PATHEXT??".COM;.EXE;.BAT;.CMD").split(";").filter(Boolean);return[e,...t.map(n=>e+n.toLowerCase())]}function or(e,t,n,r=process.platform){if(!n$.test(e))return!1;let o=r==="win32";if(e.includes("/"))return xo(t$(t??process.cwd(),e),r);if(!n)return!1;let s=o?i$(e):[e];for(let i of n.split(o?";":":"))if(!(!i||!e$(i))){for(let a of s)if(xo(gi(i,a),r))return!0}return!1}var a$=/^eval \$'([^\s'()=]+) \(\) /,l$=/^([^\s'"()=]+) \(\) \{$/,c$=/^alias -- ([^\s=]+)=(.*)$/,u$=/^# (?:Shell Options|Aliases|Shopt|Check for |Shadow )/,f$=/^export PATH=(.*)$/,d$=/^(?:--colou?r(?:=\S+)?|-G)$/;function fy(e){return e.length>=2&&e.startsWith("'")&&e.endsWith("'")?e.slice(1,-1).replace(/'\\''/g,"'"):e.length>=2&&e.startsWith('"')&&e.endsWith('"')?e.slice(1,-1):e}function m$(e,t){let n="";for(let r of e.split(`
|
|
146
|
+
`)){let o=f$.exec(r);if(o&&n!=="# Functions"){let s=fy(o[1].trim());/[$`\\]/.test(s)||t.paths.push(s);continue}if(r.startsWith("# ")&&(n!=="# Functions"||u$.test(r))){n=r;continue}if(n==="# Functions"){let s=a$.exec(r)??l$.exec(r);s&&t.functions.add(s[1])}else if(n==="# Aliases"){let s=c$.exec(r);s&&t.aliases.set(s[1],fy(s[2].trim()))}}}function Tc(e){return e?.code==="ENOENT"}function my(e){let t={functions:new Set,aliases:new Map,paths:[],uncertain:!1},n=gi(e||gi(QA(),".claude"),"shell-snapshots"),r=[];try{for(let o of YA(n)){if(!o.startsWith("snapshot-")||!o.endsWith(".sh"))continue;let s=gi(n,o);try{let i=dy(s);i.isFile()&&r.push({path:s,mtime:i.mtimeMs,size:i.size})}catch(i){Tc(i)||(t.uncertain=!0)}}}catch(o){return Tc(o)||(t.uncertain=!0),t}r=r.sort((o,s)=>s.mtime-o.mtime).slice(0,o$);for(let o of r)try{if(o.size>s$)throw new Error("snapshot too large");m$(XA(o.path,"utf8"),t)}catch(s){Tc(s)||(t.uncertain=!0)}return t}function py(e,t){if(t.uncertain||t.functions.has(e))return!0;let n=t.aliases.get(e);if(n===void 0)return!1;let r=n.trim().split(/\s+/);return r[0]!==e||!r.slice(1).every(o=>d$.test(o))}var b$="exec-probe.json",w$=6e4;function _$(){return gy(w(),b$)}function S$(e){try{let t=JSON.parse(hy(e,"utf8"));if(t==null||typeof t!="object")return null;let n=t;return typeof n.key!="string"||typeof n.ok!="boolean"?null:{key:n.key,ok:n.ok,at:typeof n.at=="number"?n.at:0,skipped:typeof n.skipped=="number"&&n.skipped>=0?n.skipped:0}}catch{return null}}function x$(e,t){try{h$(gy(e,".."),{recursive:!0,mode:448});let n=`${e}.${process.pid}.tmp`;k$(n,JSON.stringify(t),{mode:384}),g$(n,e)}catch{}}function v$(e){try{return p$(e,["--native-check"],{encoding:"utf8",timeout:2e3,maxBuffer:1024,stdio:["ignore","pipe","ignore"],windowsHide:!0}).startsWith("tokmizer-native ")}catch{return!1}}function E$(e,t){try{let r=hy(e,"utf8").split(`
|
|
147
|
+
`,1)[0].slice(2).trim().split(/\s+/),o=r[0]??"";return o==="/usr/bin/env"?or(r[1]??"",void 0,t):xo(o)}catch{return!1}}function T$(e,t,n){try{let r=y$(e);return[e,r.size,r.mtimeMs,r.ino,r.mode,t?n??"":""].join("|")}catch{return`${e}|missing`}}function Ac(e,t=process.platform,n=process.env.PATH,r=_$(),o=Date.now()){let s=t!=="win32"&&Rc(e)==="#!",i=T$(e,s,n),a=S$(r);if(a?.key===i&&(a.ok||o-a.at<w$))return a.ok;let l=xo(e,t)&&(s?E$(e,n):v$(e));return x$(r,{key:i,ok:l,at:o,skipped:(a?.skipped??0)+(l?0:1)}),l}var $$=new Set(["tkr","tkr-exec","token","claude","cd","export","source","echo","mkdir","rm","mv","cp","chmod","ln","true","false",":","test","[","exit","return","nohup","sudo","doas","env"]),C$=new Set(["for","while","until","if","then","else","elif","fi","do","done","case","esac","select","function","time","coproc","in","!","[[","]]","{","}",".","declare","typeset","local","readonly","unset","set","shift","trap","wait","read","eval","exec","break","continue","pushd","popd","dirs","alias","unalias","hash","ulimit","umask","getopts","let","shopt","builtin","command","compgen","complete","disown","suspend","jobs","fg","bg","kill","history","fc","bind","enable","caller","type","printf","pwd","times","logout","mapfile","readarray","help","which","print","whence","where","autoload","zmodload","setopt","unsetopt","emulate","noglob","rehash","functions","bindkey","zle","vared","sched","limit","unlimit","zstyle","zparseopts","ttyctl"]),yy=new Set(["sh","bash","zsh","dash","ksh","fish","python","python3","python2","node","ruby","perl","php","awk","sed","deno","bun"]),ky="(?:dev|start|serve|watch|preview)",O$=new RegExp(`^(?:\\S*/)?(?:bun\\s+(?:install|i|add|remove|rm|update|outdated|audit|test|build|pm|x)(?:\\s|$)|bun\\s+run\\s+(?!${ky}(?:\\s|$))[A-Za-z0-9:_-]+(?:\\s|$)|deno\\s+(?:test|lint|fmt|check|compile|install|info|doc|bench|outdated)(?:\\s|$)|deno\\s+task\\s+(?!${ky}(?:\\s|$))[A-Za-z0-9:_-]+(?:\\s|$)|php\\s+-l(?:\\s|$)|php\\s+(?:\\S*/)?(?:phpunit|pest|paratest|phpstan|pint|ecs|php-cs-fixer|psalm|rector|run-tests\\.php)(?:\\s|$)|php\\s+artisan\\s+(?!(?:serve|tinker|queue:work|queue:listen|horizon|octane:start|reverb:start|schedule:work|pail|dev)(?:\\s|$))\\S)`),P$=/(?:^|\s)--watch(?:\s|=|$)/;function I$(e){return O$.test(e)&&!P$.test(e)}var N$=/^((?:\S*\/)?(sh|bash|zsh|dash|ksh|fish)\s+(-[elux]*c[elux]*)\s+)(['"])/,D$=/[()$]|(?:^|[;&|\n]\s*)(?:and|or|not|begin|end|if|else|switch|case|while|for|function|return)(?:\s|;|$)/,Ey=3;function Ty(e){let t=N$.exec(e);if(!t)return null;let n=t[2]==="fish";if(n&&t[3]!=="-c")return null;let r=t[4],o=t[1].length+1,s=e.indexOf(r,o);if(s<=o)return null;let i=e.slice(s+1);if(i&&!/^\s/.test(i))return null;let a=e.slice(o,s);return r==='"'&&/[$`\\!]/.test(a)||n&&D$.test(a)?null:{script:a,start:o,end:s,quote:r}}var M$=new Set(["cd","export","set","unset","source",".","true",":","pushd","popd"]);function F$(e){return ir(e).filter(n=>{if(n.kind!=="cmd"||n.unsafe)return!1;let r=Ay(n.text);return r!==""&&!M$.has(r)&&!Pc.test(r)}).length>1}function H$(e,t,n,r,o){if(n>=Ey)return null;let s=Ty(e);if(!s)return null;let{script:i,start:a,end:l,quote:c}=s,u=[],f=$y(i,t,n+1,r,h=>u.push(h));if(f===i||c==='"'&&/["$`]/.test(f))return null;let d=c==="'"?f.replace(/'/g,"'\\''"):f,m=`${e.slice(0,a)}${d}${e.slice(l)}`,p=F$(i);if(o)for(let h of p?[e,...u]:u)o(h);return p?`${t} ${m}`:m}var by=/(?:^|\s)(?:--follow|-[0-9a-zA-Z]*f[a-zA-Z]*)(?:\s|=|$)/,L$=new Set(["docker","podman","kubectl","nerdctl","docker-compose","stern","flyctl"]);function j$(e,t){let n=bi(t);return n==="tail"||n==="journalctl"?by.test(e):n==="stern"?!0:L$.has(n)?/\blogs?\b/.test(e)&&by.test(e):!1}var Pc=/^[A-Za-z_][A-Za-z0-9_]*\+?=/,B$=/^[A-Za-z_][A-Za-z0-9_-]*\s*\(\s*\)/,U$=/(?:^|[;&|\n({])\s*[A-Za-z_][A-Za-z0-9_-]*\s*\(\s*\)/;function bi(e){let t=e.lastIndexOf("/");return t===-1?e:e.slice(t+1)}function Ry(e){let t=new Array(e.length).fill(!1),n=[],r=0;for(;r<e.length;){let o=e[r],s=e[r+1],i=n[n.length-1];if(i==="'"){o==="'"&&n.pop(),r+=1;continue}if(o==="\\"){if(s===void 0)return null;r+=2;continue}if(i==="$'"){o==="'"&&n.pop(),r+=1;continue}if(o==="$"&&(s==="("||s==="{")){n.push(s==="("?")":"}"),r+=2;continue}if(o==="`"){i==="`"?n.pop():n.push("`"),r+=1;continue}if(i==='"'){o==='"'&&n.pop(),r+=1;continue}if(o==="$"&&s==="'"){n.push("$'"),r+=2;continue}if(o==="'"||o==='"'){n.push(o),r+=1;continue}if(o==="("||o==="{"&&i==="}"){n.push(o==="("?")":"}"),r+=1;continue}if(o===i){n.pop(),r+=1;continue}if(o===")"&&i===void 0)return null;t[r]=i===void 0,r+=1}return n.length===0?t:null}function wy(e){let t=Ry(e);if(!t)return!0;for(let n=0;n<e.length;n++)if(t[n]&&e[n]===">")return!0;return!1}function ir(e){let t=Ry(e);if(!t)return[{kind:"cmd",text:e,unsafe:!0}];let n=[],r="",o=0,s=()=>{r.length>0&&(n.push({kind:"cmd",text:r}),r="")},i=(a,l)=>{s(),n.push({kind:"sep",text:a}),o+=l};for(;o<e.length;){let a=e[o],l=e[o+1];if(t[o]){if(a===">"&&l==="|"){r+=">|",o+=2;continue}if(a==="&"&&l==="&"){i("&&",2);continue}if(a==="&"&&l!==">"){let c=r.replace(/\s+$/,""),u=c[c.length-1];if(u!==">"&&u!=="<"&&u!=="&"){i("&",1);continue}}if(a==="|"&&l==="|"){i("||",2);continue}if(a==="|"&&l==="&"){i("|&",2);continue}if(a===";"&&l===";"){let c=e[o+2]==="&";i(c?";;&":";;",c?3:2);continue}if(a===";"||a===`
|
|
148
|
+
`||a==="|"){i(a,1);continue}}r+=a,o+=1}return s(),n}function Ay(e){return e.trim().split(/\s+/)[0]??""}function Je(e,t=process.platform){try{let n=vy(R$(import.meta.url)),r=t==="win32",o=e&&e!=="claude-code"&&e!=="codex"&&!r?`TOKMIZER_HOST=${e} `:"";if(r&&(!e||e==="claude-code")){let a=U(n,"..","bin","tkr-exec.exe");if(ki(a))return Ac(a,t)?`'${a.replace(/\\/g,"/").replace(/'/g,"'\\''")}'`:null}let s=U(n,"..","bin","tkr-exec");if(!r&&ki(s))return Ac(s,t)?`${o}'${s.replace(/'/g,"'\\''")}'`:null;if(xe()){let a=r?process.execPath.replace(/\\/g,"/"):process.execPath;return`${o}'${a.replace(/'/g,"'\\''")}' exec`}let i=U(n,"..","bin","tkr-exec.js");return ki(i)?`${o}node '${i.replace(/'/g,"'\\''")}'`:null}catch{return null}}function Ic(e,t="tkr-exec",n=()=>!0,r){return $y(e,t,0,n,r)}function $y(e,t,n,r,o){if(e.includes("<<")||U$.test(e))return e;let s=ir(e),i=[];for(let a=0;a<s.length;a++){let l=s[a];if(l.kind==="sep"||l.unsafe){i.push(l.text);continue}let c=l.text.trim();if(!c){i.push(l.text);continue}let u=Ay(c),f=s[a+1],d=f?.kind==="sep"&&(f.text==="|"||f.text==="|&"),m=f?.kind==="sep"&&f.text==="&",p=!d&&!m&&!wy(l.text)&&!l.text.includes("<(")&&!l.text.includes(">(")?H$(c,t,n,r,o):null;if(p!==null){i.push(`${l.text.match(/^\s*/)?.[0]??""}${p}${l.text.match(/\s*$/)?.[0]??""}`);continue}if(c===t||c.startsWith(t)&&/^\s/.test(c.slice(t.length))||$$.has(u)||C$.has(u)||(yy.has(u)||yy.has(bi(u)))&&!I$(c)||Pc.test(u)||u.startsWith("(")||u.startsWith("#")||u.startsWith("<")||u.startsWith(">")||B$.test(c)||j$(c,u)||u.endsWith(")")||d||m||wy(l.text)||l.text.includes("<(")||l.text.includes(">(")||u==="node"&&c.includes("tkr-exec.js")||!r(u)){i.push(l.text);continue}let h=l.text.match(/^\s*/)?.[0]??"",y=l.text.match(/\s*$/)?.[0]??"";o?.(c),i.push(`${h}${t} ${c}${y}`)}return i.join("")}var z$=new Set(["command","workdir","timeout_ms","yield_time_ms","max_output_tokens","shell","login","tty","description"]),J$=new Set(["cd","cat","head","tail","ls","tree","find","grep","rg","wc","nl","sort","cut","diff","stat","file","du","df","ps","jq","yq","pwd","which"]),G$=new Set(["log","diff","show","status","blame","ls-files","rev-parse","describe","shortlog"]),K$={find:/^-(?:delete|exec|execdir|ok|okdir|fprint|fls)/,sort:/^(?:-[^-]*o|--output|--compress-program)/,rg:/^(?:--pre|-[^-]*z|--search-zip)/,yq:/^(?:-[^-]*[is]|--inplace|--split-exp)/,file:/^(?:-C|--compile)/,tree:/^(?:-o|--output|-R$|-H$)/,git:/^(?:--output|--ext-diff|--textconv|-c$|--exec-path|--git-dir|--work-tree)/,eslint:/^--fix/},yi=["test","run test","run build","run lint","run typecheck"],Z$={npm:new Set(yi),pnpm:new Set([...yi,"build","lint","typecheck"]),yarn:new Set([...yi,"build","lint","typecheck"]),bun:new Set(yi),cargo:new Set(["test","build","check","clippy"]),go:new Set(["test","build","vet"]),mvn:new Set(["test","compile","verify"]),gradle:new Set(["test","build","check"]),dotnet:new Set(["test","build"])},W$=new Set(["pytest","tsc","vitest","jest","eslint","mypy"]);function Cy(e,t,n=0){if(/\$|`|<\(|>\(|\\\r?\n/.test(e)||/>/.test(e.replace(/2>&1|[12]?>\s*\/dev\/null/g,"")))return!1;for(let r of ir(e)){if(r.kind==="sep")continue;if(r.unsafe)return!1;let o=n<Ey?Ty(r.text.trim()):null;if(o){if(!Cy(o.script,t,n+1))return!1;continue}let s=r.text.trim().split(/\s+/).filter(Boolean).map(c=>c.replace(/['"\\]/g,""));if(s.length===0)continue;if(s.some(c=>Pc.test(c)))return!1;let i=bi(s[0]);if(i!==s[0])return!1;let a=K$[i];if(a&&s.slice(1).some(c=>a.test(c)))return!1;if((i==="git"?G$.has(s[1]??""):J$.has(i))||t&&W$.has(i))continue;let l=t?Z$[i]:void 0;if(!(l&&(l.has(s[1]??"")||s[1]==="run"&&l.has(`run ${s[2]??""}`))))return!1}return!0}function Oy(e,t,n=Je(t),r=ke,o=_i(),s=process.env.PATH){if(!be(e)||e.tool_name!=="Bash")return null;let i=e.tool_input;if(!be(i)||i.run_in_background)return null;let a=i.command;if(typeof a!="string"||!a||t==="codex"&&Object.keys(i).some(m=>!z$.has(m)))return null;let l=typeof e.cwd=="string"&&e.cwd?e.cwd:i.workdir,c=typeof l=="string"&&l?l:void 0,u=typeof e.session_id=="string"&&e.session_id?e.session_id:"unknown",f=typeof e.permission_mode=="string"?e.permission_mode:void 0,d=pt(a,{host:t,sessionId:u,cwd:c,claudeDirs:o,pathEnv:s,permissionMode:f},n,r);return d?JSON.stringify({hookSpecificOutput:t==="codex"?{hookEventName:"PreToolUse",permissionDecision:"allow",updatedInput:{...i,command:d}}:{hookEventName:"PreToolUse",updatedInput:{...i,command:d}}}):null}function V$(e,t){if(!ki(e))return"missing";try{let n=Cc(e,"utf8");return JSON.parse(t?Py(n):n)}catch{return"unreadable"}}function Py(e){let t="",n=!1;for(let r=0;r<e.length;r++){let o=e[r];if(n){t+=o,o==="\\"?t+=e[++r]??"":o==='"'&&(n=!1);continue}if(o==='"')n=!0,t+=o;else if(o==="/"&&e[r+1]==="/"){for(;r<e.length&&e[r]!==`
|
|
149
149
|
`;)r++;t+=`
|
|
150
|
-
`}else if(o==="/"&&e[r+1]==="*"){if(r=e.indexOf("*/",r+2),r===-1)return"";r+=1}else t+=o}return t.replace(/,(\s*[}\]])/g,"$1")}function wi(e){let t=[],n=A$(e);for(;;){t.push(n);let r=vy(n);if(r===n)return t;n=r}}function q$(){let e=process.platform==="darwin"?"/Library/Application Support/ClaudeCode":process.platform==="win32"?"C:\\Program Files\\ClaudeCode":"/etc/claude-code",t=[U(e,"managed-settings.json")];try{for(let n of Oc(U(e,"managed-settings.d")))n.endsWith(".json")&&t.push(U(e,"managed-settings.d",n))}catch{return t}return t}function Eo(e,t,n,r){let o=[];for(let s of e){let i=V$(s,t);if(i!=="missing"&&(i==="unreadable"||!be(i)||!n(i,o)))return"unreadable"}return{matchers:o,complete:r}}function vo(e){return e===void 0?[]:Array.isArray(e)?e.filter(t=>typeof t=="string"):null}function _i(){return{projectDir:process.env.CLAUDE_PROJECT_DIR,configDir:process.env.CLAUDE_CONFIG_DIR}}function Y$(e,t){let n=m=>[U(m,"settings.json"),U(m,"settings.local.json")],r=m=>n(U(m,".claude")),o=U(sr(),".claude"),s=[[q$(),"managed"],[n(t.configDir||o),"loaded"],[t.configDir?n(o):[],"extra"],[t.projectDir?r(t.projectDir):[],"project"],[wi(e).flatMap(r),"extra"]],i=[],a={managed:!1,loaded:!1,project:!1,extra:!1},l=!1,c="managed",u=(m,p)=>{let
|
|
150
|
+
`}else if(o==="/"&&e[r+1]==="*"){if(r=e.indexOf("*/",r+2),r===-1)return"";r+=1}else t+=o}return t.replace(/,(\s*[}\]])/g,"$1")}function wi(e){let t=[],n=A$(e);for(;;){t.push(n);let r=vy(n);if(r===n)return t;n=r}}function q$(){let e=process.platform==="darwin"?"/Library/Application Support/ClaudeCode":process.platform==="win32"?"C:\\Program Files\\ClaudeCode":"/etc/claude-code",t=[U(e,"managed-settings.json")];try{for(let n of Oc(U(e,"managed-settings.d")))n.endsWith(".json")&&t.push(U(e,"managed-settings.d",n))}catch{return t}return t}function Eo(e,t,n,r){let o=[];for(let s of e){let i=V$(s,t);if(i!=="missing"&&(i==="unreadable"||!be(i)||!n(i,o)))return"unreadable"}return{matchers:o,complete:r}}function vo(e){return e===void 0?[]:Array.isArray(e)?e.filter(t=>typeof t=="string"):null}function _i(){return{projectDir:process.env.CLAUDE_PROJECT_DIR,configDir:process.env.CLAUDE_CONFIG_DIR}}function Y$(e,t){let n=m=>[U(m,"settings.json"),U(m,"settings.local.json")],r=m=>n(U(m,".claude")),o=U(sr(),".claude"),s=[[q$(),"managed"],[n(t.configDir||o),"loaded"],[t.configDir?n(o):[],"extra"],[t.projectDir?r(t.projectDir):[],"project"],[wi(e).flatMap(r),"extra"]],i=[],a={managed:!1,loaded:!1,project:!1,extra:!1},l=!1,c="managed",u=(m,p)=>{let h=m.permissions;if(c==="managed"&&(m.allowManagedPermissionRulesOnly===!0||be(h)&&h.allowManagedPermissionRulesOnly===!0)&&(l=!0),h===void 0)return!0;if(!be(h))return!1;for(let y of["deny","ask","allow"]){let T=vo(h[y]);if(!T)return!1;for(let E of T){let x=/^\s*Bash\s*(?:\(([\s\S]*)\))?\s*$/.exec(E);x&&(y!=="allow"?p.push(cn((x[1]??"*").replace(/:\*$/," *"))):x[1]===void 0||x[1].trim()==="*"?a[c]=!0:i.push(cn(x[1].replace(/:\*$/," *"))))}}return!0},f=[];for(let[m,p]of s){c=p;let h=Eo(m,!1,u,!0);if(h==="unreadable")return"unreadable";f.push(...h.matchers)}let d=a.managed||a.loaded&&!l;return{matchers:[...f,...d?[]:i],complete:!0,allow:i,allowsEverything:d}}function X$(e){let t=[U(sr(),".cursor","cli-config.json"),...wi(e).map(n=>U(n,".cursor","cli.json"))];return Eo(t,!0,(n,r)=>{let o=n.permissions;if(o===void 0)return!0;if(!be(o))return!1;let s=vo(o.deny);if(!s)return!1;for(let i of s){let a=/^\s*Shell\s*(?:\(([\s\S]*)\))?\s*$/.exec(i);if(!a)continue;let l=a[1]??"*",c=l.indexOf(":");r.push(cn(c===-1?`${l} *`:`${l.slice(0,c)} ${l.slice(c+1)}`))}return!0},!1)}function Q$(){return process.platform==="darwin"?"/Library/Application Support/GeminiCli":process.platform==="win32"?"C:\\ProgramData\\gemini-cli":"/etc/gemini-cli"}var Iy=/^\s*(?:run_shell_command|ShellTool)\s*(?:\(([\s\S]*)\))?\s*$/;function eC(e,t){let n=e.tools;if(n!==void 0&&!be(n))return!1;let r=[vo(e.excludeTools),vo(be(n)?n.exclude:void 0)];for(let o of r){if(!o)return!1;for(let s of o){let i=Iy.exec(s);i&&t.push(cn(i[1]===void 0?"*":`${i[1]}*`))}}return!0}function _y(e){try{return JSON.parse(e)}catch{return null}}function tC(e){let t=e.trim();if(t.startsWith('"""')||t.startsWith("'''"))return null;if(t.startsWith("[")){if(!/\]\s*(?:#.*)?$/.test(t))return null;let n=[];for(let r of t.matchAll(/"((?:\\.|[^"\\])*)"|'([^']*)'/g)){let o=r[2]??_y(`"${r[1]}"`);if(o===null)return null;n.push(o)}return n}if(t.startsWith('"')){let n=/^"((?:\\.|[^"\\])*)"/.exec(t);return n?_y(`"${n[1]}"`):null}if(t.startsWith("'")){let n=/^'([^']*)'/.exec(t);return n?n[1]:null}return t.replace(/\s*#.*$/,"")}function nC(e,t){for(let n of e.split(/^\s*\[\[\s*rule\s*\]\]\s*$/m).slice(1)){let r={};for(let l of n.split(/\r?\n/)){if(/^\s*\[/.test(l))break;let c=/^\s*([A-Za-z_]+)\s*=\s*(.*)$/.exec(l);if(!c)continue;let u=tC(c[2]);if(u===null)return!1;r[c[1]]=u}let o=r.decision;if(o!=="deny"&&o!=="ask_user"||!(r.toolName===void 0?["*"]:[r.toolName].flat()).some(l=>l==="*"||Iy.test(l)))continue;let i=r.commandPrefix===void 0?[]:[r.commandPrefix].flat(),a=[r.commandRegex,r.argsPattern].flat().filter(l=>typeof l=="string");if(i.length===0&&a.length===0){t.push(()=>!0);continue}for(let l of i)t.push(cn(`${l}*`));for(let l of a){let c;try{c=new RegExp(l)}catch{return!1}t.push(u=>c.test(JSON.stringify({command:u}))||Nc(c,u))}}return!0}function Sy(e){try{return Oc(e).filter(t=>t.endsWith(".toml")).map(t=>U(e,t))}catch{return[]}}function rC(e){let t=Q$(),n=[U(t,"system-defaults.json"),U(t,"settings.json"),process.env.GEMINI_CLI_SYSTEM_SETTINGS_PATH,process.env.GEMINI_CLI_SYSTEM_DEFAULTS_PATH,U(sr(),".gemini","settings.json"),...wi(e).map(o=>U(o,".gemini","settings.json"))].filter(o=>!!o),r=Eo(n,!0,eC,!1);if(r==="unreadable")return r;for(let o of[...Sy(U(sr(),".gemini","policies")),...Sy(U(t,"policies"))]){let s;try{s=Cc(o,"utf8")}catch{return"unreadable"}if(!nC(s,r.matchers))return"unreadable"}return r}function $c(e,t){if(e===void 0)return!0;if(typeof e=="string")return e!=="allow"&&t.push(()=>!0),!0;if(!be(e))return!1;for(let n of["bash","shell","*"]){let r=e[n];if(r!==void 0){if(typeof r=="string"){r!=="allow"&&t.push(()=>!0);continue}if(!be(r))return!1;for(let[o,s]of Object.entries(r))s!=="allow"&&t.push(cn(o.replace(/\?/g,"*")))}}return!0}function xy(e,t){if(e.permissions!==void 0||!$c(e.permission,t))return!1;for(let n of["agent","agents","mode"]){let r=e[n];if(r!==void 0){if(!be(r))return!1;for(let o of Object.values(r))if(be(o)&&(o.permissions!==void 0||!$c(o.permission,t)))return!1}}return!0}function oC(e){for(let t of e)for(let n of["agent","agents","mode","modes"]){let r;try{r=Oc(U(t,n))}catch{continue}for(let o of r)try{if(o.endsWith(".md")&&/permission/i.test(Cc(U(t,n,o),"utf8")))return!0}catch{return!0}}return!1}function sC(e){let t=U(process.env.XDG_CONFIG_HOME||U(sr(),".config"),"opencode"),n=wi(e),r=[t,...n.map(a=>U(a,".opencode"))];if(oC(r))return"unreadable";let o=["opencode.json","opencode.jsonc","config.json"],s=[...o.map(a=>U(t,a)),process.env.OPENCODE_CONFIG,...n.flatMap(a=>[...o.slice(0,2).map(l=>U(a,l)),...o.slice(0,2).map(l=>U(a,".opencode",l))])].filter(a=>!!a),i=Eo(s,!0,xy,!0);if(i==="unreadable")return i;for(let a of[process.env.OPENCODE_CONFIG_CONTENT,process.env.OPENCODE_PERMISSION]){if(!a)continue;let l;try{l=JSON.parse(Py(a))}catch{return"unreadable"}if(!(a===process.env.OPENCODE_PERMISSION?$c(l,i.matchers):be(l)&&xy(l,i.matchers)))return"unreadable"}return i}function iC(){return Eo([U(sr(),".gemini","antigravity-cli","settings.json")],!0,(e,t)=>{let n=e.permissions;if(n===void 0)return!0;if(!be(n))return!1;for(let r of["deny","ask"]){let o=vo(n[r]);if(!o)return!1;for(let s of o){let i=/^\s*command\s*\(([\s\S]*)\)\s*$/.exec(s);if(!i)continue;let a=i[1].trim();if(!a.startsWith("regex:")){t.push(cn(a==="*"?"*":`${a} *`));continue}let l;try{l=new RegExp(a.slice(6))}catch{return!1}t.push(c=>Nc(l,c))}}return!0},!1)}function be(e){return e!=null&&typeof e=="object"&&!Array.isArray(e)}function aC(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function lC(e){let t=e.trim().replace(/\s+/g," "),n=t.endsWith(" *")&&t.length>2,r=(n?t.slice(0,-2):t).split("*").map(aC).join("[\\s\\S]*");return new RegExp(`^${r}${n?"(?: [\\s\\S]*)?":""}(?= |$)`)}var cC=512;function uC(e){let t=e.replace(/['"\\]/g,"").split(/[\s;&|(){}<>`$]+/).filter(Boolean);return[t,t.map(bi)]}function Nc(e,t){if(e.test(t)||e.test(t.trim().replace(/\s+/g," ")))return!0;for(let n of uC(t)){if(n.length>cC)return!0;for(let r=0;r<n.length;r++)if(e.test(n.slice(r).join(" ")))return!0}return!1}function cn(e){let t=lC(e);return n=>Nc(t,n)}var fC={"claude-code":Y$,cursor:X$,"gemini-cli":rC,opencode:sC,antigravity:iC},dC=new Set(["codex"]),mC=/(?:^|[\s=:/~])\.(?:git|claude|vscode|idea|husky)(?=[/\s;|&)]|$)|(?:^|[\s=:/~])\.(?:bashrc|bash_profile|bash_login|bash_logout|profile|zshrc|zprofile|zshenv|zlogin|zlogout|gitconfig|gitmodules|ripgreprc|mcp\.json)(?![A-Za-z0-9_])/;function pC(e,t,n){let r=fC[e];return r?r(t??process.cwd(),n):{matchers:[],complete:!1}}function hC(e,t,n){return e==="unreadable"||mC.test(t.replace(/['"\\]/g,""))||e.matchers.some(r=>r(t))?!1:e.complete||Cy(t,!dC.has(n))}var gC=new Set(["default","acceptEdits","dontAsk"]);function yC(e,t){return t.host!=="claude-code"||t.permissionMode==="bypassPermissions"?!0:e!=="unreadable"&&e.allowsEverything===!0&&gC.has(t.permissionMode??"")}function kC(e,t){let n="pathEnv"in e?e.pathEnv:process.env.PATH,r;return o=>e.host!=="claude-code"?or(o,e.cwd,n):(r??=my(t.configDir),!or(o,e.cwd,n)&&!r.paths.some(s=>or(o,e.cwd,s))?!1:o.includes("/")||!py(o,r))}function pt(e,t,n,r){if(!n||/["\\$`;&|<>(){}]|'\\''/.test(n))return null;let o=t.claudeDirs??_i(),s=pC(t.host,t.cwd,o),i=hC(s,e,t.host)?Ic(e,n,kC(t,o)):e;return i!==e&&s!=="unreadable"&&(s.matchers.some(a=>a(i))||(s.allow??[]).some(a=>a(i)&&!a(e)))&&(i=e),r(t.sessionId,i!==e),i===e||!yC(s,t)?null:i}H();Fe();Qr();bc();Cs();import{existsSync as $C,writeFileSync as CC,appendFileSync as OC,statSync as PC,constants as Dy}from"node:fs";import{lstat as IC,open as NC}from"node:fs/promises";import{basename as DC,dirname as MC,isAbsolute as FC,join as jy}from"node:path";H();import{createHash as bC}from"node:crypto";import{appendFileSync as wC,chmodSync as _C,mkdirSync as SC,readFileSync as xC,rmSync as vC,statSync as EC}from"node:fs";import{join as Ny}from"node:path";var TC=256*1024,RC=80;function AC(e){let t=e.replace(/[^A-Za-z0-9._-]/g,"-").replace(/\.\./g,"-").slice(0,80)||"default";return Ny(w(),"sessions",`${t}.seen`)}function Dc(e){return e.replace(/[\t\r\n]+/g," ").trim().slice(0,RC)}function Mc(e,t,n,r){try{let o=AC(e),s=Dc(t),i=bC("sha256").update(n).digest("hex").slice(0,32),a="";try{a=xC(o,"utf8")}catch{}for(let l of a.split(`
|
|
151
151
|
`)){let[c,u,f]=l.split(" ");if(c===s&&u===i)return{cmd:f??""}}SC(Ny(w(),"sessions"),{recursive:!0,mode:448}),wC(o,`${s} ${i} ${Dc(r)}
|
|
152
152
|
`,{mode:384}),_C(o,384),EC(o).size>TC&&vC(o,{force:!0})}catch{}return null}function Fc(e,t){return`[same output as \`${Dc(e)}\` earlier in this session, unchanged, ~${Math.round(t/4)} tokens]`}$r();cs();var HC=new Set(["Read","Grep","Glob","Bash"]),Si=10*1024*1024,By=1024,LC=40,jC=25e3,BC=/^… \(?\d+ more lines omitted\)?$/,UC=/^\[tkr restore [0-9a-f]{8,64}\]$/,zC=/^\d+F \d+D(?: in .+\/)?:$|^\S.*\/ \(\d+(?:, \*\.[^)]+)?\): \S/,JC=/^… \(\d+ more lines omitted\)$/m,GC="[tkr: partial view; folded or omitted lines are not file text. Read with offset/limit for the exact lines before Edit or Write]";function KC(e){return BC.test(e)||UC.test(e)||e==="[YOLO: omitted]"}function Uy(e,t,n){if(!e||typeof e=="string")return t;if(e.file?.content!=null)return{...e,file:{...e.file,content:t}};if(e.content!=null)return{...e,content:t};if(e.output!=null)return{...e,output:t};if(e.stdout!=null||e.stderr!=null){let{persistedOutputPath:r,persistedOutputSize:o,...s}=e;return{...s,stdout:t,stderr:""}}if(Array.isArray(e.filenames)){let r=new Set(e.filenames),o=n==="Glob",s=t.split(`
|
|
153
153
|
`).filter(i=>r.has(i)||KC(i)||o&&zC.test(i));return{...e,filenames:s}}return t}function ZC(e,t,n){return JSON.stringify({...n?{systemMessage:n}:{},hookSpecificOutput:{hookEventName:"PostToolUse",updatedToolOutput:Uy(e.tool_response,t,e.tool_name)}})}var WC=100,jc=null;function VC(){let e=jc;return jc=null,e}function My(e){let t=Math.round(e/4);return t>=1e3?`${(t/1e3).toFixed(1)}K`:String(t)}function zy(e,t){try{if(Math.round((e-t)/4)<WC)return;let n=jy(w(),"first-save");if($C(n))return;CC(n,String(Date.now())),jc=`Tokmizer just optimized its first command output here: ~${My(e)} tokens down to ~${My(t)}. Watch it add up: /tkr-gain`}catch{}}function Fy(e){return e?typeof e=="string"?e:e.file?.content!=null?e.file.content:e.content!=null?e.content:e.output!=null?e.output:e.stdout!=null||e.stderr!=null?[e.stdout??"",e.stderr??""].filter(Boolean).join(`
|
|
154
154
|
`):Array.isArray(e.filenames)?e.filenames.join(`
|
|
155
155
|
`):null:""}var qC=64*1024;function YC(e,t){try{if(!t||typeof t!="object")return;let n=jy(w(),"drift.jsonl");try{if(PC(n).size>qC)return}catch{}let r=Object.keys(t).slice(0,12);OC(n,`${JSON.stringify({t:Math.floor(Date.now()/1e3),tool:e,keys:r})}
|
|
156
156
|
`)}catch{}}function XC(e){let t=e.tool_name??"tool",n=e.tool_input??{};return n.command?n.command.split(`
|
|
157
|
-
`)[0].trim().slice(0,200):n.file_path?`${t.toLowerCase()} ${n.file_path}`:n.pattern?`${t.toLowerCase()} ${n.pattern}`:n.path?`${t.toLowerCase()} ${n.path}`:t.toLowerCase()}var QC=/'(?:[A-Za-z]:)?\/[^']*\/(?:tkr-exec(?:\.exe|\.js)?'|tkr(?:\.exe)?' exec)(?:\\'')?(?:\s|$)/,e1=/;|\|\||\n|(?<![>&|])&(?![&>])/,t1=new Set(["cd","export","set","unset","true",":"]),n1=/^(?:\S*\/)?(?:sh|bash|zsh|dash|ksh)\s+-[elux]*c[elux]*\s+'([^']*)'$/,r1=/(?:^|[\s;&|(])(?:[A-Za-z]:)?\/\S*\/tkr-exec(?:\.exe|\.js)?\s|(?:^|[;&|(\n])\s*(?:\S*\/)?tkr-exec(?:\.exe|\.js)?\s/;function Jy(e){return QC.test(e)||r1.test(e)}function Gy(e,t,n=0){let r=ir(e);for(let o=0;o<r.length;o++){let s=r[o];if(s.kind==="sep")continue;let i=s.text.trim();if(!i||i===t)continue;let a=r[o+1];if(a?.kind==="sep"&&(a.text==="|"||a.text==="|&")||t1.has(i.split(/\s+/)[0]))continue;let l=n<3?n1.exec(i):null;if(!(l&&Gy(l[1],t,n+1)))return!1}return!0}function o1(e){let t=[],n="",r=!1;for(let o=0;o<e.length;o++){let s=e[o];if(s==="'"){let i=e.indexOf("'",o+1);if(i===-1)return null;n+=e.slice(o+1,i),r=!0,o=i}else if(s==='"'){let i=o+1;for(;i<e.length&&e[i]!=='"';i++)e[i]==="\\"&&/["\\$`]/.test(e[i+1]??"")&&i++,n+=e[i];if(i>=e.length)return null;r=!0,o=i}else if(s==="\\"){if(o+1>=e.length)return null;n+=e[++o],r=!0}else/\s/.test(s)?(r&&t.push(n),n="",r=!1):(n+=s,r=!0)}return r&&t.push(n),t.length>0?t:null}function Hy(e){let t="";for(let n=0;n<e.length;n++){let r=e[n];if(t==="'"){r==="'"&&(t="");continue}if(r==="\\"){n++;continue}if(r==="$"||r==="`")return!0;r==='"'?t=t?"":'"':r==="'"&&!t&&(t="'")}return!1}async function s1(e){if(!e||typeof e!="object"||e.persistedOutputPath==null)return;let{stdout:t,persistedOutputPath:n,persistedOutputSize:r}=e;if(typeof t!="string"||typeof n!="string"||typeof r!="number"||!Number.isFinite(r))return null;if(!(Buffer.byteLength(t,"utf8")>=r||t.length>=r)){if(!t||e.stderr!=null&&e.stderr!==""||e.interrupted===!0||e.isImage===!0||!FC(n)||DC(MC(n))!=="tool-results")return null;try{let o=await IC(n);if(!o.isFile()||o.size>Si)return null;let s=await NC(n,Dy.O_RDONLY|(Dy.O_NOFOLLOW??0));try{let i=await s.stat();if(!i.isFile()||i.size>Si||i.size!==o.size)return null;let a=Buffer.alloc(i.size),{bytesRead:l}=await s.read(a,0,i.size,0);if(l!==i.size)return null;let c=a.toString("utf8");return a.length!==r&&c.length!==r?null:c.startsWith(t)?c:null}finally{await s.close()}}catch{return null}}}function i1(e,t){if(!t||typeof t!="object"||typeof t.stdout!="string"||t.stderr!=null&&typeof t.stderr!="string"||t.interrupted===!0||t.isImage===!0||t.backgroundTaskId!=null||e1.test(e)||Hy(e))return null;let n=[];if(Ic(e,"tkr-exec",()=>!0,o=>n.push(o)),n.length!==1||Hy(n[0])||!Gy(e,n[0])||ir(e).some(o=>o.kind==="sep"&&o.text!=="&&"&&o.text!=="|"&&o.text!=="|&"))return null;let r=o1(n[0]);return r?{argv:r,stdout:t.stdout,stderr:t.stderr??"",exitCode:t.returnCodeInterpretation!=null?1:0}:null}async function a1(e,t,n,r,o){let{processCapturedOutput:s}=await Promise.resolve().then(()=>(Ec(),cy)),i=null,a=
|
|
158
|
-
`),d=Buffer.byteLength(f,"utf8");if(o==null&&c.filterId!=null&&t.session_id&&d>=By){let
|
|
159
|
-
`)[0]??"");if(
|
|
157
|
+
`)[0].trim().slice(0,200):n.file_path?`${t.toLowerCase()} ${n.file_path}`:n.pattern?`${t.toLowerCase()} ${n.pattern}`:n.path?`${t.toLowerCase()} ${n.path}`:t.toLowerCase()}var QC=/'(?:[A-Za-z]:)?\/[^']*\/(?:tkr-exec(?:\.exe|\.js)?'|tkr(?:\.exe)?' exec)(?:\\'')?(?:\s|$)/,e1=/;|\|\||\n|(?<![>&|])&(?![&>])/,t1=new Set(["cd","export","set","unset","true",":"]),n1=/^(?:\S*\/)?(?:sh|bash|zsh|dash|ksh)\s+-[elux]*c[elux]*\s+'([^']*)'$/,r1=/(?:^|[\s;&|(])(?:[A-Za-z]:)?\/\S*\/tkr-exec(?:\.exe|\.js)?\s|(?:^|[;&|(\n])\s*(?:\S*\/)?tkr-exec(?:\.exe|\.js)?\s/;function Jy(e){return QC.test(e)||r1.test(e)}function Gy(e,t,n=0){let r=ir(e);for(let o=0;o<r.length;o++){let s=r[o];if(s.kind==="sep")continue;let i=s.text.trim();if(!i||i===t)continue;let a=r[o+1];if(a?.kind==="sep"&&(a.text==="|"||a.text==="|&")||t1.has(i.split(/\s+/)[0]))continue;let l=n<3?n1.exec(i):null;if(!(l&&Gy(l[1],t,n+1)))return!1}return!0}function o1(e){let t=[],n="",r=!1;for(let o=0;o<e.length;o++){let s=e[o];if(s==="'"){let i=e.indexOf("'",o+1);if(i===-1)return null;n+=e.slice(o+1,i),r=!0,o=i}else if(s==='"'){let i=o+1;for(;i<e.length&&e[i]!=='"';i++)e[i]==="\\"&&/["\\$`]/.test(e[i+1]??"")&&i++,n+=e[i];if(i>=e.length)return null;r=!0,o=i}else if(s==="\\"){if(o+1>=e.length)return null;n+=e[++o],r=!0}else/\s/.test(s)?(r&&t.push(n),n="",r=!1):(n+=s,r=!0)}return r&&t.push(n),t.length>0?t:null}function Hy(e){let t="";for(let n=0;n<e.length;n++){let r=e[n];if(t==="'"){r==="'"&&(t="");continue}if(r==="\\"){n++;continue}if(r==="$"||r==="`")return!0;r==='"'?t=t?"":'"':r==="'"&&!t&&(t="'")}return!1}async function s1(e){if(!e||typeof e!="object"||e.persistedOutputPath==null)return;let{stdout:t,persistedOutputPath:n,persistedOutputSize:r}=e;if(typeof t!="string"||typeof n!="string"||typeof r!="number"||!Number.isFinite(r))return null;if(!(Buffer.byteLength(t,"utf8")>=r||t.length>=r)){if(!t||e.stderr!=null&&e.stderr!==""||e.interrupted===!0||e.isImage===!0||!FC(n)||DC(MC(n))!=="tool-results")return null;try{let o=await IC(n);if(!o.isFile()||o.size>Si)return null;let s=await NC(n,Dy.O_RDONLY|(Dy.O_NOFOLLOW??0));try{let i=await s.stat();if(!i.isFile()||i.size>Si||i.size!==o.size)return null;let a=Buffer.alloc(i.size),{bytesRead:l}=await s.read(a,0,i.size,0);if(l!==i.size)return null;let c=a.toString("utf8");return a.length!==r&&c.length!==r?null:c.startsWith(t)?c:null}finally{await s.close()}}catch{return null}}}function i1(e,t){if(!t||typeof t!="object"||typeof t.stdout!="string"||t.stderr!=null&&typeof t.stderr!="string"||t.interrupted===!0||t.isImage===!0||t.backgroundTaskId!=null||e1.test(e)||Hy(e))return null;let n=[];if(Ic(e,"tkr-exec",()=>!0,o=>n.push(o)),n.length!==1||Hy(n[0])||!Gy(e,n[0])||ir(e).some(o=>o.kind==="sep"&&o.text!=="&&"&&o.text!=="|"&&o.text!=="|&"))return null;let r=o1(n[0]);return r?{argv:r,stdout:t.stdout,stderr:t.stderr??"",exitCode:t.returnCodeInterpretation!=null?1:0}:null}async function a1(e,t,n,r,o){let{processCapturedOutput:s}=await Promise.resolve().then(()=>(Ec(),cy)),i=null,a=h=>{i=h},l={...process.env};t.session_id?l.CLAUDE_CODE_SESSION_ID=t.session_id:delete l.CLAUDE_CODE_SESSION_ID;let c=await s({argv:e.argv,stdout:e.stdout,stderr:e.stderr,exitCode:e.exitCode,truncated:!1,stderrTruncated:!1},{yolo:n,env:l,...r.resolver?{resolver:r.resolver}:{},deferAccounting:a,cwd:t.cwd||(r.inferCwd===!1?void 0:process.cwd())}),u=i,f=[e.stdout,e.stderr].filter(Boolean).join(`
|
|
158
|
+
`),d=Buffer.byteLength(f,"utf8");if(o==null&&c.filterId!=null&&t.session_id&&d>=By){let h=Mc(t.session_id,t.agent_id??"main",f,(t.tool_input?.command??"").split(`
|
|
159
|
+
`)[0]??"");if(h){let y=Fc(h.cmd,d);if(n)return y;let{captureOriginalForRestore:T}=await Promise.resolve().then(()=>(Lc(),Hc));return T(f,y)}}let m=[c.stdout,c.stderr].filter(Boolean).join(`
|
|
160
160
|
`),p=c.stdout===e.stdout&&c.stderr===e.stderr;return o!=null&&(p||m.length>o)||(u&&(r.deferAccounting?r.deferAccounting(u):await u()),p)?null:(zy(d,Buffer.byteLength(m,"utf8")),m)}function l1(e){if(e==null||typeof e!="object"||Array.isArray(e))return!1;let t=e;if(t.session_id!=null&&typeof t.session_id!="string"||t.tool_name!=null&&typeof t.tool_name!="string")return!1;let n=t.tool_input;if(n==null)return!0;if(typeof n!="object"||Array.isArray(n))return!1;let r=n;return["command","file_path","pattern","path"].every(o=>r[o]==null||typeof r[o]=="string")}async function c1(e,t={}){if(!l1(e))return null;let n=e.tool_name==="Bash"&&!Jy(e.tool_input?.command??"")?await s1(e.tool_response):void 0;return n===null?null:n===void 0?Ly(e,t):Ly({...e,tool_response:{...e.tool_response,stdout:n}},t,jC)}async function Ly(e,t,n){let r=je();if(!e.tool_name||!HC.has(e.tool_name))return null;let o=e.tool_name==="Bash"?e.tool_input?.command??"":"",s=Jy(o);if(/\btkr(?:\.js)?\s+restore\b/.test(o))return null;let i=await Z();if(!Cm())return null;let a=e.tool_name==="Bash"&&!s?i1(o,e.tool_response):null;if(a)return Buffer.byteLength(a.stdout,"utf8")+Buffer.byteLength(a.stderr,"utf8")>Si?null:a1(a,e,r,t,n);if(e.session_id&&!s&&i?.token){let j=e.tool_input??{},De=j.command??j.file_path??j.pattern??j.path??"";De&&fi(e.session_id,{tool:e.tool_name,target:De.split(`
|
|
161
161
|
`)[0].trim()})}if(e.tool_name==="Read"&&(e.tool_input?.offset!=null||e.tool_input?.limit!=null))return null;let l=Fy(e.tool_response);if(l==null)return YC(e.tool_name,e.tool_response),null;if(!l)return null;let c=Buffer.byteLength(l,"utf8");if(c>Si||e.tool_name==="Bash"&&c<By||e.tool_name==="Glob"&&l.split(`
|
|
162
|
-
`).length<LC||s)return null;let{loadSettingsCache:u,processOutput:f,captureForRestore:d,captureOriginalForRestore:m,FOLD_MARKER_RE:p,resolveAllowedFilters:
|
|
162
|
+
`).length<LC||s)return null;let{loadSettingsCache:u,processOutput:f,captureForRestore:d,captureOriginalForRestore:m,FOLD_MARKER_RE:p,resolveAllowedFilters:h,gatingPlan:y,graceExceeded:T,recordEvent:E,recordTelemetry:x,recordStat:R,countedSaving:O,statCmdLabel:F,statOutcome:L,installDaemonResolver:J,closeDaemonResolver:M}=await Promise.resolve().then(()=>(Lc(),Hc)),W=await u();if(!W.enabled)return null;let{slugKey:X}=await Promise.resolve().then(()=>(st(),Eu)),Ge=i?.token?y(i):null;!t.resolver&&Ge&&J(Ge);let Re=i?.token?h(i.allowedFilters,T(i)):null,z=new Set(W.filters.disabled.map(X)),G=Re&&z.size>0?new Set([...Re].filter(j=>!z.has(j))):Re,K=XC(e),q=`${e.tool_name.toLowerCase()}-tool`,V=`${q}: ${K}`;try{let j=await f(V,l,G,{verbosity:W.outputVerbosity,resolver:t.resolver,yolo:r,exitCode:e.tool_name==="Bash"?void 0:0});if(j.filterId!=null&&e.tool_name==="Bash"&&e.session_id){let qc=Mc(e.session_id,e.agent_id??"main",l,o.split(`
|
|
163
163
|
`)[0]??"");if(qc){let Yc=Fc(qc.cmd,c);return r?Yc:await m(l,Yc)}}let De=new RegExp(p.source,"m"),pr=e.tool_name==="Bash"?F(e.tool_input?.command??""):e.tool_name,Zc=e.tool_name==="Read"&&!r&&(De.test(j.output)||JC.test(j.output))?`${j.output}${j.output.endsWith(`
|
|
164
164
|
`)?"":`
|
|
165
|
-
`}${GC}`:j.output,we;if(j.filteredBytes>=j.rawBytes?we=null:r?we=j.output:e.tool_name==="Glob"||De.test(j.output)?we=await m(l,Zc,void 0,{label:pr}):we=await d(j.droppedTail??null,Zc,void 0,{raw:l,label:pr}),r&&we!=null&&(we=Fy(Uy(e.tool_response,we,e.tool_name))),n!=null&&(we==null||we.length>n))return null;let rk=we==null?j.rawBytes:Buffer.byteLength(we,"utf8"),Ai=xs().host,Ot=O(j.rawBytes,rk,Ss(Ai));we!=null&&zy(Ot.raw,Ot.filtered);let ok=e.cwd||(t.inferCwd===!1?void 0:process.cwd()),sk=e.tool_name==="Bash"?"sh":void 0,$i=t.deferAccounting,Wc=!1,Vc=async()=>{Wc||(Wc=!0,await E({cmd:q,filterId:j.filterId,rawBytes:j.rawBytes,filteredBytes:j.filteredBytes,plan:Ge}),R(Ot.raw,Ot.filtered,void 0,!1,Ai,sk,pr,ok,L(j)),await x({cmd:q,tokensSaved:Math.round((Ot.raw-Ot.filtered)/4),rawTokens:Math.round(Ot.raw/4),optimized:j.filterId!=null,telemetryOptIn:W.telemetryOptIn&&(!$i||(await u()).telemetryOptIn),host:Ai}))};return $i?$i(Vc):await Vc(),we}finally{t.resolver||M()}}async function Ky(e,t={}){if(jf(e,"claude-code")!=="claude-code")return"";let n=await c1(e,t);return n?ZC(e,n,VC()??void 0):""}Ee();cs();Ee();var Bc=JSON.stringify({permission:"allow"});function Zy(e,t=Je("cursor"),n=ke){if(e.tool_name!=="Shell")return Bc;let r=e.tool_input??{},o=r.command;if(typeof o!="string"||!o)return Bc;let s=typeof r.working_directory=="string"?r.working_directory:void 0,i=pt(o,{host:"cursor",sessionId:e.conversation_id??"unknown",cwd:s},fe()?null:t,n);return i?JSON.stringify({permission:"allow",updated_input:{...r,command:i}}):Bc}Ee();var xi="{}";function Wy(e,t=Je("gemini-cli"),n=ke){if(e.hook_event_name!=="BeforeTool"||e.tool_name!=="run_shell_command")return xi;let r=e.tool_input??{};if(r.is_background)return xi;let o=r.command;if(typeof o!="string"||!o)return xi;let s=typeof e.cwd=="string"?e.cwd:void 0,i=pt(o,{host:"gemini-cli",sessionId:e.session_id??"unknown",cwd:s},fe()?null:t,n);return i?JSON.stringify({hookSpecificOutput:{tool_input:{command:i}}}):xi}ae();Ee();function lr(e,t,n="unknown",r=Je(t),o=ke){return e?pt(e,{host:t,sessionId:n},fe()?null:r,o):null}var u1=new Set(["bash","file_system.bash"]),zc=JSON.stringify({decision:"allow"});function Vy(e,t=(n,r)=>lr(n,"vibe",r)){if(!I(e)||e.hook_event_name!=="pre_tool"||typeof e.tool_name!="string"||!u1.has(e.tool_name))return"";let n=e.tool_input;if(!I(n)||typeof n.command!="string"||!n.command)return"";let r=t(n.command,typeof e.session_id=="string"?e.session_id:"unknown");return r?JSON.stringify({hook_specific_output:{tool_input:{...n,command:r}}}):""}function qy(e,t=(n,r)=>lr(n,"antigravity",r)){if(!I(e)||!I(e.toolCall)||e.toolCall.name!=="run_command")return zc;let n=e.toolCall.args;if(!I(n)||typeof n.CommandLine!="string"||!n.CommandLine)return zc;let r=t(n.CommandLine,typeof e.conversationId=="string"?e.conversationId:"unknown");return r?JSON.stringify({decision:"allow",overwrite:{CommandLine:r}}):zc}Ee();var gt="{}",f1=new Set(["runTerminalCommand","run_in_terminal","Bash","bash"]),d1=["run_in_background","is_background","isBackground"];function vi(e){return e!=null&&typeof e=="object"&&!Array.isArray(e)}function m1(e){let t=e.session_id??e.sessionId;return typeof t=="string"&&t?t:"unknown"}function p1(e,t){let n=e.cwd??t.cwd??t.workdir??t.working_directory;return typeof n=="string"&&n?n:void 0}function Ei(e,t,n,r,o){if(!vi(t)||d1.some(i=>t[i]===!0))return null;let s=t.command;return typeof s!="string"||!s?null:pt(s,{host:e,sessionId:m1(n),cwd:p1(n,t)},fe()?null:r,o)}function ur(e,t){return JSON.stringify({hookSpecificOutput:{hookEventName:"PreToolUse",updatedInput:{...e,command:t}}})}function g1(e){if(vi(e))return e;if(typeof e!="string")return null;try{let t=JSON.parse(e);return vi(t)?t:null}catch{return null}}function h1(e,t,n){if(typeof e.tool_name=="string"){if(!f1.has(e.tool_name))return gt;let s=e.tool_input,i=Ei("copilot",s,e,t,n);return i?ur(s,i):gt}if(e.toolName!=="bash")return gt;let r=g1(e.toolArgs),o=Ei("copilot",r,e,t,n);return o?JSON.stringify({modifiedArgs:{...r,command:o}}):gt}function cr(e,t,n){return(r,o,s)=>{if(r.tool_name!==t)return gt;let i=r.tool_input,a=Ei(e,i,r,o,s);return a?n(i,a):gt}}var y1=new Set(["run_terminal_command","Bash","bash"]);function k1(e,t,n){let r=e.toolName??e.tool_name;if(typeof r!="string"||!y1.has(r))return gt;let o=e.toolInput??e.tool_input,s=Ei("grok",o,e,t,n);return s?ur(o,s):gt}var b1={copilot:h1,droid:cr("droid","Execute",ur),trae:cr("trae","RunCommand",ur),"qwen-code":cr("qwen-code","run_shell_command",ur),crush:cr("crush","bash",(e,t)=>JSON.stringify({updated_input:{command:t}})),junie:cr("junie","Bash",(e,t)=>JSON.stringify({updatedInput:{...e,command:t}})),zcode:cr("zcode","Bash",ur),grok:k1};function Yy(e,t,n=Je(e),r=ke){return vi(t)?b1[e](t,n,r):gt}function fr(e){return fe()?null:Je(e)}function w1(e,t,n={}){let r=n.recordUsage??ke;switch(e){case"claude-code":case"codex":return t.hook_event_name!==void 0&&t.hook_event_name!=="PreToolUse"?"":Oy(t,e,fr(e),r,n.claudeDirs??_i(),n.pathEnv??process.env.PATH)??"";case"cursor":return Zy(t,fr(e),r);case"gemini-cli":return Wy(t,fr(e),r);case"vibe":return Vy(t,(o,s)=>lr(o,"vibe",s,fr(e),r));case"antigravity":return qy(t,(o,s)=>lr(o,"antigravity",s,fr(e),r));default:return Yy(e,t,fr(e),r)}}function ar(e,t,n={}){let r=ya(e,t);return r?w1(r,e,n):n.fallback??""}Qr();var Ti=class{constructor(t,n,r=()=>{}){this.limit=t;this.receive=n;this.reserve=r}limit;receive;reserve;header=Buffer.alloc(4);headerBytes=0;body=null;bodyBytes=0;closed=!1;push(t){if(this.closed)throw new Error("reader closed");let n=0;try{for(;n<t.length&&!this.closed;){if(!this.body){let o=Math.min(4-this.headerBytes,t.length-n);if(t.copy(this.header,this.headerBytes,n,n+o),this.headerBytes+=o,n+=o,this.headerBytes!==4)continue;let s=this.header.readUInt32BE(0);if(s>this.limit())throw new Error("frame limit exceeded");this.reserve(s),this.body=Buffer.allocUnsafe(s),this.bodyBytes=0}let r=Math.min(this.body.length-this.bodyBytes,t.length-n);if(t.copy(this.body,this.bodyBytes,n,n+r),this.bodyBytes+=r,n+=r,this.bodyBytes===this.body.length){let o=this.body;this.body=null,this.headerBytes=0,this.bodyBytes=0,this.receive(o)}}}catch(r){throw this.close(),r}}close(){this.closed=!0,this.body=null,this.headerBytes=0,this.bodyBytes=0}};function dr(e){let t=Buffer.allocUnsafe(4);return t.writeUInt32BE(e.length),Buffer.concat([t,e])}function Xy(e){if(e.length<16)throw new Error("incomplete captured header");let t=e.readUInt32BE(0),n=e.readUInt32BE(4),r=e.readUInt32BE(8),o=e.readUInt32BE(12);if(t>255||n>3||r>10485760||o>10485760||e.length!==16+r+o)throw new Error("invalid captured output");return{stdout:e.subarray(16,16+r).toString("utf8"),stderr:e.subarray(16+r).toString("utf8"),exitCode:t,truncated:(n&1)!==0,stderrTruncated:(n&2)!==0}}Ee();var T1={"claude-code":"CLAUDECODE",codex:"CODEX_CLI",cursor:"CURSOR_VERSION",cline:"CLINE_VERSION",aider:"AIDER_VERSION","gemini-cli":"GEMINI_CLI_VERSION",windsurf:"WINDSURF_VERSION",copilot:"GITHUB_COPILOT_VERSION","qwen-code":"QWEN_CODE",crush:"CRUSH",droid:"",trae:"",junie:"",zcode:"",grok:"",kilo:"",shell:""},R1=h.object({protocol:h.literal(2),version:h.string().min(1).max(64),token:h.string().regex(/^[0-9a-f]{64}$/),home:h.string().min(1).max(4096),argv:h.array(h.string().max(32768).refine(e=>!e.includes("\0"))).min(1).max(4096),host:h.enum(Za),sessionId:h.string().max(256).optional(),restoreDisabled:h.boolean(),restoreMaxBytes:h.number().int().positive().max(10485760).optional(),timeoutMs:h.number().int().positive().max(864e5)}).strict(),A1=h.object({kind:h.literal("pre-tool-use"),protocol:h.literal(2),version:h.string().min(1).max(64),token:h.string().regex(/^[0-9a-f]{64}$/),home:h.string().min(1).max(4096),host:h.enum(["claude-code","codex"]),payload:h.record(h.string(),h.unknown()),claudeProjectDir:h.string().min(1).max(4096).optional(),claudeConfigDir:h.string().min(1).max(4096).optional(),path:h.string().min(1).max(32768).optional()}).strict(),$1=h.object({kind:h.literal("post-tool-use"),protocol:h.literal(2),version:h.string().min(1).max(64),token:h.string().regex(/^[0-9a-f]{64}$/),home:h.string().min(1).max(4096),host:h.enum(["claude-code"])}).strict();function mr(e){if(!e)return!1;let t=Date.now()-e.signedAt;return t>=0&&t<=Jo()}async function ek(e){if(!/^[0-9a-f]{64}$/.test(e.token))throw new Error("invalid processing authentication");let t=process.platform==="win32";if(t){if(!/^\\\\\.\\pipe\\tokmizer-[A-Za-z0-9._-]+$/.test(e.path))throw new Error("unsafe processing pipe")}else{let f=S1(v1(e.path));if(!f.isDirectory()||f.uid!==process.getuid?.()||(f.mode&63)!==0)throw new Error("unsafe processing directory")}let n=x1(w()),r=Buffer.from(e.token,"hex"),o=new Set,s=new Set,i=0,a=!1,l=e.maxConnections??4,c=e.maxBufferedBytes??48*1024*1024,u=E1(f=>{if(a||o.size>=l){f.destroy();return}o.add(f);let d="prepare",m=null,p=!1,g=0,y=!1,T,E,x=()=>{i-=g,g=0},R=()=>{clearTimeout(E),L.close(),y||x(),d="closed",f.destroy()},O=J=>{clearTimeout(E),E=setTimeout(R,J),E.unref()},F=J=>{f.write(dr(Buffer.from(JSON.stringify(J))))},L=new Ti(()=>d==="prepare"?65536:d==="capture"||d==="hook-payload"?20971536:d==="delivery"?1:-1,J=>{if(d==="delivery"){if(J.length!==1||J[0]!==1)throw new Error("invalid delivery receipt");d="accounting",e.onActivity?.(),y=!0;let z=(T?.()??Promise.resolve()).then(()=>{f.destroyed||f.end(dr(Buffer.from([1])))}).catch(()=>R()).finally(()=>{y=!1,f.destroyed&&(x(),o.delete(f)),s.delete(z)});s.add(z);return}if(d==="hook-payload"){let z=e.getRuntime();if(!mr(z)){R();return}let G=JSON.parse(J.toString("utf8"));if(!G||typeof G!="object"||Array.isArray(G))throw new Error("invalid hook payload");e.onActivity?.(),d="processing",y=!0,O(e.processingTimeoutMs??5e3);let K=Ky(G,{inferCwd:!1,deferAccounting:q=>{T=q},resolver:async(q,V)=>{if(!mr(z))throw new Error("expired processing rules");return z.selectFor(q,"pro",V?[...V]:void 0)}}).then(q=>{if(f.destroyed)return;let V=Buffer.from(JSON.stringify({ok:!0,protocol:2,output:q}));if(V.length>20971536)throw new Error("hook response limit");x(),d="delivery",O(e.processingTimeoutMs??5e3),f.write(dr(V))}).catch(()=>R()).finally(()=>{y=!1,f.destroyed&&(x(),o.delete(f)),s.delete(K)});s.add(K);return}if(d==="prepare"){let z=JSON.parse(J.toString("utf8"));if(z?.kind==="post-tool-use"){let K=$1.parse(z);if(!Gc(r,Buffer.from(K.token,"hex"))||K.version!==e.version||K.home!==n||!mr(e.getRuntime())){R();return}e.onActivity?.(),x(),d="hook-payload",O(e.prepareTimeoutMs??1e3),F({ok:!0,protocol:2});return}if(z?.kind==="pre-tool-use"){let K=A1.parse(z);if(!Gc(r,Buffer.from(K.token,"hex"))||K.version!==e.version||K.home!==n){R();return}e.onActivity?.();let q,V=ar(K.payload,K.host,{recordUsage:(De,pr)=>{q={sessionId:De,routed:pr}},claudeDirs:{projectDir:K.claudeProjectDir,configDir:K.claudeConfigDir},pathEnv:K.path??""}),j=Buffer.from(JSON.stringify({ok:!0,protocol:2,output:V}));if(j.length>1024*1024)throw new Error("hook response limit");T=async()=>{let De=q;q=void 0,De&&ke(De.sessionId,De.routed)},x(),d="delivery",O(e.processingTimeoutMs??5e3),f.write(dr(j));return}let G=R1.parse(z);if(!Gc(r,Buffer.from(G.token,"hex"))||G.version!==e.version||G.home!==n||!mr(e.getRuntime())){R();return}m=G,e.onActivity?.(),p=je(),x(),d="capture",O(G.timeoutMs+5e3),F({ok:!0,protocol:2,yolo:p});return}if(d!=="capture"||!m)throw new Error("unexpected processing frame");let M=Xy(J);e.onActivity?.();let W=e.getRuntime();if(!mr(W)){R();return}d="processing",y=!0,O(e.processingTimeoutMs??5e3);let X={},Ge=T1[m.host];Ge?X[Ge]="1":m.host!=="shell"&&(X.TOKMIZER_HOST=m.host),m.sessionId!==void 0&&(X.CLAUDE_CODE_SESSION_ID=m.sessionId),X.TOKMIZER_CCR_DISABLED=m.restoreDisabled?"1":"0",m.restoreMaxBytes!==void 0&&(X.TOKMIZER_CCR_ENTRY_MAX_BYTES=String(m.restoreMaxBytes));let Re=gi({...M,argv:m.argv},{env:X,yolo:p,onMissingState:pi,deferAccounting:z=>{T=z},resolver:async(z,G)=>{if(!mr(W))throw new Error("expired processing rules");return W.selectFor(z,"pro",G?[...G]:void 0)}}).then(z=>{if(f.destroyed)return;let G=Buffer.from(z.stdout),K=Buffer.from(z.stderr);if(G.length>10551296||K.length>10551296)throw new Error("processing response limit");let q=Buffer.allocUnsafe(8);q.writeUInt32BE(G.length,0),q.writeUInt32BE(K.length,4),d="delivery",O(e.processingTimeoutMs??5e3),f.write(dr(Buffer.concat([q,G,K])))}).catch(()=>R()).finally(()=>{y=!1,f.destroyed&&(x(),o.delete(f)),s.delete(Re)});s.add(Re)},J=>{if(i+J>c)throw new Error("processing capacity exceeded");i+=J,g+=J});O(e.prepareTimeoutMs??1e3),f.on("data",J=>{try{L.push(J)}catch{R()}}),f.on("error",R),f.on("close",()=>{y||o.delete(f),R()})});try{await new Promise((f,d)=>{u.once("error",d),u.listen(e.path,()=>{u.off("error",d),f()})}),t||_1(e.path,384)}catch(f){throw u.close(),f}return{activeConnections:()=>o.size,close:async()=>{a=!0;for(let f of o)f.destroy();await new Promise(f=>u.close(()=>f())),await Promise.allSettled(s)}}}function H1(e,t,n){return`\\\\.\\pipe\\tokmizer-p-${e.replace(/[^A-Za-z0-9._-]/g,"_").slice(0,64)||"user"}-${t.replace(/[^A-Za-z0-9._-]/g,"_")}-${n}`}async function nk(e,t,n="processing.json"){let r=process.platform==="win32",o=I1(w()),s=Ri(o,"run");P1(s,{recursive:!0,mode:448});let i=O1(s);if(!i.isDirectory()||!r&&(i.uid!==process.getuid?.()||(i.mode&63)!==0))throw new Error("unsafe processing descriptor directory");let a=tk().slice(0,8),l=r?H1(process.env.USERNAME??"user",ue,a):Ri(F1(ot().path),`p${a}`);if(!r&&Buffer.byteLength(l)>100)throw new Error("processing socket path too long");let c=C1(32).toString("hex"),u=await ek({path:l,token:c,version:ue,getRuntime:e,...t?{onActivity:t}:{}}),f=Ri(s,`${n}.${tk()}.tmp`);try{return M1(f,JSON.stringify({protocol:2,version:ue,home:o,path:l,token:c}),{mode:384,flag:"wx"}),N1(f,Ri(s,n)),u}catch(d){throw await u.close(),d}finally{D1(f,{force:!0})}}Qn();He();var To=process.env.TOKMIZER_BASE_URL??"https://tokmizer.com",L1=360*60*1e3,j1=6e4;function B1(){let e=_g(To),t=()=>{e().catch(()=>{})};setTimeout(t,5e3).unref?.(),setInterval(t,j1).unref?.()}function U1(){let e=()=>{Zn(To).catch(()=>{})};setTimeout(e,6e4+Math.floor(Math.random()*6e4)).unref?.(),setInterval(e,L1).unref?.()}function z1(){if(process.env.TOKMIZER_ALLOW_INSPECT==="1")return;let t=(process.execArgv??[]).find(n=>n.startsWith("--inspect")||n==="--inspect-brk"||n.startsWith("--inspect-port"));t&&(process.stderr.write("tkr-daemon: refusing to start with "+t+` (set TOKMIZER_ALLOW_INSPECT=1 to override for development).
|
|
165
|
+
`}${GC}`:j.output,we;if(j.filteredBytes>=j.rawBytes?we=null:r?we=j.output:e.tool_name==="Glob"||De.test(j.output)?we=await m(l,Zc,void 0,{label:pr}):we=await d(j.droppedTail??null,Zc,void 0,{raw:l,label:pr}),r&&we!=null&&(we=Fy(Uy(e.tool_response,we,e.tool_name))),n!=null&&(we==null||we.length>n))return null;let rk=we==null?j.rawBytes:Buffer.byteLength(we,"utf8"),Ai=xs().host,Ot=O(j.rawBytes,rk,Ss(Ai));we!=null&&zy(Ot.raw,Ot.filtered);let ok=e.cwd||(t.inferCwd===!1?void 0:process.cwd()),sk=e.tool_name==="Bash"?"sh":void 0,$i=t.deferAccounting,Wc=!1,Vc=async()=>{Wc||(Wc=!0,await E({cmd:q,filterId:j.filterId,rawBytes:j.rawBytes,filteredBytes:j.filteredBytes,plan:Ge}),R(Ot.raw,Ot.filtered,void 0,!1,Ai,sk,pr,ok,L(j)),await x({cmd:q,tokensSaved:Math.round((Ot.raw-Ot.filtered)/4),rawTokens:Math.round(Ot.raw/4),optimized:j.filterId!=null,telemetryOptIn:W.telemetryOptIn&&(!$i||(await u()).telemetryOptIn),host:Ai}))};return $i?$i(Vc):await Vc(),we}finally{t.resolver||M()}}async function Ky(e,t={}){if(jf(e,"claude-code")!=="claude-code")return"";let n=await c1(e,t);return n?ZC(e,n,VC()??void 0):""}Ee();cs();Ee();var Bc=JSON.stringify({permission:"allow"});function Zy(e,t=Je("cursor"),n=ke){if(e.tool_name!=="Shell")return Bc;let r=e.tool_input??{},o=r.command;if(typeof o!="string"||!o)return Bc;let s=typeof r.working_directory=="string"?r.working_directory:void 0,i=pt(o,{host:"cursor",sessionId:e.conversation_id??"unknown",cwd:s},fe()?null:t,n);return i?JSON.stringify({permission:"allow",updated_input:{...r,command:i}}):Bc}Ee();var xi="{}";function Wy(e,t=Je("gemini-cli"),n=ke){if(e.hook_event_name!=="BeforeTool"||e.tool_name!=="run_shell_command")return xi;let r=e.tool_input??{};if(r.is_background)return xi;let o=r.command;if(typeof o!="string"||!o)return xi;let s=typeof e.cwd=="string"?e.cwd:void 0,i=pt(o,{host:"gemini-cli",sessionId:e.session_id??"unknown",cwd:s},fe()?null:t,n);return i?JSON.stringify({hookSpecificOutput:{tool_input:{command:i}}}):xi}ae();Ee();function lr(e,t,n="unknown",r=Je(t),o=ke){return e?pt(e,{host:t,sessionId:n},fe()?null:r,o):null}var u1=new Set(["bash","file_system.bash"]),zc=JSON.stringify({decision:"allow"});function Vy(e,t=(n,r)=>lr(n,"vibe",r)){if(!I(e)||e.hook_event_name!=="pre_tool"||typeof e.tool_name!="string"||!u1.has(e.tool_name))return"";let n=e.tool_input;if(!I(n)||typeof n.command!="string"||!n.command)return"";let r=t(n.command,typeof e.session_id=="string"?e.session_id:"unknown");return r?JSON.stringify({hook_specific_output:{tool_input:{...n,command:r}}}):""}function qy(e,t=(n,r)=>lr(n,"antigravity",r)){if(!I(e)||!I(e.toolCall)||e.toolCall.name!=="run_command")return zc;let n=e.toolCall.args;if(!I(n)||typeof n.CommandLine!="string"||!n.CommandLine)return zc;let r=t(n.CommandLine,typeof e.conversationId=="string"?e.conversationId:"unknown");return r?JSON.stringify({decision:"allow",overwrite:{CommandLine:r}}):zc}Ee();var ht="{}",f1=new Set(["runTerminalCommand","run_in_terminal","Bash","bash"]),d1=["run_in_background","is_background","isBackground"];function vi(e){return e!=null&&typeof e=="object"&&!Array.isArray(e)}function m1(e){let t=e.session_id??e.sessionId;return typeof t=="string"&&t?t:"unknown"}function p1(e,t){let n=e.cwd??t.cwd??t.workdir??t.working_directory;return typeof n=="string"&&n?n:void 0}function Ei(e,t,n,r,o){if(!vi(t)||d1.some(i=>t[i]===!0))return null;let s=t.command;return typeof s!="string"||!s?null:pt(s,{host:e,sessionId:m1(n),cwd:p1(n,t)},fe()?null:r,o)}function ur(e,t){return JSON.stringify({hookSpecificOutput:{hookEventName:"PreToolUse",updatedInput:{...e,command:t}}})}function h1(e){if(vi(e))return e;if(typeof e!="string")return null;try{let t=JSON.parse(e);return vi(t)?t:null}catch{return null}}function g1(e,t,n){if(typeof e.tool_name=="string"){if(!f1.has(e.tool_name))return ht;let s=e.tool_input,i=Ei("copilot",s,e,t,n);return i?ur(s,i):ht}if(e.toolName!=="bash")return ht;let r=h1(e.toolArgs),o=Ei("copilot",r,e,t,n);return o?JSON.stringify({modifiedArgs:{...r,command:o}}):ht}function cr(e,t,n){return(r,o,s)=>{if(r.tool_name!==t)return ht;let i=r.tool_input,a=Ei(e,i,r,o,s);return a?n(i,a):ht}}var y1=new Set(["run_terminal_command","Bash","bash"]);function k1(e,t,n){let r=e.toolName??e.tool_name;if(typeof r!="string"||!y1.has(r))return ht;let o=e.toolInput??e.tool_input,s=Ei("grok",o,e,t,n);return s?ur(o,s):ht}var b1={copilot:g1,droid:cr("droid","Execute",ur),trae:cr("trae","RunCommand",ur),"qwen-code":cr("qwen-code","run_shell_command",ur),crush:cr("crush","bash",(e,t)=>JSON.stringify({updated_input:{command:t}})),junie:cr("junie","Bash",(e,t)=>JSON.stringify({updatedInput:{...e,command:t}})),zcode:cr("zcode","Bash",ur),grok:k1};function Yy(e,t,n=Je(e),r=ke){return vi(t)?b1[e](t,n,r):ht}function fr(e){return fe()?null:Je(e)}function w1(e,t,n={}){let r=n.recordUsage??ke;switch(e){case"claude-code":case"codex":return t.hook_event_name!==void 0&&t.hook_event_name!=="PreToolUse"?"":Oy(t,e,fr(e),r,n.claudeDirs??_i(),n.pathEnv??process.env.PATH)??"";case"cursor":return Zy(t,fr(e),r);case"gemini-cli":return Wy(t,fr(e),r);case"vibe":return Vy(t,(o,s)=>lr(o,"vibe",s,fr(e),r));case"antigravity":return qy(t,(o,s)=>lr(o,"antigravity",s,fr(e),r));default:return Yy(e,t,fr(e),r)}}function ar(e,t,n={}){let r=ya(e,t);return r?w1(r,e,n):n.fallback??""}Qr();var Ti=class{constructor(t,n,r=()=>{}){this.limit=t;this.receive=n;this.reserve=r}limit;receive;reserve;header=Buffer.alloc(4);headerBytes=0;body=null;bodyBytes=0;closed=!1;push(t){if(this.closed)throw new Error("reader closed");let n=0;try{for(;n<t.length&&!this.closed;){if(!this.body){let o=Math.min(4-this.headerBytes,t.length-n);if(t.copy(this.header,this.headerBytes,n,n+o),this.headerBytes+=o,n+=o,this.headerBytes!==4)continue;let s=this.header.readUInt32BE(0);if(s>this.limit())throw new Error("frame limit exceeded");this.reserve(s),this.body=Buffer.allocUnsafe(s),this.bodyBytes=0}let r=Math.min(this.body.length-this.bodyBytes,t.length-n);if(t.copy(this.body,this.bodyBytes,n,n+r),this.bodyBytes+=r,n+=r,this.bodyBytes===this.body.length){let o=this.body;this.body=null,this.headerBytes=0,this.bodyBytes=0,this.receive(o)}}}catch(r){throw this.close(),r}}close(){this.closed=!0,this.body=null,this.headerBytes=0,this.bodyBytes=0}};function dr(e){let t=Buffer.allocUnsafe(4);return t.writeUInt32BE(e.length),Buffer.concat([t,e])}function Xy(e){if(e.length<16)throw new Error("incomplete captured header");let t=e.readUInt32BE(0),n=e.readUInt32BE(4),r=e.readUInt32BE(8),o=e.readUInt32BE(12);if(t>255||n>3||r>10485760||o>10485760||e.length!==16+r+o)throw new Error("invalid captured output");return{stdout:e.subarray(16,16+r).toString("utf8"),stderr:e.subarray(16+r).toString("utf8"),exitCode:t,truncated:(n&1)!==0,stderrTruncated:(n&2)!==0}}Ee();var T1={"claude-code":"CLAUDECODE",codex:"CODEX_CLI",cursor:"CURSOR_VERSION",cline:"CLINE_VERSION",aider:"AIDER_VERSION","gemini-cli":"GEMINI_CLI_VERSION",windsurf:"WINDSURF_VERSION",copilot:"GITHUB_COPILOT_VERSION","qwen-code":"QWEN_CODE",crush:"CRUSH",droid:"",trae:"",junie:"",zcode:"",grok:"",kilo:"",shell:""},R1=g.object({protocol:g.literal(2),version:g.string().min(1).max(64),token:g.string().regex(/^[0-9a-f]{64}$/),home:g.string().min(1).max(4096),argv:g.array(g.string().max(32768).refine(e=>!e.includes("\0"))).min(1).max(4096),host:g.enum(Za),sessionId:g.string().max(256).optional(),restoreDisabled:g.boolean(),restoreMaxBytes:g.number().int().positive().max(10485760).optional(),timeoutMs:g.number().int().positive().max(864e5)}).strict(),A1=g.object({kind:g.literal("pre-tool-use"),protocol:g.literal(2),version:g.string().min(1).max(64),token:g.string().regex(/^[0-9a-f]{64}$/),home:g.string().min(1).max(4096),host:g.enum(["claude-code","codex"]),payload:g.record(g.string(),g.unknown()),claudeProjectDir:g.string().min(1).max(4096).optional(),claudeConfigDir:g.string().min(1).max(4096).optional(),path:g.string().min(1).max(32768).optional()}).strict(),$1=g.object({kind:g.literal("post-tool-use"),protocol:g.literal(2),version:g.string().min(1).max(64),token:g.string().regex(/^[0-9a-f]{64}$/),home:g.string().min(1).max(4096),host:g.enum(["claude-code"])}).strict();function mr(e){if(!e)return!1;let t=Date.now()-e.signedAt;return t>=0&&t<=Jo()}async function ek(e){if(!/^[0-9a-f]{64}$/.test(e.token))throw new Error("invalid processing authentication");let t=process.platform==="win32";if(t){if(!/^\\\\\.\\pipe\\tokmizer-[A-Za-z0-9._-]+$/.test(e.path))throw new Error("unsafe processing pipe")}else{let f=S1(v1(e.path));if(!f.isDirectory()||f.uid!==process.getuid?.()||(f.mode&63)!==0)throw new Error("unsafe processing directory")}let n=x1(w()),r=Buffer.from(e.token,"hex"),o=new Set,s=new Set,i=0,a=!1,l=e.maxConnections??4,c=e.maxBufferedBytes??48*1024*1024,u=E1(f=>{if(a||o.size>=l){f.destroy();return}o.add(f);let d="prepare",m=null,p=!1,h=0,y=!1,T,E,x=()=>{i-=h,h=0},R=()=>{clearTimeout(E),L.close(),y||x(),d="closed",f.destroy()},O=J=>{clearTimeout(E),E=setTimeout(R,J),E.unref()},F=J=>{f.write(dr(Buffer.from(JSON.stringify(J))))},L=new Ti(()=>d==="prepare"?65536:d==="capture"||d==="hook-payload"?20971536:d==="delivery"?1:-1,J=>{if(d==="delivery"){if(J.length!==1||J[0]!==1)throw new Error("invalid delivery receipt");d="accounting",e.onActivity?.(),y=!0;let z=(T?.()??Promise.resolve()).then(()=>{f.destroyed||f.end(dr(Buffer.from([1])))}).catch(()=>R()).finally(()=>{y=!1,f.destroyed&&(x(),o.delete(f)),s.delete(z)});s.add(z);return}if(d==="hook-payload"){let z=e.getRuntime();if(!mr(z)){R();return}let G=JSON.parse(J.toString("utf8"));if(!G||typeof G!="object"||Array.isArray(G))throw new Error("invalid hook payload");e.onActivity?.(),d="processing",y=!0,O(e.processingTimeoutMs??5e3);let K=Ky(G,{inferCwd:!1,deferAccounting:q=>{T=q},resolver:async(q,V)=>{if(!mr(z))throw new Error("expired processing rules");return z.selectFor(q,"pro",V?[...V]:void 0)}}).then(q=>{if(f.destroyed)return;let V=Buffer.from(JSON.stringify({ok:!0,protocol:2,output:q}));if(V.length>20971536)throw new Error("hook response limit");x(),d="delivery",O(e.processingTimeoutMs??5e3),f.write(dr(V))}).catch(()=>R()).finally(()=>{y=!1,f.destroyed&&(x(),o.delete(f)),s.delete(K)});s.add(K);return}if(d==="prepare"){let z=JSON.parse(J.toString("utf8"));if(z?.kind==="post-tool-use"){let K=$1.parse(z);if(!Gc(r,Buffer.from(K.token,"hex"))||K.version!==e.version||K.home!==n||!mr(e.getRuntime())){R();return}e.onActivity?.(),x(),d="hook-payload",O(e.prepareTimeoutMs??1e3),F({ok:!0,protocol:2});return}if(z?.kind==="pre-tool-use"){let K=A1.parse(z);if(!Gc(r,Buffer.from(K.token,"hex"))||K.version!==e.version||K.home!==n){R();return}e.onActivity?.();let q,V=ar(K.payload,K.host,{recordUsage:(De,pr)=>{q={sessionId:De,routed:pr}},claudeDirs:{projectDir:K.claudeProjectDir,configDir:K.claudeConfigDir},pathEnv:K.path??""}),j=Buffer.from(JSON.stringify({ok:!0,protocol:2,output:V}));if(j.length>1024*1024)throw new Error("hook response limit");T=async()=>{let De=q;q=void 0,De&&ke(De.sessionId,De.routed)},x(),d="delivery",O(e.processingTimeoutMs??5e3),f.write(dr(j));return}let G=R1.parse(z);if(!Gc(r,Buffer.from(G.token,"hex"))||G.version!==e.version||G.home!==n||!mr(e.getRuntime())){R();return}m=G,e.onActivity?.(),p=je(),x(),d="capture",O(G.timeoutMs+5e3),F({ok:!0,protocol:2,yolo:p});return}if(d!=="capture"||!m)throw new Error("unexpected processing frame");let M=Xy(J);e.onActivity?.();let W=e.getRuntime();if(!mr(W)){R();return}d="processing",y=!0,O(e.processingTimeoutMs??5e3);let X={},Ge=T1[m.host];Ge?X[Ge]="1":m.host!=="shell"&&(X.TOKMIZER_HOST=m.host),m.sessionId!==void 0&&(X.CLAUDE_CODE_SESSION_ID=m.sessionId),X.TOKMIZER_CCR_DISABLED=m.restoreDisabled?"1":"0",m.restoreMaxBytes!==void 0&&(X.TOKMIZER_CCR_ENTRY_MAX_BYTES=String(m.restoreMaxBytes));let Re=hi({...M,argv:m.argv},{env:X,yolo:p,onMissingState:pi,deferAccounting:z=>{T=z},resolver:async(z,G)=>{if(!mr(W))throw new Error("expired processing rules");return W.selectFor(z,"pro",G?[...G]:void 0)}}).then(z=>{if(f.destroyed)return;let G=Buffer.from(z.stdout),K=Buffer.from(z.stderr);if(G.length>10551296||K.length>10551296)throw new Error("processing response limit");let q=Buffer.allocUnsafe(8);q.writeUInt32BE(G.length,0),q.writeUInt32BE(K.length,4),d="delivery",O(e.processingTimeoutMs??5e3),f.write(dr(Buffer.concat([q,G,K])))}).catch(()=>R()).finally(()=>{y=!1,f.destroyed&&(x(),o.delete(f)),s.delete(Re)});s.add(Re)},J=>{if(i+J>c)throw new Error("processing capacity exceeded");i+=J,h+=J});O(e.prepareTimeoutMs??1e3),f.on("data",J=>{try{L.push(J)}catch{R()}}),f.on("error",R),f.on("close",()=>{y||o.delete(f),R()})});try{await new Promise((f,d)=>{u.once("error",d),u.listen(e.path,()=>{u.off("error",d),f()})}),t||_1(e.path,384)}catch(f){throw u.close(),f}return{activeConnections:()=>o.size,close:async()=>{a=!0;for(let f of o)f.destroy();await new Promise(f=>u.close(()=>f())),await Promise.allSettled(s)}}}function H1(e,t,n){return`\\\\.\\pipe\\tokmizer-p-${e.replace(/[^A-Za-z0-9._-]/g,"_").slice(0,64)||"user"}-${t.replace(/[^A-Za-z0-9._-]/g,"_")}-${n}`}async function nk(e,t,n="processing.json"){let r=process.platform==="win32",o=I1(w()),s=Ri(o,"run");P1(s,{recursive:!0,mode:448});let i=O1(s);if(!i.isDirectory()||!r&&(i.uid!==process.getuid?.()||(i.mode&63)!==0))throw new Error("unsafe processing descriptor directory");let a=tk().slice(0,8),l=r?H1(process.env.USERNAME??"user",ue,a):Ri(F1(ot().path),`p${a}`);if(!r&&Buffer.byteLength(l)>100)throw new Error("processing socket path too long");let c=C1(32).toString("hex"),u=await ek({path:l,token:c,version:ue,getRuntime:e,...t?{onActivity:t}:{}}),f=Ri(s,`${n}.${tk()}.tmp`);try{return M1(f,JSON.stringify({protocol:2,version:ue,home:o,path:l,token:c}),{mode:384,flag:"wx"}),N1(f,Ri(s,n)),u}catch(d){throw await u.close(),d}finally{D1(f,{force:!0})}}Qn();He();var To=process.env.TOKMIZER_BASE_URL??"https://tokmizer.com",L1=360*60*1e3,j1=6e4;function B1(){let e=_h(To),t=()=>{e().catch(()=>{})};setTimeout(t,5e3).unref?.(),setInterval(t,j1).unref?.()}function U1(){let e=()=>{Zn(To).catch(()=>{})};setTimeout(e,6e4+Math.floor(Math.random()*6e4)).unref?.(),setInterval(e,L1).unref?.()}function z1(){if(process.env.TOKMIZER_ALLOW_INSPECT==="1")return;let t=(process.execArgv??[]).find(n=>n.startsWith("--inspect")||n==="--inspect-brk"||n.startsWith("--inspect-port"));t&&(process.stderr.write("tkr-daemon: refusing to start with "+t+` (set TOKMIZER_ALLOW_INSPECT=1 to override for development).
|
|
166
166
|
`),process.exit(2)),process.env.NODE_OPTIONS&&/--inspect/.test(process.env.NODE_OPTIONS)&&(process.stderr.write(`tkr-daemon: refusing to start with --inspect in NODE_OPTIONS.
|
|
167
167
|
`),process.exit(2))}async function J1(){z1(),process.title="tkr-daemon";let e=Lu(()=>Wi(To)),t=async(f,d)=>{let m=await Rr();if(m)return process.stderr.write(`tkr-daemon: serving cached rules ${d}
|
|
168
168
|
`),m;let p=ln();if(p)return process.stderr.write(`tkr-daemon: serving built-in rules ${d}
|