@tokmizer/plugin 0.9.71 → 0.9.72

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.
@@ -1,119 +1,119 @@
1
1
  #!/usr/bin/env node
2
2
  import { createRequire as __tkrCreateRequire } from "node:module"; const require = __tkrCreateRequire(import.meta.url);
3
- var eu=Object.defineProperty;var pe=(e,t,n)=>()=>{if(n)throw n[0];try{return e&&(t=e(e=0)),t}catch(r){throw n=[r],r}};var Ns=(e,t)=>{for(var n in t)eu(e,n,{get:t[n],enumerable:!0})};function fc(e,t){let n=e.slice(0,t).split(/\r?\n/);return[n.length,n.pop().length+1]}function dc(e,t,n){let r=e.split(/\r?\n/),s="",o=(Math.log10(t+1)|0)+1;for(let i=t-1;i<=t+1;i++){let a=r[i-1];a&&(s+=i.toString().padEnd(o," "),s+=": ",s+=a,s+=`
3
+ var tu=Object.defineProperty;var pe=(e,t,n)=>()=>{if(n)throw n[0];try{return e&&(t=e(e=0)),t}catch(r){throw n=[r],r}};var Ns=(e,t)=>{for(var n in t)tu(e,n,{get:t[n],enumerable:!0})};function dc(e,t){let n=e.slice(0,t).split(/\r?\n/);return[n.length,n.pop().length+1]}function pc(e,t,n){let r=e.split(/\r?\n/),s="",o=(Math.log10(t+1)|0)+1;for(let i=t-1;i<=t+1;i++){let a=r[i-1];a&&(s+=i.toString().padEnd(o," "),s+=": ",s+=a,s+=`
4
4
  `,i===t&&(s+=" ".repeat(o+n+2),s+=`^
5
- `))}return s}var E,We=pe(()=>{E=class e extends Error{line;column;codeblock;constructor(t,n){let[r,s]=fc(n.toml,n.ptr),o=dc(n.toml,r,s);super(`Invalid TOML document: ${t}
5
+ `))}return s}var E,We=pe(()=>{E=class e extends Error{line;column;codeblock;constructor(t,n){let[r,s]=dc(n.toml,n.ptr),o=pc(n.toml,r,s);super(`Invalid TOML document: ${t}
6
6
 
7
- ${o}`,n),this.line=r,this.column=s,this.codeblock=o}static x(t,n,r){throw new e(t,{toml:n.s,ptr:r??n.p})}}});function fn(e){let t=e.p,n=e.s.charCodeAt(e.p++),r=n,s=n===39,o=n===e.s.charCodeAt(e.p)&&n===e.s.charCodeAt(e.p+1);o&&((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),o&&(n===10||n===13&&e.s.charCodeAt(e.p+1)===10))l=l&&3;else if(n<32&&n!==9||n===127)E.x("control characters are not allowed in strings",e);else if((!l||l===3)&&n===r&&(!o||e.s.charCodeAt(e.p+1)===r&&e.s.charCodeAt(e.p+2)===r)){if(o&&(e.s.charCodeAt(e.p+3)===r&&e.p++,e.s.charCodeAt(e.p+3)===r&&e.p++),!l){let u=e.s.slice(a,e.p);i=i?i+u:u}return e.p+=o?3:1,i}else if(!l)!s&&n===92&&(i+=e.s.slice(a,a=e.p),l=1);else if(l===1)if(n===120||n===117||n===85){let u=e.p++-1,c=0,f=n===120?2:n===117?4:8;for(let d=0;d<f;d++,e.p++){let p=e.s.charCodeAt(e.p),h=p>=48&&p<=57?p-48:p>=65&&p<=70?p-65+10:p>=97&&p<=102?p-97+10:-1;h<0&&E.x("invalid non-hex character in unicode escape",e),c=c<<4|h}(c<0||c>1114111||c>=55296&&c<=57343)&&E.x("invalid unicode escape",e,u),i+=String.fromCodePoint(c),a=e.p--,l=0}else o&&(n===32||n===9)?l=2:(n===98?i+="\b":n===116?i+=" ":n===110?i+=`
8
- `:n===102?i+="\f":n===114?i+="\r":n===101?i+="\x1B":n===34?i+='"':n===92?i+="\\":E.x("unrecognised escape sequence",e),a=e.p+1,l=0);else n!==32&&n!==9&&(l===2&&E.x("invalid escape: only line-ending whitespace may be escaped",e,a),l=!s&&n===92?1:0,a=e.p);E.x("unfinished string",e,t)}var Xn=pe(()=>{We();});var pc,Ve,Qn=pe(()=>{pc=/^(\d{4}-\d{2}-\d{2})?[Tt ]?(?:(\d{2}):\d{2}(?::\d{2}(?:\.\d+)?)?)?(Z|z|[-+]\d{2}:\d{2})?$/i,Ve=class e extends Date{#t=!1;#n=!1;#e=null;constructor(t,n,r){let s=!0,o=!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`);s=n!==4,o=n!==3}else{let l=t.match(pc);l?(l[1]||(s=!1,t=`0000-01-01T${t}`),o=!!l[2],o&&t[10]===" "&&(t=t.replace(" ","T")),l[2]&&+l[2]>23?t="":(i=l[3]||null,!i&&o&&(t+="Z"))):t=""}super(t),isNaN(this.getTime())||(this.#t=s,this.#n=o,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 V(e,t=10){return t===16?e>47&&e<58||e>64&&e<71||e>96&&e<103:e>47&&e<48+t}function tr(e,t){return e===32||e===9||e===10||e===13||t&&(e===t||e===44)||e===35}function Pt(e,t){let n=e.p,r=e.s.charCodeAt(e.p);if(r===91||r===123){e.d--||E.x("document contains excessively nested structures. aborting.",e);let s=r===91?Ws(e):Gs(e);return e.d++,s}return r===34||r===39?fn(e):r===116?((e.s.charCodeAt(++e.p)!==114||e.s.charCodeAt(++e.p)!==117||e.s.charCodeAt(++e.p)!==101)&&E.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)&&E.x("invalid value",e,n),e.p++,!1):r===43||r===45?dn(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?mc(e,r,t):e.s.charCodeAt(e.p+2)===58?hc(e,r,t):dn(e,e.p,r,0,t)}function dn(e,t,n,r,s){let o=n,i=0,a=!1;if(o===105)return(e.s.charCodeAt(++e.p)!==110||e.s.charCodeAt(++e.p)!==102)&&E.x("invalid value",e,t),e.p++,(r||1)/0;if(o===110)return(e.s.charCodeAt(++e.p)!==97||e.s.charCodeAt(++e.p)!==110)&&E.x("invalid value",e,t),e.p++,NaN;if(o===48){if(++e.p>=e.s.length||tr(o=e.s.charCodeAt(e.p),s))return e.bi===!0?0n:0;if(!r){if(o===120)return er(e,t,16,s);if(o===98)return er(e,t,2,s);if(o===111)return er(e,t,8,s)}o===46?i=2:o===101||o===69?i=4:E.x("illegal leading zero",e,t)}else V(o)||E.x("invalid value",e,t);for(;++e.p<e.s.length&&(o=e.s.charCodeAt(e.p),!tr(o,s));)i||(i=1),o===95?(i&1||E.x("illegal underscore",e),i+=11,a=!0):i===1&&o===46?i=2:(i===1||i===3)&&(o===101||o===69)?i=4:i===4&&(o===43||o===45)||(V(o)?i>9?i-=11:i&1||i++:E.x("illegal character in numeric literal",e));if(!i){let u=(n-48)*(r||1);return e.bi===!0?BigInt(u):u}i&1||E.x("unfinished numeric value",e,t);let l=e.s.slice(t,e.p);return a&&(l=l.replaceAll("_","")),i>1?parseFloat(l):Js(e,l,10,t)}function er(e,t,n,r){let s,o=1;for(;++e.p<e.s.length&&(s=e.s.charCodeAt(e.p),!tr(s,r));)s===95?(o&1&&E.x("illegal underscore",e),o=3):V(s,n)?o&1&&o--:E.x("illegal character in numeric literal",e);o&1&&E.x("unfinished numeric value",e);let i=e.s.slice(t+2,e.p);return o&&(i=i.replaceAll("_","")),Js(e,i,n,t)}function Js(e,t,n,r){if(e.bi!==!0)e:{let s=parseInt(t,n);if(!Number.isSafeInteger(s)){if(e.bi)break e;E.x("integer value cannot be represented losslessly",e,r)}return s}return BigInt(n===10?t:(n===2?"0b":n===8?"0o":"0x")+t)}function mc(e,t,n){let r=e.p++,s;if(!V(t)||!V(e.s.charCodeAt(e.p++))||!V(e.s.charCodeAt(e.p++))||!V(e.s.charCodeAt(e.p++)))return dn(e,e.p=r,t,0,n);if(e.p+=5,V(e.s.charCodeAt(e.p++))||E.x("invalid date-time: date part is malformed",e,r),e.p>=e.s.length||((t=e.s.charCodeAt(e.p))!==32||(s=!0,!V(e.s.charCodeAt(e.p+1))))&&t!==84&&t!==116){let i=e.s.slice(r,e.p);return Nt(e,i,3,!1,r)}if(e.s.charCodeAt(e.p+=3)!==58&&E.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(;V(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 Nt(e,i,1,s,r,"[+00:00]")}if(t===43||t===45){let i=e.s.slice(r,e.p+=6);return Nt(e,i,1,s,r,!e.ld&&"["+e.s.slice(e.p-6,e.p)+"]")}}let o=e.s.slice(r,e.p);return Nt(e,o,2,s,r)}function hc(e,t,n){let r=e.p;if(!V(t)||!V(e.s.charCodeAt(++e.p)))return dn(e,--e.p,t,0,n);if(e.s.charCodeAt(e.p+=4)===58&&(e.p+=3),e.s.charCodeAt(e.p)===46)for(;V(e.s.charCodeAt(++e.p)););let s=e.s.slice(r,e.p);return Nt(e,s,4,!1,r)}function Nt(e,t,n,r,s,o){if(e.ld){let i=new Ve(t,n,r);return i.isValid()||E.x("invalid date",e,s),i}try{switch(o&&(t+=o),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){E.x(i instanceof Error?i.message:""+i,e,s)}}var nr=pe(()=>{Xn();rr();We();Qn();});function gc(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)&&E.x("control characters are not allowed in comments",e)}}function se(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;gc(e)}}var sr=pe(()=>{We();});function pn(e,t=61){let n,r=0,s=[],o,i=e.s.charCodeAt(n=e.p);do{if(i===t)return r||E.x("unexpected end of key",e),r===1&&s.push(e.s.slice(o,e.p)),e.p++,s;i===46?(r||E.x("illegal empty bare key",e),r===1&&s.push(e.s.slice(o,e.p)),r=0):!r&&(i===34||i===39)?(i===e.s.charCodeAt(e.p+1)&&i===e.s.charCodeAt(e.p+2)&&E.x("illegal quoted key: multiline strings are not allowed",e),s.push(fn(e)),r=2,e.p--):i===32||i===9?r===1&&(s.push(e.s.slice(o,e.p)),r=2):r===2||i<48&&i!==45||i>57&&i<65||i>90&&i<97&&i!==95||i>122?E.x("illegal character in key",e):r||(r=1,o=e.p)}while(i=e.s.charCodeAt(++e.p));E.x("incomplete key-value: cannot find end of key",e,n)}function Gs(e){let t=e.p++,n=Object.create(null),r=new Set,s;for(;e.p<e.s.length;){if(se(e),(s=e.s.charCodeAt(e.p))===125)return e.p++,n;let o,i=n,a=!1,l=e.p,u=pn(e);for(let f=0;f<u.length;f++){f&&(i=a?i[o]:i[o]=Object.create(null)),o=u[f],(a=Object.hasOwn(i,o))&&(typeof i[o]!="object"||r.has(i[o]))&&E.x("trying to redefine an already defined value",e,l);let d=o==="__proto__";if(e.uk&&(d||o==="constructor")){i=e.uk!==1&&E.x("document contains an unsafe property",e,l);break}!a&&d&&Object.defineProperty(i,o,{enumerable:!0,configurable:!0,writable:!0})}a&&E.x("trying to redefine an already defined value",e,l),se(e,!0,!0);let c=Pt(e,125);if(i&&typeof(i[o]=c)=="object"&&r.add(c),se(e),(s=e.s.charCodeAt(e.p++))===125)return n;s!==44&&E.x("expected comma or end of structure",e,e.p-1)}E.x("unfinished table",e,t)}function Ws(e){let t=e.p++,n=[],r;for(;e.p<e.s.length;){if(se(e),(r=e.s.charCodeAt(e.p))===93)return e.p++,n;if(n.push(Pt(e,93)),se(e),(r=e.s.charCodeAt(e.p++))===93)return n;r!==44&&E.x("expected comma or end of structure",e,e.p-1)}E.x("unfinished array",e,t)}var rr=pe(()=>{Xn();nr();sr();We();});function Vs(e,t,n,r,s){let o=n,i=r,a,l=!1,u;for(let c=0;c<t.length;c++){if(c){if(o=l?o[a]:o[a]=Object.create(null),i=(u=i[a]).c,s===0&&(u.t===1||u.t===2))return null;if(u.t===2){let f=o.length-1;o=o[f],i=i[f].c}}if(a=t[c],(l=Object.hasOwn(o,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(o,a,{enumerable:!0,configurable:!0,writable:!0}),Object.defineProperty(i,a,{enumerable:!0,configurable:!0,writable:!0})),i[a]={t:c<t.length-1&&s===2?3:s,d:!1,i:0,c:Object.create(null)}}}if(u=i[a],u.t!==s&&!(s===1&&u.t===3)||(s===2&&(u.d||(u.d=!0,o[a]=[]),o[a].push(o=Object.create(null)),u.c[u.i++]=u={t:1,d:!1,i:0,c:Object.create(null)}),u.d))return null;if(u.d=!0,s===1)o=l?o[a]:o[a]=Object.create(null);else if(s===0&&l)return null;return[a,o,u.c]}function Ks(e,t,n){(t===null||e.uk===2)&&E.x(t===null?"trying to redefine an already defined table or value":"document contains an unsafe property",e,n)}function Dt(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),s=Object.create(null),o,i=!1,a=r,l=s;for(e.charCodeAt(0)===65279&&n.p++,se(n);n.p<e.length;){if(e.charCodeAt(n.p)===91){let u=e.charCodeAt(++n.p)===91;o=n.p+=+u,i=!1;let c=pn(n,93);u&&(e.charCodeAt(n.p)!==93&&E.x("expected end of table array declaration",n),n.p++);let f=Vs(n,c,r,s,u?2:1);f?(l=f[2],a=f[1]):(Ks(n,f,o),i=!0)}else{o=n.p;let u=pn(n),c=Vs(n,u,a,l,0);!c&&!i&&Ks(n,c,o),se(n,!0,!0);let f=Pt(n,void 0);c&&!i&&(c[1][c[0]]=f)}se(n,!0),n.p<e.length&&(o=e.charCodeAt(n.p))!==10&&(o!==13||e.charCodeAt(n.p+1)!==10)&&E.x("each key-value declaration must be followed by an end-of-line",n),se(n)}return r}var qs=pe(()=>{rr();nr();sr();We();});function Lt(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 kc(e){for(let t=0;t<e.length;t++)if(Lt(e[t])!=="object")return!1;return e.length!=0}function Xs(e){return JSON.stringify(e).replaceAll("\x7F","\\u007f")}function bc(e){return Xs(Ys?e.toWellFormed():e)}function Qs(e){if(yc.test(e))return e;if(Ys&&!e.isWellFormed())throw new RangeError("key contains illegal lone surrogates");return Xs(e)}function or(e,t,n,r,s){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 bc(e);case"date":if(isNaN(e.getTime()))throw new TypeError("cannot serialize invalid date");return e.toISOString();case"object":return _c(e,n,r,s);case"array":return xc(e,n,r,s);case"temporal/tz+uc":if(s){let o=e.timeZoneId,i=o.charCodeAt(0);if(i!==43&&i!==45&&(i!==85&&i!==71&&i!==90&&i!==69||o!=="UTC"&&o!=="UCT"&&o!=="Universal"&&o!=="Zulu"&&!o.startsWith("GMT")&&o!=="Greenwich"&&!o.startsWith("Etc/")))throw new TypeError("Temporal objects with an IANA timezone are not allowed in Temporal strict mode")}case"temporal/uc":if(s&&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 _c(e,t,n,r){let s=Object.keys(e);if(s.length===0)return"{}";let o="{ ";for(let i=0;i<s.length;i++){let a=s[i];i&&(o+=", "),o+=Qs(a)+" = "+or(e[a],Lt(e[a]),t-1,n,r)}return o+" }"}function xc(e,t,n,r){if(e.length===0)return"[]";let s="[ ";for(let o=0;o<e.length;o++){if(o&&(s+=", "),e[o]===null||e[o]===void 0)throw new TypeError("arrays cannot contain null or undefined values");s+=or(e[o],Lt(e[o]),t-1,n,r)}return s+" ]"}function wc(e,t,n,r,s){if(n===0)throw new Error("Could not stringify the object: maximum object depth exceeded");let o="";for(let i=0;i<e.length;i++)o+=`${o&&`
7
+ ${o}`,n),this.line=r,this.column=s,this.codeblock=o}static x(t,n,r){throw new e(t,{toml:n.s,ptr:r??n.p})}}});function fn(e){let t=e.p,n=e.s.charCodeAt(e.p++),r=n,s=n===39,o=n===e.s.charCodeAt(e.p)&&n===e.s.charCodeAt(e.p+1);o&&((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),o&&(n===10||n===13&&e.s.charCodeAt(e.p+1)===10))l=l&&3;else if(n<32&&n!==9||n===127)E.x("control characters are not allowed in strings",e);else if((!l||l===3)&&n===r&&(!o||e.s.charCodeAt(e.p+1)===r&&e.s.charCodeAt(e.p+2)===r)){if(o&&(e.s.charCodeAt(e.p+3)===r&&e.p++,e.s.charCodeAt(e.p+3)===r&&e.p++),!l){let u=e.s.slice(a,e.p);i=i?i+u:u}return e.p+=o?3:1,i}else if(!l)!s&&n===92&&(i+=e.s.slice(a,a=e.p),l=1);else if(l===1)if(n===120||n===117||n===85){let u=e.p++-1,c=0,f=n===120?2:n===117?4:8;for(let d=0;d<f;d++,e.p++){let p=e.s.charCodeAt(e.p),g=p>=48&&p<=57?p-48:p>=65&&p<=70?p-65+10:p>=97&&p<=102?p-97+10:-1;g<0&&E.x("invalid non-hex character in unicode escape",e),c=c<<4|g}(c<0||c>1114111||c>=55296&&c<=57343)&&E.x("invalid unicode escape",e,u),i+=String.fromCodePoint(c),a=e.p--,l=0}else o&&(n===32||n===9)?l=2:(n===98?i+="\b":n===116?i+=" ":n===110?i+=`
8
+ `:n===102?i+="\f":n===114?i+="\r":n===101?i+="\x1B":n===34?i+='"':n===92?i+="\\":E.x("unrecognised escape sequence",e),a=e.p+1,l=0);else n!==32&&n!==9&&(l===2&&E.x("invalid escape: only line-ending whitespace may be escaped",e,a),l=!s&&n===92?1:0,a=e.p);E.x("unfinished string",e,t)}var Xn=pe(()=>{We();});var mc,Ve,Qn=pe(()=>{mc=/^(\d{4}-\d{2}-\d{2})?[Tt ]?(?:(\d{2}):\d{2}(?::\d{2}(?:\.\d+)?)?)?(Z|z|[-+]\d{2}:\d{2})?$/i,Ve=class e extends Date{#t=!1;#n=!1;#e=null;constructor(t,n,r){let s=!0,o=!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`);s=n!==4,o=n!==3}else{let l=t.match(mc);l?(l[1]||(s=!1,t=`0000-01-01T${t}`),o=!!l[2],o&&t[10]===" "&&(t=t.replace(" ","T")),l[2]&&+l[2]>23?t="":(i=l[3]||null,!i&&o&&(t+="Z"))):t=""}super(t),isNaN(this.getTime())||(this.#t=s,this.#n=o,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 V(e,t=10){return t===16?e>47&&e<58||e>64&&e<71||e>96&&e<103:e>47&&e<48+t}function tr(e,t){return e===32||e===9||e===10||e===13||t&&(e===t||e===44)||e===35}function Pt(e,t){let n=e.p,r=e.s.charCodeAt(e.p);if(r===91||r===123){e.d--||E.x("document contains excessively nested structures. aborting.",e);let s=r===91?Ws(e):Gs(e);return e.d++,s}return r===34||r===39?fn(e):r===116?((e.s.charCodeAt(++e.p)!==114||e.s.charCodeAt(++e.p)!==117||e.s.charCodeAt(++e.p)!==101)&&E.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)&&E.x("invalid value",e,n),e.p++,!1):r===43||r===45?dn(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?hc(e,r,t):e.s.charCodeAt(e.p+2)===58?gc(e,r,t):dn(e,e.p,r,0,t)}function dn(e,t,n,r,s){let o=n,i=0,a=!1;if(o===105)return(e.s.charCodeAt(++e.p)!==110||e.s.charCodeAt(++e.p)!==102)&&E.x("invalid value",e,t),e.p++,(r||1)/0;if(o===110)return(e.s.charCodeAt(++e.p)!==97||e.s.charCodeAt(++e.p)!==110)&&E.x("invalid value",e,t),e.p++,NaN;if(o===48){if(++e.p>=e.s.length||tr(o=e.s.charCodeAt(e.p),s))return e.bi===!0?0n:0;if(!r){if(o===120)return er(e,t,16,s);if(o===98)return er(e,t,2,s);if(o===111)return er(e,t,8,s)}o===46?i=2:o===101||o===69?i=4:E.x("illegal leading zero",e,t)}else V(o)||E.x("invalid value",e,t);for(;++e.p<e.s.length&&(o=e.s.charCodeAt(e.p),!tr(o,s));)i||(i=1),o===95?(i&1||E.x("illegal underscore",e),i+=11,a=!0):i===1&&o===46?i=2:(i===1||i===3)&&(o===101||o===69)?i=4:i===4&&(o===43||o===45)||(V(o)?i>9?i-=11:i&1||i++:E.x("illegal character in numeric literal",e));if(!i){let u=(n-48)*(r||1);return e.bi===!0?BigInt(u):u}i&1||E.x("unfinished numeric value",e,t);let l=e.s.slice(t,e.p);return a&&(l=l.replaceAll("_","")),i>1?parseFloat(l):Js(e,l,10,t)}function er(e,t,n,r){let s,o=1;for(;++e.p<e.s.length&&(s=e.s.charCodeAt(e.p),!tr(s,r));)s===95?(o&1&&E.x("illegal underscore",e),o=3):V(s,n)?o&1&&o--:E.x("illegal character in numeric literal",e);o&1&&E.x("unfinished numeric value",e);let i=e.s.slice(t+2,e.p);return o&&(i=i.replaceAll("_","")),Js(e,i,n,t)}function Js(e,t,n,r){if(e.bi!==!0)e:{let s=parseInt(t,n);if(!Number.isSafeInteger(s)){if(e.bi)break e;E.x("integer value cannot be represented losslessly",e,r)}return s}return BigInt(n===10?t:(n===2?"0b":n===8?"0o":"0x")+t)}function hc(e,t,n){let r=e.p++,s;if(!V(t)||!V(e.s.charCodeAt(e.p++))||!V(e.s.charCodeAt(e.p++))||!V(e.s.charCodeAt(e.p++)))return dn(e,e.p=r,t,0,n);if(e.p+=5,V(e.s.charCodeAt(e.p++))||E.x("invalid date-time: date part is malformed",e,r),e.p>=e.s.length||((t=e.s.charCodeAt(e.p))!==32||(s=!0,!V(e.s.charCodeAt(e.p+1))))&&t!==84&&t!==116){let i=e.s.slice(r,e.p);return Nt(e,i,3,!1,r)}if(e.s.charCodeAt(e.p+=3)!==58&&E.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(;V(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 Nt(e,i,1,s,r,"[+00:00]")}if(t===43||t===45){let i=e.s.slice(r,e.p+=6);return Nt(e,i,1,s,r,!e.ld&&"["+e.s.slice(e.p-6,e.p)+"]")}}let o=e.s.slice(r,e.p);return Nt(e,o,2,s,r)}function gc(e,t,n){let r=e.p;if(!V(t)||!V(e.s.charCodeAt(++e.p)))return dn(e,--e.p,t,0,n);if(e.s.charCodeAt(e.p+=4)===58&&(e.p+=3),e.s.charCodeAt(e.p)===46)for(;V(e.s.charCodeAt(++e.p)););let s=e.s.slice(r,e.p);return Nt(e,s,4,!1,r)}function Nt(e,t,n,r,s,o){if(e.ld){let i=new Ve(t,n,r);return i.isValid()||E.x("invalid date",e,s),i}try{switch(o&&(t+=o),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){E.x(i instanceof Error?i.message:""+i,e,s)}}var nr=pe(()=>{Xn();rr();We();Qn();});function yc(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)&&E.x("control characters are not allowed in comments",e)}}function se(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;yc(e)}}var sr=pe(()=>{We();});function pn(e,t=61){let n,r=0,s=[],o,i=e.s.charCodeAt(n=e.p);do{if(i===t)return r||E.x("unexpected end of key",e),r===1&&s.push(e.s.slice(o,e.p)),e.p++,s;i===46?(r||E.x("illegal empty bare key",e),r===1&&s.push(e.s.slice(o,e.p)),r=0):!r&&(i===34||i===39)?(i===e.s.charCodeAt(e.p+1)&&i===e.s.charCodeAt(e.p+2)&&E.x("illegal quoted key: multiline strings are not allowed",e),s.push(fn(e)),r=2,e.p--):i===32||i===9?r===1&&(s.push(e.s.slice(o,e.p)),r=2):r===2||i<48&&i!==45||i>57&&i<65||i>90&&i<97&&i!==95||i>122?E.x("illegal character in key",e):r||(r=1,o=e.p)}while(i=e.s.charCodeAt(++e.p));E.x("incomplete key-value: cannot find end of key",e,n)}function Gs(e){let t=e.p++,n=Object.create(null),r=new Set,s;for(;e.p<e.s.length;){if(se(e),(s=e.s.charCodeAt(e.p))===125)return e.p++,n;let o,i=n,a=!1,l=e.p,u=pn(e);for(let f=0;f<u.length;f++){f&&(i=a?i[o]:i[o]=Object.create(null)),o=u[f],(a=Object.hasOwn(i,o))&&(typeof i[o]!="object"||r.has(i[o]))&&E.x("trying to redefine an already defined value",e,l);let d=o==="__proto__";if(e.uk&&(d||o==="constructor")){i=e.uk!==1&&E.x("document contains an unsafe property",e,l);break}!a&&d&&Object.defineProperty(i,o,{enumerable:!0,configurable:!0,writable:!0})}a&&E.x("trying to redefine an already defined value",e,l),se(e,!0,!0);let c=Pt(e,125);if(i&&typeof(i[o]=c)=="object"&&r.add(c),se(e),(s=e.s.charCodeAt(e.p++))===125)return n;s!==44&&E.x("expected comma or end of structure",e,e.p-1)}E.x("unfinished table",e,t)}function Ws(e){let t=e.p++,n=[],r;for(;e.p<e.s.length;){if(se(e),(r=e.s.charCodeAt(e.p))===93)return e.p++,n;if(n.push(Pt(e,93)),se(e),(r=e.s.charCodeAt(e.p++))===93)return n;r!==44&&E.x("expected comma or end of structure",e,e.p-1)}E.x("unfinished array",e,t)}var rr=pe(()=>{Xn();nr();sr();We();});function Vs(e,t,n,r,s){let o=n,i=r,a,l=!1,u;for(let c=0;c<t.length;c++){if(c){if(o=l?o[a]:o[a]=Object.create(null),i=(u=i[a]).c,s===0&&(u.t===1||u.t===2))return null;if(u.t===2){let f=o.length-1;o=o[f],i=i[f].c}}if(a=t[c],(l=Object.hasOwn(o,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(o,a,{enumerable:!0,configurable:!0,writable:!0}),Object.defineProperty(i,a,{enumerable:!0,configurable:!0,writable:!0})),i[a]={t:c<t.length-1&&s===2?3:s,d:!1,i:0,c:Object.create(null)}}}if(u=i[a],u.t!==s&&!(s===1&&u.t===3)||(s===2&&(u.d||(u.d=!0,o[a]=[]),o[a].push(o=Object.create(null)),u.c[u.i++]=u={t:1,d:!1,i:0,c:Object.create(null)}),u.d))return null;if(u.d=!0,s===1)o=l?o[a]:o[a]=Object.create(null);else if(s===0&&l)return null;return[a,o,u.c]}function Ks(e,t,n){(t===null||e.uk===2)&&E.x(t===null?"trying to redefine an already defined table or value":"document contains an unsafe property",e,n)}function Dt(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),s=Object.create(null),o,i=!1,a=r,l=s;for(e.charCodeAt(0)===65279&&n.p++,se(n);n.p<e.length;){if(e.charCodeAt(n.p)===91){let u=e.charCodeAt(++n.p)===91;o=n.p+=+u,i=!1;let c=pn(n,93);u&&(e.charCodeAt(n.p)!==93&&E.x("expected end of table array declaration",n),n.p++);let f=Vs(n,c,r,s,u?2:1);f?(l=f[2],a=f[1]):(Ks(n,f,o),i=!0)}else{o=n.p;let u=pn(n),c=Vs(n,u,a,l,0);!c&&!i&&Ks(n,c,o),se(n,!0,!0);let f=Pt(n,void 0);c&&!i&&(c[1][c[0]]=f)}se(n,!0),n.p<e.length&&(o=e.charCodeAt(n.p))!==10&&(o!==13||e.charCodeAt(n.p+1)!==10)&&E.x("each key-value declaration must be followed by an end-of-line",n),se(n)}return r}var qs=pe(()=>{rr();nr();sr();We();});function Lt(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 bc(e){for(let t=0;t<e.length;t++)if(Lt(e[t])!=="object")return!1;return e.length!=0}function Xs(e){return JSON.stringify(e).replaceAll("\x7F","\\u007f")}function _c(e){return Xs(Ys?e.toWellFormed():e)}function Qs(e){if(kc.test(e))return e;if(Ys&&!e.isWellFormed())throw new RangeError("key contains illegal lone surrogates");return Xs(e)}function or(e,t,n,r,s){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 _c(e);case"date":if(isNaN(e.getTime()))throw new TypeError("cannot serialize invalid date");return e.toISOString();case"object":return xc(e,n,r,s);case"array":return wc(e,n,r,s);case"temporal/tz+uc":if(s){let o=e.timeZoneId,i=o.charCodeAt(0);if(i!==43&&i!==45&&(i!==85&&i!==71&&i!==90&&i!==69||o!=="UTC"&&o!=="UCT"&&o!=="Universal"&&o!=="Zulu"&&!o.startsWith("GMT")&&o!=="Greenwich"&&!o.startsWith("Etc/")))throw new TypeError("Temporal objects with an IANA timezone are not allowed in Temporal strict mode")}case"temporal/uc":if(s&&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 xc(e,t,n,r){let s=Object.keys(e);if(s.length===0)return"{}";let o="{ ";for(let i=0;i<s.length;i++){let a=s[i];i&&(o+=", "),o+=Qs(a)+" = "+or(e[a],Lt(e[a]),t-1,n,r)}return o+" }"}function wc(e,t,n,r){if(e.length===0)return"[]";let s="[ ";for(let o=0;o<e.length;o++){if(o&&(s+=", "),e[o]===null||e[o]===void 0)throw new TypeError("arrays cannot contain null or undefined values");s+=or(e[o],Lt(e[o]),t-1,n,r)}return s+" ]"}function Sc(e,t,n,r,s){if(n===0)throw new Error("Could not stringify the object: maximum object depth exceeded");let o="";for(let i=0;i<e.length;i++)o+=`${o&&`
9
9
  `}[[${t}]]
10
- `,o+=ir(0,e[i],t,n,r,s);return o}function ir(e,t,n,r,s,o){if(r===0)throw new Error("Could not stringify the object: maximum object depth exceeded");let i="",a="",l=Object.keys(t);for(let u=0;u<l.length;u++){let c=l[u];if(t[c]!==null&&t[c]!==void 0){let f=Lt(t[c]);if(f==="symbol"||f==="function")throw new TypeError(`cannot serialize values of type '${f}'`);let d=Qs(c);if(f==="array"&&kc(t[c]))a+=(a&&`
11
- `)+wc(t[c],n?`${n}.${d}`:d,r-1,s,o);else if(f==="object"){let p=n?`${n}.${d}`:d;a+=(a&&`
10
+ `,o+=ir(0,e[i],t,n,r,s);return o}function ir(e,t,n,r,s,o){if(r===0)throw new Error("Could not stringify the object: maximum object depth exceeded");let i="",a="",l=Object.keys(t);for(let u=0;u<l.length;u++){let c=l[u];if(t[c]!==null&&t[c]!==void 0){let f=Lt(t[c]);if(f==="symbol"||f==="function")throw new TypeError(`cannot serialize values of type '${f}'`);let d=Qs(c);if(f==="array"&&bc(t[c]))a+=(a&&`
11
+ `)+Sc(t[c],n?`${n}.${d}`:d,r-1,s,o);else if(f==="object"){let p=n?`${n}.${d}`:d;a+=(a&&`
12
12
  `)+ir(p,t[c],p,r-1,s,o)}else i+=d,i+=" = ",i+=or(t[c],f,r,s,o),i+=`
13
13
  `}}return e&&(i||!a)&&(i=i?`[${e}]
14
14
  ${i}`:`[${e}]`),i&&a?`${i}
15
15
  ${a}`:i||a}function ar(e,{maxDepth:t=1e3,numbersAsFloat:n=!1,strictTemporal:r=!1}={}){if(Lt(e)!=="object")throw new TypeError("stringify can only be called with an object");let s=ir(0,e,"",t,n,r);return s[s.length-1]!==`
16
16
  `?s+`
17
- `:s}var yc,Ys,eo=pe(()=>{yc=/^[a-z0-9-_]+$/i,Ys=!!"".isWellFormed});var lr={};Ns(lr,{TomlDate:()=>Ve,TomlError:()=>E,default:()=>Sc,parse:()=>Dt,stringify:()=>ar});var Sc,mn=pe(()=>{qs();eo();Qn();We();Sc={parse:Dt,stringify:ar,TomlDate:Ve,TomlError:E}});import{readdir as vc,readFile as Ec}from"node:fs/promises";import{join as no,dirname as Tc}from"node:path";import{fileURLToPath as Ac}from"node:url";var k={};Ns(k,{BRAND:()=>Tu,DIRTY:()=>Oe,EMPTY_PATH:()=>su,INVALID:()=>v,NEVER:()=>cc,OK:()=>z,ParseStatus:()=>j,Schema:()=>$,ZodAny:()=>Se,ZodArray:()=>ye,ZodBigInt:()=>Ne,ZodBoolean:()=>Pe,ZodBranded:()=>Ot,ZodCatch:()=>Je,ZodDate:()=>De,ZodDefault:()=>Ze,ZodDiscriminatedUnion:()=>ln,ZodEffects:()=>Y,ZodEnum:()=>Ue,ZodError:()=>G,ZodFirstPartyTypeKind:()=>T,ZodFunction:()=>cn,ZodIntersection:()=>je,ZodIssueCode:()=>g,ZodLazy:()=>He,ZodLiteral:()=>ze,ZodMap:()=>at,ZodNaN:()=>ut,ZodNativeEnum:()=>Be,ZodNever:()=>re,ZodNull:()=>Fe,ZodNullable:()=>ue,ZodNumber:()=>Ie,ZodObject:()=>W,ZodOptional:()=>K,ZodParsedType:()=>_,ZodPipeline:()=>It,ZodPromise:()=>ve,ZodReadonly:()=>Ge,ZodRecord:()=>un,ZodSchema:()=>$,ZodSet:()=>lt,ZodString:()=>we,ZodSymbol:()=>ot,ZodTransformer:()=>Y,ZodTuple:()=>le,ZodType:()=>$,ZodUndefined:()=>Le,ZodUnion:()=>Me,ZodUnknown:()=>ge,ZodVoid:()=>it,addIssueToContext:()=>b,any:()=>Du,array:()=>ju,bigint:()=>Cu,boolean:()=>Zs,coerce:()=>uc,custom:()=>zs,date:()=>Ou,datetimeRegex:()=>js,defaultErrorMap:()=>me,discriminatedUnion:()=>Bu,effect:()=>tc,enum:()=>Xu,function:()=>Ku,getErrorMap:()=>nt,getParsedType:()=>ae,instanceof:()=>Ru,intersection:()=>Zu,isAborted:()=>on,isAsync:()=>rt,isDirty:()=>an,isValid:()=>xe,late:()=>Au,lazy:()=>qu,literal:()=>Yu,makeIssue:()=>Ct,map:()=>Wu,nan:()=>$u,nativeEnum:()=>Qu,never:()=>Fu,null:()=>Pu,nullable:()=>rc,number:()=>Bs,object:()=>Hu,objectUtil:()=>Kn,oboolean:()=>lc,onumber:()=>ac,optional:()=>nc,ostring:()=>ic,pipeline:()=>oc,preprocess:()=>sc,promise:()=>ec,quotelessJson:()=>tu,record:()=>Gu,set:()=>Vu,setErrorMap:()=>ru,strictObject:()=>zu,string:()=>Us,symbol:()=>Iu,transformer:()=>tc,tuple:()=>Ju,undefined:()=>Nu,union:()=>Uu,unknown:()=>Lu,util:()=>N,void:()=>Mu});var N;(function(e){e.assertEqual=s=>{};function t(s){}e.assertIs=t;function n(s){throw new Error}e.assertNever=n,e.arrayToEnum=s=>{let o={};for(let i of s)o[i]=i;return o},e.getValidEnumValues=s=>{let o=e.objectKeys(s).filter(a=>typeof s[s[a]]!="number"),i={};for(let a of o)i[a]=s[a];return e.objectValues(i)},e.objectValues=s=>e.objectKeys(s).map(function(o){return s[o]}),e.objectKeys=typeof Object.keys=="function"?s=>Object.keys(s):s=>{let o=[];for(let i in s)Object.prototype.hasOwnProperty.call(s,i)&&o.push(i);return o},e.find=(s,o)=>{for(let i of s)if(o(i))return i},e.isInteger=typeof Number.isInteger=="function"?s=>Number.isInteger(s):s=>typeof s=="number"&&Number.isFinite(s)&&Math.floor(s)===s;function r(s,o=" | "){return s.map(i=>typeof i=="string"?`'${i}'`:i).join(o)}e.joinValues=r,e.jsonStringifyReplacer=(s,o)=>typeof o=="bigint"?o.toString():o})(N||(N={}));var Kn;(function(e){e.mergeShapes=(t,n)=>({...t,...n})})(Kn||(Kn={}));var _=N.arrayToEnum(["string","nan","number","integer","float","boolean","date","bigint","symbol","function","undefined","null","array","object","unknown","promise","void","never","map","set"]),ae=e=>{switch(typeof e){case"undefined":return _.undefined;case"string":return _.string;case"number":return Number.isNaN(e)?_.nan:_.number;case"boolean":return _.boolean;case"function":return _.function;case"bigint":return _.bigint;case"symbol":return _.symbol;case"object":return Array.isArray(e)?_.array:e===null?_.null:e.then&&typeof e.then=="function"&&e.catch&&typeof e.catch=="function"?_.promise:typeof Map<"u"&&e instanceof Map?_.map:typeof Set<"u"&&e instanceof Set?_.set:typeof Date<"u"&&e instanceof Date?_.date:_.object;default:return _.unknown}};var g=N.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"]),tu=e=>JSON.stringify(e,null,2).replace(/"([^"]+)":/g,"$1:"),G=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(o){return o.message},r={_errors:[]},s=o=>{for(let i of o.issues)if(i.code==="invalid_union")i.unionErrors.map(s);else if(i.code==="invalid_return_type")s(i.returnTypeError);else if(i.code==="invalid_arguments")s(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 u=i.path[l];l===i.path.length-1?(a[u]=a[u]||{_errors:[]},a[u]._errors.push(n(i))):a[u]=a[u]||{_errors:[]},a=a[u],l++}}};return s(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,N.jsonStringifyReplacer,2)}get isEmpty(){return this.issues.length===0}flatten(t=n=>n.message){let n={},r=[];for(let s of this.issues)if(s.path.length>0){let o=s.path[0];n[o]=n[o]||[],n[o].push(t(s))}else r.push(t(s));return{formErrors:r,fieldErrors:n}}get formErrors(){return this.flatten()}};G.create=e=>new G(e);var nu=(e,t)=>{let n;switch(e.code){case g.invalid_type:e.received===_.undefined?n="Required":n=`Expected ${e.expected}, received ${e.received}`;break;case g.invalid_literal:n=`Invalid literal value, expected ${JSON.stringify(e.expected,N.jsonStringifyReplacer)}`;break;case g.unrecognized_keys:n=`Unrecognized key(s) in object: ${N.joinValues(e.keys,", ")}`;break;case g.invalid_union:n="Invalid input";break;case g.invalid_union_discriminator:n=`Invalid discriminator value. Expected ${N.joinValues(e.options)}`;break;case g.invalid_enum_value:n=`Invalid enum value. Expected ${N.joinValues(e.options)}, received '${e.received}'`;break;case g.invalid_arguments:n="Invalid function arguments";break;case g.invalid_return_type:n="Invalid function return type";break;case g.invalid_date:n="Invalid date";break;case g.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}"`:N.assertNever(e.validation):e.validation!=="regex"?n=`Invalid ${e.validation}`:n="Invalid";break;case g.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 g.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 g.custom:n="Invalid input";break;case g.invalid_intersection_types:n="Intersection results could not be merged";break;case g.not_multiple_of:n=`Number must be a multiple of ${e.multipleOf}`;break;case g.not_finite:n="Number must be finite";break;default:n=t.defaultError,N.assertNever(e)}return{message:n}},me=nu;var Ps=me;function ru(e){Ps=e}function nt(){return Ps}var Ct=e=>{let{data:t,path:n,errorMaps:r,issueData:s}=e,o=[...n,...s.path||[]],i={...s,path:o};if(s.message!==void 0)return{...s,path:o,message:s.message};let a="",l=r.filter(u=>!!u).slice().reverse();for(let u of l)a=u(i,{data:t,defaultError:a}).message;return{...s,path:o,message:a}},su=[];function b(e,t){let n=nt(),r=Ct({issueData:t,data:e.data,path:e.path,errorMaps:[e.common.contextualErrorMap,e.schemaErrorMap,n,n===me?void 0:me].filter(s=>!!s)});e.common.issues.push(r)}var j=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 s of n){if(s.status==="aborted")return v;s.status==="dirty"&&t.dirty(),r.push(s.value)}return{status:t.value,value:r}}static async mergeObjectAsync(t,n){let r=[];for(let s of n){let o=await s.key,i=await s.value;r.push({key:o,value:i})}return e.mergeObjectSync(t,r)}static mergeObjectSync(t,n){let r={};for(let s of n){let{key:o,value:i}=s;if(o.status==="aborted"||i.status==="aborted")return v;o.status==="dirty"&&t.dirty(),i.status==="dirty"&&t.dirty(),o.value!=="__proto__"&&(typeof i.value<"u"||s.alwaysSet)&&(r[o.value]=i.value)}return{status:t.value,value:r}}},v=Object.freeze({status:"aborted"}),Oe=e=>({status:"dirty",value:e}),z=e=>({status:"valid",value:e}),on=e=>e.status==="aborted",an=e=>e.status==="dirty",xe=e=>e.status==="valid",rt=e=>typeof Promise<"u"&&e instanceof Promise;var S;(function(e){e.errToObj=t=>typeof t=="string"?{message:t}:t||{},e.toString=t=>typeof t=="string"?t:t?.message})(S||(S={}));var q=class{constructor(t,n,r,s){this._cachedPath=[],this.parent=t,this.data=n,this._path=r,this._key=s}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}},Ds=(e,t)=>{if(xe(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 G(e.common.issues);return this._error=n,this._error}}};function R(e){if(!e)return{};let{errorMap:t,invalid_type_error:n,required_error:r,description:s}=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:s}:{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:s}}var $=class{get description(){return this._def.description}_getType(t){return ae(t.data)}_getOrReturnCtx(t,n){return n||{common:t.parent.common,data:t.data,parsedType:ae(t.data),schemaErrorMap:this._def.errorMap,path:t.path,parent:t.parent}}_processInputParams(t){return{status:new j,ctx:{common:t.parent.common,data:t.data,parsedType:ae(t.data),schemaErrorMap:this._def.errorMap,path:t.path,parent:t.parent}}}_parseSync(t){let n=this._parse(t);if(rt(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:ae(t)},s=this._parseSync({data:t,path:r.path,parent:r});return Ds(r,s)}"~validate"(t){let n={common:{issues:[],async:!!this["~standard"].async},path:[],schemaErrorMap:this._def.errorMap,parent:null,data:t,parsedType:ae(t)};if(!this["~standard"].async)try{let r=this._parseSync({data:t,path:[],parent:n});return xe(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=>xe(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:ae(t)},s=this._parse({data:t,path:r.path,parent:r}),o=await(rt(s)?s:Promise.resolve(s));return Ds(r,o)}refine(t,n){let r=s=>typeof n=="string"||typeof n>"u"?{message:n}:typeof n=="function"?n(s):n;return this._refinement((s,o)=>{let i=t(s),a=()=>o.addIssue({code:g.custom,...r(s)});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,s)=>t(r)?!0:(s.addIssue(typeof n=="function"?n(r,s):n),!1))}_refinement(t){return new Y({schema:this,typeName:T.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 K.create(this,this._def)}nullable(){return ue.create(this,this._def)}nullish(){return this.nullable().optional()}array(){return ye.create(this)}promise(){return ve.create(this,this._def)}or(t){return Me.create([this,t],this._def)}and(t){return je.create(this,t,this._def)}transform(t){return new Y({...R(this._def),schema:this,typeName:T.ZodEffects,effect:{type:"transform",transform:t}})}default(t){let n=typeof t=="function"?t:()=>t;return new Ze({...R(this._def),innerType:this,defaultValue:n,typeName:T.ZodDefault})}brand(){return new Ot({typeName:T.ZodBranded,type:this,...R(this._def)})}catch(t){let n=typeof t=="function"?t:()=>t;return new Je({...R(this._def),innerType:this,catchValue:n,typeName:T.ZodCatch})}describe(t){let n=this.constructor;return new n({...this._def,description:t})}pipe(t){return It.create(this,t)}readonly(){return Ge.create(this)}isOptional(){return this.safeParse(void 0).success}isNullable(){return this.safeParse(null).success}},ou=/^c[^\s-]{8,}$/i,iu=/^[0-9a-z]+$/,au=/^[0-9A-HJKMNP-TV-Z]{26}$/i,lu=/^[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,uu=/^[a-z0-9_-]{21}$/i,cu=/^[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]*$/,fu=/^[-+]?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)?)??$/,du=/^(?!\.)(?!.*\.\.)([A-Z0-9_'+\-\.]*)[A-Z0-9_+-]@([A-Z0-9][A-Z0-9\-]*\.)+[A-Z]{2,}$/i,pu="^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$",qn,mu=/^(?:(?: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])$/,hu=/^(?:(?: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])$/,gu=/^(([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]))$/,yu=/^(([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])$/,ku=/^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/,bu=/^([0-9a-zA-Z-_]{4})*(([0-9a-zA-Z-_]{2}(==)?)|([0-9a-zA-Z-_]{3}(=)?))?$/,Fs="((\\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])))",_u=new RegExp(`^${Fs}$`);function Ms(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 xu(e){return new RegExp(`^${Ms(e)}$`)}function js(e){let t=`${Fs}T${Ms(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 wu(e,t){return!!((t==="v4"||!t)&&mu.test(e)||(t==="v6"||!t)&&gu.test(e))}function Su(e,t){if(!cu.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,"="),s=JSON.parse(atob(r));return!(typeof s!="object"||s===null||"typ"in s&&s?.typ!=="JWT"||!s.alg||t&&s.alg!==t)}catch{return!1}}function vu(e,t){return!!((t==="v4"||!t)&&hu.test(e)||(t==="v6"||!t)&&yu.test(e))}var we=class e extends ${_parse(t){if(this._def.coerce&&(t.data=String(t.data)),this._getType(t)!==_.string){let o=this._getOrReturnCtx(t);return b(o,{code:g.invalid_type,expected:_.string,received:o.parsedType}),v}let r=new j,s;for(let o of this._def.checks)if(o.kind==="min")t.data.length<o.value&&(s=this._getOrReturnCtx(t,s),b(s,{code:g.too_small,minimum:o.value,type:"string",inclusive:!0,exact:!1,message:o.message}),r.dirty());else if(o.kind==="max")t.data.length>o.value&&(s=this._getOrReturnCtx(t,s),b(s,{code:g.too_big,maximum:o.value,type:"string",inclusive:!0,exact:!1,message:o.message}),r.dirty());else if(o.kind==="length"){let i=t.data.length>o.value,a=t.data.length<o.value;(i||a)&&(s=this._getOrReturnCtx(t,s),i?b(s,{code:g.too_big,maximum:o.value,type:"string",inclusive:!0,exact:!0,message:o.message}):a&&b(s,{code:g.too_small,minimum:o.value,type:"string",inclusive:!0,exact:!0,message:o.message}),r.dirty())}else if(o.kind==="email")du.test(t.data)||(s=this._getOrReturnCtx(t,s),b(s,{validation:"email",code:g.invalid_string,message:o.message}),r.dirty());else if(o.kind==="emoji")qn||(qn=new RegExp(pu,"u")),qn.test(t.data)||(s=this._getOrReturnCtx(t,s),b(s,{validation:"emoji",code:g.invalid_string,message:o.message}),r.dirty());else if(o.kind==="uuid")lu.test(t.data)||(s=this._getOrReturnCtx(t,s),b(s,{validation:"uuid",code:g.invalid_string,message:o.message}),r.dirty());else if(o.kind==="nanoid")uu.test(t.data)||(s=this._getOrReturnCtx(t,s),b(s,{validation:"nanoid",code:g.invalid_string,message:o.message}),r.dirty());else if(o.kind==="cuid")ou.test(t.data)||(s=this._getOrReturnCtx(t,s),b(s,{validation:"cuid",code:g.invalid_string,message:o.message}),r.dirty());else if(o.kind==="cuid2")iu.test(t.data)||(s=this._getOrReturnCtx(t,s),b(s,{validation:"cuid2",code:g.invalid_string,message:o.message}),r.dirty());else if(o.kind==="ulid")au.test(t.data)||(s=this._getOrReturnCtx(t,s),b(s,{validation:"ulid",code:g.invalid_string,message:o.message}),r.dirty());else if(o.kind==="url")try{new URL(t.data)}catch{s=this._getOrReturnCtx(t,s),b(s,{validation:"url",code:g.invalid_string,message:o.message}),r.dirty()}else o.kind==="regex"?(o.regex.lastIndex=0,o.regex.test(t.data)||(s=this._getOrReturnCtx(t,s),b(s,{validation:"regex",code:g.invalid_string,message:o.message}),r.dirty())):o.kind==="trim"?t.data=t.data.trim():o.kind==="includes"?t.data.includes(o.value,o.position)||(s=this._getOrReturnCtx(t,s),b(s,{code:g.invalid_string,validation:{includes:o.value,position:o.position},message:o.message}),r.dirty()):o.kind==="toLowerCase"?t.data=t.data.toLowerCase():o.kind==="toUpperCase"?t.data=t.data.toUpperCase():o.kind==="startsWith"?t.data.startsWith(o.value)||(s=this._getOrReturnCtx(t,s),b(s,{code:g.invalid_string,validation:{startsWith:o.value},message:o.message}),r.dirty()):o.kind==="endsWith"?t.data.endsWith(o.value)||(s=this._getOrReturnCtx(t,s),b(s,{code:g.invalid_string,validation:{endsWith:o.value},message:o.message}),r.dirty()):o.kind==="datetime"?js(o).test(t.data)||(s=this._getOrReturnCtx(t,s),b(s,{code:g.invalid_string,validation:"datetime",message:o.message}),r.dirty()):o.kind==="date"?_u.test(t.data)||(s=this._getOrReturnCtx(t,s),b(s,{code:g.invalid_string,validation:"date",message:o.message}),r.dirty()):o.kind==="time"?xu(o).test(t.data)||(s=this._getOrReturnCtx(t,s),b(s,{code:g.invalid_string,validation:"time",message:o.message}),r.dirty()):o.kind==="duration"?fu.test(t.data)||(s=this._getOrReturnCtx(t,s),b(s,{validation:"duration",code:g.invalid_string,message:o.message}),r.dirty()):o.kind==="ip"?wu(t.data,o.version)||(s=this._getOrReturnCtx(t,s),b(s,{validation:"ip",code:g.invalid_string,message:o.message}),r.dirty()):o.kind==="jwt"?Su(t.data,o.alg)||(s=this._getOrReturnCtx(t,s),b(s,{validation:"jwt",code:g.invalid_string,message:o.message}),r.dirty()):o.kind==="cidr"?vu(t.data,o.version)||(s=this._getOrReturnCtx(t,s),b(s,{validation:"cidr",code:g.invalid_string,message:o.message}),r.dirty()):o.kind==="base64"?ku.test(t.data)||(s=this._getOrReturnCtx(t,s),b(s,{validation:"base64",code:g.invalid_string,message:o.message}),r.dirty()):o.kind==="base64url"?bu.test(t.data)||(s=this._getOrReturnCtx(t,s),b(s,{validation:"base64url",code:g.invalid_string,message:o.message}),r.dirty()):N.assertNever(o);return{status:r.value,value:t.data}}_regex(t,n,r){return this.refinement(s=>t.test(s),{validation:n,code:g.invalid_string,...S.errToObj(r)})}_addCheck(t){return new e({...this._def,checks:[...this._def.checks,t]})}email(t){return this._addCheck({kind:"email",...S.errToObj(t)})}url(t){return this._addCheck({kind:"url",...S.errToObj(t)})}emoji(t){return this._addCheck({kind:"emoji",...S.errToObj(t)})}uuid(t){return this._addCheck({kind:"uuid",...S.errToObj(t)})}nanoid(t){return this._addCheck({kind:"nanoid",...S.errToObj(t)})}cuid(t){return this._addCheck({kind:"cuid",...S.errToObj(t)})}cuid2(t){return this._addCheck({kind:"cuid2",...S.errToObj(t)})}ulid(t){return this._addCheck({kind:"ulid",...S.errToObj(t)})}base64(t){return this._addCheck({kind:"base64",...S.errToObj(t)})}base64url(t){return this._addCheck({kind:"base64url",...S.errToObj(t)})}jwt(t){return this._addCheck({kind:"jwt",...S.errToObj(t)})}ip(t){return this._addCheck({kind:"ip",...S.errToObj(t)})}cidr(t){return this._addCheck({kind:"cidr",...S.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,...S.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,...S.errToObj(t?.message)})}duration(t){return this._addCheck({kind:"duration",...S.errToObj(t)})}regex(t,n){return this._addCheck({kind:"regex",regex:t,...S.errToObj(n)})}includes(t,n){return this._addCheck({kind:"includes",value:t,position:n?.position,...S.errToObj(n?.message)})}startsWith(t,n){return this._addCheck({kind:"startsWith",value:t,...S.errToObj(n)})}endsWith(t,n){return this._addCheck({kind:"endsWith",value:t,...S.errToObj(n)})}min(t,n){return this._addCheck({kind:"min",value:t,...S.errToObj(n)})}max(t,n){return this._addCheck({kind:"max",value:t,...S.errToObj(n)})}length(t,n){return this._addCheck({kind:"length",value:t,...S.errToObj(n)})}nonempty(t){return this.min(1,S.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}};we.create=e=>new we({checks:[],typeName:T.ZodString,coerce:e?.coerce??!1,...R(e)});function Eu(e,t){let n=(e.toString().split(".")[1]||"").length,r=(t.toString().split(".")[1]||"").length,s=n>r?n:r,o=Number.parseInt(e.toFixed(s).replace(".","")),i=Number.parseInt(t.toFixed(s).replace(".",""));return o%i/10**s}var Ie=class e extends ${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)!==_.number){let o=this._getOrReturnCtx(t);return b(o,{code:g.invalid_type,expected:_.number,received:o.parsedType}),v}let r,s=new j;for(let o of this._def.checks)o.kind==="int"?N.isInteger(t.data)||(r=this._getOrReturnCtx(t,r),b(r,{code:g.invalid_type,expected:"integer",received:"float",message:o.message}),s.dirty()):o.kind==="min"?(o.inclusive?t.data<o.value:t.data<=o.value)&&(r=this._getOrReturnCtx(t,r),b(r,{code:g.too_small,minimum:o.value,type:"number",inclusive:o.inclusive,exact:!1,message:o.message}),s.dirty()):o.kind==="max"?(o.inclusive?t.data>o.value:t.data>=o.value)&&(r=this._getOrReturnCtx(t,r),b(r,{code:g.too_big,maximum:o.value,type:"number",inclusive:o.inclusive,exact:!1,message:o.message}),s.dirty()):o.kind==="multipleOf"?Eu(t.data,o.value)!==0&&(r=this._getOrReturnCtx(t,r),b(r,{code:g.not_multiple_of,multipleOf:o.value,message:o.message}),s.dirty()):o.kind==="finite"?Number.isFinite(t.data)||(r=this._getOrReturnCtx(t,r),b(r,{code:g.not_finite,message:o.message}),s.dirty()):N.assertNever(o);return{status:s.value,value:t.data}}gte(t,n){return this.setLimit("min",t,!0,S.toString(n))}gt(t,n){return this.setLimit("min",t,!1,S.toString(n))}lte(t,n){return this.setLimit("max",t,!0,S.toString(n))}lt(t,n){return this.setLimit("max",t,!1,S.toString(n))}setLimit(t,n,r,s){return new e({...this._def,checks:[...this._def.checks,{kind:t,value:n,inclusive:r,message:S.toString(s)}]})}_addCheck(t){return new e({...this._def,checks:[...this._def.checks,t]})}int(t){return this._addCheck({kind:"int",message:S.toString(t)})}positive(t){return this._addCheck({kind:"min",value:0,inclusive:!1,message:S.toString(t)})}negative(t){return this._addCheck({kind:"max",value:0,inclusive:!1,message:S.toString(t)})}nonpositive(t){return this._addCheck({kind:"max",value:0,inclusive:!0,message:S.toString(t)})}nonnegative(t){return this._addCheck({kind:"min",value:0,inclusive:!0,message:S.toString(t)})}multipleOf(t,n){return this._addCheck({kind:"multipleOf",value:t,message:S.toString(n)})}finite(t){return this._addCheck({kind:"finite",message:S.toString(t)})}safe(t){return this._addCheck({kind:"min",inclusive:!0,value:Number.MIN_SAFE_INTEGER,message:S.toString(t)})._addCheck({kind:"max",inclusive:!0,value:Number.MAX_SAFE_INTEGER,message:S.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"&&N.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)}};Ie.create=e=>new Ie({checks:[],typeName:T.ZodNumber,coerce:e?.coerce||!1,...R(e)});var Ne=class e extends ${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)!==_.bigint)return this._getInvalidInput(t);let r,s=new j;for(let o of this._def.checks)o.kind==="min"?(o.inclusive?t.data<o.value:t.data<=o.value)&&(r=this._getOrReturnCtx(t,r),b(r,{code:g.too_small,type:"bigint",minimum:o.value,inclusive:o.inclusive,message:o.message}),s.dirty()):o.kind==="max"?(o.inclusive?t.data>o.value:t.data>=o.value)&&(r=this._getOrReturnCtx(t,r),b(r,{code:g.too_big,type:"bigint",maximum:o.value,inclusive:o.inclusive,message:o.message}),s.dirty()):o.kind==="multipleOf"?t.data%o.value!==BigInt(0)&&(r=this._getOrReturnCtx(t,r),b(r,{code:g.not_multiple_of,multipleOf:o.value,message:o.message}),s.dirty()):N.assertNever(o);return{status:s.value,value:t.data}}_getInvalidInput(t){let n=this._getOrReturnCtx(t);return b(n,{code:g.invalid_type,expected:_.bigint,received:n.parsedType}),v}gte(t,n){return this.setLimit("min",t,!0,S.toString(n))}gt(t,n){return this.setLimit("min",t,!1,S.toString(n))}lte(t,n){return this.setLimit("max",t,!0,S.toString(n))}lt(t,n){return this.setLimit("max",t,!1,S.toString(n))}setLimit(t,n,r,s){return new e({...this._def,checks:[...this._def.checks,{kind:t,value:n,inclusive:r,message:S.toString(s)}]})}_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:S.toString(t)})}negative(t){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!1,message:S.toString(t)})}nonpositive(t){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!0,message:S.toString(t)})}nonnegative(t){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!0,message:S.toString(t)})}multipleOf(t,n){return this._addCheck({kind:"multipleOf",value:t,message:S.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}};Ne.create=e=>new Ne({checks:[],typeName:T.ZodBigInt,coerce:e?.coerce??!1,...R(e)});var Pe=class extends ${_parse(t){if(this._def.coerce&&(t.data=!!t.data),this._getType(t)!==_.boolean){let r=this._getOrReturnCtx(t);return b(r,{code:g.invalid_type,expected:_.boolean,received:r.parsedType}),v}return z(t.data)}};Pe.create=e=>new Pe({typeName:T.ZodBoolean,coerce:e?.coerce||!1,...R(e)});var De=class e extends ${_parse(t){if(this._def.coerce&&(t.data=new Date(t.data)),this._getType(t)!==_.date){let o=this._getOrReturnCtx(t);return b(o,{code:g.invalid_type,expected:_.date,received:o.parsedType}),v}if(Number.isNaN(t.data.getTime())){let o=this._getOrReturnCtx(t);return b(o,{code:g.invalid_date}),v}let r=new j,s;for(let o of this._def.checks)o.kind==="min"?t.data.getTime()<o.value&&(s=this._getOrReturnCtx(t,s),b(s,{code:g.too_small,message:o.message,inclusive:!0,exact:!1,minimum:o.value,type:"date"}),r.dirty()):o.kind==="max"?t.data.getTime()>o.value&&(s=this._getOrReturnCtx(t,s),b(s,{code:g.too_big,message:o.message,inclusive:!0,exact:!1,maximum:o.value,type:"date"}),r.dirty()):N.assertNever(o);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:S.toString(n)})}max(t,n){return this._addCheck({kind:"max",value:t.getTime(),message:S.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}};De.create=e=>new De({checks:[],coerce:e?.coerce||!1,typeName:T.ZodDate,...R(e)});var ot=class extends ${_parse(t){if(this._getType(t)!==_.symbol){let r=this._getOrReturnCtx(t);return b(r,{code:g.invalid_type,expected:_.symbol,received:r.parsedType}),v}return z(t.data)}};ot.create=e=>new ot({typeName:T.ZodSymbol,...R(e)});var Le=class extends ${_parse(t){if(this._getType(t)!==_.undefined){let r=this._getOrReturnCtx(t);return b(r,{code:g.invalid_type,expected:_.undefined,received:r.parsedType}),v}return z(t.data)}};Le.create=e=>new Le({typeName:T.ZodUndefined,...R(e)});var Fe=class extends ${_parse(t){if(this._getType(t)!==_.null){let r=this._getOrReturnCtx(t);return b(r,{code:g.invalid_type,expected:_.null,received:r.parsedType}),v}return z(t.data)}};Fe.create=e=>new Fe({typeName:T.ZodNull,...R(e)});var Se=class extends ${constructor(){super(...arguments),this._any=!0}_parse(t){return z(t.data)}};Se.create=e=>new Se({typeName:T.ZodAny,...R(e)});var ge=class extends ${constructor(){super(...arguments),this._unknown=!0}_parse(t){return z(t.data)}};ge.create=e=>new ge({typeName:T.ZodUnknown,...R(e)});var re=class extends ${_parse(t){let n=this._getOrReturnCtx(t);return b(n,{code:g.invalid_type,expected:_.never,received:n.parsedType}),v}};re.create=e=>new re({typeName:T.ZodNever,...R(e)});var it=class extends ${_parse(t){if(this._getType(t)!==_.undefined){let r=this._getOrReturnCtx(t);return b(r,{code:g.invalid_type,expected:_.void,received:r.parsedType}),v}return z(t.data)}};it.create=e=>new it({typeName:T.ZodVoid,...R(e)});var ye=class e extends ${_parse(t){let{ctx:n,status:r}=this._processInputParams(t),s=this._def;if(n.parsedType!==_.array)return b(n,{code:g.invalid_type,expected:_.array,received:n.parsedType}),v;if(s.exactLength!==null){let i=n.data.length>s.exactLength.value,a=n.data.length<s.exactLength.value;(i||a)&&(b(n,{code:i?g.too_big:g.too_small,minimum:a?s.exactLength.value:void 0,maximum:i?s.exactLength.value:void 0,type:"array",inclusive:!0,exact:!0,message:s.exactLength.message}),r.dirty())}if(s.minLength!==null&&n.data.length<s.minLength.value&&(b(n,{code:g.too_small,minimum:s.minLength.value,type:"array",inclusive:!0,exact:!1,message:s.minLength.message}),r.dirty()),s.maxLength!==null&&n.data.length>s.maxLength.value&&(b(n,{code:g.too_big,maximum:s.maxLength.value,type:"array",inclusive:!0,exact:!1,message:s.maxLength.message}),r.dirty()),n.common.async)return Promise.all([...n.data].map((i,a)=>s.type._parseAsync(new q(n,i,n.path,a)))).then(i=>j.mergeArray(r,i));let o=[...n.data].map((i,a)=>s.type._parseSync(new q(n,i,n.path,a)));return j.mergeArray(r,o)}get element(){return this._def.type}min(t,n){return new e({...this._def,minLength:{value:t,message:S.toString(n)}})}max(t,n){return new e({...this._def,maxLength:{value:t,message:S.toString(n)}})}length(t,n){return new e({...this._def,exactLength:{value:t,message:S.toString(n)}})}nonempty(t){return this.min(1,t)}};ye.create=(e,t)=>new ye({type:e,minLength:null,maxLength:null,exactLength:null,typeName:T.ZodArray,...R(t)});function st(e){if(e instanceof W){let t={};for(let n in e.shape){let r=e.shape[n];t[n]=K.create(st(r))}return new W({...e._def,shape:()=>t})}else return e instanceof ye?new ye({...e._def,type:st(e.element)}):e instanceof K?K.create(st(e.unwrap())):e instanceof ue?ue.create(st(e.unwrap())):e instanceof le?le.create(e.items.map(t=>st(t))):e}var W=class e extends ${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=N.objectKeys(t);return this._cached={shape:t,keys:n},this._cached}_parse(t){if(this._getType(t)!==_.object){let u=this._getOrReturnCtx(t);return b(u,{code:g.invalid_type,expected:_.object,received:u.parsedType}),v}let{status:r,ctx:s}=this._processInputParams(t),{shape:o,keys:i}=this._getCached(),a=[];if(!(this._def.catchall instanceof re&&this._def.unknownKeys==="strip"))for(let u in s.data)i.includes(u)||a.push(u);let l=[];for(let u of i){let c=o[u],f=s.data[u];l.push({key:{status:"valid",value:u},value:c._parse(new q(s,f,s.path,u)),alwaysSet:u in s.data})}if(this._def.catchall instanceof re){let u=this._def.unknownKeys;if(u==="passthrough")for(let c of a)l.push({key:{status:"valid",value:c},value:{status:"valid",value:s.data[c]}});else if(u==="strict")a.length>0&&(b(s,{code:g.unrecognized_keys,keys:a}),r.dirty());else if(u!=="strip")throw new Error("Internal ZodObject error: invalid unknownKeys value.")}else{let u=this._def.catchall;for(let c of a){let f=s.data[c];l.push({key:{status:"valid",value:c},value:u._parse(new q(s,f,s.path,c)),alwaysSet:c in s.data})}}return s.common.async?Promise.resolve().then(async()=>{let u=[];for(let c of l){let f=await c.key,d=await c.value;u.push({key:f,value:d,alwaysSet:c.alwaysSet})}return u}).then(u=>j.mergeObjectSync(r,u)):j.mergeObjectSync(r,l)}get shape(){return this._def.shape()}strict(t){return S.errToObj,new e({...this._def,unknownKeys:"strict",...t!==void 0?{errorMap:(n,r)=>{let s=this._def.errorMap?.(n,r).message??r.defaultError;return n.code==="unrecognized_keys"?{message:S.errToObj(t).message??s}:{message:s}}}:{}})}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:T.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 N.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 N.objectKeys(this.shape))t[r]||(n[r]=this.shape[r]);return new e({...this._def,shape:()=>n})}deepPartial(){return st(this)}partial(t){let n={};for(let r of N.objectKeys(this.shape)){let s=this.shape[r];t&&!t[r]?n[r]=s:n[r]=s.optional()}return new e({...this._def,shape:()=>n})}required(t){let n={};for(let r of N.objectKeys(this.shape))if(t&&!t[r])n[r]=this.shape[r];else{let o=this.shape[r];for(;o instanceof K;)o=o._def.innerType;n[r]=o}return new e({...this._def,shape:()=>n})}keyof(){return Hs(N.objectKeys(this.shape))}};W.create=(e,t)=>new W({shape:()=>e,unknownKeys:"strip",catchall:re.create(),typeName:T.ZodObject,...R(t)});W.strictCreate=(e,t)=>new W({shape:()=>e,unknownKeys:"strict",catchall:re.create(),typeName:T.ZodObject,...R(t)});W.lazycreate=(e,t)=>new W({shape:e,unknownKeys:"strip",catchall:re.create(),typeName:T.ZodObject,...R(t)});var Me=class extends ${_parse(t){let{ctx:n}=this._processInputParams(t),r=this._def.options;function s(o){for(let a of o)if(a.result.status==="valid")return a.result;for(let a of o)if(a.result.status==="dirty")return n.common.issues.push(...a.ctx.common.issues),a.result;let i=o.map(a=>new G(a.ctx.common.issues));return b(n,{code:g.invalid_union,unionErrors:i}),v}if(n.common.async)return Promise.all(r.map(async o=>{let i={...n,common:{...n.common,issues:[]},parent:null};return{result:await o._parseAsync({data:n.data,path:n.path,parent:i}),ctx:i}})).then(s);{let o,i=[];for(let l of r){let u={...n,common:{...n.common,issues:[]},parent:null},c=l._parseSync({data:n.data,path:n.path,parent:u});if(c.status==="valid")return c;c.status==="dirty"&&!o&&(o={result:c,ctx:u}),u.common.issues.length&&i.push(u.common.issues)}if(o)return n.common.issues.push(...o.ctx.common.issues),o.result;let a=i.map(l=>new G(l));return b(n,{code:g.invalid_union,unionErrors:a}),v}}get options(){return this._def.options}};Me.create=(e,t)=>new Me({options:e,typeName:T.ZodUnion,...R(t)});var he=e=>e instanceof He?he(e.schema):e instanceof Y?he(e.innerType()):e instanceof ze?[e.value]:e instanceof Ue?e.options:e instanceof Be?N.objectValues(e.enum):e instanceof Ze?he(e._def.innerType):e instanceof Le?[void 0]:e instanceof Fe?[null]:e instanceof K?[void 0,...he(e.unwrap())]:e instanceof ue?[null,...he(e.unwrap())]:e instanceof Ot||e instanceof Ge?he(e.unwrap()):e instanceof Je?he(e._def.innerType):[],ln=class e extends ${_parse(t){let{ctx:n}=this._processInputParams(t);if(n.parsedType!==_.object)return b(n,{code:g.invalid_type,expected:_.object,received:n.parsedType}),v;let r=this.discriminator,s=n.data[r],o=this.optionsMap.get(s);return o?n.common.async?o._parseAsync({data:n.data,path:n.path,parent:n}):o._parseSync({data:n.data,path:n.path,parent:n}):(b(n,{code:g.invalid_union_discriminator,options:Array.from(this.optionsMap.keys()),path:[r]}),v)}get discriminator(){return this._def.discriminator}get options(){return this._def.options}get optionsMap(){return this._def.optionsMap}static create(t,n,r){let s=new Map;for(let o of n){let i=he(o.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(s.has(a))throw new Error(`Discriminator property ${String(t)} has duplicate value ${String(a)}`);s.set(a,o)}}return new e({typeName:T.ZodDiscriminatedUnion,discriminator:t,options:n,optionsMap:s,...R(r)})}};function Yn(e,t){let n=ae(e),r=ae(t);if(e===t)return{valid:!0,data:e};if(n===_.object&&r===_.object){let s=N.objectKeys(t),o=N.objectKeys(e).filter(a=>s.indexOf(a)!==-1),i={...e,...t};for(let a of o){let l=Yn(e[a],t[a]);if(!l.valid)return{valid:!1};i[a]=l.data}return{valid:!0,data:i}}else if(n===_.array&&r===_.array){if(e.length!==t.length)return{valid:!1};let s=[];for(let o=0;o<e.length;o++){let i=e[o],a=t[o],l=Yn(i,a);if(!l.valid)return{valid:!1};s.push(l.data)}return{valid:!0,data:s}}else return n===_.date&&r===_.date&&+e==+t?{valid:!0,data:e}:{valid:!1}}var je=class extends ${_parse(t){let{status:n,ctx:r}=this._processInputParams(t),s=(o,i)=>{if(on(o)||on(i))return v;let a=Yn(o.value,i.value);return a.valid?((an(o)||an(i))&&n.dirty(),{status:n.value,value:a.data}):(b(r,{code:g.invalid_intersection_types}),v)};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(([o,i])=>s(o,i)):s(this._def.left._parseSync({data:r.data,path:r.path,parent:r}),this._def.right._parseSync({data:r.data,path:r.path,parent:r}))}};je.create=(e,t,n)=>new je({left:e,right:t,typeName:T.ZodIntersection,...R(n)});var le=class e extends ${_parse(t){let{status:n,ctx:r}=this._processInputParams(t);if(r.parsedType!==_.array)return b(r,{code:g.invalid_type,expected:_.array,received:r.parsedType}),v;if(r.data.length<this._def.items.length)return b(r,{code:g.too_small,minimum:this._def.items.length,inclusive:!0,exact:!1,type:"array"}),v;!this._def.rest&&r.data.length>this._def.items.length&&(b(r,{code:g.too_big,maximum:this._def.items.length,inclusive:!0,exact:!1,type:"array"}),n.dirty());let o=[...r.data].map((i,a)=>{let l=this._def.items[a]||this._def.rest;return l?l._parse(new q(r,i,r.path,a)):null}).filter(i=>!!i);return r.common.async?Promise.all(o).then(i=>j.mergeArray(n,i)):j.mergeArray(n,o)}get items(){return this._def.items}rest(t){return new e({...this._def,rest:t})}};le.create=(e,t)=>{if(!Array.isArray(e))throw new Error("You must pass an array of schemas to z.tuple([ ... ])");return new le({items:e,typeName:T.ZodTuple,rest:null,...R(t)})};var un=class e extends ${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!==_.object)return b(r,{code:g.invalid_type,expected:_.object,received:r.parsedType}),v;let s=[],o=this._def.keyType,i=this._def.valueType;for(let a in r.data)s.push({key:o._parse(new q(r,a,r.path,a)),value:i._parse(new q(r,r.data[a],r.path,a)),alwaysSet:a in r.data});return r.common.async?j.mergeObjectAsync(n,s):j.mergeObjectSync(n,s)}get element(){return this._def.valueType}static create(t,n,r){return n instanceof $?new e({keyType:t,valueType:n,typeName:T.ZodRecord,...R(r)}):new e({keyType:we.create(),valueType:t,typeName:T.ZodRecord,...R(n)})}},at=class extends ${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!==_.map)return b(r,{code:g.invalid_type,expected:_.map,received:r.parsedType}),v;let s=this._def.keyType,o=this._def.valueType,i=[...r.data.entries()].map(([a,l],u)=>({key:s._parse(new q(r,a,r.path,[u,"key"])),value:o._parse(new q(r,l,r.path,[u,"value"]))}));if(r.common.async){let a=new Map;return Promise.resolve().then(async()=>{for(let l of i){let u=await l.key,c=await l.value;if(u.status==="aborted"||c.status==="aborted")return v;(u.status==="dirty"||c.status==="dirty")&&n.dirty(),a.set(u.value,c.value)}return{status:n.value,value:a}})}else{let a=new Map;for(let l of i){let u=l.key,c=l.value;if(u.status==="aborted"||c.status==="aborted")return v;(u.status==="dirty"||c.status==="dirty")&&n.dirty(),a.set(u.value,c.value)}return{status:n.value,value:a}}}};at.create=(e,t,n)=>new at({valueType:t,keyType:e,typeName:T.ZodMap,...R(n)});var lt=class e extends ${_parse(t){let{status:n,ctx:r}=this._processInputParams(t);if(r.parsedType!==_.set)return b(r,{code:g.invalid_type,expected:_.set,received:r.parsedType}),v;let s=this._def;s.minSize!==null&&r.data.size<s.minSize.value&&(b(r,{code:g.too_small,minimum:s.minSize.value,type:"set",inclusive:!0,exact:!1,message:s.minSize.message}),n.dirty()),s.maxSize!==null&&r.data.size>s.maxSize.value&&(b(r,{code:g.too_big,maximum:s.maxSize.value,type:"set",inclusive:!0,exact:!1,message:s.maxSize.message}),n.dirty());let o=this._def.valueType;function i(l){let u=new Set;for(let c of l){if(c.status==="aborted")return v;c.status==="dirty"&&n.dirty(),u.add(c.value)}return{status:n.value,value:u}}let a=[...r.data.values()].map((l,u)=>o._parse(new q(r,l,r.path,u)));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:S.toString(n)}})}max(t,n){return new e({...this._def,maxSize:{value:t,message:S.toString(n)}})}size(t,n){return this.min(t,n).max(t,n)}nonempty(t){return this.min(1,t)}};lt.create=(e,t)=>new lt({valueType:e,minSize:null,maxSize:null,typeName:T.ZodSet,...R(t)});var cn=class e extends ${constructor(){super(...arguments),this.validate=this.implement}_parse(t){let{ctx:n}=this._processInputParams(t);if(n.parsedType!==_.function)return b(n,{code:g.invalid_type,expected:_.function,received:n.parsedType}),v;function r(a,l){return Ct({data:a,path:n.path,errorMaps:[n.common.contextualErrorMap,n.schemaErrorMap,nt(),me].filter(u=>!!u),issueData:{code:g.invalid_arguments,argumentsError:l}})}function s(a,l){return Ct({data:a,path:n.path,errorMaps:[n.common.contextualErrorMap,n.schemaErrorMap,nt(),me].filter(u=>!!u),issueData:{code:g.invalid_return_type,returnTypeError:l}})}let o={errorMap:n.common.contextualErrorMap},i=n.data;if(this._def.returns instanceof ve){let a=this;return z(async function(...l){let u=new G([]),c=await a._def.args.parseAsync(l,o).catch(p=>{throw u.addIssue(r(l,p)),u}),f=await Reflect.apply(i,this,c);return await a._def.returns._def.type.parseAsync(f,o).catch(p=>{throw u.addIssue(s(f,p)),u})})}else{let a=this;return z(function(...l){let u=a._def.args.safeParse(l,o);if(!u.success)throw new G([r(l,u.error)]);let c=Reflect.apply(i,this,u.data),f=a._def.returns.safeParse(c,o);if(!f.success)throw new G([s(c,f.error)]);return f.data})}}parameters(){return this._def.args}returnType(){return this._def.returns}args(...t){return new e({...this._def,args:le.create(t).rest(ge.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||le.create([]).rest(ge.create()),returns:n||ge.create(),typeName:T.ZodFunction,...R(r)})}},He=class extends ${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})}};He.create=(e,t)=>new He({getter:e,typeName:T.ZodLazy,...R(t)});var ze=class extends ${_parse(t){if(t.data!==this._def.value){let n=this._getOrReturnCtx(t);return b(n,{received:n.data,code:g.invalid_literal,expected:this._def.value}),v}return{status:"valid",value:t.data}}get value(){return this._def.value}};ze.create=(e,t)=>new ze({value:e,typeName:T.ZodLiteral,...R(t)});function Hs(e,t){return new Ue({values:e,typeName:T.ZodEnum,...R(t)})}var Ue=class e extends ${_parse(t){if(typeof t.data!="string"){let n=this._getOrReturnCtx(t),r=this._def.values;return b(n,{expected:N.joinValues(r),received:n.parsedType,code:g.invalid_type}),v}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 b(n,{received:n.data,code:g.invalid_enum_value,options:r}),v}return z(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})}};Ue.create=Hs;var Be=class extends ${_parse(t){let n=N.getValidEnumValues(this._def.values),r=this._getOrReturnCtx(t);if(r.parsedType!==_.string&&r.parsedType!==_.number){let s=N.objectValues(n);return b(r,{expected:N.joinValues(s),received:r.parsedType,code:g.invalid_type}),v}if(this._cache||(this._cache=new Set(N.getValidEnumValues(this._def.values))),!this._cache.has(t.data)){let s=N.objectValues(n);return b(r,{received:r.data,code:g.invalid_enum_value,options:s}),v}return z(t.data)}get enum(){return this._def.values}};Be.create=(e,t)=>new Be({values:e,typeName:T.ZodNativeEnum,...R(t)});var ve=class extends ${unwrap(){return this._def.type}_parse(t){let{ctx:n}=this._processInputParams(t);if(n.parsedType!==_.promise&&n.common.async===!1)return b(n,{code:g.invalid_type,expected:_.promise,received:n.parsedType}),v;let r=n.parsedType===_.promise?n.data:Promise.resolve(n.data);return z(r.then(s=>this._def.type.parseAsync(s,{path:n.path,errorMap:n.common.contextualErrorMap})))}};ve.create=(e,t)=>new ve({type:e,typeName:T.ZodPromise,...R(t)});var Y=class extends ${innerType(){return this._def.schema}sourceType(){return this._def.schema._def.typeName===T.ZodEffects?this._def.schema.sourceType():this._def.schema}_parse(t){let{status:n,ctx:r}=this._processInputParams(t),s=this._def.effect||null,o={addIssue:i=>{b(r,i),i.fatal?n.abort():n.dirty()},get path(){return r.path}};if(o.addIssue=o.addIssue.bind(o),s.type==="preprocess"){let i=s.transform(r.data,o);if(r.common.async)return Promise.resolve(i).then(async a=>{if(n.value==="aborted")return v;let l=await this._def.schema._parseAsync({data:a,path:r.path,parent:r});return l.status==="aborted"?v:l.status==="dirty"?Oe(l.value):n.value==="dirty"?Oe(l.value):l});{if(n.value==="aborted")return v;let a=this._def.schema._parseSync({data:i,path:r.path,parent:r});return a.status==="aborted"?v:a.status==="dirty"?Oe(a.value):n.value==="dirty"?Oe(a.value):a}}if(s.type==="refinement"){let i=a=>{let l=s.refinement(a,o);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"?v:(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"?v:(a.status==="dirty"&&n.dirty(),i(a.value).then(()=>({status:n.value,value:a.value}))))}if(s.type==="transform")if(r.common.async===!1){let i=this._def.schema._parseSync({data:r.data,path:r.path,parent:r});if(!xe(i))return v;let a=s.transform(i.value,o);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=>xe(i)?Promise.resolve(s.transform(i.value,o)).then(a=>({status:n.value,value:a})):v);N.assertNever(s)}};Y.create=(e,t,n)=>new Y({schema:e,typeName:T.ZodEffects,effect:t,...R(n)});Y.createWithPreprocess=(e,t,n)=>new Y({schema:t,effect:{type:"preprocess",transform:e},typeName:T.ZodEffects,...R(n)});var K=class extends ${_parse(t){return this._getType(t)===_.undefined?z(void 0):this._def.innerType._parse(t)}unwrap(){return this._def.innerType}};K.create=(e,t)=>new K({innerType:e,typeName:T.ZodOptional,...R(t)});var ue=class extends ${_parse(t){return this._getType(t)===_.null?z(null):this._def.innerType._parse(t)}unwrap(){return this._def.innerType}};ue.create=(e,t)=>new ue({innerType:e,typeName:T.ZodNullable,...R(t)});var Ze=class extends ${_parse(t){let{ctx:n}=this._processInputParams(t),r=n.data;return n.parsedType===_.undefined&&(r=this._def.defaultValue()),this._def.innerType._parse({data:r,path:n.path,parent:n})}removeDefault(){return this._def.innerType}};Ze.create=(e,t)=>new Ze({innerType:e,typeName:T.ZodDefault,defaultValue:typeof t.default=="function"?t.default:()=>t.default,...R(t)});var Je=class extends ${_parse(t){let{ctx:n}=this._processInputParams(t),r={...n,common:{...n.common,issues:[]}},s=this._def.innerType._parse({data:r.data,path:r.path,parent:{...r}});return rt(s)?s.then(o=>({status:"valid",value:o.status==="valid"?o.value:this._def.catchValue({get error(){return new G(r.common.issues)},input:r.data})})):{status:"valid",value:s.status==="valid"?s.value:this._def.catchValue({get error(){return new G(r.common.issues)},input:r.data})}}removeCatch(){return this._def.innerType}};Je.create=(e,t)=>new Je({innerType:e,typeName:T.ZodCatch,catchValue:typeof t.catch=="function"?t.catch:()=>t.catch,...R(t)});var ut=class extends ${_parse(t){if(this._getType(t)!==_.nan){let r=this._getOrReturnCtx(t);return b(r,{code:g.invalid_type,expected:_.nan,received:r.parsedType}),v}return{status:"valid",value:t.data}}};ut.create=e=>new ut({typeName:T.ZodNaN,...R(e)});var Tu=Symbol("zod_brand"),Ot=class extends ${_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}},It=class e extends ${_parse(t){let{status:n,ctx:r}=this._processInputParams(t);if(r.common.async)return(async()=>{let o=await this._def.in._parseAsync({data:r.data,path:r.path,parent:r});return o.status==="aborted"?v:o.status==="dirty"?(n.dirty(),Oe(o.value)):this._def.out._parseAsync({data:o.value,path:r.path,parent:r})})();{let s=this._def.in._parseSync({data:r.data,path:r.path,parent:r});return s.status==="aborted"?v:s.status==="dirty"?(n.dirty(),{status:"dirty",value:s.value}):this._def.out._parseSync({data:s.value,path:r.path,parent:r})}}static create(t,n){return new e({in:t,out:n,typeName:T.ZodPipeline})}},Ge=class extends ${_parse(t){let n=this._def.innerType._parse(t),r=s=>(xe(s)&&(s.value=Object.freeze(s.value)),s);return rt(n)?n.then(s=>r(s)):r(n)}unwrap(){return this._def.innerType}};Ge.create=(e,t)=>new Ge({innerType:e,typeName:T.ZodReadonly,...R(t)});function Ls(e,t){let n=typeof e=="function"?e(t):typeof e=="string"?{message:e}:e;return typeof n=="string"?{message:n}:n}function zs(e,t={},n){return e?Se.create().superRefine((r,s)=>{let o=e(r);if(o instanceof Promise)return o.then(i=>{if(!i){let a=Ls(t,r),l=a.fatal??n??!0;s.addIssue({code:"custom",...a,fatal:l})}});if(!o){let i=Ls(t,r),a=i.fatal??n??!0;s.addIssue({code:"custom",...i,fatal:a})}}):Se.create()}var Au={object:W.lazycreate},T;(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"})(T||(T={}));var Ru=(e,t={message:`Input not instance of ${e.name}`})=>zs(n=>n instanceof e,t),Us=we.create,Bs=Ie.create,$u=ut.create,Cu=Ne.create,Zs=Pe.create,Ou=De.create,Iu=ot.create,Nu=Le.create,Pu=Fe.create,Du=Se.create,Lu=ge.create,Fu=re.create,Mu=it.create,ju=ye.create,Hu=W.create,zu=W.strictCreate,Uu=Me.create,Bu=ln.create,Zu=je.create,Ju=le.create,Gu=un.create,Wu=at.create,Vu=lt.create,Ku=cn.create,qu=He.create,Yu=ze.create,Xu=Ue.create,Qu=Be.create,ec=ve.create,tc=Y.create,nc=K.create,rc=ue.create,sc=Y.createWithPreprocess,oc=It.create,ic=()=>Us().optional(),ac=()=>Bs().optional(),lc=()=>Zs().optional(),uc={string:(e=>we.create({...e,coerce:!0})),number:(e=>Ie.create({...e,coerce:!0})),boolean:(e=>Pe.create({...e,coerce:!0})),bigint:(e=>Ne.create({...e,coerce:!0})),date:(e=>De.create({...e,coerce:!0}))};var cc=v;var Ee=k.object({slug:k.string().min(1).max(64),description:k.string().max(255).optional(),match_command:k.string().min(1),priority:k.number().int().default(50),strip_ansi:k.boolean().default(!1),strip_lines_matching:k.array(k.string()).default([]),drop_lines_matching:k.array(k.string()).default([]),keep_failures:k.boolean().default(!1),strip_on_failure:k.boolean().default(!1),fold_passing:k.boolean().default(!1),fold_passing_threshold:k.number().int().positive().max(1e3).optional(),mask_abs_paths:k.boolean().default(!1),preserve_exact:k.boolean().default(!1),truncate_lines_at:k.number().int().positive().max(1e4).optional(),max_lines:k.number().int().positive().max(1e5).optional(),scale_with_level:k.boolean().default(!0),transform:k.string().max(64).optional(),transform_on_failure:k.boolean().default(!1),on_empty:k.string().max(255).optional()});var Rc=Tc(Ac(import.meta.url)),$c=process.env.TOKMIZER_FILTERS_DIR||no(Rc,"..","..","filters"),ct=null,to=!1;function Cc(){return!1}async function ro(){return ct||(Cc()?(ct=await Oc($c),ct):(!to&&process.env.TOKMIZER_DEBUG==="1"&&(process.stderr.write(`tokmizer: disk loader disabled (set TOKMIZER_DEV=1 to re-enable for local dev).
18
- `),to=!0),ct=new Map,ct))}async function Oc(e){let t=new Map,n,r;try{n=(await Promise.resolve().then(()=>(mn(),lr))).parse,r=(await vc(e)).filter(s=>s.endsWith(".toml"))}catch{return t}for(let s of r){let o=await Ec(no(e,s),"utf8"),a=n(o).filters;if(a)for(let[l,u]of Object.entries(a)){let c=Ee.parse({slug:l,...u});t.set(l,{...c,matchRegex:new RegExp(c.match_command)})}}return t}import{createHash as Ic}from"node:crypto";var Nc=k.enum(["normal","compact","minimal"]),Pc=k.enum(["off","light","balanced","max"]),Ft=k.object({enabled:k.boolean().default(!0),telemetryOptIn:k.boolean().default(!0),outputVerbosity:Nc.default("compact"),reducer:Pc.default("off"),filters:k.object({enableAll:k.boolean().default(!0),disabled:k.array(k.string().max(64)).max(100).default([])}).default({enableAll:!0,disabled:[]})}),so=new Map;function X(e){let t=so.get(e);return t||(t=Ic("sha256").update(`tkr:${e}`).digest("hex").slice(0,16),so.set(e,t)),t}var oo=new WeakMap,Dc=256;function ft(e,t,n,r=t){let s=oo.get(r);s||(s=new Map,oo.set(r,s));let o=JSON.stringify([e,n?[...n].sort():null]),i=s.get(o);if(i!==void 0)return i;let a=null;for(let l of t)n&&!n.has(X(l.slug))||l.matchRegex.test(e)&&(!a||l.priority>a.priority)&&(a=l);if(s.size>=Dc){let l=s.keys().next().value;l&&s.delete(l)}return s.set(o,a),a}import{readdir as pd,readFile as Jo,writeFile as Hx,mkdir as zx,rename as Ux}from"node:fs/promises";import{readdirSync as md,statSync as Uo}from"node:fs";import{createHash as hd}from"node:crypto";import{basename as Gx,join as xn}from"node:path";var Lc=/\x1b\[[0-9;?]*[ -/]*[@-~]/g,Fc=/\x1b\][^\x07\x1b]*(?:\x07|\x1b\\)/g;function ce(e){return e.replace(Lc,"").replace(Fc,"")}function ur(e,t){return t.length===0?e:e.filter(n=>!t.some(r=>r.test(n)))}function io(e){let t=e.trim();if(t.length>4096||!(t.startsWith("{")&&t.endsWith("}")||t.startsWith("[")&&t.endsWith("]")))return!1;try{return JSON.parse(t),!0}catch{return!1}}function ao(e,t){return e.some(n=>n.length>t)&&io(e.join(`
19
- `))?e:e.map(n=>{if(n.length<=t||io(n))return n;let r=n.charCodeAt(t-1),s=n.charCodeAt(t),o=r>=55296&&r<=56319&&s>=56320&&s<=57343?t-1:t;return`${n.slice(0,o)}\u2026`})}function dt(e){return`\u2026 (${e} more lines omitted)`}function lo(e,t){if(e.length<=t)return{kept:e,dropped:[]};let n=Math.ceil(t*.7),r=t-n,s=e.slice(n,e.length-r);return{kept:[...e.slice(0,n),dt(s.length),...e.slice(e.length-r)],dropped:s}}var Mc=/^\s*(?:[✓✔√]|ok )/,Q=/✕|✗|×|\bFAIL\b|\bERROR\b|\bFATAL\b|\bError|\berror|Expected|Received|\bfailed\b|^\s*Tests?:|^\s*Test Suites?:/;function uo(e,t){let n=t>0?t:5,r=[],s=0,o=a=>{s>=n?r.push(`\u2026 ${s} passing checks folded \u2026`):r.push(...a)},i=[];for(let a of e)Mc.test(a)&&!Q.test(a)?(i.push(a),s+=1):(o(i),i=[],s=0,r.push(a));return o(i),r}var jc=/(?:\/[\w.@+-]+){3,}/g;function co(e){return e.map(t=>t.replace(jc,n=>{let r=n.split("/").filter(Boolean);return r.length<=2?n:`\u2026/${r.slice(-2).join("/")}`}))}var Hc=/^(\s*)(?:export\s+)?(?:async\s+)?(?:function|interface|type|const|let|var|def|fn|impl|trait|struct|enum)\s+[\w$]+/,zc=/\{\s*$/;var Uc=/^\s*(?:(?:public|private|protected|static|async|get|set|readonly|override)\s+)*([\w$]+)\s*\(([^)]*)\)\s*(?::\s*[^{]+)?\{\s*$/,Bc=new Set(["if","for","while","switch","catch","do","with","return","else","function","await","yield"]);function Zc(e){let t=Uc.exec(e);return!t||Bc.has(t[1])?!1:!/=>|\bfunction\b/.test(t[2])}var Jc=/^\s*(?:if|for|while|switch|try|do)\b[^{}]*\{\s*$/;function Gc(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 Wc(e,t){let n=0,r=null,s=0;for(;s<e.length;){let o=e[s];if(t.inBlockComment){if(o==="*"&&e[s+1]==="/"){t.inBlockComment=!1,s+=2;continue}s+=1;continue}if(t.inTemplate){if(o==="\\"){s+=2;continue}o==="`"&&(t.inTemplate=!1),s+=1;continue}if(r){if(o==="\\"){s+=2;continue}o===r&&(r=null),s+=1;continue}if(o==="/"&&e[s+1]==="/")break;if(o==="/"&&e[s+1]==="*"){t.inBlockComment=!0,s+=2;continue}if(o==="`"){t.inTemplate=!0,s+=1;continue}if(o==="'"||o==='"'){let i=s>0?e[s-1]:"";!(o==="'"&&(i==="<"||i==="&"))&&Gc(e,s+1,o)&&(r=o),s+=1;continue}o==="{"||o==="("||o==="["?n+=1:(o==="}"||o===")"||o==="]")&&(n-=1),s+=1}return n}var Vc=/^\s*… (\d+) lines? folded(?: \(\d+-\d+\): Read offset=\d+ limit=\d+ before editing)? …$/;function Kc(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 cr(e){let t=new Array(e.length).fill(!1);for(let n=0;n<e.length;n+=1){let r=Vc.exec(e[n]);if(!r)continue;let s=Number(r[1])-1,o=n+1;for(;s>0&&o<e.length&&e[o]==="";)t[o]=!0,s-=1,o+=1;n=o-1}return t}function Mt(e,t=3,n=!1){let r=[],s=0;for(;s<e.length;){let o=e[s];if(Hc.test(o)&&zc.test(o)||Zc(o)||Jc.test(o)){let i={inBlockComment:!1,inTemplate:!1},a=0,l=s,u=!1;for(;l<e.length&&l-s<200;)if(a+=Wc(e[l],i),l+=1,a<=0&&!i.inTemplate&&!i.inBlockComment){u=!0;break}let c=l-s;if(u&&c<t){r.push(...e.slice(s,l)),s=l;continue}if(u&&c>=3){let f=c-2,d=/^\s*/.exec(e[s+1]??"")?.[0]??" ";r.push(o),r.push(Kc(d,f,n?s+2:null));for(let p=0;p<f-1;p++)r.push("");r.push(e[l-1]),s=l;continue}}r.push(o),s+=1}return r}var qc=/\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 hn(e){let t=e.slice(0,4096);return!(!qc.test(t)||t.split(`
20
- `).length<6)}var ho=/^\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*/,go=/^\s*(?:\[(?:DEBUG|TRACE|INFO|VERBOSE)\]|(?:DEBUG|TRACE|INFO|VERBOSE)(?!\s*:))(?=\s|:|$)(?!\s*[+\-*\/%&|^?]*=)/,yo=new RegExp(Q.source,"i"),ko=/\bWARN(?:ING)?\b/i;function bo(e){let t=[],n=0,r=()=>{n>0&&t.push(`\u2026 ${n} verbose log line${n===1?"":"s"} dropped \u2026`),n=0};for(let s of e){if(go.test(s.replace(ho,""))&&!yo.test(s)&&!ko.test(s)){n+=1;continue}r(),t.push(s)}return r(),t}var Yc=/^(?:DEBUG|INFO):[\w.-]+:/,Xc=/Error|Exception|Traceback|panic|fail|FAIL|Fail|SEVERE|CRITICAL/,Qc=8,fo=1,po=2;function mo(e){if(e.trim()===""||/^\s/.test(e)||yo.test(e)||ko.test(e)||Xc.test(e))return null;let t=e.replace(ho,"");return go.test(t)||Yc.test(t)?"\0verbose":e.replace(/\d+/g,"#")}function _o(e){let t=[],n=0;for(;n<e.length;){let r=mo(e[n]),s=n+1;if(r!==null)for(;s<e.length&&mo(e[s])===r;)s+=1;let o=s-n;r===null||o<Qc?t.push(...e.slice(n,s)):(t.push(...e.slice(n,n+fo)),t.push(`\u2026 ${o-fo-po} similar log lines dropped \u2026`),t.push(...e.slice(s-po,s))),n=s}return t}var ef=/^@@ -\d+(?:,\d+)? \+\d+(?:,\d+)? @@/;function xo(e){return e.some(t=>ef.test(t))}function gn(e){if(e.length===0||xo(e))return e;let t=[],n=1,r=e[0];for(let s=1;s<e.length;s++){if(e[s]===r){n+=1;continue}t.push(n>1&&r.trim()?`${r} \xD7${n}`:r),r=e[s],n=1}return t.push(n>1&&r.trim()?`${r} \xD7${n}`:r),t}function wo(e){if(xo(e))return 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 So=new Map;function F(e,t){So.set(e,t)}function vo(e){return So.get(e)}var To=/^[dbclps\-][rwxsStT\-]{9}[@.+]?(?:\s|$)/,Ao=/^[./~][^\s]*:$/,tf=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})?`,nf=new RegExp(String.raw`^(\S+)\s+\d+\s+(\S+(?:\s+\S+)??)\s+(\d+(?:[.,]\d+)?[KMGTPkmgtp]?i?B?)\s+(?:${tf})\s+(.+)$`),rf={k:1,m:2,g:3,t:4,p:5},fr=1e3;function sf(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 of(e){let t=/^(\d+(?:[.,]\d+)?)([KMGTPkmgtp])?/.exec(e),n=t[2]?rf[t[2].toLowerCase()]:0;return Number(t[1].replace(",","."))*1024**n}function af(e){let t=nf.exec(e);if(!t)return null;let n=t[4].trim();if(n===""||n==="."||n==="..")return null;let r=t[3],s=/^\d+$/.test(r)?sf(Number(r)):r,o=e.charCodeAt(0)===100;return{name:n,size:s,sizeKey:of(r),isDir:o,mode:t[1],owner:t[2].replace(/\s+/g," ")}}function lf(e){if(e.length<3)return null;let t=new Map;for(let s of e){let o=s.name.lastIndexOf(".");if(o<=0)continue;let i=s.name.slice(o);t.set(i,(t.get(i)??0)+1)}let n=null,r=0;for(let[s,o]of t)o>r&&(r=o,n=s);return n&&r>=Math.ceil(e.length/2)?`${r} ${n}`:null}var uf=12,cf=3,ff=180;function Eo(e,t){let n=[],r=e;for(let s of t)r.length+1+s.length>ff&&r!==e&&r!==" "&&(n.push(r),r=" "),r+=r===" "?s:` ${s}`;return n.push(r),n}function df(e){let t=e.endsWith("/")?"":e,n=t.indexOf(".",1);return n>0?t.slice(n):""}function pf(e){let t=e.filter(l=>l.trim()!=="");if(t.length<uf)return null;let n=e.findIndex(l=>l.trim()!==""),r=e.length-1-[...e].reverse().findIndex(l=>l.trim()!=="");if(e.slice(n,r+1).some(l=>l.trim()==="")||t.some(l=>l.endsWith(":")||Ao.test(l.trim())||To.test(l)||/^total\s+\d+/.test(l)||l!==l.trimEnd()||l.startsWith(" "))||t.filter(l=>/\s/.test(l)).length>t.length*.2)return null;let s=l=>/\s|"/.test(l)?JSON.stringify(l):l,o=new Map;for(let l of t){let u=df(l),c=o.get(u)??[];c.push(l),o.set(u,c)}let i=[`${t.length} entries:`],a=[];for(let[l,u]of[...o.entries()].sort((c,f)=>f[1].length-c[1].length||c[0].localeCompare(f[0])))l&&u.length>=cf&&u.every(c=>!/\s|"/.test(c))?i.push(...Eo(`*${l} (${u.length}):`,u.map(c=>c.slice(0,-l.length)))):a.push(...u);return a.length&&i.push(...Eo(`other (${a.length}):`,a.map(s))),i.join(`
17
+ `:s}var kc,Ys,eo=pe(()=>{kc=/^[a-z0-9-_]+$/i,Ys=!!"".isWellFormed});var lr={};Ns(lr,{TomlDate:()=>Ve,TomlError:()=>E,default:()=>vc,parse:()=>Dt,stringify:()=>ar});var vc,mn=pe(()=>{qs();eo();Qn();We();vc={parse:Dt,stringify:ar,TomlDate:Ve,TomlError:E}});import{readdir as Ec,readFile as Tc}from"node:fs/promises";import{join as no,dirname as Ac}from"node:path";import{fileURLToPath as Rc}from"node:url";var k={};Ns(k,{BRAND:()=>Au,DIRTY:()=>Oe,EMPTY_PATH:()=>ou,INVALID:()=>v,NEVER:()=>fc,OK:()=>z,ParseStatus:()=>j,Schema:()=>C,ZodAny:()=>Se,ZodArray:()=>ye,ZodBigInt:()=>Ne,ZodBoolean:()=>Pe,ZodBranded:()=>Ot,ZodCatch:()=>Je,ZodDate:()=>De,ZodDefault:()=>Ze,ZodDiscriminatedUnion:()=>ln,ZodEffects:()=>Y,ZodEnum:()=>Ue,ZodError:()=>G,ZodFirstPartyTypeKind:()=>T,ZodFunction:()=>cn,ZodIntersection:()=>je,ZodIssueCode:()=>h,ZodLazy:()=>He,ZodLiteral:()=>ze,ZodMap:()=>at,ZodNaN:()=>ut,ZodNativeEnum:()=>Be,ZodNever:()=>re,ZodNull:()=>Fe,ZodNullable:()=>ue,ZodNumber:()=>Ie,ZodObject:()=>W,ZodOptional:()=>K,ZodParsedType:()=>x,ZodPipeline:()=>It,ZodPromise:()=>ve,ZodReadonly:()=>Ge,ZodRecord:()=>un,ZodSchema:()=>C,ZodSet:()=>lt,ZodString:()=>we,ZodSymbol:()=>ot,ZodTransformer:()=>Y,ZodTuple:()=>le,ZodType:()=>C,ZodUndefined:()=>Le,ZodUnion:()=>Me,ZodUnknown:()=>ge,ZodVoid:()=>it,addIssueToContext:()=>b,any:()=>Lu,array:()=>Hu,bigint:()=>Ou,boolean:()=>Zs,coerce:()=>cc,custom:()=>zs,date:()=>Iu,datetimeRegex:()=>js,defaultErrorMap:()=>me,discriminatedUnion:()=>Zu,effect:()=>nc,enum:()=>Qu,function:()=>qu,getErrorMap:()=>nt,getParsedType:()=>ae,instanceof:()=>$u,intersection:()=>Ju,isAborted:()=>on,isAsync:()=>rt,isDirty:()=>an,isValid:()=>xe,late:()=>Ru,lazy:()=>Yu,literal:()=>Xu,makeIssue:()=>Ct,map:()=>Vu,nan:()=>Cu,nativeEnum:()=>ec,never:()=>Mu,null:()=>Du,nullable:()=>sc,number:()=>Bs,object:()=>zu,objectUtil:()=>Kn,oboolean:()=>uc,onumber:()=>lc,optional:()=>rc,ostring:()=>ac,pipeline:()=>ic,preprocess:()=>oc,promise:()=>tc,quotelessJson:()=>nu,record:()=>Wu,set:()=>Ku,setErrorMap:()=>su,strictObject:()=>Uu,string:()=>Us,symbol:()=>Nu,transformer:()=>nc,tuple:()=>Gu,undefined:()=>Pu,union:()=>Bu,unknown:()=>Fu,util:()=>N,void:()=>ju});var N;(function(e){e.assertEqual=s=>{};function t(s){}e.assertIs=t;function n(s){throw new Error}e.assertNever=n,e.arrayToEnum=s=>{let o={};for(let i of s)o[i]=i;return o},e.getValidEnumValues=s=>{let o=e.objectKeys(s).filter(a=>typeof s[s[a]]!="number"),i={};for(let a of o)i[a]=s[a];return e.objectValues(i)},e.objectValues=s=>e.objectKeys(s).map(function(o){return s[o]}),e.objectKeys=typeof Object.keys=="function"?s=>Object.keys(s):s=>{let o=[];for(let i in s)Object.prototype.hasOwnProperty.call(s,i)&&o.push(i);return o},e.find=(s,o)=>{for(let i of s)if(o(i))return i},e.isInteger=typeof Number.isInteger=="function"?s=>Number.isInteger(s):s=>typeof s=="number"&&Number.isFinite(s)&&Math.floor(s)===s;function r(s,o=" | "){return s.map(i=>typeof i=="string"?`'${i}'`:i).join(o)}e.joinValues=r,e.jsonStringifyReplacer=(s,o)=>typeof o=="bigint"?o.toString():o})(N||(N={}));var Kn;(function(e){e.mergeShapes=(t,n)=>({...t,...n})})(Kn||(Kn={}));var x=N.arrayToEnum(["string","nan","number","integer","float","boolean","date","bigint","symbol","function","undefined","null","array","object","unknown","promise","void","never","map","set"]),ae=e=>{switch(typeof e){case"undefined":return x.undefined;case"string":return x.string;case"number":return Number.isNaN(e)?x.nan:x.number;case"boolean":return x.boolean;case"function":return x.function;case"bigint":return x.bigint;case"symbol":return x.symbol;case"object":return Array.isArray(e)?x.array:e===null?x.null:e.then&&typeof e.then=="function"&&e.catch&&typeof e.catch=="function"?x.promise:typeof Map<"u"&&e instanceof Map?x.map:typeof Set<"u"&&e instanceof Set?x.set:typeof Date<"u"&&e instanceof Date?x.date:x.object;default:return x.unknown}};var h=N.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"]),nu=e=>JSON.stringify(e,null,2).replace(/"([^"]+)":/g,"$1:"),G=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(o){return o.message},r={_errors:[]},s=o=>{for(let i of o.issues)if(i.code==="invalid_union")i.unionErrors.map(s);else if(i.code==="invalid_return_type")s(i.returnTypeError);else if(i.code==="invalid_arguments")s(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 u=i.path[l];l===i.path.length-1?(a[u]=a[u]||{_errors:[]},a[u]._errors.push(n(i))):a[u]=a[u]||{_errors:[]},a=a[u],l++}}};return s(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,N.jsonStringifyReplacer,2)}get isEmpty(){return this.issues.length===0}flatten(t=n=>n.message){let n={},r=[];for(let s of this.issues)if(s.path.length>0){let o=s.path[0];n[o]=n[o]||[],n[o].push(t(s))}else r.push(t(s));return{formErrors:r,fieldErrors:n}}get formErrors(){return this.flatten()}};G.create=e=>new G(e);var ru=(e,t)=>{let n;switch(e.code){case h.invalid_type:e.received===x.undefined?n="Required":n=`Expected ${e.expected}, received ${e.received}`;break;case h.invalid_literal:n=`Invalid literal value, expected ${JSON.stringify(e.expected,N.jsonStringifyReplacer)}`;break;case h.unrecognized_keys:n=`Unrecognized key(s) in object: ${N.joinValues(e.keys,", ")}`;break;case h.invalid_union:n="Invalid input";break;case h.invalid_union_discriminator:n=`Invalid discriminator value. Expected ${N.joinValues(e.options)}`;break;case h.invalid_enum_value:n=`Invalid enum value. Expected ${N.joinValues(e.options)}, received '${e.received}'`;break;case h.invalid_arguments:n="Invalid function arguments";break;case h.invalid_return_type:n="Invalid function return type";break;case h.invalid_date:n="Invalid date";break;case h.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}"`:N.assertNever(e.validation):e.validation!=="regex"?n=`Invalid ${e.validation}`:n="Invalid";break;case h.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 h.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 h.custom:n="Invalid input";break;case h.invalid_intersection_types:n="Intersection results could not be merged";break;case h.not_multiple_of:n=`Number must be a multiple of ${e.multipleOf}`;break;case h.not_finite:n="Number must be finite";break;default:n=t.defaultError,N.assertNever(e)}return{message:n}},me=ru;var Ps=me;function su(e){Ps=e}function nt(){return Ps}var Ct=e=>{let{data:t,path:n,errorMaps:r,issueData:s}=e,o=[...n,...s.path||[]],i={...s,path:o};if(s.message!==void 0)return{...s,path:o,message:s.message};let a="",l=r.filter(u=>!!u).slice().reverse();for(let u of l)a=u(i,{data:t,defaultError:a}).message;return{...s,path:o,message:a}},ou=[];function b(e,t){let n=nt(),r=Ct({issueData:t,data:e.data,path:e.path,errorMaps:[e.common.contextualErrorMap,e.schemaErrorMap,n,n===me?void 0:me].filter(s=>!!s)});e.common.issues.push(r)}var j=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 s of n){if(s.status==="aborted")return v;s.status==="dirty"&&t.dirty(),r.push(s.value)}return{status:t.value,value:r}}static async mergeObjectAsync(t,n){let r=[];for(let s of n){let o=await s.key,i=await s.value;r.push({key:o,value:i})}return e.mergeObjectSync(t,r)}static mergeObjectSync(t,n){let r={};for(let s of n){let{key:o,value:i}=s;if(o.status==="aborted"||i.status==="aborted")return v;o.status==="dirty"&&t.dirty(),i.status==="dirty"&&t.dirty(),o.value!=="__proto__"&&(typeof i.value<"u"||s.alwaysSet)&&(r[o.value]=i.value)}return{status:t.value,value:r}}},v=Object.freeze({status:"aborted"}),Oe=e=>({status:"dirty",value:e}),z=e=>({status:"valid",value:e}),on=e=>e.status==="aborted",an=e=>e.status==="dirty",xe=e=>e.status==="valid",rt=e=>typeof Promise<"u"&&e instanceof Promise;var S;(function(e){e.errToObj=t=>typeof t=="string"?{message:t}:t||{},e.toString=t=>typeof t=="string"?t:t?.message})(S||(S={}));var q=class{constructor(t,n,r,s){this._cachedPath=[],this.parent=t,this.data=n,this._path=r,this._key=s}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}},Ds=(e,t)=>{if(xe(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 G(e.common.issues);return this._error=n,this._error}}};function $(e){if(!e)return{};let{errorMap:t,invalid_type_error:n,required_error:r,description:s}=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:s}:{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:s}}var C=class{get description(){return this._def.description}_getType(t){return ae(t.data)}_getOrReturnCtx(t,n){return n||{common:t.parent.common,data:t.data,parsedType:ae(t.data),schemaErrorMap:this._def.errorMap,path:t.path,parent:t.parent}}_processInputParams(t){return{status:new j,ctx:{common:t.parent.common,data:t.data,parsedType:ae(t.data),schemaErrorMap:this._def.errorMap,path:t.path,parent:t.parent}}}_parseSync(t){let n=this._parse(t);if(rt(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:ae(t)},s=this._parseSync({data:t,path:r.path,parent:r});return Ds(r,s)}"~validate"(t){let n={common:{issues:[],async:!!this["~standard"].async},path:[],schemaErrorMap:this._def.errorMap,parent:null,data:t,parsedType:ae(t)};if(!this["~standard"].async)try{let r=this._parseSync({data:t,path:[],parent:n});return xe(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=>xe(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:ae(t)},s=this._parse({data:t,path:r.path,parent:r}),o=await(rt(s)?s:Promise.resolve(s));return Ds(r,o)}refine(t,n){let r=s=>typeof n=="string"||typeof n>"u"?{message:n}:typeof n=="function"?n(s):n;return this._refinement((s,o)=>{let i=t(s),a=()=>o.addIssue({code:h.custom,...r(s)});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,s)=>t(r)?!0:(s.addIssue(typeof n=="function"?n(r,s):n),!1))}_refinement(t){return new Y({schema:this,typeName:T.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 K.create(this,this._def)}nullable(){return ue.create(this,this._def)}nullish(){return this.nullable().optional()}array(){return ye.create(this)}promise(){return ve.create(this,this._def)}or(t){return Me.create([this,t],this._def)}and(t){return je.create(this,t,this._def)}transform(t){return new Y({...$(this._def),schema:this,typeName:T.ZodEffects,effect:{type:"transform",transform:t}})}default(t){let n=typeof t=="function"?t:()=>t;return new Ze({...$(this._def),innerType:this,defaultValue:n,typeName:T.ZodDefault})}brand(){return new Ot({typeName:T.ZodBranded,type:this,...$(this._def)})}catch(t){let n=typeof t=="function"?t:()=>t;return new Je({...$(this._def),innerType:this,catchValue:n,typeName:T.ZodCatch})}describe(t){let n=this.constructor;return new n({...this._def,description:t})}pipe(t){return It.create(this,t)}readonly(){return Ge.create(this)}isOptional(){return this.safeParse(void 0).success}isNullable(){return this.safeParse(null).success}},iu=/^c[^\s-]{8,}$/i,au=/^[0-9a-z]+$/,lu=/^[0-9A-HJKMNP-TV-Z]{26}$/i,uu=/^[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,cu=/^[a-z0-9_-]{21}$/i,fu=/^[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]*$/,du=/^[-+]?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)?)??$/,pu=/^(?!\.)(?!.*\.\.)([A-Z0-9_'+\-\.]*)[A-Z0-9_+-]@([A-Z0-9][A-Z0-9\-]*\.)+[A-Z]{2,}$/i,mu="^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$",qn,hu=/^(?:(?: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])$/,gu=/^(?:(?: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])$/,yu=/^(([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]))$/,ku=/^(([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])$/,bu=/^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/,_u=/^([0-9a-zA-Z-_]{4})*(([0-9a-zA-Z-_]{2}(==)?)|([0-9a-zA-Z-_]{3}(=)?))?$/,Fs="((\\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])))",xu=new RegExp(`^${Fs}$`);function Ms(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 wu(e){return new RegExp(`^${Ms(e)}$`)}function js(e){let t=`${Fs}T${Ms(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 Su(e,t){return!!((t==="v4"||!t)&&hu.test(e)||(t==="v6"||!t)&&yu.test(e))}function vu(e,t){if(!fu.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,"="),s=JSON.parse(atob(r));return!(typeof s!="object"||s===null||"typ"in s&&s?.typ!=="JWT"||!s.alg||t&&s.alg!==t)}catch{return!1}}function Eu(e,t){return!!((t==="v4"||!t)&&gu.test(e)||(t==="v6"||!t)&&ku.test(e))}var we=class e extends C{_parse(t){if(this._def.coerce&&(t.data=String(t.data)),this._getType(t)!==x.string){let o=this._getOrReturnCtx(t);return b(o,{code:h.invalid_type,expected:x.string,received:o.parsedType}),v}let r=new j,s;for(let o of this._def.checks)if(o.kind==="min")t.data.length<o.value&&(s=this._getOrReturnCtx(t,s),b(s,{code:h.too_small,minimum:o.value,type:"string",inclusive:!0,exact:!1,message:o.message}),r.dirty());else if(o.kind==="max")t.data.length>o.value&&(s=this._getOrReturnCtx(t,s),b(s,{code:h.too_big,maximum:o.value,type:"string",inclusive:!0,exact:!1,message:o.message}),r.dirty());else if(o.kind==="length"){let i=t.data.length>o.value,a=t.data.length<o.value;(i||a)&&(s=this._getOrReturnCtx(t,s),i?b(s,{code:h.too_big,maximum:o.value,type:"string",inclusive:!0,exact:!0,message:o.message}):a&&b(s,{code:h.too_small,minimum:o.value,type:"string",inclusive:!0,exact:!0,message:o.message}),r.dirty())}else if(o.kind==="email")pu.test(t.data)||(s=this._getOrReturnCtx(t,s),b(s,{validation:"email",code:h.invalid_string,message:o.message}),r.dirty());else if(o.kind==="emoji")qn||(qn=new RegExp(mu,"u")),qn.test(t.data)||(s=this._getOrReturnCtx(t,s),b(s,{validation:"emoji",code:h.invalid_string,message:o.message}),r.dirty());else if(o.kind==="uuid")uu.test(t.data)||(s=this._getOrReturnCtx(t,s),b(s,{validation:"uuid",code:h.invalid_string,message:o.message}),r.dirty());else if(o.kind==="nanoid")cu.test(t.data)||(s=this._getOrReturnCtx(t,s),b(s,{validation:"nanoid",code:h.invalid_string,message:o.message}),r.dirty());else if(o.kind==="cuid")iu.test(t.data)||(s=this._getOrReturnCtx(t,s),b(s,{validation:"cuid",code:h.invalid_string,message:o.message}),r.dirty());else if(o.kind==="cuid2")au.test(t.data)||(s=this._getOrReturnCtx(t,s),b(s,{validation:"cuid2",code:h.invalid_string,message:o.message}),r.dirty());else if(o.kind==="ulid")lu.test(t.data)||(s=this._getOrReturnCtx(t,s),b(s,{validation:"ulid",code:h.invalid_string,message:o.message}),r.dirty());else if(o.kind==="url")try{new URL(t.data)}catch{s=this._getOrReturnCtx(t,s),b(s,{validation:"url",code:h.invalid_string,message:o.message}),r.dirty()}else o.kind==="regex"?(o.regex.lastIndex=0,o.regex.test(t.data)||(s=this._getOrReturnCtx(t,s),b(s,{validation:"regex",code:h.invalid_string,message:o.message}),r.dirty())):o.kind==="trim"?t.data=t.data.trim():o.kind==="includes"?t.data.includes(o.value,o.position)||(s=this._getOrReturnCtx(t,s),b(s,{code:h.invalid_string,validation:{includes:o.value,position:o.position},message:o.message}),r.dirty()):o.kind==="toLowerCase"?t.data=t.data.toLowerCase():o.kind==="toUpperCase"?t.data=t.data.toUpperCase():o.kind==="startsWith"?t.data.startsWith(o.value)||(s=this._getOrReturnCtx(t,s),b(s,{code:h.invalid_string,validation:{startsWith:o.value},message:o.message}),r.dirty()):o.kind==="endsWith"?t.data.endsWith(o.value)||(s=this._getOrReturnCtx(t,s),b(s,{code:h.invalid_string,validation:{endsWith:o.value},message:o.message}),r.dirty()):o.kind==="datetime"?js(o).test(t.data)||(s=this._getOrReturnCtx(t,s),b(s,{code:h.invalid_string,validation:"datetime",message:o.message}),r.dirty()):o.kind==="date"?xu.test(t.data)||(s=this._getOrReturnCtx(t,s),b(s,{code:h.invalid_string,validation:"date",message:o.message}),r.dirty()):o.kind==="time"?wu(o).test(t.data)||(s=this._getOrReturnCtx(t,s),b(s,{code:h.invalid_string,validation:"time",message:o.message}),r.dirty()):o.kind==="duration"?du.test(t.data)||(s=this._getOrReturnCtx(t,s),b(s,{validation:"duration",code:h.invalid_string,message:o.message}),r.dirty()):o.kind==="ip"?Su(t.data,o.version)||(s=this._getOrReturnCtx(t,s),b(s,{validation:"ip",code:h.invalid_string,message:o.message}),r.dirty()):o.kind==="jwt"?vu(t.data,o.alg)||(s=this._getOrReturnCtx(t,s),b(s,{validation:"jwt",code:h.invalid_string,message:o.message}),r.dirty()):o.kind==="cidr"?Eu(t.data,o.version)||(s=this._getOrReturnCtx(t,s),b(s,{validation:"cidr",code:h.invalid_string,message:o.message}),r.dirty()):o.kind==="base64"?bu.test(t.data)||(s=this._getOrReturnCtx(t,s),b(s,{validation:"base64",code:h.invalid_string,message:o.message}),r.dirty()):o.kind==="base64url"?_u.test(t.data)||(s=this._getOrReturnCtx(t,s),b(s,{validation:"base64url",code:h.invalid_string,message:o.message}),r.dirty()):N.assertNever(o);return{status:r.value,value:t.data}}_regex(t,n,r){return this.refinement(s=>t.test(s),{validation:n,code:h.invalid_string,...S.errToObj(r)})}_addCheck(t){return new e({...this._def,checks:[...this._def.checks,t]})}email(t){return this._addCheck({kind:"email",...S.errToObj(t)})}url(t){return this._addCheck({kind:"url",...S.errToObj(t)})}emoji(t){return this._addCheck({kind:"emoji",...S.errToObj(t)})}uuid(t){return this._addCheck({kind:"uuid",...S.errToObj(t)})}nanoid(t){return this._addCheck({kind:"nanoid",...S.errToObj(t)})}cuid(t){return this._addCheck({kind:"cuid",...S.errToObj(t)})}cuid2(t){return this._addCheck({kind:"cuid2",...S.errToObj(t)})}ulid(t){return this._addCheck({kind:"ulid",...S.errToObj(t)})}base64(t){return this._addCheck({kind:"base64",...S.errToObj(t)})}base64url(t){return this._addCheck({kind:"base64url",...S.errToObj(t)})}jwt(t){return this._addCheck({kind:"jwt",...S.errToObj(t)})}ip(t){return this._addCheck({kind:"ip",...S.errToObj(t)})}cidr(t){return this._addCheck({kind:"cidr",...S.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,...S.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,...S.errToObj(t?.message)})}duration(t){return this._addCheck({kind:"duration",...S.errToObj(t)})}regex(t,n){return this._addCheck({kind:"regex",regex:t,...S.errToObj(n)})}includes(t,n){return this._addCheck({kind:"includes",value:t,position:n?.position,...S.errToObj(n?.message)})}startsWith(t,n){return this._addCheck({kind:"startsWith",value:t,...S.errToObj(n)})}endsWith(t,n){return this._addCheck({kind:"endsWith",value:t,...S.errToObj(n)})}min(t,n){return this._addCheck({kind:"min",value:t,...S.errToObj(n)})}max(t,n){return this._addCheck({kind:"max",value:t,...S.errToObj(n)})}length(t,n){return this._addCheck({kind:"length",value:t,...S.errToObj(n)})}nonempty(t){return this.min(1,S.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}};we.create=e=>new we({checks:[],typeName:T.ZodString,coerce:e?.coerce??!1,...$(e)});function Tu(e,t){let n=(e.toString().split(".")[1]||"").length,r=(t.toString().split(".")[1]||"").length,s=n>r?n:r,o=Number.parseInt(e.toFixed(s).replace(".","")),i=Number.parseInt(t.toFixed(s).replace(".",""));return o%i/10**s}var Ie=class e extends C{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)!==x.number){let o=this._getOrReturnCtx(t);return b(o,{code:h.invalid_type,expected:x.number,received:o.parsedType}),v}let r,s=new j;for(let o of this._def.checks)o.kind==="int"?N.isInteger(t.data)||(r=this._getOrReturnCtx(t,r),b(r,{code:h.invalid_type,expected:"integer",received:"float",message:o.message}),s.dirty()):o.kind==="min"?(o.inclusive?t.data<o.value:t.data<=o.value)&&(r=this._getOrReturnCtx(t,r),b(r,{code:h.too_small,minimum:o.value,type:"number",inclusive:o.inclusive,exact:!1,message:o.message}),s.dirty()):o.kind==="max"?(o.inclusive?t.data>o.value:t.data>=o.value)&&(r=this._getOrReturnCtx(t,r),b(r,{code:h.too_big,maximum:o.value,type:"number",inclusive:o.inclusive,exact:!1,message:o.message}),s.dirty()):o.kind==="multipleOf"?Tu(t.data,o.value)!==0&&(r=this._getOrReturnCtx(t,r),b(r,{code:h.not_multiple_of,multipleOf:o.value,message:o.message}),s.dirty()):o.kind==="finite"?Number.isFinite(t.data)||(r=this._getOrReturnCtx(t,r),b(r,{code:h.not_finite,message:o.message}),s.dirty()):N.assertNever(o);return{status:s.value,value:t.data}}gte(t,n){return this.setLimit("min",t,!0,S.toString(n))}gt(t,n){return this.setLimit("min",t,!1,S.toString(n))}lte(t,n){return this.setLimit("max",t,!0,S.toString(n))}lt(t,n){return this.setLimit("max",t,!1,S.toString(n))}setLimit(t,n,r,s){return new e({...this._def,checks:[...this._def.checks,{kind:t,value:n,inclusive:r,message:S.toString(s)}]})}_addCheck(t){return new e({...this._def,checks:[...this._def.checks,t]})}int(t){return this._addCheck({kind:"int",message:S.toString(t)})}positive(t){return this._addCheck({kind:"min",value:0,inclusive:!1,message:S.toString(t)})}negative(t){return this._addCheck({kind:"max",value:0,inclusive:!1,message:S.toString(t)})}nonpositive(t){return this._addCheck({kind:"max",value:0,inclusive:!0,message:S.toString(t)})}nonnegative(t){return this._addCheck({kind:"min",value:0,inclusive:!0,message:S.toString(t)})}multipleOf(t,n){return this._addCheck({kind:"multipleOf",value:t,message:S.toString(n)})}finite(t){return this._addCheck({kind:"finite",message:S.toString(t)})}safe(t){return this._addCheck({kind:"min",inclusive:!0,value:Number.MIN_SAFE_INTEGER,message:S.toString(t)})._addCheck({kind:"max",inclusive:!0,value:Number.MAX_SAFE_INTEGER,message:S.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"&&N.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)}};Ie.create=e=>new Ie({checks:[],typeName:T.ZodNumber,coerce:e?.coerce||!1,...$(e)});var Ne=class e extends C{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)!==x.bigint)return this._getInvalidInput(t);let r,s=new j;for(let o of this._def.checks)o.kind==="min"?(o.inclusive?t.data<o.value:t.data<=o.value)&&(r=this._getOrReturnCtx(t,r),b(r,{code:h.too_small,type:"bigint",minimum:o.value,inclusive:o.inclusive,message:o.message}),s.dirty()):o.kind==="max"?(o.inclusive?t.data>o.value:t.data>=o.value)&&(r=this._getOrReturnCtx(t,r),b(r,{code:h.too_big,type:"bigint",maximum:o.value,inclusive:o.inclusive,message:o.message}),s.dirty()):o.kind==="multipleOf"?t.data%o.value!==BigInt(0)&&(r=this._getOrReturnCtx(t,r),b(r,{code:h.not_multiple_of,multipleOf:o.value,message:o.message}),s.dirty()):N.assertNever(o);return{status:s.value,value:t.data}}_getInvalidInput(t){let n=this._getOrReturnCtx(t);return b(n,{code:h.invalid_type,expected:x.bigint,received:n.parsedType}),v}gte(t,n){return this.setLimit("min",t,!0,S.toString(n))}gt(t,n){return this.setLimit("min",t,!1,S.toString(n))}lte(t,n){return this.setLimit("max",t,!0,S.toString(n))}lt(t,n){return this.setLimit("max",t,!1,S.toString(n))}setLimit(t,n,r,s){return new e({...this._def,checks:[...this._def.checks,{kind:t,value:n,inclusive:r,message:S.toString(s)}]})}_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:S.toString(t)})}negative(t){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!1,message:S.toString(t)})}nonpositive(t){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!0,message:S.toString(t)})}nonnegative(t){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!0,message:S.toString(t)})}multipleOf(t,n){return this._addCheck({kind:"multipleOf",value:t,message:S.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}};Ne.create=e=>new Ne({checks:[],typeName:T.ZodBigInt,coerce:e?.coerce??!1,...$(e)});var Pe=class extends C{_parse(t){if(this._def.coerce&&(t.data=!!t.data),this._getType(t)!==x.boolean){let r=this._getOrReturnCtx(t);return b(r,{code:h.invalid_type,expected:x.boolean,received:r.parsedType}),v}return z(t.data)}};Pe.create=e=>new Pe({typeName:T.ZodBoolean,coerce:e?.coerce||!1,...$(e)});var De=class e extends C{_parse(t){if(this._def.coerce&&(t.data=new Date(t.data)),this._getType(t)!==x.date){let o=this._getOrReturnCtx(t);return b(o,{code:h.invalid_type,expected:x.date,received:o.parsedType}),v}if(Number.isNaN(t.data.getTime())){let o=this._getOrReturnCtx(t);return b(o,{code:h.invalid_date}),v}let r=new j,s;for(let o of this._def.checks)o.kind==="min"?t.data.getTime()<o.value&&(s=this._getOrReturnCtx(t,s),b(s,{code:h.too_small,message:o.message,inclusive:!0,exact:!1,minimum:o.value,type:"date"}),r.dirty()):o.kind==="max"?t.data.getTime()>o.value&&(s=this._getOrReturnCtx(t,s),b(s,{code:h.too_big,message:o.message,inclusive:!0,exact:!1,maximum:o.value,type:"date"}),r.dirty()):N.assertNever(o);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:S.toString(n)})}max(t,n){return this._addCheck({kind:"max",value:t.getTime(),message:S.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}};De.create=e=>new De({checks:[],coerce:e?.coerce||!1,typeName:T.ZodDate,...$(e)});var ot=class extends C{_parse(t){if(this._getType(t)!==x.symbol){let r=this._getOrReturnCtx(t);return b(r,{code:h.invalid_type,expected:x.symbol,received:r.parsedType}),v}return z(t.data)}};ot.create=e=>new ot({typeName:T.ZodSymbol,...$(e)});var Le=class extends C{_parse(t){if(this._getType(t)!==x.undefined){let r=this._getOrReturnCtx(t);return b(r,{code:h.invalid_type,expected:x.undefined,received:r.parsedType}),v}return z(t.data)}};Le.create=e=>new Le({typeName:T.ZodUndefined,...$(e)});var Fe=class extends C{_parse(t){if(this._getType(t)!==x.null){let r=this._getOrReturnCtx(t);return b(r,{code:h.invalid_type,expected:x.null,received:r.parsedType}),v}return z(t.data)}};Fe.create=e=>new Fe({typeName:T.ZodNull,...$(e)});var Se=class extends C{constructor(){super(...arguments),this._any=!0}_parse(t){return z(t.data)}};Se.create=e=>new Se({typeName:T.ZodAny,...$(e)});var ge=class extends C{constructor(){super(...arguments),this._unknown=!0}_parse(t){return z(t.data)}};ge.create=e=>new ge({typeName:T.ZodUnknown,...$(e)});var re=class extends C{_parse(t){let n=this._getOrReturnCtx(t);return b(n,{code:h.invalid_type,expected:x.never,received:n.parsedType}),v}};re.create=e=>new re({typeName:T.ZodNever,...$(e)});var it=class extends C{_parse(t){if(this._getType(t)!==x.undefined){let r=this._getOrReturnCtx(t);return b(r,{code:h.invalid_type,expected:x.void,received:r.parsedType}),v}return z(t.data)}};it.create=e=>new it({typeName:T.ZodVoid,...$(e)});var ye=class e extends C{_parse(t){let{ctx:n,status:r}=this._processInputParams(t),s=this._def;if(n.parsedType!==x.array)return b(n,{code:h.invalid_type,expected:x.array,received:n.parsedType}),v;if(s.exactLength!==null){let i=n.data.length>s.exactLength.value,a=n.data.length<s.exactLength.value;(i||a)&&(b(n,{code:i?h.too_big:h.too_small,minimum:a?s.exactLength.value:void 0,maximum:i?s.exactLength.value:void 0,type:"array",inclusive:!0,exact:!0,message:s.exactLength.message}),r.dirty())}if(s.minLength!==null&&n.data.length<s.minLength.value&&(b(n,{code:h.too_small,minimum:s.minLength.value,type:"array",inclusive:!0,exact:!1,message:s.minLength.message}),r.dirty()),s.maxLength!==null&&n.data.length>s.maxLength.value&&(b(n,{code:h.too_big,maximum:s.maxLength.value,type:"array",inclusive:!0,exact:!1,message:s.maxLength.message}),r.dirty()),n.common.async)return Promise.all([...n.data].map((i,a)=>s.type._parseAsync(new q(n,i,n.path,a)))).then(i=>j.mergeArray(r,i));let o=[...n.data].map((i,a)=>s.type._parseSync(new q(n,i,n.path,a)));return j.mergeArray(r,o)}get element(){return this._def.type}min(t,n){return new e({...this._def,minLength:{value:t,message:S.toString(n)}})}max(t,n){return new e({...this._def,maxLength:{value:t,message:S.toString(n)}})}length(t,n){return new e({...this._def,exactLength:{value:t,message:S.toString(n)}})}nonempty(t){return this.min(1,t)}};ye.create=(e,t)=>new ye({type:e,minLength:null,maxLength:null,exactLength:null,typeName:T.ZodArray,...$(t)});function st(e){if(e instanceof W){let t={};for(let n in e.shape){let r=e.shape[n];t[n]=K.create(st(r))}return new W({...e._def,shape:()=>t})}else return e instanceof ye?new ye({...e._def,type:st(e.element)}):e instanceof K?K.create(st(e.unwrap())):e instanceof ue?ue.create(st(e.unwrap())):e instanceof le?le.create(e.items.map(t=>st(t))):e}var W=class e extends C{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=N.objectKeys(t);return this._cached={shape:t,keys:n},this._cached}_parse(t){if(this._getType(t)!==x.object){let u=this._getOrReturnCtx(t);return b(u,{code:h.invalid_type,expected:x.object,received:u.parsedType}),v}let{status:r,ctx:s}=this._processInputParams(t),{shape:o,keys:i}=this._getCached(),a=[];if(!(this._def.catchall instanceof re&&this._def.unknownKeys==="strip"))for(let u in s.data)i.includes(u)||a.push(u);let l=[];for(let u of i){let c=o[u],f=s.data[u];l.push({key:{status:"valid",value:u},value:c._parse(new q(s,f,s.path,u)),alwaysSet:u in s.data})}if(this._def.catchall instanceof re){let u=this._def.unknownKeys;if(u==="passthrough")for(let c of a)l.push({key:{status:"valid",value:c},value:{status:"valid",value:s.data[c]}});else if(u==="strict")a.length>0&&(b(s,{code:h.unrecognized_keys,keys:a}),r.dirty());else if(u!=="strip")throw new Error("Internal ZodObject error: invalid unknownKeys value.")}else{let u=this._def.catchall;for(let c of a){let f=s.data[c];l.push({key:{status:"valid",value:c},value:u._parse(new q(s,f,s.path,c)),alwaysSet:c in s.data})}}return s.common.async?Promise.resolve().then(async()=>{let u=[];for(let c of l){let f=await c.key,d=await c.value;u.push({key:f,value:d,alwaysSet:c.alwaysSet})}return u}).then(u=>j.mergeObjectSync(r,u)):j.mergeObjectSync(r,l)}get shape(){return this._def.shape()}strict(t){return S.errToObj,new e({...this._def,unknownKeys:"strict",...t!==void 0?{errorMap:(n,r)=>{let s=this._def.errorMap?.(n,r).message??r.defaultError;return n.code==="unrecognized_keys"?{message:S.errToObj(t).message??s}:{message:s}}}:{}})}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:T.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 N.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 N.objectKeys(this.shape))t[r]||(n[r]=this.shape[r]);return new e({...this._def,shape:()=>n})}deepPartial(){return st(this)}partial(t){let n={};for(let r of N.objectKeys(this.shape)){let s=this.shape[r];t&&!t[r]?n[r]=s:n[r]=s.optional()}return new e({...this._def,shape:()=>n})}required(t){let n={};for(let r of N.objectKeys(this.shape))if(t&&!t[r])n[r]=this.shape[r];else{let o=this.shape[r];for(;o instanceof K;)o=o._def.innerType;n[r]=o}return new e({...this._def,shape:()=>n})}keyof(){return Hs(N.objectKeys(this.shape))}};W.create=(e,t)=>new W({shape:()=>e,unknownKeys:"strip",catchall:re.create(),typeName:T.ZodObject,...$(t)});W.strictCreate=(e,t)=>new W({shape:()=>e,unknownKeys:"strict",catchall:re.create(),typeName:T.ZodObject,...$(t)});W.lazycreate=(e,t)=>new W({shape:e,unknownKeys:"strip",catchall:re.create(),typeName:T.ZodObject,...$(t)});var Me=class extends C{_parse(t){let{ctx:n}=this._processInputParams(t),r=this._def.options;function s(o){for(let a of o)if(a.result.status==="valid")return a.result;for(let a of o)if(a.result.status==="dirty")return n.common.issues.push(...a.ctx.common.issues),a.result;let i=o.map(a=>new G(a.ctx.common.issues));return b(n,{code:h.invalid_union,unionErrors:i}),v}if(n.common.async)return Promise.all(r.map(async o=>{let i={...n,common:{...n.common,issues:[]},parent:null};return{result:await o._parseAsync({data:n.data,path:n.path,parent:i}),ctx:i}})).then(s);{let o,i=[];for(let l of r){let u={...n,common:{...n.common,issues:[]},parent:null},c=l._parseSync({data:n.data,path:n.path,parent:u});if(c.status==="valid")return c;c.status==="dirty"&&!o&&(o={result:c,ctx:u}),u.common.issues.length&&i.push(u.common.issues)}if(o)return n.common.issues.push(...o.ctx.common.issues),o.result;let a=i.map(l=>new G(l));return b(n,{code:h.invalid_union,unionErrors:a}),v}}get options(){return this._def.options}};Me.create=(e,t)=>new Me({options:e,typeName:T.ZodUnion,...$(t)});var he=e=>e instanceof He?he(e.schema):e instanceof Y?he(e.innerType()):e instanceof ze?[e.value]:e instanceof Ue?e.options:e instanceof Be?N.objectValues(e.enum):e instanceof Ze?he(e._def.innerType):e instanceof Le?[void 0]:e instanceof Fe?[null]:e instanceof K?[void 0,...he(e.unwrap())]:e instanceof ue?[null,...he(e.unwrap())]:e instanceof Ot||e instanceof Ge?he(e.unwrap()):e instanceof Je?he(e._def.innerType):[],ln=class e extends C{_parse(t){let{ctx:n}=this._processInputParams(t);if(n.parsedType!==x.object)return b(n,{code:h.invalid_type,expected:x.object,received:n.parsedType}),v;let r=this.discriminator,s=n.data[r],o=this.optionsMap.get(s);return o?n.common.async?o._parseAsync({data:n.data,path:n.path,parent:n}):o._parseSync({data:n.data,path:n.path,parent:n}):(b(n,{code:h.invalid_union_discriminator,options:Array.from(this.optionsMap.keys()),path:[r]}),v)}get discriminator(){return this._def.discriminator}get options(){return this._def.options}get optionsMap(){return this._def.optionsMap}static create(t,n,r){let s=new Map;for(let o of n){let i=he(o.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(s.has(a))throw new Error(`Discriminator property ${String(t)} has duplicate value ${String(a)}`);s.set(a,o)}}return new e({typeName:T.ZodDiscriminatedUnion,discriminator:t,options:n,optionsMap:s,...$(r)})}};function Yn(e,t){let n=ae(e),r=ae(t);if(e===t)return{valid:!0,data:e};if(n===x.object&&r===x.object){let s=N.objectKeys(t),o=N.objectKeys(e).filter(a=>s.indexOf(a)!==-1),i={...e,...t};for(let a of o){let l=Yn(e[a],t[a]);if(!l.valid)return{valid:!1};i[a]=l.data}return{valid:!0,data:i}}else if(n===x.array&&r===x.array){if(e.length!==t.length)return{valid:!1};let s=[];for(let o=0;o<e.length;o++){let i=e[o],a=t[o],l=Yn(i,a);if(!l.valid)return{valid:!1};s.push(l.data)}return{valid:!0,data:s}}else return n===x.date&&r===x.date&&+e==+t?{valid:!0,data:e}:{valid:!1}}var je=class extends C{_parse(t){let{status:n,ctx:r}=this._processInputParams(t),s=(o,i)=>{if(on(o)||on(i))return v;let a=Yn(o.value,i.value);return a.valid?((an(o)||an(i))&&n.dirty(),{status:n.value,value:a.data}):(b(r,{code:h.invalid_intersection_types}),v)};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(([o,i])=>s(o,i)):s(this._def.left._parseSync({data:r.data,path:r.path,parent:r}),this._def.right._parseSync({data:r.data,path:r.path,parent:r}))}};je.create=(e,t,n)=>new je({left:e,right:t,typeName:T.ZodIntersection,...$(n)});var le=class e extends C{_parse(t){let{status:n,ctx:r}=this._processInputParams(t);if(r.parsedType!==x.array)return b(r,{code:h.invalid_type,expected:x.array,received:r.parsedType}),v;if(r.data.length<this._def.items.length)return b(r,{code:h.too_small,minimum:this._def.items.length,inclusive:!0,exact:!1,type:"array"}),v;!this._def.rest&&r.data.length>this._def.items.length&&(b(r,{code:h.too_big,maximum:this._def.items.length,inclusive:!0,exact:!1,type:"array"}),n.dirty());let o=[...r.data].map((i,a)=>{let l=this._def.items[a]||this._def.rest;return l?l._parse(new q(r,i,r.path,a)):null}).filter(i=>!!i);return r.common.async?Promise.all(o).then(i=>j.mergeArray(n,i)):j.mergeArray(n,o)}get items(){return this._def.items}rest(t){return new e({...this._def,rest:t})}};le.create=(e,t)=>{if(!Array.isArray(e))throw new Error("You must pass an array of schemas to z.tuple([ ... ])");return new le({items:e,typeName:T.ZodTuple,rest:null,...$(t)})};var un=class e extends C{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!==x.object)return b(r,{code:h.invalid_type,expected:x.object,received:r.parsedType}),v;let s=[],o=this._def.keyType,i=this._def.valueType;for(let a in r.data)s.push({key:o._parse(new q(r,a,r.path,a)),value:i._parse(new q(r,r.data[a],r.path,a)),alwaysSet:a in r.data});return r.common.async?j.mergeObjectAsync(n,s):j.mergeObjectSync(n,s)}get element(){return this._def.valueType}static create(t,n,r){return n instanceof C?new e({keyType:t,valueType:n,typeName:T.ZodRecord,...$(r)}):new e({keyType:we.create(),valueType:t,typeName:T.ZodRecord,...$(n)})}},at=class extends C{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!==x.map)return b(r,{code:h.invalid_type,expected:x.map,received:r.parsedType}),v;let s=this._def.keyType,o=this._def.valueType,i=[...r.data.entries()].map(([a,l],u)=>({key:s._parse(new q(r,a,r.path,[u,"key"])),value:o._parse(new q(r,l,r.path,[u,"value"]))}));if(r.common.async){let a=new Map;return Promise.resolve().then(async()=>{for(let l of i){let u=await l.key,c=await l.value;if(u.status==="aborted"||c.status==="aborted")return v;(u.status==="dirty"||c.status==="dirty")&&n.dirty(),a.set(u.value,c.value)}return{status:n.value,value:a}})}else{let a=new Map;for(let l of i){let u=l.key,c=l.value;if(u.status==="aborted"||c.status==="aborted")return v;(u.status==="dirty"||c.status==="dirty")&&n.dirty(),a.set(u.value,c.value)}return{status:n.value,value:a}}}};at.create=(e,t,n)=>new at({valueType:t,keyType:e,typeName:T.ZodMap,...$(n)});var lt=class e extends C{_parse(t){let{status:n,ctx:r}=this._processInputParams(t);if(r.parsedType!==x.set)return b(r,{code:h.invalid_type,expected:x.set,received:r.parsedType}),v;let s=this._def;s.minSize!==null&&r.data.size<s.minSize.value&&(b(r,{code:h.too_small,minimum:s.minSize.value,type:"set",inclusive:!0,exact:!1,message:s.minSize.message}),n.dirty()),s.maxSize!==null&&r.data.size>s.maxSize.value&&(b(r,{code:h.too_big,maximum:s.maxSize.value,type:"set",inclusive:!0,exact:!1,message:s.maxSize.message}),n.dirty());let o=this._def.valueType;function i(l){let u=new Set;for(let c of l){if(c.status==="aborted")return v;c.status==="dirty"&&n.dirty(),u.add(c.value)}return{status:n.value,value:u}}let a=[...r.data.values()].map((l,u)=>o._parse(new q(r,l,r.path,u)));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:S.toString(n)}})}max(t,n){return new e({...this._def,maxSize:{value:t,message:S.toString(n)}})}size(t,n){return this.min(t,n).max(t,n)}nonempty(t){return this.min(1,t)}};lt.create=(e,t)=>new lt({valueType:e,minSize:null,maxSize:null,typeName:T.ZodSet,...$(t)});var cn=class e extends C{constructor(){super(...arguments),this.validate=this.implement}_parse(t){let{ctx:n}=this._processInputParams(t);if(n.parsedType!==x.function)return b(n,{code:h.invalid_type,expected:x.function,received:n.parsedType}),v;function r(a,l){return Ct({data:a,path:n.path,errorMaps:[n.common.contextualErrorMap,n.schemaErrorMap,nt(),me].filter(u=>!!u),issueData:{code:h.invalid_arguments,argumentsError:l}})}function s(a,l){return Ct({data:a,path:n.path,errorMaps:[n.common.contextualErrorMap,n.schemaErrorMap,nt(),me].filter(u=>!!u),issueData:{code:h.invalid_return_type,returnTypeError:l}})}let o={errorMap:n.common.contextualErrorMap},i=n.data;if(this._def.returns instanceof ve){let a=this;return z(async function(...l){let u=new G([]),c=await a._def.args.parseAsync(l,o).catch(p=>{throw u.addIssue(r(l,p)),u}),f=await Reflect.apply(i,this,c);return await a._def.returns._def.type.parseAsync(f,o).catch(p=>{throw u.addIssue(s(f,p)),u})})}else{let a=this;return z(function(...l){let u=a._def.args.safeParse(l,o);if(!u.success)throw new G([r(l,u.error)]);let c=Reflect.apply(i,this,u.data),f=a._def.returns.safeParse(c,o);if(!f.success)throw new G([s(c,f.error)]);return f.data})}}parameters(){return this._def.args}returnType(){return this._def.returns}args(...t){return new e({...this._def,args:le.create(t).rest(ge.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||le.create([]).rest(ge.create()),returns:n||ge.create(),typeName:T.ZodFunction,...$(r)})}},He=class extends C{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})}};He.create=(e,t)=>new He({getter:e,typeName:T.ZodLazy,...$(t)});var ze=class extends C{_parse(t){if(t.data!==this._def.value){let n=this._getOrReturnCtx(t);return b(n,{received:n.data,code:h.invalid_literal,expected:this._def.value}),v}return{status:"valid",value:t.data}}get value(){return this._def.value}};ze.create=(e,t)=>new ze({value:e,typeName:T.ZodLiteral,...$(t)});function Hs(e,t){return new Ue({values:e,typeName:T.ZodEnum,...$(t)})}var Ue=class e extends C{_parse(t){if(typeof t.data!="string"){let n=this._getOrReturnCtx(t),r=this._def.values;return b(n,{expected:N.joinValues(r),received:n.parsedType,code:h.invalid_type}),v}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 b(n,{received:n.data,code:h.invalid_enum_value,options:r}),v}return z(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})}};Ue.create=Hs;var Be=class extends C{_parse(t){let n=N.getValidEnumValues(this._def.values),r=this._getOrReturnCtx(t);if(r.parsedType!==x.string&&r.parsedType!==x.number){let s=N.objectValues(n);return b(r,{expected:N.joinValues(s),received:r.parsedType,code:h.invalid_type}),v}if(this._cache||(this._cache=new Set(N.getValidEnumValues(this._def.values))),!this._cache.has(t.data)){let s=N.objectValues(n);return b(r,{received:r.data,code:h.invalid_enum_value,options:s}),v}return z(t.data)}get enum(){return this._def.values}};Be.create=(e,t)=>new Be({values:e,typeName:T.ZodNativeEnum,...$(t)});var ve=class extends C{unwrap(){return this._def.type}_parse(t){let{ctx:n}=this._processInputParams(t);if(n.parsedType!==x.promise&&n.common.async===!1)return b(n,{code:h.invalid_type,expected:x.promise,received:n.parsedType}),v;let r=n.parsedType===x.promise?n.data:Promise.resolve(n.data);return z(r.then(s=>this._def.type.parseAsync(s,{path:n.path,errorMap:n.common.contextualErrorMap})))}};ve.create=(e,t)=>new ve({type:e,typeName:T.ZodPromise,...$(t)});var Y=class extends C{innerType(){return this._def.schema}sourceType(){return this._def.schema._def.typeName===T.ZodEffects?this._def.schema.sourceType():this._def.schema}_parse(t){let{status:n,ctx:r}=this._processInputParams(t),s=this._def.effect||null,o={addIssue:i=>{b(r,i),i.fatal?n.abort():n.dirty()},get path(){return r.path}};if(o.addIssue=o.addIssue.bind(o),s.type==="preprocess"){let i=s.transform(r.data,o);if(r.common.async)return Promise.resolve(i).then(async a=>{if(n.value==="aborted")return v;let l=await this._def.schema._parseAsync({data:a,path:r.path,parent:r});return l.status==="aborted"?v:l.status==="dirty"?Oe(l.value):n.value==="dirty"?Oe(l.value):l});{if(n.value==="aborted")return v;let a=this._def.schema._parseSync({data:i,path:r.path,parent:r});return a.status==="aborted"?v:a.status==="dirty"?Oe(a.value):n.value==="dirty"?Oe(a.value):a}}if(s.type==="refinement"){let i=a=>{let l=s.refinement(a,o);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"?v:(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"?v:(a.status==="dirty"&&n.dirty(),i(a.value).then(()=>({status:n.value,value:a.value}))))}if(s.type==="transform")if(r.common.async===!1){let i=this._def.schema._parseSync({data:r.data,path:r.path,parent:r});if(!xe(i))return v;let a=s.transform(i.value,o);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=>xe(i)?Promise.resolve(s.transform(i.value,o)).then(a=>({status:n.value,value:a})):v);N.assertNever(s)}};Y.create=(e,t,n)=>new Y({schema:e,typeName:T.ZodEffects,effect:t,...$(n)});Y.createWithPreprocess=(e,t,n)=>new Y({schema:t,effect:{type:"preprocess",transform:e},typeName:T.ZodEffects,...$(n)});var K=class extends C{_parse(t){return this._getType(t)===x.undefined?z(void 0):this._def.innerType._parse(t)}unwrap(){return this._def.innerType}};K.create=(e,t)=>new K({innerType:e,typeName:T.ZodOptional,...$(t)});var ue=class extends C{_parse(t){return this._getType(t)===x.null?z(null):this._def.innerType._parse(t)}unwrap(){return this._def.innerType}};ue.create=(e,t)=>new ue({innerType:e,typeName:T.ZodNullable,...$(t)});var Ze=class extends C{_parse(t){let{ctx:n}=this._processInputParams(t),r=n.data;return n.parsedType===x.undefined&&(r=this._def.defaultValue()),this._def.innerType._parse({data:r,path:n.path,parent:n})}removeDefault(){return this._def.innerType}};Ze.create=(e,t)=>new Ze({innerType:e,typeName:T.ZodDefault,defaultValue:typeof t.default=="function"?t.default:()=>t.default,...$(t)});var Je=class extends C{_parse(t){let{ctx:n}=this._processInputParams(t),r={...n,common:{...n.common,issues:[]}},s=this._def.innerType._parse({data:r.data,path:r.path,parent:{...r}});return rt(s)?s.then(o=>({status:"valid",value:o.status==="valid"?o.value:this._def.catchValue({get error(){return new G(r.common.issues)},input:r.data})})):{status:"valid",value:s.status==="valid"?s.value:this._def.catchValue({get error(){return new G(r.common.issues)},input:r.data})}}removeCatch(){return this._def.innerType}};Je.create=(e,t)=>new Je({innerType:e,typeName:T.ZodCatch,catchValue:typeof t.catch=="function"?t.catch:()=>t.catch,...$(t)});var ut=class extends C{_parse(t){if(this._getType(t)!==x.nan){let r=this._getOrReturnCtx(t);return b(r,{code:h.invalid_type,expected:x.nan,received:r.parsedType}),v}return{status:"valid",value:t.data}}};ut.create=e=>new ut({typeName:T.ZodNaN,...$(e)});var Au=Symbol("zod_brand"),Ot=class extends C{_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}},It=class e extends C{_parse(t){let{status:n,ctx:r}=this._processInputParams(t);if(r.common.async)return(async()=>{let o=await this._def.in._parseAsync({data:r.data,path:r.path,parent:r});return o.status==="aborted"?v:o.status==="dirty"?(n.dirty(),Oe(o.value)):this._def.out._parseAsync({data:o.value,path:r.path,parent:r})})();{let s=this._def.in._parseSync({data:r.data,path:r.path,parent:r});return s.status==="aborted"?v:s.status==="dirty"?(n.dirty(),{status:"dirty",value:s.value}):this._def.out._parseSync({data:s.value,path:r.path,parent:r})}}static create(t,n){return new e({in:t,out:n,typeName:T.ZodPipeline})}},Ge=class extends C{_parse(t){let n=this._def.innerType._parse(t),r=s=>(xe(s)&&(s.value=Object.freeze(s.value)),s);return rt(n)?n.then(s=>r(s)):r(n)}unwrap(){return this._def.innerType}};Ge.create=(e,t)=>new Ge({innerType:e,typeName:T.ZodReadonly,...$(t)});function Ls(e,t){let n=typeof e=="function"?e(t):typeof e=="string"?{message:e}:e;return typeof n=="string"?{message:n}:n}function zs(e,t={},n){return e?Se.create().superRefine((r,s)=>{let o=e(r);if(o instanceof Promise)return o.then(i=>{if(!i){let a=Ls(t,r),l=a.fatal??n??!0;s.addIssue({code:"custom",...a,fatal:l})}});if(!o){let i=Ls(t,r),a=i.fatal??n??!0;s.addIssue({code:"custom",...i,fatal:a})}}):Se.create()}var Ru={object:W.lazycreate},T;(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"})(T||(T={}));var $u=(e,t={message:`Input not instance of ${e.name}`})=>zs(n=>n instanceof e,t),Us=we.create,Bs=Ie.create,Cu=ut.create,Ou=Ne.create,Zs=Pe.create,Iu=De.create,Nu=ot.create,Pu=Le.create,Du=Fe.create,Lu=Se.create,Fu=ge.create,Mu=re.create,ju=it.create,Hu=ye.create,zu=W.create,Uu=W.strictCreate,Bu=Me.create,Zu=ln.create,Ju=je.create,Gu=le.create,Wu=un.create,Vu=at.create,Ku=lt.create,qu=cn.create,Yu=He.create,Xu=ze.create,Qu=Ue.create,ec=Be.create,tc=ve.create,nc=Y.create,rc=K.create,sc=ue.create,oc=Y.createWithPreprocess,ic=It.create,ac=()=>Us().optional(),lc=()=>Bs().optional(),uc=()=>Zs().optional(),cc={string:(e=>we.create({...e,coerce:!0})),number:(e=>Ie.create({...e,coerce:!0})),boolean:(e=>Pe.create({...e,coerce:!0})),bigint:(e=>Ne.create({...e,coerce:!0})),date:(e=>De.create({...e,coerce:!0}))};var fc=v;var Ee=k.object({slug:k.string().min(1).max(64),description:k.string().max(255).optional(),match_command:k.string().min(1),priority:k.number().int().default(50),strip_ansi:k.boolean().default(!1),strip_lines_matching:k.array(k.string()).default([]),drop_lines_matching:k.array(k.string()).default([]),keep_failures:k.boolean().default(!1),strip_on_failure:k.boolean().default(!1),fold_passing:k.boolean().default(!1),fold_passing_threshold:k.number().int().positive().max(1e3).optional(),mask_abs_paths:k.boolean().default(!1),preserve_exact:k.boolean().default(!1),truncate_lines_at:k.number().int().positive().max(1e4).optional(),max_lines:k.number().int().positive().max(1e5).optional(),scale_with_level:k.boolean().default(!0),transform:k.string().max(64).optional(),transform_on_failure:k.boolean().default(!1),on_empty:k.string().max(255).optional()});var $c=Ac(Rc(import.meta.url)),Cc=process.env.TOKMIZER_FILTERS_DIR||no($c,"..","..","filters"),ct=null,to=!1;function Oc(){return!1}async function ro(){return ct||(Oc()?(ct=await Ic(Cc),ct):(!to&&process.env.TOKMIZER_DEBUG==="1"&&(process.stderr.write(`tokmizer: disk loader disabled (set TOKMIZER_DEV=1 to re-enable for local dev).
18
+ `),to=!0),ct=new Map,ct))}async function Ic(e){let t=new Map,n,r;try{n=(await Promise.resolve().then(()=>(mn(),lr))).parse,r=(await Ec(e)).filter(s=>s.endsWith(".toml"))}catch{return t}for(let s of r){let o=await Tc(no(e,s),"utf8"),a=n(o).filters;if(a)for(let[l,u]of Object.entries(a)){let c=Ee.parse({slug:l,...u});t.set(l,{...c,matchRegex:new RegExp(c.match_command)})}}return t}import{createHash as Nc}from"node:crypto";var Pc=k.enum(["normal","compact","minimal"]),Dc=k.enum(["off","light","balanced","max"]),Ft=k.object({enabled:k.boolean().default(!0),telemetryOptIn:k.boolean().default(!0),outputVerbosity:Pc.default("compact"),reducer:Dc.default("off"),filters:k.object({enableAll:k.boolean().default(!0),disabled:k.array(k.string().max(64)).max(100).default([])}).default({enableAll:!0,disabled:[]})}),so=new Map;function X(e){let t=so.get(e);return t||(t=Nc("sha256").update(`tkr:${e}`).digest("hex").slice(0,16),so.set(e,t)),t}var oo=new WeakMap,Lc=256;function ft(e,t,n,r=t){let s=oo.get(r);s||(s=new Map,oo.set(r,s));let o=JSON.stringify([e,n?[...n].sort():null]),i=s.get(o);if(i!==void 0)return i;let a=null;for(let l of t)n&&!n.has(X(l.slug))||l.matchRegex.test(e)&&(!a||l.priority>a.priority)&&(a=l);if(s.size>=Lc){let l=s.keys().next().value;l&&s.delete(l)}return s.set(o,a),a}import{readdir as md,readFile as Go,writeFile as zx,mkdir as Ux,rename as Bx}from"node:fs/promises";import{readdirSync as hd,statSync as Bo}from"node:fs";import{createHash as gd}from"node:crypto";import{basename as Wx,join as xn}from"node:path";var Fc=/\x1b\[[0-9;?]*[ -/]*[@-~]/g,Mc=/\x1b\][^\x07\x1b]*(?:\x07|\x1b\\)/g;function ce(e){return e.replace(Fc,"").replace(Mc,"")}function ur(e,t){return t.length===0?e:e.filter(n=>!t.some(r=>r.test(n)))}function io(e){let t=e.trim();if(t.length>4096||!(t.startsWith("{")&&t.endsWith("}")||t.startsWith("[")&&t.endsWith("]")))return!1;try{return JSON.parse(t),!0}catch{return!1}}function ao(e,t){return e.some(n=>n.length>t)&&io(e.join(`
19
+ `))?e:e.map(n=>{if(n.length<=t||io(n))return n;let r=n.charCodeAt(t-1),s=n.charCodeAt(t),o=r>=55296&&r<=56319&&s>=56320&&s<=57343?t-1:t;return`${n.slice(0,o)}\u2026`})}function dt(e){return`\u2026 (${e} more lines omitted)`}function lo(e,t){if(e.length<=t)return{kept:e,dropped:[]};let n=Math.ceil(t*.7),r=t-n,s=e.slice(n,e.length-r);return{kept:[...e.slice(0,n),dt(s.length),...e.slice(e.length-r)],dropped:s}}var jc=/^\s*(?:[✓✔√]|ok )/,Q=/✕|✗|×|\bFAIL\b|\bERROR\b|\bFATAL\b|\bError|\berror|Expected|Received|\bfailed\b|^\s*Tests?:|^\s*Test Suites?:/;function uo(e,t){let n=t>0?t:5,r=[],s=0,o=a=>{s>=n?r.push(`\u2026 ${s} passing checks folded \u2026`):r.push(...a)},i=[];for(let a of e)jc.test(a)&&!Q.test(a)?(i.push(a),s+=1):(o(i),i=[],s=0,r.push(a));return o(i),r}var Hc=/(?:\/[\w.@+-]+){3,}/g;function co(e){return e.map(t=>t.replace(Hc,n=>{let r=n.split("/").filter(Boolean);return r.length<=2?n:`\u2026/${r.slice(-2).join("/")}`}))}var zc=/^(\s*)(?:export\s+)?(?:async\s+)?(?:function|interface|type|const|let|var|def|fn|impl|trait|struct|enum)\s+[\w$]+/,Uc=/\{\s*$/;var Bc=/^\s*(?:(?:public|private|protected|static|async|get|set|readonly|override)\s+)*([\w$]+)\s*\(([^)]*)\)\s*(?::\s*[^{]+)?\{\s*$/,Zc=new Set(["if","for","while","switch","catch","do","with","return","else","function","await","yield"]);function Jc(e){let t=Bc.exec(e);return!t||Zc.has(t[1])?!1:!/=>|\bfunction\b/.test(t[2])}var Gc=/^\s*(?:if|for|while|switch|try|do)\b[^{}]*\{\s*$/;function Wc(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 Vc(e,t){let n=0,r=null,s=0;for(;s<e.length;){let o=e[s];if(t.inBlockComment){if(o==="*"&&e[s+1]==="/"){t.inBlockComment=!1,s+=2;continue}s+=1;continue}if(t.inTemplate){if(o==="\\"){s+=2;continue}o==="`"&&(t.inTemplate=!1),s+=1;continue}if(r){if(o==="\\"){s+=2;continue}o===r&&(r=null),s+=1;continue}if(o==="/"&&e[s+1]==="/")break;if(o==="/"&&e[s+1]==="*"){t.inBlockComment=!0,s+=2;continue}if(o==="`"){t.inTemplate=!0,s+=1;continue}if(o==="'"||o==='"'){let i=s>0?e[s-1]:"";!(o==="'"&&(i==="<"||i==="&"))&&Wc(e,s+1,o)&&(r=o),s+=1;continue}o==="{"||o==="("||o==="["?n+=1:(o==="}"||o===")"||o==="]")&&(n-=1),s+=1}return n}var Kc=/^\s*… (\d+) lines? folded(?: \(\d+-\d+\): Read offset=\d+ limit=\d+ before editing)? …$/;function qc(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 cr(e){let t=new Array(e.length).fill(!1);for(let n=0;n<e.length;n+=1){let r=Kc.exec(e[n]);if(!r)continue;let s=Number(r[1])-1,o=n+1;for(;s>0&&o<e.length&&e[o]==="";)t[o]=!0,s-=1,o+=1;n=o-1}return t}function Mt(e,t=3,n=!1){let r=[],s=0;for(;s<e.length;){let o=e[s];if(zc.test(o)&&Uc.test(o)||Jc(o)||Gc.test(o)){let i={inBlockComment:!1,inTemplate:!1},a=0,l=s,u=!1;for(;l<e.length&&l-s<200;)if(a+=Vc(e[l],i),l+=1,a<=0&&!i.inTemplate&&!i.inBlockComment){u=!0;break}let c=l-s;if(u&&c<t){r.push(...e.slice(s,l)),s=l;continue}if(u&&c>=3){let f=c-2,d=/^\s*/.exec(e[s+1]??"")?.[0]??" ";r.push(o),r.push(qc(d,f,n?s+2:null));for(let p=0;p<f-1;p++)r.push("");r.push(e[l-1]),s=l;continue}}r.push(o),s+=1}return r}var Yc=/\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 hn(e){let t=e.slice(0,4096);return!(!Yc.test(t)||t.split(`
20
+ `).length<6)}var ho=/^\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*/,go=/^\s*(?:\[(?:DEBUG|TRACE|INFO|VERBOSE)\]|(?:DEBUG|TRACE|INFO|VERBOSE)(?!\s*:))(?=\s|:|$)(?!\s*[+\-*\/%&|^?]*=)/,yo=new RegExp(Q.source,"i"),ko=/\bWARN(?:ING)?\b/i;function bo(e){let t=[],n=0,r=()=>{n>0&&t.push(`\u2026 ${n} verbose log line${n===1?"":"s"} dropped \u2026`),n=0};for(let s of e){if(go.test(s.replace(ho,""))&&!yo.test(s)&&!ko.test(s)){n+=1;continue}r(),t.push(s)}return r(),t}var Xc=/^(?:DEBUG|INFO):[\w.-]+:/,Qc=/Error|Exception|Traceback|panic|fail|FAIL|Fail|SEVERE|CRITICAL/,ef=8,fo=1,po=2;function mo(e){if(e.trim()===""||/^\s/.test(e)||yo.test(e)||ko.test(e)||Qc.test(e))return null;let t=e.replace(ho,"");return go.test(t)||Xc.test(t)?"\0verbose":e.replace(/\d+/g,"#")}function _o(e){let t=[],n=0;for(;n<e.length;){let r=mo(e[n]),s=n+1;if(r!==null)for(;s<e.length&&mo(e[s])===r;)s+=1;let o=s-n;r===null||o<ef?t.push(...e.slice(n,s)):(t.push(...e.slice(n,n+fo)),t.push(`\u2026 ${o-fo-po} similar log lines dropped \u2026`),t.push(...e.slice(s-po,s))),n=s}return t}var tf=/^@@ -\d+(?:,\d+)? \+\d+(?:,\d+)? @@/;function xo(e){return e.some(t=>tf.test(t))}function gn(e){if(e.length===0||xo(e))return e;let t=[],n=1,r=e[0];for(let s=1;s<e.length;s++){if(e[s]===r){n+=1;continue}t.push(n>1&&r.trim()?`${r} \xD7${n}`:r),r=e[s],n=1}return t.push(n>1&&r.trim()?`${r} \xD7${n}`:r),t}function wo(e){if(xo(e))return 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 So=new Map;function F(e,t){So.set(e,t)}function vo(e){return So.get(e)}var Ao=/^[dbclps\-][rwxsStT\-]{9}[@.+]?(?:\s|$)/,Ro=/^[./~][^\s]*:$/,nf=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})?`,rf=new RegExp(String.raw`^(\S+)\s+\d+\s+(\S+(?:\s+\S+)??)\s+(\d+(?:[.,]\d+)?[KMGTPkmgtp]?i?B?)\s+(?:${nf})\s+(.+)$`),sf={k:1,m:2,g:3,t:4,p:5},fr=1e3;function of(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 af(e){let t=/^(\d+(?:[.,]\d+)?)([KMGTPkmgtp])?/.exec(e),n=t[2]?sf[t[2].toLowerCase()]:0;return Number(t[1].replace(",","."))*1024**n}function lf(e){let t=rf.exec(e);if(!t)return null;let n=t[4].trim();if(n===""||n==="."||n==="..")return null;let r=t[3],s=/^\d+$/.test(r)?of(Number(r)):r,o=e.charCodeAt(0)===100;return{name:n,size:s,sizeKey:af(r),isDir:o,mode:t[1],owner:t[2].replace(/\s+/g," ")}}function uf(e){if(e.length<3)return null;let t=new Map;for(let s of e){let o=s.name.lastIndexOf(".");if(o<=0)continue;let i=s.name.slice(o);t.set(i,(t.get(i)??0)+1)}let n=null,r=0;for(let[s,o]of t)o>r&&(r=o,n=s);return n&&r>=Math.ceil(e.length/2)?`${r} ${n}`:null}var cf=12,ff=3,df=180;function Eo(e,t){let n=[],r=e;for(let s of t)r.length+1+s.length>df&&r!==e&&r!==" "&&(n.push(r),r=" "),r+=r===" "?s:` ${s}`;return n.push(r),n}function pf(e){let t=e.endsWith("/")?"":e,n=t.indexOf(".",1);return n>0?t.slice(n):""}function mf(e){let t=e.filter(l=>l.trim()!=="");if(t.length<cf)return null;let n=e.findIndex(l=>l.trim()!==""),r=e.length-1-[...e].reverse().findIndex(l=>l.trim()!=="");if(e.slice(n,r+1).some(l=>l.trim()==="")||t.some(l=>l.endsWith(":")||Ro.test(l.trim())||Ao.test(l)||/^total\s+\d+/.test(l)||l!==l.trimEnd()||l.startsWith(" "))||t.filter(l=>/\s/.test(l)).length>t.length*.2)return null;let s=l=>/\s|"/.test(l)?JSON.stringify(l):l,o=new Map;for(let l of t){let u=pf(l),c=o.get(u)??[];c.push(l),o.set(u,c)}let i=[`${t.length} entries:`],a=[];for(let[l,u]of[...o.entries()].sort((c,f)=>f[1].length-c[1].length||c[0].localeCompare(f[0])))l&&u.length>=ff&&u.every(c=>!/\s|"/.test(c))?i.push(...Eo(`*${l} (${u.length}):`,u.map(c=>c.slice(0,-l.length)))):a.push(...u);return a.length&&i.push(...Eo(`other (${a.length}):`,a.map(s))),i.join(`
21
21
  `).length<t.join(`
22
- `).length?i:null}function mf(e){if(!e)return!1;let t=/(?:^|[\s;&|(])ls(?=\s|$)([^|;&]*)/.exec(e);if(!t)return!1;for(let n of t[1].trim().split(/\s+/)){if(n==="--")break;if(/^--(?:sort|reverse|time)(?:=|$)/.test(n)||/^-[A-Za-z0-9]+$/.test(n)&&/[tSUfrvX]/.test(n))return!0}return!1}function dr(e,t){if(mf(t))return e;let n=pf(e);if(n)return n;let r=[],s=[],o=!1;for(let h of e){if(h.trim()===""||/^total\s+\d+/.test(h))continue;if(Ao.test(h.trim())||!To.test(h))return e;let y=af(h);if(!y){if(/\s\.\.?$/.test(h))continue;return e}o=!0,(y.isDir?r:s).push(y)}if(!o)return e;let i=(h,y)=>h.name.localeCompare(y.name);r.sort(i),s.sort((h,y)=>y.sizeKey-h.sizeKey||i(h,y));let a=[...r,...s],l=a.every(h=>h.owner===a[0].owner)?a[0].owner:null,u=[];for(let h of a){let y=`${h.mode} ${l===null?`${h.owner} `:""}${h.isDir?`${h.name}/`:h.name}`;u.push(h.isDir?y:`${y} ${h.size}`)}if(u.length>fr){let h=u.length-fr;u=[...u.slice(0,fr),`\u2026 ${h} more lines omitted`]}let c=s.length===1?"file":"files",f=r.length===1?"dir":"dirs",d=lf(s),p=`${s.length} ${c}, ${r.length} ${f}`+(d?` (${d})`:"")+(l===null?"":`, owner ${l.replace(" ",":")}`);return u.push(p),u}F("smart-ls",dr);F("smart-read",e=>Mt(e));var Ro=1e3;function hf(e){let t=e[0].split("/");for(let n of e.slice(1)){let r=n.split("/"),s=0;for(;s<t.length&&s<r.length&&t[s]===r[s];)s+=1;if(t=t.slice(0,s),t.length===0)break}return t.join("/")}function gf(e){if(e.length<2||e.some(s=>s.startsWith('"')))return"";let t=e[0];for(let s of e.slice(1)){let o=0;for(;o<t.length&&o<s.length&&t[t.length-1-o]===s[s.length-1-o];)o+=1;if(t=t.slice(t.length-o),!t)return""}let n=t.indexOf("."),r=n<0?"":t.slice(n);return r.length>=3&&e.every(s=>s.length>r.length)?r:""}function yf(e){let t=e.filter(u=>u.trim()!=="");if(t.length===0||t.filter(u=>!/\s/.test(u.trim())).length<t.length*.6)return e;let r=new Map,s=[],o=0;for(let u of t){let c=u.trim();if(c.startsWith("find:")){s.push(c);continue}let f=c.replace(/^\.\//,"").replace(/\/+$/,""),d=f.lastIndexOf("/"),p=d>0?f.slice(0,d):d===0?"/":"",h=d>=0?f.slice(d+1):f;if(!h)continue;let y=r.get(p)??[];y.push(/\s/.test(h)?`"${h}"`:h),r.set(p,y),o+=1}if(o===0)return e;let i=[...r.keys()].sort(),a=i.every(u=>u!=="")&&!i.includes("/")?hf(i):"",l=[`${o}F ${i.length}D${a?` in ${a}/`:""}:`];for(let u of i){let c=u==="/"?"/":a?u.slice(a.length).replace(/^\//,""):u,f=r.get(u),d=gf(f),p=d?f.map(h=>h.slice(0,-d.length)):f;l.push(`${c==="/"?"/":c?`${c}/`:"./"} (${f.length}${d?`, *${d}`:""}): ${p.join(" ")}`)}if(l.length+s.length>Ro){let u=Math.max(0,Ro-s.length),c=l.length-u;return[...l.slice(0,u),`\u2026 ${c} more lines omitted`,...s]}return[...l,...s]}F("smart-find",yf);var kf=/^\s*(\d+(?:\s+\d+){0,3})\s+(\S.*)$/;function bf(e){let t=[];for(let i of e){if(i.trim()==="")continue;let a=kf.exec(i);if(!a)return e;t.push({counts:a[1].replace(/\s+/g," "),path:a[2]})}let n=t.filter(i=>i.path!=="total");if(n.length<2)return t.length?t.map(i=>`${i.counts} ${i.path}`):e;let r=n.map(i=>i.path.includes("/")?i.path.slice(0,i.path.lastIndexOf("/")+1):""),s=r[0];for(let i of r)for(;s&&!i.startsWith(s);)s=s.slice(0,s.slice(0,-1).lastIndexOf("/")+1);let o=s?[`in ${s}:`]:[];for(let i of t)o.push(`${i.counts} ${i.path!=="total"&&s?i.path.slice(s.length):i.path}`);return o}F("smart-wc",bf);var $o=/^\s*\d+\/\d+ Test\s+#\s*\d+: \S+ \.{2,}/,_f=/^\d+% tests passed, \d+ tests? failed out of \d+$/,xf=new RegExp(`${Q.source}|\\*\\*\\*|Exception|FAIL|ERROR`),pr=3,mr=8;function wf(e){let t=[];for(let n=0;n<e.length;n+=1){let r=1;for(;n+r<e.length&&e[n+r]===e[n];)r+=1;t.push(r>1?`${e[n]} \xD7${r}`:e[n]),n+=r-1}return t}function Sf(e){if(e.length<=pr+mr+1)return e;let t=e.slice(pr,-mr),n=t.filter(s=>xf.test(s)),r=t.length-n.length;return r===0?e:[...e.slice(0,pr),...n,`\u2026 ${r} more lines omitted`,...e.slice(-mr)]}function vf(e){if(!e.some(s=>$o.test(s)))return e;let t=[],n=[],r=()=>{t.push(...Sf(wf(n))),n=[]};for(let s=0;s<e.length;s+=1){let o=e[s];if(_f.test(o))return r(),t.push(...e.slice(s)),t;if($o.test(o)){r(),t.push(o);continue}n.push(o)}return r(),t}F("smart-ctest",vf);function Ef(e){if(e.length<2)return"";let t=e[0].slice(0,e[0].lastIndexOf("/")+1);for(let n of e)for(;t&&!n.startsWith(t);)t=t.slice(0,t.slice(0,-1).lastIndexOf("/")+1);return t}function Tf(e){let t=e.join(`
23
- `).trim();if(!t.startsWith("{"))return e;let n;try{n=JSON.parse(t)}catch{return e}if(!n||typeof n!="object"||!n.files||typeof n.files!="object")return e;let r=Object.keys(n.files),s=Ef(r),o=r.reduce((a,l)=>a+(n.files[l].messages?.length??0),0),i=[`phpstan: ${o} error${o===1?"":"s"} in ${r.length} file${r.length===1?"":"s"}${s?` under ${s}`:""}`];for(let a of r){let l=n.files[a].messages??[];i.push(`${a.slice(s.length)} (${l.length})`);for(let u of l){let c=typeof u.line=="number"?`:${u.line}`:":?",f=typeof u.tip=="string"&&u.tip?` \u2014 ${u.tip}`:"";i.push(` ${c} ${String(u.message??"")}${f}`)}}for(let a of Array.isArray(n.errors)?n.errors:[])i.push(`error: ${String(a)}`);return i}F("smart-phpstan",Tf);var Af=/^\d+ \| /,hr=/^\s+\^\s*$/,Rf=new RegExp(`${Q.source}|\\*\\*\\*|Exception|FAIL|ERROR`);function $f(e){if(!e.some(n=>hr.test(n)))return e;let t=[];for(let n=0;n<e.length;n+=1){let r=e[n];hr.test(r)||Af.test(r)&&!hr.test(e[n+1]??"")&&!Rf.test(r)||t.push(r)}return t}F("bun-frames",$f);var Cf=/^\s*% Total\s+% Received\s+% Xferd\s+Average Speed/,Of=/^\s+Dload\s+Upload\s+Total\s+Spent\s+Left\s+Speed/,If=/^\s*\d+\s+[\d.]+[kMGTP]?\s+\d+\s+[\d.]+[kMGTP]?\s+\d+\s+[\d.]+[kMGTP]?\s+[\d.]+[kMGTP]?\s+[\d.]+[kMGTP]?\s+[-\d:]+\s+[-\d:]+\s+[-\d:]+\s+[\d.]+[kMGTP]?\s*$/,Nf=/^\* (?:Trying |Connected to |Host .* was resolved|Connection #\d+|IPv[46]:|Uses proxy)|^> [A-Z]+ \S+ HTTP\/[\d.]+\s*$|^< HTTP\/[\d.]+ \d{3}/,Pf=/^(?:\* |[<>] (?:[A-Za-z][\w-]*: .*|[A-Z]+ \S+ HTTP\/[\d.]+|HTTP\/[\d.]+ .*)$|[<>]\s?$|[{}] \[\d+ bytes data\])/;function Df(e){let t=e.split("\r").filter(n=>n.trim()!=="");return t.length>0&&t.every(n=>If.test(n))}function Lf(e){let t=e.some(r=>Nf.test(r)),n=[];for(let r=0;r<e.length;r+=1){let s=e[r];if(Cf.test(s)){let o=r+1;for(Of.test(e[o]??"")&&(o+=1);Df(e[o]??"");)o+=1;r=o-1;continue}t&&Pf.test(s)||n.push(s)}return n}F("curl-progress",Lf);var gr=1e3,Co=200,Ff=60,Mf=190,No=/^([^\s:]+):(\d+):(.*)$/,Po=/^([^:]+?)-(\d+)-(.*)$/,Do=/^([^\s:]+):(.*)$/,Oo=/(?:^|\/)(?:__tests__|tests?|spec|fixtures?|__mocks__|__snapshots__)\/|\.(?:test|spec)\.[^/]+$/i;function Io(e,t=!1){let n=t?e.trimEnd():e.trim();return n.length>Co?`${n.slice(0,Co)}\u2026`:n}function jf(e){let t=[],n="";for(let r of e){let s=n?`${n}, ${r}`:r;s.length>=Mf&&n?(t.push(`${n},`),n=r):n=s}return n&&t.push(n),t}function Hf(e){let t=null;for(let n of e){let r=n.split("/").slice(0,-1);if(t===null){t=r;continue}let s=0;for(;s<t.length&&s<r.length&&t[s]===r[s];)s+=1;if(t=t.slice(0,s),t.length===0)return""}return t?t.join("/"):""}function Lo(e){return e.includes("/")||e.includes("\\")||/\.[A-Za-z][\w-]*$/.test(e)}function zf(e,t,n){return/^\d+$/.test(e)?!1:Lo(e)?!0:(t||n)&&/^[\w.-]+$/.test(e)}function Uf(e){let t=0,n=0;for(let r of e){let s=(No.exec(r)??Po.exec(r)??Do.exec(r))?.[1];s&&(n+=1,Lo(s)&&(t+=1))}return t>=2&&t*2>n}function Fo(e,t={}){let n=e.filter(m=>m.trim()!=="");if(n.length===0)return e;let r=Uf(n),s=new Map,o=new Map,i=null,a=0,l=0,u=null;for(let m of n){if(m==="--"){i&&s.get(i).push({separator:!0});continue}if(/^[A-Za-z]:[\\/]/.test(m))return e;let w=No.exec(m),x=Po.exec(m);if(w&&x)return e;let C=w||x?null:Do.exec(m),I=(w??x??C)?.[1];if(!I||!zf(I,!!w,r))return e;let L=w?{line:w[2],content:w[3],context:!1}:x?{line:x[2],content:x[3],context:!0}:{line:"",content:C[2],context:!1},M=s.get(I)??[];M.push(L),s.set(I,M);let J=L.line?Number(L.line):NaN,tt=t.astGrep&&I===i&&u!==null&&J===u+1;(t.astGrep?!tt:!L.context)&&(a+=1,o.set(I,(o.get(I)??0)+1)),u=t.astGrep&&Number.isFinite(J)?J:null,l+=1,i=I}if(s.size===l)return e;let c=[...s.keys()].sort((m,w)=>{let x=Oo.test(m)?1:0,C=Oo.test(w)?1:0;return x-C||(m<w?-1:m>w?1:0)}),f=c.length>1?Hf(c):"",d=m=>f?m.slice(f.length+1):m,p=[];for(let m of c){p.push(`${d(m)} (${o.get(m)??0}):`);for(let w of s.get(m))"separator"in w?p.push(" --"):w.line?p.push(` ${w.line}${w.context?"-":":"} ${Io(w.content,t.astGrep)}`):p.push(` ${Io(w.content,t.astGrep)}`)}let h=c.length>1&&p.length>Ff?jf(c.map(m=>`${d(m)} (${o.get(m)??0})`)):[],y=[`${a}m ${c.length}f${f?` in ${f}/`:""}:`,...h,"",...p];if(y.length>gr){let m=y.length-gr;return[...y.slice(0,gr),`\u2026 ${m} more lines omitted`]}return y}F("smart-grep",Fo);F("smart-grep-ast",e=>Fo(e,{astGrep:!0}));var Mo=/^(?:([|\\/ ._-]*\*[|\\/* ._-]* ))?commit [0-9a-f]{7,40}\b/,Bf=/^[|\\/* ._-]*$/,Zf=/^ {4}/,Jf=/^ {4}(?:Co-[Aa]uthored-[Bb]y|Signed-off-by|Reviewed-by|Acked-by|Tested-by|Reported-by|Fixes|Closes):/,Gf=2,Wf=1,jo=/^commit ([0-9a-f]{40})(\s.*)?$/,Vf=/^Author:\s+(.+)$/,Kf=/^Date:\s+(?:[A-Z][a-z]{2} )?([A-Z][a-z]{2}) +(\d{1,2}) (\d{2}:\d{2}):\d{2} (\d{4}) ([+-]\d{4})$/,qf=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],Yf=12,Xf=5;function Qf(e){let t=[];for(let l=0;l<e.length;l+=1){let u=jo.exec(e[l]);if(!u)continue;let c=l+1,f=null;e[c]?.startsWith("Merge: ")&&(f=e[c].slice(7),c+=1);let d=Vf.exec(e[c]??""),p=Kf.exec(e[c+1]??"");if(!d||!p)return null;let h=qf.indexOf(p[1])+1;if(h===0)return null;t.push({at:l,hash:u[1].slice(0,Yf),refs:u[2]??"",merge:f,author:d[1],date:`${p[4]}-${String(h).padStart(2,"0")}-${p[2].padStart(2,"0")} ${p[3]}`,zone:p[5],end:c+2})}if(t.length===0)return null;let n=[...new Set(t.map(l=>l.author))],r=n.length===1&&t.length>1?n[0]:null,s=n.length>1&&n.length<=Xf&&t.length>n.length,o=t.length>1&&t.every(l=>l.zone===t[0].zone)?t[0].zone:null,i=r?[`author: ${r}`]:s?[`authors: ${n.map((l,u)=>`[${u+1}] ${l}`).join("; ")}`]:[];o&&i.push(`dates: UTC${o}`);let a=0;for(let l of t){i.push(...e.slice(a,l.at));let u=r?"":s?` [${n.indexOf(l.author)+1}]`:` ${l.author}`;i.push(`${l.hash} ${l.date}${o?"":` ${l.zone}`}${u}${l.merge?` merge ${l.merge}`:""}${l.refs}`),a=l.end}return i.push(...e.slice(a)),i}function ed(e){if(!e.some(r=>Mo.test(r)))return e;let t=e.some(r=>jo.test(r))&&!e.some(r=>/^[|\\/*]/.test(r)),n=td(e,t?Wf:Gf);return Qf(n)??n}function td(e,t){let n=[],r=0,s=0,o=0,i="",a=!1,l=!1,u=()=>{s>0&&n.push(`${i} \u2026 ${s} ${s===1?"line":"lines"} folded \u2026`),s=0};for(let c of e){let f=c.slice(0,o),d=Bf.test(f),p=d?c.slice(o):c,h=Zf.test(p),y=a&&h?null:Mo.exec(c);if(y){u(),r=0,o=y[1]?.length??0,a=!0,l=!1,n.push(c);continue}if(/^diff --(?:git|cc|combined) /.test(p)&&(l=!0),h&&!l&&!(o>0&&p.trim().length===0)){if(Jf.test(p)){n.push(c);continue}r+=1,r<=t?n.push(c):(s+=1,i=d?f:"");continue}u(),n.push(c)}return u(),n}F("smart-log",ed);var nd=/^[\s=]+$/,rd=/^\s*=+\s+(.*?)\s+=+\s*$/,sd=512;F("strip-banners",e=>{let t=[];for(let n of e){if(nd.test(n))continue;let r=n.length<=sd?rd.exec(n):null;t.push(r?r[1]:n)}return t});function od(e){let t=[],n=0,r=0;for(;r<e.length;){let s=e[r].replace(/\s+$/,"");if(s===""){n+=1,r+=1,n<=1&&t.push("");continue}n=0;let o=1;for(;r+o<e.length&&e[r+o].replace(/\s+$/,"")===s;)o+=1;if(o>=3)t.push(s),t.push(` \u2026 (repeated ${o}x)`);else for(let i=0;i<o;i++)t.push(s);r+=o}for(;t.length>0&&t[t.length-1]==="";)t.pop();return t}F("squeeze-output",od);function id(e){return e==="compact"?.6:e==="minimal"?.3:1}var ad=20;function ld(e){let[t,n,r,s]=e.slice(-4);if(!t||!n||!r||!s||!/^\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 o=/^(\s*Duration\s+\d+(?:\.\d+)?(?:ms|s)) \(transform [^\n]+\)$/.exec(s)?.[1];return o?[...e.slice(0,-4).filter((a,l)=>l>2||!/^ RUN v\d+\.\d+\.\d+(?:[\w.+-]*) .+$/.test(a)),t,n,o]:e}var Ho=new WeakMap;function ud(e){let t=Ho.get(e);if(t)return t;let n=e.strip_lines_matching.map(o=>new RegExp(o)),r=(e.drop_lines_matching??[]).map(o=>new RegExp(o)),s={def:e,stripRegexes:n,dropRegexes:r};return Ho.set(e,s),s}var cd=new RegExp([String.raw`(?:^|[\s;&|(])grep(?=\s)[^|;&]*?\s(?:-[A-Za-z]*q[A-Za-z]*|--quiet|--silent)(?=\s|$)`,String.raw`(?:^|[\s;&|(])find(?=\s)[^|;&]*?\s-(?:delete|quit|exec|execdir|ok|okdir|fprint0?|fprintf|fls|prune)(?=\s|$)`,String.raw`(?:^|[\s;&|(])(?:ruff|black|flake8)(?=\s)[^|;&]*?\s(?:-q+|--quiet)(?=\s|$)`,String.raw`(?:^|[\s;&|(])eslint(?=\s)[^|;&]*?\s(?:-o|--output-file)(?=[\s=]|$)`,String.raw`(?:^|[\s;&|(])prettier(?=\s)[^|;&]*?\s(?:-l|--list-different)(?=\s|$)`].join("|")),fd=new Set(["grep","ast-grep"]);function yr(e){return!!e&&cd.test(e)}function kr(e,t,n){if(e==="smart-ls")return dr(t,n);let r=vo(e);return r?r(t):t}function yn(e,t,n={}){return br(e,t,n).text}function br(e,t,n={}){let r=n.verbosity??"normal";if(!t.strip_ansi&&t.strip_lines_matching.length===0&&(t.drop_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 s=ud(t),o=!t.preserve_exact&&e.includes(`\r
22
+ `).length?i:null}function hf(e){if(!e)return!1;let t=/(?:^|[\s;&|(])ls(?=\s|$)([^|;&]*)/.exec(e);if(!t)return!1;for(let n of t[1].trim().split(/\s+/)){if(n==="--")break;if(/^--(?:sort|reverse|time)(?:=|$)/.test(n)||/^-[A-Za-z0-9]+$/.test(n)&&/[tSUfrvX]/.test(n))return!0}return!1}function To(e){let t=new Map;for(let s of e)t.set(s.mode,(t.get(s.mode)??0)+1);let n=null,r=0;for(let[s,o]of t)o>r&&([n,r]=[s,o]);return r>=2?n:null}function dr(e,t){if(hf(t))return e;let n=mf(e);if(n)return n;let r=[],s=[],o=!1;for(let m of e){if(m.trim()===""||/^total\s+\d+/.test(m))continue;if(Ro.test(m.trim())||!Ao.test(m))return e;let _=lf(m);if(!_){if(/\s\.\.?$/.test(m))continue;return e}o=!0,(_.isDir?r:s).push(_)}if(!o)return e;let i=(m,_)=>m.name.localeCompare(_.name);r.sort(i),s.sort((m,_)=>_.sizeKey-m.sizeKey||i(m,_));let a=[...r,...s],l=a.every(m=>m.owner===a[0].owner)?a[0].owner:null,u=To(r),c=To(s),f=[];for(let m of a){let _=m.isDir?u:c,R=`${m.mode===_?"":`${m.mode} `}${l===null?`${m.owner} `:""}${m.isDir?`${m.name}/`:m.name}`;f.push(m.isDir?R:`${R} ${m.size}`)}if(f.length>fr){let m=f.length-fr;f=[...f.slice(0,fr),`\u2026 ${m} more lines omitted`]}let d=s.length===1?"file":"files",p=r.length===1?"dir":"dirs",g=uf(s),y=`${s.length} ${d}, ${r.length} ${p}`+(g?` (${g})`:"")+(l===null?"":`, owner ${l.replace(" ",":")}`)+(u||c?`, mode ${[u&&`dirs ${u}`,c&&`files ${c}`].filter(Boolean).join(", ")} unless shown`:"");return f.push(y),f}F("smart-ls",dr);F("smart-read",e=>Mt(e));var $o=1e3;function gf(e){let t=e[0].split("/");for(let n of e.slice(1)){let r=n.split("/"),s=0;for(;s<t.length&&s<r.length&&t[s]===r[s];)s+=1;if(t=t.slice(0,s),t.length===0)break}return t.join("/")}function yf(e){if(e.length<2||e.some(s=>s.startsWith('"')))return"";let t=e[0];for(let s of e.slice(1)){let o=0;for(;o<t.length&&o<s.length&&t[t.length-1-o]===s[s.length-1-o];)o+=1;if(t=t.slice(t.length-o),!t)return""}let n=t.indexOf("."),r=n<0?"":t.slice(n);return r.length>=3&&e.every(s=>s.length>r.length)?r:""}function kf(e){let t=e.filter(u=>u.trim()!=="");if(t.length===0||t.filter(u=>!/\s/.test(u.trim())).length<t.length*.6)return e;let r=new Map,s=[],o=0;for(let u of t){let c=u.trim();if(c.startsWith("find:")){s.push(c);continue}let f=c.replace(/^\.\//,"").replace(/\/+$/,""),d=f.lastIndexOf("/"),p=d>0?f.slice(0,d):d===0?"/":"",g=d>=0?f.slice(d+1):f;if(!g)continue;let y=r.get(p)??[];y.push(/\s/.test(g)?`"${g}"`:g),r.set(p,y),o+=1}if(o===0)return e;let i=[...r.keys()].sort(),a=i.every(u=>u!=="")&&!i.includes("/")?gf(i):"",l=[`${o}F ${i.length}D${a?` in ${a}/`:""}:`];for(let u of i){let c=u==="/"?"/":a?u.slice(a.length).replace(/^\//,""):u,f=r.get(u),d=yf(f),p=d?f.map(g=>g.slice(0,-d.length)):f;l.push(`${c==="/"?"/":c?`${c}/`:"./"} (${f.length}${d?`, *${d}`:""}): ${p.join(" ")}`)}if(l.length+s.length>$o){let u=Math.max(0,$o-s.length),c=l.length-u;return[...l.slice(0,u),`\u2026 ${c} more lines omitted`,...s]}return[...l,...s]}F("smart-find",kf);var bf=/^\s*(\d+(?:\s+\d+){0,3})\s+(\S.*)$/;function _f(e){let t=[];for(let i of e){if(i.trim()==="")continue;let a=bf.exec(i);if(!a)return e;t.push({counts:a[1].replace(/\s+/g," "),path:a[2]})}let n=t.filter(i=>i.path!=="total");if(n.length<2)return t.length?t.map(i=>`${i.counts} ${i.path}`):e;let r=n.map(i=>i.path.includes("/")?i.path.slice(0,i.path.lastIndexOf("/")+1):""),s=r[0];for(let i of r)for(;s&&!i.startsWith(s);)s=s.slice(0,s.slice(0,-1).lastIndexOf("/")+1);let o=s?[`in ${s}:`]:[];for(let i of t)o.push(`${i.counts} ${i.path!=="total"&&s?i.path.slice(s.length):i.path}`);return o}F("smart-wc",_f);var Co=/^\s*\d+\/\d+ Test\s+#\s*\d+: \S+ \.{2,}/,xf=/^\d+% tests passed, \d+ tests? failed out of \d+$/,wf=new RegExp(`${Q.source}|\\*\\*\\*|Exception|FAIL|ERROR`),pr=3,mr=8;function Sf(e){let t=[];for(let n=0;n<e.length;n+=1){let r=1;for(;n+r<e.length&&e[n+r]===e[n];)r+=1;t.push(r>1?`${e[n]} \xD7${r}`:e[n]),n+=r-1}return t}function vf(e){if(e.length<=pr+mr+1)return e;let t=e.slice(pr,-mr),n=t.filter(s=>wf.test(s)),r=t.length-n.length;return r===0?e:[...e.slice(0,pr),...n,`\u2026 ${r} more lines omitted`,...e.slice(-mr)]}function Ef(e){if(!e.some(s=>Co.test(s)))return e;let t=[],n=[],r=()=>{t.push(...vf(Sf(n))),n=[]};for(let s=0;s<e.length;s+=1){let o=e[s];if(xf.test(o))return r(),t.push(...e.slice(s)),t;if(Co.test(o)){r(),t.push(o);continue}n.push(o)}return r(),t}F("smart-ctest",Ef);function Tf(e){if(e.length<2)return"";let t=e[0].slice(0,e[0].lastIndexOf("/")+1);for(let n of e)for(;t&&!n.startsWith(t);)t=t.slice(0,t.slice(0,-1).lastIndexOf("/")+1);return t}function Af(e){let t=e.join(`
23
+ `).trim();if(!t.startsWith("{"))return e;let n;try{n=JSON.parse(t)}catch{return e}if(!n||typeof n!="object"||!n.files||typeof n.files!="object")return e;let r=Object.keys(n.files),s=Tf(r),o=r.reduce((a,l)=>a+(n.files[l].messages?.length??0),0),i=[`phpstan: ${o} error${o===1?"":"s"} in ${r.length} file${r.length===1?"":"s"}${s?` under ${s}`:""}`];for(let a of r){let l=n.files[a].messages??[];i.push(`${a.slice(s.length)} (${l.length})`);for(let u of l){let c=typeof u.line=="number"?`:${u.line}`:":?",f=typeof u.tip=="string"&&u.tip?` \u2014 ${u.tip}`:"";i.push(` ${c} ${String(u.message??"")}${f}`)}}for(let a of Array.isArray(n.errors)?n.errors:[])i.push(`error: ${String(a)}`);return i}F("smart-phpstan",Af);var Rf=/^\d+ \| /,hr=/^\s+\^\s*$/,$f=new RegExp(`${Q.source}|\\*\\*\\*|Exception|FAIL|ERROR`);function Cf(e){if(!e.some(n=>hr.test(n)))return e;let t=[];for(let n=0;n<e.length;n+=1){let r=e[n];hr.test(r)||Rf.test(r)&&!hr.test(e[n+1]??"")&&!$f.test(r)||t.push(r)}return t}F("bun-frames",Cf);var Of=/^\s*% Total\s+% Received\s+% Xferd\s+Average Speed/,If=/^\s+Dload\s+Upload\s+Total\s+Spent\s+Left\s+Speed/,Nf=/^\s*\d+\s+[\d.]+[kMGTP]?\s+\d+\s+[\d.]+[kMGTP]?\s+\d+\s+[\d.]+[kMGTP]?\s+[\d.]+[kMGTP]?\s+[\d.]+[kMGTP]?\s+[-\d:]+\s+[-\d:]+\s+[-\d:]+\s+[\d.]+[kMGTP]?\s*$/,Pf=/^\* (?:Trying |Connected to |Host .* was resolved|Connection #\d+|IPv[46]:|Uses proxy)|^> [A-Z]+ \S+ HTTP\/[\d.]+\s*$|^< HTTP\/[\d.]+ \d{3}/,Df=/^(?:\* |[<>] (?:[A-Za-z][\w-]*: .*|[A-Z]+ \S+ HTTP\/[\d.]+|HTTP\/[\d.]+ .*)$|[<>]\s?$|[{}] \[\d+ bytes data\])/;function Lf(e){let t=e.split("\r").filter(n=>n.trim()!=="");return t.length>0&&t.every(n=>Nf.test(n))}function Ff(e){let t=e.some(r=>Pf.test(r)),n=[];for(let r=0;r<e.length;r+=1){let s=e[r];if(Of.test(s)){let o=r+1;for(If.test(e[o]??"")&&(o+=1);Lf(e[o]??"");)o+=1;r=o-1;continue}t&&Df.test(s)||n.push(s)}return n}F("curl-progress",Ff);var gr=1e3,Oo=200,Mf=60,jf=190,Po=/^([^\s:]+):(\d+):(.*)$/,Do=/^([^:]+?)-(\d+)-(.*)$/,Lo=/^([^\s:]+):(.*)$/,Io=/(?:^|\/)(?:__tests__|tests?|spec|fixtures?|__mocks__|__snapshots__)\/|\.(?:test|spec)\.[^/]+$/i;function No(e,t=!1){let n=t?e.trimEnd():e.trim();return n.length>Oo?`${n.slice(0,Oo)}\u2026`:n}function Hf(e){let t=[],n="";for(let r of e){let s=n?`${n}, ${r}`:r;s.length>=jf&&n?(t.push(`${n},`),n=r):n=s}return n&&t.push(n),t}function zf(e){let t=null;for(let n of e){let r=n.split("/").slice(0,-1);if(t===null){t=r;continue}let s=0;for(;s<t.length&&s<r.length&&t[s]===r[s];)s+=1;if(t=t.slice(0,s),t.length===0)return""}return t?t.join("/"):""}function Fo(e){return e.includes("/")||e.includes("\\")||/\.[A-Za-z][\w-]*$/.test(e)}function Uf(e,t,n){return/^\d+$/.test(e)?!1:Fo(e)?!0:(t||n)&&/^[\w.-]+$/.test(e)}function Bf(e){let t=0,n=0;for(let r of e){let s=(Po.exec(r)??Do.exec(r)??Lo.exec(r))?.[1];s&&(n+=1,Fo(s)&&(t+=1))}return t>=2&&t*2>n}function Mo(e,t={}){let n=e.filter(m=>m.trim()!=="");if(n.length===0)return e;let r=Bf(n),s=new Map,o=new Map,i=null,a=0,l=0,u=null;for(let m of n){if(m==="--"){i&&s.get(i).push({separator:!0});continue}if(/^[A-Za-z]:[\\/]/.test(m))return e;let _=Po.exec(m),w=Do.exec(m);if(_&&w)return e;let R=_||w?null:Lo.exec(m),I=(_??w??R)?.[1];if(!I||!Uf(I,!!_,r))return e;let L=_?{line:_[2],content:_[3],context:!1}:w?{line:w[2],content:w[3],context:!0}:{line:"",content:R[2],context:!1},M=s.get(I)??[];M.push(L),s.set(I,M);let J=L.line?Number(L.line):NaN,tt=t.astGrep&&I===i&&u!==null&&J===u+1;(t.astGrep?!tt:!L.context)&&(a+=1,o.set(I,(o.get(I)??0)+1)),u=t.astGrep&&Number.isFinite(J)?J:null,l+=1,i=I}if(s.size===l)return e;let c=[...s.keys()].sort((m,_)=>{let w=Io.test(m)?1:0,R=Io.test(_)?1:0;return w-R||(m<_?-1:m>_?1:0)}),f=c.length>1?zf(c):"",d=m=>f?m.slice(f.length+1):m,p=[];for(let m of c){p.push(`${d(m)} (${o.get(m)??0}):`);for(let _ of s.get(m))"separator"in _?p.push(" --"):_.line?p.push(` ${_.line}${_.context?"-":":"} ${No(_.content,t.astGrep)}`):p.push(` ${No(_.content,t.astGrep)}`)}let g=c.length>1&&p.length>Mf?Hf(c.map(m=>`${d(m)} (${o.get(m)??0})`)):[],y=[`${a}m ${c.length}f${f?` in ${f}/`:""}:`,...g,"",...p];if(y.length>gr){let m=y.length-gr;return[...y.slice(0,gr),`\u2026 ${m} more lines omitted`]}return y}F("smart-grep",Mo);F("smart-grep-ast",e=>Mo(e,{astGrep:!0}));var jo=/^(?:([|\\/ ._-]*\*[|\\/* ._-]* ))?commit [0-9a-f]{7,40}\b/,Zf=/^[|\\/* ._-]*$/,Jf=/^ {4}/,Gf=/^ {4}(?:Co-[Aa]uthored-[Bb]y|Signed-off-by|Reviewed-by|Acked-by|Tested-by|Reported-by|Fixes|Closes):/,Wf=2,Vf=1,Ho=/^commit ([0-9a-f]{40})(\s.*)?$/,Kf=/^Author:\s+(.+)$/,qf=/^Date:\s+(?:[A-Z][a-z]{2} )?([A-Z][a-z]{2}) +(\d{1,2}) (\d{2}:\d{2}):\d{2} (\d{4}) ([+-]\d{4})$/,Yf=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],Xf=12,Qf=5;function ed(e){let t=[];for(let l=0;l<e.length;l+=1){let u=Ho.exec(e[l]);if(!u)continue;let c=l+1,f=null;e[c]?.startsWith("Merge: ")&&(f=e[c].slice(7),c+=1);let d=Kf.exec(e[c]??""),p=qf.exec(e[c+1]??"");if(!d||!p)return null;let g=Yf.indexOf(p[1])+1;if(g===0)return null;t.push({at:l,hash:u[1].slice(0,Xf),refs:u[2]??"",merge:f,author:d[1],date:`${p[4]}-${String(g).padStart(2,"0")}-${p[2].padStart(2,"0")} ${p[3]}`,zone:p[5],end:c+2})}if(t.length===0)return null;let n=[...new Set(t.map(l=>l.author))],r=n.length===1&&t.length>1?n[0]:null,s=n.length>1&&n.length<=Qf&&t.length>n.length,o=t.length>1&&t.every(l=>l.zone===t[0].zone)?t[0].zone:null,i=r?[`author: ${r}`]:s?[`authors: ${n.map((l,u)=>`[${u+1}] ${l}`).join("; ")}`]:[];o&&i.push(`dates: UTC${o}`);let a=0;for(let l of t){i.push(...e.slice(a,l.at));let u=r?"":s?` [${n.indexOf(l.author)+1}]`:` ${l.author}`;i.push(`${l.hash} ${l.date}${o?"":` ${l.zone}`}${u}${l.merge?` merge ${l.merge}`:""}${l.refs}`),a=l.end}return i.push(...e.slice(a)),i}function td(e){if(!e.some(r=>jo.test(r)))return e;let t=e.some(r=>Ho.test(r))&&!e.some(r=>/^[|\\/*]/.test(r)),n=nd(e,t?Vf:Wf);return ed(n)??n}function nd(e,t){let n=[],r=0,s=0,o=0,i="",a=!1,l=!1,u=()=>{s>0&&n.push(`${i} \u2026 ${s} ${s===1?"line":"lines"} folded \u2026`),s=0};for(let c of e){let f=c.slice(0,o),d=Zf.test(f),p=d?c.slice(o):c,g=Jf.test(p),y=a&&g?null:jo.exec(c);if(y){u(),r=0,o=y[1]?.length??0,a=!0,l=!1,n.push(c);continue}if(/^diff --(?:git|cc|combined) /.test(p)&&(l=!0),g&&!l&&!(o>0&&p.trim().length===0)){if(Gf.test(p)){n.push(c);continue}r+=1,r<=t?n.push(c):(s+=1,i=d?f:"");continue}u(),n.push(c)}return u(),n}F("smart-log",td);var rd=/^[\s=]+$/,sd=/^\s*=+\s+(.*?)\s+=+\s*$/,od=512;F("strip-banners",e=>{let t=[];for(let n of e){if(rd.test(n))continue;let r=n.length<=od?sd.exec(n):null;t.push(r?r[1]:n)}return t});function id(e){let t=[],n=0,r=0;for(;r<e.length;){let s=e[r].replace(/\s+$/,"");if(s===""){n+=1,r+=1,n<=1&&t.push("");continue}n=0;let o=1;for(;r+o<e.length&&e[r+o].replace(/\s+$/,"")===s;)o+=1;if(o>=3)t.push(s),t.push(` \u2026 (repeated ${o}x)`);else for(let i=0;i<o;i++)t.push(s);r+=o}for(;t.length>0&&t[t.length-1]==="";)t.pop();return t}F("squeeze-output",id);function ad(e){return e==="compact"?.6:e==="minimal"?.3:1}var ld=20;function ud(e){let[t,n,r,s]=e.slice(-4);if(!t||!n||!r||!s||!/^\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 o=/^(\s*Duration\s+\d+(?:\.\d+)?(?:ms|s)) \(transform [^\n]+\)$/.exec(s)?.[1];return o?[...e.slice(0,-4).filter((a,l)=>l>2||!/^ RUN v\d+\.\d+\.\d+(?:[\w.+-]*) .+$/.test(a)),t,n,o]:e}var zo=new WeakMap;function cd(e){let t=zo.get(e);if(t)return t;let n=e.strip_lines_matching.map(o=>new RegExp(o)),r=(e.drop_lines_matching??[]).map(o=>new RegExp(o)),s={def:e,stripRegexes:n,dropRegexes:r};return zo.set(e,s),s}var fd=new RegExp([String.raw`(?:^|[\s;&|(])grep(?=\s)[^|;&]*?\s(?:-[A-Za-z]*q[A-Za-z]*|--quiet|--silent)(?=\s|$)`,String.raw`(?:^|[\s;&|(])find(?=\s)[^|;&]*?\s-(?:delete|quit|exec|execdir|ok|okdir|fprint0?|fprintf|fls|prune)(?=\s|$)`,String.raw`(?:^|[\s;&|(])(?:ruff|black|flake8)(?=\s)[^|;&]*?\s(?:-q+|--quiet)(?=\s|$)`,String.raw`(?:^|[\s;&|(])eslint(?=\s)[^|;&]*?\s(?:-o|--output-file)(?=[\s=]|$)`,String.raw`(?:^|[\s;&|(])prettier(?=\s)[^|;&]*?\s(?:-l|--list-different)(?=\s|$)`].join("|")),dd=new Set(["grep","ast-grep"]);function yr(e){return!!e&&fd.test(e)}function kr(e,t,n){if(e==="smart-ls")return dr(t,n);let r=vo(e);return r?r(t):t}function yn(e,t,n={}){return br(e,t,n).text}function br(e,t,n={}){let r=n.verbosity??"normal";if(!t.strip_ansi&&t.strip_lines_matching.length===0&&(t.drop_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 s=cd(t),o=!t.preserve_exact&&e.includes(`\r
24
24
  `)?e.replace(/\r\n/g,`
25
25
  `):e;t.strip_ansi&&(o=ce(o));let i=o.endsWith(`
26
26
  `),a=(i?o.slice(0,-1):o).split(`
27
- `);s.stripRegexes.length&&(a=t.keep_failures?a.filter(d=>Q.test(d)||!s.stripRegexes.some(p=>p.test(d))):ur(a,s.stripRegexes)),s.dropRegexes.length&&(a=ur(a,s.dropRegexes)),r!=="normal"&&!t.preserve_exact&&(a=gn(a),a=wo(a)),r==="minimal"&&!t.preserve_exact&&(a=bo(a),(t.slug==="vitest"||t.slug==="npm-test")&&(a=ld(a)));let l=t.transform==="smart-read"&&n.smartCode!==!0?r==="compact"?8:r==="minimal"?6:3:3;!t.preserve_exact&&(n.smartCode||n.smartCode===void 0&&r!=="normal"&&hn(o))&&(a=Mt(a,l)),t.transform&&(t.transform==="smart-read"?a=Mt(a,l,t.slug==="read-tool"):a=kr(t.transform,a,n.cmd));let u=t.slug==="read-tool";if(!u){let d=cr(a);d.some(Boolean)&&(a=a.filter((p,h)=>!d[h]))}t.mask_abs_paths&&(a=co(a)),t.fold_passing&&(a=uo(a,t.fold_passing_threshold??5)),t.truncate_lines_at&&(a=ao(a,t.truncate_lines_at));let c=null;if(t.max_lines){let d=t.scale_with_level?id(n.verbosity):1,p=Math.min(t.max_lines,Math.max(ad,Math.round(t.max_lines*d))),h=u?cr(a):null,y=h?h.filter(m=>!m).length:a.length;if(y>p){let m=p;if(h){let x=0;for(m=0;m<a.length&&x<p;)h[m]||(x+=1),m+=1}let w=y-p;if(t.keep_failures){let x=a.slice(m),C=x.filter(L=>!Q.test(L)),I=x.reduce((L,M,J)=>L+(!Q.test(M)&&!h?.[m+J]?1:0),0);c=C.length>0?C.join(`
28
- `):null,a=[...a.slice(0,m),...I>0?[dt(I)]:[],...x.filter(L=>Q.test(L))]}else if(u)c=a.slice(m).join(`
29
- `),a=[...a.slice(0,m),dt(w)];else{let{kept:x,dropped:C}=lo(a,p);c=C.length>0?C.join(`
30
- `):null,a=x}}}let f=a.join(`
27
+ `);s.stripRegexes.length&&(a=t.keep_failures?a.filter(d=>Q.test(d)||!s.stripRegexes.some(p=>p.test(d))):ur(a,s.stripRegexes)),s.dropRegexes.length&&(a=ur(a,s.dropRegexes)),r!=="normal"&&!t.preserve_exact&&(a=gn(a),a=wo(a)),r==="minimal"&&!t.preserve_exact&&(a=bo(a),(t.slug==="vitest"||t.slug==="npm-test")&&(a=ud(a)));let l=t.transform==="smart-read"&&n.smartCode!==!0?r==="compact"?8:r==="minimal"?6:3:3;!t.preserve_exact&&(n.smartCode||n.smartCode===void 0&&r!=="normal"&&hn(o))&&(a=Mt(a,l)),t.transform&&(t.transform==="smart-read"?a=Mt(a,l,t.slug==="read-tool"):a=kr(t.transform,a,n.cmd));let u=t.slug==="read-tool";if(!u){let d=cr(a);d.some(Boolean)&&(a=a.filter((p,g)=>!d[g]))}t.mask_abs_paths&&(a=co(a)),t.fold_passing&&(a=uo(a,t.fold_passing_threshold??5)),t.truncate_lines_at&&(a=ao(a,t.truncate_lines_at));let c=null;if(t.max_lines){let d=t.scale_with_level?ad(n.verbosity):1,p=Math.min(t.max_lines,Math.max(ld,Math.round(t.max_lines*d))),g=u?cr(a):null,y=g?g.filter(m=>!m).length:a.length;if(y>p){let m=p;if(g){let w=0;for(m=0;m<a.length&&w<p;)g[m]||(w+=1),m+=1}let _=y-p;if(t.keep_failures){let w=a.slice(m),R=w.filter(L=>!Q.test(L)),I=w.reduce((L,M,J)=>L+(!Q.test(M)&&!g?.[m+J]?1:0),0);c=R.length>0?R.join(`
28
+ `):null,a=[...a.slice(0,m),...I>0?[dt(I)]:[],...w.filter(L=>Q.test(L))]}else if(u)c=a.slice(m).join(`
29
+ `),a=[...a.slice(0,m),dt(_)];else{let{kept:w,dropped:R}=lo(a,p);c=R.length>0?R.join(`
30
+ `):null,a=w}}}let f=a.join(`
31
31
  `);return i&&f.length>0&&(f+=`
32
- `),f.trim().length===0&&t.on_empty&&(e.length===0||e.trim().length>0)&&(n.exitCode==null||n.exitCode===0||n.exitCode===1&&fd.has(t.slug))&&!yr(n.cmd)&&(f=t.on_empty),{text:f,droppedTail:c}}import dd from"node:os";import{join as zo}from"node:path";function A(){return process.env.TOKMIZER_HOME||zo(dd.homedir(),".tokmizer")}function jt(){return zo(A(),"install-id")}var Go="user/",kn=1,bn=null,Bo="",Zo=0,gd=1e3;function _n(){return xn(A(),"filters")}function Wo(){return xn(A(),"filters-trust.json")}function Vo(e){return typeof e=="string"&&e.startsWith(Go)}function yd(e){return hd("sha256").update(e).digest("hex")}async function kd(){try{let e=JSON.parse(await Jo(Wo(),"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 bd(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 s of t){if(typeof s!="object"||s===null)return n;let{input:o,expected:i,name:a}=s;if(typeof o!="string"||typeof i!="string")return n;r.push({...typeof a=="string"&&a?{name:a}:{},input:o,expected:i})}return{tests:r}}function _d(e,t){let n=typeof t=="object"&&t!==null&&!Array.isArray(t)?t:{},{tests:r,...s}=n,o=bd(e,r);if("message"in o)return o;let i=Ee.safeParse({...s,slug:e});if(!i.success){let l=i.error.issues.map(u=>`${u.path.join(".")||"rule"}: ${u.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:`${Go}${i.data.slug}`,matchRegex:a},tests:o.tests}}function xd(e){return e===void 0||e===kn?null:typeof e=="number"&&Number.isInteger(e)?`schema_version ${e} is not supported: this tkr reads schema_version = ${kn}. Update tkr, or write the file for version ${kn}`:`schema_version must be the number ${kn}`}async function wd(e){try{return(await pd(e)).filter(t=>t.endsWith(".toml")).sort()}catch{return[]}}async function Sd(e={}){let t=e.requireTrust!==!1,n=_n(),r=new Map,s=new Map,o=[],i=await wd(n);if(i.length===0)return{dir:n,filters:r,tests:s,issues:o};let a=t?await kd():null;for(let l of i){let u;try{u=await Jo(xn(n,l),"utf8")}catch{o.push({file:l,message:"could not be read"});continue}if(a){let f=a.files[l];if(!f){o.push({file:l,message:`not trusted yet. Review it, then run: tkr filters trust ${l}`});continue}if(f!==yd(u)){o.push({file:l,message:`changed since it was trusted. Review it, then run: tkr filters trust ${l}`});continue}}let c=await vd(u,l);for(let[f,d]of c.filters)r.set(f,d);for(let[f,d]of c.tests)s.set(f,d);o.push(...c.issues)}return{dir:n,filters:r,tests:s,issues:o}}async function vd(e,t){let n=new Map,r=new Map,s=[],{parse:o}=await Promise.resolve().then(()=>(mn(),lr)),i;try{i=o(e)}catch(u){return s.push({file:t,message:`not valid TOML (${String(u.message).split(`
33
- `)[0]})`}),{filters:n,tests:r,issues:s}}let a=xd(i.schema_version);if(a)return s.push({file:t,message:a}),{filters:n,tests:r,issues:s};let l=i.filters;if(typeof l!="object"||l===null||Array.isArray(l))return s.push({file:t,message:"no [filters.<name>] table found"}),{filters:n,tests:r,issues:s};for(let[u,c]of Object.entries(l)){let f=_d(u,c);if("message"in f){s.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:s}}function Ed(){let e=[];for(let t of[Wo(),_n()])try{let n=Uo(t);e.push(`${n.mtimeMs}:${n.size}`)}catch{e.push("-")}try{for(let t of md(_n()).filter(n=>n.endsWith(".toml")).sort()){let n=Uo(xn(_n(),t));e.push(`${t}:${n.mtimeMs}:${n.size}`)}}catch{}return e.join("|")}function Td(){let e=Date.now();if(!bn||e-Zo>=gd){Zo=e;let t=Ed();(!bn||t!==Bo)&&(Bo=t,bn=Sd())}return bn}async function Ad(e){let{filters:t}=await Td();return t.size===0?null:ft(e,t.values(),null,t)}function Ko(e){return async(t,n)=>await Ad(t)??e(t,n)}var Rd=[/\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 qo(e){if(!e)return!1;for(let t of ce(e).split(`
34
- `))if(!/^\s*[✓✔√]\s/.test(t)&&Rd.some(n=>n.test(t)))return!0;return!1}var $d=new Set(["sudo","command","time","nice","nohup","env","stdbuf","timeout"]),Cd=/^[A-Za-z_][A-Za-z0-9_]*=/,_r=/^([a-z]+)-tool(?::\s|$)/,Od=new Set(["-C","-c","--git-dir","--work-tree","--namespace","--exec-path","--super-prefix","--config-env"]),Id=new Set(["-p","--paginate","-P","--no-pager","--bare","--no-replace-objects","--literal-pathspecs","--glob-pathspecs","--noglob-pathspecs","--icase-pathspecs","--no-optional-locks","--no-lazy-fetch","--no-advice"]);function Nd(e){let t=0;for(;t<e.length;){let n=e[t];if(Od.has(n))t+=2;else if(Id.has(n))t+=1;else if(/^--(?:git-dir|work-tree|namespace|exec-path|super-prefix|config-env)=/.test(n))t+=1;else if(/^-[Cc]\S/.test(n))t+=1;else break}return e.slice(t)}function Ke(e){let t=e.trim(),n=t.split(/\s+/),r=0;for(;r<n.length;){let l=n[r];if(Cd.test(l)){r++;continue}if($d.has(l)){for(r++,l==="timeout"&&r<n.length&&/^\d+(?:\.\d+)?[smhd]?$/.test(n[r])&&r++;(l==="stdbuf"||l==="nice")&&r<n.length&&n[r].startsWith("-");)r++;continue}break}if(r>=n.length)return t;let s=n[r],o=s.slice(Math.max(s.lastIndexOf("/"),s.lastIndexOf("\\"))+1)||s;o=o.replace(/\.(?:exe|cmd|bat|ps1)$/i,"")||o;let i=n.slice(r+1);o.toLowerCase()==="py"&&(o="python",i.length&&/^-\d(?:\.\d+)?(?:-\d+)?$/.test(i[0])&&(i=i.slice(1)));let a=o==="git"?Nd(i):i;return a.length?`${o} ${a.join(" ")}`:o}var Pd=new Set(["cd","export","source","set","unset","mkdir","true",":","pushd","popd","alias","ulimit","umask","echo","printf","sleep","touch","rm","cp","mv","chmod","ln"]);function Yo(e,t){let n=!1,r=!1,s=0,o=[];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===";"?(o.push(e.slice(s,i)),s=i+1):a==="|"&&e[i+1]==="|"?(o.push(e.slice(s,i)),i++,s=i+1):a==="|"?t||(o.push(e.slice(s,i)),s=i+1):a==="&"&&e[i+1]==="&"&&(o.push(e.slice(s,i)),i++,s=i+1))}return o.push(e.slice(s)),o}function Dd(e){let t=Yo(e,!1);for(let n=t.length-1;n>=0;n--){let r=t[n].trim();if(r)return r}return e.trim()}function xr(e){let t=Yo(e,!0).map(n=>n.trim()).filter(Boolean);if(t.length===0)return null;for(let n of t.slice(0,-1)){let r=Ke(n).split(/\s+/)[0]??"";if(!Pd.has(r))return null}return Dd(t[t.length-1])}function Xo(e){let t=!1,n=!1,r=0,s=[];for(let o=0;o<e.length;o++){let i=e[o];if(i==="\\"&&!t){o++;continue}i==="'"&&!n?t=!t:i==='"'&&!t?n=!n:!t&&!n&&(i==="|"||i===";"?(s.push(e.slice(r,o)),i==="|"&&e[o+1]==="|"&&o++,r=o+1):i==="&"&&e[o+1]==="&"&&(s.push(e.slice(r,o)),o++,r=o+1))}s.push(e.slice(r));for(let o=s.length-1;o>=0;o--){let i=s[o].trim();if(i)return i}return e.trim()}var Ld=/^(?: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 wr(e){let t=Ld.exec(e);return t?Ke(e.slice(t[0].length)):null}function Qo(e){let t=_r.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=xr(n),s=r?Ke(r):null,i=[s?wr(s):null,s,e].filter(a=>!!a);return[...new Set(i)]}var ei=`
32
+ `),f.trim().length===0&&t.on_empty&&(e.length===0||e.trim().length>0)&&(n.exitCode==null||n.exitCode===0||n.exitCode===1&&dd.has(t.slug))&&!yr(n.cmd)&&(f=t.on_empty),{text:f,droppedTail:c}}import pd from"node:os";import{join as Uo}from"node:path";function A(){return process.env.TOKMIZER_HOME||Uo(pd.homedir(),".tokmizer")}function jt(){return Uo(A(),"install-id")}var Wo="user/",kn=1,bn=null,Zo="",Jo=0,yd=1e3;function _n(){return xn(A(),"filters")}function Vo(){return xn(A(),"filters-trust.json")}function Ko(e){return typeof e=="string"&&e.startsWith(Wo)}function kd(e){return gd("sha256").update(e).digest("hex")}async function bd(){try{let e=JSON.parse(await Go(Vo(),"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 _d(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 s of t){if(typeof s!="object"||s===null)return n;let{input:o,expected:i,name:a}=s;if(typeof o!="string"||typeof i!="string")return n;r.push({...typeof a=="string"&&a?{name:a}:{},input:o,expected:i})}return{tests:r}}function xd(e,t){let n=typeof t=="object"&&t!==null&&!Array.isArray(t)?t:{},{tests:r,...s}=n,o=_d(e,r);if("message"in o)return o;let i=Ee.safeParse({...s,slug:e});if(!i.success){let l=i.error.issues.map(u=>`${u.path.join(".")||"rule"}: ${u.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:`${Wo}${i.data.slug}`,matchRegex:a},tests:o.tests}}function wd(e){return e===void 0||e===kn?null:typeof e=="number"&&Number.isInteger(e)?`schema_version ${e} is not supported: this tkr reads schema_version = ${kn}. Update tkr, or write the file for version ${kn}`:`schema_version must be the number ${kn}`}async function Sd(e){try{return(await md(e)).filter(t=>t.endsWith(".toml")).sort()}catch{return[]}}async function vd(e={}){let t=e.requireTrust!==!1,n=_n(),r=new Map,s=new Map,o=[],i=await Sd(n);if(i.length===0)return{dir:n,filters:r,tests:s,issues:o};let a=t?await bd():null;for(let l of i){let u;try{u=await Go(xn(n,l),"utf8")}catch{o.push({file:l,message:"could not be read"});continue}if(a){let f=a.files[l];if(!f){o.push({file:l,message:`not trusted yet. Review it, then run: tkr filters trust ${l}`});continue}if(f!==kd(u)){o.push({file:l,message:`changed since it was trusted. Review it, then run: tkr filters trust ${l}`});continue}}let c=await Ed(u,l);for(let[f,d]of c.filters)r.set(f,d);for(let[f,d]of c.tests)s.set(f,d);o.push(...c.issues)}return{dir:n,filters:r,tests:s,issues:o}}async function Ed(e,t){let n=new Map,r=new Map,s=[],{parse:o}=await Promise.resolve().then(()=>(mn(),lr)),i;try{i=o(e)}catch(u){return s.push({file:t,message:`not valid TOML (${String(u.message).split(`
33
+ `)[0]})`}),{filters:n,tests:r,issues:s}}let a=wd(i.schema_version);if(a)return s.push({file:t,message:a}),{filters:n,tests:r,issues:s};let l=i.filters;if(typeof l!="object"||l===null||Array.isArray(l))return s.push({file:t,message:"no [filters.<name>] table found"}),{filters:n,tests:r,issues:s};for(let[u,c]of Object.entries(l)){let f=xd(u,c);if("message"in f){s.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:s}}function Td(){let e=[];for(let t of[Vo(),_n()])try{let n=Bo(t);e.push(`${n.mtimeMs}:${n.size}`)}catch{e.push("-")}try{for(let t of hd(_n()).filter(n=>n.endsWith(".toml")).sort()){let n=Bo(xn(_n(),t));e.push(`${t}:${n.mtimeMs}:${n.size}`)}}catch{}return e.join("|")}function Ad(){let e=Date.now();if(!bn||e-Jo>=yd){Jo=e;let t=Td();(!bn||t!==Zo)&&(Zo=t,bn=vd())}return bn}async function Rd(e){let{filters:t}=await Ad();return t.size===0?null:ft(e,t.values(),null,t)}function qo(e){return async(t,n)=>await Rd(t)??e(t,n)}var $d=[/\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 Yo(e){if(!e)return!1;for(let t of ce(e).split(`
34
+ `))if(!/^\s*[✓✔√]\s/.test(t)&&$d.some(n=>n.test(t)))return!0;return!1}var Cd=new Set(["sudo","command","time","nice","nohup","env","stdbuf","timeout"]),Od=/^[A-Za-z_][A-Za-z0-9_]*=/,_r=/^([a-z]+)-tool(?::\s|$)/,Id=new Set(["-C","-c","--git-dir","--work-tree","--namespace","--exec-path","--super-prefix","--config-env"]),Nd=new Set(["-p","--paginate","-P","--no-pager","--bare","--no-replace-objects","--literal-pathspecs","--glob-pathspecs","--noglob-pathspecs","--icase-pathspecs","--no-optional-locks","--no-lazy-fetch","--no-advice"]);function Pd(e){let t=0;for(;t<e.length;){let n=e[t];if(Id.has(n))t+=2;else if(Nd.has(n))t+=1;else if(/^--(?:git-dir|work-tree|namespace|exec-path|super-prefix|config-env)=/.test(n))t+=1;else if(/^-[Cc]\S/.test(n))t+=1;else break}return e.slice(t)}function Ke(e){let t=e.trim(),n=t.split(/\s+/),r=0;for(;r<n.length;){let l=n[r];if(Od.test(l)){r++;continue}if(Cd.has(l)){for(r++,l==="timeout"&&r<n.length&&/^\d+(?:\.\d+)?[smhd]?$/.test(n[r])&&r++;(l==="stdbuf"||l==="nice")&&r<n.length&&n[r].startsWith("-");)r++;continue}break}if(r>=n.length)return t;let s=n[r],o=s.slice(Math.max(s.lastIndexOf("/"),s.lastIndexOf("\\"))+1)||s;o=o.replace(/\.(?:exe|cmd|bat|ps1)$/i,"")||o;let i=n.slice(r+1);o.toLowerCase()==="py"&&(o="python",i.length&&/^-\d(?:\.\d+)?(?:-\d+)?$/.test(i[0])&&(i=i.slice(1)));let a=o==="git"?Pd(i):i;return a.length?`${o} ${a.join(" ")}`:o}var Dd=new Set(["cd","export","source","set","unset","mkdir","true",":","pushd","popd","alias","ulimit","umask","echo","printf","sleep","touch","rm","cp","mv","chmod","ln"]);function Xo(e,t){let n=!1,r=!1,s=0,o=[];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===";"?(o.push(e.slice(s,i)),s=i+1):a==="|"&&e[i+1]==="|"?(o.push(e.slice(s,i)),i++,s=i+1):a==="|"?t||(o.push(e.slice(s,i)),s=i+1):a==="&"&&e[i+1]==="&"&&(o.push(e.slice(s,i)),i++,s=i+1))}return o.push(e.slice(s)),o}function Ld(e){let t=Xo(e,!1);for(let n=t.length-1;n>=0;n--){let r=t[n].trim();if(r)return r}return e.trim()}function xr(e){let t=Xo(e,!0).map(n=>n.trim()).filter(Boolean);if(t.length===0)return null;for(let n of t.slice(0,-1)){let r=Ke(n).split(/\s+/)[0]??"";if(!Dd.has(r))return null}return Ld(t[t.length-1])}function Qo(e){let t=!1,n=!1,r=0,s=[];for(let o=0;o<e.length;o++){let i=e[o];if(i==="\\"&&!t){o++;continue}i==="'"&&!n?t=!t:i==='"'&&!t?n=!n:!t&&!n&&(i==="|"||i===";"?(s.push(e.slice(r,o)),i==="|"&&e[o+1]==="|"&&o++,r=o+1):i==="&"&&e[o+1]==="&"&&(s.push(e.slice(r,o)),o++,r=o+1))}s.push(e.slice(r));for(let o=s.length-1;o>=0;o--){let i=s[o].trim();if(i)return i}return e.trim()}var Fd=/^(?: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 wr(e){let t=Fd.exec(e);return t?Ke(e.slice(t[0].length)):null}function ei(e){let t=_r.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=xr(n),s=r?Ke(r):null,i=[s?wr(s):null,s,e].filter(a=>!!a);return[...new Set(i)]}var ti=`
35
35
  [YOLO: omitted]
36
- `;function Sr(e){let t=Buffer.from(e,"utf8");if(t.length<=256)return e;let n=256-Buffer.byteLength(ei,"utf8"),r=Math.floor(n/2);for(;(t[r]&192)===128;)r-=1;let s=t.length-(n-r);for(;(t[s]&192)===128;)s+=1;return t.subarray(0,r).toString("utf8")+ei+t.subarray(s).toString("utf8")}var Fd=/^ID {2,}TITLE {2,}BRANCH {2,}STATE {2,}CREATED *$/,Md=/^… \([1-9]\d* more lines omitted\)$/,vr=/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(?:\.\d{1,3})?Z$/;function jd(e,t){if(!t)return e.split(`
36
+ `;function Sr(e){let t=Buffer.from(e,"utf8");if(t.length<=256)return e;let n=256-Buffer.byteLength(ti,"utf8"),r=Math.floor(n/2);for(;(t[r]&192)===128;)r-=1;let s=t.length-(n-r);for(;(t[s]&192)===128;)s+=1;return t.subarray(0,r).toString("utf8")+ti+t.subarray(s).toString("utf8")}var Md=/^ID {2,}TITLE {2,}BRANCH {2,}STATE {2,}CREATED *$/,jd=/^… \([1-9]\d* more lines omitted\)$/,vr=/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(?:\.\d{1,3})?Z$/;function Hd(e,t){if(!t)return e.split(`
37
37
  `).map(o=>o.replace(/^[ \t]+|[ \t]+(?=\r?$)/g,"")).join(`
38
38
  `);let n="",r=!1,s=!1;for(let o of e)r?(n+=o,s?s=!1:o==="\\"?s=!0:o==='"'&&(r=!1)):o==='"'?(r=!0,n+=o):o!==" "&&o!==" "&&o!=="\r"&&o!==`
39
39
  `&&(n+=o);return n+(e.endsWith(`
40
40
  `)?`
41
- `:"")}function Hd(e,t){if(/@(?:p)?\d|\r/.test(e))return e;let n=e.endsWith(`
41
+ `:"")}function zd(e,t){if(/@(?:p)?\d|\r/.test(e))return e;let n=e.endsWith(`
42
42
  `)?`
43
43
  `:"",r=(n?e.slice(0,-1):e).split(`
44
- `),s=r.findIndex(m=>Fd.test(m));if(s>=0&&r.slice(0,s).some(m=>m!==""&&!/^Showing \d+ of \d+ (?:open|closed|all) pull requests in \S+$/.test(m)))return e;let o=s>=0?[...r[s].matchAll(/\S+/g)].map(m=>m.index):[],i=[];for(let m=s+1;m<r.length;m+=1){let w=r[m];if(Md.test(w))continue;if(/…|\.\.\./.test(w))return e;let x;if(s>=0){if(/[^\x20-\x7e]/.test(w))return e;let C=o.map((I,L)=>w.slice(I,o[L+1]));if(C.slice(0,-1).some(I=>I[0]===" "||!I.endsWith(" "))||(x=C.map(I=>I.replace(/ +$/,"")),!/^#\d+$/.test(x[0])||!/^\S+$/.test(x[2])||!/^(OPEN|CLOSED|MERGED|DRAFT)$/.test(x[3])||!/^\d+(?:s|m|h|d|w|mo|y)$/.test(x[4])))return e}else if(x=w.split(" "),x.length!==5||!/^\d+$/.test(x[0])||!x[1]||!x[2]||!/^(OPEN|CLOSED|MERGED|DRAFT)$/.test(x[3])||!vr.test(x[4])||!Number.isFinite(Date.parse(x[4])))return e;if(x.some(C=>/[\u0000-\u001f\u007f]/.test(C)))return e;i.push({index:m,cells:x})}if(i.length===0)return e;s>=0&&(r[s]="ID TITLE BRANCH STATE CREATED");for(let m of i)r[m.index]=m.cells.join(" ");let a=r.join(`
45
- `)+n;if(!t)return a;let l=new Map;for(let{cells:m}of i)l.set(m[1],(l.get(m[1])??0)+1);let u=new Map,c=[];for(let[m,w]of l){if(m.length<40||w<3||m.trim().split(/\s+/).length<8)continue;let x=`@${u.size+1}`,C=JSON.stringify(m).replace(/\u2028/g,"\\u2028").replace(/\u2029/g,"\\u2029"),I=`TITLE ${x} = ${C}`;w*(Buffer.byteLength(m)-Buffer.byteLength(x))<=Buffer.byteLength(I)+1||(u.set(m,x),c.push(I))}let f=new Map;for(let{cells:m}of i){if(u.has(m[1]))continue;let w=/^((?:\S+\s+){4})\S/.exec(m[1])?.[1];w&&w.length>=24&&f.set(w,(f.get(w)??0)+1)}let d=new Map;for(let[m,w]of f){if(w<3)continue;let x=`@p${d.size+1}`,C=`TITLE prefix ${x} = ${JSON.stringify(m).replace(/\u2028/g,"\\u2028").replace(/\u2029/g,"\\u2029")}`;w*(Buffer.byteLength(m)-Buffer.byteLength(x)-1)<=Buffer.byteLength(C)+1||(d.set(m,x),c.push(C))}let p=i[0].cells[4].slice(10),h=i.length>=3&&vr.test(i[0].cells[4])&&i.every(({cells:m})=>vr.test(m[4])&&m[4].slice(10)===p)&&i.length*p.length>`CREATED suffix = ${JSON.stringify(p)}`.length+1;if(h&&c.push(`CREATED suffix = ${JSON.stringify(p)}`),c.length===0)return a;for(let{index:m,cells:w}of i){let x=u.get(w[1]),C=/^((?:\S+\s+){4})\S/.exec(w[1])?.[1],I=C?d.get(C):void 0;r[m]=w.map((L,M)=>M===1?x??(I?`${I}:${L.slice(C.length)}`:L):M===4&&h?L.slice(0,10):L).join(" ")}let y=[...r,"",...c].join(`
46
- `)+n;return Buffer.byteLength(y)<Buffer.byteLength(a)?y:a}var ti={"Changes to be committed:":"staged","Changes not staged for commit:":"unstaged","Untracked files:":"untracked"},zd={modified:"M",deleted:"D","new file":"A",renamed:"R",copied:"C",typechange:"T"},Ud=/^\t(modified|deleted|new file|renamed|copied|typechange):\s+(.+)$/,Bd=/^On branch (\S+)$/,Zd=/^Your branch is (?:up to date with '([^']+)'|(ahead|behind)(?: of)? '([^']+)' by (\d+) commits?(?:, and can be fast-forwarded)?)\.$/;function Jd(e){let t=Bd.exec(e[0]??"");if(!t)return e;let n=Zd.exec(e[1]??"");if(!n)return[`* ${t[1]}`,...e.slice(1)];let r=n[1]??n[3],s=n[2]?` [${n[2]} ${n[4]}]`:"";return[`* ${t[1]}...${r}${s}`,...e.slice(2)]}function ni(e){let t=e.endsWith(`
44
+ `),s=r.findIndex(m=>Md.test(m));if(s>=0&&r.slice(0,s).some(m=>m!==""&&!/^Showing \d+ of \d+ (?:open|closed|all) pull requests in \S+$/.test(m)))return e;let o=s>=0?[...r[s].matchAll(/\S+/g)].map(m=>m.index):[],i=[];for(let m=s+1;m<r.length;m+=1){let _=r[m];if(jd.test(_))continue;if(/…|\.\.\./.test(_))return e;let w;if(s>=0){if(/[^\x20-\x7e]/.test(_))return e;let R=o.map((I,L)=>_.slice(I,o[L+1]));if(R.slice(0,-1).some(I=>I[0]===" "||!I.endsWith(" "))||(w=R.map(I=>I.replace(/ +$/,"")),!/^#\d+$/.test(w[0])||!/^\S+$/.test(w[2])||!/^(OPEN|CLOSED|MERGED|DRAFT)$/.test(w[3])||!/^\d+(?:s|m|h|d|w|mo|y)$/.test(w[4])))return e}else if(w=_.split(" "),w.length!==5||!/^\d+$/.test(w[0])||!w[1]||!w[2]||!/^(OPEN|CLOSED|MERGED|DRAFT)$/.test(w[3])||!vr.test(w[4])||!Number.isFinite(Date.parse(w[4])))return e;if(w.some(R=>/[\u0000-\u001f\u007f]/.test(R)))return e;i.push({index:m,cells:w})}if(i.length===0)return e;s>=0&&(r[s]="ID TITLE BRANCH STATE CREATED");for(let m of i)r[m.index]=m.cells.join(" ");let a=r.join(`
45
+ `)+n;if(!t)return a;let l=new Map;for(let{cells:m}of i)l.set(m[1],(l.get(m[1])??0)+1);let u=new Map,c=[];for(let[m,_]of l){if(m.length<40||_<3||m.trim().split(/\s+/).length<8)continue;let w=`@${u.size+1}`,R=JSON.stringify(m).replace(/\u2028/g,"\\u2028").replace(/\u2029/g,"\\u2029"),I=`TITLE ${w} = ${R}`;_*(Buffer.byteLength(m)-Buffer.byteLength(w))<=Buffer.byteLength(I)+1||(u.set(m,w),c.push(I))}let f=new Map;for(let{cells:m}of i){if(u.has(m[1]))continue;let _=/^((?:\S+\s+){4})\S/.exec(m[1])?.[1];_&&_.length>=24&&f.set(_,(f.get(_)??0)+1)}let d=new Map;for(let[m,_]of f){if(_<3)continue;let w=`@p${d.size+1}`,R=`TITLE prefix ${w} = ${JSON.stringify(m).replace(/\u2028/g,"\\u2028").replace(/\u2029/g,"\\u2029")}`;_*(Buffer.byteLength(m)-Buffer.byteLength(w)-1)<=Buffer.byteLength(R)+1||(d.set(m,w),c.push(R))}let p=i[0].cells[4].slice(10),g=i.length>=3&&vr.test(i[0].cells[4])&&i.every(({cells:m})=>vr.test(m[4])&&m[4].slice(10)===p)&&i.length*p.length>`CREATED suffix = ${JSON.stringify(p)}`.length+1;if(g&&c.push(`CREATED suffix = ${JSON.stringify(p)}`),c.length===0)return a;for(let{index:m,cells:_}of i){let w=u.get(_[1]),R=/^((?:\S+\s+){4})\S/.exec(_[1])?.[1],I=R?d.get(R):void 0;r[m]=_.map((L,M)=>M===1?w??(I?`${I}:${L.slice(R.length)}`:L):M===4&&g?L.slice(0,10):L).join(" ")}let y=[...r,"",...c].join(`
46
+ `)+n;return Buffer.byteLength(y)<Buffer.byteLength(a)?y:a}var ni={"Changes to be committed:":"staged","Changes not staged for commit:":"unstaged","Untracked files:":"untracked"},Ud={modified:"M",deleted:"D","new file":"A",renamed:"R",copied:"C",typechange:"T"},Bd=/^\t(modified|deleted|new file|renamed|copied|typechange):\s+(.+)$/,Zd=/^On branch (\S+)$/,Jd=/^Your branch is (?:up to date with '([^']+)'|(ahead|behind)(?: of)? '([^']+)' by (\d+) commits?(?:, and can be fast-forwarded)?)\.$/;function Gd(e){let t=Zd.exec(e[0]??"");if(!t)return e;let n=Jd.exec(e[1]??"");if(!n)return[`* ${t[1]}`,...e.slice(1)];let r=n[1]??n[3],s=n[2]?` [${n[2]} ${n[4]}]`:"";return[`* ${t[1]}...${r}${s}`,...e.slice(2)]}function ri(e){let t=e.endsWith(`
47
47
  `)?`
48
- `:"",n=Jd((t?e.slice(0,-1):e).split(`
49
- `)),r=null,s=[];for(let o of n){if(Object.hasOwn(ti,o)){r=ti[o];continue}if(!o.startsWith(" ")){r=null,s.push(o);continue}if(r==="untracked"){s.push(`?? ${o.slice(1)}`);continue}let i=r?Ud.exec(o):null;if(!i)return e;let a=zd[i[1]];s.push(r==="staged"?`${a} ${i[2]}`:` ${a} ${i[2]}`)}return s.join(`
50
- `)+t}var ri=/^ (\S.*?) +\| +(\d+(?: [+-]+)?|Bin .*)$/,Gd=/^ \d+ files? changed(?:, \d+ insertions?\(\+\))?(?:, \d+ deletions?\(-\))?$/;function Wd(e){let t=e.split(`
51
- `);for(let n=0;n<t.length;n+=1){if(!Gd.test(t[n]))continue;let r=n;for(;r>0&&ri.test(t[r-1]);)r-=1;for(let s=r;s<n;s+=1)t[s]=t[s].replace(ri," $1 | $2")}return t.join(`
52
- `)}var Vd=/^( *(?:[~+-] +)?(?:[\w.-]+|"[^"\n]*")) {2,}= /gm,si=/^[A-Z][A-Z0-9_]*(?: +[A-Z][A-Z0-9_]*)+$/,oi=/^… \(\d+ more lines omitted\)$/;function Kd(e,t){let n=[];for(let r=0;r<t.length;r+=1){let s=t[r];if(s>0&&e.length>s&&e[s-1]!==" ")return null;let o=e.slice(s,t[r+1]??e.length).trim();if(o.includes(" "))return null;n.push(o)}return n}function qd(e){let t=e.endsWith(`
48
+ `:"",n=Gd((t?e.slice(0,-1):e).split(`
49
+ `)),r=null,s=[];for(let o of n){if(Object.hasOwn(ni,o)){r=ni[o];continue}if(!o.startsWith(" ")){r=null,s.push(o);continue}if(r==="untracked"){s.push(`?? ${o.slice(1)}`);continue}let i=r?Bd.exec(o):null;if(!i)return e;let a=Ud[i[1]];s.push(r==="staged"?`${a} ${i[2]}`:` ${a} ${i[2]}`)}return s.join(`
50
+ `)+t}var si=/^ (\S.*?) +\| +(\d+(?: [+-]+)?|Bin .*)$/,Wd=/^ \d+ files? changed(?:, \d+ insertions?\(\+\))?(?:, \d+ deletions?\(-\))?$/;function Vd(e){let t=e.split(`
51
+ `);for(let n=0;n<t.length;n+=1){if(!Wd.test(t[n]))continue;let r=n;for(;r>0&&si.test(t[r-1]);)r-=1;for(let s=r;s<n;s+=1)t[s]=t[s].replace(si," $1 | $2")}return t.join(`
52
+ `)}var Kd=/^( *(?:[~+-] +)?(?:[\w.-]+|"[^"\n]*")) {2,}= /gm,oi=/^[A-Z][A-Z0-9_]*(?: +[A-Z][A-Z0-9_]*)+$/,ii=/^… \(\d+ more lines omitted\)$/;function qd(e,t){let n=[];for(let r=0;r<t.length;r+=1){let s=t[r];if(s>0&&e.length>s&&e[s-1]!==" ")return null;let o=e.slice(s,t[r+1]??e.length).trim();if(o.includes(" "))return null;n.push(o)}return n}function Yd(e){let t=e.endsWith(`
53
53
  `)?`
54
54
  `:"",n=(t?e.slice(0,-1):e).split(`
55
- `),r=[],s=[];for(let u of n)u.startsWith("WARNING:")?r.includes(u)||r.push(u):s.push(u);let o=s.findIndex(u=>si.test(u));if(o<0)return[...r,...s].join(`
56
- `)+t;let i=s[o],a=[...i.matchAll(/\S+/g)].map(u=>u.index),l=[...r,...s.slice(0,o),i.split(/ +/).join(" ")];for(let u of s.slice(o+1)){if(oi.test(u)){l.push(u);continue}let c=u.startsWith(" ")||/[^\x20-\x7e]/.test(u)?null:Kd(u,a);if(!c)return[...r,...s].join(`
55
+ `),r=[],s=[];for(let u of n)u.startsWith("WARNING:")?r.includes(u)||r.push(u):s.push(u);let o=s.findIndex(u=>oi.test(u));if(o<0)return[...r,...s].join(`
56
+ `)+t;let i=s[o],a=[...i.matchAll(/\S+/g)].map(u=>u.index),l=[...r,...s.slice(0,o),i.split(/ +/).join(" ")];for(let u of s.slice(o+1)){if(ii.test(u)){l.push(u);continue}let c=u.startsWith(" ")||/[^\x20-\x7e]/.test(u)?null:qd(u,a);if(!c)return[...r,...s].join(`
57
57
  `)+t;l.push(c.join(" "))}return l.join(`
58
- `)+t}function Yd(e){let t=e.endsWith(`
58
+ `)+t}function Xd(e){let t=e.endsWith(`
59
59
  `)?`
60
60
  `:"",n=(t?e.slice(0,-1):e).split(`
61
- `),r=n.findIndex(i=>si.test(i.trimEnd()));if(r<0)return e;let s=n[r].trim().split(/ {2,}/).length;if(s<2)return e;let o=[...n.slice(0,r),n[r].trim().split(/ {2,}/).join(" ")];for(let i of n.slice(r+1)){if(oi.test(i)){o.push(i);continue}if(i.startsWith(" ")||i.includes(" ")||/[^\x20-\x7e]/.test(i))return e;let a=i.trimEnd().split(/ {2,}/);if(a.length===s-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!==s)return e;o.push(a.join(" "))}return o.join(`
62
- `)+t}function Er(e,t,n){if(t!=="compact"&&t!=="minimal"){if(n!=="git-status")return e;let s=ni(e);return Buffer.byteLength(s)<Buffer.byteLength(e)?s:e}let r=e;if(/^[ \t\r\n]*[\[{]/.test(e)){try{JSON.parse(e)}catch{return e}r=jd(e,t==="minimal")}else n==="gh"?r=Hd(e,t==="minimal"):n==="git-status"?r=ni(e):n==="gcloud"?r=qd(e):n==="oc"?r=Yd(e):n==="git-diff"?r=Wd(e):n==="tofu-plan"&&(r=e.replace(Vd,"$1 = "));return Buffer.byteLength(r)<Buffer.byteLength(e)?r:e}var Xd=/^(?:\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|$)/,Qd=/^\[tkr: previous log line repeated \d+ additional times\]$/m;function ii(e){if(Buffer.byteLength(e)<2048||hn(e)||Qd.test(e))return e;let t=e.split(`
63
- `),n=[];for(let r=0;r<t.length;){let s=t[r],o=r+1;if(Xd.test(s))for(;o<t.length&&t[o]===s;)o+=1;let i=o-r,a=`[tkr: previous log line repeated ${i-1} additional times]`;if(i>=3&&Buffer.byteLength(a)+1<(i-1)*(Buffer.byteLength(s)+1))n.push(s,a);else for(let l=r;l<o;l+=1)n.push(s);r=o}return n.join(`
64
- `)}var ep=/^(?:[A-Za-z]:)?[^\s"'<>|]+\.(?:[cm]?[jt]sx?|json)$/,tp=/--(?:listFiles|listFilesOnly|listEmittedFiles|showConfig|explainFiles|traceResolution)(?:\s|=|$)/;function ai(e){return tp.test(e)}function li(e){let t=e.endsWith(`
61
+ `),r=n.findIndex(i=>oi.test(i.trimEnd()));if(r<0)return e;let s=n[r].trim().split(/ {2,}/).length;if(s<2)return e;let o=[...n.slice(0,r),n[r].trim().split(/ {2,}/).join(" ")];for(let i of n.slice(r+1)){if(ii.test(i)){o.push(i);continue}if(i.startsWith(" ")||i.includes(" ")||/[^\x20-\x7e]/.test(i))return e;let a=i.trimEnd().split(/ {2,}/);if(a.length===s-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!==s)return e;o.push(a.join(" "))}return o.join(`
62
+ `)+t}function Er(e,t,n){if(t!=="compact"&&t!=="minimal"){if(n!=="git-status")return e;let s=ri(e);return Buffer.byteLength(s)<Buffer.byteLength(e)?s:e}let r=e;if(/^[ \t\r\n]*[\[{]/.test(e)){try{JSON.parse(e)}catch{return e}r=Hd(e,t==="minimal")}else n==="gh"?r=zd(e,t==="minimal"):n==="git-status"?r=ri(e):n==="gcloud"?r=Yd(e):n==="oc"?r=Xd(e):n==="git-diff"?r=Vd(e):n==="tofu-plan"&&(r=e.replace(Kd,"$1 = "));return Buffer.byteLength(r)<Buffer.byteLength(e)?r:e}var Qd=/^(?:\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|$)/,ep=/^\[tkr: previous log line repeated \d+ additional times\]$/m;function ai(e){if(Buffer.byteLength(e)<2048||hn(e)||ep.test(e))return e;let t=e.split(`
63
+ `),n=[];for(let r=0;r<t.length;){let s=t[r],o=r+1;if(Qd.test(s))for(;o<t.length&&t[o]===s;)o+=1;let i=o-r,a=`[tkr: previous log line repeated ${i-1} additional times]`;if(i>=3&&Buffer.byteLength(a)+1<(i-1)*(Buffer.byteLength(s)+1))n.push(s,a);else for(let l=r;l<o;l+=1)n.push(s);r=o}return n.join(`
64
+ `)}var tp=/^(?:[A-Za-z]:)?[^\s"'<>|]+\.(?:[cm]?[jt]sx?|json)$/,np=/--(?:listFiles|listFilesOnly|listEmittedFiles|showConfig|explainFiles|traceResolution)(?:\s|=|$)/;function li(e){return np.test(e)}function ui(e){let t=e.endsWith(`
65
65
  `),n=(t?e.slice(0,-1):e).split(`
66
- `),r=0;for(let s of n)if(s.trim()!==""){if(!ep.test(s))return null;r+=1}return r<2?null:`tsc: 0 errors, ${r} files${t?`
67
- `:""}`}var di=/^(?:(?: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|$)/,pi={normal:{msg:40,diff:60,frames:6,out:20,bulk:50,repeats:10,trimDiff:!1,changedOnly:!1},compact:{msg:12,diff:24,frames:2,out:5,bulk:20,repeats:2,trimDiff:!0,changedOnly:!1},minimal:{msg:6,diff:8,frames:0,out:0,bulk:10,repeats:1,trimDiff:!0,changedOnly:!0}},np=/node_modules|^node:|^internal\/|site-packages|dist-packages|\/lib\/python\d|\/rustc\/|\.cargo\/registry|\.rustup\/|\/go\/src\/|\/go\/pkg\/mod\/|\/libexec\/src\/|<anonymous>/,rp=/^\s*at\s+(?:.*?\()?((?:file:\/\/)?[^\s()]+?):(\d+)(?::(\d+))?\)?\s*$/,sp=/^\s*❯\s+(?:\S+\s+)?([^\s]+?):(\d+)(?::(\d+))?\s*$/,op=/^\s*(>)?\s*(\d+)\s*\|/,ip=/^\s*\|\s*[\^~]+\s*$/,ap=/^(?:- Expected|\+ Received|- Snapshot|\+ expected - actual|\+ actual - expected|- expected \+ actual)(?:\s+[-+]\s*\d+)?$/;function pt(e,t){let n=null;for(let r of e){let s=t.exec(r);s&&(n=(n??0)+Number(s[1]))}return n}function wn(e){return np.test(e)}function lp(e){if(!/^file:\/\//i.test(e))return e;let t=e.replace(/^file:\/\/(?:localhost)?/i,"");try{t=decodeURIComponent(t)}catch{}return t.replace(/^\/([A-Za-z]:[\\/])/,"$1")}function Sn(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 Tr(e,t=()=>!1){let n=[],r=null,s=-1,o=!1;for(let f of e){let d=f.trimEnd(),p=d.trim();if(!p||ip.test(d)||/^─+$/.test(p))continue;if(t(p)){o=!0,n.push({kind:"out",text:p.replace(/\s*─+$/,"")});continue}if(o){n.push({kind:"out",text:p});continue}let h=rp.exec(d)??sp.exec(d);if(h){s=-1;let m=lp(h[1]);wn(m)||(r=Sn(n,`${m}:${h[2]}${h[3]?`:${h[3]}`:""}`,r));continue}let y=op.exec(d);if(y){s=-1,n.push({kind:"code",text:p,num:Number(y[2]),pointed:y[1]===">"});continue}if(ap.test(p)){s=n.length,n.push({kind:"legend",text:p});continue}n.push(s>=0?{kind:"diff",text:d,segment:s}:{kind:"msg",text:p})}let i=n.some(f=>f.kind==="code"&&f.pointed),a=r?Number(/:(\d+)(?::\d+)?$/.exec(r)?.[1]):NaN,l=!1,u=n.filter(f=>{if(f.kind!=="code")return!0;let d=!l&&(i?f.pointed===!0:f.num===a);return d&&(l=!0),d}),c=new Map;for(let f of u){if(f.kind!=="diff")continue;let d=f.text.length-f.text.trimStart().length;c.set(f.segment,Math.min(c.get(f.segment)??d,d))}for(let f of u)f.kind==="diff"&&(f.text=f.text.slice(c.get(f.segment)??0)),f.kind==="code"&&(f.kind="source",f.text=f.text.replace(/^>\s*/,""));return{body:u,loc:r}}function B(e,t=!1){return{text:e.trim().replace(/\s{2,}/g," "),minor:t}}function up(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=pt(e,/^\s*Tests\s+(\d+) failed/),n=[];for(let l of e)/^\s*Test Files\s{2,}\S/.test(l)?n.push(B(l,!0)):(/^\s*(?:Tests|Errors|Type Errors)\s{2,}\S/.test(l)||/^\s*ERROR: Coverage for \S.*threshold/.test(l))&&n.push(B(l));let r=[],s=0,o=[],i=[],a=()=>{if(o.length){let{body:l,loc:u}=Tr(i);for(let c of o)c.body=l,c.loc=u}o=[],i=[]};for(let l of e){let u=l.trim(),c=/^ ?FAIL\s+(\S.*?)\s*$/.exec(l);if(c){i.some(m=>m.trim())&&a();let d=c[1],p=/^(\S+) \[ \S+ \]$/.exec(d),h=d.split(" > "),y=p?{file:p[1],name:"(suite)",loc:null,body:[]}:h.length>1?{file:h[0],name:h.slice(1).join(" > "),loc:null,body:[]}:{file:null,name:d,loc:null,body:[]};p||(s+=1),r.push(y),o.push(y);continue}let f=/^⎯+ (Unhandled [A-Za-z ]+?) ⎯+$/.exec(u);if(f){a();let d={file:null,name:f[1],loc:null,body:[]};r.push(d),o.push(d);continue}if(/^⎯{3,}/.test(u)||/^(?:Test Files|Tests|Start at|Duration|Errors)\s{2,}/.test(u)){a();continue}o.length&&i.push(l)}if(a(),s===0){let l=null;for(let u of e){let c=/^\s*[❯✓×✗]\s+(\S+)\s+\(\d+ tests?\b/.exec(u);if(c){l=c[1];continue}let f=/^\s+[×✗]\s+(.+?)(?:\s+\d+(?:\.\d+)?m?s)?$/.exec(u);f&&(r.push({file:l,name:f[1],loc:null,body:[]}),s+=1)}}return{failures:r,summary:n,reported:t,counted:s}}function cp(e){if(!e.some(c=>/^\s{2}● (?!Console$)/.test(c))||!e.some(c=>/^Tests:\s/.test(c)||/^(?:FAIL|PASS)\s+\S/.test(c)))return null;let t=pt(e,/^Tests:\s+(\d+) failed/),n=[];for(let c of e)/^Test Suites:\s/.test(c)?n.push(B(c,!0)):(/^Tests:\s/.test(c)||/^Snapshots:\s/.test(c)&&/failed|obsolete/.test(c))&&n.push(B(c));let r=[],s=new Set,o=0,i=null,a=null,l=[],u=()=>{if(a){let c=`${a.file}\0${a.name}`;if(!s.has(c)){s.add(c);let{body:f,loc:d}=Tr(l);a.body=f,a.loc=d,r.push(a),a.name!=="Test suite failed to run"&&(o+=1)}}a=null,l=[]};for(let c of e){let f=/^(?:FAIL|PASS)\s+(\S+)/.exec(c);if(f){u(),i=f[1];continue}if(/^(?:Summary of all failing tests|Test Suites:|Tests:|Snapshots:|Time:|Ran all test suites)/.test(c)){u();continue}let d=/^\s{2}● (.+)$/.exec(c);if(d){u(),d[1].trim()!=="Console"&&(a={file:i,name:d[1].trim(),loc:null,body:[]});continue}a&&l.push(c)}return u(),{failures:r,summary:n,reported:t,counted:o}}function mi(e,t,n,r,s){let o=[],i=new Map,a=null;for(let l=t;l<n;l++){let u=e[l],c=/^\s{2}\d+\) (.+)$/.exec(u);if(c){let{name:f,used:d}=r(c[1],e.slice(l+1,Math.min(n,l+8)));l+=d,a=i.get(f)??null,a||(a=[],i.set(f,a),o.push({file:null,name:f,loc:null,body:[]}));continue}/^\s+Retry #\d+ ─*/.test(u)||a&&a.push(u)}for(let l of o){let{body:u,loc:c}=Tr(i.get(l.name),s);l.body=u,l.loc=c}return o}function fp(e){let t=e.findIndex(o=>/^\s*\d+ failing$/.test(o));if(t<0)return null;let n=Number(/(\d+)/.exec(e[t])[1]),r=e.filter(o=>/^\s*\d+ (?:passing|failing|pending)(?: \(\S+\))?$/.test(o)).map(o=>B(o.replace(/ \(\S+\)\s*$/,""))),s=mi(e,t+1,e.length,(o,i)=>{let a=[o.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:o.trim(),used:0}});return{failures:s,summary:r,reported:n,counted:s.length}}function dp(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,s=pt(e.slice(r),/^\s{2}(\d+) failed$/),o=e.slice(r).filter(a=>/^\s{2}\d+ (?:failed|flaky|passed|skipped|interrupted|did not run)(?: \(.+\))?$/.test(a)).map(a=>B(a.replace(/ \([\d.]+m?s\)\s*$/,""))),i=mi(e,t,r,a=>({name:a.replace(/\s*─+\s*$/,"").trim(),used:0}),a=>/^attachment #\d+:/.test(a));return{failures:i,summary:o,reported:s,counted:i.length}}function pp(e){if(!e.some(i=>/^test result: /.test(i))||!e.some(i=>/^---- .+ stdout ----$/.test(i)))return null;let t=pt(e,/^test result: FAILED\. \d+ passed; (\d+) failed/),n=[];for(let i of e)/^test result: FAILED/.test(i)?n.push(B(i.replace(/; finished in [\d.]+m?s\s*$/,""))):/^test result: ok/.test(i)?n.push(B(i.replace(/; finished in [\d.]+m?s\s*$/,""),!0)):/^error(?:\[\w+\])?: /.test(i)&&n.push(B(i));let r=[],s=null,o=[];for(let i of e){let a=/^---- (.+?) stdout ----$/.exec(i);if(a){s={f:{file:null,name:a[1],loc:null,body:[]},lines:[]},o.push(s),r.push(s.f);continue}if(/^failures:$|^test result: |^running \d+ tests?$/.test(i)){s=null;continue}s&&s.lines.push(i)}for(let{f:i,lines:a}of o){let l=!1,u=!1;for(let c of a){let f=c.trimEnd(),d=f.trim();if(!d)continue;let p=/^thread '.+?'(?: \(\d+\))? panicked at (?:'(.*)', )?(\S+?):(\d+):(\d+):?$/.exec(d);if(p){l=!0,i.loc??=`${p[2]}:${p[3]}:${p[4]}`,p[1]&&i.body.push({kind:"msg",text:p[1]});continue}if(!/^note: run with `RUST_BACKTRACE/.test(d)){if(/^stack backtrace:$/.test(d)){u=!0;continue}if(u){let h=/^at\s+(\S+?):(\d+):(\d+)$/.exec(d);h&&!wn(h[1])&&(i.loc=Sn(i.body,`${h[1]}:${h[2]}:${h[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 mp(e){if(!e.some(a=>/^\s*--- FAIL: \S/.test(a)))return null;let t=new Map,n=[],r=new Map,s=[],o=null,i=null;for(let a of e){let l=/^=== (?:RUN|CONT|PAUSE|NAME)\s+(\S+)/.exec(a);if(l){o=l[1],i=null;continue}let u=/^\s*--- FAIL: (\S+) \([\d.]+m?s\)/.exec(a);if(u){i={file:null,name:u[1],loc:null,body:[]},r.set(i,[...t.get(u[1])??[]]),n.push(i),o=null;continue}if(/^\s*--- (?:PASS|SKIP): /.test(a)){i=null,o=null;continue}let c=/^(FAIL|ok)\s+(\S+)(?:\s+(?:[\d.]+m?s|\(cached\)|\[[^\]]+\]))?/.exec(a);if(c&&/\t|\s{2,}|\[/.test(a)){s.push(B(a.replace(/\s+[\d.]+m?s\s*$/,""),c[1]==="ok")),i=null,o=null;continue}if(!/^(?:FAIL|PASS)$/.test(a.trim())){if(/^exit status \d+$/.test(a)){s.push(B(a,!0));continue}if(i)r.get(i).push(a);else if(o){let f=t.get(o)??[];f.push(a),t.set(o,f)}else(/^#\s\S+$/.test(a)||/^\S+\.go:\d+(?::\d+)?: /.test(a))&&s.push(B(a))}}for(let a of n){for(let l of r.get(a)){let u=l.trim();if(!u||/^goroutine \d+ \[/.test(u))continue;let c=/^(\/\S+\.go|\S+\.go):(\d+)(?: \+0x[0-9a-f]+)?$/.exec(u);if(c){wn(c[1])||(a.loc=Sn(a.body,`${c[1]}:${c[2]}`,a.loc));continue}/^(?:[\w.*/()-]+)\(.*\)$/.test(u)||/^created by /.test(u)||a.body.push({kind:"msg",text:u})}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:s,reported:null,counted:n.length}}var ui=/^(FAILED|ERROR) (\S+?\.py(?:::\S+)?)(?: - (.*))?$/;function ci(e,t){let n=[],r=null,s=!1,o=-1;for(let l of e){let u=l.trimEnd(),c=u.trim();if(/^-{3,} Captured .+ -{3,}$/.test(c)){s=!0;continue}if(s){c&&n.push({kind:"out",text:u});continue}if(/^E(?:\s|$)/.test(u)){u.slice(1).trim()&&n.push({kind:"msg",text:u});continue}let f=/^(\S+?\.py):(\d+):(?: (.*))?$/.exec(u);if(f){if(wn(f[1]))o>=0&&n.splice(o,1);else{let d=f[3]?.startsWith("in ")?` ${f[3]}`:"";r=Sn(n,`${f[1]}:${f[2]}${r===null?"":d}`,r)}o=-1;continue}/^>\s/.test(u)&&(o=n.length,n.push({kind:"source",text:c.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 fi(e,t){return t.push(B(e.replace(/ in [\d.]+s(?: \([\d:]+\))?$/,""))),(pt([e],/(\d+) failed/)??0)+(pt([e],/(\d+) errors?\b/)??0)}function hp(e){if(!e.some(y=>/^={3,} (?:FAILURES|ERRORS|short test summary info) ={3,}$/.test(y)||ui.test(y)))return null;let t=new Map,n=[],r=[],s="",o=null,i=null,a=null,l=/^(?:\d+ (?:failed|passed|errors?|skipped|xfailed|xpassed|deselected|warnings?)(?:, |\s|$))+(?:in [\d.]+s(?: \([\d:]+\))?)?$/,u=/\b\d+ (?:failed|passed|errors?|skipped|xfailed|xpassed|deselected|warnings?)\b|no tests ran/,c=/^(?:FAILURES|ERRORS|short test summary info|warnings summary|test session starts|PASSES)$/,f=-1;for(let y=e.length-1;y>=0&&f<0;y--){let m=/^={3,} (.+?) ={3,}$/.exec(e[y]);m&&!c.test(m[1])&&u.test(m[1])&&(f=y)}if(f<0){for(let y=e.length-1;y>=0;y--)if(e[y].trim()){l.test(e[y].trim())&&(f=y);break}}for(let[y,m]of e.entries()){let w=/^={3,} (.+?) ={3,}$/.exec(m);if(w){s=w[1],o=null,i=null,y===f&&(a=fi(s,r));continue}if(y===f&&l.test(m.trim())){a=fi(m.trim(),r);continue}if(/^!{3,} .+ !{3,}$/.test(m)){r.push(B(m.replace(/^!+ | !+$/g,"")));continue}let x=/^_{3,} (.+?) _{3,}$/.exec(m);if(x&&(s==="FAILURES"||s==="ERRORS")){o=[],t.set(x[1],o);continue}let C=ui.exec(m);if(C&&s!=="FAILURES"&&s!=="ERRORS"){o=null;let I={kind:C[1],id:C[2],msg:C[3]??null,inline:[]};n.push(I),i=I;continue}if(o){o.push(m);continue}i&&/^E(?:\s|$)/.test(m)?i.inline.push(m):i&&m.trim()&&(i=null)}let d=new Set,p=[],h=new Set;for(let y of n){if(h.has(y.id))continue;h.add(y.id);let[m,...w]=y.id.split("::"),x=w.join("."),C=[x,`ERROR collecting ${y.id}`,`ERROR at setup of ${x}`,`ERROR at teardown of ${x}`].find(J=>J&&t.has(J)&&!d.has(J));C&&d.add(C);let{body:I,loc:L}=ci(C?t.get(C):y.inline,y.msg),M=w.length?w.join("::"):"(collection)";p.push({file:m,name:y.kind==="ERROR"?`${M} [error]`:M,loc:L,body:I,exact:!0})}for(let[y,m]of t){if(d.has(y))continue;let{body:w,loc:x}=ci(m,null);p.push({file:x?x.replace(/:\d+$/,""):null,name:y,loc:x,body:w,exact:!0})}if(p.length===0)for(let y of e){let m=/^(\S+?)::(\S+) (FAILED|ERROR)\b/.exec(y);m&&p.push({file:m[1],name:m[3]==="ERROR"?`${m[2]} [error]`:m[2],loc:null,body:[]})}return{failures:p,summary:r,reported:a,counted:p.length}}var gp=12,yp=[pp,mp,hp,cp,up,fp,dp];function kp(e,t){return e.length===0?!1:e.every(n=>{let r=n.text.trim();if(!/^[-+]/.test(r))return!1;let s=r.slice(1).trim().replace(/,$/,"");return s.length>0&&t.includes(s)})}function bp(e,t,n){let r=pi[n],s=e.body.filter(p=>p.kind==="msg");if(!t)return[...e.body.filter(p=>p.kind==="source"),...s.slice(0,1)].map(p=>` ${p.text}`);let o=e.body.filter(p=>p.kind==="diff"),i=r.trimDiff&&kp(o,s.map(p=>p.text).join(`
68
- `)),a={msg:0,legend:0,diff:0,frame:0,code:0,source:0,out:0},l={msg:0,legend:0,diff:0,frame:0,code:0,source:0,out:0},u={msg:r.msg,legend:1/0,diff:r.diff,frame:e.exact?1/0:r.frames,code:0,source:1/0,out:r.out},c=r.changedOnly&&o.length>gp,f=[];for(let p of e.body){if((p.kind==="diff"||p.kind==="legend")&&i)continue;if(p.kind==="diff"&&c&&!/^[-+]/.test(p.text.trim())){l.diff+=1;continue}let h=p.kind==="legend"?"diff":p.kind;if(a[h]>=u[h]&&p.kind!=="legend"){l[h]+=1;continue}p.kind!=="legend"&&(a[h]+=1),f.push(p.kind==="frame"?` at ${p.text}`:` ${p.text}`)}let d=l.msg+l.diff+(n==="normal"?l.frame+l.out:0);return d>0&&f.push(` ${dt(d)}`),f}function _p(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 xp(e){if(!e.loc)return`\xD7 ${e.name}`;let t=!e.exact&&e.file&&e.loc.startsWith(`${e.file}:`)?e.loc.slice(e.file.length):e.loc;return`\xD7 ${e.name} ${t}`}function wp(e,t){let n=pi[t],r=new Map,s=e.failures.length>n.bulk,o=e.failures.map(u=>{let c=u.body.find(p=>p.kind==="msg")?.text??"",f=(r.get(c)??0)+1;r.set(c,f);let d=c===""||!s||f<=n.repeats;return{f:u,full:d,body:bp(u,d,t).join(`
69
- `)}}),i=[],a,l=null;for(let u=0;u<o.length;u++){let c=o[u];c.f.file!==a&&(a=c.f.file,a&&i.push(a));let f=u;if(!c.full&&c.f.loc===null)for(;f+1<o.length;){let p=o[f+1];if(p.full||p.f.loc!==null||p.f.file!==c.f.file||p.body!==c.body)break;f+=1}i.push(f>u?`\xD7 ${_p(o.slice(u,f+1).map(p=>p.f.name))}`:xp(c.f)),u=f;let d=o[u+1];d&&d.f.file===c.f.file&&d.body===c.body||c.body&&(c.body===l&&t!=="normal"?i.push(" \u2191 same error"):(i.push(c.body),l=c.body))}for(let u of e.summary)(!u.minor||t==="normal")&&i.push(u.text);return`${i.join(`
66
+ `),r=0;for(let s of n)if(s.trim()!==""){if(!tp.test(s))return null;r+=1}return r<2?null:`tsc: 0 errors, ${r} files${t?`
67
+ `:""}`}var pi=/^(?:(?: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|$)/,mi={normal:{msg:40,diff:60,frames:6,out:20,bulk:50,repeats:10,trimDiff:!1,changedOnly:!1},compact:{msg:12,diff:24,frames:2,out:5,bulk:20,repeats:2,trimDiff:!0,changedOnly:!1},minimal:{msg:6,diff:8,frames:0,out:0,bulk:10,repeats:1,trimDiff:!0,changedOnly:!0}},rp=/node_modules|^node:|^internal\/|site-packages|dist-packages|\/lib\/python\d|\/rustc\/|\.cargo\/registry|\.rustup\/|\/go\/src\/|\/go\/pkg\/mod\/|\/libexec\/src\/|<anonymous>/,sp=/^\s*at\s+(?:.*?\()?((?:file:\/\/)?[^\s()]+?):(\d+)(?::(\d+))?\)?\s*$/,op=/^\s*❯\s+(?:\S+\s+)?([^\s]+?):(\d+)(?::(\d+))?\s*$/,ip=/^\s*(>)?\s*(\d+)\s*\|/,ap=/^\s*\|\s*[\^~]+\s*$/,lp=/^(?:- Expected|\+ Received|- Snapshot|\+ expected - actual|\+ actual - expected|- expected \+ actual)(?:\s+[-+]\s*\d+)?$/;function pt(e,t){let n=null;for(let r of e){let s=t.exec(r);s&&(n=(n??0)+Number(s[1]))}return n}function wn(e){return rp.test(e)}function up(e){if(!/^file:\/\//i.test(e))return e;let t=e.replace(/^file:\/\/(?:localhost)?/i,"");try{t=decodeURIComponent(t)}catch{}return t.replace(/^\/([A-Za-z]:[\\/])/,"$1")}function Sn(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 Tr(e,t=()=>!1){let n=[],r=null,s=-1,o=!1;for(let f of e){let d=f.trimEnd(),p=d.trim();if(!p||ap.test(d)||/^─+$/.test(p))continue;if(t(p)){o=!0,n.push({kind:"out",text:p.replace(/\s*─+$/,"")});continue}if(o){n.push({kind:"out",text:p});continue}let g=sp.exec(d)??op.exec(d);if(g){s=-1;let m=up(g[1]);wn(m)||(r=Sn(n,`${m}:${g[2]}${g[3]?`:${g[3]}`:""}`,r));continue}let y=ip.exec(d);if(y){s=-1,n.push({kind:"code",text:p,num:Number(y[2]),pointed:y[1]===">"});continue}if(lp.test(p)){s=n.length,n.push({kind:"legend",text:p});continue}n.push(s>=0?{kind:"diff",text:d,segment:s}:{kind:"msg",text:p})}let i=n.some(f=>f.kind==="code"&&f.pointed),a=r?Number(/:(\d+)(?::\d+)?$/.exec(r)?.[1]):NaN,l=!1,u=n.filter(f=>{if(f.kind!=="code")return!0;let d=!l&&(i?f.pointed===!0:f.num===a);return d&&(l=!0),d}),c=new Map;for(let f of u){if(f.kind!=="diff")continue;let d=f.text.length-f.text.trimStart().length;c.set(f.segment,Math.min(c.get(f.segment)??d,d))}for(let f of u)f.kind==="diff"&&(f.text=f.text.slice(c.get(f.segment)??0)),f.kind==="code"&&(f.kind="source",f.text=f.text.replace(/^>\s*/,""));return{body:u,loc:r}}function B(e,t=!1){return{text:e.trim().replace(/\s{2,}/g," "),minor:t}}function cp(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=pt(e,/^\s*Tests\s+(\d+) failed/),n=[];for(let l of e)/^\s*Test Files\s{2,}\S/.test(l)?n.push(B(l,!0)):(/^\s*(?:Tests|Errors|Type Errors)\s{2,}\S/.test(l)||/^\s*ERROR: Coverage for \S.*threshold/.test(l))&&n.push(B(l));let r=[],s=0,o=[],i=[],a=()=>{if(o.length){let{body:l,loc:u}=Tr(i);for(let c of o)c.body=l,c.loc=u}o=[],i=[]};for(let l of e){let u=l.trim(),c=/^ ?FAIL\s+(\S.*?)\s*$/.exec(l);if(c){i.some(m=>m.trim())&&a();let d=c[1],p=/^(\S+) \[ \S+ \]$/.exec(d),g=d.split(" > "),y=p?{file:p[1],name:"(suite)",loc:null,body:[]}:g.length>1?{file:g[0],name:g.slice(1).join(" > "),loc:null,body:[]}:{file:null,name:d,loc:null,body:[]};p||(s+=1),r.push(y),o.push(y);continue}let f=/^⎯+ (Unhandled [A-Za-z ]+?) ⎯+$/.exec(u);if(f){a();let d={file:null,name:f[1],loc:null,body:[]};r.push(d),o.push(d);continue}if(/^⎯{3,}/.test(u)||/^(?:Test Files|Tests|Start at|Duration|Errors)\s{2,}/.test(u)){a();continue}o.length&&i.push(l)}if(a(),s===0){let l=null;for(let u of e){let c=/^\s*[❯✓×✗]\s+(\S+)\s+\(\d+ tests?\b/.exec(u);if(c){l=c[1];continue}let f=/^\s+[×✗]\s+(.+?)(?:\s+\d+(?:\.\d+)?m?s)?$/.exec(u);f&&(r.push({file:l,name:f[1],loc:null,body:[]}),s+=1)}}return{failures:r,summary:n,reported:t,counted:s}}function fp(e){if(!e.some(c=>/^\s{2}● (?!Console$)/.test(c))||!e.some(c=>/^Tests:\s/.test(c)||/^(?:FAIL|PASS)\s+\S/.test(c)))return null;let t=pt(e,/^Tests:\s+(\d+) failed/),n=[];for(let c of e)/^Test Suites:\s/.test(c)?n.push(B(c,!0)):(/^Tests:\s/.test(c)||/^Snapshots:\s/.test(c)&&/failed|obsolete/.test(c))&&n.push(B(c));let r=[],s=new Set,o=0,i=null,a=null,l=[],u=()=>{if(a){let c=`${a.file}\0${a.name}`;if(!s.has(c)){s.add(c);let{body:f,loc:d}=Tr(l);a.body=f,a.loc=d,r.push(a),a.name!=="Test suite failed to run"&&(o+=1)}}a=null,l=[]};for(let c of e){let f=/^(?:FAIL|PASS)\s+(\S+)/.exec(c);if(f){u(),i=f[1];continue}if(/^(?:Summary of all failing tests|Test Suites:|Tests:|Snapshots:|Time:|Ran all test suites)/.test(c)){u();continue}let d=/^\s{2}● (.+)$/.exec(c);if(d){u(),d[1].trim()!=="Console"&&(a={file:i,name:d[1].trim(),loc:null,body:[]});continue}a&&l.push(c)}return u(),{failures:r,summary:n,reported:t,counted:o}}function hi(e,t,n,r,s){let o=[],i=new Map,a=null;for(let l=t;l<n;l++){let u=e[l],c=/^\s{2}\d+\) (.+)$/.exec(u);if(c){let{name:f,used:d}=r(c[1],e.slice(l+1,Math.min(n,l+8)));l+=d,a=i.get(f)??null,a||(a=[],i.set(f,a),o.push({file:null,name:f,loc:null,body:[]}));continue}/^\s+Retry #\d+ ─*/.test(u)||a&&a.push(u)}for(let l of o){let{body:u,loc:c}=Tr(i.get(l.name),s);l.body=u,l.loc=c}return o}function dp(e){let t=e.findIndex(o=>/^\s*\d+ failing$/.test(o));if(t<0)return null;let n=Number(/(\d+)/.exec(e[t])[1]),r=e.filter(o=>/^\s*\d+ (?:passing|failing|pending)(?: \(\S+\))?$/.test(o)).map(o=>B(o.replace(/ \(\S+\)\s*$/,""))),s=hi(e,t+1,e.length,(o,i)=>{let a=[o.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:o.trim(),used:0}});return{failures:s,summary:r,reported:n,counted:s.length}}function pp(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,s=pt(e.slice(r),/^\s{2}(\d+) failed$/),o=e.slice(r).filter(a=>/^\s{2}\d+ (?:failed|flaky|passed|skipped|interrupted|did not run)(?: \(.+\))?$/.test(a)).map(a=>B(a.replace(/ \([\d.]+m?s\)\s*$/,""))),i=hi(e,t,r,a=>({name:a.replace(/\s*─+\s*$/,"").trim(),used:0}),a=>/^attachment #\d+:/.test(a));return{failures:i,summary:o,reported:s,counted:i.length}}function mp(e){if(!e.some(i=>/^test result: /.test(i))||!e.some(i=>/^---- .+ stdout ----$/.test(i)))return null;let t=pt(e,/^test result: FAILED\. \d+ passed; (\d+) failed/),n=[];for(let i of e)/^test result: FAILED/.test(i)?n.push(B(i.replace(/; finished in [\d.]+m?s\s*$/,""))):/^test result: ok/.test(i)?n.push(B(i.replace(/; finished in [\d.]+m?s\s*$/,""),!0)):/^error(?:\[\w+\])?: /.test(i)&&n.push(B(i));let r=[],s=null,o=[];for(let i of e){let a=/^---- (.+?) stdout ----$/.exec(i);if(a){s={f:{file:null,name:a[1],loc:null,body:[]},lines:[]},o.push(s),r.push(s.f);continue}if(/^failures:$|^test result: |^running \d+ tests?$/.test(i)){s=null;continue}s&&s.lines.push(i)}for(let{f:i,lines:a}of o){let l=!1,u=!1;for(let c of a){let f=c.trimEnd(),d=f.trim();if(!d)continue;let p=/^thread '.+?'(?: \(\d+\))? panicked at (?:'(.*)', )?(\S+?):(\d+):(\d+):?$/.exec(d);if(p){l=!0,i.loc??=`${p[2]}:${p[3]}:${p[4]}`,p[1]&&i.body.push({kind:"msg",text:p[1]});continue}if(!/^note: run with `RUST_BACKTRACE/.test(d)){if(/^stack backtrace:$/.test(d)){u=!0;continue}if(u){let g=/^at\s+(\S+?):(\d+):(\d+)$/.exec(d);g&&!wn(g[1])&&(i.loc=Sn(i.body,`${g[1]}:${g[2]}:${g[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 hp(e){if(!e.some(a=>/^\s*--- FAIL: \S/.test(a)))return null;let t=new Map,n=[],r=new Map,s=[],o=null,i=null;for(let a of e){let l=/^=== (?:RUN|CONT|PAUSE|NAME)\s+(\S+)/.exec(a);if(l){o=l[1],i=null;continue}let u=/^\s*--- FAIL: (\S+) \([\d.]+m?s\)/.exec(a);if(u){i={file:null,name:u[1],loc:null,body:[]},r.set(i,[...t.get(u[1])??[]]),n.push(i),o=null;continue}if(/^\s*--- (?:PASS|SKIP): /.test(a)){i=null,o=null;continue}let c=/^(FAIL|ok)\s+(\S+)(?:\s+(?:[\d.]+m?s|\(cached\)|\[[^\]]+\]))?/.exec(a);if(c&&/\t|\s{2,}|\[/.test(a)){s.push(B(a.replace(/\s+[\d.]+m?s\s*$/,""),c[1]==="ok")),i=null,o=null;continue}if(!/^(?:FAIL|PASS)$/.test(a.trim())){if(/^exit status \d+$/.test(a)){s.push(B(a,!0));continue}if(i)r.get(i).push(a);else if(o){let f=t.get(o)??[];f.push(a),t.set(o,f)}else(/^#\s\S+$/.test(a)||/^\S+\.go:\d+(?::\d+)?: /.test(a))&&s.push(B(a))}}for(let a of n){for(let l of r.get(a)){let u=l.trim();if(!u||/^goroutine \d+ \[/.test(u))continue;let c=/^(\/\S+\.go|\S+\.go):(\d+)(?: \+0x[0-9a-f]+)?$/.exec(u);if(c){wn(c[1])||(a.loc=Sn(a.body,`${c[1]}:${c[2]}`,a.loc));continue}/^(?:[\w.*/()-]+)\(.*\)$/.test(u)||/^created by /.test(u)||a.body.push({kind:"msg",text:u})}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:s,reported:null,counted:n.length}}var ci=/^(FAILED|ERROR) (\S+?\.py(?:::\S+)?)(?: - (.*))?$/;function fi(e,t){let n=[],r=null,s=!1,o=-1;for(let l of e){let u=l.trimEnd(),c=u.trim();if(/^-{3,} Captured .+ -{3,}$/.test(c)){s=!0;continue}if(s){c&&n.push({kind:"out",text:u});continue}if(/^E(?:\s|$)/.test(u)){u.slice(1).trim()&&n.push({kind:"msg",text:u});continue}let f=/^(\S+?\.py):(\d+):(?: (.*))?$/.exec(u);if(f){if(wn(f[1]))o>=0&&n.splice(o,1);else{let d=f[3]?.startsWith("in ")?` ${f[3]}`:"";r=Sn(n,`${f[1]}:${f[2]}${r===null?"":d}`,r)}o=-1;continue}/^>\s/.test(u)&&(o=n.length,n.push({kind:"source",text:c.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 di(e,t){return t.push(B(e.replace(/ in [\d.]+s(?: \([\d:]+\))?$/,""))),(pt([e],/(\d+) failed/)??0)+(pt([e],/(\d+) errors?\b/)??0)}function gp(e){if(!e.some(y=>/^={3,} (?:FAILURES|ERRORS|short test summary info) ={3,}$/.test(y)||ci.test(y)))return null;let t=new Map,n=[],r=[],s="",o=null,i=null,a=null,l=/^(?:\d+ (?:failed|passed|errors?|skipped|xfailed|xpassed|deselected|warnings?)(?:, |\s|$))+(?:in [\d.]+s(?: \([\d:]+\))?)?$/,u=/\b\d+ (?:failed|passed|errors?|skipped|xfailed|xpassed|deselected|warnings?)\b|no tests ran/,c=/^(?:FAILURES|ERRORS|short test summary info|warnings summary|test session starts|PASSES)$/,f=-1;for(let y=e.length-1;y>=0&&f<0;y--){let m=/^={3,} (.+?) ={3,}$/.exec(e[y]);m&&!c.test(m[1])&&u.test(m[1])&&(f=y)}if(f<0){for(let y=e.length-1;y>=0;y--)if(e[y].trim()){l.test(e[y].trim())&&(f=y);break}}for(let[y,m]of e.entries()){let _=/^={3,} (.+?) ={3,}$/.exec(m);if(_){s=_[1],o=null,i=null,y===f&&(a=di(s,r));continue}if(y===f&&l.test(m.trim())){a=di(m.trim(),r);continue}if(/^!{3,} .+ !{3,}$/.test(m)){r.push(B(m.replace(/^!+ | !+$/g,"")));continue}let w=/^_{3,} (.+?) _{3,}$/.exec(m);if(w&&(s==="FAILURES"||s==="ERRORS")){o=[],t.set(w[1],o);continue}let R=ci.exec(m);if(R&&s!=="FAILURES"&&s!=="ERRORS"){o=null;let I={kind:R[1],id:R[2],msg:R[3]??null,inline:[]};n.push(I),i=I;continue}if(o){o.push(m);continue}i&&/^E(?:\s|$)/.test(m)?i.inline.push(m):i&&m.trim()&&(i=null)}let d=new Set,p=[],g=new Set;for(let y of n){if(g.has(y.id))continue;g.add(y.id);let[m,..._]=y.id.split("::"),w=_.join("."),R=[w,`ERROR collecting ${y.id}`,`ERROR at setup of ${w}`,`ERROR at teardown of ${w}`].find(J=>J&&t.has(J)&&!d.has(J));R&&d.add(R);let{body:I,loc:L}=fi(R?t.get(R):y.inline,y.msg),M=_.length?_.join("::"):"(collection)";p.push({file:m,name:y.kind==="ERROR"?`${M} [error]`:M,loc:L,body:I,exact:!0})}for(let[y,m]of t){if(d.has(y))continue;let{body:_,loc:w}=fi(m,null);p.push({file:w?w.replace(/:\d+$/,""):null,name:y,loc:w,body:_,exact:!0})}if(p.length===0)for(let y of e){let m=/^(\S+?)::(\S+) (FAILED|ERROR)\b/.exec(y);m&&p.push({file:m[1],name:m[3]==="ERROR"?`${m[2]} [error]`:m[2],loc:null,body:[]})}return{failures:p,summary:r,reported:a,counted:p.length}}var yp=12,kp=[mp,hp,gp,fp,cp,dp,pp];function bp(e,t){return e.length===0?!1:e.every(n=>{let r=n.text.trim();if(!/^[-+]/.test(r))return!1;let s=r.slice(1).trim().replace(/,$/,"");return s.length>0&&t.includes(s)})}function _p(e,t,n){let r=mi[n],s=e.body.filter(p=>p.kind==="msg");if(!t)return[...e.body.filter(p=>p.kind==="source"),...s.slice(0,1)].map(p=>` ${p.text}`);let o=e.body.filter(p=>p.kind==="diff"),i=r.trimDiff&&bp(o,s.map(p=>p.text).join(`
68
+ `)),a={msg:0,legend:0,diff:0,frame:0,code:0,source:0,out:0},l={msg:0,legend:0,diff:0,frame:0,code:0,source:0,out:0},u={msg:r.msg,legend:1/0,diff:r.diff,frame:e.exact?1/0:r.frames,code:0,source:1/0,out:r.out},c=r.changedOnly&&o.length>yp,f=[];for(let p of e.body){if((p.kind==="diff"||p.kind==="legend")&&i)continue;if(p.kind==="diff"&&c&&!/^[-+]/.test(p.text.trim())){l.diff+=1;continue}let g=p.kind==="legend"?"diff":p.kind;if(a[g]>=u[g]&&p.kind!=="legend"){l[g]+=1;continue}p.kind!=="legend"&&(a[g]+=1),f.push(p.kind==="frame"?` at ${p.text}`:` ${p.text}`)}let d=l.msg+l.diff+(n==="normal"?l.frame+l.out:0);return d>0&&f.push(` ${dt(d)}`),f}function xp(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 wp(e){if(!e.loc)return`\xD7 ${e.name}`;let t=!e.exact&&e.file&&e.loc.startsWith(`${e.file}:`)?e.loc.slice(e.file.length):e.loc;return`\xD7 ${e.name} ${t}`}function Sp(e,t){let n=mi[t],r=new Map,s=e.failures.length>n.bulk,o=e.failures.map(u=>{let c=u.body.find(p=>p.kind==="msg")?.text??"",f=(r.get(c)??0)+1;r.set(c,f);let d=c===""||!s||f<=n.repeats;return{f:u,full:d,body:_p(u,d,t).join(`
69
+ `)}}),i=[],a,l=null;for(let u=0;u<o.length;u++){let c=o[u];c.f.file!==a&&(a=c.f.file,a&&i.push(a));let f=u;if(!c.full&&c.f.loc===null)for(;f+1<o.length;){let p=o[f+1];if(p.full||p.f.loc!==null||p.f.file!==c.f.file||p.body!==c.body)break;f+=1}i.push(f>u?`\xD7 ${xp(o.slice(u,f+1).map(p=>p.f.name))}`:wp(c.f)),u=f;let d=o[u+1];d&&d.f.file===c.f.file&&d.body===c.body||c.body&&(c.body===l&&t!=="normal"?i.push(" \u2191 same error"):(i.push(c.body),l=c.body))}for(let u of e.summary)(!u.minor||t==="normal")&&i.push(u.text);return`${i.join(`
70
70
  `)}
71
- `}function hi(e,t="normal"){let n=ce(e).split(`
72
- `).map(r=>{let s=r.endsWith("\r")?r.slice(0,-1):r;return s.includes("\r")?s.slice(s.lastIndexOf("\r")+1):s});for(let r of yp){let s=r(n);if(!(!s||s.failures.length===0))return s.counted===0||s.reported!==null&&s.counted<s.reported?null:wp(s,t)}return null}import{createCipheriv as cw,createDecipheriv as Sp,hkdfSync as vp,randomBytes as fw}from"node:crypto";var Ep=Buffer.from("tokmizer-bundle-enc-v1"),Tp=Buffer.from("rules-bundle");function Ap(e){return Buffer.from(vp("sha256",Buffer.from(e,"utf8"),Ep,Tp,32))}function vn(e,t){let n=Ap(t),r=Buffer.from(e,"base64url"),s=r.subarray(0,12),o=r.subarray(12,28),i=r.subarray(28),a=Sp("aes-256-gcm",n,s);return a.setAuthTag(o),Buffer.concat([a.update(i),a.final()]).toString("utf8")}import{createPublicKey as Gp,verify as Wp}from"node:crypto";import{join as Rp}from"node:path";import{mkdir as hw,readFile as $p,writeFile as gw,unlink as yw,rename as kw}from"node:fs/promises";var Cp="state.json";function Op(){try{let e=Intl.DateTimeFormat().resolvedOptions().timeZone;return e&&e.length>0?e:"Etc/UTC"}catch{return"Etc/UTC"}}function Ip(e){return e?.dir??A()}async function Ht(e){let t=Ip(e);try{let n=await $p(Rp(t,Cp),"utf8"),r=JSON.parse(n),s=r.timeZone;return{...r,lastSettingsRevision:r.lastSettingsRevision??0,get timeZone(){return s??=Op()},bonusActive:r.bonusActive??!1,...r.bonusResetAt!==void 0?{bonusResetAt:r.bonusResetAt}:{}}}catch{return null}}import{createRequire as Np}from"node:module";var Pp=Np(import.meta.url);function Dp(){let e="0.9.71";if(e)return e;for(let t of["../package.json","../../package.json"])try{let n=Pp(t).version;if(typeof n=="string"&&n)return n}catch{}return"0.0.0"}var zt=Dp();function gi(e,t){if(!e||!t)return!1;let n=e.split(".").map(s=>parseInt(s,10)),r=t.split(".").map(s=>parseInt(s,10));for(let s=0;s<3;s+=1){let o=n[s]??0,i=r[s]??0;if(Number.isNaN(o)||Number.isNaN(i))return!1;if(o<i)return!0;if(o>i)return!1}return!1}var yi=`-----BEGIN PUBLIC KEY-----
71
+ `}function gi(e,t="normal"){let n=ce(e).split(`
72
+ `).map(r=>{let s=r.endsWith("\r")?r.slice(0,-1):r;return s.includes("\r")?s.slice(s.lastIndexOf("\r")+1):s});for(let r of kp){let s=r(n);if(!(!s||s.failures.length===0))return s.counted===0||s.reported!==null&&s.counted<s.reported?null:Sp(s,t)}return null}import{createCipheriv as fw,createDecipheriv as vp,hkdfSync as Ep,randomBytes as dw}from"node:crypto";var Tp=Buffer.from("tokmizer-bundle-enc-v1"),Ap=Buffer.from("rules-bundle");function Rp(e){return Buffer.from(Ep("sha256",Buffer.from(e,"utf8"),Tp,Ap,32))}function vn(e,t){let n=Rp(t),r=Buffer.from(e,"base64url"),s=r.subarray(0,12),o=r.subarray(12,28),i=r.subarray(28),a=vp("aes-256-gcm",n,s);return a.setAuthTag(o),Buffer.concat([a.update(i),a.final()]).toString("utf8")}import{createPublicKey as Wp,verify as Vp}from"node:crypto";import{join as $p}from"node:path";import{mkdir as gw,readFile as Cp,writeFile as yw,unlink as kw,rename as bw}from"node:fs/promises";var Op="state.json";function Ip(){try{let e=Intl.DateTimeFormat().resolvedOptions().timeZone;return e&&e.length>0?e:"Etc/UTC"}catch{return"Etc/UTC"}}function Np(e){return e?.dir??A()}async function Ht(e){let t=Np(e);try{let n=await Cp($p(t,Op),"utf8"),r=JSON.parse(n),s=r.timeZone;return{...r,lastSettingsRevision:r.lastSettingsRevision??0,get timeZone(){return s??=Ip()},bonusActive:r.bonusActive??!1,...r.bonusResetAt!==void 0?{bonusResetAt:r.bonusResetAt}:{}}}catch{return null}}import{createRequire as Pp}from"node:module";var Dp=Pp(import.meta.url);function Lp(){let e="0.9.72";if(e)return e;for(let t of["../package.json","../../package.json"])try{let n=Dp(t).version;if(typeof n=="string"&&n)return n}catch{}return"0.0.0"}var zt=Lp();function yi(e,t){if(!e||!t)return!1;let n=e.split(".").map(s=>parseInt(s,10)),r=t.split(".").map(s=>parseInt(s,10));for(let s=0;s<3;s+=1){let o=n[s]??0,i=r[s]??0;if(Number.isNaN(o)||Number.isNaN(i))return!1;if(o<i)return!0;if(o>i)return!1}return!1}var ki=`-----BEGIN PUBLIC KEY-----
73
73
  MCowBQYDK2VwAyEAj/kMlXlhTIGHRKxOKMuGFa1S1ybxxwgdYcAE0YM9fgU=
74
74
  -----END PUBLIC KEY-----
75
- `;import{existsSync as Lp,mkdirSync as Ew,rmSync as Tw,writeFileSync as Aw}from"node:fs";import{join as Fp}from"node:path";var Mp=new Set(["0","off","false","no"]);var Cw=["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(`
76
- `);function jp(){return Fp(A(),"network-off")}function Hp(){let e=process.env.TOKMIZER_NETWORK;return e!==void 0&&Mp.has(e.trim().toLowerCase())}function Ar(){return Hp()?!1:!Lp(jp())}var Lw=300*1e3,Fw=120*1e3;function ki(){return yi.replace(/\\n/g,`
77
- `)}import{chmodSync as Hw,readFileSync as zp,writeFileSync as zw,mkdirSync as Uw,renameSync as Bw}from"node:fs";import{join as Up}from"node:path";var Bp=k.object({payload:k.string().min(1),signature:k.string().min(1),enc:k.literal("v1"),fetchedAt:k.number().int().nonnegative()});function Zp(){return Up(A(),"bundle-cache.json")}function bi(){try{let e=zp(Zp(),"utf8"),t=Bp.safeParse(JSON.parse(e));return t.success?t.data:null}catch{return null}}var Rr=k.object({bundleVersion:k.number().int().nonnegative(),signedAt:k.number().int(),filters:k.array(Ee)}),rS=k.object({payload:k.string().min(1),signature:k.string().min(1),enc:k.literal("v1")}),Vp=10080*60*1e3;function Kp(){let e=Number(process.env.TOKMIZER_MAX_BUNDLE_AGE_MS);return Number.isFinite(e)&&e>0?e:Vp}function qp(e,t){let n=ki();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=Gp({key:n,format:"pem"});if(!Wp(null,Buffer.from(e.payload,"utf8"),r,Buffer.from(e.signature,"base64url")))throw new Error("tkr-daemon: rules bundle signature invalid");return JSON.parse(vn(e.payload,t))}function Yp(e,t){let n=qp(e,t),r=Rr.parse(n);if(Date.now()-r.signedAt>Kp())throw new Error("tkr-daemon: rules bundle is stale");return $r(r,{signedAt:r.signedAt,fetchedAt:Date.now()})}function $r(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,s,o)=>ft(r,n.values(),o?new Set(o):null,n)}}async function _i(){try{let e=bi();if(!e)return null;let t=await Ht();return t?.signingSecret?Yp(e,t.signingSecret):null}catch{return null}}var Xp="tokmizer-default-rules-v1",Qp=/^[0-9a-f]{16}$/,Ut=null;function xi(){let e="qYBGsfHO175L8bEJXr085DKegk6epV3_PuzRunzT22TVGzM1nonFbXxazw9z8T4zGO25koitCgeOgR51vxcG9y69sB_sod6-Vi_VgyD0uD8O77JMI2r3gz65AJ5ZoGbJ9bAiwK_yF66RABZDO2EzXnntTp_p7xltlw92CMw1-phB0yfuRpOI4wUHIbpk1217Mjq2rjt8Fi6a6I8zqC73s691BNnTI1IKptoWtUUzysyRfGC7w1OyMD-DkviHvFzQsIF8fmneDHv6sseI0ZbrZx3ZXdiIhdkJBhocZfemi6G6HfyYZiq-u9i_gFLn7wW7mQvY9Sb5g6r98Ux-6JDqhZPM8xJw1sMsuBW9il9K5gvUfH1jIjTq3IXfkgG9PGK191b3ti9IsMN_Ep-GDnQdWPcmrcKXkJ2vdyHeRF7fFajOjxLEE61cj6raJeeUND1D2NZylX0D7TWJes_ZnT7O58j8lvfotqC90eyG-M8NlExi-k10nL0eqt_8j_joKMi1xjVOb4puEl48OFxD8HZ07mJlx0n8jEzxYa5Uxb2yvRHHTmIHf6IDC8pjZyz35CWDvpgv_YaHDDoYP4rXIaODJlLBVA-RTl9Ztli_XxjiemltiDixNYvZqeOSbPiRYhGBGUf0C1rcTdYLN40QemH5QxHOxT0vSiiXJMLBHwSPh2_zhbyTxIDK26PWZ1rknAfQJ_SN4SqO-xjyHt6YDojAxWsiRY6_A_mvFrQygRc0fSAJb0-pwXgxOINrMceyrpoUFNMKe2ZMMPaETtfsRce3Dug5yWoSCyGS-wpagZdgCZLzq7sAfYGhJbCwAJEf7rhJMIX5Y3KgaWKthK_ONEvQRTovH7B5Y5D_7fz3eMEglfEQpI_qXLn3-EmYeTnzFJ4raznZEh2jpjSofSRX-Wajs2KzwO4eEAK9g88bccR08ulehMYOMZGG0vkn6cpw-QYigSnBroTKtrWgSvfVJifF07y8MrejAx8xHO-wk6ubYUecJQ0mzRGS31SzZ4jU3a5OV77iwE13Imjt9qMqlbXk2q1umndjRkGu7UJDvtzPhBtX8AK1UVOdVpaNol8TRgGGt5PMinN7__uOYkFv8n95ET5y4JAmYVviwWhrcLfzx8ntvuyqWX-R4YPOPG6dJDj-2JAJ9oaER78iN-VTWD8ISc6CSyuC_UrQ6mAhb-m0fNvdRRIfYGyy3jxfFxFA8Qc2X1CuNAr6Dk3ulW8-XLYALV9KewR1h8i4hZEoiAYzzxvaHNGaJPT6cls7PDSVY1YQz36hRmf8pRI1yjaCMF9mYeCrB4D4b-zVDX_h29uIGLjwXzSj0phVRVMCRLHyKya2BdjsQGIT5nsZkUUdZZ0JaKMz_2HE88y5gYvsSx-Af7kNL0A-RHg4JWSMpWLh7WDBDBphme2U9ueOihxH48GgMqxqJ6A9KberYKe0WMAii8T-Z0BwSb4oQPxT7OnNrCcFxtcLgOhki3g8Q6d7jJieV_PyvRbMxSSEIwD_wlyGX0RUwIr1g9zvEtlEyCU8q81vW3XRAzRKbtATh7p3o_9MQyI6XjUhpmarO1F84yg6mhZqo1zalSsVi_5lA4uBOVhr3ylJaN2iCli-fTNQqvNWYiYVV_OyQ2dfoLgUptK2Xnb-oTNQee2RVbLFYaeAtxWEj1kPDgqX3_WTsf9hr8mheM_EmdZl-AaoRvwie4WhtuDWOUh_qKK0CIpv030ajBIXlN4WP1VYZb8yKHiYw0kgTcHjFBehH_paWNa4a5Zwtdc18JdQMbPGMwX1MHVwQFENzsfKT1kgSC9MNXTzorEywhsg8XUkHh-QlsxXwIRYvfHA9en7tuoFym1oSZ9rvI73piih3w44QuCdhHpCR8EUGe4XYh4CA6HrHPNbvblPomYLqsxPh210jnMPfkQsDamrJarAW332cb9fiWZQvHAV7R3RBSj-MNt1IGcI2I3DbPPeaIurhXw1i0nh2y9LxaMHCSFoQppyb54ni-6f94uAfOv2z6p-c5jW99VDHkKgFPsLxJgm2_CxS3fGj2Hx-TGsDpaVmJLz2GGw8rQpxtf4b2-mqvaTZ6043zVvJ-UL834uz0dUffUhknHSedvLFUfvHohLU0L6qAa_n7rBX8usn8PSVFaKgOfsOzr-V9St2S31DDMgyQrbf0mJnw0LbrOnQ7PnLWPQgtbyf0ayH3uYdidR0MSYHfFuxtgOIBgH2NxX4un-c4rcjxYRivtQs2KYIGRisUjJI2jF5kfnUGCcBzSV-p7Zw4aEIzq-J75NvycGXBoRQUc2l8M6Qk3DNOozy-wumBlJE_rViW7719RIeiYwXksvS7WnT14mfltLo5dJawW9eetP1Mx3Et2Llvbv6oIIJOXOAkVjmER3Z4BshCAxjTVdh9bVXJ-up2C-VPS-Cj9CovZ72zrzCf7mj6gi6ddTcp1ILTJkuG82Tmuw7u7iLOz93muxCCluTQUP7thLMTtJgRI4YraqU3uSqqeTBN7bSDl3Mc_QFvyoT209TKjr_kDK9ViSWdXBWg-LcXzJY6BaMH31SxCf50h1J5g8P3YNdvTRPZ4lsAo5b_tmQKOElu1EW9Te5o38LXOBA64e9cMCi-ec9wuyN-C99sMJmcMYrhzuZ8Blr6WyrhRzu15RvUTIopcInd_MXYOFuIVIK1oGp-shXz-geNLsLqauSw-vp4LJu04g5mV2x22KxVgyz6Tv68l21pdA2BezimZ0jcIOELwU8g0zi5XWj7nBQEXa8gXCFtaT4EpG4ocf-Fow5VRY8ssJ7pkKn8iDPTiRxkgHRnYP3DkVsOvpTs92irHHkPk2DYnlY32hI39NU_9yS9wmiChiCIrY3FQjvQ2yVUothbZFqY_XnCPH1HdUYl_Qv8SoswOv4g4UiQUvDO2HuPiaYuY0xfI_r-m6jmMKjKZFTdRI8KaTT-fKfjHSvKzKZjUWFlyYjf98G9NYSxYfvwERVAMtKKX4x3sDYSd7ht1731ZAsxtnz33LtWYD-Ya5wHX3V13uISgrhsYykKSaWdbVwKFy5nOtIFDp8Cjb402BKTYTYGMArpQJe0_Byn8UAOgl7Isqs0QcBMyciq4D4bOxb6d2083RI5xJqwMqcy_yuvNOyRtMUuNYeKMiKV9y_FgWR-vHZys0eOiceiw6Rv0umXTzB_lVxH98kGtA1mq1CQwj3QNQ6mSKz2YKdINm3P0sGnc_6VJ-eYsra5O3X8wlgZZ7GoaqShphSY1rG74WTIrak6Euxde6q9P6IUTt_Za-xDj_Nau5urCcNMujyzjY9X9SJPrKrZvmKrpeBycdLB-zu6AsAMprbwqF2frrK2ml_Mngo86GWHKQVNqjaM9Tjh6HV3brrTx0wUgcPmcTostwMv70bZmsuW1JW5lJaIhhnctD8Jck5wV7uI2zXOBEJsd_cG2HYQEvBKcClq4wWkM_Wjl1AtN85qvyw0gXuSFd44dpBS_7i3kDcy8FrESS0lpdpZorc8BJ-PpwDSS4Ki_tSv5XT-IAGPdsiUFCKzytAup4xFjDNbgaCE3ARnXZqhitaSn_E5T-I5D2FYc_2aB09m69Is8auGvCc3HDw-1rXDmMynTKrba98UkLhy1i-F7gqyT2g1Yv1WB3iQk8-HsxJEz7W-dnZN57kZpJdq0_I7VC9xHQ4TcWXm8B1TSdlzs1REJvLlWX33l6DDCxaNe3GI8FKgxs9pyXODj5pX5K1sUt-cxW-fUom0bMZoOhQnXNUnRJ19gXVmze8KwoSSW0T8ggALwrtjlie1Gdb5AFNIhcRsIpZmkuCmz9kNLrpoJRWki_SxzMxrUH5omK7IQjKghAwCr7INM0DwqeIuHAUgAxpZ7OTl_rRc0-KFW8A1UKmy2kw86rZA0IA4OYU9j8DOXqJrvCzT90-CtOJFfl1fxatXxm31s63C047i_i2S7GyfI12eZXOphMkBJ0fehI9RDcDjdNALPZYvu3d5OVEk4GhL1swBWBmZd3gPMMoOvhKysmNGK2cRZ0ijiaEyMFY-MTwNK8ZwOcCgJaDLwTOYOXR_C6sF1C62ZbM1KLGuLgg_ZO__3FYS8_E16UC-a6hjSG3CDTZGiCMPgnlsOo1o0QWmmJ-MsYKmrdGE9WzeiH5nNYeRwPchaXWrXpzQ7bNAbfDq0V8AcYlQDUFLCvdwsNzOIsNWjUTo6GLDHoDj4K5TaA7OkgUAmqhbR34iHkx4afM7ADSXrVgNEQxrerkr-5Wlupivpct1DF9cpsSRINyJ-JFwpcDKKnRRIeYuhqOo3AcCCjvLJj0iBjmbjC88Tw4VsGN97_pdNvUpjJPbBk4glUsXcs80YSBzvJBmWdncu8kZpZUHpEJifnr2jBKuKFn_ngs0uTqbvoU28ZxPafVfL1rsT5Z2PEOgC4hUASdMq3kztORIhH1W2V2GMGDngwYsSx6SXhwDq1_S7K6tyZLYVQjeLpDRuXoQQv1PnL34T7OHKfHSiGbr6wSbZolZA47dtmzv080eudAl7O1zsQy0XUmO_1ydkxJk6GHVk8Vmwl7u1eWySCz8PQGxdFS9QX97flJVfRp9o7NdcFMi9e9BjHZ-7aMtopIX6ZihDK46yZsNuxpgExQFBZP1wcaVchCz3NoQWkMz4q0BOK83-s4xxqeIF45nTbMZ3yVfjhArPNmITEydT-GJj8-oZb2HgdSbzvulLQ6BwRTRzLclCIFDPzAkY8nxPqs9YzWqR0OtQE5bzlnjmK1omvS5FrlsIuiYdnE2T1exnBUrxf_VE-gP4U6b_XCNxtGe8d1vxoA5tCfpe71ymcg9thW6AokAcZUhzflhMubrcDLzcA3L2yvJ-O2QRbXLce3yh0VjWsUrqCfX5VyyUOItcwnE5qWDfg541kbLiD11zDzB54qJCLLr4XLK9pTELm4xh2D1FaI0tqf95B6MqdrOMddPstLIkAK7-6zWX_H9njFKVOnsvmUnjIjDPzJ5-N5OHkVq8jcBx9Hs3o8PdhwPG5ChxVw4KL4FWVBopLn3pVIAKYKl32ALXXwVb3auSEeVyNRZUfBgGpfo43O7q-jeyu8Ip9teOpJETeGEQLq2oeHBKQrB64u9Wpe4jnVxTV2BCvijCJPTGcZA4jvN2_Y68Icd2UxTwJzeFyjjGWPOkDe6O7ado2ee89m0R44fMzZv91waSaLoqmx0dkOt3ZgA9wX7snPQ9G64HM5D6kqiqMX4TSB-BnI5sApklIte_qbQ1ZNt7jXqwWWamfDJgtLDJB1JAvyJKt5EVeGnMZr62PJRix-3SL9PlL_d_ysEJ7w5zg8wamqt4juyuflzv37_nvXHw9y43lXAbz3yjcTSJN-uZVft6Wj3Yfs0klh0-B-P-Mw7WAaLjLFSYaP87mKoUDI1h5eGj-aUcHsmOhjN8Wy9L4aoH3Z2ovs1VNlDwi1Ilfl0hTJxJoT5tj1pqYraCML_2RArDP4skiPl5c8zQjz3rirowvmZXFbzslJuxBYug_4xPlG59T0n5SOn43Bz7p1xA3P2itWy0M35vJ2jFbPpn7wqo3hevpN0v-2rp9v-6Ky03uDcv3biU50TlkJZmw6pmgicNO_Gg_uIN8VqEbgjDKOqDFGVXhTU5mfRm3oWVdbA1LlCXjN4ax5bq5U-mrtQ26sIi20XwmiKzEYp8dZpEyqpo2P8Off84jeIUqeSiQCcY2ouH-o3WrrpB05CU1lRx7PO6ZyHjZaHsez2qXqZqdMVvKWZm6usRKbOGbKDPk_DfEY2ri_20fS_t0Wwde2CcpGQTwPWGqMxwt7Jmd8LA7yNthTkyGnRvh-Hal7dI8mcGtcSG1pEEMF-xBR7qYa3rpICcc1Jhv7o8XDcEYNRGQsGI4TjxYXvisUrCNX4Sms4xq06H5AUC-sWlDLikLuhCA3xMofvSwA_seXeY92Gnn-tR43FQvoyAbbBvWDkqASUfdeQoqCHvXszCxWQG-3aA0Uzo7cclgstET9og9nSMcCz25l7fRJgGlkg2xHOFk3DxbphcSWPH3vKEZWY3NHqaUiE5rwzFR2sKcK-A6N8_3yRP-CcX7fvGnH7EvochfHyTPb7zSzF597PTc0Jyq-MIxu1-cg5LmhLaaS2L3K80QZ_wGOwg193ibDXwpIGrp6F3OsmG9P6SaJSc_INB8zsxZNQ96ERURjaR9KcZFKBkv0AcFQCZaIcSPYWtHPDkNQki0tqmxsQ7T6Ai2JdlwFgsyL9ss0r5jxwcOpVfYeWHa6Ceu6xmMQ8pVOEOxgGYG5KUYnMFLy7sqbMHHajjjL67Yyp_XVkrIDSoq7SU9ZIVrzg0Jiiv-LpkPJap_GYlJ6VHPaegBC_VkimVcTfkjwaXsU6ShMKzmF-ttbkLCzDZOUJdais_OK5HEcfKE-ydKycQ42vb9utsOfbueHJg3OLKk8RUb5tMaM5txKOP3WBeyBdd2qdA_Sba2jxZvYFHZk0zvpC6CJAf8vXzJaRXfZvXf8-od02RrdKEzjtCHYmbMM18Tng6d29PcDwV3Ke_NLbqYhjBCGtwB4UaUe_UubvwcOK2FagXHG64R9ZvCLWD8eD2sqS7n9xzxERjZth_14Hz39y3KyVbyI-4aU8A9zfTfXDrUOxQt9SgWGs9cQNfvRt3yNrZ7Hm86FV2Sebi4VTZS9zc2nYyRfvKvaxOW5Sd_SKRbXKwQ6WKJmRDg1k0152n8EvPDsBYPvue7Y9hwVVxN8H8fZro9FPUzhCbNGNHBQ1v9ZMMKHPqqCIm_sme_UyzahVbCn4opvA75lfCenT_aCUyrCJDmcJZCTQ_rLt35BeM8Cr4FLlZ1aZksOS0Q2qkWqkmsTjMYG3wxPk1LeBMPKjYngAW9CeCzkKKpDx349A9T2RESHzYZpmMerCLzif4cqX20SvtXuCMUOHNE6l8Xys0poYFJRdJGcxClt0TeivRcS34cHxUJ4k4dL9WbdOrKEjbygY6UU59tVxWsCdRi-eYpL0Cyk9OGVB83p--GagL10v1bLB5fzrshvzvGrVrElTT1cynBRcrBpD00Zrlx43rKDcWihvIkFFeBgT0wtjfgIs86g26aCEzzp77iOVWKhE2ET-G71tzb1vCYnww9S724szBFOUY-oCaE1siL4z5baLW2UI5xlUvS0oUOrEJP6CwLIfOHFh2e6m9_8CKuPyfHn8EkQmw3ZSR8ZCF9opT2YpkMR6jiGvFNYGZadBQ28F6gAJbSPMHp-aYcuLSNXZ5u8KTxvVKQmW6ZAtZnvh0Jipy1Go-THZjbkmtc8Oo-nn9zh_hQQJJcse_ZuSwCM_7louzMLeEbooFNB1QhWeUnu3wbWQcualbDFvcxqTWwug-XYXeExNG0bFoRZezfVJShfdFVx4BST4rk36jhF6luq7ZbNaTUycxFpfXS1AZW00ftyEBJvLzQDUyhobRjd3IDt3rlrKU98o9v1LgWhHr2jt8U0-I65SfuhbUB5GidPuysa6zTq90bEH8iL_vShmfRxZj-yHKGgPk56Wer-JhR37jWfsu-nyHx4q6AxVmQrJDGkCyltJzKN1u1RbVyl1H237EBibWPg2qE_OO3QNIbktjCrX9fWPddxpRRX_eeAg5nylumSszXe80R-WDd93K45Hy6w4h2zTzv5uiVhroIOY1_P8oRVpFjUoRIqisODA_b5wdpN9UxJZ3ISBPCwSkHTWjGiQy4sn11u2vTPv0two2Jypl_9OVtD7l1bBFftvJ6VjKwNpzWuryqNmib6zGfy6lP1FS2ABf1TVWjYt3Bka4xb6bgfYK65_dkjfFbfqtqqHUBXaP7Yb_MUEBxJ815O5KG5E3fiZuL4KhJUl0xYDdIVfjOmev0In8eCZRaywVQmTEjENtX9Tm8qHjwQFFR8dE-Jt3oc4jXg90xdUTZP4lt3fEOhWiYx0uyxOjAazEqYEOSZpCUQycqJCeTkF6b0zvsSCaKmcRp7lRVbEQOcBBDzfdu1Ak7EjI2UH1Z_Ly76yWUnQSGWp1Af94c79T60fuCw6SLbuDpEqVSRbPblVJOTHeJaehpsk4KsULwXUujJ_AG8UVjU3XOzg_9tw8LfSV_prgRMHXwbVKUI5pP6u5n157w-OvgYalOj1SHWpwrgYbq51Z7O57fZtLH0S_PRd7gsiwIsRbAjSc0Qhp4AYcGgb0nvPrAAMUDe1_2Wdnz4g92nS-D5GWRgJ_bSy8W-0RtnTPzOGCWy3R8L2zNzU1ATcrp5DOlS7ztCDrNnnXUU8YQ2iewZREtTdt0PWkKHBkR3ALke0VetbCVCn3uH--MFSgJuaHDgbfeH1DLnjdJPXMoioLshR1ur2pmUEqey1QIusuFFH7TZ6Awsc5RAw6YgQpevT6YQ6l7rO7pzfQxq2o7R29Y_ofAE6_eMA5uO6TpO03Xg65xvp4ocAawaqqEB82Oab3jnbNKO2Iqdq5uFKek1lsc2z3ZCgxR1KG_k-GMH7NzegjUw5UKJAnlyZkImQSLkdlS5qb32xGZ2jS92gPFI6N_UG7q_SkHo1rpGNI5xP4pFMB3z3J66EeaEAny7glnSgHZsC3wWedVaQsDxPrETqeED_EWfsKkDWMKPtCAlkF9yzwcw_t5l_mx2wf5dojFmTIqnLOwZI7Hv0Ievki2Pki8M7qu3kVSzqa6zAc5-mA1HxaOgBA0ZbmV2Du9CRkHj3X83yLsGdkOJLU37sgQYYzC6YBYdJAKUfZ5zfXi9CrfWat8aEqB49_iRV0fmAFQpbBe-jLPSuiwIZF9_1yMQI23mg-x-B8PPbGj5sGCQ_3u51dvSfYPspVm-SkDK-T8RjQeWxnSfLSAYNMunD4IaH0FALsKKqmWIpRBVp_XhZ2rqx37fuUe2IYIlcmb4dr5wjbjZc7Vnp5ekvevtXvkDD00sJ6ZfPpyXDKa3ML5TNlo82t7D9Ffn-yEAgONYcX4lj1-aBd5p4xUyvdcgyEarEw-ptdmPi_-d0k0sQDbANOPD-G99fM8-6vZLJFh6q9UnED6um1Ljlb8FGKemFwsA9FTIGxY1og5Caas7PjH9lfH0a8i0s2Ye9TCLaPBp4sgwe1U91qz0Zfs7W4jkU9gmMnq4K2V4X0J-6WSPAT5VNfTqwXMXCr_oXAK27UQNGu-Hx0XT6eEdMEpSyubL2vCprsUxgicRByMN7Gdufvn4CVAJRKGkFoPcFRKk_GdV5eFcthfLvA3PxYUD-SAjf-fA6QhFN_7xZxXlhYfM9l_9HxGz2RI3ufpv3_q_1g95hK1hR0UHz3UyvASeKXIVmk_xezUhHuVQNqLx72DvdrWZRK2Xlh2YD7OK44uYWgLRq_OT8H_YCGko_M-1xILeuI-LL1laEi0ud9ajbZuiAfXEebAkiZKWLWodf7rFgAog7WPMqW40YC-aQDrTq6Dkec9MP47PtYeJiPbi0qLwXM_gByGXok34ydmA7rwX-vSqInVSb_l2j2GqSzVcTqo-TqonMMUTtz2P4nBKZJqm5Mfw_MfED_Roj81BM0p0rgRK7ViOWk4U61bOQxOrYEsXmEWQhShyOxY2aQAIqDQ3789Gtx0r2Mwy22ezRPmRoTsijPWffhOiRoaQ2jCMdIRr4lRR2qJhzlbjO_8Dxtuo6o-ZRa0Opq1gN2PhaPkYhIDc7lfDrhM6xxnLF-DWSzWEVzQ6huoKCkFhn2-tLy1eeN6cCSb7D5qWNd_CGYTHWMy6IZPMMrGwbc2W0-NV2MSo1jDN1WKsnn5ssEtoISc3eYIo8_gLiOR-nmK45XOlq4WLZXwLy0xx5XKcfBYMcf7D9MDSJiJCkrNpbIHgqKP1D4MVTw3nZJ66qyxNzVi2wBlekLGHPPMzvbfO-yUiEJvOla6tgaTP9wzTrqXe2kT0oZE2uwb40ZNM4QXou2cS09-mjz3HGt59FQRShbphVrhW7kdX59EMSjjKT0zYuARL2eCRCn_IhsIn13huvHv4nr2NX9Pxhd_a1oI14-Fo3WrPBi-2sHnDtsychV2Bji6KPlIxu5SYh73PEcyac12mgTKkFfhPikwXTqTMv8TdkP4Xmsl5ZyWKSsQqUyErnP_XLqp45JNtYCtqHlAOm6z4NqJFMdCfe10-xQUdE5IuX6w4OHyz10FyiAyCAh7-ELkIXscJCvJy2MxU0H2OYvNbUNc4os0QjojBpkw0qgLAQRAQc5jeJoAQFSTu_ESSad63KqRXcZvbWAwblg_d_c3H05_GKeGhStJHZr8HKkoKTiCngt-WhmyydZmXKAsgNE0kyp9-sEQzBWNVE_U2pLPtO5AkHnKKhVoZtTKnz1lGlpZAgu6k5TICHKSpOpnrlS3yNNx9GTcVo_UIktQu0ZfpfM8673VYYFKISPSxrH0vBIzuK7PZIDLHIQEQlsLAK3NJf0kyT84cRHanP-YglYVUkWSob5dPam-bq7g_hQNMKCwI4NUjDFQgld0W9X3C_cpNJMcVRuWxW4uUnNbrJ07ri25hmrmIUa9grsEaYoIn0Y4ARjLd7JqOgBKd0KRaFqB7piK17DYg-VUk-dWdcbnQC2ObOfl39CBEzF0ri9byLVkbuqAK66aC_S8OFIf_rETxIicpFPSYyQZ5sJ90_PZnzU3IbWzmRHGbVM4aBiiudglArzza_R53TStqjS2cMpSjYKEOjaJVuCUph28IqNucvgQF1uqZsXGHza2qqyL95_dZ4wyoOuUUeYloId1VOpGP_QcGsw3uryb1HKiRrA7ibr1Y33OWzrfJ1qk8hTlWLD7tBG4fjidnHHCxmPW5y9pseUNeg9QKPr2jEkVftCrXni59anlzWTXI72vy5tUjZPaTeAqlGkapCFUQF6cKBSXNSDxVxsdt1KU7SiBs5fhtWma0VQjkTSbRTJR8Cv0Idp1nL87Zrzx2G1jCZSfVvV9ssnHJrMCZOuAUDOnHBAcU1uw9mSnAfY5jCU9Afcet_njWEQioeFcNTsDSJGqcpMrrnc2JmsviyNdo4lvqcxJruF83uBAAzQFvUt4VcoWk-w6t2hRlhYIRa6sVoakjjld8gQiN4yiwz4atqs7FAvhmqRRwioMYvbovQ1wC8smbnd3004x-K6ULrdaASB-Ea18lrUAi35HlTjhN0nRZYPZwKFonb6f6eQwFC8IuoIwfR-GdW2Tie2iEogyCXaw_gwsYK5bt5as9DLPheRRnMCwr6rmCBr10D4btwQdH2nwe0KdbdtxYSLycD2w26gJrHdq_ONoO9SosLEmO_Z1niXEAnDsLrpIWxBA66P6bE2aETh59mz-fDRf6o8kjYajDb246_7sE7c1fOzsQmXVs9AwRlIZlU8whqvvlXtgieTbrvz4MuzP1sqNIx0FYvxLxhn_HeJsuB20zJUBoSGBFAeXdbVk1xbDLQwYkhN0Fd5nUu-G4HffyZQxR-7EFiK_U3OFJxNVxyyinJWPM9lGHY1dkFHzb65OaIBpUMDNweJRVmoVLaCaINvuZxhrjK0wNb1aI0J74Deh4KHdybjk0pVyybXwNCYRssK3rbh8rqZXYfEnSaiDv42xjje73UJiPxpSnedm2C1IiSWCFjubDQ_6siuKkjxRVL8mDhqvXPdol6qaTxkKWSejKRRXiFkHMYYLPKJlWkwwTFbWaC8O1YWAclG_RiOKuN37D1OOrChzbZZX2nwxYXrn1Kz5LIdihQsOHVHGSuMbsOWTk_cFLzQ3owVr79zGtg1sFusQFkgBT7s54Usznk3eDt_RdSjkezTc_8O4cVgy54sYBjzvry0g8ykXuTn5N8CYzzBQ0tHJnhDKTBgS918Mpd9gKIsDKYQnb6lboxaTVrZVw7BpNcffUBqUUEJsf9jVATY8AMRREet088nMZ6-SpKW3qR-W6E1gPGW_UFMtZv-ov_5iQKQbPeWktaF5mEQInMviS6U5yLRPnfP9EdzlorILOykIjYDWMxEq-BK_paAj1jnz_QtVhV_Z0q-S_g3EiS88PXWrX4z2BxxbqhgqWP4J9DI3c7w6gyHxO7U5unPN4wFRPTfi2NgpKNHKrpZ-4K3dl6SljF672EWZLEPWohvjtChdze_ET4ShRz02dibXg-ojQUZx4i2AO8W8dQC_hB1Z08ML1qOIQE5NeUcqoRquc9EtySgZmq15baDRK5EUs3GGB0zF5HWfH77g4NARfhNPD_GyQa-lPSaiT8v_Pe3GhO3tq-r6E2-KfGYmrjKN29i8EbBBucHxF4wQ0M0GtfimFVAtLN6kil3pMYXOkdhIcM23z_qNnVJGB3VPp7VjxiZDlLKsRhGINcnFl27wUmnJdDAHTYY1kwRxenoTq4QDg5k3ywZfiz8ZJHG4ZVuvAOIX6_Hb3ZuIgUycQpWsnU4WxDhcuU8XNaJkgph427NefVBky40k_qQezOYa2mS3WUVC3y18QBbYH_qZYY0gnDlkiA2fC2qODL5D_gIIfiZtQrLqmdfj2Qjl-HSqhVNK_hSsXket-4FfWWyWJDFu8HRO94YoH9Z2HFfrTvSEQfyrU5-MSwaKDDPFY4goJW9aorHhnmNvXSEb3xn4Lr2TiF9lP2J80tKfJ5dEXTZcGCYujSn8aati8UluhhMxxdda9leSXQA5kqUsX--DC7TOft2a4-vruQeEMpNNZsmQDgi3940oah0WHFsdo932B5X_VLWX16AdvmISBAk3-jZYVAhEYJK1PHLS9IhDDkYN4Ch_HbrypQ-oVfjms62la3YRxJS4E9vM7UvVPz4DGQSlmKpsJ-HLat9Dt_w5w3xeRGGLT-bnXOyJOMPREm7UCxW4dipGa5uDjw8CWKsayZRkPh7OchtCplFr6Lpv_L8YqOHjT0NoHD5wC75-4IOWLtXFvseYbbuBRJkoBFKnDkoGpiyKq6S7_L1VLcMexhzsLKthK-d5a48Fa5Q6KrNLZKHpJx1_uEYmkdn05x_zDrC2K_sEsrscQZZi33I2OEaSh4HeVGdYUzJ061P3TXEkgOs90ns2c7J-K-bnaVUqyO-2R2YS5ca8Y9bn2LyHMKmrvb9MAZlMFOspET9w8URKq41wBbdMJ0bCNMA3xMP_zoqsSyLq2D8-Qq_EjK9tF2Os7Df4FmtGW8iwMTw1E5r1PvuaNpbfySJ-_x-iKpc0wqy1PnAclI7qSfRX12uz8KTad_7bPE5awhlEf8ZqErd6gyH3MIvrxbovJPIiq9YSFw3-zYCn6UPqqHFSELaZI1kahQOZjBQrkNxvF5zllCDWTG8OXJ5osWabSRLQrv4eUChb-qiI-rPZ-b45juXqX8AhO_tdCnPZqOrCc9Gd7IR09Lw0dfToyp58zgsnv05es-qhJ36WvJmj2oF59bXddMgJqywcKWh-BxMIAuZxPdJfDhkXL88uTl_n4wqrVGShrFt_W2SaMrKguUoulIp0qhK2zltefXoei1BXn1wZiqDol_cHLLvZytwznutaJoYIboLfu4L0mnqA1pOxo6ZeTTiWCfn1nM3S0ObCMQ5My1tHVCxQ2hxRCDbMYTIK7jejhSj5Fl5L39iRWlId7UKnymY6hDw1eO48jKUg8HZAtPoLgGYbzK3W31fLYrTtn9DSO9DDOAZ_uvfErrmXPPl0TWgroOxcbxz_9FXd1bA-CgyflxLsJniP3ELQAK2MV7UFKChg9Lf2_M13B7m2WTBAfHmxiocV5tyWkpGUONXe5gyx8vF0jwK5mkxbhCHMy61tFCD9RH_OY4ws01gNJ2kc4AoozGnOBaPrr9zYTnOZJY7q7OCFZaRjS_8wrOriXGh-g7ACNRreWYGFKvskPYO54Zc6T1A4n3IjtLgC7R3DIj3tfw7SsV6MFlgpi0-6urWS-HsrsQom9HUKcqnYocvhfiXjsBkI976J8a9vHZ-cgn47Uw8Q8NcbUoIEbh6S8ezgvDueqDoEFofHVKaPoxSn1OgqyuQVB4OKuW2s0djAXpCXeIPbhqKueLBGObxnFIas4oh3OhhR63cv2-Tvtojyv3gZUWTfC7H9JRJzrC_Jg3grVdiqHrg0mq6PcojJ3x5MQKxlOYw8DgQcKdk_eLcyPSwmGkRM5NIBpMZ1MUXHxRlpvMGLw9EcDpxKAdxiE9SlhDps_o68kzJa8knEY0caIEJ7MpgzaVYjiH9CD8crTzlKsvBO9lNBxIvmekNajgGW75rPD-9oKGS9i5zSWf0nWCvMnsIG8Oi6Y5jDSocblrICA5V-sT4jhFEadV3TXlM30ifb6RlWrq371pwyeqvLn6IIfQ1U_It1yq7GXP5AmKLN-tEYoZrGGKKkkv1lX1LoSKTCivLUWIsA3CNVbtJCKD00igfzrTe6dEhaaCxOWsdnOgGfdbR7gXh7U_U_7dT5ondOyeSQCqMqw_r_6NdBUn1mssNIIWKFLcHOwfmTq7hOyJfPZ-bu0gEHJ8a6tobe_j9zdKxF18b_4d0HPedbgtJW3WZcH6wHOOYi_olI0xlxyw04kVIPoQTmEMJltXt4HdqZFj_P95qrBiZABNm-B-dmAoTg55AkwTVoEr_FEiO0mAu2s9UOzFC0kzN224Iq2AVSEbxpoPNZoSfD78Oz0dXEICT66ux2GVirYwl9twemfQHGqCBmWy8pH33cFIhzrZqK6S4kfCcB9JaHnXsi68zA2grlS9MOOhqPjRFXJXjodi2WXZpGQFF3LDYyEtocUhNGPArWzabkD-69hSGrdHsSw9AhVZNfnnhf3f-VCCmHzR6kCGq7bfV4N5kRQ06wh6mRwejU5pZ-rU_JFX6JfENloyDXGaAi2cldIJCOB0GnKL_94ycKaem3OptVEAfhDu-h94pDGaGPPu-h-dzzPbn-8oYqkw-7f60rIn_bcD6xSTthGsScya5qM-4-rytxdpFtT5sGhpq10l9-qo3CL61QTzMEe2ZowiUnxpad0jQzltUJZgtn62YHOnXWuHFS1X5eM9HKfmaelZ-1PiJgq-T_EcYxmQgyTgQC0jjeHtFKA_ZVEPYxJvx498kI3feByEbBJiJJzniqEVrUEtzZIeonXmHjBwdJRq4RyqYS9D7w5m3q3QcWevTXTKb_gmj6wYWc3QfuNloXYAh65YENPybRH4W1UpdaIYLQdT17Or1q9ZMGoTO3PfB5jnJ2LKSgXdlNB0CtBkkeXdxp17bJTgT5lOIxDb3QeFuVfLh2q3JTqEOZEIdp3nY4rsnPtkQyQKCCvWDDqlGdBcQKzKD716E1EqoeR8v4jmYpBuSTp3sKV8Xx1oKKKWPzbwVu2voDkviL2PX-hWPG7Jbl0MkvFhmWNAMP2kb96sXfpnXEN3O1m6DJUM0UqSZLkOVFXeDJUgjOo1EskYyMJrlyX_y1Lvxt7fQHkKCNvAFfADiQU1N2xu8qyJhF9PLfrV_0UYMs3BroXeYstlwccNpNb2fJDdNUtLzZMH1kxvRdw0MaBaTU44KxpKyGaGVjAaNDtA5HGDWpyBa_-wFS3CdAAvxUvcr-jdqR318fGZMvaltdPFDLA-zw2CdDDyc--NfVOoXkZVeeN3ekDKeBmNj3Vltz2zzZ9voNFcNWr5fy81f_cHfTJsXd63RbkjvHBqFqMPUWLXr5ZjQkeypc4K4qXw1ECi_4FlQ9dI3zUS93KftZVKm-mRt9EvoUrvmHjsEuRbz15_nnu7tkRSsKzbwMkTi0Dm2SfCH7AmR-ZvpWHUF9--HsMfg5V7qqY2m2YsZX3FohduRVla0KzNXaYV8Hbmvs0aymjrcqegct-QnakI2LNqncurIIgORXYx-1dcjMpwhZEOIi5RHr7rZok7YqH84iP4irF6O8Uo3VAsLQ9t1-t1T8rbp-nzeZpxx_O0x1H9opv-Ua7Me0dal77TPQAvDlx2AX2pvDhyWXbNQVl0rMXBQ9yXDzpyVhJuI8rvnDRcZVY_zqAY8P8BsDKy6Rwg4j_Oe6EJ7jJeb220IPDuA3-BVgQF6iP_BvRJstKH2JNXn8uNcBzfYzXh-d1PeBSLdvMZPpv7TTETiYb4uiU7-JMCZfD95l3G1PdnIOxId5sABICBTN5c4yDO8aWW_67mgbonmDR4GOFdmvl0iUCopBelc1HYWckgImsrGe5gC0PBMP-uN01LEK_7CCNjRt5Ujls-VrRClMbrMQFHWtILatIlEjd2vy5FLjdorNVupQhQYtKWtqitTlD8hgwn3_hGURQi3tbOn__fOaIPR43hWIqK9VvuAhihvCTd125mgdV5jf8plOUUzP6ekya2xqn3ICXVuotxRh29BOs5lq-LHsXTMNHftw4U9d6Z6scBF5lPsNeZnJZ5yQCUlRBTa4XoYb5XMA3nYYv7QWQFwv6w16vI0Gzemv-3IEaL0c4gZ-2WgOfcFUlmu76uMqvuWzbsy4srvIzU4173kdHjeEZrwmOh_yeIGHNwBE26ADG3V3zTKnISLtVPFBg8F4R8_8Z85dMN0ca6xAA0wnqVCdA21NSmALznucRPjksich5_0hPnRSXyYkZYoyvevKiHKTBD0Bg26t4Dm6gVEs9G69qfcSDeOXSGNjak7geFkZvsfj7vBO3SH6XbvgIkjdQYwBmP7Ckk_GON9DlsZ7rZVhJhXptG5XDC1ZoBt_204SqTXShcwRSDdrnWjb5eVnpGlmtgMCFCl8Co6vui5aG2bLEnbQRvnX-Biz-mkX5vMU0QTJlc0Pin0n5Ey2nt8zgk2xPlwPMtL56NNrnjLF2bKWXZgRwJER1ccMNHid-iD4y2L0AFqBDLj-TGajxxv9t_FNn6Pi37LgDRBEefBMHK8UMmmlvFqnrDzEidOIHMkMX_FMqKabbGC4uMwEstiQ1lJ8jAhzXovIkgy26bsra3gd4z2O5MU_8-lOU60GkyX_LvWE72qxv3CyNsdVclW9dpnndYZWdfoNFfxQYeUCtfks_o6-CSoBlLSHiIKKwGaI4S4uTy9Y4kwUdDu0xYPs_kDKEhZ2mvI6e2sIfXstwHxBUnUZaFG2-SeLOx7ylqlHEELDQeSDUJjWtf5-BqrFt9GuEIUr3N2g8gq4YEatWT580cJGiYRdjnWKbPYlJ77bL1ahRuaO4SSG3eO8hSHldB4QqNt6eWEGjBJ7dpy073mkT-Ct5tVs_Olrv61YNQPcKNN5iTQyFgVEWVi1eTubxXik4h_DEfIT9Q4c01H_AQ5dqOCG_i6ugCjZfGvQL2VELMi0LerpZ0mLRSwhwV1HDyp1UTO76Hn8wwTrmazbbbADsaAreqO0iiHaHrR_nvPAgJcIHXMYxUGKBKn2D55PghPltXdXvgg4p_tXjLkW_5uJKnnE4SAwNXXuuA40pMXck76KN14HtHWqh4TAYKj-8J13lLdI-oYYJuG7JUP0JKseBkMYvLpl5ZY5Agg914T9d6ViWyeQ_5s1zgcloCRuPfYp9_o2_pYkIniBm2YfF7asI5younYm9lpYaolLFiXvY8K6ygLu7ngGv3d5wtSBjtG0ZKdFtWjHeT9_i6r1m57wRaUfp_rPf8cldjU49Qko-4WhGUNxj9O2CWE_JvUfxf4ZJoHmX4Ppc7K7KdzXuqAMEZhFsl8r5c4CLSumt82RAPj_4BsIF83AMrEvRZ-jBAQI4z-t6wrQtV6kYjUMEXIhtpJEkj1S9Hh4mXATUtAgng1fU5Z_7nmN-v6fEkgicSvhUpuSjAbICnYTbw7gtj8pY0-MqKZs37rQg8Z9t19Ndpfd19jS8GVBn8fZJb7p08v9Yfekz10Fn0LfJsVHrowiOhOeRy6rVkB-gzZQYDcL1NEpkl8BNim4RD0ZN2trOwStXQXn10pqNjORT3WD3fSIb7c4RS2vPo4fscoUSZFLl-UcJ7T11PjwAdfKnPRASmkAxqDLNZaFxEojNYVG7Wci_mh0KgdvrFSQF3lKBDpM1V_-2pzIjSMmRaApl7lgzJ9wx9238alCTHDmP16BzVFGXCoJULl4lPLgQc1zMclMALzg7o3ryvTnXwBeX1-9y6VDC0Kg-oXokMllxMuII9LdPxRQRHV70yGYxkYhlAIK7O8zL2bqGU8UIjzaIEn_7DS5dY9jqpN_zY64fBcym0_X7e2S548ulUXc8HgeUWg-rc8BGsH_isfCA_Qlkfii9-6xxLcM6dMCPi7pLic-ftJeTTDl44CpM6J19g5uy0lB-vs3qn0OlWrg78VK209DemlMldnMpVKLnr5AwX4dluhtQvupKD29wTEh0RqVQErAOOd1Jgks1YELu37H3dR3AmCjLjETlZ9zeXF8-Nb1KAPR-7R4QDQ9YxHhePXN7Uq4B5WNYOfSv-adGvIMzGcP2oz55xLiVlqZVek-5XDnEDnzY-WrZQUUqmui-Z1fPao1OiCsnGpfNYE6Tisade5QhOBp7pWd3Dhezyy1OG44zWLbJed2Nnz-RmcXRxQG-1_3MFg1QI4Rxn8knvXhvjADZyJCqRwlgC7Lbs_vwmShmn8r26Ytb1TkrHArSBYksvGy6QdHui9bMWMa4g79ouTbtuFI76FkY8V7WAw-Q_ZC6Vkv_BhO2-WJNY4hpUfYcY3PH_ctpm3PwabxyNhTt0eqG98m9aWSSz5O9BlUxcK00uLIDQKR5qZB37CCGu2m1y4QRBKdcm60wDZe6rrjd_vI6VvwblEKFSXX6uVWCwT0qt7Orcuq9WdGwV3hXJvHRKuPw5JpHEiXSLwpMrBh86ieutQvWZln92Ri8NXbURFByJuirHa67-ty8cwqTHLQyMAPYIRzzQU-o1oAil5APzyBc25A8vlyZsqiGXHDZ-cWjnH1CqVuH8yRB9kykh-e_kXnhP-SIEoTBR5oCd1Z8Oj1qibJneH_on18lQHowkJ7qNuVt7Th7vw6TW917GKnPgVluMTSt3uLimZphx_ZQ-zAibT82fu4YjyRzCanfSwepMYq59CO1SksrfGVtEvSXfK_IVtQVqNbH0S_t-LQuNcnkhVZQERqfb_SY2cgx_ZyWSXC7idoBUwUR5PMg2nf5i-zApyGWRotf9uzwSv4ZCn94WeREe4H4EY-6lE8DoMkGe6zxQYQT2Dp5nAqzeNqFiYYLIQwD5Cp4cjd8-ONIOJGxiDzcyxONkaz-0FgSzn1cYamLkkfYrCZMi7mHLqIT-SSF-nS__Q-TzAFmpvuslIrj6ve8DlCVimW1soSidX6lVclSvv2pQ1XOpYNeIKvSx_oqmoEx1wNrp2e3dngJtiZwofsDvj0FZjcbknQa_JCj2uWlzeBQ6IYF0ubxL-cL4wdYvoP92uQZg6c6KUlSXWGmQjSunPKJmehz6XRyIPpNXzpiW8fhh5O_I3RRUP0xcKeKSGcvxvqPAiZ_NM7nnsPG8V1ugzdiDwTjdIiRe7Vajvn39dqy2L7L9PDjaQXwFi_fRdzBpSH9tN_kXZ0__f1P5gsNt90FrJphFrmZHlai33rCFQ07W06mIz1yJQvptvD6oqNt-Ex53i6Sr2y9wDqYRQs7q5geFQpg54FAzyoW7t-wrqyPZvkzUPCJpdVtwLPgNOra1GU-7IN5FuXR_pIhxtmlebJX_BNVxupI5aCw6Gw94JvBWRrHBAAbtPMyNqtGOl9xbz20aqzyrKCecmgiCZuZuE2MjsoL3a3yR3PMeQjehjwYUCTpfyC4t3_PoXUW4nIjCLll6CFizgo4rzvGmAy9dMw6pNQ1_hksrz3x7FvYPZNWvVRCIrfqGPxPmW47H1vUIgU_YIN_YqT8fIToc_40Q11tgOhq4kIxSl-yxJLg6G-Mz9U2qSYuJCJ0HXf8nJo5y4_DvFRPWQJkwyvXTs-5hFRtMU67EQ7ZcWvDJLXK2VQfgCTqiH-kodSp6GU5ztC5O6P1HNQ4VXLyYnGJYZ00HeNj0OridkPt2BrqMOF-nDsCQdSfj6fJOFuhD4YqKW03KCoC7iZ7PZEysyagZAMnspEJnBifcBBq1G4-XlwJMauGKaovSQxuxH0oUvkQdp1vNiJaP7VIVP9DtAf88ge-r560wpx-a0QES7sWQVqmX-ushEsX_FFQecN7AosE0Fjjq5EdCOViM-EG0lQ4M7ToXjSWtIu1wvDElxQAM5mvbTZv9RHtIsiMeODv2auo0viqLhT_ksGc_LfurESXgLRijOCoZEdX3ISsP0ifvu9qbaAxqG8I5QOdcMqdS07acNT0RUBiw9Ca1S-eBxeBGWoiLq4GdLfqH6lpYbR9M-I3X7r1HaHZaxGRZ9_2zODFFngEvVKuv6mNmwohY2En3wUBarIm9Yv5QYHzHJI9wmlRsvyxl6ldqE4V-UkSkGa0fOvBzX_StChM5UMWRswfBeEExjqlWsz-BrrZUj9nK4UQXnA9aQjnBnXNj_qWi5fquKm7KuCoT8qhWx1bOCZzj5T0aWNldSErnrHcVByPWkSPFEpA2trn0ixaP4GI6cH4V9G4eDTvCDDFpZJbLl-mDfgox42gCHDwFrYsLfVhQ9MyLQY0aj9AcRUMvq4oh9iRnvBKkot7YnWMVgPNG66j32w1Wv4bV-anDvRAlFSRnoFviYdGTdSfee1BDjRiB-tpwRtgtD14_duB4vcNpSMa62EZMlQGYbxBL2UKkW3kBvapHxk1sJ3z-LCtrx2vdBPgwpIueIWCZA8B1uQ6M4apZMbm3A6ZAAgIkuFBXKFxZf8Zi4NtCYHuo53-8g3Ei_RPwy10aYPf4OtPZy0P_u6yteLLWRHlindLYDcAjcTCApFJwFb98mR5sifcv-1gS96M0kbepzYa62a7ehoj9GYYX5awGru2lqkUZ0jvMJQA6P1BDtNxL_ERXrdByI6Vd1iBKH947i4mXNAbEO9u7_objlwuJAgw4DvG9jMa8obWfh5d6C0vu5Qd9b9FhenaG-11vh1i8id1XD9aoPpEkswttzsBf7x3FAdwox9lbZ-7q7hgXy54Q6jNYTDwhrTcf9yQQnTm9iTbLg7riMf9JW-2ykP4fnE9vROtstk6iWJTHxi0uGQ9tyKivAFniXoh8wFXv__5S6k_Hb1jEAVCP2OML033yXbaGIp4pwIRPcmKXyQ9_5AqZCd0BnOoKRVE7TwYq0IktPGFdxPNM8sTXDrE7fOxT4uYDMfr3kZUzphzBMyexcD2UVo-9hZlteL642clGrqWpFo286kuywOJz7OGir9puunk3U8DTAa4L6QxeKFF3hwVy6XnmlxAG1GEuG1bRpZ52CJMA6xCCbmfQe9Y4mfohd3thbO-2gHkBAora5xaiJE17NiBX7aaao31hGNWQO5omkivQWHUitoMbA0XwXiXLQXKXi47O8_RfOYIx6onmrKlgraMEb97t7Gx2D2H-q1E1cRbnw3DNCgsiPdmPrq8wu79FmnnEDG4gXFpd9Rq-wiQdKhCZFUajK4V-hxukBLvlILtzwJK27Pa6JmyLdEUqg-HIycIXHIkDSWRnddYQNPFIECDm7UZdbQI_h9ipqFv6Kgq0ausRX8JBFYtlo3EMygI-B07UhFqG_Zqf0_gg7z-pAo448bspHH4VDyg5VQJySLo7YjIFdTqkAFIq6F5XQ07-a-1bGoBXfRMCt4oM5Mvs8BMOcz4QQ8Vxez8KnFlqg-Zj9dVfq-r_PTOXT7uZE72toJSWvD56LhTIPAN-kYWNsC5hJaPcETcj5aoP-HVQf7gdicINfhZPleunoXQRN-0xfzEBRCyxide5JfTi7Ngzhhk9b7eZnCf7jNwHR7_reHc9ik9Lk1T8oAzKPvS07y7WfXH0F0g9LDumUwR3Jd1OuTFezlZYPLZfbo0LBgQ_OJvjja37OpuagPaWkx7o0NKZkcENoLsTsUWp3cPX5zWnazb8FD2TR8-u1NnDYi6BNsPZz0trVIhsnQK0ZAld5i8ZwiFQGf0cRNDU9DXH6iCtAGaOFColLwr2EwhhDM4bVyeKMG1tmbopL6tO0tKl3YOMbu_itw2rMJITjtIMW-tlYKucXQpPpnyiiZ5ueQgoYPnLBdYULmf_RjJSggmK8HRCG-EBkUrtjrd1-E9wC-O1ZCs2DPz1eIbewcCAJQn-I7Md28lpGkcfIcaU0inS8yckGr4gIdDGjFa0G4vacsfh_cPX5u3yjuOxUnK-VCPvI4gGHqTlT5Fwy9yCX18AhVsfnfeRedIHx3gTS-xM8GQu0T-2uojybwr5uGLRR-ffehI-Htcb3ay97mXcKzYnaxutzsQ8XnkAdSubucGIyu6egLqlvhOkTasbqgS6NM5Tm9hsZJxnD17SiKKv3MVtL0-T0894j0BQcol3Z70dZVS-39aCoCE5W7BEZ41v4kCEBfgxaTBWmE3jfijvVwferUjI5ZHL5w3XRpodzH0oTZTLv08grRyTAiLiO1xUa0QS05FIuQcqWer_TZuL_YkG5VpVorzbr-l3rTjVGODcLm-DRWwE1OCzTspZ2uKLsH5YSw23-ANQRFYWt6dD9ybxVDbk6uJdMUMOFNULMBGxOQeuwffekK5BnoemdWH4dNQTlllRVWXkQ8HiUMVWK0k4sfOPxkLDt_SICJ862Va7jrmW7B8KhGle3EA9YPEVTUwc5Y5bA6QyunzUCRBehDnh8KJMK4JNXPs21ziCH0S_dyGCbleUwRo5P057DBvnx_gGIKsyZ8nzOqBySptsspECY6wgTpG-LzEIJ9rkimOXTsI4Fa66HCcK7dN0te12CNh_E3nzOTeULQGTfbY3iIAq05hYkRk5m4muL9hCM34L6LdPt59d_hUfgt4dZn2cFfa-TTfNcHY1POK7D3w8FG95OA0rBpBYVZlmaizfsQr8Q5akDoYCXkFA060qcpPrLRpOH_jDaNAGiFi5RS0A-hgz2nN3ZMsc3eVaqDBtMtmFcAhoV5lcA_zWDrsOA8TyDLNB1kr8G-1e1RtuCorfeGRxPRFYeW-XyIhTIliL-zHaAytSeMr-ogLWnBuoZCY6YB-s-8--ShhWeGuclIZeukAD9RELYCoIqODByvcLNxqdvrnxy3PQSvMDLHr3jHPm9PdFsREEHdoh3dKFQ-mCZvDYSjor5-0zKAPzuD2cAERd9Swi9AryxVRX_ElVsXHN45yslsscoXYBUwaBfR02PsG94zKbo6-UdHQxo1e71dSlwJ89mq2OMGVTXS0QQqRRJvhaFaI0KkU7-UQcw97G-xBmtIe5B_GuQqwvDqwEjbGG3puejeWTNdkFNlQLnNFYOzS5y4yPEohKBFUs1mRxBHOGmqHdd6wwAkpnhjieyWUU1Fydc2jM0MSYFx1dgXNDursQj3XC50HQ0vkudz5t8ZDlNFCdaOI2zZoqDaTnknPlC3qRiBxlrXeGHGuRmKsAAPgl2wt7Um7Xn4TjTqCwoQEbW72814Q2u7H_OlaZIIrTJN3ncEXOk5XItfD0SSISVdxumQSAcxvVI_q_JmApslwQ03Rf2frma8E9T9Ti6C8jq0WUF8cucBpiJKahE2X4kVXnN4xuMNkozi3Fb1Zbs4tEgVxDW21AVuLiyw4rlXk4w2fSACE6Kgce4AGNcMJKhpgSw6X8tQ-bubF2UGVOL0CDsM-tPyUzatvk9-Pqv_Vy_AbCzzr8mkodVjd_oENJgTgJ1eoAyhSVbsTu0me9OAVYmC5tGExiHGHaI8Cubbq-ZI_2YWs0MXnDL9EF12lkRg26ztubThjJo3eZ3FKX1MFVFyIwVmWEv6EfQot9cP1G4YZeBvjDH-xI1Mti8-Ra6hKvvPTsoC22hDaIXCrHAokJhEky-foPXpdJl8sheDZdhjY4bU75GhuUHUJgxqLKUrlUBLkBVShQnCPd4KfdkQumnCM05UdeA8vyc_9KL-nqHSUoEfJUYO-ygM2sUUZJ0xtEK9kG1P9OtulSuc4c7TTuswxVbCeAN2Dh4Un2By8bcUMYWyLA03ADDoSLjG-_KGjWe1Pvr5XPGVPVLGFIeYwAqS8M-9WtqRpxoRbmBrulekykeYlg6ZIhKXI_HSJMHCHNffGoAUgDMT772ySvlE3xJe3MKF5XEnIwrYJzsXwmK1MUWJDT9y9gDThnA9jzUasUskiFhYQP7odspNesud3c0an3psJyk6n4vGL9nayfEF4QtUkg7kFAKB7BhavZo7G6J8eVTBVKkK1-fpulprn6A27j_vteEzdk48W3co5Le3YRd2Ekyf8YeQZIEap30702Yi86hYDtxDde5wtMdxlHZccczP_QHPoYP3gba_BhKxUMjGtX6zxaxYW8O8b9Qc50Oemlj1zMcrqEeWnaZQ1Ig9ZZgzQ8WgOgj-l7k0B9Nb2O7edks0vs9822JLc8qTp8cYWu6RrznEH4fZss9u4jakmXf-D5URPRO9mdmEoWAAeGS8wbcBj4AXYhRkf20-a7x72cFCdm5mk7mVURjt8F5kFdPkLvqjvOOtTI8B2xEs1kl4jIFTQxlwDkS4Q3ENmVVWXgGSTrKHWe6RHgphTwvZCXTLSr-ySb7dCUpP-FaLYGpziCwUTQD8oK7boB2iGp3tvRii8NecKtIwPpzvewsmC49vYUABtEyfUpNVKFEf9WmQaEzqMMoI9yiaaPwawNSc1bEzWqa0D8PgUpRtMqzhnURJULaAgOaeOATg7GAhiq7Lwg5KvEDBWpZZtG0_NymHODEib0QmHMSVaNpkAypruJUXBjXD870rlKw7BxFU_J028EQRo1vOmjgvPmAqOYnNXMZ2H_LFyfSMMmpna0ml1wqagi0aD4v5wxvbNXK5PoE0pTDby7GN_58qE1cvxtO3uYwGJFtqhh5f74YWnRDfK1w07d5q1jFPZ27tBy-JLR0ereWwybIx9m7ZqhbXL9dF3AkCx5VjN22KMteCvD6AcUMKJr_Ij7c9rSmrP7aHVZnIUypH8nFes3-cNCle-PJZQU3HqRhNWcPLPajARUBFDt9xkXz7Fp3Cfe1W4DyT6wj450GBGNW8hMtiHHyAQekNUkksmRgKAMwY3C3FHaASJOXRoM4POj2vmcX9VuOMsHIV7M2Aoam052eKOuqZ85z7NLhI2ev_vzaBnddtGWZ2Vw17STlC2DuMQ0NTO5k-vB95lF0ub5gfz3PV9VeZnjwibFm1VSPt0fVrT_Bviq6MnpU97yPTHYL2W4s3Pb68O7do3VhkDNUxATO1lecCI4ah1eGqoqGcTDP4vJtR7ZlzZe5dJvb6KMBScMpYFX85qZjl02xh2nlV68937RsyxIsws527tFv_NExCxPsQJMd7tcOIkw6_m3SHQ3RxIj2RPitMyLqYb3jXmX_DbFN5Ib6XlgOaqRaxJyHBDKCTf3Crlar7oP_t4NPAnQ-geDOUWEcr3IwBL0bfpQEDgw18CFv0T1rU4rgbCGeE9lQvz576xqeqcIPBIw3qM4GqT6Bv-mzu_vgdFqWAlqZ7l11cbpiZFKjS0UgsmZNiFs3Xh8T333NZWG-WU5ShgBDzpKeT87ksz6QgPW3C1_q3fekN1LndVYawl5wLpfqfNBa162rGc_-DDFS-HWQd0UoWftdP7Mg1f8pnIZl2YfWDLRd3oCgijUBywA_d9xa2Hrfs25WZUx22DbcRRRdDrf7PzGKD9zvX61o2xhmBkSpGj1s3I6HP0AaBukqtcrP1B26cXroGzHM9iE9u48EQ2jCUfEquLi2SeiRh4U2AlICsACT_D9MW36GLMHnB518nYgOUeqApduI3duXYB9q7Fwg-vekhS6U7yrZp1JYpT_DAH9p2vQAAGU3P_diG1tnIvxIDfmJa1o0cyVpdfXgYc0CEb8SiUUeqPCeeC9qgWozHd0X7ukvrLT4HGGr5yXt4wn4G4TnTFYkY0no00Te-vFy1S6JxNhVFw2GKQPcnBXDrLEXger5G5fMBoYo-lzccvBO9qfgiYbSDDVAw4YtlK71ySoA19idEeYmXt6vvDBDQ-7RQA_uoOED4tIAKPYti37_fGlmsb-_VjX2ey_x152Ud0U0wz8sVoEt01YFWmHGfKI5_xRAuFzWra_qtvo6_DqyOwDwmLra6GuGrnHyse6tfrSd6sfEnyWECJ_NCRDK6Ch6Fyc-52UqN7tn92O--056YjahzkKZbkZ9V32SChlyZ3MfonslJCFMfZa7HKu0KWzzwy_fGKa6qzA1e2XYH2YXPb3bmupAk8WsRu9nwIVmPQejB9MNuShUbK-UvBACkCzSLLYfYA8a7th_B6jD3kXzY-25pYm5OnkJ6mgDWEh2cKdy1eVfsYMsAJbazgrzbdqOzTmq0NEY5hpFAL1jqIKuF0DyDsfQ_iPCTUcNEGMitWOUhBbR6pHiAOcgLe9e_4vln9wp8NS2i5r17eNWQWtW2BytRWxJczZu9eENTAHssRpvck3vaJH-WRwj43ONHoJdMrtqjAnex6Hr3m6ppROWVUGD9WWmqwFtzi7WyoOtfwxzhhvI3VIDKJA3jEOjaGi44bcKlvNc1Jx8DNZgyk0jOny1F5LG-fsmNx3lDFbzpI871P6FyvUDCeZzjGdR4H_U5dJAfN3BqYFK2ov2DuwDEr5NAY2LwjBUFGyoAwZwIj-oqacapmckyakqVRFlqT8Nesbq-ABGLlzDNqVYB_UaeZBzwbU13BdyM1VcblQqOuCp4njptNeWZji77U92zF26cRfzImBMqz-1j5SmwESnttyKwm9EuWH2h1Bz2yQEj4M44ekoBPCIw1vI7INjskOsP7nJtoOQEjG12icIHraagQvTv3lhg2TZQWXFrV3OeQENbyQ_PZd37p8vqzzqkn0D7qL9M8716JjIwBaHxMZUiJXzfjE9PuVIGdqTSbMoK--vB8mQJR7Q4mnivLUXNAj_MrqNlmrLii_uilj_fDDqrO7N7sHs0lvN6g6_kvDak6M_u269tLoYV0iIl-k-0ZQKhWN9BXZPffd1FuFlUGyMzoIVfrlwJnI2VlbpffLjyqVM1vCoA96qO5RqFcFBDxBBj0KsXiW3nBGMFP_BxKEVxi4OceG1kDNV_CtsbHkaSzHQxaMHOm_Vjg18BnKDj-nWEVE23EUTPP4C-1uClJicPiwxvutRezNSjFulYBVqtyH0yQVLZF5fQMRgZjyzxnwikr7sfX3j1QzjCDO021irrAbHEo1uZoJ_6PyeNT3Rjcqlhaa-z0vr8OO5k_tyJ5jCGdhKEyok7nhJBDZChhSONMP6_4GsPGCdTA-Y_z4FzzEB82q9fBbrZUBvhuTLy3TykiOBsZHZb34-plBlonHK0yLTJbsVw_WQBLBi_V0T7bzaVdTfEuju9VrRTjzix7UP2l4rvRLKtKZnqbT5wG-Lrl3lwoRavvM959PXzjPSI1xyDVx0pepn0EJQN9Oawv99zvZ2y-VEJoyyi6O8KNEyQ7yLr-S-4hcJaI-LNI-N-yIGnWjGpCxBpn8KWY8V6VaAJf7OT3EAUzG-mMikYDbBzx_ZsSTe7zDCbGocyEOW8n92_KTXxWqbNOR6aWeLo8R5Ci8H3uBCRcaENBQwzTTwpYZDrqJwXbT2tgo7KI8RstCbgMgNxhzOLFLbiouULRT9wI9s5lt_cRZjX9-WSvIXA5lFRguBg9Eyw8BO3E-G2JxV5CKQX3bAevvALh6OrlJzPdGZ252L-UK5wchaVRMSbihL7TzYe5QWQu-lx7RY_QECBZVf5wEz0vWtUy6RaXN_o7MbAKfOVrJEeXw-U4z9D-kq_SdjWsBNBfmfelz8N5uX5hVQFNcDeMvrp8ZEkbMQClxg8UclBqyAEjKjLoYdgCBTbYVQxgQESFXLgk_diAKsQCEIt50gVR6EEKFTsk81wWJ30KvzWgCcQC-LPWsLmB36nDqqqhe_Aa8FugnQp8OPkhdSyxlgbNvaFKo6xOI24QhY2x5L9K1-jHJMa0WTpeYiGH5SsYspv2kLuO1bDCqgko0_5L71lHKOk30Zr8LER1zKxgymC89LC7kc8ovdoagMYfUX9ORva1xilK-Icl-XlUNjYk4tjo1Dkx8-yvXb3ljWb_Yy_P-YqQA69iiTEMb-TJpjJG5_UT0a2Y6tIwtTsP0FDLETerrniyjKaInxgVWQ3R0_XRxPi7TfszCI26mJZZsIbSFf1lVE3RGu3qhuiqgxDPu6UJIhF1y8geybezKkYOE4vnUiV65Kdx69Vt3PyBGarZColLe-a8K6RgEO9zF6tNTBBcieaBEEbq0deWeLgBbnzgr1d438ELRRkPg0Bt86cI_yEBlbd2IEd1vBUAqbl-hw5ye9M5GPzVEznSedpovq8ZnefPtgHtya9wwHZWCEqWmJ_9b0y4Zqhqu2Zg_iZbggz9IDZf67cf4nds8U2K7_yGoBZwlIFRfgdJ8oUMYtyXfkh2LR3PnpzkxiB1jNrdZRNRMqBxQxQ5w1ycEQEZLZ7QHxaueTrFgs_u6Bfouk_PNcqzF2rVHrbR0M4TzQwpPD4JByQODegl_Bcmz8CMfA_lcVZEGWjuAP9h70WNW9AN36Oi1aMq0viRXCHUIJxJp16jsU_a5dRC8BPd4ii1_fE-SjNNJ5vJqRPP06UvfBaN3tZlpG7v38lLqItXG5HLXiP29Q9H9zGd_20zy2C3SP5pzbiuHH8uxvzmDJGRXBT1Qt_F2xlm0DEsmNCWZYbDP_mYkRoYqJHESpMh7AqI1l2jihW8GiokHYyOVDrYG_ynJNbqyWc9kBJKzD3BmhKEnCA7KZgCwQj85S1ZqR2BapPdfsXiJIJfgfl6SCMmRjPg4iXcg7jlFrnGwUMKlj02lqBGhliXJsOGmDiez_qVy0FNDPZEt2J_D-6UdZs1ThBQsCWGsQlfQCzY0W5-xfYaH77BAO2q2NUr-DhfPm-OW2o3bLo8V9u1ZqydmFfgwEWZlMskRI4DvQW9bIa8Ta_tNgGuJtsClw63Nmy8AG7j4ZuzlomXNdUNI-8MQ-ztRT-IB9p0ePUGqVWcB6zfbZSkzT3Nkgwuo6TII62nNGwRweVzKuYFuOoGWeZ3WbzD9F3VfYFNQ84vaMmcgMO9IrnpknXqSCIaRDqVOIQSKkAoq48RZSoQ4GNdfLkGCvrfssLcPrT8IieCm-qCdgK0FUtZdIOX2Uzc9SuzDcordk3AwzVqO-9u9BVgsX4EmaCNNxCVewFqhS2mnyG8HAxx53_m4bPFPHWGVYVdEkzIBE4YwHzWvmU_BMOVaD2MbDLmN_VIjVr-P7YAwdnv9edx-Xb3pqDLI-zYV6mxn-jRtF13TioMBmF6u9YdMOEQ92x2htIKgju0JxwCPNW5Lbk-u4PyWX3Dvt5NVfBXtjd7PlK132Rx8d5sdYs0Igiomw3CSa7T3dtXXGgVKz1aqOvRL-82U54dfi8LHhLnsDJhWpHL0xRZJraJ5BNUO8zGGlD-loMe49GeX8ls0_CcVgtxFAniCtKENOhKEB85N5T8YZW8Xyvaqbqi5zPm1SEzFz7yZwrM1Bg1_W0ipbx82aaspI3uCzkXs8XG-iPSTbZkzlgZqhpy30ZPJfnjb3Qduhu8yMKojvtDtBd0dKLuilCaJwSI9DbBQfpTVxvrWeNMXGfP6bi_SiNFYp76tiF8lNdU3hffce-5XCnsZKhKN8mJkBRXjI1gZ4hLDxB4GTXWV1K6XkJZT5t0h24W4zOgHEpz7RFuNEtfw6uj2CoOZ3suMbJWKopoVy-ogikXL00vBS1OMTe-gwOv3XXmaXXHn0DbGWr-A2XbL6rB1tr3QYzGS_tgZSv8PG-x3LMyW7L9WYVDGPtMIUKcVNgLiTf496ztqVRxeqVga1TVk81bYjtX_ZweVLVFLA4NuvG55jeJ5ZxEnkvTABm9nTOlDhVdCK-wmtOq-rNQPgIjmWlWzquMHPr6NqgNYf1UaRe9a0hpnprklQ65q8IVuKUrSj7UfNpLF-d8DOSijyyCrhUhXs6rfCCXGuawOY3VYmFBnCTfkEtqX7IvQ9RkOsAFEvuM2B7ryoM5-4SszPlPtHyGPrEeoOk6zX-4Rokbvc78Fwo2AGF0ycfTvyVL3wVbLCghbFQS3d22zsItKAsF2FnAV0VJnp3AXB9tiiLtnRTBmx2WZ2jQLiiejqC3aBdMwW7pgtpxd4okjql3zE4VbDkrRV5Lo3fRhXvTPB_ExikgpyW6mISWz5JRdLxec8fYtp_1aHLeEDsDdfLNetuWBF6G0FHCjfoicZKPVwpPGpj1Rkonku3cJxCn7NWLNHk_AtWfRwGKEDG7wKl7hNpBG4OiepHYGjnRJ3uThFma3eQhXegdbNxf6gKQfkHCsScRLNyWLJnE7N6flOUWosz4A0jlXiDaw33U8hGSr5zSf8BtRqwp6b2-QhTK5R5CHWOw5DgCGt4mmK7S_za5vWfRTphxO1kw61GJ_XrgU9Y3c2NgUIRIfiWFRWmxVOYxxCSp9vFXovlknzvtE6x0yU-_iPOX2Q_p5THgUrvnxy-A9Ig_l1MVmzCkMXgE21XAXpFJU-iZS7Knvqlah1rfiN2zQJh5b9Dy1rU95cgxapLoEv0xkh7k5PlwG35sDa_CZFVuvqhwYsCOlXYb9CFu0eWgCzBEZY37hTopNKnOaqLmHVaHOS_xUA5_qlLF2QSNlby7yezJuFXEZUS1VCe9OdymEL_mc7uYFJY-0bTz_TaWA_m25EDwLm-7eJasZVzXCN0Fs3LNQW-6R7Eqoy-OfKWDr3tBFgLe7zGsgsthY2aGEjK3jVyh0YbUsnx7pTDoz2Ptqr57qrqbmTnPJoxWTUE87x-XAfPlOXR9zJh3sQw80_OUOR49QJyu2DmFuX53Hh9J0fxMdTugQSdHONm0ZdgQo27DM7h7nd2U4Deg_S7cF2Mh8cn7BuaEY-WWrN1gfYx2XM0c4ran8UuURC-Id_N_JI2IkvrPS1n7N0uEvUfCu0b1TvKdymgM_SnCbb5qlQ1atAH-kDR4cZfKXbMtkMUmuFBaDrAqXqgXIdieYTZ015JBnEYKkSmfHnvlvL0JkkU8MnyOoD6C0PHBtfkvz0xZ-kAqNKqV5LbGMyRpPtbwxqZlHOojGHLYKgsMklzsuDYeDYVBIVoWA17Me8iZTK3IsJSmtFXopESuFHe4__puYfz1Jyum-_GQkF0vFtFLBS_6kOqKYvIixajzc9iFKpS2yVMAgoysXyVa_lPET2XIkRqvdTt2UM2GvbSazeCPHb7gB552Ha0Ovt27VeBDFYOulNpAaU6V9qZOhpQsD3Sva43ibE5kjICj0z2LkrwB60wU8ZWDJhnqTHdTcLDFcChcoMGXtLRxaZQUf2dnu0XZdVvxNqAKqJcywu1hioekR2xjhLssVsudFM35CKZy2K9RDeOQSGPQTkpLjyn-TxpHvr3GwxpIm_qmooFfchqPWDSxSHec1eYLpkpemQw4PVwrxYC4RDuFGFyDQCuRikcOkKi4jYZMIpfKCkLkkIetoqZq8YLaKubt6yTb18BOw9Ot-YIV8dEgHR_riPxZBw_6b5iC_hvVir29PDjlKsraLDODj4H4wjnPPNh4IhPGhiJHERhx87gsFLTZcVYXTHLRXIP7ut2RNnivRJkX0bBaSxD_1sWVkJlBcI5ZujAVLlMb4NepKo3_Qci1xyjMD0CtM9wZrvyUTjsEIlbVvrH7v6wXn1PUQg0W768WKFRuDP55RIkg2GtGrgIFJpLW8jdtbfLHzmad1TqHaDA6jRXiv2ptYXYdemoEqeAfM9W2Qdw5epqDgX_qTbMFwdP_zoVYy27cLemp3j4HwSFDb86zYM8wx4Xk7l7SZP6ej0qcLK6D72d1bAXWiyUw_RYbom24sb75I0PgJhggnIBy_brdn-_8Fwxdmy4tQ8NVAaR7yjnIfIXilh-v1K_lIPTQ911k5-bFxlChF3Ue2dsdmsSTSwHeMH35O8R8ZmjXupe9yfKGuLH-SRcfRMVFl_WcAH5mI_nG4pMrm0AIguN54zIwLX1Vl9Vz0Cso9VLvWLzWXeXwhtcnrfnXGkyXTbz-suMg70-7nvIJ__ExDeZesM98OqQQHKpD9IBCCWn1O-DWaszVvFB3hXYoZK7x2Jk1FrL8p-nR736j0oUJzYTsI7f7gwg1qIEGYbzj2iCM0E4wZb5wRVxxEdMW8yCwTZ_Q9GoEd1in8huq6MSAZk8k6dEvKKojVlpnk9Tcz4dxwz15hMRkRHsgbnS5Om_5vKc2JO3KLSf6THRAwDmSa0RrAfr83f7SfHpLWkwkaappIPW3v1Rd32Pg0DuxD6WO5xQuYcmbr9cQM8H0wL0KXQ5hUK-e3VxdG3HdYcYatjdjuZZ-R8G_vT5BkFcaVdQgI3bmbn70YkyzI24djXwfbgRkCboFSCFdhr1Odd2Ivtd9sbBtjOLmIIagXRuU3WdLGJ1JAG13VuwopQABx5oe5dmtYC-RUhz4fYDjmGay_Hz8GHwjaEMxmqbfqpyhyIWR8xlLgVXbwRdKZxBQu8UrndnZObNZIIN0gGkbixCJk-TTwZdOaQmazdnzkDRWpxzqHLfCzGNm97rair0cfp1d6nYe8xnEm17RmL9IlMkHdfImxpWr1XjcO0bgjsUfuxFcrr0cTIW8vrh3H9HxBYnnBht7_oj_oSOLouqNrwmACDyXXlIHl8pqSRlzLsIRUMTFlmes75SyfwDTk0cu6uZYv2NWNRO01TFdWqzrH6ZTW8zn1FGDqu6jnDcoPP_uyfpy1sKS6CJpeMi0U5-PAaOpNIB7miSWH11JOVPohBMEGL5fF-qwMacPjeKLdc0x99zS_jvQ3rlBMr8D0i4TPE5pFQN7LXLqGrIiGZ7LG5_01AADhEBcBxZONSHAgMOMp622m3YIAX6ruWWkw0vKrkNcreAzlHCQ45aSMc1muF2xkUVFMb_fk2OmJYbedNrMlasvkHRF3R-QVjvu4koTUOXFLdZyrUSr2ujuFlkVktrXfo_i4Jo3LO74X6jep47T1zL0GrxTpp4hSPFCIjafkmZnF2tM-rJsYvOrc6sNd1ik-rHJFdsjLQzAV5BUgR0djJ6TK1mBBjs3FAPDQVW4L-ZxkgDyCDQIuPYi3EkLRioCManJp5wFAgD46Xq_d6cIrLQAzIYmc6JenlirwrpgEa4IjH7yn-IgPyr9lsH9S6P63hrMiYsUXhA7R8V4GH23FSNh8_60IvLNEru4SLH15VftDyXVMKvGcwzZiB3jPORUYb5qJlndAw_1c2RXqAjLyikyqokZjpcfWXJTcjENYRhqGhPFLd3QIhCw7yvpNLiAaR0g9aK2AM2Z5de_9zHG_igkW1J8sXTEF0DV68hHj9Bghdz84IQ12HbDNGG4ykI5yLp6jVZSqspSVMVpQp-tn7vo5hIFIKkRMBD33fq-E9eFRZs2PAnw5znQJNaeETYySVm0z-eRqj1_C7HZvbkwSUrlvqWD9NTZXF-fBcIRCADysYEFP4OZX9QdCQIlxYrwDU9XFgKfd37uzjdoZYHXKsOdB7sqMtabWXqz3te2BLjsJcvAOsHH6jLacfKB3SSSUkK89xQ-y2x56y0NMTr7BymjdrgEQYm_yHsk1p8WPrdCFgqVfHzgXIVzaCMd2YqH91FphVVw58mw-k78vCO_utBr7zSkPgbWCZU2jkBB_8_0sfdn7gvrhTxEuBgyV1X5Ucm_nBWiUfLYAfjf4Tqf00p6-UJ2axscy1aAuURxjUBfYxV4ZySWBY0ZsrTJpgLF0NrENY0VS0SqSVwqa_dKv2YN-M_oE_i5Q-tFXIZhPcqFjNo6epzyCa8IweBev40CKQZdGTKRpXiQXwDJAB6nahsDA2SyqXRS6NubPXgWPJ-1BPo2-db7-5tIwl9lTwUc4xeDAjqcvyJgpjjDOBUpOtne7lLh_V36TR2RH7MG4rkiJFXzMTvrwIKBjzHk3m6NFxwLII3qx__1kaEIpPTxkzSNHESQamRCcMfD_lsyEDSNiqZT3FVWSXlHiA2rzeRTtYm47T-gfrUY7Se_RMPBYqp2lw-971Ei43tpPc_A8Ki3WK_6Llz1MdcGRu9cu-KL3n374rRhRcMxAW7uapQXF3HUgmbW5kCVDYR2HNsCpEyKSDH6Q7znLS9RUpklWtagmYh4z1Bf08o0Kes2Y1Q-g8o4qqw6bh_4XcQ5atpZr3bHDeRj_A0TclPfWbUH9osFtSmNP5e9Rqg26VcDXTsK4HKZEsJCBgrgC2k1UtbItz6pz-Zpd8Umc34SfZ2LPnloGoQnsgLiB579Q4YEFXNJWhhRgp1K4uSSOlcuxF6MMB3ENV2-ALSBjUliwxUBmyrcuDM4sjiskFRMBCIcF7KgtTFnKXXd4clr6MOcstTJR3KjZOl_PUUjckGni0lS4S3lJJgedLZU41S_80K1yjCO7yiACn5_25B1pSUbACWGSnJHZN_9tbRhZuSkZfPYtoBgqg_eTLnWdz-KzvgHOKYmPf6Q_U63quXDkXKaPO3jDZ_6x_xWtzNND3Ro-l3-2IbAzMrmOv4yH9mIXv1ILJbKqb9ARdyvxzhZqPfVOrwTemvxG8QXPqLdvu3PAiEWzso1SrVQEaz1FL2En5mPbjHSng1GKSyqFgDY4PsxgNr-Y7Lz3Z-0S-bcMQAkOgZrDThqDRPcWqUskjpQyqO7ghrlkkIP3JaeHuxmmB5R8QkXSYwPYnUm6ESosk5-y3JJJFjo7VoPRIwo6SgOnk7sZEi_flWLGRqMpP56ydxeLMPZwGRFqGdrpxCIq_uvHNM1zBK2ogwN8rr_8cg_yo8ycc9u1X-W8Rz1AFiMgjtDIlUbbaEoMDyedlu0hzK3Qc3dIcBSN2ZijB_J4Lw39KtoTWI9_6-6ceWIysWsPuyN-5xy1H0A0TgNVpFCvH2AdCT5UDGceglPFx5u4hC_IwPyJxxWnzGcsT8iBPOXoCZUwLAeYKm-FNcf0vkkXtBLtX4iwoADX8IGcAFQCn1pBnJUlNwK2Qpk6ojvnyiRIYA3Z4iX_cbP5Yb-SFbRIa8qu59uo2lllcKz_cpXvVdC5vxLA1PgVKy_F7pbb_Y-MZ0ttcTcUVSqU9K_j4eIlexjnMaEZCQKl6X5cXzVZejL09bHruPbnL7e30xWaBsKrdKeB7vSGcWHW_T2QVjbBaDmgOQXPe34QkWeqWQlDl1T91oPqfHdNBdx-oVe9Xq07TfLUj4pt-wQt-G0alm5ET289P90ctC0FcAkrFSOoE9LiLhi8fisOyDz1vBHM6BlSa_ukh1yAjKl-UUnD264OeNamuKO1cQlOTqSIbXvRelAKuWCZcdtCs6AEuKVDr68gLzyGLTFOW1xXijQUZNXPLYs8jkueNyxob8nAvShP4cAeG2l9OgxM1ODqyGqZ-H4v3ub8zgjKhANngl3dWiT6nkWr_9boQI-er0_Msgrn6pxZSIH40cCWyHG9OcW8JnnfgTtFm0f9BOEtJ8RO24iW89puKK0lVE6QdoF6rrFJFalvavA8mOV-prA91vX556MR1swnNCdgRKeZaPgFSuLjtMRs5CY2dudDjYvbSfPRkVJraQSO-KMnSdJX5I3xNbmjXFfImrtYKUecPcOzFoJqBnqoG_8p-D5Sjrh1KQwfxLWodNFeh2cMEAO2OuUwWb8HQ1VJHjI61Di-xZT_MpI2yNge4Fv4uhTgQ0KW_LoMoQSx41OR8iCFcCjI5uALhbvnVCtePazH-A3d9v5vJXqlCU0EQlLNRD-gP2Wrv3wCWTd2HEczl_s_aOW1TZKhgORZrE7K-arybIQkhHmtK5vEewMDX0WOxxBXiD_Xwb3g6IPhgstjtrNeKtTd_Db-m-nXOqfRRpG23hyyNMdEOtLOyVmGI-oXg-NIgsZdsMCud9ILd6CWBJzmHcSnXjbJAA0pXbX-4l1enXvXyBf76hOw1PbahaS4QKb4WUvZdaJrXowm3OFofHypUAP4HL39bYnAoFeRLznKpmJETWYKmdFbvcvLskPVsnDFzvvJ0eJR3K7_e9Qs3NFeHsbsLGp6bC-tSShC9lzsOSX5qtjmjhFKV82zCsUg_PuihkSkkCwFqzFLvFL-0B5HVe07upq8HMQ3LUChYbYJpw_Aog_LqECEw_HhCeIGckncmvb4jW7ilKXpF8MHA7Cfl_FDTmXbkaECVGHU-WG5pbiw0eTd7gqVMBNCJhdQeupFP4Sk81ZFX-gKu390AJtFEkw0VXqdG1MCvosNQOs9AYGJO28-68bwDWWG8kCDrwQOGU5ICLo3D-T1OEhP49DRrSlHVV1hQAlviMNR_wvpb1EZHJTxUjpn7ZPBFIxmh3Q24qbUWcToiMEpUe_6SsCL4Y8XHGQ7wXsfeEmfgKQE18LR32K5imGhXL0qZiZqfm6owmsLxMiWqCsGLD6gLDmN3nhN_zP6_WzBzQcbktOVHp6Jn2LNnNUU3V1wGjVHNpm8dqG8xUYbAFH-PIM-ImDYyqoGgTwJhru6XwE4ITyQP4kHtkDvtb1SFPDAQRnSp-oW9_eUuUTBdTn9IxB7LhB0gdacAqd1q_hnYtSjeXlRFjNClKlYCBIkhncd05Jmvod5HWwhNkBhdnru08xbps_XanXioGxZobWRJTHq4IPnm2-oEEWBSIRpjBbG-K0aS00PvyBcR8GqUNwSwHXCKHroZaQS30utkKl1EFLMLgu5GVUfeKgwqwP0enuIsPjusUXIslNnbu-f08hXGb8lwhtck6SUUAwslAnVg3-nS2KGuN9qMwxi2TVi31El_PGwMgAVFe3bCTBZR4K2SxqZzeAszEjxN_monTQuIdpIeF4XZn24spduplgu7Y4nJ9WXSJN2clnCenq66aQ-TD42BWnBYQbsjws8CzGzrY5m2s6EWMRM_Mq8o-qzPNptNM-i0-40ksJfMy1mU18CFUBzKHyjQbLdo77jkLcubajpbCGo9FstDJBadL1Afo5AIIViwr5BN13KgkDHgb3XzHORrlfDCoPugvsjsoP6bt0xIStMSmLzcIp2juz5aTmyDJ_ojymoEUWyNLDjSVOzz4vlQ4K_y2A1D9lgDscN_6aplOvstKpZaU0qWqhKc8YWhwwd3ZFpZN1ft4ynG7J-qw6T8Gd6X5w_S5WttOJXxVXWfBV_xF10wNBHOwA1g1-do6T5y1CP2GRcBt-q3dHEasPUeNKImDWGiv2auGDYpxByoyRmkSXmxkv9ieek3VQKGSpkUbbGHJ0MjaFilnMSlVWNvKdnuoNn7j7MBR_htDp2EgginE_IuwaAe5Vr_MnweD2IseFp_jdWEpCWRAHU6KUSreQaA5CVpOSy9cuG2sptahYAJ4IDSybH2ElRbwPteZK86w5EzIx3rjsxUwFMDIkfsdulTuqS4raIATRuydhVINP433jttL5HkoNpnGmOyL55gG6kfBwSxw-3eB1RTh1sCUzG_MkVBbox0tveBKpIQoYEe8tDaoTK8ppY1jvvT4L3iknOa71iPWnnI78k-gGE4X3UgojJx6UUFN-CLW3iGTEGOXKVBWWIaZ5TFrCMEvNejI_-r66qqqf4fOCNO-NpZjViCQGeEnAOsuswsnMqi3gGk7A26IF5FgVVq19nSUSS4NCBRti5BpbdQSjhYFDdO_KtZLcnOZ5pElqAEjZQaSKC3WiuVjX3Hdq1kle_E4XxzvsJYgA9_wUzkenTEm5MNs-5JSBGJKderoEC-XFz1VUmUwESdcW11zHkwE3lBkyl-JjBAtVidIDbdl3GEYvvWv-aj6RBxcR889MdD_He9u0ZjT_NUPaBOIo9hfpyZNIlWBtuvokvQi3Vaa_qqOJt66Gfs6JNxGh7nrLJ9aRid_3sS55TlGbkdXVGBiBLkdFnxbnLGAWM2nqEadDF4auhG3sgibRy55Am3NwSvAV0WR07JhLE6jV8sy7uVY991vrJ1IfFmtSj3U7cLQl-77pMIUu8anWkVcpGHE5n7CSX0Jt5FnEhD0RUjxha6wyujJH2dK1z-oNfW0fcNqajme1BLWF_CWykvD3zmhx8YZ5n2r0Aih89BgBs7mUYilB7YB4QOO4hhDEitgKxI31Jg935JYAghp8qCDShkPJLw9wacOwKdhDd9k1h_JywY1z-6Wp-MLZ0NkIqBl2QDj6H8ELoUOPV_c5GAa3KZAsTO_85ajQEBzFcoUpyyAbbhuhIZKqghqU6SV4cPuwWcZ0s0GEMFhgXQYiXCcSmbu6Q8ZrapY1KDu7iwMzEj3hKDvqXO30WDnJNCKYVhI2SuyOHfAhtKZFtHHWnepFtqFVtIw2jft_4MHnEju2-cmIzC9k8WirOVF1KUI8mvbeF4uHU-59iJ3j-2p0Rp-agjoJB_rIBHm6MZkvUAZQWONX_UY4BG9xmojmLunuH31EzNSt4wodKgnvRxlP91AvL2lzNGvIaSfVMVn9JkLBLAFWo5_EfOqxv0Mny2mpOMrqEC67YmAhHNm-6QVcpf_TwqWRc_QEta1luiWBQdZ6AboGTXwg4G19uFT_u-DQ6XHXssv0InO0QpaQDITTneUg0SOg_2coU0rPWsOsKvJlRkmHNzQKKcVl-TywI49gAfI6nUnbMrwCgColc6gsxgBupJmrfDRfF7tHbYDXJngVbyADsFL-DopJoBM51_HHzWDsjOCG45ORcutS0eGqiTTaq370ZI5Gxc3tqvIBvRMg4WNLyOz_r7IWHU8Ht1QKk4bahJcq_Oa9jF_q9DAYeixZOnC2J13xBSnF71778ptSDFSreB4Lb1JNT_F8GrMId_msaepanfkaB1uaG9rtz_hs0dJ55SYtlBrawEnHhqIs8SKuOg21s5y3RJqj2GzIoOJJ35zSIiuOiZllBrQ2nKfn_pynmpo1bgEW-1b-ybu8VeL4AROquTyUWS6j5EsCnlDz_htIOUl7Rhqwj_Rv1wgddgFAiADnixQGLKSr3At6welTWn9o3BD3EeD5k-9jc4vtIgr18p6BAfuTyoBUawRfAmO3fSCMLQOVV890FclFdX6792IvXfWguSL-KWNBhksRYtkPRYeJ0OsS-nKmv9BPxtXnGL_tePdswDHHqXN775EJLXJn4RNEOeiOjE1Q5uPSL6iXby4J7Hzol_350Mc5VN4wYiglEAKOm1Y-HmYg-HoCOfeDEiJbOV4NtVSglkXraIZ3urBdyzLuDKuW9MibQgRZiyj4OuRYuKHim_yCtbDKw5jKK8B3bZNaAuKkAXHqkuQUiKrj-MUS1FoUsA2rsQ21lPDRiqj7w09d0_1PHe2OBDxVb9D0m2DkEpJT9Kgg7P-4ZM5iykf-2vHODU6o7HHI-bA1oD8rck6fRJ8qjzBKrKnWJRttzsdRj8r9EhO5M7XD0E2fFGZfDli3YQwsmHSze0hhtWilhvr9N-5vC65Z-_7pf4RzddRdLLtnFDb9DDNZQpFs4DvXYVfjoThWgvG8xxsOPrRKGr658XCYwhZKaQV_2WiaPcMQFKqyA4cSVODh36_RVFFPRABT3mymMuzbWmq-6CGH7ro5JGFCtptsr6rhAbs8qZzLUhBE2rdlyTmIGpMIPVUQjW1O7wXVhjKiyYohHkucOPJiku3NLjGWPCyyAEQzOzvF5YzRFum-oeWyanBo5Zh1W0jQ86xZkh8Lc2PJbvLMH1ebvn8voK9o5sjTxHSlwtVpgOxAhiOEi52krEWaDTy34DayjHSUVg2H_ermO2SyCwndM-0mYcZsyTwqDgmmFZoDI5kbCccMkcv_ZApI4JqdCjzuJFzFp9ijkErQvpFMe2fHrde0rlUQ8967r36a8-fikCYZl5jiqphfLB_vFykyjj3a-i_G_OjtabzQ-55f_SkdTZoqNCUJgtYvF-K-5zLKZpOpNPrdKa0WA3x08G_hf8fLoW-GYB_TH5xYLyr-cbPGwh84L3B2cu6nvJQUXWKzC4Kw4mHbKxGpxgem90C4CY_vTN-QzIqMDrdcZAKYYPfioOUfKW_G32LAyXW3iScnJSmcXAOlxJ6YCw9GpCXzwy-gULQ47aDrauxY6I_DKy-y0pAitZXGIyiFSeCrsLG1JAkFeHTBrTElxazjr-bA0amZF0y9X7IJhdQEa2RyOaUGGVKpWbdBdB9yAwjqA50mBR99HP0K-4ZkiZbo2M_jQjmH2eikdhliRzD-fu9tKnyn7QLC-f3_ezBUZho956IDq4fckGcnpRft9ZvNwRVjEs8iqttK-HURU05l-qCq_2gMnhWlg3LhcYaOpI-oBqtVJjuaUgRQBA3B6JyYj-YYSqJ1YI8j8XUCeuxpxJE2QmKeBCKjb5qgDYGuoUjqOMOEUB178K1NqwkiAzygJbav7gIKI9RfzdLbMNMBer69fh5uETtN_bzDqGJwH_GZK41Z3KHvAfKOZq4aTsFXZ1Cj96cVYCBgdQyhtSPaxzUw9JryhNl9HUtwdBgQMX8o4820Y0CYchti6hmc3_1kLEuRSXxevEkiczT2j3xvWBvfddYaFy0paH5LA9Ok4MLjjwX3ifeXZ4IlnWzyVWkx4M3LSi0bzD0G31j-prdgMy1BKBFsTZI851wAFyB7UDQUGXzVRBmm86_Sey2m21wHyiiq7akC1CNWnP2tTnUt46GAvmK60mYGghsYxogKWA-e1YHi-WwSzvuoXFgN0agvXJU2v1aIUCnyz15Qer29KL738bkLUHIaEewfg4SlJ-PSuIlxfuApmeLVbJvOzval8GnXYUZ5EwB5AppwHNw-210DLjxEew8BOIuA8mOn-tWE7EDfNE_1fPE4aoDsp_RGxGGMkXCylH7oOBzz2SMjuWPCYLdjKSNXz3BesW5fzT50rT5EbZiWUq4SkgcYbiYV-jRR1yVb3gO2FVgcMmEHN_HWlAZzhDoCQzR_27T0HUKUnRFTRtAypygYIRM-BAjz5xWum1VEv0v2uAyYjLT-XtAwU8NWn30K-E7lVQdcXq5BGOIx0Sfgf4G90AzXuKBPxnPPDETxdRVbhOpQRKbyuiAhWvIkl0ZxVmEUz_OhHQ_1JJ5bqfzkwq47zAjpyOI8fzoEj0RpShkr9njZq_aPGDfAiqhlSEivH4_Q_OApzkpoVOyLMMF0SUhnF5sed9o1Ehdl309vpcVioEautERBgYEL8gGip0mzzy_sqPetE31h5_4soKiWUY5qNpepovL5UY88QAzInfUJx9pAZUT_ufTiYOEYxnMfdSMPkldT5ZmZo4dTULOfu8aiCjhhMmm7zgSFWBjf-J09ve_2NhR6dhqj3h8K_NLrjOYvR2nsetIR21QBz3nyuWOUZm8UHOpqWOpZU_4R3khv3GtU-NA9cd3qU8CqZzNTSX4K6lHTAkCISez0JEbiMzn5YX1zCC9kWNQjYVSKKSosfev4I-a7ladLtYaOZLEJIQvV-s3oEuBYwBJiBBtOUuZC9qEv5dAjH6IdS0w6r_UWUSC_2cpvuMcyp4pgIEwejT3-1Xk3xI_bZHRCjnGLlwEkCii6qtQFaYHk0ZBbl6KYHJryN-NQrClRjcwY6kkujrRz8aY0d2YAyxt45c5fPUkPETc412WxzE90wVccJu-Q8epTizPBDrarMh5Rqw06lF34Ps2tle9PKM9nrxo2Tbn_MrZufY5wWW-NozFHJS2R2krol92OLmLIFI1ZgqUX3kcUVaiaY4GddsTdOH6ib_jMHmLRvjL0kgwr0saDssHSz3a9mdZVgRIKjZAAnf_r0b10FKp3fIY73k7lBFfMqYieqggZ7fQxTuIN9MEsxVh5hnv_b5yP13QDpQrj6TosD5BBsZ3yyGB9mso47TWCTdEFLlONBh9o8WPXTI7oBK8tFGkY4ldoU3CVZepA2ELiwaNcBkH_eO4-CFZujliElKL3mhpNoNqeCLM5N_ia97ELTO5h36q2nZgyGghGgIQIVoGT6pdhlGhGtXi__qIPI4wtqbEmaU14ZTdHbSod7rHYh1FBNPa83hgtJTIvXlx-Y01AvMZiqLjd9y5CdMmdD4RgphXlluY6r54NC8BEbwYEP8H2kt0fVYJfKLJXw-2qSnT-9PS3buGoCfYcla5ePZ7Agz_2zkenZbH6FK8_rEt1ONRpznP1fPxAKxsobQYCw_nk8XvV6pvy_9DopuQi1EYsSh6aJZX3mKFjcXvPBK9HbLG4hMsM2aU-Pvd6c26t7aRvkgmypjuNwpzEPzRokpOuMHT2pekktmDHc1p1j9zc92Due92SkWVRVxTEHhT935hK9GlFyDiMzDJRYaqIAhwaJomOeGlM0LLxgMTsL6gE1z2_5POseRJybLK-GgvBFnEAJp4r7tavfj4ymPvqbZfyzI7TG-fGjSUIx5CoAAuSrQVZQw0k2n7FHXC_MNRpNXp_voQJNpZCyaLeSk3E99RNDhSGgzNYiAZCQn98srZ-IolPG4vbfsw1A7rECqpDcsh5ShSQ66MtNcQS20l4VA9DcDbnFKXZNh_0BoKIHHjuRSiQ3fWr4_nIa-TUUcCMZ5bwWRhdLKvM9L5lk9PR3TNo2LA_pLCtj6DuBr0s1c1SHMTC6Zsa79Uuvcp1g-UVdw53ltoNM6iJEKxzhYCG6BZRQS5yuhYQzPpHBN3lpe8I9zH3nKycM_lIDoqwG5S4cYph5sIM3HO49gNAWWs8bp29zWHeVfel01SnPwZNDHUKyU7t_zr-mFTmIdw_mMCu16VHrRoXHQcqqTAzA8xudf_zJq3P6e9I01rL3SPODOnF-FNWaiorwa9c4KjvqU417X9nL1u57Wq8ZIaiYHJbd_xgBc1jfCrCEbycxI54uubVS9BjQ0GkqHMzChn8GEU-aN2VeqIwQ4Dbm8BDNP33gvF1LHsuUZWJBbkLvWlMW570G3aa4Eq2-3UGtW-wIi3UnxIn5tZgo7_T9tY2Ma-7LvPC9LPq8FZLlrQ81PNNezgH9IPe9lzIzRG3GlP9DcL51_Vn1y7HjWHkn_EOSeJE9vwboqD0hXrMfqdNzOwbbCShVBPmlV-k12tcmGjKgC73PcpjwVLf3WGGzvA2_NabhmDV7u2OEhtPxQwI-2MG69ptYPeMbSz18Dg0SGM6s1PQz7-xeAWsd5Evo-GzxLiOZbrdf4qBBZcAXFIzByd-Eem-KXTc5zPcirmdjhlZrX4fURA20j03211LbS8czk1epnqhjF0UC8GeCcF0hU9HOuO-Yxl5DoU6VileFisIzA-dcoZ6Fje4zUWrYNztA1SstsZ3_6V1u4y9oTBAEuSikupUEKt5jv511M4BL-b-Khc8grzLxNj2NLz9TKz9WR_A9OPnCbGBRb1sGmF0c2TZpBVHa6DkIMu7BAqD-0q-QaxjSchQyHq2UGaiKiUSnVmVXxkfHabtZ41wDYFdZyVhbwDKxeJaaPBos_Iu1V3g_TGdS96Wdn9hXmstcdxeGkfdlsNKZyI-Qxxz40xePxGZ3qFwd3wuk8-ECLYw847_iaTGzTkHGSpWkas5AGo1zRTR7w7Qy-r1A9Ran5J6J4JTKj2eaEwWQ_vgWggDBqPgCGRU5texf_9n4GeeWMUhJUtfl3zOe3iMiA4jlICqOAnz1fVr0e-LX6lMHLaEiatUcktSeNu-zrApFyyFLg9fdYDTWiwcXyNdTObuQ5DjiyKKQ65xVP09xHYpp0tVpH-sBOCjyTRtL8AsEl5hLebWRl3_ROKPduqbKygBtdjQad4CcE8tcQRTfouQv-MzyhCRuS9hxq4OW0psrf9xtRrr1dwgqKnD7nXQ529anos_Id8gVQ1Yoouto6Tji_GiyR2dxDhUH_ovdY-sl_ZI0k83P0uYP8RWdRtNybLKSBAxPhnEcCjjQQyiPKqoSOoR1umF55MJRqamci2XtLpra9zZ4uZLz0c5WVkPL6dxMG-d-u3HAAAYFKbjK4I6nj3wClq0gFX-fgs4LMLvjBtMzI5AeGYPaU2Nidlt3H5M2xkAD6SvUYKkNdoDmd33FO_EMUF59elpwT7UeeK3K_AkTYQ-bt0QF2GOjYyDwu81Bl-YWBUxIKlpaC7tN2WIijFvyIqMnbjxwAtOydVkj8UZbVRNNzNOFV990c-KfVqI-rw3_718lgBWRsU2PedglXL2v32_gqjV62fcOmW_N-Ua_jmqrWlkHnQjxsO27ltdfVYqYn7AM7Zb_b4GlQim4BBJ2dn7Tosfk9OTM6mG5YpgHGiZqSzDsHwdMO7dPHLvTD3Ycys9wNhK28Nv6C5JAG5IEKF_f5TPqoVyP7R9BCFmWtsvIHJzCNQPDhAKczhoyeRLDeK0VGRzjhVWTyN7WHvXGtr1xOlfN5iDDEX29L80GTWPyXktIzIPf9AZlCszgS6as3ZrVnED-vzhLF8NVUQlHoNGWrVIkIJ-7jW2ennuMWPz2CtK9PLOwPnF7POC_i92fPXmjThMSPkRxUDUVMhVOqcR7tjm1LMtTCwk7ePR3wbURi5a1MnjJgGJpdJlkGw96m5SC2SXcdX7krrNeQTfzUn6il7a-mc8EAYiE-2YNVg7H9xFQ9bkq4oqV4A-757kXa3JuHsesre-iQv6Adj754P1pFVbTs8vnZq9yE3RcPEKfh2kYM72Psz_G2Hjj6inO1K-kPOat3q-IP12r-C8pVYY-zufSntcAeINr0NrLK1Umud0QypWXC4hBzZOwv0CG8q7xzXFgsBJI6VNn07OrLidUnQgS-Pf94eu-6TkEwtwQD-2YigFwaq-jD6EgnaOBseWn_KhCet9a36nwBiU8Am9AcNuK-hOM0bQ3tIAYp_y8kBOsvISiKuBexl-7BwGNz3e7Ts8g79sSQyr7gSWjwaTUzqS_xeUUZ0Q234YO1Lp6XFbj5ScZO7JMvJuFB4CMCamFXzPT0vGFfrLCmllKKfjwJ6LGBec4eEwovMr0IeuVJNDDMKf8D_Df-qKpdago-tQDqh8DgXom6vYxhj8dd-8Sq4bzqZ8kvl4VB1UHz68R2n1INs_HA5JIVmcDL_zXzrhK7Wc4kqDuJJTB5CuFl8D5qWaMJtus8cF1LtXmDQEXI7pzrKe54l1IcR6bV1wiIk73ulZ9lm7zydSXwDZSYBEMIV4-u0_QQwiTwDz8Xc42QN4XHZdE-2MeU7TpRXq0Aw1E80xea3CrDNZoG3hlm217MEnOiPTPTsrhzJzoTRMa4D9xmKHkQEi9AXPO19Mzmf2e2V-Ne4RS7HHKqNHlF1Lnzhr_v0ymAM2AIVpn_HUvxv3hStbB8bTeauchPHGkwYK16ZzgKEPzQlKtaqkuEt7SDiq6TLOGTE6S6ZGtlzuD27XrCW23RNm3d0Fx9GLtRp4I5YkpeMezn1jdDZyvtu8gvZRm5g52eHpqA0DfFlbYrC1HBzjCY9_kE-O1uZkNio8EH9-yPpgxvjpyrc0Nt6JDDVdZ9wfcUyfqrtNMcP5BC8jVvxcgJh_Wbw1RTHH_JRewSj-mls7R5_FYWszGeLPvMqP8bo4YF7_ifqpBxNtHjGvoRsWPEs2OddI-YlXsMzC2i9JruC7BFVsIKbhc-sVeaI0V1rVdW01mIqDDlAtV-NlrlYi8bzG47DWUQ4BuyzXkb3DPFYVNDlWSGTPVdQffsJmkKwBeK3LJJHR_bk1sdrm-sO9sLXNZAiQZqN0gSbMIDESAzbtazsjrTS9omdiTIDbvprC2GsFiI93tlCa4lLUIhPli0PXs_9cPfNUkoGRVuKGWK4jvqInRKh4F5NrJZFOet8Kjwxmvst9v72Ql_kf6lPIV65zwuJrodHIJ7wzOlb4VqzZQ-hStg6eM6DjwReuMMQ6cN3W5cSKK1wvbcLbtXggbPpE20Qx3iT3kI2UBNbB97gJ9LD6VApRMoLz6X-X8IrLGTgJBf98xQcFc1ujdSXeWiTUu-pOvH_haPFRhATCBGzfkly7d2NKLNl_CnZm4_lHo4T2x5f_2TxI66qeKcwd2gWwssQY5zFZFjmkQJRF33Z58CYTuFDFuTNjlsVxNiHK7cuUKyhJdVEYo-DKnm-AgbOW-7sii60damxa1BD8kDocy0JgKG9--H3uuK2QOSa-lG6duM8XDIvRzZtptxAyQ9kI6FEN22rLf0gACW12ZnyDJvqXQa7qIal-ejwPVqY3Yb2TkoPiIj3toTX5YboWMrSSWUlYCB5SZJzscYeCa1YheQDRQSy0Hqcu5nMq9ejulA8OBJbhFPS2JSODD59eV_zoulW1kOdZ4NZUFiHEEP2dzfjDBrPnmr21k-PsjDyojCJNEvIwoITB_w8PodHiG2yNFfZvbP9FPcng78T2NlGb3c4cR0I6CdqT-ypVDOqUHssrEZ_D7OPu1GlOvZ8XHoOdIdws_XWYtKpjb-LlBMHq97nETxzDRAKZ3hNAa8op3ufbCi1UsBQZSptGwRjvw2abt3-wsEhiaqvDhf5o8u12CFsWQQ2vIuiSpCPwhHFvBAbCvIN4NiBq7PrBX456efYygxClv-FyBxwkM-PkpNtrNnmKNq1hTmgkSAlly_VJPMgcEJ7shiYGHvMW4hm1n1BvPL3TU3psLGAk7SNc5VIYkMHXJd8J6eQ67gHExOfWE3AqjQrwej3O7qzwypHwpA2h1xR-HxDYHLmhhhD5sAqjwygwoKtd9-hgvRz4-mB1_645ShlXzI4FKnrFfNzBSdoJWREdZnzKzJexeROQLdo88Qri9vTh2f5cvmSSjVVtk1aWJFsoAt2ipLVExzhnJdhVxyZOy9beIuyTxY-RrmQj4HO1vbA7_hr9trrDh5AEoU_X5yMBAWmnEMluubN6zTLa-rXrcB99ukSqRME6PiuZxkuhGmhbzTkW7kRsTUMdiuwV4mM0uVXn56HzP4KUJijQF0skDYNSQIZeMqJZVSzxgAwBwpio0uOWJocQiEPzz5E7eRodeppsyMbnMneK47Yr9K2QBk35xcyzB2j9ZALLDDenZUk0UqsiPHMRp334kxsSIgRjt1XY-ury0nzXA_cDt9VZNihtlDtwLt6nPWCqm_sTMtcUBZIL1UcuaamiugFxk1RwsnkHEn6t_1Zl8eeRmnphYWz_JMNyxgXzx5qLvpi9x9cK5w_ytV9z1ieiBIl6ieYKRGvkt99cmYYf_t0jtULp7sNrlQpXkuXU83jyWwwS1J3d05wDNuLdiBxYFu3SYRaegsBgQOXUyhluYc9p3Orxl78pMjRG_u4n_Co_uvoyFQJkxDV9eBA3S6bU6UOmsUvc29HDVMPXGE_-czC7AgGhEvfpg6JVeppen04FT147EziyNHJCtPWtjluzRux2DNWNQh2mLQd9OzYBL70PfXwRBnspzm3kUR5nZlTY9TAK_yBfmSKZJC-t61pVxodITcuTg4MmGW3IFcb5rxYLn6vwifJCvZT8He4BIcx2mTv8HzjpNZmRBwHcMghe_TUh-vv2d6RnPcJHXd764McmN75RjfvDWJR4tcep3wLwzTP6M5_TsOEd_d5VX5-bVaqnnJl_uBACxBugLRTwrp18sOX-WPKvedXbHrRi8xacJFB8lc5w3bzLbo-icV553TjGjnf8iIUKBMgjakC_x5w9bIhYEcWfHCS2-CMaG43xqbuI0PoTwaPVY4RZ3aBMHSCT15nwxTx6FoTTK6hOmIVE_RVHBdWloh1fwi_3NwPycLUNzD7NPd4WSg2KoLrrlq3pSIhPMaDx2Zb_3flX9LM-7BC2kImIYGKL8hPkIIXRTseddcPjWIcVVLnkebu_VwXGAju4lv4gIugUrGlzKwepaJQD66AgWK-gU1TXSbxmY6sQO_p_MaimuK-GfFg0B5JMYkdlTQ4LOXgzzusIjW9aBL1HJWr8hq0s5Q5zfjaaJNTBJBbI7O7mtQt9CSrAxshlWnNWMxkAm642PueO5icQHTS74LwTC07FMtnNwAd7WmUz5-Ij7x-C2bD39WQufTzqtQ_f2TSxH8tB7CTcyZ2LkmlwW5CyRWikOammdwFGIf245W_KZIVmusF4zOTuQzRqJrvkHe6SJdoeLhr8r0g511o49zEoPt-knmuJTBc4R7kKetJFMGGlt4cvmFota8gLAeoJjNYi-xZQW-Rvguh1JxHk5Xty9FGSqRxd_yHWohEVllEQUaXqhIMqp8AFTth6AXP41J6KPmif0wi5JJMiVT8AQA3bPgjZBgCB9sZofX-BTUk8-9Mr6Ma49vSr5uPs9n3S5j-iWBfNnujSZgoT5qePZ_4pG6b5qjZufQRGOmi-B7ZSdYrR0WjsKDTxsqVff9HfJn2Z9jLFHBBQbEVc3iZmsuCe24StkAYfzs2f5DVmG-9CrZAonN98xXCryV7rqnvWf4iF08phSBDzh_zWCVISSxQdU35psDe7zd6PCMW7mUUo3GK00sI0yC71A6j0P0q2lEjb-4mQh-vqq5JdjvO-kAbJ97h9rqc7bqEnOWvU-pTRg2HJeHwUn13Lw4BTCPTVetJd0YZWjRvIEhpFkawjDAuFr17ef_UHpAejv9bR0hif87uFBN_I9L9x65Tl5wBXr1lYohtCpJxPd1igh8uu6X4ZLiW3G4WyhhuQQVOGy4PS1lTnfX4qOszqBm14izei9GjORqR1AO40DY-T37HF3gX9WdDLfTGujl7Hr_s6tdcYLczDmXFET8griV3qyHqLvauWAuCbA4e85wD0TdrjI6A-p6DT-1SUvVw2CMpX3p4KQaeTXefYGcDB8UyUeBWkfecBrxxl5WEwqn4KYZIWdQ1G-ezRj5ZV_vmX3lakMyBZvitL1cEISgrtCAs4gtu01RbHYXZUuUwwk30sqIcWhiWhJHXzD4kBrBxT0byCxnXga4CV1of84Uoq8raZQj4vdHVqFubIDx_q6GJfrTuvTnE6r0CL6rMShJ5cucfDRJckIUWh5o-qTFHIQT5kZ80addmt8uNGoUsp63ncTHSSoxWUeHt3VDSug2iW2aEFs4-XSha85FPabaRrHDobcAvs-QsCO8vKDnJ2uIICDGYupOy7QeLevsfMYxT3_Kl-ha3XX-1-bW4fX6HzYjiaDI8aImisnd7-06nQvxZZSUJZNboMhdaakPvZ4MwvUkH0cIXI3dQYiTAmQpFlSTvRiF5XLJDOQM9R7kbB0fwWz4mQioGvHbOYPDEau6vppZizyLL9MVMI1LaExd6ghcyBHMWeOAS6ZxFAi8tYPaQyHBUadoLKv9hiJcLCtddTXOFRTXnV64jqyTe3mzGTT1pbqIpsGNKCHd8gTaBTIIBJ59JxvbzpILmek3GOSvRaAcgByNY1EcfPhkvwqjpxnkTWyK3Ke8X8jTVQUlG49gAyHfyk6ksN48tBdbVow_UxkXJDhxhJ8sx9wAIqAI4J-cj1xBlTJdGfKfQJW_2nAWKvyISA7jJaW81VDsYwqyulUV3ChEs6NgfPWd5R1ZosI4cagqNqQZmncd9Yd43flnoSIwbPwruYEXSP_tOdBKfiqVK5jm1GBIxtj30r0Zhf1ckqZhW9HxQjWYuEhW8EPKN0GRFPRQC0SZ1NkKFcxAwref4c2tUvAvRDKrtU1_gbvCOFadNphS-eEy_VGnrI2Zt2--FvIYqU11mtN8yc4N1rcFSG0EwHxP6RT3r9pbFgcIp8v2-BCNdyPdq-IfKhK-S19k4t5H22cEZEzWGjw98OFPMaJ2YVQW4zzVtrZzEr4JKSR2_YlsLo1c83RmDdB6YM8nBE7jmC046o0dYWYzQgqnyyxjsdaiAHDNDepRW2BkJSiZDhjbObmmkg-OUjpcyJRbrWZiIiZftyo_SHZZo_RxBsv2ABrv8dBnvX_QVKjOAQKiluMR70cvqDEF7lcYdKsMS5dwIoxzoxlK9iKRE-d4KudhkagiMEFKYnNvPTmCs8LPX0LLBFRqzESPE7pkVHfJlePFpbUyqcyleqiJkccWLRF58OhVaq6xeImsgrxk-59BME56cn1CdFsT-JKnzKMvmCLsE91glXvzzSpX7eFav27KhSQu_Bv7eFelqswtuxE-_uTVuB_NEqf3xw3tBPo4t68HvmirBDHl37QB2udiyME8SDwTqvGAjK090l6hJZ1o3ALwRjUHSOvIpG9QUKAko4MqwF6kGjiLk_D3zdenJDQaR_lTa3_rF5b0OHcyViHFruQnP9OMwAWLrEmu-9IZSpCK0IbH9joUTxlWD97HqmLfGdFrDtWJunPCEeo4wf16Y2n4WXlD3fEevKFCaSci6T90D9-homunz0OAkLBcpAQtF616V7dfVfRIjIWfGHB1yg5L_xcsy6tUYM0HO0vrhXuRG4NbvlfDvo3Vk3QVuyYq_39-apXrTvT2NWuIuBt0PR9MRmbRwb0WNUP9AM7uyD8BfOaHhjPSXyCkhxFtSB7OyVa_1eV7S_Q88rr-n32tLWuUpF9H0yYZOnwX1tw-pDWwFBxqfZGIsUu4J4fqwtavmfyGRANde0wMVsczlRoJF9OUAiah69nSzMR5dfmb-kouEhAzY6-otScjM6kBj2tkZA_hrffu1GcA89YzlEaNpNOUYZo1JUQ6dXi67vfGeSwwb-nHBCwdnJlulhhfQFSBufCMb6jv8CqUpyaKqbKAL5FHp7i60NixM0uYE_xI5njt_ZNLPMkIyU_BkpygWmC3Mo-eZrJrltmiPx2MtKIolVos557cimqJ4qH6WXFsLocR61ASRd_YLTWKCq6j84uzGtxMtsAweVCqeb8MJpXhwJvV_t0bYmOPf0h0q3I4uuutAvV8OJGkUg9L6xM-gYmJxsx5Mf6CzdP66ieUnvPJIm8L6Lh8dXp3kWNesKXTUKW8zrYIE2sZpyjsnTpcS9c5TuoOU1BjHWjRcO-cvumtNJab0pBlYbULppQXlgHE4UjvnLHEPnAIfCKZWBTu3UvRimW9uzQDWrYelRqitzqldOm_muW5kGdG6-sJJuDn6bGzq1lVFasUthgkvJHiSpvcuuJR-88ZWMDrg889PrIMtyGZ88jQy258JchDQYCUElCv3AxnCaRA8LaujT3FlNbfYlZeL92cbs8Z1syQ87qagdTU0FKqXoqg-X10tsyOpk8VzUfoBffV0nH5K2aJF82ww-pJaXiHrkN7s0vottjEnALiqTAPoMvEVK2agQeZjJ6nXZLWTfwt9fnguxyE308HzJjAParRoYNhDBt_rOehyuwelJoycQmTR2-Q2To7YEPzh5mcpIX-rU1eHSKPBUHn0pvPbdgiN3f3OrEqLKdBSJ_RVTXb25trv2LIfnlVwz28ela6OERKqFladlM5kSqkX4hgHW4sBfOkXl1G01_kzkyoxjWeH_Lj4f7WXFo3iTGdfOt58msLNldk2OaAHhhb6qS5cACHmiRKHluaPQfHbFuAslgD9TfLOY1kLN33cjfVJmRtKXXjNpf3Cp2sTKMw_N_17U68XifOixberxtwSkp8ezt1WBuFNoKTvKw8FQTkzv2gwFIxuk4RcEZKuPT47k1RHdzweXQ5VnaN0FzBUVlMqcvkDLnjhZvvPj96OtluRI0hPkvVSe6SMaW76qvIA2rwTStoSOsvd0yS8EoqeAFu35j8LkXKTTkmDHLYv5Y3UAW294KRGXDkAQGrZqZ7YaiOE0MZtmJwykdrEeLNQMGn7vjyljgn6b5Ur3SCTrNeG-qOXD2hpPmoWcEn9OFSRuFQpNz5ptVvcXsJn4aUGq_xOUgODgVwxYEapV3epxx0-Aq_aO_jCLJGToH2dXmCZ5OsRwNdNXH-9LccKUwuHM7fUmjzJmJdG-frciV1bMLgnbaqZ07fyFv8OC0XKi-20_0m26OnjH8uChCOddrseQ5twwVQnAs3fH0xAIfDamZpe62b_67OblthnPPFgB8VzrWq0Pb2ZMTvwXzaJn_9WijyMykuz-xL7G5n1xnbogKanfEtCPB0RJQS_JXFKNRBTTj035in3BoA3dszdg16KsFTQPROp05BOoA-7FH7KONcw4zFg2WsyeE7UXZQVPQ8tXTII2wBEwaq3-POGbejRqBMs9-FWusQ5FI_8pX8VSjxwob75yO6-G4WiN681g5qGBgLp_Kq8GllQ-Sxb_62m6xqykoqTA8Px5PRpXt6lPtwjUshnSzEN-rFc6mWMhQ5iXHmdJSxZW0O0bYtV0gewGgsw5NboeHnR57hZlAJ3vFkToRiuLpGYHTjw1O56SMM1QCPpMrn9Ohl5ZjIwfrZSJvzkZNnANirZYgk2lXmSo_iApYaIbBZS2s0E_TgTZIMngpo5BuPehdVfZ1lQmePuvbeCJDmnEnbbzaz4JGnwT8wgYT9g-nnegHxDpHusH8faQgClLly5goNBvCEEgA4iWNutNfoMGbih_RfH-bQzUOGCM-VyE4W5_Zuz9nWKmBu52tRiak29d9j0IFQiNFUqtpesEktUgDYXrKCxSQZIyN3Eak96HQRvBCpzxjoaBXWAikWQb9AGVdNgI17T_lSRLCp8ShuNrONbcpwdgHw_7KJgTJ4LfDE2dh2sGKaD5ksM9L87PIAD-azVv3SvZpSEtmcUW2FtKMM41NeCPGGxo1Yrk6Lglsgg0MlNH4Pmsl1bppgjhS5JDSLEtYegFv2hgzyQ7sxTwadN4UZm_1G7l3JbW11eRx5SzkgZfgpb2ChMGgzjBOhtmHm_3zrc061vHSqN31BREAFErz_LcnncCwWTJf-0Zx0D7PRIJW0YlnRNLrLL-I4VZZ18IY3-D7XnZXws9Tc_l0xiz57z97JtJusvL4qwo8DRlHvaaJQc5lTLU1xm42l2n1bNE7sJQaWriLePqSI1jqmCQGzC4wpJV243Bmsk5sGSAG2UmgHIWkg768OqUASgwwSpeUPHCmY4-ROhHeMkxed67qnF4CqCjNCR-JILf3p0YxYipLrh-9NP6uvEBJU5GR_29Ni_37kKJJEtgRxCmof10ktUc3Hu4IB5evy-nx1VDrG2WSp3hxWh-EUF5J5DlpuCZepvKEfucpNuRS1II0qaSk5t9Ko0wFECUbtZ-HI0kC6IavOYxvx4mLK5mqUFMe_1zFcJDoNCLeSU6TCl1pal2WybPy2lauPphjxJFxpGgMypoSK_3U8EVMu5LXg-8YWlRujzuiY37204IQGzZZq7hdoyLUr038xG-Pbt9N6PfVHLxaR_4KP9Woe1fc453xKSXdoTVvusO3BpGDO0gDH82hRE6_BHjUD7y4zsm3qm2P8Tn_y0eo8LS7C894sh3flSdrmyBKMUioxYsfgqjGS3P_gbzkeq7sxuYofxTg7dMWPa24fYzHwrgnpvOhqZ0Xcjo_s7HUzTbJHiaNkzL_WhEQgFMYFZlypAFlUa9gViQ4UJ21dMkBI2dUqzZUq_Jy59QwrAXQnVdRudiSICsf6lM3jN28ngLsTQ5UAWgkg23R5SDoHOh6daPegPTTNVADz0qMG5QAgFbdqrY8erWdpsWDlV8hGtWgsKsQoGZQ82Rd9QIdRKz6KwyNuD8Y_3rn_n4_XfGLfRIBCk4BLNxUMFHh5SypmqlaPArf03E0y60GL4J83nEZbNIXwOz4jdCvej85z5FqO9J6ESeQ9dvMRi7y8vo5ibmrBajcIQu3FMH7PqzUl1ZPkIhewEuGODNcTgP2cDJskWwd1zyM6785IgSeTnroa5EEwi5S75O1DEf-EL94-RG0pU1Ul53JlZnRSWnSW-rkvYU6wGb4wn2wpohQ3mjfFusUfMb6NW_YSz4lz31BlT1A_TjFAuR5MaFfeF58Tpu034ncW_3S3uenXEzfKwmnNdmEBW-Cf8cYrn4nMSHPMqR_uEWSuy2v-lzjLB9Gz3lNxD7Ov1SINVBikLKzQGOW0g3FeiB4RIDckj6XDLnSCME0xI5wPF2gYvX26VoPTD-LjnCydDFNqpNml8J14JlGV14erEOSQSbGsAOAY6sucippbeydMrW3XSYvvAdswLxF4_ztmC_h61TgL5GlPLGRsp7BkxwUPALLVgPLT4orfJGuoPxPAq5LKcIYeBh0BAq2a5GcyHIkhrZ8F2qzsVgr31j51mhZamsSjF8EikirE4_F4xQeNP6ivrK5idW_KsMiZ_XSjahBPegrHF15_a1M05cFvZgdmBiOpJhsRvEIW7MecEeUgnzHanzTs49jjlCh2pk_ZFYDludXBa3_lVUG1IHNR3gUfnydnmShNIGxdUSxf5VIvDEUc0ahiu8N9B0a3SZlfQgKPAGaoOyZhZdU9C6-PZRq8ACGjoaY2ek-ysj7QMQBBSpzMaA1vh4XkolT8JVOZH-xkMta1Mn7B-q0ZVObJ7o1V_xd61etKv9RDfisKYkhh0DDd1Uqo9RvIJQmLFV3uQp3ZlwumxPtDZJhUoHzpdkRlmi822sgwi4RoSeVnnEhmpM3ZUl9d-k3zbkoJDYBUFbs9VxnKodpKrWpFnEQS1Bsw1S94Chd8hXoS6p_gJ1n5PoqD4HYkNRnMitgjJux37sH8FkiIqWufd_Mf_fDreZltNFy2YcQqKTpeI6pEMGXt9MZPlFTCSGkamIBzztVEyWIOZriKYdGfMiUbNQ9JcNz7m8lc5aTLZJWZQO87wjg8Oiv4DgkBOYUlQX_cdc9R-wYSuEizP0uibhMC9FHNN3gUIdHkvhWfPDlYLK_TESUCZ1NimkWZYabkf2vc5CI4LEY_zJfHOOPLzs8jeYRrm5zvXAC1nFsmOsFf-gAeAcAwQpct1CYO2cruYM9vhEdCV9OE1sQwMM3lkNLm-phlwYsuyRFmQw49K3a0f6tUYSxYNNe4VezxU8p5UiRLMZrdyZ7kMWddZKeqogpWZRdEHae3Olx7MLCGQ3docw09cJCaKJJ6n_S6SHKt2wZJA4lo7Xmodg_vKhsd2A0uUN8majlAhhdeyUAk9sf5vHiHo2JcyzqKppuNgEJxqhhhMPpGtmkxS_5UrMHtwGR2Tviqw5QSIab8rTMqUU4kna5RQFaClrUuEkk5THxOur0cmayH1luQztW9KIM5XsXJ1MIomMAvAw2xo7JZhLSj2PWSBjS1cJ3Xt_ILniI_gDm0yLyS3NWWhNROvc0hp__5a5UHpMUt2CKeN-K20wCgn7mrnfTXOYnfJlO54XXXZSCqMmeqkQTipdqOjfata8YGE9STOhyX7Smr0bWwp_uPfP0w79o-61f4KQkYSW5hGJHpFfouxJKRVXsF2z2HGnGhzlJzqTDJeTPsxj-YdohZRZUyHjIhrkSm8s7m8xulqolSq--xJP2RT6Vw_GReUtQQvAjFVZcwrWhiOfo-5Urnj2F844jvNJmPyevNksZgmWudqFS5PBY7w1gKr5r2vX6JFw3laaBj453a_QAg3YyK9TGBJWHlpLf1S4y6nsiQAQnQhFeJMKj_C7n9uoR95_Etja2hSP3QsG48k0-YUFCh2bO7Jwu2Wq7YZgJlRYZjdKk7n4C_5-TRvUU_MUCZFNzsq3UmAnZ-r-uS_t2ZPo63Y_dnKtsC5yIaJF0y-ZcTDIqfSRdSCd9rA25A2xwCDAmvJEdtRqfqUaMU2WAakatbOWhxvmPjeWVN9RU_I3JbXiHifUFoe2_QlXlOo8RZhrg6FZtXKocF8nb49N10-qDk0JxtHqO6ZJf8xeYZlTWemDmf311R2b-WMkcbHvNNbiJjD6KNeiQbhTM9QjYzMu5iXwAzp-sxwlrkqnbfgwHURGQVG7D_4bUQcO1tQhW9fEa17Wvfy39VnqooCQuch35KPmeu7jOyuydVVVzleY9gDvC0ridpv14chaD83EjwcntjAg7yfXD4FU79yOoFu1DB6Wk6oJTQrRkFR2WtG3GsWBmVNe5fveq22RJ-n24XY-Qa0c6UY-5TMj4YvucLiuiLJ9exdmpMkKxyEVJ0wRCA5IVomxpSMCWfikzd5OehCDnlnSR3xf1h6qZQKWH9MNfdfjZjKsTWMvckIDrBJJnREeQn7b5BV_dfykXALoVX5XQzmAXCLEU_DaHqozzdzaj1N2TcAfxACX5HLQ9QlKiw0_6jRHrNZnTXuV7nJpJUk-Jv1KCNOiLKL26VGlRi-ZVKxzJSt7G8JAx2qJJtBt7pJ2HB_lXVKxM9BJgncVtufeMmcBygcYkVUWjRV-4tcCiOgwPjtonUkwTrhicNNhs0xlEG2pmXafaQJA0D1FRLynCEvzTJLxJfzikPrWcrwAC4lvEGcdjolZYJyvOeDWlWLj_Qz40Y6n0VzXwId6CP6X4GZsRxuUJZdxGnMJa39oIVT8V9JxXehIAJcy4nxBJvxVwc16GKHer2Mq0rDJEMoOKqdUtxURW1kXzZOdoqB8SqbcKNnHLU1c_Y1mtqjgCOj5zrfLCXO1QyVjWpwvUaC5KfGM5E47ipgvjh82zX0RQrUxAry9_7ltykB6qlhsC1_W_3JIpS_1x58QRdMTzIsva3u70fHdK9Z4nN8czWm8nSU5Z6Ess5BJvlHLGoerwJnRi4AHRJrs66TFgao2EZ6XnhqGAQBifdUFvix9R6knY7DkzIExM8Jvyf4Zuz8TxjJ1_edWOWJJgfHVS1MwybrKbK7OQ-zO3ACpWoOLWl8sDJ79yzbSYsuJKBrsB7_OpHR8SjrlfeASRZ21q31pzvP0caMfn6X6uihYa7EvftW5lT9h4lOGA5HNrjMAvC6PNK9fkYPRaqoT1wcIqIG5riEcV8-08196jvir1yw2VItn0DRBsBsvGO2GxtqKxRzPwVOrzZHe70D_zAW4ieI2q5TSjV5SKOxM3wugmigGpjWUpmsIfC6_W_ozAqFB9n8GG4_UmZfj0J1-QG5_3Wv1pemAgPEUlYe9qHbJEYLlGWcxDNUOXEWkFw6LNt3_FpYjtADHYTszQN0rhvHhGiaqX9s8X0S1WvRFF33_0sUQsY8iPsVtmj9y7sqoaaaJvNCMEciWNw7Z5B347rzEkFSg12CGbUS-KovIlgBhWmu6lAUhd7TnZ10UBzLnAinAcYFN3RkXC3vSgb9Hs_GnqLJmz6heTTXjNpuJm7kQKS3Gdsv9aAZNzKxwRcg2-fJUkVhISUL_WI2UCEvZo6VR9K5i0RHx4I_RV0Eu8MoPW7VHz9c6HqjL6f73Zh304bBweWSr4A6x4Diq-VYcXsU4Ut08itheDuooxo7468hLZo3duAsPLzn4zWIVCqpNX3kq-ZC_8AcxkI80UgEzZISChBisfM-Xhv7EBVvnNofNiECefKPFHRwXpbirsN65pB0mXe4NZj1EcObkwfV_dVCLqAlyJkWuezbuxqPEqkdre6LqIjJJFjPCbyLwNIPdGkDEx7x7YFLsmp1HtttP7cPNJvR60mpmmxNt49Ugtpe6_4YrWwuby4ZN1xlHXn1jLVxCT5muTMp9WVc3nYZ62hOtGB_4eNME2WC1xH76-r8LMmdooEo8B8Lg0nLu8rO-JucwqcO58DR24IBYaQaaYr1cdn-YuS6MZUy5ypaUNV3TqObbnH05FOQdCD8Z1ybcKLsJ4N4YSpAHhdGzGzgKhDwkYiGk2k-EkQbsHxiuK9npxANNswQA7knNTr5o8ZFezNZ1Gv0ks9xAvtA9iSwx4D4_J__iOFX58NeXOoQJmC6Nl8VrHZygEf60PPdw8Go9jAPkBsJsHB4R8gIeJAii70HgL0Yh7AFoc8XWW4HUvjjNhzbv1z-1_GHhsVW7hpMeP7B-aVplbV3PagNiDVR0PF7-28vLy1QjOluahRbeOlaL3QtjzjKACUJn87PcJ7I7jQ8a93k54YbCMntG9vjSLeRwJmaLB4eIHpNQq1xe5QKAymkotjRgkgvhqb6QZE5YIMMbARCsnjGh9vuAAKEqEVz1Hbt1HvLvIvj2xNgX_yYOMGyHeRXY2Ud95iFjT-aUUpEA_VhXC5TTopEIU1eaKMl72N4fP4l-IjEdEp-LkpcHXuDqZ5ZNWARKScG0SMI9LbgVMN9rgQ5yI05hpcH0FHWkEJW0FK_sYWcJAnMBtLOO3z4Cik5ijWDjZA70pScCNWptRgoG8wTrnF9lwpiJvHgLnZM0dILScd026Dp11VH_ShCbjf-LvjSkXhYJYQW4dEMfXGTUNhWAmX5Gy6DZ2y8Xfq7uQGCOv9Oc4iQzMn2v6ryIxcbxx37a-E_uriSTPG7e8yesS-w4S3jddhBqCnADB98JJOvz8znIB4BOD8Zo6oFM_AYOiwCOVMUH3_G0WwJkeJGRcGMXw4BqNnNndoXLQH7SFqX4o8VCjy7MSh-n4KzcTU7B9-8ChPYZur9KQq6D37r7x1hc6GCf4M4ovgW-7PjTiSXc5NoLlxMLxosKYf6JP5gqdnp46UE3ZN1vmJThRubdfsV0MEZa8zLw4l1-BMYPbCBpkJv9m8NoPWuwB-JhOd0BWUXr-fVTK5J41vK6OrXgzlRFiJ1-Sz5FPlEMuBe7-ByicPkG6mEBFqroum1UcycteaHj9DuTk-8Xe-r1iliN9SL76qNLfD0JsUzNvHwPZFchm0yXZxUw6HPzkIw3M-ak9cxslG8TMhq_zKfUFVkeUhqLY7fo5gXZBlzjxDwI1li0gjOkyMXjQOzKgTTI1arOce36Eq51pbvo0WLAQkQ7aLTRPBK3K2O_BLWu3LVHLAr4PcUgdwjsNCEaZPQtNztpbMhMzarUqWyBvgf-_ls6RTurG2ni1Z2F0_z_6HKmwog8_hrWvVNVQfMQyHYesgxYRg-HvpReSLhCm75122BCuB2VI_kssERXX3RaEJ7CJy6NvXrB_5EzYbQ_kszM79iIuhIQ9Uh-oRFa7HMXHG54jR3viBxMR7yeMJSjWGEddVf59M0jNE2n4mt-morA0xs4ZwWqQ4PM7d9knvJbmo5Rgtq6GnY1_5r489mKSAfj2lCT8ax2yJHjF8RG_VXi9t0tDLonMDIRyj-6ckwHHuJmImMlCtNPC82oJ-maCNB4DFZudY2n3yyO0AQan5M7CxSC-98TCDIvSNsUPp3K6j9AqT9rbaWeoRYYaTrLpfJmmY021xM-SGNFNjgTxeFyOqhWtOe33ZXXTOUSkU5phdvtcrZqx7XPvWpMSVtHUIHkW4yqmMQW7RraGr7nYXD3Jr8xKbBtCnfcpz5F0Rt_riFsa7XG3pKfW_r62K5xnv0xRnxeDVRz5QB6oNaJnmyHa_rAJ5KbgzQ8Lm5gL-q7UmacKydZEAGKYe5zjlyR0iLREQUZlCBEajP9Uw50dT9GWJxh5jy98pf85ok69Ov_5QNe4_jExet-eYb0iVVzlSqMKNfd_4dCT3eoZRkobKW5bVLgEI68USGmfr4CYZkM5hNKER6Za2KIX8kYfzl1LiO7UmSqQ2o5-KY8YUeonRrSxOAT4_MMJkplXbQXHfv_dyLMnvLTXTi9ovFZQVRSFMnZXU_KP0X6c4fGI39aOplC8CUpJ4zeNFwbSqFVMK7VPq3lIn1mV7iN3qj_zuL1YHTKlK2S4NRV7_OXkR8mC8MDnw8CnluBOc_LAUhYVdPiCdsM9laDWPRRJNGteOO9IS0cruW-DtYFPM6XFs56-zgV9UZe45wDWg8bGJlXxzmd479LLOKXZDBYpSfoYbS8_hNXUydxgzLHznyTVEA7a29J-ZYWuSC-DXMB6Ia19R2qH_V2VxSksn8fwSu_-ewO5A0E5lf0kOEx7d9sP_57kPwijt4nMlzTIOMzWDJ5k-TjZ_0rRGZjhAphZG7zTohCJZiAzMVzUdRTp3jcTCnq0Ta6fBy4kKlzT-e642SftPwRyw1irI2cBqS7YMnAoh3Ynh_vP9ALFoUjfdxpRetDmlGR1wnAsLuckuH3ka_dfpheM4XhtMK2qEg3SVsCjQGXSR-OhOw7pp1fiQlY83uA8zM0_7tSbw3c8FoIkEPnC3YFNjhBKoQHmXzjq98fV9PjdSsD06fIC0SkUAwnkgAe3S02lqjnBD9xxQFmUv5z08Ukjxkp3Jl4YMbWbLijJ7tbFuBExZMGqV40Qrq9f0uHtIP2v7-aVryUR9isCT89aL1PeyTv1H2E16MEcTeabWP_tIRzxrcIGVIYaKPaqEgXBNR95cEbPBhj6GdRKRprefsJXNZzibWQaEEY7Aq9PH1AF8vxyBkFIX05KGDmS_JmgUh-qm2QJgI3cRBllqXgZsglz02LaM51e1x5xtg80-sUBMqcJzaESjif-QI3qB8Hy8SFS8r9v9oNqkwplbkN63zJNanNIvVeWJKnDeX88QNtNgi747xJA0vKlaTbJs_LfUu1SiDjlz-G35cvDTsNqM63lcqSXNhvihXBfZw0qIa8gj-iu5orTB9vUK29mPM824ualAghnbHCMyTTI8lpp-JZNeiTK83D4hV8UPxfH9zf2ZMVi_xCxbb-SGhytsL0K5YlUrbtCM4LicERLMtFoBdujyMb_6XugF698gyjyO5sU4uDn-iGT8bSAdZDcjm5YpH-G_zYoHkaFnCDirD6ytEHlUCTABI1zlFUJoS8hBXOoEGIoC0HjKF6HCaztur3gI2vy2z6ppqj0b3Cg0qqsKGYJNY-X5BGkAxIVErIE8HM2j2h70dbCzf3XTxCf1i6cghqv94s4-SII1Fs0qFg1BzOHcgZq26tcXIVzce82i0bpXQfsZHtFE3tsPLiE2VQom5LUKUnoXs5Jw2Wl45p-6QjYAAJoXKy_yOfjpHkcnxNC7aOiuvQ9Wffrx-wgvQT5TlyqdXUEN_iddLjheqkrZ_PXGHgiDKIBmKbEXCQMUJcPnZa6ZWx0A6FOPy55bAr7n7cc0pxCcoDXeiT6AXw6yuswCqDvqc0t1lyH2ozcMzMc98pf_HoZi3HydyElfAVJE1orxi2twCl2vebz3lD_F-7pvtOobQ_fzq1NkoW0f5iAdprcb7sm9vCnCE87u9oxDa0up0YAhl_aQDcyVBYpM-xnUMHozJ2VwoSX5_XiUesvKDBEFPlDCOSkPxkNC_KgQDudwaxLTgMdX9VME_wHleyIVFPJ7r7SxSHqILjG20DQCaS-vF-dhplh2D2ChmFyRhwIeKM4BirsF7YMCuehkkP8asQu0llYeIGL85EmqJooRGRpvxjC968tA44qJqcTirBywnRM1OqkCdUVGIr63dMn1MgxM-OtPr0oP7l3hcsYL8uGPKgPa66tNC6iVQ7HoKkE3PHFPDMQf2ljIEd8sxO6yjF0MHr9peJA-Sa7nMbqzDPnnt5LmcMCeUlzaM7RGERMJcNde40cjSgeUSRRxKOdF1DjVfygS1iJ-E6a1WgTGPnmoZyv7S2Iof5Vq8Hnin_6IABhYzK-AGJrMu7x3t0qcX-e1z1Sl3YZr8J8aXjJ4VfyE4jCWNcZ9GXxSAQAE3TWav9K-5l-MnAUyBMvQ9-22XF7_6fKI1nRFYBEwQyP3stZG144uzXWNeatxFz8NhdrFTYXjhwU5xn-VW5CzAMl7R_IOPn9wOcd22NuZG8QFBohihEqlMNYXJdBd3BaV40TpIIFfNcrT8sylcf096VqEXE-mDhMhqSPEwEduzxqGMqJcTiqNjKseBpZKDU_JG60Gw7XLR1HTk868g9XNARp58SQjjfkGBaC3is3i1UuIxB2Nr_lzw8VcURI871tPnctKtbr5j8TKXhfxXz4fd9j0DOIwWmpn0lkKJUQWICmXXnhfPZBRAmWON6NxoLVdYBfuGNP1DyGEHb2I4XVMEo9ZVN7tP31TTZoFOf27Y2JMUvhdVZnZHKciqycMa_o6zPw-nDMXI-FM75pT4_27AYlpjyAEWEss0XZj0wSKplagrY2F7SCcPw_rVu0AikZICYnd6ZUYYyEhORP00up_2_wpXQzrjtZjpupOHHSamryMhIlf-2d-gZLUA02dAoiSwC1Izyw-3rNqGemU0ZJy1vPVYMjqgJUYZMyaOhCf7QZK_Q498aCM4lCqsB6JNJa3J-nD9rPVtZpqiFNrN1qnTKCGXf5QMGyOyAVgoyGKlyyvEEl1Iaggay6Ru2qNhT5FrbSbToWDTT7zTQpekncF-XkedfpnPSBNMxWBedXzAChlVdYTyCHmUo7thFppaqCsSqiujKbJrgR3PjZPb-xmk_LkQ_qHQIUjfe5MlZI_EOE2AEzJ6Gks72xoG6anZnBtvklLpBWTizFW81lsMrD18P6DgFY6LTtmeABYpQHaHt4s3bMDe2hM_eMZ08dHtEjUGoiiVaRkZTo6k7XqDNUkA5qq_a4f6qu2MzS1X24pnFOVzEuhSAUSX3NeMbsuwjubMpbVq6mUWWnVXa3p9ccUUdeS9vQJaIioHDuqPQKwXItlKkxiXTZHJ-NeyKqfMJL419-3jX1zF9dsfvWT7vPHyOOpnyGPDiJjHShcKKIbjUPyAUITd9m8OauBQF3Kegcg2ihDWU-Nvqm7Y5VhM2_z3h34at-_y8JaPikE94t0rHIOxL4s0Q_lCp3H38yTDa9Fdtrozfk3DeMPQbloPDSV60AIkBJedSRulY76V36KU5x5n1FXb3FX2-2vFB6IbbrYfBGUBzxV1eeNWVxrUK4d6tHUWYHTJmPvbsuUmO9NLN4nnbwuTEaM-o1lgQQOJiXwTLQb_z54fr4-AJG22a9FTppE4HjPnvmDmddmPBsYVPNB4dplg3dh77PGbdd33subQCaJzCFHF-J6UiqtHVDlJhn4bX8RqOWRYe_hs_0Z5zYYGgazVwT2jXAniTzT-Jp3yn9nmV3stHfPlSWhbI4fhP2dfvzZr0177MmjN7kbeOCW4NH7aK9lRUdLmNfuOWVIdCWruGgI0AbMtUByI6gris3g0cOv3o1w63x_yuepwBNwuT3QcVagbkLZQ20dfoeAh0VOUorNBryAkST10EyV-NRwB52wOZTX0O3QBXHGvkcaM2AcxmjHVK9SLUCSJjrvmulobP0JgtvxLxVtsZAVIwPvYtdTbOtkkeGi52cG7JQAqVaGGGICh1gYIkJn8rJwnItc14TyPJIVskGuJiJZy8lDR5tve8ofnUt6rD6fasonT5uT_PeXryKeMB7knIv2Bdyn6vxzqF4uRshoLXvGmXZzZWSQifmrPDC124rwZTXRKVWPh9Kg1C_vK48AskJmrUv1o9CbF6k0Pgzeurt0ZWFOGh_uaO0zBrUC2RZXiIlKsDrjP79gzSelD6IATRb3peliHYcYnIU4Se1IaqIc5TQ0ndA8Xc6vASzyQIgdEtdVy3ADri98V33iRejTYv6SYHqOXShUQJTXAEtvIkyL4HiSiGz6NGDaBlOvhPWFzAcmUkXe-CFmzr4cJzu7hbuTZ9teRLhvkDtCcluv0_CjntSqJ0xeHzpayDkdVMYZvAVQfsnX4tPs6seES8sFp6jf5jxrsHX2XEGUU6bZIlcG5L-CQp417Zittn6M5PDt1i2Bt55VQoZBtfj-jqDX8H8fE_h0c5Y8SWlO9kM0ELol21ws-aFIHnBQaYy6cR7Cp6-HOwZ9Q9myaPD6c8Btd2Pe-37sUXuwRJc-eu57vEzK_GFgmIVwcE_ldhJoBeS3UarUHPoCQdpb_EuObt4k_vFCGvon0KeArYwCEav31rGtBOwUXfRApO0cqPHo4SFCOpcXTkVGGtpKzzKm5L52YcWS1K3N9Cln-7WunhHrwYcX7iT3zfO-qjX0ufIzpaWiegYP1FXvm7C4zHaL2Ta4Vq3MXcVP3F9O_N1EBlyil62ElCFNwgZxQ66zY7GKt1X5RuQybDsOBIGVMthPsJMjON610ccETbnnrZnNucmTBhoEe45q2xW4X6wo3oWqU_QQOXKCbmNbLmPozxaPS7f0F0IPLuddmegoOWNxLKRF0dmWI45CYSXxARIFE77B14p1WfMNTD7jWKI8LY-JoMs-59cJjLmdGygvSC5QrekRFpQvUWXNNZEb8WYm21-g2OADpB2aA2vR0R7qc7omTqL3vlzzttJHGxftw576c-7xdkW9-MYeLWufOM3Ge90VTJclk0hzSStFKxNM_8Yf37d-ieRaKTDLTGLAKLiqcW3SSNENdCPKdtKKQhgamGOkClU8Fz87UW1jg75ZH4XIcSg3nw3la8ARmzxqVMc9wVSMASkE4vfvnxEe1rv5R-ned9sxuvBG72Das6hJJHe77Y3RVxf48lExTKufWv74RZbFqLCG2QcwKYK1SiK7GXk0OvLME2a_IddNf-Ja5Wk0N_fBXQls-ZBzeAXfVSbDyL5QLXzCCRtVzKthuIZc2gEH-CPLgcckIxy83W-0x-Z99O2bTULpxFMQviqyhgQBqlABrOL814ept7V949uy2cVKJStOlwDLckhIQjhngUumABJ2TGgGjQaPObddaOwG788M3H-XIZkanHxq_7mAF6ot9NSXMXYfoAnKNcjM4saDtDl2DIrKaFo-HRoOwYv0fp2eAmCsqBQ29KO5nVBCF6x7A7QmEXdTWXr1h_SytDNK1pulru-G8V4TrlOgndIx-nyaarWqLOw2ZKSG-pT9-WRsyZZrw0nogrkU0U-XmupsKvV4v54Vl5aFvkVxlxZp0vUl2WQ64HaufTFZF0fyzw7PAcnLAb331YS1XYDcOK7-vvBVaP2I7nerBBcZzibwz64hstugxDPjAO7ccVrHzja_iLLk--JBkIBGZbEKZ8-3DybbruOMAems8KSffUgnHY22vOaEsAFVGcZ-veqvB7IymR8Pe3UGcWpFc8JDF8oZzt02JoH4ISozOg8vzwNtTjhll5ObjqIirTtjpEZju4XieyCAbSRy3SWEan9lAuP2307cKX0UTIXRKqzsICrB3XzK1LLj_CykDcGyd3Ehhm41IN22BSj0VjhXHARkRyuU9amlJsNnRlJhO4mcbNcYdAhh98I6EKjIF9FLCw4iyOAvSm19mUFS7qBZ3vs4U8hyW7gc6A4ttPZ83q6WrxDqj-GI_WjGgEwUMBhYIsDLztR6evL-i5kHCI9X2oZCe3U6uMyS_kf_GWdmdGpmNeL3USQQktHpnaFHinCbo_L0aRo8yhsw-lmyZmuN8ks6zMjfU2rAjaGbPOeUvqTk_OO3g7Ngm4rtHr1qRcLOnf0YaJWqZpdlvW2LMONCt_K1-AmF9D35ffGqKW04yAhkoTV6ruhqw2RGJq8seX6Vu0RdQl9Y5-5Qiahuq27Nw3vy06KtKcJmiVZVEqGJ3PhlX-bJDkDtcrqW9LOUECWoDCaHOrjz1kFoK6azpo7cQ1fCbYPTd8bxzjyiGc5wFyl1sbCp1oa4Al6DVmTZ_acSENiHRVmV_GRgioh2ZcX6Ypvm_Nm7mqXWRjQQ7IJJSg8EAspaqtPUl2hyGI4evjU4qiMN3qDxn4mZOiMx8kq_EQ-bqr1V0TAcGDT6HFZu8JgPj71z4CohdYfsFE6uN9KPDv2zPblUJhMnso9FOc91wHi5_kHs0Kpqv1LHzoeuISMrHLsPKyApIhnzFgRiwXLT9yLlanyHVP8w1xnGz-6Hrq83js14TyR5K5r8tklIC_HyKNcvo7eX5OB9hxcM_JJcmqfu_MWpfdIXpqGwXtz7MKRFyfzdxtigv5MPUJ8gz_7W6OgOJeOfwZT7wMnYpebjcVn5tbhSzEE-JZEljVeAblrOEtB2ahv8e9_OhbezjTWlhseRg-db7zXAfhY3GJQ-7NLiRVqLgqy7qXna2MsUwKsCnSPhJB84d2qFJWqxDTpyPUCF5Q-NdSa0mwwHafDVm-4rAVicC8KtOiEmf5Jh5Zn6PG2FN2PTeEVWR0NlmFZqAEx8riZeLt8MLX3JnlFlj926M2z44lvmwc9HGAE-lucKm0CUuNZgvTgtTLtDLXpf1kZ7zA1uKUQnDZIKq_jpv1rs5WWNIWB0kyzuKr4aiv8bplF4nEe4Mw7fGcStsw4uSNKvLEJWmhDby4M_0q4gGzaR-uwuFiL4H1i9VUGanNHh63NS081TxaPmDD6rKlX8F0cLGb2aNO7ScLWe4kxUfTdIy2uyqu_65tiDyq9c865VcKLA3Afdv4OJczR9xtx5hj_DMA5GEWdQNP__ohLvoRjGkmkMau96uD70kang6HzvUxkNc066u8rHEmHGeTwjosikkAT4Qh9CWpv4bBA7dXDUpxjkk-VZZcMQHEx1FH3E6dgD8cnc8g0KK1JhhWPc-jcnl8oS-gQpuQPHkiT5erT6RQsucr_xPy98cymqSCLOvDGJ4Xxji-5dK5h0eFfMb_Y9KfiZKgk0ZPCr9pJuYaW4FkHf0Sbgv0H03rlAsHZQ0LM_pb2mApcsXExzLnCanRada2wQCUXjcy99BdPNWEyhivGSP0QGHXBTdXLwsaKIo4wMdAXPupb6f71nYpsRW4vUoo1VwZf_sKF_brhgRRRUN8fovjiISMsCNrBhCfkVDHNrIL1teame8GFv9v9u2ND2t-Tt1LFuyQCGfayx8ZGre5jB4Ca2FI8xyo-11_O2w-CNXoQBy5zASTXWtbapQKWi5TSFAx4fLt8hLo0ijFUc2CPwHJefByElRqb1QQlzGneIh8sBqCa9YDluOzW9dTzm6jWU5ZbCPEgZ9L7FAtsfjqKy7dZWHSKTpYT637Y6UzxCIrICpf5RwJB4FUWJexk5YLcz-L2qp-6jp5yfwimHYyoTSsoDx8Z8x7wWWbRRXqqsjjw5LRYSST8IbcP5sqTF6EjXiLof3med5tssml36UXqKLaegJGqrzTwyI-asEPfkV78ORdkauIbtxOptEB55wjtl35eQ8tPsQXtYml8JTPEj4jUMNHADGy3TV-_edIsJObxEksU6c3Md3PgPlvQyFHcAAHB6eh4g2ylLpgTK6hzUfLjRSyOx3FPfMs2Ug7aLiCc21bIqRD2Nze558VXZkZAof8khMyurhZbv2tGUwBGQpwJrzdwWp6yQgY4BSeccZjR9VzugS0sqT8PbLb6I2oy37pVTqItwke5FNCmxfxefUSdz0W_yyNHPMuf94-xGc5NzQuWV0QkisJYXU6oYg45fwJYWP8roEn_IHHW6vuiVS4KIpHnWrFqx8EkcFMdNxHaw-C2U20TxT6HLmzuqGGYWiXwrfyf0buQeCQ3rwRrGb6opTVOO535_tAIOWLSzi6v69VH9TcBnaTEMJh-cEmzfpkaJNJqxYh4RZsSwNUvfbLMgBBddeML_SHs7qBFV1mGowSVQVWswY8S9j00mcC38syCYgRHD27l2L6_l11T035GDsMZNjc7QDjRBTCHJV-sAvV_bllNPACUyaN3rS4C0bunTVNZ_zkKZyPQHsf3aPzv4yT0JvZZ6uP9lhBf9yDC8QY4m4SRK6XeE2iDgK_iKJCye4v7cC3Gh8_K00ynqSz_7x9fK6epMvgDWPLgjbtfRIcrXeOuwtKPy7w8Gsz1NotF8oFGQfLh3q7OgG3EtCiVXKP-BeH_jWoCMD4wtERizMzx5V1vet9qZ5t2xAd-lVCr5Dtk95I38IHCY6lCMTDe2qqJD_OhboMNt8sD0EzmPcL_YlmLiXLGq0rrn2aHUBY3nckt-rpNPRLTJAtT0csRxC4ZAJHmuTWVcATIyAel8m1xCeFApJg8ESrYKxVAnys0HQ9JZM6yuOKqBPx9pLrXm14IYv-fMOoOVxsJVALYH5LeHayI1XIBvgxJOBr5H1Lq3mLL6VOnQr_QJyfplgJhR3IpxVLxtjQXVYaIt_CjWeTVEz3BxYv_24bAFvLAcujkg0W3JLwiBAuLazJuyadPCdsnvDCmykjFkChKwnMvW5fFWMtwaq2F2x6Vkog3cIDnMpTFBSqbVwTF4sYhKNycF7wFLhZhScx4G3AncAC3NymxwV8I7478CxMthMJ7u9smS2qA3fClKwNeZuj4aiyqOCWmHK1MO0gDJ0cRsXiJIEAoE7OJHb4XvoB3fk-oo4qrR9zv4o9dMT0D4e6Dv6xEiRdmKjPmIn0hCLu6AL1tZeGRl4S5mObcGw8D97I-Oyqr57sEPGXhInhWiBVjEET1rOCPsg_MtUT62J8EXxrhpUV9bzCrHFPjOM6Wd94mc-Ql5dre-s9WDLveH69HyWoytZlUnzaZVRZdGwfHb-oJ9tReUbzX1FKeUxJdNoZIgmGJJ9ONItxBauMOriXfcz8_KjDxtEtkcnjMp2_6X_lN1RfZ8nM_ZJyo50hOq-OsZagdbvlwmcrZywSM7Q2gngMW-J8hnyF7q714-cbrOZKpC44fcXKV9qnJHo4_qJC2e0kQDVxImptaJgk6hjepG7L_zBkOO-PCaAJlxMLH0sBUjI0gpOcJ_T_KvXddo7CMF1QM6HO3GusN57QDeEzZB4f1M2KN8N4wgYhP7JQGBANpuMiV_CFvLHhPnPGIdATXC9n_gs88z7zmLq5c24fluz5oU3oZBcyFBJPZZLBU66KAMnQTXr9do6N0sWGLMRgvQA3HjPvDUWVr-EHWHOCv7tv36Bqf7gndD3dg9jJDinjXVUL087lcrAF3GdNN7omrQ856xTOFCSg7oh6O1YBmEzjnd0RNnzO4UJk265iYMnrboa5YJN51jL5dSLYFdyj9zaM6lkZzRmVwVBK3QrccgvaHBvVDRtJGlCVrD92G4xgo6aorify5LoUedpEd5v1cnApAuFFK9LYKnj-pboVWbXqqjHto5NC6i2KCI_v7B9EKE91E5esAzDLRJ5h1SijYxGuma1iY9fKr2fsuiJWokVl-EfND7RQjg_pcF2QF6jg9SuXEbhQCuCdKG-HI-20xEwZtxIlRiD09ubbsLkU6eDs0Kbe48vX3H4IyvWBS0hjFfXCUi0wiYEdZkUEYONBuL0T5HiAan_i7OR81cQwcarheCvOGrqfkgL1IxcRA05iXx9GeTAY9sBSqnrcDJpvmC6NuXjVf9czLasXXGpEkMCChQNnaGiBEhKzkuwfzUMpHQzOWVqNrHbbpopTrDql7y41_d9eksIF8XPPVolM3ba3h5SL0r2mIb3u4chJftqyeHdD5w-P-hNkmwPfYHaV7-XfrrXN40nsMg5nBhxs8f4csCCHToMZ7r52hzj0GAULNEZvPF3yrtGGlI6Ky41uD5SXfHRFczTYlXwmCfAgyogeeF7xI7bXRWLnJgrZWRyeDk0OEErtzPj68eDKQndFlFXkQinqrg3Y3MUV_qlx6DyrxnCSMDiphmC5ohC2fSly3heSzxSIzs4Nzfb_a7RO7XzfgEqd-InAdX8dkWbRJlleEhV_ja6jn_CDFL6B1o50jxJDpQaCW4niWPJqDcLYCS_2hL4zN5KuN5cpjO0RCRFnxwPrfmxEJRt_f_08X4XcMbJSt0koU2Mv-1SCgCff_jMBU1ZtUh9GyU3HLfoPHynXXwX0CIlNH3tT4fdBdsbXk2IFtvkoXvl1OH0lK16Re_7dts3olcfNqsMd2xhn8_kM1pqnOvj039bdTc76MGwJlYtPpcMBKn6q8inYPxzE8QE4KykHLiwrZTbQ36uiAbYbb81ZWhG26Gq-N9T4c0pVvCbuvrbAboiElPb2EUViA6DExxlSkMDDS2p0k3ULzbSy1aqKphw_5Ljpi0sZXno3tb36mqRPP1aGUD_ZqvmZTMNUS6fXUo-9pDkDKE1DE1wgnz4-Evh4V9dwzu4FzcxPNCY_p7iNkOl0QJpO7yL5IYHZGBSr4s_DQUxLILBizosGiqA1Z4j-hWmrGnBhELPU54ut7sXM1dsLgZlJvTpIMY4wpA1yRi1EjdiJEqTJMGmvwXGmAjq7V07cd-n1_Xc4_00-0CMkVvQxUk5eTAblo71AkYGFgGguILnI1IJkWxNhuDJAArPV3LxGlPfG-pdghnECdSg7n9LgefU8vuJ2uZUW6n9V5tfGQN0v-bFve2qHmfMIkDyML7--eY6hCfP00f2Tlo7fi8pFPBPF7Q8rivVG9Ljnd8-LurzWrNAB0pjVGet9-5tQKSe9uXRtDDpaDf3jYATITd6HP_sgcfkdwQcbtN95RLrqeri22JmcAnWwWNJYhWhs89p4hKxJjHaAUMcVlLzDE3gBKChh51rWZz0dU7GVne_IOhTVCc0SBJXqnUVQabzqDu3Tb1pczIN80OPcl59LCWbxcE4M6gd9sXeGCxyKbnHCvUqL-iObSji9f5Rzrr_ehm4r78zOEU9S3DOJA4NNw6pJ--XbxbUEKFSw-PPYQcfPAawFGn_JSAcl9e9xo19ObolxqfHXFnuNsNvczb4Kni7jRASxZwuFAGhhSisQlCOVdmIUh3FJVGCa7ypvaAzrH39BF8Vh9ObR9wzg6HPwN7Of5bQsVoYGOIB0roDOZruUdpG-dtPWjkJO6LAA54Ljb5d0qWk0k0zdaLLzBIUdCxz6SpN9oHgcbVsz9Hn0QX1Q2ttRrXMCHGPHxk61ndxcly8ZjPJRAZ579Wkj81NYqcu88YVLSWruao4pwcY3tkL6TR5TZi27nTITYdQZXmh0HmnGIf6maj6btZaPBFOMv57TocPGjIY5pTwO1e9x-uinc1Gz5Z23pQjAJTasrX90ydJ5kJBQzI3onC68BO2psVqGTkaHDpHS5ZEpEOJRPEBfUNbJt1J6vLqbYSt7o3esKfwNA2YNziRyse2wjNIqWYhBhviI4kjdSWRVyZWVIsaQHoBZahtxnAlJwn3YjL-IoYRUOjto03UvMIDHL0zyUvbUL4wGwgi8VNcL0D7y_Gz6SH7g01eogAE86zIsj1A7AAt9wmIhVLkTIhRaBcg6QbAsKqzChI-I_p_j9fo0bxdf2hCMCTmohXfD1dpLmU08_SCYRTRyurCdwklMXmk7WZvw369oedm2v9vkSKP27DbEFBA944EXlqWqC06V6HKfFmKMBV3MYpQrIL_WQ3b2LQ94oJ-1N2gUiFJNNlrL-wAQoANMN1i6GdDlz3iDNbC6-5D2DuNvIZNrtDDzKytW3rrcHHeSoY6_bltSIC9YPEequhwM8JC42Dl5MpeFo7G6pl9GOye60swh3lFBT9N1YOSaq5tbsO5UJIbQtX5S2PQ4ICdezNmsL9vfcDkK_ZzEKPkbvYsRJorsPUDd__OlSqDr46WOBLyVdhjsncjIBUACQHJDFYqhd1Y3TRtm1YsM3tc_OCp9p02uKVFFAZ6gSF9FL_psKYCBIfgkVH-UJBr52RK4zMd0YYAaqof2BkqU7CgtBF0ep1Q-OzLIFntJ9_cmp3pDObHyGkkC9my69c13WDwL-X85X0n2f8skRRUImrM-kY8N_6GofVyrO5c5Avdf3dfqUAHgndYy-p4_zDY-8Q93IODag9bnwfGqqT6bqguvN2t_7oNO45Wvg_le08BM3rwOftE6CTfM5FP0WWCIasvqLxd6XXhkdkKATUHQSTLxOqvCcZHViy_7tR8n8bt-yz8j709a1TRJgBa-NR2b7N1UqfRemAK0CBfbeDKxkijV4-Ew5nu_C0UJtcO6_EbC4mSTEcp_xRevxSlXnCbfrLsQ-O2UJtHhbyLSUGG7rhxtIVV_0TxPkc3ZJU9Ehzmjl3mT1fo1NOg8Ubls3E5ynSS3GWAg_5nIfJYCOhH45BSDJza_8u8_7AfB1voBHcrPSZVqrhBYUYDobB8n4qevVSvldk7_D4IR3iv0_IoLvKj8_Akr7hAXMNw-5QIH29E14zjqqdVWMISAJ0HeAjylvpMWQhaEVlxntK8hVWOyFNjxk5zIFbThanLk0zT9nY7BbzMltfRlhYvfxXxwtuqPJ_Vku96W9wv1gF_gtgc2tpJRuR0kzzK1XIj6pDbE_U2_Eripjt7ry6HOfYLXzFZvIpZB5LvDApQx-it88zINdfoLr0LAMqn2ECqEboZTQjqBjrVsp8NgyMfYnp1yn9NTQIO3hxJmZT8SzZAdWJm8aPk-HXI9-tIZ2vQMw5Sc_0m0Jwx3LbjaIqOfT2MI79MP7cS_ZF4f4DHsKagvWZGAyAkCsSHnTCYCzAAv4DN2t2ZPt9wCQ82jwf_h2Um8xXeDdVlQ6kPhc_ucvfBn7JUERnVau0ruYTDnzsUllRztzmO-DN5PPgheJR_HPro6VY79GV_xYLagDO526ln0-qFs58OvoFllQmGd03OilCRGH83UEzU5SCHRalVUodbEAWT8rmewf7ws0K-TNKDDgrM-GD-6wY8Vd32xPeyZkpfiKn6alNkBimn8g2aTA-kAl0Zna7E-9vmROfGY_VEBA_9puLNP7Cg-cxOryAoT-NKeuJQVw3TBcFBM5o1sFNWB4piZ1m6TNU-OysUJrN5qylPZO2YH06C5CFf-rNGV4B7Fem9RYYZkd3cyGz9uPyMIb24wt5tdIHjcbPUdqoHKUv6kGDZDzwxdbvJS7WLTslo2reZWY7FTmdgcyq9HkK07ETP9jZkhqy5U8iCMI1pcLXXJ51FmIOvv7KAdQYj5k0fGMYhcomml_tWlcxAiV3Oml7GXhub9cjmv_yHGyOXV9NKdGmiKSU8qKMocIAiXfrDQGOF_h3BSa97yqr43SNOK9nKKmVwxqIXkEk2TNGi1SQPfeX2xkXHJCHuwkxq25Miaavdw4PSmDE56SSaM59O31W1RhOFj60r0q44UpbCa_VtG5c8wtK2DOnQFI5-rdPBryth5G90T_F90GMfERn2ZGZ5opPNckeW2HvPQbNlJ35PzH-mDfrEWOEMw5mRaX3BPIxmeHFOb6r8hDFCv-qaFBqJUX6yYuJtLupUU17AvnHA94eB400a1Mkeav15-gABxLAlVE0xgueVuaVzjkSQQzprTxHmdzc1MBSnVhZwiGlXLIY6liAS-Am9n3-Q76_cE13R3u6mzlbX1fQuLIgo5RIToTXpBzse3Uupn68SH4p6D6nM0nsaTRSEp8YJvrGBWs0TPgoFycDQU9_xsCaRSINT3phXm5h8y1fPVUYl74iOfqRHS6YB_uw7gPXSMAm1qg0PNRhEIqi_kFZUO_2kmW0mnyO1PXHWmnI3yZFUcJuIlIeXL-SToo6zv-gZFMyAjrr-_nO88anf0-qloXmK97pvCfzciTdeM_g2es9F5998W66k8DK9dZ9uK0r58WU7F8vdPrC958RY-Vd2IZZu9d5py55VHQr152bs2D-HtzGVJ7R0RuY8mvZD9TZycSE1olgSzIjmE1JnAI4GbyUhQZLjs35QfmW4677O1Bk7Xos36hY_RCTpfeNM77zCcFC1vg6GiTEXMoYGHIIqPUJ9BbfmcI1sg7alBwzQSS9OcL-V4lsVrd3i4aiY9aQY81gK6a37l0YCDjMXqK01k4RfWUq1EYnD586y0AxC4FyAkmraplVS_0ZIIad9hA_aVpC0fkGMRCw3hNMV1u3P9z35vUtHmV4nr9b7hlH4yuaKv3x_4-W7XPYPm73OHbyJvEd8rTMcCgXbgEtoVCV2KwnOtZN_O23_3GwEy32PruR-WSfxlWfrz6zZolFHYlizOeQ9RbX8m4PhX-epLfozCHk61QIKHSD1DKWMt7Q-D27NueCfZTghzFmoWikB31oamzytNk1ebfG0w4f4-u0ZgmNRWhpqsZDkoolKCATZd1HP2oZgU3oPu_T6-yxPXieMWia6ixwajJ_qqBl0vDjffkDkKgjTQN0MrHUkYm3KBA7z19b4E3o8lPSlBqBjygXskNdQRhsqpJaHhCq-EKIiCbIpSrgmDUzOyZguaPUTdXOzQ6R6sFKLcgIxC9sQncQJ_Y0tc8Wv3_sjZMRxDPsHC6JCxGWznStO1D_1nOHVIUbJRP8MnOZ_0wFDTK69QFRuQr-QkkBIOy-pWYbSL-duYJhCBCAFVwKsAHzZot_Pmq8v6AxYSXB3u5JwTuXYKGIsu59wJhvX-w63YPA4M_qImji7wRZD4kUd4hf0XjyCMhPKnznOl-M6jOnszRzV_PaX5xhzXUlmkWvyscUzjgPYfw0rfC-Zl6UVjYqw5wNoD7vHbr7dcqP9eTq3PwL0HH35VYpcEu8KFIfIJCQ2hjHZ9t06TPtHfDj5UyzRpgIViOlwJ1YwTp9g0VGRgWth5x3mVDMeJro3Bexe2iA4ituaya2NCV-GDWyvlBCTdtRErWavXSwxyBoTMrBjSSefmo5RpYOeQai373mpVNJgxnE0z1q2fZYfwoXQev_3HjaYJYDd_vebrwjpvtu94AW9n-BHrHkj4EWYzPfo03eL9W2UgtniiucnjrCpw6XXaX12dXjxjNO9HigaPxEUmCa0OlRAmQKfeXCot9TMFmyUUl8IJkzX8FnRqRtK31dwSQlceS7bBcYbhJvhhpAD-QFSEvBRdx1pX-lXz26sfZbNYdVHZhCosdaic0VXonLQiVNCP_Lptx5VSSJ22qlHP7rKPEcW2sQXcv6S7apj0UgxovCkAY5hYvGQ6CbDlEKP0NArDv2RwDx6vDafE1zWs_OsmVsKa82KMuwTTxPXneUwHTs7xuWgnW2X_EuizcE68_zT5L9w22j_xz3KMuvUpGrXW5O4UaAEoWtQc34gQN7ScIEX1VVCxQXGAzEqiFbwt5f8GtpP3LlP-alo8DbKnndmLQVNjPxc20sOCNO73n442AaZyufxlFWrGO8_eFamIkP1JWch3nB_TaKQzPUuVTNUhC62doxEPoiEjquZyWfhaFs_BtiXdfXnX489sa8JX26gNm_3-WVkRG-uRiF-2qRZL9sRWSkpBXAYv0wsb0SQDzwuE9iwZr30PPSce3mnYuXv-8vAssp9HGPCfjpWkfOTHKsDhu0MQ53ezPRIoeCRURxs_lBpnjLgtqo6SoaWsoI2NvP8UgF-yLHZ_JXNnYFNuIJL_0Ak3peT8rROKcuLsiCNpK5P4DEkD63XqPW8fhNutqzYkNmMVOwmmpABkEOCv1AhXQZvlxuhI_HC9EfCgTv9gd-qqj0K1mgg4QteSBzkD6JxF1DYfBVjOiZTBtZmg6HH11LuGWcYwOUaQkLYjgh56BX2wE9f0JJkQuhKypZ-zN4mxw-M_wokV_0HAGYsRbi4dCzS1430vlivIO1Hvrulnh0_8reG3HDHuoXc4R8rtMoffHOk1yURyDmOfrCYc5cFlZFXPRRHshtbdTtBbSU0gym5Lcho3l1eCwAYQ8S4KHh1OpCGfjkmJ0uoO59VrftgnhmYWYVE-fg6882j_SZeuKbRND0gXh1D7rtLh2NKLQbp5hJN3dc1YTaV_xV-5mOBadKeFqlbKbBldNZCZEKzA0u1jwFKPk9PUc10rRE5WJTTMXJT7cjC98P5pGnnOsT2x9HW3JnLNGpgRliqpJEHYcgYZ70o-5f4DCrKKhi4TkDhGejyhT2aiJfRikEZU7ibTQ_KYmVWtDaIkX2InEt27YR4XiB4Hoyfj4knlCERXfthKSRsPs4T9PJLkWizpKOxSo-FU8tvkS8CBe6Tx2wVrylXzdgwi0fHERsyx6pC_dscuQ1cN22LNjmRdV9xV7G_ag4QgPrExRfkkrFM59HzH6H4DXoyWpzQZ_GXnLsANn-KieT3ck1495-LruNaCM6cjYDSEI8HB7p5-2DS5TinYp4MpSAOjrSN_9XezUkcUpj-vAxOstqh1OWvDmo8gGj_rL2UB4eousO9jYvSUgwgGT2thptPMiB6iDRG1ckSH1u-DPN5wZ-u2tTK_3L3K-c1x2PxzIrABo8ITqdtuUwzb2E-UYsCnsbVy86nOjFOmeJX3MLEQvFjpzl_NY5iuVUxDRh7_I51TtKMtSDvoKQk-bURUsqrvqS_JAtDrcWnVtS2aaUB7TpniKWoX-6l_Wc_UIHlSqQF8iedwu4fnyE9u3ldrMKvt91f3mOq5rYyCXJydNcBAZ8-j2HTyjpjzfr0_q-8y_qKUgeeqi2BkTN4LWak5oN7kL1xKaKPDRn5MeJVjvK-pbaVVSW7Hd1pqJqh44SH93x3hc2bKoU4_P0DfqIWUMswStYbKTueDE0XNGIhY2aiJ8d8ZXHXFyvGd4JtkrgqhwAAcsIC_TrlJ8v85u7ujQ51nCpEnVumMtjXfFyGAyI_2LeLBpO2n6QDrAK1dkv53XubKXg7pWEEz5BuUI8AxSoKuJjr6ov00fg7FFFMF8mn_OrxrGOEQSbvw2gd-XtvIQoPG2TNxez2-XxGKXXvRR7UUHTQZ2AF92GaJ0gf9MA_cY6f6MQYykof5Zu7aCbLXoLwg8RqwjgJ33zjpL2GAYaFUzOiWT5EDRslAJtWEacK4t1ccJK0xS-NGLu_aQkUbyqRMM7dB26dh6J98Ch_O0EpjOduUexcB9kC_7jeTbTmMFwIV2A4ZdyPhoBDdOeUXdN44efxy1p5OkeNQQoMZLLuWM3O9rR8HAul0zNLNtW5-SFtQpf50kEEiWyrd22QAZrR9cG3kwJvJgbGVV4tXH5UZc-sDK4RxzrmpQapteHdP0I5P_2WxWFWkPU8rqk7hEfGYvRBPkWdX2nl9TuYztPo5fgan6C364rRGHLf42JUClMc13FuzDdK1h2rjWxAEfQzO0i3ap_FCJzYa3QjDrLtkEkJw5jBMzsnJE2f3F-vnGGb3_woYO4r6WH1Dg27rDkXgddlQ2VRdnrLRGiwGMI5ZVzELUvtijF43F2_5x9tRb_hjdJVQGYS7388yuv02NFi3wcZwyqGRWdgLDBnjDzN1FLmtF_YUdhfmJiVrkeGvzOkvP6XXSeFagLmmB1UVCUHohZvoM_FbVxuhA9s4CfkJXQf1VhmyCjupILbyGxyiPGIwzMwLIc-Vs26-hXictcZSbK3wA9MgbIc3RihEdtfTeCWtFM35bHRkj6JrWDv4i1OpUEMSnEXEJ9tSelnXeXFSr6Y4RU-0dBqTA_o5DYvBqywZ0wlkSK67WhA7uLrSYQByxGi3bcRIOJnRQIKif5o-VSSkdP16PruYxMEBHMsgmd4Fc9J5a87Ain6QM4R3SWFJst5ot2rTV6EfYhys7rS2ASbV0xNAJyZ8HZNLgc5SB58G0uKxfS5qPFAsO4J8b8Ttn0E0L5azfw4isA-P5wTq4sh87eD8F7x9cAEYYHHe4MGe8OscJdrsfR9jwk3fQTACbOzX4-xa9Bup_8a3KVqR-n2I09xjUdpYHrNGlBSvaw_saEMQ6GM1PYJuNWrkSzgRYHQ0TKIk_63ZSYtqcuSCz_YDqKlseiLZVi7880tuJwU7Mkj6mqyf0pBASVmW8lEYlBaFHOn0JEtHvbhwhKGxxof5D763k9MaO2hW2qRzyjMWPlWR7d6MPkErhR26IQrKTMidi_5-hu524tYqMErGTo9hlsU9S8UNCXimiiCwEig5Pa3YoWKLWxyiva3yi9Vwb4Ir3FjOLxGmnCjXBUxbA84dnzcAeRrqoqfLLzHxMpa-WpQAT9KBQZ2NZljFWAt0g1d_0mH157RzL-Sen3g0If0UG0QMfnKDHym5jGCRe4FQhHNCAlGPqDm1wlqUw3cANl0Gfx7266O5j2Rtrfm2ODXpaVF5_EWVCVfqBWwkxnBdBPSaQM8k4TwSoUoc6k4YStnGibRQsNZMi43ZDMwLr-5IhDOyqilFzKtvhcnHx9L9m4hqDt_JncdKUduir0vbblag9pj_GxTv-k-E4QeIBJ5daqY4qvi-LIz8F0nZMCmmqRkRazCuavthDNY8i24zxqGs_Tv640bGdcLBeozBaJ6R3TeSPmgX3sa84SxgrZVPIuOsxtbKaB-hpGbSPIdtywqhxqWtp57XXBXcv6c5FZqyZmZIaIGob7risuRRRvL9K-g2izx9UZ-na5gzcqEhh9t_-sFWG6lu-7HNv1QyXzA_qUUVic1bGf113mtxADPIyKtgkbogjnyLCHU8_SBGRiufkOf3tO0WyKpPJfjGYnn31ciCGUIHz5qvqVT9kwU1rbOCxDD1UmPylzzbVbzRSGlRGgK-cprwEsLQ1PgPLtoNFXNX4Ij9dR6FQLm2ST5gAfKuTYhtfzG-kKe68xj3T8f_ZnrR9k-7Yx8zHkv_sV37K-b_o06k54gXyl6Xk_BgefE8tIYIn5laR9NmNzza-esLky2NerRgZ3AKb0ahXwHuhZN-ZYK8hMqAn8lwKn9M8g29uFQmzZL4kyTmEA3W3Rxy9JUrv1qqjCck_lni7cwPnUMpWcj8qXTKtsew7N6VqFrrboZ1jqWFiGCmpCuTWlN0tgFWSfzKjm6H4laqNxGd7sRUXpAXwjIccA7VW6f8OvRY38y3DLtw6GqLVBSzo0rnHSZm5wASY_-keWyGmxaG8QzrrSrNWsGcYR2SsnAxNiWydTBw6LuripGNiA2Gla-y_jLmgnL-RkqwzG6boDVo7o_7qc7ZP_pHSVQwLzuEtPIZEu-VrQP1dxDpy5QvLTRqgWt4j2DjvRRc2LvmhHmsIsA7eSGaG8lVBbAKke-I2dJDhErLgJWfSMPJi5kkdbYMGOQuhjwfVnOYG9d48eDBnwl1MecJ1PWz1OG_iMr2ZzRq_r9FMAJ9w1wx0r1WhzznfBpHj9FQ33ac1dtafHRafR_2ugiyj4lnvHKmZuFMfj8JbgVsPgnfddWmPztv-V5XaK-fV-EEcJ20TSkSrQlPdfOOCzGMYNyV-7AOnHdzvrbAh-T1kEj1uUrrPNm_DStC75vkCOjoGe_6GeclQhYUeS0zPI66HBGRwhdQZCSjWRw6eWBlgmLAxq1B0VMkmmsgQjnDIsDQWsVQpaPSQYH5KvHu_o_hrWpbSXILhN51tAAyBtGR02Wtm7ms8QbhO6KCMbDXuWE973-PhEVZuxE_ffNL0MqsWuS9GKAAo6I5kkrvEzpb8FLoTX374i4YmQUsB4bxnRz8R3HJ4r9nMZvOysppNz_78BMJh2_XGW_9IohV_mnCg5MyN6-vHtlpDTLWkpPutlnfVJcaBoTUBufVI7mf8aJbT6ctzA3-EasDN3O6kcdfCccp3LLxXIpIL9x0ym9SkND0O5jjXuLPPzWiQKF37koWzaMYJ2C914v6tN4A7_x-XR35B7BAIDddL3eMucBeXzdVRfuIlLq6isSdvrsdBqZCht_x7aeJ_DlTAeEMLW58usuEeet4y3eQ3TGmqMyCw9nnGiMSlKlX8cLwcO7796TsosQ7DIajGitN-7ky94F4ThieR3XUcs8M3XbCevhFIsrHvgqjm6hZLxHEQ3Wl-W9KFBmZrL37wj_QeVX4OgSqi1ZfTZuHjcdQ6hi5JJYdQco_7nsV5Vv78PGv85zzpRQPr2rS0N60XiCikwnYbP7IY474NAb1HpHByB2PXqQXIrcxaBmdCI9QZTW36iMNIZxCdhO08j3koBCauAWkJyC9BGR8ngAHNM4v2ZulJZVB6wNtt3vCPtOFQEehQw1_R0-qMy1mbPgk909p6TPFnj84uf9KutJWg-0ieXsSfVMsW3kMsjir96O2I0pXYjHgsot8HaldZzz_wxL3MDSyoWv57Ml_BCe-nSjYtdl2mrfG8-OP_ViQA6KOUlHPauYmQPe7HwQe7ErW8xTeFUZ5-hxXiC_ZMe7xPH1qbjEJcRvqymuxwtwybblwjTqXCyjpnFpVjsaXxDtK2oyZJDf00UIunvyEddxtHIY9J6FbP7dWgbfxE0lEoeaAkRxZ4B0zyqlvORow27cKlLpQrU32CkQOSwZXWMFqyNm61LdtBhpNRqEph6Re6b2S8hkSI94q6-HV2-YAfcx7sr4zYpo8ZgU3Ex1jZswVH3tL67G9yIfdu4A5xNmgy4Ziw7FFmwhwhwxKVZbDo_7BLtIsit_P38r7lYJMNeXR1wEiWzFrDmt5d429bShgmGDORPl96Ja3pb61je-TeNzIdvGrqD0x5YZ7PmtgZDHysSgURpHsnPQxTfNk6yKzEcODMv99yyAHle9e0t4sI31kYIOLuk-rN-xK6iPjHmCdBfZrLAJT20GVJUfiHMmBPPT68V5hmsXXyWLkE4k1tnJuaQzf_qqsQgKWsjXRm3Ua3Vl7avAV4bm04KYr2tDQqLx5LkLYnQ-njywx8LTnd-dERxRLpCvkftq55jm3AmFSG4pO6Fb5g1Fehf0hZkC_67pGNx34lbC_c4soXJjHdVnrLgCQ_XTmvgul6GXWHoWNougJoYMXCCaGMDxAM_qzctEjXcTirSjaTvPaG2oQisb3ah2Qv5hzVQI1wu4M9_TIXelHF26qVoWZeJ33JhB1llr2tDyvMAN0r1n99WwX1eeb72Gdiay7ANvytLK7DNvzWGhMWMfM_qscyRVjKzGc3ngy9q8ifGSlvKhbVadBAAufFFMoNxaSpQkU0dgcrt65PwTP866zRc7n9bMCbUHvR4uDh0l6RAaqP7z75vzog5zT-aD-ZxEKrWllX63tgArCtrKVRZAOwrWowDi3rtoYg8eU3caTkrxIGfhMTvdrQJbrcvs1ZXwNy42t_4I-GgBu8gSdEuj-cCm4wvM8qAoa_9toBXjxmqT2BQHONMLDzRq4c_v_SctcQmTo_4MLXXAzs8Ptx6N3U__BiALXj0iokzi9ssIh3I-HaUak6aE9IPah2RLXUBCX9u0i6P5V71FcGdXGKVgq83e3bHZvZZpNOXQOd2Oi6H9lnFitl_keCPXz5kN_vBEP8Lx5FWDz9EBv-5hmMFkfxUCOLWuwBaTruQknWKo65T_BC92MUsXatoK6VpDuu8O2GlzCYu_en_Ou4FAR193oGmkMSOpDPDDJfrhQckSS-fGeO3PD7Rml2CKjKFpI88qWKyqr5QiByma6nhHise9gt8qDlmD9iUZVKhEWfHGXJ3A4uV2vnV5lrWE-Vw60TLPjmgI1dRYl9X-sxIWKoj85I4Odp68PogA4idYAJLFqfQvV6cbhQNn6TF_hO-EPH_SmCOtIYRD1725DenMmnviNQrhxeqBdC539wblq8H9LkIuuXqnQnBSYy7U4e_TK_Qnd-ILhX02snlGt_2wRvJNVIs65TTh1GFTK6JDBbZGWfXBIhgOJL2iSuIoOb57QJ85193xrcRgFdN-NwYO3DXaqQzELDnbiVjFaUaU--bEi2XS80TpehNndjCG1HocJN_oA91ZgDDSZVp5rklpSFUzNRK70toDwY5jEGDTNb2Y4yY-Ca4-Q-WKQNXPXvYFFbr4BIxIfcFmCQgYSe_cBz2FGU1Lq2QiSMO8LIEYgmP6DIoFSoA_Zn3XO4AK2EAxsh2P1Bdr-E4Hl61iX7Yi6eNPmP7nH1oiJ_2MS_kQnoJf27OwG97wLqlT-GYX2CWjHImVVhUXpl10M9R83Mw6FoTRSN9-dXEpGZr-eyNPuR0TbUkzgtO04QSV3z1PoKJW4tBtUfWhEffyBBiMsvfZEGvh8BINjaOO_bDVCRg9bCdsKUH0hV3M27cFKD2X4OFDBekeFuHEUcN_NGMknUR8_ss8MWrPJviiQavlDkIFajF92fiNLXVRo0bzeqTJP6r7YQeRKPKfU6wnEDmoKFMHHTu8TItafZr-bKln0Q3E_-Ni-7hQSC7kwmxn5pGSmMoe51q-b1AE89dZ_NTg6l-8SmwvzvZ-PbFwO1vGn-AWwbdZNzNMVpyb4w4nvzq8dg9FPgIgLk0c9fpuSWHkYLp4tW7DviRLtZy7EwS3O_0Jwn8kHx71YBzkYYgJNxMSbv35599LqTZOvRjODzABG3WuhDMki-sJS_VDxPOaHLs4FIqHA0sfLXeSzOM9FeI2Bk3yOuWyPJj37ZLi6VbhZwB0slFB8EkHLiPziePmXXVWQ9Ek5pW9_qUMlM_BSJxTEvn80LO7z5SE5GXdzurQ-Bvlqar1zpnDLYLu-A3ALW_YCt93fwhWLHLc9iS3PkDfMgg_R6BudEeJxdQcR2t5yaXQM9NnFCCgXVxsEGvGFbj06reJSCj_ho76rlCz3jwcaIiTonuMuFJ_ytUZ_jlr4ggbp-MVv6CAgxtuqMxQj98zuiur805aqroMg_VI-pq6z75crsyIzDF0oFSSShKDZRSa1gNrAD9NM2_xbJLayux4jvn5aM1e5e1N6u2bkPKpi6-ZT4N0HkU0zXLjcvNWISVnKbQJ01KtYm9hZp6Kr53_3sgZSL2jhrVMFKD84ORptTWXGoNl3zxVv2Vi25QeIUoLYyKwkV6xvh4Hu3Spntbp-6AjUNPXEJLqatwtueWwJ3Ro66hyMLrDXFBf7i0DHAR7GTaDa9Ii0b4Mc0Uu0LxUKEU5VnqMJifgv58BhvWtUTydNYcCFFM4srRa2KuscDgNEXc6vM-MhiGBMqssE-z3IXnvauhK5I17Gh9zWeZhR-KZcc02BxQn7-j12sYY8lq6SVzBDZ9ECUqa24C0iIHWKEEDsQoR-33oSqsYFPwQsTmU3H3NViQhCtkoBsIdytmhVm04ChjFkdiZBULNw1ZOipR1yCV7wcE_aoh3KKU9iOoYHVwrr1Bz4Ayj85fYCW4PbJRAi7Vvv-DspyZnxg4EhUAyjUrgDRfGbS_omD8TxhaaPbVZ55mY1Fq_MhGMJ5rMYqhiJBZb4nGYf1T-Kv_H-nentoayTPkeF207ZNt1HMMSfXWLmTrhGGRwpLIyzslSy_T4qASQ5eCtqwCukS6b4QSLCEbm4QFo_mxDBEYAIP24Tsruv89KDhC86suRHgcv81PFRwvqB4Udn5dCmWuXd9IbSSAN-8xEVbh0wogJn_pAAmbr0DdDIWRAMou5ekmzRAaZjcfLYIvZ8mAqh5SHGtOXm9Am4x1iadykrJ2oaQxaC6eFVLo7VYDn-10_5Ed9oL4ZHgmQGapG6ewZ-v0M4nm2eF75NgtGoAUm_M1TlTqa44hUvtFy8O-MKllWuYV_Y-ajv7LApAihoisSiCGo0LmUXPZfyVLTPkpfXn0h8mW9ycM5TSnDRBOLWfAd2ObU2U2xmNpw-QoDcfXpzdayLNwSybZfCK02577dGAYRYYubDp_COqAqvO9prf2nGLjETQjJUUspndROnqtuNeSoUgzmkLKXsTDk8sh9KOq96J0hmsU7204TQUf-5d19_N5l7dJbFU1yO5rMVPEsVISAo3woLnR45mbd-3iqWUTacpDWqrehWnaOdeEP_awyR9yuf6-DhTGsQEednEvhi1nAxjIhlYi3mdOv3ziti3wQ34oH7lslTTROIph4Bs7-Ryx8iAZfeYNCWJv1IfNfpk7MEk9caXdWPNvSchHNmyb7ZTbOND2tD1KfWHkZT4C56hL8DloL7-UO7nP8skCaaw9whBZFHwtGjLxAYzrcbETXr84xMX-F0yDgczLnc8ti6ID6hwREzi5zpVNuFucEOXxwlhouZ0czPjkv5vXh8vSr_wrLiWldbAiXNCQGrQfrR4yieyomcsO0nJPySja0thBSMQhgdUrDWSjeVqImgMjy9DRciC4EESDSrYFHFfUU-HcWQ7uNWjsj6BdobyOxop-1P6yR-6ia04e4oepqzUTHkLKOsKPjTrdc8fapfDeL27uV51HPYoegn7m9yvJvd1a8eCv6nUcE63vMhWdPMq8BuWghj9TROkOM0UpUK5MO_HooK5yUQO2KytczXQ1sBu420EJoLqh24zQwalYpYPTfmVvuzvTJJKTY5TtyjYhJ18SndNty0Tky7DMEjRYBMcBkSorf08oS9WYl4BLTe5leNcfW8d3kihmEuocao60fOlGhBRjocoHzAPamhHDfZJ60QqxgVYsPSDrUk0bwqF94UcZu9gnAl3jJNrfrU77xwJfHpPiQd39oEWRAeC3hajNTuFq4u96qDbMAD9GPxW3MXb0CcBau6Mtd3gKEqZdb36kKQeW7QikicplPokCC-_lf2ggLj9SH80n28WZ_XjkLfDQjgQ_FHb8gE2HkNrtEz7oiK8K_1WMxzuIHvd8rr7qwqkwNs8n8zgMwe2SDULMknPq23xTe7EOsgQIKEC6LqZ8NrDnUugGHi-sGVEZxXTionSkRnTKtXtJqzten-AKz-gKGKYlcY5AaYR4i9D3bf6O6IA1EZJqRQmR6HOx7jBvyRRy7QD3Nx-8x_DHDDb0p-wcXB91QEdk5na3-ekDuK6P4ltIWbDP2T4jEDQKOkNWhu5CXQXOu-wNX2rzsRJe92XVOtAuHL5MC7t3cCWdLNhMfk8DFvdlhFVJe8ujBBeC5qKGsl0AAyAf5BleZbrhnlrafbIu7C0j2lQAzhyilzhsnwDUkfTQAE2uRUm-C8sGj7Tk3g6JBlYCvk3ekDZVTA-7wYlJk1zjDcvoZGYP45swF-GI3VsuJkXhr4V288PCjdOvmBNuovmkcOS_fiMaCgIJF45v0hjY-0-oYd4R5sh1L-wdWi20rtxR9lG3lK7hCQf5f9SlGYCNwDS0wpOMGeCYesh2g42BtNnPZDzRUwkurrhHGmKrulG8a_l1OVtZ1nj1mqbDo89jqefUljM4bkiXkD6MNvUxyytTuor-InW8srPlrgK5jjlnjjfcGI86BFNBO_VScaVU3bYXfvjrdk7Yg8e5aSQmku-GL2-3i8cPdBxiKPUz0X6vyz_3ruQ35YCz8zjb4MykWKkMBU04Qt2qrda0ZBQLk1RhgmZ0eyu-SzXnnvphWG2SE4LDN6U3H1c4C1GrTpSaxJWPsL3QrSJImrxUqvxCzzXsGNpdnR_6tbWIVufLWXktL3ZzBmgIMzdkY4Ux1_LwnQ9E1BIUReC_DU2wy0ChCfzsi0MMxB9ewpShx7OgOe7GCjZONj7c38P074g2xAdZ_-wzFvyAQ6Vy4m05C5Ro14TFCIlchAjVJX_bcB2wL4g3wMBJjylUGWIlF0tUXAaku6MTmRUWo-EyNnfnlWPl2W1fQtgD3sgwOOLU7QPTFqV-VTRTi-_Gp7kk1LwsQopv2vDpzwNFIdSVga0dYx7iPgsF5yAmZrH_tBzJD8FUztwFDgX7cqUlEm8w8c2FBetGgUDVsy-7hyOPcYPu31-DDCj2dGs5weRVknpRwytuYaDs5DWcspPxQQ9d2ycQmK3hzzWPGWHi5ByAsK4FGX8XsjiaC1RboGEfnh-DyGejdLFhXztNlKgIipXa3rJQMsx37PkWXcd2qJHybJtrHwffDc_dCCkOIl7gqfuEObmVkMz1EuMMMnxxqjvCuX4Mq8tVioSMr3g_Hh4kcOiXVSDw_1l_R2C78-wT_CP1shfQHmzpfjLcCqziG6dQmjZxUoyNg2mQ6fPATh5EAYKwnU1Kbwpr_vSI6cQSmqa_V_IID8D1Kah6lrbgheb7MbvZgycm4GrdJ_HUIrBel_kRcT06S8TTEZMGQBpQiXgTEoyRF_whJ5PJbj__hpKN6yy_Nb8Ws2cAw5KIehdW9u0LlD3cK_6L1JkD2z48UpmEXaLtJD_XvZuosSMHoQDNzVpvOVCR8pwqtuW5Hlj0_qEHW5tW0cDHjbH1s-R5pQceh3qeiNlGREZpfoNHcQb_P_WzVWilPq4K3noWdgmdD1XoTerIYJy4ArlNLcaBKGVX5wt0z33KczR8CSwRACjgMb3NNIDLDWysNXC0BspdsP7p6QlXbhyDDtvxIHUaGDTb0sPDUA-lnMu9TBWR8PzpB520JDYDpOjYru3zduENGDQdU0yBn96Du95OqyljbXbhp5wj0x0rcRFanBw6JtndJ92XgCeU54zvR34V96wkCM1XMcrjTBkjsG2m8gXPm17Ci8vzkXy0CJwm9Bu8lvgVbJhyoREzrh_hSq1tKYBhYzJvNRxk4e8NfI6cKWGTEMuiGu_SOnv2FPDIDxwj_qOv5aIpVmsdNK2CmhVjQxN0Uyxogd-Q1QVD1oseu9lW2OYhibPQf99rDT54J3EF_i7pfbUEjBPrGvW9aY1gVNj_KZglmPos3hXGCKWYbmsgjSfyLiBwF07LQtDrustjzc4StiC2Wb-m3uMjzzqiE3dBb2rlvUuSzybHUIuw12wfXZI-DWA6JfqfyA4CcamuCI-7nJbQGcDASluy7Bu2qgUuFHKwZ1ougT-YKEYYtqeFhNnHsm2I9BakEM_U4eEuTG295LOGf32BMrHX9JPim7NN-xjnbKaSH8tQFiBeP9oVCBLe8hGO6wuVCp12jnCGqUUokVI-Pk39szyHgwXHHkSTsmgb6YQMbkGKqr7cIEKj_s3GIjOBVzkve6nrgWzRDPi7kMF5zly3ihaEL6TK8pCFgddlsB0qrAMo4FYvxTnm1kpC7p7engknodpVGOuSelG9qFKIn3-tGqwgKM4DOyTCjF7lhSNaqb_PJQJ42q9f7KNaTWNarQIfWZGrRf_cN8RRfQFgzkrsnuyIxpHhHbcXdBOrPLaOfw-PUE92P-T3WfoB0SvXTVHMBX4ySMHb5QPX5KU_sw7ac3aCEXttGqeq5OJI-B7jBGK_6PaCWouzHWcpMteJvaZalsVm4Fw7OcpJhxfgj0kJSw8nzImtv-G1mkqtLEIO3ca5bhiHwq5tyKHTj0sVKp4nM3sfy2Q1M_QgL453za2yGSJcWAjLsnLC-NOqT5COq7k-EfFeF4NWhAbCrVzpitL9xuBdAYURyGIhjCN1bhq7UVvDGVw6d-oCc5r0EIJenXC0yoDYOAwh6bPTX5LSYVBEnOTRIJT-WoHibAAjEi-Pot1X57T9opdcqJ-tMxNA2Gjp26b8iZqXo81SuLFeWAiXpC0eSE-XA3vnkGlPk2xLcK-mGr7zXhaQ612Ncs8zqzqiNO_e7FPCGZfx7mCF6_nVT2ew6eE6hLtoWYbtnKKV7OcRl00AYehfcu0jas9gDoVQyzuwYo1s6r1NS8hJfSe3jx-fB7EVvcR63Y0gymIAMpel9H8FJAiO-ReuNYX1jG1YWxCqGJcal3RAflA2OOnjtodUT1ChzAOfoKTrKdgzab--zGpSvSkNyZOX79jTY8_KzO5FbHZQktlXUr0vm1R14qJ3ZUQXZK1YUE5w1uAToqjBqmI3vh-rhQpE6LMuHta9wtNv9ht5epycdmLFjjjP_yc6E755vBeN3mS7qwJEmH18uxcxzU6Dvsc4ks05FWNg7e-8JaBigze_8mI2x-C7Sn9lw5GVwOBLAd2LeN158BXU0nua3yS3hyfKeQlz-G4dSCy5BdsqI9xeVkf2rImtUrVqLqcL2pcQjMnYxWu_vrELVbvhQ4PPbPGaqegiTXsZIFyk8oYb_eQ3BezyFj6EV0D9KdDq12hmd7Q1tP65lpqYpjyHcyerSp84OmP3cv83kkAmKlqRK_qJ7a-UisevcsLEyZrLeI2krXW9hBrh7S53rJcUFGHXBp4xPMF55Jt7CfxP4v9KGWgN2sTtUADyKq4gGW6bwA_HsrPYXHsxPH2x86K-TZ0G9ijSUjdsGL1JK1th6xOYC8f4pYN7EuAqQn2EVnTDKbFyT26tKvpU45nsE24l3Tr9stbDtvI9zWwQkPokZ-PCEYIci--izZVe3OjQ6kbIOHi12mSiubOBBNyp9vwWhv-zw2EEJeUdsQuSayBpu4q6PHjPj_DOtkotMCmFV14C02z8qW0A06CD1e6RLvXyJClgwloO8LKWXohEvBlJzf0YMdVHcbBpljPINGcmJKvl3TWDPq86zUnmz7JsPQkq_aSCw0ROZMB8DBd2yu10nbLxGFmtfj_JgcK96U2NKsbpVWUWEV7TGZ06wgC2WZHqdX6Nj-jwcUxYK_Jj9HTtVmce08eb4-CAOvdx31N92YkVfdnrRmgWuLTDGviIS5cCIMo4uYuUJL_Xth2dqjm5XrDnw8aZ2I5q8zmWlxuR9jzvfPGDxRuR_9ZW5v4-bJP-ilE1F5gnDXm0s4JboTkNW-nt6FX4I0jbz4GMbZR9gTKvtfF9Cic6mJC4bJoXhUpWnLZ9jfoiaH5M57d9Gu5qjUgg9v2nfEph_E0BshxPFHa1d8QxVbvqRrXKSGxifNNuoPxpihxEaRJFJUkNuXsi1LpoI2cW4RT6eXY5-kqyQOb6zFWVeeBfCgyMaCiljKo4WGCVrD315uGu_cCotCaKLiM5K145y-e4NbB7G5tDE_uTt1IC-cs_yRleegnXCD9RanxtPkm6riXDkGfrEMolh-h96K5FGZ-FaagCzj51ks6i430qodJgYLEieNnJRRzdBqCB1rnd_YUpnbimi4WOIJDFASAiVHDaquipl7Gpa8tf_Zk0GrONZyLCuur_TD-KSPa9TclrRAqQBTpMaGJvRKnhojy7HbzofGKXLWYFjDc8TM6tl6zlsRwp15z0utSMQcutSdn6qd9Nb02mKzcZvu5YaI4qrRfEv7aBFKB3rueQ29fs78UCFhrDIjzAPw1511DkIV3AMf5-dQSyesC5azZAdpOBXEGYxU139YXQZpRtMIovi_7WQcGlCDkytyRTAB-pc6PRtPhZKX-28Xg0oabBTYNwOr_DnLE37gfLw7WF0qpjcFUJEUo9batFkarzPl9rWUjN_jN1R3cBsoeNXFSIe8VHR3qnN05K1qjk0qpKB6gPi63qY8Pj9eu_qj-Qd6mHDL67Q2opifte3lsj6biP7sws_nCvbsJex5ECWUegFM0JM8yozb2v811v_nAXOA-bTLI45OKmjLmbT37jl1kcTHl2tzzwQ9CDiSwmBaJWr-V8_7AJvHPxrhf15WAYh7JsDWRyIC7X3TN6yabm_oqmi8dOY-_sgc14VPd02fh7uzqth42khWWipz6ADaPMkol-ZJD2A9MZByTs2xL6CgqdeWb4PXext4WN3VXbelrLlOnnUxlItZ1XECewzJN-GXeVePqK3Jk9RNOTgK_xjojBKw29XewZ8r5pacedYES_UwWUM-IbYZrxgN1Bl713HTZ0d6abiJZeLqr3PjyJUyuAyI3kJ3RGp_l3JufXC-g3YgHY2-wGRUgRmT77idc5ZTYuSL88eO2Nq439opzvWf8UVdkDUuN2AZaiaEnkescK5mY5HnuKX36nO0gLC8ZOjk-fc2VrsZ62wEgmyUXIiZvaYOsYx6FRTtKC8ub07B14TiHGPJeZzlx69IJ05QVVqab3pZMOre9PBVBHnZ8GV2gteU8K11EHs0eqFibLaIQBJYoK2tBWGABJr9yB5YsVFwlil9vQkctzcr2Fzc6qo_EG7LPEbPmvqZwZJLPr8AzHZEf__FvwjzCGV7pFOgVtx1GGpihEYz8QcaeMSVw96fype1C_pKC2xhPFLPMHXtAnOoNj9-mYsAkAy3rn6WbPVZigGCMq--3Mv-HW0vAOFWDPrS0ex5RDAKVJLbF-qap27He-_onVfzmnxmQxzdca_L7cPU4O_tObuUbRPGDbTwVzAgpkZ53hnxmDncYTLAJGIKRJU5dXVSeMDfFDz2ps9mcTZ5OV5ppJEx-JMNMztip22qBiAgBN-BJdhNFY737MKRWEcRJucUXhPFZfhZ1grAnnqm2NjOMU2zrNklxwwmMlZENe6OFfaHkBRrfXW5hE3XVZUE20RcWM7T4Vk9AZLhE6slvXC0l6jTk5rP4o_EYZHgrTfvJjCMUrdSdN8DAVmDNRQa2swU7RCVYiACNpSLEFu7RvxUL2a6NFjKxbQEO1LrGqb82ng5_cXb45wmh3PxY-EYQqoAX3WEy8KkaXPnfSGEiMnU67v4UQykSgAlmmf93v_SGPK0puxBzj6hWuKivfvOx6klY-MKtBkpPdehyhOcugyfo4N6sKkKkVtg23ri1w-ZtN_PBpHWB7zuv5z6NBlbgbUaLSIi-FOf-yQPkfsy2wrgIqzE665p9S9JUZ_fATdAcNcTFFC0Phuye2DhB1KdKv563SU7N5rxXhl-yreh3mIrWLEcjgzx2t-EpAoTw8unoG3ipEaLJ96cuMS6zywh6lsL-NWYx-obSQEL6ejhm72FhHhX7NmdPZs_Z-UD56o6Y1qpdJRAU3uMIcTlemP9sAAkWDDK82I88JOwW8Tf19QUMhfs005dUC0oNkXaxgcM-RHMHj5XcZA9BQ3B5cLw4HAbJTSqB75-LZmeLcq_pNlwE_wI_Yu1HpnAMawnKJYTtY5V113xaw2l9mHH4VrU2gEoVsXa3Uco2x0ZdLqcD1eky1UINcc6r6zHA9k6zvYU-BQaTNWa3d1QlEUCjZJ9bMo3ikLs9ydHxHN30cN8gcpxlcKSQQDyEI0Ql1uPNg-OrBnvxIjxTW_S-FjS7hVZqVwnKnqHwANGuTeXz2ZMJzAsqjEj6fsZ9OcbhVVNGnN-aSVA5-ah1jBLTdy089TY9CelTw_d0b9HzPwByCDiBCxaJAqT23q43g15Kk63xfhbAfEDvMCyjf2hprG9FhuiUe06l-P1NHfqeaylSMnbfLht7XJdMfEf4ZU1kvd2F4G8JtUq1v2mXUksSChFnv08YfEhhQ2eOEHGK9Bugggo3Xa2BpvOL-XXxGObRwWMzXiuMd5x5GJYS3tq58zW2P5JQevwdCpc8Ejw_zPwkRqmA7EZWxNpiG7oaCP7glsADuk1hcn4ZdQY1gcoSNT8ZTa-d2_b3wev1W0DIBY4WS8YCrLlUg1O3Dgv7WFxvWG7V3TMIRzbPtu1-9q_C7QxRWVZBRNKjl4QPsUYx0H2NrpeHJYQxy5kfRNqP0rvgQbdmCNCAOYwq5BYrQqVJS3uVdJJrjIPZE82kPCJtbvnjQ6Kv0AufC1pf0iim-VhiT-O7_ACBw3Kspx_zbbWL4qn41Gh5__KW5LHt5yDYmxJASwc6ESuIc2-zjhEZxfcCzfvRLyYx4qMXLe4ojbEBGNkxiJ5ru2zcNeujEicX2-TyHcF5CiV9oVlUKGXEZfCchO9LMTvEhi4kwAsIUPwLHnxEWyS3D1T4o0An6yr0iEHZv_sXvwq4XN67Z7b2CY0YySR7x2t_v41N3p1w3kJXLVRoKkNFALFlASMGU1mY4Rlc2UNNK1RJV32NJvPiE9Oo4ybESvyJR5XBcu7LEos23qonL4bxuj7A_HXCD46J-T0MvBgzxap0uWMX3s-nV0ieqiYLdsVFLOCKsazX7P8VTzB_UMVszwnu0hsd7SCD_BHDM_qBP_orfyPenR-2-ePwmRiRvtdt2fgkCv83BMnONvSu2Q2V69x80K_LtR2cMyqGFL313W3Os1nRFzhMzwSTE9bYvsrGrc5Y0dtj67jUzUvRkEg8wG9vsLn7CGSTJs2t5_XXrkURAp2XhNCFx1Owvr4T_Xd_cw71SQgNIkPMPAzGph9X0MemEwQBftbpGRP0iKaCGIjnLPqKNosHSoSiARv-tB2SiASMEUlgjv3nQ_Kk0ai_8MmbO8NGxfcvLVkm8dkoTQD_4j36oRQ-Qp5PhRGwrpYpWxMo1mbcqqBw_sBR2H7bXmfmPE2qJiz2Dt1XP84a-NbRgPI7yodaV0LrPzqIl0I9l2PNlI91FpwUk_yV9HntpMuY7S7_InG8PWkEgBQk5sjUT9UdDOlaY0wcEOIVuDxuTgnVAppgDj541yb06XXk-nA0xwIl428iI5oGEwlOuPxin-t0NbI4S6ZBNWps1nuHazBi4jTYYhuFtGGo5mOHphNg2z22HQtrXId4JsM03UmSLo3NbQM3Xxy8p3XcdoOtmG8myHRMqZ8Pqc2_P0W3d2fUoZBWByP4NLePDaoPT9DoOn3zEVyLWEaGjmkbrK6tY0ATchWZ0WlHEw-Cghmw-83mTQBWOPLQo_HhDUnu0CnGefXM3E3TAzF3_VXjxFHiq2iQOKP8o-gtTQ2BIB3bV3qakNlRv3qfB9TbmMzKD0jQDB7KLRbOdFqdMUopXoeFuZaFyKBVDA5JzxyTgwYkB1rFpbXktlm-BsdxVfypZDujY868xFy81YkKDn1N3kl9VKi_bMvKZK4kX_zWZk_-6F1htPuHBaf1iS3AGO3ZpmqubT2QxBmkKHdo0Xa0Yc7VU6g9G5pXoImo1llkJQ9qLkASp5Qcyp3IGyy9dAocomK-JQDtZIjVvSbfy2fFgwEHvReETSOFVV9oamAZu__NqRWb7QU1tkAiBUgt4UNoP3Hziir6I6FHgvEZub1wZG09zt9wOFddBdX1eGP2Ole5YYyYDVUX8-8FAWxt1QFdhJ9c1CTOO0IswFQdhJTFWA1HQpbuhSTt0WI-V4Pa_fA2nUy4GL-NZ_Zpdl1jdNIcTpdGItRGgGh4yNAHyknIB8JGpTm8zKuwovcdvjBMIz44o7Frs9qK1J6RreTt3Yco7OyaBWo05pxSzNQvcOjxs_kVFXwnhVd_-dqS5MgbSU8BRYTzyzmbSaiTISWfY7e9BqpmyKFpP17Dr4jRajXOnGhvBsUVvm4EqClVJxVspMjIMXJo7xZB5MbRqTCurO_AdQPHE5lv3v6fqwUjOQj4v0qmKwXwXNNs4fMhuTATARycGis2mV9ducGodjmB8QJimuryHPpHnH35Xpz_6FHjf35I89NMiT885knVFgC5HHOV0cNXWcXNTZ32tIlk6Vwe7X09xHN4Qu_8ax8DzvuY3hCfymr-TrvYxVSY8GBJiKtmrnGNRIRO179tTGodhgsj6s_aB94MVgi-g4WfZzzJUPsogfMHJt-y8nsYbWtAP-2l656Tdqg80JB7hS30dQ8hBk488tS9XM7FPaoEjoyoNLtuNeU2uca-lHXAajnMcqaL7tqYFzFVw6MHIoU5L93xkZ24mRu_Gxn2QOCExk8HpXQFI637IBLSYv8s472ZlurNe8ia18reOuH3UUkM6Z6B-KYZNAQpf5AH6M7N84fW3yzM8kmvGk9j5wG0WX2b2BntvuTQjXe7jzHcBGf7tqotmFzDdRm8lsHAX1gvaWAGvgA97oyPj4W1bUVCL7jETnTpeQe_btanuuPIme8fnn6GkXxXdBPfgF0IdQkKlj5E34oJ0SKIvB38DzZRJhHBmQ16e7IuI1YRPklwDC8CC6ZN36LNwzVb4QnIXtbd1EAzKJQYShhbUhbPtD_ZjRlf3Cc5KaFbISya6FxmDz3zoctinhNi5M9dA4W8WrNEEhguk5SkCsNmPU0e-UsJS-oFL1X9eriAKr9MZ7WdyDpzrGwTZqgSVJhiS4mKNLIN1TsPxomcpLUBXdPaua12PRkje7cStppEKMnq2V_soqFYFdqygjA-Z67wo2Z21RRSVI7eDOrifLuCGNSuZXEmIZ1QGcOarYOPyxs0h3KIFP312LNOhlHO9xxIgKI7MSc-vcQl6rN_P7I4Wwnxt9usvL9aKXChBBX2NY6CjpOhVQPUQASg7OHD567o2tvMyp3WpBxODq0ZSINDTX5ULUukc8ZD5Np4B1v99-eQfVYV2wRxHqkk925ErDhwZuNVI20BpH-LCmi3MnNWpJGFAKxNJkCplergIVfn0W87bU00vJY6tFAiur_YpV4XRd2PFoN9Em6pMwFKqKdgcPZJtjyFa4ybAtsHuMYszaFU6kXxGaqErDmqi5rvLZtuehxGGLE1S_wfpQEUjyyXmXYvDcZ3lA1m1bM0tgtSMS07dlTGi4Eqb9GM062F8X4F2lWXBw-kgUalcmzacVfEm1q2h1xqtxxK-pxpIUil3K9Jz4pmWzkQ8CZLOqyBk8sxxKiNqVkt50Sz4DpSDUvdKgKZsB_uPsMv94pafK5ZhJ3FA1k74hcixIHNSkF699TBZxkXihC4D-rWQMWMFh0fCcIs7Pn_hulj2UVFZMK8RlpvtKf7BiWw79jBt3uj1ElPI6f0HskvAUUxI9L-g3BSFjBCe9bDSDSnWhDMjz5L9VMKUOKMOUPmtq9-urC-8U1-UYy3JcS7gkWiOFi-89JCyZWiJM0kszhoICS3xF6P1KGyhdyQHtTfh1LnMi5rzIU3L7vgXXsyzF6UFvwvInPe9So_KUV6eXVa-A4hUkvhzX8Etci78-KlqHtTy-7RtZgEbBWOohqHMPd5ywBsOQTu2KAbUPAVzA8G-jnKaYdbYW77563UdmRe6gtwMY5IO70jdnG_lm9tTdIR9GJCkgINye5G-vf7oTL1OA-Xfd1eu4pUJ-w0K7EAliIhV79nrMUiUG92SH5oVW9jQG-N5sIIyH4SusS8s4hGpQkj1LJz4Wd8-tuQOCGRvDXBR5aICSoIULlQ3CcMCmBtcEI5E5np_FyCls4HLGDIOLEt7UjttovHM6HpfoUWlri10uXyECSzubpntIlzMznECV74ht3BftMHxxPbQ2ZJeylZZhqsCebJpSzT6pFPNyJLOg4yWULbb2Rb6HoqFWi02ZULxaQbehL1Mta1KfYC1yLBwov2K_vGslqKm9QF2AkW7rGOcTFNbG5qE06zCouurJhGoWFDh4WWMhzYgZ5dbrvkJ3qTvjO9cxiZ0OAenLoLkO0rI--K2f17W5OY7AEYhnd-3KerOz4uzQWuKmEVZrVEtg7ZUz2IHhP8a8sK_faMTgCdV3Xt45E5a1TR3N_lqGqKDdIZWEPRyTs6WsMbR0vDa8DovQ72umXPFagv2T79UfeKTqNtmSodDBJmRXQuSe6HZVgHzWxelNNWgRB2tFIlYoTShg3ehUQ9IR8NUswHoxsmEdu1TVX6GQvi9Au1BA-o2fcwM-gVWpyonrlcJQuVYHYrZmwoof470INniD4q2g417_kvYXe0kslbrQYwpEbyzU41Z8DpUdZpon9YE5jWpMs7S-flMDFC5oAa9__-sSaovAU1ykGNyFoabjtD-Vf1yqBswUYPgylr5KUSAJ0uN1-awpC9uUK-qZ6Hy7P05vms4PLmp52Rs2gDgKKt3NzBMFxE4POG4bY2qRNHEjtDgTDoAIiojTRbiKZZ30T9m8JMRs1_fvqEIOgK35bG9fQH4Q7eFIsBrayO0eu-gEG3CcXo8ACpZKsx0J-qFfHWxcRKarc1xWORfZaH3A14gMinUGCe9Su2dJMzF9yjD-Zd67Kq5eARyyxnAdB-5QGw-EG5Qgan4Z1DkdMPqKo830SpbipWWDFuSQkbzriHPFKoBIZCb2bxfnIKdNOoT64lhjUKwamdD_qFDkMaYK8gCCucRE5CFtS2gcV1Nwrr_cHU7d_uA_irn4_WmtgSJlDk1Vz81ca5dOmkJEWVgP16BMlKOXPJSrFDVruoPuq8tA9GMSzQMy87ivb4ZH7hRvU0D37bpQ8GMUBgeDRoSZQb3s-kYiFJ19muu6hcv7G3vKWnx0F5h5Qhy2TxGUopL3vggfpIKbv_b1xf1SBT9EkEpIGTyyNA6GmUIwcrewRoRczCt7glZWp7rfKcFfffdm96O01SF9H_LJBr9QsN3HXoLzILxzve50b2r5qBHxSp1QnpMmtXa2ykCU_UyEwl5syRBz9CTXkNMbXkVotSU5Je2Voj0NTEjimuvNz3P38BXNxFdB-Gx8hCC9QrioQLnzcfn4k4JBbeJxjuSWilHIPtISCC0D2rCJpLYM8BPNx7Hao7c2UQc4lomy9OSryOo3zu6AF9TGCD5rXFkvHeZTwLItUcL94INkTKHDcmLu2ToZVf7d0zlq9qe5Jo-2tHEiCEt6rve7GTDWZDsrpVzNaCdXhYenuUskivcxV8rEmIOav8NTVyk2PBS-aIO4Mt248ClyVozhQ098whh6B_1pOSlXYnz3ZdEyJCaZOPUO_Ps40NJCTfk_oJA7-9biZXkKTAZHdMePfGceFeF16eAvsmRMBwH1-JDOnjRogUw9WlPKgB47rYA1Ofu3Mn2s9wIBmTyPZVm3ceHH0dCwVuiG1EdQsgRLZxcWiGoThxNKgF6JGRnF5nbY7ao3e9U_0e0LYVrMXdVjo2Q45YX0sYA9aKKFBohxTgYXXRP8xVGJa21aQvf9IjQxRR9mDDcUmmElyiNR3F4ZZcFgpGlNfxxAE0hxoBO0YNC6L2cru_wLDtkH24hyIFROKmfblAXS3C955N9_BeAdKx1jD2gKQcI7UIiaWavaZW27vuLgfxZjCbQM7pPqRTpHRG_KMZ1I27bbbKq0x9v98WcKEpe6d98in12xltvx3Kn6w-0_xaYk-CmmOADqPabt0nHj_9794nyJNOAoFutGF1k8WmkhUTCwKp-SxungnVWVRAiv0Wa0ZrsBM3J8Ob3Ej_0NUCfOAZwJ3dC-WXDVIo0AtAYXvopzvhV6mcPezOdWA5wOlEqiFSRSo5MFofrZYIgd6ACAs-4DxvmnDxldI5pPsapFQtXmVsT9s-uAghiEBRoXgi8asXPp7T8YdxWvRj5DRY0XXoyQ8lYGa5m2Sh8TzmB6-nVYBYoU5GNRh1_HM6khVW7F9Ch9oGMmnw684J-MxeL8KSYVnRtVjVuAIaxKTsXw4qlLir_KrH6N1J0zJcgsbTlPKq84jZi7O00W5c2yrSqHI7CJbGsRuNOIXBGUCD6mR_4OgNEf0GqgaBeYbyTtQMRB3SppDRgO_R6tDLYH7KksbLqzisk6RUmKrtxjgz7tEP63-1G-94yPheKb-AFZtGXQwEK6f81EQTAycbFUhXNehSI4EbpJhDunua76aNrsjQc2nnsYexjLGpseATJiaMEuZJfQtPJ-U67HhSOYpEbb9iiQ2emwMls5Ge_-3mv_jTROj4XS6qN69P1Tkc5xrmo53bhiCcyXJdfheMvzmAQGrZ8kMrKLeRbgQcZlFTbvs8vIBfMg0tubxmb0MnoqpB7ceixCxtOWXkXVjh8pPizx-L6jzrWaNlhwnyk0ko6Q4QGszf9bCpG4h67QyhgF3bbHYypwQYo450rfGe4tViYPh0XuXurCoJlvCpWBLlYNOypRa1V-xcsfDaVFBFLo00AGKU_Czpo9VM4WsvnABIbtc05mAL_V71GTUmtMuXSq2qdWq3g-mnlrg39-QX9AttTrsAm1R3mwIQgkXIvL-quwqFS0N3iFSMFl0aJzj0CbSUOJNe5GCTWIPMa3p1YChr8_hn4ulUoAIFC7gNybbIYk9StsbaazxE5sYKIdUjSC86ODFmd59tfXzN_5PZyoriczH14IH4qsbiIbhzLnT9IGmYkJoEt_b2cLBMsu3t3Bgmah9Q53R1i-L9cmLV7veAeu9Qid0lp8igHPlCJa32vM24TYwssRAYuhJue4csPiwXMrly39zX7pcpm4X-KADZwi8yeBKubL0a_E6c4agvL73Sug-Bxs1unQpSQYX7QAwH3lDf3VQQDiQ0YrJYTFHtat_HwtmYxZ9ln6RkO-UhZwugGhdZ6kNqnSw9W86cL-RPZ4_13d17HGe-0FvU4PIQ0rjALIZ6HufrnoW8aU3FYxNEth9Hdi-2dxn1fN-_qoqdzlR2s-M4G9NYJm0hjcZJZ0rHw66XtXNw27XDw-uIAIQ09x0WAeNOmlRANR5axxRlrH7Hl9fkOoiqjBXnnagPTbpiu-N81IxTaSgJT_L7QhcjKtrAIgHXMqVzQNQT2vKP0Ycm23CYgaLDRW7fKPUo64_NvfCdaDrJzm8GwIFmZFtMrXi320vfm_3Jy8XsSzyK-E8RK3wxLedAGtuVmmhDx6HRpx25ZAH6GlwOrcCh_-7ADF5oqaLV-wmXu8mEmlsf86ki0KPvR247a2eNdpZgobirHs1CkSjGvGpEh80djzIccwBCYaepAsSQ5bLVHFDm5jynRUQtbAQKtCb5t-fzWitSytIEJ9egwNtZdNUh-HqEiY4F_-WzEz5AWHDDuyV9a7YWy_hYbqrPdxs8QuUB2fq9SNxLxCQYS6VCU9O6a4o5e0JbAJPqRrkCFaa16ZEwa8F4q9UQKif4MmLUu0yp49zLunrQ18nR9GcG_B1AYzzE4jMGRbWeO_a7fQsJjK9NmEQrBvwXHO_IGQL0rI64OFBhdv5l_KZk5hFx6ITVvO2mS8sgoETOWv9M9MMlsBVA45WX1ZBIpWYIslJJdH1KNNm4_9MwsT4WVXG8J7qkD_tR96hMvPeSotx1x6knN-xRf3SYkcZA";if(!e)return null;if(Ut&&Ut.sealed===e)return Ut;let t=null;try{t=Rr.parse(JSON.parse(vn(e,Xp)))}catch{t=null}return Ut={sealed:e,bundle:t},Ut}function En(){let e=xi();if(!e?.bundle)return null;if(e.runtime===void 0){let t=Date.now();try{e.runtime=$r(e.bundle,{signedAt:t,fetchedAt:t})}catch{e.runtime=null}}return e.runtime}function em(){let e=xi();return e?.bundle?(e.keys??=new Set(e.bundle.filters.map(t=>X(t.slug))),e.keys):null}function Tn(e,t=!1){if(t||!e||e.length===0){let n=em();return n?new Set(n):null}return new Set(e.map(n=>Qp.test(n)?n:X(n)))}var wi=null;function Cr(e){wi=e}async function tm(e,t){let n=await ro();if(n.size>0)return ft(e,n.values(),t,n);let r=En();return r?r.selectFor(e,"free",t?[...t]:void 0):null}var nm=/^(?:grep|rg|find|eslint|ruff|flake8|mypy|prettier|biome|black|stylelint)(?:\s|$)|^git\s+(?:diff|grep)\b/,rm=2048,sm=8192,om=32*1024;function im(e,t,n){let r=yn(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 ce(e);if(n!=="compact"&&n!=="minimal")return r;let s=r.endsWith(`
75
+ `;import{existsSync as Fp,mkdirSync as Tw,rmSync as Aw,writeFileSync as Rw}from"node:fs";import{join as Mp}from"node:path";var jp=new Set(["0","off","false","no"]);var Ow=["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(`
76
+ `);function Hp(){return Mp(A(),"network-off")}function zp(){let e=process.env.TOKMIZER_NETWORK;return e!==void 0&&jp.has(e.trim().toLowerCase())}function Ar(){return zp()?!1:!Fp(Hp())}var Fw=300*1e3,Mw=120*1e3;function bi(){return ki.replace(/\\n/g,`
77
+ `)}import{chmodSync as zw,readFileSync as Up,writeFileSync as Uw,mkdirSync as Bw,renameSync as Zw}from"node:fs";import{join as Bp}from"node:path";var Zp=k.object({payload:k.string().min(1),signature:k.string().min(1),enc:k.literal("v1"),fetchedAt:k.number().int().nonnegative()});function Jp(){return Bp(A(),"bundle-cache.json")}function _i(){try{let e=Up(Jp(),"utf8"),t=Zp.safeParse(JSON.parse(e));return t.success?t.data:null}catch{return null}}var Rr=k.object({bundleVersion:k.number().int().nonnegative(),signedAt:k.number().int(),filters:k.array(Ee)}),sS=k.object({payload:k.string().min(1),signature:k.string().min(1),enc:k.literal("v1")}),Kp=10080*60*1e3;function qp(){let e=Number(process.env.TOKMIZER_MAX_BUNDLE_AGE_MS);return Number.isFinite(e)&&e>0?e:Kp}function Yp(e,t){let n=bi();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=Wp({key:n,format:"pem"});if(!Vp(null,Buffer.from(e.payload,"utf8"),r,Buffer.from(e.signature,"base64url")))throw new Error("tkr-daemon: rules bundle signature invalid");return JSON.parse(vn(e.payload,t))}function Xp(e,t){let n=Yp(e,t),r=Rr.parse(n);if(Date.now()-r.signedAt>qp())throw new Error("tkr-daemon: rules bundle is stale");return $r(r,{signedAt:r.signedAt,fetchedAt:Date.now()})}function $r(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,s,o)=>ft(r,n.values(),o?new Set(o):null,n)}}async function xi(){try{let e=_i();if(!e)return null;let t=await Ht();return t?.signingSecret?Xp(e,t.signingSecret):null}catch{return null}}var Qp="tokmizer-default-rules-v1",em=/^[0-9a-f]{16}$/,Ut=null;function wi(){let e="NnjAHOHBxO45LQIsqHfPl32IfeDXJmRuw2c0j2w_MXMlsCrOj5JYnj_TnWFFxU2Shde2DxYlxAtqYK7bNOy8ASRKeAHiJlTzArBO2Y1vtDWESltvkYB5TGd0pDftHpDyXUSsWHpu9pEoqrGmV7uJFrT2B8L0ajWe_poJE5xEKg6N5qaLnwpaCVyo72IIEGnPPiDIYEXrHXK4WOAWxQ-CzV3dM6Z28FrjKMVEjdspEs7hw01WRfA-4WTkH_-YD5IDXQ2Yj9ifuvCcEXdbirK9eIIsUHf-_mxz9Wz0WpHQl1xI8HunGWEgk4J51BNp5UwLNcJwtp4_G8lMmoRc6cb44Xshkrw9UfWM1owhEhcZ8sKNaHaMURv2mVGzOJ5KDZVwWmtMacvmmdRAh8t--_TJaGbokzH6FhQIOIP-LgOqPIG1YrDCt6ahQA8_Eu_3BVJiJKlU3q-dUmuECw6w9rd3Y_F4ZAdZJOjiXZR57PlFxQ9QiinklmqldlDcvXHP_jVjGtX7c-eez3jEquOT605XS7YcL0DPCMTLemsQ3ZnQXoSlKYsrSXE1mIrern6sIdVIuEwLyfSGEbz6vxEAc4ASzXaLAYOMy3t1Ojp4bSn73bEiOPTPugOdAhpusn-HhN9EiWx9A1jJckZeiRi6EkY1CzANHh8Zr3afTSYEV8rfuro3gCLgrHpEsUl5mB8g62E0WgRm0pIlygTwAnpdSrdhe41Yjrdl5TyUTJ-PGE-cHsQ8xb2Lcghua1akNfWO-WQBlMPDvEqagSxFgX5ixCf75AkkVw7T2E8H_QsTo0KdXw0LZK0OldrquzUJI5QMvlw34D_HTsKeI_Va-w1qKbvEnKLU2pvwfKY3EnvJvv2xNCn0nCz4QAAJ6GsFV1zckoiqJDf9p5tL4F7yPK-5e8TTQ3dIqWE_2tmXDrt9xV7nXElHZ5EVg2vagNpevX8uZ_yXXb8YkfGRmVKyhwyJsX-r2tuwgO2d8R5wMdMnZDCV80drk-r41fUehqwhnU1kRMdifegD1VnvrlsUIeyCfPBB7HYKKyFY3_eqoANPWBEHmx4j1hor_CNV4v5-hFM8NHnyfEBtPeoXp3RxBMnyvgmz0nzbSZlcTf1IJ6qA_uqX8TxxYKzC1Mh7jsF8uTsQf_OEUW-iULXjgm8gNqIPrqR2EsoZ8LpFP-I7XjmA2D9CUjTdZRNwd5nNxUSHkvHwGS9-OE-8z7LmHAsXzk504KBKJb1vQ2ywEbCCTOui3aHaR2BDWnfhj9-EMrvsluDOYRm1PvhNF8NMUjsR5PWwKKYEsHQiYV1doTb1jpe2VutPYHmW_OYXXrkWElsHdwUJbnUrbjt9xhfKVwSZhEn0nRI6oHAEg_mVAdrE_kwy7ESdQdrkwDr4Nqz36hZZl3VXSLtCnC-GPSbhsOHl9Bl-69tby8w4GiCdyACLoFKr210P43Dmg1oHIR0uYZhenpMYKM7CMBssM3Wnudnk1QyoTSGgUA-cfLAhHFL_rJGdr7MJf60lyfuc92fuP3A1V7DPm7GiRkskPdouiTfUT-T04T0zeL-yLb5oxiFozjWKm3LwuSJ4TxhVycNY09DgB5-gpfRHnIA4250Q-zmjl3EBQDwDTFYcmnW3jrffN4ZKPwQdW8Ey7LTRP9ZRk4GD0kHb_TcQ5GcLg3jUcFzWowCy-HPifxXIADSRdhoAVvvUXSHfH8QmAu7kRI4E3Kkn2EaejO6L5purwcfeLzxy5jTTh3oVHwl5B8iS-bwj6p2dSiYH0_gEUp5Lbo-XAIVQqRQmNHyi0PdGfWGtaqVL8N9jzA8yJ3GFzyVnvT9ctOwUnLAAzxgEwkIY-qctCQuw_W-VcWjCV-64vEU0kN3VGH_P4-pU9b-hsWaKGnBdZGd-wA4-yXt6Gz7qNofyaKJY0zvaVl0IYFTp8UmyD8KEVuffFYLcucIWx7HTJmAEK7NA0AMi87YSNaS3CU0lC4YAksRrjCf9kQJ5A3PoOcu8_MlPZqivbtZxqkgqrOV0R81d9y-g1yPErKO5JmUyu7xjEK6PmO20WNluwt7MN3NHvVxxNRH-blVwulv_LZt1SPTI5TNfW2q8OUCtl8tCmhFW-qMfMgciZV3wNG0Tvq1FL7gyqSE-hZk2tWlozxFWSUDPeVS8UhZAdSI5WDB_klPyH0W8_VRVe6OkHbiMqOeoqvRltgNkAA3jxVF6NzFKzD7h7FOb2y0w9HHHg_jvDzatYgkivgtNlZuIPKtLmuQJt-_YTqSVE1T4FrsnXG4knmyzvHCrK4Yl0aZCciyU-3EJz2kyaG2RitJ61eTK2wUcwiK1o7zDV6jlnG4-a4MOT__eOPdyBQSjqXgaDX9yq2IbvPOZ_PdJq2OLu9HUTEIRnEj-t4pcdxmRvgZOdYDm5XYeT5GfZKqI9UjDgKzyi6P0STuVj2JJNWOhDv19WiDOBBe2nnbcdlkj9h7XHcD2szWybYl8DoQN5U93sf43crD3tACVXR-Kz4xBHPjZL1hb00DoP7BVnyEJALcZ0Nce17ZZAwegiC1WTp_VPcaDag9gZZhVCf2QxGy1mrogb3DLulo7o2QehdnZ74rwaTzNdrcIOySw4xp2MiRNWX9qnZQNeFxGr-2pCJq0cCk0it7NBcwAyHhJJ7Pb7umA4dRBvHhusOA84g3fuWHnq8aSjk5NcaiYoNoPebUkDYCNuC6obh0wcZJPb6YE6B0MMjxejQVgaeARXFik6WtnJ0pFuhj-wJEifb-43txymj8UAH76Intp3NjWby9w8pmf_H3zyhXLEHbf0EtHdUpv4hm94dyK9eDJz73TadYeQ-wPbzJsvPH6bSkSrA7r_iAnehp5eUQDIJR4F7HNM0Yj8Otcq6BOrB-Miv_8axImzFUOy0mdkTJsdJhx332W2aggVsBvgupmUSP0gcZKB6DERiUqze0FbTyoX_IQckoS-L8zpHelUbnXj_D37QlvfvQA3QKn8wPCn7i0I9OQbA_uRbMPIRjFwKSxNPA1yqGo4TCHduxqgKuCGeP8SFlVBzvMPC55_QCnGh5P31Su4O4xOxjjZEarqlBB5SJJ8tozfUyE-vBF0Z9Uz9NjNZPQ9efqLIDADRRxjYVh1Yg8fr_SK9S4qfD2BMYwsVjjZQUSiNficF5D4yXGVoFvNytuqEzceqmfkRuGjr4xsyIuKZcqj78kdmVV1hfhYxyB64z_QY7euyKVssippn8is1wNEuXiOTXuD_b_sZfwF5aF1UiAkITa0dTUXTSQ0cOqjj59axgyv9_6kYDMS2SX2De-PljC7CGV0BIbt6sYMVNlDoN4Y7kLNL9NMXIEK0kEXmpM6BEicdd_3-KbD1GnkYpPt0y8gRrBggOhWNbEZ62qCXIoG8nEYrlacI-G-CThURHxbV3Yez2M2QS1pxbPiaPo_2GCbEhq_gGaCsI_Mx9eNZuXPpqJ4EoFBWrf1V1ftuBGguKbRL3k3K4_eCxsUS4pr-Gq6r3uvR6yi8xBSprtHESBl9TNzrssTht2jikQ3LUx0iscC3Su6IObxAewkPQI8c6KvuuH-NmSckrOq6ihdpA2XLyiX_305OAGyPL3_p_i2emKOBMvTs1WFXc6I9jOsU6Vcw3Ne5-ojhxDpio64XDmjQM4X2PyHieLzBBUMGJbGJAet_7Ye-ApoPaaOoBw-xR9tyV1HJlkWi2985SA2YkWnhiCLq58gnlPRkWe0PuT9GDJZbFuU7ObprrjCQvJF3wY9T6f2nvoc4namip1MDOzA3N8Uh_vx7rOIl3Oi27FyKix0Gy02PzlaWVszIA1-OiZXKwQQSwrqREvR5nbXCF_qdSJGDotr4CP_CFKiEJ8-NYTUpCy5KYbOsWmeopjGssLNdzNrv2wqnyP3ObJb0WXQcb6YYYYeJSw9DDZ1nD0cGILLLXBIm53gNQdRjBBCJyDNYR-e_fSn1mhWndeKuprpdjnx3QRHqwDStu_njFEwUfDJ82W2p7r8rjv9hqnJMeaoNZ4Ex1DYwBcQxcTZL8XxkpNcSXSw0GYG_Z6bmxc2pDGRvQwvNTbacb9bKq7tlrGAYMk78NIRQr6hRfl0BNcIYqej4TOpFOfpVnqQgxrW8FiqZ3ahYKIYcV8Ff8vvNimlP-DI_LU4n0M2BoJTvewg6-27f9TbDZhbxv5Aaq0gDhUStUKanuoAOxyw4IQ6xAuIZ6cFTQkjrrHQpi9dO0BrXlBJbBvOe_vNs8Ek7NnJH2F_O2xRBZXYOC9_F5MeLdpG386A-LXbf4gYG5F-ltZkR10MxPzhKeAi93FOEAeC3P4LpbcCvRZbgZymiE2SE2V05RnP1lwB8PaQDKWd_huWmuoG1Y2J_GuX-OQkBP8eQpNix5dxnrk4NthxggkvT79HOt2G5MEp_h8XvB5djOSjjYsB2-V4crbroedlf_cS2uQwawPiJ4ISLjaCxWOkOsT583c874NUKjUOyQPG588gM86xnRLCtxianl8NWukvw_TsOSZ5VANKQSlfW_uHP5yeHdfQEirMgqybJ29Xg7jl4D2HWP0SyxTuwIUPoVths5Xd5Sg937Mo_XnDh4-at2M8eWIcCSclbjdEiSHCcvVsYqYboNdHKZQY5mGWo7iLd5CCPqB4XAR0pPZ1ndgA0EtqRgvBSUWLOGBd_8o5FvArQk1qQnymk6NJfqvN1A6r5jsp8uEJEJ3VQ9uvJpIWPXVqyPhrJjk5Lh6P7Ac0gde2vaIu1K3JMRAXckUhAIJtW9K7JK3CsM2JMUgOWSpiXDwY2iHxaDWEOOt9I9A83Gqv2-dhQLFA3HlSym4jEtSki-a0yBmpj06HD3SYcLtwpvTif4EFSAFfvjvI_QLH3KdjeXP71s0ZU9ZAKJRAwSK-k6dkmV0UEbobWGzk3xuVyiOaTFwezAfiPA7B6o5ekSMjaGFgkkExd5L_RGBtVstaIxKRA_JNhrIXeg7rvbxbUkKGWDu9LSRQe6omfECxIJ3Xo2ATvs8OA2X4S9AzsI0OJqLPAwpDhFOTneWVIBtoktSHe9vhbRWzlj79ZZLVn9l2j9Pp6oOW-WN_vzTDu7klajR1FG_jAcre5bQNqimg48_WBAaox1cAOvqMwysdDTxT9qh27kJXADBXBcWvCw6qX75YhM9tAeIN54s0TudfxM6Q2BlcQq5K-Y1IYz2M3QUvLeRrze71AOV4TtVAgKqfbGC0JPWa0ypFsH_M4rdvYlQlHPgTVuVqvb34WHGFV5weop4mmMozwgA0qFuBoTOgGpPiCXhhpbt0s-iH0eKIqw-LoL_U8W7qFimEXZBR6Ny_xEbCKxhRZiCZ8oM_GUzFIpekbxk9jDzgps0V754b6zAjBqmu0teM-HlcMBGGNTYHouPMiwerJhvuIEozfl_qoS0fELCAReHF6EwH62jIm-LSee5uacGXHE3GbWVxW24ehD5ATABAMgqd1V-zAahPl8jjLRJ7h1SB4JmNlQhknbNvgJcUMDJ3mCmK-NiEQn6veDeCGCkspcJdnj6Va6p9vngZ5VOdW9dG-TaAm7RNkP5prM7OwGdQoop4sT6ntXMEhipsBiFqNTnZ1IbPQfYFKdaj9k2TPWGxgmlSNpmmoPo_qY8XW9xI1gZss_W62tNRRt5FNI_XbdNII9ZkEct0h35NFO6qv_-Oel7QmxqxBnqm26xUOZExmVrRwpkKQwGOjvEMQK5-LrakdTIzAqBMMWMcXo_uDvmnD6AFRK6YZsY5826_LEsN39_CfoyWEkYGAo3WQxWB_fkZoqGwDBlzn-wlex9U0YAdWRNVKKJr-ikt_CIRI2-1oRH3t0skWptHCsZkuZtkzCmW9EWnKiGNiYGCqg1KH3qIV8VYDZf65yhrpEWKFTtnKyYcOXE-KxYqumgt_50RBTEa50o_2MyE4VP2OVUNXkf4kyMn0UYoy_22IF7RHTs7p_DPCRGFkRKcNjHr9YZ_AVgCD9MgjkOYyTTcfPOMS4iPhMuwK4sIKJsCMrE8ePHumAaRf-u1cG9HepqZ22kZJqwPwZp1NCT--yTQLXLFqmqPFT64f8dsh2pphB-6amE-7MmkQzHre4pE1TT2rbpt0wOu9HESXghKdwcNZgW179AXm_tCgcJv_1eABvUU1x78TuATdvhWO90DAZJaafhxTzDBU1mmXScprGYgmDteG1Dl0ZVus0qqHF_Yw_bWlp7vmlTQhgdHt6b0LVqmY7N_ZZ6CefaePXWv7LoNyL0QjMhHTU0MqD6fVXoQ64iHl7Oiob_3T0bhTAefoaBYYUCfHFRIH_iAPqFSFpAHQfBgz8a18aJ9hzAJPBE_X-_8tnuncy2-0ZbYTTvCm6cwT1L1TSPo3EE9oP2na0ydW9GCUREQB7tBnghEXZGVRomGqHbWbhB52RkIIfcnLy_k2-qgdsWnjnfBSwiSNcgeW9MYvz7pdPxy9UrXgoH5cQ34ID4k58nz9SsIskD0FbgeM__F2ZQyaSzEflaqcxmH5sANyYM1rzbpmhhBsmG5kK8-BNHTlFV_9oWbUCPFN7_VLXHThBep9iE0dDDGOOUGGS4kgNvxeXA1MkI9c9LA_biSfP0yUZZByq45QfrlMBbFfDrDkLHAXIBkXMaCFiVZ0-5C1QhDiDSPAYKdDI40d5o7wFdDUzX79nFgxA0i306UUrWIBePXFrD0XTlwQrG0JTXqksuWOhN_vaMVq0rJv2CFD-j17syWnVftxNjyAVdOCicd_5ribqenvPZsq_6e5DSDj5g7CHmeXF2PlzuZjNrIX5CiEViuQhKpCwGcbs_PBwnS0rx8F9E02pOzGpWXQPxAWwp_C5ap57V7xeCigRyoQyeM_JQaZaZZw9O6BGIDFrgczETFs0xoKYoi5-uGqOuVvlFtn-PpkV9tkobACEIO43pXHVXeFlI8FhnAe-W7zr2Ly_mj8gbyNzS422pdFhBV5KRV--ZNjOipcCeOYTXHY_Ry52h9nhkQHNebfRmCCk4oGw36VvPB0lrO6q2SrV0P7te_Z9KEG3DlkJF_fNXGYubzQiLsVazRFW2ELWxi_0pGMoBZ9BT8_4HenFeJrWwqYrw4kC5ab-jyxYvdTUUBSFQWIdW2GQuKFCJ3PRuJURV25yDQXlIKpp4nRhr8g5feJESo71HiSMimigX7P2nzUl0tcTwLTLuxiXt0QRKeId67BvKcbFFwVZgvN7K4-th5LGvAtC_hxfn35rD6WA3TNMHCVg8wipPzcX0y_wPa1gBaZXWaNHOygRBDFTk9Rx-J16Tu3TV7NtETg0SOmwWaI2gBW30wmWof3O6F6sFAgfRLcZyFYAOrME47o202T-GsYGZMUD10ck7HD3flRVvaxW9l3F3CxZzpWTznqCzX11gMaXk_6rcIhptTcAMSTN8dg5FPV-ULuPONtqKCYWu8U3ClUulJv2xIvfRWIbJYEgQxxcYUQY4FhZQ2lqzCan3Ts5A-e6hLUi8UGEwTg3St1Vih2BTouyo5tC7rduazmfDXyN9VG83ltOgQAS1iMKVKb_RE1p-AaBWqaNrMbuXdWqJ1Fyl4rzyfLBzpXyBjLMB1UZV4rAlYw0wVrX7QC0-bSCnYTQ8Ls3ddXQefPRRNthqMsJZVtZL22fVAo4aHW7j9OjFlLxz_DZd1cgU2W3duNvCOdbHKeEZZG73KsJ-ekHyczAceZg8sXEqerPAPK8tnzylrEFRcgNmO3G3M7Zd-nYPDUr_9iwF0PpCb3KyYGX9RPxPJjGc3lT5Z8iVmrqxaUYEzs8eG3GAdb87Nu5ChqUeW9CRWg-d1LNbggGPILljAbVlmvgu4jECWJ3bmVOVfKFfvQTadL20WYPvVyRcqmxlQamVb43HHPGidRPwxtZ6nY3BG-0hol-E6_xU-HU_u7lBm8CNhUK_WIYYZvrZv7tlUQZYqWVfMJXUdBKoOagLxZyfm50oV5jJlj7xz7hPx25Zvi8iFnj6K3FIaweI96S7-iL6N_Fmyh5C4S282nNB_6pMlgEe2tlGEH9i1InTljDOd2GmgsyocuWlkLJAB6jJq0KNWUzg5zLVPkuBLZf8piV24KAW-8t0epygWDCJFOJkajHrWxH01IEDij3auo_xqx6AMNadYSBHzPD5MYCO28WFTS0lvdM639s6CceOXv9ZFrZiJvGp2H9Ep3aIxYOVjP_VwXJLymChCVbhh7xNb6-cxOGlk3DU9R1seakYvDzNF7S6R-ilmkXQPKCB_0XtPXoXYNQd15nVab-3hdUBCaNrAv1KXo62BLUsyX-uwG2axnMJDMi8TygwuX05ldZ0Blol61hDQL8nnBTYbMPRBWU9lQWmtdx7Hzq7GK_V5Ay05GGz5ikwPJLfYxOT788DtZTyI2aLZ-r56JjI1sNl_Zu-ExS0hkA5CSiENrbdIjxY2Ea3jk4-yW0xTsAcNpmAdwzDHqmYu56lrmjMHh974j33s9VC2zTn8WryNdHdw5AwwRc1Cqdy_HjnnQomy1U1m4arqt0e120PbI-kvNpZyuMDmzD6Ann40Um7Xf3Ol8zlC0GB-8in7wTHR54RCKvqxVD7gtGm8JKB2IeiIixjn1eF-80X3qg4ivqFQJp1DhDS4U24c_t0oEoyklQ6SqG1ja8VjWIDiz-QdM7gmugSVauAtn449K5ucWufuoybpWCPGk3TDlW8ojVm4KrRlMRaJMSM9GiAsLl4Oc18NEHnRF-nwewLdyLMhvAuaSmwO9ZEWhq6b-oTziowtSA0Xs0mfcXPKVr9-VS-5wfwnipCEfhjqN9EMYbpQuWykB5FT67CvqfeLodJlPLeGEYlzSmW9caWjiWzk2MSNlzFsIRiSgs7aiuDH6pfXx-l8Meg98ByofOT6DpQ5gxx6DlLhPLvtfdDPMvF1v27wl_nBF0Pyx2AkZkazLzHU8Vh1NpMP6XaF_fnRTvQ0p2hyBU3bXFRb3iKE07RPVeP0ItPRI-Ws7xYoLCHYl_cXiFkOrnVa2JyEjA3etJIJd5Bg7Tl5ehxFDNJcOYPBTTKvYViPltOkjn9RYdSOd1SlYHhgZKBkEBluEE7Tns5iKmDHcNFQD3jJzfctif9dKg1ZcWKnuggO4ptIDWJ-FIARJzD4qVao2xF1RmxwTjyzO3gJAYxs8lA3dgUbAaCDmD2kixSfoe6QjCu59EneJhTv9R5Imsb_6ghZzZnaeqaTSY1ur3rzRmqf9uLwNvEK0DUQEEeKWX-eve6zdKWH7i-A6NQImusKzIBZwawWRzaV1s7tMFen0sOAK4nMcJdF_fSvBZv8cftmHRZL5zEjV9eE1XnJlBeT6ZFYJMaFybmA93TkkB9BxhGyKsiDZkCyJNMAfjTIozuzq0bvSvEr7n-bAfUbIGzed6qbfMedf7D-CiKYZliRyfI-nciMTQsRRi-BnLRxEinE_iqOjG1NyQMZW4ZodSr8-vQc6kHBBrZBCSXaaS-f_ZLCIjj2zDb69DYwCSjjzNLrL4yVrUHnV5-90maHb-wyBA4lg1MI3AGIt0dTvnL1uReiFY-YhfOzM-8hEcVmepZBhuVNjVwu6qjiwSI8WZlKymovaaPS-n6Nsv2WTedFm_ZL1AeQaTtwwrvKTrgTB8LOpdIa1dc_V0LKA4iWLvGFBG5AYhdHN_UIt28ZPtWanjgHBytx0wbr1NTbYOhyimFkgk2wIwxGJo2LN4ntdx35DXKDhEM9Cs0ToAiOsT0W7AVsxvc1XC7sPZwIEO_-ko-KKjTA4Ax_qYKsdNk4YRjUMEIqnOeWjIdh6TI1viyqB_N4drY2ayaUyRQnzBbswOlsI8Qrx5eV_eJPiuGXriOITIVubldLwqh9GnUqJWBmhuspgng0WHDGo9VcLIf93FWIbvEHPcsMaT8h6B95NF4lx8UCRYU3ZdGWrlHPxFZvrGukcsPCDaZotf-CkOID5a0_YRaZwLBe8nLxg99RrcrHtuZHV6IrBqe5rCdiLcxOI1RnlpzNm4mq7erb_UqRiPyrceswxSlTAKZ1sHrmAsQfVIcPoLQG5X_yERvHyjmvqRtoIVU7jM_fqKw1E7G9hs5Z39HTzkcXKxciOSUvGWipmNsja-6BlopUxmtd5vtBxKts5oYwc9yFMiq9ryAOCq2BXjOvbQaqXvza2Yevmaa3XvccYJKYt2qZpfCVsqNx_gOGt-cqtNspAQGO-XhqtnhdQO0QniICE_4K0LPjF2-L3BwalPqm2ZISYT4usbt0-u7w9-GwvoW8an4WZEjd0nNKglwCGMT-wNY5oxAwM9UO2XknSgE9KQi9wyIh_IMyuzoVE6ebWLBEEnvp18KoWnpqI-G9qfw-oH6HktQvvdn5TQwAkXyzkjLBUcoc4Zz9xS_Ge-f9xuryzlVcAqbk0veif4ZV5me5V3380UmQY1vF02ylT0YhM5POIfiXNsTl-VH5UFX8_6cfo7HnDXA43tQ_ArbwGS1gXtM_pgtxIjGjs6HyqcMWSYz2g8XGxY4f_iBN4X36p61y0MeBFK7v2bAXuk2vsHSgnAnhYYOgzFvQwXB4Zgr-G4F_sye8S8kjutwmL2sttD2KxWVxQKBvGi_Lcb-ikGgwDIA70jNmV2YAHSKsYuThY50ouEadQyvWwTplF6njaYM5accJXcHIclBRc6VY1vhwgk5954APN-sl8nq__P8G00Q1EPLmZ4vet8VAUi4xwua_Ue4gm00kN---_YsNYz1kpR77ym8Fn5GzEP_Em2luODZyyElqafuQJ2F6Dc2dUDwEoyEIiLGUGcHq1xRmfnzjD_4IdeHlULQHdNJmdXPDagug4Pg8EINb5lsC3ZS0jva766u7dsiQOwZD08JYS7krm6SXUAn7PvSg6d5mua1Y0ZASSmU9SuMAmqjU7ShLI3-uNJaEt3IVM8l0_pnQAwCh24X95lqQHRUSk65FdOaR95enwPrA60DXzWeQi5HoC63eVOC6iJaD3hzO4tUyrH-5ROUYXFxdP1eF46FwvQ7ESNH_CUfWG1-FI6vVxk4T5OJ4-oZgBDbM0UK2JNz-wd4XuVham0s28hbXv7gVH6Xf6K5_YTrZGAbJLyWOFydUsRDktzyEvDTX_1-1u84VpPrxOmSY-FcVKT7EEMOF-5XbVBfpuIEabxXRMS0p_Ejru_PM_XnFg-nw6W3th6RHkw2jdPhVJ98gCXqB7ssL9yzEnC7_xJmoMuGZ8Sr-agBe6g2u8eRTN3sRewO23Ckt_hra_Rd3XZgGIDRFs7VBDmBbFlHCPSH1Ngl_oJSyWelFhWiTgaUzilvNh0wK_MV4iTBIDAyRLsfF4ovX1IrR1157wAZFjw2nBWRTgwecVn1Qz-fQyRq1RjQCQi0beQFEkGiu8HyqHAEuzRsXDF5HXibdnD1EaGgpS0Uv6jxaaEPo7x_ZWcGUjgCtxNxOI-LWxxWkXdOWLTVvIXkxsNlXyaUF39L1ZYR4cc253zBm7CSHcYlYXwyMzwlELgo3SrCsUJsi1PiOvQyslc7L46xHUlS3nGvbKpwaVim7294QJdJcZD9O7sZo8qjC6UrpSP4SAvkbsSv5aYI5CWhwtBkUi1hVXwBjgC-xCoTCsz2b5HF3A_bStyQdjVe0XcHwctivIEHjyolMUSkUPcDFc80cmLSg7snKSo5r_FwWuhfRNoyKOcrmVm30SS9bt1S_PAPPi_HEEALntlgawiGMzRXAiRGibSQFDKJsnsI6T52zrQOue28GzXkucLekBPXYddJpon3tlQX1J2sIgONl72uxLcBOFeSKtUJnMASNdYjvSToPq_UOtcwkabuaQ19wXr4HX-uL8KdnsEZjZ4ot76FNkL9XzBf6t3oyMMxX3GreYbbyT2TH_q7Zq-gdaeMWhHFHz6kNoCnob9Day4tN3orRsgx4RXGT0eqD7GVeUmJhF5VCzFvs_IQjpk5wM0w0AA9DBEVI4QUZ_QiQ4Z517ghFobY0a2TWZ2wgccKXMfS0CQdq4yo1ghUVwdz1xxxIkYwEFblqCxjxvD3EEgB2hEOqsYWLVGJpPVrIXE2KBOK03IbzRA16xftPAHnQTcMA47BtFVO2HZgyZbeHwFRD-ccCkxxOO_tNU16qQMUlhMQPUsq44dO15YOOo2PozBNxQY_J5iRHoYtvQHTxgyrBhdwZzWYfKEx1oOfgMlFipVEVMfRZomaKzxVxE-3bibWjttcCgNRNr7fq0z87axxKq5CzmSeJk2gU8I6mf9HhZZ6s4Naq3RWFMBwKu_PjN_ZUGWkL2QRJO_J0437ZeSSrNEHdcrgygIBKV8N1oC33Ic0CKjKIvEFGavooJKr3Ff7p28OhFbp5p0GbntTSr4G_O8pooE7MfFhRbrpepMvEo_uUFIuH6E5Uz95DkHHXiVd-iK4ms7oIJ_Uqid3b8Po18UZG3qepu9mdgbm1Pi2pSu1IJhLPS6qo1Kg0hZIPZtKCJrmG4v8RN_0gwGn_kNEcGS3-p_OjGL9_EpMrMmrmzn451A0-GMld-Q9CDXDFdz4exg0gbDo3gVGePasD5snHd9U-4yvjd6p82ND9avBTPEQQUffFBgP5wzTZICS2Wwki3c4oEkp-8E414aDocpksdd_AbkY89Z1p1Qg-DpcvYcPTksBfOi9PkECzxzgTIxbQ7f5PCJLSPgtWODjOtD1Aokilnrnf81AH512WtJU9UVKWhj23hI4Il7eDtAgDE8GnAGeDnQ3uw5bhyF2ahz2aqArc_2-dx7Nuut252H-GSOrwH5t6Q09o0Yy-gge95ZBNmaugwAQdTJG6Dynl3gyMTg-ZPXpYHY9fDqZOe1G5TE-qjM6gSmfCVhrsrhmB5VJlAm8HXl-s7QONWxvGwGKpzWYszg-NKWo9-Oe4JXbP6S8eGo2D3_NBgORNQt1tlXt3IQp7jfgbSiVbRYmIxbMCrQwdLJ8UCO6JpwOqt06VoW8iF2Caa9pbjiePeKFOIDZA9Q-Q6wDI_oZirXB1n_eIQ9vvL4oStOBbRbTjJdOZIMc2bslxTaII_clkhiMxYBX8CCx2Gi_c88oogRnyyTBpSz1iL42UiTzwAMxFg1MLXJuu2GKIaayGfGA1bRJL07r7D-SgJjdpMeJ-mT7y1WGcIZtWTgyJBPKMET7K8OpOfBmisM6gRVbFEdDb4EP0yyUhTTxcXigKyD6tinxl8sUyjku14o1VdwfR4Zn8NTeaEN7oAllhYhNjZPfqBk4mHs66mDoBwIYqVt5NFg65geSX2Fs6FotYzyWqgcJeQY2lljW0XhPMfpiybP6xdcmDMCLR527hnnXF78Oc3J4qzI1VlS0BtSq8NQeOdNrLG6x8m06A_OUZxBzpr4yERXtLHA3hV6ot6DgwJ4QSQEa9fleCWkVCkqzE4-HNf20VyUYYUee2i_ggTCYm0BA16eWazaXsprMHtsiDWd_PoqYlroaTIQe4I31XsQu1FGSthPCgJiJjyhBmFD0O8MRC09fzA4XBGitH686GaD3aRZ-AK-Cu8yXY2pkClsudRdiKt5mv8FTenKylRl211ToGBo4O4lDKXIWN7ReSk0HmsWKVNZyPWn-zwy8rJjmnODXLKTBsLvk0nJYnQZIUkz-M1z0TvvGZpYdfbhL5phJ8DVTf-cm-1AQlxeQrFkIo0xYxBv2i_aqyFc6ippkdQ7cCQIiF6iaD1wg0MDGBkPtRPdvHufFyWj0S91ArbuAmeo9d3Vjo434kzJgr_stV_c1BuujbFxOVBL1kvvvZ7hSOtuhT_fwxtSmFWCWSFmHjO-YjHQnUjpnxQ5bwsPwr9_LN3JreM3UvrluUgYPpdXAdZ4fgpI0AmUlZc0W31LOr3QiI_Ry_mf2xuHXxxAiPSw6FJN6InC9nICixRvnfkqMSL0QAlXiBBhSkvOGQR60gf44qrlwhpA9O-jZyR61pLBh1nZiJ59GyOk5_IOpDciM8bRKJsaKFD9ewsBZA-WTI_yFsFf1go6EPYBerapJ3xS5T5YOsmrieMyqq6puIfA1M-2sVArzIX5-HRrXkFmmOeOY_cp85g4Ry43CpBnqgPjNsC8iwRlSep-6O0y4YQAIw-d13SxRcbtAS3_AhDF7LrDF4tj0EzWTZxC2u6SrAjMOY-BDQgEjmgRa5R1dhuFxy3tlYUQSjruuuNGjN8QvF_510zuCGqljc0TP6u6VNbW7szrSPNAP3qjRdtwgB14G-5dwZxEnkempOJrIrsa5SR8CdP89811eWMfkb8FMRT98W8BdXeM7eQ4pWAIqtdhD1NThuFriWvpyHuPi-rrfTr90Ve0Tp2Gi7dSOrejhYi8v_O9xL16iCUq_CugoQ1WaqI5yB7ILheLnE_NcvU9HkeUOtqKwjIarRmTHKuSBoMTNT7GnyRK-SH5p-G3OWdCnT0Kx8XeNp2FYubUjsPtaB8Hu1HZEJdCG-2Hg2_c2LkAxR0CyAgnZXrPPIfs3Hw5GVURjiDZOOPKeEx2cdMHWNrzIOZmClSPaALGfzZIgCsVFlbeSSFaZBAMjefudUzGb8x97TfWjXc9b9_5E-CYxkQ5HlFSGoo8or4NLOqP_1ESZ8iJegw69SiVD6mvwV-zHbqRYCtSLcJGcUf1KpQhrwUVU9G2LQpk67wPE1bHTJCetzVxayFgbanrTw5k_IDDJbI5R4N1krzzuCLc_SHBLf-5--mU8uQFOrU1MpJuw0XAdVV9qE4gBBfwaHI9F9fditkTrGQ8V0h9qfk9XDODB5Ka9pgkzsXlfHZvpbzsRRZc6DJnpDnv36saQOnpEz1dnBH17Gx0lKqvxnIrgxOsPcBC0QOjaTwr7JL4zSlXQElRmiDAWrkCwc3g0zca0YRIqllgD3K9N-7c5Se7loXKhR9MadrlfhxXndgYZp4RW5FL1fqYCqyqZypqA_JgYaIG0MinD2xfwTzFy_Xj28HU-D57aMYQ8UD28X0DkZ071wmSDLFMZN4ihHpqvhLd5Mky2xjMAuQSlvIYcd5sQKpdsgZfYSCfg6T_7t1B8vvbQQMP5XMff5f54JaIfwqcVy8RGLhUa3neTQLfYV7521wbpaPwYo9df2MQ0EY8zktrfjFyLXHJJ5OSc7C4QX8XC9Hbip7HqfJOl2noaPq6aljav97t_aStv9GqorWsfm8wohCGfBJyzBd8kBlqhn4dWVbTAqrSXQeHZV502EGAYBgSzbX-NxNDlaB2VCLYwzhuxe2m2QBZ3yGpWzpmWOIDnLfEhLeiiMz8M5RcW4r1NAVxOTC8ZtHY8Zj9wNkWIbAUpUGq42zBmK_-8_w0BhrG0q85inbw3_foKk7PKG77FH01TI5Yncn7TMLgWWQ0Qn3uIHo9XBGdY8LQr020n0_NJe8Ucm281VRBZRypKv6N5PScKv2iv13LoKnVPC6TWboUm1WcWp8vbws_rA7AG5FfYas9TGVFjpWUbln3uPQOvr2SidoAzZ-chPTJQag72lml-acSRYBsqJTguIlLEcqQ42DUEOX1m4mQ3zjxEqefhQJjp87BrBFx8qmW0VZVp69Jy-QdsWsNvoVMqJpY3mg-aG4aFG_X4D3afM_7pBE54CV5x5OSxTTnfipnr6jU6fznvddFIHTU6cXSp58aYAoJbPAOmLwX-RXZTnEhV1CpmzaV0ahU4f2NdQbAjKw9ZlQ_Zygm0ntbmO0R76m1cHVq9P_tqT0wrxicHWE6tvvV3RSuoyNzDLI2djAjRZs4OwoCwx0W2r8KfrJxsoPLM4_sfm_UBuDkzL2SoeNkxVj_NETmpZeaF8mtzwB5NYsFh2Nil2XMFv94VQJxcec4UAYFRSPg8msAXETGKqa9sDSBlnlxAA2dTHqKguXOsqU-119jcfXqwdRRacVBIACr0wnoqcPTlS8xF8egwi7POLg8BLzy8jNb07g0jvg6DMW0HOcbY-tARNqgWKHybTe1fUcMILFJL1Huomd1xH95CVgZP38Vfio5Yb06Iq1wTU4UUyu5heBjnv9KT_L9Hs3N9yiRhUUiTOgakAexLW6av9-ZlGsOZwYsQ8h5NmvbYy7_XiNvkA_WEVuWw1byXVcM5Gv8He-Yt9Yg6yX8Kl1ic5xnpsF76LkNx1EHi9Ezzn8St476fCTPEPt0Duf9GbcQduuyK17ob_7V1EHSSZpgrQa7IUhArMehcaY1ORl0RBBmv67BpAJ7OX83VMZ9T2I3sUISCN7UHK8bfYUEcxkglpGsi8DZ4GeRUY1lrZqwHow-8eK1mRDjOuplgubXi_Ir_d8GnMoPmwIK-wIh_5HeJhlyHRsuIKnxtrrPfR9xYiCBPZLL-HrBp3ugPMCP9Iyd9YE-G3P7JCBbF1Mq2_G-l3aYNMV2EQfSmzNMjSI6gIfaI_4WLe8mH-5d5TiMYx36jWNXwzRkkbkAd5HHk1Y2UGtHA3uwYGjN6aLT4xOGXNR9TSajECvfZiFUq8K6P4JTQ5fzEqUtKTCcCqbv3B498Yj-4OLYaovcxbr34uv8xfOuJDNV9e_8UXznwq3dn93R_NFCEEk4I4trG3JClSVXhhSwg-PdKdbSOo9PExImmoXty9kwUzvA8XRkgQFy0ELEFoFkzcQTiAWrVQLjGcS2mPU1ey0GUhDrG3xg20GT0uZq-XEi2HHQfmhzTMhJzEYEjEnIrixKV3C1el71Flvqo1sHNxW4Farh1KfKku0KcSru_1V-3HRKLkaRtwI4vTWYrZF5gGVom0-OsvlpldjJBjtgKZfYZSgTrOalDsU8lO2nMdFRvANtR6GYfKSWibCf1Ka_qPIJX2-5liagHFncq8-MZD_kOHn70zx1eH6SoJClH0TYTcYwLxHjBefNTpPxbboo94lpfe59KTivWLnF1dlDvAim-DgpwfCR63F8Y_d-_Vc48vuGRspYQKT8KjF7zKxKsPMmnwf7F_OVm3dUVRakF6wSyJ7TH4-qGZV6ik1OQkV_3Pg6Pl4qm8U8wvEHwtj7cEKXATmtoE8SyqESEkH-fdz0bjDmkEnU3hIKpsHLi-YU7bUuJAq8eri7CMwQYajyJrsTSLcaCETRGNUA0ZjtUIN4ny0Ka8gyPTROAhfUmDIXBbs8hcdlmVwOVXqSD5ahgRdlpCcM8mgmRcaP7DdKZ31oOWcjl_AeEvC-x7zCuU-rX7QWfB30AXRaCNFGpVK4rGOa7mYzpJ_701tiZgKW0hVnPqb88H-pK10gjHKGHCi_AKu86hbYbhoTU1z0uwd7M0iNtzk6GQr7tVCZNAhg9-xtH2f7RtFyrBF6m-p1bZoF0cEe3PgBpOYVrup7fUlwIpK-ta2ay-WSPwiYmcbw9OiwSeyMDWzmQjal4OenmJikgTHNhf67uWD3w4VmL0r6EC8gXfMDXQSsGaPOPnFbwZVsP2Nnz74N-BUkRd2c_imG0-0Ny4Cz5xmZSk_W4QKW-u7KfSkCqwzIZvJ9Y6_Zd76vnAIUrMePedDGILU_7a5myjqFziB1wT3H1gQWy9s5GCMYPrEhr_wa35CHknQY9F1AuKsfTRJZZ3Y3-Ys-8hfRFPvSYZmPkISlEdQbH25UIoJld4QfLWoOJJtyH-jze_oqP6ZhmnMVDm7X6ujXMS-2RJT0fPR4-OKRHkaxh7WTNYM6DIg0IyDwc-WkcGOPOJp-gCDaBjeBeMBC-dXXb6eUXzAcdGFGnNan1Fo3CnSbDO3IjylNzEaLG5MMiekAXFWVpQZOmVpgvPIASjIAhgnuhUBa5p6mGercDoQwrMxSynixMypE1iJVRBc1mv_0TMugBg5X7BKHf6Pk6KfctutZvXZIEv3E-66nUhjwj7W1Kp47qtWW0zZJqpGdgokrs0YCTmRzYd7J34XKLf294aU8-24Fi-C35S51ogY4i7z4mPRc69z9kWwRQ3r8WYaojEtyURgA7EtAkPxQO0W8EGsAOecKqep7FwFubzjabiGJmuCzIItfEfe9T_OBfw2riQd5njV8311TgFYE_RILmzH8lSuaMMz2U13Q2MFaSYV4XTwp8PnbcVWsQd7wm10qxX5njQLrpYX29V-6uJ6Zl-ee632xzsZ5ukFtt99Sv80rupaePOcy4AXUUTaNfAhiRb3a8kN6RKIVUPhVZlrA8InwkGi9Wl7HMnVQp0VQySnexNUGEOkX_hzsCj6eiX0BrBgi1fCq1ibKa2iP-TQOQLuoblg32L85eA3vgYeMfnC5dMhSq-oWjf7aSGcj3gxzRHfU_qabKZGf4IfOx4tHMz2Rf7t6VXlatPtbysIbPXSdPBgnVs3A7hDw162l-tdaWMR8ZTQaV--4Q0wt4iMMco-xR8JGZG9oTQy6oBl4ac6XZ9ZkHL5eLfwuWlTnVhhy2CMnHoGWw59MIxWJ1Lj0Sdms74jZT51sZduUBDAcDPALsTSKq_hjffE9lbrnlcSCPrXbNvHqTaer2eK29zW4PKjRotaxAak1TqJm1p_kzUdEMaefaGN8s6sarHiXyNRqh9p9Chop9cvhGthcuxiB5ZY6HhSjuNVmXFSHVRpy23KtP6CDz7mCVuZR1vKWt0vspKe0U41dy0M211jkJxizsTti1c2rFD-iH69J_xhdecDKWV923JZtiakr1JpOSl9EpWTVjEyKHpAPKyu_pA3cEd3kztzB0PDkWf4S2nzaYtE11N9c_yo8UQJg2RoqF04QiR2RBPVeNlAvN3uNzAFj1T2F4waPS44iyLBq8vbvwCcyxeg6SrLQFc-Un69Mzd8aiM9TIL6mhEP04uFCFHjGJ4zdjJi98Y8iiCzdZ3zcUX37l4yrwER37LlO6xwpSiGd2tPrzM88-4RdEz3EpGwUD8XPOAgBSCRA3a6rRxISDJghVNsJTjbf4rO9LvEj9zn1_z9wFyJhmuAQV8iMePhZwsj9Q4ONwBnTxt8FpQR6lllgEafCx6WF6QcobUdR3co6DnRS67YVPuRSg3sI9Axvp0iOQ1LN51SwsC9kkPKfQvr5bvEEcUGGgre0_DO4XtbIbJWEcB8BnEIsDDSG8YfvvgC1h6ve57zAr1JOFTx3Kuw0iP_rW4LGhftZX8b97slz8qlJMdwO1PnY5avrFihv8bZPsji28OLra5fFr6aqUoKgYV-aeR1k96OFZ32FkLZAKgdp6kwrrRJ6HkA_eHpC632IgSMg_rmVF4GmEJb5wm2nonEqCdzgY9Ww6cCcKPJ_D6RHVlJhe3QfggVOAUGJtVvHs9Ezi2K_p_gmnzu6rdoznUmRqBiGWqYP3tDBxRj0RUe5azEYUQm3LPR8sYapRpTT-WHbuctKwWCSN4indIWk0yXm09H9cMcbeMP-mDGOaVvnKc9DVTYMVQ1Zqr3n8M8lpvfzB7xcNQ6gh_0K-OrMQKkRRyOXb-L8RYNCFGCSmzSU75mwHm0aDaG6WPAzJ80YXJUc1M2yLyAWKlkLxWH1SXBYh7H4XapWHLAwg4Dk7WUYe2MEEYdYPMVIHyP_v6M5D_6mpGoqP9O-j4goGswkMB1A6kT5C0pJICpFhvpeTy7TsjCh6Ir6AQTJ4h2dC7XnNiexydoJjoIzs6bj7NGppGQTgMz1YQU7keOh2L2NPTb9v9HGLUU6NROApX1HC7e-lz6Yz7W6-lu4ndGyAX7kFpwzbsSGMP65XOFecx6O_I3n9wZMigXrj-odzPzZPNAWu6jTJOx535COYr7rBpothQy1FnB-lB6aeBr71XQsjELLuNMJBsNu5mxnZeDyOSqIJFVLGmET8Jb7Q65dmM5OYik_ebOa0_QfkUBfERbRa3UYrXKhbaR2ErW6B_o9_Lr8GIHaL4u-zk5bzsgiU9AbtxgjSOmDfzEIMOGmBl0dQJcojcJQbSSytAim2TA11852-5YO16VqxeChsumkg8XgxHenYcvP4PS2HYIUhf2-h3LX5fWo9EHPkD_ZxVCr7KYHkUN7HOjijvwdRl0u5o38LCFBctdJbenGDza2X0vzP3wAmt47H-x81-axWo6Ios5D7pP9ZF4_YMcvaqJy4zUL4EAxk3Eu0Exxwt4ntSszTBKPxgCjSP9Jm_kkuZt8rAGDRx8P-DGs26rACjOiQFHvgxTrFqCHh7mWUMBbhoN-e0UeoUjq0ExIRVcqF7wehNw-A4JZ941JdxT7BjHTUcmDw4CuLcFdG84rmCET5efvTi4Ip_zDRImKsWWsrHCT8gv3Kf5HvZH-_LuyMA-mHmqE7-KlZTm1fHyogcKsOsk_xeH7NK-mCQyT8WnS-Di1hs44hr0_hVSJxMDUfrUHQNtrblvOmeytIhxQ3dViWxgvA7eArfsu_DeUQYWG4-FKG6nwhAvXDGk4CdpvcHOLR-BA2bZPKWcDq0vxRvtAA7bMYVnxK6908RKyb3QTKkKT4drbQW3hrG6SL5qr0gJOteWf0LCZ926221_pVSlayhhENT-D9x8BRUjkqItp79rydZfnUwl62Hz29YSIcS2ce7GIbJu1ue0U4bIDi1dE4wGnU4qzsuFaAD68EQdB5rMT-SzSL0lHkR0vdqIT6oCy9mJpSD8yz0r3Dv6D42k8BR5At6SbweBXAbuzfjoykFVrazXsH9dRTpyF78HOZuctt8Fl5N2PaDVexVke3O7ls6NBa9tmiZjU2IyX2YhCZqgsfUfwPHQdyirTaxDIiiQT4Eg-0eXpv3QTuAP9HrF-y69S5dZZeIH33VhlhPrRmKwx3TgfiAbGa-qttrkKX_LUfouU7Qgfl0sDrZzzMfQkLC52_6YHRLHu62kqxW10iU2xCdUZC0eHqkmiivXrZKwnBax0wAtAxx0L9ai58ZZYuMDwDdjaB5t8S0mQe4sByCJGOW2j8TWWDICZawQl5gO9qqjH8t0vNxKO3TwUU1Sl9j3O-gOa3IJXJUufuPq5JdmCYOAi1dB5DtdqmRysr3JTAhlLX1WbGlwvwr183sMH2A2e1rasWwXEsVu7yFJiq4px5Q15hXbScB5oX206z-084rmmvY4rp25SwzA2ijbgNq8vmiO9WZhcOoNBsQZJ8ZojMq9o2XskjqIFooDU-GhrSN09TpTzm3G3YTRF8DyJH65IJ9tOtQSebRG1ta6TXLOvXmuTADaZzgzdUxcE-6RqP5AD9qKD_Wg9RcE6tklXEqKGzUMRCOcm2nfO0tS4NxqsEwV53Gfv1yUGmi1dOqqMpLd2gxZ22FF9NEqnSH0IvhkgV_2CMMKmqRv5N9CEnCveCcL_Rd5a7AdMXSje3duG4laRqzfjwN-orMMNpuP3KCaT2Ij9Hltq_XqAbB8FLNuPA0E4iRUVpi73CMaxkvQcnbjkf1uTXdEoVPhcTEKlblDCCLad6HeW4wf0w3s8-9AkexNceSjvlp1RWObA7E-5ooc7NX8yf8XdCBRxVz5JIZIZQtmzRuPVGwMFFAFzF8d5slxeI9vd8DeIN1PvtEmvsmTUIGoxCNbOfTniDEboEeOCgyx7JgVQeMzvsiKgV0LzzMLIcK9mQtQW01HmK7Lz0BVHWVMML9M7lFzxOJGBDyW2tvUex4ErIuhQmUhHWecpCa6sXTFIBhC1eWU6rDuEUyHTi1eO9fGG56g-w-mopuztO52sMfFNjMPgbSSmaYy1r2GHEx8t6yJ48-EYQBJaWgQxgqdAVhXo6da7GVnaN1Knf_voFhTR__TUpqvHiqMeKs0NRIMNT5c_g4GDAdCWJUZwui0efrsu5vsf5QYBkJVXI62RoEoKRUjXYTk_e6xqrxI-_Fx1u7Tn-jVPY7z99lL2gAPdBBJrsQoJUXmAtXMkVrdm5o-up0Re63QmYMjTUDM4ZNJFJSa0J3kJ-HXlcYDeNWTfxgopW4GGR-XZHu5oLdNb-18Em43Cmoql0qFkJxTAkUK4prgpc5NoUzpJ1_f35RL72zo9FZX-7mt0m1U9n1Xll8_KbzkqHi2aOzw6FtQwnF9JYvTaXjTcP1zuTfJhfY5-Hiqx-8sZJ9vK2mgHCInT7is2JEmJ7YsyjUn05HP8oS8rreB8sAvEHsVMjPaHIOusz-KC0jhmAcXC-OgDgFydBatEWRMYFYwUqV3gbg5ygQE9RPUSAj5bxsFD_Ei5CeDvENSVNpJ-ZLsyUW6YxAnObcildTZtjtK5UOTCYw0uZbDcp8LoC7LRPkmFkDo7J5cu1iVMaaP0GPGrVAUjDJUcf76uufnyH_RGarr6wX6ht29_rY3OtNh3jadsLcrY5SqOZOqbzHRj8Zqdh8s6JfWRMWoxNSDmKP0sgXs4ESRN2l218woeM7VnEI1NekuMUI2xau5aVoroRWoTBOZXJGb0sBu50CAlVn0keBMEXg5OynT5IaFfIlPQGPPhlmvT4sCBbO_ch4dek18hcVgcx9_xT94MvNWsffLcuqhn7XDBfmu3N61Qh3vWzuOBTq_Wz9jhNGZNshmwM5dAAXrlcDov_YDqut3IpTBwMjxQBjDMcm_YJ7cak92EIRLVjnyQv1_V-BFI9ii9mAPQWv21H4XlPjEfj1d97x1T94cLSN5dGkTcoOSwaBcs50Aa2iRUdzxmXcU4HEir6-sLb_0P5B1eLrDTDonHfyOP23rFhRHLMObwMQDR9mCQUIntr6_5V95x7g6VpSSbTUIzX0CKgDIJowDhcIPBrtGx35X9hVsiDUO70jbVG6B7FF3sskXjfUz8NjX58z_5qmIjrqnW8Ijaq65ojjM293Mqf_bYFfdmljU9ufb3ej5f7skbZYsKK8_SFKlJ5wpm9pJQSSUnswDDcJbMDIrGOCJBvEiAATkvAKvuf30WM5Qjpa_9UUDj0FYa6j-Wnc0KaKfRspcQUB_M1FnFQ0kMkLEQl8UCu4HX1LebFF30fAN9OyayDD7JsUARwDinU2uhAYzbSTLwRkIDVUqP3EY9Jff9I3R0vXWtgTvbaYbaqOcXM5t8FD3JY4Z-Wd2DCQrpP9fGabl5njX1xcVQOZ6sD0j-XU1m3KdKjx6dcBFbY_1Z1Ll8rJJV9ROJ8k-R3nK1bCOhtSdFeHBBz6gvJ8RF3cXkMbr_AFw7VwVehmXz_eH-OOktct3q9pwx1ISzkzZqdNUZf6MDR_GhpF9IIHtDvnZ4lKc6Uov56xxk-XFdn45EyLRXyT1Ssx6LrCqamo_zvGp36rdVL43ZrzussjkuuPryNGWQamU61nmUvjD5EUG7-jUdIJIRMKJ3DtoZTCghOqmboNaaEI4-1RyFNuEh1xh_PD-YAz3gyQAFIIq19iAD4Ntw_Qbp3jHc8DphSk7YM9loqKuv5nAUpGJ2bV5JDZIT33I2HdyGMUBVS7OhKi4pMSnQF5sAre55oFK9RhIaN448lygFUjptj-4ld2d4SGGgVom6byVRyVIZ4Kyi0Of7RU2dRThDUtwKO_aNu8_IBf_p8WFn9TlgzS_5wQnoAHXuimBmWiT6SM8CXj0UlDFxFy4r_NEq4vK8_N9o0E-d1hNDu14OREupIylzxIpoDFmVSyxCINaMfykiD9rIMhqF8fv7ha4NzOP0Yz-pidunRKXkXuySrETkLE7KXdIYT3ohHBB3HdaFztbBmO3vN17E47H4UB2WkfA5Tx8sf_tShoB7lFfrtpTDzl_2rlAOvRuxnzMsxAA8ta5TVvXzI5dS_lxqoxqP_IhxTHZg1TiSRHlMwJDdz9CaKgK_t-8WhhSEjJrsC7i4snE4Y7_R3XwVd-CGt5VErUmVL2h832o9UjxR5R_g4MpciFDKJdgDDyqBhIMTc-BnXP08hygYwxyu4h8VNYhVKJoEcwxaDhoX57zXQ9SSZoSRYIn9eccCtygVyjNlwDMXV4_UxcI_eQUF64UE-qeerjiQkqP5Wy3yqMNcXk3IO16qQQb_xi-6imRn5MkTn2OIZ0DdSFwfQNbETwMQyKzN4ECgF7jmDp92GZ2gcrrk-cufPzwqfAgcKLPbNGsKiyhVAKyObohmHyEh2WvWfmW1RONL-6aJbsGKiF26SYVl1BqH6mYfm-szyDluwIsOIdA3BtIR7R-cEA38RZ68lmEkM3SPlXf7x2eiAieJCo3ijJgPMPm5LZvgL6FRpAoRox7qP5DT-4ezD60yNsPIw87wjMAGJotCwUDSJ4Oa02B4wpsDg6UADeGtpLJuusm1RitGPV7jYeAKRAHQzGz_bKuPQ7IpOFt27F47CqEC7XfLWdUo86_N3LzDpAuOv-mxVv1vaVgpgTKNLnOe9oXh501LW15V39hlxuUny2Hv0AKUrVXuOG3xg64eDpyZij2J-0is6oVt61oVBYbF-8lul3yTK9nHawXunSdOFAbsbQN7FXqyscWbk6rFvBXBEHv94TokmaWYVVWfEoZqtaQ-EVvj5gsg9p-3QB4kgLxdMJpvovvSVmRHOLUzR-p5Emb0l3fBTVmTMlFEOWh2ODwOeZDcx23E2QzW43rSRnFzKMC65vQALe5k_xMV9c7hra227TaESxpCL4Fxp9t3Nq1Qm8Tb7lz4s3TxOobJ9kyWaGdvFm0sBigx3RhoLYDORi55oPfops3qb91UZ3o0ghtgavaPQo9MU-Iy3LVrlEcZkH76Kip_86ZF4XfiPJY03cYO9-zh8ajneUv7RDfia91XnZMJzRaJjpLgj8yU2m8vLcr7XONj_6I5qcTwFTMNzV_Bga17582338vCAPACo5Pv6Dcl-msxXTwGoGuL5UNpVGkx_Z8tx2rfd8IXXmWb1_O9bl5CvIMbTUNICPOWYPqyRzChtgdOlG0LHnGyXoBuW4wlRNltVLhGGdlspc25WFDmy8XssAMyq0lP-0D1HETuPr05kbR4GNrw--UTRaPeum3RFjW7HUcUixGp9kM0XzdFWiQvEx7dlykzoZPWudmZJQXdovFtT8Dfy32l4yei2qtkLEWL8E6OPC-kr0_5EMxwx4kSlW2ONwifZyQEQ0C7jQ2-cXr1Uk9jdFpnM9ef-uzT16NK5Xuim7j-CNiPJuL_N4UHTkpY77eJQDp-HE8VD6oWTUyTQnJcegvgV_L31QPCf2S8qQw9-4nGCo7wo6x-UNkp1Se0lG08MNVhTmLZI5_KdnZlL_PsLevdvZbjgcZ_YkvSo-JAPOnmIzyhdWWMXPKXpLAZ4biJaCG9j2XeDwE1Ne6HfrUDHmzSLFZXnVCBi9E-Ki3xicem4rqpXx8zx6uNqBwjJqOdCl3QR3P2nLQeno2R-tfs0ve_SiC6qZnbqdvoYRLyVolZODOiEzGPlcmIM-_7zIVAzTGE7N1T_CAt52AzVV63pqzPQscZY9suP0F9g0m0kD50rlfOwk-jX4hC3rg_qVxgc1rg8UgtF49IQU2_jgpIfFEEcJdSQozQkBKaZ7eX3fDKOcHzX_cc-Z2eiBARZ3qnlQMZWboOpHTNrZC4D10TLNH-bnBS1xwqgO9wgrJ7OPs4Ye7GVsJyOl3OA6_LuxzE5dL9gjz98Is4pcJ1_lUbcHFygacKNh8nX0Lk7Dz9KnX5L7tyMCUEbcwfpGjEckXWxNnb695LNErE6D9gHIPOm5WVWgDdRDqpdNbX-NPZRF2JTWZibI_4hRV0UtVpKXWM3wjszz_xwBYawWpgaqQU7qcH9_sUjHPtCw4b5dy0B_DVj8PuRcZ60HBfX9lGt6nb73wI5C-zWIIbR79Rv9hixal0MxEEqge7rEJp_Rrj6esqTfd86AIV_jUTF6-vgMz8DuDkUqAx8JXsQ9caadhDS9LTc-e7qVDuTkcTRCkgry1CUZ3ZP8uDLrxJmFnYWVb4cVT7QLDUosGAwp9SFC0ZIcJjwJfMRx20rsN2VJ0BCJkK0bPoq08QLoOq5Mvn62ShmxI8nHGR5THEltFGA2uW3RITu99dAcBnTV8zl6H1IADkvA8MOZIrXG19hyblfMVrDyKYYstwkraLddSDjq90P9TuhtHkkY1v8ZbBGK-6ta08SNifCJNIP0EX6kpRBLNFwIkCe2RtIqC6SPE8lvwlbJXCYLZ8liJ_T-KbR8BDRkFJuh0K1vOq4HcxvEYopkmT4IjkCgrpJERr_WGSsMLyfdt43aB42g6YbXtXot0TYu4QNhQqcMTniaxKx583Sgij-VCRktjyB6oH-_Tkky3DGUFHuc-1FdoCaIem2wVKd7HtFqWeyzeZu-R-4zqxCWiIB4oZaPh5nNDcs-VCXMSd0CzDzoZp3U_sf0GiHVqf7u0q-ykb6CwSROccYvASLEU_olF4DJMCDHqqs-xOuHbu9OnZHNIoRsJv7JOgiprWq74AF15TbGOfFBUgZ5893Wwmzd-ZL62sZ8cbFQ3KUKv37uTCzOyuFJ26oO-xZcWjHZWHFmBIfPfyB8h04mufUlYQK1dJ4hgGajedoTveysE219mjH15IZUo0H1bVSUZOxwxlHKjXrZ5aRlYqp3z2t4wMeJbefNtJSGgFDWeVuXg8gxSB1u4pu2MXnanO6nb3scMlbUuut1vIls9wQMYBGoW51EYB8K_H3Kr82Z0S-hI54Xw9l_ajSjT5r3WTNxbVbdA18gwXk7lKeItn1oT2XKK4YNC3sCRzg89i_f8r1G-pk9Rui_bBMj6dX49WHiILCPPTEdvEwsjUekJDW-keXp1pcdMAjYWqm0JoI_7DvYxFNlH99A2Q07-xxNpmrGUYDNMC9tGesdWVNSEsNCs6VkUjXIaeDjiy3OI2S86ltuUv3LMWAu1FJ5WN90PCwzV8voDmRgZCegAEd1k_WYxDP-fUuZlcIIHz764FBu_mHEz-RwoGiKjmObwpaFnR42hIJnT_EXprigE_ljRGscg0nFfYA2m9U2SLXSQEr5S6cpYSyanaLI6FHyPhu2Y6TtjnsDau_9rNgNlgcvuxz4oDkN4YR2d5f0ImdGWFF5TJEuHUfXNB0dZXCw70moTn5TYjBtl9davb60C5KfeNkgKHuTZq38uJSROv3by7BaRe9dcJ-DpyLkUNGXF4UAca_0rLxepOZKs3DCh8xNAn8h377plfLWh8sO8DE7t7ZKemHRZ_Mk1LdDpF0rW0dCO2qW-728jXs63YezVEFLh_M846kqzXEPADmpPNfjNFUARZnXRLdt5-yS-o2uoGPlNYr7mXd0AV1meNcxmr8xPsesxjqefzZHSmTwP1ClHBhjLRTG5YZn_eBsTeU3d9MQ3NEayxONKf1r7zDRn3jIqXZKPw0hO53G1ANXMG8GV6nRkang7ZcfIMhH8ZXO41py6wzVsD1n2Bd1wyx_WNKUOiFQRtW4akgz5b24Ma4dlwz5IG-kRQNN9EdmETxbXGuoLAkE4vmQGUxWk5oL0lN4EIJcLHZqzUZ-_29a0otvjCntMe3sXn32a-TqJB-HiSE9NI1PF5162aJSMYLUFM80gRjhBRXbbkqAh-JtI9ak5FMiv8UGA3YYahrKY0-l9miBT1cuDNoVCMWysavT-nCU4OFovXnDA8MPwrWyShVEf1wJasw0w3Fza6MGWTiwYSjBakOtJO31KO10lAnqXGJwHsri_1oE7RJjdj9W3SfHJJlz_kOQtPP7c2KjW9v7w94DxaN-EXlMhTURWsgUAsks5mKb11WP11j4GumRGHsimBiLGNvIII3W1RzS0HtjQ_CJ3HspHo2fEYyubk9IV-4wDoTQZ2Rzo9xc3liz48I43ZE387RXROX7tdc1-0foK3njObCEuIGFBgzBSeolKVIGmc-UoD4wlqm-dRcaDMXKr4qFcv088x1d-CtZVBPnrXW5Ixf1uTck9GziE4daqPB6iWmZSxzqqQXBiyATjfdK6VwFjBuHHLd709iABbl34Us6mydY6IPMLZXkr6uH36F3WOo4MpEL4U0JmCW7oXYfkLm6CHBhkeavDxmhycY_GYbYdt928XoVsUCMlAIjdIOk4sX8rlzSA4qFTO1MpKKns8622XPXJVOTDCHVa2PwFMdnaXIg4vdzEQrCPZF7putxNbo75I3K9oCOSGIxErQnf0yltpMJj9mikZ3Y6IsVjorTUMYb59sPbaYjghFEaXB9H_AxgGB2wBQ5ZtrCWsiYVluuytDBZivpSqVp87h9kQa-BDkepta5QOx93SvcfZikKEI27IbVQlAd8n1sGTdUQBVvgeCpdYyjiwrn7zKiQ9HLufOjqEJuTbGS610JZCtBL7U6nSzSh77kxlMnm6JZLom0UxXd1KQuOvczSMtf_tPq6sjfuAAqWRhbfVwYpawYKZhRxp2PQbNTo7nZRBE152WqPVaAN2VGR_oHZiJt2HmCa9v3b-qOgQl5a3UCDy_oGMgStE1w3nhabWDgBEoXSb5XxeToJRVyBUxwiwfuukMqXM_QH2hXOKdveZ9FY-fKRK1pvGpNKY8QRdK6UuKymZB8o6eAfSgE63hmXlXAjidBC-gIFx8fp4eHXYpWPLPZ5fQPgYWXAu7GltEAo1njCimWejWBOMidvPw06jG4yVYEDSGpzDmEtNC_6YqAAkiDVvXjtruVY-iFi9u1DfIP-XYmhSy4IKZwUIagwhLMoJi6s4-v_Qjt8xTrL0cFVG8fG1wDSPsHChdEueKN2LuTL0yFlmeJ5xKRQorwsPwmXbM8g7dvu17RWtslZ0acjW5o3P9e1ISsd_75TZG-XZCAZCYFVxdoLsGaMxG8p59HjfaAuxfcnoGRhTeVBW344GTbSTlULL-3f2gbMSgsZ5JS6BMGLZVQ_gUk-FwVuFlG-BwG8YcVrqCbDwI3HfqvugNSqPANzFBMuG_MUnaxuWHb0kqKR0k7vp1T9Hckpl0smZgHV-GNepv653OfRe4wNacaOSu88bLaUQXrhHOxxML8ZzHQVWxPiy9dHRGevCfK5gkN4XdFi1IVJ2fuPi0-G2sLn9COYNn2Bsiih4K4j-jSb8HofVIQP8dw-YBpq5VZOqVWFanUfZBW5FerRDAN_Nc2uKiwA097wH3nP-kNe78dEU4e9GE2y3nKLm2Yr7ZGOWIzFINXDNwke6mIpj3XnLU2nC1MGAgLAMNwCQN6Odh79Hluk0FH-eBJl6a6Eow_gevxbyXy8V0UxxBBkzpoB3tQ1e6Sm3UKzcb5GI9j373pdOV996bO0RfP88jf72bJbIaFfIrsEUxT4HRg8hmO2bBCVRDMtx0gwenvBkw8HXa63Qihmpz8PkaQOzN5evwmho3c2BZAxJfwn9VLtDdGgYZtGb5K6MkbeYoY033yepYUzBzNeQ6XlGG9lPOpKK9a8eTYmDu_fChTBaoSz7ZR6tb8uT5ZbQEjETOBxaiWkE9CpogZvxabYsWNsHQkIMYiNsaBGAFSiASIwEAFlyzPmcWKP5fzyuEdEqV6cEn5MhBWPhbF-SjSpiXU4m-5slzlHICuia2ZxauSq5ifLunl2DLuNSULKkYUKCA4zyvL0PdnCMyDpDfgszqjA8HC4yU94l8e16CEPgNQY_KBR8HSwUBeVNSM-M9hWkOP8YZxKkJ0jF9eFV-JMETD-fif09NwfMqkvUOnEfWkf89h3Xs_CulUck7XhQYo_RcmNv2Buq6Xz3S7wMVQTceeUhbAkwSQfO8-RB4WKlCvp32g4WemXbJoVRqqunbglCEbpeQlcTHzuRd8w2zyMWcUn3YzzfK3fQJx8SKavIV5u81Q7T23fadQeI3QX7ePRmEn6sRpXjWna0HFqX6S9r8eADuvIPHNsCMQzHCrupCHFoEtiDF8Vo5UZn_sUVuU3iHE_lxYj2M909rvccuW3L4WvhIF1RX8Fi1Lq7PibGzs6cE51ipypjoUw22qeRsFCPV0Nrhzxp3aBdnCR4_ndi1D3maUkklUCD2Es7LXjl986w0d4_kNcvnDaSqKtH7nl3FeS2zEOP1PUwyecx0Q79KI582UM3UiRPn9fRWqtNK8Pi4_DFp_mbUZRgKpE_txUAZKzUCt148MpvJGyuRH3p3vfFtGHh5UWLVPm20m--h_ucNhpj6Rtik-pUbdIMJFeDn85_JGjmQXYwTJHtEz-63G01Hww4QTDSDuymyXxLkAytujgStG7msqRYPeQ5g614OYSf6OSxgQthzIcegrcTsAxYN0hLlVajL4eovCj_kqjU1qIu6nG6oXgewfReJlM7OjgN1Pp_OzXuZpi7GP3zl-QKcTOlILN2Pmh4mObGZOru5GT1kK6JB6TK8s97rUPfo6BlVt3ZkgY-FB07WhMrVVawCodSmF1M0eDKTVfGCYCyshUhP2gF1jWkACkWk-_QokmlMqxSC3RD4k9PVJA8K7oe53cbAOVmCzgkGqedFLgHh57oMaqarFY771jS2yzqSraNCo9uZNshIWI31f0jViVbXcS2QGWMmhSpp7pT91VbDNXfSl2vj1QXj0E1YnmxJ_m_V5kAVYR3enmfAeghR9fCeOPW6SlDrDiW_grv-R0nXUcM_TQEUQ7T-OQju8g_o9dwxEkMKXxVBNzVEU8MZVi7B3n6a9Su19Er873gNrQdl0DefG8vWlvg1_PULhpKbAkHSLvPYkWJfirYu5xyLlMXpuoYLM5UdNLtzOYbpMBFV3G_M3Yr9vXu1FhZF7y7Xx_OZOll5YiGBbIxCSV_cwhvv6Z7GOOl6HBNa8ChpHWq-BTDqrJOP-ab5bJFfOi6Gpw0Ad-fEHN6EtIO4LzoGimLPCVuk2PMWxRWFOno0SmI3emn3vGAz3vvtpRMXB8WW8WIEA2z1KBxkxAmXLObS7NXMfLJiMqUeMn9gPaj5JwoiuqJEYxKPeBWMTE7eVXAgxtTG73QJ9t5Qe1oy2c6dfXsF0IEu-L3hdgoqnMkIxRf8B_U4UfkCzsDQwcvoFXWJDe8NeVnp84V9kMTlLOntJUYXFooGcXZrXRun-fR9fqPYeMBYJire61DOgDKTCKtwogiZhy5MyK0Lirm2btGCyrX6Sne0Gk3TBkl45y7K-GglTplR5jA_NzVy-3pBolb6lWDnYhXBAH8r-exeiu2-abDSUfmMzegJ4CxiAyZu5J98peK8UuT0YR7GhZhckWhK3zt3K1Cfc4hw2lcWr5rqPnd7NrlRqgzNfNpAiV0cfG1zahww9MMSqNrvG76EbyoMsKpWSfJKG_jIftujNY3PwpBNX27aPr_EMQ1meNXCeAQ3ExAw3OqwA0PrKFCMb8DwfyVL-zUxgkzJ4w2hkCP10jRHThV_P_bdAv9jBdhzqdoeCQvjwzABfk1PLiPJlgcKzHzzdbx2fhruPyDqpfCHdjLNzoKLV2dH5o3IwHHwQyrIdRiNuJsUaf-5jUgv88ayFICsClLsoW_Z0I37JVSVvxKaBrPPNr06Tdk1VR53GjHgJDLqRKCujbQjLnDyxa_9GQUhKhbWlXnoqx_mOtAihX390CDZno5czpu7UmfabajYA2eu2BwJXSzyL38C2HaANAAqVmZhOtQY3vldYWTSt14yhvzMqiMwjnUB-QpamiKULMZtKxA7W7sB8yeBctFijOT7e-eQaKWiEk0s0DoBnYoxreedw0RxVdXtXT02HL_lA30oVN9ff8w6QZx4mikyDsDymp494L_pXj41akmvapIMmWZvy7U00Xp0DNzOlB6KFZqpmime3EUIlhEwcyUsGssFfWXL2rrF9RnUVJ_jI6h2e9EH-HHMZB662S_ZsWklamrrDaIRDL7mSbjGXs_-pDi1ygCJ681RgX4qllY4rjUVCttaMsBYxVpOkeYfJAMnRsQSoOnWte4Jss0RHXcqdpMSDjpqeAAhJG32b_9uNRNPs4autmtUehalirG14nQQN2nRFgfEI5J6s0bjYZbyH8JmDydSokKBZOTzBgNDN7snK5H2CdkVdTIRodVF9eNedE2IkKs7-ZPJAlGRbusRoJGR6y_2HnsFHJxpiSqPYZi5qYmnNd_tWsxEIMEuCPN0WVRAjm0kIleRJvT7HghK5MdXWyvfvglWiEz8tfpkHF_EkWLZBwkVUjFJ5N26PVwLl-JqbuYhubKBWKlwV5-GUcN-7uIIh_jkH5JrjGaR96nFAfsMNYtVfUK3a2-5-rGg5MlfjW8CHbmt8TZWcChcE01wssKPASAHNw1SZ6zGA1Kc2k_Zo1syHWeP70Su0I14ai19B-Dw1Rm2eqPg5mtD8gOP2JPM3QGYBkYIICGc0hVIKrWg0LgUdZ2SODlCUtwhNPC_ROZiDGyo6SyTgBtRuFomCrG2owJNkkiqUJe-SmMtecaAx0ZnEISfFrGv0t9dm7w5TfP3H2XK9lbwKJa0CCURIq2RTrTB3xmbpxrIsl8MvDiq2rRmpwC6XkWi6pY3dd8uH45I6vQ2wxpVjbv5jeUvhMD73MUqqL0Isk0YXP8AVOEtX3udrq_qRBm4cDIwcXqDVWm_EpH5_O77uCo5V8tcSgPAtJX_PMn7tk4rt8vCghzNMbRCaLIjmiPf2EafHFtZsSJk2oOGOTzHZcEgf3-UtGn2_zwl8HGGQ8mbN1QtJpOZdtcMqjD0DfOna26IjC65ZhIvoPDe7latrNj6Ijxg5KugJT5ziHNB4jQkuoWFX5QLpTbNiHAC-56BDVBrdmFwlYtKBY24xlnLQ7rzef7SwqTs13Lx8eT6GihtVMOyOAVK3RnqeSuwi9kgbZnKB4TvBbB_fGCGpyzKHyDvjRipPu549sEnNHFRpULJRi2JkcPYYsTO0V14jzheo3papuUid8igOqyojyrdA-NoXod139zfKOR2wC2s8LIinLjKYGKAEeoJtSmxz-Gm_ZcvmdAJ-2mfwF7qn_5kUfP3rLmAfTWOczN64goiZgrcnh34vbxfZDWdsUt7QNaCkgQwDadTavjym8wlaepaTcVAkvYM44HLSz2H1yAzF_z7hrDjhrapP4qkpwdX9p0wkTG2QrosZmRN342EIYzQtVnY-t97cHUL_U03XpwJhzV6s7KRJK7gJCXqCX1KKXUZr2-YvwtIhBTxwmRmiUadw9Hhfpvaq3h1LbHjSBs5oEHn_HOW-D3lmHo0A347dVSD1MiW86mWA0XXbi6uzDXa13LNDTp4m82wK6zkCL8a45a5pXX4oO6OYAYw9FBuLHvPO8vpdGaziGAii95Buqimh8958ChtSnhpmFa2hTBfoW_9ZFvSz4oLFc0ceSgGyt2hfRbK2B8jKEz0AFs0ztlfy2J_ufip1DHLB_5x4G4UlQr59EJYm6G4N8C-E1abiy5u-N_vr5S69odpSkhwc_z-fPuLZ6YgZQ3wO-fmjC-d9aOnEy_3i4hbMXvKhfSp00G1of1_S8gPbjcpFsYoC4xjAUfGanITCS9NxQButg6heqOzjU38Pt9ckfb655jfA53YmN1uZFj481irYqEUmg1QMsEZFe7_UhlIZMm3rbdp03z8U6pGAYEHL3amF7Skg_tA6ZWR423IQGM1oe3Ea01HtN7UgPAJLj5jvJsnOdes8Ka4vKQbQ6-ETGRgIXOoYd2YkDYsclyVJ-NtDUJC5xfE9uuqjIH6WiUcfl4406fMG5p79MMEaXGJcZfIpeTTZGYSFlk67RKoBoqLqK0eBnR06WNSI8q-qDPCzEUsr-TO0bKh9Q3qyBRPhjmcIPKTOUDvFP0FY5cmvog6nv8H9RcAjU-kwvtsdtyFD-o2NavvE3LT0_-tAyrEvQSGjKwJnLefn-7BDq85HQtmPhhz0Xs9FlvF3p9QW-HTNUQ3L0Ul6kqx38CjBmOdJZD0u0uzZWexvmmFe4WDO8QAWWfAodpWqr7vz1Qw6yE5zqfp97TKQFTh47juApphksOGCgJoztum85TsK0vQiTIFfOLHZJOwF9Z2Laj6THCTgyuYVfi1Tuqm_6_sJtZEycdHq6ETSiwN3kk_sv1eAEq_A0BOqMVexmc8g08NLUGB9xSTdHdOKxJ1Wa_tJoJXppV-iBvnErt5NEfmnp9VErRZfpDK_LX-KxPpu5l663s0Gt6xtcd_Pwff2pzAc5lLpWwOTW8Pbixf1HJ50PproIL6VQSOG0m3qnVAImLKKAGNAj6cV9BjHCFF-9mKozGD3-Y_kf_X777EeS3L24L9hfpnFk2JyxwubXH4gBcAFDFFrU0hXxehzB9Lo5ddi1kXztG4_T-IEz7sJJhSivjMouZGFMZMlZK0CQhyd1d7T9LwAwa0mpNzKtVzHsdbc2NReAqeGIh8w-fwxuWTxjXTBxXeQvCbh8ytpms4_nREuAFHcfD3jf40GDrTaP62LAkYwIpNxKLbEw7qo_Squo7i9vY4EPEQ9WS9YE_pXh9WkCqfx4xVQO66Qrn7oIofoQDzbvbKsHiOgzO51RsQASnIEbtT24xGfmt8Hfv_jN0IqEpj3-h9NMuUz-PPIIQexqMChKDHz14c-KT2KlufGaX_25l3fSz03KkIgPOVry6R4DbkwIprVMdlC7k92i-vRMqs2OmfgvUvY6bscNaUayF9p2PdLCfvzkYr_9V4Y3-9onqQ9vKGWrb4wdjQFJE_POcPH1EAw1qEpk2bi1aaMYotx13Jf9GCwXlrRG8N-QyPfSj0YIwKu_i0lZcuX8KxVEWFY1Ekv0oITIAUCiPo1mQqGhZsqZSO72vN3A2vqVaOYvrow7sURunCpcC2-N_rIKl4qKssNNf1bWEo16S74ZadfRyF9x1PxvToMu_Zw3LorhooBbhj7hwwmJ5IBr4AIqQ1JjS62HQJNvNQsFQ6KkzKq0EcRkavPNfH-CmkcpVeosnRy8FgysxEW4X5qEueRMxJ2eA4ZUauS9Sc3B6eURJ6DwdgqY5BQrjtpAmll5bsmik7UbBNOk8hFL7JSqmxzc00NTiqF5axRdqAwnwwj98vXYp24fME_bGZ6KaI4yyFgD9YkWs9-5SBaDptL0t7tJkUQUE3ruOFZzCHXM_Oewiqyde98vkxDnL_rdn5SOUrorfVtdkCKQMvMQzp9oZrgvfZefpKmhsZTJ1kXAjdhJNuNybhmIP7sYHXDGFYv4oPZzUycji-KKX1QAyMIXHpcIau0bLkeRuUVdL0TP8thWEqGgaJiAIPTHSqhsZm90gOyflO4nQXn9GVa8b_oiYiv6IoT6W-rOacrhV0OStDDVZ0AE68Kyvl_Z8J4BJd0IQjVoJshq8-UuIpeoMoeKzqGknMAo_IBg1Vk3FDevrgsDnAtPqZnkT_rw7FcQj2D2yIXkZC41qOfN-nNBRdn05KkLggNg7LKcBmDVo1foXVmjHBW3evA-L-UtzjcmBacx-wfLs75P7JM4Uj6UKAl5QywdY4ZdNPVnjW7qcbMxW3aNSe_AftfNi3a64zuPCgdsQVQwYu3gq21EeO24x05Ez-zrHKxhKrC8mj6Psq4McUjk2t9asG09p1WgOLQq9nxTWYxVQ2KlrI-qTsRHYBltAk8p1jTiCLQyaDDFh_zE-lzhU4VNpEnwAJqAtS0ePl0o6ojI68COqG8CYq6d5FdNqtmVpHF64JMfvctYqsbXKbuQajz_ITdbIY3Skza_skszwPJJjdJ0hTm7NfZHjjE6_f-5p96T6zp_Z1AzJsXhfbqW04-AlyUgN8IOnHAj5uwrxWcATEzpJU5UrLldpZuZF8NCwnmd1W9k4VyuQDNMS9WTKi4UHU-JW_NSKtR1dVuX1ivwf9WG0mnTSmliaCucleWzkJc4exKgZmxhsp-456wQtF1YdWwoF_GWK27XseaWerOfVSi9txW5O3s8CjJhghf31QLSdtsZDHX_gp05KuEetjX20Lw6I0hx32v9DkVWRKAnI28QoocwQe4i6PKbkcYXIo10XAFH8_vhK8eXxoFM8FP0NR4lFeQqts3LF9MfN3SrZSjCQNPT5qIx1ooKYZNL-iEXL3nD9qCAgMXNOiJBNJ2HDBFPjzdpvO8679ypuzQ_9xbtRf_blCE4H5rdI8beE3wsrhv5vD2vjj00bpzpidNuJQchMTp7lj3b5JAnGSXQrcEhIfgc90S0XziHsNpvbm3NFw5sujE0hn2pVmy7Ybu7viTjvxanyR_JfQUoHVv9E6FrQ59SLIrAXzrfK1L9rg93ZZYLoQ0q-p_KdYoqbw7tD5xqWbYTOElATpAGuN8UGlsDXncwJQoqdMjOdFkLetQ8ZZrgiUO_tZ6j_wuhDMD9Zg2Htv5a3jvnKcVix3gHZHrwwA8taab80JVSIrrXM6-NffVcHe5R04gVtx5oYm5iAJIecqt67nqso_E-Vd7fHb2VnrncGtExUFYI01IQW3dAS4CXlV5jTwEPo6f1qzIlHMgQ7F6nCoWT5bgSNYS54-jowXzYzVC5UtUMcGowEr0Qbrs2Sij09AjVg7cq2XvWRo7DxaptLBipsdQjErsvOf6NvUmHUKuY14nkv8hyKRQOWTyNg7ALkj6ywSa6jH5YbdK_Q6hlrErv71ZCQZUkqzUle9rz75E119TlSVBFPPihR1AjhFj2GUqnov2weuISSh2dBYczByYBes3iZGgkox86ybe1HIZeoH2YTaaCqMVSFv4wddx-yX-FCaZX_g1D7ATddZ7M10FSLsEXSjDik8b8rm7o66D7ssszyoQsnScAhnUsczvn4v4ic2IzDCT-VTHLlFafMFZUr7MHF6LiVOr5_O9q2vzWittfdfVA6qfsznIXtJU7MBTXzEGh4KpHcaaBQAL3zLg4W4nThd_3ND_u_gnog2gSKZ085LN7QiMZ29BO231jmYG3ozYVAnuJTidPHPuGPO3Pcxh2l8skx4R_zUB16jwv9_P5GWviAruTolsSRjT-dLoy4YqcHXVIYgDE_hhiof4wnRoiRjfwzhAHv_AWhk7MCg_lLYIcmqUlPq5Aa7DL-jrZLSE3ABtfiJd1CosG7H6_WJQY-6OetKGOeccSkH3rYEjqIzFqowA2JmyR98vcmc6vK9kcRt_zaMvxNTxDdW53346QXbiL8OSY79KZ8tZOvzdV22Y_nUPQpJFFwHSyxsQPtu7_oms5DcPDEPSIvB_dINDW3am6ZR55WaJPPBUmV6e9zgr0ZHiKedO7IC80EX_GhNd1sEwiZZmoRkM3-FT3s77jLNnnat0QVr2AbYmunVSniyH80hDd-2rRxCe3KQzckJqq82sYx5d4DXvfHCUihKOxdaH1j1dAcno-HgcDO7_Wo6hDiuuCKSahjUyPVr9ndHpF-H4C8Hzq0Y-mWCKNqc5SQ39ajZVcOGeNwPqpRNryc34aYDNhw6iJV0oDnbfCyxeM8goV4pYzbweshJ2IFENojCOkq-CNIsy1TFDKBBVPoA1NBNx1aCKTFl-tS8aliIyhwNGjEHoZvgcsTzUasLRo6adPOnbb2Zv8Oxc0H4pUvaWmvPGNy0A96wbs2RiDbzRq7_Lr2adAZvfLS7yrkbZPQtikBrCqhDz_aJHWdT9Mk7KUUNfTvQbD-qPNDQxexqfKCqcczkj8y7yzMQjAq7zA0dozoc5sLb9GkmiZdMO4hCQfNSKaxRMfG73BHOMLxyLDcmoN2xgeQceVAaRcL9oSGLbgIlTR8V-50yQPOuGx3S9Ja3tgIvivCtUi4zHYKczv6aLKnxg-OsQlDYgUojS7GQuiJOx_6kM_nntCJuLQH8rYWQt2pyaFMEuLUrX6w2zHn4-RNGM5LDjRcgHGkVm3szSnK2QD6ZDEzHIV2syI--fkMeiqf9cDO_SZApIsTNG0cXXUWQoChpKR6CtnYppqirfI8tPaQl8ErqJdBbb5tpzqpv4dWOWR3uL8t52izlB1hS51yBlBzqdjF3Nn2lMF1lBkV2t5VwSDbGNswiu35e85vYF2z2Hovphuayj6fFkYetyMTLVCuuVCIefazOZzEbdoQtM-6NkMYp8lYUxQsWDjHCMG2YCmVAaMSCXE5VJ1cxbrHQpW7c_TGbLt1NOBXbd3ucktMC6gA9bAPoHkr-oSoMBgP3o12rMsYm5vIfrf3HeI_MeeXFsR1yj-I8KKKeuTJ1KEqWgMogbmfxFhlU98LDCSyPLslmNR-6ePIwkWd3vU7bMtZG-f31Ig1OAA2HXfzPlBhgBb37oWDl842PIm5KlcQsN2mWJHSKE_p6URMPMN6SbomvDSrXA0vJH-p5tKgZzqce495WrNJLk0HdczeJvZwt-nFEwuxrCPqICoqjYEpeHXOs6TT-bnltzcNlQ6RvwlErZEdwGT2G-EMR89ApDj0bJAJKw3pxY3i3nvJSdIHWXE9x2BX6pNUvFrIZS6EgOQP3N6TfjqfbAefys01qBKF8OzZ2dbwoCFqi4WYlqDez0h6lDcrPaymipzeLl3UYF-LMwx-Z5Yz9ueRnDBUTZnd1h1XU3BoHAVDby-UU7X9gQeYnuwhPk5tEAPlM3osYKsyf8CDRuEyvOxaTLsDHep9ZCqQ8cmyW57etQZpXRRKzuWU79KfxzEOW9EzT7lTPEbUBY9yIoAjbE9yi7LfGd6e5UrzcMGrd3L8RqPCk-xRbKREQgmureJ9CvCff3pTaRRWjYgMjena8Wl7cm2T1AAZ3NkXbBjirNS0glAy_WOWURa9k5WySRg0qfI2P2YOF98lwFL7ydkhQ6IRUxh1sTX9yRdtW4MgRU4WGbzd6h0XhDBPU50amNQg11uMnwD1LbzgEMSFZsOCI7BHTScZNxSl1numLesWfHraFs5qyZiygekWMUkLSRbQwOKqLIohINVFjhz1LbEmKBy2V2WQOdREZbiItRiYvyX8ELoqPCA0y0BDOnO1fYSo7OTsqnyyPAahXxmnXu-O7eCF_2yuzaGqxAlVWZkVNTxDix5wWJ5pgZp7zRC2467TJIRiQbLXSbAVETBjkV4Y4i6q1teIjnJtYcz9RdwokQCgOFZ7lIG9r1WI2l1g8zLhgUjVGb0_eGKQRSULub_1OldzT5v5TixW4w-yzw5EeOWhJpcZ8oYxpFc47JX0Rh7Zgh1Ei6McOxv9QIswIWFLL6Kp9HpKsnwjsdN8Vl5RMJfoflkcZl_sMnQ1QaO7q7Mmqzi-NIzUhgWlYEysQa11TOUaL-Jebvu2MSuZ6sGoHdyLfGauZlkEpwIC76mGZ6URkOSu9P4TdE-8QNarWvZn8-E-D5kovAgpO02MBuI0O-PQSK6ApASsnoyRv3mOYISE1Qz0c9hcEZqE1Y5PCY4h3a4hgQ07Scsq-BxBe7EERM20p3wvJlhhSvgLiSWGOjleVmwAlX0xsPdMpD3yNwJcuSKzbkCwj56W8AiPbKrwH55Tn_LES8eZtaHf7jgiRq5yHXsGn6d7BQr2O9fvmLtjnZpP23eKdE1_8I03c8HFWzBxL3n5geEDqsmlT-7yMXktg-BQnCdVk-PEq5xGd8MZMZ7_580BPVDXNR_IpzquJRoc4j4-eKIRPVfJQ90HyQb7bFybGSYI2zWiQjFmrgWGyMh-4qgKBf65qpFhHHwicyOdXNwSl9hT6BkbjqWFm460KlaW8KNs9S0UjfbYCn9js_2L6mNEantb4IsmjpITmrxM-ROp7mFcm4SM30fhOqF5Qq6YxCdAkodEz_ghSxPqm5KPcprHuE4kAcTveYYs7v6urdP07NjDiAXuwmwgN6Ui08XIoG5XLd61sYD0ODcbma6qMIHig6IZj-AI0y_rgu_J54ojbd70Kiv5MRSV3hw4csNWJkeYbgnuk_myMAGj29Hx4NI9GY8vGOf4yDw-XP5eHI4Ce_gMhICr_E9qSWF2yP1Nmh9LUF4iLb6btWP45aujMEYlFg0ZCo0GPhEbgNZ5AIjjlj5yPm8u-BnyxIFTMOWP6LnHI73yH39mN_5Y74qidTZcQDWlgHJFrkCUlXivn8Ru7Psofcxs0Cxyz4Z7MmeW3zs53GuyLymddyW8tVA0jJF4o7Bdpqq3U-VvAoyMAsGnsy7Q4LiR2O5gC_iPRFqTXcmEv6tBI7hhjJC3ZT-DpsJ_HM6621e3_yXmecobX4-m8591BBcL0Q8fnVOWQ4hznFnrqmkMSrB6iJobqJ6Aq47acsEtoVo-zzUm5rV6MJ7aYH13JesR-fAZZYCKM_pZwLv6WCJiLFO8eue94RaxpxKFdiM8dJrv_MJggnXQZ0CtPQZHCM5KAfNMe7d3SNQH1Wi1iswUSL6Mi2F2QP86HMFuXEz0Eu1uQ42C77p_CXCeV3upPtnvIJUbG7zmmeYelOXulTvVFCSSnRXxLmAMF_g6P9mIhZO27_e3x5UfvGF0BlrEWRT-Z0Lc2s1lZ7wb-a_MIhd4aQpaA0gJo66KvMx90-edhJ0eWvYUcmdsxTo7n-hqa2xAE1eC_lB0kqkD2L22ai4CuEF6J2a3wj6mJ750uqnIstCxyWkZh9E4U6xqAUfjeKt78eX1zsbaYo1ud7jawqW-OZtw5NTCnJOFccFr6UWLO1TG23MZ7zSbx2SiARGEkd7u13-w3Q82EsG1HQk9MXANfXYNYCx-EnARexZfQZTXrBsUPvFIdwNBVLzmtY3mrRLQ5PbMzQCo5rKkZORzxL4FEcr3lhcZPi7jzKbRxZbnBa6NJhNbNsb0QcoHofY2cZ7U58g6Mlba7lrUmJaMr0-lH_-h1YnyNkYAMkn5MNbDiFfyATf69epMuumjZtuAoXI7Jg3WycgyyX8YGWSVpDQ7NWxn010_RGpSd6TAa6buZoVIZY-bXHbn1bZr3RXmVahvd6IwWiYCApntmrQi7CO79JQ1XR2qXrpnqXR2TRMiCvN_hutHbg4680is70TKi58ah2m7izI-yelEJVPuYV2rA7H-37a5D0QtYCDDBw_Ykxwae1jPeTVai9CeG9j_DruFVNlMYh8AH-hu_OiqiuO8a0t87VLAWlP06Xa4GDdfgXTXKDIoM_HHU21xZ5h85lDqLyS8AflfnRA6aOI9beYMbAOB_uPwI5MofpMGQ7UoyUgEOkInEz3JXvzo9pfDyMR84GmsmDyOpRoM_F1eK-WpiOxSrnMmr8NWH6wx0x9ulb8IcNQS8zQHMLLZC9M1RvtYoClWr0rDXCjZttfXMq3FX85vEFsY6gAfH7dr5ZdpO12MRADT7nkmQJhEZ0sMNYF5BDQoaAuYkMbxfrlmIB3lL5M2kADwskWJU2eIY8wkBC5OEAN2uKB1qJwpdIfGUDeQ3oA_nItbw4pVhL98Osya569fJSjfzm0bsDU2EVCAi7SHKrXw_-2sgavn4FKZ2I6Ua2D5Z_7wFqVRPIQ1oheUtFbAEucsd8TkkyP0EECs-aB61M1RxAKIbL6FQ_KUIzhIgOHfmDPO0euqJ4Hmi_xdjzDQIcQv8SiRyNN4FW4aHDVnjFYKOSKmWa7WQQy3ZGgEy5-X-DL94j9u2_AWYx9eYyqFexkqom9XGXF0vj3givuv6dIHvLtV8zaM-l4WcbURZf83f5o3sBpKtvfLJclK9y3hY708lgSuR8tXsiTvkwNP3dOaFmqiEHHbQ8tx-1iGB9Hotxh8Sv9culq30AU3Nrd1-ckLArAtUZ3e92X9YbMPDFgiMHArssP7KorZHPtMs2tcqzQvvS3DCQ6D-fEpVv_0b9MmvlgCejMacpFdbxjc4SOh2Jdkz625Yb7VNv_FziHZRRgEOlBJwALlFxprHjV91SwJ06eNId7W66C3IvzfsusX9ytXNktNzTfU_tOqku1LEzhPeOqHffSy_H29RSSQyzy8com_ow_GSxabXHuBMl5B6Q3ufDIyYQek7o1WPQ91gPuiWQN6IzlUw5w3pcfvtVD7Dxn8hWyVbQBDWAumSBSU0v2qSGo6udzkRtKN1GT6B-lo3DytyOGOGBYuUVDs6ZayoKqU_WiFZB45lW6jKC3ODcsghJnLyjRyXrRaOoBDOjEFMSInEgRcr0IgEpD6qTcAkdCPVD9umDlqUgFLg8qjI0laMxWMlTjP8HnAcRjNdT_V5ODgyY5I6siPfi-AsLnCzf7knNMoyMnjSM-jLfcnBe562l_z-BGCwSLHt-1UgsVcIfL7LwSUoZf-Q3iYTQHrnHe6y22kAGiBeXshs89omxQ2W7NutZQM38PVD3WZsBT_FdkjMIZQHDFBTu-hM9w7QhuTrhiOoSbwMenfwgJbKaD8b5F34n4FZ6J61DoRtRvu8TlfVvfXq3o0HvqSM_8X41RGAhi-sfazIb4bnfiBgS5lwfUnhJOEWEd8GtTOxtOfzNdf9N7xfZ04hBRGcF--PQ8hbXmEy6z-EwDiB9nSjLDtfnuXo8gbX8b40SCQFW-l0AKVSqGK4Pw4n9kZaByOWfLz8_M4VysTEqnsOgffo0PMeE8ehSXoUXYqqzEMnWeV4dvVf7Pj6z8SlthkDz_TLdcOAZg1ZzojntJn8etS6neTMw3e6zsTEWT_k6ic1mqx8v5aEMz_u95EsDQv9Mt-ZlMrqf-z0Ge2MaSh-m7pLMHEGLepLpWn2aKRxLkt5XA0LG-R9CBB639M5VsB3AGcU6D9Co_4XTmfAldffKdzgS9uZkn_gDy4egcGTTgfmanxexzIswqsPtnepYIsNQ03BdpJWqRKNZNXcVQ3ltTYIZhCMMPxpdqN94a4JFMPdwE-MMuX-RX2OQVHMes82iMnpro7ZGZfHx1bFhMMJA5uxwZQy7d0reAopKT04YdIhIM0d2nvfXN0zYe_5cLNAcvtfjEZTo3G_sO7PiQ8rYpbIIJl5cN4OkguHmH-RzyGSSU0XzD9SiXUkncQrOJCXQILlXPTTcrg3d6zqfdxPdVcuXH8UUTl6aTJt12KsbBSlhbhq1jv1ciLhUGdsC3yWg-mxoUyNB75MTb1RLc9EjAweUebA6XdE1VCgWMqG5KKnm6bXOVSmDVGSrubbaUvyYQKb5CiQHr_3eDvOFUN7-Wg5emzxGBQRcoqngU5k7EOuCAndWOh4EHy90yGnqNJk7WPMSDTKkPr8yUmaLHt9OsJ_KQkMbhUhZ49Mat6f7OY1_ACJmvJVyx__oFz3aJseCipIc1yFck3ywh_18d8yXtkSjTkEg0PzgJPnZhg1tfuAEjV3gLuIRYQgAKX3CZNFykblEuEb8pM7uNN5OxRBx7j9-xR8CCqrlU1lFg6iTAOUwbXX-onwqjKHOCENaiEPGOQ1aeLcDVkch04kS73Tv8w80Vpl39dGQmyvUoUDbzbXsn50aBPdX5yb7jfSBre5jfeYV0F1s9QpajDhVx5JSJ_HYCwmmqEG_u7hd8UWIyj82-pQ3Fg1DppW249hcQLw_XU1_Mv4MH8-CGLGO3OhkM0SorRRjolZ-cT5qje35N4Wl30WQWwoRRDIByzHmHobjCWcVwAgedUxqeCkykfBiGW6gNfPlL8cvyqXz6rsz9s4Ju13GrGhm-ITq0eu7Tj_y9RTmnBgTMH4xf9HSPQSJhEuq-n0VHqxpe3eL8OYuOv7ecTg98dzQ1RYVwWTU4OShoIWuDM1cdhQ5NSeUW4NrZOYHAw-1cOYTCk_2j9_Pdvc-0mzEZ82vRCwsxNALUTKaxcF58aEcwhUBHbKKNK5T40PNIzwEQHz5N3fivVv2QnSTne4ysDAQ5xv4ZDZcgWEHPHlHElUrprW5BDfY2WuPUtAFHlvxZhwf9YO6torGLN6aRxna6UHlevFNeX4Y69DtxJ94PqQmz-aXIsncJ4LGKe98v4S7JgWgscConFUo6J0PTCCvX4p6tbABAkVfMrF1tgNJowclbD_0FFqMYVjljGY3kWL1NEGVbeUjQ7YaVB6R4Oz7kk2iGwJqHw_bCD3HjUz6QV7EUXn51ZT_jL51wRKViIycLX0xb6WcAQFdLejOkCZPKnLqfVrLImyz8sAmbkKqOTk_LVFYdnhM8fsYC9hYgahfQzWUw-WpeGh9O_RE0hT998PLKw4gzO6PiinnE2D5oanJIYFCsyxHEi5aWcPx73v9YrAQPEb3oXt861eUW98tesLAci2N08xvpZAhb01xApCNFJxXT-zzAF3qhMIf3uFet2vh1qL0n6Rp4HTOYRYmsTcA_QaZPbUgIN3UigwUsJfGCbJpzQiCxIAjg51Vk-4x9lDrLJaoCs7bXSNqAqZ9rThIDVS7lw9z7Ft1i-WvikB4VbTbgUm_IET_t-7AZGom1TODsLc4ylKrK0_0951WhT1lkV7VP34LZuNkIfucI3xptKHJlQga2vQj54hk0q7uyDJUhxN4ptiYXPatylgfGF4oKvGPzf5-wczINjxatwdRyFnm-pzE-UKJ7279dEqzO3zJpR1zEsWNMKOkapIEGz8tGbbMBFaX2JSiGFonV6XY3qHM0WEUwL8qo33U9XJJF546SoeFnG3_3tsuAteZ1g6cchVsAsWlsSBQS8KlqTTwAdzBXA3NimFUpbn9LlNGAblyyjMHXSMc4y5uHwfmLxVqtJT5mDi-KHsDKlILf_77chW_jm4bAxU-AuBJTrACBpv_KRUw5jmw19VfliSCxVGaVVBcJAnkvhQ5Fj7XzHVLk04skJlwvvKNBCDG5Nyl3xTzb-ZmeWvFzOYU6a1fdEld7TgsHvlGTccEaj8xclpnr7LH1g-Tz2OOovuNb70cKTrv1y8KNjU-rhkhsJT_O6qt9R4ZiFmpSCV-8dTdzjrasAAJusKwZuOWoXSo4kTCFmSGwU9JWuyGwNCyyusM0VXypSqrJfVTiWnI0_6O6UdQ2XDN2hhnmOQbKX7IbdxSnFnPx1d0jbpoKCOhH6r-X0tGa6BlzIKy63pVHpoxCoF2cHMnSo-DKZLCyUp-xpAdTStVMjO6h3TZEIlt-JjDPPZq8yvzAf95zV8xOImcBSXhHWc_BiH9ar9lO9eqwP106r5sm4AwptR0tLfJuczwfXHyKGImwxainVLI4ZzLvfAldIzcmaGQUqMnAkfCPCFq87ykLfKVnUBgLgJAHRpWgqPoIdu5siKMeZvkPqldfVK3NBWfUyYGJf1XRp-zbCad03VEjGvkpQJREerWQJ39dPGFvCLid9h10h59IXq7eiVc1OXg4Mm0Pjs1xXCrrrwgj9XFvHe9iri1c131xH5GWnhOnHmNxpo5vj60-8bT5vMu5tR1AdZatyCB7_jFpM-23aLgjVXS4fLk6XvxixIIr3EcrV_rUXbzBRZq64RQMQtyMsTV6YvE9gx09gTZPP_lniGQCn0u4eg-W1Da5GpHHaqDZYiiV25gipyFgE7IFkZRUBTV5DtCiV-3FJfL7YJefZy8WqPm9hRlig45ih3NzTEgJlVDYqvRPteLa5A-AdsO_Ps7rLUYnYU_WDyOSxZUaT8n1bFychNRfzQFwmwJ40oP9zuFVYkwcMZ7SDDsuE-JnPVkUEdyvUoJxzEyw35FGYe9qXTbS5i1w8ijzV8RpQoIeeWKPvR4V6XpOEW0tP9EkNOsUgTfuUY62ADP4bN-3wQMH0Vh_JCgJ_tDpuGvdTRCUsE260sORdXzcII5vSlBUB-yQUjAYznK3eVdrdiYH7PG8p49ubbB8NvB9avtD11d2dybROQ5ziyApiGhUGaxAl0mXpqNR3wZNCexmtGfEoVu24L5q6E4Ql4nsyKggjRFubiyy47aLpcEKJ-x-h9BC6qViQXtVB_R8aTlCiq5u8vPVZNibRqVS9sfY4ZMmMW50H5sdmXfbVe323-7ML1aNde7-WpUVMVPXG4TfGS5EXq6hnTbHQlGPgHmDgIkmrZ1Ok5Q3w8JfMX50WqbsAe8Q030ZZ6BaNdzZ90ZRukx0li7oFjEKNnB9-NiapWoH6Ts4fzdnqXbu8alrreC9F32Jg-4LPwbkBQM_j7794wcAn1AwOnqmMu52XqiWvW3Puprv65kgSrTKGqI_-jXOpkMC316y4ctH4Zn5FsGwP18gK3sPdxP4QePOS32_ImvscCo6iuiN2MNWytylNG00QOPI9D8lyfppgTg6E_ALoIgtIqSszHy5u-kWXFiBWMG-wPIuAhUz-ZKVxdjc-wTp03rMCtovnxHhwjZJ5MkezySNvH7NG5ROR72vLhEaDBYqWML0FsNRk0e7B04iI4SYHOt1FS4_XYWsmA2pNTEbD0oRluszHe-IssZrFpQvi7pRnVPtN4WLKl7yuF4hp-xuwdVpdS6K-M7-UtaqU54eaL1NIM14UmTQShqpjZNmDktXBy5GZ7YwfwCysRziFHFS3qrVTBLaLcZtflIRUUQnY2HClxQYq9-pH2LILuoH9koTf4GHBs0zIwRz1SJAniylHSW07XlCSPzkd4o5J-0khDJzoTRB6aHagwEh2LpRTSUyrGHaGpHtmnPU46BFM2ib-zGErqOticnNE1gmmulqupqUxC4O3s6QohtiXK2DqdhoJPM42mve38S9ST88b-S2wtmFTyFe2wefdnCkaYv8IE4d4RPIeqgtR-K3bmDK4A491nGvLRawxF0pBFm-iaxzL12npKBOKoFRx_e1Q1kWm5dchNdVuIbBwVPypeBb6pTd3CaXKcHy6Wuyj9hds2hCBpKMLm6SOu4izYMKPBonUqhb8zn32DaWTdqYoRWs85qZpZqeCMal4XLH5TywYms5UY8oaG85CzfsOuKu48OuqAnVKQLA2z8c14J4F23mgvrLAuUYM_RFCpRXItcAZwwL8bmzrny9VIqG9WAQ5euEU0cpRp1az4_sBD3EgQtRX9gPB2JO4FFPa-AHmMVJsXw49QIUqVyI_AIUa2uO3hUF05FpNbj62gvKz9VpMGb6xoxOH_uR8B9v1r74ZoxBi2naTdsQbytOoL3pHRcmIYsILIt53gEgQbGVfjgJpSJnfAAuyS8qGyOPS-61M6M_3clmAWIhbz3yg4FiKEAzTpbUyx6DaRGF1Y5iCjlLbWzWu0bXBzTvvaiQ1UK5JH4RB8PTERJvEQdJCXDb3CHCcokyuZj1cae3LV-QDIeR97NRon0uL7hJOnaBR7qUT7-V8Vs__I7ILhXNki8lQo7wKs9o9LhVLxsjTu4-epHf_fDnHfZN8xcjrm5XuBYmzxZbaPRj2d5k9Lze9KqkZQcey8RDsCgaAqm3Y4lGHQj9QfC4EhlJYWCBLvaDE2O9hcIAazVcTVPFoFS3KeaH9DMTB2m4VsRTa-mj8888dSTf8YIRccBs464B1JSAS_jH3_rcC85mVCb1TVG0PHdqxsFz18qOUIQpXH86iItn1tIDa9ecaP6sliSIV601iw80m0tDcb-_TA-T4VrYZmIpx3bMinVefEQY1kQ4ZJoHOrdUy4mTmYf3MYcNY6VzMO9xyDDICeWioGi6kWLuIaPoN44BGXheEERP1an--CW269PVGLBSKHo8c7n0P9jxNRpQuL3SXo3gRN7T9LZQpnStmGzdjSJORH331nhxrUPIVbWoG3rMA_ltcVAke1TEYIvv3o1s02F-pG4i5hqe8djmF2G4sRTSD63MAGQbrmvwr1IvLh3kiN0bfeNcSf6T8MQtBeRtVOZL_x_WLF91fKi9WHMUucypKzPKb7-YCp4ZHQ80CB2cjCoxsC3Pzb4hJFrTbN2oUuUnNaEx1ykdoqZA2t1nVLsNAPkuuUDHb_OJY6ZuW-MnwvqgfsgCJdrCWMu27YSI2C616OQvxkqZInAPys_hniOl5MLqS6pyWwuE2hYcUcE0tE-rKKcV0PVLPvMJ4VHN9tXzrSGNlJpmVd7Z9WRHkIa_qkaWS79BJEa4HgrlqYDDJ8uKz6aq_H_m0ObT06ASlJOrnhd6l5WZTqYbDrdIG69oVff6fv48-_utcSN9C2uZz7PV0rPWrDZtdbLx1h6HAF1jHrzbn9JMiE4fjEjP8VCpdxkIu__eQ5R4TqQizrMM_67TzCmGPqsYgPB8CwJIoZ_reoLvYuGNwPHizbB2EfwL8qq8a3iLT6JCFVbK-3EIXNMPdZHNvFeEEd39Z0uepo5DfPav3CGSmJiAKmdIz3gkaQRpndbbs8CD3j6h6edIsSdXfgEet7hmQO7UmtVd2C_kvIG8FOiNV2hwceQRTvaXVzlGqawk90kGXyerixriZK881xTDp0oxxKY9KBHEJMqN3UebdZu7fX1Yv_S8YempOqfOeSjgYww7-u0mZHdDwijw2GCh033e7NDH-lvAxAoSDbVN0lHHLFRfyjNZXRhQn5AyeYGLhsk_MTd8AWGM7lJMCHG7fmSAM6Xxcnrn5Nc0egfu-vz-xwli3MNLfiEppkKwm3UnEiRr-auxmTQeONVNvx6G6s4eBioB2WPAJLWZFaVqap8ji3f7O21htzSBjlU9op2dzhUB82-Vp-HS4Sa2-Sl5HKGDecZU_-AXHY6zsX-y9-TNfyzuonXcNYf-XG5x0TG_H6VQHQioKoRTfcU3fMqw_jBI5Oe7rk9Ecq0-YuJOSbQonHJCCr-1MYkdZ297CpyHiJ4KHCMe097Uu1Sjg5qtP-MnDIsCCC-RrJ6RzOEIRd2H9KFPPVu8IhUHMvM99o-Iz-8p1gtmk6N6EsO2fVDtluiUzSDzOU5_ld2cLXv39wsKEn4VocE9ABJfHSCZiMiRuyPMv3aZUrZ2TWVJpMnn43M-knLAuiBd6vs-BMmmG1XHKZysPH1UGarOZcKzKk8KUa6_KhlhWC1KSUm18ZFQEHHcN5BgRnBpvu5kaBK5vdfRtvwrfrqST5oXXlug8iyQ2a8FjNPRc7OuQdH4cdRUcNn7oxqRwi7FdAJCP68STkdlQPxXb9la-g5ODjhmeVYYDwK9uaCtjANVK2v2qvYKj1hzQ_8SVhYcqNDB0nAYALIp9L0lCWnLeqLxsYDadyurbndN5lktmiG8yzUoFUlWIKknbsu49I76hnsO6sN8EoxhFrps7hAnzzAJyoziyYupvhcs0LQ-BgEii1WUQbFqEEQSF2lKflXnFdQconFR6TlTXUWhtYnt7weYJdSwjtsjGq4NCcj9tKwi48Ncl8qmza6bEdzBq6W_q5TbdYmB6I6D3gQejXYeIw86olJN2UHxJAUhsfmOMkhGjrtCNau5i8u6Wr58Dj8hcXEjRe7XQbO5IxoQ5XwcWKZPQfROrzn58aAq9fOKkgShxDhtoxXqCSVLSSedd0gfj0Zy8U_a-torWB2f4abWJZoBaBss_eMACowUUzL0PEt-taFeKcHTO7IMnwvrK-4mW2l1g-WzdYylMGxPLbVbiyhXYiQ5SuTeIaI2shpI0Cxi_CtIrGuHpG-xFYCNMixMsZ75UZC1UhCwLkwuBcbWyMM_p-r8QnlVDh0qrRXhX8bEP5KJQzoTgJl6NffMWreLOVIPQHMhX1d0kxnyw85SHIo0h7v9YZ6SRRGFnx8enPSJr37-2sS99ljerP9OHmrHz6Ww81vAc1iE82HKzRN6mH6hB_Y-LuCq6CQy4JieDUG9i-qzlbN8hUBrfGUCd36frTcMdM1q0uP2S_jY-hVKenqMExvjDpI-iCi1GTpDg1XbVbtfflAvC3WTIKCCPw8xQ0EiOQrnAeun6_sNqMnZ9fdzg4BqVmo3YgwUUQtCkOBciU1Xo2twsOen03TasqSLK1fytNIE_C-7ptgDU2oRkO7YiPn-H2wocoCclNJGsCBKU4vSwQQGTzi69kLGnI3kXXBwiXqh0OPA4MCSpAOnrMtrJNQYovCHk6DtIBveQsRhDj0uIe5YeY6ME2JRQQJ-N4rrIBebtotAg2XSgEJhIbERVlLMwU8MT98CCVrPksGxJZfJMdAQ7Cm9Y-ZeuCjpXGWJVLmM1ZvGItC38gbLCnYzGGfRSNowIo6wMi00tfEIKEN_nUU3BJZYE4Npiiwagbrz3CuyBSRhtb_Qivm_wKjQGY6imZcv65RjCX7QrZqfRibhA3-cbchgoMrUmNqlf2SsmySGF7ZaLFPKTcgqO_C1rk8X2a8yO2fe6CvNTNKk5IYIdAQvm8LDxRGmExia1bowI9iQAW-6ExCfGSm1aySFkTt8WBrqwUuZRZxbgADisVzX_CUb_5rNqYeWcyge-FC8u6I2X0s9_dwEorDe7cnwWdzCaqPgyejKl7v4r7-WbsjGcUXB7uZ7VQb99W_9qBZSUo5v_FEI9rgj8dtm3tKNgmdA9_pHecwft-PWEhOJiKcJvbZZ3Hxx1pE489Ng3wepfKovLf_oI-h5N2N-igqy9lGzXvkut_aGSG907-KmYoiODorHOHHx7JyFlh5lBzEP8K5HwUJvXDONyTQDKCS4O4O62_8DdcMETpICIZmGFYk5l8xiPRO8lAfN1lfa8xXjj2Ug_JQtFYQCH6ycxwOAtpTA-paOgfvAuMn7X1e6ZYYa5yOx3JcjBB_IngOFZdLePzrvQwt5znZndWUaBNDYRQKZ2gAbFZW21aAcCmX5xWzhA5g16S_8g2SYRhMKbdayTe6Rtaq4ffoLw45S2mNThmQZ7PEyxFgeAoEktt9WSCwWmqFqaK4yaCt0ulMRRAVeW-1M_YB2TeyXVm_K-I2UYVHm9U3f2ZfOYTwVhtO3IoF5mUwJk9nQe4WRqkZEOUhJsfY1Yt54ZDc5YWi1uLaaPr_ZUOqgi3BjPi5Ggg7deZbrb06S9J07Gz9nFw5cQ9UjuGgnz823WqdaBM-kN3w8rYb6uvQEoyaolm2DP99cypveEqfo3DUKNcXRHebm2ygimA5AgLXMblf76IA39Pn73yyP703bWKa25iOX5tWRv5U-fj2aLowN7hcxIl2k9Hv6uLo6C2ElCOjrKv7EVxmYI0uvaMLB2obZZihtNeD5hCOw2cy_QwtPDISGDBWDkHVD4incK1KG7i4fsAWQczMPZnIUjI11apInnypY8QLx8po7OWaDfu43FmhWWuFkV8hIy9X0oHKUXrClSwsUpU_zOaZcYQLcIpSGCwsdG4ig29P0NYekjX6MxNOCS7OrFzvMZNoC1eORWNXapW06ZLfdPFUMx1AsYDKYtXLKGhPvBq-uR6bDK_kjW1EzrK0v3rCoxYQji416yRd44YnXZQt8gkjJyak2l8qbyCPlgPy33XrR2Dyy44EbGGexqXYK9A55r4vEDarIINJiXGMlu9yXZTToE0DHfTDodiqwWer_nkkq3Kd1vrxCTM935aD0rXigxIg3yEw-3K1HWqTH5QHxzWR7EknIpA56FtdmOJRPbyqjhYVPTLZMJYty5umxsLy1xKQFWGs8yrdpas8IMMIoMi1elYbTdwWYJKhDw2xEOjQWpVzU0IxH01ghnAD262ecDF1NdcQArtjOJ3LB-p0CE1nyvXLVWgon2utwrVdg829_Hcj8ql0Z8obVTrmADT239Jihr1AdQ7sHBna3vXM_9RqdiO8T5azewlEZ57vDq5N96F4OYdJmUIKbMm58IqT45hEsQLx3FMhleigi7Ewqv0qFy02w6TDqcQkISz1hjf0N73ugYyyKeL0vBDklQQc8FaVZ1WnS1BRC3Z1ahQGbTbtYtZZzGtttF7HV9dw-Vcb_xyZRAV8Fu5DaSFt9EiiQzOTzLuPhrjL3-57giwmPl8RfLwkJtK1qdDqLdOIRpBql3vtPfI0PaAjmD7PQI4BvaLEbyHFkgAH2NPHsUnJYGANZvCtKz6-JZcFG3ykxPKFXmmNkWN2-hE4YXhtrR9TR8ZuZN44h5xdLhCmFxLc93eJDNAujU7IB3MZoqwE-00M3JQgKDuebqaJcUOJK-hY6hpYOlnJDPb7jQxDqFKuYTtOmTaCQ1PT8jvyyaMwef8jIcZnZWJ_Nat5EiCf9Jwt2e8-G1uQv27MSiE_qZl-8Fy_ghC-N9U1V1Z0UrmlkYwkf2Hf7WzqDev4Mb9TwCTpsiyFspcuR10nbbjpS_LfiPZC6QG6_mapmBnFO6fN5rgLYRw7J1YPXIrRoeLgOmoBnM2w6sahmLpdAUwkbb1xw-zddKBqiFY018qAAWRrXIc4D1KGMti1VpbkOYznKhfa-vc-5iPZkSr0POSf2XoMzV2j24WV-CRnBZ7N217dGr-rz0UWNGgqdmHkkbQTt_ptERjscfue2rXh3UZTnfK7jIRw5F5h-9KbjM_MoF5v_5V4tlLN8BkmuQ9p0uxLUsn1SO46dJC2qUaPLD2oofhHxbHO3fL7mR2HgeWZFXRpC9DeH5cKm5A90nWvUXBxoQ9PObCRMMvNxcLesZuQzXmDBXeljI4dv9kAkSKCwkOMvlatkJu5YRbEaSWpaUKiWFsfFzY6123Q8qsOExzwgqVjA1hdAWFVwQo7u_uGAtxszsfv0tiZA1MP13FngzOAtRfHwoLOC1GSvLbfPHVvY_nGPaeiXMRh0IdYX_J0Wiaf39xoj7sX08JbNI0ceOhpqbXU7FiB3nrUu0tINSPKK0DnpEEfnsRIy01p5oHAVgHITdcEpTOKxkSzuuRAaF4-XlMOI7iB4JRxWXC4_dGvgiwg4PzelalEEes1RwjLICoMcfQhitshxptBupFJSZLwQxF7LANYGPcKZfKLgkvwegPQ1HRV6idJPRVk9HoYnlLrr05smfWThjvatAYwFWXLE3zISwiqeQ9xEGRcMEpc47QPy6_Cikbz6bUAdLqoAYvZq57F0zWB2t_XJ_XVxOoyo9IuW9Ucxcs9HhMfmVyeuVL2yhTW8e8bDGX1jq0Y4NYMSUAhrai5ppPVLCaKvOMK1fiJ0eVLZDcHF-LFnOnBELKQ_yCcazvysR3YlrEztyiCppPZn61d0pe4OvJ57MeDkFMA635QS47T1EwwN4verlxx6-irpXe1nGsoqiuX9cv0cttvCdj9Xl3lWSQDMOIqtQeu2n8et2KhShV5JyqskQ4R1nPbAP4pNQ0ycFkHk0LK39QOOIwEYHHbXNu0OT2ao0QcQEHrmy7Ofzva7kbAh24dUVq88mB9WFiDmRqxFE_3-Eg-RgLrnwi2lM-EEsVSCUs4vWPInvdg0gD5pnlYnk038ArhExwYmowbShPRb0MZwiE4i7VpWuOX4phaW3WjFVxyauXv38iSXT3npEYDzukMasXaPzOm24Mr1EcefPmvFmycNw5BzNXC9R96pCSCKyGng_H5Q-TJP6_ZrtWrAnDNnDqZkiUzztRSJ5AIcV8ENcrDhgm58EDsQFVD8jpK6WnEBxSwbZxly26jRV_FpaBEtywSGqSInjdYPOLuMONfpISvfaE1LbBdYoVdOjT3V53BMjoi5v8Ddw7c8Niq4VtoAYSaNGVpDlPNXBBD8LbcKuYdDIEeqXGnFCy6ixY1vAVVFhq8LQPQ-2TX5TxpztlmIFjlRWQ0mGlyHNafJV_pzcJkkpXqKFT8fq9UWnwcz_5EGO3OM__COgQSM6c1XH7C9eI-tcIf1scwjEA8UJAup4oMB4mJANKsrmc6ilft7yH8obKCJl_9g13SWSj45s5ua2izh41Oa9rEOP2aoyZvbLqM7RaVx5X6bzm_00kJ5On6jVVbhJ5Le_CGMg_U8s_eVNnzNwvIYkvlRdbdGTE_Y5sxYOluiQKXKQvJkkGqFz8Hwx0gzqRtHYsNCM64WGLqcv04Abn-WYXdQd74KE6bxlvwOBCGeG3abhTG3Mae2LtFolxylE43j5OkFaSSgq06skryAY10TJPvZaH4cZQenj97lsqg9AaVsAXukHomMwlo-qeifx9b0oPgZDTdTnNWcXS8JM2_BWG_OiBP4onuR7pIVC_gfNoDJOZFPW026mNtmLCgPZypNVOxprYCa_WfRhy2m5G92wZsgXxohG_mfQQZZR_QaYYBgFTuBqRtgxWp3mB8RIM5-M3A0FvQ49d4LRP4n3EMrrZAbWEZUtLEbFWdCXTWzoh6sNfGroAziCPZJkLyhbzL33Z_l30LI8d_90Hf2xYhSYATVdwda9Kzzh8Ld_5gR3sIYbkPQ2qkqbOSDzp3FF1dzFZnO0IUKwyMlYR2dhej9EvpNv-T8gFNJ1ZN1LRwVV2nKVdS8v_JuU9_oDzXC3Eb3uZzfxJSgGZ78NVFnsod0HjcgcDEgwKS9_T711nypib4UU11nFcZdA2PlRk1eDGC1603TJLe2xxR06AV3B9RA8lLdE3iSFBNTwlQEmUbQcEQ8lz7SDiuOrbYv5DxFp38mmeYxNGC_OXsYJFOGcmfbau1kEpqAxApac_0nzcYgg2UmzpI9DnUolb4jRstbXHjoEfv_WrhcA8RVsf1oeuOkFdrvV_b-m9rimeYkO5nplTijDufaTGrQFIH1p0CfPwCqNLjAR2OLpZSGXVnOUPhSaHmJcVmhOCB1yQ2t1fWECn2E0C7qfxTES2kA7d2B9aLcqUzjwHRjNi-P4H63J-kVOqRIAR4_e2HCcNUMLW50y3wuTrWmhywJIzo7ybrRqvlWIFGFGVOTnN-TjHRhcTlvmgBVSIkIl6Q-1voKUfEpvfKtEY4agncmYxDjUuEAwHknEm4hawJWEmrhphlhJuJNaN3HfFpaZodKKkFpLKA0RN94lcPbDRZJaN5cNI_J567SG-pmQbh5MdDD6oxLdKjfoO5DI77cH0KXZqIo8eMwxo5uCS8fvLwKb0xznsoYhFll9WQjoRQF_iJrb1T6tb3nT5UCpamOzeLrpPJgEKUJSJJSHKp0qcrZ6o-ig4lT4nj7h8BlEVpKMBccnefdKgPbuNX0gyGSwA7eQhgkOrDT-FhuLGNpxqWuCuNnRa4St8XfnhVtynXUaZFsZbSoMCRD13p5X4tyV-86qPzIasQzO_Y3vcR3eGzisCckJaHu9lB226Na4y5jAHvfXSTuKi-CN5_cyc22GVjtB53B-BMKZKf4B0LbM8bPqet8z2crF3vsGwCDONI3nVE0-MKQ02viqLW8nh6R3cm4557h1NzAR_blxlzuDEMoLEldbtFfqjOERC3YD012ltXMRaTLNNWj5gU8Krphdg-EMa4CHi5PLGZc8KT1sOKIrbOp_o-LvPzQUflR14t9WKpI9XsWAZNFsz2CmWWCs7p13C9ry_OlsBikXFHPs4Om7c1ZnQB505dU-5e0_etgTISbtuj9AGOOC68o8Ug4t1gyKxh7vv9SjC4MkmztOZq-ODkq4b4cPgLm7Wp0wcaUfJxlmf1f9hm8JQfZ2c55YdVlIwMFZ4u4A3RdGTCB12rBfuBj3IAq9NV6s_g4ig0VZeaAJs92AAOfyocnDmebpsb3J_Co1NwQ4mmCPCSNxENMs7rduEhSpANxk0bKGaR8CqbG_prjcTuERn2Pv3wANjd4NWkkUrOewaBoViE6a6cxiyc-bj25pRcAqxMYK4NxMJFXl4ymuQPU9tW0c7eLgY3cpvgzyA8Ce72AOi1tv2omNQ_NschdC_KFRbvBHcPP0aZE7x0tIW5Tqu54RL3S-3LWvp0-Lspq6yZc2M2S7HKQD7zjNKR4JMav-KLaWpJbwbumqtHti6uIZmuuWK3I6t8QSqW37XEd3LGRHaL9VpYkhhrp--L_xWG4tGqXILBPpr7ValZo07xVsNIM9ZKFkGrLrZSSUaTyWT80xlHxkrJwJOg16fw1ZWECSXLXTlOimRW1M98uHEq-cWnHoEjiI1Me2uJllBooaTYPcusMl3H-8EDKy6hZ5b1ZYObGBe6sV0icNml9v49upeTeZQ0VaEa4pM2ydj6Vjw8GePepNfa8Zy5IBIwdiH2HDitm_tDYMYHuaFlA1RkqwMqADVg81LFKzyAsmWkwAJ5CztzcyKrWVfQlD2lylujVLKv9TlgUb-w8bsw23IjkQUia2rbBr33OH33qebplAlfASSs4fABQy29ZKJXnq5rX7YLGXcOyMmkzQdpTwbYXVVruQmAyNUQ1TV_M5aueE4TosMZV6nd54RkCV1bySF0yyd5QFby-ixWZHClkE66LnZR2ms80-liCeBbtUOMZk2mR1Cx_4s4pll5EGPUcVbYcQ9JfmuCB9zu28fPcjJ6FB3eFKWUXxjRpqi2HLJwg49d2HYj7GzSXVUi6UGqFBcJU0qM6UKLh7SyzTy7Q9FqtmPLznEoi97VZE6bYl_Dmf_3tmfIqcEv_p7LYKYPTgeKHVzQtkceiN0nPqfvnml2KOf0EbB_LWeZWA_88jbFMHIKbq27_7tzv9fgnTXi0lwNu2gSYvGJlZCUdLwVuYHOdXyOe5ZkqVM4wJ4T61Eu4QEAU2F_5I0jcnDvD7AKcLyIdGRbCY0dZHVbzvVZN5ntL5Zq5LkrtGTzd_Jirs_LgXvDMzowKwmLH3I85YCTxjWbCkKB7XQ4xxt4tBGh0VbhVBgtJMKMm4wT0gfYbp1F56b9LvGpMhaBkUrAHTkta2QATTAdMchYgCqR_rv-Xu2chTF930ZZoRYkKg_HHS4njXX04G1zu8DrF3KzauBWfI48fe1pnTFSseC9VyPFXQvlroJz_gSj-j8p4aDivjQ3FsSjRAB3nSx1EaUXIDIOQ7V5ynaqOKF1GMS8k6Z-bUwy1iA7lyhqS8-kEvVbkAW3L9W3GgFDPzNM4eBYJcZ-NBRXrRRVc69kd5fhHtTt0F314fS3sFShYRzbdsU9C4dO8cSj-y0CNQ3F4wfXydHKBdr4MtIXcisBT-O9ILU7H9eETp_GKPSURv6vrIr1mopjWRIQuBOwqKiKhbwMVS4sFYzc-s1zCyvU_PYCVjhrewvbab4Jhu46CBcdGXUWeH8uVhmXnfdljjYlw7kw1iLp5OCIKRXux0lKGLNixCF-d0DHwMbGlOQ77sRekuzE23zI5aDOHgAhkGiOLOuhTiEZOG6hXJ_CU3dKmRfzSUnP_0r_0-c9obK_rxdins1pxh8iUSnaErEEJJmEotnMC3GxX-Ud-nOHpT15o2q5Iem5eHlMbTFnhmY1CfxLx8i1xcca6Xe_l1OHTyX318d4crrMAh6UgvpX5Jx6EZETOt7-3NdzgDoH-2CPouYuFQd17OaSaK_cJFTlio17x-kJEPl6y_ROi9bIMBNrz65Q7QajyuyhoVYzt7Jry0MBvjgRSO__3PTHl-sdvaEUZD2UnkR1jrrLvAbc7A0murH9hw_PQT9GRO04R0RvLMtuc33gpOSHnurirRC-6Doi205lg-gN69zxIDGVsOnhTSYHzDGBGt_nYcocJEAhqNjmKIxE32DAoXtfBTYiXN-Gfb_zeNE7n4yPwZ3GIgRA7EwRc3W0rPvoTDeGnNNcmnVZHK76mE8_oWm6qNW3Im9LXYYi6EJqdjMuL7Gq22YN1Be7EVKkz2GI1CFH4G5JCwr1WqdkvgMQp8arSJG0M-ECYfdsob6DcRNfGqEGMhJnnphZ1IcN2TSXwlEfISt4enlahYoT0roBtGhHFkApuC4SkWiL6cjUkuxV1WPcn5YruSsatCzr5TaasXjprxiiQ6mwzT-JIDeIWRD5lw-MBJPm02KQKKmeM2ZEfPpiHajJTr9nIevMIXXe9LPCJ8HqDu3Bqqcnp60OBxlVNri_L1IIQk-SzyPSxUOdZ2m2czfNBPenTkc2D2sc0zM6--hGpJXyFB0OYyU133xMY0gpPEWw23xNivqMoCvev_VeUqRckvDFCM-kI9HSAG_RUaj9fWUQZtrRaD3SWW_LoUW0hmZrV1ZmbpIfxLehMgb_whzYvBKuy_GRgWzAFE4ZLyUNHFDt8lZfk-ckS590_01DgXur_QDR6SEdkamdLQcDzoJxVvz7bkdHKtajbcr_gwHuzU2H03nPxmZPyzFXRwtLLQ8nX2HPPrfDMkUFtbU2M8bVpZ-8JrHqeFxWkA7MAT-MUw9fhWiQICO5Bx01ytvlc-sKCX7IoTyFkBB1jFA5SPDgrEdXe8l_RFE1BT9qCxQ5pYwE1U8il4Ev8K3ImfimhMMV9fff5mAMKFAc6daWV_ysez1AfF8mPXSNjcghAdk5B2TZ1QurRTRnC_1gvvr6YXg7EdoVa0EvpjZ9GSVe7X-G_zh2bRm_Vj7MlIuj31SKQfKtM41Gdybg9WF70YuQOzWK8y65mKNsDwpeUjM8h2ggibRdxq4qPtDV37Zd006O8smWKKqPVp_A7L7-viAPxvd3bfVV5E1MPwLN6CQf6Lixd5-M8xJk5JavFCxJl1No_1szoz5CNEV-_HpSg-ifZwAD1J_e7_XtIIsTrlaQVAyt-_3rwbZAY18papiA2TO8CMkwFEX6q9w1BTB8oNwlO16U7hDWSBl3zZnzbWuSdOFUuJayyPyPuerWFFPD_tvrPM8vDiBdJOBHtMAHgwZewe8yoDJvpiZkRSSUNfWWiPKUWKetTvSNIu0XorJMmNknICnaW-KZmyN4eJKPTLH45dT2x7HVNCj53WPVmrlo7lxqcvDoHG4OtR_KOO6JXiXbrVB6sCqQnoTlXgVKIN4sKWSRSt4HCvU3HwvTo6wHbNceZyYuKwIsPgScSYLdqDpLyhl8epPKP_qROwLaFzc6ljUPxrv-NNTPE-BkgY79L6neqBzLtpgOML1OG4DDNQAZ5bg8H9pqJkJy7IEMury38tp1Nn4gBDQSrAURIZTTYHjwrPRRrIL00jqjSLNev-cHMgu0_czHewxGy2vmu0pxH4RDhBgK5lLAy6qnvVxNuEGZ2G8tz199fSbSDE9tkCZqHgT55MdkJu7Ov-o9aJJoyTwm3JZR4xvHPc_fKAW-BJlsGNLMXG-GBWcuUua1oqFimXPfgiMF-1rO6y02Xs-wvmhAwiqa6UGKZLFtgpoZxAgpsUEWy103P2oUrOtYbpsmVDabDPWQeYmiCqLIiWsQO7FBR8UuuSHWQCBuUssPuOie7FvBU1gO4utj96zRWiuarOfDk41SqvOkS__bIXo0EU2PaOXtSzhorj7xeNib-1PDerdpfcDgWTUI5YSA3eR5seXlcZjdxNRg-7V3Fus64J1FswTMqLL_AmoYLBzpyfKSKT84P6VoXx8HY_TfbMtAWKYKwXX_AHFX9JcY1yJOg88e0-xPqVKj-OCxZ1Pw8j0dXtBbX970z_c0BNYOFv_KUh6tQ4-8lZl8wN5JoXPTzQRpMxRzot3GO-MvBq65Di32OmkHEDBtjRygUBYWxamg0-MdnRMn9zjPhuAMs9ENJ2jmU3pW74mNEPN58HPoJXpu1PfJb8AtBcDjFMl36qm9RR6jImlUCmQC0rI63y__yGNim53aTsocw8gztqlyAUngL24eSZ3V8WRGydputvO39oH1VxmQHBLfhUAG3V5gspk8taXQqBVkTz8zuBK4Ov4um5bnIAdjTRipKdp3WEUqAEoVn8lzLBpzrVzkVB9io40MJJ02qBETqOOeMueKn5qhiRy13TmTq_0gG9Rrr_HbZi8WdIM-pQXwBMydbcma10IJk6gKeH6c3Nve53YajOB1dHOPAlOC8FN7BkByC7yn0EO7A2mRh-ykJ3LQsbqh6kxOzEd7cCVul1wpDnLHCwYuRvMiR28Jgnx2fkL5eZcpn_QxvqtQR-PH_KAcyQ7gq4Sz8BKbz4O7RSKIOiPbu7tmVAndMlieCTkIIoqEBy2HQawuV82NXqrkpe-Xq3MUc8CHJdXfkQdK4M00roiixNo6qpK8gAyim4hdXvckjqs3Qj-VjejsEkqi5WUN_t1iEJdt1Lyt5IvSpiH4xH4aNPSmjuYVPnWhGlwkwn3hz4k-Y792BNFZuboWrwv3ArBCvx1ouEIJeK5S28c-hwuVJGpLpM5H1BR_lKoJVpmzrLUHdC9FLyQbM_z4QR5DB7BunEaH7IfruK_HjVy6N6EqFvoRQq9iVCVgJORYCgU40Ze3XEpGmbiHnnGIMnT18CMef97Fm8wpqVyIhcjR8iM1bOFY1LVRGW-PfyvxlXfu621HtKbkMVwSFL_rUlOXZ7DSZ4cOqbnOrSd1di0d6Vr3BkatjUJ1kJD5KlE45fpfZQMi8rZ5DD7LOZfliiv7MXr8em_4VwQk3s5mzM3Zkv8eNOgKaIo2jLJAb1F2oPvSPV6QGJMCzosanIUeLas4MyFnyCDiC_zCXhurZdeYL7kvYctp2_Y1l9BagmUVTNFUPoJtlzfBOGNgxyf5Lf0PfH-QOZHlypBzJGEDRHt7FtvbGpzKvW5X6vsBkJOdKszosf3Y_eVOdT3MVWnx7ZiSwQqd45p9FSub3MJ1ijrQv7AgezvBfNEoV7aD2pMCKmG9Fv3gJyaUiROXuTb7gB8NxWfK3mrWoZBNFBGJglPwwuzdm1YfsYll25pPF3Yb1VxCjR5Vcv-F_Cx4T4x74PewK0vWPnk-F-nmhByv895r5riV5uCyL8lf81G25hSyFLRmtQTWc4cKiIKhzacn4CUbwQVnoZVZcly1536U9WRkBNWvVSuNw0r9Mg1SWRJhQ9BDkqMiZ-tOHS-bhezfbcc1dr39pGMgi4izjSfE9ro74_GODj5PW7DeQyPc6S_NSwdb-FVultVmYtxrMRGjJQcGC_JJzW4ed5Q9V70tnYnlfQ2reF5DhAud6UlL6R47qd1JDL7S-T-GrDLFNaKGGw1OqN8x32MOr07Nm14Zz_mfvBT5v5rcXONRYKod_7K3aVUcRWnM0fnLGc4vcdZ2WsWtTJUfBwWSopb5yLx_Hy6HcGGI1YOq31GJms7ZAO42-yPRC6INd0M08gMMDxdAeNtlZCUdmHCaATpiBLMZ597v7n8IX0oCZwUfdNpXxax2OjrSHn21GWunZntC0f9LuTt2RPq8sxfbUafNOzoWhN_aNW_M54lLPZxbtLktSgzbgSBEBM6C4GOKzPkaHGBNcNWoKl-H3ONtKqggfV6wmWSUV0Emea9l0Wi6IpePd_o_pE3BbJeNqZ877wJ-ryW25ysFkfFaMvU8H5gccLgrLPuv6OIgThclCt2H7uY3smbrdlvOHvVjmwnbNxzLp0Fy3f8A2znUndB5lBuFGEMoboPc_3ih1DPGi1Fh6YmunqPWCszLHfeOzLjClPEdw5YB7rTdfG55jMQANPcZv-nq4FnJ-rfPF9pj2ecQVZOoD2YgBLf7I-GnU_-21K8D7ZUnMX9lY1uDGHzpKO4gPo6Tg8IRj_uFOx91VRFgocCo_yWBwoiZpa6Q0N1uhILbk5MvNvK3R0MedwQqWl0q89i4eQz8fm0-AMlprW5CM_zclvRLXc7lnsqsImgOWP6i9VB1ey9QLnursQEYIkC551NkXbinB8P1lm6mY4b5GWjbWeYcqAoS65U2yJssmzo-tovMlsZQEZsIcYj8EIm23e3K4nvwi_SU42JHo0AqRgRe2Hlwn9Ok7TKf6kAg4Q-9bNlL9KOAsfe3Y3tQCy04oGsLrcJGQygsaKPDG7O4R_OYS6Ol4qiERHJUAVjnhaCFftP-COhwRRR15LXRrRGmA1C8t7wFqS38xPXx4c_1B7-mc9uha914v3VOQ31iTHbA1jOLsxhZu7sKBroWs5WxHsAA5hauG8u02D-HYDw2WvIXrGS7qCQomg7v3lcAJabp3GJ41sEbtysyxuwvrKUvnm0Z2OmI-1WR6j5sW7KEJ2v6DcekiQdN0TmP4NBe2dV2Kz_2A5se6L8kobV4N7ADm2tBwGQKBCvcOw-SHV3MbXo9PZWdr1KXHbaPu1ezYCmh-NNptNsxezaIB9PmiLHMmPavsDksTGPZl1MVol7JDSVltLvVXRNgEFNCxAlODmLOn-jEEO5fACWpmu4RJVbHzdap_s1zttkE86kif-76uyojBYW8alItJJb55G3e5MZEvgZAE2_-nTkRbLG3BMtN_-lYWXm9YDR38R-lCZzUyDgscTFC4-sVZzkkBWvjdCQO-8nno8TSr7fBGfzEYevSgGL7Pvn_j9DuOIGFySTp-La4iG51qBMzoXDJ1343YOwYN07YWxL5P4mYiEttaMIzUQnHWcDMWvAGEBfUkojooHhABTK65D28uc2aVU6fi2v6ZVG7fBM9FrfLxIwutYUsR-ZbuVE4MBy6NzK90WoQc1C95krOKOflgvEvRI5YZFw4wMnsXNpFoK7LtNl77bCUKb4gQ2FPfFMhKE31gi5GrB_Txqa2BPXeiNuE_o1FwuVFgdm6gHguK4_lUUyCdA_Z0fgdlqQa5oK8NYgpqQcpbsjnWT30dSWBAPk2A3Fom7T_ZxxMFAhJUZ7Dx1XMqTvS1Phb_gs4QIVOD1hvjaYbBj4GQgd1y0_wNskgaX_p9KRtfGJui0ohoqhJ4jUAYyVS8ExlAnO6hyE3VwBAMcys9LQSQ0kXqffGy_vWRggUHAPhCXcYwSqRfrW63Tr3YO40dwWdu5DD2_hgH-5kkB3h49TZHYtDyL_GHPLCUtym4_s-HfVf2iZ3h46hBpbNaBs-oqA9J6H53ea_wncFLMThKtX5r32myQLCUsRl4B8SIk6SP1FnD1HPaB1kJ-ZoVcYQXA-RVynWxDvCpW2H71l8YybEUVJZwr9xXvK8HMDMULhNnoMHyAt8ajQYaDY1KXZhpwkXzvHveCcpMjGLoli94nniv8DuEJCrNujvfxWz2ucwXAzlqDY8Jn6fEY-hV94lprEG_YsteCWciJzsOI_rC9EEBLer3kFPac8xKApiCXoQlwqAzMh6pccegSI6X13yMQADBPvav5ymSzTSuXHqnnjGIqW9-VENUMuBRHDPWVWNEXC52sOrt-WrEXMOrJLonZJL4lXV8AyOwgD38zACR518rM-2V1Ahn6OcfRE4elTxXrYsf7FIxxocVMhLZomjQfYlToadJauXZi72DNJn_ezuygGnPYmJaPqP8os4dFNaWCm4cy_DpOpOUbXF1oP_IxLx4ScD4pGl_aMH1bk9QTXPr2d-0MPpNJ4J00ZsRBLAp9jmFkW8nQ2oCueZSUe9t25RsPmLsr9GzDepSoHP421Zcmir7BTH2tJTrYxDNwEWwLbiqS-6V32XNQkynOdUlExmj6cTzjnYVrrtYhx0K-sptjq6a82BEHbRQvlkUGnbhM_4racPMwA3Tx7hUSbM8vxQg1zG-kFRoKtylqxGoPEKwMYLnk3GbFJEKME1nT3ysSQU81dDQ54I5wIh8GxB3tT4UbP7YLuVfzKL1cGRHnNFHbceElwEuDva4CZqngB26GBIrxhdRuW6E7AVcjiXGPCh1pvSItPStGrlPoPBE8SELDpjyMZcxBs_CP1KUocsyBIg-7PwSueXedMz9LeqP8NKoBtQE7HmMT4e7RUwt3z9Xt-vqg8S22eyLuatEty_dW5NajfAXMylD-CcOtvwdSboYqbc5vP6rVdRvZ1yLRPMF9Pcwm_pddFMr8X1SWQvy1awrCJUtrodPd1OvPet7JsLqh0cHch59fskjmcdwC26AQBvXy7WeG16uMCFeNEJxxOkpARdrJZ_S3dQWrV3YPncrtO3PFgDq8NT5890Hv93bT84viTQCSHoLkm1uFv-U8NUgySAB2pXWngEhZOnlH1mMIzmSSpPqBg-SVCdBtuHDivPaaXgqckenxnFuBnFe3csynjFrczvMbMR9ALl6gAMyRTwQM9AFdhP54Zde8vLw5FZSTERnOIwJjBFOrKz_lWszrqXfHw06Kikz5OocjVGrjSjQ8YkFGoZ7S7BP7hHmiXG2RuPZ33nnwngvR3-UUz4x8-f2BNLTOrlwqGplFJGv1gonH4IPuyCIlK-X5K3a8KbS-DBBo-2IrFUP4_9a7AtruQSiC5fwRlbZzUvy2icQBshhKcaIUPwEAhF8zes8UUXZZ0f2SA5Ijhf1-ppY-6GUK6ngNH6Td3Kf-AapqFJEhTisck8_hvLnhMi22Md-ouN8ngJwpVRIfYqnr_kA_5BAH79sJufVoiiERqiTRDq6ah3kD2ckBjyO34Y3WheMlw0hlwSnVkrC_SSkqcrDQtKqwYttfusfmgyNBNL_8EAy1tN6OnV_2xJCUxYoFU_RN71RjGl8g_4kIHaZsdD6ZrIqd8u60NjrkPc92rNd_kRK2otkkj2Ixk2pEQyTbwtPNW5ttJtedHLqQYE36pmNxjV6qCSiQJMfEZNngj6U-u9jTB0awVPnBsrAIOhv-I-ot102yyaxrdAs_ec4EcRs3_8XCucVhYbHx-mHO4d5T6DTGZu_gzPjyRat0LQYOItqiUBaHIpwBmPPrUYoWcU1mCXsawjVroz5JIvljYtuzdTv6id2vajwvNuH7O_yx1wcFGJuIszdnQDnEqUgQyVL_LKygEsON9dAy0HMptdONwlN-dANs6e-KSaGYzulISjZlzEIt8HGLOdyvmElIoXKuAcjD6d8yToTNiqVT5kKrgQau23TfH5pLRG-oj1ZgkzuJ1lwSltnGa9L4Z80SxO8jEvmLU4ogxDDmbTAcTntS6HDPozPV89FTi2Z4s_am9e64dktXD8IqPThNCT25stjbd1EdUW_jwlG_VHcoFP7uou5FxT7TEZrMdH6Yrz-Dh9mAQY_8KDjlDVDt8ttPP-XWDb8KS8NvvkCDvnW1UAYyj2OMiOlo0gSLlR0vAD1wT7xr2aLj807HdiUmTXl1uUledPhxY8JrAWslXs74Zoirr2xO3At4EXawbFyxn_n0z5VdtxrlSch3kj5PFe6Vq2YKGRYGCMWnyGc0VLAHJTAmMNZIVCCKO_Dc8_jAuwKSAFuxzbF73B5v3PVu3roQ6ldzdGUlMrVFVvx0nvkIZAg_67o78kVF9pOWsBNmrDyJtHTkrmNuiWyurIMFhPd-ISfBdku2P5lo-rmg_-2VW6XsjSFgbjcj_8CbFKMODh7VltJHLe77O5d3k5Rg8AZDPjBV2uQ9UOFUhvNXbcCtQLuhrMmgWC_rwHCnC2l7m-jrqAlfSA5dFBNwgNYzpGqc6Ypj53Hvt9mkZmYElPVadXGplG7dmjP6DKqKzE33PSJ8qGQZZgGlTFIYI7qJEOyWsvVZjLSuSvHGmHZ14nWu2wippun42Fbzvv3GwtlzGHo_EU1vZckL8QHCYPYkYZD3BB4-1-zRMkefEHWKcgvn-taSrAeXaPzf5gpfaeG4jHdb5OW2ZO2UtaT29e2KpsgM8tFH9zSmg5Jo2UPkmp555kjQsFLqKAnAgMrYxKR1MOCQyhr0QDPmqPrwTLwEyq1wikeJ1T6s8sh8W0DAXlye_8Os9S2IND-nn2ihoZ4-4I-S5wm6FUpq_oVDI43YLqHRxYUq0yNGEoo59hXsGAPsYuYeDx5PF357v7ajCen_qv43IyqVDB2pknVtP43AJM189WteOarAiupr4PSnXqdSG0g6RGY-Qr9z40qI4D8tmffldQx9pIIdqR2bgHQIEf_cqHnRYMALaj8Uexhjo00_g2bhbH6d4OtYqRNZvkgYyE1UCjoCUa4tUsQLp3GT5PDGfRgBNxOXCLABlLZCkrw3FqhA37TgD1Ol_-_Fx-C4weEUC1qv0SqRFLk4XhZkXAFztNKeCl7U9sefBrDGGMXVo3MoIkeiKgEH4zQzLC-wChEwwwMX8xe-ulXcMpnxMJwBLZCxjV2yTGAInYFg04jFdTev_ucatvH3jlGK1OvzatRD1c1yWU-A9QoUHq25uzcNmy6QAvV6LzWgKgllQgnRDhfkDaBVPB9lOfRFtX-jepi14WY0dIsArhbse2wH5PoVIEHV7acYuiS5cGkAw2aaML2zXlrr_DCmaO_OrBrzek5-NhNtN1vtsr2fR73EMQyBhIXBppMTpB_4WpwpMLMFlSVSVgaLz9FmxqftQGb12l9S8pz2PSAEIEQQ0P8Ssc0pej2kEFPJGyl9fPqPWQko0HnN5Ng4elIfNtWsvHrvw65fp8mYOVLCDiKZjFv6bglb56iJl3gmEGn7szqyuoQdshHsBbTXvV5dPJpFeym0mjULOt7d_xom7T2g20qQzDySWBhVqgagIyi_nBb4mXRzk31puEZk9psF7ZKuI12svmFbZDjGsSG7fLda4vP4If6yhQ_-3AUxewjmLzjvn4gsZeWUw4LaMDnb62ahT46gjb1ynHzgTDcWEtVOSAVjGgdiYE4pRASjEwB1cn9-azc1y1u1BjbIrjVlflxLUzxAykFdVvczc2_qUEXnF7LVwOWTsHOa-cxkuwKds0jorbwdN1fraSiTTCyJCv4owyMhAfHkfk-CUx_oeJVqSI9oMTjaDsCeQnigul3JUN_ntuacAWLy0xM1a1tQ_u6lP9KxwWpiHpxp0-xDq7zIgmclksJsqq2erEjmLBdsHC-k582RGKMBz6bW6yeziW5nC23nK8ENeIV1sjgpKn440sa8XvN0Z-joSSJQf7NA_-H37dgUr80H8FbClqQOacbMRwKrZ_pbcfTyPHGCXyIJhN5zgJSLBTtt5ENyRar--yNp1Me5pL9T2yDffI3O852yjGk34okzIjkZw_uoFeNqR-cTkmeDy0ONjgyGtqCgrTM-q_SAuOa4Z3HnqiEL2MdwbKw2KuNo0ZC7Ud35-BID3DEyNtCtm1sA2odXvbG9BdZYxOpL6Mp4oECHEmOtuK8TYE_U66NaRNRKclH8g6S-VuoqE58EE_AYHYYYReh2K8rC3JcMBbaLi1iVu9DNYhz551Gg6vswI8WODkt0VspTp_CRIXrpOGGYho6_-0nlG3O8GULe7JYsnPP9aplmjn3lpA2fDc_1ysEyeKsuXerXHEdypvAgwGtBW2FKHslXANv7BIPlaM5UvOP6YtUttn5Su5bMHcN1b7mETqn3GNnYJc8wan9U5OUIGrEmWKE4GnVv_Fnzy8Gb3Fd0s6bS6pN6GzLU4bMb0-pkyZcCBZ4Mwvq4nDHw7yR1guyPfQYvo6T1XBjRFfPv6kuIyLypUlqoZkxpR3ZyVdy-M2FSxDBHohXfUehoOpFqIZgUQqEafUs9UNGV9BJ5p1i1hiaoBGMBxlNkX9E-r97NS7Fro4Tp580PWu5aKMCv3BUIwiC3Q38wHlzNJJwdviWdfJ6HybdH5Ud2T3AtvuInWuFZNvhF0CyoE1bSn9skO4TjRWitvs1cjHpe6zjdB1FQnRnQIyuTheuEa5tqU99pH_LxJJaLXW7O0ytMDZ9x9uuqXBLK4kPDDE3lOofeOeYjp4yCSNk9VI2amJnQpEDmDO3pjhNM-ZhsZ5B6fnl25SmVZ-fCa0eO4LBYG_GXH5Hvldc56d_BH5jW5hAPab2X10YqQ9Met1cN5Hg06J4NEm8A27XeEpWeVJVDIuTWJkOnn2fktonyiiQ0QOzMP747tGr_CAYy20gdNj2LtCD7aVuy3SbDJ7yLdsOQCrXdfZuI8_VLv1Sq7-mLD17OztHVht4_-kGsR3yfm_ed_Qk6e1RD9gD_yspvn-uoS-QlM8Y4t6SH1MvyFBFD378Um_gLpu4W8hp92FtWF0jktkr37sDmk_cW8WtdvFepdk3zqenu3oe0yVglA5bmGvuHYPh-r-37n4Yhm7krAbUrb4pEAVdsYFEVG4C_9rj5BVZKyxv-zFgDyoVkTgTT8vHGV_BzIlQg1pBNz65Dva8eRwd2SaxMBBn4_4SpALVBug418AU7PsCSatu5qnKISlowkkShr-5WqzByF_E6FF7h76lcF4_kUBcj9xeBLWOLbZJmdymML5iK00Z-zzpvqEEZ47WiKhxIxf6wq6Cj7lOkfN6077I9Sky2FE1DE1lwJUvP3sVZrV0pWLSvHUuDvL6cHkW7DvttEfs2s_8wWuCO7tKbSN47Cb-URLN2ZYu9oXEQZ9BDL8b84HzpG2W5wziO_sy4hnE_56ILu7Nyi4JQXUwpFTatpGIvBLC9AlzpB3v7TY9BHKFdUNVyqQCU1OkV5bJ5bPHEdP_x5FB8WhWMSxHA3mKjDfu_fIxL6S15f4AsnAboc0pD0HsRmGLGRGWEw2QVBTTrbwbny3fe6uphm1dCdaE0PWzQyoM9HPnyOG1FoBB3F5ORheW5c8JlSqqrvOSf5m93_QypPpxv8Z9qv1bbE4DAIo4RVpAdNBYk96RVw23F-wfY3_VNs-rLuAAOQEov24srk9NInb8qjdjDXTyrSbHOblXSFg-MRnzleGUYJ8SoegqQZhEqywYHofNMDv0H8hCACJKNdy4Yo_HpxEZQeQOb5iAUTFyGflUKx_LMOlpDjq5ZsmOe2orMfOlc1wYUSCZeLDskveyxBj7GqjX-s9T-jwbZ3SwExeAHH4WKD3P7W9LC3YgetjFBauY-7D91ilY9JqRpKt2vm1mgAIY-Ol7mLRvpbdQXy-W-ude5JyoPcKdOiHGBDkiJR9c04BKB_KSkT186aXKrq-4M2MHIE25NmxIiMI3hYn9j_mgS5DYwJXb398x3oz9XYB_29RYJxzmqbGPFtllc3cmM8tELqV2sxrP92gMFojH8lLI6W11hbUHH1FZksTOAd6Wy1kkM-GDBsIjIYjHQEFuvxGf7N8DfVW5d2ZdWuaxgMbkW4r7Wny9EhSpFoc_iUcohvY66_8y_LgMLJtqP28fJljfu5rkkvDryIlLTZL5200WcP9YSeBtBUS1OoOUYYuyAKejxrWSASylsp_L-7eQegvK0yxYV3OvmCGm2lJA-wbFtuMZ2mlxqGiJzFIETZdRZLfFz8iq4MoSwsL7_rkjgt1LkOxKY7bm7DtbRXEW9DHGVyBqFSu0Pop8WbSZgCXdBN5saS9_nRq5PJwEHEPYIA5OJyf4Y9vj3ahnJx7BTw46gaa9fB0WqlpUwhxuyJO7KjWo2upkzkfcBeUwLjBYyD3I4nAFfY8MK1_k8jZst2AM1ccLFcHpzxfb-3f5YfWLp2t4AeTG2_NdAIXoZhcGVBNI3VkyCU8Rhck9bnplivinmHg8mHz_sd6291sNBNKeX9_zgvRkNHMu4KsQOALmY4RLVVx-aJPV-Qqfn2gWM60KmZTAreOqZ61kcyX6DAbOfpbIX4PKgsjl2_hIqaB6YBpTZcG_AqE5j_5Y6S-CH1peYFnpohI1WikpS12bsrm2GC-vKYYpJeM116Gxe618wP-7gYNrTDbjAQrtyitRyScpmD0OGTloIeVXyfkv1kIUlXRrTgMEi_0LBV_fSoK6OpwKwC_80qZGT2k0ttiEBUo7uSZslRbVX35kCjPjuGmVAiZSoDk8lKBRgaHD9m4Q63Hp6eQHKRwvKKe-bgjkViIRCglGSWAuyV0ICZFtH0cteDKOgR11Tn_aTb2bZSoW6macOciIkQNkiG3rkqiwcHNEfZIk60Kc42jXWMCtQHetIbHC9Skq7FtJ7NgvVjggHdtIsZKH5frb33f-hty0cWO0p9HZ7myZm1wIlibg64-Mvshq6XmUGBsKlt_JnFsz6f2nYWZUS48OhP-sxDCns3Nb_SwKUKQMEW-STJ3Po7J40hQw1c8rfKXsgpFwhCCk7PtxJXypjjYNK0yLHsXMKp1AjUDkrzufQdqXVQOhggcTwG9aXYDZSdQvU4N7GKpXzXFXfWgO4cyWUVcoDJvSOY1MDejETKNxKHoEZQ3u2FXVdSpPqpU-vB-Kinlp4smq2NhUnQ_3Kzq4wtwn9otWqYtTGcDUe5O0JJki-gi_1gX35JUj8CWHpl2uVs96-gT4008hBWfkqjLAn2RIDvJVi8DRcsXRl6v42tSacy_b_4CyOV2FDFunJj227Eduys1K5Xt7gi3-Ks1rbfmqM0rL2YdPZbX0i2oOSRPFPo31zHMMB12INfAOY85I-6l0Jdt_zIOdpUCH2dMdllQib7XrQuZbWDuTPFj0BOvQ84ORF3GCnHc6N9TL3h_EiGlyGDOQuhY6PG0dgR6RYtQ8mn2qY6_Y8rRSq0GHoA_hOnRig3MpJHr97VDVMik_4kmNh0GkJ6SeuZpoX2FtqMVf1YeECKJ9u__Y3cFZTFI4pwrcXBdBQIjK6nyzfYkgFi4gErubSGPjKeL3DxIvDRn8Cezeq0x0Kc4IuqkFma53-CyjD--7czTeNdkJ1cE9IFUtA_KL4f45PvdOZ82ZC8iHFw47m2U_-QdemYtmBZR0NK0sjIXVZauHSyVYLAKOQ_k2bzo337Pc3-uimC_-Dkcd0XHji1s13tAw4lvIMWd4XYYJ9S52385d677KANTiGi4eCY4lvrOiw6PDjYZ4GR9lY6YAna4iQP7GFQKPonQ9dl1zbDjS4AhNqeXJbpZwcbkN7Er1pSnTTVi7yDwLluTNxnXdjrtXkaQf8tsgJmEEPyv7hK_jUMsK-fmDa6nP5F1DaMLeuwuGKk8bfW7edpsMg30yFqYGu0IMnXptIG0F72C8yIaAcDdoDy3jdF9vcnQNxDPtwtC1kz40nuShaKwfVBl1nNkV_9OSRMMHiSdk1IoRBAqg2KZ3h4w4xUotKyb8xy3jV4Denxi4aGC0f_TXYCzQbPolveDCLfNmzVDz3S2kMKEeQj_kuyOzgQOrWP5cQDa5O2EhBTbr3ch_tzBQoV4IJeLoW0nnjXyxUuTqtnyloygUla2F65mwFvYbq9QrpqSI52-Wvp7vZUk8FYbpmfWZGUCo93MtarsL2A50fJqGvw2F67I_4ddHeljS4g1A3NLO3dJv6qbcGaMJa2JkT-kTOG-2xd_GT3XtXIGOfoxndUXE4Szm1HedJT5TCCPSc1nh-EMk3yh9FBK-_7zJNFXp8UpUNEQoB99mDK88rxrS_8al90n-eF6r9cSmzPpYhDrkFFUGJUwkURUEr0JQ0YkX0fa5yOBwRexDK4zJMs-EwAgARoZnDv36n69CRlYEyyGZc8Iu3a_lhCvz0bZZwTYw_Cyt4qIUMnd63o75y3OFCwbt_zjWYbEtbGD5cLECblxaEZND3fIW8ZYMblx-1KfebUJz6WkQisctx6rMDU93o9FZWHG19koO8ogeCwqdm1YiyUZOYBmMlyOklHWVyMfCB3aFjHiVmquH1rjMnAW4rlW_oN_Eobz6v-LqO6I-EK3P_9GJbRtsNM1GB6jCppjh4s0sKGbd3tLGzqk3J5gM-5Ip2NqPjOukigMcyGpbCB9vWJJLT8RjxYMB-Me6q67nLElKeLceSbx4wre6l_3_SaAt_moR7-TyN5scNiAXV5_8MEz2H8kwwyvkMEKWqNt3GJMUbEJWr5xJOYgcKABxdBBaynJ8PuE9Y8W_EaZt77cnfD0TrAZxnzLKY386Hsi98y6VyGCQ0uVJO8tOlxp3kJQaMREOKyI3ZRfV4xBIKXmwyLo-xACDUf1RsGc2ChlObpOhqaH-Xigtcip4H4wLZdglhVwRn2AxheYnZkVbDaATM98x78YFKM8WmdIbwRI6kO-nN5voJAhROo4s8CBB8knacnW5fpVIDcfYdST1lMviZbACYBeiQMdutRrf0rCeNsV9l6mb04RC46-8IKShYmzsv_Dfn22Y4fTKLQshF63jXz4KdhSuL1I5Nrh1B9fe1imsIFkzJGVSqV3iCtksreMOZdT2runmu75BPAfNhOEVDD1Ojsr0Cakl10m_Rt5btiEDEKAnpuLYGSfNFnGrPe8mUkhlfQpqvkSKWvhFiyLPuDmj0Ltd_3jKmWUTnnsV-frzf49E3plceO0DBn_hzDQRQLVTjMQZg5FY11y0HEiGYpFKFhGyg2UOwVq3uwl8HuUKZBLVIpFlwW5YGmn1nNV03mdLlJWkTSYRABTPp186q--V1a6aV9mb_9qq8JtBEU77fa1hYViWTzYhGrbXi2R5oFGVDnR7aYUnaebTrvNte75YQ5Y_Uu9psiw4-tmzaQa9qu1FJeJtEyzTFla7n4ovWBu6SqA2L363cVMk7FZXD-2be1ouKuEQRHXSF7-bGRUxqtBhECgnVDkuJ_XuiMQ8-CzG8qOPlBJ23jH1duQCfEDtpA9GFaNHJYi6z2X9YgsC5-y3BoMco75R6xigD_d9VBdP6-UwZQwVwqPWoAmwGWbuw43ejRgToya6e6t8RAomp8Ak2yZh3Kt-pyBRichFd6F35VKFPPtLdpA1zaO2cXKS7K0DDJWo51P6Sr26KqDYDFTn_PCBQ44V7noi8ecIlbpqxDMea9qsoWbuvluCbvarnZpguz8pX4gN9WVyQ-gK9Oqk5J5jnYY8kw0XkER-KeNCya_7x9kzJSSyPOaSCSvUtrcC6Kv46q563gSXMICgjMXaDT6H2z9dWjKVT4vw1G1uo3BCuprK6JrHaKyNszYIean7e134IJ43t4ijTgrgOAxETfPuXjVbEugx7mJGbi-lcWuO6p3x8h289ufgofNU-xowY75uOMbKllMVUJhThgfjTKdOHFm-UCNdZkXDha0aOWOMAM5JlKmSmnIsMNuJIkU1SXoiSu_TAoXE4gOZe-vO_7LzSibtVFSe2Z1-uKVT88uLip-V4N_hxCt6ycMC1yPcTaUeQkgRTABF68FJG9Wbuwn4hVe2S0QJlNVVbjY2IVXdcWCmlUDA-orCi9w9G7hLbW51C5h_LegryXVm2nECTgvgylVJ0XI2R5s_e8l136ZVAJYQslHwlEBEwdEMMDLBmIBvWpPj0py97s108iH-3hGH0jJfnvyPmLIiRsIpJoln6AJ6FSwV8GpufBztI_BdBlHWwnQUBPQnlo6w5PSVk6_k3p7QbTFtqQ4O3dCANik49QZdmmAJlqwoO3d70iKBIODDs5BTs0JcLVIlLtZuFIJvwMTIkSxJDoFjIVPNBcjNr6oyZD_7GxpukMf40VhWGgygFDoKFnNrMxWzAkf4FKcPe1ACna3dPgjd1yYJPldUgHAk9Z5Fel2_i70SCo6qJzx0NCHFKPL_iZzdycRlxVvQH-DqFBW5qs2hMKRew0tS75WpMQDvdghrX8592ROuaM3_HO8Pvvw730mScVQVuUCBMOwP5zD1_whOjnMToL-eG0hZP3280tvYssGCAAhevh3uVCiokj5i073tVa0CtMSiMECluWWV2hTptI1N_kKBpE-cijA6oLwO56OuRQhZLL2KVi1RDNlq5Bk1NI2rgKfQCzF0ieQg-0n07bzwa7KELAQJnDQAmuq2WCSbeWYR3wVfSXedTOXrxvREFAHbSszfIxQ_4p-eHVWTAK9cv1rQYPWsw-234AmWtx4m-RpfT7lLcX4xHxlTKmm6VPDWhDmbx6L1LU4m3vpJxF9ppHUdKeW-80wo_61HBruuYC_JkjmDDwlsS2AHzlABWhdFFmRoxmeY-5HjXpxjrEL_EHadz5eEfu1SoH84TpisxXVRRWYaxKGCu6ab0fTiM6ltLn3EYlzkyMISgFHbgygYPgjcy4iZ9HsV44l5ofZ2fs_JquT-skQOwBEGE7Zvww_e_TSxp1XnC1YlnPwkz2lekPT9uwbck9k0_EEc0EHOLABeUm5MYwfivnIEe_ZIM4T-QnLyUerGkq6-8YjU-I-tJ8oCZLsn2HWtkOifRfWKgVLMdpNOXagX2g9LXs23wJCWkgJqHGmYIV7SIhU_WJSOy0voa5m7_3ljyfpS5bV7EmHuTTjgFBEgiTLW-ar1u4qpjH2mrZE15tyFck3clbwe-0YvuJAGpsbiobnx0djgGaFTjj50S3Fh_NmrtNoS0Wo02fsE45y4C2U9D8o4yMlBlyl6a-9l9xcBsZIyJ4Fc4NoAX3bXWYmayZV4EJcTlhTNubCYhXa1iOtj5uNGE4rFgEHvcxAm9q7PGunfYNX_ayacjJ4f8Pga6D_-Uh3AovYAwdPLox0BBrtKSKklccr6a1PPYSl9r3y4beeZ9pFl4BiNW7ntBFXr68iTZdxq-BgsGHvq3I-XTBZg1Z1dvV2bg7HBIxqtTAnSx0vjKHr8zbwT8mSe4_QspvrNBdvIIQvZAEq0wRD7v5BoHPnVbYX6blcJVO3nWpJjuoR3Pmwa90LV_-uIkvgXyqb-4u4Thi-d5VcwalXUmmGwUYEh9xUG9yZLDXE6qqMgC-Batr1EVVQ3e-05P4qYMdHeDYEfenBU5YdgC5-EWEg5aD4n9qumEnJ0OCvo6XNx2VAV8LKs8oLU81cKoqoMymXMo4poJpy8SEF0fopLRlOnrJ7B5fB4MGo-5gxpJnq2gPhn_9XBbFbM0OnvAbdCoz8X0_09gG95HVxsqvYoEeSV7egDlpwmhGuUVUYHgsFaLblC3l8m076i5-GXImjCpjDACUqrEj6_V2apzzi68ZYjitTu7vrw2x9CBXEAOviE-EJts4RK9WEL6Wx785L7wZFU-FVzMszWKgCkpCjtQiYA5ToquB8_VlIEX6SHlAMp2vziaSUyPdJ_VW4a0INYRiMKSdsZmhdATlnEhQ0J85QYE5EwsZ3S4fLfNPKqszCMkTL8QH6hjm5yapv5-BKrFKRpTzEmjSpbYOg8HYOpLnDrfMLBzQtRNrOpT92R9XkM99GPf2vc2NLcal1NokVxG9gDN6yPcBnxPrizLtKsKSWbwVpXjrr9WZGWBkHjeHxnUKyjd5RW5fXVwzXdou9VW5pTUTIw2g6fWnUqEq1nI-noNPLAPhnq2nIEJvN8cqZ_QRreMdQ1gtiCExSVunPJckG_W3w79oedvvByL1wFvzUdpU-cHzATFQHk56Yexmew404AC36PGhEg7KDnsNImVTBy483TpAuIbIt5k1Ze163GwWF6Jmy55_NL41kv_6saOtAS2CzhWIItRtbX1mHNHak_EBRj9j02ReZn-gyqjdWNuiclNmq-kBIlqamyfHEf0u2CsJSKlMViWhytxiwwgjNIAjkAEXvaB5ANtTvGOdNaA1o3m4tMWyleY4O5VODXzh4hcXAriqfiFVt4yWD423LAXwPhWd2nL1uleLll5CgyxFXDtTNKXBVG5Rk18Ybq81-ParwbtJC8hyndYMvh-UywOksE_05OQMHq765iD28NrvtxZcYIBdNLvYRkrNtec63P1uguI2RIV0mDKNxrQf4UnpbhmCYO7a8MZyokn8E7mfKWeVLubLtmufnD-1rTvJbkBKAT6XNZJxRu2JdD2yetuD1A2oeGZskzLJ1QISVGOYLVgONRe1VyESIccbaHq1Up3lDymxyZ7dKvT4f8CcTw2O9III0aeQ2Q7qDX_By31E_NtgkuzgPIW2Tfvv5kHRG07_75KGM9Q8T331D8d8t8ySt9cA1f1KXzbW7Q-thuVZG4pler7nSZ2UR1RVoTZEVaRyT0j4YRdRsscEFJLhngHGjlNQqhxUKMtuK318MPoMvgXsnj-Kjlet_ZXnne5hHKtwO6-8G09Q4X6gseoXl-uBExm-bv_XP9fhZvRaoebWjo_HQ5LNOPmmh4_EPWRyisXN7OZlKxAswabHNjb26pPXL4F1I7E7693RQP7xHMrzSaNU1iYYXyQJuadxPswixPmxEboxWXfQcYdd8Adj9rDuecwpnM4PqLmZldoV0JJxiEijjHISiYAb2VdI9EIsJJCiiGqyxpBzdprnOCqZzJTBtrA2d7s8yw49RldU4gDAwvVaFqpifRFa1qEsjsAmxpsB8INfmKX8rLpr8nVowg6Rr4CsmrwzLgt1dJKdxSKpatHEKsv3Ho5-Wu13fRCDnlDhY_QdAHg58zglh21VQIf9dcq_XuaaZoLGF84rYpEaXZpfI-296cj6BdC79SClEI_1xPQIkkmR8xChDFetiOl3r67v2e5WGDJJwlPPU78WlASwGuyCbPjlK6nCt-jHdRPfEZrj4_YeMaJTplSyuuJbhpR5FeMvROl_b7Q7NX6FLSbZHS7LTA1aItUX2Tj9k2JzptmmKKt1evNd8OxrbK9gCyINhMEBD_tpgrl0kGnPIsSLLMEWn1-084HS-naVhcVwWkUzBOJg_PahEMj06awHXBBhlzkIOTLMmlra-GorfTdBGe96ny7snBv5UQz1BS2M30AMoioQQvp4GCPvbJAXSqZG5WNXGcKGwND_0h_BE4kDmaF-gu5G349X5_Lch3EO_eqa47vipavZ3eTbXVPV3XoXN4vMlwjIQ3KWpoQugHXsXzVIQvS2RHT10taEfuvekG1Ua649p7xKF0bkWbe0PCXPUfVgAdWR9nbfqzw2JuxwaABR67rjrINCU0AtkV6ButPIASfk5HHrFnhohEh_pQehHN8xuZtGHoaT8F-wBKCUDQzNm4ke0Wtjh3IyjkfHWoVupaaYZ_n5RzTLDE3ubC1wxeM8U1eZwK6vya9F3DBye2EVTFDkE5VXmmSup1Fn0wVDy4irZVqDMcnywAzhYUX2uhYNqBKSus6m-qZmi2_4WAKCIixOobAv7DQoezVZ0wIsCOeDbAihgU0FgSxBah3-UBy9915CcZlVuvhbCe3MzLDvi-Yu0ENccPBKeJQPNnap0VOBvBmjICZ_yZTY3GBWhF4ehUWFaE-cYfKY-AoDRypgS-MRLxaKCOvdHhxJ5FJ0DDP6gL7tP5U3v1gkiRlP10V2Y17GyfYK-C3_fUtrtqHNNnHzby4jzKs3YoO64CS7gPP0gEcvXRf1sE90Iu-M1U4J78hqTIC8EBZkiucpGsvC1i9xQVZUZB1YyXV49JQG4vyqKoiAA2m0o3Zf2iTQQsl1ePpJhhhXiZYZryDTY6DsNZbEhPsF8nsgKNgfkppmLEV-1wcJsZhOgHxjzTzD8uu-sDqi1prULsAySoU5Ba1dHlKOOu8yo_zab_m55o_d7H_OFIFWoe3Bg-ZK6Ohjbi8apw8BZTljBBUK7CJteE9lBX4KGON-FlcBw_aDFP--L21uXrvrJiktPKEwj-Z7qLqiuuPxj2gD2EeYoEy4uNWI10V01Ns2Jgj7I1LABBkw3w2Jrc47WWqWG_8fnDNmR7-u2JaNpL03hFdfva9YKML8Tb9v-d7lKGuVkyS6cHWGisnHqOyaBTFbyzMj4MviCtXqAAcY5LqC_M9dKdX_aW0pCjWVovOS3rjnY7PlEtHf5lzEFLTI2_sOZcVEaFFk8-CPNAx2yFZSVPUCcR5o1FzOlDdWeEpZIq3_OxiI14H0nI3-FhwZhuF4Ao9XX8K-fQOzT7KBPYc1w86IP1leOR2XNEa01bS_f7Zn1vuMPe6ZeIzqzmws_SYai5Jgs1XX5yZJywj-Vvd4KE-5UrJKy3VdxPRBAjpu2PjnDAwrwuaGfxJfKmuXVZefMQjNmwDaI-xscfCViMcRSa9Bd-65HKMZQiXdwIrZKqj8SZcVtoHCQcWQqUuDpdD55deXYxGkFVUG06XuYd-vTGxo0iy4scmOQLY_soDbnua_LdboQeA2ixTLPINoPcrqHkcCu8V6CRk989lOLvvvrxCol9HqO2wEEB4HuknX-w5y588UXOgjwjJqIlQx-cMoBc4HCpe8Q8KlLA5JMTZaAcW4eLBJdVIjgjQ82wuy7CEqj0qzUAsH79oyHou8beS79yHvrO_eRfJAYUqrxfns5ZW7bHviXtc2nPGdy-3PSsoEKIK9yxk7EmlhDsquthlnYXH2U9BAu0UhwO-NvGjEKt1Zzn-isCz37BpP6EuFsEzKd8UANCtsWm3hO8F4pWsSmuB7vzMY2AaqkEwRzea1LHpkOC2AjFKkiWWUERX66Q6WtWBAQxmdH46nvl5NLrLGU0DBK9n4JOtzmz3VJH6uenOodbgU3OiYgvP-NCbOZsD1clLUeVuKdIWPjZNIqwv5onDZIUk0oc0QQ4pH11BkkEGamZMsIniQMwbW633_EsPYUVtYleYyoOJRHdYpnJABq2g2YzG-X0ydlYI3R_vpBWlzA1HIDNYl7sc2S5WyB56laSQMOLJL511jtfRa-Wj0wTRHmbb9V6vvqQ5C5cy58gbQSz8YXkIH-7QTgSy2PwYCqqnlgMS2wIQGMGrKJH6Ipi_7VYSayy-bKXryEyPXRKOOoa1s6xbLnXZfuztFqI1_neblW8aczwBY5BPXoSpF87kXOckgGV04Teu2XgFd1bAnTLLWTWV0sno_9W5amM56mBbQ1WNlh4FYsYs-5hanqdVPlgW2LvayTzUHLbV0U-B94Wr-qwY9g71GDBypQTvkRw7nqbu2eiKJh0h0jhQ6sq1RwYU2btvE1PiVMJ6mzp78ODEbfa0ond14ZBUIi2ukmc034wU6VrzPVTy4B-4evGfwzx0RuEsL6EW5JVrn0qCgOR5V6OuC2JvW1X9KmNub4VkAx2U5un5SXk8itsdQzJsvm0MAg5fa4ZxeKQgxYKqBgeum5hEYggyxh7GO-SpJNgVLilUxYRtAMP6Glv0qoMFIXjJZuXNOkaeFGoPxCt7x_lweb3w34W-564H3a8HgshtRbnkzSDdoKl1CtPpcamNPUkKwJTlN2N4ueE4qC8rJJW30WM-6QhBwqg6slSZypwFaxUcCbD4aarM_HXj33HMVkh4A30Yk9S-jbR-GutqVbitKIBlX08ZKsn56JlWapoWefC0HqnbmknWc4kmAaLoU4TfljH9GiarOHGC-4KD3tWAY8q6O0xOl65IX35nmFPsclfAmjySsbQ7hGKRCbqUXmUkWJzeuAmiiaUunUycxyCX_Ko-OX0Mvk3dOLM-gb_jzrC1fX4r8OKnZZ4HgVcCFfagF-aJ7_9C3h6fxGejoFqtxAUuna3TA8FofErk68dEf92jgFhRp-hC-F_H7BAl5m8nSPJCX24W5dFCdeuJd80ZjOn8KQdBFIOcbLqO5eJYJax0fU_LMpJknZUiACj4hl4ODPRFd6Aal9DqrNI0ONLgtUAsp2QIC7lgLR0uYMZ5FwotsloXo6ImjUDLaz5QvZmKlIr7l6KY-JxseIMuyuL-0XL7Xrb9agcXOb9QpUSUJyHUKWUyaE9oFLMF0Of3KKfkYuTEYCWzwqVe3XcWSyexW7rAS66KsSVnNHxod3fTRAzGPN3L5p22_ri4h9Q1yFv6AH68sozukqHp895_IjKg6uK_J9nAaASlf9eTFE9Z_7jAmpq7M8mOMr1hbMVF7nOfJpviDqR39vjzJDo8iggZPYoLZXGIlHNkOPrVSGIcS37P8NPkaGbxJox2ymxowGL3XVlQQCrW2D-T7dsbti44kQfvEe6Lhwj4-O9cV1lK91Hko70HVCMVkZzo9Eh1Eot1VM7ihuOfCyq0YYPv3C2wx9FPe0BNzPsFkLaMjs1laqBA4_OInevqP6LgkaWuUwVSMb0_IB7HVJ9RCfTKFq4BJekBvBUauiqBNEKkGpKj5lRFdbipArbkA8uqCLVc2qSJIeXsK64QeWUSHp44RU5A-82PKPcpdKT2XO8enzeZunGXY0qDvPtTpsTTJC5J4EoJYiPBX4V7eu2YzYh9vll2M899onoHuRK3_zkugdlJTDdGnFWg-APCsrtrGRCoLbiF0DLpe9YlbmAmk0XP-82NT3mhE9J_yXSLS_Qt8kMj9aGAKnpYoIOdNWMzDZufg9pnBNNfAjdsnORV0Z9xhC7__VQxmwr_PZSKp6HEVVjMY0tR2jZJBu_iE6AUVJoAaaUCOqLRs5LOplk_BwIUtUchPx-ZzimfdyEHzUYNI-Hbu8pSWPK1DTWm8cT80XWG4MQepmje9CTUrw8EL5KaPxQqzVGRRs-kKCQ7W2ar1rSknM5pzsMNLfDxPsXgIRRWwzYjUfigxKZTUSMuM7fkbhwPBs_TyEA44LAfv3XHUYEvWoTIJL1ls-4aa3pTINS9TKkSXoejt1sXcWH7AifQkNRLLW1eQ9P8ROUMrzguYqBvGFt0VyDj8s19Do0NyMrEzulZ4UH6a2u1QBv6LE_B7DidWbMZYittygaCYsUcXcvoftRxiKCXIwSjxDKtmOJtEv24okwMqXy31HvZjCeZnbG_mAuHsUnmMGUgmVYz3IBcoL8L2oEM3kR0GHfip6IdvIBsnHhv8uZem5pf6FGruhOKO58yKxkIgz_qPGEWKg6vsdZelNwJ0tRrz1HIKM8ZKGQy2WiFnN0eJ0SaRQfuty9wblF7mk0lIsFDFjqLVQy7Tike84rIWT5kI0Xm9b_GB6m5Ewc1UugLQKyUYaH-W2SVarBrjx8dD2PJtjmLxK1RI56pUfrIlLiSfs8W9qP2-e3OtC7qNNfHj4YAPGq8j9T8bO-YGIvopzFUZw3eoyFzTssWsxWOYpyCWTVvDAkqoxVJv6MJfHqnfIuyMGCnVEDYk5Xt7WDrkek5Sk8nHwLUcYiIKIzjTIYLm_DnY-l_EglAzrCOOahvZzUTz5u1ga-iKi3hJfVaNOXGYUrm-EhhRoCy0u_Zm_WfW9xGYRi5RxWpr7X9BcFDyT3QspO07KpPtgnuDA61PAv_gBjAlULMtXQIdYKCVR5TnK1q2OiNbp-unLB5RZ-rZipBbeNkEDJhuVspKXNkZ3H3zGH3apzBjlF6qzSdWdeWmAQZuJ7JnO_NT3ajxy1V1Cd-KX6UhllzyRTlgUoquU61vYrAIdia8wowSeZyfhC4mOPBNMCSfgZLCESRQLc8HGQb_v-cf16EbvDvQH7ir3TfV8i4iJIuBryCcfvoQC7f2BpocXzcndaUjqioaisXNmyn1YyzGIiBFQf23NnYG4s2qsvZgf7aHKRoOG8H04VE40m-HTC7YM9xpc_MFHWqbloYxoIcUH3HdKn-tFdhkdsduEXdGzGg4i2qs0g8RLe5nBG4gphK6JpIJXqSPJAk6C9LlQw_J0eMpNdev7N8wzyHfQIvZ9At0jpPm8uRmoInoc1RPY04NRGa0Xd1NIDYGHvsVHbCbQoISutBu254SEpuXzW9VY6qfnRUk97enryEPo6TUrEoSh_XUnKRBp8j8rEjl9Mc_-GXoS-WtwU2x8e2gMqi9eZREY_8vNk02TDG0aQj9_T1oejjSg_PsCiU8QSFiAySTZaZJDekgKDAquCc2TZy38HJ5mm7L-l1SUgYdVr8i9xHAr2xd6896HkzkPQQqQ1LWGq2_-ZhA7r2Fz7uBsCnyByguSBQVnK_7Wc3t7old3v7q7u8QmDcJXw3JmMNARqGvr1o8gB24rCQGWqZCAy4VKIczTowvgy1MY64GeZxY449S6SU9YyAyBSsNz5OmX7pCrubQfhVRxyJZl1OWX49OI8bJ6cOlKR5oL1OGRZHAEENFbfe7qI0v6F2LTMZmpgkb205p2mCkqcIjhZ9M6tDUYbVQy7AWCIbz_PXKT6ZYJmkRhG3ZAJq2rE5vNaRJhpFirRAjpE5gNglBcJ6jp08WdzkOwVbopAarp3NM-0hG0IOB6Uyf6eFebFqmnJa0kJYyjK7GklRSAs7bksO09RP79MsE6Bk8NNn29DYs35S1tbijchNtPiKPX5-iVWx5ybHjEQtSQ5NMXWQuJBjUqNVh48Yvs6EmNB0BUNWq7Wx8eyX0pG6BHO5fS2kUxEs-n6KKCNwgcYg1v7629UDWXdsAo3cOaqVz0_Wmbhbnr1bqKfnI1uUzfCeMwEzNyRCjcuSndDJi7BjjwkrIpr7wUhc4Eof5znyFBHxYNrvV0SdUltRgb0zD4uTsoOr1n9rgF_W97fXK_ATqK-IUzMA0a1WqbZQ3KI3S9qR16aU4Tzu4FUbfTyinZenqlJgbIITou-J5fYGQbwyiKvxM-Nm3x9AW58vLTw4oKb71LaHLr0goaZ1zv5niV0t64hcq6soyW1rduqXge44C-wOlQiIDtNTF62X9JAAdwR2Y0SvaOyuKeU6MQuCjqcfBEJ9kgDb_a79BR0PocyxzRb7H1BSwcyqVBKAYGnYTpDl400cAUEfoqfglRybwFaMKbMFSekfqVLBcAcMYLi5_QK_cL5NajuwAS1ZozNpJuiacrA1mCpL4jQe7UEZM8bhZdrwEIq7VM-rCNO7X-ACh9q7cD_Yhzej49KF8uJqUtnNNBjCRxBsGHaiGSEv79zFOMkwrXchbN9S0mYUzlLH_9gr9k7Yy9ajiDaU2wi80JhTOr8A33CGJR09yoK0Au_J8-wtcXgIhlxOdvbYGDERF09UkgfYf5jkL5gTKlaOBdUccIU9DsQAj_apprwZqZYrsJSSdrVbF5tAEJ-wGwwlMxwn6GinIZq_iA99yrasS8BdZsVXAIIKrermCfnx97X6OFjkBR81HZCJD3etTGHW_tT1KwUenS1pcz0IJN_sue9VQMDEBo1YPZ8obLqvdzpZGZDsYSRWIshndkT0snj9ltXy5ARvkaCHcZyI234TsyiHK2nOFIwSfuWGBU_R1OWye2HHGYq1CTbhfEpO5pr08ckO3qR32e8ww7DuEdYqM_iZqYqX6FPAQ3gbSZzIjKWCCOZaLJ_W_A8qqXcpcFqdQu2eSV1veWGfa4_xkrtJeysH2hN3jCN7CRO9QvfpoZ6-xAErPEVzctxrdVl8NcGxFlPDbPv6LahJlU404Zvrq1fpzyFy2pp5qHZmkrDarH6vQ5zg2__7gPwnd7LXvNDpjU3RHbsJGMAXBV_AiWdFLF88psbaVMCzLap6XdTu6UC5bXdsQm8gb2EiDSDtvxGiAG78vtiSnhuFMt54QMYvVp3peTI7Xm03Hp-wzFEG5aJVt7rJwTGbEhoCe0Rq2tl7MRXapalN3HCjVnYlP4a0ZbGW-rBPpgHepuxutA6nIjlwaC4YyoEPuyxabS-Gps0l_7bh_Qi3c7yDhqfeRtq977u7Viz8Z7oPp106trwzfVK_iqt8jS0p5jU8rEcG1uaj5x5iQP_67zEdFfK38_EiFbBOH1sOPkSYtUGvNtRrAKb1tnFutPrUuKZeW0JKjF7KATzfp6q2cUTP94vvt5H6Cq0p7h0w8t8qn-P2LUzsuvo8FNxsrd0H8YGh2DTEvAawo8Bpvxf-aKkGIQY8SMUdh46Ml75iozqIreQ9q5k3aUJSswfPAi_N0AoxqIhLBMt69TWbOSEyQsRmgHH6qBXJhD4PS52XycXvhA-6jRV52FmAVoKCvWiLvSuvmxVkix3po4xeWGdDkqDFuP5AOu6_5mPbQE3Bl9A5iQF-kJrg8lXaOH3g6CJ9DUVoqgkqHIz4eMN1wdmWCla5Dwn4n8f-dmxOE_DZmTdLcUQLQFsO9crtFwBVd5j2z7XLu_tzd3P9SncgRKZOwt2MSvQi6mCd7ctRjEkyoct5AMapdcyAqjxb3nFghenYx-FzOipF9_p_iwrMDdPu71xhyj_xZSxXcQIzceP5_MCNFLvySWgQ87UTgca75-r58XvMi0gvzd9gD58qMeGM4-wCskSj80HiWvtvHdCETY1fZ2ZQ_ZqlSuJNoxX6OI_kwDUSLDPmRW3Lqk0aFPnWxPborViUhT_rniu5xd9KmsslCJe9qgtHqACK1Mh-6JzTjDnG669FEQVlzBW_DTgyZEY-dsDInXLcpefHWWag72sFNRhvx7CsmRwLVkg3ei1uo5_2iKKtIZsPi4tOhCKoN3JDPWVJkIehW94TTpgqCYCnzFnbB4kn4DFI5cNnY4mhVU8mbI7A4U-a8uK8KPyOfgChvgBjVlTXnAQ8_SBhOqIU0qGjhYsh2wn07iL8tyiyOTvlYp3JqSROM5JDt2ViQGb67DdJ9MKSamnHLqJ73uWog3igJFTCXa90XdQqVZVZ9OjsgvpJqh_rsrc5YC4GO23Uze5gaEzvHF_0wM0z4IVFYMFqWYAgc-p57WRDJTOCR9NKYZ_EvNm_-wdlEfUeLA1UG9P6qJRG6wk-jAaL5WMnQ3Wc0boDxEs8u-KxNibEynIJZyvNH_3lwGrzYUBsUcY0TPVw3SuccjF0C-gkMiUPWH4kfQEkH-rcYbjDFQ4SOEwtlRLtyWINEisqu_P1ysw3zBgcov3qnFkue9azP7W1cADqyvMgvqYVqFN0TmfFeFGfSaDFY2ZsA2HCzBwStkc9SqlZ8bo9EPVztJJs87jRKkaReOk-YHFuMCIQa2Dbc_ppzsFNTnWRXs6mJZ88hUwo1KXwi_tCrSlCleDbr9NA5JkuaO-agEm_QXx53NczUPD8_kiq17CXYwlGeUL6G3TmQAEfK6wDd_bNuDnCgBOUWRiQu8bnQtJITWofJ30A_qO7uBV2Ra55i2PYjuK34bDXIC6d1wRm_oaKzuQK1IjCHDWSP6-HiOXDUXYs8UZ1sShfrUQZpDdfAcJZjSuTbnYmccQHs3ZKouhseVQ_N60Gwo1mlEQCtGt_HGPwvbrvka1b6gYECxelfPeUtCTPXEDL757Tj06hx2RddGZNBI7svH_MUsfMsDHGXKfNXOWgleFFTwX8MSuvgjJWwOyXtfhDeh90btU6g9mwxJXRZk58X1Hg3JZ1NlKJ44x9hhw3qQAm-v96QU8VxNa6rfpaudL_rLUForZeBsBt0jkykZa56OEP1qjOMttAYeLRxSlk7GWEXZeJdnmjBa-lOAbFvpclgMODAmQ7lr4fPqDrGru3QJQaxpyc9fWVxa3ICHG2L76TB_ofQG8KrUh8dFcQRUxYvIw8P5ASXdd1ikarKNfKjkxzfsBO59GG5jWM-iZgiha-ZIpGMduj-vekhMgFf-OASCk0_ECxBy5OdaiA4sP0QoO21rWEZcLy_1EWGdiyXDMXlAbDtPc8xJ6FXynJe0RrXWEZJRmYeK9emv5QFBfB_LeoopRdJZ2o7AUZlM3sjh8LWxR5Imy_mAAbyodnvP8VdYLAcJ_feTCSRp2ObKeMaibC06tCi3q9t4ka-W9EutOdPpGQyKE_yHyk7W_jnVsbYg9ml5ntkexALyms8t8IayIArnQ4mRB-_f6_9Kj1NtWKbWk1upjCgXaOA24KvUio2rW9UNYkcUO_hCYmsV8S0kCgpXHX-36hXkn55AKX89xcjAyo4AyYg77m4maxYevqcFpxVXS00LjrDCsCV2e-OkhB_qwKvceqmpaWB7mQy6q9HzN46fSLCpxcBdZvBGL2SAQdamlxbL_zkdqRnqD9rfTmLTzlrMrJd8jmF0icZuRWWQrvJFhO5ar-2xs6-csy4WGyvMFSLS7fiJQ3Cc1J-zHXgvy_GBJx51FYz45SaJNnMqvuJg4_MFxRH-CgYHEycMJQd8mIFuCpUjUm75wVzhZpdS8jx0I74Z6kFxW7hv9ZTkjmyc6sWAhPC4MMU5rxMX6nE2H4ploeEyDASnTgqTtby_hQJiF1uwMXhHQ2ah9rtZNs7WGMXy34GXZKWgcTl3QyYrLcgqG-MsC9fHm2Ww4X79myYJC-xR3wiF15e6b7xvkC6PQs_tE1Z9U94Hsv86AhwCdW6ik18MtYLEkVh6rYHyKa-MV-UOX839lh1vKRTYOw2S-CyXEIGNI1VZaRsUPL57ucSY2JsFrnc-9X_6QkWbG1pyhPY5XFIIsTvFysiu-kPrBx4K1uxsaPqxL_jBC_TLRT1XDndl9HcVMnpraFa23lYIXJF3MMM8tieXbwCK0yPOG9QztCiHXR4qUHfJCsUNNT660FQ48IfdxW-6qrB7jqxtjBePVW6q8qmysfIotLhc2hJ4CdaXDgVRhCM3geQhLJOtgENMN7r8o2BaoqeNg5LeBZTryk68AXRW3pdpeUOBMWwfMJV3WthoCrNJTrDGosiSOxydtw_J5c3SwjguBOyAsQi6msnU_lLX1dfUGJ7-7VaJ-LPQDuSEuxIx6FWpehESz1VpTnPxTY0bw6lkMMvkQfwYuQPGCaFU5dkni3FcIH59-4xtndjIjE89qw5BS4_zf52GNE2Zu6mFKALumCYHSp3QOp3vQsSKCDQxmoqkAVHVtHX_LFogz3nSO3xkOj20qHGSuKcGCap0tno_RB8d1tUHKGEBaAACZTN9BhgrjLlS7Fvnv5XzB_v12_L7y6edPRmk8NzJbaqEdl8cSEo32Wxh0G3vZtm9-WlLG62rXZui-rkY-5305v5locpvhrgLN_yIGQ6JjK-8d9cjDx1YSfHyb-jIpiQPa4rxvtx0-WwaHJqNsnbtO7uvyWJJY7moFy-cZCtkVhFEIEvEQxrQAA7QRNTcTgsj26i770ZwwNGhdGz5ZHw-4L-h8XgRJorvgGDtzaem-3LsBDXdeitslFso9qKSijz4SoVK85Of5tp8ECrA99S18Pq2d8XCHwehY2VIXXJNdTLtamqIaNnO7v47gzVQrdGGwHmaMP1zTA12uOJPySyQbr3JHF24xyO2ccZgSdC-EBXwuwrAj6k96JJIGdkJHNMidFb5NwveqbXIm5cRDsNj_qKM78akZejI7jzNYzqeAQDalZeJ3haf-qCBX8x9iFMlVGmC-F_10vSkYCu9umWci95n5OMW_MQL3N8E-xYceayWYloesoNCnX-G_wfSZALt1XZFdpceYyrcVWyPmIux567_3ltFjQTh0kvR6pAAoVkBl-X0vqnDn-TLQgUTk74G_CjnslrIQTlcCppXvpYJf6Biuce62lTnL2jnVEgMXpKp9o3xeijx5YzcXMznGMFR_RLA3GzYAK5A3R7M1vI4ZudaTluNubzXmjzztRS65NpRYkay3pFApEo0ZZ9mg-gZLnX4gT3638fush7aSyHuEKGvQWKydU4ml9iWHCrGZn3-6Xrkj_sjVrC2p8dLYC2mnrI44hHKxrAAAl2v4CfunMP0ZVZd-86NJHv3nqfVi9akJmqIGS13QuAxzPhCzfnlZRui14z91WSbqRuLQodAFBK-bRnsPSN2rJugBqapR8xQS40n4oT37YBqwNAQxe4_dOplP57UX2GDq5E7PPmLAYUPa5FngDls6nscvPFg7OiuoMTS5Iyh0upNkSsWEG_XL0aDLLYBV8TKr0JpFfHJhVRo0kwJu-nhmYUE-hUJKrippX-Swn2ORBQplzm0SNhL1DQBSvPAY7p2QJO7UuksGd_q9H4KoOhVZXWRUw40YiR-oQmQVyXRl138krc24WLUAYG1ak4dbdpYHlpW6CVzHKZh74R1OYLTB2a56vUL5_YmqWWZHEZJpGyTQhk1fRgWo3eKOcExEuTU8DDKrG2yyHVfMuKrt7AVAxKmeXH-Pwns8-7fnHOQmJke-ifEmftUQcPYXXTgdmTAkADjUrDSopDrMNNy8xhRaCTPc8SnVoaSvGU7p-L-8dAH019C_rE-y94bLaxzacPi7K_KpOUg_ZBlqrEGb9sAoefq6euXBStZEG_Ak-MyajAGRzI73Mhk9-lkpgXhZHA3jdrGt79cZpAuCMDNWI54W_Cd0Dh3Tr4qjvr-6nUAuZx9UsKQE_Hx9ewLCZ3j3KI0bqj1Zqr0XkP-SwoWoaVLoma3Kor_Ugf2n9oTdpGO1BWv7Lk7IhFX9xJ3u7LTWX6SVgllmEx6H16_2nJQcjPZMmWsY6ArVO9XpUSH8DZFKIZhQdCnmw0oUKD4VyqITzDkklwq0paKlX7qlJOyZi--rpypXmVKHCDKXe_-WnagXdf_gNA7myVB53n-3C7UgPux88bMDK-7gsCCCbwh2SAYeBGcmUGX1WfLFxUiG8NkZohZrzbRlPe6Arjx4Tke7AjQVcHRXM81jOajkvgM9DQKT6Yoh6MfbB3G2xMOLiayRgJnAwQWDRZBeCW-N5nsdmkprBSUzmS6HNu36as5gznJ3ZB9p1o4o7iwLUC6nJtaS7yGSUXUYjff4QZKeHiw7yELvWaDnvGJmjxbVej5Mqh3e6540qIheIz4rAP_tw22OsvBHS456vqNuULHgVRK68VZyOiKzwHq7UWtCYfdDCfqBqdo0XzoGJGR13GSpBZYWdG1YNQlcZk63zvERAfaqfTVVKbu0PlQ0b1Wfz6LcMfLLhkMKkF11BUXgiLlRPf7BK9HyWziB7DDZM0-mvJIResplWvC-NQbgRcQbAwy0qehPttorCvbKXnMQI2Z2I_JoVae3JofdusqRPucILsvP60zR5ie-CA1v7QbkWtaYwzgzk1tq5g8w1o3iIE47q_WzJfoKxP1FRStKHNnOPlacDjMX3kjwN6XeDr0qFe1eUeN-sIVsEuuelqdxIL-4urrr2-D4OKsxrPgADdNhFedExNNtrpVhdDHwgzJbU09sKcq-dG68bPCctv1jvJeRtd-t5t12ty9RjtY0l7kMFMkp7YKmLHyrYNk5th5H09zJlHZOrNTqprjhzzkGOhXbuak2F1Im_hZaGj-z4iaXg-_sZk4kJSclymJce4u4H1h2t0k0I6Cktc_-FH--mH5ttLSCACOtNSrRml_KYF2PVi9RhV4JNLfKYHQtevFouKlkJDtFU1EEPonYqGGvcvBcEt-fv156pSNXGDme4ad9W2Me_jDe3zBoNJFgMTKbFLi68Vt7g_c3IgA4-1x4COsO4DAZAJ1mpQFTnDnBm9yFUEOUbNyrfHMN0FgXizGfdzQrz_y6H-QIkDSohR9uQLjtmNx4xSOf3AePRBJlsJ0m2BwYKNXZcScgyp3B6e3krRE1t9lO9XNjjgBvGcprQV8iloKWY3w9huh33M1RnUQ6SFgNRZPT3_oZZZTfj84W2ibrTSEKkmpHK7olQGiSYWj0yfWgY6ZdOG2Gi2zT76V_P2jI_uZt4eEpfPBocG3M51O53lRnBTOyB2QvfPn-DY_O8p2jaH_vrOskA4V7dr8E18EEJxuDKIrv_LdAcZO1VEto0-5We5WXbNVIaIwz_dFkB4HzbYVbIxj3SUC_ZxisAwKKDF7Uj0600dizgG9XUyANNQj2HmBaM3Xky5EYciEEz-IGHQ1Y6C0AxCBj36Mcay9ZxCoyRdlHJmM76ymhYkLu6h0mtJVTddsPRB8g-b1fAEqF5VSI_nFNF3mokEBB_8Zw8f-kzy5IvM2DlU7naan2QkWhILnfVy7pN3iLNJnhX96j5u9RXCCsDurQjXlMDmcuQqPwCeS98HwJ-ev6uS6OEYZ0iKfeeCwzCU5xAZuYk6q4zr3WSuby3Ecgufrzw20vSshongMoE8POpTFj5kHhHig_wcUc-n3-_lJabcox-WdbK0n7b2_PJUTzcPRRQ1bml3JiZbcTTT_Q1igGWo8s4Sofe59ehXCKwHzWO0c3O10zyn2QW4klXksYd47_1s6zBacNyRoEfuK0A5-cIu1ccpqaGTOxw1-A-zKcmyYGpNzWl90mwPJBWeORGoiNJxza-Y6oMNMZvBnGXu2N12rS1MixqDh94SE1Dka2szCKxrJ3wZH4NXF1948A2caEcp3Fx9UPZ8bEOgO2717r5CeuI_9tjewv5b0g0_uMuwiZ1f_W1j-OjVzmOfZhGgeLArp68ALs9DTM2aW7TqIPbL5BHs-dcf6ZvTTN1jPiZSR5r9xINEIg72jh7V2cJITLC5_DjHO0Eiu6t5APt8UiLp96rVjod679bipxv6Pm5blTu727YDReQX_liR9uOhvKdCqhvexjP72rkaWz7fwXR_oTgKIlJmyvMHvQihA3e42bgDA2cBT_XACBJOAU6ER7pF9cPXDURCrsrHdkTenq5E2aaDnj0ZYYdwx9jGRKC9zYhb3XXtqSQQx6eCkiARREZSciza-jC6VJv-GQmXTWEFVckTQgPNNSiiafh1QsRy7czsJSIbCeXskTOvOXwsPjnJ28i5a-nfqO7dpR7LRKW4xp-GvNrDepXnJezujW1bWXgD7KZ1aKQaFmglVYqjULMWHZmHMArJIIQTnmhwzLYgQpr3iY2KeNnqf4ZGtLRWpPduxW6gzas2AlTK2ZPV1AcvuSfyXS4b6GEy-v1xbISsByq74oVBsqeYywqanA1F5nsDptnUyCtke_reIzihzrekz4EDDM167Gu9bwdI371aj-hWSzpbH7YYyMgAUmoixkXtI9OTeQAU8TRzq43jn17otA88eUY_OEzuoJ4LKlBfT5MSxOfvs_jrrEbUftXs9f5Kvdi_szBc-D0xZO4MbZNI954jG0tpmZYTmv2iXIICSSB_q8WYtGxgbDAZ-XIP3-EXk_ByeqFMtXCzhTDbaJe2Nxpq5KZb_guVMjNlAB0fuECSSlJg_fjIbboBaqbcp_N1TtH91pEIEFloVcwinWbnMJwG-QiW07n6mWb2IraM8iG4cSBxmc0KoM0lKmE9JXoJp8X3SjCs_BcakI46vqk7pX8GFBHzf2OC8BLUyYcGhb5L5dqLtNenAVZM1qhNZlZ2mnNXnB1PmgIL4UyN9PeH2_dxn1VK6l9gEig8T0mjSdINBjHxsa9vhaVxnluXEDD02Bc13cUH7RduoiYx91QAWrvO7rW4litwWcjd6x8pWAA5xlLNUDDGSnyff-kKgyDvEok3z8Y13UhgIXQJS6pa9K3bKocSv5y_QkkvKXfj8tGstkglxtKUZfR7g9JOw3ClpYzCDqWOQLsGwx-E7e6z9kAGZM0p7d1bCnZKXVpvE0qtxI-EWleqEvgkTJR0nVReDQSChoJ5MmdLVE7U0UEns6pTd9hGJh6_KnSR1M58BTA3APN2tCCwGTmdviNQjHmRFjoVDYhxilgWNnnN1-0sp21pEiJgxiVvtQ73l3SUPRrD_HDOvyPd2aDAolxYaE8HpaVr4nS8N5SrcicaCs8XQs_dAHBZmTXNTFFTCrV4tKX4tRL1M9AI4qifcvJQoQZgjp7EqZS4TXHH7oZA53UeECUsIUoNa5pHAqK611GI-C08147Eqw7KAagcajc2PcZl5wQ0HdAinRPt6rp0uQRcQam5o4f3rwnWueRAn3QRV_OLiG7UpsTV9FHJUV-1NkJ0Mjfos8dcCLNHDZd10FTP_wsXTrEbx2KfUcywjJFaJIR3OuaRV6aUSVeO6osToW80XtHsK0txYPLW-NX6VdGrc4FQLBbSN5dDtO4SNZnQ6j2vX5tEMUTG95hzBs9j0Ca6d-c5wod9iLzEV6dY9iVwus_e26akByFyjg5h2gQD6yL78pcDhlCHEQqtqjOGntpOJqSsVDjuOlCWFIuBJl0f4FpE2gts7XfDE87nqh1YfYVgDEtGoysXOWuCdtVLfvcO8go6Chl3FZ2PN-NI6reofpBj0w7qjwmcBrUOmH5FIpig8jCdqbnR-4a43o9ERKf-WqYb0dPgCdPeZRtQOb6-cdEU9Y89y3nJLp06XwWhUMG9m2-0gNgMOh4GKmIE-9r62dVYzKyUKQkvaJOg_FOoKg8RzmHULnWGvZA6TATqL3Y5zkQNDGwVu2hJdYYOjiRqNDtjZEhThtbbfjl3jH4DpqtY02ZWa_Mr9GXXBwN-9zpQCSnh5XfHCGldFEMA-jfoYspNHBYhCGmqwM2cKl_2UYXkY7g2ijlHl7kOOwXmWNqeO0zIrbngNv4tlnX7yzq7yY8AItfoaSQYZiP5Qc-1vqC0pK5IsLEvdxVwr8xNID41GCxAgsN4h8QF8p0TOOQ5mYvUlZKXJj6rVUw7Hql8eWN5bdmEP98QZLGJ71IBbBmz81eOG7GJbFFCLA7QpV7b-ooTxJYDW1SzaW4SISSgEkkeqwyZu1bxYO30_s6yFw6JhmJdv2FLAyLngBkoS_0W2zs5YKWihkI0YHjRLVEWCPgvMWuf6XuR8SF6ag3B5-ovRjpXiAWaeeclSqX04m_kVhxRbysR052K-LI3lBYUb6cmfvi9148SbHvifPhWiGPDqOx_XVcPfcugIruUjtySiG3WH6dVUKdqw2lRx3n8yrLxMOw80pQ5wqenS2VIuODGOh5Vn4yQi0PpPENfhvUTh5MUrRXrozfBYGP-tkqwlSoEd2iyHTFUsP2LY9awTOLGW-jNQN47YPJbtJbiwxeZ02-7cdB050TSOhSeYXEca4RFGir_XGXFM57Ao_ZUHG8o0YG3j8F3AOS2B7kkTE0wrurowemAuClIYXELyFx72Dy6TE6koOGIU0cUzx1067Vp13opk_ve1mp1VJEFv3njk_114aOsguf_p4jC1RrMIEUe-OAHcvT-lX3iJ4uLDMJmGKQjsUgKtOjsd75IxlU6W7FHYUdALrnhTaxVm3ZNL4-FK6ZeL2T4dJukQFUMCo8RIkyX7qXR8t8LSi6irVASCMM8suqZtKXpszcR3ARu_7Z0LJgglmCbG3HkwjD0Vil-EMJEgxGFbYV2b0zqku_eNRe4sx6MiKJ49P2K0yg6TusdVQ-mcw041nGCAK2wBXggX6fMtxcVNDgMcfVCDJMPRYAYPs7jHEnFQ83cw18bX1Ivx8pgZfxL2J3zVcadAqMpLdqE7kPzG2V5OhnQZFE7gKjm3zwbQtWlo9v3q0toD7aK9SGcNf6peacTzdX2ySKFAXv12uLy4AgUCxvhmeMjeVoABmB-frgfazULtneFRMlBYS-vMP1RvD_Bac91d8XNy7858LvZGTzc4LgJk-YhIEZWP6TC9NZh23kSW0B7__Wq6wnPTkFGE1pmtCH8x0_saYZMO2f1Yt85z9uXoHe0TWlXS2DOSDtOQsSUelVJGHwY_CmYDNMSV-hW2BDDY1De00HhSU6PSifv-xqV0HUkdMq__0QQsJoIrMnfQ5yIlSmPNzIZ3_z31YDRvDVF6GngftJMhSpbei38CqHMjoypkYkTVW4axesGQgiZ3I3jie_50AYCr2eSF6RGHoxbnoZoUa3WSD0IRVUh6lqfTkG5U5WutUzjF3wYm4Fei2DODwzu0F5-Tb7lqTKrZDPeF76u6Dl2zsoP9OFGlOkYNTSIghP2pvGNwc_z2KnpErgi4MhEesvKHOwrApFySuDVRjbyOUQ2kRqQJW7JGsYFxe3S5PEIqO_2jKZNUZL4Z2aIZVl8BHNSPmLmSGm7C4m652XUhj8RDx5JZusfqms7S848GcAeIBjrcW6KraCI2eKAPo8ARHpDxPxEQdNmEaMm172Cs0sw8Uj1eDH54gVpr8KhFAU7JLNnQgJ-uGKVm6NvOl4qvu15VAXqbDHtHK1kwZRWdGqQuvaSi7V6Pd4tOcKCvg9q0F0K6gbwMJbSl56PZOjsZPG-aUt5-zmObJ5I0OIecqfXeqIwPZtjsgYxEagcubydzdXuAqdUogKo_JabiUR5HxPqbjTPxHofYbuTRVZsmuuwdOKAZZdtL9o6Mch0-vTFhwydELoJ0lcbVkKlE9h-65yp98VgYY8AX1VmJtO62zgnsmOzJXpJ-axOMPX2BIj7fveRsLBwY5mtSlxi8jE1GGs82Bj4cpJ_7eJX9oKcaO2MzsvhsIIeYw-8NPRb7Ip2TgmpvO6jpDMExHOLelroIo9rfCj_HsucZ2Oqol6x0bvmSGZAp5a87iF1Ts1925NRDMJ5cVacXJO-lGpdPTtqaxavW8qzHgvZDXkpi2mvuNH4rsVN_X3-nUmacU3hCIn04NwE29EQONi1QlG1Wcq_KFLHMxy1dO-CCY8tTAoYAABZdLX8Db6251iVAgocVd2NIrwSdkINA8tfODVL4WcsNW265Frc60RA5zNmx97T3ZBw42OkeuhlvJ_7bUZ3fX0BERYtFTFIYYuEGmP9TJefbENnL88filREI19IORnAiumkGV144CASn0prv0FArADcL923haUyLNPCIZcDoldIwh-j-3o6NfLuSkmJlkuPUbQAQrpePvLVQ2B-MvVcgvM82VMpgH4nKmE6yBMcoGJ_kyXTUQvxdfMGr6ANUJDNcQLa83Fss6ILffR5Llt0L_1drfwdZbQishjiSQZCd-P5uq4DRjrWr-uDWzNOltD6gAkXgKv3SDdKrMtUdHV_5-unTqYo9mGboYiMBjIxhPjcaEdhIBHXArl3B_ztq503dWLEhrnoDg7Jyzri2D4CD90IJvESTcB-UJPGcuSNAfzIMF7S3nF9bsC_lthoKUlAdfza83g_EW4oam0Ao7YYXXl8LTWsJXUVpUqAR9VkRvk4u504MKrsAtZ0j-NPdPb0BYUeBeirhXOr0dy3X_Q_a3t1nouAiOJzYlqArI-PTWev6sIHDPKS_LVpQcyxQ6zb_vRXFjAA7fntr2rgScEpeRYTTU6B0_HSDwu3YWuQVL7iMynLxuRWV0dKIk2k-18Z22jFC3sQi7o_ocLUCdYqxCRaR1MmMbZ9CPWD1cjWu6kUk0rJxJGy7uTFSVLsEPJxCPMjg866eh89PeZ6ykISyCX_WgVeXhHqzPakXNBs-0bJBAIRlNltanWpvjiYS82H1M5Si61EKp0UA9MUVkS3oiUWvpkLXyrdnoeBg7qV3QAqfMKZVPkTfw9XVmqMRs7VcKRXoMha99d1ON0bHVEbC-7zE7ZvYuVPdP6NhXkfE8y8MAanW29h7kgqgzmIRpYHA_cLKQC4YkTVUT4QvLA8rvjafWED73TP_NFT4ZdPl7viFhxHr_6HGWr2FsgW795RX7nRRCRiUF8DB904njKfm2_ps761IDSTCVboBs7HhXJOg8P9WKPrzA1Biz1gyM8wgckoHVp0QxN7kWE5zGtVrOqXmtkTQGqqzR6Q9VkB83bb9FDMVLLMDwPrbmPfFYbh5bSt8goa93rR94T0_hr5UDRtFFahYYR8gwobHzlaMBLOc_dZIV_3QoHW4tovO0WTHN-LiECzoQgaYF8RefGsQ6U4VpcFr-qn4HfWrcOXevODPEmiNWEfe50ZeiEmABClupl5_9k6SlCbfbTej7TpJFHqfDdr8zZ8Iro0MXvqt3VQTrw8I6R9HMMhqOhBqPw_Pr_kbC9tN-l-DOnMiSM4StWo1cQ7Lnkv85TUcEhbZEn2yMvdKOp-OietGm-fHyEZb3dIaj5aQTjSFdF2mXJUWx8O1k5r1NwXPyReD6SxrZMcdJ2tg0ILICDJYBshbnhd8PFgy5Xm8jz1elqTBon1spbyViiiJCA6UU5vnsSVsRa8xdg8g2Q4apUay8juhLE95NNuEvMDxjrPl6Ef50lU6dMEyfHLTjSzAI1XMUtweD5sGoVlr3-ivOgBbjR-HM85rUmecWD4XKFa2kY86uxoEH9neOvohnrglVzKpbeiC_yZ5sv0BXylNzOGnMwClcJWjl7u37blaYCv_rB6ZvWY7y9WAB9-mnBr8Qlw9b7OWHZUzSAtbJ79mgUx0KXBrNQvKUF9F3ZFpZSqLx1g8VjeYMNUFnC7nbx5rgpQpzkXljXf2odujP44WsI6BSG7tQvyfLPYwl9RWGQIUWkTBIfVIQ4P-4_bcaqsDOXeZdangA7Q3al4lMR4oQoxxXhDxeOygJIvLataB6I-4CESGLr_uAK6khwaCBc8Nu2w9K2ug7S-hruy5v97LrF_a-4u4Z8--_mHrTgY3wBsLCvvNRaml64AA515JhXTm1v_55qvfyaqcLIZ_L6blUV2eQPjAYVgngJms2IOhqkboSOCtN6i0Bzv4gm8No8MSvWE8QIE8vBRsnP_6PiUJu_R9QD9MH_disXKDa7OEnSFLzFCslJtNAydt-nyeF4wL7srrl2h3GgKhL6pAfGOuqW3qSAyqh3ycd1Qs64E3FP6oAcWrMrnJbeNpBLpn_-MxWExIzocqtILVFlmwhDrBSUrbhfPH3GG_qRt_V99-waafLAIkYbXmrrT8eRugHu9cEr88Ou8q5Zjoz1nkKbXJXIf-Yhc4x3whBm9kX13nf1WrYJap6366PwrPWizPcyf6YKBSpZAk22SPq4ZI-epCc_hqcA1IwShW57fEEwGulmCHHDwakpK2tnrSor5Djdk3E2uEA4YdOSVXMFZDWlzlXQkHxqxuU3GBknk8WXu4l0l1hT45NjPrBIsh_8duXf0FkFUn3ps6MJhQzdLvaNWLt2fl5n6hNvwuDUiO8Q0nHgmW6EXJbLMpRZl3ucZ_xxxY8w7NdZKaT-xo2a5CTKKYfz_6Opm_wb819FL6ztHGz1fGD4Z0dBebPbzTnuOuCqyLrdzKRg32aATuMWiNud7Mwxf_uRXrePqGzKZ5pg982oaafyI2Y1AVLKtxRJXqtBQ4c9lBocM_NcYlxPBVXksoZG-sAcu02bHvyCSPK6Ghqz8r2Y77qhY1-iAlUK8d3NtEZ6QF4A2SrjJBcNsKan2kVJDz8gFPfhJ_lPbb8tp9wLREe3NvrKjL9msSxXRCeFSNANwmi6ooXAbuD3jZGEkVkmiC6Uem0WhNSImrcNIqndh3jTRPfOQ4POGb0u72GjqqcLTovgvqzYIQNQlAiH4cAR-eUTe2j6QYzR4S2dVOuEepe3jXwpmUZNAK3nQJGY7Q4f4Bbz0HA0ZxTkCtqMdrv27qhgyN0cVfjfJyHDSzka6ZhHvLV_ahaOJEhT0Ocadq56BjaH-65eLfNE8IzLuW5avp53_bqpW9WMPHOeF88PBJAR8gz20XYDo_OJyHMHTRV74e7kmCmaCgxbL4HB3ajvUVez5ZKCFZGSAaOg10m9tnxe6osB7ysdycyRYQMR-Wofv3GSXbsZkMKyzDszdMc30jQ3h3kw9g49c3YIiZkSRBSX2ZDhu_kGHn3Lrzhhq18DV6Dn5DAFuq1DeCJOaVUzXoglsrQ5VEtmXtwa47NrQxXhJU4JoLqzB63SfWsMbUr2a7ylo7LAiU7S9AuFTIQJOSg7K3rhiGCHlbPPtEMNdDcFrCz1OVLg1h8uCkIB2oVY8EeFQqqEW4SLEKfs3_DcntCS6unTUj3inF8bwEaFx4E5BHqF-eL_nOlxyQrVOdjnYp5-dlS-Pd4wX_XIX6xOOYCEvKgY8C5uwjF3tPj3ZBTvkdDLcT07aK1mweZgD94Tm4VOf1maNgswIeOKdhnOowuDiJSd_Zvb1OjJfBuQ7N1h6MEaHHO1fKzArLFwS9imOaGl4YqqdrclMzfdt9AYNhpQR2EY-H0kunnqpbZrlReKp0MGY6TTlNjPANIyn41F5qnHMrfav6DmNo3VZLgfbov-0fw3rzmfm4fn0hPVxnHP_yFEHhXkxCYauDa5X-CBbmM2Xry9wjCLxXg8vN3ZlydrNghk3V1H-PzLkIS8Cy8d5ScY3_rzCkdCFPGo2H9dnytO-f0jPW-qHuYJVXSNlPxN5aKlYuA8PSA_qGuPPQr9IWxttQb85RYKolonLvuTL3rmzlrQAJGbzaCBlyvW4EORzC1AUnP6DdybnJpUuzyZH6qaROmo84-X5RjyLszrTGuRXwq_FU_305XRXWH8rxnRebhV-VfDhOOgT5yOyR_z-uGtY_6f7nYPcuGn2CkStx-AvRGRdTaH7LHNhAAosIUCrUE1ctuLo6p5Pk5ZJcZKm55r9HP0AnK99eMenLsT1-4wKYIVSRKB6ODCH7qncKmUcprIlI4nWqtd6c3TOvjYvhUjfQmDNYwxpoIhcvq2DC9cZhdyVZIrnswff6_-AYfnfu5fOZNteE6QQQEL3bCCEgZnqrp0qhCoVe2g182azem08U1-I_UUsVB10Ff4mmPilsla5oZ_fgo4nPo3dSr7jTUInp6ELTh0DAJXaV86F6sFLPpU-piOV_GwbBpA3v0aYNo48pustZ2z1snE7etwQYI5wO2J4cglQzRLFBz3Efl8KfpNXMWxhDQWOsE9OJKWGXVGOEBTvIgvCoLwverWvoKk6PZO-HQnGwkUKaBGDUPsJpwMk_Qal5fLsyT5YUHLv7Kw6mN4nX-0ddjpt1SvN8Xvx-h0Id9EbdIpTqUwS-2tssVGqfIaMTyS_Vlw3NITbM40jCcD9E0P6JZ3Yt_wz-DI26D8Tt7_FvhX3LAKGOoUL1D0W3fQ2XQdScva7T0ai5lBLIOb2QYwG7hGAf2Nu3VXb-bZkHb4-Ni73k7weM_ByImXB1hkXy7Tj1J_WXbmnWPZzHbhZiWwsfETh4K6hHllHsJ4BuOSv-QI77MYXA8PuFadXXn7UjSjN-Kjvohblybmpuu6n80Bmw9_VgepsFp_K1BvnVayFKqVjXDDEE1vYljjXOkD596dIY7cEF5zk_lhegHUa-vw2gMt40o_Wjl7VtMsMSYqo7wiVpu8ok3gZYqdbK1FAj1ie2pB-KV6-8IyOYXeak4FNNBX-9c1o1EII59mRjpNUrz6RYBiNYuTi30OJE211556l2fGgsjJwNgTjgZ6oTrMVF1Nbk00KlJ_vi42zZVxvfpuP8b8HGkXuK4mmdl9i_j884BpWac6S3F4OeIOjp7uFQ18cCsn0aX6YQTem18l83ADpevNbHHV03583prEPVsMIzCTg08bwwAXO_BMcawcEIa9Im0GMJK3qrA";if(!e)return null;if(Ut&&Ut.sealed===e)return Ut;let t=null;try{t=Rr.parse(JSON.parse(vn(e,Qp)))}catch{t=null}return Ut={sealed:e,bundle:t},Ut}function En(){let e=wi();if(!e?.bundle)return null;if(e.runtime===void 0){let t=Date.now();try{e.runtime=$r(e.bundle,{signedAt:t,fetchedAt:t})}catch{e.runtime=null}}return e.runtime}function tm(){let e=wi();return e?.bundle?(e.keys??=new Set(e.bundle.filters.map(t=>X(t.slug))),e.keys):null}function Tn(e,t=!1){if(t||!e||e.length===0){let n=tm();return n?new Set(n):null}return new Set(e.map(n=>em.test(n)?n:X(n)))}var Si=null;function Cr(e){Si=e}async function nm(e,t){let n=await ro();if(n.size>0)return ft(e,n.values(),t,n);let r=En();return r?r.selectFor(e,"free",t?[...t]:void 0):null}var rm=/^(?:grep|rg|find|eslint|ruff|flake8|mypy|prettier|biome|black|stylelint)(?:\s|$)|^git\s+(?:diff|grep)\b/,sm=2048,om=8192,im=32*1024;function am(e,t,n){let r=yn(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 ce(e);if(n!=="compact"&&n!=="minimal")return r;let s=r.endsWith(`
78
78
  `)?`
79
79
  `:"";return gn((s?r.slice(0,-1):r).split(`
80
80
  `)).join(`
81
- `)+s}async function Or(e,t,n,r={}){let s=Buffer.byteLength(t,"utf8"),{exitCode:o,yolo:i=!1,resolver:a,...l}=r,u=Ke(Xo(e.startsWith("bash-tool: ")?e.slice(11):e)),c=o!=null&&o!==0&&!(o===1&&nm.test(wr(u)??u)),f=Ko(a??wi??tm),d=null;for(let P of Qo(e))if(d=await f(P,n),d)break;!d&&s>=rm&&!_r.test(e)&&(d=await f(`bash-tool: ${e}`,n));let p=xr(e.startsWith("bash-tool: ")?e.slice(11):e),h=d?.slug==="git-log"&&p!=null&&/^git\s+log(?:\s|$)/.test(Ke(p)),y=o==null&&(h?/^(?:fatal|error):/im.test(ce(t)):qo(t)),m=d?.transform==="smart-read"&&s<=2048&&(t.endsWith(`
81
+ `)+s}async function Or(e,t,n,r={}){let s=Buffer.byteLength(t,"utf8"),{exitCode:o,yolo:i=!1,resolver:a,...l}=r,u=Ke(Qo(e.startsWith("bash-tool: ")?e.slice(11):e)),c=o!=null&&o!==0&&!(o===1&&rm.test(wr(u)??u)),f=qo(a??Si??nm),d=null;for(let P of ei(e))if(d=await f(P,n),d)break;!d&&s>=sm&&!_r.test(e)&&(d=await f(`bash-tool: ${e}`,n));let p=xr(e.startsWith("bash-tool: ")?e.slice(11):e),g=d?.slug==="git-log"&&p!=null&&/^git\s+log(?:\s|$)/.test(Ke(p)),y=o==null&&(g?/^(?:fatal|error):/im.test(ce(t)):Yo(t)),m=d?.transform==="smart-read"&&s<=2048&&(t.endsWith(`
82
82
  `)?t.slice(0,-1):t).split(`
83
- `).length<=60,w=s<=16384&&p!=null&&/^(?:head|tail)(?:\s|$)|^sed\s+(?:(?:-[Eru]+|--(?:regexp-extended|unbuffered|sandbox))\s+)*(?:-[Enruse]*n[Enruse]*(?:\s|$)|--(?:quiet|silent)(?:\s|$))/.test(Ke(p)),x=d?.transform==="smart-read"&&s<=16384&&(l.verbosity??"normal")==="normal"&&l.smartCode!==!0,C=d?.slug==="read-tool"&&s<om;if(!i&&(x||C||w||m&&l.smartCode!==!0))return{output:t,filterId:d?.slug??null,rawBytes:s,filteredBytes:s,debugBypass:c||y,droppedTail:null};if(!i&&d&&!d.preserve_exact&&(c||y)&&di.test(u)){let P=hi(t,l.verbosity??"normal"),ie=P===null?s:Buffer.byteLength(P,"utf8");if(P!==null&&ie<s)return{output:P,filterId:d.slug,rawBytes:s,filteredBytes:ie,debugBypass:!0,droppedTail:t,failureSummary:!0}}if(!d||(c||y)&&d.preserve_exact&&!i)return{output:t,filterId:null,rawBytes:s,filteredBytes:s,debugBypass:c||y,...i?{droppedTail:null}:{}};let I=P=>{if(!i)return P.output!==t&&!P.droppedTail?{...P,droppedTail:t}:P;let ie=P.filteredBytes>s||s>0&&P.output.length===0?t:P.output,$t=!P.debugBypass&&!d?.preserve_exact?Er(ie,"minimal",P.filterId??""):ie,Is=Sr($t)===$t?$t:Sr(ie);return{...P,output:Is,filteredBytes:Buffer.byteLength(Is,"utf8"),droppedTail:null}};if(d.slug==="tsc"&&!c&&!y&&!ai(e)){let P=li(t);if(P!==null)return I({output:P,filterId:d.slug,rawBytes:s,filteredBytes:Buffer.byteLength(P,"utf8"),debugBypass:!1,droppedTail:null})}if(c||y){let P=i?yn(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?im(t,d,l.verbosity):d.strip_ansi&&!d.preserve_exact?ce(t):t;!i&&d.transform&&d.transform_on_failure&&!d.preserve_exact&&(P=kr(d.transform,P.split(`
83
+ `).length<=60,_=s<=16384&&p!=null&&/^(?:head|tail)(?:\s|$)|^sed\s+(?:(?:-[Eru]+|--(?:regexp-extended|unbuffered|sandbox))\s+)*(?:-[Enruse]*n[Enruse]*(?:\s|$)|--(?:quiet|silent)(?:\s|$))/.test(Ke(p)),w=d?.transform==="smart-read"&&s<=16384&&(l.verbosity??"normal")==="normal"&&l.smartCode!==!0,R=d?.slug==="read-tool"&&s<im;if(!i&&(w||R||_||m&&l.smartCode!==!0))return{output:t,filterId:d?.slug??null,rawBytes:s,filteredBytes:s,debugBypass:c||y,droppedTail:null};if(!i&&d&&!d.preserve_exact&&(c||y)&&pi.test(u)){let P=gi(t,l.verbosity??"normal"),ie=P===null?s:Buffer.byteLength(P,"utf8");if(P!==null&&ie<s)return{output:P,filterId:d.slug,rawBytes:s,filteredBytes:ie,debugBypass:!0,droppedTail:t,failureSummary:!0}}if(!d||(c||y)&&d.preserve_exact&&!i)return{output:t,filterId:null,rawBytes:s,filteredBytes:s,debugBypass:c||y,...i?{droppedTail:null}:{}};let I=P=>{if(!i)return P.output!==t&&!P.droppedTail?{...P,droppedTail:t}:P;let ie=P.filteredBytes>s||s>0&&P.output.length===0?t:P.output,$t=!P.debugBypass&&!d?.preserve_exact?Er(ie,"minimal",P.filterId??""):ie,Is=Sr($t)===$t?$t:Sr(ie);return{...P,output:Is,filteredBytes:Buffer.byteLength(Is,"utf8"),droppedTail:null}};if(d.slug==="tsc"&&!c&&!y&&!li(e)){let P=ui(t);if(P!==null)return I({output:P,filterId:d.slug,rawBytes:s,filteredBytes:Buffer.byteLength(P,"utf8"),debugBypass:!1,droppedTail:null})}if(c||y){let P=i?yn(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?am(t,d,l.verbosity):d.strip_ansi&&!d.preserve_exact?ce(t):t;!i&&d.transform&&d.transform_on_failure&&!d.preserve_exact&&(P=kr(d.transform,P.split(`
84
84
  `),e).join(`
85
- `)),!i&&l.verbosity==="minimal"&&d.transform!=="smart-read"&&(P=ii(P)),!i&&d.slug==="pytest"&&(l.verbosity==="compact"||l.verbosity==="minimal")&&/^={3,} test session starts ={3,}\r?$/m.test(P)&&/^={3,} FAILURES ={3,}\r?$/m.test(P)&&(P=P.replace(/^([=_])\1{2,} (.+?) \1{3,}(\r?)$/gm,"$2$3"));let ie=!i&&!d.preserve_exact&&s>=sm?_o(P.split(`
85
+ `)),!i&&l.verbosity==="minimal"&&d.transform!=="smart-read"&&(P=ai(P)),!i&&d.slug==="pytest"&&(l.verbosity==="compact"||l.verbosity==="minimal")&&/^={3,} test session starts ={3,}\r?$/m.test(P)&&/^={3,} FAILURES ={3,}\r?$/m.test(P)&&(P=P.replace(/^([=_])\1{2,} (.+?) \1{3,}(\r?)$/gm,"$2$3"));let ie=!i&&!d.preserve_exact&&s>=om?_o(P.split(`
86
86
  `)).join(`
87
87
  `):P,$t=ie.length<P.length;return I({output:ie,filterId:d.slug,rawBytes:s,filteredBytes:Buffer.byteLength(ie,"utf8"),debugBypass:!0,...$t?{droppedTail:t}:{}})}let L={...l,cmd:e,exitCode:o},{text:M,droppedTail:J}=br(t,d,i?{...L,verbosity:"minimal",...d.transform==="smart-read"?{smartCode:!0}:{}}:L),tt=!i&&!d.preserve_exact?Er(M,l.verbosity,d.slug):M,Vn=d.on_empty&&tt===d.on_empty&&!tt.endsWith(`
88
88
  `)?`${tt}
89
- `:tt,Os=Buffer.byteLength(Vn,"utf8"),Ql=Vn.trim().length===0&&t.trim().length>0&&(o!=null&&o!==0||yr(e));return t.trim().length>0&&(Os>=s||Ql)?I({output:t,filterId:d.slug,rawBytes:s,filteredBytes:s,debugBypass:!1,droppedTail:null}):I({output:Vn,filterId:d.slug,rawBytes:s,filteredBytes:Os,debugBypass:!1,droppedTail:J})}function mt(e=5e3){return new Promise(t=>{let n=[],r=process.stdin,s=!1,o=()=>{s||(s=!0,clearTimeout(a),r.off("data",i),r.pause(),r.unref?.(),t(Buffer.concat(n).toString("utf8")))},i=l=>{n.push(Buffer.isBuffer(l)?l:Buffer.from(l))},a=setTimeout(o,e);r.on("data",i).once("end",o).once("error",o),r.resume()})}function am(){let e=Number(process.env.TOKMIZER_OFFLINE_GRACE_MS);return Number.isFinite(e)&&e>0?e:6048e5}function Si(e,t=Date.now()){let n=e.lastHeartbeatOkAt;if(typeof n=="number"&&t-n>am())return!0;if(e.subEndsAt){let r=Date.parse(e.subEndsAt);if(Number.isFinite(r)&&t>r)return!0}return!1}function vi(e,t=Date.now()){return e.plan}import{readFile as lm,writeFile as RS,mkdir as $S,chmod as CS,rm as OS,rename as IS,readdir as NS}from"node:fs/promises";import{join as um}from"node:path";var cm="settings-cache.json",Ei=Ft.parse({}),FS=Ft.partial().extend({filters:Ft.shape.filters.removeDefault().partial().optional()});async function ht(){let e=null;try{let t=JSON.parse(await lm(um(A(),cm),"utf8"));typeof t=="object"&&t!==null&&!Array.isArray(t)&&(e=t)}catch{}return e?Ft.parse({...Ei,...e}):Ei}var fm=[[/(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]"]];function Bt(e){let t=e;for(let[n,r]of fm)t=t.replace(n,r);return t}var ke="[tkr: secret masked]",jS=[[/(-----BEGIN [A-Z0-9 ]*PRIVATE KEY-----)(?:\r?\n(?:[A-Za-z0-9+/=]{16,}|[A-Za-z-]+: [^\r\n]*|\r?(?=\n)))*(?:(?:\r?\n[A-Za-z0-9+/=]{1,15})?\r?\n-----END [A-Z0-9 ]*PRIVATE KEY-----)?/g,`$1${ke}`],[/(?<![A-Za-z0-9_])(gh[pousr])_[A-Za-z0-9]{36,255}(?![A-Za-z0-9])/g,`$1_${ke}`],[/(?<![A-Za-z0-9_])github_pat_[A-Za-z0-9_]{22,255}/g,`github_pat_${ke}`],[/(?<![A-Za-z0-9_])npm_[A-Za-z0-9]{36}(?![A-Za-z0-9])/g,`npm_${ke}`],[/(?<![A-Z0-9])(AKIA|ASIA)[A-Z0-9]{16}(?![A-Z0-9])/g,`$1${ke}`],[/(?<![A-Za-z0-9])(xox[abpors]-)[A-Za-z0-9-]{10,}/g,`$1${ke}`],[/(?<![A-Za-z0-9])((?:sk|rk)_live_)[A-Za-z0-9]{16,}/g,`$1${ke}`],[/(authorization["']?\s*[:=]\s*["']?bearer\s+)[A-Za-z0-9._~+/=-]{8,}/gi,`$1${ke}`],[/(?<![A-Za-z0-9+.-])([a-zA-Z][a-zA-Z0-9+.-]{0,31}:\/\/[^\s:/@]*:)[^\s@/]+(@[^\s@/]+)/g,`$1${ke}$2`]];import{join as Nr}from"node:path";import{appendFileSync as Ri,chmodSync as mm,existsSync as $i,mkdirSync as hm,readFileSync as ov,renameSync as iv,rmdirSync as av,statSync as Ci,unlinkSync as lv,utimesSync as uv,writeFileSync as cv}from"node:fs";import{createHash as BS,createHmac as ZS,randomUUID as dm}from"node:crypto";import{readFile as Ti,writeFile as Ai,mkdir as pm}from"node:fs/promises";async function Ir(){try{let n=(await Ti(jt(),"utf8")).trim();if(/^[0-9a-f-]{36}$/i.test(n))return n}catch{}await pm(A(),{recursive:!0});let e=dm();try{return await Ai(jt(),e,{mode:384,flag:"wx"}),e}catch{try{let t=(await Ti(jt(),"utf8")).trim();if(/^[0-9a-f-]{36}$/i.test(t))return t}catch{}return await Ai(jt(),e,{mode:384}),e}}var gm=512*1024;function Pr(){return Nr(A(),"spool")}function ym(e){return Nr(Pr(),`${e}.jsonl`)}var km=1024*1024;function bm(e){return Nr(Pr(),`${e}.dropped`)}function _m(e){try{let t=bm(e);if($i(t)&&Ci(t).size>=km)return;Ri(t,".",{mode:384})}catch{return}}function An(e,t){if(Ar())try{hm(Pr(),{recursive:!0,mode:448});let n=ym(e);if($i(n)&&Ci(n).size>=gm){_m(e);return}Ri(n,JSON.stringify(t)+`
90
- `,{mode:384}),mm(n,384)}catch{return}}var wm=/^[a-z0-9][a-z0-9._-]*$/i,Sm=/^[a-z][a-z-]+$/,vm=/^[A-Za-z_][A-Za-z0-9_]*=/,Em=new Set(["gh","glab","gup","hub","gist"]),Tm=/^(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,Am=24,Ii=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"]),Ni=new Set([...Ii,"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"]),Rm=new Set([...Ni,"cd","cat","head","tail","ls","tree","find","grep","wc","nl","sort","cut","uniq","tr","diff","stat","file","du","df","ps","yq","pwd","which","echo","printf","seq","sed","awk","gawk","xargs","sleep","tar","zip","unzip","rsync","scp","ssh","curl","wget","dig","host","nslookup","ping","lsof","journalctl","iptables","ip6tables","open","md5","md5sum","sha1sum","sha224sum","sha256sum","sha384sum","sha512sum","shasum","sudo","env","command","time","nodejs","bunx","pytest","mypy","dmypy","pyright","basedpyright","ruff","black","ty","gradlew","mvnw","mvnd","ninja","cmake","bazel","bazelisk","sbt","gcc","clang","gmake","swift","xcodebuild","pod","flutter","nx","turbo","next","eslint","prettier","biome","oxlint","golangci-lint","shellcheck","hadolint","yamllint","markdownlint","mdl","sqlfluff","rubocop","rspec","bundler","php","artisan","composer","phpunit","phpstan","pest","paratest","pint","mix","javap","jar","docker-compose","skopeo","oc","ecs","nomad","consul","packer","pulumi","tofu","ansible","ansible-playbook","vault","sops","vercel","netlify","wrangler","firebase","supabase","stripe","shopify","theme-check","redis-cli","liquibase","ollama","ast-grep","just","task","mise","trunk","pre-commit","jj","yadm","gt","quarto","act","jira","fail2ban-client","ctest","pio","platformio","reducer","restore","read-tool","grep-tool","glob-tool","bash-tool"]),$m=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"])]]),Cm=new Set(["-C","-c"]);function Om(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 Ni.has(n.toLowerCase())?n:""}function Im(e,t,n){let r=0;for(;e==="git"&&r<n.length&&n[r].startsWith("-");)r+=Cm.has(n[r])?2:1;let s=(n[r]??"").toLowerCase();return t.has(s)?`${e} ${s}`:e}function Oi(e){let t=e.toLowerCase();return t.startsWith("git")||Em.has(t)}function Dr(e){let t=e.trim().split(/\s+/).filter(l=>l.length>0),n=0;for(;n<t.length&&vm.test(t[n]??"");)n+=1;let r=Om(t[n]??"");if(!r||!wm.test(r)||r.length>Am)return"";let s=$m.get(r.toLowerCase());if(s)return Im(r.toLowerCase(),s,t.slice(n+1));if(Oi(r)||Tm.test(r)||Bt(r)!==r)return"";let o=t[n+1];return o&&Oi(o)?"":(o&&Ii.has(r.toLowerCase())&&Sm.test(o)?`${r} ${o}`:r).slice(0,64)}function Nm(e){return Rm.has((e.split(" ")[0]??"").toLowerCase())}async function Pi(e){if(!e.telemetryOptIn)return;let t=Dr(e.cmd),n=t&&Bt(t)===t&&Nm(t)?t:"other",r=e.sessionId?e.sessionId.replace(/[^A-Za-z0-9._-]/g,"").slice(0,64):"";An("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 Di(e){if(e.plan!=="pro"||Vo(e.filterId)||!(await ht()).telemetryOptIn)return;let t=Dr(e.cmd);!t||Bt(t)!==t||An("learn",{cmd:t,filterId:e.filterId==null?null:X(e.filterId),rawBytes:e.rawBytes,filteredBytes:e.filteredBytes})}import{appendFileSync as Dm,chmodSync as Lm,mkdirSync as Fm,readFileSync as zi,realpathSync as Mm,renameSync as Ui,rmSync as Bi,statSync as Zi,writeFileSync as Lr}from"node:fs";import{basename as Fi,dirname as Ji,join as Rn,resolve as jm,sep as Nv}from"node:path";var Pm={"claude-code":"anthropic",codex:"openai",copilot:"openai","gemini-cli":"google",cursor:"anthropic",windsurf:"anthropic",cline:"anthropic",aider:"anthropic",shell:"anthropic"};function Li(e){return e?Pm[e]??"anthropic":"anthropic"}var Hm="stats.jsonl",zm="stats-ledger.json",Mi=2*1024*1024,Um=3e4,Bm=3e4,Zm=new Set(["n","g","e"]),Jm=256;function Gi(){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 Gm(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"&&Zm.has(n.o)?{o:n.o}:{}}}catch{return null}}function Wm(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,t.f<t.r&&(n.tnc=(n.tnc??0)+1,n.trr=(n.trr??0)+t.r,n.trf=(n.trf??0)+t.f)),n.r+=t.r,n.f+=t.f,e.cmds[t.c]=n}function Vm(e){return e.s==="b"?`b:${(e.c??"").split(" ")[0]||"other"}`:e.s?.startsWith("u:")?e.s:e.o==="n"?"n":"?"}function Km(e,t){let n=Vm(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 s=`${t.o} ${t.c??""}`,o=e.fb[s]??{n:0,r:0};o.n+=1,o.r+=t.r,e.fb[s]=o}}function qm(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>Bm){e.ox+=1;return}if(Wm(e,t),t.k==="restore"?(e.rn+=1,e.rb+=t.f):Km(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=Li(t.h),r=e.prov[n]??{r:0,f:0};r.r+=t.r,r.f+=t.f,e.prov[n]=r}}function Ym(e){let t=new Date(e*1e3);return`${t.getFullYear()}-${String(t.getMonth()+1).padStart(2,"0")}-${String(t.getDate()).padStart(2,"0")}`}function Wi(e){return Rn(Ji(e),zm)}function Xm(e){let t=Wi(e),n;try{n=zi(t,"utf8")}catch{return{}}try{let r=JSON.parse(n);if(!r.days||typeof r.days!="object")throw new Error("invalid ledger");let s={};for(let[o,i]of Object.entries(r.days))!/^\d{4}-\d{2}-\d{2}$/.test(o)||!i||typeof i!="object"||(s[o]={...Gi(),...i});return s}catch{try{Ui(t,`${t}.corrupt-${Date.now()}`)}catch{}return{}}}function ji(e,t){let n=`${e}.tmp-${process.pid}`;Lr(n,t,{mode:384}),Ui(n,e)}function Qm(e){try{return Lr(e,String(process.pid),{flag:"wx",mode:384}),!0}catch{}try{return Date.now()-Zi(e).mtimeMs<Um?!1:(Bi(e,{force:!0}),Lr(e,String(process.pid),{flag:"wx",mode:384}),!0)}catch{return!1}}function eh(e,t=Mi,n=Mi/2){try{if(Zi(e).size<=t)return}catch{return}let r=`${e}.lock`;if(Qm(r))try{let s=zi(e,"utf8").split(`
91
- `).filter(u=>u.trim()!==""),o=s.length,i=0;for(;o>0;){let u=Buffer.byteLength(s[o-1])+1;if(i+u>n)break;i+=u,o-=1}let a=Xm(e);for(let u of s.slice(0,o)){let c=Gm(u);if(!c)continue;let f=Ym(c.t),d=a[f]??Gi();qm(d,c),a[f]=d}let l=s.slice(o);ji(e,l.length?`${l.join(`
89
+ `:tt,Os=Buffer.byteLength(Vn,"utf8"),eu=Vn.trim().length===0&&t.trim().length>0&&(o!=null&&o!==0||yr(e));return t.trim().length>0&&(Os>=s||eu)?I({output:t,filterId:d.slug,rawBytes:s,filteredBytes:s,debugBypass:!1,droppedTail:null}):I({output:Vn,filterId:d.slug,rawBytes:s,filteredBytes:Os,debugBypass:!1,droppedTail:J})}function mt(e=5e3){return new Promise(t=>{let n=[],r=process.stdin,s=!1,o=()=>{s||(s=!0,clearTimeout(a),r.off("data",i),r.pause(),r.unref?.(),t(Buffer.concat(n).toString("utf8")))},i=l=>{n.push(Buffer.isBuffer(l)?l:Buffer.from(l))},a=setTimeout(o,e);r.on("data",i).once("end",o).once("error",o),r.resume()})}function lm(){let e=Number(process.env.TOKMIZER_OFFLINE_GRACE_MS);return Number.isFinite(e)&&e>0?e:6048e5}function vi(e,t=Date.now()){let n=e.lastHeartbeatOkAt;if(typeof n=="number"&&t-n>lm())return!0;if(e.subEndsAt){let r=Date.parse(e.subEndsAt);if(Number.isFinite(r)&&t>r)return!0}return!1}function Ei(e,t=Date.now()){return e.plan}import{readFile as um,writeFile as $S,mkdir as CS,chmod as OS,rm as IS,rename as NS,readdir as PS}from"node:fs/promises";import{join as cm}from"node:path";var fm="settings-cache.json",Ti=Ft.parse({}),MS=Ft.partial().extend({filters:Ft.shape.filters.removeDefault().partial().optional()});async function ht(){let e=null;try{let t=JSON.parse(await um(cm(A(),fm),"utf8"));typeof t=="object"&&t!==null&&!Array.isArray(t)&&(e=t)}catch{}return e?Ft.parse({...Ti,...e}):Ti}var dm=[[/(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]"]];function Bt(e){let t=e;for(let[n,r]of dm)t=t.replace(n,r);return t}var ke="[tkr: secret masked]",HS=[[/(-----BEGIN [A-Z0-9 ]*PRIVATE KEY-----)(?:\r?\n(?:[A-Za-z0-9+/=]{16,}|[A-Za-z-]+: [^\r\n]*|\r?(?=\n)))*(?:(?:\r?\n[A-Za-z0-9+/=]{1,15})?\r?\n-----END [A-Z0-9 ]*PRIVATE KEY-----)?/g,`$1${ke}`],[/(?<![A-Za-z0-9_])(gh[pousr])_[A-Za-z0-9]{36,255}(?![A-Za-z0-9])/g,`$1_${ke}`],[/(?<![A-Za-z0-9_])github_pat_[A-Za-z0-9_]{22,255}/g,`github_pat_${ke}`],[/(?<![A-Za-z0-9_])npm_[A-Za-z0-9]{36}(?![A-Za-z0-9])/g,`npm_${ke}`],[/(?<![A-Z0-9])(AKIA|ASIA)[A-Z0-9]{16}(?![A-Z0-9])/g,`$1${ke}`],[/(?<![A-Za-z0-9])(xox[abpors]-)[A-Za-z0-9-]{10,}/g,`$1${ke}`],[/(?<![A-Za-z0-9])((?:sk|rk)_live_)[A-Za-z0-9]{16,}/g,`$1${ke}`],[/(authorization["']?\s*[:=]\s*["']?bearer\s+)[A-Za-z0-9._~+/=-]{8,}/gi,`$1${ke}`],[/(?<![A-Za-z0-9+.-])([a-zA-Z][a-zA-Z0-9+.-]{0,31}:\/\/[^\s:/@]*:)[^\s@/]+(@[^\s@/]+)/g,`$1${ke}$2`]];import{join as Nr}from"node:path";import{appendFileSync as $i,chmodSync as hm,existsSync as Ci,mkdirSync as gm,readFileSync as iv,renameSync as av,rmdirSync as lv,statSync as Oi,unlinkSync as uv,utimesSync as cv,writeFileSync as fv}from"node:fs";import{createHash as ZS,createHmac as JS,randomUUID as pm}from"node:crypto";import{readFile as Ai,writeFile as Ri,mkdir as mm}from"node:fs/promises";async function Ir(){try{let n=(await Ai(jt(),"utf8")).trim();if(/^[0-9a-f-]{36}$/i.test(n))return n}catch{}await mm(A(),{recursive:!0});let e=pm();try{return await Ri(jt(),e,{mode:384,flag:"wx"}),e}catch{try{let t=(await Ai(jt(),"utf8")).trim();if(/^[0-9a-f-]{36}$/i.test(t))return t}catch{}return await Ri(jt(),e,{mode:384}),e}}var ym=512*1024;function Pr(){return Nr(A(),"spool")}function km(e){return Nr(Pr(),`${e}.jsonl`)}var bm=1024*1024;function _m(e){return Nr(Pr(),`${e}.dropped`)}function xm(e){try{let t=_m(e);if(Ci(t)&&Oi(t).size>=bm)return;$i(t,".",{mode:384})}catch{return}}function An(e,t){if(Ar())try{gm(Pr(),{recursive:!0,mode:448});let n=km(e);if(Ci(n)&&Oi(n).size>=ym){xm(e);return}$i(n,JSON.stringify(t)+`
90
+ `,{mode:384}),hm(n,384)}catch{return}}var Sm=/^[a-z0-9][a-z0-9._-]*$/i,vm=/^[a-z][a-z-]+$/,Em=/^[A-Za-z_][A-Za-z0-9_]*=/,Tm=new Set(["gh","glab","gup","hub","gist"]),Am=/^(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,Rm=24,Ni=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"]),Pi=new Set([...Ni,"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"]),$m=new Set([...Pi,"cd","cat","head","tail","ls","tree","find","grep","wc","nl","sort","cut","uniq","tr","diff","stat","file","du","df","ps","yq","pwd","which","echo","printf","seq","sed","awk","gawk","xargs","sleep","tar","zip","unzip","rsync","scp","ssh","curl","wget","dig","host","nslookup","ping","lsof","journalctl","iptables","ip6tables","open","md5","md5sum","sha1sum","sha224sum","sha256sum","sha384sum","sha512sum","shasum","sudo","env","command","time","nodejs","bunx","pytest","mypy","dmypy","pyright","basedpyright","ruff","black","ty","gradlew","mvnw","mvnd","ninja","cmake","bazel","bazelisk","sbt","gcc","clang","gmake","swift","xcodebuild","pod","flutter","nx","turbo","next","eslint","prettier","biome","oxlint","golangci-lint","shellcheck","hadolint","yamllint","markdownlint","mdl","sqlfluff","rubocop","rspec","bundler","php","artisan","composer","phpunit","phpstan","pest","paratest","pint","mix","javap","jar","docker-compose","skopeo","oc","ecs","nomad","consul","packer","pulumi","tofu","ansible","ansible-playbook","vault","sops","vercel","netlify","wrangler","firebase","supabase","stripe","shopify","theme-check","redis-cli","liquibase","ollama","ast-grep","just","task","mise","trunk","pre-commit","jj","yadm","gt","quarto","act","jira","fail2ban-client","ctest","pio","platformio","reducer","restore","read-tool","grep-tool","glob-tool","bash-tool"]),Cm=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"])]]),Om=new Set(["-C","-c"]);function Im(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 Pi.has(n.toLowerCase())?n:""}function Nm(e,t,n){let r=0;for(;e==="git"&&r<n.length&&n[r].startsWith("-");)r+=Om.has(n[r])?2:1;let s=(n[r]??"").toLowerCase();return t.has(s)?`${e} ${s}`:e}function Ii(e){let t=e.toLowerCase();return t.startsWith("git")||Tm.has(t)}function Dr(e){let t=e.trim().split(/\s+/).filter(l=>l.length>0),n=0;for(;n<t.length&&Em.test(t[n]??"");)n+=1;let r=Im(t[n]??"");if(!r||!Sm.test(r)||r.length>Rm)return"";let s=Cm.get(r.toLowerCase());if(s)return Nm(r.toLowerCase(),s,t.slice(n+1));if(Ii(r)||Am.test(r)||Bt(r)!==r)return"";let o=t[n+1];return o&&Ii(o)?"":(o&&Ni.has(r.toLowerCase())&&vm.test(o)?`${r} ${o}`:r).slice(0,64)}function Pm(e){return $m.has((e.split(" ")[0]??"").toLowerCase())}async function Di(e){if(!e.telemetryOptIn)return;let t=Dr(e.cmd),n=t&&Bt(t)===t&&Pm(t)?t:"other",r=e.sessionId?e.sessionId.replace(/[^A-Za-z0-9._-]/g,"").slice(0,64):"";An("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 Li(e){if(e.plan!=="pro"||Ko(e.filterId)||!(await ht()).telemetryOptIn)return;let t=Dr(e.cmd);!t||Bt(t)!==t||An("learn",{cmd:t,filterId:e.filterId==null?null:X(e.filterId),rawBytes:e.rawBytes,filteredBytes:e.filteredBytes})}import{appendFileSync as Lm,chmodSync as Fm,mkdirSync as Mm,readFileSync as Ui,realpathSync as jm,renameSync as Bi,rmSync as Zi,statSync as Ji,writeFileSync as Lr}from"node:fs";import{basename as Mi,dirname as Gi,join as Rn,resolve as Hm,sep as Pv}from"node:path";var Dm={"claude-code":"anthropic",codex:"openai",copilot:"openai","gemini-cli":"google",cursor:"anthropic",windsurf:"anthropic",cline:"anthropic",aider:"anthropic",shell:"anthropic"};function Fi(e){return e?Dm[e]??"anthropic":"anthropic"}var zm="stats.jsonl",Um="stats-ledger.json",ji=2*1024*1024,Bm=3e4,Zm=3e4,Jm=new Set(["n","g","e"]),Gm=256;function Wi(){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 Wm(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"&&Jm.has(n.o)?{o:n.o}:{}}}catch{return null}}function Vm(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,t.f<t.r&&(n.tnc=(n.tnc??0)+1,n.trr=(n.trr??0)+t.r,n.trf=(n.trf??0)+t.f)),n.r+=t.r,n.f+=t.f,e.cmds[t.c]=n}function Km(e){return e.s==="b"?`b:${(e.c??"").split(" ")[0]||"other"}`:e.s?.startsWith("u:")?e.s:e.o==="n"?"n":"?"}function qm(e,t){let n=Km(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 s=`${t.o} ${t.c??""}`,o=e.fb[s]??{n:0,r:0};o.n+=1,o.r+=t.r,e.fb[s]=o}}function Ym(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>Zm){e.ox+=1;return}if(Vm(e,t),t.k==="restore"?(e.rn+=1,e.rb+=t.f):qm(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=Fi(t.h),r=e.prov[n]??{r:0,f:0};r.r+=t.r,r.f+=t.f,e.prov[n]=r}}function Xm(e){let t=new Date(e*1e3);return`${t.getFullYear()}-${String(t.getMonth()+1).padStart(2,"0")}-${String(t.getDate()).padStart(2,"0")}`}function Vi(e){return Rn(Gi(e),Um)}function Qm(e){let t=Vi(e),n;try{n=Ui(t,"utf8")}catch{return{}}try{let r=JSON.parse(n);if(!r.days||typeof r.days!="object")throw new Error("invalid ledger");let s={};for(let[o,i]of Object.entries(r.days))!/^\d{4}-\d{2}-\d{2}$/.test(o)||!i||typeof i!="object"||(s[o]={...Wi(),...i});return s}catch{try{Bi(t,`${t}.corrupt-${Date.now()}`)}catch{}return{}}}function Hi(e,t){let n=`${e}.tmp-${process.pid}`;Lr(n,t,{mode:384}),Bi(n,e)}function eh(e){try{return Lr(e,String(process.pid),{flag:"wx",mode:384}),!0}catch{}try{return Date.now()-Ji(e).mtimeMs<Bm?!1:(Zi(e,{force:!0}),Lr(e,String(process.pid),{flag:"wx",mode:384}),!0)}catch{return!1}}function th(e,t=ji,n=ji/2){try{if(Ji(e).size<=t)return}catch{return}let r=`${e}.lock`;if(eh(r))try{let s=Ui(e,"utf8").split(`
91
+ `).filter(u=>u.trim()!==""),o=s.length,i=0;for(;o>0;){let u=Buffer.byteLength(s[o-1])+1;if(i+u>n)break;i+=u,o-=1}let a=Qm(e);for(let u of s.slice(0,o)){let c=Wm(u);if(!c)continue;let f=Xm(c.t),d=a[f]??Wi();Ym(d,c),a[f]=d}let l=s.slice(o);Hi(e,l.length?`${l.join(`
92
92
  `)}
93
- `:""),ji(Wi(e),JSON.stringify({v:1,days:a}))}catch{return}finally{Bi(r,{force:!0})}}function th(e){let t=jm(e),n=t,r="";for(;;){try{return Rn(Mm(n),r)}catch{}let s=Ji(n);if(s===n)return t;r=r?Rn(Fi(n),r):Fi(n),n=s}}var nh=new Set(["sudo","command","time","nice","nohup","env","stdbuf","timeout"]),rh=new Set(["-u","-g","-n","-s","-k"]),sh=/^[a-z0-9][a-z0-9._-]*$/i,oh=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"]),Vi=/^[A-Za-z_][A-Za-z0-9_]*=/;function Hi(e){return e.length===0||e[0]==="cd"||e.every(t=>Vi.test(t))}function ih(e){let t=[],n="",r=!1,s=null,o=()=>{r&&t.push(n),n="",r=!1};for(let i of e){if(s){i===s?s=null:n+=i;continue}if(i==="'"||i==='"'){s=i,r=!0;continue}if(i===" "||i===" "){o();continue}if(`|;&<>
94
- `.includes(i)){if(o(),Hi(t)){t=[];continue}return t}n+=i,r=!0}return o(),Hi(t)?[]:t}function Ki(e){let t=ih(e).map(a=>a.replace(/^[({]+/,"")).filter(Boolean),n=0;for(;n<t.length;){let a=t[n];if(Vi.test(a)){n+=1;continue}if(nh.has(a)){for(n+=1;n<t.length;){let l=t[n];if(l.startsWith("-")){n+=rh.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],s=r.includes("/")?r.slice(r.lastIndexOf("/")+1):r,o=t[n+1];return(o&&!o.startsWith("-")&&sh.test(o)&&oh.has(s.toLowerCase())?`${s} ${o}`:s).slice(0,24)}function ah(){return Rn(A(),Hm)}function qi(e,t,n=ah(),r=!1,s,o,i,a,l={}){if(!Number.isSafeInteger(e)||!Number.isSafeInteger(t)||e<0||t<0||e+t===0)return;let u=s?`,"h":${JSON.stringify(s)}`:"",c=o?`,"k":${JSON.stringify(o)}`:"",f=i?`,"c":${JSON.stringify(i.slice(0,24))}`:"",d=a?th(a):"",p=d&&d.length<=Jm?`,"p":${JSON.stringify(d)}`:"",h=l.s?`,"s":${JSON.stringify(l.s.slice(0,66))}`:"",y=l.o?`,"o":${JSON.stringify(l.o)}`:"",m=`{"t":${Math.floor(Date.now()/1e3)},"r":${e},"f":${t}${r?',"m":1':""}${u}${c}${f}${p}${h}${y}}
95
- `;try{Fm(A(),{recursive:!0,mode:448}),Dm(n,m,{mode:384}),Lm(n,384),eh(n)}catch{return}}function Yi(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 Xi(e,t,n){let r=n!=null?Math.min(e,n):e,s=n!=null?Math.min(t,n):t;return{raw:r,filtered:s}}import{existsSync as $E,readFileSync as lg}from"node:fs";function lh(e){return e.charCodeAt(0)===65279?e.slice(1):e}function ee(e){return JSON.parse(lh(e))}import{join as ug}from"node:path";import cg from"node:os";import{readFile as Vh,writeFile as Kh,rename as qh,mkdir as Sa,chmod as Yh,stat as Xh,unlink as Qh}from"node:fs/promises";import{existsSync as eg,lstatSync as tg,readlinkSync as ng,realpathSync as _a}from"node:fs";import{basename as rg,dirname as Nn,join as sg,resolve as xa}from"node:path";import{basename as uh}from"node:path";var ch={exec:"tkr-exec",processor:"tkr-processor",daemon:"tkr-daemon","shim-run":"tkr-shim"},fh={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"};function gt(e){let t=uh(e).replace(/\.(m?js|ts)$/,"");if(t==="tkr")return[];for(let[n,r]of Object.entries(ch))if(r===t)return[n];for(let[n,r]of Object.entries(fh))if(r===t)return["hook",n];return null}import{realpathSync as Qi}from"node:fs";import{delimiter as dh,join as yt}from"node:path";import ph from"node:os";function Te(){return!1}function Fr(e,t=process.execPath){let n=Te()?gt(e):null;return n?[process.execPath,...n]:[t,e]}function ea(e,t){try{return Qi(e)===Qi(t)}catch{return!1}}function Mr(e=process.env.PATH??"",t=process.platform,n=process.execPath){let r=t==="win32"?"tkr.exe":"tkr";for(let s of e.split(t==="win32"?";":dh)){if(!s||s.includes("node_modules"))continue;let o=yt(s,r);if(ea(o,n))return o}if(t!=="win32"){let s=ph.homedir();for(let o of[yt(s,".local","bin",r),yt(s,".local","share","tokmizer","current","dist","bin",r),yt("/opt/homebrew/bin",r),yt("/usr/local/bin",r),yt("/home/linuxbrew/.linuxbrew/bin",r)])if(ea(o,n))return o}return n}import mh from"node:os";import{isAbsolute as hh,join as ta,resolve as na}from"node:path";function $n(e=process.env,t=mh.homedir()){let n=e.CLAUDE_CONFIG_DIR?.trim();if(!n)return ta(t,".claude");let r=n;return r==="~"?r=t:(r.startsWith("~/")||r.startsWith("~\\"))&&(r=ta(t,r.slice(2))),hh(r)?na(r):na(r)}import{accessSync as bh,chmodSync as _h,constants as xh,existsSync as Cn,mkdirSync as wh,readdirSync as Sh,readFileSync as vh,realpathSync as aa,renameSync as Eh,unlinkSync as Th,writeFileSync as Ah}from"node:fs";import{basename as zr,dirname as Ae,join as be,sep as kt}from"node:path";import{rmSync as gh,statSync as yh}from"node:fs";import{join as ra}from"node:path";function sa(){return ra(A(),"shims")}function jr(){return ra(A(),"fail-open")}var kh=24*36e5;function fe(e=Date.now()){try{if(e-yh(jr()).mtimeMs<kh)return!0;gh(jr(),{force:!0})}catch{}return!1}function oa(){return`[ -f ${qe(jr())} ]`}function qe(e){return`'${e.replace(/'/g,"'\\''")}'`}function ia(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("'")}var ua=1,Zt="tkr-shim.stable",ca=/^(?:0|[1-9]\d{0,5})\.(?:0|[1-9]\d{0,5})\.(?:0|[1-9]\d{0,5})$/;function Rh(){return be(A(),"bin","tkr-shim-launch")}function $h(){return be(A(),"bin","tkr-run")}function la(){return be($n(),"plugins","cache","tokmizer","tokmizer")}function Ch(e){let t=Ae(Ae(Ae(e)));return ca.test(zr(t))&&zr(Ae(t))==="tokmizer"?Ae(t):null}function Ur(e){return/[\n\r]/.test(e)||e.includes(`${kt}_npx${kt}`)||e.includes(`${kt}.bun${kt}install${kt}cache${kt}`)}function Br(e){let t=e.match(/^(.*)[\\/]Cellar[\\/]([^\\/]+)[\\/][^\\/]+[\\/](.*)$/);if(!t)return e;let n=be(t[1],"opt",t[2],t[3]);try{return aa(n)===aa(e)?n:e}catch{return e}}function Oh(e=process.execPath){return Ur(e)?"":Br(e)}function Ih(e,t=Te()){if(t&&gt(e)){let s=Mr();return{single:Ur(s)?"":Br(s),js:"",cache:la(),node:""}}let n=Oh(),r=Ch(e);return r?{single:"",js:"",cache:r,node:n}:{single:"",js:Ur(e)?"":Br(e),cache:la(),node:n}}function Nh(e){try{return bh(e,xh.X_OK),!0}catch{return!1}}function Ph(e){let t=null,n=-1,r;try{r=Sh(e)}catch{return null}for(let s of r){if(!ca.test(s))continue;let o=be(e,s);if(!Cn(be(o,"dist","bin","tkr-shim.js"))||!Cn(be(o,"dist","bin",Zt)))continue;let[i,a,l]=s.split(".").map(Number),u=i*1e6+a*1e3+l;u>n&&(n=u,t=o)}return t}function Hr(e){return e.single&&Nh(e.single)||e.js&&Cn(e.js)&&(zr(e.js)!=="tkr-shim.js"||Cn(be(Ae(e.js),Zt)))?!0:e.cache!==""&&Ph(e.cache)!==null}function Dh(e,t){return["_tk_t=",`if [ -n "$_tk_j" ] && [ -f "${t}" ] && { [ "\${_tk_j##*/}" != tkr-shim.js ] || [ -f "\${_tk_j%/*}/${Zt}" ]; }; 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/${Zt}" ] || 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=${qe(sa())}`," 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/${Zt}" ] && [ -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 Lh(e){return["#!/bin/sh",`_tk_f=${ua}`,`_tk_s=${qe(e.single)}`,`_tk_j=${qe(e.js)}`,`_tk_k=${qe(e.cache)}`,`_tk_n=${qe(e.node)}`,'[ "$#" -gt 0 ] || exit 0',`if ! ${oa()}; then`,' if [ -n "$_tk_s" ] && [ -x "$_tk_s" ]; then exec "$_tk_s" exec "$@"; fi',...Dh("tkr-exec.js","${_tk_j%/*}/tkr-exec.js").map(t=>` ${t}`),' if [ -n "$_tk_t" ]; then'," _tk_r=${_tk_t%/*}",' if [ -f "$_tk_r/tkr-exec" ] && [ -s "$_tk_r/tkr-exec" ] && [ -x "$_tk_r/tkr-exec" ]; then exec "$_tk_r/tkr-exec" "$@"; fi',' if [ -n "$_tk_x" ] && [ -s "$_tk_t" ]; then exec "$_tk_x" "$_tk_t" "$@"; fi'," fi","fi",'exec "$@"',""].join(`
96
- `)}function fa(e){let t=$h(),n=Ih(be(Ae(e),"tkr-shim.js")),r=Mh(t);if(r&&r.format===ua&&Hr(r.target)&&JSON.stringify(r.target)===JSON.stringify(n))return t;if(!Hr(n))return r&&Hr(r.target)?t:null;let s=`${t}.${process.pid}.tmp`;try{return wh(Ae(t),{recursive:!0,mode:448}),Ah(s,Lh(n),{mode:493}),_h(s,493),Eh(s,t),t}catch{try{Th(s)}catch{}return null}}function Fh(e){let t=a=>{let l=e.match(new RegExp(`^${a}=(.*)$`,"m"));return l?a==="_tk_f"?l[1]:ia(l[1]):null},n=Number(t("_tk_f")),r=t("_tk_s"),s=t("_tk_j"),o=t("_tk_k"),i=t("_tk_n")??"";return!Number.isInteger(n)||r===null||s===null||o===null?null:{format:n,target:{single:r,js:s,cache:o,node:i}}}function Mh(e=Rh()){try{return Fh(vh(e,"utf8"))}catch{return null}}import{chmod as jh,lstat as da,mkdir as Hh,readFile as Jr,rename as zh,rm as fE,unlink as pa,writeFile as Uh}from"node:fs/promises";import{createHash as ma}from"node:crypto";import{basename as Bh,join as ha}from"node:path";var Zh=".tkr-bak";function ga(){return ha(A(),"backup","config")}function Zr(e){let t=Wr(e),n=ma("sha256").update(t).digest("hex").slice(0,16),r=Bh(t).replace(/[^A-Za-z0-9._-]/g,"_").slice(0,80);return ha(ga(),`${n}-${r}`)}function ya(e){return`${Zr(e)}.written`}function ka(e){return ma("sha256").update(e).digest("hex")}async function Jh(e){try{return await da(e),!0}catch{return!1}}async function Gr(e,t){let n=`${e}.tmp-${process.pid}`;try{return await Hh(ga(),{recursive:!0,mode:448}),await Uh(n,t,{mode:384}),await jh(n,384),await zh(n,e),!0}catch{return await pa(n).catch(()=>{}),!1}}async function Gh(e,t){let n=`${e}${Zh}`;try{if(!(await da(n)).isFile())return!1}catch{return!1}let r=!await Jh(t);if(r&&!await Gr(t,await Jr(n,"utf8")))throw new Error("backup");return await pa(n).catch(()=>{}),r}async function Wh(e,t){try{return(await Jr(ya(e),"utf8")).trim()===ka(t)}catch{return!1}}async function ba(e,t){let n=t;try{n===void 0&&(n=await Jr(e,"utf8"))}catch(r){return r.code==="ENOENT"}try{if(await Gh(e,Zr(e)))return!0}catch{return!1}return await Wh(e,n)?!0:Gr(Zr(e),n)}async function On(e,t,n){return!await ba(e,n)||!await In(e,t)?!1:(await Gr(ya(e),`${ka(t)}
97
- `),!0)}function D(e){return e!=null&&typeof e=="object"&&!Array.isArray(e)}async function Re(e){if(!eg(e))return{};try{let t=ee(await Vh(e,"utf8"));return D(t)?t:null}catch{return null}}function Wr(e){let t=xa(e);for(let n=0;n<32;n++){try{return _a(t)}catch{}try{if(!tg(t).isSymbolicLink())break;t=xa(Nn(t),ng(t))}catch{break}}try{return sg(_a(Nn(t)),rg(t))}catch{return t}}async function In(e,t){let n=Wr(e),r=`${n}.tmp-${process.pid}`;try{await Sa(Nn(n),{recursive:!0});let s=384;try{s=(await Xh(n)).mode&511}catch{}return await Kh(r,t,{mode:s}),await Yh(r,s),await qh(r,n),!0}catch{try{await Qh(r)}catch{}return!1}}async function $e(e,t){try{await Sa(Nn(e),{recursive:!0})}catch{return!1}return On(e,`${JSON.stringify(t,null,2)}
98
- `)}function og(e){let t=[],n="",r=!1;for(let s=0;s<e.length;s++){let o=e[s];if(o==="'"){let i=e.indexOf("'",s+1);if(i<0)return null;n+=e.slice(s+1,i),r=!0,s=i}else if(o==='"'){let i=e.indexOf('"',s+1);if(i<0)return null;let a=e.slice(s+1,i);if(/`|\$\(/.test(a))return null;n+=a,r=!0,s=i}else if(o==="\\"&&e[s+1]==="'")n+="'",r=!0,s++;else if(o===" "||o===" ")r&&t.push(n),n="",r=!1;else{if(o===";"||o==="&"||o==="|"||o==="`"||o===`
99
- `||o==="\r"||o==="$"&&e[s+1]==="(")return null;n+=o,r=!0}}return r&&t.push(n),t}var ig=/^\s*\[ ! -[a-z] (?:'(?:[^']|'\\'')*'|"[^"]*") \] \|\| /,wa=/^[A-Za-z_][A-Za-z0-9_]*=/;function Vr(e){return(e.split(/[\\/]/).pop()??"").toLowerCase().replace(/\.(?:exe|cmd|bat|ps1|m?js|sh)$/,"")}function ag(e){if(typeof e!="string")return null;let t=e.replace(ig,""),n=og(t);if(!n)return null;let r=0;for(;r<n.length&&wa.test(n[r]);)r++;if(n[r]==="exec"&&r++,r>=n.length||wa.test(n[r]))return null;let s=Vr(n[r]),o=n.slice(r+1);if(s==="sh"||s==="bash"){let i=o[0]!==void 0?Vr(o[0]):"";return/^tkr-hook(?:-launch)?$/.test(i)?{program:i,args:o.slice(2),launcherMark:o[1]??""}:{program:s,args:o}}return s==="node"?{program:o[0]!==void 0?Vr(o[0]):"node",args:o.slice(1)}:{program:s,args:o}}function bt(e,t){let n=ag(e);if(!n)return!1;if(n.launcherMark!==void 0)return n.launcherMark===t;if(n.program===t)return!0;if(n.program!=="tkr")return!1;let r=gt(t);return r?.length?r.every((s,o)=>n.args[o]===s):!1}function Pn(e,t,n,r){let s=i=>i!==n&&t(i),o=!1;for(let i=e.length-1;i>=0;i--){let a=e[i];if(!r){s(a)&&(e.splice(i,1),o=!0);continue}if(!D(a)||!Array.isArray(a.hooks))continue;let l=a.hooks.filter(u=>!s(u));l.length!==a.hooks.length&&(o=!0,l.length?a.hooks=l:e.splice(i,1))}return o}var fg="tkr-cursor-hook",va="preToolUse";function dg(){return ug(cg.homedir(),".cursor","hooks.json")}function pg(e){return D(e)&&bt(e.command,fg)}function mg(e){let t=D(e.hooks)?e.hooks:{},n=Array.isArray(t[va])?t[va]:[];return{hooks:t,entries:n}}function Ea(){try{let e=ee(lg(dg(),"utf8"));return mg(e).entries.some(pg)}catch{return!1}}import{existsSync as LE,readFileSync as hg}from"node:fs";import{join as gg}from"node:path";import yg from"node:os";var kg="tkr-gemini-hook",Ta="BeforeTool";function bg(){return gg(process.env.GEMINI_CLI_HOME||yg.homedir(),".gemini","settings.json")}function _g(e){return D(e)&&bt(e.command,kg)}function xg(e){return(Array.isArray(e.hooks)?e.hooks:[]).find(_g)}function wg(e){let t=D(e.hooks)?e.hooks:{},n=Array.isArray(t[Ta])?t[Ta]:[];return{hooks:t,groups:n}}function Aa(){try{let e=ee(hg(bg(),"utf8"));return wg(e).groups.some(t=>xg(t)!=null)}catch{return!1}}import{dirname as fT,join as te}from"node:path";import Cg from"node:os";import{existsSync as ZE,accessSync as JE,constants as GE,readFileSync as Sg}from"node:fs";var vg='"rewrite", "--host"';function Eg(e){return e.includes(vg)}function Ra(e){try{return Eg(Sg(e,"utf8"))}catch{return!1}}import{readFile as Ca,mkdir as Tg}from"node:fs/promises";import{existsSync as Yr,readFileSync as Oa}from"node:fs";import{dirname as Ag,join as qr}from"node:path";import Ia from"node:os";var Na="tokmizer-rewrite",Jt="tokmizer-rewrite";function Wt(){return qr(process.env.VIBE_HOME||qr(Ia.homedir(),".vibe"),"hooks.toml")}function $a(e){return JSON.stringify(e)}function Rg(e){return["[[hooks]]",`name = ${$a(Na)}`,'type = "pre_tool"','match = "bash"',`command = ${$a(e)}`,"timeout = 10.0","strict = false",'description = "Route shell commands through tokmizer."',""].join(`
100
- `)}function Xr(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 Gt(e){return/^\s*\[\[hooks\]\]/.test(e)&&new RegExp(`^\\s*name\\s*=\\s*"${Na}"\\s*$`,"m").test(e)}async function Pa(e,t){try{await Tg(Ag(e),{recursive:!0})}catch{return!1}return On(e,t)}function Da(){try{return Xr(Oa(Wt(),"utf8")).some(Gt)}catch{return!1}}async function La(e){let t=Wt(),n="";try{Yr(t)&&(n=await Ca(t,"utf8"))}catch{return"error"}let r=Rg(e),s=Xr(n),o=s.filter(Gt);if(o.length===1&&o[0].trimEnd()===r.trimEnd())return"present";let i=s.filter(l=>!Gt(l)).join("").trimEnd(),a=i?`${i}
93
+ `:""),Hi(Vi(e),JSON.stringify({v:1,days:a}))}catch{return}finally{Zi(r,{force:!0})}}function nh(e){let t=Hm(e),n=t,r="";for(;;){try{return Rn(jm(n),r)}catch{}let s=Gi(n);if(s===n)return t;r=r?Rn(Mi(n),r):Mi(n),n=s}}var rh=new Set(["sudo","command","time","nice","nohup","env","stdbuf","timeout"]),sh=new Set(["-u","-g","-n","-s","-k"]),oh=/^[a-z0-9][a-z0-9._-]*$/i,ih=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"]),Ki=/^[A-Za-z_][A-Za-z0-9_]*=/;function zi(e){return e.length===0||e[0]==="cd"||e.every(t=>Ki.test(t))}function ah(e){let t=[],n="",r=!1,s=null,o=()=>{r&&t.push(n),n="",r=!1};for(let i of e){if(s){i===s?s=null:n+=i;continue}if(i==="'"||i==='"'){s=i,r=!0;continue}if(i===" "||i===" "){o();continue}if(`|;&<>
94
+ `.includes(i)){if(o(),zi(t)){t=[];continue}return t}n+=i,r=!0}return o(),zi(t)?[]:t}function qi(e){let t=ah(e).map(a=>a.replace(/^[({]+/,"")).filter(Boolean),n=0;for(;n<t.length;){let a=t[n];if(Ki.test(a)){n+=1;continue}if(rh.has(a)){for(n+=1;n<t.length;){let l=t[n];if(l.startsWith("-")){n+=sh.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],s=r.includes("/")?r.slice(r.lastIndexOf("/")+1):r,o=t[n+1];return(o&&!o.startsWith("-")&&oh.test(o)&&ih.has(s.toLowerCase())?`${s} ${o}`:s).slice(0,24)}function lh(){return Rn(A(),zm)}function Yi(e,t,n=lh(),r=!1,s,o,i,a,l={}){if(!Number.isSafeInteger(e)||!Number.isSafeInteger(t)||e<0||t<0||e+t===0)return;let u=s?`,"h":${JSON.stringify(s)}`:"",c=o?`,"k":${JSON.stringify(o)}`:"",f=i?`,"c":${JSON.stringify(i.slice(0,24))}`:"",d=a?nh(a):"",p=d&&d.length<=Gm?`,"p":${JSON.stringify(d)}`:"",g=l.s?`,"s":${JSON.stringify(l.s.slice(0,66))}`:"",y=l.o?`,"o":${JSON.stringify(l.o)}`:"",m=`{"t":${Math.floor(Date.now()/1e3)},"r":${e},"f":${t}${r?',"m":1':""}${u}${c}${f}${p}${g}${y}}
95
+ `;try{Mm(A(),{recursive:!0,mode:448}),Lm(n,m,{mode:384}),Fm(n,384),th(n)}catch{return}}function Xi(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 Qi(e,t,n){let r=n!=null?Math.min(e,n):e,s=n!=null?Math.min(t,n):t;return{raw:r,filtered:s}}import{existsSync as CE,readFileSync as ug}from"node:fs";function uh(e){return e.charCodeAt(0)===65279?e.slice(1):e}function ee(e){return JSON.parse(uh(e))}import{join as cg}from"node:path";import fg from"node:os";import{readFile as Kh,writeFile as qh,rename as Yh,mkdir as va,chmod as Xh,stat as Qh,unlink as eg}from"node:fs/promises";import{existsSync as tg,lstatSync as ng,readlinkSync as rg,realpathSync as xa}from"node:fs";import{basename as sg,dirname as Nn,join as og,resolve as wa}from"node:path";import{basename as ch}from"node:path";var fh={exec:"tkr-exec",processor:"tkr-processor",daemon:"tkr-daemon","shim-run":"tkr-shim"},dh={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"};function gt(e){let t=ch(e).replace(/\.(m?js|ts)$/,"");if(t==="tkr")return[];for(let[n,r]of Object.entries(fh))if(r===t)return[n];for(let[n,r]of Object.entries(dh))if(r===t)return["hook",n];return null}import{realpathSync as ea}from"node:fs";import{delimiter as ph,join as yt}from"node:path";import mh from"node:os";function Te(){return!1}function Fr(e,t=process.execPath){let n=Te()?gt(e):null;return n?[process.execPath,...n]:[t,e]}function ta(e,t){try{return ea(e)===ea(t)}catch{return!1}}function Mr(e=process.env.PATH??"",t=process.platform,n=process.execPath){let r=t==="win32"?"tkr.exe":"tkr";for(let s of e.split(t==="win32"?";":ph)){if(!s||s.includes("node_modules"))continue;let o=yt(s,r);if(ta(o,n))return o}if(t!=="win32"){let s=mh.homedir();for(let o of[yt(s,".local","bin",r),yt(s,".local","share","tokmizer","current","dist","bin",r),yt("/opt/homebrew/bin",r),yt("/usr/local/bin",r),yt("/home/linuxbrew/.linuxbrew/bin",r)])if(ta(o,n))return o}return n}import hh from"node:os";import{isAbsolute as gh,join as na,resolve as ra}from"node:path";function $n(e=process.env,t=hh.homedir()){let n=e.CLAUDE_CONFIG_DIR?.trim();if(!n)return na(t,".claude");let r=n;return r==="~"?r=t:(r.startsWith("~/")||r.startsWith("~\\"))&&(r=na(t,r.slice(2))),gh(r)?ra(r):ra(r)}import{accessSync as _h,chmodSync as xh,constants as wh,existsSync as Cn,mkdirSync as Sh,readdirSync as vh,readFileSync as Eh,realpathSync as la,renameSync as Th,unlinkSync as Ah,writeFileSync as Rh}from"node:fs";import{basename as zr,dirname as Ae,join as be,sep as kt}from"node:path";import{rmSync as yh,statSync as kh}from"node:fs";import{join as sa}from"node:path";function oa(){return sa(A(),"shims")}function jr(){return sa(A(),"fail-open")}var bh=24*36e5;function fe(e=Date.now()){try{if(e-kh(jr()).mtimeMs<bh)return!0;yh(jr(),{force:!0})}catch{}return!1}function ia(){return`[ -f ${qe(jr())} ]`}function qe(e){return`'${e.replace(/'/g,"'\\''")}'`}function aa(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("'")}var ca=1,Zt="tkr-shim.stable",fa=/^(?:0|[1-9]\d{0,5})\.(?:0|[1-9]\d{0,5})\.(?:0|[1-9]\d{0,5})$/;function $h(){return be(A(),"bin","tkr-shim-launch")}function Ch(){return be(A(),"bin","tkr-run")}function ua(){return be($n(),"plugins","cache","tokmizer","tokmizer")}function Oh(e){let t=Ae(Ae(Ae(e)));return fa.test(zr(t))&&zr(Ae(t))==="tokmizer"?Ae(t):null}function Ur(e){return/[\n\r]/.test(e)||e.includes(`${kt}_npx${kt}`)||e.includes(`${kt}.bun${kt}install${kt}cache${kt}`)}function Br(e){let t=e.match(/^(.*)[\\/]Cellar[\\/]([^\\/]+)[\\/][^\\/]+[\\/](.*)$/);if(!t)return e;let n=be(t[1],"opt",t[2],t[3]);try{return la(n)===la(e)?n:e}catch{return e}}function Ih(e=process.execPath){return Ur(e)?"":Br(e)}function Nh(e,t=Te()){if(t&&gt(e)){let s=Mr();return{single:Ur(s)?"":Br(s),js:"",cache:ua(),node:""}}let n=Ih(),r=Oh(e);return r?{single:"",js:"",cache:r,node:n}:{single:"",js:Ur(e)?"":Br(e),cache:ua(),node:n}}function Ph(e){try{return _h(e,wh.X_OK),!0}catch{return!1}}function Dh(e){let t=null,n=-1,r;try{r=vh(e)}catch{return null}for(let s of r){if(!fa.test(s))continue;let o=be(e,s);if(!Cn(be(o,"dist","bin","tkr-shim.js"))||!Cn(be(o,"dist","bin",Zt)))continue;let[i,a,l]=s.split(".").map(Number),u=i*1e6+a*1e3+l;u>n&&(n=u,t=o)}return t}function Hr(e){return e.single&&Ph(e.single)||e.js&&Cn(e.js)&&(zr(e.js)!=="tkr-shim.js"||Cn(be(Ae(e.js),Zt)))?!0:e.cache!==""&&Dh(e.cache)!==null}function Lh(e,t){return["_tk_t=",`if [ -n "$_tk_j" ] && [ -f "${t}" ] && { [ "\${_tk_j##*/}" != tkr-shim.js ] || [ -f "\${_tk_j%/*}/${Zt}" ]; }; 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/${Zt}" ] || 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=${qe(oa())}`," 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/${Zt}" ] && [ -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 Fh(e){return["#!/bin/sh",`_tk_f=${ca}`,`_tk_s=${qe(e.single)}`,`_tk_j=${qe(e.js)}`,`_tk_k=${qe(e.cache)}`,`_tk_n=${qe(e.node)}`,'[ "$#" -gt 0 ] || exit 0',`if ! ${ia()}; then`,' if [ -n "$_tk_s" ] && [ -x "$_tk_s" ]; then exec "$_tk_s" exec "$@"; fi',...Lh("tkr-exec.js","${_tk_j%/*}/tkr-exec.js").map(t=>` ${t}`),' if [ -n "$_tk_t" ]; then'," _tk_r=${_tk_t%/*}",' if [ -f "$_tk_r/tkr-exec" ] && [ -s "$_tk_r/tkr-exec" ] && [ -x "$_tk_r/tkr-exec" ]; then exec "$_tk_r/tkr-exec" "$@"; fi',' if [ -n "$_tk_x" ] && [ -s "$_tk_t" ]; then exec "$_tk_x" "$_tk_t" "$@"; fi'," fi","fi",'exec "$@"',""].join(`
96
+ `)}function da(e){let t=Ch(),n=Nh(be(Ae(e),"tkr-shim.js")),r=jh(t);if(r&&r.format===ca&&Hr(r.target)&&JSON.stringify(r.target)===JSON.stringify(n))return t;if(!Hr(n))return r&&Hr(r.target)?t:null;let s=`${t}.${process.pid}.tmp`;try{return Sh(Ae(t),{recursive:!0,mode:448}),Rh(s,Fh(n),{mode:493}),xh(s,493),Th(s,t),t}catch{try{Ah(s)}catch{}return null}}function Mh(e){let t=a=>{let l=e.match(new RegExp(`^${a}=(.*)$`,"m"));return l?a==="_tk_f"?l[1]:aa(l[1]):null},n=Number(t("_tk_f")),r=t("_tk_s"),s=t("_tk_j"),o=t("_tk_k"),i=t("_tk_n")??"";return!Number.isInteger(n)||r===null||s===null||o===null?null:{format:n,target:{single:r,js:s,cache:o,node:i}}}function jh(e=$h()){try{return Mh(Eh(e,"utf8"))}catch{return null}}import{chmod as Hh,lstat as pa,mkdir as zh,readFile as Jr,rename as Uh,rm as dE,unlink as ma,writeFile as Bh}from"node:fs/promises";import{createHash as ha}from"node:crypto";import{basename as Zh,join as ga}from"node:path";var Jh=".tkr-bak";function ya(){return ga(A(),"backup","config")}function Zr(e){let t=Wr(e),n=ha("sha256").update(t).digest("hex").slice(0,16),r=Zh(t).replace(/[^A-Za-z0-9._-]/g,"_").slice(0,80);return ga(ya(),`${n}-${r}`)}function ka(e){return`${Zr(e)}.written`}function ba(e){return ha("sha256").update(e).digest("hex")}async function Gh(e){try{return await pa(e),!0}catch{return!1}}async function Gr(e,t){let n=`${e}.tmp-${process.pid}`;try{return await zh(ya(),{recursive:!0,mode:448}),await Bh(n,t,{mode:384}),await Hh(n,384),await Uh(n,e),!0}catch{return await ma(n).catch(()=>{}),!1}}async function Wh(e,t){let n=`${e}${Jh}`;try{if(!(await pa(n)).isFile())return!1}catch{return!1}let r=!await Gh(t);if(r&&!await Gr(t,await Jr(n,"utf8")))throw new Error("backup");return await ma(n).catch(()=>{}),r}async function Vh(e,t){try{return(await Jr(ka(e),"utf8")).trim()===ba(t)}catch{return!1}}async function _a(e,t){let n=t;try{n===void 0&&(n=await Jr(e,"utf8"))}catch(r){return r.code==="ENOENT"}try{if(await Wh(e,Zr(e)))return!0}catch{return!1}return await Vh(e,n)?!0:Gr(Zr(e),n)}async function On(e,t,n){return!await _a(e,n)||!await In(e,t)?!1:(await Gr(ka(e),`${ba(t)}
97
+ `),!0)}function D(e){return e!=null&&typeof e=="object"&&!Array.isArray(e)}async function Re(e){if(!tg(e))return{};try{let t=ee(await Kh(e,"utf8"));return D(t)?t:null}catch{return null}}function Wr(e){let t=wa(e);for(let n=0;n<32;n++){try{return xa(t)}catch{}try{if(!ng(t).isSymbolicLink())break;t=wa(Nn(t),rg(t))}catch{break}}try{return og(xa(Nn(t)),sg(t))}catch{return t}}async function In(e,t){let n=Wr(e),r=`${n}.tmp-${process.pid}`;try{await va(Nn(n),{recursive:!0});let s=384;try{s=(await Qh(n)).mode&511}catch{}return await qh(r,t,{mode:s}),await Xh(r,s),await Yh(r,n),!0}catch{try{await eg(r)}catch{}return!1}}async function $e(e,t){try{await va(Nn(e),{recursive:!0})}catch{return!1}return On(e,`${JSON.stringify(t,null,2)}
98
+ `)}function ig(e){let t=[],n="",r=!1;for(let s=0;s<e.length;s++){let o=e[s];if(o==="'"){let i=e.indexOf("'",s+1);if(i<0)return null;n+=e.slice(s+1,i),r=!0,s=i}else if(o==='"'){let i=e.indexOf('"',s+1);if(i<0)return null;let a=e.slice(s+1,i);if(/`|\$\(/.test(a))return null;n+=a,r=!0,s=i}else if(o==="\\"&&e[s+1]==="'")n+="'",r=!0,s++;else if(o===" "||o===" ")r&&t.push(n),n="",r=!1;else{if(o===";"||o==="&"||o==="|"||o==="`"||o===`
99
+ `||o==="\r"||o==="$"&&e[s+1]==="(")return null;n+=o,r=!0}}return r&&t.push(n),t}var ag=/^\s*\[ ! -[a-z] (?:'(?:[^']|'\\'')*'|"[^"]*") \] \|\| /,Sa=/^[A-Za-z_][A-Za-z0-9_]*=/;function Vr(e){return(e.split(/[\\/]/).pop()??"").toLowerCase().replace(/\.(?:exe|cmd|bat|ps1|m?js|sh)$/,"")}function lg(e){if(typeof e!="string")return null;let t=e.replace(ag,""),n=ig(t);if(!n)return null;let r=0;for(;r<n.length&&Sa.test(n[r]);)r++;if(n[r]==="exec"&&r++,r>=n.length||Sa.test(n[r]))return null;let s=Vr(n[r]),o=n.slice(r+1);if(s==="sh"||s==="bash"){let i=o[0]!==void 0?Vr(o[0]):"";return/^tkr-hook(?:-launch)?$/.test(i)?{program:i,args:o.slice(2),launcherMark:o[1]??""}:{program:s,args:o}}return s==="node"?{program:o[0]!==void 0?Vr(o[0]):"node",args:o.slice(1)}:{program:s,args:o}}function bt(e,t){let n=lg(e);if(!n)return!1;if(n.launcherMark!==void 0)return n.launcherMark===t;if(n.program===t)return!0;if(n.program!=="tkr")return!1;let r=gt(t);return r?.length?r.every((s,o)=>n.args[o]===s):!1}function Pn(e,t,n,r){let s=i=>i!==n&&t(i),o=!1;for(let i=e.length-1;i>=0;i--){let a=e[i];if(!r){s(a)&&(e.splice(i,1),o=!0);continue}if(!D(a)||!Array.isArray(a.hooks))continue;let l=a.hooks.filter(u=>!s(u));l.length!==a.hooks.length&&(o=!0,l.length?a.hooks=l:e.splice(i,1))}return o}var dg="tkr-cursor-hook",Ea="preToolUse";function pg(){return cg(fg.homedir(),".cursor","hooks.json")}function mg(e){return D(e)&&bt(e.command,dg)}function hg(e){let t=D(e.hooks)?e.hooks:{},n=Array.isArray(t[Ea])?t[Ea]:[];return{hooks:t,entries:n}}function Ta(){try{let e=ee(ug(pg(),"utf8"));return hg(e).entries.some(mg)}catch{return!1}}import{existsSync as FE,readFileSync as gg}from"node:fs";import{join as yg}from"node:path";import kg from"node:os";var bg="tkr-gemini-hook",Aa="BeforeTool";function _g(){return yg(process.env.GEMINI_CLI_HOME||kg.homedir(),".gemini","settings.json")}function xg(e){return D(e)&&bt(e.command,bg)}function wg(e){return(Array.isArray(e.hooks)?e.hooks:[]).find(xg)}function Sg(e){let t=D(e.hooks)?e.hooks:{},n=Array.isArray(t[Aa])?t[Aa]:[];return{hooks:t,groups:n}}function Ra(){try{let e=ee(gg(_g(),"utf8"));return Sg(e).groups.some(t=>wg(t)!=null)}catch{return!1}}import{dirname as dT,join as te}from"node:path";import Og from"node:os";import{existsSync as JE,accessSync as GE,constants as WE,readFileSync as vg}from"node:fs";var Eg='"rewrite", "--host"';function Tg(e){return e.includes(Eg)}function $a(e){try{return Tg(vg(e,"utf8"))}catch{return!1}}import{readFile as Oa,mkdir as Ag}from"node:fs/promises";import{existsSync as Yr,readFileSync as Ia}from"node:fs";import{dirname as Rg,join as qr}from"node:path";import Na from"node:os";var Pa="tokmizer-rewrite",Jt="tokmizer-rewrite";function Wt(){return qr(process.env.VIBE_HOME||qr(Na.homedir(),".vibe"),"hooks.toml")}function Ca(e){return JSON.stringify(e)}function $g(e){return["[[hooks]]",`name = ${Ca(Pa)}`,'type = "pre_tool"','match = "bash"',`command = ${Ca(e)}`,"timeout = 10.0","strict = false",'description = "Route shell commands through tokmizer."',""].join(`
100
+ `)}function Xr(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 Gt(e){return/^\s*\[\[hooks\]\]/.test(e)&&new RegExp(`^\\s*name\\s*=\\s*"${Pa}"\\s*$`,"m").test(e)}async function Da(e,t){try{await Ag(Rg(e),{recursive:!0})}catch{return!1}return On(e,t)}function La(){try{return Xr(Ia(Wt(),"utf8")).some(Gt)}catch{return!1}}async function Fa(e){let t=Wt(),n="";try{Yr(t)&&(n=await Oa(t,"utf8"))}catch{return"error"}let r=$g(e),s=Xr(n),o=s.filter(Gt);if(o.length===1&&o[0].trimEnd()===r.trimEnd())return"present";let i=s.filter(l=>!Gt(l)).join("").trimEnd(),a=i?`${i}
101
101
 
102
- ${r}`:r;return await Pa(t,a)?o.length?"updated":"added":"error"}async function Fa(){let e=Wt();if(!Yr(e))return"absent";let t;try{t=await Ca(e,"utf8")}catch{return"error"}let n=Xr(t);if(!n.some(Gt))return"absent";let r=n.filter(o=>!Gt(o)).join("").trimEnd(),s=r?`${r}
103
- `:"";return await Pa(e,s)?"removed":"error"}function Vt(){return qr(Ia.homedir(),".gemini","config","hooks.json")}function $g(e){return{enabled:!0,PreToolUse:[{matcher:"run_command",hooks:[{type:"command",command:e,timeout:10}]}]}}function Ma(){try{let e=ee(Oa(Vt(),"utf8"));return D(e)&&D(e[Jt])}catch{return!1}}async function ja(e){let t=Vt(),n=await Re(t);if(!n)return"error";let r=$g(e),s=n[Jt];return s!==void 0&&JSON.stringify(s)===JSON.stringify(r)?"present":(n[Jt]=r,await $e(t,n)?s===void 0?"added":"updated":"error")}async function Ha(){let e=Vt();if(!Yr(e))return"absent";let t=await Re(e);return t?Jt in t?(delete t[Jt],await $e(e,t)?"removed":"error"):"absent":"error"}var Kt=()=>Cg.homedir(),Qr=()=>process.env.XDG_CONFIG_HOME||te(Kt(),".config"),za=[{host:"opencode",label:"OpenCode",command:"setup-opencode",kind:"shim",files:()=>[{template:"opencode.js",target:te(Qr(),"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:te(Qr(),"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:te(Qr(),"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:Wt,installed:Da,ensure:La,remove:Fa,next:"Restart Vibe so it reads hooks.toml."},{host:"antigravity",label:"Antigravity",command:"setup-antigravity",kind:"hook",file:Vt,installed:Ma,ensure:ja,remove:Ha,next:"Restart Antigravity, then check it with /hooks."},{host:"openclaw",label:"OpenClaw",command:"setup-openclaw",kind:"shim",files:()=>{let e=te(Kt(),".openclaw","extensions","tokmizer");return["index.js","openclaw.plugin.json","package.json"].map(t=>({template:`openclaw/${t}`,target:te(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:te(process.env.PI_CODING_AGENT_DIR||te(Kt(),".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:te(Kt(),".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=te(process.env.HERMES_HOME||te(Kt(),".hermes"),"plugins","tokmizer");return["__init__.py","plugin.yaml"].map(t=>({template:`hermes/${t}`,target:te(e,t)}))},next:"Run: hermes plugins enable tokmizer, then restart Hermes (needs Hermes v2026.8.16 or newer)."}];function Ua(e){return e.kind==="hook"?e.installed():Ra(e.files()[0].target)}import{existsSync as rs,readFileSync as Lg}from"node:fs";import{join as U}from"node:path";import Fg from"node:os";import{existsSync as Og,readFileSync as Ig}from"node:fs";function Dn(e,t){return D(e)&&bt(e.command,t)}function Ba(e){return e.path??(e.nested?["hooks"]:[])}function Za(e,t){let n=e;for(let r of Ba(t))D(n[r])||(n[r]={}),n=n[r];return n}function Ja(e,t){let n=e;for(let s of Ba(t))n=D(n)?n[s]:void 0;if(!D(n))return[];let r=n[t.event];return Array.isArray(r)?r:[]}function Ng(e){return D(e)&&Array.isArray(e.hooks)?e.hooks:[]}function Ga(e,t){return(t.matcher===void 0?e:e.flatMap(Ng)).filter(r=>Dn(r,t.mark))}function Wa(e,t){return Ga(Ja(e,t),t).length>0}function es(e,t){try{let n=ee(Ig(e,"utf8"));return D(n)&&Wa(n,t)}catch{return!1}}function Pg(e,t,n){let r=Za(e,t),s=Array.isArray(r[t.event])?r[t.event]:[];r[t.event]=s;let o=Ga(s,t)[0],i=t.entry(n);if(o){let a=Pn(s,u=>Dn(u,t.mark),o,t.matcher!==void 0),l=Object.entries(i).filter(([u,c])=>JSON.stringify(o[u])!==JSON.stringify(c));if(!l.length&&!a)return"present";for(let[u,c]of l)o[u]=c;return"updated"}return s.push(t.matcher===void 0?i:{matcher:t.matcher,hooks:[i]}),"added"}function Dg(e,t){if(!Wa(e,t))return!1;let n=Za(e,t),r=Ja(e,t),s=t.matcher===void 0?r.filter(o=>!Dn(o,t.mark)):r.map(o=>D(o)&&Array.isArray(o.hooks)?{...o,hooks:o.hooks.filter(i=>!Dn(i,t.mark))}:o).filter(o=>!D(o)||!Array.isArray(o.hooks)||o.hooks.length>0);return s.length?n[t.event]=s:delete n[t.event],!0}async function ts(e,t,n){let r=await Re(e);if(!r||t.prepare&&!t.prepare(r))return"error";let s=Pg(r,t,n);return s==="present"||await $e(e,r)?s:"error"}async function Ln(e,t){if(!Og(e))return"absent";let n=await Re(e);return n?Dg(n,t)?await $e(e,n)?"removed":"error":"absent":"error"}function de(){return Fg.homedir()}function Ya(e){return e.version===void 0&&(e.version=1),e.version===1}function Mg(e,t,n){return Promise.all(e.map(r=>ts(r,t,n))).then(r=>r.includes("error")?"error":r.includes("updated")?"updated":r.includes("added")?"added":"present")}function jg(e,t){return Promise.all(e.map(n=>Ln(n,t))).then(n=>n.includes("error")?"error":n.includes("removed")?"removed":"absent")}function Ye(e,t){return{...e,installed:()=>e.files().some(n=>es(n,t)),ensure:n=>Mg(e.files(),t,n),remove:()=>jg(e.files(),t)}}var Hg={mark:"tkr-copilot-hook",event:"PreToolUse",nested:!0,entry:e=>({type:"command",command:e,bash:e,powershell:e,timeout:10,timeoutSec:10}),prepare:Ya};function zg(){return U(process.env.COPILOT_HOME||U(de(),".copilot"),"hooks","tokmizer.json")}var Ug={mark:"tkr-trae-hook",event:"PreToolUse",nested:!0,matcher:"RunCommand",entry:e=>({type:"command",command:e,timeout:30}),prepare:Ya};function Bg(){let e=[U(de(),".trae","hooks.json")];return rs(U(de(),".trae-cn"))&&e.push(U(de(),".trae-cn","hooks.json")),e}var Zg={mark:"tkr-qwen-hook",event:"PreToolUse",nested:!0,matcher:"run_shell_command",entry:e=>({name:"tokmizer",type:"command",command:e,timeout:10})};function Jg(){return U(process.env.QWEN_HOME||U(de(),".qwen"),"settings.json")}var Gg={mark:"tkr-crush-hook",event:"PreToolUse",nested:!0,entry:e=>({name:"tokmizer",matcher:"^bash$",command:e,timeout:10})};function Wg(){return U(process.env.XDG_CONFIG_HOME||U(de(),".config"),"crush","crush.json")}var Vg={mark:"tkr-junie-hook",event:"PreToolUse",nested:!0,matcher:"^Bash$",entry:e=>({type:"command",command:e,timeout:10})};function Kg(){return U(de(),".junie","config.json")}function qg(e){return e.hooks===void 0&&(e.hooks={}),D(e.hooks)?(e.hooks.enabled===void 0&&(e.hooks.enabled=!0),e.hooks.events===void 0||D(e.hooks.events)):!1}var Yg={mark:"tkr-zcode-hook",event:"PreToolUse",nested:!0,path:["hooks","events"],matcher:"Bash",entry:e=>({type:"command",command:e,timeoutMs:1e4}),prepare:qg};function Xg(){return U(de(),".zcode","cli","config.json")}var Qg={mark:"tkr-grok-hook",event:"PreToolUse",nested:!0,matcher:"Bash",entry:e=>({type:"command",command:e,timeout:10})};function ey(){return U(de(),".grok","hooks","tokmizer.json")}var ty="tkr-droid-hook",ss={mark:ty,event:"PreToolUse",nested:!1,matcher:"Execute",entry:e=>({type:"command",command:e,timeout:10})},ny={...ss,nested:!0};function ns(){return U(de(),".factory")}function Fn(){return[{file:U(ns(),"hooks.json"),spec:ss},{file:U(ns(),"hooks","hooks.json"),spec:ss},{file:U(ns(),"settings.json"),spec:ny}]}function Va(e){try{let t=JSON.parse(Lg(e,"utf8"));return D(t)?t:null}catch{return null}}function Ka(e,t){let n=t?e?.hooks:e;return D(n)&&Array.isArray(n.PreToolUse)&&n.PreToolUse.length>0}function qa(){let[e,t,n]=Fn(),r=rs(e.file)?e:rs(t.file)?t:null;return r&&Ka(Va(r.file),!1)?r:Ka(Va(n.file),!0)?n:r??e}var ry={id:"droid",label:"Factory Droid",setup:"tkr setup-droid",bin:"tkr-droid-hook",restart:"Restart Droid, then check it with /hooks.",files:()=>[qa().file],installed:()=>Fn().some(e=>es(e.file,e.spec)),ensure:async e=>{let t=qa(),n=await ts(t.file,t.spec,e);return n==="error"||await Promise.all(Fn().filter(r=>r.file!==t.file).map(r=>Ln(r.file,r.spec))),n},remove:async()=>{let e=await Promise.all(Fn().map(t=>Ln(t.file,t.spec)));return e.includes("error")?"error":e.includes("removed")?"removed":"absent"}},Xa=[Ye({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:()=>[zg()]},Hg),ry,Ye({id:"trae",label:"Trae",setup:"tkr setup-trae",bin:"tkr-trae-hook",restart:"Restart Trae so it loads the new hook.",files:Bg},Ug),Ye({id:"qwen-code",label:"Qwen Code",setup:"tkr setup-qwen",bin:"tkr-qwen-hook",restart:"Restart Qwen Code, then check it with /hooks.",files:()=>[Jg()]},Zg),Ye({id:"crush",label:"Crush",setup:"tkr setup-crush",bin:"tkr-crush-hook",restart:"Restart Crush so it loads the new hook.",files:()=>[Wg()]},Gg),Ye({id:"junie",label:"Junie CLI",setup:"tkr setup-junie",bin:"tkr-junie-hook",restart:"Restart Junie CLI so it loads the new hook.",files:()=>[Kg()]},Vg),Ye({id:"zcode",label:"ZCode",setup:"tkr setup-zcode",bin:"tkr-zcode-hook",restart:"Restart ZCode so it loads the new hook.",files:()=>[Xg()]},Yg),Ye({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:()=>[ey()]},Qg)];var sy=[{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:[]}],OT=[...sy.map(e=>e.host),"shell"];var IT={cursor:{installed:Ea,setup:"tkr setup-cursor"},"gemini-cli":{installed:Aa,setup:"tkr setup-gemini"},...Object.fromEntries(za.map(e=>[e.host,{installed:()=>Ua(e),setup:`tkr ${e.command}`}])),...Object.fromEntries(Xa.map(e=>[e.id,{installed:e.installed,setup:e.setup}]))};function Qa(e){return null}import{createConnection as ky}from"node:net";import{spawn as by}from"node:child_process";import{existsSync as il,openSync as ls,closeSync as sl,unlinkSync as cs,writeFileSync as fs,mkdirSync as ds,readFileSync as _y,appendFileSync as xy,rmSync as wy,statSync as Sy}from"node:fs";import{dirname as vy,join as ps}from"node:path";import{fileURLToPath as Ey}from"node:url";var oy=k.object({id:k.string().min(1).max(64),op:k.literal("filter"),cmd:k.string().min(1).max(2048),plan:k.enum(["trial","smart","pro"]),allowed:k.array(k.string().min(1).max(64)).max(512).optional(),installId:k.string().min(1).max(64).optional()}),iy=k.object({id:k.string().min(1).max(64),op:k.literal("ping")}),ay=k.object({id:k.string().min(1).max(64),op:k.literal("shutdown"),installId:k.string().min(1).max(64)}),ly=k.object({id:k.string().min(1).max(64),op:k.literal("reload"),installId:k.string().min(1).max(64).optional()}),LT=k.discriminatedUnion("op",[oy,iy,ay,ly]),FT=k.object({id:k.string(),ok:k.literal(!0),data:k.unknown()}),MT=k.object({id:k.string(),ok:k.literal(!1),err:k.string(),retryAfterMs:k.number().int().nonnegative().optional()}),el=k.object({filter:Ee.nullable(),cacheHit:k.boolean().optional()}),Mn=`
104
- `,jT=64*1024;function os(e){return JSON.stringify(e)+Mn}function*tl(e){let t=0;for(;;){let n=e.indexOf(Mn,t);if(n<0)return;yield e.slice(t,n),t=n+1}}function qt(){return`${process.pid}-${Date.now()}-${Math.random().toString(36).slice(2,8)}`}import uy from"node:os";import{join as Yt}from"node:path";import{existsSync as cy,statSync as fy,lstatSync as nl,unlinkSync as dy,mkdirSync as py,chmodSync as my}from"node:fs";import{createHash as hy}from"node:crypto";var is=100;function gy(e){let t=hy("sha256").update(A()).digest("hex").slice(0,8),n=Yt(uy.tmpdir(),`tkr-${e}-${t}`),r=Yt(n,"d.sock");if(Buffer.byteLength(r)>is)throw new Error("Temporary directory path is too long for IPC");return rl(n,e),r}function yy(e,t){try{let n=nl(e);return n.isDirectory()&&n.uid===t&&(n.mode&63)===0}catch{return!1}}function rl(e,t){py(e,{recursive:!0,mode:448});let n=nl(e);if(!n.isDirectory()||n.uid!==t)throw new Error("Unsafe IPC directory");my(e,448)}function Xt(){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&&yy(t,e)){let s=Yt(t,`tokmizer-${e}.sock`);if(Buffer.byteLength(s)<=is)return{path:s,isPipe:!1}}let n=Yt(A(),"run"),r=Yt(n,"daemon.sock");return Buffer.byteLength(r)>is?{path:gy(e),isPipe:!1}:(rl(n,e),{path:r,isPipe:!1})}async function as(){let{path:e,isPipe:t}=Xt();if(t||!cy(e))return;try{if(!fy(e).isSocket())return}catch{return}let n=await import("node:net");if(!await new Promise(s=>{let o=n.createConnection(e),i=a=>{o.removeAllListeners();try{o.destroy()}catch{}s(a)};o.once("connect",()=>i(!0)),o.once("error",a=>{let l=a.code;i(l!=="ECONNREFUSED"&&l!=="ENOENT")}),setTimeout(()=>i(!0),250)}))try{dy(e)}catch{}}var GT=5*6e4;var al=500,Ty=3e3,ol=1,Ay=6e4,Ry=256*1024;function ms(){return ps(A(),"daemon.spawn.fail")}function hs(){return ps(A(),"daemon.log")}function $y(){try{let e=Number(_y(ms(),"utf8"));return Number.isFinite(e)&&Date.now()-e<Ay}catch{return!1}}function Cy(e){try{ds(A(),{recursive:!0});let t=hs();try{Sy(t).size>Ry&&cs(t)}catch{}xy(t,`${new Date().toISOString()} ${e}
105
- `)}catch{}}function Oy(e){try{ds(A(),{recursive:!0}),fs(ms(),String(Date.now()))}catch{}Cy(`spawn failed: ${e.message}`)}function Iy(){try{wy(ms(),{force:!0})}catch{}}async function jn(e,t){return new Promise((n,r)=>{let s=ky(e),o=a=>{if(s.removeAllListeners("connect"),s.removeAllListeners("error"),clearTimeout(i),a){try{s.destroy()}catch{}r(a)}else n(s)},i=setTimeout(()=>o(new Error("connect timeout")),t);s.once("connect",()=>o(null)),s.once("error",a=>o(a))})}function Ny(){return process.env.TOKMIZER_DAEMON_BIN?process.env.TOKMIZER_DAEMON_BIN:Ey(new URL("../bin/tkr-daemon.js",import.meta.url))}async function us(e,t=3e3){let n=Math.ceil(t/75),r=process.platform==="win32";for(let s=0;s<n;s++){if(r)try{return(await jn(e,75)).destroy(),!0}catch{}else if(il(e))return!0;await new Promise(o=>setTimeout(o,75))}return!1}async function Py(e){let t=Ny();if(!Te()&&!il(t))throw new Error(`tkr-daemon binary not found at ${t}`);let{path:n}=Xt(),r=process.platform==="win32"?A():vy(n);try{ds(r,{recursive:!0})}catch{}let s=ps(r,"daemon.spawn.lock"),o=null;try{o=ls(s,"wx"),fs(o,String(process.pid))}catch(i){if(i.code==="EEXIST"){if(await us(n,5e3))return;try{cs(s)}catch{}try{o=ls(s,"wx"),fs(o,String(process.pid))}catch(l){if(l.code==="EEXIST"){await us(n,5e3);return}throw l}}else throw i}try{let i=null;try{i=ls(hs(),"a")}catch{}let[a,...l]=Fr(t);if(by(a,l,{detached:!0,stdio:["ignore","ignore",i??"ignore"],env:{...process.env,TOKMIZER_DAEMON_INSTALL_ID:e}}).unref(),i!==null)try{sl(i)}catch{}if(!await us(n,3e3))throw new Error("tkr-daemon failed to bind socket within 3s")}finally{if(o!==null){try{sl(o)}catch{}try{cs(s)}catch{}}}}async function Dy(e={}){let{path:t}=e.socketPath?{path:e.socketPath}:Xt(),n=await Ir();try{let r=await jn(t,al);r.write(os({id:qt(),op:"shutdown",installId:n})),await new Promise(s=>setTimeout(s,150));try{r.destroy()}catch{}return!0}catch{return!1}}async function Ly(e,t){let n=Date.now()+t;for(;Date.now()<n;){try{(await jn(e,250)).destroy()}catch{return!0}await new Promise(r=>setTimeout(r,100))}return!1}async function gs(e={}){let{path:t}=e.socketPath?{path:e.socketPath}:Xt(),n=await Ir(),r=null,s=0,o=!1;for(;s<=ol;)try{r=await jn(t,al),Iy();break}catch{if(s+=1,s>ol)throw new Error(`tkr-daemon unreachable at ${t}`);if($y())throw new Error(`tkr-daemon spawn on cooldown (see ${hs()})`);await as();try{await Py(n),o=!0}catch(c){throw Oy(c),c}}if(!r)throw new Error("tkr-daemon: socket setup failed");let i=new Map,a="";r.setEncoding("utf8"),r.on("data",c=>{a+=c;let f=-1;for(let p=0;p<a.length;p++)a[p]===Mn&&(f=p);if(f<0)return;let d=[];for(let p of tl(a.slice(0,f+1)))d.push(p);a=a.slice(f+1);for(let p of d)if(p)try{let h=JSON.parse(p),y=i.get(h.id);if(!y)continue;clearTimeout(y.timer),i.delete(h.id),y.resolve(h)}catch{}}),r.on("close",()=>{for(let c of i.values())clearTimeout(c.timer),c.reject(new Error("daemon socket closed"));i.clear()}),r.on("error",()=>{});function l(c){return new Promise((f,d)=>{if(r.destroyed||!r.writable){d(new Error("daemon socket closed"));return}let p=setTimeout(()=>{i.delete(c.id),d(new Error(`daemon request timeout (${c.op})`))},Ty);i.set(c.id,{resolve:f,reject:d,timer:p}),r.write(os(c))})}let u={filter:async(c,f,d)=>{let p=await l({id:qt(),op:"filter",cmd:c.slice(0,2048),plan:f,...d&&d.length>0?{allowed:d.slice(0,512)}:{},installId:n});if(!p.ok)return null;let h=el.safeParse(p.data);return h.success?h.data.filter:null},ping:async()=>{let c=await l({id:qt(),op:"ping"});if(!c.ok)throw new Error(c.err);return c.data},reload:async()=>{let c=await l({id:qt(),op:"reload",installId:n});if(!c.ok)throw new Error(c.err);return c.data},close:()=>{try{r.destroy()}catch{}}};if(!e.skipVersionCheck&&!o){let c=!1;try{let f=await u.ping();if(f.version&&gi(zt,f.version))throw new Error(`newer daemon ${f.version} already running`);c=f.version!==zt}catch(f){throw u.close(),f}if(c){try{await Dy(e.socketPath?{socketPath:e.socketPath}:{})}catch{}u.close();let f=await Ly(t,2e3);if(await as(),!f)throw new Error("stale daemon still running after shutdown request");return gs({...e,skipVersionCheck:!0})}}return u}var _t=null,Qt=null;async function Fy(){if(_t)return _t;if(Qt)return Qt;let e=gs().then(t=>{if(Qt===e)return _t=t,t;try{t.close()}catch{}return null}).catch(()=>null);return Qt=e,e}var ys=null,ks=!1;async function My(){return ks||(ks=!0,ys=await _i()??En()),ys}async function ll(e,t,n){let r=await My();if(!r)return null;let s=r.selectFor(e,t,n?[...n]:void 0);return!s||n&&!n.has(X(s.slug))?null:s}function jy(e){return e?{...e,matchRegex:new RegExp(e.match_command)}:null}function ul(e){Cr(async(t,n)=>{let r=e==="free"?"trial":e,s=n??Tn(void 0),o=await Fy();if(!o)return ll(t,r,s);try{let i=await o.filter(t,r,s?[...s]:void 0);return!i||s&&!s.has(X(i.slug))?null:jy(i)}catch{return ll(t,r,s)}})}function cl(){if(Cr(null),_t)try{_t.close()}catch{}_t=null,Qt=null,ys=null,ks=!1}import{readFileSync as Hy}from"node:fs";import{join as zy}from"node:path";function fl(){try{return Hy(zy(A(),"yolo-mode"),"utf8")==="on"}catch{return!1}}import{appendFileSync as Gy,chmodSync as Wy,mkdirSync as Vy,existsSync as Ky,readFileSync as _A,rmSync as xA}from"node:fs";import{dirname as qy,join as Yy}from"node:path";import{readFileSync as Uy,renameSync as By,statSync as Zy,writeFileSync as Jy}from"node:fs";function dl(e,t,n){try{if(Zy(e).size<=t)return;let r=Uy(e,"utf8").split(`
106
- `).filter(a=>a.trim()!==""),s=[],o=0;for(let a=r.length-1;a>=0;a-=1){let l=r[a],u=Buffer.byteLength(l)+1;if(o+u>n)break;s.push(l),o+=u}s.reverse();let i=`${e}.tmp-${process.pid}`;Jy(i,s.length?`${s.join(`
102
+ ${r}`:r;return await Da(t,a)?o.length?"updated":"added":"error"}async function Ma(){let e=Wt();if(!Yr(e))return"absent";let t;try{t=await Oa(e,"utf8")}catch{return"error"}let n=Xr(t);if(!n.some(Gt))return"absent";let r=n.filter(o=>!Gt(o)).join("").trimEnd(),s=r?`${r}
103
+ `:"";return await Da(e,s)?"removed":"error"}function Vt(){return qr(Na.homedir(),".gemini","config","hooks.json")}function Cg(e){return{enabled:!0,PreToolUse:[{matcher:"run_command",hooks:[{type:"command",command:e,timeout:10}]}]}}function ja(){try{let e=ee(Ia(Vt(),"utf8"));return D(e)&&D(e[Jt])}catch{return!1}}async function Ha(e){let t=Vt(),n=await Re(t);if(!n)return"error";let r=Cg(e),s=n[Jt];return s!==void 0&&JSON.stringify(s)===JSON.stringify(r)?"present":(n[Jt]=r,await $e(t,n)?s===void 0?"added":"updated":"error")}async function za(){let e=Vt();if(!Yr(e))return"absent";let t=await Re(e);return t?Jt in t?(delete t[Jt],await $e(e,t)?"removed":"error"):"absent":"error"}var Kt=()=>Og.homedir(),Qr=()=>process.env.XDG_CONFIG_HOME||te(Kt(),".config"),Ua=[{host:"opencode",label:"OpenCode",command:"setup-opencode",kind:"shim",files:()=>[{template:"opencode.js",target:te(Qr(),"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:te(Qr(),"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:te(Qr(),"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:Wt,installed:La,ensure:Fa,remove:Ma,next:"Restart Vibe so it reads hooks.toml."},{host:"antigravity",label:"Antigravity",command:"setup-antigravity",kind:"hook",file:Vt,installed:ja,ensure:Ha,remove:za,next:"Restart Antigravity, then check it with /hooks."},{host:"openclaw",label:"OpenClaw",command:"setup-openclaw",kind:"shim",files:()=>{let e=te(Kt(),".openclaw","extensions","tokmizer");return["index.js","openclaw.plugin.json","package.json"].map(t=>({template:`openclaw/${t}`,target:te(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:te(process.env.PI_CODING_AGENT_DIR||te(Kt(),".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:te(Kt(),".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=te(process.env.HERMES_HOME||te(Kt(),".hermes"),"plugins","tokmizer");return["__init__.py","plugin.yaml"].map(t=>({template:`hermes/${t}`,target:te(e,t)}))},next:"Run: hermes plugins enable tokmizer, then restart Hermes (needs Hermes v2026.8.16 or newer)."}];function Ba(e){return e.kind==="hook"?e.installed():$a(e.files()[0].target)}import{existsSync as rs,readFileSync as Fg}from"node:fs";import{join as U}from"node:path";import Mg from"node:os";import{existsSync as Ig,readFileSync as Ng}from"node:fs";function Dn(e,t){return D(e)&&bt(e.command,t)}function Za(e){return e.path??(e.nested?["hooks"]:[])}function Ja(e,t){let n=e;for(let r of Za(t))D(n[r])||(n[r]={}),n=n[r];return n}function Ga(e,t){let n=e;for(let s of Za(t))n=D(n)?n[s]:void 0;if(!D(n))return[];let r=n[t.event];return Array.isArray(r)?r:[]}function Pg(e){return D(e)&&Array.isArray(e.hooks)?e.hooks:[]}function Wa(e,t){return(t.matcher===void 0?e:e.flatMap(Pg)).filter(r=>Dn(r,t.mark))}function Va(e,t){return Wa(Ga(e,t),t).length>0}function es(e,t){try{let n=ee(Ng(e,"utf8"));return D(n)&&Va(n,t)}catch{return!1}}function Dg(e,t,n){let r=Ja(e,t),s=Array.isArray(r[t.event])?r[t.event]:[];r[t.event]=s;let o=Wa(s,t)[0],i=t.entry(n);if(o){let a=Pn(s,u=>Dn(u,t.mark),o,t.matcher!==void 0),l=Object.entries(i).filter(([u,c])=>JSON.stringify(o[u])!==JSON.stringify(c));if(!l.length&&!a)return"present";for(let[u,c]of l)o[u]=c;return"updated"}return s.push(t.matcher===void 0?i:{matcher:t.matcher,hooks:[i]}),"added"}function Lg(e,t){if(!Va(e,t))return!1;let n=Ja(e,t),r=Ga(e,t),s=t.matcher===void 0?r.filter(o=>!Dn(o,t.mark)):r.map(o=>D(o)&&Array.isArray(o.hooks)?{...o,hooks:o.hooks.filter(i=>!Dn(i,t.mark))}:o).filter(o=>!D(o)||!Array.isArray(o.hooks)||o.hooks.length>0);return s.length?n[t.event]=s:delete n[t.event],!0}async function ts(e,t,n){let r=await Re(e);if(!r||t.prepare&&!t.prepare(r))return"error";let s=Dg(r,t,n);return s==="present"||await $e(e,r)?s:"error"}async function Ln(e,t){if(!Ig(e))return"absent";let n=await Re(e);return n?Lg(n,t)?await $e(e,n)?"removed":"error":"absent":"error"}function de(){return Mg.homedir()}function Xa(e){return e.version===void 0&&(e.version=1),e.version===1}function jg(e,t,n){return Promise.all(e.map(r=>ts(r,t,n))).then(r=>r.includes("error")?"error":r.includes("updated")?"updated":r.includes("added")?"added":"present")}function Hg(e,t){return Promise.all(e.map(n=>Ln(n,t))).then(n=>n.includes("error")?"error":n.includes("removed")?"removed":"absent")}function Ye(e,t){return{...e,installed:()=>e.files().some(n=>es(n,t)),ensure:n=>jg(e.files(),t,n),remove:()=>Hg(e.files(),t)}}var zg={mark:"tkr-copilot-hook",event:"PreToolUse",nested:!0,entry:e=>({type:"command",command:e,bash:e,powershell:e,timeout:10,timeoutSec:10}),prepare:Xa};function Ug(){return U(process.env.COPILOT_HOME||U(de(),".copilot"),"hooks","tokmizer.json")}var Bg={mark:"tkr-trae-hook",event:"PreToolUse",nested:!0,matcher:"RunCommand",entry:e=>({type:"command",command:e,timeout:30}),prepare:Xa};function Zg(){let e=[U(de(),".trae","hooks.json")];return rs(U(de(),".trae-cn"))&&e.push(U(de(),".trae-cn","hooks.json")),e}var Jg={mark:"tkr-qwen-hook",event:"PreToolUse",nested:!0,matcher:"run_shell_command",entry:e=>({name:"tokmizer",type:"command",command:e,timeout:10})};function Gg(){return U(process.env.QWEN_HOME||U(de(),".qwen"),"settings.json")}var Wg={mark:"tkr-crush-hook",event:"PreToolUse",nested:!0,entry:e=>({name:"tokmizer",matcher:"^bash$",command:e,timeout:10})};function Vg(){return U(process.env.XDG_CONFIG_HOME||U(de(),".config"),"crush","crush.json")}var Kg={mark:"tkr-junie-hook",event:"PreToolUse",nested:!0,matcher:"^Bash$",entry:e=>({type:"command",command:e,timeout:10})};function qg(){return U(de(),".junie","config.json")}function Yg(e){return e.hooks===void 0&&(e.hooks={}),D(e.hooks)?(e.hooks.enabled===void 0&&(e.hooks.enabled=!0),e.hooks.events===void 0||D(e.hooks.events)):!1}var Xg={mark:"tkr-zcode-hook",event:"PreToolUse",nested:!0,path:["hooks","events"],matcher:"Bash",entry:e=>({type:"command",command:e,timeoutMs:1e4}),prepare:Yg};function Qg(){return U(de(),".zcode","cli","config.json")}var ey={mark:"tkr-grok-hook",event:"PreToolUse",nested:!0,matcher:"Bash",entry:e=>({type:"command",command:e,timeout:10})};function ty(){return U(de(),".grok","hooks","tokmizer.json")}var ny="tkr-droid-hook",ss={mark:ny,event:"PreToolUse",nested:!1,matcher:"Execute",entry:e=>({type:"command",command:e,timeout:10})},ry={...ss,nested:!0};function ns(){return U(de(),".factory")}function Fn(){return[{file:U(ns(),"hooks.json"),spec:ss},{file:U(ns(),"hooks","hooks.json"),spec:ss},{file:U(ns(),"settings.json"),spec:ry}]}function Ka(e){try{let t=JSON.parse(Fg(e,"utf8"));return D(t)?t:null}catch{return null}}function qa(e,t){let n=t?e?.hooks:e;return D(n)&&Array.isArray(n.PreToolUse)&&n.PreToolUse.length>0}function Ya(){let[e,t,n]=Fn(),r=rs(e.file)?e:rs(t.file)?t:null;return r&&qa(Ka(r.file),!1)?r:qa(Ka(n.file),!0)?n:r??e}var sy={id:"droid",label:"Factory Droid",setup:"tkr setup-droid",bin:"tkr-droid-hook",restart:"Restart Droid, then check it with /hooks.",files:()=>[Ya().file],installed:()=>Fn().some(e=>es(e.file,e.spec)),ensure:async e=>{let t=Ya(),n=await ts(t.file,t.spec,e);return n==="error"||await Promise.all(Fn().filter(r=>r.file!==t.file).map(r=>Ln(r.file,r.spec))),n},remove:async()=>{let e=await Promise.all(Fn().map(t=>Ln(t.file,t.spec)));return e.includes("error")?"error":e.includes("removed")?"removed":"absent"}},Qa=[Ye({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:()=>[Ug()]},zg),sy,Ye({id:"trae",label:"Trae",setup:"tkr setup-trae",bin:"tkr-trae-hook",restart:"Restart Trae so it loads the new hook.",files:Zg},Bg),Ye({id:"qwen-code",label:"Qwen Code",setup:"tkr setup-qwen",bin:"tkr-qwen-hook",restart:"Restart Qwen Code, then check it with /hooks.",files:()=>[Gg()]},Jg),Ye({id:"crush",label:"Crush",setup:"tkr setup-crush",bin:"tkr-crush-hook",restart:"Restart Crush so it loads the new hook.",files:()=>[Vg()]},Wg),Ye({id:"junie",label:"Junie CLI",setup:"tkr setup-junie",bin:"tkr-junie-hook",restart:"Restart Junie CLI so it loads the new hook.",files:()=>[qg()]},Kg),Ye({id:"zcode",label:"ZCode",setup:"tkr setup-zcode",bin:"tkr-zcode-hook",restart:"Restart ZCode so it loads the new hook.",files:()=>[Qg()]},Xg),Ye({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:()=>[ty()]},ey)];var oy=[{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:[]}],IT=[...oy.map(e=>e.host),"shell"];var NT={cursor:{installed:Ta,setup:"tkr setup-cursor"},"gemini-cli":{installed:Ra,setup:"tkr setup-gemini"},...Object.fromEntries(Ua.map(e=>[e.host,{installed:()=>Ba(e),setup:`tkr ${e.command}`}])),...Object.fromEntries(Qa.map(e=>[e.id,{installed:e.installed,setup:e.setup}]))};function el(e){return null}import{createConnection as by}from"node:net";import{spawn as _y}from"node:child_process";import{existsSync as al,openSync as ls,closeSync as ol,unlinkSync as cs,writeFileSync as fs,mkdirSync as ds,readFileSync as xy,appendFileSync as wy,rmSync as Sy,statSync as vy}from"node:fs";import{dirname as Ey,join as ps}from"node:path";import{fileURLToPath as Ty}from"node:url";var iy=k.object({id:k.string().min(1).max(64),op:k.literal("filter"),cmd:k.string().min(1).max(2048),plan:k.enum(["trial","smart","pro"]),allowed:k.array(k.string().min(1).max(64)).max(512).optional(),installId:k.string().min(1).max(64).optional()}),ay=k.object({id:k.string().min(1).max(64),op:k.literal("ping")}),ly=k.object({id:k.string().min(1).max(64),op:k.literal("shutdown"),installId:k.string().min(1).max(64)}),uy=k.object({id:k.string().min(1).max(64),op:k.literal("reload"),installId:k.string().min(1).max(64).optional()}),FT=k.discriminatedUnion("op",[iy,ay,ly,uy]),MT=k.object({id:k.string(),ok:k.literal(!0),data:k.unknown()}),jT=k.object({id:k.string(),ok:k.literal(!1),err:k.string(),retryAfterMs:k.number().int().nonnegative().optional()}),tl=k.object({filter:Ee.nullable(),cacheHit:k.boolean().optional()}),Mn=`
104
+ `,HT=64*1024;function os(e){return JSON.stringify(e)+Mn}function*nl(e){let t=0;for(;;){let n=e.indexOf(Mn,t);if(n<0)return;yield e.slice(t,n),t=n+1}}function qt(){return`${process.pid}-${Date.now()}-${Math.random().toString(36).slice(2,8)}`}import cy from"node:os";import{join as Yt}from"node:path";import{existsSync as fy,statSync as dy,lstatSync as rl,unlinkSync as py,mkdirSync as my,chmodSync as hy}from"node:fs";import{createHash as gy}from"node:crypto";var is=100;function yy(e){let t=gy("sha256").update(A()).digest("hex").slice(0,8),n=Yt(cy.tmpdir(),`tkr-${e}-${t}`),r=Yt(n,"d.sock");if(Buffer.byteLength(r)>is)throw new Error("Temporary directory path is too long for IPC");return sl(n,e),r}function ky(e,t){try{let n=rl(e);return n.isDirectory()&&n.uid===t&&(n.mode&63)===0}catch{return!1}}function sl(e,t){my(e,{recursive:!0,mode:448});let n=rl(e);if(!n.isDirectory()||n.uid!==t)throw new Error("Unsafe IPC directory");hy(e,448)}function Xt(){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&&ky(t,e)){let s=Yt(t,`tokmizer-${e}.sock`);if(Buffer.byteLength(s)<=is)return{path:s,isPipe:!1}}let n=Yt(A(),"run"),r=Yt(n,"daemon.sock");return Buffer.byteLength(r)>is?{path:yy(e),isPipe:!1}:(sl(n,e),{path:r,isPipe:!1})}async function as(){let{path:e,isPipe:t}=Xt();if(t||!fy(e))return;try{if(!dy(e).isSocket())return}catch{return}let n=await import("node:net");if(!await new Promise(s=>{let o=n.createConnection(e),i=a=>{o.removeAllListeners();try{o.destroy()}catch{}s(a)};o.once("connect",()=>i(!0)),o.once("error",a=>{let l=a.code;i(l!=="ECONNREFUSED"&&l!=="ENOENT")}),setTimeout(()=>i(!0),250)}))try{py(e)}catch{}}var WT=5*6e4;var ll=500,Ay=3e3,il=1,Ry=6e4,$y=256*1024;function ms(){return ps(A(),"daemon.spawn.fail")}function hs(){return ps(A(),"daemon.log")}function Cy(){try{let e=Number(xy(ms(),"utf8"));return Number.isFinite(e)&&Date.now()-e<Ry}catch{return!1}}function Oy(e){try{ds(A(),{recursive:!0});let t=hs();try{vy(t).size>$y&&cs(t)}catch{}wy(t,`${new Date().toISOString()} ${e}
105
+ `)}catch{}}function Iy(e){try{ds(A(),{recursive:!0}),fs(ms(),String(Date.now()))}catch{}Oy(`spawn failed: ${e.message}`)}function Ny(){try{Sy(ms(),{force:!0})}catch{}}async function jn(e,t){return new Promise((n,r)=>{let s=by(e),o=a=>{if(s.removeAllListeners("connect"),s.removeAllListeners("error"),clearTimeout(i),a){try{s.destroy()}catch{}r(a)}else n(s)},i=setTimeout(()=>o(new Error("connect timeout")),t);s.once("connect",()=>o(null)),s.once("error",a=>o(a))})}function Py(){return process.env.TOKMIZER_DAEMON_BIN?process.env.TOKMIZER_DAEMON_BIN:Ty(new URL("../bin/tkr-daemon.js",import.meta.url))}async function us(e,t=3e3){let n=Math.ceil(t/75),r=process.platform==="win32";for(let s=0;s<n;s++){if(r)try{return(await jn(e,75)).destroy(),!0}catch{}else if(al(e))return!0;await new Promise(o=>setTimeout(o,75))}return!1}async function Dy(e){let t=Py();if(!Te()&&!al(t))throw new Error(`tkr-daemon binary not found at ${t}`);let{path:n}=Xt(),r=process.platform==="win32"?A():Ey(n);try{ds(r,{recursive:!0})}catch{}let s=ps(r,"daemon.spawn.lock"),o=null;try{o=ls(s,"wx"),fs(o,String(process.pid))}catch(i){if(i.code==="EEXIST"){if(await us(n,5e3))return;try{cs(s)}catch{}try{o=ls(s,"wx"),fs(o,String(process.pid))}catch(l){if(l.code==="EEXIST"){await us(n,5e3);return}throw l}}else throw i}try{let i=null;try{i=ls(hs(),"a")}catch{}let[a,...l]=Fr(t);if(_y(a,l,{detached:!0,stdio:["ignore","ignore",i??"ignore"],env:{...process.env,TOKMIZER_DAEMON_INSTALL_ID:e}}).unref(),i!==null)try{ol(i)}catch{}if(!await us(n,3e3))throw new Error("tkr-daemon failed to bind socket within 3s")}finally{if(o!==null){try{ol(o)}catch{}try{cs(s)}catch{}}}}async function Ly(e={}){let{path:t}=e.socketPath?{path:e.socketPath}:Xt(),n=await Ir();try{let r=await jn(t,ll);r.write(os({id:qt(),op:"shutdown",installId:n})),await new Promise(s=>setTimeout(s,150));try{r.destroy()}catch{}return!0}catch{return!1}}async function Fy(e,t){let n=Date.now()+t;for(;Date.now()<n;){try{(await jn(e,250)).destroy()}catch{return!0}await new Promise(r=>setTimeout(r,100))}return!1}async function gs(e={}){let{path:t}=e.socketPath?{path:e.socketPath}:Xt(),n=await Ir(),r=null,s=0,o=!1;for(;s<=il;)try{r=await jn(t,ll),Ny();break}catch{if(s+=1,s>il)throw new Error(`tkr-daemon unreachable at ${t}`);if(Cy())throw new Error(`tkr-daemon spawn on cooldown (see ${hs()})`);await as();try{await Dy(n),o=!0}catch(c){throw Iy(c),c}}if(!r)throw new Error("tkr-daemon: socket setup failed");let i=new Map,a="";r.setEncoding("utf8"),r.on("data",c=>{a+=c;let f=-1;for(let p=0;p<a.length;p++)a[p]===Mn&&(f=p);if(f<0)return;let d=[];for(let p of nl(a.slice(0,f+1)))d.push(p);a=a.slice(f+1);for(let p of d)if(p)try{let g=JSON.parse(p),y=i.get(g.id);if(!y)continue;clearTimeout(y.timer),i.delete(g.id),y.resolve(g)}catch{}}),r.on("close",()=>{for(let c of i.values())clearTimeout(c.timer),c.reject(new Error("daemon socket closed"));i.clear()}),r.on("error",()=>{});function l(c){return new Promise((f,d)=>{if(r.destroyed||!r.writable){d(new Error("daemon socket closed"));return}let p=setTimeout(()=>{i.delete(c.id),d(new Error(`daemon request timeout (${c.op})`))},Ay);i.set(c.id,{resolve:f,reject:d,timer:p}),r.write(os(c))})}let u={filter:async(c,f,d)=>{let p=await l({id:qt(),op:"filter",cmd:c.slice(0,2048),plan:f,...d&&d.length>0?{allowed:d.slice(0,512)}:{},installId:n});if(!p.ok)return null;let g=tl.safeParse(p.data);return g.success?g.data.filter:null},ping:async()=>{let c=await l({id:qt(),op:"ping"});if(!c.ok)throw new Error(c.err);return c.data},reload:async()=>{let c=await l({id:qt(),op:"reload",installId:n});if(!c.ok)throw new Error(c.err);return c.data},close:()=>{try{r.destroy()}catch{}}};if(!e.skipVersionCheck&&!o){let c=!1;try{let f=await u.ping();if(f.version&&yi(zt,f.version))throw new Error(`newer daemon ${f.version} already running`);c=f.version!==zt}catch(f){throw u.close(),f}if(c){try{await Ly(e.socketPath?{socketPath:e.socketPath}:{})}catch{}u.close();let f=await Fy(t,2e3);if(await as(),!f)throw new Error("stale daemon still running after shutdown request");return gs({...e,skipVersionCheck:!0})}}return u}var _t=null,Qt=null;async function My(){if(_t)return _t;if(Qt)return Qt;let e=gs().then(t=>{if(Qt===e)return _t=t,t;try{t.close()}catch{}return null}).catch(()=>null);return Qt=e,e}var ys=null,ks=!1;async function jy(){return ks||(ks=!0,ys=await xi()??En()),ys}async function ul(e,t,n){let r=await jy();if(!r)return null;let s=r.selectFor(e,t,n?[...n]:void 0);return!s||n&&!n.has(X(s.slug))?null:s}function Hy(e){return e?{...e,matchRegex:new RegExp(e.match_command)}:null}function cl(e){Cr(async(t,n)=>{let r=e==="free"?"trial":e,s=n??Tn(void 0),o=await My();if(!o)return ul(t,r,s);try{let i=await o.filter(t,r,s?[...s]:void 0);return!i||s&&!s.has(X(i.slug))?null:Hy(i)}catch{return ul(t,r,s)}})}function fl(){if(Cr(null),_t)try{_t.close()}catch{}_t=null,Qt=null,ys=null,ks=!1}import{readFileSync as zy}from"node:fs";import{join as Uy}from"node:path";function dl(){try{return zy(Uy(A(),"yolo-mode"),"utf8")==="on"}catch{return!1}}import{appendFileSync as Wy,chmodSync as Vy,mkdirSync as Ky,existsSync as qy,readFileSync as xA,rmSync as wA}from"node:fs";import{dirname as Yy,join as Xy}from"node:path";import{readFileSync as By,renameSync as Zy,statSync as Jy,writeFileSync as Gy}from"node:fs";function pl(e,t,n){try{if(Jy(e).size<=t)return;let r=By(e,"utf8").split(`
106
+ `).filter(a=>a.trim()!==""),s=[],o=0;for(let a=r.length-1;a>=0;a-=1){let l=r[a],u=Buffer.byteLength(l)+1;if(o+u>n)break;s.push(l),o+=u}s.reverse();let i=`${e}.tmp-${process.pid}`;Gy(i,s.length?`${s.join(`
107
107
  `)}
108
- `:"",{mode:384}),By(i,e)}catch{}}var Xy="usage.jsonl";var pl=2*1024*1024;function Qy(){return Yy(A(),Xy)}function ne(e,t,n=Qy()){try{let r=qy(n);Ky(r)||Vy(r,{recursive:!0,mode:448});let s=e.replace(/[^A-Za-z0-9._-]/g,"").slice(0,64)||"unknown";Gy(n,`{"t":${Math.floor(Date.now()/1e3)},"s":"${s}","o":${t?1:0}}
109
- `,{mode:384}),Wy(n,384),dl(n,pl,pl/2)}catch{}}mn();import{spawnSync as Nk}from"node:child_process";import{existsSync as Xe,readFileSync as tn,readdirSync as Un,statSync as Pk}from"node:fs";import{homedir as Qe}from"node:os";import{fileURLToPath as Dk}from"node:url";import{dirname as Cl,join as O,resolve as Lk}from"node:path";import{execFileSync as _k}from"node:child_process";import{mkdirSync as xk,readFileSync as kl,renameSync as wk,statSync as Sk,writeFileSync as vk}from"node:fs";import{join as bl}from"node:path";import{closeSync as ek,openSync as tk,readSync as nk,readdirSync as rk,readFileSync as sk,statSync as hl}from"node:fs";import{homedir as ok}from"node:os";import{isAbsolute as ik,join as Hn,resolve as ak}from"node:path";var lk=/^[A-Za-z0-9._+@%:,/-]+$/,uk=new Set(["7f454c46","feedface","feedfacf","cefaedfe","cffaedfe","cafebabe","bebafeca"]),ck=32,fk=4*1024*1024;function _s(e){let t;try{t=tk(e,"r");let n=Buffer.alloc(4),r=nk(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&&ek(t)}}function en(e,t=process.platform){try{let n=hl(e);if(!n.isFile())return!1;if(t==="win32")return!0;if((n.mode&73)===0)return!1;let r=_s(e);return r==="#!"||r!==null&&uk.has(r)}catch{return!1}}function dk(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 xt(e,t,n,r=process.platform){if(!lk.test(e))return!1;let s=r==="win32";if(e.includes("/"))return en(ak(t??process.cwd(),e),r);if(!n)return!1;let o=s?dk(e):[e];for(let i of n.split(s?";":":"))if(!(!i||!ik(i))){for(let a of o)if(en(Hn(i,a),r))return!0}return!1}var pk=/^eval \$'([^\s'()=]+) \(\) /,mk=/^([^\s'"()=]+) \(\) \{$/,hk=/^alias -- ([^\s=]+)=(.*)$/,gk=/^# (?:Shell Options|Aliases|Shopt|Check for |Shadow )/,yk=/^export PATH=(.*)$/,kk=/^(?:--colou?r(?:=\S+)?|-G)$/;function ml(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 bk(e,t){let n="";for(let r of e.split(`
110
- `)){let s=yk.exec(r);if(s&&n!=="# Functions"){let o=ml(s[1].trim());/[$`\\]/.test(o)||t.paths.push(o);continue}if(r.startsWith("# ")&&(n!=="# Functions"||gk.test(r))){n=r;continue}if(n==="# Functions"){let o=pk.exec(r)??mk.exec(r);o&&t.functions.add(o[1])}else if(n==="# Aliases"){let o=hk.exec(r);o&&t.aliases.set(o[1],ml(o[2].trim()))}}}function bs(e){return e?.code==="ENOENT"}function gl(e){let t={functions:new Set,aliases:new Map,paths:[],uncertain:!1},n=Hn(e||Hn(ok(),".claude"),"shell-snapshots"),r=[];try{for(let s of rk(n)){if(!s.startsWith("snapshot-")||!s.endsWith(".sh"))continue;let o=Hn(n,s);try{let i=hl(o);i.isFile()&&r.push({path:o,mtime:i.mtimeMs,size:i.size})}catch(i){bs(i)||(t.uncertain=!0)}}}catch(s){return bs(s)||(t.uncertain=!0),t}r=r.sort((s,o)=>o.mtime-s.mtime).slice(0,ck);for(let s of r)try{if(s.size>fk)throw new Error("snapshot too large");bk(sk(s.path,"utf8"),t)}catch(o){bs(o)||(t.uncertain=!0)}return t}function yl(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(s=>kk.test(s))}var Ek="exec-probe.json",Tk=6e4;function Ak(){return bl(A(),Ek)}function Rk(e){try{let t=ee(kl(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 $k(e,t){try{xk(bl(e,".."),{recursive:!0,mode:448});let n=`${e}.${process.pid}.tmp`;vk(n,JSON.stringify(t),{mode:384}),wk(n,e)}catch{}}function Ck(e){try{return _k(e,["--native-check"],{encoding:"utf8",timeout:2e3,maxBuffer:1024,stdio:["ignore","pipe","ignore"],windowsHide:!0}).startsWith("tokmizer-native ")}catch{return!1}}function Ok(e,t){try{let r=kl(e,"utf8").split(`
111
- `,1)[0].slice(2).trim().split(/\s+/),s=r[0]??"";return s==="/usr/bin/env"?xt(r[1]??"",void 0,t):en(s)}catch{return!1}}function Ik(e,t,n){try{let r=Sk(e);return[e,r.size,r.mtimeMs,r.ino,r.mode,t?n??"":""].join("|")}catch{return`${e}|missing`}}function xs(e,t=process.platform,n=process.env.PATH,r=Ak(),s=Date.now()){let o=t!=="win32"&&_s(e)==="#!",i=Ik(e,o,n),a=Rk(r);if(a?.key===i&&(a.ok||s-a.at<Tk))return a.ok;let l=en(e,t)&&(o?Ok(e,n):Ck(e));return $k(r,{key:i,ok:l,at:s,skipped:(a?.skipped??0)+(l?0:1)}),l}var Fk=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"]),Mk=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"]),_l=new Set(["sh","bash","zsh","dash","ksh","fish","python","python3","python2","node","ruby","perl","php","awk","sed","deno","bun"]),xl="(?:dev|start|serve|watch|preview)",jk=new RegExp(`^(?:\\S*/)?(?:bun\\s+(?:install|i|add|remove|rm|update|outdated|audit|test|build|pm|x)(?:\\s|$)|bun\\s+run\\s+(?!${xl}(?:\\s|$))[A-Za-z0-9:_-]+(?:\\s|$)|deno\\s+(?:test|lint|fmt|check|compile|install|info|doc|bench|outdated)(?:\\s|$)|deno\\s+task\\s+(?!${xl}(?:\\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)`),Hk=/(?:^|\s)--watch(?:\s|=|$)/;function zk(e){return jk.test(e)&&!Hk.test(e)}var Uk=/^((?:\S*\/)?(sh|bash|zsh|dash|ksh|fish)\s+(-[elux]*c[elux]*)\s+)(['"])/,Bk=/[()$]|(?:^|[;&|\n]\s*)(?:and|or|not|begin|end|if|else|switch|case|while|for|function|return)(?:\s|;|$)/,Ol=3;function Il(e){let t=Uk.exec(e);if(!t)return null;let n=t[2]==="fish";if(n&&t[3]!=="-c")return null;let r=t[4],s=t[1].length+1,o=e.indexOf(r,s);if(o<=s)return null;let i=e.slice(o+1);if(i&&!/^\s/.test(i))return null;let a=e.slice(s,o);return r==='"'&&/[$`\\!]/.test(a)||n&&Bk.test(a)?null:{script:a,start:s,end:o,quote:r}}var Zk=new Set(["cd","export","set","unset","source",".","true",":","pushd","popd"]);function Jk(e){return Es(e).filter(n=>{if(n.kind!=="cmd"||n.unsafe)return!1;let r=Pl(n.text);return r!==""&&!Zk.has(r)&&!vs.test(r)}).length>1}function Gk(e,t,n,r,s){if(n>=Ol)return null;let o=Il(e);if(!o)return null;let{script:i,start:a,end:l,quote:u}=o,c=[],f=Dl(i,t,n+1,r,y=>c.push(y));if(f===i||u==='"'&&/["$`]/.test(f))return null;let d=u==="'"?f.replace(/'/g,"'\\''"):f,p=`${e.slice(0,a)}${d}${e.slice(l)}`,h=Jk(i);if(s)for(let y of h?[e,...c]:c)s(y);return h?`${t} ${p}`:p}var wl=/(?:^|\s)(?:--follow|-[0-9a-zA-Z]*f[a-zA-Z]*)(?:\s|=|$)/,Wk=/(?:^|\s)(?:--follow|-[0-9a-zA-Z]*[fF][a-zA-Z]*)(?:\s|=|$)/,Vk=new Set(["docker","podman","kubectl","nerdctl","docker-compose","stern","flyctl"]),Sl=new Set(["npm","pnpm","yarn","bun"]),vl=/^(?:dev|start|serve|preview|watch)(?::\S*)?$/,Kk=new Set(["--filter","-F","--dir","-C","--prefix","--workspace","-w","--cwd"]),El=new Set(["npx","pnpx","bunx"]),qk=new Set(["nodemon","top","htop","btop","watch"]),Yk=new Set(["tsc","vitest","jest","webpack","rollup","esbuild","tsup","babel","sass","tailwindcss","mocha","swc","parcel","nest"]),Xk=/(?:^|\s)--watch(?:All)?(?:\s|=(?!false(?:\s|$))|$)/,Tl=/(?:^|\s)-w(?:\s|$)/;function Qk(e){let t=e.map(i=>i.replace(/['"]/g,""));for(;t.length>1&&(t[0]==="env"||/^[A-Za-z_][A-Za-z0-9_]*=/.test(t[0]));)t=t.slice(1);let n=wt(t[0]??"");if(El.has(n)||Sl.has(n)&&(t[1]==="exec"||t[1]==="dlx"))t=t.slice(El.has(n)?1:2).filter((i,a,l)=>!(i.startsWith("-")&&l.slice(0,a).every(u=>u.startsWith("-")))),n=wt(t[0]??"");else if(Sl.has(n)){let i=t.slice(1).filter((l,u,c)=>!l.startsWith("-")&&!Kk.has(c[u-1]??""));i[0]==="workspace"&&i.splice(0,2);let a=i[0]==="run"||i[0]==="run-script"?i[1]:i[0];return a!==void 0&&vl.test(a)}let r=t.slice(1),s=r.join(" "),o=r.find(i=>!i.startsWith("-"));if(qk.has(n)||Xk.test(s)||Yk.has(n)&&Tl.test(s))return!0;switch(n){case"next":return o==="dev"||o==="start";case"vite":return!r.includes("build")&&!r.includes("optimize");case"vitest":return o==="watch"||o==="dev";case"cargo":case"dotnet":return o==="watch";case"turbo":{let i=o==="run"?r.filter(a=>!a.startsWith("-"))[1]:o;return i!==void 0&&vl.test(i)}case"nx":{let i=o==="run"?r.filter(a=>!a.startsWith("-"))[1]?.split(":")[1]:o;return i!==void 0&&/^(?:serve|dev|start|watch)$/.test(i)}case"ping":return!r.some(i=>/^-[a-zA-Z]*c/.test(i));case"docker":case"podman":case"nerdctl":case"docker-compose":{let i=n==="docker-compose"?r:o==="compose"?r.slice(r.indexOf("compose")+1):null;return i?i.includes("up")&&!i.some(a=>a==="--detach"||/^-[a-zA-Z]*d[a-zA-Z]*$/.test(a)):o==="stats"&&!r.includes("--no-stream")||o==="events"}case"kubectl":return o==="port-forward"||(o==="get"||o==="rollout")&&Tl.test(s)||/(?:^|\s)--watch-only(?:\s|=|$)/.test(s);default:return!1}}function eb(e,t){let n=wt(t);return n==="tail"?Wk.test(e):n==="journalctl"?wl.test(e):n==="stern"||Vk.has(n)&&/\blogs?\b/.test(e)&&wl.test(e)?!0:Qk(e.split(/\s+/))}var vs=/^[A-Za-z_][A-Za-z0-9_]*\+?=/,tb=/^[A-Za-z_][A-Za-z0-9_-]*\s*\(\s*\)/,nb=/(?:^|[;&|\n({])\s*[A-Za-z_][A-Za-z0-9_-]*\s*\(\s*\)/;function wt(e){let t=e.lastIndexOf("/");return t===-1?e:e.slice(t+1)}function Nl(e){let t=new Array(e.length).fill(!1),n=[],r=0;for(;r<e.length;){let s=e[r],o=e[r+1],i=n[n.length-1];if(i==="'"){s==="'"&&n.pop(),r+=1;continue}if(s==="\\"){if(o===void 0)return null;r+=2;continue}if(i==="$'"){s==="'"&&n.pop(),r+=1;continue}if(s==="$"&&(o==="("||o==="{")){n.push(o==="("?")":"}"),r+=2;continue}if(s==="`"){i==="`"?n.pop():n.push("`"),r+=1;continue}if(i==='"'){s==='"'&&n.pop(),r+=1;continue}if(s==="$"&&o==="'"){n.push("$'"),r+=2;continue}if(s==="'"||s==='"'){n.push(s),r+=1;continue}if(s==="("||s==="{"&&i==="}"){n.push(s==="("?")":"}"),r+=1;continue}if(s===i){n.pop(),r+=1;continue}if(s===")"&&i===void 0)return null;t[r]=i===void 0,r+=1}return n.length===0?t:null}function ws(e){let t=Nl(e);if(!t)return!0;for(let n=0;n<e.length;n++)if(t[n]&&e[n]===">")return!0;return!1}function Es(e){let t=Nl(e);if(!t)return[{kind:"cmd",text:e,unsafe:!0}];let n=[],r="",s=0,o=()=>{r.length>0&&(n.push({kind:"cmd",text:r}),r="")},i=(a,l)=>{o(),n.push({kind:"sep",text:a}),s+=l};for(;s<e.length;){let a=e[s],l=e[s+1];if(t[s]){if(a===">"&&l==="|"){r+=">|",s+=2;continue}if(a==="&"&&l==="&"){i("&&",2);continue}if(a==="&"&&l!==">"){let u=r.replace(/\s+$/,""),c=u[u.length-1];if(c!==">"&&c!=="<"&&c!=="&"){i("&",1);continue}}if(a==="|"&&l==="|"){i("||",2);continue}if(a==="|"&&l==="&"){i("|&",2);continue}if(a===";"&&l===";"){let u=e[s+2]==="&";i(u?";;&":";;",u?3:2);continue}if(a===";"||a===`
112
- `||a==="|"){i(a,1);continue}}r+=a,s+=1}return o(),n}function Pl(e){return e.trim().split(/\s+/)[0]??""}function oe(e,t=process.platform){try{let n=Cl(Dk(import.meta.url)),r=t==="win32",s=e&&e!=="claude-code"&&e!=="codex"&&!r?`TOKMIZER_HOST=${e} `:"";if(r&&(!e||e==="claude-code")){let l=O(n,"..","bin","tkr-exec.exe");if(Xe(l))return xs(l,t)?`'${l.replace(/\\/g,"/").replace(/'/g,"'\\''")}'`:null}let o=O(n,"..","bin","tkr-exec"),i=!r&&Xe(o);if(i&&!xs(o,t))return null;if(!r&&process.env.TOKMIZER_STABLE_RUN!=="0"){let l=fa(O(n,"..","bin","tkr-exec.js"));if(l&&(i||Xe(O(n,"..","bin","tkr-exec.js"))))return`${s}'${l.replace(/'/g,"'\\''")}'`}if(i)return`${s}'${o.replace(/'/g,"'\\''")}'`;if(Te()){let l=r?process.execPath.replace(/\\/g,"/"):process.execPath;return`${s}'${l.replace(/'/g,"'\\''")}' exec`}let a=O(n,"..","bin","tkr-exec.js");return Xe(a)?`${s}node '${a.replace(/'/g,"'\\''")}'`:null}catch{return null}}function rb(e,t="tkr-exec",n=()=>!0,r){return Dl(e,t,0,n,r)}var sb=new Set(["{","for","while","until","if","case","select"]),ob=new Set(["}","done","fi","esac"]),ib=new Set(["then","do","else","elif","!","time","{","if","while","until"]);function ab(e,t){let n=e[t+1];return ws(e[t].text)||n?.kind==="sep"&&(n.text==="|"||n.text==="|&")}function lb(e){let t=new Set,n=[];for(let r=0;r<e.length;r++){let s=e[r];if(!(s.kind!=="cmd"||s.unsafe))for(let o of s.text.trim().split(/\s+/)){if(ob.has(o)){let i=n.pop();if(i!==void 0&&ab(e,r))for(let a=i;a<=r;a++)t.add(a);continue}if(sb.has(o)&&n.push(r),!ib.has(o))break}}return t}function Dl(e,t,n,r,s){if(e.includes("<<")||nb.test(e))return e;let o=Es(e),i=lb(o),a=[];for(let l=0;l<o.length;l++){let u=o[l];if(u.kind==="sep"||u.unsafe||i.has(l)){a.push(u.text);continue}let c=u.text.trim();if(!c){a.push(u.text);continue}let f=Pl(c),d=o[l+1],p=d?.kind==="sep"&&(d.text==="|"||d.text==="|&"),h=d?.kind==="sep"&&d.text==="&",y=!p&&!h&&!ws(u.text)&&!u.text.includes("<(")&&!u.text.includes(">(")?Gk(c,t,n,r,s):null;if(y!==null){a.push(`${u.text.match(/^\s*/)?.[0]??""}${y}${u.text.match(/\s*$/)?.[0]??""}`);continue}if(c===t||c.startsWith(t)&&/^\s/.test(c.slice(t.length))||Fk.has(f)||Mk.has(f)||(_l.has(f)||_l.has(wt(f)))&&!zk(c)||vs.test(f)||f.startsWith("(")||f.startsWith("#")||f.startsWith("<")||f.startsWith(">")||tb.test(c)||eb(c,f)||f.endsWith(")")||p||h||ws(u.text)||u.text.includes("<(")||u.text.includes(">(")||f==="node"&&c.includes("tkr-exec.js")||!r(f,c)){a.push(u.text);continue}let m=u.text.match(/^\s*/)?.[0]??"",w=u.text.match(/\s*$/)?.[0]??"";s?.(c),a.push(`${m}${t} ${c}${w}`)}return a.join("")}var ub=new Set(["command","workdir","timeout_ms","yield_time_ms","max_output_tokens","shell","login","tty","description"]),cb=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"]),fb=new Set(["log","diff","show","status","blame","ls-files","rev-parse","describe","shortlog"]),db={find:/^-(?:delete|exec|execdir|ok|okdir|fprint|fls)/,sort:/^(?:-[^-]*o|--output|--compress-program)/,rg:/^(?:--pre|--hostname-bin|-[^-]*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/},zn=["test","run test","run build","run lint","run typecheck"],pb={npm:new Set(zn),pnpm:new Set([...zn,"build","lint","typecheck"]),yarn:new Set([...zn,"build","lint","typecheck"]),bun:new Set(zn),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"])},mb=new Set(["pytest","tsc","vitest","jest","eslint","mypy"]);function Ll(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 Es(e)){if(r.kind==="sep")continue;if(r.unsafe)return!1;let s=n<Ol?Il(r.text.trim()):null;if(s){if(!Ll(s.script,t,n+1))return!1;continue}let o=r.text.trim().split(/\s+/).filter(Boolean).map(u=>u.replace(/['"\\]/g,""));if(o.length===0)continue;if(o.some(u=>vs.test(u)))return!1;let i=wt(o[0]);if(i!==o[0])return!1;let a=db[i];if(a&&o.slice(1).some(u=>a.test(u)))return!1;if((i==="git"?fb.has(o[1]??""):cb.has(i))||t&&mb.has(i))continue;let l=t?pb[i]:void 0;if(!(l&&(l.has(o[1]??"")||o[1]==="run"&&l.has(`run ${o[2]??""}`))))return!1}return!0}function Fl(e,t,n=oe(t),r=ne,s=Bn(),o=process.env.PATH,i=Ts){if(!H(e)||e.tool_name!=="Bash"||t==="claude-code"&&gb(i()))return null;let a=e.tool_input;if(!H(a)||a.run_in_background)return null;let l=a.command;if(typeof l!="string"||!l||t==="codex"&&Object.keys(a).some(y=>!ub.has(y)))return null;let u=typeof e.cwd=="string"&&e.cwd?e.cwd:a.workdir,c=typeof u=="string"&&u?u:void 0,f=typeof e.session_id=="string"&&e.session_id?e.session_id:"unknown",d=typeof e.permission_mode=="string"?e.permission_mode:void 0,p=Jl(l,{host:t,sessionId:f,cwd:c,claudeDirs:s,pathEnv:o,permissionMode:d},n,r);if(!p)return null;let h={...a,command:p.command};return JSON.stringify({hookSpecificOutput:t==="codex"?{hookEventName:"PreToolUse",permissionDecision:"allow",updatedInput:h}:p.allowedBy?{hookEventName:"PreToolUse",permissionDecision:"allow",permissionDecisionReason:`Tokmizer: allowed by your rule ${p.allowedBy}`,updatedInput:h}:p.ask?{hookEventName:"PreToolUse",permissionDecision:"ask",permissionDecisionReason:"Tokmizer shortens this command's output; nothing else changes.",updatedInput:h}:{hookEventName:"PreToolUse",updatedInput:h}})}var hb=/(?:^|\s)--(?:disallowedTools|disallowed-tools|settings|setting-sources)(?:[=\s]|$)/;function Ts(e=process.env,t=process.platform){let n=Number(e.CLAUDE_PID)||process.ppid;if(t==="win32"||!Number.isInteger(n)||n<=1)return null;try{let r=Nk("ps",["-ww","-o","args=","-p",String(n)],{encoding:"utf8",timeout:2e3});return r.status===0&&r.stdout.trim()?r.stdout:null}catch{return null}}function gb(e){return e===null||hb.test(e)}function yb(e,t){if(!Xe(e))return"missing";try{let n=tn(e,"utf8").replace(/^\uFEFF/,"");return n.trim()===""?{}:JSON.parse(t?Ml(n):n)}catch{return"unreadable"}}function Ml(e){let t="",n=!1;for(let r=0;r<e.length;r++){let s=e[r];if(n){t+=s,s==="\\"?t+=e[++r]??"":s==='"'&&(n=!1);continue}if(s==='"')n=!0,t+=s;else if(s==="/"&&e[r+1]==="/"){for(;r<e.length&&e[r]!==`
108
+ `:"",{mode:384}),Zy(i,e)}catch{}}var Qy="usage.jsonl";var ml=2*1024*1024;function ek(){return Xy(A(),Qy)}function ne(e,t,n=ek()){try{let r=Yy(n);qy(r)||Ky(r,{recursive:!0,mode:448});let s=e.replace(/[^A-Za-z0-9._-]/g,"").slice(0,64)||"unknown";Wy(n,`{"t":${Math.floor(Date.now()/1e3)},"s":"${s}","o":${t?1:0}}
109
+ `,{mode:384}),Vy(n,384),pl(n,ml,ml/2)}catch{}}mn();import{spawnSync as Pk}from"node:child_process";import{existsSync as Xe,readFileSync as tn,readdirSync as Un,statSync as Dk}from"node:fs";import{homedir as Qe}from"node:os";import{fileURLToPath as Lk}from"node:url";import{dirname as Ol,join as O,resolve as Fk}from"node:path";import{execFileSync as xk}from"node:child_process";import{mkdirSync as wk,readFileSync as bl,renameSync as Sk,statSync as vk,writeFileSync as Ek}from"node:fs";import{join as _l}from"node:path";import{closeSync as tk,openSync as nk,readSync as rk,readdirSync as sk,readFileSync as ok,statSync as gl}from"node:fs";import{homedir as ik}from"node:os";import{isAbsolute as ak,join as Hn,resolve as lk}from"node:path";var uk=/^[A-Za-z0-9._+@%:,/-]+$/,ck=new Set(["7f454c46","feedface","feedfacf","cefaedfe","cffaedfe","cafebabe","bebafeca"]),fk=32,dk=4*1024*1024;function _s(e){let t;try{t=nk(e,"r");let n=Buffer.alloc(4),r=rk(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&&tk(t)}}function en(e,t=process.platform){try{let n=gl(e);if(!n.isFile())return!1;if(t==="win32")return!0;if((n.mode&73)===0)return!1;let r=_s(e);return r==="#!"||r!==null&&ck.has(r)}catch{return!1}}function pk(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 xt(e,t,n,r=process.platform){if(!uk.test(e))return!1;let s=r==="win32";if(e.includes("/"))return en(lk(t??process.cwd(),e),r);if(!n)return!1;let o=s?pk(e):[e];for(let i of n.split(s?";":":"))if(!(!i||!ak(i))){for(let a of o)if(en(Hn(i,a),r))return!0}return!1}var mk=/^eval \$'([^\s'()=]+) \(\) /,hk=/^([^\s'"()=]+) \(\) \{$/,gk=/^alias -- ([^\s=]+)=(.*)$/,yk=/^# (?:Shell Options|Aliases|Shopt|Check for |Shadow )/,kk=/^export PATH=(.*)$/,bk=/^(?:--colou?r(?:=\S+)?|-G)$/;function hl(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 _k(e,t){let n="";for(let r of e.split(`
110
+ `)){let s=kk.exec(r);if(s&&n!=="# Functions"){let o=hl(s[1].trim());/[$`\\]/.test(o)||t.paths.push(o);continue}if(r.startsWith("# ")&&(n!=="# Functions"||yk.test(r))){n=r;continue}if(n==="# Functions"){let o=mk.exec(r)??hk.exec(r);o&&t.functions.add(o[1])}else if(n==="# Aliases"){let o=gk.exec(r);o&&t.aliases.set(o[1],hl(o[2].trim()))}}}function bs(e){return e?.code==="ENOENT"}function yl(e){let t={functions:new Set,aliases:new Map,paths:[],uncertain:!1},n=Hn(e||Hn(ik(),".claude"),"shell-snapshots"),r=[];try{for(let s of sk(n)){if(!s.startsWith("snapshot-")||!s.endsWith(".sh"))continue;let o=Hn(n,s);try{let i=gl(o);i.isFile()&&r.push({path:o,mtime:i.mtimeMs,size:i.size})}catch(i){bs(i)||(t.uncertain=!0)}}}catch(s){return bs(s)||(t.uncertain=!0),t}r=r.sort((s,o)=>o.mtime-s.mtime).slice(0,fk);for(let s of r)try{if(s.size>dk)throw new Error("snapshot too large");_k(ok(s.path,"utf8"),t)}catch(o){bs(o)||(t.uncertain=!0)}return t}function kl(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(s=>bk.test(s))}var Tk="exec-probe.json",Ak=6e4;function Rk(){return _l(A(),Tk)}function $k(e){try{let t=ee(bl(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 Ck(e,t){try{wk(_l(e,".."),{recursive:!0,mode:448});let n=`${e}.${process.pid}.tmp`;Ek(n,JSON.stringify(t),{mode:384}),Sk(n,e)}catch{}}function Ok(e){try{return xk(e,["--native-check"],{encoding:"utf8",timeout:2e3,maxBuffer:1024,stdio:["ignore","pipe","ignore"],windowsHide:!0}).startsWith("tokmizer-native ")}catch{return!1}}function Ik(e,t){try{let r=bl(e,"utf8").split(`
111
+ `,1)[0].slice(2).trim().split(/\s+/),s=r[0]??"";return s==="/usr/bin/env"?xt(r[1]??"",void 0,t):en(s)}catch{return!1}}function Nk(e,t,n){try{let r=vk(e);return[e,r.size,r.mtimeMs,r.ino,r.mode,t?n??"":""].join("|")}catch{return`${e}|missing`}}function xs(e,t=process.platform,n=process.env.PATH,r=Rk(),s=Date.now()){let o=t!=="win32"&&_s(e)==="#!",i=Nk(e,o,n),a=$k(r);if(a?.key===i&&(a.ok||s-a.at<Ak))return a.ok;let l=en(e,t)&&(o?Ik(e,n):Ok(e));return Ck(r,{key:i,ok:l,at:s,skipped:(a?.skipped??0)+(l?0:1)}),l}var Mk=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"]),jk=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"]),xl=new Set(["sh","bash","zsh","dash","ksh","fish","python","python3","python2","node","ruby","perl","php","awk","sed","deno","bun"]),wl="(?:dev|start|serve|watch|preview)",Hk=new RegExp(`^(?:\\S*/)?(?:bun\\s+(?:install|i|add|remove|rm|update|outdated|audit|test|build|pm|x)(?:\\s|$)|bun\\s+run\\s+(?!${wl}(?:\\s|$))[A-Za-z0-9:_-]+(?:\\s|$)|deno\\s+(?:test|lint|fmt|check|compile|install|info|doc|bench|outdated)(?:\\s|$)|deno\\s+task\\s+(?!${wl}(?:\\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)`),zk=/(?:^|\s)--watch(?:\s|=|$)/;function Uk(e){return Hk.test(e)&&!zk.test(e)}var Bk=/^((?:\S*\/)?(sh|bash|zsh|dash|ksh|fish)\s+(-[elux]*c[elux]*)\s+)(['"])/,Zk=/[()$]|(?:^|[;&|\n]\s*)(?:and|or|not|begin|end|if|else|switch|case|while|for|function|return)(?:\s|;|$)/,Il=3;function Nl(e){let t=Bk.exec(e);if(!t)return null;let n=t[2]==="fish";if(n&&t[3]!=="-c")return null;let r=t[4],s=t[1].length+1,o=e.indexOf(r,s);if(o<=s)return null;let i=e.slice(o+1);if(i&&!/^\s/.test(i))return null;let a=e.slice(s,o);return r==='"'&&/[$`\\!]/.test(a)||n&&Zk.test(a)?null:{script:a,start:s,end:o,quote:r}}var Jk=new Set(["cd","export","set","unset","source",".","true",":","pushd","popd"]);function Gk(e){return Es(e).filter(n=>{if(n.kind!=="cmd"||n.unsafe)return!1;let r=Dl(n.text);return r!==""&&!Jk.has(r)&&!vs.test(r)}).length>1}function Wk(e,t,n,r,s){if(n>=Il)return null;let o=Nl(e);if(!o)return null;let{script:i,start:a,end:l,quote:u}=o,c=[],f=Ll(i,t,n+1,r,y=>c.push(y));if(f===i||u==='"'&&/["$`]/.test(f))return null;let d=u==="'"?f.replace(/'/g,"'\\''"):f,p=`${e.slice(0,a)}${d}${e.slice(l)}`,g=Gk(i);if(s)for(let y of g?[e,...c]:c)s(y);return g?`${t} ${p}`:p}var Sl=/(?:^|\s)(?:--follow|-[0-9a-zA-Z]*f[a-zA-Z]*)(?:\s|=|$)/,Vk=/(?:^|\s)(?:--follow|-[0-9a-zA-Z]*[fF][a-zA-Z]*)(?:\s|=|$)/,Kk=new Set(["docker","podman","kubectl","nerdctl","docker-compose","stern","flyctl"]),vl=new Set(["npm","pnpm","yarn","bun"]),El=/^(?:dev|start|serve|preview|watch)(?::\S*)?$/,qk=new Set(["--filter","-F","--dir","-C","--prefix","--workspace","-w","--cwd"]),Tl=new Set(["npx","pnpx","bunx"]),Yk=new Set(["nodemon","top","htop","btop","watch"]),Xk=new Set(["tsc","vitest","jest","webpack","rollup","esbuild","tsup","babel","sass","tailwindcss","mocha","swc","parcel","nest"]),Qk=/(?:^|\s)--watch(?:All)?(?:\s|=(?!false(?:\s|$))|$)/,Al=/(?:^|\s)-w(?:\s|$)/;function eb(e){let t=e.map(i=>i.replace(/['"]/g,""));for(;t.length>1&&(t[0]==="env"||/^[A-Za-z_][A-Za-z0-9_]*=/.test(t[0]));)t=t.slice(1);let n=wt(t[0]??"");if(Tl.has(n)||vl.has(n)&&(t[1]==="exec"||t[1]==="dlx"))t=t.slice(Tl.has(n)?1:2).filter((i,a,l)=>!(i.startsWith("-")&&l.slice(0,a).every(u=>u.startsWith("-")))),n=wt(t[0]??"");else if(vl.has(n)){let i=t.slice(1).filter((l,u,c)=>!l.startsWith("-")&&!qk.has(c[u-1]??""));i[0]==="workspace"&&i.splice(0,2);let a=i[0]==="run"||i[0]==="run-script"?i[1]:i[0];return a!==void 0&&El.test(a)}let r=t.slice(1),s=r.join(" "),o=r.find(i=>!i.startsWith("-"));if(Yk.has(n)||Qk.test(s)||Xk.has(n)&&Al.test(s))return!0;switch(n){case"next":return o==="dev"||o==="start";case"vite":return!r.includes("build")&&!r.includes("optimize");case"vitest":return o==="watch"||o==="dev";case"cargo":case"dotnet":return o==="watch";case"turbo":{let i=o==="run"?r.filter(a=>!a.startsWith("-"))[1]:o;return i!==void 0&&El.test(i)}case"nx":{let i=o==="run"?r.filter(a=>!a.startsWith("-"))[1]?.split(":")[1]:o;return i!==void 0&&/^(?:serve|dev|start|watch)$/.test(i)}case"ping":return!r.some(i=>/^-[a-zA-Z]*c/.test(i));case"docker":case"podman":case"nerdctl":case"docker-compose":{let i=n==="docker-compose"?r:o==="compose"?r.slice(r.indexOf("compose")+1):null;return i?i.includes("up")&&!i.some(a=>a==="--detach"||/^-[a-zA-Z]*d[a-zA-Z]*$/.test(a)):o==="stats"&&!r.includes("--no-stream")||o==="events"}case"kubectl":return o==="port-forward"||(o==="get"||o==="rollout")&&Al.test(s)||/(?:^|\s)--watch-only(?:\s|=|$)/.test(s);default:return!1}}function tb(e,t){let n=wt(t);return n==="tail"?Vk.test(e):n==="journalctl"?Sl.test(e):n==="stern"||Kk.has(n)&&/\blogs?\b/.test(e)&&Sl.test(e)?!0:eb(e.split(/\s+/))}var vs=/^[A-Za-z_][A-Za-z0-9_]*\+?=/,nb=/^[A-Za-z_][A-Za-z0-9_-]*\s*\(\s*\)/,rb=/(?:^|[;&|\n({])\s*[A-Za-z_][A-Za-z0-9_-]*\s*\(\s*\)/;function wt(e){let t=e.lastIndexOf("/");return t===-1?e:e.slice(t+1)}function Pl(e){let t=new Array(e.length).fill(!1),n=[],r=0;for(;r<e.length;){let s=e[r],o=e[r+1],i=n[n.length-1];if(i==="'"){s==="'"&&n.pop(),r+=1;continue}if(s==="\\"){if(o===void 0)return null;r+=2;continue}if(i==="$'"){s==="'"&&n.pop(),r+=1;continue}if(s==="$"&&(o==="("||o==="{")){n.push(o==="("?")":"}"),r+=2;continue}if(s==="`"){i==="`"?n.pop():n.push("`"),r+=1;continue}if(i==='"'){s==='"'&&n.pop(),r+=1;continue}if(s==="$"&&o==="'"){n.push("$'"),r+=2;continue}if(s==="'"||s==='"'){n.push(s),r+=1;continue}if(s==="("||s==="{"&&i==="}"){n.push(s==="("?")":"}"),r+=1;continue}if(s===i){n.pop(),r+=1;continue}if(s===")"&&i===void 0)return null;t[r]=i===void 0,r+=1}return n.length===0?t:null}function ws(e){let t=Pl(e);if(!t)return!0;for(let n=0;n<e.length;n++)if(t[n]&&e[n]===">")return!0;return!1}function Es(e){let t=Pl(e);if(!t)return[{kind:"cmd",text:e,unsafe:!0}];let n=[],r="",s=0,o=()=>{r.length>0&&(n.push({kind:"cmd",text:r}),r="")},i=(a,l)=>{o(),n.push({kind:"sep",text:a}),s+=l};for(;s<e.length;){let a=e[s],l=e[s+1];if(t[s]){if(a===">"&&l==="|"){r+=">|",s+=2;continue}if(a==="&"&&l==="&"){i("&&",2);continue}if(a==="&"&&l!==">"){let u=r.replace(/\s+$/,""),c=u[u.length-1];if(c!==">"&&c!=="<"&&c!=="&"){i("&",1);continue}}if(a==="|"&&l==="|"){i("||",2);continue}if(a==="|"&&l==="&"){i("|&",2);continue}if(a===";"&&l===";"){let u=e[s+2]==="&";i(u?";;&":";;",u?3:2);continue}if(a===";"||a===`
112
+ `||a==="|"){i(a,1);continue}}r+=a,s+=1}return o(),n}function Dl(e){return e.trim().split(/\s+/)[0]??""}function oe(e,t=process.platform){try{let n=Ol(Lk(import.meta.url)),r=t==="win32",s=e&&e!=="claude-code"&&e!=="codex"&&!r?`TOKMIZER_HOST=${e} `:"";if(r&&(!e||e==="claude-code")){let l=O(n,"..","bin","tkr-exec.exe");if(Xe(l))return xs(l,t)?`'${l.replace(/\\/g,"/").replace(/'/g,"'\\''")}'`:null}let o=O(n,"..","bin","tkr-exec"),i=!r&&Xe(o);if(i&&!xs(o,t))return null;if(!r&&process.env.TOKMIZER_STABLE_RUN!=="0"){let l=da(O(n,"..","bin","tkr-exec.js"));if(l&&(i||Xe(O(n,"..","bin","tkr-exec.js"))))return`${s}'${l.replace(/'/g,"'\\''")}'`}if(i)return`${s}'${o.replace(/'/g,"'\\''")}'`;if(Te()){let l=r?process.execPath.replace(/\\/g,"/"):process.execPath;return`${s}'${l.replace(/'/g,"'\\''")}' exec`}let a=O(n,"..","bin","tkr-exec.js");return Xe(a)?`${s}node '${a.replace(/'/g,"'\\''")}'`:null}catch{return null}}function sb(e,t="tkr-exec",n=()=>!0,r){return Ll(e,t,0,n,r)}var ob=new Set(["{","for","while","until","if","case","select"]),ib=new Set(["}","done","fi","esac"]),ab=new Set(["then","do","else","elif","!","time","{","if","while","until"]);function lb(e,t){let n=e[t+1];return ws(e[t].text)||n?.kind==="sep"&&(n.text==="|"||n.text==="|&")}function ub(e){let t=new Set,n=[];for(let r=0;r<e.length;r++){let s=e[r];if(!(s.kind!=="cmd"||s.unsafe))for(let o of s.text.trim().split(/\s+/)){if(ib.has(o)){let i=n.pop();if(i!==void 0&&lb(e,r))for(let a=i;a<=r;a++)t.add(a);continue}if(ob.has(o)&&n.push(r),!ab.has(o))break}}return t}function Ll(e,t,n,r,s){if(e.includes("<<")||rb.test(e))return e;let o=Es(e),i=ub(o),a=[];for(let l=0;l<o.length;l++){let u=o[l];if(u.kind==="sep"||u.unsafe||i.has(l)){a.push(u.text);continue}let c=u.text.trim();if(!c){a.push(u.text);continue}let f=Dl(c),d=o[l+1],p=d?.kind==="sep"&&(d.text==="|"||d.text==="|&"),g=d?.kind==="sep"&&d.text==="&",y=!p&&!g&&!ws(u.text)&&!u.text.includes("<(")&&!u.text.includes(">(")?Wk(c,t,n,r,s):null;if(y!==null){a.push(`${u.text.match(/^\s*/)?.[0]??""}${y}${u.text.match(/\s*$/)?.[0]??""}`);continue}if(c===t||c.startsWith(t)&&/^\s/.test(c.slice(t.length))||Mk.has(f)||jk.has(f)||(xl.has(f)||xl.has(wt(f)))&&!Uk(c)||vs.test(f)||f.startsWith("(")||f.startsWith("#")||f.startsWith("<")||f.startsWith(">")||nb.test(c)||tb(c,f)||f.endsWith(")")||p||g||ws(u.text)||u.text.includes("<(")||u.text.includes(">(")||f==="node"&&c.includes("tkr-exec.js")||!r(f,c)){a.push(u.text);continue}let m=u.text.match(/^\s*/)?.[0]??"",_=u.text.match(/\s*$/)?.[0]??"";s?.(c),a.push(`${m}${t} ${c}${_}`)}return a.join("")}var cb=new Set(["command","workdir","timeout_ms","yield_time_ms","max_output_tokens","shell","login","tty","description"]),fb=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"]),db=new Set(["log","diff","show","status","blame","ls-files","rev-parse","describe","shortlog"]),pb={find:/^-(?:delete|exec|execdir|ok|okdir|fprint|fls)/,sort:/^(?:-[^-]*o|--output|--compress-program)/,rg:/^(?:--pre|--hostname-bin|-[^-]*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/},zn=["test","run test","run build","run lint","run typecheck"],mb={npm:new Set(zn),pnpm:new Set([...zn,"build","lint","typecheck"]),yarn:new Set([...zn,"build","lint","typecheck"]),bun:new Set(zn),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"])},hb=new Set(["pytest","tsc","vitest","jest","eslint","mypy"]);function Fl(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 Es(e)){if(r.kind==="sep")continue;if(r.unsafe)return!1;let s=n<Il?Nl(r.text.trim()):null;if(s){if(!Fl(s.script,t,n+1))return!1;continue}let o=r.text.trim().split(/\s+/).filter(Boolean).map(u=>u.replace(/['"\\]/g,""));if(o.length===0)continue;if(o.some(u=>vs.test(u)))return!1;let i=wt(o[0]);if(i!==o[0])return!1;let a=pb[i];if(a&&o.slice(1).some(u=>a.test(u)))return!1;if((i==="git"?db.has(o[1]??""):fb.has(i))||t&&hb.has(i))continue;let l=t?mb[i]:void 0;if(!(l&&(l.has(o[1]??"")||o[1]==="run"&&l.has(`run ${o[2]??""}`))))return!1}return!0}function Ml(e,t,n=oe(t),r=ne,s=Bn(),o=process.env.PATH,i=Ts){if(!H(e)||e.tool_name!=="Bash"||t==="claude-code"&&yb(i()))return null;let a=e.tool_input;if(!H(a)||a.run_in_background)return null;let l=a.command;if(typeof l!="string"||!l||t==="codex"&&Object.keys(a).some(y=>!cb.has(y)))return null;let u=typeof e.cwd=="string"&&e.cwd?e.cwd:a.workdir,c=typeof u=="string"&&u?u:void 0,f=typeof e.session_id=="string"&&e.session_id?e.session_id:"unknown",d=typeof e.permission_mode=="string"?e.permission_mode:void 0,p=Gl(l,{host:t,sessionId:f,cwd:c,claudeDirs:s,pathEnv:o,permissionMode:d},n,r);if(!p)return null;let g={...a,command:p.command};return JSON.stringify({hookSpecificOutput:t==="codex"?{hookEventName:"PreToolUse",permissionDecision:"allow",updatedInput:g}:p.allowedBy?{hookEventName:"PreToolUse",permissionDecision:"allow",permissionDecisionReason:`Tokmizer: allowed by your rule ${p.allowedBy}`,updatedInput:g}:p.ask?{hookEventName:"PreToolUse",permissionDecision:"ask",permissionDecisionReason:"Tokmizer shortens this command's output; nothing else changes.",updatedInput:g}:{hookEventName:"PreToolUse",updatedInput:g}})}var gb=/(?:^|\s)--(?:disallowedTools|disallowed-tools|settings|setting-sources)(?:[=\s]|$)/;function Ts(e=process.env,t=process.platform){let n=Number(e.CLAUDE_PID)||process.ppid;if(t==="win32"||!Number.isInteger(n)||n<=1)return null;try{let r=Pk("ps",["-ww","-o","args=","-p",String(n)],{encoding:"utf8",timeout:2e3});return r.status===0&&r.stdout.trim()?r.stdout:null}catch{return null}}function yb(e){return e===null||gb.test(e)}function kb(e,t){if(!Xe(e))return"missing";try{let n=tn(e,"utf8").replace(/^\uFEFF/,"");return n.trim()===""?{}:JSON.parse(t?jl(n):n)}catch{return"unreadable"}}function jl(e){let t="",n=!1;for(let r=0;r<e.length;r++){let s=e[r];if(n){t+=s,s==="\\"?t+=e[++r]??"":s==='"'&&(n=!1);continue}if(s==='"')n=!0,t+=s;else if(s==="/"&&e[r+1]==="/"){for(;r<e.length&&e[r]!==`
113
113
  `;)r++;t+=`
114
- `}else if(s==="/"&&e[r+1]==="*"){if(r=e.indexOf("*/",r+2),r===-1)return"";r+=1}else t+=s}return t.replace(/,(\s*[}\]])/g,"$1")}function St(e){let t=[],n=Lk(e);for(;;){t.push(n);let r=Cl(n);if(r===n)return t;n=r}}function kb(){let e=process.platform==="darwin"?"/Library/Application Support/ClaudeCode":process.platform==="win32"?"C:\\Program Files\\ClaudeCode":"/etc/claude-code",t=[O(e,"managed-settings.json")];try{for(let n of Un(O(e,"managed-settings.d")))n.endsWith(".json")&&t.push(O(e,"managed-settings.d",n))}catch{return t}return t}function rn(e,t,n,r){let s=[];for(let o of e){let i=yb(o,t);if(i!=="missing"&&(i==="unreadable"||!H(i)||!n(i,s)))return"unreadable"}return{matchers:s,complete:r}}function nn(e){return e===void 0?[]:Array.isArray(e)?e.filter(t=>typeof t=="string"):null}function Bn(){return{projectDir:process.env.CLAUDE_PROJECT_DIR,configDir:process.env.CLAUDE_CONFIG_DIR?.trim()?$n():void 0}}function bb(e,t){let n=m=>[O(m,"settings.json"),O(m,"settings.local.json")],r=m=>n(O(m,".claude")),s=O(Qe(),".claude"),o=t.configDir||s,i=[[kb(),"managed"],[[O(o,"settings.json")],"loaded"],[[O(o,"settings.local.json")],"loadedLocal"],[t.configDir?n(s):[],"extra"],[t.projectDir?r(t.projectDir):[],"project"],[St(e).flatMap(r),"extra"]],a=[],l={managed:[],loaded:[],loadedLocal:[],project:[],extra:[]},u={managed:!1,loaded:!1,loadedLocal:!1,project:!1,extra:!1},c=!1,f="managed",d=(m,w)=>{let x=m.permissions;if(f==="managed"&&(m.allowManagedPermissionRulesOnly===!0||H(x)&&x.allowManagedPermissionRulesOnly===!0)&&(c=!0),x===void 0)return!0;if(!H(x))return!1;for(let C of["deny","ask","allow"]){let I=nn(x[C]);if(!I)return!1;for(let L of I){let M=/^\s*Bash\s*(?:\(([\s\S]*)\))?\s*$/.exec(L);if(M)if(C!=="allow")w.push(et((M[1]??"*").replace(/:\*$/," *")));else if(M[1]===void 0||M[1].trim()==="*")u[f]=!0;else{a.push(et(M[1].replace(/:\*$/," *")));let J=jb(M[1]);J&&l[f].push({rule:L.trim(),matches:J})}}}return!0},p=[];for(let[m,w]of i){f=w;let x=rn(m,!1,d,!0);if(x==="unreadable")return"unreadable";p.push(...x.matchers)}let h=u.managed||(u.loaded||u.loadedLocal)&&!c,y=[...l.managed,...c?[]:l.loaded];return{matchers:[...p,...h?[]:a],complete:!0,allow:a,allowsEverything:h,guards:p,trustedAllow:y}}function _b(e){let t=[O(Qe(),".cursor","cli-config.json"),...St(e).map(n=>O(n,".cursor","cli.json"))];return rn(t,!0,(n,r)=>{let s=n.permissions;if(s===void 0)return!0;if(!H(s))return!1;let o=nn(s.deny);if(!o)return!1;for(let i of o){let a=/^\s*Shell\s*(?:\(([\s\S]*)\))?\s*$/.exec(i);if(!a)continue;let l=a[1]??"*",u=l.indexOf(":");r.push(et(u===-1?`${l} *`:`${l.slice(0,u)} ${l.slice(u+1)}`))}return!0},!1)}function xb(){return process.platform==="darwin"?"/Library/Application Support/GeminiCli":process.platform==="win32"?"C:\\ProgramData\\gemini-cli":"/etc/gemini-cli"}var jl=/^\s*(?:run_shell_command|ShellTool)\s*(?:\(([\s\S]*)\))?\s*$/;function wb(e,t){let n=e.tools;if(n!==void 0&&!H(n))return!1;let r=[nn(e.excludeTools),nn(H(n)?n.exclude:void 0)];for(let s of r){if(!s)return!1;for(let o of s){let i=jl.exec(o);i&&t.push(et(i[1]===void 0?"*":`${i[1]}*`))}}return!0}function Al(e){try{return JSON.parse(e)}catch{return null}}function Sb(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 s=r[2]??Al(`"${r[1]}"`);if(s===null)return null;n.push(s)}return n}if(t.startsWith('"')){let n=/^"((?:\\.|[^"\\])*)"/.exec(t);return n?Al(`"${n[1]}"`):null}if(t.startsWith("'")){let n=/^'([^']*)'/.exec(t);return n?n[1]:null}return t.replace(/\s*#.*$/,"")}function vb(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 u=/^\s*([A-Za-z_]+)\s*=\s*(.*)$/.exec(l);if(!u)continue;let c=Sb(u[2]);if(c===null)return!1;r[u[1]]=c}let s=r.decision;if(s!=="deny"&&s!=="ask_user"||!(r.toolName===void 0?["*"]:[r.toolName].flat()).some(l=>l==="*"||jl.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(et(`${l}*`));for(let l of a){let u;try{u=new RegExp(l)}catch{return!1}t.push(c=>u.test(JSON.stringify({command:c}))||Zn(u,c))}}return!0}function Rl(e){try{return Un(e).filter(t=>t.endsWith(".toml")).map(t=>O(e,t))}catch{return[]}}function Eb(e){let t=xb(),n=[O(t,"system-defaults.json"),O(t,"settings.json"),process.env.GEMINI_CLI_SYSTEM_SETTINGS_PATH,process.env.GEMINI_CLI_SYSTEM_DEFAULTS_PATH,O(Qe(),".gemini","settings.json"),...St(e).map(s=>O(s,".gemini","settings.json"))].filter(s=>!!s),r=rn(n,!0,wb,!1);if(r==="unreadable")return r;for(let s of[...Rl(O(Qe(),".gemini","policies")),...Rl(O(t,"policies"))]){let o;try{o=tn(s,"utf8")}catch{return"unreadable"}if(!vb(o,r.matchers))return"unreadable"}return r}function Ss(e,t){if(e===void 0)return!0;if(typeof e=="string")return e!=="allow"&&t.push(()=>!0),!0;if(!H(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(!H(r))return!1;for(let[s,o]of Object.entries(r))o!=="allow"&&t.push(et(s.replace(/\?/g,"*")))}}return!0}function $l(e,t){if(e.permissions!==void 0||!Ss(e.permission,t))return!1;for(let n of["agent","agents","mode"]){let r=e[n];if(r!==void 0){if(!H(r))return!1;for(let s of Object.values(r))if(H(s)&&(s.permissions!==void 0||!Ss(s.permission,t)))return!1}}return!0}function Tb(e){for(let t of e)for(let n of["agent","agents","mode","modes"]){let r;try{r=Un(O(t,n))}catch{continue}for(let s of r)try{if(s.endsWith(".md")&&/permission/i.test(tn(O(t,n,s),"utf8")))return!0}catch{return!0}}return!1}function Ab(e){let t=O(process.env.XDG_CONFIG_HOME||O(Qe(),".config"),"opencode"),n=St(e),r=[t,...n.map(a=>O(a,".opencode"))];if(Tb(r))return"unreadable";let s=["opencode.json","opencode.jsonc","config.json"],o=[...s.map(a=>O(t,a)),process.env.OPENCODE_CONFIG,...n.flatMap(a=>[...s.slice(0,2).map(l=>O(a,l)),...s.slice(0,2).map(l=>O(a,".opencode",l))])].filter(a=>!!a),i=rn(o,!0,$l,!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(Ml(a))}catch{return"unreadable"}if(!(a===process.env.OPENCODE_PERMISSION?Ss(l,i.matchers):H(l)&&$l(l,i.matchers)))return"unreadable"}return i}function Rb(){return rn([O(Qe(),".gemini","antigravity-cli","settings.json")],!0,(e,t)=>{let n=e.permissions;if(n===void 0)return!0;if(!H(n))return!1;for(let r of["deny","ask"]){let s=nn(n[r]);if(!s)return!1;for(let o of s){let i=/^\s*command\s*\(([\s\S]*)\)\s*$/.exec(o);if(!i)continue;let a=i[1].trim();if(!a.startsWith("regex:")){t.push(et(a==="*"?"*":`${a} *`));continue}let l;try{l=new RegExp(a.slice(6))}catch{return!1}t.push(u=>Zn(l,u))}}return!0},!1)}function $b(e){let t=[],n=/\s+|#[^\n]*|("(?:[^"\\\n]|\\.)*"|'(?:[^'\\\n]|\\.)*')|([A-Za-z_][A-Za-z0-9_]*|[()[\],=])|(.)/gy;for(let r=n.exec(e);r&&r[0];r=n.exec(e)){if(r[3]!==void 0)return null;(r[1]!==void 0||r[2]!==void 0)&&t.push(r[1]??r[2])}return t}function Hl(e,t){let n=e[t.i++];if(n===void 0)return;if(/^["']/.test(n))try{return n.startsWith('"')?JSON.parse(n):JSON.parse(`"${n.slice(1,-1).replace(/\\'/g,"'").replace(/"/g,'\\"')}"`)}catch{return}if(n!=="[")return/^[A-Za-z_]/.test(n)?null:void 0;let r=[];for(;e[t.i]!=="]";){let s=Hl(e,t);if(s===void 0)return;if(r.push(s),e[t.i]===",")t.i++;else if(e[t.i]!=="]")return}return t.i++,r}function zl(e){if(!Array.isArray(e)||e.length===0)return null;let t=[];for(let r of e){let s=typeof r=="string"?[r]:Array.isArray(r)?r:null;if(!s||s.length===0||!s.every(o=>typeof o=="string"&&o!==""))return null;t.push(`(?:${s.map(As).join("|")})`)}let n=new RegExp(`^${t.join(" ")}(?= |$)`);return r=>Zn(n,r)}function Cb(e,t){let n=$b(e);if(!n)return!1;for(let r=0;r<n.length;r++){if(n[r]!=="prefix_rule"||n[r+1]!=="(")continue;let s={i:r+2},o={};for(;n[s.i]!==")";){let l=n[s.i];if(!l||!/^[A-Za-z_]/.test(l)||n[s.i+1]!=="="||(s.i+=2,o[l]=Hl(n,s),o[l]===void 0&&(l==="pattern"||l==="decision")))return!1;if(n[s.i]===",")s.i++;else if(n[s.i]!==")")return!1}r=s.i;let i="decision"in o?o.decision:"allow";if(i!=="allow"&&i!=="prompt"&&i!=="forbidden")return!1;let a=zl(o.pattern);if(!a)return!1;i!=="allow"&&t.push(a)}return!0}function Ob(e){if(!Xe(e))return[];try{return Un(e).filter(t=>t.endsWith(".rules")).sort().map(t=>O(e,t))}catch{return"unreadable"}}function Ib(){return process.platform==="win32"?O(process.env.ProgramData||"C:\\ProgramData","OpenAI","Codex","requirements.toml"):"/etc/codex/requirements.toml"}function Nb(e){if(!(!H(e)||Object.keys(e).length!==1)){if(typeof e.token=="string")return e.token;if(Array.isArray(e.any_of)&&e.any_of.every(t=>typeof t=="string"))return e.any_of}}function Pb(e,t){let n;try{n=Dt(e)}catch{return!1}if(n.rules===void 0)return!0;if(!H(n.rules))return!1;let r=n.rules.prefix_rules;if(r===void 0)return!0;if(!Array.isArray(r))return!1;for(let s of r){if(!H(s)||!Array.isArray(s.pattern)||s.decision!=="prompt"&&s.decision!=="forbidden")return!1;let o=s.pattern.map(Nb);if(o.some(a=>a===void 0))return!1;let i=zl(o);if(!i)return!1;t.push(i)}return!0}function Db(e){let t=process.env.CODEX_HOME||O(Qe(),".codex"),n=[O(t,"rules"),...St(e).map(o=>O(o,".codex","rules"))],r=[],s=null;try{s=tn(Ib(),"utf8")}catch(o){let i=o.code;if(i!=="ENOENT"&&i!=="ENOTDIR")return"unreadable"}if(s!==null&&!Pb(s,r))return"unreadable";for(let o of[...new Set(n)]){let i=Ob(o);if(i==="unreadable")return"unreadable";for(let a of i){let l;try{l=tn(a,"utf8")}catch{return"unreadable"}if(!Cb(l,r))return"unreadable"}}return{matchers:r,complete:!1}}function H(e){return e!=null&&typeof e=="object"&&!Array.isArray(e)}function As(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function Lb(e){let t=e.trim().replace(/\s+/g," "),n=t.endsWith(" *")&&t.length>2,r=(n?t.slice(0,-2):t).split("*").map(As).join("[\\s\\S]*");return new RegExp(`^${r}${n?"(?: [\\s\\S]*)?":""}(?= |$)`)}var Fb=512;function Mb(e){let t=e.replace(/['"\\]/g,"").split(/[\s;&|(){}<>`$]+/).filter(Boolean);return[t,t.map(wt)]}function Zn(e,t){if(e.test(t)||e.test(t.trim().replace(/\s+/g," ")))return!0;for(let n of Mb(t)){if(n.length>Fb)return!0;for(let r=0;r<n.length;r++)if(e.test(n.slice(r).join(" ")))return!0}return!1}function et(e){let t=Lb(e);return n=>Zn(t,n)}function jb(e){let t=e.trim().replace(/:\*$/," *"),n=t.endsWith(" *"),r=n?t.slice(0,-2):t;if(!r||r.includes("*")||/\s\s|[^\S ]|^ | $/.test(r))return null;let s=new RegExp(`^${As(r)}${n?"(?: [\\s\\S]*)?":""}$`);return o=>s.test(o)}var Hb={"claude-code":bb,cursor:_b,"gemini-cli":Eb,opencode:Ab,antigravity:Rb,codex:Db},zb=new Set(["codex"]),Ul=/(?:^|[\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 Ub(e,t,n){let r=Hb[e];return r?r(t??process.cwd(),n):{matchers:[],complete:!1}}function Bb(e,t,n){return e==="unreadable"||Ul.test(t.replace(/['"\\]/g,""))||e.matchers.some(r=>r(t))?!1:e.complete||Ll(t,!zb.has(n))}var Bl=new Set(["default","acceptEdits","dontAsk"]);function Zl(e,t){return t.host!=="claude-code"||t.permissionMode==="bypassPermissions"?!0:e!=="unreadable"&&e.allowsEverything===!0&&Bl.has(t.permissionMode??"")}var Zb=/(?:^|[\s/])git(?:\.exe|\.real|-[a-z][\w-]*)?(?=\s|$)/;function Jb(e){if(!e)return!1;try{for(let t of St(e)){let n=O(t,".git");if(Xe(n))return Pk(n).isFile()}}catch{return!0}return!1}function Gb(e,t){let n="pathEnv"in e?e.pathEnv:process.env.PATH,r,s;return(o,i)=>e.host!=="claude-code"?xt(o,e.cwd,n):i!==void 0&&Zb.test(i)&&(s??=Jb(e.cwd))||(r??=gl(t.configDir),!xt(o,e.cwd,n)&&!r.paths.some(a=>xt(o,e.cwd,a)))?!1:o.includes("/")||!yl(o,r)}var Wb=/^[^\s;&|<>()$`\\{}*?[\]~#!]+(?: [^\s;&|<>()$`\\{}*?[\]~#!]+)*$/;function Vb(e,t,n){return n.host!=="claude-code"||e==="unreadable"||Zl(e,n)||!Bl.has(n.permissionMode??"")||!Wb.test(t)||Ul.test(t.replace(/['"]/g,""))||(e.guards??[]).some(r=>r(t))?null:(e.trustedAllow??[]).find(r=>r.matches(t))?.rule??null}var Kb=/^(?:\S+=\S*\s+)*(?:(?:npx|bunx|pnpm\s+exec|yarn\s+exec|uv\s+run|poetry\s+run)\s+)?(?:\.\/)?(?:ctest|gradlew|gradle|mvnw|mvnd|mvn|make|cmake|sbt|phpstan|phpunit|pest|pytest|py\.test|tox|nox|vitest|jest|mocha|playwright\s+test|tsc|(?:cargo|go)\s+(?:build|test|check|clippy|vet)|(?:bun|deno)\s+(?:test|check|lint|install)|(?:npm|pnpm|yarn)\s+(?:test|t|ci|install|run\s+\S+)|dotnet\s+(?:build|test)|swift\s+(?:build|test)|composer\s+(?:install|update|test))(?:\s|$)/;function qb(e,t){return t.host==="claude-code"&&t.permissionMode==="default"&&Kb.test(e.trim())}function Jl(e,t,n,r){if(!n||/["\\$`;&|<>(){}]|'\\''/.test(n))return null;let s=t.claudeDirs??Bn(),o=Ub(t.host,t.cwd,s),i=Vb(o,e,t),a=i||Bb(o,e,t.host)?rb(e,n,Gb(t,s)):e;return a!==e&&o!=="unreadable"&&(i?(o.guards??[]).some(l=>l(a)):o.matchers.some(l=>l(a))||(o.allow??[]).some(l=>l(a)&&!l(e)))&&(a=e),r(t.sessionId,a!==e),a===e?null:i?{command:a,allowedBy:i}:Zl(o,t)?{command:a}:o!=="unreadable"&&qb(e,t)&&!(o.allow??[]).some(l=>l(e))&&!(o.trustedAllow??[]).some(l=>l.matches(e))?{command:a,ask:!0}:null}function Ce(e,t,n,r){let s=Jl(e,t,n,r);return s&&!s.ask?s.command:null}function Z(e,t){let n=e[t];return typeof n=="string"&&n?n:null}function sn(e){return e!=null&&typeof e=="object"&&!Array.isArray(e)}function Yb(e){return Z(e,"prompt_id")||Z(e,"scratchpad_dir")?!0:sn(e.effort)}function Xb(e){return Z(e,"tool_use_id")?.startsWith("toolu_")===!0||/^claude/i.test(Z(e,"model")??"")}var Qb=new Set(["BeforeTool","AfterTool","BeforeAgent","AfterAgent","BeforeModel","AfterModel","BeforeToolSelection"]),e_=new Set(["preToolUse","postToolUse","beforeShellExecution","afterShellExecution","beforeSubmitPrompt","sessionStart","sessionEnd","stop"]),t_=new Set(["pre_tool","post_tool"]),n_=new Set(["before_tool_call","after_tool_call"]),r_=new Set(["runTerminalCommand","run_in_terminal"]),s_=[["codex",e=>Z(e,"turn_id")!==null],["claude-code",Yb],["cursor",e=>Z(e,"cursor_version")!==null||Z(e,"generation_id")!==null||Z(e,"conversation_id")!==null||Array.isArray(e.workspace_roots)||e_.has(Z(e,"hook_event_name")??"")],["gemini-cli",e=>Qb.has(Z(e,"hook_event_name")??"")],["qwen-code",e=>e.hook_event_name==="PreToolUse"&&e.tool_name==="run_shell_command"],["vibe",e=>t_.has(Z(e,"hook_event_name")??"")],["antigravity",e=>sn(e.toolCall)],["copilot",e=>Z(e,"toolName")!==null&&"toolArgs"in e||r_.has(Z(e,"tool_name")??"")],["grok",e=>e.toolName==="run_terminal_command"||e.tool_name==="run_terminal_command"||sn(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&&Z(e,"event")!==null&&!n_.has(Z(e,"event"))]],o_=new Set(["codex","antigravity"]);function Rs(e){return sn(e)?s_.filter(([,t])=>t(e)).map(([t])=>t):[]}function Gl(e,t){if(!sn(e))return null;let n=Rs(e);return n.length>1?null:n.length===1?n[0]:Xb(e)&&o_.has(t)?"claude-code":t==="codex"?null:t}var $s=JSON.stringify({permission:"allow"});function Wl(e,t=oe("cursor"),n=ne){if(e.tool_name!=="Shell")return $s;let r=e.tool_input??{},s=r.command;if(typeof s!="string"||!s)return $s;let o=typeof r.working_directory=="string"?r.working_directory:void 0,i=Ce(s,{host:"cursor",sessionId:e.conversation_id??"unknown",cwd:o},fe()?null:t,n);return i?JSON.stringify({permission:"allow",updated_input:{...r,command:i}}):$s}var Jn="{}";function Vl(e,t=oe("gemini-cli"),n=ne){if(e.hook_event_name!=="BeforeTool"||e.tool_name!=="run_shell_command")return Jn;let r=e.tool_input??{};if(r.is_background)return Jn;let s=r.command;if(typeof s!="string"||!s)return Jn;let o=typeof e.cwd=="string"?e.cwd:void 0,i=Ce(s,{host:"gemini-cli",sessionId:e.session_id??"unknown",cwd:o},fe()?null:t,n);return i?JSON.stringify({hookSpecificOutput:{tool_input:{command:i}}}):Jn}function Et(e,t,n="unknown",r=oe(t),s=ne){return e?Ce(e,{host:t,sessionId:n},fe()?null:r,s):null}var i_=new Set(["bash","file_system.bash"]),Cs=JSON.stringify({decision:"allow"});function Kl(e,t=(n,r)=>Et(n,"vibe",r)){if(!D(e)||e.hook_event_name!=="pre_tool"||typeof e.tool_name!="string"||!i_.has(e.tool_name))return"";let n=e.tool_input;if(!D(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 ql(e,t=(n,r)=>Et(n,"antigravity",r)){if(!D(e)||!D(e.toolCall)||e.toolCall.name!=="run_command")return Cs;let n=e.toolCall.args;if(!D(n)||typeof n.CommandLine!="string"||!n.CommandLine)return Cs;let r=t(n.CommandLine,typeof e.conversationId=="string"?e.conversationId:"unknown");return r?JSON.stringify({decision:"allow",overwrite:{CommandLine:r}}):Cs}var _e="{}",a_=new Set(["runTerminalCommand","run_in_terminal","Bash","bash"]),l_=["run_in_background","is_background","isBackground"];function Gn(e){return e!=null&&typeof e=="object"&&!Array.isArray(e)}function u_(e){let t=e.session_id??e.sessionId;return typeof t=="string"&&t?t:"unknown"}function c_(e,t){let n=e.cwd??t.cwd??t.workdir??t.working_directory;return typeof n=="string"&&n?n:void 0}function Wn(e,t,n,r,s){if(!Gn(t)||l_.some(i=>t[i]===!0))return null;let o=t.command;return typeof o!="string"||!o?null:Ce(o,{host:e,sessionId:u_(n),cwd:c_(n,t)},fe()?null:r,s)}function At(e,t){return JSON.stringify({hookSpecificOutput:{hookEventName:"PreToolUse",updatedInput:{...e,command:t}}})}function f_(e){if(Gn(e))return e;if(typeof e!="string")return null;try{let t=JSON.parse(e);return Gn(t)?t:null}catch{return null}}function d_(e,t,n){if(typeof e.tool_name=="string"){if(!a_.has(e.tool_name))return _e;let o=e.tool_input,i=Wn("copilot",o,e,t,n);return i?At(o,i):_e}if(e.toolName!=="bash")return _e;let r=f_(e.toolArgs),s=Wn("copilot",r,e,t,n);return s?JSON.stringify({modifiedArgs:{...r,command:s}}):_e}function Tt(e,t,n){return(r,s,o)=>{if(r.tool_name!==t)return _e;let i=r.tool_input,a=Wn(e,i,r,s,o);return a?n(i,a):_e}}var p_=new Set(["run_terminal_command","Bash","bash"]);function m_(e,t,n){let r=e.toolName??e.tool_name;if(typeof r!="string"||!p_.has(r))return _e;let s=e.toolInput??e.tool_input,o=Wn("grok",s,e,t,n);return o?At(s,o):_e}var h_={copilot:d_,droid:Tt("droid","Execute",At),trae:Tt("trae","RunCommand",At),"qwen-code":Tt("qwen-code","run_shell_command",At),crush:Tt("crush","bash",(e,t)=>JSON.stringify({updated_input:{command:t}})),junie:Tt("junie","Bash",(e,t)=>JSON.stringify({updatedInput:{...e,command:t}})),zcode:Tt("zcode","Bash",At),grok:m_};function Yl(e,t,n=oe(e),r=ne){return Gn(t)?h_[e](t,n,r):_e}function Rt(e){return fe()?null:oe(e)}function g_(e,t,n={}){let r=n.recordUsage??ne;switch(e){case"claude-code":case"codex":return t.hook_event_name!==void 0&&t.hook_event_name!=="PreToolUse"?"":Fl(t,e,Rt(e),r,n.claudeDirs??Bn(),n.pathEnv??process.env.PATH,n.launchArgs??Ts)??"";case"cursor":return Wl(t,Rt(e),r);case"gemini-cli":return Vl(t,Rt(e),r);case"vibe":return Kl(t,(s,o)=>Et(s,"vibe",o,Rt(e),r));case"antigravity":return ql(t,(s,o)=>Et(s,"antigravity",o,Rt(e),r));default:return Yl(e,t,Rt(e),r)}}function vt(e,t,n={}){let r=Gl(e,t);return r?g_(r,e,n):n.fallback??""}var y_=new Set(["shell","bash","exec","run_shell_command","execute_shell_command"]);async function k_(e){if(e.event!=="after_tool_call")return{action:"continue"};if(!y_.has(e.tool))return{action:"continue"};let t=typeof e.command=="string"?e.command:Array.isArray(e.args)&&e.args.every(x=>typeof x=="string")?e.args.join(" "):"";if(!t)return{action:"continue"};let n=typeof e.stdout=="string"?e.stdout:"",r=typeof e.stderr=="string"?e.stderr:"",s=fl();if(!n&&(!s||!r))return{action:"continue"};let o=await ht();if(!o.enabled)return{action:"continue"};let i=await Ht();if(!i||!i.token)return{action:"continue"};let a=vi(i);ul(a);let l=Tn(i.allowedFilters,Si(i)),u=new Set(o.filters.disabled.map(X)),c=l&&u.size>0?new Set([...l].filter(x=>!u.has(x))):l,f,d=null;try{f=await Or(t,n,c,{verbosity:o.outputVerbosity,yolo:s,exitCode:e.exit_code}),s&&r&&(d=await Or(t,r,c,{verbosity:o.outputVerbosity,yolo:s,exitCode:e.exit_code}))}finally{cl()}let p=f.filteredBytes<f.rawBytes||d!=null&&d.filteredBytes<d.rawBytes,h=d?.output??r,y=h?f.output?`${f.output}
115
- ${h}`:h:f.output,m=Buffer.byteLength(n,"utf8")+Buffer.byteLength(r,"utf8"),w=Xi(m,p?Buffer.byteLength(y,"utf8"):m,Qa("codex"));return qi(w.raw,w.filtered,void 0,!1,"codex","sh",Ki(t),process.cwd(),Yi(f)),await Di({cmd:t,filterId:f.filterId,rawBytes:f.rawBytes,filteredBytes:f.filteredBytes,plan:a}),await Pi({cmd:t,tokensSaved:Math.max(0,Math.round((w.raw-w.filtered)/4)),rawTokens:Math.round(w.raw/4),optimized:f.filterId!=null,telemetryOptIn:o.telemetryOptIn,host:"codex"}),p?{action:"replace_output",replacement:y,reason:"tokmizer"}:{action:"continue"}}var b_=new Set(["before_tool_call","after_tool_call"]);async function __(e){let t=JSON.stringify({action:"continue"});if(!e)return t;let n;try{n=JSON.parse(e)}catch{return t}if(n==null||typeof n!="object"||Array.isArray(n))return t;if(n.hook_event_name!==void 0||!b_.has(n.event)&&Rs(n).length>0)return vt(n,"codex");try{return JSON.stringify(await k_(n))}catch(r){return process.stderr.write(`tkr-codex: ${r.message}
116
- `),t}}async function Xl(){let e=await __(await mt());e&&process.stdout.write(e)}Xl().catch(e=>{process.stderr.write(`tkr-codex-hook: ${e.message}
114
+ `}else if(s==="/"&&e[r+1]==="*"){if(r=e.indexOf("*/",r+2),r===-1)return"";r+=1}else t+=s}return t.replace(/,(\s*[}\]])/g,"$1")}function St(e){let t=[],n=Fk(e);for(;;){t.push(n);let r=Ol(n);if(r===n)return t;n=r}}function bb(){let e=process.platform==="darwin"?"/Library/Application Support/ClaudeCode":process.platform==="win32"?"C:\\Program Files\\ClaudeCode":"/etc/claude-code",t=[O(e,"managed-settings.json")];try{for(let n of Un(O(e,"managed-settings.d")))n.endsWith(".json")&&t.push(O(e,"managed-settings.d",n))}catch{return t}return t}function rn(e,t,n,r){let s=[];for(let o of e){let i=kb(o,t);if(i!=="missing"&&(i==="unreadable"||!H(i)||!n(i,s)))return"unreadable"}return{matchers:s,complete:r}}function nn(e){return e===void 0?[]:Array.isArray(e)?e.filter(t=>typeof t=="string"):null}function Bn(){return{projectDir:process.env.CLAUDE_PROJECT_DIR,configDir:process.env.CLAUDE_CONFIG_DIR?.trim()?$n():void 0}}function _b(e,t){let n=m=>[O(m,"settings.json"),O(m,"settings.local.json")],r=m=>n(O(m,".claude")),s=O(Qe(),".claude"),o=t.configDir||s,i=[[bb(),"managed"],[[O(o,"settings.json")],"loaded"],[[O(o,"settings.local.json")],"loadedLocal"],[t.configDir?n(s):[],"extra"],[t.projectDir?r(t.projectDir):[],"project"],[St(e).flatMap(r),"extra"]],a=[],l={managed:[],loaded:[],loadedLocal:[],project:[],extra:[]},u={managed:!1,loaded:!1,loadedLocal:!1,project:!1,extra:!1},c=!1,f="managed",d=(m,_)=>{let w=m.permissions;if(f==="managed"&&(m.allowManagedPermissionRulesOnly===!0||H(w)&&w.allowManagedPermissionRulesOnly===!0)&&(c=!0),w===void 0)return!0;if(!H(w))return!1;for(let R of["deny","ask","allow"]){let I=nn(w[R]);if(!I)return!1;for(let L of I){let M=/^\s*Bash\s*(?:\(([\s\S]*)\))?\s*$/.exec(L);if(M)if(R!=="allow")_.push(et((M[1]??"*").replace(/:\*$/," *")));else if(M[1]===void 0||M[1].trim()==="*")u[f]=!0;else{a.push(et(M[1].replace(/:\*$/," *")));let J=Hb(M[1]);J&&l[f].push({rule:L.trim(),matches:J})}}}return!0},p=[];for(let[m,_]of i){f=_;let w=rn(m,!1,d,!0);if(w==="unreadable")return"unreadable";p.push(...w.matchers)}let g=u.managed||(u.loaded||u.loadedLocal)&&!c,y=[...l.managed,...c?[]:l.loaded];return{matchers:[...p,...g?[]:a],complete:!0,allow:a,allowsEverything:g,guards:p,trustedAllow:y}}function xb(e){let t=[O(Qe(),".cursor","cli-config.json"),...St(e).map(n=>O(n,".cursor","cli.json"))];return rn(t,!0,(n,r)=>{let s=n.permissions;if(s===void 0)return!0;if(!H(s))return!1;let o=nn(s.deny);if(!o)return!1;for(let i of o){let a=/^\s*Shell\s*(?:\(([\s\S]*)\))?\s*$/.exec(i);if(!a)continue;let l=a[1]??"*",u=l.indexOf(":");r.push(et(u===-1?`${l} *`:`${l.slice(0,u)} ${l.slice(u+1)}`))}return!0},!1)}function wb(){return process.platform==="darwin"?"/Library/Application Support/GeminiCli":process.platform==="win32"?"C:\\ProgramData\\gemini-cli":"/etc/gemini-cli"}var Hl=/^\s*(?:run_shell_command|ShellTool)\s*(?:\(([\s\S]*)\))?\s*$/;function Sb(e,t){let n=e.tools;if(n!==void 0&&!H(n))return!1;let r=[nn(e.excludeTools),nn(H(n)?n.exclude:void 0)];for(let s of r){if(!s)return!1;for(let o of s){let i=Hl.exec(o);i&&t.push(et(i[1]===void 0?"*":`${i[1]}*`))}}return!0}function Rl(e){try{return JSON.parse(e)}catch{return null}}function vb(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 s=r[2]??Rl(`"${r[1]}"`);if(s===null)return null;n.push(s)}return n}if(t.startsWith('"')){let n=/^"((?:\\.|[^"\\])*)"/.exec(t);return n?Rl(`"${n[1]}"`):null}if(t.startsWith("'")){let n=/^'([^']*)'/.exec(t);return n?n[1]:null}return t.replace(/\s*#.*$/,"")}function Eb(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 u=/^\s*([A-Za-z_]+)\s*=\s*(.*)$/.exec(l);if(!u)continue;let c=vb(u[2]);if(c===null)return!1;r[u[1]]=c}let s=r.decision;if(s!=="deny"&&s!=="ask_user"||!(r.toolName===void 0?["*"]:[r.toolName].flat()).some(l=>l==="*"||Hl.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(et(`${l}*`));for(let l of a){let u;try{u=new RegExp(l)}catch{return!1}t.push(c=>u.test(JSON.stringify({command:c}))||Zn(u,c))}}return!0}function $l(e){try{return Un(e).filter(t=>t.endsWith(".toml")).map(t=>O(e,t))}catch{return[]}}function Tb(e){let t=wb(),n=[O(t,"system-defaults.json"),O(t,"settings.json"),process.env.GEMINI_CLI_SYSTEM_SETTINGS_PATH,process.env.GEMINI_CLI_SYSTEM_DEFAULTS_PATH,O(Qe(),".gemini","settings.json"),...St(e).map(s=>O(s,".gemini","settings.json"))].filter(s=>!!s),r=rn(n,!0,Sb,!1);if(r==="unreadable")return r;for(let s of[...$l(O(Qe(),".gemini","policies")),...$l(O(t,"policies"))]){let o;try{o=tn(s,"utf8")}catch{return"unreadable"}if(!Eb(o,r.matchers))return"unreadable"}return r}function Ss(e,t){if(e===void 0)return!0;if(typeof e=="string")return e!=="allow"&&t.push(()=>!0),!0;if(!H(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(!H(r))return!1;for(let[s,o]of Object.entries(r))o!=="allow"&&t.push(et(s.replace(/\?/g,"*")))}}return!0}function Cl(e,t){if(e.permissions!==void 0||!Ss(e.permission,t))return!1;for(let n of["agent","agents","mode"]){let r=e[n];if(r!==void 0){if(!H(r))return!1;for(let s of Object.values(r))if(H(s)&&(s.permissions!==void 0||!Ss(s.permission,t)))return!1}}return!0}function Ab(e){for(let t of e)for(let n of["agent","agents","mode","modes"]){let r;try{r=Un(O(t,n))}catch{continue}for(let s of r)try{if(s.endsWith(".md")&&/permission/i.test(tn(O(t,n,s),"utf8")))return!0}catch{return!0}}return!1}function Rb(e){let t=O(process.env.XDG_CONFIG_HOME||O(Qe(),".config"),"opencode"),n=St(e),r=[t,...n.map(a=>O(a,".opencode"))];if(Ab(r))return"unreadable";let s=["opencode.json","opencode.jsonc","config.json"],o=[...s.map(a=>O(t,a)),process.env.OPENCODE_CONFIG,...n.flatMap(a=>[...s.slice(0,2).map(l=>O(a,l)),...s.slice(0,2).map(l=>O(a,".opencode",l))])].filter(a=>!!a),i=rn(o,!0,Cl,!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(jl(a))}catch{return"unreadable"}if(!(a===process.env.OPENCODE_PERMISSION?Ss(l,i.matchers):H(l)&&Cl(l,i.matchers)))return"unreadable"}return i}function $b(){return rn([O(Qe(),".gemini","antigravity-cli","settings.json")],!0,(e,t)=>{let n=e.permissions;if(n===void 0)return!0;if(!H(n))return!1;for(let r of["deny","ask"]){let s=nn(n[r]);if(!s)return!1;for(let o of s){let i=/^\s*command\s*\(([\s\S]*)\)\s*$/.exec(o);if(!i)continue;let a=i[1].trim();if(!a.startsWith("regex:")){t.push(et(a==="*"?"*":`${a} *`));continue}let l;try{l=new RegExp(a.slice(6))}catch{return!1}t.push(u=>Zn(l,u))}}return!0},!1)}function Cb(e){let t=[],n=/\s+|#[^\n]*|("(?:[^"\\\n]|\\.)*"|'(?:[^'\\\n]|\\.)*')|([A-Za-z_][A-Za-z0-9_]*|[()[\],=])|(.)/gy;for(let r=n.exec(e);r&&r[0];r=n.exec(e)){if(r[3]!==void 0)return null;(r[1]!==void 0||r[2]!==void 0)&&t.push(r[1]??r[2])}return t}function zl(e,t){let n=e[t.i++];if(n===void 0)return;if(/^["']/.test(n))try{return n.startsWith('"')?JSON.parse(n):JSON.parse(`"${n.slice(1,-1).replace(/\\'/g,"'").replace(/"/g,'\\"')}"`)}catch{return}if(n!=="[")return/^[A-Za-z_]/.test(n)?null:void 0;let r=[];for(;e[t.i]!=="]";){let s=zl(e,t);if(s===void 0)return;if(r.push(s),e[t.i]===",")t.i++;else if(e[t.i]!=="]")return}return t.i++,r}function Ul(e){if(!Array.isArray(e)||e.length===0)return null;let t=[];for(let r of e){let s=typeof r=="string"?[r]:Array.isArray(r)?r:null;if(!s||s.length===0||!s.every(o=>typeof o=="string"&&o!==""))return null;t.push(`(?:${s.map(As).join("|")})`)}let n=new RegExp(`^${t.join(" ")}(?= |$)`);return r=>Zn(n,r)}function Ob(e,t){let n=Cb(e);if(!n)return!1;for(let r=0;r<n.length;r++){if(n[r]!=="prefix_rule"||n[r+1]!=="(")continue;let s={i:r+2},o={};for(;n[s.i]!==")";){let l=n[s.i];if(!l||!/^[A-Za-z_]/.test(l)||n[s.i+1]!=="="||(s.i+=2,o[l]=zl(n,s),o[l]===void 0&&(l==="pattern"||l==="decision")))return!1;if(n[s.i]===",")s.i++;else if(n[s.i]!==")")return!1}r=s.i;let i="decision"in o?o.decision:"allow";if(i!=="allow"&&i!=="prompt"&&i!=="forbidden")return!1;let a=Ul(o.pattern);if(!a)return!1;i!=="allow"&&t.push(a)}return!0}function Ib(e){if(!Xe(e))return[];try{return Un(e).filter(t=>t.endsWith(".rules")).sort().map(t=>O(e,t))}catch{return"unreadable"}}function Nb(){return process.platform==="win32"?O(process.env.ProgramData||"C:\\ProgramData","OpenAI","Codex","requirements.toml"):"/etc/codex/requirements.toml"}function Pb(e){if(!(!H(e)||Object.keys(e).length!==1)){if(typeof e.token=="string")return e.token;if(Array.isArray(e.any_of)&&e.any_of.every(t=>typeof t=="string"))return e.any_of}}function Db(e,t){let n;try{n=Dt(e)}catch{return!1}if(n.rules===void 0)return!0;if(!H(n.rules))return!1;let r=n.rules.prefix_rules;if(r===void 0)return!0;if(!Array.isArray(r))return!1;for(let s of r){if(!H(s)||!Array.isArray(s.pattern)||s.decision!=="prompt"&&s.decision!=="forbidden")return!1;let o=s.pattern.map(Pb);if(o.some(a=>a===void 0))return!1;let i=Ul(o);if(!i)return!1;t.push(i)}return!0}function Lb(e){let t=process.env.CODEX_HOME||O(Qe(),".codex"),n=[O(t,"rules"),...St(e).map(o=>O(o,".codex","rules"))],r=[],s=null;try{s=tn(Nb(),"utf8")}catch(o){let i=o.code;if(i!=="ENOENT"&&i!=="ENOTDIR")return"unreadable"}if(s!==null&&!Db(s,r))return"unreadable";for(let o of[...new Set(n)]){let i=Ib(o);if(i==="unreadable")return"unreadable";for(let a of i){let l;try{l=tn(a,"utf8")}catch{return"unreadable"}if(!Ob(l,r))return"unreadable"}}return{matchers:r,complete:!1}}function H(e){return e!=null&&typeof e=="object"&&!Array.isArray(e)}function As(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function Fb(e){let t=e.trim().replace(/\s+/g," "),n=t.endsWith(" *")&&t.length>2,r=(n?t.slice(0,-2):t).split("*").map(As).join("[\\s\\S]*");return new RegExp(`^${r}${n?"(?: [\\s\\S]*)?":""}(?= |$)`)}var Mb=512;function jb(e){let t=e.replace(/['"\\]/g,"").split(/[\s;&|(){}<>`$]+/).filter(Boolean);return[t,t.map(wt)]}function Zn(e,t){if(e.test(t)||e.test(t.trim().replace(/\s+/g," ")))return!0;for(let n of jb(t)){if(n.length>Mb)return!0;for(let r=0;r<n.length;r++)if(e.test(n.slice(r).join(" ")))return!0}return!1}function et(e){let t=Fb(e);return n=>Zn(t,n)}function Hb(e){let t=e.trim().replace(/:\*$/," *"),n=t.endsWith(" *"),r=n?t.slice(0,-2):t;if(!r||r.includes("*")||/\s\s|[^\S ]|^ | $/.test(r))return null;let s=new RegExp(`^${As(r)}${n?"(?: [\\s\\S]*)?":""}$`);return o=>s.test(o)}var zb={"claude-code":_b,cursor:xb,"gemini-cli":Tb,opencode:Rb,antigravity:$b,codex:Lb},Ub=new Set(["codex"]),Bl=/(?:^|[\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 Bb(e,t,n){let r=zb[e];return r?r(t??process.cwd(),n):{matchers:[],complete:!1}}function Zb(e,t,n){return e==="unreadable"||Bl.test(t.replace(/['"\\]/g,""))||e.matchers.some(r=>r(t))?!1:e.complete||Fl(t,!Ub.has(n))}var Zl=new Set(["default","acceptEdits","dontAsk"]);function Jl(e,t){return t.host!=="claude-code"||t.permissionMode==="bypassPermissions"?!0:e!=="unreadable"&&e.allowsEverything===!0&&Zl.has(t.permissionMode??"")}var Jb=/(?:^|[\s/])git(?:\.exe|\.real|-[a-z][\w-]*)?(?=\s|$)/;function Gb(e){if(!e)return!1;try{for(let t of St(e)){let n=O(t,".git");if(Xe(n))return Dk(n).isFile()}}catch{return!0}return!1}function Wb(e,t){let n="pathEnv"in e?e.pathEnv:process.env.PATH,r,s;return(o,i)=>e.host!=="claude-code"?xt(o,e.cwd,n):i!==void 0&&Jb.test(i)&&(s??=Gb(e.cwd))||(r??=yl(t.configDir),!xt(o,e.cwd,n)&&!r.paths.some(a=>xt(o,e.cwd,a)))?!1:o.includes("/")||!kl(o,r)}var Vb=/^[^\s;&|<>()$`\\{}*?[\]~#!]+(?: [^\s;&|<>()$`\\{}*?[\]~#!]+)*$/;function Kb(e,t,n){return n.host!=="claude-code"||e==="unreadable"||Jl(e,n)||!Zl.has(n.permissionMode??"")||!Vb.test(t)||Bl.test(t.replace(/['"]/g,""))||(e.guards??[]).some(r=>r(t))?null:(e.trustedAllow??[]).find(r=>r.matches(t))?.rule??null}var qb=/^(?:\S+=\S*\s+)*(?:(?:npx|bunx|pnpm\s+exec|yarn\s+exec|uv\s+run|poetry\s+run)\s+)?(?:\.\/)?(?:ctest|gradlew|gradle|mvnw|mvnd|mvn|make|cmake|sbt|phpstan|phpunit|pest|pytest|py\.test|tox|nox|vitest|jest|mocha|playwright\s+test|tsc|(?:cargo|go)\s+(?:build|test|check|clippy|vet)|(?:bun|deno)\s+(?:test|check|lint|install)|(?:npm|pnpm|yarn)\s+(?:test|t|ci|install|run\s+\S+)|dotnet\s+(?:build|test)|swift\s+(?:build|test)|composer\s+(?:install|update|test))(?:\s|$)/;function Yb(e,t){return t.host==="claude-code"&&t.permissionMode==="default"&&qb.test(e.trim())}function Gl(e,t,n,r){if(!n||/["\\$`;&|<>(){}]|'\\''/.test(n))return null;let s=t.claudeDirs??Bn(),o=Bb(t.host,t.cwd,s),i=Kb(o,e,t),a=i||Zb(o,e,t.host)?sb(e,n,Wb(t,s)):e;return a!==e&&o!=="unreadable"&&(i?(o.guards??[]).some(l=>l(a)):o.matchers.some(l=>l(a))||(o.allow??[]).some(l=>l(a)&&!l(e)))&&(a=e),r(t.sessionId,a!==e),a===e?null:i?{command:a,allowedBy:i}:Jl(o,t)?{command:a}:o!=="unreadable"&&Yb(e,t)&&!(o.allow??[]).some(l=>l(e))&&!(o.trustedAllow??[]).some(l=>l.matches(e))?{command:a,ask:!0}:null}function Ce(e,t,n,r){let s=Gl(e,t,n,r);return s&&!s.ask?s.command:null}function Z(e,t){let n=e[t];return typeof n=="string"&&n?n:null}function sn(e){return e!=null&&typeof e=="object"&&!Array.isArray(e)}function Xb(e){return Z(e,"prompt_id")||Z(e,"scratchpad_dir")?!0:sn(e.effort)}function Qb(e){return Z(e,"tool_use_id")?.startsWith("toolu_")===!0||/^claude/i.test(Z(e,"model")??"")}var e_=new Set(["BeforeTool","AfterTool","BeforeAgent","AfterAgent","BeforeModel","AfterModel","BeforeToolSelection"]),t_=new Set(["preToolUse","postToolUse","beforeShellExecution","afterShellExecution","beforeSubmitPrompt","sessionStart","sessionEnd","stop"]),n_=new Set(["pre_tool","post_tool"]),r_=new Set(["before_tool_call","after_tool_call"]),s_=new Set(["runTerminalCommand","run_in_terminal"]),o_=[["codex",e=>Z(e,"turn_id")!==null],["claude-code",Xb],["cursor",e=>Z(e,"cursor_version")!==null||Z(e,"generation_id")!==null||Z(e,"conversation_id")!==null||Array.isArray(e.workspace_roots)||t_.has(Z(e,"hook_event_name")??"")],["gemini-cli",e=>e_.has(Z(e,"hook_event_name")??"")],["qwen-code",e=>e.hook_event_name==="PreToolUse"&&e.tool_name==="run_shell_command"],["vibe",e=>n_.has(Z(e,"hook_event_name")??"")],["antigravity",e=>sn(e.toolCall)],["copilot",e=>Z(e,"toolName")!==null&&"toolArgs"in e||s_.has(Z(e,"tool_name")??"")],["grok",e=>e.toolName==="run_terminal_command"||e.tool_name==="run_terminal_command"||sn(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&&Z(e,"event")!==null&&!r_.has(Z(e,"event"))]],i_=new Set(["codex","antigravity"]);function Rs(e){return sn(e)?o_.filter(([,t])=>t(e)).map(([t])=>t):[]}function Wl(e,t){if(!sn(e))return null;let n=Rs(e);return n.length>1?null:n.length===1?n[0]:Qb(e)&&i_.has(t)?"claude-code":t==="codex"?null:t}var $s=JSON.stringify({permission:"allow"});function Vl(e,t=oe("cursor"),n=ne){if(e.tool_name!=="Shell")return $s;let r=e.tool_input??{},s=r.command;if(typeof s!="string"||!s)return $s;let o=typeof r.working_directory=="string"?r.working_directory:void 0,i=Ce(s,{host:"cursor",sessionId:e.conversation_id??"unknown",cwd:o},fe()?null:t,n);return i?JSON.stringify({permission:"allow",updated_input:{...r,command:i}}):$s}var Jn="{}";function Kl(e,t=oe("gemini-cli"),n=ne){if(e.hook_event_name!=="BeforeTool"||e.tool_name!=="run_shell_command")return Jn;let r=e.tool_input??{};if(r.is_background)return Jn;let s=r.command;if(typeof s!="string"||!s)return Jn;let o=typeof e.cwd=="string"?e.cwd:void 0,i=Ce(s,{host:"gemini-cli",sessionId:e.session_id??"unknown",cwd:o},fe()?null:t,n);return i?JSON.stringify({hookSpecificOutput:{tool_input:{command:i}}}):Jn}function Et(e,t,n="unknown",r=oe(t),s=ne){return e?Ce(e,{host:t,sessionId:n},fe()?null:r,s):null}var a_=new Set(["bash","file_system.bash"]),Cs=JSON.stringify({decision:"allow"});function ql(e,t=(n,r)=>Et(n,"vibe",r)){if(!D(e)||e.hook_event_name!=="pre_tool"||typeof e.tool_name!="string"||!a_.has(e.tool_name))return"";let n=e.tool_input;if(!D(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 Yl(e,t=(n,r)=>Et(n,"antigravity",r)){if(!D(e)||!D(e.toolCall)||e.toolCall.name!=="run_command")return Cs;let n=e.toolCall.args;if(!D(n)||typeof n.CommandLine!="string"||!n.CommandLine)return Cs;let r=t(n.CommandLine,typeof e.conversationId=="string"?e.conversationId:"unknown");return r?JSON.stringify({decision:"allow",overwrite:{CommandLine:r}}):Cs}var _e="{}",l_=new Set(["runTerminalCommand","run_in_terminal","Bash","bash"]),u_=["run_in_background","is_background","isBackground"];function Gn(e){return e!=null&&typeof e=="object"&&!Array.isArray(e)}function c_(e){let t=e.session_id??e.sessionId;return typeof t=="string"&&t?t:"unknown"}function f_(e,t){let n=e.cwd??t.cwd??t.workdir??t.working_directory;return typeof n=="string"&&n?n:void 0}function Wn(e,t,n,r,s){if(!Gn(t)||u_.some(i=>t[i]===!0))return null;let o=t.command;return typeof o!="string"||!o?null:Ce(o,{host:e,sessionId:c_(n),cwd:f_(n,t)},fe()?null:r,s)}function At(e,t){return JSON.stringify({hookSpecificOutput:{hookEventName:"PreToolUse",updatedInput:{...e,command:t}}})}function d_(e){if(Gn(e))return e;if(typeof e!="string")return null;try{let t=JSON.parse(e);return Gn(t)?t:null}catch{return null}}function p_(e,t,n){if(typeof e.tool_name=="string"){if(!l_.has(e.tool_name))return _e;let o=e.tool_input,i=Wn("copilot",o,e,t,n);return i?At(o,i):_e}if(e.toolName!=="bash")return _e;let r=d_(e.toolArgs),s=Wn("copilot",r,e,t,n);return s?JSON.stringify({modifiedArgs:{...r,command:s}}):_e}function Tt(e,t,n){return(r,s,o)=>{if(r.tool_name!==t)return _e;let i=r.tool_input,a=Wn(e,i,r,s,o);return a?n(i,a):_e}}var m_=new Set(["run_terminal_command","Bash","bash"]);function h_(e,t,n){let r=e.toolName??e.tool_name;if(typeof r!="string"||!m_.has(r))return _e;let s=e.toolInput??e.tool_input,o=Wn("grok",s,e,t,n);return o?At(s,o):_e}var g_={copilot:p_,droid:Tt("droid","Execute",At),trae:Tt("trae","RunCommand",At),"qwen-code":Tt("qwen-code","run_shell_command",At),crush:Tt("crush","bash",(e,t)=>JSON.stringify({updated_input:{command:t}})),junie:Tt("junie","Bash",(e,t)=>JSON.stringify({updatedInput:{...e,command:t}})),zcode:Tt("zcode","Bash",At),grok:h_};function Xl(e,t,n=oe(e),r=ne){return Gn(t)?g_[e](t,n,r):_e}function Rt(e){return fe()?null:oe(e)}function y_(e,t,n={}){let r=n.recordUsage??ne;switch(e){case"claude-code":case"codex":return t.hook_event_name!==void 0&&t.hook_event_name!=="PreToolUse"?"":Ml(t,e,Rt(e),r,n.claudeDirs??Bn(),n.pathEnv??process.env.PATH,n.launchArgs??Ts)??"";case"cursor":return Vl(t,Rt(e),r);case"gemini-cli":return Kl(t,Rt(e),r);case"vibe":return ql(t,(s,o)=>Et(s,"vibe",o,Rt(e),r));case"antigravity":return Yl(t,(s,o)=>Et(s,"antigravity",o,Rt(e),r));default:return Xl(e,t,Rt(e),r)}}function vt(e,t,n={}){let r=Wl(e,t);return r?y_(r,e,n):n.fallback??""}var k_=new Set(["shell","bash","exec","run_shell_command","execute_shell_command"]);async function b_(e){if(e.event!=="after_tool_call")return{action:"continue"};if(!k_.has(e.tool))return{action:"continue"};let t=typeof e.command=="string"?e.command:Array.isArray(e.args)&&e.args.every(w=>typeof w=="string")?e.args.join(" "):"";if(!t)return{action:"continue"};let n=typeof e.stdout=="string"?e.stdout:"",r=typeof e.stderr=="string"?e.stderr:"",s=dl();if(!n&&(!s||!r))return{action:"continue"};let o=await ht();if(!o.enabled)return{action:"continue"};let i=await Ht();if(!i||!i.token)return{action:"continue"};let a=Ei(i);cl(a);let l=Tn(i.allowedFilters,vi(i)),u=new Set(o.filters.disabled.map(X)),c=l&&u.size>0?new Set([...l].filter(w=>!u.has(w))):l,f,d=null;try{f=await Or(t,n,c,{verbosity:o.outputVerbosity,yolo:s,exitCode:e.exit_code}),s&&r&&(d=await Or(t,r,c,{verbosity:o.outputVerbosity,yolo:s,exitCode:e.exit_code}))}finally{fl()}let p=f.filteredBytes<f.rawBytes||d!=null&&d.filteredBytes<d.rawBytes,g=d?.output??r,y=g?f.output?`${f.output}
115
+ ${g}`:g:f.output,m=Buffer.byteLength(n,"utf8")+Buffer.byteLength(r,"utf8"),_=Qi(m,p?Buffer.byteLength(y,"utf8"):m,el("codex"));return Yi(_.raw,_.filtered,void 0,!1,"codex","sh",qi(t),process.cwd(),Xi(f)),await Li({cmd:t,filterId:f.filterId,rawBytes:f.rawBytes,filteredBytes:f.filteredBytes,plan:a}),await Di({cmd:t,tokensSaved:Math.max(0,Math.round((_.raw-_.filtered)/4)),rawTokens:Math.round(_.raw/4),optimized:f.filterId!=null,telemetryOptIn:o.telemetryOptIn,host:"codex"}),p?{action:"replace_output",replacement:y,reason:"tokmizer"}:{action:"continue"}}var __=new Set(["before_tool_call","after_tool_call"]);async function x_(e){let t=JSON.stringify({action:"continue"});if(!e)return t;let n;try{n=JSON.parse(e)}catch{return t}if(n==null||typeof n!="object"||Array.isArray(n))return t;if(n.hook_event_name!==void 0||!__.has(n.event)&&Rs(n).length>0)return vt(n,"codex");try{return JSON.stringify(await b_(n))}catch(r){return process.stderr.write(`tkr-codex: ${r.message}
116
+ `),t}}async function Ql(){let e=await x_(await mt());e&&process.stdout.write(e)}Ql().catch(e=>{process.stderr.write(`tkr-codex-hook: ${e.message}
117
117
  `),process.stdout.write(JSON.stringify({action:"continue"})),process.exit(0)});
118
118
  /*! Bundled license information:
119
119