@tokmizer/plugin 0.9.63 → 0.9.65
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.claude-plugin/plugin.json +1 -1
- package/.codex-plugin/plugin.json +1 -1
- package/README.md +9 -8
- package/dist/bin/tkr-agent-hook.js +9 -9
- package/dist/bin/tkr-codex-hook.js +68 -68
- package/dist/bin/tkr-copilot-hook.js +8 -8
- package/dist/bin/tkr-crush-hook.js +8 -8
- package/dist/bin/tkr-cursor-hook.js +8 -8
- package/dist/bin/tkr-daemon.js +120 -116
- package/dist/bin/tkr-droid-hook.js +8 -8
- package/dist/bin/tkr-exec +75 -71
- package/dist/bin/tkr-exec.js +75 -71
- package/dist/bin/tkr-gemini-hook.js +8 -8
- package/dist/bin/tkr-grok-hook.js +8 -8
- package/dist/bin/tkr-junie-hook.js +8 -8
- package/dist/bin/tkr-processor.js +94 -90
- package/dist/bin/tkr-qwen-hook.js +8 -8
- package/dist/bin/tkr-shim.js +75 -73
- package/dist/bin/tkr-trae-hook.js +8 -8
- package/dist/bin/tkr-zcode-hook.js +8 -8
- package/dist/bin/tkr.js +230 -230
- package/dist/hooks-host/post-tool-use.js +86 -82
- package/dist/hooks-host/pre-tool-use.js +9 -9
- package/dist/hooks-host/reducer-stop.js +24 -24
- package/dist/hooks-host/session-recap.js +1 -1
- package/dist/index.js +84 -84
- package/dist/native/manifest.json +12 -12
- package/dist/native/single.json +12 -12
- package/dist/native/tkr-exec-darwin-arm64 +0 -0
- package/dist/native/tkr-exec-darwin-x64 +0 -0
- package/dist/native/tkr-exec-linux-arm64 +0 -0
- package/dist/native/tkr-exec-linux-x64 +0 -0
- package/dist/native/tkr-exec-win32-arm64.exe +0 -0
- package/dist/native/tkr-exec-win32-x64.exe +0 -0
- package/hooks/on-session-start.mjs +16 -5
- package/package.json +8 -8
- 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
|
|
3
|
+
var Va=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 ss=(e,t)=>{for(var n in t)Va(e,n,{get:t[n],enumerable:!0})};function su(e,t){let n=e.slice(0,t).split(/\r?\n/);return[n.length,n.pop().length+1]}function ou(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
|
|
5
|
+
`))}return s}var v,Be=ce(()=>{v=class e extends Error{line;column;codeblock;constructor(t,n){let[r,s]=su(n.toml,n.ptr),o=ou(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
|
|
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&&`
|
|
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 qt(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,d=n===120?2:n===117?4:8;for(let f=0;f<d;f++,e.p++){let p=e.s.charCodeAt(e.p),m=p>=48&&p<=57?p-48:p>=65&&p<=70?p-65+10:p>=97&&p<=102?p-97+10:-1;m<0&&v.x("invalid non-hex character in unicode escape",e),c=c<<4|m}(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 Fn=ce(()=>{Be();});var iu,Ze,Ln=ce(()=>{iu=/^(\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(iu);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 jn(e,t){return e===32||e===9||e===10||e===13||t&&(e===t||e===44)||e===35}function St(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?ks(e):ys(e);return e.d++,s}return r===34||r===39?qt(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?Xt(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?au(e,r,t):e.s.charCodeAt(e.p+2)===58?lu(e,r,t):Xt(e,e.p,r,0,t)}function Xt(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||jn(o=e.s.charCodeAt(e.p),s))return e.bi===!0?0n:0;if(!r){if(o===120)return Mn(e,t,16,s);if(o===98)return Mn(e,t,2,s);if(o===111)return Mn(e,t,8,s)}o===46?i=2:o===101||o===69?i=4:v.x("illegal leading zero",e,t)}else V(o)||v.x("invalid value",e,t);for(;++e.p<e.s.length&&(o=e.s.charCodeAt(e.p),!jn(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)||(V(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):hs(e,l,10,t)}function Mn(e,t,n,r){let s,o=1;for(;++e.p<e.s.length&&(s=e.s.charCodeAt(e.p),!jn(s,r));)s===95?(o&1&&v.x("illegal underscore",e),o=3):V(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("_","")),hs(e,i,n,t)}function hs(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 au(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 Xt(e,e.p=r,t,0,n);if(e.p+=5,V(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,!V(e.s.charCodeAt(e.p+1))))&&t!==84&&t!==116){let i=e.s.slice(r,e.p);return wt(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(;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 wt(e,i,1,s,r,"[+00:00]")}if(t===43||t===45){let i=e.s.slice(r,e.p+=6);return wt(e,i,1,s,r,!e.ld&&"["+e.s.slice(e.p-6,e.p)+"]")}}let o=e.s.slice(r,e.p);return wt(e,o,2,s,r)}function lu(e,t,n){let r=e.p;if(!V(t)||!V(e.s.charCodeAt(++e.p)))return Xt(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 wt(e,s,4,!1,r)}function wt(e,t,n,r,s,o){if(e.ld){let i=new Ze(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 Hn=ce(()=>{Fn();zn();Be();Ln();});function uu(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 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;uu(e)}}var Un=ce(()=>{Be();});function Qt(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(qt(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 ys(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=Qt(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]))&&v.x("trying to redefine an already defined value",e,l);let f=o==="__proto__";if(e.uk&&(f||o==="constructor")){i=e.uk!==1&&v.x("document contains an unsafe property",e,l);break}!a&&f&&Object.defineProperty(i,o,{enumerable:!0,configurable:!0,writable:!0})}a&&v.x("trying to redefine an already defined value",e,l),te(e,!0,!0);let c=St(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&&v.x("expected comma or end of structure",e,e.p-1)}v.x("unfinished table",e,t)}function ks(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(St(e,93)),te(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 zn=ce(()=>{Fn();Hn();Un();Be();});function bs(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 _s(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 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=Qt(n,93);u&&(e.charCodeAt(n.p)!==93&&v.x("expected end of table array declaration",n),n.p++);let d=bs(n,c,r,s,u?2:1);d?(l=d[2],a=d[1]):(_s(n,d,o),i=!0)}else{o=n.p;let u=Qt(n),c=bs(n,u,a,l,0);!c&&!i&&_s(n,c,o),te(n,!0,!0);let d=St(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)&&v.x("each key-value declaration must be followed by an end-of-line",n),te(n)}return r}var xs=ce(()=>{zn();Hn();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 du(e){for(let t=0;t<e.length;t++)if(vt(e[t])!=="object")return!1;return e.length!=0}function Ss(e){return JSON.stringify(e).replaceAll("\x7F","\\u007f")}function fu(e){return Ss(ws?e.toWellFormed():e)}function vs(e){if(cu.test(e))return e;if(ws&&!e.isWellFormed())throw new RangeError("key contains illegal lone surrogates");return Ss(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 fu(e);case"date":if(isNaN(e.getTime()))throw new TypeError("cannot serialize invalid date");return e.toISOString();case"object":return pu(e,n,r,s);case"array":return mu(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 pu(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+=vs(a)+" = "+Zn(e[a],vt(e[a]),t-1,n,r)}return o+" }"}function mu(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 gu(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 d=vt(t[c]);if(d==="symbol"||d==="function")throw new TypeError(`cannot serialize values of type '${d}'`);let f=
|
|
11
|
-
`)+
|
|
12
|
-
`)+Jn(p,t[c],p,r-1,s,o)}else i+=f,i+=" = ",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=vs(c);if(d==="array"&&du(t[c]))a+=(a&&`
|
|
11
|
+
`)+gu(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
|
|
15
|
+
${a}`:i||a}function Gn(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 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:()=>Pe,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:()=>Ne,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:()=>Pl,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:()=>Nl,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 Ne.create([this,t],this._def)}and(t){return Pe.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})+$",Nn,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")Nn||(Nn=new RegExp(sl,"u")),Nn.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 Ne=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}};Ne.create=(e,t)=>new Ne({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 Pn(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=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 Pe=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=Pn(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}))}};Pe.create=(e,t,n)=>new Pe({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,Nl=Ne.create,Pl=Vt.create,Dl=Pe.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 process.env.TOKMIZER_DEV==="1"||process.env.TOKMIZER_DEV==="true"}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
|
-
`),
|
|
19
|
-
`).length<6)}var
|
|
17
|
+
`:s}var cu,ws,Es=ce(()=>{cu=/^[a-z0-9-_]+$/i,ws=!!"".isWellFormed});var Vn={};ss(Vn,{TomlDate:()=>Ze,TomlError:()=>v,default:()=>hu,parse:()=>Bn,stringify:()=>Gn});var hu,Kn=ce(()=>{xs();Es();Ln();Be();hu={parse:Bn,stringify:Gn,TomlDate:Ze,TomlError:v}});import{readdir as yu,readFile as ku}from"node:fs/promises";import{join as As,dirname as bu}from"node:path";import{fileURLToPath as _u}from"node:url";var h={};ss(h,{BRAND:()=>bl,DIRTY:()=>Ae,EMPTY_PATH:()=>qa,INVALID:()=>S,NEVER:()=>ru,OK:()=>M,ParseStatus:()=>L,Schema:()=>R,ZodAny:()=>be,ZodArray:()=>me,ZodBigInt:()=>$e,ZodBoolean:()=>Ce,ZodBranded:()=>_t,ZodCatch:()=>ze,ZodDate:()=>Oe,ZodDefault:()=>He,ZodDiscriminatedUnion:()=>Kt,ZodEffects:()=>Y,ZodEnum:()=>Me,ZodError:()=>z,ZodFirstPartyTypeKind:()=>E,ZodFunction:()=>Yt,ZodIntersection:()=>De,ZodIssueCode:()=>g,ZodLazy:()=>Fe,ZodLiteral:()=>Le,ZodMap:()=>et,ZodNaN:()=>nt,ZodNativeEnum:()=>je,ZodNever:()=>ee,ZodNull:()=>Ne,ZodNullable:()=>ie,ZodNumber:()=>Re,ZodObject:()=>U,ZodOptional:()=>K,ZodParsedType:()=>b,ZodPipeline:()=>xt,ZodPromise:()=>_e,ZodReadonly:()=>Ue,ZodRecord:()=>Wt,ZodSchema:()=>R,ZodSet:()=>tt,ZodString:()=>ke,ZodSymbol:()=>Xe,ZodTransformer:()=>Y,ZodTuple:()=>oe,ZodType:()=>R,ZodUndefined:()=>Ie,ZodUnion:()=>Pe,ZodUnknown:()=>pe,ZodVoid:()=>Qe,addIssueToContext:()=>k,any:()=>Rl,array:()=>Il,bigint:()=>Sl,boolean:()=>gs,coerce:()=>nu,custom:()=>fs,date:()=>vl,datetimeRegex:()=>cs,defaultErrorMap:()=>de,discriminatedUnion:()=>Fl,effect:()=>Kl,enum:()=>Jl,function:()=>Ul,getErrorMap:()=>We,getParsedType:()=>se,instanceof:()=>xl,intersection:()=>Ll,isAborted:()=>Gt,isAsync:()=>Ye,isDirty:()=>Vt,isValid:()=>ye,late:()=>_l,lazy:()=>Bl,literal:()=>Zl,makeIssue:()=>bt,map:()=>Hl,nan:()=>wl,nativeEnum:()=>Gl,never:()=>Cl,null:()=>Al,nullable:()=>Yl,number:()=>ms,object:()=>Nl,objectUtil:()=>Nn,oboolean:()=>tu,onumber:()=>eu,optional:()=>Wl,ostring:()=>Ql,pipeline:()=>Xl,preprocess:()=>ql,promise:()=>Vl,quotelessJson:()=>Ka,record:()=>jl,set:()=>zl,setErrorMap:()=>Ya,strictObject:()=>Pl,string:()=>ps,symbol:()=>El,transformer:()=>Kl,tuple:()=>Ml,undefined:()=>Tl,union:()=>Dl,unknown:()=>$l,util:()=>C,void:()=>Ol});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 Nn;(function(e){e.mergeShapes=(t,n)=>({...t,...n})})(Nn||(Nn={}));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 g=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"]),Ka=e=>JSON.stringify(e,null,2).replace(/"([^"]+)":/g,"$1:"),z=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()}};z.create=e=>new z(e);var Wa=(e,t)=>{let n;switch(e.code){case g.invalid_type:e.received===b.undefined?n="Required":n=`Expected ${e.expected}, received ${e.received}`;break;case g.invalid_literal:n=`Invalid literal value, expected ${JSON.stringify(e.expected,C.jsonStringifyReplacer)}`;break;case g.unrecognized_keys:n=`Unrecognized key(s) in object: ${C.joinValues(e.keys,", ")}`;break;case g.invalid_union:n="Invalid input";break;case g.invalid_union_discriminator:n=`Invalid discriminator value. Expected ${C.joinValues(e.options)}`;break;case g.invalid_enum_value:n=`Invalid enum value. Expected ${C.joinValues(e.options)}, received '${e.received}'`;break;case g.invalid_arguments:n="Invalid function arguments";break;case g.invalid_return_type:n="Invalid function return type";break;case g.invalid_date:n="Invalid date";break;case g.invalid_string:typeof e.validation=="object"?"includes"in e.validation?(n=`Invalid input: must include "${e.validation.includes}"`,typeof e.validation.position=="number"&&(n=`${n} at one or more positions greater than or equal to ${e.validation.position}`)):"startsWith"in e.validation?n=`Invalid input: must start with "${e.validation.startsWith}"`:"endsWith"in e.validation?n=`Invalid input: must end with "${e.validation.endsWith}"`:C.assertNever(e.validation):e.validation!=="regex"?n=`Invalid ${e.validation}`:n="Invalid";break;case g.too_small:e.type==="array"?n=`Array must contain ${e.exact?"exactly":e.inclusive?"at least":"more than"} ${e.minimum} element(s)`:e.type==="string"?n=`String must contain ${e.exact?"exactly":e.inclusive?"at least":"over"} ${e.minimum} character(s)`:e.type==="number"?n=`Number must be ${e.exact?"exactly equal to ":e.inclusive?"greater than or equal to ":"greater than "}${e.minimum}`:e.type==="bigint"?n=`Number must be ${e.exact?"exactly equal to ":e.inclusive?"greater than or equal to ":"greater than "}${e.minimum}`:e.type==="date"?n=`Date must be ${e.exact?"exactly equal to ":e.inclusive?"greater than or equal to ":"greater than "}${new Date(Number(e.minimum))}`:n="Invalid input";break;case g.too_big:e.type==="array"?n=`Array must contain ${e.exact?"exactly":e.inclusive?"at most":"less than"} ${e.maximum} element(s)`:e.type==="string"?n=`String must contain ${e.exact?"exactly":e.inclusive?"at most":"under"} ${e.maximum} character(s)`:e.type==="number"?n=`Number must be ${e.exact?"exactly":e.inclusive?"less than or equal to":"less than"} ${e.maximum}`:e.type==="bigint"?n=`BigInt must be ${e.exact?"exactly":e.inclusive?"less than or equal to":"less than"} ${e.maximum}`:e.type==="date"?n=`Date must be ${e.exact?"exactly":e.inclusive?"smaller than or equal to":"smaller than"} ${new Date(Number(e.maximum))}`:n="Invalid input";break;case g.custom:n="Invalid input";break;case g.invalid_intersection_types:n="Intersection results could not be merged";break;case g.not_multiple_of:n=`Number must be a multiple of ${e.multipleOf}`;break;case g.not_finite:n="Number must be finite";break;default:n=t.defaultError,C.assertNever(e)}return{message:n}},de=Wa;var os=de;function Ya(e){os=e}function We(){return os}var bt=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}},qa=[];function k(e,t){let n=We(),r=bt({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 S;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 S;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}}},S=Object.freeze({status:"aborted"}),Ae=e=>({status:"dirty",value:e}),M=e=>({status:"valid",value:e}),Gt=e=>e.status==="aborted",Vt=e=>e.status==="dirty",ye=e=>e.status==="valid",Ye=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 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}},is=(e,t)=>{if(ye(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 z(e.common.issues);return this._error=n,this._error}}};function A(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 R=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(Ye(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 is(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 ye(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=>ye(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(Ye(s)?s:Promise.resolve(s));return is(r,o)}refine(t,n){let r=s=>typeof n=="string"||typeof n>"u"?{message:n}:typeof n=="function"?n(s):n;return this._refinement((s,o)=>{let i=t(s),a=()=>o.addIssue({code:g.custom,...r(s)});return typeof Promise<"u"&&i instanceof Promise?i.then(l=>l?!0:(a(),!1)):i?!0:(a(),!1)})}refinement(t,n){return this._refinement((r,s)=>t(r)?!0:(s.addIssue(typeof n=="function"?n(r,s):n),!1))}_refinement(t){return new Y({schema:this,typeName: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 K.create(this,this._def)}nullable(){return ie.create(this,this._def)}nullish(){return this.nullable().optional()}array(){return me.create(this)}promise(){return _e.create(this,this._def)}or(t){return Pe.create([this,t],this._def)}and(t){return De.create(this,t,this._def)}transform(t){return new Y({...A(this._def),schema:this,typeName:E.ZodEffects,effect:{type:"transform",transform:t}})}default(t){let n=typeof t=="function"?t:()=>t;return new He({...A(this._def),innerType:this,defaultValue:n,typeName:E.ZodDefault})}brand(){return new _t({typeName:E.ZodBranded,type:this,...A(this._def)})}catch(t){let n=typeof t=="function"?t:()=>t;return new ze({...A(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 xt.create(this,t)}readonly(){return Ue.create(this)}isOptional(){return this.safeParse(void 0).success}isNullable(){return this.safeParse(null).success}},Xa=/^c[^\s-]{8,}$/i,Qa=/^[0-9a-z]+$/,el=/^[0-9A-HJKMNP-TV-Z]{26}$/i,tl=/^[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,nl=/^[a-z0-9_-]{21}$/i,rl=/^[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]*$/,sl=/^[-+]?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)?)??$/,ol=/^(?!\.)(?!.*\.\.)([A-Z0-9_'+\-\.]*)[A-Z0-9_+-]@([A-Z0-9][A-Z0-9\-]*\.)+[A-Z]{2,}$/i,il="^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$",Pn,al=/^(?:(?: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])$/,ll=/^(?:(?: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])$/,ul=/^(([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]))$/,cl=/^(([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])$/,dl=/^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/,fl=/^([0-9a-zA-Z-_]{4})*(([0-9a-zA-Z-_]{2}(==)?)|([0-9a-zA-Z-_]{3}(=)?))?$/,ls="((\\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])))",pl=new RegExp(`^${ls}$`);function us(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 ml(e){return new RegExp(`^${us(e)}$`)}function cs(e){let t=`${ls}T${us(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 gl(e,t){return!!((t==="v4"||!t)&&al.test(e)||(t==="v6"||!t)&&ul.test(e))}function hl(e,t){if(!rl.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 yl(e,t){return!!((t==="v4"||!t)&&ll.test(e)||(t==="v6"||!t)&&cl.test(e))}var ke=class e extends R{_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:g.invalid_type,expected:b.string,received:o.parsedType}),S}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:g.too_small,minimum:o.value,type:"string",inclusive:!0,exact:!1,message:o.message}),r.dirty());else if(o.kind==="max")t.data.length>o.value&&(s=this._getOrReturnCtx(t,s),k(s,{code:g.too_big,maximum:o.value,type:"string",inclusive:!0,exact:!1,message:o.message}),r.dirty());else if(o.kind==="length"){let i=t.data.length>o.value,a=t.data.length<o.value;(i||a)&&(s=this._getOrReturnCtx(t,s),i?k(s,{code:g.too_big,maximum:o.value,type:"string",inclusive:!0,exact:!0,message:o.message}):a&&k(s,{code:g.too_small,minimum:o.value,type:"string",inclusive:!0,exact:!0,message:o.message}),r.dirty())}else if(o.kind==="email")ol.test(t.data)||(s=this._getOrReturnCtx(t,s),k(s,{validation:"email",code:g.invalid_string,message:o.message}),r.dirty());else if(o.kind==="emoji")Pn||(Pn=new RegExp(il,"u")),Pn.test(t.data)||(s=this._getOrReturnCtx(t,s),k(s,{validation:"emoji",code:g.invalid_string,message:o.message}),r.dirty());else if(o.kind==="uuid")tl.test(t.data)||(s=this._getOrReturnCtx(t,s),k(s,{validation:"uuid",code:g.invalid_string,message:o.message}),r.dirty());else if(o.kind==="nanoid")nl.test(t.data)||(s=this._getOrReturnCtx(t,s),k(s,{validation:"nanoid",code:g.invalid_string,message:o.message}),r.dirty());else if(o.kind==="cuid")Xa.test(t.data)||(s=this._getOrReturnCtx(t,s),k(s,{validation:"cuid",code:g.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:g.invalid_string,message:o.message}),r.dirty());else if(o.kind==="ulid")el.test(t.data)||(s=this._getOrReturnCtx(t,s),k(s,{validation:"ulid",code:g.invalid_string,message:o.message}),r.dirty());else if(o.kind==="url")try{new URL(t.data)}catch{s=this._getOrReturnCtx(t,s),k(s,{validation:"url",code:g.invalid_string,message:o.message}),r.dirty()}else o.kind==="regex"?(o.regex.lastIndex=0,o.regex.test(t.data)||(s=this._getOrReturnCtx(t,s),k(s,{validation:"regex",code:g.invalid_string,message:o.message}),r.dirty())):o.kind==="trim"?t.data=t.data.trim():o.kind==="includes"?t.data.includes(o.value,o.position)||(s=this._getOrReturnCtx(t,s),k(s,{code:g.invalid_string,validation:{includes:o.value,position:o.position},message:o.message}),r.dirty()):o.kind==="toLowerCase"?t.data=t.data.toLowerCase():o.kind==="toUpperCase"?t.data=t.data.toUpperCase():o.kind==="startsWith"?t.data.startsWith(o.value)||(s=this._getOrReturnCtx(t,s),k(s,{code:g.invalid_string,validation:{startsWith:o.value},message:o.message}),r.dirty()):o.kind==="endsWith"?t.data.endsWith(o.value)||(s=this._getOrReturnCtx(t,s),k(s,{code:g.invalid_string,validation:{endsWith:o.value},message:o.message}),r.dirty()):o.kind==="datetime"?cs(o).test(t.data)||(s=this._getOrReturnCtx(t,s),k(s,{code:g.invalid_string,validation:"datetime",message:o.message}),r.dirty()):o.kind==="date"?pl.test(t.data)||(s=this._getOrReturnCtx(t,s),k(s,{code:g.invalid_string,validation:"date",message:o.message}),r.dirty()):o.kind==="time"?ml(o).test(t.data)||(s=this._getOrReturnCtx(t,s),k(s,{code:g.invalid_string,validation:"time",message:o.message}),r.dirty()):o.kind==="duration"?sl.test(t.data)||(s=this._getOrReturnCtx(t,s),k(s,{validation:"duration",code:g.invalid_string,message:o.message}),r.dirty()):o.kind==="ip"?gl(t.data,o.version)||(s=this._getOrReturnCtx(t,s),k(s,{validation:"ip",code:g.invalid_string,message:o.message}),r.dirty()):o.kind==="jwt"?hl(t.data,o.alg)||(s=this._getOrReturnCtx(t,s),k(s,{validation:"jwt",code:g.invalid_string,message:o.message}),r.dirty()):o.kind==="cidr"?yl(t.data,o.version)||(s=this._getOrReturnCtx(t,s),k(s,{validation:"cidr",code:g.invalid_string,message:o.message}),r.dirty()):o.kind==="base64"?dl.test(t.data)||(s=this._getOrReturnCtx(t,s),k(s,{validation:"base64",code:g.invalid_string,message:o.message}),r.dirty()):o.kind==="base64url"?fl.test(t.data)||(s=this._getOrReturnCtx(t,s),k(s,{validation:"base64url",code:g.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:g.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}};ke.create=e=>new ke({checks:[],typeName:E.ZodString,coerce:e?.coerce??!1,...A(e)});function kl(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 R{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:g.invalid_type,expected:b.number,received:o.parsedType}),S}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:g.invalid_type,expected:"integer",received:"float",message:o.message}),s.dirty()):o.kind==="min"?(o.inclusive?t.data<o.value:t.data<=o.value)&&(r=this._getOrReturnCtx(t,r),k(r,{code:g.too_small,minimum:o.value,type:"number",inclusive:o.inclusive,exact:!1,message:o.message}),s.dirty()):o.kind==="max"?(o.inclusive?t.data>o.value:t.data>=o.value)&&(r=this._getOrReturnCtx(t,r),k(r,{code:g.too_big,maximum:o.value,type:"number",inclusive:o.inclusive,exact:!1,message:o.message}),s.dirty()):o.kind==="multipleOf"?kl(t.data,o.value)!==0&&(r=this._getOrReturnCtx(t,r),k(r,{code:g.not_multiple_of,multipleOf:o.value,message:o.message}),s.dirty()):o.kind==="finite"?Number.isFinite(t.data)||(r=this._getOrReturnCtx(t,r),k(r,{code:g.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,...A(e)});var $e=class e extends R{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:g.too_small,type:"bigint",minimum:o.value,inclusive:o.inclusive,message:o.message}),s.dirty()):o.kind==="max"?(o.inclusive?t.data>o.value:t.data>=o.value)&&(r=this._getOrReturnCtx(t,r),k(r,{code:g.too_big,type:"bigint",maximum:o.value,inclusive:o.inclusive,message:o.message}),s.dirty()):o.kind==="multipleOf"?t.data%o.value!==BigInt(0)&&(r=this._getOrReturnCtx(t,r),k(r,{code:g.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:g.invalid_type,expected:b.bigint,received:n.parsedType}),S}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}};$e.create=e=>new $e({checks:[],typeName:E.ZodBigInt,coerce:e?.coerce??!1,...A(e)});var Ce=class extends R{_parse(t){if(this._def.coerce&&(t.data=!!t.data),this._getType(t)!==b.boolean){let r=this._getOrReturnCtx(t);return k(r,{code:g.invalid_type,expected:b.boolean,received:r.parsedType}),S}return M(t.data)}};Ce.create=e=>new Ce({typeName:E.ZodBoolean,coerce:e?.coerce||!1,...A(e)});var Oe=class e extends R{_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:g.invalid_type,expected:b.date,received:o.parsedType}),S}if(Number.isNaN(t.data.getTime())){let o=this._getOrReturnCtx(t);return k(o,{code:g.invalid_date}),S}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:g.too_small,message:o.message,inclusive:!0,exact:!1,minimum:o.value,type:"date"}),r.dirty()):o.kind==="max"?t.data.getTime()>o.value&&(s=this._getOrReturnCtx(t,s),k(s,{code:g.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}};Oe.create=e=>new Oe({checks:[],coerce:e?.coerce||!1,typeName:E.ZodDate,...A(e)});var Xe=class extends R{_parse(t){if(this._getType(t)!==b.symbol){let r=this._getOrReturnCtx(t);return k(r,{code:g.invalid_type,expected:b.symbol,received:r.parsedType}),S}return M(t.data)}};Xe.create=e=>new Xe({typeName:E.ZodSymbol,...A(e)});var Ie=class extends R{_parse(t){if(this._getType(t)!==b.undefined){let r=this._getOrReturnCtx(t);return k(r,{code:g.invalid_type,expected:b.undefined,received:r.parsedType}),S}return M(t.data)}};Ie.create=e=>new Ie({typeName:E.ZodUndefined,...A(e)});var Ne=class extends R{_parse(t){if(this._getType(t)!==b.null){let r=this._getOrReturnCtx(t);return k(r,{code:g.invalid_type,expected:b.null,received:r.parsedType}),S}return M(t.data)}};Ne.create=e=>new Ne({typeName:E.ZodNull,...A(e)});var be=class extends R{constructor(){super(...arguments),this._any=!0}_parse(t){return M(t.data)}};be.create=e=>new be({typeName:E.ZodAny,...A(e)});var pe=class extends R{constructor(){super(...arguments),this._unknown=!0}_parse(t){return M(t.data)}};pe.create=e=>new pe({typeName:E.ZodUnknown,...A(e)});var ee=class extends R{_parse(t){let n=this._getOrReturnCtx(t);return k(n,{code:g.invalid_type,expected:b.never,received:n.parsedType}),S}};ee.create=e=>new ee({typeName:E.ZodNever,...A(e)});var Qe=class extends R{_parse(t){if(this._getType(t)!==b.undefined){let r=this._getOrReturnCtx(t);return k(r,{code:g.invalid_type,expected:b.void,received:r.parsedType}),S}return M(t.data)}};Qe.create=e=>new Qe({typeName:E.ZodVoid,...A(e)});var me=class e extends R{_parse(t){let{ctx:n,status:r}=this._processInputParams(t),s=this._def;if(n.parsedType!==b.array)return k(n,{code:g.invalid_type,expected:b.array,received:n.parsedType}),S;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?g.too_big:g.too_small,minimum:a?s.exactLength.value:void 0,maximum:i?s.exactLength.value:void 0,type:"array",inclusive:!0,exact:!0,message:s.exactLength.message}),r.dirty())}if(s.minLength!==null&&n.data.length<s.minLength.value&&(k(n,{code:g.too_small,minimum:s.minLength.value,type:"array",inclusive:!0,exact:!1,message:s.minLength.message}),r.dirty()),s.maxLength!==null&&n.data.length>s.maxLength.value&&(k(n,{code:g.too_big,maximum:s.maxLength.value,type:"array",inclusive:!0,exact:!1,message:s.maxLength.message}),r.dirty()),n.common.async)return Promise.all([...n.data].map((i,a)=>s.type._parseAsync(new W(n,i,n.path,a)))).then(i=>L.mergeArray(r,i));let o=[...n.data].map((i,a)=>s.type._parseSync(new W(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,...A(t)});function qe(e){if(e instanceof U){let t={};for(let n in e.shape){let r=e.shape[n];t[n]=K.create(qe(r))}return new U({...e._def,shape:()=>t})}else return e instanceof me?new me({...e._def,type:qe(e.element)}):e instanceof K?K.create(qe(e.unwrap())):e instanceof ie?ie.create(qe(e.unwrap())):e instanceof oe?oe.create(e.items.map(t=>qe(t))):e}var U=class e extends R{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:g.invalid_type,expected:b.object,received:u.parsedType}),S}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 W(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:g.unrecognized_keys,keys:a}),r.dirty());else if(u!=="strip")throw new Error("Internal ZodObject error: invalid unknownKeys value.")}else{let u=this._def.catchall;for(let c of a){let d=s.data[c];l.push({key:{status:"valid",value:c},value:u._parse(new W(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 qe(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 K;)o=o._def.innerType;n[r]=o}return new e({...this._def,shape:()=>n})}keyof(){return ds(C.objectKeys(this.shape))}};U.create=(e,t)=>new U({shape:()=>e,unknownKeys:"strip",catchall:ee.create(),typeName:E.ZodObject,...A(t)});U.strictCreate=(e,t)=>new U({shape:()=>e,unknownKeys:"strict",catchall:ee.create(),typeName:E.ZodObject,...A(t)});U.lazycreate=(e,t)=>new U({shape:e,unknownKeys:"strip",catchall:ee.create(),typeName:E.ZodObject,...A(t)});var Pe=class extends R{_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 z(a.ctx.common.issues));return k(n,{code:g.invalid_union,unionErrors:i}),S}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 z(l));return k(n,{code:g.invalid_union,unionErrors:a}),S}}get options(){return this._def.options}};Pe.create=(e,t)=>new Pe({options:e,typeName:E.ZodUnion,...A(t)});var fe=e=>e instanceof Fe?fe(e.schema):e instanceof Y?fe(e.innerType()):e instanceof Le?[e.value]:e instanceof Me?e.options:e instanceof je?C.objectValues(e.enum):e instanceof He?fe(e._def.innerType):e instanceof Ie?[void 0]:e instanceof Ne?[null]:e instanceof K?[void 0,...fe(e.unwrap())]:e instanceof ie?[null,...fe(e.unwrap())]:e instanceof _t||e instanceof Ue?fe(e.unwrap()):e instanceof ze?fe(e._def.innerType):[],Kt=class e extends R{_parse(t){let{ctx:n}=this._processInputParams(t);if(n.parsedType!==b.object)return k(n,{code:g.invalid_type,expected:b.object,received:n.parsedType}),S;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:g.invalid_union_discriminator,options:Array.from(this.optionsMap.keys()),path:[r]}),S)}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,...A(r)})}};function Dn(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=Dn(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=Dn(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 De=class extends R{_parse(t){let{status:n,ctx:r}=this._processInputParams(t),s=(o,i)=>{if(Gt(o)||Gt(i))return S;let a=Dn(o.value,i.value);return a.valid?((Vt(o)||Vt(i))&&n.dirty(),{status:n.value,value:a.data}):(k(r,{code:g.invalid_intersection_types}),S)};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}))}};De.create=(e,t,n)=>new De({left:e,right:t,typeName:E.ZodIntersection,...A(n)});var oe=class e extends R{_parse(t){let{status:n,ctx:r}=this._processInputParams(t);if(r.parsedType!==b.array)return k(r,{code:g.invalid_type,expected:b.array,received:r.parsedType}),S;if(r.data.length<this._def.items.length)return k(r,{code:g.too_small,minimum:this._def.items.length,inclusive:!0,exact:!1,type:"array"}),S;!this._def.rest&&r.data.length>this._def.items.length&&(k(r,{code:g.too_big,maximum:this._def.items.length,inclusive:!0,exact:!1,type:"array"}),n.dirty());let o=[...r.data].map((i,a)=>{let l=this._def.items[a]||this._def.rest;return l?l._parse(new W(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,...A(t)})};var Wt=class e extends R{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:g.invalid_type,expected:b.object,received:r.parsedType}),S;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?L.mergeObjectAsync(n,s):L.mergeObjectSync(n,s)}get element(){return this._def.valueType}static create(t,n,r){return n instanceof R?new e({keyType:t,valueType:n,typeName:E.ZodRecord,...A(r)}):new e({keyType:ke.create(),valueType:t,typeName:E.ZodRecord,...A(n)})}},et=class extends R{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:g.invalid_type,expected:b.map,received:r.parsedType}),S;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 S;(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 S;(u.status==="dirty"||c.status==="dirty")&&n.dirty(),a.set(u.value,c.value)}return{status:n.value,value:a}}}};et.create=(e,t,n)=>new et({valueType:t,keyType:e,typeName:E.ZodMap,...A(n)});var tt=class e extends R{_parse(t){let{status:n,ctx:r}=this._processInputParams(t);if(r.parsedType!==b.set)return k(r,{code:g.invalid_type,expected:b.set,received:r.parsedType}),S;let s=this._def;s.minSize!==null&&r.data.size<s.minSize.value&&(k(r,{code:g.too_small,minimum:s.minSize.value,type:"set",inclusive:!0,exact:!1,message:s.minSize.message}),n.dirty()),s.maxSize!==null&&r.data.size>s.maxSize.value&&(k(r,{code:g.too_big,maximum:s.maxSize.value,type:"set",inclusive:!0,exact:!1,message:s.maxSize.message}),n.dirty());let o=this._def.valueType;function i(l){let u=new Set;for(let c of l){if(c.status==="aborted")return S;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:_.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)}};tt.create=(e,t)=>new tt({valueType:e,minSize:null,maxSize:null,typeName:E.ZodSet,...A(t)});var Yt=class e extends R{constructor(){super(...arguments),this.validate=this.implement}_parse(t){let{ctx:n}=this._processInputParams(t);if(n.parsedType!==b.function)return k(n,{code:g.invalid_type,expected:b.function,received:n.parsedType}),S;function r(a,l){return bt({data:a,path:n.path,errorMaps:[n.common.contextualErrorMap,n.schemaErrorMap,We(),de].filter(u=>!!u),issueData:{code:g.invalid_arguments,argumentsError:l}})}function s(a,l){return bt({data:a,path:n.path,errorMaps:[n.common.contextualErrorMap,n.schemaErrorMap,We(),de].filter(u=>!!u),issueData:{code:g.invalid_return_type,returnTypeError:l}})}let o={errorMap:n.common.contextualErrorMap},i=n.data;if(this._def.returns instanceof _e){let a=this;return M(async function(...l){let u=new z([]),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 z([r(l,u.error)]);let c=Reflect.apply(i,this,u.data),d=a._def.returns.safeParse(c,o);if(!d.success)throw new z([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,...A(r)})}},Fe=class extends R{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})}};Fe.create=(e,t)=>new Fe({getter:e,typeName:E.ZodLazy,...A(t)});var Le=class extends R{_parse(t){if(t.data!==this._def.value){let n=this._getOrReturnCtx(t);return k(n,{received:n.data,code:g.invalid_literal,expected:this._def.value}),S}return{status:"valid",value:t.data}}get value(){return this._def.value}};Le.create=(e,t)=>new Le({value:e,typeName:E.ZodLiteral,...A(t)});function ds(e,t){return new Me({values:e,typeName:E.ZodEnum,...A(t)})}var Me=class e extends R{_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:g.invalid_type}),S}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:g.invalid_enum_value,options:r}),S}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})}};Me.create=ds;var je=class extends R{_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:g.invalid_type}),S}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:g.invalid_enum_value,options:s}),S}return M(t.data)}get enum(){return this._def.values}};je.create=(e,t)=>new je({values:e,typeName:E.ZodNativeEnum,...A(t)});var _e=class extends R{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:g.invalid_type,expected:b.promise,received:n.parsedType}),S;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})))}};_e.create=(e,t)=>new _e({type:e,typeName:E.ZodPromise,...A(t)});var Y=class extends R{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 S;let l=await this._def.schema._parseAsync({data:a,path:r.path,parent:r});return l.status==="aborted"?S:l.status==="dirty"?Ae(l.value):n.value==="dirty"?Ae(l.value):l});{if(n.value==="aborted")return S;let a=this._def.schema._parseSync({data:i,path:r.path,parent:r});return a.status==="aborted"?S:a.status==="dirty"?Ae(a.value):n.value==="dirty"?Ae(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"?S:(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"?S:(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(!ye(i))return S;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=>ye(i)?Promise.resolve(s.transform(i.value,o)).then(a=>({status:n.value,value:a})):S);C.assertNever(s)}};Y.create=(e,t,n)=>new Y({schema:e,typeName:E.ZodEffects,effect:t,...A(n)});Y.createWithPreprocess=(e,t,n)=>new Y({schema:t,effect:{type:"preprocess",transform:e},typeName:E.ZodEffects,...A(n)});var K=class extends R{_parse(t){return this._getType(t)===b.undefined?M(void 0):this._def.innerType._parse(t)}unwrap(){return this._def.innerType}};K.create=(e,t)=>new K({innerType:e,typeName:E.ZodOptional,...A(t)});var ie=class extends R{_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,...A(t)});var He=class extends R{_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}};He.create=(e,t)=>new He({innerType:e,typeName:E.ZodDefault,defaultValue:typeof t.default=="function"?t.default:()=>t.default,...A(t)});var ze=class extends R{_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 Ye(s)?s.then(o=>({status:"valid",value:o.status==="valid"?o.value:this._def.catchValue({get error(){return new z(r.common.issues)},input:r.data})})):{status:"valid",value:s.status==="valid"?s.value:this._def.catchValue({get error(){return new z(r.common.issues)},input:r.data})}}removeCatch(){return this._def.innerType}};ze.create=(e,t)=>new ze({innerType:e,typeName:E.ZodCatch,catchValue:typeof t.catch=="function"?t.catch:()=>t.catch,...A(t)});var nt=class extends R{_parse(t){if(this._getType(t)!==b.nan){let r=this._getOrReturnCtx(t);return k(r,{code:g.invalid_type,expected:b.nan,received:r.parsedType}),S}return{status:"valid",value:t.data}}};nt.create=e=>new nt({typeName:E.ZodNaN,...A(e)});var bl=Symbol("zod_brand"),_t=class extends R{_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}},xt=class e extends R{_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"?S:o.status==="dirty"?(n.dirty(),Ae(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"?S: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 R{_parse(t){let n=this._def.innerType._parse(t),r=s=>(ye(s)&&(s.value=Object.freeze(s.value)),s);return Ye(n)?n.then(s=>r(s)):r(n)}unwrap(){return this._def.innerType}};Ue.create=(e,t)=>new Ue({innerType:e,typeName:E.ZodReadonly,...A(t)});function as(e,t){let n=typeof e=="function"?e(t):typeof e=="string"?{message:e}:e;return typeof n=="string"?{message:n}:n}function fs(e,t={},n){return e?be.create().superRefine((r,s)=>{let o=e(r);if(o instanceof Promise)return o.then(i=>{if(!i){let a=as(t,r),l=a.fatal??n??!0;s.addIssue({code:"custom",...a,fatal:l})}});if(!o){let i=as(t,r),a=i.fatal??n??!0;s.addIssue({code:"custom",...i,fatal:a})}}):be.create()}var _l={object:U.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 xl=(e,t={message:`Input not instance of ${e.name}`})=>fs(n=>n instanceof e,t),ps=ke.create,ms=Re.create,wl=nt.create,Sl=$e.create,gs=Ce.create,vl=Oe.create,El=Xe.create,Tl=Ie.create,Al=Ne.create,Rl=be.create,$l=pe.create,Cl=ee.create,Ol=Qe.create,Il=me.create,Nl=U.create,Pl=U.strictCreate,Dl=Pe.create,Fl=Kt.create,Ll=De.create,Ml=oe.create,jl=Wt.create,Hl=et.create,zl=tt.create,Ul=Yt.create,Bl=Fe.create,Zl=Le.create,Jl=Me.create,Gl=je.create,Vl=_e.create,Kl=Y.create,Wl=K.create,Yl=ie.create,ql=Y.createWithPreprocess,Xl=xt.create,Ql=()=>ps().optional(),eu=()=>ms().optional(),tu=()=>gs().optional(),nu={string:(e=>ke.create({...e,coerce:!0})),number:(e=>Re.create({...e,coerce:!0})),boolean:(e=>Ce.create({...e,coerce:!0})),bigint:(e=>$e.create({...e,coerce:!0})),date:(e=>Oe.create({...e,coerce:!0}))};var ru=S;var xe=h.object({slug:h.string().min(1).max(64),description:h.string().max(255).optional(),match_command:h.string().min(1),priority:h.number().int().default(50),strip_ansi:h.boolean().default(!1),strip_lines_matching:h.array(h.string()).default([]),keep_failures:h.boolean().default(!1),strip_on_failure:h.boolean().default(!1),fold_passing:h.boolean().default(!1),fold_passing_threshold:h.number().int().positive().max(1e3).optional(),mask_abs_paths:h.boolean().default(!1),preserve_exact:h.boolean().default(!1),truncate_lines_at:h.number().int().positive().max(1e4).optional(),max_lines:h.number().int().positive().max(1e5).optional(),scale_with_level:h.boolean().default(!0),transform:h.string().max(64).optional(),on_empty:h.string().max(255).optional()});var xu=bu(_u(import.meta.url)),wu=process.env.TOKMIZER_FILTERS_DIR||As(xu,"..","..","filters"),rt=null,Ts=!1;function Su(){return!1}async function Rs(){return rt||(Su()?(rt=await vu(wu),rt):(!Ts&&process.env.TOKMIZER_DEBUG==="1"&&(process.stderr.write(`tokmizer: disk loader disabled (set TOKMIZER_DEV=1 to re-enable for local dev).
|
|
18
|
+
`),Ts=!0),rt=new Map,rt))}async function vu(e){let t=new Map,n,r;try{n=(await Promise.resolve().then(()=>(Kn(),Vn))).parse,r=(await yu(e)).filter(s=>s.endsWith(".toml"))}catch{return t}for(let s of r){let o=await ku(As(e,s),"utf8"),a=n(o).filters;if(a)for(let[l,u]of Object.entries(a)){let c=xe.parse({slug:l,...u});t.set(l,{...c,matchRegex:new RegExp(c.match_command)})}}return t}import{createHash as Eu}from"node:crypto";var Tu=h.enum(["normal","compact","minimal"]),Au=h.enum(["off","light","balanced","max"]),Et=h.object({enabled:h.boolean().default(!0),telemetryOptIn:h.boolean().default(!0),outputVerbosity:Tu.default("compact"),reducer:Au.default("off"),filters:h.object({enableAll:h.boolean().default(!0),disabled:h.array(h.string().max(64)).max(100).default([])}).default({enableAll:!0,disabled:[]})}),$s=new Map;function q(e){let t=$s.get(e);return t||(t=Eu("sha256").update(`tkr:${e}`).digest("hex").slice(0,16),$s.set(e,t)),t}var Cs=new WeakMap,Ru=256;function st(e,t,n,r=t){let s=Cs.get(r);s||(s=new Map,Cs.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>=Ru){let l=s.keys().next().value;l&&s.delete(l)}return s.set(o,a),a}import{readdir as Ac,readFile as so,writeFile as Hb,mkdir as zb,rename as Ub}from"node:fs/promises";import{readdirSync as Rc,statSync as to}from"node:fs";import{createHash as $c}from"node:crypto";import{basename as Gb,join as an}from"node:path";var $u=/\x1b\[[0-9;?]*[ -/]*[@-~]/g,Cu=/\x1b\][^\x07\x1b]*(?:\x07|\x1b\\)/g;function ae(e){return e.replace($u,"").replace(Cu,"")}function Os(e,t){return t.length===0?e:e.filter(n=>!t.some(r=>r.test(n)))}function Is(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 ot(e){return`\u2026 (${e} more lines omitted)`}function Ns(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),ot(s.length),...e.slice(e.length-r)],dropped:s}}var Ou=/^\s*(?:[✓✔√]|ok )/,we=/✕|✗|×|\bFAIL\b|\bERROR\b|\bFATAL\b|\bError|\berror|Expected|Received|\bfailed\b|^\s*Tests?:|^\s*Test Suites?:/;function Ps(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)Ou.test(a)&&!we.test(a)?(i.push(a),s+=1):(o(i),i=[],s=0,r.push(a));return o(i),r}var Iu=/(?:\/[\w.@+-]+){3,}/g;function Ds(e){return e.map(t=>t.replace(Iu,n=>{let r=n.split("/").filter(Boolean);return r.length<=2?n:`\u2026/${r.slice(-2).join("/")}`}))}var Nu=/^(\s*)(?:export\s+)?(?:async\s+)?(?:function|interface|type|const|let|var|def|fn|impl|trait|struct|enum)\s+[\w$]+/,Pu=/\{\s*$/;var Du=/^\s*(?:(?:public|private|protected|static|async|get|set|readonly|override)\s+)*([\w$]+)\s*\(([^)]*)\)\s*(?::\s*[^{]+)?\{\s*$/,Fu=new Set(["if","for","while","switch","catch","do","with","return","else","function","await","yield"]);function Lu(e){let t=Du.exec(e);return!t||Fu.has(t[1])?!1:!/=>|\bfunction\b/.test(t[2])}var Mu=/^\s*(?:if|for|while|switch|try|do)\b[^{}]*\{\s*$/;function ju(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 Hu(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==="&"))&&ju(e,s+1,o)&&(r=o),s+=1;continue}o==="{"||o==="("||o==="["?n+=1:(o==="}"||o===")"||o==="]")&&(n-=1),s+=1}return n}var zu=/^\s*… (\d+) lines? folded(?: \(\d+-\d+\): Read offset=\d+ limit=\d+ before editing)? …$/;function Uu(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=zu.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 Tt(e,t=3,n=!1){let r=[],s=0;for(;s<e.length;){let o=e[s];if(Nu.test(o)&&Pu.test(o)||Lu(o)||Mu.test(o)){let i={inBlockComment:!1,inTemplate:!1},a=0,l=s,u=!1;for(;l<e.length&&l-s<200;)if(a+=Hu(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(Uu(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 Bu=/\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 en(e){let t=e.slice(0,4096);return!(!Bu.test(t)||t.split(`
|
|
19
|
+
`).length<6)}var js=/^\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*/,Hs=/^\s*(?:\[(?:DEBUG|TRACE|INFO|VERBOSE)\]|(?:DEBUG|TRACE|INFO|VERBOSE)(?!\s*:))(?=\s|:|$)(?!\s*[+\-*\/%&|^?]*=)/,zs=new RegExp(we.source,"i"),Us=/\bWARN(?:ING)?\b/i;function Bs(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(Hs.test(s.replace(js,""))&&!zs.test(s)&&!Us.test(s)){n+=1;continue}r(),t.push(s)}return r(),t}var Zu=/^(?:DEBUG|INFO):[\w.-]+:/,Ju=/Error|Exception|Traceback|panic|fail|FAIL|Fail|SEVERE|CRITICAL/,Gu=8,Fs=1,Ls=2;function Ms(e){if(e.trim()===""||/^\s/.test(e)||zs.test(e)||Us.test(e)||Ju.test(e))return null;let t=e.replace(js,"");return Hs.test(t)||Zu.test(t)?"\0verbose":e.replace(/\d+/g,"#")}function Zs(e){let t=[],n=0;for(;n<e.length;){let r=Ms(e[n]),s=n+1;if(r!==null)for(;s<e.length&&Ms(e[s])===r;)s+=1;let o=s-n;r===null||o<Gu?t.push(...e.slice(n,s)):(t.push(...e.slice(n,n+Fs)),t.push(`\u2026 ${o-Fs-Ls} similar log lines dropped \u2026`),t.push(...e.slice(s-Ls,s))),n=s}return t}function tn(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.trim()?`${r} \xD7${n}`:r),r=e[s],n=1}return t.push(n>1&&r.trim()?`${r} \xD7${n}`:r),t}function Js(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 Gs=new Map;function B(e,t){Gs.set(e,t)}function Vs(e){return Gs.get(e)}var Vu=/^[dbclps\-][rwxsStT\-]{9}[@.+]?(?:\s|$)/,Ku=/^[./~][^\s]*:$/,Wu=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})?`,Yu=new RegExp(String.raw`^(\S+)\s+\d+\s+(\S+(?:\s+\S+)??)\s+(\d+(?:[.,]\d+)?[KMGTPkmgtp]?i?B?)\s+(?:${Wu})\s+(.+)$`),qu={k:1,m:2,g:3,t:4,p:5},Yn=1e3;function Xu(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]?qu[t[2].toLowerCase()]:0;return Number(t[1].replace(",","."))*1024**n}function ec(e){let t=Yu.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)?Xu(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 tc(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 nc(e){let t=[],n=[],r=!1;for(let f of e){if(f.trim()===""||/^total\s+\d+/.test(f))continue;if(Ku.test(f.trim())||!Vu.test(f))return e;let p=ec(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>Yn){let f=a.length-Yn;a=[...a.slice(0,Yn),`\u2026 ${f} more lines omitted`]}let l=n.length===1?"file":"files",u=t.length===1?"dir":"dirs",c=tc(n),d=`${n.length} ${l}, ${t.length} ${u}`+(c?` (${c})`:"")+(i===null?"":`, owner ${i.replace(" ",":")}`);return a.push(d),a}B("smart-ls",nc);B("smart-read",e=>Tt(e));var Ks=1e3;function rc(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 sc(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 oc(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):"",m=f>=0?d.slice(f+1):d;if(!m)continue;let x=r.get(p)??[];x.push(/\s/.test(m)?`"${m}"`:m),r.set(p,x),o+=1}if(o===0)return e;let i=[...r.keys()].sort(),a=i.every(u=>u!=="")?rc(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=sc(d),p=f?d.map(m=>m.slice(0,-f.length)):d;l.push(`${c?`${c}/`:"./"} (${d.length}${f?`, *${f}`:""}): ${p.join(" ")}`)}if(l.length+s.length>Ks){let u=Math.max(0,Ks-s.length),c=l.length-u;return[...l.slice(0,u),`\u2026 ${c} more lines omitted`,...s]}return[...l,...s]}B("smart-find",oc);var qn=1e3,Ws=200,ic=60,ac=190,lc=/^([^\s:]+):(\d+):(.*)$/,uc=/^([^:]+?)-(\d+)-(.*)$/,cc=/^([^\s:]+):(.*)$/,Ys=/(?:^|\/)(?:__tests__|tests?|spec|fixtures?|__mocks__|__snapshots__)\/|\.(?:test|spec)\.[^/]+$/i;function qs(e){let t=e.trim();return t.length>Ws?`${t.slice(0,Ws)}\u2026`:t}function dc(e){let t=[],n="";for(let r of e){let s=n?`${n}, ${r}`:r;s.length>=ac&&n?(t.push(`${n},`),n=r):n=s}return n&&t.push(n),t}function fc(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 pc(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 m=lc.exec(p),x=uc.exec(p);if(m&&x)return e;let y=m||x?null:cc.exec(p),T=(m??x??y)?.[1];if(!T)return e;let w=m?{line:m[2],content:m[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,m)=>{let x=Ys.test(p)?1:0,y=Ys.test(m)?1:0;return x-y||(p<m?-1:p>m?1:0)}),l=a.length>1?fc(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 m of n.get(p))"separator"in m?c.push(" --"):m.line?c.push(` ${m.line}${m.context?"-":":"} ${qs(m.content)}`):c.push(` ${qs(m.content)}`)}let d=a.length>1&&c.length>ic?dc(a.map(p=>`${u(p)} (${r.get(p)??0})`)):[],f=[`${o}m ${a.length}f${l?` in ${l}/`:""}:`,...d,"",...c];if(f.length>qn){let p=f.length-qn;return[...f.slice(0,qn),`\u2026 ${p} more lines omitted`]}return f}B("smart-grep",pc);var Xs=/^(?:([|\\/ ._-]*\*[|\\/* ._-]* ))?commit [0-9a-f]{7,40}\b/,mc=/^[|\\/* ._-]*$/,gc=/^ {4}/,hc=2;function yc(e){if(!e.some(u=>Xs.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=mc.test(c),f=d?u.slice(s):u,p=gc.test(f),m=i&&p?null:Xs.exec(u);if(m){l(),n=0,s=m[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<=hc?t.push(u):(r+=1,o=d?c:"");continue}l(),t.push(u)}return l(),t}B("smart-log",yc);var kc=/^[\s=]+$/,bc=/^\s*=+\s+(.*?)\s+=+\s*$/,_c=512;B("strip-banners",e=>{let t=[];for(let n of e){if(kc.test(n))continue;let r=n.length<=_c?bc.exec(n):null;t.push(r?r[1]:n)}return t});function xc(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",xc);function wc(e){return e==="compact"?.6:e==="minimal"?.3:1}var Sc=20;function vc(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 Ec(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 nn(e,t,n={}){return Xn(e,t,n).text}function Xn(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=Ec(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(f=>
|
|
22
|
-
`):null,a=[...a.slice(0,y),...D>0?[
|
|
23
|
-
`),a=[...a.slice(0,y),
|
|
21
|
+
`);s.stripRegexes.length&&(a=t.keep_failures?a.filter(f=>we.test(f)||!s.stripRegexes.some(p=>p.test(f))):Os(a,s.stripRegexes)),r!=="normal"&&!t.preserve_exact&&(a=tn(a),a=Js(a)),r==="minimal"&&!t.preserve_exact&&(a=Bs(a),(t.slug==="vitest"||t.slug==="npm-test")&&(a=vc(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"&&en(o))&&(a=Tt(a,l)),t.transform){let f=Vs(t.transform);t.transform==="smart-read"?a=Tt(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,m)=>!f[m]))}t.mask_abs_paths&&(a=Ds(a)),t.fold_passing&&(a=Ps(a,t.fold_passing_threshold??5)),t.truncate_lines_at&&(a=Is(a,t.truncate_lines_at));let c=null;if(t.max_lines){let f=t.scale_with_level?wc(n.verbosity):1,p=Math.min(t.max_lines,Math.max(Sc,Math.round(t.max_lines*f))),m=u?Wn(a):null,x=m?m.filter(y=>!y).length:a.length;if(x>p){let y=p;if(m){let w=0;for(y=0;y<a.length&&w<p;)m[y]||(w+=1),y+=1}let T=x-p;if(t.keep_failures){let w=a.slice(y),O=w.filter(F=>!we.test(F)),D=w.reduce((F,G,Te)=>F+(!we.test(G)&&!m?.[y+Te]?1:0),0);c=O.length>0?O.join(`
|
|
22
|
+
`):null,a=[...a.slice(0,y),...D>0?[ot(D)]:[],...w.filter(F=>we.test(F))]}else if(u)c=a.slice(y).join(`
|
|
23
|
+
`),a=[...a.slice(0,y),ot(T)];else{let{kept:w,dropped:O}=Ns(a,p);c=O.length>0?O.join(`
|
|
24
24
|
`):null,a=w}}}let d=a.join(`
|
|
25
25
|
`);return i&&d.length>0&&(d+=`
|
|
26
|
-
`),d.trim().length===0&&t.on_empty&&(d=t.on_empty),{text:d,droppedTail:c}}import
|
|
27
|
-
`)[0]})`}),{filters:n,tests:r,issues:s}}let a=
|
|
28
|
-
`))if(!/^\s*[✓✔√]\s/.test(t)&&
|
|
26
|
+
`),d.trim().length===0&&t.on_empty&&(d=t.on_empty),{text:d,droppedTail:c}}import Tc from"node:os";import{join as eo}from"node:path";function $(){return process.env.TOKMIZER_HOME||eo(Tc.homedir(),".tokmizer")}function At(){return eo($(),"install-id")}var oo="user/",rn=1,sn=null,no="",ro=0,Cc=1e3;function on(){return an($(),"filters")}function io(){return an($(),"filters-trust.json")}function ao(e){return typeof e=="string"&&e.startsWith(oo)}function Oc(e){return $c("sha256").update(e).digest("hex")}async function Ic(){try{let e=JSON.parse(await so(io(),"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 Nc(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 Pc(e,t){let n=typeof t=="object"&&t!==null&&!Array.isArray(t)?t:{},{tests:r,...s}=n,o=Nc(e,r);if("message"in o)return o;let i=xe.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:`${oo}${i.data.slug}`,matchRegex:a},tests:o.tests}}function Dc(e){return e===void 0||e===rn?null:typeof e=="number"&&Number.isInteger(e)?`schema_version ${e} is not supported: this tkr reads schema_version = ${rn}. Update tkr, or write the file for version ${rn}`:`schema_version must be the number ${rn}`}async function Fc(e){try{return(await Ac(e)).filter(t=>t.endsWith(".toml")).sort()}catch{return[]}}async function Lc(e={}){let t=e.requireTrust!==!1,n=on(),r=new Map,s=new Map,o=[],i=await Fc(n);if(i.length===0)return{dir:n,filters:r,tests:s,issues:o};let a=t?await Ic():null;for(let l of i){let u;try{u=await so(an(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!==Oc(u)){o.push({file:l,message:`changed since it was trusted. Review it, then run: tkr filters trust ${l}`});continue}}let c=await Mc(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 Mc(e,t){let n=new Map,r=new Map,s=[],{parse:o}=await Promise.resolve().then(()=>(Kn(),Vn)),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=Dc(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=Pc(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 jc(){let e=[];for(let t of[io(),on()])try{let n=to(t);e.push(`${n.mtimeMs}:${n.size}`)}catch{e.push("-")}try{for(let t of Rc(on()).filter(n=>n.endsWith(".toml")).sort()){let n=to(an(on(),t));e.push(`${t}:${n.mtimeMs}:${n.size}`)}}catch{}return e.join("|")}function Hc(){let e=Date.now();if(!sn||e-ro>=Cc){ro=e;let t=jc();(!sn||t!==no)&&(no=t,sn=Lc())}return sn}async function zc(e){let{filters:t}=await Hc();return t.size===0?null:st(e,t.values(),null,t)}function lo(e){return async(t,n)=>await zc(t)??e(t,n)}var Uc=[/\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 uo(e){if(!e)return!1;for(let t of ae(e).split(`
|
|
28
|
+
`))if(!/^\s*[✓✔√]\s/.test(t)&&Uc.some(n=>n.test(t)))return!0;return!1}var Bc=new Set(["sudo","command","time","nice","nohup","env","stdbuf","timeout"]),Zc=/^[A-Za-z_][A-Za-z0-9_]*=/,Qn=/^([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(Zc.test(a)){r++;continue}if(Bc.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 Jc=new Set(["cd","export","source","set","unset","mkdir","true",":","pushd","popd","alias","ulimit","umask","echo","printf","sleep","touch","rm","cp","mv","chmod","ln"]);function co(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 Gc(e){let t=co(e,!1);for(let n=t.length-1;n>=0;n--){let r=t[n].trim();if(r)return r}return e.trim()}function er(e){let t=co(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(!Jc.has(r))return null}return Gc(t[t.length-1])}function fo(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 Vc=/^(?: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 tr(e){let t=Vc.exec(e);return t?Je(e.slice(t[0].length)):null}function po(e){let t=Qn.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=er(n),s=r?Je(r):null,i=[s?tr(s):null,s,e].filter(a=>!!a);return[...new Set(i)]}var mo=`
|
|
29
29
|
[YOLO: omitted]
|
|
30
|
-
`;function
|
|
30
|
+
`;function nr(e){let t=Buffer.from(e,"utf8");if(t.length<=256)return e;let n=256-Buffer.byteLength(mo,"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")+mo+t.subarray(s).toString("utf8")}var Kc=/^ID {2,}TITLE {2,}BRANCH {2,}STATE {2,}CREATED *$/,Wc=/^… \([1-9]\d* more lines omitted\)$/,rr=/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(?:\.\d{1,3})?Z$/;function Yc(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
|
|
35
|
+
`:"")}function qc(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(y=>
|
|
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),
|
|
40
|
-
`)+n;return Buffer.byteLength(x)<Buffer.byteLength(a)?x:a}var
|
|
38
|
+
`),s=r.findIndex(y=>Kc.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(Wc.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])||!rr.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),m=i.length>=3&&rr.test(i[0].cells[4])&&i.every(({cells:y})=>rr.test(y[4])&&y[4].slice(10)===p)&&i.length*p.length>`CREATED suffix = ${JSON.stringify(p)}`.length+1;if(m&&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&&m?F.slice(0,10):F).join(" ")}let x=[...r,"",...c].join(`
|
|
40
|
+
`)+n;return Buffer.byteLength(x)<Buffer.byteLength(a)?x:a}var go={"Changes to be committed:":"staged","Changes not staged for commit:":"unstaged","Untracked files:":"untracked"},Xc={modified:"M",deleted:"D","new file":"A",renamed:"R",copied:"C",typechange:"T"},Qc=/^\t(modified|deleted|new file|renamed|copied|typechange):\s+(.+)$/,ed=/^On branch (\S+)$/,td=/^Your branch is (?:up to date with '([^']+)'|(ahead|behind)(?: of)? '([^']+)' by (\d+) commits?(?:, and can be fast-forwarded)?)\.$/;function nd(e){let t=ed.exec(e[0]??"");if(!t)return e;let n=td.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 rd(e){let t=e.endsWith(`
|
|
41
41
|
`)?`
|
|
42
|
-
`:"",n=
|
|
43
|
-
`)),r=null,s=[];for(let o of n){if(Object.hasOwn(
|
|
44
|
-
`)+t}var
|
|
45
|
-
`);for(let n=0;n<t.length;n+=1){if(!
|
|
46
|
-
`)}var
|
|
42
|
+
`:"",n=nd((t?e.slice(0,-1):e).split(`
|
|
43
|
+
`)),r=null,s=[];for(let o of n){if(Object.hasOwn(go,o)){r=go[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=Xc[i[1]];s.push(r==="staged"?`${a} ${i[2]}`:` ${a} ${i[2]}`)}return s.join(`
|
|
44
|
+
`)+t}var ho=/^ (\S.*?) +\| +(\d+(?: [+-]+)?|Bin .*)$/,sd=/^ \d+ files? changed(?:, \d+ insertions?\(\+\))?(?:, \d+ deletions?\(-\))?$/;function od(e){let t=e.split(`
|
|
45
|
+
`);for(let n=0;n<t.length;n+=1){if(!sd.test(t[n]))continue;let r=n;for(;r>0&&ho.test(t[r-1]);)r-=1;for(let s=r;s<n;s+=1)t[s]=t[s].replace(ho," $1 | $2")}return t.join(`
|
|
46
|
+
`)}var id=/^( *(?:[~+-] +)?(?:[\w.-]+|"[^"\n]*")) {2,}= /gm,yo=/^[A-Z][A-Z0-9_]*(?: +[A-Z][A-Z0-9_]*)+$/,ko=/^… \(\d+ more lines omitted\)$/;function ad(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 ld(e){let t=e.endsWith(`
|
|
47
47
|
`)?`
|
|
48
48
|
`:"",n=(t?e.slice(0,-1):e).split(`
|
|
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=>
|
|
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(
|
|
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=>yo.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(ko.test(u)){l.push(u);continue}let c=u.startsWith(" ")||/[^\x20-\x7e]/.test(u)?null:ad(u,a);if(!c)return[...r,...s].join(`
|
|
51
51
|
`)+t;l.push(c.join(" "))}return l.join(`
|
|
52
|
-
`)+t}function
|
|
52
|
+
`)+t}function ud(e){let t=e.endsWith(`
|
|
53
53
|
`)?`
|
|
54
54
|
`:"",n=(t?e.slice(0,-1):e).split(`
|
|
55
|
-
`),r=n.findIndex(i=>
|
|
56
|
-
`)+t}function
|
|
57
|
-
`),n=[];for(let r=0;r<t.length;){let s=t[r],o=r+1;if(
|
|
58
|
-
`)}var
|
|
55
|
+
`),r=n.findIndex(i=>yo.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(ko.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 sr(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=Yc(e,t==="minimal")}else n==="gh"?r=qc(e,t==="minimal"):n==="git-status"?r=rd(e):n==="gcloud"?r=ld(e):n==="oc"?r=ud(e):n==="git-diff"?r=od(e):n==="tofu-plan"&&(r=e.replace(id,"$1 = "));return Buffer.byteLength(r)<Buffer.byteLength(e)?r:e}var cd=/^(?:\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|$)/,dd=/^\[tkr: previous log line repeated \d+ additional times\]$/m;function bo(e){if(Buffer.byteLength(e)<2048||en(e)||dd.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(cd.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 fd=/^(?:[A-Za-z]:)?[^\s"'<>|]+\.(?:[cm]?[jt]sx?|json)$/,pd=/--(?:listFiles|listFilesOnly|listEmittedFiles|showConfig|explainFiles|traceResolution)(?:\s|=|$)/;function _o(e){return pd.test(e)}function xo(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(!
|
|
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])){let f=d[3]?.startsWith("in ")?` ${d[3]}`:"";r=ln(n,`${d[1]}:${d[2]}${r===null?"":f}`,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:]+\))?$/,""))),(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})}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})}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 s.length?[` ${s[0].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,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:
|
|
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 ${
|
|
60
|
+
`),r=0;for(let s of n)if(s.trim()!==""){if(!fd.test(s))return null;r+=1}return r<2?null:`tsc: 0 errors, ${r} files${t?`
|
|
61
|
+
`:""}`}var Eo=/^(?:(?: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|$)/,To={normal:{msg:40,diff:60,frames:6,out:20,bulk:50,repeats:10,trimDiff:!1,changedOnly:!1},compact:{msg:12,diff:24,frames:2,out:5,bulk:20,repeats:2,trimDiff:!0,changedOnly:!1},minimal:{msg:6,diff:8,frames:0,out:0,bulk:10,repeats:1,trimDiff:!0,changedOnly:!0}},md=/node_modules|^node:|^internal\/|site-packages|dist-packages|\/lib\/python\d|\/rustc\/|\.cargo\/registry|\.rustup\/|\/go\/src\/|\/go\/pkg\/mod\/|\/libexec\/src\/|<anonymous>/,gd=/^\s*at\s+(?:.*?\()?((?:file:\/\/)?[^\s()]+?):(\d+)(?::(\d+))?\)?\s*$/,hd=/^\s*❯\s+(?:\S+\s+)?([^\s]+?):(\d+)(?::(\d+))?\s*$/,yd=/^\s*(>)?\s*(\d+)\s*\|/,kd=/^\s*\|\s*[\^~]+\s*$/,bd=/^(?:- Expected|\+ Received|- Snapshot|\+ expected - actual|\+ actual - expected|- expected \+ actual)(?:\s+[-+]\s*\d+)?$/;function it(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 ln(e){return md.test(e)}function un(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 or(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||kd.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 m=gd.exec(f)??hd.exec(f);if(m){s=-1;let y=m[1].replace(/^file:\/\//,"");ln(y)||(r=un(n,`${y}:${m[2]}${m[3]?`:${m[3]}`:""}`,r));continue}let x=yd.exec(f);if(x){s=-1,n.push({kind:"code",text:p,num:Number(x[2]),pointed:x[1]===">"});continue}if(bd.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.kind="source",d.text=d.text.replace(/^>\s*/,""));return{body:u,loc:r}}function Z(e,t=!1){return{text:e.trim().replace(/\s{2,}/g," "),minor:t}}function _d(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=it(e,/^\s*Tests\s+(\d+) failed/),n=[];for(let l of e)/^\s*Test Files\s{2,}\S/.test(l)?n.push(Z(l,!0)):/^\s*(?:Tests|Errors|Type Errors)\s{2,}\S/.test(l)&&n.push(Z(l));let r=[],s=0,o=[],i=[],a=()=>{if(o.length){let{body:l,loc:u}=or(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),m=f.split(" > "),x=p?{file:p[1],name:"(suite)",loc:null,body:[]}:m.length>1?{file:m[0],name:m.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 xd(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=it(e,/^Tests:\s+(\d+) failed/),n=[];for(let c of e)/^Test Suites:\s/.test(c)?n.push(Z(c,!0)):(/^Tests:\s/.test(c)||/^Snapshots:\s/.test(c)&&/failed|obsolete/.test(c))&&n.push(Z(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}=or(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 Ao(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}=or(i.get(l.name),s);l.body=u,l.loc=c}return o}function wd(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=>Z(o.replace(/ \(\S+\)\s*$/,""))),s=Ao(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 Sd(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=it(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=>Z(a.replace(/ \([\d.]+m?s\)\s*$/,""))),i=Ao(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 vd(e){if(!e.some(i=>/^test result: /.test(i))||!e.some(i=>/^---- .+ stdout ----$/.test(i)))return null;let t=it(e,/^test result: FAILED\. \d+ passed; (\d+) failed/),n=[];for(let i of e)/^test result: FAILED/.test(i)?n.push(Z(i.replace(/; finished in [\d.]+m?s\s*$/,""))):/^test result: ok/.test(i)?n.push(Z(i.replace(/; finished in [\d.]+m?s\s*$/,""),!0)):/^error(?:\[\w+\])?: /.test(i)&&n.push(Z(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 m=/^at\s+(\S+?):(\d+):(\d+)$/.exec(f);m&&!ln(m[1])&&(i.loc=un(i.body,`${m[1]}:${m[2]}:${m[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 Ed(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(Z(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(Z(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(Z(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){ln(c[1])||(a.loc=un(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 wo=/^(FAILED|ERROR) (\S+?\.py(?:::\S+)?)(?: - (.*))?$/;function So(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(ln(d[1]))o>=0&&n.splice(o,1);else{let f=d[3]?.startsWith("in ")?` ${d[3]}`:"";r=un(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 vo(e,t){return t.push(Z(e.replace(/ in [\d.]+s(?: \([\d:]+\))?$/,""))),(it([e],/(\d+) failed/)??0)+(it([e],/(\d+) errors?\b/)??0)}function Td(e){if(!e.some(d=>/^={3,} (?:FAILURES|ERRORS|short test summary info) ={3,}$/.test(d)||wo.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=vo(s,r));continue}if(/^(?:\d+ (?:failed|passed|errors?|skipped|xfailed|xpassed|deselected|warnings?)(?:, |\s|$))+(?:in [\d.]+s(?: \([\d:]+\))?)?$/.test(d.trim())){a=vo(d.trim(),r);continue}if(/^!{3,} .+ !{3,}$/.test(d)){r.push(Z(d.replace(/^!+ | !+$/g,"")));continue}let p=/^_{3,} (.+?) _{3,}$/.exec(d);if(p&&(s==="FAILURES"||s==="ERRORS")){o=[],t.set(p[1],o);continue}let m=wo.exec(d);if(m&&s!=="FAILURES"&&s!=="ERRORS"){o=null;let x={kind:m[1],id:m[2],msg:m[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("::"),m=p.join("."),x=[m,`ERROR collecting ${d.id}`,`ERROR at setup of ${m}`,`ERROR at teardown of ${m}`].find(O=>O&&t.has(O)&&!l.has(O));x&&l.add(x);let{body:y,loc:T}=So(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:m}=So(f,null);u.push({file:m?m.replace(/:\d+$/,""):null,name:d,loc:m,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 Ad=12,Rd=[vd,Ed,Td,xd,_d,wd,Sd];function $d(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 Cd(e,t,n){let r=To[n],s=e.body.filter(p=>p.kind==="msg");if(!t)return[...e.body.filter(p=>p.kind==="source"),...s.slice(0,1)].map(p=>` ${p.text}`);let o=e.body.filter(p=>p.kind==="diff"),i=r.trimDiff&&$d(o,s.map(p=>p.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:0,source:1/0,out:r.out},c=r.changedOnly&&o.length>Ad,d=[];for(let p of e.body){if((p.kind==="diff"||p.kind==="legend")&&i)continue;if(p.kind==="diff"&&c&&!/^[-+]/.test(p.text.trim())){l.diff+=1;continue}let m=p.kind==="legend"?"diff":p.kind;if(a[m]>=u[m]&&p.kind!=="legend"){l[m]+=1;continue}p.kind!=="legend"&&(a[m]+=1),d.push(p.kind==="frame"?` at ${p.text}`:` ${p.text}`)}let f=l.msg+l.diff+(n==="normal"?l.frame+l.out:0);return f>0&&d.push(` ${ot(f)}`),d}function Od(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 Id(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 Nd(e,t){let n=To[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:Cd(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 ${Od(o.slice(u,d+1).map(p=>p.f.name))}`:Id(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
|
|
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
|
|
65
|
+
`}function Ro(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 Rd){let s=r(n);if(!(!s||s.failures.length===0))return s.counted===0||s.reported!==null&&s.counted<s.reported?null:Nd(s,t)}return null}import{createCipheriv as c_,createDecipheriv as Pd,hkdfSync as Dd,randomBytes as d_}from"node:crypto";var Fd=Buffer.from("tokmizer-bundle-enc-v1"),Ld=Buffer.from("rules-bundle");function Md(e){return Buffer.from(Dd("sha256",Buffer.from(e,"utf8"),Fd,Ld,32))}function cn(e,t){let n=Md(t),r=Buffer.from(e,"base64url"),s=r.subarray(0,12),o=r.subarray(12,28),i=r.subarray(28),a=Pd("aes-256-gcm",n,s);return a.setAuthTag(o),Buffer.concat([a.update(i),a.final()]).toString("utf8")}import{createPublicKey as rf,verify as sf}from"node:crypto";import{join as jd}from"node:path";import{mkdir as g_,readFile as Hd,writeFile as h_,unlink as y_,rename as k_}from"node:fs/promises";var zd="state.json";function Ud(){try{let e=Intl.DateTimeFormat().resolvedOptions().timeZone;return e&&e.length>0?e:"Etc/UTC"}catch{return"Etc/UTC"}}function Bd(e){return e?.dir??$()}async function Rt(e){let t=Bd(e);try{let n=await Hd(jd(t,zd),"utf8"),r=JSON.parse(n),s=r.timeZone;return{...r,lastSettingsRevision:r.lastSettingsRevision??0,get timeZone(){return s??=Ud()},bonusActive:r.bonusActive??!1,...r.bonusResetAt!==void 0?{bonusResetAt:r.bonusResetAt}:{}}}catch{return null}}import{createRequire as Zd}from"node:module";var Jd=Zd(import.meta.url);function Gd(){let e="0.9.65";if(e)return e;for(let t of["../package.json","../../package.json"])try{let n=Jd(t).version;if(typeof n=="string"&&n)return n}catch{}return"0.0.0"}var $t=Gd();function $o(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 Co=`-----BEGIN PUBLIC KEY-----
|
|
67
67
|
MCowBQYDK2VwAyEAj/kMlXlhTIGHRKxOKMuGFa1S1ybxxwgdYcAE0YM9fgU=
|
|
68
68
|
-----END PUBLIC KEY-----
|
|
69
|
-
`;import{existsSync as
|
|
70
|
-
`);function
|
|
71
|
-
`)}import{chmodSync as N_,readFileSync as Kd,writeFileSync as P_,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="ujkjrcThLVYAYizApisr4pMpOMm9uJNMmr7MZhIRLFd63Ddi7bvvmkJNarsABLT7Ew774-iShYqif-or0CbTCK9KnLwZOnQKG6C-ElcyyonVytF2hVOW6RBovcTSjhqi5h5BbcdaWoeAFlWG_xia8Vz-o03dYakM4rUC4t-sdveI2GcGUtCCerFLOcsX4k4JOPjHcWDm_R5HWDPEAYNEMrtbz5rfXkowL3ywmyyV6TJVnd0SpkAGlXX4yWc664bsMMu5NA8MIlq_7sXgQQuNkx9hD9VMSgu5YD337QEfcmpI0kW53jcGVuYphlT0esR3CYc64djWEj23_D9r4IQG4wj0vCDmQSZ7dCmyzBr9O70iYA_NfTE-6JMP3bE-mUTcnRvv5M7qQRO8GT4fgBCm2FABqvbEtZ9w163o4Lv8xlX7Y-hZDHc1mHt_Iyi5Hxw8FxTLw4kM7rpSBVGruGvdmckjl-iWmyPKD8T-ounm-lrwF7rcOsVMlNuFxfUS8Tta345xbjysT4rHjToLGaWMw7IsbO1JTfs8PT4Xm5PZ8kRQCF9lt4FaEzjKQtv6Nq_EO8dgY0_raP0BjUr5nSnihvu-QGIrQR1qEVwbafjxVEARIX1WQD9SXLaUgi_FIf62dCopKQiSzhgSoqzAOn2jqKeAb5_2EB-0rAmXqUoQTLqvGbPHN2Tvl9NSgYEXhE3gQYvM9n5taAq338MtODPwKgwndLbn-VkdbbCsW_qLkMVibC3-7oK1YKh6unxguP9LV3OKZFFqpYSk2DAQgKkKXVSULHfJZUC5eBfWknnN6sWqk9WEYnejxq76FyRRMAh9_2OiGxm5NAVKPptD2HfpFs2btL71s-LMQV5UCL1DJCUE8uNUNUP4LPY-_HIlHhX1JtLwpBL6C6SU3rc4A0rMZUQgRbRBXO9a3IjLTOO5BBYGRCC2-DFgYmrAYaRmlalZfD_k-1aXYkvMfl8J3soa1YSxgGAFPCFLC8IHe1fyolgyJTYvfaAnRG2ehHb_K728cWhesR1avSfYcQlbdimarRzePLdqcR36Qlsid_s4DiTKu8SbKYZ1-EeNXQOuUAY2c62kKMrZjIElr5siNQ6TtC5lCboDh2HVyCwUSRvllXteHZ1Q1mS4t5GRy9a__6kABnj6SmZRZiP1MiamzJhsVOboLw6cVANy-9Am-s07r6RbtHsWBhaU_4y9PfnA0RrE0ZL3thNfofQUfvvRCilQggXzMFPhHoQax64bOCR_a20IJezCyu0qGzxYj9yZW4zcOd_TZpuYr2MjT4wTq8Ycl8UvPkVkpmCDjsOk_ccBZ3vZGwtiznnbFQhxZAxmLmnIAcetMrs47vQGsBaDC3McP80PMtOPhKRvI_Yt21H9D_Yg80uG_7gq5THrDVC_DtKd8v-Hu7BzPdcMYVYMm_ZxApRfPD-qW_A8jQSrtDawuk69oFYvd4RX-OXwIGWMT0IYqDrQn9NM38uRa-OL68f3YwxbRMaAvz1okOlU-B1eBVePQ6577a246EHrl4GIB_LjlObqFZ5MP5Cm8vForCxVRYjkwMdFjNgdclqt7y708GkJQ1pC1ppgi7NtFZLaWV2NFCC1-3PHL6XM44kYOZ1SyjsbR3zt7grl4bomC2_Hjuc5zOPFV1tm3edXCp1Q1FVJJrxkhBfm2_GxZej2zxyWtFw8IsNQbfSWUWIJM2Tc3CgADCRlUIvzBGk2ZxxIue6IEkQLIh1xWOvt_nUl1_SUNip1MGI4j8G_tj6InhT02fSIF9B8-JPenCfE3H8uw5OLaHms17xx8iGMA4lzEXj-kpCmQfQfUF4yzvAhM9MRkzpuZUpFQSEybvBUjEqD1mtFVKddjC-2jINhN_SVWDwDtuO6mHjNuNIJ8JTFrFE1F5njLlCsLtoqtdo0khRm88E4BSpJZzLeFR402xape7aeyYH0x6XOLqDkXyteDzgI7cUFUPS4RMCF5mYGlb-jv-fdburlT8A0X4rP4vQjDnmRqRa1JBlpX5rRZa3CquTDG5zVYvmfzf6pFGeg_YxQQFFyp3ERMmjL6W0gUsc1Wk49T8ZZGu_Qmp_T3q9dCQENuwPlJKRdv2H1bma425B0mZnasl15xLiFOPnGgCZ-h9SdiqNIG1H36xHF6QN62QVsZJsD71nbkfspciDNFsoawiT7ALusH71Wqwp52HusnvGIinTJ6Q-Ypa-_-rAoBFv2rRXfMy6D-P8T9YL1HhNBLbyhqme_1afH4HWYwAtDBiYd6uB3eYGrPOPZuOuSrr29JjWG5674_Jio2PkLRm6uCa2dKKMUbES_CiRqc2N9OVD34hUXuE2MaQsJLq_h5hic1NFpUsVk1Y7C6bd-8nCzb7a8WhboFztoMaRozQkIU6HTn-P96__T4y9BC-RIXFYLPWqcJWwIy-FPqwVNfDD21KOyGUtSTSypXy-6YlEYPNOkFaDLOpsIMUr8ukttWwqrHAhZKFoKZwPkc_0y1mkgq9aJ2FKryHfHQ2pqIcNmu7HKQywhtyEj3sTPyT4XRJkIC3gEM9rrK6dZ-nhCRZDViHWyouCGZ05cvSkj8A4HunN9S50CyUNuWe2qbGWA8sJWwnsdjOtydNwNPaa84c6BrObyf6-FTRRXukZFLKGWw_o7sEQUTjpFU1twgl7bj1IoQ_35RkdlMLKLcfweqYP8qTzPWH3TIfUnWv0z_BQXMEuFS-c5UFL0_T9dZ-PVdHa5XHvz9qro5ROR2ubfcvSQ3jJXQ9n-bQJ_1IPiMgINvod-nxD6E1HXHsJyX12CIaVJJGtBEKGYr3Srv6xNpH4yva2-0UzotgHNs2xkbzk58aQlDnkqTI--GWyBpnN5CqZ8RLJau2AxKGOgNUy3f2zt9SOjt0bl7n76-96oJUwrXubin5StHsr9sLZj2xooPttYv2jvn8YPjCp4V1CUpKEbsU88TJQtVnqsfq4ysQVIRALxBMn8wd_zQD46sPGYKglQjcjDNUxT03Wx-pJkw6nhNLu6ea0T4UqlwBwK30d65s2TxvSmFyd_gGmX-ysCG8YartS8hU841j7Bn73IKQnBDPHVz0Qk78jO-y0USfl0jU9UlZbmQlGVqhq4smQNcPzcKv5WnQK_9oAk6heBuDH-Urv3yfUhDa7kNJA6ztB37BUbvalrdnD2LjFv-glVD89UEjiuvNvadHS03-76i2k2a1J9zW9_I8Vq3nkrHu7jJSYEu6mISx0E9gA3eaAEzrvHAObn1dhd-2aVAFXegcNPn6chG8SaXqJNgWEpXVyfpQg3beeLddiMGYpI1upaZnWjjokh_YZu3abKg_XT60M2IkR_uLEyKvFX5r-hM0bxDOyiETKFfWXVSUgUiiQsK0f3OiKgz4-E4LZrdMIDidmW2jrjZCI5VoSgtCHMzOSK6FBsU95TbCnMZI4ta_RR4MRPm-rTgcH-CkVh2SUda24ucUZr_ysZoVghfviF_AaQ_0Cn71h0mBi-J0zG6jgRt_sHKyeX1xYOqmN3vaxyt51MFAtsdmj8uD6llvr3QCE3q7TrrTsaBipduRK2LqK__ArIyqjEMkJA-vHwatu587aQrlNzn4v3PUh4yn-1ZTcITrUsfRrqu1BzNAT3pzhsCt7e1qfNPBTAIh2hjr9ow9hD_Lp3uD2ZDgiozt28igqqrj9AO0GASKxlMX0iuQJPG_CGQoQEA1l3K3e3dgXxNcaqj9mITo_-x1p_enqZk8cgGhuvlKYAY_6j28-3W24Rh1bmMxHQFrpK6dWZcBeBqAhNCdrREVHxieXFl0SWO03RP3Mkh4g_aBxyr8lqKHze-L6ZdSyOfAtP0jdsAWrgqWpfLQv-fFay_85yPjy94m4r2nFigHPk1m94MQ5eQ9Go0JLG67W6ZxpGUW0wJ3Cf82CVke31Jd8HHG700iBThDj95QHNqr-Gsgt9G5XykO5DTDbYDALEDfsekt_ufMl0IxSH6OhfYt3llx_BXJDUxUhylS26r8ah4YEzO-9dWWQSHof_Mi_0LeaVAnu7Ayyqihsan5jANmnBCzoCTzrSSYMANoypxohPsgVbVN0ylLkDX0LUfxNCrltIkNdRBRVhu5ypwf1OZUFI4mvdKYfMRzShCxlIpK9CfuaGAarYLKi16-Lb7-TRUWkbIpi5qa2PyVNyZE2ZR-EXrRh5MskcMEZOJGBhB5TDF0xepfm_8lhtRHME5igLk1sW-rOzTgAzyMwfnSRVOKTYRQ4FSkz7HBvUemfE-VUFZt978od1hEDEnwxIMvXr8VsRjWYH1TvUONwWeKIq14VnqGphoMbOA0UtuEwOtbXm8KqJjXgq9oqeUgFfjIP_-WbDckIyWWv7nm9RVxa-t0-kKeE0CA7Be07AHm0atTpaigt7AFm--f0qydQEHgNs-Ep0-A9tdU5oH81Sl0hOuf5tkkps8yOeQzr1f0jENVBOHf9C7yBM5UwfD6HTd-oG0sn7zu4XYSQ0BmkhfA1-rN8oZL_SGAj4IPuCbKQ2Ja7bB6mfqZ1sA2DOEbM_jpj3-Ie5f8WBqxv_txrDEZGLk0mp9tYM9UpYORswNVHlVEuIXlbcpKweplK0-ZOmLYKKYvD51-hTIhxEldb9GlQl-qAoo7jn4HzcMRjelQmw1b1m7WCmBAHBPFcYW-lA_MRQChpZrU6OYTkRXIQCQNabXEIcqmGaHHgQzGKIr0kIfXFgiEYIi_6i5YthIn8woT_3NZsyFnZ3QtCuK2sR4JSE3vFn5AuLlPVx0qBM1r0EW03pRIueqncd3bdvw0EAXLvfv1ovR0x8KK6XNxBDa5SgiG26yaRjNKrAE7_SRVVvKqTIdLAPWLm5jwoIOTmT-whwbVVOVfbqzC5Ql1GyDfru1Vsiu53TWgd1h4Nos5lbEwDC1mIAnBc2kotDsM1pviwxOOVtRA6IemtPlBpFm5Xoi5KmENMZ3IDezqYNg5jsnGVKahPa3bepJnd0cNuT94sXPO3Cxxku7C5YSSvpKypeSbnNEMLaqIAt-eRzN8sxQZk_VlqGHMWElJLpmwLWfJ6YikAmszigB8iKwkF4TaAWfMRLcJ9otKkc4po7rND6fUAJ6AAjwYhMJbgY8FCcYnpZTVVX16dYkrVo6Z33UH_-vRW6caoT-CxDEhe2SHs7DqaXaFbChb-sb70K7nrq9Bn1Z8_DZbu4p28aeqYOUrqcHOg6FPI_nIJmc5XbIeexab0Gmv7RkTw-4Mbstg4s-4fxv2aRcWJnjh2lM4AtOFe2quC7cizRQAuqR2SVEKvRdayOc5RLe_9KYDm49Y1-jsW8zGS9b-t-tJINqKUuCKcWLbZ4iXvke8-Lgts-BBkqox0zj5es_riZn0LEr7_wfCfI6FZJnlJE-JvsdXqtpUhT_kZXFeIWChtAjOYGHHxpqdt2Dn1pvDQXY2-v0SqIzFNNo99-QASGif2qTrtL2CRD3A41opikC3_kS0FNLCEdEqtOSX3e__rNU-RHYNbWahBOUljZSq6br_OiwB50PEDMgDsiZMoiAPevE_jufRE1TbzqHC55falsIaWhwVVWDDv7Xc8SDjumB8tWufAO_Q6j9ILYIF65oOEzrSZl1Jnkmx4rpU_9vsMAH0zhxMJQ6VL0P9I1-Vw20CzWk2k9MrRXNmCGiMkUcgpS4dpI6fMhgpqHEp4K3xaV8i_7BzDmy0K7Lnx95GOHLGzIVr7D6ib8b7fmRLLMc4KiFhbHjB6_ZyVN44tACBAo29v8n1kEmxaSHEnFYkVBLRj5KXISlO6C80FaqWMvKx5fi4sPsWwmH-ep4Hq4AU2PyeKg6UlHLqeLRbZwC93YNhKTUCw78OIiJNaaMzi3Ldue4bzKA1e9Q2OnUpKacXl_SqrapekyNiEXtawu3Eibxl4jG5TfItVajgYSHr0FRdgMG98Oko7kEXVCMxEZsVTvIjpwmcX0b3DakvV2pPg4-l2imAR-xMF4iv8hH5AcLXVNNrc5k48S26Kd5d0dFFITERlzkSyZIY7mXfV7E6V30SjvBGVFOUaPZn3uhCYnu7eRryIuDzH2qXES682l154QRyRAJtgviDjlE-EYhQqvuQAnre1Q3C1vnEwgC2L1Fwdi5giPJpl7rUvTY8lgOXzXbI90NqpJyCyDcqf-gfaxIDj1agS0ILTF_Eot51pC70CyM8vcAszgwoxmA2bEfyTV_w0HUBZ6Eu_7X8dX6MOXp6WPBCnBvny9fHxx0Sw5_bDduBBYy7niU08Wi59CqbSCIDkHfOu07N9cRxLCS2qaOJoUN_4z1AsvLkT80aO7a9hk6Db8Q2jqtQgdTgxKQeFxNOVWWrdobkjdWxGhUeelRqt23LThYU20f5Da_bv2Ni7qOrYejXCffFUbP0TqmdXaQcPLMqHZrNjIXrPp6btiznFb1vjTKKQf1JkuofWJGTgksnmeMT-Kqp5HEGHNfxXb2PV-12FFWrF2wt7n01G0U2QfHsUke9K8Or3P0yFBtxubK53ra2-v4-0wWXu8CCaM7JqWV7pvZ48QajXnby6WTaNWN_6VPQlKthB_e3IFhxFM3yGDmuQ60ozxolBcCZr6v9FKWmU2v3hrry38fecIgFgovbPpxO2HD7yW7FxlhB-DnSB5Xtj3Fl_dLhj-bFK7i-TwywAKZsd_bn7ZxjnZFAozVnfTPNvhWvR5kCEhaXl4TEFDTwmryOtJT4q7CHbjMB5_Z9fYoZ7O4SYx5-wGm8cXqZxxsfGfkMNtikoCOLs7UK0p4cbTX_KNEi03LyswTMIoeK6R4cgojoiXQmvvXif5aOwSMVoOca0IFl0poXTWOB8kZHXVHdi1HCKgXMMzDPLmubsKBVhamBWBHPzSCTa--TxT0Abaq1jeVridyHcyv81F1VkFySFuwabxtd9olaJmh0uqrR_frhmpCPXnjoqkJYmogk000H9NW4CRmlpc3V8NRvhHJ3y-mF003cr9I01z6tO4N8CYn6l2kDQV9QJAA3VullNs52nj6CyhCQcqPRDKfhUdeqIDQ4ZnUOaCLWwNVQj4GzVe2KRZ1HLga3jcP-0eiq5Y4eSDF-vqWO7n5fdAEqd0O8zm9peDb4t4U6D-nxi1eVRxfe1w4AoOYNBTGoiwQrnE8Pk7M64YRnrY6ax9tZrH8_DrL5O3wUxbnEFtMfyJlpBzuj5rLaizpVjDDe0TKftRIOyM66ZyH6c98_TDtfX6WOYO7VD_KUfhhUgDo49-XJE_AgDSVK4YzCkYv7kHBYmJWnpDZWnJ04MZgjj_IM6Df9to79D6PoQ9jPk2UZd7LAdeybiFBIXfcpVuoNu-5oB2c0QRy0R6Dyice7xKMaeyUtZzbnahojhTzGZBSIi8ibCZcK_s2U7778tU_qLmVor9NL44djoUaN46dBLvwwxxyf1WMMPbc2l5VsKZqU_5Qetaab5xg6vxEjxFxzg8pnc7Pg8MOLCizowI18SDHVjtM4RdaAIGIg6XS50STDOk82xbHCaoxQfGGLs6pxd8tKa_kzaG51jlwbhGrxP3R5Oo-74NWni9eTWHzrhS2mM1L_MPMykFwRL01f1cEsfOk738Q9UZJqSrkZMILbZmn70QLmUDimSwk0hOXgaGJhQZh7ij2WR5B9gecbn0xriCGePUbEh5T9yAHS7WJWQbbxRCvRGYFuM0V1u4GrLlfQBrbZ9CuVWcoPJVBzkeXtwd6dUXdbjM93znl7W86xkaIk7r-Ayl2WTnjBJDBaFgB4gHXnvdY2zRB2O9rhgl2ZiqHDz_bSXTUCxCOtOIdrzmD_bpwv_ko8cIRwK9e0nI3IOXsHXhBu7OV4BnL13BOiv_39KKl1cD955nqC3MpYVkGSe3tMvKUGD0Weq2PVBHZonb8Nw-JjHdXbc0OECR9XhGbKCWNZAcK3453gaHf_du9RYWz1V5McRx3oltI5oc6AL2EazwYStkaBRCU7bakx1cugDDbMuQenxD-OpWT88UBMrDE9_pR7QM2AXwU7-qoMj3QACbCiIfOOX2XQOC4KSV1liG03-38mzVyQ3UDjMYUfhq4W4dyWxd0mbPAWQejFz4zsq_PAfGrATrhLNNGTXzbtxXYG6WSYXSwYinfH7OMLyQFaK7mbZuF_CdVw6_mg4L2_2bTICgwEODcHyeoZHUHWER2PoAWXeZVgnpU3nUUM5zzATPD4QK_RAscYFUJAE180FaH4Jifoxq4q5ekyUrOLwRjcnh7i-vhZInIx1xW8I-GMBIY3JIEZFWjBxuncNwJztVniWoWJ1ZEIDABXfmSUdvPfsjy53xRMXMwh2Io1JhgVaq12U9tH12pZSwYFIHPvtH4QYAhTepEn6sgYcOdYESxklRqqMo1nF9QLC4-0M7UnG_6hK7EB_hu_RlKHGGbv6GMxoWdIGkJty9_42qFr0M7O7wACYDxuCoCCkurOx66pbMcLTHLpg7zcx6Zi_UuUN0JHgwjvcpKweMIU_M9qnhtyuqM1pq8WsxsORFyPaslrwnXokV_XoPJIN8UD2ICt8ujgTvNLiVT06A6Nswq852r5QQUc6eA3X6mQE5QuQRX7VGSS2udQ-Q51PECg40IJ8KtKPhCkQLfOVKKYXSWqnwzDYAsN05RP9TUDMks71oQR60XSvfeYM-Lk1p3g3vxaUl1Rju9Q9uRM-Lblvb5bKeL3inCLC04zP4AzVJMTmgf-uO1temRPA2YmsFY1zLJlpCRfYF2yp_wKZAr8mopbPS3VLx9B7P5J04cWYzZltBmkQcEvhi1wWwmL0yJGP5Lcdmuc8sRhqzLm9ApZ3CyLz-u8W2FghI_ETZH3sCzD6UOnJhkvLMv6UjoSvc6zV2bwd5giwtKSKmHfLq4uuAFlnK5b9iVbV6xRlCj-hKve7bYFTjG7nq-wYb9QkxEY5kkZqTrvNk1EBiwMYn_jmlh7Kpj2GVbtlAGQ_C4Tdfu5E3098Hh8nUkStP_NOkI2orDxXQ3bo1reTLGemNKZSue2MzK2lbArFLhQAU16jDEogW6hWhvhvQyTdS5zra8C0SNmbJ37Jm4uCAVpM1kAzykmVGCJ4mgjtOhpvXbR5o-zWvV8JCePb8RkaXNkvO7XG_ZOzmHxw_Xo8z4UeyBggouDhdWPhGoXDgZ1zhfFOg68N0nQbElu14y-5772ipMTx-AmYAzHVudDnwfqLkerIZ66G75QEBoEnMyg7khAnXd1yrQhf7a98C7Ep8oRMdwdnSHz0dwchOgK871KzAgq6VwDTaKLNkZ5Q-NXthQ3AG1P-86DcCqkFk4gt04_kq2M7nJscBOUtjTBJhCXxky0emEdVN5ogN5GfPPkdWZgto1j957wwejjstzuAMX9oWlcrkblHCxRfj3twlX6rCuWFAvlrn6kuA-hdp5a6N95S-mTpI6c4_mvEIyOkE2lKlL6Es_0b0plL0J6QMzh4CIkFIv23S70oRWNXZ83EsjK6gpY4UUc5MSnKPh-ujWXXO5IAjh_-wbkyfFl433tUFm8k4WpjJxMpBf_87bDpRcDZpTOVNfbWT06Z4AUgtscOgPZESQeXFiE0cEZQZaOWZHcLdfS9ue1YYJP9wJF5Y2VRyNAbUSSYq-ejC2dH1Jw4oPyCIrkdM2DC9vqljeRuxyvviPLK-XkqC8WFzokI4hjPf54_Sw8mBoVxWshNV8d984RD6OCR-Py6d__snA8GuboW1NCEbUskTXRLupVJKz-jwrfBhU-i-UTrSG2UlETFHHl8DnbLrGd_f7eUdwcBbCZnkwINTGgfDyg_MPj1LsekgYupjpi66wxrG05rALqwUg0Ksq29a46s1BwEz08RXAxc943gO3fVeq6IUJxTZEZ5mF5WynR93t6zy-SUP3vzTeRcuTyqx7QaV5wvJ-OQFGICrtfHzFjIsfw3CGhvLgyWNe_KqCLgu8WnOzCesPQEpwOfr_I64_GGZhi6s655lLHBux4NudbIhNaM6WdfgvABvhZga2B2NRoOmKSuyZq_F20cIiq4-p4NDtZCtgINf4jhTnijaI5egZNZWdJ_9Z6j8__szS4yQhfTT0HDk1RPqecuaoRQ9k7ZOO4VxJxmUfxByv4HzuvOwiaS8fBFUEDMe7t-Q4Q84PegP4hRKwOV52ROW1j5OQP3S4P6y6iPwOFDzHnfgh0qpIADjAnBTqKZbjq--d8UiwuvTuGoIwV2QWkpSXucwsj3il9G09gvCpLU2QR2jdDDaj_mAKDe89w08jTMnXbR0soghMaoI5bki5EYSV0waSOUHyJz67MUgVJszgCYwdqBelhp2ySRcEFHAlw2k-XI6iGF0iud7T6IPSuZ7c5bLTgDL3vAofo1DO7b9nyjSuOtNDzUBeLPIHaHFIK8c-mZNUuVTLrVkyfR0Wq75RxFU4d-MPAWDSkrLVMiq8j7BQDwbM6_GvifHvnBJz6wwjP98y6TUZHm4KfcMOdmTx7bbZZo5VGENjvT04PdbA9xbuTmCxvujBF_hRZ3ZeKvJufKStyTIfj3tyMfS9gozR8j1nIrL0MsE4rzL3T0YfePjuGSSCm64zZBIDU_vgcKYx-mQyohXR_XaG0-vGiDMbDOzVbmTFzFOX1gplJKCYLI6YSShp-1SZVbrDMhGksZwTtQgjuKAtZHhWDJqUjKsAwg-1aZINS6E_MI5glpQAtK95VgGf9PLVnlM9mmJdUmAhGnlR88z1XZkt_erBUCizaiay0S2S6edzEg-OmlDh6afxjsl-9fTAULcyQpkd4anIMU6jxgFCxD6Ty6uaBHv397F3SxNCXJT1GmJjLchLfEWKnXpCSJ00ubHfE9S7QdV50THrC0zfxlv8HSeEUj4S3g7bLd4xUy9kdC4fZ1lQAY1Yvr75cr0jMmkrLDjA4UnK-vMCNYL1lidtV3FEZaTX88FXYQSWtXFz45eOH4gL_6SZzOJN_OkjYvbMp4KkRmBEhHfnQLDuwKFCwVhmprHcyq6_H_QFJ4QXsagGYh2Uw0TUZPee99RO6ZcRzvL8jnprKN642MIA7D13EVlZlSPHSdf2XFihExbklOleeNlef24THZS5-dMivfi2qBew-bXJdVu8iD3a8DnZoYbzBr0HUPGC_HBSHnwE7wdrtgPVKYsDgpjdqnWmFZlsaQvRNGY1V4OO3AqnbwdpGjhg_PK4r0EYM_xJ_q3mWH4t1YeSFJtUQAYddoW_drmet_kPEcFYt_1RKTnEWPkB07sALPd4Hw1zq9H-Ufm5QhyfPOatp1EkCqQwxx5qNFeuEmeVIiNCwjArxQFLi0zeR7pfQaFDTPI24hqyM27VX6AwmImL8NgLE15tU2Lt6kskSOjk1vMlaimH4uv4zP8HGNfOqZ-zT4PwdLFGMpX8NmKATfjr7Kdg9jXmrvw7M4My-Xtsz89qW9UDEdRlLQ1HORuNPaQWxAT8cQJB31uBQof4ht9LRdPUK3aUqhY9E80oTqtvdwZ8Pd2rndCgAm-QsIp8-eGlmOm35tC5SCoZhFXwMS1-ExQYyW6LcP8pcUeR9Ql5rWttrB_yYtfqCruOi4oQTQUsKnq1aPJMK_xvgzXGEcqxA1gFND4mb8wHUPAZm58anhwSQthi74859NbwZ5-kcbgKdC0hpKj0kjBsXSJy7DziAxX6VAn6hOnRAcDCnamThhFOmmzE2S0rvqtOGqMVKVLMko0qzG7gQeDW05O6h9y1mqIyTR8ye2llUReaIPpv6ZMXJwseW3qAjyjdFEfMnCfylAQFYY5L09-iaPfUYb0lNxZrMq1iBckufDDNQl81CIVq8ii4VFOSfTfxBPNS_Reb38-KHa-ud6Tcdp6LVYa44OZSJSJXFe8u07yL6ZSpybSiJKwMH4BQDAPwn8wwQXPR4WLmUcyeE-eS-089QfJGWJoBmFQ_xOCN20uSGw3xd4dR96dtN7r1ahV4XaQ2aYTd-Td1KzkOY2mOur_JHfZfL01sUS8oFVcqdLt2Wogl5Xje_jO0SUIUS74gIwBZLo8i4YM8RaGFa6tZ3K3doQQYPMpxyKh-UPockbRmBPxxVIkkkfJMgi352AbJgi8RHlQK8JMmiDdQWZnYIYma3GZFgbxL9MJI-U8gPD3xUun7RVBHNVuJuB8Y5ZuHNTzoO8p524OKeTJK3w93gm_NlXc4nqYtZTILHeoCHDcS1tSE75z4_0ibTFwEFAgTvFvFAeRFDoMYt9JotH1Tk1wRhMKdOCfExhrFGSJ7Yo3_N1lmNPSQVXMqaYwlximn3ESU09Z8G58WFD-z7tmKzZUSeY6pB5_IQ_JeQJ5A_JuXduFBnILnQjugthjeYq-Yh7QjgVWPAVigzFopPnmGwFf-JSBngNS8Ut-dznT_kXBF5bGGxMQuCkD9XhN37HZ9LUpWGdSPntvvFLfFSQ_tGM5WUxsmz4_0SFnDuGgFu80O_9r9d9tuyfngiZVItduSXVDTm4gOOb8w0K_6E8PvZIOuFVndQUPR8Im97Qgd3F7pQ2zfuxX8j-qr8uM-FMmtbkqcnOLGtJ2isI77BVpWQcVlW-izQrSrU0e_FBNe553C71qndAA__IFGd9dIbnWyxgBWwd9VKaWEvZSJMmyavuGX1Kha-ec4-PO5Z4T04grGTodfCHzJuqa048OMIkQ3urFEPUeDAcsV6oDwYmnlkT034eyhDzcK2je-mQY5vRRGYspk-lFLJ62g_m7-_b2QBuxRxwtbzaS0GJu8WGkYNgl44hTFvAzvYeEVrOcL7BtTfYIsLov3lcCgYxxV0riF8dPvZzkMi_TtkQXsMsYMYaQl_JkG64Kygp2Qb8fAnqLyME0y9XEMNuhSdR-gdQgmSsbmWtd1dj-llZiZIfeQLU6q_oU2n4migbvRWdveE6wQZ8sp8J41WCpRl_pZeBjpv-NtfBc8roaNM7gi__Awnw94LpD6BxKq8upm2bTkp-oN4dQgYqUACMOblEBWhqB2T4e9gbhpBOecNCxHPuiVdM0XjzvN0azp9y_P5nA_cq0cQUtxI6gt6x0lCpicH8v72Y4CUnv0TBPftip9JUvym_tgdD3bfdpVI8FTstcS3GmoTO5PfTpT0LPRcjTOy-coBkCXcFn_ytypunPqDu0va-HjrTdCinQHlpRvWkQFJD5OWJxTWyrnAwWVEFgE0tHV-JO_bYENPWK_k625ZwQEg3BKPsa2F7wU8ZHZOEhDMm3ADTYnMO9VNYoanxbzC2ejvL_Pg0jNcE4kHBWNZCUDVzx--ONZp1QiKT-k2fM-qXcqkBNOK3tLXF6DrOuiZv8oLrhYsgygApB5Q5LyQo0bzsSEYCuuQjvxIb-VcV2uenoYcha4rRGKjepM08lFkMttH4Lv4BFkPslffOWU8dVGptFrlO9lyPVYrdV5WntKQFy4UxPFvTF52LcodEw9w50QcyFgk9jGitYQOHQppSg5RS588R83mTroRG3VFJs1Tums5RhAY23JsFyUq4JgcG6QGGuIGiYE3sH3nEhUqfMCH4CGaXfWdHnzQ59cawp7t6zush2zoWunCnL3tx5lWkFFcROkeIdqNpPJBR8AZZpTEbzBTE39hKOjGK4Da1_hYmmnkiQEN42Qn6hVJOCMOOMH0SrBX1W58xy3_qzoEDInw8zJd_jg3hKc-ogBs7j5ZiOfFWeQuxkmRSblgPNXp7evZvBKMXBLttddh7Uk0LO7fT33F2TikeSQoTeqTdsFqUnv7cLIMYLpp_Vwi0BudIGaHlYN0EipYsJ5cYtVYTEUZl3Y2YkpCNp0xqookICEOyJnA4neS7NDaVdDD83a1Aa9MfNu6fNRUw_oPNjAgf1fjojvIG4JCHzpaoUw8Adjri22VOBuj3k7Djh7OXR2FAp0wBy818Fa-7shktaiLvKyt61aLXUgqYBw_yiI9Y6qumePCCdx0qm69PUezhSXQUQwaOZEP_d4HbZyhCJ15TREW8jxLlt1z0uzVMXn1yP7aF92IVhnYgEogWCsar8x-Z_g-RadLW2Ehm9Vwbj6Ga1rlhCUSKnjBZ9gFPZYtsYyDwftKO8nbZCmd2I68XdTHMiX8L0r-wKEFLrqXHeVCeKv2HSa9lg_jIbAASit5OaG2FdCKBMsBZoIoOrJvaYmAB0MeDEd4DqQ8Kbwf8k8IyGsxf_B8n88oroyCvF7lkTjUWvcXZjWDRR_tafY2iFQspdjxcnT-ARt64uJePVgvQMhZP4G8oL1-CDvmVyI1FAx2rsPIEP51Z_vXM1aMPo7NEkAoYyxeKgTWd1tFJ7XUzbj6DgYzCmfFXI0u1uphBiMTX3YsIF8uLEqnN6SqP0NAol9ztT5tat7ln-pN47vghaxIrwd9MxKRW9YM8HkkOpTVwwieIPqY3rt9oe1nFjojHVpGib2Hv_5Z8-6U61FH56PoYgjfbaKEdxyq26mfnV6hbFqoHoM58v9pUdVW_6RDGnvjiJ_mf8b2vVUyG2QOlIoaGDB3u4s1f5_QSDwOx6WUyTx6UbutpJGHRt-gLnrGgDDpsLXCaR9Wk-RUxcJQ0VQNIk5cKhMydcFzGv1i5r9sDcd-wUBk0DVlH_dJHxBuxf5cm1Q-dosuyACbcFOxEsbuwJX5EsBMmDPHUCzBjCRv_BLDYO44-MRthikfy0WQAtsRhjf-mrjni0EyFcgd6EZF1sl1xpOnzfqhbIERaE8ovjsuoG_Ma60NRtoH__gC3n12CTsAnY4YVm2yvTbCaieBpIwPRkhnkQzMWWUCeua85apHMjI3sbPd2VXopxtuOCQJQaJLTZTvTaE6OD_JxIeDfxqW9qCBE1bjrq1Ms6MvZbS2oitIx6N1dh3FowBBl7ZYnXdGJW8rCguelHHSUlS_ch6Gi-BANlNpfPjAqd_vfwWGtcNM7MAbFKhw-sAX1yeD0cxKis7bya7nwj__NdbiieiLgJH98RfJGgbtIEUALmsCCr_aVS3ajBuOfK55xJnL-T0i1cXfyZQvFfhG-BYIiBCLxmKnYEvsrLygI6SfhQS5aAO3GEn932Nw-4UW10LwWqAp3ajPxdZbLJd2gX7Lc1aFFGBPZyenoH2VeZoUhRqxej2ZmcOXPlIVoSLI3jfoOn838EdnlNmrcex6fnfVwm1PUavPz_8mHUz0-w9nN7aknSeRbM5cyM5Cs5MKOf3jgRF3pMsNqA4yvDSxG-FN4VQerS1okROS1CGI1u5ixO6mobCPvdmK8wOTrXlMp1e9ldOgmn1dylRp1CFA2O7lNu51iO6dRsgiyUGkdqBZknwBN6NdVXdlDS1CL7X1BwBo2B6ZcgIFolHzx0D-XlNr_aoiKDydQZ2tEk5xOHmF1cZUAPPiM7mP1Z9rDPIpLwJNl6pAX0cloGaNy85JcQ-JK4oLfIY88U7Wc6lGzG5FVv74VdtSdu_DEDZ22NF9UOfRR33KMYcQkCzPeP6UFN9JjhuJb1xI7Wl_knPU_ujLX9kTdUQ7v6fpY_b7pfTIHnA0ugDQWyIZMIlJCUYa9VWm4sfYaMB6wxJiCRov4FM7KGu058ulsBngr_XoBU1WGh3trm06IQLXHi8PJ-8RLDlx1J_qGQ6kcLJ2ofZM2LntQ51zYFg_cvUY5XyieEKR0ayPPz-9cJ4D_1Lqw837uuIYwecrczwPgO1_aGNWwIT4A4tTZ2wI3jeCJzIPKPfq-bkeY7hGS-7hWOjBhWar2zkniYJ-Xn0ACSI74A9CLGrdAWPzj6-VHQFjHVfLdsplXYnINXE4TkYbo9fWDOntH0BL1KkqGY5Byhle5Cp0FZc6bqEqe9qp9sG0vvTe_rEirc4pSC6Fme6iFRjuqJOB6juWNRzJjD9o_q8yrSSqKQFp0AkD1PM9gqzn05eb81Z4Rqjl80pzPDqG-RJfAj7_oBXuj7ftdsxA9NZ-KMkP6ujSR0yhojwYhkzGP7CUT5yYHujoxNa0rm05VGCzWyl0hP3_JP1widjF2jcbed7mDUJEq2gTEEvwUx2xkCXE8QG1JQ-s_2OmeicKvI_vhaMiHtXiNTNwSW0OUmMjdgBgO8VRxrmFW4ETLrmczhvyZqmfs2YqMPQ_pQ6OIK_cegu4W5KRQErCzV1t-dR0U3HkvcTGn7EObxVb0xGzfbaUaismjGO6JkC41PcDSQZlbEwkMld6fe_W73zXTKOx7epjCSjN3G4DDfaXf1yJu8WSlS_Y0buQjGTf0d3_OHBcY-ZnHOo_Fm2iAGLLUoaR9cVMfuE67IivCKfArg5hFpx-Bi3IvJoU2ZwdjuBh6TCU4r9mPrdG2Vcv_yOBqC3ynTUJqCPoRi0lH08k0UlMKxdNReYm3CT87BY5LS8slFNy31lIF6HDOD2lNynQmiX_vfToRSG4Lqg7dRdLZ9Ik4Av0eapN643K85NFe4a0uGKtjhZJ2LLhpQq_rhyR3rgaCJXwL4aR1Ew3h2vLrR0n2RQStZoc61mVMdyDy8SHup0PWJmXt5DyRC5eChzGYKXua-X4In1mRrhewiZh9hMT0TElZWUdSLwwj-HFzgIfYtkph2Uv6_QktWnzCBiIeha_iywJ4O_wvyDzXrjEdR7TAAEyfiaqoSQKnVEsgUo8apxV7fVaSy23wX0_Y5OdvTHE_wYpq00G0MphwxoVG-6LBHkziqiGCSpueRdJw5kuGBaUyqTjLpnUq68ITrIwrU2jgXIGBIGjzmyiF6qE_1ZiO-S4eDsJQy_mwLjihv0T3xPwyb0iH_t-c88SVqO1ke3vbN86Q8SpWhlmuaikIFqGV-gwuA-4DfA2vqm-38riHxMeFQg0p8GdLQlgkyjYP6CYo3rwzHQNzGw8jJZnNIk9bSsoAQ8xumWb_W-RSsrQ0ugbPhNY3dHm7v1bRJEvLbJTWxvP3sTYedcEu35AjckQrr_5xc7iQYU5v2ejalMXBKhl-6jAE4ECRyY76FWibL-0EKtjSgKfuIqf6hg35Kzo7hI0QPycRN9a7rFqYq1-Bmu-aWEPLBRfVT_78G2LMBR9US_NXoX27BDLFhe9cCjAwQ5N9Km5EMCpqEa8mBzxUkpVfgOZx3bj1HbuTBa1yd68MdIluEXVIGR71qKEKYvO_nLe7b0rGQPk9U2j0-SP7ib7PLhVc-5QbA0sT0UbhVpAuAZImVkgVZ6CqOYkyNAlcmziRj-ldMtZIBGcVcIz31864e8Bx9E5feDpdNErgTN1pGsx_kYrKvvQhFsrxwzwaOddREoBK2A6jDJOf1QHvEc-gTlSuB5f1Aubg9xkdGY6bRgeVuW9ug1LJp35TZfsd_LmrW-Mpjc6sFjeFadReAvtip-22C8YxV3dwR9nUK5daBSdIs6QvbS4SoEpPcyVgO0TEsevEkhJ1d4ZZHsirXWOhMJL94KqyALZQTXt5NmB8sb7IvQnsqKhyFcfdxehBKWdoPDIkYIMXcK7KaiFeJqrEhu7lOclzD5boxnliit8q63Vvn2IyoF_-rWl9vT22GerEOpY5ycz5WTCZN0UbakM1wH_VX9a15c9SPcCL0Iz-30knVzlxaFQU4puEJWy4TwvinCe5FX7CHKqxptL8SC4dR_3iP0za5LCI_FlbmB1bR0VNcY7IkBZzbmfO--D4L4H7NQsgllw4R20l4XsbjcKspu6KW6hFCF-XUhEEtm6PtWE_rZdZQZNlUMakXr6pDvb5lrTJ3krKFgzICjzCQouxHaTIQ-i1F0Z3-YagyvzpjZ5p4WBdyRNV2q9HNK_HqA6j2J32we4MeCdYP4OTjtlKtA4MFmCVPXKrCviXXuoTGkhbfHRftnjrjsCgNLjmDr_HnAZaJkxpUWahDIdtIi6pxugxomBT9QcTyEk0v75TSgVHzmwFtI5TkTJt2aVqqeeAwhXKMsJHxQ8GhI_tknq7ixrfnW3LaJb9LiDh_i0C8fYuykNakyg-pOKEmES7Pgwj8Ep2xSrZLQWc86EsAOOLfJVfQe-crAkQg1whrpvXoSc6nL8Lrve3P1crfPPEpfZ9A1HmtUIlaLRmybs_GscnHGtFl8BM578PUw5OIbEA8298p92BoV6IQSpcA9FUWvJo1H2UiKiVCIj-0ThSzN3qtTjP-V8qLoxPh1d5QxWrfq152EkSe3fzLMtluyLIcJR-HLlAnaCfzJFSZyzypfwr6Qg6f2Kj8qvdPYIhfcpv_BHdfQKfnJqRBa8qY6x3nIQrSddiEVQNO4sHfCHKQXg26AiuvAcYg_m0n4TpOCq_T_LDbB91vui_x2orQ8x2tZtSj9tNGY2JIi63UcjIwz6PlMlsZkAoVt3Q_TozQMspFmzQLJCzF0--uDzemHZ9p3DNn1vzBscaxOzmmYM9Q7-TXVSDOyakW222Q-oVdEUjrhgsgAEcwOHt2bzOqdj989tXwn72Cp4ErFKrIwXmRDgRmZsBzGC3Rhp2sgy200z1jP1j7Z3eEnTgZPAiN5EeMeVEs5vQOQ1fnnUqQFkASPDAhK2nCNBhcLrPKCAtERqleYTAhTVdJrm00Hn7Am23FmiF2KV-UaaeDpUUEDo6iZ4xZPjA_-8s9QX3smbRAa9wMLB5pNaHoPMPTtIjP1fUbDRRNw3hCL7CnpH9JMwehl0gA-Ih8e7CY4I-1LfaBZ5MV_2zh1ChYUuwO-h8DHJrvBqzCiT9Tm5rvSJIJjEDnB5vIGgcXfoLiAL7QxEXh9ENNfQLYseRA7Tt077XzuZm2YMIT-qaffmMxJFhyPmInd4XgGSFdm8ozA3NbOzCMcrzyta_nanI4kB5LFKeqr6fAMcXCkfCHHFmj04SlIwUH0l67QBXmZ932B4l6WdRAA16AySk6ZzQdatj-KmozmIjhlNvYj9u73JCQsEvGLrb7yZgab9EYFO0EQvVDG2mkIrmZ9My-8WW3xfKbGfvW25lCERBhjNx8wi0cTr5OWmX9dV2DYBqbM-4OW-4B3MraqLSgp_Iqpt0JYi7sDIQR3c03JZoeptR922pnomHm_KGe30jWEU33i3ZcWDGl7EwB1brpxz6Z95rBL9U9yG9bQ42VboV6rUS-7cPhpI536Pjxd16HzD67AioRqyvcph0bYBvq92bsX2IWI2sw3FB0BJn02TPjy0gGrMdLSWQOwSYndBollThYSF9H0rQZ9OTht_W6xWYQJdC-i_Jrhvwte0DoyEK0ao4Xlup97uWl6iPrFerBMsY-8zKClPz6f_fFfgD3RiHtKd4VJo_z17kkCBDmsaO-r-DfaxUMRdk1ms-cH-EjWlsUFjuCKl_yuLn_Vx8tEzyc5Hv-XH5bKeRWrBTcg8JOY3VcmjX61fIIzon3kZqo9sEpZWNubPsdHmlDIf7Umffr4B8zW1SOWNu93_4USZCJAcZ_bniZD9DAGuCU7yXE3chcfdqwNTRAlBtMNvwfgwhbJNlsWtki0MnkKSokHtaa9k4uDvKuIcbRwXKdbDBCT9mz7C4NVYFM9PK7mM7LY4Tb8jyjL6BBU2X3JTCfUTuTD1q1MlrWz5frWMAgqEOaggjbdFvz8wMN6aYFA3bFgYcn74OfuiVVwdXwKTeU5SqeLqZFe6aki2OAqRxGC1JFOjcXrZV1ulMR8wdo5elMjBijhHOSNMkf18xHXZGa0CEU9ZefIAqBGd_LVdeQSfCw6J_fFX1rm8mRKVUz_Nj-2tf5YAPnrNcsN8R-PtFpEFWHbSsqERjeOhSiAyDzPpXG6ALwHPXMiqyVHO0KTuu25Ln0VuXnYvMhm3Kt0YaWAgXsnEsCYiw_vEFdVDKEA7VgQvpx-NjpOkObMDbgyMSMRYG7g4tBz97X3Wt8RRIwGvOQZQiAYIGZkaUissZa062P0iXFI43Jw9lLW5oVwJazXusoq00Z0R68fd9Aosh5iQTTuCzMMmsbEZ5GcBT2FrQgvuiVK4KDzKZip2OK58QYEv6AXKdUgBtdiDq0cc4QB1InXEI-JCvWoroZIRWy_mPZel2SWQHOiCykNhghjPbkkUNCPprV6Hfac6i7HOCQPE3Xqx8hyMpajDVPTR_Pwu0bvKxb4ws7duNTD9tzzH-l-UEHebsHhHAuSl_nRyycKbyNxqEh3veY8NpgA6Hvvewxsipr81yBN0TnUmFwSvM-zQW3KxJVkiJPR0C3SeVa_hqMDrbUzVHI2u8IV2bTsCoqLbleCwM-EsmhXukudzR7kePr4YefgJ6VfZabPWCPJbfzmirq8i3VRrbuuiVY9OBnXg8rXQZVROosNSVVhILp4zGm_G95WUy5fL3lABaslGra0L-EK_Xp9MO-9m40xKSTQRmTdiXp1WcB8_0kKLh-gKpuYZTFtSHMoWFOIjmJw58jXtFCHDQx67kWZKLvVTimKYfcEmUYjrLrHzMUb5pJ--bQanv2Wk1x65OUMQWYDqoPnuA8b6SthgXXsiLMrZVMxvfCZ5IHGSZRX8YUV7GoC4E0DRcZ-gwSKSK7TxWrZEQmPpBl4TQD2wqY-upfjFkFmCS7cUh5tvGyEuAMkuwCesUPcU4IklJPS-K0PykT5SOAZpYKYSk5VA4C0szGyI5GV_ew6_0eDfYjrH9Wg-h4E2kRP1gaIX6GKq1m3M-A40jI5Fn6VhjJgEX_-27uwMXjMmEkLCpJNulF6frmhMCrgJ4_M78HoSdgg8KvGERbADSQm8QdRIML9D3KyBRq9viIpK30PqoJt2cRZNZj_w5ibdaWVqEfemCrPinDvyMMqT_OGeQB1kyojf4guhU-Ql9iwiNMdwPate1uuKr9sT-UTu17chGGOFIncLatTxqEvTZYaKlEApDvZluDsH_Wh983yzJ93nsC-l8DAS175cM5XcAeDDUcykEkgGeS1SyrDCEkJFiarv7R2eFC-fPVouS9an-m8s7n6pLy-hXPqiuMr32pVvNPPzmi-fcNYcBZBL3cbgd06DU8Wo3yQRxxEtU-evEYjjKJzWAr-hXhqG6MufYjIPLahrdkUWvaIGG3gqNffbyfson9rOY7GPh-dp_KE19ZnVKN3-0Hy_-_6zpEtpyk6xe91_Ib4JkghtWJLCXGO_MYyU-KFmNuuoNGPAdJMAGUCkwYiLGHvARmkHKCsww10Mv0ND_mmHFV_AfeMrcojl8BvNrR_miBFu1yc438hj21MJAjJmr5IajSkbSpH6PLPZUZh9hGSu3b26d0Ds8SA3zKSJIVEHMWQ_62sH3k3b6RFnebtx-4qv9roYNYbDE5Enwlu7JjDZgeEaJDHTvq2kFdAgamSoUo-C_oxvL6b4M9jsiyEfwQnMoy-M94z-gEqGhmH83AyZVyEoM1Y2QiWW-NUjq7dLvIM4ssYrTON0OsxYcWw4XuqvOvGv8PFWTpa2w0p9FdBoM7soSPKVmvkuRnk8Zb7tGuoWlDCatyvrfMtA1TBo1Wu7wQoGIqQdvKXchru_yr7YbWzIUYyImKNMNa6mMFi6NMGrFDwZRRW1A98YhguCaqhIzi49TDDpC9EURfIxtn9MF6QgU6bmWYuKgidWo_cqVhylrsWWrbVKpW7kg_XqRKeCoPId205tSgJf2SNGSHDODho2bHpRrsU2g5wQBdv4TFF8sdVtQ0vZKub2_l9FdWR0sd22chiO28xdZuV2e7OKfo9j5-uX8idMOz74XExQOrWNmio4RIgmOs9Q7em8GLPYHGvQOLLuUl-03-PHrkO708POWzT-xH6e2mGUuFFLeuXeOM_HEH7naxgYgSCMzW6Lsp1bIKI-cY9KjeEGVpy-wV-m4Avd8TnTRG_rSEDptOFKhuzkSZBDYNg57MkFmj5jDoGQZmq_qu-e0Eq3zBNlFSgq5s6S6xsgJUVRDIlZ4_55Egzc44MOmYiRF_8G2Cmjo4bYqvihYh9h2O_QpKSrx1xEvYFXe_UpsfLBBLC4OWrsZck76BjSgrT0EeU-d7HKK5InO_gFYmTcDyKsqsD7HjlyoicK6CRrQiTgnutp0R_iRHZNPGJBrGJm4OfN2_MO69aYcqa7eSFEH7yW8uOG7zVOL0FaiTjRq2leuHmxA95Mo2WkdfsrlXIRppkhm7vdr-l-qSZSW2VrtRx3Iv35JJAkgvITr3fp8rticecGeFVJKdZojhyPjUN4BxWIXXBQJgij5gBgNUd9HqLQ6VNh6cFJgTypme9qSqzLk794Pt-1q0lnhsbI8Dhg0CR-nygzq7kMZBjy0dMVZ74x6i8oIe4WWF2usfR0kfaCP9HL-nHOIMGOUrO_pR5sK4-t3iEmE8-YQP9B62ZRTftM9uUIMnpa698N2iPm3I6efQWDdDmkIpMzUOZbeVQ2ZgEnYJgFgd_GEIad0yZy5YLdPRZManjYLnRYqxJJHQ2TOXHEjRTyatFdffyC76RSuTJLrRpvaHC9cXabzhj-fP9MdgXQR3QywWHlLSjqJMtNME2G-PHWqjsvVl3H88qNNGSJocAeTlzF46iBCZoiaWwmRng8eLLwd40vOrvStFh7bRS5N-4feu3D8QHE3glEC7w4JevpOBu9tqHppjMU1X4yyyd3Nn9GfiTipGAe77ajZ_HIDvTEOKlbePLfS-ALlkLw3YStbK4VmkPEY4_aPG2c77Cmnt41Un05AgAOo7JwLtdKezSET_mCyF-Xop3pq9PUpjvd6PU9h3wuXLXxtgVJCoUVfUQ0OYeRkWl_jg4CJMz8LOPjW5WMEZlAhqIKTT5nr9fDrqL5RW1QyoC3x5DUEeiP4TZyMiDFaTJEwuPjaTpIqRKPgJx4uiuKVuWt1g9P_wLDOpG9iCr9kFyvkrhvC-l4pdWCE88YdDfPR-XMbFB33GjsiK2BQHOzLhezSX8qRtKJ6tUgATTbJe8tMKQso58X6MkRRyfGvRrZ3Cjg1ctqBiC8Xj6uVLSh3ibp5BBfxlUm0MazEyByLEQsa_E_Rqad7_JXS1A4Ssiby8o6Kd4QQl1SwPAMFU-gj0gzDkMGXSBXikLN3wMD8a34bYQ2fwQl50GUUAvNjuApnN_pAd_ju6pCdHUE6Wgtr_PvH9OMJiGIgxuiTR0kSW2N-DTQ8K1ia0bTjxxdRKGk6hv9A_SyqAjbOUwy7cMriooYYvtCvi436IbIAIZjUN93VR2c-YoLJ7J7ZakESDAgOmpXd2MY4BPPpZXAjfZayRd51Tpc5B_SE3ElGtaYexQSF0IZ75t2M21AWIHEGyj_DawTFcdb7hIFW0XZ7RGTM4fuvKVDTEsKUjtcGd2STHtt6yRQRZ0DKkowpaOWinVGTz01nF4Wp6IvcSrnIr49K1m24jzFqr3MGXQHojeU6boqfCsuKvzvddrQ2w5or9gBX6SeEUsuNu-0LXFRGWAxpFfKrpKFJSCmFI7oghlTcSQ-RxcLMqqU8jvE6wkEsqrtXXLdSSwsKOHg4ukFI8rrVEkx9nSLR37tzjxoz54b0NR6v-2H72cURd0mV5fV3y6a6G0KpZAIQ03EVtsKagb9dIMWFIXDDKuzjFgVlwq1twtVoPN72IqMDxQO1LMQzoclOYop4V_8GwuvBetAgtUilQjCLFlwrl-HR9qMd_xkR8IU3lp0kcLenWmsqOjj9ezg4mRMNWlKcQd8HU4pIghuZibSiBIMzTW35aaHUfP4P0HL6AtuiNuoSTdC5psxWV3TlBsHhFIF2t_SJSmDur2u2EW_BfUYezrQbvlj7fTw0S1X9uj-u4NQoBEXkJZNN5oqBpRPn-1N79NxtyD7RbVftZtCyzFy98wxd5F3ZzDNIsyawWQxhzlegDslpCqXioeY3kyDsvDJr3zdrJwDPKn8lZA0c_G9RQ9qd79uy568-byKN_UlyZ0TRpQ6lffSoG1fWENK7MEKkfL_huugfhCAdro_761xjAjbDEeuTWwPD-WtMGZh5VPklxMKLQPodSiUox_FoUxxuxla46UC-RvDIG2ra4gxVZpQt1AA-JSPIzNDZC4mKqpE-0-8pq0JU9CGAyPGg77UmAhoh1FO6L9wQS51wQNzQpCHL-us1_ELpcIqD0G3n8eMiArIDMvtdoALDtRh7ZETiqD7qnldZ9fG1v4Hgma14h7kKrw7SvxqJteTvMohTXm_6lzwQ3iPKGYCBNxb7SUdoKuDxSjaaztHja2dj_wAnEnd7BcIZt5TyI_LqDoRTDQqhvsrbyhawFc3fFHn77YAt8oWKwAgqPLNXIZJ2Yg0H6o8d2n3R4p3IOCTXbMPXCnyhnBkhwc8KjgqDRQ6QHKJ80f9-0_KWiJdYwWOy0tY6DRPUYHxMjgKJmRC5A9tDip7yz3CGjOWazCJkI_ydmJYGZOadidAQa3BLnJs_9SsubKRM0u92IuQPtpJhfrr5w0b0zT9hz2a1eMrH9rttkQwaK0AApVmx95oQEWuipnmmvqUrAglzLlGkEa8FwbjwxRK1P3egzj4MjVijLBVhrPVp0cpWw47B681F3HVQQDU7R5Bk4OSDgIpYKjd52ICgwIeymw4Qg2GxPWhChiY-ZkGjeQPr8q6Qehp43ZkY-c9Bw_gZiQF9dPzi7tSez7V7MZMoTBOdkIAUCJq7EJpVbOtyiNsj0PykFnamHycLkFJkMn_sYAw79SJ_4OgaXXykeW2avg9kUWX1gJ7TKh3doqD_rJxwVDHrDPJdZ-MXYnY7aQorWiowJahPUr6pO5g4BF44OPcoC7UCJSxSJNHB8ryuqSRrZHs2Jyt7MWLLxWL3OtdLYOAvUHw9t17tU779s6cgOY_Z0BSOsaVoGOqNcTPJo719ADAXytGH997xaVtWglEHdsUe46191ug1fKxIWeVGb1hVvvNp-OzmBCsZDQInKqZxt8P7YFVC8dnyzuHD_xRzbhoPEqS1i9dQKcIucWhjun3JTs10wkmIb8pivq20mGaeDb5L_IZDqZbnY9p8HP9jpkIxVs3oNthtdaNeMa2B9pYlXIRYWkl-XlLdJvmYFiXCnx52ULF876Tcujq4Q3rRIf62lvzzHosdgC3-lkWgiHVYzxW9spSAtAzGqZhTwUdfBKxxjkzQDAsIBRpNmHXrwyupscAOfwKIdOF0vZgQEZc1atQsrZAj55L9JxkAsQzfzZDDpE7mmdgAvr9h5Fb6vwzTX4LVA7TQFThkjvY-WardyWYRbMXJaMKCr7NYJif-2SFyeJteJQhx04G-vnbZ-BRin72fePlreYunzEXhjlnDPf6hSwwinnzBxfn7ZYhMLA4yKJIJWj8fDGibRJrP7oxuKgt4xNHI3oe7S_QPhjtIkKatTqy-vbdoqeNs2_OteK-2IMVwKovzEH1h7-pfRU-f8dCVmQ_J0Cpi0Zu52x9aFepLIRBhyZUoLTnkwcgHQ2Xl6h0NgQBoCMUSQb7VsBJNVr1g3aghKyNyWXkr9wgXLM0Wy0Y4TGBiJnueAlc8ZXmKEc5RAzxoZMi_bDTvfyV2gGw9LaHB5_10Sn5uF7zczBI1xCwpzpFg1sE1kvfoyxDIyi5lNAKNwEnwdmfrLUMkKgtkWCu52XEy-jUiOicZ7AIkZ5jAJV7sbEWYYGd8yAC5Kg0lsh9JVpFqOvApUldhgvnSC-Tirvd9kaYmCOVW1iL87Df28UPbRP7rF7g-QuoTLSsJnSQzbG8IIXgTm_tb4p1-wKFjrIQ1sSRTjIukbPQZdS3ZXuswlWXUKq3mKAANctV4ISgtHGVTm_RGeEykPAcg17xYY8H-kBRuQQC_pHCES45FCq0Hx69VKzb_wMmp8bR0CgupXDNxQxZMGjNMHAHpuOq5F375ogLDRm-v5A3eLO8USHTzFO2hDQmORqin5CA3Sw-gN4Cl1j2oVUBxRkCLtnaskiAMfS56ZrcrttDoIoAz1Reg6YLLkVdKwf8xa8YwFp_p9nKgJCY3thvUC48Z4ha26jzPcL_XobTcYt0Y6sb7_F-Cl7sHBwS7zkOerDbGRSbSEPwDluAh7v03VGvnUXLyWMottybE_BMxTDl675aZ723YXNFPfwt0Fb5I4fGv4o_ArTlHn8EquqDjtCev0M5OTmDl8uNfhNeBFNWDRiogF0ZEWzOUXuGvq8Drz3Q6GHdAUOsT9ciHh9dPE1l1iMb1nKDCv3Qzj4NL1hnF1jMKw3jjH3yEYgiK4CDtCx2-aQsJxvO6T3pwno8IU940n0GTHWPneWUDci8JHPZiZ3d3m9gJtE0YT1qIDIMtNGfI28ErKIYXZ2UKwcDuYd77rxcpE5ZX135jLctF74RIwCtxX33hVjg_JvoJwO9ZbuymqsVLKw86S4-1VSB7LreA9Q0aek3cyzCdBlIrxokKWOspRws_Tl07YGtlP4epCY3lBcAQPeRGTqbeuajMg8E9fqJnNCQaJMiG_RN6UztOc3xmg0t9xh06kDmhSzN206GhZ4nkPjk9w3T-qLhWvQ_4jhQ-uTxDa-LmjDVVGt9MiacI_g3lc8YcNbHIh6qV0MtVkvKnz7bFFyCUuqEnw8uqPZyQspjJaWA94J_WDahDBiygNCKBMTDFR2kmyDuDE8H82OhGQl_K2d7Vw0MI3KSGpoKA0KV8NUNEaKR_dm_FlB-YvBpedng1aDBSnVa1FqY_ca9-FoXvxUyl7tK-PHUk379kPvmnNksf5W_mfxTTALAwwD7iEt6UXTVpmbvGZWJ-PgLTlHLa5t6OxrWGQT2aRtJ-7qQhSFd4S5ogsE2yfvoaKrzNGEf9NDuoAHEoftnVHjJkFvBQpLhFMjyGoX0xTnSSomBSFrJtjmFI9WWnKQ20Fm2hlngLznV9pzLRIzeSOTPDDS53mU1KDY9CZQtUwzXLGII51HYioMn6TYLgCVHZ2mtQJ_LRXjL8B_FiAXMQmLuS5mUFAjqlTHF3WeWaZffhHRGfJn9_FRzSquW6_kojDzHbpqLCDtW1i7LHKAb__h-QZvW5YqZRKRijXz0CNmx153hCaQIQl8MHR9ZJ62WELz4lYtx8FwImB2m-zafS6EPmbu3mzJOzGYnhB4-vmNevf3QsM3qK_DBWF7H7TCZRDaQhtOHXJ1Kz5fY9HF8qKsz4mu0KanJBEYvIEUdpXcTWvKwTaWc6TGQeNxVFLPABAYVMXnAO21qBBZQU4NwXk9-TMMBvr1vbM8AZ0tzQ28h8JhQiHsnxa0BbImQyV8Dy2Eo3DN4C34AfmD8FAi58nfJPM_NhMQu1fgdVugnZgDWAw2lnee48LBAReaaW3jqzMHeSJxsu6KpuBREhMDNq2yx2QmfelupwgrHPU1Pj1ClrX-0M4GIJlQa29cY1HEa1oBs4RC9NHpjld8FUO1_liO_eQmSgkZolcIBkpbd5lQAh2Ujgjfczkppk9LI1xTZNZR0jmWv_XfR7_vbobO_x3k9M5CNf5YFyoIo3hAmKiJgfRcRemWsixHP-hMwQfpBmnopM3bstq7E_tf95vdEQgul7pFWuwjLesYsngv_M-lh6RJCviFRG5IbsWfWiN-wdLFDoHbS2MO8cmHM2DC6gA9hzeQ4TswptvLRdbIfUdo58OW0ZQ00UTSrum42uTGsPIa64Lyy9lS57yZ66fnyyGar-QDj_BAzDFGfscCMouJpDyN_1ebjsGa_DjtosKq5Lk65E1_I1_RffPT96FgpPPtDeLlbMIwLpkeWpqFhFhcyytJQycoRCkmiFYPIBS286MXwMRZNjImtDGO0kcf0pnyqYhNItCjhplA-4fj5BOKQvGQLlw5g8NGf78GXYH0H0JSpz64FRoXgpuuBYYEPIwtUGGuVlM_95o6XaBe5Ksv0FvBOqhPsXOrG8shPumcmdYjVAPPQK1v2DI_qe6ZkSH8nRsGwKqIeHamzjnxU8sTtUMy116GnPl-UsEu7t3yxSzXwqajHaYu8iCzGlUaZE2bgvn14hnwgTyAnrdzu1xFUES07wh0whtRx8rtusE_K-n6LI19eVPi3dXM8MWSgT5K_Nmxf23cm1mi3bFLSfYjkEgB0hDrWhJfa1zL43yzFRKpDTc5jL7Ln51qOPk7IOe7EwzfWnYNxDE20ZDUU-As6FkdBuF5yEVBSnjZd_dqWq8yran80k5KAWbMB-vvrPtYev88WLSoloz3lQIdZGO5vsKRzCr-tmYIIZThXelOHlcMUQ68uiHLPmb47_7XtbNaUwGylrgnO16JKUSNeQ_dwdDCERn7Sni9fC3gSfiT6NwP-iHgEygRW5IR8TSO9jWHqOv7QHZEgf8FP3vKaOpjjR5P274jzZWKrvl2TFfWN22C7sMSQPM_aPLXCi-sYIuKDhLCSNItvK92q9eyZvtIgKWoAG9sWwvh-sjW7hBv2JMbZ3HFqmF7sWTWlUdqHXHokpCe8WjltvTYb0OL_n7tgrAeZspthU5n8e7KX-PrRSOhRPNh-eG3indJ9Wl_SIJv48fQ1-otAYwrMLdGUz9WprqQj0xfRte-faoABI-mb6mbZY_JKP84UseZVgK2RwwHjF__TP4JxY0VSgHrGyPFoCS4ByGZrR8gFkIWUKxHU12dtwdpjxuxKLmHIzeU4tMXWcG3fWHpOYhrKOKE49O4jSZj66skqeSzQ04wWe3yPUKyhtOUyNfbr-BU7dxQeHD91WiX17p1VqJIaivkKpfn_FxZDDzEcMnU6CFmirYPfnGa7O8L27PJVkgZ2N6EXFtsqOKDFjX5BAD6KN0Q_lcVjLPUGesbk6z16wY2xaPoJG5Yd38RE0BBNGoiIpbXEJl-glWF4SR6p6bEUTr5u399KIuYx3MZZpdDJKPSpIjC-9qFdArA0v4R7K-Uwz8glDFCSRMFZvb4FrBtF5B2Xnv-qfMrDHBrLlZe__pX_HMcmN6ZglzVf2tqaEKQ3fb6D1fheZb5PL02qD3INDu-_G3F-dH9DA79YOc-KG5HsB9ZKtMu2UAUhihCCI-_r1GHfbGVUOVG2oGxMYffHBpUYIGplSw_XpPOjqLQxD8FxCG1U2xYYJoJ0-LS1PugWxeKdM_wTqd9sLBsBqBkAWvAQgFweSbFQfrpoH7cCTY3gw2fGOLaOhXQg3uXQZgHx28pq7T0zMEIZo_Hhx3jXu3VPphxBnfyuquGlTFPddLo2geire8kMDRQOayFp4PkgYb0DxevgprPN2JjRkfXXjl0L7Ivs3XRcBZudMTOi68sfvbZ4-4Oa7MXwYoTBrKdrvaqn_1vA_P8JpXVy1-CnewVC8OvC8zIlAgVrp0seNMsAMQMU4eqU-Mp8TrFStAXoQlYw0aPpHe7CxEK6lXbuwfq3H6wN1v9QhSrrx_Dcyw9LerL8LCSPNO7Jr6uiHwGIZmowkRGRsA-wVQth7kwwaYWppR88-dfl-IDy-HHto-OjlwvXujiu1d8FbiJFydt-7pCbW4JIv3NKyCk4GEvpdvb5w416fQI6yvgnFjR5Ccsp8fbeZjYCgE60JTz6hKycimEkA_x-lMZMbHvb7jVfRSSzBVj97skkzwth1hMxw6_RA9EIQszFr6qd08RobC4iMSKiPz8L8oEW5scWpEo5ArMz5xEf9RLvnUXl1qFxKsqjRReeXfP06gY9hh7futkkFR9pimCNByUlqbS6WCJUegN7B4lxBk3vo8jIpT7k75OfvOnAHCYNjYzdTf4Ep7hTFdHCMglp92CJS_KP1aGTPalgw-wsHiH90vpsks6qvA6R4MKmNt6P92hBPaOFT4NhcCYZhWLU5_HEznhmsX_9Ljx_jCTO0nUI4slq9WmR-QhteCg4IrXHl2NKqhtfxxEjbJ8bsmW6mphS3lWORV5CjM_uar-YmXhLnsj_ohIEIY8BMehcjbf4vr3S9YSIhAXD8GKU6_p9KTrmGUpEmEiFt8_Q3nRvoyW7r8HiX0Ad9ENOdV89ttf3CpbOPAied9iJIty0lNnMTD8WZFxxw67auM0lEzJ0Q8LnkpY1SUGvBKlWOVrI2PTI33Rvn_tlnbSbBpNxnwH8hfJjaFv59seVD7jQYjX33mYsItgUxlD9xSG1hbLo9UbfpOcX2b5w6x76W3VCrHAWQS_yHWcyIeR0w_q95wTUlLAu4N1XGPpEIiEB3UApnGrXnr7poGyuGMxzmxKGtzug7LEWNWZVPPe7EHxlaxfAGTPNzMWAMCbX92lcUdeU_To2RESXN6_4awhHct5YlSWHKP10JhGmt02AFllu44QYmnAQuDZlcuFeh2KR92jJzQElRqWK4927FPETmVoCDK8qtkm8U26bttXxOonfFkpafEyoQqQpzH3OEZbHXfM1WaTL9DeaEFWBlOrSKs2wjxcdQfFVYS4yQ0WZHWLhovGWEfazkLtw6G4-o8OQ01-ImL45vzJparSf8FYpElC3w1w0jabMQp6Ld3_jrD_Bw1qzOUOHXK1jcZqRy4A6yA0OBIHPtAY5QGBgG7ikIlDeqF63WjDBGuWVPdqqJESZAF_gb11AFmAWTMxuMzOuXX_mFOvrYeXwBWHZU2brW6q_F--oJzmgTmd_f811YqLkMg8P1cDDuvgJFS96--exmzsCKBlrHrTu8xd_lFysQ7ZGia6g_XCRz-HgfN_xr_2cpuH2BW79Aj8CR8v0VA7JbTFwpSUokmmhUiL5-Z7N2YHidkLtuodDUyc0Jy-dUvwlUMFaM272nPJWtJ5Y3J16oO4YSkFap_5I9L31EGnlOja9MGoNyMESPW5eoQ-SK0lrjfoszb83Wh8GcSNIsAjFq0QjrJ_3i5_H8j5BtDBRNkafizI8BQDzfAV6NYEJGk_QJR41_JX_-XgxChmLlAAJ6v1eV3mudkSIyewEOgTGJeOrJW1wEU5EEDdzQ_CCGX7tnY3N1NR6eOUlUU3aozljrk_H1pi6WNL09zmgRjIzAe065copmC7id-MX89tE5V6UuEEgrR7_jaGVWGaaQWtQpvW8svcNpQta6sJx-srIpd_BtKE59TOHItx1GMflIS1qymyPb4UPOl6KUCAbwOYaVhMBlB-VHvm5s4HSpQOW3F2CfMlqwzsMH7FtiqYngVwjwQ2deWVyIJnop3xa5b-WoUVfDeFhn0EMPF7AsxJUjysDaXwlPtWHBjKBHyxELXYB8MPlgPzAyJNCGDJbp5FzpjgvGz9PBf7v4pgVQ_CiwgFTOqhPGkqLYMVXqxo5HBkq_1bMmRDs4Y6LkLzJgCTmzIdquoM4lFaosTdaQM2ca8WypRc-G3FLDm4knJKpgvtqzJGhs9zsCo0h9qmQ8gWnH2KZu9ZGW5zHs3PCr0MNCIshT6LMqcVIPrXWSN7BulhxELQpGjqlA_rqjlmBWh6Kw5Me9umTlBIo9PX26-XcdrV75HPFsRtOJgqF0A67jXlcwL0FzV6a-dS7smpzBSSWetmIVztlDVlpchjBUpAmVY_CudfSLyX17CoCxVyrXXN1jPBtc4IKgc24Vn79oIu5OayU1E6HmYtE_IXIYzYtL62oFgWESBZE35HGzgMC-2IFiT4qJhAqD70CvOrv3Gew1sKYzvNbN9a6zMv6WTFpYw36IkuyUMQPnSk8N-n9wFtIrzcRsOF87TqDBBHH4bpx4Mpjz1tXw_y5a1sDvMzbNup17f48H0RInFgpwbon5Xb_x4jr1uBtO8KkFUJjtwOFh2ZI0STIbD4oD1sZmI-yl6SqzJqVqbYqH1u1fVXr0OzoMQ0rzAP2IyJylX7hcCOppuKAN8T0eF3l3_EKgltkHnS6RGuKl3r_WFfZ6fWxQT7Jrdx9QOVW3t_7szvqep-_D_OJxEKw9C_AnmBiFBttR85jZwJdaxZBzAReDr5neqL_Vhh2Q_wSsfCY7L5S0tzSik7Gf15Nqi6I_R7utiVib2XAmNLVjCb1MPH_96i61EmV1wAJuE3YNOMKN8ctDuF-IGpXx4f90hkcT7uYgPy2NpptZZ660d6tpb4kLBKoGpNfLVr2n_gX6leKVH24nTvKg-H888MCRNTd-mSVMUgv7hAxubNiutPKDCu38Bns02RvBYPnefXTyq_D1KRdIH7BI4TlzG7nsrC-5qgGWrPyrmovuchkCHmBhrLTxSTG5KjjeeQSn6FMHJSbxWHkjV-t6Y7u2BLJ903RqBKJy9J1PB4qZzFdWov3ZBOD8kylcOjJhem-AIuYNF-t_2AuqwDYkbj3ag5JAIlLGwx0bAEvXWFxi_xaX1yXQErZSKNAyc52rNFB0O_EG3cb5MQD8oKqhQ3cu1cUkV3K_GxWsWqYKPu8V_gQvdw_Uw6fls15jjt6z32YArYHqse8OSOdkz2CWboMprCVcHfty3FV8gqtp7udGuM_esQszMmgtB-IbM4JZic-hY3iftwu5PK6xg5rLjamr58WWmXjzpM9D0GM_SKW9SHm8GOh6XHu-UhVzF5c2X0KhAAbixtuVrre4eru01Tw7G-dTuE7gzU8KEDgDZtiQjYEjJ4WNmEKKP1GLq0pGSEeLiB1woC9PjNfIVmNltDQ0jTONoPbuL-9YXApjSTO8qCSSw5djbwUK9L7p07pn7pjDbvoP6KKaawMn3isWmmOYHlaL579wniFlPx_lVP_BPunQG0-L8pViKD6FHGaQAtWZrG9QtcklNIJrRwcg6SEs0OVfInv1VI_jYmhS3uXuI6w1H-VyhZ-gv_CX9DVBvoBe6JcPttM618-cKLkXtbqb_iSZAGRUtON_DMrHKx_dXJ05IDk_rdp2UbC79gnnk1Wg_dQFdaabtHM9uhBbVMjSJdf9JbTmII9BvZiCW3nEzV57S3g9xo1YZTUo39uXwKFdaUL5jz2qWH49BraL0sJNXVCADLu0huz6uQVWcCfpvtvzvhORkqSij4yOC0NaLQUlbyk-WY8z3zYX3H_BjU-AGy-zGZ3l-r170q_MHGUL_mjOLd578YqKjhYUAD2q6f0dYXJBEt_rtWnM4aSgeL6Q0ecNHB1V_uOqAebTi1s5IR6C5Tbb0F_HHUzqLglkPB969uYvFj1t13rkVhPeeobLeQFt_BWOB2NTSui-EYRsq2eWMP4jJc2akx4EOD-HyV-iElYxwiLqqCqBteWuM36FWGyuyMx8Z2dAH7_notP8H-WK7Zv341gujQdeqtM15iAnpMRq-JyunC0I6Hvki4HRaQ9UXlMKzxxR0mySbZ_blkjxNQjkjbv6gfESDgJNMsayRAXeLA6ky4txecoVoACcnU7THLbuJXTer6j3unDXYe_BoQ2ARzDAvcaXgiJQt62RvMfpx6wTPaiPw3MyhsmtinYMeaRzj9gk5b_S8TWrJQwHBONqRfsXRzgtHIUxsCLO4OPaQYMpTB9ytzd74ZcJQsMtrHUlOSszLY3vaWzCUUs2KDQeXX6GKDRivEMEQ0qw40NHd21WkX98fEI6fbBQ_3XmadYgM0w2U7qEbvxihWxEMCnal07OcTNZVsjzFLbT06Gh6mELMedYx9-aek7NO3ONb6dzCEXL4eKCqDHuuDmIcapVsZfzwikrPmVG_Fze8Qst3JXBnLf1S-ITDsjWI93brQlXO9kscCWjtQZ7TknOjDRHQqBxAui2GUeWwTu9hUZcwg3-lNAXCvwG6jZ9nTPBLRT0XPxv7fEe8rrIkUPi-sCUBIErVlzMSTklVEA4-tHAMi6t4z86L6cAvWuKVOGqSJwgs-CwrSXtHNpziZyemJGF4_2Kc-E0sv09t79Jq8Yfzxr7BypzHCy8wwST-0q4VgAWLdJUVcCMtAM_GX9CA9GEKJb8DoQ3hmhoSC7HTVgpApLrKKJ8wKzozob4VsKIU81EdGLu84s7XO49VFta--5x90V2HzMMvcpiJ9FNSdLcCHMZWvRBbiN6WXLksAb68qlhdE6dZNMbqP-sKSA59D26YHJEvMHnnsSL0hke3QVEeL2mR1rJSzwSdKkFmWuI0AswDzCqL8kGOF0tJ5UmqMbbdilIHP__JnofWM-sgnfnC0B8Ws0DD-xWdLAvARVN4CUzKZ8NGk1-Wo-e0uLb2vzNVOBWvJiY2HulThs7DlpYaYraxKl5u_8Q1MBALQ-mFYj5l3pThq9gnpDGypjoNUpYEcf6o5RenC2axQ3chXqhQnU0w81ZJsVnJu283XLSFelEWeEt-eIIcUKlar-fylrPUfaI8ntbeTT1dR1pn6_x__gJNbqBIJlDGwKcI_LXXnIbaYl-MQerqNTi7TVzcOb0lg55R7mN3CfFLXeQUvCjJTOiRp0pfazJ4Hzzn3sC2qGtSW-15k2EkxLSNfDGwxeWDWH2MgRUh9p_DQE3BBfP45gMVWMyq6PeCZXCF7VIvba67UdYrNyB9A_iVOXqcBFDaLpE1EfXBik1GFZUVeND-2UTMI_HLQCGxE73JK8Wn5SAKg594lKfRonjRy7PRJbsV3Ht7D8P_Du6zqJnJ8i-v8HYVdayw_SivIQSHG7ATeWX8SjnJ211_tfGE4hk_v4iyMhsCUaTmao4RibSy-w0uorWVUzQS9PD9I_8sg5OiNa_LINH1jiUiDaG14HqnCekvIpJoUEvq0_8Uw9lLSIwH0BbKfSj6jEK8zHTsXji11rgp0UXZ8NdCamRFdl_CS37qv0j8236fO6i9PUp5GMUehVz0Q0vAk2uX5MidCAccdta8WQM0plDYmtMLxmOuwcJamUPkA7myIlr9ZmcCpoLbZa9AE3pcTre-R8CqmSYLgjBLSQAWlHFF59eDMZRzvDxCZbdSboxQYkP6WoZwY1S3nK13Dp3yQSoeXx9Qt8Erm-a2bAjdwRS6hdDInnjJS-nc2DlLKZ4gDRuiKBwag2NXpZgUbwWDePrZAWvkozbBirKQx_5lxMphExxFF5GBD-KICrR9cnq2sf3wxfcORy7Ipq-_B0rcsdjNFp5820dmppd3zs2HwX01gdali-yIYl0ZT9wM0TZVVvqPbmpvaIkf1Sz6a9J-WUA6tMf5YpdNHVHZumLVpnwh1hK0TIG3vqBGxaGn4ah615xnbk0nVcN4_3N8TpBqwW1Z08pYVOljBs_fX7vV3DozT-5H33WQ1ywG-VPa3xL78OiPgARXU-ts1er-AxV6ZvWTxEchwUMmXLsEAcPHK2On-X7OhVtK8Uh7YKtQNY1AOFYKaWZ8Pcw229xx1pDQzrZHNxbLmWgty8PQaQar0TSpXAnvt0ofypy1qy-Hl4aApxAPEo1toFL7HCWo9GFQrKAfQiqeFKsZMYmoJhS0msrqvjAT79cQs7mQRW-4lhy4w0BP0sYyLkIHNLROtetc5pE-AA699Sf1wLjmyV57E5bqwe8v9zuAO4FQRV0HQThiM8KzqRJgGcVlXlkTHKJjfjI081Ln0W5yPHsFjcaWwNSoB8c--0xu1x5qn9nKNi-QK0a70IDiXHPztBnXBwz7Boh2UgtsDd92HvfUwvQPxtxwyKkeQfKgWQVOAeUk0dWGTYoE0KnWCVZlXNeycHdsl6w2RxNxBYHrKA_5B0Pz4vRY9i6SX90D5LRO1kX_KizB_VW3fUvgmX2aozUJPVs2SpUvNNgEjo2SZw2seyan2-1hQ4L-pPa3VPRotdGdNB4S8jGqVUWALQmliW0abU4_73Xh0CWr_HQQFw_qpUu0zqUYF8kmaJKSb3yk_FIdNfHuH4zhVeiw95A9HzGrnJmCwT1k0oA9NIPN-7W0b1b0MLJe8ZDdfvqCuiL7DyBq9y-4Wi3irlDfVHPAO9Cq303EvSyjX_Ax_lD95u6ZwRStMwMs8xXxAKSZE2V6gssNBQ5wVIbvCH7KGnij7WvOqONyT2GVkeq1xkK_x4LHGGCRsitmXipx9U4isGFY1kF5d186mGdf-dNzl_78wUg3DOqDdCUdmBpZ2Tp2CCpKtb_wm5fBb3rItocztwIJSUGdWj-pjquGzh8Rh3hpkaTS1Ns48xbulB3qNcpm8DNqSq1dDPexwrF3pzudv2x7zyvm0tfo407vFOHUUMeIW9jysRbyicDKjx5RUis0fORIpBcVJoOE24IzmrjGzpDQuDy35TarRPkNco6XOJB8pk9wMXt6AoYnFoGkLPEOGed7E_Jn6CIrkVm1a4ytyXcqMB44W73VbBwdo_fHIq2dWhfkfu3mZH-rjuOklij2HsYlwSxLOuOtbHPwSONQaafMJ71AP18Qof_nYHLoZ-3JsSpi0Fvw5sEhy24-K6QKE530L0gOm5KzLoeZtBV2v3cmZkkggL_i_-Et7Xw5YKxBz0xbjJBB32k4UFNytUOIRuialDYy_T-33HNQuB3xAORpR-D3nH3ZmrkRJANxYhZBB_u9-9J8fOXXxy7sg2CM1dj_gGcbVfKfyCCJ-NRScxvfu08hOTqW90_U6ngXAIPzSIGG7yjn5CP_r8cu-41cWcCzNxp76-4mlwiLkyHZw4cQMpmzrQuRTsArQcGA78E4JsDXRXDkOucVbxPPrSb-ZqD-u_iZkDIFj2nEDCna0gkK21ewWCMmTbMdFDo0J4Yn2r1AF-KYBNOXJ3V0pcQ4PQd6EAjfIml-aBFLkPahB5G38C-5m5kUmk3iT49xdLKSAdJIPV5gAeHiqk0b9gtYiYKbH0_kSTcJl3zRVasp4EVCxHdk4PnwFQKBewdmM66um6q5PG3x4mJCS5ojdLKGE14J9sDvFaJ0f-7lE0zGJYT76c3WlvIqiv_1roOHKOVa8roVPSKOAmh728hIqk-3VUmj-chok5sMJK33SnKSlAI3nBJpSNRCkcPmqr7_9kaaaNHx_WMx1x9xHsUa4bMnh9fIzYMn9eB8QwtFn-l9bPrvCq7oU13MhJb9aE89Fq6xefLYFm-Ovb0oWxlVpWCQElU1Nz47C4ebE6nzt8rYP-EIu-mLNUdU7whFjrN8fe0eGlM-O60nBjeyT97K5qag0MYGv4cpi01V3n65ZMZgG6SpYLOEEfrXz6YMQs8cas1rH2LmLyuXWQEdCz__fwTS0pf72KxRN6tbdDXKeN9mMRvjp8Qfwz9kAjlPRwdfOy0jbawvUevk43KPZ8KcXMyOSuGyBzw4W-47DUl_h_C7tVgcH8mjUWcsqmIdbZatarZyV_CuozGuKbUBHWl3xYDfsRPYO4tuorlfQH4GO0WrGhp9D2mcPYFnspj6ledP253dOo1EiDYzWyiQYJyK08EnuG6HBec6tAaof3CAY5EA5VCVtnZ4G-qig67Rm6S4jkcCcUIiCiN7HQtO-nsWxXFPp-1qk0ABiPY5Cg-7sB8c83UDRhU_FUHl_vYfitMf0RHq-Kc-US1iYGIeBHsRDcPteS2UIDt3XXRwqE5trYfgBQQqkhCN25cGmVM7o6j5Ak9_T7hDkBdJ81iHkFOmk5HQF2WZMu-Rxn-VUFbNfesxdeazCqBVhqu1J8GULaW6zwIUhvVJUa7F37DiYa7WScAYH0fhjeCd-WwLboCYIXdoPD_mZVbpqK-5lsNuQhYbWbRj41OVkGelVMW7JiOzmRb3vMafrMNc9EZ3HH82GzZu7fmGinFJV4oubbq71vEaPu_dz7LHmSSNNoIuUuoySGaAq2ewa0it9MUEL0RqbyCSILa9nzjEgA-rAqU5NQReIPDt5MBjmAUzv-7QJk1TC8U9-kV5YInG1hKfxPYk690P_9sV0UHPARsF_OCOb6slhgJtW4jVEqQA7slqzbQDX_fV8CN6pFyU9MrSsgnrYt7tB3nkYZ6ZoSBVLXxyaK_5lFis0yRNOiW6p4DtslIXlnArqIF_ZP-LssVLBYn4exCFIfAsmZid5lpGnDrhzGy3pKYqseKHk3G7KUaFHHhjCTPLasPH-9K8rF5mSjAxakbXdHma5MfHlRF27Jw9oAlSDTqgsauQJCo71WDga3j-mQFBAd5KOdXB1UX4jZVGFouEIXGD42ytkmpO6npt3jxz7edANwBBRsz9jDvFe73hAaia7LvG151n-M4mnqMXfkw6WKOscY8cJEwEItRojA0oOxB8SmtdyQvxVCGSCPSOj-3Ny5MO5b2WXpnHwyV1rP0JBE_d4GhEVzRG3LO9M-aCCXC77sIUxNqsomppXUMDuAdhFKaMilGo6Hfy6w5ltQPKl3kYElCQOwQzH7DZ6XnGSKh_ncD5CxYLUxDRtMRXpXKp14w9348Vc7E7g5k7tG6gSU1UPRENe3Wn8yUW8pH2l5PWrhtrHV3_LgxtE9XJIey68KUBBCPCd3k3lv0yIsB4crzb3wfplfURI_68dSXWxb2-knWRNPHs_Xe3fqa6ABNUf2FDXKo6rbnRIXQgi1ArKjGWeNwTPg70XA65w00RROAvkQSo2qchoi1eP0H-6t8f3hbJiSqrXfRrNa-AClLc1W12reNwx3Rvde4m3XSivvELKtN0LehV1_JW4ZdpQazJW9j3_owNOAXIQ_bNRsPc8Gv-aRr6PFe8rCXR8fgj9W9ydYI8vPNYmkHEYEbbwR4upjPTx-mRrAUsaUMwQgnKqR_PXDbMT2GG-HgquVNWrewFTHC-yrbsI2Bk6me_AVQnHlIq1DebH5yGBABsULfLzSfKe53mCdl8VOAa2m-Ib7WUZPacdO-Xb9groEhdqgKMon0s97mBuDp-KcOOYSYpQrJn7zXVMtmxHrZWbSWTAPRTvpX28bavoHCSrNJSReiAxGoZoYvzdfBXwxCIShsBAYBF7fzI0C8bIO564heOYDUZRR2pjZQ3weUcFv94s5I0lGlkac7qzYIt1kLg2kReSKVHb3MQKmkMNjZRa4mDVI5K7jjrmACfzL-wbqOTnyEZysHmT0JBJDMAEY2-PalN-WpWHgkMZiWA0L1mm8Wgj_5Qqy3Gr9By1V5NEScAxRxXx_zOKnTGys8WRq63YPVUCVoQYoPt9IuGC2sNPgxpacKLRXVj3I2YNrfnfa8-R_2yUTedeDroR7xKWEpS7rbyQTinpiCfZh5_cAxCCwB6S4IWDWo5mYd3ClKHuh4wg3N2ZzNmjVDq1WP6PEutYxr0Huat_6DoAZGNMQt8O5OV2DQZEjd1JkwYgdD3NPsyLm9IuucaSbn9G07cNGW9lS2nrfab0MelxCF3HiTj1pLBb-dtdla892v_4OOMCY7nkG7AmGi6vk3bv5ZNDo4PwDPaQVYpWCGbJdIEI-ntnWml3WSjircKRhTkgG2JR6hEoAnxHafRXNCKNSCPS1dwTBYF5xzTLaP96eXbFnonxUw8MI1b7l8sXsgumXQ7n1tb6RJT1DDrnet8qVH-ZP43MPCsDMGaR01MyzB87UFCYnUgWq53B8hi0s9ZS2geCbi8z-Bmoq_VyYAzzLQ2rplrf3TVbj4tHVwMjRVDBeDKIR_iP34i3m0T-pg19CvjI6eagefNXKscpDB85Xu5LPgRuae_mWoKK92LHP6ENLnJf3yGeHx8b8mcBHREZXH06J_AOJ3yEkYK7zjJv5ixOnvfzn3NK0oJXcGmJ4tbL02818NRn6mmm5FEu3V67cg12imvtZeZfzKvyA52rJMLJmjZ8xOrwbZyUF2suuV5N1oKNNudS_QfROyxBNgFqwczM_V9yGgTflt8pGR2-6rDvTWnS7wbXSkMd-sH-MZAlgqkhItf0M0xb6vYoYz_o6eOF0MmqzyiDMoch6cMnQd9tnSiD1v_sMBxQaeQVSbDwxDyHfqci0xXea8R8qJuHL4_b5wfTfvXXVVyWuWOp_T7uwT79TjvRuMx7lZfu4r27rBaxxMl1jRqpwbax2InXa4JHGI2f_jT1PTWumeOz0RQ9MS1fqKmfB82bfQ2mKk9wPt6p6AhEX5Y9V0iuP-4HggjpF5VtEsOlRcFMwMlhw08PPGXlDqkFFQy4bagnRhmTf-jfHbAUrmQ9_RNWAG0ZNw0LwrYeSDbLT6UwRtu1kSHjtgs_4amPDkK3cqkTBakHXMHzGVt2yQt-WsoC2F84ejm49ebLBCBF_veRRA6zo7DR_JA-tCJCtvSNBjHvAF6lTjsUa7cKGd2G8NpAmTaN_kR9Gc7Td-_l5h6KSeVkr0lxogOqvVBl0aoXkmwqhx5gPfQTLLflj1B9isZQsmj1QiQPXz2Ll1l-TZ9mXiT8Mq3PLcNwrWMv_H8uvY2grDci1gS7S9nxxoLtA8yePXzXebLQn239QgTqyJzzPED_qK0byTpMcZqCVtT0k9PgoND6oFp0fDQGKrNdc8h8AtaAB-RkcsK-uIn-hAYfOh0N3K0HzKu7CZbe-YzUg5Q5rH05F_EECvrO8KxiIOxRWyN7Q40og0SkfQSVbLQCJ2205ncBwicEZ_jcysaSI-ypvq5sA7AJoRw82Sfh9jO9H2k6bPIZCRW3nDwqgkzKF2e91ANzXE3CIAwddzl71eZWSG4qwa9T_mI-ZkS_hQX578-6BaZvVJol1aB7qoUQQwunYSf0BcXkm4n264o1PFd6OSce3AJ6lec5EHf4SiScLGna1cr3603H-E7Qz-rTseVclmByM1bHL_sDowLYj1NPLQOCg-xgKqHQzKIlkV4g4HMCOhZJLiJXqv1qIJiN2qw2AVgMFQ_oHUXZckyYSg0zIdeXZy-GvklcLww926m-ieyQE08RFvhytYq-W8uF11TAjBwIf1wVFRRnC25852YN5-UvNUhNdo7B2fpHBmae3pI9wtKJVebqAR5YKElfZ1PCAt1tAn3aYJ_KKpns8hw-kw_-x6d4BpQBTOdM-EBXWRL9ML2CQuDXGStIlcFiSkkIiuz2ekhDgmM0-8fwU7QHeM4UpsTEJoYro5B-6gXpWIrWs3ippFpgHdk6UF9eEIWXqRE6KtbUHjPS7SRMWWz7hPbbrjXs34sKjcDVKigBC72OfPylfe_5k2HTS9VRzV35TCRDg5hlrbK2rki9K6NPRjSNWMTy7mok45K0C0Wou87eu-JqpwjFldj8n-v19zNjFKzBA9LGCQbpUPnyKtO971xDGFctVGx9dTXs8xBOJ9wzKlQ6z6msglZSLDYkYrnzOVoKSIM6bgN0k4XJDxe32TLysIQ2YhhH2bAoPV31zpSBfJpJY1ERNhckStkidi7MAN-swFa9-QsKqViPdvgzVbJyiC_5xVatpnrYP2rdhld5P70gxK9Eyczf20nEzonuHH6Y232k1JTOhXd1eLOAu47DDfWGCO92ZU8w3cjgOzObWXFs5WQaSAPo11VcHYGQj6e5Nc3i_K58wrdT9ESEPjOV10LvSPPvkmFZmdVVdeLK_xMznrYucsdv48x9wcWkFoq9BaAmWz0Bn2Igq7kYbQoTN9qKh1v8kh3mU07nhuswFIkG3-g-mPzZhVDhxSprq-ETyj4u88JgrtbJeY7sHYJ_M8B1pur7P8lcGNCmosaxllj8OzXnymcM3rUyYti0hzhhVtAeZLaZr7ZhXOa-dG8WyRCr1pSIBSFbbp_R3P_LMgmhKs7G0XKvzudwo_tobcr7ExZ0hOWRVyl_rg64EnQneFZA7Bee9LLwuZM3nD2wIZzFioZeo9QFQW__34Dm4dn3cPKOpuhVFMuycMtLt3gd0R2Mk8G4CxrWoSC9nkAbf-2ZqP1Mzek7CAjTGLmSZzxcPkjKsfJA7kisfS1fZldIux3jpJDVFxAolaIecifPn97n763WXObNRI036yvqqrFHpMH1QiwsE7jGL9ZGao5QlN_FnLPlAC83ZPXH2C9a-LwKQMdMvjYKVZkHUarx1TDPcsG-3SEn8pLJnSkjEAXA8Qy314QV4OSVaTPWwQGUS5mjg477JNL7o8CuqXJpKXRBrF7fwRJiLI-m8H0Pg9pL2LLk33z-P5v2k4mHf7nsmZYsdyX6zwJvVqe3D23iXghT8iLzUFOq_YXl4SHIfcBT_4M2aQQaBT1ML2oIn6ETJZOkUcXoXcm9M_thN_EkigysZ9AySXw69YIoY0lS_V_BsieHzKBrqzyeYh-2vAMcbaV5I9SzjXfPGDtupsSZXr8OHASvXjXakU8r76fJpae7xsme8AJcXSn2eLqFLWJId6jJw-QedkQ89szKzuKBtnP1AXq4UQjLEas9Wkn2v0U6pi0mqTuxVZ8uK62Qa_LfQMooXSqzO-fcY1udMlQxqIxBHoCWUP9u3GS42WqA2BWr3jsYe-f0BKGyT1TiDeplYYPRmid_29CdugAijmBjkD69bHLR0-6ZbSZS-AWAMGmY2j5ED4vPrHz0rrCTnICq1lwsPAfH4ca6egKuIvOFA0Wrx6_XVMi-YaMkIHqji3CmwxGz28YucXzr9X1NH3XYcIfJny6_UhbyXWOy4mqV-qlnO8cMNogbn4LZqkdJUF0RvHTwT0LzjFzXo21khoYCIbjsJ5AUugdYo32fCuPGMgMpNUyGBPPbNvlzkJvqdWblicBRs_q7KnFjUx0P3zlnJQkCuxXVH3WFKV-Dk1NhF4H9gpfvloKz8a7e9CSyLhrFxzX2Pu2PaAXjagzQmAf5ZN4tiBI7HFzgtEE0B803sSE4aZyBGZC8Qh34l8Ou2XbQwWKQYHuL4K-kEVAul52nbipuoHMiM1ZittQJHl1O2otEc0GRPHzJiGuwMpE5q9M4EYqvRIOdEI3C1zONTBhB66qA3Mwyu11YFzxwYdGPw8H1lMV-NTjBxth6XfI2qcUhLXKFPJKkVQayAOvaqiVGPmI5D7KgaLZ7KhD8ee6RYvoHD-7KOO1usaN0lsT0JrKzHq8WF9CbXWz1p8Fi0E1D4AWhxbyLrCFm_09PJCPhbChAjndu-bwX0IZWJuOQ3SYD8iCRVLXvF4gUsJDyWVZLKhVeMhjDhZ7u0-lWURR2WS7sP2VOUtiJAOnP5LDTIt2whMfQ7j1wZI1C-kGPg8fbNwTCPCP3yGQOHBVVBHI_GHB20bvLWjWJDBBKRcirAuBOEYLrntSaj3f3WULQweJhxNxqGoB3giRstp0z19hsFlfOXpkNSe2tyavFuUv5foS5U2hKhwsfxhiYgFs_deKi_JjRV4gSz88bOlvAcmCIFEruhDUmxwdAlI607ZQE-JsJlOQjWtwlUPMmcS9dzDOcBehNNuR0butS1Y0ZPr-gWFUL9qx0u4nvjldG72R_dTRNVlmBAJAzJkslwQJEamckc2EZlBQRjFJOYc57dOxf4s1cSqHG9UWWhap1D2pEHELhNmYNV0GhuP2IoTjESRnVGAk5enghYFyhjPhNF8hmDFG3UwzF2eQ5WvK2ZEmYO9GRtmIBQHPuz9wqmEe32v_Pd9JABzSXWUV7xMK64wSb1ogApyDtsxYGgZtIZPmzEF1GK291XK-ItJ-llwH6YEehq5Xip3VQ-7BuuSXrsOMEeIpZEMlg3NrJ-yQx86GByC-TS5dGcGPv6nr2WTrPgt02lAYVRf3nVwP6zQTxK8fwhyeZwxZ0EnBmfkPhCYGmBZHtgUhVGTNR2nGNMu_yDOM9APuZjh0J7ZvMvdu0nvWjDFPL0oE3FM3P2Q3TTETWAtZeafnmJSaTduffN-_1cKuCfDgm0O1p1AKkUrBmz9o6Hnjs0c-af2qu9pmrOnFij5Iay2kEM5gL7dx-qNH5XkzzgW6tNb2R0sQiOia7wbeOvvduwaU-dMK_cq2hkF1WxaqEHUD2P6bX8o17mMMo58nQbHvhR5XvOv6EI8njl4igmRvb1fwugQs22eztbk76sQBGo_D03Ho19RfCuIzGchEryIBMpLfRAjE5VPCP6ocUYqIZ76AwFe04tWjn_Ws3s6GmNF2KLZ99dxy79KHoeKngVGHxabRcTMYiUlw29bf97BkdQQ-N7_EimVt6wK5eP3gWqsAQHvWiYlr4phcY5Ca0IISQtIt5jKb6vrJkRyyfv6o43NnnKxSodA8wt9GHFCGS70Yz6s6SdYkRg2QeMCVfEbh8mQwB68X0-9fQQUjSvTXN7r1O2MTniuzqJnkwQBEfTt3cinPxY1v8GLu3spfmcue_pJvwNnqWmizVb-iaKINEufIZpNN8SNtzqyyHGAoqAfGtsWctH0LIP0WXJvEqtHiOTHQtz9OQ6JAzJ05NNa-lM-837m_pp8_wxehOgxadYDNZQJ2b2Z7iW0EtpajVMeob-801eGFjPxd45riKawqo_e6T_Qe7fLQFw6DGaTDWDlE63GNjjS7RuoGr9gziKU-plaPRIzndsZtcQDtkASCubkH0uGdz1u3_3ACOr_UolfIHzh0N1i3w08vE3UXMXG7js0qP9mzLopcKx7lgP-g1E4PHSIV1C9ybjbnAstKSYblrrC60KkMAq6cGbN9h_t515aZo9-YSMyph04CoCngpcZC8AAIFRNrnRp8QCvuxt30b_Vrq8vWv1gUp6_uKRjHVZG2PuqRqjxTU0t9XY1-ZYW8_qvcsIcleQ9DhX6L5EthMQiA9Br-rHa3xd8HisGJqY4ZDYW-1rEarSG_TXybtQ9OhOP-ODpqf8IwuJtzSoHqO8o3KrynpY_3UAUlQgDvVvP7sn8ZQDu9MeTyErArNVf7q0CpWkECLBlU8_wEssKtBktKLX9ZQJMwRpa8F0Q4AHKFQmxyyn7HtZiv2WSWpEib6eLbjCEzZlIAetVF4oYIKoINOoGfbhXAZ3OGoxU6_DFDoPJF5PKHJ6DAOoI8X5givJi16Hna0zeNUZLrfJnuNZX92BkMq5J_qppmSmKSBq90DHmsm2jdB6ENgFv-G9jiAKV5TrVu9saxYfP-1pp6MEosJJ0Yp3eM3nBdUaDX4PtKzGUdPwCong9cWwVB84zoYDsL7cghuaHstDY67unzQMGlXyhXLqtfIJzKP53pp44GfAvc5suLCqaQSyxt_vA6DnQ_cBZ9SBWDJVcepgXpPUx3uBRWuwWUdLbriA8e8ziiQf48ZTHTHZ0yWKX5Zxzp44Vti9iKjz0SgI4UP6NaLZiQP25MqTCbpg04W-1mQvsIIIFQ5mgMmbwOLe9FEguU84HM7hZWKJmEBV_4KLtFwXBBnJCW_uSZS0noYtG5kssQ9bDTQHQQ4you_77Km3A1ihO1Dh4byP4KaU77iyXsWCgiH3YtAb-SmurSKAQYFTYp6ixx4RrxquTQo862vbGFCliP7D7sTDR1R8Vp4hinIGZtqTYHevpNpFwCAFR4i3187sUh7XzRM6z8GO8Fp4PsYOt4cnxPb2SbTmIcdVi8dNYYoUXiKPBsaF-Of0BZLZtR4rvHxN4Wry9R9LMCKhF2oNZtKNxHuiNj_j6MoCFLQE-QYwJhuUGqkrvc9qLdAWBQpdxjOTStRjK7qacqcgrTF1JdBknrKjZbpw7k2o94uyDZ5NzV7zr7mmObM-pZfOWUL6TwgygVMQpEpiULx7i_v0frDpP4pxHVKyrLumZeM8Cz1WwoeK2U7Imq8oFNw8FDjnHJRjoh1kelatwY14BG1xcrjgd04wbLFFZDNsCh4u3SfkOoLTU_IvxmJFjzIg6VCBLo8VpAqmSnBH0DDxAtiNb6NTq-SdRrepeNe95CHqz2R2wNFpv4okyOhtUF-79dN7WrgTSkrC7qiGaQOId2r8dcd5Tst5wwZs5ALrs8EsC9Tpmdw9MrjUf6cUwvbH0kTa5e5GV2dK9etuQyvv-nRfUOCYH5ECJDj73bfenmyFhws1jHP-YHDdRc0EeNkMXC2RqVT4jHOJEoejBYBDlqK-jMeZHa-9RSFfHJsd3N7FSQgaEEJ5XOyveCS6gSNHLpiKRWNcLvd-mtvVf_Js6AbF2DgM03sSXiSTZfMadE3QUa7NpGJn8ZDg6gsl8dh2NghPUrMPGKZSL3zIlfL38MlSkZz-TBhGH6sHYhMcG-wqo4flZKtsPmwpjqFXI_SrLyTbJnjmccYfJBsWzymt0AMDIgfthrab7A1hqZTFZamIeNqSd29esIEVc0wYfrD7CpvX4osVi5T4Hly_Aty1-wPYY4-XDHs5mPi8xtyGqJix4tteLc7bLRMDAjG2G2r9OLb3qfVC2oQ9PkHIKzsIk4cLiRedyk-zNPEeAV1AKWhzx9lWObUXbd3raN5wG-vpgzRib-ykO8_wYPvTOYomWeSxyYuVNT52DJ6uTaIKjUmQS5NT_KHhQJY3wzw08UNYhMxOWVPpLplNqNs0LoQLVIK8zlRbME8SpktaN415Ldv6otTst-nIoCx-js3uAewNOhuyOj1VdZSB5tafRsyMFvM9xq5n4qckVhGCPYEB6MliyAa4wm55Bt0P--UJ3pkZL21FxvVBPGPkpSCJpLkCaipSXplzYNSzlKStuPoSUqr_QCwOmHWUNp4WLHtceo530_lXzOSkHYYAjn05WSxpuav0m4WbbIwop9lBT-UPGVBy-C3q59yBdKEzpPUeiYmZW3YRLhX7zmFpuQVkjYvm-KBkYbWC3UZ9g_EEBDqZ9LShpBG_mvey3URcOmI0x2Ofsb-KlibWfzGnedwwOHhYyVff-ewtL7JGNmAVy0hF6zwWTyI-lwHMz7-lC4TIKwNv4Q37xqKKtpqj5_7YSb_bcDXEkejFQ2xJUje6Zny10kIzPt2nNxH7Qh2r61yO99f7VuWY9lWkbZc39CDgSUD07cFc1c2oX409vxL663QUp6vZxs9mnfOvqqNdlhcc4Zb4xoGizYRWseHg7DNneaLEHljfyQm0AwRJos7X7r3oH9QZQo018PjXSlnkVe4zSYqIw685dWHWlNycg_4RywfTOiyRzJLXI8qwXppN_fbySwhTL7EzgzcC2-buFj3PTXBh7vzSXYlT7nbtR4S9F6LXjeS1jeF50YF0qYfV47CUWWdt0_bGo4u3_4UfARJ2lD8uasVOliNHa0kWfPf91HeuvZmBZqbl8gpzwfRJV8S-CN1uBRaFXEZUnXcYI6YDurMBas5bSfwwyx3ZMz1PL5hpPE22-Ea1sFe7NnVenr__g4oqaB2hiiqhSyIvc2GD6PpObGzFDg6GumofTm9-L-KtpqrRpUcmqAvFDXXLgZZwdZ_NYlbhedE7YxxPHZolcXWPp9_eejWrJZXA3n2ug-XLsOZxV6W1qTFbxCdVH1Mei3XwMSiPKMflCq3eMTorBF1vUBBzl1nUPjTshkNNIXfkEjWA1xnrSTHHfSLQLRy1RzK_yPOq0h1cKfU763JGU-dEks89Fsb0HtuIlrozEf5i9Ft7eTNcB-Jq3-mVSdR-OKlIQG6NaLIyoSFaizmdpzr_lhC6PbfNoxD-6eYGpd0iNxYXTWlTK4Srq_OWtOEoftQb99zfC40nmLmCpRq6xnaXVU2LKHKx-OJiuZsTj06nC165zXdW9ZqSCw_nKaAlo3Fo79U2v2VL22Iypvc9W2HTXCMZ1pVlYIzzntbm9FsjynXtRMDsYQszhTq5jdCUDF2iFDStgDLj9o9d28oi3Fw6kKP6rf9l7CQXlz5w9EZCqUS6RMb4yYyuXjxqk4s_DegsDr_5uZ4aKLqSmhW2-ugyeCa-DOmfPqMf9zhmdsHzOEmNvlIqstS98eP5qY_OXzq_FCl9ab1ovhllooHny0LuFczSkvPvgGdJQO5dY1WL5DZryzR7BeoQu1Ho8vDOLdJBEKxYe6Gg9Cvl7I18undGD0xMaz-1Fzrk2dmVsIeCofttjIKCuZXvxzf9LVgM5jPVcYwgVbQb5W90s1YH-qhz0bExdc1g60WbwTicWReHA7rdjI4YfZ1cgtgVMwnKwFlGd_aM9cZ7pzRQA5zObQj6t8O_CZSFRTsiajoFYak05tltZg4wQ5GkPsAo4Zf0WfoVzbf9cJ1_vH0Oc9kAw4VSdbBBMnE9jIakEmBEVX7RoLRP2di13O-Le0VCtiVBnpqLVxI2Y7ai2hm9_zVf-94NOtEFgkKlg3KTOd_bdRe-5RXOoRFcOCGpRkd7rAIaIDpS4Ukgy-OqhYiVgz2r0g2V7c5ng1qRH0EORWj-fkOV5R95yB3wzvFcUhsqMTuk8G0ESUKMejMmfa_wmu7gMoiCV_lx4PDfitFb6KkNTQA_rP76RIwcUKQnX2ERE6C-MSQKaXLr6rQwcGpF8ThoKmcp0L4P2A4XHgTmy-1LVFnm3Pzbo4ZCAcVw7APH9cyU9bvRrof5K4TXvtE-tJiDWKTHgssJ-n92ZA2Ah9SPTh8oSb0weeRinQdmJdEJlVgx1pnmz5V-1-CWdLfB-f69nf9snhYvzKb16vLzAft87qCEqIbFAksCr2_yIBwXIgg_BV5qExVS6qbTJMTqo4icHH22Im_4OJSBtLOz-NTTU2oOahNFsHT24EMqhzYLgFHLVqVZBiqCfE8S23etfyWOq12Nc5If2IRIPAZlsuQtPDUTdv1fOguy8gXzrM-7B-vwGklhu6Nx2bpKZp4RNsKbdRICvNi1S7lrlMN6Lry9onWZCWZDH0v4r1lG3Y2LeSae_hdgPu_hkSitlt-VHretAq7W0wnIhDyRXir_-tkVo2ucZu6qDz2Zmgi5hrc3kQ9hSRQXeArVcbcxNuo2nuWbzkMUD7n-LlAes-crG1J-OjXNqCpsuVw3jou7Q4cXAuVybGmijhn5bg86I-zEtYBBJQ6aSlsMhsZ60JRQ1wVPK59042AqqSqJtALvBQVddkaP6K-bDR_CExuF8DQDWeizoqiCN0shuVy2HkX1TWCy49IsurF7vs4QclxbBbOkJ83fcP-bf4k1PZeh8dbAMj0t5Bo_DrlVSaxrM1dvXQaecVVl15UMx6qpTgbBV_L5T67pxY7Abu29csfYVW5NqQsOBkSANpXp0fXOPgKPy8OOOmJzhRUDQBtucRR9tpIskLoRaqlVBqFeoRdU6Yrvq2tCLHXqOldprfQK5rW391OIrU7XiYhFDJC7E1KZnYF37M99tmXAyFFoPKUuB9qBi_rIzUnuzU0RMOc0JGsEYJ1Z3q2SGVEpwP_PGR-rktY19DiunIy54rbtJvFqB0C1tS5WZ0JoRZwCLISsuk2SUjLMDRhaPhpQdPyd6i0Ay36Negh8nyv6DqFv7SLIaS9Y-7Q3ranzqZwpXrO-3NnmKRdgf6LxUmk39aFAvM3Bsqt0Mmfki8_dxE7v1dcXl4bz4e9QbsYN2bLIxqsCZIJm8Yk0-eT7jx8_RsIdt8hDFctj01kvtmGCEvsrOrhnQ7QZs-1Uu861qlkofl8t4pUvXHfGWScbn_R5fSfHqVH9LUa8QYrJxReSqCoQHHOTcK3q1sUI9xlq4llfLej17IV278lPIox1Csy-xBw2-Sd49aSc8hXbyjh7nzSxnUQjyuV_yFmfIQ3mGLccc-e4Xk9pjnXUeVwNf8svhf2Tt8VVO3CRjieTf9eJddHH6Ejc2qeXNtelSUT4BU-pwifqw4Zftf9mc3Yu4ysbjYvkTgnjyvssj7oM0A_VUA9RTuIb2TCtD-Jdsb85NhQjOeZ-0zp4uWH4KNEz8hqGwqOMSIpKAXpPc3dz7RltpLVvkLKqk4KIlxZdn9vyTI-9wnqgHbIPfMJZfq9B_Vja3p-G1CNSatMWREO-QQnGXiNjST3rxp2p_Qk85K0eFicYZwS1lUBJ8oO41FOarGbZZqS-27oEOVTaneEzfRAp04l4nmmry3cSdX2FcB4reSMzwuitKanciY1yzBjcnyyjGTk8_HN0Eixpoh1i_A-DdTWLiux_MxLB2vKZdsnZFGoBzB5LvgpBBjrZ1-YO6qwC0_ngAwRsh0PTI6SmfO-0ZD5LVGIeUkKVBpYiJaglrWzCU2mRbPvj1fckeN0sqxkvPkkQI-Hv88JxXQGWPJQS8GtfsnNhaefv40FWUXl7MqevLPS6vU1jQamhlGZi4Vrnh4AwjMspNCnYr6LT5Y5kGe5ybLzzTxSpof6nfU8BYKeZRaNBdpUHHEHPBUMeo1y-kNERCkD93x64ZGoPuVQwtCCx9Pj3MVE-iW4RRTjrFn5EnyWTCgXd3RVrDbXobiGhZSBwU4q9TYSjLnp35IP2nmbPljTc0jWMaEVxwkoUHdPU5khIRGnavjA0NmqbrTBDE0Veh15AZSuCJbMHbLAwNN8fpd6YxE0qeMyyFTIgw1-MObymtZymXUaosQhcuTtUF6LRUKZfkZ0gcJ8VBUCD5UcHbpG2cA6AzJ1qSI_RQGt6_9ZTe3vKFmQrswQXv-5aeSxE89a7QDBPru6ZW-3Xg0sdqKF-slJaN803cVPk-vBx201K9Agsyadadnkw73ltE4oLjy5jQjnYf_oxoTggPU5__eITjJDWSS_7pmAkWnq5XRKBusJkrB6Fa8vJOP-yYFxS1tVYZ9l01YRXC3NBPMOV3VCS9qUiw63gDVCJuPH3cGpV5Lksn8T_9sI2hxhMokVitw_NsFkh_nmkQfN6cha2nScpyZZfxkSRSPzlAXsUvi2a_W7ikBQM-zCsOl4LJSxIDbDDXeXj_kvEwQErPx0zRYR3aBKZqVKpjBbCeqtT4D-y2qnzw_wiMTUdjgVlHj8zxx2cpiLNbluWI-9NYk_MuBELPM2vySpVc_YxlBU86f28s0qrpyB0FGT4ofDMRpO6INIizfYRubyVaTUlkTJ-n59mXhFYMpo9dvOK_1BLbzncdTHvV7IBnQqjmA4-5bKGhFKwVoj2izZdUt9SOvQZE1_rUaXcJnnr0Sojgym34_LIL4KGLfI55uSDhBij_R0F2HYRIQq7rpgnpc72Bt1KUnfJnddqoOC3mBdl_mSdo2yGUG3wdtoK32FBWRETOb4pmq6BPCOrxdCEvvZIBO6xRwh2BqywrmuEbUnhuSKSmgLs2jHQ5ppo6bobY3eMcpG5jU93yaBH-ThmkYpKcarSxd9w_mwnaeViZmdtFu8S484qlRJmUrhS3rpWUAIDUXV5p99AA7gLVssvhxkEvbZfkyXdTOuy-jPFvBivdZLB_44DUGKjBPOtyGWKnx-A1ZU7yJNACqUX9yCno6hqwZdAXdmcVAFUhD5hTLGTHr4TfS9Apht9q9nq5XEDWUA19N0_LNHCFt9HSfOEkywTjO_1WFmngH4Endi6c71ZgYhvDO_bPymL8MzhDffGNaATeJM0_76EECxXrV07odGvlVpBBM4C_R8klOWZyGIy-6C7VU3pfPOq-Vprihb-Q3rdxCwzYFqouW27k6VAUJqGWxpFhbiO8xBOUEjotvSenCzPxujExSKaW7CBrqwqnwRpX1ftlUGSRWt3cWEMG3qJpGalz_diPbXAKy02cbLqvx7cr4y4eiIYtloI4WN7Z_BdWUufOk_icrCWXkszWi1Pbc8Sk4q5YQgeJbsUd2G1YlSZoT1M8nFmloL93oGvo33VbTOHyIVtSx5Cyzfg7QJgIAlQedR91th7CeWJGpMpU3kIEteQM3p2agwPitp3elvvL8F9xVrIRVzmVKW3XoeThmQkv2_4WP-8T7B30Hg8i58SjtO8Oo9GeqrV6LCaK3CHE-dUDtctmn69dnZ0OD_unHN1mrdurWpXn0NetC0RV00_V2NoOhl6F0dBS9JojIO-of49gjHTkSZeK1g_YVVoxkDONWax5wE6__PCSjseiBpr9qEL_ciGUrRaQ8hFG3Ojva4BqRJFRRaCeR8Pa1nbOe_TEyhMg5ZLH7FsFBzliCJpfbLttZkNy-Dd-GdtvGsh562CzPzJTqPktqCnHU1V0cb1SHrNz3o4lB6CuNJi0rrdMSeKsZTbFnthRsZ7GyJCnfs5z5494ZRXgrwealgcJCg4Qo1PIBJAlSQh4ZQjQNo24Fy93S7nVRhlh7z4lrOSlEey01G6UEn0QfbFzlhUTDWFiXMkV2pwbuvzbDmCzEx8A7lLDUNui9Dsx1uTbxGB8eITCHUE74QUrRjQZRyDYiRK11jCuF1TwAZosYhx4UH4dUYmn7DyykrPfSgzwjt6Mploo6mPdNT1wtIaCFcB7sGBfZvkxzzZ1oGempHsf8jtBHLu1xUj-bGvYA6pDcedq_C_BPMLlHWHXMykv_3tpnOw3GqfFhc-2vx4zqFeqp48wswOi6JxYpASklpYfZgvuTmBBMZB9zvTpwAm0zeGNxpJsFGgRDn12nOtHnsF1wvBO4coOtBgG1gGLuRsnsdtndo03pEP4ldjvuaWgoeknV8L_uvJd4WA3bcyGHqpBXVhAMVXDkSj4CH7z_MSronkvOYU-2x_pJlkVXFJJbPUVtVCbtnqRfJhwwjIEkzzrU4fnRddoYx3mIHncVQmwlDAaurRlC4Oezno3NxnCHJGlwrYZEFCWd4Tzg1vFD1JWxU6_-9CrqcYzQhNAVaz5XKggpEd5uuCCywF54TVbzKjyJ8nRbY5wvBXnxI1xl2-Vob4yDWquCmd0HDCCSR42_Yjr00-aQCim4gUHDLv04-EdbqLUcnuCq8GnwmKysY1yalk7cqJaB-ytobTpfzJSpSGIy6nDnWXaqcuv-TVDUmNCH0RIfyA09nFt3-R8Y52R1X1Y6Q3sDrAd5AkIb-gddo29FsnnwAiHXRajd-_1EyvcV61YIKn_W_bgzba5ifbkD52U9W1ZxNyqg6ckxTHzPMc05UjgVeCR7Svn3xqoH0qh7bM3aLI1gyaep89IghO08HXumtdIz1sPbKSSaRqCVOIN3dmJOXena1UYfCKbi2dTyx7M9wGTYymTeFSpcZhucUc80AQASQAxeebVl9-FQ9e1ydJ_LsGrusswRYvMD1ZtihwdXrDO3fIik5GiPbn8u1qTxp2cu9nyYC2vl8BM0F0gpTKoQHy24YA0Rag-Qs2RVQRPSJAVfFFA591Qj6OLfGZXHKVmkrDY1jRjYVIXeCjj7gzjoFo3FUJGOjL_0NGeJVjyRsdQAReC3mWyqpu66jRpPGGqD0me8brfMXCMI0F7nM1cGN9tLEjUzeQiiajaUJZx2oALqTdP3ExQATD6q7z4VnvkjldZpxbp3f5lQvDKiSvlyc5kg2f7RgVSJw9rrHriB-_1Qx3n1bUAO9IXTr7pDVBd9Jb9w-uNO-vewIn2VmEvtbHcp7N1djYMmQTMVJrMj_PC3RUkMpKQiXLoXzgdlbvctfPtOF4z34pY5rsEQ-k19YdoKBWB74vy9OFOt2PZ-tvFNZ7DKwCB1HzBpX2IPbEs-ZQL4jQez1bYbsRXQH5ZI56Qu7Rzpg07YmlXbUfiF9imOxOnuexHixtIDRWffMA0FUhF657xUxbgoJIskLqS1JcSsuuikRCKNzgoIXsj5ql6j7SbAnbaEJ-TbG92byaF37rtVlc_UYhKKWGeAKOPjToGVx0Fu08nx8MdfK7R0yMMla2yMIm2F47Dpo7eMrqFLkMDjtLFQg9omHLLTCRZvHavvdkTs861A1TPOtM2DP8g4YXZPtmd7R_geICZuIMOSOiYYnvuZZrXDxEGfGicJ66KeAYEoNyNfqP7x3Eewf5aDCwymhQqyRJFmwSIRJNHyf9xVcGDrEPADJQFiUNJbs3tJqtAUM--5iOQByJfQhuCh374XzXGhXmIlwSfW20jKJ0pi6kqPmMR7n1a9KjSN0JfT_VvIi-tIyi8hjY5jWJSxCtl6kY22p1c_Bx1m9YqBl6O3uEYH7UFKlMin9YKcbSFTm7_jlM1voDl_lzxO7Mbn1i7do2jOaHo5iWKGId2rpROGVqov5okT1tksj5cDppLZ3RfpDdtZXN_lkYwWkiKZF2Umb-ODqUFfqZV4KKzwFNjrzO-KcD3IGWpvsV0lZ59PpJurwOQaLUVbLp39gKZVtup5423K1WRosEVXDATrj96xe3i-FvvMisUdAfoqiebF4Z-c2Lr26UOAKJASgW4GoDE1YO-LXwUYSA00fmDQNN2kctbwT96EUbL4KD-k-xjzwPvYf-zyEc3rIaVJOP48rpOrrX--9rV3qSJmRzDikcfXXXigQCt2QdKUUw8UJmHqoM_0eFC-q6zJeR4I_GyRulTtC6QNIh2lHP7i_sjq6_WOQz5PMPMrpUDC8q4HFf99ZYnJ-bW0j3IBDecfmlOJNboOhn_4a8cosxS0rvosMatzaRpJgoyClPo8jHfKnFNIG31b6WpYsmPRQwJT-3-HavhtoUj9C1hAMoSyQijsUsLDkjqeCT3nXSqxsJaIS0zMGpNnVHgMzlkudQYnItNrrZR-wTT-xk4QJemAJgQMYpo1ncfECJbUvbrad37PnMSXaexT4oIyx_EYkZScPEK5uN39krtymHp42UWKh0TEXZ00suY_SW0OTnqMSdEUcnMtSPhaMRVWjjr-NhRgbP-D1gkbmy3_rUJzxTocdrEUc1AXAn1unBqds-Z76Y02Cga_KZu1JJ8MOSBr1xZcmcdgjLg1SJoihA1wvYriILD2sSv7DduQtyP_oByygru6tSa0RTKh1yOGo4a7e9-Kc7Tpl1nCpfWDqMFhGwzbWPeqS2O70cS-jwq02ayrgL9oivatIZZfm9SjLCOmWbjzuM-3ODqwA8N37KDSVKty-iaE1yyEtmd_IMsZQqlFeLGUgULFSLKpPmcj3boFGiMPXn2gAhqXmjkEF2_ZRN_hAeiAxxlfmfJ0L7pzeC-wCZ6MHD3bLYAXF-cyGIiZu53NBd1ek513fhaUBeuR6B9PMCywG6CSSLFDgb3IkPQjiXH64b2HQn_CJA55MVMm2hb9DoaviLtCRvCK21vfpsXvgFmO5EfWc3sknQS0SEWDcAuCFbwKdb7SAEt6p32EXxBFrUA249RtMlMLngdL5dyE72QuCDifr9R2foqv3USnHuc-4zKcR8RKBCRxJBRKwQVz-TBRRgT6FKOmLln8zmsPEp8ezuy3CQIQ2TJu9oF68n7Amnhvl6YNqdxYBXPsMMoXj1iwzn14SmfZzQA8lcPW-XFKm67M5xYW9Z1g4gpSLzuFLJ1MoLzcpl3RZeUpvlAw3w9M2uKAwbRC-rZ7gvrUnawkUH6OcWLbt6iLmyjU1oUyCkjfWsFo8-BU08xZygPC1XluZ_XwmLatRNY41F0wVwLWCj90_b_QZ25o8ZSigu65GYvJvhloayYxgL9uq-U0QoHnAsxR7HQdFG3LX21PehNG7zF2-ufbZD4kH-eGm9_FCYtJhEjhXyaTQvsTnYQZjIMT63guBdIYLJglQEXxi_5UX4WPIRMAxEuxex9Iii_rM7lNNRGhvJ93zO8i4fQxePI7IssbTFPA1xfIfORktbe1xB2C4Q7gdaxWgVZDQOTPMjxC7midM1QoQVCiw4EtsbECPZ4Zl-gsietDUFdz065o_pv96BlakbuECmLZbmIsU_z6rOSGbpMTlNLzG1el-55GIAlt2N5aCjj1o30GY_IIQgrSvk-HoVOpREpf9zumdFQGEOqlctxy0ZWVUkbMRyheKLo-j6GKQ88gIQMTmmnueOHE2ZoWTr0JpHvzvcQNtSf666iHxUq7vXutWznCwkIq73ODhbsdRp1ImPCbmWII3Hrg7y1XuVn50yqYbsa1BE-pru0h0fQAlCKGvwPBUbI4LPp9eVIar6Nc9gLw6yfJl7NpBlwOVzXqGuvFn93vtglz1vJtNAqbjYIZKecN5izmdSLbUinupm8pI_iQg-5CH3kEAeBGemDryRNgvC7ycO7vXhETe5AOSb1l4o_RSWUrjfwVIb2YBNQg4C_TQ65YIxyHRXAbGznsqCZ9Z0o_-Bhb8THriICjyFCUvO9hXwN9VkpYgqd6g3dSegKgvu7h1I-_z_wfLnKg8_YCJplmBogcDln15NffnR9uNpA6N8QfTUyAz_W1LCgzDatiGcZrk7GMKldA1gnORcaU1TVGQmMpD3gS-yovXnvKYkFqjQhuS6AzROm-CVEMVAJC-jsmNYwEeQHBRoFd2EmX2hC11oIMfGGq7bmleafQSskocM_pROcRsxyDO0HZ2Tf38P86bdTJJmwjFGzZ3MUYZwo67keUty3ZgG0Idl-ktP7DDjjAJLYDexpGqwqzFjkfQtHvR0lhVc30OhFmv8OXXEcmBO01Umsfgk9SeaNq8CqUYLz6jPJBldGqPu78NHR_ah331rX666_y2TN3XdKtmBH-swAtZVM4-Rweyu0YTZaaveOvbfDE4l5eVTI94suYiNAin2hDetZCeGJ-KqfhtHFaeF5EZYJnXegTQpye9CqlvCt7Dykc8bS45YMVL3DJgtdWPR9Ghi0Xv40-f2n_cjzcIV-lEAFcuHae82OYBkIfPN6GhpLt5_VOQh7meLB0k_tOpgOEfccjSpFtY6Oaq2-G16klnURpDXoYMXjgEZ52igaNc3jjsTb2wyDMnsGLcCPseoxhXeVlPtR2kk5DpqsSLsDyne_Soea0sIU-zsT8aEaVWz-tQLTpb5huY575FV4-qrcpIh1yS2phWCTJ6u-tgkvZcqBu7gwQGR13CZS97_zJkorzAIKYWtZPdRlmrDgMB4Zd8XKPul-1bOa3s_sCTkXBVNVZX5QMlvY5Smxfa5IewUe9L_oM97MAgWb9huveZDfyH68bmlht6VOOeqvACpc_MRbEGoiezHlssee5-hL4nb6d65obLKZNkl3G2icmChmMIu8_U7TvJ9iiO-ZsoBqcAux9XUL1ebJ27K_lvORks_UtMm6uOfZ0CqDw7KLjAemq2NHIJWlI-nAaKLh1e5iSqlHfyQ8QOnIaTiIoEHC4QIQm6kVtkObxZEn-Llmr62q3t62jJ4InziV7lCcOgLy2uZ6cdT4bz3YxzfjrbfG-lNtuRPhYayWWv2-aJmLh1r2_U_utzIdE8mHjDHQ2RnfpC3j-EryATaSVpPhCiIjRz8DjdR-9nEyuL_VOunvZ9zMvU4aEgzIxIiWqNmsgMmDwlKMdGSe8G8uuoKg8if-R2BEhsEf6NAk_JUk8y8o8XK6a-wgJXoQgQyorD7Svm6epWP4AMJuONbfMxxfbndzf64RMsoZMJUfKhcBsatUstOSdFUtpxUTj16-jsdE3WGNnoJdAJJZJVQ3-1qvj1gNU_BNiLs0Km9hkzMEF9RZUyRnGe2Ysa2kHWLqU20_V3eCKGG9DiYOImAY13BkyfyUO4cjwbXqcQ8U_9gALO2S08Anbg53nXIUM0xJXdWuGwbyS0eU3AK7GtKWHAh45rSsc4t4IBbFruy0LE_AsfjNbWzBEk6EcPnOjm097oKWLtGaAtjUMPbPHjHsB1gN7i6MSwno7d9k0ok9VGQyHbdT17cH5pszCJia3tioJzzUzYx-aVf8tBNdftdbVI0VLVsmZN2QpY5COBoQUg3clMuGvS1H2UsqUKeJLiiYcr8F7CI-BdyK81Ze7xfoAff9Wiz9Hje-CRuPf1hvKrK1GlA5B-FkmyOSSks9NzAn0NkZST-mYgkygaK0NJhK78MeSZ4EW30pv8Di5iUZNX2wAaxLLVWmQZLYd-g5xeqnIU461NKmhQqe56NsLhCA9VqgVrDuAcx514KHyHMesEs7eGDNnzumHg1T7Wcr-3owCnODIu1rNkrG18DCpuTAPtmA7m1jZWMK_cILTYaY42SW6JYiJ2IPFw0ueXoCvTqN3t5wueLx7DcyXxG2tGZj2UL49Sm0_9SUtEHV65ncWxu8_n8dVlsk8nEoQIRzvInW6xYRR46h9UCkvDhEItay7xQHsF3a8HEegPlOtr-pJB33u-1daWbFzO-uPiFob0WZl8LAER8rE4Q41JWaSqksK_vW1throgwKoTJsieG_5AuIqqve-HRG3oZrhACpHA60WRBIKPjV1FD5gi81K6-Kf6lP5sTBqgJv3aTjEKlFagsamlU0JKspZDIqOAeYxMMw55mrB4rLsP4JMyPoArBKXg71cFEnnFMyF3XHkm5mJb-VRtFp0pE3SgxpxrDuf4ZW6IKdHjOAvnaYopU1CuYRMOlyp5vBk8XNF3P4zEK6d6sa_oPiOKb_-RLRVq4mQQYwxwonSUzVwOMrLK4bbjweLuJjM2SYcT0qmBVFfM3qyotNP1vlOUyTt8mmCHwXTgXhKcsDrwWhkgVK6uluJF0l60R16SnFZY9X6poiMY4I3zsjzlTmVNYJka8-iBGc4eHrWKB6Keqhi2qH1ezuTxNkdd5hH8rWKlr9GpmP8CBO_WKJx6s2pG5XW4GlA5T1bWj2Ke5XrUb7HSoziS3pH0-CUmqJuJDrdGQFRFc5iXayI7ChPg48J90AyqYYinhxNChj-UZ1kU-9BU5ODxxXgCwOeLAJqBCT9g8kXl83Fp4Xvae7BG-sa4fDBnsXCO7BzQCKok_9F-Ya-gkaZ-fN_cYEjAWQ5QLsUpVyEyapFHHJIooTv7QamMl5jVpT0UZR18fDSmbLl5HqKGpj3N0dMuLKVoMj2hYpABjJmCeuaIRVPVvxAPwci17dD0Ow9c_TvMvkVz6RxbgIbdKAL7tA-DoK9KSRaSZMC5mSGYo8sA3KcQD0wrcWc3TubpM2kjMClVFTlAHXN-tTV5eKd_wEEZo2-uhZ_mu9N5r2Ce2rIlM7D4gyL4sWLGOnDb230MLpc62KiAwx6vAs_FdcZ-e4SPFRmCNCIq3jdfoi1jYGI_HthaMNq9ME1ChWkBdunLj7y7pgg1rBKGEmLrOjJyUBI6QBu9TxcWL9juxHJOTvOzdFMUZWEPgh6eFdQmokZ7jk_R1_et-ooFEKiwjFwXQWQJ9L-QMS_TyLXdCMy3kHRFq0XItDx4b1-kH-fhhERpPyMqciB3-AqNqVD8eHNj69FmXd10fz8TUtJSvKCYWz_q9Mrybd8BS06VwF9iWc5PAm6PG2cZNiJ_e3Wf8TypiDG2aLsaSNM_B9dWrlVZPUn9HW20GFdv8Apv4esp1D3GVFYiBgW1ENONLpxx6Rxx_cwikf4l0z6lG_bEgCe_6OFnlgn_qRCxppag6zD2C1rC1NRqppz0AD5mLRbwaTISO7GvkQIJTxbl1jn-qxLSNYpyVHf4OzDy_3mDJORxBjJhD_4K2zLxMtPsAxjp9kSYyYP3tE4Nn0IGroI0m602jqLIG6Ur4oubkWGX-ZnCeSd17cNbNSn_9ukjc_4uFOh-oBIIawJ6jqx426n6jwfRrCudxQ_Rjv2UGNJ3LFx60W79JN35z35czDcJVocLffQkihYRhK00-cLr9ZJwsEA76Soi0NASgOJj-60pifqYycI5jnnMGAlACjvcqQShm6FukaI2qNC9KUYUvNuCseaYc56GkIQgQG8fEeG_uvDS8kaxSAbwqjCoQnuELTnwUQoPcwYv40PJPLBnDcwE1aG90jHDhDj1-EXEisFgeOOL5Qod9O6Rqkk2xsp_z9VTHcaQ-jx0SS-DUO51elhNXs2V-d0Ft229pIDYb4yY6w5FbTi7JiZ-lqACfqDSjY7SjH8WiEhfnixMUEV8lR9giXoV3urZeeYQrMYeDviF183vXZ1Hay_EvnZS1GEDtlCHNaX7SLeyC6oLTwzDUhweY9yPFXQtb04bcD7qXQM8OJwAvni-Ou8V25vHm08LdjvinXBiv5uAQ_ir8jCIuyNY2TeluPP58fF6q_RPLRoZ6zQ3op88O17IR1tt40OYplNFX2l3RXtuihowtuz0Pey4zMHrHjDs3sPJExXHssxcw_2T7m157nNwN7d__0tAPG3A31qWf1ACoVdrRk5S4ANW3PlSfjVdalponebkNgTHprs7U3tShAuwq2HS7SNkkANDj9avA0Ud-NnyUpgXKgFDLJQgLKBNoY8wLkhE68jyKEHxBuWp78kFaBvnzQ_9Wn9q15pXV414MVwun8q93TuJnL8zGXIbykWDAud63QfkigPmDnZe69CI-4LrG4y6ksC_THxE94hK8x8lDjhBQHFN5WV5GmAQLS0li1SHUKzPZ6ijC1i7eAwSc9i5lIRnKut-607hq4u57wNE8MOFFvkBBvvLN8VWeZFjT-AhenZnF5awtCiuJBQt8q6RcnUdkmrunbBixqUaITfryz3Z1S5q_3gCvClyf_EMuuoQ_G7QjrBGKPo4LR42KlbhlzR8KkcV1i90H1skFaWThPnQDCVyhIKx2ZWcBgFIN8lR9fgtcKId-sjBVqt_2VuU591_DlhuRWHA_JTZ2iuMfQSREqgX4oFrrOCyLKwj3h-3HZoZcMSbS1FQCAfcFcmcmeaQYIqhNOE1EmzYoG14aufmBTu7VYRjHBPwzjeqMjbfQnTL4kSbDyiQ7xpFB4ck6Yelwk15nu6B1qtjFMYZxunsRnlL57vVL-uP0Fbv-mC1_HbUbxi1WCCXPKfMap-SUJg7ftCwVBvGPIDBuH74fP1ogQdX3mdiyaKfiE00UL3F3PLIlzZVrcI4T61mXqCso5q2xHVql7ShF7NvMlzKIMggg-8d4oRpl11_fbsLGAb3FMSCc2NLo28EqWu8XdGjXFCUPCSw2XK4naKRfVSjf1o8kTXewHpDpcvw1ICflNXM9XMkna-8W1rLXirt4GYIRhigfi0h2grbY0XhFP83FqMxWO4BCqWjRgkmQAouwNKKb1vcMTVsrujepokOZdzJAc4t43yTFAGCx0HP5x7G3g4R0OfbUeWQIMJNssYhS6IexO2ewGjvvdK8hzpuFgdsSHRgU4W0G45wjGTJ44ceIeoE1OTi9MIWoRdoLWau2eZKyZw5dyFjEjEMbL5P0aE048lRtDn7vXHv4ZlDqAeaR1m-gjVLnKn_BjQIph3K5f5SdzJS0YEAAFSFLkdf6sld6KP-uoBuK3Y7TejVVermhiTPLNhTmAJGBZtqTgjnG24xw-PswTGJNLSlgbUW11a9YXKYqGQnfyv9DujLJYrFwd6K8IauUeZzlwDZj_SfXUbZBwiJUzzkN9crgqjMZUeEQRHqAcT3GZQ3kwgrMKOCXlguR8BfeBM5VAJrgJE3Dhj8o4sc_vIogE3w5vpou3ilCQ6TI6UoL3ZicXx7x1Q9rFR5nSld0Vl3YCeF2NyIoU_9qmLJFFiQd3DPTuwtrxRTsbxRxpVp3FwVBMdk-tMnr4tf3-nd024LHmVS_e9oe_OI0cn-JsXGlz0kSqgU9mRj-LWKD3ctULI8de1ZLcMF6BmZqOua4eg-uu_02Sd-KxGzZ5hkEMR4Itc-CfBanZDmku_CZzm0c9CIF9WkuELfFyB_OU960YjWxcBJBEE2SFaeF1VfmpbmaW2bwv3ks7hCC3_J2JIfZYzunELDh-E0aY1s9GG9vzPdO3xHRvyk7dCd8zW5YfwvfbYE1KvnpKZP8RTrHfCLB6mPX6kMvFQ4HKmvq_6wQuQW8--Ax695Uo6xaaCqfDWz2kWWtqJj1RK1_WCdCnX5XSIODUOIUB_VOeGYZPzj0Xjbcc16O4ZF_SdTCs6MU4SabzN6U-Ya-bYiyndX46xbZRXWvcHvBXEyVfA0ow36fjcckS_SEn8fZr3OBK9_Ag-LtXz2pPf7OKP9VfXklYkrsl7YisjR5u-pObm-amTbVZE9yDDkUbzUy7KmDRgXKs5GkeSZUX0pdWcfu9c-J2Q2kjctHsrYmKKAtlEnDAjy9eMonHA4uWpjfyXk9UFSVYmKiyayZetWC5-mBtZAwLQ4Sgtlzb_o41BOWGhZmIa2IUqgotdNeFIqOhxQUvZsbSjWuV_Rif1P6OAYOtJwBjGcOALM60SiSe0UP6VjotRbWgYguCkhMEpWz8F2J5flwrEF_pff_W0YGnbPbIfvuixk7CBAJCgB1mIC5EqAN21AYOhPKE0BZh1m-xsIBJnz8yGJTtWdE-YLqb8OeCVKAnC3KG2J4Yh3UKCFrhHMyhWDf9NVbvnzFLhvonl4rpejcherONLnCcjN-gOPo68m-4o6glRmXwnwVloQBG_12KIaO-XyENI_vr5m21_HETQSmuXcUXbhG0t56iGUJxetyo09pBDptA1y_tfza8y0WyPb2CKRhg5SMkrMe-RuXlgPIC87dch9HjdjAImDUZuZYTNLsjSd9w8S1Hr36Jb5fSkGiuvR8kHjsR2xAHPMkUN3H9shLve2zcyCvX2gah4WAo6bimpWpb2k_MaB1nUxPXf2uBBzGqYWMEsbz5QD9dd_vu5KfKHR2R8o1Bi5s67gsrTK4jPkExCDXnOBDA9AnOsYMihZt3DFo0MV9MjYCHi6rsAMgMssejNi2ROueRtYHTESgEQzwc8tp3AFZBihI9j-7doFsuhynXK-5MXkc2YtIyHY8bX1lV7b1eoZWOmDGBVEO2wnubZix6VM8mfDsX8MYFurWnkxgBY3ZwWiKHp1WC0ViV0p8q5klrgayxq8RVjz2DQqdiWlIFJgaO32RM9FeeM2rZ7EZzZsQaEZzE-UhBHldpeMGOrFeYOHgamsnMEGGhfA-s7Y7jAOJPlI3FQLRh3IdDk6jUHdDPuHjhiEgUUULByehB0bPqyi2oBGkmFeZOleKrlA42Qrba5QIFuq2al0EeWSx_iKs-6fdA9tj_FhtFJx5qLHTOsX6Q_0llr7_BYCFTYpHZRZLBMxbIsR_YyNQQOtVTI_-iVQLu-s0J3n97GFzVMi50dXpbM3wnaRVrJy5aYwzoTMnJEm920i50hfLc913SQKyOqaqwbDjQhoKnLgx5xxlfYNHzD_GPXaU53o_ZhbKWfLlZa5PDhR0S9Rd7Tb7EUTPd16FfR3bd_fMzHeMGLsJLzNDFHysj5IyCYFIuYr6DerXnHzXESk8GDZpdm0U86OwfSXYGDXi47cG8f6AUDUkTJaONvDQy8Xqe6RAarcLFkmIaqESafHFY-3jqEWy1LRrBzR0gJ81vQe26hJrBiaX2s0EN4Sy5lexkIBLsv8Tem7e3jW8LXan_FF9cYloeoxhYE6XweMBzSjKojtc54cX6uIB9Ci_jLruOFRfBgWtQU-RPE-5n1M_NOBMKawcnZdsS9huiPPHxBgusiOTDwNMEoP4GdtzcVRVpvTnD_sBqIvT9dzQy4n43QYliNxUfiBhb3SgET9tkpkculUC9RYj2VpFMTaxf_CrRWBJnu1jUmK5jGhr5P7t8hSMUHBgzZjdvqcoNiHbaFqwtshGXl4LRL1Cvd5gfZW11I2ozexP7i7q5wgX3mUZ0cHtToLkE-0QVz0uN-uCq8_QKhd-iPcH1wfNtfBu9jJ1dnlrvkD2Nob966rJ6GK09LhXJnbRowDoXWYZO7fN3ix_2BIZyUQpxuImDBh0bKJvqRmOs-a2rDI0WzdKpGACZLMoouyKSWV62wdVnLZndhpMnYg1p5LDUmBODACWBblJEAK-sPzK6uJGW4zfwTKFo9Gl2T3ZypiOiWaNDPmecFy_XJSR3-RmS70ccxUHhQJf_8K6RapjZ6qqDCcbAo5U1KgfUtQwoaBLV_AJ3cyWz6RUxoTWYMIdt_RKqhAUJEhQWAuyoTNzt5f7zrpQsGsnc8ZP_tuSbsTRw027UG83EMGEzTuB8zOIEDSf0BXs0ebcr1QxswmpRgvBo9KecK3Vnf67mQfD6H94rqmv8n-_cQQAB7huprgN5U1UlhvFcGNoo0i_uDrCG8_y9QODXmfuIzfl3YcBAsbPQKYqV15bUcvoQCdm3VjfdtsCKndJjDgQchIUeYwtIyLWdnk-pEW_mH36pNR5_tKlwKmOOX6JFHStKiQAYmjpWYsiTuQQJ7ZEl-gJ0vlST42oWFXiUfwsPTZVAc-VIKFMUV1VySHs0xkvToYqpzMLtjsl3kJWWuZPws0WVrPcaFan3QH1Mvx8Fu9KW6bEjE2UUf_sst3_BGuz3OCBpgYfn68v5UZWNElM5D0GPpx-hslcH0eF7yOoj6YtVLsENB7lH5aVkQZgVK1jeWfy2OLEN9EQOW3Xd5hkWUpgpY9IGTtwj4p3G-2uQKcPMRg4DqS0a9GeQSB5JKliBB_DhW8H1Xw1C_LIt1oXurCF1P9dQGLx53WSHklhn1ihh1eWeXDoQ71nk3UP0Oh-ZLnjGmYO7H_b7qvNzayDpx5ihBWbt-Ca2y0dSK34iy6JmZK8agfHlSYxjPysf5Q6ejxKFNfXcolPFUnDkJPKQv0RlJk1FWIrHRjDR3iqPejjd40vr-3gWSo9h4zVKPQKFvEtwm1r1gcu_BrvQlTyxxvmFOel7C-9I8EwpbrATIOvgklM8NXvgfO9llWTkryIxStGjMKNLDFYeCVyMpb52_N8vwueM5dR86jLoDQ8DYLlBhnPDlT_7P15R2ytZuK7mQAMvUruBuaBcG7_Sweyj972U7fJPV6hs8Txzc9vh2cnh5mFtXPRsY9NzaD64UDFKJIVAewQSCJGztsLwtrOsq4oFJ5b5mijhee3t_vTTNTg7M18Ydsb4k2Qon77J3rGI98xi52F4x_sT01-r5X6ll4cWu_hUD6R6NNWloMDRYuRkxdB8G1ES22hl8Fwkm8WgN8KSxumBBPAK7kCXxOmfvfaVuvMwB7Ja-K7JydLiRBFZfp6fR_Pp_leeVuhaXtEgKwiT7Vq94YvCuDcXC-WLfyLBNv5e8VWZYiXJ4s99oLXT0UXc9QIB8HHYhx2zFwnLbNdbqEwEY3RhW5zMCr9ocjepzOKmbq7QUrg82rsUfVYE38xzR3rjB5NxFdbdCKvDMkOfq0JbblDqqSE-0s1fPaNY5H9WfNQHNU_y_6YPpCN1BXkC-VReWJ3Gc46dk67L7m3UtPH4shjdl-EHKKiJIs2K25ApTcI4RuEFnwC0YB7iJMEbhUIzjfKBCp5vOWJASsZI2MrVjVGQl15xG5Wo7oXWFSblsKUxmfGippQmklT-oYGQE7xCVKACEbmZhk12tmSMkoPbevE1qpmu0p0co_VwuE97pEfk68HhuhRD-Kckwp9Xzsc4FjqJMUTJbr2RFgTObdnzAKHFPn-ceAfgOM_Li2kIQEhRdLrzI0S5qnjAGU5htmZuVW8Hy0N8j-eLPjbv6enNtetvilCx-p4TmKwF9dmT6356vrOmvAZzyx_Bc42iI7jeNWfJO63lDiTWdOOqz15vBoTm3ySqJaTf3klJjN-DqZQ2hJknXryy97B9ZQn7xvUh6zhnlZlcm6Umfnge84mGBeKe0BBsE5ab2vvhWPT7gwq33Y2kzWtjOkmSutGkYd92Welxww2iyW8lSv3M-VARwjGbj0aWLDF-aAEmryEJnbS4vqkm3-EXYJcvXy_0kTh7J1C5VsgajL_LoKFhj-wjBP9feQtfVMn-V-KUJ1teeels7zl0_Pns6NUPIWDfq6QQCXqMWfY2OaVyvzc3sfIjjFe6pR-dEMnck1tHSscOHR_LDbLDGpEzYsBIHpUBOPjsdVhu_ge44SDPg5Ow2x87NoBCT6ALxo6X4vXhumwSZDCDCe7_aUdfM6k_B65E2got_ofmQWnBySRIJf0ePADrVjfYvzcghb9NlQgtpVdPwcFLiAGRIGJaE_H0HVzk2xmBkjyhfKXwEDrbvf52PSwEz6fztkezRWsqDCZ0R2DFJ9jZWE7YUQiDfbjG-IcmKnwowGKYr9WZGhkdNy1mie0gnLHyml2nTECgf-Qu1rzzL7LbfBRfArwN9Uxmb8Pzz2NB09YvDmLhWwBM-ry1kkGPtsfU12HDNYHymxaOYQioiT5IguZIwI3mjy-AXTAtPQ2htoJFi34PaKygdv94jSC0guHaf0KBKOiTxjp2RKpGZAXKo2INGKfMcGyF3eiFig3OBYbr87OXqO2S1RL0p6f--irk766r4HvEr3OgMZuzgQhCgN0un5KOxqajHCT2DyIo0lgvCxy4EW9wbBTYqiDqmDM1odwX9BEvZSfcH4_rx6Q5JklLW7k3zWC0bgi0WMc0ZADoKWvQQYp0uLyA5LwI9FfU8Q70Hx7UWhDnwt5YNdvp0olvhhsw0Z9gV2Ll7RbKcmfTYgyWLdyawwsUDijEVt8KgCXHa4yKbps2xuT1Q2UZxaLJIhjjzW3q7Juk_DVflja_HBgyFPo8wOl3I0Mc1cA7S3vYFEFnhQaiJtqYJ0DzLGnSSiQ7jlqa4NvXScvv_5DelEQ36_RIk5OPFtt7fpnb0OojoN9ZwEo42EHvfQmaTQRhNSZKPfCEaH2qAqJWOlYjV0T0Uwmn5B6JIygrudlHVdz8OLGbVVzHYk3qv7p4CuQv9FetEwQZu1hSkRnNVotiWURdWWNozJDCzo9aJ5LL2hza0MUy2aFCuF4-tGOuGmHl1rK165pCWhajQPLBb9WmTMuOc1ZKTglYSm2Xw-4Oil0vjC1f-OnzfKIQINZ-XvHRhW2PRvrz1c3azXB9xnIfqck6M3sGJ6WbOsK_cTpklXtxRr318tZ7ScKlwEEzQvWPfbP7xntew6OiyMZhQLFA96cpwuxSzOvEXjUrAB6N1hJkRzP9UfRf3vuLy0Z2EscGN5x0gDDu5KT9YnRzbfIArqKpgnuXoXGxz9D1JfsUTtBbJrt3H3KMa4uB4Q4bioOUk8KGcZdGelNh1BwOM5ECSQs7p9_0mDc3p4QMHm3WzO6JaQc3zDDx9aWsrhQago5IPNAYxcheBoOZRgQETKzvnQDU2oewVpZCd0ekBkjdQ4zHZyDvVgC3Qx2OfrffD_tVNAkjkAWbuhF_DIFsAP9p3Si5z2euXPg7uWmjniqvmSAgBX4jPjRIWE_4-xjy52LeClnldOSlhd0zWYK7Rerx89bCvWw5RTl5oTegcdd9igbdOs_Oieevm0K2csdfdrP5_DjkQuXDsbUYFaIK-N71iDSbSJJQtPpNlfLUJt28DF5UU4eOoHGWksL7TsaHweu0fzFYir0FBMDIh0gB_LsDGuGatL8uDit8UkbynO6K47nu4o3utbDX_ZvGaXHnU4vqDvUDq0XO9qX0JKyCC8xhB_Kl5m3ANp9yG4nsWVYzru7cae0-PfnyMe5JXCAQoTXfTbESjpQ-d73z7_rrdDi30EG_EkX4_9nNXSNYn7xlQF7e3giTCGBLa3zcwfiJtkQem_9e4SAnxTKR-Z9EQ1ZV4niaRFA-kQMvogMxnvnlNeSKaRWJRCt_VaaVbL-U8pCOotzewP9wiVkeo3LXt2v-4sQFVuE4Lhjc16lyTP7sOWaXpX7NH9o6gFaoVKBj990oGeNGAxF6nRYsT4SgOt0S8x_73yWOGicXDjYiW_2TTVDlN5HbT3_qaB4hfvLIhHhHzXZjr8uivTsEc6JWcQNyMnAL8GQCTzc4C3I8Z2LzmzoCgfMDUlUC6lpJiPJfJO-pEB880GxJmPfCkF2pX-TMF9_CPghdTitzjhEDc6SzagY1o4GtC5vN1-HRvf4UnulpvOZ6HF1AiO79K98YoCKdz5B9DFesCQixfMq7kUA3A1lVNsIS5eKXfbKLoZ55IcspYZFWGjcWE4qBIvF2pipxM2eEl53TqMp34IRDZ00l60SkzZrjoEZ9vz_uEEu0SM7AK_HeZLANwq1z9fM8FO2WRnJnUSPv6gW0vb9eKHdSTfg6wi6zu0tOXccSu-N3huDYdCzSpEt-M5zNnY93Rt0p-S25dMCkATTHkHGlFxGMtDkuc1sMPV_yYfp_TBH1ZQFlLzOgR5DoLfx0jOwZ58h-MOeI2w852PZbal5B4wmGVtgMImvj4UIRAbfVk8p_6lnT5Ngdgj4Qncnl_ymFdcmmtcFa5KOZ3jwu4kfustD3tbI8ZATfQtoLXMaIEjgh6UQegY1XBVml7t_56Kx3H9JrGcdQpsqmtbrDhfkhiuiwmbLBdCpuNV_OpjHJDrdVw7BM7v9A5ycRBB45qDWncrKbmaETxXWbhnxiz87vKLWURn5tQekd8Frsh5M7wKxlUo5SUCBQYs1yWXEkWlrEx567cErNO8v2I3975HwsOfUuh0VGL4rKvOWXKldnXtw5pWrOX7DUX1g9qMiIs94EHL3UW-awUhDypoB0t03K_NkLmOBUoDju8nV5_l20wcPytIRU6kbTr6MBFBTwTnT7ivXSDgB0n3Sz0aspIStvnrjuaxInVcQ-O0qyadsTFUMP0uk5RgLDN7WX-uLfbYMmaXsu1FFcxKtWZlO5QoFK1LhI2OAwFfDKAfCZdKo7-72HUOEi6xwxTLbdnlDlIAn90qRVMf_saU9zEyAZNlk8MXzHIRNyOOUbcE_nF8bg_VTqbCovhKfWl-j-Z5IOsk4w7sGDQxSAIZYB3tjPUHZKSxts-9AgtAaUhOvk_WXOLo_ag56_H3LLbQTYiaZnMp8yQvwdjDbmc8N_yGHHHpjKv0kcavmN0qjYkOiDlk2n5490uawX9Y2U0l656cDrhqPfe1Lor7pW5bRM5o8l1ITLkuRnolBMRfcNXG1mrH6vZyokUPNTh42zdh9gmLeZsCXAlKBlITXyfXsGoD2vJgnu-U5_ca16nqRxOD5ReGhkr3XUlHPOts6dYg7LyRnj2mGGwTMk_xm72dIuk87xgNh-k09kyu84B2usj50ngjCQdaGIoPqJdn0mdJX2dfmweGoSZo4XWUMVk3e1pjDeOTa14UVquwqGB9u45KtC_8rVBT5e4CjJjXxlj2nIQ_xHZPuZS6q2qrcjQ8tHYMs62npcIx9SE3deMunjbzCQQj7Rg3vTDj8ScA33OLDRirHwVELHbCtq6KLC8GAWMXnBIN83h0DCBvFnBL1VE5pLv_1fXn5UPM5xj_bKD8fhzBswePw8Ors1cbdLooDcTFFWfB27ZpVy9vm4B5dFcH35OHS_z3-GBZ4SmAsXLBcU4fOoe4omBasgVZzYnxpt-VtYsrhM5Ld4T3fc_RxAU2Y6EXGuCEKVuwjTJy45WS2g6R7JcmaWwKhCL_wDhx9AngFx75kUXtHYoPuEaP598TY0egaP1tsms-R2IonTJg4Www7xLCD6mNaBw0Ztofr0HgtVFXbiYSOexzXe65Ww5iR7iX8Xyf-PtSmhGBYJGdbfGkNxuV8LB4CTa3fRofiWgcsL5zs5b_ll1hM_MSKyqx1BnfuNu3Ldcz7PRs8ZM6A36ov8mF3gZQgsPV092Bq2QbnjmrFSsYyO5YVXr7O3Fn5uj7PSJhJvZVgnwesGS9QSdYUrX_XKpUU9FIpWwi5r-bJw2KTlC48CV9leZ6VwEGyZkpRndaXfY1rOuiEOOnFPoSpEwvq1V9Lu2vrrzbZOjZnte_suYpmsVtBlwefUhciTZZvVo1FmA6lkBt2iDvYzSnuP-x2mwxXmQHBCs9Dzlupsi9L6lvvyGMZg6swGIY7lvBmLXNEIP3pDevNe4DHbZuFDUtc_QK28WxSD4YAYQCAasg_I5kWdCmpRQ58cviyMYOU-5e_woMO_BdMgN0pHXj-27TpEsMA0u8qQzndqLP-oO3EaQpY9czPr1HbDDO8bBm3xtcHGInOURYNTS_O3VN5OBpzfwzm9O1_YigRu9HLdjooPPmVVD0scIgO3mJXxlKwX5fA1eigijPS7-2Pqzx62J8zUmIc-m5Umq7A3fcMymoaREykel4dAM9BkHoi7hABQxdzAw_7vASaoxubWrYijY0zY7yfD9oJd61VRd2wMwwQW1Rw_jt1pnEMgj1w72DqWX7HQYwknUO9AA_YG6O7U2hLKIdnQ_vNc-r4c3KNF63Z3G_Pb0RNaUkKk30BgUR636nRtLg6NgJ-eq9qcKSQpi8VholBoWNQgxeCrvup3xV48bZjXKOGP86QXwI-_MT93F69KY74OW5rsdjV_3RsvJl01AXNuS_4FBGJZNJG8aRCzXSgO6MmBA0sqpc0EmHN_QQXnkvGeyjOzee5NAJBPHO9iMjuMbm2DW-mDx5X00FxLRrlclNAhHYXsv_6SxDKZEV4v9imOaEbes5sL7ZoHcIlA4m95ypbZiACKXj3w1t2P0iDIrztvop8s33HgQYgA8DcrdRiHjX4r6R_rMRxKWeKDPNMh_AmKJIDaphsYAB_XanzbLdB9WbHRsSBO9M9DniVxqDRop3cwD363DPtYVaXyCRIEF8exI4i45sxAmUKTsew4o3o1h0V6UhAI_Wqc34PNclYEalqgK19b0LxGQBPngkEOc_8pwQ_Ddiw5vFVFMAyZPpGJs29Y9HnxY_o-VigvXZ58_QRT2lePSwEK7H3NA3S3-PsdKzzZG8ocNeCOzgMB4lD4tMjnlMWAzLBuX2vq-7HORSevdkGOl1PVeQKfDDrlqDh9JYC7SPt7fmg9pWYt7i_gJF3ZYRoq5V882rJ_TY4OxJt7tHIjyJo3BsxPwIa7zD7zCV7fZciMSwUQALQgIIVbZn_NI0ssP0F7KetSnHalv-bJfGyrPJg8h1jwI62YA5mYkQdGIh4nIUhR97ZoxEaQUKv3OyIkrrqp3N6Tm0EdqEH5XvEdSTIltLdusDZwo0CpTTHTTyc4EQ0dMzIPWFFAlTRnHfz7XG8kyif5f8JpdWq_-ph1pUWkKIreV20rb8CQfoTPpDJxh-KeMWYICK-clJQbrslKphUh5y9IqpKwyTgxra06QZGgU531N7XyWIoAF2l7spc7ZLmtIONp5lCM4S5aNOSz2ahp1oGWy3HYXMXWh3IgZerHkTGgMDPxS2k9caXFUCCYBPHk85tiZNW29oqfGEoEdX5ir-SxKi42VOkGiUMLyZcMESHwtMAildsZHmPR7aRGJvF0Ru62HQBaujPNTMhg6LTNtn2qZNecdeCryc2H3aB8Mf16GRpFlI95tWaiKKQhRMGWjOCjmatNi4DzAn-E4ZwVkLLQwEbCYDqE65Y4Uii2OtshEcfCQsGoaCGiM3cmS6Jz20hA6q3odAGLVVUDQfWb8sKSaEp3Je8RPTZYYRAL090C59PaT8ZzDyygg5yKVUatcU3ODxLgXV3zreTN5R96UiuqDELAeAFU_iM91j33OyKFGJ8B-a7KsEKX0XKI7yui7NGRulYs2BOjJBEQr00JHPzKaRut-5qWYbsX1MXhfGEVmes7k5lyTKLMMxfC6aqwt6yaqlk6nXIihjeQQ5NWGvtJ83FVnBUibv405mSb0Gy5YwWLiStvZnrhiymWEb-9ySQoIRwauRmIDL_VAUQyU_uLfBN931wK2GDcAHEYZtTVk_h1Zs2pYs4xhHHhAGLNAykQoxUlP2rcRQRl9o0cCPtAUh0y4N9j-7cUkozLhUv-GD93gkZA3SWWCwZw74To6NoC9U3FzIF0oVr0OVOFRaUnbwh2BXZ-DeuI8sEcZhRCOOhs8bXAYNqNvRp9AafjgvfHzKQCB8Ck1B8LgLg7Ypnj4xTqKh7O7Hgt40fc9j4wVIJZoxGU7HBnd0wa-pIYLWmVCeoHCaZ-i9OxtvxAcNX8f-pNwuPoRZrzFFE1V1FaEzmz0VtwQgA85I0_ipS1MqdpFZBI5RLEKcmI9clAIo72goTjkYUcXQBOdJsErIeLSyQkbIWrXo67vMwHnnnbzldQ6d_A1adG8civp9-W7jU225y-rz9c3hDao5_QSvIMClchBVXaFow38u5aGmx2sMF2F4DAv3Arsf0wCcwXu7c20WaNUP5JfKAWGpIqyDgSVTSOFZq0er2ZuUknIgwBTBhanT2nV_WiSXIG37hkEFQ9LyH9olZIAI2Lydg0ykIeyZiBykTn06gz2UlhdXh_T49IRsnXHZLPZj9ptgWaFSKLI03b9VXgv7-sRBzszFVy7A0vVm4f4tcX3Fix_4RXvENHwL6RHG3y-glYnznOhfZ2Kff-EPx5kZciM8zXdN5bQHvQsDp2ES4xMrwK2HhVDBaK0yrqBVHgQDr38m_XYDjRb8JVoemRrGM8Gf_TZ0XtoE-q5u3PomO4OaGE-uw7Pw8YqDm3yBb5I8swQKTtWjw5ZRvPc7cmeqZSbLwxJhiZOd5OWKhCLdkhTDsAF9okelFAdQayq6RMZv8VQLoMAiqB42eHqRTkgVDs9E1g7iCQqENt-CTL99Hz-Gj1iesfduGFoajxYOJAw6sLtWKP77JAo1A8aSWhNRTdT7Wu9mYxrM7_6X1QUm0WTv0EefEM9ZsdKeVRyzFwQWHJbPS3GGYcFEUysIvGmsbaSGWjkAYDSTT_auuZXZV6hilZV3b7lNPIyQeugEWMh8VrRSNjahSqS76DieD4FZHGHlOc6nXuLtE5sFP90ZMIBOAsDgGyjdyjy3k5R2WpawXu_P7cffNApnT8kCaPls8Y6cI4KX8owAEMk2KRv7MQfKheKVMkOLuuLzXcG6FLNCkjWkRBeE_tmh4DtAjejRvbI43hUMS2Gd-Z_ESeOj62ouCqG_JLAun7lowv5vKtuRtYWpzz8XrueknzL3rJtPzGeTiMl2xwHwm4tapzpMYK9I1bvF63iGmHFaUWEMC4LYvXpPR6gteJgMdGkBI7IGAIqWLy5Zakx088nrdjCpMYMGheJZsw0nVBirR-hiyC_2_swM80fCAnb34lkOFiIvyIFneBdUpPXK3LHz2z422rc8-OIxp0JJ7mrEbE2yoYwFBF5BpBruSTA5VbK9NxX6hYbAMz_69v6570ZJAUM5fXBk3OC-sC1xR8C_eBAq_X2zkdiegL9yFxqQ7nEle_MiJYwCuk4YPVUHCxjtNz_9PN6OMkId4iW7OqZC9xwMlMVuLjX6af9R3EQmpQAo8n5uIy-tmeJWVKWTcRGXTBb7RUFsbVDdEDceXXi9twnlkd1HD_t0A7NoXmIgtm2wQ18uMIIxwV1Y3viZfYem_W19Lv2nvM16V5nsqsmlSTbXhQhLY2O8tkZoKvPYkTtKU-Z7vxi4T0d7ryVJr5mrVJNsL2IYeZhOGrhdYK-cIokpBHbMqc36771ZNtGKIe8KZ9wMQoUsoMSzySmOeOsnwoIh6LB9MCgXAU_2IeiXNTvmt3bqjU5DKroQyOr090Sg0yNe30a37KC5KbORTDaVcNEBwxarW5ZrU7hIhbe4H_Cdd3lrULdS8TuW8OU7aV74Gh4HCebdcOGg6n4KekZ3fY934LMPPLz5ZtCNgClXEhaqVdpURUK-q2YfSy7Fb0BjxrfAyFvzlUW2bXwWkAtDcDEpkjs0tueR8hfmvYRm5NPkXVdaxIPVwwFY-e4-f_d9EwnLZNorAspxFdfIUuGa9kIshqeNPG2x3nmjQHx-NeExoXw42h-CGRB5X3C8t8E2QdNgoD7IIOI2vlI_pJN1JD6vrdRsZadHsXN8gm07SbVQRHyvd4_Dwz2KA0_YjyDg5kIINbCyf-a2otTdylSLky6eqPNBJwnVG_SU2Efw6W1mEcAlFJrNvFjUpoZtN-TbK1kRaXU8M77eIrXpS1gt9Sy9FtpRj3ssxPWmyMzm3pGNHdjUtj5cGBGgAmOcVxk2dB58oBJoOahK46SpjlyeojXfxsH9RqVybzMBeHbX5jGBwtuLDPkdig5gYzdCvx-74Y__GR6GAmPgg-1LyVjcMihwA8uMgKNcKEG72XEQp0Dt-Rntiu3VPxp1yAp_2K9N3gSV7lCDc4h8nUdTrNV8t00MuAL1c6WlEYY3ss3xT95PRzqBeEclLlIJpGHewWPGs_YUs3B5D0OMITxKsFD76zG1351YOKMpwximLbyfqOGPsrM420LsMRy097KjKWN9V8fwWh7i3lqrsTkpioVhYEawrf4zrUw3kI5YAb6z7PiLqzs-g88LM4QIJGRWSIui-2SDHShTW56BgEUfDtcbzpqL2GXHAw0rqg01kMQ-nhWFVkWxVlta4ArQQ9DOK6hDNNjknC5RijjrZPvcyPyjry05cwD9noJDsIJaFJraXalfQsz7Ge3UVK04bRoFepjoj19fkkYKJCxcfasvYUQwTnArXWzKVjmHtF4Gfx7Botmr26dLfK5IfW_Se0fKt3vEzEb1PQFKwMIwSZezZPQgC1H3j5TpDp0HZl6BGawauYQIn3dwuQeuFjbk6PPzF_pEKa0iJOkUtgqBD5iRVZS3b68z3eCKMaobjWSOdMj0PwxVvMRvG0FDLJln4MH8U3SGmm7gf6G48G1HVxywNUzJNQRZl_Wgwy5pVo9D0MXZZ2w6HGIxPzIVtPnh6Zo1jRzgFyY7SuIdnXMoI1S05ju_IDs3raBHjPGtBu6jX63wPTQN-lVBpfwBzfqYV_sUa_vMik6FASIVAGAThL5wAj6kxGecDt1wDFESDTuy6mdNq4wOZOqV74ZzVLX_j02ZFW91b9dTk-ECvUG2uOEvLPnxi0hT76yPMTgES9dpQqKcHpob_2ZPp529h0BJ5Lkez1KxzW_I8vcrr6yv22OZqIBrhUxXyXBgX_g85IU_MiYNXOPAeqgzlkShZGjzhuhGNk2sWZdU8B1OPcwAXpu7BunSQ4gQbPZazrO2nrmu0pNATnJ6C_a3R-ccYij_iK5RZpx1bV5xdOtZ1LSUQFr7kofOO72jBM0SUxF04vL4WIOUwzIYKDcFYzPMAlDGre40GbuMdA5kLbtkqRfz87YXDJwmjENOLfPjOR4S0cYOnqlvAk32Qw7x8zw7G2R0F3Qg9SpGmOautXIVDIpnhBui4obwcpyo3xGDyR4J5CS0zRdlyPfcTb9baQIsm00Qolavl8rNHKioYivmZOQP7-yfdZ99DG7dfBvX3jZgZ8MqbW_8Z05L4XY80WKAVQiZI5rTRugqs3OMDmp-EOHVr_42PDLGYNYII10UjyW5HfZW0D9iRjSYru31rXk0m9coVa9qHeWT811lG3sGw5CJIshPvTGfLm0_Jf0Ipk20dUraVv5lP7mZK8uJS_X-CI9YF5zETVSQvhtaNRv7IPk-HhXx-zWM-v269N_CZjpy6QmEVJa1M7oLBeO012ocDULnmKvJKq7VG95osjBmfY0L0DnGPB72X85CFsUgM67TVtXSp-3669pkb6TDQp6VrmfTr_6S9WkrTQarZbD8F0Nbe2PApwkUwe8qXjYVYMQ2aILqrMVmZERkliqzXrFk7uOfGkq9qk5eeSQNvmEBjIxVXdHSfIXj3sF-mOsFSU6F3RrKqGez9KctIdTCzg2Q_RiiyLQylxjWEKeLtLz6Rg31uQPTRvw87UeVNGoY1TQSqri28c36g5d9GdEQ_6vQOq8Gf7Ug8IU-BqxxgH4sLiVO_YrDL4pmlMbeW4cH2YwX7p7Di9OuDhmjBo-A2aahkWKxqFXuJACKtiYr19huv6PVZzaT1ewZ8Fc7RPEmiT5YWgQD8c1nnnGXWD3nDCS-_5RRyCQHT8lC9QSpzRR2WIvmb2h1dJfbAvLuXzxV6BEEDp_73GPxK49Y2BdyrBI7AGJJb8SySV2-EROmy9gF7_-JPkwhCC8b2I_An4BXyj6o2ud-VhPrMLH96z6zybZKFVo3Z5_Nu-u7TKYu1m5WaHZL_CxW8Q-Zdors7Fsg6LzzqFyTGTLKcV8PiWY4uMaDY2fS8hj_PiUhcIirZ3KUvmxfg-aeniyyBd3kf-thlcPgDNmTzkW1tC46WMn97Co3ERgI_SJyE6we_Is1INtYR-Ez9dnqOozfrZHYNDZaTzlD8nrF2G7sbYH2lMCLIGQSoU7nJ3NOL-7lfg3P0WmOYxZBOlXUeyMAkaae1hA59t_iBU9zsgiuORHsqZbZque1spnUbrPgQGZu2i6ZD57bVdRrwqH32hMHBBT7AUXFdD8afmGecXMcXdUhPrYzGWZ8JQXryR9FW3tUak75txj7qniqocHazdSsH3jNy1jOyX7AdHsEIkT0ZrWWkr8IQMnAYBswfhCzoduqxuk6vc1OdZQ_4r9jEppdajhCnwYJrvIwYwDQ2EkoyWH9EmAIZiLqBVJqmfFQmHQZ3X089n4NO-QBnu-RAYVILp6G10zotGvjTWF7JfzatwDM_oulcbV72MxmPpHq-C_7dSLDX33f3LVHhpeMOvJbtpQ5I6CSK2Dn-g-oAI6Pe-96X5BsNog5myYVssgURt7IC2qaLVvMXxHdsAgrAEBoGqHxLLpzFpn7QDl-76kn1amMB1TFag3vHrdPe0Fv4H0mlIguw0ta62ET8kPQtQdzvnXOYtAVgUlSATZLtaFaa-RZmk7S6AlOAGgPmSzeyJlZFYDLLXr9y6CXghRaEHOcEPs4_qdAfuUhWgEEYjge0blbR_6e37slOc7CBclCtiyiIRwwbtmGKC3brOzc-DMGRvbYwrJB31m6MLygd7zDR_nX1e8UgHEgqqoj11sat_pLawOSuXyPBD_zL56P0LFrEHJ2NQ8dgJxP-HBDaymB_JUhTO6-d_wIveP_JK_RZx60WJDQzPQEj--xT8Rj0-phb-dJ8FMTkTDuizkv1-9Y23_lHTdgq9LMB3pbF34tgChLGLTIo0xy_i0aEhAjUWJAvXp1pqjsd708JU--PYM_uAJx0uMGqKKaqavmEjRvji6iieIXzZwfkIceQ3tYmNb2_3dWNLOw4zugqCHt3tFPcwJjseU9iwdgV6IzpK-pI-SD6is-dWL-6Qi898O6tEndqOhHjA7L4GNCNMQeh4CLhKukAI_H1jzoidyBMWwksj8pOlNX97PFL4z53pHL9a6Q0WsV-6oRXZmfwW7uB7gEx2WK6dpOYto-phZ9ca10ZAJlrIR1qkEFEPrb0JQzRuX2uLBGLCqX3e_GIeDwx3WM4RVO7l32O3fb3wxvWHVEpmtqWu4uQT_AIUMyJH3KVhcwPGy48-2TBb_PncoF8mO8I3R4uKlMj4pZ-ujLp9Vb5Amk783TWq6yUEGQEQxT-8cN0yZ6He7icGMilJSYBe1DcVpufwFkgA4jIX9K_K3THMgbFSmt10JN3THCEL1iI0EMVavJ9LQoFg-8g2Kiwno_Ecj48XHPRxMDnjRLiCNGcCnzUWTPcIzhMWJV1HPNqFmfl2fc--Ny9jrwmrMDYXxV5S9KdNeSHCFha3Jjbpw0TwJnhs-6iFK2bdFpKcvGdgOJkdGWhWwj8zju2t1p1MsALS_WZzd6ttJYdk1hhBQEA-ZDbVu6kyqAUwb5KsbTgqZTiAdhVM_HvyqXFOu90OeASeK3gj4-BF4H_x00y_zXUvTy-xJHhkZ2EVJERyhKfqUtj9g9BecK2CPCwL1LKEp0_f40G8I7ZV-POhhiKUHF_zNTN6NxYJUB_Y5ejMFkbcv_Lt8xj177oqw69ubu3_7YsOYEad7rX6l11ty7I5FGrxDfQP2CqaoZo6xS8ZUz8UqfPNjBw2Me5LrIwX2P9t4lh_y9T9Vb16VL7Y1BQuVG51UNsMb7QxUF4ChuSbxTDhTt6wp5Z4EobdfcBundLE9kpOuBDUshFWrZrdQr9qXIzY0XgJLjhAsJ2VGe2kEprd6O3gN_wkmEJvanTjhFuZyjuCp7nIzPGBSALhWEBo1DODgVE5HYs4w5eEj7UerdO4VMOn6rvzjV3y6AfxoijYmnABDV6Yd4hSkbg0shC4EgEjrPnaU0OC9NbOwjTZhAS23sNJwta-9IKBFMw-pFTegDochxyAZRpsT4psS2KwzYIgmbZmIbLR-ew0I561IrEzsHvYTQI_8vlZ55wqtyL51KrDs-v_OSUj_rnKL8pu402hDxFmMa_l25kRQjuJf79TOgOzarw8r8oOQiuL_CqF0i-RGdmioZFl-12wDE1uSMj7UD4FBYkEXt-Rwn_miURgPoURR5IS5RrEuTpunEr07SyGrkH5o8CXdIxmmo3BPOm1mqveiMu2BJQ9M6EWczx4160jZknkXvHzNPGVizclT8suyl7DFrSlfppDGns2m5idFPzey0jnSX-UY8t5bXuzw_fM4irThYm7fCYGtztbniBPWZJENj9RtFo5SftBsoaVB4n9Owtr_UN1KihM_1PRJtlcP2RQVUa_-mIN9mm0BfeUsKaKARJjPflWT3HeMgMuOqP9ziX7qWKAiVr_Oc1Sb86Swkxbqxwd01ODZhanmSENhN8e_1q115MxrfJ3zecdv338iK8Kn4iPJPf59laZSldophZQU62rK_hzBEA9RwP_XWCx2PlBIANf823rPCNbf82q1gc0uxqMKGBvZ2o0pXGmPjnuwiCPJOxE4mESswqJ4a1Z_kfQ2GeB0iGNw1lrCy0US2KFmHhrLhr6exAO4CpHQcscHpnWT2G6zNMrpQjXaFvqXueamWvB_YrfhOr-wkMa3O0XkHvAmm_BNPCfOs689nX5Vy5j3UHvmIPLMbVjj0JGiwKN_ypl0g1bPAlpmsxhhifpjUHEGdD6euSKXz5ShZCPJQC46JUPamohjvsQRMdJ7t2pjQmoPH4aOpS9qt5QGO_DxVXGzIVat7Y9BJmygLTb-WPuzTvIDtpOMpHzTOoPVh-Gup3uuF2HLXr483m0qmfJ6a82WaRz2JLG9JjFCwe3MSIZDTaExqCOtWzZvgPKB-7VHudD2Pk2c53KweG3NCTbIpHtK-bCnafL-wUKG32q4DrX9kbq-wquH_NEwKhe3As3qQpITkqJCZa6yYk2Ehyf-H8RZjiaALssEU2bOejbSiqDPi2Mvr8ZcxWRu3owVV6nOq0MrHHfR_smYhBmM4wDhuUC1qjUMnxEunD8DJrTNVD6vzXslYWaoKIgni4bsVbppYlsgRJzAv7xL38odbMfFk3BHQB248KZd6fLfdGBGh3TvYFfQuu1xEK0cLqJM9Lueyk5UwbfsCovz6JRFF7X7hYMT35Dq7mfslB-tW-gJBOPUJEAh-OXksGTuvlQ3mdN8iIlp4SXagXy5ZBPG43wB0Ek29LwymA0DntNs2qsvSisBjg5Ha3qOvJtuRJdbZjvGa7MjpKlwN3G-hzvhTayewWuL8fhN4mOXlRYAFx9MhkXniPoxAptnLBxQ79miCPHf8c_pIOnWo8bCOu8HGlNfjp0yC9t23TmuptXR6WR-SMffco7-rqCKfFckzM-3a9tgwA6k6O_y-Yvhd5pQQ5dGajrvKpiSockr0fZ5jB8_qBl4WOCN-sSQ8yIpvdHT9TS7RDnHMyYEOq_GKMcdFTvSrRgl55E47HG6EMt-ivpzmwjaYtV0C3XRvmzeDtSoqNXR2izMiryTqDC45VU-4hWKXAndinS805GBObu1dtnHpHTq98NLUa8VCDXu6_noemkNqD1X3LWeHhanXmEYJ09hWCDqqbNFsaVqVUeodnxrj-NyTCUyiEWjLJjD62VNoaObJ9x3WaG-SYGTPyZBNWnKEHUcY5e1C2evy5OYrI7jYUSYFVuGNdK3auM9JVvO_R4xMSg4z62mPBeWKde1bocfdo7Pe4HES3YsaQ5IMKFWDfF15p_ontf2bAo0r-d792bHVHiibrMaSTcwYDSwnrzDU0oGrArwdNd0pV8GV6SQbSTFNTZPeBUufxiLrinTv1xPevwVGVenwVKmpH5Rqjf09T9bKtWPtuci5l40YlJ64ojuxoJLHY5WOOwxIjiEyrVJu60fZYZcfh9muYcYx2-pLlrmwX9Hx-8X6a-IYyLOncyieLyfj95HQbo0o5tlJgsGIMkVkyP5qT6EHcQzfw329YBjJmucz4UgUQ11x1BTt7wSIGfWIDVCMcWGHIj0EBT7GU-RYBViUNsu6i2YsmbGd0N3R2PilyKKXCbj1KRa-_CEDWlZuuslXA0uOkUjG_WMvYuJY7LZV5tQeWheLn8i7Om9AwI04bbiebixasaJBWJ-hg8K0SNjISIQbothOydt-37QVn7y0dY62-vYvWOmAdpZW8EHPDURr8GlXSq7xt9uSdIBnQYT3N3_HFkkUHeWGQ8nTkZg5PAg0sh_rHSepeOwenZPtfEJPGkKK1O5xNpkL738-jccd6IdberKes_hvHNoVCuPpaSTstDWeQociqZVLiyPSpJV7mQS-Yn2ZAfvNtKQ3SysoV83Xmb_gNe3h5RnjVHqhQY-M8yFEwfdMfLYO6mAjGoZDrQZZqcDG8eisvyXPSQOrd4PAn21yXXzBuUNJIERpjlPz7gC8xzUhRwHbZ2vcO7vzrPnHQ1Y-PsA7ZfkfAba6LkRHMpaHSFklO8gCIPteTuOZ-Dv9JHmLtOqYIEsnwCOAH7v6hGGqSFpqLspLLzI-2rMUswZGOzY7nNoTnbsHK0KzoGjERLVgURYF0EnWoacm8JAx9-LRnDczQo-BYYFuk_UcCFowCUjZ8JY65Zh3BM8uag0LciGIqJr9Qyek8IDVJjUHw0zYZi8Dq9dUVam9ZurJ3Y7T0RInDuMxs_czCxuS6yOOm6w-YLjwSKQQzCdasn4CkwibrGXRv1J-prJqq2nuxiUx86WHt5CE6uFI7QdeMxkSn-zYodIsozJGyHYS1mis74RFuwKk8UN_Q_tYZF56Ck5hyV0O13aQgbw1JLW_ZSBC3uVy0sDchoLPmTrZ5iJuF0zZ8WCfATiCE6FPdHjLc_YX87YBodshLOR-AH3a3bhq42HVBDJEPD0r3VAxaI-xS2IuHpB01ra2HY9QMJpwTMd5Z4Ow8eDddj7xh2I5B9DsSMnjmrSjZzUZFfeUoq6pTP6vlMcI4O-Kd3GFIDwTLOOs5LjQDMW9JwjX1NgdhFOUfWRi9tsyACTRp00VwOsGwgH3HkSZ6KSSkgaCXK7MYbgkJOgstxwSpdCoUFtJfEtQm498bJqrZA6bbYzt_4AofrHoCh69Zths2dNjq8iXksZJeEYsmclxzF4TI1nkhhg9fh44iN1l9Emq-eaEBD92opLOEwjP1yRFt7ljrEPOeaT4ACpde1a095ABvIL-P8x09TvhYPtlsMzRDKEAIfTvIl4TAzdkl_ib5F1sYojUISUJGFWj93tb5k7whV3vk8dNoG-QpU_Tnr_R3zl-RZfgYeEIVAdUQGMSvUBKmaw6P5cLalCLcJR6Bq-AgjL_wB3mE8P2idEV4pUFQjufGDdOBG_nIV4U7HdHRBwLqxig3zojkMPxwhMSjObneOcIbWZhb9ypxvZ6TcYDFiFOjVrueIb4qMVWvziM8DWdbANYA27_TopYVM9m-vOhFqxTLeIPw5WLJ2PmQtxEDs-_MX1Zuar5NrJd-Vu1CaJztPb_Br-7QpSjmMNMCjVwu0moYja9vqvqPeRpgZ-ycdp5i8y-Dd2EmcxQ1RRCpE6cpgsW26sbtZOVIF0YG7FIPIoaJoH1CnLGmdv1gL2EmTYmqKfuD6uFKY6yTNEJqm98PlfMDbXdGjLBkvWxWQmE7h929Fdd4a9NpiOCWK97wPEqTEk-DNyuFuaEpoYQFdfpQ_XeivtSESlkzK01PjHMdvPxeK9aRwFrnXtMk0hmecxDM29dgFZpoVHi1eoGW0eoQArB6hu-pCBlvTzcq6AIcmKWQrBMYONh236oaOU5SQ3s5Js7K_ypN7pt8FlNnqv3HuOg2frxwI0ow4RodSnrDFJFVj5spn-bL1co-P2i0Vescvn25YMuqOukuR2u-eBH4sV4HLm6IfAGLZ8SeisVq5cmq57iJd4iVoBb7oeGAdmznP3tjbonKIjwMAEP_jqgTKDB5sN5nyOBKrzrCw982Copy6beB2467E5efF_EQ282NrO9-Xk4dNEmps-hTq-bOiwtQYyJ3-2LtVKMyBsPkSkcabo9mbGVp9BVtSX-c0W9QLiKQsMcsDp2EalFrM_TJzbrLNnvxP_UVEECJVoVrYBtjgYskeLJHWdEda14UVOb7lNEK-40WvK8bvSCnN5s75nWATNsB7oD90KV9gH5Q5R7FfNROeICUb08ueQpNOSNsIaaZ6tLsbgZcogULabPXWa4UGUXIUZBKBE6sN2PIXhgeIkgIRaoCKVNxC3XkJ4Ve-o0Tq4Sh-pnQ0kWbX5ka9UyfJa5G7Wugyl_wkWZnOOCd6RShOMlmvZEQuqfq2V67E7f4I2rHh77oKL2aHHezIqy2GKveJB_wgxyrfvvT_4ZW-IWSaw3H8KTTErFDAdbIsToaM9FfOGsF-FWjagQvkDQbVUh0q0vEDoVDTk4QXwqF44cWRx7inYXyPJ3YWm4Me7De9XPRslgqwVaHXHCluczUk8pKttozN-6nMPga3LqLpCLNiXRohOJDUQrmVquYcg-o_Oxnl0zGEQ_2u4pPIe2Anj0XnPatE1ZF9KbtH8Yfore0CIBUoDcFuyqAv-Q7bkM6q6iwvI1Lu_V-aIH71FpSPGRwVtifxzJSKNgkGw5NLTvpPGxQ3zcZG9cTgOpuSOIsfuTUTpDrKZBWHMkLkL0HoFLvVHtvarR3SU7SDDbcBOiZA2ybXasGUuKnsCAvfWvXAHlomO192VB3NLkGMxJTnvseCUrOMXxVj_bELu6UeN9sb152Mr9jwZHlsvh2cLSLct1XTH2oJntcOFJ-vXsjKkEFHvwhyldw5i-_ZR3vvJt_TJ2wiY0X806mCnLmpMYspX30t4y-MtlYcYZoTQhZWLiN9xIZEXyjNBsApMw2TRrUx8HC3nW5ir8yXx01ps5Dgj8xe1NBV9I_Fh3DsaHSfowfbpMwFYlwCpx46HzTa5TyaZDcdcTKa8aHo8khDhI0ltm5xw0HBHQJEjQJfqnB4XeSachPtwW9gimhKkfxC6ZjaCBwb-1s910e4RG4DlXDEVbMQym9beqFgY44SlPpkWZiCiOVf13ycDYUM";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 No=null;function lr(e){No=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(`
|
|
69
|
+
`;import{existsSync as Vd,mkdirSync as E_,rmSync as T_,writeFileSync as A_}from"node:fs";import{join as Kd}from"node:path";var Wd=new Set(["0","off","false","no"]);var C_=["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 Yd(){return Kd($(),"network-off")}function qd(){let e=process.env.TOKMIZER_NETWORK;return e!==void 0&&Wd.has(e.trim().toLowerCase())}function ir(){return qd()?!1:!Vd(Yd())}var F_=300*1e3;function Oo(){return Co.replace(/\\n/g,`
|
|
71
|
+
`)}import{chmodSync as j_,readFileSync as Xd,writeFileSync as H_,mkdirSync as z_,renameSync as U_}from"node:fs";import{join as Qd}from"node:path";var ef=h.object({payload:h.string().min(1),signature:h.string().min(1),enc:h.literal("v1"),fetchedAt:h.number().int().nonnegative()});function tf(){return Qd($(),"bundle-cache.json")}function Io(){try{let e=Xd(tf(),"utf8"),t=ef.safeParse(JSON.parse(e));return t.success?t.data:null}catch{return null}}var ar=h.object({bundleVersion:h.number().int().nonnegative(),signedAt:h.number().int(),filters:h.array(xe)}),n0=h.object({payload:h.string().min(1),signature:h.string().min(1),enc:h.literal("v1")}),of=10080*60*1e3;function af(){let e=Number(process.env.TOKMIZER_MAX_BUNDLE_AGE_MS);return Number.isFinite(e)&&e>0?e:of}function lf(e,t){let n=Oo();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=rf({key:n,format:"pem"});if(!sf(null,Buffer.from(e.payload,"utf8"),r,Buffer.from(e.signature,"base64url")))throw new Error("tkr-daemon: rules bundle signature invalid");return JSON.parse(cn(e.payload,t))}function uf(e,t){let n=lf(e,t),r=ar.parse(n);if(Date.now()-r.signedAt>af())throw new Error("tkr-daemon: rules bundle is stale");return lr(r,{signedAt:r.signedAt,fetchedAt:Date.now()})}function lr(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)=>st(r,n.values(),o?new Set(o):null,n)}}async function No(){try{let e=Io();if(!e)return null;let t=await Rt();return t?.signingSecret?uf(e,t.signingSecret):null}catch{return null}}var cf="tokmizer-default-rules-v1",df=/^[0-9a-f]{16}$/,Ct=null;function Po(){let e="iu-y6wuW4ql84mgBoEvRx54wgM4BPCQfl6pTRGREsnD11OJ8qCM4nSp_ZAS1D2K1qrZsfVK8eg4UHr1hJuXpPpf6av0dA4RA3PVyRtYxvb0UQ0-A8y56qk5FMcJdRVZv5laYbDG61J6Iktnri4BarD_6QoajwANgcXhKFQBxGauGGjNKCZRnBcbraIMFefEKkfdb4inm6XQlddzgDj6cvAjxsZW-mS2x_t5RRII55xaAuCTwhkoLrixIaZ_FReiXV_vt6d9JaaKKj3C8J_DiOse7TdReWDZ-gXTlJQ7DOVzdYlD4iIEvFoVWj0ekBO3OsCpoUB4mRPh03XnCm76uleKztWKujpYw9M_b2JRsVjs09_1UBFQBEWFNyrvtEOS1ObGeTjqp3EyDdXS0d0OTCRL_408D3pn7Xsfe63vWyjbFuBtrhrzbVUVk8viwFl8gBbFFAcXZrI5KTnj393w4aNxHg_xXH1LBxmfM0dh0EgExXkEx7kh8v6qZ-VKe_WWzwaQk2qiLTwXfmOY_h899_UhKAGl9dMNbnhHzDEIi_Pctk-DxLPwBoCQ457_d-m5FBd7Uy5iGGc5gFRVg6SbOWujHcG3SKN_g8y5V93IOVU2XI5ssXZ1erQOhDvn9SBFlfFIPSitUIuEv1WvVoFqlK-NKBQM3LM7SyXnrJliPiTATR-Bbfb2GB-rXy8CbhNMy42kjqFEAL0yayX4SIe8VLjQUJm9rImG3ywXDeJMceFUWjcJzyjBIypDI-Mw181EQXi4pb_qHp5SXtaKZLFMT5EE6rsU_N455FpWo_8KJziU1FHdP-SjNzsz6uvyQ0cMPzQt3iVaLgZNu-IUeun2bj7c-ZRtjrAhcZvxnIwdleoWxDX1muoIkEnjI-7SBv6FR3kCBl8OJVm8Nu4SmxJro0Vpw5EnaaLxOAVRiwYthTLm_c6maiVygUNh8TtSWHWBKcDlPMMNEKLl0-Yso60QkptJhHUEf7fH5k31iZw9SQW23Tcl7lDYvtcp2cho51u3lCZXatSFDaFd0Ssgwh38GLnZeaUM0F7M9_O8cpL_o8W5u5W6ugt2ZpPNTtxTlYfXfFKlFJOMnjSrGvDVFsRX_-QMncRtLqK0Xrenu60_8WsIMu2-mHTSf8ED90cSFH9U9cxyfIRQQGU9LlrMmxYxx7JcVylCv6upqLxsL51VgR1mY11eZGNOugyFZsbQTF_yhQRvmfcEb1WqTQq_9-o-HwNFRGDyM5jXQIT-k95s4uGVl5QIRXKySt9rKEzupsI5Kj8HvMAbLHcKm8YdmJbEQv7LXXBmKcrV3iauRSJkBXmTJvZg9ymq5r4QAi_4A5onBtdvJmgUKiDrVf46S1lCQpLWzFzWlWbQU5oPcmPAcJIwO-C89--SEXin5RtqMt-WXktao9bmnOlG9x_6Mr5-kZ35ik9IUWTl3XNcQuQkGJaWmnX9dXlm32gNr9r1o50mUF1Q6c1rnWtzOBY_Kx3-ffy6tlyDrWqrAkUrAXXQ_Ad5J-yI2vCSLoW3zNio-UUO9e8v3SYjlqQupQuK9-kxFgKWoNm_thOUShAsler0mkHzdl8cFvtVIk6GQwZbLtgxnsJhMGNZzC15bpdisVXtV810AxPySL1nic4YW8vAzf3ELVR89cZWeEKkGV7K3tcn8JVtwW2tgySrjfSwINGoEsit8KRvE55RTqvCtO9LE6mGcG6e4Xit2FUyYOcZ_S274mb8R9VN2ZdQrgNG050yRrm0gmf2LRwrJIGeaea5SYD2ts2EvMwQcal3uWCLPUjsqCmeZJbQ7oLgAqgU7tLxQG93zAglfIWgpgEPEakAsqkGd-LQ3JVS5dBJnOmk4pJYbMlIhqXwzI-kzHWFFj5rGxlxqSvgKoFXx_GGZE9EGzsqjdOf4JpAb9KUQO0HmBy2HSpaF8QBs1y5enoNrXMIL-TiWiJRwN96Bn2mpJjXBqtc_QS2R32zyuXPm-CEZrelWEnctoZx13ZW6Fur2NUM0gJyxYuVBnJjPhI-m_UKzLdSceWZAGoQFVwZKce3ZzfV5Ug_epxZOZ2fTGBJnxKvqxRO5SE5VxEOTJKATu6USmQ9eriSNRSVN0pF_mZJBNI3QZTSMpy2_lmLscC9tvJE_7tIXr-juwAkqcu1hv3CwBK7cZ_nSLUdZCBDCfccneaJD2BmLYahQmxqrbE81zace4NWHp9qZHvJzZ727tvjySBQeSnJ88bAJa7QxdUn-CNWLy0_FPs4dRUJN93NMDSX-KI6Kx8uiQ8C9ceLdxGLEpooWlSiTFRExBaCOGgGqb6wILiLzKU75bpAvkQhgIkC32kLqhQdWCUzHJ19Bse0nRON_lovmL_ZsOzkR-njZ36oqXfpUTNxYbm9PN-jMMBU1Whuq-NCnonBFL69Vfcqj3SVmKyMcagNnqvPt_Gzsx8Bpk5cN-UUGMOL7E4ZgYTKjGnPrpGb17BL6Vw1jiu3pvSbdAfAUVGGHkLOVnsQpyBLCZgtCkrAmA82SdkkC-F-jwI3pbhXSuY8wS-J0DTNGl-K4VISuCak4PDSWEZLU5Pq02W3uAjMrVbZhM_5s_RAzqhkjMziqTUbkLTNq2IQ1DLPqPDKTKNg4KovzzEwCI2zqHQ3kiYqObjjNxtmuYSSgOMOz8z_kd9UZKbqhu7ftDaClBtZ6D-eyXheFLdWel3M9koBe4rGoFM1yWdTf6ZTxT11h3k6VWLdPRZoLpqe4s4f5_vPxUuiqX3gl72Vz__BDkQfy-djhjH2v8vDrg212FoplXrDhr3EZQnFDyD8ADbBDEA7dDei221ATzZCh8dfdY7na8jnaRXMyfd5ZR8q9xPODmEvO_3USmrA2azzjRtFxUsY3oqYV59kacmI6idg2hj2qDZIHmIEOAiy-s7UhG2i6k4U9Q-bJMy8JoZ4PCgCRz4VT9HjY-C9gh8h3_hb1sNbssxR2uJBeOrDD5vLZY9dVtI_xjvKSYH1FD-i8e7Vx-7B92WrweW_ZtXE9dik9540i-KWMrBxgXuMdKwfLXSHLu1Eg9LikgvCEnXNGSoHBya_szqjYgRllpCbaPbJdeHsLw0tl7eEJdUoAZV-ARisSWf0IMQ2x-V-49BPZmbOTCVHQnoslfoCVWufd2xddYrMCCqQ7S9Z2rjnayl_LDGsd0_YZ4TM3mI90SitqYGRhx56KGGlFTGaxYNUkJr-TTvb0ysB-gxLiRob9xJ5OLtBM-25aNHrzbOL1PJZqjsrhfR55VQ79bWqimlKoPd_o5Bs20-Rc4iYZnLam5Yo0M2b-7z3Nu2qxf9i7U9mNOrk2lB1LFYcqOYeh3_WxsbYJ_TkgRVbDel4T0Jn89YveGK-LVpQQCiyrYIce8njl99hx55axas_M95TRHo4BaZfGhFaamaEAh_9Y-msRCqxT5GcbLm9LCq3-hFXUuGOGVRLNEqZ-rdsFEuPFbu_MeELwDUrp7BOA5xtApPSLZO1TTeFCO3p1Wkp3wAYeHJB-U6a7EJQQNP2mtMEpkNzOGW0iTQhj5968Lj-bpBXT78rSJCcnLdpxtJBz-eYdPeUrFFR1vPhR8tcF2BjATAfpOwLVG1YZR2L6pPelicaSuqte_-fucJ4Y-cJIpTwC3Hcm2ZMOa_JBkYQmsrj9HCgEZCHC51ggjW0UwUIb1Qr4xRsHPwcp8apvL8pYr3hNaso6_flrXx_aiN7eds31a_m0Qh5R1cpi11j-70Pyn2TSDhgYATmjx6THhuuwxJB6zTLleNkXVYV0PIjCnjvh6lQqNffQhMBku9azPI5QmX2L09lOuEI9nfGtcS019jQZb6AUF_gaYunEN3FvdwP8um0y9h_2YyKK42QMEmTln_1hfVSexEoSb5SPUyHsKf3x5A2ifzCnT5CP9eHy8BXFEmNg7uk1aRlc6JFK6-xHIHiggNZwJBuWQZGZ6vnLUF3EmvfLex9qeCJQc7dyxrtKKrmQs2iF6G4MiuaqLh9qT21ezv83gvIC-SoTMrHz-IHc4tEpVqTe2UU3JEl-SDfcPWKuYQ7OY0Tmohz-A8r-IheGPPgncxmaecMnUCSCroxvZ5rghr8RUl1tYZmRzM_CthHKKbLTmlbnVcN2sWiEOOKlsELR_a37Edv9ZZS8lcrTT-qj8iUON3Lr3FjEo3PLf5gpiWtQXCAnBrtL2BBJJHGEGEHMefjku3VXzK7Y98IRfB5TCeZAJeXkGKc-fBZJcZ9qlW90QGIz1HmGmrwACOytZmzce2LWXAv7LotfJXQoZSqawMjbt_oOeQLw91acfo9KQfX8vj9vjskWugw4gF5XdZTDvgzauIEwUFYh3zd47yMKOk77m33QtSm2ffpWJ7FHZJVnGFFWVEnOUMlXfiYxBoEAweUOqpFNGw0-XH6Dnxw-NbuZZ8gEXN3TYrrod2gdABdq0C41cw7m2--2B0-Al4YN20tVa1Z3VOvN_tUIqP5vIRKlCgC_6dV-__--CyDUXe2D0TIQzeH1aOxchVmbWNQz3pxvSlDQQb2Aq2ohFgz-pQbHawxee2KA1lTMLAo4NtyjmWFY1CSX5cO_zjeBH2UMkc9soMW4PqthyDZ-cfISsS0zDsuH-7ng3Hc8SZ9YETxHVuPQlOIjh72FUG2-2xzSPE9VHJbpv5pQk6tyMo5YLns2BBjT0BPwl0GQ7gUsYj-_H-aQ3MS7flzZr-wCFUZmQBKFaOh_D5s-yOU9W_QnXVB05n8nC5zNLr2KokxTqOX2iDnbwyKw50MDQwGSeISUi2MtwTuPTYcAMVjNG_yA-dhIqNO4VmhVek1M_2Pj7ei8TrP--sJDYVo3wzONsi8zVW0MrqQeQ7ebZH-3Z_0ttOx944GDnJWN5UoipmwE7mpRu7UBwvUfz158Vh7wbktfAHGFFZngWK1QepjtlUDrclntpqVqQ0YcZzU8-kB13orkp5VimmuOp38WQQVJgQirkwQcE80x6cDZSV9biUWKRjxz32Co44D8eqiLgvcsr5UUUWyhMoNs3fhGkofVsKDMuguCP2d_JTaAbzAamk4HUN0GdzXDGDRwlS-YdCDMkPbQ-jk10cOcck8hDRZwp1mprZ0KqzvXAdmzu5VyPMkmMjspbo9R6shxbWrzrioKsDfO7_0FvptTg6751XYXRSoWAFJbEefjw02FvQ3FFHlLAHxrJIDWuGCH5ArM4qs73ja4EJwN6p4X6_LzqzIXU1oxRcFGETIz8_FumGumcDBgEGWFI7K1zjsEsYehwwNxZVF8X2z_DcR34yNMROLbW7gLf8e_Ce0s4C4xqicDmoK-JtqKHPMRspt_838WHQFEmrBL4k6O1gr7IZoa5z2XgSm5uxRWIPVZ1zbXMhdfOtgxCWfPL3mqPVb-mgErVyrLqPeqoci7v2qX1Gg-6gbVdm4xk38BVPtz0blHajq8ovUZsVQpPnH0jxRUeCfQEZ5dhP5yoaV8UNZZOtWS9iFkmj_2I27z1ohBpXjw_2XuIfUN-ZMHoY_tzt1vWcqJNu3A3EPcYh-YPf5J6n5Q5AypftM14fwXSK7u2Las2-8VQmjOkywrx7mcVU0MkwOGBfTQVfvRiGZeOOexTVuCrj2K27a3r7xPb4nyfCe_ZLXPFScZiUjPe0bGfAHbpXqStpl-JPPyhrp4hTwa01i9t1RF3aVhAQt_8gztoyo9Lv6nfcbK8jHSf4xLmt2p1CHAL2q31LYiyTmXftF7W1WVZp9pfjFgF79FjRPX8ChKlF4ueVSAali9PwVAjHfYQLCC3N5OKGz-6e0Re_0_V_WTszC1VI2vgjDhb7UPmRJNfIbQCiAMiONd0wYVkXD2FAyLDtwN5KmqAY8rA_KccCItQYU-l5DWh2b1K2ZlB8AZY_Zxryy3AEEffh7l-y8cPiSJOwc-mAI9fAjfuc2qeg2W02EcaurggcT-EL5eGvZaLJrbBa90tMHGm59HiZeMnTEiSd0_7i3Kf0zr-1wptnOGYogvGGtZjxjzzOcI2qUjnDQ4yRiYbr3A-TA1YYuWjubQMFdGN3dO9Oo7Oe5DWKS5351rJb77OXcyUK74RrQ_6RPCfZCmFhjoAoIxrGevH-SsaRLtcLB3HL0nAEmv-3g4BnYk_v8rPLUVQvLZpaOZMgjnY3ud5b2TvY_X3QMEHAz1QWDooC1b5UQrRWcoevRboR5DiCXyfltxOh7uIN7Bwzd5mRT2b09dcNi0zvl-pv9aJh21i0j-0FM5gTOeHRaXgNAs7aKAjCFKsBKrK90Iyxz2mP6-YXKrNIiB6m4uEW8kaIV5WmPUkDUDYNCG10PjQC3u6kCPKruBr9fBpSf_K6UPC4FJCmaQelkIPUu6VqDY6CYN5Op1RNO0KAJ1PHG3Q0XKgqdlU7x_N_ml4erS2mCxhA3gXCsuU9PEod9GBgfHSs_GJZahJ5iGxMZud7AJGVHBDGwwduveAIUdMsKgt6zKKgqXEp48SiOcq9NH2b4swXA87z2am3cUvYPrLdYp4MAUjjZZiUtKTolG7-MPuy2yeqxC7nOYN26BloLeqiwqfQhXWSU3oxlqAzd9-zsE2F0JvWarSdi1F7dF1J82s7FDQ9rkqbphlY8Mg3evIJ40KyfcbQlO6k382evifSWSi0b5F8C9QVLqtyWhGURZQm48A98zItVoK23yzZnmdmSFJDwjGV-zb3ELKX6AX360JCEr9Pqhr1ge_svTEuG2OIkSg5tkXsjxIXcK6rTaBItwO60onbXw5rxYsOW5P4F1CuhVra0xPrZkNehgs7O7Ge2tndpcw6m6YuA4omYvqOCnthoGzxkPLA-E8P02CSUTKO0MjbWpVyPv4QlAudCwfW8wS_fDN-Vrl5zEzcdszcPsxi_rGbYkPOJn_OttceqHkQO5rpsR9g0geY3sfoCW_mCJpeaa21nBryiHJ_VNzQgF-7UQq8sFmVLQbew0Cyk7kDFPdxtmNQf81P9tWluv8jbUEqYDhEQbq4G6W5U_Xr3S9w6DJcz1rlQZB8jxnifzIm3zazP-A7i22oQ1doCGSiEzlM6cuCrpr3_8KbxHnDBpzY7zbUxTyHyIZa6TCfZoIeO7M4c0wU1mfKB7cynCKQCIp1JXPxcNumIopMEH2Do_7Cf6kFJZhb2kH4nzbYBis2pEgtRHFSa8T83OkiEmDghwCxTY4pCsh907ZQRiWirWxua55kvW_-GrR7mNtlt9CKdImreD7XrUb32BXVwvmEJoABIO5NBdhk4YHgXUqThxbpXCB0EeaEpLnUXBBp3QbGIvnZjug8yOc39ewunJlHOHqEuean58cXMjfl0veqWTiaMnOoMBlScEe-6OvB2Q11i2nHoCmBZSzcVCtoaunBgvXsmPtahA3zgvgFLSkR2Wj1LJFWRtdVrhWJfq7fwq82k0A0zPQ7ODs_0zYnbg4JIOKSD0-WvMac1IrymvbhoLT1MYG6UfdfzzaZtnDu7732HMkpVqFBamrzgLS97-YWhml4LbBuajd5uHQoEv7z7lXa5guWz3oRx-OErRlGorX278V6h_OmHOXDwyB-1B5aG8FlMPGG7pKC2A5_W9gqgy5Z7Jc-drrR-AXjn8ZW_aaEvDEycjBGONp1-V-Zhtq9uuyYCMMJXfVENGY56E6luo3mMF2E0A1ynkAasdF19pdccqKYCW9WbhuiZoct34PQm4pKCbf01qqXE9niOkr9zI6djcgx9RsGjhu0VjzulscKJ0cryXxpRNgHmXA3cHsbdkFwoWy_NVZbDJsotGpu5cnW4g8QQIj62yEwfhR1eXcYxYbC0R0sw2Jrl7nnUhRflVVpWmeLjOI4CcLGWBYEfolKojV9wWSB9O4ZhfqJ71jZQP9q3IYnsfy-quPJ5XXZvA27T1JIa4OAqKGQk3v1y9wPe2c8rkRVxgNFUuNAtJ7NWvFdsWuPoLb3y9De8omDARMl4KUrowiUuQGpJ8veoKpta2Dp0sUjsQrdQKJ0Z7G_TJCVhyl11xhraYG_URRV2WPxqYYajx6X-D9uEv75oIrJvfF_UKuJKyJ05o87EXhSpGlWyXvcFa26smrsHpms4ZZnL5Lq1PCjVAoJDx96c5Q-juPNvvdJx8i3gDmqngVQefMXa8taF92q00z9YUSFhCgO9N3y-C_QNVMwZ-tCovDbRfOm5a2P4Hkhct4H-uZ0iuo-824fKfKYB5OaPksQInairGUiH2JZboehc8KV614-lCLrxWWoUFU4zcrOlByfqmMrsoSfO5I06v2lPPNgM2g-t_Wr94AfrT5IjfBAIES-NZf_vhKZefm0aKdEhgSAnYCAAmWR6yKWtC0xsejHbbfsJzMpWktPbvlnGg7KOuZ5SSbydRyYzbIFUAOa8H6oMTMw35WVGVkcgnAN8Hb_MDavZYZGF_HLQOtWRC2j8dcmdUXqyIEI0JalIfIIyHQ1bdXMC8TcFgjscGq38XOWSBTG8p6jM9CS3h9YcnqEtZBfEKEgJHSVrBSd4_UAihI89TUjW3Fnfkg0WPEQDjztiyiFPM7491ggl4rXdfGIFCcUdSXMpg2RgGid-YPDW9WAXgcvXyLu0A7fRfF8-TZ3AX5omyr85F3Y_8ix7V25-vniyqDU-Njpkc7Sqvms5gwWBBqkcnVz3F6vKpzfh76p_h33FzgneIEdyiSak8wwa2vhZPnA2kXob-waJrElYf_jtRoHQrMnMQR0ehHHJ26l44mW3eElY3XcpiSU9gwwbSotETKX2AzYPCzwHNi-xVY-OnlgXsS10VtAca7XeNx69wqTuirTrVkjg_7uI3kRaeu98u4ZRFw_cochqM6JImgU8NoKd3OUbPLeBRiwFWEX9ETEyOTlMOT40ztRU1AxqukOcgdxiwwhwGe-DqhLOgmEsL1PsJypRsisib1uw0ogMP-kIKq4aPryeLQ5hqRo1MDBaXvoL_qI7EZrnj6CphlTYNiflhOBWAasFgLROljS7c212OutTrC2rSEIX1BB-FobG3pA6e010meTLLx9e7JcNNvx3yneqBhNAEf36BX9GwrUJxzBafKVBdui8Pu8jS1zlOX6CLXfLCHo3i7-1lqe9BhSeh6qxPoDd1V_ma2pMoHKlQauiBKPLFXmfCy4LPgnS9XW8zQCw5-WH30lHacxNavKMArcfSA5KvDh0_mct4NA1_UGoh_C0YQu9hrQCf1QblR8fq9z9G5p4eUr1rCAvLll-zpI7JmO2QWUXVtMF5a5FWcUhSBkHUvjl28dbpuSx-EodSy1cOHt04v1Cy6ryIo7yKZNpVbsnN3FHgQcbGF9EM81m-kxYbLL5a3c8kot1TMHx3vUM_ar2Iaqvt_wnTZNXNj3OID5jFtwKcNHRwB3FXsRgRydxXajYlSeMK6jP3EZIhgkBZGc_PRUfrNCPMoJbU_ZsGCJkiRGvDiDTyfQ1eCPeAUJchL84iYsfVvXptnBeWhPKtnmTS078WGV6NSDAoo-EWnVUvXoImRsclBIStC-t4HHwdgRh-eZC8nTyH4AKSuDbLCyMhk7zH2gGvYwv3qVh_fStvODO1dNy8UvOkmcuJgu-f6xWVBxp5YYYvn8485vj-fv1bZFWr3lQbpBAwqFcAlrvY9keu-Rl_6Pr3VTN7gKUmQPGBKBkZcE1uy03gjjruAx4n7FbT0J0bNZ_M9xxwxAvBeoZGc6u21c0PKTpkTKCa9kA0ym2EL3sLIdguYJFMBhDPGSgka9mhtjAMFB-uCbx7uGF6kZ2j5zrCfHuUypbXVid3rG-TDRwFLejNd4_BdFNOmLnFwI5F31_oRcBQrLZeQOftUMqX5Cwmom-U2Q68_Sy47Ao_mhLlpzkQNiNgJ8jOKPBEnVtTnis9BJyPfZVRzJdAJUPTSn9KlKxaYFdD1J6fmcc358D1_nDcDozUyuWeKugEHOorIxatUvRadCv4_oMkIKPO40UsIg4JSyrHFuIDzLrHhHtUPproZv9Z3Peo20V6ukPRSOtwa8VByIrciZza6c7UNoTf77tl2Q3HE4awnkyCZQGA6opVCSleDVpyqdSneje_eUAoVgsLkXKFi_Efex0x3IR_YPI7mv7A7HFy3OgxkxBWU3p0Z9WbvFaIZZvmLITTaxqIwjpLsRTUz78-Vs-ZCd_j1BQrA9A8aBPhLs0BJozcRVBkgmcP2JihqVZK6h8ZSW3YPx-N3WBrjD0R8TKjvr41ynEwNo4hK75D2ib_-aNCEsEIGJ8bmmp6XyOACyx5oMudYiC-fLoP_m1-aHQ76yItBW5rnk235BgZRVh_0trlxxN5_-mSnbV-0cWjzGzxqMlH6jQoF84dCNBaEek8Hv9QLUNSE9YUnXIbfpEhVAsneZSdeXhacrpX3J5lrm0guL_Rmf5r1rn_GdDYyvp3pI5WBIA25ZfQNa5mBFaXKWay4txIs7m6rqwExPF0WEaiJt3CKtbYs9LmI11uIvE-6pqJP-BHPNJHoDvTmTHnboj-3GBltXeKtpWs8HrFO-HBb5F3ToItbcKcCLOZdynfXj1D1NrDL42HtQFb5yY1Yl_1UKfzmnVcDKXNvsEdbLeQZ2Bv3XA1ngkc7Io8C29aCMw5oy41HkmH_XrCMW3tLqj-aqKNpn_coIHYsdFFNMJtnY3p83yHbByBXUF8NhJgxHvkVQ0AqG1Kl2LsJdeVFo-Zh0lK1O44QWJEourimHfPTXAMq0c-RlFWNGyLmTWouRDvVtWdXVLGm4I6m7ni6AzDqGtxHYciRcIdA0I7PA7kFkkEx4SyCODzgQXFJ-kbkTZxvGU7vM9hMXY26bkwBy8QzDw0O95yYxWU6f_2imR05qQ-x73tjgqJQ8V1P-PfhH0zKFsLfEPUWxKPf5qk3wup3HJXwYT0laJyF__1j0x8SSgTwPKcuA5aERoTCfCGXuYDkaYwQA323ejh6q-yly_4-TTIscqiy9qC5-nH_uOTZhylXDf9tlZnKD7dohzl7DI1K0AOtOVcwwTmPZUVBl32WrOEtKb1BMv-jo6Jo-gW6MF3kUCymfHxPVHJWnU0ovutqkbguIfdLTpbIyUzJVbXdhEPENS22-nulhyc7pUvynCSOOlKu6S4IXnmqt11Appf1vVmXXZKJUK6v09k3sbtY37ueMNjOvzrHHYt0hWErMWSQ6bBcjwR0eYhYRX1tC7NtvvHjcVtzMCpcYFleWDkdPYGLlVFhjvqqNxZjUEXuhHM22NKMiXA4qwFX1KeBwIDa7kit8byWZuwQ8tjq_a4CFOOvE9M1Vz1pnbga3B6rbgU-eFJtqa7JNysrNanjXlL_spk456C3kcXryCOo8KQXNl89FVkUBO1o26G_3ntlnPEzQYriH-r3n1t1KPIxxuH217lp-wcznIQDqBwUrkXKylfDH40E7iROWxjYx_VA2Bifu-2qxaNUcftmMol6RcuAvuPQ-V2PAuOYWsHkHYBVxDLUSTmavwNWs_cF1thWe32dxst06VaDPoSGynxvdLVwian0as3xtrvcQ0SfWloohvVoNlyN4x7eDDOWT5Uciwq3XfGs6AnHHVsGOUC9gfaJMzptZr218RtOucehS-REUegeIZqRmoLF1_-PBCckH079U1svE0XwafRQDaXzw-SMyUKRl4iO6wFJjFD84SDXMq9PX3VDZ6tH-BpE2iyMrz9TqT_R4COyW8ai-0DIkIP0NjMBzyi8vzRu1AolsZFyMIk3pRsp5kQKx9G6OJanqw2WW4qGBXmQOJDfRS2h_xG7UjZnjXlaNL3DtbknLup43qeNPjQnw1bvK6oi6i5ExBoXqtDAZ_JVJ_6SVBtGXUWjFsKygCbr83LD_FnN9Xy-tnd4Fdzyu7GOTECSVq9ywKM-d6fHjwbHKAR1l5vbMYJh1NRxPyvwxYC50EQsyiSixkEdobqGU2-bcx-0xcpKP_kHrm5-QBNhORdF2lNK2bvpKkX9L3GOrHjR4mgO-7EM3HxRN26RHMPvzPhK18GMmJKkAAUjOs4xoX2ucC2Mtswg104zvYn8UlnW5sPiOJZUn59sg4ThnYtFnB6q-Aw1YlfSPDWY_Bw0mT27M3nICWfdskT74iEfuME-0Jyv3qKVxX7mOu7q3qmYCxPLUq-Pk1C5B5ziK0LzD0iWctYzJRNl-RB5pDv8AX3MN0ObaoUokBzs2i683hYG1Wbs2tXJFgs4LwrjBt9RMpHLORhcZudXWujIoSC4vfT6EqPUJhjd-OXjgv-MYecrn9b6np1UshgCdLld1RFOB_AVyKmRM1bQjvjrllDwv5RJLBhyNu2w3tp66UlIjzxoR2lT6_P7vrX5TMbvd5DRKU7zS3WBCySQb8nBN6dqLR2Cm7duq9D_rTmcC3JotDVDx0fJioN_vXtOlsGY8Zy--lT66qQi0ywA4PImLApqrQFfMBrm9l9IyWZ7tO79-ZurQ2P-v9vZGOpp5-99qKWl3pBIHtMqAkDjhTBdQbnSTQpM-tO7ujAtU0R93f4Dd3IGFQC38mkgBBeNs46ZTxA2Ehw6p-EUIIIwIvsYbe76sPEWlkduxW1TmxoFrPSxU-yOUtu5lSEA_4fWj8dusrJmY3NQIvp3Zo3mlWLnE5zjwui_yGhXWwu3X4ClXyiQhfqNCu1jBcB_ec_yAGY0HTHQbgLo864kHrI4e7f5taHMWiPrOoNVMeASkBeyfThLF3Op6WVAP4AvnucmrTYHupyP9XADbGs5wbEbUhFaaz7KVdrSrHGbJ5sKYJUxmsmLksIR9FhMM6J1S5n5grXITK_T3xj_b6xjZMiWXmIk79Mr_oOmx3sJs9_X9iITIbCCk97BMLklXpvv-HW0FQ6owOpvp81yKH4eHp_xl7dYA7P1iCQFpAHEGapjUh1cvtgMUc3fY_-R5TPdYwyFZsYYjBxwz6NvNr82Q7MH7Qe9wQtdoIEUsgd6Q8De2_lfM_CMUbI0FB2w_FvIcZJfpP1P7gN4SvMwmbWcec22TGDg4fECyzqdgiXMKhEPNRn29qODZ9uaIF1Ay7RxHayyKA9Dgoni93pfsxTor6bEwSCTerL5RXVEqPWn0C033RkL4Iuf06ZcyEY9wzzmkolyPOoZouSMsPzre2XFcMJRmtINkzIdqmzMSRMqwJvsEc52fy53E6uttM_Ryseah7UtFeGwV2Y1nw68cfEbdI0PBEcvwlYw8fzHNUK1BkSdhyn_sdOBnx5uq1IqXHeB4MqCElR9FOZyk3eaVqDwy3nAtCg5JBxDPcOZNUc2w2rGYXjDBW6ekjyDmlFdIFZo4ovXu2JeRaS1Ka3U3_afDqHUSg6Gh-nB2rM6UJpkIjin7wkp-ZK8cX1cuE88VhW32FFC_lYElu8rxNA7iEbAu6tN6W3wWn16abt0n4lcGaDWPN-jE-jz1dzUiN8Bo9aXgnxfC3MN22XIy5A0CeHKDfAtF4V8Li5CKE7lrB__7s14LmzBxGjz_U2JFuyOIvBaC-lFzPVAfOLLYOzHhyh2bPXh_S88-100Fqnc0y14a6a9NVjdRu3dBG17dykrbyE5wBcQtVMjau5dCllAPVm7f3Rwa5XvNm24Np57ct42CYRkVWtBFSIWv6ii3MqGrHR_-8crOSrJGEda670PG207AUhChtwvCoS_ofNHOnx6iXeJjwtVVDMNzuH82b_BqX5UEnYQQdnTsZLCxQR9RK1RR2lqw2Hofq6NYoSdQhVOxTYXr79M5cZrY9L_7z_fYaniv8PT7L4eJzRZNIG29SvLHiI6xbEv40jkuqJEnFGaWUUR_ov4A0u6K52Nm5mxwPwoyRb6BBBOg6UOVo2vJtG4bpSlNxgnI0DNzjVauISqNVUzhJsaJwoT3IvsawLpq9jUI40XCG_w6xPV4qkLNbhZpb40f_UU9MbPw2RYsZT4JAL2gwgz2hxFrW0g3FPteJdvVnfk5RNQEgu4aHSKl-2iLldFUgnSlVNOF0AjZojCZbXOQTiJmAlAKMmaPChZL_aH9309FahsqdTA3SGpIau_zDoa4-d5YSiDYIeBbAL716T5MWAYaEyQiZ61NLXTtFqdnpxwYEd6A-x2s3CfYrF9a-6ucEixgZp1YEh76XgjevC_IGaj5HpejVRfNfPZoB7FkI6hhPgnsYbI6yV1w5H85NNoeQDPY95EKCcH7VB9od64wAyMYfwdTI-LxP5AeISgomFZMPW9ksMunegV4kgR1IrY6aw91fzM5xweEOxZZVJT4lmCHI_vZ3gHZBGoMDeHxkwKVXdjytlI47r3ha8qeyh2-OMZAZKrmYUYNbdbuVuMGIVsKjhqqj2_Jke-ZarpAc76Xk4oP459X_jutC3-bZRdt87St5B1vF79QMMSwn7q3YnUL7dmHJ08FPqw6JVYos2iETcUz_mmEBjHFoD_rJfnRVy-dUVvgEeQbDRwtXIn3KhLoYkbJsA3pzIHVno60M377hjC4YqCQP4JgTNogLvj1nAJ0ecDLzjj3-BAhzgrZZKZ9icElOdIBV6-NoQH4yXX6J5cxpqnyuHeZLobS2QUdxN7mt1FdTC_lg8vAv9Tib2QD2b4zZz72gL5d36uKP76SeB8JjRelEL51Opvf3zr-ibS014kYfND0n95KwcyUlrFXnqULP2fA54Ab0CcYxB_BmjCCRFDEbY0s2SoiwmN7S-X4uM-OHZ1nuLwm02o-VXn1hwiw2KGVjRot5BKr79A-0mQ807jw8-Xmq0XsPNQSL5S8oLLki4l1T2A3em9WPqyiSKBrlmmaBH9SPXl8WPKNCMdL6jd3G_mG39OsuH_A7JCJJPXI5kBlG_XhlNN8KpmRLptFiK1lcu-E5w5ISQOofwcykBE8yB-LVd2P_NjLk5wnY-jZrOLZcloqJ-yuYKMN4kX4ImoxqGKVd6ruSqK04-WVX-VucaGXHH5uYl6KuHqFh7PTstJNtyz6VivVSPTgYv9gpmF8jnobb-jtibPvHN2OIOh2n0dYrTiwMT6wxrKsblvfULNcRb-HN8kVjd2FzZTIjDWgxWJG1CRh-zpXQMBZjtFMn8vXkv8hg8heUNkloLwZbvcU-Gq5pmss7_aagwoStdm3yN0A2T1qiyDoZwY0gxqs_-x9fEV5MsOSF9DA7thvyCmOUsbZyYmZfrb77lOf8eNIpgSpCfzfSC58rwHxgunsXG59OPtP1L40wQvxWoowRcBjXej1xcQJIin2dkBk2oRf6Ggkzo2oPOZeUsq74qRcNidm6tXtxbJbZfZIwD7CdpYQNjT3tv0St3v9l5BBSvdi-EVled172yy2m_R0jARFPO5O60uTQmim59Znrm7YDEUrRoL4k1S05NudJtXmQdCvrJ-ougvGe28bvpaanH2ip_uQIcU7sSlg_hD8NAlBIc9tlrCqZt5aeKSeMmOi_LqM-sP1KxOMDSgKZH8Uz4B1gLIzIja1o3jWedVRHfAWWxyZvt0glmmSVxB54vhajetluGbAAqo-9_k0VuGJxzpba4Cv887OAOhOt95vIOE8kIKFL4yFwViQpt1cpOLhFELaQUW9St_IOIwLq0LyuDPcEiqodRRoG8oi2rPdYRZWDx95pdWzy25dFItb2QFmLy1XE0-cMYaCIwVx9TixZ8ESIaM2RT7weW7x3NSGMCkZ4hs7ffnMTikR5htifM1E2dz_NHD8cmY-X7aM93JOFgjdW2ksHVxI7pjTj9BUOpAwyYJ9E415WYdRgMcRctHmB53H_wv-PBBBCqlYkXdhLj1_Eq_z4rcoll6kMm2hWCL-rVuyoCOsyLtYKQm6VLuUptQjv0mxs6SskXb2JtN86IM1A142ubEmktxTkkrH4-r2OD1qyFWo_BVFxafeL5OzMn1FrkF-FSYcJQKPOiiUqGEUTvDZdug70WRRxEZ13s8nMqRhMwAegvjphdDBYty73CeuGmdL0FzPR7LTslxvN3IlIEzn4exi73GkdC8NOxgYxYfLbSsPW3og_0hbaTOcePxNtmK_CyjGuste8h4Hv87xp1-35KC3xm-NMZw1gzKxrELgFRA_t7cIwrpHDotO2p-lZAGg8U7MQyCHj3bEvWhkDPWgFNVCgHsZMCFTpo8R-SAf_DZJkr0dMmQIM3FIa9IVzsTLs9HdD6Tr2l-jqzrjQtTCE5qZtRmgsfxi8fchEcatS2x2qA25no6dP5IDUWm48D2XVOtAXhrUtEnnEk0eWxZpU3feXJbYFjAB5hzxaGtsN_DlZBXl3FfSDZ3XZuDLLunj202VN3Je4sGypKY8DG8TYd25t0JNjCNbRmZZC0xVq1GHxn49_g5Aj312WTZdwis72UA0RkRQday3eYe_I7YnuHw-Y7jr7gPT5iAvb4C-P7rlkAQ7zgqOVGo6Q8xs5OIzcbaGWZNIUEIaU4M-8Xle_eT9cMHotpbvl0ZPfW4yTtkvjMwlSHF7ZLUd8W-DCBvw38gkdXeZ-NQNh5wOZRIotXS5B6lF8oD5_FEDkY1bgc1XlSLGV6fxhZcGY9tXVrjazQNsMbGVjGxXVTnz_ALLNzrbv-fZYCZWCsiTdfB3xvdcHWNUOnsTaGq_F-z-_pxbrzfCdm5Pp9k1-ulGnNFGWKlGzlPve0d2tHv3a0RfYHIOCfA9iBUepRhDjwDNW4tOQANzrxWRMxELJlPqKR3lDiCeIHzx4gSzQw7htienhQHvYqVVLQ4HaKaGmS7Q0l7RDj6DY3EXqh0pPI9WnONOebnzoVZwIK0C97mQRSltv0_0TICKrcVX32YqkVoos58G2MKkKqp1pW53-vw4K8cT3yaVlmAIFI532ZNUzOCAn34rhirGxiUNhvVrfQ-aEpgdgJgseqwx3pdp6OiSpvlv_j0jx0zF4ijhAOnZsvJkuf0U9h188uD6eRayX6tDlse0LmlpbU-bUkIvn2Jn2jXAWZRZshrbN-fr0kSvuVW-EiPJ6nMvUBbRPixAOIhvjxSofEV6aE03Ve8HnoMvdvLPLlzN-qqiZstoYyZ7fRrW6QYYEoy9tKdxNBuqy4vIivljMIWGrOUEkL0fBDgLE5OWTjW4lYha7R-loWLQCiLbidzTdS1_joH7jKc7srkwgdu9TvcJlnMRwQuh8akwVXiozhglLuGAQV85_zN6QwyQd69hjvjQjjZQGPrD6zko3rAqGAB4lK64gV6qXSLklA1mWfaoaKH0KqriJhbppu6q3O6pi0UUp9GnSGKhFQMrppRZ6BjP4vSNmUs2Ai9ObWD0pnmIPpoNVh1efG0mfKKdiDiQ68JTtP4DXZD6AUVaoEli3qEMjWM_lOvxyYbfGQZZrKfFtyFtIPh7aNbmBafjO3SddmxzYo7fIxIialSytEM70_DjjzbW2X6GThtjdyNARTQr9MGVT4jz2EccpafeVaa4TPHq6Un3YqbwLm0wTuDI77bWKzQ3HAMQ1t0Nr8prxpO_u3Q_i1TA3WTIvj4utL7JSzfcK6uksO3IYPOLBXisbkFOL98XR0X9v-ykVMxNFjmRV-TmHl1btkuYFoqXLTwGVtVuwVqova_RONjNTPJaPXyO5_iEJS7ooNKtTweKO284wt5APO4AX8CdgQMHd8WNk_9jJO6zTRc8kDIkANNaDtucZho3qDLI4EQ6U9s-cY8M8SBRUOOvCQSdZWlhRhyM-H2KuwT-ic681XGHApZ0QVTkKuOs8WabiVG3eiLDCytdLkBGgG5uOJzHSN4bnMUw_kHGfqHNTxswzls7HTrDeNGXz7weKW3Qk4IYzn7Bcp8albcEWlRajKUkltPRIGHrL9FyCnp9t2xDdOIsTNoMylXI63k0-hkBj-NYWSrOej3xgI2iyOTShBOGyonaQ31evMGN4MAQqB8CvDKckUM6MK6RlZMt36uR-5n-8ccxF4QXUpuQ3o5tfYTr3sykt2K4znjLMIIogcK2CSijeFLdW6oUFlzhNs5EROWTGD2dk0IoJOOC9h95HtE4cUps3MbgUily7Hh_z7pfbjd784PuruR3Hyz7mSVOatNSXCFK2aOrwX_ZpS7N79aoqrC691zgilRbwUeF2XeR02BU_QjHV66YuPnA0_EkFZTj0WpDQ8IjpxWUSx1iTNBw6z_NANAKuDvqsrVH3U6DMCOX_IwH8cVMVZVtp9ofjpnMrnCHekb0iOb60BTNpJNKblj4peuNXL24FNSWRmOmFoS5gJUmOjXj2xWsSv9GoQ49bg_SfqCrNPie7_bOaixmbfSp11jUX8Pl10632kLeaVwmZ0Ku-9rnzDg3r_YdtiD5EWi7J2X3HtS9_1ZWjD_8QDeIFfExCbK0oQ_TQ0kCR4YEFU0VuC2hOreyouDCoHxgaPV5MI6DyIusTUHvxlnYTq93ThQkau11MrlzXqL7t3o1X0WqZy15d7fMjwz3ZOaZ65i-scnpV5niNwCVbtaujckNR3F1gTTIgaNBmx-IkDZqwybFIOjK8so3FVk4uPjgBcpoOmCF73_yB8dYSscK3bSioVjBbPJzYgaNsm6G8tRcSCQM1nzFuRRGdVMSapLu_Zicz-c0oaAq9Cihxu6TGwQ7moRMArRp3a7oa0vJBmBFo6bsTHmrsrG83KTA5Cs1iucCUHqnYbHFnREv2INbPpRs12wQGsPQI6P3KAN475pejQZUbAlJmffnDVUB2Rt-rv5_vD7WkPdNZ6PRtWqkJOkQVNNDu0tYY6CERQul-umTje-matI4yrdBma6kPcanrm-t-fWXlagRjziPE2idryFzzrRTTRg5wGUk0PJ-h7GV8_PoSy4Kghul_ev4gWiQnOiwEmQTzwJ7RDqUJv2G_LxI0W6Wop5wKdlmKxSFRmYfL-7SNhU7pmPTM180o1kl-qqrf6CRoa77zbhu1mHtD4QP8qLtQWFG6ull5OebTdfatc_tY8RmRuWJJ8YCiNBRIqlVh3CVnTT8pM4D13si9zDfpswPzGVyCWi9mGN11wfaihNJS726XtfJLlHZdxaGCCQBmcz6sttBYeK0Q2wWU_GtGb2PrMxydp-xVfNQpS2Y8-9nO_CoOi86Wb6zfvdGfFiB_QdjueditzALniYsT0_wxnmNtIprznQGpvCwl2hNmpqoNBbBCSW_ro6y9qf23PnOWTjMAf02XacUn0T3U_dyj0NQK8OXDrA5BjsVXjdef2OrjFSeVveyzNtpFH4IUwAm5k6wgBFOR0LzyIYl5Iq7FihPuLlUSSOFFimsySDi54OI8VAQUNXzqlFwiOjpz3jlyW2CRVPfD2fZZDuMrsjjuO3SDjAHYowULbFV3sIXBqSvO4Ssdjnik4esFZnTqu2oql8D0npzbTDR4lMjjo_mPk2GVd7yfZOd7NyyP-nwUzGRVY8pmsCxfN1grT9JHTqhEQyUfHJNKuEJm7RuRUOq1H84dn6h6Mu91xYfr5JlZAELA6nWT_aNTLKfo0uXE0W_U6nafpgqzGTMW1KZLOnXvJcpiNxVfCCpFkQh7Ws_DgoDOfD7v3pKRBlB6Lq5REazWcBejU4QrFxmhWxWZglI8ErWehLLRE0WaQUuidEjjCAh8zmKXXdP8lt95Qtr_sJci9IJOZN7-1gf5lhtoniVJJsf9NeXkWBooRsQf-tzJ1h5Ux91jOuMisyM9Wi5xR5nx6-q_eapb65m2bxoSFrjjpGvUE6B5gwh37PxcEwx_H6E08-DzCC7KAW-1nivRTa_j3qU1Jh4KjY8HbyhMRzbYTRh3aV1vTzPKoEnO23YMqz-Jt_POYe3guW7AckbXpkyvbdb1psjdjqPtHyK9eteddAvYH4EfzNuSrNy6lzHYnwMOIWHVz0bM8xKlc5iMuEGgrLUDgCFshFAIWGDaNT_BJiDN3wttu5d8D-dM4b6VKhBBNnBtNJ8fQ_hlCNW2ix7Q-ikARNtobS6I4bouY0uAsCuRXGJWnpeI5zMcmtkWcFIxpP3NgFW3KVQg-AvXF6_oSBQRzOrQEOphCXqTmVT3kmQcV2V_KF_LPGp-HcbL9pUF-KxtqUtHa305JaR60zOePlcE09VEp7mYEblnprSba6yZ1UFU1xjUMAkvAKIKlwJtjm8u_Kprz4nRucDbJYfrEr6guBqNgu8toL3UZVXoznGVkLyXQ_Gpewbn9ldoY99qipuY-FfrYoojPk8cwXihfGQc8qWX0V1nKANzgYqk2h8TutKK0DVoPc3AqbJut5zcGH9dIlXB8IHlla0RGmp1PzIeA3XeCVMLvKsL2G2_AszgmoQDaortV8Nkg4jZkXw1pYwHKIzr9tqNLao-WVSbtUmTEM28jFzJXbLeLvIWJhsmq9alXR69osXZ_WO_5t5w2EYKXYpi0wR5k7HGt9tcgofB0nwL3l_KBPdWs9jj2SGQPSu2jYnZXAa89Cl4Vq2-nl5-I2H2vceTZLfVAywNh2Mh6Vq-t0ChEQ6hh5c8rLr2vQbqdjlra7udCjquAlQSEtzWuRanYEiAZfBpWXTEgvYx9-vj05ME8JcWza0Tk5veGYWiXW8OnfdOP17_O9JSWmwRjumEem-I0p9Y7aTDHwJHJVW7XDSkUIg54jcZq5S5R3kI_upY5EMvtNaJCM-XvNGS7F5jukcGpSXHa1uzU0887aeQ0PnF9RZWiYcV02P1USMjh1tESUdBd5NsHnqgTS0ttKcf5ABXcbTwpEt7i8az-a3JU8iccigQ9lJRCYSCov1pUHN3B4DU5fZ8yTyUphZYwYJPgcUiOq8YiFLyYHwe1IQBFIB01VX52uE6ceHXoBBNEfUnCszg4UPf2dxNAE8MnF0nNyLwIXR9Zyk3bIxeKYQk0mG7DxyemsLKwkJ_AI7jttGN9J23_aFRduhQf0d5Gtn8lRRhewwmJai8JTQvtgW4YWUtpY45QEvFQ3GYSb5V-cPppiOLcqd7LBoL0ryFw8syyd_JPYWaWfBuSjwu0uIzjmU3z6VpBWsx_XFuOgYve5TZgOGQcZ8kGlgKCm8uA0ok_Nv8rvCHhAdxehWapu6x4oIX63VlUlhyMtzcPFaPgRKi9COdXC5Gzxp8uQnwPkhnvSCKpQB5IFoTN95IuV9WLShA-rYi5_H0pLQlX7DELsjsnIUGjmW_tVtmpKczFXcHWYqNtyQzxIZW3I-_xpPmxKXc6Ky9e6ybl14RgHdKLPJOEbICfXke9MYi3qRmuLPyEp6IL84X1inhWwIuY_tg3NZwtB4-a3k0BB3KEN4zlbGgTyiF2dCxAFg3cyluwpw6nm-d8DQjxmdRB2hKBHSeyw-4e7lfMJ1flWZfQ4_fMLpuec2451yXjUkZZk1pytqcvrST7IYPXKZozactr_V8K9M17U7fJ9gWi3lr8y17ErEDcNlJntm-8EV7dWPeT-28T4-Yk4GzMHJ4WkqXJTvlZH5YjuvW9CiBbmN1RUVckAJqJ1e5qzFPBGSDx05R4Voddk5GBtLoC3qGST9SF7UPfFbmqh0yeIXyC63_uRQDykeMIuZamGlc8d20ZqAHcC1RI8zfQVLZwf5Mh2McEiEHqN6ol3uEOSCDaA8L6wIyacMJk3Y_ZH_y4PtYhTdMhO9i83iE0jJN6vVkTtsg_dZEdPsYYHjG8SWwJ7faqpCfG1xVnDLSph6q5CUzBc92cBHdq64mte3b1M6Q7WEjbI_FWOCHDbhXodvq1triFgBzcEMibXoM4GiMeOzDJA-vSqlalq2wiDg2DRlH9N0_OtkfF-zVR8qkaHnXLxw51ly-97QoqEyWNy3nQzjr_VowXD4FaAY_WGfYUqw5GlGq3SbgxpC-2WLEYHS74kU-XT-7DABjLiWmcluCTBjnwqlqT1OrZjzZAOb_jO-HJ9vTSe0JV6Q0ujn7hFf8XSybNZsQOooyfrtp2SkfcGmnHVtV8zEJkAf0-WQgYSLzNAr_MNP-fh4Zcrv5n7u5WGYnIxR0lJAmt-Oihx3ZiN1kKPrZMGGfs1RCHSEb42N7xuvE0YQRiFyTLdSwMp3YE04QB8jjX0rLFaRxgCifbwDVH4CRgqyki3fys-cY88LFYSWEearW5mG91hq30Uevt4WG6RU1VffhVQx5SmWdGEpbJawK_e63va6KvtGvtQocBdgmXqDBey5zzwi9rWEBtHDmTaehN9QiQjMa8JW1BLkDJC1uBmVVCaATd4JmyIeqkEj_p_ZNDtZ79yEUn-AMV1tYkOAnCCjfZ0JybM63ehM8GDvpVT5JmVpxcY9ygCGR8olcgoeRRQJj76teUMr3GK1_fgeIO511dTqh44bamcc5Hn_DCd-MDb7KQbyp1Fmt6ojAB8ipDNmSn1DCY2V6A2EeiDQkkf049B8arPRBE5Fl8jjs1MRoRhkHM_uTya2dY7McmGQaBv6JLCveANfhLHMZvn3cXCM6hZjYDMcF7Hl9hQVRbeKYpRpvDHc-ogrUkAM-oZRdSGA10T_v9-bdHBnZ5EiP8PxwSkVyqtmp3DutoObmpSYa9aCQhXAxsY6BAC4uJpF_RLmKqVy8zBubnitA9tbmXAhHdRYvDgjKTvZR3QWYbd0ENrwsWeIredr_OoEFZo8grsiyseKPyn_c_rITLA0gfaDckd_jXmWrTPOn5v8cydmF8GEUCW171Qxof5YQXtfx8PcwgtNTJ4lTWKNv-pYbcHiA6oigIa-TcTSsm-z4lLJPpQ5yw6blh03id26PaOkJ1dyUa4sXDt2jXlVJ2r2U9Y5AYGVYm8QELqyLW5uc_V7qc_xhJqmVoEW3cCMfEAkpei-OBhGGV5ixdrbOvWHBrg2DyxRlmfLds85-aWQOYKxUFsDhoIjxZqr4XYRcrnCJBKuCMk2U6opjEdGFIqQuYlCBkDZsEmH4od961euZr8f0Zh5Ai5OqNy3g7HNFoUe1Cx2Z6cT9mEX2lbRsOu8psk90UgXYDiudixLEezpMb6CRIkNNp4eQi3wHrTBNBh_bTMR74On4SK6uw3AVdISJbcDR9_UBsTFGKsSQ2WugCB3PYjfY31iuccWUsJcNM1GXGcMWFlTPJgGCTxnIcaC2c0Mxle5pjoKSZRgRlyxj3ARdtaWuAx8wNwx9D2FjZB_Lz2xfDgV40SAemoq57BMBlA2qSoZ6DttxFktzaqqhR3hNzU0gJ2uKbEfXV00Vqdire6SipXnAJtN6MHMpv8Y-t4BO7dZcYJQDVPMuJS1VyasM3Zm6T0T2Jrn-HHmHca79muw0CQX47orjtKTpuLPH7eRawgV7TzXb4PZhYiDfvpv-7NpUFQl_Amh8JXHZjrFZqQmZ0M2M0W5nVPHV9NwvGnP4obTvr9al9w_HTJphpW4LW-w_OEp1KcNX_qMqt0hwAjP4PVKNnGnY9zNh3dhaaESY5TZ5rjZwfPp_AWZGELL-G3PKJWUL8IDNH7npKK1edA0y39bzEe7LYlH--llftYG9jBDngRMhgoWo4fZdHlxxJBDeIdXZh2zuiRobAL2PMHmF29joC_8bvFv97uR019UuMthJO33k3UZIcaNHAxmcseLms9PaMqZj5fNzy3AkfHsrx0QEBV5wEKgIRXMhRK45K_441Fm42hCT9YyFT43Z63bzy1FdXhiJDgK6etaky-6N1P91P2h5B3MeWBac5phDVnG9J1xvjgyfxu_NVOyuGb9S4o4SMg7TR4qQEh7jLAQOZN2INSpgExlEynqAqMXlwRsSLtbQr59KetmPMgepZ3TAeiJx_3uuYkaSOPSEXWD0Hv-xkhDjqIWbdgUV86YONFxO_4oXcmUh0apneYvgiYl63iSVvHhve8uF_k6pJVYCv6CkIermPz9nIwGHl15hEqpEIoPOtmDkgYiouRZfr6XqtzdOC_-SoUn57Z4ASg8zWu7j3JABUbnelHA5ehegGazRQhw0J9Vrvw-yADvcRvJ__LZZ3Ua6JjM9Jrw1TCRpvoAEq_mUyytyh-2HTJMsLHqGNwX3N9jnoC3P7blXuCQqQWrQ4_P519yyXjPOAwvcze995BcKMNqk2G8Kao_6UwKUk3FC0mpOBoyhxJyooMneam2AnnV1zH5YwMrE-Tmlbn4MD4fI1baCQW8CerhFxvA7rMIOsEpflCnAqQbbCD_IdIhcToATfDdlFeEjR-JAy9LwUVQBunQuVVG5qqJ0fcZhMIipIrQgjTPLw8ZQtwp3WKjwMd4L4pPY-qIjliw_KuOJFQaocHy-CI2RpBYF9eOeXdVgZA2xWsVI31JAU3jNNPw7IdIi0dexuLYr3ztYKnYvSjAPWfTuWeq70Rp4LoSOZFoMQa2mYJP8DvkJ_UXUQH_Vu8eSd_Aly0H2FYCDIjvOgKFzBfKz125gcxUXDCicSadBG9blyUt0xr00TX61eTHskei1oQmmmfz0XYjUDsuTt5mzcG-F2ys4_ktVuMSz41lC6tIEEXAM1rwpJoEmbwZmiDPCqyAqCP6jIx2VPZDrpEvm5fBzxOoqgDTsaHIXti_Iv-oTWCqY8WZSwgG21tRJq-SP4b1K1iInjRTy8WuxLbUIfygbd_foCapsS2Ao-F9fFISvV_MGFOaKiGbR0sdm6fhDOoZAbAQz-fbUlxyrmZtfwkeHEA0jjfFKoVmvFjQpooAqHAcJ3B8Ml6yDCjumToIqL8UAEPwoM__Jd0ZXTdSwOqlmXTldOMbOjSGK6Mdoa8-NLsbSwbloxpAG7V0yOmN-zzqmguGz80q_uvenntDXJ_LbFzZj8_8Q7P48uApwq-Hkg7zu-ovaLf0vEgCMmyUwm0cPqRHi8aWkJWw0di7R4gXWw37x3ZEr0Vi1uPdw1cV5LVf6FhzvZQmDFIAyBdUBdR8p94GPVbTSBd5jqRNLoIA8GaebHZlLSU6mHaeu3H43FRDgJulNvIbIVETb8JyyFT0El8Jyq5Vut0eHyI3Vhyq2egNPfG_YgiPFZYLP_Tvc5dqWcxsSxECVoOMlMy91GVODnpkRCfWO7w_hsjRd_w9HEq3K4A-gbAmn4PhL-pCTDH8lIb_XuBxpc5r8MRdHfYaSDWrOO2nT4X1WckrQrkOa_0rZfEotXe-MWNFsUtWVv-a1getzB2YgMxC9xNU4WNq-nEQNOLSBHc5ovXvns5jZrxNsnz9Z3n4nuIpyil31GB8hJ-579W6QMapxfk12qdkpUP_XXlURkYyyTNRTCgLwK3KPyvJFh_zqJzH5KQ4xkHdz_9tzq1gn2JHnyfHsgwmS-RD3yRCQfTYGduY0GwEhdgeDXrxYnh_OoYJZdGP3MucW73Frwv_UFGO-0KxwIiEHK6i0t2gjGa3AMXN6HisSvN9qvMc1odtiUi_U21tTEEY7jtCnRrMX_q636zel2nXWe4yus7Em6V7N9Mj_F9KhxILfFQPNOH58z1VlYJdJrLW4talltlvb7cJRfhW1QQ59Os8hK7tB-FI3jplLftKeNGa8QYUxEbtPLo2-KHTmHV_0ST6inZaJH3qc8BTk-AmGnhLmK8z4rNQ134xRKj5LeXUmscqaGHx7plh2OmLxKHGIyYDwI1KgWdvhZkNAq6L3epiDRflSGwXD0YwH4mq0IjutwaLFm3pjRAE1ydhRMzTvhQfMjGzKDymsO1gFElyqe_SsUFX_88pjajJKIFUHoVqSFLfz6CVWyz0p1LKtfA8XZhUQz3MpvgR135JUa5UU6BRs-KO1xf4R32NvZ-ejC3sga_Ele3as5NqHARBgAfKUtskYsWj-MgY3QUJa9BPdDLoCe8MDf5kbQ_qvsO2QTfXg_zUEckQd-iVFcPB5rwB7qHVLARh4HynBiG-3hrXWKzvOIT0C0KsMNN6wNckQ0aE_y8ke72Z5i4ZOfIAD-cHLqswbjnRv5WDdideihaYsLnoNzLLlTnbtQVxytES_utFJ1dUYowa_RWQOzTVjam9Q1xEYAcwnw26e1p0yl046oec1D1UDBllvoSvCllNcJ7yPNtebzUjsN_uTqw_FEG2r2lHesc7tSD53dVisMnsTs3F5W1LS444gtoQz0vGCvtAY0CZfYl8P1ZVTWxPVw4cCsxK37nbJH37tgjKJetuGZsWUuclp3-vP-X8SaJ_Td-ybeM_SPrIfO1TOlYDLzWNpXTiiQUPBnyzJeUth1HvMzg01QLo58v-7U21dhBz_HZ409FBoI5ajsDpAV6eBoJPRgQ484Yv4W4TlfbYTigpiCEYEHq4HyjQP_-cPplTsXmJaZEBsPUnNH68VJqmAboKGGkGJa59PnBTBItgl539T-wkml45mTW_O8mlcJ-0vhfvSxq1AoDs26l35uyuZX1iFylS_qWkxYY4pMXiHJk8YF8r5S9kizxasBKKWjet0lu4zVOA_UE6YgLuYz1AzTdRrLt95Y6yu4CYx6HLjZepsMG5jGNNcJdRhrnc4ztb3vmPx5RO93dIn10hCfmvEB8wdkscOjujcP0S7UYyiQAF4cxmvkluHworzN4XuuCCzYwi4vLzd7FnZn_q_Qona905tnfC5c5zDT0Y2uWaXqb-6TTc4OuvqDhc0HeWh3XBiN3UxWxDeLneWGeb_TM4EXv0GamXkDdJH2x6kc059AbOI2ugQ1e06TiNls6HVhgj98tikieqgbqeqptUabIs0xAXEebUMBmmUNA9sbxmqI1DbCVA-Bp-vrpRSjhxpoVPXyW928PgA3MmXRZnPVom0v58Z7t78bCxj2afDTFw6x7A10veI-nwA4miau66ZT9rih7ywg-ZdNoEc6LfY1S6LMVd8PUHulRJS7dE57R3pXm4x16zOkZlLzAyaIWwHTJpy7DH6iqZ93G2VJgrSW2JnSnysp_S0QO8gY5uXHn-eao3ZgtNTYfruZB44MkVtMmHuGK-q-V3JoHTvDadrRnFZLSNsGhzaLkCdQFazSWY0IdBeQY8U6XXraGS2eJc89j41V2H2Vdf3BRv8Rf0xx6s4OKqK2hpTUjTR-5Bu_-_9GjhaugzaqWMcNPdZrFFXpzmHuTt0Ba6ShojI0HvyOfjcR1V1mVPG3d-tMb10DkC4LPbImlYRZZiDh2AN5qi27KebcobTWrBF3flaAbGeaeTe_G5pDD-vkQgTc6j5WqX4k0IWsYidH0fcv_l1vP6SwqU-dbJ-Fz3v_lW3vG_bqJdRzLcdVxdiVomWdW2StRH3FbGh2AmaDLmmsBict7E4vf0espArjn4dlUXNXDPFBWt-bdJYATuJ5qBemvbobdkSjW7XWmahB3NKrj6_lWBH7CGkwNwA-4smVwtx5xh4hPDjNxy6bUT15_oBD2MwcKNQIAAjsB7puiiaBLo4UMJ4JB01mTLrKCYJLIq2h0SmIkbBRFtGMH9tTXEhXVozbzVQM9-LHKUSB5RY_SoQuUb1c71xUfpCpMDKjpSAiOkdI2KICAfaX_kE7H3WLa9eyGRzN-yv6x5pybpq6xr1II3hEovQnmslzhD8T0blbS23ebvyVYCQMPWNINz6vZbvhIRd7Or_FNStGRFe1qyImpXaXBD6L8niBFt90BkChdKw3FPhzXSDWbf7WYdFHtDX59OoReJVenOfCg6YW-3-aUVfUR6CVxr5pY5y0IFXSdAiYDxpinElXMQKKPPGZkTqVQhhbTHVIy3VTwIszXyvcO2Gh3gZQrqcUngHpplRH7Xa_RZURhI3UYf9qCvGbGTFYD4yayg7Q1ZT_YkYL5LxIPUnGLWy0EbTOY8_lVQtvGJTMPMACynhou-cByXFYennjRCsg-ZtqAi2Rgu00B88IdI2DDvjhAc3-8GMTng1ITsKatETbRfhfI5ZTqiTW8kFigo73WnoZeO_udPckWZdB8E3rhP3GUfRLgQ4TT7yWA1kODFlZTlmVvRujD_dLmC7hLsoD_saHx-Fb99aXrQlzzWhiy7GVUhYoJNyf0rVMsI8e0sBX5xcjHKYXFDkGeBAOvBDVD7X4PI72RSFDBVaVnGn5rFffac-8xr53T8-AUP9yNCt4EuxFUSA1yXDo1K7CcPG29VhgYEtp2ZLaHH8-B7MdV7Qioc742_DyrrFCpmsUhBxmM_LgApubGEUNiKDA43Tax6npSUz7zWP9uRAcLS8i1jvy8AwQy4hTJlvs3o6t5YYlVmrfvYfbqbf_aKlafVU4Bdn0h7zNoXIwGA_bF6hQNqaLIALDGhjfqOhpZOCiwP_wqRl1j-_bAiVbWZEUq61dzwZESUUi13iqN-iyfu6pozgUlSn29NE43ET_AiIcImy9qhcX-a1NSbtGwTII8vs_iNXSITTA6al-APLsRUr-T_90-hTM8-hcQskJWDKhzfNUMiSWotedt6uO1nx344qpEZiPTL8YmLtnH-Juar0B0q2d3edHAgbmpnKkf1nHvqBTznTCYvE-kufs4wSvfigJcKuW6XwJ9bxUmp89kcR1MMMxnpVe2kBy2-dVfYZTP0IaJjBE7-q6KQyavaSKSESAr9XIxkzVYSn7mFcKHyqJJ7bApeDockOWZK1AAjod9jqINvKfLt9N1IwzVApbHeOpFAQNpyQs7fcj1DFcRNI_OBKwLd38QZicDYiwsZMFOqHOetoM9bK5ZSvQ-A_fnb3i1v7o_7lXiObYfoj2YD52UK68tvf5L-eMBKbgnuVNrEOsl-rOYDNem5qQkeRv-XUBBQnw3XKLHCx24NxhZvDweJpCpIuEyH081Hg-9OzpwzsEuq-mhWovXfWz2LV-wL5BUBGQo4aUZyccHD25yerm4kEnWeHOeyMIosJxUtBJo30SKKqFElAgJlcnOOVV75HatZuFZsSypAmOQM7Jjf0pLuQapgZT6M46Gm0LPKq__BlRwRkERFNFe03NoigMCBjMmgQzWrAVksn1PyhvcA6dpXhImkw4TDtEzhOOnxTvyYTE1pRvFavYYbBn8B6KnKHYDX8o5KLbhEZGb6wuVlAc-LqVsLCC_eA-vgyFTSzXGGGxieYydavu_TN7ZMYJgSLqNS4cle_ktN-nc6XGye4KJRFjPljgXckQrBFQup6zaZlnzrTVGJgQgB-SkeQ-0c-yaj1OhCl2Z-cLK3g8iK7KzqPC5dMhd7Zt5Ffurn-5sljPZ4JL7qPT7za7Km31NB5_Y5BH0u22O6RXEd89umeWe-YUpPYdWAG3pkkLGOhR2Uw4cFuPhnmIDMkTkspSc_xiUv_up7djcrU33BPT3qu5b9uRpEuoAN4MfMJ1vO9p0nftikTeCAEcPcnlWbbAg-lj46TbZ-ou-prN3tA5dGDWXrOL_DZbEMm3aQ76LLXwkc_ZxEWof34OFSFTNj_nkncHeYvED8hhXMzHWw8vtSFTe_A7e5GPd6uWUD1yQTKKff3uX3vEv7hrIA_J65B7ghTcfi7fnwan3db2R5aPUWG5MoRtB7iH6kHAw2iTe3MyP-l4jk5aHCEZb6DC_iX0ByJu0VOSkJJi1G1r6VrDtQw2mDQM3sQHx576g8V8CNDdZexDL80o3FvdrlYxz8oeol1xJQGbpnFEFMHVy9x7b9r_lLppkQXX6Hi8w4z2QhhkMJxA5bf8zEWT-LtEOeBWN0Qf-Ky2MWpchGgvGicgIbYvKsOrdPgYvcbwUPE4UjCSPWrpIVq_rkfsLhe8N9FS8AewxzdSig3E_IJZCBkOkqT8eLCuTdrViMGhuYV25RklXdi1zK_CrfUbtvw5AWnk2v--EEO0KGl_Sup-lXwfzOmS4t2fF0fUwRCwPw03TaI6j9cP6wZxtAiNFD1VypJF6m257dcVkrCxch8dXAngswb94Y3JOs0L8MUzDs09A0SAvQW1OjP9dhLURpffHDMglGdsLV4BYZ0ADA6mUTuxiUK1pM_Q3_TnKb0QSiRHZx2XLm0x3DAYd04fYJNV3zq--mEsUds5eivlh8_E5szI2qMiRvnZlmvnEoMfCkMExqvsJLyYIHmNtorlfhji_g-eJKeADGwvzjGc3WyRAxx4K-eRIPJgbWHk1HqNGEzQysOhpnr2eyQVSE-tGfaRIHdr6tZQGWrAKcMpFyQumSKSvKH_80J_a2moHlMKOrks-bKVgH9d2H7lNRxbA1WITcUWqnow0ELzi-uNciWbjSxbk4ftHle8Qg8sXRhhHfoPQg9dPpdkTN5UrPKz_wOwo2DhzaEHIWzF0D4zYd32zSLLIZGPwx51DrYzKrxd_DSIaZ_FmjMAjKj60w9RTznhA5-MNs9HSaFZn718D77vdodywee1E5bqePnwOf_mifia8CbDb2hOeTvQzLPsO-31meMRWb-an89Lgpc5uME5iUjT84QfcTrj_m6aHqPiWhKI4rypBZsDRKWi_HJG-uWedmptfMwxJngMnYdD-a-SpWpqnAdfycyT54qj7wh9U5cGbWf0bx5owuS88J6ddTkHmve5GvszzYTMbWqUPJvWri07WreRcJxJuGbv3nGGVoXS22iUb__l38nrsNNJHeTF9vOW8hpOe7aad_ep_dyerT2IP9EIf7XMiy0rVTepdWsE66kBcRC6TbD7DI3kRobDlxfdYX9iSP3dVK-hNOPr6A2eKmyO4pLrNj4QJIYotXCRB_JgWBut7zvOlIWGVk43tdlULOfkTo4R5U7FeLNB4cR_AsY0MdQZy7BElQ_iFno0ldXXS5DLHjQRaKU4n266ZbKH3CElLFlaujOMkhwPxgkfdi0E8MnFMXUG2lpW7QBSlf2ZiGN6ZKlpCfrEVf46g1JnQ3fT3OK22Hpiymu7GJYphyTtmfIDONXLMHwXweHt7uSDetvq-E6lidkmOpPVQFhsf4Py6beRBZet0RB299uWfEDawwe1BjGmgk10NVXSrb7zcQS4xqPEWPvxyCV65q21qrHauQpMCZFZOLxaJGXvXjkCxN_CX_ETLV95ce_fOXBVa_Iz1Y3BzT90BRB-91SJDfajJe0VoCvGjg3n62MO-kOJhcFq2KCDc989qh_Dwc1x89QiMWBrPYzRsNukIsJmjJrFGTAIqr8oD5gLUzztN5fe3Gg437xOsjBaz1PoUPWMiYhU_CEZdRZYfbz8iXAj0fwqVoAyJGgeZqNja4VxpA6Oc1BOTMngLfY9nQjj0OSHaKSQT3s3StGLQtrwDkHz6VRYkSX7dz_wUwOy83cdXmyr7rNv9xOogldRedD98fYdkWHSoR2OahnuvV80bcDWYeVgPMCy4kI91zrmRyZOE_wtjt1n4bTIaVdOydzuWI8RJskfefe2uTY1X7zNox7iXyKwC_0cQ2-cCYk-z1PMlM4d7p-dHIvYwK1YWkgqDb2CSyJW32nrrLIDl3zSQQF89YH3V3aJiUFmKKtLArug4XyWtuTiNTyCtfKWJEBAYIiT227ITBqCD2QLSGt2VGIsqw0Ob2esjiGfsMTF_xb2gA2PjEk1t_RI5FNUuNi8T1-rQpdYwzOCQA1q6m-1DY15FHbAq5Ng2c7a9-gDTCBFIcsEdicADLi6N9ZUCjW3y4B5rTdvZKPGeK_CAH8v2nqGxr98-d_ddR_QR92WcJC1nrHh4AvZ-_9HyCWBezszog8NUt7gYEYaNS4oIs-8BL1TmJR5PfpE1liHIjuRUVZQW9KGxI3VnSzFhgRqVNK1Xgv8OI7Kc091edsUW0BwChdCqaUQlGn9huyogpQnB2ojGAbGqu8TzMzixWfrZ0yyZzZQwPBn4x6TYn8ib6ExNDjCCPmzPd9rdgSltP4TkEpJGuG_h68B-RJmuIj1Qbc7VVWXC56cEoL_DXOiJ5WxD8wAvO4cWs3WRPvbXeJH85PFwCt7fO2d4T5CMzq95HJvi80Up3zzAgoCuhJeOhRTv8L0MPkT9SEeLqCMMP3BqQOZBpMUPUvp5NuLfZqwgzLcQimk8_jeWbuwcRlq7lsS1ln5EF2rUWkbZz2fAbTOHfS-U1gX5hZ-Xu1P6_NOFOyUZRqjTvNc1QfDV4q_xJTkukn8ydYxLDUR36eaBp0fF-JZ6SfmsgDzqpUEfj-IdZJ-oyuXknVa7E-R0yl2LAOAaGhihVWoOdGLPJ5-uOiyLpavTXeUjuHkTftGNuMYCQRDd-gkcj0lNu3hR5b5r52KvgSvlptzo0NLTy8vYfgTS6gf2v3ZdeAvSFjNXtaZktTZA8R7XNcIiKhKdYYNhSntHpVBG2381p8Qox2nkW03meH-RImn6hUnukd2t3BkMI0P0cZniV53W5U7urdmQ7WS549zjNTmLsOeaPABIo3YWg9_Kh7qUYwljtSBkSPvuwAqh8ShBpX7417lEtJ02thH63ieYEEEs2nJZWWTeTDYl4nP9nj0QnwNqANqA5slq1zDgVeSi4FrZfcJ6CBFK3JOpan6qNU56UYfjlb4qfqK5CUoXRgKeO9mKRCl7cci2Z0sd__RLguGYqEhjWYzbM6XlECVWc1CCUvJgTcEwOpjG5jLra07Rdz3T-ltE-FNydhGCjopw1N4FbBBoGASHOFHkGGXo8qV09ytLu8pWsM0_kGQ07HqUjaMUWRM9LY_BgCYYxzxYzyDTwGylfq_FEx2bl-dPqMX31OkN1R08w5l8CTBeqY6A2g6Kmpf2gEpMAcOeSMs0qLF0qxAu917mDyOEBJBzD4dvU-hmq058LK_VfEK0IRnr8d5Z7lLyUQMlx0LRe4-Rt9t1HBrzxSGWB-dvk6Cm4K8Fk7kxLKAV31Zde3OcrCQC5La4T5d1x7_We5mzKeidnfYTNMSGuBJHPr67m1-5zqGgHnuFKkKnFyEHG1RC5Ubiok6Zzl3xvdWQ37bkgsXb1BwZ2Km0rlM1kBSGWOYniNQlrABJZVe1cpeHJhLm9lVXg8GcpPxLpWj30DK-Vj-7Mtqj5F8sMO53WjKFYmxk6JU0lWlvWrfkuuevuxs3mBh7m0-9G7K7CE1UCcajhbuO1Yks63mcQckgn9hK1F5zZ1j7vRH9XblGGGtLwogikGMyDJEn1PyQdHcPtpiBwDPiZZwEpUe2AT-cFNvGzUh6TRzlWhefB0SYFZ8pNgkPXPuW4_Kw9jHjkpKceNUDUHW23Js1wqVAC_0SeuFQ4wZp45jQw3YrPeavI3z0IEmy8asEHhkKBExkCgt-en4nkh4FG8cKk-WcLtX39gkVV7E-3COodG-j7wPGxeknKY_39kWr-QzeBOmxuAoJUrUhT3Hv3m0qYIGHH6sE1oCxMrQKdiwOOkjkQ5Q7U8V7FssweHDuR1sOVGrb1-MjWqlsHZBmu6W5K_vV7fiScEws9U-58hC3-LLiyb_0ttB0Dcw36Uh4VM9LNDuYa_N8cehuPf-feM4BOdlEmrkkAmsYXvzK9az2y8RMI3jO4K9tB9tlUlA_sjZDcK2JcfiJ_EmnrFPegLtSBmfkmDVeVzTRu947XqmPHtOqgpgrMM_lbYD3kFCikUqFHpu0teoUbANcUJg5uYXG8jS5CyrtYx-PNKPeU5O1qEaxEfdqCvkSLHwOPloWQDx449w-PvG70IZnTKr8owJn7aAXThmSZPz2MZn59_7KmU20fWfOj1rwUl5BLIKRLjoAfRGsxHlW8__gjM28i40qU7qOE_1VAxe0s1RUy2X1utGf8Y6oDPfih1IqJRtjV1Yc2MY9s1xUYt9C_KDuCMgVvYqGbAl0l6ERt46v5gUeREN0u6Ffjz4f75Mm8WEXd_ogvFzitiowCHcoFOrJVLF9KAX8Z3QlTJtoHvOYH29qwBI7vVzUAcyZtDL7uCyFiJMZyY71S3v3CMs7AH885p2NbIn66YuILxqexgEkKkWWGtLVa31W2-O4cBsEejcNJ32lTP7f7vgHA75aP2zWWG8A6n_UCCbEfhi6uLQxAz3aoOj8abddGRN2V0gQieUXhJJeiHpaGJO67t1Vp2ziR0cMA1MjcfFri03FxU48-laMT_Q1UAo788e63jPO51VDjZtrHoqmOEzmHMH9sTYaApnSV5K0ySV5SFtJrqySrZ9JipwE6-donNPstqqF0bjGbyedzuf7Yn9Ls0AZ2HPYDRzXO_f6ykm9PQibybzdF5Fp31BdEjoBzpp-sCd46ZNC2-iBqx7CBuPDb2gI91JOCb7YqwrnXF6rEC9gA4-mYWHxyaa2Hwkmzait6625yFIDTwidVCDUphDLlHDsAmyxV2qW72UM3ZpJRWJImlc5bE4Ik84xy18gG5HtsCoF3Y8t2ldwQBxNN8x4UhWrKH31LXAVhGWJyAWBkYhdsC1AZAzwdDeFbVeEg_2Ww-xZbSexN69IlrqjJiS-4NA4WqWVBcwSyxPbO03QQLuSNg41yV92gvFvWuWBHdSTPuhw9zGjclaO4a3e7U9UUzWJ7DZBtGlHz0cYSf9S1wFvURPHvrfsCOqXBjBDbwtkvS9fwTSNuvJzLxKSwOr9WJI2rOPFVv-HyD9Tu53SvpvyNJmXWypFPHRF4WsaICTTVWRQk9JZDGgpiXWcS0DAvOMPYaKL--v590O5sxQR8yPk8wy69Bot_NqEF3Qct_-OJe8AzO8lvsWiHnyOZgMdo24uU5QwWhOKXVZprAuFeiF-GxNf1ryahqFaBz1qlz7zaknNaWFKgiPSfh8TogdyMW3VORrSF81ECjWePGYCm6wkDxo3iptl1Y-kgFMhkp-UG0b72elDmFWc5uTU_be_b9514IhJP4Nw7rIonupNBADTFXvFVFCe-W5FrIdrle_-8NPqPhLd8JX7SCqSqRGbL8iwRKeCO2DzA42eQktPiTR68Fod7xVB47_2gtE9-qLFc_jEGljrKAmH-wYEBaiomDHBc4a6-tIYEk8wlMVs_gN_2J-s7b5L4TBgOEAZHUghw4O9mP1L--pW4qnWM3vu8-s-_YqsshMLongqfbvD5wqk-oBdLuVpQfXZkq1Ubg0NRQjiNxm_yLkK1jefnp0WtwDXxugZdp7IaanNuOLED2xY8gJ4zrqRGKRN7EoYcqqNFeb5stpbu9IPMNJhVqg0yZR3Cf0tpQmgnmPrPPytQbMW7Ce7ELoYtRPRs35h_zatfLX6uVvls2n4ZhxegV2tMg8Uz4r3S4Jc6bJ11zA1J9lZVrZsU7HybT19_P_mNWfKGdsvVy-K2BcJjDgjuzX8db-3TAMn7XPDkaskc7GD3vTjThBA5hh-TnR4v6lkbRIQYeJ_9djfaQ0sAXjei0z_48nD_IlyhtKkpUJYVsHu6fJlBRIsZ1J9mqfpsv3GVFwnoFZJdj2GtJPCC-5Jxm6i-8WQAklgitm91VIUrBNM7T6Xh1RkM1Vwc_PvdlDoCxgnyLA5W1UtvW8hXWtslaIyxHiQqV5Yo5Fj7SklctAlQx-3Taz28-INXrWXCPlrz3D_vqFDhjzoTLK12WSuOMdawNAndaYG4Q86p1bDczgMZ0-s5KcVYSYJKhr5MciW2B4rpvMtbK2PRjvVSkdEsSnrbj_MOed4RhpuA47ZdP-RksnPEdkFAnrDE2JDl2vN2nCm1SagP7CcTsAuOhdPwXATAfyEmlaID0Ziaoo4eg2-tEB4SqggGU-BI1wbYy2LEgKpsbHdMetnR5E8qowY1TubFiUgXeX9Ro1uxv10CZ7dayoXrRQBHLUfH8Necxbtc7-IPv2z3fbVyrKymI-6TTWsjc4YwfniCUNdwGwJrUhY5QauMTBfSwzd_b7gKJ03WCaALmvFh956mGqh2cWjbjCda54PokZqItf9GVEqXUbWNqDGIPjZniafwWeSuVkPGkRkyyvtL_aux_uKpH8GYSWf62XfNE0NutHw2YpSDb6CA7DI79hJL1DsqnhEUH7EjVqZm_Hf1zIDxgsmQI7h-Bql7EnnL4UII12JaUT9kbLT5oi4NqSMiIYhxA_T9owQMkkk8xcotz19KtFiI9-K_Ceb9TuuNdOptySoNuQp_P5D175vXJ-2s3Q70HV_F0A6tVGpg4WeOOClMpLgF5vbM-ei-902MFaAPHA3FHQLBaOpahZgeSbipETW0la1TjjMgFZ7tKxkMPB1Ym4RwYmVCgD1-iJjfxYaSBhVbJhXkx0cJiueJ3Jxn6l9BVi7AnwTfc68_mIwU4w6P1eYLi9rpF9Cs-HEVhSkgwtVFaaroQw-BDDtQ7p4N160qWByFd6sTkwtaJdd6jY94rjhTR2tZMDhfkw7WAmKJTODyfoTFhXW9DW4SOtY87TS67tl4WoKg00-5f0wytM3u_nf4alY0O_fa75KNm3HZKLi38IEw9c1dawK8RfFQle4iQfXZUZYKrrcNlyYC4Ao1Z5okFIdjSUufHDSYynQsWPbaWJQ-KSbk964Zd-L64LyyptXK9ZYoaKNqE_5Ta47qPchLRQHTllHsk0wXJPrDnE5Si0poCbztzlZ_elRtNy2pozOYrtYFDzvl-UCJ4BiLBK4VfM8wAFw3tc8n6ZKCkB4cnj6PHnnr_JZs-k6OFunMkGzyeFS5ekYWEg-FdehUKJgZ4MeU98PB01kXCnxt6PfLFCsvmpapb9v_zrUEBugaPWhc880unp6JxXie5sSksR0xWFtcfevttfwfnbOwjFnvO0FCXUGafkG-rZ6MG-RdHaXgM0qIxJQSTYkeRLaH9abeK1eBgDhn0smXFCESLUImeH5GurouH8rgAtIRpS3HT7A7ZVDa8GB_XCw5Dx1A6xsK_8BoVCRf57jfyz_VJX1J7FSixp7tZjjnDGtb11pKWx6Zc4BGRImdqz8rYUNNJNFcwUoFr_--D-neN4DKyK9KFT5wp5EBnfxcyhX_pkPFCSfV9f8qpPIliA2hD55-8MkawFucTwoW3SnsefO4r3kO_dBMVyT6ooxbWNJzSVEcWhD9QZov0yUpn_6iCmdWwXRnFCOxMPQe6nxOSxBf9TI9vJwvT_ctQIC_X_1VKISxL5A8WPxnb3uV-dtmCQX2OfSDR5E1Tc9fX-vjBA_1gJSjHXtljFOdXednXQBaqFy73JPwYlOh9R9jIgh8VDVt5QLfyrXlCBH5XYsJ_wxx_7B9xFFIwPBQVUhZGYJ2U7oRFtnGXW0phILXPOhY-RWJ3rt97waNDJZDuT3I8092pb_c6-kCam8Xy514T_bzlQ5di3Tf31JYQP-FYP2AjgL_jXny9aJnHBGqhqidVTwAHIZEeTNi4cpEItWj7sX43OISdQTkr8hhq0e0ApUiYAuL41bp311B9M2dDJeiCCud9wUr3vUHt3Xq6NuQM7WdO64aXf1h89IXM78yZxAsgo6wjfnlLCrXC3DSSuRpeIuEvm6Tl7Ki_2oeCG4xeBQznlZOU7mJv7v8g3Md4xocVJ6_ZP7AdbgtURcbnz3j0OKZ_BEN12OIsitWon4hHgFY8HVJSb-nU1_FoHeV6Av5TVI-lyXoBpSRLMBlUNDPmytbTl-XfLHt-hTJP9HHnIRqcEH98-v_0zvTgZi73BCx6xauRdD6Yb97crDbWr8j7BKsOiO4SZLM0gHadzxR7mH5w2Q-Uueod8q94KjaHmGOmGBML071vLFuT-D7F2rFjblmjTiY3Zc7rPU1jMrdb8byZuJtAnpuiouHzA_TIrgok8NBp-_NhfxuaUkf5GdSad8HasXHGDydP04mn9JqZ_Gie2Y1ufw8snjK2O-llyQIntW_Wgo8rwkhxZ6J78_xiFtkvvA2trsfHzN__o4VNw6BcoKu8p1_CjzbtqI-0lrLjfQ6WiYz10XwoZBc6UlozNd1YfyuWpxCpuAwCV5L02PkYTfF6n_UfwCuQDSUzEm8vE9wIYVk1Yy6hAS4aVm6wnkDGWtxK_OmC4lGAyaRJpGLo0_F00QLGd2IhEKcOHbu60dWGbMeLpNh5m0pyzFtPT5wkItsyFjVWa7tGbjYwljqccNk7FiMzASqW7pzLZmEncLbmTeVo5ffz1LxRbrNJm-815rO6SQMRoc9eONMH3PrGsuS0oxDZJ69_YwVghKKiP17o7nBPZmSpSpBCST6Me0M_w1DJaHv9risB1__VAJkJGW0diIPEdRKp6yoI9TWsUWT2CTio_IPOEjBlBPuwyUiwMR5OtNRgCSVXn6wFqgsXGzRI4pwN6e1TXBMCOM_yxeke5JOZGPHKBlthkkXX_Nb56Bebxpe5WKQxZ2gKEESvnOlYYPq9cuU7MuITVR1RwM3zSkNK9ROxOkkFf5TBs3yJjPCEYqFTR__FQ6nnXOYbTsbUlh8oSJBZbLhCGrJ07dX9Y99Ec-pOP_wkt2HgCxxRUvkbU_Hhy34_XUZE36FVH4ClIb_qmEyRkd4alxTUYlOa7X67PutIpUY5kBDiznERwpeZ991GdGV5ohhG2q3K8NNRz8S7ewdBojKWmeKCokU2qC9gxlWUiGN-yUMK6uMxmBD1VDvV6B6zVtAE4iHjA4a4krfQafePP2mxHUd2whTt7kxBdFt71DE_B9e28HrLf81xnUY7ioji3_8wul6LbCEczXBZO8hcOmIV2lKf4a5MZeofmTLSxkVg2VWnHFyWcZWZYoe3WZc_6Pa6LcheTv91RD2XQNwakkUHs7tOQd3d42NXxN2Rv1_xUb7Cwxj-z9MiIqq4kAFKXbSCchWD05U1G1posjR30G3y3b7YLLGsRFzQJrn6ifaj7H6CVbFQe18uQ8rxR1SghnfmDi2443b5zx54yrpWQH1nDeJDAxajyEkG5mv3DYehtXWhSk_058z0uDevMx51WUAIbSV-paz2vPv67qFh3fb4tjk_VM0RpOjBDFz1r4pYOtCK4eGCDRV7bjZcd9GxBjyFl4Gmsg8WodutMSUzD0qdgx2qa0xl9QQW_vRbQqiQxSrsGHUZPU3uw8UUn98Wwxw4A5YxepjEA6mPFCa0QTPZos7HFbvixXxKRGl8yxJ0KxMFgxRpojRYpP6wNZs0mtT7DtPjx0ZTyA_8zKzveXM4y-jG81nckYC7SP1Khz76pIQX6aDxcdMFd8BZzWJfRH6AEdi4HYTvUL-1zOKeyDYOin6XXwqiDsQOd38aB57YSvdqFKBGCyA3KEc2F-92gXOuAcYn_qi2hrxSkC58-b4S8sLpnTeISckxfYvZUtjRSD3ZuU00MkLmzeldhqdxa76rrymF1bE5axGkSvx5mEWENo1O7ewAIm8HYPmkUOLNvEk3v6XOsIjL33r73PDNBv-q2h3UXGrpLg6QV_nEiGDplfjJo8NKQHP1NvtZHui6Iu70RHbeTapsY1gYaAgIS0RbCSoZGAkHNpTz6wAYdgbg4IAQVLjBe_9yR3IG_qkRzKUxKliKmA9yQtuCs4y2CLLoywJr36gVZy8nrp4uyrB347EGpKULjPjwBCZGDOeDhjrZGnM4mCp-dyY4N-pX7U8TV8_SlFWdRNhdDaFTDeP_fkpf6WO9BLDySfXUM4aalY9OIvpZ9EVConT5-VzeDAI7Y8l6G48j5KZYr4px84v4AHR4XKIEC8PLqK9AwGkc-rAJ3euV2P6O_ImPXKbHoNetIcxnOWNZxpCPzBfW0VrlK-BTE8SyNX9_z-WFfKLE6Bb1KcJehZeayDAojZSFj5oaaiDk64gy491qysQu4W4ae0hLXCpKZSzxExVX7vu_-lA3MWHN_AGWkbiz2s-aKoQEpS3ecNEc2OIYaKh5CEetGoibkI3HjMJxZypNKdfUNfY2CVanwBOaanFewjXfD3OOhEZunu0lt7k_YCYsr3jQptb8XbO5Sa9pUzwkYIhIFT8rzOI6j4FZo-y73hQ1QmvTkmUNJNgCZHAv7qwq_wD_exutsLX153bIMZ6yfUHwBLmwPH75T8FNCAFKE_LDtihF6tTV2KGLfv36fZ0TkW2JJGPnc9X9cxw1vkxHD5kmb1WdMfYr8tV3e79PvSFEwCwnGKVKL_GFs-2jQ57rfqIO6t63yMVI417rGbFW0jERxAsYiU9Y8hvxaQjioxc914mKj_b8HPWUgK8WBfwjUqdg-QC749i3DOJBB4fF9R9BHLP5rABMAgDV_dInz-xJBgySw0-efJTAc_FZvsbrxjEqiYS0gH4X_sxX2hnTm7MUbzc5LF2eW8o6_mSowCW020bHDBStWwTqBR0XIG0-1GvmS6kf4lSMqZ5AjVizLtK47pSA7Kjt2awpb83tm-Z7mAY2k9rGY4_HfvqU5noD7Fq0xPj8UwpycM7dyxSCA0SmfyS4F7gvZTxlwYaPYADakpki4F_bm52DNbvnoddynqwBU_wvfdEd3CZ_kSXQjH6d7zqiH6O92AXWacerjgFIwRMrffhqNWrhAEahG_w4L5B-rgS7gZ4PzKrztapuHPgSKpmUomdoV83gbVSN98FHgjH-BgwZnZRX1EhzLyZ4YhllaECZVssWY4K4u35l9gDpjpPw6ddP4_eurqP3RH2CXzxi8wFYVy2_WPq6AYV8T3pARypPugrQc-ZsHer5d0_zuM-J2xM8QFuZygPw6-uxgMqVltshzNNAYQw9kD6FBy212Y0x_6bCytJ-8EuPq0t-7uEl9FyFrQ_vmUayqJItKN8shvxAxK44VY2qKgVVDS9t8--b6gNmjkIZIE4XuZc1N2G5cAxO4lWe6PtfMzrXFka4JIFucO8-KB2INGTTM8woMB22TwVKk9jaiDGm8pNM7nv3qmpgH7vY3-pc9Mt2W1xv2QQ5MmWUzUzuQWiItcXwKv5uL1thof2lA0HoTmXBHzOWHas8JNPXhyOKZMey7ZtMW9IWq48lnB06dBZyTCDLEJpBS9sKwjMyQ8Udi0t_z9rIc0usKAPpukellrPJUKysd9rcjMx2VhfUDK7KPk3Vd_Qsu4061QxsdkEv-SoccjGOVkhJlv3EAW2nYt2YGLY2a0VcB85hF6XQUnya_ExbrApqTHat9WHkJKNfZMDOdN80vXsm9PQRSkt790IwmN8YnAaB5unJjWdzv0s2kt6G6qfxVg2Vmv4pIjZrgMOmXuvnJodNi8Gmn2hpNKaaOaYGndEne_45QEdgf1y-_evGtim2zCEtJqw4sqyakFD2ohHRlg-frj_bGG_eXdF__axFlg0pL3o-0TXkhtHS_IyiJeCmQ1HDvD8wfJDEdLcmZsnB9zLx7_iZIBUI69NzohWISFamjwW43vD7XBF37ZyCXcR7R8DfAhLQrePjWHgodwuDLJof4iNYFO00IKbB1mxBwQ-oxXAVFUrfkV2KuwbGDua266o5PtoaKbHt27PxC6vBaChR7SgOA5OLZ3g1zuJXAT8D5cXObKTUWEC3NgWHAP32HAuZKLeUw_XFY2pR0nXqMxzDMx9dkYCCgsazlvbj_FeU8PNT8hFMx1EcDKAhikM1XsX0kTqsk86pbCjmLQYjKAb_yiU8-90eE9fJJE-fHXLu3TRRp25E8jrN8S93-DAfE5BwUc8chK8d0qfC9cSVOw7Zmef0e5EQORdfvOUQdNSYCDBCYcSG6COO_46oyHGaej7wEdDqho-QutOGDbwUn5-czu625RTo9lu_vB_3-tvX3w8x5nLoGs3GhbCW3ptuQ5RAE-g78B7WWEoGvyMueMHKMAZOwrxS-9-Imt4Zk0j6R9o4QWxuOyhUSQdKDwr8tn-KhfjEAMrMcm6RP1sv8eQOQcVcC8x8tBD8LRZSyWmvaKMNw1X8Me5D5XR7xH4cz3DpidnVfToq9GsuMkGEnBuyqU7diQrXvYHxwjd3fnFprqTdfiewW6DioTVuQ13z9bsF72O61U0wdFGTBes0r8JtXNzGw8EgQzJV-_HH4heFpwg9jzIgfETClLBeMiY20eNl0xQi6cYW3qkJWdtbGrOcLiQEKFApyZGaikQE26O_5afPUAQzACiECDLMQmgUsuR3Wgvg2tHUZxe4v1q17r8kg83vNWftA8JD71RdpPOQgKz9FTXT-dw1iGq2wvGG81RR32u_Ajj-11ytY9f6WM8-6dQuSF7WSYIefw2ktFjxM8O4pWppB0KcOwcdF-MgrRVGc8fnl7llJu8cxQc7xfu4u6XGBzcDeaEy_gUJsUj79rUre6SDCBmOPrVwCf6KMzOskbYNVBjpXSvrwpTMOlhqNGzr3cbQAv1NmeIXB-3Qk8QGhSwNHxADccIYxSadT_XOVMdYgOhNwscL-_SokgkU55mO_2XG4ehgrMNkOtppBLRwYyBz5PIBiX3uGGAPaS2aVb8788ZAxvHYTYFTwKukeA7wy8tZ3pjj8JEvPblSM8xzVypeN3uYtup8TEK_MXQ-uWbww46kDFxAG6HRo2DA3UtuJCG48P1zmS6tSmJiTtf6DBrgASzIOL7cKEtaDKjQESq2un30eSfo-z4mvb2wEiQNS4AVq6X031c5SfurN61EvUXduVf0umdBtOX3YYLpWVtedyJJRuDRWdbHSma5DMexqUJyhUMtk6hA-HyxBMzel8AOW_P44MqZFeZSxstU1O4eICgJGVEo66hgkDhiVrTD5o-r-ZIJuXIhhVZhlGABlVAZmHsVMcytZjohQVNtMgc2hAQKtwn0Q0jdiBTe2LakGr_9XklG3MSd--wPBs5lqV5n_Rt62t3HYqIrltN8vJCt-Nos8RKOPoRmfmKMSEIzvAmEBA44p-vs9MkycP33WSJyjsJeC06gbrgwvJbCKWdZpHbf7vgLUX1UU4hshLLC-mYLNoeaix0HFAIgkTeCqSLnGvjZf7HOF9UncsbO8W6zFo5VlLoMUp2oYbH_6lTwhj20nqJUUsoxYRRx-xQVVaVxySs78EAvVFo_7Fmfbva9hMsPTGMyBEgAsMzlfs2JKpYZqjqYbS-6EA--dzoZ6hXxAVzsNwYDtSNGZKULSSrqjgOgiwZe6wGqY0aNZSpTamCkCMELWXlPgBWSyDaiXu_DFyXBvnLkm787TkOzTTxMaF0QYgmXj5txKVJroAFr0_F6TTl1SPxa4cglwX94GotbL9VlHl8Ty5cjBgHMfz4F9w8uXg5BdHKAbUVYskE-XgntIp2USVZ_RJD-b9W19FF80S9OBqJonXCFs7Pk8yT3tik3ZjqSsMt1fopL734N8eEFIetXSgY5dbnV-NeHLswNSY5BbDhlF0JtI9CYU_rWBFYQSKvblf1zJqnd-i5mxmmAEOWE4INXFu149pEUKg3J4HHrlxpwuYrtN8FSjbUlyaFxOJ4MYKPE-ANt6gTiuI5JEcSDT9MkTpSQI3s7wFRqvPKY-E7qVALe6BtP4UXuvL9PLvk7pcS1gn3jussBnbVwzVKV3uYTnodWdCnJrOHIip6BFH6Hc-6VYrjd1NBZ9UVGO9Id3kXGxyk3Nz8xazEUHzZlT6LZLyA8vDiMBcuwQ2680BRV1yC_pyUEeuUhJ44HlsshgvUBnM4s8E0_7Uvw3YxvySIJWJPGP-aMSbWg8mhA9MaxNPE8W1FygIoG5BAm2NFGj4L2lU6m8bzrq09YgsozdIDtv210iVncBIbhF7THM_7wYQXN1GURbDNT-ZHumhyIQXMJOlPMf2JB3ptp3g_0BTiqRPKbsjwP2hjGxfv28bEkbQHhoylEpbPWHCDuKzDCgiro6UsqQuZ8ky3uskHfI-Fhpg9hCdo4SUJC50BzyrfTyJb3dETjoTM2o_dKe-cd8EhlfdlE4mXQcLB4PfTecXcuk7FblKUuwEYgG7Kg78do6Sg1Y1XsEUnLLxMJ0c7l3D4z9uaz5oH04pT90fqCgrsm4AgKBECKKbb_oC65yIHZ9GsKOAveCnm2l_IaZbNpGItxB-ncyIx_bEZ9LL3yCbaeZi5AundtE4GIbXCYIfj15zehmrCM3NlyK1IUZYe4r5Zxe8ROFddkoAfFKM7e9il1zrfHPmcaUfpdHXhOk7_1wepJt3j7YkaJhxsbe0D-N9yuOzzW4Tlg6urbu51fkBURfOmfoW3IwSrXnOBdIQ2O9uMrzb3h9rPZpsBZmKSYSEFibiLLksMkSE35_AFGCwoJPO-k1r6d-XpHhIM4wQ6NsqLM3s8KF0BGQlD6y_Ipntd2N7IuVO4pVt4WUQl6ElX_vTd0B81dG0-DNejRNBF2ib37JL1i_b6l-nhIvZpHUtUsaCdasCxClUBmAvxPb49EzWuQKz9euRFJSp_xC3cKf9dqq0Hg5P59zA5bQwwxQ7VNLZ232cRcrL5mzP6gUqFeAMJ1CrS8mGzzn0WQV-plcTzOBWPlff-DOs3pwD7qw7AwYP93pn11X1PZbOzbR7rIszDQXHMWiq9PhW1UPmTckjpDN0ohq8GxB-5iEVV37ukAqqq-zg68ghFcQhcJDQa4Pr7oUHOBTeOZG_qa5pW-NAVD-M0TyfMA5vwW3QYfqI6jiq1M8U3TZTjI-XTiIeOTHSZYR6FN2MnYVnke0jtBj9Yvixf6dySMSa2WGw4UutiwBkU6IGCP2dWqrGs47_lBIueB3KunjoEIXShw6Eh4TSufV9KGg8dwPfy24Y3Ec-iK7Gr1Mr6YvGE0hyBoDCzJfXR69RS-vGM0ywvCTJ-KNt24rDX7-YL0HVXEXw5i7KIVDP-q9b-fYDU2_YXPrY3kUdcHLlvUmBoIjMEVQi7tANifKCA97xB0BYkvtBeam-YfMiTnnRrXZ9m3LprbH-rp_gNHvjT9T6tzvEvekJLdEeaHqGDRqp-ym4qUT6287scv8LSMA6gesysk9xCMVqQcFN7s3J3brEQbYrbcbUtjqfFlECnu-rhGJmKk7oOD33mAnUtwpvyjknNBYKj3As450F-Fx7nMjwi7sgDI56brKkNA660H7DELjgGUkBPGEmaRZ7DvvWOYQGbaz_JgpzIGJBnumXSv771A1fs9TUq8ngMbR8L-yGRdvwPxWp-BhJ2FGBClLGfsNQ4OMN-wdgl2IkyA2QgeKIS9xwP3GmgEMoPdbbwU_ascd-Fk9UFYmYRLMg4ZbSzJXFbTo_ITRMtoRit-D_01q87_AkpiEsjajRcJWCkaouYV-tV1sr23duv-hzR4J39QOGJF0Orj40g69co_C5pAUhhPeo62lzi8cgK1n4ZSCWeva2Ki5qcCMCqxvgTt2eVHzUmKZVPwLFI-urEEvhPel2gJThSnCjj1lxJqCe_lZSYy6ljOEiRLO465QATEh0cCXCy9730yocf8e7tQXj_2if02l3fTR3BK_lApAsbOaxI27BR9NUJcYIYvwSGBLlSDkwtuvjtfjGxWI0qdWN8QIkW97PSVCTNgGTDWj8_XaZ72PQmmeWKDq7vdR96FpsiH11lCLTOQqaTIyxOopmaLAMBhNJCeGiLTf8LCyMOVFee8lK-czLYhsXL0Wp5U0GreWmcLPWvy0Qa8pkULT6Cm-rVHW9JaZTNfzk5wG8aAPetoHv5_Q1eQ-t8xIVWjQ8UGsi0FvhFxfIrMUWzY_JNXuYK2b_3hYx9WvZYCuXN2VPcQZ69nkeYv6UEGnShOJpIFj8dxZugb0DxGeeDuvGRai9XIwr1un2Y-PqljBxv8Srkl6K-RJxOfbagKkZzaeQROaUJUYLgKWxFW5zzfAH1ZBHfwrKpDX1WMksURigrhCUO6fO-8QLntoSLKETqSLBVJ69xFnTifOMUtT7ey_jA3cI9n5r5Vla2cSC_Nbxn-bZX0r5HTkwMsuhsEEtl0izT3D6wp_JdEomfOvARNh5X6oRyoi2UN6vxX9JBJByNRzc9LBHHhgLzjUxWDYT6P0k5rlnB2h1AOahD2yeDGmhRiqXjvoZzC0JH9Fu37qlds_o1zhCIKFTVOgxrY7FAn5o26kSHAGsqro4ENcmKxiMTN-9A4MmxKBgMWTX9eJYd7it52vACly-HkOvqihTM4chCyg7RwTeSHaBeiuc752m98z1QBEldfrlOcOQHJOBFT7p6DyCAWDSeRmXzPo45cxD6VJ8kpso_B_9kHzDxrKntsV8Zw8UizqNDNSEsap0HnHalsY1vl-z70aTFSMPBQQg5j-ep11H7q53hnWdU3V4bZjkK0F9zwDR0b5iaBMRijUhApKWXDJ3sZ59p0ElZZUT2_FowOZWuLDvFBgjw6908qvB-Or0Hu1Kydmh96jKPRxvbxnjjthKzg__ggqaAfdBd0XWrngf0VD_75MHC_H2Z4I8g2W-6kWEw1ZzyhNn2ItQOuJGG2xvC2Dkg5wUPfyyF3FdaAXv-7JyJ3pYKzS8JAA086L2_gHboVJdUcvO8WjvT0_lAWGLYz59QPAn_BjLCXreFjT7mC-IkLfMyRAz4qXNCwmUWiGIl9KIjUj5_CyfAFBGarspWtO8_eQGNy4APrCw0vSOMjTZCCEYm98_EpuO4Zgx1Wiu_G5-J-BfWvbgdguxo97oxmaB9QpLjyzk0GacyR3d3jHg9RAL_hmjNtgvtC-poB6YO7G6K3qkiik7-VuxLAA7v7rQtCYNzG47OO1NpgP8kXQ5utXRs8bwCdEogph7uz93nI3G-1e-tR5KJO8Mq2L2Ei8XGt2OwIi9qoUqmdoNUgv1QESUbpT8Qi3Lr07Mpzq67hb7VH8Ci9a5POKc_Hoc-xfDI7mTXy86eRS0qjI_drmjSqA7fYEsYfup68PLo2-sQxk8PPxYYlL40Jq984MEhZ2aSYTkml6qbfWozMakM-B3eCGdO-TLOuuTpNf8X0gcMUJXq7HRzFSEnnLa8MG3eIMx8VTWUbUWVF0luZpvOWr_vvyE0yW6E9RzV-fiGB3flueGqeXfC1HgE6n_WzvdP2nvggkEDzKfpq9itm1WXX20X2Ir_i75QWHtXdubX3f0pG71gppuU47DYKmp953OkCHvTd4Zh15ZPlh4bgcQeZUzwTKIVX3yxT1Jv1MUIz2ckwkDEy21f0nix16KF4hwc69v-3WQFsmSdplpkOdPiHSx38YO4g5T6UbIEj6sGBCP_Z-lmTga_stybgnQqSLTbfjJNIaLbNqSg2R7nvnN7_EB6T7y_-nLMgMs6J-EfGKLtS6-ldpMMQeihtfRLifuNczJrDWUQglIr3_kylG7Q2A-hbSHr4pyspOZ0gyVz51ZWLQHwF2kAx_JNG6UmaDOj9q-KRbLR5hm7IsLV5FVqpo7C90jK5LWKib8YI5TykWYozzTiDNASrMsSsRsBVJlIsFVjz0Pa3rOQbOQI5j08cRuUYeitFf6-YR88ZAmJs9Eo7DY9XbeFkVlUyRqikwTRvm-7NBfauMGo_WqA2Szjlv3R8f9_ikZJsk6-SDfxuUBfUtoKPTFW1GbhhSKb34by8QPIO3ywgfycEz1UGcSbJ3rpIfVIGAkqTdcD0euHYee2fr-6abKwvNu85SFY7k_AyeLbbe06YaVZHYBrWktMPJTGHCBVpr2ZpXBoVd_wDz3XI_TSuQj9yE9j4x4YXrhalbXwwP71BiO5xVGWbTi6HYtq-OzNRM44q4Bokquhun7Q7UjMYiJ5AdY7Zs-Qd4bOZaFbSkkreTmhvhWq7Y9GWSf7_9dRzxwxJ0kQGS3vA3ea83UhvuBj0xV18SlJXZdKUV3Ses3BbmPTmYCcupenRfC_MYa3x0jrW5LPGexugTDakIU6G29q3X7VJPFX_S1sqM7cVfx29VDaFHNYRw7P-h9q5T9U3cEE-K-VsaUj2hd3K54FQKHA-iR-wH9TI3YqbAqvpkBDCoZf7TFeLggagBkfqlSk137xjACPZZ2-kGdsr_dIBQAtxmmLwYjIog_F_DL4-kSxxV8_v0LkPonO1Ph746RXzKEjVxd8Ap1YuN5CTyWkZiyfGN6HVxbc49klaESLDk_jnD__coEe9DSfHaNz9kNofNnM54lCwdoASDDyjl9NlmMNtIHpjrWbdVw2cBoppwEcvuNaQ1oCz2fsF7_13PgBlhp43Zi0uwYIGDms-noJR65inPYsZgUHbgL4Pr_jAO3mDgdW9uxt61TMRN-FLYdFmsagoWoWIkVtysU3sBdps-09t0k6nm6x2ap2cO2nc7sR9XbhvmVOU4eCUGgT5N2JZBvcetpKPK9MiDIdlvB1WsFLMzcL5ElZUOxsHAKkJwF3OdJTzMTfJVndTNiyqd9oOdtnYE2HpsHy82dx27uoxLNuZvdv1XKUCwvVSvqdHswQll32Ac3BDai6U1Il2yAjXF28AAO1SDuzl53_1KpUDq7RFHC7Yhth3yObXeVBiRalaumrcNjk62ylRQAdkLpky9yrgFq4KQ_q-F-C1uyUJrvSnodWpKAn2j0qCKky6JI-DT6Ll2jxRLmexQENxXGzyVt2n0M0kVhvQJ3xmc2RHWu4SpkVnbm8ZmWVvJNIc0sW_yi-mKDPNEX4BhNNozfDiExZLJ6Aq4se4HiYfTLB7_GZ42veCHXLPsfMCI5HnK0RSwq-xFCEzBU5rWQa85Y6N7dSQGRYyyZKgWs0XT1Ob38YqIuhs8SALOrLCdyw-rpJ06utX3-TTkgZ54-E5WloGVfX5B8A_fmYyL-tp-hUhr6bHtVXUy15dIRWXvxeme4Y-v2etOR3mHejiz7DPCpitzfDFWkDATk84NMewpnWCw4xITGXyV1x9liEc98u65yZiA7wv-w-KD1QuplKHvmwW-AhuxDcz8pWp0l9ekevGToD263ux7Y3ExX5iochbnqINbNoopZdJED2l5NLXOdtExmEBzZ8-58RezRRAkKSZvFpzYF62uu2-sKPXgHe5a2kLgaMfncrUKF0Om43ZhXEZNnLs-rEYPkBiEPDgHOczQPLxLrIs9gjTSUGBvp0s2Kw7oBoWNFLlhEcOVqBdi8SqJIYahSIVYf4C26ULBrH3c0oAcK8qD2wY9Gbg9AJjMRiUTm7UBRGRm1FB8OjMaP9CDeJjl0ICXmRQE2w6GmKlvCppFADcYOTCj5wf8ksdB2Z-t4EDtJelnKdIQXe99C8hkESgnzzfnkIUoUe78qWGkJ1bavPoR5lnL9vgNuMbOUgvjJrtPHM9KK68BCy1LTG22RXGzXgoq3-t-WTxmjcNUGwVJq7cHaCFSyNBBgGX7Pst3ldzygGrE8Mk9fuj5Jj8IybtzPNEx431lxmHLEfOM5FWMs1Jf-OayT9YAAH02nUnuJ9DVHd28Ncdwl5z9vuqJEw7UiK0Fgr-Ffw-rG3Ptn4Y7EeNCI14xy4bsvnXfgy4RrEyFHwKfIncGHQQhIBuVUi2iVeMVWlEAnQDDTSk3BXtg3YzKQ6FCT3mVaKLCsnDsN1h0NHs4I3zRCByRJV8BYS6JtSXnTMpZNyHgblrvGqdQh0is8Fho6Mj6ekrEnHt1rEhNGO6QD5vPiZKihvE9rQgP1hapqeX4aMRLF3aUmuFmbcq55J7zxxdqBaltPInqALKz33-NI4gRN_Rf318Y5wVgqSaOwN2blI4mQMF54Lb7Cni0SmZeARmmo5C5k_Uhd_e3PGTDLJIc4Vu1qPdCoPHf6YJuHxZIg_If3stoR58rGpQfIuYl5yf_gZ8qZIrT_7GeeMFGo7_y7iyxM6AHJwuWjXok3Cdy6xIjOwzxXn8ulOOU4jdYRWW-hY-kjn4NwyollFoQiUEaKtQw4OPRQ2LVHp4byDBsrMUTeDwY2wKKky0QaVneQBA2Gp3hTpSpM3p3csEbw8gWFMvb-Lea1yftEbZNcUrKbleGfpON4jIbBOUjf6BRmyDdvvyTN44egtOYaUZtW3EnPIMCvIrOPTkgifHqQGWVGkIg2R4gOIj7UYsMAUF8X8IYjnaDLjVq9D6wE4MiutBw0g-vu-PtYOdMsV01JrCe5HU-pa0l5nXZxRzU_YB94QcV8WFIPL_AkzTFSEB2rMvUC7GSvHGz7hJTOKdFTBmgbSl_BoZM0hmH_Tyl8BPF-1LuQb0wFu8lX9Bki4SPuDAOu5lpIJ2dpeuh9547Gj_oGKcYUTtaXvnJ7g2TyMIHdm1Fq6xkowqIP3aGDIQud9E4eqEMeSSkwU7LNG_sJ3uVYEPSqchad-HBc0VPUseTJSs5WqCBh9ACe3_9ZL8Nvr1QTfCD_u5Hzek-9s24gUuKMNwLJ6sx_ikQ8EqMLLINE4AQPoKG5iTcbcseWKbkV031C5makjDSda8qfhx0equQJ923XU5DXEmNnNZqkC6k2JT09gjsFodPnTF63Hsg_2SPKzSVcOltkJr6WzybAVJu__9QpFDq-oe9qCUYH-AnRRxgxzaWCE0hu88eMXe-96L_Io3eJbLQbNlJDSgTNqyrnFlT6awqr1SGbsWydXJtjCpZgx9GV9nJ3XWFMRrbvMl1GFU9MXWcJv9NnMrvsbQZ20xnI1MadlIAik2atNXAZgIN-xJ7awE5c_7yaZKDH1GFtnS-kqUnQP7iPlEjq0_gM2yKfgpdO6sD6JuzVLbh9WiohHVr1iLbpoMTQg-rwp6PZ4f_410O9Q3yJz0rtxpniRZvulBgW1RypC9cv_aA5iEAJubtRFftMhFsF5zO7gSN3rtTYftyzPEn1rp89ClrXsw3owd9UpnYQmM2Ycjq6fpQ5CyGuglQ-3QPKQ9vflQZL4qvgKB0GiTT_h8aO1z1r7zXr2o1vbq-jWNvOvVn6Ilj4uKUHMD_BJbyDnB6igRlbf8aqFxcOXN5QmUnkC8jXbxM0duGxt0o0ODxqg0u5k_5zHy67PS5r3nrMClfdJUTmUxsT8i10rvuUh5ck9CUdANIpJ5wx0HPH6eUZoF-g51SPNjZfFADP0_kRQw77v-p9MNc99suyVvTguURF_Ko-6kXviiIMapvKzC4MRjkXXKBlsTmEoH0qzyHqiW81mWbgP6F4jiymVbMQiO_9qaiJHSk4pBkw9XnZwn1OUZeRD0wT7PT75CX2hN-a5zvxiKkSWYXHgfgwU6DBDXHeAUo77w_MChrZVt0EfdJRb204FMXeLDVYF47N_M0DGD4HXY7VkjCm19Qd5fmKHowracHSBAlSP-xFeswv8_eUHb_6-36WVZc_UInhegIybG3FKWyBg2ZpSWab1PGhw7gZZza8lVdUxxhKSQMr7iN4TlDyew0u6VmGE7jNTh2rTwzSzMSF-ELx3tk88UA9f7eb3BpnCTe8bYFVSINPIWa3R7XqJMbL6c1GTIhEFXUhCBq2CA4sdN4zIo5aNHFth_8EAtvPZpzEsWk4B5eOtz50vQioSBHyg5ZBhFYYoUEGuf6hmY4NET8e_FA7t3Gg4UPlM0Ckg2miVH_j8iMk9eVIpIS8N3y2WHH6hoHlHDDpHbq9EBdLZ-27wnT_acnmJunXZFeJ5vo0ow4vdIE2jvX-A9Y-rhbqSvSpmuCu-USzxhcadl2lU6ODzsGI_FJxJ6WEso8ZxlDDLIX-4vlWIOKpRz1Epe77TAeDj5tVM5dlEcVx02vvTbLVUWPX9l1Hr8knungpuDOXuerr5XOL8b2nEZL8tSagBqRODIMYoD7Mk1ROULkrs_MuUfjvbm6-CCLlzPPwW19GBVTNctIPgfSVBU28F1El7KyNAO1dMzWRxYZa9yb6m93bBIFZpXcJAyiDLAvZHePvk55U72GY1FI8Bk7C_gNdbvC47GHSmwP7z3IGqmSYmygnO1X-jzXOExJRrhC6_z3wSC-RXyV020xRXSeOYMxgtLMQftrZ9gHADUTLHKLKz2jsEUVdOm5eveUk2E2iDAzMem7AdRqkfkWzLvupE_H6hcSvm_MWz4TipYq52SLa8lzA7rbCB4Znqm5DW-oKffN0qFpoYutcxL6FzczYUdTI4m0nPmiYp70rJrF5P50q-HJW6AsKSIXLmmVflbM11u3ojh6ppEUkzl1RP98pMrJAtVWY9lhw_3_yZ9IZ3yq54vhckG-3fuRmXG_9B8wx1eqREYdP2SCv3RctjRGGcpRGTMf9ttS-GN4NDMSTTt6uuk68o3vskJbMM62Nij13nW-Bvzo1we5jK8FfLxs5O92LzeZupbZmZbomeWD7u1LJ50ti5wHXWtVIcCV4jYPxPaScuoNmuStL_1lYxJ9l-vTleOu7AkbyushcmIT7_aIVJjqiskdJaBYF_kopgdN9armCPcbE1lr1PYyn-LrOdd4oapN8s6PLE7EIr1CUGmklVHbHtGgmb_KynNNLTJxkJaCwe1qoNJC05DUU7kW4PXqsIsSf356r_g3mnU1x6y6VZcjkgKBeEPDasf5MtKIRHZIFO3A-brb9nF5i_FdqSeeMtB7jr9z-TNuB7Q21exHC-4-Slx3uyKd0OIX72uP6fPW5Bj7udm1mfILX4EOcBgt59qXWZw9BR9T6T2YRd9DzuAqF1fTPyw2s97ZeE9wPyQUpYLxsJI6NOn6baH1WNLax3Ugnot5yU-tSg7xOktg2AYj6ECtcs8Y9m-BtztCvIN7M_ptZtGlwkv2QqWwHB69rPcRN_scTA7a-1655CZqgRnl1KYeUpxAJxAHIAWggOUF_RMB4JFRc-WorRSmr6URJUUytI-Ju6nCHzYBqk5kDiCH_UNFcD0_Qbdt7nA6GcqVnOuz0lEwfrxRAzpSCSUj0yOsMh0n05EKFP81pXzKmQsvQGrQPsPDEs9lxi_SGd8vawqFZQHnQ629Oukr-yGhTr2G-mSQllLEhHlmCSvsR7XuFEOKnypkLcwCAwcVM-xftGKPvkafClfRbKRO_NsGvnzXTKqoXtHkhT426DQEIgAKLEcv8yToennqO4k-QtfS7ekZjpFIWOn48UgQ2UolOpFKTe6cnFzo1W_lVwiQwVePEQa44u5_k1-saSqa85GgIRErujJbCxoMHZk_fFIA-2OT6CD_0xFa2kgB13Qr-RBNn9PHdHEt6EtTTQLgDw0tiRipFwXxMyq2pKVhxZisYy9keyoQrr4wgUh8H3WYZRkF332TAgHcqn8UzqGdaysqRuFW_BBHpfMKQ4h86ZunzrTvSGJEboPLd9o6_Ofd_XK4hoQQ1eNl7xe4nfEqwaBPoPTUpvYZH0pUK7HfncL7_DDwdgpuYhrkKHwYZER8C6ljos3fe7GskEgqienp7Db46lwoNWZWJI-us7D180VxJSwZSO9HHrWUL5UEU0cXcQhqUB0WZYgoV1Mz-MHPJ3zC6sbiSVdugYZnLY0Eqd2YDHUmZ8OGvtEO902HvmAlYDqguKnrERFu6qt_gYiOhkrnYbTIMNk8AHN7OXiZgscW5r3IFAT4G_qWfV9f66dQaHLO74MPoVBwsfshHocqEoVxo3DXAxhZzeO3fWe96sQjgl0_ApKg-mAcG2jPwPjX05AztkenPSAhecMij_fv4e24JSpck2s5pwirUww-QMGbPCZmU0awa3vIQKgLkjLvL8k1KLd4sBVW87UAhZ4_pSKgawnPORJWzsrF-_yrclOm1AV0r0NhPVA-KM2a8FzMPtA_Zs2Yz3lqYklLr6oSvIbVQmMSxyYwKSH7I9x6e-7tDA5yw_cMwQIPIxQNqKawz4Ouk3B8oidWKpczIu4pXZpEk3g8N_TDKvpiCIolCnqFKxwahkouqSvALhXDBGknJT1PBp3LLtaz2rBija8B5MiZxhdd4j_DKQ0Oz_S6C00BUCmJuvlpNTQWA5lbagIGZhgS79JXCnwQFchMl2KPQrFx6GnqFG7l1_5CXs-MYTXfOQhfA8a7vcB1VUGgMCQKdEfBbt_ZbImxSQ1oOSBX_tw-XadYgXvvzhILBOTutOpyzvsZ6yIyqEIppkPKwitVGyRcWlzoPLTvss3WAzxda8nd3mnbxxzS6OgEqxYzFX0xmBj-eSq2904MZWTEkevZFbs80mNRPqSlvoXexk10Lwr2sXsVtL01lCBet8izpbN3phZjv2P_2MBgq8S8XRK-ZR7YXr2Esh-EBrKC08v0rExx__QPauU2dUqouyPN-qBe39cfvw9h_pOnAycTeUC-QU2mENRvx64bVcNhYC9X37x83txymyvojdqlqQPPq42oQSK3CNDCK07zQAzFEfZbcFtWOO3KwamrViavGoxr5RTfN924yW0a1xiAuI21UmHNZ8FY7j-QJfqzFVw7cQQfPSa6w1raZ2Ac8StoZ-SG0M82kgnQYaCUZ1nxfpWR9UjAFhUc_cNPEjV2Zil3b2ehSHnYSBT5U4Aukv59b8fy8tuHbxM2l5Nek-mCENTqSa0BjakNS3mmMG-v7RMZBlKsBW93qkx_gDkFZnhNra4F2Bmw2lrEIWWveiv1lYvC5N-rqK4fXudhjaqGw_-5Ndan6HZ9M8XeJIrwXxLIK0X6wLSFZdCJD8DfJ-b6_1b8S4x1Qlbn8znabF_dy8OhnFW5dUO_8oVMr38hRTxkrLxGPh5LfvmTyY_6qJiQ6FaMuvyN7ugChetX2EftV5WjsMJV5o0-UCjyG9DQr87eM7xho5HNoKSI218didC0H2TZe6ChDPBR120CDlYGORdVCP8EngDXCtbaEJRwfgp3jluYc7TTkhSCHSEcXAoxvRMj9g05TYrKXOS1_h_SpojDxuXYQwe9B9XpUuKyUUCZ4lsuoovuMruYX0rFIUsYg0myf-2L3op2OMmZ06C7SCcf_8jWs3TzbeeK9C6eDxgx7voyjfZm-3mdfe2xz4p3CJNQ6qlH_GNWAhi1YVbaNUNkVj4uygTkGOGtQ7M9w5ZBxjwlaxUY-KfkbKdC4xw6wrJqLCZEeoWj3vMvoeoyNSQVHiJdXMu8Xps9F-KmqgrqQ7dA9jtiKNfS_jAhnSXPv8EX8p2OV9DyHl-uLWI8lq8R60MJb55th3MGoNf81vlrRrFoLbEhdR9ERjdoVYKUmF8BMDUxCFoTqeKGx9MoiUQEjqFOziEPojjjOhV4jGkHLCtZrmYnRrkSGa7j1MFZwOxVwzUNWf3WXD2UJ-i68koZQD2LxKb99OszwDssMYPnw3-0awrAATbwpmM3W499Zecrqi6im81aXpXtEN7TDSCqiltqiWgDDkL-_vATlcw0QJ9N1Y49xSJBVSsFlW0mMsw_5MwgAeUOx78YWehWNIHS3Cvr__CdCWaHLuM3ofU5OR9jMoCkiUtpQaKyMuevYn9uahjvA3GGyleZSEVVztrRjBf02PTsGHkHxE4RQ4UX8cRsO8QIOUR-244jr9KLVadRmOpTzWScHQBCWZaBUBQNPAKB_r6I0qTuRl_rVmWBa53z1P1WJCYt-zVzcAHzue1FrSVE51RTJr5qUgVvv3vGWwb64uGgDcYTqrRZh_3iO205h0AK20qpbYYCHrx_qQry83jh0aNw_I5ila_4AxIhG23srB7rV310TtnNZJBJ6IhP0DhTjCAuzSVQ_d9k0hGyydQJFpK0Q6szYPaiKEmz3jaBMq-CeUpniN27l5P6v739YxD0CjIBRkQBFk22ya_J55cPj2X5NbjmaqfZLQA5SpwuHX5po8AIu5jTX-FDI24oU5iOxvBFtCRUPlPfjJwyI5bZkiENC8UOPp24_-_0vzgT1FLIZFtLDIbiiRedwUHZbRsRP1cdM9ae3J9-ppw3xqBFmo6hbBk6P0Kwp-ZsWN86DvezLhN8IeVO-5dXuz7dMd-yaIg-3t9NbMkfeMFMjA32egSXFCuGgC9uyhD7RAorvMiBkcJxAzDmbYU6axp4gMAHrlOn_bQ-dscua6GGNjj_Rb3GvGFxK8JrglImoUh_4OnvEVizqbI4Xok-p2hPTv9puAc9YgTP707FoghZq6GHpITTWW3UO4fYwmbewDnWNUnqZUtw0VxlY0UixXtM1s4zII9mmk58RieJC9rpnnNTjkAt6PgtozG-V4FX-b-HwJLVUENKeAZ5EGfPyXEkz9fd-GMpsmlf31sxfEoJzY3ISPNJd6KEbggf-Y9v4bVshVbkCBh-Fy5KK9L5IbhgnfyFqdvwUXGxXuNYEwRMT-r8WafvupKgjFfEYhO8teFCso77sNrmK_Dmeoob326LuUKgSTuwjhGYcGcko-Mahfw-mMkRaRDB-JX5neX9H7wcebUKbYtKtQSAm_xRvySWNw_DUH5Pbuoiwq-pn0yLYQeI3o9ZuLZCKichrh6M2R9iSiavoxeRFEeGy3X6zjAOvW10tJoNhgRRGLWleK0RAm85eHugzfkBQcw8QlOiIutsk24t9mZv6lYrYTeDHOQygT5AcxOAOtmBwLhCL-43Tn6h1PjwTRC7tQlCCdDNSXCu4okYFqr9bx0mQSMrAqSxHN3COJBykpTwhiCiC0bpGb8BffYHJ5fPA2AJhH_DGTepD2UyEcp4b8kvZoup4BJIQ32VIYERdH5b74xN9twB123b-1P6zCP1uaLQ7dzaX5ko98TpYkPCIgwI4J_kH05kxfTMvR5MV0X2RHF2aCUoSqrtU_MFPRvxlr8YWe1hmfYHK8KOr9tlTR5xJUCZb3n2f7MZsdv4j65bCFQgmsiB3QUh8Yyj8nYiBVDKlrVo1djTALmaJiXw3MwaQNeAGGWnhZtPC5LmW6Feqynot3N6i7WcRHbcxtZp_Iqdmi972HUovLLqSpI8WkFE8i3zUtBpXVh2iMhVhTTGoBKYnDdmM8itlMBnRtKCmUYw4PlS8Bt2RYWLOtbppkcQjzwF05DFVpNObCo9c4omQAgTcKEvg7WhYl78deaNJsKojWDxKHBTqiXBdKJW8u3qZzlP-YOFRWMW3Jn45krsCAKOagAxim846vymsoS8Qyicsm4WqFL7IBds4WpUqvrdmSTVVZjVMLtYNMmSlN2qM2yGI_llTW0wgkfgm0zuTL3W3FT_10poHKkUMgmDb9V4Hvz5ej___VbL-4hrKyU0L4CL7hsnN7WdnW4Kmo9IUTqGz4F93AQnO34DNEtGSynVVv917918dGowNskD8qmjfEXstJIKf7wT4fwq_TdAFPN26YKFXwC-aNhIVJh61DH-d8iRSp75tyqINLmfcf1yYEm1OtHsY9IvNr9sQxGUE8UBBEde-_YjfsaoJ8B1rCaid-a6rd8XkiqhnMfAg6PxyFYTPZPQ-lCZndbeExTrTEUDxjb4ovn13CJ2Y-LWvN38rABcteIk2hsOwHPn5idmN52IFsCUGtqiqC5iJnspOe4Jry9j1BuxL0G6F_wlNvlIH-frdJyPZp0dP4FhAQLteKJFAdpXND_iRxTPyNMB75MZ5YdAfMuxW3G4tzK-_OxKmOduv4Ayn12lSmiSM8V36MaarW4rUkc5lPzIHUnm92nzBZoTJXsIBuChF_FVbCN1aScSpTEe0tYCs9DTcvkvtz9d4rHFR1cgOZmPMOEvw60oZkssBGhahnZyl2jgi7DPMDf1ptY53GgejVdhZ8zAO9bhdRdphDhJ9vdzfP59wVpGqC5TKHdIBtSNMYSkeLfHfK-WzSg7w3FJh4qcZInffCu8m9FPCsA6pl1aYnnNQpaXYRa1R171Ler2JpQoQUCtkT6FsYSxhF97-U4zGNMciUZEkS_IjRMRYydgKqyxFkcxwtHPbnO_syomIreCM726_2AQlAa0amvT50y36_XdqtakgY3up85QQ99c486ZH4lhykt5tw4QCRgxKrKUVWPL04Ha_ByWay_DuqbXtVtlPtJS1VPj8Xn8J61LrF6Hq1muex3jQdyT05kphAPWwL93-dYYsZUzu7eYOGdkp5J_5N2ArYQeauoxOIPIl4WvmeIuTFGJWNBHLkgNukcBwEUPS7CiGNLBtQkTfUUM6DqA1ICnQ-fQnfBfRipMLQV3Msszt4Q0gssWqHILMjwk0cU21oMzSXqVaVCvCL0TOtjSARlO0GkkIub7u0gkOZ7jahWQb1-njrk66ic-HOhwhxsKxD4k019sXWPzVt9Lei7ONoyTLqXDSM_uM2RsSL-0a2BzO5Fco6h5kI8BbCdyysQesFM-b4WAImUnFcWSKaaREdVE9EVe5-2oDs5b0uA4adATcT3_CS3C514vHmPTqPYavh0vNKTtUm7qFcTny4B9ZgXBRCCWa6Q8mghZwXdWweSHzexRofMZFj4JAbjiislwVE7VmF3PJ0_ME7-Zh_VZSa1Np7uUuTW6sHHQwDUXJ7gaSZQv9SNpFJSUklCCts5FStOqgF83G0JN_rwmmpWN5PBps_PODziKAP-4_tDURfxM2Mpgy_HQsoL6iB0lyzfy06Zn6n2nh-1B3k9rzt44EXUBHbZl1B4Xxqc7wyU9J2QzzJyZBoZdpuekMJZbYglwhRfbw2hhFYgWrDl3-6Kfp37RtOzlH4tB58uuZQ1m8rhFJiNV8cHQUjse-7IqFz7UfASwR9TrGOBOz_ToPoJlQuWNdOA2JzyuD9-L8a0nhlqqkD8rZ5P1NrHDuN-5rTor_tNDSQDFP1PCTU2_Jt4BAsb1UmGnoVtHqT0ev1ISUCE_b2gcSWSSvZ2veuUBE94Nhi_kfvcMzNoG8fg2eLNU73Q5juPyzhhIy3j9rI8-6h8BVwwesvVqzAq3JzzXerNqLUBud1H2_isG4ZXOo8X4iBmjGg3p-MwDh3Qog-bwuJZJPFZCSU2mSz_05omDggJCOFZDWmINBgZc9qzJ8UTIaZKJenpjoO5VgK3qBJsK-AQrbQndcwQ97ymmgFzgHjekAQkMMrCWAZ_5_YIvpajWRnB_bCRrT4aUSk1Yqdgg1eEDQlCO-2VhU7RkQouWiMztdr2_4aHpFOGXLB_tK3rLxEF6Mjp4vYUmI9pfUbxgy_AyPNYbj6f_6vCmqWSpPMZew1nuO-rr2wga3zlv5g0NJDeYmE5A42gZY73MsAxP1gJgF09iZSJLLLuZPsCc75f06XWN22P_pVQqmcZkehLfDdet1REcB4MDmNvXWhyCHKagH6TPy4iQ1r-Js80GvRoOEQvwSTOq0hK4xvh8er_5CW0fQ7VZVjuES_0Fa7kh4DS_QetqdCFsYvV5z2cqyr6ZilgSkrFayuOAXvk4xNnoPPHxRnXM8zvcZC8lXDX_YxnjLaIzhMIURvGOAG4fwa7H7hgWm0Ggoy4hWgt1lUPewK5wLWSj4RSY9P-3Q1iszOutAMihH_xfNXQkXGUNrhAa7tKs35j5ALzm9qBJ_CrM1ICeCOMvAgGuJuosPbXPzX9a7yC6bkKiRhhm5L-MkFwuEc1JREkyqQGkkjWMENxBRZTunf7oAnJCZBUUh1hwBE6znQGc9dndyOHngjpoxRFbV6YsMqHzys2NGC88Mk-9BNR6SIqMVmEEc2CZChe1Glq7pLs2HzmpzGrcYXNYBK3MVITrYzNTq9B6nvK1-j2ULn-HkGVmlzijuvyuZEI8CBT3ePp-QOlFHHhFY6olHjCzXtrrvc7P-bYCOWYA3XH0wym1UCKEorlntAZ4D6GdV6m0cZic4ZEbdxak4sjZO9nIPanxaU0-Nar0dWF7T_8JvyZAbkSiXDG6GLdgegjE_zUTIaPRKQdVqNgZKQAe5LFLA0ztUODbFatei9AbZVybtOHmqvV3AgaLLFDGwHhWDx0JMFcq0gWWkIzvjEtF7F4bib7ICk8DFmtoc-Y_ibVqA375f3EaFYA4Lw2mGyeexLWjRW9GJgwAixXVuzxy9Bb5H9kXPUfvWOfLBkMQvdhpsolBUJaVbDDiJhqEqKZ_lSSf6Gz3CU0HedYXzTGwWuDIp4kk0CASRv-4K0K5BAn2V3tQUhgsVaFnuLtktfxEpPLsxl7nNF0W8Zd3gvYmGlE5AZOCgYEPcrhBYF-3FAKcrg3n3EfbOkzGZDsyJ6Baqqu_rdSOWyGrDYwWNvXZlCZrj9IfeglvHauYpZlBqvpFUVP6aA8e5B6Vz3oavEAcQxO-bnY8NGbuY6GA2BrVBoNl9jtxwYBntOnIFCJnxZus53oQK7G4pzEy2OvTuISRtoDhtlHEyo9SAhlutn4dDuCOK15GQvZbQUdSaIQpckDkORWvnruE-oim6jWf2ARw0o3H13xv0Gnli9VYk5EA91_etZozH2DHAmG9JRHEWSmYAmI48W84QM04UZt8TqJefImMsolPejhNzCz96f7HoSSixW-zMfyWWTTsvSyuZ117ezcazu51T_zetIdVct1dalrW0sO4xpa5mjPHxcF9_8e76N5vW_SAPpwamYHvHYhi8bWBq-tHUHszhc-XqtE5IdAHBOVSdqEWSNBL8_Q_qX82BlR1CSw7gpPmXUSoCsOHF9VHrlfyAze1dAAEjX5Yozwti87J4qZEbqNU5XrojzkmxydU0wvdTKEx7X8_6uJnLu-GAu7DkAyA25RGhIyJYmW-w_cwmIJSrCgubwom3NaUibZx5hjHHaNLRBJyMsOyysEahPDTUVvcq7PCBcJxugmYzygYWxml4sIB5628SXp6LU65atC3o7CnyMkkLBgGGgirCjeDdFKzfz1LszrrhJ4mLx8hQXpz_bCo5pz9iKwRssUDnKnswKuoSS4DOz3Nap5RLd4AJf5oZYeui_dilyXTJgZfdL27jvnK8XAl-5-HyjOluXmVabcY4Oez1vQrI_KlzKWsolmlPmFyHlj1bgPnRfUoM7ER7Aw14QeHTxOODQFxjKywLmRXxkqDatlzRWthj5CD-GDko5VbAvX-fycFAcatJW3xTVAVnF0ZBEYQglyehPxeya9yNMQrrgq2ilvXJjGykfTvmGQfbjC0ZQRbyeYy4irvWp383S19t44NdiGfDBLSk4gdRMUzKAsNxg5q8h3ssS3TEzMX7CTcnVpIRFvjUpO0Zo20TqPTVil2sRpyfcEokHSQZAvV50OrIB6MVaZJZPyzx-bQ-3eYj11AnBUzAMrnekO92BWDe-pFrGJJW8Mv1Rx8qdkUQrR611BgVDvLrmhuL4dfWww_8Z3gndK9_TIcpe5MwHClnv2FRWxMQ8gmWJmdW5uIDyQJtMsVY8vlZAArSb-lSvMbTjPTkDmK0Pd0GNtmAoVAVIyr9TH21zySNQF4VD_n3oGWt0lD-M23eAB-SoGJOUhCGpKaRqFSTtEQ6fP4LnCzEwAxWA-CIeIORvjbqAhs_9G7qPeep6-4cGPI_YDIZMUXnoRRRSQ4snbWenAbAbJgkFGlNRZc0-4giXWP47FAoF_SeBcvAxtC_W9v97t-BdEycawCwzbTIUfoQ0pEH_OKdrdyjm8QPzSnesz1Ryd-t1hWTGnBUr1B-4qkB8_PLW6Qs1_wo0DKYdBbyef31_bFXy-f_KGsHmCUbn_vZodRyxiQZHW5OLx8R2hO3vDptcSHUKNst1NW1A5br2iG0yoMfu-u1HQYDqXHfJzlgBLkB5Z1KL2zHQ_Q9YvImhX_WahLc7BJMGzenP5-ELbNoG4pcExCt1Z1g9xdTkNjyVeB4wIPAjVE-pteXkbqRwKjOYPGonC5d5H4jfSGbQlm_zPJBN9mSeF246vNIzAYXTaNqRf9LVnvieudzSiPaBbhMG7XLP2J36WcOFJLgOba7xkqOXL860MHa5UxqhLOw5HHQVGatHPSvaJyIYsWKSoG8GucqZt1HStZQiuSs9C6UzgBSmQTmbrRB-NZdfywWqtfs0jRp5zmWxiSWSKeV2ZFkdRjYoB_x4Nqk5nnXezoyQQMQA2KCoaRCPhmih6Rx0AapWH0O3NiFxn_XgAaWxcdwu5VRnfLTqZE4Dp8Yj-D4GELCVq1ftlzRtNbgs24DFmLo0aPChq1ltiwBa2IrfO-5kTqAB5xOtmccWCqI47XMsb4tzv8DTGjNaWI3mtcxb7PzpT14l2TpfSUUFJK82NzQ3dnQQMG4hHylUnOiK0c0ygEAvZZ13GBr_XvcCsg_F2f7WxIq8yoMvfwjZM2SkuxWOmt4hXPrI-XQ9boN4AnEFA9iRjps_Ur_3g_SEpDyQ8PTY_saYpy_DtBiBTr4MO0YrId_fLvc5JI6iQ5C6R5951-56Z2sDKTXPQx2U3Ls0yJBuzRBkez795d6IcQl0tFbTkP0lIkj4CNeOZRpTc5v76kQovRpfaXUmZW56B8lJG76FNLhsm-T4bMP5xiBVrAODhA0wp1L2pp7gD2bIWt65b8aklO16LveDJmnB3VkWDNL1s5F__WmfftZlTQ28V1TOTNwCCLdVr36PfVabDczwRL66xDdZKImzJn7CNnvH7zK1wVVIi7nMdon-KTQn7zkNVDqbYCUyFb1pKryiOeNXa0eij6ZJcqSo1BwYcyo6wpZNguFycs-PHeO24AjisN7Gnh_XKFsL_yx9USyWNZlLEmwEZjLqrEeYs5Iq3G4xJkMeXokTdXa72GikadwOW_tWf-G4kPOs7hlAKd8O0y4hISgvW-lsr4AoE7yS3h_cyiWl3sMt1Gf1VtQddEi_gKfmOmTYGKqTzYarOQCrulgp8ygEoRLHrS6c_o72kyjhXDmjE472NqVGt6tTdI96vCLll7rb0iKEA37UYLQ_bR0uS88Zum-buJp07buSELBYvfWhVnbFEydz8huU2-xNwE0TevFHO2Zf2feNY1OeGKqRmWxjct7FHGQpfp2BtgoIyrZRKEjFUIgMSMfQp7qZBooAKvd9jeYAsgzCg9nlkKYrwjwmf0fzKgnDJ39qHlb8_SA-pC7FA4ehWyTgUbyT_WwlQmHvZ8PulmjYPWJDDTEwa_C1Pv75BqVe6Oj1kf22Kp3s7_PPuAag28xfwDR60Kb1fvAqWLjGLAkFadoOsoYCRcSQ1qK-7XoJubcKr0pSEWjhCercIatTwXWE9aSMp3-g7LM-9ccRHLAqGO0h64bLJe58C486nH7eb8N5lYr7AGKPulreGQD_pbwd5t-iCqvWgILJOxLksRZPtJ1GaNyDC-HT_GR8X7jBgElDSNURwkkopqWrDZflS3x3-erHQ7sIUWf03P1Q0eR2FXVq3N6KS61AWO_KUxQi5nLysuuRHHE0hO59kj61CAmFfoVPdrG8SLpYRQEmfHWj8ih11Wr3lb_5NQ-HaFGU1gpKJyl0zL4SoSUo8COqq1eDlx_B2GOFQlZkB94xapMwiGHF9u_58BlopRROT_VMwMDmrkTYzCeA7_VigizS9su5cPJ8LibYphknl_I6Y36kZ0ps6Qf3Pw8W7XtQxRjC2skzcMuHMdN4cIsiP6tONyualOq3adKbf_QOW8t3gAysMs5Gcld2RgEhR_rsTU4hZ0DGg4e2DfNhsDxr2ZSc48P1Jqv_jhTXaajmmdvyTFtQ6PM9h_nqRTxf8PMFs9q0YKLry_C4LRj4dLSZY2kVGZaSv4QAMwZgAELl_-dE_Ff956qcv9bQFo1Q76hFktWqN9ILkRmR_12L_yMNYlb989OZvLz2cFIxRUmWA6ibARwYF9pntykuyKf6zB1HbXLDBYAxtxIvuGtH2VqY_U9iFOc1X9EyP7wTVgzVsPoj443zucVscyh_wcQM1eyAtEGuOVcMYVLFNxme9M0PfohkJUVJhOz1x9whaRCfiHuvvBd6smzxxthhcSr66pDqERRujyyLySnr_urym-gl28_Fg4WVwACMkEkr-PSRIWuOJO7TmfAVUoq_1iFuumJ7LjPM3EUiBjLHEr2zwLzLH1_jNwG6XnI83c2NEalp_CCdT6mogg6DQetYCZ3FTv8BGJ-Xm69Ow1c8PyqjDcl3I7I6OMOkT9z4ubFCfFd_pQWHyMcQHWLt-drtxnn_6q9HwX6cIdl-TxPQgkx2qVRyIfk1C9Xrut1gNxyV3Ec7ogQcs0AQc29nk7yTRDOBS8-IYxX_2Om0o9h4R1dHsXcZLOTLCEVq9xCpLm2pmxDr9VxM29bCB5Pk4cLxJIt3E5taqakThrZ4DNACb1MI1lYr9m_OWcitCdh1Rdkkvg3FbhgmJP2FJ1TgTHfGiySjPl6bs6tAn8tBWsKpFiz4RhixYArQJpqVsj2MWXL0wYP33u_6G6hSfJG1bVbNPzEmBkpkYd0_u_ETKMCwawIYdSy1J2NaHLHeyma-RGnhXWeEzqrWerLXNwrb8rZUNfO2n0eB2oqwlu1vEOYxWZAL6ursC-AuYv56_d540hKaR35Vq5nmsX_bM0orZFTF1eWa6F-o0X7afNSH5ZCbd0_A1NwqE-42b287Wl8ahby2Szocwmun12egkyLtS3ySTzNfhcUj4W_LRdn9NALY6CbU5kZUHuummk3SYlE6s0tndiyDNOm_hRcA8jjMYkvZE6v7Ny4XDy0RPqdFWnY0JeUq4-lze4Cpx-zLaqxB6qdCO3Rn75ce_6dNWaYf2CCTjDPcMI-i2jKR0026EXsaILIHrA82LkfgHm_lnLCPzUfkFQwC7MJYsRoAtup1Cmhr1T1MDDAuxSWKXZz0dtAt4HWxi4kEbGl40RhzUepDgIZb6YqCDv_FlDVemus_v9ZLmjGchaeYafNppbofxjMXWljJXTe_c44um3fVgLFErLw7hXlkCMZFwqGg6NdJVP_MLVVH8hyyM4-jZEYRQeI7cziot1ozXzwqr6o5Nec1uXoEDC59EXtMhYZJ1LbVVxP_Z0ekuy_FceeAs42UggqVu_APAl1aaULkr5GbPZxZ-JD2QJnNppvRDaYIhsf1QFZ4LdqheaOE8MIbSQnKnlHkLZnJEpse6AbV13IpFoTDvmd3FmiSLkn95OCpVINLdABI4c01MhhPjULJum8dWwcvix2pNqlpvXzGVubJojM49uD8sMgFGZMnPHhoUzys3Cg-WDKQEiTXx_sRidEM3mzmUS9SFnG4AmvtGUzGEmVJ3Q-8oA6TIa2PX90H0d7mHifWh2J9elYdQk6zjb8IiPXbMKYU05gz11Y-oDoXBURWVBG5E8szNJ6kaVvc-1HnW0I--mp4f03zxRpGAJBHSVmVMtVRxqXfX9zo9WRT1F38DV3SlLmPNh5gcui1QkWq4AkrRIzodi7AxHzyqooNknMev3R0wgthPEv62kqaFCKvGgZ5lknThf0HB-nsWZHMkR4DIPfWEPgaRl2OnaT8VZ-dD1szfQp9bmGeFXCpCXVSGBj6HPY8NkMRJHiGqENI-q-vI-MfBhRep51V5wTSjTpg-qj7jhE0TQPGmtVpQOtLKa_NjbszJzMhYw4TMCozJcyLSonnfjr0bACJ92sMLYZq0Jm7Le4YSZfBK45TMypCV6OLqBY46J1N3_eJHE3wwJvYxchpatW5rARkaZ-IRhjcKQ8BoYvmkB-rrpfx87eUsN8B-sOEJSOGl-RABDgmGtGRBB2JsoYQ7DL3lFnqPaznBwMjTZeVfW3V6DkW0NCy4OKTWLD_jt4-lkGwISqLOZVuCB3vSraf9qJPeXDtUudxl2JDf2pGnHkXsZW41vEyBYC0KHPeDlM1_SzY-oEqyte8yu_upGm7NGcN_fWOqXMaSH5lqgiUHBJqQw8MKwbOdr3xwccGi9BLIzATFnvhyFYTLr0QLfbJKJ2OJqAwOnUAiOEtkE2ZClMQaCWhXNVcYmBpkp6gOpk-Zf2sUceO76-Omxxjdbik0oGTIQWRAkHw532m8QhShPzjJ1iFDdRmyWNG5MOU37zeXLYIULdQ38p1Bj3ZcbNLnGXtyKV4kRA3lyiAbahp7ebYipD4fbmduxpKeCgD-5azhnbkfL6ooHgPr5oKMysPDsMViq6sKIPzbM57jtKTVqtHuS8dbgwYOQjciTVQNpWQX3_TXbMpNsW3l-3Ays7Hy6B2_4ob7YCUKmgozVeuV36nQr9BFhAQKN-AfZb2kPuq7VF0MtBlHj5_ei-Ck2h8GKnSNq7kA5BfvjEVKYMKL3E_3sBdgZ5EeaoWJnwd4qGssCQaQegNtva97t3p9a6g1HOonuzeA_SsOY9r3aun8Bz3XDnG5qe57bdMIhbBkO0kEeQvG21uplLjGuOGB5kLtBptKKOuFCukGMS__9rmYRINNd-yXYotP3zIrRVEt3ygT-uJMDF6uTJCfsVKHm63-Nv5GHdMUepEdwaA6d3fas0sma91hY2a__SuPLRKI-zF2LDrjdZna1cbtMKtqBmFWQpB2OLbwh9FsDcDVZExVZkCxYqtCNV7J83qA_G6i6luidOMz1FEczMqQGLUc20MUQW0PO_woqTYjuviJeH6Dybbl0D_OIZBLFHiYIBDIB75NtMXq1kL55rcwSIWRlJTqVbVOGmDgf52moeKs77DMFJZekYEJhWYfdKWZqrC1SlxqrcSNEjx0zhDKgkTo9OnNwbe24hQmJyLlinRocBXtcFvpo92J18tjkeALQYlp4scDVDrbwzZcTJxNhj5jpIEy1mcESdY73nv502OIzkwdFFvNocI7V1uwp3QbBeVyofKBSQk1ABHcUS62MAAvBvGt6W6nno0IOFwtOXQJeXYvj-h3Jw5ovAZscMurUjEjL19c7AUdXvCPJVSIm6gH1nQWjOvnsZRI0SkJ_B5EArG9G_k8bCtD4gwNQmvLqMwYT-UTvFCqxwWAmkYR4vmOkZjHqbRKpvRZhBffo-Rz15ns1UFg2Gah7yAAyFVaUkkpYh0BWBb3jrLalS58PJEBdWR8ZvfboWbZf6iHxvblgA-MZ4C6xV3po9-i6EehxA4etcJv2j2H3p0x3Y9Qf1qzV3DokK_NPB2qJxIc10_TxRzyUiuLax4En3v89Y9Q8ko8ZpBCyEaxILRp33-2LR4ZHqje5k-NCf3XCdKbwfxsR0t3KbtdrQU1HnBpWJPyB-5A1yAUxqYd1ycBqmHBfFzoGEcBpO4Vzu1Wc5ScEqGXxFyxPKIbAntkVIv2ycA_WaPcMP0YCtjpjK7K63SUZ9MeSpqx5CVPk_lqcfuQrCzmXs6kFTMh0N7hxQfyxbl-GjJ5ZYvrOP75RKCRGhjHeSjnFt9toFiNSjh1uPBkMpRqVKnaTkW7qI7z0FB_6OToE1da3CnDbh3UtZiFzUAo6wh3tiAiLhjMdzb_vJJ3D10uEcN2ZmXnMjqfIaPYEmfgJU-TkZ8FLmj6yGGKVOymDlq-HAVjrQuRThpGpXQFlilRhLoVQCbGIrUnH12AP-Gxhf3MAali1rTtUbe44vdAs_j1RZJ0m6IJ9ZrmF2Cd0lAljrpgOO6bxGmAwG8uMT6eJ-_mYIyJFqBgSa5T_-e-qBkTEuziEQnH2Gvyg4_RdYCBsegOLe6C2i9zyGL-LC1_MyDHuDo1BvqQSOvzoOnBq0AOmLQOQx7-4kDIS60ypNmLmBelocaEeSE92Vg7_SWscdIsRnT4k4n3TGpjZKCMQ5O15OHJ6l5mBYYJOk_A6noLYFCTvUi7fNk40dVX8H5GRuNWMrE87YEH9S6_NA86I7IMJ8THj5Tw8xOx88q2nxiH0D9DxgI1CoFzqJ9AkRUbh5p_xto-UzL6iS4G46ZWHAR3C9Wogtgo_RrVPyvpNLGL_ohkKCgI1gHAcMXQq0nN0DpcOACRMpjH4G1iCmFO1ou0TbSpcdnf3ea9SSdJl5_628-38bO_GY7rCp7coqf21mnZdMlvFdddaXlbrVtf19vd1nOp1gW3ppBYVcc5xMjnPZ7lL2XZ7mD4w6SnGviTVMsjjaMKcPeT71ewC40nTEss4NIW4Wlh0_9eyHdpP-hJ_5gAAZ5AV4wNRwU0FJNCErjQ-oY0t4p9G1n8mDkPR2VNIyyDcqVvwqbflhaa8bGrZ_YqEXhNJdMN9gcgqPXflSeris4G621vYcIDMpRkOLGlTBk6ZTBruvOt5Fb930ewEd3xuocPwzlQ2qsumcgKdAq6Z0h8tZX8V5lJzeEDawJgWDjTCeRD3o8YmowrjNWP-ZGmBalVXeL1OKW_az3qbhijjFySeZBycOCrsEfawYz4mVhoHkVab6ao0mY72TDa1JNleZkhO42DfnTTYUdSnXpvnaxP-y06RivdI2HdfInxzN58qyVUK3iaK1xsX3DDSDuA-hmiG-BydGCAdHZJK-hUiWVSUTPVawKQbh9cH9hrXL6OdVBFuZ1Ycibp2RPHY8aYsRhwtDJa2Vhh6D4VGXTgcX0z8OQVGP5uifxYKUja8Zs-ln9kdD8XgaXfP3U5HbysTL5NHm5fUC4uddIs8OKWoLfcdEYlZ9RBDlitPVbXYY1geQJbBFU6cg0uKgeMmjBi7_bGkoo-Om_XmwYODuMhrx21YTyDqwc-t3kBkdkD922eyw6l-_CBT5Eb9-CbFHHyrTeq0t5vIYNpwoUHJU0JjjxN2OuwMnkj_7VAxiDsIT6Pjr4NmRg2xw7wL31RZonY6hqEzfUIxmxtEhZP3smbs73SjFuX48sGwQWH6AwS5kYSdNMYUaR6JIREeXW1ko8Tth5Qejp4AcEJhOgVKyDKWlPa78JqqSXQ14COkDDYxX5wizTiWQ1m1GE1gIhBsp70iFuNPCVoRNwASwjKwDj62yGJLqi7g5erB8B9TIyLyh-jsz1_bp4dt2v23WdkjD0OBzS9D4KMzJpJsg81GVjGmipbgbf2fFcUEyl5fUMzn1iz9luzg6Ebx5mUn9dcPOa2u_BurgRxIu20ZpN8BV6P5f3TJL5eEOU77inYx5gthrQv8bx5XP2iagPFHPtfKm0LG9WFMmcDZGk3avtCE__R9dxaRC4Ov8lgnagGNtoJdf45szYh5cZRMiFqO2dxwGvVi1rc_EiSoOa3bQLDVQ7Bx8t81ORpvbxegycjvIkD78_I8AljUlP5dTqt7OU3laWRNGEd77KlwF7rq7BGax7qhFD2BUR4IN6HxzCAazwddBg0q1Lrg4eNf-AEAPWwbF-eyLGT3KraCnSW47OxMPObYcjjAj4VRK3txFXzhYsRnaCuRYJq9csKrh579Lie16T4VgJMNJsg18q5Pbirqb4O7elX6PMIMfY8hYsA2DIRwV8np97MKFXNbHVi-eTg7cQ_6APSBisA25x4G5xdk3SSxu0z7lXHaFClcT-cXMt_IltqQ4JbeqWDfyHb51_4kQ-3Mx8Hf1Q0IMPhabzTltAS4wghTt7ZbfcpbqYSIwdJLmdVxIwUURddek_-aePVnsMxFwQCVMLk4wKqmMyBnnAhSAlB--hlA-BwEqSz_dXQmswNMUls2DsHId3YON5QbB6M4swpttgjE9cuY9yll9knhjQyEi6ao7UwwoAekozjabasQGmV-BLm0DmCmcKyUpFdPjGlZ8bjXKhHmDK3yYuik5x7ErOo_3Pknirtw2uT3mjHEjIafSyADnA-7PL6vTl05-90YkX22JOxc04ssSB7ECc_gdE_oUg_RFZ0csDiq15cJfsRghaEhai-KtIIIfetW1t9sS1kH7eGYXWcy80ZacJaLFWfjDk1DkIJC6w8mSmwv0GhW1-SXgE-SQjDDblMZUZaqv1tCzH7Y59xM25H6Mle8jq7Ru6q6JUztWUzcw7DBKIRO-I903BRq9bmw66XYNDXWD0LvEtuiaX8xo0j6rkksR3dzvAeZWy-e6VctXMs6aE-KimxcNvA--kB4mbnT2jTvGqvDD6wY3-FQbVW2iiMRwsqkWk19TAsfZPLPWyIgCnxbC4Y0gHatB3_mpLU67ajwjLFrTYGzYv_hQ54aodhP7_hqu21XAuv8ZQQdfzUwTvFyUMmbljIFABdLLely4hqTJ8kfiuN1pWo43-Zn8K_mSzQA-edQetZOrf7edRLtk2G89VRAYd1s6c7TKp-JXdaxX3-_zi-pw-RZmRptdkVaCQyJnwP9FuGrrhmywHcSjW2Hfcgt1HeekjV0jbAbZ5A041wuEM9CIAuO7lCxi8rxMoOl8vlipJNGLi73J0tOkpl-9-LLX0uxq6W_VwDtgsurQ9z2d5PzMhMgFeJpSHxPhm0qNeeX4w3BMDHBc1-WQ-vMnJ66rWiEqX496Lb7J2lbXAgwVNCHtyig6ngJTG1Q0XmCGaoALw_sd2dpeX8w4QMFZ82QvTtPXN-LigL4hYSXoPGjur3t59fRLtwRO1VCUTQoK-l6_RvOFUnYcwRQS_p2_O_mTm70dKJEyVXw8X5qI7u4mRCHaDnFLPj1YCv6zU5-8iccp4eQopAN8OMrTPCnB1iIRe48VqwHeSsnV_EDeYZtCgB2283WCnlCHT7Tc72AgTFVsj-hZQIsVfKszJJWxNMmO3tO1C-HFOhmQNuT7jI0jQLZnwhVk5IUoixSjBHt0iJO-ZVTuE_QX0rZazLeqSg9iTO6-4kCuPKL3EriesdcZd-E-4bl76ShSR1CKnIDLjFiTRHVr7jimu1ceNRSschGf7jZmx3GV6q2pgC6UjfNff3JxffnSnIdzINpKq1gi-22pI3M6g9PkKLxuWVqppm6L_8D3P9e_N46_iMin7c77081d69aHloVaQQsO5TGFwLMH-ARL5kIAUvSVwQx-tIY9PqiIJwuY5pEKdHkyNE6mSeDCRwPT69LNACUSxIFQdDwZwvHRCB2IuUJnozB8oekSPvgMhO3aCo5f3rx8X9VtwPa32yOA0q3vIFyU2dDL13f_As1d1bEAi66xOSIKoCbqFTD3_LkDuqoIV_Ay5XxND-icrbTXEGymBqCL7IuLjs-FxTJw_NIMiusATOvDolHZGfZMxFvByppiIa-wzy1U72scRSWrivj87J1tfOplljRlwfVCBZcgYlbIfUALTCbrjP1zsorLv0eMyQc_fHQdUmTv-_IcURRHbNrWJpkOol3WfB-BRz_LS13attpPenTwrW7gR-IlxXywgAJ5BCAPlhIq9bC_zzqZdXFO4Co2Tx9UGt-bi02R4BRwi8tZevaCrcRv8NmW6pLhcgH240StB0dSZnYm29afsyrW5Vcu7fgX4GYhr_jBbv70kVayYIIy5jaOCJMRM_hD0SUkJGdDgI6TySnSCotXGpBEMJ2Zh0F72i0Of65pSYl2UwxO0yV2EalVn8fsbrgyAZ4f6bioyJSX5B-Z2bv4dKNDAEGVQJXSjp7wev8nDG2v6GxVUaJtF85XGw6Jm7NLPp9Pq7sS6OjZCf1QeGVGo2KQKOMHWi657oM8A0LtvfhKyHbCSEow3KCAg_BGQXWH5kSC9dcg-G9fYPsKr7TnYVssA2EQcM0UNv-64MlmSxOvqvATFKAa77igprGpAlu5khdlpWvv00O54b4mM7MrwdJ-NAVb0Uo1XoIXdRL72KZdZWPe4Ddvd2gF_jRxvx3LDxrVyiBqgD3Pdm-C7Koa5z7WE4R3ckAqtSjAw3neCsBQ0pZFDTOGOgcvrPmanEyAlqNrKJtZy2QmO3JxDj6-RqR41KkjUIDjFe3SoPtFW9zJlUALIrfzbcvAnVAhK-pAN3OPFtwYnbE5c76qBS41Yy7lZK5ymxkbVkckXlx7a8IidE_CJlmwk1VMgHet0j-DyQS0lj0YG6zkhSv9Ag6kcAHi5gnt7heHNUVypY4dsiOMa7xR4AOm8IsDnT4j5AxcCOXe48sCmY-iCSQVwV6DZIOEqdCE6yzMPkVRHrckQuXMGHUZdx4ftLOlxnXdM1kdnP3ZUp2WGyemkeK8YDa6NUwMHr8cFvYPGTGZ5TSvC9re_9cYsoqKOhT5str07ysGN2a0AEMDOta_7LEoNjhyw_E-riJGnpYkMAL5aOD3yEcF5yexkg3g1_gX-7QAfdBXWOuuY55J1K5U7HqWUna8rSFHTSXNFJJAt9WHCsWSgh5xoEbu8VCyxjVLRm-tO3KIB0u2AVwV3Eg9jtNDZVeJ8LgQ8v6hgnwtB9N7MyXjVaBf87BhkqK7klllV0uhaLhHtJ01eABXa-D0b9QMSP228ubmCk0so-pWOLoD3kLcAhsPG5HK1Ym5C0euqEImAcCvc8jJdhMyPu99JOapaSd_4RchP_SAH9BftLQrEjuv3zTsNdgX_jxqXSizSKZjMRvpMN9gUjz_D53uaB-NYtalkeVvbRLM45c5pI2RaX32PmxBo1kcxKwaYATFXxtJ4sruKv9ALBzmwzhosk-k4Ppin5Co_did5lAvgtXq32w6nQqXFIH_m1YZpXJ-YsRwzl5YWbEm3SzGKvfysYSQmjR751MGpXwODT6fQkkva3foa0x43PdW09Ni7pf0eUjlpxXcTe3lkwvOXF5iM7h0waVmvQzBpUREiajJ1yLM-QKEva-9fjbzNOLxKlpt8aERVA1-KkwsHTNlLa0alMfxo8AzpnW25Sn9XOQC1FSXulKshqG3bgpjqmOrTPcz1GNHxHiJl-ywjyPzpBR7jVe-nIR-tnaTomjgdiEbAuxb4T4JwbqDPBdWnyM6j3-7lQdaqWjLHMsxq5WFQ89cV_2PUSG-Trp-A6t_VWuf7xq8w9GdlzCFezJl0nD5Vh9o8NgewngcuitgQRdTpJ1nHu14vLIObWsd_fMCrvTjmk9gwzqJH2WyrSsk73DezmR6LhHeeHyBSkto5qTLIlEF191h_iW9-UzkrnbkG0HIsfzGgPfdFI5Hzka_C8Vs5Vjo9dUepYZQ3QZyQvzmHXC7wIWmB6i_QaPRvAcQKY1C_l88vgcJjJyldVu2jjCNWgdnXF06Ltq3ZvUkT9Ry0VWY7r-rgibcfpNqIOdTH4UDaCT6GtO_v5aQUQA4k8GQEd2Q7Bd46GopCuaYJGPyoCB2UXkcCQJeZTiyQdDsDk6q9Zagrqk_j5GKXwV5NzCnHHJbwDH6BXrHpE_WiYFGQ5SIs8VgJJFWs9RtUdY4WFiird9GcQratEqIGoILf1h4ku9bbhjnsrRZX3Xkag-JnfZLn91gr1JfK8dyLy5tdva-Edyc3XQHRwF-yHLuowg-VTZXFH22ZPtBXpfaWZGOt5UmfJzlC4EvSSz4iGYXS7HkSyZuAgblclERzOgG1-lmFTWSGutN0lJM-hWUe8IUdomO5bKf4zc0l-Ag81mRvI2N_gYQsKV_uXbPWN5sFuar_P1s7hFZbMDJ554S9wytBNtHYpl--_FJ7kchHUQheE6n84y0kOTC3pscZHz6zstyFoJb9e8v_HCtgRJ-lnpxtijVX2XwSBA3OCzwyHNyoFk1E9EFgH55cXcT56PvmVNyaih__G_ZgR2SfFgu5VN-Gf7l4MElrYb0Ft_TJj56aGORYDkzENjvf8r2_Pt1BPaW-Msrj2pmRwHEGLmtLAv3JoRXj0UO5R3lSkAYK1ytUvMUKCDSxd9KdNfeXMKi-1PgyS6tQ08Z1LxJYmMiti7-Gcn-CV01Ej50aw1Ts-G5n_1qg0xls6ceIbZM5Ekzov5zBznx_42apstcyvjU12b4AsV3bZn4ksQ6czuitCrndLbGcuzlyyoVkiI5KTWfTQK6i3Y9qAus5OiSGpQOrbW0S1lsR8DrLf4NDYSBinuWHft9njuOmsWJJ532oLsjeSGTC4ffuQsVGAhUIX9CuzX-thtGWrdAtP21iie36TK9IxaisKm2nUrF_hjfrT501MpHXCtX-nvZBViNxMfnCwxps1ceftqSDWWc5kLRhsp1T2jM9fHpHDjKdBzBDZ1Pzd3fL3AGyb34c9I7-W_j3aMHoF2sSI7c6JinlRfFNxL8Gds6buvyOKnYuNy0uhFjEjcLGiaf4fhfDHBG6ElHOXK8B7gNlXfb8WLVWoS5cdtazNwf90rwsDkEUEyBP87jnfe6YkLXVK1VU8QiXXbjaIR4BLWepBY21JLfY86kXoLPbpgR1CnrYh6vzOixE7NTMsGSP5LteWhs91FUGHZKozKbLWGN7rwlDlzm6VGOYD03AwdDjapqEbmKccnnqtXO6_7ksNpYcY4-l-7MzxZekh6nxF4RQw_xdl0slgG7g1ehDIP7VG3dRLk_QRwt1e1LZK8nMJxMsG1Zr6eKr99Lm0ZUKvwcQjbAEbJNKtssKP19J495rw-2d8qlTJnNzeHpNHMqBvWrGMal2KVrSMmDaioR4rpKRA68_qpNe9pdfIG3P8hC2rKecFutR4kn-7WrhYpOPLXITwSPBYm-kQvx4DvTPBVBACxqi5N7PqtWMwym2vZIDTh-9oMr6J7JlTQKwczdte3cIJf7OJKhG89TpJtbq9beIiDqC_0BqibM5ZMyzgLyXD1SoNn8iqm-KUBbSRd4ul5GzuK7qKUN_ZocEeVbuUe8rFGzUrOPH1KObnobaBe413Zuk-1hLfZbgcDvyqNta-_pPxIOT3csKLUkiMbsU29E8omg_KSG31TCD5tJJFQD5144fbOrBoUZu92gmEil7rn-XQJJSewryAfdJ57RhJIrIFOdeV-NWXVFttA6PH1C8s6LgYffcHln8OHDwRskraeiW0T3HCs5bugq2-TasCjzecLnekfb04Uxm4GRJqltq0wdTUtGJRR7Gp9LAoqzB5B3Wt8Lu50rhB4pdzx45ExCsPuy9P51Ibfq7qs1KrS5js_WYleqVPfAbXJROCMZola3GSWLSuWqDB4vM1-OM-fJyQYs6BIdIRGdzZrlEhjpltck1ms8Q9GFa8JIajlw83Wj1I822ts7oaTdHO6GWjeeMx19GygXyQWhdFljuXOuyg69jNnviC5kodf4VMZhqk7iSIZJrw4dy5X338FFh8SRG7aLicp_0F6_shdA34XT5YcEA9sicT39wE90Gk2sIxnfcRkIHGPeb2H4fJ0cnpH3qrIJ_VlO9lNporA4lA2jcyJUGr9Xz4gWnog7bGy4E45y6UN53hc_yMUAwsn7EWT1wfgz6cCM508XkORCygzJR-Hc0BWG-_LFbPnofeXh74_1twEWppy5J0TYn2BAdw_7jKm7ODmVoJaYD4cvG9VRDlFE0gNITFMPiOug_m7Jen9bwBqPtTl6uwg8yegL0bqk9AVA90ys4yObmovcnX1TXpQEoKse6IvuepY16rV0HueAxpMep59UoMXBdz1ymrO8u2qrhVsrUZrLzBe_ZBTh8ZGkzs6A1GLzDN89txkml8qEEDN7gP1bgWfTJKHfVvht02qqBrTHlJTIOhwJ1QSfATrhbK0wGPmio_znoiY1QWW_10dtlRmF0FarUAQcdKLXuDFC7VLi9iER9-uY67cIYOserbE03kKZSYEoCg7Exd0rBomiEwu4EZtHS_k4W1RQu4ctY6We95S-BFQYTSO4EVjYh2SVHpAXG0Mr4JuRYQ2JjGv_Iy-j7pb1vwg0Z_R9lXLXIv2d0LdjHP4IsN4nF8vX7_CdcHL2ugz6i5MrDVObTsQP0rISysoYOwnkpkAwZDKVOCXWpwwt9_sANK6kiMHwu7WqX4mzTQnqGYKXSmGpKAMY9eaqJsdhBQ-l-9bUOsoeRu8-srxQtBlyTy7SQvM7NZJknFOcbp5c4P28eIdlVrvxaP3F7iSDw9jrqH8gNG2iJr6zEfYZ2LpQ_dj9EaqAlrwXo71UKeN6PEMMXW8i4qDbMR3kB4dKUXA7WAxrPyuMRtFo3eg7RW4lKSk4Iv_bddN7nK8zZI3azkRL0u0-AjYsSwotCgXWk8kZQtJOuTbOjWwHxgvSB5gca68xKGddHurFcTafBvt_12mTW8Bb6uH2bWr2Oac9bm0WvBVVCuzG-bgPIr9dIydc181Up0I3DQxrdrufyCxuj7t7qFCNKlLKpF-ryyU3TwqcGHSm42BWxs0FdXzGmxYaJokd6yDmvGoLqxvPeCRLfq_ebHoOw_36R5v-YeSDV-CeseEsIEiSLqF6KzBi2XSSZ3iEXf1fPV_5lDyYj-cFErZ8_IrPFRy6vN9yN-hWzbq8sNBSDvUv78wcQ-KH6BnWOyRLQsdRjAv_35w7qqDwejAz3npj5_-CZui7Nibo0OkYAh1GfXNU_nh6lvhTBGv_X7u3zC_8Wca1g3m8jdsNAvzlFEPCbPhpPUrOUkEMYWTIYC7oo7d_iZmI9ZM82RobZkuOsPwo8Apm_xl-ejU5X3oSbfnhvoQbSarXhbdl8VA1x9AcPkWVZTrRzdhtCd0Ze48z-A6QZQE646Cy4Ey3sVeWrBgfkwvpXM8tZgFXW_BY4aLdNKn_FMWClGk8_xXRj-i779ay6RVUVMs5LBYWCLeBRWpxAMVD4jk8gyDllB0EAjjveGCXId7jqr-g30jkcZCqrfPufxv79JiqtGfo8Yv2SUj_2Qh6SV_qBcjzvHx21ZCBcdBBgH2n58L2lreCteJGd5xhxWbzqg1a7uN3n_wuRnFyrp-axwzAKgvkbj4qtF0fwBxPrlB40BS1xCsOZW_7UiJ0jFUDcwZHIq2cXtZqVFCrRfUeFN9cqdhaF9UvQ70z0agRcbch1ljxE6a6rSBw-xZYWdKpQIQiPIkdrpZGL9aHEXHKat4dEcyVMz_yZ16fCVvvSw5-mZviMEXUTsyYaaWA6B4_XSjcuMqBGqMbPN_HZlESkIddWTJoIZIAjPC5Y-fMx0sHwovbRmrRrfslDbPweBOFjlQZ1YymXH4QfNS_048dBEteLzEZGwPgyhMgIKe7smVT0Xmlf4boOPzjLhYJuQRVN8u3JoyM-O7YyVu0A2_kus5v49BiNC4xrgWHwErKK51xwkkcL651uh1JoMNHMrIQj01No8ccblzqni0bT1x1_5x_ciHc7_hxYaCrtONUxV4ekTdWdhN5yEAhyKRpGZrlN48CjDTr131Oo2UAtjGbBCFNOQzIPpBn_sedaEJnBH4WS3D3rLKqXPfFOCxBCMRxjdvTPBYIBol4mKKYgGUsrmD-vnX7tx5YlDwbyZmD-qNvKl8tPVv_S2T8xH6X_3DpItDPDNPFa4WluOdn9r87rg6OHargHSG3pLcvK1CFpTjm8yxcwLlWjczIjsNfgUcGcVrz4Ie0lt301D6H6hBWVgul8uBt5kusBrdwlBDwsUyhrSTAOao2uidVMERJx_ct4NkuS-fb9wvg10lNm24R7mOsahxrmQUGky0k2oJM0fbRXiHf0ZmKFGmTYn-3GwY2FNAD03n90FKJhTz01SFdcHJdfQo4WbRT4CBan1sX0Eo_ozgsG3mAVwteUJrDRByaonBhPlINEZQJ9WOV9qqUWk_h49wWlbPP8UeSFE28VQvhs4Kih1-j6OQ_ZD3D2VhCjFcaAQyPv0HE1EmAHos6emWL80RtWx4NnqHesSFOSvVj3wwIAo88VnNfgzG5Ey8q4AuAuo-BUrKfH8SMAVQVunFyz0zlOvyMY_Z5hi8jMzLy1XTWlgUoCiBCkhnard5F8UbHfvJFtlYF-3uviqirZLrfUQBPxEyChGcgVO3dzUN8UflwvBdnnkCX0RVs2NucsTYdlnVj1spkb1X8GqKf8idXRVnldg47ewaRgCTuR-5Sc3_jcqnQo5GQPiRv-dVn1Fi_LRJatOX7rZBdTdWZMc3yTcCRDz0ye0nZBErU2Df6VE_wIC85JAZUEqKioLFxG7CeTX3RIQtZYd6SCQJY4rtIosxh5z7t5uzhTfeM2eTblIC9i_h1FkOdruVEid2x_hgUhi2YF2YpKH5llVAC532Hd8qn2a-Vy-hdzHydnp_rQYahsQQ5M8RcYNPqnvfQSRdJ51wqfRI_FBPjCbvGbWc1Ub16j1l_16ubN9s3OKI7NX3Lto63Hi0qLOmpfAJ6XIE_bYDKE_ldwUgXRyUdEhBYUiZupYHRhMvmIgAybIrZTBMOAo993NJW6JR1vvfTRLzYotqkVFKVOQ4rqrRFm7n_8gyBCyo26W8hvVjFdYK4h7h3g3MYGM9rWxY628f2eApGAaNevcVIHRHS6gabylBfON18y9WqOUTscWH5zTYBbXamsP1ZIKTYvhjQz4Pd5GJkygFYDguCuJgHvSNghQsolRD_1aXXq3yp7bOvRJdt5wJwosfhqIP2dV0G_HZOWjTth43o7C2_5mmQ6yykGR7re8_m-afUVXD_7uAvaDXyirfPlSdB4F63FFAt9QP3_mEeSvGtj0eJhlkPCHIdVyI5jMK3z2AhuOwefQLprkJbFwcYkLhaLkS2tW319sU46AUL6kIXHsTbEGMIL88aV7dsMV31db-KDXK8FJHGS-0V25Sx3PsEcDv38m3JqXtiRhAWJh07xVulyTejvlqd8VCehISN7Fz3ex-HntndrnMaqLjR_PkkZOjfOgmUdyD-PYJDFy-NvTgGREh5Ytjmy77WfSeZ40y2NWBi6CzlrV0xq-DYdp_X_91bB4PohNOD4EHmQlThUCCJtOgnUxRtcuNRM5Y8c35OQLtqHydfvHNysc_Tf0rvlG4NG07VZuWi46CQnOmlN1cU0_g5HlvwF40eGbdNbCpXRgrp7VN1vMCVW1nINpgROObQQNNzH31zJViKnvNcXpprBm7hVVR1efvgWXf2CScYtM4SDBYuV48qkdMBWjEX4bisDjgiT6-uR4ca3SVcE3ip6b8U0sGzyJFQ3OLyS-B9Nhu4wcBZ32apGth1eGNodasw_6Gq_WfAO0aS9-ukOOzEwUAJ-_bJdcsFbLrpFJLdD3MyQlKgMgv_WJCYjC43gcfooAig3nVk7NsQSXVzxD2aCLW1iLGKlDm9alqroPPpO-jIoj8XQ83lI6LJXxdJ63AKtSr6xjMwrqFjcNE9j9RLHQSg58xujkjlvmKFaxCq2XDv7TZi34LTjsZWdMVfW_nC8QX_fkOEDmDblMWn-JnbqR6E2bJmkeOb4fc46lDf0EJ6UjaQ-jQ5_N11l4-jX89bfKLzkDkG--nFDPZwS3Yw5lUljc5nlFutFQpXbDu4sl2F4R3_BAZGKgOgmSycVsJfmTLIhT1HprdrLeOQnkfZ15M5Yn-wrFESg57ycHEtalvIF6fjme4x89kMKTvYIQkybZqLCluTWPbbxA7xs4oE-cWtcC6wVdBgnI6GwaIk2KtQZhEqkSHZXuNy9jIw7w_YaIFtd25zmCfyO5R0AkpXOlGvCApgx0tkwq56IYpGEYnjdLUICVb5lqafKxgL2KTJcVmhsSJlx5zYoJyfAi_RkQB-MXJ8lz2JuYFAU-XxY40J0dRbsVrIKyjJdalOQqLSKEjgUStR8616azU1W3hPlbF5hl86IorGTlRXcFN7ARz_4vPM3MTnHP4caNv1ZHDAhosNZL01n2mXqhaYeuLDJ__mIuY8YDUUqrV4cpCvH7QO8m7R2DAnt1Pj5UBlIJp5eEm7G7GpnhPs5yd4R_O1jq1jcDOqOfyEXAgS6PvClpBfvVFXdSVxWmvrvn5yAka30VUjP9by65V1DTWy1Lztb0XxAzsT-prKExVpmwa6zlCE_E1oxFlo4Z55TrL3Bbf3oofs7M8ZWer2hLWVrmy8CQNxvKEoZOTquNmrO8vWCie-dlPu-X-lGSfDqeZkppwBcpBAQxmsmi8jThUN4Yvxz1vcFVrd4yuZ5KZNkHJBJ_zBycdYPAg3vCnIfJimtUPUD1R0LAoeAaAmjmAzAKwGQmktx8ZYafNHb4goNdOVf_9hrONaYAEs5g8tsN_SvduF7AMyZ9sHeY1n3SqYxwSa0IER53O1r3_Zdy2NunNLgDCQMLEU3GLZ6FhqoGzx0tOgNVtUhz57xINh24EJmz7Bv35oza5DRI26Y32PJCGJ0dwEhIWcsdnQgkLX9iYPIJqIUnjqW7U8P7NHOYDCkGh7YrQR5USWa7Z2w8aUtkdQICaAqyPPnCiM6ab0Xg9at_oI7VNb8huOXcOdk9ihTSPXzZszq3yMxR5cGtu_55GBxvoTYSricSo8asYcNLdO7xgD-Y8PaU-Y0jYaqjjeQSvf95GviUg6cd67_gc7i3RqdQdDjei1CM7eYKjX_2JmwQzXXJfIvhA8DS5Y1o2XwgyrjjgwviHysVFiajKFeHwDE8c9FM_35MpyRFjeOY9c2weyRioMYGmsZ2KITve2SP9vxexCldVmyVj4tSOWkmmx-l--cWQBiZ0EOULtmW3AfWx_s-jJolrk6qaKRfjTET9v7FcwOrW1C7j_Nx6EtAWRleCOzXF9LQNq8Qclge5HzVoTs-Bvf3BCnP0ePlSsAQiSXejd4-ME-mrH5Pvfo6F6toIrEaBFukRYCs7QKAvJQksjrt12hj5y_l9WmMXRzK6IRK1ml8C0pjUxlwaVWJWDhTJA8eRlQI68n8T9RJTEPqSPm7_3EF2pSqX21c1GRF0SVtpjvnczj_cloXucpjsf_OxJv-A8_nw0lDh-onCTvYX1i9AeUXGQwa3ZFgvCaXxvzbAVdcjduJV3TqumihD2rww3ptRfjzQUpafNZe3fWWo8aM-P3kuYaE7p3YrKCDUTABuePzvqaloRTuoFkN1yCD6d7yJEX9H-h3jhAsB1wYLoax7ymnmVl_kEa3Zy0AyTwX9nm17v739n10rTX8uiZyPzqyVJZkc5K0b6TUWkfHmErJ__dSlSTiP_-1Tsd3Lps1hAekRhoe1Tw1_O4ivY3niPcKrWB-0oyZGJpyBWXs9lcyr1sC8eBp_62WK78oN85mAnA2VQFknKVGIIu16OJ9FcXDREpLzF9JBDpnHsfGYLan6PdKDSDen2KbRQcd4T5yT9JLwXDPcuStCaFo7WxlwewbE15YJDcQKXDx5-1w74mLqGwZ0aIcd7HEUHKOwwU2qgmd2Lj4v9wypwLQAa2B2KSCJOr17xrw2EqDy3HQ_1DI9vQfKxHyoVCBsayW3eIVfyUuaz4WgHqds7C6484N5UvjON9xW5d2bnIrXUd6vxhm9D0IvqnYNHIUT-6_gRKk3lBT73eKQQfMMUt_WPwJY-JZ4YTsdr3TQsqJraLMFigp3-M-1Tpsuy5K1CaT3n044jm95r7QPVaf_DukFv6SCgH-U9k_1O6ZSm2sOhYGbnWxLMXH4KgKZkKMRvP5LoNV-SizxB7_LhNCL7SvcSZ5ad_N0BPYQI2TtdVmYukPiD7exFqTV9vjRMN4H63-Q1aVD6HiRwqznoB2yaF7PLENNq0WH31L1B2IATqMTQobkbcU_GBBZIFk6dU5R81zR4_cZh73ApbrBAbXjDLoSo-V5ca_o0ATQogJ0SQGiDszy2C71gUZZCWFPG0PUw1Cg_u38DpaTnXwaORX9EkfJOgaCCH3s45VrCx8MzlDlTtGSWxzMPSGWckYjY0V2JZDZkauP5jGr40FPlSM2eOOsuvL0fLRRUCdi19VJLXvh_5VqQwVIsFDCo7DpofsWmiZF0B1UeLPwyHpqPBt6iOn34kAJ13HaIArckv414daX2Y6PMoSSMorebQOvROfUr9pSL0zcASDl5TSZbDsSqERnGzP6o-RnUIbXsBCw9syAq1B4cV_eF2VAW-Rplj3LDmiDw2ujedluwvrZkbx3JQK0hE8q7ZZvUNpRBwXKUkCpkZyP9LMBfYCUro77qHhkawXGI37M2CPhzdN7ov_FbiaeRDQt9zFfiSfWgIj3Ehcj4e9EU7SkqSTHGoaLtsLl_kLOpIPvwgGOzAsego0dnmUEPxnRcj0jld6fym8XjWVaF6iuNb-qouRy9H4fPyQBHYa_2bE0GiGEU9TcObfaXXX1h-QR_z0SWPsE6EYSLbiKRHets7g80Q6ogfRvsKD3P8S6wQu5Qn5EbBpY5ZMxQ2u768vQq5aXaXQqXHTW--BNP6xrXVlZBXaQi8nOj4GjQpmzEfycEr1U2JtkNdkxzxKJJEkbSoQVotWk_s06qHJictEk1JzqMpDgpGI-27DZ8RbWO3zAQ8fvTA0oVNgCv1dZNY_S3BpqVrOK7TBC1OuCqIIbFeFnQ6zNjcbg3dVnW1zZovzbXllCWGTS8ZOIpTNBLR5AE1QF8B8bchwYOqvd6Nb7SQtwCylsaPBtZxq1JtHkaAgAM3vipyTMECakEqqf2Jc0PfIu24UqhAzzhxx9Y54Gw6sZ2dlCS8UeTOwFVmIMXxBAE-lyodbhkDHLzEUhsBbbcoXkRDs3BKUk7o5FGOd4jQjNwjZN1oPx_ZPZSEXPeKcesCBkK7DR15hfGX49KUVpc_qUVJwaAYDA8bqkzu2k7H7hXkZ9MDHt40e_AlGHisiHOurfPoxgzzhqtPDPBNzcEqJ4Lg52rY4R6VWAm3qIFAKhdfVQ4skyrNNTGsWi4JV3_q7lQFNc3-2ScaO2HOb5MUTlnKcrLUDT5vJfa6f264YzK-lTJ2u9soh1F6a-TnieSEkXGy9y6Y8eLw4RqvHjrw2oAwoMp1rtqhicYEAPIyKoEg1BhMjWr1tp3FfnqPhM73cpfxmNYKIwrT6ShjRamyW6L8IuYNRf1jHX492uoCEK4IdUtEZwK9Bqxe3zy28fhBMHBZQnLv9OSQuCUr016MW3lDlDt2nndsoPdThi0GL0R7SFaaT6bjXEk4tWYV5eSgoDtG9Zpwekao9Kf34TMatcWsrolQbTkuHNb--WwmeLweLGkOjDurHvlyhmyoWCAIM6STxv9ABjeWNipEuxuoNXPSE6hsN__c_tWoYqk9tjjlDLI5Oix-67xIB7EkiN9aKai0wC_jeqyMFAddU-gd6mXsjmNdbzFmyEshLqYyWU5XLtilA6CK3g9rav6zfAvmZQTcc18zgLj6EyGZqYUObvvXyvZQGLiEDZCkbsvfQZPmxYthKJgjij3dd52VglNEJQx4pd0yFyRp4QsiZ0iIQ8ph8B_qQckT1jHCYRbyfNu5iQ2Cr8AhBp8G96kGWcYlxVMzuNwwpFN4XOFnrLv7AEkCw";if(!e)return null;if(Ct&&Ct.sealed===e)return Ct;let t=null;try{t=ar.parse(JSON.parse(cn(e,cf)))}catch{t=null}return Ct={sealed:e,bundle:t},Ct}function dn(){let e=Po();if(!e?.bundle)return null;if(e.runtime===void 0){let t=Date.now();try{e.runtime=lr(e.bundle,{signedAt:t,fetchedAt:t})}catch{e.runtime=null}}return e.runtime}function ff(){let e=Po();return e?.bundle?(e.keys??=new Set(e.bundle.filters.map(t=>q(t.slug))),e.keys):null}function fn(e,t=!1){if(t||!e||e.length===0){let n=ff();return n?new Set(n):null}return new Set(e.map(n=>df.test(n)?n:q(n)))}var Do=null;function ur(e){Do=e}async function pf(e,t){let n=await Rs();if(n.size>0)return st(e,n.values(),t,n);let r=dn();return r?r.selectFor(e,"free",t?[...t]:void 0):null}var mf=/^(?:grep|rg|find|eslint|ruff|flake8|mypy|prettier|biome|black|stylelint)(?:\s|$)|^git\s+(?:diff|grep)\b/,gf=2048,hf=8192,yf=32*1024;function kf(e,t,n){let r=nn(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
|
-
`:"";return
|
|
73
|
+
`:"";return tn((s?r.slice(0,-1):r).split(`
|
|
74
74
|
`)).join(`
|
|
75
|
-
`)+s}async function
|
|
75
|
+
`)+s}async function cr(e,t,n,r={}){let s=Buffer.byteLength(t,"utf8"),{exitCode:o,yolo:i=!1,resolver:a,...l}=r,u=Je(fo(e.startsWith("bash-tool: ")?e.slice(11):e)),c=o!=null&&o!==0&&!(o===1&&mf.test(tr(u)??u)),d=lo(a??Do??pf),f=null;for(let I of po(e))if(f=await d(I,n),f)break;!f&&s>=gf&&!Qn.test(e)&&(f=await d(`bash-tool: ${e}`,n));let p=er(e.startsWith("bash-tool: ")?e.slice(11):e),m=f?.slug==="git-log"&&p!=null&&/^git\s+log(?:\s|$)/.test(Je(p)),x=o==null&&(m?/^(?:fatal|error):/im.test(ae(t)):uo(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(Je(p)),w=f?.transform==="smart-read"&&s<=16384&&(l.verbosity??"normal")==="normal"&&l.smartCode!==!0,O=f?.slug==="read-tool"&&s<
|
|
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<yf;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)&&Eo.test(u)){let I=Ro(t,l.verbosity??"normal"),re=I===null?s:Buffer.byteLength(I,"utf8");if(I!==null&&re<s)return{output:I,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=I=>{if(!i)return I.output!==t&&!I.droppedTail?{...I,droppedTail:t}:I;let re=I.filteredBytes>s||s>0&&I.output.length===0?t:I.output,kt=!I.debugBypass&&!f?.preserve_exact?sr(re,"minimal",I.filterId??""):re,rs=nr(kt)===kt?kt:nr(re);return{...I,output:rs,filteredBytes:Buffer.byteLength(rs,"utf8"),droppedTail:null}};if(f.slug==="tsc"&&!c&&!x&&!_o(e)){let I=xo(t);if(I!==null)return D({output:I,filterId:f.slug,rawBytes:s,filteredBytes:Buffer.byteLength(I,"utf8"),debugBypass:!1,droppedTail:null})}if(c||x){let I=i?nn(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?kf(t,f,l.verbosity):f.strip_ansi&&!f.preserve_exact?ae(t):t;!i&&l.verbosity==="minimal"&&f.transform!=="smart-read"&&(I=bo(I)),!i&&f.slug==="pytest"&&(l.verbosity==="compact"||l.verbosity==="minimal")&&/^={3,} test session starts ={3,}\r?$/m.test(I)&&/^={3,} FAILURES ={3,}\r?$/m.test(I)&&(I=I.replace(/^([=_])\1{2,} (.+?) \1{3,}(\r?)$/gm,"$2$3"));let re=!i&&!f.preserve_exact&&s>=hf?Zs(I.split(`
|
|
78
78
|
`)).join(`
|
|
79
|
-
`):
|
|
80
|
-
`,{mode:384}),
|
|
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=
|
|
79
|
+
`):I,kt=re.length<I.length;return D({output:re,filterId:f.slug,rawBytes:s,filteredBytes:Buffer.byteLength(re,"utf8"),debugBypass:!0,...kt?{droppedTail:t}:{}})}let{text:F,droppedTail:G}=Xn(t,f,i?{...l,verbosity:"minimal",...f.transform==="smart-read"?{smartCode:!0}:{}}:l),Te=!i&&!f.preserve_exact?sr(F,l.verbosity,f.slug):F,ns=Buffer.byteLength(Te,"utf8");return t.trim().length>0&&ns>=s?D({output:t,filterId:f.slug,rawBytes:s,filteredBytes:s,debugBypass:!1,droppedTail:null}):D({output:Te,filterId:f.slug,rawBytes:s,filteredBytes:ns,debugBypass:!1,droppedTail:G})}function at(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 bf(){let e=Number(process.env.TOKMIZER_OFFLINE_GRACE_MS);return Number.isFinite(e)&&e>0?e:6048e5}function Fo(e,t=Date.now()){let n=e.lastHeartbeatOkAt;if(typeof n=="number"&&t-n>bf())return!0;if(e.subEndsAt){let r=Date.parse(e.subEndsAt);if(Number.isFinite(r)&&t>r)return!0}return!1}function Lo(e,t=Date.now()){return e.plan}import{readFile as _f,writeFile as A0,mkdir as R0,chmod as $0,rm as C0,rename as O0,readdir as I0}from"node:fs/promises";import{join as xf}from"node:path";var wf="settings-cache.json",Mo=Et.parse({}),F0=Et.partial().extend({filters:Et.shape.filters.removeDefault().partial().optional()});async function lt(){let e=null;try{let t=JSON.parse(await _f(xf($(),wf),"utf8"));typeof t=="object"&&t!==null&&!Array.isArray(t)&&(e=t)}catch{}return e?Et.parse({...Mo,...e}):Mo}var Sf=[[/(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 Ot(e){let t=e;for(let[n,r]of Sf)t=t.replace(n,r);return t}var ge="[tkr: secret masked]",M0=[[/(-----BEGIN [A-Z0-9 ]*PRIVATE KEY-----)(?:\r?\n(?:[A-Za-z0-9+/=]{16,}|[A-Za-z-]+: [^\r\n]*|\r?(?=\n)))*(?:(?:\r?\n[A-Za-z0-9+/=]{1,15})?\r?\n-----END [A-Z0-9 ]*PRIVATE KEY-----)?/g,`$1${ge}`],[/(?<![A-Za-z0-9_])(gh[pousr])_[A-Za-z0-9]{36,255}(?![A-Za-z0-9])/g,`$1_${ge}`],[/(?<![A-Za-z0-9_])github_pat_[A-Za-z0-9_]{22,255}/g,`github_pat_${ge}`],[/(?<![A-Za-z0-9_])npm_[A-Za-z0-9]{36}(?![A-Za-z0-9])/g,`npm_${ge}`],[/(?<![A-Z0-9])(AKIA|ASIA)[A-Z0-9]{16}(?![A-Z0-9])/g,`$1${ge}`],[/(?<![A-Za-z0-9])(xox[abpors]-)[A-Za-z0-9-]{10,}/g,`$1${ge}`],[/(?<![A-Za-z0-9])((?:sk|rk)_live_)[A-Za-z0-9]{16,}/g,`$1${ge}`],[/(authorization["']?\s*[:=]\s*["']?bearer\s+)[A-Za-z0-9._~+/=-]{8,}/gi,`$1${ge}`],[/(?<![A-Za-z0-9+.-])([a-zA-Z][a-zA-Z0-9+.-]{0,31}:\/\/[^\s:/@]*:)[^\s@/]+(@[^\s@/]+)/g,`$1${ge}$2`]];import{join as zo}from"node:path";import{appendFileSync as Tf,chmodSync as Af,existsSync as Rf,mkdirSync as $f,readFileSync as rx,renameSync as sx,rmdirSync as ox,statSync as Cf,unlinkSync as ix,utimesSync as ax,writeFileSync as lx}from"node:fs";import{createHash as U0,randomUUID as vf}from"node:crypto";import{readFile as jo,writeFile as Ho,mkdir as Ef}from"node:fs/promises";async function dr(){try{let n=(await jo(At(),"utf8")).trim();if(/^[0-9a-f-]{36}$/i.test(n))return n}catch{}await Ef($(),{recursive:!0});let e=vf();try{return await Ho(At(),e,{mode:384,flag:"wx"}),e}catch{try{let t=(await jo(At(),"utf8")).trim();if(/^[0-9a-f-]{36}$/i.test(t))return t}catch{}return await Ho(At(),e,{mode:384}),e}}var Of=512*1024;function Uo(){return zo($(),"spool")}function If(e){return zo(Uo(),`${e}.jsonl`)}function pn(e,t){if(ir())try{$f(Uo(),{recursive:!0,mode:448});let n=If(e);if(Rf(n)&&Cf(n).size>=Of)return;Tf(n,JSON.stringify(t)+`
|
|
80
|
+
`,{mode:384}),Af(n,384)}catch{return}}var Pf=/^[a-z0-9][a-z0-9._-]*$/i,Df=/^[a-z][a-z-]+$/,Ff=/^[A-Za-z_][A-Za-z0-9_]*=/,Lf=new Set(["gh","glab","gup","hub","gist"]),Mf=/^(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,jf=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"]),Hf=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"]),zf=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"])]]),Uf=new Set(["-C","-c"]);function Bf(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 Hf.has(n.toLowerCase())?n:""}function Zf(e,t,n){let r=0;for(;e==="git"&&r<n.length&&n[r].startsWith("-");)r+=Uf.has(n[r])?2:1;let s=(n[r]??"").toLowerCase();return t.has(s)?`${e} ${s}`:e}function Bo(e){let t=e.toLowerCase();return t.startsWith("git")||Lf.has(t)}function fr(e){let t=e.trim().split(/\s+/).filter(l=>l.length>0),n=0;for(;n<t.length&&Ff.test(t[n]??"");)n+=1;let r=Bf(t[n]??"");if(!r||!Pf.test(r)||r.length>jf)return"";let s=zf.get(r.toLowerCase());if(s)return Zf(r.toLowerCase(),s,t.slice(n+1));if(Bo(r)||Mf.test(r)||Ot(r)!==r)return"";let o=t[n+1];return o&&Bo(o)?"":(o&&Zo.has(r.toLowerCase())&&Df.test(o)?`${r} ${o}`:r).slice(0,64)}async function Jo(e){if(!e.telemetryOptIn)return;let t=fr(e.cmd),n=t&&Ot(t)===t?t:"other",r=e.sessionId?e.sessionId.replace(/[^A-Za-z0-9._-]/g,"").slice(0,64):"";pn("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 Go(e){if(e.plan!=="pro"||ao(e.filterId)||!(await lt()).telemetryOptIn)return;let t=fr(e.cmd);!t||Ot(t)!==t||pn("learn",{cmd:t,filterId:e.filterId==null?null:q(e.filterId),rawBytes:e.rawBytes,filteredBytes:e.filteredBytes})}import{appendFileSync as Gf,chmodSync as Vf,mkdirSync as Kf,readFileSync as Xo,realpathSync as Wf,renameSync as Qo,rmSync as ei,statSync as ti,writeFileSync as pr}from"node:fs";import{basename as Ko,dirname as ni,join as mn,resolve as Yf,sep as Cx}from"node:path";var Jf={"claude-code":"anthropic",codex:"openai",copilot:"openai","gemini-cli":"google",cursor:"anthropic",windsurf:"anthropic",cline:"anthropic",aider:"anthropic",shell:"anthropic"};function Vo(e){return e?Jf[e]??"anthropic":"anthropic"}var qf="stats.jsonl",Xf="stats-ledger.json",Wo=2*1024*1024,Qf=3e4,ep=3e4,tp=new Set(["n","g","e"]),np=256;function ri(){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 rp(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"&&tp.has(n.o)?{o:n.o}:{}}}catch{return null}}function sp(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 op(e){return e.s==="b"?`b:${(e.c??"").split(" ")[0]||"other"}`:e.s?.startsWith("u:")?e.s:e.o==="n"?"n":"?"}function ip(e,t){let n=op(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 ap(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>ep){e.ox+=1;return}if(sp(e,t),t.k==="restore"?(e.rn+=1,e.rb+=t.f):ip(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=Vo(t.h),r=e.prov[n]??{r:0,f:0};r.r+=t.r,r.f+=t.f,e.prov[n]=r}}function lp(e){let t=new Date(e*1e3);return`${t.getFullYear()}-${String(t.getMonth()+1).padStart(2,"0")}-${String(t.getDate()).padStart(2,"0")}`}function si(e){return mn(ni(e),Xf)}function up(e){let t=si(e),n;try{n=Xo(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]={...ri(),...i});return s}catch{try{Qo(t,`${t}.corrupt-${Date.now()}`)}catch{}return{}}}function Yo(e,t){let n=`${e}.tmp-${process.pid}`;pr(n,t,{mode:384}),Qo(n,e)}function cp(e){try{return pr(e,String(process.pid),{flag:"wx",mode:384}),!0}catch{}try{return Date.now()-ti(e).mtimeMs<Qf?!1:(ei(e,{force:!0}),pr(e,String(process.pid),{flag:"wx",mode:384}),!0)}catch{return!1}}function dp(e,t=Wo,n=Wo/2){try{if(ti(e).size<=t)return}catch{return}let r=`${e}.lock`;if(cp(r))try{let s=Xo(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=up(e);for(let u of s.slice(0,o)){let c=rp(u);if(!c)continue;let d=lp(c.t),f=a[d]??ri();ap(f,c),a[d]=f}let l=s.slice(o);Yo(e,l.length?`${l.join(`
|
|
82
82
|
`)}
|
|
83
|
-
`:""),
|
|
84
|
-
`.includes(i)){if(o(),
|
|
85
|
-
`;try{
|
|
86
|
-
`),!0)}function
|
|
87
|
-
`)}var
|
|
88
|
-
`)}function
|
|
83
|
+
`:""),Yo(si(e),JSON.stringify({v:1,days:a}))}catch{return}finally{ei(r,{force:!0})}}function fp(e){let t=Yf(e),n=t,r="";for(;;){try{return mn(Wf(n),r)}catch{}let s=ni(n);if(s===n)return t;r=r?mn(Ko(n),r):Ko(n),n=s}}var pp=new Set(["sudo","command","time","nice","nohup","env","stdbuf","timeout"]),mp=new Set(["-u","-g","-n","-s","-k"]),gp=/^[a-z0-9][a-z0-9._-]*$/i,hp=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"]),oi=/^[A-Za-z_][A-Za-z0-9_]*=/;function qo(e){return e.length===0||e[0]==="cd"||e.every(t=>oi.test(t))}function yp(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(),qo(t)){t=[];continue}return t}n+=i,r=!0}return o(),qo(t)?[]:t}function ii(e){let t=yp(e).map(a=>a.replace(/^[({]+/,"")).filter(Boolean),n=0;for(;n<t.length;){let a=t[n];if(oi.test(a)){n+=1;continue}if(pp.has(a)){for(n+=1;n<t.length;){let l=t[n];if(l.startsWith("-")){n+=mp.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("-")&&gp.test(o)&&hp.has(s.toLowerCase())?`${s} ${o}`:s).slice(0,24)}function kp(){return mn($(),qf)}function ai(e,t,n=kp(),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?fp(a):"",p=f&&f.length<=np?`,"p":${JSON.stringify(f)}`:"",m=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}${m}${x}}
|
|
85
|
+
`;try{Kf($(),{recursive:!0,mode:448}),Gf(n,y,{mode:384}),Vf(n,384),dp(n)}catch{return}}function li(e){let t=e.filterId==null?void 0:e.filterId.startsWith("user/")?`u:${e.filterId.slice(5)}`:"b",n=e.filteredBytes<e.rawBytes?void 0:e.filterId==null?"n":e.debugBypass?"e":"g";return{...t?{s:t}:{},...n?{o:n}:{}}}function ui(e,t,n){let r=n!=null?Math.min(e,n):e,s=n!=null?Math.min(t,n):t;return{raw:r,filtered:s}}import{existsSync as kw,readFileSync as Kp}from"node:fs";import{join as Wp}from"node:path";import Yp from"node:os";import{readFile as Fp,writeFile as Lp,rename as Mp,mkdir as xi,chmod as jp,stat as Hp,unlink as zp}from"node:fs/promises";import{existsSync as Up,lstatSync as Bp,readlinkSync as Zp,realpathSync as bi}from"node:fs";import{basename as Jp,dirname as yn,join as Gp,resolve as _i}from"node:path";import{basename as bp}from"node:path";var _p={exec:"tkr-exec",processor:"tkr-processor",daemon:"tkr-daemon","shim-run":"tkr-shim"},xp={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 It(e){let t=bp(e).replace(/\.(m?js|ts)$/,"");if(t==="tkr")return[];for(let[n,r]of Object.entries(_p))if(r===t)return[n];for(let[n,r]of Object.entries(xp))if(r===t)return["hook",n];return null}function Ge(){return!1}function mr(e,t=process.execPath){let n=Ge()?It(e):null;return n?[process.execPath,...n]:[t,e]}import{rmSync as wp,statSync as Sp}from"node:fs";import{join as vp}from"node:path";function ci(){return vp($(),"fail-open")}var Ep=24*36e5;function le(e=Date.now()){try{if(e-Sp(ci()).mtimeMs<Ep)return!0;wp(ci(),{force:!0})}catch{}return!1}import{chmod as Ap,lstat as di,mkdir as Rp,readFile as hr,rename as $p,rm as tw,unlink as fi,writeFile as Cp}from"node:fs/promises";import{createHash as pi}from"node:crypto";import{basename as Op,join as mi}from"node:path";var Ip=".tkr-bak";function gi(){return mi($(),"backup","config")}function gr(e){let t=kr(e),n=pi("sha256").update(t).digest("hex").slice(0,16),r=Op(t).replace(/[^A-Za-z0-9._-]/g,"_").slice(0,80);return mi(gi(),`${n}-${r}`)}function hi(e){return`${gr(e)}.written`}function yi(e){return pi("sha256").update(e).digest("hex")}async function Np(e){try{return await di(e),!0}catch{return!1}}async function yr(e,t){let n=`${e}.tmp-${process.pid}`;try{return await Rp(gi(),{recursive:!0,mode:448}),await Cp(n,t,{mode:384}),await Ap(n,384),await $p(n,e),!0}catch{return await fi(n).catch(()=>{}),!1}}async function Pp(e,t){let n=`${e}${Ip}`;try{if(!(await di(n)).isFile())return!1}catch{return!1}let r=!await Np(t);if(r&&!await yr(t,await hr(n,"utf8")))throw new Error("backup");return await fi(n).catch(()=>{}),r}async function Dp(e,t){try{return(await hr(hi(e),"utf8")).trim()===yi(t)}catch{return!1}}async function ki(e,t){let n=t;try{n===void 0&&(n=await hr(e,"utf8"))}catch(r){return r.code==="ENOENT"}try{if(await Pp(e,gr(e)))return!0}catch{return!1}return await Dp(e,n)?!0:yr(gr(e),n)}async function gn(e,t,n){return!await ki(e,n)||!await hn(e,t)?!1:(await yr(hi(e),`${yi(t)}
|
|
86
|
+
`),!0)}function N(e){return e!=null&&typeof e=="object"&&!Array.isArray(e)}async function Se(e){if(!Up(e))return{};try{let t=JSON.parse(await Fp(e,"utf8"));return N(t)?t:null}catch{return null}}function kr(e){let t=_i(e);for(let n=0;n<32;n++){try{return bi(t)}catch{}try{if(!Bp(t).isSymbolicLink())break;t=_i(yn(t),Zp(t))}catch{break}}try{return Gp(bi(yn(t)),Jp(t))}catch{return t}}async function hn(e,t){let n=kr(e),r=`${n}.tmp-${process.pid}`;try{await xi(yn(n),{recursive:!0});let s=384;try{s=(await Hp(n)).mode&511}catch{}return await Lp(r,t,{mode:s}),await jp(r,s),await Mp(r,n),!0}catch{try{await zp(r)}catch{}return!1}}async function ve(e,t){try{await xi(yn(e),{recursive:!0})}catch{return!1}return gn(e,`${JSON.stringify(t,null,2)}
|
|
87
|
+
`)}var Vp=String.raw`(?:'(?:(?:[^']|'\\'')*[\\/])?tkr(?:\.(?:exe|cmd|bat|ps1))?'|"(?:[^"]*[\\/])?tkr(?:\.(?:exe|cmd|bat|ps1))?"|(?:[^\s'"]*[\\/])?tkr(?:\.(?:exe|cmd|bat|ps1))?)`;function ut(e,t){if(typeof e!="string")return!1;if(e.includes(t))return!0;let n=It(t);return n?.length?new RegExp(`^\\s*${Vp}\\s+${n.join("\\s+")}(?:\\s|$)`,"i").test(e):!1}function kn(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(!N(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 qp="tkr-cursor-hook",wi="preToolUse";function Xp(){return Wp(Yp.homedir(),".cursor","hooks.json")}function Qp(e){return N(e)&&ut(e.command,qp)}function em(e){let t=N(e.hooks)?e.hooks:{},n=Array.isArray(t[wi])?t[wi]:[];return{hooks:t,entries:n}}function Si(){try{let e=JSON.parse(Kp(Xp(),"utf8"));return em(e).entries.some(Qp)}catch{return!1}}import{existsSync as vw,readFileSync as tm}from"node:fs";import{join as nm}from"node:path";import rm from"node:os";var sm="tkr-gemini-hook",vi="BeforeTool";function om(){return nm(process.env.GEMINI_CLI_HOME||rm.homedir(),".gemini","settings.json")}function im(e){return N(e)&&ut(e.command,sm)}function am(e){return(Array.isArray(e.hooks)?e.hooks:[]).find(im)}function lm(e){let t=N(e.hooks)?e.hooks:{},n=Array.isArray(t[vi])?t[vi]:[];return{hooks:t,groups:n}}function Ei(){try{let e=JSON.parse(tm(om(),"utf8"));return lm(e).groups.some(t=>am(t)!=null)}catch{return!1}}import{dirname as qw,join as X}from"node:path";import hm from"node:os";import{existsSync as Ow,accessSync as Iw,constants as Nw,readFileSync as um}from"node:fs";var cm='"rewrite", "--host"';function dm(e){return e.includes(cm)}function Ti(e){try{return dm(um(e,"utf8"))}catch{return!1}}import{readFile as Ri,mkdir as fm}from"node:fs/promises";import{existsSync as xr,readFileSync as $i}from"node:fs";import{dirname as pm,join as _r}from"node:path";import Ci from"node:os";var Oi="tokmizer-rewrite",Nt="tokmizer-rewrite";function Dt(){return _r(process.env.VIBE_HOME||_r(Ci.homedir(),".vibe"),"hooks.toml")}function Ai(e){return JSON.stringify(e)}function mm(e){return["[[hooks]]",`name = ${Ai(Oi)}`,'type = "pre_tool"','match = "bash"',`command = ${Ai(e)}`,"timeout = 10.0","strict = false",'description = "Route shell commands through tokmizer."',""].join(`
|
|
88
|
+
`)}function wr(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*"${Oi}"\\s*$`,"m").test(e)}async function Ii(e,t){try{await fm(pm(e),{recursive:!0})}catch{return!1}return gn(e,t)}function Ni(){try{return wr($i(Dt(),"utf8")).some(Pt)}catch{return!1}}async function Pi(e){let t=Dt(),n="";try{xr(t)&&(n=await Ri(t,"utf8"))}catch{return"error"}let r=mm(e),s=wr(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
|
|
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 Pi(){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:Pt,installed:Oi,ensure:Ii,remove:Ni,next:"Restart Vibe so it reads hooks.toml."},{host:"antigravity",label:"Antigravity",command:"setup-antigravity",kind:"hook",file:Dt,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=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)&<(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 Nm(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 Pm={mark:"tkr-zcode-hook",event:"PreToolUse",nested:!0,path:["hooks","events"],matcher:"Bash",entry:e=>({type:"command",command:e,timeoutMs:1e4}),prepare:Nm};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()]},Pm),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:[]}],iv=[...Um.map(e=>e.host),"shell"];var av={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 Nr,writeFileSync as Pr,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()}),dv=g.discriminatedUnion("op",[Bm,zm,Jm,Zm]),fv=g.object({id:g.string(),ok:g.literal(!0),data:g.unknown()}),pv=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
|
-
`,
|
|
93
|
-
`)}catch{}}function
|
|
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}`;
|
|
90
|
+
${r}`:r;return await Ii(t,a)?o.length?"updated":"added":"error"}async function Di(){let e=Dt();if(!xr(e))return"absent";let t;try{t=await Ri(e,"utf8")}catch{return"error"}let n=wr(t);if(!n.some(Pt))return"absent";let r=n.filter(o=>!Pt(o)).join("").trimEnd(),s=r?`${r}
|
|
91
|
+
`:"";return await Ii(e,s)?"removed":"error"}function Ft(){return _r(Ci.homedir(),".gemini","config","hooks.json")}function gm(e){return{enabled:!0,PreToolUse:[{matcher:"run_command",hooks:[{type:"command",command:e,timeout:10}]}]}}function Fi(){try{let e=JSON.parse($i(Ft(),"utf8"));return N(e)&&N(e[Nt])}catch{return!1}}async function Li(e){let t=Ft(),n=await Se(t);if(!n)return"error";let r=gm(e),s=n[Nt];return s!==void 0&&JSON.stringify(s)===JSON.stringify(r)?"present":(n[Nt]=r,await ve(t,n)?s===void 0?"added":"updated":"error")}async function Mi(){let e=Ft();if(!xr(e))return"absent";let t=await Se(e);return t?Nt in t?(delete t[Nt],await ve(e,t)?"removed":"error"):"absent":"error"}var Lt=()=>hm.homedir(),Sr=()=>process.env.XDG_CONFIG_HOME||X(Lt(),".config"),ji=[{host:"opencode",label:"OpenCode",command:"setup-opencode",kind:"shim",files:()=>[{template:"opencode.js",target:X(Sr(),"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(Sr(),"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(Sr(),"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:Dt,installed:Ni,ensure:Pi,remove:Di,next:"Restart Vibe so it reads hooks.toml."},{host:"antigravity",label:"Antigravity",command:"setup-antigravity",kind:"hook",file:Ft,installed:Fi,ensure:Li,remove:Mi,next:"Restart Antigravity, then check it with /hooks."},{host:"openclaw",label:"OpenClaw",command:"setup-openclaw",kind:"shim",files:()=>{let e=X(Lt(),".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(Lt(),".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(Lt(),".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(Lt(),".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 Hi(e){return e.kind==="hook"?e.installed():Ti(e.files()[0].target)}import{existsSync as Ar,readFileSync as wm}from"node:fs";import{join as j}from"node:path";import Sm from"node:os";import{existsSync as ym,readFileSync as km}from"node:fs";function bn(e,t){return N(e)&&ut(e.command,t)}function zi(e){return e.path??(e.nested?["hooks"]:[])}function Ui(e,t){let n=e;for(let r of zi(t))N(n[r])||(n[r]={}),n=n[r];return n}function Bi(e,t){let n=e;for(let s of zi(t))n=N(n)?n[s]:void 0;if(!N(n))return[];let r=n[t.event];return Array.isArray(r)?r:[]}function bm(e){return N(e)&&Array.isArray(e.hooks)?e.hooks:[]}function Zi(e,t){return(t.matcher===void 0?e:e.flatMap(bm)).filter(r=>bn(r,t.mark))}function Ji(e,t){return Zi(Bi(e,t),t).length>0}function vr(e,t){try{let n=JSON.parse(km(e,"utf8"));return N(n)&&Ji(n,t)}catch{return!1}}function _m(e,t,n){let r=Ui(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=kn(s,u=>bn(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 xm(e,t){if(!Ji(e,t))return!1;let n=Ui(e,t),r=Bi(e,t),s=t.matcher===void 0?r.filter(o=>!bn(o,t.mark)):r.map(o=>N(o)&&Array.isArray(o.hooks)?{...o,hooks:o.hooks.filter(i=>!bn(i,t.mark))}:o).filter(o=>!N(o)||!Array.isArray(o.hooks)||o.hooks.length>0);return s.length?n[t.event]=s:delete n[t.event],!0}async function Er(e,t,n){let r=await Se(e);if(!r||t.prepare&&!t.prepare(r))return"error";let s=_m(r,t,n);return s==="present"||await ve(e,r)?s:"error"}async function _n(e,t){if(!ym(e))return"absent";let n=await Se(e);return n?xm(n,t)?await ve(e,n)?"removed":"error":"absent":"error"}function ue(){return Sm.homedir()}function Wi(e){return e.version===void 0&&(e.version=1),e.version===1}function vm(e,t,n){return Promise.all(e.map(r=>Er(r,t,n))).then(r=>r.includes("error")?"error":r.includes("updated")?"updated":r.includes("added")?"added":"present")}function Em(e,t){return Promise.all(e.map(n=>_n(n,t))).then(n=>n.includes("error")?"error":n.includes("removed")?"removed":"absent")}function Ve(e,t){return{...e,installed:()=>e.files().some(n=>vr(n,t)),ensure:n=>vm(e.files(),t,n),remove:()=>Em(e.files(),t)}}var Tm={mark:"tkr-copilot-hook",event:"PreToolUse",nested:!0,entry:e=>({type:"command",command:e,bash:e,powershell:e,timeout:10,timeoutSec:10}),prepare:Wi};function Am(){return j(process.env.COPILOT_HOME||j(ue(),".copilot"),"hooks","tokmizer.json")}var Rm={mark:"tkr-trae-hook",event:"PreToolUse",nested:!0,matcher:"RunCommand",entry:e=>({type:"command",command:e,timeout:30}),prepare:Wi};function $m(){let e=[j(ue(),".trae","hooks.json")];return Ar(j(ue(),".trae-cn"))&&e.push(j(ue(),".trae-cn","hooks.json")),e}var Cm={mark:"tkr-qwen-hook",event:"PreToolUse",nested:!0,matcher:"run_shell_command",entry:e=>({name:"tokmizer",type:"command",command:e,timeout:10})};function Om(){return j(process.env.QWEN_HOME||j(ue(),".qwen"),"settings.json")}var Im={mark:"tkr-crush-hook",event:"PreToolUse",nested:!0,entry:e=>({name:"tokmizer",matcher:"^bash$",command:e,timeout:10})};function Nm(){return j(process.env.XDG_CONFIG_HOME||j(ue(),".config"),"crush","crush.json")}var Pm={mark:"tkr-junie-hook",event:"PreToolUse",nested:!0,matcher:"^Bash$",entry:e=>({type:"command",command:e,timeout:10})};function Dm(){return j(ue(),".junie","config.json")}function Fm(e){return e.hooks===void 0&&(e.hooks={}),N(e.hooks)?(e.hooks.enabled===void 0&&(e.hooks.enabled=!0),e.hooks.events===void 0||N(e.hooks.events)):!1}var Lm={mark:"tkr-zcode-hook",event:"PreToolUse",nested:!0,path:["hooks","events"],matcher:"Bash",entry:e=>({type:"command",command:e,timeoutMs:1e4}),prepare:Fm};function Mm(){return j(ue(),".zcode","cli","config.json")}var jm={mark:"tkr-grok-hook",event:"PreToolUse",nested:!0,matcher:"Bash",entry:e=>({type:"command",command:e,timeout:10})};function Hm(){return j(ue(),".grok","hooks","tokmizer.json")}var zm="tkr-droid-hook",Rr={mark:zm,event:"PreToolUse",nested:!1,matcher:"Execute",entry:e=>({type:"command",command:e,timeout:10})},Um={...Rr,nested:!0};function Tr(){return j(ue(),".factory")}function xn(){return[{file:j(Tr(),"hooks.json"),spec:Rr},{file:j(Tr(),"hooks","hooks.json"),spec:Rr},{file:j(Tr(),"settings.json"),spec:Um}]}function Gi(e){try{let t=JSON.parse(wm(e,"utf8"));return N(t)?t:null}catch{return null}}function Vi(e,t){let n=t?e?.hooks:e;return N(n)&&Array.isArray(n.PreToolUse)&&n.PreToolUse.length>0}function Ki(){let[e,t,n]=xn(),r=Ar(e.file)?e:Ar(t.file)?t:null;return r&&Vi(Gi(r.file),!1)?r:Vi(Gi(n.file),!0)?n:r??e}var Bm={id:"droid",label:"Factory Droid",setup:"tkr setup-droid",bin:"tkr-droid-hook",restart:"Restart Droid, then check it with /hooks.",files:()=>[Ki().file],installed:()=>xn().some(e=>vr(e.file,e.spec)),ensure:async e=>{let t=Ki(),n=await Er(t.file,t.spec,e);return n==="error"||await Promise.all(xn().filter(r=>r.file!==t.file).map(r=>_n(r.file,r.spec))),n},remove:async()=>{let e=await Promise.all(xn().map(t=>_n(t.file,t.spec)));return e.includes("error")?"error":e.includes("removed")?"removed":"absent"}},Yi=[Ve({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:()=>[Am()]},Tm),Bm,Ve({id:"trae",label:"Trae",setup:"tkr setup-trae",bin:"tkr-trae-hook",restart:"Restart Trae so it loads the new hook.",files:$m},Rm),Ve({id:"qwen-code",label:"Qwen Code",setup:"tkr setup-qwen",bin:"tkr-qwen-hook",restart:"Restart Qwen Code, then check it with /hooks.",files:()=>[Om()]},Cm),Ve({id:"crush",label:"Crush",setup:"tkr setup-crush",bin:"tkr-crush-hook",restart:"Restart Crush so it loads the new hook.",files:()=>[Nm()]},Im),Ve({id:"junie",label:"Junie CLI",setup:"tkr setup-junie",bin:"tkr-junie-hook",restart:"Restart Junie CLI so it loads the new hook.",files:()=>[Dm()]},Pm),Ve({id:"zcode",label:"ZCode",setup:"tkr setup-zcode",bin:"tkr-zcode-hook",restart:"Restart ZCode so it loads the new hook.",files:()=>[Mm()]},Lm),Ve({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:()=>[Hm()]},jm)];var Zm=[{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:[]}],hS=[...Zm.map(e=>e.host),"shell"];var yS={cursor:{installed:Si,setup:"tkr setup-cursor"},"gemini-cli":{installed:Ei,setup:"tkr setup-gemini"},...Object.fromEntries(ji.map(e=>[e.host,{installed:()=>Hi(e),setup:`tkr ${e.command}`}])),...Object.fromEntries(Yi.map(e=>[e.id,{installed:e.installed,setup:e.setup}]))};function qi(e){return null}import{createConnection as sg}from"node:net";import{spawn as og}from"node:child_process";import{existsSync as sa,openSync as Ir,closeSync as na,unlinkSync as Pr,writeFileSync as Dr,mkdirSync as Fr,readFileSync as ig,appendFileSync as ag,rmSync as lg,statSync as ug}from"node:fs";import{dirname as cg,join as Lr}from"node:path";import{fileURLToPath as dg}from"node:url";var Jm=h.object({id:h.string().min(1).max(64),op:h.literal("filter"),cmd:h.string().min(1).max(2048),plan:h.enum(["trial","smart","pro"]),allowed:h.array(h.string().min(1).max(64)).max(512).optional(),installId:h.string().min(1).max(64).optional()}),Gm=h.object({id:h.string().min(1).max(64),op:h.literal("ping")}),Vm=h.object({id:h.string().min(1).max(64),op:h.literal("shutdown"),installId:h.string().min(1).max(64)}),Km=h.object({id:h.string().min(1).max(64),op:h.literal("reload"),installId:h.string().min(1).max(64).optional()}),xS=h.discriminatedUnion("op",[Jm,Gm,Vm,Km]),wS=h.object({id:h.string(),ok:h.literal(!0),data:h.unknown()}),SS=h.object({id:h.string(),ok:h.literal(!1),err:h.string(),retryAfterMs:h.number().int().nonnegative().optional()}),Xi=h.object({filter:xe.nullable(),cacheHit:h.boolean().optional()}),wn=`
|
|
92
|
+
`,vS=64*1024;function $r(e){return JSON.stringify(e)+wn}function*Qi(e){let t=0;for(;;){let n=e.indexOf(wn,t);if(n<0)return;yield e.slice(t,n),t=n+1}}function Mt(){return`${process.pid}-${Date.now()}-${Math.random().toString(36).slice(2,8)}`}import Wm from"node:os";import{join as jt}from"node:path";import{existsSync as Ym,statSync as qm,lstatSync as ea,unlinkSync as Xm,mkdirSync as Qm,chmodSync as eg}from"node:fs";import{createHash as tg}from"node:crypto";var Cr=100;function ng(e){let t=tg("sha256").update($()).digest("hex").slice(0,8),n=jt(Wm.tmpdir(),`tkr-${e}-${t}`),r=jt(n,"d.sock");if(Buffer.byteLength(r)>Cr)throw new Error("Temporary directory path is too long for IPC");return ta(n,e),r}function rg(e,t){try{let n=ea(e);return n.isDirectory()&&n.uid===t&&(n.mode&63)===0}catch{return!1}}function ta(e,t){Qm(e,{recursive:!0,mode:448});let n=ea(e);if(!n.isDirectory()||n.uid!==t)throw new Error("Unsafe IPC directory");eg(e,448)}function Ht(){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&&rg(t,e)){let s=jt(t,`tokmizer-${e}.sock`);if(Buffer.byteLength(s)<=Cr)return{path:s,isPipe:!1}}let n=jt($(),"run"),r=jt(n,"daemon.sock");return Buffer.byteLength(r)>Cr?{path:ng(e),isPipe:!1}:(ta(n,e),{path:r,isPipe:!1})}async function Or(){let{path:e,isPipe:t}=Ht();if(t||!Ym(e))return;try{if(!qm(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{Xm(e)}catch{}}var OS=5*6e4;var oa=500,fg=3e3,ra=1,pg=6e4,mg=256*1024;function Mr(){return Lr($(),"daemon.spawn.fail")}function jr(){return Lr($(),"daemon.log")}function gg(){try{let e=Number(ig(Mr(),"utf8"));return Number.isFinite(e)&&Date.now()-e<pg}catch{return!1}}function hg(e){try{Fr($(),{recursive:!0});let t=jr();try{ug(t).size>mg&&Pr(t)}catch{}ag(t,`${new Date().toISOString()} ${e}
|
|
93
|
+
`)}catch{}}function yg(e){try{Fr($(),{recursive:!0}),Dr(Mr(),String(Date.now()))}catch{}hg(`spawn failed: ${e.message}`)}function kg(){try{lg(Mr(),{force:!0})}catch{}}async function Sn(e,t){return new Promise((n,r)=>{let s=sg(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 bg(){return process.env.TOKMIZER_DAEMON_BIN?process.env.TOKMIZER_DAEMON_BIN:dg(new URL("../bin/tkr-daemon.js",import.meta.url))}async function Nr(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 Sn(e,75)).destroy(),!0}catch{}else if(sa(e))return!0;await new Promise(o=>setTimeout(o,75))}return!1}async function _g(e){let t=bg();if(!Ge()&&!sa(t))throw new Error(`tkr-daemon binary not found at ${t}`);let{path:n}=Ht(),r=process.platform==="win32"?$():cg(n);try{Fr(r,{recursive:!0})}catch{}let s=Lr(r,"daemon.spawn.lock"),o=null;try{o=Ir(s,"wx"),Dr(o,String(process.pid))}catch(i){if(i.code==="EEXIST"){if(await Nr(n,5e3))return;try{Pr(s)}catch{}try{o=Ir(s,"wx"),Dr(o,String(process.pid))}catch(l){if(l.code==="EEXIST"){await Nr(n,5e3);return}throw l}}else throw i}try{let i=null;try{i=Ir(jr(),"a")}catch{}let[a,...l]=mr(t);if(og(a,l,{detached:!0,stdio:["ignore","ignore",i??"ignore"],env:{...process.env,TOKMIZER_DAEMON_INSTALL_ID:e}}).unref(),i!==null)try{na(i)}catch{}if(!await Nr(n,3e3))throw new Error("tkr-daemon failed to bind socket within 3s")}finally{if(o!==null){try{na(o)}catch{}try{Pr(s)}catch{}}}}async function xg(e={}){let{path:t}=e.socketPath?{path:e.socketPath}:Ht(),n=await dr();try{let r=await Sn(t,oa);r.write($r({id:Mt(),op:"shutdown",installId:n})),await new Promise(s=>setTimeout(s,150));try{r.destroy()}catch{}return!0}catch{return!1}}async function wg(e,t){let n=Date.now()+t;for(;Date.now()<n;){try{(await Sn(e,250)).destroy()}catch{return!0}await new Promise(r=>setTimeout(r,100))}return!1}async function Hr(e={}){let{path:t}=e.socketPath?{path:e.socketPath}:Ht(),n=await dr(),r=null,s=0,o=!1;for(;s<=ra;)try{r=await Sn(t,oa),kg();break}catch{if(s+=1,s>ra)throw new Error(`tkr-daemon unreachable at ${t}`);if(gg())throw new Error(`tkr-daemon spawn on cooldown (see ${jr()})`);await Or();try{await _g(n),o=!0}catch(c){throw yg(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]===wn&&(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 m=JSON.parse(p),x=i.get(m.id);if(!x)continue;clearTimeout(x.timer),i.delete(m.id),x.resolve(m)}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})`))},fg);i.set(c.id,{resolve:d,reject:f,timer:p}),r.write($r(c))})}let u={filter:async(c,d,f)=>{let p=await l({id:Mt(),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 m=Xi.safeParse(p.data);return m.success?m.data.filter:null},ping:async()=>{let c=await l({id:Mt(),op:"ping"});if(!c.ok)throw new Error(c.err);return c.data},reload:async()=>{let c=await l({id:Mt(),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&&$o($t,d.version))throw new Error(`newer daemon ${d.version} already running`);c=d.version!==$t}catch(d){throw u.close(),d}if(c){try{await xg(e.socketPath?{socketPath:e.socketPath}:{})}catch{}u.close();let d=await wg(t,2e3);if(await Or(),!d)throw new Error("stale daemon still running after shutdown request");return Hr({...e,skipVersionCheck:!0})}}return u}var ct=null,zt=null;async function Sg(){if(ct)return ct;if(zt)return zt;let e=Hr().then(t=>{if(zt===e)return ct=t,t;try{t.close()}catch{}return null}).catch(()=>null);return zt=e,e}var zr=null,Ur=!1;async function vg(){return Ur||(Ur=!0,zr=await No()??dn()),zr}async function ia(e,t,n){let r=await vg();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 Eg(e){return e?{...e,matchRegex:new RegExp(e.match_command)}:null}function aa(e){ur(async(t,n)=>{let r=e==="free"?"trial":e,s=n??fn(void 0),o=await Sg();if(!o)return ia(t,r,s);try{let i=await o.filter(t,r,s?[...s]:void 0);return!i||s&&!s.has(q(i.slug))?null:Eg(i)}catch{return ia(t,r,s)}})}function la(){if(ur(null),ct)try{ct.close()}catch{}ct=null,zt=null,zr=null,Ur=!1}import{readFileSync as Tg}from"node:fs";import{join as Ag}from"node:path";function ua(){try{return Tg(Ag($(),"yolo-mode"),"utf8")==="on"}catch{return!1}}import{appendFileSync as Ig,chmodSync as Ng,mkdirSync as Pg,existsSync as Dg,readFileSync as ov,rmSync as iv}from"node:fs";import{dirname as Fg,join as Lg}from"node:path";import{readFileSync as Rg,renameSync as $g,statSync as Cg,writeFileSync as Og}from"node:fs";function ca(e,t,n){try{if(Cg(e).size<=t)return;let r=Rg(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}`;Og(i,s.length?`${s.join(`
|
|
95
95
|
`)}
|
|
96
|
-
`:"",{mode:384})
|
|
97
|
-
`,{mode:384}),
|
|
98
|
-
`)){let s=
|
|
99
|
-
`,1)[0].slice(2).trim().split(/\s+/),s=r[0]??"";return s==="/usr/bin/env"?
|
|
100
|
-
`||a==="|"){i(a,1);continue}}r+=a,s+=1}return o(),n}function
|
|
96
|
+
`:"",{mode:384}),$g(i,e)}catch{}}var Mg="usage.jsonl";var da=2*1024*1024;function jg(){return Lg($(),Mg)}function Q(e,t,n=jg()){try{let r=Fg(n);Dg(r)||Pg(r,{recursive:!0,mode:448});let s=e.replace(/[^A-Za-z0-9._-]/g,"").slice(0,64)||"unknown";Ig(n,`{"t":${Math.floor(Date.now()/1e3)},"s":"${s}","o":${t?1:0}}
|
|
97
|
+
`,{mode:384}),Ng(n,384),ca(n,da,da/2)}catch{}}import{spawnSync as bh}from"node:child_process";import{existsSync as Tn,readFileSync as Vr,readdirSync as Kr}from"node:fs";import{homedir as ft}from"node:os";import{fileURLToPath as _h}from"node:url";import{dirname as Ea,join as P,resolve as xh}from"node:path";import{execFileSync as ih}from"node:child_process";import{mkdirSync as ah,readFileSync as ha,renameSync as lh,statSync as uh,writeFileSync as ch}from"node:fs";import{join as ya}from"node:path";import{closeSync as Hg,openSync as zg,readSync as Ug,readdirSync as Bg,readFileSync as Zg,statSync as pa}from"node:fs";import{homedir as Jg}from"node:os";import{isAbsolute as Gg,join as vn,resolve as Vg}from"node:path";var Kg=/^[A-Za-z0-9._+@%:,/-]+$/,Wg=new Set(["7f454c46","feedface","feedfacf","cefaedfe","cffaedfe","cafebabe","bebafeca"]),Yg=32,qg=4*1024*1024;function Zr(e){let t;try{t=zg(e,"r");let n=Buffer.alloc(4),r=Ug(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&&Hg(t)}}function Ut(e,t=process.platform){try{let n=pa(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&&Wg.has(r)}catch{return!1}}function Xg(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 dt(e,t,n,r=process.platform){if(!Kg.test(e))return!1;let s=r==="win32";if(e.includes("/"))return Ut(Vg(t??process.cwd(),e),r);if(!n)return!1;let o=s?Xg(e):[e];for(let i of n.split(s?";":":"))if(!(!i||!Gg(i))){for(let a of o)if(Ut(vn(i,a),r))return!0}return!1}var Qg=/^eval \$'([^\s'()=]+) \(\) /,eh=/^([^\s'"()=]+) \(\) \{$/,th=/^alias -- ([^\s=]+)=(.*)$/,nh=/^# (?:Shell Options|Aliases|Shopt|Check for |Shadow )/,rh=/^export PATH=(.*)$/,sh=/^(?:--colou?r(?:=\S+)?|-G)$/;function fa(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 oh(e,t){let n="";for(let r of e.split(`
|
|
98
|
+
`)){let s=rh.exec(r);if(s&&n!=="# Functions"){let o=fa(s[1].trim());/[$`\\]/.test(o)||t.paths.push(o);continue}if(r.startsWith("# ")&&(n!=="# Functions"||nh.test(r))){n=r;continue}if(n==="# Functions"){let o=Qg.exec(r)??eh.exec(r);o&&t.functions.add(o[1])}else if(n==="# Aliases"){let o=th.exec(r);o&&t.aliases.set(o[1],fa(o[2].trim()))}}}function Br(e){return e?.code==="ENOENT"}function ma(e){let t={functions:new Set,aliases:new Map,paths:[],uncertain:!1},n=vn(e||vn(Jg(),".claude"),"shell-snapshots"),r=[];try{for(let s of Bg(n)){if(!s.startsWith("snapshot-")||!s.endsWith(".sh"))continue;let o=vn(n,s);try{let i=pa(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,Yg);for(let s of r)try{if(s.size>qg)throw new Error("snapshot too large");oh(Zg(s.path,"utf8"),t)}catch(o){Br(o)||(t.uncertain=!0)}return t}function ga(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=>sh.test(s))}var dh="exec-probe.json",fh=6e4;function ph(){return ya($(),dh)}function mh(e){try{let t=JSON.parse(ha(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 gh(e,t){try{ah(ya(e,".."),{recursive:!0,mode:448});let n=`${e}.${process.pid}.tmp`;ch(n,JSON.stringify(t),{mode:384}),lh(n,e)}catch{}}function hh(e){try{return ih(e,["--native-check"],{encoding:"utf8",timeout:2e3,maxBuffer:1024,stdio:["ignore","pipe","ignore"],windowsHide:!0}).startsWith("tokmizer-native ")}catch{return!1}}function yh(e,t){try{let r=ha(e,"utf8").split(`
|
|
99
|
+
`,1)[0].slice(2).trim().split(/\s+/),s=r[0]??"";return s==="/usr/bin/env"?dt(r[1]??"",void 0,t):Ut(s)}catch{return!1}}function kh(e,t,n){try{let r=uh(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=ph(),s=Date.now()){let o=t!=="win32"&&Zr(e)==="#!",i=kh(e,o,n),a=mh(r);if(a?.key===i&&(a.ok||s-a.at<fh))return a.ok;let l=Ut(e,t)&&(o?yh(e,n):hh(e));return gh(r,{key:i,ok:l,at:s,skipped:(a?.skipped??0)+(l?0:1)}),l}var wh=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"]),Sh=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"]),ka=new Set(["sh","bash","zsh","dash","ksh","fish","python","python3","python2","node","ruby","perl","php","awk","sed","deno","bun"]),ba="(?:dev|start|serve|watch|preview)",vh=new RegExp(`^(?:\\S*/)?(?:bun\\s+(?:install|i|add|remove|rm|update|outdated|audit|test|build|pm|x)(?:\\s|$)|bun\\s+run\\s+(?!${ba}(?:\\s|$))[A-Za-z0-9:_-]+(?:\\s|$)|deno\\s+(?:test|lint|fmt|check|compile|install|info|doc|bench|outdated)(?:\\s|$)|deno\\s+task\\s+(?!${ba}(?:\\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)`),Eh=/(?:^|\s)--watch(?:\s|=|$)/;function Th(e){return vh.test(e)&&!Eh.test(e)}var Ah=/^((?:\S*\/)?(sh|bash|zsh|dash|ksh|fish)\s+(-[elux]*c[elux]*)\s+)(['"])/,Rh=/[()$]|(?:^|[;&|\n]\s*)(?:and|or|not|begin|end|if|else|switch|case|while|for|function|return)(?:\s|;|$)/,Ta=3;function Aa(e){let t=Ah.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&&Rh.test(a)?null:{script:a,start:s,end:o,quote:r}}var $h=new Set(["cd","export","set","unset","source",".","true",":","pushd","popd"]);function Ch(e){return Yr(e).filter(n=>{if(n.kind!=="cmd"||n.unsafe)return!1;let r=$a(n.text);return r!==""&&!$h.has(r)&&!Wr.test(r)}).length>1}function Oh(e,t,n,r,s){if(n>=Ta)return null;let o=Aa(e);if(!o)return null;let{script:i,start:a,end:l,quote:u}=o,c=[],d=Ca(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)}`,m=Ch(i);if(s)for(let x of m?[e,...c]:c)s(x);return m?`${t} ${p}`:p}var _a=/(?:^|\s)(?:--follow|-[0-9a-zA-Z]*f[a-zA-Z]*)(?:\s|=|$)/,Ih=new Set(["docker","podman","kubectl","nerdctl","docker-compose","stern","flyctl"]);function Nh(e,t){let n=An(t);return n==="tail"||n==="journalctl"?_a.test(e):n==="stern"?!0:Ih.has(n)?/\blogs?\b/.test(e)&&_a.test(e):!1}var Wr=/^[A-Za-z_][A-Za-z0-9_]*\+?=/,Ph=/^[A-Za-z_][A-Za-z0-9_-]*\s*\(\s*\)/,Dh=/(?:^|[;&|\n({])\s*[A-Za-z_][A-Za-z0-9_-]*\s*\(\s*\)/;function An(e){let t=e.lastIndexOf("/");return t===-1?e:e.slice(t+1)}function Ra(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 xa(e){let t=Ra(e);if(!t)return!0;for(let n=0;n<e.length;n++)if(t[n]&&e[n]===">")return!0;return!1}function Yr(e){let t=Ra(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 $a(e){return e.trim().split(/\s+/)[0]??""}function ne(e,t=process.platform){try{let n=Ea(_h(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(Tn(a))return Jr(a,t)?`'${a.replace(/\\/g,"/").replace(/'/g,"'\\''")}'`:null}let o=P(n,"..","bin","tkr-exec");if(!r&&Tn(o))return Jr(o,t)?`${s}'${o.replace(/'/g,"'\\''")}'`:null;if(Ge()){let a=r?process.execPath.replace(/\\/g,"/"):process.execPath;return`${s}'${a.replace(/'/g,"'\\''")}' exec`}let i=P(n,"..","bin","tkr-exec.js");return Tn(i)?`${s}node '${i.replace(/'/g,"'\\''")}'`:null}catch{return null}}function Fh(e,t="tkr-exec",n=()=>!0,r){return Ca(e,t,0,n,r)}function Ca(e,t,n,r,s){if(e.includes("<<")||Dh.test(e))return e;let o=Yr(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=$a(u),d=o[a+1],f=d?.kind==="sep"&&(d.text==="|"||d.text==="|&"),p=d?.kind==="sep"&&d.text==="&",m=!f&&!p&&!xa(l.text)&&!l.text.includes("<(")&&!l.text.includes(">(")?Oh(u,t,n,r,s):null;if(m!==null){i.push(`${l.text.match(/^\s*/)?.[0]??""}${m}${l.text.match(/\s*$/)?.[0]??""}`);continue}if(u===t||u.startsWith(t)&&/^\s/.test(u.slice(t.length))||wh.has(c)||Sh.has(c)||(ka.has(c)||ka.has(An(c)))&&!Th(u)||Wr.test(c)||c.startsWith("(")||c.startsWith("#")||c.startsWith("<")||c.startsWith(">")||Ph.test(u)||Nh(u,c)||c.endsWith(")")||f||p||xa(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 Lh=new Set(["command","workdir","timeout_ms","yield_time_ms","max_output_tokens","shell","login","tty","description"]),Mh=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"]),jh=new Set(["log","diff","show","status","blame","ls-files","rev-parse","describe","shortlog"]),Hh={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/},En=["test","run test","run build","run lint","run typecheck"],zh={npm:new Set(En),pnpm:new Set([...En,"build","lint","typecheck"]),yarn:new Set([...En,"build","lint","typecheck"]),bun:new Set(En),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"])},Uh=new Set(["pytest","tsc","vitest","jest","eslint","mypy"]);function Oa(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 Yr(e)){if(r.kind==="sep")continue;if(r.unsafe)return!1;let s=n<Ta?Aa(r.text.trim()):null;if(s){if(!Oa(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=An(o[0]);if(i!==o[0])return!1;let a=Hh[i];if(a&&o.slice(1).some(u=>a.test(u)))return!1;if((i==="git"?jh.has(o[1]??""):Mh.has(i))||t&&Uh.has(i))continue;let l=t?zh[i]:void 0;if(!(l&&(l.has(o[1]??"")||o[1]==="run"&&l.has(`run ${o[2]??""}`))))return!1}return!0}function Ia(e,t,n=ne(t),r=Q,s=$n(),o=process.env.PATH,i=qr){if(!J(e)||e.tool_name!=="Bash"||t==="claude-code"&&Zh(i()))return null;let a=e.tool_input;if(!J(a)||a.run_in_background)return null;let l=a.command;if(typeof l!="string"||!l||t==="codex"&&Object.keys(a).some(x=>!Lh.has(x)))return null;let u=typeof e.cwd=="string"&&e.cwd?e.cwd:a.workdir,c=typeof u=="string"&&u?u:void 0,d=typeof e.session_id=="string"&&e.session_id?e.session_id:"unknown",f=typeof e.permission_mode=="string"?e.permission_mode:void 0,p=ja(l,{host:t,sessionId:d,cwd:c,claudeDirs:s,pathEnv:o,permissionMode:f},n,r);if(!p)return null;let m={...a,command:p.command};return JSON.stringify({hookSpecificOutput:t==="codex"?{hookEventName:"PreToolUse",permissionDecision:"allow",updatedInput:m}:p.allowedBy?{hookEventName:"PreToolUse",permissionDecision:"allow",permissionDecisionReason:`Tokmizer: allowed by your rule ${p.allowedBy}`,updatedInput:m}:{hookEventName:"PreToolUse",updatedInput:m}})}var Bh=/(?:^|\s)--(?:disallowedTools|disallowed-tools|settings|setting-sources)(?:[=\s]|$)/;function qr(e=process.env,t=process.platform){let n=Number(e.CLAUDE_PID)||process.ppid;if(t==="win32"||!Number.isInteger(n)||n<=1)return null;try{let r=bh("ps",["-ww","-o","args=","-p",String(n)],{encoding:"utf8",timeout:2e3});return r.status===0&&r.stdout.trim()?r.stdout:null}catch{return null}}function Zh(e){return e===null||Bh.test(e)}function Jh(e,t){if(!Tn(e))return"missing";try{let n=Vr(e,"utf8");return JSON.parse(t?Na(n):n)}catch{return"unreadable"}}function Na(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=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=[N(e,"managed-settings.json")];try{for(let n of Vr(N(e,"managed-settings.d")))n.endsWith(".json")&&t.push(N(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=>[N(y,"settings.json"),N(y,"settings.local.json")],r=y=>n(N(y,".claude")),s=N(dt(),".claude"),o=t.configDir||s,i=[[Hg(),"managed"],[[N(o,"settings.json")],"loaded"],[[N(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=[N(dt(),".cursor","cli-config.json"),...Rn(e).map(n=>N(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=>N(e,t))}catch{return[]}}function Vg(e){let t=zg(),n=[N(t,"system-defaults.json"),N(t,"settings.json"),process.env.GEMINI_CLI_SYSTEM_SETTINGS_PATH,process.env.GEMINI_CLI_SYSTEM_DEFAULTS_PATH,N(dt(),".gemini","settings.json"),...Rn(e).map(s=>N(s,".gemini","settings.json"))].filter(s=>!!s),r=zt(n,!0,Jg,!1);if(r==="unreadable")return r;for(let s of[...xa(N(dt(),".gemini","policies")),...xa(N(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(N(t,n))}catch{continue}for(let s of r)try{if(s.endsWith(".md")&&/permission/i.test(Gr(N(t,n,s),"utf8")))return!0}catch{return!0}}return!1}function Kg(e){let t=N(process.env.XDG_CONFIG_HOME||N(dt(),".config"),"opencode"),n=Rn(e),r=[t,...n.map(a=>N(a,".opencode"))];if(Wg(r))return"unreadable";let s=["opencode.json","opencode.jsonc","config.json"],o=[...s.map(a=>N(t,a)),process.env.OPENCODE_CONFIG,...n.flatMap(a=>[...s.slice(0,2).map(l=>N(a,l)),...s.slice(0,2).map(l=>N(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([N(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 Na(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(Na).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(`^${Na(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"]),Pa=/(?:^|[\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"||Pa.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)||Pa.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,Po(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
|
-
${
|
|
104
|
-
`),t}}async function
|
|
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=xh(e);for(;;){t.push(n);let r=Ea(n);if(r===n)return t;n=r}}function Gh(){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 Kr(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=Jh(o,t);if(i!=="missing"&&(i==="unreadable"||!J(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 $n(){return{projectDir:process.env.CLAUDE_PROJECT_DIR,configDir:process.env.CLAUDE_CONFIG_DIR}}function Vh(e,t){let n=y=>[P(y,"settings.json"),P(y,"settings.local.json")],r=y=>n(P(y,".claude")),s=P(ft(),".claude"),o=t.configDir||s,i=[[Gh(),"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||J(w)&&w.allowManagedPermissionRulesOnly===!0)&&(c=!0),w===void 0)return!0;if(!J(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(Ke((G[1]??"*").replace(/:\*$/," *")));else if(G[1]===void 0||G[1].trim()==="*")u[d]=!0;else{a.push(Ke(G[1].replace(/:\*$/," *")));let Te=iy(G[1]);Te&&l[d].push({rule:F.trim(),matches:Te})}}}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 m=u.managed||(u.loaded||u.loadedLocal)&&!c,x=[...l.managed,...c?[]:l.loaded];return{matchers:[...p,...m?[]:a],complete:!0,allow:a,allowsEverything:m,guards:p,trustedAllow:x}}function Kh(e){let t=[P(ft(),".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(!J(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(Ke(u===-1?`${l} *`:`${l.slice(0,u)} ${l.slice(u+1)}`))}return!0},!1)}function Wh(){return process.platform==="darwin"?"/Library/Application Support/GeminiCli":process.platform==="win32"?"C:\\ProgramData\\gemini-cli":"/etc/gemini-cli"}var Pa=/^\s*(?:run_shell_command|ShellTool)\s*(?:\(([\s\S]*)\))?\s*$/;function Yh(e,t){let n=e.tools;if(n!==void 0&&!J(n))return!1;let r=[Bt(e.excludeTools),Bt(J(n)?n.exclude:void 0)];for(let s of r){if(!s)return!1;for(let o of s){let i=Pa.exec(o);i&&t.push(Ke(i[1]===void 0?"*":`${i[1]}*`))}}return!0}function wa(e){try{return JSON.parse(e)}catch{return null}}function qh(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]??wa(`"${r[1]}"`);if(s===null)return null;n.push(s)}return n}if(t.startsWith('"')){let n=/^"((?:\\.|[^"\\])*)"/.exec(t);return n?wa(`"${n[1]}"`):null}if(t.startsWith("'")){let n=/^'([^']*)'/.exec(t);return n?n[1]:null}return t.replace(/\s*#.*$/,"")}function Xh(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=qh(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==="*"||Pa.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(Ke(`${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}))||Xr(u,c))}}return!0}function Sa(e){try{return Kr(e).filter(t=>t.endsWith(".toml")).map(t=>P(e,t))}catch{return[]}}function Qh(e){let t=Wh(),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(ft(),".gemini","settings.json"),...Rn(e).map(s=>P(s,".gemini","settings.json"))].filter(s=>!!s),r=Zt(n,!0,Yh,!1);if(r==="unreadable")return r;for(let s of[...Sa(P(ft(),".gemini","policies")),...Sa(P(t,"policies"))]){let o;try{o=Vr(s,"utf8")}catch{return"unreadable"}if(!Xh(o,r.matchers))return"unreadable"}return r}function Gr(e,t){if(e===void 0)return!0;if(typeof e=="string")return e!=="allow"&&t.push(()=>!0),!0;if(!J(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(!J(r))return!1;for(let[s,o]of Object.entries(r))o!=="allow"&&t.push(Ke(s.replace(/\?/g,"*")))}}return!0}function va(e,t){if(e.permissions!==void 0||!Gr(e.permission,t))return!1;for(let n of["agent","agents","mode"]){let r=e[n];if(r!==void 0){if(!J(r))return!1;for(let s of Object.values(r))if(J(s)&&(s.permissions!==void 0||!Gr(s.permission,t)))return!1}}return!0}function ey(e){for(let t of e)for(let n of["agent","agents","mode","modes"]){let r;try{r=Kr(P(t,n))}catch{continue}for(let s of r)try{if(s.endsWith(".md")&&/permission/i.test(Vr(P(t,n,s),"utf8")))return!0}catch{return!0}}return!1}function ty(e){let t=P(process.env.XDG_CONFIG_HOME||P(ft(),".config"),"opencode"),n=Rn(e),r=[t,...n.map(a=>P(a,".opencode"))];if(ey(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,va,!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(Na(a))}catch{return"unreadable"}if(!(a===process.env.OPENCODE_PERMISSION?Gr(l,i.matchers):J(l)&&va(l,i.matchers)))return"unreadable"}return i}function ny(){return Zt([P(ft(),".gemini","antigravity-cli","settings.json")],!0,(e,t)=>{let n=e.permissions;if(n===void 0)return!0;if(!J(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(Ke(a==="*"?"*":`${a} *`));continue}let l;try{l=new RegExp(a.slice(6))}catch{return!1}t.push(u=>Xr(l,u))}}return!0},!1)}function J(e){return e!=null&&typeof e=="object"&&!Array.isArray(e)}function Da(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function ry(e){let t=e.trim().replace(/\s+/g," "),n=t.endsWith(" *")&&t.length>2,r=(n?t.slice(0,-2):t).split("*").map(Da).join("[\\s\\S]*");return new RegExp(`^${r}${n?"(?: [\\s\\S]*)?":""}(?= |$)`)}var sy=512;function oy(e){let t=e.replace(/['"\\]/g,"").split(/[\s;&|(){}<>`$]+/).filter(Boolean);return[t,t.map(An)]}function Xr(e,t){if(e.test(t)||e.test(t.trim().replace(/\s+/g," ")))return!0;for(let n of oy(t)){if(n.length>sy)return!0;for(let r=0;r<n.length;r++)if(e.test(n.slice(r).join(" ")))return!0}return!1}function Ke(e){let t=ry(e);return n=>Xr(t,n)}function iy(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(`^${Da(r)}${n?"(?: [\\s\\S]*)?":""}$`);return o=>s.test(o)}var ay={"claude-code":Vh,cursor:Kh,"gemini-cli":Qh,opencode:ty,antigravity:ny},ly=new Set(["codex"]),Fa=/(?:^|[\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 uy(e,t,n){let r=ay[e];return r?r(t??process.cwd(),n):{matchers:[],complete:!1}}function cy(e,t,n){return e==="unreadable"||Fa.test(t.replace(/['"\\]/g,""))||e.matchers.some(r=>r(t))?!1:e.complete||Oa(t,!ly.has(n))}var La=new Set(["default","acceptEdits","dontAsk"]);function Ma(e,t){return t.host!=="claude-code"||t.permissionMode==="bypassPermissions"?!0:e!=="unreadable"&&e.allowsEverything===!0&&La.has(t.permissionMode??"")}function dy(e,t){let n="pathEnv"in e?e.pathEnv:process.env.PATH,r;return s=>e.host!=="claude-code"?dt(s,e.cwd,n):(r??=ma(t.configDir),!dt(s,e.cwd,n)&&!r.paths.some(o=>dt(s,e.cwd,o))?!1:s.includes("/")||!ga(s,r))}var fy=/^[^\s;&|<>()$`\\{}*?[\]~#!]+(?: [^\s;&|<>()$`\\{}*?[\]~#!]+)*$/;function py(e,t,n){return n.host!=="claude-code"||e==="unreadable"||Ma(e,n)||!La.has(n.permissionMode??"")||!fy.test(t)||Fa.test(t.replace(/['"]/g,""))||(e.guards??[]).some(r=>r(t))?null:(e.trustedAllow??[]).find(r=>r.matches(t))?.rule??null}function ja(e,t,n,r){if(!n||/["\\$`;&|<>(){}]|'\\''/.test(n))return null;let s=t.claudeDirs??$n(),o=uy(t.host,t.cwd,s),i=py(o,e,t),a=i||cy(o,e,t.host)?Fh(e,n,dy(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}:Ma(o,t)?{command:a}:null}function Ee(e,t,n,r){return ja(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 my(e){return H(e,"prompt_id")||H(e,"scratchpad_dir")?!0:Jt(e.effort)}function gy(e){return H(e,"tool_use_id")?.startsWith("toolu_")===!0||/^claude/i.test(H(e,"model")??"")}var hy=new Set(["BeforeTool","AfterTool","BeforeAgent","AfterAgent","BeforeModel","AfterModel","BeforeToolSelection"]),yy=new Set(["preToolUse","postToolUse","beforeShellExecution","afterShellExecution","beforeSubmitPrompt","sessionStart","sessionEnd","stop"]),ky=new Set(["pre_tool","post_tool"]),by=new Set(["before_tool_call","after_tool_call"]),_y=new Set(["runTerminalCommand","run_in_terminal"]),xy=[["codex",e=>H(e,"turn_id")!==null],["claude-code",my],["cursor",e=>H(e,"cursor_version")!==null||H(e,"generation_id")!==null||H(e,"conversation_id")!==null||Array.isArray(e.workspace_roots)||yy.has(H(e,"hook_event_name")??"")],["gemini-cli",e=>hy.has(H(e,"hook_event_name")??"")],["qwen-code",e=>e.hook_event_name==="PreToolUse"&&e.tool_name==="run_shell_command"],["vibe",e=>ky.has(H(e,"hook_event_name")??"")],["antigravity",e=>Jt(e.toolCall)],["copilot",e=>H(e,"toolName")!==null&&"toolArgs"in e||_y.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&&!by.has(H(e,"event"))]],wy=new Set(["codex","antigravity"]);function Qr(e){return Jt(e)?xy.filter(([,t])=>t(e)).map(([t])=>t):[]}function Ha(e,t){if(!Jt(e))return null;let n=Qr(e);return n.length>1?null:n.length===1?n[0]:gy(e)&&wy.has(t)?"claude-code":t==="codex"?null:t}var es=JSON.stringify({permission:"allow"});function za(e,t=ne("cursor"),n=Q){if(e.tool_name!=="Shell")return es;let r=e.tool_input??{},s=r.command;if(typeof s!="string"||!s)return es;let o=typeof r.working_directory=="string"?r.working_directory:void 0,i=Ee(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}}):es}var Cn="{}";function Ua(e,t=ne("gemini-cli"),n=Q){if(e.hook_event_name!=="BeforeTool"||e.tool_name!=="run_shell_command")return Cn;let r=e.tool_input??{};if(r.is_background)return Cn;let s=r.command;if(typeof s!="string"||!s)return Cn;let o=typeof e.cwd=="string"?e.cwd:void 0,i=Ee(s,{host:"gemini-cli",sessionId:e.session_id??"unknown",cwd:o},le()?null:t,n);return i?JSON.stringify({hookSpecificOutput:{tool_input:{command:i}}}):Cn}function mt(e,t,n="unknown",r=ne(t),s=Q){return e?Ee(e,{host:t,sessionId:n},le()?null:r,s):null}var Sy=new Set(["bash","file_system.bash"]),ts=JSON.stringify({decision:"allow"});function Ba(e,t=(n,r)=>mt(n,"vibe",r)){if(!N(e)||e.hook_event_name!=="pre_tool"||typeof e.tool_name!="string"||!Sy.has(e.tool_name))return"";let n=e.tool_input;if(!N(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 Za(e,t=(n,r)=>mt(n,"antigravity",r)){if(!N(e)||!N(e.toolCall)||e.toolCall.name!=="run_command")return ts;let n=e.toolCall.args;if(!N(n)||typeof n.CommandLine!="string"||!n.CommandLine)return ts;let r=t(n.CommandLine,typeof e.conversationId=="string"?e.conversationId:"unknown");return r?JSON.stringify({decision:"allow",overwrite:{CommandLine:r}}):ts}var he="{}",vy=new Set(["runTerminalCommand","run_in_terminal","Bash","bash"]),Ey=["run_in_background","is_background","isBackground"];function On(e){return e!=null&&typeof e=="object"&&!Array.isArray(e)}function Ty(e){let t=e.session_id??e.sessionId;return typeof t=="string"&&t?t:"unknown"}function Ay(e,t){let n=e.cwd??t.cwd??t.workdir??t.working_directory;return typeof n=="string"&&n?n:void 0}function In(e,t,n,r,s){if(!On(t)||Ey.some(i=>t[i]===!0))return null;let o=t.command;return typeof o!="string"||!o?null:Ee(o,{host:e,sessionId:Ty(n),cwd:Ay(n,t)},le()?null:r,s)}function ht(e,t){return JSON.stringify({hookSpecificOutput:{hookEventName:"PreToolUse",updatedInput:{...e,command:t}}})}function Ry(e){if(On(e))return e;if(typeof e!="string")return null;try{let t=JSON.parse(e);return On(t)?t:null}catch{return null}}function $y(e,t,n){if(typeof e.tool_name=="string"){if(!vy.has(e.tool_name))return he;let o=e.tool_input,i=In("copilot",o,e,t,n);return i?ht(o,i):he}if(e.toolName!=="bash")return he;let r=Ry(e.toolArgs),s=In("copilot",r,e,t,n);return s?JSON.stringify({modifiedArgs:{...r,command:s}}):he}function gt(e,t,n){return(r,s,o)=>{if(r.tool_name!==t)return he;let i=r.tool_input,a=In(e,i,r,s,o);return a?n(i,a):he}}var Cy=new Set(["run_terminal_command","Bash","bash"]);function Oy(e,t,n){let r=e.toolName??e.tool_name;if(typeof r!="string"||!Cy.has(r))return he;let s=e.toolInput??e.tool_input,o=In("grok",s,e,t,n);return o?ht(s,o):he}var Iy={copilot:$y,droid:gt("droid","Execute",ht),trae:gt("trae","RunCommand",ht),"qwen-code":gt("qwen-code","run_shell_command",ht),crush:gt("crush","bash",(e,t)=>JSON.stringify({updated_input:{command:t}})),junie:gt("junie","Bash",(e,t)=>JSON.stringify({updatedInput:{...e,command:t}})),zcode:gt("zcode","Bash",ht),grok:Oy};function Ja(e,t,n=ne(e),r=Q){return On(t)?Iy[e](t,n,r):he}function yt(e){return le()?null:ne(e)}function Ny(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"?"":Ia(t,e,yt(e),r,n.claudeDirs??$n(),n.pathEnv??process.env.PATH,n.launchArgs??qr)??"";case"cursor":return za(t,yt(e),r);case"gemini-cli":return Ua(t,yt(e),r);case"vibe":return Ba(t,(s,o)=>mt(s,"vibe",o,yt(e),r));case"antigravity":return Za(t,(s,o)=>mt(s,"antigravity",o,yt(e),r));default:return Ja(e,t,yt(e),r)}}function pt(e,t,n={}){let r=Ha(e,t);return r?Ny(r,e,n):n.fallback??""}var Py=new Set(["shell","bash","exec","run_shell_command","execute_shell_command"]);async function Dy(e){if(e.event!=="after_tool_call")return{action:"continue"};if(!Py.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=ua();if(!n&&(!s||!r))return{action:"continue"};let o=await lt();if(!o.enabled)return{action:"continue"};let i=await Rt();if(!i||!i.token)return{action:"continue"};let a=Lo(i);aa(a);let l=fn(i.allowedFilters,Fo(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 cr(t,n,c,{verbosity:o.outputVerbosity,yolo:s,exitCode:e.exit_code}),s&&r&&(f=await cr(t,r,c,{verbosity:o.outputVerbosity,yolo:s,exitCode:e.exit_code}))}finally{la()}let p=d.filteredBytes<d.rawBytes||f!=null&&f.filteredBytes<f.rawBytes,m=f?.output??r,x=m?d.output?`${d.output}
|
|
103
|
+
${m}`:m:d.output,y=Buffer.byteLength(n,"utf8")+Buffer.byteLength(r,"utf8"),T=ui(y,p?Buffer.byteLength(x,"utf8"):y,qi("codex"));return ai(T.raw,T.filtered,void 0,!1,"codex","sh",ii(t),process.cwd(),li(d)),await Go({cmd:t,filterId:d.filterId,rawBytes:d.rawBytes,filteredBytes:d.filteredBytes,plan:a}),await Jo({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 Fy=new Set(["before_tool_call","after_tool_call"]);async function Ly(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||!Fy.has(n.event)&&Qr(n).length>0)return pt(n,"codex");try{return JSON.stringify(await Dy(n))}catch(r){return process.stderr.write(`tkr-codex: ${r.message}
|
|
104
|
+
`),t}}async function Ga(){let e=await Ly(await at());e&&process.stdout.write(e)}Ga().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
|
|