@tokmizer/plugin 0.9.62 → 0.9.64

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.
Files changed (37) hide show
  1. package/.claude-plugin/plugin.json +1 -1
  2. package/.codex-plugin/plugin.json +1 -1
  3. package/README.md +5 -5
  4. package/dist/bin/tkr-agent-hook.js +9 -9
  5. package/dist/bin/tkr-codex-hook.js +67 -67
  6. package/dist/bin/tkr-copilot-hook.js +9 -9
  7. package/dist/bin/tkr-crush-hook.js +9 -9
  8. package/dist/bin/tkr-cursor-hook.js +8 -8
  9. package/dist/bin/tkr-daemon.js +120 -118
  10. package/dist/bin/tkr-droid-hook.js +9 -9
  11. package/dist/bin/tkr-exec +73 -71
  12. package/dist/bin/tkr-exec.js +73 -71
  13. package/dist/bin/tkr-gemini-hook.js +8 -8
  14. package/dist/bin/tkr-grok-hook.js +9 -9
  15. package/dist/bin/tkr-junie-hook.js +9 -9
  16. package/dist/bin/tkr-processor.js +91 -89
  17. package/dist/bin/tkr-qwen-hook.js +9 -9
  18. package/dist/bin/tkr-shim.js +67 -67
  19. package/dist/bin/tkr-trae-hook.js +9 -9
  20. package/dist/bin/tkr-zcode-hook.js +9 -9
  21. package/dist/bin/tkr.js +273 -273
  22. package/dist/hooks-host/post-tool-use.js +85 -83
  23. package/dist/hooks-host/pre-tool-use.js +9 -9
  24. package/dist/hooks-host/reducer-stop.js +24 -24
  25. package/dist/hooks-host/session-recap.js +1 -1
  26. package/dist/index.js +82 -82
  27. package/dist/native/manifest.json +12 -12
  28. package/dist/native/single.json +12 -12
  29. package/dist/native/tkr-exec-darwin-arm64 +0 -0
  30. package/dist/native/tkr-exec-darwin-x64 +0 -0
  31. package/dist/native/tkr-exec-linux-arm64 +0 -0
  32. package/dist/native/tkr-exec-linux-x64 +0 -0
  33. package/dist/native/tkr-exec-win32-arm64.exe +0 -0
  34. package/dist/native/tkr-exec-win32-x64.exe +0 -0
  35. package/hooks/on-session-start.mjs +16 -5
  36. package/package.json +8 -8
  37. package/scripts/install-mac-linux.sh +1 -1
@@ -1,107 +1,107 @@
1
1
  #!/usr/bin/env node
2
2
  import { createRequire as __tkrCreateRequire } from "node:module"; const require = __tkrCreateRequire(import.meta.url);
3
- var Ha=Object.defineProperty;var ue=(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)Ha(e,n,{get:t[n],enumerable:!0})};function ql(e,t){let n=e.slice(0,t).split(/\r?\n/);return[n.length,n.pop().length+1]}function Xl(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 Za=Object.defineProperty;var ce=(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)Za(e,n,{get:t[n],enumerable:!0})};function nu(e,t){let n=e.slice(0,t).split(/\r?\n/);return[n.length,n.pop().length+1]}function ru(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 v,He=ue(()=>{v=class e extends Error{line;column;codeblock;constructor(t,n){let[r,s]=ql(n.toml,n.ptr),o=Xl(n.toml,r,s);super(`Invalid TOML document: ${t}
5
+ `))}return s}var S,Be=ce(()=>{S=class e extends Error{line;column;codeblock;constructor(t,n){let[r,s]=nu(n.toml,n.ptr),o=ru(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 Yt(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)v.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&&v.x("invalid non-hex character in unicode escape",e),c=c<<4|h}(c<0||c>1114111||c>=55296&&c<=57343)&&v.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+="\\":v.x("unrecognised escape sequence",e),a=e.p+1,l=0);else n!==32&&n!==9&&(l===2&&v.x("invalid escape: only line-ending whitespace may be escaped",e,a),l=!s&&n===92?1:0,a=e.p);v.x("unfinished string",e,t)}var Dn=ue(()=>{He();});var Ql,Ue,Fn=ue(()=>{Ql=/^(\d{4}-\d{2}-\d{2})?[Tt ]?(?:(\d{2}):\d{2}(?::\d{2}(?:\.\d+)?)?)?(Z|z|[-+]\d{2}:\d{2})?$/i,Ue=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(Ql);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 G(e,t=10){return t===16?e>47&&e<58||e>64&&e<71||e>96&&e<103:e>47&&e<48+t}function Mn(e,t){return e===32||e===9||e===10||e===13||t&&(e===t||e===44)||e===35}function xt(e,t){let n=e.p,r=e.s.charCodeAt(e.p);if(r===91||r===123){e.d--||v.x("document contains excessively nested structures. aborting.",e);let s=r===91?gs(e):hs(e);return e.d++,s}return r===34||r===39?Yt(e):r===116?((e.s.charCodeAt(++e.p)!==114||e.s.charCodeAt(++e.p)!==117||e.s.charCodeAt(++e.p)!==101)&&v.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)&&v.x("invalid value",e,n),e.p++,!1):r===43||r===45?qt(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?eu(e,r,t):e.s.charCodeAt(e.p+2)===58?tu(e,r,t):qt(e,e.p,r,0,t)}function qt(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)&&v.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)&&v.x("invalid value",e,t),e.p++,NaN;if(o===48){if(++e.p>=e.s.length||Mn(o=e.s.charCodeAt(e.p),s))return e.bi===!0?0n:0;if(!r){if(o===120)return Ln(e,t,16,s);if(o===98)return Ln(e,t,2,s);if(o===111)return Ln(e,t,8,s)}o===46?i=2:o===101||o===69?i=4:v.x("illegal leading zero",e,t)}else G(o)||v.x("invalid value",e,t);for(;++e.p<e.s.length&&(o=e.s.charCodeAt(e.p),!Mn(o,s));)i||(i=1),o===95?(i&1||v.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)||(G(o)?i>9?i-=11:i&1||i++:v.x("illegal character in numeric literal",e));if(!i){let u=(n-48)*(r||1);return e.bi===!0?BigInt(u):u}i&1||v.x("unfinished numeric value",e,t);let l=e.s.slice(t,e.p);return a&&(l=l.replaceAll("_","")),i>1?parseFloat(l):ms(e,l,10,t)}function Ln(e,t,n,r){let s,o=1;for(;++e.p<e.s.length&&(s=e.s.charCodeAt(e.p),!Mn(s,r));)s===95?(o&1&&v.x("illegal underscore",e),o=3):G(s,n)?o&1&&o--:v.x("illegal character in numeric literal",e);o&1&&v.x("unfinished numeric value",e);let i=e.s.slice(t+2,e.p);return o&&(i=i.replaceAll("_","")),ms(e,i,n,t)}function ms(e,t,n,r){if(e.bi!==!0)e:{let s=parseInt(t,n);if(!Number.isSafeInteger(s)){if(e.bi)break e;v.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 eu(e,t,n){let r=e.p++,s;if(!G(t)||!G(e.s.charCodeAt(e.p++))||!G(e.s.charCodeAt(e.p++))||!G(e.s.charCodeAt(e.p++)))return qt(e,e.p=r,t,0,n);if(e.p+=5,G(e.s.charCodeAt(e.p++))||v.x("invalid date-time: date part is malformed",e,r),e.p>=e.s.length||((t=e.s.charCodeAt(e.p))!==32||(s=!0,!G(e.s.charCodeAt(e.p+1))))&&t!==84&&t!==116){let i=e.s.slice(r,e.p);return _t(e,i,3,!1,r)}if(e.s.charCodeAt(e.p+=3)!==58&&v.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(;G(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 _t(e,i,1,s,r,"[+00:00]")}if(t===43||t===45){let i=e.s.slice(r,e.p+=6);return _t(e,i,1,s,r,!e.ld&&"["+e.s.slice(e.p-6,e.p)+"]")}}let o=e.s.slice(r,e.p);return _t(e,o,2,s,r)}function tu(e,t,n){let r=e.p;if(!G(t)||!G(e.s.charCodeAt(++e.p)))return qt(e,--e.p,t,0,n);if(e.s.charCodeAt(e.p+=4)===58&&(e.p+=3),e.s.charCodeAt(e.p)===46)for(;G(e.s.charCodeAt(++e.p)););let s=e.s.slice(r,e.p);return _t(e,s,4,!1,r)}function _t(e,t,n,r,s,o){if(e.ld){let i=new Ue(t,n,r);return i.isValid()||v.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){v.x(i instanceof Error?i.message:""+i,e,s)}}var jn=ue(()=>{Dn();Hn();He();Fn();});function nu(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)&&v.x("control characters are not allowed in comments",e)}}function ee(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;nu(e)}}var Un=ue(()=>{He();});function Xt(e,t=61){let n,r=0,s=[],o,i=e.s.charCodeAt(n=e.p);do{if(i===t)return r||v.x("unexpected end of key",e),r===1&&s.push(e.s.slice(o,e.p)),e.p++,s;i===46?(r||v.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)&&v.x("illegal quoted key: multiline strings are not allowed",e),s.push(Yt(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?v.x("illegal character in key",e):r||(r=1,o=e.p)}while(i=e.s.charCodeAt(++e.p));v.x("incomplete key-value: cannot find end of key",e,n)}function hs(e){let t=e.p++,n=Object.create(null),r=new Set,s;for(;e.p<e.s.length;){if(ee(e),(s=e.s.charCodeAt(e.p))===125)return e.p++,n;let o,i=n,a=!1,l=e.p,u=Xt(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]))&&v.x("trying to redefine an already defined value",e,l);let d=o==="__proto__";if(e.uk&&(d||o==="constructor")){i=e.uk!==1&&v.x("document contains an unsafe property",e,l);break}!a&&d&&Object.defineProperty(i,o,{enumerable:!0,configurable:!0,writable:!0})}a&&v.x("trying to redefine an already defined value",e,l),ee(e,!0,!0);let c=xt(e,125);if(i&&typeof(i[o]=c)=="object"&&r.add(c),ee(e),(s=e.s.charCodeAt(e.p++))===125)return n;s!==44&&v.x("expected comma or end of structure",e,e.p-1)}v.x("unfinished table",e,t)}function gs(e){let t=e.p++,n=[],r;for(;e.p<e.s.length;){if(ee(e),(r=e.s.charCodeAt(e.p))===93)return e.p++,n;if(n.push(xt(e,93)),ee(e),(r=e.s.charCodeAt(e.p++))===93)return n;r!==44&&v.x("expected comma or end of structure",e,e.p-1)}v.x("unfinished array",e,t)}var Hn=ue(()=>{Dn();jn();Un();He();});function ys(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)&&v.x(t===null?"trying to redefine an already defined table or value":"document contains an unsafe property",e,n)}function zn(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++,ee(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=Xt(n,93);u&&(e.charCodeAt(n.p)!==93&&v.x("expected end of table array declaration",n),n.p++);let f=ys(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=Xt(n),c=ys(n,u,a,l,0);!c&&!i&&ks(n,c,o),ee(n,!0,!0);let f=xt(n,void 0);c&&!i&&(c[1][c[0]]=f)}ee(n,!0),n.p<e.length&&(o=e.charCodeAt(n.p))!==10&&(o!==13||e.charCodeAt(n.p+1)!==10)&&v.x("each key-value declaration must be followed by an end-of-line",n),ee(n)}return r}var bs=ue(()=>{Hn();jn();Un();He();});function wt(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 su(e){for(let t=0;t<e.length;t++)if(wt(e[t])!=="object")return!1;return e.length!=0}function xs(e){return JSON.stringify(e).replaceAll("\x7F","\\u007f")}function ou(e){return xs(_s?e.toWellFormed():e)}function ws(e){if(ru.test(e))return e;if(_s&&!e.isWellFormed())throw new RangeError("key contains illegal lone surrogates");return xs(e)}function Bn(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 ou(e);case"date":if(isNaN(e.getTime()))throw new TypeError("cannot serialize invalid date");return e.toISOString();case"object":return iu(e,n,r,s);case"array":return au(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 iu(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+=ws(a)+" = "+Bn(e[a],wt(e[a]),t-1,n,r)}return o+" }"}function au(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+=Bn(e[o],wt(e[o]),t-1,n,r)}return s+" ]"}function lu(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 Yt(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)S.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,d=n===120?2:n===117?4:8;for(let f=0;f<d;f++,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&&S.x("invalid non-hex character in unicode escape",e),c=c<<4|h}(c<0||c>1114111||c>=55296&&c<=57343)&&S.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+="\\":S.x("unrecognised escape sequence",e),a=e.p+1,l=0);else n!==32&&n!==9&&(l===2&&S.x("invalid escape: only line-ending whitespace may be escaped",e,a),l=!s&&n===92?1:0,a=e.p);S.x("unfinished string",e,t)}var Dn=ce(()=>{Be();});var su,ze,Fn=ce(()=>{su=/^(\d{4}-\d{2}-\d{2})?[Tt ]?(?:(\d{2}):\d{2}(?::\d{2}(?:\.\d+)?)?)?(Z|z|[-+]\d{2}:\d{2})?$/i,ze=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(su);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 Mn(e,t){return e===32||e===9||e===10||e===13||t&&(e===t||e===44)||e===35}function wt(e,t){let n=e.p,r=e.s.charCodeAt(e.p);if(r===91||r===123){e.d--||S.x("document contains excessively nested structures. aborting.",e);let s=r===91?gs(e):hs(e);return e.d++,s}return r===34||r===39?Yt(e):r===116?((e.s.charCodeAt(++e.p)!==114||e.s.charCodeAt(++e.p)!==117||e.s.charCodeAt(++e.p)!==101)&&S.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)&&S.x("invalid value",e,n),e.p++,!1):r===43||r===45?qt(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?ou(e,r,t):e.s.charCodeAt(e.p+2)===58?iu(e,r,t):qt(e,e.p,r,0,t)}function qt(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)&&S.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)&&S.x("invalid value",e,t),e.p++,NaN;if(o===48){if(++e.p>=e.s.length||Mn(o=e.s.charCodeAt(e.p),s))return e.bi===!0?0n:0;if(!r){if(o===120)return Ln(e,t,16,s);if(o===98)return Ln(e,t,2,s);if(o===111)return Ln(e,t,8,s)}o===46?i=2:o===101||o===69?i=4:S.x("illegal leading zero",e,t)}else V(o)||S.x("invalid value",e,t);for(;++e.p<e.s.length&&(o=e.s.charCodeAt(e.p),!Mn(o,s));)i||(i=1),o===95?(i&1||S.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++:S.x("illegal character in numeric literal",e));if(!i){let u=(n-48)*(r||1);return e.bi===!0?BigInt(u):u}i&1||S.x("unfinished numeric value",e,t);let l=e.s.slice(t,e.p);return a&&(l=l.replaceAll("_","")),i>1?parseFloat(l):ms(e,l,10,t)}function Ln(e,t,n,r){let s,o=1;for(;++e.p<e.s.length&&(s=e.s.charCodeAt(e.p),!Mn(s,r));)s===95?(o&1&&S.x("illegal underscore",e),o=3):V(s,n)?o&1&&o--:S.x("illegal character in numeric literal",e);o&1&&S.x("unfinished numeric value",e);let i=e.s.slice(t+2,e.p);return o&&(i=i.replaceAll("_","")),ms(e,i,n,t)}function ms(e,t,n,r){if(e.bi!==!0)e:{let s=parseInt(t,n);if(!Number.isSafeInteger(s)){if(e.bi)break e;S.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 ou(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 qt(e,e.p=r,t,0,n);if(e.p+=5,V(e.s.charCodeAt(e.p++))||S.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 xt(e,i,3,!1,r)}if(e.s.charCodeAt(e.p+=3)!==58&&S.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 xt(e,i,1,s,r,"[+00:00]")}if(t===43||t===45){let i=e.s.slice(r,e.p+=6);return xt(e,i,1,s,r,!e.ld&&"["+e.s.slice(e.p-6,e.p)+"]")}}let o=e.s.slice(r,e.p);return xt(e,o,2,s,r)}function iu(e,t,n){let r=e.p;if(!V(t)||!V(e.s.charCodeAt(++e.p)))return qt(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 xt(e,s,4,!1,r)}function xt(e,t,n,r,s,o){if(e.ld){let i=new ze(t,n,r);return i.isValid()||S.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){S.x(i instanceof Error?i.message:""+i,e,s)}}var jn=ce(()=>{Dn();Hn();Be();Fn();});function au(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)&&S.x("control characters are not allowed in comments",e)}}function te(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;au(e)}}var Un=ce(()=>{Be();});function Xt(e,t=61){let n,r=0,s=[],o,i=e.s.charCodeAt(n=e.p);do{if(i===t)return r||S.x("unexpected end of key",e),r===1&&s.push(e.s.slice(o,e.p)),e.p++,s;i===46?(r||S.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)&&S.x("illegal quoted key: multiline strings are not allowed",e),s.push(Yt(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?S.x("illegal character in key",e):r||(r=1,o=e.p)}while(i=e.s.charCodeAt(++e.p));S.x("incomplete key-value: cannot find end of key",e,n)}function hs(e){let t=e.p++,n=Object.create(null),r=new Set,s;for(;e.p<e.s.length;){if(te(e),(s=e.s.charCodeAt(e.p))===125)return e.p++,n;let o,i=n,a=!1,l=e.p,u=Xt(e);for(let d=0;d<u.length;d++){d&&(i=a?i[o]:i[o]=Object.create(null)),o=u[d],(a=Object.hasOwn(i,o))&&(typeof i[o]!="object"||r.has(i[o]))&&S.x("trying to redefine an already defined value",e,l);let f=o==="__proto__";if(e.uk&&(f||o==="constructor")){i=e.uk!==1&&S.x("document contains an unsafe property",e,l);break}!a&&f&&Object.defineProperty(i,o,{enumerable:!0,configurable:!0,writable:!0})}a&&S.x("trying to redefine an already defined value",e,l),te(e,!0,!0);let c=wt(e,125);if(i&&typeof(i[o]=c)=="object"&&r.add(c),te(e),(s=e.s.charCodeAt(e.p++))===125)return n;s!==44&&S.x("expected comma or end of structure",e,e.p-1)}S.x("unfinished table",e,t)}function gs(e){let t=e.p++,n=[],r;for(;e.p<e.s.length;){if(te(e),(r=e.s.charCodeAt(e.p))===93)return e.p++,n;if(n.push(wt(e,93)),te(e),(r=e.s.charCodeAt(e.p++))===93)return n;r!==44&&S.x("expected comma or end of structure",e,e.p-1)}S.x("unfinished array",e,t)}var Hn=ce(()=>{Dn();jn();Un();Be();});function ys(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 d=o.length-1;o=o[d],i=i[d].c}}if(a=t[c],(l=Object.hasOwn(o,a))&&i[a]?.t===0&&i[a]?.d)return null;if(!l){let d=a==="__proto__";if(e.uk&&(d||a==="constructor"))return!1;d&&(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)&&S.x(t===null?"trying to redefine an already defined table or value":"document contains an unsafe property",e,n)}function Bn(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++,te(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=Xt(n,93);u&&(e.charCodeAt(n.p)!==93&&S.x("expected end of table array declaration",n),n.p++);let d=ys(n,c,r,s,u?2:1);d?(l=d[2],a=d[1]):(ks(n,d,o),i=!0)}else{o=n.p;let u=Xt(n),c=ys(n,u,a,l,0);!c&&!i&&ks(n,c,o),te(n,!0,!0);let d=wt(n,void 0);c&&!i&&(c[1][c[0]]=d)}te(n,!0),n.p<e.length&&(o=e.charCodeAt(n.p))!==10&&(o!==13||e.charCodeAt(n.p+1)!==10)&&S.x("each key-value declaration must be followed by an end-of-line",n),te(n)}return r}var bs=ce(()=>{Hn();jn();Un();Be();});function vt(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 uu(e){for(let t=0;t<e.length;t++)if(vt(e[t])!=="object")return!1;return e.length!=0}function xs(e){return JSON.stringify(e).replaceAll("\x7F","\\u007f")}function cu(e){return xs(_s?e.toWellFormed():e)}function ws(e){if(lu.test(e))return e;if(_s&&!e.isWellFormed())throw new RangeError("key contains illegal lone surrogates");return xs(e)}function zn(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 cu(e);case"date":if(isNaN(e.getTime()))throw new TypeError("cannot serialize invalid date");return e.toISOString();case"object":return du(e,n,r,s);case"array":return fu(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 du(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+=ws(a)+" = "+zn(e[a],vt(e[a]),t-1,n,r)}return o+" }"}function fu(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+=zn(e[o],vt(e[o]),t-1,n,r)}return s+" ]"}function pu(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+=Jn(0,e[i],t,n,r,s);return o}function Jn(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=wt(t[c]);if(f==="symbol"||f==="function")throw new TypeError(`cannot serialize values of type '${f}'`);let d=ws(c);if(f==="array"&&su(t[c]))a+=(a&&`
11
- `)+lu(t[c],n?`${n}.${d}`:d,r-1,s,o);else if(f==="object"){let p=n?`${n}.${d}`:d;a+=(a&&`
12
- `)+Jn(p,t[c],p,r-1,s,o)}else i+=d,i+=" = ",i+=Bn(t[c],f,r,s,o),i+=`
10
+ `,o+=Jn(0,e[i],t,n,r,s);return o}function Jn(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 d=vt(t[c]);if(d==="symbol"||d==="function")throw new TypeError(`cannot serialize values of type '${d}'`);let f=ws(c);if(d==="array"&&uu(t[c]))a+=(a&&`
11
+ `)+pu(t[c],n?`${n}.${f}`:f,r-1,s,o);else if(d==="object"){let p=n?`${n}.${f}`:f;a+=(a&&`
12
+ `)+Jn(p,t[c],p,r-1,s,o)}else i+=f,i+=" = ",i+=zn(t[c],d,r,s,o),i+=`
13
13
  `}}return e&&(i||!a)&&(i=i?`[${e}]
14
14
  ${i}`:`[${e}]`),i&&a?`${i}
15
- ${a}`:i||a}function Zn(e,{maxDepth:t=1e3,numbersAsFloat:n=!1,strictTemporal:r=!1}={}){if(wt(e)!=="object")throw new TypeError("stringify can only be called with an object");let s=Jn(0,e,"",t,n,r);return s[s.length-1]!==`
15
+ ${a}`:i||a}function Zn(e,{maxDepth:t=1e3,numbersAsFloat:n=!1,strictTemporal:r=!1}={}){if(vt(e)!=="object")throw new TypeError("stringify can only be called with an object");let s=Jn(0,e,"",t,n,r);return s[s.length-1]!==`
16
16
  `?s+`
17
- `:s}var ru,_s,vs=ue(()=>{ru=/^[a-z0-9-_]+$/i,_s=!!"".isWellFormed});var Gn={};ns(Gn,{TomlDate:()=>Ue,TomlError:()=>v,default:()=>uu,parse:()=>zn,stringify:()=>Zn});var uu,Vn=ue(()=>{bs();vs();Fn();He();uu={parse:zn,stringify:Zn,TomlDate:Ue,TomlError:v}});import{readdir as cu,readFile as fu}from"node:fs/promises";import{join as Es,dirname as du}from"node:path";import{fileURLToPath as pu}from"node:url";var g={};ns(g,{BRAND:()=>dl,DIRTY:()=>Se,EMPTY_PATH:()=>Ja,INVALID:()=>w,NEVER:()=>Yl,OK:()=>L,ParseStatus:()=>F,Schema:()=>A,ZodAny:()=>ke,ZodArray:()=>pe,ZodBigInt:()=>Te,ZodBoolean:()=>Re,ZodBranded:()=>kt,ZodCatch:()=>Me,ZodDate:()=>Ae,ZodDefault:()=>Le,ZodDiscriminatedUnion:()=>Vt,ZodEffects:()=>K,ZodEnum:()=>De,ZodError:()=>U,ZodFirstPartyTypeKind:()=>S,ZodFunction:()=>Kt,ZodIntersection:()=>Ie,ZodIssueCode:()=>m,ZodLazy:()=>Ne,ZodLiteral:()=>Pe,ZodMap:()=>Xe,ZodNaN:()=>et,ZodNativeEnum:()=>Fe,ZodNever:()=>Q,ZodNull:()=>Ce,ZodNullable:()=>oe,ZodNumber:()=>Ee,ZodObject:()=>z,ZodOptional:()=>V,ZodParsedType:()=>b,ZodPipeline:()=>bt,ZodPromise:()=>be,ZodReadonly:()=>je,ZodRecord:()=>Wt,ZodSchema:()=>A,ZodSet:()=>Qe,ZodString:()=>ye,ZodSymbol:()=>Ye,ZodTransformer:()=>K,ZodTuple:()=>se,ZodType:()=>A,ZodUndefined:()=>$e,ZodUnion:()=>Oe,ZodUnknown:()=>de,ZodVoid:()=>qe,addIssueToContext:()=>y,any:()=>xl,array:()=>El,bigint:()=>gl,boolean:()=>ps,coerce:()=>Kl,custom:()=>cs,date:()=>yl,datetimeRegex:()=>ls,defaultErrorMap:()=>ce,discriminatedUnion:()=>$l,effect:()=>Ul,enum:()=>Ml,function:()=>Dl,getErrorMap:()=>Ve,getParsedType:()=>re,instanceof:()=>ml,intersection:()=>Cl,isAborted:()=>Zt,isAsync:()=>We,isDirty:()=>Gt,isValid:()=>ge,late:()=>pl,lazy:()=>Fl,literal:()=>Ll,makeIssue:()=>yt,map:()=>Nl,nan:()=>hl,nativeEnum:()=>jl,never:()=>vl,null:()=>_l,nullable:()=>Bl,number:()=>ds,object:()=>Tl,objectUtil:()=>In,oboolean:()=>Wl,onumber:()=>Vl,optional:()=>zl,ostring:()=>Gl,pipeline:()=>Zl,preprocess:()=>Jl,promise:()=>Hl,quotelessJson:()=>Ua,record:()=>Il,set:()=>Pl,setErrorMap:()=>Ba,strictObject:()=>Rl,string:()=>fs,symbol:()=>kl,transformer:()=>Ul,tuple:()=>Ol,undefined:()=>bl,union:()=>Al,unknown:()=>wl,util:()=>C,void:()=>Sl});var C;(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})(C||(C={}));var In;(function(e){e.mergeShapes=(t,n)=>({...t,...n})})(In||(In={}));var b=C.arrayToEnum(["string","nan","number","integer","float","boolean","date","bigint","symbol","function","undefined","null","array","object","unknown","promise","void","never","map","set"]),re=e=>{switch(typeof e){case"undefined":return b.undefined;case"string":return b.string;case"number":return Number.isNaN(e)?b.nan:b.number;case"boolean":return b.boolean;case"function":return b.function;case"bigint":return b.bigint;case"symbol":return b.symbol;case"object":return Array.isArray(e)?b.array:e===null?b.null:e.then&&typeof e.then=="function"&&e.catch&&typeof e.catch=="function"?b.promise:typeof Map<"u"&&e instanceof Map?b.map:typeof Set<"u"&&e instanceof Set?b.set:typeof Date<"u"&&e instanceof Date?b.date:b.object;default:return b.unknown}};var m=C.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"]),Ua=e=>JSON.stringify(e,null,2).replace(/"([^"]+)":/g,"$1:"),U=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,C.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()}};U.create=e=>new U(e);var za=(e,t)=>{let n;switch(e.code){case m.invalid_type:e.received===b.undefined?n="Required":n=`Expected ${e.expected}, received ${e.received}`;break;case m.invalid_literal:n=`Invalid literal value, expected ${JSON.stringify(e.expected,C.jsonStringifyReplacer)}`;break;case m.unrecognized_keys:n=`Unrecognized key(s) in object: ${C.joinValues(e.keys,", ")}`;break;case m.invalid_union:n="Invalid input";break;case m.invalid_union_discriminator:n=`Invalid discriminator value. Expected ${C.joinValues(e.options)}`;break;case m.invalid_enum_value:n=`Invalid enum value. Expected ${C.joinValues(e.options)}, received '${e.received}'`;break;case m.invalid_arguments:n="Invalid function arguments";break;case m.invalid_return_type:n="Invalid function return type";break;case m.invalid_date:n="Invalid date";break;case m.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}"`:C.assertNever(e.validation):e.validation!=="regex"?n=`Invalid ${e.validation}`:n="Invalid";break;case m.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 m.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 m.custom:n="Invalid input";break;case m.invalid_intersection_types:n="Intersection results could not be merged";break;case m.not_multiple_of:n=`Number must be a multiple of ${e.multipleOf}`;break;case m.not_finite:n="Number must be finite";break;default:n=t.defaultError,C.assertNever(e)}return{message:n}},ce=za;var rs=ce;function Ba(e){rs=e}function Ve(){return rs}var yt=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}},Ja=[];function y(e,t){let n=Ve(),r=yt({issueData:t,data:e.data,path:e.path,errorMaps:[e.common.contextualErrorMap,e.schemaErrorMap,n,n===ce?void 0:ce].filter(s=>!!s)});e.common.issues.push(r)}var F=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 w;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 w;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}}},w=Object.freeze({status:"aborted"}),Se=e=>({status:"dirty",value:e}),L=e=>({status:"valid",value:e}),Zt=e=>e.status==="aborted",Gt=e=>e.status==="dirty",ge=e=>e.status==="valid",We=e=>typeof Promise<"u"&&e instanceof Promise;var x;(function(e){e.errToObj=t=>typeof t=="string"?{message:t}:t||{},e.toString=t=>typeof t=="string"?t:t?.message})(x||(x={}));var W=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}},ss=(e,t)=>{if(ge(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 U(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 A=class{get description(){return this._def.description}_getType(t){return re(t.data)}_getOrReturnCtx(t,n){return n||{common:t.parent.common,data:t.data,parsedType:re(t.data),schemaErrorMap:this._def.errorMap,path:t.path,parent:t.parent}}_processInputParams(t){return{status:new F,ctx:{common:t.parent.common,data:t.data,parsedType:re(t.data),schemaErrorMap:this._def.errorMap,path:t.path,parent:t.parent}}}_parseSync(t){let n=this._parse(t);if(We(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:re(t)},s=this._parseSync({data:t,path:r.path,parent:r});return ss(r,s)}"~validate"(t){let n={common:{issues:[],async:!!this["~standard"].async},path:[],schemaErrorMap:this._def.errorMap,parent:null,data:t,parsedType:re(t)};if(!this["~standard"].async)try{let r=this._parseSync({data:t,path:[],parent:n});return ge(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=>ge(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:re(t)},s=this._parse({data:t,path:r.path,parent:r}),o=await(We(s)?s:Promise.resolve(s));return ss(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:m.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 K({schema:this,typeName:S.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 V.create(this,this._def)}nullable(){return oe.create(this,this._def)}nullish(){return this.nullable().optional()}array(){return pe.create(this)}promise(){return be.create(this,this._def)}or(t){return Oe.create([this,t],this._def)}and(t){return Ie.create(this,t,this._def)}transform(t){return new K({...R(this._def),schema:this,typeName:S.ZodEffects,effect:{type:"transform",transform:t}})}default(t){let n=typeof t=="function"?t:()=>t;return new Le({...R(this._def),innerType:this,defaultValue:n,typeName:S.ZodDefault})}brand(){return new kt({typeName:S.ZodBranded,type:this,...R(this._def)})}catch(t){let n=typeof t=="function"?t:()=>t;return new Me({...R(this._def),innerType:this,catchValue:n,typeName:S.ZodCatch})}describe(t){let n=this.constructor;return new n({...this._def,description:t})}pipe(t){return bt.create(this,t)}readonly(){return je.create(this)}isOptional(){return this.safeParse(void 0).success}isNullable(){return this.safeParse(null).success}},Za=/^c[^\s-]{8,}$/i,Ga=/^[0-9a-z]+$/,Va=/^[0-9A-HJKMNP-TV-Z]{26}$/i,Wa=/^[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,Ka=/^[a-z0-9_-]{21}$/i,Ya=/^[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]*$/,qa=/^[-+]?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)?)??$/,Xa=/^(?!\.)(?!.*\.\.)([A-Z0-9_'+\-\.]*)[A-Z0-9_+-]@([A-Z0-9][A-Z0-9\-]*\.)+[A-Z]{2,}$/i,Qa="^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$",Nn,el=/^(?:(?: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])$/,tl=/^(?:(?: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])$/,nl=/^(([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]))$/,rl=/^(([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])$/,sl=/^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/,ol=/^([0-9a-zA-Z-_]{4})*(([0-9a-zA-Z-_]{2}(==)?)|([0-9a-zA-Z-_]{3}(=)?))?$/,is="((\\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])))",il=new RegExp(`^${is}$`);function as(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 al(e){return new RegExp(`^${as(e)}$`)}function ls(e){let t=`${is}T${as(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 ll(e,t){return!!((t==="v4"||!t)&&el.test(e)||(t==="v6"||!t)&&nl.test(e))}function ul(e,t){if(!Ya.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 cl(e,t){return!!((t==="v4"||!t)&&tl.test(e)||(t==="v6"||!t)&&rl.test(e))}var ye=class e extends A{_parse(t){if(this._def.coerce&&(t.data=String(t.data)),this._getType(t)!==b.string){let o=this._getOrReturnCtx(t);return y(o,{code:m.invalid_type,expected:b.string,received:o.parsedType}),w}let r=new F,s;for(let o of this._def.checks)if(o.kind==="min")t.data.length<o.value&&(s=this._getOrReturnCtx(t,s),y(s,{code:m.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),y(s,{code:m.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?y(s,{code:m.too_big,maximum:o.value,type:"string",inclusive:!0,exact:!0,message:o.message}):a&&y(s,{code:m.too_small,minimum:o.value,type:"string",inclusive:!0,exact:!0,message:o.message}),r.dirty())}else if(o.kind==="email")Xa.test(t.data)||(s=this._getOrReturnCtx(t,s),y(s,{validation:"email",code:m.invalid_string,message:o.message}),r.dirty());else if(o.kind==="emoji")Nn||(Nn=new RegExp(Qa,"u")),Nn.test(t.data)||(s=this._getOrReturnCtx(t,s),y(s,{validation:"emoji",code:m.invalid_string,message:o.message}),r.dirty());else if(o.kind==="uuid")Wa.test(t.data)||(s=this._getOrReturnCtx(t,s),y(s,{validation:"uuid",code:m.invalid_string,message:o.message}),r.dirty());else if(o.kind==="nanoid")Ka.test(t.data)||(s=this._getOrReturnCtx(t,s),y(s,{validation:"nanoid",code:m.invalid_string,message:o.message}),r.dirty());else if(o.kind==="cuid")Za.test(t.data)||(s=this._getOrReturnCtx(t,s),y(s,{validation:"cuid",code:m.invalid_string,message:o.message}),r.dirty());else if(o.kind==="cuid2")Ga.test(t.data)||(s=this._getOrReturnCtx(t,s),y(s,{validation:"cuid2",code:m.invalid_string,message:o.message}),r.dirty());else if(o.kind==="ulid")Va.test(t.data)||(s=this._getOrReturnCtx(t,s),y(s,{validation:"ulid",code:m.invalid_string,message:o.message}),r.dirty());else if(o.kind==="url")try{new URL(t.data)}catch{s=this._getOrReturnCtx(t,s),y(s,{validation:"url",code:m.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),y(s,{validation:"regex",code:m.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),y(s,{code:m.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),y(s,{code:m.invalid_string,validation:{startsWith:o.value},message:o.message}),r.dirty()):o.kind==="endsWith"?t.data.endsWith(o.value)||(s=this._getOrReturnCtx(t,s),y(s,{code:m.invalid_string,validation:{endsWith:o.value},message:o.message}),r.dirty()):o.kind==="datetime"?ls(o).test(t.data)||(s=this._getOrReturnCtx(t,s),y(s,{code:m.invalid_string,validation:"datetime",message:o.message}),r.dirty()):o.kind==="date"?il.test(t.data)||(s=this._getOrReturnCtx(t,s),y(s,{code:m.invalid_string,validation:"date",message:o.message}),r.dirty()):o.kind==="time"?al(o).test(t.data)||(s=this._getOrReturnCtx(t,s),y(s,{code:m.invalid_string,validation:"time",message:o.message}),r.dirty()):o.kind==="duration"?qa.test(t.data)||(s=this._getOrReturnCtx(t,s),y(s,{validation:"duration",code:m.invalid_string,message:o.message}),r.dirty()):o.kind==="ip"?ll(t.data,o.version)||(s=this._getOrReturnCtx(t,s),y(s,{validation:"ip",code:m.invalid_string,message:o.message}),r.dirty()):o.kind==="jwt"?ul(t.data,o.alg)||(s=this._getOrReturnCtx(t,s),y(s,{validation:"jwt",code:m.invalid_string,message:o.message}),r.dirty()):o.kind==="cidr"?cl(t.data,o.version)||(s=this._getOrReturnCtx(t,s),y(s,{validation:"cidr",code:m.invalid_string,message:o.message}),r.dirty()):o.kind==="base64"?sl.test(t.data)||(s=this._getOrReturnCtx(t,s),y(s,{validation:"base64",code:m.invalid_string,message:o.message}),r.dirty()):o.kind==="base64url"?ol.test(t.data)||(s=this._getOrReturnCtx(t,s),y(s,{validation:"base64url",code:m.invalid_string,message:o.message}),r.dirty()):C.assertNever(o);return{status:r.value,value:t.data}}_regex(t,n,r){return this.refinement(s=>t.test(s),{validation:n,code:m.invalid_string,...x.errToObj(r)})}_addCheck(t){return new e({...this._def,checks:[...this._def.checks,t]})}email(t){return this._addCheck({kind:"email",...x.errToObj(t)})}url(t){return this._addCheck({kind:"url",...x.errToObj(t)})}emoji(t){return this._addCheck({kind:"emoji",...x.errToObj(t)})}uuid(t){return this._addCheck({kind:"uuid",...x.errToObj(t)})}nanoid(t){return this._addCheck({kind:"nanoid",...x.errToObj(t)})}cuid(t){return this._addCheck({kind:"cuid",...x.errToObj(t)})}cuid2(t){return this._addCheck({kind:"cuid2",...x.errToObj(t)})}ulid(t){return this._addCheck({kind:"ulid",...x.errToObj(t)})}base64(t){return this._addCheck({kind:"base64",...x.errToObj(t)})}base64url(t){return this._addCheck({kind:"base64url",...x.errToObj(t)})}jwt(t){return this._addCheck({kind:"jwt",...x.errToObj(t)})}ip(t){return this._addCheck({kind:"ip",...x.errToObj(t)})}cidr(t){return this._addCheck({kind:"cidr",...x.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,...x.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,...x.errToObj(t?.message)})}duration(t){return this._addCheck({kind:"duration",...x.errToObj(t)})}regex(t,n){return this._addCheck({kind:"regex",regex:t,...x.errToObj(n)})}includes(t,n){return this._addCheck({kind:"includes",value:t,position:n?.position,...x.errToObj(n?.message)})}startsWith(t,n){return this._addCheck({kind:"startsWith",value:t,...x.errToObj(n)})}endsWith(t,n){return this._addCheck({kind:"endsWith",value:t,...x.errToObj(n)})}min(t,n){return this._addCheck({kind:"min",value:t,...x.errToObj(n)})}max(t,n){return this._addCheck({kind:"max",value:t,...x.errToObj(n)})}length(t,n){return this._addCheck({kind:"length",value:t,...x.errToObj(n)})}nonempty(t){return this.min(1,x.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}};ye.create=e=>new ye({checks:[],typeName:S.ZodString,coerce:e?.coerce??!1,...R(e)});function fl(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 Ee=class e extends A{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)!==b.number){let o=this._getOrReturnCtx(t);return y(o,{code:m.invalid_type,expected:b.number,received:o.parsedType}),w}let r,s=new F;for(let o of this._def.checks)o.kind==="int"?C.isInteger(t.data)||(r=this._getOrReturnCtx(t,r),y(r,{code:m.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),y(r,{code:m.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),y(r,{code:m.too_big,maximum:o.value,type:"number",inclusive:o.inclusive,exact:!1,message:o.message}),s.dirty()):o.kind==="multipleOf"?fl(t.data,o.value)!==0&&(r=this._getOrReturnCtx(t,r),y(r,{code:m.not_multiple_of,multipleOf:o.value,message:o.message}),s.dirty()):o.kind==="finite"?Number.isFinite(t.data)||(r=this._getOrReturnCtx(t,r),y(r,{code:m.not_finite,message:o.message}),s.dirty()):C.assertNever(o);return{status:s.value,value:t.data}}gte(t,n){return this.setLimit("min",t,!0,x.toString(n))}gt(t,n){return this.setLimit("min",t,!1,x.toString(n))}lte(t,n){return this.setLimit("max",t,!0,x.toString(n))}lt(t,n){return this.setLimit("max",t,!1,x.toString(n))}setLimit(t,n,r,s){return new e({...this._def,checks:[...this._def.checks,{kind:t,value:n,inclusive:r,message:x.toString(s)}]})}_addCheck(t){return new e({...this._def,checks:[...this._def.checks,t]})}int(t){return this._addCheck({kind:"int",message:x.toString(t)})}positive(t){return this._addCheck({kind:"min",value:0,inclusive:!1,message:x.toString(t)})}negative(t){return this._addCheck({kind:"max",value:0,inclusive:!1,message:x.toString(t)})}nonpositive(t){return this._addCheck({kind:"max",value:0,inclusive:!0,message:x.toString(t)})}nonnegative(t){return this._addCheck({kind:"min",value:0,inclusive:!0,message:x.toString(t)})}multipleOf(t,n){return this._addCheck({kind:"multipleOf",value:t,message:x.toString(n)})}finite(t){return this._addCheck({kind:"finite",message:x.toString(t)})}safe(t){return this._addCheck({kind:"min",inclusive:!0,value:Number.MIN_SAFE_INTEGER,message:x.toString(t)})._addCheck({kind:"max",inclusive:!0,value:Number.MAX_SAFE_INTEGER,message:x.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"&&C.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)}};Ee.create=e=>new Ee({checks:[],typeName:S.ZodNumber,coerce:e?.coerce||!1,...R(e)});var Te=class e extends A{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)!==b.bigint)return this._getInvalidInput(t);let r,s=new F;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),y(r,{code:m.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),y(r,{code:m.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),y(r,{code:m.not_multiple_of,multipleOf:o.value,message:o.message}),s.dirty()):C.assertNever(o);return{status:s.value,value:t.data}}_getInvalidInput(t){let n=this._getOrReturnCtx(t);return y(n,{code:m.invalid_type,expected:b.bigint,received:n.parsedType}),w}gte(t,n){return this.setLimit("min",t,!0,x.toString(n))}gt(t,n){return this.setLimit("min",t,!1,x.toString(n))}lte(t,n){return this.setLimit("max",t,!0,x.toString(n))}lt(t,n){return this.setLimit("max",t,!1,x.toString(n))}setLimit(t,n,r,s){return new e({...this._def,checks:[...this._def.checks,{kind:t,value:n,inclusive:r,message:x.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:x.toString(t)})}negative(t){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!1,message:x.toString(t)})}nonpositive(t){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!0,message:x.toString(t)})}nonnegative(t){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!0,message:x.toString(t)})}multipleOf(t,n){return this._addCheck({kind:"multipleOf",value:t,message:x.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}};Te.create=e=>new Te({checks:[],typeName:S.ZodBigInt,coerce:e?.coerce??!1,...R(e)});var Re=class extends A{_parse(t){if(this._def.coerce&&(t.data=!!t.data),this._getType(t)!==b.boolean){let r=this._getOrReturnCtx(t);return y(r,{code:m.invalid_type,expected:b.boolean,received:r.parsedType}),w}return L(t.data)}};Re.create=e=>new Re({typeName:S.ZodBoolean,coerce:e?.coerce||!1,...R(e)});var Ae=class e extends A{_parse(t){if(this._def.coerce&&(t.data=new Date(t.data)),this._getType(t)!==b.date){let o=this._getOrReturnCtx(t);return y(o,{code:m.invalid_type,expected:b.date,received:o.parsedType}),w}if(Number.isNaN(t.data.getTime())){let o=this._getOrReturnCtx(t);return y(o,{code:m.invalid_date}),w}let r=new F,s;for(let o of this._def.checks)o.kind==="min"?t.data.getTime()<o.value&&(s=this._getOrReturnCtx(t,s),y(s,{code:m.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),y(s,{code:m.too_big,message:o.message,inclusive:!0,exact:!1,maximum:o.value,type:"date"}),r.dirty()):C.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:x.toString(n)})}max(t,n){return this._addCheck({kind:"max",value:t.getTime(),message:x.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}};Ae.create=e=>new Ae({checks:[],coerce:e?.coerce||!1,typeName:S.ZodDate,...R(e)});var Ye=class extends A{_parse(t){if(this._getType(t)!==b.symbol){let r=this._getOrReturnCtx(t);return y(r,{code:m.invalid_type,expected:b.symbol,received:r.parsedType}),w}return L(t.data)}};Ye.create=e=>new Ye({typeName:S.ZodSymbol,...R(e)});var $e=class extends A{_parse(t){if(this._getType(t)!==b.undefined){let r=this._getOrReturnCtx(t);return y(r,{code:m.invalid_type,expected:b.undefined,received:r.parsedType}),w}return L(t.data)}};$e.create=e=>new $e({typeName:S.ZodUndefined,...R(e)});var Ce=class extends A{_parse(t){if(this._getType(t)!==b.null){let r=this._getOrReturnCtx(t);return y(r,{code:m.invalid_type,expected:b.null,received:r.parsedType}),w}return L(t.data)}};Ce.create=e=>new Ce({typeName:S.ZodNull,...R(e)});var ke=class extends A{constructor(){super(...arguments),this._any=!0}_parse(t){return L(t.data)}};ke.create=e=>new ke({typeName:S.ZodAny,...R(e)});var de=class extends A{constructor(){super(...arguments),this._unknown=!0}_parse(t){return L(t.data)}};de.create=e=>new de({typeName:S.ZodUnknown,...R(e)});var Q=class extends A{_parse(t){let n=this._getOrReturnCtx(t);return y(n,{code:m.invalid_type,expected:b.never,received:n.parsedType}),w}};Q.create=e=>new Q({typeName:S.ZodNever,...R(e)});var qe=class extends A{_parse(t){if(this._getType(t)!==b.undefined){let r=this._getOrReturnCtx(t);return y(r,{code:m.invalid_type,expected:b.void,received:r.parsedType}),w}return L(t.data)}};qe.create=e=>new qe({typeName:S.ZodVoid,...R(e)});var pe=class e extends A{_parse(t){let{ctx:n,status:r}=this._processInputParams(t),s=this._def;if(n.parsedType!==b.array)return y(n,{code:m.invalid_type,expected:b.array,received:n.parsedType}),w;if(s.exactLength!==null){let i=n.data.length>s.exactLength.value,a=n.data.length<s.exactLength.value;(i||a)&&(y(n,{code:i?m.too_big:m.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&&(y(n,{code:m.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&&(y(n,{code:m.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 W(n,i,n.path,a)))).then(i=>F.mergeArray(r,i));let o=[...n.data].map((i,a)=>s.type._parseSync(new W(n,i,n.path,a)));return F.mergeArray(r,o)}get element(){return this._def.type}min(t,n){return new e({...this._def,minLength:{value:t,message:x.toString(n)}})}max(t,n){return new e({...this._def,maxLength:{value:t,message:x.toString(n)}})}length(t,n){return new e({...this._def,exactLength:{value:t,message:x.toString(n)}})}nonempty(t){return this.min(1,t)}};pe.create=(e,t)=>new pe({type:e,minLength:null,maxLength:null,exactLength:null,typeName:S.ZodArray,...R(t)});function Ke(e){if(e instanceof z){let t={};for(let n in e.shape){let r=e.shape[n];t[n]=V.create(Ke(r))}return new z({...e._def,shape:()=>t})}else return e instanceof pe?new pe({...e._def,type:Ke(e.element)}):e instanceof V?V.create(Ke(e.unwrap())):e instanceof oe?oe.create(Ke(e.unwrap())):e instanceof se?se.create(e.items.map(t=>Ke(t))):e}var z=class e extends A{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=C.objectKeys(t);return this._cached={shape:t,keys:n},this._cached}_parse(t){if(this._getType(t)!==b.object){let u=this._getOrReturnCtx(t);return y(u,{code:m.invalid_type,expected:b.object,received:u.parsedType}),w}let{status:r,ctx:s}=this._processInputParams(t),{shape:o,keys:i}=this._getCached(),a=[];if(!(this._def.catchall instanceof Q&&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 W(s,f,s.path,u)),alwaysSet:u in s.data})}if(this._def.catchall instanceof Q){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&&(y(s,{code:m.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 W(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=>F.mergeObjectSync(r,u)):F.mergeObjectSync(r,l)}get shape(){return this._def.shape()}strict(t){return x.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:x.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:S.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 C.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 C.objectKeys(this.shape))t[r]||(n[r]=this.shape[r]);return new e({...this._def,shape:()=>n})}deepPartial(){return Ke(this)}partial(t){let n={};for(let r of C.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 C.objectKeys(this.shape))if(t&&!t[r])n[r]=this.shape[r];else{let o=this.shape[r];for(;o instanceof V;)o=o._def.innerType;n[r]=o}return new e({...this._def,shape:()=>n})}keyof(){return us(C.objectKeys(this.shape))}};z.create=(e,t)=>new z({shape:()=>e,unknownKeys:"strip",catchall:Q.create(),typeName:S.ZodObject,...R(t)});z.strictCreate=(e,t)=>new z({shape:()=>e,unknownKeys:"strict",catchall:Q.create(),typeName:S.ZodObject,...R(t)});z.lazycreate=(e,t)=>new z({shape:e,unknownKeys:"strip",catchall:Q.create(),typeName:S.ZodObject,...R(t)});var Oe=class extends A{_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 U(a.ctx.common.issues));return y(n,{code:m.invalid_union,unionErrors:i}),w}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 U(l));return y(n,{code:m.invalid_union,unionErrors:a}),w}}get options(){return this._def.options}};Oe.create=(e,t)=>new Oe({options:e,typeName:S.ZodUnion,...R(t)});var fe=e=>e instanceof Ne?fe(e.schema):e instanceof K?fe(e.innerType()):e instanceof Pe?[e.value]:e instanceof De?e.options:e instanceof Fe?C.objectValues(e.enum):e instanceof Le?fe(e._def.innerType):e instanceof $e?[void 0]:e instanceof Ce?[null]:e instanceof V?[void 0,...fe(e.unwrap())]:e instanceof oe?[null,...fe(e.unwrap())]:e instanceof kt||e instanceof je?fe(e.unwrap()):e instanceof Me?fe(e._def.innerType):[],Vt=class e extends A{_parse(t){let{ctx:n}=this._processInputParams(t);if(n.parsedType!==b.object)return y(n,{code:m.invalid_type,expected:b.object,received:n.parsedType}),w;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}):(y(n,{code:m.invalid_union_discriminator,options:Array.from(this.optionsMap.keys()),path:[r]}),w)}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=fe(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:S.ZodDiscriminatedUnion,discriminator:t,options:n,optionsMap:s,...R(r)})}};function Pn(e,t){let n=re(e),r=re(t);if(e===t)return{valid:!0,data:e};if(n===b.object&&r===b.object){let s=C.objectKeys(t),o=C.objectKeys(e).filter(a=>s.indexOf(a)!==-1),i={...e,...t};for(let a of o){let l=Pn(e[a],t[a]);if(!l.valid)return{valid:!1};i[a]=l.data}return{valid:!0,data:i}}else if(n===b.array&&r===b.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=Pn(i,a);if(!l.valid)return{valid:!1};s.push(l.data)}return{valid:!0,data:s}}else return n===b.date&&r===b.date&&+e==+t?{valid:!0,data:e}:{valid:!1}}var Ie=class extends A{_parse(t){let{status:n,ctx:r}=this._processInputParams(t),s=(o,i)=>{if(Zt(o)||Zt(i))return w;let a=Pn(o.value,i.value);return a.valid?((Gt(o)||Gt(i))&&n.dirty(),{status:n.value,value:a.data}):(y(r,{code:m.invalid_intersection_types}),w)};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}))}};Ie.create=(e,t,n)=>new Ie({left:e,right:t,typeName:S.ZodIntersection,...R(n)});var se=class e extends A{_parse(t){let{status:n,ctx:r}=this._processInputParams(t);if(r.parsedType!==b.array)return y(r,{code:m.invalid_type,expected:b.array,received:r.parsedType}),w;if(r.data.length<this._def.items.length)return y(r,{code:m.too_small,minimum:this._def.items.length,inclusive:!0,exact:!1,type:"array"}),w;!this._def.rest&&r.data.length>this._def.items.length&&(y(r,{code:m.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 W(r,i,r.path,a)):null}).filter(i=>!!i);return r.common.async?Promise.all(o).then(i=>F.mergeArray(n,i)):F.mergeArray(n,o)}get items(){return this._def.items}rest(t){return new e({...this._def,rest:t})}};se.create=(e,t)=>{if(!Array.isArray(e))throw new Error("You must pass an array of schemas to z.tuple([ ... ])");return new se({items:e,typeName:S.ZodTuple,rest:null,...R(t)})};var Wt=class e extends A{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!==b.object)return y(r,{code:m.invalid_type,expected:b.object,received:r.parsedType}),w;let s=[],o=this._def.keyType,i=this._def.valueType;for(let a in r.data)s.push({key:o._parse(new W(r,a,r.path,a)),value:i._parse(new W(r,r.data[a],r.path,a)),alwaysSet:a in r.data});return r.common.async?F.mergeObjectAsync(n,s):F.mergeObjectSync(n,s)}get element(){return this._def.valueType}static create(t,n,r){return n instanceof A?new e({keyType:t,valueType:n,typeName:S.ZodRecord,...R(r)}):new e({keyType:ye.create(),valueType:t,typeName:S.ZodRecord,...R(n)})}},Xe=class extends A{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!==b.map)return y(r,{code:m.invalid_type,expected:b.map,received:r.parsedType}),w;let s=this._def.keyType,o=this._def.valueType,i=[...r.data.entries()].map(([a,l],u)=>({key:s._parse(new W(r,a,r.path,[u,"key"])),value:o._parse(new W(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 w;(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 w;(u.status==="dirty"||c.status==="dirty")&&n.dirty(),a.set(u.value,c.value)}return{status:n.value,value:a}}}};Xe.create=(e,t,n)=>new Xe({valueType:t,keyType:e,typeName:S.ZodMap,...R(n)});var Qe=class e extends A{_parse(t){let{status:n,ctx:r}=this._processInputParams(t);if(r.parsedType!==b.set)return y(r,{code:m.invalid_type,expected:b.set,received:r.parsedType}),w;let s=this._def;s.minSize!==null&&r.data.size<s.minSize.value&&(y(r,{code:m.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&&(y(r,{code:m.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 w;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 W(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:x.toString(n)}})}max(t,n){return new e({...this._def,maxSize:{value:t,message:x.toString(n)}})}size(t,n){return this.min(t,n).max(t,n)}nonempty(t){return this.min(1,t)}};Qe.create=(e,t)=>new Qe({valueType:e,minSize:null,maxSize:null,typeName:S.ZodSet,...R(t)});var Kt=class e extends A{constructor(){super(...arguments),this.validate=this.implement}_parse(t){let{ctx:n}=this._processInputParams(t);if(n.parsedType!==b.function)return y(n,{code:m.invalid_type,expected:b.function,received:n.parsedType}),w;function r(a,l){return yt({data:a,path:n.path,errorMaps:[n.common.contextualErrorMap,n.schemaErrorMap,Ve(),ce].filter(u=>!!u),issueData:{code:m.invalid_arguments,argumentsError:l}})}function s(a,l){return yt({data:a,path:n.path,errorMaps:[n.common.contextualErrorMap,n.schemaErrorMap,Ve(),ce].filter(u=>!!u),issueData:{code:m.invalid_return_type,returnTypeError:l}})}let o={errorMap:n.common.contextualErrorMap},i=n.data;if(this._def.returns instanceof be){let a=this;return L(async function(...l){let u=new U([]),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 L(function(...l){let u=a._def.args.safeParse(l,o);if(!u.success)throw new U([r(l,u.error)]);let c=Reflect.apply(i,this,u.data),f=a._def.returns.safeParse(c,o);if(!f.success)throw new U([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:se.create(t).rest(de.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||se.create([]).rest(de.create()),returns:n||de.create(),typeName:S.ZodFunction,...R(r)})}},Ne=class extends A{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})}};Ne.create=(e,t)=>new Ne({getter:e,typeName:S.ZodLazy,...R(t)});var Pe=class extends A{_parse(t){if(t.data!==this._def.value){let n=this._getOrReturnCtx(t);return y(n,{received:n.data,code:m.invalid_literal,expected:this._def.value}),w}return{status:"valid",value:t.data}}get value(){return this._def.value}};Pe.create=(e,t)=>new Pe({value:e,typeName:S.ZodLiteral,...R(t)});function us(e,t){return new De({values:e,typeName:S.ZodEnum,...R(t)})}var De=class e extends A{_parse(t){if(typeof t.data!="string"){let n=this._getOrReturnCtx(t),r=this._def.values;return y(n,{expected:C.joinValues(r),received:n.parsedType,code:m.invalid_type}),w}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 y(n,{received:n.data,code:m.invalid_enum_value,options:r}),w}return L(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})}};De.create=us;var Fe=class extends A{_parse(t){let n=C.getValidEnumValues(this._def.values),r=this._getOrReturnCtx(t);if(r.parsedType!==b.string&&r.parsedType!==b.number){let s=C.objectValues(n);return y(r,{expected:C.joinValues(s),received:r.parsedType,code:m.invalid_type}),w}if(this._cache||(this._cache=new Set(C.getValidEnumValues(this._def.values))),!this._cache.has(t.data)){let s=C.objectValues(n);return y(r,{received:r.data,code:m.invalid_enum_value,options:s}),w}return L(t.data)}get enum(){return this._def.values}};Fe.create=(e,t)=>new Fe({values:e,typeName:S.ZodNativeEnum,...R(t)});var be=class extends A{unwrap(){return this._def.type}_parse(t){let{ctx:n}=this._processInputParams(t);if(n.parsedType!==b.promise&&n.common.async===!1)return y(n,{code:m.invalid_type,expected:b.promise,received:n.parsedType}),w;let r=n.parsedType===b.promise?n.data:Promise.resolve(n.data);return L(r.then(s=>this._def.type.parseAsync(s,{path:n.path,errorMap:n.common.contextualErrorMap})))}};be.create=(e,t)=>new be({type:e,typeName:S.ZodPromise,...R(t)});var K=class extends A{innerType(){return this._def.schema}sourceType(){return this._def.schema._def.typeName===S.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=>{y(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 w;let l=await this._def.schema._parseAsync({data:a,path:r.path,parent:r});return l.status==="aborted"?w:l.status==="dirty"?Se(l.value):n.value==="dirty"?Se(l.value):l});{if(n.value==="aborted")return w;let a=this._def.schema._parseSync({data:i,path:r.path,parent:r});return a.status==="aborted"?w:a.status==="dirty"?Se(a.value):n.value==="dirty"?Se(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"?w:(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"?w:(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(!ge(i))return w;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=>ge(i)?Promise.resolve(s.transform(i.value,o)).then(a=>({status:n.value,value:a})):w);C.assertNever(s)}};K.create=(e,t,n)=>new K({schema:e,typeName:S.ZodEffects,effect:t,...R(n)});K.createWithPreprocess=(e,t,n)=>new K({schema:t,effect:{type:"preprocess",transform:e},typeName:S.ZodEffects,...R(n)});var V=class extends A{_parse(t){return this._getType(t)===b.undefined?L(void 0):this._def.innerType._parse(t)}unwrap(){return this._def.innerType}};V.create=(e,t)=>new V({innerType:e,typeName:S.ZodOptional,...R(t)});var oe=class extends A{_parse(t){return this._getType(t)===b.null?L(null):this._def.innerType._parse(t)}unwrap(){return this._def.innerType}};oe.create=(e,t)=>new oe({innerType:e,typeName:S.ZodNullable,...R(t)});var Le=class extends A{_parse(t){let{ctx:n}=this._processInputParams(t),r=n.data;return n.parsedType===b.undefined&&(r=this._def.defaultValue()),this._def.innerType._parse({data:r,path:n.path,parent:n})}removeDefault(){return this._def.innerType}};Le.create=(e,t)=>new Le({innerType:e,typeName:S.ZodDefault,defaultValue:typeof t.default=="function"?t.default:()=>t.default,...R(t)});var Me=class extends A{_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 We(s)?s.then(o=>({status:"valid",value:o.status==="valid"?o.value:this._def.catchValue({get error(){return new U(r.common.issues)},input:r.data})})):{status:"valid",value:s.status==="valid"?s.value:this._def.catchValue({get error(){return new U(r.common.issues)},input:r.data})}}removeCatch(){return this._def.innerType}};Me.create=(e,t)=>new Me({innerType:e,typeName:S.ZodCatch,catchValue:typeof t.catch=="function"?t.catch:()=>t.catch,...R(t)});var et=class extends A{_parse(t){if(this._getType(t)!==b.nan){let r=this._getOrReturnCtx(t);return y(r,{code:m.invalid_type,expected:b.nan,received:r.parsedType}),w}return{status:"valid",value:t.data}}};et.create=e=>new et({typeName:S.ZodNaN,...R(e)});var dl=Symbol("zod_brand"),kt=class extends A{_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}},bt=class e extends A{_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"?w:o.status==="dirty"?(n.dirty(),Se(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"?w: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:S.ZodPipeline})}},je=class extends A{_parse(t){let n=this._def.innerType._parse(t),r=s=>(ge(s)&&(s.value=Object.freeze(s.value)),s);return We(n)?n.then(s=>r(s)):r(n)}unwrap(){return this._def.innerType}};je.create=(e,t)=>new je({innerType:e,typeName:S.ZodReadonly,...R(t)});function os(e,t){let n=typeof e=="function"?e(t):typeof e=="string"?{message:e}:e;return typeof n=="string"?{message:n}:n}function cs(e,t={},n){return e?ke.create().superRefine((r,s)=>{let o=e(r);if(o instanceof Promise)return o.then(i=>{if(!i){let a=os(t,r),l=a.fatal??n??!0;s.addIssue({code:"custom",...a,fatal:l})}});if(!o){let i=os(t,r),a=i.fatal??n??!0;s.addIssue({code:"custom",...i,fatal:a})}}):ke.create()}var pl={object:z.lazycreate},S;(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"})(S||(S={}));var ml=(e,t={message:`Input not instance of ${e.name}`})=>cs(n=>n instanceof e,t),fs=ye.create,ds=Ee.create,hl=et.create,gl=Te.create,ps=Re.create,yl=Ae.create,kl=Ye.create,bl=$e.create,_l=Ce.create,xl=ke.create,wl=de.create,vl=Q.create,Sl=qe.create,El=pe.create,Tl=z.create,Rl=z.strictCreate,Al=Oe.create,$l=Vt.create,Cl=Ie.create,Ol=se.create,Il=Wt.create,Nl=Xe.create,Pl=Qe.create,Dl=Kt.create,Fl=Ne.create,Ll=Pe.create,Ml=De.create,jl=Fe.create,Hl=be.create,Ul=K.create,zl=V.create,Bl=oe.create,Jl=K.createWithPreprocess,Zl=bt.create,Gl=()=>fs().optional(),Vl=()=>ds().optional(),Wl=()=>ps().optional(),Kl={string:(e=>ye.create({...e,coerce:!0})),number:(e=>Ee.create({...e,coerce:!0})),boolean:(e=>Re.create({...e,coerce:!0})),bigint:(e=>Te.create({...e,coerce:!0})),date:(e=>Ae.create({...e,coerce:!0}))};var Yl=w;var _e=g.object({slug:g.string().min(1).max(64),description:g.string().max(255).optional(),match_command:g.string().min(1),priority:g.number().int().default(50),strip_ansi:g.boolean().default(!1),strip_lines_matching:g.array(g.string()).default([]),keep_failures:g.boolean().default(!1),strip_on_failure:g.boolean().default(!1),fold_passing:g.boolean().default(!1),fold_passing_threshold:g.number().int().positive().max(1e3).optional(),mask_abs_paths:g.boolean().default(!1),preserve_exact:g.boolean().default(!1),truncate_lines_at:g.number().int().positive().max(1e4).optional(),max_lines:g.number().int().positive().max(1e5).optional(),scale_with_level:g.boolean().default(!0),transform:g.string().max(64).optional(),on_empty:g.string().max(255).optional()});var mu=du(pu(import.meta.url)),hu=process.env.TOKMIZER_FILTERS_DIR||Es(mu,"..","..","filters"),tt=null,Ss=!1;function gu(){return process.env.TOKMIZER_DEV==="1"||process.env.TOKMIZER_DEV==="true"}async function Ts(){return tt||(gu()?(tt=await yu(hu),tt):(!Ss&&process.env.TOKMIZER_DEBUG==="1"&&(process.stderr.write(`tokmizer: disk loader disabled (set TOKMIZER_DEV=1 to re-enable for local dev).
18
- `),Ss=!0),tt=new Map,tt))}async function yu(e){let t=new Map,n,r;try{n=(await Promise.resolve().then(()=>(Vn(),Gn))).parse,r=(await cu(e)).filter(s=>s.endsWith(".toml"))}catch{return t}for(let s of r){let o=await fu(Es(e,s),"utf8"),a=n(o).filters;if(a)for(let[l,u]of Object.entries(a)){let c=_e.parse({slug:l,...u});t.set(l,{...c,matchRegex:new RegExp(c.match_command)})}}return t}import{createHash as ku}from"node:crypto";var bu=g.enum(["normal","compact","minimal"]),_u=g.enum(["off","light","balanced","max"]),vt=g.object({enabled:g.boolean().default(!0),telemetryOptIn:g.boolean().default(!0),outputVerbosity:bu.default("compact"),reducer:_u.default("off"),filters:g.object({enableAll:g.boolean().default(!0),disabled:g.array(g.string().max(64)).max(100).default([])}).default({enableAll:!0,disabled:[]})}),Rs=new Map;function Y(e){let t=Rs.get(e);return t||(t=ku("sha256").update(`tkr:${e}`).digest("hex").slice(0,16),Rs.set(e,t)),t}var As=new WeakMap,xu=256;function nt(e,t,n,r=t){let s=As.get(r);s||(s=new Map,As.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(Y(l.slug))||l.matchRegex.test(e)&&(!a||l.priority>a.priority)&&(a=l);if(s.size>=xu){let l=s.keys().next().value;l&&s.delete(l)}return s.set(o,a),a}import{readdir as _c,readFile as no,writeFile as Cb,mkdir as Ob,rename as Ib}from"node:fs/promises";import{readdirSync as xc,statSync as Qs}from"node:fs";import{createHash as wc}from"node:crypto";import{basename as Fb,join as on}from"node:path";var wu=/\x1b\[[0-9;?]*[ -/]*[@-~]/g,vu=/\x1b\][^\x07\x1b]*(?:\x07|\x1b\\)/g;function ie(e){return e.replace(wu,"").replace(vu,"")}function $s(e,t){return t.length===0?e:e.filter(n=>!t.some(r=>r.test(n)))}function Cs(e,t){return e.map(n=>{if(n.length<=t)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 rt(e){return`\u2026 (${e} more lines omitted)`}function Os(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),rt(s.length),...e.slice(e.length-r)],dropped:s}}var Su=/^\s*(?:[✓✔√]|ok )/,xe=/✕|✗|×|\bFAIL\b|\bERROR\b|\bFATAL\b|\bError|\berror|Expected|Received|\bfailed\b|^\s*Tests?:|^\s*Test Suites?:/;function Is(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)Su.test(a)&&!xe.test(a)?(i.push(a),s+=1):(o(i),i=[],s=0,r.push(a));return o(i),r}var Eu=/(?:\/[\w.@+-]+){3,}/g;function Ns(e){return e.map(t=>t.replace(Eu,n=>{let r=n.split("/").filter(Boolean);return r.length<=2?n:`\u2026/${r.slice(-2).join("/")}`}))}var Tu=/^(\s*)(?:export\s+)?(?:async\s+)?(?:function|interface|type|const|let|var|def|fn|impl|trait|struct|enum)\s+[\w$]+/,Ru=/\{\s*$/;var Au=/^\s*(?:(?:public|private|protected|static|async|get|set|readonly|override)\s+)*([\w$]+)\s*\(([^)]*)\)\s*(?::\s*[^{]+)?\{\s*$/,$u=new Set(["if","for","while","switch","catch","do","with","return","else","function","await","yield"]);function Cu(e){let t=Au.exec(e);return!t||$u.has(t[1])?!1:!/=>|\bfunction\b/.test(t[2])}var Ou=/^\s*(?:if|for|while|switch|try|do)\b[^{}]*\{\s*$/;function Iu(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 Nu(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==="&"))&&Iu(e,s+1,o)&&(r=o),s+=1;continue}o==="{"||o==="("||o==="["?n+=1:(o==="}"||o===")"||o==="]")&&(n-=1),s+=1}return n}var Pu=/^\s*… (\d+) lines? folded(?: \(\d+-\d+\): Read offset=\d+ limit=\d+ before editing)? …$/;function Du(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 Wn(e){let t=new Array(e.length).fill(!1);for(let n=0;n<e.length;n+=1){let r=Pu.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 St(e,t=3,n=!1){let r=[],s=0;for(;s<e.length;){let o=e[s];if(Tu.test(o)&&Ru.test(o)||Cu(o)||Ou.test(o)){let i={inBlockComment:!1,inTemplate:!1},a=0,l=s,u=!1;for(;l<e.length&&l-s<200;)if(a+=Nu(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(Du(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 Fu=/\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 Qt(e){let t=e.slice(0,4096);return!(!Fu.test(t)||t.split(`
19
- `).length<6)}var Ls=/^\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*/,Ms=/^\s*(?:\[(?:DEBUG|TRACE|INFO|VERBOSE)\]|(?:DEBUG|TRACE|INFO|VERBOSE)(?!\s*:))(?=\s|:|$)(?!\s*[+\-*\/%&|^?]*=)/,js=new RegExp(xe.source,"i"),Hs=/\bWARN(?:ING)?\b/i;function Us(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(Ms.test(s.replace(Ls,""))&&!js.test(s)&&!Hs.test(s)){n+=1;continue}r(),t.push(s)}return r(),t}var Lu=/^(?:DEBUG|INFO):[\w.-]+:/,Mu=/Error|Exception|Traceback|panic|fail|FAIL|Fail|SEVERE|CRITICAL/,ju=8,Ps=1,Ds=2;function Fs(e){if(e.trim()===""||/^\s/.test(e)||js.test(e)||Hs.test(e)||Mu.test(e))return null;let t=e.replace(Ls,"");return Ms.test(t)||Lu.test(t)?"\0verbose":e.replace(/\d+/g,"#")}function zs(e){let t=[],n=0;for(;n<e.length;){let r=Fs(e[n]),s=n+1;if(r!==null)for(;s<e.length&&Fs(e[s])===r;)s+=1;let o=s-n;r===null||o<ju?t.push(...e.slice(n,s)):(t.push(...e.slice(n,n+Ps)),t.push(`\u2026 ${o-Ps-Ds} similar log lines dropped \u2026`),t.push(...e.slice(s-Ds,s))),n=s}return t}function en(e){if(e.length===0)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} \xD7${n}`:r),r=e[s],n=1}return t.push(n>1?`${r} \xD7${n}`:r),t}function Bs(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 Js=new Map;function B(e,t){Js.set(e,t)}function Zs(e){return Js.get(e)}var Hu=/^[dbclps\-][rwxsStT\-]{9}[@.+]?(?:\s|$)/,Uu=/^[./~][^\s]*:$/,zu=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})?`,Bu=new RegExp(String.raw`^\S+\s+\d+\s+\S+\s+(?:\S+\s+)?(\d+(?:[.,]\d+)?[KMGTPkmgtp]?i?B?)\s+(?:${zu})\s+(.+)$`),Ju={k:1,m:2,g:3,t:4,p:5},Kn=1e3;function Zu(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 Gu(e){let t=/^(\d+(?:[.,]\d+)?)([KMGTPkmgtp])?/.exec(e),n=t[2]?Ju[t[2].toLowerCase()]:0;return Number(t[1].replace(",","."))*1024**n}function Vu(e){let t=Bu.exec(e);if(!t)return null;let n=t[2].trim();if(n===""||n==="."||n==="..")return null;let r=t[1],s=/^\d+$/.test(r)?Zu(Number(r)):r,o=e.charCodeAt(0)===100;return{name:n,size:s,sizeKey:Gu(r),isDir:o}}function Wu(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}function Ku(e){let t=[],n=[],r=!1;for(let f of e){if(f.trim()===""||/^total\s+\d+/.test(f))continue;if(Uu.test(f.trim())||!Hu.test(f))return e;let d=Vu(f);if(!d){if(/\s\.\.?$/.test(f))continue;return e}r=!0,(d.isDir?t:n).push(d)}if(!r)return e;let s=(f,d)=>f.name.localeCompare(d.name);t.sort(s),n.sort((f,d)=>d.sizeKey-f.sizeKey||s(f,d));let o=[...t,...n],i=[];for(let f of o){let d=f.isDir?`${f.name}/`:f.name;i.push(f.isDir?d:`${d} ${f.size}`)}if(i.length>Kn){let f=i.length-Kn;i=[...i.slice(0,Kn),`\u2026 ${f} more lines omitted`]}let a=n.length===1?"file":"files",l=t.length===1?"dir":"dirs",u=Wu(n),c=`${n.length} ${a}, ${t.length} ${l}`+(u?` (${u})`:"");return i.push(c),i}B("smart-ls",Ku);B("smart-read",e=>St(e));var Gs=1e3;function Yu(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 qu(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 Xu(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):"",h=d>=0?f.slice(d+1):f;if(!h)continue;let _=r.get(p)??[];_.push(/\s/.test(h)?`"${h}"`:h),r.set(p,_),o+=1}if(o===0)return e;let i=[...r.keys()].sort(),a=i.every(u=>u!=="")?Yu(i):"",l=[`${o}F ${i.length}D${a?` in ${a}/`:""}:`];for(let u of i){let c=a?u.slice(a.length).replace(/^\//,""):u,f=r.get(u),d=qu(f),p=d?f.map(h=>h.slice(0,-d.length)):f;l.push(`${c?`${c}/`:"./"} (${f.length}${d?`, *${d}`:""}): ${p.join(" ")}`)}if(l.length+s.length>Gs){let u=Math.max(0,Gs-s.length),c=l.length-u;return[...l.slice(0,u),`\u2026 ${c} more lines omitted`,...s]}return[...l,...s]}B("smart-find",Xu);var Yn=1e3,Vs=200,Qu=60,ec=190,tc=/^([^\s:]+):(\d+):(.*)$/,nc=/^([^:]+?)-(\d+)-(.*)$/,rc=/^([^\s:]+):(.*)$/,Ws=/(?:^|\/)(?:__tests__|tests?|spec|fixtures?|__mocks__|__snapshots__)\/|\.(?:test|spec)\.[^/]+$/i;function Ks(e){let t=e.trim();return t.length>Vs?`${t.slice(0,Vs)}\u2026`:t}function sc(e){let t=[],n="";for(let r of e){let s=n?`${n}, ${r}`:r;s.length>=ec&&n?(t.push(`${n},`),n=r):n=s}return n&&t.push(n),t}function oc(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 ic(e){let t=e.filter(p=>p.trim()!=="");if(t.length===0)return e;let n=new Map,r=new Map,s=null,o=0,i=0;for(let p of t){if(p==="--"){s&&n.get(s).push({separator:!0});continue}if(/^[A-Za-z]:[\\/]/.test(p))return e;let h=tc.exec(p),_=nc.exec(p);if(h&&_)return e;let k=h||_?null:rc.exec(p),T=(h??_??k)?.[1];if(!T)return e;let E=h?{line:h[2],content:h[3],context:!1}:_?{line:_[2],content:_[3],context:!0}:{line:"",content:k[2],context:!1},O=n.get(T)??[];O.push(E),n.set(T,O),E.context||(o+=1,r.set(T,(r.get(T)??0)+1)),i+=1,s=T}if(n.size===i)return e;let a=[...n.keys()].sort((p,h)=>{let _=Ws.test(p)?1:0,k=Ws.test(h)?1:0;return _-k||(p<h?-1:p>h?1:0)}),l=a.length>1?oc(a):"",u=p=>l?p.slice(l.length+1):p,c=[];for(let p of a){c.push(`${u(p)} (${r.get(p)??0}):`);for(let h of n.get(p))"separator"in h?c.push(" --"):h.line?c.push(` ${h.line}${h.context?"-":":"} ${Ks(h.content)}`):c.push(` ${Ks(h.content)}`)}let f=a.length>1&&c.length>Qu?sc(a.map(p=>`${u(p)} (${r.get(p)??0})`)):[],d=[`${o}m ${a.length}f${l?` in ${l}/`:""}:`,...f,"",...c];if(d.length>Yn){let p=d.length-Yn;return[...d.slice(0,Yn),`\u2026 ${p} more lines omitted`]}return d}B("smart-grep",ic);var Ys=/^(?:([|\\/ ._-]*\*[|\\/* ._-]* ))?commit [0-9a-f]{7,40}\b/,ac=/^[|\\/* ._-]*$/,lc=/^ {4}/,uc=2;function cc(e){if(!e.some(u=>Ys.test(u)))return e;let t=[],n=0,r=0,s=0,o="",i=!1,a=!1,l=()=>{r>0&&t.push(`${o} \u2026 ${r} ${r===1?"line":"lines"} folded \u2026`),r=0};for(let u of e){let c=u.slice(0,s),f=ac.test(c),d=f?u.slice(s):u,p=lc.test(d),h=i&&p?null:Ys.exec(u);if(h){l(),n=0,s=h[1]?.length??0,i=!0,a=!1,t.push(u);continue}if(/^diff --(?:git|cc|combined) /.test(d)&&(a=!0),p&&!a&&!(s>0&&d.trim().length===0)){n+=1,n<=uc?t.push(u):(r+=1,o=f?c:"");continue}l(),t.push(u)}return l(),t}B("smart-log",cc);var fc=/^[\s=]+$/,dc=/^\s*=+\s+(.*?)\s+=+\s*$/,pc=512;B("strip-banners",e=>{let t=[];for(let n of e){if(fc.test(n))continue;let r=n.length<=pc?dc.exec(n):null;t.push(r?r[1]:n)}return t});function mc(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}B("squeeze-output",mc);function hc(e){return e==="compact"?.6:e==="minimal"?.3:1}var gc=20;function yc(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 qs=new WeakMap;function kc(e){let t=qs.get(e);if(t)return t;let n=e.strip_lines_matching.map(s=>new RegExp(s)),r={def:e,stripRegexes:n};return qs.set(e,r),r}function tn(e,t,n={}){return qn(e,t,n).text}function qn(e,t,n={}){let r=n.verbosity??"normal";if(!t.strip_ansi&&t.strip_lines_matching.length===0&&!t.transform&&!t.mask_abs_paths&&!t.fold_passing&&!t.truncate_lines_at&&!t.max_lines&&!t.on_empty&&!n.smartCode&&r==="normal")return{text:e,droppedTail:null};let s=kc(t),o=e;t.strip_ansi&&(o=ie(o));let i=o.endsWith(`
17
+ `:s}var lu,_s,vs=ce(()=>{lu=/^[a-z0-9-_]+$/i,_s=!!"".isWellFormed});var Gn={};ns(Gn,{TomlDate:()=>ze,TomlError:()=>S,default:()=>mu,parse:()=>Bn,stringify:()=>Zn});var mu,Vn=ce(()=>{bs();vs();Fn();Be();mu={parse:Bn,stringify:Zn,TomlDate:ze,TomlError:S}});import{readdir as hu,readFile as gu}from"node:fs/promises";import{join as Es,dirname as yu}from"node:path";import{fileURLToPath as ku}from"node:url";var g={};ns(g,{BRAND:()=>yl,DIRTY:()=>Te,EMPTY_PATH:()=>Ka,INVALID:()=>v,NEVER:()=>tu,OK:()=>M,ParseStatus:()=>L,Schema:()=>A,ZodAny:()=>ke,ZodArray:()=>me,ZodBigInt:()=>Ae,ZodBoolean:()=>$e,ZodBranded:()=>bt,ZodCatch:()=>He,ZodDate:()=>Ce,ZodDefault:()=>je,ZodDiscriminatedUnion:()=>Vt,ZodEffects:()=>Y,ZodEnum:()=>Le,ZodError:()=>U,ZodFirstPartyTypeKind:()=>E,ZodFunction:()=>Kt,ZodIntersection:()=>Ne,ZodIssueCode:()=>m,ZodLazy:()=>De,ZodLiteral:()=>Fe,ZodMap:()=>Qe,ZodNaN:()=>tt,ZodNativeEnum:()=>Me,ZodNever:()=>ee,ZodNull:()=>Ie,ZodNullable:()=>ie,ZodNumber:()=>Re,ZodObject:()=>B,ZodOptional:()=>W,ZodParsedType:()=>b,ZodPipeline:()=>_t,ZodPromise:()=>be,ZodReadonly:()=>Ue,ZodRecord:()=>Wt,ZodSchema:()=>A,ZodSet:()=>et,ZodString:()=>ye,ZodSymbol:()=>qe,ZodTransformer:()=>Y,ZodTuple:()=>oe,ZodType:()=>A,ZodUndefined:()=>Oe,ZodUnion:()=>Pe,ZodUnknown:()=>pe,ZodVoid:()=>Xe,addIssueToContext:()=>k,any:()=>Tl,array:()=>Cl,bigint:()=>xl,boolean:()=>ps,coerce:()=>eu,custom:()=>cs,date:()=>wl,datetimeRegex:()=>ls,defaultErrorMap:()=>de,discriminatedUnion:()=>Nl,effect:()=>Gl,enum:()=>zl,function:()=>Hl,getErrorMap:()=>We,getParsedType:()=>se,instanceof:()=>bl,intersection:()=>Dl,isAborted:()=>Zt,isAsync:()=>Ke,isDirty:()=>Gt,isValid:()=>ge,late:()=>kl,lazy:()=>Ul,literal:()=>Bl,makeIssue:()=>kt,map:()=>Ml,nan:()=>_l,nativeEnum:()=>Jl,never:()=>Al,null:()=>El,nullable:()=>Wl,number:()=>fs,object:()=>Ol,objectUtil:()=>In,oboolean:()=>Ql,onumber:()=>Xl,optional:()=>Vl,ostring:()=>ql,pipeline:()=>Yl,preprocess:()=>Kl,promise:()=>Zl,quotelessJson:()=>Ga,record:()=>Ll,set:()=>jl,setErrorMap:()=>Wa,strictObject:()=>Il,string:()=>ds,symbol:()=>vl,transformer:()=>Gl,tuple:()=>Fl,undefined:()=>Sl,union:()=>Pl,unknown:()=>Rl,util:()=>C,void:()=>$l});var C;(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})(C||(C={}));var In;(function(e){e.mergeShapes=(t,n)=>({...t,...n})})(In||(In={}));var b=C.arrayToEnum(["string","nan","number","integer","float","boolean","date","bigint","symbol","function","undefined","null","array","object","unknown","promise","void","never","map","set"]),se=e=>{switch(typeof e){case"undefined":return b.undefined;case"string":return b.string;case"number":return Number.isNaN(e)?b.nan:b.number;case"boolean":return b.boolean;case"function":return b.function;case"bigint":return b.bigint;case"symbol":return b.symbol;case"object":return Array.isArray(e)?b.array:e===null?b.null:e.then&&typeof e.then=="function"&&e.catch&&typeof e.catch=="function"?b.promise:typeof Map<"u"&&e instanceof Map?b.map:typeof Set<"u"&&e instanceof Set?b.set:typeof Date<"u"&&e instanceof Date?b.date:b.object;default:return b.unknown}};var m=C.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"]),Ga=e=>JSON.stringify(e,null,2).replace(/"([^"]+)":/g,"$1:"),U=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,C.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()}};U.create=e=>new U(e);var Va=(e,t)=>{let n;switch(e.code){case m.invalid_type:e.received===b.undefined?n="Required":n=`Expected ${e.expected}, received ${e.received}`;break;case m.invalid_literal:n=`Invalid literal value, expected ${JSON.stringify(e.expected,C.jsonStringifyReplacer)}`;break;case m.unrecognized_keys:n=`Unrecognized key(s) in object: ${C.joinValues(e.keys,", ")}`;break;case m.invalid_union:n="Invalid input";break;case m.invalid_union_discriminator:n=`Invalid discriminator value. Expected ${C.joinValues(e.options)}`;break;case m.invalid_enum_value:n=`Invalid enum value. Expected ${C.joinValues(e.options)}, received '${e.received}'`;break;case m.invalid_arguments:n="Invalid function arguments";break;case m.invalid_return_type:n="Invalid function return type";break;case m.invalid_date:n="Invalid date";break;case m.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}"`:C.assertNever(e.validation):e.validation!=="regex"?n=`Invalid ${e.validation}`:n="Invalid";break;case m.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 m.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 m.custom:n="Invalid input";break;case m.invalid_intersection_types:n="Intersection results could not be merged";break;case m.not_multiple_of:n=`Number must be a multiple of ${e.multipleOf}`;break;case m.not_finite:n="Number must be finite";break;default:n=t.defaultError,C.assertNever(e)}return{message:n}},de=Va;var rs=de;function Wa(e){rs=e}function We(){return rs}var kt=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}},Ka=[];function k(e,t){let n=We(),r=kt({issueData:t,data:e.data,path:e.path,errorMaps:[e.common.contextualErrorMap,e.schemaErrorMap,n,n===de?void 0:de].filter(s=>!!s)});e.common.issues.push(r)}var L=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"}),Te=e=>({status:"dirty",value:e}),M=e=>({status:"valid",value:e}),Zt=e=>e.status==="aborted",Gt=e=>e.status==="dirty",ge=e=>e.status==="valid",Ke=e=>typeof Promise<"u"&&e instanceof Promise;var _;(function(e){e.errToObj=t=>typeof t=="string"?{message:t}:t||{},e.toString=t=>typeof t=="string"?t:t?.message})(_||(_={}));var K=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}},ss=(e,t)=>{if(ge(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 U(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 A=class{get description(){return this._def.description}_getType(t){return se(t.data)}_getOrReturnCtx(t,n){return n||{common:t.parent.common,data:t.data,parsedType:se(t.data),schemaErrorMap:this._def.errorMap,path:t.path,parent:t.parent}}_processInputParams(t){return{status:new L,ctx:{common:t.parent.common,data:t.data,parsedType:se(t.data),schemaErrorMap:this._def.errorMap,path:t.path,parent:t.parent}}}_parseSync(t){let n=this._parse(t);if(Ke(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:se(t)},s=this._parseSync({data:t,path:r.path,parent:r});return ss(r,s)}"~validate"(t){let n={common:{issues:[],async:!!this["~standard"].async},path:[],schemaErrorMap:this._def.errorMap,parent:null,data:t,parsedType:se(t)};if(!this["~standard"].async)try{let r=this._parseSync({data:t,path:[],parent:n});return ge(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=>ge(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:se(t)},s=this._parse({data:t,path:r.path,parent:r}),o=await(Ke(s)?s:Promise.resolve(s));return ss(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:m.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:E.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 W.create(this,this._def)}nullable(){return ie.create(this,this._def)}nullish(){return this.nullable().optional()}array(){return me.create(this)}promise(){return be.create(this,this._def)}or(t){return Pe.create([this,t],this._def)}and(t){return Ne.create(this,t,this._def)}transform(t){return new Y({...R(this._def),schema:this,typeName:E.ZodEffects,effect:{type:"transform",transform:t}})}default(t){let n=typeof t=="function"?t:()=>t;return new je({...R(this._def),innerType:this,defaultValue:n,typeName:E.ZodDefault})}brand(){return new bt({typeName:E.ZodBranded,type:this,...R(this._def)})}catch(t){let n=typeof t=="function"?t:()=>t;return new He({...R(this._def),innerType:this,catchValue:n,typeName:E.ZodCatch})}describe(t){let n=this.constructor;return new n({...this._def,description:t})}pipe(t){return _t.create(this,t)}readonly(){return Ue.create(this)}isOptional(){return this.safeParse(void 0).success}isNullable(){return this.safeParse(null).success}},Ya=/^c[^\s-]{8,}$/i,qa=/^[0-9a-z]+$/,Xa=/^[0-9A-HJKMNP-TV-Z]{26}$/i,Qa=/^[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,el=/^[a-z0-9_-]{21}$/i,tl=/^[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]*$/,nl=/^[-+]?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)?)??$/,rl=/^(?!\.)(?!.*\.\.)([A-Z0-9_'+\-\.]*)[A-Z0-9_+-]@([A-Z0-9][A-Z0-9\-]*\.)+[A-Z]{2,}$/i,sl="^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$",Pn,ol=/^(?:(?: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])$/,il=/^(?:(?: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])$/,al=/^(([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]))$/,ll=/^(([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])$/,ul=/^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/,cl=/^([0-9a-zA-Z-_]{4})*(([0-9a-zA-Z-_]{2}(==)?)|([0-9a-zA-Z-_]{3}(=)?))?$/,is="((\\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])))",dl=new RegExp(`^${is}$`);function as(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 fl(e){return new RegExp(`^${as(e)}$`)}function ls(e){let t=`${is}T${as(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 pl(e,t){return!!((t==="v4"||!t)&&ol.test(e)||(t==="v6"||!t)&&al.test(e))}function ml(e,t){if(!tl.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 hl(e,t){return!!((t==="v4"||!t)&&il.test(e)||(t==="v6"||!t)&&ll.test(e))}var ye=class e extends A{_parse(t){if(this._def.coerce&&(t.data=String(t.data)),this._getType(t)!==b.string){let o=this._getOrReturnCtx(t);return k(o,{code:m.invalid_type,expected:b.string,received:o.parsedType}),v}let r=new L,s;for(let o of this._def.checks)if(o.kind==="min")t.data.length<o.value&&(s=this._getOrReturnCtx(t,s),k(s,{code:m.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),k(s,{code:m.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?k(s,{code:m.too_big,maximum:o.value,type:"string",inclusive:!0,exact:!0,message:o.message}):a&&k(s,{code:m.too_small,minimum:o.value,type:"string",inclusive:!0,exact:!0,message:o.message}),r.dirty())}else if(o.kind==="email")rl.test(t.data)||(s=this._getOrReturnCtx(t,s),k(s,{validation:"email",code:m.invalid_string,message:o.message}),r.dirty());else if(o.kind==="emoji")Pn||(Pn=new RegExp(sl,"u")),Pn.test(t.data)||(s=this._getOrReturnCtx(t,s),k(s,{validation:"emoji",code:m.invalid_string,message:o.message}),r.dirty());else if(o.kind==="uuid")Qa.test(t.data)||(s=this._getOrReturnCtx(t,s),k(s,{validation:"uuid",code:m.invalid_string,message:o.message}),r.dirty());else if(o.kind==="nanoid")el.test(t.data)||(s=this._getOrReturnCtx(t,s),k(s,{validation:"nanoid",code:m.invalid_string,message:o.message}),r.dirty());else if(o.kind==="cuid")Ya.test(t.data)||(s=this._getOrReturnCtx(t,s),k(s,{validation:"cuid",code:m.invalid_string,message:o.message}),r.dirty());else if(o.kind==="cuid2")qa.test(t.data)||(s=this._getOrReturnCtx(t,s),k(s,{validation:"cuid2",code:m.invalid_string,message:o.message}),r.dirty());else if(o.kind==="ulid")Xa.test(t.data)||(s=this._getOrReturnCtx(t,s),k(s,{validation:"ulid",code:m.invalid_string,message:o.message}),r.dirty());else if(o.kind==="url")try{new URL(t.data)}catch{s=this._getOrReturnCtx(t,s),k(s,{validation:"url",code:m.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),k(s,{validation:"regex",code:m.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),k(s,{code:m.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),k(s,{code:m.invalid_string,validation:{startsWith:o.value},message:o.message}),r.dirty()):o.kind==="endsWith"?t.data.endsWith(o.value)||(s=this._getOrReturnCtx(t,s),k(s,{code:m.invalid_string,validation:{endsWith:o.value},message:o.message}),r.dirty()):o.kind==="datetime"?ls(o).test(t.data)||(s=this._getOrReturnCtx(t,s),k(s,{code:m.invalid_string,validation:"datetime",message:o.message}),r.dirty()):o.kind==="date"?dl.test(t.data)||(s=this._getOrReturnCtx(t,s),k(s,{code:m.invalid_string,validation:"date",message:o.message}),r.dirty()):o.kind==="time"?fl(o).test(t.data)||(s=this._getOrReturnCtx(t,s),k(s,{code:m.invalid_string,validation:"time",message:o.message}),r.dirty()):o.kind==="duration"?nl.test(t.data)||(s=this._getOrReturnCtx(t,s),k(s,{validation:"duration",code:m.invalid_string,message:o.message}),r.dirty()):o.kind==="ip"?pl(t.data,o.version)||(s=this._getOrReturnCtx(t,s),k(s,{validation:"ip",code:m.invalid_string,message:o.message}),r.dirty()):o.kind==="jwt"?ml(t.data,o.alg)||(s=this._getOrReturnCtx(t,s),k(s,{validation:"jwt",code:m.invalid_string,message:o.message}),r.dirty()):o.kind==="cidr"?hl(t.data,o.version)||(s=this._getOrReturnCtx(t,s),k(s,{validation:"cidr",code:m.invalid_string,message:o.message}),r.dirty()):o.kind==="base64"?ul.test(t.data)||(s=this._getOrReturnCtx(t,s),k(s,{validation:"base64",code:m.invalid_string,message:o.message}),r.dirty()):o.kind==="base64url"?cl.test(t.data)||(s=this._getOrReturnCtx(t,s),k(s,{validation:"base64url",code:m.invalid_string,message:o.message}),r.dirty()):C.assertNever(o);return{status:r.value,value:t.data}}_regex(t,n,r){return this.refinement(s=>t.test(s),{validation:n,code:m.invalid_string,..._.errToObj(r)})}_addCheck(t){return new e({...this._def,checks:[...this._def.checks,t]})}email(t){return this._addCheck({kind:"email",..._.errToObj(t)})}url(t){return this._addCheck({kind:"url",..._.errToObj(t)})}emoji(t){return this._addCheck({kind:"emoji",..._.errToObj(t)})}uuid(t){return this._addCheck({kind:"uuid",..._.errToObj(t)})}nanoid(t){return this._addCheck({kind:"nanoid",..._.errToObj(t)})}cuid(t){return this._addCheck({kind:"cuid",..._.errToObj(t)})}cuid2(t){return this._addCheck({kind:"cuid2",..._.errToObj(t)})}ulid(t){return this._addCheck({kind:"ulid",..._.errToObj(t)})}base64(t){return this._addCheck({kind:"base64",..._.errToObj(t)})}base64url(t){return this._addCheck({kind:"base64url",..._.errToObj(t)})}jwt(t){return this._addCheck({kind:"jwt",..._.errToObj(t)})}ip(t){return this._addCheck({kind:"ip",..._.errToObj(t)})}cidr(t){return this._addCheck({kind:"cidr",..._.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,..._.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,..._.errToObj(t?.message)})}duration(t){return this._addCheck({kind:"duration",..._.errToObj(t)})}regex(t,n){return this._addCheck({kind:"regex",regex:t,..._.errToObj(n)})}includes(t,n){return this._addCheck({kind:"includes",value:t,position:n?.position,..._.errToObj(n?.message)})}startsWith(t,n){return this._addCheck({kind:"startsWith",value:t,..._.errToObj(n)})}endsWith(t,n){return this._addCheck({kind:"endsWith",value:t,..._.errToObj(n)})}min(t,n){return this._addCheck({kind:"min",value:t,..._.errToObj(n)})}max(t,n){return this._addCheck({kind:"max",value:t,..._.errToObj(n)})}length(t,n){return this._addCheck({kind:"length",value:t,..._.errToObj(n)})}nonempty(t){return this.min(1,_.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}};ye.create=e=>new ye({checks:[],typeName:E.ZodString,coerce:e?.coerce??!1,...R(e)});function gl(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 Re=class e extends A{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)!==b.number){let o=this._getOrReturnCtx(t);return k(o,{code:m.invalid_type,expected:b.number,received:o.parsedType}),v}let r,s=new L;for(let o of this._def.checks)o.kind==="int"?C.isInteger(t.data)||(r=this._getOrReturnCtx(t,r),k(r,{code:m.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),k(r,{code:m.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),k(r,{code:m.too_big,maximum:o.value,type:"number",inclusive:o.inclusive,exact:!1,message:o.message}),s.dirty()):o.kind==="multipleOf"?gl(t.data,o.value)!==0&&(r=this._getOrReturnCtx(t,r),k(r,{code:m.not_multiple_of,multipleOf:o.value,message:o.message}),s.dirty()):o.kind==="finite"?Number.isFinite(t.data)||(r=this._getOrReturnCtx(t,r),k(r,{code:m.not_finite,message:o.message}),s.dirty()):C.assertNever(o);return{status:s.value,value:t.data}}gte(t,n){return this.setLimit("min",t,!0,_.toString(n))}gt(t,n){return this.setLimit("min",t,!1,_.toString(n))}lte(t,n){return this.setLimit("max",t,!0,_.toString(n))}lt(t,n){return this.setLimit("max",t,!1,_.toString(n))}setLimit(t,n,r,s){return new e({...this._def,checks:[...this._def.checks,{kind:t,value:n,inclusive:r,message:_.toString(s)}]})}_addCheck(t){return new e({...this._def,checks:[...this._def.checks,t]})}int(t){return this._addCheck({kind:"int",message:_.toString(t)})}positive(t){return this._addCheck({kind:"min",value:0,inclusive:!1,message:_.toString(t)})}negative(t){return this._addCheck({kind:"max",value:0,inclusive:!1,message:_.toString(t)})}nonpositive(t){return this._addCheck({kind:"max",value:0,inclusive:!0,message:_.toString(t)})}nonnegative(t){return this._addCheck({kind:"min",value:0,inclusive:!0,message:_.toString(t)})}multipleOf(t,n){return this._addCheck({kind:"multipleOf",value:t,message:_.toString(n)})}finite(t){return this._addCheck({kind:"finite",message:_.toString(t)})}safe(t){return this._addCheck({kind:"min",inclusive:!0,value:Number.MIN_SAFE_INTEGER,message:_.toString(t)})._addCheck({kind:"max",inclusive:!0,value:Number.MAX_SAFE_INTEGER,message:_.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"&&C.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)}};Re.create=e=>new Re({checks:[],typeName:E.ZodNumber,coerce:e?.coerce||!1,...R(e)});var Ae=class e extends A{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)!==b.bigint)return this._getInvalidInput(t);let r,s=new L;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),k(r,{code:m.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),k(r,{code:m.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),k(r,{code:m.not_multiple_of,multipleOf:o.value,message:o.message}),s.dirty()):C.assertNever(o);return{status:s.value,value:t.data}}_getInvalidInput(t){let n=this._getOrReturnCtx(t);return k(n,{code:m.invalid_type,expected:b.bigint,received:n.parsedType}),v}gte(t,n){return this.setLimit("min",t,!0,_.toString(n))}gt(t,n){return this.setLimit("min",t,!1,_.toString(n))}lte(t,n){return this.setLimit("max",t,!0,_.toString(n))}lt(t,n){return this.setLimit("max",t,!1,_.toString(n))}setLimit(t,n,r,s){return new e({...this._def,checks:[...this._def.checks,{kind:t,value:n,inclusive:r,message:_.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:_.toString(t)})}negative(t){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!1,message:_.toString(t)})}nonpositive(t){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!0,message:_.toString(t)})}nonnegative(t){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!0,message:_.toString(t)})}multipleOf(t,n){return this._addCheck({kind:"multipleOf",value:t,message:_.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}};Ae.create=e=>new Ae({checks:[],typeName:E.ZodBigInt,coerce:e?.coerce??!1,...R(e)});var $e=class extends A{_parse(t){if(this._def.coerce&&(t.data=!!t.data),this._getType(t)!==b.boolean){let r=this._getOrReturnCtx(t);return k(r,{code:m.invalid_type,expected:b.boolean,received:r.parsedType}),v}return M(t.data)}};$e.create=e=>new $e({typeName:E.ZodBoolean,coerce:e?.coerce||!1,...R(e)});var Ce=class e extends A{_parse(t){if(this._def.coerce&&(t.data=new Date(t.data)),this._getType(t)!==b.date){let o=this._getOrReturnCtx(t);return k(o,{code:m.invalid_type,expected:b.date,received:o.parsedType}),v}if(Number.isNaN(t.data.getTime())){let o=this._getOrReturnCtx(t);return k(o,{code:m.invalid_date}),v}let r=new L,s;for(let o of this._def.checks)o.kind==="min"?t.data.getTime()<o.value&&(s=this._getOrReturnCtx(t,s),k(s,{code:m.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),k(s,{code:m.too_big,message:o.message,inclusive:!0,exact:!1,maximum:o.value,type:"date"}),r.dirty()):C.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:_.toString(n)})}max(t,n){return this._addCheck({kind:"max",value:t.getTime(),message:_.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}};Ce.create=e=>new Ce({checks:[],coerce:e?.coerce||!1,typeName:E.ZodDate,...R(e)});var qe=class extends A{_parse(t){if(this._getType(t)!==b.symbol){let r=this._getOrReturnCtx(t);return k(r,{code:m.invalid_type,expected:b.symbol,received:r.parsedType}),v}return M(t.data)}};qe.create=e=>new qe({typeName:E.ZodSymbol,...R(e)});var Oe=class extends A{_parse(t){if(this._getType(t)!==b.undefined){let r=this._getOrReturnCtx(t);return k(r,{code:m.invalid_type,expected:b.undefined,received:r.parsedType}),v}return M(t.data)}};Oe.create=e=>new Oe({typeName:E.ZodUndefined,...R(e)});var Ie=class extends A{_parse(t){if(this._getType(t)!==b.null){let r=this._getOrReturnCtx(t);return k(r,{code:m.invalid_type,expected:b.null,received:r.parsedType}),v}return M(t.data)}};Ie.create=e=>new Ie({typeName:E.ZodNull,...R(e)});var ke=class extends A{constructor(){super(...arguments),this._any=!0}_parse(t){return M(t.data)}};ke.create=e=>new ke({typeName:E.ZodAny,...R(e)});var pe=class extends A{constructor(){super(...arguments),this._unknown=!0}_parse(t){return M(t.data)}};pe.create=e=>new pe({typeName:E.ZodUnknown,...R(e)});var ee=class extends A{_parse(t){let n=this._getOrReturnCtx(t);return k(n,{code:m.invalid_type,expected:b.never,received:n.parsedType}),v}};ee.create=e=>new ee({typeName:E.ZodNever,...R(e)});var Xe=class extends A{_parse(t){if(this._getType(t)!==b.undefined){let r=this._getOrReturnCtx(t);return k(r,{code:m.invalid_type,expected:b.void,received:r.parsedType}),v}return M(t.data)}};Xe.create=e=>new Xe({typeName:E.ZodVoid,...R(e)});var me=class e extends A{_parse(t){let{ctx:n,status:r}=this._processInputParams(t),s=this._def;if(n.parsedType!==b.array)return k(n,{code:m.invalid_type,expected:b.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)&&(k(n,{code:i?m.too_big:m.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&&(k(n,{code:m.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&&(k(n,{code:m.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 K(n,i,n.path,a)))).then(i=>L.mergeArray(r,i));let o=[...n.data].map((i,a)=>s.type._parseSync(new K(n,i,n.path,a)));return L.mergeArray(r,o)}get element(){return this._def.type}min(t,n){return new e({...this._def,minLength:{value:t,message:_.toString(n)}})}max(t,n){return new e({...this._def,maxLength:{value:t,message:_.toString(n)}})}length(t,n){return new e({...this._def,exactLength:{value:t,message:_.toString(n)}})}nonempty(t){return this.min(1,t)}};me.create=(e,t)=>new me({type:e,minLength:null,maxLength:null,exactLength:null,typeName:E.ZodArray,...R(t)});function Ye(e){if(e instanceof B){let t={};for(let n in e.shape){let r=e.shape[n];t[n]=W.create(Ye(r))}return new B({...e._def,shape:()=>t})}else return e instanceof me?new me({...e._def,type:Ye(e.element)}):e instanceof W?W.create(Ye(e.unwrap())):e instanceof ie?ie.create(Ye(e.unwrap())):e instanceof oe?oe.create(e.items.map(t=>Ye(t))):e}var B=class e extends A{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=C.objectKeys(t);return this._cached={shape:t,keys:n},this._cached}_parse(t){if(this._getType(t)!==b.object){let u=this._getOrReturnCtx(t);return k(u,{code:m.invalid_type,expected:b.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 ee&&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],d=s.data[u];l.push({key:{status:"valid",value:u},value:c._parse(new K(s,d,s.path,u)),alwaysSet:u in s.data})}if(this._def.catchall instanceof ee){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&&(k(s,{code:m.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 d=s.data[c];l.push({key:{status:"valid",value:c},value:u._parse(new K(s,d,s.path,c)),alwaysSet:c in s.data})}}return s.common.async?Promise.resolve().then(async()=>{let u=[];for(let c of l){let d=await c.key,f=await c.value;u.push({key:d,value:f,alwaysSet:c.alwaysSet})}return u}).then(u=>L.mergeObjectSync(r,u)):L.mergeObjectSync(r,l)}get shape(){return this._def.shape()}strict(t){return _.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:_.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:E.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 C.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 C.objectKeys(this.shape))t[r]||(n[r]=this.shape[r]);return new e({...this._def,shape:()=>n})}deepPartial(){return Ye(this)}partial(t){let n={};for(let r of C.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 C.objectKeys(this.shape))if(t&&!t[r])n[r]=this.shape[r];else{let o=this.shape[r];for(;o instanceof W;)o=o._def.innerType;n[r]=o}return new e({...this._def,shape:()=>n})}keyof(){return us(C.objectKeys(this.shape))}};B.create=(e,t)=>new B({shape:()=>e,unknownKeys:"strip",catchall:ee.create(),typeName:E.ZodObject,...R(t)});B.strictCreate=(e,t)=>new B({shape:()=>e,unknownKeys:"strict",catchall:ee.create(),typeName:E.ZodObject,...R(t)});B.lazycreate=(e,t)=>new B({shape:e,unknownKeys:"strip",catchall:ee.create(),typeName:E.ZodObject,...R(t)});var Pe=class extends A{_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 U(a.ctx.common.issues));return k(n,{code:m.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 U(l));return k(n,{code:m.invalid_union,unionErrors:a}),v}}get options(){return this._def.options}};Pe.create=(e,t)=>new Pe({options:e,typeName:E.ZodUnion,...R(t)});var fe=e=>e instanceof De?fe(e.schema):e instanceof Y?fe(e.innerType()):e instanceof Fe?[e.value]:e instanceof Le?e.options:e instanceof Me?C.objectValues(e.enum):e instanceof je?fe(e._def.innerType):e instanceof Oe?[void 0]:e instanceof Ie?[null]:e instanceof W?[void 0,...fe(e.unwrap())]:e instanceof ie?[null,...fe(e.unwrap())]:e instanceof bt||e instanceof Ue?fe(e.unwrap()):e instanceof He?fe(e._def.innerType):[],Vt=class e extends A{_parse(t){let{ctx:n}=this._processInputParams(t);if(n.parsedType!==b.object)return k(n,{code:m.invalid_type,expected:b.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}):(k(n,{code:m.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=fe(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:E.ZodDiscriminatedUnion,discriminator:t,options:n,optionsMap:s,...R(r)})}};function Nn(e,t){let n=se(e),r=se(t);if(e===t)return{valid:!0,data:e};if(n===b.object&&r===b.object){let s=C.objectKeys(t),o=C.objectKeys(e).filter(a=>s.indexOf(a)!==-1),i={...e,...t};for(let a of o){let l=Nn(e[a],t[a]);if(!l.valid)return{valid:!1};i[a]=l.data}return{valid:!0,data:i}}else if(n===b.array&&r===b.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=Nn(i,a);if(!l.valid)return{valid:!1};s.push(l.data)}return{valid:!0,data:s}}else return n===b.date&&r===b.date&&+e==+t?{valid:!0,data:e}:{valid:!1}}var Ne=class extends A{_parse(t){let{status:n,ctx:r}=this._processInputParams(t),s=(o,i)=>{if(Zt(o)||Zt(i))return v;let a=Nn(o.value,i.value);return a.valid?((Gt(o)||Gt(i))&&n.dirty(),{status:n.value,value:a.data}):(k(r,{code:m.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}))}};Ne.create=(e,t,n)=>new Ne({left:e,right:t,typeName:E.ZodIntersection,...R(n)});var oe=class e extends A{_parse(t){let{status:n,ctx:r}=this._processInputParams(t);if(r.parsedType!==b.array)return k(r,{code:m.invalid_type,expected:b.array,received:r.parsedType}),v;if(r.data.length<this._def.items.length)return k(r,{code:m.too_small,minimum:this._def.items.length,inclusive:!0,exact:!1,type:"array"}),v;!this._def.rest&&r.data.length>this._def.items.length&&(k(r,{code:m.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 K(r,i,r.path,a)):null}).filter(i=>!!i);return r.common.async?Promise.all(o).then(i=>L.mergeArray(n,i)):L.mergeArray(n,o)}get items(){return this._def.items}rest(t){return new e({...this._def,rest:t})}};oe.create=(e,t)=>{if(!Array.isArray(e))throw new Error("You must pass an array of schemas to z.tuple([ ... ])");return new oe({items:e,typeName:E.ZodTuple,rest:null,...R(t)})};var Wt=class e extends A{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!==b.object)return k(r,{code:m.invalid_type,expected:b.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 K(r,a,r.path,a)),value:i._parse(new K(r,r.data[a],r.path,a)),alwaysSet:a in r.data});return r.common.async?L.mergeObjectAsync(n,s):L.mergeObjectSync(n,s)}get element(){return this._def.valueType}static create(t,n,r){return n instanceof A?new e({keyType:t,valueType:n,typeName:E.ZodRecord,...R(r)}):new e({keyType:ye.create(),valueType:t,typeName:E.ZodRecord,...R(n)})}},Qe=class extends A{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!==b.map)return k(r,{code:m.invalid_type,expected:b.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 K(r,a,r.path,[u,"key"])),value:o._parse(new K(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}}}};Qe.create=(e,t,n)=>new Qe({valueType:t,keyType:e,typeName:E.ZodMap,...R(n)});var et=class e extends A{_parse(t){let{status:n,ctx:r}=this._processInputParams(t);if(r.parsedType!==b.set)return k(r,{code:m.invalid_type,expected:b.set,received:r.parsedType}),v;let s=this._def;s.minSize!==null&&r.data.size<s.minSize.value&&(k(r,{code:m.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&&(k(r,{code:m.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 K(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:_.toString(n)}})}max(t,n){return new e({...this._def,maxSize:{value:t,message:_.toString(n)}})}size(t,n){return this.min(t,n).max(t,n)}nonempty(t){return this.min(1,t)}};et.create=(e,t)=>new et({valueType:e,minSize:null,maxSize:null,typeName:E.ZodSet,...R(t)});var Kt=class e extends A{constructor(){super(...arguments),this.validate=this.implement}_parse(t){let{ctx:n}=this._processInputParams(t);if(n.parsedType!==b.function)return k(n,{code:m.invalid_type,expected:b.function,received:n.parsedType}),v;function r(a,l){return kt({data:a,path:n.path,errorMaps:[n.common.contextualErrorMap,n.schemaErrorMap,We(),de].filter(u=>!!u),issueData:{code:m.invalid_arguments,argumentsError:l}})}function s(a,l){return kt({data:a,path:n.path,errorMaps:[n.common.contextualErrorMap,n.schemaErrorMap,We(),de].filter(u=>!!u),issueData:{code:m.invalid_return_type,returnTypeError:l}})}let o={errorMap:n.common.contextualErrorMap},i=n.data;if(this._def.returns instanceof be){let a=this;return M(async function(...l){let u=new U([]),c=await a._def.args.parseAsync(l,o).catch(p=>{throw u.addIssue(r(l,p)),u}),d=await Reflect.apply(i,this,c);return await a._def.returns._def.type.parseAsync(d,o).catch(p=>{throw u.addIssue(s(d,p)),u})})}else{let a=this;return M(function(...l){let u=a._def.args.safeParse(l,o);if(!u.success)throw new U([r(l,u.error)]);let c=Reflect.apply(i,this,u.data),d=a._def.returns.safeParse(c,o);if(!d.success)throw new U([s(c,d.error)]);return d.data})}}parameters(){return this._def.args}returnType(){return this._def.returns}args(...t){return new e({...this._def,args:oe.create(t).rest(pe.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||oe.create([]).rest(pe.create()),returns:n||pe.create(),typeName:E.ZodFunction,...R(r)})}},De=class extends A{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})}};De.create=(e,t)=>new De({getter:e,typeName:E.ZodLazy,...R(t)});var Fe=class extends A{_parse(t){if(t.data!==this._def.value){let n=this._getOrReturnCtx(t);return k(n,{received:n.data,code:m.invalid_literal,expected:this._def.value}),v}return{status:"valid",value:t.data}}get value(){return this._def.value}};Fe.create=(e,t)=>new Fe({value:e,typeName:E.ZodLiteral,...R(t)});function us(e,t){return new Le({values:e,typeName:E.ZodEnum,...R(t)})}var Le=class e extends A{_parse(t){if(typeof t.data!="string"){let n=this._getOrReturnCtx(t),r=this._def.values;return k(n,{expected:C.joinValues(r),received:n.parsedType,code:m.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 k(n,{received:n.data,code:m.invalid_enum_value,options:r}),v}return M(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})}};Le.create=us;var Me=class extends A{_parse(t){let n=C.getValidEnumValues(this._def.values),r=this._getOrReturnCtx(t);if(r.parsedType!==b.string&&r.parsedType!==b.number){let s=C.objectValues(n);return k(r,{expected:C.joinValues(s),received:r.parsedType,code:m.invalid_type}),v}if(this._cache||(this._cache=new Set(C.getValidEnumValues(this._def.values))),!this._cache.has(t.data)){let s=C.objectValues(n);return k(r,{received:r.data,code:m.invalid_enum_value,options:s}),v}return M(t.data)}get enum(){return this._def.values}};Me.create=(e,t)=>new Me({values:e,typeName:E.ZodNativeEnum,...R(t)});var be=class extends A{unwrap(){return this._def.type}_parse(t){let{ctx:n}=this._processInputParams(t);if(n.parsedType!==b.promise&&n.common.async===!1)return k(n,{code:m.invalid_type,expected:b.promise,received:n.parsedType}),v;let r=n.parsedType===b.promise?n.data:Promise.resolve(n.data);return M(r.then(s=>this._def.type.parseAsync(s,{path:n.path,errorMap:n.common.contextualErrorMap})))}};be.create=(e,t)=>new be({type:e,typeName:E.ZodPromise,...R(t)});var Y=class extends A{innerType(){return this._def.schema}sourceType(){return this._def.schema._def.typeName===E.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=>{k(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"?Te(l.value):n.value==="dirty"?Te(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"?Te(a.value):n.value==="dirty"?Te(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(!ge(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=>ge(i)?Promise.resolve(s.transform(i.value,o)).then(a=>({status:n.value,value:a})):v);C.assertNever(s)}};Y.create=(e,t,n)=>new Y({schema:e,typeName:E.ZodEffects,effect:t,...R(n)});Y.createWithPreprocess=(e,t,n)=>new Y({schema:t,effect:{type:"preprocess",transform:e},typeName:E.ZodEffects,...R(n)});var W=class extends A{_parse(t){return this._getType(t)===b.undefined?M(void 0):this._def.innerType._parse(t)}unwrap(){return this._def.innerType}};W.create=(e,t)=>new W({innerType:e,typeName:E.ZodOptional,...R(t)});var ie=class extends A{_parse(t){return this._getType(t)===b.null?M(null):this._def.innerType._parse(t)}unwrap(){return this._def.innerType}};ie.create=(e,t)=>new ie({innerType:e,typeName:E.ZodNullable,...R(t)});var je=class extends A{_parse(t){let{ctx:n}=this._processInputParams(t),r=n.data;return n.parsedType===b.undefined&&(r=this._def.defaultValue()),this._def.innerType._parse({data:r,path:n.path,parent:n})}removeDefault(){return this._def.innerType}};je.create=(e,t)=>new je({innerType:e,typeName:E.ZodDefault,defaultValue:typeof t.default=="function"?t.default:()=>t.default,...R(t)});var He=class extends A{_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 Ke(s)?s.then(o=>({status:"valid",value:o.status==="valid"?o.value:this._def.catchValue({get error(){return new U(r.common.issues)},input:r.data})})):{status:"valid",value:s.status==="valid"?s.value:this._def.catchValue({get error(){return new U(r.common.issues)},input:r.data})}}removeCatch(){return this._def.innerType}};He.create=(e,t)=>new He({innerType:e,typeName:E.ZodCatch,catchValue:typeof t.catch=="function"?t.catch:()=>t.catch,...R(t)});var tt=class extends A{_parse(t){if(this._getType(t)!==b.nan){let r=this._getOrReturnCtx(t);return k(r,{code:m.invalid_type,expected:b.nan,received:r.parsedType}),v}return{status:"valid",value:t.data}}};tt.create=e=>new tt({typeName:E.ZodNaN,...R(e)});var yl=Symbol("zod_brand"),bt=class extends A{_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}},_t=class e extends A{_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(),Te(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:E.ZodPipeline})}},Ue=class extends A{_parse(t){let n=this._def.innerType._parse(t),r=s=>(ge(s)&&(s.value=Object.freeze(s.value)),s);return Ke(n)?n.then(s=>r(s)):r(n)}unwrap(){return this._def.innerType}};Ue.create=(e,t)=>new Ue({innerType:e,typeName:E.ZodReadonly,...R(t)});function os(e,t){let n=typeof e=="function"?e(t):typeof e=="string"?{message:e}:e;return typeof n=="string"?{message:n}:n}function cs(e,t={},n){return e?ke.create().superRefine((r,s)=>{let o=e(r);if(o instanceof Promise)return o.then(i=>{if(!i){let a=os(t,r),l=a.fatal??n??!0;s.addIssue({code:"custom",...a,fatal:l})}});if(!o){let i=os(t,r),a=i.fatal??n??!0;s.addIssue({code:"custom",...i,fatal:a})}}):ke.create()}var kl={object:B.lazycreate},E;(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"})(E||(E={}));var bl=(e,t={message:`Input not instance of ${e.name}`})=>cs(n=>n instanceof e,t),ds=ye.create,fs=Re.create,_l=tt.create,xl=Ae.create,ps=$e.create,wl=Ce.create,vl=qe.create,Sl=Oe.create,El=Ie.create,Tl=ke.create,Rl=pe.create,Al=ee.create,$l=Xe.create,Cl=me.create,Ol=B.create,Il=B.strictCreate,Pl=Pe.create,Nl=Vt.create,Dl=Ne.create,Fl=oe.create,Ll=Wt.create,Ml=Qe.create,jl=et.create,Hl=Kt.create,Ul=De.create,Bl=Fe.create,zl=Le.create,Jl=Me.create,Zl=be.create,Gl=Y.create,Vl=W.create,Wl=ie.create,Kl=Y.createWithPreprocess,Yl=_t.create,ql=()=>ds().optional(),Xl=()=>fs().optional(),Ql=()=>ps().optional(),eu={string:(e=>ye.create({...e,coerce:!0})),number:(e=>Re.create({...e,coerce:!0})),boolean:(e=>$e.create({...e,coerce:!0})),bigint:(e=>Ae.create({...e,coerce:!0})),date:(e=>Ce.create({...e,coerce:!0}))};var tu=v;var _e=g.object({slug:g.string().min(1).max(64),description:g.string().max(255).optional(),match_command:g.string().min(1),priority:g.number().int().default(50),strip_ansi:g.boolean().default(!1),strip_lines_matching:g.array(g.string()).default([]),keep_failures:g.boolean().default(!1),strip_on_failure:g.boolean().default(!1),fold_passing:g.boolean().default(!1),fold_passing_threshold:g.number().int().positive().max(1e3).optional(),mask_abs_paths:g.boolean().default(!1),preserve_exact:g.boolean().default(!1),truncate_lines_at:g.number().int().positive().max(1e4).optional(),max_lines:g.number().int().positive().max(1e5).optional(),scale_with_level:g.boolean().default(!0),transform:g.string().max(64).optional(),on_empty:g.string().max(255).optional()});var bu=yu(ku(import.meta.url)),_u=process.env.TOKMIZER_FILTERS_DIR||Es(bu,"..","..","filters"),nt=null,Ss=!1;function xu(){return!1}async function Ts(){return nt||(xu()?(nt=await wu(_u),nt):(!Ss&&process.env.TOKMIZER_DEBUG==="1"&&(process.stderr.write(`tokmizer: disk loader disabled (set TOKMIZER_DEV=1 to re-enable for local dev).
18
+ `),Ss=!0),nt=new Map,nt))}async function wu(e){let t=new Map,n,r;try{n=(await Promise.resolve().then(()=>(Vn(),Gn))).parse,r=(await hu(e)).filter(s=>s.endsWith(".toml"))}catch{return t}for(let s of r){let o=await gu(Es(e,s),"utf8"),a=n(o).filters;if(a)for(let[l,u]of Object.entries(a)){let c=_e.parse({slug:l,...u});t.set(l,{...c,matchRegex:new RegExp(c.match_command)})}}return t}import{createHash as vu}from"node:crypto";var Su=g.enum(["normal","compact","minimal"]),Eu=g.enum(["off","light","balanced","max"]),St=g.object({enabled:g.boolean().default(!0),telemetryOptIn:g.boolean().default(!0),outputVerbosity:Su.default("compact"),reducer:Eu.default("off"),filters:g.object({enableAll:g.boolean().default(!0),disabled:g.array(g.string().max(64)).max(100).default([])}).default({enableAll:!0,disabled:[]})}),Rs=new Map;function q(e){let t=Rs.get(e);return t||(t=vu("sha256").update(`tkr:${e}`).digest("hex").slice(0,16),Rs.set(e,t)),t}var As=new WeakMap,Tu=256;function rt(e,t,n,r=t){let s=As.get(r);s||(s=new Map,As.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(q(l.slug))||l.matchRegex.test(e)&&(!a||l.priority>a.priority)&&(a=l);if(s.size>=Tu){let l=s.keys().next().value;l&&s.delete(l)}return s.set(o,a),a}import{readdir as Ec,readFile as no,writeFile as Nb,mkdir as Db,rename as Fb}from"node:fs/promises";import{readdirSync as Tc,statSync as Qs}from"node:fs";import{createHash as Rc}from"node:crypto";import{basename as Hb,join as on}from"node:path";var Ru=/\x1b\[[0-9;?]*[ -/]*[@-~]/g,Au=/\x1b\][^\x07\x1b]*(?:\x07|\x1b\\)/g;function ae(e){return e.replace(Ru,"").replace(Au,"")}function $s(e,t){return t.length===0?e:e.filter(n=>!t.some(r=>r.test(n)))}function Cs(e,t){return e.map(n=>{if(n.length<=t)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 st(e){return`\u2026 (${e} more lines omitted)`}function Os(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),st(s.length),...e.slice(e.length-r)],dropped:s}}var $u=/^\s*(?:[✓✔√]|ok )/,xe=/✕|✗|×|\bFAIL\b|\bERROR\b|\bFATAL\b|\bError|\berror|Expected|Received|\bfailed\b|^\s*Tests?:|^\s*Test Suites?:/;function Is(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)$u.test(a)&&!xe.test(a)?(i.push(a),s+=1):(o(i),i=[],s=0,r.push(a));return o(i),r}var Cu=/(?:\/[\w.@+-]+){3,}/g;function Ps(e){return e.map(t=>t.replace(Cu,n=>{let r=n.split("/").filter(Boolean);return r.length<=2?n:`\u2026/${r.slice(-2).join("/")}`}))}var Ou=/^(\s*)(?:export\s+)?(?:async\s+)?(?:function|interface|type|const|let|var|def|fn|impl|trait|struct|enum)\s+[\w$]+/,Iu=/\{\s*$/;var Pu=/^\s*(?:(?:public|private|protected|static|async|get|set|readonly|override)\s+)*([\w$]+)\s*\(([^)]*)\)\s*(?::\s*[^{]+)?\{\s*$/,Nu=new Set(["if","for","while","switch","catch","do","with","return","else","function","await","yield"]);function Du(e){let t=Pu.exec(e);return!t||Nu.has(t[1])?!1:!/=>|\bfunction\b/.test(t[2])}var Fu=/^\s*(?:if|for|while|switch|try|do)\b[^{}]*\{\s*$/;function Lu(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 Mu(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==="&"))&&Lu(e,s+1,o)&&(r=o),s+=1;continue}o==="{"||o==="("||o==="["?n+=1:(o==="}"||o===")"||o==="]")&&(n-=1),s+=1}return n}var ju=/^\s*… (\d+) lines? folded(?: \(\d+-\d+\): Read offset=\d+ limit=\d+ before editing)? …$/;function Hu(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 Wn(e){let t=new Array(e.length).fill(!1);for(let n=0;n<e.length;n+=1){let r=ju.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 Et(e,t=3,n=!1){let r=[],s=0;for(;s<e.length;){let o=e[s];if(Ou.test(o)&&Iu.test(o)||Du(o)||Fu.test(o)){let i={inBlockComment:!1,inTemplate:!1},a=0,l=s,u=!1;for(;l<e.length&&l-s<200;)if(a+=Mu(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 d=c-2,f=/^\s*/.exec(e[s+1]??"")?.[0]??" ";r.push(o),r.push(Hu(f,d,n?s+2:null));for(let p=0;p<d-1;p++)r.push("");r.push(e[l-1]),s=l;continue}}r.push(o),s+=1}return r}var Uu=/\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 Qt(e){let t=e.slice(0,4096);return!(!Uu.test(t)||t.split(`
19
+ `).length<6)}var Ls=/^\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*/,Ms=/^\s*(?:\[(?:DEBUG|TRACE|INFO|VERBOSE)\]|(?:DEBUG|TRACE|INFO|VERBOSE)(?!\s*:))(?=\s|:|$)(?!\s*[+\-*\/%&|^?]*=)/,js=new RegExp(xe.source,"i"),Hs=/\bWARN(?:ING)?\b/i;function Us(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(Ms.test(s.replace(Ls,""))&&!js.test(s)&&!Hs.test(s)){n+=1;continue}r(),t.push(s)}return r(),t}var Bu=/^(?:DEBUG|INFO):[\w.-]+:/,zu=/Error|Exception|Traceback|panic|fail|FAIL|Fail|SEVERE|CRITICAL/,Ju=8,Ns=1,Ds=2;function Fs(e){if(e.trim()===""||/^\s/.test(e)||js.test(e)||Hs.test(e)||zu.test(e))return null;let t=e.replace(Ls,"");return Ms.test(t)||Bu.test(t)?"\0verbose":e.replace(/\d+/g,"#")}function Bs(e){let t=[],n=0;for(;n<e.length;){let r=Fs(e[n]),s=n+1;if(r!==null)for(;s<e.length&&Fs(e[s])===r;)s+=1;let o=s-n;r===null||o<Ju?t.push(...e.slice(n,s)):(t.push(...e.slice(n,n+Ns)),t.push(`\u2026 ${o-Ns-Ds} similar log lines dropped \u2026`),t.push(...e.slice(s-Ds,s))),n=s}return t}function en(e){if(e.length===0)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} \xD7${n}`:r),r=e[s],n=1}return t.push(n>1?`${r} \xD7${n}`:r),t}function zs(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 Js=new Map;function z(e,t){Js.set(e,t)}function Zs(e){return Js.get(e)}var Zu=/^[dbclps\-][rwxsStT\-]{9}[@.+]?(?:\s|$)/,Gu=/^[./~][^\s]*:$/,Vu=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})?`,Wu=new RegExp(String.raw`^(\S+)\s+\d+\s+(\S+(?:\s+\S+)??)\s+(\d+(?:[.,]\d+)?[KMGTPkmgtp]?i?B?)\s+(?:${Vu})\s+(.+)$`),Ku={k:1,m:2,g:3,t:4,p:5},Kn=1e3;function Yu(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 qu(e){let t=/^(\d+(?:[.,]\d+)?)([KMGTPkmgtp])?/.exec(e),n=t[2]?Ku[t[2].toLowerCase()]:0;return Number(t[1].replace(",","."))*1024**n}function Xu(e){let t=Wu.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)?Yu(Number(r)):r,o=e.charCodeAt(0)===100;return{name:n,size:s,sizeKey:qu(r),isDir:o,mode:t[1],owner:t[2].replace(/\s+/g," ")}}function Qu(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}function ec(e){let t=[],n=[],r=!1;for(let f of e){if(f.trim()===""||/^total\s+\d+/.test(f))continue;if(Gu.test(f.trim())||!Zu.test(f))return e;let p=Xu(f);if(!p){if(/\s\.\.?$/.test(f))continue;return e}r=!0,(p.isDir?t:n).push(p)}if(!r)return e;let s=(f,p)=>f.name.localeCompare(p.name);t.sort(s),n.sort((f,p)=>p.sizeKey-f.sizeKey||s(f,p));let o=[...t,...n],i=o.every(f=>f.owner===o[0].owner)?o[0].owner:null,a=[];for(let f of o){let p=`${f.mode} ${i===null?`${f.owner} `:""}${f.isDir?`${f.name}/`:f.name}`;a.push(f.isDir?p:`${p} ${f.size}`)}if(a.length>Kn){let f=a.length-Kn;a=[...a.slice(0,Kn),`\u2026 ${f} more lines omitted`]}let l=n.length===1?"file":"files",u=t.length===1?"dir":"dirs",c=Qu(n),d=`${n.length} ${l}, ${t.length} ${u}`+(c?` (${c})`:"")+(i===null?"":`, owner ${i.replace(" ",":")}`);return a.push(d),a}z("smart-ls",ec);z("smart-read",e=>Et(e));var Gs=1e3;function tc(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 nc(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 rc(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 d=c.replace(/^\.\//,"").replace(/\/+$/,""),f=d.lastIndexOf("/"),p=f>=0?d.slice(0,f):"",h=f>=0?d.slice(f+1):d;if(!h)continue;let x=r.get(p)??[];x.push(/\s/.test(h)?`"${h}"`:h),r.set(p,x),o+=1}if(o===0)return e;let i=[...r.keys()].sort(),a=i.every(u=>u!=="")?tc(i):"",l=[`${o}F ${i.length}D${a?` in ${a}/`:""}:`];for(let u of i){let c=a?u.slice(a.length).replace(/^\//,""):u,d=r.get(u),f=nc(d),p=f?d.map(h=>h.slice(0,-f.length)):d;l.push(`${c?`${c}/`:"./"} (${d.length}${f?`, *${f}`:""}): ${p.join(" ")}`)}if(l.length+s.length>Gs){let u=Math.max(0,Gs-s.length),c=l.length-u;return[...l.slice(0,u),`\u2026 ${c} more lines omitted`,...s]}return[...l,...s]}z("smart-find",rc);var Yn=1e3,Vs=200,sc=60,oc=190,ic=/^([^\s:]+):(\d+):(.*)$/,ac=/^([^:]+?)-(\d+)-(.*)$/,lc=/^([^\s:]+):(.*)$/,Ws=/(?:^|\/)(?:__tests__|tests?|spec|fixtures?|__mocks__|__snapshots__)\/|\.(?:test|spec)\.[^/]+$/i;function Ks(e){let t=e.trim();return t.length>Vs?`${t.slice(0,Vs)}\u2026`:t}function uc(e){let t=[],n="";for(let r of e){let s=n?`${n}, ${r}`:r;s.length>=oc&&n?(t.push(`${n},`),n=r):n=s}return n&&t.push(n),t}function cc(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 dc(e){let t=e.filter(p=>p.trim()!=="");if(t.length===0)return e;let n=new Map,r=new Map,s=null,o=0,i=0;for(let p of t){if(p==="--"){s&&n.get(s).push({separator:!0});continue}if(/^[A-Za-z]:[\\/]/.test(p))return e;let h=ic.exec(p),x=ac.exec(p);if(h&&x)return e;let y=h||x?null:lc.exec(p),T=(h??x??y)?.[1];if(!T)return e;let w=h?{line:h[2],content:h[3],context:!1}:x?{line:x[2],content:x[3],context:!0}:{line:"",content:y[2],context:!1},O=n.get(T)??[];O.push(w),n.set(T,O),w.context||(o+=1,r.set(T,(r.get(T)??0)+1)),i+=1,s=T}if(n.size===i)return e;let a=[...n.keys()].sort((p,h)=>{let x=Ws.test(p)?1:0,y=Ws.test(h)?1:0;return x-y||(p<h?-1:p>h?1:0)}),l=a.length>1?cc(a):"",u=p=>l?p.slice(l.length+1):p,c=[];for(let p of a){c.push(`${u(p)} (${r.get(p)??0}):`);for(let h of n.get(p))"separator"in h?c.push(" --"):h.line?c.push(` ${h.line}${h.context?"-":":"} ${Ks(h.content)}`):c.push(` ${Ks(h.content)}`)}let d=a.length>1&&c.length>sc?uc(a.map(p=>`${u(p)} (${r.get(p)??0})`)):[],f=[`${o}m ${a.length}f${l?` in ${l}/`:""}:`,...d,"",...c];if(f.length>Yn){let p=f.length-Yn;return[...f.slice(0,Yn),`\u2026 ${p} more lines omitted`]}return f}z("smart-grep",dc);var Ys=/^(?:([|\\/ ._-]*\*[|\\/* ._-]* ))?commit [0-9a-f]{7,40}\b/,fc=/^[|\\/* ._-]*$/,pc=/^ {4}/,mc=2;function hc(e){if(!e.some(u=>Ys.test(u)))return e;let t=[],n=0,r=0,s=0,o="",i=!1,a=!1,l=()=>{r>0&&t.push(`${o} \u2026 ${r} ${r===1?"line":"lines"} folded \u2026`),r=0};for(let u of e){let c=u.slice(0,s),d=fc.test(c),f=d?u.slice(s):u,p=pc.test(f),h=i&&p?null:Ys.exec(u);if(h){l(),n=0,s=h[1]?.length??0,i=!0,a=!1,t.push(u);continue}if(/^diff --(?:git|cc|combined) /.test(f)&&(a=!0),p&&!a&&!(s>0&&f.trim().length===0)){n+=1,n<=mc?t.push(u):(r+=1,o=d?c:"");continue}l(),t.push(u)}return l(),t}z("smart-log",hc);var gc=/^[\s=]+$/,yc=/^\s*=+\s+(.*?)\s+=+\s*$/,kc=512;z("strip-banners",e=>{let t=[];for(let n of e){if(gc.test(n))continue;let r=n.length<=kc?yc.exec(n):null;t.push(r?r[1]:n)}return t});function bc(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}z("squeeze-output",bc);function _c(e){return e==="compact"?.6:e==="minimal"?.3:1}var xc=20;function wc(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 qs=new WeakMap;function vc(e){let t=qs.get(e);if(t)return t;let n=e.strip_lines_matching.map(s=>new RegExp(s)),r={def:e,stripRegexes:n};return qs.set(e,r),r}function tn(e,t,n={}){return qn(e,t,n).text}function qn(e,t,n={}){let r=n.verbosity??"normal";if(!t.strip_ansi&&t.strip_lines_matching.length===0&&!t.transform&&!t.mask_abs_paths&&!t.fold_passing&&!t.truncate_lines_at&&!t.max_lines&&!t.on_empty&&!n.smartCode&&r==="normal")return{text:e,droppedTail:null};let s=vc(t),o=e;t.strip_ansi&&(o=ae(o));let i=o.endsWith(`
20
20
  `),a=(i?o.slice(0,-1):o).split(`
21
- `);s.stripRegexes.length&&(a=t.keep_failures?a.filter(d=>xe.test(d)||!s.stripRegexes.some(p=>p.test(d))):$s(a,s.stripRegexes)),r!=="normal"&&!t.preserve_exact&&(a=en(a),a=Bs(a)),r==="minimal"&&!t.preserve_exact&&(a=Us(a),(t.slug==="vitest"||t.slug==="npm-test")&&(a=yc(a)));let l=t.transform==="smart-read"&&n.smartCode!==!0?r==="compact"?8:r==="minimal"?6:3:3;if(!t.preserve_exact&&(n.smartCode||n.smartCode===void 0&&r!=="normal"&&Qt(o))&&(a=St(a,l)),t.transform){let d=Zs(t.transform);t.transform==="smart-read"?a=St(a,l,t.slug==="read-tool"):d&&(a=d(a))}let u=t.slug==="read-tool";if(!u){let d=Wn(a);d.some(Boolean)&&(a=a.filter((p,h)=>!d[h]))}t.mask_abs_paths&&(a=Ns(a)),t.fold_passing&&(a=Is(a,t.fold_passing_threshold??5)),t.truncate_lines_at&&(a=Cs(a,t.truncate_lines_at));let c=null;if(t.max_lines){let d=t.scale_with_level?hc(n.verbosity):1,p=Math.min(t.max_lines,Math.max(gc,Math.round(t.max_lines*d))),h=u?Wn(a):null,_=h?h.filter(k=>!k).length:a.length;if(_>p){let k=p;if(h){let E=0;for(k=0;k<a.length&&E<p;)h[k]||(E+=1),k+=1}let T=_-p;if(t.keep_failures){let E=a.slice(k),O=E.filter(j=>!xe.test(j)),D=E.reduce((j,Ge,Jt)=>j+(!xe.test(Ge)&&!h?.[k+Jt]?1:0),0);c=O.length>0?O.join(`
22
- `):null,a=[...a.slice(0,k),...D>0?[rt(D)]:[],...E.filter(j=>xe.test(j))]}else if(u)c=a.slice(k).join(`
23
- `),a=[...a.slice(0,k),rt(T)];else{let{kept:E,dropped:O}=Os(a,p);c=O.length>0?O.join(`
24
- `):null,a=E}}}let f=a.join(`
25
- `);return i&&f.length>0&&(f+=`
26
- `),f.trim().length===0&&t.on_empty&&(f=t.on_empty),{text:f,droppedTail:c}}import bc from"node:os";import{join as Xs}from"node:path";function $(){return process.env.TOKMIZER_HOME||Xs(bc.homedir(),".tokmizer")}function Et(){return Xs($(),"install-id")}var ro="user/",nn=1,rn=null,eo="",to=0,vc=1e3;function sn(){return on($(),"filters")}function so(){return on($(),"filters-trust.json")}function oo(e){return typeof e=="string"&&e.startsWith(ro)}function Sc(e){return wc("sha256").update(e).digest("hex")}async function Ec(){try{let e=JSON.parse(await no(so(),"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 Tc(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 Rc(e,t){let n=typeof t=="object"&&t!==null&&!Array.isArray(t)?t:{},{tests:r,...s}=n,o=Tc(e,r);if("message"in o)return o;let i=_e.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:`${ro}${i.data.slug}`,matchRegex:a},tests:o.tests}}function Ac(e){return e===void 0||e===nn?null:typeof e=="number"&&Number.isInteger(e)?`schema_version ${e} is not supported: this tkr reads schema_version = ${nn}. Update tkr, or write the file for version ${nn}`:`schema_version must be the number ${nn}`}async function $c(e){try{return(await _c(e)).filter(t=>t.endsWith(".toml")).sort()}catch{return[]}}async function Cc(e={}){let t=e.requireTrust!==!1,n=sn(),r=new Map,s=new Map,o=[],i=await $c(n);if(i.length===0)return{dir:n,filters:r,tests:s,issues:o};let a=t?await Ec():null;for(let l of i){let u;try{u=await no(on(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!==Sc(u)){o.push({file:l,message:`changed since it was trusted. Review it, then run: tkr filters trust ${l}`});continue}}let c=await Oc(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 Oc(e,t){let n=new Map,r=new Map,s=[],{parse:o}=await Promise.resolve().then(()=>(Vn(),Gn)),i;try{i=o(e)}catch(u){return s.push({file:t,message:`not valid TOML (${String(u.message).split(`
27
- `)[0]})`}),{filters:n,tests:r,issues:s}}let a=Ac(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=Rc(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 Ic(){let e=[];for(let t of[so(),sn()])try{let n=Qs(t);e.push(`${n.mtimeMs}:${n.size}`)}catch{e.push("-")}try{for(let t of xc(sn()).filter(n=>n.endsWith(".toml")).sort()){let n=Qs(on(sn(),t));e.push(`${t}:${n.mtimeMs}:${n.size}`)}}catch{}return e.join("|")}function Nc(){let e=Date.now();if(!rn||e-to>=vc){to=e;let t=Ic();(!rn||t!==eo)&&(eo=t,rn=Cc())}return rn}async function Pc(e){let{filters:t}=await Nc();return t.size===0?null:nt(e,t.values(),null,t)}function io(e){return async(t,n)=>await Pc(t)??e(t,n)}var Dc=[/\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 ao(e){if(!e)return!1;for(let t of ie(e).split(`
28
- `))if(!/^\s*[✓✔√]\s/.test(t)&&Dc.some(n=>n.test(t)))return!0;return!1}var Fc=new Set(["sudo","command","time","nice","nohup","env","stdbuf","timeout"]),Lc=/^[A-Za-z_][A-Za-z0-9_]*=/,Xn=/^([a-z]+)-tool(?::\s|$)/;function ze(e){let t=e.trim(),n=t.split(/\s+/),r=0;for(;r<n.length;){let a=n[r];if(Lc.test(a)){r++;continue}if(Fc.has(a)){for(r++,a==="timeout"&&r<n.length&&/^\d+(?:\.\d+)?[smhd]?$/.test(n[r])&&r++;(a==="stdbuf"||a==="nice")&&r<n.length&&n[r].startsWith("-");)r++;continue}break}if(r>=n.length)return t;let s=n[r],o=s.includes("/")?s.slice(s.lastIndexOf("/")+1):s,i=n.slice(r+1);return i.length?`${o} ${i.join(" ")}`:o}var Mc=new Set(["cd","export","source","set","unset","mkdir","true",":","pushd","popd","alias","ulimit","umask","echo","printf","sleep","touch","rm","cp","mv","chmod","ln"]);function lo(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 jc(e){let t=lo(e,!1);for(let n=t.length-1;n>=0;n--){let r=t[n].trim();if(r)return r}return e.trim()}function Qn(e){let t=lo(e,!0).map(n=>n.trim()).filter(Boolean);if(t.length===0)return null;for(let n of t.slice(0,-1)){let r=ze(n).split(/\s+/)[0]??"";if(!Mc.has(r))return null}return jc(t[t.length-1])}function uo(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 Hc=/^(?: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 er(e){let t=Hc.exec(e);return t?ze(e.slice(t[0].length)):null}function co(e){let t=Xn.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=Qn(n),s=r?ze(r):null,i=[s?er(s):null,s,e].filter(a=>!!a);return[...new Set(i)]}var fo=`
21
+ `);s.stripRegexes.length&&(a=t.keep_failures?a.filter(f=>xe.test(f)||!s.stripRegexes.some(p=>p.test(f))):$s(a,s.stripRegexes)),r!=="normal"&&!t.preserve_exact&&(a=en(a),a=zs(a)),r==="minimal"&&!t.preserve_exact&&(a=Us(a),(t.slug==="vitest"||t.slug==="npm-test")&&(a=wc(a)));let l=t.transform==="smart-read"&&n.smartCode!==!0?r==="compact"?8:r==="minimal"?6:3:3;if(!t.preserve_exact&&(n.smartCode||n.smartCode===void 0&&r!=="normal"&&Qt(o))&&(a=Et(a,l)),t.transform){let f=Zs(t.transform);t.transform==="smart-read"?a=Et(a,l,t.slug==="read-tool"):f&&(a=f(a))}let u=t.slug==="read-tool";if(!u){let f=Wn(a);f.some(Boolean)&&(a=a.filter((p,h)=>!f[h]))}t.mask_abs_paths&&(a=Ps(a)),t.fold_passing&&(a=Is(a,t.fold_passing_threshold??5)),t.truncate_lines_at&&(a=Cs(a,t.truncate_lines_at));let c=null;if(t.max_lines){let f=t.scale_with_level?_c(n.verbosity):1,p=Math.min(t.max_lines,Math.max(xc,Math.round(t.max_lines*f))),h=u?Wn(a):null,x=h?h.filter(y=>!y).length:a.length;if(x>p){let y=p;if(h){let w=0;for(y=0;y<a.length&&w<p;)h[y]||(w+=1),y+=1}let T=x-p;if(t.keep_failures){let w=a.slice(y),O=w.filter(F=>!xe.test(F)),D=w.reduce((F,G,Ee)=>F+(!xe.test(G)&&!h?.[y+Ee]?1:0),0);c=O.length>0?O.join(`
22
+ `):null,a=[...a.slice(0,y),...D>0?[st(D)]:[],...w.filter(F=>xe.test(F))]}else if(u)c=a.slice(y).join(`
23
+ `),a=[...a.slice(0,y),st(T)];else{let{kept:w,dropped:O}=Os(a,p);c=O.length>0?O.join(`
24
+ `):null,a=w}}}let d=a.join(`
25
+ `);return i&&d.length>0&&(d+=`
26
+ `),d.trim().length===0&&t.on_empty&&(d=t.on_empty),{text:d,droppedTail:c}}import Sc from"node:os";import{join as Xs}from"node:path";function $(){return process.env.TOKMIZER_HOME||Xs(Sc.homedir(),".tokmizer")}function Tt(){return Xs($(),"install-id")}var ro="user/",nn=1,rn=null,eo="",to=0,Ac=1e3;function sn(){return on($(),"filters")}function so(){return on($(),"filters-trust.json")}function oo(e){return typeof e=="string"&&e.startsWith(ro)}function $c(e){return Rc("sha256").update(e).digest("hex")}async function Cc(){try{let e=JSON.parse(await no(so(),"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 Oc(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 Ic(e,t){let n=typeof t=="object"&&t!==null&&!Array.isArray(t)?t:{},{tests:r,...s}=n,o=Oc(e,r);if("message"in o)return o;let i=_e.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:`${ro}${i.data.slug}`,matchRegex:a},tests:o.tests}}function Pc(e){return e===void 0||e===nn?null:typeof e=="number"&&Number.isInteger(e)?`schema_version ${e} is not supported: this tkr reads schema_version = ${nn}. Update tkr, or write the file for version ${nn}`:`schema_version must be the number ${nn}`}async function Nc(e){try{return(await Ec(e)).filter(t=>t.endsWith(".toml")).sort()}catch{return[]}}async function Dc(e={}){let t=e.requireTrust!==!1,n=sn(),r=new Map,s=new Map,o=[],i=await Nc(n);if(i.length===0)return{dir:n,filters:r,tests:s,issues:o};let a=t?await Cc():null;for(let l of i){let u;try{u=await no(on(n,l),"utf8")}catch{o.push({file:l,message:"could not be read"});continue}if(a){let d=a.files[l];if(!d){o.push({file:l,message:`not trusted yet. Review it, then run: tkr filters trust ${l}`});continue}if(d!==$c(u)){o.push({file:l,message:`changed since it was trusted. Review it, then run: tkr filters trust ${l}`});continue}}let c=await Fc(u,l);for(let[d,f]of c.filters)r.set(d,f);for(let[d,f]of c.tests)s.set(d,f);o.push(...c.issues)}return{dir:n,filters:r,tests:s,issues:o}}async function Fc(e,t){let n=new Map,r=new Map,s=[],{parse:o}=await Promise.resolve().then(()=>(Vn(),Gn)),i;try{i=o(e)}catch(u){return s.push({file:t,message:`not valid TOML (${String(u.message).split(`
27
+ `)[0]})`}),{filters:n,tests:r,issues:s}}let a=Pc(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 d=Ic(u,c);if("message"in d){s.push({file:t,message:d.message});continue}n.set(d.filter.slug,d.filter),d.tests.length>0&&r.set(d.filter.slug,{file:t,tests:d.tests})}return{filters:n,tests:r,issues:s}}function Lc(){let e=[];for(let t of[so(),sn()])try{let n=Qs(t);e.push(`${n.mtimeMs}:${n.size}`)}catch{e.push("-")}try{for(let t of Tc(sn()).filter(n=>n.endsWith(".toml")).sort()){let n=Qs(on(sn(),t));e.push(`${t}:${n.mtimeMs}:${n.size}`)}}catch{}return e.join("|")}function Mc(){let e=Date.now();if(!rn||e-to>=Ac){to=e;let t=Lc();(!rn||t!==eo)&&(eo=t,rn=Dc())}return rn}async function jc(e){let{filters:t}=await Mc();return t.size===0?null:rt(e,t.values(),null,t)}function io(e){return async(t,n)=>await jc(t)??e(t,n)}var Hc=[/\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 ao(e){if(!e)return!1;for(let t of ae(e).split(`
28
+ `))if(!/^\s*[✓✔√]\s/.test(t)&&Hc.some(n=>n.test(t)))return!0;return!1}var Uc=new Set(["sudo","command","time","nice","nohup","env","stdbuf","timeout"]),Bc=/^[A-Za-z_][A-Za-z0-9_]*=/,Xn=/^([a-z]+)-tool(?::\s|$)/;function Je(e){let t=e.trim(),n=t.split(/\s+/),r=0;for(;r<n.length;){let a=n[r];if(Bc.test(a)){r++;continue}if(Uc.has(a)){for(r++,a==="timeout"&&r<n.length&&/^\d+(?:\.\d+)?[smhd]?$/.test(n[r])&&r++;(a==="stdbuf"||a==="nice")&&r<n.length&&n[r].startsWith("-");)r++;continue}break}if(r>=n.length)return t;let s=n[r],o=s.includes("/")?s.slice(s.lastIndexOf("/")+1):s,i=n.slice(r+1);return i.length?`${o} ${i.join(" ")}`:o}var zc=new Set(["cd","export","source","set","unset","mkdir","true",":","pushd","popd","alias","ulimit","umask","echo","printf","sleep","touch","rm","cp","mv","chmod","ln"]);function lo(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 Jc(e){let t=lo(e,!1);for(let n=t.length-1;n>=0;n--){let r=t[n].trim();if(r)return r}return e.trim()}function Qn(e){let t=lo(e,!0).map(n=>n.trim()).filter(Boolean);if(t.length===0)return null;for(let n of t.slice(0,-1)){let r=Je(n).split(/\s+/)[0]??"";if(!zc.has(r))return null}return Jc(t[t.length-1])}function uo(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 Zc=/^(?: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 er(e){let t=Zc.exec(e);return t?Je(e.slice(t[0].length)):null}function co(e){let t=Xn.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=Qn(n),s=r?Je(r):null,i=[s?er(s):null,s,e].filter(a=>!!a);return[...new Set(i)]}var fo=`
29
29
  [YOLO: omitted]
30
- `;function tr(e){let t=Buffer.from(e,"utf8");if(t.length<=256)return e;let n=256-Buffer.byteLength(fo,"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")+fo+t.subarray(s).toString("utf8")}var Uc=/^ID {2,}TITLE {2,}BRANCH {2,}STATE {2,}CREATED *$/,zc=/^… \([1-9]\d* more lines omitted\)$/,nr=/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(?:\.\d{1,3})?Z$/;function Bc(e,t){if(!t)return e.split(`
30
+ `;function tr(e){let t=Buffer.from(e,"utf8");if(t.length<=256)return e;let n=256-Buffer.byteLength(fo,"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")+fo+t.subarray(s).toString("utf8")}var Gc=/^ID {2,}TITLE {2,}BRANCH {2,}STATE {2,}CREATED *$/,Vc=/^… \([1-9]\d* more lines omitted\)$/,nr=/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(?:\.\d{1,3})?Z$/;function Wc(e,t){if(!t)return e.split(`
31
31
  `).map(o=>o.replace(/^[ \t]+|[ \t]+(?=\r?$)/g,"")).join(`
32
32
  `);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!==`
33
33
  `&&(n+=o);return n+(e.endsWith(`
34
34
  `)?`
35
- `:"")}function Jc(e,t){if(/@(?:p)?\d|\r/.test(e))return e;let n=e.endsWith(`
35
+ `:"")}function Kc(e,t){if(/@(?:p)?\d|\r/.test(e))return e;let n=e.endsWith(`
36
36
  `)?`
37
37
  `:"",r=(n?e.slice(0,-1):e).split(`
38
- `),s=r.findIndex(k=>Uc.test(k));if(s>=0&&r.slice(0,s).some(k=>k!==""&&!/^Showing \d+ of \d+ (?:open|closed|all) pull requests in \S+$/.test(k)))return e;let o=s>=0?[...r[s].matchAll(/\S+/g)].map(k=>k.index):[],i=[];for(let k=s+1;k<r.length;k+=1){let T=r[k];if(zc.test(T))continue;if(/…|\.\.\./.test(T))return e;let E;if(s>=0){if(/[^\x20-\x7e]/.test(T))return e;let O=o.map((D,j)=>T.slice(D,o[j+1]));if(O.slice(0,-1).some(D=>D[0]===" "||!D.endsWith(" "))||(E=O.map(D=>D.replace(/ +$/,"")),!/^#\d+$/.test(E[0])||!/^\S+$/.test(E[2])||!/^(OPEN|CLOSED|MERGED|DRAFT)$/.test(E[3])||!/^\d+(?:s|m|h|d|w|mo|y)$/.test(E[4])))return e}else if(E=T.split(" "),E.length!==5||!/^\d+$/.test(E[0])||!E[1]||!E[2]||!/^(OPEN|CLOSED|MERGED|DRAFT)$/.test(E[3])||!nr.test(E[4])||!Number.isFinite(Date.parse(E[4])))return e;if(E.some(O=>/[\u0000-\u001f\u007f]/.test(O)))return e;i.push({index:k,cells:E})}if(i.length===0)return e;s>=0&&(r[s]="ID TITLE BRANCH STATE CREATED");for(let k of i)r[k.index]=k.cells.join(" ");let a=r.join(`
39
- `)+n;if(!t)return a;let l=new Map;for(let{cells:k}of i)l.set(k[1],(l.get(k[1])??0)+1);let u=new Map,c=[];for(let[k,T]of l){if(k.length<40||T<3||k.trim().split(/\s+/).length<8)continue;let E=`@${u.size+1}`,O=JSON.stringify(k).replace(/\u2028/g,"\\u2028").replace(/\u2029/g,"\\u2029"),D=`TITLE ${E} = ${O}`;T*(Buffer.byteLength(k)-Buffer.byteLength(E))<=Buffer.byteLength(D)+1||(u.set(k,E),c.push(D))}let f=new Map;for(let{cells:k}of i){if(u.has(k[1]))continue;let T=/^((?:\S+\s+){4})\S/.exec(k[1])?.[1];T&&T.length>=24&&f.set(T,(f.get(T)??0)+1)}let d=new Map;for(let[k,T]of f){if(T<3)continue;let E=`@p${d.size+1}`,O=`TITLE prefix ${E} = ${JSON.stringify(k).replace(/\u2028/g,"\\u2028").replace(/\u2029/g,"\\u2029")}`;T*(Buffer.byteLength(k)-Buffer.byteLength(E)-1)<=Buffer.byteLength(O)+1||(d.set(k,E),c.push(O))}let p=i[0].cells[4].slice(10),h=i.length>=3&&nr.test(i[0].cells[4])&&i.every(({cells:k})=>nr.test(k[4])&&k[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:k,cells:T}of i){let E=u.get(T[1]),O=/^((?:\S+\s+){4})\S/.exec(T[1])?.[1],D=O?d.get(O):void 0;r[k]=T.map((j,Ge)=>Ge===1?E??(D?`${D}:${j.slice(O.length)}`:j):Ge===4&&h?j.slice(0,10):j).join(" ")}let _=[...r,"",...c].join(`
40
- `)+n;return Buffer.byteLength(_)<Buffer.byteLength(a)?_:a}var po={"Changes to be committed:":"staged","Changes not staged for commit:":"unstaged","Untracked files:":"untracked"},Zc={modified:"M",deleted:"D","new file":"A",renamed:"R",copied:"C",typechange:"T"},Gc=/^\t(modified|deleted|new file|renamed|copied|typechange):\s+(.+)$/,Vc=/^On branch (\S+)$/,Wc=/^Your branch is (?:up to date with '([^']+)'|(ahead|behind)(?: of)? '([^']+)' by (\d+) commits?(?:, and can be fast-forwarded)?)\.$/;function Kc(e){let t=Vc.exec(e[0]??"");if(!t)return e;let n=Wc.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 Yc(e){let t=e.endsWith(`
38
+ `),s=r.findIndex(y=>Gc.test(y));if(s>=0&&r.slice(0,s).some(y=>y!==""&&!/^Showing \d+ of \d+ (?:open|closed|all) pull requests in \S+$/.test(y)))return e;let o=s>=0?[...r[s].matchAll(/\S+/g)].map(y=>y.index):[],i=[];for(let y=s+1;y<r.length;y+=1){let T=r[y];if(Vc.test(T))continue;if(/…|\.\.\./.test(T))return e;let w;if(s>=0){if(/[^\x20-\x7e]/.test(T))return e;let O=o.map((D,F)=>T.slice(D,o[F+1]));if(O.slice(0,-1).some(D=>D[0]===" "||!D.endsWith(" "))||(w=O.map(D=>D.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=T.split(" "),w.length!==5||!/^\d+$/.test(w[0])||!w[1]||!w[2]||!/^(OPEN|CLOSED|MERGED|DRAFT)$/.test(w[3])||!nr.test(w[4])||!Number.isFinite(Date.parse(w[4])))return e;if(w.some(O=>/[\u0000-\u001f\u007f]/.test(O)))return e;i.push({index:y,cells:w})}if(i.length===0)return e;s>=0&&(r[s]="ID TITLE BRANCH STATE CREATED");for(let y of i)r[y.index]=y.cells.join(" ");let a=r.join(`
39
+ `)+n;if(!t)return a;let l=new Map;for(let{cells:y}of i)l.set(y[1],(l.get(y[1])??0)+1);let u=new Map,c=[];for(let[y,T]of l){if(y.length<40||T<3||y.trim().split(/\s+/).length<8)continue;let w=`@${u.size+1}`,O=JSON.stringify(y).replace(/\u2028/g,"\\u2028").replace(/\u2029/g,"\\u2029"),D=`TITLE ${w} = ${O}`;T*(Buffer.byteLength(y)-Buffer.byteLength(w))<=Buffer.byteLength(D)+1||(u.set(y,w),c.push(D))}let d=new Map;for(let{cells:y}of i){if(u.has(y[1]))continue;let T=/^((?:\S+\s+){4})\S/.exec(y[1])?.[1];T&&T.length>=24&&d.set(T,(d.get(T)??0)+1)}let f=new Map;for(let[y,T]of d){if(T<3)continue;let w=`@p${f.size+1}`,O=`TITLE prefix ${w} = ${JSON.stringify(y).replace(/\u2028/g,"\\u2028").replace(/\u2029/g,"\\u2029")}`;T*(Buffer.byteLength(y)-Buffer.byteLength(w)-1)<=Buffer.byteLength(O)+1||(f.set(y,w),c.push(O))}let p=i[0].cells[4].slice(10),h=i.length>=3&&nr.test(i[0].cells[4])&&i.every(({cells:y})=>nr.test(y[4])&&y[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:y,cells:T}of i){let w=u.get(T[1]),O=/^((?:\S+\s+){4})\S/.exec(T[1])?.[1],D=O?f.get(O):void 0;r[y]=T.map((F,G)=>G===1?w??(D?`${D}:${F.slice(O.length)}`:F):G===4&&h?F.slice(0,10):F).join(" ")}let x=[...r,"",...c].join(`
40
+ `)+n;return Buffer.byteLength(x)<Buffer.byteLength(a)?x:a}var po={"Changes to be committed:":"staged","Changes not staged for commit:":"unstaged","Untracked files:":"untracked"},Yc={modified:"M",deleted:"D","new file":"A",renamed:"R",copied:"C",typechange:"T"},qc=/^\t(modified|deleted|new file|renamed|copied|typechange):\s+(.+)$/,Xc=/^On branch (\S+)$/,Qc=/^Your branch is (?:up to date with '([^']+)'|(ahead|behind)(?: of)? '([^']+)' by (\d+) commits?(?:, and can be fast-forwarded)?)\.$/;function ed(e){let t=Xc.exec(e[0]??"");if(!t)return e;let n=Qc.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 td(e){let t=e.endsWith(`
41
41
  `)?`
42
- `:"",n=Kc((t?e.slice(0,-1):e).split(`
43
- `)),r=null,s=[];for(let o of n){if(Object.hasOwn(po,o)){r=po[o];continue}if(!o.startsWith(" ")){r=null,s.push(o);continue}if(r==="untracked"){s.push(`?? ${o.slice(1)}`);continue}let i=r?Gc.exec(o):null;if(!i)return e;let a=Zc[i[1]];s.push(r==="staged"?`${a} ${i[2]}`:` ${a} ${i[2]}`)}return s.join(`
44
- `)+t}var mo=/^ (\S.*?) +\| +(\d+(?: [+-]+)?|Bin .*)$/,qc=/^ \d+ files? changed(?:, \d+ insertions?\(\+\))?(?:, \d+ deletions?\(-\))?$/;function Xc(e){let t=e.split(`
45
- `);for(let n=0;n<t.length;n+=1){if(!qc.test(t[n]))continue;let r=n;for(;r>0&&mo.test(t[r-1]);)r-=1;for(let s=r;s<n;s+=1)t[s]=t[s].replace(mo," $1 | $2")}return t.join(`
46
- `)}var Qc=/^( *(?:[~+-] +)?(?:[\w.-]+|"[^"\n]*")) {2,}= /gm,ho=/^[A-Z][A-Z0-9_]*(?: +[A-Z][A-Z0-9_]*)+$/,go=/^… \(\d+ more lines omitted\)$/;function ef(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 tf(e){let t=e.endsWith(`
42
+ `:"",n=ed((t?e.slice(0,-1):e).split(`
43
+ `)),r=null,s=[];for(let o of n){if(Object.hasOwn(po,o)){r=po[o];continue}if(!o.startsWith(" ")){r=null,s.push(o);continue}if(r==="untracked"){s.push(`?? ${o.slice(1)}`);continue}let i=r?qc.exec(o):null;if(!i)return e;let a=Yc[i[1]];s.push(r==="staged"?`${a} ${i[2]}`:` ${a} ${i[2]}`)}return s.join(`
44
+ `)+t}var mo=/^ (\S.*?) +\| +(\d+(?: [+-]+)?|Bin .*)$/,nd=/^ \d+ files? changed(?:, \d+ insertions?\(\+\))?(?:, \d+ deletions?\(-\))?$/;function rd(e){let t=e.split(`
45
+ `);for(let n=0;n<t.length;n+=1){if(!nd.test(t[n]))continue;let r=n;for(;r>0&&mo.test(t[r-1]);)r-=1;for(let s=r;s<n;s+=1)t[s]=t[s].replace(mo," $1 | $2")}return t.join(`
46
+ `)}var sd=/^( *(?:[~+-] +)?(?:[\w.-]+|"[^"\n]*")) {2,}= /gm,ho=/^[A-Z][A-Z0-9_]*(?: +[A-Z][A-Z0-9_]*)+$/,go=/^… \(\d+ more lines omitted\)$/;function od(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 id(e){let t=e.endsWith(`
47
47
  `)?`
48
48
  `:"",n=(t?e.slice(0,-1):e).split(`
49
49
  `),r=[],s=[];for(let u of n)u.startsWith("WARNING:")?r.includes(u)||r.push(u):s.push(u);let o=s.findIndex(u=>ho.test(u));if(o<0)return[...r,...s].join(`
50
- `)+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(go.test(u)){l.push(u);continue}let c=u.startsWith(" ")||/[^\x20-\x7e]/.test(u)?null:ef(u,a);if(!c)return[...r,...s].join(`
50
+ `)+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(go.test(u)){l.push(u);continue}let c=u.startsWith(" ")||/[^\x20-\x7e]/.test(u)?null:od(u,a);if(!c)return[...r,...s].join(`
51
51
  `)+t;l.push(c.join(" "))}return l.join(`
52
- `)+t}function nf(e){let t=e.endsWith(`
52
+ `)+t}function ad(e){let t=e.endsWith(`
53
53
  `)?`
54
54
  `:"",n=(t?e.slice(0,-1):e).split(`
55
55
  `),r=n.findIndex(i=>ho.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(go.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(`
56
- `)+t}function rr(e,t,n){if(t!=="compact"&&t!=="minimal")return e;let r=e;if(/^[ \t\r\n]*[\[{]/.test(e)){try{JSON.parse(e)}catch{return e}r=Bc(e,t==="minimal")}else n==="gh"?r=Jc(e,t==="minimal"):n==="git-status"?r=Yc(e):n==="gcloud"?r=tf(e):n==="oc"?r=nf(e):n==="git-diff"?r=Xc(e):n==="tofu-plan"&&(r=e.replace(Qc,"$1 = "));return Buffer.byteLength(r)<Buffer.byteLength(e)?r:e}var rf=/^(?:\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|$)/,sf=/^\[tkr: previous log line repeated \d+ additional times\]$/m;function yo(e){if(Buffer.byteLength(e)<2048||Qt(e)||sf.test(e))return e;let t=e.split(`
57
- `),n=[];for(let r=0;r<t.length;){let s=t[r],o=r+1;if(rf.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(`
58
- `)}var of=/^(?:[A-Za-z]:)?[^\s"'<>|]+\.(?:[cm]?[jt]sx?|json)$/,af=/--(?:listFiles|listFilesOnly|listEmittedFiles|showConfig|explainFiles|traceResolution)(?:\s|=|$)/;function ko(e){return af.test(e)}function bo(e){let t=e.endsWith(`
56
+ `)+t}function rr(e,t,n){if(t!=="compact"&&t!=="minimal")return e;let r=e;if(/^[ \t\r\n]*[\[{]/.test(e)){try{JSON.parse(e)}catch{return e}r=Wc(e,t==="minimal")}else n==="gh"?r=Kc(e,t==="minimal"):n==="git-status"?r=td(e):n==="gcloud"?r=id(e):n==="oc"?r=ad(e):n==="git-diff"?r=rd(e):n==="tofu-plan"&&(r=e.replace(sd,"$1 = "));return Buffer.byteLength(r)<Buffer.byteLength(e)?r:e}var ld=/^(?:\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|$)/,ud=/^\[tkr: previous log line repeated \d+ additional times\]$/m;function yo(e){if(Buffer.byteLength(e)<2048||Qt(e)||ud.test(e))return e;let t=e.split(`
57
+ `),n=[];for(let r=0;r<t.length;){let s=t[r],o=r+1;if(ld.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(`
58
+ `)}var cd=/^(?:[A-Za-z]:)?[^\s"'<>|]+\.(?:[cm]?[jt]sx?|json)$/,dd=/--(?:listFiles|listFilesOnly|listEmittedFiles|showConfig|explainFiles|traceResolution)(?:\s|=|$)/;function ko(e){return dd.test(e)}function bo(e){let t=e.endsWith(`
59
59
  `),n=(t?e.slice(0,-1):e).split(`
60
- `),r=0;for(let s of n)if(s.trim()!==""){if(!of.test(s))return null;r+=1}return r<2?null:`tsc: 0 errors, ${r} files${t?`
61
- `:""}`}var vo=/^(?:(?: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|$)/,So={normal:{msg:40,diff:60,frames:6,code:!0,out:20,bulk:50,repeats:10,trimDiff:!1,changedOnly:!1},compact:{msg:12,diff:24,frames:2,code:!1,out:5,bulk:20,repeats:2,trimDiff:!0,changedOnly:!1},minimal:{msg:6,diff:8,frames:0,code:!1,out:0,bulk:10,repeats:1,trimDiff:!0,changedOnly:!0}},lf=/node_modules|^node:|^internal\/|site-packages|dist-packages|\/lib\/python\d|\/rustc\/|\.cargo\/registry|\.rustup\/|\/go\/src\/|\/go\/pkg\/mod\/|\/libexec\/src\/|<anonymous>/,uf=/^\s*at\s+(?:.*?\()?((?:file:\/\/)?[^\s()]+?):(\d+)(?::(\d+))?\)?\s*$/,cf=/^\s*❯\s+(?:\S+\s+)?([^\s]+?):(\d+)(?::(\d+))?\s*$/,ff=/^\s*(>)?\s*(\d+)\s*\|/,df=/^\s*\|\s*[\^~]+\s*$/,pf=/^(?:- Expected|\+ Received|- Snapshot|\+ expected - actual|\+ actual - expected|- expected \+ actual)(?:\s+[-+]\s*\d+)?$/;function st(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 an(e){return lf.test(e)}function ln(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 sr(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||df.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=uf.exec(d)??cf.exec(d);if(h){s=-1;let k=h[1].replace(/^file:\/\//,"");an(k)||(r=ln(n,`${k}:${h[2]}${h[3]?`:${h[3]}`:""}`,r));continue}let _=ff.exec(d);if(_){s=-1,n.push({kind:"code",text:p,num:Number(_[2]),pointed:_[1]===">"});continue}if(pf.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.text=f.text.replace(/^>\s*/,""));return{body:u,loc:r}}function J(e,t=!1){return{text:e.trim().replace(/\s{2,}/g," "),minor:t}}function mf(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=st(e,/^\s*Tests\s+(\d+) failed/),n=[];for(let l of e)/^\s*Test Files\s{2,}\S/.test(l)?n.push(J(l,!0)):/^\s*(?:Tests|Errors|Type Errors)\s{2,}\S/.test(l)&&n.push(J(l));let r=[],s=0,o=[],i=[],a=()=>{if(o.length){let{body:l,loc:u}=sr(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(k=>k.trim())&&a();let d=c[1],p=/^(\S+) \[ \S+ \]$/.exec(d),h=d.split(" > "),_=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(_),o.push(_);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 hf(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=st(e,/^Tests:\s+(\d+) failed/),n=[];for(let c of e)/^Test Suites:\s/.test(c)?n.push(J(c,!0)):(/^Tests:\s/.test(c)||/^Snapshots:\s/.test(c)&&/failed|obsolete/.test(c))&&n.push(J(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}=sr(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 Eo(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}=sr(i.get(l.name),s);l.body=u,l.loc=c}return o}function gf(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=>J(o.replace(/ \(\S+\)\s*$/,""))),s=Eo(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 yf(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=st(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=>J(a.replace(/ \([\d.]+m?s\)\s*$/,""))),i=Eo(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 kf(e){if(!e.some(i=>/^test result: /.test(i))||!e.some(i=>/^---- .+ stdout ----$/.test(i)))return null;let t=st(e,/^test result: FAILED\. \d+ passed; (\d+) failed/),n=[];for(let i of e)/^test result: FAILED/.test(i)?n.push(J(i.replace(/; finished in [\d.]+m?s\s*$/,""))):/^test result: ok/.test(i)?n.push(J(i.replace(/; finished in [\d.]+m?s\s*$/,""),!0)):/^error(?:\[\w+\])?: /.test(i)&&n.push(J(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&&!an(h[1])&&(i.loc=ln(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 bf(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(J(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(J(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(J(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){an(c[1])||(a.loc=ln(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 _o=/^(FAILED|ERROR) (\S+?\.py(?:::\S+)?)(?: - (.*))?$/;function xo(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(!an(f[1])){let d=f[3]?.startsWith("in ")?` ${f[3]}`:"";r=ln(n,`${f[1]}:${f[2]}${r===null?"":d}`,r)}continue}/^>\s/.test(u)&&!o&&(o=!0,n.push({kind:"code",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 wo(e,t){return t.push(J(e.replace(/ in [\d.]+s(?: \([\d:]+\))?$/,""))),(st([e],/(\d+) failed/)??0)+(st([e],/(\d+) errors?\b/)??0)}function _f(e){if(!e.some(f=>/^={3,} (?:FAILURES|ERRORS|short test summary info) ={3,}$/.test(f)||_o.test(f)))return null;let t=new Map,n=[],r=[],s="",o=null,i=null,a=null;for(let f of e){let d=/^={3,} (.+?) ={3,}$/.exec(f);if(d){s=d[1],o=null,i=null,!/^(?:FAILURES|ERRORS|short test summary info|warnings summary|test session starts|PASSES)$/.test(s)&&/\b\d+ (?:failed|passed|errors?|skipped|xfailed|xpassed|deselected|warnings?)\b|no tests ran/.test(s)&&(a=wo(s,r));continue}if(/^(?:\d+ (?:failed|passed|errors?|skipped|xfailed|xpassed|deselected|warnings?)(?:, |\s|$))+(?:in [\d.]+s(?: \([\d:]+\))?)?$/.test(f.trim())){a=wo(f.trim(),r);continue}if(/^!{3,} .+ !{3,}$/.test(f)){r.push(J(f.replace(/^!+ | !+$/g,"")));continue}let p=/^_{3,} (.+?) _{3,}$/.exec(f);if(p&&(s==="FAILURES"||s==="ERRORS")){o=[],t.set(p[1],o);continue}let h=_o.exec(f);if(h&&s!=="FAILURES"&&s!=="ERRORS"){o=null;let _={kind:h[1],id:h[2],msg:h[3]??null,inline:[]};n.push(_),i=_;continue}if(o){o.push(f);continue}i&&/^E(?:\s|$)/.test(f)?i.inline.push(f):i&&f.trim()&&(i=null)}let l=new Set,u=[],c=new Set;for(let f of n){if(c.has(f.id))continue;c.add(f.id);let[d,...p]=f.id.split("::"),h=p.join("."),_=[h,`ERROR collecting ${f.id}`,`ERROR at setup of ${h}`,`ERROR at teardown of ${h}`].find(O=>O&&t.has(O)&&!l.has(O));_&&l.add(_);let{body:k,loc:T}=xo(_?t.get(_):f.inline,f.msg),E=p.length?p.join("::"):"(collection)";u.push({file:d,name:f.kind==="ERROR"?`${E} [error]`:E,loc:T,body:k})}for(let[f,d]of t){if(l.has(f))continue;let{body:p,loc:h}=xo(d,null);u.push({file:h?h.replace(/:\d+$/,""):null,name:f,loc:h,body:p})}if(u.length===0)for(let f of e){let d=/^(\S+?)::(\S+) (FAILED|ERROR)\b/.exec(f);d&&u.push({file:d[1],name:d[3]==="ERROR"?`${d[2]} [error]`:d[2],loc:null,body:[]})}return{failures:u,summary:r,reported:a,counted:u.length}}var xf=[kf,bf,_f,hf,mf,gf,yf];function wf(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 vf(e,t,n){let r=So[n],s=e.body.filter(d=>d.kind==="msg");if(!t)return s.length?[` ${s[0].text}`]:[];let o=e.body.filter(d=>d.kind==="diff"),i=r.trimDiff&&wf(o,s.map(d=>d.text).join(`
62
- `)),a={msg:0,legend:0,diff:0,frame:0,code:0,out:0},l={msg:0,legend:0,diff:0,frame:0,code:0,out:0},u={msg:r.msg,legend:1/0,diff:r.diff,frame:r.frames,code:r.code?1:0,out:r.out},c=[];for(let d of e.body){if((d.kind==="diff"||d.kind==="legend")&&i||d.kind==="diff"&&r.changedOnly&&!/^[-+]/.test(d.text.trim()))continue;let p=d.kind==="legend"?"diff":d.kind;if(a[p]>=u[p]&&d.kind!=="legend"){l[p]+=1;continue}d.kind!=="legend"&&(a[p]+=1),c.push(d.kind==="frame"?` at ${d.text}`:` ${d.text}`)}let f=l.msg+l.diff+(n==="normal"?l.frame+l.out:0);return f>0&&c.push(` ${rt(f)}`),c}function Sf(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 Ef(e){if(!e.loc)return`\xD7 ${e.name}`;let t=e.file&&e.loc.startsWith(`${e.file}:`)?e.loc.slice(e.file.length):e.loc;return`\xD7 ${e.name} ${t}`}function Tf(e,t){let n=So[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:vf(u,d,t).join(`
63
- `)}}),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 ${Sf(o.slice(u,f+1).map(p=>p.f.name))}`:Ef(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(`
60
+ `),r=0;for(let s of n)if(s.trim()!==""){if(!cd.test(s))return null;r+=1}return r<2?null:`tsc: 0 errors, ${r} files${t?`
61
+ `:""}`}var vo=/^(?:(?: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|$)/,So={normal:{msg:40,diff:60,frames:6,code:!0,out:20,bulk:50,repeats:10,trimDiff:!1,changedOnly:!1},compact:{msg:12,diff:24,frames:2,code:!1,out:5,bulk:20,repeats:2,trimDiff:!0,changedOnly:!1},minimal:{msg:6,diff:8,frames:0,code:!1,out:0,bulk:10,repeats:1,trimDiff:!0,changedOnly:!0}},fd=/node_modules|^node:|^internal\/|site-packages|dist-packages|\/lib\/python\d|\/rustc\/|\.cargo\/registry|\.rustup\/|\/go\/src\/|\/go\/pkg\/mod\/|\/libexec\/src\/|<anonymous>/,pd=/^\s*at\s+(?:.*?\()?((?:file:\/\/)?[^\s()]+?):(\d+)(?::(\d+))?\)?\s*$/,md=/^\s*❯\s+(?:\S+\s+)?([^\s]+?):(\d+)(?::(\d+))?\s*$/,hd=/^\s*(>)?\s*(\d+)\s*\|/,gd=/^\s*\|\s*[\^~]+\s*$/,yd=/^(?:- Expected|\+ Received|- Snapshot|\+ expected - actual|\+ actual - expected|- expected \+ actual)(?:\s+[-+]\s*\d+)?$/;function ot(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 an(e){return fd.test(e)}function ln(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 sr(e,t=()=>!1){let n=[],r=null,s=-1,o=!1;for(let d of e){let f=d.trimEnd(),p=f.trim();if(!p||gd.test(f)||/^─+$/.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=pd.exec(f)??md.exec(f);if(h){s=-1;let y=h[1].replace(/^file:\/\//,"");an(y)||(r=ln(n,`${y}:${h[2]}${h[3]?`:${h[3]}`:""}`,r));continue}let x=hd.exec(f);if(x){s=-1,n.push({kind:"code",text:p,num:Number(x[2]),pointed:x[1]===">"});continue}if(yd.test(p)){s=n.length,n.push({kind:"legend",text:p});continue}n.push(s>=0?{kind:"diff",text:f,segment:s}:{kind:"msg",text:p})}let i=n.some(d=>d.kind==="code"&&d.pointed),a=r?Number(/:(\d+)(?::\d+)?$/.exec(r)?.[1]):NaN,l=!1,u=n.filter(d=>{if(d.kind!=="code")return!0;let f=!l&&(i?d.pointed===!0:d.num===a);return f&&(l=!0),f}),c=new Map;for(let d of u){if(d.kind!=="diff")continue;let f=d.text.length-d.text.trimStart().length;c.set(d.segment,Math.min(c.get(d.segment)??f,f))}for(let d of u)d.kind==="diff"&&(d.text=d.text.slice(c.get(d.segment)??0)),d.kind==="code"&&(d.text=d.text.replace(/^>\s*/,""));return{body:u,loc:r}}function J(e,t=!1){return{text:e.trim().replace(/\s{2,}/g," "),minor:t}}function kd(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=ot(e,/^\s*Tests\s+(\d+) failed/),n=[];for(let l of e)/^\s*Test Files\s{2,}\S/.test(l)?n.push(J(l,!0)):/^\s*(?:Tests|Errors|Type Errors)\s{2,}\S/.test(l)&&n.push(J(l));let r=[],s=0,o=[],i=[],a=()=>{if(o.length){let{body:l,loc:u}=sr(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(y=>y.trim())&&a();let f=c[1],p=/^(\S+) \[ \S+ \]$/.exec(f),h=f.split(" > "),x=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:f,loc:null,body:[]};p||(s+=1),r.push(x),o.push(x);continue}let d=/^⎯+ (Unhandled [A-Za-z ]+?) ⎯+$/.exec(u);if(d){a();let f={file:null,name:d[1],loc:null,body:[]};r.push(f),o.push(f);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 d=/^\s+[×✗]\s+(.+?)(?:\s+\d+(?:\.\d+)?m?s)?$/.exec(u);d&&(r.push({file:l,name:d[1],loc:null,body:[]}),s+=1)}}return{failures:r,summary:n,reported:t,counted:s}}function bd(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=ot(e,/^Tests:\s+(\d+) failed/),n=[];for(let c of e)/^Test Suites:\s/.test(c)?n.push(J(c,!0)):(/^Tests:\s/.test(c)||/^Snapshots:\s/.test(c)&&/failed|obsolete/.test(c))&&n.push(J(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:d,loc:f}=sr(l);a.body=d,a.loc=f,r.push(a),a.name!=="Test suite failed to run"&&(o+=1)}}a=null,l=[]};for(let c of e){let d=/^(?:FAIL|PASS)\s+(\S+)/.exec(c);if(d){u(),i=d[1];continue}if(/^(?:Summary of all failing tests|Test Suites:|Tests:|Snapshots:|Time:|Ran all test suites)/.test(c)){u();continue}let f=/^\s{2}● (.+)$/.exec(c);if(f){u(),f[1].trim()!=="Console"&&(a={file:i,name:f[1].trim(),loc:null,body:[]});continue}a&&l.push(c)}return u(),{failures:r,summary:n,reported:t,counted:o}}function Eo(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:d,used:f}=r(c[1],e.slice(l+1,Math.min(n,l+8)));l+=f,a=i.get(d)??null,a||(a=[],i.set(d,a),o.push({file:null,name:d,loc:null,body:[]}));continue}/^\s+Retry #\d+ ─*/.test(u)||a&&a.push(u)}for(let l of o){let{body:u,loc:c}=sr(i.get(l.name),s);l.body=u,l.loc=c}return o}function _d(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=>J(o.replace(/ \(\S+\)\s*$/,""))),s=Eo(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 xd(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=ot(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=>J(a.replace(/ \([\d.]+m?s\)\s*$/,""))),i=Eo(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 wd(e){if(!e.some(i=>/^test result: /.test(i))||!e.some(i=>/^---- .+ stdout ----$/.test(i)))return null;let t=ot(e,/^test result: FAILED\. \d+ passed; (\d+) failed/),n=[];for(let i of e)/^test result: FAILED/.test(i)?n.push(J(i.replace(/; finished in [\d.]+m?s\s*$/,""))):/^test result: ok/.test(i)?n.push(J(i.replace(/; finished in [\d.]+m?s\s*$/,""),!0)):/^error(?:\[\w+\])?: /.test(i)&&n.push(J(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 d=c.trimEnd(),f=d.trim();if(!f)continue;let p=/^thread '.+?'(?: \(\d+\))? panicked at (?:'(.*)', )?(\S+?):(\d+):(\d+):?$/.exec(f);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(f)){if(/^stack backtrace:$/.test(f)){u=!0;continue}if(u){let h=/^at\s+(\S+?):(\d+):(\d+)$/.exec(f);h&&!an(h[1])&&(i.loc=ln(i.body,`${h[1]}:${h[2]}:${h[3]}`,i.loc));continue}i.body.push(l?{kind:"msg",text:d}:{kind:"out",text:d})}}}return{failures:r,summary:n,reported:t,counted:r.length}}function vd(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(J(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(J(a,!0));continue}if(i)r.get(i).push(a);else if(o){let d=t.get(o)??[];d.push(a),t.set(o,d)}else(/^#\s\S+$/.test(a)||/^\S+\.go:\d+(?::\d+)?: /.test(a))&&s.push(J(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){an(c[1])||(a.loc=ln(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 _o=/^(FAILED|ERROR) (\S+?\.py(?:::\S+)?)(?: - (.*))?$/;function xo(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 d=/^(\S+?\.py):(\d+):(?: (.*))?$/.exec(u);if(d){if(an(d[1]))o>=0&&n.splice(o,1);else{let f=d[3]?.startsWith("in ")?` ${d[3]}`:"";r=ln(n,`${d[1]}:${d[2]}${r===null?"":f}`,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 wo(e,t){return t.push(J(e.replace(/ in [\d.]+s(?: \([\d:]+\))?$/,""))),(ot([e],/(\d+) failed/)??0)+(ot([e],/(\d+) errors?\b/)??0)}function Sd(e){if(!e.some(d=>/^={3,} (?:FAILURES|ERRORS|short test summary info) ={3,}$/.test(d)||_o.test(d)))return null;let t=new Map,n=[],r=[],s="",o=null,i=null,a=null;for(let d of e){let f=/^={3,} (.+?) ={3,}$/.exec(d);if(f){s=f[1],o=null,i=null,!/^(?:FAILURES|ERRORS|short test summary info|warnings summary|test session starts|PASSES)$/.test(s)&&/\b\d+ (?:failed|passed|errors?|skipped|xfailed|xpassed|deselected|warnings?)\b|no tests ran/.test(s)&&(a=wo(s,r));continue}if(/^(?:\d+ (?:failed|passed|errors?|skipped|xfailed|xpassed|deselected|warnings?)(?:, |\s|$))+(?:in [\d.]+s(?: \([\d:]+\))?)?$/.test(d.trim())){a=wo(d.trim(),r);continue}if(/^!{3,} .+ !{3,}$/.test(d)){r.push(J(d.replace(/^!+ | !+$/g,"")));continue}let p=/^_{3,} (.+?) _{3,}$/.exec(d);if(p&&(s==="FAILURES"||s==="ERRORS")){o=[],t.set(p[1],o);continue}let h=_o.exec(d);if(h&&s!=="FAILURES"&&s!=="ERRORS"){o=null;let x={kind:h[1],id:h[2],msg:h[3]??null,inline:[]};n.push(x),i=x;continue}if(o){o.push(d);continue}i&&/^E(?:\s|$)/.test(d)?i.inline.push(d):i&&d.trim()&&(i=null)}let l=new Set,u=[],c=new Set;for(let d of n){if(c.has(d.id))continue;c.add(d.id);let[f,...p]=d.id.split("::"),h=p.join("."),x=[h,`ERROR collecting ${d.id}`,`ERROR at setup of ${h}`,`ERROR at teardown of ${h}`].find(O=>O&&t.has(O)&&!l.has(O));x&&l.add(x);let{body:y,loc:T}=xo(x?t.get(x):d.inline,d.msg),w=p.length?p.join("::"):"(collection)";u.push({file:f,name:d.kind==="ERROR"?`${w} [error]`:w,loc:T,body:y,exact:!0})}for(let[d,f]of t){if(l.has(d))continue;let{body:p,loc:h}=xo(f,null);u.push({file:h?h.replace(/:\d+$/,""):null,name:d,loc:h,body:p,exact:!0})}if(u.length===0)for(let d of e){let f=/^(\S+?)::(\S+) (FAILED|ERROR)\b/.exec(d);f&&u.push({file:f[1],name:f[3]==="ERROR"?`${f[2]} [error]`:f[2],loc:null,body:[]})}return{failures:u,summary:r,reported:a,counted:u.length}}var Ed=[wd,vd,Sd,bd,kd,_d,xd];function Td(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 Rd(e,t,n){let r=So[n],s=e.body.filter(f=>f.kind==="msg");if(!t)return[...e.body.filter(f=>f.kind==="source"),...s.slice(0,1)].map(f=>` ${f.text}`);let o=e.body.filter(f=>f.kind==="diff"),i=r.trimDiff&&Td(o,s.map(f=>f.text).join(`
62
+ `)),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:r.code?1:0,source:1/0,out:r.out},c=[];for(let f of e.body){if((f.kind==="diff"||f.kind==="legend")&&i||f.kind==="diff"&&r.changedOnly&&!/^[-+]/.test(f.text.trim()))continue;let p=f.kind==="legend"?"diff":f.kind;if(a[p]>=u[p]&&f.kind!=="legend"){l[p]+=1;continue}f.kind!=="legend"&&(a[p]+=1),c.push(f.kind==="frame"?` at ${f.text}`:` ${f.text}`)}let d=l.msg+l.diff+(n==="normal"?l.frame+l.out:0);return d>0&&c.push(` ${st(d)}`),c}function Ad(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 $d(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 Cd(e,t){let n=So[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??"",d=(r.get(c)??0)+1;r.set(c,d);let f=c===""||!s||d<=n.repeats;return{f:u,full:f,body:Rd(u,f,t).join(`
63
+ `)}}),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 d=u;if(!c.full&&c.f.loc===null)for(;d+1<o.length;){let p=o[d+1];if(p.full||p.f.loc!==null||p.f.file!==c.f.file||p.body!==c.body)break;d+=1}i.push(d>u?`\xD7 ${Ad(o.slice(u,d+1).map(p=>p.f.name))}`:$d(c.f)),u=d;let f=o[u+1];f&&f.f.file===c.f.file&&f.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(`
64
64
  `)}
65
- `}function To(e,t="normal"){let n=ie(e).split(`
66
- `).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 xf){let s=r(n);if(!(!s||s.failures.length===0))return s.counted===0||s.reported!==null&&s.counted<s.reported?null:Tf(s,t)}return null}import{createCipheriv as e_,createDecipheriv as Rf,hkdfSync as Af,randomBytes as t_}from"node:crypto";var $f=Buffer.from("tokmizer-bundle-enc-v1"),Cf=Buffer.from("rules-bundle");function Of(e){return Buffer.from(Af("sha256",Buffer.from(e,"utf8"),$f,Cf,32))}function un(e,t){let n=Of(t),r=Buffer.from(e,"base64url"),s=r.subarray(0,12),o=r.subarray(12,28),i=r.subarray(28),a=Rf("aes-256-gcm",n,s);return a.setAuthTag(o),Buffer.concat([a.update(i),a.final()]).toString("utf8")}import{createPublicKey as Yf,verify as qf}from"node:crypto";import{join as If}from"node:path";import{mkdir as o_,readFile as Nf,writeFile as i_,unlink as a_,rename as l_}from"node:fs/promises";var Pf="state.json";function Df(){try{let e=Intl.DateTimeFormat().resolvedOptions().timeZone;return e&&e.length>0?e:"Etc/UTC"}catch{return"Etc/UTC"}}function Ff(e){return e?.dir??$()}async function Tt(e){let t=Ff(e);try{let n=await Nf(If(t,Pf),"utf8"),r=JSON.parse(n),s=r.timeZone;return{...r,lastSettingsRevision:r.lastSettingsRevision??0,get timeZone(){return s??=Df()},bonusActive:r.bonusActive??!1,...r.bonusResetAt!==void 0?{bonusResetAt:r.bonusResetAt}:{}}}catch{return null}}import{createRequire as Lf}from"node:module";var Mf=Lf(import.meta.url);function jf(){let e="0.9.62";if(e)return e;for(let t of["../package.json","../../package.json"])try{let n=Mf(t).version;if(typeof n=="string"&&n)return n}catch{}return"0.0.0"}var Rt=jf();function Ro(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 Ao=`-----BEGIN PUBLIC KEY-----
65
+ `}function To(e,t="normal"){let n=ae(e).split(`
66
+ `).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 Ed){let s=r(n);if(!(!s||s.failures.length===0))return s.counted===0||s.reported!==null&&s.counted<s.reported?null:Cd(s,t)}return null}import{createCipheriv as s_,createDecipheriv as Od,hkdfSync as Id,randomBytes as o_}from"node:crypto";var Pd=Buffer.from("tokmizer-bundle-enc-v1"),Nd=Buffer.from("rules-bundle");function Dd(e){return Buffer.from(Id("sha256",Buffer.from(e,"utf8"),Pd,Nd,32))}function un(e,t){let n=Dd(t),r=Buffer.from(e,"base64url"),s=r.subarray(0,12),o=r.subarray(12,28),i=r.subarray(28),a=Od("aes-256-gcm",n,s);return a.setAuthTag(o),Buffer.concat([a.update(i),a.final()]).toString("utf8")}import{createPublicKey as ef,verify as tf}from"node:crypto";import{join as Fd}from"node:path";import{mkdir as u_,readFile as Ld,writeFile as c_,unlink as d_,rename as f_}from"node:fs/promises";var Md="state.json";function jd(){try{let e=Intl.DateTimeFormat().resolvedOptions().timeZone;return e&&e.length>0?e:"Etc/UTC"}catch{return"Etc/UTC"}}function Hd(e){return e?.dir??$()}async function Rt(e){let t=Hd(e);try{let n=await Ld(Fd(t,Md),"utf8"),r=JSON.parse(n),s=r.timeZone;return{...r,lastSettingsRevision:r.lastSettingsRevision??0,get timeZone(){return s??=jd()},bonusActive:r.bonusActive??!1,...r.bonusResetAt!==void 0?{bonusResetAt:r.bonusResetAt}:{}}}catch{return null}}import{createRequire as Ud}from"node:module";var Bd=Ud(import.meta.url);function zd(){let e="0.9.64";if(e)return e;for(let t of["../package.json","../../package.json"])try{let n=Bd(t).version;if(typeof n=="string"&&n)return n}catch{}return"0.0.0"}var At=zd();function Ro(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 Ao=`-----BEGIN PUBLIC KEY-----
67
67
  MCowBQYDK2VwAyEAj/kMlXlhTIGHRKxOKMuGFa1S1ybxxwgdYcAE0YM9fgU=
68
68
  -----END PUBLIC KEY-----
69
- `;import{existsSync as Hf,mkdirSync as h_,rmSync as g_,writeFileSync as y_}from"node:fs";import{join as Uf}from"node:path";var zf=new Set(["0","off","false","no"]);var __=["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(`
70
- `);function Bf(){return Uf($(),"network-off")}function Jf(){let e=process.env.TOKMIZER_NETWORK;return e!==void 0&&zf.has(e.trim().toLowerCase())}function or(){return Jf()?!1:!Hf(Bf())}var T_=300*1e3;function $o(){return((process.env.TOKMIZER_DEV==="1"?process.env.TOKMIZER_RESP_SIGNING_PUBLIC_KEY_PEM:void 0)??Ao).replace(/\\n/g,`
71
- `)}import{chmodSync as $_,readFileSync as Zf,writeFileSync as C_,mkdirSync as O_,renameSync as I_}from"node:fs";import{join as Gf}from"node:path";var Vf=g.object({payload:g.string().min(1),signature:g.string().min(1),enc:g.literal("v1"),fetchedAt:g.number().int().nonnegative()});function Wf(){return Gf($(),"bundle-cache.json")}function Co(){try{let e=Zf(Wf(),"utf8"),t=Vf.safeParse(JSON.parse(e));return t.success?t.data:null}catch{return null}}var ir=g.object({bundleVersion:g.number().int().nonnegative(),signedAt:g.number().int(),filters:g.array(_e)}),G_=g.object({payload:g.string().min(1),signature:g.string().min(1),enc:g.literal("v1")}),Xf=10080*60*1e3;function Qf(){let e=Number(process.env.TOKMIZER_MAX_BUNDLE_AGE_MS);return Number.isFinite(e)&&e>0?e:Xf}function ed(e,t){let n=$o();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=Yf({key:n,format:"pem"});if(!qf(null,Buffer.from(e.payload,"utf8"),r,Buffer.from(e.signature,"base64url")))throw new Error("tkr-daemon: rules bundle signature invalid");return JSON.parse(un(e.payload,t))}function td(e,t){let n=ed(e,t),r=ir.parse(n);if(Date.now()-r.signedAt>Qf())throw new Error("tkr-daemon: rules bundle is stale");return ar(r,{signedAt:r.signedAt,fetchedAt:Date.now()})}function ar(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)=>nt(r,n.values(),o?new Set(o):null,n)}}async function Oo(){try{let e=Co();if(!e)return null;let t=await Tt();return t?.signingSecret?td(e,t.signingSecret):null}catch{return null}}var nd="tokmizer-default-rules-v1",rd=/^[0-9a-f]{16}$/,At=null;function Io(){let e="GAEvzj_cl1cSD-1wUUvo0DWMRxxMvAGU-1MPitUGrrI1oS3G9OELrSL4zBl_bhCFbIvUH2vqsjTTByNots9zdNGvsGQ4yuYyemv-hLQiFZFs34jXJz24cfpHmvpaB2kGQjClNyTrfGNdJVxX0vUTqQizTdtWTdPa2CjMZ6ASGJkFyDL3xRcfnW11cSGXexuu4CE0zkcrQAN31JB471C6-QUCcRhBHQ_ClKxICI0Wd8IuskpwUqJBjGOKEbpo9A7P1IbhuPSYA7agBENCfIf3j1cdNg4DX1xQD-nZpkFbS8DSGlIu8biljYjpoh66UZEecldoUceGtdVIN8rPF_KZpgEbWVRBGkGhKoO7pcqNXR0z23PEBjqukzv6wUnh-9IZBZdWFui9ytW9tGfB6TZcZij8aQNoNU8E614J9-P-A-4ha-vyBPR1ZAscWQIuP5Ygq5rtC8meDBi5D5cNt1NOEsSs78PeEBT5O475vODyMKRSrTbvDSHsp0Mk25aMEUc9diZdrs9k2tFycbQOttwc88mf6PbPaDuodz1Ixsd2-tbmDPOzBtGxiE6OcKs9-BkvZly8-oqSe2jkxWKNNm6GfGUVw-MviA4Vptfkx60RJCjins_1DeBBo8V4K-wEDwFsiH0Xulg02gRNHOoWSeZ0XHnNBcfB1LPnLuSMM5AtbgSJxp_tS8sfg1zfmfiFT5TDCxM6j5zVldERJaJl8aXL658rChWeFc1MhP8_Fxl-d2Vj7cvw69Q4DfvLMbmisrSJGBqpfW7KYYEQHKLf92-zVxQ2VrgJEpE7YEEmcE4QYCD9VlU-jN6HCg9SS6oe7udifP8fUyJ7ilUhMWBUifoEFR9g2cKfirtnMQGtBU1ztTnKBgfejtxz9_KmQiZSDN_kgjoum2tSgXN0dMqXv5Suandk5PpBJH5ohWO1M5qk9Y3AViHuiSq9bbqe3uMI_TTIV3I7HN2DYYKE2N1rclYrfRHv6z4aRUL0xHIlBIL1ztTjLh1DJQf65NdI6RbbpzRSNBLLiKgZlIpvz47AauU_sxIiiIGo1IfnPlJ3SZVR13oZrMgyOmWhiXLAoLzppxCUfjRdYIGxkXw6k7whDDwbYClD1THVp_kBm6YRQoCaBISTKDU6GOSCmX1v-UUykwNlQHAPQEe_SH4NEf_8GCXY9k2a1_gg55Bgmo38NdodvZlIeKNrFzdkU6B3pikWHNuhC0IvwfHvyUgsagBqEK57YDHdgjbKNgp9U9JjuXsUNmYl6AXfIIc6gkH56GiRz7m1QyYznXZbptmRAmdlFGIRn-b1j5TEgzwmqpMT2WkonBt6t2U1ScK60x61VQIsZto9gaLCzGlDChPwZxbmUoRQU-BKY8B6PGsT2XdyMWDkzWMGEfcnVBDzSLRiCEz93f6cB9DgqnkqP7Mg3-9-law6MjmLEeqB8Vp12O_ALhlTvqwwZEnEOUyC5M9aNUPP_WGb_5v3ryB-rZq6QYPY0OxicmGJnhEIfGzvuAd7iYNX2dEWidOBT1ynL4oDk28Yg6iifv9MuYKvJMk9LPFTPEg3sPzUocmTdwfEGzlwDeRhX0bmIHtGm4Qu6FFzoWD4VEq_RE7VsX8oEMnKIyn0f_io5yXUxsncS5eQyfi48jjj04dM1AydfPRYL2kINO1u7tVfeODbDP-2Ex8hakcAN64f5XMkeXvo-j3s83L2ag23iyvG8SRP398yAssbDjrVZxcLEBvJqLwm_kOe14KJL3-Yu2yqsamXCc2G-zdgHDHadKVJXFtdQpN01P9ERH3TY-5dYzleoWTNc3mINCflICd9AS_SFuXLWBkBRajSTqCp5AbBU82VQO33XgIb3K9OX8AOVkckufamWbvBgIHdTerIFp0U6TYUcLe-hJvT2_bSDbIqwjxSWlc4pBAfu3BB1eBpQF9c1Q5I4aCWIhFuDYDLJmmhcE6INN39SkzHKipZ5db44rw4H5WYo7MLKrtnNveRT2nrOg1Izdk_lhR0sIATFj2g9Imaj55RhHXkVGIpnfeg0KXYfRJKQauUEtBR7v_3YhVtqm-Eik7WFgsVA4JXRrGlF8MaH-cE8-DzxB_084wgFLXXw8nuRWOesyx5p_4-It-zI_wbfsJFAnSz2N-D7OjM90JSrRVzBFEyZAKnyRxlxQha5gFwcm5nHlnBquDCZavXu_WYNwul6QG6gz2VyQtcshTkEhn2yzcRDISw8ZvwLHFpIrCTMTKNgkSG8pISIzC9tRln95RurKRPGsWevQmArW3suf2jIA7D354g0J5gp53xEWL1WJRODpEWoj09xv40c3Y9NC2EGInj154X0sT16CPzVxhpw-W2nJEYXz33hjV59aMk4sah5_7BFfyAFDUBkYLhW__7JmQLmB3NSnHRCxCGVwCeC9V1OaX2QIZSRyFTDKn9GSFjYeLk0kuXQD8ZZeB5OHbLSMeT3RfwrOja892-EQavZcb120rAm7mbZA4YPeXVlwy_WZCd0zP1hHcSzcYKd7HSD3C9VxqoSnvVxItQV75yr95tNKTjg19J1Ku1g_YELCVXx5WrecQO9CNQOQlcpG-fm1hq8EfWRkq7net_KUugRPJsOgO8wtdJP3a1fyxtkhDxaWqt6l6vLVI-k1-zWCvF02EiXShYVACVXUJnOlWsrsTW8vVB_KPX_N3Sa9u-BbeNxihH4JmyRP3H-m8SWQ80HCjVLuoPYfI0ZeDWpBQYcEe_yX2jHVaRCBkd6EFkLooamYvK810xeB-SMKPnqhBks_YLb8T_rx7KAjbjRyVJcuyBdMrKOSJ_-lKZUqyDbHg6HnaTwOMNL4zUQL6n3D-LwBgrI-P1c_XdYAU8KDwxRr8ytDmHqlxp0u0DGeAu__2E-AFyLtP-EStK53Y7PhgoyO4oJkXpQbNJT8rp1y_7We_T7pygRqWsiy8aGU36mYzHLcCw5SUT5DOJ-BelXcM7Yb_K-RM_kjq0cj-WbMawARXh1ndiA0wXsU5F1p3CEme9mKfTZjlkJwQfx6D0zH_6MQJ2ku3fMnG8c1uz1rvToMPa1SPDeB9obOduGnIFyCQB6onV37Uh-gHMAspbdNTTxZPDpENVkpwz9epz4hqt_MiUWFjSc2jCUwRjUoSIFKmOalP0NA4iJrfdvfaEnjwOJ1n6AATlt52LwgNYBSAmtvoX9qFFJyQYsvfNv9BebO0qgTwVN8d1E2g2DLXL1xgN8gJ5tZj3_HSSIMivKD7BJUhkKwReCNbd01I5C8HQXxA3smgu3vQAQ5Acs9CiyTDTj9_Pz4J9ZDnbpG1GC8e7NgrkYZLbDkSTlXNMZ3MPeig0vJjNWIEkzNeIIUxg-eqRZVMN4kATjEr5YESg6Uth2E1_Bd3xPkha4rCfqNoMeDnITccPqmu82uo7UGKOB3_b--obT9pumTnTBZawHpPCLzhOD-5zSv_YfwcSse5H57IHImtAzkeVTZHiBmwXtxU17TLti7rIxFQz90f4ehlKCzRNJENuBoSsKxw1fFOkqOShhUBHe7AdeA3QnJUX-hjyNvbUNEZSO9UL5AmIuXM4v4dRbR-g2NMojHmOYnh2RLky4GTGFUKUbx79fBl_VpT0blHkVu47Lk-BO-0ykDe1dh3lyDDUjhr9yOtR_kBSiZ1RmXlUurtt0gzqWfHPNGYGgGSN-sSgBJjiXEZDVe1e-vXR1_XL5L9NHxAYT9Dwpg-vyJC0_MykOazPEywiOX8ZlElgw8ntxWHhjFnQf6cgnHSHuDtf8PI7lLTJcaGxBm3gyWeRchNZRFUQns59TRIXj0EOq14hLzp5IFEPo5MPu7u5JbMxL7L-LJSVMQNTPs6sOlMqfsqseRd-6cvehvOKpGvgHOXz0RfwgY2paW9euWTUrEixh8AN9KTkV1aR0ztClSDhJhNNlr4yRz_OPjzTmxKxsabyU12xVbT9_wcaVmozwqfVKb6wifa5uVqZmwg0_jcE7oJKqNANRb92v1iu6iBd0-uVvm2q5TXmzZbG7RazzOyKQ0AOeFLrn6MRNZoEpnWY21L_9jqb1rRCzwrJgajLVF9FPaD4pACONTO6wIJrnNuhdJ8w2OQhnYaV2iS6DViJISTsVPgx5AV3HSauk37ijvY8IZGAYOm79czFaBYoSlNFoEo5lfwGkxelJ0eS7FcaykOx30IRCxzwgkrbDazLlaPRxwFHcWD2RY-PtKGHfKLNwE4XFXbJoV_OhJl_aoHShS1Lux2su18iiqpsfKFZrCqjSiOkiaTMOyKuP6C64YGv3fRDmqIx9qctucGb9Kxzg5qF2AWMrcoGBKhC7fD1K4NXUSIWqLqYkh3HdjweJRNOmRnLPVK2snvpW7yuvcPvC1CywWh2_8DOTsrBv9tjedkQQhwgzLhSicZpLnpItKAGk17cY73EiLkk_SusZMXNqITURIicqeqzagMqdKytXNaXb-N63OdPzNRNGSeUamEyIKo4zmuV-KiEWqNYjGHgOCe-Pi378a8rNyxq16daCldCXzH6Y51OxjiIgpSygVMuJOkN2jAwnrw9Nwq5bGMjRWqhIVZ5-bULvBcq3F1aypiSO-5Td2o6dIk9uVu7NMOnqT-u9enFLMv-Dwt_rmRkBu_f1D2ewSE2CviKgqZi8G93FmXRTAqmSVF1MgkK1utBqvxNJeYouTP8iOlLat2etvVLpQs22aXiA9Gvpv2is4YrFZIMwkOB9lZEzfThZTHnrIrD_sxakE_GkICrvaPNVa1vXc7QkmM8i7jdhad1C1M93vyYVnnGLD3O7sB2HXV7mwgGTNY7hOfFxv5-5U8LRaNrO4TlIGe_On0z3YIVm3Yqe1l9GFauPx8CNAr29EpQ4NHvzLZeUvt3apv4rplDAsVM2L8JelrprGgUVFmAYWVCOUY1Ei9fG_ObOM716Q033oLGMtAzaNBd3nwPmBFdasXiMBuGi6wjCbaou550ttxOjJ0yE-nYMJ_oWzVlbP4B6R-vf2X_MHdDgxG2Pcit6z-96k_KtedYvSyg_KuzLubX63gqaFBj0kGHbQKExWhi3lNvUGCBP48J9DbS7j4aIkJQ45lpjh6YnVxgLoRPJSYw5FM8mYrzllyqf6A9zoYgBtH1vLOjSTpz3YHRZuRKORsHvfS6lrKPnrZGLhyJPMkLBR7PZ_JmSuFK9kESuH-Zef08uUYvkSlGcvtV5e1BqkEmcWR8mvU9QYERhV1Qj_0uzeDq8c_pTcpl6v3JSTEtE60HpU6xdr05-slqDEqLdjjMJ6odJEirN52JfT9yDxpp9CBMKOX7b6kvICnqfCUWWIJ0RS4ziGo1V68cK0Rvpqatjr0CAtigH-GfI5mcOAxhD2sxT7l44lXRxfTpflhVoFNTregRS2F-XywcqPq0A3369htLlYeYfHv_4Ht9U8R2S-m-s_3ls2xNYMUrB5Fj8SJvjK2d-Z8mfphvwDQwbxGlFSdRJgu92xFSoUnEef6NN5CF1GJtp5T06eeWJt2LVGLBcBEf_eRdpiJy3gc3px8hK774FHjoXizN6mTkg94_jgG8fiKVOoDOyk7Wwq1eTRRns96BW0d04A8oDzFXGih99ZIzF3bwrUuvG2C-plHeIynib3ymdkQPdUJ7_hdWSiGQ9YONacT9lY6z8UYBi6l9eQmwoMTQV6ImO5Aji81kdXwMhMKixdSwmn6sIMmHafoVwA8M64YaZDrstNcJS-yysxjd2exQHitB7K-WlCNmaVeyijCr72zOViNzR8YprHyqxib-cKjZZL6FOxgNMKfe8rGS_UZBIAUGJop-kYXhIMw3hueL8p3o5Y-MI52NYxxUeJamdblxFFNyrIHIE-yKtdHEAkrs4IgL0SaIPxqGFlqK9s0YGuCDUwkosDVjMQLhZyevKP-JPp5bGfxMKxRlaba26S8RtTlPoEDdUdbBrw_jG30NLaIz461H7eQXdjOTHQ0vKy4Vpumrco6KJTUcpOXs5UJeDeo4yQyvO8GpqJvsWe4Mxhr-Ntapnk6Xv4U-_Vpfh5wSUJRLX2nINm3MBIvz8Mjqo7TOjf7Mwx9wGuoOcNOuKNvofPETFmMkRrYjnkBjpoayczgW3GvdYqhzbAppzpQIdIm685SA7Cw_5zZ-aVRg7C4Yj7ZzR6Dqvg5K-2FdTKgwFwAco3vdfjkWkMDS6M5tzitgcP_bSVfnykHan-xhRHhyjBORcLmIx4PxB2WYClYFOajhNX06-3Lz6f7e8tlB2HMp83SEQ8GDSciCd450meXjoiFy0A4pdBRG11osuaCmU1147cQDA1fuTR-xCdNF9NAUH1XQWuKNonWJgJJqsrdkcfNM3d4aZg1Ex0uKkHT0fKyQ-SAI8n_azGkgpSv8Aa7ogy4UBgM7SjvnjWh9K2E8ihBKl6lHtl6yJtLFfUksOCHxoIPhZR5HNV12fv9o_Gd0MMSWw8c4v2WpY6k0c1FxgbsXQ3NehZ5Sl588qS53-XgedGAtjyXORLtRjh5OsW1kxmMKwjnLw8IVq8kRLKlMxUCXk-xBj3r_u1rDGQ2AK-cldRiSVWFSpMJglRyuIlTiOU4Vj8Ccax1W2D3rqL5T6tnPgD9QVi6eMCzbfQqK-mXrfHfkQ9ypsngzncB50XN1vYE_6cKyiJQYWqZQP3Xw7hDcUxxA1O8Yo5nRFTij8li5P7_uEURRjWWoSFKFbNWI2vvCma9rmpUMlmT3JRcyThZ6XYh5nyUhdBZnvHKmEUqa2b3G8xfQMFg0f3Wx2DG4McIiIty1XsFjXcih0FBkYtIIpgscd2S7GBS9SrcyFFX9G_rFu4r91S6kK7erm0tAqw50dMRhzIZKTdHNeiPPeDGkXpMyMXsZ53ri86dOyBmxvqbE6sA0NX7TKg_AdkG3uQRqYtWpUGwWwIFsrS0x1br52nrky3CWLrXQse9DjO_OsROWnwHFLGpIVlfHh5okL1AnXH9ZzC9MYSNhX8mHZ5R4GC3HZeCm5HaoDzu6EMxWpmANnTbonfWFzd1tLRhq1gV-GHm_7qhltcPQYJApBpjErhZhVWFRZ-8zTZwL0vQNrRb5_NG2sGmUy5fwZpEwRPRHmNfE1BDSXrBm-H-rlmMX3W5qI7Ty_UTjMK0l5AmChYHgOCWpoH_1hRTXwAsMvJ_y_lPBVKxztlduMXkKhz643KMeOeDpWXAXujCjO7u-5enwJcjAQ_-RIL5dsg4i_f189kvBaokSScQuzKLamCBYFIOPfE9QrFUDCyINaXZnrOZfZbN9kA28hjE6RsxW-okx3dLx2WJ0kwQ5pI0QkZVx1i9ZW955yp7X8bOP0lXCgmUhpDs7sGrL4BfXuLlYHjzNq-9jfy8yxyIG2CnSS5ZKSTlKzYhJZ73ciDn5mXwi0jyeMtBhHc9VMutUe8fYVX3eXy8X-vJhuqsN3LGupZ9fEuWNBCJ4L9nFvjfVzB0CmLnIHQGMHc6k9Fe_6FByW_uCLoh3STrA1PM-Y-kxIHvU5TzbgyQes7Nb6i-kZ0H39-zveOQ_QLYyhbbyDQPDgrr1y6qa6ph2AEtUFKsXubuyTtMf0K8C47CVOy00usQ9MDYOw5L5dtvCOnbnKK7mGw73ntoUYdg-ElrwOoGhdbyEimYci7m8s7WvjcBSGhsGjSMAAscoNE5Qq2NipT2SG7rVTevwlwlwEP8NpHDdDL5-dTaA-leH_bWhlwC37XHZPFmgu04u1T4sijWJ7AyW1Jqrxf0sxNcsiQFg3D4FNI_XzwAEtQHbNLctC2X2ibz_fKqa0HUWnSdQuiJyyY8Les06LDVy1mHJn1_u89Adaqgl_GqKjc7eUMiCN9ROstEBiEwuRTqFjSQkvGzjyYgW9xzzUYXkgBJQytzII9DmdK0luyxd_FUn-PEHOiiyKAbNxbaod8yXsvqx8ont1UAOUJGxK-jYL9xih-TpQ_lvdv9zKsYlTVyyGExy2r85gTBVBPX1J7KIlk4fmwLt-4CzBPsXuDsWZNQUZlDFBANgs6ogSXGQhFI9dmUzqH1vpBXACnvrmzOcHueGnae_y9fvtXbIIy50j3bGW2SyBheHNHrzMoofuQBTF4e_Hc3wGnQ0jLbPPNOXe2RXk5pl2T4P4lKR19lwb-4sucfx9HiFdWXCsfJ1ZdCtEIS2Hg_4Wq00yjrZjt8u6TGJjmLJCIsxNbctgR5hSh_QgvItWe1xLXfQgjbaAqxTnBFdZU1xksWnJn6dZU7T22px_RddQSro-xUhcOP93Cim58XayTrhr4QhxqNF601rCCKLy_pZRllObjZ8XEg-G4MNDpax9WZKyT8Wd-Np5ShtTXoKjZiuUJLAhOrGB8CfG2j5e3hwE50sbTlhBtHAJPPI7qr7UxsI2-XVoUmJgNmv9rwTX4xiSBLbpFCKW_8Uew1ftJPX8Y7hzn4Coo0_zSrq64-VhwcM9K8s_onm_BtZzoOVo4al8yukwJysktRtKZSWw64prDJZdXGVHVMmKTuLFS3IEYSyk7G2STmZlamiVRhISDEAAsnJORU3SfJyrndFodz9pSgIVOhW3QKxjiYIuHSF7AW_3xtI8J7ybmsCnNTzos2pnp-V9RSHwr7-Q-zgeUBw3xXw9PDOFVn31_bb0SPvFZuAuAARD4MdRZMtGgUAWUHdsc_TZ3W2ORaKRKrVmyYXHl3l7bJjzYcUlNzyJwB9gWOnOMiZzDsLk1heoySYygANc0bNuTWZN-WYrMvkTTfwzd7FVQgB7pC9xMYvQY9AO_3z0NzQi3HS-IaZZVqbQjGswzb43lTiTSFMuGtWkaoxtFC628tQnr5m5zDTLCMorO_npDAAy5RtEXVdyXYVMuCO4F89c-5gFZsmnM4EJqzSIAjNPP-WkB3tjLXgj9GSzAuzRw20H51rKnJR2UQOdq3nsmqJ6aIZ2L-UaRJ3Evy3XPpkKqacxoUkSQuCzeSgv6W51FIiwAZfej7EWaK4H_5ReA-wxTrJXI_QA-FFVBmu7yvrE9GNXJRJVY3O-LltBT2IkH-OIMp3Z_o1iCxL_d5RgWfkalDI3FrRyK0gr-cWsZJRlYPf3KMfpHAxQm04cldkEjoaMUv4FOsNthp1hgJYmeB9SvoQ79kemxqoC85-5Q9afx0SGyejzMr-cq2yyx6ZPNzqwplQXBixL2acSLyF58iVz9XqNBGHszhAvsqBDLgkz-DovTCpVq9lvd3bSKkMY4T9v06__6hqWsQb9FTT2_-yoCbT9NVKDuGcaZiCFtzmTyqv-VMnVQezo-4ej0Pz-WelGNVgWzKTcD55a5VSaKUwL_jSXtWCoruDWVLC-scre6qLCPzcvdwi6BW0-9xUqUPxVOBGfQRcGV9MR7hxDvrucMOW4pLjFG-HnBC4WA8QEsl2yoHwaT3zezs2-tGXDouvbOGTsGaV8wbca0i6VHyzVI3-_nP1IgLx77q-_FJCEBvgrlpzJawpgYYsGnaGSiwwgqR_7PQr7orwOrBgvktgSM-c2DlZ-tmZjGIgnZTcBOp3K3fkl88n1aM_hcEcz4dclr0d_LxgJB2_1QQL-qmKNGfBl3-edfMUX7lHBVr11GcxFXfOeB22dxKRg_j3mhz9KN7md0CC2gRiJIzPdp_4X39oMacPOzN5BFdfzWoagOXirwcQDVRCV1-NaN1XuexH0Ds3RuoYGkQQKmZjgSnF2wovUKpunAwD9j3OLqNETjlQhndNIj76_Q7-xJAjS6FVUWaCMfyWzJK_V-15NCIpTAbhuQJaA6v_i7PRvhHum6USY4dVlYhjkvEYRnowJTzKlXDqvX56Www2EkveMbEl_7K8LMdKU3EA4ghtCl1HGumdeZro8k5CzAd3ncbyEDp83wV0_i3dQliAhJ0nVXhfxf7lz91vFZZ1lrmEwfO9T2_0USSvtxY-JVSmA5_khXVjCsAwXGbsgi34LhtKalPcH6P3LQSLppUZxRsg9teEcJAmh5CneF5wuuN6CplbyQiMDso03zFlv-1E03H2ierxt86t1nZ5BCchosLDbd_uEBRVZCXwz2USu-FbDf32ukEtW9xQ-RsfSzg3ni2bM4pf4Xb4gyDZOj_1vwXMEqtRB1Lcj1KYSDmCnfKU96ckFXtSv0-Slmd6xPFPzR_vUe1WRMvK_pBUlTnRpXVZBaC-OYhw27ik2OILGwC-295YAqyucEgbBo6ysUHiV2k_kP7dHnmMuuEa1-1futSTO6ffnl8Gm2s7rcbmm0xrNXzYtTS3n0EZ1RHPBMV-vgdYGCRg1eZmIkcs4Ice9eKIFUkwZOgsDzNrArRKuKbhNuwTlb7SXs3zR1Td-oIAuoeEZ36rDnxAU4jrfC15CW5aU8g54CHTWYoFy2bJQp1ck39IecXENIhEsAuVdQLKmZLt0yNPYXVQURKgyoeScrhqDzrtjxh5Qwog7MIkfz-EiXv6s4HXwYWBrgZnsZiQ8QtWCMyZaxwW1Co9Q6Cc9jmT-fgVR7TtD0zmBOg-luT-FyS1uLh1N_tjZjccchoHwKd1HgHcj0TqPhQWnO0QeTNn2wQcqU4qHdlLRS9IBniakRnGv8hnJPhaeaEU9JxRDci9TP1l9i-vyLJpm6xGx5LGLaTNtmCYu5mVb-v0euW0_h_O0UYTnewhsxGhjMo4FCHwOQ_2Fw5xqmGgThHq7ssaCpgBmjKyf9xrwPyu0T-YjJsRZgnpc1tNlHZa5YlD7MxBG1rzz5RjJ7_CxCepir57U2NU8qMYWVyKA615hQGXx7v-cxy6wfxmC3DG1fIm_-SsXVFYgyyYqImjme8so7q8LIBVv69sLxkj1Rbx7lQIWQjWFrs04O43OKIpEKSq7nKOU6XpNMk_5bBS5mW-Pbsuqj0OOnSfrNYzOOvEJubUZLhUgw0S4CHSkGgzUWQ2h3LHt_Q6jWN2t55yEwwvwNgJKcN-w4tzunHS7h_L_VE3ECsHFRHheJyE6YwnszwnXxrc7rX9jctSZUUfwqCcNXrSNwxlD3U-GCxaQmiVw6a7PlAFORIsP1O1x_M6BdSsaabBGiBMwelh-mUw3bFvL57JEtQgOdkuEw-eVVUxr0HU4OfTjRtg_DwN6D_6Gy65qDkg-dR_iNYmVSN34tLlwyUSikF9u5-Nhs32X2ieSQauzOYDEpOsf78GtUv2imWZTRbx9vFeD54MdfG6gESWHHvT67mi-iETjCv8ILeRhH3yCHCXI7F_O4b4n5X8geSCh6xV7J3hJLrD9QV5BTuyC0ioz4hKk8B55Z_6U-BYWX4sRYRehXvYTlOatmn44OHLQ6rE0bBXZR-AH8NEExySk8jYZEB8EN0vkrIUsUrNjJ9-Ki3N845TXn44r2oDiQP33Qrk1eRFmlJMEUJ75gFUrfnd4pFhZ8HtldaAXnBDnngYV3ehT6R--TtyE9BewObwWLSgAA4FA6E3q06he8tarXFjy49D1QQ-FU2p4D7DVediu0KKNaTIp5vR6sj5BfDo5TNmEGWZXBHHAfPopJ9O7f4wcrzbXBzT-Wby2HhAw1z_I7HGRrWkmTyUMMvC-ixt9UXXQ_-7qX9XtGdEmoFIQ5q43t_NerJvqFNOX4kua6IyFflGKdlC3UzsiKNMQ6BKwixjWIaQXri_5lSio81ACtIcRbGQngR75ikfu88sZEfc55vLIU0RCEejF76H5EJWApLem9kA6TApFcMnORJXPzQY88obaydnGO3cVkKblbnPGQwBDOWO6zkT1FJ0Lftk2SmUIw_TjAmX7ct2upbGDExXvjY4CesESm2kpXSyOXYHslquToqrw5IC3aED1OyoXhhHrmTyHNHemCEIhb017_eq_IZ889UiCt_dM0qllgcKEicJtyX1mYVyKl_qRW0mIokjsINPeVpbhrstQl-K48gBZOxf6K9WUD7BnijRd8p93rEEtIQ84A0ZpXvhLEzalvaNqKHU2zsFCudMrIYZWEXiV-SLayirzMe4P8-5aja64b7vlh1wW3dgknz-mris_JQ4CT1k_dbBvNMt64L6tEg8ly6UvgaYjlvet1sRy40Y-UwzHe53PeickRmm4Durxu5xRMqphePrSGjMG0EBbBtToyFyR1KX7XdXeXSyzyEbJ0FJTc_0zwVFR9PuVk2JkbYwgffiAJgrmLNcX3eofMqghrrST-R7vCD0OqR3ILqLXlJat4_sXBA349Egci7_HfaKAdrwK1fO_Lgbn4xbRCKqNVAPq-iegJUDxAMgFaq96iWp4f7Mj1eFzpkHKss76ycWa49qUQUh1w5bv6M5qSBk0hA0dPPqOX0mApDjFD4-qvbygfcaaWENYFLCzZXqWsJgi0k7krHr_WhVNyBZ5C4a8JmwsOezt4-YDHdWgHSS5GA4NyyI72fSHHirghY5fDZCn9Qag56CuYla5gUngEmchCF64sviVW-mtivAbxhDPhWz3Gr0fsC32SWuN0ntcJweeIZJOL0qjWMl4TmwZJFIlT9ZWMgerlBBk5lbwUg2PX6BR3MPP17MP2nVIQGpEnAXVHCM2T7f2yVDc9THIbSUASlI-imG1i4qcFnyuViGg-aMfiy82FjRaRUMkzsVGmdrrjpilWUtRU7_tgXy-AZ__3QWMjwmY3SHXbOMqjAXIteT82EaSXEch92OTZNWWgfK83E8Y0uFUgNw7jYBFYDXBoV6Fhv6N6XwvV811XdZISgfv2T7AekwJCMraaH6nOuvgAd41TFrlYfezRdZxU4vT7kD2Y559BsTQXt8utSCNzxC7_xGZXhtifK7_C9xCL36uDuR9DPJcHOP20lrDTAhR2LUhR56_gO5EFvxubKPVJeX_NQVbWahT_BzklQzLkGNhGM-JNh3IsgI-LbaAIhBKZr5OUvRblXSmPVFQEUy1GyhKcvQGZSZ9Jn8EMe7HbbGM7eqGjsGSqfMTsMjBoMPwWpzwBqpsSj_fMh6moG3QSs0tTfz1KHmwwIA0HUW7IT-UXT7hzgZ4kB39Abt5jQ1pQwz2LV92yN1MshElssUMiPXcjzepfXxHeYTLvfia9P-kk2SzaC9cOq5CJ1TRURXdOrbHxrSKzPB3FIeZO_4-5z-tNII3CwKVNcrnqWbhb8w-jpZ1d2vnZsWA4_w05iuz0LHa_Y4eyvvyxCrJS_dTQw3LukTvs9HfMZLow0aLFJlNR-ZzQVflfWXj5bGGl1T-aoMbq9lxauTgDiax1hfEdf7EqmCYjZeorrFOCfqPJMFj0QVXpCzuKgCa_ohPlMNFrG5iQ5NJVPmUAbpn-uBIvk1sGCRTRuikkySn0KngOryjgDSVPDA5n1K1qdAkiXOi9K6klxhh8w51CMq3SqSap5Kvo1WlqIcy0vbxR5uLMoo7plpCECYgPt_PQx0A5oLpXlhr8KgL5D2YmJcyTxesTRnn4Uw2kieg9Zg_lAIOrZQeM9WylwhEw4bmcGr_r_rG2C5RvfCBjl4FlUNAAy_YbtTo3sB-vg3FU5ZP9xvZIG0SwUJkACMi1ONtYDKOVFzhKbqq0TMMEHyGpezgmdHl4tTYtoGecYGjScnQCvalYtmPEgextszNGWmZdVbwKcXpMOk-NGjafBvbnlTXP3CVm7QxAWmy6DEzzBh8mH2sZuUKp9K_sd3otZRxjRrvDrUAfM6aS2hIRbFka_oljDXn6c4vfp8W1-q3U-GoZRr_Hkrsm3dC1SgkTXRHXtT6hDxe6cOqBhAbcg3OryDtA-LYC3vpPnJktIcqf7q9OUqG-5GMEniB95PHVqLH-Yej5Xb9RnREHk4ptxLKf6fOXrEUFolw7D-6G7FbCGQoUEXJFcrfpL1M7a_e-331vHvFK4l8do75m3bGA896bA7RDjK8hgwXfNjkTgwExadUIQbaFpylTKsnbPNIZpET7N67sJQfrZOFZqQUUZNkH0g9jFresgvwQdH9jOEGDw_GK74_9w_eZEH124XParlPRiZvJBeZU97ykb-K6xpVY2bWJQjeMKZKB8ZrJBj5qEF2fRalGek2OY_opBuJHg1QKNc5BJWWcVleqQibPICZKM-vnaJTZ4xM7JK8dsX8l4iF_3oYoPNUPdBfggPH3-3Qsy8Cs9k_3jGQm5XHeJ3KkGiAq4-ZSTOOpBGAkOHID4Hmd2XNd1Ia4WqlbaL9d-JfeluEHWdnnQrOPVRlN52z_9aA8AZYG7l1sUTYGr_dg1GuYcHp2l5iSxnucQxkgV4LSZ1Vn6tdDmhs7vHKaFPZpHjrr6qeLRdHCbUQPHfvE6ULIKPn4VoEJMfhq3Le-bWLQbskNv1yQI5aqzdYfdxZ74G8KPqPyCMQvOH3qy-Qv-_DBkHiQbX3TorpxucE94vhD_x4bay2hz5pn7LqouAsrflBLHJdY84HssafwN5ZtsD5H59wGx-8yTGsoD3iSN6RYtgyJUG9fsSWCUnMVtrp55eFZd6BvXm5WJermD94ZHgTFN-kf_H8U0FnHrdpgG_KaJbJaN4HMMapqycestkfXPC8s5OKIT_Wjz0fFvd54GKs-FlcnvdJtgW6608KQPXCPdTCi3Ib9rHUvLKF7KY-upkFbJTL053qzv2mFR99nLDdJm5Dfk8ej3WC0ANbu1sby4JUthojz68Im2sXDN41yHwZan0xbFygnODWrjUArHiln3LMmcrzgwDQzpaiHtfQXbqIVbFmEocQBiLPtYy_mGsOM1o0raus64w2_y0kzWVjztAMrnHMbKYsATiiYvYWmt5v_gqZ7oTjoAk2zHDCFXrm9s-leF6IyHUriGy_wplYwPLp2L5egqczJmu0zhlmpn5hKl5qulVz3Y20hrjbEcbYKK8OJxooWpLdaHN5_61RDFX18IejU1h3tL7h_eSXmYH8NHdn83Vj5AJe8AGUn35QVsSSJycKz0n3qEHFVq5ZVmvWyNPRpS_AMEZbMrUtsUx41GYE-xHKzEGnZcD_oLnIzrNhbQ7-jagLZRkBIwnITQpBpIKKsgG-smOwSPx5y9kVa0nwJTGh0cYqRKk2EllkeS2LqAIwiBopPloRweauiG1FzWpZ1VnrXEV7jtly4aFqbcS8Raaleo811loMspgOjqj3MeyZUbrt4uRO-QtTr9iMvUuPwGcR0JjCnW9UVBX31mx4BE8XV5paa3fQVyqqzosFF0Mli12fHlddRechZ329rLTJPtMo2IkQoZPndtKGrX1jY1mGysEhGGC-rnMVZkFNnR-hVKdsJhzSIy1xp-6StIYlJVvdCzodyNAqR2L8LiUlx6VNYfjIvtczlJyPkZzzNYrVwMEvdzPzUwnWCltnTkGhZz2wAsxgzSrkAW5qEFWo7e4Vivr0yjaWXD7_949Jg6-7KoaXU8dsClfX0XPkef5u2GdLu3ChTCn9yspafLvmCt5fMMsd0oMnCtYJHmWHXF0M6W-6YpqvrZxoN5evwd57GdAxuvaQgGt2ZhOHg66BvO-8w2ptI1AugdF6Qx_QBAbrSCBEZYolCXjn_7OOABnmY0Zd4HIvjxDH6DbWSOhGN7CCGPJ0FCVwxMXgvtz8pmEU4sfHG_1mmTXty67eykSaV4PhEnBv7ntGwRn5N7l5RyWiJq93tsOJfxyL-JzctB6h5XfY1ePPZbXnhA2CeSH5Z3Y-8Se4pF28zPH4gkaCraQ2OzlNT8AYMbElJbcd-g49nmk4BYYRLfPiWPkLkDezYmZGigXEBOeZwEPOl4eXFI5ubK37gIPnJ25jIgOR27Zs1vfGhskN2g3fwYi2OXFSDhh4EGKntT0qWuNExYOYuDZyL6jfwglS5huFjWx5JwBR7zBEVYQAQH66TkBscT_rsd5SWvBxbXyyeeHR_yQ-Gx1FsQtrUoqEFicCV7FStzYlmoXF8Pzr1j9MGecZM6h8J-3DvKH6iEVSb5sKnhaTTR4lxrdyECBwI_IIAd0-RE65zFL7d563GREfOEsWCm_LFZkGGhp5JxcZwUc_l0O_NcWvKDmEopxOWtWTPrg0yOuBxHICZBJBjAZsJv16RKi3z0rf1EbK9AiHxWeqEqG49ypOgds5YVkn44LysYXZ8tG6y8osUaNPsFQcYAGWz8TlGyDYwsmk4_65_eNgJt95czBDRCjgqzwzx7KVRd9jjR7NL4EPonwbNDMcQEibPN990PmFfe0MnvAHhNJj40WdB7Dr6w0fEAbIp0spBAd2w5oaFPR_-n61HHroTaMtLE2PWiBQXV47rRa7SJg2lVxzFd62W9mt_9nekmLvo66YMP8FmDEAApnewgNbIYCqm8930g00141kjIHIsEbTNSAVJZ6eSHFpTcGD2t8lGRYG5rJb-zcPtCgRQbpEZB7vxoZvb7zx2jxhgPUlNCjfkXk51jatlq0_aJA9lt7ytX_EZEXp7uP_74aFNAylmuOSC5L81Y6UIl82ofy4lovCo_HnFViYaJ9In7n7R3p1b8JoEeo-GE85ri-6Nm-m7eS7HCRufAvCF3c9Rj_w_SHlKjhQWdzezT-w0bRDMyzvVOcjIjO6DvNouTGfhbkZ4cmmMnymIA7NcfBptV3g8X6YdHvmnRNkRMdAzC2rXIUaRg_u73wVaprFxLD_AC_nG4jWaTxuPYYDBudHdE1tNnG-inzTVcMN7jylczgkTHOD0P61vQxQA71u5DAeLUaI9ORZfSeLDNNNt8zlKFdvcnxypH6Lt95BMlADizq1h3xkKEbnERseDfFlm2Tcz1n9OdLHEAznUa_-mHormozF3yGGqFutHFxY0NcFP8RD6ddC8oArC77fN8-_dxCFSJ1US2TofKnXP9N_cYUbULTiYaH_kSTf7mGTF6U8BUMovhMaNFKlONeO1NPyeNYP1d1nFXT9blu7UDIGWMl325ysgUoyY1DKjKyTBxw85N_BaJOjaYWY_grHS5vRaQFdMQTLQYsprhWAgr4GjAi-tOWJz9xl_J_0XLUzPtO6OpDOJwKWX4lVcN2rw6iXNjCuTaLcE9bAKudnRAXMsK0jHsY0faPsdcxCEXRmx8TCsHigUVVdB8ICACxqsqetPkdtziNc4iUbC2AROEW0VJB5YNBW7Dr6qKPHc17o2wM_Yv5bVoxiSqC7K_JVYhdCCtsqo12Mzi3IJRaHMEO0a_gX05tfeQq8UoTB4xkJ_Azv1GMqq9viPS_2bfmovEZn6TCuzDiZvpLsjxQdjOC1DVBpjHyuL-5vXeY2CfV4XTZe3Pd9kV6wJiPoQ9bCO4lpQEiCjrco-4d8ikiorjMAAzqW-5ZcSm_u9ol1DA3CMKa0w3bXi3k2iMRK5oXJKpSADR4Zrh1_cvvf-WWH2N8PRgOHKa4as0AJkO_E5A8F9X8nak4PriaJCT541uOO8GDfFLGUZ952jgSCQfTAynYY6GKKeqR9wt7pBjMc7VpRms5jh4DNpQQp1uR8mc85IyANhVXXbwxQ1l2aR7PEix7BnKKfQCC5ScP6kbTQedCu5H87TnSFWLKz0xfyMIiZSD5zRKMvyAAelVtnRAQg-UTM-ZMiM8c_UPxf3Yn_sC-Uh0yeXXN8zZ_8OCFEAuvdYuC6i1dcDkUXKEvetUq-lSCwt7R9J3xoPyqdv_g6VhJ8cHTCH1Gwz_oP-D7iUuBApFu0WsAeI1NOQhdnLeERQMAbH6WwZj4kAOduJKEA-qy7LQJHy-OQu0AruhoRbd8yfsJ2ArrDCel6AcUksfxXKqGDCltLCttnt2EA66e5IhkPjI1Eq5ATBL0VOoMZzEF4g1vqiP5Yxv--PaAW1sS-s8VBXF_VD0QXD6EpFjOHEe8Y8t7Nkdpg6KH3d0i_FgAAE1grxfS2X6V4HGrHxkj8sAygbz9nXovDBjIDd41hZJYT-IhoHTk1vRD7k1PuDIZnee2KHqcFT3K-A9j_YyH-0Cm0f5arml1q_NdtMkrRntsausbR6QI26opsgZTr-2Ln1JXzeBesF4DtYRp6b4JM5dIk217CxRzQQ2cwZMDftAKztojqCZU4V6WPjGe4FscKkJb0do00c_BkB2tMJjLHh4LxsCBDNJ5MIULO2cgQb8JIWgKCJBAdRey17oqPTnXPDxNbl1njEg-Y4D971r7boqVIvgYptM1y6JgC5CmBLTaqzXMTYruVRUTw4ETUHwtL1FrgL6Q_kwoix1im6LFymHpaPLkCpM2V7-15NXV8sY_0gh4DCssnY3p0Niobf7i47WElAN7Y8qg_MSfecYXUGWVzUHRJPbhxsfiwkmzM0k7N1WiXizeQXR6dVmLS5ChEx9FVQgM7zZJS_PUXv4nayi6sxA4mG2-zRhoWTL7KihIEfyDyVobpBoJG62xNQsbzBzCWDQaqBJNjLTsdGX-OTVaj9i4NfgTRWWVltDAr0j0JJVttPN-Vy4W4lLOQ2VJ09MrkFIJRKUm0UJptHye8LIHAovGZHbXvc_gH_Bl2WY6d03Uhx6-MmRia3Vyx3Wjzas4ip9HDeEfzr32AOGtKl1ng5Xt1IvjROg5PyoQrc15UFkMLaZlkJh8HuIH4FoXuU8685pttMXXrlrJQXu9jquQaUVVVruOcl1LgQSprzKTfbYx7w6TEjHSzAa7ili9Esnbn8EtTx9Dv2LVKxgf775gono8pOQChuCR2UbmSfGKQNqml9hk_H7HkGww2lkMv8-EEn-nToNW0WLaGOv-Bngf7Dfla4Apq_z3kLYJh9_D1y3bR5KBOzmDcsYe6jR0b0A5uv76np7Kii7RFE0ucw3ksnWiiNFlnnMnwnGcq9xJTNbQX-HJL6XVf2qV1PRuGcIb9R1sQxvavtZWR_qdfj67qsL07qj0IYzMinxRNXpdJprEsfMYZcgcLYpwQ5B02R8x6JoITOHkgpzWYbJgt7w6kEPlNI1p0JMoC-kHe4RGAcapZi9L_maK_NUlRgy0HQJ3pJjMfMjQVg08rDfqIayFjVK4UIMIk4UkX3-iHM39Koe9AnAz-LFMV0vc0Fv4rolB08C4o0eYZRgNbuBg8FbcCIXy623ELay9N09fN9Eco6iKw-6AXRAL9md0LUY4XmsQwTDxoTfwpLzEgaaNJcnx7CJ3zjHBpr7ljcqqh9yI4U1LDnS7HUG8K9agJiBpGsDSy9Wjn6PfDR-z2di2WLQLb1Cxi32XV79LSnxO7M2vujYibfXYRCo6ga4l3rOFIAP_fZasJp1XZQ-OL77-2D1p899owYCVKdOUzl0CCsbgSVhwoSd6mDEMQ8M0-5pvbWtR7cV3QIl6xUbjvDCeLByHmAufAZHVHgkzCRwX2kgEGkJpAfXyJ2UNktDtabrfVyjJPI3d1t5anGqsmsiBa-jFxtdqfwZQKd9cywk1hw8WxF14LeQcI4ydymFbEHVZCoWDoFN7x4vRGPBi9pLbN5_bxBlwQDNjxumIWEb3N2HUhZR5iwB2NUCO9-65sfT9MLezMzCaH2P5J6ImzBjqKShOHr1jqg1a7UgZAaexdMCbfW4AVYdJ6KV7pHww8zOv_FmGHCrIhYT64EIXoSl4PBjz4z6O1_BNR8xfFF1IgZhwFPfUCjgfUtdFt6bagz5XHqpC3nNSMLlDtcEj_8h86dAj6VHB9MlKe91GMxiDudkz_idTepHfe86LVX-R3ZRGP6tOSF9zJ2kmnCg7wH-tFOb1sTpI-2aTs2ChPYuEbL0vRudHajb2AKMsM_ccVKP-Uj8406a4f4JElFaf1dnryAGiTHMGbEonkAMdxpLRYndj4hfPE-OsI9f5xo1jO5ts9IMF1ci5LTHbm0XRBw4XxHgEd9eOHrxsBIpp6F2ctJFHmrfqdZpnM9_oRP5hleNAEZwfU-BjEgYGXjzD0tpyqnZqil4Beim12JMoeJqCgPawM3iCvyAbwNnne6p5idWa9m5O5O76ATgMs7U1DJHZFvByN-IMVVZ5t7N1naLq1s5wpByErkSGjrL48SpLZ5h5hQf16JwLsR75A0OheHa6g7o6TrQHUmLvBzhc0rLWRLO-p1xlWKpcrJS-rW7wNKfve52HOGw_hVhoanfoeEGGBBD8KC8-j9W8Wh563ZXZsydBD8P0YREdkbTGgHjE7Y7koyY0u0ok8Ewr457iNkde5WRGo4uAwfClHKfrvM9qjeZhrRmFwMipSn7dU7d1O_xGDBVMmuACU5iwvM0DUgvTNekXlrGAev8hhApAULMMQ1STw3BgyPBzYHY3Fjc6Ef74Z4T8iml5cUKz2VWVozewRV7yyDrVcfMcSULVpqMLQedP-Fpng7n6I0ChOIK40E5mQ6uXB_O5iZ4OKSj-edjXlp0VkdFeue-zQ9EzXFziEzoZ_SSF87hzR9QW52tNvcZD7CBIMqNgB0uMZ4O16TiRxJ0UB1d9ITyhsK_LNXkIV3gheC_mE_a7NjOfqL-AHBDwzq9U4FhsnfMxqzwPGd0_-YitjycGdT1NdPQ13gpWwqxV1B_62LSWHocg4zKVlBCgIRMys21frLN3rCVIKSwqCxWuI0vms5KHqipoaMq1aMEyDp9ZkdG68CD0JIljSWbVCapN-pSSw5rAwaByF5xn7kEkz3ZIRElqHDvoWfUoADQVBzTSFFSftquKtkjPXppzNa6v5_rNo4IxOJCzamY7DcKYKmVot0UbC1_pKW8VlA6lk72-Jn5uoaiufieY0HaBLlNLDmcw4_cx6q8rmHoLi7YOJtS4naEA11IlZM24nY9w5grTzp_vbeMeiSDtE5Ml3J-xZR2svTIQeGq98wHId8wOEvAKtW0bTUBkk3_9jlcoR4TkvMWz9ni5Ygr7C64L_jsal16hXLk_IIu8p296OEfpUdKbTpL1R9-co-vdRGPrsvX2GG_97b_yGfCRPtCb-rh1o1midg9f--Ct8UiI0mbn-jEBYW6UW9NVlivwoOPBgdo-3kRn1S1RbjEk7wzdkrPhmoIU-Axm5mEPPM2brus7hBGzL1aVczRkECBth4wks0nr3iBjqOywtJ3p3VzqA9Zgn4v9DH_LtlV9BHoWzDG_Ocz6Vl5yN6ZwBMpFj-OElL6KIj08hsxtP8Ppn8rdCG5wJoBzl_APJmJKhJr9K5_zNjBWA_DViYSe_d923urrpVj-AHk11x0t0MkKohrLNR2C5lpvkMldybU442dnXHjRbwOdP4XA-tQWilrSg5gZUeY_1qEleAdGtU8jjr8W4AUK2uFr6jHaxmm56rc4TRNyanFAImFlGBCPpZw2fH6zwpveSxHllfpuPgvOM-3ul64lAk2YDsXHNAo5vCcfiitzZ7e1xiTE0u-7LG9MuGE5CYhQlXSJcadn6CdwNjWHiIIpgHtdTKu2AmOr7ZYgz18P5wY0YDPUKLpwt1ZDj7Is3iNooCm2uTYbTi_zZOYIT08bUDkB_b4PKkRH6JRWJIy-Jx265RbZ_fXCsE7LdAiowcvZLc8QCdG-jWjiyN7XYrmu-YiKm5zdjyAPxqoUfBJOh1ZmQWZpwD6RdcpAUVcY850CuiTxET3FU_x7-6xCJNUOC_defostmccUCDfZabWJZhh050nmO_BK8psUf2bqsV6JRM6z8FXO-tbLGce0OJpE2KhBYVwZywyAjSEh8jgBcoEhFKJXZzij02PxTggAffosC2wAS73lR7qtMd9vTUvbJj5aiK42oHk6ScvdqqvQLHa_sIZ1jbnhmbJcWcShvyacZnzKBmXgNSYIs9rP70la-D67r-TH3EdrirqKcrO_PBaBX039lE6xkUKK7vSMgOPImmPbYaB5MTejFWg7_JLKAeu-2hReSCbh4uppV14C2ufI6-gOBOfAhf5ww6l4VtkXXKptnsxQkFWaNEYdwE8c2k6AxKly2pe3JY9rFdXd5Q-zJitA75RKpXDrQF-blxQz9BvLzMuCpAT_68-sArrDScUx6laq2jZ2sTLk2Wmpyq0Kzpoh43qAxVdc4x1s5vYjw4fSSDfz8D6rPVU_l8ZYn6nwWPmf7Z5BiiDGU39MHqNw0LCSdQVxeO602lW7VvWvwxxSTc3gnXIIzkISODNj0_YrnaY0dGbbF7HTn_gJDUR3VMhhf39DVWIhGWYfT-v28ChrNm_Pe9lMAtzomXKYTpa51BUZ907OYsQX1GjHb0A5Igm2tQsNV1nzX62sRldcugWsfOom_T80wBWU1T-j1lCjGMCNHvq9UQT3lgJRVaX19gqiiWB9ZDNFpmL5RNOGv1gCZfVbrGSJ8mToFvoX9Vc9FpkW9M_g_5yoVf4wTSRKFurD4wAijviJmvSlXTWb8-zrH1R1z4u420UToVANIy9CfM2YGkpnFnm5bMu4OCUDeGoloWGWjViRBk5HvMUY_3NjrLOwM1Wz9I4DoMQlB8rr20tvPI5y5hB7D6mNCZf8KCVg4iyqC8RHmMI-fQ9-0WuZ-aITBwlKd5tp28mnUpRX-JL9ppZ_OyrNCYbJ_TrplKqNbWFKuc8UG_LCXPpG-nEyScNrxu_iWRVNZ8exqs7ZKvCLIbXlCJUItdX4on8s-xuaMqu4_dxZRbSc_PXn2JcSRfDreV6IAqDXE87t43bfM69tLJ16LeQ4oI8CJwsKlbMY4GU8flRIMid90MEXrhw6PODRCt4PD8nyVumoxIWf6Y7hCuFbTAhhCmgtqJQt5QVQmVIqva4c0lZ1a8-n3SwVp1GyR8IyWLfHibE9avgdYKpGDG2_Qb5OziBtix5pJmjF1CFV91XktF94shCbb3kFWz7u5jGM-ObSTBIti8keL-CYVAP7udX5vng6S0qaj-jANdf2ADaO7gGWfAEtjnesaJn7f4_Q8E4DFpNCpMYy1Aot1C6_PBgcLjUnVno2V8qNmUn29riG8cZcfybK5bpQizzOM7bAtBUwvP_Ompbi_zshDouirRf4eeNlxRZ2LFgv8yM1WvKLX63fK9u6n5Vc-YhDuWBUMEKA8T0NEHZCUzfLpHhyEgmfnPpyxF4p-z85WbWU8Wmus0ysN2TKBo_1HXz3LCsimXu4kg2VNdUr22hC8hha-2Y_2CekYn-gcKqfOrW_ef46BM3k32YvcSq1kzmSsMQaSpopLtU71hvkPljv-y7E1QACfLteEUxkV2V-HN5rrLUMe5PBdlUGJKvJku2pURDo8lyp8JTQFh15fCWW-juxqdfjfsnZ3z3kajE6b0j7JRSupSuiBS5E1cJb9TdhL5aZ50A_3wMMMRWb8Xw9moslrjuBwmVVDroCizC-Zw9ugB17GA_47b5wheuopRlAxhiZ5YZ0jFi8Q0FxUn7MrWCN7SYZ6ygupL_UeP83wefwFTt9nnQ_od4r-IhphtmpofdofG_O_WWJHTgjPNyLPJ3CrdS8WxRgnsQqMyQGYqLJuRXEOtuOcRNMqY8XTVF6R99xxTLQTHrf90Eq_RL04HrN-nIBXgsj2YdG_TADXBIYnRQvAQmffqUMFbDxhuRd2CPlLS-MG_bNqMsyCW6PLjcrQY1o1NQqsfij9yfbBEzOhUOBAu3d6LvypgQefrqK5jqJOE1GnwBag-2trU6Aw-lyKf1LXEu5zH1UJlAUZbRekodqd7BX8uKQHtrmGXLJcO0cJxzTdcIl3FrbpbHmfZap-bHZRqQFw_B8jqLwSwNEGVzgs7FFRRbAcJEAmHZSqbGS_mWxpp81yvqhBLTMfChdYj2u6Jyemak8Br_1ql5q8-xOw3_fvmE4f5zvX1gBRoquhdxGpUxI2LQDr2P16_lqzDFasMRVhmGRyAoonSFoleU8ID4ZNQ_hvblKNoy28HzdCBQVmaFuZGbPX3dp7yY9v85dxUbgBD77qw0jYYd2BF7OSc1yTckqeD9lqDfVDikDwboMBdGyZcqWZmu2fCmeDlWqP_w2iyy9i8K31TrXKDCU5c_T7k50KcJ8pxb-pHrUvRq0g-097dUzHgmJTu1MkhBsv2pIrAX1QQNhyYZP76ljIifYpnzb4kzdc57dpTZDBiidk3NxCurMdXiu9oPnBjlPBGETV2Ng-VgmBqXQGqiQjbDmtCZR5PlB6bvKb_poYqiHoKfFwXn8Q21_zK6gdJ19KG6YjPjSD2IqStsQQlNluaoRWNNSE0u8AcRpkGJ-KbyxDNywKV1XQLgAvVxXil7yp0s_dMwlfj-mkL4e8Hy9VD4uLUjAaoIsEfWROnRy1OA34r-QiWKfaPWyTDzGrTH8aLTgpQuJvpgyymxjOBI3oz8RUyvWQ0-Wqtk9ZAhLidlpxeRMPtDkzvoNL0GY4CwUNPvrJRJrnlsbn9EQaqzBtABHsA2uBydvJVh_DaC5xPi2qYw6IqROJ_TAucf_8n5oQFpFxYIL8G4urAEey0q_78n6yXA7Umn5Qf6foAVyIB_E3H8JKPM4TbnAqJdZDMcovKLpMYxYhFnlzyKR7LSwVXtZ69oh6Xif0wp4BYD8elxti8pdYBFCjiimz5UD2gmcBqLts0ny1WYOF-2eoiE-XPo5GkT1qb7e2897x35jH79BHng84cfbCyxzBY1cFGNhx2aQQKfQ0zcdHSB9Foh1h0Eopk4CCQr_431kf7OtS92k6pZCg0LsP4Vkbrdy0ynD1TTNv8UJtrOsn4EHpPmriZZyCsidUREHT6E7NKCivtrelnUaN4wHGwfP-Jjwev-DiKOqo3tFEiWj3aQjmlD8pMkokDVclAHV4nVEUGeJ1TpWRdOMvXfi50JBeuJD_qU8XQX4HhnW8fSq4fjTuo4ddkTUiIYPZX2eG1MjWVkWwoRfXjlvhRfm7A3kavulQWM4e3ay-_NgqFNaBFrM38RMfITdSLWA0onNYV319yRfXVr-GHOP_zkC4w2ajXj-Lyc6PzDAeJisoONOx5wrb0N2XVaX_k2B8txhZ70ebI6YNkAkLOeq4WwwALQbLvr5jW2SpBUFwc7b1prHuPgLqantmnQ_Ie2JKiHoQWS8UKtJUJMvjHqK_E9mC2Sv4tWmecSo7ewjREM0a-S1T5tY00cQbYoFDOGL3_oKNYsDJs19TSEw4OdLOd4YxmcfMdJvH56DGFZGHzm2h6butfy2AMWVFQq83ZDyyW86gOBTJ_v6Cd2-AcuqFDvGluqtTTIgkT3HB1BXrn72ZOz0hjYSa7k6_7qyYBRtn4U-NUi-NvHYC6Ppx89rBbXn7jLvlDgz2Vl4HhszghAKzcSXqH7o_EBHBEkxLMKTWAIXbRtLp4dUqWvOg9yKNVS65VBaQBBJKp3xJdwXYhYWEnQh4N2yanjH2ti741b20yd65HW1UTkt3xyFdyZkU5oCSU2GOuz0I9gzs81h_QJDkzo4i8Utzi6DOxVxFpcMeEA9E-B2F_TT7Iamgi1x2_9TOBhs80UVgUDQqE0C1dJtZPEHg-HK40Yes6E8-y_7imX9H7RaeZ_YSw5ERUYqryd1vNZNgeL6K4irWNaVgGyIWJo_DdHvJe-cMusRnF3mMpImLd3ym6oto8iKyv8VITzgwgaF1CTa_CHScdiVJPVC7OohNVq33ZZBjbYgl5AX8Oc4Bu7ITYLkP8RpjI5A_uaBBHujhsTrVlqbgwpK-j9-EfxJ7GlizXG0YTiSpT2AivESNyQYWWhubD3AZUV-E-j7vj-CV52yLTZvLwRqAKU5nEJb1HXl5cxFh3AQs-PX0rkpvhugP7UWA6J-kUbsN-GL5HyEraduXg5CoxiVlDKbjLam_NpPNkSenM1Bdh0nVaJKYOsTliNA2l_sZNy1TXV6AD2IfbUGB0_QXoO-1Q6amWVNl1tY2NExD5H53zTVG6rQYUDXSZc3CdwPye3DsHwJhWfYyXKxkb2KWvDsg7XRmsYVee5MH9TqBGYz6bkbD-QC0HqdCz2Rt0cRshZOQJdmvaW9V8leEBhH1e2XKirs4leMzJ---TsENgsDdzjhpINddSeCXr-IDiTYJ4SGLgf3aZ-JUdanUAgwUPTaKUEOFdADSgMvhOCsRve3TH8J0-Zp46MIa8kT241ti3XFQoqogGhG6XY_gmHuRdR-jcuekrpVgWe2I0NgQl0HS1hal8T77mxSgEEF4N6EIDbTIZPGfFROrlLQ3KBUF42XpINPjv6bSFVwvkIJcsmZUv7wQP0hQPd2rOUMaM0q9DIF5EGSKq62GcJ-RQY6ysmYCWnGJvlUUhsBDHQ8LU-uluIuKaeiOSXRmdLwWBnZwaqTmNcbtvU1ooXfp9d9pGYfsyUep0ykmMkMYcTPFoNt552IXMp0LL4HEz5mvC4Vj3duWKI1lc5H84JcnA5r6KkS8tJM1Fx-fdmeGrf5n67DrjqruQTUhbC3TIk8_hrIKXZ_dUnWAVeQIQpJU4s_TaUJfqZR_wiOzQmWQB1CwKUMeS8PWAMOHOauQqS5IDMKWo5DfRO0LTwLDeFtLqAXEBSyrHpU_1RRrbx6EYPFw3ZFHWQxyvdYTzrefvoMmFpBM12oFabRCOuFSr0roCfV3SZlo4IJGg8lPVx_JlnH49-0fXuQabpDRrrYDVvRgzvWbOzqr7VVPb81khnIgqPoaRA7b1NJUhVWug7TcEf1-Z10KFU5J0JcR81pfMAFjfTIbXu3RX0GaQLMCyD_lL9GezJdEx63ncvYfCmTmloRsfcnUpr9ad_GYH7aKoMOkCx5LW_SQCdNr4_C9bMI2YgF3LttOGPMzbPLeqFjmyvjc59shmHqSIfWOG1coLOrln-IWMZslThrGgZlhv7nG7tjSXVyIx8oW7GYTMsPKoBskYoS7TGwlEAR9bC4aARsFUmtUpj869Kx33lsKO2_g6eCRVs_PmWWC9Q1NIFLj8Fdh1KOuhqH0gl4NTyn-_q6OqTBpojq2Gp5l_cP_ovtjmRWJAozBfL5GQVRQFQ2biwbShf6OdIVtcZK9gW2yqQO0INP2C-yq9AMGXuWLrKgijv4RmzNEOOfNaB2SeS-2FQm7E-x47jq9MhoF6vxeg3mzmEOtBgq1mcCguRbzThgTDLK5i81k_udzM5fOf6aGIKu1_ITwguyBYQFXMZsbeWbpCWupKvtRAOINv9Au5k7zsTv7E3YsqehLG62tvRbLWHoYQS8Cm28Eke68RX2T07QY7hstPglmL8BiPpDUp9Edaqt4BqZAsSNJwYXLdUPUkdIiPJXgpQ2Ram0VLmGzyxEQrEYHAEPDmqcO2B4A7zbRCNJzu2pts0LuXFlS_DeLSHWhkV8AdpI_DJtBtMORaRgRJP1M9-KVUxNvBi0iaI-AI3JbRU2nMEwU36feciyfhVm-d9QKdwG8MwWjIL1Ev7zC8I66NDhNFnnG8yyoWSgChStHql2VGy9koxyUV7AA2cELrZCQaIlI5A1z-9r74op2bHIVNBfRHX8P_-RdKm9YN9ebsRC_1jspi0MfQB2FnHbzN7jvej5kE3oIb29e5Tbb822bkFLiDvUS1lR4FrdHdjqI7JGIXqHhtsoDAvYWm5xCofvVd6IPp95xx15kXp9pqQKbzqHLR_HQxntsNydCxlpr4-wPAAyAnBMSIRt5j6E6nR4HIxxBLiP98xL425LbuSyM-uB8ydZhWJ7xAKKifGjWlSMreFxhoM68v4CoZmb-bgnohrD2u0DvnGyHuvFXj07mlOU5-zJQRT0YmFOQdN1fb1om9CjDqTadCHMB1tAh6Ul7rTEUP-NGBYL7DfxQp_h9rwCL5NV-BXlNLR2jaQnjGvTeAXidvgpEJ6nlKLmMGGnN0l1I-yIEX4dNdW9Ul5b1Nr4cp2BlCZVONqJZI8LMXqwbKKY8XXpC87BauXtVoxyP2-pUSXBe2rGWI3ntTvhrkjTKZhHdk3KlaolNPkCxgVG0JzYvmuVo6TYFKVGJ3tnq3q2Zws11GAa4AIrS2ax8wyWF30fxTiQIp_YlSUzxE-55Wtr_y2_b0ozbp9cPZmcCD5GHVwpp6qWxTrOw-HtFpqndtAbV-ikAhWIn5MNmxiVWBrlhUCHjOYHKZb-sjPLt7MTje3_lP1VHV75Ahfkw91zz32zR0ZpKKbiucAJx_9aHOzWdYQLXI1wzcnSMylwAiiqw2T4bo64vaIn9gXJCEtVDke2rHjCe7Eul-ZGt-MOSGuzhhRqtZ47oH1tR9x1RehU26TGPG8XqmxkmOT_QTLgNdIoToILckdgXlccEDiUR7-HZvTGJahZsOZJKeiavwdlK88g0zdVty7plFhMsLj6K5aG3QbvXPOp59-dV1FljyzDIMZlXBYkpKsKGnnyes4C5LeIlK_xn-oXo5R5wwkansgcNXD3qxQJvYYbuMzljJbszvpdQt4Qj2ln7V_2MhhkUeTZPYKHa4XcO1_ztHsn6yXaFU4aBh-Am8hS4gsT33y4axx0cLKd8AZagzqKMV_Kn5ZyE7nNYqqtRTRAQ9_bynSdpC3rDr6KBh2QOvVZrOq5q4LXlaJONhnMZ7JmWiED60f0S3bBlAzjn17cuGhodLvV6tx4OGaaEOkejzAxsLT3bZph3Cyyird2llFt4MRFrfqbAq3OpGhAMfkTJvSw7SDN4KUVG0kHYpIaok8ve0gY5iEYiXGBf-qDECpUaSVRRyF5wi7O6aqOSFhfyTs9j6O6p64Q7QT4vS5a8HdvUM3YYEC0tBo3IQNCpBXhLyAaBP3wzuW5D_Nyl6XrsatYdW-17PWpdNCOVWtimnG5bWEsHAn55eEVom8LXCm8S7_Zfz96YHKjgym6ele2D8MqppMFFtFCvra1A2TAnbYmPgoR4cJ07cOBAvzY5sJS8K9gu0gC57WbaB8BTgTI7md4vOvhSvk0m453-2IsAeBP_XZGuc0Rbf3kzRE0erdpdQTezp_m9VJbBNuSundCwN0tTb_FGkYAHDY_BLIYYyWyX_mF5zM7QY2JvNgKuKyc7DIMFqxGqgNncjQKpa7nXGK9QFaywYkxvC2qt-MUWMqrrXdSvQD9m6KjgRMPQvHv_IRns73AVPWdn4J_oEvPO3sOcsCqRVz3dhCdM8hN_cXwse9XAEKSNm12pANLTPX9wgl3pmFVPGx0iXlfOKFdndoKewPbS8wXW62wxmTUDu6B9qjVSMoNgUgIXLnvZkXFIPRVUYz2ALlvjUswmIwPrbXwZAszqm-7ovaQE4SBjba2fcZZ5ESkgmxgdjhCEx_Lyg006SP9yN3_gkG-hjBXGR9_SNerGH--wmtA73cxkSBo695fpA4GX2D42_7uFo10N2LPVBwIyGAWifQ7uIBkA1r2A6_LvPiSxKhCH-Vm0FiGHu4bLNcbzVye772y1Zma05oN-kx51fOo8ePpjiuW8j-aWch_86Zb8ukvRPOSAhLKE0zmIkLo10oTMN5XttgQyzUk9oUdHVgiecYBai9jSqDf8iRoVQsV0A5gM8R2yOOh3dRahcBJGYhBBVALHD32flSb9WYIZhZ1PrrdZT2jf0bpboNc7z1xdPyZrG6YCoQKMT2KmsOS5P1Pf7OQBqt8ttYgI38JP0frSvNBdkloG7ygsoFujMNq6b5VDvmLXyeyrTxLfibhPxcqLt-A6si-Jljn4OGmOHiTSusJg0og9U5QEDCbdTvfFQIrGmWgzZQFg9Zk7Bk-r79fE9Zut2emRdmeIIfRY4EtXjd4JxUlsqMOBVJigdK8bhO0MlbAtA_sA5Wn6QI7HV2TAyAlOpiVuNfR-w11aDhq_XTr9kMe7JNO3Os4nNpAtDQ2xY-UwiCJa4y3hTEwPU8ewhdNwVzchtrcKphhIpPLR3BBh__KBqhI7V8WUEPdgQhvwmb-xn05UO-_x3JTU9r6elDBRwPit-6dJxDynRZ-MyZ4GMWcTWTQF000WOYonZ7uVzDk6NeHlTF_DOGKbMnzkJBw1YBBKM3JXihQM5qny52GuWOGPTroC1nTD0GFy_yB1cWTNzRg__2zrYAuzQvknFxRapijZ1W2hYQBtlYVKyARG2BCWS8wmDy9UARhIdn1m8Ypl4aEMmN-JirLNPu-ZzW_lFbS67A-UbpAtnARYtkCc4r7goeiGEo-iwakpEi0bD-k4tHLslaOdML0jDxYKw07YZMHkuWbcqu4zgFSx9PKlLCBvR1IV47U8hFSfCHyv99I5EIXCA1i04fqC2bfoI64os4idEo-1xIxmAMMqo45KuYs2K6Q5xE9KWIE87eseWFHoEpJ3ndHofW8gGmN3_Xwe5MHyfljLpguwYVTF_Qeu-h_eQV6HKySu3fZI5-NzvKUPMU6vrq_ILhkDAPMe6q0_gBXhE1gy-s6inMwy04ZpV4zf4VFHAu0wMlhrYUw_ZvNxmNKBd3A1YAXpHpPdaRMBl-COwf6Nv9z5-Vkq99lwHsK3eviBihMBAYeN2Yp3IcPBlY1pTkbAdA6sBo60QNr_NQlDLCI2ZFE2CBfTW_XhRc_TgI_S5jl2njHpZEHvet4B6OxVuGqOz84YSoRUKn8aP2_KXus-IjoKgDq3dMFHD0tNPNTNDOyX6AB-pxga3olwmWhCK9e-6oYtCtlfLWkVv3XL7BWpLvREi7zJj9xwT-rC3-GsT0gtV-drDIBe6PhTxqzbmJ_KIsyfCzCKiUrQTafuMM1jRTraZ1vbbOPI6fM8hBW6ClUc0yc1fmsQ_9SqfM-B1oYOB6Ryb5DCSkqGo7J1VePcm1JeciskqSxy7qTYaV6kikF3M-Q9L74yxKaanaLA2hjwtEx3_JtPRyN1XUSRHrHhpMhiCXiI9iopTRbYoR3IarjwbNoIGd_ZqatoOqCxS2Co41bUtixO2sBUJJWDu4m6VbN6MAZFtdd5eJsNGfLQ4hNXTpQHfGGnCuwqW52XgK9CIrCuEvk-vo0zGX1kkAmL6mSVonG8bzk0nWAdzmDnXxZHmc77kEAAXssjdIlrVjREmQJKp0agczcDoa9aydk572iP8BT-vbHLMAYy3K6piox7WUiRmmkKAmognr-hLYRjaCl61YmofQTRl-3mXSzvbjmQ0NSlWeHuprqHKIE1VMoDNrVnf7YGha7OZ8y8Cj9HfEm0MsdRfd5ZRcCDm8UGCIOW9nongQk7nfG_A5Tq4V2_VwxJ89ve2QcQxutBWk1QoWtxWy-DfkYBkdNjk6ET8cuqT-H7wvtoUJyoZiZTFFmvX33llDF7oW6j2Ej_0wGT3jk4Lwj9LFg8COGIKCsSOdfSBtv2iinpUuyEXXMdEtOep3TjhPT1r4s4kC-PfRkEyEpKAcA262ZGyOAHtZPMWv5DKg_VfAGgksDU0Fu23dhN5Qh7fCzRnA6rknSjnGn-5SIx-ufTAsVyEX9od-tKjmKRKInrurZorAgIrQODNJvj2-y8sPVuTh9cT_7CG6b1Qa94kcujWzQxdB5mSEYyH8SEakOPWEfsEsOfyc_jtYGA2i0sPlF2Waj5yceVsFjz-T3wxAgma2V_oqcfpqXrr6_aUGR6-5jZS_MotXMKkxoEJOQNn1VFz--fhnlp_DByy-nAYS6DhIWD9CjtaeJbuo_w59AQZD2pWu0g3P0huXc4u6NO4R49VPtaXBJMXVgleNzGZmMsetI6n1FVqp8Ovmxns2Zh0FMcU2D4Soxg_FZCbvKLRjFm5CeftCpKSvluZoDbEQKnm9-EiLJESiU26oPzNnrAMlp1e1-Z_Cp08hSVjdGELyipMHMJpXXxrpo79yo-CNroUbMlCb-2rUYMMiBgIV-nMTPmaBaxGgi6RGnTpIII1gPqbfPlEw160FOp2mESDlauYVv5YUF46V-Q9s9bkS7MFpJ0wx-0NVPPweA15MJJI01gbdFVoKtbRCyALp-IEokMBNk7zm156Fze4J-aNLY7BqdMJ8OSrKHp5bAsZbu17kXP73uqi4j16Y3aYcVKXjg2IyRMc87Xs49K17-4SAuLGRB-dh0mWT8gn-UZ-8Bp69oh270jlGovt6xEa-5ftveJpdwiOhNqZ7msGEeOnI1i0a55H73-tAC74dbYpTC3n_Yoj1NmVe8uNjK7_mO0xeSEHX5VkJAvHCYK9RQ4xijXgu8FLaGe4xzdx8aqdWM6sOKJniLzGhqJeGBngSsEsYz5J7NHAbMDi0gjoMnJyno-qFrWSg8XAU3BmHeelSkePNbbVI1Xb7zW44QpIN1MNrYofTg4fasVBdGZJ2LeaYK8GII70I5pMynDJ7jSHgMG5-F7WIVmT8avQ-F12BAbBtz_lRq7pvERYTHmQlhAetYZ5H1GKLTkfbAbfNXr6fu32O1hWXXMZHuixJsk3lyJEiSgPHInsLZugBHMOBohlm-a3Vw8AU-TacpM_0BbWDDjuv5bymvNof4sPRs3jbtM0rKW7dW2LLjRjc_R_cpPbtQXStsIYIsnxosgSHq8VaGxmmE_kR0icHOqRCOOfO2DrYhPm53wn5URqY4pwaUhu1ny-6pzdqe6ousDBf1LON3a7GUUyxxsIETmDoqTmxUCxV7D6wYs6ffhoUc47HBhx6RtCIPUgD0FOBWinM-6ZCVF4O_gUN4SEjeQaPAWhg8S6Zk0DQQNeDLsOVTZ0sa-YO06hh4kBMfTvO8pXZIzA0eOiIJ7_xNcTlv6IW6YVra2bGtU8OEoBWagxhL_oiuPQPQD6aLtEJYsA1vGaGan3iDQrRzY4iOEGJHD-78Cl18N3a3b4f7ulctpsgSWNB58a2AOfdOoaG69ePpjNOWcIm7XbpawPIm_Icwci7zBCATQ4CFUZ4fhXkfyLa5UQ4ZJNn1cwQQzh-j3rbprc5niq2UExrPjqKO0je-8kVVZ_YgE0Vw7kIcDmioIjoEn_Uuen1d40m6AlR5jMXRuJHSfQoIuxmgfylT2dlSrZg4qVWfiNWV__h4wUp3d_ZDfQjD69lwRMzb-DVd5uMTpWB8B0Xd7vlIJFqCd_iyYm6qL5_LUldA0o5_Army7McMLMPan0JyGzdTZwdJiZMdTqd2CD__5hN1kA5u7KaRyCrOv-uXsQWX35lughtYDAfM6bPOgjfhE7AVfwXwmEGJQTIifCtYqimzYFgIRpkStd_AbPFjYkMp51ZCCHugJKxhvwyjX-Q3P3QInYwK82ZlNhJK7EdAnKOCMO41PG6NJvAC-njOKOib4QW_QA7sPvmkgQMnemKM6drToH-MnRdTAuzF3wSaamxZRLzKMMMZlRWMqFsNUzvC2THZwDry3UZ9oLfDkUjikj29iYkiYaV4Q4vfh9ZMB64Vk5egajqUGq23OyvNhNm_SA8foKM823hnDjrdr8UHtpfj1DIj9UFwJHDrZzkMgWa_n5HUzb_VDQrFh93SSgj3sJN956ABbR8BXTfaFkWGC6iIugKDxPvX2GTFMa8yP2qO5Fcoo6p5-KVszAjWkpvS3pFo1_yRoKw18hxMd1miU5SdNz2Zsd_x9GoxGyafC1H3_wMjBNAbkiViHJ-xJXzVh9n9LYnYOx1swI_aauUV0bX-qkWYGK4MEdbVe6AhTCcNp5Z1bm9XHjkO19GjGkJ1gwjvDXEJVtyomq9WREzMrrz-n6T3DjZExhSxgBp2WwWid_-bQir2SJlrzDw5mUUo0o7wQGZx21TD11W71xRXvN83lRu6NXzsISaSU1Kz4EbZSSA8MvGzQMONGNL-e_oMdvX-y2S2GGqYCG0hkj9XcUDCGuVTBG5O4Sl53QqdHDMNbeXyeSeXAugC1GfyStHquu57UcZyT1SEId0SCEa4grbEZhQ-w0bPl95FIV8vJ4sNTbxE22AX2hRdxf_S3NYBUPyzAHSW3Hc9OgaMrOLWx_2Y1y0btmnjBzMqAhBNUgp_J79wXM040T5v09OL1_06eDxwp1aDSvfcbZvVvEXrtiS_o3lk_TjgBy6j0lhXYfEC0fTCZEuMlBwIYUBDBWHL_-4R1yXiLmEq4ktAxGvkW1FzELgnVgZ_vf6Xca5aavCfcI2W6bdGJPEUjrNXOtYRPWKMXM-V6aHTRuUi9EK9x8ezPHaU1uoCWnjAlYQDnGywQEvso0aDH61SZR8g8z1SBsssGYbhdi6cJpFTZvZcOY5rP1L-EYS7NrC2JcZbYOxZja_NdRd-qZjMcbAUgVdjjZ18aiP7yY-qq9t3elkW9lQkLzhIuI5uT5WqA7ucjXwElKDgJQjp_J7D8-1Ed8B_2dtApqBCGsmzcSpem8gvsesgN68pTw8KDvE0MODdbu0do7_7Hqtf9wE29ZPbx8EquRAKPLjrRw-XbAaQ9LGvlN5LEHbTak-MEhtU3Hkq9D2fRmyY4kBNJ0e6jfsk0dNehplg2APiWB0vohV2SiNL47OSw3tKRSJXeXOnunBPRou2hj6HPuqhOq-G4s81DJzKySKZw1bVpwI1CUUVqYI9ntPtE5-fYJ4M6UaeLi8W_8qfIFIWwx2ep82w2B7dKRaGruE_yCjvbFqzphm-dct7FETuBEHDnjcyz5MbZDEdWU04UrkKEh7aWTT4nneVYdZrOuV0xEwkcufV8UkCgozW2ao8gNDHZW8n1gZ2pbfUAZp4od5-hRvXJB6KCs6mItSSgN0aVb1Xm_oPijidfn0agqxv2et2gHql0ojSEcp_-sCN6-_Qrh7Otz53yDLm7qFhEjsmURwySXG4S07LXdJCdJyzMAmZ09VhH81NxDJmZLwCI1uTyuIuz-cMtpHcsI-EDPNfavSxJ-34tTJ9x0LOY9s_35D5THo3ImxkGhjqCz83kiiwLb9tPL0Oxcj7oniIJLKZcOiGVInvVOWutxzBqoIi-cNawP2jIHW3q5wtx8BoIeEk16WgC72oV38Bf0c1Xiz-l_Z_JRDenFmGVx0lmUp_R35OqxWWqVD0Wo607A29NErrXYlIX5HM4-9n-0yfo60mdzg67LijJc85x0AIfg4wUm5zZBmVDqjAnDqO2XYej6lOEo9Gos12nkRo2uFOPlWs2-hr0lJXyZH-DSYuQPPWqIOfbAWBRp261IvsHAXpKoqawDOBbIks4qXBjl7q46uf8HuMzxqFFDgJk7v5BF-DGYQwrYxlYyl0GHdS6QGYxLaQ6MLp0CqUmleIoP2TS1rP0notoepcvFG7PjTHIKPFLYdrNWquHXGfhdP5XAtxR1BDE0Ch65bmZ4nBbnjF0EYEmUQoxaJGrrMcun_ZJD-UUvRqqlzZJTIDgceMHw4cGz9u7oWohYdmLh-YDwb-vyMsiFSYjv5_pplTwPL0S8Z1-JUXz1P7uz-B6vuRltk7Isz7FlbJti89NtC2SIFblc9_DWBphmJIx2nlxS8Ps7CoVNBtX4ti9kwbYOoYtIBNiJPgfaXieGujc0qm_Dut35sy46guFSMz5fRCghVKeKvjOWm-EeF6u6cyfhpzHi2KRVwyrxq2-Sfn4QYpDBqtqHsaR2eDj8G19aW65YmyL1yIbfwe2Ca1oGp7Slerd7K6lJDQCnD4OgvU0lqNBIg-FsJOcEs0Tfv4PGH-6fCtzqfoxx1l60P3x3K1gW4zJl-OXSb-n9h9pOvHxULC9HnQVQ9C4_-i4t3-lMSb7ARueFIBH9Z50InklursMtSrca-z8_eTyRX-SehkZrjPV9Ml3zFlCENwVAvQabQv5B4-3qZQEvtMwjwtS-aYFYhAi2Ju1ywE2rtcN-5ApAlDZkh7C2juOvnNOxC-Lzb-Gka5VLhz1DulnK5o0sLx6PAMwzvlKAVmQ4c1Ac3AthyUWGDvQ5_E_g9fkJy8q7JPOFCOg3qqDILw-JBw-kesb3JKujlqGzuiNtJ1hL5IbA3q4BGyseTWAzCGGUWE0o7H4kZzzaSKM8xEtIjb7b_E_Wzmo5SuiRLzoHads2G7i9Gxf9Rt37wfhD4oQ1_WBa6Zo1KeQJzK1imSniE2RbS9lAsAfX3YP6jWWFEQgL9eXjgjiGiq0xa2zT9Kw48qnW6IY9F4SA_CpMkm5gmpeyUqAty0PS7BZ11iGmv-pku-zfFyb2a1uQ582Ld20We30vj0JLsezD_ssoBq-H7A1WY4iyQKDqqph6EvjZIVnrAOOM3Tq-FaaJtrKQALbbsk3OAWe354iNFddojEtXpPdkFZYAJrvLGZaOb59HlF2jpuD0EN4fIqM1YLe-ypM-vWXh9aybm4dGZf6X4vplZgCOFeZweZoOKsh0gA6S8OJmGcaOktrx9biddpiLSxSohpy28-J8Nu71zBmX5Ur8Gi_yA7bHSFWrQuUBCf9joA6uBqdeRqvJRmqqkAvJRt62pyg4QTWIi4mGRJ3YM4kIN0r-CETNsRz08JoQuPHY7hOPyTVb1mDqO0wZK09PM20l48OB_HGi6WJNDal3C4IVk5dRxvEnOHdrpBPBxJx4I48sQq3zEi_wBhfW2wyJiByv1L9dO8pJvUXjX1pSBsFkHfQ8J8svFJUm9ZDZx-1yfGja43Khdfntimn92GOdMdk4XFK8sI1KpCVCVEkvgxTyeZhXO6H_fwtP1rODd1_h_tcqmsRvN8xOtDolcMP3q19adqws16-S3liTfp9LIn8aQ76v_cYv56-oxBo6W7IivrbUMx3IkK1ngCGdlVJ_qpjLEWgjpU4dJ9koKE_svOU37cqcqsCHUNX8x7xNwrzgLAUAlRuKcstgOuk9iGzQiXpj8zYMIYbW8kt81aqZCLHuSIYpi9cRuox5tvxtORcHKhi-H0FcMbTMIpBhXTmMsWhlPSwb21ygj1Rqdbsdzc6hmpZ3UoSYMjwkDtqYEe6E5r1715ba0fQ8eHXUoX4PT_40_Jq1RyB9lS8SWIBWkK8Wk0Vjc5tm3Tf1_XThqdhLZemdFKYnIzISg6mdVl1EgCL7npZS-H4b1zDCFUSAc69iLpVAyDvAND2_KATws90bfBCDL0aBZcdGS2iVdhKbKmFfOzqHvXcV6obAwee0C_nsPcAV79sbqE0x2KsEk1669TNwx88mFjdJt_iU5ROTGtaVqeBzRSxoKtFaLOTaH14YJ0bTF0tZm0mjBE_OKHl3I9Cy8LvJLIantmFI0lp61L1xV1ytnIv9AD4fXN2Zg4G6AhH8QuwRRd4pmtZGbHVAT1Mk6uCazOOI_2DwmAomuxFg8QqZbjUwP_PwPcPx9nJJJgVbJwD7Q499Lr9sVilwZadnBZUnkcu57m4oGOg1dC6BxlVFyql-QpRfHUPFwh3_ujJaIHSpvyg-Hjn_iAk7JWQmb-Ae16gsG4PjnM6MKCp40oDroVPsUlZ5JknzcPaq3Swer4mq-3RbSnaNC7dPIvPNUXqgFo1ZOajhFec1X_hWoNoaDJ8vjko-GTT_XRfHerjegUcDF1EP4mlqjgyqjWZmBreav0scV0xDr8TuFk75ADRknuL-CEKgsB6A6Zw9-PXZXaHZP9huc2_4ro2RCUnIvPNUQAfHagD4PqjO0qTWQE_b8nuzvQVuZ7Q7BZczK5hkaYxbRdvMoj2sKAYqe-fMXGe6W2BEuYAX-WvX-xpO0LBJTcKWkDEK-ctBhx8WmWWHOZV7ycH8o9u6H6TdMTOtUdEc8yA_zYjGcWV77a83hYBbFsblybTq5YLxXBu59jw7rl5dr7rXGfjV6p5DrTPomm5bOyD0-xNmFp3DbIPK6O2dUxq8amgq6QAflQPsdUSvlSczj7me0h53-IQe79FLn8BT7xJvLQrGwmpzsf7SdtsBR_af6ex1p8pLJWnbJAMyC5NUMQt7pyKaPrDGfD1i20XS9Wq0Ag6fLHPl15HRUtTnwHFCaZhSz206-ru-AnbVXPuNtqPgKClZWUi4o7gwU7JK5NsCnSxSeMucwTMmOtyGgkix1FPf-9LukPeagkITjz8vwdtmIkV83Sokekcmwv9IIcjDk92aN1O4b9TdxoQbLzIv-yzr6Ik7ocVH5hwMpzzdT2xfxCt-itoxp0d6p4Cc8wCm0LRpiR-BVe0dGT_X0ziPtxkxFWjsiop6vsz3u-w_Xe5pdBH66IVNeFH2oB48BWsEjEBSVqJDD1YytD39Bpf5GIGMC0aqOuPz_DB700JDnVsexNTbonLmYgiZJFs9k9kq8e6r05yNeDGpgroQxkKD3RkJFuZ4U2MW3tDfv4DT76YkcXYWVevg8aDS0O0mxbO8A2Cudlq-wyIyYc8hXsOOBYoo5sFf07aNxjd8Faydsg1gE-MMn2dYL9kb8E_SG4yvo6xKqZZR2SR4gSGcB2bINNMhFc10qieSkiMighUwCnH5WrDcw4lmn98ySNvaDWq6N8X6cBThPKV9OOZJSE_-T7AcptBaU7TTd1Ww_32OMF6nz79JN-Q5JzIT2_YusCkryVh6AN_Z3H-j7nU9Dnbf8McD50qpYB_fLCQeWqKc3ApvlFp8R0h6sufRO4Eql0QYNlZV1rcvy2GqGp4u4OJ0oFhWegB8kJN29dAdr8KI1n_wnehjtGsN_qxrTxGmd6y-Xys4OEQQRrM52B04cT6c-RGqdp91m_EHiYm2Wb1rAzSfVBPKmOgvEmUyGsE8ymao-9_qnoV1lol3o_DkjrjQCSnHostkOoS59jl_1ZU3LreWbXXI3DNFwUKPrPeUYhIilyZcHIT4J87X8bngrt_ULSzs3I5E611L6oPHZ7-Y43DdeMdP60aQkzlIQPtDyZujbLYzX2ryJKYIMv0GAXyDLNeW-SBAc7Nub0extZOv9rK0ecvIyjXz_hobsMXT4rqVdWKxo3fjQahtdCdu0ji-XIbd9tbfYKg_s6GC0VYMn5r4qymxPFXZlM7ClVGXzfJ-zbhhXiMqq04zNTnZRCIktsD18tIEVka_PyEDSd3zJ0woiJGeCWslpmy9n2Cfz3DqLFhqJ5Xmx5E7heqfVao1j3bcQtqySIz8e2F01rYAPK-KS2GCxhwh3zRBbF0CsfQp2TXl_R1xVjbUpR9Qz5tdHXwLiO-zWeY-lszL3iJqGvseBqa2HPJDkE9TwG4X59ayUcZU3zdLtMnIRPnXV-dbcvYx7FMejpOLJDRpmxsFS6fGwj9j5wgiHek-3kuqrCd_Zvc35S3kf2koIoecnMGwVPn_4YQoQ_co1h2KQ6H_tDciQ-THeyEUAzRMNNfXWe-iUMNpbtz83-eKZhQd97RyFb7bPSpsuhWz62LJ9Ns5jrZH9IMV4mrkw77tYL1fLUPoy_LleIEYyVLKsdsmjq2Le9SUy2BmdRBllB6gh3YdIxsUp8h-WOjwNEyR7LbrihE8zKS9nLqR5_bmskJaYLNTV7XtzKzr6K2BMQ2lzqlL52a2jTWrKCOFbb_RE_-1hZ_gQmV9nYMAQtKVmUjm8L5FRFDH9j_HSF-U-Cy-JW5keqhvo10egDKRhQBy-nV9-icEO41pYy_bxh29kxi26SEwlmsOZtuXSxzzEjL7VlVPCtU4rJ5tuhqswrRuoLGxmWrcLCI0-P7G0LkurYN7kRjNZhxqsjEYgsug96J8BO3Kao-Kuhy_7SREHcDbvS-dbzYYZD3-AhKwX5mx7o3ZPVvncLjkYUVzKfUCVJMc4eoGtq2fJG2Ne_52hTFSqgr-vU02dly3JWD3b2xvnpNie7LL7tTbmgRu5wqOSoReLioJHo5Iuo0z3WH-6vD8Gn06EFjc6BKWmYsF7SQjd9wCUbGI2BYoe1Cl1x4epeybix70TvlTYAcQhOim4iiStfA1Zc62VQ2cYgg_K-ALs_fcGpWoEWZponR-MLpuGDhG9NdtsgoSkfG9N5M6O7UGuDdailGqrKUmlSOGQuH4BovRL_-jmP8ASNioSdhNZBFUZT15jOvPvFrA2WCnIAXJ69mxMf9nqLY7nBZDmJlax_QO-0uEdqmSIEY4SPDUIfKm8fusKWZ-4nz-u9c3IL8VdOpFnGpd_eY8o4O5wcaS3EiMNeYhRJK63p0uG9-WebrqHwqSgc2lTjd0B9h7a-6HiOZolcAF4bb3HefKrAm3zFlcM6JmbRSjqJMbZc7RNY6yM2u0G43WM4hW0lBrAboUifj2irCaCFnETy6hqgevR_Ev9_1XtdjqOemMsxZg6LJtjjwtgzXwUO8NTGwkhelbKd1UHaAzRjTpofkfu3-_MWTgqRLq2g86VSlAZ4AXKyPg72LYJGY2GbbFRINMPntS4fkg__iXNO4P2aDAFEwgnZq4x5YfgcrmLAZcO0gP1ATpnYuz9-fxkcMBKLuORTfv3DP2bHt8xiV43M3S5vIFhM_mpcGED4qLVhQL54TLv5u1OCzguaM5g-c9IXTRA_2Qw4kqxRFEgadLe9FiZrMuS63s2LuG06DGmYexx0QZ-snnG5bP8CvMDrTHuHM-tQWhZKeod_2QK-f-VS6f6JeGrFUBE4J7T7d01Dvwe0vQs6AfE4eWuk4KFk-tE0FlUmDdajXvRCOwuDt7CEki4rTXHBWxS9owR7RTPCQL4e2h6pYQTbvS9rYSa1LX4VSMSPFy3ENngYVMwW46CuUkCsfpBfQLkf0-xL7YsRvUosCTfaQwupR03fPsnhoCgbi30mXWCcDrRh9qDQmonv2h-dFfS0_Gps4XrcCyyG-xhS8Df9YuyNh7lwrMQSeghvRXk7gnLr5e4VBVHFpqzA4ygFWYnRqt7Op574A17ZGc5-IZu9WOM-LWdcXea2uEigX3A9wm32kbNhmFdHRByXaBBWRIrumLeHCz-qWCYD2jjZczcERtLewbvirhJ4vmr0kp5Q60GNRO9Ca7P6GAGZsd7T1QYudhui-D7SZcqwfru23VlL2lbPpjaEhVwer_StDu_RhposUpXlcHy2jjOLZ4NSCdoGaymnC7OsCtHbCJMdBgspCe2Ql0aMD_4WJJCMDd9jtwh9NtV1t8job58ivUOHVLCBG9MclhOwDAjR1zBo1vmEUAr-TC73Xrfd5rpzNIhsO5OnfxIhDn8qv_w_AfYS3WXLlf2xoquIm3JSfK08T33rCoiCN6gzoj2KJWSuUaUv7kKILlr7sETfsVTTfHaFijYGfadvXbrewL0Ht1GZrdndqL11cDclvmhIsXbj9OQC6gechw7607H64IOI9ZO6QeuKIL3aCLs5dUtClD9jTkjqYu0gVHDVT2w7FdVi1qp3ohkDVuhynIC1NOvmXekyOEZGjYWPyLyCVrI_8X6ogS9dHQaK-VVFE-rcJZIvp7RUvZ7w-oKiJ6Wr-5-auPDsxiE21uHIhEu7VhAwKenZPd3nKozN6PhhAA3WklazcUqiVNus3wR6MO2IE1v_kAZ720ar6_XPbTWK53qZZNF_LaGxe9k8-B3GZebhCfx4wfCJcxIrTdUZJdF42IaawO7VIOMOX_r2q7BjKQLA1Ak0OKnKRQk3gbkTYiMxh1ayqc4fk0jVjqJgjEJPXGGsz9NledE57VjbL07Od7ZuirS9_-6TzaYlrQJlRqigc3zBxZV0JAECyaoPQedOR2u9o-D5ps-5kPXcJOekItF4cebT-gKDWZGnGgHMFBLp2RN9wRzEGrWG8s4EHkpAyYUe9rm9Sqxikt88Z8mciU3_tkeVJkcCRalDro-ydkiLT-LNzX3h30bLTSw8P-wGOQ0IMc2oDOLHfKKDLfod1TR9TsUM_Z5g4v-lpRG8MgMiMcq8axsZgwFda-810kBn09c1Yj4xrdBzfzNwpRkjFkEsVQ01BQmKnmqLlafRa0pwkmbYzVxx_hDq00t3pwAIJxI78JPCPgHJYLAihqk71C5X490apSywPT3Pqtleq3CUyCze1TTlMBR7atNgn27V8jk7V85Okwc-b37IlyL-ZUSLhdgfQOqXI0JWKD0KgIp0jXvwCWMJwXK5Zw65vmBYfwJulEaaWohYHkIROdVNnj80qqYLGMIJscxkTCJWLKeRCd7e5YYJcnzyzAnfOk2ZO7xraos_SJYSZBCkCvMqnp9HW3J0xZ-S6FN-MG0KuKrc2XTsv4x95EdvcgmgYjwHfrVrDo8H-xxC573u5RsG2dxH8rgehvJzbWIvRYJNyzUocavRz0JXYjJ9ldsUMWO96GCzILyBalvr3gRF4_zoJfD3dSpWgugMWOBZEa96Fs7I6b3sYJvTRNu8uRr5NsMFV89YhMB7tBOamzj0g1jC81001dNUhc668ObQYCjs0FqeRcaovkxTieg3cP0m3PXMhl9gyDhLxTu40gwA6Sgc8cb6DJdqyC9BuXKt8l45mNfRFVdzzSEVN-8jdz1CHsO-FSFooMEFYUR2K0oZx_vv1xkxmdArAhydI61_vDFiJN8YSsD6S_ovKPscbt5TJ33SMfdBFZQ2HahJiUouEOl5jmujfHGnJ1n9kYG2o53sfMwiEEyihTfeImuYWRhc00-ocYQi23YYD_G5NP5QReA7seTbQ_h-UvWsy1WEkU6rRwMuyxcyjLlBxKWIFpTQM6sdlIpUbc2NXIMNDWln_l0Uq3eknoYV5_RczikYhcm8_kMs-ko09u5ucvta8ZLNO6zUlmoem1BG3pbatfMW61l4IqMDVkpqu1iGd5wknsvficYYNIoaMt2qmk1gIOX-9aI7kfOYpcc_ygqagXLV1P_Fk6fALD5BsO_KuaOEqZo1cEa2u-KOjDDLHnB3MqeEsopq62qLYopUkfITR7p8LUTPMYSS3G1G9vg6y1p6e2eXiXIoJtMreY--CCuO_jWHF5toCUN2Dmqw2DREP5k9kHOB64RSMfHezPCwg37khFWz4XY3NdR5RExgY7FO4AAh7TvUjQbcgC7WuL3YLRz3KhD4Ysq40i4S-kAPCZypuywLGhvXLqLEPrTvJJgFSvUEl9Y58euGITU8CtxlD4civlg48Hn8tVRokH166U4j8EDIN9MhP6Jbl3IxR7VUtUydkoBu3dTR5mzyStYEfyDqta7X5oh0m_esgGFnTsjCqDDT5-f7oE6mDuyDWfkBQroTjfhXAoe00Bm8pwVR_oN2btOfKw6I961nQHX6JCigJw6cJEJemm1y22IjecQ5be3z6TyUzjRum7bu136S1t_knhGwlvR01oh2s1HcGwxQsgaXkM1k3KuseD959YAHOm1WcOdlkUI5iitfEDwKPPGeCQ0gxuECwccD3bR0hXBYNVGpR0JpjofInmBTJEwo2JjAlwNu6mC-KQ1Bi-kLP_j3eX9DQ0H7PnAb-gjR-ClaeMadawiBwlaoTBOjRgOav9x9qaczFb24e-euSSNSiZdHKyae1-MtqJTMiWBXG7msf6ZfGEwiceSnqKeF7uOJUlJi6yruKFzPHT2-wtNLa6GSMVI92IJAAJd4GcTrrwZFYA4GTqLSoJ5yZlDT4TztjI8Rp-BrM9F_OERaF_tti3JiRwVtTPqtMqmrNw2WNJJyGUA8vhTkNCsAoWbPEOLFSqA-obaxm8un36X4ajioaJBTTiiJA_HG3GIDZdI6Jp7m3GN8TJ-gpJP6ABLyWnNKaf02yJyPdSCMG5PeqgjN8S647RnW7sL3eMeD0XNGLW_L5YyjJFMNwN2bbP6wGVn3ttTFXcalben-_Ozdql-Fq2flzAo6S7z-BfrQvvFXCjW3bMFPCa7A9TPBp8OcZvOGOTZ0ixcgOQsW564MY0zGjIZbcPCmssHSrSXN_CJ4iE4eynmNbr423E1A-mepwIkKqZAxhVV6wKg_3ljI-P64-nAjXCu9kPKz_GHEUUyX02-9Cb99bRGa0HIzhKBwClxeBqBKs8upCowfQCzqWIXqqp0RqNIounivrqVQYmAmiZ2bevcJIrj5o_VSz1sogd7_idvnMKP7YN6iCa5eSLqO2HumIifaFRga_LoOpSYtElPukOAfVNEywfm9PwixciAFxRlUN-63mEjPieEOra1PL5gDSBq42veEnxEP9DZA5eWnt6Urz1UXLmNBsSUI2FjjRrkZHa9OVYfQG6gGJrqHcrCaMcr6LIV9rqZzky1ID-Qd2VRrX9KwSm3t5uMF0GExIKEuOaWHLUqrFxloJW0FpHyCcgMYTq15R6Osmpa77Ir28pZP1aTQkZwh2RnEPVaCN5MvVzQzUL2zgv-Tv2qrgG7iVkVMnq7YAtUX__uMwtIVE5w_ATsQsENsiw_n4cCXXs7Httnp-9mKqs7Cp9G6_99CtBm2NwyRO0FXoSvttme6fW_ThJhyl9BpN12IZZ47qP1essGD_R9sVAa0obQZ7Rx6d5KIwOulzcSrD0rNTCiKEamUrMaIIP4usVxk2C2jmQbWbh1MgLl8k8lsPp9zoYdymjth-KTduz2MiNhp7xmx_fdxBLjrylZ61Ems5pOtPc3660LxxmzQFTQdn89iUeK8ZHy2IjC2SvFtb6uu7MAVmziS4lCPvuXgwdEV9p_0tlJIIr2PnYLrP6bx0eW2U-iYW34QIJ_LIQHHkR7q3adjNhjf3gkXdbD07Qx4i3f_wp11c0T8V5ADW7J5R8otzvG53Afn5R7FCH5jmJfhG_jHxo5VzrQIFxfjKd3_yaiShaDreZd3uCEtGUkCeZKMRqxK22EFdW2yNZ-GQqlqbfahP6hvpRm8US7Ab80UIEg2j-68AgKbQIKkZqJj73AWBCdfL517J4Neq8T6NHmzyPjRLRTQuHGgY7QjzqaVhB7eqg1TM-15lZfzovlvmXqj2ajOuNzt9ayut4eyE-MyOYWfUaEXDN22oi0B4iD8R9yyDTsZ1OBaf1MxfHlSu4zU4DgfdqkXDY0U3YRxIbSTPzOVN8EwFxBCEPLg6lL95-vLiWQCgDhJ-CC_CviuGZeSdUJCLwamQxzBc4KD9BIMcbFq9FqAuF_IZ9LdF2yFuGUR_tDXih6j_FIWv87ME7PR4F4-vcl11HhKpRkfFHDJ_Ko7m-MQ-M1wa32WbKr7FRHhU6UNieq-_eGie1slamsuFSX3K26KOCSPk4zWPTk3QjuI9QWb-GcO-GGQ_PX-Kp588kExclpyL94Sax9_4k9T7xZmd-yh-iXEdyEkTq9KxZNxiHPUSm7EdvFzHqeXxAskxay_RvG_0dA0GJ6xIUUIJpf1UNRE0fpgEHIk_KZun_dvu-1PbWWQsnuuVNFe1xhowNHxt0uIKPZjyg_IKgQeu6cJRGJrTJAixaakAJpbSBQZj3hsEY8vKRSPKU_2b5Hc0vg5euRtNUgbBBclCvD-f7qLCKFREz8P7GMGemyICg6m4XAsmup4R_xwLAGG1smA8FaCcEbjWPf4eWHDw6NUhLAYHW1MDB_p9DvlBMwrRYAVCUgPr5FduMwE3cCK18kJAD9IngRkaB2vXq3Q09W6INmA--TcbVk5HpTMHCXAegJBBaVLJl2ZySN1MDat74eHJWYy9ZLamZ_cPIGZj2it5bnVVyBmjBQv_1wf1SYdh-vFTZXpxztQR_v2zo11T3zn1rq9d1-46wIpystsKL4R5zj0aKev-42RSvWOltI-XvFwrcSUZsn_f-ddC90E33ucQubcMGTnEsm7BrQYxktMNDqkT-YlOcaHS3BsNIaVsdsAZw-03CginZiWD9N6JkgU9xyETHJx39e7VXooShtDsP-BXsZWYQ4f_qSFOhbkhKiChYSAUvByBkgiGo7LYHZrkBkDntpGPhdE7NJk5lugTK2hfZC7KDpcM7fN7npqfdiTBlPzXE8p1mtCUkSEuVmmD_l1_58dX53eAW5qAk21Ev-xOQkgmBEdLnyVje4m2lkDmJIfo6U6Mn1QplTtmTZy-7gHND2jf1HQ-OtQrmwNfgNno-f-OS69mizyl_Yngy5a8CY-OTsQBnN5YO-9fZ14xFuz8O8volHK4OYl7kUejQxcXTVI4F996M_b2TuetoKaKwLiFZrTqJQ-uxdZ2PC06Ncm9sM9zZUxZyRGy9pzn1-cjEDdh0XK0YPpyzrvWEWxIvzNzlDKtFhhYfbDQ3cptIpIi66YgP4ogkgiVfz5h_PNZPZ0WZmWG60Yu0dMe91BcDoKctGxaTqfIiYlFriITWR3nnhZdTWAPWS3d5S-F0iADKNKTBslofIh2cC1pZ9nmFIXlxov-PwmYyo9QG9I5P1xdwZIeZKIgz054tvPqzekXV4rBsiQNRwqFiHT6m6-qVVY1cCoP30kdBx1xRPXrm9sR3jABHB-ZpHJOp22TSZ6aupQAXFyb-LBrjt0t3ypnofSVR6RQpetUOkFjJsqvZAkj7GsUJfPXg24xJqbM61BWpGDQWn7VdU_YzYU_Lh7R4PRSPOKTLDKttWEnbOhfxDsl8enyR8M9MsJwbAGP0881KdWU4VnAynMtSMozVm2I0gPLtNfRKGlbDH8kHVfL9Z_PlD5ScKbiUMaJ04cBSzewWaQm_kM1Sq2Cn1qyKUES-YqAwTphw-xN6ZsetAjflyrd_VgcZEh6vsqlIREqYZAkn6mFqtGSTsUTxYul4HvfRG23iKTkM-YvawrrO19-d-7xoMd66MrBKG6VT3FO6m_c5qAc49rZs180dkJpp-9K1rZezwHPt8r1b4pgQNPy4NXk2kIQSk6KtpuppYSEzkPFyOOnLgoja5KrKRDtMgR04wt4uQZR16w5BZHVk4UFOZ3EztR7VyVL0grBtZTxEFfP5MBzB1Ln61drPgjd551-oOkcED7wqVENrb53qGoNR_3N8NXJv3EwZwhaeGkKyOjp48kVzNQKhKAQMx8KJ-GA8r4DK8vp9Y4sbRdmrqN0srGfe1RhlAibPTVotop7KaEMX8xB-YqU3017uMelmT_aU2XzqvnWxVFwCMId5fzklYSh0-fAXAnBolrYaIyZtIwxGm3LvrZ69Iag0B8-rrsGUWxiERsjBqZzZ9uu_IG_MrJEQ7_HJRifrVQnlp8JsduERibi3funiJnLoNA8SNeZmgjVB4npZWMBog6GHvD0XUNxy9dpBFxdzGWmmcFqrGuyjkErSTVoDJUPQGJCvMI8cASMYZ663eZV3tDvf_RMmRbXUYw4bY3bcN3AMBJR1VY2COZY_-PUAWi0awGkM2mIH2JL9YwiSYYTITKk-tkOE0L3d1lJOhQuABEfz0r_h48uU0bEPqB-IDnMqGIp-69pI1o6Tuz4z4wWXWMJKBJ6897Z5rI2Cs2d3uzzCpJfFAqphXUvGxsnyefARV5Jna-1C4bfLEve0XdTpEO9-e-6KlsNE_XhX9mBwg696K6uMSUzaPoM2eoZg5vkx0cdtqdGJTuhpYRlMl8G06F61mXm-kfBYkFJZ-euUXRmOGfN8lPxplqmUogbafaYGG8w1n6yNzDCRxqzxImopBrYIactYQvhhVbHvqnonRgnURzmqhlBRosC0aNzENCqymo-Z5I9HFKdNJx1SQ1uo8pB728VXyK7AWeaaBKElVXj4009C9w6bluKSHZwu6b5EH4O5rTh5HNVAzxL-gSnq2_kb3k79676W6l6Qbz1r2-X10PY7WtxRzIl82VGjlIBIHSHDCt751zbzgxhCyaTUEmnZuWYv9s0zMMHgQR22zJGHuM8AX6fIda9ibYynoqoH4XYd0vDMLtLcAj-7Cyf6ST1LUrwrAGgLzajNE4Pt6gm3Qo83aazQvS7HDSOW1aXAhxb_HyfMNlqrSmHNMqsQB1qj4qe-YFasAQwk3dJpEJ55jf7c5YNLVgLxIQHRAlHG5VQg7a9ZcOnC-uZQDV1BcBnsBJr7kYoNEs4wtLcOXCjknu-ySG1S5JWkeCfykBwgDPyk5CrbIFHWhrXudwsPJsuUukWb2mKHHr3pWhbBVu-XqvrPZFasMRBKaeqhJOX9swA2uRIkg9b-OT1kdPK9Q-E15p3UZOOAwrsnVOjtebSm8ZRYLOQv4LIgS2V69wTU5LDqj_Jm3tkom8zVSHNdJZ2zJynYVmJghrsOoCQYQWyPNCrUxy3iFboEPkHBibK_h3Y1IDCpTn0Oz8Fuza1LGR-g4iuBdreRV39jZS7WWHM3tZYACnntVFSwTvtWGldE-ejC0zNlpHpzhTFYojukKd1sdYdmcixVtGU93MDlMlNPyYzsIOAmsgiPK_FYf2YIsbI9sk_6A4fKIifOzavzVa_rka8UeYafkDoqWFw_X58oI24EDt1h8pFSDU_8Y4C-1mebReoeE4xRo4J8LTeYh_wFPxlb6qitk6F0CnEAHbApzGVsQmU-WOCru5aTHkAOougewciLcxzCbEy98RLnfsOFL6O6196xYi2J6imHO1iJTEtcQnJKhvoyPKXlUaX-la5zBylf408HUMMnH6NfeLIwVFUMF-jF6Spv7Y5jSrX7G1Dpcf9wk1muDq3yA14osU2twKo-CcQJuDU388x3HkaMhIUpo4s6rDwHTtC9AHOM9GoInPunXTbfTHLE1mKSTqo55tny04HFZU4hH6m36r1wauCVOG4w1PmpePua5TRBJoF0Llu0HTnie9r-MqRx1oHvwpnqDzscNK3bXHTIlsbtAErSSoW8gEe1RTHmzgjD5PcVi9vKJnyzxExLTLs9ScD9vai-omO-phLDtN5ip7CPNqFqprzbNnOzRxU_8m9IwXysIiMiGsgEr9-dXGeUhXSzu3VMSYt8amLgJgqrd9A6cAplaFgSdDfLvNPY2BrijQ9OihFDg-uXXdNg8L_NpTzTl14t7UG7IiW1kph2d5rDcF2nd-iDV-Zy0pq5x-TNIET_m3gcb4fCSYHMHwBh0ZzRcoUQZKmZgVgocb4UixivRqoQKMVTnOJT4ejAXK8OzzZ_VJ67bV2YhEl9Y3MPWMn21dVq4p_RleCSNDxTrpncDfC5pnq7IhstiOFxqYgMqLJyQXkXkIDSxKHrqmG5ildq_-Fg5ZBuyRTF7dLoDRJKmltrr2Oa3q1_pJ72vpNbw5_dCXuHGd8Zi-gPnu8iEsID-F5En1JSnIZG1xDJXviEAtdbhAhT0jXCL7KIwSd7TvcSrqQ_hqanWpoPgB-bUI1n6BNZjMGN1EOxB5X4wGNmQBBSzGy802hAHp3UmiwIVA_KdSoqGCLC4GCEiuGqrLZr9Zdvp2UHNp_8BCdefvmk8RR-Nk_q-HowKD_k1OtvwBS7BNx7wxBaJU479At1WXTbxgcEc_8Zaw9hEd2sWM8bh5lL--PQ_y-lo-nGN9s60BtHl-kMQttmFt7h4VzlOj8lE3s1r4yF7oCTjd7ZkiVt57OulevdyB8K40WYVF3NJt9UYpVyALaxbKBxaLyjpy6pODXqO-6KN8PqKhCd9D61VvOG3YSSTkAeZJEcGrLxEnK9U0UqjLoqFx6IZevhYxoQRSd2s7s4EE-EtnzV3YTgWqsj1WEgybHWUTQtyK29_O5x3CUmKbR3_cK-yipMvBYl6zrOBb4vVDYZwl8gUdax34whtiY-rjGoUVy4itvlP6EXS3Fe-Em5LSgrt92ah__aiASYNZEN-4LzbaVMwh36YHBs8endLyCzQB6gu5TgDN5B0KLf0HCNqEomCR8CncopSClmXIKN4a3wHs9zR2P8OMjIV9CzMGcu2itiR9s6ThmnBawECjb6qX27EuE0QX4T18CTWjnTWXEnHy3ACZRvIa6hZYdJLsuky8DNtr5V7mFxMDDgqeS_cIxDoyNOy2V5PwbRc3fVRa04bVtfUOM7q0OiLtJz_qEr6Ig2InPA3_eUKk6du_mdfNfdgBr-T7DCBxh8-Y40VMX8rA3CA4uS6L67gCuTE7jXXMtzugSyORCs1RUCaYyXwY6paaUhWUlJ0a1aDO37E9f6Vd28JqyK4YzMAss4G6-a5W9PUVykgGhUoE7WB-jWwxOlBPSU_TMphlcbkF16Q5piDgaaWxgi1Iz7VAm7XablxK02ZRET-qTUU83OxF9hHv8z4fVIANu_q-Xc6QuSARnSbx_5veQkxLr584rjx1_fErQPvn_ajBRZ3sPgflmRG5X3bjqJbOe4nkGyAv_vE_4i-MkDOWcMMnNKBBN7MnjtkuU-_bMZQUwHOUVxaRnJpGz0grj7pydtNnw6o1faqK4lxn8s1Vd-NBPbCShl6lbhZkDR3D3fqUd14AkRbRxYjgOYfE_ug31pZqCKEwix5aU2d0ulD_DOXpXIpVHrUIKU4W20iM9hMU8boUDzdRZplVS6U-yrUJXzxezKcmLExsH1aAbXuPeF2IubQ04wsi21XiTiy-B-MMhzWIdMNNnHkXG2XnrwxHN3FMPf5hH_oMXdVY8KZsIGEWVAibxqGu3UVCTB5D9pKUdelln_D4BCsoBMIEKqH16Nq-opJP2XWLVdbiB1SRDYym8HlBEw_V_XjvGfxNGaXv5r2YBXxuLM7cNq4tXEu6-jH8rLv6UgeB3V6Sx-Xx3cpwo88jgA_FC9-azZdZt8gCWBHaiKikPp6wUiIlYiXXq-Q6-Jl9Hg1s-N8cmIg1hcuxfpX4MNl5sEfPl-9j6GSL1L0bArobjyxaJEBI61mFN8FubrYN_z_1QmXcVKbsQbkofaVJFWuIdmhWllzlxy1sXX0O19nusF-DV-9cd4s_z8qcLFtipDPQ6KUyNVqehxYKrXKbizf1u3LoNvXgtOM-WPRIFBg8SS2Jd-GZW07E17pNjDEMpWl_xZJx9PIyBmeW4ioVt2QaD6mFz3pH-lr5CuTcYdt4IRhMXlfT0zArPJl1FKTiZtnTzat9F72Othnlovpxt0VBy1oQtkucuaZsdUJpw3QX4m-KtDu1Kf0ArE1c_OEDtAChn-YoTn3JWqVy1epWi8357-eARtmvwLlMjW3Po_6llLbSEUQLHB4GzKay3G6bhl7iVtXLshAOcEE1Aw6gYrrNlYw2s45QgGywKf85mNj7BFp2WMFME0qDzkG5wNLW5wRcHEmjrPoLv_phXmeOAqmYawnEIdn_fRqb3i4jxAL6_Rys080i1K7JThN1YfG72YZPYSRkSZ2S4jLA0ZVRZTbwXwd-NL2HiThfh2J-Tx0yJhFz_uRs-JsWqQDTDvaaAIIL367U357jb_Q5RgNWm2SqbzvGnZJxdgsyC33kssgDopBk8x0cYNJL16HAw9G-2mMHgJXzjmPQbeaE9fwBENGI1SqKaYUoGe35AaxQNN89VR71yqnnwBcIOi9hw7NrjabSwSu9oSWJ-NjyvzHctASCwTGDSvqIxWPzUdvao7zUXyiXeYVPf6x2yfb1uOjOpSg7svG-hQAzF-_V_VCksUlZKtUmqSBlXMeS60oXVc9HZwpXAtTVYoiT5gJnypfZPeujfgLALoVtfDS3lUZtWTbqsRQr0YgV_Ib86gf9YzmnjCwlUbSOIPh6woMbTix-WT2FgA2H0QqfIoB8-d8lEvcJ4utWW-elUEtU_Y2988mSE0lz1e5WNZr1FCzMn_GoHLb9pw7qMSn1gh0IE7TVoXeM5gWU8tXH97TvUK5N2Tij-QnAhQ9j8nPkf_VxNiuKKe8gAsUF7pJlMXOnSnga_VpWnGAv5Xylf9xj03RSqWLWDPwkwRRz7YPMKTnpGfeTabZMflFkotc837fsbi6-J44XJF-aMwlV6LexPAS1ym-UB-nuHx6uIJCONHDqv046DQng8yjAS-LCPUVkmLfauCIHJ536YngVuQYwRFKxfBEkepeMqFKVoIHD4KmNusHlWL2BeYQDfZI3RXOcstEurSveYdhQSrp1p0NmxbQ7NNgQQMjSNEwlhtOuApjiZ96mlOkq4-KzYfeiSC5ZLJTTaAHM2LvHmsyXz_CN0gjm80X4uXQgOh92JmVl9qTJB_RL260GmABXAV30vdtR2etX_6NjnjgK_oAuS-PRhQX5TUnBOcqyDmp8-LZv4RbMouvP2LwZYbb8jEQ1L0Z1GRbPdgjYMiwWmd5GErS7G_GIBmRqLOmfEAxxjLmyGxXbu37G0JITCFDjRye0sCCgJ-mnVgcg_hushfiVO2wAOlsYmcUOJhQ3iyBWevNjTIcVwzObL2olfVoS0SshdG0R7sdN7EXhG8nP34pb1ovSs1HHj3MgfJX5Nf43Xkxq53d1WGxzpEzbde4jzLNHpI96WN1y52OUJ0AMaQSk5LMFRWJEvlSiW1Nc4cRSAVpMSc3VRAojzLJ-Tue8ff0fqfMqAy1Zu_t8E1GDy_xpw8DbRbJVqZd_xr6R6cNoXTD1Qa_vFn_dPZB5MPP3kRg-SwJvh_Fmrx5pPl09Y2u9kmYm1T6ZxVY7PBetsQOn0_bLWB-iS0PRGlNYnxh5fyhWWxQjmeOtbCf5IOHHDENhXUenCumZcKCxOfjvyPBdAy0lFg57qOMXelb6jU5pJc6SLH-tawkxkjIid1C2iueMll3xFAfqGGGF8OIjSHmCD25aJiRor1G_uPhYpDInv3oJhV9Mdc1JqbenXPh0tyh84J4_gh_GSfICmUZk66RSDnuPPP7yaRSbneHr6_ikCsd3IRCBX73Nu3K13hHdO86fHHgSIrZ32LG6iBd__5BuzmlSJEIV989xija8XHaEfX4uobmCcHgBnHtXkAjpuNRVQHdHw41K2FuRzBd4xuTfbI6vt4R8V_U-L-5ynZW8ZPktod_Q9T3JgHTtNYCKeTONJ-ZERYFqblzN-5U_ndSh4hik6STt8KP3ms0GvqAphDScZIDBsYKpN5d2nQeKQOYrdSg474mkzMJZ-JFfsc0Fl-Lz_JkHZUX9yBL2SafGCy-LFIXBuN3qLlO7TxdpJRnHdod0ctOcc-enQrj88QxgBq4UQ5QEphyuiWvXQhaPUE9cyGytDqgiCGM1Bf32PINEG_lWb8CGdNUUc_UcM8TcYfL0EUzoGyplYxs3ckX4EdU-HmSJLTxyKFto7sNeLQsFIKgH004TU5H-AiEW4u3hSdGCEtu3uyPAHvsLWJNwlaNcghVIVK7MYU0sqMd9ZHx-IVn1VwWBULL4FIweESHCZsRKR-JYVlwPkL_aQNA63SSs2wJcDtD0CY64iQ0aDKTc2nc-0oz93vpmO8PpVrgCcbYI7IPFxQInxsXFmkbwCtnfN9Bd5-GhROuwi5wnAxjbGsY7IUOhwsBGFa9WwlJIc-6kCao0OGs56-mupp2NWCk16pzYEEvl3g8x7fF5mQ1s-UdfNsAPb7xzJzXzvRW-wxUmajRWzNAxQ5LBQoVDMijELudfjV63NYuS-Rs1ZYICR579NPuscbL7pmx9cl0Unm_TMSgM1QCLx4ygMlVdIiL7yoyjLMaUO6Ouvy6elq7cIDRzI1F6EQIuL2-PY7vZ5v8yW-qdG2_tbztnZazdEVlqIZ6vhV6O8hdsD5O1cnqU0hZJiLW3rdWnZIvBqRuNwE0yycg5DBfRRBtScSsea0qoElAgQ6QuvqNtFQKgDWzsGR44pPctRcyudSrhgjZ5Tp-wMicpLTif9BG5zn53D6KC4IG7hLuVtvBSjRlt193EY2cs5lVqcPGJUOVYbSX_LarP3vwvEDHD_poJOlpzLnuGO0NAO_XcA75FLUDWPiZ4C1FhIy0_ak-J1vghYOEdWyLP8hjqWUcPPe_62IXzON6HFG_k_B0tX6sjyzl4VYdCB2xj1iDp3oQg1jmr42NEe_ry7DdmfPwaSh1AWoWN_NdEA4gIzgkCbEcpKrnKSrxYc5qZav54bVHq13KFixXt63VPSZxY9xFFEK1aEL_8be-0fNcbyJjwEuY6xkC_gqmaBsKUX772iBrGMB_115VYm5w7DSaq695lGmqZfx71tvXA85kryA3S6s0rULSl29njqIpEJq8WaHRos60otg4iUSKqAaKM2_W886mjvrHxNYyruqlwQGSD1GurwoaVHfiuqmFhbL48YTdq9m3p1lf0qfvSBlSQDur1Ry0ImzSDxC1eiDgnyGhM2MCO82FMjBjhsu5Nx9lfPccDSdZnBjri4pGMf_whWnqc42cOmjVxARZPnH0mhodx4twy-nHS3DfleqoKlmP_JPZa8P__Oclnqemt0OqnJqWd31_aCCHmMA1DKvy6P2N_ajKwLQd3kSWlmBGkhhDQ5INMDnZuLJ2SQ4wwcLeebObodGAw7_8hNQQlSNfDBzVzkW5jNNn9MyklQiBYtueSrbtJVYZ8DI6pzeiK8mweqbePtmjKq1WzWSp47sPgR1wSwxgKfGhQta-920CxRqXuN9GTq1zz8VAEALhu8zfomn-cXBbFN6YlCXXMhx1hl4C4If4QqH3QKQ_fHN0xIGWgTw6fDCqozwUgx1r-NxuCMGpXk4yxvg5_AQXsZA0C3wK7JUdqY2L-fT44iRjgt-gIOIBugMxRpRxDw6_19WDt4oCDkqIH3fMX6PJ77Zy8c3_dh5y5npsf1YUVqP7WLpcdWkWyTmKhxfhYwzStBsbPhPQZm4EN6O-GgrGGChfwcdJoXzS4olb28cGIH0G7WCPrmOL9ObXjSxW-NYaNEeMkHe8JUApacCpIqIIWZgqykZV-Q_tQJtHe05YTHGhfmpXrE2DJlbd19rJ_dMebLZrQbi7lJnOXP1o3G6ElARhLUqi_v55lNvZrSaA2O8zTFxnOMkh4cVxBYF9TIBVeQtXfSHtRXtuB2MuGsXmT4YwWa7Bf9ujfVXJ4QjRnjvcfKrZ1moQUhzrZg16cdr8-K0FHzWloMQJoHqj78shy3_6uco82RH7yGC3gjzdf6p-27_waSqw6Zw6tb-6-K8e52hdj5oFlJwopsu_lZE3uAotw9IVrv4KOBfao30xy9zWPksJmi1zO0q6yZYpAlLSerp2ZyyyQUffvkElo3f5Ls_4tyez3l4Z9JDqTlAq6okT6TpbBnNs4IkKAMBA31gPjkGePeMTXSvI9jk8iE_F89SZqu-AlzkAp6C6TT4l6ntR4yAcZcvfnmkJE2HXPwogkZo1ktTeqW72tFruy7ayMfCuq5PBxehL8Z9YLTNC0biVKvmjGUVIWmGXGEmSEfiApi2ALYXO09yPHMNN-FAmFPb2bt5V-mAqzyy2zJgyGVhZXOjH_UdU5xZuFLenYEwgZNPjRhUZt6QL-7cmUGUW1nX7vSsEVsaap44J8oiUazdSSxyFb6hUNLWvRalzgiUZ40qvyX7ccLCv30tr0rIQUUyxr4fkBNnuj4u34ijGGY7kYcMsRNGJYYwp6JSuGbfSVjRpS5RYfYz6Y8iHVTDSF_-uwQ9F0PE2I7byj3Du2jEwCaaJCJET7xhlWIQYWRbNePtHCv24_xoL_yg02ALxZE0eNm9sr2Ux_7IOZ_QXUsXoVesDszXW51Tjp_Kl1u7vLf4hAvasj11sl24JM5ffIOcu_pV0MnIil4CGBMs9mC4l_rQkniZTOdXOMDTm-LLRtTMDsB_RujRko5MNPgLilg2u2fqNqDijSuWI_WdBQL2UsqAOcMKvu9_sIThnuOlm3PKZRN5rnM5yiiWzJdN9qugB42PZN7-GbumaJDUtdjOqqBc2Xd7u8b6cil3sGWyhfm6XELHNsUXZKMgLjlJfH6YOYBPp6_wO7FBJ4xRK2zSAgGZApNtnLizyS4RzsWkuVha91_rZw1ToPwliobOyleLUFS8sWMCfROm7u3ZeLE0qj0Z91TZLgRI2DepzjnG5nor6Nd6hsJjLGu4LMZ-eSvj0IsJsN29p-gj-NGV3a5czaIZcC0IpGJx_r2bbrXwHeGI7xTZ76geM3RjgrLuXyyzlgcNU4nqUX_57ClrBc02zRE0pizFUBo2UC3CGso53kTzx3mduQ8kYajlNWiFmIgsAXKnwOe6XWsg3X6pTjKn4S33LLoXqDYTpmxTlcKRsikoRDfor-ymVRTvuO8hkT-coFFekLH7_z1lOyuMPQPHj3Kyv17hQebuSQPnZe7TguJgtjgooHYqJbnXXUNBgUsadelXSw_YRQCERAnlD0Oeu_zGfx_-6KSGki0TzMU9gV5HueOHPLSAp3QTep_EOHq8VbofhK4siE_be1qIyE-OhtQOD527vFhlT6hOC2tFw9M7joqc1PqwbAs2gEFKjB0oue-qpBqAujXUChWjNQbtDqYIYgFF4rWkxiHOERxJnmJ9jTZQW_jUyBmuFxDi4cLX8XEtpbtZib7GxRyBbXXMC5sLRQEM7vTGvjLEo6u2PrTtzN8yY0DMnIq917FpdKZ5DcUUbi4o3qhYBarbPomDN1G1CiANeLbQs_AvaCfsJH2s90phYwV73IEUt9A_kIFcRRhAOg-kB1nTz_B6f4y2_PS1YJwTqXdimgNLvQ-Tmw_m08J53BgXSEAXEMh7LcJsTxXOs5YidnqKIrwznKB1z0C3_FQYZ9Gk-F3AZU2zkYm1cDWjnFJEtZIksrLXYYmRg9mP-d79me_NjRuVMYk3Yo42uY3pMWkDw8kZCfpCWSknkuhz6TYo-apOA2lgwLB60CErTxy6MCrrCSTdmFVzyfX9BhzUKtKv4l1G9DiZzqAYUvAwKZ0DBbZAldFhKoidNZc54Mjoih-pbtUaH_GWj78SgXfZVaJ4LLwkrQKV6RcRPCB1Qlj--YzYVnGDKcCobQlk-2QC1_zSCh1xDi7Vb_Dz6gSsDONZD2Oslx_HsOgow62h5tSKhSeUUsxCeOY3K4ehNhLL7RtAoYv3Xy5jon_W3dvwTq953UD4DJOcLcHxP_TSoSIb1n_VpJahJxGPW_WYllnizHJKqbcvWENYphLm3CzRDQF4Jcl6TDQzIamgvPedIT1xjnaJwvUsgfeaybD3mekHIkoUaewqbvqEDODw5ni2NiM9aE7Jp4TlqNx6eCskrEtui8ejoETe8Kx_j5n7Di-eCeXgB9AsXZQbP7MsLv5AgneTBarUgdclr2Ok-KAGoaHUoWqsrRNJmm8U_AglWKjBze4ePPDTxVbSEJhZOu0abWTC9JrU0k01aCcHb2PpuaT_4Ki6hxsNyaimKyUnN3DnH_6Y3vGNo2MLIAuebjHOTRVUQ1tYHqu9V_geVzNXpKxZo7b7TvyNI2_9nE-pdc1B_w1AsvzUxdfwo9sehZCHdW9uR-R4AiL1wPnpgz9-4u6QR-qJFWCK8NKKfTA3s0jPiZnNn4TI0eQKu-zsc7DR_STisl_6TWVdjvz3vQoZE3mJNCnfB8oSyIGh-Ju12REuUQiYNChNtnl9KDAxPo29lilAmBxW6MhSK6Ao6-AMITWfFP0TURmb_67DHw75-nXbXdFmP3sjgXmuo3Ep5RRxtlMBPS2v_E1WUqRLetCQXlUZz1vBgV8QpNXxMkdecjiFc9l--fDCdJ2yE7llMYUosarA2uOwH_7NBPuM8YVcICh6XMLKjXo8dcl1Cv3MBS0EZeJ2W8qD_liNhqBfSZmndd-62njZyWdbmpmr2dH34g87yjWgkEbos-3rWRMrtz_yJ4TuTwS2aN7M5CgcqjCq-1AvDHgb7OevX9MQgnw7onOUBgmF3zlEZLYUy7KEVDmlkOt53ynlXXkEUkJbQyEyeJ0NjIKr_GtYXD3WaPbEvOyeNlIBEAhLK258Z2eX-PqTvTVf85GmQkstVjKF7KV_izcRhL9Vpx2w3JWJZUvXLNuQZyqLTNrezKrukSBVVFVHZt2ey8AkJQ97JK8cLpvelUXtzQVahAYj4POMnJXCVovcMQ8Pv9dUk7hznsl9Zp6Uw6KrmMYbz4wKY6YFynAPHpzEoYqSDwxcTV6iYnzfHL50YMdb6pwzP5qGiMkf3Dzne3Y0KBzajm5bE3Xfv97dPiMm-0quC4h99gg3H-A6SayBYFVwtMVnXuH6t3z9Y5TL6FLUn7H8W3ZJYX97xCxzPpwaNdFsh5Htgn4iNuwT6xRLeLfgxhNd82IumnksGJoaxgVgFoBEPgLWbs5Nvy_fc1JXTfhM5mCtCmgffkDS2q6RtpHVoUU0XvDE8u9g6_fl9NWn8asl6O_-1XzYuxtm1vCmOgBEehyopN7_I6f2OMLE1vu-sQoFFvqqZXNJ344odkDqYwgkpYYCuPPQirxjXCPKKkQD5RTSy3UDIj2h8_Ry-T8Sef9V3sd83iZtA3FEahFNFOMg-PhBx0xe7ODNtj_uUVrg0Dd7G4gGEd4aoZ2j-zAUE5htmCGbsFgTMAOt6xrAeWAq8V2rSu3UXYQVOKXsZcFAvpbwE5VoTMJmN7IEqaqEAKkxV9wRuaAkUw8RjMw0LHNdIZL2CzLXW_u2LMFu4izSaBhUDH8z1ewBA84rS0D_xRq2qMAboNp1FKHsy15UCuJkXY5UfV7W0QRe7g-ASfcwq-VzROeeIIxzfAg4z81PVbeJXhcUwVOt03GO8e9C_Es0h2rQS9asJBVzMMFy_kXeaHMGW4wn9QiUDPJFwetrZTImp1HRXd8fYMZxcDOPYNPnwc0vBa2BwJ_J55IME45aqQ_j4OSeBO8IGh9urcwMTpC5emeUZb7wge6P5Cw7lV_d_lOCELp9LB5hPtrhLo7Fghh6-12qUbBauZpmgm-ewVeOq_ms7qYn3VRwDQFzkIR9YLQZk8SqdkN-Yh5uRPFDiwF8nh1FCxTRmacqCMvauf0_Q7ULFxpexnDkoV3ZsBa6SwQViAupJRPUua3ZIF8aGWmkQCbAH_-EoUdZtIsc7UaWblXJTeXBAJQJzy8yxL6hRlECtVPhVnYJmv5HQKTwIkAQ5b9YJnK9iOfFPmG4nRvRrQu67Gt0BrmMPoe2eoDwt4jkR6FNqgEZWP2MR3AuZ97azNuvVgXZESJ2zmD4To-wNq2QUmGFiZkbvWz0svB1ngY3K_WpPsMVeKqrnzeEexiFyXOT6d_7_iPm7WtYhgJdd1HP7616ZDYw2icWk08byrYGs5h3KRN25JekwwR4fEawV-ki6Wexm5klopQP5k3HQP3uQsuiDoyilKhc-adCOeIehl7u0AceOTr1syFTTpGZpGe1y_1_diWtxAQHCjNvptlfEMsePqnObYFDgnmqbPX2TtMdKFZln5FWbJhV6FU_17FRopAewRMU9qgsgBYvIcWDOKWzZNY49RvzOsYK6wIq7VVsJWzwkD0Vsc0jJD8zTJ2CbLv8rF6x5eH0lgbMAO4fw9BpM6Ff9SGV1RC-4iHglROHraD11v5nQsob84fGyMWhHuhUMoI8q5E9ikkvhD0K-BLhNcxBIgR88DNb9yn54RYnEgGpkeGi_m9eVO8N0k42u6axhNw9cHTa6rEWVsJv4sgspNilvm4HjUaRzlU4LKFyNMX3eUyIVP7V7KpLhsfAQV1CK5qJOeqyEQkXfiJQw2XOzuE9wKN1v0oBwk9KcwUAeMt3giarxs7nOk_w8FKHZpPOFZwMu3CabdEI2ruIl9QYF-IeWcmVuRokW0LawNuXjx4DITqrxIizG7yZMy1wn6u0jrfR66kJ2_wCL8SFimZO9-rvmQ2tR0JeEuGZFAn5FVrgdgta-kz8zyrZSb3n5iPG1c4kN2VCTwQM_R_2aXsNYllV6xHd7C-YqqrFxhpcV90yBAHYGSn32A87yJkJkpPuhHfFD7Yi7h6QkRJ8dGkiI0y0aZDH8Y8vgsFZ4dUnBuHccJ5IvKZ__uO_W84cSCR-d143PRYj5EAmP9_smwT9u9i6xIWVTV40epi9S_tHYQpc0MgQbauQuJsyxH4PPFThBiCH2P2MMTjWLCnsyRtKvqltzhSe4GHo82taFpnZ5zUwZlGj0XNoab5QNgVxWC9WTRRic9Q3DGDH5gPzfq6sP575WdHm76kOB1oCqyNY_xLUA587DHnnZFvgJwm9Y6aW69-iC18UDNScF7_vAZIzT_XGz7SKsSGAMt5BoF4IGb22gJRR3kvw0OpuIQD6AnOqH2_3lVS7Nt6SJLQ0y9xNdd5QhXe4pGVt8hz-PCt8Q-bwCL3Xm6g308lPffFbvR2Q2pIY_G8qIy-i0n4AYHBwmDOMpqhdiAw0HBOWDdnAWK6vvGZOJEfMz1n_lcndZPuDrbMQKvTaxIWFq_zMz16xFLRJR02wklDlkjrPwqwR2AtZwz928SpG2Ge5icOpgEj9un8Thhjt6ApZVi9nWdPt4i2mXwzWxO2f4Fo5_g7I9375P_0eq6-gRo9f2I_rZWNJQ3laynuV1dTl791iIjBQ2bG4Rr7IqB99JmG0flTKTIx9QDGuBmKaChbpAmTMRrHTuZ7w1Te3oFzPTE0JsivIl-hs7z2zadV8FVMSBAco-lthxiXX5fCeG2ngkn6leRMsodfOUbSjlDV9JU3z_n7bpK9EpFXPGTthivHOeEBx9ILJy-lYKLP7wTnQRGsBUMZi0OFSz_rc6ag900BwavICawLCsSNC8PDtbd7kvXk5aSj7zlWEMK7yjo41R0TBK6pZIJZDoAcqZaXLC_aYjlgqHf2AuZfpZbnPaWFREXgTUSoAw9dX9I7XQrIGQi4KohemafIAmUenTHkrMwcdtI5mQLQQvuWQeanbB-aFwSnMhEujKd81hPOnjXOWgNQXCDB4WeNuxIMqLxi1wxEbJVV2pVmbh2D3LwLEQC88MhvDSs2Sylhh7iP8T0QF18awRUW7LqO-32P-qio0j-AzJYLKNd2FCCEqas95_OdLNPA6TqH9cR-qOSVu7_s2m_TzFxCG8zfYv9Fbf673A33IBFVz-zY6VqS5jYRA8Gyc6KNAiwUCw-7j2zik2PF1z-STXZFJUdQMT5U5KrHKY2ZIqrItmblKK9vv5edSAJKdiW95lnurSV0ufqmOT2Ee_hyuJP4DvNF4ynq4hq-hsSew8hXwmEZ78v2JjOH84Sf4WCn6cSNAdIIIn8M28xb5rWiYdnrbyBKceYa5_IkWnWG3px7jPAcZb5uHzNKbHuZHNm2EHVWIgEcLQWQ7g8xbrPzV01zQFcJb_F89u_lU11pkZBFXtvTjUsvBY657XtprznvnsmqUyDvB838D0F3kglVaOYWJ7OqLpUHP_7oWQr8kZWOPLmwRY1HTk1up_JV2QouRAb8UpgrDeehpnzI0X3Ulh7DGk6flQeVyR9E6TlgK_3HbWUgUz3g6xUaLpka5L8BKymA1gIb9VfFpMS2fdSe9aKCSw9nldT8VB6BLAsqwBZovvmAwSxrSMrv2DKnHfuFHgKttPk9rOg8BiJNgP5v4uWHoZbBta0TGNCORViMKa7iK4UIHM_0V5jD_zse68-czoWOb6BX71Wym6SGBlnX-avD-r7hHeZDYe0VRCCgcZIqx9-k_SuYzyo6CpyK4_0aVI1_z7KJOXEKQmMbSYY2YUvYB9owVHTMrRwpAQStXmRROZD6WdMEmjTJLHdAUnSQaQgXTNf0VAqEhrmnPG8cYe7TOz67riSzZIMt4oQC3QEy2_zoHvUkP9Iewh0odaGb8-ge39LVg1PnCuuc96eX4jE9nsr3bkHGRWswZc1U3nR_tRaOc9S7d9KrNWst-kpd31afEAyTgGKgunDtGkYkMPgsSoJx5BdGWnapvMXiwOaPL8xu1TNcuPfPZpyGQDCpW6lLgjllHiZ2ANMX6nldTWAiKgPwJ60yDFsb9QKogvnkEOFBjaNHkvqgIdpgF5Zh_L2qGcreTtey9-mepLbY-nopIXRphkOQ6aHrHoIhKgVqA_USGu6rQp65TFUG-nM7WhaMVOyi7LR7kdksoCGUCg9E7bbCitNI3k-hULLwjTYpldkS26aC5vPZYVPRgF5wdft5USgBie-dPA5CekdjQOqpiHBYgTb09uXkvrEU-DT-ybla8vh-8Jz48nmoymsqPPm_akAddciSB9yj9j0YSNTM0jkTqcQnyRMiPFVVdetqJ55-7RFjJy6w5dgh5z6wiLgXwsIgqVjb-1AqVKd7J4dJ-vlEMcLMu9Z4weh-3_ho1XeBdc1oyw_3739SmRBBJQCleIk2GUelNHhEhUQ14eDb-8mIA1QYD027NRS4eHdb4lI_ArvR_hhw2O6rjLYFVbHYtT7bzHvUHuq6sdPzFoD0WinM-gO-s3ZqcXVE6dlAoGvzN5OhdurOZT8lrarJhVzm2hvOao-vH0ZqkKamnv-sGgjX1ENoivUjb8SeXmGvYxGbuuNGKN4N-vODizG9bAK9trtwPt7YlLXH7NXeERHOQ9ps8X6FM2wko5SHBniI7zr8VGay-AzF63bJX98xtk2EOwD78ggNOJd0wcvbsEHJgqgH3oEVtKwGGOqb1DJXhPw-fSxuKsn1j5gXh6oWaQsHJWa8ef8wAG6xfy_Qas6Vs5CukxRAG-XIbTW8FuxuFLMgtpCxMY_sucMDRafiay29jZKZDS6rzczUrgo4lVoanzf4bv-Nr4r77YpC2uoZDDdNcYJYCChTfbWah66mPftCj1pJzvQ4-Qz4avwhwnmjZ7dIQLlNmUrRzfNaRI6UZV7a0VLEIRb4V0Wscin1QgyzLnVWBSjpJHf4UEBaUx5f8SlxJxAMmpZwayIx5lcPAyGGb1ACve4j96afuF9IGryFsH-lRs-zodxQBHsLs_wg3huRPEL1MvcfF1NGxPhzNKmmOltjxCUGqbusKQ_htjjNPOYxLRMJl_lAfNEdYsiPuWGN8WcdLOYXayzL-GSb8eKeylix-L_Abzr-1RpFtQZCXTXG43xL6KUsVW7EQngkoTnl5chAKVQZ1euJjfJa6v8W4w27ixOAwbfZ7SGfua85FqaGEFJFWaZ71_e37XBcIlmtir7uq7HzRfPrz9VG_NhwOWJVaY9dBUyV9OeHIXL7k-tQ0ap1SirrQZipp17HpDz8EhqeB_RGKWOMlC4-QbrsHGV6h3ruUvndGy9UPq3atF666r2GB1tvGTIfFyODCusGEVMZElRZep3VlP4Q1ruEKlbQtb5-cIoMKlOvfNAeW5LkdfqkIscPylV-nSvi2uOic_wkgdKyzrUEdCXPhmwjYRISjx5pRFXY57HS8qjNcy13Z63MZGLJZcmstO4NQNPR1J71U6LIJK2rJfmT04tlRF9rg0BKCDCb1SFFBFBVfqCFroeNwEiuOZusKT0umRT1F-w7gPenHbcizfv0yRpJob_HBqdTLb5kyDRk0Y6aKr3UxPKdfUWoYEILT86bdL21ILTSAEPg7m4EKi7wjjKQXR-QLVFOmRfMMmcuJw4_WHN5bZFmr34uMImxybfHlzUPGy9FDQFzs4ieDKr7AoOXSxSfAOAbq-cxCHamT9R1qZefzZIW88U30kfRm7ctZ_y4dBymiqPfz7KBs_XsuSgzUTAGOnb38vbPWLxs04o2RZegE23FAvGuoad3VWoUW9SK2ldHAPUSmxtysdu8NwK9CZDp3VjFhplfC_noxgz5e8UgpoUfQL0JTAhpnE5S3w2PJSmzUhNoq6WBo9TdD43wgKw5l0mz32v0MYWQK6vPGXxNIltBsr4MXRv0owC73JDoH5NOznuCRJ_JFoZg138HXcuwUNFK8ykODTUC7SQ5XMJAnVRJPRUycraFzh-wppkAkQ2sQt2nQhP95w_MwoVjXsLiyo02C6mBuF-qJKshhafUu5SGOVUXcBj6EBtnM-mm92hwAP0z6fVWuesLcP7ERq_5VbJqS1D3tHSuUlgX26V1ew__R_Qz1p0aGKls_W66tDSpoI_YrNc_jsD1ok9iR7afYTZmYX-AjazenHdMzi1OcDrCPnCfCyFYsTqhDGVzyo1nyIGzLeZExlxHzfvh7bu9IU_TRxCw8nmXvBuD8MdgvaTzrvmp-qSOWBa4kjfNVGKQA_7peWV47h_pa6XHivnNo0O88K_C0NsNpLI1C30fCR39oZ1wcjTA6etU7hAarkZKStsHWv-bJphWRlwtyfTQxtF9yo2H1J4hU-NGstxx_WIHrGQ4cAt83CBSpeeVzKtENAjWofdnuQCYIGBJ29SEywyQpG63XzHHybpXrsjnXAhLYimi5RsOmlawn74gPN9Y91-HxwSPWfgvhvpTAmu0oXpxSrUjLCTpmd0dcvPit_vTeo5AZNs4Pag1opdg4V49nd3fubwSFksIm6tnCGVNn0KarIGyWsSv1xrTFy38TKuTsDgoLrY4oq8h9X8_lA78GuOaqzMSRCJYh_IHhAVNjJDKAJP_arDF2M5a0LkVh3dr0BqkKSl7XM5TXd-3YkQiwSTMnDBUX7kVUoo7TGVV98RZTnpA3Nicl5fQsgUefCNa1qOKIyT6hYfotZwGpo-nQrT9hHXnci7mHMmiw_E2PD_5g2MuL0RvUm3YmhZFDaw2Gbgv_yiXtxr_fCg1UB8uQV3qHIrPbx4kzs34mg461fvxkouVb2dA9YpAo0Ef7pg_lJOP9TsEuJUNZ5NdwIjhHv0t1hLb8b8q19DvzdmiuTNSOSuMpzcQZmc5RXnw9X5w-JXpa7J4_GpiWM3xPIWdfYEJ3LoMh5Be6wg0J8nj_PbaTWaxioNje8HeV5fgMDtFZaFsfyuZ_VkuIm9A8M0wRfzaHyJ_3c8cv0U4W3N0ge4fFpYRjDtQ7p7oTQ_2wCQhZ0SwuJ9J5kh2biqZpGclBAHhAXvrVmD6KXLQzOABGaGLa5yvKXmZNBZkLBTzvxHLHhwXDMATH-VmriBFcmci0pIGksUhx19iQ9Ved5ik4GkflTYcbTm29vxxUFOsfQsvQ30oK3Ac3-8vUpZV7D16d9er2PxSPIhyEm0AUutR3ZRTje1KB_9BNtNkF2M5rUIEa3iFC81igJKtv9NAhfnKDHRui11HBkYJ53LZdx3pcrWLB9NQPp6zhGqUBQsYZhHImXldSCIuiSILUafGLouS0IKbplN4CfdP-oPcginSIFUfTMVQa89mgbFeR9tFjGM9gSeol1M4D_razzicJWXFXeMIRTx0piP2FajsBYhXj57BRgAsmwPIyv8v0oIIv1_GPQdl2785JtqazChrxFuYPU5Oz5CPuRFd2qQCCmeNXzKK-MLjv_WjwE6IJUpe7gBWoSUoz7TbD1oPfoKC5CfH7WVdKZ5-pQFjY3xAQSr1YHtkV8ZhmBQjINVI12ob7S_2rSjpIhC6hVAZA1tqgpyhVfMzjKn83dZaB57o9Ve62lgZS5ou3AJ19SkiMgrEuA4UulA6Cm_aQXBkAEh48GwFyAYkhvffxfREftdVuyFIC-h1ccE3xGAfqKG9vzSj0IDha1hEUlRep1qbsShvJsUuYN6KytNp6iTOD68VRBvNQryjvPP89zDec2s5qetC8Ilv6HYuwm57KY5P6eGefm-FXtNOOB3n36cIBoFJ1AdN5KZFydSf5x7RDfdaHE0orvIiGFwDKtWaSb_ZUHLWZodswK4fOOJjDyADLMErcY694yr0bVyrBGtNbWbd50l-DGonEIFHQxVIfZp-Ed13Gm8-XQm0ZUcBUs7xYh5GYVLtWDEl4O1Hzoq8JwffPz0ya2b1z7YP69qP5iKUKPnfJnRg_Yxq-hXv6ZB7sIdj1OpuA0pvtpt_fmVKGOpUuf4sjLxOjwKIyJm7WOFAdVIb6JA_nCoi7axKsaCmZ4RHeFhND5td8Bq0Qk6WQ-aYl9gYAsNZci8sFyGHiFC04JdPUeU5Ibc8sw8lfr_y5m8--ultYCx7Re1wjFfJqRejyLjfBvJWvvKOxu4rZs8G2v6bVkid0fkH2tuIIZJbQ715pME0d2gBUnSRDVX31s0oRugyGKwxhR3VibvyEqT_6i22_ZkHcB5d23TnRjNZBpeHhYpDMumAUdfobGNtBhHGodO-q0_zMgPTc-UL6H5aOsItLUHo-uuBDd_ml9uwhNST_2sYdb9DHMWHFZ8qpdnieGH9upsI8NKie0Qff_-SrD3jaLSYZ3ahGLiPHOoVcFgRDgt5EuzQHppfSj0PuJvI5YEAtOynT-KMKkR5IJmbsYqGdN7sDC8pabDtT6Q6kM4nO07Zmi3fW830CcWlWqcwhh1-2x56OI7nKdiynSmZq7Z-d5HAtzQcwzirissuqn29jz3bOizXG2AR0m25cndmpzS95f5YEX3mARSdkvmeGz7juDv5UI_YXGkCfDxLrcZE2byq3-BDdJsyaNInuKj5xNtdPWnPu6o8xM-B3nJApjpbQyUsrCmylYoSO9BkNgSBj8ABgB9dSQI0_4ZavgP-mt1cJYiAfDMlbSwn17qnpvoEMpjtGIWeq9_8dLfNi54frTSWJDh2-2c7PVQpyItyjLLLZ8_l0iVBIymUVqtEXj9E1Ghm8PRjb4Gunv6n9DP5wTOb5gIPbTzQS65nsyKjiUKQWE515h1MGdf7uqtinGiNOcK3_hK6rUDc41yvu0ceWoM_NEn4d8lQkJKCI31qEpuVGpYEonNf26TZxhqzqN9EXx9tNy8JloakUULfEoGxeKR3RewYXrJUY43KC1LgC9W0fJsavebkTNx6T1uJW3beH0vUI0NLmFwHQdOrQQb2970mfgsjw_JXYI5iVYxuAK9g3m_n-L1o7Og-fNzahKUQieSlxMkj6eTZEkBmb5D5i3KjRXNdI8FTk_mS6JoKTJpE-i33KBM9-jgfr9nf0fkF2RfNnnjDtP5drxp3vhKQKOCNmsTbl0p-F1NplQdRMDsdyo2coHsbTtDAtAZlTVWoXadUkT_I6Z5ktPBwLnwcWaj6q4PXwXOR53gFy9mbjr3za3489k1TKeEPUmQJWzywkw0cKFlwa_pvDI7RZnizIxuJDcu-pF29SoU2jb86Q9BF6I3iIVRYWyJRa_yK6V9z1AbtgQHeaNdSrdfeBWsICEIxvgVDZdAWQCuphPe3FAb_kDx28LYyLL1-tX6r-ncZReyFu4L7aRNXPPEhxLXRQA1jP2Tow8-J94g5_QHQ_nRLovo27dHtjQOYsPoAutrMH6TdoPMwYwvgUObfIyRTAN9tPLzhBmdsMNUlM81YjokIfxberB2ZbOH56fnfC0C8E8ILQ3Hulsgt61iYdZDbE1oPYTHK6k8A8AYW9EQnqIdyIyEt-4C6ns5SIxpLUTmgSsIY-aqNUIrhOvPYXygVxKc9khoaY8Qw87WrZ-9hUC60xCyCj6m-2L5g4pmZe1YM8iE75TQFXb1CfuR6xyy7BD2bHG5WuJsgiHAi9kYQbj16pklfckmOI7A9-sj0qDDQmCBggvz2pOsv-paR_epXbHIZhXSbV4eJBycckrW-oS2OPv8GiJfbn3QtGyrNueaDgCYvz822EWcN9oeEXLCR4jZAYXC383yQXmHmCkxBrL_exay5fByefVyc5sSK2Bsvq1wIqbZJbPzheDsN-hWmOPJECimFYPcpocOK0_XFM17yUKVBuyxWeGNXlBVMOR7oinV02ERLb1ZPN38jiZA7-y65KQokMGGBZGIY4W_qe_U5mqOO5qKjl7ck99dlUooKWgTmoIBuX8PN-qatTsFhOCxfIhP0RtvPG0uP3eGb5VmcG4G0wgAfeqW7rVuMXnB7gyLd4spcMaUeyzmSa_R-CHdXDu6vIovUNqMjw-EzidTiXzBlTvuT5-nzcibbqqJwmO2hUSy5AZtPh7R6lxyHLQnf39gEB0HqAUH512wIIMPZLl_LbdmQOSJESwI347EQ1m2Y37_Xj9fXmVedUDmkSbYaMCaobBfym-KZTYmPDO3rdHf0NTFQLT78vGdog4FvxBwiaFXypHgv8WI2UxXsgeV7oPVGvitoKCh0dp9SCSFtpBskzzvOhI_n3aA9RpEU6O5zLnMam_ueqOIG_dezOqOc_pGtvSNmbJpQ5PAgYNTEsb3zLAopcK0l947c6hR_SG7fCjOg1Hyu6UIHQjTsggB8hhWuNXsW0aLeMrVE-ZCqt4KV8OD1J1EgEzb5vJuf6AVIp_SKrZ124CxdNlgYDj-TByCna6ydw8EGuzYq8DgZfImlgaSfpIWPxJICPGOlWaVcdF7I1prEuPa-eajrSLOdKRfM5pLlLFt2S7rPhs1mCUaBqrMj3i3YJdhykV3rZORVkWBb57E5MKJq5v7rCBwGxLSVjaCdMudDUKG0NV6Q4karv7ZqGt_oNN2qHnaQc5rh2SovMnbX9TfGAtS52uWnlinDM-XnB41IoiLGdAJKjVA3PPLi-2Zkvs6d88giY0_nuVw7R-ZBYmBE-E-72R4aaos6Ed_tDVdnx7DhWKi4b2l--s80kCmeBzV2g6lA8vWPFxlDGeeS6GugvBpkd3le_YRsM5Aj6oq7tMjrf3fwpAOW0myzpeCBg6HKrYO7bIthwQ2sbW1UG0uwyKUP4lQ9VDln7qRiXz4bBf7iyztfrmiMHwuupswf6uhbhkSLwJtuX2eJYroOvEpL_cgKhk107NWi2qIw_WhxGICYe3GpO0vAr_Kg6YTzzeTGU11P5653cgd9UPhZKGN9Dc659f3ufJbTnWdpMNw2XRmCs-jOjz9M2SCZWqJs0HItuioYvMobXegN60wOBMBvCZEpVPIP9R3lG4KAuTquMMl5OCX5YRgX0xXz_6OmbJbSMIQrw7jsHLOSc-LNVNAhCySm0ybaAN2Qz7vPP5TT4dl_cBdE4j_gqJcyoRQsXf-0-pMm0dx6NqFqBKOzceDc1CQO_YB2IiBpbrF6ANZS2C4unIaTgNAbyLQsC9fGj1RqrR6kXXsMEGosqrlGVSl5zM_yYfBXeWIsoxISBWgA_yeEsiZni8SlEqeS0ly4hHNHWHFe4tp5GZSTxHrteFEBEMWVIRR1ifQtkiktqg9R1-yYgqnhR4wNBuQ6nFdLuM9h-bLuYbB8m5sDzCFTkGpHxveu8WxUEWmxorzbuWzvBouro1BP2LDo5RcpWjOfosMvcDXIvD2dzPi9KnBBWsxh4QpTMbm831Dgz3nkZa88Vfys3RJ60hN72FfFMYq2_0Jjb1d22lPqXVdzKL6BRNquhMnNcndIFqSWQ7CffvZ2eB6j_dcSOMx2ZNKo5UN3LPUcHv0eAjZfXYLjdQ9paTOLxMPxQDf__Yy1X3nh2oyCPfdv1JH80r4wtMxt3mI5B_aOWY_AaWtx_CaOdWTnY3giMM7rD5qJH2X4Ga6quAPJMMiKpy4R645IbdeWUP8POHV43CVG2TBtdrFZ-ZF4WBnit0a5cuGox9DBnKW8eIPg0x-04Or4NGfEyo4avebOzyrBnLetr2jipBFYKJ0lN1vI4zkjtXRpOGrOsQh7kerzQh9Khbm70sMg5tuZW2O-QYSA2KRkfl85JGgwDaAQ6lNa5QQQiFrMl_WQcnSQV3RgIXfUKCi2ENp8sRx62YtkYEo-rnLtYC8snVzpAlL51Y1Y1TMFQQPydy3jm-9Wo3lr-gfoTbbPyxsY-ZbH-QEyUQTcGh5p8ie4s7S2dtHqk-ZQQMpGNi-9ofeFW9jighJH7GU4vfiEXUKS5piReZ5vshmBWXqxuL2xj60Ts3qas6cz-0daLGCSANq61l0pFWF4q_CRo5wvu9QLcSKibisVEEQvNfVi1-xX0Bqj3hyBC87w9Px-BU4gYzBbJ9CSjmNLDrulOtShQaiID3lkQuM5TaFrLECkMDhYhOWyXiMIsHJhVWJgmPX7onRRD1bJnX4HrouyGKuibEKYxqHBrRoQn17Fv-FyckoWfREYi8Kcz7iFg3mi_yYw1-8H3Tr82YaxYsL6mVDajivEEgsiQAXzYDpZdimSo6wb0PiYT4ptYb0rIEMqKBtLIXrWELvTyqDN1N1RRm0GmbuevCkJ256Q2Fph1V-DDbCS0566ZQJq70y2ssiqh12i9say61alFtNH8zEeEFWwXQWy_4ABqKlRglGS5aumqRIsW46s0Adk08Zfucgz_Y2lflYlw3i-hrkzVG1tsOwfppv5czbLyKv0h0pSw3gYYLIsAPQMJ5g-u45-CeGRa-KVxIRbBpnW74dPnSv-w3G0YnjHt77w21QcgiBehqctGbfUOkVHZqM9cSpiOLwCO3okqxab1GOp6SkpHzWeXxB5fPzDO8Jn_anEFSDLGUxUoelJVvmCM5uKLAeyKkqVdkHKW_eHLwxxawa5yrTv1GZFc5ChpEWpgr65sbkjTADL9oARdp2XbohhlI6PGG9WNKkcW36DPYqfnFKgaPsqzeMJf57ir2qEkL0V6sXrHFM3lLXMRWjmF6ma4jZltpyOC0sw-rrL2cAufRrlXEJ3No2A1u5fyB_UIWq5u_saAlNuUIAg0xOx_apSWH79qJQVMeyWKCINqLpOBe4bGXrZ2KEs10r0bYhQGBq8X8epkJ874dD7_HDjAPoLChI98LlwwMrCT7G62gEN-VK8F5yYFhcn-jWRs03jjF8_aDHKFnd8k1Uf4MjvX7VjBZUku3BiP7s0D-EZtxQ2i3SEsISuaB_Yliwj_IFth1v8eHs4mrHbPRD4oAEODY_Fi-afPjPI0gVvIPNV-wlk3bFKbes2mx7alOtoPomSOEBX84Ep9ppmcdgD1SBnHJYckJwp9ZVrRnA6r1JiyJHt19PckAZQbWi8BNW_PtYQeuawRTzpIWo7VJ04AQtJCYHELVxKi6QfTpKQVop0Az7iBfvNcAQi-vwNHrz0pbr_ccX-zCfbfoXvNQCLI9a8Nnsj3jgbIL0R-M1SjCx-p55TxzfDOATYBuxq8OeNtYnnrxqiBcW79O8-OkNGcfusD_vcCFWJOOJxGmo6ey0cxC5M8EsAfjLU94PZrzZhoJPv5ha-MaYKAMSh9fOy4WKxUpYmu2HX4cRyl865-hZgh13f1EFAsQGUg67e4P9jk8DeZqd3ScCP0kccd0fJdCDhCAXhCKdE8PfwY9m1-WlZDXHZxo1nzXhpH0XqwU_e7iVnSkSa70HFNIyTZxozafSvqlkmjkiPji5j6zJ0q10Z_OJFhIphgGlMlTEp7e1FqtZF29ThWfWwIgPbLouXPTjSP02VrECQoeHxaB13ajD6aPjCeLl3rdU-OhDlHLGWlPP-uM-pJLdsMGAVbvZxHM_713Nh6K7Q4D9YD3TFAPYH2a-87Mkaw62jPOobWHK_xkXh6smozNzdbJO4KgEap16P6jbcoiEBKAL6u325pjSYnUGr9aHiRlBxayyFaxhHeuQ7HGCNgOqFRisj7bNBoY8Kk9DGdD2_nf64Uhevus1l9nLPPTw0c0kHlT2Dm_ahziQzR59Pc0gE1zgREfQEg_7q8f81BgZI0FhzLesis9xSZnUPbFmobygbOWQd6sUztilrXQEOUb-2vAAkoNoicpE5wo1H0HalXMv-Tza7EkjKHCKoPuFgzYg4FN6R-43GG1jagCM5zdMoXeToTO44dpl_0Rsx3ewmbWmNJQS3TFfloNXYtwtNxXaylAghD63s3DOc9UXYZZfwmhSdc3419vZkRGJmvwz5tOhb3tbLrPXNvTYtzYr8f9CW8x6Yi20dd3ZoD2vTv8lZDx8lmEyOmw9ww0yYHyqLM9HCSESVXYgUvf-JHqsi6geF2-pECdcpIvKKhVcTAg73ogvUn6yY9KTgmf3iwA6VRwS0-hTRjWHZKsahx5Y2Fgt6GGnZqvpAudyLk6WiwWXBO4EpI372u2pBsOmzivwaBNq3UD8tyatUBpm_61-HlhoxBE9mZZGciI9VZDl71W3l_7Pkne9qBowJDmRdwgZqsh6IV5dt2vlC2Y5NAQG2n5GbjcchpdVfJiJG6znpKlX9CBjW7y5eG6c0RQl0E_P92MVcUnS9ZDf6QtEDre8qlWuv_qtEltsFDfvIjG4xA0Br_UOGcVDKu16eWh2jUHrckLTEbHeu3zOBLer5A6hDLMoS_vFBpGfkf8pXn0-61Jke_AxDA1i649sUBg1th3iVJNp26ND8HXyHkcqcUPvNqgmPCa7EqYYIJn5shXbxWgqDsM-SEwtLBOyoI4culqiKCzkzrwGQ5oyt9CNzQ-IrE4-BepfgM9kOgAcUUpETkONh2hWEhoL0afiwcpCWOnvySBgknlJfPCFqHI35pqLXvw9jHNz8NhCYpaOzkd3DfYQQUEjLc1njUDI4YBbCf3ZYs7lr-G5ZyOMLVimDI3psAQxC9eZ_jAY-Gn-6L3uOGv6W8Jt0bdpWGCk2iJ4DGOwdq2bRlAoXy9p0M4mh8UScU3yJfL25tvOLDk9ziPMoYzxZ9XTDuW5b4kHH4axAzZnJq-j-69msZn6TzNUB6dZRcVUcSAJhWFX5RS85I8az9rcyOy2_T3HmqKVBNDrzsLtHOznc8xgwKyGtHbtMUPdETdStXEg-e7mCxWFry3oBwXAYAFq75pj_gHsLKGyakGiIUc8v7EWLdiuE25JKx-5EYQFV90Ddzp9PM3xFfoWEO7XhQ8dvn1GefaicySOsDgMSHam91mFb9akXaRjJuuoOYj4btseiPVD53AqFjr7mY3ws6880pjAi6pyrjLGa76dLPNLCV_yf5PbNrZtfo5Jd-dPKEwO7JNP2zElICBARa64ain9tMA9xKf_uFgweh38Zn_gcLKo_2_0PTsVk6ZnHuSYlKolTBGvx2-KiLWuT9qlse1pDjODjaZrsNC4_GrvLmCeAPh0xpKp5hU3p5pqZSHNEXtAz-65V0rocFGpbcHKFz71zmkFxQkRen1GS5HhboGuiZcgTTkVoQKkgO3ttQn44N8gTB2nkjY_VMjhL4jIG9_2oumun9Fe0EOTt2RbbBd55PpYQHQ0e5VKQsa1M4oTQU_QAtjuP1IhiEuKzXomSPDYVMmitfMrZ1QkX4Embs2F5Ck5h4EQg93Pliknv8q-5Efdy3ramk8CV5Wd1S0o7Tn6151hdWXsbHi5G8lEpdC4gRJsvnS816kuVnqNEge7_k2nhVk5PqLPd1DZNMW55mtRnNE-lHMBnX5MbnUcle5pWCzbf-2VBUTy_vXplzNrSzx5kqiuKGT5bswfak2AiZhiJIFcg1tZtxcbBTIbhzY3HVUsQGNyL7FbSywNqi4ESJeOqSZWMCjsPxz2lUpTCuO3LjK2D30XgwtRFODMeA1xvF7K4G0ijD0JSmanJLWLQAADnGLS6gR0lacIOOxXSjeYcIa0TfgLE6J3py_QDu0FCNmUrx3Sy61oUQn2g1yjTStPCDrouVh-F9rEf0y3vZ41w4aO9EnJAVBWrdqp1xheJ9-kKhEnTVfROFXLQ5-SPtTe6mvgaSExw2dUfQVNAgEX6fW3AnR_c73-liZ_oSsTHH_QgARfQyzgms9HXXBziu_X5xpyorJpU-DtFivAo0CiN2a8jwwSpyu4KcseXNvBW3FVbtE5So_8CTz_wBNPcJLfofBhc6r1UfdDKLUHPHptHs9OwVcEP-UAfTv-7C1DzAeKkZYB9TU0OEuvLj3U5kA63LuS-C_XVWU56mVr7D5Albgl6QgZYNqaucgI3ch8A05CwXBIe2Sh4G7NhTEbzn-v08moNsNgzcFQbpxLLgfB9GxaCLrxmHh1LbuD0gFNTG2f1TrxM5MKB4Vuxt69q2FYKlShKZEjX3rnV1j5W7gPQAqh-94YvMvtv0iLcCj1U9BQ34dGwe4jQzfRqgJNYiciPYBMkIN0P7CEHh9-CjtbVU9op8okOBTim-E4WOAsKlw0AsiZlJJUgo4CGuK4eODu7M1oPuJo7mV5hkwlyYUCs_fi2Twz8pXfQGCMqgmyQKR0eOW5cQadZhu2W_p9IjI_rlyiewIziyWy2up-Gu3Jtke5dGriH2JdjrCkJTWNPma-AZay9yF7t5NTeGUp99dgBSGwS0_Q0ibQ02rBwI0KrLCCj1gxZo2cyDh6YrV2iIUbw6p_UW9Owa17t0JxbOtWyR3pHTPiOnEod7NgS39ETvzd38QyQdt_q6kPW-QmHqxk9vLGW3849d4bB3SqU_rPulw0s83uXGPHcSsYfSJCvRSJCscBeocL-UmWfMWVmVNgFNKQoKHNlf17wfPZPLjG9jp7B8t3gX3tahmfWGZzns-u875nTjq8PtklB8aI7xLWsKPNDXSdA0mMKTzn03hOkAaXS0NEO5S_BA2Mi_EWF3ZYSuNfnr7x6JIOSA0lcatBkwEh16y4H38XmmY_HQsSxSGeZLq2Gij6R8L5AaF0Wev74dEjPX7tWftaHE0rzRBPKqkNYdBmtRHf7wtYSovFXD7_zD9D0YAa8hN1_xPbWuYtBo0dLBmsX4bubLoxhTE8iwu1L3kyL5AQf-bDkH4-O6Up0JZZCQ8cxn2WzMgxo-PXcml-rlkurICJAAV9iRF9bOGsv7FzNJIJWauokNZoVfRX6GUvr0b4K6hS--F7YV-zjZpwOmghFgH20ufolBilzhwkzfkoPrG_G-vR7j0W2hdxXsRl3_2v7b59zP9UjKTx48eqkdJ9zQU4HZgqXnT9gwg7gaZKeGv5v11nfK7KWRwrOpGV1uoZ_gwmY0nZ96vaSt9uhW5Rf4SjG-g3962jC-9q6lDy4spSY3545ef9YjdnnEPGxYp4N_MFRN4DJCEAKCogpoC9GmpGwKbUe1vOG9vyj_El7VepOYWilSs8hKxfmefeAeNAbSfUuTCuUT6cv0ugTkmHrNMV2nP1HjwEAwLbgeRw0nKzjJ6wUeTLVE4vxsEQUu6EoP7vqK8cEGO-hd6Hf2BtGNoP9s9iIVdjLgFuAx3i9oQba3G30mwlX5WgTJZPp80WPOBBg1uqTtX1Ypehg92_eq3S0lCb1LXqYLvYlIzgjWr1E09zoq4-uW7CDwS9uKqcoOkrJgM6XYZk4VNdiLkziI5n76bkzz4OyzVoCCBWWkM0R3nRXS9U6IyoJtchwpg7G329daDkFNTflSKvg4eg4nIsp1jPqhHrnnBPLHxR8YavrC6fAwcF_8NmeoH7hDtM-U85jAYMtVrdqGfl29YJwJLPRwzMUUI99qIy49Luo16kJYWimw7RL_TQI4lXCaimWYEzLzQOMCTpI8i5I_XeJ2ud1DosrjVdJEs_JJnDqvM9YhpcwOQEMjpPtK8YsBOWYI7dRS28K77uRuph9kx5tWEFf2DgFQvr0awigqncxikcPpmxdgbIn-jRP2Llaj7tZ6-DuMoDK2fOdHLNG_j4g4XvCwPaMFevpJFpDNihkYdflhcO6VK7d3Mg9REyfDNoudEULk7SRhjnVizsRUe4Dso6NdhBkGFL3XoaPapQSJr1rx8QuxB36FYibNelgWbSG5ez-SKAbHBkpv6DQtRLSwAFJJ3wXPNgncg_RF2Mfc5oGjCo5udM5B54YZ_v8ZQ_DjMc7WR7aw4dpMFYL0fegHz-w4OornT6N9VH09fhC2V9PUIU5GviJxUjykhcdLPvva8Jo69nKPqvabIEDV2OAD6VlGh4lqRCE5qsr-Ifs0-X3tIlAnhdN3g1OKCMENeuO-gvyv49mI9JLJKDv-i2FxEGz_xHIEtfkjBMWUp9Itds3dUeepVk8dtsA3P0qekxQWIth9EARHsdRke5cidZGVKMpesWoxj-bsL0M_xZU9A6taEJGCTocGsoo8Y2RDdJ6T4CixLXJ5QAC93Dd51yZonG5cf6QBT1rgQJadnHW1MhkWPjnHI5pz4iLZ9pMm-cT2dPfGNjXO8y6ub-HRGEq_SPnwPK_gynVIWMZIAGSFX-M1Fd9dVBAOjeBifkho2nHYlH3ynio2FwCs4DGkKQbKe1UHNcx8CnDh4prT51nxgM_Ck1LhWy1Dr9rXLC903-YEv7MtnyiKkHKuIMIanbcYNOdGbs0ntWBDyuOq6ahEblLZ8dCjqRtC0_hwRI71GhbJQygqKlLwblM4uLnLdcM2k1GbkBgKmcLrqAJOWI6fJHm8b0uulzQqcwVLE8samQbJd5BhXfiVeCir2af-l8DsRa--PGz-skeh1aKTbVX7tIalafV8fyhActUdc5uE1OGHOZmIKTzerzZw6lI8zkblOfSrncXCmaAnHsuHY6Gom9Naye_EkqyUA3Uw-0pQc0APa6yTU5JsyFdQ5x_qrI8k6yGLap5Av_FRUatc9eBaJfhc4ikHjF-LzqOzXKwiMOAjMT7b1a8u_6sERqWQSJLnQrDZGgzsnnL0tOkhFIYAjl4jr4H4aN94e6jfOkur9a9fhue1KFdDU-puOrL8MNQgEg3AvB7vyo_Y4qeIQnmUFzLuGWM50edjxECjLqFfL9xd5fW53WQFUzxpRlKVdcEhT2YbskVI3fqERMSMF6SSeIfOoW4ik0C0hW26pMd4QYFYjXTycRoKhIiL072RF-N9hufa2g1WEqI-6EenXtzMep6EQ6FsP2MdhLsWm0JXMFnszrUXXIHdkieV7Rxp6-o5ihcOJX6uOpcISB9zw9MdG2IXaHIRF5kv4lrxBMeSxp884i-oITAY_sGvW0MbxIe1J-Y-E0S3R6CedCYYxZSvo7RQdtVFzfhO3HltvbtWSXO9S5UC39ZxTWcIRemMhm4hS3oJDyGXFaei3mkiOYEvWZFG_4m7LCMqtADCPdfklWZCktsr6y4_yH50P6NeHwQt-C87GSH26usHohyhs1WiCED8gXT8v_sDgtN5-vG4v444VzzXoXl-mksuLe_nVI5IHhpcT7YiBOjoCyoaoIzqI80hlS9an4dj0rolRymoVZLuh83jjZc9JQfajRR0RoiHZ29AQ757CH4RzEBG8hK7r0kSWWcDOXFFmfVd2JDAIBo_C9W56JoZEZ19CyOy7ErIPLpCJtGntSkdLAFw1WP7IkwVGGhJZyCJ6nEYXicv0vLwR8h-aUx5CA85crt89fLp426vaVfgBetiZnmN-9pRTgc6wTYTlevkvtjRTde5F30lenSyBaKdXt8uFZnHBBpQs4GVWb3l3zqvpq5X9uUMWcFPB0tQi8wAC3WQvQO-wssdY9AXFBr862ezu4_2V61NwhzoV9V_0MS9sGgewOhhNerdE-d2B-3uGCwH-yMjCUjt0h3SCM4ry3685i5G13q6_834kEAhOQhTW13VnfCqbmEBmGJqt6X1FHartQk0vJvRv3hat2Ev6ZjP0fcYIt-UZscX8YldFWxUxXgE8E-4QcUzU2L2c-D_88Ea9oRfjIBDAAMm4nXgPuAjy0-0u0g08ZwqrCswD4OS9CklHPdAZwXzcMumsjUyzGaA83VtctKxvRsaWgvqnLebGPxCV0q3f67uwpsA3Zf3xUq1_UvoItz4JDjZIN42umMxgx6MrF_0MmZPeyx6XiWn3J0JcJvs6F6TdhnfGIc5oRt9AMuS0kFaBzurfvWriJCIPMLp1tOmQqnBZqodAXA9RptEysl93Zlxbg_L9O1Cm6OuWx1iN-GIaWQaB0rHtGvNd8cmtXbj7FZerKI8DUE72yKpazNSm-9owrlRRKz6uEW34k0u7oAksSrWZOVn5L150WzZRNgNUcHstsmxlpfcBgVxShD3E3cnCh53Jd98tdtbMT6qzmTYEb1PPbUI1LURBNgBXHUBxSxmcUV3gyuUZUlOY1VWz81VU_nSjXsM0jwKZISsWFoJ6oFF8SJ6P9lOwrE1up1EQ38nFaQawbLfPgtvCTyGE-6bVyBApu18VQfE17KpGp_MasxHDeW90mf3-4ogcmIMWF-Tlxnp-3YfBZBNVrSPWesagIz_75BV6rj6EjIeOnV2r0FNIwk_h0-hSNcazVSb757Vz-S5dfCCVHmN_QvyjH3uLt4T1kGENUD5x8bfd5Kx-LklauyWDN4dbBIZYFNqDbSeB-mnyt2fjwWh6qFDbFw1ScbvXIdwS9e4Inw0iehnBUcGoyk5XQY3Rv6IHGsFBU_unSx6wn67oyLyDVu6l1VZkab6oPFcHQE3t4etQH1dFp1KLZFoXiZWdYEhR6L3jNO4ErMrYvSasl3Pi-WcdTYdXP7RTcxp35jF8x7HVuFNHZUf0rEdmXEVnrOL8qMS9OWgQ85Gjc6cDicM5BXuewIki1oS11r8Z8M5pEWcdWDgou4bwMGvNIQ9M9PmJ_HN1ihlUCTjjZfjNgKtFftvoj2FZs3A4GBbNNxrLPexSaQT1kdCdgMgqUUgufN29jHA2uE-_-F7s-FWXxq49B-gnm65Gp09tZrVfI64FDm4ismvO4qN_hhSCAOwA1xUm9REFPHLmk_hOfoy-0m5CP7U_h-B6JGalTDTd_9xlrb1QheXOx0C7IihV0kCFwCShArpt97V77jWMWhteOzKjKuRCCVN_prbu6XChWkBWJrp1jE7TLtFXM098FeZ-s9mr6_sQMIU3k90PThE_5bvX2W1DdjTPKWaWBSXi8XNOyDbm5l0zyRb1xI2oKiAldOjPdKkTl7xC7lWgOdPXV-CjCjkf0OKWEm3lZdq6ZSM7AIVU6efWjpUt9XuZocbIJlFgB4wOLZNPsQSQSYLG7MjyM6UsbcMvyIRR-XIkAIski04q8e2gx0GelAUZZvktwBnZwQrj5nKT4ADvW13yPBQg1Qrvls_UW4GigZyfgDuyqo8Ztl_gKpgmCgFMB2diFAAh7MxxoOP4mDqUbyfQ14Ca8c12kpn1XZ-I5O8foAxhueGhMpBIArHl5s2gSR2l5f9crGDaEvEj95C0TfQfVIkk6eY3TjmxUWdJ8RE1A_4SK-ZMrgmsF-jOdl2yW2lyWyjQ9zrdBy6E2_0IT9CO7yUDqLoGkmV4rfYEOiQgrcOR8Sx3IbwwqAmqHuw3RKV4eys49yrSsRbWTwgnmyTeLyLDZTpCMjDRozepd-rftQtcZfZd9UVoEsfKQQ8u3aikUMFQZzw2h5uUKSZVTl8iL_mGUUgQSbgh7a6wY4Jx1vyGxe5tHgQ39JJU9sZylqVLZTDSsCejPo3OUgpD9y-tEm8WhWH1DVzo_sLnYdosUOtTgw9No0X87782rCSJ1kbpGyrAgyZPhnpcsReeAg_OwtmpO73XN6bYMRXCBMtnYd44IbsDias2og0jviRzJulW850pdBAuESXAPCkTce_b7yWKEBP25aqihZrmq-spbwwqFOVpN-38CHTPGyHOXF80lqnYdyid4N52uy4mVjNZpE6AIl8J0ARXnHmNOhwyBluge0V6RU5mJGcssQmz3sU8UWnAi6W9KmhQC5XUOkismNhImECSqNcj2tgbvPnPY2gfRaHbFWehjuRjdvWTaFeKl9Mr2Hoj3hJJ9Rxy_RvaB76uqqOZUAu5sj9Ys9cF5R7_soNf_9HXzIc8y83p1iZ56EHlCUxZr-I8mQe66XgMUeG1vSETteCgkPeWNvkEyxGPSOi6dWdgV1XgJzOhoKEznzbEmSgcp2Ma7wFOgZCGVbLcHrl3-o9l5kKK_02MsnNNJr0YvZtq-znECVPTokNjWB9mNLkXYeFTZCMRQS7FdHz6O_0Pij3fkjYiP8vKzFmgaFlm9Nf6ZkC4O3L3lXH6Pt3MjUH0tKI8s6LCpZfymqSoDagMs3AvMv_Ew_0fh86qFzlU5wQAwq7LiTViIh97tOUG_R8FOgjeQ-jCg_s44PTbOaHGV5Axa9Lkh49y-FcTO95Wt7A6HCLq_sZGgcyiGjaIoIAU1ViJC1_oQDHp2qXAve6834AkZb0jtK4UqnmVjCY8v2BDgTCFjmoZZHVAWSlYtItq9HHoVfXYHIg8nL-zarua1GNXGlOBbzZOAR5fms4mgJ9pJ_zAle8angWpl7dptWkwg3In3VThXkGrpa3MFi80hLSkknu3LaxEmJrwtolKDrM1EmXc8miQxin6lFcQpTkMsgKypARE0YY3QVJdKfYN47wAwfIYHG8ymoDVZSGitLAnMm9zerlh9mtJeqDf_adqLyPdm9VNfR7HUX7ex1g_rS6ZPVWppKS1W8fcolKAoVehT8wZ6hRpITGuXa7rP9_ITILI8tfrSEeE4tv8qKa3vaaJjeKUkIpzuqNnrNzX3eJCI7yjvFmIXxe_pTP6G1hSJpN6fSGLFY1Z3nfsy4fIKLMtEstHn09cmu3zCZnMGSGt6S3GS7_olBDDeD-xXN1405OBNJK0T8r4m3RN07zavdiI6Civ1BMBX90cUhuOPLMRCkrGVg9KbJyZHO9_wkw3VzDKt20uhCjx85yVrXja3II84JAkk1N-MN0yJhb89VgtFaHCTleSUxKR23CTcjlImhGCU1TawOTAWFPChsNvxJlEGvkrzXx2ATP2AZ5yiz4-uso9-LioZFAIU3d3TvgO5uNNYwVdIsmUq-LITWPAT_hJFRMCVikdGTF6cj9FthSL5Tk0WtD3Id5Lfz-MU5yF9g_jEArER6_hBc1insIvTtnvykNjBigtzzItiLKgCM5_6LEcrL0sWjMt3a61tDvXiwtah0qWmmA4quHNmkvdad2Iq2krIppS2BdkYysap_JA7PaN4-4ZIS7Gd4j4mRZNXRgw08uVoI2S2av01CmTMipOeXpvTyy3wTZEVI6p1dA1hKBW4jadNSZSChGyBthc-y3FCxlJAy6QhHDRJBBcbgaBbMETvqRhRutXantOilae-wC8xhHcFlcJcHE6EwrkERRaCgLoprmvdr7GDn93eiPRtxtzUfo_LqV4wG-qkSiy5_Z0dULd1IQs1FBE_qzFkZa4qkhe5Ru1rPMyosaTU9mxKS-xmiQM5XXYRyrSyx7HIplPHz-HaOuvcUyF9caOibYqy2CCVJEQuC7QgWG0NQCIeiKgPhKFLL2tWS6qOAhoiKXXlPUJGtVhLHu4HBD2Bdb9JLYsG0n68qsY_QAGBeQ2btc9w5Vbd4uIsvPgoNY8tk59rVXxn0izWgg0eMwiXf0fvK18uoppyXrCIBpd5SATXe4m1hsZE5JKQeklT89lG0nR_mqD4aUDZb3aiv6f2pp7OC_OA4cKYpT5FbDLqS_IAm5jlEVTJSZy30aCYkP1zDM5kMS8-o2Afl0nk8EwxRdYB2RqhrtJ1Q6bJJOnSMSs0DoyjctWqAysh--vZYKNcIf5liGv3_IOU1F3K0BmLyeGehqxjiaHnCijvcyeNLGtPj2Bq1YTVilpK2q0JfA4dLjxbbAnCqEHsVVvB5E7Le9TWBhFVWaYsXysszjUxInVQBt-Mpzo4e0AlLKE0F7hA0OdACTdaRv2TPR959d0VhXDlWM-wLDScLDvwgWF6r5xHDXqYrPSDGt8wAdAHL3g9joGfYRXpp8lRaCYoJ8GWeWkDH0qRNzESDqoW7KK6Qsw1B36eMtibvXF34KVOR8vkygEL1v3vwhHfWxpjBhZSkI4o4WL3ZFi6bilyRgP6ARPTgDp0bg0p4TazZyidlo3EQSMzXTiCf9pZK6sMh2ZVZXsrUhhBClW5z_hFe006GO1GomZxFQ0nqHMr4geQJuvBpzA1UNIme3enqkht-o2HSgULk5BqTX5vGoQXD9zuqWcia7Ou2A3DD0qWAo4RTgKlXk1x7qu3qAbhuMZPCTLQ20Illa0JP9Dz5u7KoxzaoZak5_bqv5BeH_i6HRjAb5-W0d5fV2Os8_nBeR8_j2fu-ZZSrmGPhRb-xu6FC3RLeU30mFVgSGgQN5i8q5r0cpPzsgQLoqAyOhI7pQ5wM1viy6E_D9AhyXvRuF_rp09_4y9keNA4LWpojwr2Gal44rViCmBo9-7_D374xneWZRN1hJ694-Ny4-RcqN4y7YkxLLvXAjvEeY8eu3Qoc1cA6_rpZaZEorNw_WAqims_h1vwoxxhG-GpctDYQdVGkWZdxdRfepDIvdzhP3Z2OIkYIDSGKdbDXfuLYVhDT0-GIPmYrVW2ErM1DqzDCDXC4MlV9IwPJ7G4zZhllBiIWCo0r1Y-v_vXoG631A8Td3kuqK6u6rY5kDyJ6TARm6caZjy8mQDOCXeMkHzI5WCidcE4AXoDZMUt3VNs8E0NBbVNQHHjNkx2JDWexISqsIQzH4i0bbjAnhmUGawO9Ep13BkIbmeWGJd6F-OebRpRW_8g2CNZtFC9NGgMFD45srXxUkqxgFqBDo2KVPqJkox1dCppEasN1snoFnp9QeJj6mp7dW5zRSNvDxE-tx3SbVqsEftLXKF6RWx7s9M6VcMheZQWbJnzGAOF82GZ5GIZDChcmkcYJj8EkFXzUo3w5FftKb-kWXbCC7xUger9Mdl3CTYz9en0lrkhYT9-JXWUfp4f338Scs3Bg-DccmbEXz_3PdDmghC1wIBpdTxhleAIMhi5Tqqp9OFNNeo-WtYoQF59ehOEY8z65nPJXCy371W9qVtvViDcqvjnVFJjfvo896YWjffNXn2Ij4Kb99wQv5CCLRdm0nGEEl1DU5_z3cmK5-IHzHxcrhKZAGLg9dJEBzD9cBjQGne11PG7GTZ_nIW_houGOxzwO5SWOhM5JaSAgS-mnzZojI1gzR0-w3G7TRIjn1aK5tUauKflAQM6Y96vlzHO8XeKXeZXa-V9szj5nPv5tWN-Mn7ERCm3HlfYFE00nmn8SYWlnRpPrRoa84ycuLKsDuTCe7nI_Ow0fU3SlzBDw42b_BygxKRTuKa1o5rDufgLeIHYo2M-R3wbFx_JfWj0f1pAh3tA3co8m06ijje4GzOzAbMpl0Mn0pPJ2Eykb8xJQ3gdoqGP31bxyandMs9VIj5-MedyPb_onzOuLSAx9FRAp_2uego98ziW7B9FQRdUNIG-1Rx6MmYWR8r3R0d8oegaFjYPXlffZReOAFVeHXicBNFFEcJrcBudDOAlyWKFB3g_Z_XoohEZl90dmvyQPjYV2rL6GjKSjBKXX8LofNQtogvgBgzx4A5NUYs2pxXdxIdfKlXj8tU-fNCcHEY";if(!e)return null;if(At&&At.sealed===e)return At;let t=null;try{t=ir.parse(JSON.parse(un(e,nd)))}catch{t=null}return At={sealed:e,bundle:t},At}function cn(){let e=Io();if(!e?.bundle)return null;if(e.runtime===void 0){let t=Date.now();try{e.runtime=ar(e.bundle,{signedAt:t,fetchedAt:t})}catch{e.runtime=null}}return e.runtime}function sd(){let e=Io();return e?.bundle?(e.keys??=new Set(e.bundle.filters.map(t=>Y(t.slug))),e.keys):null}function fn(e,t=!1){if(t||!e||e.length===0){let n=sd();return n?new Set(n):null}return new Set(e.map(n=>rd.test(n)?n:Y(n)))}var No=null;function lr(e){No=e}async function od(e,t){let n=await Ts();if(n.size>0)return nt(e,n.values(),t,n);let r=cn();return r?r.selectFor(e,"free",t?[...t]:void 0):null}var id=/^(?:grep|rg|find|eslint|ruff|flake8|mypy|prettier|biome|black|stylelint)(?:\s|$)|^git\s+(?:diff|grep)\b/,ad=2048,ld=8192,ud=32*1024;function cd(e,t,n){let r=tn(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 ie(e);if(n!=="compact"&&n!=="minimal")return r;let s=r.endsWith(`
69
+ `;import{existsSync as Jd,mkdirSync as b_,rmSync as __,writeFileSync as x_}from"node:fs";import{join as Zd}from"node:path";var Gd=new Set(["0","off","false","no"]);var S_=["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(`
70
+ `);function Vd(){return Zd($(),"network-off")}function Wd(){let e=process.env.TOKMIZER_NETWORK;return e!==void 0&&Gd.has(e.trim().toLowerCase())}function or(){return Wd()?!1:!Jd(Vd())}var C_=300*1e3;function $o(){return Ao.replace(/\\n/g,`
71
+ `)}import{chmodSync as P_,readFileSync as Kd,writeFileSync as N_,mkdirSync as D_,renameSync as F_}from"node:fs";import{join as Yd}from"node:path";var qd=g.object({payload:g.string().min(1),signature:g.string().min(1),enc:g.literal("v1"),fetchedAt:g.number().int().nonnegative()});function Xd(){return Yd($(),"bundle-cache.json")}function Co(){try{let e=Kd(Xd(),"utf8"),t=qd.safeParse(JSON.parse(e));return t.success?t.data:null}catch{return null}}var ir=g.object({bundleVersion:g.number().int().nonnegative(),signedAt:g.number().int(),filters:g.array(_e)}),Y_=g.object({payload:g.string().min(1),signature:g.string().min(1),enc:g.literal("v1")}),nf=10080*60*1e3;function rf(){let e=Number(process.env.TOKMIZER_MAX_BUNDLE_AGE_MS);return Number.isFinite(e)&&e>0?e:nf}function sf(e,t){let n=$o();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=ef({key:n,format:"pem"});if(!tf(null,Buffer.from(e.payload,"utf8"),r,Buffer.from(e.signature,"base64url")))throw new Error("tkr-daemon: rules bundle signature invalid");return JSON.parse(un(e.payload,t))}function of(e,t){let n=sf(e,t),r=ir.parse(n);if(Date.now()-r.signedAt>rf())throw new Error("tkr-daemon: rules bundle is stale");return ar(r,{signedAt:r.signedAt,fetchedAt:Date.now()})}function ar(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)=>rt(r,n.values(),o?new Set(o):null,n)}}async function Oo(){try{let e=Co();if(!e)return null;let t=await Rt();return t?.signingSecret?of(e,t.signingSecret):null}catch{return null}}var af="tokmizer-default-rules-v1",lf=/^[0-9a-f]{16}$/,$t=null;function Io(){let e="J57HvNOlUHIC-D1B2Kl18LJIEi5uyU2rjHDuMAeXEAcOw_Rr6e_tQ5Vtw5B4woiSn_VvxE3ByMoDA5KACZV89Cw97zqb-1p5aam9s_BBrbgszu2k-PIPWk99oZYBjnDJELAv5dbzTWWJkvNHkY6tqZqNoxE5HxUgSHBPWZ5JMuCr0dPYbx6Jy-qdXRLomoDYlzEp9OxKcfH5UT_elGZxjD4T-5SLpi1H41GvljjWqdH192sMz_OSg_vbjzkWVuXcaUkBFmsmzGP5lHvORIJMZYQAbbBWM2hzCJH5QJJPeDEEoUtUA146b0MUUrBU1TiLLMEGAR5lQNH4lUuqMWvjkqxpycuNGF3qe05_8biSszfzypY16sU7o7Xr6zixVFCKfPJmguC2Zbn0T3OFhO6idNbke_w9ABO_FvSo8_gJI-wbAku5uTGnotHphKM5-3_CHhZfX5dcOHUkxPeNOVzGDw56X3uoBHyxoKmmtz_Mih-ew-jrepAEQIBmpNWIF9RLS1NHyAY-yJ3riVG8sDzOAPdqHIYVmgoVqP6r67UmCO3dE1wsWTanysyl4wG7WZNFYDyxWEVgYHsEJhV01r9AhdslPUFOK6Ef6VonJ-7QvMYVVC0Mnc4UM1nYdRaZOV65pH-9lSnItpNVwcYU9z4KY5-UwHTVSqAQXsHjRH0qeeeTSSSVcpfzaIRkJgG9ajCcs0Nd7ghn1vbhbHTrWgBY-amhLa6yonTCB7vYj4A0z8UpT03aAkbnswsFuSDndjBF2LhS30yF_2yqLtCQbdTYH-0-KRRUDMJoik1Y-wqQMdBM7yS8yuq4-f-wsGXRfdS9gu5AQQkH-43XyCFGGvHsvYB87ylxtbkkySVKo60R5nyYNhBF9Y7LS__vGMG3uBKQL1G6VnVlwM8K62EkNYAjndO8sqRNy10CWm3t3MyNx0167vs1GSuoZt6p-ETziYf8xEcKre1uwXqdNj2iQ740XBD-ybWbAnyk5al7VbBXcjeI7Mn7V_aXpinj9LO-UO0Ff__GgpDQJzvPKd5_1_h9VlTijn66lCNfT1lTBCtqkY7mVETSqNYjbonqlX3aHX_ORtvm-FrUayRDw8QFbLmn3gmImXpmPk6ylqoO5DNkd0Kdb07TguujdioAK6HDhakHwd-LL0Rh6LXirpJSyM0Ygy-fl7D-ttzb_Ah4pfMEer-y3sI6jx7cLILCCtWaMA0ybTR1rSKksBZv3Cfv6Ro8syL00x6BJdboq_EPZvw5RxSz8JlX5IE6oOfYDMjd_KshVY5t-zAPaMkCO1IwMT6zhsLaj5_PwwZOGUQtk89TblrNm9hUhweb5_rmp9Sdh7Robs5Nr8fXBx7BhK_5N541r9Hd82SWqtIhW-1baQT9sVI2RrfuflaQw4BKAj05ZTbCZ3pF8v0rEy1QQBy3hTWcCq7EFnszqnVKbrtlk1BITNV4LtLTROpPsQip0T6IZvLW91OgUHYuOZBJ5xaVnj4C_95F-ENljrmeP-XR38joePCIG_jYeKZrADnoVolaLD0ogfV0SPSo2cMqQ1gzQETFwAWH2UMIq6xqUJGepBC4DOcXYMHLgcwocda-xzLNGFxzKgOfnWd9-irFyd8vLXT1zFsAb2rvyF2_9NG_DAsvgyJgXLsFvKBsvMP14g-e65Jr53_sdVErRUFHA_1fgEKS6Hmsxs3P0B8n_7vJi4xF1TNTUG_Df2sWWeXyU6--mya5ATn0qt5BXVvef4Czeg0ECJP-UPiUB49fELdz7wdR9OeUxLLaAVGUPy27O1OT7K2dO7dwwx9G3PlFu-Jjs-iK31beNuLL4HmsDOq0PDvxmjzTdIFRzLSjWSq2eQhIFk5phtbb6wZcBfFLBmTG0HUtzz82g00T5VIeihSxOkzPwTcOr5jO-8DV2m4hs19nDXtNSJTibLfyQzIdDjf1jpglcAYMsku0AS6uzeVXJPE4TgTOjqmH0P7NNeVIibKW05IIMRO2Ce4p5AYfm37a77_HOzDtoUOtccIegigCMfZlpQbHWUX0dfo1GUTuHXO3eXNddbsTpBlYBuLItKuRDfYNEzRc6_CvwATWAKumUiP3ALYBahKj4DWo9tUo8PriGmofXhyDNr0rHjP0eIk74wYF8ShcDshOjbNbwbw9dnVX-TGvwyFaif9jFpQhk5i21Fqdvuchu8rcr4hqUPUXyUG8BTma9AgzLfEZ1d231GLvVS3AP1vko7veymTRPmOwTOFd_9tmjacYQW2_rKnt5nGHjvafL7MsXBvfs-q_zl15onHtxaInuphPod-kRqrtdbMlg7JK-z3i4mpxja6qxuxPDxZ2dEXUaVUPu9PxKaX8jfh7iWuF3q0mBijInnGajbUrB4y5N6X7CEaZIsh8QnmVfSoDACZ2ADinG1LDJGw78bVXI-bIMFi_ms7ioZyU1XDDCAPpgvHXii9ND7DPzUPnT1KH0AFLQGWjkPPNtVGgp54jKyeu-BsTthkBAHcbtqWFkeAeVfB2r8mjiBRO7oWE6HJWspWOchUMvp0kxaobcXaeGvnfKnbD0_jL5MGmxQ1HhzwVowayU2TvJV4OKiZsGveFrdv3mT1x8KMoW_e8na48yWl4fwsZ_TZkAJKt3KJl_TBCNIJ2fd3SIGUdCfIGiVQ96UU42gpIj6P8F3tEljuFv9JjDx-d2su7G3RZ2FBo7E6Jy4rYEicrlPAXfd0cu8SPHq4NgBO2RBlMtEQW5MR6a-P7vXeloNoeuM8GBp9zTe0Dlmp-oI8lFmYnfmr2ALm-K1FhoE3w2c4JI5fzSVOEYkCKGLSdKBmsyc8FPVMPlzp95HZUoLpbk3qSE0ctcp3GeRcYnK1xxcTJRR0YIpg3yyt_FHLxsCjIvtFiYw02cheC92qWmzEmnUWfKY4568G6p_cimqgp-23yPlUy3xYwyS-KBWJpBfXMh-7o-3EbBa3TdDZpeIp6_PZFijpRLXcH9huNdX17YjGpU-K_0BVLgsYMpcmi8EuzFzPLRlZrMfuU-5hWLiLiZ4vYVtDVaAuaFX9zDoXJFiVTTN7jQ11mJCkKpv1qmZQGd96a4sHr4OrcW4Km7EgGH9ZV-6C7PHfLklNmszjr5uIQyE6RLFja2gvKkRieq6hkkrKIhBnYevUsUaHMs5eSRBYM-xm50oeje5a5w9oY_VE_GNY-S6JAp1NTZfha79hS3r5QVwWK9AAdlB2RHxKFMen06-N8bcjXB-Zwy1qx5jdTAJznpYogDKqHFeptQXXEYWyM3n1vhhwzI7hX1iTlB5yKnacvaEEquEtXXzi28qh14MtbMGXa9l5kuRhLIIbGg7E8DTJ6gAXxWKbeDNN4ptaIwIk14eOgX0puzauz0f16S0k9bPtpexpNJpj08HJBq1bniPnRQ_Y09K77OKTJPSO3UidEDYt31l-flsc6QifMO0eW3Y74Cr1CWnCYkAnwW4EawpqiWmvIEUPOLL2lFwaBiNg-2QOkxqRJBLBdBIpm54iAbc2IcRmM7OcMEGIsMAXIgdtzMudLiHQ5juuWTU7KGx6yCLiWcPpmuyiDo5TcnmB_frr4IaXcHFlbuT8moOpSuOCWmUw5gWMViAPqYDl61vLt7_KuZz-PDdQ7SmICdnj6KmG9u2gOrDW0KzDFf661tg3J1posjSp-Zut--lOlMpDWQcO6yIO8V8sTAHyWi4Q_TqF2RIR7hhxvd9JjDlnHxoJmze0u71EtT_1FbHJlmR1oDANJFXEXnDlOhD-BZqNkHwFxLwd8EahsePmnMRYqXvEFXdHnwYk3qUma3US-lpBQpNp8_ZTUzjsHZjYHuaNHXRaNu3niPk10u9zaOgVu_I0En5f4pxTK2yEANfIsXPLyYZx-r9zT9fwDSCyTsO1Y6uUs4cPpJuIXWENX6fysoqrfQK4gW9CUoyKRoGmXieBrnu5vK1BepCItSK5wSkL7hWHrrMXL_NWGlFqIpSJpTKINg6Vw1yV6adUr-hgcy6raX_XWdtjc7utU3SbP9U8NQ9zDNKRsgR9dbuNY93XzOoNbsGBzRPuJ7SQsUul0vWJnZXNUrXdVJzrEbv2MWnaIXmVgtzbdTlpDKV9RYv_Mfub5EYTBo71cpykL9n5rJhbezU8ekIxp4IADSxtgZgnKDc70zYwsA1bi3UBuqV-PIsDCW4Whd_jsmkA24FCi6iu69pRJfNiRnGPQ8iV5klDchPzIbG1gf_Y7xHNYPXh95AfFUwd_QrWNiKsNIp5sL1oKdt20LYxuUe72O0rsSc-CprDZ8-kP-x_cvehyNEu7wuJwlQYOeL4tVcTyoZxm1jEHJ1hva9KanRaXQereA0iIWEFupM6yOVx_o_8njnL9OGuBYavVDp31D_yvdpjpzx0wHZbvyghaSwJ1m4WivrPb9iHmHgFDU954odpfoo9oGXbB_AJSBw5cVwqNb02EWjo0wpxdQs0vNrUx7NmBd3jDY5hobONeM0lnRQ5fcxt5SJyGSTxV5icxjdxLZ16arcQYPmwKgs5sFtlJ_n_eNu2wsskwbUIpqA7_aUBqd5kBkSrMY1eQYvaQHxessvEvwsELCH3lmRvNy0kbtetPtHpkJqi0D0VF7sqvIFd8dHYN77SEquvaitcjZB1Vd1WN-kXabJEqnrdWmWImT1Hoe1j93-3ri6SYCwKkW0XZe0u8Ip3qL3EH72PNbIOBEHNt3dS_arzJaRbaLmWtzO1NHWby8H0qna1D1f0H3Hd-et4J6nVkc1V2f5weUeuHBOOhMKtszu1kNK5cv6V74D5o-IBC1WRxEO4E274oeiBJNwljyNLUp3PPQe1lWjmYVsapXWudPNpOKczRFXNx2LXmebFXkGPAGCRklDt1Uwojk4pH2zoE8rkH5FY0aGfNZTj904XyFtTxWoEcOujpJh-CoEUPuRa6GUpQpjLalQZ38Jx7WCxMxxzhCNeFtQNjYI9Zl8guBpfLvl6zQQUIe6xnZwYxs6RjKbGLNyRRyr9ONmodPwC3i6sSqBYTT77iZjEPK8jrG-5_KY_XyCOgnt39bZhx82ZA6acJYJpj0T3lQLlG2YDaCjYNoqfYOvoC546sitaWBl4PaHsR9Ej2k4kOGCCjUWpwLRy5BYmwlNTKpZ96x_s-h9vZBW5ce0RqMYY7MU4WRUx8XNFWFP3aB4bSjWWjpr5InNpCj7L7UQXhhLngXTkqT-kUU0PCFqM9ol4w5Gp1CZH8HM4XsBjat49Eh1He1UIpUdL5Yi4sDDBZjyH8YAPD2bquWItVDXZaRTxnato-i3T-sYnIah0NOuafArOCGk8GRV8FeI5ODRSC15kHgrpiVW5Xxx_uOt4hCzb7If0OhtE_NZrY-Hz3PeQBqoW_4vyVLdXztvaFJIVnGw1qp3vSncpcd5DtPODzqLqEF3HAgOZAoeQ1ANHaiLUZ2ghy2nE7hzg4DW6S_AyOoSh1QOlhuSU3GGD6pp0RlNrfFRaFkEBsH0rLcKMTmGxBp1tPPRp0Jco9axLqzyEtgaWsRIWyJp92ORQYr9DihJUvHIURvMctEbHB1mZqvh_aMn4Bs694N1lktdPSax6flre08RBO_DWnzCmUWaeDUU1c57xvjp6UjpLUhxtPnLkKCmHjMONo0xYOnk_saixgAm0xEKO415s-WwpwJT--DOrhHApgHhfL1KIgW6UL_yOYaGPg20KVgw51_Kzp1DpzdMP9cGL0KrFlOxmLy3BJuyQwuH4FDA0pGsNA2Sk6IrNR9swGPmdMPL8O1tuq98MlUXBHqn20eujYWXynOywmshPgT6b_PSQ8rkasTC4vOjsND3OFX6sEGEDIYYfrInnAyOuc2zU03vaZ8Jkpgw5GHUvZyZ1hnc8Aicz8aK0XzeMAbml7L_kAH_eAyEsO-I-U-_fnFFzVWwYoSOIwRzv2uCJM0-1AQknQsaoM0MBUI5KowiEdw0OIqlmxFA17C1YAUegngJFzR-epSDdZG6n_occdxzxeFNBscRHkFS7DUkm7tbaQIvjE0uWIVE8CDmBPZou5teBbAF33Uzt9ynipVBzk-3sz3rG1nywO-oqnHn9zvUOyD1-AdOmvcc0n7TAvQ749fz8ytbXeKxlxJSHvoJOWr3k2DOB2_qp-3OZsI7prTWF2lUJWxf_K-n2_rOp_CzubtHXV80-_yXL1UIC6rUYRbSgYF8r0e6sMc9eWarACWmcAJ-j0qMt1mX7KsnihLanOSoNgJIprYUlx6urFGK3UD7nnEbVgDkDUqvSpog_80Yt3id9mpZzHUgKvqCTBcXpPYYadp9aqad4dhvaldRVXqKXZKjhBUl_91xdYAqR4bZrokUtvTmRzPXtpwZU_6s2tSCxmnqOWB1QD--31Amng2qHcmfd9mvjMaMnH-WmAwp5ES9PqhgbV_5L8EwID62jZkRN2CWGzylHwGChJWns_8gV6SeCH9hdY4S_TbckCtQ2O7jxI_Ghhqpj25bAJ2WxYZH8ECAS4X_DfVnOyFVF2DI6F5fEC7E_qU6AES19_fYoM9JMKEvsEkaRsrKVWY0bwZ-ssXnkppc2GYkbfBbYr3PhyECctfz2cTrGCiEsSwUBWT4AVKQEIWvl_JNZ3h82Wn31PYZAQ5zigaGB15J3DYsgDnRXGWvFw4npmNRYzLnAPJrLvbhqsPXX0fwHQFnxa0em-wpYeWgEbpr-5nsrpFFQX5E00TTAoNPG3so1vlCMv4n09b8fbyJI5RTHPXPU1ehpuhA2dSbCmYTZ8TJivLnHvzr1JOKOIazWOHl35NgRsHmSqKcuAXVzeTMLbPAkJ0tjJN62NmuvFTZC9UQTJ1jdkkYkxxW69kN37q_NYKGZnKhzy50Ykk40oWEFpJtb_sEAld7YI3B7nj7Jf-uftJRQWQuY4j5GBUqdQN5EAquIbdXXF3n3fSZsHKYF0_m6_ZIhasLnpbKhhQtqnz5onbW95LOINtRAb7x14zsIkzOQrwC4BBDfxzaYuVrCFqVeRXyMeIevZ6wDC1E4Shf-YB9d71OYtrXPQyb3NIHqN3di61T1nzk1AOuwUNupk8JxMBHRbVWwdRTWNVb-Szc3mc-RAF-CWN4ucJoyef3fgO7R7tBpx18OddiFoK3MgSpvnW-wVSJbhJVJY0L8jY62_DX274FCQTyZFgPsJILjhnoxFeFNkBJM7ouGpUrogAjdBc2wqMGLdY_ElgUqF5eXBIMzWqRSWMFxRbl-5bYQtseRvk-o3-pRomyo76lBISdiNwjY6VlBlyivSsKxPlE8QyMR9M1q3A7g6YaEAnYGOHgg_ONgR_DtUu0jCUjvUYc3PbmVyQu2xmmp7CLQXPTk2_U1MPWQ7rYoLzSvz6MkUWnApKR2hbL9vWBFTFxYhbCxLoWFV6d-KeR0TmTVKaZ33YKBnKtxU-qAKT_6oikmLKsbcoZUutGTgI3mlPuxRCfqi5Je9hy0TRGfBzm6GrLKd5tB4upXBmAuYku_Nuf9K5sy6kwuCY0D9fduJ-6AlE-9jZmJwjY66R4bcpg6sdKXpAFc1d-EQKGdoICltfIVjZYeTM_6_tSYSNJGJlgrN8ALjQpQaUJS4P2xPTRBwfO5W5wA7NiG0netUEB3g_9p7r0R4YtYjGWkGmCMWL6JOX731HBKjye9wfLuu9ccmMmDx252R4U8rmFS3vvcwTofuAzIjHPvLjCN0BBDNz4-ltPsItE5e9iay5eGfiXvgP4sQUJz6nF4TE5xg-MWJWAcVkoE7G2x1bcAPgl0cLR-uIeDCElosavu56Aet9eoPEL1E8XYEKi6Fhwv6auwEf_UTNTgs9E-thwQz-wCoQJD7TSjlAJI_bDj8TzQ_w0uF5L9PjEAR-MBFESq3g2XKXZV4FMDAmgPsm0bRGoJQp3nRdtOHsMdy--TWzkqw0Y7iOfN2ygJtT_8mWFeUPOANEGXiWCxrNI9lpeW7pqhKG1qL6_7W7ef1MvSqLF6r_s022whO4yVz_m1oBcI6IvCjlswRVG8BEMKxq19JvQWzpO1js0QLhimJpsWIrLV-DhgIkkbNl7bGYx1nWcRoHnd30QsSSi6X68YC0mjYm9UCjTFQ85x449WGtNSPBa1_Ht-hCXmZHTUm_By42btf5701zlIjeCaXgMp9Jt58t1HrD0jZShqHcUGJJaY_zeH1qj3kt4e6sx7T6gez8AMUZstykLKLmrlG4OMNOme5L-wvu08Y6bC8t_53Oi1GNSRmP9-1Vt-fy_sLAVntNmevGW1LS2MlaYvAGhpHz1qN385B2fF-4xMwQesNgtxGsBHIzO7BMKFv1rtqPHv7oLe_s-g3QmZSqDFokEqrtE1it6bEkKuP7OhdGTnjNEvbcWXjPLM_6Ibp7SgXUO80HQTY3yYt3C_MjvDdzAsMZMBfqMRFEkoEi7ysbzQSls--qUZo5YOkm0mmBW1gcuA2tbmag8aMVMnamUAw86UmMdkmjoyFlYy2dH0I8Gjvsfalk5qWOeVUv8TL7hQ43S0epkoYJmfdq2huJMdF_Ek_BZ2KuiR3k5C9UtWvBbd2qNM6i8oaw9o0sE2mqef37OR7usBsbTpVvOZ2XsHzyd4s4BP7VrJvLFCEc_igoRYKMcXjoPhwOGpNf3gDHoSFTHsnl3YQ4jaIFZIJ1bplBDOxUl1wumpgi12g-HcWGLaIoOlLntg9HSSt84KYQxNG7ua7QsnP8lSb3kTl9REiXhHCDqfTljgbQtqfJR6hrO2VzUok5Qn6pUJpk22FZTUgI3W6QOYdCmU4XEfSMmqecMW8T088UcCbYW1oq9ORktjAXOMbcCeSXftqY2Wpdx0rWuNY7b01OTx3IL1DLHFKG7NoicyBsC9tGYHFfDeoGndpfJVR3U_qEF6Sh3wqvTO39y9gXwFbFOETM9Yot5m5Gg6O8oiAvUpZrXRNK1OfOWeirnO7E1eVBWGtCFoQ6msN4HRMDMu1Rj7NKPQwrw2mxLySipG4s6MMeLBe24FHjXegErOmamXqdlR5ce4CxdGhSVuOcz_lnCiSxmO5gk6vWpMzOq0E8PHF5ixAuQjAA3DSCDjaJTvnQlnq81gA6Felb5rQ4PJAr3CrL4YPR7k8WwFjlqKg5uT2RjZ_b5hziP-T4V3GK7jaebQfnovdTObezs7j478ZkMyALcg-FMVJ4qBHVLm3IYwY7E24HqXv5WTIdDyoEetuTKvRG0ZCz9P7ltE_hnc-q8JXHIHXlieC51xek1ck0pjVUzU0iwXmAg9TynmKZA3JOLmEa51E2szbOOx0Gqt9b4tAUiBHihhC6Lx_IgLlLDnxM_gHH1hvPX-umEegMXuSmwHB4QF8fzpNFl4-9RwuvoRr-dPucDttFPp8XtIKNWPtLD8-1TJXVLIVol7th26GiOuxvV6anQnBvNy0S9U38W114VyL7ixzgTznegUtP-_7IySqvlbXlsXr6sl-Z0h_eFqci42x0yR0-DZh9Wr135wWdPRxHa1xT34NtRGYYrHLqcMz5Lo42VVzNLQYTX62_yx9n2gaFgdIRCv-IAwf2b2HQw55oTnSXioWpI2Z2WCqyLwYksghEtGYZrzBVf_Y0Jz7alOWJBnTAtGIzyyFBxduvzcjcrHgGhkEKLWK_QLthOStJNYN88PGFibY3zsu5yXb6eTPMl-JAaBTDSndMPNmw5S2w_ykVi1kNTKUUOSpi6esRqeUQ9sNAdxgVCFrV732cXpApLXZ2FocvK53dR0sRWlMnSz4ELPmC81AOBF9gstPFcJfnS5P69ENZy-K6VjSyg_f-vE_9ZDxZpDHISxk3GM4BXciudZXDOJNohKy5UjjZQQFke9ExZ3_6EWFHSNCd1nvfvH-0A4XCADBQb7aMYRJ0cM04TW0mzxNyfPxJf19Z9T8UVJltfUaLhZN8BGCKqKWA1M3nXl8_lqRuh_PRtvEWSUJdlHjyA-6qY41M3otlf-mf3HGdlycm7PuQ6tEuOVTuK-T5yzrU939RzKFXqZCydrhUoljJ9lGf1MtYa-WZMCHfefuIEe-U16x8zqphVUXGkstC_Go1OiRaiXKxfmML5pY41_czBDKIbNnnT5execxuZxisXqCKlQQPKaccvRnWvwRbTrukHBUbshfzTHgjwALfghXc7VhlYfMD223L8oe30dXU5Nfrh3dY-F3EA0jdj6pHJZwhWh9tdcHf4BLtCsb3bJPf9mMQOetT03Lo5e8z814l2TFSH36mTsNUiGuOk-LXfQxVjhjaKizB4v_HhRGMGXzDIKoW7ZI1xvbi-wa6qQwAIEAtMQsuWlH-92JiAYc2QF5GcX-59nWZDh8FM99H1ndAB5DnPeOHgSCLYZxW8_34rQjaLZv5YWosP3cWY2G-9EUYNMYRV9cPu1D3GGo0yYoOkbsRKiPt6VN52R33SMjEqWnao6YVB3jYIf8fSY2yVXmrXSO7Nakwqc3m09fNCSG6PryOauvl33dTd-IdBTePUN1s6XGihr1Gsc_6z9AnQ2YqsL-PN6nnxF-dc_uiUzXVKpOaLKhUh_HM5_JgfE5LUyhJJ1ScSBFi6ndTXfdAv-skH3kFesd0UvIN2CbNlSUhGfAAkIxB7TIhAxQg5EaCGa56ruqpSmyK7MF5IP4dAJdG67P-QUPXb0fkWPC1c_78i5gbIS8isXc0WqRLddKBPQUL-iaupNAwIoSisQPPW25bbzjrTYHGWoTwM4rkOO5lzv3gUKe9XrqmT_AxJ3_0StFcZZuM5hH4iUpevs23AGCn90fTXo5g5cacYxU_cZtWi9NFsQJk-tMPsT6S2XOLG7Dl8OlIucILOls0D1xMm8zPOaMoUa_WSWxaUFoDm9kEEg_Mmps53mnETdJB3ldzoXMDOV9Ao0d5OouCXZOqG9ESuqWtmuaXrwOu7kOoKalqXW7Qjp9HPGdsch79Yg-4XsfrRdgNiVPVlnEfvoLKgyq4Mv7fOTgwLsPChrxHhMK17WI18S4FZTYWUBzkQt30UN0qpiUexelOw_koRt8uNxf3Mkp6I3gV5gc06o2eYZ3z2dKGVvHpJDce-DBRaAoduVQLIUp2ypysjPHnps_-OIKr1OkYjjvz_G39pD1AiaDhMoziHE8u-mMuKL3m4MYPbX_C4oRLoZD5nzsf7pJjD7dOvT2UX95O5xNn_4xr-_8Kh7Hz8aQZVciTxvkf4GxFW6f9SYppemcWqGNke4InnV1GXinmQOaXh0pTMZ3fgCVbgNROVqqf2yxeWVcQfAM73e32mraeuv7S1EGMw1QQnYbSTvBa8RQipc_ex5H7j7QOB003KTTrCQ67yFQ4_GHW5uOpndcC1lqUGOMroEMFLCNPWkqXcIhV8MazKsjZP9jtOTwUJEeX5o3ILU_IAJW8mLpskFzyajQkr7KswlS9pz0321rjcdBAEeh1vxe6MjsBodwAdcbGPWZX2-8UBILp_AOf53VNBVpg2ttbwXWWa6LABDec8p63rb79XWZBC94FR3BGXm9GIysLMPlWbPv7kdVU6Nbi3fC4CC4I7NCox6odBnE6RAbskz-GC3mRZqBwShKJad-bvUGWTemHnVUNiEIVlJsmYAJJ_xUOJIU4EPzwy4-OLVPv2nbEK9Q9Ws-vxSzIgXBkDYnfj9-X3sPBgnr1GHJ35f7zrCCfRz61aTjDe6RcszyQL5af_-r2PKzaHDV6zyeX75pSS2WwsbEuuDtomyiOQT2EfAxkIv1thRBXORXdkEt3909EPAaBm49nsCwnQDG9of2LiQoulqGIOlEzjrsDQiFU4RecqF1JUuIC6DKLwPRWcfdSJQqHlO0H63aQ9gboE0VNj7T85a5aqYL2qIb_VVKsue0j-kN7AHvXkTU2sQaL351T8nHiRkCNz_KXXGOH13-KeG6f0pqRc2d05Op6gJEsnJt1hIaXWWOFrHBZQ9VqxbiwhDqAuvK1PwOlm6X42jaimZWJhcGLXMJSO_zBjha9DFRaO079tWM-uLMt6sWina-iKrkxVeyjAYcqbI3XKVdfm_HcarBRZh2Yu0uoXY9usi0GZyFKW5y6Jm_E6efKgTMcZfMKLxrcLoAEuTuC_2XyLAHFrzjkSxxwfKV-HASnpE6whbgFV9dKTtNP2uF9pGdK-0qPGNrZPlVQhk9zZ-AwFN_iZnSeyLsVsaqpE-RpCFKWryknvYcGh7Wb316JiTXf3sUFOAvuaJikeY6U9rnG4fRUS98rfW-9N--YNPPHhUvdpkJk11LmIdVDTExagBfDLzdNfjEHk0MqdF5dq8Sy2msHqfXvZmqEutWA15L0WKJkULYB9oPjlv5SMO58mNq6iE3KmNdMn0i1XKOwdaXaSalDc0pqQ54754h3_Zzox6PCq2H_IXCKHOjjVpqbKiw3XLpU0iaGgA88tpJf_7Vn1AnA2H0jQM4bzYdJGWd3uPfcSewweckD6_VWVBZr5D0XYFdrSEVCg5JeeNesZtQipa9jXlFYi9A3kSXdsPy2F-_v1nGXVu9jG6ux8viOQFkbEf5o03GEGijuBQ_dX664I_GA8FKBjucvd3O85agfmUdZs1WInpTOLFWRHfdwBYG8wploOsbfYojw870_FmfdTEY5NI2Zy3azhbS3tmixS-ENGwwuPpCTTbGE3CYlIXSvEyoStJlFG7oTLAq2rqIjtJ-5e1WjzkKiMyaHuJJP6uSwzNeYv8EQ_m05B7fO1YqmCgxakpKd3Fm9LyaCj4WKXQsPRvjM87k7Lu9gOG5af6zEMWLTlyVq_xiWSvx-OTpzjlTYi2fQtEDDgZTvWglsdLfmLT3cQy6_t7g_FylmOd8obrpeCZnzd_i6y4FewFqPXCGElnl69OF2WWMkeTzSU92UBuXLKfxYw238ddWyKeaxxA5Oe2u5H6aM95lIomvhGfuTD12jzY1lYAu3Cd_ronU1XNgngiloDeAW-AkGD5D0vPEESb6VgS82NUoFUeDx1QPx9Swwm9z5wNIRc76C6SvBqSo4rc6TU9tDH4llpze6MoB4y0Kj8kiU3gvyiyxVkviK8idaRSHsI96wZ-gZp5cw3drJTd2ZypTff4lTaotzSQ7wgDBKZG5UTz7N5TF4yBO25m8Jkx8PP2XKyXjdbPTIZZj7d-hPI0D6kHJhUyDJMyRiP4bHsdGugxc_mpkasfxOWPg-N8pLQ-P-WEfEy4UcDnbo5WZNDSdbrzrb4edZm7irrkUAI9S6zRxeOkfSbDkGpJMRmko-aPkIK4UbdhLP8a8wDmWuahehQaWVhrmv6INmFEAPn9AGWats7EL8a7e0agbwN2qXPzt5QVD5zwwQ4Oho6BA9l0IkgwV0UdWAHV6Z3kBUgNkkaGYqAOvGOiwdkfeZT8_zIYbR_lB38xyhwA2OvTFtAtHTDPAsoDJ9QabD6TZzmGjBdzFDgjLmis-SRMoBE_rGXKwRkujWkm9aJIUfHf81t_YlwseIvvGUcCB6_18qwkmCgh2D6N5azAjsIvUL-ZowNAZcR1dcgcIrbWZnRlaQ4hNBJ40uDx539LDXXe-sZtnFDzdIU5sjv0Fb7qNMWCZsvoG0V6j5rD3IDPCPwq4FbtGLyGZVY49U2bHoUAMZpLICwdpEx7m27kZn2mvcNplsx4j-KRjVxcPBCNPxv9wa9XD1i7szFxvQuyMwD0gyRMLE5vBUzA9XU-Ebgab6HSZWQ-BFTT9Q_xYC_xSSgoQQB2XMjE0nrFL7zf5f-5MMv3sxKpRze0ttWegvr-sJpW8c4WhBQg7WqNhEALBclsUXOlufdMOjesHKVstlQNaWnyk1o54Oc5cQfWjGSyugPXwRAkeiygJngx_0XGwIvinARslJ1-f_zhwsla1pbmqBf0lyV4H9hmHtzPzPbiPvMR-xBS1U9n67xH2Puc9irai9ktWRc986NCDqStdbTpJqZ_KNwqv0nchbnQyHpAK7N8uBc9jUUsWbv9Y2QosRoG5jMC0YyUVCpY5S32mPSEO_IggeIUFaHLcPbGCUUOKuVuSpIz6pbrhCMVEx04myuRji3iXVVsJY4ThHetOFNPpnCQt9fIceq0Hjb5njxee7pFPf1065nRD8dKvc27sFwRdRPzc19Ao1S1VnHng9qHSv3siLB5oHauHP7LnJDxa1E64h9nl_fkdtmuimhjuXObt4SED-u2K2q1S15G_TScDWAh_Ab6LKT2lcEpHcT0Z0t8UioniffeWamQ3nODcnm5LfwbP2dISwKfCKlpVEQPM5XEfWYv9nhG5mdoiI6jNYAtwSu-VMK6rCOLvE8Ww25HP01SiT5lNVkvHobkpbu43UdA5T0gyCmVL051JuJ_WZKt1Ueh_BviRuOaWIOwKk4C_3HqGPsqK7O_yy8lHmK3NfHZFtXYZTnj1Xb43BwKYkKTIamdLiUU-iF3eyjhy7yI0y1X9O0vTh9sH4u13kU_DwBGo7AY2kYJmnrgBXGiLTTzgq2MbUE-mDq2IWvKCmvc0gVtcGXpCgKchKh9oJDoQdf0uWBDiJ7S4er-kiZVrGbeFEHzRnZ15rCiBrChBLywstiOy2uVXqToqOlWulxJe4e_xuS61SIfCphUNEucX7JbzOmk7LJPDv8RMRblD1pWGDFNbOTaSih4p_DuG1_YRSmJrk4TuHKU6eXtyvd1Op6B848aEOG76_GY7mBe-eRGqhnZMzQOd83YhiFAmlFoICeHt1hvzanOxXXTuKCOctxGcFulKkkjW1R-XRSS_6gRk7h3I4l4C94vTkJ74lczy6K2gS--FPkPAOqendp3hd8DibmY1K7EZ2nWOV7SwkXIq2Ex7WmPSTWXJljECw4YMUHeBRXIJ2jJaRdKU2yc0UWYwKGJO6lVuEIQra6QMe0EaXb6V3VXC_cHB0sZVFWRGfhdkRJR8R6q9m7QPHhnnymkd7dBSw4mTio0lMCCsCUfoW4EP7kJEvHR3UUXnHDZfiO-_sWJQs_BIEgA9LAL2rdUr4w4eCgRUgJ_fTD5LBXSTggNXBKxe0dANDUOf1T8OKr2POYi7LtiMqsJJ4iCVpZH8pQg9z5BTNbxfbfT_6UTyjgezIlL_yP7VlELM8SavYa8T5NIqsBML8SmdzrastWGpqvN7YGNl7S5GVqdMqr9F8Skb4I5IWUbarO0dWRTmAC4VTW1CDsd8D5c__6eL4KKDhJjjDIvRHgRqfvYXnm_69sudg-IB-1gN1vP8Pl68YCDkm17q8eCoHgKYN2WjUS5BYvhWkGepXG_oa0RH4wKoVpoAgwWXOqLfw7OHFv49U7ocBzM2mjv-CZYDhjSZgWpKhixNnnU5Ei_L28HgPxnjsaBjahzjeo03WKp_hwBS9o-JYo-lc5iCu1Qv7Ob2Fqlx52xuWg2FEa36HXGYKhG3ekt1DJIRm17iGwYsVQjsqy7ZGQxQHJ9oLuK6rd1WyWF-iF2C6fMqqBTWTVmqQ6xDhBeRLvVXJ7oKvNcUqOss6D32LM4NdnFMS8C0O3FrFA5cRvzM7O_Iw0FkHnxazcpcXx7uYWaKpVX7vAz-6lPQFnU4twSlMruzrB-kkQSd7UFwPrYeUT_jeJjqvFk3Fb3S67EwNViIFH-zD4iIz2yVYIV6AFIkYeKgS29aI5obxpTPHkfutDdO-SSHvQXyawslrGpSvW3_omlzx8kMYuH0mJW7QgwXD8-bFZpug-FDeV-ol6MdJvk5ToC9OwXSj-WXitc02JdXNh5pJNwR4l_IM2cXNmHC05ZVPN8IKPqyyOrtPakup4mgWOCLUh7dHKchB-HUtlHIGZrPI15yNlTIi0IugolQsItw_0DtcCEZZlP2J7H5HU9cj_XdIEsSz4DH9eCgJrvwbRt4F-Qx6dDXuQK7-kbV7mmsWtUmZ97Zb4nWUzNqpTL6RtyXwWbFY4ccz2rV-QpzCAR4aNYBfad-TcTgHApWnZN_4JeWBppMe_eFmQO24vTIEGjNa24H1N9XV8Tx7dZko86_-leXg_rlSR7jTsWLkLeB8XMpGDamkKPAwN8wHegwlmBElzkOfxmjTMPtA2kpQJKE_xWKZJNBltuW3GiRr0-ByLEQFK1VsDRb-JY-EcuKJorAWI8YSQGH6pZHpilf353AV544DZnndH0OavVe9GqB_Pt1HdSRhbTO3PGSehXXLlIAMvVWqyC6Q-XPKnj5k9kZ9XJlO-4ag5sq_HOkN2abnrTMe-yP0jP9zhc6n4AMl8tYuoSjwbg6SAWxA0K-_bWqiMSxbkrH-DfMoQrtQefBZAZswBRB0doPEEJmCo8hfQGEM5SzKPbal22g7n6qRryVIUqGXPNB-Mj9MtYf9ajcuC73igH1Q3IW4L4GfpH1C0XPo6Kavo7vr8AFpdbQSSC7dzUQmEppM6t8rxIlUTTEZf5_FKTGe-iRo4avDZNY8GIB73mDU5BBhzswN_C0_giUd6hdZRAaLJ7F-AUVlCOBik_mHeblG6Sl-AEWe9RlnYWflmnzLedtVP00Qs5qLIwp9h6LSjhY66Hn-gdUMLc0SMrLOqqBv_Ki98saarx9rX4ZVkvoggDZCaT_UO7_c_ATQ_EK-134S_BkC2OObg_AKpvebTWUEwYexeN5d_U-sX5uMVVVcSC6VCR0iuZ7VHCsM5gXdFAcI6rOf3i0fmo0IHZhEMfEHTndP6lQlFsDiP4chXW2qtRIhfDSim4-tvsdDp-g8vicuR8wq8tPvQw6DnWkta-AkbnxhKFsAdbLmDVqCcRrjM82A06twJHjWS8QeG75sqRCz0AjJRk85DtLYC1Bh0Q3zXRjthk7tvhtBKV201ZKRrvr0hJD4UPhiy6Ve8jHaNPAQyxBkgfmFl4ifLOXfHqWNIrUytoSVxDpdDcbMIf4Wk3PuDA7KY2HY_i9ee0RqZ4DT5IHnG6yunTs9rfNn-4l1TvDOp0UgHP4uhJ9yg24A3kgw_Frnyj9GGz0uOoAkJKQY5UbWd8mg6LGqL9B21-QligMANXNb6oOHd6S81_WovH9QKhO8IngWczn0l8gIRalxtDZwCtLdQM1vImEmBxVA_bfg4spRYQjG4I3r3-DwuAeyeXItW8Crwmx0VVCqduKaG455pHjUAe8s8BZ_znIXdxFtnkgD7-DBOnWKXvOwwYTJh1PxkJRQwg6WVBKwsDucbBctPAj2grXEEyaFU8x0Aswi5Le9jKo82Jqf83OJlVASk-_uOAIk0_fGijD5v2O8CjMeQ_upw-9cOht9MAGKZ3lmugbFdux4SB7DRcIE49937MMSk9NZbAB_VtzA6RR8QEw7_7eYyE1r7ymXvFh62Ipjw0yuYywmm4egz51A8rzDDrLSyGjodC0lDQA_ZpYYS8Mf5vUQdwlurGyMO_xXkm8Jw3iIm7Gi_X4o38rIh0pcMG3Krt2Fcym1itOmy7XaDLb4hZOuOiFu89e0EUUj9ZpxojKe--CcbsGOK3lMAYSjh0krS7OSunjnHCrh0eR6iKffkIrHHJRMHbu6WbQZOagwf7nbs8p-18PcSfen11ksUYdZMxVq9Sakv3QxC_dSTLDhwokdaL3XoHuOMMLGKcSaMZMY2trv1fdhQD355ou40XayffyfWowm4s1zzxTJbTesnFmwPqBAmK_uPwad5FdFtUQfLuacgeaAJvWCZZgf-yOOZuOpZlm7XmxH7UdT0Jbx254rWyoLFlRuUiHJFV3zJHQyzb3A7ISeD2-0hL_UWWM2WMv-xG1k-znSALbYKX2Z9kmxmI2CrCsf8H8LWALh56MpH9kv-WeEfqmFfHRa-2XgPWW4N-EoKUUokMR0gXTKYPVWfSxUwKlQnt7LErs3yZe95NAypdO5mdqgOsMyki1smXXHjKp_HOkovI9M6XThp-A3nINzmo12_RcdaZ5OmkgEOkf1iR7Zer3QW_4gYHQsII0949QGMWBv7VjxrQHnxYnwI82azcbJ5Phmz6sxNsL10vOKVTE760l91bKB3NexLqxUVc4Kp15QLKAZEsqm7AnIlt25iYX-Yj_qnPwOyuDlHcdbRl9Pi029yy-lRnzoyQBWQ8JjQ5uT6IZacNez9gWF4HDV4_WnDzNH41HgekjALHwKwnWOoWToaWvGABGVY58CxwSwnWogbEoM0DYmydEOHPc_EvnIsl7i32gqgbSedwYrAwFYAlrZs0QCQEouYgVMn8WFUXNxifICs9Sfj1yahVOflOQYK-s5iJP27YEqlWLP5m1QIx6i0VlyFB_4odxppsIVO9Rj0cPnVuCS4TCgSoSScTOeY_t6zF3sT_rlEk1pnmzt_FybQcPdx20-xT1ew54Y_hubIQIkHtmxkBXuyuG-vL1l7O-FI06rbdGAyP4rs-SqsEds-db3Ti8znSibuCXVsSXgmbaHm6U9_FhHca9sisgrY8JU73JczINKZsxt7EJjyB0D2ouKmGroJDqNba7LGePfb16wfujZp_W41FNLkgeV4rvTJiKLu5iQ1W7_XZifd_dS1MkjsXla_werzXCS4tYDHFhia4rYEXWlxhs4EqbMxUWXU6mPPauTRXziEqCeuHfpZlree4Uy1nmw0wV-OGGIO0A6wUUYNIsRjcrgzQpjd6XABptJxlT06t8hjEYkeNtTFsc5104_1VTYLjpcE6GaRaad8TRQBLOxEKvSl_IjmABuqIC2mgSyG18Lrl0C2LmCJOksAq8fq60xhnKJkhSmuqeTB3fLYrmDTq7TCDKS-PJUI5qsGHIokUIpIUL7Bhgylhp0ySRfP-pk_3UhUYfyiii8i4Yl7Xi9OL4wveQqkH4uQgzpZOGztgWoeHvTVyAZvT5ROzGxr1jTYUfylXyU5FDU-7kb00XBrAGj5TbPEe__0rPthHzfyAJkxQYSbhb3-RpKVMNipV7fkD2b3tHoaQVcEs7lq-9ZcL7Hg69jJtCN-2BnXekCPMAesokEkRNpBc3AU7SB26Pqxaw35bzNEyJpEjvS5VbUeLCviqjMuolZwrip9Ld999yOe9RnJ_oslhcR-Fcqx8VeClFnOR1qtZFz8askKfTjbh5DpzGY3SvUq3Sac77KH3lFhBkQ-_Q_ahoB5lUn5qOx7GzkjsBRIwy0l-CwciP3xrQ2U2NtxvTuXkuoCL9kWatvcrA5XE_yK4iQ78xIvVdY-9DpDqVUbxswUodH6fLnIvekSH7dpJwFsbCL3nF2wRmxW887Q8fI0Om8cF5knNwkvdYWpJiiE043q6QCqbv0YMBh34GQEEEJhakDFuFeeYDROV2y4CJQA_rPsfM-UCeMumkuyCQlau8DrXYal1mhje9IgKNchqBg-0wIkgD_Rd-mFHL2d6YBfMFZ1uCYBoOAY_QEGm5V1ywrDtLSaDIWoCMISNNle3gVrjAl4b96feUJYNYPd-o6IEEupFKhRiiM0Je08WRJknr9j_ml_WHQF-fuQwhPz-ygb6diJYaT-4gd-3ekXKIJCkR3jN_3MXypiT4bZ355TfdDZXijudwMI7HGmOPnA2DqLF5dpwn2L_z4C3jbBlHNJLGKsBPBgvjDnRoqKti6T0RzFQbA0CnUd87XGHNevn5JmM5qcOiZSDSn1E5GVFzTcaQdJvHCQaiHSATdbbHe7W4zXyykv8wMrXY_cbwS6melx0tw5XJlbydw_6a6UwSXS2gNMjA4Sa6A-yYn9LLP8Fe8vN6_vLMkDuhQCu6-BNPsDV2n3wieNKoCgP-cGVMA0cMS3ruEaV1O9vosSYfQ65lUv0dVqsaufU9ygkzpuDAWYzhCtC9w6At8l4dOcwMWcAWPvrfFwHSZ5XPI2dSfmB6L_m2PeyI6MrSWwXzZetOTy7yxuhlkNRt13bDAgSiVbrc18KjKhB6WBvnhXoWLrnc8fwo5YsBVwapLZwEU_tkAoBCCT6H0LSmn_9CSFA65Ubht7pMFkHHgwt4ySLrs9YJ6LtPG8D_pWzdH6Jh2qx5dIs6ib7jPv2DV9s23yaXGY_Zi2TjlGDipfMTgJxOCG0DCN_KODEv2XNZUvG1InULEmUIcXUvfYdRFYLqANPyI5VEqWX0TXY_XE3JCqafTTfvYonIgWupdv2wGT_-0WrfocrM7PRHVHFpnW3SOLrSSO4qMZLsC21H50P3B-uzg9HQVTjTN317chEfNbzoDEiG0rI3hKVh3gTn6SpahUSRWJ0xzOA5oIWFtHCVmEyx8lD-9xOj9zARx8B-fbs1sYIfQdByRDsqz6swql68h4BGz3kWdrqnwbQ4wvIbYc3rwS4hhq4egYh49958dj1MbQIEP_uf2eryX9yc3Gdz2yUGm-T16bGimDU3RLrwddtavMUGzjXHYBP3_cnG3xlI7jjpMeZBhVV2Aa4CiR_qCEM9Xzz6L9KYvbwmTImAD_NE-5FSDXvXzsjuVnaP965NmCu3fTQsUkjahLXDttulFJZfk_T25Hz-s1cwUmBTCPmTLoUnnckiBFwVSzjIedZgxKIXZaxVtkXPBmG1_rQGS5Tqm0d8UaeyFyDdzxd4JsUky5sSKvgfEU0EUB266bIi_nvoCrZwC8h-8hn5MUlTu5u1vpJwDkhc1-WnXavMWga6lXBmJv5a7GUevIv4RfwS-vI79cooJtfjxhNryseZbLzwfkUhbn_pZDtrTHSPmGpoG82ccO_muo4US61ejSXPv3UfDS0MpPMmO98b4mEG3DpW_44pD_GdjLj7xkBbFXYl2KCDF8gCC7pPEW_NDw1CWf_Trs0Qahoe8FXnc-AC9-ZszzAa6GtSc91tj-EoNGgXQBnttu1k1t3VYv_co8wLDY8M9EjowDoWdjPlyrLYHL8hLTV4ptnQAKD_iH-08J-jJdoa7gPx2uNUZANZ7CcsgX1ZDbP6zqT6CxBiM7VH_oteZJvgaUIy6sw3bayXJIdWM7H8NjqHFXgFsX0R7IvXsDKDtVGmKD4l8UnVfSGJPWx96s9kOPnxk7wHvMc2je64inxKbJCXYzYGDA1L_Tjsf3juB5DosPKxe3W4lzUyr3y43_LuTVv-K9hpyAq_X09T_82JbQbpjVqAX5TB6HGLXBHRomkjSw13gPtPyV9b9zPSVsOBctz6qnrl3aZxU_VGDBfFtrcI8x0QCB-r4ZUhSt-R1dfj4yuJG7K6ADgMX9MQlveEtCjILr1hZAl01nFpgpIjvqC3NlmR3pfX7IL0fLDgEOstHgeZ2pcgDU_-I2O6GtRKCmj6X85NMjB0EWb5xKcCG0fgx-IwgoJlVAWMpwE39-uVf95QL4iQANJ3bXqF0aA78h5by6s15UWq2Ycrx1n_wNB6Dtkj-DOVCPHPW_QUbT9IUgqkCnl-MfBMvzbC_Zw9aipw7fbdTpqNYwHaG8yJx8WqwS4R3GtMT7eCXVBmcbeHuZc-iLLPLqiGVXdSNGWtBIGyKxUV5mH0529LAq3l22bQo6577PfXQdWTtABHHdnllT3QR4nR9cDmJoxSM1bPN0bZTCF6I608-J-dnus2JlQ-DQIPBPLVtKItmB_Dmu2mfCIgrcYYBv3T_N0CiOIgby4n5PTSa-OPw2kP_xReZokrUPnItGJH7QQ9DMhE_mhUsf90S6T8Wuze0Sk2u4ckZ9YgRxARiFXcHF7gmS01J9zKvJnxHtOxIWTCquPgauNXEaFWYHjIiPBDkl7fXhGAZORfD1Em0CxvAcOz7ZmVJgEzkA2C960vMN4e52HwyXKApm8dIOwFWpZ-ogB8bkaI8FBLk-CUFiqMYYNmgRQfZ7C5mDlA8bWaxxSWF5XEqzgNQw-MVypcqGIybANdcftSTpRUhOiwuD8GzV1tG9YGs9NKYZMj3wHRPlBdyF08B9O5jwZpjATkVk9l3L21FUvA40sv0wQCwSC9jA9oVw3MiYpD_TtpB_9dKtXScczhuOHWpaFVTZ4E9DJCFS4kfzzqMFiyhAvZKvWcF-qKhi_FcOnsHrMlIdjq96RzgGbGQyzzeJrUmSbLezObzph08rEMN47twxgA2O2l7jPez6ZyYxapBJdLOmUdaydFtTafuuir0XdgSR6T_AqCSp7q0UVtRmc88Tn5FF27yQAZ2d94jd1uzmO4UW1D2vw3vsLBlcmwx4SLHcq9W8UXpG92eDgx3sZjnFrgjOY_2SFSActTIJ7qJrizTxSYz0Mp5Z5OIVDP9l6OQmDJcHFxlS85cuPI3h3DYS2gvT4eBmL3APvOVsm9XAJoVRSOg0KjolE21WY8sOynqGMA8MygvcFJmoPdv4B06RH9_nEQ8pDthEUGpsv_wVNyGsl24d4yfC5y74w-j6hXkycEHDsEdxhqN0pT1e120qNxQidl9S49N6i5b1oMywPWVkndl6IAt2UZt3cXPJXFOQ-9REVcpxmwlOYRsclXA4iep4jGHRABRkD-bih838DtyzfxlXfGJpG0KMZIE9HFQe8P9EpM3kMFmeBcPuKKpdXpNdxVP6Ril2dXIfC4YnpEJaT5C-gv22Thz3vN2fK3mPz1x_9bzTiJMlcrLclRMl7NY-LSpOmFIBeOMcLge9rZ6VlY5ZzLvkAyFuI-hv-KDbWVBbq3NMZbg5Pjtg4gzCNK0YCGIJEj8z0MlyTp6S32jgXad_W0fVyjhtCN3CYFUu1KoTSMDQ995nhkyJk4HX9uFdyB8NZyNn8m8eo-TE8SMMzWmes5twsCSTWNTsQwLsdgQxIDRvOux7FiiTKRcrd8t5f6C2EJnAd9VffCtMe2FDcjZ18an_M44BRAWqaIuiNicC3rw_l1oLfxAQGtoHAOphMUFpPBUiFmWViOkwNov9jD3s9fzZO39JMTqkTKvrxGr_eyE2Gi_Jo_Mga3ouofqu6q9xlvWgGMAf9nO0hXzRdC3_Yhm6jj1Ny4ypsHNJwIRr2zZOfnKGLQGxixO4oGx98ummvJp9ptSLudakjh8vo8lqDXRIGGmbw_iDi-4v_5Vgv_YdzRLzSMA1Xwobzs1K7xW5okLdKh1TwsiFhDI9Zjn1XTu-gfkcWHO03UYBAltnUkUhfxsWjVHjbBNHOj-7UGix6Oa8i7gFCRyK1Ye22l4A3Vl0VB9W0sxV7CbrfIyMizNUMoPPT7Ff0pRzduH8AVvYo4-fYtc4ngkC4hPuP7SNPhPDrt20y1fMgtOurXWUja-kI1NsJQhbHjcbBoeDDsIpLaJ9iyMqm2DskaI8q7DrYaZUNlWokBahq_svyx9oMpCn-DctnKrkJKrOm4AHXvW-IPX8xGEUZ-1GZsKrZuyte0D2MwrX31nMsxiYwSSS_eKjGhxvpN3xl7TAaYPsKAdA66fkCLmbuBIiulS0Qxu0Gt7qzQ05iNTW1xqrLpiBMA_yUmM81pcnjdC-ngGkQmys_xZVZQzFeDb-EWbmeKof2QhS11n3QB1Swt11WUT0eO2qgK0UiO2p0CbCjonx_rQ8aYluBBw0d99YGOqc0EEWtKlXqZ2fVVAMamxqmvWkfxlGmABPm_miJOopPVClC4LyJuJJSEa2fRecTNwcBzyZgbCFwuxkJ8iB05t4XeuGZKkWZZA17R29_hZFcd9rg9lDgEDBhMUDxZ-qkDdbLSrd41ZivWDwJZgxvxpxInOSjBSg1Pr3gPXBx0C_ApXkesK9McZfKV-ySiNx9PtrQ_Wzy-qcSfEb421mRTpDLY8ATppYJ0D2F79mWwtqEW7-DBLogeAEaNBlpZFUNd-zPBqPZifkvJFtExE_DM2XqwKZETV6T0GhHDUs1kEdlSRSXZqfR5m0nUtrcr9WspTr67c-gSco2Hz_2-8osJXZyJe9U2XSllxELFe6LBl7lijoPyx9row0dXaWPDYtsf4O1g3DvPrVCcrkcdHI9jdmDEyduTOIh1JqNtUZyXmgfY5fkU7ROiVhMueKdZqY7sFuJJfHrsE6oqsFmad473r0yMTOn4Bxp-OyMuQ0Ei8dD449Ax4j4t1WbhVJd5Pazw2qZio8C_C5qRYeSNtDrEVwHtf2xbgZT0ENi5LE4aqRKuMXI0ayWx-mEbGADAESzp7sP7q0KvGoiTLj14-wGeCjie0Sg6oEecBhcvLbQ-8uElejRIuyuh97jOWZFCq4VcMqg7CeJveWtmx3AFt-iWdDfa7YYcLJ6Vs6ksu1NuYQowwZY9WKNVPIRzpcMgzBi-oELLfMKG5WRVemLj5kfmzgY_JqPv3XQhIJ33Wyhir1Y8gD83OwgbIMjZvF4gsS5TvLR4b7CMKoRjOj8ZYJyprLen6iqILysa_nBQXQMUmSZOuGOhk6Nt1dUhsaWNAI9eA05r1vZWB7FzebuqakoqGD5635DdUCSocqyhhNPMWEGQIHJgxSyM5NQzbKxejNH7paTxyWVvsKXzXNEliNq9r4kfmB5EnOHzMtu43luJKO9AsXyrKQBbzVbehP5rZ1N0TIFrnNNoBM2KNsCdCgND9g90uz66KI_12Z2EfZk8SPN7mdjxndF0U7HiXYfPnY5H-OuANKfWd_r3xcsd52O43pAVgwt42U2qwsotwzcxuEiD5bgdWMw3tvYNMCww0bcQs_CnvseuocYrad45vENDniC93syyiwlVP5LyCs7-EkEYizA9kLCrn-_eFepqjJuMLUIC3mvIZ-lgrLfAlX92mZkoE3SXKNnEzvuZCpe_27tL46SPIOsJEI_c_RfLvc1LueKn1LbV5VOXROEneU2I2TFNsU1tSF8hGA1xvnmZp0_Xqi7FGxk10fhqe360Jb8HoJExcOmJO0RI2EjzVwww-mPBwNaaIC7ekNwh_WDUp2F_Tom_W3x00z88m1fB6x9gTdVZZOBp-QySxUWhg0WlWAryv7WXxlGsFkr8MrSN9-wz9L_kIJ7mZq2IYklipjbzKVsdOa2bSbFF0voY7WIKMngL8_LMibJ2UPsh3pwVzhY1VUq9v4pHxbPK9UUYH-TPGqVgosbZrj0Nu2dNp1vyxLc3Voj0aoEvASIxUKvWHD_teZjHn6cSIvjyieB_Hk-yv2fQvicRkv4HaMcm3lW_P_5VUQoM-RaVUwuDk8varkpj_mqPovtD17isU2KpnObANg50VXKs7QxmfaYJvi98kjTBT6rTxAYY3X2wYQ7q8A22gaxpiNHeWB4R71jwhGkjZg4_a6mqk4y7zBqjIujfSMCwvNqwSt2zNWtscS1L1hRoz2QEcAUxiZDWlV9TACQ1FWEXhSFvCYJGrhHlmHE-xtX3EK58xEPEfT6rCCCAPu01Yp8jEFveiflijZnGxpYf7Jz-gctR_LsMWgsa6mhc4PDgUbZWIv7p7iNEKL11VpiPpCDo8-teiKzmewXvXqUyuswBVIQN1GwQAU0lMiyaTMPQRnUDj0ZegwfYc42x8uE52fNRYDis0QsuRKsW8mTuV2mEdsx4onkcgTbDTx8eWYJvepZdvLNgSqEBqg6lG4x8kloluFiKBEYl9Zx6_kL3vnu6B3Hs-X6bRySPwbijy8YUSI0U6JL0WXIcC7xGsdbbl1gTgyoDAyxxnYORFe9ht9Oyv76MsV0fw5_FmYGiNy5-dtlV7IQnv5pGFZvPjBGpBJ_K6P40e45OUM2kqSWtsRdrj0nYXzTnTb-8CxRvhz3wXU7xfmo4InvoWf0fb1yLyvuplIIRBsuHZ95UwTv8eAPxA3tPcTV33V7kuwWxY6K99vfyDyqwI9SvXPa5TNlEZWKAZ23vrcpY3ks4n_rO6hFntyja9k2e2CDDGQSCEZoKC6nKfcc9GKel56VrT1LoEZow2YmZN1goNDCRVW-Xq82WcwQi-AdzzeP_KnEY8bEdtO6yBMmz06O7jGQt7emcGaYbpsoqhlflFkfbBeNoB0PXqZiPLH662b9WWSKrGVqb7J2Df553FLyz1rF0V1WbqlCU7d-wBDZpR4z4iO4nPhcGDK2DfnRpaiTwy4eCd8JMplht_5ep_soOrFUsxWXcMh3B0BEo_iUh_u4v8X-XPKVIfxHcouuPh5teNJXrsbpwRB-9y7IP8BeVCL6EmSLD0zDvjf0YYXIU7O-0DoNPb_eaLmT7WyPOLS-7LPRvFMmeOfPp6dJfHU02lmLVipbJ-M0GfOxX7vymoRTvyEiOH6RkgyQnnpNakZaPO7Ls2cU6VYV3A0bO78u4xN4e8527_LsbKhRBzOfDuBBXxdoHl1QhMinIVzXzsQ5MtNw3jsdHSO6S3CQzHMfEuHsQdT3SpFCD5Wz2TCw6A2QQiDATrX0CgSOhEYp5QGptXLGHPEoNB0vpatkQ7szsmMleqQi7FydeqjATltMTwThep5moygTKNbm5LKQvGYQtz9iE9lP7hn4Q2lil9gJwfKg6_-_fJZcg1uxQevTErIbtsUi79kI9jc7ZTJdwTtzoI3LTdh3KDj-IgeDqAy4-mo_jbL6BZq_RFOvv5-AiV_8dDCX861Mpbj1X7GUORT8M5yYGbWVMOwz4XQZkW-CAqjhRPunHGokW2kTW7-PP1NtZYbhLX01iHTRXqghF8gjOXR8iHK2QncKQB0dHFbABG2YD8kq9AYTSYEjnWw4hEY-tldDioA7xUQ9ghpZLM57DKF0CDyng5wKBLGKlGMfZ_hivL3bfLtMLs20bd0-MFLLs95xkn23OqWEfVd-8_tWPpSn45S4auShLlkZLZ_bpZDgnraiQyzvRA8Y2ohmxkbW1pH4jpA7B-O7vhEssRq5nJ1eGxU-fm2erZaviPN3CwoDc4H_SS-V9l32z4d-0k0BTfEcDzrKBWEaCrwqYhigXXGRhYlp3ELKruP-b1_N-XO1LR-1f5EgiPBHqdLw8nKyZGbhg1M9crFkcN8owbYZDu9UVxpgDSnBmamQur3t0deMk7CDi4PK75Bd7iU0aKx0P8OTv5v2kv9YoXy8gXkEESNwvpr5ILiptb29gcqJQ229pTeJrSNNwq_l2-ydssh9kpVP4wPaJ1ygUskYbPhBFNnm4IJUEwabFVbU1kGm6AipLvU_jFeTGn0Afg0fGJQaF2rhNFxqxxP-q0XnjK348VlkEskhxzrMoBeZ21C0x5OXTRHBxfahZvoOVamoMkKAS-u8Yz4q0iwzb1-D4f03LwBISs9WbMGQez5ls5IHqZaRo07xFeIFHZcfTIazSYF_B0LKqIC46vMrtnvfV4ZM19tZC63_3ALU3ZKjIx2r9atsg7VTm8RE1LNIPmIQJOJo1FiN-ktS-oQzcimIsvDO7cpl1oZvDQTuQkXtiKvm0C6QrCyPl0nYkAwGTrOjQLq83IK731K4wtIPZdluUyBRJY2FPv6mMNzcPBNQkMRznLxFOOME0BG0hGrKm6uTZPQw5arsFq_Fe5NTTbHg7v6MAFwSRn0cKfZAi8rVCECT-Ml0R0qCprYzRQ0k2Tbh49RwlhfWNcSOFIMRv3TphIpwBnTYzfjKeNiztnwCW3k2zpWV-sQVXazHKkqMEnqAhpsCesldR91MhzgeTlzCgAZVkRvhi1rljVGY_Ftc4ISkO_nCVWZK8ubIBb7tum6yPNGxOuZdf2wZ-RvB8XK1M_oKrevCbcAg-5lvP7MZWvp4ZGeN7wvG-x25tESr-Z4w570mF4wodtUl2gYiHTSb2Gl-WAPPl016OsCveDvpdRkBoPFEO_5lC446piGl5xAqCi0JpG4oH9AV3GMwd3FoQm0avvkUVsLPfpScJL5I-W9fUHonDlr3XyydWnUzyjs1sbERubpWeHC6RsnD2r0PmSIqFME0Qmby3zIJZ1zDnTwJ37s2amY6yUpmi82WLH2GrBlzMc6zhi4ycit_s9Z_JaYbfvf4DzokegekQELQIP6qamucBxQJM4A5snl4Ob9dDOyWN9OlK_CaCozg92x5r9WyNLpxFN1VT4TH7bhFzdxspwsAV93vIXauuO9DOeNJY1zio_r9Gw_UeKDFKxEswGzCfkCUJN009CH8XaJsAFLqeLEml9OeUGkTXaiqAZZ17fAoTb__YMOqazim0sq-fg2Shev7GMqE37_j_T_KqttW77Wirrwcaz_axhk_RIkigBqfmzg-TBrjh05G3BgcEBNAq6Ls7CpiXXU-xsYCuojEQymnaOu9kbDUnFQ0nIdO5852b_KN4HXjX-S_iipXXP77peGlgnPFAtH_2Q7s38tiw2I6Gv9J9P9RaqdnHWJBNkB1cP6rJovuZasZNAHj7nUSGXxSQoizbE9AIlwMpViQ5dchNoQ6dSRAXltwOcjEfcEcEucZso7adH5EpCcLXH94zsrNewUt1bBV4T4LaheSlJaPhKhlKdO3uO1CsdJJ_kph7gP-PERXEvHL9a8dYGHNvodP3aOzlgSiX0QHeCZ3j2pGCEIEL5N2KSyj7NvkrUgKNemnBJz9lCGwPGwDRkvFm--c6070b3ZlTP9aWmGCH4Uz2OlHlQIhA3X64lKCmdYv_VLk6w6clu9C5dOsDPFnLKIzXCXcqqeoL4BhLuARYnYR3iC92nv_QRW4B_YA_KnBQ8BoAZvke5k0MB9fCTDVXP3gfuKAPfIKj5Rxvfr9jv7iToR_jAj10umfgqz8BPdavKl2138Bvf31iuubzhlInMy7paHZMsorX5IuIhzJ-e4xP9fUJf23WWOEWDj3hMmnbM84rhZO4eh--9yzyIkOtvQyx_WZo5ZzByWo615tXBeofaqlfSX5SSG1OMCFry5RATsDCjmUHm80WXnrJ89LlHZSUezasMBdXlsIN8IUsvY4TV0WmwSmruaz2yj6JMxwitWFQ0uzErT-sXxcQqrvIYW4FBX8alvu9HvNMjk3YqkzTl48OHJg4c5EOj-l9E4TZ6tTDUK6OTFMrsHn1rUpFkORDkdaT_OPHyK0H6oJeaEFdsm1Kf4qJOHYJuy1jypP1849HParzz0D20fjipG9rcrRKNMZ1mYBVG2y2tdavdRb-mIk1JXXOPOuYuA9OotajDBgn5_38TrlizqngIOJfQQQOWchyXciC8a952obrXLR_MIIi1iFwhiOyXLtdtJs0dg0w12hd262rV6z3CvnWhy97F_gMS2iLUPCx58oTozv4yNuqnIPr9kh2GlE6YxNzU7rIQlWExggd2q3UFY_mtK5P-lUdh7MLrpMY3ZJdMcnk-Q5z-ZREwrWXrw5-Cla84Jt1l-JAi3JVDh9bry9n9-_j5G6wJLjKFrgBGaUQ9x6j1no0bD0FkJlCpX7s5Z2cgWXsWpm1qf4sX-gR9wojVS7kzjSm8PmQ2MKv1rZ5rzh3SCn73NM7I7JmL1WxD4UhTsFzf9UG-Xto2Vq7mZrMNBxlLqKlNFn4XkVT8IGOWN3tqmxNzwlyjYFkhwGd5tzAYtnMOWtU_jFCRPBOksNU_D9-LoNg2uVoSR_fxTUjCtEoCVDy7kerjipfH4WrQBPIYUzzbZRkcutJZkgbCWxmk2as2djl1-2xHMDnUNpPGhhpRZjSb2VKdiiBd7LFFw9ZkrT78zqZrcmJ-XW2oD_QPd2-kiJG_-kcg0f2lz5Fv-B_P9B6zD9LgQHJkJ1RH42-_TVwuWyzIaSatWv1RYbT0OjrdfhIZzEXSDKBbDNTcJ52nmWw1QBGfDla2k8JE2ksPGwotMueo5NP8TUcKEfR5RcDxc8sWfNlIWxERA_JI6BDSFFZiPd7zkEHcf39QP_2pz1uUjNRDFQxHFXW_CSkxPrUudddCTQyxSpSgo2jgrzYUbU2RcdhrFkNrhuJ68NNFSjD-499lXqqNR8-dZEZVy1P1aBNNYja5Av35erGc6ghWSTiFuXhgoWnV6cBnRP6MgVFmB_Xc6aG58BriYxU7fZyPoFkBaaurw_DB7WF22420hgi03PRb0TAJyTRj4bkdmmrmMkig3xTpqZZE5eFlYxYI_ZMXl4ci2FhcOquVck2JddI0e5EcYKIb55becde17HyrUjCtrI0EIim_1-e0VFl3tqA75F2MCrsR_r60uQX_1ojXwrDIEFWbelPQnAGMMFTZCwXhE5i4PAsCHY_0OguIdReHup6KYgZvb4a59LvNBJpihYIVdqVuREiIwalWFJGvzYnd0Fmbk-rg9HVPQcb4BUNS0XeuGD3xBwKvl0fM9tHpeRUzd4li6nOvhkRMFaKgg1wROWKlBM78U5jd86xNZKJIstgDyNaBn5vujLZwPgaucw8qKU-y4YNwh_WHrU1hz8QW3F4eaB98OQh5tSiU-JT8y3lgkYNSLIv9mstP30KbMrbUjWyJCS-zXtH7QOXbWmjS-edzwYPfFfONan5T2uFJ2LKig6Mblxw-txZbtYSVLdNU_NJQLDkxPRHWryVrH6IROBJT6krYg-zi7Oo3kHzbP2AYOwuAqdesc5sMNPj_1J2uNf0OqiTM8rYoDLhUDqDUGIWv2h590Qa8UgB7-LVRTaop0503mkHlIbbu_itsL7-xJ6YvzHX2WMMK7fG_YUkrZnU6E5PcZaxC8EO5tSguehzUM1pGPThzSbDrn-_rTb1uc6hzhvTxGnhNOKPX_4tek4WZiPMlMWinNebjRf-uZusMM5DPca2j3gA_fXZQ6GlSYRqcGgKPB-W3KlMq9UgGC9z-8nSayladkCpMpca0DMlPodNE3-2KqpK0qO_vGnT51KGqV7uVNWRPDsPeK65lLMfxICzwMk3Owy7iV-XDEtvBVBdfJWa9RQz7RWvRvaBOQ27u9d7L-aDViUKPpFaULfc1uVGcdE_MZVkZFxb0Gpr6RzxhAKzRyRdrfOwZRsL1YDIrmjzM2cQlzb8Gop4GaYrH5xsAfjPXKi4DmPxET2BMZ5ztjG2XOXyHkSr-poxnm9UtgOCLAyXpdVa_Q5UQPdLOU9no-XUP3--ynYyzC_KLZuisvjJrXrkmWq92RDLwmtPzUXVHr9IKyv4S8AljLLCh_S1iDs8u4L0NUPb5SzT01hWDEvI8l9YsqL_xVnFygugXJB8HifZzoGJEVvVJS0pOTGLKmMHz4f_qmLXrW_HYvx2WyHxn2oiRt3D85x-AZ_OOZn0cSlGPZcIzN_xyH66a6nR0-HU_Qt6Mzn1LDXX2nSbduc4jmZ_40BliNQSoDER4WcL5Cn5Fre3MRzgqBLRM70HPwR56w7i3Pqmt1kWVFxBPcTkS-loViTYgucYx9IhjKjvJdgEo0BWKnjm42QIe1zJ_Y1n7Z-uBg5nKRWU2XdcCfS9kTf_S9v45CXUVkllNDx8fr_VlzAeiBfXqwLpeGqVbLhClfsXrTGHUQMquk1HfsvfTWKTlhWvdw8oJe1j_cnh1-krRW-8LQsfejTSxV-yEgGqeQWw8aRcPcuFFJgzHPzX9wYmkipp5QVlMcW_KJfnfYBn1qm7kbuVyOjwGrHbdwvh-S4CH8SiKAj_d7LzjRCyEYdrLTVg1lvTEXRbfYFd7LCI3R48Y-qb9pQRr5iUXBnNSDMPtOFW6YA9d43CwuAFZxeJ2KVoOIEqG0u_Vbiy-ayoZKpebtSwNZJws2I_tsFYGxMYBit-X51hQlTEfN5_FSn7XpIvYOLPHiD7JNcPZ3S6eb6o4w7buhRNdjHXp6a6hjYQTiW_6Yp5tgJo-0GXc0cVN0OlOe8e6eFzIzBMo_ZutoHb9mo6vN7herc8NmUfBQn5msuqUZBXEYQJpf9f5xzewyX0wZ1cUZeYrFHYQSfeoeOtqlRTuRWdzsQZEf3NmKmDrdo18__qiZxvfu0fSdQJF7UKTmqLlC-0GTWyD_zVLOrxIpZ1LwbtV9481qcAbswocVi0rh5rX4DytoSiCU57U0XgsApuzWPocOTkHX0ie0lrxdMTCn8A0CNaswrVhglygF4MKCLAZr7-zDdNel-AfQh_0yDiy5MKl8KJE-6jerlc1RmL1d-cn9tj9-X0i5tkdlRpvgg2mjNuXjKMFHMFarh9jR6P0x-wtWXR7vwhOPSFLYE0N0pF7L6fdfMkGhK12kYHhD7os6dLgZeuWSMXiB2CfYvTJuw_Jhw4qLdlpp7Vrr2uASNGrAoD9jrlbQG-hOBgnv2lFxLv6clZTY0ycndkqrN20tW-Ka78fv2ebi7x7T8lzsfIquN4uFvJw-TdQm2SdvnpjqEQeCorkgs-NY6QRs_iS2LA_4bP63FnE4biNvASc76pk1RuYvMJUv4atJHMU8da72_ePSV7tMfk9DmuvYs7AWjArRQVwt0wxA7aOwTGlkbHIpY1ZfGjMFnXXFxIHGq8zBs0HtIcMJuTWIglDSzz4dQSICLkskYIx1nWU-vZJtLqrwnD1x6Kvs_6o74jcAE1fFWd37YntX90YEp_IfzJBvEaEkCBQTFRhFh8w0xcaI4yBFZd9FpwEhgd4nATwvASFcCq491-BKlrJYKH6phguMUwzMiQd8eJBDaqWpYFiSovZQBZw37U929UMTSzPgOMBY2kSxqG9U3AhNpklMpQMOqnS-oJWM80UuHQP4uTn0bjdYe0aif1yVuRUhCRo895LBroYIYogZFaBfNPVSGC5cAAYOoibFcIw5VezuJj8Hbqf2eQGmGlO9RdlYqA8qnIUEbaVQUQ3TVo4pq8gBKQSdQMvczUS_G6JYQJgNUhqGZrtRHXG6UqJDsPsk0I6pB-v3Rj0VYfCtNsoBrb50PRI3V7CrWJYGyZ2w3FR1EImMz9w2GNWp_q7uHarCYap4E544zUQw8McRyXvkufLSAGXI6F4ZPhd9K-ysaDYVZGiNFuCTEdu1nrXoo5QJxMVMP1GZF_L9NKzWmq3OTbku1FNult9Oer4FhgE73gP2NbN8kO0QErlJygbQxn7wtq6M-BUv2x72I2d6Ptn_QCht6PovaPg3_mcJLtQ02pDBkiGhHB2Ym9JtdxYH2fGP0grFyFbvnWCXYRPZty9qY3jQlhgk3N0FTYGMKzzDjBeZQ-7gSnQtKnjzMY_u2-k7m2t350MSMKSJfsjH08jwnG0vYOth4x1eIHen5vS5gTbQGzjTZoGSg7iOp9UG5AZIAy5cuS66z5sweLnortULd7zTyA3xte5z3LUDI_HSia2sXnr9YQGF8qH3fEZtfFtSkz_hj92hLdwhTbeZRxwlGAnkIzLb103L91_2Zy7Ropfl1-_-6mHtZI9DWkxsGiyfWjdwPlMhHH8DA9dLMlNK7qXk6xVZ2I5EhULMEXQV29XLYj5W3MI_bXrwyfoCDjlKybMBMSbqlFDYdQROkCxvRzf6x-Dqk1WJez8N10jtBemuechloNgDJc-lhPaIq1_y6pOzDXG9jdZgvqmfzrTlVIP0dthZeV9YXK-T_lN_CJZcA5EylD-S9MOFQpHQ_SXYy90rnlH6tbKHZqKQf2h8KF-7myBQJQ9bZGIKHfQPiaVvPA8eLB-xT4Sx9OLZYtIrybShtneous3NiEz7jl5Nq6n1NtxfucX7F-Li46kld1abgk35pHSOmctLER5vo-N2q8a3clayhY2tj1gY36ojKdGYyV6gaoXLyDvUkoLfGSSCszs3Y0zW6AMF291FPcIhINFwTeyR2OMD9Qa_QncX9kTyvfTsZ0xu2Yv0qsepFCqn0O1FA1jiI9GkrzKI9G4o84KNKG__ECt8pP0xKTXd0UXAjmf5djqGFVy0Ppad9OY8SIXxbDK29mWWoNa62d4q6YvPeV3xdRfLPqJHsiQFJ4NVu_5_7mRud-hdO7tsQIpENAVU9YBGF7yxFW0NejargHhdrrcl0GuQSKu2Yx4WCkS1I-kHUCd3E0080mrBIY3IHuGEKoHZwNRQN0Ltz37mpkYrZJoYH9LJYNsXQBnTI_NpZ-XsT3D6jHQJgvqbquDFXmJEYPZjncGrLT5Vu70XV7trtJZiWjy7UlDzVgl0d3HmvQY02-f2wCzSbjYIklj25SWl4sCzN9gHXuO5slHHu97F-asztYbHYW3bpkampoc2fp9jaDnHfpCZzhA7vUAqCeoV73BXy9tEBLiGQrD1MXcqOWnMFd6tVvY6Y27ll73q4uyT_qEyGGcXb6THxnNLsfVzOUXnuX3uYFaco1eAl9L1WD4CvdKSxVv7XK-qbPHV_PPAA6Cq2zVS0By_tVXIywrlyWSEK5-GJTkIHZjDAXfrE6JaFT_VLwaS1x9_tAxlrcKywtHFrBrYVghtm9H0AYwehgxGzxg1yWpPM0FS9BqTLgorqgRtVxvpsy5ZLMZiLGUQYGrD4RksgrUyMvMB6GwIh5wNshmvAk73qs4ZX7HyhP9Y622f3ruKgOjGErV6_ldn3ailK1LGWV-oOBb6isQdN650AAZJICEjQtLu_UYEAkacxYyZEG6Zxzh9TLpnwjpYj02ygtEzktm-3icy7y5vmQE-zbCBB5e1oIsGkC8UPokgHHVltDZ38VEpGFEXEohpjUdf2ww-kiaxQEsMzkdzp0Uv3sOhogzyJL-qzAEKwT2qBirjMQsb5IDjTCGDCywotcO3hff6g6fe31vd0JE0qimpQsLL1daeMIflfOds7ud-eYID25X3nhZ2B41sfdunPn1KPh1BbSVY3WNY7XoGvIwRYV1ARTP7V1pXM6b21aLDnJibpvYHt_bZ0YlMhx4TYmAY6rtAKvc-HbhU_7o-mnkfyemu3yxITbjJFN7aL_JP55eG-gWRwkw-b2dHOIXacCenifQwk7o3yvqUaOrIBPPpAj20Bt22-0Dtkwvpoxr6i2Kh-8xV8QJtcCz-QDvci7VvCbhfpMiA0S6n7O2CkrE82h5jcnKJk4eDDEf17uN1vj0CIvO8OpsZ11VE8g5uhtnrGHTZ5HeQzvfDEudvkMK-7QguZG_JVvSG5fDUp9VkV0LUFylxIecxXvKwHwlqPK8RW6IFmJPs5_wmMY40pTXZMwi0jSNe0lJS_cPr4xDG6CyeiCSeYAvdJT5qYwo97twAF2OzwWYsnJLYA2Fp8QH-QXFKzcvW_X3s-hjK78jrsTppXekBY8yettXnrngGhTKORsElhBXT_73wzz9-QSpUFmQ-yghEoJjwU2cUFzXQCayUNupebZ2Ses0aGO_kSQ3IEnD6Qd3gjcgqn-fE6Kl1ITpGPGP_6spS0OXBQdIH3zVtSCmHWWJ38KNKM_0cbK6r_oMkn8wCuxpoFYR_rEtVSUWRDLTZb_nlFcSPvZcL0lkRWcX1UoveiFOMJEXTWNzdC1GSFoDBpAvjk3epA_aW3JZg37JCoT6s8cmslwbXl1V1cHm2XzNOVB0d5AVX66jRekUOs1RcAMroq52loqsbZSYpOi-M-NevxFpNOMUQu4VruDbssux7gxDkD4J9GjnQc0yq_DOt_vZB3E2ua9i0iWyzTO1EBsX5Vl6FDpJov1vQcz8ZbWPAICDz-ZWpc8jGf0XbSn-lHQYGim2bRVBqRO3_ZRIX4-JnW7O_InAODKUMKTYuIqUr5rxSGI5WiBJh2mfl9aFNmZ8P34yCJEWUJlf-2V28NUrpPxC1iLkVm4ORQZdbmERXlDQmv5a13KFCvUwqvlDUbfxMb37e4B1BXi58_bZFGlPsU3tEW4cElbY05Gdz5v50-GkabKpS8hwVRkZuW7fxcSWWHU6ACCw6CmDzbku8sYsmKp8It-16b8q8QAEJoeMo2IVuJa77Sf59kFxdcRUK-Io0UoW_5KnP0nOB6sjQS8m14yJIG-oF7u8kxB1vh3t-Dp86p0zpg8MTB6zF_4qSRkEG1NqdP865FNyK_IJFrCq7lwnLxeNKA7vLUGfsNYKGSFWmaXV2fYW-XZH6RcQfzPbPsIW1n4Rq_dytIbtmrePqaCD5-FKUJVVrM8FwnAve3qBLMJqkDBRGMJ0TzT2rg5wfBVS6L4Ld8JZlb085UpYIiggWy6MdrTC6lDld3URcvC_jR-xmNuaIzb492yv7_mH8_gBi7ZWIUQ6_2Q9lMUY5l-yV20JXEhDtY9iwzwEMxF0P26DOScUJfop10LjvpoDf4iXaRx7H6Eh597dfews7mx1GUSpmc6o4cGsk2_RFLapcPLbkd3Aokw-Hh1ag6ISod4eltOnzIBc7LN0Z7xCxMA__fXV7yif4mCkBzM8UXeZ7TR5_sX8WDfCdYjx0gf6XRm1s8ys0At2o3xpG_q-9dySHgz0pH1mJ9uSaMgHP2MVJw3Ue8EX-sS60DrUo48MipAraura2zmbeRwfUO5PiiNa1BFTRL7gO8A1xbnOmdP5R1613InX1KLxwvTeiPFtI2Uc0gvDCVy0xqiMNKlGn7Z21ozztkDA9KABjbS9Xfe0us4mv6PVxNAoCHHsqmjddiI6lgZ-MUXcWGpxabsabChG49Q2tD37Y-SZ8TH8tcFPSo6AQw0tK5ezzSabheN_2oGsO9Q0e_Lo3nbyY3S0xSq_-QRw-z6DSYNipOLS6-_ujgLrOD8urm33NDXZVXyAPvBCSoVB7YB_wjGdT_n6uumafHzdq3464cRApHjJZdFwPHvddSDJUNkqYI_wDAOOhL2Q2l8SNw9LgmsrKgf8tJ9hblsoT1wDg54LMVaFN-JqivVEBxDkehjPs0MrePw7BcVjzNvWqjVEX2IM-epLxlnrYEr2hwjzu3hZozyHETAYl_hK8TRfCO35byRvOOq4Y6nDZVoyMRk1wQMkcfcGhH9_UdbQSAVqTI0cjacdmtmIBt9Y5mwCDNvVfeJa5ikLYCVHUaK_-Bu0YlG6j3ZDsRKkXQGCyMqVOzUBPciaOkdM6UodRV0o5u-AxLyUwfvyYrZxCddeTl5fvPk9wqmxIEmSV0JgaDTeLQsxcmk8hLyEjjV90DWTgsoVAiyfT6rS8xAdi7oZg-NCbJUVrCVWYeWxiFM1a5ol3u7OMSnxYK34a08aM60DbiTalNDk8NE3y5cIOh16mZyeD0bkQ456vGIjCJpdnWxHcvMtFS5P8h4u9bGYVY1WmNCew2t7fFIFqPlCG9MbFmmIIvVWjN5uxMQzbRmkG90Bc50ReX40Im8WL930_rxKKUFojZ85saPmqBfb0KxbyfqpsgMQY4_ZLGRPls4c_dBYLbkB4yxew86V-BzJFS9DY9vr1CM2HlzPI84BF02-qs-cJUv9p_tjG6QiXrLn7f5EqB6_nIdXC7e_IR8wwpvks_I-6sjzyC9HzctRYauY98TKgd3QLfuddeay3tCBUIk2BrJJIkj4IJPxEavHBcHsqHuhLqiOSgoGzsBZG6NEyyl_tIqKVdnqcqABFIElloesd5pukcF66UC3O9kqbJ0Sp3PiyOuUVVX58iVWXk3VdaRhlgrHu0hlifzvA9SnkWpHcEiaWGAVu40HB3zeGwfELsBa7N1M_wEgM3rfxzYQZywY5m-kriMI3aChm8HN0ZiPmQLYWf8orraG4XdhXC2EDFAO7yqqcR3VfjrDEZJx-xoUa0f0Wwr45vxhIhAQpsWQHuCkqd982INQQDRPCUOy7izjZ0mCiD9dTZW5votJoTex5NlWA-JHbExR7drfplNfYdGc_TIVdebEAXSuUWfzkeSJAh_OQlxky-QdQB4bPcdDJTb0tJIOCloiSxAhDkW9oWRAUMBJhJG3Mp7duTaIfXFHW1kRzk23terpX_gPhgaYVdyDCzVOR-FhR1GacpEQvonR7KPYxNU8PWog7VgWnC01n2qgXRq55C7LSmi_KaThZern6TSq1S-9mnYutsorMsHW6YkvkatvoQwCUPQohSyTZI1UQ4NQypbuM5IVofZQVqZmahSN5TRkEpziJPDOeCbb9lXirLsfajPaNpbA1ILrhGOrsznJFuIO9ng7_kUDcB--MSlzLSP-rWrBY0asCl7HInHpcf2Om_W2UywNW0pZe9lU9IQ7WhoT2I2pfONgQzr1UWwhFVX0cRBHIg8nkGT7ytrPlaImD_oEEiHjozsFQznKc7wa3v_uJIYBbZNUOJU22A1VMdy9NsvqzBa_Zt57sw2jvcIQv9ejWO_jWWXKKIAlGdCqAOaPFEERaluvvLJdsXFskKkBqL2tZa0J0sxZcivIUOqKlsbToJUfND5sfs606IRt8-XNfAGEGxYCfUXd0ESWQHY51t3dFavlcdUWi8N94E8wgpvWjhQtCsdJEBf_aWKgRXZilO-P2sQ7PK3dXgvx80DKeSY1AKksty3aHkr6gcq_ec2OAzad6XRZ89k8kVgu3F4gd5XJvHCRqtYIX31wrPr3_LoqY4IqlykXn9UzzT-Y17NZh2oJbC9LwUO3blR8Om28YwqCbrZz_qz422_yaVDraeMqCGmb6Zy1WExjvOp088Q6T9ZxkxXqhiXFrVPYYsZXIeQaRDJ815vglRAuSKepLzmHsAywCEKJtKWWHwduDNUehzs3UMpgb9ohDhZpveI2CPDFUpuhb8kAqXxkTIGdOMVm8PLFZmihVVK_zT-OGr9fXVG0LFyCl6mpKWQKjZNFUmrJQVtcyeYVqnOHzLg8N8_LSzZTIcdw8j2O1JtP7rwOg04D6dQPY-ROGXh9ffNbmNYoB5qlrk8wpOq-9h_0qlOBCCdZiArfAx9sDY9uYNzjG2cFF6F9EsE3etO0qHTeqIZlvoEgw1xEuKbIOvxB1nDDIGeovtK4XnSibfUTAT8ObzsJ8xLgQqGHrjObvO41sFXmVJelsIRGcKeriQZgsgf9A6yucXf5AUc8b4jLhf6u0hh2PXRQSTN7AMP_L-7mThHoz7Q3vHdmnTFvrDdRP2iS3Bbn1HtCEtthIVlgYcxEDrwjRM_HmRjpViQlBdma0T4qD1PhMasEqOnprTlMIJkQ_RFMwM4VjvVzAWnkZ-8ysl9K8UZT69fs03T9VrierNgruWJjY9TwIdOCZA0hyfw8zlitz4SRQLlYRpTpKnADmf1aSzFsHss-bdssj9Vy1LpzkMJWbw2OvcrzIGqwTidoT72xQdPn4ASl78V-RmW_cYUPm92WwGmIYmpT-wxfJfqGS6GIyGlSUiukk5Zqb1zz9dg6JRNGoYMQfxjUz5EY3HEbx8B-aumEyv9IGQG8MrdCQexq8VuQxd83lFrqIpc7LEfmjxQlxxpAy5KzH35Tt4hk2ZgGoAoXXZDuOzQg6rCXohF6NqsKuopnONzbNgWwDwpgi92fMU0use5vqY1e78PM9WNpVWNtFTUObY5T5bXkq569N6n20yPLBWoZTVZ6V11yk_cuhJHjuHxSNjVecWPmEyjJRWX_VffHdmrAUCBy8UuJvszwatmIdR6J4wNHZg7-0y40ceBCBuYXPGb2PtbIocNYgiGzpXq7Q-WRYhrjRd3UFzRVf-RazU0pHpmJoZ4HFofLMXFx5iBRhJmba38SPr9G-uZq6Uq69XgWB5fU814zkqlS6z_KdqC05PaZyam3X1OpzHKLKk8xrsaQtlCIFg9-ug-trtXC-uVN863YcsHUqji0OHsYoRpJx0nL8WKAQ0dNYz2bfZdZtctLAaJfwGfkAPZomxQoHHDh5R4HsI5cX0KeKc4vHTksro7Qwgy92Om9bQ9ObwpcV4KCCdyO9j5yAHAF-7RQil52YnDWTIvE2kv946j3LdTcHOOeeqKm-aulAXajftrAUTqBCyt50EkOY4sl2guOM-wRKJ0BwC4n_1fAczhiWFMj7i3AQ52gW081WpO56e8gn_eQfQNP55V-N7-bNWaa21KeD0ZveCYn8quS_hmdorKJY9b0Epk1pZGZI01kYSgqa-pX-12hL77_Wgi2alzlIdmN58y33BMtRnzzBvcwR2aVTjve8843hFB8K_OrZ6S3947A2vJcnfT7gCk_2lXLWqsig-BmpxEBpKY1gSTj5ZmMio7FBGGfRnMGypIeXihKi-1h2SZbGxtsG0M1NRgla3lPCxWkhtvalNGpp-1g8xPkWaYz9pgfHDFDL10fYNgdvtlm4rn3vPMv9GH9AcRbVEsnL_MGueOL2a6VPLaEzqADeFwmL27B47J9SaPTSjOEQ0qZS_yW6qGmeXIEVgSKkDCdYk23SpICuiNvDACxzYXztIf3Ym5tKV_nRlc8sMoVCI_mQBTbEzwZqiB7foxD4XRx8wJjhjfqIp_ryQXC3GBPjNf1IGLaCDYEc0N5Wa8tc2ql9RDuuzuScZXZoDgYRCO9Nw03qoe9lXfHWT8DmP7mi7XHSQtW_Qqll6aD-CBffhzJhXKlLipE4SfzRv7Hg8VHwE9UyrJKbnEBBDxAAhbCsIO_1W_5fzl8MV1iR42hsb_Fr3RDs_kluxt5LbkHuyJUg-04VE1cpIvnp9tqZ1oLdqCin6avgKnsJIicZBnocypG_SiJHCbFCSgYwAIf4AlJnF3NgADVSiFbgH4nDHvpBri1YgVVdqgW7BDpGDZ46hCOwkEGA6f6PrDMkZqYhUaevfyDxdtaJgSpe6kHDd22emtkOXQ9IhTQ0zbqwg_UDl1QdaePl2u7d-YW8WVfmuUJ3J42kOtxD2wguGv7YAi22OiCNIAb3RG8XJxZEyl3oHA5aczuQDUNhLRdAZe7XOtRN2jbeUY6OoZQV7LuOYeX-v6hpM6l8v6p8u0pactKAwzIT__ZZmdsVf9N1cbE-zfoxRutFJhhslLT9a5Izb8j4E2_An451wwRS2IPYt6u3W4CWxMFeX5Rnf0E9ERtpPfqKs8hyJfURmQ0Muk5lxrXqCf08b3fsGoFxUZgtlFedMtYz4sdCG9qh__oH4iRep-Pf7TmUWKC_rUQGieh7d85WQM7tDItJUUhOKV0FnoiIg911u54gUTFiE-yko_Ij7Vf2XfgMc-DcOi0x0bN0JCvS-3QmukdSjJTfSr3YYwBPKL36WcC7jI6DozlhCbi-bUaXyVlXHioe4zSt8mRxEt080TEMzmQ9Q1WPJ1FpM4v_rjO7iJl2OesaLlWG2ddSy6hqcWbNpdVysv2egVHYTALfHZdoTdYO-zd7yZyGiTaQXBZBtdXgJrcE7mJFOYStky368Hq42bcm1ZlxE9UNnFfgvJj42Ax3Vab2ULj6i9ITt7AuqeTKUtme3b3d8IZlKrDSMKx1PcwT7qIscLBJno-x2c7V4x8uaYsGJGq37V4qzuB5NKIR97b1_4wi0ng2ZvlLVGRoxvnfVJe3wd3vaP-vEE-YcgT_OHeWwM6PmBw5yJ-uWzCM-mlNOTbewf7OfPwdB5-_Gzf7pejJbTGr7ju-KzzTfqdDoVx6NV0fM1ENVq0VfetBG2Jm9NdFqNc14mlfSURcOLE_6MeZ-jMdzJC17mHQCAl9KvHONlytbf1dPV-LJE5C857wzNAthCNWlLxOO214PtJ_N4f2byFTNadZ77kZ4nhnTXFPXpV1fhAtf_kniIg1EHlvu31qZIZrxeAvdVDWhshBFkEkNN_axfr5tn7ktBiOrbiHUNzOwbjiBo-rqV9EYzudHSvZcJuCMNpqjPVgRgBAlh6aMwyyGTQoVyK4DxgbeVg6dmEgrcHy1GIwooqlSA1k8VTGb628dXi0L5TvGCggSWgQuPkCIlspGzfc_U7Uk0z6OK37XCtb-iQIZhHmNXMH5p-c6MsSSDa5puhAC16hb8o2AX0RIp1SsmRNvkXHyAAz8KWfzEPlIRLXRW2gv1A8mm_6mfgVOmMmYzd5Wa7hUbrc7zd0qiFzXfI1zw1YoO0SgZPC5jRiLuaCEGDGF0uEZQlf9O7q2loa1WaEI6va6MgkWT-M-aFWDInFCvKEF1VEDROCTl1h9vblfeYeT762X7LohgN7qeqDE6Dkg0w6-ppJUcUZCVyta5TwJ7snwqIFAqqptaTFeqS_Q6iR7ecMtVGJaDMJ22XBlNcJeCuSAX4VLpBJDMM7VbCKRLMVX4xh0SgYqZcfolohyI1KA1R3GDjYLuaLfgX_ysNBlZHzuTRhqYfkwsAejjj41GoaMkeDGGKyr4uqOzgwiGRSpWSScYvOL2crR_AHciFofuSk5uS18EDo0cVX8jt6iRxHQG826j0zdbnePEyGUrnCU74l37314HNgNpruIahMqmSZvXzD0K9kvqiaVW7k2dx5OvGeYl0lgxv1PzCWYXoGildjz0ew-o-X2qtvcHRVM5lKGyS4bF6QtZtRCT0kvZBCP4CnsYhiZCux1PscpeUlf2X1guL1mHGARXuE0Dz8aBoK-t8neHnnhFZ80CNu-0s6M3YEcDIOERjG8hn9GzofGrJiKJsTUQXHHVxuuZkD812CVcFcX-BFoYb8fZa3tk9wLNGL7J7fSfVQPdQFmGy3BMQWu0txQ84J98BAlguxRV89v1RgLobHQU6qcnB2EVX0AZ3Ez7HEWHzBM3TYJxhV8W_DiPxd-KvEXvGVKLkQEJmpSv6c-CBZz2I8uoXcC9wrtb-sdbBU7G_LWKv2GbwI4tKX-5Zm0sX9dL-oZJQpZ_GVClgiZzzwSSMW0Qvb9HMVIbJjpowGrtYQxzcKNJ4OF2c-BJhpNHUd0ipa0l-DtXZXnf5yvLsDQ5MqNWnsvzLa4RJFwgIRnrOt6mLslKsiafknNi4WDb5m_tc6SRxrpmGsc8shnM8eocteNlZP8QtLKj5RrIiZsMSMvSGhf7gi9nlmKZ8lA9ntsGfiXmQAI_nrpDdVV6zGlA7Xa0-TdCGh_rRIt15t2Ikez5mErw-Am7tBPgN_FOXih9bNJvHHGq_vcB6AQi3uINi95cXflZIuZcWVnNIf9rNixnk0pQZTN-ZDzy0ZEYojPSb6iw27THkQFAKuAw0hmv-Vm4cZMIULzy97d6TN9pDqjKrwVLKCpBkV1oyYBSt7Dd7y7YIBaVAXx_R1DNErYV2QLWMU8npJTC3ia0DZ-ADp-V0DWSmR3brxxdAoHCT48cy98r72YYJgJsqKkcgM98lQ0MnFL9qld0fWPJvr2nHbRm9SrXc_PAJCxB0M-DQHe9nq2lsiN8Poz-Y02R3f7E0u878kmF4FgvyZn-q-sWYm1RMeRfXgdWjxqziLnyDyhia3FLWWAE1-L-UboOOCQ8mOoKX1eUMa9c3eFfiTaypTYZUfdpVSx1rW9X1d_m6guIRTNaqhWSdHeq19j5VkDNzpN-F5Yw_yh9M0Kj6FMnEEOoM08W2rWDVghq9xbmMjicKwacIYtnlB9rhY_mJKCoEyoENqDTp13fHo8K_bH6awMm3E3oP6QPJwqgYZutzsJgArPqRU2HP5eFysMw_85MjqzZpPwPFN_23kn2ych7bUUqRJPuZloPsB-p8fot79aeVLru_9GetOEJcGhRP11yczHLCrAcgze2kBxkBZIetL5poUMaxoeEruRG7aPgdMkeFs7KEBs7_8t6oWY05bUH05TYp4fAW7ZI6LhwjUfGy0p5C_UmrT4a9p5wyK8PVlGcz4VNKRMTUo1as8Pyhc4xc8SqPIBqp9anWk4sF3L7fzdy10TAg3LxdRqxRJ_4usIfqWB5eZbD0SXgV7PWM7cMxBbynQ4QkE7bbC90EPe0QwAKkGdyicqVNJDQCbxdT_h71j0__dg5XF9a_u1X4O6R03lrKe6fuB4QUHsYwOMR4FIaSgcX1Ae3_zb5HyM1m_gTqRN_BbBAlgMhYF3wT9GyGm8bdq7R4PrlOFZBWhi2fTUzXWB0-vUnMAaqhOABZH1tiuV1UvOJ6-kZlBjeUnsJua0CesTz36pnyQ6EXKKh0-btTAiCFBcFUXbQ5aPgwjA8ao3_XV5I7KsWSnlZk8seqGRNUtZOh5plSgaj_hJMRuD9FnMfpUbciPmEux5TUVZJxoZSUcKnJMd1fJWHMnvvC6EJEjjn-2Rs5hT5z1Gp1MgkH3eelntpF0vy3XndShWK583Y0FSE-XsBysEEJpJuTgPfLeEH7Ois5kWz0A8mKHzx1GxlpXq3gjTHl_lnJwSlF0VzSIAruUxTduzVNUxnpYhjaCY9L8Lh-7U9gHV1C7TuNkogXTpfizH6sQ3n7XBKD5Bummu1OAiLKEpIoa_OWEAyAJ3gITrFyv6x1nE7wYEoe9zk8Uf8kSxdzbg8afDTZOFyDEC4ANXMZtUNf9rDsk76Fr3SiUQ1URz-HxlaW_TQc6ETwexAUItp7RhWK_22C6cASCketQ7uTg26gYDhviYUS4ym9CY4g31vb5kBNtTk22eQdDzZLPkh3bDv_67XVVFobu2cTmQiUPBUrlROWyP0aUjdfUs3wS96mqHi-xdso3WTgNb6EL2_CV-reHiNqY1WOmxTRyEtMDLvS6UOvxOyKDx8Povho5jH-kI8k-xUmPeHlhll557zlD-CedjjUHRFGGSiXKobvw_FjpmD9XqYaPYzF5sqwL_XXv5GdXtE9wsnT_fNZcw9nWVf6wsvDBWfgaq_M27kvm4T1IhKNkELUf-JG1seUML9KnP7oxnFBZX0r8cOlXRK4gqq24YigEg-3lblPv6twQtBL8Jv3QnciYyAHshHt-AmbJpNk3WfTPAFoTF-mtNjd4o0E___oOK-7xv7r3cI81xODJuB_5XUBQmjLUi-0p-UVXR0iQyBYipWF3QUOklKsna0q4qDzpIWQBq_Jf0frxdcLRng3AuyI46qPLJ_UEAywYjxHCdjLnW_VKLCSyF-DZcWEitLBbnTl96oC-ZdOxz7tZg_ZPCVh6SAALkot-XWd67QcAlzuxHxrtST5S1gVmNOuJgHq_0s6BobpYZNgbZOnCtgnEIuZHXU6JkzAzZJw6lQEFqxoxlVVxjMZ-EGF7hlOhuD68nq-D5jLU6rpK0YwfRfnJfzhxFLZM-gAbaFoUyheb5ymVgmXRp6vzOcYPfVCVtH0kgqhOrkPyURD1kynQ2DJW7GV5BeNqf4fE2_KVOjl1EcT_FrziJYRu-UFog0DdPDlXjGxz8_FQHLFcBbftsRYU5l91486LXmd7b2VHl3DGR6J1N_m3G-mBaJVoPTzroBbTGgzh3MHtEXtYYhkEY51Ar2RDXp-knFtc8E9EriDelxnBycz-FngnIY3sWheMUfX6i6ufC58u2yo_h2pruM4gTq7b3of2gN6_aAXv6Zwu_qud8uU2BNLkJ58wXwuCl6jctqSHtwt45pAOaBgpKVwZU0nIgm3wH3oruksziRAQx4oot1QFSEf9SsJrP48RYKWapeUj6iZa8d5FpvwtITehXQBia7D4BP4k3ZIojZXud4cTZYvQnlnvkZk6zvaG991WKOqXD-MBWD3ZDiWN8wlcTZjETrbicsUlZompFy-236-2Inv9PRxRTUDTXG1wvf7J30bCj66Ue2cVfizHcE40g8MCn9_xW1D7LSm7nxY9JaXyG42zypKgkj9JZSZTAtsfiPYMN2ylTun-RurDloPfn5vFCmt1xf9Za113CCFX6SjLZzW2azPC6VTJId9IiijDIvJF2DA0RlXJUYd-9jdPVTRbkwb-nzt80YFa_E57XCqB63w7HW93kJI0DmpMzoCTwdJADRxHYGz7tNCYvK4EX_3w96lOqW1CzP4NlT7jYKU6DNU_kahltv-7nWkY13EQwGtgeB7YBN3yqvFmjuOt7lHLgfihpf50nq6hKLbV0v9VfNXaPGRojhMD0f06maYGtccyP4bDrW2_FoFm99yAuYQyoD87lzk-eI85Ky-fF2krs4EXYXiRmbfYSCaqCD6vPK4Tmx-nNF3Fit-tUgZWdVG8kWneev2QZBuovm5JCNDNhkWAVUgtGwrr8ZYIpsxvokD3C5yZ_0eRopXYnXNW5PseKduDO81RTuErhOT0U_Bh4rauJPQq513rMINmkxF-8Idh_UvLFnCAtT6NPZpYbM9IbaKtz7VPV-AHGRkc06r8gjyIhOS4BWMGL5N_939-nay4byceOtRuZxNut9_9igsDATUO_euImfb2L0apuVjYc7BzrxqyKabwXw6UhneI03c8PpvR46ZG4w84HzzncvPRlT3XtYh_5sAtuNvt-D46rd6BVxe0I4w6bBIlf0ONdL1C8-FGTWNo8epSqKe1K22OO79O29nKxrNGgF3qKVAE0ynSO3CL8YJLKlBfFLL4TJkRsOMz9qc5VlLiPLng4woXv9N7aBjnzMdrKLY-8y_tumxB18ELidvuF40JzWWjRF8XvMdSieTgbiytv8OtUhUThWdyWIhIUkogM5o683A8_UKxIFkk7pkRnp3pc8-TlDToXoQ6x_RXbHtUSBzSESv3eoFFaH2hlZl8mVDuc-EGXNRopsuYxsPOjAQT75lP3n35I3jzvBmXrTm4LtevjRhPb9ScVbzq3KxAsoGNM45pgnXBsVECDdK9_q0VhV1QLLsme3ZcMIyBSUb8b_O7C4Iykcuv7JqwYxP5a47CgYKEXHUtFxZCgS3ugQ92WGtw4SAdQO_LFG5BBmD8hUog9VJRpyFYBlQWKE8zFkWYQPhHNQsNYuWLl_YzyWql7ZdL2hfQhGagp3yrzESCsY76GJ86QJ-rWMeH8S_k0kSJMLfg6HpPNrhAN5TPRWsIUY9209oP5FZuuIy_77ieuAdVHqaQrhCILuPTat13ZnKlUAWZ6LWFWt4m2v55VZn6-eJqEzZufzzgjqyy-BwW2SE67UOCwDJm95-MTcr9jhUFBUZU9LRcz8D_TYLiK5siB7pcUCDqD2D0XouoHgB6aruBjYzc8opG3S4awSZdmBnAU0FedmQFpK62PRhCct0bZAIswKfvpXwOxSqxIoyYLM2ZBSzfqZFD9gAyhD6hqKvbytyuB8lmJZraEkhD0lpfhJ1OajtdPXOoF9epuIblCEHSqcSs2i7I5cVJDjrjNqOROOrInHrqrDvrFFIO9L6jhU00OSMB1HgH6H5ICHwxx0huctPMaAsOiE4civOPDaKfGND2M9EEEn2vuUxGVtWJPMNt9WtHaAsLl6aVigfDe9OcbE0lliwsbxI_wG5HMnjD-Ii7kPnEFXXuQpKMAjiGiiw79h3fkGN2x8BogdkZIDR4_Gr3Wh71Nu1DyVBwzfPKzCSkvM7IAj9djNINN1Pt_d5-qCeFtjvCwHYJsowGp4ZGjLh5vtyDFKQkQbSMbbDlp0_IdULHohMYzulWY8JBKSjHk5eq9qG0jfOEXJKeRNiPNRT28ohmVR49tjpfQgemJA-3aYLX8CVE51jtCGrLmFnDMt1_HxI7rMCX5aHfzju3kTc8EGJLjMXAuSTyiGVx6e3lqwyMoKVY0bqNPlrxvrnIaRUWsI7gDUf4k_aSeR5tjkXI3gJrTOW9BxUDkDiDzTEfm080yIbMoYnYEMztrcdbEoWxTi0ZskzqRe52eUyIrtoJL78dgcdrRu-Z5NN1IEesvietBWZy4fd9i4s0B8l1C6yl3cuz8Xia0jtbYW1u9-woe23Ye3CN_6Aj_O_ZmSC5lnNttnydoGZHJ8Os1NjSlimdHWQ5ntWbdwYmZYqRMhMkiEem30F5LQokzrK93TUU6lifzpSt3I-d6_f3nFSXg6Z8_dyFZ4gtqvMsC0qUku65-2BZc52bCFslWGomivEh5BzmbotKSsv-Xp2IJZx4QnS6-DcFFWCtItOSmqSADg4yOiJHTAcg43hp0FDMQm3_Ygyv9DrK7fHmBee2YQZ2jsf0pN3H93UB2OSu8ijQ8p3IlgpCZQr0EhnL3JzufpXcABZcYZz9TpjQ_BeJ3lLvLIYkpd-VBVsiBWoEakxLBMU7MjISJoPT2yA4yuev9uFi7Whs9C9G9OQxXRjJ0bnST6RXhCmDeh1oGSKo4ZfGduWRSiey6rYeehFlxMqJh-DFCLqyT3NV77IDa0cq2oXlT0Ac1wkbd--NiZ5aW4OItnujKQYO6Ab536ms1b4WbeRaAnpmxtnAgEE-XsbccxyofGUhfRIaZU47ft0lGwhU_4miH-BnmVGjZgDDrLl1MHH3BsI1ZMgy96DrbQ0AX9VwoACqJQpfoVSQwBNM3HV8j3XkQnnHP62jOv09uh4qdWyksxYgIKalC9Al1H0d1Qs9hCs6mIsC1HIpt4YLR9MbCl1qzjDT22Zy0pfDJzG_21e_ts4sOk6i7Xzc6QUX2wqccXiHp7oHC2OvP3iFxRjd4WyPY1kXG6N1_y1q1nl7KfYpU8KU0U7uJy7egVdryQdJZ_UJSzQjIon_v404ZApjgFU52U5-HAqzbm-B5z9oNVizahbOHZq8-HMxWOcOSBouo-jyqPtJeDTLoAURlusTkBMC0YqUmEg-pfQdmHsCOWvlh4o7aVnS0ohOMoNf46G1kPGl89CYaej3Uz6PbVcjBVAVVnFIjk35-kslyFCfrews2TvBTL_CI5dSEbU1b-yfLiL1Xbr0qXdQNFxggfNFpJoqmDc1RdTMXGokBRdLW6pu_v0r8LeBjZ0iJb0yo8nMgV6CXC8j_JISqLDr8E4MfTfiLtl7fzWmGQxMNS2Ugc2eFNdqbcgqcqCDuD4iCQ1b2b6uxXdHdN0nFe_OgAIw29GOV8Hn5XXyTHVQxHsmvE-pMCKZiETa-6UVO5pAwG9JHj55X6Z8VWdwoptcNFN8pdnXMvgpPYlex640Lln8mqxelZUZVFBp0DjG-O0HhQofnA3dFMz7JNt2nZVtFuP3GTWZqNbeo0xa_HpIGOPP5cpiVA7w7IRjXcyAGqSdzXZwX5T4dSHgd4IcFNuPzZ1Ns9rPksbenLJWTrqd-79WCY-lIPZ-2yHoSxFFSw4Wc4vLrMFuXl_eE1ws8gD_6MfHwtKAddCCI2oAaPYSj6ANuXg_Y6xdY3IGRfLgkDHq8_E8QmewCvNkgqBFbnDfdznkhWH7NDmkVulzeSeH-1Oe-vEikEtNg7z3LmlrBRv-AV02TzDbW_VGGOtIHLKiEgtCTr4sfK0yyyrmdSZoa6D-qbCbg4BeOUprjRGpgkIYLa0orKyONLRi471eVj04NqhfaFCdjYMKXtL4x5LHcIp__y-y-5h_w8PNAbtPUHrnRFyiVm8rZhVq0UyE957cLYLYWS0ZNFBXDqJtNpNFoj6jWBZM5tb2KO1iyaGQEl0YOfUjyxqHNyE3BePWXmQhuEsYnidiL4RMb2fyexttCbHMdX0_tI_ep6XOSazGOrZDUMuo0Z0sYdbXgy2Cm03LF1RlFnhigHOTWIhw8OCmxFhv2DeqFjWDdR8v2UZiQ3I13TSVA3gyj-pSgqSBMvSqtgQkgRluPqx37Lt94pmWRa0SrTuPfu-Gek1lFz3UyNWUMLNmqPpP7BTn4HgXPnejl_VsvdCLg66RADFNd-ib63HL2QGbmvq9rcSIsQ2-CZAbDlzBzKT-dajhgkjL_PvpKs8bGUUstIzimHE7HBuGZXbW1cPTXfpR-OvPjHCJWX3xYdrV0vbDket3YzGtHFcR1R6IkyF-GZT3NVphfmzC8LMTsDoB6yzPhwjUklxxhWzAYXmcFtI4zX8Ard0FenuijowTC_UnnXGSPilchyn2gbsEJSJa5BmxaMBNnvIzECiJq6mr6jfPB6AoDuaHOmblT_z7PAnjEZpVd0B2BbESJVNKbjZ3dHqcL0yZ4547kPgz6wesngkzjj3ALifarXvjA0vtJh1WIxNMOHSWKQ606EsQPAOwLNGMK3V7Cybuxj4SDWbk2YSPEDSi3E76wcP8dJC7hcKN2pPOVa2hR1LumowlVF9vgBLCkWSoonY4bOhPWDGS752SUDD8J3ftLAl4qxnsQcjWoHfNzkYJsXtuguReXzec0tHvTolEy0858wiYMlEcb3rCqcWi7UrGn7U8Awq9NYP_99w0ihonQex2BGicjk0c9dTwUuE7yugg4iL5q64pQY_IJtgXOO58Y46BpefgLG_FKPe5YzCjcea-IDZO7Qf0HZc2bNXmdvBeqp-wYyh3s2UpZcWF9JJd43_D0_loqCNiDHrLFR5600ZoyCxG6Co1Qnvo91Qco3_c-1mHX0SN2HMzICuS8Msoyxe49Mm4mVv7iRxYDR4T0bEC_BZdnWHHEKwcd4MtwoDqR4kN3Mq7lo9VJ-w6zeW0tlKLx0v6aro5GLqk9S577XNwUBvHjjKjOlxiD5EZ6VXEQJ9WKjKpT-skKlI2oylF8OFGT_fiN9zJt8ko5AYcosX8neTJ5syiPRdUDg3XSsXykYrtA64IFOxcwUtwVWZ308rJ3KpgJtv5U65exjiAMGHJt-eEfzN7YVY021fIrCzwTXiyY8rNkZTUzpXzR16Y-DoouGIp-DajG0papApjimcW3ywugDyQdPJXQlh_MokOqv0Na-kGpI4pgEaQt7a1U97XvC_MqHc7gMnO6EjvyftN-3sEJ-YP4tEJz7lkZIp_71_fVOLlOmV4VHVJDDEtTE0G_0CafVSPfzZVGB-9NR0VBj3g82gs67FekE0xiOXH-NcdM51Z10xxEZldlP3YmeMuRGJoaivlbd3cDspSGcxzHpfDDq-jkbPz026NhI02m7SspDmHyPl2UyO6e9FW1PJCuPPMo_ER0L6HgTjds3LXTS439ftoZpSiy4jfBbhKx8wUByKYsFqKQILS-rufnWEVcwnjHqpPERnHpXHYAFkhhdf7yUiXkQWhIqeqiueaYp3OnMI5DlyS-QX-v1QVo_UpcXQ5CS9EYqdPXR_lKVBz7XhCzZSSiIfmKF7q4cXjFu2-TTtFcI8gsJzNeluqywvu3F2GEZaXbVWaDjYAlDp4PYjBYQa2oANw0LaLSBIO1R6rA-NupcByYP9EaFWoHJ1JJQPmAcjI22W_4vErcsHqyqXXZxmZG0I-V2S02ov6oBHrbB0ryeC7W8et5HnX_dnJK6oQ0Eg7aicRnxvzG-pq2Te7_ghrLNgYq-bAQXa6_tJhsP85EViAObmmBhyGlZz9FsyajjupZ03ZTle3YTEquZv1r-wdJ0zgCCFDd6ovltMW1xDm1lQq2aszxGpj2EBU3mLiryyRNazlAXMY9Z5OuwxjYObWPJq9M0wtTKIl28abs1tJPGq62EUi6d3hiEXZEa07wp6atSssmW8DcZwmVVUOjUdSqgWwW8SvggN32CEUktpDtmxBkrfDATwzvunaz7rQFLYVNvx8hUF76SwHaIiwKka49N1q4wWmCTelrTnbac0no0isctZEXbX5mx72QW1r9frmN9WdqRZnJLd9Z2wKSVa0l4pH4rYrCrQa6A8utLdP3MM-EbDq-MahzZOBJ71mdl4mcJcJOmjjcukGGu_-tZV3QmsfKBOfsAdFbRmugUlZzufGNBGIN8pq0NvGb2KCK50-WOdFPLbJcYh9eBN6lrCxc9cd3WKRKfMb1N_71XJkW7jvh5yzwK4aPI2PxK9j6SnlPzSDVQRJ2ac5RE8om9z32MzobiUpDbmoz58_wju5y6n5xLJIWN5kqfktDNLL-rK8fYLc265JSDl5hINAQdEaTtPGcaO873e44-VCcK9uFgPUEH91luVoeI3aTvdhEMAl_sqyzGbXDEwU5pK52o2ntL1Ww6MfzCYzBcNe9ryt1EziZfHq4eGtbfnQpXqMzVq7jA28pHECWW2eTc1oTmmK7ZwnkjftXc-PjqbGTImAH47xY6B6qvfYdTvH-JcENNul87_p-NKxDQ1la20ZitscRGm1pjvaqB-fNbF_bBHqeZuVHZETf8rt0GUxYVFc0ouPYCOot6ctIoMAwobLLW7lFlF1UMKPhL-7XHORthdSfbDL3AVlyBBAPMXUfXRJnmTwTp1Vq5QcCEI8LeiU85AK1dURZkK5z1cI4ley46luhEfvIgDSQf5Eoesfarlf_OtygrbmfOddr-2z9LvAziTfr3ntnmi-RPOf6U8If2B0N4X-BSd55Nn0WyngInZxb0M8zRh4a2iD4gy3ET2jv6ZyoogolXx_pB2yIrydcK_CTqSBW5zVaD_qTJpmL2QVXJqKdvf34audPTCq3Pgp2W5WTe4t3CYXQ_OwUxafyM7I-1PzZ591IpmhQPEeI1Fa1IRflUnIgrr8HWdZbBsOk0YxnNCB8nIy-ji0zEgOHXDya--IrxXzAS2aheiUiQJXTMpjDGhrPlWkXLpIhp6Bc9gHa818MaNI3pvLlz7eZo78zQZKL98it5_7hd6KwVP5wvLrNvD3YNHTIkl0rq5weZjkmDEXf9f-wbgaQjt8q8WG-yVinSbyc0B8AGteud_Cz6bnK9pItMIInzN_P0eTMjB_LVjIXB5adFyDkl_m9xUEAGfTpaLCiTLP9B0LgahW4ErMrKZc1RWljXfBZiw5QTQ5nOYEerTdk3X7lg-kpdTj7iyyMHqCENe6D5TEyWS9OLC6eiZgtdqpqWiZvo6jV9faVsQQyi3XKvpVHU2_PpCwLoWD8DbL_ucMzLDBlty8jQxFCT9H-c9tWow6Tw-AOthksJFV90eQJpmzA_ja8vh5uFgtjLOs3MoDfB-hbJKE2pCMmx-XiYr9cF31VfrF92wWqQwijERAPJ2bUh6h6dqQPHWiXwZ-L6dspkwWECyFYe9_R6FI9yF5VpUvfkO4PcXpGXxHKwuR6C4AOEQmdepXFm3FwBNMxQeAOsQliZ_bf_2IfGHHpwYQCE0kDumC9nE3tPODb3hDT0L5ZMQGQ-IJTE_GNIW6-1uPHS5WsT47mOvfxEtn-g_4SS8oq544dnIt33azAz53Ia64b904SDHuHnohC_pU16GNyCEztyP7d0kLclWUsoBZga4sFO_NOFoKMbeyin2Rvht5U4d1YADcTzN_MEu9QhIfV5WS2kI54qW75L3fn30dM-WuFMzJKJduW82VV-azgGSbSuHI6WLrtu174FtvqesOv79zsz6IBiID6nDtqtmnVNnmgNF9NIwWMiVLtdXOEvKgSkO1k5w5P54NP7F_FxoE7tr8MtpgcJ6pRdsGZCCTMHCjjQTkINdfXQ5Wk_D82_8583eQFIowFlhlJ3cuilGhJKCwZgI7ZLXUNmTOx4JJeFo8wSl8Br4o5bvpPNaZ7w1OZNbPKXI4UynS5VblMZk5wkpMnA4TwsYP1MOTtTeVOU5fuHON6shNBhU9YBocz-KinIP8l5SeK3RCQlo9rqtpqZ4y_iVKR7kO_qHGddylmG2sZJv5EJbs2m5YSvEz1qqvsTjlPRR00L1aeBLiJ0jHf9wunc0Y-W66-0EpTQXX5Hgod9U6XR6jNkLX7cbu9QgOCBaaujDZ2nTyApMB8ZKD8m78EnklQHsRFKiQQz-9NrsElF4BJXHHi40nPRMokdqffUriW0ZDoIjsHzBsXiI5zPDzx3_x3aEWMSDVRfPkQ5uldzYEQlMrvQZ4frxYb8q8cAtY-Wq_ALom1yKUBoMr3kKbBGKIbDyEoTEQ1dQUHDr8Lux8QoiV6F2egJJPz7paQ2Lj9vZlbr3oWqR1rGrBba4E_Bglv00SwQHzJFKXCvbz3PvwWSwnEqQEm2yK8iHCtA9RmS8AvJVJD-6z8m9bI9RXdW5cxj31B_8boq7-fmI_kmCVzbTi6c6iRYMTjMg8nDRyXGRb9cT_qR_8oO7zUwmR-JNaArSSeDbDw79pl6RE37k660TGyAVIgr_xrOo4E8iQMPCh_tW_wm_V8Cb_YrqIYrSp8rW8w1QknrmgdiX5CIbo2IFgEA1IWwEzWYrZuDXDxcV926HEW5Y891RmK_bla-EqQl8LJQBEzoY0-MgZ8r_PuNvn-C8vhKSLfarK39JTjYl0y9k-IDc9a7Nwxy3ENHMsTSBVt_bvT-M7WQQhzUbGq73k0UmAfjM9GL8FZq-xt9kD7HTXgm-_vFe_MoM5T2SFwEHvRqNBUDYFsZF2fRGA8aRNVgivtgeY2ZKU7ocGcv4x6xBDcMUuhgewiobK-0hUbShYb34wMqq4vD31eKfqbH3mhEql6SlFgdMCoANQLlQRVG7zM4wXZ188LY5zkza9XKfa-JOJszXIjM6_WBevNnM-tqEOl-_25y2TvK_9xJ0kr0V7GDLV3ek5eoM5TWexh_r0kJyksspwZPGJxSBd6z7M9T5-z5Vhg_jaR-0BbeRjL60JXUuvIrB1terv-Yu6cKd2n8yQK9OMk2znvpZRI43V7VjBZjG1zpJVXBEKXmOz8R_KOFKxrUL_Q3KWcS9HFDYkQhnUNOMWgE_aj3iZh8mq1jI5BQCPZvkZI5_nKk5Un3pVnkGoWmVozB2FIl_fKtDkNFHfsPSlVvWy0Zzj4LkhGSiW_L4GOXp5UwL7fSi3o4O_GSBMcAVLxeK2172UH2245DO1ZvELcJamZIN4FrOcrgBMm-OnG7NMpzEW26VIhxbRinRJf2I4ux0TpjRtWO6UiObD4-7NI9e_y26p-DieWtHhLubXWRHGR4J2d0Gr4htnXQ8hFceMiLmioCP3k19bZaxSb0IlAssLxiUHhCTtI3W_hMrtycJQLaW7G-NF67mu_strXGl_OQDm27NRbUTfmW9EZ6KUnfpdyfHcu78-6EuLUsGjdRP4VPdGFqXkbgwME5-oBeiv_iMJTrGYcQIBlAO_EWfzlTNSQaaLhcgPo1Nw8fApCtMuh3PwqyhLy8X3kB3n6SQNX9pqu69hn5jgDHjvzYKV-vNzaRMpozWA4S5h3tQ2Um5p23f_dC4Movpn_A72QhRFlaXsf6BHUZoIaeCaZYPAzpFG6c9AQnctfd2FuPujVz5zwqpDj7LWpRPv8YP1VURgvlbbAf9Ex3ZIwWkvCZWDLsHkTYlqpQIUfn6u5R9WF7mn6ma00cMnWpG_OQtoPwx1YvH4xXRPmVRCZUDQ_mCMO5ySzRle1Tyst2285e2edA28LJw8-N3ULz4osb91vq4p7UVTKQwpTwhoIDDCEk0knGvh-dbdMZXlh00AQSmNCEcLz028q6x9E0BNoQOLsB6r7Pm2pzH4O3BCYnhgGaPkExBcNfI0oz-QeE4dldiJxMo8EP99uKzep80LzIvN15amSWGCGEx_H1vQ2925uOj0W2JYxKAVK64Hapr16TXbkUVrFwC-c40UtMmSa4HPfSJuHnAhU3XqaFJScefDi53L-E0gQqEWszOWPIpTXmYu13yCb9rQD3ygMPhCaU_bU7sdMqHoRZEXiR5CYBu5ZcPSlDfq-n4EzCkwsp3vl1_oB2qAz5-IcDulMUq7auyu6Nu-pdlqS1ht28MS5NpOAxSuVxxxJXlybYGIpw6IJ_zMSTF_2DdXch7PPAI3zKGzgILO2Pkkp8V9mgzpjowh_-nPVzXM8YFjE9ixDjHatC7RQRfmXEtDYW4JxZtktDN-goQo1fLH3c7La5pmFqzS1Fb4D9U0nxge9QdXvPVubaz9tcb346WQNAwec9KENylHXpilT4VP6PxcpmHAF0roOQEZSYQlk_jmVdu9ZUOrjbgVKfMp6QQ597i5b9mZAJFtzcDjGoBdYR387QU1RQWa0RyzPEhzhKSEVt8dd78emctQnab_Kkz71oIhGrbojvgkWT65Gp_tV2CcPWXQ09eirvXKP2sKwNG5HiIuv23UUnLN6sQnV5PC8h88mferXM8mV83DsSSmP1WkenGXWUv2YCS2pOuzlfTR29q9hLlySiMONhiSXsCUZZLUBADDRI9yQIIGP2C0jAGDs3kcci8bzUp6fkPybnDxxAKrYlBXjIyzP_75g14sLAllJNPkEmxS73FUVAemtjwC5XezlhMDdeP0H0hLtDTrFaE1d0haWJfqNvL6H5qKhg3lom7HT8SBNDXJQmvdu2D8hnJvxosnVHJIp7Kv0NcX0LlUO-ZPLtCO2tBg51NdJttgKA3bhttu2k1CgmdbOEsKAfID6Z43VcbV00f6Y8VuWzX1IakX6pGPWCP3NWBbMadKZdg7xay0TLbB0cWtv78gZZ3TcGMN2RaPx0Hh-ke0D9CkRfmILBPIvrP2ttrgvav_0TPR-sCLlYMMapuYAMh9pLitXF4z6C7f3Usx-VE8vWWdthDg-DYgwGawEM2dCwIlj7YKaUwe3pxJ1C83FypJlRhiAVeK4P_2HNNKWjY0kQyiNODvotY88KrbIA45uPkXmrAZE7VocDcTiIsTZGj5rLdPqIuqmvofO3KLFigH9mVcuCiXAK2ruHRDizOUgUd3IfHOilOQ2zb7OALXyuGhkeDFvZd_9ISoLtVBMnQxPMJc6a8ad1dbhpGyTI76_EkkE61uZThhKuVy4ssglHlgWzfAVbUVV_BLm1_wXaLHMA8SbNxinzrYj8CzBhk-eiIUhuKqzm3QoJALX7uruQOXH7ou4Ts5Q68syVsW0ZI_XKqz63CbWXf9uJl6I3yVEfzrSbSI0Gw4DaNjfJdPFv8Mb4ly0jIJzusf2XKggHYouosGxXuXiqlUsuZ4JPi6uAZMnq9WLeEKsMgZsr8o7aHwhV2d7d_eaphWk2R43vXz7vdUpfJfK018-oE6NjZkf5MpATpMMade0kUCIVn283bQ8g7QeFZKbL7kRam6c-b2VRVun3N6NoI0MMP2eRv7Yh8fNCj2YzEj8ek-9aSiLAKdA91aSYTexu6Fj4dllrsF6ctiWyt24eF-ozM77UhTNNsi2OELu_b77kuDWiXmbsVRUIqguvcHa0KXi6VwvCC0iRX9fEE0YEYTBFrPnv-60QCjQ4bNfP1gb9LjPjJ1zSzgNZLNmBkHkFObZ36F-q1mgfLJKaLwUOdLWX0py1wbN9tMC8Tv5tnyCZ67pFXxA4tOcXTkLMCcifPRH3fUC6J9aanZCvJXnvtxExRdXcMOUX7qSbhUQ_JQQBGEFUZLmanUYAujkzal5U8w1eU96JwuWOSjgS0UuZWT4dgYLknTK9lks8PgDqrvghy0066xHg5GvBSausyK4t7uuoNXz3VQb2i3zMGf9XXYvRScjTD6DN4EwH2CfbmPnTN_ZlDpEkUOJSlSqR56-2za_c0_kQ0d2i7cUpWeEE4x3315RI8q6tmpKIgfO3Cu4nhw4dsVtCxlGbIV1sAg0Xk6WVmvOt-_AS1UqjuY-IWEg9OAj7dwtmTvt2GihWO4kghRrmQCY7wTsd0-BaySDX4ZiSHkktwAvQeusqeMqhJ89wKzRjo7801BdvdJRSWpo7K6B5DsLAHkuhzHzS07sFRjFRr8C7wOU91CFdoXz4DdcksmrQgK9SCXpjaYBKf3w7w63qiRJol5htZYzhrrWydrkLSq8EXFG9XH60TUTUkm8AfcX3O3lwigHp9Rq2cFfVWIF_NmLKDXSEPIbT0d9-K9n5CKT4XrVNKO3OsSnBSrCgTrb-6q_t6NSY9brUFt3dg-x76evuzzdN4N_-rOJfwQvHtXk_-KgjyoDHeunsnLGUbCPjH6nEjgQEvKOCQmNNBp8hU3Y8Fdxh6fHS2jfPz4F00LGmABt2WSOEWiR4Urb_YtWUnheDKGbhdv9WFWSpPXwUyO8U7EMHSrRI32pmJuwU28pzzbpnL_E8QP6koFkmVor0IEmwMg8ZKAq7Ph9OoIXZv7yISL4eGbVno8Pu66KbZdoUx2Yb7rQFiaRjq57RWYdBfuCxEzhc3eRvumDrhRvz-qjk2WbtP3zOxVDhcHLGNokwmPLCjUsjrRNZWKrzfOOyiHOC0ibKwHtp3C7wi5da1vdgNIHbUx8e77dlLkHjPkLNvdpk5nWRiHyUkyWVujcMg1tOP8cPhejLUyi54ZQCnLBnHY3f03dKLZPmwTieyrHnCjty2yZOG4d-WI7ID2_mqxkiW5BArg3_xtMLREtxnnEkXSs7te7qNgHqqU482C2aVM0M5SsODhYzhdL6dj8uWI_Sdy_Q4ztZs0ML89Mc3ElzGcype3fHa8cQx99x7Yl4FKq7a-ExH6kgImjDlBqQ4MqhY1tbrlj_CFpfQVT0MvUGjtNxRgdUvONMY5RjME8MLDOX2wIIU7TJlNDzICKMw3_eQX3mWsu-YSspK8SI4DOn7SbAHDAIHifImniPJiTJ-a4UAt-Tz4szhuLFkb5O3H1IDeb73wJrbst_wxX8YPcnmY-qsbPVqbdcnxo9I5Xx2H89EKe8JZBBPxXCfeqafClpJUaG_zSmF1JzZ8eVGNsIRxRXK2jaiKhPSmXGm46WWVPv6mhTTQjO5QI_jMNQJkxiW3rm6Tuo3IWBF-ufj4w72UiFrdmBWuFYW3x2PKMy1eVpV9K5T5J-qKe0DTsWbSd3ic4PTZv0ldV18gIrpdEhRSq3G5vtnC-OuR_KIdH1QJKYV7-kmGCxnNzoxoTpP5l3ZTEcnc8JahtDaE1lUh9-xgcNsklIy-ovSzMtPhxmSToHze-C-1TgVFay8RfD9oceWS6JyAlLwfKKDtOooFl6cSshEE6BtOmrNadk7zWC_SmH8jYkIe29rdqrQ7NvHkHSE7gVWSP9jgNKTqEHeAgz9gn-Tcj2tF2NHWNi8j5w4HUsJAgyhj1YoRU0zxAiSGJYZf5VCJCc6ZfnQFbQDw_uCSfTjBXATK2xEsmux7AqGwvkOrQejVGCzbdlS9dTUt8gdbKgJNFb-DZdNUgzlE_o2V1xRwSS4DHuMFcdBnBhVICEbSbbubu8p-U43fV7sEjasWZyUrGQqbamCNq-n6Ytnb8UM-uOmfrBMZxk-ZyLcNA0AXrwBbBqvhESCUDYKNQoNSb3_zvwISv2BFK5dUotMJOMyVsxZBR0kmfbHqqGpL-d0uNKFWdYGTLEaRmlqOJs8x4Udqtb6OkRUReuV-uMi7nDz8FhT1C4KDypeHwCAg1JaeR7odJpRnrU6zmhR1cbApatC5h2To388d8oS6-5OzSiJDeOM2PyyPOPAYhVXCNQD25u7CBsD16jxncazaOApqEIjIji6YPHd83ouJeMhmKc6zofgMzwwgEA8JE2jjzm1PTAl9C4D4_3g7kNVCnvMiZNL4WJMu92Hq9m09Ow-5a_3frT1yxwjFwb-8mbU_XHGPEVgxBnBsJBMKcnjBrmcO4pgn-nnruGsxqUw7rhNzBvcqwDuB55lyRUVE5kK4TMYgpUCJxe7_1rQi5iKRVjXykTcFDW_OZ_hRYrcCHCNaxJzEDCXGmdoOKSzx7ikg6YWcvz1V_Vj9rE3UjMujPAzqhGgQgM_KzKdjKWA03q0iaYfcO-3q8-dEUTxABdtEewihezX-pCOWkOP1t65NJB_6RNvaci0MeewN_PSW2feIRTWWZVb4ZcHhyB4tG7w-eXwU1Hu30gWw9f9UoH2Vu4LWMec3NQHkji-AHTDpZFilTM5nx0mWz4adpJ7xWbsKUSybAFCKhYH0A04ZctSFUONgf3OkqYa8Yha3vX50TvgjBuF9dgSkxkP56l9pDx0AiNFzIyr66TLKLLggbS4CuxZMA2GgKgJfwZpXMp8hsaJUpvbRxbxt-yOOws7FzNbnua8iiRQ2CN3qaWJoC7iKwuenRhTC4vpL9x_8FKMuwtR2b_y8qp2PZqFOWDzQTAnBjLk0EUIGB71LcGZsJ_qyL06Td8rBjFYorWG_a0VZuRNt54TQYtWEpcviZ9sKwuBH2nto-sG6FfF-QelEq5e_tbcmKiEyLYuyWwlgFIb6nGMDlOpkD_I2Ve4ctAU6dsoM5bvsqXYOXy2kFLAgK_Zh0Y-sf61gYpTcpdS8djC2nHejSC-ak6y_dKpJJh4t23D5e4s2E1hiI3bReYj-MX05WUGlwvxVW1ZRxUHaLOSmPE3Wkuf0NKn4kvddaab6oattxCP0oMpJab-_OfqjmZ_EoXRUS0AArZuPNzYohoyOhtXxzA6PmtRGjBAgVD7WgjJNVvgwcVazjghqZ1ZMg3nfXJBbIkylHmor1uEF_7T2u98awMrg2lGFLu9qu4uhlbcyuKXyWdu9L2bG9Uz6jB3eixGIQCGA-ttbiCffgSITdNstllmby5jIFm688UVY4DlfvOrphrJR8tD0utWRxP1-hyU9EMsquvceSzi6vgYTym-wHelmi1KMTqVp0G3gLdu6VqVq6upY4wINKBCQ2ITcoH_SS_mIPn7FJEqAzWzmXhQslF38pp6q95pWwbHY4Js1FC8nE81cfH-IqxGSI22i87X7WGgnG12U6D2jZ0B8yurUDV3subFCpePmYhlh2XjQhq5lLoTfVZ8KQ7YGOrc6ShMYUeEz2t1sDs1wtvG-RHYPwJBDs7qJjn44Rw4hhyrmNDo2-VzbzaWDp-wf0UyD82t8EQFpbEF5E1qzMhiM7CFs5LXZeHQyS0nAmNORdL6nzfcbE7OOh4Brq8keol6G9HTTJIpr-Ly-YAsGPyjJcL6Ms0l8emR6eEbF8ZpoK4uoyIpQEkE9oggkpt1wz0ge-Qk0XslSYEuV0SOLpJhX1gMHnXkhi3KY-XqIt_rUBQ8aGndHgbrETBQeMZXg_tXgvSA_gkXzKFSVdliVVs-dRK619R008a_JXCOqIBx0kc_5PIPNLO2UoLo3azX67m7lArHxyn9tss7wWldtsiJ_U5XApXYDgnsgzPwBGV5sqAjckEI-vHRgJwvZfiPLYpFl9Vdg6sgb1HGx-b2F1bxqCc_eLAWSuT3QTFCkFmjUimn0XVaZM2NxJn5iaNLSRJLstGDAWOY3Er6PaqN4AM_S1pi8FZvnW2Ji0qZ1QYqE4T1fH8WlLbqcNBgWn2Ys9pFRZcT5dVQovO8gBcvjWUbOvJ9uXGF4aj1OBU0JOziQHcurm5RXJuSsRGHdIQKMIzQDZnyfEs0fmKIRbyHjUPKPwJKGE0zeIVFMKAzMYe5k1OIMnZZEXYIWTOk4WJac1Hmgaha9DWrY6hlMKggi-LZ7phhuTUYh9SGFIi0slmhMIxiEMr71geEOfc9f7OXoUdWSvYl0VkZcDAPnhkrCS6Vm3afIp1wwRXnBJshDCs-5wYLKAH6Tk7kYN5UXwa_Y6iH4L5YOgZofyIPCk5d1frfwzoap7lwDDOvOfEY0tovh3oe72kgG-RoxHY2WLM_lNRL9caZlQLbc1UJxFf_aZgjvlz_TR6WRnpLswhFLvd2GP-MwuLOj9Q7bqy_fL2fa61mU0ig1adPZCaPr0N_6DgtKyBdHjhBzhZL74Z7ls2ukYmkN272Ixp6ENJIr5DAGn5nY_GnIDU3KqBmSx-O4YxP5z4FN9cE5moI-PCWd6Yl2xNyRV6p0QKcuuZuY6WBN8_xTrj03f-_LYBS6aT8P7W4cQ4gRuSypcovNqswAUwcSpov8AvJODEcQrzLG9ywZPDGUbX6cCUfD51sU1AOZotkUq4jdI2GNnmvA30Io-_FV1tXBJhoSVy_OpCRDuBzUwdsq5EtQZqGNP2_iXs2Ks0ofT7lix3rVdxjrIsaVzIavgpQIua8r1e_fxDVO_lBmzeAHIH_UnJm4DedHp_cuKOhkCX5ZNfsAKnsowFYgVbp0gptEQ9NIteDi2ZyH7BPSYfz1UzgFzg_dqfEhWMmfQ5wfwQVg8_wfEAS8c-saBy1M2r1ii2al6SLR0yUuAUVpu2nZ44o9tcfmgeYN4T0YIHcsdLpxPaV1tOHZp-l2W8MH3i1kVJ0_A5x8a91_PtIQtXsU9JRx_2sS4Ckiu5431TsAoyEGnYNvgXP0yud2Ej5jYFtlAg2MU55ibLYjGx7IJ6kYuES1KzTdr1YigrZACou6Frp7Ziw8bWDR728JVtnoAacAhY9LwzhmeZb-0bATG2wx4XJKBP0yn7naPMaKWAq26kDHI_0p3vVu010-yE0Ouh_Hx-TOY2Tzu2mwFc7HnjlMps9ycdtjRI2kAwzTdt17eZQFvOdn-3nyhins_oeQWyFJGJbEv0nfnSHuA44haR97kSK7-UA1oDDft4O6BwDsF9XerEBKjBNmVZ4Y-BjHPJF4nDkg1dx273xvcRHMz4ke6U7CFyftUXsKcE_10DdVemfTcVyux9ksq3CYiFMn39v7_ZW-QP35IpNmn6YpfJhv8ZXBAlidC3PV81Ewa8VIKCf7joQzRAbZLTSUpiP0l_KongfDMRV7po4YfMSPbQDF9mMzX90Wp7kafYOjSDvvr63WXSYEk47b_XPPQb87Y4dhG-3sfPYzNYyMarGA--2rxnoS7UUbHHNuAUQMdzN0rgF4ZUGPlILQYZM0yGMAjnatoqCcizpqFSZCpnHuJKQKJMzzlloXgxr5v6BVO8fbjmIfupgmsYbTx4bhVZPDjSHm0OHr4fu8eRrGjMrvEXIeinPnQ0_ZtQKuWfWoOJxqaQPnjsdqa1gghQROjDJNS9hezU3oY0EvpSsnHzlifPA1-3fTKUdiMXu7Q0g1jgebQ5-OUx0Rd8Ent7r7DfDXVis2BzGIPH9R-vW-Aq8_xx9vvr2_hXeTctCFnh5KYcbgcrJqZZfZIEjw0Mj-c6aiAebCcaN_f7YHyBF2ftEntFEfO8Ns2i7IQdIpGxrgIvMG0tmetZybdiJxnn_UeY7CQ8kq74u5iHXcSjrHt2BltOvKFbNkBrkKoF1KbbycsCPZEYCT-8r-3mkvkr89KVDN60ItcvahUW0loQx-JICq8MdYQeVbk5SM-FDJa5DPOY07G_XAWQ_tIghZK8lI5G1Cq1Efraw6Sf7DIzzKku2-znrlZ2aCgJ3UmnpMp2i4MWHKkpE3KUn40ONOzHE_MJQh_rrFWz9lN1l6ZasxR0C3mPzGUZJ0-K_yR1LE_mJDmCPkmZbGoTKZ6TJ0zEA9kkyCh3qRvZCfygAJZtY-FDhgywJwIakyDCm7fCxedXON_xYAov6No1Ygu5-t3mtH1PIXwu8a_r857dSxQDJUGRf8semXlmnCor3SlVgzGVzqAkhkJeZ4uXSjyq17iOETYQdS4x-czAUmCQl7z-gKfEY1VXpoW74ZGk6ITjxkY2yaTRJqQbC6xgP84iuLkCcoRsJQCvaf_8ZzA7Z-ms7-861AcLUaQvLv7ZuzXL3xt9ZNMRkAXKWm9-H3sNAO86cpt9LDWhEmBLn1UBPpK_U1SWSuL2iIxftKdY-Xt6ELaondoeujgQTZMRse2jFVggeYrcre1rA7YT6yBk0FzSKe4iMzksrRCbyahx6cahRgVZYlzKgTEeI8Lr6irSeWkhE0Q5GsEhraiHPHpQgKEIX3qs-zp2jasbUn3YDV41a13QxRGKxMn1z8IesZ4pWjBIUWTTXqZBlR8u8mPkqYyV7LRanUU8sF0JUSoW2By3ugnWqZTrbrwurb3P9dzXVa9spZdjB0mrQF9bAfKq2Xoh00oruSYVMdvJ0NTXQfcQTBalqJOI46CIlJCn_ADdjsvnbggGnxje-5C0gnPEKWz0nOgywWt9HUq7naEY4lj0bci9whlF3nwyVSnka_X4bQ_2Zfp16vXZeBe_5zGhLyJnc4YymC7aBFtnr4Cexv5qaLcY77qTSUSZgdmsP6WlT-tTLRJRCOmZV9hjUnH6XZ5a9BgWKPkuCBu_KnkqirJV0E-cqSBwApkrn4CW4sA1N00sDbCeNU2g3S3pcramTIR6S-vQBTf_CO9VUxu-v-UM6jVjT5OehgXQitIPruJxH2pljnVhhPRyDLYJqUp68iVlMIVKqgI8LhYYUjexyJ2WZd6bjtV9_Juzf_QNMUh30R5w4VgJgv5ixoGW4FDuML4kNJZz0c1Jie6SfS0yRPsqSRoRz-tpGWlXsrwLM-lWVvM98ZpI8GoIwQt0uFYwE4yAsv1G5PvgvNMjr2VoSIl4XuWwQnYWWnC8tyb0epUqO8PcCxvMjZN6DGD3ITk1gPXNwCOiCe4uN_2isiG8dS0wZFuIVbAMJbwZlZgKaGo5TlhQkerBRgF6lwREK0dgVWu6Xiqq73PY3RKRET9in3UUkN_l1RNpv7X5hhYxr-LsfpjYZRHXqU1NSeQ60QhxVb0Y0Wf46jCdj-RtADg1a7amcF2N47KPBzJDR4wwQtp_IzCbyhA_so_zvP5VmwCWlquzn8bnCYYjRxs-3Ys4Ktsl0yNz7ZpohAR9HYX7KAYg1ILLZbLd9DTOPj1jC8j2Yd8E4wF3Kg4Rq-6CGIz1jC8B2CxXfsNgPlb586oBdvII5fv1tMw1BbY6klfZCEvOWkbc87glcrYQuhaFq6PBfESA1cZ87k_s902ghVDzKLUUASbEVLid3Y1nLUwO9Xdi3348NhFEL_kmTGfZOpT3R-XURPniX3t21JiOr-62LetDI0d5a2YvCTIaLleKMW0BejJq0d3_ff-nxsY67WEFI26fmzoj0bfzJWJA08YP0D3iCg-vVGswpFYw3UTYu8oT1aFbzbZoKfm8Y7UepXwPltEOLw2ZYhdBGbD92ElSbrzUBsyZMwSr5m3ZpH1RG9ZtwtBE9bMR0lapx1pERuRiqlqynZ0MBvee8ZKP-9r1JUcYRFfcCCrdBBTXs5oQtFTeDNQA0lGjn-opgrYTOEWtGxfbKsRZRHvVEkX3sPQpFpkC3N0marAKY39-yD2h6Pn-YVmr_cE07JiBKjSu5zmMVRO1isbivGvtTLyjd2Zo9biREcLrIYzAedTSDcvBaUuXhoCvJtoEghBGTtR2o7RS21I541Pq356xhto9MfC_Lpb143x94tzwuufoHXDxL9XiMPhSAiGcjawErIqJlfEK4YQnahaimPGpLuBaiYvHjnH59PMcq1zSLfL5OLMQFZ9p2S01yuXvUALoc3kLvjj2V7ptqbwhruvNO_MOPx4tFD6RR-U33Bgalp3QGb_IPfnR-x1voSqT63NmC7AKqhBX5oUP5tmkFfm0IG5nUqOsvXOBgosXjAIvw_xrh4ZRp1hsSt6yHoXamEx4gbCkATjxIytH9Casz_v4NhRhewiZN68fI7UqyNdfzXBWtbHx9bt9CSwrQjmdMzSiIwR9RCFrS46ZVtZYrbdmUTwoX6hwML6_nfZuPOVokColz40FTJQkhz-ykQF7Jk18Z8zriLHSdsfYFd3obZcUxJRWv0y0euDaE9C1DHJfxpgUOHNPEzDjU2TlK_ay-X2c4zQ_YPDkSUlukB5XYYgVDGaHrnCJYBO-fAQPuO3tX5jaQt8JgJBd6emgzYt4IcvkTXlRTpuKO3wicaKkcUqpJ6zhlUZ91UT2_znP_bnFrvWVwrnTx7cwmMUH5wiV7n7TRBddriyu2zNCWNgNPgoNA-tBGU7sTYcE6TprVcwK-q0yA3xxPFxD6OYyZQ2atmL23GnpXew5dj6NV47IsQ3BPJPXkQJtmcmQOF_58xJroIaPFT8jpfSKApRf8xexydaSFx8aMdfKq6_mjXY2_dxQgwYSb9nWY1wsrXrkkVL9cvFBkBBXG3bbg4mqrGQK12f-vpW20RDIyVuy5dJop3gRmfIWFiduPT5LuP7-HdOJFBJVSJq1geX0hjjkXuIMnYGPcIdflaOXNkvZjI3DR0FMxBf2Hlw_wXzm1Z0l4k_pT2GPuBQJB7WZJEKjwwqr45NuQkyJl3C4J-LxcjkKCMyBL89zdq0qKqwmmJsizYYER0DOSTKa6MLgjpi0aD-wuDDcIWZfhH3qouJqOgBQpJEhUH6VzXFEqGtzOVO5seMDE7fYo02c4rbqM3LLkflBrx-rZlTYCLFuUeuf1mTUQYMmZ1zjTYLC4l74Ow74OnLTo2G_c_jxGJEcqKju8CuR7J8xA5RS2O8Zj5KJaN6DcsV5XAN9F8RSTqs4t5stQbUZHI23xg0cZkbpMiImUU1Yohbp2cVRQwcKbpVPAh8F4yAaRt2cnq_Fy13NsZS3T1hD--PJvoNH8tiaI2tprffR8mjBlDHEaQOqHdp4PPOJYJjgcbeH6DkHsBlS5U4WInmk4ItuOc8u8NKL-lYQ3qx4NIeDV0sCm60NyQqO-PR_mD8h8go7IQ7JwOEJ_gbEsfd3FAH9K3F4AjrQCVhZLgyOKvF9tCw7VH7lqcthNZ1JJ0Uoj0Ke5tkEapSamS_NntEm6zrtRtzS3SHT2RUK5mmP7-kBkIi_vCBBWhOXuYuH0DQ3IUqYl1j6lhX3JKWaxucv0vHOhKSAjmVfpFu199RBpL9zYQ_6YupVDwXEcFbfwJFUrhVoRxrijrrmrXzGuB27eUFLFidFyB-Xf3g0gWWale9W7ZklsTQ2Y55ykQ03pJF8Y7BmabFiBvL4wZK4o4BR6gPr3D_wuqTACQqXoeqT7GNCQeBkmeTDii23lNXx1jiUl4HWM9Z1x1Evy-yZe-NvgOkwrl94T5T4ZCdWhBZsp0JwVlzzpYWy-YwoHBwrgsCIKA0601IzXQNUaa-aqIuQKCtZGP1XbrFtQHSaTjbkSgLlAs5ODzaS0fd4MyLfx-LjY0vnTk6oewT8yz6auC4dZwDnRmdQSOaR87UQD_YM9mEAMImbNLOQNzEDn6jQ4Fg-sSqWdyMzxNX4wiC-un5SjumjS76mzU9h02GcrSvJFTOS8WaiQjB_6tzfMdXgDGGQXXeP8El2J2tHXOpCaxJDGJDYPDT1rDI37D8yV7FIQofJpf0qbDniDjjy9bDXnvTdpnrcrfPJr3b3uW4Qzbwpx0VbugoYi9B5RSp9M4iGDPwTQ2tmjJPXaQGTkdAc3BesWjdU_X5Wt31SRGDvnBEH88kLqRuQ2xHy4Ubgfk-UxPhfqmGg_XLrK-Y6auSZjSgXaNp28cVUQejIvrcba_zID96Ujy5wIohcPH3qziejbZCePIxN7rE4lPMmWbslyE5wwAjr1xEip0NhNcKNBrWwmIPUh9eGyw7dmUE2BjA97KOcq1TvE90-nhViz5VEUfpD1r2RKOBztELch6MmFZj2_O218kdCseATl4R4ubX_ijq1H0fI6xvkTJwttQw00TmbUzb1Mxb_JZbpcR5G1HYgrO8eHddeQo7-tNlsr_PSPfxFDJW1wdlqyx8e-d1i5vIfL0NMh6zMPv-BGFSGghNAkDbCCMgdMe98wn6c2LUNRGhAQo5tRg6yNdleNI4VeieRhU-04UpVyM1CzpikfXt_ng1vvHT9V0slRJsRzcDyZYSfWbPDFPL1dzKZLgCTh6aB-3EhUzx73IHTZ2uvY5S8LC_z5K4eLmOl8TeWqcl4xJ2zWIlFvciIow-Mna3IK0uc909Da_1y5D3MB2fBpODVPTQMDTg2t8G-3_l-_0oqstnCIVWhcHplCPONC4sW3LbjBKjByMUcluXKjJf4h7MTRO2lMJaI8KFQFvG8M5OOMzrxpSg2NuV7-cahau5MjDGP4ExqaLWAN_Uub4ZpljHVaspR8IitSeckS1mxeufkucrie7fIuimxsfrIAgAiy3GgLalF4ic8k8_BF3LGRcpw1EAjkkXvh4cH7RS_4nNiYeuXeFjElHJZ3W3pKC5L3Gv7lfXsENpeM572h58TCMLzJ7XeBTQkQS9IZt2Ft-TKtfn3nOcKQDhCnK5nZYrtmwD7_4eQ_YZvqoX0-DFWdNNs99viHXY4L89OfVEhNF6IN8PJtUJ_-0a3gnvTU0Om8mrdtdKbJvPSwYVOXr-r1VAGnnLwign4uUscF19uEXkbwPXnptBus-DXeCAymxGWZeMiDIN4Kul9JkUUgqs19zJ62YQfbNTUBq19TmtxBBTzp_r82b3OtWvZ5sZdEmCRWrLreRYtlPtzwRRR7UBSg7aaeID_CCHT4JdEJgyDzbiHdhE8YqD51-N33Z67RjOFNRFgaUReEJ7XgqtwUoOM6uMz_OFNK0upmq7sCYVXBJCNzkxcyZHAy6e34lr6uyRgkAbClSk-OBg_mF5vhIExWx0So_nQnbUcC5j-TIXQpR2MgGZqVUGEIKhqtoiZB74lyWWWEaWtBXDIzb66irWHwnfcRYz7cgohF3XtlLN-5XQdi6lcFJpHmRsB1CaCNkjq50tG8qyV0zGC3vxsY5FP5aDHlOwJQ1aUS5DjILdKA79urYV1iS_VxnQs6gXGfzcAm3O425pYEBSiOtW6xA99wJrn81it0Kbz0_dnA6V4weVycPOYWx5mDQh9sE6ZnG-YshAhUMQohCNYjiOlOgXHcatMU86RifFQ3WzDtWH1FTW4yeUa-nVz-oi73tAOXbq-npUwFXIbRGRJ6fLojH7Nru_462yXTAUYqJyd3Xh1v6vppq4S4e-ehGHNvhyIBFZxqvya3wGcs3g0QCEUV82rngnMxd-OBNFjRqzAsFkW-mpoHYBaeSiVSOcXTng7Fewt-xAnMW7bZdGo31YxwsDW-mZVOgZY3SzKKw752WUKpkH3nPy6aS3z3UiDNvJ7oGbClmXVoorirUebNJRsqRi74Bai5gLAOLqos4JpNt4dHiDjBRsV4EZx_7WG6sBBB7Oo5pG34tjCLFbIkMRX5tBlH6auVOcL36ZoPsW2bnW221NkHxiaPabjLFtuaKYBfr8GwAoEkfiQf65zLLPdFXU3gDZmiOi99G66pX82TJGugx66m2r5U9jaD_Zx2An_iZ0PVdCMs3xtGn-af43fEhMwv0gBJApTnupOCDb48QVyrazs7saT9AwTf8b4jr8a-edycr18ZeuLcqjfckCabPaIR-wOIZArVSn67UIMpDmsv1CJ2fgi5zgUsaOxZwHfkbeAuj4pnX0b2gihjrAzctm-2i4UdtbTyq-djN-G9IpLLYWI56rtUgNQPls4tnTOqSkOXfzXP1DVbJkFKBwgJnN9ffhNQuZkrMOpkkcgdvPjAS41EyRk4NG_vBeHqxZXnuvoLcjRMG50BwahedXqs5lMP4csS_WWkK4WCJKSWGGC2su5Tx93294oDpEhHhnDKoJeuk94X4XmNBZ1ORUQE74pec0VfHE9N2HPW4EZ67mtFOe3JLA3gcNW7BtZd5zl53hMYwxWoymDqkHF7Yukiec3zlwOkiCmnHs2sGCgVqXpHkE4Vo9wnnU9lIC2oe_sNDEgtltbTiegtnDip1VA_T7pI3ITxn-oJinBXpvRjfGfmYSK51PmymHP0tkin_z4MtxK5iUJneCQBDhHO7xzxWKldUyANoiwIb2duzYTJUvKzr99795OuRudauBsNrobzb0IPYhwB1EJ4mAVe3OFrBZrFUfK2fn8RIBRMEgXI4KDDN0XYi-3caqepTrBotArp1-MHhDr4Q-QIP_Z3orqtOihbUWQFmGOwx6PpQmhKZ5mN1wIHUxfzXJbv-Usba6TAg7biraTX46-frSl7Rxrppy9wCCD1deMM1S8h-GLtQg-sPb-pYm0V18JxliiVdufOu636WbESC69pq1JRz9u2v26eiY_niVn8axCPEPvE8YHrPjuasstXYft5OB7R4yNgV6rcjtHowU_EOLVA0YTOmoFBaC9fk3g8O9bmrfhSoVGfNv9JVfW7XPFT3Q_ckV8qIxH8ysBsxwDSXJ091V6E9uqF2hQfGFiLxCqzRPNsTxeYZkBGsQOPrN1DUepfnNTyfoXcytIG4erCMcXB2cAxtU9uwYlGXJtRWYDGZ_egQStO8kECYoblQfMPT4haxV3qvPlkVUHOz1d4LM_QQVoerFxRu7wpVIxewwcewN68u2uiVVW2gAXXFmXcr_X4dDeEHPNJvuISHHEcIXs4eDutR5-B_w5K7lh6KNd6T0MmHlpMlEGnb__GicZZVQenH-F9n2sWDHH8V9tIh_MqqefdOK_FsydhgWj6iMEqe4QWgPm-3YO7DWN4EI_M5eeG6Z06dKGrCOpwMhu2_xvk8ZNZzQZtiF8AxFmTOVAjmaM15FyRQIC-o0aF556tss55D-IBowFMUA-z1SgdJDx-XVi9-TUg7EwiTbJYWnSQHePpLdXilh1GspKdDfr4I3T3-cqg3s2YSmcrkZ6hOMp5MRWkbkhVcn0EarTnyRvUkDTyRhwqvkkZ8y70b_gIApJSdyQaNU9KdrrZ5QniaHOl7yZNT3LUKt36-xhWf7d2-PelblV1xKYA4IvZyDFPjpuHPzXX7gYxyQHWCF-SysQSwQi_DiymB7A6bXCc5Mtoqj3DPXHFBgU9qq2Ylic3DVI8D3yKEhDFW8rg3NNMX0lAEEdOBnbujr9IxJEHd_qByYWUILitXyeq4Ppyv-elDo1Qr42Nyu7hlIVbHLy0OyhYj5T0CR7WGe5w5n3taVeQmP9tlT2KSDk0nREZ06kGXTbuaP7alQA4qCpJr_STu-uDK0nrdnrGG2A9xlxYM24Qr0hpfi6zcklttlaUfPSUrdMyCDYfrKy3PXjtGHcn2wzIDvg2Pt28UA-zuemcRXMKwPLGbq8FmGJ-jDvQwn7c1M9CPna43w_u0PYLI8Nzsrky4oBe41Of-7FjGVffr8jNcdnw64mDtKn18STCKpULs6oFCZgaX4W6ZMygIk12jxgzEQyfROXK-6tWEsfoBvBnFAESxaFunitmKGyGwYFxDBByBjlbdFoMN-anlkpRmlk7RexAhCsOQ-2dVdvpDQneTEbPNRmET5eJgIef8zpQe_t8vNtMdwmhhCEo8PAgWdl-dM9eBoAB-PBTf9hLovck2RC27VT1P7LUm9sXhICIwMzXlJjFBORdmilTwFSzuXgiWUTsekae00mKdKNUE_yzgb83_CLmfPX0xSNwNtn849IhtwKubCMSUurMDAgUc3VQ_xgUCo70GpWZi-L_0f-bRQcO-IFPz_AIxT6Z7jHXwWYT1-50--7I44f7kABnG6j04ogl_hQrfVU-NLxSgDNUpE11wP79c0zPuwjZuwlGMQNpcNiVg9WOAxj4xO4HBPW60JnlCkJQB40X4TOg4_XpPt-YwJsQlcxCR3jTr-fVHwYn1bvyiayKSnlwTDI52PyC4c3Tf6OlCNvoY0UL1xeTf6H0aeeD_4SbWeG3xSBCmeeZ7nj3WKoJ4RHRzUPWLCU0HsViCW--dvE28GuDD8GNNp4hrfWenEz7AZmoBUKMv0lqTC2FR8pn51KGMHC5guy4B_4gKxza-BOBEy98nSsFklClg6a6a-tPinlMzis37J-FzYl2VM9hGDCpBFZJ838HJrahRP1JEzJN467hr1JGsVDrb0QhPs9SQMcFYBY3jy-dqjWyCnxXB2pWS-0m2a8Qp3oSzdCpHawewynxfR-wNVdst6TVj828oB8vkK3Y312yvl9CjZeJvTC_X-5UcDzEzCMjHSjHvfF3IXL-Cgk0WHiTpvz_uzOlnkZoH9fTfkYQYoNr6hwc7FpRKie9md4UjwonPqahYGjH4qI3iCKtFEs-JFa2_Rj8Ql4O09qcrFbqaiRRhAN5uMNYKhWtG5fGGs4ctiZ8pPqGR353-CZmvaUlleh-lRucrk-xxWDozLcA91K8FFmCVzi70eBuyD0fKXxqFO270fw--5Gac9CV6NXg0LSdKKmn3Y5IbDdUBIw18NYr8UDJtZlHZn8P5pYHnw6EtqQyUG118Wj1dNINBBCgy3pejj9Zs_8JyUceEpMsj1iE_aR6OPKcjbjf8fVDiAvzqEwLwI8SYTY2PVztRXMJO_DdTGZxf7lnxDmG4cTK1It0OjO3GwGXTKwCgi9eGoPUSecRwHm_RisZNm3pOsq4_ZMdM194H17aV0rM53rUtLxwqLvMSkNvIXivoPtqUSiuADz_laMaDyVewlc8j4V97oCl306ZJ1gBDe1WhzmBGPA39Ac-TQqg9n7_H7lZMiBWv_GOd_ZnTQ9Ha13sUMLsBGDSZvFV21s38itJYecvrvEItJY46xfy6LN_CbQ0ZVa72R4a-7nrA3hOJ2fklNUMn2zqrOzNSAkzmToWwKxAnTRiplGeiXdVPKXCkiesjfg8jpiyx7ScUIH0f3D3-Dg9Vx7g6udESZQBCh7pgN6Q4jXRFXunLMYIfvsEsYOqlaKeBuWo5Y3doBxeskZzIN_3uKWvr7cPwwkbtFzpFk_f5gc1EXIEIg_cKmB_qwTuZgamWBy8eWw851lwlPGq4ioRXB14RD7b3fhT_PdliuTUmbUd0Op5sYYWWFRQ0UwXGvX7HymUxeBu0FXuvSs9nhZpC796ygsBEde59P4sR1V-Pyr6cT6-zdauyn0hn-vqLR4VDJaHEFAOThV8UdGVeN7NQQ7aPWNwza7SC142I0yzWVb0kNVoLX3J_-rRbYAoOfGD1VWxjxcyjm2awVChM1inFrJhZXMEBMb5Iyuh8RJoiTGheCqFwafo7BwfiZFNxpGyv0p30iE5j-FGPo8cHGEZJTGZtFvAQ0JLkpNdfK-iiFj5QTdtoQXsRVIN_YsaEEoYjv53fveIZ3OR8C-pIaKGeyQmvFofEPiD9b06AEgwrzNVNnmipkLgbC_UJN7yzlokBWZFxxKaBWL57qM9o306uqj31tr415DdQcNrJyJwEllurEKL8GxGb3uMUWTKqSMtsBDwAOo4rP5MUjyD9lLovTMHHuW5L59F3ttgHZhEq-nB2eRSGk_1mwelJDtlzkxQbaz78ire8hDEJCcPVAzFl6gwKdOKXXLr9w93mke3lqDV1U07xr62Jo5Yo9SEXE76f3jvtjN58ciBY75P0iEnmii_uac6r-PUJvZa1jFbWwkKXtz8Z3_D5hBoCnpwZEmt-29YsIE6IItscPZPSy9mNroJi3eW2DfMRoFOLX0pgCPMzeAMBFHtWtXdgYAojrcZ_v4SaaxRJBSIS2jEcO4qRIfn0T0MOKegxmqa0M2OS-NxZ5hf-49SQLHZpl7nOJIAPlXXWUnbT6xWcSBJjepj-7sNrIq_RvtQ78MyS-MPaDadgOxphZPUmt4SAb9KECE3H5KXfH83JyeKUOa-nKbSWSLZiaUni8R7jMMR-fDJn_2tpkKk__aIWlbwDxqVC5tSUYSse-5HIuuKwfzuidGYMWra5ENtCfxCxsV8JX53k6eIfRh3essu1soivrb3tckSBYOQPC6lt9B9aWx8_MHM9edWKQX6DbEWnHOrSUPRCK0O3mim8ck5_inDvKmAb2Bnj3UgisoZrmLzPLChYq9ixwhnr2sxwSId7u4i6I94R3aqeawtE77LHgoofIyUPCVb5BW6LkvGafUZxrXUJfCwMyX33f_zw2RNvvFPsmYB3CJWnHRbhEfZFQj5PG-LUSMncOZ0J-K8U9K_87JHL4aqOQpJdx7r1qToI_iShBIVpdlqqqCG7LeDLejm7EUt-MdliTps1yA9H05AScKzeLK_PT4_8QetCV7-f6EDpoyhJFIQ5j1tKPDAdtvEOmDZl4viaoNfaE7o4-f0_-WVS7IRhLvDW2LeIobSheL4J1e8UkbO23uuqyqNZp8VyegSS-SZ49rAgjuxXo5LEQDoIumScd5lC0EACckbwBXgB5CmhKa7WsBbokQdFh46ObH9vuxK_6OpA4XW1aUKJthLGuXDXoj2I87sEyRBZZQJ4Aes9B3eLR9Llju-GBgUYXFRQQCvkBuNoXEd7t6IhfK3njDF9A3DNZjDQe564dn0JB-qFFH6wr-Gz3wjreBRMZtZKB2zlMX0fozs3JQNdrbaEx3ZaLqu-ewgSougUNjBLkAW0D11gfUq68l4cyAy8nuzYQEwfYi1w1Q9Z6Da3E8CAby2LsD1lVqk64Vim7_aES89vVM17pB_YQGgbbPUY9hbH8BRCuhZlPtDVq8fAAoZS8yYGFIUbB6aKPVvg2anrG75so0XztA_a5NN8QYgk5194aeNXABjDYDp4o4Q45uFl8bUQYaAg8E3lL9aFmlpXvB7AiMiSY-W8n4fM-Rv0E4fDA8QWcgSA51wG84R0WvjSLQJWb8FgfK2XyuoLqBKWHIg4mr9dHkbG-tsqtolI4xrCCxKGpa0f6uxdTmY6_f7qNkSdVxRNB3B8AwvtkaYPocuVWFhm0gM3Gr7vDL5oBksXMRgMQzVvKPdwWM6xyDNVEtlWMP3Lfn-aSSfYI3F1qLz9Rx2Zszh9rNsZnHWHDHQoFuZ_fgKy9UX9IBfwZ3A22AnLISkrAkb6JMcAaYJAvAHo9a8Gz1zqGIF-NgkQEMR_cmmddBiusVeiWBNEdHbdW3_mtFd5fLC1ue8unx9W3ELErdlH5_EEoXaCRPUUsvh86ZnoyeNfYV-32Jyz335Y-H81GLDnPJr42rZv3a-sNCIkmQj5ZRTFCP-AUDlljEEiYcznLKxnyw8xSQ698rq0kjxMbl-t8HLsPkK9vlF1EY5vKDShboPN8AAtVnYnZy8w3t0jlP5dh38YZI55gC9-6CbN-KrkpoXcK3mMQh3MSJeAccC672h6BPTz4-PXLf4axTolfennygSA7MDiHk5GmAABLY0BAeX0a9SJYUu3rN3FWs4bZ42tNxThhyP3lWQ7IJ_eOmyPgyL5FAD-kjG0OZxpZUTQV70KCGjk7mff3jq200v1ycHypRqrs0xjSwApypt64jZFptHQc28bmUeJTnTVshFDlCsDDs-MH60Z5rxqhTF_cofZWkEnBZq_ZctAd_quaiFJQkAf6YQgW6G49kUV7vKv0ZmqgQiwFArFI8BSsT5SQxfP98AIQ7HV2HGgrz0hLH3rv6BfrbdGDE59P6l7YTZ3-idU-UtnZZ2MQsNqypZk9SxFJqVlnhzRVUEcym1Ey-3U7CtcKExHuFTh7YTqUsWbUST5PCqPvQrrE54v8s_P_gxfyz-f31PzTPjOO87EUyOqMwEMTa_6PUS8qKbFes3u0IG3X0EZ5nQWdaYGgQfsU7BtK2XaHDXR-Ts8Gh3b3y2frGcwdaiO-XJIp4RBTU-dCANSu4DZJO0pSRHkAeY3d5X0GAnkpMZntlca1PZsr7RaJnY430nhb2X68Rn3TPneaw6mBoiiDuU8lAPuN98hpH4_bwOosCZQIzqJyJmQGYEIVl-y_z82TNWzjTDOE56JAstVioTPOWbvct6zukaSgjdIIqelzL5sVf647BZ2gO4wPTnlFhCDZXZpqLuBbMsZINbDrlvq-Mg5sl8ePkAcfM5q_HcA-SQLcQAUgMB4Dgm16eZkhbueZZ3CyAepJzCPBpQnHAgyhU6FlMJPm5O5RD255Io3X09Zj5yQ0Kow11xvdwn4PTwZ5bxm0x3MYjIfAwVjFQcwDFgkOjjK1t6lcwHJPq2TVclqqTCYnnIncznG5S7i-x8gVmRZoIo3hh8Q3JSbQmkL78mryiQHvmDkTqBVFqHwyX7zqEzYTogj5H1gaInVLSfvaH13D1en5Cw4747kLlX15Q_fKAZDzwaKtlG9V8530fi6ydw7WNMTH528PTRStISHRvPQz6tdJlvjuG9J2x3qfK2m0YkEiUD6hs-WF6_7ww5KPgAR5sATHFRv_7G8pNbck5MSGPaIOOPvCCutZjIaxCRnUlfJe1wmPCwGEpyhjXRow1ryN_ylTefKmRNgh5a8E_mavFv1bhrmsXoDun7JA8w8DL-fBltoHVwB_7qdK2f_XNxmumTw7cxvnID6lyRcrF-41KqnOt0hg4gLvbRIP8BPvzfSP6DoeUNGoUenyyvCFIQcP_Q-Fe3N50erkr_nfoBDtFXeWdYJXT-7YGl5EqDna3xKgZBQLMX-ClK7zzPzoP1AhxHvulW022kBVCLM9hA3WdH3pM7Ve_oq0Wn-Ja9vvaDromuAbSSfPiaSI6hd6pkEyKvWv9wvpxeq6rWztd0rASePEZqE_0wrKYDZ3cQdtS6yKfpsU6t3wqRaxC7ilpG-hTBN8QsyRtsq1RnWnO9QTCZFEdbt7fcSP7VG0yXfRacrw7l-fGhmb3405PReZWkwOWZrCpyPOKSwaVDqF1T7YKFfBarmIN2FfxNTV-2AbiIKVvtjZnY0kjWMVk39sKvJDAekWt9VFXSW8w-umLvYmp3r75H4SUc_S0EgxPzGB-mP4jtiJDh6uSbzCxb9Nrz9mGARFugYRZNTZu84PLLiOHbrDiWmONIpF8GLHFz-kESS5eXj4BtUUxtkJQbJsWp9__QHPbj4p_Kdc6ML38CqkEJfSu2-a-jZNbfrVQpXvVe6AQbSauWca_-mYvQjDt4k3JMiB_JWp4VUkLP81RIxWMBy2AtfP5onROuQMi5-TOiFhBwUSZg1mNLoXhej_cHTiEgEgU6qF67UpKz_o2zW4gk10FYXLK6t8aITIbNpL_kjouhncN8hohRDFC3SzyWHAjpwCa2L9Brse_ANl5qzH_wD7Y-w7eq93zrmEVIJo2aBZaNL-lxF1lj24n7kigjBwyqX0YCjGU0IuytPcSxmhgD4v-ov1efdinwGQx_xeEI4qjpGoF65LGbR9mgdBPDdW7b8EvoZJBMawijMpfiyUswYHgRYrAupLXF9QQpyteoKUOP4eUsy5qiMgP_-YNo40LfTlCZq-KlTxE4jWMhBP-bYZEzy8PM517CA1hBByOAYQVqBt2AboJ_JU_8wKPlXMcUa6mMYnb_kxdHP66VoGTQnD_-j4O3cuONEBnxZ6cq0V1fvf5m8KLvwSn_A36ttz1BCyicfwA4jnl5-34a8BZMxe-0frlQzYLXiteHOfPaWV8gxqwV1sRagOE79j5Yog6B-ygVS6YC-47Mfia2dFxMhTFOS55UtvdGVbqxFCf4613O0mKQJX8l8cJGeEa-19MhwQlpYQjCoEi0eZqt9vuYnjiYZaiAujO62w5ei7yfhX2l9Qln5xVNKXf0ExPrVpur0DV_SvaWbJDUBiT9XXiq-XutakIE-okK7Rn_NBGZwzv3cRlRozTxEWqVr6ra6QfNXYj2y2T8wtvFO7v9lPQsIdNzjP9pRx_Htix4URIV8j7gT3dAh8RAMV8yVnOtd5xFDLJibxcHcty_qVBq5LLAUaUwH2fQNklqK5J8LiN7LiSpoZPpKHkosxCclhYTp6NoTuVBX0zN6MQadWJXapRMikTGh5Uf8H-RrtnfhbmOp1z-kwcIU06ZitH5Gyjd6StcR2ig76AfNRil-tnMRU0i0loQBJmvk1hFAuvfpwtlQJPolVHA1Z4RHf8MYj024IO2YUg3XxQEWRkB8X_o1ENSB__LNr1R6e09Eo6QW8rmH0nlmsAP_ruXqRHAvZ_6LAuvJCJnAO7PaEtszcgHV0m4nDboSGWBmz9cia4uOZBCKE1ew8-Uv_JBdZj0S9haFiI3DcKHwE1wx9vH52ecbSGZxO4qHDFlEuCaidQstiOYCkuTSxzh_GyZFjue0C3zGY63XmFyJGXgmpE1qM0tfKAbSKeC4LHMpy-NtXqhgT_MpwMB0pVUe-8H-FPzdVrhOFvb_4NqMXVBm1fNBvBfVeSEzVGCS95xfk1NV124FFoZt9vFZlC-FqFoKQaLwvkyeFSUhX1UzA7wrI8DVLyDuU3JXcTkg0mMya_YexeRW-XcnsgnIBD58HIeHvVtvV-wAGLQiGhsklx_8eSWIp1MZGrK_rOrYI2yS7tfXRMOs-nJJ-BWQ6ikABIMrl-Xd2souzxc8r25HgRZZKyfh-tqJV7LVycJDpgYKHsXCGxVcDWWbmDgD24fhCillPoJzNETCDKHeXU-lZLb9A_R_Z_IaILDSHeZDScGwpBaN5K6ekjz_ndY-pHEVplXJ4FJMuKtSTzK2UTcw6-bsmxSl6keYM_QMczwZb3IeW8qx1-fT8iwKzMABvaUvzFbJ6_Yf0ORiarn0o0_C3-csfoIfmo8UQW7dfaekpY3eIKxpWJF6dPjmCnbEgHt4i0h-bwQpmHZgoOpXwxMPjOkcgMvAn9nfEWNIgjkFOwY2z034UBtzPQFBgn7NcVaMBJ51GtkPrpJusEahFeX5HenXpgIizfB7WBLMkH_kIIWYWWwAieVPtfxxBrHAl42dG3wxI-vvB0H79y2NA_L6PnJ4cv1e4xJ3Z4AaiCTE-cZNO-lo-Ir9mzdwSDru5pYKVFup_uzMj_Q-lvG9418nb5rW3oWIm1FzNyBa-zBKKFxK6CSDN1_NzzahspPbi5BYCjYzSdZufS7PBm-nexgSAMaPfb5ljiYzzb0nOJqVcWQ-fBI5cPZenJllR_C_UZJIDs_JPiF9QUEHLaq9W2VpabusIYkjbcgumQeYb8-R9uRpt3Yd9dGJOmuDB50sxoNuKa9hH5Zpo0m7HmQvgvlX3yGzSnkEpVyDJ9J158fvhGkVXkLdAkiJmGeYF0gkerjHlYmmfilsmaAlbLTtz_F29qCXY4Ph21IAHW8zCjwYa-RGusfsXR2VN2IdepVW16roNf73yZamTicRfYaja-C3rYUEhiOhtKnVoUoN2sPNr1kc93MJKvAkahScdlCGmbuRr7hibZrmw-BzyaZnD896WStoE23L2BiXcQbPCaQXX8PJQgNQK9_tOj8e-zfdmIBrIkKQ0Q_uGfta76U0uK-a-CsRuyDGjrfI6mk6uN4ACCQ0uaTRfWzK1z22c6-hlrFDqztxXRlZlEqPyeg8MZ1o2w4F6mGYIWkGzb4WDsYS9hbUQoN0J0gYC3dX3OTN3a6GuVF9JTfrH3V1kW_4CMwAzeyFpED39RFXF6JLgrtgsM5K6TCVlq2XHc_UgMhIehmOA3uGO_S_vQHmfW_tANN-aeocXOsPtLDQ5KtiL-3YJuImpxXzSx9BOC2y33MQCILWHaR7qMY_aas9oedrjbqj-U1W5QNInzxB2rsgw5TmU4396I8tnGRk6wBK00OnlY3LNsR404PQUUlswF2aEsDxXMW0qoDrDku41OhbuskJUaauB7ZN5wnHTIrnfTOUlFRd8QpEQItMVPta68SsyA7X_9naBGn4iaGB5FKL7ZuMenJdy3x-f4xTG_QxdTjFpxCtYIVREfSiXoLMH2_NVk4mJexl_VSwcKIBtLXp8vnryMm8YmYpFR-_c8GQQonWHmAcCV98-duNUKjC0BY3hjZVDviQ0wYBzLHEJ09WunCcmJUElPsO5_x1cBAwMS3ky7p8RBnHnWhzJT0RWKVm_u5Pmw4qV6zLF_WJFAgGgFFKFA0gDyZZOU8rb301ET964RXMroiWHxA7HcaLeVp10LCyulBSbwIN4lvdifDxxoM_GSmIgRyrekfGcgfSRf0oIReG9uosKDECCQ4K12b6_f5Dy_QwT0HRtlXgTarKSWWyivW3WZem3d3fglNV_1fAOoreFpgffbwc-_-PHZT3N-YsqB6GUJwTdo295KOSRje7RjLmU3bmNO8aPr8zjXt0pI7YmcmXpMNWKVTPJGcW-yfOabemdvd9wqMwYx5BsSLlypItzJYeNS7B7N3hKMiSeBXG54zBlyNRR__cFDTxGW8s57jurwAeQbaqheURpxetGDiGR2FhHASpjxLWzzwA1oihb4et-DFgijJhtMUDX1qu-F-5b4VA6qLztUNkDRbIzlJXSVD0_FeC6eg5Zc1JXmdkvpKdJL0LvW_B0PRhHkmrEYf1PU-mH1ubItZp1dP_t4h_FD3ttsyMbIbMwu4gOZgT0YjefVqbw-suA8u2NYCvfBZpIgC0zQhbKtQZ7Xm8yCcjkdxxuJR8XMe7b6elm1vXp0sdANjKBq0vxEdTiXtIJUJoq9kWGDCuGwEsoQW0-YKX-xZGwLfkccm3OUxZTQBV9wVHv74y2omNz5ooRuSmR4nD-K0Wl7Y4jFl3gkvx2J6BlYNPrqg-CPnS3RZKo88WwBGqw4PKSxr1LGVaxA00ghleD1TzzVVrJ1ZURoUe_QjHldFUNu9ezL4e_KO5HJVLLGXwUoclJNdlc6PKbzU2hu0-q_ROnSJFJc1tV2sKNeYezLKQuuEKdKWqo7MOCNMBkFwMElJF4lMffO654SGyEnGj9Qmrd7D4JSAG9bw87xwen1IAqu5nroY_IfRYV9niw0bq_F2fmN5wOF6pVonOpq0dxcmoCYI7_Okses3SLijVFhnIM5tmwGE5maHmTy436qjIKIyezW5GWAps00eL4L8CZnxEDqhQ5Q6QaeiN1zOrj_0z3xc-hqcoluhOacO1xxTQVTnzQlSX9MiHOCgDTyNR1Bjhx2sy56loTAEkoYTmUNlxS0HGIEmxYzPpdq8hJaDIpT-eU6SXYgT3i085IkgN60Rk1wiueU1hon52GPcpSOUkg8Lyj8ay0Vr6NV4jMoj9DGkVICH6uXtsasLsWxRYPVRBNUsAticybJ3qyVF6ep3-mzZywAk5DbLNrFzw1dweNyjpTov5cQ9rfmm1c7Gls7NnzKfiXZ674DllX8DU7O-bEi8qtSKyjBkW6QzeWPKQtyLf5R1nkQtTmr-wQ6hMUKsjJ06LQygJWYhK4k6YELFZkZ0wMvGSbXqm5JY5Rs4ayTN4Gm2b-6ZuaVSFJbaSC2NxkcmxlB9qgKde_tgsQqLp6_mhmoQ45GrFnqjBX6qnh5CXHEUR4MGUPbeyk4nYfFy9KlgZbY96bdgRe_a7ER3MgLOPyZ3HDU20Y6mwn_OuKdpbXE9Vq4pKiISeEAbtyiS3LmQfn7qxrMAGRUBAIyVDNjOTiGYB-0WzW_aF7iBxce0hjbvWDkqKD0KAzg5k7MqSj2Ewq-NFw9xIXMWpyDyo_O1vE8EcSUY-Q7ah22bKKs9IPCYzgkRt2dW3rJI_kvE_gBZd8dBPClzyGb4KjVIxOCOeaXm_hP2ANpG3nPNYFT1v3fKodKRfsJZ4CMkV7zrr9t_10aB3TtwIV3WgmiXRr1XqTsTmfFO_iQxInuGuoOFHviefvwA6gpaQf5MTtpgAYKNbF38vCKbMzbKoHTWPr5A4DpOZdO3kxSHoMWKCU4ZUiQfwOh0rIicYnkB-8_uLQagfPtmFGBzCkxFTgwfqjKO2HWPJY4MMZI9FOExebPBJjK-WVleVA50IRJ9LnPwlJ578EQf9WOvTMHe_zBxL3BDiAD8hZhgmZj3Y8k1zj0aQWM-nmUjSYhq2J8vYNHEslQgGlHAFXtKFZGD9IIdcJIAI9OVCsv1AvXAz6Q3nZfSY2hac8vCUk06Ap6mDTBNlsYNVVB3jBdUmfEXb7Ie0wETbqC-tA4a_-aKwbMHt8AzgsD9jHHkXehcYjyX5uShky4s6topNZlTEzEQ2XQPCroIPmrTH-X7TJTCg8wheWl4zBvVKxxF4hNJaUfgmFh03C8hlBGqrzXdLvUTUyOsRVFVCXlBqUHoBDSp8IHj7USIpvuGgSHkTFuFFvFtiYQzDnrAl0wyZJTQ03qpXc9U95Uohrj1Om8j-YI4bkKjkmVPPMfxCTcrXzjuzfbzNefvLhZrjEDUm5obZ-Zsl52pRiHHc3EtoXs1FWcIxstEEmN86nNGQVFMGLa406FiOXQ28AC16HhZgXP6bqc4n30X1QMAJ8yYlIEQNVn1SnMObwPR7zsUJh4e3khC6OiHT6VPOWKFi6PWU-QZt1hgXGZTY1pSE_oOz7epoTi3jEGv8XzVwFnWfryzRzMKrqhHXfwWWFfzaEzp2wFpsm5nZWNCgOuc2jK5xJXfRFpa-04d08_mt7YY1VjBbP-9lHM3YtqqpausyIcco42UVCaL2C3XUHw4ks0N_ATt29AvofoqNkeJIRISSrz2ScFxUcjSEPPz0NI1JfW6S6OlNgCX7CByEP3MmFO2Yt-VGWjHT-yEgN1PnBG0kjCbrsRB37aa84CO9MEFDxj0HcgzHeUU9ICK97CMfhf8nmyftoHyeX4WPZ_EGfZ6Vv2skTGruMv6YRXvVk_DLl1C3_dIZBHkyVRHngpP9lt8CB57fn2JolKqb96hkmUZL7UnSftz5fFwr3M5R2hmvLaV5AXZQsShlFNJZAdwIRzu9Jf_5CkBmjnZaOQ_YE1HUySyz1jlIUx8_qceU5cIG8Eu1l1fIbgpu_zDjaUp1e1sZyn6axHRtBmWOuvEvI5XXlKkr_80HvK4ob2YYRdm7NOmMbYFniNmc8Tk3mx_IgUCRnfHwcADQODiXO_7wxr6e99twA8MQHOM1a5P4usTkjMh0t6qVZce2QrgcuOriNNJB82wKYBNTD56BhQVe2kqhqgQ2LWY4oKrA2UH1HTvsniUQF0pEB8qnU6oBVfI1zACLNYV05ChOCUExpuBFRayzZ9hVwyn0tbEDg7Ne7ZDL-oxF6fUZv0LpygYcuGv4jXIAE7DZIvPgvgULMBEM4uiX8v2i5kGv4rp6oZ9n2QrTHUWM9IiUXkQvbgP17v8eynrgCQZ0UrTX47bWvCx3ooDOfAagKiUzB7g-jU4H8MXNqoTAxqfLZdI2qPiK1eAy5YKRdAOG9oCtRPFKp6wK1zIFnGrs8rROF0fb71lmk5pHfqoLzXy1zRxwE24Hbz7jyfk6VKYE-oHBYG0t0qS4R7pAAttgctV4NejZCW3gRFnYhk-dfwjgVDwojp2ecFGBF2OTvFIFDcZ2MomZRz3raA65K_RegRrBdqUdqaqrILU9S3iyb0XSkxdWk9xHYacMbGo5EuYCcbpWe32pJkrVW7NL7cUzsyc-WNZlVq_nTsKBcBd-hAcJ9X78h_nrYA6B8FQ3aztJ3O0kXHbRwdeLFYHsqzq0pdQsdQ0zlPFCnr-44iOdXTWCN76ICP9LRhqX9UlfuIbuYQv9Nln1v3xXb7qLc36pTR1_Bl-qX0WGrgB583rd0LpexpgiwsCQakEYejW2czUnY6EsxnOgoe7D6CfBKD1sO_cURM0IB4Jc7di9s";if(!e)return null;if($t&&$t.sealed===e)return $t;let t=null;try{t=ir.parse(JSON.parse(un(e,af)))}catch{t=null}return $t={sealed:e,bundle:t},$t}function cn(){let e=Io();if(!e?.bundle)return null;if(e.runtime===void 0){let t=Date.now();try{e.runtime=ar(e.bundle,{signedAt:t,fetchedAt:t})}catch{e.runtime=null}}return e.runtime}function uf(){let e=Io();return e?.bundle?(e.keys??=new Set(e.bundle.filters.map(t=>q(t.slug))),e.keys):null}function dn(e,t=!1){if(t||!e||e.length===0){let n=uf();return n?new Set(n):null}return new Set(e.map(n=>lf.test(n)?n:q(n)))}var Po=null;function lr(e){Po=e}async function cf(e,t){let n=await Ts();if(n.size>0)return rt(e,n.values(),t,n);let r=cn();return r?r.selectFor(e,"free",t?[...t]:void 0):null}var df=/^(?:grep|rg|find|eslint|ruff|flake8|mypy|prettier|biome|black|stylelint)(?:\s|$)|^git\s+(?:diff|grep)\b/,ff=2048,pf=8192,mf=32*1024;function hf(e,t,n){let r=tn(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 ae(e);if(n!=="compact"&&n!=="minimal")return r;let s=r.endsWith(`
72
72
  `)?`
73
73
  `:"";return en((s?r.slice(0,-1):r).split(`
74
74
  `)).join(`
75
- `)+s}async function ur(e,t,n,r={}){let s=Buffer.byteLength(t,"utf8"),{exitCode:o,yolo:i=!1,resolver:a,...l}=r,u=ze(uo(e.startsWith("bash-tool: ")?e.slice(11):e)),c=o!=null&&o!==0&&!(o===1&&id.test(er(u)??u)),f=io(a??No??od),d=null;for(let N of co(e))if(d=await f(N,n),d)break;!d&&s>=ad&&!Xn.test(e)&&(d=await f(`bash-tool: ${e}`,n));let p=Qn(e.startsWith("bash-tool: ")?e.slice(11):e),h=d?.slug==="git-log"&&p!=null&&/^git\s+log(?:\s|$)/.test(ze(p)),_=o==null&&(h?/^(?:fatal|error):/im.test(ie(t)):ao(t)),k=d?.transform==="smart-read"&&s<=2048&&(t.endsWith(`
75
+ `)+s}async function ur(e,t,n,r={}){let s=Buffer.byteLength(t,"utf8"),{exitCode:o,yolo:i=!1,resolver:a,...l}=r,u=Je(uo(e.startsWith("bash-tool: ")?e.slice(11):e)),c=o!=null&&o!==0&&!(o===1&&df.test(er(u)??u)),d=io(a??Po??cf),f=null;for(let N of co(e))if(f=await d(N,n),f)break;!f&&s>=ff&&!Xn.test(e)&&(f=await d(`bash-tool: ${e}`,n));let p=Qn(e.startsWith("bash-tool: ")?e.slice(11):e),h=f?.slug==="git-log"&&p!=null&&/^git\s+log(?:\s|$)/.test(Je(p)),x=o==null&&(h?/^(?:fatal|error):/im.test(ae(t)):ao(t)),y=f?.transform==="smart-read"&&s<=2048&&(t.endsWith(`
76
76
  `)?t.slice(0,-1):t).split(`
77
- `).length<=60,T=s<=16384&&p!=null&&/^(?:head|tail)(?:\s|$)|^sed\s+(?:(?:-[Eru]+|--(?:regexp-extended|unbuffered|sandbox))\s+)*(?:-[Enruse]*n[Enruse]*(?:\s|$)|--(?:quiet|silent)(?:\s|$))/.test(ze(p)),E=d?.transform==="smart-read"&&s<=16384&&(l.verbosity??"normal")==="normal"&&l.smartCode!==!0,O=d?.slug==="read-tool"&&s<ud;if(!i&&(E||O||T||k&&l.smartCode!==!0))return{output:t,filterId:d?.slug??null,rawBytes:s,filteredBytes:s,debugBypass:c||_,droppedTail:null};if(!i&&d&&!d.preserve_exact&&(c||_)&&vo.test(u)){let N=To(t,l.verbosity??"normal"),ne=N===null?s:Buffer.byteLength(N,"utf8");if(N!==null&&ne<s)return{output:N,filterId:d.slug,rawBytes:s,filteredBytes:ne,debugBypass:!0,droppedTail:t,failureSummary:!0}}if(!d||(c||_)&&d.preserve_exact&&!i)return{output:t,filterId:null,rawBytes:s,filteredBytes:s,debugBypass:c||_,...i?{droppedTail:null}:{}};let D=N=>{if(!i)return N;let ne=N.filteredBytes>s||s>0&&N.output.length===0?t:N.output,gt=!N.debugBypass&&!d?.preserve_exact?rr(ne,"minimal",N.filterId??""):ne,ts=tr(gt)===gt?gt:tr(ne);return{...N,output:ts,filteredBytes:Buffer.byteLength(ts,"utf8"),droppedTail:null}};if(d.slug==="tsc"&&!c&&!_&&!ko(e)){let N=bo(t);if(N!==null)return D({output:N,filterId:d.slug,rawBytes:s,filteredBytes:Buffer.byteLength(N,"utf8"),debugBypass:!1,droppedTail:null})}if(c||_){let N=i?tn(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?cd(t,d,l.verbosity):d.strip_ansi&&!d.preserve_exact?ie(t):t;!i&&l.verbosity==="minimal"&&d.transform!=="smart-read"&&(N=yo(N)),!i&&d.slug==="pytest"&&(l.verbosity==="compact"||l.verbosity==="minimal")&&/^={3,} test session starts ={3,}\r?$/m.test(N)&&/^={3,} FAILURES ={3,}\r?$/m.test(N)&&(N=N.replace(/^([=_])\1{2,} (.+?) \1{3,}(\r?)$/gm,"$2$3"));let ne=!i&&!d.preserve_exact&&s>=ld?zs(N.split(`
77
+ `).length<=60,T=s<=16384&&p!=null&&/^(?:head|tail)(?:\s|$)|^sed\s+(?:(?:-[Eru]+|--(?:regexp-extended|unbuffered|sandbox))\s+)*(?:-[Enruse]*n[Enruse]*(?:\s|$)|--(?:quiet|silent)(?:\s|$))/.test(Je(p)),w=f?.transform==="smart-read"&&s<=16384&&(l.verbosity??"normal")==="normal"&&l.smartCode!==!0,O=f?.slug==="read-tool"&&s<mf;if(!i&&(w||O||T||y&&l.smartCode!==!0))return{output:t,filterId:f?.slug??null,rawBytes:s,filteredBytes:s,debugBypass:c||x,droppedTail:null};if(!i&&f&&!f.preserve_exact&&(c||x)&&vo.test(u)){let N=To(t,l.verbosity??"normal"),re=N===null?s:Buffer.byteLength(N,"utf8");if(N!==null&&re<s)return{output:N,filterId:f.slug,rawBytes:s,filteredBytes:re,debugBypass:!0,droppedTail:t,failureSummary:!0}}if(!f||(c||x)&&f.preserve_exact&&!i)return{output:t,filterId:null,rawBytes:s,filteredBytes:s,debugBypass:c||x,...i?{droppedTail:null}:{}};let D=N=>{if(!i)return N;let re=N.filteredBytes>s||s>0&&N.output.length===0?t:N.output,yt=!N.debugBypass&&!f?.preserve_exact?rr(re,"minimal",N.filterId??""):re,ts=tr(yt)===yt?yt:tr(re);return{...N,output:ts,filteredBytes:Buffer.byteLength(ts,"utf8"),droppedTail:null}};if(f.slug==="tsc"&&!c&&!x&&!ko(e)){let N=bo(t);if(N!==null)return D({output:N,filterId:f.slug,rawBytes:s,filteredBytes:Buffer.byteLength(N,"utf8"),debugBypass:!1,droppedTail:null})}if(c||x){let N=i?tn(t,{...f,keep_failures:!0,transform:void 0,max_lines:void 0,truncate_lines_at:void 0,on_empty:void 0},{verbosity:"minimal",smartCode:!1}):f.strip_on_failure&&!f.preserve_exact?hf(t,f,l.verbosity):f.strip_ansi&&!f.preserve_exact?ae(t):t;!i&&l.verbosity==="minimal"&&f.transform!=="smart-read"&&(N=yo(N)),!i&&f.slug==="pytest"&&(l.verbosity==="compact"||l.verbosity==="minimal")&&/^={3,} test session starts ={3,}\r?$/m.test(N)&&/^={3,} FAILURES ={3,}\r?$/m.test(N)&&(N=N.replace(/^([=_])\1{2,} (.+?) \1{3,}(\r?)$/gm,"$2$3"));let re=!i&&!f.preserve_exact&&s>=pf?Bs(N.split(`
78
78
  `)).join(`
79
- `):N,gt=ne.length<N.length;return D({output:ne,filterId:d.slug,rawBytes:s,filteredBytes:Buffer.byteLength(ne,"utf8"),debugBypass:!0,...gt?{droppedTail:t}:{}})}let{text:j,droppedTail:Ge}=qn(t,d,i?{...l,verbosity:"minimal",...d.transform==="smart-read"?{smartCode:!0}:{}}:l),Jt=!i&&!d.preserve_exact?rr(j,l.verbosity,d.slug):j,es=Buffer.byteLength(Jt,"utf8");return t.trim().length>0&&es>=s?D({output:t,filterId:d.slug,rawBytes:s,filteredBytes:s,debugBypass:!1,droppedTail:null}):D({output:Jt,filterId:d.slug,rawBytes:s,filteredBytes:es,debugBypass:!1,droppedTail:Ge})}function ot(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 fd(){let e=Number(process.env.TOKMIZER_OFFLINE_GRACE_MS);return Number.isFinite(e)&&e>0?e:6048e5}function Po(e,t=Date.now()){let n=e.lastHeartbeatOkAt;if(typeof n=="number"&&t-n>fd())return!0;if(e.subEndsAt){let r=Date.parse(e.subEndsAt);if(Number.isFinite(r)&&t>r)return!0}return!1}function Do(e,t=Date.now()){return e.plan}import{readFile as dd,writeFile as y0,mkdir as k0,chmod as b0,rm as _0,rename as x0,readdir as w0}from"node:fs/promises";import{join as pd}from"node:path";var md="settings-cache.json",Fo=vt.parse({}),T0=vt.partial().extend({filters:vt.shape.filters.removeDefault().partial().optional()});async function it(){let e=null;try{let t=JSON.parse(await dd(pd($(),md),"utf8"));typeof t=="object"&&t!==null&&!Array.isArray(t)&&(e=t)}catch{}return e?vt.parse({...Fo,...e}):Fo}var hd=[[/(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 $t(e){let t=e;for(let[n,r]of hd)t=t.replace(n,r);return t}import{join as jo}from"node:path";import{appendFileSync as kd,chmodSync as bd,existsSync as _d,mkdirSync as xd,readFileSync as B0,renameSync as J0,rmdirSync as Z0,statSync as wd,unlinkSync as G0,utimesSync as V0,writeFileSync as W0}from"node:fs";import{createHash as C0,randomUUID as gd}from"node:crypto";import{readFile as Lo,writeFile as Mo,mkdir as yd}from"node:fs/promises";async function cr(){try{let n=(await Lo(Et(),"utf8")).trim();if(/^[0-9a-f-]{36}$/i.test(n))return n}catch{}await yd($(),{recursive:!0});let e=gd();try{return await Mo(Et(),e,{mode:384,flag:"wx"}),e}catch{try{let t=(await Lo(Et(),"utf8")).trim();if(/^[0-9a-f-]{36}$/i.test(t))return t}catch{}return await Mo(Et(),e,{mode:384}),e}}var vd=512*1024;function Ho(){return jo($(),"spool")}function Sd(e){return jo(Ho(),`${e}.jsonl`)}function dn(e,t){if(or())try{xd(Ho(),{recursive:!0,mode:448});let n=Sd(e);if(_d(n)&&wd(n).size>=vd)return;kd(n,JSON.stringify(t)+`
80
- `,{mode:384}),bd(n,384)}catch{return}}var Td=/^[a-z0-9][a-z0-9._-]*$/i,Rd=/^[a-z][a-z-]+$/,Ad=/^[A-Za-z_][A-Za-z0-9_]*=/,$d=new Set(["gh","glab","gup","hub","gist"]),Cd=/^(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,Od=24,zo=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"]),Id=new Set([...zo,"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"]),Nd=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"])]]),Pd=new Set(["-C","-c"]);function Dd(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 Id.has(n.toLowerCase())?n:""}function Fd(e,t,n){let r=0;for(;e==="git"&&r<n.length&&n[r].startsWith("-");)r+=Pd.has(n[r])?2:1;let s=(n[r]??"").toLowerCase();return t.has(s)?`${e} ${s}`:e}function Uo(e){let t=e.toLowerCase();return t.startsWith("git")||$d.has(t)}function fr(e){let t=e.trim().split(/\s+/).filter(l=>l.length>0),n=0;for(;n<t.length&&Ad.test(t[n]??"");)n+=1;let r=Dd(t[n]??"");if(!r||!Td.test(r)||r.length>Od)return"";let s=Nd.get(r.toLowerCase());if(s)return Fd(r.toLowerCase(),s,t.slice(n+1));if(Uo(r)||Cd.test(r)||$t(r)!==r)return"";let o=t[n+1];return o&&Uo(o)?"":(o&&zo.has(r.toLowerCase())&&Rd.test(o)?`${r} ${o}`:r).slice(0,64)}async function Bo(e){if(!e.telemetryOptIn)return;let t=fr(e.cmd),n=t&&$t(t)===t?t:"other",r=e.sessionId?e.sessionId.replace(/[^A-Za-z0-9._-]/g,"").slice(0,64):"";dn("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 Jo(e){if(e.plan!=="pro"||oo(e.filterId)||!(await it()).telemetryOptIn)return;let t=fr(e.cmd);!t||$t(t)!==t||dn("learn",{cmd:t,filterId:e.filterId==null?null:Y(e.filterId),rawBytes:e.rawBytes,filteredBytes:e.filteredBytes})}import{appendFileSync as Md,chmodSync as jd,mkdirSync as Hd,readFileSync as Yo,realpathSync as Ud,renameSync as qo,rmSync as Xo,statSync as Qo,writeFileSync as dr}from"node:fs";import{basename as Go,dirname as ei,join as pn,resolve as zd,sep as gx}from"node:path";var Ld={"claude-code":"anthropic",codex:"openai",copilot:"openai","gemini-cli":"google",cursor:"anthropic",windsurf:"anthropic",cline:"anthropic",aider:"anthropic",shell:"anthropic"};function Zo(e){return e?Ld[e]??"anthropic":"anthropic"}var Bd="stats.jsonl",Jd="stats-ledger.json",Vo=2*1024*1024,Zd=3e4,Gd=3e4,Vd=new Set(["n","g","e"]),Wd=256;function ti(){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 Kd(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"&&Vd.has(n.o)?{o:n.o}:{}}}catch{return null}}function Yd(e,t){if(!t.c)return;let n=e.cmds[t.c]??{n:0,nc:0,r:0,f:0,sh:!1};n.n+=1,t.f<t.r&&(n.nc+=1,n.rr=(n.rr??0)+t.r,n.rf=(n.rf??0)+t.f),(t.k==="sh"||t.k==="restore")&&(n.sh=!0),t.h==="shell"&&t.k!=="restore"&&(n.tn=(n.tn??0)+1,n.tr=(n.tr??0)+t.r,n.tf=(n.tf??0)+t.f),n.r+=t.r,n.f+=t.f,e.cmds[t.c]=n}function qd(e){return e.s==="b"?`b:${(e.c??"").split(" ")[0]||"other"}`:e.s?.startsWith("u:")?e.s:e.o==="n"?"n":"?"}function Xd(e,t){let n=qd(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 Qd(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>Gd){e.ox+=1;return}if(Yd(e,t),t.k==="restore"?(e.rn+=1,e.rb+=t.f):Xd(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=Zo(t.h),r=e.prov[n]??{r:0,f:0};r.r+=t.r,r.f+=t.f,e.prov[n]=r}}function ep(e){let t=new Date(e*1e3);return`${t.getFullYear()}-${String(t.getMonth()+1).padStart(2,"0")}-${String(t.getDate()).padStart(2,"0")}`}function ni(e){return pn(ei(e),Jd)}function tp(e){let t=ni(e),n;try{n=Yo(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]={...ti(),...i});return s}catch{try{qo(t,`${t}.corrupt-${Date.now()}`)}catch{}return{}}}function Wo(e,t){let n=`${e}.tmp-${process.pid}`;dr(n,t,{mode:384}),qo(n,e)}function np(e){try{return dr(e,String(process.pid),{flag:"wx",mode:384}),!0}catch{}try{return Date.now()-Qo(e).mtimeMs<Zd?!1:(Xo(e,{force:!0}),dr(e,String(process.pid),{flag:"wx",mode:384}),!0)}catch{return!1}}function rp(e,t=Vo,n=Vo/2){try{if(Qo(e).size<=t)return}catch{return}let r=`${e}.lock`;if(np(r))try{let s=Yo(e,"utf8").split(`
81
- `).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=tp(e);for(let u of s.slice(0,o)){let c=Kd(u);if(!c)continue;let f=ep(c.t),d=a[f]??ti();Qd(d,c),a[f]=d}let l=s.slice(o);Wo(e,l.length?`${l.join(`
79
+ `):N,yt=re.length<N.length;return D({output:re,filterId:f.slug,rawBytes:s,filteredBytes:Buffer.byteLength(re,"utf8"),debugBypass:!0,...yt?{droppedTail:t}:{}})}let{text:F,droppedTail:G}=qn(t,f,i?{...l,verbosity:"minimal",...f.transform==="smart-read"?{smartCode:!0}:{}}:l),Ee=!i&&!f.preserve_exact?rr(F,l.verbosity,f.slug):F,es=Buffer.byteLength(Ee,"utf8");return t.trim().length>0&&es>=s?D({output:t,filterId:f.slug,rawBytes:s,filteredBytes:s,debugBypass:!1,droppedTail:null}):D({output:Ee,filterId:f.slug,rawBytes:s,filteredBytes:es,debugBypass:!1,droppedTail:G})}function it(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 gf(){let e=Number(process.env.TOKMIZER_OFFLINE_GRACE_MS);return Number.isFinite(e)&&e>0?e:6048e5}function No(e,t=Date.now()){let n=e.lastHeartbeatOkAt;if(typeof n=="number"&&t-n>gf())return!0;if(e.subEndsAt){let r=Date.parse(e.subEndsAt);if(Number.isFinite(r)&&t>r)return!0}return!1}function Do(e,t=Date.now()){return e.plan}import{readFile as yf,writeFile as x0,mkdir as w0,chmod as v0,rm as S0,rename as E0,readdir as T0}from"node:fs/promises";import{join as kf}from"node:path";var bf="settings-cache.json",Fo=St.parse({}),C0=St.partial().extend({filters:St.shape.filters.removeDefault().partial().optional()});async function at(){let e=null;try{let t=JSON.parse(await yf(kf($(),bf),"utf8"));typeof t=="object"&&t!==null&&!Array.isArray(t)&&(e=t)}catch{}return e?St.parse({...Fo,...e}):Fo}var _f=[[/(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 Ct(e){let t=e;for(let[n,r]of _f)t=t.replace(n,r);return t}import{join as jo}from"node:path";import{appendFileSync as vf,chmodSync as Sf,existsSync as Ef,mkdirSync as Tf,readFileSync as Y0,renameSync as q0,rmdirSync as X0,statSync as Rf,unlinkSync as Q0,utimesSync as ex,writeFileSync as tx}from"node:fs";import{createHash as D0,randomUUID as xf}from"node:crypto";import{readFile as Lo,writeFile as Mo,mkdir as wf}from"node:fs/promises";async function cr(){try{let n=(await Lo(Tt(),"utf8")).trim();if(/^[0-9a-f-]{36}$/i.test(n))return n}catch{}await wf($(),{recursive:!0});let e=xf();try{return await Mo(Tt(),e,{mode:384,flag:"wx"}),e}catch{try{let t=(await Lo(Tt(),"utf8")).trim();if(/^[0-9a-f-]{36}$/i.test(t))return t}catch{}return await Mo(Tt(),e,{mode:384}),e}}var Af=512*1024;function Ho(){return jo($(),"spool")}function $f(e){return jo(Ho(),`${e}.jsonl`)}function fn(e,t){if(or())try{Tf(Ho(),{recursive:!0,mode:448});let n=$f(e);if(Ef(n)&&Rf(n).size>=Af)return;vf(n,JSON.stringify(t)+`
80
+ `,{mode:384}),Sf(n,384)}catch{return}}var Of=/^[a-z0-9][a-z0-9._-]*$/i,If=/^[a-z][a-z-]+$/,Pf=/^[A-Za-z_][A-Za-z0-9_]*=/,Nf=new Set(["gh","glab","gup","hub","gist"]),Df=/^(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,Ff=24,Bo=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"]),Lf=new Set([...Bo,"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"]),Mf=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"])]]),jf=new Set(["-C","-c"]);function Hf(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 Lf.has(n.toLowerCase())?n:""}function Uf(e,t,n){let r=0;for(;e==="git"&&r<n.length&&n[r].startsWith("-");)r+=jf.has(n[r])?2:1;let s=(n[r]??"").toLowerCase();return t.has(s)?`${e} ${s}`:e}function Uo(e){let t=e.toLowerCase();return t.startsWith("git")||Nf.has(t)}function dr(e){let t=e.trim().split(/\s+/).filter(l=>l.length>0),n=0;for(;n<t.length&&Pf.test(t[n]??"");)n+=1;let r=Hf(t[n]??"");if(!r||!Of.test(r)||r.length>Ff)return"";let s=Mf.get(r.toLowerCase());if(s)return Uf(r.toLowerCase(),s,t.slice(n+1));if(Uo(r)||Df.test(r)||Ct(r)!==r)return"";let o=t[n+1];return o&&Uo(o)?"":(o&&Bo.has(r.toLowerCase())&&If.test(o)?`${r} ${o}`:r).slice(0,64)}async function zo(e){if(!e.telemetryOptIn)return;let t=dr(e.cmd),n=t&&Ct(t)===t?t:"other",r=e.sessionId?e.sessionId.replace(/[^A-Za-z0-9._-]/g,"").slice(0,64):"";fn("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 Jo(e){if(e.plan!=="pro"||oo(e.filterId)||!(await at()).telemetryOptIn)return;let t=dr(e.cmd);!t||Ct(t)!==t||fn("learn",{cmd:t,filterId:e.filterId==null?null:q(e.filterId),rawBytes:e.rawBytes,filteredBytes:e.filteredBytes})}import{appendFileSync as zf,chmodSync as Jf,mkdirSync as Zf,readFileSync as Yo,realpathSync as Gf,renameSync as qo,rmSync as Xo,statSync as Qo,writeFileSync as fr}from"node:fs";import{basename as Go,dirname as ei,join as pn,resolve as Vf,sep as vx}from"node:path";var Bf={"claude-code":"anthropic",codex:"openai",copilot:"openai","gemini-cli":"google",cursor:"anthropic",windsurf:"anthropic",cline:"anthropic",aider:"anthropic",shell:"anthropic"};function Zo(e){return e?Bf[e]??"anthropic":"anthropic"}var Wf="stats.jsonl",Kf="stats-ledger.json",Vo=2*1024*1024,Yf=3e4,qf=3e4,Xf=new Set(["n","g","e"]),Qf=256;function ti(){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 ep(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"&&Xf.has(n.o)?{o:n.o}:{}}}catch{return null}}function tp(e,t){if(!t.c)return;let n=e.cmds[t.c]??{n:0,nc:0,r:0,f:0,sh:!1};n.n+=1,t.f<t.r&&(n.nc+=1,n.rr=(n.rr??0)+t.r,n.rf=(n.rf??0)+t.f),(t.k==="sh"||t.k==="restore")&&(n.sh=!0),t.h==="shell"&&t.k!=="restore"&&(n.tn=(n.tn??0)+1,n.tr=(n.tr??0)+t.r,n.tf=(n.tf??0)+t.f),n.r+=t.r,n.f+=t.f,e.cmds[t.c]=n}function np(e){return e.s==="b"?`b:${(e.c??"").split(" ")[0]||"other"}`:e.s?.startsWith("u:")?e.s:e.o==="n"?"n":"?"}function rp(e,t){let n=np(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 sp(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>qf){e.ox+=1;return}if(tp(e,t),t.k==="restore"?(e.rn+=1,e.rb+=t.f):rp(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=Zo(t.h),r=e.prov[n]??{r:0,f:0};r.r+=t.r,r.f+=t.f,e.prov[n]=r}}function op(e){let t=new Date(e*1e3);return`${t.getFullYear()}-${String(t.getMonth()+1).padStart(2,"0")}-${String(t.getDate()).padStart(2,"0")}`}function ni(e){return pn(ei(e),Kf)}function ip(e){let t=ni(e),n;try{n=Yo(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]={...ti(),...i});return s}catch{try{qo(t,`${t}.corrupt-${Date.now()}`)}catch{}return{}}}function Wo(e,t){let n=`${e}.tmp-${process.pid}`;fr(n,t,{mode:384}),qo(n,e)}function ap(e){try{return fr(e,String(process.pid),{flag:"wx",mode:384}),!0}catch{}try{return Date.now()-Qo(e).mtimeMs<Yf?!1:(Xo(e,{force:!0}),fr(e,String(process.pid),{flag:"wx",mode:384}),!0)}catch{return!1}}function lp(e,t=Vo,n=Vo/2){try{if(Qo(e).size<=t)return}catch{return}let r=`${e}.lock`;if(ap(r))try{let s=Yo(e,"utf8").split(`
81
+ `).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=ip(e);for(let u of s.slice(0,o)){let c=ep(u);if(!c)continue;let d=op(c.t),f=a[d]??ti();sp(f,c),a[d]=f}let l=s.slice(o);Wo(e,l.length?`${l.join(`
82
82
  `)}
83
- `:""),Wo(ni(e),JSON.stringify({v:1,days:a}))}catch{return}finally{Xo(r,{force:!0})}}function sp(e){let t=zd(e),n=t,r="";for(;;){try{return pn(Ud(n),r)}catch{}let s=ei(n);if(s===n)return t;r=r?pn(Go(n),r):Go(n),n=s}}var op=new Set(["sudo","command","time","nice","nohup","env","stdbuf","timeout"]),ip=new Set(["-u","-g","-n","-s","-k"]),ap=/^[a-z0-9][a-z0-9._-]*$/i,lp=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"]),ri=/^[A-Za-z_][A-Za-z0-9_]*=/;function Ko(e){return e.length===0||e[0]==="cd"||e.every(t=>ri.test(t))}function up(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(`|;&<>
84
- `.includes(i)){if(o(),Ko(t)){t=[];continue}return t}n+=i,r=!0}return o(),Ko(t)?[]:t}function si(e){let t=up(e).map(a=>a.replace(/^[({]+/,"")).filter(Boolean),n=0;for(;n<t.length;){let a=t[n];if(ri.test(a)){n+=1;continue}if(op.has(a)){for(n+=1;n<t.length;){let l=t[n];if(l.startsWith("-")){n+=ip.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("-")&&ap.test(o)&&lp.has(s.toLowerCase())?`${s} ${o}`:s).slice(0,24)}function cp(){return pn($(),Bd)}function oi(e,t,n=cp(),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?sp(a):"",p=d&&d.length<=Wd?`,"p":${JSON.stringify(d)}`:"",h=l.s?`,"s":${JSON.stringify(l.s.slice(0,66))}`:"",_=l.o?`,"o":${JSON.stringify(l.o)}`:"",k=`{"t":${Math.floor(Date.now()/1e3)},"r":${e},"f":${t}${r?',"m":1':""}${u}${c}${f}${p}${h}${_}}
85
- `;try{Hd($(),{recursive:!0,mode:448}),Md(n,k,{mode:384}),jd(n,384),rp(n)}catch{return}}function ii(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 ai(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 sw,readFileSync as Hp}from"node:fs";import{join as Up}from"node:path";import zp from"node:os";import{readFile as Ap,writeFile as $p,rename as Cp,mkdir as bi,chmod as Op,stat as Ip,unlink as Np}from"node:fs/promises";import{existsSync as Pp,lstatSync as Dp,readlinkSync as Fp,realpathSync as yi}from"node:fs";import{basename as Lp,dirname as gn,join as Mp,resolve as ki}from"node:path";import{basename as fp}from"node:path";var dp={exec:"tkr-exec",processor:"tkr-processor",daemon:"tkr-daemon","shim-run":"tkr-shim"},pp={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 Ct(e){let t=fp(e).replace(/\.(m?js|ts)$/,"");if(t==="tkr")return[];for(let[n,r]of Object.entries(dp))if(r===t)return[n];for(let[n,r]of Object.entries(pp))if(r===t)return["hook",n];return null}function Be(){return!1}function pr(e,t=process.execPath){let n=Be()?Ct(e):null;return n?[process.execPath,...n]:[t,e]}import{rmSync as mp,statSync as hp}from"node:fs";import{join as gp}from"node:path";function li(){return gp($(),"fail-open")}var yp=24*36e5;function ae(e=Date.now()){try{if(e-hp(li()).mtimeMs<yp)return!0;mp(li(),{force:!0})}catch{}return!1}import{chmod as bp,lstat as ui,mkdir as _p,readFile as hr,rename as xp,rm as Ux,unlink as ci,writeFile as wp}from"node:fs/promises";import{createHash as fi}from"node:crypto";import{basename as vp,join as di}from"node:path";var Sp=".tkr-bak";function pi(){return di($(),"backup","config")}function mr(e){let t=yr(e),n=fi("sha256").update(t).digest("hex").slice(0,16),r=vp(t).replace(/[^A-Za-z0-9._-]/g,"_").slice(0,80);return di(pi(),`${n}-${r}`)}function mi(e){return`${mr(e)}.written`}function hi(e){return fi("sha256").update(e).digest("hex")}async function Ep(e){try{return await ui(e),!0}catch{return!1}}async function gr(e,t){let n=`${e}.tmp-${process.pid}`;try{return await _p(pi(),{recursive:!0,mode:448}),await wp(n,t,{mode:384}),await bp(n,384),await xp(n,e),!0}catch{return await ci(n).catch(()=>{}),!1}}async function Tp(e,t){let n=`${e}${Sp}`;try{if(!(await ui(n)).isFile())return!1}catch{return!1}let r=!await Ep(t);if(r&&!await gr(t,await hr(n,"utf8")))throw new Error("backup");return await ci(n).catch(()=>{}),r}async function Rp(e,t){try{return(await hr(mi(e),"utf8")).trim()===hi(t)}catch{return!1}}async function gi(e,t){let n=t;try{n===void 0&&(n=await hr(e,"utf8"))}catch(r){return r.code==="ENOENT"}try{if(await Tp(e,mr(e)))return!0}catch{return!1}return await Rp(e,n)?!0:gr(mr(e),n)}async function mn(e,t,n){return!await gi(e,n)||!await hn(e,t)?!1:(await gr(mi(e),`${hi(t)}
86
- `),!0)}function I(e){return e!=null&&typeof e=="object"&&!Array.isArray(e)}async function we(e){if(!Pp(e))return{};try{let t=JSON.parse(await Ap(e,"utf8"));return I(t)?t:null}catch{return null}}function yr(e){let t=ki(e);for(let n=0;n<32;n++){try{return yi(t)}catch{}try{if(!Dp(t).isSymbolicLink())break;t=ki(gn(t),Fp(t))}catch{break}}try{return Mp(yi(gn(t)),Lp(t))}catch{return t}}async function hn(e,t){let n=yr(e),r=`${n}.tmp-${process.pid}`;try{await bi(gn(n),{recursive:!0});let s=384;try{s=(await Ip(n)).mode&511}catch{}return await $p(r,t,{mode:s}),await Op(r,s),await Cp(r,n),!0}catch{try{await Np(r)}catch{}return!1}}async function ve(e,t){try{await bi(gn(e),{recursive:!0})}catch{return!1}return mn(e,`${JSON.stringify(t,null,2)}
87
- `)}var jp=String.raw`(?:'(?:(?:[^']|'\\'')*[\\/])?tkr(?:\.(?:exe|cmd|bat|ps1))?'|"(?:[^"]*[\\/])?tkr(?:\.(?:exe|cmd|bat|ps1))?"|(?:[^\s'"]*[\\/])?tkr(?:\.(?:exe|cmd|bat|ps1))?)`;function at(e,t){if(typeof e!="string")return!1;if(e.includes(t))return!0;let n=Ct(t);return n?.length?new RegExp(`^\\s*${jp}\\s+${n.join("\\s+")}(?:\\s|$)`,"i").test(e):!1}function yn(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(!I(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 Bp="tkr-cursor-hook",_i="preToolUse";function Jp(){return Up(zp.homedir(),".cursor","hooks.json")}function Zp(e){return I(e)&&at(e.command,Bp)}function Gp(e){let t=I(e.hooks)?e.hooks:{},n=Array.isArray(t[_i])?t[_i]:[];return{hooks:t,entries:n}}function xi(){try{let e=JSON.parse(Hp(Jp(),"utf8"));return Gp(e).entries.some(Zp)}catch{return!1}}import{existsSync as cw,readFileSync as Vp}from"node:fs";import{join as Wp}from"node:path";import Kp from"node:os";var Yp="tkr-gemini-hook",wi="BeforeTool";function qp(){return Wp(process.env.GEMINI_CLI_HOME||Kp.homedir(),".gemini","settings.json")}function Xp(e){return I(e)&&at(e.command,Yp)}function Qp(e){return(Array.isArray(e.hooks)?e.hooks:[]).find(Xp)}function em(e){let t=I(e.hooks)?e.hooks:{},n=Array.isArray(t[wi])?t[wi]:[];return{hooks:t,groups:n}}function vi(){try{let e=JSON.parse(Vp(qp(),"utf8"));return em(e).groups.some(t=>Qp(t)!=null)}catch{return!1}}import{dirname as Lw,join as q}from"node:path";import lm from"node:os";import{existsSync as yw,accessSync as kw,constants as bw,readFileSync as tm}from"node:fs";var nm='"rewrite", "--host"';function rm(e){return e.includes(nm)}function Si(e){try{return rm(tm(e,"utf8"))}catch{return!1}}import{readFile as Ti,mkdir as sm}from"node:fs/promises";import{existsSync as _r,readFileSync as Ri}from"node:fs";import{dirname as om,join as br}from"node:path";import Ai from"node:os";var $i="tokmizer-rewrite",Ot="tokmizer-rewrite";function Nt(){return br(process.env.VIBE_HOME||br(Ai.homedir(),".vibe"),"hooks.toml")}function Ei(e){return JSON.stringify(e)}function im(e){return["[[hooks]]",`name = ${Ei($i)}`,'type = "pre_tool"','match = "bash"',`command = ${Ei(e)}`,"timeout = 10.0","strict = false",'description = "Route shell commands through tokmizer."',""].join(`
88
- `)}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 It(e){return/^\s*\[\[hooks\]\]/.test(e)&&new RegExp(`^\\s*name\\s*=\\s*"${$i}"\\s*$`,"m").test(e)}async function Ci(e,t){try{await sm(om(e),{recursive:!0})}catch{return!1}return mn(e,t)}function Oi(){try{return xr(Ri(Nt(),"utf8")).some(It)}catch{return!1}}async function Ii(e){let t=Nt(),n="";try{_r(t)&&(n=await Ti(t,"utf8"))}catch{return"error"}let r=im(e),s=xr(n),o=s.filter(It);if(o.length===1&&o[0].trimEnd()===r.trimEnd())return"present";let i=s.filter(l=>!It(l)).join("").trimEnd(),a=i?`${i}
83
+ `:""),Wo(ni(e),JSON.stringify({v:1,days:a}))}catch{return}finally{Xo(r,{force:!0})}}function up(e){let t=Vf(e),n=t,r="";for(;;){try{return pn(Gf(n),r)}catch{}let s=ei(n);if(s===n)return t;r=r?pn(Go(n),r):Go(n),n=s}}var cp=new Set(["sudo","command","time","nice","nohup","env","stdbuf","timeout"]),dp=new Set(["-u","-g","-n","-s","-k"]),fp=/^[a-z0-9][a-z0-9._-]*$/i,pp=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"]),ri=/^[A-Za-z_][A-Za-z0-9_]*=/;function Ko(e){return e.length===0||e[0]==="cd"||e.every(t=>ri.test(t))}function mp(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(`|;&<>
84
+ `.includes(i)){if(o(),Ko(t)){t=[];continue}return t}n+=i,r=!0}return o(),Ko(t)?[]:t}function si(e){let t=mp(e).map(a=>a.replace(/^[({]+/,"")).filter(Boolean),n=0;for(;n<t.length;){let a=t[n];if(ri.test(a)){n+=1;continue}if(cp.has(a)){for(n+=1;n<t.length;){let l=t[n];if(l.startsWith("-")){n+=dp.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("-")&&fp.test(o)&&pp.has(s.toLowerCase())?`${s} ${o}`:s).slice(0,24)}function hp(){return pn($(),Wf)}function oi(e,t,n=hp(),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)}`:"",d=i?`,"c":${JSON.stringify(i.slice(0,24))}`:"",f=a?up(a):"",p=f&&f.length<=Qf?`,"p":${JSON.stringify(f)}`:"",h=l.s?`,"s":${JSON.stringify(l.s.slice(0,66))}`:"",x=l.o?`,"o":${JSON.stringify(l.o)}`:"",y=`{"t":${Math.floor(Date.now()/1e3)},"r":${e},"f":${t}${r?',"m":1':""}${u}${c}${d}${p}${h}${x}}
85
+ `;try{Zf($(),{recursive:!0,mode:448}),zf(n,y,{mode:384}),Jf(n,384),lp(n)}catch{return}}function ii(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 ai(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 dw,readFileSync as Zp}from"node:fs";import{join as Gp}from"node:path";import Vp from"node:os";import{readFile as Pp,writeFile as Np,rename as Dp,mkdir as bi,chmod as Fp,stat as Lp,unlink as Mp}from"node:fs/promises";import{existsSync as jp,lstatSync as Hp,readlinkSync as Up,realpathSync as yi}from"node:fs";import{basename as Bp,dirname as gn,join as zp,resolve as ki}from"node:path";import{basename as gp}from"node:path";var yp={exec:"tkr-exec",processor:"tkr-processor",daemon:"tkr-daemon","shim-run":"tkr-shim"},kp={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 Ot(e){let t=gp(e).replace(/\.(m?js|ts)$/,"");if(t==="tkr")return[];for(let[n,r]of Object.entries(yp))if(r===t)return[n];for(let[n,r]of Object.entries(kp))if(r===t)return["hook",n];return null}function Ze(){return!1}function pr(e,t=process.execPath){let n=Ze()?Ot(e):null;return n?[process.execPath,...n]:[t,e]}import{rmSync as bp,statSync as _p}from"node:fs";import{join as xp}from"node:path";function li(){return xp($(),"fail-open")}var wp=24*36e5;function le(e=Date.now()){try{if(e-_p(li()).mtimeMs<wp)return!0;bp(li(),{force:!0})}catch{}return!1}import{chmod as Sp,lstat as ui,mkdir as Ep,readFile as hr,rename as Tp,rm as Wx,unlink as ci,writeFile as Rp}from"node:fs/promises";import{createHash as di}from"node:crypto";import{basename as Ap,join as fi}from"node:path";var $p=".tkr-bak";function pi(){return fi($(),"backup","config")}function mr(e){let t=yr(e),n=di("sha256").update(t).digest("hex").slice(0,16),r=Ap(t).replace(/[^A-Za-z0-9._-]/g,"_").slice(0,80);return fi(pi(),`${n}-${r}`)}function mi(e){return`${mr(e)}.written`}function hi(e){return di("sha256").update(e).digest("hex")}async function Cp(e){try{return await ui(e),!0}catch{return!1}}async function gr(e,t){let n=`${e}.tmp-${process.pid}`;try{return await Ep(pi(),{recursive:!0,mode:448}),await Rp(n,t,{mode:384}),await Sp(n,384),await Tp(n,e),!0}catch{return await ci(n).catch(()=>{}),!1}}async function Op(e,t){let n=`${e}${$p}`;try{if(!(await ui(n)).isFile())return!1}catch{return!1}let r=!await Cp(t);if(r&&!await gr(t,await hr(n,"utf8")))throw new Error("backup");return await ci(n).catch(()=>{}),r}async function Ip(e,t){try{return(await hr(mi(e),"utf8")).trim()===hi(t)}catch{return!1}}async function gi(e,t){let n=t;try{n===void 0&&(n=await hr(e,"utf8"))}catch(r){return r.code==="ENOENT"}try{if(await Op(e,mr(e)))return!0}catch{return!1}return await Ip(e,n)?!0:gr(mr(e),n)}async function mn(e,t,n){return!await gi(e,n)||!await hn(e,t)?!1:(await gr(mi(e),`${hi(t)}
86
+ `),!0)}function I(e){return e!=null&&typeof e=="object"&&!Array.isArray(e)}async function we(e){if(!jp(e))return{};try{let t=JSON.parse(await Pp(e,"utf8"));return I(t)?t:null}catch{return null}}function yr(e){let t=ki(e);for(let n=0;n<32;n++){try{return yi(t)}catch{}try{if(!Hp(t).isSymbolicLink())break;t=ki(gn(t),Up(t))}catch{break}}try{return zp(yi(gn(t)),Bp(t))}catch{return t}}async function hn(e,t){let n=yr(e),r=`${n}.tmp-${process.pid}`;try{await bi(gn(n),{recursive:!0});let s=384;try{s=(await Lp(n)).mode&511}catch{}return await Np(r,t,{mode:s}),await Fp(r,s),await Dp(r,n),!0}catch{try{await Mp(r)}catch{}return!1}}async function ve(e,t){try{await bi(gn(e),{recursive:!0})}catch{return!1}return mn(e,`${JSON.stringify(t,null,2)}
87
+ `)}var Jp=String.raw`(?:'(?:(?:[^']|'\\'')*[\\/])?tkr(?:\.(?:exe|cmd|bat|ps1))?'|"(?:[^"]*[\\/])?tkr(?:\.(?:exe|cmd|bat|ps1))?"|(?:[^\s'"]*[\\/])?tkr(?:\.(?:exe|cmd|bat|ps1))?)`;function lt(e,t){if(typeof e!="string")return!1;if(e.includes(t))return!0;let n=Ot(t);return n?.length?new RegExp(`^\\s*${Jp}\\s+${n.join("\\s+")}(?:\\s|$)`,"i").test(e):!1}function yn(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(!I(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 Wp="tkr-cursor-hook",_i="preToolUse";function Kp(){return Gp(Vp.homedir(),".cursor","hooks.json")}function Yp(e){return I(e)&&lt(e.command,Wp)}function qp(e){let t=I(e.hooks)?e.hooks:{},n=Array.isArray(t[_i])?t[_i]:[];return{hooks:t,entries:n}}function xi(){try{let e=JSON.parse(Zp(Kp(),"utf8"));return qp(e).entries.some(Yp)}catch{return!1}}import{existsSync as yw,readFileSync as Xp}from"node:fs";import{join as Qp}from"node:path";import em from"node:os";var tm="tkr-gemini-hook",wi="BeforeTool";function nm(){return Qp(process.env.GEMINI_CLI_HOME||em.homedir(),".gemini","settings.json")}function rm(e){return I(e)&&lt(e.command,tm)}function sm(e){return(Array.isArray(e.hooks)?e.hooks:[]).find(rm)}function om(e){let t=I(e.hooks)?e.hooks:{},n=Array.isArray(t[wi])?t[wi]:[];return{hooks:t,groups:n}}function vi(){try{let e=JSON.parse(Xp(nm(),"utf8"));return om(e).groups.some(t=>sm(t)!=null)}catch{return!1}}import{dirname as Jw,join as X}from"node:path";import pm from"node:os";import{existsSync as Sw,accessSync as Ew,constants as Tw,readFileSync as im}from"node:fs";var am='"rewrite", "--host"';function lm(e){return e.includes(am)}function Si(e){try{return lm(im(e,"utf8"))}catch{return!1}}import{readFile as Ti,mkdir as um}from"node:fs/promises";import{existsSync as _r,readFileSync as Ri}from"node:fs";import{dirname as cm,join as br}from"node:path";import Ai from"node:os";var $i="tokmizer-rewrite",It="tokmizer-rewrite";function Nt(){return br(process.env.VIBE_HOME||br(Ai.homedir(),".vibe"),"hooks.toml")}function Ei(e){return JSON.stringify(e)}function dm(e){return["[[hooks]]",`name = ${Ei($i)}`,'type = "pre_tool"','match = "bash"',`command = ${Ei(e)}`,"timeout = 10.0","strict = false",'description = "Route shell commands through tokmizer."',""].join(`
88
+ `)}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 Pt(e){return/^\s*\[\[hooks\]\]/.test(e)&&new RegExp(`^\\s*name\\s*=\\s*"${$i}"\\s*$`,"m").test(e)}async function Ci(e,t){try{await um(cm(e),{recursive:!0})}catch{return!1}return mn(e,t)}function Oi(){try{return xr(Ri(Nt(),"utf8")).some(Pt)}catch{return!1}}async function Ii(e){let t=Nt(),n="";try{_r(t)&&(n=await Ti(t,"utf8"))}catch{return"error"}let r=dm(e),s=xr(n),o=s.filter(Pt);if(o.length===1&&o[0].trimEnd()===r.trimEnd())return"present";let i=s.filter(l=>!Pt(l)).join("").trimEnd(),a=i?`${i}
89
89
 
90
- ${r}`:r;return await Ci(t,a)?o.length?"updated":"added":"error"}async function Ni(){let e=Nt();if(!_r(e))return"absent";let t;try{t=await Ti(e,"utf8")}catch{return"error"}let n=xr(t);if(!n.some(It))return"absent";let r=n.filter(o=>!It(o)).join("").trimEnd(),s=r?`${r}
91
- `:"";return await Ci(e,s)?"removed":"error"}function Pt(){return br(Ai.homedir(),".gemini","config","hooks.json")}function am(e){return{enabled:!0,PreToolUse:[{matcher:"run_command",hooks:[{type:"command",command:e,timeout:10}]}]}}function Pi(){try{let e=JSON.parse(Ri(Pt(),"utf8"));return I(e)&&I(e[Ot])}catch{return!1}}async function Di(e){let t=Pt(),n=await we(t);if(!n)return"error";let r=am(e),s=n[Ot];return s!==void 0&&JSON.stringify(s)===JSON.stringify(r)?"present":(n[Ot]=r,await ve(t,n)?s===void 0?"added":"updated":"error")}async function Fi(){let e=Pt();if(!_r(e))return"absent";let t=await we(e);return t?Ot in t?(delete t[Ot],await ve(e,t)?"removed":"error"):"absent":"error"}var Dt=()=>lm.homedir(),wr=()=>process.env.XDG_CONFIG_HOME||q(Dt(),".config"),Li=[{host:"opencode",label:"OpenCode",command:"setup-opencode",kind:"shim",files:()=>[{template:"opencode.js",target:q(wr(),"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:q(wr(),"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:q(wr(),"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:Nt,installed:Oi,ensure:Ii,remove:Ni,next:"Restart Vibe so it reads hooks.toml."},{host:"antigravity",label:"Antigravity",command:"setup-antigravity",kind:"hook",file:Pt,installed:Pi,ensure:Di,remove:Fi,next:"Restart Antigravity, then check it with /hooks."},{host:"openclaw",label:"OpenClaw",command:"setup-openclaw",kind:"shim",files:()=>{let e=q(Dt(),".openclaw","extensions","tokmizer");return["index.js","openclaw.plugin.json","package.json"].map(t=>({template:`openclaw/${t}`,target:q(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:q(process.env.PI_CODING_AGENT_DIR||q(Dt(),".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:q(Dt(),".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=q(process.env.HERMES_HOME||q(Dt(),".hermes"),"plugins","tokmizer");return["__init__.py","plugin.yaml"].map(t=>({template:`hermes/${t}`,target:q(e,t)}))},next:"Run: hermes plugins enable tokmizer, then restart Hermes (needs Hermes v2026.8.16 or newer)."}];function Mi(e){return e.kind==="hook"?e.installed():Si(e.files()[0].target)}import{existsSync as Tr,readFileSync as mm}from"node:fs";import{join as M}from"node:path";import hm from"node:os";import{existsSync as um,readFileSync as cm}from"node:fs";function kn(e,t){return I(e)&&at(e.command,t)}function ji(e){return e.path??(e.nested?["hooks"]:[])}function Hi(e,t){let n=e;for(let r of ji(t))I(n[r])||(n[r]={}),n=n[r];return n}function Ui(e,t){let n=e;for(let s of ji(t))n=I(n)?n[s]:void 0;if(!I(n))return[];let r=n[t.event];return Array.isArray(r)?r:[]}function fm(e){return I(e)&&Array.isArray(e.hooks)?e.hooks:[]}function zi(e,t){return(t.matcher===void 0?e:e.flatMap(fm)).filter(r=>kn(r,t.mark))}function Bi(e,t){return zi(Ui(e,t),t).length>0}function vr(e,t){try{let n=JSON.parse(cm(e,"utf8"));return I(n)&&Bi(n,t)}catch{return!1}}function dm(e,t,n){let r=Hi(e,t),s=Array.isArray(r[t.event])?r[t.event]:[];r[t.event]=s;let o=zi(s,t)[0],i=t.entry(n);if(o){let a=yn(s,u=>kn(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 pm(e,t){if(!Bi(e,t))return!1;let n=Hi(e,t),r=Ui(e,t),s=t.matcher===void 0?r.filter(o=>!kn(o,t.mark)):r.map(o=>I(o)&&Array.isArray(o.hooks)?{...o,hooks:o.hooks.filter(i=>!kn(i,t.mark))}:o).filter(o=>!I(o)||!Array.isArray(o.hooks)||o.hooks.length>0);return s.length?n[t.event]=s:delete n[t.event],!0}async function Sr(e,t,n){let r=await we(e);if(!r||t.prepare&&!t.prepare(r))return"error";let s=dm(r,t,n);return s==="present"||await ve(e,r)?s:"error"}async function bn(e,t){if(!um(e))return"absent";let n=await we(e);return n?pm(n,t)?await ve(e,n)?"removed":"error":"absent":"error"}function le(){return hm.homedir()}function Vi(e){return e.version===void 0&&(e.version=1),e.version===1}function gm(e,t,n){return Promise.all(e.map(r=>Sr(r,t,n))).then(r=>r.includes("error")?"error":r.includes("updated")?"updated":r.includes("added")?"added":"present")}function ym(e,t){return Promise.all(e.map(n=>bn(n,t))).then(n=>n.includes("error")?"error":n.includes("removed")?"removed":"absent")}function Je(e,t){return{...e,installed:()=>e.files().some(n=>vr(n,t)),ensure:n=>gm(e.files(),t,n),remove:()=>ym(e.files(),t)}}var km={mark:"tkr-copilot-hook",event:"PreToolUse",nested:!0,entry:e=>({type:"command",command:e,bash:e,powershell:e,timeout:10,timeoutSec:10}),prepare:Vi};function bm(){return M(process.env.COPILOT_HOME||M(le(),".copilot"),"hooks","tokmizer.json")}var _m={mark:"tkr-trae-hook",event:"PreToolUse",nested:!0,matcher:"RunCommand",entry:e=>({type:"command",command:e,timeout:30}),prepare:Vi};function xm(){let e=[M(le(),".trae","hooks.json")];return Tr(M(le(),".trae-cn"))&&e.push(M(le(),".trae-cn","hooks.json")),e}var wm={mark:"tkr-qwen-hook",event:"PreToolUse",nested:!0,matcher:"run_shell_command",entry:e=>({name:"tokmizer",type:"command",command:e,timeout:10})};function vm(){return M(process.env.QWEN_HOME||M(le(),".qwen"),"settings.json")}var Sm={mark:"tkr-crush-hook",event:"PreToolUse",nested:!0,entry:e=>({name:"tokmizer",matcher:"^bash$",command:e,timeout:10})};function Em(){return M(process.env.XDG_CONFIG_HOME||M(le(),".config"),"crush","crush.json")}var Tm={mark:"tkr-junie-hook",event:"PreToolUse",nested:!0,matcher:"^Bash$",entry:e=>({type:"command",command:e,timeout:10})};function Rm(){return M(le(),".junie","config.json")}function Am(e){return e.hooks===void 0&&(e.hooks={}),I(e.hooks)?(e.hooks.enabled===void 0&&(e.hooks.enabled=!0),e.hooks.events===void 0||I(e.hooks.events)):!1}var $m={mark:"tkr-zcode-hook",event:"PreToolUse",nested:!0,path:["hooks","events"],matcher:"Bash",entry:e=>({type:"command",command:e,timeoutMs:1e4}),prepare:Am};function Cm(){return M(le(),".zcode","cli","config.json")}var Om={mark:"tkr-grok-hook",event:"PreToolUse",nested:!0,matcher:"Bash",entry:e=>({type:"command",command:e,timeout:10})};function Im(){return M(le(),".grok","hooks","tokmizer.json")}var Nm="tkr-droid-hook",Rr={mark:Nm,event:"PreToolUse",nested:!1,matcher:"Execute",entry:e=>({type:"command",command:e,timeout:10})},Pm={...Rr,nested:!0};function Er(){return M(le(),".factory")}function _n(){return[{file:M(Er(),"hooks.json"),spec:Rr},{file:M(Er(),"hooks","hooks.json"),spec:Rr},{file:M(Er(),"settings.json"),spec:Pm}]}function Ji(e){try{let t=JSON.parse(mm(e,"utf8"));return I(t)?t:null}catch{return null}}function Zi(e,t){let n=t?e?.hooks:e;return I(n)&&Array.isArray(n.PreToolUse)&&n.PreToolUse.length>0}function Gi(){let[e,t,n]=_n(),r=Tr(e.file)?e:Tr(t.file)?t:null;return r&&Zi(Ji(r.file),!1)?r:Zi(Ji(n.file),!0)?n:r??e}var Dm={id:"droid",label:"Factory Droid",setup:"tkr setup-droid",bin:"tkr-droid-hook",restart:"Restart Droid, then check it with /hooks.",files:()=>[Gi().file],installed:()=>_n().some(e=>vr(e.file,e.spec)),ensure:async e=>{let t=Gi(),n=await Sr(t.file,t.spec,e);return n==="error"||await Promise.all(_n().filter(r=>r.file!==t.file).map(r=>bn(r.file,r.spec))),n},remove:async()=>{let e=await Promise.all(_n().map(t=>bn(t.file,t.spec)));return e.includes("error")?"error":e.includes("removed")?"removed":"absent"}},Wi=[Je({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:()=>[bm()]},km),Dm,Je({id:"trae",label:"Trae",setup:"tkr setup-trae",bin:"tkr-trae-hook",restart:"Restart Trae so it loads the new hook.",files:xm},_m),Je({id:"qwen-code",label:"Qwen Code",setup:"tkr setup-qwen",bin:"tkr-qwen-hook",restart:"Restart Qwen Code, then check it with /hooks.",files:()=>[vm()]},wm),Je({id:"crush",label:"Crush",setup:"tkr setup-crush",bin:"tkr-crush-hook",restart:"Restart Crush so it loads the new hook.",files:()=>[Em()]},Sm),Je({id:"junie",label:"Junie CLI",setup:"tkr setup-junie",bin:"tkr-junie-hook",restart:"Restart Junie CLI so it loads the new hook.",files:()=>[Rm()]},Tm),Je({id:"zcode",label:"ZCode",setup:"tkr setup-zcode",bin:"tkr-zcode-hook",restart:"Restart ZCode so it loads the new hook.",files:()=>[Cm()]},$m),Je({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:()=>[Im()]},Om)];var Fm=[{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:[]}],nv=[...Fm.map(e=>e.host),"shell"];var rv={cursor:{installed:xi,setup:"tkr setup-cursor"},"gemini-cli":{installed:vi,setup:"tkr setup-gemini"},...Object.fromEntries(Li.map(e=>[e.host,{installed:()=>Mi(e),setup:`tkr ${e.command}`}])),...Object.fromEntries(Wi.map(e=>[e.id,{installed:e.installed,setup:e.setup}]))};function Ki(e){return null}import{createConnection as Ym}from"node:net";import{spawn as qm}from"node:child_process";import{existsSync as na,openSync as Or,closeSync as ea,unlinkSync as Nr,writeFileSync as Pr,mkdirSync as Dr,readFileSync as Xm,appendFileSync as Qm,rmSync as eh,statSync as th}from"node:fs";import{dirname as nh,join as Fr}from"node:path";import{fileURLToPath as rh}from"node:url";var Lm=g.object({id:g.string().min(1).max(64),op:g.literal("filter"),cmd:g.string().min(1).max(2048),plan:g.enum(["trial","smart","pro"]),allowed:g.array(g.string().min(1).max(64)).max(512).optional(),installId:g.string().min(1).max(64).optional()}),Mm=g.object({id:g.string().min(1).max(64),op:g.literal("ping")}),jm=g.object({id:g.string().min(1).max(64),op:g.literal("shutdown"),installId:g.string().min(1).max(64)}),Hm=g.object({id:g.string().min(1).max(64),op:g.literal("reload"),installId:g.string().min(1).max(64).optional()}),av=g.discriminatedUnion("op",[Lm,Mm,jm,Hm]),lv=g.object({id:g.string(),ok:g.literal(!0),data:g.unknown()}),uv=g.object({id:g.string(),ok:g.literal(!1),err:g.string(),retryAfterMs:g.number().int().nonnegative().optional()}),Yi=g.object({filter:_e.nullable(),cacheHit:g.boolean().optional()}),xn=`
92
- `,cv=64*1024;function Ar(e){return JSON.stringify(e)+xn}function*qi(e){let t=0;for(;;){let n=e.indexOf(xn,t);if(n<0)return;yield e.slice(t,n),t=n+1}}function Ft(){return`${process.pid}-${Date.now()}-${Math.random().toString(36).slice(2,8)}`}import Um from"node:os";import{join as Lt}from"node:path";import{existsSync as zm,statSync as Bm,lstatSync as Xi,unlinkSync as Jm,mkdirSync as Zm,chmodSync as Gm}from"node:fs";import{createHash as Vm}from"node:crypto";var $r=100;function Wm(e){let t=Vm("sha256").update($()).digest("hex").slice(0,8),n=Lt(Um.tmpdir(),`tkr-${e}-${t}`),r=Lt(n,"d.sock");if(Buffer.byteLength(r)>$r)throw new Error("Temporary directory path is too long for IPC");return Qi(n,e),r}function Km(e,t){try{let n=Xi(e);return n.isDirectory()&&n.uid===t&&(n.mode&63)===0}catch{return!1}}function Qi(e,t){Zm(e,{recursive:!0,mode:448});let n=Xi(e);if(!n.isDirectory()||n.uid!==t)throw new Error("Unsafe IPC directory");Gm(e,448)}function Mt(){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&&Km(t,e)){let s=Lt(t,`tokmizer-${e}.sock`);if(Buffer.byteLength(s)<=$r)return{path:s,isPipe:!1}}let n=Lt($(),"run"),r=Lt(n,"daemon.sock");return Buffer.byteLength(r)>$r?{path:Wm(e),isPipe:!1}:(Qi(n,e),{path:r,isPipe:!1})}async function Cr(){let{path:e,isPipe:t}=Mt();if(t||!zm(e))return;try{if(!Bm(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{Jm(e)}catch{}}var yv=5*6e4;var ra=500,sh=3e3,ta=1,oh=6e4,ih=256*1024;function Lr(){return Fr($(),"daemon.spawn.fail")}function Mr(){return Fr($(),"daemon.log")}function ah(){try{let e=Number(Xm(Lr(),"utf8"));return Number.isFinite(e)&&Date.now()-e<oh}catch{return!1}}function lh(e){try{Dr($(),{recursive:!0});let t=Mr();try{th(t).size>ih&&Nr(t)}catch{}Qm(t,`${new Date().toISOString()} ${e}
93
- `)}catch{}}function uh(e){try{Dr($(),{recursive:!0}),Pr(Lr(),String(Date.now()))}catch{}lh(`spawn failed: ${e.message}`)}function ch(){try{eh(Lr(),{force:!0})}catch{}}async function wn(e,t){return new Promise((n,r)=>{let s=Ym(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 fh(){return process.env.TOKMIZER_DAEMON_BIN?process.env.TOKMIZER_DAEMON_BIN:rh(new URL("../bin/tkr-daemon.js",import.meta.url))}async function Ir(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 wn(e,75)).destroy(),!0}catch{}else if(na(e))return!0;await new Promise(o=>setTimeout(o,75))}return!1}async function dh(e){let t=fh();if(!Be()&&!na(t))throw new Error(`tkr-daemon binary not found at ${t}`);let{path:n}=Mt(),r=process.platform==="win32"?$():nh(n);try{Dr(r,{recursive:!0})}catch{}let s=Fr(r,"daemon.spawn.lock"),o=null;try{o=Or(s,"wx"),Pr(o,String(process.pid))}catch(i){if(i.code==="EEXIST"){if(await Ir(n,5e3))return;try{Nr(s)}catch{}try{o=Or(s,"wx"),Pr(o,String(process.pid))}catch(l){if(l.code==="EEXIST"){await Ir(n,5e3);return}throw l}}else throw i}try{let i=null;try{i=Or(Mr(),"a")}catch{}let[a,...l]=pr(t);if(qm(a,l,{detached:!0,stdio:["ignore","ignore",i??"ignore"],env:{...process.env,TOKMIZER_DAEMON_INSTALL_ID:e}}).unref(),i!==null)try{ea(i)}catch{}if(!await Ir(n,3e3))throw new Error("tkr-daemon failed to bind socket within 3s")}finally{if(o!==null){try{ea(o)}catch{}try{Nr(s)}catch{}}}}async function ph(e={}){let{path:t}=e.socketPath?{path:e.socketPath}:Mt(),n=await cr();try{let r=await wn(t,ra);r.write(Ar({id:Ft(),op:"shutdown",installId:n})),await new Promise(s=>setTimeout(s,150));try{r.destroy()}catch{}return!0}catch{return!1}}async function mh(e,t){let n=Date.now()+t;for(;Date.now()<n;){try{(await wn(e,250)).destroy()}catch{return!0}await new Promise(r=>setTimeout(r,100))}return!1}async function jr(e={}){let{path:t}=e.socketPath?{path:e.socketPath}:Mt(),n=await cr(),r=null,s=0,o=!1;for(;s<=ta;)try{r=await wn(t,ra),ch();break}catch{if(s+=1,s>ta)throw new Error(`tkr-daemon unreachable at ${t}`);if(ah())throw new Error(`tkr-daemon spawn on cooldown (see ${Mr()})`);await Cr();try{await dh(n),o=!0}catch(c){throw uh(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]===xn&&(f=p);if(f<0)return;let d=[];for(let p of qi(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),_=i.get(h.id);if(!_)continue;clearTimeout(_.timer),i.delete(h.id),_.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})`))},sh);i.set(c.id,{resolve:f,reject:d,timer:p}),r.write(Ar(c))})}let u={filter:async(c,f,d)=>{let p=await l({id:Ft(),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=Yi.safeParse(p.data);return h.success?h.data.filter:null},ping:async()=>{let c=await l({id:Ft(),op:"ping"});if(!c.ok)throw new Error(c.err);return c.data},reload:async()=>{let c=await l({id:Ft(),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&&Ro(Rt,f.version))throw new Error(`newer daemon ${f.version} already running`);c=f.version!==Rt}catch(f){throw u.close(),f}if(c){try{await ph(e.socketPath?{socketPath:e.socketPath}:{})}catch{}u.close();let f=await mh(t,2e3);if(await Cr(),!f)throw new Error("stale daemon still running after shutdown request");return jr({...e,skipVersionCheck:!0})}}return u}var lt=null,jt=null;async function hh(){if(lt)return lt;if(jt)return jt;let e=jr().then(t=>{if(jt===e)return lt=t,t;try{t.close()}catch{}return null}).catch(()=>null);return jt=e,e}var Hr=null,Ur=!1;async function gh(){return Ur||(Ur=!0,Hr=await Oo()??cn()),Hr}async function sa(e,t,n){let r=await gh();if(!r)return null;let s=r.selectFor(e,t,n?[...n]:void 0);return!s||n&&!n.has(Y(s.slug))?null:s}function yh(e){return e?{...e,matchRegex:new RegExp(e.match_command)}:null}function oa(e){lr(async(t,n)=>{let r=e==="free"?"trial":e,s=n??fn(void 0),o=await hh();if(!o)return sa(t,r,s);try{let i=await o.filter(t,r,s?[...s]:void 0);return!i||s&&!s.has(Y(i.slug))?null:yh(i)}catch{return sa(t,r,s)}})}function ia(){if(lr(null),lt)try{lt.close()}catch{}lt=null,jt=null,Hr=null,Ur=!1}import{readFileSync as kh}from"node:fs";import{join as bh}from"node:path";function aa(){try{return kh(bh($(),"yolo-mode"),"utf8")==="on"}catch{return!1}}import{appendFileSync as Sh,chmodSync as Eh,mkdirSync as Th,existsSync as Rh,readFileSync as Zv,rmSync as Gv}from"node:fs";import{dirname as Ah,join as $h}from"node:path";import{readFileSync as _h,renameSync as xh,statSync as wh,writeFileSync as vh}from"node:fs";function la(e,t,n){try{if(wh(e).size<=t)return;let r=_h(e,"utf8").split(`
94
- `).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}`;vh(i,s.length?`${s.join(`
90
+ ${r}`:r;return await Ci(t,a)?o.length?"updated":"added":"error"}async function Pi(){let e=Nt();if(!_r(e))return"absent";let t;try{t=await Ti(e,"utf8")}catch{return"error"}let n=xr(t);if(!n.some(Pt))return"absent";let r=n.filter(o=>!Pt(o)).join("").trimEnd(),s=r?`${r}
91
+ `:"";return await Ci(e,s)?"removed":"error"}function Dt(){return br(Ai.homedir(),".gemini","config","hooks.json")}function fm(e){return{enabled:!0,PreToolUse:[{matcher:"run_command",hooks:[{type:"command",command:e,timeout:10}]}]}}function Ni(){try{let e=JSON.parse(Ri(Dt(),"utf8"));return I(e)&&I(e[It])}catch{return!1}}async function Di(e){let t=Dt(),n=await we(t);if(!n)return"error";let r=fm(e),s=n[It];return s!==void 0&&JSON.stringify(s)===JSON.stringify(r)?"present":(n[It]=r,await ve(t,n)?s===void 0?"added":"updated":"error")}async function Fi(){let e=Dt();if(!_r(e))return"absent";let t=await we(e);return t?It in t?(delete t[It],await ve(e,t)?"removed":"error"):"absent":"error"}var Ft=()=>pm.homedir(),wr=()=>process.env.XDG_CONFIG_HOME||X(Ft(),".config"),Li=[{host:"opencode",label:"OpenCode",command:"setup-opencode",kind:"shim",files:()=>[{template:"opencode.js",target:X(wr(),"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:X(wr(),"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:X(wr(),"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:Nt,installed:Oi,ensure:Ii,remove:Pi,next:"Restart Vibe so it reads hooks.toml."},{host:"antigravity",label:"Antigravity",command:"setup-antigravity",kind:"hook",file:Dt,installed:Ni,ensure:Di,remove:Fi,next:"Restart Antigravity, then check it with /hooks."},{host:"openclaw",label:"OpenClaw",command:"setup-openclaw",kind:"shim",files:()=>{let e=X(Ft(),".openclaw","extensions","tokmizer");return["index.js","openclaw.plugin.json","package.json"].map(t=>({template:`openclaw/${t}`,target:X(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:X(process.env.PI_CODING_AGENT_DIR||X(Ft(),".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:X(Ft(),".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=X(process.env.HERMES_HOME||X(Ft(),".hermes"),"plugins","tokmizer");return["__init__.py","plugin.yaml"].map(t=>({template:`hermes/${t}`,target:X(e,t)}))},next:"Run: hermes plugins enable tokmizer, then restart Hermes (needs Hermes v2026.8.16 or newer)."}];function Mi(e){return e.kind==="hook"?e.installed():Si(e.files()[0].target)}import{existsSync as Tr,readFileSync as bm}from"node:fs";import{join as j}from"node:path";import _m from"node:os";import{existsSync as mm,readFileSync as hm}from"node:fs";function kn(e,t){return I(e)&&lt(e.command,t)}function ji(e){return e.path??(e.nested?["hooks"]:[])}function Hi(e,t){let n=e;for(let r of ji(t))I(n[r])||(n[r]={}),n=n[r];return n}function Ui(e,t){let n=e;for(let s of ji(t))n=I(n)?n[s]:void 0;if(!I(n))return[];let r=n[t.event];return Array.isArray(r)?r:[]}function gm(e){return I(e)&&Array.isArray(e.hooks)?e.hooks:[]}function Bi(e,t){return(t.matcher===void 0?e:e.flatMap(gm)).filter(r=>kn(r,t.mark))}function zi(e,t){return Bi(Ui(e,t),t).length>0}function vr(e,t){try{let n=JSON.parse(hm(e,"utf8"));return I(n)&&zi(n,t)}catch{return!1}}function ym(e,t,n){let r=Hi(e,t),s=Array.isArray(r[t.event])?r[t.event]:[];r[t.event]=s;let o=Bi(s,t)[0],i=t.entry(n);if(o){let a=yn(s,u=>kn(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 km(e,t){if(!zi(e,t))return!1;let n=Hi(e,t),r=Ui(e,t),s=t.matcher===void 0?r.filter(o=>!kn(o,t.mark)):r.map(o=>I(o)&&Array.isArray(o.hooks)?{...o,hooks:o.hooks.filter(i=>!kn(i,t.mark))}:o).filter(o=>!I(o)||!Array.isArray(o.hooks)||o.hooks.length>0);return s.length?n[t.event]=s:delete n[t.event],!0}async function Sr(e,t,n){let r=await we(e);if(!r||t.prepare&&!t.prepare(r))return"error";let s=ym(r,t,n);return s==="present"||await ve(e,r)?s:"error"}async function bn(e,t){if(!mm(e))return"absent";let n=await we(e);return n?km(n,t)?await ve(e,n)?"removed":"error":"absent":"error"}function ue(){return _m.homedir()}function Vi(e){return e.version===void 0&&(e.version=1),e.version===1}function xm(e,t,n){return Promise.all(e.map(r=>Sr(r,t,n))).then(r=>r.includes("error")?"error":r.includes("updated")?"updated":r.includes("added")?"added":"present")}function wm(e,t){return Promise.all(e.map(n=>bn(n,t))).then(n=>n.includes("error")?"error":n.includes("removed")?"removed":"absent")}function Ge(e,t){return{...e,installed:()=>e.files().some(n=>vr(n,t)),ensure:n=>xm(e.files(),t,n),remove:()=>wm(e.files(),t)}}var vm={mark:"tkr-copilot-hook",event:"PreToolUse",nested:!0,entry:e=>({type:"command",command:e,bash:e,powershell:e,timeout:10,timeoutSec:10}),prepare:Vi};function Sm(){return j(process.env.COPILOT_HOME||j(ue(),".copilot"),"hooks","tokmizer.json")}var Em={mark:"tkr-trae-hook",event:"PreToolUse",nested:!0,matcher:"RunCommand",entry:e=>({type:"command",command:e,timeout:30}),prepare:Vi};function Tm(){let e=[j(ue(),".trae","hooks.json")];return Tr(j(ue(),".trae-cn"))&&e.push(j(ue(),".trae-cn","hooks.json")),e}var Rm={mark:"tkr-qwen-hook",event:"PreToolUse",nested:!0,matcher:"run_shell_command",entry:e=>({name:"tokmizer",type:"command",command:e,timeout:10})};function Am(){return j(process.env.QWEN_HOME||j(ue(),".qwen"),"settings.json")}var $m={mark:"tkr-crush-hook",event:"PreToolUse",nested:!0,entry:e=>({name:"tokmizer",matcher:"^bash$",command:e,timeout:10})};function Cm(){return j(process.env.XDG_CONFIG_HOME||j(ue(),".config"),"crush","crush.json")}var Om={mark:"tkr-junie-hook",event:"PreToolUse",nested:!0,matcher:"^Bash$",entry:e=>({type:"command",command:e,timeout:10})};function Im(){return j(ue(),".junie","config.json")}function Pm(e){return e.hooks===void 0&&(e.hooks={}),I(e.hooks)?(e.hooks.enabled===void 0&&(e.hooks.enabled=!0),e.hooks.events===void 0||I(e.hooks.events)):!1}var Nm={mark:"tkr-zcode-hook",event:"PreToolUse",nested:!0,path:["hooks","events"],matcher:"Bash",entry:e=>({type:"command",command:e,timeoutMs:1e4}),prepare:Pm};function Dm(){return j(ue(),".zcode","cli","config.json")}var Fm={mark:"tkr-grok-hook",event:"PreToolUse",nested:!0,matcher:"Bash",entry:e=>({type:"command",command:e,timeout:10})};function Lm(){return j(ue(),".grok","hooks","tokmizer.json")}var Mm="tkr-droid-hook",Rr={mark:Mm,event:"PreToolUse",nested:!1,matcher:"Execute",entry:e=>({type:"command",command:e,timeout:10})},jm={...Rr,nested:!0};function Er(){return j(ue(),".factory")}function _n(){return[{file:j(Er(),"hooks.json"),spec:Rr},{file:j(Er(),"hooks","hooks.json"),spec:Rr},{file:j(Er(),"settings.json"),spec:jm}]}function Ji(e){try{let t=JSON.parse(bm(e,"utf8"));return I(t)?t:null}catch{return null}}function Zi(e,t){let n=t?e?.hooks:e;return I(n)&&Array.isArray(n.PreToolUse)&&n.PreToolUse.length>0}function Gi(){let[e,t,n]=_n(),r=Tr(e.file)?e:Tr(t.file)?t:null;return r&&Zi(Ji(r.file),!1)?r:Zi(Ji(n.file),!0)?n:r??e}var Hm={id:"droid",label:"Factory Droid",setup:"tkr setup-droid",bin:"tkr-droid-hook",restart:"Restart Droid, then check it with /hooks.",files:()=>[Gi().file],installed:()=>_n().some(e=>vr(e.file,e.spec)),ensure:async e=>{let t=Gi(),n=await Sr(t.file,t.spec,e);return n==="error"||await Promise.all(_n().filter(r=>r.file!==t.file).map(r=>bn(r.file,r.spec))),n},remove:async()=>{let e=await Promise.all(_n().map(t=>bn(t.file,t.spec)));return e.includes("error")?"error":e.includes("removed")?"removed":"absent"}},Wi=[Ge({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:()=>[Sm()]},vm),Hm,Ge({id:"trae",label:"Trae",setup:"tkr setup-trae",bin:"tkr-trae-hook",restart:"Restart Trae so it loads the new hook.",files:Tm},Em),Ge({id:"qwen-code",label:"Qwen Code",setup:"tkr setup-qwen",bin:"tkr-qwen-hook",restart:"Restart Qwen Code, then check it with /hooks.",files:()=>[Am()]},Rm),Ge({id:"crush",label:"Crush",setup:"tkr setup-crush",bin:"tkr-crush-hook",restart:"Restart Crush so it loads the new hook.",files:()=>[Cm()]},$m),Ge({id:"junie",label:"Junie CLI",setup:"tkr setup-junie",bin:"tkr-junie-hook",restart:"Restart Junie CLI so it loads the new hook.",files:()=>[Im()]},Om),Ge({id:"zcode",label:"ZCode",setup:"tkr setup-zcode",bin:"tkr-zcode-hook",restart:"Restart ZCode so it loads the new hook.",files:()=>[Dm()]},Nm),Ge({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:()=>[Lm()]},Fm)];var Um=[{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:[]}],uv=[...Um.map(e=>e.host),"shell"];var cv={cursor:{installed:xi,setup:"tkr setup-cursor"},"gemini-cli":{installed:vi,setup:"tkr setup-gemini"},...Object.fromEntries(Li.map(e=>[e.host,{installed:()=>Mi(e),setup:`tkr ${e.command}`}])),...Object.fromEntries(Wi.map(e=>[e.id,{installed:e.installed,setup:e.setup}]))};function Ki(e){return null}import{createConnection as th}from"node:net";import{spawn as nh}from"node:child_process";import{existsSync as na,openSync as Or,closeSync as ea,unlinkSync as Pr,writeFileSync as Nr,mkdirSync as Dr,readFileSync as rh,appendFileSync as sh,rmSync as oh,statSync as ih}from"node:fs";import{dirname as ah,join as Fr}from"node:path";import{fileURLToPath as lh}from"node:url";var Bm=g.object({id:g.string().min(1).max(64),op:g.literal("filter"),cmd:g.string().min(1).max(2048),plan:g.enum(["trial","smart","pro"]),allowed:g.array(g.string().min(1).max(64)).max(512).optional(),installId:g.string().min(1).max(64).optional()}),zm=g.object({id:g.string().min(1).max(64),op:g.literal("ping")}),Jm=g.object({id:g.string().min(1).max(64),op:g.literal("shutdown"),installId:g.string().min(1).max(64)}),Zm=g.object({id:g.string().min(1).max(64),op:g.literal("reload"),installId:g.string().min(1).max(64).optional()}),mv=g.discriminatedUnion("op",[Bm,zm,Jm,Zm]),hv=g.object({id:g.string(),ok:g.literal(!0),data:g.unknown()}),gv=g.object({id:g.string(),ok:g.literal(!1),err:g.string(),retryAfterMs:g.number().int().nonnegative().optional()}),Yi=g.object({filter:_e.nullable(),cacheHit:g.boolean().optional()}),xn=`
92
+ `,yv=64*1024;function Ar(e){return JSON.stringify(e)+xn}function*qi(e){let t=0;for(;;){let n=e.indexOf(xn,t);if(n<0)return;yield e.slice(t,n),t=n+1}}function Lt(){return`${process.pid}-${Date.now()}-${Math.random().toString(36).slice(2,8)}`}import Gm from"node:os";import{join as Mt}from"node:path";import{existsSync as Vm,statSync as Wm,lstatSync as Xi,unlinkSync as Km,mkdirSync as Ym,chmodSync as qm}from"node:fs";import{createHash as Xm}from"node:crypto";var $r=100;function Qm(e){let t=Xm("sha256").update($()).digest("hex").slice(0,8),n=Mt(Gm.tmpdir(),`tkr-${e}-${t}`),r=Mt(n,"d.sock");if(Buffer.byteLength(r)>$r)throw new Error("Temporary directory path is too long for IPC");return Qi(n,e),r}function eh(e,t){try{let n=Xi(e);return n.isDirectory()&&n.uid===t&&(n.mode&63)===0}catch{return!1}}function Qi(e,t){Ym(e,{recursive:!0,mode:448});let n=Xi(e);if(!n.isDirectory()||n.uid!==t)throw new Error("Unsafe IPC directory");qm(e,448)}function jt(){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&&eh(t,e)){let s=Mt(t,`tokmizer-${e}.sock`);if(Buffer.byteLength(s)<=$r)return{path:s,isPipe:!1}}let n=Mt($(),"run"),r=Mt(n,"daemon.sock");return Buffer.byteLength(r)>$r?{path:Qm(e),isPipe:!1}:(Qi(n,e),{path:r,isPipe:!1})}async function Cr(){let{path:e,isPipe:t}=jt();if(t||!Vm(e))return;try{if(!Wm(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{Km(e)}catch{}}var Sv=5*6e4;var ra=500,uh=3e3,ta=1,ch=6e4,dh=256*1024;function Lr(){return Fr($(),"daemon.spawn.fail")}function Mr(){return Fr($(),"daemon.log")}function fh(){try{let e=Number(rh(Lr(),"utf8"));return Number.isFinite(e)&&Date.now()-e<ch}catch{return!1}}function ph(e){try{Dr($(),{recursive:!0});let t=Mr();try{ih(t).size>dh&&Pr(t)}catch{}sh(t,`${new Date().toISOString()} ${e}
93
+ `)}catch{}}function mh(e){try{Dr($(),{recursive:!0}),Nr(Lr(),String(Date.now()))}catch{}ph(`spawn failed: ${e.message}`)}function hh(){try{oh(Lr(),{force:!0})}catch{}}async function wn(e,t){return new Promise((n,r)=>{let s=th(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 gh(){return process.env.TOKMIZER_DAEMON_BIN?process.env.TOKMIZER_DAEMON_BIN:lh(new URL("../bin/tkr-daemon.js",import.meta.url))}async function Ir(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 wn(e,75)).destroy(),!0}catch{}else if(na(e))return!0;await new Promise(o=>setTimeout(o,75))}return!1}async function yh(e){let t=gh();if(!Ze()&&!na(t))throw new Error(`tkr-daemon binary not found at ${t}`);let{path:n}=jt(),r=process.platform==="win32"?$():ah(n);try{Dr(r,{recursive:!0})}catch{}let s=Fr(r,"daemon.spawn.lock"),o=null;try{o=Or(s,"wx"),Nr(o,String(process.pid))}catch(i){if(i.code==="EEXIST"){if(await Ir(n,5e3))return;try{Pr(s)}catch{}try{o=Or(s,"wx"),Nr(o,String(process.pid))}catch(l){if(l.code==="EEXIST"){await Ir(n,5e3);return}throw l}}else throw i}try{let i=null;try{i=Or(Mr(),"a")}catch{}let[a,...l]=pr(t);if(nh(a,l,{detached:!0,stdio:["ignore","ignore",i??"ignore"],env:{...process.env,TOKMIZER_DAEMON_INSTALL_ID:e}}).unref(),i!==null)try{ea(i)}catch{}if(!await Ir(n,3e3))throw new Error("tkr-daemon failed to bind socket within 3s")}finally{if(o!==null){try{ea(o)}catch{}try{Pr(s)}catch{}}}}async function kh(e={}){let{path:t}=e.socketPath?{path:e.socketPath}:jt(),n=await cr();try{let r=await wn(t,ra);r.write(Ar({id:Lt(),op:"shutdown",installId:n})),await new Promise(s=>setTimeout(s,150));try{r.destroy()}catch{}return!0}catch{return!1}}async function bh(e,t){let n=Date.now()+t;for(;Date.now()<n;){try{(await wn(e,250)).destroy()}catch{return!0}await new Promise(r=>setTimeout(r,100))}return!1}async function jr(e={}){let{path:t}=e.socketPath?{path:e.socketPath}:jt(),n=await cr(),r=null,s=0,o=!1;for(;s<=ta;)try{r=await wn(t,ra),hh();break}catch{if(s+=1,s>ta)throw new Error(`tkr-daemon unreachable at ${t}`);if(fh())throw new Error(`tkr-daemon spawn on cooldown (see ${Mr()})`);await Cr();try{await yh(n),o=!0}catch(c){throw mh(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 d=-1;for(let p=0;p<a.length;p++)a[p]===xn&&(d=p);if(d<0)return;let f=[];for(let p of qi(a.slice(0,d+1)))f.push(p);a=a.slice(d+1);for(let p of f)if(p)try{let h=JSON.parse(p),x=i.get(h.id);if(!x)continue;clearTimeout(x.timer),i.delete(h.id),x.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((d,f)=>{if(r.destroyed||!r.writable){f(new Error("daemon socket closed"));return}let p=setTimeout(()=>{i.delete(c.id),f(new Error(`daemon request timeout (${c.op})`))},uh);i.set(c.id,{resolve:d,reject:f,timer:p}),r.write(Ar(c))})}let u={filter:async(c,d,f)=>{let p=await l({id:Lt(),op:"filter",cmd:c.slice(0,2048),plan:d,...f&&f.length>0?{allowed:f.slice(0,512)}:{},installId:n});if(!p.ok)return null;let h=Yi.safeParse(p.data);return h.success?h.data.filter:null},ping:async()=>{let c=await l({id:Lt(),op:"ping"});if(!c.ok)throw new Error(c.err);return c.data},reload:async()=>{let c=await l({id:Lt(),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 d=await u.ping();if(d.version&&Ro(At,d.version))throw new Error(`newer daemon ${d.version} already running`);c=d.version!==At}catch(d){throw u.close(),d}if(c){try{await kh(e.socketPath?{socketPath:e.socketPath}:{})}catch{}u.close();let d=await bh(t,2e3);if(await Cr(),!d)throw new Error("stale daemon still running after shutdown request");return jr({...e,skipVersionCheck:!0})}}return u}var ut=null,Ht=null;async function _h(){if(ut)return ut;if(Ht)return Ht;let e=jr().then(t=>{if(Ht===e)return ut=t,t;try{t.close()}catch{}return null}).catch(()=>null);return Ht=e,e}var Hr=null,Ur=!1;async function xh(){return Ur||(Ur=!0,Hr=await Oo()??cn()),Hr}async function sa(e,t,n){let r=await xh();if(!r)return null;let s=r.selectFor(e,t,n?[...n]:void 0);return!s||n&&!n.has(q(s.slug))?null:s}function wh(e){return e?{...e,matchRegex:new RegExp(e.match_command)}:null}function oa(e){lr(async(t,n)=>{let r=e==="free"?"trial":e,s=n??dn(void 0),o=await _h();if(!o)return sa(t,r,s);try{let i=await o.filter(t,r,s?[...s]:void 0);return!i||s&&!s.has(q(i.slug))?null:wh(i)}catch{return sa(t,r,s)}})}function ia(){if(lr(null),ut)try{ut.close()}catch{}ut=null,Ht=null,Hr=null,Ur=!1}import{readFileSync as vh}from"node:fs";import{join as Sh}from"node:path";function aa(){try{return vh(Sh($(),"yolo-mode"),"utf8")==="on"}catch{return!1}}import{appendFileSync as $h,chmodSync as Ch,mkdirSync as Oh,existsSync as Ih,readFileSync as Xv,rmSync as Qv}from"node:fs";import{dirname as Ph,join as Nh}from"node:path";import{readFileSync as Eh,renameSync as Th,statSync as Rh,writeFileSync as Ah}from"node:fs";function la(e,t,n){try{if(Rh(e).size<=t)return;let r=Eh(e,"utf8").split(`
94
+ `).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}`;Ah(i,s.length?`${s.join(`
95
95
  `)}
96
- `:"",{mode:384}),xh(i,e)}catch{}}var Ch="usage.jsonl";var ua=2*1024*1024;function Oh(){return $h($(),Ch)}function X(e,t,n=Oh()){try{let r=Ah(n);Rh(r)||Th(r,{recursive:!0,mode:448});let s=e.replace(/[^A-Za-z0-9._-]/g,"").slice(0,64)||"unknown";Sh(n,`{"t":${Math.floor(Date.now()/1e3)},"s":"${s}","o":${t?1:0}}
97
- `,{mode:384}),Eh(n,384),la(n,ua,ua/2)}catch{}}import{existsSync as En,readFileSync as Gr,readdirSync as Vr}from"node:fs";import{homedir as ct}from"node:os";import{fileURLToPath as fg}from"node:url";import{dirname as va,join as P,resolve as dg}from"node:path";import{execFileSync as Xh}from"node:child_process";import{mkdirSync as Qh,readFileSync as ma,renameSync as eg,statSync as tg,writeFileSync as ng}from"node:fs";import{join as ha}from"node:path";import{closeSync as Ih,openSync as Nh,readSync as Ph,readdirSync as Dh,readFileSync as Fh,statSync as fa}from"node:fs";import{homedir as Lh}from"node:os";import{isAbsolute as Mh,join as vn,resolve as jh}from"node:path";var Hh=/^[A-Za-z0-9._+@%:,/-]+$/,Uh=new Set(["7f454c46","feedface","feedfacf","cefaedfe","cffaedfe","cafebabe","bebafeca"]),zh=32,Bh=4*1024*1024;function Br(e){let t;try{t=Nh(e,"r");let n=Buffer.alloc(4),r=Ph(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&&Ih(t)}}function Ht(e,t=process.platform){try{let n=fa(e);if(!n.isFile())return!1;if(t==="win32")return!0;if((n.mode&73)===0)return!1;let r=Br(e);return r==="#!"||r!==null&&Uh.has(r)}catch{return!1}}function Jh(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 ut(e,t,n,r=process.platform){if(!Hh.test(e))return!1;let s=r==="win32";if(e.includes("/"))return Ht(jh(t??process.cwd(),e),r);if(!n)return!1;let o=s?Jh(e):[e];for(let i of n.split(s?";":":"))if(!(!i||!Mh(i))){for(let a of o)if(Ht(vn(i,a),r))return!0}return!1}var Zh=/^eval \$'([^\s'()=]+) \(\) /,Gh=/^([^\s'"()=]+) \(\) \{$/,Vh=/^alias -- ([^\s=]+)=(.*)$/,Wh=/^# (?:Shell Options|Aliases|Shopt|Check for |Shadow )/,Kh=/^export PATH=(.*)$/,Yh=/^(?:--colou?r(?:=\S+)?|-G)$/;function ca(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 qh(e,t){let n="";for(let r of e.split(`
98
- `)){let s=Kh.exec(r);if(s&&n!=="# Functions"){let o=ca(s[1].trim());/[$`\\]/.test(o)||t.paths.push(o);continue}if(r.startsWith("# ")&&(n!=="# Functions"||Wh.test(r))){n=r;continue}if(n==="# Functions"){let o=Zh.exec(r)??Gh.exec(r);o&&t.functions.add(o[1])}else if(n==="# Aliases"){let o=Vh.exec(r);o&&t.aliases.set(o[1],ca(o[2].trim()))}}}function zr(e){return e?.code==="ENOENT"}function da(e){let t={functions:new Set,aliases:new Map,paths:[],uncertain:!1},n=vn(e||vn(Lh(),".claude"),"shell-snapshots"),r=[];try{for(let s of Dh(n)){if(!s.startsWith("snapshot-")||!s.endsWith(".sh"))continue;let o=vn(n,s);try{let i=fa(o);i.isFile()&&r.push({path:o,mtime:i.mtimeMs,size:i.size})}catch(i){zr(i)||(t.uncertain=!0)}}}catch(s){return zr(s)||(t.uncertain=!0),t}r=r.sort((s,o)=>o.mtime-s.mtime).slice(0,zh);for(let s of r)try{if(s.size>Bh)throw new Error("snapshot too large");qh(Fh(s.path,"utf8"),t)}catch(o){zr(o)||(t.uncertain=!0)}return t}function pa(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=>Yh.test(s))}var rg="exec-probe.json",sg=6e4;function og(){return ha($(),rg)}function ig(e){try{let t=JSON.parse(ma(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 ag(e,t){try{Qh(ha(e,".."),{recursive:!0,mode:448});let n=`${e}.${process.pid}.tmp`;ng(n,JSON.stringify(t),{mode:384}),eg(n,e)}catch{}}function lg(e){try{return Xh(e,["--native-check"],{encoding:"utf8",timeout:2e3,maxBuffer:1024,stdio:["ignore","pipe","ignore"],windowsHide:!0}).startsWith("tokmizer-native ")}catch{return!1}}function ug(e,t){try{let r=ma(e,"utf8").split(`
99
- `,1)[0].slice(2).trim().split(/\s+/),s=r[0]??"";return s==="/usr/bin/env"?ut(r[1]??"",void 0,t):Ht(s)}catch{return!1}}function cg(e,t,n){try{let r=tg(e);return[e,r.size,r.mtimeMs,r.ino,r.mode,t?n??"":""].join("|")}catch{return`${e}|missing`}}function Jr(e,t=process.platform,n=process.env.PATH,r=og(),s=Date.now()){let o=t!=="win32"&&Br(e)==="#!",i=cg(e,o,n),a=ig(r);if(a?.key===i&&(a.ok||s-a.at<sg))return a.ok;let l=Ht(e,t)&&(o?ug(e,n):lg(e));return ag(r,{key:i,ok:l,at:s,skipped:(a?.skipped??0)+(l?0:1)}),l}var pg=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"]),mg=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"]),ga=new Set(["sh","bash","zsh","dash","ksh","fish","python","python3","python2","node","ruby","perl","php","awk","sed","deno","bun"]),ya="(?:dev|start|serve|watch|preview)",hg=new RegExp(`^(?:\\S*/)?(?:bun\\s+(?:install|i|add|remove|rm|update|outdated|audit|test|build|pm|x)(?:\\s|$)|bun\\s+run\\s+(?!${ya}(?:\\s|$))[A-Za-z0-9:_-]+(?:\\s|$)|deno\\s+(?:test|lint|fmt|check|compile|install|info|doc|bench|outdated)(?:\\s|$)|deno\\s+task\\s+(?!${ya}(?:\\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)`),gg=/(?:^|\s)--watch(?:\s|=|$)/;function yg(e){return hg.test(e)&&!gg.test(e)}var kg=/^((?:\S*\/)?(sh|bash|zsh|dash|ksh|fish)\s+(-[elux]*c[elux]*)\s+)(['"])/,bg=/[()$]|(?:^|[;&|\n]\s*)(?:and|or|not|begin|end|if|else|switch|case|while|for|function|return)(?:\s|;|$)/,Sa=3;function Ea(e){let t=kg.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&&bg.test(a)?null:{script:a,start:s,end:o,quote:r}}var _g=new Set(["cd","export","set","unset","source",".","true",":","pushd","popd"]);function xg(e){return Kr(e).filter(n=>{if(n.kind!=="cmd"||n.unsafe)return!1;let r=Ra(n.text);return r!==""&&!_g.has(r)&&!Wr.test(r)}).length>1}function wg(e,t,n,r,s){if(n>=Sa)return null;let o=Ea(e);if(!o)return null;let{script:i,start:a,end:l,quote:u}=o,c=[],f=Aa(i,t,n+1,r,_=>c.push(_));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=xg(i);if(s)for(let _ of h?[e,...c]:c)s(_);return h?`${t} ${p}`:p}var ka=/(?:^|\s)(?:--follow|-[0-9a-zA-Z]*f[a-zA-Z]*)(?:\s|=|$)/,vg=new Set(["docker","podman","kubectl","nerdctl","docker-compose","stern","flyctl"]);function Sg(e,t){let n=Tn(t);return n==="tail"||n==="journalctl"?ka.test(e):n==="stern"?!0:vg.has(n)?/\blogs?\b/.test(e)&&ka.test(e):!1}var Wr=/^[A-Za-z_][A-Za-z0-9_]*\+?=/,Eg=/^[A-Za-z_][A-Za-z0-9_-]*\s*\(\s*\)/,Tg=/(?:^|[;&|\n({])\s*[A-Za-z_][A-Za-z0-9_-]*\s*\(\s*\)/;function Tn(e){let t=e.lastIndexOf("/");return t===-1?e:e.slice(t+1)}function Ta(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 ba(e){let t=Ta(e);if(!t)return!0;for(let n=0;n<e.length;n++)if(t[n]&&e[n]===">")return!0;return!1}function Kr(e){let t=Ta(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===`
100
- `||a==="|"){i(a,1);continue}}r+=a,s+=1}return o(),n}function Ra(e){return e.trim().split(/\s+/)[0]??""}function te(e,t=process.platform){try{let n=va(fg(import.meta.url)),r=t==="win32",s=e&&e!=="claude-code"&&e!=="codex"&&!r?`TOKMIZER_HOST=${e} `:"";if(r&&(!e||e==="claude-code")){let a=P(n,"..","bin","tkr-exec.exe");if(En(a))return Jr(a,t)?`'${a.replace(/\\/g,"/").replace(/'/g,"'\\''")}'`:null}let o=P(n,"..","bin","tkr-exec");if(!r&&En(o))return Jr(o,t)?`${s}'${o.replace(/'/g,"'\\''")}'`:null;if(Be()){let a=r?process.execPath.replace(/\\/g,"/"):process.execPath;return`${s}'${a.replace(/'/g,"'\\''")}' exec`}let i=P(n,"..","bin","tkr-exec.js");return En(i)?`${s}node '${i.replace(/'/g,"'\\''")}'`:null}catch{return null}}function Rg(e,t="tkr-exec",n=()=>!0,r){return Aa(e,t,0,n,r)}function Aa(e,t,n,r,s){if(e.includes("<<")||Tg.test(e))return e;let o=Kr(e),i=[];for(let a=0;a<o.length;a++){let l=o[a];if(l.kind==="sep"||l.unsafe){i.push(l.text);continue}let u=l.text.trim();if(!u){i.push(l.text);continue}let c=Ra(u),f=o[a+1],d=f?.kind==="sep"&&(f.text==="|"||f.text==="|&"),p=f?.kind==="sep"&&f.text==="&",h=!d&&!p&&!ba(l.text)&&!l.text.includes("<(")&&!l.text.includes(">(")?wg(u,t,n,r,s):null;if(h!==null){i.push(`${l.text.match(/^\s*/)?.[0]??""}${h}${l.text.match(/\s*$/)?.[0]??""}`);continue}if(u===t||u.startsWith(t)&&/^\s/.test(u.slice(t.length))||pg.has(c)||mg.has(c)||(ga.has(c)||ga.has(Tn(c)))&&!yg(u)||Wr.test(c)||c.startsWith("(")||c.startsWith("#")||c.startsWith("<")||c.startsWith(">")||Eg.test(u)||Sg(u,c)||c.endsWith(")")||d||p||ba(l.text)||l.text.includes("<(")||l.text.includes(">(")||c==="node"&&u.includes("tkr-exec.js")||!r(c)){i.push(l.text);continue}let _=l.text.match(/^\s*/)?.[0]??"",k=l.text.match(/\s*$/)?.[0]??"";s?.(u),i.push(`${_}${t} ${u}${k}`)}return i.join("")}var Ag=new Set(["command","workdir","timeout_ms","yield_time_ms","max_output_tokens","shell","login","tty","description"]),$g=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"]),Cg=new Set(["log","diff","show","status","blame","ls-files","rev-parse","describe","shortlog"]),Og={find:/^-(?:delete|exec|execdir|ok|okdir|fprint|fls)/,sort:/^(?:-[^-]*o|--output|--compress-program)/,rg:/^(?:--pre|-[^-]*z|--search-zip)/,yq:/^(?:-[^-]*[is]|--inplace|--split-exp)/,file:/^(?:-C|--compile)/,tree:/^(?:-o|--output|-R$|-H$)/,git:/^(?:--output|--ext-diff|--textconv|-c$|--exec-path|--git-dir|--work-tree)/,eslint:/^--fix/},Sn=["test","run test","run build","run lint","run typecheck"],Ig={npm:new Set(Sn),pnpm:new Set([...Sn,"build","lint","typecheck"]),yarn:new Set([...Sn,"build","lint","typecheck"]),bun:new Set(Sn),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"])},Ng=new Set(["pytest","tsc","vitest","jest","eslint","mypy"]);function $a(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 Kr(e)){if(r.kind==="sep")continue;if(r.unsafe)return!1;let s=n<Sa?Ea(r.text.trim()):null;if(s){if(!$a(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=>Wr.test(u)))return!1;let i=Tn(o[0]);if(i!==o[0])return!1;let a=Og[i];if(a&&o.slice(1).some(u=>a.test(u)))return!1;if((i==="git"?Cg.has(o[1]??""):$g.has(i))||t&&Ng.has(i))continue;let l=t?Ig[i]:void 0;if(!(l&&(l.has(o[1]??"")||o[1]==="run"&&l.has(`run ${o[2]??""}`))))return!1}return!0}function Ca(e,t,n=te(t),r=X,s=An(),o=process.env.PATH){if(!Z(e)||e.tool_name!=="Bash")return null;let i=e.tool_input;if(!Z(i)||i.run_in_background)return null;let a=i.command;if(typeof a!="string"||!a||t==="codex"&&Object.keys(i).some(p=>!Ag.has(p)))return null;let l=typeof e.cwd=="string"&&e.cwd?e.cwd:i.workdir,u=typeof l=="string"&&l?l:void 0,c=typeof e.session_id=="string"&&e.session_id?e.session_id:"unknown",f=typeof e.permission_mode=="string"?e.permission_mode:void 0,d=me(a,{host:t,sessionId:c,cwd:u,claudeDirs:s,pathEnv:o,permissionMode:f},n,r);return d?JSON.stringify({hookSpecificOutput:t==="codex"?{hookEventName:"PreToolUse",permissionDecision:"allow",updatedInput:{...i,command:d}}:{hookEventName:"PreToolUse",updatedInput:{...i,command:d}}}):null}function Pg(e,t){if(!En(e))return"missing";try{let n=Gr(e,"utf8");return JSON.parse(t?Oa(n):n)}catch{return"unreadable"}}function Oa(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]!==`
96
+ `:"",{mode:384}),Th(i,e)}catch{}}var Dh="usage.jsonl";var ua=2*1024*1024;function Fh(){return Nh($(),Dh)}function Q(e,t,n=Fh()){try{let r=Ph(n);Ih(r)||Oh(r,{recursive:!0,mode:448});let s=e.replace(/[^A-Za-z0-9._-]/g,"").slice(0,64)||"unknown";$h(n,`{"t":${Math.floor(Date.now()/1e3)},"s":"${s}","o":${t?1:0}}
97
+ `,{mode:384}),Ch(n,384),la(n,ua,ua/2)}catch{}}import{existsSync as En,readFileSync as Gr,readdirSync as Vr}from"node:fs";import{homedir as dt}from"node:os";import{fileURLToPath as gg}from"node:url";import{dirname as va,join as P,resolve as yg}from"node:path";import{execFileSync as rg}from"node:child_process";import{mkdirSync as sg,readFileSync as ma,renameSync as og,statSync as ig,writeFileSync as ag}from"node:fs";import{join as ha}from"node:path";import{closeSync as Lh,openSync as Mh,readSync as jh,readdirSync as Hh,readFileSync as Uh,statSync as da}from"node:fs";import{homedir as Bh}from"node:os";import{isAbsolute as zh,join as vn,resolve as Jh}from"node:path";var Zh=/^[A-Za-z0-9._+@%:,/-]+$/,Gh=new Set(["7f454c46","feedface","feedfacf","cefaedfe","cffaedfe","cafebabe","bebafeca"]),Vh=32,Wh=4*1024*1024;function zr(e){let t;try{t=Mh(e,"r");let n=Buffer.alloc(4),r=jh(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&&Lh(t)}}function Ut(e,t=process.platform){try{let n=da(e);if(!n.isFile())return!1;if(t==="win32")return!0;if((n.mode&73)===0)return!1;let r=zr(e);return r==="#!"||r!==null&&Gh.has(r)}catch{return!1}}function Kh(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 ct(e,t,n,r=process.platform){if(!Zh.test(e))return!1;let s=r==="win32";if(e.includes("/"))return Ut(Jh(t??process.cwd(),e),r);if(!n)return!1;let o=s?Kh(e):[e];for(let i of n.split(s?";":":"))if(!(!i||!zh(i))){for(let a of o)if(Ut(vn(i,a),r))return!0}return!1}var Yh=/^eval \$'([^\s'()=]+) \(\) /,qh=/^([^\s'"()=]+) \(\) \{$/,Xh=/^alias -- ([^\s=]+)=(.*)$/,Qh=/^# (?:Shell Options|Aliases|Shopt|Check for |Shadow )/,eg=/^export PATH=(.*)$/,tg=/^(?:--colou?r(?:=\S+)?|-G)$/;function ca(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 ng(e,t){let n="";for(let r of e.split(`
98
+ `)){let s=eg.exec(r);if(s&&n!=="# Functions"){let o=ca(s[1].trim());/[$`\\]/.test(o)||t.paths.push(o);continue}if(r.startsWith("# ")&&(n!=="# Functions"||Qh.test(r))){n=r;continue}if(n==="# Functions"){let o=Yh.exec(r)??qh.exec(r);o&&t.functions.add(o[1])}else if(n==="# Aliases"){let o=Xh.exec(r);o&&t.aliases.set(o[1],ca(o[2].trim()))}}}function Br(e){return e?.code==="ENOENT"}function fa(e){let t={functions:new Set,aliases:new Map,paths:[],uncertain:!1},n=vn(e||vn(Bh(),".claude"),"shell-snapshots"),r=[];try{for(let s of Hh(n)){if(!s.startsWith("snapshot-")||!s.endsWith(".sh"))continue;let o=vn(n,s);try{let i=da(o);i.isFile()&&r.push({path:o,mtime:i.mtimeMs,size:i.size})}catch(i){Br(i)||(t.uncertain=!0)}}}catch(s){return Br(s)||(t.uncertain=!0),t}r=r.sort((s,o)=>o.mtime-s.mtime).slice(0,Vh);for(let s of r)try{if(s.size>Wh)throw new Error("snapshot too large");ng(Uh(s.path,"utf8"),t)}catch(o){Br(o)||(t.uncertain=!0)}return t}function pa(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=>tg.test(s))}var lg="exec-probe.json",ug=6e4;function cg(){return ha($(),lg)}function dg(e){try{let t=JSON.parse(ma(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 fg(e,t){try{sg(ha(e,".."),{recursive:!0,mode:448});let n=`${e}.${process.pid}.tmp`;ag(n,JSON.stringify(t),{mode:384}),og(n,e)}catch{}}function pg(e){try{return rg(e,["--native-check"],{encoding:"utf8",timeout:2e3,maxBuffer:1024,stdio:["ignore","pipe","ignore"],windowsHide:!0}).startsWith("tokmizer-native ")}catch{return!1}}function mg(e,t){try{let r=ma(e,"utf8").split(`
99
+ `,1)[0].slice(2).trim().split(/\s+/),s=r[0]??"";return s==="/usr/bin/env"?ct(r[1]??"",void 0,t):Ut(s)}catch{return!1}}function hg(e,t,n){try{let r=ig(e);return[e,r.size,r.mtimeMs,r.ino,r.mode,t?n??"":""].join("|")}catch{return`${e}|missing`}}function Jr(e,t=process.platform,n=process.env.PATH,r=cg(),s=Date.now()){let o=t!=="win32"&&zr(e)==="#!",i=hg(e,o,n),a=dg(r);if(a?.key===i&&(a.ok||s-a.at<ug))return a.ok;let l=Ut(e,t)&&(o?mg(e,n):pg(e));return fg(r,{key:i,ok:l,at:s,skipped:(a?.skipped??0)+(l?0:1)}),l}var kg=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"]),bg=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"]),ga=new Set(["sh","bash","zsh","dash","ksh","fish","python","python3","python2","node","ruby","perl","php","awk","sed","deno","bun"]),ya="(?:dev|start|serve|watch|preview)",_g=new RegExp(`^(?:\\S*/)?(?:bun\\s+(?:install|i|add|remove|rm|update|outdated|audit|test|build|pm|x)(?:\\s|$)|bun\\s+run\\s+(?!${ya}(?:\\s|$))[A-Za-z0-9:_-]+(?:\\s|$)|deno\\s+(?:test|lint|fmt|check|compile|install|info|doc|bench|outdated)(?:\\s|$)|deno\\s+task\\s+(?!${ya}(?:\\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)`),xg=/(?:^|\s)--watch(?:\s|=|$)/;function wg(e){return _g.test(e)&&!xg.test(e)}var vg=/^((?:\S*\/)?(sh|bash|zsh|dash|ksh|fish)\s+(-[elux]*c[elux]*)\s+)(['"])/,Sg=/[()$]|(?:^|[;&|\n]\s*)(?:and|or|not|begin|end|if|else|switch|case|while|for|function|return)(?:\s|;|$)/,Sa=3;function Ea(e){let t=vg.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&&Sg.test(a)?null:{script:a,start:s,end:o,quote:r}}var Eg=new Set(["cd","export","set","unset","source",".","true",":","pushd","popd"]);function Tg(e){return Kr(e).filter(n=>{if(n.kind!=="cmd"||n.unsafe)return!1;let r=Ra(n.text);return r!==""&&!Eg.has(r)&&!Wr.test(r)}).length>1}function Rg(e,t,n,r,s){if(n>=Sa)return null;let o=Ea(e);if(!o)return null;let{script:i,start:a,end:l,quote:u}=o,c=[],d=Aa(i,t,n+1,r,x=>c.push(x));if(d===i||u==='"'&&/["$`]/.test(d))return null;let f=u==="'"?d.replace(/'/g,"'\\''"):d,p=`${e.slice(0,a)}${f}${e.slice(l)}`,h=Tg(i);if(s)for(let x of h?[e,...c]:c)s(x);return h?`${t} ${p}`:p}var ka=/(?:^|\s)(?:--follow|-[0-9a-zA-Z]*f[a-zA-Z]*)(?:\s|=|$)/,Ag=new Set(["docker","podman","kubectl","nerdctl","docker-compose","stern","flyctl"]);function $g(e,t){let n=Tn(t);return n==="tail"||n==="journalctl"?ka.test(e):n==="stern"?!0:Ag.has(n)?/\blogs?\b/.test(e)&&ka.test(e):!1}var Wr=/^[A-Za-z_][A-Za-z0-9_]*\+?=/,Cg=/^[A-Za-z_][A-Za-z0-9_-]*\s*\(\s*\)/,Og=/(?:^|[;&|\n({])\s*[A-Za-z_][A-Za-z0-9_-]*\s*\(\s*\)/;function Tn(e){let t=e.lastIndexOf("/");return t===-1?e:e.slice(t+1)}function Ta(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 ba(e){let t=Ta(e);if(!t)return!0;for(let n=0;n<e.length;n++)if(t[n]&&e[n]===">")return!0;return!1}function Kr(e){let t=Ta(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===`
100
+ `||a==="|"){i(a,1);continue}}r+=a,s+=1}return o(),n}function Ra(e){return e.trim().split(/\s+/)[0]??""}function ne(e,t=process.platform){try{let n=va(gg(import.meta.url)),r=t==="win32",s=e&&e!=="claude-code"&&e!=="codex"&&!r?`TOKMIZER_HOST=${e} `:"";if(r&&(!e||e==="claude-code")){let a=P(n,"..","bin","tkr-exec.exe");if(En(a))return Jr(a,t)?`'${a.replace(/\\/g,"/").replace(/'/g,"'\\''")}'`:null}let o=P(n,"..","bin","tkr-exec");if(!r&&En(o))return Jr(o,t)?`${s}'${o.replace(/'/g,"'\\''")}'`:null;if(Ze()){let a=r?process.execPath.replace(/\\/g,"/"):process.execPath;return`${s}'${a.replace(/'/g,"'\\''")}' exec`}let i=P(n,"..","bin","tkr-exec.js");return En(i)?`${s}node '${i.replace(/'/g,"'\\''")}'`:null}catch{return null}}function Ig(e,t="tkr-exec",n=()=>!0,r){return Aa(e,t,0,n,r)}function Aa(e,t,n,r,s){if(e.includes("<<")||Og.test(e))return e;let o=Kr(e),i=[];for(let a=0;a<o.length;a++){let l=o[a];if(l.kind==="sep"||l.unsafe){i.push(l.text);continue}let u=l.text.trim();if(!u){i.push(l.text);continue}let c=Ra(u),d=o[a+1],f=d?.kind==="sep"&&(d.text==="|"||d.text==="|&"),p=d?.kind==="sep"&&d.text==="&",h=!f&&!p&&!ba(l.text)&&!l.text.includes("<(")&&!l.text.includes(">(")?Rg(u,t,n,r,s):null;if(h!==null){i.push(`${l.text.match(/^\s*/)?.[0]??""}${h}${l.text.match(/\s*$/)?.[0]??""}`);continue}if(u===t||u.startsWith(t)&&/^\s/.test(u.slice(t.length))||kg.has(c)||bg.has(c)||(ga.has(c)||ga.has(Tn(c)))&&!wg(u)||Wr.test(c)||c.startsWith("(")||c.startsWith("#")||c.startsWith("<")||c.startsWith(">")||Cg.test(u)||$g(u,c)||c.endsWith(")")||f||p||ba(l.text)||l.text.includes("<(")||l.text.includes(">(")||c==="node"&&u.includes("tkr-exec.js")||!r(c)){i.push(l.text);continue}let x=l.text.match(/^\s*/)?.[0]??"",y=l.text.match(/\s*$/)?.[0]??"";s?.(u),i.push(`${x}${t} ${u}${y}`)}return i.join("")}var Pg=new Set(["command","workdir","timeout_ms","yield_time_ms","max_output_tokens","shell","login","tty","description"]),Ng=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"]),Dg=new Set(["log","diff","show","status","blame","ls-files","rev-parse","describe","shortlog"]),Fg={find:/^-(?:delete|exec|execdir|ok|okdir|fprint|fls)/,sort:/^(?:-[^-]*o|--output|--compress-program)/,rg:/^(?:--pre|-[^-]*z|--search-zip)/,yq:/^(?:-[^-]*[is]|--inplace|--split-exp)/,file:/^(?:-C|--compile)/,tree:/^(?:-o|--output|-R$|-H$)/,git:/^(?:--output|--ext-diff|--textconv|-c$|--exec-path|--git-dir|--work-tree)/,eslint:/^--fix/},Sn=["test","run test","run build","run lint","run typecheck"],Lg={npm:new Set(Sn),pnpm:new Set([...Sn,"build","lint","typecheck"]),yarn:new Set([...Sn,"build","lint","typecheck"]),bun:new Set(Sn),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"])},Mg=new Set(["pytest","tsc","vitest","jest","eslint","mypy"]);function $a(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 Kr(e)){if(r.kind==="sep")continue;if(r.unsafe)return!1;let s=n<Sa?Ea(r.text.trim()):null;if(s){if(!$a(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=>Wr.test(u)))return!1;let i=Tn(o[0]);if(i!==o[0])return!1;let a=Fg[i];if(a&&o.slice(1).some(u=>a.test(u)))return!1;if((i==="git"?Dg.has(o[1]??""):Ng.has(i))||t&&Mg.has(i))continue;let l=t?Lg[i]:void 0;if(!(l&&(l.has(o[1]??"")||o[1]==="run"&&l.has(`run ${o[2]??""}`))))return!1}return!0}function Ca(e,t,n=ne(t),r=Q,s=An(),o=process.env.PATH){if(!Z(e)||e.tool_name!=="Bash")return null;let i=e.tool_input;if(!Z(i)||i.run_in_background)return null;let a=i.command;if(typeof a!="string"||!a||t==="codex"&&Object.keys(i).some(h=>!Pg.has(h)))return null;let l=typeof e.cwd=="string"&&e.cwd?e.cwd:i.workdir,u=typeof l=="string"&&l?l:void 0,c=typeof e.session_id=="string"&&e.session_id?e.session_id:"unknown",d=typeof e.permission_mode=="string"?e.permission_mode:void 0,f=La(a,{host:t,sessionId:c,cwd:u,claudeDirs:s,pathEnv:o,permissionMode:d},n,r);if(!f)return null;let p={...i,command:f.command};return JSON.stringify({hookSpecificOutput:t==="codex"?{hookEventName:"PreToolUse",permissionDecision:"allow",updatedInput:p}:f.allowedBy?{hookEventName:"PreToolUse",permissionDecision:"allow",permissionDecisionReason:`Tokmizer: allowed by your rule ${f.allowedBy}`,updatedInput:p}:{hookEventName:"PreToolUse",updatedInput:p}})}function jg(e,t){if(!En(e))return"missing";try{let n=Gr(e,"utf8");return JSON.parse(t?Oa(n):n)}catch{return"unreadable"}}function Oa(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]!==`
101
101
  `;)r++;t+=`
102
- `}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 Rn(e){let t=[],n=dg(e);for(;;){t.push(n);let r=va(n);if(r===n)return t;n=r}}function Dg(){let e=process.platform==="darwin"?"/Library/Application Support/ClaudeCode":process.platform==="win32"?"C:\\Program Files\\ClaudeCode":"/etc/claude-code",t=[P(e,"managed-settings.json")];try{for(let n of Vr(P(e,"managed-settings.d")))n.endsWith(".json")&&t.push(P(e,"managed-settings.d",n))}catch{return t}return t}function zt(e,t,n,r){let s=[];for(let o of e){let i=Pg(o,t);if(i!=="missing"&&(i==="unreadable"||!Z(i)||!n(i,s)))return"unreadable"}return{matchers:s,complete:r}}function Ut(e){return e===void 0?[]:Array.isArray(e)?e.filter(t=>typeof t=="string"):null}function An(){return{projectDir:process.env.CLAUDE_PROJECT_DIR,configDir:process.env.CLAUDE_CONFIG_DIR}}function Fg(e,t){let n=p=>[P(p,"settings.json"),P(p,"settings.local.json")],r=p=>n(P(p,".claude")),s=P(ct(),".claude"),o=[[Dg(),"managed"],[n(t.configDir||s),"loaded"],[t.configDir?n(s):[],"extra"],[t.projectDir?r(t.projectDir):[],"project"],[Rn(e).flatMap(r),"extra"]],i=[],a={managed:!1,loaded:!1,project:!1,extra:!1},l=!1,u="managed",c=(p,h)=>{let _=p.permissions;if(u==="managed"&&(p.allowManagedPermissionRulesOnly===!0||Z(_)&&_.allowManagedPermissionRulesOnly===!0)&&(l=!0),_===void 0)return!0;if(!Z(_))return!1;for(let k of["deny","ask","allow"]){let T=Ut(_[k]);if(!T)return!1;for(let E of T){let O=/^\s*Bash\s*(?:\(([\s\S]*)\))?\s*$/.exec(E);O&&(k!=="allow"?h.push(Ze((O[1]??"*").replace(/:\*$/," *"))):O[1]===void 0||O[1].trim()==="*"?a[u]=!0:i.push(Ze(O[1].replace(/:\*$/," *"))))}}return!0},f=[];for(let[p,h]of o){u=h;let _=zt(p,!1,c,!0);if(_==="unreadable")return"unreadable";f.push(..._.matchers)}let d=a.managed||a.loaded&&!l;return{matchers:[...f,...d?[]:i],complete:!0,allow:i,allowsEverything:d}}function Lg(e){let t=[P(ct(),".cursor","cli-config.json"),...Rn(e).map(n=>P(n,".cursor","cli.json"))];return zt(t,!0,(n,r)=>{let s=n.permissions;if(s===void 0)return!0;if(!Z(s))return!1;let o=Ut(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(Ze(u===-1?`${l} *`:`${l.slice(0,u)} ${l.slice(u+1)}`))}return!0},!1)}function Mg(){return process.platform==="darwin"?"/Library/Application Support/GeminiCli":process.platform==="win32"?"C:\\ProgramData\\gemini-cli":"/etc/gemini-cli"}var Ia=/^\s*(?:run_shell_command|ShellTool)\s*(?:\(([\s\S]*)\))?\s*$/;function jg(e,t){let n=e.tools;if(n!==void 0&&!Z(n))return!1;let r=[Ut(e.excludeTools),Ut(Z(n)?n.exclude:void 0)];for(let s of r){if(!s)return!1;for(let o of s){let i=Ia.exec(o);i&&t.push(Ze(i[1]===void 0?"*":`${i[1]}*`))}}return!0}function _a(e){try{return JSON.parse(e)}catch{return null}}function Hg(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]??_a(`"${r[1]}"`);if(s===null)return null;n.push(s)}return n}if(t.startsWith('"')){let n=/^"((?:\\.|[^"\\])*)"/.exec(t);return n?_a(`"${n[1]}"`):null}if(t.startsWith("'")){let n=/^'([^']*)'/.exec(t);return n?n[1]:null}return t.replace(/\s*#.*$/,"")}function Ug(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=Hg(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==="*"||Ia.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(Ze(`${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}))||Yr(u,c))}}return!0}function xa(e){try{return Vr(e).filter(t=>t.endsWith(".toml")).map(t=>P(e,t))}catch{return[]}}function zg(e){let t=Mg(),n=[P(t,"system-defaults.json"),P(t,"settings.json"),process.env.GEMINI_CLI_SYSTEM_SETTINGS_PATH,process.env.GEMINI_CLI_SYSTEM_DEFAULTS_PATH,P(ct(),".gemini","settings.json"),...Rn(e).map(s=>P(s,".gemini","settings.json"))].filter(s=>!!s),r=zt(n,!0,jg,!1);if(r==="unreadable")return r;for(let s of[...xa(P(ct(),".gemini","policies")),...xa(P(t,"policies"))]){let o;try{o=Gr(s,"utf8")}catch{return"unreadable"}if(!Ug(o,r.matchers))return"unreadable"}return r}function Zr(e,t){if(e===void 0)return!0;if(typeof e=="string")return e!=="allow"&&t.push(()=>!0),!0;if(!Z(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(!Z(r))return!1;for(let[s,o]of Object.entries(r))o!=="allow"&&t.push(Ze(s.replace(/\?/g,"*")))}}return!0}function wa(e,t){if(e.permissions!==void 0||!Zr(e.permission,t))return!1;for(let n of["agent","agents","mode"]){let r=e[n];if(r!==void 0){if(!Z(r))return!1;for(let s of Object.values(r))if(Z(s)&&(s.permissions!==void 0||!Zr(s.permission,t)))return!1}}return!0}function Bg(e){for(let t of e)for(let n of["agent","agents","mode","modes"]){let r;try{r=Vr(P(t,n))}catch{continue}for(let s of r)try{if(s.endsWith(".md")&&/permission/i.test(Gr(P(t,n,s),"utf8")))return!0}catch{return!0}}return!1}function Jg(e){let t=P(process.env.XDG_CONFIG_HOME||P(ct(),".config"),"opencode"),n=Rn(e),r=[t,...n.map(a=>P(a,".opencode"))];if(Bg(r))return"unreadable";let s=["opencode.json","opencode.jsonc","config.json"],o=[...s.map(a=>P(t,a)),process.env.OPENCODE_CONFIG,...n.flatMap(a=>[...s.slice(0,2).map(l=>P(a,l)),...s.slice(0,2).map(l=>P(a,".opencode",l))])].filter(a=>!!a),i=zt(o,!0,wa,!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(Oa(a))}catch{return"unreadable"}if(!(a===process.env.OPENCODE_PERMISSION?Zr(l,i.matchers):Z(l)&&wa(l,i.matchers)))return"unreadable"}return i}function Zg(){return zt([P(ct(),".gemini","antigravity-cli","settings.json")],!0,(e,t)=>{let n=e.permissions;if(n===void 0)return!0;if(!Z(n))return!1;for(let r of["deny","ask"]){let s=Ut(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(Ze(a==="*"?"*":`${a} *`));continue}let l;try{l=new RegExp(a.slice(6))}catch{return!1}t.push(u=>Yr(l,u))}}return!0},!1)}function Z(e){return e!=null&&typeof e=="object"&&!Array.isArray(e)}function Gg(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function Vg(e){let t=e.trim().replace(/\s+/g," "),n=t.endsWith(" *")&&t.length>2,r=(n?t.slice(0,-2):t).split("*").map(Gg).join("[\\s\\S]*");return new RegExp(`^${r}${n?"(?: [\\s\\S]*)?":""}(?= |$)`)}var Wg=512;function Kg(e){let t=e.replace(/['"\\]/g,"").split(/[\s;&|(){}<>`$]+/).filter(Boolean);return[t,t.map(Tn)]}function Yr(e,t){if(e.test(t)||e.test(t.trim().replace(/\s+/g," ")))return!0;for(let n of Kg(t)){if(n.length>Wg)return!0;for(let r=0;r<n.length;r++)if(e.test(n.slice(r).join(" ")))return!0}return!1}function Ze(e){let t=Vg(e);return n=>Yr(t,n)}var Yg={"claude-code":Fg,cursor:Lg,"gemini-cli":zg,opencode:Jg,antigravity:Zg},qg=new Set(["codex"]),Xg=/(?:^|[\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 Qg(e,t,n){let r=Yg[e];return r?r(t??process.cwd(),n):{matchers:[],complete:!1}}function ey(e,t,n){return e==="unreadable"||Xg.test(t.replace(/['"\\]/g,""))||e.matchers.some(r=>r(t))?!1:e.complete||$a(t,!qg.has(n))}var ty=new Set(["default","acceptEdits","dontAsk"]);function ny(e,t){return t.host!=="claude-code"||t.permissionMode==="bypassPermissions"?!0:e!=="unreadable"&&e.allowsEverything===!0&&ty.has(t.permissionMode??"")}function ry(e,t){let n="pathEnv"in e?e.pathEnv:process.env.PATH,r;return s=>e.host!=="claude-code"?ut(s,e.cwd,n):(r??=da(t.configDir),!ut(s,e.cwd,n)&&!r.paths.some(o=>ut(s,e.cwd,o))?!1:s.includes("/")||!pa(s,r))}function me(e,t,n,r){if(!n||/["\\$`;&|<>(){}]|'\\''/.test(n))return null;let s=t.claudeDirs??An(),o=Qg(t.host,t.cwd,s),i=ey(o,e,t.host)?Rg(e,n,ry(t,s)):e;return i!==e&&o!=="unreadable"&&(o.matchers.some(a=>a(i))||(o.allow??[]).some(a=>a(i)&&!a(e)))&&(i=e),r(t.sessionId,i!==e),i===e||!ny(o,t)?null:i}function H(e,t){let n=e[t];return typeof n=="string"&&n?n:null}function Bt(e){return e!=null&&typeof e=="object"&&!Array.isArray(e)}function sy(e){return H(e,"prompt_id")||H(e,"scratchpad_dir")?!0:Bt(e.effort)}function oy(e){return H(e,"tool_use_id")?.startsWith("toolu_")===!0||/^claude/i.test(H(e,"model")??"")}var iy=new Set(["BeforeTool","AfterTool","BeforeAgent","AfterAgent","BeforeModel","AfterModel","BeforeToolSelection"]),ay=new Set(["preToolUse","postToolUse","beforeShellExecution","afterShellExecution","beforeSubmitPrompt","sessionStart","sessionEnd","stop"]),ly=new Set(["pre_tool","post_tool"]),uy=new Set(["before_tool_call","after_tool_call"]),cy=new Set(["runTerminalCommand","run_in_terminal"]),fy=[["codex",e=>H(e,"turn_id")!==null],["claude-code",sy],["cursor",e=>H(e,"cursor_version")!==null||H(e,"generation_id")!==null||H(e,"conversation_id")!==null||Array.isArray(e.workspace_roots)||ay.has(H(e,"hook_event_name")??"")],["gemini-cli",e=>iy.has(H(e,"hook_event_name")??"")],["qwen-code",e=>e.hook_event_name==="PreToolUse"&&e.tool_name==="run_shell_command"],["vibe",e=>ly.has(H(e,"hook_event_name")??"")],["antigravity",e=>Bt(e.toolCall)],["copilot",e=>H(e,"toolName")!==null&&"toolArgs"in e||cy.has(H(e,"tool_name")??"")],["grok",e=>e.toolName==="run_terminal_command"||e.tool_name==="run_terminal_command"||Bt(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&&H(e,"event")!==null&&!uy.has(H(e,"event"))]],dy=new Set(["codex","antigravity"]);function qr(e){return Bt(e)?fy.filter(([,t])=>t(e)).map(([t])=>t):[]}function Na(e,t){if(!Bt(e))return null;let n=qr(e);return n.length>1?null:n.length===1?n[0]:oy(e)&&dy.has(t)?"claude-code":t==="codex"?null:t}var Xr=JSON.stringify({permission:"allow"});function Pa(e,t=te("cursor"),n=X){if(e.tool_name!=="Shell")return Xr;let r=e.tool_input??{},s=r.command;if(typeof s!="string"||!s)return Xr;let o=typeof r.working_directory=="string"?r.working_directory:void 0,i=me(s,{host:"cursor",sessionId:e.conversation_id??"unknown",cwd:o},ae()?null:t,n);return i?JSON.stringify({permission:"allow",updated_input:{...r,command:i}}):Xr}var $n="{}";function Da(e,t=te("gemini-cli"),n=X){if(e.hook_event_name!=="BeforeTool"||e.tool_name!=="run_shell_command")return $n;let r=e.tool_input??{};if(r.is_background)return $n;let s=r.command;if(typeof s!="string"||!s)return $n;let o=typeof e.cwd=="string"?e.cwd:void 0,i=me(s,{host:"gemini-cli",sessionId:e.session_id??"unknown",cwd:o},ae()?null:t,n);return i?JSON.stringify({hookSpecificOutput:{tool_input:{command:i}}}):$n}function dt(e,t,n="unknown",r=te(t),s=X){return e?me(e,{host:t,sessionId:n},ae()?null:r,s):null}var py=new Set(["bash","file_system.bash"]),Qr=JSON.stringify({decision:"allow"});function Fa(e,t=(n,r)=>dt(n,"vibe",r)){if(!I(e)||e.hook_event_name!=="pre_tool"||typeof e.tool_name!="string"||!py.has(e.tool_name))return"";let n=e.tool_input;if(!I(n)||typeof n.command!="string"||!n.command)return"";let r=t(n.command,typeof e.session_id=="string"?e.session_id:"unknown");return r?JSON.stringify({hook_specific_output:{tool_input:{...n,command:r}}}):""}function La(e,t=(n,r)=>dt(n,"antigravity",r)){if(!I(e)||!I(e.toolCall)||e.toolCall.name!=="run_command")return Qr;let n=e.toolCall.args;if(!I(n)||typeof n.CommandLine!="string"||!n.CommandLine)return Qr;let r=t(n.CommandLine,typeof e.conversationId=="string"?e.conversationId:"unknown");return r?JSON.stringify({decision:"allow",overwrite:{CommandLine:r}}):Qr}var he="{}",my=new Set(["runTerminalCommand","run_in_terminal","Bash","bash"]),hy=["run_in_background","is_background","isBackground"];function Cn(e){return e!=null&&typeof e=="object"&&!Array.isArray(e)}function gy(e){let t=e.session_id??e.sessionId;return typeof t=="string"&&t?t:"unknown"}function yy(e,t){let n=e.cwd??t.cwd??t.workdir??t.working_directory;return typeof n=="string"&&n?n:void 0}function On(e,t,n,r,s){if(!Cn(t)||hy.some(i=>t[i]===!0))return null;let o=t.command;return typeof o!="string"||!o?null:me(o,{host:e,sessionId:gy(n),cwd:yy(n,t)},ae()?null:r,s)}function mt(e,t){return JSON.stringify({hookSpecificOutput:{hookEventName:"PreToolUse",updatedInput:{...e,command:t}}})}function ky(e){if(Cn(e))return e;if(typeof e!="string")return null;try{let t=JSON.parse(e);return Cn(t)?t:null}catch{return null}}function by(e,t,n){if(typeof e.tool_name=="string"){if(!my.has(e.tool_name))return he;let o=e.tool_input,i=On("copilot",o,e,t,n);return i?mt(o,i):he}if(e.toolName!=="bash")return he;let r=ky(e.toolArgs),s=On("copilot",r,e,t,n);return s?JSON.stringify({modifiedArgs:{...r,command:s}}):he}function pt(e,t,n){return(r,s,o)=>{if(r.tool_name!==t)return he;let i=r.tool_input,a=On(e,i,r,s,o);return a?n(i,a):he}}var _y=new Set(["run_terminal_command","Bash","bash"]);function xy(e,t,n){let r=e.toolName??e.tool_name;if(typeof r!="string"||!_y.has(r))return he;let s=e.toolInput??e.tool_input,o=On("grok",s,e,t,n);return o?mt(s,o):he}var wy={copilot:by,droid:pt("droid","Execute",mt),trae:pt("trae","RunCommand",mt),"qwen-code":pt("qwen-code","run_shell_command",mt),crush:pt("crush","bash",(e,t)=>JSON.stringify({updated_input:{command:t}})),junie:pt("junie","Bash",(e,t)=>JSON.stringify({updatedInput:{...e,command:t}})),zcode:pt("zcode","Bash",mt),grok:xy};function Ma(e,t,n=te(e),r=X){return Cn(t)?wy[e](t,n,r):he}function ht(e){return ae()?null:te(e)}function vy(e,t,n={}){let r=n.recordUsage??X;switch(e){case"claude-code":case"codex":return t.hook_event_name!==void 0&&t.hook_event_name!=="PreToolUse"?"":Ca(t,e,ht(e),r,n.claudeDirs??An(),n.pathEnv??process.env.PATH)??"";case"cursor":return Pa(t,ht(e),r);case"gemini-cli":return Da(t,ht(e),r);case"vibe":return Fa(t,(s,o)=>dt(s,"vibe",o,ht(e),r));case"antigravity":return La(t,(s,o)=>dt(s,"antigravity",o,ht(e),r));default:return Ma(e,t,ht(e),r)}}function ft(e,t,n={}){let r=Na(e,t);return r?vy(r,e,n):n.fallback??""}var Sy=new Set(["shell","bash","exec","run_shell_command","execute_shell_command"]);async function Ey(e){if(e.event!=="after_tool_call")return{action:"continue"};if(!Sy.has(e.tool))return{action:"continue"};let t=typeof e.command=="string"?e.command:Array.isArray(e.args)&&e.args.every(E=>typeof E=="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=aa();if(!n&&(!s||!r))return{action:"continue"};let o=await it();if(!o.enabled)return{action:"continue"};let i=await Tt();if(!i||!i.token)return{action:"continue"};let a=Do(i);oa(a);let l=fn(i.allowedFilters,Po(i)),u=new Set(o.filters.disabled.map(Y)),c=l&&u.size>0?new Set([...l].filter(E=>!u.has(E))):l,f,d=null;try{f=await ur(t,n,c,{verbosity:o.outputVerbosity,yolo:s,exitCode:e.exit_code}),s&&r&&(d=await ur(t,r,c,{verbosity:o.outputVerbosity,yolo:s,exitCode:e.exit_code}))}finally{ia()}let p=f.filteredBytes<f.rawBytes||d!=null&&d.filteredBytes<d.rawBytes,h=d?.output??r,_=h?f.output?`${f.output}
103
- ${h}`:h:f.output,k=Buffer.byteLength(n,"utf8")+Buffer.byteLength(r,"utf8"),T=ai(k,p?Buffer.byteLength(_,"utf8"):k,Ki("codex"));return oi(T.raw,T.filtered,void 0,!1,"codex","sh",si(t),process.cwd(),ii(f)),await Jo({cmd:t,filterId:f.filterId,rawBytes:f.rawBytes,filteredBytes:f.filteredBytes,plan:a}),await Bo({cmd:t,tokensSaved:Math.max(0,Math.round((T.raw-T.filtered)/4)),rawTokens:Math.round(T.raw/4),optimized:f.filterId!=null,telemetryOptIn:o.telemetryOptIn,host:"codex"}),p?{action:"replace_output",replacement:_,reason:"tokmizer"}:{action:"continue"}}var Ty=new Set(["before_tool_call","after_tool_call"]);async function Ry(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||!Ty.has(n.event)&&qr(n).length>0)return ft(n,"codex");try{return JSON.stringify(await Ey(n))}catch(r){return process.stderr.write(`tkr-codex: ${r.message}
104
- `),t}}async function ja(){let e=await Ry(await ot());e&&process.stdout.write(e)}ja().catch(e=>{process.stderr.write(`tkr-codex-hook: ${e.message}
102
+ `}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 Rn(e){let t=[],n=yg(e);for(;;){t.push(n);let r=va(n);if(r===n)return t;n=r}}function Hg(){let e=process.platform==="darwin"?"/Library/Application Support/ClaudeCode":process.platform==="win32"?"C:\\Program Files\\ClaudeCode":"/etc/claude-code",t=[P(e,"managed-settings.json")];try{for(let n of Vr(P(e,"managed-settings.d")))n.endsWith(".json")&&t.push(P(e,"managed-settings.d",n))}catch{return t}return t}function zt(e,t,n,r){let s=[];for(let o of e){let i=jg(o,t);if(i!=="missing"&&(i==="unreadable"||!Z(i)||!n(i,s)))return"unreadable"}return{matchers:s,complete:r}}function Bt(e){return e===void 0?[]:Array.isArray(e)?e.filter(t=>typeof t=="string"):null}function An(){return{projectDir:process.env.CLAUDE_PROJECT_DIR,configDir:process.env.CLAUDE_CONFIG_DIR}}function Ug(e,t){let n=y=>[P(y,"settings.json"),P(y,"settings.local.json")],r=y=>n(P(y,".claude")),s=P(dt(),".claude"),o=t.configDir||s,i=[[Hg(),"managed"],[[P(o,"settings.json")],"loaded"],[[P(o,"settings.local.json")],"loadedLocal"],[t.configDir?n(s):[],"extra"],[t.projectDir?r(t.projectDir):[],"project"],[Rn(e).flatMap(r),"extra"]],a=[],l={managed:[],loaded:[],loadedLocal:[],project:[],extra:[]},u={managed:!1,loaded:!1,loadedLocal:!1,project:!1,extra:!1},c=!1,d="managed",f=(y,T)=>{let w=y.permissions;if(d==="managed"&&(y.allowManagedPermissionRulesOnly===!0||Z(w)&&w.allowManagedPermissionRulesOnly===!0)&&(c=!0),w===void 0)return!0;if(!Z(w))return!1;for(let O of["deny","ask","allow"]){let D=Bt(w[O]);if(!D)return!1;for(let F of D){let G=/^\s*Bash\s*(?:\(([\s\S]*)\))?\s*$/.exec(F);if(G)if(O!=="allow")T.push(Ve((G[1]??"*").replace(/:\*$/," *")));else if(G[1]===void 0||G[1].trim()==="*")u[d]=!0;else{a.push(Ve(G[1].replace(/:\*$/," *")));let Ee=ey(G[1]);Ee&&l[d].push({rule:F.trim(),matches:Ee})}}}return!0},p=[];for(let[y,T]of i){d=T;let w=zt(y,!1,f,!0);if(w==="unreadable")return"unreadable";p.push(...w.matchers)}let h=u.managed||(u.loaded||u.loadedLocal)&&!c,x=[...l.managed,...c?[]:l.loaded];return{matchers:[...p,...h?[]:a],complete:!0,allow:a,allowsEverything:h,guards:p,trustedAllow:x}}function Bg(e){let t=[P(dt(),".cursor","cli-config.json"),...Rn(e).map(n=>P(n,".cursor","cli.json"))];return zt(t,!0,(n,r)=>{let s=n.permissions;if(s===void 0)return!0;if(!Z(s))return!1;let o=Bt(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(Ve(u===-1?`${l} *`:`${l.slice(0,u)} ${l.slice(u+1)}`))}return!0},!1)}function zg(){return process.platform==="darwin"?"/Library/Application Support/GeminiCli":process.platform==="win32"?"C:\\ProgramData\\gemini-cli":"/etc/gemini-cli"}var Ia=/^\s*(?:run_shell_command|ShellTool)\s*(?:\(([\s\S]*)\))?\s*$/;function Jg(e,t){let n=e.tools;if(n!==void 0&&!Z(n))return!1;let r=[Bt(e.excludeTools),Bt(Z(n)?n.exclude:void 0)];for(let s of r){if(!s)return!1;for(let o of s){let i=Ia.exec(o);i&&t.push(Ve(i[1]===void 0?"*":`${i[1]}*`))}}return!0}function _a(e){try{return JSON.parse(e)}catch{return null}}function Zg(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]??_a(`"${r[1]}"`);if(s===null)return null;n.push(s)}return n}if(t.startsWith('"')){let n=/^"((?:\\.|[^"\\])*)"/.exec(t);return n?_a(`"${n[1]}"`):null}if(t.startsWith("'")){let n=/^'([^']*)'/.exec(t);return n?n[1]:null}return t.replace(/\s*#.*$/,"")}function Gg(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=Zg(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==="*"||Ia.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(Ve(`${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}))||Yr(u,c))}}return!0}function xa(e){try{return Vr(e).filter(t=>t.endsWith(".toml")).map(t=>P(e,t))}catch{return[]}}function Vg(e){let t=zg(),n=[P(t,"system-defaults.json"),P(t,"settings.json"),process.env.GEMINI_CLI_SYSTEM_SETTINGS_PATH,process.env.GEMINI_CLI_SYSTEM_DEFAULTS_PATH,P(dt(),".gemini","settings.json"),...Rn(e).map(s=>P(s,".gemini","settings.json"))].filter(s=>!!s),r=zt(n,!0,Jg,!1);if(r==="unreadable")return r;for(let s of[...xa(P(dt(),".gemini","policies")),...xa(P(t,"policies"))]){let o;try{o=Gr(s,"utf8")}catch{return"unreadable"}if(!Gg(o,r.matchers))return"unreadable"}return r}function Zr(e,t){if(e===void 0)return!0;if(typeof e=="string")return e!=="allow"&&t.push(()=>!0),!0;if(!Z(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(!Z(r))return!1;for(let[s,o]of Object.entries(r))o!=="allow"&&t.push(Ve(s.replace(/\?/g,"*")))}}return!0}function wa(e,t){if(e.permissions!==void 0||!Zr(e.permission,t))return!1;for(let n of["agent","agents","mode"]){let r=e[n];if(r!==void 0){if(!Z(r))return!1;for(let s of Object.values(r))if(Z(s)&&(s.permissions!==void 0||!Zr(s.permission,t)))return!1}}return!0}function Wg(e){for(let t of e)for(let n of["agent","agents","mode","modes"]){let r;try{r=Vr(P(t,n))}catch{continue}for(let s of r)try{if(s.endsWith(".md")&&/permission/i.test(Gr(P(t,n,s),"utf8")))return!0}catch{return!0}}return!1}function Kg(e){let t=P(process.env.XDG_CONFIG_HOME||P(dt(),".config"),"opencode"),n=Rn(e),r=[t,...n.map(a=>P(a,".opencode"))];if(Wg(r))return"unreadable";let s=["opencode.json","opencode.jsonc","config.json"],o=[...s.map(a=>P(t,a)),process.env.OPENCODE_CONFIG,...n.flatMap(a=>[...s.slice(0,2).map(l=>P(a,l)),...s.slice(0,2).map(l=>P(a,".opencode",l))])].filter(a=>!!a),i=zt(o,!0,wa,!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(Oa(a))}catch{return"unreadable"}if(!(a===process.env.OPENCODE_PERMISSION?Zr(l,i.matchers):Z(l)&&wa(l,i.matchers)))return"unreadable"}return i}function Yg(){return zt([P(dt(),".gemini","antigravity-cli","settings.json")],!0,(e,t)=>{let n=e.permissions;if(n===void 0)return!0;if(!Z(n))return!1;for(let r of["deny","ask"]){let s=Bt(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(Ve(a==="*"?"*":`${a} *`));continue}let l;try{l=new RegExp(a.slice(6))}catch{return!1}t.push(u=>Yr(l,u))}}return!0},!1)}function Z(e){return e!=null&&typeof e=="object"&&!Array.isArray(e)}function Pa(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function qg(e){let t=e.trim().replace(/\s+/g," "),n=t.endsWith(" *")&&t.length>2,r=(n?t.slice(0,-2):t).split("*").map(Pa).join("[\\s\\S]*");return new RegExp(`^${r}${n?"(?: [\\s\\S]*)?":""}(?= |$)`)}var Xg=512;function Qg(e){let t=e.replace(/['"\\]/g,"").split(/[\s;&|(){}<>`$]+/).filter(Boolean);return[t,t.map(Tn)]}function Yr(e,t){if(e.test(t)||e.test(t.trim().replace(/\s+/g," ")))return!0;for(let n of Qg(t)){if(n.length>Xg)return!0;for(let r=0;r<n.length;r++)if(e.test(n.slice(r).join(" ")))return!0}return!1}function Ve(e){let t=qg(e);return n=>Yr(t,n)}function ey(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(`^${Pa(r)}${n?"(?: [\\s\\S]*)?":""}$`);return o=>s.test(o)}var ty={"claude-code":Ug,cursor:Bg,"gemini-cli":Vg,opencode:Kg,antigravity:Yg},ny=new Set(["codex"]),Na=/(?:^|[\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 ry(e,t,n){let r=ty[e];return r?r(t??process.cwd(),n):{matchers:[],complete:!1}}function sy(e,t,n){return e==="unreadable"||Na.test(t.replace(/['"\\]/g,""))||e.matchers.some(r=>r(t))?!1:e.complete||$a(t,!ny.has(n))}var Da=new Set(["default","acceptEdits","dontAsk"]);function Fa(e,t){return t.host!=="claude-code"||t.permissionMode==="bypassPermissions"?!0:e!=="unreadable"&&e.allowsEverything===!0&&Da.has(t.permissionMode??"")}function oy(e,t){let n="pathEnv"in e?e.pathEnv:process.env.PATH,r;return s=>e.host!=="claude-code"?ct(s,e.cwd,n):(r??=fa(t.configDir),!ct(s,e.cwd,n)&&!r.paths.some(o=>ct(s,e.cwd,o))?!1:s.includes("/")||!pa(s,r))}var iy=/^[^\s;&|<>()$`\\{}*?[\]~#!]+(?: [^\s;&|<>()$`\\{}*?[\]~#!]+)*$/;function ay(e,t,n){return n.host!=="claude-code"||e==="unreadable"||Fa(e,n)||!Da.has(n.permissionMode??"")||!iy.test(t)||Na.test(t.replace(/['"]/g,""))||(e.guards??[]).some(r=>r(t))?null:(e.trustedAllow??[]).find(r=>r.matches(t))?.rule??null}function La(e,t,n,r){if(!n||/["\\$`;&|<>(){}]|'\\''/.test(n))return null;let s=t.claudeDirs??An(),o=ry(t.host,t.cwd,s),i=ay(o,e,t),a=i||sy(o,e,t.host)?Ig(e,n,oy(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}:Fa(o,t)?{command:a}:null}function Se(e,t,n,r){return La(e,t,n,r)?.command??null}function H(e,t){let n=e[t];return typeof n=="string"&&n?n:null}function Jt(e){return e!=null&&typeof e=="object"&&!Array.isArray(e)}function ly(e){return H(e,"prompt_id")||H(e,"scratchpad_dir")?!0:Jt(e.effort)}function uy(e){return H(e,"tool_use_id")?.startsWith("toolu_")===!0||/^claude/i.test(H(e,"model")??"")}var cy=new Set(["BeforeTool","AfterTool","BeforeAgent","AfterAgent","BeforeModel","AfterModel","BeforeToolSelection"]),dy=new Set(["preToolUse","postToolUse","beforeShellExecution","afterShellExecution","beforeSubmitPrompt","sessionStart","sessionEnd","stop"]),fy=new Set(["pre_tool","post_tool"]),py=new Set(["before_tool_call","after_tool_call"]),my=new Set(["runTerminalCommand","run_in_terminal"]),hy=[["codex",e=>H(e,"turn_id")!==null],["claude-code",ly],["cursor",e=>H(e,"cursor_version")!==null||H(e,"generation_id")!==null||H(e,"conversation_id")!==null||Array.isArray(e.workspace_roots)||dy.has(H(e,"hook_event_name")??"")],["gemini-cli",e=>cy.has(H(e,"hook_event_name")??"")],["qwen-code",e=>e.hook_event_name==="PreToolUse"&&e.tool_name==="run_shell_command"],["vibe",e=>fy.has(H(e,"hook_event_name")??"")],["antigravity",e=>Jt(e.toolCall)],["copilot",e=>H(e,"toolName")!==null&&"toolArgs"in e||my.has(H(e,"tool_name")??"")],["grok",e=>e.toolName==="run_terminal_command"||e.tool_name==="run_terminal_command"||Jt(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&&H(e,"event")!==null&&!py.has(H(e,"event"))]],gy=new Set(["codex","antigravity"]);function qr(e){return Jt(e)?hy.filter(([,t])=>t(e)).map(([t])=>t):[]}function Ma(e,t){if(!Jt(e))return null;let n=qr(e);return n.length>1?null:n.length===1?n[0]:uy(e)&&gy.has(t)?"claude-code":t==="codex"?null:t}var Xr=JSON.stringify({permission:"allow"});function ja(e,t=ne("cursor"),n=Q){if(e.tool_name!=="Shell")return Xr;let r=e.tool_input??{},s=r.command;if(typeof s!="string"||!s)return Xr;let o=typeof r.working_directory=="string"?r.working_directory:void 0,i=Se(s,{host:"cursor",sessionId:e.conversation_id??"unknown",cwd:o},le()?null:t,n);return i?JSON.stringify({permission:"allow",updated_input:{...r,command:i}}):Xr}var $n="{}";function Ha(e,t=ne("gemini-cli"),n=Q){if(e.hook_event_name!=="BeforeTool"||e.tool_name!=="run_shell_command")return $n;let r=e.tool_input??{};if(r.is_background)return $n;let s=r.command;if(typeof s!="string"||!s)return $n;let o=typeof e.cwd=="string"?e.cwd:void 0,i=Se(s,{host:"gemini-cli",sessionId:e.session_id??"unknown",cwd:o},le()?null:t,n);return i?JSON.stringify({hookSpecificOutput:{tool_input:{command:i}}}):$n}function pt(e,t,n="unknown",r=ne(t),s=Q){return e?Se(e,{host:t,sessionId:n},le()?null:r,s):null}var yy=new Set(["bash","file_system.bash"]),Qr=JSON.stringify({decision:"allow"});function Ua(e,t=(n,r)=>pt(n,"vibe",r)){if(!I(e)||e.hook_event_name!=="pre_tool"||typeof e.tool_name!="string"||!yy.has(e.tool_name))return"";let n=e.tool_input;if(!I(n)||typeof n.command!="string"||!n.command)return"";let r=t(n.command,typeof e.session_id=="string"?e.session_id:"unknown");return r?JSON.stringify({hook_specific_output:{tool_input:{...n,command:r}}}):""}function Ba(e,t=(n,r)=>pt(n,"antigravity",r)){if(!I(e)||!I(e.toolCall)||e.toolCall.name!=="run_command")return Qr;let n=e.toolCall.args;if(!I(n)||typeof n.CommandLine!="string"||!n.CommandLine)return Qr;let r=t(n.CommandLine,typeof e.conversationId=="string"?e.conversationId:"unknown");return r?JSON.stringify({decision:"allow",overwrite:{CommandLine:r}}):Qr}var he="{}",ky=new Set(["runTerminalCommand","run_in_terminal","Bash","bash"]),by=["run_in_background","is_background","isBackground"];function Cn(e){return e!=null&&typeof e=="object"&&!Array.isArray(e)}function _y(e){let t=e.session_id??e.sessionId;return typeof t=="string"&&t?t:"unknown"}function xy(e,t){let n=e.cwd??t.cwd??t.workdir??t.working_directory;return typeof n=="string"&&n?n:void 0}function On(e,t,n,r,s){if(!Cn(t)||by.some(i=>t[i]===!0))return null;let o=t.command;return typeof o!="string"||!o?null:Se(o,{host:e,sessionId:_y(n),cwd:xy(n,t)},le()?null:r,s)}function ht(e,t){return JSON.stringify({hookSpecificOutput:{hookEventName:"PreToolUse",updatedInput:{...e,command:t}}})}function wy(e){if(Cn(e))return e;if(typeof e!="string")return null;try{let t=JSON.parse(e);return Cn(t)?t:null}catch{return null}}function vy(e,t,n){if(typeof e.tool_name=="string"){if(!ky.has(e.tool_name))return he;let o=e.tool_input,i=On("copilot",o,e,t,n);return i?ht(o,i):he}if(e.toolName!=="bash")return he;let r=wy(e.toolArgs),s=On("copilot",r,e,t,n);return s?JSON.stringify({modifiedArgs:{...r,command:s}}):he}function mt(e,t,n){return(r,s,o)=>{if(r.tool_name!==t)return he;let i=r.tool_input,a=On(e,i,r,s,o);return a?n(i,a):he}}var Sy=new Set(["run_terminal_command","Bash","bash"]);function Ey(e,t,n){let r=e.toolName??e.tool_name;if(typeof r!="string"||!Sy.has(r))return he;let s=e.toolInput??e.tool_input,o=On("grok",s,e,t,n);return o?ht(s,o):he}var Ty={copilot:vy,droid:mt("droid","Execute",ht),trae:mt("trae","RunCommand",ht),"qwen-code":mt("qwen-code","run_shell_command",ht),crush:mt("crush","bash",(e,t)=>JSON.stringify({updated_input:{command:t}})),junie:mt("junie","Bash",(e,t)=>JSON.stringify({updatedInput:{...e,command:t}})),zcode:mt("zcode","Bash",ht),grok:Ey};function za(e,t,n=ne(e),r=Q){return Cn(t)?Ty[e](t,n,r):he}function gt(e){return le()?null:ne(e)}function Ry(e,t,n={}){let r=n.recordUsage??Q;switch(e){case"claude-code":case"codex":return t.hook_event_name!==void 0&&t.hook_event_name!=="PreToolUse"?"":Ca(t,e,gt(e),r,n.claudeDirs??An(),n.pathEnv??process.env.PATH)??"";case"cursor":return ja(t,gt(e),r);case"gemini-cli":return Ha(t,gt(e),r);case"vibe":return Ua(t,(s,o)=>pt(s,"vibe",o,gt(e),r));case"antigravity":return Ba(t,(s,o)=>pt(s,"antigravity",o,gt(e),r));default:return za(e,t,gt(e),r)}}function ft(e,t,n={}){let r=Ma(e,t);return r?Ry(r,e,n):n.fallback??""}var Ay=new Set(["shell","bash","exec","run_shell_command","execute_shell_command"]);async function $y(e){if(e.event!=="after_tool_call")return{action:"continue"};if(!Ay.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=aa();if(!n&&(!s||!r))return{action:"continue"};let o=await at();if(!o.enabled)return{action:"continue"};let i=await Rt();if(!i||!i.token)return{action:"continue"};let a=Do(i);oa(a);let l=dn(i.allowedFilters,No(i)),u=new Set(o.filters.disabled.map(q)),c=l&&u.size>0?new Set([...l].filter(w=>!u.has(w))):l,d,f=null;try{d=await ur(t,n,c,{verbosity:o.outputVerbosity,yolo:s,exitCode:e.exit_code}),s&&r&&(f=await ur(t,r,c,{verbosity:o.outputVerbosity,yolo:s,exitCode:e.exit_code}))}finally{ia()}let p=d.filteredBytes<d.rawBytes||f!=null&&f.filteredBytes<f.rawBytes,h=f?.output??r,x=h?d.output?`${d.output}
103
+ ${h}`:h:d.output,y=Buffer.byteLength(n,"utf8")+Buffer.byteLength(r,"utf8"),T=ai(y,p?Buffer.byteLength(x,"utf8"):y,Ki("codex"));return oi(T.raw,T.filtered,void 0,!1,"codex","sh",si(t),process.cwd(),ii(d)),await Jo({cmd:t,filterId:d.filterId,rawBytes:d.rawBytes,filteredBytes:d.filteredBytes,plan:a}),await zo({cmd:t,tokensSaved:Math.max(0,Math.round((T.raw-T.filtered)/4)),rawTokens:Math.round(T.raw/4),optimized:d.filterId!=null,telemetryOptIn:o.telemetryOptIn,host:"codex"}),p?{action:"replace_output",replacement:x,reason:"tokmizer"}:{action:"continue"}}var Cy=new Set(["before_tool_call","after_tool_call"]);async function Oy(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||!Cy.has(n.event)&&qr(n).length>0)return ft(n,"codex");try{return JSON.stringify(await $y(n))}catch(r){return process.stderr.write(`tkr-codex: ${r.message}
104
+ `),t}}async function Ja(){let e=await Oy(await it());e&&process.stdout.write(e)}Ja().catch(e=>{process.stderr.write(`tkr-codex-hook: ${e.message}
105
105
  `),process.stdout.write(JSON.stringify({action:"continue"})),process.exit(0)});
106
106
  /*! Bundled license information:
107
107