@kodax-ai/kodax 0.7.97-beta.2 → 0.7.97-beta.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (161) hide show
  1. package/CHANGELOG.md +96 -0
  2. package/README.md +55 -2
  3. package/README_CN.md +37 -1
  4. package/dist/artifacts/dist/contract.js +1 -1
  5. package/dist/artifacts/dist/contract.js.map +1 -1
  6. package/dist/artifacts/dist/document-render.d.ts +1 -1
  7. package/dist/artifacts/dist/document-render.js +41 -10
  8. package/dist/artifacts/dist/document-render.js.map +1 -1
  9. package/dist/artifacts/dist/kodax.js +1 -1
  10. package/dist/artifacts/dist/kodax.js.map +1 -1
  11. package/dist/artifacts/dist/libreoffice.d.ts +6 -1
  12. package/dist/artifacts/dist/libreoffice.js +37 -13
  13. package/dist/artifacts/dist/libreoffice.js.map +1 -1
  14. package/dist/artifacts/dist/runtime.js +13 -6
  15. package/dist/artifacts/dist/runtime.js.map +1 -1
  16. package/dist/artifacts/skills/artifact-review/SKILL.md +5 -1
  17. package/dist/chunks/agent-NWQPMZ7B.js +2 -0
  18. package/dist/chunks/agent-adapter-V3IPADCX.js +2 -0
  19. package/dist/chunks/argument-completer-VNKHT4X4.js +2 -0
  20. package/dist/chunks/{bedrock-native-Z5VNWF5U.js → bedrock-native-OEPOBW6W.js} +1 -1
  21. package/dist/chunks/{chunk-NSR4RW2F.js → chunk-3I2MIS4D.js} +1 -1
  22. package/dist/chunks/{chunk-RYBUYHDL.js → chunk-3Y5PBEOD.js} +1 -1
  23. package/dist/chunks/chunk-4FVCMKG2.js +20 -0
  24. package/dist/chunks/{chunk-F6GJXQNA.js → chunk-4GYXZTOD.js} +7 -7
  25. package/dist/chunks/{chunk-EISRVOBJ.js → chunk-4Z7ZHL6V.js} +2 -2
  26. package/dist/chunks/{chunk-W2CWO4PQ.js → chunk-576AAIQM.js} +1 -1
  27. package/dist/chunks/chunk-5E2P4RYS.js +4 -0
  28. package/dist/chunks/{chunk-X5M7TLJV.js → chunk-5LFQ5FVY.js} +1 -1
  29. package/dist/chunks/{chunk-WMMESRP3.js → chunk-6RDMSU4B.js} +1 -1
  30. package/dist/chunks/{chunk-3CP7AUWY.js → chunk-7BA4TSKC.js} +1 -1
  31. package/dist/chunks/{chunk-I325ER7D.js → chunk-AUU3N4V4.js} +1 -1
  32. package/dist/chunks/{chunk-DCE7XQUG.js → chunk-AYDLX2UK.js} +1 -1
  33. package/dist/chunks/{chunk-D36OIMV7.js → chunk-BP3NAYKY.js} +64 -64
  34. package/dist/chunks/{chunk-6TITQQAI.js → chunk-BSCSKJNC.js} +230 -229
  35. package/dist/chunks/{chunk-2HH5AS7E.js → chunk-DAQGOWKD.js} +88 -462
  36. package/dist/chunks/{chunk-UF3GZ5PO.js → chunk-EZF6ZRCO.js} +1 -1
  37. package/dist/chunks/chunk-F2TFWNVZ.js +2 -0
  38. package/dist/chunks/{chunk-53CJDQS2.js → chunk-FVXZ5L33.js} +1 -1
  39. package/dist/chunks/{chunk-MCDZNQWD.js → chunk-G32BMSHH.js} +75 -71
  40. package/dist/chunks/chunk-HJLYZ5AX.js +361 -0
  41. package/dist/chunks/{chunk-P55RJIOG.js → chunk-IOIFCU46.js} +1 -1
  42. package/dist/chunks/{chunk-DV5YPYLW.js → chunk-IR46ZHXU.js} +1 -1
  43. package/dist/chunks/chunk-NJDR5EEF.js +6 -0
  44. package/dist/chunks/{chunk-KDSO7V4O.js → chunk-OC3DQXN6.js} +1 -1
  45. package/dist/chunks/{chunk-J2L2NK6E.js → chunk-OMVAPRQI.js} +90 -57
  46. package/dist/chunks/chunk-OXCB2TRF.js +42 -0
  47. package/dist/chunks/{chunk-C6JGLEYD.js → chunk-P6R6V7EW.js} +1 -1
  48. package/dist/chunks/{chunk-SK3RRGHJ.js → chunk-PFBZ4ZXO.js} +28 -28
  49. package/dist/chunks/{chunk-V2XJSFFE.js → chunk-QDE6THC5.js} +1 -1
  50. package/dist/chunks/{chunk-EPK6EWRI.js → chunk-QRYEP34M.js} +1 -1
  51. package/dist/chunks/chunk-ROWYE472.js +460 -0
  52. package/dist/chunks/{chunk-R42S4BLA.js → chunk-SQGESMNC.js} +1 -1
  53. package/dist/chunks/{chunk-XZSFUGPN.js → chunk-U73VEVMP.js} +1 -1
  54. package/dist/chunks/{chunk-D425EZGC.js → chunk-V2TG7GNW.js} +1 -1
  55. package/dist/chunks/{chunk-QSZCR5GC.js → chunk-VRO2CDBY.js} +97 -97
  56. package/dist/chunks/{chunk-BBZWF2EA.js → chunk-WMQQQY3D.js} +1 -1
  57. package/dist/chunks/{chunk-JAF2YLZO.js → chunk-X3YYJJTF.js} +2 -2
  58. package/dist/chunks/{chunk-UL6YIT4M.js → chunk-XYRI6ER5.js} +1 -1
  59. package/dist/chunks/chunk-YRPB3LID.js +3 -0
  60. package/dist/chunks/{chunk-5MUVRFMU.js → chunk-ZDAU3LZ2.js} +1 -1
  61. package/dist/chunks/{chunk-WWPVEK6B.js → chunk-ZP3YSYWM.js} +10 -10
  62. package/dist/chunks/{client-LTIFNED5.js → client-NJ32JBC3.js} +1 -1
  63. package/dist/chunks/compaction-config-JBQGU3NO.js +2 -0
  64. package/dist/chunks/{construction-bootstrap-OAZKGI5Y.js → construction-bootstrap-CM47ZXG7.js} +1 -1
  65. package/dist/chunks/dist-O6BHIQEP.js +2 -0
  66. package/dist/chunks/{google-native-WLL27OV7.js → google-native-BV5GKT5B.js} +1 -1
  67. package/dist/chunks/host-PI5NL4W4.js +2 -0
  68. package/dist/chunks/{mistral-native-JXPIDDYZ.js → mistral-native-X42JCFZH.js} +1 -1
  69. package/dist/chunks/{model-DZF6URW3.js → model-MT3WJX76.js} +1 -1
  70. package/dist/chunks/{permission-YVVMLQ5I.js → permission-YVDVSE6H.js} +1 -1
  71. package/dist/chunks/{pi-messages-5LLOZH57.js → pi-messages-DVJANXV5.js} +1 -1
  72. package/dist/chunks/readline-helpers-5JS7UGTE.js +2 -0
  73. package/dist/chunks/run-manager-Y6VYEWSJ.js +2 -0
  74. package/dist/chunks/running-session-ANMBA5XV.js +2 -0
  75. package/dist/chunks/skills-XL2XIBWV.js +2 -0
  76. package/dist/chunks/{tool-dispatch-MLM3QTSU.js → tool-dispatch-2FOG65FC.js} +1 -1
  77. package/dist/chunks/{utils-2QNMYRGA.js → utils-XZ22R6VB.js} +1 -1
  78. package/dist/client-history.js +2 -0
  79. package/dist/history-turn.js +3 -0
  80. package/dist/index.d.ts +19 -19
  81. package/dist/index.js +2 -2
  82. package/dist/kodax_bootstrap.js +1 -1
  83. package/dist/kodax_cli.js +1472 -1810
  84. package/dist/kodax_doctor.js +1 -1
  85. package/dist/maintenance-scheduler.js +2 -0
  86. package/dist/manual-topics.json +32 -3
  87. package/dist/native/win32-x64/kodax-windows-sandbox.exe +0 -0
  88. package/dist/native/win32-x64/kodax-windows-text-transaction.node +0 -0
  89. package/dist/native/win32-x64/manifest.json +2 -2
  90. package/dist/one-shot-task.js +1 -1
  91. package/dist/provider-auth-cli.js +1 -1
  92. package/dist/runtime-daemon-schema.json +1 -1
  93. package/dist/sandbox-network-broker.js +93 -441
  94. package/dist/sdk-a2a.d.ts +13 -13
  95. package/dist/sdk-a2a.js +1 -1
  96. package/dist/sdk-agent.d.ts +17 -12
  97. package/dist/sdk-agent.js +1 -1
  98. package/dist/sdk-client.d.ts +6 -6
  99. package/dist/sdk-client.js +1 -1
  100. package/dist/sdk-coding.d.ts +17 -17
  101. package/dist/sdk-coding.js +1 -1
  102. package/dist/sdk-experimental-memory.d.ts +2 -2
  103. package/dist/sdk-experimental-memory.js +1 -1
  104. package/dist/sdk-llm.d.ts +4 -2
  105. package/dist/sdk-llm.js +1 -1
  106. package/dist/sdk-mcp.js +1 -1
  107. package/dist/sdk-media.d.ts +13 -13
  108. package/dist/sdk-media.js +1 -1
  109. package/dist/sdk-repl.d.ts +16 -16
  110. package/dist/sdk-repl.js +1 -1
  111. package/dist/sdk-runtime.d.ts +46 -46
  112. package/dist/sdk-runtime.js +1 -1
  113. package/dist/sdk-sandbox.js +1 -1
  114. package/dist/sdk-session.d.ts +7 -7
  115. package/dist/sdk-session.js +1 -1
  116. package/dist/sdk-skills.js +1 -1
  117. package/dist/semantic-worker.js +87 -435
  118. package/dist/storage-repair-cli.js +1 -1
  119. package/dist/types-chunks/{bash-prefix-extractor.d-CJliu5-D.d.ts → bash-prefix-extractor.d-BghXa_md.d.ts} +9 -3
  120. package/dist/types-chunks/{capsule.d-EMwSALqK.d.ts → capsule.d-BTlvC5qq.d.ts} +4 -4
  121. package/dist/types-chunks/{client-contract-B7q69yMA.d.ts → client-contract-B7ZSFKTv.d.ts} +52 -4
  122. package/dist/types-chunks/{controller.d-C0SAuNKu.d.ts → controller.d-Btu5FDdw.d.ts} +1 -1
  123. package/dist/types-chunks/{controller.d-D-hPLKaA.d.ts → controller.d-D6rEz5LS.d.ts} +3 -3
  124. package/dist/types-chunks/{history-retrieval.d-BwEUR9cb.d.ts → history-retrieval.d-B_AriUJp.d.ts} +1 -1
  125. package/dist/types-chunks/{manifest.d-YE3-AIeO.d.ts → manifest.d-Yyce-hHj.d.ts} +1 -1
  126. package/dist/types-chunks/{public-api.d-BhDU643p.d.ts → public-api.d-BLv3lFmw.d.ts} +9 -4
  127. package/dist/types-chunks/{review-inbox.d-Bgt46S7L.d.ts → review-inbox.d-yREk25Vf.d.ts} +2 -0
  128. package/dist/types-chunks/{review-packet.d-ChOfJaNI.d.ts → review-packet.d-xwXxHmML.d.ts} +1 -1
  129. package/dist/types-chunks/{run-manager.d-ChzguipG.d.ts → run-manager.d-D4sa9JYz.d.ts} +26 -12
  130. package/dist/types-chunks/{runtime-client-info-P_mRDG7j.d.ts → runtime-client-info-oRMrkHmb.d.ts} +2 -2
  131. package/dist/types-chunks/{runtime-event-BW5Pla7a.d.ts → runtime-event-BOyaILWg.d.ts} +3 -1
  132. package/dist/types-chunks/{sdk-runtime-cDe7qmN3.d.ts → sdk-runtime-CYyXmQok.d.ts} +27 -13
  133. package/dist/types-chunks/{sdk-session-D3pcSbnA.d.ts → sdk-session-D6mS5qgO.d.ts} +6 -3
  134. package/dist/types-chunks/{skill-invocation-error.d-gsNNDnnt.d.ts → skill-invocation-error.d-Be3qg4JQ.d.ts} +3 -3
  135. package/dist/types-chunks/{trusted-repl-entry-Bbkd2HlO.d.ts → trusted-repl-entry-YWNc4m-Z.d.ts} +7 -7
  136. package/dist/types-chunks/{types.d-BlXTogOo.d.ts → types.d-BQ-hbni4.d.ts} +1 -1
  137. package/dist/types-chunks/{utils.d-CxHyBvO6.d.ts → utils.d-C0F3Uf2X.d.ts} +6 -6
  138. package/dist/windows-effect-job-programs.json +4 -0
  139. package/docs/ARTIFACT_SDK.md +3 -3
  140. package/docs/CLIENT_CONTRACT.md +4 -2
  141. package/docs/SDK_MIGRATION.md +9 -5
  142. package/docs/SPACE_SDK_SEAMS.md +12 -1
  143. package/package.json +4 -3
  144. package/public_docs/README.md +10 -3
  145. package/public_docs/sdk/embedder-guide.md +1 -1
  146. package/dist/chunks/agent-DS7M57WD.js +0 -2
  147. package/dist/chunks/agent-adapter-TLWGGK3V.js +0 -2
  148. package/dist/chunks/argument-completer-OGCXKTRQ.js +0 -2
  149. package/dist/chunks/chunk-GJXOTOZB.js +0 -465
  150. package/dist/chunks/chunk-KE2NBMAP.js +0 -20
  151. package/dist/chunks/chunk-OGTRDK4Q.js +0 -359
  152. package/dist/chunks/chunk-R2HTPDI7.js +0 -2
  153. package/dist/chunks/chunk-SDPZFH6M.js +0 -4
  154. package/dist/chunks/chunk-XDMNJW6J.js +0 -42
  155. package/dist/chunks/compaction-config-ECMOFP5H.js +0 -2
  156. package/dist/chunks/dist-5J53DGAO.js +0 -2
  157. package/dist/chunks/host-65E5NM5P.js +0 -2
  158. package/dist/chunks/readline-helpers-UZXWBRXQ.js +0 -2
  159. package/dist/chunks/run-manager-ZFACIZM2.js +0 -2
  160. package/dist/chunks/running-session-Q5Y6A2QV.js +0 -2
  161. package/dist/chunks/skills-TJP6BLZJ.js +0 -2
@@ -1,5 +1,5 @@
1
1
  // @kodax-ai/kodax — bundled distribution. See docs/ADR.md ADR-022 + ADR-024.
2
- var Nl=Object.defineProperty;var o=(e,t)=>Nl(e,"name",{value:t,configurable:!0});var p=(e,t)=>()=>(e&&(t=e(e=0)),t);var xs=(e,t)=>{for(var n in t)Nl(e,n,{get:t[n],enumerable:!0})};var Fl=p(()=>{"use strict"});var _s=p(()=>{"use strict"});import{homedir as Yy}from"node:os";import{isAbsolute as rQ,normalize as Gy,resolve as By,sep as Ll}from"node:path";import{join as Zy}from"node:path";function Mt(){if(ql)return ql;let e=process.env[Hy];return e&&e.length>0?e:Zy(Yy(),Ky)}function Xt(e,t){let n=o(a=>{let c=Gy(By(a));return process.platform==="win32"?c.toLowerCase():c},"comparable"),r=n(e),i=n(t),s=i.endsWith(Ll)?i:`${i}${Ll}`;return r===i||r.startsWith(s)}var Ky,Hy,ql,G=p(()=>{"use strict";Ky=".kodax",Hy="KODAX_HOME";o(Mt,"getAgentConfigHome");o(Xt,"isPathInsideDirectory")});var Ts=p(()=>{"use strict";_s();G()});var zl=p(()=>{"use strict"});var jt=p(()=>{"use strict"});var Bn=p(()=>{"use strict"});var Ul=p(()=>{"use strict"});var Es=p(()=>{"use strict"});var Wt=p(()=>{"use strict"});var pi=p(()=>{"use strict";Wt()});var B=p(()=>{"use strict"});var Rs=p(()=>{"use strict";B()});var ln=p(()=>{"use strict"});function Is(e){if(e===void 0)return;if(!e||typeof e!="object"||Array.isArray(e))throw new Error("Invalid cache capabilities.");let t=e,n={"openai-retention":["24h"],"openai-options":["30m","12h"],anthropic:["1h"],bedrock:["1h"],pi:[],affinity:[]};if(t.affinityHeader!==void 0&&!["x-session-affinity","x-affinity"].includes(t.affinityHeader)||!Object.hasOwn(n,t.dialect)||t.longTtl!==void 0&&!n[t.dialect]?.includes(t.longTtl)||t.locations!==void 0&&(!Array.isArray(t.locations)||t.locations.some(r=>!["system","tools","messages"].includes(r)))||t.maxCheckpoints!==void 0&&(!Number.isSafeInteger(t.maxCheckpoints)||t.maxCheckpoints<1))throw new Error("Invalid declared cache dialect, lifetime or checkpoints.")}var mi=p(()=>{"use strict";B();o(Is,"validateCacheCapabilities")});import{AsyncLocalStorage as ew}from"node:async_hooks";var DQ,J=p(()=>{"use strict";B();mi();ln();DQ=new ew});function tw(e){if(!e||typeof e!="object"||Array.isArray(e))throw new Error("Tool constraints require an object schema.");return e}function hi(e){if(e===void 0)return;let t=tw(e);if(t.strict!==void 0&&typeof t.strict!="boolean"||t.grammar!==void 0&&(!Array.isArray(t.grammar)||t.grammar.some(n=>!["lark","regex"].includes(n))))throw new Error("Invalid declared tool capabilities.")}var Ae=p(()=>{"use strict";B();o(tw,"record");o(hi,"validateToolCapabilities")});import{AsyncLocalStorage as un}from"node:async_hooks";var YQ,GQ,BQ,ZQ,KQ,HQ,me=p(()=>{"use strict";ln();YQ=new un,GQ=new un,BQ=new un,ZQ=new un,KQ=new un,HQ=new un});function Qs(e,t){let n=Yl.get(e);return n&&Yl.set(t,n),t}var Yl,Dt=p(()=>{"use strict";Yl=new WeakMap;o(Qs,"inheritRejectedImage")});var $s=p(()=>{"use strict"});var fn=p(()=>{"use strict"});function As(e){return e.startsWith(Gl)}function gi(){throw new Error("Invalid or expired cloud request credential.")}function nw(e){try{if(!As(e))return gi();let t=JSON.parse(Buffer.from(e.slice(Gl.length),"base64url").toString("utf8"));if(!t||typeof t!="object")return gi();let n=t;return typeof n.provider!="string"||!n.provider.trim()?gi():{provider:n.provider,credential:n.credential}}catch{return gi()}}function Bl(e){if(!As(e))return[];try{let t=nw(e).credential;if(!t||typeof t!="object")return[];let n=t;return["key","token","accessKeyId","secretAccessKey","sessionToken"].flatMap(r=>typeof n[r]=="string"&&n[r]?[n[r]]:[])}catch{return[]}}var Gl,Oi=p(()=>{"use strict";Gl="kodax-cloud-v1:";o(As,"isCloudCredentialCarrier");o(gi,"invalid");o(nw,"unpack");o(Bl,"cloudCredentialSecrets")});import{AsyncLocalStorage as rw}from"node:async_hooks";function pn(e){let t=iw.getStore(),n=t?.kind==="exact"&&t.isActive()?t.credential:void 0;return n?yi(e,ow(n),new WeakMap):e}function ow(e){let t=[e,...Bl(e)].sort((n,r)=>r.length-n.length);return new RegExp(t.map(n=>n.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")).join("|")+"|\\[REDACTED_CREDENTIAL\\]","g")}function Zn(e,t){return e.replace(t,"[REDACTED_CREDENTIAL]")}function sw(e,t,n){let r=e instanceof DOMException?new DOMException(Zn(e.message,t),Zn(e.name,t)):new Error;Object.setPrototypeOf(r,Object.getPrototypeOf(e));let i=Object.getOwnPropertyDescriptor(r,"stack")?.get;delete r.stack,n.set(e,r);for(let s of Reflect.ownKeys(e)){let a=Object.getOwnPropertyDescriptor(e,s);if(s==="stack"&&a?.get&&a.get===i&&(a={configurable:a.configurable,enumerable:a.enumerable,writable:!0,value:e.stack}),a===void 0||!("value"in a))continue;let c=typeof s=="string"?Zn(s,t):s;Object.prototype.hasOwnProperty.call(r,c)||Object.defineProperty(r,c,{...a,value:yi(a.value,t,n)})}return Qs(e,r)}function yi(e,t,n){if(typeof e=="string")return Zn(e,t);if(e===null||typeof e!="object")return e;let r=n.get(e);if(r!==void 0)return r;if(e instanceof Error)return sw(e,t,n);if(Array.isArray(e)){let s=[];n.set(e,s);for(let a of e)s.push(yi(a,t,n));return s}let i={};n.set(e,i);for(let[s,a]of Object.entries(Object.getOwnPropertyDescriptors(e))){if(!a.enumerable||!("value"in a))continue;let c=Zn(s,t);i[c]=yi(a.value,t,n)}return i}var iw,ee=p(()=>{"use strict";Dt();$s();fn();B();Oi();me();iw=new rw;o(pn,"redactScopedProviderCredential");o(ow,"redactionPattern");o(Zn,"redactText");o(sw,"redactCredentialError");o(yi,"redactCredentialValue")});import{AsyncLocalStorage as aw}from"node:async_hooks";var x$,ct=p(()=>{"use strict";x$=new aw});var Cs=p(()=>{"use strict";J()});var Kn=p(()=>{"use strict"});var Zl=p(()=>{"use strict"});var Hn=p(()=>{"use strict"});var Ms=p(()=>{"use strict"});var mn=p(()=>{"use strict"});var bi=p(()=>{"use strict"});var hn,Kl,vi,Hl,dt=p(()=>{"use strict";hn={transport:"native-api",conversationSemantics:"full-history",mcpSupport:"none",contextFidelity:"full",toolCallingFidelity:"full",sessionSupport:"full",longRunningSupport:"full",multimodalSupport:"none",evidenceSupport:"full"},Kl={...hn,multimodalSupport:"image-input"},vi={transport:"cli-bridge",conversationSemantics:"last-user-message",mcpSupport:"none",contextFidelity:"lossy",toolCallingFidelity:"limited",sessionSupport:"stateless",longRunningSupport:"limited",multimodalSupport:"none",evidenceSupport:"limited"},Hl={...vi,multimodalSupport:"image-input"}});var Jn=p(()=>{"use strict"});var Nt=p(()=>{"use strict";Jn()});var gn=p(()=>{"use strict";Kn();Dt();Ae();J();fn();J();ct();me();B();Zl();Hn();Ms();mn();ee();bi();Wt();ct();dt();Nt()});import{parse as PA}from"partial-json";var xi=p(()=>{"use strict"});var nr=p(()=>{"use strict"});var Ft=p(()=>{"use strict";ee()});var rr=p(()=>{"use strict"});import{AsyncLocalStorage as ww}from"node:async_hooks";var MA,XA,Ls=p(()=>{"use strict";MA=10*1024*1024,XA=ww.snapshot()});import{AsyncLocalStorage as Sw}from"node:async_hooks";var FA,Ce=p(()=>{"use strict";Ls();FA=new Sw});var su=p(()=>{"use strict"});var yn=p(()=>{"use strict";Dt();J();J();Ae();Cs();me();gn();B();xi();nr();Wt();Ft();Nt();rr();ee();Ce();ct();Jn();mn();su()});var sr=p(()=>{"use strict";Rs();ln();J();J();J();Ae();B();me();ee();ct();yn();Ce();pi();Dt();Ft();mn();Hn();Jn()});var yu=p(()=>{"use strict"});var Vs=p(()=>{"use strict"});var wu=p(()=>{"use strict";B()});var Su=p(()=>{"use strict";B()});var Ei=p(()=>{"use strict";mn();Es();ln();wu();J();Dt();J();Ae();Su();Cs();me();gn();xi();nr();B();Ft();Wt();Nt();rr();Ce();ct();ee()});var _1,T1,E1,R1,Ys=p(()=>{"use strict";_1=Object.freeze({status:"terminated"}),T1=Object.freeze({status:"already-exited"}),E1=Object.freeze({status:"unknown"}),R1=String.raw`
2
+ var Ll=Object.defineProperty;var o=(e,t)=>Ll(e,"name",{value:t,configurable:!0});var p=(e,t)=>()=>(e&&(t=e(e=0)),t);var xs=(e,t)=>{for(var n in t)Ll(e,n,{get:t[n],enumerable:!0})};var ql=p(()=>{"use strict"});var Ps=p(()=>{"use strict"});import{homedir as Yy}from"node:os";import{isAbsolute as J0,normalize as Gy,resolve as By,sep as zl}from"node:path";import{join as Zy}from"node:path";function Xt(){if(Ul)return Ul;let e=process.env[Hy];return e&&e.length>0?e:Zy(Yy(),Ky)}function jt(e,t){let n=o(a=>{let c=Gy(By(a));return process.platform==="win32"?c.toLowerCase():c},"comparable"),r=n(e),i=n(t),s=i.endsWith(zl)?i:`${i}${zl}`;return r===i||r.startsWith(s)}var Ky,Hy,Ul,G=p(()=>{"use strict";Ky=".kodax",Hy="KODAX_HOME";o(Xt,"getAgentConfigHome");o(jt,"isPathInsideDirectory")});var _s=p(()=>{"use strict";Ps();G()});var Vl=p(()=>{"use strict"});var ct=p(()=>{"use strict"});var ln=p(()=>{"use strict"});var Yl=p(()=>{"use strict"});var Ts=p(()=>{"use strict"});var Wt=p(()=>{"use strict"});var mi=p(()=>{"use strict";Wt()});var B=p(()=>{"use strict"});var Es=p(()=>{"use strict";B()});var un=p(()=>{"use strict"});function Rs(e){if(e===void 0)return;if(!e||typeof e!="object"||Array.isArray(e))throw new Error("Invalid cache capabilities.");let t=e,n={"openai-retention":["24h"],"openai-options":["30m","12h"],anthropic:["1h"],bedrock:["1h"],pi:[],affinity:[]};if(t.affinityHeader!==void 0&&!["x-session-affinity","x-affinity"].includes(t.affinityHeader)||!Object.hasOwn(n,t.dialect)||t.longTtl!==void 0&&!n[t.dialect]?.includes(t.longTtl)||t.locations!==void 0&&(!Array.isArray(t.locations)||t.locations.some(r=>!["system","tools","messages"].includes(r)))||t.maxCheckpoints!==void 0&&(!Number.isSafeInteger(t.maxCheckpoints)||t.maxCheckpoints<1))throw new Error("Invalid declared cache dialect, lifetime or checkpoints.")}var hi=p(()=>{"use strict";B();o(Rs,"validateCacheCapabilities")});import{AsyncLocalStorage as ew}from"node:async_hooks";var MQ,J=p(()=>{"use strict";B();hi();un();MQ=new ew});function tw(e){if(!e||typeof e!="object"||Array.isArray(e))throw new Error("Tool constraints require an object schema.");return e}function gi(e){if(e===void 0)return;let t=tw(e);if(t.strict!==void 0&&typeof t.strict!="boolean"||t.grammar!==void 0&&(!Array.isArray(t.grammar)||t.grammar.some(n=>!["lark","regex"].includes(n))))throw new Error("Invalid declared tool capabilities.")}var Ce=p(()=>{"use strict";B();o(tw,"record");o(gi,"validateToolCapabilities")});import{AsyncLocalStorage as fn}from"node:async_hooks";var qQ,zQ,UQ,VQ,YQ,GQ,me=p(()=>{"use strict";un();qQ=new fn,zQ=new fn,UQ=new fn,VQ=new fn,YQ=new fn,GQ=new fn});function Is(e,t){let n=Bl.get(e);return n&&Bl.set(t,n),t}var Bl,Nt=p(()=>{"use strict";Bl=new WeakMap;o(Is,"inheritRejectedImage")});var Qs=p(()=>{"use strict"});var pn=p(()=>{"use strict"});function $s(e){return e.startsWith(Zl)}function Oi(){throw new Error("Invalid or expired cloud request credential.")}function nw(e){try{if(!$s(e))return Oi();let t=JSON.parse(Buffer.from(e.slice(Zl.length),"base64url").toString("utf8"));if(!t||typeof t!="object")return Oi();let n=t;return typeof n.provider!="string"||!n.provider.trim()?Oi():{provider:n.provider,credential:n.credential}}catch{return Oi()}}function Kl(e){if(!$s(e))return[];try{let t=nw(e).credential;if(!t||typeof t!="object")return[];let n=t;return["key","token","accessKeyId","secretAccessKey","sessionToken"].flatMap(r=>typeof n[r]=="string"&&n[r]?[n[r]]:[])}catch{return[]}}var Zl,yi=p(()=>{"use strict";Zl="kodax-cloud-v1:";o($s,"isCloudCredentialCarrier");o(Oi,"invalid");o(nw,"unpack");o(Kl,"cloudCredentialSecrets")});import{AsyncLocalStorage as rw}from"node:async_hooks";function mn(e){let t=iw.getStore(),n=t?.kind==="exact"&&t.isActive()?t.credential:void 0;return n?wi(e,ow(n),new WeakMap):e}function ow(e){let t=[e,...Kl(e)].sort((n,r)=>r.length-n.length);return new RegExp(t.map(n=>n.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")).join("|")+"|\\[REDACTED_CREDENTIAL\\]","g")}function Zn(e,t){return e.replace(t,"[REDACTED_CREDENTIAL]")}function sw(e,t,n){let r=e instanceof DOMException?new DOMException(Zn(e.message,t),Zn(e.name,t)):new Error;Object.setPrototypeOf(r,Object.getPrototypeOf(e));let i=Object.getOwnPropertyDescriptor(r,"stack")?.get;delete r.stack,n.set(e,r);for(let s of Reflect.ownKeys(e)){let a=Object.getOwnPropertyDescriptor(e,s);if(s==="stack"&&a?.get&&a.get===i&&(a={configurable:a.configurable,enumerable:a.enumerable,writable:!0,value:e.stack}),a===void 0||!("value"in a))continue;let c=typeof s=="string"?Zn(s,t):s;Object.prototype.hasOwnProperty.call(r,c)||Object.defineProperty(r,c,{...a,value:wi(a.value,t,n)})}return Is(e,r)}function wi(e,t,n){if(typeof e=="string")return Zn(e,t);if(e===null||typeof e!="object")return e;let r=n.get(e);if(r!==void 0)return r;if(e instanceof Error)return sw(e,t,n);if(Array.isArray(e)){let s=[];n.set(e,s);for(let a of e)s.push(wi(a,t,n));return s}let i={};n.set(e,i);for(let[s,a]of Object.entries(Object.getOwnPropertyDescriptors(e))){if(!a.enumerable||!("value"in a))continue;let c=Zn(s,t);i[c]=wi(a.value,t,n)}return i}var iw,ee=p(()=>{"use strict";Nt();Qs();pn();B();yi();me();iw=new rw;o(mn,"redactScopedProviderCredential");o(ow,"redactionPattern");o(Zn,"redactText");o(sw,"redactCredentialError");o(wi,"redactCredentialValue")});import{AsyncLocalStorage as aw}from"node:async_hooks";var b$,dt=p(()=>{"use strict";b$=new aw});var As=p(()=>{"use strict";J()});var Kn=p(()=>{"use strict"});var Hl=p(()=>{"use strict"});var Hn=p(()=>{"use strict"});var Cs=p(()=>{"use strict"});var hn=p(()=>{"use strict"});var vi=p(()=>{"use strict"});var gn,Jl,ki,eu,lt=p(()=>{"use strict";gn={transport:"native-api",conversationSemantics:"full-history",mcpSupport:"none",contextFidelity:"full",toolCallingFidelity:"full",sessionSupport:"full",longRunningSupport:"full",multimodalSupport:"none",evidenceSupport:"full"},Jl={...gn,multimodalSupport:"image-input"},ki={transport:"cli-bridge",conversationSemantics:"last-user-message",mcpSupport:"none",contextFidelity:"lossy",toolCallingFidelity:"limited",sessionSupport:"stateless",longRunningSupport:"limited",multimodalSupport:"none",evidenceSupport:"limited"},eu={...ki,multimodalSupport:"image-input"}});var Jn=p(()=>{"use strict"});var Dt=p(()=>{"use strict";Jn()});var On=p(()=>{"use strict";Kn();Nt();Ce();J();pn();J();dt();me();B();Hl();Hn();Cs();hn();ee();vi();Wt();dt();lt();Dt()});import{parse as bA}from"partial-json";var _i=p(()=>{"use strict"});var nr=p(()=>{"use strict"});var Ft=p(()=>{"use strict";ee()});var rr=p(()=>{"use strict"});import{AsyncLocalStorage as ww}from"node:async_hooks";var $A,AA,Fs=p(()=>{"use strict";$A=10*1024*1024,AA=ww.snapshot()});import{AsyncLocalStorage as Sw}from"node:async_hooks";var WA,xe=p(()=>{"use strict";Fs();WA=new Sw});var cu=p(()=>{"use strict"});var wn=p(()=>{"use strict";Nt();J();J();Ce();As();me();On();B();_i();nr();Wt();Ft();Dt();rr();ee();xe();dt();Jn();hn();cu()});var sr=p(()=>{"use strict";Es();un();J();J();J();Ce();B();me();ee();dt();wn();xe();mi();Nt();Ft();hn();Hn();Jn()});var wu=p(()=>{"use strict"});var Vs=p(()=>{"use strict"});var Su=p(()=>{"use strict";B()});var bu=p(()=>{"use strict";B()});var Ri=p(()=>{"use strict";hn();Ts();un();Su();J();Nt();J();Ce();bu();As();me();On();_i();nr();B();Ft();Wt();Dt();rr();xe();dt();ee()});var v1,k1,x1,P1,Ys=p(()=>{"use strict";v1=Object.freeze({status:"terminated"}),k1=Object.freeze({status:"already-exited"}),x1=Object.freeze({status:"unknown"}),P1=String.raw`
3
3
  using System;
4
4
  using System.Runtime.InteropServices;
5
5
  using System.Text;
@@ -86,14 +86,25 @@ public static class KodaXNativeProcessSnapshot {
86
86
  CloseHandle(snapshot);
87
87
  }
88
88
  }
89
- }`});var bu=p(()=>{"use strict";Ys()});var Ri=p(()=>{"use strict";gn();bu();dt();rr()});var Gs=p(()=>{"use strict";Ys()});var Bs=p(()=>{"use strict"});var vu=p(()=>{"use strict";Gs();Bs()});var Zs=p(()=>{"use strict"});import ku from"node:fs";import Pu from"node:os";import xu from"node:path";function _u(e){let t=new Set,n=[];for(let r of e){let i=r.trim();if(!i)continue;let s=i.toLowerCase();t.has(s)||(t.add(s),n.push(i))}return n}function Lw(){let e=xu.join(Pu.homedir(),".codex","config.toml");try{return ku.readFileSync(e,"utf8").match(/^\s*model\s*=\s*"([^"]+)"/m)?.[1]?.trim()||null}catch{return null}}function qw(){let e=xu.join(Pu.homedir(),".gemini","settings.json");try{let t=JSON.parse(ku.readFileSync(e,"utf8")),n=typeof t.model=="string"?t.model.trim():"";return n||(typeof t.general?.model=="string"?t.general.model.trim():"")||null}catch{return null}}function wn(){return Lw()||Ww}function Sn(){return qw()||Dw}function ar(){return _u([wn(),...Nw])}function cr(){return _u([Sn(),...Fw])}var Ww,Dw,Nw,Fw,dr=p(()=>{"use strict";Ww="gpt-5.4",Dw="auto-gemini-3",Nw=["gpt-5.4","gpt-5.3-codex","gpt-5.3-codex-spark"],Fw=["auto-gemini-3","gemini-3.1-pro-preview","gemini-3-flash-preview","gemini-2.5-pro","gemini-2.5-flash"];o(_u,"dedupePreserveOrder");o(Lw,"readCodexConfiguredModel");o(qw,"readGeminiConfiguredModel");o(wn,"getCodexCliDefaultModel");o(Sn,"getGeminiCliDefaultModel");o(ar,"getCodexCliKnownModels");o(cr,"getGeminiCliKnownModels")});var uM,fM,Tu=p(()=>{"use strict";Ri();vu();Zs();dr();dt();uM=Sn(),fM=cr()});var Eu=p(()=>{"use strict";Gs();Bs()});var PM,xM,Ru=p(()=>{"use strict";Ri();Eu();Zs();dr();PM=wn(),xM=ar()});function Ii(e,t){if(e!==void 0){if(typeof e!="number"||!Number.isSafeInteger(e)||e<=0)throw new Error(`${t}.outputTokenLimit must be a positive safe integer`);return e}}var Hs=p(()=>{"use strict";o(Ii,"optionalOutputTokenLimit")});function Ve(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function qt(e,t){if(typeof e!="string"||e.length===0)throw new Error(`provider-capabilities.json: ${t} must be a non-empty string`);return e}function Lt(e,t){if(e!==void 0)return qt(e,t)}function Du(e,t){if(e!==void 0){if(typeof e!="string"||!Cu.includes(e))throw new Error(`provider-capabilities.json: ${t} must be one of ${Cu.join(", ")}, got ${JSON.stringify(e)}`);return e}}function lt(e,t){if(e!==void 0){if(typeof e!="number"||!Number.isFinite(e)||e<0)throw new Error(`provider-capabilities.json: ${t} must be a non-negative finite number`);return e}}function Z(e,t){if(e!==void 0){if(typeof e!="boolean")throw new Error(`provider-capabilities.json: ${t} must be a boolean`);return e}}function ju(e,t){if(e!==void 0){if(!Array.isArray(e))throw new Error(`provider-capabilities.json: ${t} must be an array`);return e.map((n,r)=>qt(n,`${t}[${r}]`))}}function Uw(e,t){if(e===void 0)return;if(!Ve(e))throw new Error(`provider-capabilities.json: ${t} must be an object`);let n={};for(let[r,i]of Object.entries(e))n[r]=qt(i,`${t}.${r}`);return n}function Vw(e,t){if(e!==void 0){if(typeof e!="string"||!Au.includes(e))throw new Error(`provider-capabilities.json: ${t} must be one of ${Au.join(", ")}, got ${JSON.stringify(e)}`);return e}}function Js(e,t){if(typeof e!="string"||!Iu.includes(e))throw new Error(`provider-capabilities.json: ${t} must be one of ${Iu.join(", ")}, got ${JSON.stringify(e)}`);return e}function Yw(e,t){if(typeof e!="string"||!Qu.includes(e))throw new Error(`provider-capabilities.json: ${t} must be one of ${Qu.join(", ")}, got ${JSON.stringify(e)}`);return e}function Gw(e,t){if(e!==void 0){if(typeof e!="string"||!$u.includes(e))throw new Error(`provider-capabilities.json: ${t} must be one of ${$u.join(", ")}, got ${JSON.stringify(e)}`);return e}}function Wu(e,t){if(e===void 0)return;if(!Ve(e))throw new Error(`provider-capabilities.json: ${t} must be an object`);let n=Yw(e.effortStrategy,`${t}.effortStrategy`),r=Vw(e.reasoningPreset,`${t}.reasoningPreset`),i=Gw(e.thinkingStrategy,`${t}.thinkingStrategy`),s=Lt(e.defaultEffort,`${t}.defaultEffort`),a=Uw(e.effortAliases,`${t}.effortAliases`),c=ju(e.disabledEfforts,`${t}.disabledEfforts`),d=ju(e.localRejectEfforts,`${t}.localRejectEfforts`),l=Z(e.allowCustomEffort,`${t}.allowCustomEffort`),f=Z(e.supportsReasoningEffort,`${t}.supportsReasoningEffort`),u=Z(e.supportsReasoningSummary,`${t}.supportsReasoningSummary`),m=Z(e.supportsEncryptedReasoningReplay,`${t}.supportsEncryptedReasoningReplay`),g=Z(e.supportsAdaptiveThinking,`${t}.supportsAdaptiveThinking`),w=Z(e.supportsManualThinkingBudget,`${t}.supportsManualThinkingBudget`),k=Z(e.supportsDisabledThinking,`${t}.supportsDisabledThinking`),O=Z(e.requiresEffortBetaHeader,`${t}.requiresEffortBetaHeader`),y={effortStrategy:n};if(r!==void 0&&(y.reasoningPreset=r),i!==void 0&&(y.thinkingStrategy=i),s!==void 0&&(y.defaultEffort=s),a!==void 0&&(y.effortAliases=a),c!==void 0&&(y.disabledEfforts=c),d!==void 0&&(y.localRejectEfforts=d),e.supportedEfforts!==void 0){if(!Array.isArray(e.supportedEfforts))throw new Error(`provider-capabilities.json: ${t}.supportedEfforts must be an array`);y.supportedEfforts=e.supportedEfforts.map((b,P)=>{if(!Ve(b))throw new Error(`provider-capabilities.json: ${t}.supportedEfforts[${P}] must be an object`);return{value:qt(b.value,`${t}.supportedEfforts[${P}].value`),...Lt(b.description,`${t}.supportedEfforts[${P}].description`)!==void 0?{description:Lt(b.description,`${t}.supportedEfforts[${P}].description`)}:{},...Z(b.isDefault,`${t}.supportedEfforts[${P}].isDefault`)!==void 0?{isDefault:Z(b.isDefault,`${t}.supportedEfforts[${P}].isDefault`)}:{},...Z(b.isUserVisible,`${t}.supportedEfforts[${P}].isUserVisible`)!==void 0?{isUserVisible:Z(b.isUserVisible,`${t}.supportedEfforts[${P}].isUserVisible`)}:{}}})}if(e.budgetByEffort!==void 0){if(!Ve(e.budgetByEffort))throw new Error(`provider-capabilities.json: ${t}.budgetByEffort must be an object`);let b={};for(let[P,x]of Object.entries(e.budgetByEffort))b[P]=lt(x,`${t}.budgetByEffort.${P}`)??0;y.budgetByEffort=b}l!==void 0&&(y.allowCustomEffort=l),f!==void 0&&(y.supportsReasoningEffort=f),u!==void 0&&(y.supportsReasoningSummary=u),m!==void 0&&(y.supportsEncryptedReasoningReplay=m),g!==void 0&&(y.supportsAdaptiveThinking=g),w!==void 0&&(y.supportsManualThinkingBudget=w),k!==void 0&&(y.supportsDisabledThinking=k),O!==void 0&&(y.requiresEffortBetaHeader=O);for(let b of["supportsThinkingDisplay","supportsThinkingBlockBinding"]){let P=Z(e[b],`${t}.${b}`);P!==void 0&&Object.assign(y,{[b]:P})}return y}function Nu(e,t){let n=e.reasoningProfile,r=e.reasoningCapabilityV2;if(n!==void 0&&r!==void 0)throw new Error(`provider-capabilities.json: ${t} must not define both reasoningProfile and deprecated reasoningCapabilityV2`);return n!==void 0?Wu(n,`${t}.reasoningProfile`):Wu(r,`${t}.reasoningCapabilityV2`)}function Bw(e,t){if(typeof e!="string"||!Mu.includes(e))throw new Error(`provider-capabilities.json: ${t} must be one of ${Mu.join(", ")}, got ${JSON.stringify(e)}`);return e}function Zw(e,t){if(typeof e!="string"||!Xu.includes(e))throw new Error(`provider-capabilities.json: ${t} must be one of ${Xu.join(", ")}, got ${JSON.stringify(e)}`);return e}function Fu(e,t){try{hi(e.toolCapabilities),Is(e.cacheCapabilities)}catch(n){throw new Error(`${t}: ${n instanceof Error?n.message:"Invalid constraint metadata."}`)}return{...e.toolCapabilities?{toolCapabilities:structuredClone(e.toolCapabilities)}:{},...e.cacheCapabilities?{cacheCapabilities:structuredClone(e.cacheCapabilities)}:{}}}function Kw(e,t){if(!Ve(e))throw new Error(`provider-capabilities.json: ${t} must be an object`);let n=qt(e.id,`${t}.id`),r=Lt(e.wireModel,`${t}.wireModel`),i=Lt(e.displayName,`${t}.displayName`),s=Lt(e.multimodalSupport,`${t}.multimodalSupport`);if(s!==void 0&&!["none","image-input","full"].includes(s))throw new Error(`provider-capabilities.json: ${t}.multimodalSupport must be none, image-input or full`);let a=lt(e.contextWindow,`${t}.contextWindow`),c=lt(e.maxOutputTokens,`${t}.maxOutputTokens`),d=Du(e.maxOutputTokensField,`${t}.maxOutputTokensField`),l=Ii(e.outputTokenLimit,t),f=lt(e.thinkingBudgetCap,`${t}.thinkingBudgetCap`),u=Z(e.replayReasoningContent,`${t}.replayReasoningContent`),m=Z(e.strictThinkingSignature,`${t}.strictThinkingSignature`),g=lt(e.streamMaxDurationMs,`${t}.streamMaxDurationMs`),w=e.reasoningCapability===void 0?void 0:Js(e.reasoningCapability,`${t}.reasoningCapability`),k=Nu(e,t),O={id:n,...Fu(e,t)};for(let[y,b]of Object.entries({wireModel:r,displayName:i,multimodalSupport:s,contextWindow:a,maxOutputTokens:c,outputTokenLimit:l,maxOutputTokensField:d,thinkingBudgetCap:f,reasoningCapability:w,reasoningProfile:k,replayReasoningContent:u,strictThinkingSignature:m,streamMaxDurationMs:g}))b!==void 0&&Object.assign(O,{[y]:b});return O}function Hw(e,t){if(e===void 0)return;if(!Ve(e))throw new Error(`provider-capabilities.json: ${t} must be an object`);let n={};for(let[r,i]of Object.entries(e))n[r]=Js(i,`${t}.${r}`);return n}function Jw(e,t){if(!Ve(e))throw new Error(`provider-capabilities.json: providers.${t} must be an object`);let n=Z(e.cliBridge,`providers.${t}.cliBridge`),r=qt(e.apiKeyEnv,`providers.${t}.apiKeyEnv`),i=Js(e.reasoningCapability,`providers.${t}.reasoningCapability`),s=Nu(e,`providers.${t}`),a=Bw(e.capabilityProfile,`providers.${t}.capabilityProfile`),c=Zw(e.verifyStrategy,`providers.${t}.verifyStrategy`);if(n&&c!=="unsupported")throw new Error(`provider-capabilities.json: providers.${t} is a cliBridge entry but verifyStrategy="${c}" \u2014 must be "unsupported" (CLI binary owns credentials)`);let d=lt(e.contextWindow,`providers.${t}.contextWindow`),l=lt(e.maxOutputTokens,`providers.${t}.maxOutputTokens`),f=Du(e.maxOutputTokensField,`providers.${t}.maxOutputTokensField`),u=Ii(e.outputTokenLimit,`providers.${t}`),m=lt(e.thinkingBudgetCap,`providers.${t}.thinkingBudgetCap`),g=Z(e.supportsThinking,`providers.${t}.supportsThinking`),w=Hw(e.modelReasoningCapabilities,`providers.${t}.modelReasoningCapabilities`),k=Lt(e.model,`providers.${t}.model`);if(n&&(k!==void 0||e.models!==void 0))throw new Error(`provider-capabilities.json: providers.${t} is a cliBridge entry but defines model/models \u2014 must be omitted (filled at load time)`);if(!n&&k===void 0)throw new Error(`provider-capabilities.json: providers.${t}.model is required (only cliBridge entries may omit)`);let O;if(e.models!==void 0){if(!Array.isArray(e.models))throw new Error(`provider-capabilities.json: providers.${t}.models must be an array`);O=e.models.map((P,x)=>Kw(P,`providers.${t}.models[${x}]`));let b=new Set([...k===void 0?[]:[k],...O.map(P=>P.id)]);for(let[P,x]of O.entries())if(x.wireModel!==void 0&&!b.has(x.wireModel))throw new Error(`provider-capabilities.json: providers.${t}.models[${P}].wireModel must reference a declared model, got ${JSON.stringify(x.wireModel)}`)}let y={...Fu(e,`providers.${t}`),apiKeyEnv:r,reasoningCapability:i,capabilityProfile:a,verifyStrategy:c};for(let[b,P]of Object.entries({reasoningProfile:s,model:k,models:O,contextWindow:d,maxOutputTokens:l,outputTokenLimit:u,maxOutputTokensField:f,thinkingBudgetCap:m,supportsThinking:g,modelReasoningCapabilities:w}))P!==void 0&&Object.assign(y,{[b]:P});return n&&(y.cliBridge=!0),y}function Lu(e){if(!Ve(e))throw new Error("provider-capabilities.json: root must be an object");if(e.version!==1)throw new Error(`provider-capabilities.json: version must be 1, got ${JSON.stringify(e.version)}`);let t=qt(e.updatedAt,"updatedAt");if(!Ve(e.providers))throw new Error("provider-capabilities.json: providers must be an object");let n={};for(let[r,i]of Object.entries(e.providers))n[r]=Jw(i,r);return{version:1,updatedAt:t,providers:n}}var Iu,Qu,$u,Au,Cu,Mu,Xu,qu=p(()=>{"use strict";Ae();mi();Hs();Iu=["none","prompt-only","native-effort","native-budget","native-toggle","native-adaptive","unknown"],Qu=["google-thinking-level","bedrock-anthropic-effort","bedrock-openai-effort","bedrock-openai-nested-effort","openai-responses-effort","openai-chat-effort","codex-cli-config","anthropic-output-effort","anthropic-reasoning-effort","provider-budget","provider-toggle","prompt-only","none"],$u=["anthropic-adaptive","anthropic-budget","provider-budget","provider-toggle","none"],Au=["zai-glm-5.3","zai-glm-5.2","zai-glm-toggle","deepseek-v4-flash-openai","deepseek-v4-pro-openai","deepseek-v4-openai","deepseek-v4-anthropic","deepseek-toggle","kimi-k3","kimi-k3.1","kimi-k2.7-code","kimi-hybrid-toggle","minimax-m3","minimax-m2-always","mimo-v2.5-toggle","qwen-hybrid-thinking","openai-chat-reasoning","openai-responses-reasoning","codex-cli-effort","claude-adaptive-xhigh","claude-adaptive-max","anthropic-budget","generic-thinking-toggle","none"],Cu=["max_tokens","max_completion_tokens"],Mu=["native","image-input-native","cli-bridge","image-input-cli-bridge"],Xu=["count-tokens","models-list","minimal-message","unsupported"];o(Ve,"isPlainObject");o(qt,"requireString");o(Lt,"optionalString");o(Du,"optionalMaxOutputTokensField");o(lt,"optionalNumber");o(Z,"optionalBoolean");o(ju,"optionalStringArray");o(Uw,"optionalStringMap");o(Vw,"optionalReasoningPreset");o(Js,"requireReasoningCapability");o(Yw,"requireEffortStrategy");o(Gw,"optionalThinkingStrategy");o(Wu,"validateReasoningProfile");o(Nu,"validateReasoningProfileField");o(Bw,"requireProfileName");o(Zw,"requireVerifyStrategy");o(Fu,"constraintMetadata");o(Kw,"validateModelDescriptor");o(Hw,"validateModelReasoningCapabilities");o(Jw,"validateProviderEntry");o(Lu,"validateProviderCapabilitiesJson")});import{existsSync as eS,readFileSync as tS}from"node:fs";import bn from"node:path";import{fileURLToPath as nS}from"node:url";function iS(){if(process.env.KODAX_BUNDLED==="true")return bn.join(bn.dirname(process.execPath),"provider-capabilities.json");let e=bn.dirname(nS(import.meta.url)),t=[bn.join(e,"provider-capabilities.json"),bn.join(bn.dirname(e),"provider-capabilities.json")];for(let n of t)if(eS(n))return n;return t[0]}function zu(e){e.toolCapabilities?.grammar&&Object.freeze(e.toolCapabilities.grammar),e.toolCapabilities&&Object.freeze(e.toolCapabilities),e.cacheCapabilities?.locations&&Object.freeze(e.cacheCapabilities.locations),e.cacheCapabilities&&Object.freeze(e.cacheCapabilities)}function oS(e){if(zu(e),e.models){for(let t of e.models)t.reasoningProfile&&Uu(t.reasoningProfile);for(let t of e.models)zu(t),Object.freeze(t);Object.freeze(e.models)}return e.reasoningProfile&&Uu(e.reasoningProfile),e.modelReasoningCapabilities&&Object.freeze(e.modelReasoningCapabilities),Object.freeze(e)}function Uu(e){if(e.supportedEfforts){for(let t of e.supportedEfforts)Object.freeze(t);Object.freeze(e.supportedEfforts)}e.budgetByEffort&&Object.freeze(e.budgetByEffort),e.effortAliases&&Object.freeze(e.effortAliases),e.disabledEfforts&&Object.freeze(e.disabledEfforts),e.localRejectEfforts&&Object.freeze(e.localRejectEfforts),Object.freeze(e)}function sS(e){if(e==="gemini-cli"){let t=Sn();return{model:t,models:cr().filter(n=>n!==t).map(n=>({id:n}))}}if(e==="codex-cli"){let t=wn();return{model:t,models:ar().filter(n=>n!==t).map(n=>({id:n}))}}throw new Error(`provider-capabilities loader: unknown cliBridge provider '${e}'`)}function aS(e,t){let n=rS[t.capabilityProfile];if(!n)throw new Error(`provider-capabilities loader: unknown capabilityProfile '${t.capabilityProfile}' for provider '${e}'`);let r={...t.cliBridge?sS(e):{model:t.model},apiKeyEnv:t.apiKeyEnv,reasoningCapability:t.reasoningCapability,capabilityProfile:n,verifyStrategy:t.verifyStrategy};for(let i of["reasoningProfile","supportsThinking","toolCapabilities","cacheCapabilities"])t[i]!==void 0&&Object.assign(r,{[i]:t[i]});if(!t.cliBridge)for(let i of["models","modelReasoningCapabilities","contextWindow","maxOutputTokens","outputTokenLimit","maxOutputTokensField","thinkingBudgetCap"])t[i]!==void 0&&Object.assign(r,{[i]:t[i]});return r}function Vu(){if(Qi)return Qi;let e=iS(),t;try{let i=tS(e,"utf8");t=JSON.parse(i)}catch(i){let s=i instanceof Error?i.message:String(i);throw new Error(`provider-capabilities loader: failed to read ${e}: ${s}`)}let n=Lu(t),r={};for(let[i,s]of Object.entries(n.providers))r[i]=oS(aS(i,s));return Qi=Object.freeze(r),Qi}var rS,Qi,Yu=p(()=>{"use strict";dt();dr();qu();rS=Object.freeze({native:hn,"image-input-native":Kl,"cli-bridge":vi,"image-input-cli-bridge":Hl}),Qi=null;o(iS,"resolveJsonPath");o(zu,"freezeConstraints");o(oS,"deepFreezeSnapshot");o(Uu,"freezeReasoningProfile");o(sS,"resolveCliBridgeModels");o(aS,"buildSnapshot");o(Vu,"getProviderSnapshots")});var $i,Gu,lr=p(()=>{"use strict";Ei();yn();Tu();Ru();B();ee();dt();Yu();$i=Vu(),Gu=process.env.KODAX_PROVIDER??"zhipu-coding"});var Zu=p(()=>{"use strict";ee();sr();Ft()});var Ai=p(()=>{"use strict"});var ur=p(()=>{"use strict"});var Ci=p(()=>{"use strict";fn();ee();J()});var Ju=p(()=>{"use strict";J();me();yn();sr();Ci()});var ra=p(()=>{"use strict";Ae();gn();B();ee();Ft();mn()});var ef=p(()=>{"use strict";ra();Ci()});var tf=p(()=>{"use strict";ra();ef()});var Mi=p(()=>{"use strict";Ei();yn();sr();Zu();Ai();ur();Ju();tf();dt();Nt();Hs();Ae();mi()});var Xi=p(()=>{"use strict";Mi();lr();dt()});var ca=p(()=>{"use strict";lr();Xi()});var da=p(()=>{"use strict";B();lr();Xi();ca();ee()});var ua=p(()=>{"use strict";gn();Ei();yn();Ri();lr();Mi();Xi();ca();da();Ft()});var yf=p(()=>{"use strict";ua();Nt();Vs();Jn()});var fa=p(()=>{"use strict"});var pa=p(()=>{"use strict";fa()});var wf=p(()=>{"use strict";pa();nr();ee()});var zt=p(()=>{"use strict";fn()});var ji=p(()=>{"use strict";zt()});var bf=p(()=>{"use strict";ji();zt()});var Wi=p(()=>{"use strict";me();Ms();J()});var Ye=p(()=>{"use strict";Kn();ee();me();Wi();Hn();bi();ln()});var vf=p(()=>{"use strict";Wt()});var kf=p(()=>{"use strict";Ce();vf()});var Pf=p(()=>{"use strict";Ae()});var xf=p(()=>{"use strict";Kn();ur();Ci();ee();Ye();kf();Pf();ct()});var ma=p(()=>{"use strict";ur();Ai();Mi()});var _f=p(()=>{"use strict";Ye();da()});function Tf(){let e=new Map;return{async read(t,n){n?.throwIfAborted();let r=e.get(t);return r?structuredClone(r):void 0},async compareAndSwap(t,n,r,i){return i.signal?.throwIfAborted(),!i.isCurrent()||e.get(t)?.revision!==n?!1:(e.set(t,structuredClone(r)),!0)}}}var mD,Ef=p(()=>{"use strict";Ye();me();Wi();_f();o(Tf,"createMemoryModelCatalogStore");mD=Tf()});var ha=p(()=>{"use strict";zt();ji()});var Rf=p(()=>{"use strict";zt();ha();ji()});var If=p(()=>{"use strict";Ye()});var ya=p(()=>{"use strict";Ce()});var $f=p(()=>{"use strict";Ye();If();ya()});var Af=p(()=>{"use strict";J()});var Cf=p(()=>{"use strict";Ye();ya();Wi();Af();me()});var Mf=p(()=>{"use strict";fn();J();B();ee();pi();Rs();Ce();Ye();me();Ae()});var Xf=p(()=>{"use strict";ma();Ye()});import gN from"proper-lockfile";var jf=p(()=>{"use strict";zt()});var Wf=p(()=>{"use strict";Oi()});var Se=p(()=>{"use strict";Ul();Es();pi();sr();me();ee();B();Hn();$s();Wt();yu();Vs();Nt();yf();ua();dr();xi();nr();ct();fa();pa();wf();bi();rr();Ls();Ce();Ce();Dt();Ce();zt();bf();Ai();Oi();ur();xf();ma();Ef();ha();Rf();$f();Cf();Mf();Xf();jf();Kn();Wf()});function F(e){let t=pn(e),n=ob.at(-1)?.sink;if(n){try{n(t)}catch{}return}if(process.env.KODAX_DIAGNOSTICS_STDERR==="1")try{process.stderr.write(`${Df(t)}
90
- `)}catch{}}function Df(e){let t=pn(e),n=sb(t.detail);return`[${t.source}] ${t.level}: ${t.message}${n?` ${n}`:""}`}function sb(e){if(e===void 0)return"";if(e instanceof Error)return e.stack??e.message;if(typeof e=="string")return e;try{return JSON.stringify(e)}catch{return String(e)}}var ob,re=p(()=>{"use strict";Se();ob=[];o(F,"emitKodaXDiagnostic");o(Df,"formatKodaXDiagnostic");o(sb,"formatDiagnosticDetail")});var Nf=p(()=>{"use strict";Se()});var Ff=p(()=>{"use strict"});var Lf=p(()=>{"use strict"});function ab(){qf+=1;let e=Math.random().toString(36).slice(2,8);return`span-${Date.now()}-${qf}-${e}`}var mr,qf,wa=p(()=>{"use strict";mr=class e{static{o(this,"SpanImpl")}id;traceId;parentId;name;data;startedAt;_endedAt;_error;_children=[];now;nextSpanId;onChildCreated;onSpanEnd;_ended=!1;constructor(t){this.id=t.id,this.traceId=t.traceId,this.parentId=t.parentId,this.name=t.name,this.data=t.data,this.now=t.now??(()=>Date.now()),this.startedAt=t.startedAt??this.now(),this.nextSpanId=t.nextSpanId??ab,this.onChildCreated=t.onChildCreated,this.onSpanEnd=t.onSpanEnd}get endedAt(){return this._endedAt}get error(){return this._error}get children(){return this._children}addChild(t,n){let r=new e({id:this.nextSpanId(),traceId:this.traceId,parentId:this.id,name:t,data:n,now:this.now,nextSpanId:this.nextSpanId,onChildCreated:this.onChildCreated,onSpanEnd:this.onSpanEnd});return this._children.push(r),this.onChildCreated&&this.onChildCreated(r),r}setError(t){t instanceof Error?this._error={message:t.message,stack:t.stack}:this._error=t}end(){this._ended||(this._ended=!0,this._endedAt=this.now(),this.onSpanEnd&&this.onSpanEnd(this))}},qf=0;o(ab,"defaultNextSpanId")});function cb(){zf+=1;let e=Math.random().toString(36).slice(2,8);return`trace-${Date.now()}-${zf}-${e}`}function Sa(e={}){let t=e.now??(()=>Date.now()),n=e.id??(e.nextTraceId??cb)(),r=t(),i=e.name??"trace",s=e.metadata??new Map,a=e.rootSpanData??{kind:"agent",agentName:i},c=!1,d,l,f=new mr({id:`${n}-root`,traceId:n,name:i,data:a,startedAt:r,now:t,nextSpanId:e.nextSpanId,onChildCreated:e.onSpanStart,onSpanEnd:e.onSpanEnd});e.onSpanStart&&e.onSpanStart(f);let u={id:n,startedAt:r,rootSpan:f,metadata:s,get endedAt(){return d},get error(){return l??f.error},end(){c||(c=!0,d=t(),f.end(),e.onTraceEnd&&e.onTraceEnd(u))}};return u}var zf,ba=p(()=>{"use strict";wa();zf=0;o(cb,"defaultNextTraceId");o(Sa,"createTrace")});function ka(e){for(let t of va)try{t.onSpanStart(e)}catch{}}function Pa(e){for(let t of va)try{t.onSpanEnd(e)}catch{}}function xa(e){for(let t of va)try{t.onTraceEnd(e)}catch{}}var va,_a=p(()=>{"use strict";va=[];o(ka,"_emitSpanStart");o(Pa,"_emitSpanEnd");o(xa,"_emitTraceEnd")});var Fi,Uf,Vf=p(()=>{"use strict";ba();_a();Fi=class{static{o(this,"Tracer")}options;constructor(t={}){this.options=t}startTrace(t={}){return Sa({id:t.id,name:t.name,rootSpanData:t.rootSpanData,metadata:t.metadata,now:this.options.now,nextSpanId:this.options.nextSpanId,nextTraceId:this.options.nextTraceId,onSpanStart:ka,onSpanEnd:Pa,onTraceEnd:xa})}},Uf=new Fi});var Yf=p(()=>{"use strict"});var Gf=p(()=>{"use strict"});var Ta=p(()=>{"use strict";wa();ba();Vf();_a();Yf();Gf()});var hr=p(()=>{"use strict"});var Li=p(()=>{"use strict"});var mb,bq,Ea=p(()=>{"use strict";re();hr();Li();mb=["read","edit","bash:test","bash:read-only","bash:mutating","bash:network","subagent"],bq=new Set(mb)});var Ra=p(()=>{"use strict";hr();Li()});var Ia=p(()=>{"use strict";Se()});var Qa=p(()=>{"use strict"});var $a=p(()=>{"use strict"});var Aa=p(()=>{"use strict";Ta();Ea();Ra();Ia();Qa();$a();Bn();Se();jt()});var Kf=p(()=>{"use strict"});var Hf=p(()=>{"use strict"});var Jf=p(()=>{"use strict"});var ep=p(()=>{"use strict";hr();Kf();Hf();Jf()});var tp=p(()=>{"use strict";Se();G()});import{execFile as Xb,execFileSync as pz}from"node:child_process";import{accessSync as hz,constants as jb,promises as Ca,realpathSync as gz,statSync as Oz}from"node:fs";import{posix as np}from"node:path";import{debuglog as Wb}from"node:util";function qb(e){let t=e.env??process.env;return JSON.stringify([e.cwd??process.cwd(),t.PATH,t.DEVELOPER_DIR])}function zb(e){let t=gr.get(e);if(t&&t.expiresAt>Date.now())return t.missing;gr.delete(e)}function Ub(e,t){t!==void 0&&(gr.size>=32&&gr.clear(),gr.set(e,{missing:t,expiresAt:Date.now()+Fb}))}function Vb(e){let t=e.executable??"git",n=e.cwd??process.cwd();return t.includes("/")?[np.resolve(n,t)]:((e.env??process.env).PATH??"/usr/bin:/bin").split(":").map(r=>np.resolve(n,r,t))}async function Yb(e){for(let t of Vb(e)){try{if(await Ca.access(t,jb.X_OK),!(await Ca.stat(t)).isFile())continue}catch{continue}return await Ca.realpath(t).catch(()=>{})===Db}return!1}function rp(){Lb("Could not determine macOS developer tools availability; retaining normal Git execution.")}function Gb(){throw Object.assign(new Error("macOS command line developer tools are unavailable. Install them to use system Git."),{code:"MACOS_GIT_TOOLS_MISSING"})}async function Xa(e={}){if(process.platform!=="darwin"||!await Yb(e))return;let t=qb(e),n=zb(t);if(n===void 0){let r=Ma.get(t);r||(r=Bb(e).then(i=>(Ub(t,i),i)).finally(()=>{Ma.delete(t)}),Ma.set(t,r)),n=await r}n&&Gb()}function Bb(e){return new Promise(t=>{Xb(Nb,["-p"],{cwd:e.cwd,env:e.env??process.env,timeout:1e3,encoding:"utf8",windowsHide:!0},n=>{n&&n.code!==2?(rp(),t(void 0)):t(n?.code===2)})}).catch(()=>{rp()})}var Db,Nb,Fb,gr,Ma,Lb,ja=p(()=>{"use strict";Db="/usr/bin/git",Nb="/usr/bin/xcode-select",Fb=5e3,gr=new Map,Ma=new Map,Lb=Wb("kodax:macos-git");o(qb,"probeKey");o(zb,"cachedResult");o(Ub,"rememberResult");o(Vb,"candidates");o(Yb,"selectsSystemGit");o(rp,"reportProbeFailure");o(Gb,"rejectMissingTools");o(Xa,"assertNoGitInstallPrompt");o(Bb,"probeAsync")});var zi=p(()=>{"use strict"});import{spawnSync as Or}from"node:child_process";import{readFileSync as Zb}from"node:fs";function yr(e,t,n,r){let i=t.error?.code;F({source:"runtime:windows",level:r?"debug":"warn",message:"Windows process probe completed.",detail:{stage:e,cached:!1,available:r,durationMs:Date.now()-n,timeoutMs:5e3,exitCode:t.status,errorCode:i===void 0?void 0:["ENOENT","EACCES","EPERM","ETIMEDOUT","ENOEXEC","ENOMEM","EIO"].includes(i)?i:"OTHER"}})}function Hb(e){let t=e.trim();if(!t)return[];try{let n=JSON.parse(t);return(Array.isArray(n)?n:[n]).flatMap(i=>{if(typeof i!="object"||i===null)return[];let s=i,a=Number(s.pid),c=Number(s.parentPid),d=typeof s.creationTime=="string"?s.creationTime:String(s.creationTime??"0");return!Number.isFinite(a)||a<=0||!Number.isFinite(c)?[]:[{pid:a,parentPid:c,creationTime:/^\d+$/.test(d)?d:"0"}]})}catch{return[]}}function Jb(e){let t=/^(\d{4})(\d{2})(\d{2})(\d{2})(\d{2})(\d{2})\.(\d{6})([+-])(\d{3})$/.exec(e);if(!t)return;let[,n,r,i,s,a,c,d,l,f]=t,u=Date.UTC(Number(n),Number(r)-1,Number(i),Number(s),Number(a),Number(c),Number(d.slice(0,3))),m=Number(f)*6e4*(l==="+"?1:-1),g=u-m;if(Number.isFinite(g))return{identity:(BigInt(g)+11644473600000n).toString(),unixMs:g}}function ev(){let e=["$cutoff = [DateTime]::UtcNow","$items = try { @(Get-CimInstance Win32_Process -ErrorAction Stop) } catch { @(Get-WmiObject Win32_Process -ErrorAction Stop) }","$rows = @($items | ForEach-Object {"," $creationTime = '0'"," try {"," $created = $_.CreationDate"," if ($created -isnot [DateTime]) { $created = [System.Management.ManagementDateTimeConverter]::ToDateTime([string]$created) }"," $created = $created.ToUniversalTime()"," if ($created -le $cutoff) { $creationTime = ([long][Math]::Floor($created.ToFileTimeUtc() / 10000)).ToString() }"," } catch {}"," [PSCustomObject]@{ pid = [int]$_.ProcessId; parentPid = [int]$_.ParentProcessId; creationTime = $creationTime }","})","$rows | ConvertTo-Json -Compress"].join(`
91
- `),t=Date.now(),n=Or("powershell.exe",["-NoProfile","-NonInteractive","-Command",e],{encoding:"utf8",timeout:wr,windowsHide:!0});if(!n.error&&n.status===0){let a=Hb(n.stdout);if(a.length>0)return a}yr("process-snapshot-cim",n,t,!1);let r=Date.now(),i=Or("wmic",["process","get","CreationDate,ParentProcessId,ProcessId","/format:list"],{encoding:"utf8",timeout:wr,windowsHide:!0});if(i.error||i.status!==0){yr("process-snapshot-wmic",i,r,!1);return}let s=i.stdout.split(/\r?\n\s*\r?\n/).flatMap(a=>{let c=new Map(a.split(/\r?\n/).flatMap(m=>{let g=m.indexOf("=");return g<0?[]:[[m.slice(0,g),m.slice(g+1)]]})),d=Number(c.get("ProcessId")),l=Number(c.get("ParentProcessId")),f=c.get("CreationDate"),u=f===void 0?void 0:Jb(f);return!Number.isFinite(d)||d<=0||!Number.isFinite(l)||u===void 0||u.unixMs>r?[]:[{pid:d,parentPid:l,creationTime:u.identity}]});return s.length>0?s:void 0}function tv(){let e=["$source = @'",Kb,"'@","Add-Type -TypeDefinition $source","[KodaXNativeProcessSnapshot]::ReadRows()"].join(`
92
- `),t=Date.now(),n=Or("powershell.exe",["-NoProfile","-NonInteractive","-Command",e],{encoding:"utf8",timeout:wr,windowsHide:!0});if(n.error||n.status!==0){yr("process-snapshot-native",n,t,!1);return}let r=nv(n.stdout);return r===void 0&&yr("process-snapshot-native",n,t,!1),r}function nv(e){let t=e.split(/\r?\n/).map(r=>r.trim()).filter(Boolean);if(t.some(r=>!/^\d+,\d+,\d+$/.test(r)))return;let n=t.flatMap(r=>{let[i,s,a="0"]=r.split(",",3),c=Number(i),d=Number(s);return!Number.isFinite(c)||c<=0||!Number.isFinite(d)?[]:[{pid:c,parentPid:d,creationTime:a}]});return n.length>0?n:void 0}function ip(){return tv()??ev()}function rv(){return ap<=0?ip():(sp||(op=ip(),sp=!0),op)}function iv(e){return[`foreach ($processId in @(${e.join(",")})) {`,' $target = $null; $creationTime = "0"'," try {"," $target = [System.Diagnostics.Process]::GetProcessById($processId)"," [long]$remainder = 0"," $creationTime = ([Math]::DivRem($target.StartTime.ToFileTimeUtc(), [long]10000, [ref]$remainder)).ToString([System.Globalization.CultureInfo]::InvariantCulture)",' } catch { $creationTime = "0" } finally { if ($null -ne $target) { $target.Dispose() } }',' [Console]::Out.WriteLine("$processId,$creationTime")',"}"].join(`
93
- `)}function ov(e,t){let n=e.trim().split(/\r?\n/);if(!(n.length!==t.length||n.some((r,i)=>!r.startsWith(`${t[i]},`)||!/^\d+,\d+$/.test(r))))return new Map(n.map(r=>{let[i,s]=r.split(",");return[Number(i),s]}))}function sv(e){let t=Date.now(),n=Or("powershell.exe",["-NoProfile","-NonInteractive","-Command",iv(e)],{encoding:"utf8",timeout:wr,windowsHide:!0}),r=ov(n.stdout??"",e);if(n.error||n.status!==0||r===void 0){yr("process-start-identities",n,t,!1);return}return r}function Wa(e){let t=[...new Set(e.filter(r=>Number.isInteger(r)&&r>0))];if(process.platform!=="win32")return new Map(t.map(r=>[r,vn(r)]));if(t.length===0)return new Map;let n=(ap<=0?sv(t):void 0)??new Map(rv()?.map(r=>[r.pid,r.creationTime]));return new Map(t.map(r=>{let i=n.get(r);return[r,i==="0"?void 0:i]}))}function vn(e){if(!Number.isInteger(e)||e<=0)return;if(process.platform==="win32"){let r=Wa([e]).get(e);return r===void 0&&F({source:"runtime:windows",level:"warn",message:"Windows process start identity is unavailable.",detail:{stage:"process-start-identity",pid:e,available:!1}}),r}if(process.platform==="linux")try{let r=Zb(`/proc/${e}/stat`,"utf8"),i=r.slice(r.lastIndexOf(")")+2).trim().split(/\s+/);return i[19]===void 0?void 0:`linux:${i[19]}`}catch{return}let t=Or("ps",["-o","lstart=","-p",String(e)],{encoding:"utf8",timeout:wr,windowsHide:!0}),n=t.status===0?t.stdout.trim():"";return n===""?void 0:`${process.platform}:${n}`}var wr,Tz,Ez,Kb,Rz,Iz,Qz,op,sp,ap,Ut=p(()=>{"use strict";re();o(yr,"reportWindowsProbe");wr=5e3,Tz=String.raw`
89
+ }`});var vu=p(()=>{"use strict";Ys()});var Ii=p(()=>{"use strict";On();vu();lt();rr()});var Gs=p(()=>{"use strict";Ys()});var Bs=p(()=>{"use strict"});var ku=p(()=>{"use strict";Gs();Bs()});var Zs=p(()=>{"use strict"});import xu from"node:fs";import Pu from"node:os";import _u from"node:path";function Tu(e){let t=new Set,n=[];for(let r of e){let i=r.trim();if(!i)continue;let s=i.toLowerCase();t.has(s)||(t.add(s),n.push(i))}return n}function qw(){let e=_u.join(Pu.homedir(),".codex","config.toml");try{return xu.readFileSync(e,"utf8").match(/^\s*model\s*=\s*"([^"]+)"/m)?.[1]?.trim()||null}catch{return null}}function zw(){let e=_u.join(Pu.homedir(),".gemini","settings.json");try{let t=JSON.parse(xu.readFileSync(e,"utf8")),n=typeof t.model=="string"?t.model.trim():"";return n||(typeof t.general?.model=="string"?t.general.model.trim():"")||null}catch{return null}}function Sn(){return qw()||Nw}function bn(){return zw()||Dw}function ar(){return Tu([Sn(),...Fw])}function cr(){return Tu([bn(),...Lw])}var Nw,Dw,Fw,Lw,dr=p(()=>{"use strict";Nw="gpt-5.4",Dw="auto-gemini-3",Fw=["gpt-5.4","gpt-5.3-codex","gpt-5.3-codex-spark"],Lw=["auto-gemini-3","gemini-3.1-pro-preview","gemini-3-flash-preview","gemini-2.5-pro","gemini-2.5-flash"];o(Tu,"dedupePreserveOrder");o(qw,"readCodexConfiguredModel");o(zw,"readGeminiConfiguredModel");o(Sn,"getCodexCliDefaultModel");o(bn,"getGeminiCliDefaultModel");o(ar,"getCodexCliKnownModels");o(cr,"getGeminiCliKnownModels")});var aM,cM,Eu=p(()=>{"use strict";Ii();ku();Zs();dr();lt();aM=bn(),cM=cr()});var Ru=p(()=>{"use strict";Gs();Bs()});var SM,bM,Iu=p(()=>{"use strict";Ii();Ru();Zs();dr();SM=Sn(),bM=ar()});function Qi(e,t){if(e!==void 0){if(typeof e!="number"||!Number.isSafeInteger(e)||e<=0)throw new Error(`${t}.outputTokenLimit must be a positive safe integer`);return e}}var Hs=p(()=>{"use strict";o(Qi,"optionalOutputTokenLimit")});function Ve(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function qt(e,t){if(typeof e!="string"||e.length===0)throw new Error(`provider-capabilities.json: ${t} must be a non-empty string`);return e}function Lt(e,t){if(e!==void 0)return qt(e,t)}function Du(e,t){if(e!==void 0){if(typeof e!="string"||!Mu.includes(e))throw new Error(`provider-capabilities.json: ${t} must be one of ${Mu.join(", ")}, got ${JSON.stringify(e)}`);return e}}function ut(e,t){if(e!==void 0){if(typeof e!="number"||!Number.isFinite(e)||e<0)throw new Error(`provider-capabilities.json: ${t} must be a non-negative finite number`);return e}}function Z(e,t){if(e!==void 0){if(typeof e!="boolean")throw new Error(`provider-capabilities.json: ${t} must be a boolean`);return e}}function Wu(e,t){if(e!==void 0){if(!Array.isArray(e))throw new Error(`provider-capabilities.json: ${t} must be an array`);return e.map((n,r)=>qt(n,`${t}[${r}]`))}}function Vw(e,t){if(e===void 0)return;if(!Ve(e))throw new Error(`provider-capabilities.json: ${t} must be an object`);let n={};for(let[r,i]of Object.entries(e))n[r]=qt(i,`${t}.${r}`);return n}function Yw(e,t){if(e!==void 0){if(typeof e!="string"||!Cu.includes(e))throw new Error(`provider-capabilities.json: ${t} must be one of ${Cu.join(", ")}, got ${JSON.stringify(e)}`);return e}}function Js(e,t){if(typeof e!="string"||!Qu.includes(e))throw new Error(`provider-capabilities.json: ${t} must be one of ${Qu.join(", ")}, got ${JSON.stringify(e)}`);return e}function Gw(e,t){if(typeof e!="string"||!$u.includes(e))throw new Error(`provider-capabilities.json: ${t} must be one of ${$u.join(", ")}, got ${JSON.stringify(e)}`);return e}function Bw(e,t){if(e!==void 0){if(typeof e!="string"||!Au.includes(e))throw new Error(`provider-capabilities.json: ${t} must be one of ${Au.join(", ")}, got ${JSON.stringify(e)}`);return e}}function Nu(e,t){if(e===void 0)return;if(!Ve(e))throw new Error(`provider-capabilities.json: ${t} must be an object`);let n=Gw(e.effortStrategy,`${t}.effortStrategy`),r=Yw(e.reasoningPreset,`${t}.reasoningPreset`),i=Bw(e.thinkingStrategy,`${t}.thinkingStrategy`),s=Lt(e.defaultEffort,`${t}.defaultEffort`),a=Vw(e.effortAliases,`${t}.effortAliases`),c=Wu(e.disabledEfforts,`${t}.disabledEfforts`),d=Wu(e.localRejectEfforts,`${t}.localRejectEfforts`),l=Z(e.allowCustomEffort,`${t}.allowCustomEffort`),f=Z(e.supportsReasoningEffort,`${t}.supportsReasoningEffort`),u=Z(e.supportsReasoningSummary,`${t}.supportsReasoningSummary`),m=Z(e.supportsEncryptedReasoningReplay,`${t}.supportsEncryptedReasoningReplay`),g=Z(e.supportsAdaptiveThinking,`${t}.supportsAdaptiveThinking`),w=Z(e.supportsManualThinkingBudget,`${t}.supportsManualThinkingBudget`),k=Z(e.supportsDisabledThinking,`${t}.supportsDisabledThinking`),O=Z(e.requiresEffortBetaHeader,`${t}.requiresEffortBetaHeader`),y={effortStrategy:n};if(r!==void 0&&(y.reasoningPreset=r),i!==void 0&&(y.thinkingStrategy=i),s!==void 0&&(y.defaultEffort=s),a!==void 0&&(y.effortAliases=a),c!==void 0&&(y.disabledEfforts=c),d!==void 0&&(y.localRejectEfforts=d),e.supportedEfforts!==void 0){if(!Array.isArray(e.supportedEfforts))throw new Error(`provider-capabilities.json: ${t}.supportedEfforts must be an array`);y.supportedEfforts=e.supportedEfforts.map((b,x)=>{if(!Ve(b))throw new Error(`provider-capabilities.json: ${t}.supportedEfforts[${x}] must be an object`);return{value:qt(b.value,`${t}.supportedEfforts[${x}].value`),...Lt(b.description,`${t}.supportedEfforts[${x}].description`)!==void 0?{description:Lt(b.description,`${t}.supportedEfforts[${x}].description`)}:{},...Z(b.isDefault,`${t}.supportedEfforts[${x}].isDefault`)!==void 0?{isDefault:Z(b.isDefault,`${t}.supportedEfforts[${x}].isDefault`)}:{},...Z(b.isUserVisible,`${t}.supportedEfforts[${x}].isUserVisible`)!==void 0?{isUserVisible:Z(b.isUserVisible,`${t}.supportedEfforts[${x}].isUserVisible`)}:{}}})}if(e.budgetByEffort!==void 0){if(!Ve(e.budgetByEffort))throw new Error(`provider-capabilities.json: ${t}.budgetByEffort must be an object`);let b={};for(let[x,P]of Object.entries(e.budgetByEffort))b[x]=ut(P,`${t}.budgetByEffort.${x}`)??0;y.budgetByEffort=b}l!==void 0&&(y.allowCustomEffort=l),f!==void 0&&(y.supportsReasoningEffort=f),u!==void 0&&(y.supportsReasoningSummary=u),m!==void 0&&(y.supportsEncryptedReasoningReplay=m),g!==void 0&&(y.supportsAdaptiveThinking=g),w!==void 0&&(y.supportsManualThinkingBudget=w),k!==void 0&&(y.supportsDisabledThinking=k),O!==void 0&&(y.requiresEffortBetaHeader=O);for(let b of["supportsThinkingDisplay","supportsThinkingBlockBinding"]){let x=Z(e[b],`${t}.${b}`);x!==void 0&&Object.assign(y,{[b]:x})}return y}function Fu(e,t){let n=e.reasoningProfile,r=e.reasoningCapabilityV2;if(n!==void 0&&r!==void 0)throw new Error(`provider-capabilities.json: ${t} must not define both reasoningProfile and deprecated reasoningCapabilityV2`);return n!==void 0?Nu(n,`${t}.reasoningProfile`):Nu(r,`${t}.reasoningCapabilityV2`)}function Zw(e,t){if(typeof e!="string"||!Xu.includes(e))throw new Error(`provider-capabilities.json: ${t} must be one of ${Xu.join(", ")}, got ${JSON.stringify(e)}`);return e}function Kw(e,t){if(typeof e!="string"||!ju.includes(e))throw new Error(`provider-capabilities.json: ${t} must be one of ${ju.join(", ")}, got ${JSON.stringify(e)}`);return e}function Lu(e,t){try{gi(e.toolCapabilities),Rs(e.cacheCapabilities)}catch(n){throw new Error(`${t}: ${n instanceof Error?n.message:"Invalid constraint metadata."}`)}return{...e.toolCapabilities?{toolCapabilities:structuredClone(e.toolCapabilities)}:{},...e.cacheCapabilities?{cacheCapabilities:structuredClone(e.cacheCapabilities)}:{}}}function Hw(e,t){if(!Ve(e))throw new Error(`provider-capabilities.json: ${t} must be an object`);let n=qt(e.id,`${t}.id`),r=Lt(e.wireModel,`${t}.wireModel`),i=Lt(e.displayName,`${t}.displayName`),s=Lt(e.multimodalSupport,`${t}.multimodalSupport`);if(s!==void 0&&!["none","image-input","full"].includes(s))throw new Error(`provider-capabilities.json: ${t}.multimodalSupport must be none, image-input or full`);let a=ut(e.contextWindow,`${t}.contextWindow`),c=ut(e.maxOutputTokens,`${t}.maxOutputTokens`),d=Du(e.maxOutputTokensField,`${t}.maxOutputTokensField`),l=Qi(e.outputTokenLimit,t),f=ut(e.thinkingBudgetCap,`${t}.thinkingBudgetCap`),u=Z(e.replayReasoningContent,`${t}.replayReasoningContent`),m=Z(e.strictThinkingSignature,`${t}.strictThinkingSignature`),g=ut(e.streamMaxDurationMs,`${t}.streamMaxDurationMs`),w=e.reasoningCapability===void 0?void 0:Js(e.reasoningCapability,`${t}.reasoningCapability`),k=Fu(e,t),O={id:n,...Lu(e,t)};for(let[y,b]of Object.entries({wireModel:r,displayName:i,multimodalSupport:s,contextWindow:a,maxOutputTokens:c,outputTokenLimit:l,maxOutputTokensField:d,thinkingBudgetCap:f,reasoningCapability:w,reasoningProfile:k,replayReasoningContent:u,strictThinkingSignature:m,streamMaxDurationMs:g}))b!==void 0&&Object.assign(O,{[y]:b});return O}function Jw(e,t){if(e===void 0)return;if(!Ve(e))throw new Error(`provider-capabilities.json: ${t} must be an object`);let n={};for(let[r,i]of Object.entries(e))n[r]=Js(i,`${t}.${r}`);return n}function eS(e,t){if(!Ve(e))throw new Error(`provider-capabilities.json: providers.${t} must be an object`);let n=Z(e.cliBridge,`providers.${t}.cliBridge`),r=qt(e.apiKeyEnv,`providers.${t}.apiKeyEnv`),i=Js(e.reasoningCapability,`providers.${t}.reasoningCapability`),s=Fu(e,`providers.${t}`),a=Zw(e.capabilityProfile,`providers.${t}.capabilityProfile`),c=Kw(e.verifyStrategy,`providers.${t}.verifyStrategy`);if(n&&c!=="unsupported")throw new Error(`provider-capabilities.json: providers.${t} is a cliBridge entry but verifyStrategy="${c}" \u2014 must be "unsupported" (CLI binary owns credentials)`);let d=ut(e.contextWindow,`providers.${t}.contextWindow`),l=ut(e.maxOutputTokens,`providers.${t}.maxOutputTokens`),f=Du(e.maxOutputTokensField,`providers.${t}.maxOutputTokensField`),u=Qi(e.outputTokenLimit,`providers.${t}`),m=ut(e.thinkingBudgetCap,`providers.${t}.thinkingBudgetCap`),g=Z(e.supportsThinking,`providers.${t}.supportsThinking`),w=Jw(e.modelReasoningCapabilities,`providers.${t}.modelReasoningCapabilities`),k=Lt(e.model,`providers.${t}.model`);if(n&&(k!==void 0||e.models!==void 0))throw new Error(`provider-capabilities.json: providers.${t} is a cliBridge entry but defines model/models \u2014 must be omitted (filled at load time)`);if(!n&&k===void 0)throw new Error(`provider-capabilities.json: providers.${t}.model is required (only cliBridge entries may omit)`);let O;if(e.models!==void 0){if(!Array.isArray(e.models))throw new Error(`provider-capabilities.json: providers.${t}.models must be an array`);O=e.models.map((x,P)=>Hw(x,`providers.${t}.models[${P}]`));let b=new Set([...k===void 0?[]:[k],...O.map(x=>x.id)]);for(let[x,P]of O.entries())if(P.wireModel!==void 0&&!b.has(P.wireModel))throw new Error(`provider-capabilities.json: providers.${t}.models[${x}].wireModel must reference a declared model, got ${JSON.stringify(P.wireModel)}`)}let y={...Lu(e,`providers.${t}`),apiKeyEnv:r,reasoningCapability:i,capabilityProfile:a,verifyStrategy:c};for(let[b,x]of Object.entries({reasoningProfile:s,model:k,models:O,contextWindow:d,maxOutputTokens:l,outputTokenLimit:u,maxOutputTokensField:f,thinkingBudgetCap:m,supportsThinking:g,modelReasoningCapabilities:w}))x!==void 0&&Object.assign(y,{[b]:x});return n&&(y.cliBridge=!0),y}function qu(e){if(!Ve(e))throw new Error("provider-capabilities.json: root must be an object");if(e.version!==1)throw new Error(`provider-capabilities.json: version must be 1, got ${JSON.stringify(e.version)}`);let t=qt(e.updatedAt,"updatedAt");if(!Ve(e.providers))throw new Error("provider-capabilities.json: providers must be an object");let n={};for(let[r,i]of Object.entries(e.providers))n[r]=eS(i,r);return{version:1,updatedAt:t,providers:n}}var Qu,$u,Au,Cu,Mu,Xu,ju,zu=p(()=>{"use strict";Ce();hi();Hs();Qu=["none","prompt-only","native-effort","native-budget","native-toggle","native-adaptive","unknown"],$u=["google-thinking-level","bedrock-anthropic-effort","bedrock-openai-effort","bedrock-openai-nested-effort","openai-responses-effort","openai-chat-effort","codex-cli-config","anthropic-output-effort","anthropic-reasoning-effort","provider-budget","provider-toggle","prompt-only","none"],Au=["anthropic-adaptive","anthropic-budget","provider-budget","provider-toggle","none"],Cu=["zai-glm-5.3","zai-glm-5.2","zai-glm-toggle","deepseek-v4-flash-openai","deepseek-v4-pro-openai","deepseek-v4-openai","deepseek-v4-anthropic","deepseek-toggle","kimi-k3","kimi-k3.1","kimi-k2.7-code","kimi-hybrid-toggle","minimax-m3","minimax-m2-always","mimo-v2.5-toggle","qwen-hybrid-thinking","openai-chat-reasoning","openai-responses-reasoning","codex-cli-effort","claude-adaptive-xhigh","claude-adaptive-max","anthropic-budget","generic-thinking-toggle","none"],Mu=["max_tokens","max_completion_tokens"],Xu=["native","image-input-native","cli-bridge","image-input-cli-bridge"],ju=["count-tokens","models-list","minimal-message","unsupported"];o(Ve,"isPlainObject");o(qt,"requireString");o(Lt,"optionalString");o(Du,"optionalMaxOutputTokensField");o(ut,"optionalNumber");o(Z,"optionalBoolean");o(Wu,"optionalStringArray");o(Vw,"optionalStringMap");o(Yw,"optionalReasoningPreset");o(Js,"requireReasoningCapability");o(Gw,"requireEffortStrategy");o(Bw,"optionalThinkingStrategy");o(Nu,"validateReasoningProfile");o(Fu,"validateReasoningProfileField");o(Zw,"requireProfileName");o(Kw,"requireVerifyStrategy");o(Lu,"constraintMetadata");o(Hw,"validateModelDescriptor");o(Jw,"validateModelReasoningCapabilities");o(eS,"validateProviderEntry");o(qu,"validateProviderCapabilitiesJson")});import{existsSync as tS,readFileSync as nS}from"node:fs";import vn from"node:path";import{fileURLToPath as rS}from"node:url";function oS(){if(process.env.KODAX_BUNDLED==="true")return vn.join(vn.dirname(process.execPath),"provider-capabilities.json");let e=vn.dirname(rS(import.meta.url)),t=[vn.join(e,"provider-capabilities.json"),vn.join(vn.dirname(e),"provider-capabilities.json")];for(let n of t)if(tS(n))return n;return t[0]}function Uu(e){e.toolCapabilities?.grammar&&Object.freeze(e.toolCapabilities.grammar),e.toolCapabilities&&Object.freeze(e.toolCapabilities),e.cacheCapabilities?.locations&&Object.freeze(e.cacheCapabilities.locations),e.cacheCapabilities&&Object.freeze(e.cacheCapabilities)}function sS(e){if(Uu(e),e.models){for(let t of e.models)t.reasoningProfile&&Vu(t.reasoningProfile);for(let t of e.models)Uu(t),Object.freeze(t);Object.freeze(e.models)}return e.reasoningProfile&&Vu(e.reasoningProfile),e.modelReasoningCapabilities&&Object.freeze(e.modelReasoningCapabilities),Object.freeze(e)}function Vu(e){if(e.supportedEfforts){for(let t of e.supportedEfforts)Object.freeze(t);Object.freeze(e.supportedEfforts)}e.budgetByEffort&&Object.freeze(e.budgetByEffort),e.effortAliases&&Object.freeze(e.effortAliases),e.disabledEfforts&&Object.freeze(e.disabledEfforts),e.localRejectEfforts&&Object.freeze(e.localRejectEfforts),Object.freeze(e)}function aS(e){if(e==="gemini-cli"){let t=bn();return{model:t,models:cr().filter(n=>n!==t).map(n=>({id:n}))}}if(e==="codex-cli"){let t=Sn();return{model:t,models:ar().filter(n=>n!==t).map(n=>({id:n}))}}throw new Error(`provider-capabilities loader: unknown cliBridge provider '${e}'`)}function cS(e,t){let n=iS[t.capabilityProfile];if(!n)throw new Error(`provider-capabilities loader: unknown capabilityProfile '${t.capabilityProfile}' for provider '${e}'`);let r={...t.cliBridge?aS(e):{model:t.model},apiKeyEnv:t.apiKeyEnv,reasoningCapability:t.reasoningCapability,capabilityProfile:n,verifyStrategy:t.verifyStrategy};for(let i of["reasoningProfile","supportsThinking","toolCapabilities","cacheCapabilities"])t[i]!==void 0&&Object.assign(r,{[i]:t[i]});if(!t.cliBridge)for(let i of["models","modelReasoningCapabilities","contextWindow","maxOutputTokens","outputTokenLimit","maxOutputTokensField","thinkingBudgetCap"])t[i]!==void 0&&Object.assign(r,{[i]:t[i]});return r}function Yu(){if($i)return $i;let e=oS(),t;try{let i=nS(e,"utf8");t=JSON.parse(i)}catch(i){let s=i instanceof Error?i.message:String(i);throw new Error(`provider-capabilities loader: failed to read ${e}: ${s}`)}let n=qu(t),r={};for(let[i,s]of Object.entries(n.providers))r[i]=sS(cS(i,s));return $i=Object.freeze(r),$i}var iS,$i,Gu=p(()=>{"use strict";lt();dr();zu();iS=Object.freeze({native:gn,"image-input-native":Jl,"cli-bridge":ki,"image-input-cli-bridge":eu}),$i=null;o(oS,"resolveJsonPath");o(Uu,"freezeConstraints");o(sS,"deepFreezeSnapshot");o(Vu,"freezeReasoningProfile");o(aS,"resolveCliBridgeModels");o(cS,"buildSnapshot");o(Yu,"getProviderSnapshots")});var Ai,Bu,lr=p(()=>{"use strict";Ri();wn();Eu();Iu();B();ee();lt();Gu();Ai=Yu(),Bu=process.env.KODAX_PROVIDER??"zhipu-coding"});var Ku=p(()=>{"use strict";ee();sr();Ft()});var Ci=p(()=>{"use strict"});var ur=p(()=>{"use strict"});var Mi=p(()=>{"use strict";pn();ee();J()});var ef=p(()=>{"use strict";J();me();wn();sr();Mi()});var ra=p(()=>{"use strict";Ce();On();B();ee();Ft();hn()});var tf=p(()=>{"use strict";ra();Mi()});var nf=p(()=>{"use strict";ra();tf()});var Xi=p(()=>{"use strict";Ri();wn();sr();Ku();Ci();ur();ef();nf();lt();Dt();Hs();Ce();hi()});var ji=p(()=>{"use strict";Xi();lr();lt()});var ca=p(()=>{"use strict";lr();ji()});var da=p(()=>{"use strict";B();lr();ji();ca();ee()});var ua=p(()=>{"use strict";On();Ri();wn();Ii();lr();Xi();ji();ca();da();Ft()});var wf=p(()=>{"use strict";ua();Dt();Vs();Jn()});var fa=p(()=>{"use strict"});var pa=p(()=>{"use strict";fa()});var Sf=p(()=>{"use strict";pa();nr();ee()});var zt=p(()=>{"use strict";pn()});var Wi=p(()=>{"use strict";zt()});var vf=p(()=>{"use strict";Wi();zt()});var Ni=p(()=>{"use strict";me();Cs();J()});var Ye=p(()=>{"use strict";Kn();ee();me();Ni();Hn();vi();un()});var kf=p(()=>{"use strict";Wt()});var xf=p(()=>{"use strict";xe();kf()});var Pf=p(()=>{"use strict";Ce()});var _f=p(()=>{"use strict";Kn();ur();Mi();ee();Ye();xf();Pf();dt()});var ma=p(()=>{"use strict";ur();Ci();Xi()});var Tf=p(()=>{"use strict";Ye();da()});function Ef(){let e=new Map;return{async read(t,n){n?.throwIfAborted();let r=e.get(t);return r?structuredClone(r):void 0},async compareAndSwap(t,n,r,i){return i.signal?.throwIfAborted(),!i.isCurrent()||e.get(t)?.revision!==n?!1:(e.set(t,structuredClone(r)),!0)}}}var lN,Rf=p(()=>{"use strict";Ye();me();Ni();Tf();o(Ef,"createMemoryModelCatalogStore");lN=Ef()});var ha=p(()=>{"use strict";zt();Wi()});var If=p(()=>{"use strict";zt();ha();Wi()});var Qf=p(()=>{"use strict";Ye()});var ya=p(()=>{"use strict";xe()});var Af=p(()=>{"use strict";Ye();Qf();ya()});var Cf=p(()=>{"use strict";J()});var Mf=p(()=>{"use strict";Ye();ya();Ni();Cf();me()});var Xf=p(()=>{"use strict";pn();J();B();ee();mi();Es();xe();Ye();me();Ce()});var jf=p(()=>{"use strict";ma();Ye()});import fD from"proper-lockfile";var Wf=p(()=>{"use strict";zt()});var Nf=p(()=>{"use strict";yi()});var Se=p(()=>{"use strict";Yl();Ts();mi();sr();me();ee();B();Hn();Qs();Wt();wu();Vs();Dt();wf();ua();dr();_i();nr();dt();fa();pa();Sf();vi();rr();Fs();xe();xe();Nt();xe();xe();zt();vf();Ci();yi();ur();_f();ma();Rf();ha();If();Af();Mf();Xf();jf();Wf();Kn();Nf()});function F(e){let t=mn(e),n=sb.at(-1)?.sink;if(n){try{n(t)}catch{}return}if(process.env.KODAX_DIAGNOSTICS_STDERR==="1")try{process.stderr.write(`${Df(t)}
90
+ `)}catch{}}function Df(e){let t=mn(e),n=ab(t.detail);return`[${t.source}] ${t.level}: ${t.message}${n?` ${n}`:""}`}function ab(e){if(e===void 0)return"";if(e instanceof Error)return e.stack??e.message;if(typeof e=="string")return e;try{return JSON.stringify(e)}catch{return String(e)}}var sb,re=p(()=>{"use strict";Se();sb=[];o(F,"emitKodaXDiagnostic");o(Df,"formatKodaXDiagnostic");o(ab,"formatDiagnosticDetail")});var Ff=p(()=>{"use strict";Se()});var Lf=p(()=>{"use strict"});var qf=p(()=>{"use strict"});function cb(){zf+=1;let e=Math.random().toString(36).slice(2,8);return`span-${Date.now()}-${zf}-${e}`}var mr,zf,wa=p(()=>{"use strict";mr=class e{static{o(this,"SpanImpl")}id;traceId;parentId;name;data;startedAt;_endedAt;_error;_children=[];now;nextSpanId;onChildCreated;onSpanEnd;_ended=!1;constructor(t){this.id=t.id,this.traceId=t.traceId,this.parentId=t.parentId,this.name=t.name,this.data=t.data,this.now=t.now??(()=>Date.now()),this.startedAt=t.startedAt??this.now(),this.nextSpanId=t.nextSpanId??cb,this.onChildCreated=t.onChildCreated,this.onSpanEnd=t.onSpanEnd}get endedAt(){return this._endedAt}get error(){return this._error}get children(){return this._children}addChild(t,n){let r=new e({id:this.nextSpanId(),traceId:this.traceId,parentId:this.id,name:t,data:n,now:this.now,nextSpanId:this.nextSpanId,onChildCreated:this.onChildCreated,onSpanEnd:this.onSpanEnd});return this._children.push(r),this.onChildCreated&&this.onChildCreated(r),r}setError(t){t instanceof Error?this._error={message:t.message,stack:t.stack}:this._error=t}end(){this._ended||(this._ended=!0,this._endedAt=this.now(),this.onSpanEnd&&this.onSpanEnd(this))}},zf=0;o(cb,"defaultNextSpanId")});function db(){Uf+=1;let e=Math.random().toString(36).slice(2,8);return`trace-${Date.now()}-${Uf}-${e}`}function Sa(e={}){let t=e.now??(()=>Date.now()),n=e.id??(e.nextTraceId??db)(),r=t(),i=e.name??"trace",s=e.metadata??new Map,a=e.rootSpanData??{kind:"agent",agentName:i},c=!1,d,l,f=new mr({id:`${n}-root`,traceId:n,name:i,data:a,startedAt:r,now:t,nextSpanId:e.nextSpanId,onChildCreated:e.onSpanStart,onSpanEnd:e.onSpanEnd});e.onSpanStart&&e.onSpanStart(f);let u={id:n,startedAt:r,rootSpan:f,metadata:s,get endedAt(){return d},get error(){return l??f.error},end(){c||(c=!0,d=t(),f.end(),e.onTraceEnd&&e.onTraceEnd(u))}};return u}var Uf,ba=p(()=>{"use strict";wa();Uf=0;o(db,"defaultNextTraceId");o(Sa,"createTrace")});function ka(e){for(let t of va)try{t.onSpanStart(e)}catch{}}function xa(e){for(let t of va)try{t.onSpanEnd(e)}catch{}}function Pa(e){for(let t of va)try{t.onTraceEnd(e)}catch{}}var va,_a=p(()=>{"use strict";va=[];o(ka,"_emitSpanStart");o(xa,"_emitSpanEnd");o(Pa,"_emitTraceEnd")});var Li,Vf,Yf=p(()=>{"use strict";ba();_a();Li=class{static{o(this,"Tracer")}options;constructor(t={}){this.options=t}startTrace(t={}){return Sa({id:t.id,name:t.name,rootSpanData:t.rootSpanData,metadata:t.metadata,now:this.options.now,nextSpanId:this.options.nextSpanId,nextTraceId:this.options.nextTraceId,onSpanStart:ka,onSpanEnd:xa,onTraceEnd:Pa})}},Vf=new Li});var Gf=p(()=>{"use strict"});var Bf=p(()=>{"use strict"});var Ta=p(()=>{"use strict";wa();ba();Yf();_a();Gf();Bf()});var hr=p(()=>{"use strict"});var qi=p(()=>{"use strict"});var hb,yq,Ea=p(()=>{"use strict";re();hr();qi();hb=["read","edit","bash:test","bash:read-only","bash:mutating","bash:network","subagent"],yq=new Set(hb)});var Ra=p(()=>{"use strict";hr();qi()});var Ia=p(()=>{"use strict";Se()});var Qa=p(()=>{"use strict"});var $a=p(()=>{"use strict"});var Ca=p(()=>{"use strict";Ta();Ea();Ra();Ia();Qa();$a();ln();Se();ct()});var Kf=p(()=>{"use strict"});var Hf=p(()=>{"use strict"});var Jf=p(()=>{"use strict"});var ep=p(()=>{"use strict";hr();Kf();Hf();Jf()});var tp=p(()=>{"use strict";Se();G()});import{execFile as jb,execFileSync as lz}from"node:child_process";import{accessSync as fz,constants as Wb,promises as Ma,realpathSync as pz,statSync as mz}from"node:fs";import{posix as np}from"node:path";import{debuglog as Nb}from"node:util";function zb(e){let t=e.env??process.env;return JSON.stringify([e.cwd??process.cwd(),t.PATH,t.DEVELOPER_DIR])}function Ub(e){let t=Or.get(e);if(t&&t.expiresAt>Date.now())return t.missing;Or.delete(e)}function Vb(e,t){t!==void 0&&(Or.size>=32&&Or.clear(),Or.set(e,{missing:t,expiresAt:Date.now()+Lb}))}function Yb(e){let t=e.executable??"git",n=e.cwd??process.cwd();return t.includes("/")?[np.resolve(n,t)]:((e.env??process.env).PATH??"/usr/bin:/bin").split(":").map(r=>np.resolve(n,r,t))}async function Gb(e){for(let t of Yb(e)){try{if(await Ma.access(t,Wb.X_OK),!(await Ma.stat(t)).isFile())continue}catch{continue}return await Ma.realpath(t).catch(()=>{})===Db}return!1}function rp(){qb("Could not determine macOS developer tools availability; retaining normal Git execution.")}function Bb(){throw Object.assign(new Error("macOS command line developer tools are unavailable. Install them to use system Git."),{code:"MACOS_GIT_TOOLS_MISSING"})}async function ja(e={}){if(process.platform!=="darwin"||!await Gb(e))return;let t=zb(e),n=Ub(t);if(n===void 0){let r=Xa.get(t);r||(r=Zb(e).then(i=>(Vb(t,i),i)).finally(()=>{Xa.delete(t)}),Xa.set(t,r)),n=await r}n&&Bb()}function Zb(e){return new Promise(t=>{jb(Fb,["-p"],{cwd:e.cwd,env:e.env??process.env,timeout:1e3,encoding:"utf8",windowsHide:!0},n=>{n&&n.code!==2?(rp(),t(void 0)):t(n?.code===2)})}).catch(()=>{rp()})}var Db,Fb,Lb,Or,Xa,qb,Wa=p(()=>{"use strict";Db="/usr/bin/git",Fb="/usr/bin/xcode-select",Lb=5e3,Or=new Map,Xa=new Map,qb=Nb("kodax:macos-git");o(zb,"probeKey");o(Ub,"cachedResult");o(Vb,"rememberResult");o(Yb,"candidates");o(Gb,"selectsSystemGit");o(rp,"reportProbeFailure");o(Bb,"rejectMissingTools");o(ja,"assertNoGitInstallPrompt");o(Zb,"probeAsync")});var zi=p(()=>{"use strict"});import{execFile as vz,spawnSync as yr}from"node:child_process";import{readFileSync as Kb}from"node:fs";function wr(e,t,n,r){let i=t.error?.code;F({source:"runtime:windows",level:r?"debug":"warn",message:"Windows process probe completed.",detail:{stage:e,cached:!1,available:r,durationMs:Date.now()-n,timeoutMs:5e3,exitCode:t.status,errorCode:i===void 0?void 0:["ENOENT","EACCES","EPERM","ETIMEDOUT","ENOEXEC","ENOMEM","EIO"].includes(i)?i:"OTHER"}})}function Jb(e){let t=e.trim();if(!t)return[];try{let n=JSON.parse(t);return(Array.isArray(n)?n:[n]).flatMap(i=>{if(typeof i!="object"||i===null)return[];let s=i,a=Number(s.pid),c=Number(s.parentPid),d=typeof s.creationTime=="string"?s.creationTime:String(s.creationTime??"0");return!Number.isFinite(a)||a<=0||!Number.isFinite(c)?[]:[{pid:a,parentPid:c,creationTime:/^\d+$/.test(d)?d:"0"}]})}catch{return[]}}function ev(e){let t=/^(\d{4})(\d{2})(\d{2})(\d{2})(\d{2})(\d{2})\.(\d{6})([+-])(\d{3})$/.exec(e);if(!t)return;let[,n,r,i,s,a,c,d,l,f]=t,u=Date.UTC(Number(n),Number(r)-1,Number(i),Number(s),Number(a),Number(c),Number(d.slice(0,3))),m=Number(f)*6e4*(l==="+"?1:-1),g=u-m;if(Number.isFinite(g))return{identity:(BigInt(g)+11644473600000n).toString(),unixMs:g}}function tv(){let e=["$cutoff = [DateTime]::UtcNow","$items = try { @(Get-CimInstance Win32_Process -ErrorAction Stop) } catch { @(Get-WmiObject Win32_Process -ErrorAction Stop) }","$rows = @($items | ForEach-Object {"," $creationTime = '0'"," try {"," $created = $_.CreationDate"," if ($created -isnot [DateTime]) { $created = [System.Management.ManagementDateTimeConverter]::ToDateTime([string]$created) }"," $created = $created.ToUniversalTime()"," if ($created -le $cutoff) { $creationTime = ([long][Math]::Floor($created.ToFileTimeUtc() / 10000)).ToString() }"," } catch {}"," [PSCustomObject]@{ pid = [int]$_.ProcessId; parentPid = [int]$_.ParentProcessId; creationTime = $creationTime }","})","$rows | ConvertTo-Json -Compress"].join(`
91
+ `),t=Date.now(),n=yr("powershell.exe",["-NoProfile","-NonInteractive","-Command",e],{encoding:"utf8",timeout:Sr,windowsHide:!0});if(!n.error&&n.status===0){let a=Jb(n.stdout);if(a.length>0)return a}wr("process-snapshot-cim",n,t,!1);let r=Date.now(),i=yr("wmic",["process","get","CreationDate,ParentProcessId,ProcessId","/format:list"],{encoding:"utf8",timeout:Sr,windowsHide:!0});if(i.error||i.status!==0){wr("process-snapshot-wmic",i,r,!1);return}let s=i.stdout.split(/\r?\n\s*\r?\n/).flatMap(a=>{let c=new Map(a.split(/\r?\n/).flatMap(m=>{let g=m.indexOf("=");return g<0?[]:[[m.slice(0,g),m.slice(g+1)]]})),d=Number(c.get("ProcessId")),l=Number(c.get("ParentProcessId")),f=c.get("CreationDate"),u=f===void 0?void 0:ev(f);return!Number.isFinite(d)||d<=0||!Number.isFinite(l)||u===void 0||u.unixMs>r?[]:[{pid:d,parentPid:l,creationTime:u.identity}]});return s.length>0?s:void 0}function nv(){let e=["$source = @'",Hb,"'@","Add-Type -TypeDefinition $source","[KodaXNativeProcessSnapshot]::ReadRows()"].join(`
92
+ `),t=Date.now(),n=yr("powershell.exe",["-NoProfile","-NonInteractive","-Command",e],{encoding:"utf8",timeout:Sr,windowsHide:!0});if(n.error||n.status!==0){wr("process-snapshot-native",n,t,!1);return}let r=rv(n.stdout);return r===void 0&&wr("process-snapshot-native",n,t,!1),r}function rv(e){let t=e.split(/\r?\n/).map(r=>r.trim()).filter(Boolean);if(t.some(r=>!/^\d+,\d+,\d+$/.test(r)))return;let n=t.flatMap(r=>{let[i,s,a="0"]=r.split(",",3),c=Number(i),d=Number(s);return!Number.isFinite(c)||c<=0||!Number.isFinite(d)?[]:[{pid:c,parentPid:d,creationTime:a}]});return n.length>0?n:void 0}function ip(){return nv()??tv()}function iv(){return ap<=0?ip():(sp||(op=ip(),sp=!0),op)}function ov(e){return[`foreach ($processId in @(${e.join(",")})) {`,' $target = $null; $creationTime = "0"'," try {"," $target = [System.Diagnostics.Process]::GetProcessById($processId)"," [long]$remainder = 0"," $creationTime = ([Math]::DivRem($target.StartTime.ToFileTimeUtc(), [long]10000, [ref]$remainder)).ToString([System.Globalization.CultureInfo]::InvariantCulture)",' } catch { $creationTime = "0" } finally { if ($null -ne $target) { $target.Dispose() } }',' [Console]::Out.WriteLine("$processId,$creationTime")',"}"].join(`
93
+ `)}function sv(e,t){let n=e.trim().split(/\r?\n/);if(!(n.length!==t.length||n.some((r,i)=>!r.startsWith(`${t[i]},`)||!/^\d+,\d+$/.test(r))))return new Map(n.map(r=>{let[i,s]=r.split(",");return[Number(i),s]}))}function av(e){let t=Date.now(),n=yr("powershell.exe",["-NoProfile","-NonInteractive","-Command",ov(e)],{encoding:"utf8",timeout:Sr,windowsHide:!0}),r=sv(n.stdout??"",e);if(n.error||n.status!==0||r===void 0){wr("process-start-identities",n,t,!1);return}return r}function Na(e){let t=[...new Set(e.filter(r=>Number.isInteger(r)&&r>0))];if(process.platform!=="win32")return new Map(t.map(r=>[r,kn(r)]));if(t.length===0)return new Map;let n=(ap<=0?av(t):void 0)??new Map(iv()?.map(r=>[r.pid,r.creationTime]));return new Map(t.map(r=>{let i=n.get(r);return[r,i==="0"?void 0:i]}))}function kn(e){if(!Number.isInteger(e)||e<=0)return;if(process.platform==="win32"){let r=Na([e]).get(e);return r===void 0&&F({source:"runtime:windows",level:"warn",message:"Windows process start identity is unavailable.",detail:{stage:"process-start-identity",pid:e,available:!1}}),r}if(process.platform==="linux")try{let r=Kb(`/proc/${e}/stat`,"utf8"),i=r.slice(r.lastIndexOf(")")+2).trim().split(/\s+/);return i[19]===void 0?void 0:`linux:${i[19]}`}catch{return}let t=yr("ps",["-o","lstart=","-p",String(e)],{encoding:"utf8",timeout:Sr,windowsHide:!0}),n=t.status===0?t.stdout.trim():"";return n===""?void 0:`${process.platform}:${n}`}var Sr,Pz,_z,Hb,Tz,Ez,Rz,op,sp,ap,Ut=p(()=>{"use strict";re();o(wr,"reportWindowsProbe");Sr=5e3,Pz=String.raw`
94
94
  using System;
95
95
  using System.Runtime.InteropServices;
96
96
  public static class KodaXWindowsJobMembership {
97
+ [StructLayout(LayoutKind.Sequential)]
98
+ private struct BasicAccountingInformation {
99
+ public long TotalUserTime;
100
+ public long TotalKernelTime;
101
+ public long ThisPeriodTotalUserTime;
102
+ public long ThisPeriodTotalKernelTime;
103
+ public uint TotalPageFaultCount;
104
+ public uint TotalProcesses;
105
+ public uint ActiveProcesses;
106
+ public uint TotalTerminatedProcesses;
107
+ }
97
108
  [StructLayout(LayoutKind.Sequential)]
98
109
  private struct BasicLimitInformation {
99
110
  public long PerProcessUserTimeLimit;
@@ -135,6 +146,13 @@ public static class KodaXWindowsJobMembership {
135
146
  out ExtendedLimitInformation information,
136
147
  uint informationLength,
137
148
  IntPtr returnLength);
149
+ [DllImport("kernel32.dll", SetLastError = true)]
150
+ private static extern bool QueryInformationJobObject(
151
+ IntPtr job,
152
+ int informationClass,
153
+ out BasicAccountingInformation information,
154
+ uint informationLength,
155
+ IntPtr returnLength);
138
156
  [DllImport("kernel32.dll")]
139
157
  private static extern IntPtr GetCurrentProcess();
140
158
  [DllImport("kernel32.dll")]
@@ -157,7 +175,17 @@ public static class KodaXWindowsJobMembership {
157
175
  CloseHandle(job);
158
176
  }
159
177
  }
160
- }`,Ez=String.raw`
178
+ public static long ActiveProcessCount(string name) {
179
+ var job = OpenJobObjectW(4, false, name);
180
+ if (job == IntPtr.Zero) return Marshal.GetLastWin32Error() == 2 ? 0 : -1;
181
+ try {
182
+ BasicAccountingInformation accounting;
183
+ if (!QueryInformationJobObject(job, 1, out accounting,
184
+ (uint)Marshal.SizeOf(typeof(BasicAccountingInformation)), IntPtr.Zero)) return -1;
185
+ return accounting.ActiveProcesses;
186
+ } finally { CloseHandle(job); }
187
+ }
188
+ }`,_z=String.raw`
161
189
  $ErrorActionPreference = 'Stop'
162
190
  $source = [Text.Encoding]::UTF8.GetString([Convert]::FromBase64String($env:KODAX_INTERNAL_JOB_QUERY_SOURCE))
163
191
  Add-Type -TypeDefinition $source
@@ -165,7 +193,7 @@ if ([KodaXWindowsJobMembership]::IsCurrentProcessContained($env:KODAX_DAEMON_JOB
165
193
  [Console]::Out.WriteLine('1')
166
194
  } else {
167
195
  [Console]::Out.Write('0')
168
- }`,Kb=String.raw`
196
+ }`,Hb=String.raw`
169
197
  using System;
170
198
  using System.Runtime.InteropServices;
171
199
  using System.Text;
@@ -252,383 +280,7 @@ public static class KodaXNativeProcessSnapshot {
252
280
  CloseHandle(snapshot);
253
281
  }
254
282
  }
255
- }`,Rz=Object.freeze({status:"terminated"}),Iz=Object.freeze({status:"already-exited"}),Qz=Object.freeze({status:"unknown"});o(Hb,"parseWindowsProcessSnapshotJson");o(Jb,"parseWmicCreationTime");o(ev,"readWindowsProcessSnapshotFallback");o(tv,"readWindowsProcessSnapshotNative");o(nv,"parseWindowsNativeProcessRows");o(ip,"readWindowsProcessSnapshotUncached");sp=!1,ap=0;o(rv,"readWindowsProcessSnapshot");o(iv,"windowsProcessStartIdentitiesScript");o(ov,"parseWindowsProcessStartIdentities");o(sv,"readWindowsProcessStartIdentities");o(Wa,"readProcessStartIdentities");o(vn,"readProcessStartIdentity")});import{AsyncLocalStorage as cv}from"node:async_hooks";var Vz,Da=p(()=>{"use strict";re();G();Ut();Vz=new cv});var Vi,dv,lv,uv,Zz,fv,Kz,Na=p(()=>{"use strict";Ut();Vi="KODAX_EFFECT_JOB_PAYLOAD",dv=String.raw`
256
- using System;
257
- using System.IO;
258
- using System.Runtime.InteropServices;
259
- using System.Threading;
260
-
261
- public static class KodaXEffectJob {
262
- [StructLayout(LayoutKind.Sequential)]
263
- private struct IoCounters {
264
- public ulong ReadOperationCount;
265
- public ulong WriteOperationCount;
266
- public ulong OtherOperationCount;
267
- public ulong ReadTransferCount;
268
- public ulong WriteTransferCount;
269
- public ulong OtherTransferCount;
270
- }
271
-
272
- [StructLayout(LayoutKind.Sequential)]
273
- private struct BasicLimitInformation {
274
- public long PerProcessUserTimeLimit;
275
- public long PerJobUserTimeLimit;
276
- public uint LimitFlags;
277
- public UIntPtr MinimumWorkingSetSize;
278
- public UIntPtr MaximumWorkingSetSize;
279
- public uint ActiveProcessLimit;
280
- public UIntPtr Affinity;
281
- public uint PriorityClass;
282
- public uint SchedulingClass;
283
- }
284
-
285
- [StructLayout(LayoutKind.Sequential)]
286
- private struct ExtendedLimitInformation {
287
- public BasicLimitInformation BasicLimitInformation;
288
- public IoCounters IoInfo;
289
- public UIntPtr ProcessMemoryLimit;
290
- public UIntPtr JobMemoryLimit;
291
- public UIntPtr PeakProcessMemoryUsed;
292
- public UIntPtr PeakJobMemoryUsed;
293
- }
294
-
295
- [StructLayout(LayoutKind.Sequential)]
296
- private struct BasicAccountingInformation {
297
- public long TotalUserTime;
298
- public long TotalKernelTime;
299
- public long ThisPeriodTotalUserTime;
300
- public long ThisPeriodTotalKernelTime;
301
- public uint TotalPageFaultCount;
302
- public uint TotalProcesses;
303
- public uint ActiveProcesses;
304
- public uint TotalTerminatedProcesses;
305
- }
306
-
307
- [DllImport("kernel32.dll", CharSet = CharSet.Unicode, SetLastError = true)]
308
- private static extern IntPtr CreateJobObjectW(IntPtr attributes, string name);
309
-
310
- [DllImport("kernel32.dll", CharSet = CharSet.Unicode, SetLastError = true)]
311
- private static extern IntPtr OpenJobObjectW(uint desiredAccess, bool inheritHandle, string name);
312
-
313
- [DllImport("kernel32.dll", SetLastError = true)]
314
- private static extern bool SetInformationJobObject(
315
- IntPtr job,
316
- int infoClass,
317
- ref ExtendedLimitInformation info,
318
- uint length);
319
-
320
- [DllImport("kernel32.dll", SetLastError = true)]
321
- private static extern bool QueryInformationJobObject(
322
- IntPtr job,
323
- int infoClass,
324
- out BasicAccountingInformation info,
325
- uint length,
326
- IntPtr returnLength);
327
-
328
- [DllImport("kernel32.dll", SetLastError = true)]
329
- private static extern IntPtr OpenProcess(uint access, bool inheritHandle, uint processId);
330
-
331
- [DllImport("kernel32.dll", SetLastError = true)]
332
- private static extern bool AssignProcessToJobObject(IntPtr job, IntPtr process);
333
-
334
- [DllImport("kernel32.dll", SetLastError = true)]
335
- private static extern uint WaitForSingleObject(IntPtr handle, uint milliseconds);
336
-
337
- [DllImport("kernel32.dll", SetLastError = true)]
338
- private static extern bool GetExitCodeProcess(IntPtr process, out uint exitCode);
339
-
340
- [DllImport("kernel32.dll", SetLastError = true)]
341
- private static extern bool TerminateJobObject(IntPtr job, uint exitCode);
342
-
343
- [DllImport("kernel32.dll", SetLastError = true)]
344
- private static extern bool CloseHandle(IntPtr handle);
345
-
346
- private const uint Synchronize = 0x00100000;
347
- private const uint ProcessTerminate = 0x0001;
348
- private const uint ProcessSetQuota = 0x0100;
349
- private const uint ProcessQueryLimitedInformation = 0x1000;
350
- private const uint JobObjectTerminate = 0x0008;
351
- private const uint JobObjectQuery = 0x0004;
352
- private const uint JobObjectLimitKillOnJobClose = 0x00002000;
353
- private const uint WaitObject0 = 0;
354
-
355
- private static void Require(bool result, string operation) {
356
- if (!result) throw new InvalidOperationException(
357
- operation + " failed with Win32 error " + Marshal.GetLastWin32Error());
358
- }
359
-
360
- private static void PublishReady() {
361
- Console.Out.WriteLine("READY");
362
- Console.Out.Flush();
363
- }
364
-
365
- public static void Run(uint targetPid, uint ownerPid, string jobName) {
366
- var job = CreateJobObjectW(IntPtr.Zero, jobName);
367
- if (job == IntPtr.Zero) throw new InvalidOperationException(
368
- "CreateJobObject failed with Win32 error " + Marshal.GetLastWin32Error());
369
- var processAccess = Synchronize | ProcessTerminate | ProcessSetQuota | ProcessQueryLimitedInformation;
370
- var target = OpenProcess(processAccess, false, targetPid);
371
- var owner = OpenProcess(Synchronize, false, ownerPid);
372
- if (target == IntPtr.Zero || owner == IntPtr.Zero) {
373
- if (target != IntPtr.Zero) CloseHandle(target);
374
- if (owner != IntPtr.Zero) CloseHandle(owner);
375
- CloseHandle(job);
376
- throw new InvalidOperationException(
377
- "OpenProcess failed with Win32 error " + Marshal.GetLastWin32Error());
378
- }
379
- try {
380
- var limits = new ExtendedLimitInformation();
381
- limits.BasicLimitInformation.LimitFlags = JobObjectLimitKillOnJobClose;
382
- Require(SetInformationJobObject(
383
- job,
384
- 9,
385
- ref limits,
386
- (uint)Marshal.SizeOf(typeof(ExtendedLimitInformation))),
387
- "SetInformationJobObject");
388
- Require(AssignProcessToJobObject(job, target), "AssignProcessToJobObject");
389
- PublishReady();
390
-
391
- uint targetExitCode = 1;
392
- while (true) {
393
- if (WaitForSingleObject(owner, 0) == WaitObject0) break;
394
- if (WaitForSingleObject(target, 0) == WaitObject0) {
395
- GetExitCodeProcess(target, out targetExitCode);
396
- break;
397
- }
398
- Thread.Sleep(20);
399
- }
400
-
401
- Require(TerminateJobObject(job, targetExitCode), "TerminateJobObject");
402
- while (true) {
403
- BasicAccountingInformation accounting;
404
- Require(QueryInformationJobObject(
405
- job,
406
- 1,
407
- out accounting,
408
- (uint)Marshal.SizeOf(typeof(BasicAccountingInformation)),
409
- IntPtr.Zero),
410
- "QueryInformationJobObject");
411
- if (accounting.ActiveProcesses == 0) return;
412
- Thread.Sleep(10);
413
- }
414
- } finally {
415
- CloseHandle(owner);
416
- CloseHandle(target);
417
- CloseHandle(job);
418
- }
419
- }
420
-
421
- public static bool TerminateAndDrain(string jobName) {
422
- var job = OpenJobObjectW(JobObjectTerminate | JobObjectQuery, false, jobName);
423
- if (job == IntPtr.Zero) {
424
- var error = Marshal.GetLastWin32Error();
425
- if (error == 2) return false;
426
- throw new InvalidOperationException(
427
- "OpenJobObject failed with Win32 error " + error);
428
- }
429
- try {
430
- Require(TerminateJobObject(job, 1), "TerminateJobObject");
431
- while (true) {
432
- BasicAccountingInformation accounting;
433
- Require(QueryInformationJobObject(
434
- job,
435
- 1,
436
- out accounting,
437
- (uint)Marshal.SizeOf(typeof(BasicAccountingInformation)),
438
- IntPtr.Zero),
439
- "QueryInformationJobObject");
440
- if (accounting.ActiveProcesses == 0) return true;
441
- Thread.Sleep(10);
442
- }
443
- } finally {
444
- CloseHandle(job);
445
- }
446
- }
447
-
448
- }`,lv=String.raw`
449
- using System;
450
- using System.Collections.Generic;
451
- using System.Diagnostics;
452
- using System.Runtime.InteropServices;
453
- using System.Security.Principal;
454
-
455
- public static class KodaXSidProbe {
456
- [StructLayout(LayoutKind.Sequential)]
457
- private struct WtsProcessInformation {
458
- public uint SessionId;
459
- public uint ProcessId;
460
- public IntPtr ProcessName;
461
- public IntPtr UserSid;
462
- }
463
-
464
- [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode)]
465
- private struct ProcessEntry32 {
466
- public uint Size;
467
- public uint Usage;
468
- public uint ProcessId;
469
- public UIntPtr DefaultHeapId;
470
- public uint ModuleId;
471
- public uint Threads;
472
- public uint ParentProcessId;
473
- public int PriorityClassBase;
474
- public uint Flags;
475
- [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 260)]
476
- public string ExecutableFile;
477
- }
478
-
479
- [DllImport("wtsapi32.dll", CharSet = CharSet.Unicode, SetLastError = true)]
480
- private static extern bool WTSEnumerateProcessesW(
481
- IntPtr server,
482
- uint reserved,
483
- uint version,
484
- out IntPtr processInformation,
485
- out uint count);
486
-
487
- [DllImport("wtsapi32.dll")]
488
- private static extern void WTSFreeMemory(IntPtr memory);
489
-
490
- [DllImport("kernel32.dll", SetLastError = true)]
491
- private static extern IntPtr CreateToolhelp32Snapshot(uint flags, uint processId);
492
-
493
- [DllImport("kernel32.dll", CharSet = CharSet.Unicode, SetLastError = true)]
494
- private static extern bool Process32FirstW(IntPtr snapshot, ref ProcessEntry32 entry);
495
-
496
- [DllImport("kernel32.dll", CharSet = CharSet.Unicode, SetLastError = true)]
497
- private static extern bool Process32NextW(IntPtr snapshot, ref ProcessEntry32 entry);
498
-
499
- [DllImport("kernel32.dll", SetLastError = true)]
500
- private static extern bool CloseHandle(IntPtr handle);
501
-
502
- private static Dictionary<uint, uint> ProcessParents() {
503
- var parents = new Dictionary<uint, uint>();
504
- var snapshot = CreateToolhelp32Snapshot(0x00000002, 0);
505
- if (snapshot == new IntPtr(-1)) throw new InvalidOperationException(
506
- "CreateToolhelp32Snapshot failed with Win32 error " + Marshal.GetLastWin32Error());
507
- try {
508
- var entry = new ProcessEntry32();
509
- entry.Size = (uint)Marshal.SizeOf(typeof(ProcessEntry32));
510
- if (!Process32FirstW(snapshot, ref entry)) throw new InvalidOperationException(
511
- "Process32First failed with Win32 error " + Marshal.GetLastWin32Error());
512
- do {
513
- parents[entry.ProcessId] = entry.ParentProcessId;
514
- entry.Size = (uint)Marshal.SizeOf(typeof(ProcessEntry32));
515
- } while (Process32NextW(snapshot, ref entry));
516
- } finally {
517
- CloseHandle(snapshot);
518
- }
519
- return parents;
520
- }
521
-
522
- private static HashSet<uint> MatchingProcesses(SecurityIdentifier expected) {
523
- var matches = new HashSet<uint>();
524
- IntPtr processes;
525
- uint count;
526
- if (!WTSEnumerateProcessesW(IntPtr.Zero, 0, 1, out processes, out count)) {
527
- throw new InvalidOperationException(
528
- "WTSEnumerateProcesses failed with Win32 error " + Marshal.GetLastWin32Error());
529
- }
530
- try {
531
- var entrySize = Marshal.SizeOf(typeof(WtsProcessInformation));
532
- for (uint index = 0; index < count; index++) {
533
- var address = new IntPtr(processes.ToInt64() + ((long)index * entrySize));
534
- var entry = (WtsProcessInformation)Marshal.PtrToStructure(
535
- address,
536
- typeof(WtsProcessInformation));
537
- if (entry.UserSid == IntPtr.Zero) continue;
538
- if (new SecurityIdentifier(entry.UserSid).Equals(expected)) matches.Add(entry.ProcessId);
539
- }
540
- } finally {
541
- WTSFreeMemory(processes);
542
- }
543
- return matches;
544
- }
545
-
546
- private static bool DescendsFrom(
547
- uint process,
548
- uint root,
549
- Dictionary<uint, uint> parents
550
- ) {
551
- var visited = new HashSet<uint>();
552
- while (process != 0 && visited.Add(process)) {
553
- if (process == root) return true;
554
- if (!parents.ContainsKey(process)) return false;
555
- process = parents[process];
556
- }
557
- return false;
558
- }
559
-
560
- public static bool HasOtherProcessWithSid(string expectedSid, bool ignoreProbeTree) {
561
- var expected = new SecurityIdentifier(expectedSid);
562
- using (var identity = WindowsIdentity.GetCurrent()) {
563
- var sameUser = identity.User != null && identity.User.Equals(expected);
564
- var administrator = new WindowsPrincipal(identity)
565
- .IsInRole(WindowsBuiltInRole.Administrator);
566
- if (ignoreProbeTree && !sameUser) {
567
- throw new InvalidOperationException("Process-tree SID probe must run as the expected sandbox user");
568
- }
569
- if (!ignoreProbeTree && !sameUser && !administrator) {
570
- throw new InvalidOperationException(
571
- "Machine-wide inspection of a foreign Windows SID requires an elevated administrator token");
572
- }
573
- }
574
- var matches = MatchingProcesses(expected);
575
- if (!ignoreProbeTree) return matches.Count > 0;
576
- var current = (uint)Process.GetCurrentProcess().Id;
577
- if (!matches.Contains(current)) throw new InvalidOperationException(
578
- "SID probe could not observe its own process");
579
- var parents = ProcessParents();
580
- var root = parents.ContainsKey(current) ? parents[current] : current;
581
- foreach (var process in matches) {
582
- if (!DescendsFrom(process, root, parents)) return true;
583
- }
584
- return false;
585
- }
586
- }`,uv=String.raw`
587
- $ErrorActionPreference = 'Stop'
588
- try {
589
- $payload = [Text.Encoding]::UTF8.GetString(
590
- [Convert]::FromBase64String($env:${Vi})) | ConvertFrom-Json
591
- Remove-Item Env:${Vi} -ErrorAction SilentlyContinue
592
- $source = @'
593
- ${dv}
594
- '@
595
- Add-Type -TypeDefinition $source
596
- if ($payload.action -eq 'recover') {
597
- $drained = [KodaXEffectJob]::TerminateAndDrain([string]$payload.jobName)
598
- [Console]::Out.WriteLine($(if ($drained) { 'DRAINED' } else { 'NOT_FOUND' }))
599
- [Console]::Out.Flush()
600
- } else {
601
- [KodaXEffectJob]::Run(
602
- [uint32]$payload.targetPid,
603
- [uint32]$payload.ownerPid,
604
- [string]$payload.jobName)
605
- }
606
- exit 0
607
- } catch {
608
- [Console]::Out.WriteLine('ERROR:' + $_.Exception.Message)
609
- [Console]::Out.Flush()
610
- exit 1
611
- }`,Zz=Buffer.from(uv,"utf16le").toString("base64"),fv=String.raw`
612
- $ErrorActionPreference = 'Stop'
613
- try {
614
- $payload = [Text.Encoding]::UTF8.GetString(
615
- [Convert]::FromBase64String($env:${Vi})) | ConvertFrom-Json
616
- Remove-Item Env:${Vi} -ErrorAction SilentlyContinue
617
- $source = @'
618
- ${lv}
619
- '@
620
- Add-Type -TypeDefinition $source
621
- $active = [KodaXSidProbe]::HasOtherProcessWithSid(
622
- [string]$payload.sid,
623
- [bool]$payload.ignoreCurrentProcessTree)
624
- [Console]::Out.WriteLine($(if ($active) { 'ACTIVE' } else { 'CLEAR' }))
625
- [Console]::Out.Flush()
626
- exit 0
627
- } catch {
628
- [Console]::Out.WriteLine('ERROR:' + $_.Exception.Message)
629
- [Console]::Out.Flush()
630
- exit 1
631
- }`,Kz=Buffer.from(fv,"utf16le").toString("base64")});var iU,lp=p(()=>{"use strict";zi();Ut();Na();iU=String.raw`
283
+ }`,Tz=Object.freeze({status:"terminated"}),Ez=Object.freeze({status:"already-exited"}),Rz=Object.freeze({status:"unknown"});o(Jb,"parseWindowsProcessSnapshotJson");o(ev,"parseWmicCreationTime");o(tv,"readWindowsProcessSnapshotFallback");o(nv,"readWindowsProcessSnapshotNative");o(rv,"parseWindowsNativeProcessRows");o(ip,"readWindowsProcessSnapshotUncached");sp=!1,ap=0;o(iv,"readWindowsProcessSnapshot");o(ov,"windowsProcessStartIdentitiesScript");o(sv,"parseWindowsProcessStartIdentities");o(av,"readWindowsProcessStartIdentities");o(Na,"readProcessStartIdentities");o(kn,"readProcessStartIdentity")});import{AsyncLocalStorage as dv}from"node:async_hooks";var zz,Da=p(()=>{"use strict";re();G();Ut();zz=new dv});var Fa=p(()=>{"use strict";Ut()});var eU,lp=p(()=>{"use strict";zi();Ut();Fa();eU=String.raw`
632
284
  const { spawn } = require('node:child_process');
633
285
  let header = Buffer.alloc(0);
634
286
  process.stdin.on('data', function receive(chunk) {
@@ -664,7 +316,7 @@ process.stdin.on('data', function receive(chunk) {
664
316
  process.stdin.pipe(child.stdin);
665
317
  });
666
318
  process.stdin.once('end', () => { if (header !== undefined) process.exit(1); });
667
- `});var up=p(()=>{"use strict"});var Fa=p(()=>{"use strict"});var fp=p(()=>{"use strict"});var pp=p(()=>{"use strict";Fa()});var Sr=p(()=>{"use strict";Fa();fp();pp()});var kn=p(()=>{"use strict"});var gp=p(()=>{"use strict";kn()});var xv,Ua=p(()=>{"use strict";kn();xv=Math.floor(3.75*1024*1024)});var Op=p(()=>{"use strict";kn();Ua()});var Tv,Va=p(()=>{"use strict";Tv=1440*60*1e3});var Ya=p(()=>{"use strict";Se()});var Ga=p(()=>{"use strict";kn();Ya()});var yp=p(()=>{"use strict";Sr();Ga()});var wp=p(()=>{"use strict";kn();gp();Ua();Op();Va();Ya();Ga();yp();Se()});var br=p(()=>{"use strict";Sr()});var kp=p(()=>{"use strict";Aa();Sr();br();br();br()});var Pp=p(()=>{"use strict"});var xp=p(()=>{"use strict";br();kp();Pp()});var Ba=p(()=>{"use strict";G()});var Za=p(()=>{"use strict";G()});var _p=p(()=>{"use strict"});var Ka=p(()=>{"use strict"});var Tp=p(()=>{"use strict";Ka();Za();Ba()});var Ep=p(()=>{"use strict";re()});var Rp=p(()=>{"use strict";Se()});var Ha=p(()=>{"use strict";Ep();Rp()});var Yi=p(()=>{"use strict"});var Ip=p(()=>{"use strict"});var Gi=p(()=>{"use strict";ja();G();Yi();Yi()});var $p=p(()=>{"use strict"});var Ap=p(()=>{"use strict"});var Bi=p(()=>{"use strict";Yi();Ip();Gi();$p();Ap()});var jp=p(()=>{"use strict"});import tk from"path";function Wp(e){let t=e.trim();if(!t)throw new Error("Plugin skill path cannot be empty.");return tk.resolve(t)}function Dp(e){let t=Wp(e);return vr.add(t),()=>{vr.delete(t)}}function Np(e){return vr.delete(Wp(e))}function Zi(){return Array.from(vr.values())}function Fp(){vr.clear()}var vr,ec=p(()=>{"use strict";vr=new Set;o(Wp,"normalizePluginSkillPath");o(Dp,"registerPluginSkillPath");o(Np,"unregisterPluginSkillPath");o(Zi,"listPluginSkillPaths");o(Fp,"clearPluginSkillPaths")});import{homedir as nk}from"os";import{existsSync as Lp}from"node:fs";import ut from"path";import{fileURLToPath as rk}from"url";import{dirname as ik}from"path";function sk(){if(process.env.KODAX_BUNDLED==="true")return ut.join(ut.dirname(process.execPath),"builtin");let e=ut.join(qp,"builtin"),t=ut.join(qp,"..","builtin");return!Lp(e)&&Lp(t)?t:e}function Ki(e){let t=nk();return{projectPaths:e?[ut.join(e,".kodax","skills"),ut.join(e,".agents","skills")]:[],userPaths:[ut.join(t,".kodax","skills"),ut.join(t,".agents","skills")],pluginPaths:Zi(),builtinPath:sk()}}function Hi(e){let t=[];for(let n of e.projectPaths)t.push({path:n,source:"project"});for(let n of e.userPaths)t.push({path:n,source:"user"});for(let n of e.pluginPaths)t.push({path:n,source:"plugin"});return t.push({path:e.builtinPath,source:"builtin"}),t}var ok,qp,tc=p(()=>{"use strict";ec();ok=rk(import.meta.url),qp=ik(ok);o(sk,"resolveBuiltinPath");o(Ki,"getDefaultSkillPaths");o(Hi,"getSkillPathsFlat")});import zp from"yaml";function ck(e){let t=e.split(`
319
+ `});var up=p(()=>{"use strict"});var La=p(()=>{"use strict"});var fp=p(()=>{"use strict"});var pp=p(()=>{"use strict";La()});var br=p(()=>{"use strict";La();fp();pp()});var xn=p(()=>{"use strict"});var gp=p(()=>{"use strict";xn()});var vv,Va=p(()=>{"use strict";xn();vv=Math.floor(3.75*1024*1024)});var Op=p(()=>{"use strict";xn();Va()});var xv,Ya=p(()=>{"use strict";xv=1440*60*1e3});var Ga=p(()=>{"use strict";Se()});var Ba=p(()=>{"use strict";xn();Ga()});var yp=p(()=>{"use strict";br();Ba()});var wp=p(()=>{"use strict";xn();gp();Va();Op();Ya();Ga();Ba();yp();Se()});var vr=p(()=>{"use strict";br()});var kp=p(()=>{"use strict";Ca();br();vr();vr();vr()});var xp=p(()=>{"use strict"});var Pp=p(()=>{"use strict";vr();kp();xp()});var Za=p(()=>{"use strict";G()});var Ka=p(()=>{"use strict";G()});var _p=p(()=>{"use strict"});var Ha=p(()=>{"use strict"});var Tp=p(()=>{"use strict";Ha();Ka();Za()});var Ep=p(()=>{"use strict";re()});var Rp=p(()=>{"use strict";Se()});var Ja=p(()=>{"use strict";Ep();Rp()});var Vi=p(()=>{"use strict"});var Ip=p(()=>{"use strict"});var Yi=p(()=>{"use strict";Wa();G();Vi();Vi()});var $p=p(()=>{"use strict"});var Ap=p(()=>{"use strict"});var Gi=p(()=>{"use strict";Vi();Ip();Yi();$p();Ap()});var jp=p(()=>{"use strict"});import Hv from"path";function Wp(e){let t=e.trim();if(!t)throw new Error("Plugin skill path cannot be empty.");return Hv.resolve(t)}function Np(e){let t=Wp(e);return kr.add(t),()=>{kr.delete(t)}}function Dp(e){return kr.delete(Wp(e))}function Bi(){return Array.from(kr.values())}function Fp(){kr.clear()}var kr,tc=p(()=>{"use strict";kr=new Set;o(Wp,"normalizePluginSkillPath");o(Np,"registerPluginSkillPath");o(Dp,"unregisterPluginSkillPath");o(Bi,"listPluginSkillPaths");o(Fp,"clearPluginSkillPaths")});import{homedir as Jv}from"os";import{existsSync as Lp}from"node:fs";import ft from"path";import{fileURLToPath as ek}from"url";import{dirname as tk}from"path";function rk(){if(process.env.KODAX_BUNDLED==="true")return ft.join(ft.dirname(process.execPath),"builtin");let e=ft.join(qp,"builtin"),t=ft.join(qp,"..","builtin");return!Lp(e)&&Lp(t)?t:e}function Zi(e){let t=Jv();return{projectPaths:e?[ft.join(e,".kodax","skills"),ft.join(e,".agents","skills")]:[],userPaths:[ft.join(t,".kodax","skills"),ft.join(t,".agents","skills")],pluginPaths:Bi(),builtinPath:rk()}}function Ki(e){let t=[];for(let n of e.projectPaths)t.push({path:n,source:"project"});for(let n of e.userPaths)t.push({path:n,source:"user"});for(let n of e.pluginPaths)t.push({path:n,source:"plugin"});return t.push({path:e.builtinPath,source:"builtin"}),t}var nk,qp,nc=p(()=>{"use strict";tc();nk=ek(import.meta.url),qp=tk(nk);o(rk,"resolveBuiltinPath");o(Zi,"getDefaultSkillPaths");o(Ki,"getSkillPathsFlat")});import zp from"yaml";function ok(e){let t=e.split(`
668
320
  `),n=[];for(let r of t){let i=r.indexOf(":");if(i>0){let s=r.slice(0,i).trim(),a=r.slice(i+1).trim();if(a.includes(":")&&!a.startsWith('"')&&!a.startsWith("'")&&!a.startsWith("[")&&!a.startsWith("|")&&!a.startsWith(">")){n.push(`${s}: |-`),n.push(` ${a}`);continue}}n.push(r)}return n.join(`
669
321
  `)}function Up(e,t={}){let n=e.replace(/^/,"").replace(/\r\n/g,`
670
322
  `).replace(/\r/g,`
@@ -672,25 +324,25 @@ process.stdin.once('end', () => { if (header !== undefined) process.exit(1); });
672
324
  `)){if(t.throwOnMissing)throw new Error("Invalid markdown: missing YAML frontmatter");return[null,e]}let r=n.indexOf(`
673
325
  ---
674
326
  `,4);if(r===-1){let c=n.indexOf(`
675
- ---`,4);c!==-1&&c===n.length-4&&(r=c)}if(r===-1){if(t.throwOnMissing)throw new Error("Invalid markdown: unclosed YAML frontmatter");return[null,e]}let i=n.slice(4,r),s=n.slice(r+5).trim(),a;try{a=zp.parse(i)??{}}catch{a=zp.parse(ck(i))??{}}if(a==null||typeof a!="object"||Array.isArray(a)){if(t.throwOnMissing)throw new Error("Invalid markdown: YAML frontmatter must be an object");return[null,s]}return[a,s]}function Vp(e){if(typeof e=="string"){let t=e.trim();return t.length>0?t:void 0}if(Array.isArray(e)){let t=e.map(n=>String(n).trim()).filter(n=>n.length>0);return t.length>0?t.join(", "):void 0}}function dk(e){if(typeof e=="string"){let t=e.trim();return t?{command:t}:void 0}if(e&&typeof e=="object"&&!Array.isArray(e)){let t=e,n=typeof t.command=="string"?t.command.trim():"";if(!n)return;let r=typeof t.matcher=="string"&&t.matcher.trim()?t.matcher.trim():void 0;return{command:n,matcher:r}}}function lk(e){if(e==null)return;let n=(Array.isArray(e)?e:[e]).map(r=>dk(r)).filter(r=>r!==void 0);return n.length>0?n:void 0}function Yp(e){if(!e||typeof e!="object"||Array.isArray(e))return;let t=e,n={};for(let r of ak){let i=lk(t[r]);i&&(n[r]=i)}return Object.keys(n).length>0?n:void 0}var ak,Gp=p(()=>{"use strict";ak=["SessionStart","UserPromptSubmit","PreToolUse","PostToolUse","Stop","SubagentStop","Notification"];o(ck,"sanitizeYaml");o(Up,"parseYamlFrontmatter");o(Vp,"normalizeAllowedToolsString");o(dk,"normalizeYamlHookEntry");o(lk,"normalizeYamlHookEntryList");o(Yp,"normalizeYamlHookMap")});import{readFile as nc,readdir as uk}from"fs/promises";import{join as ft,relative as fk}from"path";function Ji(e){let[t,n]=Up(e,{throwOnMissing:!0});if(!t)throw new Error("Invalid SKILL.md: YAML frontmatter must be an object");if(!t.name||typeof t.name!="string")throw new Error('Invalid SKILL.md: missing required "name" field');if(!t.description||typeof t.description!="string")throw new Error('Invalid SKILL.md: missing required "description" field');return{frontmatter:{name:t.name,description:t.description,disableModelInvocation:t["disable-model-invocation"]===!0,userInvocable:t["user-invocable"]!==!1,allowedTools:Vp(t["allowed-tools"]),context:t.context==="fork"?"fork":void 0,agent:typeof t.agent=="string"?t.agent:void 0,argumentHint:typeof t["argument-hint"]=="string"?t["argument-hint"]:void 0,model:typeof t.model=="string"?t.model:void 0,hooks:Yp(t.hooks),license:typeof t.license=="string"?t.license:void 0,compatibility:typeof t.compatibility=="string"?t.compatibility:void 0,metadata:t.metadata&&typeof t.metadata=="object"&&!Array.isArray(t.metadata)?t.metadata:void 0},body:n}}async function kr(e,t){let n=ft(e,"SKILL.md");try{let r=await nc(n,"utf-8"),{frontmatter:i}=Ji(r);return{name:i.name,description:i.description,userInvocable:!0,argumentHint:i.argumentHint,path:e,source:t,disableModelInvocation:i.disableModelInvocation??!1}}catch(r){return F({source:"agent:skills",level:"error",message:`Failed to load skill metadata from ${e}.`,detail:r}),null}}async function eo(e,t){let n=ft(e,"SKILL.md");try{let r=await nc(n,"utf-8"),{frontmatter:i,body:s}=Ji(r),[a,c,d,l,f]=await Promise.all([Pn(ft(e,"scripts")),Pn(ft(e,"references")),Pn(ft(e,"assets")),Pn(ft(e,"templates")),Pn(ft(e,"resources"))]);return{...i,userInvocable:!0,path:e,skillFilePath:n,content:s,rawContent:s,loaded:!0,source:t,...a.length>0&&{scripts:a},...c.length>0&&{references:c},...d.length>0&&{assets:d},...l.length>0&&{templates:l},...f.length>0&&{resources:f}}}catch(r){return F({source:"agent:skills",level:"error",message:`Failed to load skill from ${e}.`,detail:r}),null}}async function Pn(e,t=e){let n=[];try{let r=await uk(e,{withFileTypes:!0});r.sort((i,s)=>i.name.localeCompare(s.name));for(let i of r){let s=ft(e,i.name);if(i.isDirectory()){n.push(...await Pn(s,t));continue}i.isFile()&&n.push({name:i.name,path:s,relativePath:fk(t,s).replace(/\\/g,"/")})}}catch{}return n}async function Bp(e){if(e.content)return e.content;let t=await nc(e.path,"utf-8");return e.content=t,t}var to=p(()=>{"use strict";re();Gp();o(Ji,"parseSkillMarkdown");o(kr,"loadSkillMetadata");o(eo,"loadFullSkill");o(Pn,"loadSkillFiles");o(Bp,"loadSkillFileContent")});var rc=p(()=>{"use strict"});var ic=p(()=>{"use strict"});var Zp,Kp,no=p(()=>{"use strict";Zp=64*1024,Kp=256*1024});import{randomUUID as pk}from"node:crypto";import{mkdir as tm,open as nm,readFile as pt,readdir as cc,rm as mk,stat as oo,utimes as hk,writeFile as rm}from"node:fs/promises";import{dirname as gk,join as oc}from"node:path";function yk(){return Jp||(Hp=vn(process.pid),Jp=!0),Hp}async function mt(e,t,n=im){let r=await sm(e,n);try{return await t()}finally{await r()}}async function sm(e,t=im,n={}){await tm(gk(e),{recursive:!0});let r=await wk(e,t,n.requireKnownOwner===!0),i=!1,s=!1,a;return async()=>{if(!s){if(a!==void 0)return a;a=(async()=>{i||(await r.handle.close(),i=!0),await sc(e,r.token),s=!0})();try{await a}finally{s||(a=void 0)}}}}async function wk(e,t,n,r){let i=Date.now()+t,s=await Sk(e,r),a,c=!1;try{for(await bk(s,i,e,r);;){await am(s);try{let d=await Tk(e,s.token);try{await dc(s)}catch(l){let f=[l];try{await d.handle.close()}catch(u){f.push(u)}try{await sc(e,d.token)}catch(u){f.push(u)}throw f.length===1?l:new AggregateError(f,"learning lock ticket loss cleanup failed")}return a=d,a}catch(d){let l=await Ik(d,e);if(l==="retry_missing"){if(c)throw d;c=!0,await xr(Pr);continue}if(l==="not_contended")throw d;c=!1;let f=await Ek(e,n,r);if(f!==void 0&&(!n||_r(f.raw)!==void 0)&&await Rk(e,f))continue;if(Date.now()>=i)throw mm(e);await xr(Pr)}}}finally{try{await lm(s.path,s.raw)}catch(d){if(a===void 0)throw d;let l=[d];try{await a.handle.close()}catch(f){l.push(f)}try{await sc(e,a.token)}catch(f){l.push(f)}throw l.length===1?d:new AggregateError(l,"learning lock acquisition cleanup failed")}}}async function Sk(e,t){let n=`${e}.queue`,r=pk(),i=fm(r),s=oc(n,`choosing-${r}.lock`);await tm(n,{recursive:!0}),await em(s,i);try{await dm(n,e,s,t),await cm(s,i,"choosing entry");let a=await vk(n),c=Math.max(0,...a.map(f=>f.number))+1;if(!Number.isSafeInteger(c))throw new Error("learning lock ticket overflow");let d=`ticket-${String(c).padStart(Ok,"0")}-${r}.lock`,l=oc(n,d);return await em(l,i),{queuePath:n,path:l,name:d,raw:i,token:r}}finally{await lm(s,i)}}async function bk(e,t,n,r){for(;;){await am(e),await dm(e.queuePath,n,e.path,r),await dc(e);let i=await cc(e.queuePath),s=i.some(c=>c.startsWith("choosing-")),a=i.map(so).filter(c=>c!==void 0).sort(kk)[0];if(!s&&a?.name===e.name)return;if(Date.now()>=t)throw mm(n);await xr(Pr)}}async function em(e,t){let n=await nm(e,"wx");try{try{await n.writeFile(t,"utf8")}finally{await n.close()}}catch(r){throw await xn(e),r}}async function dc(e){await cm(e.path,e.raw,"ticket")}async function am(e){await dc(e);try{let t=new Date;await hk(e.path,t,t)}catch(t){throw V(t,"ENOENT")?new Error(`learning store lock ticket lost: ${e.path}`):t}}async function cm(e,t,n){try{if(await pt(e,"utf8")!==t)throw new Error(`learning store lock ${n} lost: ${e}`)}catch(r){throw V(r,"ENOENT")?new Error(`learning store lock ${n} lost: ${e}`):r}}async function vk(e){return(await cc(e)).map(so).filter(t=>t!==void 0)}function so(e){let t=/^ticket-(\d{16})-[0-9a-f-]+\.lock$/i.exec(e);if(t===null)return;let n=Number(t[1]);return Number.isSafeInteger(n)?{name:e,number:n}:void 0}function kk(e,t){return e.number-t.number||e.name.localeCompare(t.name)}async function dm(e,t,n,r){let i=await cc(e);await Promise.all(i.filter(Pk).map(async s=>{let a=oc(e,s);a!==n&&await xk(a,s,t,r)&&await xn(a)}))}function Pk(e){return/^choosing-[0-9a-f-]+\.lock$/i.test(e)||so(e)!==void 0}async function xk(e,t,n,r){try{let i=await oo(e),s=_r(await pt(e,"utf8"));return s?.released===!0||s!==void 0&&!lc(s.pid)||s!==void 0&&pm(s,r)?!0:Date.now()-i.mtimeMs<=om?!1:s===void 0||!ac(s)?!0:s.token===void 0?!1:so(t)===void 0?!0:!await _k(n,s.token)}catch(i){if(V(i,"ENOENT")||["EPERM","EACCES","EBUSY"].some(s=>V(i,s)))return!1;throw i}}async function _k(e,t){try{return _r(await pt(e,"utf8"))?.token===t}catch(n){if(V(n,"ENOENT"))return!1;if(["EPERM","EACCES","EBUSY"].some(r=>V(n,r)))return!0;throw n}}async function Tk(e,t){let n=await nm(e,"wx");try{return await n.writeFile(fm(t),"utf8"),{handle:n,token:t}}catch(r){throw await n.close(),await xn(e),r}}async function Ek(e,t=!1,n){try{let r=await oo(e),i=await pt(e,"utf8"),s=_r(i),a=s?.token!==void 0&&await $k(e,s.token),c=s!==void 0&&(!lc(s.pid)||pm(s,n)||t&&!!s.processStartIdentity&&!ac(s));return!a&&!c&&Date.now()-r.mtimeMs<=om?void 0:a||c||s===void 0||!ac(s)?{raw:i,mtimeMs:r.mtimeMs,size:r.size,...c&&s?{abandonedOwner:s}:{}}:void 0}catch(r){if(["ENOENT","EPERM","EACCES","EBUSY"].some(i=>V(r,i)))return;throw r}}async function Rk(e,t){try{let n=await oo(e);return n.mtimeMs!==t.mtimeMs||n.size!==t.size||await pt(e,"utf8")!==t.raw?!1:(await xn(e),!0)}catch(n){if(V(n,"ENOENT"))return!0;if(["EPERM","EACCES","EBUSY"].some(r=>V(n,r)))return!1;throw n}}async function Ik(e,t){if(V(e,"EEXIST"))return"contended";if(!["EPERM","EACCES","EBUSY"].some(n=>V(e,n)))return"not_contended";try{return(await oo(t)).isFile()?"contended":"not_contended"}catch(n){if(V(n,"ENOENT"))return"retry_missing";throw e}}async function sc(e,t){try{if(_r(await pt(e,"utf8"))?.token!==t)return;try{await xn(e);return}catch(r){try{await Qk(e,t);return}catch(i){throw new AggregateError([r,i],"learning lock release marker and owner cleanup both failed")}}}catch(n){if(!V(n,"ENOENT"))throw n}}async function Qk(e,t){for(let n=1;n<=ro;n+=1)try{await rm(um(e,t),`${t}
676
- `,"utf8");return}catch(r){if(!uc(r)||n===ro)throw r;await xr(Pr)}}async function lm(e,t){let n;try{if(await pt(e,"utf8")!==t)throw new Error(`learning store lock queue entry lost: ${e}`);await rm(e,`${t.trimEnd()} released
677
- `,"utf8")}catch(r){if(V(r,"ENOENT"))return;n=r}try{await xn(e)}catch(r){if(n===void 0&&uc(r))return;throw n===void 0?r:new AggregateError([n,r],"learning lock queue marker and cleanup both failed")}}async function $k(e,t){try{return(await pt(um(e,t),"utf8")).trim()===t}catch(n){if(["ENOENT","EPERM","EACCES","EBUSY"].some(r=>V(n,r)))return!1;throw n}}function um(e,t){return`${e}.${t}.released`}function fm(e){let t=yk(),n=t===void 0?"":` identity=${Buffer.from(t).toString("base64url")}`;return`${process.pid} ${e}${n}
678
- `}function _r(e){let t=e.trim().split(/\s+/),n=Number(t.shift());if(!Number.isSafeInteger(n)||n<=0)return;let r,i,s=!1;for(let a of t){if(/^[0-9a-f-]+$/i.test(a)&&r===void 0){r=a;continue}if(a.startsWith("identity=")&&i===void 0){let c=a.slice(9);if(!/^[A-Za-z0-9_-]+$/.test(c)||(i=Buffer.from(c,"base64url").toString("utf8"),!i))return;continue}if(a==="released"&&!s){s=!0;continue}return}return{pid:n,...r===void 0?{}:{token:r},...i===void 0?{}:{processStartIdentity:i},released:s}}function lc(e){try{return process.kill(e,0),!0}catch(t){return!V(t,"ESRCH")}}function V(e,t){return typeof e=="object"&&e!==null&&"code"in e&&e.code===t}function ac(e){if(!lc(e.pid))return!1;if(e.processStartIdentity===void 0)return!0;let t=vn(e.pid);return t===void 0||t===e.processStartIdentity}function pm(e,t){return!!e.processStartIdentity&&e.pid===t?.pid&&e.processStartIdentity===t.processStartIdentity}function uc(e){return["EPERM","EACCES","EBUSY"].some(t=>V(e,t))}async function xn(e){for(let t=1;t<=ro;t+=1)try{await mk(e,{force:!0});return}catch(n){if(V(n,"ENOENT"))return;if(!uc(n)||t===ro)throw n;await xr(Pr)}}function mm(e){return new io(e)}async function xr(e){await new Promise(t=>setTimeout(t,e))}var im,Pr,om,Ok,ro,Hp,Jp,io,Vt=p(()=>{"use strict";Ut();im=5e3,Pr=10,om=3e4,Ok=16,ro=8,Jp=!1;o(yk,"getCurrentProcessStartIdentity");io=class extends Error{static{o(this,"KodaXFileLockTimeoutError")}lockPath;code="kodax_file_lock_timeout";constructor(t){super(`KodaX file lock timed out: ${t}`),this.lockPath=t,this.name="KodaXFileLockTimeoutError"}};o(mt,"withLearningFileLock");o(sm,"acquireLearningFileLock");o(wk,"acquireLock");o(Sk,"createLockTicket");o(bk,"waitForTicketTurn");o(em,"createOwnerFile");o(dc,"assertTicketOwned");o(am,"heartbeatLockTicket");o(cm,"assertQueueEntryOwned");o(vk,"listQueueTickets");o(so,"parseQueueTicket");o(kk,"compareQueueTickets");o(dm,"cleanupAbandonedQueueEntries");o(Pk,"isQueueEntryName");o(xk,"isAbandonedQueueEntry");o(_k,"queueTicketOwnsCoordinatorLock");o(Tk,"createLock");o(Ek,"observeStaleLock");o(Rk,"removeObservedStaleLock");o(Ik,"classifyExistingLockContention");o(sc,"releaseLock");o(Qk,"writeReleaseMarkerWithTransientRetry");o(lm,"releaseQueueEntry");o($k,"hasReleaseMarker");o(um,"releaseMarkerPath");o(fm,"lockOwnerRecord");o(_r,"parseOwner");o(lc,"isProcessAlive");o(V,"isFileError");o(ac,"isRecordedOwnerAlive");o(pm,"matchesAbandonedOwner");o(uc,"isTransientFileContention");o(xn,"removeFileWithTransientRetry");o(mm,"lockTimeout");o(xr,"delay")});var Yt=p(()=>{"use strict";G();Gi();Vt()});var fc=p(()=>{"use strict";no();ic()});var pc=p(()=>{"use strict";fc();no();Yt()});var hc=p(()=>{"use strict";rc();Yt()});var wm=p(()=>{"use strict";G();Gi()});var RV,Sm=p(()=>{"use strict";RV=1024*1024});var vm=p(()=>{"use strict";hc()});function gc(e){return e==="active_learned"?"activated":e==="promoted_user"?"promoted":e==="quarantined"?"attention":e}function Oc(e){return e.lastAction==="rollback"?"attention":gc(e.lifecycle)}function Er(e){return`${e.capabilityId}-r${e.revision}-${Oc(e)}`}var K,Xe=p(()=>{"use strict";K=class extends Error{static{o(this,"LearningCapabilityError")}code;constructor(t,n){super(n),this.code=t,this.name="LearningCapabilityError"}};o(gc,"learningEventKindForLifecycle");o(Oc,"learningEventKindForRecord");o(Er,"learningEventIdFor")});import{mkdir as Tm,readFile as Ak,readdir as Em,rename as Ck,rm as Mk,writeFile as Xk}from"node:fs/promises";import{lstatSync as jk,realpathSync as Wk}from"node:fs";import{basename as Rr,dirname as Tn,isAbsolute as Dk,join as j,relative as Rm,resolve as Im,sep as Nk}from"node:path";function bc(e){return{root:e,skills:j(e,"skills"),extensions:j(e,"extensions"),capabilities:j(e,"capabilities"),events:j(e,"events"),clients:j(e,"clients")}}function _n(e,t){if(!/^[a-zA-Z0-9][a-zA-Z0-9_-]{0,127}$/.test(e))throw new K("invalid_record",`${t} is not a safe file key`)}async function yc(e,t){Qm(e),await Tm(Tn(e),{recursive:!0});let n=j(Tn(e),`.${Rr(e)}.${process.pid}-${Date.now().toString(36)}.tmp`);try{await Xk(n,`${JSON.stringify(t,null,2)}
679
- `,"utf8"),await Ck(n,e)}catch(r){throw await Mk(n,{force:!0}),r}}async function Gt(e){try{return JSON.parse(await Ak(e,"utf8"))}catch(t){if(vc(t,"ENOENT"))return;throw t instanceof SyntaxError?new K("store_integrity_error",`invalid JSON in ${e}`):t}}function be(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function vc(e,t){return be(e)&&e.code===t}function co(e,t){if(!be(e)||e.schemaVersion!==1&&e.schemaVersion!==2||typeof e.capabilityId!="string"||typeof e.displayName!="string"||typeof e.slug!="string"||typeof e.revision!="number"||typeof e.createdAt!="string"||typeof e.updatedAt!="string"||!be(e.source)||e.schemaVersion===2&&!qk(e))throw new K("store_integrity_error",`invalid capability record in ${t}`);return e}function km(e){let t=[],n=Im(e);for(;;)try{return jk(n),j(Wk.native(n),...t)}catch(r){if(r.code!=="ENOENT")throw r;let i=Tn(n);if(i===n)throw r;t.unshift(Rr(n)),n=i}}function Fk(e,t){let n=Rm(e,t);return n===""||n!==".."&&!n.startsWith(`..${Nk}`)&&!Dk(n)}function Lk(e,t){return Rm(e,t)===""}function Qm(e){let t=km(Mt()),n=km(e),r=j(t,"runtime");if(Lk(n,t)||Fk(r,n))throw new K("store_integrity_error",`learned Area path aliases protected Runtime state: ${e}`)}function qk(e){if(e.carrier!=="skill"||!be(e.scope)||!be(e.artifact)||!be(e.provenance)||!be(e.canary))return!1;let t=e.scope,n=e.artifact,r=e.provenance,i=e.canary;return[t.configHomeHash,t.tenantHash,t.projectHash].every(s=>typeof s=="string"&&/^[a-f0-9]{64}$/.test(s))&&n.kind==="skill_markdown"&&typeof n.relativePath=="string"&&typeof n.fingerprint=="string"&&/^[a-f0-9]{64}$/.test(n.fingerprint)&&Number.isSafeInteger(n.contentRevision)&&["jobId","inputHash","decisionId","actionId"].every(s=>typeof r[s]=="string")&&i.maxInvocations===3&&Number.isSafeInteger(i.invocationCount)&&Number.isSafeInteger(i.verifiedSuccesses)&&Number.isSafeInteger(i.credibleNegatives)&&(i.binding===void 0||zk(i.binding))&&Array.isArray(i.invocations)&&i.invocations.every(Uk)}function zk(e){return be(e)&&typeof e.bindingId=="string"&&typeof e.ownerSessionRef=="string"&&wc(e.expiresAt)}function Uk(e){return!be(e)||typeof e.invocationId!="string"||typeof e.bindingId!="string"||!["pending","verified_success","credible_negative","inconclusive"].includes(String(e.status))||!Array.isArray(e.evidenceRefs)||!e.evidenceRefs.every(t=>typeof t=="string")||!wc(e.invokedAt)||e.usageSessionHash!==void 0&&(typeof e.usageSessionHash!="string"||!/^[a-f0-9]{64}$/.test(e.usageSessionHash))||e.artifactRevision!==void 0&&!Number.isSafeInteger(e.artifactRevision)||e.artifactFingerprint!==void 0&&(typeof e.artifactFingerprint!="string"||!/^[a-f0-9]{64}$/.test(e.artifactFingerprint))?!1:e.status==="pending"?e.completedAt===void 0:wc(e.completedAt)}function wc(e){return typeof e=="string"&&Number.isFinite(Date.parse(e))}function Pm(e,t){if(!be(e)||e.schemaVersion!==1||typeof e.sequence!="number"||!Number.isSafeInteger(e.sequence)||e.sequence<1||typeof e.eventId!="string"||typeof e.capabilityId!="string"||typeof e.capabilityRevision!="number")throw new K("store_integrity_error",`invalid learning event in ${t}`);return e}function Vk(e,t){if(!be(e)||e.schemaVersion!==1||e.clientIdentity!==t||!be(e.events))throw new K("store_integrity_error",`invalid learning client record for ${t}`);return e}async function Sc(e){try{return(await Em(e)).filter(t=>t.endsWith(".json")).sort().map(t=>j(e,t))}catch(t){if(vc(t,"ENOENT"))return[];throw t}}function Yk(e){let t=Rr(e),n=Tn(e),r=Rr(n),i=Tn(n);return/^[a-f0-9]{64}$/.test(t)&&/^[a-f0-9]{64}$/.test(r)&&Rr(i)==="projects"?Tn(i):e}async function xm(e,t){let n=j(e,"projects"),r=[];for(let i of await _m(n))for(let s of await _m(j(n,i))){let a=j(n,i,s,"capabilities");if(t!==void 0){let c=j(a,`${t}.json`);await Gt(c)!==void 0&&r.push(c)}else r.push(...await Sc(a))}return r.sort()}async function _m(e){try{return(await Em(e,{withFileTypes:!0})).filter(t=>t.isDirectory()&&/^[a-f0-9]{64}$/.test(t.name)).map(t=>t.name).sort()}catch(t){if(vc(t,"ENOENT"))return[];throw t}}function lo(e,t){return{schemaVersion:1,sequence:t,eventId:Er(e),capabilityId:e.capabilityId,capabilityRevision:e.revision,kind:Oc(e),lifecycle:e.lifecycle,displayName:e.displayName,slug:e.slug,carrier:e.carrier,createdAt:e.updatedAt}}var ht,uo=p(()=>{"use strict";Xe();Vt();G();o(bc,"resolveLearnedAreaPaths");o(_n,"assertSafeFileKey");o(yc,"writeJsonAtomic");o(Gt,"readJson");o(be,"isRecord");o(vc,"isFileError");o(co,"assertCapability");o(km,"canonicalExistingPath");o(Fk,"pathContains");o(Lk,"pathsEqual");o(Qm,"assertLearnedStoreTarget");o(qk,"isValidV2Capability");o(zk,"isValidCanaryBinding");o(Uk,"isValidCanaryInvocation");o(wc,"isValidTimestamp");o(Pm,"assertEvent");o(Vk,"assertClient");o(Sc,"listJsonFiles");ht=class{static{o(this,"LearnedAreaStore")}paths;#e;constructor(t){let n=Im(t);this.#e=Yk(n),this.paths={...bc(n),events:j(this.#e,"events"),clients:j(this.#e,"clients")}}async initialize(){for(let t of Object.values(this.paths))Qm(t);await Promise.all(Object.values(this.paths).map(t=>Tm(t,{recursive:!0}))),await this.withOwnerMutation(async()=>{for(let t of await this.listCapabilities())await this.ensureCurrentEvent(t)})}async readCapability(t){_n(t,"capabilityId");let n=j(this.paths.capabilities,`${t}.json`),r=await Gt(n);if(r!==void 0)return co(r,n);if(this.#e!==this.paths.root)return;let i=await xm(this.#e,t);if(i.length>1)throw new K("store_integrity_error",`duplicate project capabilityId: ${t}`);let s=i[0];return s===void 0?void 0:co(await Gt(s),s)}async listCapabilities(){let t=await Sc(this.paths.capabilities),n=this.#e===this.paths.root?await xm(this.#e):[];return Promise.all([...t,...n].map(async r=>co(await Gt(r),r)))}async writeCapability(t){_n(t.capabilityId,"capabilityId");let n=this.#e===this.paths.root&&t.schemaVersion===2?j(this.#e,"projects",t.scope.tenantHash,t.scope.projectHash,"capabilities"):this.paths.capabilities,r=j(n,`${t.capabilityId}.json`);co(t,r),await yc(r,t)}async writeEvent(t){_n(t.eventId,"eventId"),await yc(j(this.paths.events,`${t.eventId}.json`),t)}async listEvents(){return(await Promise.all((await Sc(this.paths.events)).map(async n=>Pm(await Gt(n),n)))).sort((n,r)=>n.sequence-r.sequence)}async readClient(t){_n(t,"clientIdentity");let n=j(this.paths.clients,`${t}.json`),r=await Gt(n);return r===void 0?{schemaVersion:1,clientIdentity:t,events:{}}:Vk(r,t)}async writeClient(t){_n(t.clientIdentity,"clientIdentity"),await yc(j(this.paths.clients,`${t.clientIdentity}.json`),t)}withOwnerMutation(t){return mt(j(this.#e,".owner.lock"),t)}withClientMutation(t,n){return _n(t,"clientIdentity"),mt(j(this.paths.clients,`.${t}.lock`),n)}async ensureCurrentEvent(t){let n=Er(t),r=await Gt(j(this.paths.events,`${n}.json`));if(r!==void 0)return Pm(r,n);let i=await this.listEvents(),s=lo(t,(i.at(-1)?.sequence??0)+1);return await this.writeEvent(s),s}};o(Yk,"globalLearnedAreaRoot");o(xm,"projectCapabilityFiles");o(_m,"listDirectories");o(lo,"eventFromCapability")});var kc=p(()=>{"use strict";Yt();Xe()});var Cm=p(()=>{"use strict";G();Xe();uo();kc();pc();Yt()});var Mm=p(()=>{"use strict";Xe()});function Bt(e){return e.schemaVersion===2}var cY,Qr=p(()=>{"use strict";Xe();cY=16*1024;o(Bt,"isLearnedCapabilityRecordV2")});var Xm=p(()=>{"use strict";Xe();Qr()});var OY,jm=p(()=>{"use strict";Xe();uo();OY=16*1024});var Fm=p(()=>{"use strict";Xe();re();Qr()});var fo=p(()=>{"use strict";rc();ic();no();Yt();fc();pc();hc();wm();Sm();vm();Xe();Cm();uo();kc();Mm();Xm();jm();Fm();Qr()});import{createHash as PP}from"node:crypto";import{lstat as zm,readFile as xP,readdir as _P,realpath as TP,stat as EP}from"fs/promises";import{join as Zt,dirname as xc,relative as RP,resolve as po,sep as _c}from"path";async function $r(e,t){let n=new Map,r=[],i=o(d=>{let l=n.get(d.name);l?Kt(l.path)!==Kt(d.path)&&F({source:"agent:skills",level:"warn",message:`Skill "${d.name}" is shadowed by a higher-priority source.`,detail:{code:"skill_shadowed",name:d.name,selectedPath:Zt(l.path,"SKILL.md"),shadowedPath:Zt(d.path,"SKILL.md")}}):n.set(d.name,d)},"register"),a={...Ki(e),...t},c=Hi(a);for(let{path:d,source:l}of c)try{let f=await NP(d,l,r);for(let u of f)i(u)}catch(f){r.push({path:d,error:f instanceof Error?f.message:String(f)})}if(a.learnedArea!==void 0){let d=await IP(a.learnedArea);r.push(...d.errors);for(let l of d.skills)i(l)}return{skills:n,errors:r}}async function IP(e){let t=[],n=[];for(let r of $P(e)){let i=await QP(r.rootDir,r.expectedScope,e);t.push(...i.skills),n.push(...i.errors)}return{skills:t,errors:n}}async function QP(e,t,n){let r=new ht(e),i=[],s=[],a;try{a=await r.listCapabilities()}catch(c){return{skills:i,errors:[{path:e,error:c instanceof Error?c.message:String(c)}]}}for(let c of a){if(!Bt(c)||!AP(c,t)||!MP(c,n))continue;let d=po(e,...c.artifact.relativePath.split("/"));try{WP(d,e),await jP(e,d);let l=await xP(d,"utf8");if(DP(l)!==c.artifact.fingerprint)throw new Error("learned Skill artifact fingerprint mismatch");let f=await kr(xc(d),"learned");if(f===null)throw new Error("learned Skill metadata is invalid");i.push({...f,learned:{capabilityId:c.capabilityId,revision:c.artifact.contentRevision,fingerprint:c.artifact.fingerprint}})}catch(l){let f=l instanceof Error?l.message:String(l);s.push({path:d,error:f}),await XP(r,c,f)}}return{skills:i,errors:s}}function $P(e){let t=[e.rootDir,...e.additionalRootDirs??[]],n=CP(e);if(t.length!==n.length)throw new Error("learned Skill discovery requires one expected scope per physical root");let r=t.map((i,s)=>({rootDir:i,expectedScope:n[s]}));for(let[i,s]of r.entries())if(r.findIndex(c=>Kt(c.rootDir)===Kt(s.rootDir))!==i)throw new Error("learned Skill discovery physical roots must be unique");return r}function AP(e,t){return e.scope.configHomeHash===t.configHomeHash&&e.scope.tenantHash===t.tenantHash&&e.scope.projectHash===t.projectHash}function CP(e){let t=[...e.expectedScopes??[e.expectedScope]];if(t.length===0)throw new Error("learned Skill discovery requires at least one expected scope");return t}function MP(e,t){if(e.lifecycle==="active_learned")return!0;if(e.lifecycle!=="testing")return!1;let n=t.testingBindings?.[e.capabilityId],r=e.canary.binding;return n!==void 0&&r?.bindingId===n&&Date.parse(r.expiresAt)>Date.parse(t.now??new Date().toISOString())}async function XP(e,t,n){await e.withOwnerMutation(async()=>{let r=await e.readCapability(t.capabilityId);if(r===void 0||!Bt(r)||r.revision!==t.revision||r.lifecycle!=="testing"&&r.lifecycle!=="active_learned")return;let i={...r,lifecycle:"quarantined",revision:r.revision+1,updatedAt:new Date().toISOString(),diagnostics:[...r.diagnostics??[],`artifact discovery rejected: ${n}`]};await e.writeCapability(i),await e.ensureCurrentEvent(i)})}async function jP(e,t){let r=RP(po(e),t).split(_c),i=po(e),s=await zm(i);if(!s.isDirectory()||s.isSymbolicLink())throw new Error("learned Skill root is not a regular directory");for(let[a,c]of r.entries()){i=Zt(i,c);let d=await zm(i),l=a===r.length-1;if(d.isSymbolicLink()||(l?!d.isFile():!d.isDirectory()))throw new Error("learned Skill artifact contains a symlink or non-regular path")}}function WP(e,t){let n=Kt(t),r=Kt(e);if(r!==n&&!r.startsWith(n.endsWith(_c)?n:`${n}${_c}`))throw new Error("learned Skill artifact escapes its Learned Area")}function Kt(e){let t=po(e);return process.platform==="win32"?t.toLowerCase():t}function DP(e){return PP("sha256").update(e,"utf8").digest("hex")}async function NP(e,t,n){let r=[],i=new Set;async function s(a){try{let c=Kt(await TP(a));if(i.has(c))return;i.add(c);let d=await _P(a,{withFileTypes:!0});if(d.some(l=>l.name==="SKILL.md")){let l=await kr(a,t);l?r.push(l):n.push({path:Zt(a,"SKILL.md"),error:"Skill metadata could not be loaded."});return}d.sort((l,f)=>l.name<f.name?-1:l.name>f.name?1:0);for(let l of d){if(l.name.startsWith(".")||l.name==="node_modules")continue;let f=Zt(a,l.name);try{(l.isDirectory()||l.isSymbolicLink()&&(await EP(f)).isDirectory())&&await s(f)}catch(u){Um(n,f,u)}}}catch(c){Um(n,a,c)}}return o(s,"visit"),await s(e),r}function Um(e,t,n){typeof n=="object"&&n!==null&&"code"in n&&n.code==="ENOENT"||e.push({path:t,error:n instanceof Error?n.message:String(n)})}function Tc(e,t){let n=[],r=[".kodax/skills",".agents/skills"],i=e,s=xc(t);for(;i!==s&&i!=="/"&&i.length>3;){for(let c of r)n.push(Zt(i,c));let a=xc(i);if(a===i)break;i=a}return n}async function Vm(e,t){let n=Tc(e,t),r={projectPaths:[Zt(t,".kodax","skills"),...n]};return $r(t,r)}var Ec=p(()=>{"use strict";fo();tc();to();re();o($r,"discoverSkills");o(IP,"scanRecordGatedLearnedArea");o(QP,"scanRecordGatedLearnedRoot");o($P,"learnedAreaBindings");o(AP,"scopeMatches");o(CP,"expectedLearnedScopes");o(MP,"isRecordAdmitted");o(XP,"quarantineInvalidLearnedArtifact");o(jP,"assertRegularArtifactChain");o(WP,"assertInside");o(Kt,"comparablePath");o(DP,"sha256");o(NP,"scanSkillDirectory");o(Um,"recordDiscoveryError");o(Tc,"getNestedSkillPaths");o(Vm,"discoverSkillsWithMonorepo")});import{execSync as FP}from"child_process";import LP from"path";function Ym(e){if(!e||!e.trim())return!1;let t=e.trim().replace(/\s+/g," ").toLowerCase();for(let n of qP)if(t===n||t.startsWith(`${n} `)){if(n==="sed"&&t.split(/\s+/).some(s=>s.startsWith("-i")||s==="--in-place"))return!1;if(n==="awk"){let i=t.split(/\s+/);if(i.includes("-f")||i.includes("--file"))return!1}if(["node","npm","yarn","pnpm","tsc","python","pip","go","cargo","rustc"].includes(n)){let i=t.split(/\s+/).slice(1);if(i.length>0&&!i.every(s=>/^(-v|--version|-h|--help)$/.test(s)))return!1}return!0}return!1}function zP(e){if(!e||!e.trim())return!1;let t=e.trim().replace(/\\\r?\n/g," ");if(/[<>|;`]|\$\(|(?<!&)&(?!&)/.test(t)||t.includes("\\")&&LP.sep!=="\\"&&t.replace(/\\ /g,"").includes("\\"))return!1;let r=t.split(/\s*&&\s*/);if(r.length===1)return Ym(r[0]);for(let i of r){let s=i?.trim();if(s&&!/^cd\s+/.test(s.toLowerCase())&&!Ym(s))return!1}return!0}function Rc(e){let t=[],n="",r=!1,i="";for(let s=0;s<e.length;s++){let a=e[s];r?a===i?r=!1:n+=a:a==='"'||a==="'"?(r=!0,i=a):a===" "?n&&(t.push(n),n=""):n+=a}return n&&t.push(n),t}function Gm(e){return new En(e)}async function gt(e,t,n){return new En(n).resolve(e,t)}var qP,En,Ar=p(()=>{"use strict";qP=new Set(["ls","cat","pwd","echo","whoami","date","which","whereis","tree","dir","type","get-childitem","get-content","select-string","get-location","grep","find","awk","sed","head","tail","less","more","wc","git status","git diff","git log","git show","git branch","git remote","git ls-files","git rev-parse","git grep","node","npm","yarn","pnpm","tsc","python","pip","go","cargo","rustc"]);o(Ym,"isSingleSafeDynamicContextCommand");o(zP,"isSafeDynamicContextCommand");o(Rc,"parseArguments");En=class{static{o(this,"VariableResolver")}context;constructor(t){this.context=t}async resolve(t,n){let r=t,i=Rc(n);return r=this.resolvePositionalArgs(r,i),r=this.resolveArguments(r,n),r=this.resolveEnvVars(r),r=await this.resolveDynamicContext(r),r}resolvePositionalArgs(t,n){return t.replace(/\$(\d+)(?![a-zA-Z0-9_])/g,(r,i)=>{let s=parseInt(i,10);return n[s]??""})}resolveArguments(t,n){return t.replace(/\$ARGUMENTS/g,n)}resolveEnvVars(t){let n={...this.context.environment,CLAUDE_SESSION_ID:this.context.sessionId??"",KODAX_SESSION_ID:this.context.sessionId??"",KODAX_WORKING_DIR:this.context.workingDirectory};return t.replace(/\$\{([A-Za-z_][A-Za-z0-9_]*)\}/g,(r,i)=>n[i]??r)}async resolveDynamicContext(t){let n=/!`([^`]+)`/g,r=[],i;for(;(i=n.exec(t))!==null;)r.push({match:i[0],command:i[1]});if(r.length===0)return t;let s=t;for(let{match:a,command:c}of r)try{let d=await this.executeDynamicCommand(c);s=s.replace(a,d)}catch(d){let l=d instanceof Error?d.message:String(d);s=s.replace(a,`[Error: ${l}]`)}return s}async executeDynamicCommand(t){if(this.context.disableDynamicContext)throw new Error("Dynamic context disabled by host. Skill `!`cmd`` blocks are not allowed in this environment.");if(this.context.assertDynamicContextAllowed?.(t),this.context.executeDynamicContext){let n=await this.context.executeDynamicContext(t,this.context.workingDirectory);return typeof n=="string"?n.trim():""}if(!zP(t))throw new Error("Unsafe dynamic context command blocked. Only simple read-only commands are allowed in !`...` blocks.");try{return FP(t,{cwd:this.context.workingDirectory,encoding:"utf-8",timeout:5e3,maxBuffer:1048576,windowsHide:!0}).trim()}catch(n){throw n instanceof Error?new Error(`Command failed: ${n.message}`):n}}};o(Gm,"createResolver");o(gt,"resolveSkillContent")});function Bm(e,t){let n=e.replace(/\s+/gu," ").trim();return n.length<=t?n:`${n.slice(0,t-1).replace(/[\uD800-\uDBFF]$/,"")}\u2026`}function Ic(e){let t=e.filter(c=>!c.disableModelInvocation);if(t.length===0)return"";let n=["## Available Skills","","When users ask you to perform tasks, check if any of the available skills below match the request. Skills provide specialized capabilities and step-by-step instructions for specific workflows.","",'If the current task context already contains an "Active skill invocation" or a host-expanded Skill block for the referenced name, that explicit user invocation is already complete. Follow the expanded instructions and do NOT call the `skill` tool for that Skill again.',"",'When users reference a "slash command" or "/<something>" (e.g. "/feature-list-tracker", "/skill:foo") and the host has not already expanded it, they are referring to a skill. Invoke it via the `skill` tool with the skill name.',"","**BLOCKING REQUIREMENT**: When a model-visible Skill matches the user's request and the host has not already expanded it, you MUST invoke it via the `skill` tool BEFORE generating any other response about the task. Loading the Skill is not optional and not something to defer \u2014 it is the FIRST action you take.","","NEVER mention a model-discovered Skill without actually calling the `skill` tool. This rule does not apply to a host-expanded active user invocation, which must not be called again. Do not guess at Skill names \u2014 only use Skills listed below. Do NOT call `read` on a `SKILL.md` path to load a Skill \u2014 that is the legacy path and bypasses the resolver.",""],r=n.join(`
680
- `).length+1,i=0,s=0;for(let c of t){let d=Bm(c.description,500),l=c.argumentHint?Bm(c.argumentHint,80):"",f=`- ${c.name}:${l?` ${l}`:""} ${d}`;r+f.length+1>UP-VP||(n.push(f),r+=f.length+1,i++,(d!==c.description||l!==(c.argumentHint??""))&&s++)}let a=t.length-i;if(s>0||a>0){let c=`[Skill catalog shortened: ${s} entries shortened; ${a} Skills omitted. Explicit invocation of registered Skills remains available.]`;n.push("",c),F({source:"agent:skills",level:"warn",message:c,detail:{code:"skill_catalog_shortened",total:t.length,included:i,omitted:a,shortened:s}})}return n.push(""),n.join(`
681
- `)}function Mr(e,t){return Rn&&e!==void 0&&Zm!==e&&(Rn=null),Rn||(Rn=new Cr(e,t),Zm=e),Rn}async function Qc(e,t){let n=Mr(e,t);return await n.discover(),n}function Km(){Rn=null}var UP,VP,Cr,Rn,Zm,$c=p(()=>{"use strict";re();Ec();to();Ar();UP=8e3,VP=160;o(Bm,"catalogText");o(Ic,"formatSkillsSystemPrompt");Cr=class{static{o(this,"SkillRegistry")}skillsByName=new Map;fullSkillsByName=new Map;incompleteDiscovery=!1;get discoveryIncomplete(){return this.incompleteDiscovery}projectRoot;customPaths;constructor(t,n){this.projectRoot=t,this.customPaths=n}async discover(){let t=await $r(this.projectRoot,this.customPaths);this.incompleteDiscovery=t.errors.length>0,this.fullSkillsByName.clear(),this.skillsByName.clear();for(let[n,r]of t.skills)this.skillsByName.set(n,r);if(t.errors.length>0)for(let{path:n,error:r}of t.errors)F({source:"agent:skills",level:"warn",message:`Error scanning ${n}.`,detail:r})}get skills(){return this.skillsByName}get(t){return this.skillsByName.get(t)}async loadFull(t){let n=this.fullSkillsByName.get(t);if(n)return n;let r=this.skillsByName.get(t);if(!r)throw new Error(`Skill not found: ${t}`);let i=await eo(r.path,r.source);if(this.skillsByName.get(t)!==r)return this.loadFull(t);if(!i)throw new Error(`Failed to load skill: ${t}`);return this.fullSkillsByName.set(t,i),i}async invoke(t,n,r){try{let i=await this.loadFull(t);return{success:!0,content:await gt(i.content,n,r)}}catch(i){return{success:!1,content:"",error:i instanceof Error?i.message:String(i)}}}async reload(){this.skillsByName.clear(),this.fullSkillsByName.clear(),await this.discover()}list(){return Array.from(this.skillsByName.values())}listUserInvocable(){return this.list()}getSystemPromptSnippet(){return Ic(this.list())}has(t){return this.skillsByName.has(t)}get size(){return this.skillsByName.size}},Rn=null;o(Mr,"getSkillRegistry");o(Qc,"initializeSkillRegistry");o(Km,"resetSkillRegistry")});function Hm(e){return new In(e)}async function Jm(e,t,n,r){return new In(n).execute(e,t,r)}var In,eh=p(()=>{"use strict";$c();Ar();In=class{static{o(this,"SkillExecutor")}context;constructor(t){this.context=t}async execute(t,n,r){let i=Mr();if(!i.has(t))return{success:!1,content:"",error:`Skill not found: ${t}`};try{let s=await i.loadFull(t),a=r?.mode??(s.context==="fork"?"fork":"inline"),c=await gt(s.content,n,this.context);return a==="fork"?this.executeFork(s,c,r):this.executeInline(s,c,r)}catch(s){return{success:!1,content:"",error:s instanceof Error?s.message:String(s)}}}async executeInline(t,n,r){let i=this.buildPrompt(t,n);if(r?.onExecute)try{return{success:!0,content:await r.onExecute(i,t)}}catch(s){return{success:!1,content:"",error:s instanceof Error?s.message:String(s)}}return{success:!0,content:i}}async executeFork(t,n,r){return{success:!0,content:this.buildPrompt(t,n),artifacts:[{type:"text",name:"fork-config",content:JSON.stringify({agent:r?.agent??t.agent??"general-purpose",model:r?.model??t.model??"haiku",allowedTools:r?.allowedTools??this.parseAllowedTools(t.allowedTools)})}]}}buildPrompt(t,n){let r=[];return r.push(`[Using Skill: ${t.name}]`),r.push(""),t.allowedTools&&(r.push(`**Allowed Tools**: ${t.allowedTools}`),r.push("")),r.push(n),r.join(`
682
- `)}parseAllowedTools(t){return t?t.split(",").map(n=>n.trim()).filter(Boolean):[]}};o(Hm,"createExecutor");o(Jm,"executeSkill")});function th(e){return e.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;").replace(/'/g,"&apos;")}function mo(e){return e.replace(/\\/g,"/")}function YP(e){return[...(e.references??[]).map(t=>({folder:"references",file:t})),...(e.scripts??[]).map(t=>({folder:"scripts",file:t})),...(e.assets??[]).map(t=>({folder:"assets",file:t})),...(e.templates??[]).map(t=>({folder:"templates",file:t})),...(e.resources??[]).map(t=>({folder:"resources",file:t}))]}function GP(e){let t=YP(e);if(t.length===0)return[];let n=[["references",e.references],["scripts",e.scripts],["assets",e.assets],["templates",e.templates],["resources",e.resources]],r=["Skill support files are rooted at the skill root above. When the skill references `references/...`, `assets/...`, `scripts/...`, `templates/...`, or `resources/...`, read it from this skill root.","","Support roots:"];for(let[i,s]of n)s?.length&&r.push(`- ${i}/: ${mo(`${e.path}/${i}`)} (${s.length} files)`);r.push("","Support file inventory:");for(let{folder:i,file:s}of t.slice(0,Ac))r.push(`- ${i}/${s.relativePath}: ${mo(s.path)}`);return t.length>Ac&&r.push(`- ... ${t.length-Ac} more files under ${mo(e.path)}`),r}function BP(e,t,n){let r=[];r.push(`<skill name="${th(e.name)}" location="${th(e.path)}">`),r.push(""),r.push(`Skill root: ${mo(e.path)}`),e.source==="builtin"?r.push("This is a built-in KodaX skill."):e.source==="project"?r.push("This is a project-defined skill. Project work paths are relative to the project root; skill support files are relative to the skill root above."):e.source==="user"&&r.push("This is a user-defined skill."),r.push("");let i=GP(e);return i.length>0&&(r.push(...i),r.push("")),r.push(t),n.trim()&&(r.push(""),r.push(`User provided arguments: ${n}`)),r.push(""),r.push("</skill>"),r.join(`
683
- `)}async function nh(e,t,n){let r=await gt(e.content,t,n);return{content:BP(e,r,t),disableModelInvocation:e.disableModelInvocation??!1,skill:e}}function rh(e,t){let n=`Skill activated: ${e}`;return t.trim()&&(n+=` with arguments: ${t}`),n}var Ac,ih=p(()=>{"use strict";Ar();o(th,"escapeXml");Ac=120;o(mo,"formatDisplayPath");o(YP,"collectSupportFiles");o(GP,"buildSupportFileContext");o(BP,"buildSkillBlock");o(nh,"expandSkillForLLM");o(rh,"formatSkillActivationMessage")});import{existsSync as sh}from"node:fs";import{mkdir as ZP,readFile as Cc,readdir as KP,stat as ah,writeFile as wG}from"node:fs/promises";import HP from"node:os";import Pe from"node:path";import{fileURLToPath as Mc,pathToFileURL as ch}from"node:url";import JP from"yaml";async function Xc(){let e=Pe.dirname(Mc(import.meta.url)),t=Pe.resolve(e,"../../../sdk-skills.js");return sh(t)?import(ch(t).href):Promise.resolve().then(()=>(yo(),uh))}function dh(e){Ht=e}async function Ot(){if(Ht)return Ht;let e=Pe.dirname(Mc(import.meta.url)),t=[],n=Pe.resolve(e,"../../../index.js");if(sh(n))return Ht=await import(ch(n).href),Ht;t.push(`relative SDK path not found: ${n}`);try{return Ht=await import(["@kodax-ai","kodax"].join("/")),Ht}catch(r){t.push(`bare-name @kodax-ai/kodax failed: ${r?.code??r?.message}`)}throw new Error(`Cannot locate KodaX SDK from helper script ${import.meta.url}.
327
+ ---`,4);c!==-1&&c===n.length-4&&(r=c)}if(r===-1){if(t.throwOnMissing)throw new Error("Invalid markdown: unclosed YAML frontmatter");return[null,e]}let i=n.slice(4,r),s=n.slice(r+5).trim(),a;try{a=zp.parse(i)??{}}catch{a=zp.parse(ok(i))??{}}if(a==null||typeof a!="object"||Array.isArray(a)){if(t.throwOnMissing)throw new Error("Invalid markdown: YAML frontmatter must be an object");return[null,s]}return[a,s]}function Vp(e){if(typeof e=="string"){let t=e.trim();return t.length>0?t:void 0}if(Array.isArray(e)){let t=e.map(n=>String(n).trim()).filter(n=>n.length>0);return t.length>0?t.join(", "):void 0}}function sk(e){if(typeof e=="string"){let t=e.trim();return t?{command:t}:void 0}if(e&&typeof e=="object"&&!Array.isArray(e)){let t=e,n=typeof t.command=="string"?t.command.trim():"";if(!n)return;let r=typeof t.matcher=="string"&&t.matcher.trim()?t.matcher.trim():void 0;return{command:n,matcher:r}}}function ak(e){if(e==null)return;let n=(Array.isArray(e)?e:[e]).map(r=>sk(r)).filter(r=>r!==void 0);return n.length>0?n:void 0}function Yp(e){if(!e||typeof e!="object"||Array.isArray(e))return;let t=e,n={};for(let r of ik){let i=ak(t[r]);i&&(n[r]=i)}return Object.keys(n).length>0?n:void 0}var ik,Gp=p(()=>{"use strict";ik=["SessionStart","UserPromptSubmit","PreToolUse","PostToolUse","Stop","SubagentStop","Notification"];o(ok,"sanitizeYaml");o(Up,"parseYamlFrontmatter");o(Vp,"normalizeAllowedToolsString");o(sk,"normalizeYamlHookEntry");o(ak,"normalizeYamlHookEntryList");o(Yp,"normalizeYamlHookMap")});import{readFile as rc,readdir as ck}from"fs/promises";import{join as pt,relative as dk}from"path";function Hi(e){let[t,n]=Up(e,{throwOnMissing:!0});if(!t)throw new Error("Invalid SKILL.md: YAML frontmatter must be an object");if(!t.name||typeof t.name!="string")throw new Error('Invalid SKILL.md: missing required "name" field');if(!t.description||typeof t.description!="string")throw new Error('Invalid SKILL.md: missing required "description" field');return{frontmatter:{name:t.name,description:t.description,disableModelInvocation:t["disable-model-invocation"]===!0,userInvocable:t["user-invocable"]!==!1,allowedTools:Vp(t["allowed-tools"]),context:t.context==="fork"?"fork":void 0,agent:typeof t.agent=="string"?t.agent:void 0,argumentHint:typeof t["argument-hint"]=="string"?t["argument-hint"]:void 0,model:typeof t.model=="string"?t.model:void 0,hooks:Yp(t.hooks),license:typeof t.license=="string"?t.license:void 0,compatibility:typeof t.compatibility=="string"?t.compatibility:void 0,metadata:t.metadata&&typeof t.metadata=="object"&&!Array.isArray(t.metadata)?t.metadata:void 0},body:n}}async function xr(e,t){let n=pt(e,"SKILL.md");try{let r=await rc(n,"utf-8"),{frontmatter:i}=Hi(r);return{name:i.name,description:i.description,userInvocable:!0,argumentHint:i.argumentHint,path:e,source:t,disableModelInvocation:i.disableModelInvocation??!1}}catch(r){return F({source:"agent:skills",level:"error",message:`Failed to load skill metadata from ${e}.`,detail:r}),null}}async function Ji(e,t){let n=pt(e,"SKILL.md");try{let r=await rc(n,"utf-8"),{frontmatter:i,body:s}=Hi(r),[a,c,d,l,f]=await Promise.all([Pn(pt(e,"scripts")),Pn(pt(e,"references")),Pn(pt(e,"assets")),Pn(pt(e,"templates")),Pn(pt(e,"resources"))]);return{...i,userInvocable:!0,path:e,skillFilePath:n,content:s,rawContent:s,loaded:!0,source:t,...a.length>0&&{scripts:a},...c.length>0&&{references:c},...d.length>0&&{assets:d},...l.length>0&&{templates:l},...f.length>0&&{resources:f}}}catch(r){return F({source:"agent:skills",level:"error",message:`Failed to load skill from ${e}.`,detail:r}),null}}async function Pn(e,t=e){let n=[];try{let r=await ck(e,{withFileTypes:!0});r.sort((i,s)=>i.name.localeCompare(s.name));for(let i of r){let s=pt(e,i.name);if(i.isDirectory()){n.push(...await Pn(s,t));continue}i.isFile()&&n.push({name:i.name,path:s,relativePath:dk(t,s).replace(/\\/g,"/")})}}catch{}return n}async function Bp(e){if(e.content)return e.content;let t=await rc(e.path,"utf-8");return e.content=t,t}var eo=p(()=>{"use strict";re();Gp();o(Hi,"parseSkillMarkdown");o(xr,"loadSkillMetadata");o(Ji,"loadFullSkill");o(Pn,"loadSkillFiles");o(Bp,"loadSkillFileContent")});var ic=p(()=>{"use strict"});var oc=p(()=>{"use strict"});var Zp,Kp,to=p(()=>{"use strict";Zp=64*1024,Kp=256*1024});import{randomUUID as lk}from"node:crypto";import{mkdir as tm,open as nm,readFile as mt,readdir as dc,rm as uk,stat as io,utimes as fk,writeFile as rm}from"node:fs/promises";import{dirname as pk,join as sc}from"node:path";function hk(){return Jp||(Hp=kn(process.pid),Jp=!0),Hp}async function ht(e,t,n=im){let r=await sm(e,n);try{return await t()}finally{await r()}}async function sm(e,t=im,n={}){await tm(pk(e),{recursive:!0});let r=await gk(e,t,n.requireKnownOwner===!0),i=!1,s=!1,a;return async()=>{if(!s){if(a!==void 0)return a;a=(async()=>{i||(await r.handle.close(),i=!0),await ac(e,r.token),s=!0})();try{await a}finally{s||(a=void 0)}}}}async function gk(e,t,n,r){let i=Date.now()+t,s=await Ok(e,r),a,c=!1;try{for(await yk(s,i,e,r);;){await am(s);try{let d=await xk(e,s.token);try{await lc(s)}catch(l){let f=[l];try{await d.handle.close()}catch(u){f.push(u)}try{await ac(e,d.token)}catch(u){f.push(u)}throw f.length===1?l:new AggregateError(f,"learning lock ticket loss cleanup failed")}return a=d,a}catch(d){let l=await Tk(d,e);if(l==="retry_missing"){if(c)throw d;c=!0,await _r(Pr);continue}if(l==="not_contended")throw d;c=!1;let f=await Pk(e,n,r);if(f!==void 0&&(!n||Tr(f.raw)!==void 0)&&await _k(e,f))continue;if(Date.now()>=i)throw mm(e);await _r(Pr)}}}finally{try{await lm(s.path,s.raw)}catch(d){if(a===void 0)throw d;let l=[d];try{await a.handle.close()}catch(f){l.push(f)}try{await ac(e,a.token)}catch(f){l.push(f)}throw l.length===1?d:new AggregateError(l,"learning lock acquisition cleanup failed")}}}async function Ok(e,t){let n=`${e}.queue`,r=lk(),i=fm(r),s=sc(n,`choosing-${r}.lock`);await tm(n,{recursive:!0}),await em(s,i);try{await dm(n,e,s,t),await cm(s,i,"choosing entry");let a=await wk(n),c=Math.max(0,...a.map(f=>f.number))+1;if(!Number.isSafeInteger(c))throw new Error("learning lock ticket overflow");let d=`ticket-${String(c).padStart(mk,"0")}-${r}.lock`,l=sc(n,d);return await em(l,i),{queuePath:n,path:l,name:d,raw:i,token:r}}finally{await lm(s,i)}}async function yk(e,t,n,r){for(;;){await am(e),await dm(e.queuePath,n,e.path,r),await lc(e);let i=await dc(e.queuePath),s=i.some(c=>c.startsWith("choosing-")),a=i.map(oo).filter(c=>c!==void 0).sort(Sk)[0];if(!s&&a?.name===e.name)return;if(Date.now()>=t)throw mm(n);await _r(Pr)}}async function em(e,t){let n=await nm(e,"wx");try{try{await n.writeFile(t,"utf8")}finally{await n.close()}}catch(r){throw await _n(e),r}}async function lc(e){await cm(e.path,e.raw,"ticket")}async function am(e){await lc(e);try{let t=new Date;await fk(e.path,t,t)}catch(t){throw V(t,"ENOENT")?new Error(`learning store lock ticket lost: ${e.path}`):t}}async function cm(e,t,n){try{if(await mt(e,"utf8")!==t)throw new Error(`learning store lock ${n} lost: ${e}`)}catch(r){throw V(r,"ENOENT")?new Error(`learning store lock ${n} lost: ${e}`):r}}async function wk(e){return(await dc(e)).map(oo).filter(t=>t!==void 0)}function oo(e){let t=/^ticket-(\d{16})-[0-9a-f-]+\.lock$/i.exec(e);if(t===null)return;let n=Number(t[1]);return Number.isSafeInteger(n)?{name:e,number:n}:void 0}function Sk(e,t){return e.number-t.number||e.name.localeCompare(t.name)}async function dm(e,t,n,r){let i=await dc(e);await Promise.all(i.filter(bk).map(async s=>{let a=sc(e,s);a!==n&&await vk(a,s,t,r)&&await _n(a)}))}function bk(e){return/^choosing-[0-9a-f-]+\.lock$/i.test(e)||oo(e)!==void 0}async function vk(e,t,n,r){try{let i=await io(e),s=Tr(await mt(e,"utf8"));return s?.released===!0||s!==void 0&&!uc(s.pid)||s!==void 0&&pm(s,r)?!0:Date.now()-i.mtimeMs<=om?!1:s===void 0||!cc(s)?!0:s.token===void 0?!1:oo(t)===void 0?!0:!await kk(n,s.token)}catch(i){if(V(i,"ENOENT")||["EPERM","EACCES","EBUSY"].some(s=>V(i,s)))return!1;throw i}}async function kk(e,t){try{return Tr(await mt(e,"utf8"))?.token===t}catch(n){if(V(n,"ENOENT"))return!1;if(["EPERM","EACCES","EBUSY"].some(r=>V(n,r)))return!0;throw n}}async function xk(e,t){let n=await nm(e,"wx");try{return await n.writeFile(fm(t),"utf8"),{handle:n,token:t}}catch(r){throw await n.close(),await _n(e),r}}async function Pk(e,t=!1,n){try{let r=await io(e),i=await mt(e,"utf8"),s=Tr(i),a=s?.token!==void 0&&await Rk(e,s.token),c=s!==void 0&&(!uc(s.pid)||pm(s,n)||t&&!!s.processStartIdentity&&!cc(s));return!a&&!c&&Date.now()-r.mtimeMs<=om?void 0:a||c||s===void 0||!cc(s)?{raw:i,mtimeMs:r.mtimeMs,size:r.size,...c&&s?{abandonedOwner:s}:{}}:void 0}catch(r){if(["ENOENT","EPERM","EACCES","EBUSY"].some(i=>V(r,i)))return;throw r}}async function _k(e,t){try{let n=await io(e);return n.mtimeMs!==t.mtimeMs||n.size!==t.size||await mt(e,"utf8")!==t.raw?!1:(await _n(e),!0)}catch(n){if(V(n,"ENOENT"))return!0;if(["EPERM","EACCES","EBUSY"].some(r=>V(n,r)))return!1;throw n}}async function Tk(e,t){if(V(e,"EEXIST"))return"contended";if(!["EPERM","EACCES","EBUSY"].some(n=>V(e,n)))return"not_contended";try{return(await io(t)).isFile()?"contended":"not_contended"}catch(n){if(V(n,"ENOENT"))return"retry_missing";throw e}}async function ac(e,t){try{if(Tr(await mt(e,"utf8"))?.token!==t)return;try{await _n(e);return}catch(r){try{await Ek(e,t);return}catch(i){throw new AggregateError([r,i],"learning lock release marker and owner cleanup both failed")}}}catch(n){if(!V(n,"ENOENT"))throw n}}async function Ek(e,t){for(let n=1;n<=no;n+=1)try{await rm(um(e,t),`${t}
328
+ `,"utf8");return}catch(r){if(!fc(r)||n===no)throw r;await _r(Pr)}}async function lm(e,t){let n;try{if(await mt(e,"utf8")!==t)throw new Error(`learning store lock queue entry lost: ${e}`);await rm(e,`${t.trimEnd()} released
329
+ `,"utf8")}catch(r){if(V(r,"ENOENT"))return;n=r}try{await _n(e)}catch(r){if(n===void 0&&fc(r))return;throw n===void 0?r:new AggregateError([n,r],"learning lock queue marker and cleanup both failed")}}async function Rk(e,t){try{return(await mt(um(e,t),"utf8")).trim()===t}catch(n){if(["ENOENT","EPERM","EACCES","EBUSY"].some(r=>V(n,r)))return!1;throw n}}function um(e,t){return`${e}.${t}.released`}function fm(e){let t=hk(),n=t===void 0?"":` identity=${Buffer.from(t).toString("base64url")}`;return`${process.pid} ${e}${n}
330
+ `}function Tr(e){let t=e.trim().split(/\s+/),n=Number(t.shift());if(!Number.isSafeInteger(n)||n<=0)return;let r,i,s=!1;for(let a of t){if(/^[0-9a-f-]+$/i.test(a)&&r===void 0){r=a;continue}if(a.startsWith("identity=")&&i===void 0){let c=a.slice(9);if(!/^[A-Za-z0-9_-]+$/.test(c)||(i=Buffer.from(c,"base64url").toString("utf8"),!i))return;continue}if(a==="released"&&!s){s=!0;continue}return}return{pid:n,...r===void 0?{}:{token:r},...i===void 0?{}:{processStartIdentity:i},released:s}}function uc(e){try{return process.kill(e,0),!0}catch(t){return!V(t,"ESRCH")}}function V(e,t){return typeof e=="object"&&e!==null&&"code"in e&&e.code===t}function cc(e){if(!uc(e.pid))return!1;if(e.processStartIdentity===void 0)return!0;let t=kn(e.pid);return t===void 0||t===e.processStartIdentity}function pm(e,t){return!!e.processStartIdentity&&e.pid===t?.pid&&e.processStartIdentity===t.processStartIdentity}function fc(e){return["EPERM","EACCES","EBUSY"].some(t=>V(e,t))}async function _n(e){for(let t=1;t<=no;t+=1)try{await uk(e,{force:!0});return}catch(n){if(V(n,"ENOENT"))return;if(!fc(n)||t===no)throw n;await _r(Pr)}}function mm(e){return new ro(e)}async function _r(e){await new Promise(t=>setTimeout(t,e))}var im,Pr,om,mk,no,Hp,Jp,ro,Vt=p(()=>{"use strict";Ut();im=5e3,Pr=10,om=3e4,mk=16,no=8,Jp=!1;o(hk,"getCurrentProcessStartIdentity");ro=class extends Error{static{o(this,"KodaXFileLockTimeoutError")}lockPath;code="kodax_file_lock_timeout";constructor(t){super(`KodaX file lock timed out: ${t}`),this.lockPath=t,this.name="KodaXFileLockTimeoutError"}};o(ht,"withLearningFileLock");o(sm,"acquireLearningFileLock");o(gk,"acquireLock");o(Ok,"createLockTicket");o(yk,"waitForTicketTurn");o(em,"createOwnerFile");o(lc,"assertTicketOwned");o(am,"heartbeatLockTicket");o(cm,"assertQueueEntryOwned");o(wk,"listQueueTickets");o(oo,"parseQueueTicket");o(Sk,"compareQueueTickets");o(dm,"cleanupAbandonedQueueEntries");o(bk,"isQueueEntryName");o(vk,"isAbandonedQueueEntry");o(kk,"queueTicketOwnsCoordinatorLock");o(xk,"createLock");o(Pk,"observeStaleLock");o(_k,"removeObservedStaleLock");o(Tk,"classifyExistingLockContention");o(ac,"releaseLock");o(Ek,"writeReleaseMarkerWithTransientRetry");o(lm,"releaseQueueEntry");o(Rk,"hasReleaseMarker");o(um,"releaseMarkerPath");o(fm,"lockOwnerRecord");o(Tr,"parseOwner");o(uc,"isProcessAlive");o(V,"isFileError");o(cc,"isRecordedOwnerAlive");o(pm,"matchesAbandonedOwner");o(fc,"isTransientFileContention");o(_n,"removeFileWithTransientRetry");o(mm,"lockTimeout");o(_r,"delay")});var Yt=p(()=>{"use strict";G();Yi();Vt()});var pc=p(()=>{"use strict";to();oc()});var mc=p(()=>{"use strict";pc();to();Yt()});var gc=p(()=>{"use strict";ic();Yt()});var wm=p(()=>{"use strict";G();Yi()});var PV,Sm=p(()=>{"use strict";PV=1024*1024});var vm=p(()=>{"use strict";gc()});function Oc(e){return e==="active_learned"?"activated":e==="promoted_user"?"promoted":e==="quarantined"?"attention":e}function yc(e){return e.lastAction==="rollback"?"attention":Oc(e.lifecycle)}function Rr(e){return`${e.capabilityId}-r${e.revision}-${yc(e)}`}var K,Xe=p(()=>{"use strict";K=class extends Error{static{o(this,"LearningCapabilityError")}code;constructor(t,n){super(n),this.code=t,this.name="LearningCapabilityError"}};o(Oc,"learningEventKindForLifecycle");o(yc,"learningEventKindForRecord");o(Rr,"learningEventIdFor")});import{mkdir as Tm,readFile as Ik,readdir as Em,rename as Qk,rm as $k,writeFile as Ak}from"node:fs/promises";import{lstatSync as Ck,realpathSync as Mk}from"node:fs";import{basename as Ir,dirname as En,isAbsolute as Xk,join as j,relative as Rm,resolve as Im,sep as jk}from"node:path";function vc(e){return{root:e,skills:j(e,"skills"),extensions:j(e,"extensions"),capabilities:j(e,"capabilities"),events:j(e,"events"),clients:j(e,"clients")}}function Tn(e,t){if(!/^[a-zA-Z0-9][a-zA-Z0-9_-]{0,127}$/.test(e))throw new K("invalid_record",`${t} is not a safe file key`)}async function wc(e,t){Qm(e),await Tm(En(e),{recursive:!0});let n=j(En(e),`.${Ir(e)}.${process.pid}-${Date.now().toString(36)}.tmp`);try{await Ak(n,`${JSON.stringify(t,null,2)}
331
+ `,"utf8"),await Qk(n,e)}catch(r){throw await $k(n,{force:!0}),r}}async function Gt(e){try{return JSON.parse(await Ik(e,"utf8"))}catch(t){if(kc(t,"ENOENT"))return;throw t instanceof SyntaxError?new K("store_integrity_error",`invalid JSON in ${e}`):t}}function be(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function kc(e,t){return be(e)&&e.code===t}function ao(e,t){if(!be(e)||e.schemaVersion!==1&&e.schemaVersion!==2||typeof e.capabilityId!="string"||typeof e.displayName!="string"||typeof e.slug!="string"||typeof e.revision!="number"||typeof e.createdAt!="string"||typeof e.updatedAt!="string"||!be(e.source)||e.schemaVersion===2&&!Dk(e))throw new K("store_integrity_error",`invalid capability record in ${t}`);return e}function km(e){let t=[],n=Im(e);for(;;)try{return Ck(n),j(Mk.native(n),...t)}catch(r){if(r.code!=="ENOENT")throw r;let i=En(n);if(i===n)throw r;t.unshift(Ir(n)),n=i}}function Wk(e,t){let n=Rm(e,t);return n===""||n!==".."&&!n.startsWith(`..${jk}`)&&!Xk(n)}function Nk(e,t){return Rm(e,t)===""}function Qm(e){let t=km(Xt()),n=km(e),r=j(t,"runtime");if(Nk(n,t)||Wk(r,n))throw new K("store_integrity_error",`learned Area path aliases protected Runtime state: ${e}`)}function Dk(e){if(e.carrier!=="skill"||!be(e.scope)||!be(e.artifact)||!be(e.provenance)||!be(e.canary))return!1;let t=e.scope,n=e.artifact,r=e.provenance,i=e.canary;return[t.configHomeHash,t.tenantHash,t.projectHash].every(s=>typeof s=="string"&&/^[a-f0-9]{64}$/.test(s))&&n.kind==="skill_markdown"&&typeof n.relativePath=="string"&&typeof n.fingerprint=="string"&&/^[a-f0-9]{64}$/.test(n.fingerprint)&&Number.isSafeInteger(n.contentRevision)&&["jobId","inputHash","decisionId","actionId"].every(s=>typeof r[s]=="string")&&i.maxInvocations===3&&Number.isSafeInteger(i.invocationCount)&&Number.isSafeInteger(i.verifiedSuccesses)&&Number.isSafeInteger(i.credibleNegatives)&&(i.binding===void 0||Fk(i.binding))&&Array.isArray(i.invocations)&&i.invocations.every(Lk)}function Fk(e){return be(e)&&typeof e.bindingId=="string"&&typeof e.ownerSessionRef=="string"&&Sc(e.expiresAt)}function Lk(e){return!be(e)||typeof e.invocationId!="string"||typeof e.bindingId!="string"||!["pending","verified_success","credible_negative","inconclusive"].includes(String(e.status))||!Array.isArray(e.evidenceRefs)||!e.evidenceRefs.every(t=>typeof t=="string")||!Sc(e.invokedAt)||e.usageSessionHash!==void 0&&(typeof e.usageSessionHash!="string"||!/^[a-f0-9]{64}$/.test(e.usageSessionHash))||e.artifactRevision!==void 0&&!Number.isSafeInteger(e.artifactRevision)||e.artifactFingerprint!==void 0&&(typeof e.artifactFingerprint!="string"||!/^[a-f0-9]{64}$/.test(e.artifactFingerprint))?!1:e.status==="pending"?e.completedAt===void 0:Sc(e.completedAt)}function Sc(e){return typeof e=="string"&&Number.isFinite(Date.parse(e))}function xm(e,t){if(!be(e)||e.schemaVersion!==1||typeof e.sequence!="number"||!Number.isSafeInteger(e.sequence)||e.sequence<1||typeof e.eventId!="string"||typeof e.capabilityId!="string"||typeof e.capabilityRevision!="number")throw new K("store_integrity_error",`invalid learning event in ${t}`);return e}function qk(e,t){if(!be(e)||e.schemaVersion!==1||e.clientIdentity!==t||!be(e.events))throw new K("store_integrity_error",`invalid learning client record for ${t}`);return e}async function bc(e){try{return(await Em(e)).filter(t=>t.endsWith(".json")).sort().map(t=>j(e,t))}catch(t){if(kc(t,"ENOENT"))return[];throw t}}function zk(e){let t=Ir(e),n=En(e),r=Ir(n),i=En(n);return/^[a-f0-9]{64}$/.test(t)&&/^[a-f0-9]{64}$/.test(r)&&Ir(i)==="projects"?En(i):e}async function Pm(e,t){let n=j(e,"projects"),r=[];for(let i of await _m(n))for(let s of await _m(j(n,i))){let a=j(n,i,s,"capabilities");if(t!==void 0){let c=j(a,`${t}.json`);await Gt(c)!==void 0&&r.push(c)}else r.push(...await bc(a))}return r.sort()}async function _m(e){try{return(await Em(e,{withFileTypes:!0})).filter(t=>t.isDirectory()&&/^[a-f0-9]{64}$/.test(t.name)).map(t=>t.name).sort()}catch(t){if(kc(t,"ENOENT"))return[];throw t}}function co(e,t){return{schemaVersion:1,sequence:t,eventId:Rr(e),capabilityId:e.capabilityId,capabilityRevision:e.revision,kind:yc(e),lifecycle:e.lifecycle,displayName:e.displayName,slug:e.slug,carrier:e.carrier,createdAt:e.updatedAt}}var gt,lo=p(()=>{"use strict";Xe();Vt();G();o(vc,"resolveLearnedAreaPaths");o(Tn,"assertSafeFileKey");o(wc,"writeJsonAtomic");o(Gt,"readJson");o(be,"isRecord");o(kc,"isFileError");o(ao,"assertCapability");o(km,"canonicalExistingPath");o(Wk,"pathContains");o(Nk,"pathsEqual");o(Qm,"assertLearnedStoreTarget");o(Dk,"isValidV2Capability");o(Fk,"isValidCanaryBinding");o(Lk,"isValidCanaryInvocation");o(Sc,"isValidTimestamp");o(xm,"assertEvent");o(qk,"assertClient");o(bc,"listJsonFiles");gt=class{static{o(this,"LearnedAreaStore")}paths;#e;constructor(t){let n=Im(t);this.#e=zk(n),this.paths={...vc(n),events:j(this.#e,"events"),clients:j(this.#e,"clients")}}async initialize(){for(let t of Object.values(this.paths))Qm(t);await Promise.all(Object.values(this.paths).map(t=>Tm(t,{recursive:!0}))),await this.withOwnerMutation(async()=>{for(let t of await this.listCapabilities())await this.ensureCurrentEvent(t)})}async readCapability(t){Tn(t,"capabilityId");let n=j(this.paths.capabilities,`${t}.json`),r=await Gt(n);if(r!==void 0)return ao(r,n);if(this.#e!==this.paths.root)return;let i=await Pm(this.#e,t);if(i.length>1)throw new K("store_integrity_error",`duplicate project capabilityId: ${t}`);let s=i[0];return s===void 0?void 0:ao(await Gt(s),s)}async listCapabilities(){let t=await bc(this.paths.capabilities),n=this.#e===this.paths.root?await Pm(this.#e):[];return Promise.all([...t,...n].map(async r=>ao(await Gt(r),r)))}async writeCapability(t){Tn(t.capabilityId,"capabilityId");let n=this.#e===this.paths.root&&t.schemaVersion===2?j(this.#e,"projects",t.scope.tenantHash,t.scope.projectHash,"capabilities"):this.paths.capabilities,r=j(n,`${t.capabilityId}.json`);ao(t,r),await wc(r,t)}async writeEvent(t){Tn(t.eventId,"eventId"),await wc(j(this.paths.events,`${t.eventId}.json`),t)}async listEvents(){return(await Promise.all((await bc(this.paths.events)).map(async n=>xm(await Gt(n),n)))).sort((n,r)=>n.sequence-r.sequence)}async readClient(t){Tn(t,"clientIdentity");let n=j(this.paths.clients,`${t}.json`),r=await Gt(n);return r===void 0?{schemaVersion:1,clientIdentity:t,events:{}}:qk(r,t)}async writeClient(t){Tn(t.clientIdentity,"clientIdentity"),await wc(j(this.paths.clients,`${t.clientIdentity}.json`),t)}withOwnerMutation(t){return ht(j(this.#e,".owner.lock"),t)}withClientMutation(t,n){return Tn(t,"clientIdentity"),ht(j(this.paths.clients,`.${t}.lock`),n)}async ensureCurrentEvent(t){let n=Rr(t),r=await Gt(j(this.paths.events,`${n}.json`));if(r!==void 0)return xm(r,n);let i=await this.listEvents(),s=co(t,(i.at(-1)?.sequence??0)+1);return await this.writeEvent(s),s}};o(zk,"globalLearnedAreaRoot");o(Pm,"projectCapabilityFiles");o(_m,"listDirectories");o(co,"eventFromCapability")});var xc=p(()=>{"use strict";Yt();Xe()});var Cm=p(()=>{"use strict";G();Xe();lo();xc();mc();Yt()});var Mm=p(()=>{"use strict";Xe()});function Bt(e){return e.schemaVersion===2}var iY,$r=p(()=>{"use strict";Xe();iY=16*1024;o(Bt,"isLearnedCapabilityRecordV2")});var Xm=p(()=>{"use strict";Xe();$r()});var pY,jm=p(()=>{"use strict";Xe();lo();pY=16*1024});var Fm=p(()=>{"use strict";Xe();re();$r()});var uo=p(()=>{"use strict";ic();oc();to();Yt();pc();mc();gc();wm();Sm();vm();Xe();Cm();lo();xc();Mm();Xm();jm();Fm();$r()});import{createHash as bx}from"node:crypto";import{lstat as zm,readFile as vx,readdir as kx,realpath as xx,stat as Px}from"fs/promises";import{join as Zt,dirname as _c,relative as _x,resolve as fo,sep as Tc}from"path";async function Ar(e,t){let n=new Map,r=[],i=o(d=>{let l=n.get(d.name);l?Kt(l.path)!==Kt(d.path)&&F({source:"agent:skills",level:"warn",message:`Skill "${d.name}" is shadowed by a higher-priority source.`,detail:{code:"skill_shadowed",name:d.name,selectedPath:Zt(l.path,"SKILL.md"),shadowedPath:Zt(d.path,"SKILL.md")}}):n.set(d.name,d)},"register"),a={...Zi(e),...t},c=Ki(a);for(let{path:d,source:l}of c)try{let f=await jx(d,l,r);for(let u of f)i(u)}catch(f){r.push({path:d,error:f instanceof Error?f.message:String(f)})}if(a.learnedArea!==void 0){let d=await Tx(a.learnedArea);r.push(...d.errors);for(let l of d.skills)i(l)}return{skills:n,errors:r}}async function Tx(e){let t=[],n=[];for(let r of Rx(e)){let i=await Ex(r.rootDir,r.expectedScope,e);t.push(...i.skills),n.push(...i.errors)}return{skills:t,errors:n}}async function Ex(e,t,n){let r=new gt(e),i=[],s=[],a;try{a=await r.listCapabilities()}catch(c){return{skills:i,errors:[{path:e,error:c instanceof Error?c.message:String(c)}]}}for(let c of a){if(!Bt(c)||!Ix(c,t)||!$x(c,n))continue;let d=fo(e,...c.artifact.relativePath.split("/"));try{Mx(d,e),await Cx(e,d);let l=await vx(d,"utf8");if(Xx(l)!==c.artifact.fingerprint)throw new Error("learned Skill artifact fingerprint mismatch");let f=await xr(_c(d),"learned");if(f===null)throw new Error("learned Skill metadata is invalid");i.push({...f,learned:{capabilityId:c.capabilityId,revision:c.artifact.contentRevision,fingerprint:c.artifact.fingerprint}})}catch(l){let f=l instanceof Error?l.message:String(l);s.push({path:d,error:f}),await Ax(r,c,f)}}return{skills:i,errors:s}}function Rx(e){let t=[e.rootDir,...e.additionalRootDirs??[]],n=Qx(e);if(t.length!==n.length)throw new Error("learned Skill discovery requires one expected scope per physical root");let r=t.map((i,s)=>({rootDir:i,expectedScope:n[s]}));for(let[i,s]of r.entries())if(r.findIndex(c=>Kt(c.rootDir)===Kt(s.rootDir))!==i)throw new Error("learned Skill discovery physical roots must be unique");return r}function Ix(e,t){return e.scope.configHomeHash===t.configHomeHash&&e.scope.tenantHash===t.tenantHash&&e.scope.projectHash===t.projectHash}function Qx(e){let t=[...e.expectedScopes??[e.expectedScope]];if(t.length===0)throw new Error("learned Skill discovery requires at least one expected scope");return t}function $x(e,t){if(e.lifecycle==="active_learned")return!0;if(e.lifecycle!=="testing")return!1;let n=t.testingBindings?.[e.capabilityId],r=e.canary.binding;return n!==void 0&&r?.bindingId===n&&Date.parse(r.expiresAt)>Date.parse(t.now??new Date().toISOString())}async function Ax(e,t,n){await e.withOwnerMutation(async()=>{let r=await e.readCapability(t.capabilityId);if(r===void 0||!Bt(r)||r.revision!==t.revision||r.lifecycle!=="testing"&&r.lifecycle!=="active_learned")return;let i={...r,lifecycle:"quarantined",revision:r.revision+1,updatedAt:new Date().toISOString(),diagnostics:[...r.diagnostics??[],`artifact discovery rejected: ${n}`]};await e.writeCapability(i),await e.ensureCurrentEvent(i)})}async function Cx(e,t){let r=_x(fo(e),t).split(Tc),i=fo(e),s=await zm(i);if(!s.isDirectory()||s.isSymbolicLink())throw new Error("learned Skill root is not a regular directory");for(let[a,c]of r.entries()){i=Zt(i,c);let d=await zm(i),l=a===r.length-1;if(d.isSymbolicLink()||(l?!d.isFile():!d.isDirectory()))throw new Error("learned Skill artifact contains a symlink or non-regular path")}}function Mx(e,t){let n=Kt(t),r=Kt(e);if(r!==n&&!r.startsWith(n.endsWith(Tc)?n:`${n}${Tc}`))throw new Error("learned Skill artifact escapes its Learned Area")}function Kt(e){let t=fo(e);return process.platform==="win32"?t.toLowerCase():t}function Xx(e){return bx("sha256").update(e,"utf8").digest("hex")}async function jx(e,t,n){let r=[],i=new Set;async function s(a){try{let c=Kt(await xx(a));if(i.has(c))return;i.add(c);let d=await kx(a,{withFileTypes:!0});if(d.some(l=>l.name==="SKILL.md")){let l=await xr(a,t);l?r.push(l):n.push({path:Zt(a,"SKILL.md"),error:"Skill metadata could not be loaded."});return}d.sort((l,f)=>l.name<f.name?-1:l.name>f.name?1:0);for(let l of d){if(l.name.startsWith(".")||l.name==="node_modules")continue;let f=Zt(a,l.name);try{(l.isDirectory()||l.isSymbolicLink()&&(await Px(f)).isDirectory())&&await s(f)}catch(u){Um(n,f,u)}}}catch(c){Um(n,a,c)}}return o(s,"visit"),await s(e),r}function Um(e,t,n){typeof n=="object"&&n!==null&&"code"in n&&n.code==="ENOENT"||e.push({path:t,error:n instanceof Error?n.message:String(n)})}function Ec(e,t){let n=[],r=[".kodax/skills",".agents/skills"],i=e,s=_c(t);for(;i!==s&&i!=="/"&&i.length>3;){for(let c of r)n.push(Zt(i,c));let a=_c(i);if(a===i)break;i=a}return n}async function Vm(e,t){let n=Ec(e,t),r={projectPaths:[Zt(t,".kodax","skills"),...n]};return Ar(t,r)}var Rc=p(()=>{"use strict";uo();nc();eo();re();o(Ar,"discoverSkills");o(Tx,"scanRecordGatedLearnedArea");o(Ex,"scanRecordGatedLearnedRoot");o(Rx,"learnedAreaBindings");o(Ix,"scopeMatches");o(Qx,"expectedLearnedScopes");o($x,"isRecordAdmitted");o(Ax,"quarantineInvalidLearnedArtifact");o(Cx,"assertRegularArtifactChain");o(Mx,"assertInside");o(Kt,"comparablePath");o(Xx,"sha256");o(jx,"scanSkillDirectory");o(Um,"recordDiscoveryError");o(Ec,"getNestedSkillPaths");o(Vm,"discoverSkillsWithMonorepo")});import{execSync as Wx}from"child_process";import Nx from"path";function Ym(e){if(!e||!e.trim())return!1;let t=e.trim().replace(/\s+/g," ").toLowerCase();for(let n of Dx)if(t===n||t.startsWith(`${n} `)){if(n==="sed"&&t.split(/\s+/).some(s=>s.startsWith("-i")||s==="--in-place"))return!1;if(n==="awk"){let i=t.split(/\s+/);if(i.includes("-f")||i.includes("--file"))return!1}if(["node","npm","yarn","pnpm","tsc","python","pip","go","cargo","rustc"].includes(n)){let i=t.split(/\s+/).slice(1);if(i.length>0&&!i.every(s=>/^(-v|--version|-h|--help)$/.test(s)))return!1}return!0}return!1}function Fx(e){if(!e||!e.trim())return!1;let t=e.trim().replace(/\\\r?\n/g," ");if(/[<>|;`]|\$\(|(?<!&)&(?!&)/.test(t)||t.includes("\\")&&Nx.sep!=="\\"&&t.replace(/\\ /g,"").includes("\\"))return!1;let r=t.split(/\s*&&\s*/);if(r.length===1)return Ym(r[0]);for(let i of r){let s=i?.trim();if(s&&!/^cd\s+/.test(s.toLowerCase())&&!Ym(s))return!1}return!0}function Ic(e){let t=[],n="",r=!1,i="";for(let s=0;s<e.length;s++){let a=e[s];r?a===i?r=!1:n+=a:a==='"'||a==="'"?(r=!0,i=a):a===" "?n&&(t.push(n),n=""):n+=a}return n&&t.push(n),t}function Gm(e){return new Rn(e)}async function Ot(e,t,n){return new Rn(n).resolve(e,t)}var Dx,Rn,Cr=p(()=>{"use strict";Dx=new Set(["ls","cat","pwd","echo","whoami","date","which","whereis","tree","dir","type","get-childitem","get-content","select-string","get-location","grep","find","awk","sed","head","tail","less","more","wc","git status","git diff","git log","git show","git branch","git remote","git ls-files","git rev-parse","git grep","node","npm","yarn","pnpm","tsc","python","pip","go","cargo","rustc"]);o(Ym,"isSingleSafeDynamicContextCommand");o(Fx,"isSafeDynamicContextCommand");o(Ic,"parseArguments");Rn=class{static{o(this,"VariableResolver")}context;constructor(t){this.context=t}async resolve(t,n){let r=t,i=Ic(n);return r=this.resolvePositionalArgs(r,i),r=this.resolveArguments(r,n),r=this.resolveEnvVars(r),r=await this.resolveDynamicContext(r),r}resolvePositionalArgs(t,n){return t.replace(/\$(\d+)(?![a-zA-Z0-9_])/g,(r,i)=>{let s=parseInt(i,10);return n[s]??""})}resolveArguments(t,n){return t.replace(/\$ARGUMENTS/g,n)}resolveEnvVars(t){let n={...this.context.environment,CLAUDE_SESSION_ID:this.context.sessionId??"",KODAX_SESSION_ID:this.context.sessionId??"",KODAX_WORKING_DIR:this.context.workingDirectory};return t.replace(/\$\{([A-Za-z_][A-Za-z0-9_]*)\}/g,(r,i)=>n[i]??r)}async resolveDynamicContext(t){let n=/!`([^`]+)`/g,r=[],i;for(;(i=n.exec(t))!==null;)r.push({match:i[0],command:i[1]});if(r.length===0)return t;let s=t;for(let{match:a,command:c}of r)try{let d=await this.executeDynamicCommand(c);s=s.replace(a,d)}catch(d){let l=d instanceof Error?d.message:String(d);s=s.replace(a,`[Error: ${l}]`)}return s}async executeDynamicCommand(t){if(this.context.disableDynamicContext)throw new Error("Dynamic context disabled by host. Skill `!`cmd`` blocks are not allowed in this environment.");if(this.context.assertDynamicContextAllowed?.(t),this.context.executeDynamicContext){let n=await this.context.executeDynamicContext(t,this.context.workingDirectory);return typeof n=="string"?n.trim():""}if(!Fx(t))throw new Error("Unsafe dynamic context command blocked. Only simple read-only commands are allowed in !`...` blocks.");try{return Wx(t,{cwd:this.context.workingDirectory,encoding:"utf-8",timeout:5e3,maxBuffer:1048576,windowsHide:!0}).trim()}catch(n){throw n instanceof Error?new Error(`Command failed: ${n.message}`):n}}};o(Gm,"createResolver");o(Ot,"resolveSkillContent")});function Bm(e,t){let n=e.replace(/\s+/gu," ").trim();return n.length<=t?n:`${n.slice(0,t-1).replace(/[\uD800-\uDBFF]$/,"")}\u2026`}function Qc(e){let t=e.filter(c=>!c.disableModelInvocation);if(t.length===0)return"";let n=["## Available Skills","","When users ask you to perform tasks, check if any of the available skills below match the request. Skills provide specialized capabilities and step-by-step instructions for specific workflows.","",'If the current task context already contains an "Active skill invocation" or a host-expanded Skill block for the referenced name, that explicit user invocation is already complete. Follow the expanded instructions and do NOT call the `skill` tool for that Skill again.',"",'When users reference a "slash command" or "/<something>" (e.g. "/feature-list-tracker", "/skill:foo") and the host has not already expanded it, they are referring to a skill. Invoke it via the `skill` tool with the skill name.',"","**BLOCKING REQUIREMENT**: When a model-visible Skill matches the user's request and the host has not already expanded it, you MUST invoke it via the `skill` tool BEFORE generating any other response about the task. Loading the Skill is not optional and not something to defer \u2014 it is the FIRST action you take.","","NEVER mention a model-discovered Skill without actually calling the `skill` tool. This rule does not apply to a host-expanded active user invocation, which must not be called again. Do not guess at Skill names \u2014 only use Skills listed below. Do NOT call `read` on a `SKILL.md` path to load a Skill \u2014 that is the legacy path and bypasses the resolver.",""],r=n.join(`
332
+ `).length+1,i=0,s=0;for(let c of t){let d=Bm(c.description,500),l=c.argumentHint?Bm(c.argumentHint,80):"",f=`- ${c.name}:${l?` ${l}`:""} ${d}`;r+f.length+1>Lx-qx||(n.push(f),r+=f.length+1,i++,(d!==c.description||l!==(c.argumentHint??""))&&s++)}let a=t.length-i;if(s>0||a>0){let c=`[Skill catalog shortened: ${s} entries shortened; ${a} Skills omitted. Explicit invocation of registered Skills remains available.]`;n.push("",c),F({source:"agent:skills",level:"warn",message:c,detail:{code:"skill_catalog_shortened",total:t.length,included:i,omitted:a,shortened:s}})}return n.push(""),n.join(`
333
+ `)}function Xr(e,t){return In&&e!==void 0&&Zm!==e&&(In=null),In||(In=new Mr(e,t),Zm=e),In}async function $c(e,t){let n=Xr(e,t);return await n.discover(),n}function Km(){In=null}var Lx,qx,Mr,In,Zm,Ac=p(()=>{"use strict";re();Rc();eo();Cr();Lx=8e3,qx=160;o(Bm,"catalogText");o(Qc,"formatSkillsSystemPrompt");Mr=class{static{o(this,"SkillRegistry")}skillsByName=new Map;fullSkillsByName=new Map;incompleteDiscovery=!1;get discoveryIncomplete(){return this.incompleteDiscovery}projectRoot;customPaths;constructor(t,n){this.projectRoot=t,this.customPaths=n}async discover(){let t=await Ar(this.projectRoot,this.customPaths);this.incompleteDiscovery=t.errors.length>0,this.fullSkillsByName.clear(),this.skillsByName.clear();for(let[n,r]of t.skills)this.skillsByName.set(n,r);if(t.errors.length>0)for(let{path:n,error:r}of t.errors)F({source:"agent:skills",level:"warn",message:`Error scanning ${n}.`,detail:r})}get skills(){return this.skillsByName}get(t){return this.skillsByName.get(t)}async loadFull(t){let n=this.fullSkillsByName.get(t);if(n)return n;let r=this.skillsByName.get(t);if(!r)throw new Error(`Skill not found: ${t}`);let i=await Ji(r.path,r.source);if(this.skillsByName.get(t)!==r)return this.loadFull(t);if(!i)throw new Error(`Failed to load skill: ${t}`);return this.fullSkillsByName.set(t,i),i}async invoke(t,n,r){try{let i=await this.loadFull(t);return{success:!0,content:await Ot(i.content,n,r)}}catch(i){return{success:!1,content:"",error:i instanceof Error?i.message:String(i)}}}async reload(){this.skillsByName.clear(),this.fullSkillsByName.clear(),await this.discover()}list(){return Array.from(this.skillsByName.values())}listUserInvocable(){return this.list()}getSystemPromptSnippet(){return Qc(this.list())}has(t){return this.skillsByName.has(t)}get size(){return this.skillsByName.size}},In=null;o(Xr,"getSkillRegistry");o($c,"initializeSkillRegistry");o(Km,"resetSkillRegistry")});function Hm(e){return new Qn(e)}async function Jm(e,t,n,r){return new Qn(n).execute(e,t,r)}var Qn,eh=p(()=>{"use strict";Ac();Cr();Qn=class{static{o(this,"SkillExecutor")}context;constructor(t){this.context=t}async execute(t,n,r){let i=Xr();if(!i.has(t))return{success:!1,content:"",error:`Skill not found: ${t}`};try{let s=await i.loadFull(t),a=r?.mode??(s.context==="fork"?"fork":"inline"),c=await Ot(s.content,n,this.context);return a==="fork"?this.executeFork(s,c,r):this.executeInline(s,c,r)}catch(s){return{success:!1,content:"",error:s instanceof Error?s.message:String(s)}}}async executeInline(t,n,r){let i=this.buildPrompt(t,n);if(r?.onExecute)try{return{success:!0,content:await r.onExecute(i,t)}}catch(s){return{success:!1,content:"",error:s instanceof Error?s.message:String(s)}}return{success:!0,content:i}}async executeFork(t,n,r){return{success:!0,content:this.buildPrompt(t,n),artifacts:[{type:"text",name:"fork-config",content:JSON.stringify({agent:r?.agent??t.agent??"general-purpose",model:r?.model??t.model??"haiku",allowedTools:r?.allowedTools??this.parseAllowedTools(t.allowedTools)})}]}}buildPrompt(t,n){let r=[];return r.push(`[Using Skill: ${t.name}]`),r.push(""),t.allowedTools&&(r.push(`**Allowed Tools**: ${t.allowedTools}`),r.push("")),r.push(n),r.join(`
334
+ `)}parseAllowedTools(t){return t?t.split(",").map(n=>n.trim()).filter(Boolean):[]}};o(Hm,"createExecutor");o(Jm,"executeSkill")});function th(e){return e.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;").replace(/'/g,"&apos;")}function po(e){return e.replace(/\\/g,"/")}function zx(e){return[...(e.references??[]).map(t=>({folder:"references",file:t})),...(e.scripts??[]).map(t=>({folder:"scripts",file:t})),...(e.assets??[]).map(t=>({folder:"assets",file:t})),...(e.templates??[]).map(t=>({folder:"templates",file:t})),...(e.resources??[]).map(t=>({folder:"resources",file:t}))]}function Ux(e){let t=zx(e);if(t.length===0)return[];let n=[["references",e.references],["scripts",e.scripts],["assets",e.assets],["templates",e.templates],["resources",e.resources]],r=["Skill support files are rooted at the skill root above. When the skill references `references/...`, `assets/...`, `scripts/...`, `templates/...`, or `resources/...`, read it from this skill root.","","Support roots:"];for(let[i,s]of n)s?.length&&r.push(`- ${i}/: ${po(`${e.path}/${i}`)} (${s.length} files)`);r.push("","Support file inventory:");for(let{folder:i,file:s}of t.slice(0,Cc))r.push(`- ${i}/${s.relativePath}: ${po(s.path)}`);return t.length>Cc&&r.push(`- ... ${t.length-Cc} more files under ${po(e.path)}`),r}function Vx(e,t,n){let r=[];r.push(`<skill name="${th(e.name)}" location="${th(e.path)}">`),r.push(""),r.push(`Skill root: ${po(e.path)}`),e.source==="builtin"?r.push("This is a built-in KodaX skill."):e.source==="project"?r.push("This is a project-defined skill. Project work paths are relative to the project root; skill support files are relative to the skill root above."):e.source==="user"&&r.push("This is a user-defined skill."),r.push("");let i=Ux(e);return i.length>0&&(r.push(...i),r.push("")),r.push(t),n.trim()&&(r.push(""),r.push(`User provided arguments: ${n}`)),r.push(""),r.push("</skill>"),r.join(`
335
+ `)}async function nh(e,t,n){let r=await Ot(e.content,t,n);return{content:Vx(e,r,t),disableModelInvocation:e.disableModelInvocation??!1,skill:e}}function rh(e,t){let n=`Skill activated: ${e}`;return t.trim()&&(n+=` with arguments: ${t}`),n}var Cc,ih=p(()=>{"use strict";Cr();o(th,"escapeXml");Cc=120;o(po,"formatDisplayPath");o(zx,"collectSupportFiles");o(Ux,"buildSupportFileContext");o(Vx,"buildSkillBlock");o(nh,"expandSkillForLLM");o(rh,"formatSkillActivationMessage")});import{existsSync as sh}from"node:fs";import{mkdir as Yx,readFile as Mc,readdir as Gx,stat as ah,writeFile as hG}from"node:fs/promises";import Bx from"node:os";import Pe from"node:path";import{fileURLToPath as Xc,pathToFileURL as ch}from"node:url";import Zx from"yaml";async function jc(){let e=Pe.dirname(Xc(import.meta.url)),t=Pe.resolve(e,"../../../sdk-skills.js");return sh(t)?import(ch(t).href):Promise.resolve().then(()=>(Oo(),uh))}function dh(e){Ht=e}async function yt(){if(Ht)return Ht;let e=Pe.dirname(Xc(import.meta.url)),t=[],n=Pe.resolve(e,"../../../index.js");if(sh(n))return Ht=await import(ch(n).href),Ht;t.push(`relative SDK path not found: ${n}`);try{return Ht=await import(["@kodax-ai","kodax"].join("/")),Ht}catch(r){t.push(`bare-name @kodax-ai/kodax failed: ${r?.code??r?.message}`)}throw new Error(`Cannot locate KodaX SDK from helper script ${import.meta.url}.
684
336
  Attempted:
685
337
  - ${t.join(`
686
- - `)}`)}function ex(e){let t=e.replace(/^\uFEFF/,"").replace(/\r\n/g,`
338
+ - `)}`)}function Kx(e){let t=e.replace(/^\uFEFF/,"").replace(/\r\n/g,`
687
339
  `).replace(/\r/g,`
688
340
  `).trimStart();if(!t.startsWith(`---
689
341
  `))throw new Error("SKILL.md missing YAML frontmatter");let n=t.indexOf(`
690
342
  ---
691
- `,4);if(n===-1)throw new Error("SKILL.md has unclosed YAML frontmatter");return{yamlText:t.slice(4,n),body:t.slice(n+5).trim()}}function ho(e){let{yamlText:t,body:n}=ex(e),r=JP.parse(t);if(!r||typeof r!="object"||Array.isArray(r))throw new Error("Frontmatter must be a YAML object");return{frontmatter:r,body:n}}async function jr(e){let t=Pe.join(e,"SKILL.md");if(!(await ah(t).catch(()=>null))?.isFile())throw new Error(`SKILL.md not found in ${e}`);let r=await Cc(t,"utf8"),{frontmatter:i,body:s}=ho(r);return{skillDir:Pe.resolve(e),skillMdPath:t,rawContent:r,body:s,frontmatter:i}}async function Wr(e){try{return await ah(e),!0}catch{return!1}}function go(e){if(!e.length)return{mean:0,stddev:0,min:0,max:0};let t=e.reduce((r,i)=>r+i,0)/e.length,n=e.length>1?e.reduce((r,i)=>r+(i-t)**2,0)/(e.length-1):0;return{mean:Xr(t),stddev:Xr(Math.sqrt(n)),min:Xr(Math.min(...e)),max:Xr(Math.max(...e))}}function Xr(e,t=4){return Number(e.toFixed(t))}function Oo(e){return e>=0?`+${e.toFixed(4)}`:e.toFixed(4)}function oh(e){try{return JSON.parse(e)}catch{return null}}function Qn(e){let t=oh(e.trim());if(t&&typeof t=="object")return t;let n=e.indexOf("{"),r=e.lastIndexOf("}");return n===-1||r===-1||r<=n?null:oh(e.slice(n,r+1))}async function je(e,t=null){try{return JSON.parse(await Cc(e,"utf8"))}catch{return t}}async function $n(e,t){let n=Pe.dirname(Mc(e));return Cc(Pe.resolve(n,t),"utf8")}function ae(e,t=12e3){let n=typeof e=="string"?e:String(e??"");if(n.length<=t)return n;let r=n.length-t;return`${n.slice(0,t)}
343
+ `,4);if(n===-1)throw new Error("SKILL.md has unclosed YAML frontmatter");return{yamlText:t.slice(4,n),body:t.slice(n+5).trim()}}function mo(e){let{yamlText:t,body:n}=Kx(e),r=Zx.parse(t);if(!r||typeof r!="object"||Array.isArray(r))throw new Error("Frontmatter must be a YAML object");return{frontmatter:r,body:n}}async function Wr(e){let t=Pe.join(e,"SKILL.md");if(!(await ah(t).catch(()=>null))?.isFile())throw new Error(`SKILL.md not found in ${e}`);let r=await Mc(t,"utf8"),{frontmatter:i,body:s}=mo(r);return{skillDir:Pe.resolve(e),skillMdPath:t,rawContent:r,body:s,frontmatter:i}}async function Nr(e){try{return await ah(e),!0}catch{return!1}}function ho(e){if(!e.length)return{mean:0,stddev:0,min:0,max:0};let t=e.reduce((r,i)=>r+i,0)/e.length,n=e.length>1?e.reduce((r,i)=>r+(i-t)**2,0)/(e.length-1):0;return{mean:jr(t),stddev:jr(Math.sqrt(n)),min:jr(Math.min(...e)),max:jr(Math.max(...e))}}function jr(e,t=4){return Number(e.toFixed(t))}function go(e){return e>=0?`+${e.toFixed(4)}`:e.toFixed(4)}function oh(e){try{return JSON.parse(e)}catch{return null}}function $n(e){let t=oh(e.trim());if(t&&typeof t=="object")return t;let n=e.indexOf("{"),r=e.lastIndexOf("}");return n===-1||r===-1||r<=n?null:oh(e.slice(n,r+1))}async function je(e,t=null){try{return JSON.parse(await Mc(e,"utf8"))}catch{return t}}async function An(e,t){let n=Pe.dirname(Xc(e));return Mc(Pe.resolve(n,t),"utf8")}function ae(e,t=12e3){let n=typeof e=="string"?e:String(e??"");if(n.length<=t)return n;let r=n.length-t;return`${n.slice(0,t)}
692
344
 
693
- [truncated ${r} chars]`}function lh(e){let t=Array.isArray(e)?e.length:0,n=Array.isArray(e)?e.filter(i=>i?.passed===!0).length:0,r=Math.max(t-n,0);return{passed:n,failed:r,total:t,pass_rate:t>0?Xr(n/t):0}}async function jc(e,t=e,n=[]){let r=await KP(t,{withFileTypes:!0}).catch(()=>[]);for(let i of r.sort((s,a)=>s.name.localeCompare(a.name))){let s=Pe.join(t,i.name);if(i.isDirectory()){await jc(e,s,n);continue}i.isFile()&&n.push({absolutePath:s,relativePath:Pe.relative(e,s).replace(/\\/g,"/")})}return n}function Dr(){return Pe.join(HP.homedir(),".kodax","skills")}async function ce(e){return await ZP(e,{recursive:!0}),e}var Ht,xe=p(()=>{"use strict";Ht=null;o(Xc,"loadKodaXSkills");o(dh,"setKodaXSDKForSkillCreator");o(Ot,"loadKodaXSDK");o(ex,"extractFrontmatter");o(ho,"parseSkillMarkdown");o(jr,"loadSkill");o(Wr,"pathExists");o(go,"calculateStats");o(Xr,"roundNumber");o(Oo,"formatDelta");o(oh,"safeJsonParse");o(Qn,"extractJsonObject");o(je,"readJsonFile");o($n,"loadRelativeText");o(ae,"truncateText");o(lh,"computePassSummary");o(jc,"collectFiles");o(Dr,"getDefaultSkillsDir");o(ce,"ensureDirectory")});import{writeFile as fh}from"node:fs/promises";import yt from"node:path";function tx(e){return e.split("-").filter(Boolean).map(t=>t[0]?.toUpperCase()+t.slice(1)).join(" ")}function nx(e,t){let n=tx(e);return`---
345
+ [truncated ${r} chars]`}function lh(e){let t=Array.isArray(e)?e.length:0,n=Array.isArray(e)?e.filter(i=>i?.passed===!0).length:0,r=Math.max(t-n,0);return{passed:n,failed:r,total:t,pass_rate:t>0?jr(n/t):0}}async function Wc(e,t=e,n=[]){let r=await Gx(t,{withFileTypes:!0}).catch(()=>[]);for(let i of r.sort((s,a)=>s.name.localeCompare(a.name))){let s=Pe.join(t,i.name);if(i.isDirectory()){await Wc(e,s,n);continue}i.isFile()&&n.push({absolutePath:s,relativePath:Pe.relative(e,s).replace(/\\/g,"/")})}return n}function Dr(){return Pe.join(Bx.homedir(),".kodax","skills")}async function ce(e){return await Yx(e,{recursive:!0}),e}var Ht,_e=p(()=>{"use strict";Ht=null;o(jc,"loadKodaXSkills");o(dh,"setKodaXSDKForSkillCreator");o(yt,"loadKodaXSDK");o(Kx,"extractFrontmatter");o(mo,"parseSkillMarkdown");o(Wr,"loadSkill");o(Nr,"pathExists");o(ho,"calculateStats");o(jr,"roundNumber");o(go,"formatDelta");o(oh,"safeJsonParse");o($n,"extractJsonObject");o(je,"readJsonFile");o(An,"loadRelativeText");o(ae,"truncateText");o(lh,"computePassSummary");o(Wc,"collectFiles");o(Dr,"getDefaultSkillsDir");o(ce,"ensureDirectory")});import{writeFile as fh}from"node:fs/promises";import wt from"node:path";function Hx(e){return e.split("-").filter(Boolean).map(t=>t[0]?.toUpperCase()+t.slice(1)).join(" ")}function Jx(e,t){let n=Hx(e);return`---
694
346
  name: ${e}
695
347
  description: ${t}
696
348
  user-invocable: true
@@ -720,10 +372,10 @@ Describe the task this skill handles, the trigger boundary, and the expected out
720
372
  - Put deeper guidance in \`references/\`.
721
373
  - Put reusable templates or static files in \`assets/\`.
722
374
  - Put repeatable helper scripts in \`scripts/\`.
723
- `}function rx(e){return JSON.stringify({skill_name:e,evals:[{id:1,prompt:"TODO: Add a realistic user request to evaluate this skill.",expected_output:"Describe what a successful result should accomplish.",files:[],assertions:[]}]},null,2)}async function ix(e){let t=yt.resolve(e.baseDir??Dr()),n=yt.join(t,e.name),r=e.description??`Describe what ${e.name} does and when it should be used.`;if(await Wr(n)&&!e.force)throw new Error(`Skill directory already exists: ${n}`);return await ce(n),await ce(yt.join(n,"references")),await ce(yt.join(n,"assets")),await ce(yt.join(n,"scripts")),await fh(yt.join(n,"SKILL.md"),nx(e.name,r),"utf8"),e.includeEvals!==!1&&(await ce(yt.join(n,"evals")),await fh(yt.join(n,"evals","evals.json"),`${rx(e.name)}
724
- `,"utf8")),{skillDir:n,created:["SKILL.md",...e.includeEvals!==!1?["evals/evals.json"]:[],"references/","assets/","scripts/"]}}function ox(e){let t={name:e[2],baseDir:void 0,description:void 0,force:!1,includeEvals:!0};for(let n=3;n<e.length;n+=1){let r=e[n];(r==="--path"||r==="--dest")&&e[n+1]?t.baseDir=e[++n]:r==="--description"&&e[n+1]?t.description=e[++n]:r==="--force"?t.force=!0:r==="--no-evals"&&(t.includeEvals=!1)}return t}async function Wc(e=process.argv){let t=ox(e);t.name||(console.error("Usage: node scripts/init-skill.js <skill-name> [--path <skills-dir>] [--description <text>] [--force] [--no-evals]"),process.exit(1));let n=await ix(t);console.log(`Initialized ${n.skillDir}`)}var sx,ph=p(()=>{"use strict";xe();o(tx,"titleFromSlug");o(nx,"renderSkillTemplate");o(rx,"renderEvalTemplate");o(ix,"initSkill");o(ox,"parseArgs");o(Wc,"main");sx=!1;sx&&Wc().catch(e=>{console.error(e instanceof Error?e.message:String(e)),process.exit(1)})});import mh from"node:path";async function Nr(e){let t={valid:!1,errors:[],warnings:[],frontmatter:null},n;try{n=await jr(e)}catch(d){return t.errors.push(d instanceof Error?d.message:String(d)),t}let{frontmatter:r,body:i}=n;t.frontmatter=r;let s=Object.keys(r).filter(d=>!ax.has(d));s.length>0&&t.errors.push(`Unexpected frontmatter keys: ${s.sort().join(", ")}`);let a=typeof r.name=="string"?r.name.trim():"",c=typeof r.description=="string"?r.description.trim():"";if(!a)t.errors.push("Missing required frontmatter field: name");else{/^[a-z0-9]+(?:-[a-z0-9]+)*$/.test(a)||t.errors.push(`Invalid skill name "${a}". Use lowercase kebab-case and avoid consecutive hyphens.`),a.length>64&&t.errors.push(`Skill name is too long (${a.length}/64).`);let d=mh.basename(mh.resolve(e));d!==a&&t.warnings.push(`Skill directory name "${d}" does not match frontmatter name "${a}".`)}if(c?(c.length>1024&&t.errors.push(`Description is too long (${c.length}/1024).`),/[<>]/.test(c)&&t.errors.push("Description cannot contain angle brackets."),/[。.!?]/.test(c)||t.warnings.push("Description may be too terse; consider making the trigger conditions clearer.")):t.errors.push("Missing required frontmatter field: description"),i.trim()||t.errors.push("SKILL.md body is empty."),r.compatibility!=null&&(typeof r.compatibility!="string"?t.errors.push("compatibility must be a string if provided."):r.compatibility.length>500&&t.errors.push(`compatibility is too long (${r.compatibility.length}/500).`)),r["allowed-tools"]!=null){let d=r["allowed-tools"];typeof d=="string"||Array.isArray(d)&&d.every(f=>typeof f=="string")||t.errors.push("allowed-tools must be a string or string array.")}return r["disable-model-invocation"]!=null&&typeof r["disable-model-invocation"]!="boolean"&&t.errors.push("disable-model-invocation must be a boolean."),r["user-invocable"]!=null&&typeof r["user-invocable"]!="boolean"&&t.errors.push("user-invocable must be a boolean."),r.context!=null&&r.context!=="fork"&&t.errors.push('context must be "fork" when provided.'),r.hooks!=null&&(typeof r.hooks!="object"||Array.isArray(r.hooks))&&t.errors.push("hooks must be an object when provided."),t.valid=t.errors.length===0,t}async function Dc(e=process.argv){let t=e[2];t||(console.error("Usage: node scripts/quick-validate.js <skill-directory>"),process.exit(1));let n=await Nr(t);if(n.errors.length===0)console.log("Skill is valid.");else{console.error("Skill validation failed:");for(let r of n.errors)console.error(`- ${r}`)}if(n.warnings.length>0){console.log("Warnings:");for(let r of n.warnings)console.log(`- ${r}`)}process.exit(n.valid?0:1)}var ax,cx,wo=p(()=>{"use strict";xe();ax=new Set(["name","description","license","compatibility","metadata","allowed-tools","disable-model-invocation","user-invocable","argument-hint","context","agent","model","hooks"]);o(Nr,"validateSkillDirectory");o(Dc,"main");cx=!1;cx&&Dc().catch(e=>{console.error(e instanceof Error?e.message:String(e)),process.exit(1)})});import{readFile as Nc,writeFile as Ge}from"node:fs/promises";import W from"node:path";function dx(e){return typeof e=="string"?{text:e}:e&&typeof e=="object"&&typeof e.text=="string"?{text:e.text}:null}function lx(e){return e.reduce((t,n)=>Array.isArray(n.content)?t+n.content.filter(r=>r?.type==="tool_use").length:t,0)}function ux(e){return e.reduce((t,n)=>Array.isArray(n.content)?t+n.content.filter(r=>r?.type==="tool_result"&&r.is_error===!0).length:t,0)}function fx(e,t){return`${["# Skill Eval Transcript","","## Eval Prompt","",e,"","## Final Response","",t.lastText||"(No final text)","","## Result Flags","",`- success: ${t.success}`,`- signal: ${t.signal??"none"}`,`- interrupted: ${t.interrupted===!0}`,`- limit_reached: ${t.limitReached===!0}`].join(`
375
+ `}function eP(e){return JSON.stringify({skill_name:e,evals:[{id:1,prompt:"TODO: Add a realistic user request to evaluate this skill.",expected_output:"Describe what a successful result should accomplish.",files:[],assertions:[]}]},null,2)}async function tP(e){let t=wt.resolve(e.baseDir??Dr()),n=wt.join(t,e.name),r=e.description??`Describe what ${e.name} does and when it should be used.`;if(await Nr(n)&&!e.force)throw new Error(`Skill directory already exists: ${n}`);return await ce(n),await ce(wt.join(n,"references")),await ce(wt.join(n,"assets")),await ce(wt.join(n,"scripts")),await fh(wt.join(n,"SKILL.md"),Jx(e.name,r),"utf8"),e.includeEvals!==!1&&(await ce(wt.join(n,"evals")),await fh(wt.join(n,"evals","evals.json"),`${eP(e.name)}
376
+ `,"utf8")),{skillDir:n,created:["SKILL.md",...e.includeEvals!==!1?["evals/evals.json"]:[],"references/","assets/","scripts/"]}}function nP(e){let t={name:e[2],baseDir:void 0,description:void 0,force:!1,includeEvals:!0};for(let n=3;n<e.length;n+=1){let r=e[n];(r==="--path"||r==="--dest")&&e[n+1]?t.baseDir=e[++n]:r==="--description"&&e[n+1]?t.description=e[++n]:r==="--force"?t.force=!0:r==="--no-evals"&&(t.includeEvals=!1)}return t}async function Nc(e=process.argv){let t=nP(e);t.name||(console.error("Usage: node scripts/init-skill.js <skill-name> [--path <skills-dir>] [--description <text>] [--force] [--no-evals]"),process.exit(1));let n=await tP(t);console.log(`Initialized ${n.skillDir}`)}var rP,ph=p(()=>{"use strict";_e();o(Hx,"titleFromSlug");o(Jx,"renderSkillTemplate");o(eP,"renderEvalTemplate");o(tP,"initSkill");o(nP,"parseArgs");o(Nc,"main");rP=!1;rP&&Nc().catch(e=>{console.error(e instanceof Error?e.message:String(e)),process.exit(1)})});import mh from"node:path";async function Fr(e){let t={valid:!1,errors:[],warnings:[],frontmatter:null},n;try{n=await Wr(e)}catch(d){return t.errors.push(d instanceof Error?d.message:String(d)),t}let{frontmatter:r,body:i}=n;t.frontmatter=r;let s=Object.keys(r).filter(d=>!iP.has(d));s.length>0&&t.errors.push(`Unexpected frontmatter keys: ${s.sort().join(", ")}`);let a=typeof r.name=="string"?r.name.trim():"",c=typeof r.description=="string"?r.description.trim():"";if(!a)t.errors.push("Missing required frontmatter field: name");else{/^[a-z0-9]+(?:-[a-z0-9]+)*$/.test(a)||t.errors.push(`Invalid skill name "${a}". Use lowercase kebab-case and avoid consecutive hyphens.`),a.length>64&&t.errors.push(`Skill name is too long (${a.length}/64).`);let d=mh.basename(mh.resolve(e));d!==a&&t.warnings.push(`Skill directory name "${d}" does not match frontmatter name "${a}".`)}if(c?(c.length>1024&&t.errors.push(`Description is too long (${c.length}/1024).`),/[<>]/.test(c)&&t.errors.push("Description cannot contain angle brackets."),/[。.!?]/.test(c)||t.warnings.push("Description may be too terse; consider making the trigger conditions clearer.")):t.errors.push("Missing required frontmatter field: description"),i.trim()||t.errors.push("SKILL.md body is empty."),r.compatibility!=null&&(typeof r.compatibility!="string"?t.errors.push("compatibility must be a string if provided."):r.compatibility.length>500&&t.errors.push(`compatibility is too long (${r.compatibility.length}/500).`)),r["allowed-tools"]!=null){let d=r["allowed-tools"];typeof d=="string"||Array.isArray(d)&&d.every(f=>typeof f=="string")||t.errors.push("allowed-tools must be a string or string array.")}return r["disable-model-invocation"]!=null&&typeof r["disable-model-invocation"]!="boolean"&&t.errors.push("disable-model-invocation must be a boolean."),r["user-invocable"]!=null&&typeof r["user-invocable"]!="boolean"&&t.errors.push("user-invocable must be a boolean."),r.context!=null&&r.context!=="fork"&&t.errors.push('context must be "fork" when provided.'),r.hooks!=null&&(typeof r.hooks!="object"||Array.isArray(r.hooks))&&t.errors.push("hooks must be an object when provided."),t.valid=t.errors.length===0,t}async function Dc(e=process.argv){let t=e[2];t||(console.error("Usage: node scripts/quick-validate.js <skill-directory>"),process.exit(1));let n=await Fr(t);if(n.errors.length===0)console.log("Skill is valid.");else{console.error("Skill validation failed:");for(let r of n.errors)console.error(`- ${r}`)}if(n.warnings.length>0){console.log("Warnings:");for(let r of n.warnings)console.log(`- ${r}`)}process.exit(n.valid?0:1)}var iP,oP,yo=p(()=>{"use strict";_e();iP=new Set(["name","description","license","compatibility","metadata","allowed-tools","disable-model-invocation","user-invocable","argument-hint","context","agent","model","hooks"]);o(Fr,"validateSkillDirectory");o(Dc,"main");oP=!1;oP&&Dc().catch(e=>{console.error(e instanceof Error?e.message:String(e)),process.exit(1)})});import{readFile as Fc,writeFile as Ge}from"node:fs/promises";import W from"node:path";function sP(e){return typeof e=="string"?{text:e}:e&&typeof e=="object"&&typeof e.text=="string"?{text:e.text}:null}function aP(e){return e.reduce((t,n)=>Array.isArray(n.content)?t+n.content.filter(r=>r?.type==="tool_use").length:t,0)}function cP(e){return e.reduce((t,n)=>Array.isArray(n.content)?t+n.content.filter(r=>r?.type==="tool_result"&&r.is_error===!0).length:t,0)}function dP(e,t){return`${["# Skill Eval Transcript","","## Eval Prompt","",e,"","## Final Response","",t.lastText||"(No final text)","","## Result Flags","",`- success: ${t.success}`,`- signal: ${t.signal??"none"}`,`- interrupted: ${t.interrupted===!0}`,`- limit_reached: ${t.limitReached===!0}`].join(`
725
377
  `)}
726
- `}async function px(e,t){let n=W.dirname(W.resolve(t.evalsPath)),r=W.resolve(t.cwd??process.cwd()),i=[];for(let s of e??[]){let a=W.isAbsolute(s)?s:W.resolve(n,s),c=W.resolve(r,s),d=null,l=a;try{d=await Nc(a,"utf8")}catch{d=await Nc(c,"utf8").catch(()=>null),l=c}if(d==null)throw new Error(`Input file not found for eval: ${s}`);i.push(`### ${s}
378
+ `}async function lP(e,t){let n=W.dirname(W.resolve(t.evalsPath)),r=W.resolve(t.cwd??process.cwd()),i=[];for(let s of e??[]){let a=W.isAbsolute(s)?s:W.resolve(n,s),c=W.resolve(r,s),d=null,l=a;try{d=await Fc(a,"utf8")}catch{d=await Fc(c,"utf8").catch(()=>null),l=c}if(d==null)throw new Error(`Input file not found for eval: ${s}`);i.push(`### ${s}
727
379
  \`\`\`
728
380
  ${d}
729
381
  \`\`\`
@@ -733,15 +385,15 @@ ${i.join(`
733
385
 
734
386
  `)}
735
387
 
736
- `}async function mx(e,t){let n=String(e.prompt??e.query??"").trim();return`${await px(e.files,t)}${n}`.trim()}async function hx(e,t){let{runKodaX:n,estimateTokens:r}=await Ot(),i=Date.now(),s=await n({provider:t.provider??"anthropic",model:t.model,maxIter:t.maxIter??30,reasoningMode:t.reasoningMode??"off",thinking:t.reasoningMode?t.reasoningMode!=="off":!1,context:{gitRoot:W.resolve(t.cwd??process.cwd())}},e);return{result:s,totalTokens:r(s.messages),durationMs:Date.now()-i}}async function gx(e,t,n,r){if(e==="with_skill"){let{expandSkillForLLM:i}=await Xc();return(await i(t,n,{workingDirectory:W.resolve(r.cwd??process.cwd()),projectRoot:W.resolve(r.cwd??process.cwd()),sessionId:"skill-eval",environment:{}})).content}return n}async function Ox(e,t,n,r,i){let s=W.join(e,"outputs");await ce(s);let a={total_tool_calls:lx(i.result.messages),errors_encountered:ux(i.result.messages),output_chars:i.result.lastText.length};await Ge(W.join(s,"result.md"),`${i.result.lastText}
388
+ `}async function uP(e,t){let n=String(e.prompt??e.query??"").trim();return`${await lP(e.files,t)}${n}`.trim()}async function fP(e,t){let{runKodaX:n,estimateTokens:r}=await yt(),i=Date.now(),s=await n({provider:t.provider??"anthropic",model:t.model,maxIter:t.maxIter??30,reasoningMode:t.reasoningMode??"off",thinking:t.reasoningMode?t.reasoningMode!=="off":!1,context:{gitRoot:W.resolve(t.cwd??process.cwd())}},e);return{result:s,totalTokens:r(s.messages),durationMs:Date.now()-i}}async function pP(e,t,n,r){if(e==="with_skill"){let{expandSkillForLLM:i}=await jc();return(await i(t,n,{workingDirectory:W.resolve(r.cwd??process.cwd()),projectRoot:W.resolve(r.cwd??process.cwd()),sessionId:"skill-eval",environment:{}})).content}return n}async function mP(e,t,n,r,i){let s=W.join(e,"outputs");await ce(s);let a={total_tool_calls:aP(i.result.messages),errors_encountered:cP(i.result.messages),output_chars:i.result.lastText.length};await Ge(W.join(s,"result.md"),`${i.result.lastText}
737
389
  `,"utf8"),await Ge(W.join(s,"prompt.txt"),`${r}
738
- `,"utf8"),await Ge(W.join(e,"transcript.md"),fx(r,i.result),"utf8"),await Ge(W.join(s,"metrics.json"),`${JSON.stringify({config:t,eval_id:n.id??null,session_id:i.result.sessionId,...a},null,2)}
390
+ `,"utf8"),await Ge(W.join(e,"transcript.md"),dP(r,i.result),"utf8"),await Ge(W.join(s,"metrics.json"),`${JSON.stringify({config:t,eval_id:n.id??null,session_id:i.result.sessionId,...a},null,2)}
739
391
  `,"utf8"),await Ge(W.join(s,"messages.json"),`${JSON.stringify(i.result.messages,null,2)}
740
392
  `,"utf8"),await Ge(W.join(e,"timing.json"),`${JSON.stringify({total_tokens:i.totalTokens,duration_ms:i.durationMs,total_duration_seconds:Number((i.durationMs/1e3).toFixed(4))},null,2)}
741
393
  `,"utf8"),await Ge(W.join(e,"result.json"),`${JSON.stringify({success:i.result.success,signal:i.result.signal??null,signal_reason:i.result.signalReason??null,interrupted:i.result.interrupted===!0,limit_reached:i.result.limitReached===!0,session_id:i.result.sessionId,execution_metrics:a},null,2)}
742
- `,"utf8")}async function yx(e,t=hx){let{loadFullSkill:n}=await Xc(),r=await n(W.resolve(e.skillPath),"user");if(!r)throw new Error(`Failed to load skill from ${e.skillPath}`);let i=W.resolve(e.workspaceDir);await ce(i);let s=JSON.parse(await Nc(e.evalsPath,"utf8")),a=Array.isArray(s.evals)?s.evals:[],c=e.configs?.length?e.configs:["with_skill","without_skill"],d=Number.isFinite(e.runsPerConfig)&&e.runsPerConfig>0?Math.floor(e.runsPerConfig):1,l=[];for(let f=0;f<a.length;f+=1){let u=a[f],m=W.join(i,`eval-${f}`);await ce(m),await Ge(W.join(m,"eval_metadata.json"),`${JSON.stringify({eval_id:u.id??f,eval_name:u.name??`eval-${f}`,prompt:u.prompt??u.query??"",expected_output:u.expected_output??"",assertions:(Array.isArray(u.assertions)?u.assertions:[]).map(dx).filter(Boolean)},null,2)}
743
- `,"utf8");let g=await mx(u,e),w={};for(let k of c){let O=W.join(m,k);await ce(O),w[k]=[];for(let y=1;y<=d;y+=1){let b=W.join(O,`run-${y}`);await ce(b);let P=await gx(k,r,g,e),x=await t(P,{...e,configName:k,evalItem:u,runIndex:y});await Ox(b,k,u,P,x),w[k].push({run_id:`run-${y}`,session_id:x.result.sessionId,success:x.result.success,total_tokens:x.totalTokens,duration_ms:x.durationMs,output_chars:x.result.lastText.length})}}l.push({eval_id:u.id??f,prompt:u.prompt??u.query??"",configs:w})}return{workspace:i,skill_name:r.name,eval_count:a.length,configs:c,runs_per_config:d,reports:l}}function wx(e){let t={skillPath:"",evalsPath:"",workspaceDir:"",provider:"anthropic",model:void 0,runsPerConfig:1,maxIter:30,reasoningMode:"off",cwd:process.cwd(),configs:["with_skill","without_skill"],output:void 0};for(let n=2;n<e.length;n+=1){let r=e[n];r==="--skill-path"&&e[n+1]?t.skillPath=e[++n]:r==="--evals"&&e[n+1]?t.evalsPath=e[++n]:r==="--workspace"&&e[n+1]?t.workspaceDir=e[++n]:r==="--provider"&&e[n+1]?t.provider=e[++n]:r==="--model"&&e[n+1]?t.model=e[++n]:r==="--runs"&&e[n+1]?t.runsPerConfig=Number(e[++n]):r==="--max-iter"&&e[n+1]?t.maxIter=Number(e[++n]):r==="--reasoning"&&e[n+1]?t.reasoningMode=e[++n]:r==="--cwd"&&e[n+1]?t.cwd=e[++n]:r==="--configs"&&e[n+1]?t.configs=e[++n].split(",").map(i=>i.trim()).filter(Boolean):r==="--output"&&e[n+1]&&(t.output=e[++n])}return t}async function Fc(e=process.argv){let t=wx(e);(!t.skillPath||!t.evalsPath||!t.workspaceDir)&&(console.error("Usage: node scripts/run-eval.js --skill-path <dir> --evals <evals.json> --workspace <dir> [--provider anthropic] [--runs 1]"),process.exit(1));let n=await yx(t),r=`${JSON.stringify(n,null,2)}
744
- `;t.output?(await Ge(t.output,r,"utf8"),console.log(`Wrote ${W.resolve(t.output)}`)):process.stdout.write(r)}var Sx,hh=p(()=>{"use strict";xe();o(dx,"normalizeAssertion");o(lx,"countToolCalls");o(ux,"countToolErrors");o(fx,"renderTranscript");o(px,"readInputFiles");o(mx,"buildEvalPrompt");o(hx,"defaultRunAgent");o(gx,"prepareConfigPrompt");o(Ox,"writeRunArtifacts");o(yx,"runEvalWorkspace");o(wx,"parseArgs");o(Fc,"main");Sx=!1;Sx&&Fc().catch(e=>{console.error(e instanceof Error?e.message:String(e)),process.exit(1)})});import{readdir as bx,readFile as Lc,writeFile as Oh}from"node:fs/promises";import D from"node:path";function Jt(e){return String(e??"").trim()}function yh(e){let n=(Array.isArray(e?.assertions)?e.assertions:[]).map(i=>typeof i=="string"?Jt(i):i&&typeof i=="object"&&typeof i.text=="string"?Jt(i.text):"").filter(Boolean);if(n.length>0)return n;let r=Jt(e?.expected_output);return r?[r]:[]}function qc(e){return Array.isArray(e)?e.map(t=>String(t??"").trim()).filter(Boolean):[]}function gh(e,t){return{text:Jt(e?.text??t),passed:e?.passed===!0,evidence:Jt(e?.evidence)}}function vx(e,t){let n=Qn(e)??{},r=Array.isArray(n.expectations)?n.expectations:[],i=[],s=new Set;for(let a of t){let c=r.findIndex((d,l)=>s.has(l)?!1:Jt(d?.text).toLowerCase()===a.toLowerCase());if(c===-1){i.push({text:a,passed:!1,evidence:""});continue}s.add(c),i.push(gh(r[c],a))}if(t.length===0)for(let a of r){let c=gh(a,"");c.text&&i.push(c)}return{overall_summary:Jt(n.overall_summary),expectations:i,user_notes_summary:{uncertainties:qc(n.user_notes_summary?.uncertainties),needs_review:qc(n.user_notes_summary?.needs_review),workarounds:qc(n.user_notes_summary?.workarounds)}}}async function zc(e){return(await bx(e,{withFileTypes:!0}).catch(()=>[])).filter(n=>n.isDirectory()).map(n=>D.join(e,n.name)).sort((n,r)=>n.localeCompare(r))}async function kx(e){let t=D.dirname(e),n=D.dirname(t),r=D.basename(t),i=D.basename(e),s=D.join(e,"outputs"),a=await je(D.join(n,"eval_metadata.json"),{}),c=await Lc(D.join(s,"result.md"),"utf8").catch(()=>""),d=await Lc(D.join(s,"prompt.txt"),"utf8").catch(()=>""),l=await Lc(D.join(e,"transcript.md"),"utf8").catch(()=>""),f=await je(D.join(s,"metrics.json"),{}),u=await je(D.join(e,"result.json"),{}),m=await je(D.join(e,"timing.json"),{});return{evalDir:n,runDir:e,runId:i,configName:r,evalMetadata:a,outputsDir:s,resultText:c,promptText:d,transcript:l,metrics:f,result:u,timing:m}}function Px(e){let t=yh(e.evalMetadata),n=t.length>0?t.map((r,i)=>`${i+1}. ${r}`).join(`
394
+ `,"utf8")}async function hP(e,t=fP){let{loadFullSkill:n}=await jc(),r=await n(W.resolve(e.skillPath),"user");if(!r)throw new Error(`Failed to load skill from ${e.skillPath}`);let i=W.resolve(e.workspaceDir);await ce(i);let s=JSON.parse(await Fc(e.evalsPath,"utf8")),a=Array.isArray(s.evals)?s.evals:[],c=e.configs?.length?e.configs:["with_skill","without_skill"],d=Number.isFinite(e.runsPerConfig)&&e.runsPerConfig>0?Math.floor(e.runsPerConfig):1,l=[];for(let f=0;f<a.length;f+=1){let u=a[f],m=W.join(i,`eval-${f}`);await ce(m),await Ge(W.join(m,"eval_metadata.json"),`${JSON.stringify({eval_id:u.id??f,eval_name:u.name??`eval-${f}`,prompt:u.prompt??u.query??"",expected_output:u.expected_output??"",assertions:(Array.isArray(u.assertions)?u.assertions:[]).map(sP).filter(Boolean)},null,2)}
395
+ `,"utf8");let g=await uP(u,e),w={};for(let k of c){let O=W.join(m,k);await ce(O),w[k]=[];for(let y=1;y<=d;y+=1){let b=W.join(O,`run-${y}`);await ce(b);let x=await pP(k,r,g,e),P=await t(x,{...e,configName:k,evalItem:u,runIndex:y});await mP(b,k,u,x,P),w[k].push({run_id:`run-${y}`,session_id:P.result.sessionId,success:P.result.success,total_tokens:P.totalTokens,duration_ms:P.durationMs,output_chars:P.result.lastText.length})}}l.push({eval_id:u.id??f,prompt:u.prompt??u.query??"",configs:w})}return{workspace:i,skill_name:r.name,eval_count:a.length,configs:c,runs_per_config:d,reports:l}}function gP(e){let t={skillPath:"",evalsPath:"",workspaceDir:"",provider:"anthropic",model:void 0,runsPerConfig:1,maxIter:30,reasoningMode:"off",cwd:process.cwd(),configs:["with_skill","without_skill"],output:void 0};for(let n=2;n<e.length;n+=1){let r=e[n];r==="--skill-path"&&e[n+1]?t.skillPath=e[++n]:r==="--evals"&&e[n+1]?t.evalsPath=e[++n]:r==="--workspace"&&e[n+1]?t.workspaceDir=e[++n]:r==="--provider"&&e[n+1]?t.provider=e[++n]:r==="--model"&&e[n+1]?t.model=e[++n]:r==="--runs"&&e[n+1]?t.runsPerConfig=Number(e[++n]):r==="--max-iter"&&e[n+1]?t.maxIter=Number(e[++n]):r==="--reasoning"&&e[n+1]?t.reasoningMode=e[++n]:r==="--cwd"&&e[n+1]?t.cwd=e[++n]:r==="--configs"&&e[n+1]?t.configs=e[++n].split(",").map(i=>i.trim()).filter(Boolean):r==="--output"&&e[n+1]&&(t.output=e[++n])}return t}async function Lc(e=process.argv){let t=gP(e);(!t.skillPath||!t.evalsPath||!t.workspaceDir)&&(console.error("Usage: node scripts/run-eval.js --skill-path <dir> --evals <evals.json> --workspace <dir> [--provider anthropic] [--runs 1]"),process.exit(1));let n=await hP(t),r=`${JSON.stringify(n,null,2)}
396
+ `;t.output?(await Ge(t.output,r,"utf8"),console.log(`Wrote ${W.resolve(t.output)}`)):process.stdout.write(r)}var OP,hh=p(()=>{"use strict";_e();o(sP,"normalizeAssertion");o(aP,"countToolCalls");o(cP,"countToolErrors");o(dP,"renderTranscript");o(lP,"readInputFiles");o(uP,"buildEvalPrompt");o(fP,"defaultRunAgent");o(pP,"prepareConfigPrompt");o(mP,"writeRunArtifacts");o(hP,"runEvalWorkspace");o(gP,"parseArgs");o(Lc,"main");OP=!1;OP&&Lc().catch(e=>{console.error(e instanceof Error?e.message:String(e)),process.exit(1)})});import{readdir as yP,readFile as qc,writeFile as Oh}from"node:fs/promises";import N from"node:path";function Jt(e){return String(e??"").trim()}function yh(e){let n=(Array.isArray(e?.assertions)?e.assertions:[]).map(i=>typeof i=="string"?Jt(i):i&&typeof i=="object"&&typeof i.text=="string"?Jt(i.text):"").filter(Boolean);if(n.length>0)return n;let r=Jt(e?.expected_output);return r?[r]:[]}function zc(e){return Array.isArray(e)?e.map(t=>String(t??"").trim()).filter(Boolean):[]}function gh(e,t){return{text:Jt(e?.text??t),passed:e?.passed===!0,evidence:Jt(e?.evidence)}}function wP(e,t){let n=$n(e)??{},r=Array.isArray(n.expectations)?n.expectations:[],i=[],s=new Set;for(let a of t){let c=r.findIndex((d,l)=>s.has(l)?!1:Jt(d?.text).toLowerCase()===a.toLowerCase());if(c===-1){i.push({text:a,passed:!1,evidence:""});continue}s.add(c),i.push(gh(r[c],a))}if(t.length===0)for(let a of r){let c=gh(a,"");c.text&&i.push(c)}return{overall_summary:Jt(n.overall_summary),expectations:i,user_notes_summary:{uncertainties:zc(n.user_notes_summary?.uncertainties),needs_review:zc(n.user_notes_summary?.needs_review),workarounds:zc(n.user_notes_summary?.workarounds)}}}async function Uc(e){return(await yP(e,{withFileTypes:!0}).catch(()=>[])).filter(n=>n.isDirectory()).map(n=>N.join(e,n.name)).sort((n,r)=>n.localeCompare(r))}async function SP(e){let t=N.dirname(e),n=N.dirname(t),r=N.basename(t),i=N.basename(e),s=N.join(e,"outputs"),a=await je(N.join(n,"eval_metadata.json"),{}),c=await qc(N.join(s,"result.md"),"utf8").catch(()=>""),d=await qc(N.join(s,"prompt.txt"),"utf8").catch(()=>""),l=await qc(N.join(e,"transcript.md"),"utf8").catch(()=>""),f=await je(N.join(s,"metrics.json"),{}),u=await je(N.join(e,"result.json"),{}),m=await je(N.join(e,"timing.json"),{});return{evalDir:n,runDir:e,runId:i,configName:r,evalMetadata:a,outputsDir:s,resultText:c,promptText:d,transcript:l,metrics:f,result:u,timing:m}}function bP(e){let t=yh(e.evalMetadata),n=t.length>0?t.map((r,i)=>`${i+1}. ${r}`).join(`
745
397
  `):"(No explicit assertions; infer one expectation from expected_output if present.)";return`${e.agentInstructions.trim()}
746
398
 
747
399
  Return JSON with this shape:
@@ -787,12 +439,12 @@ ${JSON.stringify({total_tool_calls:e.metrics.total_tool_calls??e.result.executio
787
439
 
788
440
  ## Transcript Excerpt
789
441
  ${ae(e.transcript,5e3)}
790
- `}async function wh(e,t){let{runKodaX:n}=await Ot();return(await n({provider:t.provider??"anthropic",model:t.model,maxIter:t.maxIter??20,effort:t.effort??(t.reasoningMode?void 0:"medium"),reasoningMode:t.reasoningMode,context:{gitRoot:D.resolve(t.cwd??t.workspaceDir??process.cwd())}},e)).lastText}async function xx(e,t,n=wh){let r=await kx(D.resolve(e)),i=yh(r.evalMetadata),s=await $n(import.meta.url,"../agents/grader.md"),a=Px({...r,agentInstructions:s}),c=await n(a,{...t,runDir:r.runDir,configName:r.configName,evalMetadata:r.evalMetadata,runId:r.runId}),d=vx(c,i),l={total_tool_calls:r.metrics.total_tool_calls??r.result.execution_metrics?.total_tool_calls??0,errors_encountered:r.metrics.errors_encountered??r.result.execution_metrics?.errors_encountered??0,output_chars:r.metrics.output_chars??r.result.execution_metrics?.output_chars??r.resultText.length},f={summary:lh(d.expectations),expectations:d.expectations,execution_metrics:l,user_notes_summary:d.user_notes_summary,overall_summary:d.overall_summary,timing:{total_tokens:r.timing.total_tokens??0,total_duration_seconds:r.timing.total_duration_seconds??0},meta:{generated_at:new Date().toISOString(),eval_id:r.evalMetadata.eval_id??null,eval_name:r.evalMetadata.eval_name??null,config:r.configName,run_id:r.runId}};return await Oh(D.join(r.runDir,"grading.json"),`${JSON.stringify(f,null,2)}
791
- `,"utf8"),{runDir:r.runDir,grading:f,prompt:a,rawResponse:c}}async function _x(e,t=wh){let n=D.resolve(e.workspaceDir);await ce(n);let r=new Set((e.configs??[]).map(c=>String(c).trim()).filter(Boolean)),i=[],s=[];for(let c of await zc(n))if(D.basename(c).startsWith("eval-"))for(let d of await zc(c)){let l=D.basename(d);if(!(r.size>0&&!r.has(l)))for(let f of await zc(d)){if(!D.basename(f).startsWith("run-"))continue;let u=D.join(f,"grading.json");if(await je(u,null)&&e.overwrite!==!0){s.push(D.relative(n,f).replace(/\\/g,"/"));continue}let g=await xx(f,e,t);i.push({run:D.relative(n,f).replace(/\\/g,"/"),summary:g.grading.summary,config:g.grading.meta.config,eval_id:g.grading.meta.eval_id})}}let a={workspace:n,generated_at:new Date().toISOString(),processed:i.length,skipped:s.length,processed_runs:i,skipped_runs:s};return await Oh(D.join(n,"grading-summary.json"),`${JSON.stringify(a,null,2)}
792
- `,"utf8"),a}function Tx(e){let t={workspaceDir:e[2]??"",provider:"anthropic",model:void 0,effort:void 0,reasoningMode:void 0,maxIter:20,cwd:process.cwd(),overwrite:!1,configs:[]};for(let n=3;n<e.length;n+=1){let r=e[n];r==="--provider"&&e[n+1]?t.provider=e[++n]:r==="--model"&&e[n+1]?t.model=e[++n]:r==="--effort"&&e[n+1]?t.effort=e[++n]:r==="--reasoning"&&e[n+1]?t.reasoningMode=e[++n]:r==="--max-iter"&&e[n+1]?t.maxIter=Number(e[++n]):r==="--cwd"&&e[n+1]?t.cwd=e[++n]:r==="--overwrite"?t.overwrite=!0:r==="--configs"&&e[n+1]&&(t.configs=e[++n].split(",").map(i=>i.trim()).filter(Boolean))}return t}async function Uc(e=process.argv){let t=Tx(e);t.workspaceDir||(console.error("Usage: node scripts/grade-evals.js <workspace> [--provider anthropic] [--configs with_skill,without_skill] [--overwrite]"),process.exit(1));let n=await _x(t);process.stdout.write(`${JSON.stringify(n,null,2)}
793
- `)}var Ex,Sh=p(()=>{"use strict";xe();o(Jt,"normalizeExpectationText");o(yh,"normalizeExpectedRubric");o(qc,"normalizeStringArray");o(gh,"normalizeExpectationEntry");o(vx,"normalizeParsedGrading");o(zc,"listDirectories");o(kx,"loadRunContext");o(Px,"buildGradingPrompt");o(wh,"defaultRunJudge");o(xx,"gradeRun");o(_x,"gradeWorkspace");o(Tx,"parseArgs");o(Uc,"main");Ex=!1;Ex&&Uc().catch(e=>{console.error(e instanceof Error?e.message:String(e)),process.exit(1)})});import{readFile as Rx,readdir as Ix,stat as Qx,writeFile as bh}from"node:fs/promises";import de from"node:path";async function Vc(e){return JSON.parse(await Rx(e,"utf8"))}async function $x(e){try{return await Qx(e),!0}catch{return!1}}async function Yc(e){return(await Ix(e,{withFileTypes:!0}).catch(()=>[])).filter(n=>n.isDirectory()).map(n=>de.join(e,n.name)).sort((n,r)=>n.localeCompare(r))}async function So(e){let t=await $x(de.join(e,"runs"))?de.join(e,"runs"):e,n=(await Yc(t)).filter(i=>de.basename(i).startsWith("eval-")),r={};for(let i of n){let s=de.join(i,"eval_metadata.json"),c=(await Vc(s).catch(()=>({}))).eval_id??de.basename(i);for(let d of await Yc(i)){let l=de.basename(d),f=(await Yc(d)).filter(u=>de.basename(u).startsWith("run-"));if(f.length!==0){r[l]??=[];for(let u of f){let m=await Vc(de.join(u,"grading.json")).catch(()=>null);if(!m)continue;let g=await Vc(de.join(u,"timing.json")).catch(()=>({}));r[l].push({eval_id:c,run_id:de.basename(u),pass_rate:m.summary?.pass_rate??0,passed:m.summary?.passed??0,failed:m.summary?.failed??0,total:m.summary?.total??0,time_seconds:g.total_duration_seconds??m.timing?.total_duration_seconds??0,tokens:g.total_tokens??m.execution_metrics?.output_chars??0,tool_calls:m.execution_metrics?.total_tool_calls??0,errors:m.execution_metrics?.errors_encountered??0,expectations:Array.isArray(m.expectations)?m.expectations:[],notes:[...m.user_notes_summary?.uncertainties??[],...m.user_notes_summary?.needs_review??[],...m.user_notes_summary?.workarounds??[]]})}}}}return r}function Ax(e){let t={};for(let[s,a]of Object.entries(e))t[s]={pass_rate:go(a.map(c=>Number(c.pass_rate??0))),time_seconds:go(a.map(c=>Number(c.time_seconds??0))),tokens:go(a.map(c=>Number(c.tokens??0)))};let n=Object.keys(t),r=t[n[0]]??{pass_rate:{mean:0},time_seconds:{mean:0},tokens:{mean:0}},i=t[n[1]]??{pass_rate:{mean:0},time_seconds:{mean:0},tokens:{mean:0}};return{configs:t,delta:{pass_rate:Oo(r.pass_rate.mean-i.pass_rate.mean),time_seconds:Oo(r.time_seconds.mean-i.time_seconds.mean),tokens:Oo(r.tokens.mean-i.tokens.mean)}}}function Gc(e,t,n){let r=Ax(n);return{skill_name:t,generated_at:new Date().toISOString(),workspace:de.resolve(e),configs:r.configs,delta:r.delta,runs:n}}function Cx(e){let t=[`# Benchmark: ${e.skill_name}`,"",`Generated: ${e.generated_at}`,"","| Config | Pass Rate | Time (s) | Tokens |","| --- | --- | --- | --- |"];for(let[n,r]of Object.entries(e.configs))t.push(`| ${n} | ${r.pass_rate.mean} \xB1 ${r.pass_rate.stddev} | ${r.time_seconds.mean} \xB1 ${r.time_seconds.stddev} | ${r.tokens.mean} \xB1 ${r.tokens.stddev} |`);return t.push(""),t.push("## Delta"),t.push(""),t.push(`- Pass rate: ${e.delta.pass_rate}`),t.push(`- Time (s): ${e.delta.time_seconds}`),t.push(`- Tokens: ${e.delta.tokens}`),t.join(`
794
- `)}function Mx(e){let t={iterationDir:e[2],skillName:"unknown-skill"};for(let n=3;n<e.length;n+=1)e[n]==="--skill-name"&&e[n+1]&&(t.skillName=e[n+1],n+=1);return t}async function Xx(){let{iterationDir:e,skillName:t}=Mx(process.argv);e||(console.error("Usage: node scripts/aggregate-benchmark.js <iteration-dir> --skill-name <name>"),process.exit(1));let n=await So(e);Object.keys(n).length===0&&(console.error(`No benchmark runs found in ${e}`),process.exit(1));let r=Gc(e,t,n),i=de.join(e,"benchmark.json"),s=de.join(e,"benchmark.md");await bh(i,JSON.stringify(r,null,2)),await bh(s,`${Cx(r)}
795
- `),console.log(`Wrote ${i}`),console.log(`Wrote ${s}`)}var jx,vh=p(()=>{"use strict";xe();o(Vc,"readJson");o($x,"pathExists");o(Yc,"listDirectories");o(So,"loadRunResults");o(Ax,"summarizeConfigs");o(Gc,"buildBenchmarkDocument");o(Cx,"renderBenchmarkMarkdown");o(Mx,"parseArgs");o(Xx,"main");jx=!1;jx&&Xx().catch(e=>{console.error(e instanceof Error?e.message:String(e)),process.exit(1)})});import{writeFile as Bc}from"node:fs/promises";import Be from"node:path";function bo(e){return Array.isArray(e)?e.map(t=>String(t??"").trim()).filter(Boolean):[]}function Wx(e){let t={};for(let[n,r]of Object.entries(e)){let i=new Map,s=[];for(let a of r){for(let c of a.expectations??[]){if(c?.passed===!0)continue;let d=String(c?.text??"").trim();d&&i.set(d,(i.get(d)??0)+1)}for(let c of a.notes??[]){let d=String(c??"").trim();d&&s.push(d)}}t[n]={repeated_failures:Array.from(i.entries()).sort((a,c)=>c[1]-a[1]).slice(0,10).map(([a,c])=>({text:a,count:c})),notes:s.slice(0,10)}}return t}function Dx(e,t,n){let r=Qn(e)??{};return{skill_name:t.skill_name,generated_at:new Date().toISOString(),workspace:t.workspace,verdict:["improves","regresses","mixed","inconclusive"].includes(r.verdict)?r.verdict:"inconclusive",release_readiness:["ready","needs_iteration","needs_manual_review"].includes(r.release_readiness)?r.release_readiness:"needs_manual_review",recommendation:String(r.recommendation??"").trim(),key_findings:bo(r.key_findings),variance_hotspots:bo(r.variance_hotspots),suggested_actions:bo(r.suggested_actions),watchouts:bo(r.watchouts),supporting_metrics:{pass_rate_delta:t.delta?.pass_rate??"n/a",time_seconds_delta:t.delta?.time_seconds??"n/a",tokens_delta:t.delta?.tokens??"n/a"},failure_clusters:n}}function Nx(e){return`${e.agentInstructions.trim()}
442
+ `}async function wh(e,t){let{runKodaX:n}=await yt();return(await n({provider:t.provider??"anthropic",model:t.model,maxIter:t.maxIter??20,effort:t.effort??(t.reasoningMode?void 0:"medium"),reasoningMode:t.reasoningMode,context:{gitRoot:N.resolve(t.cwd??t.workspaceDir??process.cwd())}},e)).lastText}async function vP(e,t,n=wh){let r=await SP(N.resolve(e)),i=yh(r.evalMetadata),s=await An(import.meta.url,"../agents/grader.md"),a=bP({...r,agentInstructions:s}),c=await n(a,{...t,runDir:r.runDir,configName:r.configName,evalMetadata:r.evalMetadata,runId:r.runId}),d=wP(c,i),l={total_tool_calls:r.metrics.total_tool_calls??r.result.execution_metrics?.total_tool_calls??0,errors_encountered:r.metrics.errors_encountered??r.result.execution_metrics?.errors_encountered??0,output_chars:r.metrics.output_chars??r.result.execution_metrics?.output_chars??r.resultText.length},f={summary:lh(d.expectations),expectations:d.expectations,execution_metrics:l,user_notes_summary:d.user_notes_summary,overall_summary:d.overall_summary,timing:{total_tokens:r.timing.total_tokens??0,total_duration_seconds:r.timing.total_duration_seconds??0},meta:{generated_at:new Date().toISOString(),eval_id:r.evalMetadata.eval_id??null,eval_name:r.evalMetadata.eval_name??null,config:r.configName,run_id:r.runId}};return await Oh(N.join(r.runDir,"grading.json"),`${JSON.stringify(f,null,2)}
443
+ `,"utf8"),{runDir:r.runDir,grading:f,prompt:a,rawResponse:c}}async function kP(e,t=wh){let n=N.resolve(e.workspaceDir);await ce(n);let r=new Set((e.configs??[]).map(c=>String(c).trim()).filter(Boolean)),i=[],s=[];for(let c of await Uc(n))if(N.basename(c).startsWith("eval-"))for(let d of await Uc(c)){let l=N.basename(d);if(!(r.size>0&&!r.has(l)))for(let f of await Uc(d)){if(!N.basename(f).startsWith("run-"))continue;let u=N.join(f,"grading.json");if(await je(u,null)&&e.overwrite!==!0){s.push(N.relative(n,f).replace(/\\/g,"/"));continue}let g=await vP(f,e,t);i.push({run:N.relative(n,f).replace(/\\/g,"/"),summary:g.grading.summary,config:g.grading.meta.config,eval_id:g.grading.meta.eval_id})}}let a={workspace:n,generated_at:new Date().toISOString(),processed:i.length,skipped:s.length,processed_runs:i,skipped_runs:s};return await Oh(N.join(n,"grading-summary.json"),`${JSON.stringify(a,null,2)}
444
+ `,"utf8"),a}function xP(e){let t={workspaceDir:e[2]??"",provider:"anthropic",model:void 0,effort:void 0,reasoningMode:void 0,maxIter:20,cwd:process.cwd(),overwrite:!1,configs:[]};for(let n=3;n<e.length;n+=1){let r=e[n];r==="--provider"&&e[n+1]?t.provider=e[++n]:r==="--model"&&e[n+1]?t.model=e[++n]:r==="--effort"&&e[n+1]?t.effort=e[++n]:r==="--reasoning"&&e[n+1]?t.reasoningMode=e[++n]:r==="--max-iter"&&e[n+1]?t.maxIter=Number(e[++n]):r==="--cwd"&&e[n+1]?t.cwd=e[++n]:r==="--overwrite"?t.overwrite=!0:r==="--configs"&&e[n+1]&&(t.configs=e[++n].split(",").map(i=>i.trim()).filter(Boolean))}return t}async function Vc(e=process.argv){let t=xP(e);t.workspaceDir||(console.error("Usage: node scripts/grade-evals.js <workspace> [--provider anthropic] [--configs with_skill,without_skill] [--overwrite]"),process.exit(1));let n=await kP(t);process.stdout.write(`${JSON.stringify(n,null,2)}
445
+ `)}var PP,Sh=p(()=>{"use strict";_e();o(Jt,"normalizeExpectationText");o(yh,"normalizeExpectedRubric");o(zc,"normalizeStringArray");o(gh,"normalizeExpectationEntry");o(wP,"normalizeParsedGrading");o(Uc,"listDirectories");o(SP,"loadRunContext");o(bP,"buildGradingPrompt");o(wh,"defaultRunJudge");o(vP,"gradeRun");o(kP,"gradeWorkspace");o(xP,"parseArgs");o(Vc,"main");PP=!1;PP&&Vc().catch(e=>{console.error(e instanceof Error?e.message:String(e)),process.exit(1)})});import{readFile as _P,readdir as TP,stat as EP,writeFile as bh}from"node:fs/promises";import de from"node:path";async function Yc(e){return JSON.parse(await _P(e,"utf8"))}async function RP(e){try{return await EP(e),!0}catch{return!1}}async function Gc(e){return(await TP(e,{withFileTypes:!0}).catch(()=>[])).filter(n=>n.isDirectory()).map(n=>de.join(e,n.name)).sort((n,r)=>n.localeCompare(r))}async function wo(e){let t=await RP(de.join(e,"runs"))?de.join(e,"runs"):e,n=(await Gc(t)).filter(i=>de.basename(i).startsWith("eval-")),r={};for(let i of n){let s=de.join(i,"eval_metadata.json"),c=(await Yc(s).catch(()=>({}))).eval_id??de.basename(i);for(let d of await Gc(i)){let l=de.basename(d),f=(await Gc(d)).filter(u=>de.basename(u).startsWith("run-"));if(f.length!==0){r[l]??=[];for(let u of f){let m=await Yc(de.join(u,"grading.json")).catch(()=>null);if(!m)continue;let g=await Yc(de.join(u,"timing.json")).catch(()=>({}));r[l].push({eval_id:c,run_id:de.basename(u),pass_rate:m.summary?.pass_rate??0,passed:m.summary?.passed??0,failed:m.summary?.failed??0,total:m.summary?.total??0,time_seconds:g.total_duration_seconds??m.timing?.total_duration_seconds??0,tokens:g.total_tokens??m.execution_metrics?.output_chars??0,tool_calls:m.execution_metrics?.total_tool_calls??0,errors:m.execution_metrics?.errors_encountered??0,expectations:Array.isArray(m.expectations)?m.expectations:[],notes:[...m.user_notes_summary?.uncertainties??[],...m.user_notes_summary?.needs_review??[],...m.user_notes_summary?.workarounds??[]]})}}}}return r}function IP(e){let t={};for(let[s,a]of Object.entries(e))t[s]={pass_rate:ho(a.map(c=>Number(c.pass_rate??0))),time_seconds:ho(a.map(c=>Number(c.time_seconds??0))),tokens:ho(a.map(c=>Number(c.tokens??0)))};let n=Object.keys(t),r=t[n[0]]??{pass_rate:{mean:0},time_seconds:{mean:0},tokens:{mean:0}},i=t[n[1]]??{pass_rate:{mean:0},time_seconds:{mean:0},tokens:{mean:0}};return{configs:t,delta:{pass_rate:go(r.pass_rate.mean-i.pass_rate.mean),time_seconds:go(r.time_seconds.mean-i.time_seconds.mean),tokens:go(r.tokens.mean-i.tokens.mean)}}}function Bc(e,t,n){let r=IP(n);return{skill_name:t,generated_at:new Date().toISOString(),workspace:de.resolve(e),configs:r.configs,delta:r.delta,runs:n}}function QP(e){let t=[`# Benchmark: ${e.skill_name}`,"",`Generated: ${e.generated_at}`,"","| Config | Pass Rate | Time (s) | Tokens |","| --- | --- | --- | --- |"];for(let[n,r]of Object.entries(e.configs))t.push(`| ${n} | ${r.pass_rate.mean} \xB1 ${r.pass_rate.stddev} | ${r.time_seconds.mean} \xB1 ${r.time_seconds.stddev} | ${r.tokens.mean} \xB1 ${r.tokens.stddev} |`);return t.push(""),t.push("## Delta"),t.push(""),t.push(`- Pass rate: ${e.delta.pass_rate}`),t.push(`- Time (s): ${e.delta.time_seconds}`),t.push(`- Tokens: ${e.delta.tokens}`),t.join(`
446
+ `)}function $P(e){let t={iterationDir:e[2],skillName:"unknown-skill"};for(let n=3;n<e.length;n+=1)e[n]==="--skill-name"&&e[n+1]&&(t.skillName=e[n+1],n+=1);return t}async function AP(){let{iterationDir:e,skillName:t}=$P(process.argv);e||(console.error("Usage: node scripts/aggregate-benchmark.js <iteration-dir> --skill-name <name>"),process.exit(1));let n=await wo(e);Object.keys(n).length===0&&(console.error(`No benchmark runs found in ${e}`),process.exit(1));let r=Bc(e,t,n),i=de.join(e,"benchmark.json"),s=de.join(e,"benchmark.md");await bh(i,JSON.stringify(r,null,2)),await bh(s,`${QP(r)}
447
+ `),console.log(`Wrote ${i}`),console.log(`Wrote ${s}`)}var CP,vh=p(()=>{"use strict";_e();o(Yc,"readJson");o(RP,"pathExists");o(Gc,"listDirectories");o(wo,"loadRunResults");o(IP,"summarizeConfigs");o(Bc,"buildBenchmarkDocument");o(QP,"renderBenchmarkMarkdown");o($P,"parseArgs");o(AP,"main");CP=!1;CP&&AP().catch(e=>{console.error(e instanceof Error?e.message:String(e)),process.exit(1)})});import{writeFile as Zc}from"node:fs/promises";import Be from"node:path";function So(e){return Array.isArray(e)?e.map(t=>String(t??"").trim()).filter(Boolean):[]}function MP(e){let t={};for(let[n,r]of Object.entries(e)){let i=new Map,s=[];for(let a of r){for(let c of a.expectations??[]){if(c?.passed===!0)continue;let d=String(c?.text??"").trim();d&&i.set(d,(i.get(d)??0)+1)}for(let c of a.notes??[]){let d=String(c??"").trim();d&&s.push(d)}}t[n]={repeated_failures:Array.from(i.entries()).sort((a,c)=>c[1]-a[1]).slice(0,10).map(([a,c])=>({text:a,count:c})),notes:s.slice(0,10)}}return t}function XP(e,t,n){let r=$n(e)??{};return{skill_name:t.skill_name,generated_at:new Date().toISOString(),workspace:t.workspace,verdict:["improves","regresses","mixed","inconclusive"].includes(r.verdict)?r.verdict:"inconclusive",release_readiness:["ready","needs_iteration","needs_manual_review"].includes(r.release_readiness)?r.release_readiness:"needs_manual_review",recommendation:String(r.recommendation??"").trim(),key_findings:So(r.key_findings),variance_hotspots:So(r.variance_hotspots),suggested_actions:So(r.suggested_actions),watchouts:So(r.watchouts),supporting_metrics:{pass_rate_delta:t.delta?.pass_rate??"n/a",time_seconds_delta:t.delta?.time_seconds??"n/a",tokens_delta:t.delta?.tokens??"n/a"},failure_clusters:n}}function jP(e){return`${e.agentInstructions.trim()}
796
448
 
797
449
  Return JSON with this shape:
798
450
  {
@@ -810,12 +462,12 @@ ${ae(JSON.stringify({skill_name:e.benchmark.skill_name,configs:e.benchmark.confi
810
462
 
811
463
  ## Failure Clusters
812
464
  ${ae(JSON.stringify(e.failureClusters,null,2),8e3)}
813
- `}async function Fx(e,t){let{runKodaX:n}=await Ot();return(await n({provider:t.provider??"anthropic",model:t.model,maxIter:t.maxIter??20,effort:t.effort??(t.reasoningMode?void 0:"medium"),reasoningMode:t.reasoningMode,context:{gitRoot:Be.resolve(t.cwd??t.workspaceDir??process.cwd())}},e)).lastText}function Lx(e){let t=[`# Benchmark Analysis: ${e.skill_name}`,"",`Generated: ${e.generated_at}`,"",`- Verdict: ${e.verdict}`,`- Release readiness: ${e.release_readiness}`,`- Recommendation: ${e.recommendation||"n/a"}`,""],n=[["key_findings","Key Findings"],["variance_hotspots","Variance Hotspots"],["suggested_actions","Suggested Actions"],["watchouts","Watchouts"]];for(let[r,i]of n){t.push(`## ${i}`),t.push("");let s=Array.isArray(e[r])?e[r]:[];if(s.length===0)t.push("- None");else for(let a of s)t.push(`- ${a}`);t.push("")}return t.push("## Supporting Metrics"),t.push(""),t.push(`- Pass rate delta: ${e.supporting_metrics.pass_rate_delta}`),t.push(`- Time delta: ${e.supporting_metrics.time_seconds_delta}`),t.push(`- Tokens delta: ${e.supporting_metrics.tokens_delta}`),`${t.join(`
465
+ `}async function WP(e,t){let{runKodaX:n}=await yt();return(await n({provider:t.provider??"anthropic",model:t.model,maxIter:t.maxIter??20,effort:t.effort??(t.reasoningMode?void 0:"medium"),reasoningMode:t.reasoningMode,context:{gitRoot:Be.resolve(t.cwd??t.workspaceDir??process.cwd())}},e)).lastText}function NP(e){let t=[`# Benchmark Analysis: ${e.skill_name}`,"",`Generated: ${e.generated_at}`,"",`- Verdict: ${e.verdict}`,`- Release readiness: ${e.release_readiness}`,`- Recommendation: ${e.recommendation||"n/a"}`,""],n=[["key_findings","Key Findings"],["variance_hotspots","Variance Hotspots"],["suggested_actions","Suggested Actions"],["watchouts","Watchouts"]];for(let[r,i]of n){t.push(`## ${i}`),t.push("");let s=Array.isArray(e[r])?e[r]:[];if(s.length===0)t.push("- None");else for(let a of s)t.push(`- ${a}`);t.push("")}return t.push("## Supporting Metrics"),t.push(""),t.push(`- Pass rate delta: ${e.supporting_metrics.pass_rate_delta}`),t.push(`- Time delta: ${e.supporting_metrics.time_seconds_delta}`),t.push(`- Tokens delta: ${e.supporting_metrics.tokens_delta}`),`${t.join(`
814
466
  `)}
815
- `}async function qx(e,t=Fx){let n=Be.resolve(e.workspaceDir),r=Be.resolve(e.benchmarkPath??Be.join(n,"benchmark.json")),i=await je(r,null);if(!i){let g=await So(n);if(Object.keys(g).length===0)throw new Error(`No benchmark data found in ${n}`);i=Gc(n,e.skillName??Be.basename(n),g),await Bc(r,`${JSON.stringify(i,null,2)}
816
- `,"utf8")}let s=await So(n),a=Wx(s),c=await $n(import.meta.url,"../agents/analyzer.md"),d=Nx({agentInstructions:c,benchmark:i,failureClusters:a}),l=await t(d,{...e,workspaceDir:n,benchmarkPath:r,benchmark:i}),f=Dx(l,i,a),u=Be.resolve(e.outputPath??Be.join(n,"analysis.json")),m=Be.resolve(e.markdownPath??Be.join(n,"analysis.md"));return await Bc(u,`${JSON.stringify(f,null,2)}
817
- `,"utf8"),await Bc(m,Lx(f),"utf8"),{analysis:f,prompt:d,rawResponse:l,analysisJsonPath:u,analysisMdPath:m}}function zx(e){let t={workspaceDir:e[2]??"",benchmarkPath:void 0,outputPath:void 0,markdownPath:void 0,skillName:void 0,provider:"anthropic",model:void 0,effort:void 0,reasoningMode:void 0,maxIter:20,cwd:process.cwd()};for(let n=3;n<e.length;n+=1){let r=e[n];r==="--benchmark"&&e[n+1]?t.benchmarkPath=e[++n]:r==="--output"&&e[n+1]?t.outputPath=e[++n]:r==="--markdown"&&e[n+1]?t.markdownPath=e[++n]:r==="--skill-name"&&e[n+1]?t.skillName=e[++n]:r==="--provider"&&e[n+1]?t.provider=e[++n]:r==="--model"&&e[n+1]?t.model=e[++n]:r==="--effort"&&e[n+1]?t.effort=e[++n]:r==="--reasoning"&&e[n+1]?t.reasoningMode=e[++n]:r==="--max-iter"&&e[n+1]?t.maxIter=Number(e[++n]):r==="--cwd"&&e[n+1]&&(t.cwd=e[++n])}return t}async function Zc(e=process.argv){let t=zx(e);t.workspaceDir||(console.error("Usage: node scripts/analyze-benchmark.js <workspace> [--benchmark benchmark.json] [--output analysis.json] [--markdown analysis.md]"),process.exit(1));let n=await qx(t);process.stdout.write(`${JSON.stringify({analysis:n.analysis,analysis_json:n.analysisJsonPath,analysis_md:n.analysisMdPath},null,2)}
818
- `)}var Ux,kh=p(()=>{"use strict";vh();xe();o(bo,"normalizeStringArray");o(Wx,"summarizeFailureClusters");o(Dx,"normalizeAnalysisResult");o(Nx,"buildAnalysisPrompt");o(Fx,"defaultRunAnalyst");o(Lx,"renderAnalysisMarkdown");o(qx,"analyzeBenchmark");o(zx,"parseArgs");o(Zc,"main");Ux=!1;Ux&&Zc().catch(e=>{console.error(e instanceof Error?e.message:String(e)),process.exit(1)})});import{readdir as Vx,readFile as Ph,writeFile as xh}from"node:fs/promises";import z from"node:path";async function Hc(e){return(await Vx(e,{withFileTypes:!0}).catch(()=>[])).filter(n=>n.isDirectory()).map(n=>z.join(e,n.name)).sort((n,r)=>n.localeCompare(r))}function Kc(e){return Array.isArray(e)?e.map(t=>String(t??"").trim()).filter(Boolean):[]}function Yx(e){let t=Qn(e)??{},n=["A","B","tie","inconclusive"].includes(t.winner)?t.winner:"inconclusive",r=Number(t.confidence);return{winner:n,confidence:Number.isFinite(r)?Math.max(0,Math.min(1,Number(r.toFixed(4)))):0,rationale:String(t.rationale??"").trim(),strengths_a:Kc(t.strengths_a),strengths_b:Kc(t.strengths_b),risks:Kc(t.risks)}}async function Gx(e,t,n,r){let i=(await Hc(z.join(e,t))).filter(u=>z.basename(u).startsWith("run-")),s=(await Hc(z.join(e,n))).filter(u=>z.basename(u).startsWith("run-")),a=i[r],c=s[r];if(!a||!c)return null;let d=await je(z.join(e,"eval_metadata.json"),{}),l=await Ph(z.join(a,"outputs","result.md"),"utf8").catch(()=>""),f=await Ph(z.join(c,"outputs","result.md"),"utf8").catch(()=>"");return{evalDir:e,evalMetadata:d,runA:{runDir:a,runId:z.basename(a),configName:t,output:l},runB:{runDir:c,runId:z.basename(c),configName:n,output:f}}}function Bx(e){let t=e.presentPrimaryFirst?{A:e.runA,B:e.runB}:{A:e.runB,B:e.runA};return`${e.agentInstructions.trim()}
467
+ `}async function DP(e,t=WP){let n=Be.resolve(e.workspaceDir),r=Be.resolve(e.benchmarkPath??Be.join(n,"benchmark.json")),i=await je(r,null);if(!i){let g=await wo(n);if(Object.keys(g).length===0)throw new Error(`No benchmark data found in ${n}`);i=Bc(n,e.skillName??Be.basename(n),g),await Zc(r,`${JSON.stringify(i,null,2)}
468
+ `,"utf8")}let s=await wo(n),a=MP(s),c=await An(import.meta.url,"../agents/analyzer.md"),d=jP({agentInstructions:c,benchmark:i,failureClusters:a}),l=await t(d,{...e,workspaceDir:n,benchmarkPath:r,benchmark:i}),f=XP(l,i,a),u=Be.resolve(e.outputPath??Be.join(n,"analysis.json")),m=Be.resolve(e.markdownPath??Be.join(n,"analysis.md"));return await Zc(u,`${JSON.stringify(f,null,2)}
469
+ `,"utf8"),await Zc(m,NP(f),"utf8"),{analysis:f,prompt:d,rawResponse:l,analysisJsonPath:u,analysisMdPath:m}}function FP(e){let t={workspaceDir:e[2]??"",benchmarkPath:void 0,outputPath:void 0,markdownPath:void 0,skillName:void 0,provider:"anthropic",model:void 0,effort:void 0,reasoningMode:void 0,maxIter:20,cwd:process.cwd()};for(let n=3;n<e.length;n+=1){let r=e[n];r==="--benchmark"&&e[n+1]?t.benchmarkPath=e[++n]:r==="--output"&&e[n+1]?t.outputPath=e[++n]:r==="--markdown"&&e[n+1]?t.markdownPath=e[++n]:r==="--skill-name"&&e[n+1]?t.skillName=e[++n]:r==="--provider"&&e[n+1]?t.provider=e[++n]:r==="--model"&&e[n+1]?t.model=e[++n]:r==="--effort"&&e[n+1]?t.effort=e[++n]:r==="--reasoning"&&e[n+1]?t.reasoningMode=e[++n]:r==="--max-iter"&&e[n+1]?t.maxIter=Number(e[++n]):r==="--cwd"&&e[n+1]&&(t.cwd=e[++n])}return t}async function Kc(e=process.argv){let t=FP(e);t.workspaceDir||(console.error("Usage: node scripts/analyze-benchmark.js <workspace> [--benchmark benchmark.json] [--output analysis.json] [--markdown analysis.md]"),process.exit(1));let n=await DP(t);process.stdout.write(`${JSON.stringify({analysis:n.analysis,analysis_json:n.analysisJsonPath,analysis_md:n.analysisMdPath},null,2)}
470
+ `)}var LP,kh=p(()=>{"use strict";vh();_e();o(So,"normalizeStringArray");o(MP,"summarizeFailureClusters");o(XP,"normalizeAnalysisResult");o(jP,"buildAnalysisPrompt");o(WP,"defaultRunAnalyst");o(NP,"renderAnalysisMarkdown");o(DP,"analyzeBenchmark");o(FP,"parseArgs");o(Kc,"main");LP=!1;LP&&Kc().catch(e=>{console.error(e instanceof Error?e.message:String(e)),process.exit(1)})});import{readdir as qP,readFile as xh,writeFile as Ph}from"node:fs/promises";import z from"node:path";async function Jc(e){return(await qP(e,{withFileTypes:!0}).catch(()=>[])).filter(n=>n.isDirectory()).map(n=>z.join(e,n.name)).sort((n,r)=>n.localeCompare(r))}function Hc(e){return Array.isArray(e)?e.map(t=>String(t??"").trim()).filter(Boolean):[]}function zP(e){let t=$n(e)??{},n=["A","B","tie","inconclusive"].includes(t.winner)?t.winner:"inconclusive",r=Number(t.confidence);return{winner:n,confidence:Number.isFinite(r)?Math.max(0,Math.min(1,Number(r.toFixed(4)))):0,rationale:String(t.rationale??"").trim(),strengths_a:Hc(t.strengths_a),strengths_b:Hc(t.strengths_b),risks:Hc(t.risks)}}async function UP(e,t,n,r){let i=(await Jc(z.join(e,t))).filter(u=>z.basename(u).startsWith("run-")),s=(await Jc(z.join(e,n))).filter(u=>z.basename(u).startsWith("run-")),a=i[r],c=s[r];if(!a||!c)return null;let d=await je(z.join(e,"eval_metadata.json"),{}),l=await xh(z.join(a,"outputs","result.md"),"utf8").catch(()=>""),f=await xh(z.join(c,"outputs","result.md"),"utf8").catch(()=>"");return{evalDir:e,evalMetadata:d,runA:{runDir:a,runId:z.basename(a),configName:t,output:l},runB:{runDir:c,runId:z.basename(c),configName:n,output:f}}}function VP(e){let t=e.presentPrimaryFirst?{A:e.runA,B:e.runB}:{A:e.runB,B:e.runA};return`${e.agentInstructions.trim()}
819
471
 
820
472
  Return JSON with this shape:
821
473
  {
@@ -843,15 +495,15 @@ ${ae(t.A.output,12e3)}
843
495
 
844
496
  ## Candidate B
845
497
  ${ae(t.B.output,12e3)}
846
- `}async function Zx(e,t){let{runKodaX:n}=await Ot();return(await n({provider:t.provider??"anthropic",model:t.model,maxIter:t.maxIter??20,effort:t.effort??(t.reasoningMode?void 0:"medium"),reasoningMode:t.reasoningMode,context:{gitRoot:z.resolve(t.cwd??t.workspaceDir??process.cwd())}},e)).lastText}function Kx(e,t,n,r){return e==="A"?t?n:r:e==="B"?t?r:n:e}function Hx(e){let t=[`# Blind Comparison: ${e.config_a} vs ${e.config_b}`,"",`Generated: ${e.generated_at}`,"",`- ${e.config_a} wins: ${e.summary.config_a_wins}`,`- ${e.config_b} wins: ${e.summary.config_b_wins}`,`- ties: ${e.summary.ties}`,`- inconclusive: ${e.summary.inconclusive}`,""];for(let n of e.comparisons)t.push(`## Eval ${n.eval_id??n.eval_name??n.index}`),t.push(""),t.push(`- Winner: ${n.winner_config}`),t.push(`- Confidence: ${n.confidence}`),t.push(`- Rationale: ${n.rationale||"n/a"}`),t.push("");return`${t.join(`
498
+ `}async function YP(e,t){let{runKodaX:n}=await yt();return(await n({provider:t.provider??"anthropic",model:t.model,maxIter:t.maxIter??20,effort:t.effort??(t.reasoningMode?void 0:"medium"),reasoningMode:t.reasoningMode,context:{gitRoot:z.resolve(t.cwd??t.workspaceDir??process.cwd())}},e)).lastText}function GP(e,t,n,r){return e==="A"?t?n:r:e==="B"?t?r:n:e}function BP(e){let t=[`# Blind Comparison: ${e.config_a} vs ${e.config_b}`,"",`Generated: ${e.generated_at}`,"",`- ${e.config_a} wins: ${e.summary.config_a_wins}`,`- ${e.config_b} wins: ${e.summary.config_b_wins}`,`- ties: ${e.summary.ties}`,`- inconclusive: ${e.summary.inconclusive}`,""];for(let n of e.comparisons)t.push(`## Eval ${n.eval_id??n.eval_name??n.index}`),t.push(""),t.push(`- Winner: ${n.winner_config}`),t.push(`- Confidence: ${n.confidence}`),t.push(`- Rationale: ${n.rationale||"n/a"}`),t.push("");return`${t.join(`
847
499
  `)}
848
- `}async function Jx(e,t=Zx){let n=z.resolve(e.workspaceDir),r=e.configA??"with_skill",i=e.configB??"without_skill",s=Number.isFinite(e.maxPairs)&&e.maxPairs>0?Math.floor(e.maxPairs):Number.POSITIVE_INFINITY,a=await $n(import.meta.url,"../agents/comparator.md"),c=[];for(let u of await Hc(n))if(z.basename(u).startsWith("eval-"))for(let m=0;m<s;m+=1){let g=await Gx(u,r,i,m);if(!g)break;let w=c.length%2===0,k=Bx({agentInstructions:a,evalMetadata:g.evalMetadata,runA:g.runA,runB:g.runB,presentPrimaryFirst:w}),O=await t(k,{...e,workspaceDir:n,evalDir:u,pairIndex:m,configA:r,configB:i}),y=Yx(O),b=Kx(y.winner,w,r,i);c.push({index:c.length+1,eval_id:g.evalMetadata.eval_id??null,eval_name:g.evalMetadata.eval_name??null,run_a:z.relative(n,g.runA.runDir).replace(/\\/g,"/"),run_b:z.relative(n,g.runB.runDir).replace(/\\/g,"/"),presented_as:w?{A:r,B:i}:{A:i,B:r},winner_label:y.winner,winner_config:b,confidence:y.confidence,rationale:y.rationale,strengths_a:y.strengths_a,strengths_b:y.strengths_b,risks:y.risks})}if(c.length===0)throw new Error(`No comparable run pairs found for ${r} vs ${i} in ${n}`);let d={workspace:n,generated_at:new Date().toISOString(),config_a:r,config_b:i,summary:{total_pairs:c.length,config_a_wins:c.filter(u=>u.winner_config===r).length,config_b_wins:c.filter(u=>u.winner_config===i).length,ties:c.filter(u=>u.winner_config==="tie").length,inconclusive:c.filter(u=>u.winner_config==="inconclusive").length},comparisons:c},l=z.resolve(e.outputPath??z.join(n,"comparison.json")),f=z.resolve(e.markdownPath??z.join(n,"comparison.md"));return await xh(l,`${JSON.stringify(d,null,2)}
849
- `,"utf8"),await xh(f,Hx(d),"utf8"),{document:d,outputPath:l,markdownPath:f}}function e_(e){let t={workspaceDir:e[2]??"",configA:"with_skill",configB:"without_skill",outputPath:void 0,markdownPath:void 0,provider:"anthropic",model:void 0,effort:void 0,reasoningMode:void 0,maxIter:20,maxPairs:void 0,cwd:process.cwd()};for(let n=3;n<e.length;n+=1){let r=e[n];r==="--config-a"&&e[n+1]?t.configA=e[++n]:r==="--config-b"&&e[n+1]?t.configB=e[++n]:r==="--output"&&e[n+1]?t.outputPath=e[++n]:r==="--markdown"&&e[n+1]?t.markdownPath=e[++n]:r==="--provider"&&e[n+1]?t.provider=e[++n]:r==="--model"&&e[n+1]?t.model=e[++n]:r==="--effort"&&e[n+1]?t.effort=e[++n]:r==="--reasoning"&&e[n+1]?t.reasoningMode=e[++n]:r==="--max-iter"&&e[n+1]?t.maxIter=Number(e[++n]):r==="--max-pairs"&&e[n+1]?t.maxPairs=Number(e[++n]):r==="--cwd"&&e[n+1]&&(t.cwd=e[++n])}return t}async function Jc(e=process.argv){let t=e_(e);t.workspaceDir||(console.error("Usage: node scripts/compare-runs.js <workspace> [--config-a with_skill] [--config-b without_skill] [--output comparison.json]"),process.exit(1));let n=await Jx(t);process.stdout.write(`${JSON.stringify({comparison:n.document.summary,output:n.outputPath,markdown:n.markdownPath},null,2)}
850
- `)}var t_,_h=p(()=>{"use strict";xe();o(Hc,"listDirectories");o(Kc,"normalizeStringArray");o(Yx,"normalizeComparisonResult");o(Gx,"loadComparisonPair");o(Bx,"buildComparisonPrompt");o(Zx,"defaultRunComparator");o(Kx,"mapWinnerToConfig");o(Hx,"renderComparisonMarkdown");o(Jx,"compareWorkspace");o(e_,"parseArgs");o(Jc,"main");t_=!1;t_&&Jc().catch(e=>{console.error(e instanceof Error?e.message:String(e)),process.exit(1)})});import{readFile as n_,writeFile as r_}from"node:fs/promises";import{createHash as i_}from"node:crypto";import ed from"node:path";import{zipSync as o_,strToU8 as s_}from"fflate";function c_(e){return e instanceof Uint8Array?e:new Uint8Array(e)}function d_(e){return i_("sha256").update(e).digest("hex")}function l_(e,t,n={}){return{format:"kodax-skill-package",version:1,created_at:n.createdAt??new Date().toISOString(),entrypoint:"SKILL.md",skill:{name:e.frontmatter.name,description:e.frontmatter.description,compatibility:e.frontmatter.compatibility??null,user_invocable:e.frontmatter["user-invocable"]??!0,disable_model_invocation:e.frontmatter["disable-model-invocation"]??!1},files:t.map(r=>({path:r.relativePath,size:r.bytes.length,sha256:r.sha256})),note:"This archive is a zip file with a .skill extension. Compatible agents can extract and install the included skill directory."}}async function u_(e,t={}){let n=await Nr(e);if(!n.valid)throw new Error(`Cannot package invalid skill:
500
+ `}async function ZP(e,t=YP){let n=z.resolve(e.workspaceDir),r=e.configA??"with_skill",i=e.configB??"without_skill",s=Number.isFinite(e.maxPairs)&&e.maxPairs>0?Math.floor(e.maxPairs):Number.POSITIVE_INFINITY,a=await An(import.meta.url,"../agents/comparator.md"),c=[];for(let u of await Jc(n))if(z.basename(u).startsWith("eval-"))for(let m=0;m<s;m+=1){let g=await UP(u,r,i,m);if(!g)break;let w=c.length%2===0,k=VP({agentInstructions:a,evalMetadata:g.evalMetadata,runA:g.runA,runB:g.runB,presentPrimaryFirst:w}),O=await t(k,{...e,workspaceDir:n,evalDir:u,pairIndex:m,configA:r,configB:i}),y=zP(O),b=GP(y.winner,w,r,i);c.push({index:c.length+1,eval_id:g.evalMetadata.eval_id??null,eval_name:g.evalMetadata.eval_name??null,run_a:z.relative(n,g.runA.runDir).replace(/\\/g,"/"),run_b:z.relative(n,g.runB.runDir).replace(/\\/g,"/"),presented_as:w?{A:r,B:i}:{A:i,B:r},winner_label:y.winner,winner_config:b,confidence:y.confidence,rationale:y.rationale,strengths_a:y.strengths_a,strengths_b:y.strengths_b,risks:y.risks})}if(c.length===0)throw new Error(`No comparable run pairs found for ${r} vs ${i} in ${n}`);let d={workspace:n,generated_at:new Date().toISOString(),config_a:r,config_b:i,summary:{total_pairs:c.length,config_a_wins:c.filter(u=>u.winner_config===r).length,config_b_wins:c.filter(u=>u.winner_config===i).length,ties:c.filter(u=>u.winner_config==="tie").length,inconclusive:c.filter(u=>u.winner_config==="inconclusive").length},comparisons:c},l=z.resolve(e.outputPath??z.join(n,"comparison.json")),f=z.resolve(e.markdownPath??z.join(n,"comparison.md"));return await Ph(l,`${JSON.stringify(d,null,2)}
501
+ `,"utf8"),await Ph(f,BP(d),"utf8"),{document:d,outputPath:l,markdownPath:f}}function KP(e){let t={workspaceDir:e[2]??"",configA:"with_skill",configB:"without_skill",outputPath:void 0,markdownPath:void 0,provider:"anthropic",model:void 0,effort:void 0,reasoningMode:void 0,maxIter:20,maxPairs:void 0,cwd:process.cwd()};for(let n=3;n<e.length;n+=1){let r=e[n];r==="--config-a"&&e[n+1]?t.configA=e[++n]:r==="--config-b"&&e[n+1]?t.configB=e[++n]:r==="--output"&&e[n+1]?t.outputPath=e[++n]:r==="--markdown"&&e[n+1]?t.markdownPath=e[++n]:r==="--provider"&&e[n+1]?t.provider=e[++n]:r==="--model"&&e[n+1]?t.model=e[++n]:r==="--effort"&&e[n+1]?t.effort=e[++n]:r==="--reasoning"&&e[n+1]?t.reasoningMode=e[++n]:r==="--max-iter"&&e[n+1]?t.maxIter=Number(e[++n]):r==="--max-pairs"&&e[n+1]?t.maxPairs=Number(e[++n]):r==="--cwd"&&e[n+1]&&(t.cwd=e[++n])}return t}async function ed(e=process.argv){let t=KP(e);t.workspaceDir||(console.error("Usage: node scripts/compare-runs.js <workspace> [--config-a with_skill] [--config-b without_skill] [--output comparison.json]"),process.exit(1));let n=await ZP(t);process.stdout.write(`${JSON.stringify({comparison:n.document.summary,output:n.outputPath,markdown:n.markdownPath},null,2)}
502
+ `)}var HP,_h=p(()=>{"use strict";_e();o(Jc,"listDirectories");o(Hc,"normalizeStringArray");o(zP,"normalizeComparisonResult");o(UP,"loadComparisonPair");o(VP,"buildComparisonPrompt");o(YP,"defaultRunComparator");o(GP,"mapWinnerToConfig");o(BP,"renderComparisonMarkdown");o(ZP,"compareWorkspace");o(KP,"parseArgs");o(ed,"main");HP=!1;HP&&ed().catch(e=>{console.error(e instanceof Error?e.message:String(e)),process.exit(1)})});import{readFile as JP,writeFile as e_}from"node:fs/promises";import{createHash as t_}from"node:crypto";import td from"node:path";import{zipSync as n_,strToU8 as r_}from"fflate";function o_(e){return e instanceof Uint8Array?e:new Uint8Array(e)}function s_(e){return t_("sha256").update(e).digest("hex")}function a_(e,t,n={}){return{format:"kodax-skill-package",version:1,created_at:n.createdAt??new Date().toISOString(),entrypoint:"SKILL.md",skill:{name:e.frontmatter.name,description:e.frontmatter.description,compatibility:e.frontmatter.compatibility??null,user_invocable:e.frontmatter["user-invocable"]??!0,disable_model_invocation:e.frontmatter["disable-model-invocation"]??!1},files:t.map(r=>({path:r.relativePath,size:r.bytes.length,sha256:r.sha256})),note:"This archive is a zip file with a .skill extension. Compatible agents can extract and install the included skill directory."}}async function c_(e,t={}){let n=await Fr(e);if(!n.valid)throw new Error(`Cannot package invalid skill:
851
503
  - ${n.errors.join(`
852
- - `)}`);let r=await jr(e),i=await jc(e),s=[];for(let d of i){if(d.relativePath.endsWith(".skill"))continue;let l=c_(await n_(d.absolutePath));s.push({...d,bytes:l,sha256:d_(l)})}let a=l_(r,s,t),c={[a_]:s_(JSON.stringify(a,null,2))};for(let d of s)c[d.relativePath]=d.bytes;return{manifest:a,bytes:o_(c,{level:6})}}async function f_(e,t,n={}){let r=await u_(e,n);return await r_(t,r.bytes),{...r,outputPath:ed.resolve(t)}}function p_(e){let t={skillDir:e[2],output:void 0};for(let n=3;n<e.length;n+=1)e[n]==="--output"&&e[n+1]&&(t.output=e[++n]);return t}async function td(e=process.argv){let t=p_(e);t.skillDir||(console.error("Usage: node scripts/package-skill.js <skill-dir> [--output <file.skill>]"),process.exit(1));let n=await jr(t.skillDir),r=t.output??ed.join(ed.dirname(t.skillDir),`${n.frontmatter.name}.skill`),i=await f_(t.skillDir,r);console.log(`Wrote ${i.outputPath}`)}var a_,m_,Th=p(()=>{"use strict";wo();xe();a_=".kodax-package.json";o(c_,"toUint8Array");o(d_,"sha256");o(l_,"createPackageManifest");o(u_,"buildSkillPackage");o(f_,"writeSkillPackage");o(p_,"parseArgs");o(td,"main");m_=!1;m_&&td().catch(e=>{console.error(e instanceof Error?e.message:String(e)),process.exit(1)})});import{cp as h_,mkdir as nd,readFile as Ih,rm as Qh,stat as g_,writeFile as O_}from"node:fs/promises";import We from"node:path";import{strFromU8 as Eh,unzipSync as y_}from"fflate";function w_(e){return e.replace(/\\/g,"/").replace(/^\.?\//,"")}function S_(e){let t=w_(e);if(!t||t.startsWith("/")||t.includes("../"))throw new Error(`Unsafe archive entry path: ${e}`);return t}function b_(e){return/\.(skill|zip)$/i.test(e)}function v_(e){let t=y_(e),n=Object.entries(t).map(([l,f])=>({relativePath:S_(l),bytes:f})),r=n.find(l=>l.relativePath==="SKILL.md");if(!r)throw new Error("Archive is missing SKILL.md");let i=ho(Eh(r.bytes)),s=typeof i.frontmatter.name=="string"?i.frontmatter.name.trim():"",a=typeof i.frontmatter.description=="string"?i.frontmatter.description.trim():"";if(!s||!a)throw new Error("Archive SKILL.md is missing required frontmatter fields.");let c=n.find(l=>l.relativePath===Rh),d=c?JSON.parse(Eh(c.bytes)):null;return{skillName:s,manifest:d,entries:n.filter(l=>l.relativePath!==Rh)}}async function k_(e,t){if(await Wr(e)){if(!t)throw new Error(`Target skill already exists: ${e}`);await Qh(e,{recursive:!0,force:!0})}await nd(e,{recursive:!0})}async function P_(e,t={}){let n=We.resolve(t.skillsDir??Dr()),r=v_(await Ih(e)),i=We.join(n,r.skillName);await k_(i,t.force===!0);for(let s of r.entries){let a=We.join(i,s.relativePath);await nd(We.dirname(a),{recursive:!0}),await O_(a,s.bytes)}return{skillName:r.skillName,installedTo:i,source:We.resolve(e),manifest:r.manifest}}async function x_(e,t={}){let n=await Nr(e);if(!n.valid)throw new Error(`Cannot install invalid skill:
504
+ - `)}`);let r=await Wr(e),i=await Wc(e),s=[];for(let d of i){if(d.relativePath.endsWith(".skill"))continue;let l=o_(await JP(d.absolutePath));s.push({...d,bytes:l,sha256:s_(l)})}let a=a_(r,s,t),c={[i_]:r_(JSON.stringify(a,null,2))};for(let d of s)c[d.relativePath]=d.bytes;return{manifest:a,bytes:n_(c,{level:6})}}async function d_(e,t,n={}){let r=await c_(e,n);return await e_(t,r.bytes),{...r,outputPath:td.resolve(t)}}function l_(e){let t={skillDir:e[2],output:void 0};for(let n=3;n<e.length;n+=1)e[n]==="--output"&&e[n+1]&&(t.output=e[++n]);return t}async function nd(e=process.argv){let t=l_(e);t.skillDir||(console.error("Usage: node scripts/package-skill.js <skill-dir> [--output <file.skill>]"),process.exit(1));let n=await Wr(t.skillDir),r=t.output??td.join(td.dirname(t.skillDir),`${n.frontmatter.name}.skill`),i=await d_(t.skillDir,r);console.log(`Wrote ${i.outputPath}`)}var i_,u_,Th=p(()=>{"use strict";yo();_e();i_=".kodax-package.json";o(o_,"toUint8Array");o(s_,"sha256");o(a_,"createPackageManifest");o(c_,"buildSkillPackage");o(d_,"writeSkillPackage");o(l_,"parseArgs");o(nd,"main");u_=!1;u_&&nd().catch(e=>{console.error(e instanceof Error?e.message:String(e)),process.exit(1)})});import{cp as f_,mkdir as rd,readFile as Ih,rm as Qh,stat as p_,writeFile as m_}from"node:fs/promises";import We from"node:path";import{strFromU8 as Eh,unzipSync as h_}from"fflate";function g_(e){return e.replace(/\\/g,"/").replace(/^\.?\//,"")}function O_(e){let t=g_(e);if(!t||t.startsWith("/")||t.includes("../"))throw new Error(`Unsafe archive entry path: ${e}`);return t}function y_(e){return/\.(skill|zip)$/i.test(e)}function w_(e){let t=h_(e),n=Object.entries(t).map(([l,f])=>({relativePath:O_(l),bytes:f})),r=n.find(l=>l.relativePath==="SKILL.md");if(!r)throw new Error("Archive is missing SKILL.md");let i=mo(Eh(r.bytes)),s=typeof i.frontmatter.name=="string"?i.frontmatter.name.trim():"",a=typeof i.frontmatter.description=="string"?i.frontmatter.description.trim():"";if(!s||!a)throw new Error("Archive SKILL.md is missing required frontmatter fields.");let c=n.find(l=>l.relativePath===Rh),d=c?JSON.parse(Eh(c.bytes)):null;return{skillName:s,manifest:d,entries:n.filter(l=>l.relativePath!==Rh)}}async function S_(e,t){if(await Nr(e)){if(!t)throw new Error(`Target skill already exists: ${e}`);await Qh(e,{recursive:!0,force:!0})}await rd(e,{recursive:!0})}async function b_(e,t={}){let n=We.resolve(t.skillsDir??Dr()),r=w_(await Ih(e)),i=We.join(n,r.skillName);await S_(i,t.force===!0);for(let s of r.entries){let a=We.join(i,s.relativePath);await rd(We.dirname(a),{recursive:!0}),await m_(a,s.bytes)}return{skillName:r.skillName,installedTo:i,source:We.resolve(e),manifest:r.manifest}}async function v_(e,t={}){let n=await Fr(e);if(!n.valid)throw new Error(`Cannot install invalid skill:
853
505
  - ${n.errors.join(`
854
- - `)}`);let r=We.join(e,"SKILL.md"),i=ho(await Ih(r,"utf8")),s=We.resolve(t.skillsDir??Dr()),a=We.join(s,i.frontmatter.name);if(await Wr(a)){if(!t.force)throw new Error(`Target skill already exists: ${a}`);await Qh(a,{recursive:!0,force:!0})}return await nd(s,{recursive:!0}),await h_(e,a,{recursive:!0}),{skillName:i.frontmatter.name,installedTo:a,source:We.resolve(e),manifest:null}}async function __(e,t={}){let n=We.resolve(e),r=await g_(n).catch(()=>null);if(!r)throw new Error(`Input not found: ${n}`);if(r.isDirectory())return x_(n,t);if(r.isFile()&&b_(n))return P_(n,t);throw new Error("Input must be a skill directory or a .skill/.zip archive.")}function T_(e){let t={input:e[2],skillsDir:void 0,force:!1};for(let n=3;n<e.length;n+=1){let r=e[n];r==="--dest"&&e[n+1]?t.skillsDir=e[++n]:r==="--force"&&(t.force=!0)}return t}async function rd(e=process.argv){let t=T_(e);t.input||(console.error("Usage: node scripts/install-skill.js <skill-dir-or-archive> [--dest <skills-dir>] [--force]"),process.exit(1));let n=await __(t.input,t);console.log(`Installed ${n.skillName} to ${n.installedTo}`)}var Rh,E_,$h=p(()=>{"use strict";wo();xe();Rh=".kodax-package.json";o(w_,"normalizeArchivePath");o(S_,"assertSafeArchivePath");o(b_,"isZipLike");o(v_,"readSkillPackageBuffer");o(k_,"ensureInstallTarget");o(P_,"installSkillArchive");o(x_,"installSkillDirectory");o(__,"installSkill");o(T_,"parseArgs");o(rd,"main");E_=!1;E_&&rd().catch(e=>{console.error(e instanceof Error?e.message:String(e)),process.exit(1)})});function Ah(e){return e!==void 0&&R_.some(t=>t===e)}async function Ch(e,t,n){dh(n),await I_[e]([process.execPath,`skill-${e}.js`,...t])}var R_,I_,Mh=p(()=>{"use strict";ph();wo();hh();Sh();kh();_h();Th();$h();xe();R_=["init","validate","eval","grade","analyze","compare","package","install"],I_={init:Wc,validate:Dc,eval:Fc,grade:Uc,analyze:Zc,compare:Jc,package:td,install:rd};o(Ah,"isSkillCreatorDispatchAction");o(Ch,"dispatchSkillCreatorTool")});var uh={};xs(uh,{SkillExecutor:()=>In,SkillRegistry:()=>Cr,VariableResolver:()=>En,clearPluginSkillPaths:()=>Fp,createExecutor:()=>Hm,createResolver:()=>Gm,discoverSkills:()=>$r,discoverSkillsWithMonorepo:()=>Vm,dispatchSkillCreatorTool:()=>Ch,executeSkill:()=>Jm,expandSkillForLLM:()=>nh,formatSkillActivationMessage:()=>rh,formatSkillsSystemPrompt:()=>Ic,getDefaultSkillPaths:()=>Ki,getNestedSkillPaths:()=>Tc,getSkillPathsFlat:()=>Hi,getSkillRegistry:()=>Mr,initializeSkillRegistry:()=>Qc,isSkillCreatorDispatchAction:()=>Ah,listPluginSkillPaths:()=>Zi,loadFullSkill:()=>eo,loadSkillFileContent:()=>Bp,loadSkillMetadata:()=>kr,parseArguments:()=>Rc,parseSkillMarkdown:()=>Ji,registerPluginSkillPath:()=>Dp,resetSkillRegistry:()=>Km,resolveSkillContent:()=>gt,unregisterPluginSkillPath:()=>Np});var yo=p(()=>{"use strict";tc();ec();to();Ec();Ar();$c();eh();ih();Mh()});var id=p(()=>{"use strict"});var od=p(()=>{"use strict"});var vo=p(()=>{"use strict"});var Xh=p(()=>{"use strict";Vt()});var lZ,Wh=p(()=>{"use strict";yo();Bi();Yt();Vt();id();od();vo();Xh();lZ=1440*60*1e3});var OZ,Fr=p(()=>{"use strict";Bi();re();Vt();G();OZ=5*6e4});var Dh=p(()=>{"use strict";Qr();vo();Fr()});var Nh=p(()=>{"use strict";jp();Wh();vo();id();od();Fr();Fr();Fr();Dh()});var cK,Lr=p(()=>{"use strict";G();cK=new Intl.Segmenter("zh-CN",{granularity:"word"})});import{AsyncLocalStorage as A_}from"node:async_hooks";var fK,sd=p(()=>{"use strict";fK=new A_});var ad=p(()=>{"use strict";zi();Ut();Da()});var cd=p(()=>{"use strict";re();G()});var ko=p(()=>{"use strict"});var dd=p(()=>{"use strict";G();cd();ko()});var ld=p(()=>{"use strict"});var ud=p(()=>{"use strict";sd();Se();Va();G();Lr();ad();cd();dd();re();ko();ld()});var fd=p(()=>{"use strict";jt();Lr();ud()});var qh=p(()=>{"use strict";fd()});var w4,zh=p(()=>{"use strict";Lr();w4=String.raw`const TOOL_NAME = 'echo_tool';
506
+ - `)}`);let r=We.join(e,"SKILL.md"),i=mo(await Ih(r,"utf8")),s=We.resolve(t.skillsDir??Dr()),a=We.join(s,i.frontmatter.name);if(await Nr(a)){if(!t.force)throw new Error(`Target skill already exists: ${a}`);await Qh(a,{recursive:!0,force:!0})}return await rd(s,{recursive:!0}),await f_(e,a,{recursive:!0}),{skillName:i.frontmatter.name,installedTo:a,source:We.resolve(e),manifest:null}}async function k_(e,t={}){let n=We.resolve(e),r=await p_(n).catch(()=>null);if(!r)throw new Error(`Input not found: ${n}`);if(r.isDirectory())return v_(n,t);if(r.isFile()&&y_(n))return b_(n,t);throw new Error("Input must be a skill directory or a .skill/.zip archive.")}function x_(e){let t={input:e[2],skillsDir:void 0,force:!1};for(let n=3;n<e.length;n+=1){let r=e[n];r==="--dest"&&e[n+1]?t.skillsDir=e[++n]:r==="--force"&&(t.force=!0)}return t}async function id(e=process.argv){let t=x_(e);t.input||(console.error("Usage: node scripts/install-skill.js <skill-dir-or-archive> [--dest <skills-dir>] [--force]"),process.exit(1));let n=await k_(t.input,t);console.log(`Installed ${n.skillName} to ${n.installedTo}`)}var Rh,P_,$h=p(()=>{"use strict";yo();_e();Rh=".kodax-package.json";o(g_,"normalizeArchivePath");o(O_,"assertSafeArchivePath");o(y_,"isZipLike");o(w_,"readSkillPackageBuffer");o(S_,"ensureInstallTarget");o(b_,"installSkillArchive");o(v_,"installSkillDirectory");o(k_,"installSkill");o(x_,"parseArgs");o(id,"main");P_=!1;P_&&id().catch(e=>{console.error(e instanceof Error?e.message:String(e)),process.exit(1)})});function Ah(e){return e!==void 0&&__.some(t=>t===e)}async function Ch(e,t,n){dh(n),await T_[e]([process.execPath,`skill-${e}.js`,...t])}var __,T_,Mh=p(()=>{"use strict";ph();yo();hh();Sh();kh();_h();Th();$h();_e();__=["init","validate","eval","grade","analyze","compare","package","install"],T_={init:Nc,validate:Dc,eval:Lc,grade:Vc,analyze:Kc,compare:ed,package:nd,install:id};o(Ah,"isSkillCreatorDispatchAction");o(Ch,"dispatchSkillCreatorTool")});var uh={};xs(uh,{SkillExecutor:()=>Qn,SkillRegistry:()=>Mr,VariableResolver:()=>Rn,clearPluginSkillPaths:()=>Fp,createExecutor:()=>Hm,createResolver:()=>Gm,discoverSkills:()=>Ar,discoverSkillsWithMonorepo:()=>Vm,dispatchSkillCreatorTool:()=>Ch,executeSkill:()=>Jm,expandSkillForLLM:()=>nh,formatSkillActivationMessage:()=>rh,formatSkillsSystemPrompt:()=>Qc,getDefaultSkillPaths:()=>Zi,getNestedSkillPaths:()=>Ec,getSkillPathsFlat:()=>Ki,getSkillRegistry:()=>Xr,initializeSkillRegistry:()=>$c,isSkillCreatorDispatchAction:()=>Ah,listPluginSkillPaths:()=>Bi,loadFullSkill:()=>Ji,loadSkillFileContent:()=>Bp,loadSkillMetadata:()=>xr,parseArguments:()=>Ic,parseSkillMarkdown:()=>Hi,registerPluginSkillPath:()=>Np,resetSkillRegistry:()=>Km,resolveSkillContent:()=>Ot,unregisterPluginSkillPath:()=>Dp});var Oo=p(()=>{"use strict";nc();tc();eo();Rc();Cr();Ac();eh();ih();Mh()});var od=p(()=>{"use strict"});var sd=p(()=>{"use strict"});var bo=p(()=>{"use strict"});var Xh=p(()=>{"use strict";Vt()});var sZ,Wh=p(()=>{"use strict";Oo();Gi();Yt();Vt();od();sd();bo();Xh();sZ=1440*60*1e3});var pZ,Lr=p(()=>{"use strict";Gi();re();Vt();G();pZ=5*6e4});var Nh=p(()=>{"use strict";$r();bo();Lr()});var Dh=p(()=>{"use strict";jp();Wh();bo();od();sd();Lr();Lr();Lr();Nh()});var i4,qr=p(()=>{"use strict";G();i4=new Intl.Segmenter("zh-CN",{granularity:"word"})});import{AsyncLocalStorage as I_}from"node:async_hooks";var c4,ad=p(()=>{"use strict";c4=new I_});var cd=p(()=>{"use strict";zi();Ut();Da()});var dd=p(()=>{"use strict";re();G()});var vo=p(()=>{"use strict"});var ld=p(()=>{"use strict";G();dd();vo()});var ud=p(()=>{"use strict"});var fd=p(()=>{"use strict";ad();Se();Ya();G();qr();cd();dd();ld();re();vo();ud()});var md=p(()=>{"use strict";ct();qr();fd()});var Lh=p(()=>{"use strict";md()});var hK,qh=p(()=>{"use strict";qr();hK=String.raw`const TOOL_NAME = 'echo_tool';
855
507
  const RESOURCE_URI = 'memory://guide';
856
508
  const PROMPT_NAME = 'draft_prompt';
857
509
  let buffer = '';
@@ -1031,15 +683,15 @@ process.stdin.on('data', (chunk) => {
1031
683
 
1032
684
  process.on('SIGTERM', () => process.exit(0));
1033
685
  process.on('SIGINT', () => process.exit(0));
1034
- `});var Uh=p(()=>{"use strict";Lr();ud();fd();ld();ad();ko();dd();qh();sd();zh()});async function rT(e,t,n){let r=Yh("label");return await e.append({id:r,ts:Date.now(),type:"label",payload:{targetId:t,label:n}}),r}async function iT(e,t,n){let r=Yh("artifact");return await e.append({id:r,ts:Date.now(),type:"artifact_ledger",payload:{ref:t,summary:n}}),r}function oT(e){let t=[],n=new Map,r=[],i=null;for(let s of e){if(s.type==="label"){let c=s.payload;c?.targetId&&r.push({targetId:c.targetId,label:c.label});continue}let a={entry:s,children:[]};if(s.type==="message"){t.push(a),n.set(s.id,a),i=a;continue}i?i.children.push(a):t.push(a)}for(let{targetId:s,label:a}of r){let c=n.get(s);c&&a!==void 0&&(c.label=a)}return t}var Vh,tT,nT,Yh,sT,Gh=p(()=>{"use strict";Vh=Object.freeze(["message","label","compaction","branch_summary","archive_marker","rewind_marker","artifact_ledger","memory_outcome_digest","memory_review_receipt"]),tT=0,nT=0,Yh=o(e=>{let t=e==="label"?++tT:++nT,n=Math.random().toString(36).slice(2,8);return`${e}-${Date.now()}-${t}-${n}`},"nextId");o(rT,"appendLabel");o(iT,"appendArtifact");o(oT,"buildLineageTree");sT=Object.freeze({name:"lineage",entryTypes:Vh,operators:Object.freeze({label:o((async(e,...t)=>{let[n,r]=t;return rT(e,n,r)}),"label"),attachArtifact:o((async(e,...t)=>{let[n,r]=t;return iT(e,n,r)}),"attachArtifact")}),reducers:Object.freeze({buildLineageTree:o(e=>oT(e),"buildLineageTree")})})});var Bh=p(()=>{"use strict"});var Zh=p(()=>{"use strict"});var Po=p(()=>{"use strict"});var xo=p(()=>{"use strict";Po()});var pd=p(()=>{"use strict"});var md=p(()=>{"use strict";Se();re();pd()});var Kh=p(()=>{"use strict"});var _o=p(()=>{"use strict"});var To=p(()=>{"use strict"});var gT,hd,Eo,An=p(()=>{"use strict";jt();xo();md();Kh();Po();Bn();_o();To();gT=new Set(["skill","ask_user_question","exit_plan_mode","spawn_agent","send_message","followup_task","wait_agent","interrupt_agent","list_agents","agent_output","tool_search","get_goal","create_goal","update_goal","todo_create","todo_update","todo_list","todo_get","worktree_create","worktree_remove","undo","mcp_search","mcp_describe","mcp_call","mcp_read_resource","mcp_get_prompt","repo_overview","changed_scope","changed_diff","changed_diff_bundle","module_context","symbol_context","process_context","impact_estimate","relationship_scan","cyclic_dependencies","semantic_lookup"]),hd=gT,Eo=`[\u5BF9\u8BDD\u5386\u53F2\u6458\u8981]
1035
-
1036
- `});var gd=p(()=>{"use strict";jt()});var Od=p(()=>{"use strict"});var Cn=p(()=>{"use strict";An();gd();Od()});var rg=p(()=>{"use strict";Cn()});var ig=p(()=>{"use strict"});var U3,V3,og=p(()=>{"use strict";An();Cn();U3=Eo.trimEnd(),V3=16*1024});var sg=p(()=>{"use strict";re();xo();Cn()});var ag=p(()=>{"use strict";Cn()});var kT,cg=p(()=>{"use strict";An();Po();kT={enabled:!1,maxAge:20,protectedTools:Array.from(hd)}});var dg=p(()=>{"use strict"});var lg=p(()=>{"use strict";An()});var ug=p(()=>{"use strict";jt();Bn();_o();To()});var fg=p(()=>{"use strict"});var pg=p(()=>{"use strict";lg();ug();fg()});var mg=p(()=>{"use strict";Gh();Bh();Zh();rg();ig();Cn();Od();og();sg();ag();_o();To();xo();pd();md();An();cg();gd();dg();Ts();pg()});var hg=p(()=>{"use strict"});var wd=p(()=>{"use strict"});var Sd=p(()=>{"use strict"});var Ro=p(()=>{"use strict"});import{createRequire as RT}from"node:module";var IT,gg,n6,bd=p(()=>{"use strict";IT=RT(import.meta.url),n6=new Proxy({},{get(e,t){return gg??=IT("typescript"),Reflect.get(gg,t)}})});var Io=p(()=>{"use strict";Se();wd()});var vd=p(()=>{"use strict";Ro();bd();Io()});var wg=p(()=>{"use strict";Ro();vd()});var Sg=p(()=>{"use strict";Sd();Io()});var bg=p(()=>{"use strict";hg();wd();Sd();Ro();vd();bd();wg();Io();Sg()});var vg=p(()=>{"use strict"});var kd=p(()=>{"use strict"});var kg=p(()=>{"use strict";kd();kd()});var Pg=p(()=>{"use strict"});var xg=p(()=>{"use strict";vg();kg();Pg()});var Qo=p(()=>{"use strict"});var Pd=p(()=>{"use strict";Qo()});var w7,_g=p(()=>{"use strict";Qo();Pd();w7=new Intl.Segmenter("en",{granularity:"grapheme"})});var Tg=p(()=>{"use strict";_g();Qo();Pd()});var $o=p(()=>{"use strict";Fl();_s();Ts();zl();jt();Bn();re();Nf();Ff();Lf();Aa();Ia();$a();Qa();hr();Ea();Ra();Li();ep();G();tp();ja();zi();Ut();Da();Na();lp();up();Sr();wp();xp();Ba();Za();_p();Tp();Ka();Ha();Ha();Bi();Nh();fo();fo();Vt();Uh();yo();Ta();mg();bg();xg();Tg()});import YT from"path";function Eg(e){return YT.resolve(e?.executionCwd??e?.gitRoot??process.cwd())}var Rg=p(()=>{"use strict";o(Eg,"resolveExecutionCwd")});import Ig from"node:fs";import xd from"node:os";import ve from"node:path";function _d(e){return(e==="~"?xd.homedir():/^~[\\/]/.test(e)?ve.join(xd.homedir(),e.slice(2)):e).replace(/^(?:\$\{HOME\}|\$HOME|\$env:(?:home|userprofile)|%userprofile%)(?=$|[\\/])/i,xd.homedir())}function qr(e,t=process.cwd()){if(!e.trim()||e.includes("\0"))return;let n=_d(e);if(process.platform==="win32"&&/^[a-z]:[^\\/]/i.test(n))return;let r=[],i=ve.resolve(t,n);for(;;){try{Ig.lstatSync(i)}catch(s){if(s.code!=="ENOENT")return;let a=ve.dirname(i);if(a===i)return;r.unshift(ve.basename(i)),i=a;continue}try{return ve.join(Ig.realpathSync.native(i),...r)}catch{return}}}function Qg(e,t){let n=ve.relative(t,e);if(!(!n||n.startsWith("..")||ve.isAbsolute(n)))return n.split(/[\\/]+/).map(r=>{let i=r.toLowerCase();if(process.platform!=="win32")return i;let s=i.indexOf(":");return(s>=0?i.slice(0,s):i).replace(/[ .]+$/g,"")}).join("/")}function GT(e,t=!1){return process.platform==="win32"&&(e=e.toLowerCase().split("/").map(n=>n.split(":")[0].replace(/[ .]+$/u,"")).join("/")),e==="memory-scopes"||e.startsWith("memory-scopes/")||t&&/^projects(?:\/[^/]+)?$/u.test(e)||/^projects\/[^/]+\/memory(?:\/|$)/u.test(e)}function BT(e,t=process.cwd(),n=Mt(),r=!1){let i=ve.resolve(n),s=ve.resolve(t,_d(e)),a=qr(i)??i,c=qr(e,t),d=[[s,i]];return c&&d.push([c,a]),d.some(([l,f])=>r&&Xt(f,l)?!0:Xt(l,f)?GT(ve.relative(f,l).replaceAll("\\","/"),r):!1)}function Ag(e,t=process.cwd()){let n;try{n=Mt()}catch{return!1}if(BT(e,t,n))return!0;let r=ve.resolve(n),i=ve.resolve(t,_d(e));if(Xt(i,r)){let d=Qg(i,r);if($g(d))return!0}let s=qr(n)??r,a=qr(e,t);if(a===void 0)return Xt(i,r);if(!Xt(a,s))return!1;let c=Qg(a,s);return $g(c)}function $g(e){return e===void 0||e==="runtime"||e.startsWith("runtime/")||e==="processes"||e.startsWith("processes/")||e==="learned"||e.startsWith("learned/")}var Td=p(()=>{"use strict";$o();o(_d,"expandHome");o(qr,"canonicalizeAgentHomePolicyPath");o(Qg,"normalizedRelative");o(GT,"isGovernedMemoryRelativePath");o(BT,"isGovernedMemoryMutationTarget");o(Ag,"isAgentHomeHardMutationTarget");o($g,"isHardAgentHomeRelativePath")});function ZT(){let e=process.env.KODAX_PATH_KEY_PLATFORM;return e==="win32"?!0:e==="posix"?!1:process.platform==="win32"}function Cg(e){if(typeof e!="string"||e.length===0)return"";let t=e.replace(/\\/g,"/");return t.startsWith("//")?t="//"+t.slice(2).replace(/\/+/g,"/"):t=t.replace(/\/+/g,"/"),ZT()?t=t.toLowerCase():t.length>=2&&/^[A-Za-z]:/.test(t)&&(t=t[0].toLowerCase()+t.slice(1)),t.length>1&&t.endsWith("/")&&(t=t.replace(/\/+$/g,"")),t}async function Ed(e,t){let n=Cg(e),i=(Ao.get(n)??Promise.resolve()).catch(()=>{}).then(t),s=i.catch(()=>{}).finally(()=>{Ao.get(n)===s&&Ao.delete(n)});return Ao.set(n,s),i}var Ao,Rd=p(()=>{"use strict";Td();Ao=new Map;o(ZT,"isWindowsPathPlatform");o(Cg,"normalizePathForKey");o(Ed,"withPathMutation")});function Id(e,t){return Ed(e,async()=>{if(Ag(e))throw new Error(`Mutation targets protected KodaX state: ${e}`);return t()})}var Mg=p(()=>{"use strict";Td();Rd();Rd();o(Id,"withFileMutation")});import{AsyncLocalStorage as KT}from"node:async_hooks";import Ze from"fs/promises";import $d from"path";async function le(e,t){try{let n=await Ze.readFile(e,"utf8"),r=JSON.parse(n);return t&&!t(r)?null:r}catch{return null}}function _e(e,t){process.env.KODAX_DEBUG_REPO_INTELLIGENCE&&F({source:"coding:repo-intelligence",level:"debug",message:e,...t!==void 0?{detail:t}:{}})}function zr(e){return HT.getStore()?.trim()||process.env.KODAX_REPO_INTELLIGENCE_STORAGE_DIR?.trim()||e}function tE(e){return Qd=(Qd+1)%Number.MAX_SAFE_INTEGER,`${e}.${process.pid}.${Date.now()}.${Qd}.tmp`}async function rE(e,t){for(let r=1;;r+=1)try{await Ze.rename(e,t);return}catch(i){let s=i?.code;if(r>=5||!s||!nE.has(s))throw i;await new Promise(a=>setTimeout(a,r*20))}}async function Ke(e,t){await Id(e,async()=>{let n=$d.dirname(e);await Ze.mkdir(n,{recursive:!0});let r=tE(e);try{await Ze.writeFile(r,`${JSON.stringify(t,null,2)}
1037
- `,"utf8"),await rE(r,e)}catch(i){throw await Ze.rm(r,{force:!0}).catch(()=>{}),i}await iE(n,$d.basename(e)).catch(()=>{})})}async function Co(e){await Id(e,async()=>{await Ze.mkdir(e,{recursive:!0})})}async function iE(e,t){let n=`${t}.`,r=Date.now(),i=await Ze.readdir(e);await Promise.all(i.filter(s=>s.startsWith(n)&&eE.test(s.slice(n.length))).map(async s=>{let a=$d.join(e,s);try{let c=await Ze.stat(a);r-c.mtimeMs>=JT&&await Ze.rm(a,{force:!0})}catch{}}))}var HT,JT,eE,Qd,nE,Mo=p(()=>{"use strict";$o();Mg();HT=new KT;o(le,"safeReadJson");o(_e,"debugLogRepoIntelligence");o(zr,"resolveRepoIntelligenceStorageDir");JT=3600*1e3,eE=/^\d+\.\d+(?:\.\d+)?\.tmp$/,Qd=0;o(tE,"nextAtomicTempPath");nE=new Set(["EPERM","EBUSY","EACCES"]);o(rE,"renameWithRetry");o(Ke,"writeJsonFileAtomic");o(Co,"ensureRepoIntelligenceStorageDir");o(iE,"sweepStaleTempFiles")});import en from"fs/promises";import A from"path";import{createHash as Cd}from"node:crypto";import{execFile as oE}from"child_process";import{promisify as sE}from"util";function tn(e){return typeof e=="object"&&e!==null}function wE(e){return tn(e)&&typeof e.id=="string"&&typeof e.label=="string"&&typeof e.kind=="string"&&typeof e.root=="string"&&typeof e.fileCount=="number"&&Array.isArray(e.manifests)&&Array.isArray(e.sampleFiles)}function SE(e){return tn(e)&&typeof e.schemaVersion=="number"&&typeof e.workspaceRoot=="string"&&(e.source==="git"||e.source==="filesystem")&&typeof e.generatedAt=="string"&&typeof e.truncated=="boolean"&&tn(e.fileStats)&&typeof e.fileStats.totalFiles=="number"&&typeof e.fileStats.sourceFiles=="number"&&typeof e.fileStats.docFiles=="number"&&typeof e.fileStats.testFiles=="number"&&typeof e.fileStats.configFiles=="number"&&Array.isArray(e.manifests)&&Array.isArray(e.keyDocs)&&Array.isArray(e.entryHints)&&Array.isArray(e.areas)&&e.areas.every(t=>wE(t))}function bE(e){return tn(e)&&typeof e.schemaVersion=="number"&&typeof e.workspaceRoot=="string"&&typeof e.overviewGeneratedAt=="string"&&(e.source==="git"||e.source==="filesystem")&&Array.isArray(e.allFiles)&&e.allFiles.every(t=>typeof t=="string")&&Array.isArray(e.sourceFiles)&&e.sourceFiles.every(t=>typeof t=="string")}function vE(e){return tn(e)&&(e.branch===void 0||typeof e.branch=="string")&&(e.head===void 0||typeof e.head=="string")&&(e.hasUncommittedChanges===void 0||typeof e.hasUncommittedChanges=="boolean")}function kE(e){return tn(e)&&typeof e.schemaVersion=="number"&&typeof e.generatedAt=="string"&&typeof e.workspaceRoot=="string"&&(e.git===null||vE(e.git))&&(e.snapshotKind==="clean"||e.snapshotKind==="dirty")&&(e.head===void 0||typeof e.head=="string")&&(e.branch===void 0||typeof e.branch=="string")&&(e.dirtyPathsFingerprint===void 0||typeof e.dirtyPathsFingerprint=="string")&&(e.dirtySemanticFingerprint===void 0||typeof e.dirtySemanticFingerprint=="string")}async function ue(e,t){return await Xa({cwd:t}),(await aE("git",e,{cwd:t,timeout:lE,windowsHide:!0,maxBuffer:8*1024*1024})).stdout.toString()}async function Ur(e){try{return await en.access(e),!0}catch{return!1}}async function jd(e){let t=Wo(e);return await Co(t),t}function L(e){return e.replace(/\\/g,"/").replace(/^\.\//,"")}function Bg(e){let t=Cd("sha256");for(let n of Array.from(e,r=>L(r)).sort((r,i)=>r.localeCompare(i)))t.update(n),t.update("|");return t.digest("hex")}function PE(e){return gE.has(A.posix.basename(L(e)))}function xE(e,t){if(e.length!==t.length)return!1;for(let n=0;n<e.length;n+=1)if(L(e[n]??"")!==L(t[n]??""))return!1;return!0}function nn(e){let t=L(e);return t===".agent"||t===".kodax"||uE.some(n=>t.startsWith(n))}async function _E(e){try{let t=(await ue(["rev-parse","--show-toplevel"],e)).trim();if(t)return{workspaceRoot:A.resolve(t),source:"git"}}catch{}return{workspaceRoot:A.resolve(e),source:"filesystem"}}async function TE(e){try{return(await en.stat(e)).isDirectory()?e:A.dirname(e)}catch{return e}}async function EE(e){let t=(await ue(["ls-files","-z"],e)).split("\0").filter(Boolean),n=(await ue(["ls-files","--others","--exclude-standard","-z"],e)).split("\0").filter(Boolean),r=Array.from(new Set([...t,...n].map(L).filter(i=>!nn(i))));return{files:r.slice(0,wt),truncated:r.length>wt}}async function Xg(e){let t=[],n=!1;async function r(i){if(t.length>=wt){n=!0;return}let s=await en.readdir(i,{withFileTypes:!0});for(let a of s){if(t.length>=wt){n=!0;return}if(a.isDirectory()){if(yE.has(a.name))continue;await r(A.join(i,a.name));continue}if(!a.isFile())continue;let c=L(A.relative(e,A.join(i,a.name)));nn(c)||t.push(c)}}return o(r,"walk"),await r(e),{files:t,truncated:n}}function RE(e){let t=L(e).toLowerCase();return t.split("/").some(r=>pE.has(r))?!0:/\.(test|spec)\.[^.]+$/.test(t)}function Mn(e){let t=L(e),n=A.extname(t).toLowerCase(),r=A.posix.basename(t);return Xd.has(r)?"config":t.startsWith("docs/")||Gg.has(t)||Yg.has(n)?"docs":RE(t)?"tests":fE.has(n)?"source":"other"}async function Zg(e,t){if(t===".")return"Workspace Root";let n=A.join(e,t,"package.json"),r=A.join(e,t,"pyproject.toml"),i=A.join(e,t,"Cargo.toml");if(await Ur(n))try{let s=JSON.parse(await en.readFile(n,"utf8"));if(s.name?.trim())return s.name.trim()}catch{}for(let s of[r,i])if(await Ur(s))try{let c=(await en.readFile(s,"utf8")).match(/^\s*name\s*=\s*["']([^"']+)["']/m);if(c?.[1])return c[1]}catch{}return A.posix.basename(t)}async function IE(e,t){let n=new Map;for(let i of t){let a=L(i).split("/");if(a.length===1){n.set(".","root");continue}if(hE.has(a[0]??"")&&a[1]){n.set(`${a[0]}/${a[1]}`,"package");continue}let c=mE.get(a[0]??"");c&&n.set(a[0],c)}n.size===0&&n.set(".","root");let r=[];for(let[i,s]of Array.from(n.entries()).sort((a,c)=>a[0].localeCompare(c[0]))){let a=i==="."?"":`${i}/`,c=t.filter(l=>i==="."?!l.includes("/"):l===i||l.startsWith(a)).sort((l,f)=>l.localeCompare(f)),d=c.filter(l=>!(i==="."?l:l.slice(a.length)).includes("/")&&Xd.has(A.posix.basename(l)));r.push({id:i,label:await Zg(e,i),kind:s,root:i,fileCount:c.length,manifests:d.slice(0,Md),sampleFiles:c.slice(0,Md)})}return r.sort((i,s)=>s.fileCount!==i.fileCount?s.fileCount-i.fileCount:i.root.localeCompare(s.root))}async function jg(e,t){if(t==="git")try{let[n,r,i]=await Promise.all([ue(["branch","--show-current"],e),ue(["rev-parse","HEAD"],e),ue(["status","--short"],e)]);return{branch:n.trim()||void 0,head:r.trim()||void 0,hasUncommittedChanges:i.trim().length>0}}catch{return}}async function Vr(e,t){if(t==="git")try{return await EE(e)}catch{return Xg(e)}return Xg(e)}async function Xo(e,t){let n=await Hg(e,zg);return!n||n.schemaVersion!==he||t&&n.overviewGeneratedAt!==t?null:n}async function Wg(e){let n=(await ue(["status","--porcelain=v1","-z","--untracked-files=all"],e)).split("\0"),r=new Set;for(let i=0;i<n.length;i+=1){let s=n[i];if(!s||s.length<4)continue;let a=s.slice(0,2),c=L(s.slice(3));if(c&&!nn(c)&&r.add(c),a.includes("R")||a.includes("C")){let d=L(n[i+1]??"");d&&!nn(d)&&r.add(d),i+=1}}return Array.from(r).sort((i,s)=>i.localeCompare(s))}async function Kg(e,t){return le(Wo(e,t),SE)}async function Hg(e,t){return le(Wo(e,t),bE)}async function QE(e){return le(Wo(e,Lg),kE)}async function $E(e,t){let n=Cd("sha256");n.update(Bg(t));for(let r of t){let i=A.join(e,r);n.update(r),n.update(":");try{if(await en.stat(i),n.update("present:"),PE(r)){let s=await en.readFile(i,"utf8");n.update(Cd("sha256").update(s).digest("hex"))}}catch(s){let a=tn(s)&&typeof s.code=="string"?s.code:void 0;n.update(a==="ENOENT"?"missing":"unreadable")}n.update("|")}return n.digest("hex")}async function Dg(e,t){let n=t.map(r=>L(r)).sort((r,i)=>r.localeCompare(i));return{dirtyPaths:n,dirtyPathsFingerprint:Bg(n),dirtySemanticFingerprint:await $E(e,n)}}async function AE(e,t,n){let r=new Set(t.map(i=>L(i)));for(let i of n){let s=A.join(e,i);await Ur(s)?r.add(i):r.delete(i)}return Array.from(r).sort((i,s)=>i.localeCompare(s))}async function Jg(e,t,n,r,i){let s=n.map(c=>L(c)),a={schemaVersion:he,workspaceRoot:e,source:t,generatedAt:new Date().toISOString(),truncated:r,git:i,fileStats:{totalFiles:s.length,sourceFiles:s.filter(c=>Mn(c)==="source").length,docFiles:s.filter(c=>Mn(c)==="docs").length,testFiles:s.filter(c=>Mn(c)==="tests").length,configFiles:s.filter(c=>Mn(c)==="config").length},manifests:s.filter(c=>Xd.has(A.posix.basename(c))).slice(0,12),keyDocs:s.filter(c=>Gg.has(c)||/^README/i.test(A.posix.basename(c))&&Yg.has(A.extname(c).toLowerCase())).slice(0,8),entryHints:s.filter(c=>OE.includes(A.posix.basename(c))).slice(0,8),areas:await IE(e,s)};return{overview:a,inventory:{schemaVersion:he,workspaceRoot:e,overviewGeneratedAt:a.generatedAt,source:t,allFiles:[...s].sort((c,d)=>c.localeCompare(d)),sourceFiles:s.filter(c=>Mn(c)==="source").sort((c,d)=>c.localeCompare(d))}}}async function eO(e,t,n,r={}){let i={schemaVersion:he,generatedAt:t.generatedAt,workspaceRoot:t.workspaceRoot,git:t.git??null,snapshotKind:t.source==="git"&&t.git?.hasUncommittedChanges===!0?"dirty":"clean",head:t.git?.head,branch:t.git?.branch,dirtyPathsFingerprint:r.dirtyIdentity?.dirtyPathsFingerprint,dirtySemanticFingerprint:r.dirtyIdentity?.dirtySemanticFingerprint};await Ke(A.join(e,Lg),i),await Ke(A.join(e,qg),t),await Ke(A.join(e,zg),n),r.writeBaseline===!0&&(await Ke(A.join(e,Ug),t),await Ke(A.join(e,Vg),n))}function CE(e,t,n){return!!(n?.hasUncommittedChanges===!0&&e&&t&&e.schemaVersion===he&&t.schemaVersion===he&&e.source==="git"&&t.source==="git"&&e.git?.hasUncommittedChanges!==!0&&e.git?.head&&e.git?.head===n.head&&e.git?.branch===n.branch&&t.workspaceRoot===e.workspaceRoot&&t.overviewGeneratedAt===e.generatedAt)}function ME(e,t,n,r){return!!(e&&t&&e.schemaVersion===he&&t.schemaVersion===he&&e.source==="git"&&e.generatedAt===t.generatedAt&&e.workspaceRoot===t.workspaceRoot&&t.snapshotKind==="dirty"&&n?.hasUncommittedChanges===!0&&t.head===n.head&&t.branch===n.branch&&t.dirtyPathsFingerprint===r.dirtyPathsFingerprint&&t.dirtySemanticFingerprint===r.dirtySemanticFingerprint)}async function XE(e,t,n){let r=await Kg(e,Ug),i=await Hg(e,Vg);if(!CE(r,i,t))return null;let s=i,{dirtyPaths:a}=n,c=new Set(s.allFiles);if(r.truncated)for(let k of a){let O=A.join(e,k);if(!c.has(k)||await Ur(O)===!1)return null}let d=new Set(c);for(let k of a){let O=A.join(e,k);await Ur(O)?d.add(k):d.delete(k)}let l=Array.from(d).sort((k,O)=>k.localeCompare(O)),f=r.truncated||l.length>wt,u=f?l.slice(0,wt):l,{overview:m,inventory:g}=await Jg(e,"git",u,f,t),w=await jd(e);return await eO(w,m,g,{dirtyIdentity:n}),m}async function jE(e,t,n,r,i){if(!t||!n||t.schemaVersion!==he||t.source!=="filesystem"||n.schemaVersion!==he||n.source!=="filesystem"||n.workspaceRoot!==e||n.overviewGeneratedAt!==t.generatedAt||t.truncated!==i)return!1;let s=r.map(a=>L(a)).sort((a,c)=>a.localeCompare(c));if(!xE(n.allFiles,s))return!1;for(let a of t.areas)if(await Zg(e,a.root)!==a.label)return!1;return!0}async function Ad(e,t,n,r,i){let{files:s,truncated:a}=i??await Vr(e,t),c=t==="git"&&r?.dirtyPaths.length?await AE(e,s,r.dirtyPaths):s.map(g=>L(g)),d=a||c.length>wt,l=d?c.slice(0,wt):c,f=await jd(e),{overview:u,inventory:m}=await Jg(e,t,l,d,n);return await eO(f,u,m,{writeBaseline:t==="git"&&n?.hasUncommittedChanges!==!0,dirtyIdentity:r}),{workspaceRoot:e,source:t,overview:u,inventory:m,dirtyPaths:r?.dirtyPaths}}async function rn(e,t={}){let n=Eg(e),r=await TE(t.targetPath?A.resolve(n,t.targetPath):n),{workspaceRoot:i,source:s}=await _E(r),a=await Kg(i,qg),c=await QE(i),d,l;if(!t.refresh){if(d=await jg(i,s),s!=="git"){let u=a?.schemaVersion===he?await Xo(i,a.generatedAt):null,m=await Vr(i,s);return await jE(i,a,u,m.files,m.truncated)?{workspaceRoot:i,source:s,overview:a,inventory:u}:Ad(i,s,d,void 0,m)}if(s==="git"&&a?.schemaVersion===he&&a.source==="git"&&d?.hasUncommittedChanges!==!0&&a.git?.head===d?.head&&a.git?.branch===d?.branch&&a.git?.hasUncommittedChanges===d?.hasUncommittedChanges&&a)return{workspaceRoot:i,source:s,overview:a,inventory:await Xo(i,a.generatedAt)};if(s==="git"&&d?.hasUncommittedChanges===!0){let u=await Wg(i).catch(m=>(_e("Could not collect dirty workspace paths for repo overview.",m),null));if(u){if(l=await Dg(i,u),ME(a,c,d,l))return{workspaceRoot:i,source:s,overview:a,inventory:await Xo(i,a.generatedAt),dirtyPaths:l.dirtyPaths};let m=await XE(i,d,l);if(m)return{workspaceRoot:i,source:s,overview:m,inventory:await Xo(i,m.generatedAt),dirtyPaths:l.dirtyPaths}}}return Ad(i,s,d,l)}if(d=await jg(i,s),s==="git"&&d?.hasUncommittedChanges===!0){let f=await Wg(i).catch(u=>(_e("Could not collect dirty workspace paths for refreshed repo overview.",u),null));f&&(l=await Dg(i,f))}return Ad(i,s,d,l)}function Ng(e){return e.includes("R")?"renamed":e.includes("D")?"deleted":e.includes("A")?"added":e==="??"?"untracked":"modified"}function WE(e){if(e.length<4)return null;let t=e.slice(0,2),n=L(e.slice(3)),r=t[0]!==" "&&t[0]!=="?",i=t[1]!==" "&&t[1]!=="?";return{status:t,path:n,staged:r,unstaged:i||t==="??"}}function DE(e,t){return e?t==="staged"?e.staged:t==="unstaged"?e.unstaged:e.staged||e.unstaged:!1}function Fg(e,t){let n=L(e),r=[...t].sort((i,s)=>s.root.length-i.root.length);for(let i of r)if(i.root!=="."&&(n===i.root||n.startsWith(`${i.root}/`)))return i;return t.find(i=>i.root===".")??{id:".",label:"Workspace Root",kind:"root",root:".",fileCount:0,manifests:[],sampleFiles:[]}}function NE(e,t){let n=[];t.length>1&&n.push(`Cross-area change touches ${t.length} areas.`);let r=e.filter(s=>s.category==="config").map(s=>s.path);return r.length>0&&n.push(`Config or manifest changes detected: ${r.slice(0,4).join(" | ")}.`),e.length>0&&e.every(s=>s.category==="docs"||s.category==="tests")&&n.push("Changes are currently limited to docs/tests; implementation files are untouched."),e.some(s=>s.areaId===".")&&n.push("Workspace-root files changed; validate repo-wide implications."),n}async function FE(e,t,n){if(t==="compare"){let a=n?.trim()||"HEAD~1";if(!a||a.startsWith("-")||/[\u0000-\u001f\s]/.test(a))throw new Error(`Invalid base ref "${a}".`);try{await ue(["rev-parse","--verify","--quiet",`${a}^{commit}`],e)}catch(f){throw _e(`Rejected compare base ref "${a}".`,f),new Error(`Could not resolve base ref "${a}".`)}let d=(await ue(["diff","--name-status","-z",`${a}...HEAD`],e)).split("\0"),l=[];for(let f=0;f<d.length-1;){let u=d[f++],m=d[f++];(u.startsWith("R")||u.startsWith("C"))&&(m=d[f++]);let g=L(m);nn(g)||l.push({path:g,status:Ng(u)})}return l}let i=(await ue(["status","--porcelain=v1","-z","--untracked-files=all"],e)).split("\0"),s=new Map;for(let a=0;a<i.length;a+=1){let c=WE(i[a]);c&&((c.status.includes("R")||c.status.includes("C"))&&(a+=1),!(!DE(c,t)||nn(c.path))&&s.set(c.path,{path:c.path,status:Ng(c.status)}))}return Array.from(s.values())}async function LE(e,t,n){let r="";if(t==="compare"){let a=n?.trim()||"HEAD~1";r=await ue(["diff","--numstat",`${a}...HEAD`],e)}else t==="staged"?r=await ue(["diff","--cached","--numstat"],e):t==="unstaged"?r=await ue(["diff","--numstat"],e):r=await ue(["diff","--numstat","HEAD"],e);let i=0,s=0;for(let a of r.split(/\r?\n/)){let c=a.trim();if(!c)continue;let d=c.match(/^(\d+|-)\s+(\d+|-)\s+(.+)$/);if(!d)continue;let[,l,f,u]=d,m=L(u.split(" -> ").pop()??u);if(nn(m))continue;let g=l==="-"?0:Number.parseInt(l,10),w=f==="-"?0:Number.parseInt(f,10);Number.isFinite(g)&&(i+=g),Number.isFinite(w)&&(s+=w)}return{changedLineCount:i+s,addedLineCount:i,deletedLineCount:s}}async function jo(e,t={}){let n=t.scope??"all",r=e.overview;if(r.source!=="git")throw new Error("changed_scope requires a git-backed workspace.");let i=await FE(r.workspaceRoot,n,t.baseRef),s=await LE(r.workspaceRoot,n,t.baseRef).catch(u=>(_e("Changed scope could not load line stats.",u),{changedLineCount:0,addedLineCount:0,deletedLineCount:0})),a=i.map(u=>{let m=Fg(u.path,r.areas);return{path:u.path,status:u.status,category:Mn(u.path),areaId:m.id}}),c=new Map;for(let u of a){let m=Fg(u.path,r.areas),g=c.get(m.id)??{areaId:m.id,label:m.label,root:m.root,kind:m.kind,fileCount:0,files:[]};c.set(m.id,{...g,fileCount:g.fileCount+1,files:g.files.length<Md?[...g.files,u.path]:g.files})}let d={source:0,docs:0,tests:0,config:0,other:0};for(let u of a)d[u.category]+=1;let l={schemaVersion:he,workspaceRoot:r.workspaceRoot,analyzedAt:new Date().toISOString(),scope:n,baseRef:n==="compare"?t.baseRef?.trim()||"HEAD~1":void 0,overviewGeneratedAt:r.generatedAt,totalChangedFiles:a.length,changedLineCount:s.changedLineCount,addedLineCount:s.addedLineCount,deletedLineCount:s.deletedLineCount,categories:d,areasTouched:Array.from(c.values()).sort((u,m)=>m.fileCount!==u.fileCount?m.fileCount-u.fileCount:u.root.localeCompare(m.root)),files:a,riskHints:NE(a,Array.from(c.values()))},f=await jd(r.workspaceRoot);return await Ke(A.join(f,dE),l),l}function qE(){return zr(cE)}function Wo(e,...t){let n=qE(),r=A.isAbsolute(n)?n:A.join(e,n);return A.join(r,...t)}var aE,cE,Lg,qg,zg,Ug,Vg,dE,he,wt,Md,lE,uE,fE,Yg,pE,mE,hE,Xd,gE,Gg,OE,yE,tO=p(()=>{"use strict";$o();Rg();Mo();aE=sE(oE),cE=A.join(".agent","repo-intelligence"),Lg="manifest.json",qg="repo-overview.json",zg="repo-overview-inventory.json",Ug="repo-overview-baseline.json",Vg="repo-overview-inventory-baseline.json",dE="changed-scope.json",he=3,wt=12e3,Md=3,lE=5e3,uE=[".agent/",".kodax/"],fE=new Set([".ts",".tsx",".js",".jsx",".mjs",".cjs",".py",".java",".go",".rs",".cpp",".cc",".cxx",".c",".hpp",".h",".cs",".rb",".php",".swift",".kt",".kts",".scala",".sh"]),Yg=new Set([".md",".mdx",".rst",".txt"]),pE=new Set(["test","tests","__tests__","__mocks__","spec","specs"]),mE=new Map([["docs","docs"],["test","tests"],["tests","tests"],["scripts","scripts"],["bin","scripts"],["tools","scripts"],["src","directory"],["server","directory"],["client","directory"],["web","directory"],["api","directory"],["cmd","directory"],["examples","directory"],["example","directory"]]),hE=new Set(["packages","apps","libs","services"]),Xd=new Set(["package.json","package-lock.json","pnpm-lock.yaml","pnpm-workspace.yaml","yarn.lock","tsconfig.json","tsconfig.build.json","vitest.config.ts","vitest.config.js","vite.config.ts","vite.config.js","pyproject.toml","requirements.txt","Cargo.toml","Cargo.lock","go.mod","go.sum","pom.xml","build.gradle","build.gradle.kts","Makefile","Dockerfile"]),gE=new Set(["package.json","pyproject.toml","Cargo.toml"]),Gg=new Set(["README.md","README_CN.md","AGENTS.md","CLAUDE.md","docs/HLD.md","docs/PRD.md","docs/ADR.md","docs/DD.md","docs/FEATURE_LIST.md"]),OE=["index.ts","index.js","main.ts","main.js","app.ts","app.js","server.ts","server.js","cli.ts","cli.js","kodax_cli.ts","main.py"],yE=new Set([".git",".agent",".kodax","node_modules","dist","build","coverage",".next",".turbo","target","__pycache__",".venv","venv"]);o(tn,"isRecord");o(wE,"isRepoAreaOverview");o(SE,"isRepoOverviewPayload");o(bE,"isRepoOverviewInventoryPayload");o(vE,"isGitSummaryPayload");o(kE,"isRepoOverviewManifestPayload");o(ue,"runGit");o(Ur,"exists");o(jd,"ensureStorageDir");o(L,"normalizeRelativePath");o(Bg,"computePathFingerprint");o(PE,"isAreaLabelSensitiveManifestPath");o(xE,"sameNormalizedPathList");o(nn,"isManagedMetadataPath");o(_E,"resolveWorkspaceRoot");o(TE,"resolveTargetDirectory");o(EE,"listGitFiles");o(Xg,"walkFilesystemFiles");o(RE,"isTestFile");o(Mn,"classifyFileCategory");o(Zg,"readAreaLabel");o(IE,"buildAreas");o(jg,"getGitSummary");o(Vr,"collectWorkspaceFilesForSource");o(Xo,"readRepoOverviewInventory");o(Wg,"collectWorkspaceDirtyPaths");o(Kg,"readStoredRepoOverview");o(Hg,"readStoredRepoOverviewInventory");o(QE,"readStoredRepoOverviewManifest");o($E,"computeDirtySemanticFingerprint");o(Dg,"buildDirtyOverviewIdentity");o(AE,"applyDirtyPathPatchToFiles");o(Jg,"buildRepoOverviewArtifacts");o(eO,"writeRepoOverviewArtifacts");o(CE,"canUseOverviewBaseline");o(ME,"canDirectReuseDirtyOverview");o(XE,"tryBuildDirtyRepoOverviewFromBaseline");o(jE,"canDirectReuseFilesystemOverview");o(Ad,"buildRepoOverviewSnapshotForWorkspace");o(rn,"resolveRepoOverviewSnapshot");o(Ng,"resolveChangedStatus");o(WE,"parsePorcelainEntry");o(DE,"includesCandidate");o(Fg,"findAreaForFile");o(NE,"buildRiskHints");o(FE,"collectChangedFiles");o(LE,"collectChangedLineStats");o(jo,"analyzeChangedScopeFromSnapshot");o(qE,"getRepoIntelligenceDir");o(Wo,"resolveRepoIntelligencePath")});var Do=p(()=>{"use strict";tO();Mo()});import zE from"fs/promises";import Yr from"path";import{createHash as No}from"node:crypto";function De(e){return typeof e=="object"&&e!==null}function Wn(e){return De(e)&&typeof e.schemaVersion=="number"&&typeof e.workspaceRoot=="string"&&typeof e.generatedAt=="string"&&typeof e.overviewGeneratedAt=="string"&&typeof e.sourceFileCount=="number"&&typeof e.sourceFingerprint=="string"&&Array.isArray(e.languages)&&Array.isArray(e.modules)&&Array.isArray(e.symbols)&&Array.isArray(e.processes)}function sO(e){return e==="typescript"||e==="javascript"||e==="python"||e==="java"||e==="go"||e==="rust"||e==="cpp"||e==="unknown"}function VE(e){return e==="high"||e==="medium"||e==="low"}function YE(e){return e==="function"||e==="class"||e==="interface"||e==="type"||e==="enum"||e==="struct"||e==="trait"||e==="method"||e==="constant"}function GE(e){return De(e)&&sO(e.language)&&VE(e.capabilityTier)&&typeof e.fileCount=="number"}function BE(e){return De(e)&&typeof e.filePath=="string"&&typeof e.fileFingerprint=="string"&&sO(e.language)&&typeof e.moduleId=="string"&&typeof e.analyzerVersion=="number"}function ZE(e){return De(e)&&(e.source==="git"||e.source==="filesystem")&&(e.branch===void 0||typeof e.branch=="string")&&(e.head===void 0||typeof e.head=="string")&&(e.hasUncommittedChanges===void 0||typeof e.hasUncommittedChanges=="boolean")}function aO(e){return De(e)&&typeof e.schemaVersion=="number"&&typeof e.workspaceRoot=="string"&&typeof e.generatedAt=="string"&&typeof e.overviewGeneratedAt=="string"&&typeof e.overviewFingerprint=="string"&&ZE(e.workspaceSnapshot)&&typeof e.sourceFileCount=="number"&&typeof e.sourceFingerprint=="string"&&Array.isArray(e.languageBreakdown)&&e.languageBreakdown.every(t=>GE(t))&&Array.isArray(e.sourceStates)&&e.sourceStates.every(t=>BE(t))}function KE(e){return De(e)&&typeof e.id=="string"&&typeof e.name=="string"&&typeof e.qualifiedName=="string"&&YE(e.kind)&&typeof e.line=="number"&&typeof e.signature=="string"&&typeof e.exported=="boolean"&&Array.isArray(e.calls)&&e.calls.every(t=>typeof t=="string")&&typeof e.confidence=="number"}function HE(e){return De(e)&&Array.isArray(e.importPaths)&&e.importPaths.every(t=>typeof t=="string")&&Array.isArray(e.symbols)&&e.symbols.every(t=>KE(t))}function cO(e){return De(e)&&typeof e.schemaVersion=="number"&&typeof e.workspaceRoot=="string"&&typeof e.generatedAt=="string"&&typeof e.sourceFingerprint=="string"&&De(e.analyses)&&Object.values(e.analyses).every(t=>t===null||HE(t))}function dO(e){return De(e)&&typeof e.schemaVersion=="number"&&typeof e.workspaceRoot=="string"&&(e.branch===void 0||typeof e.branch=="string")&&(e.head===void 0||typeof e.head=="string")&&typeof e.queryGeneratedAt=="string"&&typeof e.overviewFingerprint=="string"&&typeof e.sourceFingerprint=="string"&&typeof e.sourceFileCount=="number"&&typeof e.dirtyPathsFingerprint=="string"&&typeof e.dirtySourceFingerprint=="string"&&Array.isArray(e.dirtySourcePaths)&&e.dirtySourcePaths.every(t=>typeof t=="string")}function U(e){return e.replace(/\\/g,"/").replace(/^\.\//,"")}function ie(e){switch(Yr.extname(e).toLowerCase()){case".ts":case".tsx":return"typescript";case".js":case".jsx":case".mjs":case".cjs":return"javascript";case".py":return"python";case".java":return"java";case".go":return"go";case".rs":return"rust";case".cpp":case".cc":case".cxx":case".c":case".hpp":case".h":return"cpp";default:return"unknown"}}function fe(e){switch(e){case"typescript":case"javascript":case"python":case"go":case"rust":return"high";case"java":return"medium";default:return"low"}}function lO(e,t="full"){return(e==="typescript"||e==="javascript")&&t==="light"?2:1}function He(e){switch(e){case"high":return .86;case"medium":return .74;default:return .58}}function uO(e,t){if(e.length>0){let r=e.reduce((i,s)=>i+s.confidence,0);return Math.min(.95,Math.max(.32,r/e.length))}let n=t[0];return n?He(n.capabilityTier):.4}async function zo(e){try{return await zE.access(e),!0}catch{return!1}}async function Uo(e,t="full"){let n=JE(),r=Yr.isAbsolute(n)?n:Yr.join(e,n),i=t==="light"?Yr.join(r,"light"):r;return await Co(i),i}function fO(e,t,n){return No("sha256").update(U(e)).update(":").update(String(t)).update(":").update(String(Math.trunc(n))).digest("hex")}function Dn(e){let t=No("sha256");for(let n of e)t.update(n.filePath),t.update(":"),t.update(n.fileFingerprint),t.update("|");return t.digest("hex")}function Vo(e,t){let n=No("sha256");n.update(e.workspaceRoot),n.update("|"),n.update(e.source),n.update("|");for(let r of e.areas)n.update(r.id),n.update(":"),n.update(r.label),n.update(":"),n.update(r.kind),n.update(":"),n.update(r.root),n.update(":"),n.update(String(r.fileCount)),n.update(":"),n.update(r.manifests.join(",")),n.update(":"),n.update(r.sampleFiles.join(",")),n.update("|");for(let r of t)n.update(r),n.update("|");return n.digest("hex")}function Gr(e){let t=No("sha256");for(let n of Array.from(e,r=>U(r)).sort((r,i)=>r.localeCompare(i)))t.update(n),t.update("|");return t.digest("hex")}function Yo(e){return{source:e.source,branch:e.git?.branch,head:e.git?.head,hasUncommittedChanges:e.git?.hasUncommittedChanges}}function Go(e){return e.source==="git"&&e.hasUncommittedChanges!==!0}function Wd(e,t){return e.source===t.source&&e.branch===t.branch&&e.head===t.head&&e.hasUncommittedChanges===t.hasUncommittedChanges}function pO(e){return e.workspaceSnapshot.source!=="git"||Go(e.workspaceSnapshot)}function mO(e){return(e.dirtyPaths??[]).filter(t=>e.sourceFileSet.has(t)).sort((t,n)=>t.localeCompare(n))}async function vt(e,t){return Ke(e,t)}function hO(e){let t=U(e).toLowerCase();return t.includes("/test/")||t.includes("/tests/")||t.includes("__tests__")||/\.(test|spec)\.[^.]+$/.test(t)}function gO(e){let t=U(e).toLowerCase();return t.startsWith("docs/")||t.endsWith(".md")||t.endsWith(".mdx")||t.endsWith(".rst")}function Ee(e,t){let n=U(e),r=[...t].sort((i,s)=>s.root.length-i.root.length);for(let i of r)if(i.root!=="."&&(n===i.root||n.startsWith(`${i.root}/`)))return i;return t.find(i=>i.root===".")??{id:".",label:"Workspace Root",kind:"root",root:".",fileCount:0,manifests:[],sampleFiles:[]}}function ge(e,t=e.length){return Array.from(new Set(e.filter(Boolean))).slice(0,t)}function Br(e,t){let n=[],r=e.split(/\r?\n/);for(let i of r){let s=null;if(t==="typescript"||t==="javascript"){s=/from\s+['"]([^'"]+)['"]/.exec(i)??/require\(\s*['"]([^'"]+)['"]\s*\)/.exec(i)??/^\s*import\s+['"]([^'"]+)['"]/.exec(i),s?.[1]&&n.push(s[1]);continue}if(t==="python"){if(s=/^\s*from\s+([A-Za-z0-9_\.]+)\s+import/.exec(i),s?.[1]){n.push(s[1]);continue}s=/^\s*import\s+(.+)$/.exec(i),s?.[1]&&n.push(...s[1].split(",").map(a=>a.trim().split(/\s+/)[0]??"").filter(Boolean));continue}if(t==="go"){s=/^\s*import\s+"([^"]+)"/.exec(i)??/^\s*"([^"]+)"/.exec(i),s?.[1]&&n.push(s[1]);continue}if(t==="rust"){s=/^\s*use\s+([^;]+);/.exec(i),s?.[1]&&n.push(s[1].trim());continue}if(t==="java"){s=/^\s*import\s+([^;]+);/.exec(i),s?.[1]&&n.push(s[1].trim());continue}t==="cpp"&&(s=/^\s*#include\s+[<"]([^">]+)[">]/.exec(i),s?.[1]&&n.push(s[1].trim()))}return ge(n,12)}function JE(){return zr(UE)}var UE,St,Fo,Lo,qo,nO,rO,iO,te,Xn,bt,oO,Te,jn,Ne,kt=p(()=>{"use strict";Mo();UE=Yr.join(".agent","repo-intelligence"),St="repo-intelligence-index.json",Fo="repo-intelligence-manifest.json",Lo="file-analysis-index.json",qo="repo-intelligence-dirty-source-hint.json",nO="module-index.json",rO="symbol-index.json",iO="process-index.json",te=9,Xn=512*1024,bt=40,oO=8,Te=8,jn=new Set([".ts",".tsx",".js",".jsx",".mjs",".cjs",".py",".java",".go",".rs",".cpp",".cc",".cxx",".c",".hpp",".h"]),Ne=new Set(["if","for","while","switch","catch","return","typeof","sizeof","new","function","class","def","await","yield","super","import","from"]);o(De,"isRecord");o(Wn,"isRepoIntelligenceIndexPayload");o(sO,"isRepoLanguageId");o(VE,"isLanguageCapabilityTier");o(YE,"isRepoSymbolKind");o(GE,"isRepoLanguageSupportPayload");o(BE,"isRepoSourceFileStatePayload");o(ZE,"isRepoWorkspaceSnapshotPayload");o(aO,"isRepoIntelligenceManifestPayload");o(KE,"isCachedRepoSymbolRecordPayload");o(HE,"isCachedFileAnalysisEntryPayload");o(cO,"isFileAnalysisIndexPayload");o(dO,"isDirtySourceHintPayload");o(U,"normalizeRelativePath");o(ie,"languageFromFile");o(fe,"capabilityTierForLanguage");o(lO,"analyzerVersionForLanguage");o(He,"baseConfidenceForTier");o(uO,"computeModuleConfidence");o(zo,"exists");o(Uo,"ensureStorageDir");o(fO,"computeFileFingerprint");o(Dn,"computeSourceFingerprint");o(Vo,"computeOverviewFingerprint");o(Gr,"computePathFingerprint");o(Yo,"workspaceSnapshotFromOverview");o(Go,"isCleanGitSnapshot");o(Wd,"sameWorkspaceSnapshot");o(pO,"shouldPersistRepoIntelligenceBaseline");o(mO,"getDirtySourcePathsForInputs");o(vt,"writeJsonFileAtomic");o(hO,"isTestFile");o(gO,"isDocFile");o(Ee,"findAreaForFile");o(ge,"dedupeStrings");o(Br,"extractImports");o(JE,"getRepoIntelligenceDir")});import Dd from"path";import eR from"fs/promises";function OO(e,t){let n=new Map,r=new Map,i=new Map,s=new Map;for(let a of e){let c=Ee(a,t);n.set(a,c);let d=r.get(c.id)??[];if(d.push(a),r.set(c.id,d),hO(a)){let l=i.get(c.id)??[];l.push(a),i.set(c.id,l)}if(gO(a)){let l=s.get(c.id)??[];l.push(a),s.set(c.id,l)}}return{areaByFile:n,filesByAreaId:r,testFilesByAreaId:i,docFilesByAreaId:s}}async function yO(e,t="full"){let n=e.workspaceRoot,r=await Uo(n,t),i=Yo(e.overview),s=e.dirtyPaths?Array.from(new Set(e.dirtyPaths.map(f=>U(f)))).sort((f,u)=>f.localeCompare(u)):void 0,a=s?Gr(s):void 0,c=(s??[]).filter(f=>jn.has(Dd.extname(f).toLowerCase())).sort((f,u)=>f.localeCompare(u)),d=[];for(let f of c)await zo(Dd.join(n,f))&&d.push(f);let l=d.length>0?await Nn(n,d,new Map,e.overview.areas,t):void 0;return{analysisProfile:t,workspaceRoot:n,storageRoot:r,workspaceSnapshot:i,overviewGeneratedAt:e.overview.generatedAt,overviewFingerprint:Vo(e.overview,e.inventory?.allFiles??e.overview.areas.flatMap(f=>f.sampleFiles)),dirtyPaths:s,dirtyPathsFingerprint:a,dirtySourcePaths:c,dirtySourceStateMap:l,dirtySourceFingerprint:s?Dn(l?Array.from(l.values()).sort((f,u)=>f.filePath.localeCompare(u.filePath)):[]):void 0}}async function Nd(e,t,n,r,i="full"){let s=[];for(let a of t){let c=U(a),d=await eR.stat(Dd.join(e,c)),l=ie(c);s.push({filePath:c,fileFingerprint:fO(c,d.size,d.mtimeMs),language:l,moduleId:n.get(c)?.id??Ee(c,r).id,analyzerVersion:lO(l,i)})}return s.sort((a,c)=>a.filePath.localeCompare(c.filePath))}async function Nn(e,t,n,r,i="full"){let s=Array.from(new Set(Array.from(t,c=>U(c)))).sort((c,d)=>c.localeCompare(d)),a=await Nd(e,s,n,r,i);return new Map(a.map(c=>[c.filePath,c]))}function wO(e){return e?{importPaths:e.importPaths,symbols:e.symbols.map(t=>({id:t.id,name:t.name,qualifiedName:t.qualifiedName,kind:t.kind,line:t.line,signature:t.signature,exported:t.exported,calls:t.calls,confidence:t.confidence}))}:null}function SO(e,t,n){return n?{filePath:e,moduleId:t.moduleId,language:t.language,capabilityTier:fe(t.language),importPaths:n.importPaths,symbols:n.symbols.map(r=>({...r,filePath:e,moduleId:t.moduleId,language:t.language,capabilityTier:fe(t.language),importPaths:n.importPaths,callTargets:[]}))}:null}function Fd(e){return{typeScriptFiles:e.filter(t=>on(ie(t))),pythonFiles:e.filter(t=>ie(t)==="python"),goFiles:e.filter(t=>ie(t)==="go"),rustFiles:e.filter(t=>ie(t)==="rust"),fallbackFiles:e.filter(t=>{let n=ie(t);return!on(n)&&n!=="python"&&n!=="go"&&n!=="rust"})}}function on(e){return e==="typescript"||e==="javascript"}var Zr=p(()=>{"use strict";kt();o(OO,"buildAreaFileLookups");o(yO,"buildRepoIntelligencePreflight");o(Nd,"collectSourceFileStates");o(Nn,"collectSourceFileStateMap");o(wO,"serializeCachedFileAnalysisEntry");o(SO,"hydrateCachedFileAnalysis");o(Fd,"bucketSourceFiles");o(on,"isTypeScriptLikeLanguage")});function PO(e,t,n,r){switch(e){case-2:return n<t;case-1:return r>=t&&n<t;case 0:return n<t&&r>t;case 1:return n<=t&&r>t;case 2:return r>t;case 4:return!0}}function Hr(e,t,n,r){for(var i;e.from==e.to||(n<1?e.from>=t:e.from>t)||(n>-1?e.to<=t:e.to<t);){let a=!r&&e instanceof Fe&&e.index<0?null:e.parent;if(!a)return e;e=a}let s=r?0:q.IgnoreOverlays;if(r)for(let a=e,c=a.parent;c;a=c,c=a.parent)a instanceof Fe&&a.index<0&&((i=c.enter(t,n,s))===null||i===void 0?void 0:i.from)!=a.from&&(e=c);for(;;){let a=e.enter(t,n,s);if(!a)return e;e=a}}function vO(e,t,n,r){let i=e.cursor(),s=[];if(!i.firstChild())return s;if(n!=null){for(let a=!1;!a;)if(a=i.type.is(n),!i.nextSibling())return s}for(;;){if(r!=null&&i.type.is(r))return s;if(i.type.is(t)&&s.push(i.node),!i.nextSibling())return r==null?s:[]}}function qd(e,t,n=t.length-1){for(let r=e;n>=0;r=r.parent){if(!r)return!1;if(!r.type.isAnonymous){if(t[n]&&t[n]!=r.name)return!1;n--}}return!0}function xO(e){if(!e.length)return null;let t=0,n=e[0];for(let s=1;s<e.length;s++){let a=e[s];(a.from>n.from||a.to<n.to)&&(n=a,t=s)}let r=n instanceof Fe&&n.index<0?null:n.parent,i=e.slice();return r?i[t]=r:i.splice(t,1),new Ud(i,n)}function rR(e,t,n){let r=e.resolveInner(t,n),i=null;for(let s=r instanceof Fe?r:r.context.parent;s;s=s.parent)if(s.index<0){let a=s.parent;(i||(i=[r])).push(a.resolve(t,n)),s=a}else{let a=sn.get(s.tree);if(a&&a.overlay&&a.overlay[0].from<=t&&a.overlay[a.overlay.length-1].to>=t){let c=new Fe(a.tree,a.overlay[0].from+s.from,-1,s);(i||(i=[r])).push(Hr(c,t,n,!1))}}return i?xO(i):r}function Yd(e){return e.children.some(t=>t instanceof Pt||!t.type.isAnonymous||Yd(t))}function iR(e){var t;let{buffer:n,nodeSet:r,maxBufferLength:i=1024,reused:s=[],minRepeatType:a=r.types.length}=e,c=Array.isArray(n)?new Ld(n,n.length):n,d=r.types,l=0,f=0;function u(_,S,v,R,I,C){let{id:$,start:Q,end:X,size:N}=c,Y=f,at=l;if(N<0)if(c.next(),N==-1){let Ue=s[$];v.push(Ue),R.push(Q-_);return}else if(N==-3){l=$;return}else if(N==-4){f=$;return}else throw new RangeError(`Unrecognized record size: ${N}`);let Gn=d[$],li,At,Wl=Q-_;if(X-Q<=i&&(At=O(c.pos-S,I))){let Ue=new Uint16Array(At.size-At.skip),we=c.pos-At.size,$e=Ue.length;for(;c.pos>we;)$e=y(At.start,Ue,$e);li=new Pt(Ue,X-At.start,r),Wl=At.start-_}else{let Ue=c.pos-N;c.next();let we=[],$e=[],Ct=$>=a?$:-1,dn=0,ui=X;for(;c.pos>Ue;)Ct>=0&&c.id==Ct&&c.size>=0?(c.end<=ui-i&&(w(we,$e,Q,dn,c.end,ui,Ct,Y,at),dn=we.length,ui=c.end),c.next()):C>2500?m(Q,Ue,we,$e):u(Q,Ue,we,$e,Ct,C+1);if(Ct>=0&&dn>0&&dn<we.length&&w(we,$e,Q,dn,Q,ui,Ct,Y,at),we.reverse(),$e.reverse(),Ct>-1&&dn>0){let Dl=g(Gn,at);li=Gd(Gn,we,$e,0,we.length,0,X-Q,Dl,Dl)}else li=k(Gn,we,$e,X-Q,Y-X,at)}v.push(li),R.push(Wl)}o(u,"takeNode");function m(_,S,v,R){let I=[],C=0,$=-1;for(;c.pos>S;){let{id:Q,start:X,end:N,size:Y}=c;if(Y>4)c.next();else{if($>-1&&X<$)break;$<0&&($=N-i),I.push(Q,X,N),C++,c.next()}}if(C){let Q=new Uint16Array(C*4),X=I[I.length-2];for(let N=I.length-3,Y=0;N>=0;N-=3)Q[Y++]=I[N],Q[Y++]=I[N+1]-X,Q[Y++]=I[N+2]-X,Q[Y++]=Y;v.push(new Pt(Q,I[2]-X,r)),R.push(X-_)}}o(m,"takeFlatNode");function g(_,S){return(v,R,I)=>{let C=0,$=v.length-1,Q,X;if($>=0&&(Q=v[$])instanceof oe){if(!$&&Q.type==_&&Q.length==I)return Q;(X=Q.prop(M.lookAhead))&&(C=R[$]+Q.length+X)}return k(_,v,R,I,C,S)}}o(g,"makeBalanced");function w(_,S,v,R,I,C,$,Q,X){let N=[],Y=[];for(;_.length>R;)N.push(_.pop()),Y.push(S.pop()+v-I);_.push(k(r.types[$],N,Y,C-I,Q-C,X)),S.push(I-v)}o(w,"makeRepeatLeaf");function k(_,S,v,R,I,C,$){if(C){let Q=[M.contextHash,C];$=$?[Q].concat($):[Q]}if(I>25){let Q=[M.lookAhead,I];$=$?[Q].concat($):[Q]}return new oe(_,S,v,R,$)}o(k,"makeTree");function O(_,S){let v=c.fork(),R=0,I=0,C=0,$=v.end-i,Q={size:0,start:0,skip:0};e:for(let X=v.pos-_;v.pos>X;){let N=v.size;if(v.id==S&&N>=0){Q.size=R,Q.start=I,Q.skip=C,C+=4,R+=4,v.next();continue}let Y=v.pos-N;if(N<0||Y<X||v.start<$)break;let at=v.id>=a?4:0,Gn=v.start;for(v.next();v.pos>Y;){if(v.size<0)if(v.size==-3||v.size==-4)at+=4;else break e;else v.id>=a&&(at+=4);v.next()}I=Gn,R+=N,C+=at}return(S<0||R==_)&&(Q.size=R,Q.start=I,Q.skip=C),Q.size>4?Q:void 0}o(O,"findBufferSize");function y(_,S,v){let{id:R,start:I,end:C,size:$}=c;if(c.next(),$>=0&&R<a){let Q=v;if($>4){let X=c.pos-($-4);for(;c.pos>X;)v=y(_,S,v)}S[--v]=Q,S[--v]=C-_,S[--v]=I-_,S[--v]=R}else $==-3?l=R:$==-4&&(f=R);return v}o(y,"copyToBuffer");let b=[],P=[];for(;c.pos>0;)u(e.start||0,e.bufferStart||0,b,P,-1,0);let x=(t=e.length)!==null&&t!==void 0?t:b.length?P[0]+b[0].length:0;return new oe(d[e.topID],b.reverse(),P.reverse(),x)}function Zo(e,t){if(!e.isAnonymous||t instanceof Pt||t.type!=e)return 1;let n=kO.get(t);if(n==null){n=1;for(let r of t.children){if(r.type!=e||!(r instanceof oe)){n=1;break}n+=Zo(e,r)}kO.set(t,n)}return n}function Gd(e,t,n,r,i,s,a,c,d){let l=0;for(let w=r;w<i;w++)l+=Zo(e,t[w]);let f=Math.ceil(l*1.5/8),u=[],m=[];function g(w,k,O,y,b){for(let P=O;P<y;){let x=P,_=k[P],S=Zo(e,w[P]);for(P++;P<y;P++){let v=Zo(e,w[P]);if(S+v>=f)break;S+=v}if(P==x+1){if(S>f){let v=w[x];g(v.children,v.positions,0,v.children.length,k[x]+b);continue}u.push(w[x])}else{let v=k[P-1]+w[P-1].length-_;u.push(Gd(e,w,k,x,P,_,v,null,d))}m.push(_+b-s)}}return o(g,"divide"),g(t,n,r,i,0),(c||d)(u,m,a)}var tR,Kr,M,sn,nR,ke,Ko,Bo,bO,q,oe,Ld,Pt,Ho,Fe,zd,Jr,Ud,ei,kO,Jo,Vd,rte,Bd=p(()=>{"use strict";tR=0,Kr=class{static{o(this,"Range")}constructor(t,n){this.from=t,this.to=n}},M=class{static{o(this,"NodeProp")}constructor(t={}){this.id=tR++,this.perNode=!!t.perNode,this.deserialize=t.deserialize||(()=>{throw new Error("This node type doesn't define a deserialize function")}),this.combine=t.combine||null}add(t){if(this.perNode)throw new RangeError("Can't add per-node props to node types");return typeof t!="function"&&(t=ke.match(t)),n=>{let r=t(n);return r===void 0?null:[this,r]}}};M.closedBy=new M({deserialize:o(e=>e.split(" "),"deserialize")});M.openedBy=new M({deserialize:o(e=>e.split(" "),"deserialize")});M.group=new M({deserialize:o(e=>e.split(" "),"deserialize")});M.isolate=new M({deserialize:o(e=>{if(e&&e!="rtl"&&e!="ltr"&&e!="auto")throw new RangeError("Invalid value for isolate: "+e);return e||"auto"},"deserialize")});M.contextHash=new M({perNode:!0});M.lookAhead=new M({perNode:!0});M.mounted=new M({perNode:!0});sn=class{static{o(this,"MountedTree")}constructor(t,n,r,i=!1){this.tree=t,this.overlay=n,this.parser=r,this.bracketed=i}static get(t){return t&&t.props&&t.props[M.mounted.id]}},nR=Object.create(null),ke=class e{static{o(this,"NodeType")}constructor(t,n,r,i=0){this.name=t,this.props=n,this.id=r,this.flags=i}static define(t){let n=t.props&&t.props.length?Object.create(null):nR,r=(t.top?1:0)|(t.skipped?2:0)|(t.error?4:0)|(t.name==null?8:0),i=new e(t.name||"",n,t.id,r);if(t.props){for(let s of t.props)if(Array.isArray(s)||(s=s(i)),s){if(s[0].perNode)throw new RangeError("Can't store a per-node prop on a node type");n[s[0].id]=s[1]}}return i}prop(t){return this.props[t.id]}get isTop(){return(this.flags&1)>0}get isSkipped(){return(this.flags&2)>0}get isError(){return(this.flags&4)>0}get isAnonymous(){return(this.flags&8)>0}is(t){if(typeof t=="string"){if(this.name==t)return!0;let n=this.prop(M.group);return n?n.indexOf(t)>-1:!1}return this.id==t}static match(t){let n=Object.create(null);for(let r in t)for(let i of r.split(" "))n[i]=t[r];return r=>{for(let i=r.prop(M.group),s=-1;s<(i?i.length:0);s++){let a=n[s<0?r.name:i[s]];if(a)return a}}}};ke.none=new ke("",Object.create(null),0,8);Ko=class e{static{o(this,"NodeSet")}constructor(t){this.types=t;for(let n=0;n<t.length;n++)if(t[n].id!=n)throw new RangeError("Node type ids should correspond to array positions when creating a node set")}extend(...t){let n=[];for(let r of this.types){let i=null;for(let s of t){let a=s(r);if(a){i||(i=Object.assign({},r.props));let c=a[1],d=a[0];d.combine&&d.id in i&&(c=d.combine(i[d.id],c)),i[d.id]=c}}n.push(i?new ke(r.name,i,r.id,r.flags):r)}return new e(n)}},Bo=new WeakMap,bO=new WeakMap;(function(e){e[e.ExcludeBuffers=1]="ExcludeBuffers",e[e.IncludeAnonymous=2]="IncludeAnonymous",e[e.IgnoreMounts=4]="IgnoreMounts",e[e.IgnoreOverlays=8]="IgnoreOverlays",e[e.EnterBracketed=16]="EnterBracketed"})(q||(q={}));oe=class e{static{o(this,"Tree")}constructor(t,n,r,i,s){if(this.type=t,this.children=n,this.positions=r,this.length=i,this.props=null,s&&s.length){this.props=Object.create(null);for(let[a,c]of s)this.props[typeof a=="number"?a:a.id]=c}}toString(){let t=sn.get(this);if(t&&!t.overlay)return t.tree.toString();let n="";for(let r of this.children){let i=r.toString();i&&(n&&(n+=","),n+=i)}return this.type.name?(/\W/.test(this.type.name)&&!this.type.isError?JSON.stringify(this.type.name):this.type.name)+(n.length?"("+n+")":""):n}cursor(t=0){return new ei(this.topNode,t)}cursorAt(t,n=0,r=0){let i=Bo.get(this)||this.topNode,s=new ei(i);return s.moveTo(t,n),Bo.set(this,s._tree),s}get topNode(){return new Fe(this,0,0,null)}resolve(t,n=0){let r=Hr(Bo.get(this)||this.topNode,t,n,!1);return Bo.set(this,r),r}resolveInner(t,n=0){let r=Hr(bO.get(this)||this.topNode,t,n,!0);return bO.set(this,r),r}resolveStack(t,n=0){return rR(this,t,n)}iterate(t){let{enter:n,leave:r,from:i=0,to:s=this.length}=t,a=t.mode||0,c=(a&q.IncludeAnonymous)>0;for(let d=this.cursor(a|q.IncludeAnonymous);;){let l=!1;if(d.from<=s&&d.to>=i&&(!c&&d.type.isAnonymous||n(d)!==!1)){if(d.firstChild())continue;l=!0}for(;l&&r&&(c||!d.type.isAnonymous)&&r(d),!d.nextSibling();){if(!d.parent())return;l=!0}}}prop(t){return t.perNode?this.props?this.props[t.id]:void 0:this.type.prop(t)}get propValues(){let t=[];if(this.props)for(let n in this.props)t.push([+n,this.props[n]]);return t}balance(t={}){return this.children.length<=8?this:Gd(ke.none,this.children,this.positions,0,this.children.length,0,this.length,(n,r,i)=>new e(this.type,n,r,i,this.propValues),t.makeTree||((n,r,i)=>new e(ke.none,n,r,i)))}static build(t){return iR(t)}};oe.empty=new oe(ke.none,[],[],0);Ld=class e{static{o(this,"FlatBufferCursor")}constructor(t,n){this.buffer=t,this.index=n}get id(){return this.buffer[this.index-4]}get start(){return this.buffer[this.index-3]}get end(){return this.buffer[this.index-2]}get size(){return this.buffer[this.index-1]}get pos(){return this.index}next(){this.index-=4}fork(){return new e(this.buffer,this.index)}},Pt=class e{static{o(this,"TreeBuffer")}constructor(t,n,r){this.buffer=t,this.length=n,this.set=r}get type(){return ke.none}toString(){let t=[];for(let n=0;n<this.buffer.length;)t.push(this.childString(n)),n=this.buffer[n+3];return t.join(",")}childString(t){let n=this.buffer[t],r=this.buffer[t+3],i=this.set.types[n],s=i.name;if(/\W/.test(s)&&!i.isError&&(s=JSON.stringify(s)),t+=4,r==t)return s;let a=[];for(;t<r;)a.push(this.childString(t)),t=this.buffer[t+3];return s+"("+a.join(",")+")"}findChild(t,n,r,i,s){let{buffer:a}=this,c=-1;for(let d=t;d!=n&&!(PO(s,i,a[d+1],a[d+2])&&(c=d,r>0));d=a[d+3]);return c}slice(t,n,r){let i=this.buffer,s=new Uint16Array(n-t),a=0;for(let c=t,d=0;c<n;){s[d++]=i[c++],s[d++]=i[c++]-r;let l=s[d++]=i[c++]-r;s[d++]=i[c++]-t,a=Math.max(a,l)}return new e(s,a,this.set)}};o(PO,"checkSide");o(Hr,"resolveNode");Ho=class{static{o(this,"BaseNode")}cursor(t=0){return new ei(this,t)}getChild(t,n=null,r=null){let i=vO(this,t,n,r);return i.length?i[0]:null}getChildren(t,n=null,r=null){return vO(this,t,n,r)}resolve(t,n=0){return Hr(this,t,n,!1)}resolveInner(t,n=0){return Hr(this,t,n,!0)}matchContext(t){return qd(this.parent,t)}enterUnfinishedNodesBefore(t){let n=this.childBefore(t),r=this;for(;n;){let i=n.lastChild;if(!i||i.to!=n.to)break;i.type.isError&&i.from==i.to?(r=n,n=i.prevSibling):n=i}return r}get node(){return this}get next(){return this.parent}},Fe=class e extends Ho{static{o(this,"TreeNode")}constructor(t,n,r,i){super(),this._tree=t,this.from=n,this.index=r,this._parent=i}get type(){return this._tree.type}get name(){return this._tree.type.name}get to(){return this.from+this._tree.length}nextChild(t,n,r,i,s=0){for(let a=this;;){for(let{children:c,positions:d}=a._tree,l=n>0?c.length:-1;t!=l;t+=n){let f=c[t],u=d[t]+a.from,m;if(!(!(s&q.EnterBracketed&&f instanceof oe&&(m=sn.get(f))&&!m.overlay&&m.bracketed&&r>=u&&r<=u+f.length)&&!PO(i,r,u,u+f.length))){if(f instanceof Pt){if(s&q.ExcludeBuffers)continue;let g=f.findChild(0,f.buffer.length,n,r-u,i);if(g>-1)return new Jr(new zd(a,f,t,u),null,g)}else if(s&q.IncludeAnonymous||!f.type.isAnonymous||Yd(f)){let g;if(!(s&q.IgnoreMounts)&&(g=sn.get(f))&&!g.overlay)return new e(g.tree,u,t,a);let w=new e(f,u,t,a);return s&q.IncludeAnonymous||!w.type.isAnonymous?w:w.nextChild(n<0?f.children.length-1:0,n,r,i,s)}}}if(s&q.IncludeAnonymous||!a.type.isAnonymous||(a.index>=0?t=a.index+n:t=n<0?-1:a._parent._tree.children.length,a=a._parent,!a))return null}}get firstChild(){return this.nextChild(0,1,0,4)}get lastChild(){return this.nextChild(this._tree.children.length-1,-1,0,4)}childAfter(t){return this.nextChild(0,1,t,2)}childBefore(t){return this.nextChild(this._tree.children.length-1,-1,t,-2)}prop(t){return this._tree.prop(t)}enter(t,n,r=0){let i;if(!(r&q.IgnoreOverlays)&&(i=sn.get(this._tree))&&i.overlay){let s=t-this.from,a=r&q.EnterBracketed&&i.bracketed;for(let{from:c,to:d}of i.overlay)if((n>0||a?c<=s:c<s)&&(n<0||a?d>=s:d>s))return new e(i.tree,i.overlay[0].from+this.from,-1,this)}return this.nextChild(0,1,t,n,r)}nextSignificantParent(){let t=this;for(;t.type.isAnonymous&&t._parent;)t=t._parent;return t}get parent(){return this._parent?this._parent.nextSignificantParent():null}get nextSibling(){return this._parent&&this.index>=0?this._parent.nextChild(this.index+1,1,0,4):null}get prevSibling(){return this._parent&&this.index>=0?this._parent.nextChild(this.index-1,-1,0,4):null}get tree(){return this._tree}toTree(){return this._tree}toString(){return this._tree.toString()}};o(vO,"getChildren");o(qd,"matchNodeContext");zd=class{static{o(this,"BufferContext")}constructor(t,n,r,i){this.parent=t,this.buffer=n,this.index=r,this.start=i}},Jr=class e extends Ho{static{o(this,"BufferNode")}get name(){return this.type.name}get from(){return this.context.start+this.context.buffer.buffer[this.index+1]}get to(){return this.context.start+this.context.buffer.buffer[this.index+2]}constructor(t,n,r){super(),this.context=t,this._parent=n,this.index=r,this.type=t.buffer.set.types[t.buffer.buffer[r]]}child(t,n,r){let{buffer:i}=this.context,s=i.findChild(this.index+4,i.buffer[this.index+3],t,n-this.context.start,r);return s<0?null:new e(this.context,this,s)}get firstChild(){return this.child(1,0,4)}get lastChild(){return this.child(-1,0,4)}childAfter(t){return this.child(1,t,2)}childBefore(t){return this.child(-1,t,-2)}prop(t){return this.type.prop(t)}enter(t,n,r=0){if(r&q.ExcludeBuffers)return null;let{buffer:i}=this.context,s=i.findChild(this.index+4,i.buffer[this.index+3],n>0?1:-1,t-this.context.start,n);return s<0?null:new e(this.context,this,s)}get parent(){return this._parent||this.context.parent.nextSignificantParent()}externalSibling(t){return this._parent?null:this.context.parent.nextChild(this.context.index+t,t,0,4)}get nextSibling(){let{buffer:t}=this.context,n=t.buffer[this.index+3];return n<(this._parent?t.buffer[this._parent.index+3]:t.buffer.length)?new e(this.context,this._parent,n):this.externalSibling(1)}get prevSibling(){let{buffer:t}=this.context,n=this._parent?this._parent.index+4:0;return this.index==n?this.externalSibling(-1):new e(this.context,this._parent,t.findChild(n,this.index,-1,0,4))}get tree(){return null}toTree(){let t=[],n=[],{buffer:r}=this.context,i=this.index+4,s=r.buffer[this.index+3];if(s>i){let a=r.buffer[this.index+1];t.push(r.slice(i,s,a)),n.push(0)}return new oe(this.type,t,n,this.to-this.from)}toString(){return this.context.buffer.childString(this.index)}};o(xO,"iterStack");Ud=class{static{o(this,"StackIterator")}constructor(t,n){this.heads=t,this.node=n}get next(){return xO(this.heads)}};o(rR,"stackIterator");ei=class{static{o(this,"TreeCursor")}get name(){return this.type.name}constructor(t,n=0){if(this.buffer=null,this.stack=[],this.index=0,this.bufferNode=null,this.mode=n&~q.EnterBracketed,t instanceof Fe)this.yieldNode(t);else{this._tree=t.context.parent,this.buffer=t.context;for(let r=t._parent;r;r=r._parent)this.stack.unshift(r.index);this.bufferNode=t,this.yieldBuf(t.index)}}yieldNode(t){return t?(this._tree=t,this.type=t.type,this.from=t.from,this.to=t.to,!0):!1}yieldBuf(t,n){this.index=t;let{start:r,buffer:i}=this.buffer;return this.type=n||i.set.types[i.buffer[t]],this.from=r+i.buffer[t+1],this.to=r+i.buffer[t+2],!0}yield(t){return t?t instanceof Fe?(this.buffer=null,this.yieldNode(t)):(this.buffer=t.context,this.yieldBuf(t.index,t.type)):!1}toString(){return this.buffer?this.buffer.buffer.childString(this.index):this._tree.toString()}enterChild(t,n,r){if(!this.buffer)return this.yield(this._tree.nextChild(t<0?this._tree._tree.children.length-1:0,t,n,r,this.mode));let{buffer:i}=this.buffer,s=i.findChild(this.index+4,i.buffer[this.index+3],t,n-this.buffer.start,r);return s<0?!1:(this.stack.push(this.index),this.yieldBuf(s))}firstChild(){return this.enterChild(1,0,4)}lastChild(){return this.enterChild(-1,0,4)}childAfter(t){return this.enterChild(1,t,2)}childBefore(t){return this.enterChild(-1,t,-2)}enter(t,n,r=this.mode){return this.buffer?r&q.ExcludeBuffers?!1:this.enterChild(1,t,n):this.yield(this._tree.enter(t,n,r))}parent(){if(!this.buffer)return this.yieldNode(this.mode&q.IncludeAnonymous?this._tree._parent:this._tree.parent);if(this.stack.length)return this.yieldBuf(this.stack.pop());let t=this.mode&q.IncludeAnonymous?this.buffer.parent:this.buffer.parent.nextSignificantParent();return this.buffer=null,this.yieldNode(t)}sibling(t){if(!this.buffer)return this._tree._parent?this.yield(this._tree.index<0?null:this._tree._parent.nextChild(this._tree.index+t,t,0,4,this.mode)):!1;let{buffer:n}=this.buffer,r=this.stack.length-1;if(t<0){let i=r<0?0:this.stack[r]+4;if(this.index!=i)return this.yieldBuf(n.findChild(i,this.index,-1,0,4))}else{let i=n.buffer[this.index+3];if(i<(r<0?n.buffer.length:n.buffer[this.stack[r]+3]))return this.yieldBuf(i)}return r<0?this.yield(this.buffer.parent.nextChild(this.buffer.index+t,t,0,4,this.mode)):!1}nextSibling(){return this.sibling(1)}prevSibling(){return this.sibling(-1)}atLastNode(t){let n,r,{buffer:i}=this;if(i){if(t>0){if(this.index<i.buffer.buffer.length)return!1}else for(let s=0;s<this.index;s++)if(i.buffer.buffer[s+3]<this.index)return!1;({index:n,parent:r}=i)}else({index:n,_parent:r}=this._tree);for(;r;{index:n,_parent:r}=r)if(n>-1)for(let s=n+t,a=t<0?-1:r._tree.children.length;s!=a;s+=t){let c=r._tree.children[s];if(this.mode&q.IncludeAnonymous||c instanceof Pt||!c.type.isAnonymous||Yd(c))return!1}return!0}move(t,n){if(n&&this.enterChild(t,0,4))return!0;for(;;){if(this.sibling(t))return!0;if(this.atLastNode(t)||!this.parent())return!1}}next(t=!0){return this.move(1,t)}prev(t=!0){return this.move(-1,t)}moveTo(t,n=0){for(;(this.from==this.to||(n<1?this.from>=t:this.from>t)||(n>-1?this.to<=t:this.to<t))&&this.parent(););for(;this.enterChild(1,t,n););return this}get node(){if(!this.buffer)return this._tree;let t=this.bufferNode,n=null,r=0;if(t&&t.context==this.buffer)e:for(let i=this.index,s=this.stack.length;s>=0;){for(let a=t;a;a=a._parent)if(a.index==i){if(i==this.index)return a;n=a,r=s+1;break e}i=this.stack[--s]}for(let i=r;i<this.stack.length;i++)n=new Jr(this.buffer,n,this.stack[i]);return this.bufferNode=new Jr(this.buffer,n,this.index)}get tree(){return this.buffer?null:this._tree._tree}iterate(t,n){for(let r=0;;){let i=!1;if(this.type.isAnonymous||t(this)!==!1){if(this.firstChild()){r++;continue}this.type.isAnonymous||(i=!0)}for(;;){if(i&&n&&n(this),i=this.type.isAnonymous,!r)return;if(this.nextSibling())break;this.parent(),r--,i=!0}}}matchContext(t){if(!this.buffer)return qd(this.node.parent,t);let{buffer:n}=this.buffer,{types:r}=n.set;for(let i=t.length-1,s=this.stack.length-1;i>=0;s--){if(s<0)return qd(this._tree,t,i);let a=r[n.buffer[this.stack[s]]];if(!a.isAnonymous){if(t[i]&&t[i]!=a.name)return!1;i--}}return!0}};o(Yd,"hasChild");o(iR,"buildTree");kO=new WeakMap;o(Zo,"nodeSize");o(Gd,"balanceRange");Jo=class{static{o(this,"Parser")}startParse(t,n,r){return typeof t=="string"&&(t=new Vd(t)),r=r?r.length?r.map(i=>new Kr(i.from,i.to)):[new Kr(0,0)]:[new Kr(0,t.length)],this.createParse(t,n||[],r)}parse(t,n,r){let i=this.startParse(t,n,r);for(;;){let s=i.advance();if(s)return s}}},Vd=class{static{o(this,"StringInput")}constructor(t){this.string=t}get length(){return this.string.length}chunk(t){return this.string.slice(t)}get lineChunks(){return!1}read(t,n){return this.string.slice(t,n)}},rte=new M({perNode:!0})});function ti(e,t=Uint16Array){if(typeof e!="string")return e;let n=null;for(let r=0,i=0;r<e.length;){let s=0;for(;;){let a=e.charCodeAt(r++),c=!1;if(a==126){s=65535;break}a>=92&&a--,a>=34&&a--;let d=a-32;if(d>=46&&(d-=46,c=!0),s+=d,c)break;s*=46}n?n[i++]=s:n=new t(s)}return n}function QO(e,t,n,r,i,s){let a=0,c=1<<r,{dialect:d}=n.p.parser;e:for(;(c&e[a])!=0;){let l=e[a+1];for(let g=a+3;g<l;g+=2)if((e[g+1]&c)>0){let w=e[g];if(d.allows(w)&&(t.token.value==-1||t.token.value==w||sR(w,t.token.value,i,s))){t.acceptToken(w);break}}let f=t.next,u=0,m=e[a+2];if(t.next<0&&m>u&&e[l+m*3-3]==65535){a=e[l+m*3-1];continue e}for(;u<m;){let g=u+m>>1,w=l+g+(g<<1),k=e[w],O=e[w+1]||65536;if(f<k)m=g;else if(f>=O)u=g+1;else{a=e[w+2],t.advance();continue e}}break}}function TO(e,t,n){for(let r=t,i;(i=e[r])!=65535;r++)if(i==n)return r-t;return-1}function sR(e,t,n,r){let i=TO(n,r,t);return i<0||TO(n,r,e)<i}function EO(e,t,n){let r=e.cursor(q.IncludeAnonymous);for(r.moveTo(t);;)if(!(n<0?r.childBefore(t):r.childAfter(t)))for(;;){if((n<0?r.to<t:r.from>t)&&!r.type.isError)return n<0?Math.max(0,Math.min(r.to-1,t-25)):Math.min(e.length,Math.max(r.from+1,t+25));if(n<0?r.prevSibling():r.nextSibling())break;if(!r.parent())return n<0?0:e.length}}function RO(e,t){for(let n=0;n<t.length;n++){let r=t[n];if(r.pos==e.pos&&r.sameState(e)){t[n].score<e.score&&(t[n]=e);return}}t.push(e)}function Je(e,t){return e[t]|e[t+1]<<16}function aR(e){let t=null;for(let n of e){let r=n.p.stoppedAt;(n.pos==n.p.stream.end||r!=null&&n.pos>r)&&n.p.parser.stateFlag(n.state,2)&&(!t||t.score<n.score)&&(t=n)}return t}function IO(e){if(e.external){let t=e.extend?1:0;return(n,r)=>e.external(n,r)<<1|t}return e.get}var Hd,es,Jd,el,Fn,_O,tl,xt,ni,ye,Oe,Zd,nl,rl,il,ol,Kd,Ln,_t,ts=p(()=>{"use strict";Bd();Hd=class e{static{o(this,"Stack")}constructor(t,n,r,i,s,a,c,d,l,f=0,u){this.p=t,this.stack=n,this.state=r,this.reducePos=i,this.pos=s,this.score=a,this.buffer=c,this.bufferBase=d,this.curContext=l,this.lookAhead=f,this.parent=u}toString(){return`[${this.stack.filter((t,n)=>n%3==0).concat(this.state)}]@${this.pos}${this.score?"!"+this.score:""}`}static start(t,n,r=0){let i=t.parser.context;return new e(t,[],n,r,r,0,[],0,i?new es(i,i.start):null,0,null)}get context(){return this.curContext?this.curContext.context:null}pushState(t,n){this.stack.push(this.state,n,this.bufferBase+this.buffer.length),this.state=t}reduce(t){var n;let r=t>>19,i=t&65535,{parser:s}=this.p,a=this.reducePos<this.pos-25&&this.setLookAhead(this.pos),c=s.dynamicPrecedence(i);if(c&&(this.score+=c),r==0){i<s.minRepeatTerm&&this.reducePos<this.pos&&(this.reducePos=this.pos),this.pushState(s.getGoto(this.state,i,!0),this.reducePos),i<s.minRepeatTerm&&this.storeNode(i,this.reducePos,this.reducePos,a?8:4,!0),this.reduceContext(i,this.reducePos);return}let d=this.stack.length-(r-1)*3-(t&262144?6:0),l=d?this.stack[d-2]:this.p.ranges[0].from;i<s.minRepeatTerm&&l==this.reducePos&&this.reducePos<this.pos&&(this.reducePos=this.pos);let f=this.reducePos-l;f>=2e3&&!(!((n=this.p.parser.nodeSet.types[i])===null||n===void 0)&&n.isAnonymous)&&(l==this.p.lastBigReductionStart?(this.p.bigReductionCount++,this.p.lastBigReductionSize=f):this.p.lastBigReductionSize<f&&(this.p.bigReductionCount=1,this.p.lastBigReductionStart=l,this.p.lastBigReductionSize=f));let u=d?this.stack[d-1]:0,m=this.bufferBase+this.buffer.length-u;if(i<s.minRepeatTerm||t&131072){let g=s.stateFlag(this.state,1)?this.pos:this.reducePos;this.storeNode(i,l,g,m+4,!0)}if(t&262144)this.state=this.stack[d];else{let g=this.stack[d-3];this.state=s.getGoto(g,i,!0)}for(;this.stack.length>d;)this.stack.pop();this.reduceContext(i,l)}storeNode(t,n,r,i=4,s=!1){if(t==0&&(!this.stack.length||this.stack[this.stack.length-1]<this.buffer.length+this.bufferBase)){let a=this.buffer.length;if(a>0&&this.buffer[a-4]==0&&this.buffer[a-1]>-1){if(n==r)return;if(this.buffer[a-2]>=n){this.buffer[a-2]=r;return}}}if(!s||this.pos==r)this.buffer.push(t,n,r,i);else{let a=this.buffer.length;if(a>0&&(this.buffer[a-4]!=0||this.buffer[a-1]<0)){let c=!1;for(let d=a;d>0&&this.buffer[d-2]>r;d-=4)if(this.buffer[d-1]>=0){c=!0;break}if(c)for(;a>0&&this.buffer[a-2]>r;)this.buffer[a]=this.buffer[a-4],this.buffer[a+1]=this.buffer[a-3],this.buffer[a+2]=this.buffer[a-2],this.buffer[a+3]=this.buffer[a-1],a-=4,i>4&&(i-=4)}this.buffer[a]=t,this.buffer[a+1]=n,this.buffer[a+2]=r,this.buffer[a+3]=i}}shift(t,n,r,i){if(t&131072)this.pushState(t&65535,this.pos);else if((t&262144)==0){let s=t,{parser:a}=this.p;this.pos=i;let c=a.stateFlag(s,1);!c&&(i>r||n<=a.maxNode)&&(this.reducePos=i),this.pushState(s,c?r:Math.min(r,this.reducePos)),this.shiftContext(n,r),n<=a.maxNode&&this.buffer.push(n,r,i,4)}else this.pos=i,this.shiftContext(n,r),n<=this.p.parser.maxNode&&this.buffer.push(n,r,i,4)}apply(t,n,r,i){t&65536?this.reduce(t):this.shift(t,n,r,i)}useNode(t,n){let r=this.p.reused.length-1;(r<0||this.p.reused[r]!=t)&&(this.p.reused.push(t),r++);let i=this.pos;this.reducePos=this.pos=i+t.length,this.pushState(n,i),this.buffer.push(r,i,this.reducePos,-1),this.curContext&&this.updateContext(this.curContext.tracker.reuse(this.curContext.context,t,this,this.p.stream.reset(this.pos-t.length)))}split(){let t=this,n=t.buffer.length;for(n&&t.buffer[n-4]==0&&(n-=4);n>0&&t.buffer[n-2]>t.reducePos;)n-=4;let r=t.buffer.slice(n),i=t.bufferBase+n;for(;t&&i==t.bufferBase;)t=t.parent;return new e(this.p,this.stack.slice(),this.state,this.reducePos,this.pos,this.score,r,i,this.curContext,this.lookAhead,t)}recoverByDelete(t,n){let r=t<=this.p.parser.maxNode;r&&this.storeNode(t,this.pos,n,4),this.storeNode(0,this.pos,n,r?8:4),this.pos=this.reducePos=n,this.score-=190}canShift(t){for(let n=new Jd(this);;){let r=this.p.parser.stateSlot(n.state,4)||this.p.parser.hasAction(n.state,t);if(r==0)return!1;if((r&65536)==0)return!0;n.reduce(r)}}recoverByInsert(t){if(this.stack.length>=300)return[];let n=this.p.parser.nextStates(this.state);if(n.length>8||this.stack.length>=120){let i=[];for(let s=0,a;s<n.length;s+=2)(a=n[s+1])!=this.state&&this.p.parser.hasAction(a,t)&&i.push(n[s],a);if(this.stack.length<120)for(let s=0;i.length<8&&s<n.length;s+=2){let a=n[s+1];i.some((c,d)=>d&1&&c==a)||i.push(n[s],a)}n=i}let r=[];for(let i=0;i<n.length&&r.length<4;i+=2){let s=n[i+1];if(s==this.state)continue;let a=this.split();a.pushState(s,this.pos),a.storeNode(0,a.pos,a.pos,4,!0),a.shiftContext(n[i],this.pos),a.reducePos=this.pos,a.score-=200,r.push(a)}return r}forceReduce(){let{parser:t}=this.p,n=t.stateSlot(this.state,5);if((n&65536)==0)return!1;if(!t.validAction(this.state,n)){let r=n>>19,i=n&65535,s=this.stack.length-r*3;if(s<0||t.getGoto(this.stack[s],i,!1)<0){let a=this.findForcedReduction();if(a==null)return!1;n=a}this.storeNode(0,this.pos,this.pos,4,!0),this.score-=100}return this.reducePos=this.pos,this.reduce(n),!0}findForcedReduction(){let{parser:t}=this.p,n=[],r=o((i,s)=>{if(!n.includes(i))return n.push(i),t.allActions(i,a=>{if(!(a&393216))if(a&65536){let c=(a>>19)-s;if(c>1){let d=a&65535,l=this.stack.length-c*3;if(l>=0&&t.getGoto(this.stack[l],d,!1)>=0)return c<<19|65536|d}}else{let c=r(a,s+1);if(c!=null)return c}})},"explore");return r(this.state,0)}forceAll(){for(;!this.p.parser.stateFlag(this.state,2);)if(!this.forceReduce()){this.storeNode(0,this.pos,this.pos,4,!0);break}return this}get deadEnd(){if(this.stack.length!=3)return!1;let{parser:t}=this.p;return t.data[t.stateSlot(this.state,1)]==65535&&!t.stateSlot(this.state,4)}restart(){this.storeNode(0,this.pos,this.pos,4,!0),this.state=this.stack[0],this.stack.length=0}sameState(t){if(this.state!=t.state||this.stack.length!=t.stack.length)return!1;for(let n=0;n<this.stack.length;n+=3)if(this.stack[n]!=t.stack[n])return!1;return!0}get parser(){return this.p.parser}dialectEnabled(t){return this.p.parser.dialect.flags[t]}shiftContext(t,n){this.curContext&&this.updateContext(this.curContext.tracker.shift(this.curContext.context,t,this,this.p.stream.reset(n)))}reduceContext(t,n){this.curContext&&this.updateContext(this.curContext.tracker.reduce(this.curContext.context,t,this,this.p.stream.reset(n)))}emitContext(){let t=this.buffer.length-1;(t<0||this.buffer[t]!=-3)&&this.buffer.push(this.curContext.hash,this.pos,this.pos,-3)}emitLookAhead(){let t=this.buffer.length-1;(t<0||this.buffer[t]!=-4)&&this.buffer.push(this.lookAhead,this.pos,this.pos,-4)}updateContext(t){if(t!=this.curContext.context){let n=new es(this.curContext.tracker,t);n.hash!=this.curContext.hash&&this.emitContext(),this.curContext=n}}setLookAhead(t){return t<=this.lookAhead?!1:(this.emitLookAhead(),this.lookAhead=t,!0)}close(){this.curContext&&this.curContext.tracker.strict&&this.emitContext(),this.lookAhead>0&&this.emitLookAhead()}},es=class{static{o(this,"StackContext")}constructor(t,n){this.tracker=t,this.context=n,this.hash=t.strict?t.hash(n):0}},Jd=class{static{o(this,"SimulatedStack")}constructor(t){this.start=t,this.state=t.state,this.stack=t.stack,this.base=this.stack.length}reduce(t){let n=t&65535,r=t>>19;r==0?(this.stack==this.start.stack&&(this.stack=this.stack.slice()),this.stack.push(this.state,0,0),this.base+=3):this.base-=(r-1)*3;let i=this.start.p.parser.getGoto(this.stack[this.base-3],n,!0);this.state=i}},el=class e{static{o(this,"StackBufferCursor")}constructor(t,n,r){this.stack=t,this.pos=n,this.index=r,this.buffer=t.buffer,this.index==0&&this.maybeNext()}static create(t,n=t.bufferBase+t.buffer.length){return new e(t,n,n-t.bufferBase)}maybeNext(){let t=this.stack.parent;t!=null&&(this.index=this.stack.bufferBase-t.bufferBase,this.stack=t,this.buffer=t.buffer)}get id(){return this.buffer[this.index-4]}get start(){return this.buffer[this.index-3]}get end(){return this.buffer[this.index-2]}get size(){return this.buffer[this.index-1]}next(){this.index-=4,this.pos-=4,this.index==0&&this.maybeNext()}fork(){return new e(this.stack,this.pos,this.index)}};o(ti,"decodeArray");Fn=class{static{o(this,"CachedToken")}constructor(){this.start=-1,this.value=-1,this.end=-1,this.extended=-1,this.lookAhead=0,this.mask=0,this.context=0}},_O=new Fn,tl=class{static{o(this,"InputStream")}constructor(t,n){this.input=t,this.ranges=n,this.chunk="",this.chunkOff=0,this.chunk2="",this.chunk2Pos=0,this.next=-1,this.token=_O,this.rangeIndex=0,this.pos=this.chunkPos=n[0].from,this.range=n[0],this.end=n[n.length-1].to,this.readNext()}resolveOffset(t,n){let r=this.range,i=this.rangeIndex,s=this.pos+t;for(;s<r.from;){if(!i)return null;let a=this.ranges[--i];s-=r.from-a.to,r=a}for(;n<0?s>r.to:s>=r.to;){if(i==this.ranges.length-1)return null;let a=this.ranges[++i];s+=a.from-r.to,r=a}return s}clipPos(t){if(t>=this.range.from&&t<this.range.to)return t;for(let n of this.ranges)if(n.to>t)return Math.max(t,n.from);return this.end}peek(t){let n=this.chunkOff+t,r,i;if(n>=0&&n<this.chunk.length)r=this.pos+t,i=this.chunk.charCodeAt(n);else{let s=this.resolveOffset(t,1);if(s==null)return-1;if(r=s,r>=this.chunk2Pos&&r<this.chunk2Pos+this.chunk2.length)i=this.chunk2.charCodeAt(r-this.chunk2Pos);else{let a=this.rangeIndex,c=this.range;for(;c.to<=r;)c=this.ranges[++a];this.chunk2=this.input.chunk(this.chunk2Pos=r),r+this.chunk2.length>c.to&&(this.chunk2=this.chunk2.slice(0,c.to-r)),i=this.chunk2.charCodeAt(0)}}return r>=this.token.lookAhead&&(this.token.lookAhead=r+1),i}acceptToken(t,n=0){let r=n?this.resolveOffset(n,-1):this.pos;if(r==null||r<this.token.start)throw new RangeError("Token end out of bounds");this.token.value=t,this.token.end=r}acceptTokenTo(t,n){this.token.value=t,this.token.end=n}getChunk(){if(this.pos>=this.chunk2Pos&&this.pos<this.chunk2Pos+this.chunk2.length){let{chunk:t,chunkPos:n}=this;this.chunk=this.chunk2,this.chunkPos=this.chunk2Pos,this.chunk2=t,this.chunk2Pos=n,this.chunkOff=this.pos-this.chunkPos}else{this.chunk2=this.chunk,this.chunk2Pos=this.chunkPos;let t=this.input.chunk(this.pos),n=this.pos+t.length;this.chunk=n>this.range.to?t.slice(0,this.range.to-this.pos):t,this.chunkPos=this.pos,this.chunkOff=0}}readNext(){return this.chunkOff>=this.chunk.length&&(this.getChunk(),this.chunkOff==this.chunk.length)?this.next=-1:this.next=this.chunk.charCodeAt(this.chunkOff)}advance(t=1){for(this.chunkOff+=t;this.pos+t>=this.range.to;){if(this.rangeIndex==this.ranges.length-1)return this.setDone();t-=this.range.to-this.pos,this.range=this.ranges[++this.rangeIndex],this.pos=this.range.from}return this.pos+=t,this.pos>=this.token.lookAhead&&(this.token.lookAhead=this.pos+1),this.readNext()}setDone(){return this.pos=this.chunkPos=this.end,this.range=this.ranges[this.rangeIndex=this.ranges.length-1],this.chunk="",this.next=-1}reset(t,n){if(n?(this.token=n,n.start=t,n.lookAhead=t+1,n.value=n.extended=-1):this.token=_O,this.pos!=t){if(this.pos=t,t==this.end)return this.setDone(),this;for(;t<this.range.from;)this.range=this.ranges[--this.rangeIndex];for(;t>=this.range.to;)this.range=this.ranges[++this.rangeIndex];t>=this.chunkPos&&t<this.chunkPos+this.chunk.length?this.chunkOff=t-this.chunkPos:(this.chunk="",this.chunkOff=0),this.readNext()}return this}read(t,n){if(t>=this.chunkPos&&n<=this.chunkPos+this.chunk.length)return this.chunk.slice(t-this.chunkPos,n-this.chunkPos);if(t>=this.chunk2Pos&&n<=this.chunk2Pos+this.chunk2.length)return this.chunk2.slice(t-this.chunk2Pos,n-this.chunk2Pos);if(t>=this.range.from&&n<=this.range.to)return this.input.read(t,n);let r="";for(let i of this.ranges){if(i.from>=n)break;i.to>t&&(r+=this.input.read(Math.max(i.from,t),Math.min(i.to,n)))}return r}},xt=class{static{o(this,"TokenGroup")}constructor(t,n){this.data=t,this.id=n}token(t,n){let{parser:r}=n.p;QO(this.data,t,n,this.id,r.data,r.tokenPrecTable)}};xt.prototype.contextual=xt.prototype.fallback=xt.prototype.extend=!1;ni=class{static{o(this,"LocalTokenGroup")}constructor(t,n,r){this.precTable=n,this.elseToken=r,this.data=typeof t=="string"?ti(t):t}token(t,n){let r=t.pos,i=0;for(;;){let s=t.next<0,a=t.resolveOffset(1,1);if(QO(this.data,t,n,0,this.data,this.precTable),t.token.value>-1)break;if(this.elseToken==null)return;if(s||i++,a==null)break;t.reset(a,t.token)}i&&(t.reset(r,t.token),t.acceptToken(this.elseToken,i))}};ni.prototype.contextual=xt.prototype.fallback=xt.prototype.extend=!1;ye=class{static{o(this,"ExternalTokenizer")}constructor(t,n={}){this.token=t,this.contextual=!!n.contextual,this.fallback=!!n.fallback,this.extend=!!n.extend}};o(QO,"readToken");o(TO,"findOffset");o(sR,"overrides");Oe=typeof process<"u"&&process.env&&/\bparse\b/.test(process.env.LOG),Zd=null;o(EO,"cutAt");nl=class{static{o(this,"FragmentCursor")}constructor(t,n){this.fragments=t,this.nodeSet=n,this.i=0,this.fragment=null,this.safeFrom=-1,this.safeTo=-1,this.trees=[],this.start=[],this.index=[],this.nextFragment()}nextFragment(){let t=this.fragment=this.i==this.fragments.length?null:this.fragments[this.i++];if(t){for(this.safeFrom=t.openStart?EO(t.tree,t.from+t.offset,1)-t.offset:t.from,this.safeTo=t.openEnd?EO(t.tree,t.to+t.offset,-1)-t.offset:t.to;this.trees.length;)this.trees.pop(),this.start.pop(),this.index.pop();this.trees.push(t.tree),this.start.push(-t.offset),this.index.push(0),this.nextStart=this.safeFrom}else this.nextStart=1e9}nodeAt(t){if(t<this.nextStart)return null;for(;this.fragment&&this.safeTo<=t;)this.nextFragment();if(!this.fragment)return null;for(;;){let n=this.trees.length-1;if(n<0)return this.nextFragment(),null;let r=this.trees[n],i=this.index[n];if(i==r.children.length){this.trees.pop(),this.start.pop(),this.index.pop();continue}let s=r.children[i],a=this.start[n]+r.positions[i];if(a>t)return this.nextStart=a,null;if(s instanceof oe){if(a==t){if(a<this.safeFrom)return null;let c=a+s.length;if(c<=this.safeTo){let d=s.prop(M.lookAhead);if(!d||c+d<this.fragment.to)return s}}this.index[n]++,a+s.length>=Math.max(this.safeFrom,t)&&(this.trees.push(s),this.start.push(a),this.index.push(0))}else this.index[n]++,this.nextStart=a+s.length}}},rl=class{static{o(this,"TokenCache")}constructor(t,n){this.stream=n,this.tokens=[],this.mainToken=null,this.actions=[],this.tokens=t.tokenizers.map(r=>new Fn)}getActions(t){let n=0,r=null,{parser:i}=t.p,{tokenizers:s}=i,a=i.stateSlot(t.state,3),c=t.curContext?t.curContext.hash:0,d=0;for(let l=0;l<s.length;l++){if((1<<l&a)==0)continue;let f=s[l],u=this.tokens[l];if(!(r&&!f.fallback)&&((f.contextual||u.start!=t.pos||u.mask!=a||u.context!=c)&&(this.updateCachedToken(u,f,t),u.mask=a,u.context=c),u.lookAhead>u.end+25&&(d=Math.max(u.lookAhead,d)),u.value!=0)){let m=n;if(u.extended>-1&&(n=this.addActions(t,u.extended,u.end,n)),n=this.addActions(t,u.value,u.end,n),!f.extend&&(r=u,n>m))break}}for(;this.actions.length>n;)this.actions.pop();return d&&t.setLookAhead(d),!r&&t.pos==this.stream.end&&(r=new Fn,r.value=t.p.parser.eofTerm,r.start=r.end=t.pos,n=this.addActions(t,r.value,r.end,n)),this.mainToken=r,this.actions}getMainToken(t){if(this.mainToken)return this.mainToken;let n=new Fn,{pos:r,p:i}=t;return n.start=r,n.end=Math.min(r+1,i.stream.end),n.value=r==i.stream.end?i.parser.eofTerm:0,n}updateCachedToken(t,n,r){let i=this.stream.clipPos(r.pos);if(n.token(this.stream.reset(i,t),r),t.value>-1){let{parser:s}=r.p;for(let a=0;a<s.specialized.length;a++)if(s.specialized[a]==t.value){let c=s.specializers[a](this.stream.read(t.start,t.end),r);if(c>=0&&r.p.parser.dialect.allows(c>>1)){(c&1)==0?t.value=c>>1:t.extended=c>>1;break}}}else t.value=0,t.end=this.stream.clipPos(i+1)}putAction(t,n,r,i){for(let s=0;s<i;s+=3)if(this.actions[s]==t)return i;return this.actions[i++]=t,this.actions[i++]=n,this.actions[i++]=r,i}addActions(t,n,r,i){let{state:s}=t,{parser:a}=t.p,{data:c}=a;for(let d=0;d<2;d++)for(let l=a.stateSlot(s,d?2:1);;l+=3){if(c[l]==65535)if(c[l+1]==1)l=Je(c,l+2);else{i==0&&c[l+1]==2&&(i=this.putAction(Je(c,l+2),n,r,i));break}c[l]==n&&(i=this.putAction(Je(c,l+1),n,r,i))}return i}},il=class{static{o(this,"Parse")}constructor(t,n,r,i){this.parser=t,this.input=n,this.ranges=i,this.recovering=0,this.nextStackID=9812,this.minStackPos=0,this.reused=[],this.stoppedAt=null,this.lastBigReductionStart=-1,this.lastBigReductionSize=0,this.bigReductionCount=0,this.stream=new tl(n,i),this.tokens=new rl(t,this.stream),this.topTerm=t.top[1];let{from:s}=i[0];this.stacks=[Hd.start(this,t.top[0],s)],this.fragments=r.length&&this.stream.end-s>t.bufferLength*4?new nl(r,t.nodeSet):null}get parsedPos(){return this.minStackPos}advance(){let t=this.stacks,n=this.minStackPos,r=this.stacks=[],i,s;if(this.bigReductionCount>300&&t.length==1){let[a]=t;for(;a.forceReduce()&&a.stack.length&&a.stack[a.stack.length-2]>=this.lastBigReductionStart;);this.bigReductionCount=this.lastBigReductionSize=0}for(let a=0;a<t.length;a++){let c=t[a];for(;;){if(this.tokens.mainToken=null,c.pos>n)r.push(c);else{if(this.advanceStack(c,r,t))continue;{i||(i=[],s=[]),i.push(c);let d=this.tokens.getMainToken(c);s.push(d.value,d.end)}}break}}if(!r.length){let a=i&&aR(i);if(a)return Oe&&console.log("Finish with "+this.stackID(a)),this.stackToTree(a);if(this.parser.strict)throw Oe&&i&&console.log("Stuck with token "+(this.tokens.mainToken?this.parser.getName(this.tokens.mainToken.value):"none")),new SyntaxError("No parse at "+n);this.recovering||(this.recovering=5)}if(this.recovering&&i){let a=this.stoppedAt!=null&&i[0].pos>this.stoppedAt?i[0]:this.runRecovery(i,s,r);if(a)return Oe&&console.log("Force-finish "+this.stackID(a)),this.stackToTree(a.forceAll())}if(this.recovering){let a=this.recovering==1?1:this.recovering*3;if(r.length>a)for(r.sort((c,d)=>d.score-c.score);r.length>a;)r.pop();r.some(c=>c.reducePos>n)&&this.recovering--}else if(r.length>1){e:for(let a=0;a<r.length-1;a++){let c=r[a];for(let d=a+1;d<r.length;d++){let l=r[d];if(c.sameState(l)||c.buffer.length>500&&l.buffer.length>500)if((c.score-l.score||c.buffer.length-l.buffer.length)>0)r.splice(d--,1);else{r.splice(a--,1);continue e}}}r.length>12&&(r.sort((a,c)=>c.score-a.score),r.splice(12,r.length-12))}this.minStackPos=r[0].pos;for(let a=1;a<r.length;a++)r[a].pos<this.minStackPos&&(this.minStackPos=r[a].pos);return null}stopAt(t){if(this.stoppedAt!=null&&this.stoppedAt<t)throw new RangeError("Can't move stoppedAt forward");this.stoppedAt=t}advanceStack(t,n,r){let i=t.pos,{parser:s}=this,a=Oe?this.stackID(t)+" -> ":"";if(this.stoppedAt!=null&&i>this.stoppedAt)return t.forceReduce()?t:null;if(this.fragments){let l=t.curContext&&t.curContext.tracker.strict,f=l?t.curContext.hash:0;for(let u=this.fragments.nodeAt(i);u;){let m=this.parser.nodeSet.types[u.type.id]==u.type?s.getGoto(t.state,u.type.id):-1;if(m>-1&&u.length&&(!l||(u.prop(M.contextHash)||0)==f))return t.useNode(u,m),Oe&&console.log(a+this.stackID(t)+` (via reuse of ${s.getName(u.type.id)})`),!0;if(!(u instanceof oe)||u.children.length==0||u.positions[0]>0)break;let g=u.children[0];if(g instanceof oe&&u.positions[0]==0)u=g;else break}}let c=s.stateSlot(t.state,4);if(c>0)return t.reduce(c),Oe&&console.log(a+this.stackID(t)+` (via always-reduce ${s.getName(c&65535)})`),!0;if(t.stack.length>=8400)for(;t.stack.length>6e3&&t.forceReduce(););let d=this.tokens.getActions(t);for(let l=0;l<d.length;){let f=d[l++],u=d[l++],m=d[l++],g=l==d.length||!r,w=g?t:t.split(),k=this.tokens.mainToken;if(w.apply(f,u,k?k.start:w.pos,m),Oe&&console.log(a+this.stackID(w)+` (via ${(f&65536)==0?"shift":`reduce of ${s.getName(f&65535)}`} for ${s.getName(u)} @ ${i}${w==t?"":", split"})`),g)return!0;w.pos>i?n.push(w):r.push(w)}return!1}advanceFully(t,n){let r=t.pos;for(;;){if(!this.advanceStack(t,null,null))return!1;if(t.pos>r)return RO(t,n),!0}}runRecovery(t,n,r){let i=null,s=!1;for(let a=0;a<t.length;a++){let c=t[a],d=n[a<<1],l=n[(a<<1)+1],f=Oe?this.stackID(c)+" -> ":"";if(c.deadEnd&&(s||(s=!0,c.restart(),Oe&&console.log(f+this.stackID(c)+" (restarted)"),this.advanceFully(c,r))))continue;let u=c.split(),m=f;for(let g=0;g<10&&u.forceReduce()&&(Oe&&console.log(m+this.stackID(u)+" (via force-reduce)"),!this.advanceFully(u,r));g++)Oe&&(m=this.stackID(u)+" -> ");for(let g of c.recoverByInsert(d))Oe&&console.log(f+this.stackID(g)+" (via recover-insert)"),this.advanceFully(g,r);this.stream.end>c.pos?(l==c.pos&&(l++,d=0),c.recoverByDelete(d,l),Oe&&console.log(f+this.stackID(c)+` (via recover-delete ${this.parser.getName(d)})`),RO(c,r)):(!i||i.score<u.score)&&(i=u)}return i}stackToTree(t){return t.close(),oe.build({buffer:el.create(t),nodeSet:this.parser.nodeSet,topID:this.topTerm,maxBufferLength:this.parser.bufferLength,reused:this.reused,start:this.ranges[0].from,length:t.pos-this.ranges[0].from,minRepeatType:this.parser.minRepeatTerm})}stackID(t){let n=(Zd||(Zd=new WeakMap)).get(t);return n||Zd.set(t,n=String.fromCodePoint(this.nextStackID++)),n+t}};o(RO,"pushStackDedup");ol=class{static{o(this,"Dialect")}constructor(t,n,r){this.source=t,this.flags=n,this.disabled=r}allows(t){return!this.disabled||this.disabled[t]==0}},Kd=o(e=>e,"id"),Ln=class{static{o(this,"ContextTracker")}constructor(t){this.start=t.start,this.shift=t.shift||Kd,this.reduce=t.reduce||Kd,this.reuse=t.reuse||Kd,this.hash=t.hash||(()=>0),this.strict=t.strict!==!1}},_t=class e extends Jo{static{o(this,"LRParser")}constructor(t){if(super(),this.wrappers=[],t.version!=14)throw new RangeError(`Parser version (${t.version}) doesn't match runtime version (14)`);let n=t.nodeNames.split(" ");this.minRepeatTerm=n.length;for(let c=0;c<t.repeatNodeCount;c++)n.push("");let r=Object.keys(t.topRules).map(c=>t.topRules[c][1]),i=[];for(let c=0;c<n.length;c++)i.push([]);function s(c,d,l){i[c].push([d,d.deserialize(String(l))])}if(o(s,"setProp"),t.nodeProps)for(let c of t.nodeProps){let d=c[0];typeof d=="string"&&(d=M[d]);for(let l=1;l<c.length;){let f=c[l++];if(f>=0)s(f,d,c[l++]);else{let u=c[l+-f];for(let m=-f;m>0;m--)s(c[l++],d,u);l++}}}this.nodeSet=new Ko(n.map((c,d)=>ke.define({name:d>=this.minRepeatTerm?void 0:c,id:d,props:i[d],top:r.indexOf(d)>-1,error:d==0,skipped:t.skippedNodes&&t.skippedNodes.indexOf(d)>-1}))),t.propSources&&(this.nodeSet=this.nodeSet.extend(...t.propSources)),this.strict=!1,this.bufferLength=1024;let a=ti(t.tokenData);this.context=t.context,this.specializerSpecs=t.specialized||[],this.specialized=new Uint16Array(this.specializerSpecs.length);for(let c=0;c<this.specializerSpecs.length;c++)this.specialized[c]=this.specializerSpecs[c].term;this.specializers=this.specializerSpecs.map(IO),this.states=ti(t.states,Uint32Array),this.data=ti(t.stateData),this.goto=ti(t.goto),this.maxTerm=t.maxTerm,this.tokenizers=t.tokenizers.map(c=>typeof c=="number"?new xt(a,c):c),this.topRules=t.topRules,this.dialects=t.dialects||{},this.dynamicPrecedences=t.dynamicPrecedences||null,this.tokenPrecTable=t.tokenPrec,this.termNames=t.termNames||null,this.maxNode=this.nodeSet.types.length-1,this.dialect=this.parseDialect(),this.top=this.topRules[Object.keys(this.topRules)[0]]}createParse(t,n,r){let i=new il(this,t,n,r);for(let s of this.wrappers)i=s(i,t,n,r);return i}getGoto(t,n,r=!1){let i=this.goto;if(n>=i[0])return-1;for(let s=i[n+1];;){let a=i[s++],c=a&1,d=i[s++];if(c&&r)return d;for(let l=s+(a>>1);s<l;s++)if(i[s]==t)return d;if(c)return-1}}hasAction(t,n){let r=this.data;for(let i=0;i<2;i++)for(let s=this.stateSlot(t,i?2:1),a;;s+=3){if((a=r[s])==65535)if(r[s+1]==1)a=r[s=Je(r,s+2)];else{if(r[s+1]==2)return Je(r,s+2);break}if(a==n||a==0)return Je(r,s+1)}return 0}stateSlot(t,n){return this.states[t*6+n]}stateFlag(t,n){return(this.stateSlot(t,0)&n)>0}validAction(t,n){return!!this.allActions(t,r=>r==n?!0:null)}allActions(t,n){let r=this.stateSlot(t,4),i=r?n(r):void 0;for(let s=this.stateSlot(t,1);i==null;s+=3){if(this.data[s]==65535)if(this.data[s+1]==1)s=Je(this.data,s+2);else break;i=n(Je(this.data,s+1))}return i}nextStates(t){let n=[];for(let r=this.stateSlot(t,1);;r+=3){if(this.data[r]==65535)if(this.data[r+1]==1)r=Je(this.data,r+2);else break;if((this.data[r+2]&1)==0){let i=this.data[r+1];n.some((s,a)=>a&1&&s==i)||n.push(this.data[r],i)}}return n}configure(t){let n=Object.assign(Object.create(e.prototype),this);if(t.props&&(n.nodeSet=this.nodeSet.extend(...t.props)),t.top){let r=this.topRules[t.top];if(!r)throw new RangeError(`Invalid top rule name ${t.top}`);n.top=r}return t.tokenizers&&(n.tokenizers=this.tokenizers.map(r=>{let i=t.tokenizers.find(s=>s.from==r);return i?i.to:r})),t.specializers&&(n.specializers=this.specializers.slice(),n.specializerSpecs=this.specializerSpecs.map((r,i)=>{let s=t.specializers.find(c=>c.from==r.external);if(!s)return r;let a=Object.assign(Object.assign({},r),{external:s.to});return n.specializers[i]=IO(a),a})),t.contextTracker&&(n.context=t.contextTracker),t.dialect&&(n.dialect=this.parseDialect(t.dialect)),t.strict!=null&&(n.strict=t.strict),t.wrap&&(n.wrappers=n.wrappers.concat(t.wrap)),t.bufferLength!=null&&(n.bufferLength=t.bufferLength),n}hasWrappers(){return this.wrappers.length>0}getName(t){return this.termNames?this.termNames[t]:String(t<=this.maxNode&&this.nodeSet.types[t].name||t)}get eofTerm(){return this.maxNode+1}get topNode(){return this.nodeSet.types[this.top[1]]}dynamicPrecedence(t){let n=this.dynamicPrecedences;return n==null?0:n[t]||0}parseDialect(t){let n=Object.keys(this.dialects),r=n.map(()=>!1);if(t)for(let s of t.split(" ")){let a=n.indexOf(s);a>=0&&(r[a]=!0)}let i=null;for(let s=0;s<n.length;s++)if(!r[s])for(let a=this.dialects[n[s]],c;(c=this.data[a++])!=65535;)(i||(i=new Uint8Array(this.maxTerm+1)))[c]=1;return new ol(t,r,i)}static deserialize(t){return new e(t)}};o(Je,"pair");o(aR,"findFinished");o(IO,"getSpecializer")});function lR(e,t){return e.length==t.length&&e.every((n,r)=>n==t[r])}function uR(e){let t=[[]];for(let n=0;n<e.length;n++)for(let r=0,i=t.length;r<i;r++)t.push(t[r].concat(e[n]));return t.sort((n,r)=>r.length-n.length)}function zn(e){let t=Object.create(null);for(let n in e){let r=e[n];Array.isArray(r)||(r=[r]);for(let i of n.split(" "))if(i){let s=[],a=2,c=i;for(let u=0;;){if(c=="..."&&u>0&&u+3==i.length){a=1;break}let m=/^"(?:[^"\\]|\\.)*?"|[^\/!]+/.exec(c);if(!m)throw new RangeError("Invalid path: "+i);if(s.push(m[0]=="*"?"":m[0][0]=='"'?JSON.parse(m[0]):m[0]),u+=m[0].length,u==i.length)break;let g=i[u++];if(u==i.length&&g=="!"){a=0;break}if(g!="/")throw new RangeError("Invalid path: "+i);c=i.slice(u)}let d=s.length-1,l=s[d];if(!l)throw new RangeError("Invalid path: "+i);let f=new qn(r,a,d>0?s.slice(0,d):null);t[l]=f.sort(t[l])}}return fR.add(t)}function pR(e,t){let n=Object.create(null);for(let s of e)if(!Array.isArray(s.tag))n[s.tag.id]=s.class;else for(let a of s.tag)n[a.id]=s.class;let{scope:r,all:i=null}=t||{};return{style:o(s=>{let a=i;for(let c of s)for(let d of c.set){let l=n[d.id];if(l){a=a?a+" "+l:l;break}}return a},"style"),scope:r}}var cR,Re,dR,os,fR,qn,T,ns,Tt,$O,AO,Et,rs,sl,ze,an,Le,qe,al,ri,is,h,lte,ss=p(()=>{"use strict";Bd();cR=0,Re=class e{static{o(this,"Tag")}constructor(t,n,r,i){this.name=t,this.set=n,this.base=r,this.modified=i,this.id=cR++}toString(){let{name:t}=this;for(let n of this.modified)n.name&&(t=`${n.name}(${t})`);return t}static define(t,n){let r=typeof t=="string"?t:"?";if(t instanceof e&&(n=t),n?.base)throw new Error("Can not derive from a modified tag");let i=new e(r,[],null,[]);if(i.set.push(i),n)for(let s of n.set)i.set.push(s);return i}static defineModifier(t){let n=new os(t);return r=>r.modified.indexOf(n)>-1?r:os.get(r.base||r,r.modified.concat(n).sort((i,s)=>i.id-s.id))}},dR=0,os=class e{static{o(this,"Modifier")}constructor(t){this.name=t,this.instances=[],this.id=dR++}static get(t,n){if(!n.length)return t;let r=n[0].instances.find(c=>c.base==t&&lR(n,c.modified));if(r)return r;let i=[],s=new Re(t.name,i,t,n);for(let c of n)c.instances.push(s);let a=uR(n);for(let c of t.set)if(!c.modified.length)for(let d of a)i.push(e.get(c,d));return s}};o(lR,"sameArray");o(uR,"powerSet");o(zn,"styleTags");fR=new M({combine(e,t){let n,r,i;for(;e||t;){if(!e||t&&e.depth>=t.depth?(i=t,t=t.next):(i=e,e=e.next),n&&n.mode==i.mode&&!i.context&&!n.context)continue;let s=new qn(i.tags,i.mode,i.context);n?n.next=s:r=s,n=s}return r}}),qn=class{static{o(this,"Rule")}constructor(t,n,r,i){this.tags=t,this.mode=n,this.context=r,this.next=i}get opaque(){return this.mode==0}get inherit(){return this.mode==1}sort(t){return!t||t.depth<this.depth?(this.next=t,this):(t.next=this.sort(t.next),t)}get depth(){return this.context?this.context.length:0}};qn.empty=new qn([],2,null);o(pR,"tagHighlighter");T=Re.define,ns=T(),Tt=T(),$O=T(Tt),AO=T(Tt),Et=T(),rs=T(Et),sl=T(Et),ze=T(),an=T(ze),Le=T(),qe=T(),al=T(),ri=T(al),is=T(),h={comment:ns,lineComment:T(ns),blockComment:T(ns),docComment:T(ns),name:Tt,variableName:T(Tt),typeName:$O,tagName:T($O),propertyName:AO,attributeName:T(AO),className:T(Tt),labelName:T(Tt),namespace:T(Tt),macroName:T(Tt),literal:Et,string:rs,docString:T(rs),character:T(rs),attributeValue:T(rs),number:sl,integer:T(sl),float:T(sl),bool:T(Et),regexp:T(Et),escape:T(Et),color:T(Et),url:T(Et),keyword:Le,self:T(Le),null:T(Le),atom:T(Le),unit:T(Le),modifier:T(Le),operatorKeyword:T(Le),controlKeyword:T(Le),definitionKeyword:T(Le),moduleKeyword:T(Le),operator:qe,derefOperator:T(qe),arithmeticOperator:T(qe),logicOperator:T(qe),bitwiseOperator:T(qe),compareOperator:T(qe),updateOperator:T(qe),definitionOperator:T(qe),typeOperator:T(qe),controlOperator:T(qe),punctuation:al,separator:T(al),bracket:ri,angleBracket:T(ri),squareBracket:T(ri),paren:T(ri),brace:T(ri),content:ze,heading:an,heading1:T(an),heading2:T(an),heading3:T(an),heading4:T(an),heading5:T(an),heading6:T(an),contentSeparator:T(ze),list:T(ze),quote:T(ze),emphasis:T(ze),strong:T(ze),link:T(ze),monospace:T(ze),strikethrough:T(ze),inserted:T(),deleted:T(),changed:T(),invalid:T(),meta:is,documentMeta:T(is),annotation:T(is),processingInstruction:T(is),definition:Re.defineModifier("definition"),constant:Re.defineModifier("constant"),function:Re.defineModifier("function"),standard:Re.defineModifier("standard"),local:Re.defineModifier("local"),special:Re.defineModifier("special")};for(let e in h){let t=h[e];t instanceof Re&&(t.name=e)}lte=pR([{tag:h.link,class:"tok-link"},{tag:h.heading,class:"tok-heading"},{tag:h.emphasis,class:"tok-emphasis"},{tag:h.strong,class:"tok-strong"},{tag:h.keyword,class:"tok-keyword"},{tag:h.atom,class:"tok-atom"},{tag:h.bool,class:"tok-bool"},{tag:h.url,class:"tok-url"},{tag:h.labelName,class:"tok-labelName"},{tag:h.inserted,class:"tok-inserted"},{tag:h.deleted,class:"tok-deleted"},{tag:h.literal,class:"tok-literal"},{tag:h.string,class:"tok-string"},{tag:h.number,class:"tok-number"},{tag:[h.regexp,h.escape,h.special(h.string)],class:"tok-string2"},{tag:h.variableName,class:"tok-variableName"},{tag:h.local(h.variableName),class:"tok-variableName tok-local"},{tag:h.definition(h.variableName),class:"tok-variableName tok-definition"},{tag:h.special(h.variableName),class:"tok-variableName2"},{tag:h.definition(h.propertyName),class:"tok-propertyName tok-definition"},{tag:h.typeName,class:"tok-typeName"},{tag:h.namespace,class:"tok-namespace"},{tag:h.className,class:"tok-className"},{tag:h.macroName,class:"tok-macroName"},{tag:h.propertyName,class:"tok-propertyName"},{tag:h.operator,class:"tok-operator"},{tag:h.comment,class:"tok-comment"},{tag:h.meta,class:"tok-meta"},{tag:h.invalid,class:"tok-invalid"},{tag:h.punctuation,class:"tok-punctuation"}])});var mR,hR,gR,OR,yR,wR,SR,bR,vR,kR,PR,xR,_R,TR,ER,RR,IR,QR,CO,$R,AR,CR,MR,XR,jR,WR,MO,XO=p(()=>{"use strict";ts();ss();mR=177,hR=179,gR=184,OR=12,yR=13,wR=17,SR=20,bR=25,vR=53,kR=95,PR=142,xR=144,_R=145,TR=148,ER=10,RR=13,IR=32,QR=9,CO=47,$R=41,AR=125,CR=new ye((e,t)=>{for(let n=0,r=e.next;(t.context&&(r<0||r==ER||r==RR||r==CO&&e.peek(n+1)==CO)||r==$R||r==AR)&&e.acceptToken(mR),!(r!=IR&&r!=QR);)r=e.peek(++n)},{contextual:!0}),MR=new Set([kR,gR,SR,OR,wR,xR,_R,PR,TR,yR,vR,bR]),XR=new Ln({start:!1,shift:o((e,t)=>t==hR?e:MR.has(t),"shift")}),jR=zn({"func interface struct chan map const type var":h.definitionKeyword,"import package":h.moduleKeyword,"switch for go select return break continue goto fallthrough case if else defer":h.controlKeyword,range:h.keyword,Bool:h.bool,String:h.string,Rune:h.character,Number:h.number,Nil:h.null,VariableName:h.variableName,DefName:h.definition(h.variableName),TypeName:h.typeName,LabelName:h.labelName,FieldName:h.propertyName,"FunctionDecl/DefName":h.function(h.definition(h.variableName)),"TypeSpec/DefName":h.definition(h.typeName),"CallExpr/VariableName":h.function(h.variableName),LineComment:h.lineComment,BlockComment:h.blockComment,LogicOp:h.logicOperator,ArithOp:h.arithmeticOperator,BitOp:h.bitwiseOperator,"DerefOp .":h.derefOperator,"UpdateOp IncDecOp":h.updateOperator,CompareOp:h.compareOperator,"= :=":h.definitionOperator,"<-":h.operator,'~ "*"':h.modifier,"; ,":h.separator,"... :":h.punctuation,"( )":h.paren,"[ ]":h.squareBracket,"{ }":h.brace}),WR={__proto__:null,package:10,import:18,true:380,false:380,nil:383,struct:48,func:68,interface:78,chan:94,map:118,make:157,new:159,const:204,type:212,var:224,if:236,else:238,switch:242,case:248,default:250,for:260,range:266,go:270,select:274,return:284,break:288,continue:290,goto:292,fallthrough:296,defer:300},MO=_t.deserialize({version:14,states:"!=xO#{QQOOP$SOQOOO&UQTO'#CbO&]QRO'#FlO]QQOOOOQP'#Cn'#CnOOQP'#Co'#CoO&eQQO'#C|O(kQQO'#C{O)]QRO'#GiO+tQQO'#D_OOQP'#Ge'#GeO+{QQO'#GeO.aQTO'#GaO.hQQO'#D`OOQP'#Gm'#GmO.mQRO'#GdO/hQQO'#DgOOQP'#Gd'#GdO/uQQO'#DrO2bQQO'#DsO4QQTO'#GqO,^QTO'#GaO4XQQO'#DxO4^QQO'#D{OOQO'#EQ'#EQOOQO'#ER'#EROOQO'#ES'#ESOOQO'#ET'#ETO4cQQO'#EPO5}QQO'#EPOOQP'#Ga'#GaO6UQQO'#E`O6^QQO'#EcOOQP'#G`'#G`O6cQQO'#EsOOQP'#G_'#G_O&]QRO'#FnOOQO'#Fn'#FnO9QQQO'#G^QOQQOOO&]QROOO9XQQO'#C`O9^QSO'#CdO9lQQO'#C}O9tQQO'#DSO9yQQO'#D[O:kQQO'#CsO:pQQO'#DhO:uQQO'#EeO:}QQO'#EiO;VQQO'#EoO;_QQO'#EuO<uQQO'#ExO<|QQO'#FRO4cQQO'#FWO=WQQO'#FYO=]QRO'#F_O=jQRO'#FaO=uQQO'#FaOOQP'#Fe'#FeO4cQQO'#FgP=zOWO'#C^POOO)CAz)CAzOOQO'#G]'#G]OOQO,5<W,5<WOOQO-E9j-E9jO?TQTO'#CqOOQO'#C|'#C|OOQP,59g,59gO?tQQO'#D_O@fQSO'#FuO@kQQO'#C}O@pQQO'#D[O9XQQO'#FqO@uQRO,5=TOAyQQO,59yOCVQSO,5:[O@kQQO'#C}OCaQQO'#DjOOQP,59^,59^OOQO,5<a,5<aO?tQQO'#DeOOQO,5:e,5:eOOQO-E9s-E9sOOQP,59z,59zOOQP,59|,59|OCqQSO,5:QO(kQQO,5:ROC{QQO,5:RO&]QRO'#FxOOQO'#Fx'#FxOFjQQO'#GpOFwQQO,5:^OF|QQO,5:_OHdQQO,5:`OHlQQO,5:aOHvQRO'#FyOIaQRO,5=]OIuQQO'#DzOOQP,5:d,5:dOOQO'#EV'#EVOOQO'#EW'#EWOOQO'#EX'#EXOOQO'#EZ'#EZOOQO'#E['#E[O4cQQO,5:pO4cQQO,5:pO4cQQO,5:pO4cQQO,5:pO4cQQO,5:pO4cQQO,5:wOOQP,5:x,5:xO?tQQO'#EOOOQP,5:g,5:gOOQP,5:k,5:kO9yQQO,59vO4cQQO,5:zO4cQQO,5:}OI|QRO,5;_OOQO,5<Y,5<YOOQO-E9l-E9lO]QQOOOOQP'#Cb'#CbOOQP,58z,58zOOQP'#Cf'#CfOJWQQO'#CfOJ]QSO'#CkOOQP,59O,59OOJkQQO'#DPOLZQQO,5<UOLbQQO,59iOLsQQO,5<TOMpQQO'#DUOOQP,59n,59nOOQP,59v,59vONfQQO,59vONmQQO'#CwOOQP,59_,59_O?tQQO,5:SONxQRO'#EgO! VQQO'#EhOOQP,5;P,5;PO! |QQO'#EkO!!WQQO'#EnOOQP,5;T,5;TO!!`QRO'#EqO!!mQQO'#ErOOQP,5;Z,5;ZO!!uQTO'#CbO!!|QTO,5;aO&]QRO,5;aO!#WQQO,5;jO!$yQTO,5;dO!%WQQO'#EzOOQP,5;d,5;dO&]QRO,5;dO!%cQSO,5;mO!%mQQO'#E`O!%uQQO'#EcO!%zQQO'#FTO!&UQQO'#FTOOQP,5;m,5;mO!&ZQQO,5;mO!&`QTO,5;rO!&mQQO'#F[OOQP,5;t,5;tO!&xQTO'#GqOOQP,5;y,5;yOOQP'#Et'#EtOOQP,5;{,5;{O!']QTO,5<RPOOO'#Fk'#FkP!'jOWO,58xPOOO,58x,58xO!'uQQO,59yO!'zQQO'#GgOOQP,59i,59iO(kQQO,59vOOQP,5<],5<]OOQP-E9o-E9oOOQP1G/e1G/eOOQP1G/v1G/vO!([QSO'#DlO!(lQQO'#DlO!(wQQO'#DkOOQO'#Go'#GoO!(|QQO'#GoO!)UQQO,5:UO!)ZQQO'#GnO!)fQQO,5:PPOQO'#Cq'#CqO(kQQO1G/lOOQP1G/m1G/mO(kQQO1G/mOOQO,5<d,5<dOOQO-E9v-E9vOOQP1G/x1G/xO!)kQSO1G/yOOQP'#Cy'#CyOOQP1G/z1G/zO?tQQO1G/}O!)xQSO1G/{O!*YQQO1G/|O!*gQTO,5<eOOQP-E9w-E9wOOQP,5:f,5:fO!+QQQO,5:fOOQP1G0[1G0[O!,vQTO1G0[O!.wQTO1G0[O!/OQTO1G0[O!0pQTO1G0[O!1QQTO1G0cO!1bQQO,5:jOOQP1G/b1G/bOOQP1G0f1G0fOOQP1G0i1G0iOOQP1G0y1G0yOOQP,59Q,59QO&]QRO'#FmO!1mQSO,59VOOQP,59V,59VOOQO'#DQ'#DQO?tQQO'#DQO!1{QQO'#DQOOQO'#Gh'#GhO!2SQQO'#GhO!2[QQO,59kO!2aQSO'#CqOJkQQO'#DPOOQP,5=R,5=RO@kQQO1G1pOOQP1G/w1G/wO.hQQO'#ElO!2rQRO1G1oO@kQQO1G1oO@kQQO'#DVO?tQQO'#DWOOQP'#Gk'#GkO!2}QRO'#GjOOQP'#Gj'#GjO&]QRO'#FsO!3`QQO,59pOOQP,59p,59pO!3gQRO'#CxO!3uQQO'#CxO!3|QRO'#CxO.hQQO'#CxO&]QRO'#FoO!4XQQO,59cOOQP,59c,59cO!4dQQO1G/nO4cQQO,5;RO!4iQQO,5;RO&]QRO'#FzO!4nQQO,5;SOOQP,5;S,5;SO!6aQQO'#DgO?tQQO,5;VOOQP,5;V,5;VO&]QRO'#F}O!6hQQO,5;YOOQP,5;Y,5;YO!6pQRO,5;]O4cQQO,5;]O&]QRO'#GOO!6{QQO,5;^OOQP,5;^,5;^O!7TQRO1G0{O!7`QQO1G0{O4cQQO1G1UO!8vQQO1G1UOOQP1G1O1G1OO!9OQQO'#GPO!9YQQO,5;fOOQP,5;f,5;fO4cQQO'#E{O!9eQQO'#E{O<uQQO1G1OOOQP1G1X1G1XO!9jQQO,5:zO!9jQQO,5:}O!9tQSO,5;oO!:OQQO,5;oO!:VQQO,5;oO!9OQQO'#GRO!:aQQO,5;vOOQP,5;v,5;vO!<PQQO'#F]O!<WQQO'#F]POOO-E9i-E9iPOOO1G.d1G.dO!<]QQO,5:VO!<gQQO,5=ZO!<tQQO,5=ZOOQP1G/p1G/pO!<|QQO,5=YO!=WQQO,5=YOOQP1G/k1G/kOOQP7+%W7+%WOOQP7+%X7+%XOOQP7+%e7+%eO!=cQQO7+%eO!=hQQO7+%iOOQP7+%g7+%gO!=mQQO7+%gO!=rQQO7+%hO!>PQSO7+%hOOQP7+%h7+%hO4cQQO7+%hOOQP1G0Q1G0QO!>^QQO1G0QOOQP1G0U1G0UO!>fQQO1G0UOF|QQO1G0UOOQO,5<X,5<XOOQO-E9k-E9kOOQP1G.q1G.qOOQO,59l,59lO?tQQO,59lO!?cQQO,5=SO!?jQQO,5=SOOQP1G/V1G/VO!?rQQO,59yO!?}QRO7+'[O!@YQQO'#EmO!@dQQO'#HOO!@lQQO,5;WOOQP7+'Z7+'ZO!@qQRO7+'ZOOQP,59q,59qOOQP,59r,59rOOQO'#DZ'#DZO!@]QQO'#FtO!@|QRO,59tOOQO,5<_,5<_OOQO-E9q-E9qOOQP1G/[1G/[OOQP,59d,59dOHgQQO'#FpO!3uQQO,59dO!A_QRO,59dO!AjQRO,59dOOQO,5<Z,5<ZOOQO-E9m-E9mOOQP1G.}1G.}O(kQQO7+%YOOQP1G0m1G0mO4cQQO1G0mOOQO,5<f,5<fOOQO-E9x-E9xOOQP1G0n1G0nO!AxQQO'#GdOOQP1G0q1G0qOOQO,5<i,5<iOOQO-E9{-E9{OOQP1G0t1G0tO4cQQO1G0wOOQP1G0w1G0wOOQO,5<j,5<jOOQO-E9|-E9|OOQP1G0x1G0xO!B]QQO7+&gO!BeQSO7+&gO!CsQSO7+&pO!CzQQO7+&pOOQO,5<k,5<kOOQO-E9}-E9}OOQP1G1Q1G1QO!DRQQO,5;gOOQO,5;g,5;gO!DWQSO7+&jOOQP7+&j7+&jO!DbQQO7+&pO!7`QQO1G1[O!DgQQO1G1ZOOQO1G1Z1G1ZO!DnQSO1G1ZOOQO,5<m,5<mOOQO-E:P-E:POOQP1G1b1G1bO!DxQSO'#GqO!E]QQO'#F^O!EbQQO'#F^O!EgQQO,5;wOOQO,5;w,5;wO!ElQSO1G/qOOQO1G/q1G/qO!EyQSO'#DoO!FZQQO'#DoO!FfQQO'#DnOOQO,5<c,5<cO!FkQQO1G2uOOQO-E9u-E9uOOQO,5<b,5<bO!FxQQO1G2tOOQO-E9t-E9tOOQP<<IP<<IPOOQP<<IT<<ITOOQP<<IR<<IRO!GSQSO<<ISOOQP<<IS<<ISO4cQQO<<ISO!GaQSO<<ISOOQP7+%l7+%lO!GkQQO7+%lOOQP7+%p7+%pO!GpQQO7+%pO!GuQQO7+%pOOQO1G/W1G/WOOQO,5<^,5<^O!G}QQO1G2nOOQO-E9p-E9pOOQP<<Jv<<JvO.hQQO'#F{O!@YQQO,5;XOOQO,5;X,5;XO!HUQQO,5=jO!H^QQO,5=jOOQO1G0r1G0rOOQP<<Ju<<JuOOQP,5<`,5<`OOQP-E9r-E9rOOQO,5<[,5<[OOQO-E9n-E9nO!HfQRO1G/OOOQP1G/O1G/OOOQP<<Ht<<HtOOQP7+&X7+&XO!HqQQO'#DeOOQP7+&c7+&cOOQP<<JR<<JRO!HxQRO<<JRO!ITQQO<<J[O!I]QQO<<J[OOQO1G1R1G1ROOQP<<JU<<JUO4cQQO<<J[O!IbQSO7+&vOOQO7+&u7+&uO!IlQQO7+&uO4cQQO,5;xOOQO1G1c1G1cO!<]QQO,5:YP!<]QQO'#FwP?tQQO'#FvOOQPAN>nAN>nO4cQQOAN>nO!IsQSOAN>nOOQP<<IW<<IWOOQP<<I[<<I[O!I}QQO<<I[P!>nQQO'#FrOOQO,5<g,5<gOOQO-E9y-E9yOOQO1G0s1G0sOOQO,5<h,5<hO!JVQQO1G3UOOQO-E9z-E9zOOQP7+$j7+$jO!J_QQO'#GnO!B]QQOAN?mO!JjQQOAN?vO!JqQQOAN?vO!KzQSOAN?vOOQO<<Ja<<JaO!LRQSO1G1dO!L]QSO1G/tOOQO1G/t1G/tO!LjQSOG24YOOQPG24YG24YOOQPAN>vAN>vO!LtQQOAN>vP.hQQO'#F|OOQPG25XG25XO!LyQQOG25bO!MOQQO'#FPOOQPG25bG25bO!MZQQOG25bOOQPLD)tLD)tOOQPG24bG24bO!JqQQOLD*|O!9OQQO'#GQO!McQQO,5;kOOQP,5;k,5;kO?tQQO'#FQO!MnQQO'#FQO!MsQQOLD*|OOQP!$'Nh!$'NhOOQO,5<l,5<lOOQO-E:O-E:OOOQP1G1V1G1VO!MzQQO,5;lOOQO,5;l,5;lO!NPQQO!$'NhOOQO1G1W1G1WO!JqQQO!)9DSOOQP!.K9n!.K9nO# {QTO'#CqO#!`QTO'#CqO##}QSO'#CqO#$XQSO'#CqO#&]QSO'#CqO#&gQQO'#FyO#&tQQO'#FyO#'OQQO,5=]O#'ZQQO,5=]O#'cQQO,5:pO!7`QQO,5:pOF|QQO,5:pO#'cQQO,5:pO!7`QQO,5:pOF|QQO,5:pO#'cQQO,5:pO!7`QQO,5:pOF|QQO,5:pO#'cQQO,5:pO!7`QQO,5:pOF|QQO,5:pO#'cQQO,5:pO!7`QQO,5:pOF|QQO,5:pO!7`QQO,5:wO!7`QQO,5:zO!7`QQO,5:}O#(yQSO'#CbO#)}QSO'#CbO#*bQSO'#GqO#*rQSO'#GqO#+PQRO'#GgO#+yQSO,5<eO#,ZQSO,5<eO#,hQSO1G0[O#-rQTO1G0[O#-yQSO1G0[O#.TQSO1G0[O#0{QTO1G0[O#1SQSO1G0[O#2eQSO1G0[O#2lQTO1G0[O#2sQSO1G0[O#4XQSO1G0[O#4`QTO1G0[O#4jQSO1G0[O#4wQSO1G0cO#5dQTO'#CqO#5kQTO'#CqO#6bQSO'#GqO#'cQQO'#EPO!7`QQO'#EPOF|QQO'#EPO#8]QQO'#EPO#8gQQO'#EPO#8qQQO'#EPO#8{QQO'#E`O#9TQQO'#EcO@kQQO'#C}O?tQQO,5:RO#9YQQO,59vO#:iQQO,59vO?tQQO,59vO?tQQO1G/lO?tQQO1G/mO?tQQO7+%YO?tQQO'#C{O#:pQQO'#DgO#9YQQO'#D[O#:wQQO'#D[O#:|QSO,5:QO#;WQQO,5:RO#;]QQO1G/nO?tQQO,5:SO#;bQQO'#Dh",stateData:"#;m~O$yOSPOS$zPQ~OVvOX{O[oO^YOaoOdoOh!POjcOr|Ow}O!P!OO!QnO!WaO!]!QO!phO!qhO#Y!RO#^!SO#d!TO#j!UO#m!VO#v!WO#{!XO#}!YO$S!ZO$U![O$V![O$W!]O$Y!^O$[!_O%OQO%UTO%VUO%YVO%fiO%giO%hjO%ikO%jlO$v%QP~OTzO~P]O$z!`O~OVeXZeX^eX^!TXj!TXnUXneX!QeX!WeX!W!TX!|eX#ReX#TeX#UeX#WUX$weX%YeX%`eX%feX%geX%ieX%jeX%keX%leX%meX%neX%oeX%peX%qeX~O!a#hX~P$XOV!bO$w!bO~O[!wX^pX^!wXa!wXd!wXhpXh!wXrpXr!wXwpXw!wX!PpX!P!wX!QpX!Q!wX!WpX!W!wX!]pX!]!wX!p!wX!q!wX%OpX%O!wX%U!wX%V!wX%YpX%Y!wX%f!wX%g!wX%h!wX%i!wX%j!wX~O^!hOh!POr!jOw}O!P!OO!Q!kO!WaO!]!QO%O!eO%Y!fO~On!lO#W%]XV%]X^%]Xh%]Xr%]Xw%]X!P%]X!Q%]X!W%]X!]%]X#T%]X$w%]X%O%]X%Y%]Xu%]X~O[oO^YOaoOdoOh!POr!pOw}O!P!OO!WaO!]!QO!phO!qhO%O+wO%UTO%VUO%YVO%fiO%giO%hjO%ikO%jlO~O!Q-OO~P*aOj!qO^%XX]%XXn%XX!V%XX~O!W!tOV%TXZ%TX^%TXn%TX!Q%TX!W%TX!|%TX#R%TX#T%TX#U%TX$w%TX%Y%TX%`%TX%f%TX%g%TX%i%TX%j%TX%k%TX%l%TX%m%TX%n%TX%o%TX%p%TX%q%TX]%TX!V%TXj%TXi%TX!a%TXu%TX~OZ!sO~P,^O%O!eO~O!W!tO^%WXj%WX]%WXn%WX!V%WXu%WXV%WX$w%WX%`%WX#T%WX[%WX!a%WX~Ou!{O!QnO!V!zO~P*aOV!}O[oO^YOaoOdoOh!POjcOr!pOw}O!P!OO!QnO!WaO!]!QO!phO!qhO#Y!RO#^!SO#d!TO#j!UO#m!VO#v!WO#{!XO#}!YO$S!ZO$U![O$V![O$W!]O$Y!^O$[!_O%OQO%UTO%VUO%YVO%fiO%giO%hjO%ikO%jlOi%dP~O^#QO~OZ#RO^#VOn#TO!Q#cO!W#SO#R#dO%Y#XO%`#ZO%fiO%giO%i#ZO%j#YO%k#XO%l#XO%m#YO%n#YO%o#YO%p#[O%q#]OV`X#T%eX#U%eX$w`X~O!|#`O~P2gO^#VO~O^#eO~O!QnO~P*aO[oO^YOaoOdoOh!POr!pOw}O!QnO!WaO!]!QO!phO!qhO%O+wO%UTO%VUO%YVO%fiO%giO%hjO%ikO%jlO~O!P#hO~P4jO#T#iO#U#iO~O#W#jO~O!a#kO~OVvO[oO^YOaoOdoOh!POjcOr|Ow}O!P!OO!QnO!WaO!]!QO!phO!qhO#Y!RO#^!SO#d!TO#j!UO#m!VO#v!WO#{!XO#}!YO$S!ZO$U![O$V![O$W!]O$Y!^O$[!_O%OQO%UTO%VUO%YVO%fiO%giO%hjO%ikO%jlO~O$v%QX~P6hO%O#oO~OZ#rO[#qO^#sO%O#oO~O^#uO%O#oO~Oj#yO~O^!hOh!POr!jOw}O!P!OO!Q#|O!WaO!]!QO%O!eO%Y!fO~Oj#}O~O!W$PO~O^$RO%O#oO~O^$UO%O#oO~O^$XO%O#oO~O[oO^YOaoOdoOh!POr!pOw}O!P!OO!Q-PO!WaO!]!QO!phO!qhO%O$ZO%UTO%VUO%YVO%fiO%giO%hjO%ikO%jlO~Oj$`O~P;_OV$fOjcO~P;_Oj$kO~O!QnOV$RX$w$RX~P*aO%O$oOV$TX$w$TX~O%O$oO~O${$rO$|$rO$}$tO~OZeX^!TX!W!TXj!TXn!TXh!TXr!TXw!TX{!TX!P!TX!Q!TX!]!TX%O!TX%Y!TX~O]!TX!V!TXu!TX#T!TXV!TX$w!TX%`!TX[!TX!a!TX~P>VO^!hOh!POr-TOw}O!P-_O!Q-`O!W-^O!]-eO%O!eO%Y!fO~OZ!sO~O^#uO~O!P$xO~On!lO#W%]aV%]a^%]ah%]ar%]aw%]a!P%]a!Q%]a!W%]a!]%]a#T%]a$w%]a%O%]a%Y%]au%]a~O]${O^#QO~OZ#RO^#VO!W#SO%Y#XO%`#ZO%fiO%giO%i#ZO%j#YO%k#XO%l#XO%m#YO%n#YO%o#YO%p#[O%q#]O~O]$|O!|,WO~PBROj!qOn%QO!QnOi%cP~P*aO!V%WO!|#`O~PBRO!V%YO~OV!}O[oO^YOaoOdoOh!POjcOr!pOw}O!P!OO!QnO!WaO!]!QO!phO!qhO#Y!RO#^!SO#d!TO#j!UO#m!VO#v!WO#{!XO#}!YO$S!ZO$U![O$V![O$W!]O$Y!^O$[!_O%OQO%UTO%VUO%YVO%fiO%giO%hjO%ikO%jlO~Oi%dX#p%dX#q%dX~PDQOi%]O~O[oO^YOaoOdoOh!POr!pOw}O!P!OO!Q-QO!WaO!]!QO!phO!qhO%O+{O%UTO%VUO%YVO%fiO%giO%hjO%ikO%jlO~O^%aO%O%_O~O!QnO!a%cO~P*aO!QnOn$mX#T$mX#U$mXV$mX$w$mX!a$mX~P*aOn#TO#T%ea#U%eaV%ea$w%ea!a%ea~O]%fO~PF|OV#ga$w#ga~PDTO[%sO~OZ#rO[#qO]%vO%O#oO~O^!hOh!POn%zOr-TOu%xOw}O!P-_O!Q-`O!W-^O!]-eO%O,dO%Y!fO]%[P~O^&OOh!POr!jOw}O!P!OO!Q!kO!WaO!]!QO%Y!fO^%ZXj%ZX~O%O%}O~PKfOjcO^qa]qanqa!Vqa~O^#uO!W&SO~O^!hOh!POr-TOw}O{&WO!P-_O!Q-`O!W-^O!]-eO%O,xO%Y!fO~Oi&^O~PL{O^!hOh!POr!jOw}O!Q!kO!WaO!]!QO%O!eO%Y!fO~O!P#hO~PMwOi&eO%O,yO%Y!fO~O#T&gOV#ZX$w#ZX~P?tO]&kO%O#oO~O^!hOh!POr-TOw}O!P-_O!Q-`O!]-eO%O!eO%Y!fO~O!W&lO#T&mO~P! _O]&qO%O#oO~O#T&sOV#eX$w#eX~P?tO]&vO%O#oO~OjeX~P$XOjcO!|,XO~P2gOn!lO#W&yO#W%]X~O^#VOn#TO!Q#cO!W#SO!|,XO#R#dO%Y#XO%`#ZO%fiO%giO%i#ZO%j#YO%k#XO%l#XO%m#YO%n#YO%o#YO%p#[O%q#]OV`X#T%eX#U%eX~OZ&zOj$`O$w`X~P!#cOi'OO#p'PO#q'QO~OZ#ROjcO~P!#cO#T'TO#U#iO~O#W'UO~OV'WO!QnO~P*aOV'XO~OjcO~O!|#`OV#za$w#za~PBROi'[O#p']O#q'^O~On#TO!|#`OV%eX$w%eX!a%eX~PBRO!|#`OV$Za$w$Za~PBRO${$rO$|$rO$}'`O~O]${O~O%O!eO]%ZXn%ZX!V%ZX~PKfO!|#`Oi!_Xn!_X!a!`X~PBROi!_Xn!_X!a!`X~O!a'aO~On'bOi%cX~Oi'dO~On'eO!V%bX!a%bX~O!V'gO~O]'jOn'kO!|,YO~PBROn'nO!V'mO!a'oO!|#`O~PBRO!QnO!V'qO!a'rO~P*aO!|#`On$ma#T$ma#U$maV$ma$w$ma!a$ma~PBRO]'sOu'tO~O%Y#XO%j#YO%k#XO%l#XO%m#YO%n#YO%o#YOV!xiZ!xi^!xin!xi!Q!xi!W!xi!|!xi#R!xi#T!xi#U!xi$w!xi%`!xi%f!xi%g!xi%i!xi%p!xi%q!xi~O!V!xii!xi!a!xi~P!+YO%Y#XO%`#ZO%fiO%giO%i#ZO%j#YO%k#XO%l#XO%m#YO%n#YO%o#YOV!xiZ!xi^!xin!xi!Q!xi!W!xi#R!xi#T!xi#U!xi$w!xi%p!xi%q!xi!V!xii!xi!a!xi~O!|!xi~P!-TO!|#`O~P!-TO%Y#XO%`#ZO%fiO%giO%i#ZO%j#YO%k#XO%l#XO%m#YO%n#YO%o#YO%p#[OV!xiZ!xi^!xin!xi!Q!xi!W!xi#R!xi#T!xi#U!xi$w!xi%q!xi~O!|#`O!V!xii!xi!a!xi~P!/VO!|#`OV#Pi$w#Pi!a#Pi~PBRO]'uOn'wOu'vO~OZ#rO[#qO]'zO%O#oO~Ou'|O~P?tOn'}O]%[X~O](PO~OZeX^mX^!TXj!TX!W!TX~OjcOV$]i$w$]i~O%`(ZOV%^X$w%^Xn%^X!V%^X~Oi(`O~PL{O[(aO!W!tOVlX$wlX~On(bO~P?tO[(aOVlX$wlX~Oi(hO%O,yO%Y!fO~O!V(iO~O#T(kO~O](nO%O#oO~O[oO^YOaoOdoOh!POr!pOu-bOw}O!P!OO!QnO!V-UO!WaO!]!QO!phO!qhO%UTO%VUO%YVO%fiO%giO%hjO%ikO%jlO~O%O+zO~P!4vO](sO%O#oO~O#T(tOV#ea$w#ea~O](xO%O#oO~O#k(yOV#ii$w#ii~O[oO^YOaoOdoOh!POr!pOw}O!P!OO!Q-PO!WaO!]!QO!phO!qhO%O+xO%UTO%VUO%YVO%fiO%giO%hjO%ikO%jlO~O^(|O%O%_O~O#p%dP#q%dP~P/uOi)PO#p'PO#q'QO~O!a)RO~O!QnO#y)VO~P*aOV)WO!|#`O~PBROj#wa~P;_OV)WO!QnO~P*aOi)]O#p']O#q'^O~O[oO^YOaoOdoOh!POr!pOw}O!P!OO!QnO!WaO!]!QO!phO!qhO%UTO%VUO%YVO%fiO%giO%hjO%ikO%jlO~O%O,eO~P!:lO!a)bO~Oj!qO!QnO~P*aOj!qO!QnOi%ca~P*aOn)iOi%ca~O!V%ba!a%ba~P?tOn)lO!V%ba!a%ba~O])nO~O])oO~O!V)pO~O!QnO!V)rO!a)sO~P*aO!V)rO!a)sO!|#`O~PBRO])uOn)vO~O])wOn)xO~O^!hOh!POr-TOu%xOw}O!P-_O!Q-`O!W-^O!]-eO%O,dO%Y!fO~O]%[a~P!>nOn)|O]%[a~O]${O]tXntX~OjcOV$^q$w$^q~On*PO{&WO~P?tOn*SO!V%rX~O!V*UO~OjcOV$]q$w$]q~O%`(ZOV|a$w|an|a!V|a~O[*]OVla$wla~O[*]O!W!tOVla$wla~On*PO{&WO!W*`O^%WXj%WX~P! _OjcO#j!UO~OjcO!|,XO~PBROZ*dO^#VO!W#SO%Y#XO%`#ZO%fiO%giO%i#ZO%j#YO%k#XO%l#XO%m#YO%n#YO%o#YO%p#[O%q#]O~O!|#`O~P!BoO#^*eO~P?tO!a*fO~Oj$`O!|,XO~P!BoO#W*hO~Oj#wi~P;_OV*kO!|#`O~PBROn#TO!Q#cO!|#`O!a$QX#T%eX~PBRO#T*lO~O#W*lO~O!a*mO~O!|#`Oi!_in!_i~PBRO!|#`Oi!bXn!bX!a!cX~PBROi!bXn!bX!a!cX~O!a*nO~Oj!qO!QnOi%ci~P*aO!V%bi!a%bi~P?tO!V*qO!a*rO!|#`O~PBRO!V*qO!|#`O~PBRO]*tO~O]*uO~O]*uOu*vO~O]%[i~P!>nO%O!eO!V%ra~On*|O!V%ra~O[+OOVli$wli~O%O+yO~P!4vO#k+QOV#iy$w#iy~O^+RO%O%_O~O]+SO~O!|,XOj#xq~PBROj#wq~P;_O!V+ZO!|#`O~PBRO]+[On+]O~O%O!eO!V%ri~O^#QOn'eO!V%bX~O#^+`O~P?tOj+aO~O^#VO!W#SO!|#`O%Y#XO%`#ZO%fiO%giO%i#ZO%j#YO%k#XO%l#XO%m#YO%n#YO%o#YO%p#[O%q#]O~OZ+cO~P!JvO!|#`O!a$Qi~PBRO!|#`Oi!bin!bi~PBRO!V+dO!|#`O~PBRO]+eO~O]+fO~Oi+iO#p+jO#q+kO~O^+lO%O%_O~Oi+pO#p+jO#q+kO~O!a+rO~O#^+sO~P?tO!a+tO~O]+uO~OZeX^eX^!TXj!TX!WeX!W!TX!|eX%YeX%`eX%feX%geX%ieX%jeX%keX%leX%meX%neX%oeX%peX%qeXVeXneX!QeX#ReX#TeX#UeX$weX~O]eX]!TX!VeXieX!aeX~P!NUOjeX~P!NUOZeX^eX^!TXj!TX!WeX!W!TX!|eX%YeX%`eX%feX%geX%ieX%jeX%keX%leX%meX%neX%oeX%peX%qeXn!TX!VeX~O]eX!V!TX~P#!gOh!TXr!TXw!TX{!TX!P!TX!Q!TX!]!TX%O!TX%Y!TX~P#!gOZeX^eX^!TXj!TXneX!WeX!W!TX!|eX%YeX%`eX%feX%geX%ieX%jeX%keX%leX%meX%neX%oeX%peX%qeX~O]eXueX~P#$xO]$mXn$mXu$mX~PF|Oj$mXn$mX~P!7`On+|O]%eau%ea~On+}Oj%ea~O[oO^YOaoOdoOh!POr!pOw}O!P!OO!Q-OO!WaO!]!QO!phO!qhO%O+yO%UTO%VUO%YVO%fiO%giO%hjO%ikO%jlO~OZeX]!TX^UXhUXnUXn!TXrUXuUXwUX!PUX!QUX!WUX!W!TX!]UX%OUX%YUX~OnUX!QeX!aeX#TeX#WUX~P#$xOn+|O!|,YO]%eXu%eX~PBROn+}O!|,XOj%eX~PBRO^&OOV%ZXj%ZX$w%ZX]%ZXn%ZX!V%ZXu%ZX%`%ZX#T%ZX[%ZX!a%ZX~P?wO!|,YO]$man$mau$ma~PBRO!|,XOj$man$ma~PBRO%Y#XO%j#YO%k#XO%l#XO%m#YO%n#YO%o#YOZ!xi]!xi^!xi!W!xi!|!xi%`!xi%f!xi%g!xi%i!xi%p!xi%q!xi~Oj!xi~P!+YOn!xiu!xi~P#,hO%Y#XO%`#ZO%fiO%giO%i#ZO%j#YO%k#XO%l#XO%m#YO%n#YO%o#YOZ!xi]!xi^!xi!W!xi!|!xi%p!xi%q!xi~O%Y#XO%`#ZO%fiO%giO%i#ZO%j#YO%k#XO%l#XO%m#YO%n#YO%o#YOV!xiZ!xi^!xij!xin!xi!Q!xi!W!xi#R!xi#T!xi#U!xi$w!xi%p!xi%q!xi~O!|!xi~P#/_On!xiu!xi~P#.TO%Y#XO%`#ZO%fiO%giO%i#ZO%j#YO%k#XO%l#XO%m#YO%n#YO%o#YOZ!xi]!xi^!xi!W!xi%p!xi%q!xi~O!|,WO~P#1^O!|,XO~P#/_O!|,YOn!xiu!xi~P#1^O%Y#XO%`#ZO%fiO%giO%i#ZO%j#YO%k#XO%l#XO%m#YO%n#YO%o#YO%p#[OZ!xi]!xi^!xi!W!xi%q!xi~O!|,WO~P#3QO!|,XOj!xi~P!/VO!|,YOn!xiu!xi~P#3QO!|,XOj#Pi~PBROV!TXZeX^mX!W!TX$w!TX~O%`!TX~P#5RO[!TXhmXnmXrmXwmX!PmX!QmX!WmX!]mX%OmX%YmX~P#5ROn#TO!Q,aO!|,XO#R#dOj`X#T%eX#U%eX~PBRO[oO^YOaoOdoOh!POr!pOw}O!P#hO!WaO!]!QO!phO!qhO%UTO%VUO%YVO%fiO%giO%hjO%ikO%jlO~O!Q-OO%O+yO~P#6{O!Q-PO%O+xO~P#6{O!Q-QO%O+{O~P#6{O#T,bO#U,bO~O#W,cO~O^!hOh!POr-TOw}O!P-_O!Q-WO!W-^O!]-eO%O!eO%Y!fO~O^!hOh!POr-TOw}O!Q-`O!W-^O!]-eO%O!eO%Y!fO~O!P-VO~P#9zO%O+wO~P!4vO!P-XO~O!V-YO!|#`O~PBRO!V-ZO~O!V-[O~O!W-dO~OP%ka%Oa~",goto:"!FW%sPP%tP%wP%zP'SP'XPPPP'`'cP'u'uP)w'u-_PPP0j0m0qP1V4b1VP7s8WP1VP8a8d8hP8p8w1VPP1V8{<`?vPPCY-_-_-_PCdCuCxPC{DQ'u'uDV'uES'u'u'u'uGUIW'uPPJR'uJUMjMjMj'u! r! r!#SP!$`!%d!&d'cP'cPP'cP!&yP!'V!'^!&yP!'a!'h!'n!'w!&yP!'z!(R!&y!(U!(fPP!&yP!(x!)UPP!&y!)Y!)c!&yP!)g!)gP!&yP!&yP!)j!)m!&v!&yP!&yPPP!&yP!&yP!)q!)q!)w!)}!*U!*[!*d!*j!*p!*w!*}!+T!+Z!.q!.x!/O!/X!/m!/s!/z!0Q!0W!0^!0d!0jPPPPPPPPP!0p!1f!1k!1{!2kPP!7P!:^P!>u!?Z!?_!@Z!@fP!@p!D_!Df!Di!DuPPPPPPPPPPPP!FSR!aPRyO!WXOScw!R!T!U!W#O#k#n#u$R$X&O&j&u&|'W'Y']'})W)|*k*w+gQ#pzU#r{#s%uQ#x|U$T!S$U&pQ$^!VQ$y!lR)U'RVROS#nQ#t{T%t#s%uR#t{qrOScw!U!V!W#O#k#n&|'W'Y)W*k+g%PoOSYacmnw!U!V!W!X!Z!_!q#O#Q#S#T#V#^#_#`#a#b#c#i#j#k#n$f%c&g&l&s&x&y&|'P'R'T'U'W'X'Y']'a'b'o'r'w(k(t)V)W)i)s*`*h*k*l*n*o*r+g+|+},Q,R,S,T,U,V,W,X,Y,Z,[,],^,_,`,a,b,c,{,|,}-O-P-Q-^%O]OSYacmnw!U!V!W!X!Z!_!q#O#Q#S#T#V#^#_#`#a#b#c#i#j#k#n$f%c&g&l&s&x&y&|'P'R'T'U'W'X'Y']'a'b'o'r'w(k(t)V)W)i)s*`*h*k*l*n*o*r+g+|+},Q,R,S,T,U,V,W,X,Y,Z,[,],^,_,`,a,b,c,{,|,}-O-P-Q-^#u!iW^!O!h!t!z#e#h#u#v#y#|#}$P$Q$T$W$v$x%W%Y%a%x%y&O&S&W&]&`&b&d&m'e'|'}(S([(c(i(o(|)l)|*P*Q*S*p*w*|+R+^+j+l,h-U-V-W-X-Y-Z-[-]-_-d'cbOSWYacmnw!O!U!V!W!X!Z!_!h!q!t!z#O#Q#S#T#V#^#_#`#a#b#c#e#h#i#j#k#n#u#v#y#|$P$Q$T$W$f$v$x%W%Y%a%c%x%y&O&W&]&`&g&l&m&s&x&y&|'P'R'T'U'W'X'Y']'a'b'e'o'r'w'|'}(S([(c(i(k(o(t(|)V)W)i)l)s)|*Q*`*h*k*l*n*o*p*r*w+R+g+j+l+|+},Q,R,S,T,U,V,W,X,Y,Z,[,],^,_,`,a,b,c,h,{,|,}-O-P-Q-U-V-W-X-Y-Z-[-]-^-_-dR$O!PT&c#}&dW%`#R&z*d+cQ&Q#vS&V#y&]S&`#}&dR*Y(b'cZOSWYacmnw!O!U!V!W!X!Z!_!h!q!t!z#O#Q#S#T#V#^#_#`#a#b#c#e#h#i#j#k#n#u#v#y#|$P$Q$T$W$f$v$x%W%Y%a%c%x%y&O&W&]&`&g&l&m&s&x&y&|'P'R'T'U'W'X'Y']'a'b'e'o'r'w'|'}(S([(c(i(k(o(t(|)V)W)i)l)s)|*Q*`*h*k*l*n*o*p*r*w+R+g+j+l+|+},Q,R,S,T,U,V,W,X,Y,Z,[,],^,_,`,a,b,c,h,{,|,}-O-P-Q-U-V-W-X-Y-Z-[-]-^-_-d%fWOSWYacmnw!O!U!V!W!X!Z!_!q!z#O#Q#S#T#V#^#_#`#a#b#c#h#i#j#k#n#v#|$f$v$x%W%Y%c&g&l&s&x&y&|'P'R'T'U'W'X'Y']'a'b'o'r'w(i(k(t)V)W)i)s*`*h*k*l*n*o*r+g+|+},Q,R,S,T,U,V,W,X,Y,Z,[,],^,_,`,a,b,c,{,|,}-O-P-Q-^S&b#}&d!{-]!h!t#e#u#y$P$Q$T$W%a%x%y&O&W&]&`&m'e'|'}(S([(c(o(|)l)|*Q*p*w+R+j+l,h-U-V-W-X-Y-Z-[-]-_-dQ#v|S$v!j!pU&P#v$v,hZ,h#x&Q&U&V-TS%{#u&OV){'})|*wR#z}T&[#y&]]&X#y&](S([(o*QZ&Z#y&](S(o*QT([&Y(]'s_OSWYacmnw!O!U!V!W!X!Z!_!h!q!t!z#O#Q#S#T#V#^#_#`#a#b#c#e#h#i#j#k#n#u#v#y#|#}$P$Q$T$W$f$v$x%W%Y%a%c%x%y&O&S&W&]&`&b&d&g&l&m&s&x&y&|'P'R'T'U'W'X'Y']'a'b'e'o'r'w'|'}(S([(c(i(k(o(t(|)V)W)i)l)s)|*P*Q*S*`*h*k*l*n*o*p*r*w*|+R+^+g+j+l+|+},Q,R,S,T,U,V,W,X,Y,Z,[,],^,_,`,a,b,c,h,{,|,}-O-P-Q-U-V-W-X-Y-Z-[-]-^-_-d'r_OSWYacmnw!O!U!V!W!X!Z!_!h!q!t!z#O#Q#S#T#V#^#_#`#a#b#c#e#h#i#j#k#n#u#v#y#|#}$P$Q$T$W$f$v$x%W%Y%a%c%x%y&O&S&W&]&`&b&d&g&l&m&s&x&y&|'P'R'T'U'W'X'Y']'a'b'e'o'r'w'|'}(S([(c(i(k(o(t(|)V)W)i)l)s)|*P*Q*S*`*h*k*l*n*o*p*r*w*|+R+^+g+j+l+|+},Q,R,S,T,U,V,W,X,Y,Z,[,],^,_,`,a,b,c,h,{,|,}-O-P-Q-U-V-W-X-Y-Z-[-]-^-_-dR!w^'bbOSWYacmnw!O!U!V!W!X!Z!_!h!q!t!z#O#Q#S#T#V#^#_#`#a#b#c#e#h#i#j#k#n#u#v#y#|$P$Q$T$W$f$v$x%W%Y%a%c%x%y&O&W&]&`&g&l&m&s&x&y&|'P'R'T'U'W'X'Y']'a'b'e'o'r'w'|'}(S([(c(i(k(o(t(|)V)W)i)l)s)|*Q*`*h*k*l*n*o*p*r*w+R+g+j+l+|+},Q,R,S,T,U,V,W,X,Y,Z,[,],^,_,`,a,b,c,h,{,|,}-O-P-Q-U-V-W-X-Y-Z-[-]-^-_-dS&a#}&dR(d&bS!u]fX!x`&_(e(oQ!r[Q%O!qQ)d'aU)f'b)i*oR+X*nR%R!qR%P!qV)h'b)i*oV)g'b)i*odtOScw#O#k#n&|'Y+gQ$h!WQ&R#wQ&w$[S'S$c$iQ(V&TQ*O(RQ*V(WQ*b(yQ*c(zR+_+Q%PfOSYacmnw!U!V!W!X!Z!_!q#O#Q#S#T#V#^#_#`#a#b#c#i#j#k#n$f%c&g&l&s&x&y&|'P'R'T'U'W'X'Y']'a'b'o'r'w(k(t)V)W)i)s*`*h*k*l*n*o*r+g+|+},Q,R,S,T,U,V,W,X,Y,Z,[,],^,_,`,a,b,c,{,|,}-O-P-Q-^%PgOSYacmnw!U!V!W!X!Z!_!q#O#Q#S#T#V#^#_#`#a#b#c#i#j#k#n$f%c&g&l&s&x&y&|'P'R'T'U'W'X'Y']'a'b'o'r'w(k(t)V)W)i)s*`*h*k*l*n*o*r+g+|+},Q,R,S,T,U,V,W,X,Y,Z,[,],^,_,`,a,b,c,{,|,}-O-P-Q-^!q#Weg!o!y$[$_$c$j$m$q$}%^%b%d%m'V'p(z({)S)Y)^)c)e)q)t*i*s+T+V+W+Y,f,g,i,j,w,z-aR#fh#^mOSacmnw!X!Z!_!q#O#S#T#^#_#`#a#b#c#i#j#k#n$f%c&g&l&s&y&|'P'T'U'X'Y']'a'b'o'r(k(t)i)s*`*h*l*n*o*r+g-^!W#_e!y$j$m$q$}%b%d%j%k%l%m'V'p({)Y)^)c)e)q)t*s+T+V+W+Y-aW,T!o,n,q,tj,U$[$_$c(z)S*i,g,j,o,r,u,w,z[,V%^,f,i,p,s,v`,{Y,Q,T,W,Z,^,{-Ox,|!U!V!W&x'R'W)V)W*k+},R,U,X,[,_,a,b,c,|-Pg,}#Q#V'w+|,S,V,Y,],`,}-Q#^mOSacmnw!X!Z!_!q#O#S#T#^#_#`#a#b#c#i#j#k#n$f%c&g&l&s&y&|'P'T'U'X'Y']'a'b'o'r(k(t)i)s*`*h*l*n*o*r+g-^`,{Y,Q,T,W,Z,^,{-Ox,|!U!V!W&x'R'W)V)W*k+},R,U,X,[,_,a,b,c,|-Pg,}#Q#V'w+|,S,V,Y,],`,}-Q!Y#^e!y$j$m$q$}%b%d%i%j%k%l%m'V'p({)Y)^)c)e)q)t*s+T+V+W+Y-aY,Q!o,k,n,q,tl,R$[$_$c(z)S*i,g,j,l,o,r,u,w,z_,S%^,f,i,m,p,s,v!W#_e!y$j$m$q$}%b%d%j%k%l%m'V'p({)Y)^)c)e)q)t*s+T+V+W+Y-aW,T!o,n,q,tj,U$[$_$c(z)S*i,g,j,o,r,u,w,z],V%^,f,i,p,s,v!S#ae!y$j$m$q$}%b%d%l%m'V'p({)Y)^)c)e)q)t*s+T+V+W+Y-aS,Z!o,tf,[$[$_$c(z)S*i,g,j,u,w,zX,]%^,f,i,v!Q#be!y$j$m$q$}%b%d%m'V'p({)Y)^)c)e)q)t*s+T+V+W+Y-aQ,^!od,_$[$_$c(z)S*i,g,j,w,zV,`%^,f,iprOScw!U!V!W#O#k#n&|'W'Y)W*k+gR)a']etOScw#O#k#n&|'Y+gQ$S!RT&i$R&jR$S!RQ$V!ST&o$U&pQ&U#xR&m$TS(T&S&lV*{*S*|+^R$V!SQ$Y!TT&t$X&uR$Y!TdsOScw#O#k#n&|'Y+gT$p![!]dtOScw#O#k#n&|'Y+gQ*b(yR+_+QQ$a!VQ&{$_Q)T'RR*g)ST&|$`&}Q+b+SQ+m+fR+v+uT+g+a+hR$i!WR$l!YT'Y$k'ZXuOSw#nQ$s!`R'_$sSSO#nR!dSQ%u#sR'y%uUwOS#nR#mwQ&d#}R(g&dQ(c&`R*Z(cS!mX$^R$z!mQ(O%{R)}(OQ&]#yR(_&]Q(]&YR*X(]'r^OSWYacmnw!O!U!V!W!X!Z!_!h!q!t!z#O#Q#S#T#V#^#_#`#a#b#c#e#h#i#j#k#n#u#v#y#|#}$P$Q$T$W$f$v$x%W%Y%a%c%x%y&O&S&W&]&`&b&d&g&l&m&s&x&y&|'P'R'T'U'W'X'Y']'a'b'e'o'r'w'|'}(S([(c(i(k(o(t(|)V)W)i)l)s)|*P*Q*S*`*h*k*l*n*o*p*r*w*|+R+^+g+j+l+|+},Q,R,S,T,U,V,W,X,Y,Z,[,],^,_,`,a,b,c,h,{,|,}-O-P-Q-U-V-W-X-Y-Z-[-]-^-_-dR!v^S'f%T+PR)m'fQ'c%RR)j'cW#Oc&|'Y+gR%[#O^#Ue$[$_$c$m)^,zU%e#U,O,PQ,O,fR,P,gQ&j$RR(m&jS*Q(S(oR*y*QQ*T(TR*}*TQ&p$UR(r&pQ&u$XR(w&uQ&}$`R)O&}Q+h+aR+o+hQ'Z$kR)['ZQ!cRQ#luQ#nyQ%Z!|Q&x$]Q'R$bQ'x%tQ(^&[Q(f&cQ(l&iQ(q&oR(v&tVxOS#nWuOSw#nY!|c#O&|'Y+gR%r#kdtOScw#O#k#n&|'Y+gQ$]!UQ$b!VQ$g!WQ)X'WQ*j)WR+U*kdeOScw#O#k#n&|'Y+gQ!oYQ!ya`#gmn,{,|,}-O-P-QQ$[!UQ$_!VQ$c!WQ$j!Xd$m!Z#i#j&g&s'P'T'U(k(tQ$q!_Q$}!qQ%^#QQ%b#SQ%d#TW%h#^,Q,R,SQ%i#_Q%j#`Q%k#aQ%l#bQ%m#cQ'V$fQ'p%cQ(z&xQ({&yQ)S'RQ)Y'XQ)^']Q)c'aU)e'b)i*oQ)q'oQ)t'rQ*i)VQ*s)sQ+T*hQ+V*lQ+W*nQ+Y*rS,f#V'wS,g,b,cQ,i+|Q,j+}Q,k,TQ,l,UQ,m,VQ,n,WQ,o,XQ,p,YQ,q,ZQ,r,[Q,s,]Q,t,^Q,u,_Q,v,`Q,w,aU,z'W)W*kV-a&l*`-^#bZW!O!h!t!z#e#h#u#v#y#|$P$Q$T$W$v$x%W%Y%a%x%y&O&W&]&`&m'e'|'}(S([(c(i(o(|)l)|*Q*p*w+R+j+l,h-U-V-W-X-Y-Z-[-]-_-d%P[OSYacmnw!U!V!W!X!Z!_!q#O#Q#S#T#V#^#_#`#a#b#c#i#j#k#n$f%c&g&l&s&x&y&|'P'R'T'U'W'X'Y']'a'b'o'r'w(k(t)V)W)i)s*`*h*k*l*n*o*r+g+|+},Q,R,S,T,U,V,W,X,Y,Z,[,],^,_,`,a,b,c,{,|,}-O-P-Q-^$zdOSacmnw!U!V!W!X!Z!_!q#O#Q#S#T#V#^#_#`#a#b#c#i#j#k#n$f%c&g&l&s&x&y&|'P'R'T'U'W'X'Y']'a'b'o'r'w(k(t)V)W)i)s*h*k*l*n*o*r+g+|+},Q,R,S,T,U,V,W,X,Y,Z,[,],^,_,`,a,b,c,{,|,}-O-P-Q-^S!gW-]Q!nYS#{!O-_Q$u!hS%T!t+jS%X!z-UQ%n#e[%o#h#|$x-V-W-XW%w#u'})|*wU&P#v$v,h[&X#y&](S([(o*QQ&f$PQ&h$QQ&n$TQ&r$WS'h%W-YS'i%Y-ZW'l%a(|+R+lS'{%x%yQ(Q&OQ(Y&WQ(d&`Q(p&mU)k'e)l*pQ)z'|Q*[(cS*^(i-[Q+P*`R-c-dS#w|!pS$w!j-TQ&T#xQ(R&QQ(W&UR(X&VT%|#u&OhqOScw!U!V#O#k#n&|'Y+gU$Q!R$R&jU$W!T$X&uQ$e!WY%y#u&O'})|*wQ)`']V-S'W)W*kS&[#y&]S*R(S(oR*z*QY&Y#y&](S(o*QR*W(['``OSWYacmnw!O!U!V!W!X!Z!_!h!q!t!z#O#Q#S#T#V#^#_#`#a#b#c#e#h#i#j#k#n#u#v#y#|$P$Q$T$W$f$v$x%W%Y%a%c%x%y&O&W&]&`&g&m&s&x&y&|'P'R'T'U'W'X'Y']'a'b'e'o'r'w'|'}(S([(c(i(k(o(t(|)V)W)i)l)s)|*Q*`*h*k*l*n*o*p*r*w+R+g+j+l+|+},Q,R,S,T,U,V,W,X,Y,Z,[,],^,_,`,a,b,c,h,{,|,}-O-P-Q-U-V-W-X-Y-Z-[-]-^-_-dS&_#}&dW(S&S*S*|+^Q(e&bQ(o&lR*x*PS%U!t*`R+q+jR%S!qQ#PcQ(}&|Q)Z'YR+n+ghpOScw!U!V#O#k#n&|'Y+gQ$d!WQ$n!ZQ%g#VU%p#i'T,bU%q#j'U,cQ(j&gQ(u&sQ)Q'PQ)_']Q)y'wQ*_(kQ*a(tV-R'W)W*kT(U&S&l",nodeNames:"\u26A0 LineComment BlockComment SourceFile PackageClause package DefName ; ImportDecl import ImportSpec . String ) ( SpecList ExprStatement Number Bool Nil Rune VariableName TypedLiteral StructType struct } { StructBody FieldDecl FieldName , PointerType * FunctionType func Parameters Parameter ... InterfaceType interface InterfaceBody MethodElem UnderlyingType ~ TypeElem LogicOp ChannelType chan <- ParenthesizedType QualifiedType TypeName ParameterizedType ] [ TypeArgs ArrayType SliceType MapType map LiteralValue Element Key : Element Key ParenthesizedExpr FunctionLiteral Block Conversion SelectorExpr IndexExpr SliceExpr TypeAssertion CallExpr ParameterizedExpr Arguments CallExpr make new Arguments UnaryExp ArithOp LogicOp BitOp DerefOp BinaryExp ArithOp BitOp BitOp CompareOp LogicOp LogicOp SendStatement IncDecStatement IncDecOp Assignment = UpdateOp VarDecl := ConstDecl const ConstSpec SpecList TypeDecl type TypeSpec TypeParams TypeParam SpecList VarDecl var VarSpec SpecList LabeledStatement LabelName IfStatement if else SwitchStatement switch SwitchBlock Case case default TypeSwitchStatement SwitchBlock Case ForStatement for ForClause RangeClause range GoStatement go SelectStatement select SelectBlock Case ReceiveStatement ReturnStatement return GotoStatement break continue goto FallthroughStatement fallthrough DeferStatement defer FunctionDecl MethodDecl",maxTerm:218,context:XR,nodeProps:[["isolate",-3,2,12,20,""],["group",-18,12,17,18,19,20,21,22,66,67,69,70,71,72,73,74,77,81,86,"Expr",-20,16,68,93,94,96,99,101,105,111,115,117,120,126,129,134,136,141,143,147,149,"Statement",-12,23,31,33,38,46,49,50,51,52,56,57,58,"Type"],["openedBy",13,"(",25,"{",53,"["],["closedBy",14,")",26,"}",54,"]"]],propSources:[jR],skippedNodes:[0,1,2,153],repeatNodeCount:23,tokenData:":b~RvXY#iYZ#i]^#ipq#iqr#zrs$Xuv&Pvw&^wx&yxy(qyz(vz{({{|)T|})e}!O)j!O!P)u!P!Q+}!Q!R,y!R![-t![!]2^!]!^2k!^!_2p!_!`3]!`!a3e!c!}3x!}#O4j#P#Q4o#Q#R4t#R#S4|#S#T9X#T#o3x#o#p9q#p#q9v#q#r:W#r#s:]$g;'S3x;'S;=`4d<%lO3x~#nS$y~XY#iYZ#i]^#ipq#iU$PP%hQ!_!`$SS$XO!|S~$^W[~OY$XZr$Xrs$vs#O$X#O#P${#P;'S$X;'S;=`%y<%lO$X~${O[~~%ORO;'S$X;'S;=`%X;=`O$X~%^X[~OY$XZr$Xrs$vs#O$X#O#P${#P;'S$X;'S;=`%y;=`<%l$X<%lO$X~%|P;=`<%l$X~&UP%l~!_!`&X~&^O#U~~&cR%j~vw&l!_!`&X#Q#R&q~&qO%p~~&vP%o~!_!`&X~'OWd~OY&yZw&ywx'hx#O&y#O#P'm#P;'S&y;'S;=`(k<%lO&y~'mOd~~'pRO;'S&y;'S;=`'y;=`O&y~(OXd~OY&yZw&ywx'hx#O&y#O#P'm#P;'S&y;'S;=`(k;=`<%l&y<%lO&y~(nP;=`<%l&y~(vO^~~({O]~~)QP%Y~!_!`&X~)YQ%f~{|)`!_!`&X~)eO#R~~)jOn~~)oQ%g~}!O)`!_!`&X~)zRZS!O!P*T!Q![*`#R#S+w~*WP!O!P*Z~*`Ou~Q*eTaQ!Q![*`!g!h*t#R#S+w#X#Y*t#]#^+rQ*wS{|+T}!O+T!Q![+^#R#S+lQ+WQ!Q![+^#R#S+lQ+cRaQ!Q![+^#R#S+l#]#^+rQ+oP!Q![+^Q+wOaQQ+zP!Q![*`~,SR%k~z{,]!P!Q,b!_!`&X~,bO$z~~,gSP~OY,bZ;'S,b;'S;=`,s<%lO,b~,vP;=`<%l,bQ-O[aQ!O!P*`!Q![-t!d!e.c!g!h*t!q!r/Z!z!{/x#R#S.]#U#V.c#X#Y*t#]#^+r#c#d/Z#l#m/xQ-yUaQ!O!P*`!Q![-t!g!h*t#R#S.]#X#Y*t#]#^+rQ.`P!Q![-tQ.fR!Q!R.o!R!S.o#R#S/QQ.tSaQ!Q!R.o!R!S.o#R#S/Q#]#^+rQ/TQ!Q!R.o!R!S.oQ/^Q!Q!Y/d#R#S/rQ/iRaQ!Q!Y/d#R#S/r#]#^+rQ/uP!Q!Y/dQ/{T!O!P0[!Q![1c!c!i1c#R#S2Q#T#Z1cQ0_S!Q![0k!c!i0k#R#S1V#T#Z0kQ0pVaQ!Q![0k!c!i0k!r!s*t#R#S1V#T#Z0k#]#^+r#d#e*tQ1YR!Q![0k!c!i0k#T#Z0kQ1hWaQ!O!P0k!Q![1c!c!i1c!r!s*t#R#S2Q#T#Z1c#]#^+r#d#e*tQ2TR!Q![1c!c!i1c#T#Z1c~2cP!a~!_!`2f~2kO#W~~2pOV~~2uR!|S}!O3O!^!_3T!_!`$S~3TO!Q~~3YP%m~!_!`&X~3bP#T~!_!`$S~3jQ!|S!_!`$S!`!a3p~3uP%n~!_!`&X~3}V%O~!Q![3x!c!}3x#R#S3x#T#o3x$g;'S3x;'S;=`4d<%lO3x~4gP;=`<%l3x~4oO!W~~4tO!V~~4yP%i~!_!`&X~5RV%O~!Q![5h!c!}3x#R#S3x#T#o3x$g;'S3x;'S;=`4d<%lO3x~5o^aQ%O~!O!P*`!Q![5h!c!g3x!g!h6k!h!}3x#R#S4|#T#X3x#X#Y6k#Y#]3x#]#^8k#^#o3x$g;'S3x;'S;=`4d<%lO3x~6pX%O~{|+T}!O+T!Q![7]!c!}3x#R#S8P#T#o3x$g;'S3x;'S;=`4d<%lO3x~7dXaQ%O~!Q![7]!c!}3x#R#S8P#T#]3x#]#^8k#^#o3x$g;'S3x;'S;=`4d<%lO3x~8UV%O~!Q![7]!c!}3x#R#S3x#T#o3x$g;'S3x;'S;=`4d<%lO3x~8rVaQ%O~!Q![3x!c!}3x#R#S3x#T#o3x$g;'S3x;'S;=`4d<%lO3x~9[TO#S9X#S#T$v#T;'S9X;'S;=`9k<%lO9X~9nP;=`<%l9X~9vOj~~9{Q%`~!_!`&X#p#q:R~:WO%q~~:]Oi~~:bO{~",tokenizers:[CR,1,2,new ni("j~RQYZXz{^~^O$|~~aP!P!Qd~iO$}~~",25,181)],topRules:{SourceFile:[0,3]},dynamicPrecedences:{19:1,51:-1,55:2,69:-1,108:-1},specialized:[{term:184,get:o(e=>WR[e]||-1,"get")}],tokenPrec:5451})});function cl(e){return e==cn||e==ii}function dl(e){return e>=48&&e<=57||e>=65&&e<=70||e>=97&&e<=102}function cs(e,t,n){this.parent=e,this.indent=t,this.flags=n,this.hash=(e?e.hash+e.hash<<8:0)+t+(t<<4)+n+(n<<6)}function FI(e){let t=0;for(let n=0;n<e.length;n++)t+=e.charCodeAt(n)==ds?8-t%8:1;return t}function UI(e,t){if(t==$I)for(let n=0;n<2&&e.next>=48&&e.next<=55;n++)e.advance();else if(t==AI)for(let n=0;n<2&&dl(e.next);n++)e.advance();else if(t==MI)for(let n=0;n<4&&dl(e.next);n++)e.advance();else if(t==XI)for(let n=0;n<8&&dl(e.next);n++)e.advance();else if(t==CI&&e.next==ll){for(e.advance();e.next>=0&&e.next!=DO&&e.next!=VO&&e.next!=YO&&e.next!=cn;)e.advance();e.next==DO&&e.advance()}}var DR,LO,qO,NR,jO,FR,LR,qR,zR,zO,WO,UR,VR,YR,GR,BR,ZR,KR,HR,JR,eI,tI,nI,rI,iI,oI,sI,aI,cI,dI,lI,uI,fI,pI,UO,mI,hI,gI,OI,yI,wI,SI,bI,vI,kI,PI,xI,_I,TI,EI,RI,cn,ii,ul,ds,fl,II,QI,ll,DO,VO,YO,NO,$I,AI,CI,MI,XI,jI,WI,DI,as,GO,et,tt,nt,rt,NI,FO,LI,qI,zI,VI,YI,BO,ZO=p(()=>{"use strict";ts();ss();DR=1,LO=194,qO=195,NR=196,jO=197,FR=198,LR=199,qR=200,zR=2,zO=3,WO=201,UR=24,VR=25,YR=49,GR=50,BR=55,ZR=56,KR=57,HR=59,JR=60,eI=61,tI=62,nI=63,rI=65,iI=238,oI=71,sI=241,aI=242,cI=243,dI=244,lI=245,uI=246,fI=247,pI=248,UO=72,mI=249,hI=250,gI=251,OI=252,yI=253,wI=254,SI=255,bI=256,vI=73,kI=77,PI=263,xI=112,_I=130,TI=151,EI=152,RI=155,cn=10,ii=13,ul=32,ds=9,fl=35,II=40,QI=46,ll=123,DO=125,VO=39,YO=34,NO=92,$I=111,AI=120,CI=78,MI=117,XI=85,jI=new Set([VR,YR,GR,PI,rI,_I,ZR,KR,iI,tI,nI,UO,vI,kI,JR,eI,TI,EI,RI,xI]);o(cl,"isLineBreak");o(dl,"isHex");WI=new ye((e,t)=>{let n;if(e.next<0)e.acceptToken(LR);else if(t.context.flags&as)cl(e.next)&&e.acceptToken(FR,1);else if(((n=e.peek(-1))<0||cl(n))&&t.canShift(jO)){let r=0;for(;e.next==ul||e.next==ds;)e.advance(),r++;(e.next==cn||e.next==ii||e.next==fl)&&e.acceptToken(jO,-r)}else cl(e.next)&&e.acceptToken(NR,1)},{contextual:!0}),DI=new ye((e,t)=>{let n=t.context;if(n.flags)return;let r=e.peek(-1);if(r==cn||r==ii){let i=0,s=0;for(;;){if(e.next==ul)i++;else if(e.next==ds)i+=8-i%8;else break;e.advance(),s++}i!=n.indent&&e.next!=cn&&e.next!=ii&&e.next!=fl&&(i<n.indent?e.acceptToken(qO,-s):e.acceptToken(LO))}}),as=1,GO=2,et=4,tt=8,nt=16,rt=32;o(cs,"Context");NI=new cs(null,0,0);o(FI,"countIndent");FO=new Map([[sI,0],[aI,et],[cI,tt],[dI,tt|et],[lI,nt],[uI,nt|et],[fI,nt|tt],[pI,nt|tt|et],[mI,rt],[hI,rt|et],[gI,rt|tt],[OI,rt|tt|et],[yI,rt|nt],[wI,rt|nt|et],[SI,rt|nt|tt],[bI,rt|nt|tt|et]].map(([e,t])=>[e,t|GO])),LI=new Ln({start:NI,reduce(e,t,n,r){return e.flags&as&&jI.has(t)||(t==oI||t==UO)&&e.flags&GO?e.parent:e},shift(e,t,n,r){return t==LO?new cs(e,FI(r.read(r.pos,n.pos)),0):t==qO?e.parent:t==UR||t==BR||t==HR||t==zO?new cs(e,0,as):FO.has(t)?new cs(e,0,FO.get(t)|e.flags&as):e},hash(e){return e.hash}}),qI=new ye(e=>{for(let t=0;t<5;t++){if(e.next!="print".charCodeAt(t))return;e.advance()}if(!/\w/.test(String.fromCharCode(e.next)))for(let t=0;;t++){let n=e.peek(t);if(!(n==ul||n==ds)){n!=II&&n!=QI&&n!=cn&&n!=ii&&n!=fl&&e.acceptToken(DR);return}}}),zI=new ye((e,t)=>{let{flags:n}=t.context,r=n&et?YO:VO,i=(n&tt)>0,s=!(n&nt),a=(n&rt)>0,c=e.pos;for(;!(e.next<0);)if(a&&e.next==ll)if(e.peek(1)==ll)e.advance(2);else{if(e.pos==c){e.acceptToken(zO,1);return}break}else if(s&&e.next==NO){if(e.pos==c){e.advance();let d=e.next;d>=0&&(e.advance(),UI(e,d)),e.acceptToken(zR);return}break}else if(e.next==NO&&!s&&e.peek(1)>-1)e.advance(2);else if(e.next==r&&(!i||e.peek(1)==r&&e.peek(2)==r)){if(e.pos==c){e.acceptToken(WO,i?3:1);return}break}else if(e.next==cn){if(i)e.advance();else if(e.pos==c){e.acceptToken(WO);return}break}else e.advance();e.pos>c&&e.acceptToken(qR)});o(UI,"skipEscape");VI=zn({'async "*" "**" FormatConversion FormatSpec':h.modifier,"for while if elif else try except finally return raise break continue with pass assert await yield match case":h.controlKeyword,"in not and or is del":h.operatorKeyword,"from def class global nonlocal lambda":h.definitionKeyword,import:h.moduleKeyword,"with as print":h.keyword,Boolean:h.bool,None:h.null,VariableName:h.variableName,"CallExpression/VariableName":h.function(h.variableName),"FunctionDefinition/VariableName":h.function(h.definition(h.variableName)),"ClassDefinition/VariableName":h.definition(h.className),PropertyName:h.propertyName,"CallExpression/MemberExpression/PropertyName":h.function(h.propertyName),Comment:h.lineComment,Number:h.number,String:h.string,FormatString:h.special(h.string),Escape:h.escape,UpdateOp:h.updateOperator,"ArithOp!":h.arithmeticOperator,BitOp:h.bitwiseOperator,CompareOp:h.compareOperator,AssignOp:h.definitionOperator,Ellipsis:h.punctuation,At:h.meta,"( )":h.paren,"[ ]":h.squareBracket,"{ }":h.brace,".":h.derefOperator,", ;":h.separator}),YI={__proto__:null,await:44,or:54,and:56,in:60,not:62,is:64,if:70,else:72,lambda:76,yield:94,from:96,async:102,for:104,None:162,True:164,False:164,del:178,pass:182,break:186,continue:190,return:194,raise:202,import:206,as:208,global:212,nonlocal:214,assert:218,type:223,elif:236,while:240,try:246,except:248,finally:250,with:254,def:258,class:268,match:279,case:285},BO=_t.deserialize({version:14,states:"##jO`QeOOP$}OSOOO&WQtO'#HUOOQS'#Co'#CoOOQS'#Cp'#CpO'vQdO'#CnO*UQtO'#HTOOQS'#HU'#HUOOQS'#DU'#DUOOQS'#HT'#HTO*rQdO'#D_O+VQdO'#DfO+gQdO'#DjO+zOWO'#DuO,VOWO'#DvO.[QtO'#GuOOQS'#Gu'#GuO'vQdO'#GtO0ZQtO'#GtOOQS'#Eb'#EbO0rQdO'#EcOOQS'#Gs'#GsO0|QdO'#GrOOQV'#Gr'#GrO1XQdO'#FYOOQS'#G^'#G^O1^QdO'#FXOOQV'#IS'#ISOOQV'#Gq'#GqOOQV'#Fq'#FqQ`QeOOO'vQdO'#CqO1lQdO'#C}O1sQdO'#DRO2RQdO'#HYO2cQtO'#EVO'vQdO'#EWOOQS'#EY'#EYOOQS'#E['#E[OOQS'#E^'#E^O2wQdO'#E`O3_QdO'#EdO3rQdO'#EfO3zQtO'#EfO1XQdO'#EiO0rQdO'#ElO1XQdO'#EnO0rQdO'#EtO0rQdO'#EwO4VQdO'#EyO4^QdO'#FOO4iQdO'#EzO0rQdO'#FOO1XQdO'#FQO1XQdO'#FVO4nQdO'#F[P4uOdO'#GpPOOO)CBd)CBdOOQS'#Ce'#CeOOQS'#Cf'#CfOOQS'#Cg'#CgOOQS'#Ch'#ChOOQS'#Ci'#CiOOQS'#Cj'#CjOOQS'#Cl'#ClO'vQdO,59OO'vQdO,59OO'vQdO,59OO'vQdO,59OO'vQdO,59OO'vQdO,59OO5TQdO'#DoOOQS,5:Y,5:YO5hQdO'#HdOOQS,5:],5:]O5uQ!fO,5:]O5zQtO,59YO1lQdO,59bO1lQdO,59bO1lQdO,59bO8jQdO,59bO8oQdO,59bO8vQdO,59jO8}QdO'#HTO:TQdO'#HSOOQS'#HS'#HSOOQS'#D['#D[O:lQdO,59aO'vQdO,59aO:zQdO,59aOOQS,59y,59yO;PQdO,5:RO'vQdO,5:ROOQS,5:Q,5:QO;_QdO,5:QO;dQdO,5:XO'vQdO,5:XO'vQdO,5:VOOQS,5:U,5:UO;uQdO,5:UO;zQdO,5:WOOOW'#Fy'#FyO<POWO,5:aOOQS,5:a,5:aO<[QdO'#HwOOOW'#Dw'#DwOOOW'#Fz'#FzO<lOWO,5:bOOQS,5:b,5:bOOQS'#F}'#F}O<zQtO,5:iO?lQtO,5=`O@VQ#xO,5=`O@vQtO,5=`OOQS,5:},5:}OA_QeO'#GWOBqQdO,5;^OOQV,5=^,5=^OB|QtO'#IPOCkQdO,5;tOOQS-E:[-E:[OOQV,5;s,5;sO4dQdO'#FQOOQV-E9o-E9oOCsQtO,59]OEzQtO,59iOFeQdO'#HVOFpQdO'#HVO1XQdO'#HVOF{QdO'#DTOGTQdO,59mOGYQdO'#HZO'vQdO'#HZO0rQdO,5=tOOQS,5=t,5=tO0rQdO'#EROOQS'#ES'#ESOGwQdO'#GPOHXQdO,58|OHXQdO,58|O*xQdO,5:oOHgQtO'#H]OOQS,5:r,5:rOOQS,5:z,5:zOHzQdO,5;OOI]QdO'#IOO1XQdO'#H}OOQS,5;Q,5;QOOQS'#GT'#GTOIqQtO,5;QOJPQdO,5;QOJUQdO'#IQOOQS,5;T,5;TOJdQdO'#H|OOQS,5;W,5;WOJuQdO,5;YO4iQdO,5;`O4iQdO,5;cOJ}QtO'#ITO'vQdO'#ITOKXQdO,5;eO4VQdO,5;eO0rQdO,5;jO1XQdO,5;lOK^QeO'#EuOLjQgO,5;fO!!kQdO'#IUO4iQdO,5;jO!!vQdO,5;lO!#OQdO,5;qO!#ZQtO,5;vO'vQdO,5;vPOOO,5=[,5=[P!#bOSO,5=[P!#jOdO,5=[O!&bQtO1G.jO!&iQtO1G.jO!)YQtO1G.jO!)dQtO1G.jO!+}QtO1G.jO!,bQtO1G.jO!,uQdO'#HcO!-TQtO'#GuO0rQdO'#HcO!-_QdO'#HbOOQS,5:Z,5:ZO!-gQdO,5:ZO!-lQdO'#HeO!-wQdO'#HeO!.[QdO,5>OOOQS'#Ds'#DsOOQS1G/w1G/wOOQS1G.|1G.|O!/[QtO1G.|O!/cQtO1G.|O1lQdO1G.|O!0OQdO1G/UOOQS'#DZ'#DZO0rQdO,59tOOQS1G.{1G.{O!0VQdO1G/eO!0gQdO1G/eO!0oQdO1G/fO'vQdO'#H[O!0tQdO'#H[O!0yQtO1G.{O!1ZQdO,59iO!2aQdO,5=zO!2qQdO,5=zO!2yQdO1G/mO!3OQtO1G/mOOQS1G/l1G/lO!3`QdO,5=uO!4VQdO,5=uO0rQdO1G/qO!4tQdO1G/sO!4yQtO1G/sO!5ZQtO1G/qOOQS1G/p1G/pOOQS1G/r1G/rOOOW-E9w-E9wOOQS1G/{1G/{O!5kQdO'#HxO0rQdO'#HxO!5|QdO,5>cOOOW-E9x-E9xOOQS1G/|1G/|OOQS-E9{-E9{O!6[Q#xO1G2zO!6{QtO1G2zO'vQdO,5<jOOQS,5<j,5<jOOQS-E9|-E9|OOQS,5<r,5<rOOQS-E:U-E:UOOQV1G0x1G0xO1XQdO'#GRO!7dQtO,5>kOOQS1G1`1G1`O!8RQdO1G1`OOQS'#DV'#DVO0rQdO,5=qOOQS,5=q,5=qO!8WQdO'#FrO!8cQdO,59oO!8kQdO1G/XO!8uQtO,5=uOOQS1G3`1G3`OOQS,5:m,5:mO!9fQdO'#GtOOQS,5<k,5<kOOQS-E9}-E9}O!9wQdO1G.hOOQS1G0Z1G0ZO!:VQdO,5=wO!:gQdO,5=wO0rQdO1G0jO0rQdO1G0jO!:xQdO,5>jO!;ZQdO,5>jO1XQdO,5>jO!;lQdO,5>iOOQS-E:R-E:RO!;qQdO1G0lO!;|QdO1G0lO!<RQdO,5>lO!<aQdO,5>lO!<oQdO,5>hO!=VQdO,5>hO!=hQdO'#EpO0rQdO1G0tO!=sQdO1G0tO!=xQgO1G0zO!AvQgO1G0}O!EqQdO,5>oO!E{QdO,5>oO!FTQtO,5>oO0rQdO1G1PO!F_QdO1G1PO4iQdO1G1UO!!vQdO1G1WOOQV,5;a,5;aO!FdQfO,5;aO!FiQgO1G1QO!JjQdO'#GZO4iQdO1G1QO4iQdO1G1QO!JzQdO,5>pO!KXQdO,5>pO1XQdO,5>pOOQV1G1U1G1UO!KaQdO'#FSO!KrQ!fO1G1WO!KzQdO1G1WOOQV1G1]1G1]O4iQdO1G1]O!LPQdO1G1]O!LXQdO'#F^OOQV1G1b1G1bO!#ZQtO1G1bPOOO1G2v1G2vP!L^OSO1G2vOOQS,5=},5=}OOQS'#Dp'#DpO0rQdO,5=}O!LfQdO,5=|O!LyQdO,5=|OOQS1G/u1G/uO!MRQdO,5>PO!McQdO,5>PO!MkQdO,5>PO!NOQdO,5>PO!N`QdO,5>POOQS1G3j1G3jOOQS7+$h7+$hO!8kQdO7+$pO#!RQdO1G.|O#!YQdO1G.|OOQS1G/`1G/`OOQS,5<`,5<`O'vQdO,5<`OOQS7+%P7+%PO#!aQdO7+%POOQS-E9r-E9rOOQS7+%Q7+%QO#!qQdO,5=vO'vQdO,5=vOOQS7+$g7+$gO#!vQdO7+%PO##OQdO7+%QO##TQdO1G3fOOQS7+%X7+%XO##eQdO1G3fO##mQdO7+%XOOQS,5<_,5<_O'vQdO,5<_O##rQdO1G3aOOQS-E9q-E9qO#$iQdO7+%]OOQS7+%_7+%_O#$wQdO1G3aO#%fQdO7+%_O#%kQdO1G3gO#%{QdO1G3gO#&TQdO7+%]O#&YQdO,5>dO#&sQdO,5>dO#&sQdO,5>dOOQS'#Dx'#DxO#'UO&jO'#DzO#'aO`O'#HyOOOW1G3}1G3}O#'fQdO1G3}O#'nQdO1G3}O#'yQ#xO7+(fO#(jQtO1G2UP#)TQdO'#GOOOQS,5<m,5<mOOQS-E:P-E:POOQS7+&z7+&zOOQS1G3]1G3]OOQS,5<^,5<^OOQS-E9p-E9pOOQS7+$s7+$sO#)bQdO,5=`O#){QdO,5=`O#*^QtO,5<aO#*qQdO1G3cOOQS-E9s-E9sOOQS7+&U7+&UO#+RQdO7+&UO#+aQdO,5<nO#+uQdO1G4UOOQS-E:Q-E:QO#,WQdO1G4UOOQS1G4T1G4TOOQS7+&W7+&WO#,iQdO7+&WOOQS,5<p,5<pO#,tQdO1G4WOOQS-E:S-E:SOOQS,5<l,5<lO#-SQdO1G4SOOQS-E:O-E:OO1XQdO'#EqO#-jQdO'#EqO#-uQdO'#IRO#-}QdO,5;[OOQS7+&`7+&`O0rQdO7+&`O#.SQgO7+&fO!JmQdO'#GXO4iQdO7+&fO4iQdO7+&iO#2QQtO,5<tO'vQdO,5<tO#2[QdO1G4ZOOQS-E:W-E:WO#2fQdO1G4ZO4iQdO7+&kO0rQdO7+&kOOQV7+&p7+&pO!KrQ!fO7+&rO!KzQdO7+&rO`QeO1G0{OOQV-E:X-E:XO4iQdO7+&lO4iQdO7+&lOOQV,5<u,5<uO#2nQdO,5<uO!JmQdO,5<uOOQV7+&l7+&lO#2yQgO7+&lO#6tQdO,5<vO#7PQdO1G4[OOQS-E:Y-E:YO#7^QdO1G4[O#7fQdO'#IWO#7tQdO'#IWO1XQdO'#IWOOQS'#IW'#IWO#8PQdO'#IVOOQS,5;n,5;nO#8XQdO,5;nO0rQdO'#FUOOQV7+&r7+&rO4iQdO7+&rOOQV7+&w7+&wO4iQdO7+&wO#8^QfO,5;xOOQV7+&|7+&|POOO7+(b7+(bO#8cQdO1G3iOOQS,5<c,5<cO#8qQdO1G3hOOQS-E9u-E9uO#9UQdO,5<dO#9aQdO,5<dO#9tQdO1G3kOOQS-E9v-E9vO#:UQdO1G3kO#:^QdO1G3kO#:nQdO1G3kO#:UQdO1G3kOOQS<<H[<<H[O#:yQtO1G1zOOQS<<Hk<<HkP#;WQdO'#FtO8vQdO1G3bO#;eQdO1G3bO#;jQdO<<HkOOQS<<Hl<<HlO#;zQdO7+)QOOQS<<Hs<<HsO#<[QtO1G1yP#<{QdO'#FsO#=YQdO7+)RO#=jQdO7+)RO#=rQdO<<HwO#=wQdO7+({OOQS<<Hy<<HyO#>nQdO,5<bO'vQdO,5<bOOQS-E9t-E9tOOQS<<Hw<<HwOOQS,5<g,5<gO0rQdO,5<gO#>sQdO1G4OOOQS-E9y-E9yO#?^QdO1G4OO<[QdO'#H{OOOO'#D{'#D{OOOO'#F|'#F|O#?oO&jO,5:fOOOW,5>e,5>eOOOW7+)i7+)iO#?zQdO7+)iO#@SQdO1G2zO#@mQdO1G2zP'vQdO'#FuO0rQdO<<IpO1XQdO1G2YP1XQdO'#GSO#AOQdO7+)pO#AaQdO7+)pOOQS<<Ir<<IrP1XQdO'#GUP0rQdO'#GQOOQS,5;],5;]O#ArQdO,5>mO#BQQdO,5>mOOQS1G0v1G0vOOQS<<Iz<<IzOOQV-E:V-E:VO4iQdO<<JQOOQV,5<s,5<sO4iQdO,5<sOOQV<<JQ<<JQOOQV<<JT<<JTO#BYQtO1G2`P#BdQdO'#GYO#BkQdO7+)uO#BuQgO<<JVO4iQdO<<JVOOQV<<J^<<J^O4iQdO<<J^O!KrQ!fO<<J^O#FpQgO7+&gOOQV<<JW<<JWO#FzQgO<<JWOOQV1G2a1G2aO1XQdO1G2aO#JuQdO1G2aO4iQdO<<JWO1XQdO1G2bP0rQdO'#G[O#KQQdO7+)vO#K_QdO7+)vOOQS'#FT'#FTO0rQdO,5>rO#KgQdO,5>rO#KrQdO,5>rO#K}QdO,5>qO#L`QdO,5>qOOQS1G1Y1G1YOOQS,5;p,5;pOOQV<<Jc<<JcO#LhQdO1G1dOOQS7+)T7+)TP#LmQdO'#FwO#L}QdO1G2OO#MbQdO1G2OO#MrQdO1G2OP#M}QdO'#FxO#N[QdO7+)VO#NlQdO7+)VO#NlQdO7+)VO#NtQdO7+)VO$ UQdO7+(|O8vQdO7+(|OOQSAN>VAN>VO$ oQdO<<LmOOQSAN>cAN>cO0rQdO1G1|O$!PQtO1G1|P$!ZQdO'#FvOOQS1G2R1G2RP$!hQdO'#F{O$!uQdO7+)jO$#`QdO,5>gOOOO-E9z-E9zOOOW<<MT<<MTO$#nQdO7+(fOOQSAN?[AN?[OOQS7+'t7+'tO$$XQdO<<M[OOQS,5<q,5<qO$$jQdO1G4XOOQS-E:T-E:TOOQVAN?lAN?lOOQV1G2_1G2_O4iQdOAN?qO$$xQgOAN?qOOQVAN?xAN?xO4iQdOAN?xOOQV<<JR<<JRO4iQdOAN?rO4iQdO7+'{OOQV7+'{7+'{O1XQdO7+'{OOQVAN?rAN?rOOQS7+'|7+'|O$(sQdO<<MbOOQS1G4^1G4^O0rQdO1G4^OOQS,5<w,5<wO$)QQdO1G4]OOQS-E:Z-E:ZOOQU'#G_'#G_O$)cQfO7+'OO$)nQdO'#F_O$*uQdO7+'jO$+VQdO7+'jOOQS7+'j7+'jO$+bQdO<<LqO$+rQdO<<LqO$+rQdO<<LqO$+zQdO'#H^OOQS<<Lh<<LhO$,UQdO<<LhOOQS7+'h7+'hOOQS'#D|'#D|OOOO1G4R1G4RO$,oQdO1G4RO$,wQdO1G4RP!=hQdO'#GVOOQVG25]G25]O4iQdOG25]OOQVG25dG25dOOQVG25^G25^OOQV<<Kg<<KgO4iQdO<<KgOOQS7+)x7+)xP$-SQdO'#G]OOQU-E:]-E:]OOQV<<Jj<<JjO$-vQtO'#FaOOQS'#Fc'#FcO$.WQdO'#FbO$.xQdO'#FbOOQS'#Fb'#FbO$.}QdO'#IYO$)nQdO'#FiO$)nQdO'#FiO$/fQdO'#FjO$)nQdO'#FkO$/mQdO'#IZOOQS'#IZ'#IZO$0[QdO,5;yOOQS<<KU<<KUO$0dQdO<<KUO$0tQdOANB]O$1UQdOANB]O$1^QdO'#H_OOQS'#H_'#H_O1sQdO'#DcO$1wQdO,5=xOOQSANBSANBSOOOO7+)m7+)mO$2`QdO7+)mOOQVLD*wLD*wOOQVANARANARO5uQ!fO'#GaO$2hQtO,5<SO$)nQdO'#FmOOQS,5<W,5<WOOQS'#Fd'#FdO$3YQdO,5;|O$3_QdO,5;|OOQS'#Fg'#FgO$)nQdO'#G`O$4PQdO,5<QO$4kQdO,5>tO$4{QdO,5>tO1XQdO,5<PO$5^QdO,5<TO$5cQdO,5<TO$)nQdO'#I[O$5hQdO'#I[O$5mQdO,5<UOOQS,5<V,5<VO0rQdO'#FpOOQU1G1e1G1eO4iQdO1G1eOOQSAN@pAN@pO$5rQdOG27wO$6SQdO,59}OOQS1G3d1G3dOOOO<<MX<<MXOOQS,5<{,5<{OOQS-E:_-E:_O$6XQtO'#FaO$6`QdO'#I]O$6nQdO'#I]O$6vQdO,5<XOOQS1G1h1G1hO$6{QdO1G1hO$7QQdO,5<zOOQS-E:^-E:^O$7lQdO,5=OO$8TQdO1G4`OOQS-E:b-E:bOOQS1G1k1G1kOOQS1G1o1G1oO$8eQdO,5>vO$)nQdO,5>vOOQS1G1p1G1pOOQS,5<[,5<[OOQU7+'P7+'PO$+zQdO1G/iO$)nQdO,5<YO$8sQdO,5>wO$8zQdO,5>wOOQS1G1s1G1sOOQS7+'S7+'SP$)nQdO'#GdO$9SQdO1G4bO$9^QdO1G4bO$9fQdO1G4bOOQS7+%T7+%TO$9tQdO1G1tO$:SQtO'#FaO$:ZQdO,5<}OOQS,5<},5<}O$:iQdO1G4cOOQS-E:a-E:aO$)nQdO,5<|O$:pQdO,5<|O$:uQdO7+)|OOQS-E:`-E:`O$;PQdO7+)|O$)nQdO,5<ZP$)nQdO'#GcO$;XQdO1G2hO$)nQdO1G2hP$;gQdO'#GbO$;nQdO<<MhO$;xQdO1G1uO$<WQdO7+(SO8vQdO'#C}O8vQdO,59bO8vQdO,59bO8vQdO,59bO$<fQtO,5=`O8vQdO1G.|O0rQdO1G/XO0rQdO7+$pP$<yQdO'#GOO'vQdO'#GtO$=WQdO,59bO$=]QdO,59bO$=dQdO,59mO$=iQdO1G/UO1sQdO'#DRO8vQdO,59j",stateData:"$>S~O%cOS%^OSSOS%]PQ~OPdOVaOfoOhYOopOs!POvqO!PrO!Q{O!T!SO!U!RO!XZO!][O!h`O!r`O!s`O!t`O!{tO!}uO#PvO#RwO#TxO#XyO#ZzO#^|O#_|O#a}O#c!OO#l!QO#o!TO#s!UO#u!VO#z!WO#}hO$P!XO%oRO%pRO%tSO%uWO&Z]O&[]O&]]O&^]O&_]O&`]O&a]O&b]O&c^O&d^O&e^O&f^O&g^O&h^O&i^O&j^O~O%]!YO~OV!aO_!aOa!bOh!iO!X!kO!f!mO%j![O%k!]O%l!^O%m!_O%n!_O%o!`O%p!`O%q!aO%r!aO%s!aO~Ok%xXl%xXm%xXn%xXo%xXp%xXs%xXz%xX{%xX!x%xX#g%xX%[%xX%_%xX%z%xXg%xX!T%xX!U%xX%{%xX!W%xX![%xX!Q%xX#[%xXt%xX!m%xX~P%SOfoOhYO!XZO!][O!h`O!r`O!s`O!t`O%oRO%pRO%tSO%uWO&Z]O&[]O&]]O&^]O&_]O&`]O&a]O&b]O&c^O&d^O&e^O&f^O&g^O&h^O&i^O&j^O~Oz%wX{%wX#g%wX%[%wX%_%wX%z%wX~Ok!pOl!qOm!oOn!oOo!rOp!sOs!tO!x%wX~P)pOV!zOg!|Oo0cOv0qO!PrO~P'vOV#OOo0cOv0qO!W#PO~P'vOV#SOa#TOo0cOv0qO![#UO~P'vOQ#XO%`#XO%a#ZO~OQ#^OR#[O%`#^O%a#`O~OV%iX_%iXa%iXh%iXk%iXl%iXm%iXn%iXo%iXp%iXs%iXz%iX!X%iX!f%iX%j%iX%k%iX%l%iX%m%iX%n%iX%o%iX%p%iX%q%iX%r%iX%s%iXg%iX!T%iX!U%iX~O&Z]O&[]O&]]O&^]O&_]O&`]O&a]O&b]O&c^O&d^O&e^O&f^O&g^O&h^O&i^O&j^O{%iX!x%iX#g%iX%[%iX%_%iX%z%iX%{%iX!W%iX![%iX!Q%iX#[%iXt%iX!m%iX~P,eOz#dO{%hX!x%hX#g%hX%[%hX%_%hX%z%hX~Oo0cOv0qO~P'vO#g#gO%[#iO%_#iO~O%uWO~O!T#nO#u!VO#z!WO#}hO~OopO~P'vOV#sOa#tO%uWO{wP~OV#xOo0cOv0qO!Q#yO~P'vO{#{O!x$QO%z#|O#g!yX%[!yX%_!yX~OV#xOo0cOv0qO#g#SX%[#SX%_#SX~P'vOo0cOv0qO#g#WX%[#WX%_#WX~P'vOh$WO%uWO~O!f$YO!r$YO%uWO~OV$eO~P'vO!U$gO#s$hO#u$iO~O{$jO~OV$qO~P'vOS$sO%[$rO%_$rO%c$tO~OV$}Oa$}Og%POo0cOv0qO~P'vOo0cOv0qO{%SO~P'vO&Y%UO~Oa!bOh!iO!X!kO!f!mOVba_bakbalbambanbaobapbasbazba{ba!xba#gba%[ba%_ba%jba%kba%lba%mba%nba%oba%pba%qba%rba%sba%zbagba!Tba!Uba%{ba!Wba![ba!Qba#[batba!mba~On%ZO~Oo%ZO~P'vOo0cO~P'vOk0eOl0fOm0dOn0dOo0mOp0nOs0rOg%wX!T%wX!U%wX%{%wX!W%wX![%wX!Q%wX#[%wX!m%wX~P)pO%{%]Og%vXz%vX!T%vX!U%vX!W%vX{%vX~Og%_Oz%`O!T%dO!U%cO~Og%_O~Oz%gO!T%dO!U%cO!W&SX~O!W%kO~Oz%lO{%nO!T%dO!U%cO![%}X~O![%rO~O![%sO~OQ#XO%`#XO%a%uO~OV%wOo0cOv0qO!PrO~P'vOQ#^OR#[O%`#^O%a%zO~OV!qa_!qaa!qah!qak!qal!qam!qan!qao!qap!qas!qaz!qa{!qa!X!qa!f!qa!x!qa#g!qa%[!qa%_!qa%j!qa%k!qa%l!qa%m!qa%n!qa%o!qa%p!qa%q!qa%r!qa%s!qa%z!qag!qa!T!qa!U!qa%{!qa!W!qa![!qa!Q!qa#[!qat!qa!m!qa~P#yOz%|O{%ha!x%ha#g%ha%[%ha%_%ha%z%ha~P%SOV&OOopOvqO{%ha!x%ha#g%ha%[%ha%_%ha%z%ha~P'vOz%|O{%ha!x%ha#g%ha%[%ha%_%ha%z%ha~OPdOVaOopOvqO!PrO!Q{O!{tO!}uO#PvO#RwO#TxO#XyO#ZzO#^|O#_|O#a}O#c!OO#g$zX%[$zX%_$zX~P'vO#g#gO%[&TO%_&TO~O!f&UOh&sX%[&sXz&sX#[&sX#g&sX%_&sX#Z&sXg&sX~Oh!iO%[&WO~Okealeameaneaoeapeaseazea{ea!xea#gea%[ea%_ea%zeagea!Tea!Uea%{ea!Wea![ea!Qea#[eatea!mea~P%SOsqazqa{qa#gqa%[qa%_qa%zqa~Ok!pOl!qOm!oOn!oOo!rOp!sO!xqa~PEcO%z&YOz%yX{%yX~O%uWOz%yX{%yX~Oz&]O{wX~O{&_O~Oz%lO#g%}X%[%}X%_%}Xg%}X{%}X![%}X!m%}X%z%}X~OV0lOo0cOv0qO!PrO~P'vO%z#|O#gUa%[Ua%_Ua~Oz&hO#g&PX%[&PX%_&PXn&PX~P%SOz&kO!Q&jO#g#Wa%[#Wa%_#Wa~Oz&lO#[&nO#g&rX%[&rX%_&rXg&rX~O!f$YO!r$YO#Z&qO%uWO~O#Z&qO~Oz&sO#g&tX%[&tX%_&tX~Oz&uO#g&pX%[&pX%_&pX{&pX~O!X&wO%z&xO~Oz&|On&wX~P%SOn'PO~OPdOVaOopOvqO!PrO!Q{O!{tO!}uO#PvO#RwO#TxO#XyO#ZzO#^|O#_|O#a}O#c!OO%['UO~P'vOt'YO#p'WO#q'XOP#naV#naf#nah#nao#nas#nav#na!P#na!Q#na!T#na!U#na!X#na!]#na!h#na!r#na!s#na!t#na!{#na!}#na#P#na#R#na#T#na#X#na#Z#na#^#na#_#na#a#na#c#na#l#na#o#na#s#na#u#na#z#na#}#na$P#na%X#na%o#na%p#na%t#na%u#na&Z#na&[#na&]#na&^#na&_#na&`#na&a#na&b#na&c#na&d#na&e#na&f#na&g#na&h#na&i#na&j#na%Z#na%_#na~Oz'ZO#[']O{&xX~Oh'_O!X&wO~Oh!iO{$jO!X&wO~O{'eO~P%SO%['hO%_'hO~OS'iO%['hO%_'hO~OV!aO_!aOa!bOh!iO!X!kO!f!mO%l!^O%m!_O%n!_O%o!`O%p!`O%q!aO%r!aO%s!aOkWilWimWinWioWipWisWizWi{Wi!xWi#gWi%[Wi%_Wi%jWi%zWigWi!TWi!UWi%{Wi!WWi![Wi!QWi#[WitWi!mWi~O%k!]O~P!#uO%kWi~P!#uOV!aO_!aOa!bOh!iO!X!kO!f!mO%o!`O%p!`O%q!aO%r!aO%s!aOkWilWimWinWioWipWisWizWi{Wi!xWi#gWi%[Wi%_Wi%jWi%kWi%lWi%zWigWi!TWi!UWi%{Wi!WWi![Wi!QWi#[WitWi!mWi~O%m!_O%n!_O~P!&pO%mWi%nWi~P!&pOa!bOh!iO!X!kO!f!mOkWilWimWinWioWipWisWizWi{Wi!xWi#gWi%[Wi%_Wi%jWi%kWi%lWi%mWi%nWi%oWi%pWi%zWigWi!TWi!UWi%{Wi!WWi![Wi!QWi#[WitWi!mWi~OV!aO_!aO%q!aO%r!aO%s!aO~P!)nOVWi_Wi%qWi%rWi%sWi~P!)nO!T%dO!U%cOg&VXz&VX~O%z'kO%{'kO~P,eOz'mOg&UX~Og'oO~Oz'pO{'rO!W&XX~Oo0cOv0qOz'pO{'sO!W&XX~P'vO!W'uO~Om!oOn!oOo!rOp!sOkjisjizji{ji!xji#gji%[ji%_ji%zji~Ol!qO~P!.aOlji~P!.aOk0eOl0fOm0dOn0dOo0mOp0nO~Ot'wO~P!/jOV'|Og'}Oo0cOv0qO~P'vOg'}Oz(OO~Og(QO~O!U(SO~Og(TOz(OO!T%dO!U%cO~P%SOk0eOl0fOm0dOn0dOo0mOp0nOgqa!Tqa!Uqa%{qa!Wqa![qa!Qqa#[qatqa!mqa~PEcOV'|Oo0cOv0qO!W&Sa~P'vOz(WO!W&Sa~O!W(XO~Oz(WO!T%dO!U%cO!W&Sa~P%SOV(]Oo0cOv0qO![%}a#g%}a%[%}a%_%}ag%}a{%}a!m%}a%z%}a~P'vOz(^O![%}a#g%}a%[%}a%_%}ag%}a{%}a!m%}a%z%}a~O![(aO~Oz(^O!T%dO!U%cO![%}a~P%SOz(dO!T%dO!U%cO![&Ta~P%SOz(gO{&lX![&lX!m&lX%z&lX~O{(kO![(mO!m(nO%z(jO~OV&OOopOvqO{%hi!x%hi#g%hi%[%hi%_%hi%z%hi~P'vOz(pO{%hi!x%hi#g%hi%[%hi%_%hi%z%hi~O!f&UOh&sa%[&saz&sa#[&sa#g&sa%_&sa#Z&sag&sa~O%[(uO~OV#sOa#tO%uWO~Oz&]O{wa~OopOvqO~P'vOz(^O#g%}a%[%}a%_%}ag%}a{%}a![%}a!m%}a%z%}a~P%SOz(zO#g%hX%[%hX%_%hX%z%hX~O%z#|O#gUi%[Ui%_Ui~O#g&Pa%[&Pa%_&Pan&Pa~P'vOz(}O#g&Pa%[&Pa%_&Pan&Pa~O%uWO#g&ra%[&ra%_&rag&ra~Oz)SO#g&ra%[&ra%_&rag&ra~Og)VO~OV)WOh$WO%uWO~O#Z)XO~O%uWO#g&ta%[&ta%_&ta~Oz)ZO#g&ta%[&ta%_&ta~Oo0cOv0qO#g&pa%[&pa%_&pa{&pa~P'vOz)^O#g&pa%[&pa%_&pa{&pa~OV)`Oa)`O%uWO~O%z)eO~Ot)hO#j)gOP#hiV#hif#hih#hio#his#hiv#hi!P#hi!Q#hi!T#hi!U#hi!X#hi!]#hi!h#hi!r#hi!s#hi!t#hi!{#hi!}#hi#P#hi#R#hi#T#hi#X#hi#Z#hi#^#hi#_#hi#a#hi#c#hi#l#hi#o#hi#s#hi#u#hi#z#hi#}#hi$P#hi%X#hi%o#hi%p#hi%t#hi%u#hi&Z#hi&[#hi&]#hi&^#hi&_#hi&`#hi&a#hi&b#hi&c#hi&d#hi&e#hi&f#hi&g#hi&h#hi&i#hi&j#hi%Z#hi%_#hi~Ot)iOP#kiV#kif#kih#kio#kis#kiv#ki!P#ki!Q#ki!T#ki!U#ki!X#ki!]#ki!h#ki!r#ki!s#ki!t#ki!{#ki!}#ki#P#ki#R#ki#T#ki#X#ki#Z#ki#^#ki#_#ki#a#ki#c#ki#l#ki#o#ki#s#ki#u#ki#z#ki#}#ki$P#ki%X#ki%o#ki%p#ki%t#ki%u#ki&Z#ki&[#ki&]#ki&^#ki&_#ki&`#ki&a#ki&b#ki&c#ki&d#ki&e#ki&f#ki&g#ki&h#ki&i#ki&j#ki%Z#ki%_#ki~OV)kOn&wa~P'vOz)lOn&wa~Oz)lOn&wa~P%SOn)pO~O%Y)tO~Ot)wO#p'WO#q)vOP#niV#nif#nih#nio#nis#niv#ni!P#ni!Q#ni!T#ni!U#ni!X#ni!]#ni!h#ni!r#ni!s#ni!t#ni!{#ni!}#ni#P#ni#R#ni#T#ni#X#ni#Z#ni#^#ni#_#ni#a#ni#c#ni#l#ni#o#ni#s#ni#u#ni#z#ni#}#ni$P#ni%X#ni%o#ni%p#ni%t#ni%u#ni&Z#ni&[#ni&]#ni&^#ni&_#ni&`#ni&a#ni&b#ni&c#ni&d#ni&e#ni&f#ni&g#ni&h#ni&i#ni&j#ni%Z#ni%_#ni~OV)zOo0cOv0qO{$jO~P'vOo0cOv0qO{&xa~P'vOz*OO{&xa~OV*SOa*TOg*WO%q*UO%uWO~O{$jO&{*YO~Oh'_O~Oh!iO{$jO~O%[*_O~O%[*aO%_*aO~OV$}Oa$}Oo0cOv0qOg&Ua~P'vOz*dOg&Ua~Oo0cOv0qO{*gO!W&Xa~P'vOz*hO!W&Xa~Oo0cOv0qOz*hO{*kO!W&Xa~P'vOo0cOv0qOz*hO!W&Xa~P'vOz*hO{*kO!W&Xa~Om0dOn0dOo0mOp0nOgjikjisjizji!Tji!Uji%{ji!Wji{ji![ji#gji%[ji%_ji!Qji#[jitji!mji%zji~Ol0fO~P!NkOlji~P!NkOV'|Og*pOo0cOv0qO~P'vOn*rO~Og*pOz*tO~Og*uO~OV'|Oo0cOv0qO!W&Si~P'vOz*vO!W&Si~O!W*wO~OV(]Oo0cOv0qO![%}i#g%}i%[%}i%_%}ig%}i{%}i!m%}i%z%}i~P'vOz*zO!T%dO!U%cO![&Ti~Oz*}O![%}i#g%}i%[%}i%_%}ig%}i{%}i!m%}i%z%}i~O![+OO~Oa+QOo0cOv0qO![&Ti~P'vOz*zO![&Ti~O![+SO~OV+UOo0cOv0qO{&la![&la!m&la%z&la~P'vOz+VO{&la![&la!m&la%z&la~O!]+YO&n+[O![!nX~O![+^O~O{(kO![+_O~O{(kO![+_O!m+`O~OV&OOopOvqO{%hq!x%hq#g%hq%[%hq%_%hq%z%hq~P'vOz$ri{$ri!x$ri#g$ri%[$ri%_$ri%z$ri~P%SOV&OOopOvqO~P'vOV&OOo0cOv0qO#g%ha%[%ha%_%ha%z%ha~P'vOz+aO#g%ha%[%ha%_%ha%z%ha~Oz$ia#g$ia%[$ia%_$ian$ia~P%SO#g&Pi%[&Pi%_&Pin&Pi~P'vOz+dO#g#Wq%[#Wq%_#Wq~O#[+eOz$va#g$va%[$va%_$vag$va~O%uWO#g&ri%[&ri%_&rig&ri~Oz+gO#g&ri%[&ri%_&rig&ri~OV+iOh$WO%uWO~O%uWO#g&ti%[&ti%_&ti~Oo0cOv0qO#g&pi%[&pi%_&pi{&pi~P'vO{#{Oz#eX!W#eX~Oz+mO!W&uX~O!W+oO~Ot+rO#j)gOP#hqV#hqf#hqh#hqo#hqs#hqv#hq!P#hq!Q#hq!T#hq!U#hq!X#hq!]#hq!h#hq!r#hq!s#hq!t#hq!{#hq!}#hq#P#hq#R#hq#T#hq#X#hq#Z#hq#^#hq#_#hq#a#hq#c#hq#l#hq#o#hq#s#hq#u#hq#z#hq#}#hq$P#hq%X#hq%o#hq%p#hq%t#hq%u#hq&Z#hq&[#hq&]#hq&^#hq&_#hq&`#hq&a#hq&b#hq&c#hq&d#hq&e#hq&f#hq&g#hq&h#hq&i#hq&j#hq%Z#hq%_#hq~On$|az$|a~P%SOV)kOn&wi~P'vOz+yOn&wi~Oz,TO{$jO#[,TO~O#q,VOP#nqV#nqf#nqh#nqo#nqs#nqv#nq!P#nq!Q#nq!T#nq!U#nq!X#nq!]#nq!h#nq!r#nq!s#nq!t#nq!{#nq!}#nq#P#nq#R#nq#T#nq#X#nq#Z#nq#^#nq#_#nq#a#nq#c#nq#l#nq#o#nq#s#nq#u#nq#z#nq#}#nq$P#nq%X#nq%o#nq%p#nq%t#nq%u#nq&Z#nq&[#nq&]#nq&^#nq&_#nq&`#nq&a#nq&b#nq&c#nq&d#nq&e#nq&f#nq&g#nq&h#nq&i#nq&j#nq%Z#nq%_#nq~O#[,WOz%Oa{%Oa~Oo0cOv0qO{&xi~P'vOz,YO{&xi~O{#{O%z,[Og&zXz&zX~O%uWOg&zXz&zX~Oz,`Og&yX~Og,bO~O%Y,eO~O!T%dO!U%cOg&Viz&Vi~OV$}Oa$}Oo0cOv0qOg&Ui~P'vO{,hOz$la!W$la~Oo0cOv0qO{,iOz$la!W$la~P'vOo0cOv0qO{*gO!W&Xi~P'vOz,lO!W&Xi~Oo0cOv0qOz,lO!W&Xi~P'vOz,lO{,oO!W&Xi~Og$hiz$hi!W$hi~P%SOV'|Oo0cOv0qO~P'vOn,qO~OV'|Og,rOo0cOv0qO~P'vOV'|Oo0cOv0qO!W&Sq~P'vOz$gi![$gi#g$gi%[$gi%_$gig$gi{$gi!m$gi%z$gi~P%SOV(]Oo0cOv0qO~P'vOa+QOo0cOv0qO![&Tq~P'vOz,sO![&Tq~O![,tO~OV(]Oo0cOv0qO![%}q#g%}q%[%}q%_%}qg%}q{%}q!m%}q%z%}q~P'vO{,uO~OV+UOo0cOv0qO{&li![&li!m&li%z&li~P'vOz,zO{&li![&li!m&li%z&li~O!]+YO&n+[O![!na~O{(kO![,}O~OV&OOo0cOv0qO#g%hi%[%hi%_%hi%z%hi~P'vOz-OO#g%hi%[%hi%_%hi%z%hi~O%uWO#g&rq%[&rq%_&rqg&rq~Oz-RO#g&rq%[&rq%_&rqg&rq~OV)`Oa)`O%uWO!W&ua~Oz-TO!W&ua~On$|iz$|i~P%SOV)kO~P'vOV)kOn&wq~P'vOt-XOP#myV#myf#myh#myo#mys#myv#my!P#my!Q#my!T#my!U#my!X#my!]#my!h#my!r#my!s#my!t#my!{#my!}#my#P#my#R#my#T#my#X#my#Z#my#^#my#_#my#a#my#c#my#l#my#o#my#s#my#u#my#z#my#}#my$P#my%X#my%o#my%p#my%t#my%u#my&Z#my&[#my&]#my&^#my&_#my&`#my&a#my&b#my&c#my&d#my&e#my&f#my&g#my&h#my&i#my&j#my%Z#my%_#my~O%Z-]O%_-]O~P`O#q-^OP#nyV#nyf#nyh#nyo#nys#nyv#ny!P#ny!Q#ny!T#ny!U#ny!X#ny!]#ny!h#ny!r#ny!s#ny!t#ny!{#ny!}#ny#P#ny#R#ny#T#ny#X#ny#Z#ny#^#ny#_#ny#a#ny#c#ny#l#ny#o#ny#s#ny#u#ny#z#ny#}#ny$P#ny%X#ny%o#ny%p#ny%t#ny%u#ny&Z#ny&[#ny&]#ny&^#ny&_#ny&`#ny&a#ny&b#ny&c#ny&d#ny&e#ny&f#ny&g#ny&h#ny&i#ny&j#ny%Z#ny%_#ny~Oz-aO{$jO#[-aO~Oo0cOv0qO{&xq~P'vOz-dO{&xq~O%z,[Og&zaz&za~O{#{Og&zaz&za~OV*SOa*TO%q*UO%uWOg&ya~Oz-hOg&ya~O$S-lO~OV$}Oa$}Oo0cOv0qO~P'vOo0cOv0qO{-mOz$li!W$li~P'vOo0cOv0qOz$li!W$li~P'vO{-mOz$li!W$li~Oo0cOv0qO{*gO~P'vOo0cOv0qO{*gO!W&Xq~P'vOz-pO!W&Xq~Oo0cOv0qOz-pO!W&Xq~P'vOs-sO!T%dO!U%cOg&Oq!W&Oq![&Oqz&Oq~P!/jOa+QOo0cOv0qO![&Ty~P'vOz$ji![$ji~P%SOa+QOo0cOv0qO~P'vOV+UOo0cOv0qO~P'vOV+UOo0cOv0qO{&lq![&lq!m&lq%z&lq~P'vO{(kO![-xO!m-yO%z-wO~OV&OOo0cOv0qO#g%hq%[%hq%_%hq%z%hq~P'vO%uWO#g&ry%[&ry%_&ryg&ry~OV)`Oa)`O%uWO!W&ui~Ot-}OP#m!RV#m!Rf#m!Rh#m!Ro#m!Rs#m!Rv#m!R!P#m!R!Q#m!R!T#m!R!U#m!R!X#m!R!]#m!R!h#m!R!r#m!R!s#m!R!t#m!R!{#m!R!}#m!R#P#m!R#R#m!R#T#m!R#X#m!R#Z#m!R#^#m!R#_#m!R#a#m!R#c#m!R#l#m!R#o#m!R#s#m!R#u#m!R#z#m!R#}#m!R$P#m!R%X#m!R%o#m!R%p#m!R%t#m!R%u#m!R&Z#m!R&[#m!R&]#m!R&^#m!R&_#m!R&`#m!R&a#m!R&b#m!R&c#m!R&d#m!R&e#m!R&f#m!R&g#m!R&h#m!R&i#m!R&j#m!R%Z#m!R%_#m!R~Oo0cOv0qO{&xy~P'vOV*SOa*TO%q*UO%uWOg&yi~O$S-lO%Z.VO%_.VO~OV.aOh._O!X.^O!].`O!h.YO!s.[O!t.[O%p.XO%uWO&Z]O&[]O&]]O&^]O&_]O&`]O&a]O&b]O~Oo0cOv0qOz$lq!W$lq~P'vO{.fOz$lq!W$lq~Oo0cOv0qO{*gO!W&Xy~P'vOz.gO!W&Xy~Oo0cOv.kO~P'vOs-sO!T%dO!U%cOg&Oy!W&Oy![&Oyz&Oy~P!/jO{(kO![.nO~O{(kO![.nO!m.oO~OV*SOa*TO%q*UO%uWO~Oh.tO!f.rOz$TX#[$TX%j$TXg$TX~Os$TX{$TX!W$TX![$TX~P$-bO%o.vO%p.vOs$UXz$UX{$UX#[$UX%j$UX!W$UXg$UX![$UX~O!h.xO~Oz.|O#[/OO%j.yOs&|X{&|X!W&|Xg&|X~Oa/RO~P$)zOh.tOs&}Xz&}X{&}X#[&}X%j&}X!W&}Xg&}X![&}X~Os/VO{$jO~Oo0cOv0qOz$ly!W$ly~P'vOo0cOv0qO{*gO!W&X!R~P'vOz/ZO!W&X!R~Og&RXs&RX!T&RX!U&RX!W&RX![&RXz&RX~P!/jOs-sO!T%dO!U%cOg&Qa!W&Qa![&Qaz&Qa~O{(kO![/^O~O!f.rOh$[as$[az$[a{$[a#[$[a%j$[a!W$[ag$[a![$[a~O!h/eO~O%o.vO%p.vOs$Uaz$Ua{$Ua#[$Ua%j$Ua!W$Uag$Ua![$Ua~O%j.yOs$Yaz$Ya{$Ya#[$Ya!W$Yag$Ya![$Ya~Os&|a{&|a!W&|ag&|a~P$)nOz/jOs&|a{&|a!W&|ag&|a~O!W/mO~Og/mO~O{/oO~O![/pO~Oo0cOv0qO{*gO!W&X!Z~P'vO{/sO~O%z/tO~P$-bOz/uO#[/OO%j.yOg'PX~Oz/uOg'PX~Og/wO~O!h/xO~O#[/OOs%Saz%Sa{%Sa%j%Sa!W%Sag%Sa![%Sa~O#[/OO%j.yOs%Waz%Wa{%Wa!W%Wag%Wa~Os&|i{&|i!W&|ig&|i~P$)nOz/zO#[/OO%j.yO!['Oa~Og'Pa~P$)nOz0SOg'Pa~Oa0UO!['Oi~P$)zOz0WO!['Oi~Oz0WO#[/OO%j.yO!['Oi~O#[/OO%j.yOg$biz$bi~O%z0ZO~P$-bO#[/OO%j.yOg%Vaz%Va~Og'Pi~P$)nO{0^O~Oa0UO!['Oq~P$)zOz0`O!['Oq~O#[/OO%j.yOz%Ui![%Ui~Oa0UO~P$)zOa0UO!['Oy~P$)zO#[/OO%j.yOg$ciz$ci~O#[/OO%j.yOz%Uq![%Uq~Oz+aO#g%ha%[%ha%_%ha%z%ha~P%SOV&OOo0cOv0qO~P'vOn0hO~Oo0hO~P'vO{0iO~Ot0jO~P!/jO&]&Z&j&h&i&g&f&d&e&c&b&`&a&_&^&[%u~",goto:"!=j'QPPPPPP'RP'Z*s+[+t,_,y-fP.SP'Z.r.r'ZPPP'Z2[PPPPPP2[5PPP5PP7b7k=sPP=v>h>kPP'Z'ZPP>zPP'Z'ZPP'Z'Z'Z'Z'Z?O?w'ZP?zP@QDXGuGyPG|HWH['ZPPPH_Hk'RP'R'RP'RP'RP'RP'RP'R'R'RP'RPP'RPP'RP'RPHqH}IVPI^IdPI^PI^I^PPPI^PKrPK{LVL]KrPI^LfPI^PLmLsPLwM]MzNeLwLwNkNxLwLwLwLw! ^! d! g! l! o! y!!P!!]!!o!!u!#P!#V!#s!#y!$P!$Z!$a!$g!$y!%T!%Z!%a!%k!%q!%w!%}!&T!&Z!&e!&k!&u!&{!'U!'[!'k!'s!'}!(UPPPPPPPPPPP!([!(_!(e!(n!(x!)TPPPPPPPPPPPP!-u!/Z!3^!6oPP!6w!7W!7a!8Y!8P!8c!8i!8l!8o!8r!8z!9jPPPPPPPPPPPPPPPPP!9m!9q!9wP!:]!:a!:m!:v!;S!;j!;m!;p!;v!;|!<S!<VP!<_!<h!=d!=g]eOn#g$j)t,P'}`OTYZ[adnoprtxy}!P!Q!R!U!X!c!d!e!f!g!h!i!k!o!p!q!s!t!z#O#S#T#[#d#g#x#y#{#}$Q$e$g$h$j$q$}%S%Z%^%`%c%g%l%n%w%|&O&Z&_&h&j&k&u&x&|'P'W'Z'l'm'p'r's'w'|(O(S(W(](^(d(g(p(r(z(})^)e)g)k)l)p)t)z*O*Y*d*g*h*k*q*r*t*v*y*z*}+Q+U+V+Y+a+c+d+k+x+y,P,X,Y,],g,h,i,k,l,o,q,s,u,w,y,z-O-d-f-m-p-s.f.g/V/Z/s0c0d0e0f0h0i0j0k0l0n0r{!cQ#c#p$R$d$p%e%j%p%q&`'O'g(q(|)j*o*x+w,v0g}!dQ#c#p$R$d$p$u%e%j%p%q&`'O'g(q(|)j*o*x+w,v0g!P!eQ#c#p$R$d$p$u$v%e%j%p%q&`'O'g(q(|)j*o*x+w,v0g!R!fQ#c#p$R$d$p$u$v$w%e%j%p%q&`'O'g(q(|)j*o*x+w,v0g!T!gQ#c#p$R$d$p$u$v$w$x%e%j%p%q&`'O'g(q(|)j*o*x+w,v0g!V!hQ#c#p$R$d$p$u$v$w$x$y%e%j%p%q&`'O'g(q(|)j*o*x+w,v0g!Z!hQ!n#c#p$R$d$p$u$v$w$x$y$z%e%j%p%q&`'O'g(q(|)j*o*x+w,v0g'}TOTYZ[adnoprtxy}!P!Q!R!U!X!c!d!e!f!g!h!i!k!o!p!q!s!t!z#O#S#T#[#d#g#x#y#{#}$Q$e$g$h$j$q$}%S%Z%^%`%c%g%l%n%w%|&O&Z&_&h&j&k&u&x&|'P'W'Z'l'm'p'r's'w'|(O(S(W(](^(d(g(p(r(z(})^)e)g)k)l)p)t)z*O*Y*d*g*h*k*q*r*t*v*y*z*}+Q+U+V+Y+a+c+d+k+x+y,P,X,Y,],g,h,i,k,l,o,q,s,u,w,y,z-O-d-f-m-p-s.f.g/V/Z/s0c0d0e0f0h0i0j0k0l0n0r&eVOYZ[dnprxy}!P!Q!U!i!k!o!p!q!s!t#[#d#g#y#{#}$Q$h$j$}%S%Z%^%`%g%l%n%w%|&Z&_&j&k&u&x'P'W'Z'l'm'p'r's'w(O(W(^(d(g(p(r(z)^)e)g)p)t)z*O*Y*d*g*h*k*q*r*t*v*y*z*}+U+V+Y+a+d+k,P,X,Y,],g,h,i,k,l,o,q,s,u,w,y,z-O-d-f-m-p-s.f.g/V/Z/s0c0d0e0f0h0i0j0k0n0r%oXOYZ[dnrxy}!P!Q!U!i!k#[#d#g#y#{#}$Q$h$j$}%S%^%`%g%l%n%w%|&Z&_&j&k&u&x'P'W'Z'l'm'p'r's'w(O(W(^(d(g(p(r(z)^)e)g)p)t)z*O*Y*d*g*h*k*q*t*v*y*z*}+U+V+Y+a+d+k,P,X,Y,],g,h,i,k,l,o,s,u,w,y,z-O-d-f-m-p.f.g/V/Z0i0j0kQ#vqQ/[.kR0o0q't`OTYZ[adnoprtxy}!P!Q!R!U!X!c!d!e!f!g!h!k!o!p!q!s!t!z#O#S#T#[#d#g#x#y#{#}$Q$e$g$h$j$q$}%S%Z%^%`%c%g%l%n%w%|&O&Z&_&h&j&k&u&x&|'P'W'Z'l'p'r's'w'|(O(S(W(](^(d(g(p(r(z(})^)e)g)k)l)p)t)z*O*Y*g*h*k*q*r*t*v*y*z*}+Q+U+V+Y+a+c+d+k+x+y,P,X,Y,],h,i,k,l,o,q,s,u,w,y,z-O-d-f-m-p-s.f.g/V/Z/s0c0d0e0f0h0i0j0k0l0n0rh#jhz{$W$Z&l&q)S)X+f+g-RW#rq&].k0qQ$]|Q$a!OQ$n!VQ$o!WW$|!i'm*d,gS&[#s#tQ'S$iQ(s&UQ)U&nU)Y&s)Z+jW)a&w+m-T-{Q*Q']W*R'_,`-h.TQ+l)`S,_*S*TQ-Q+eQ-_,TQ-c,WQ.R-al.W-l.^._.a.z.|/R/j/o/t/y0U0Z0^Q/S.`Q/a.tQ/l/OU0P/u0S0[X0V/z0W0_0`R&Z#r!_!wYZ!P!Q!k%S%`%g'p'r's(O(W)g*g*h*k*q*t*v,h,i,k,l,o-m-p.f.g/ZR%^!vQ!{YQ%x#[Q&d#}Q&g$QR,{+YT.j-s/s!Y!jQ!n#c#p$R$d$p$u$v$w$x$y$z%e%j%p%q&`'O'g(q(|)j*o*x+w,v0gQ&X#kQ'c$oR*^'dR'l$|Q%V!mR/_.r'|_OTYZ[adnoprtxy}!P!Q!R!U!X!c!d!e!f!g!h!i!k!o!p!q!s!t!z#O#S#T#[#d#g#x#y#{#}$Q$e$g$h$j$q$}%S%Z%^%`%c%g%l%n%w%|&O&Z&_&h&j&k&u&x&|'P'W'Z'l'm'p'r's'w'|(O(S(W(](^(d(g(p(r(z(})^)e)g)k)l)p)t)z*O*Y*d*g*h*k*q*r*t*v*y*z*}+Q+U+V+Y+a+c+d+k+x+y,P,X,Y,],g,h,i,k,l,o,q,s,u,w,y,z-O-d-f-m-p-s.f.g/V/Z/s0c0d0e0f0h0i0j0k0l0n0rS#a_#b!P.[-l.^._.`.a.t.z.|/R/j/o/t/u/y/z0S0U0W0Z0[0^0_0`'|_OTYZ[adnoprtxy}!P!Q!R!U!X!c!d!e!f!g!h!i!k!o!p!q!s!t!z#O#S#T#[#d#g#x#y#{#}$Q$e$g$h$j$q$}%S%Z%^%`%c%g%l%n%w%|&O&Z&_&h&j&k&u&x&|'P'W'Z'l'm'p'r's'w'|(O(S(W(](^(d(g(p(r(z(})^)e)g)k)l)p)t)z*O*Y*d*g*h*k*q*r*t*v*y*z*}+Q+U+V+Y+a+c+d+k+x+y,P,X,Y,],g,h,i,k,l,o,q,s,u,w,y,z-O-d-f-m-p-s.f.g/V/Z/s0c0d0e0f0h0i0j0k0l0n0rT#a_#bT#^^#_R(o%xa(l%x(n(o+`,{-y-z.oT+[(k+]R-z,{Q$PsQ+l)aQ,^*RR-e,_X#}s$O$P&fQ&y$aQ'a$nQ'd$oR)s'SQ)b&wV-S+m-T-{ZgOn$j)t,PXkOn)t,PQ$k!TQ&z$bQ&{$cQ'^$mQ'b$oQ)q'RQ)x'WQ){'XQ)|'YQ*Z'`S*]'c'dQ+s)gQ+u)hQ+v)iQ+z)oS+|)r*[Q,Q)vQ,R)wS,S)y)zQ,d*^Q-V+rQ-W+tQ-Y+{S-Z+},OQ-`,UQ-b,VQ-|-XQ.O-[Q.P-^Q.Q-_Q.p-}Q.q.RQ/W.dR/r/XWkOn)t,PR#mjQ'`$nS)r'S'aR,O)sQ,]*RR-f,^Q*['`Q+})rR-[,OZiOjn)t,PQ'f$pR*`'gT-j,e-ku.c-l.^._.a.t.z.|/R/j/o/t/u/y0S0U0Z0[0^t.c-l.^._.a.t.z.|/R/j/o/t/u/y0S0U0Z0[0^Q/S.`X0V/z0W0_0`!P.Z-l.^._.`.a.t.z.|/R/j/o/t/u/y/z0S0U0W0Z0[0^0_0`Q.w.YR/f.xg.z.].{/b/i/n/|0O0Q0]0a0bu.b-l.^._.a.t.z.|/R/j/o/t/u/y0S0U0Z0[0^X.u.W.b/a0PR/c.tV0R/u0S0[R/X.dQnOS#on,PR,P)tQ&^#uR(x&^S%m#R#wS(_%m(bT(b%p&`Q%a!yQ%h!}W(P%a%h(U(YQ(U%eR(Y%jQ&i$RR)O&iQ(e%qQ*{(`T+R(e*{Q'n%OR*e'nS'q%R%SY*i'q*j,m-q.hU*j'r's'tU,m*k*l*mS-q,n,oR.h-rQ#Y]R%t#YQ#_^R%y#_Q(h%vS+W(h+XR+X(iQ+](kR,|+]Q#b_R%{#bQ#ebQ%}#cW&Q#e%}({+bQ({&cR+b0gQ$OsS&e$O&fR&f$PQ&v$_R)_&vQ&V#jR(t&VQ&m$VS)T&m+hR+h)UQ$Z{R&p$ZQ&t$]R)[&tQ+n)bR-U+nQ#hfR&S#hQ)f&zR+q)fQ&}$dS)m&})nR)n'OQ'V$kR)u'VQ'[$lS*P'[,ZR,Z*QQ,a*VR-i,aWjOn)t,PR#ljQ-k,eR.U-kd.{.]/b/i/n/|0O0Q0]0a0bR/h.{U.s.W/a0PR/`.sQ/{/nS0X/{0YR0Y/|S/v/b/cR0T/vQ.}.]R/k.}R!ZPXmOn)t,PWlOn)t,PR'T$jYfOn$j)t,PR&R#g[sOn#g$j)t,PR&d#}&dQOYZ[dnprxy}!P!Q!U!i!k!o!p!q!s!t#[#d#g#y#{#}$Q$h$j$}%S%Z%^%`%g%l%n%w%|&Z&_&j&k&u&x'P'W'Z'l'm'p'r's'w(O(W(^(d(g(p(r(z)^)e)g)p)t)z*O*Y*d*g*h*k*q*r*t*v*y*z*}+U+V+Y+a+d+k,P,X,Y,],g,h,i,k,l,o,q,s,u,w,y,z-O-d-f-m-p-s.f.g/V/Z/s0c0d0e0f0h0i0j0k0n0rQ!nTQ#caQ#poU$Rt%c(SS$d!R$gQ$p!XQ$u!cQ$v!dQ$w!eQ$x!fQ$y!gQ$z!hQ%e!zQ%j#OQ%p#SQ%q#TQ&`#xQ'O$eQ'g$qQ(q&OU(|&h(}+cW)j&|)l+x+yQ*o'|Q*x(]Q+w)kQ,v+QR0g0lQ!yYQ!}ZQ$b!PQ$c!QQ%R!kQ't%S^'{%`%g(O(W*q*t*v^*f'p*h,k,l-p.g/ZQ*l'rQ*m'sQ+t)gQ,j*gQ,n*kQ-n,hQ-o,iQ-r,oQ.e-mR/Y.f[bOn#g$j)t,P!^!vYZ!P!Q!k%S%`%g'p'r's(O(W)g*g*h*k*q*t*v,h,i,k,l,o-m-p.f.g/ZQ#R[Q#fdS#wrxQ$UyW$_}$Q'P)pS$l!U$hW${!i'm*d,gS%v#[+Y`&P#d%|(p(r(z+a-O0kQ&a#yQ&b#{Q&c#}Q'j$}Q'z%^W([%l(^*y*}Q(`%nQ(i%wQ(v&ZS(y&_0iQ)P&jQ)Q&kU)]&u)^+kQ)d&xQ)y'WY)}'Z*O,X,Y-dQ*b'lS*n'w0jW+P(d*z,s,wW+T(g+V,y,zQ+p)eQ,U)zQ,c*YQ,x+UQ-P+dQ-e,]Q-v,uQ.S-fR/q/VhUOn#d#g$j%|&_'w(p(r)t,P%U!uYZ[drxy}!P!Q!U!i!k#[#y#{#}$Q$h$}%S%^%`%g%l%n%w&Z&j&k&u&x'P'W'Z'l'm'p'r's(O(W(^(d(g(z)^)e)g)p)z*O*Y*d*g*h*k*q*t*v*y*z*}+U+V+Y+a+d+k,X,Y,],g,h,i,k,l,o,s,u,w,y,z-O-d-f-m-p.f.g/V/Z0i0j0kQ#qpW%W!o!s0d0nQ%X!pQ%Y!qQ%[!tQ%f0cS'v%Z0hQ'x0eQ'y0fQ,p*rQ-u,qS.i-s/sR0p0rU#uq.k0qR(w&][cOn#g$j)t,PZ!xY#[#}$Q+YQ#W[Q#zrR$TxQ%b!yQ%i!}Q%o#RQ'j${Q(V%eQ(Z%jQ(c%pQ(f%qQ*|(`Q,f*bQ-t,pQ.m-uR/].lQ$StQ(R%cR*s(SQ.l-sR/}/sR#QZR#V[R%Q!iQ%O!iV*c'm*d,g!Z!lQ!n#c#p$R$d$p$u$v$w$x$y$z%e%j%p%q&`'O'g(q(|)j*o*x+w,v0gR%T!kT#]^#_Q%x#[R,{+YQ(m%xS+_(n(oQ,}+`Q-x,{S.n-y-zR/^.oT+Z(k+]Q$`}Q&g$QQ)o'PR+{)pQ$XzQ)W&qR+i)XQ$XzQ&o$WQ)W&qR+i)XQ#khW$Vz$W&q)XQ$[{Q&r$ZZ)R&l)S+f+g-RR$^|R)c&wXlOn)t,PQ$f!RR'Q$gQ$m!UR'R$hR*X'_Q*V'_V-g,`-h.TQ.d-lQ/P.^R/Q._U.]-l.^._Q/U.aQ/b.tQ/g.zU/i.|/j/yQ/n/RQ/|/oQ0O/tU0Q/u0S0[Q0]0UQ0a0ZR0b0^R/T.`R/d.t",nodeNames:"\u26A0 print Escape { Comment Script AssignStatement * BinaryExpression BitOp BitOp BitOp BitOp ArithOp ArithOp @ ArithOp ** UnaryExpression ArithOp BitOp AwaitExpression await ) ( ParenthesizedExpression BinaryExpression or and CompareOp in not is UnaryExpression ConditionalExpression if else LambdaExpression lambda ParamList VariableName AssignOp , : NamedExpression AssignOp YieldExpression yield from TupleExpression ComprehensionExpression async for LambdaExpression ] [ ArrayExpression ArrayComprehensionExpression } { DictionaryExpression DictionaryComprehensionExpression SetExpression SetComprehensionExpression CallExpression ArgList AssignOp MemberExpression . PropertyName Number String FormatString FormatReplacement FormatSelfDoc FormatConversion FormatSpec FormatReplacement FormatSelfDoc ContinuedString Ellipsis None Boolean TypeDef AssignOp UpdateStatement UpdateOp ExpressionStatement DeleteStatement del PassStatement pass BreakStatement break ContinueStatement continue ReturnStatement return YieldStatement PrintStatement RaiseStatement raise ImportStatement import as ScopeStatement global nonlocal AssertStatement assert TypeDefinition type TypeParamList TypeParam StatementGroup ; IfStatement Body elif WhileStatement while ForStatement TryStatement try except finally WithStatement with FunctionDefinition def ParamList AssignOp TypeDef ClassDefinition class DecoratedStatement Decorator At MatchStatement match MatchBody MatchClause case CapturePattern LiteralPattern ArithOp ArithOp AsPattern OrPattern LogicOp AttributePattern SequencePattern MappingPattern StarPattern ClassPattern PatternArgList KeywordPattern KeywordPattern Guard",maxTerm:277,context:LI,nodeProps:[["isolate",-5,4,71,72,73,77,""],["group",-15,6,85,87,88,90,92,94,96,98,99,100,102,105,108,110,"Statement Statement",-22,8,18,21,25,40,49,50,56,57,60,61,62,63,64,67,70,71,72,79,80,81,82,"Expression",-10,114,116,119,121,122,126,128,133,135,138,"Statement",-9,143,144,147,148,150,151,152,153,154,"Pattern"],["openedBy",23,"(",54,"[",58,"{"],["closedBy",24,")",55,"]",59,"}"]],propSources:[VI],skippedNodes:[0,4],repeatNodeCount:34,tokenData:"!2|~R!`OX%TXY%oY[%T[]%o]p%Tpq%oqr'ars)Yst*xtu%Tuv,dvw-hwx.Uxy/tyz0[z{0r{|2S|}2p}!O3W!O!P4_!P!Q:Z!Q!R;k!R![>_![!]Do!]!^Es!^!_FZ!_!`Gk!`!aHX!a!b%T!b!cIf!c!dJU!d!eK^!e!hJU!h!i!#f!i!tJU!t!u!,|!u!wJU!w!x!.t!x!}JU!}#O!0S#O#P&o#P#Q!0j#Q#R!1Q#R#SJU#S#T%T#T#UJU#U#VK^#V#YJU#Y#Z!#f#Z#fJU#f#g!,|#g#iJU#i#j!.t#j#oJU#o#p!1n#p#q!1s#q#r!2a#r#s!2f#s$g%T$g;'SJU;'S;=`KW<%lOJU`%YT&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%T`%lP;=`<%l%To%v]&n`%c_OX%TXY%oY[%T[]%o]p%Tpq%oq#O%T#O#P&o#P#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%To&tX&n`OY%TYZ%oZ]%T]^%o^#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tc'f[&n`O!_%T!_!`([!`#T%T#T#U(r#U#f%T#f#g(r#g#h(r#h#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tc(cTmR&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tc(yT!mR&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk)aV&n`&[ZOr%Trs)vs#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk){V&n`Or%Trs*bs#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk*iT&n`&^ZO#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%To+PZS_&n`OY*xYZ%TZ]*x]^%T^#o*x#o#p+r#p#q*x#q#r+r#r;'S*x;'S;=`,^<%lO*x_+wTS_OY+rZ]+r^;'S+r;'S;=`,W<%lO+r_,ZP;=`<%l+ro,aP;=`<%l*xj,kV%rQ&n`O!_%T!_!`-Q!`#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tj-XT!xY&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tj-oV%lQ&n`O!_%T!_!`-Q!`#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk.]V&n`&ZZOw%Twx.rx#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk.wV&n`Ow%Twx/^x#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk/eT&n`&]ZO#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk/{ThZ&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tc0cTgR&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk0yXVZ&n`Oz%Tz{1f{!_%T!_!`-Q!`#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk1mVaR&n`O!_%T!_!`-Q!`#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk2ZV%oZ&n`O!_%T!_!`-Q!`#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tc2wTzR&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%To3_W%pZ&n`O!_%T!_!`-Q!`!a3w!a#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Td4OT&{S&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk4fX!fQ&n`O!O%T!O!P5R!P!Q%T!Q![6T![#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk5WV&n`O!O%T!O!P5m!P#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk5tT!rZ&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Ti6[a!hX&n`O!Q%T!Q![6T![!g%T!g!h7a!h!l%T!l!m9s!m#R%T#R#S6T#S#X%T#X#Y7a#Y#^%T#^#_9s#_#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Ti7fZ&n`O{%T{|8X|}%T}!O8X!O!Q%T!Q![8s![#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Ti8^V&n`O!Q%T!Q![8s![#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Ti8z]!hX&n`O!Q%T!Q![8s![!l%T!l!m9s!m#R%T#R#S8s#S#^%T#^#_9s#_#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Ti9zT!hX&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk:bX%qR&n`O!P%T!P!Q:}!Q!_%T!_!`-Q!`#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tj;UV%sQ&n`O!_%T!_!`-Q!`#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Ti;ro!hX&n`O!O%T!O!P=s!P!Q%T!Q![>_![!d%T!d!e?q!e!g%T!g!h7a!h!l%T!l!m9s!m!q%T!q!rA]!r!z%T!z!{Bq!{#R%T#R#S>_#S#U%T#U#V?q#V#X%T#X#Y7a#Y#^%T#^#_9s#_#c%T#c#dA]#d#l%T#l#mBq#m#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Ti=xV&n`O!Q%T!Q![6T![#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Ti>fc!hX&n`O!O%T!O!P=s!P!Q%T!Q![>_![!g%T!g!h7a!h!l%T!l!m9s!m#R%T#R#S>_#S#X%T#X#Y7a#Y#^%T#^#_9s#_#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Ti?vY&n`O!Q%T!Q!R@f!R!S@f!S#R%T#R#S@f#S#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Ti@mY!hX&n`O!Q%T!Q!R@f!R!S@f!S#R%T#R#S@f#S#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%TiAbX&n`O!Q%T!Q!YA}!Y#R%T#R#SA}#S#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%TiBUX!hX&n`O!Q%T!Q!YA}!Y#R%T#R#SA}#S#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%TiBv]&n`O!Q%T!Q![Co![!c%T!c!iCo!i#R%T#R#SCo#S#T%T#T#ZCo#Z#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%TiCv]!hX&n`O!Q%T!Q![Co![!c%T!c!iCo!i#R%T#R#SCo#S#T%T#T#ZCo#Z#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%ToDvV{_&n`O!_%T!_!`E]!`#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%TcEdT%{R&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%TkEzT#gZ&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%TkFbXmR&n`O!^%T!^!_F}!_!`([!`!a([!a#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%TjGUV%mQ&n`O!_%T!_!`-Q!`#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%TkGrV%zZ&n`O!_%T!_!`([!`#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%TkH`WmR&n`O!_%T!_!`([!`!aHx!a#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%TjIPV%nQ&n`O!_%T!_!`-Q!`#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%TkIoV_Q#}P&n`O!_%T!_!`-Q!`#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%ToJ_]&n`&YS%uZO!Q%T!Q![JU![!c%T!c!}JU!}#R%T#R#SJU#S#T%T#T#oJU#p#q%T#r$g%T$g;'SJU;'S;=`KW<%lOJUoKZP;=`<%lJUoKge&n`&YS%uZOr%Trs)Ysw%Twx.Ux!Q%T!Q![JU![!c%T!c!tJU!t!uLx!u!}JU!}#R%T#R#SJU#S#T%T#T#fJU#f#gLx#g#oJU#p#q%T#r$g%T$g;'SJU;'S;=`KW<%lOJUoMRa&n`&YS%uZOr%TrsNWsw%Twx! vx!Q%T!Q![JU![!c%T!c!}JU!}#R%T#R#SJU#S#T%T#T#oJU#p#q%T#r$g%T$g;'SJU;'S;=`KW<%lOJUkN_V&n`&`ZOr%TrsNts#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%TkNyV&n`Or%Trs! `s#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk! gT&n`&bZO#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk! }V&n`&_ZOw%Twx!!dx#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk!!iV&n`Ow%Twx!#Ox#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk!#VT&n`&aZO#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%To!#oe&n`&YS%uZOr%Trs!%Qsw%Twx!&px!Q%T!Q![JU![!c%T!c!tJU!t!u!(`!u!}JU!}#R%T#R#SJU#S#T%T#T#fJU#f#g!(`#g#oJU#p#q%T#r$g%T$g;'SJU;'S;=`KW<%lOJUk!%XV&n`&dZOr%Trs!%ns#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk!%sV&n`Or%Trs!&Ys#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk!&aT&n`&fZO#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk!&wV&n`&cZOw%Twx!'^x#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk!'cV&n`Ow%Twx!'xx#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk!(PT&n`&eZO#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%To!(ia&n`&YS%uZOr%Trs!)nsw%Twx!+^x!Q%T!Q![JU![!c%T!c!}JU!}#R%T#R#SJU#S#T%T#T#oJU#p#q%T#r$g%T$g;'SJU;'S;=`KW<%lOJUk!)uV&n`&hZOr%Trs!*[s#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk!*aV&n`Or%Trs!*vs#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk!*}T&n`&jZO#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk!+eV&n`&gZOw%Twx!+zx#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk!,PV&n`Ow%Twx!,fx#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk!,mT&n`&iZO#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%To!-Vi&n`&YS%uZOr%TrsNWsw%Twx! vx!Q%T!Q![JU![!c%T!c!dJU!d!eLx!e!hJU!h!i!(`!i!}JU!}#R%T#R#SJU#S#T%T#T#UJU#U#VLx#V#YJU#Y#Z!(`#Z#oJU#p#q%T#r$g%T$g;'SJU;'S;=`KW<%lOJUo!.}a&n`&YS%uZOr%Trs)Ysw%Twx.Ux!Q%T!Q![JU![!c%T!c!}JU!}#R%T#R#SJU#S#T%T#T#oJU#p#q%T#r$g%T$g;'SJU;'S;=`KW<%lOJUk!0ZT!XZ&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tc!0qT!WR&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tj!1XV%kQ&n`O!_%T!_!`-Q!`#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%T~!1sO!]~k!1zV%jR&n`O!_%T!_!`-Q!`#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%T~!2fO![~i!2mT%tX&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%T",tokenizers:[qI,DI,WI,zI,0,1,2,3,4],topRules:{Script:[0,5]},specialized:[{term:221,get:o(e=>YI[e]||-1,"get")}],tokenPrec:7668})});function pl(e){return e>=48&&e<=57}function us(e){return pl(e)||e==95}var GI,BI,ZI,KI,HI,KO,JI,e0,HO,t0,ls,JO,n0,r0,ey,ty,i0,o0,s0,a0,c0,d0,l0,u0,ny,ry=p(()=>{"use strict";ts();ss();GI=1,BI=2,ZI=3,KI=4,HI=5,KO=98,JI=101,e0=102,HO=114,t0=69,ls=48,JO=46,n0=43,r0=45,ey=35,ty=34,i0=124,o0=60,s0=62;o(pl,"isNum");o(us,"isNum_");a0=new ye((e,t)=>{if(pl(e.next)){let n=!1;do e.advance();while(us(e.next));if(e.next==JO){if(n=!0,e.advance(),pl(e.next))do e.advance();while(us(e.next));else if(e.next==JO||e.next>127||/\w/.test(String.fromCharCode(e.next)))return}if(e.next==JI||e.next==t0){if(n=!0,e.advance(),(e.next==n0||e.next==r0)&&e.advance(),!us(e.next))return;do e.advance();while(us(e.next))}if(e.next==e0){let r=e.peek(1);if(r==ls+3&&e.peek(2)==ls+2||r==ls+6&&e.peek(2)==ls+4)e.advance(3),n=!0;else return}n&&e.acceptToken(HI)}else if(e.next==KO||e.next==HO){if(e.next==KO&&e.advance(),e.next!=HO)return;e.advance();let n=0;for(;e.next==ey;)n++,e.advance();if(e.next!=ty)return;e.advance();e:for(;;){if(e.next<0)return;let r=e.next==ty;if(e.advance(),r){for(let i=0;i<n;i++){if(e.next!=ey)continue e;e.advance()}e.acceptToken(KI);return}}}}),c0=new ye(e=>{e.next==i0&&e.acceptToken(GI,1)}),d0=new ye(e=>{e.next==o0?e.acceptToken(BI,1):e.next==s0&&e.acceptToken(ZI,1)}),l0=zn({"const macro_rules struct union enum type fn impl trait let static":h.definitionKeyword,"mod use crate":h.moduleKeyword,"pub unsafe async mut extern default move":h.modifier,"for if else loop while match continue break return await":h.controlKeyword,"as in ref":h.operatorKeyword,"where _ crate super dyn":h.keyword,self:h.self,String:h.string,Char:h.character,RawString:h.special(h.string),Boolean:h.bool,Identifier:h.variableName,"CallExpression/Identifier":h.function(h.variableName),BoundIdentifier:h.definition(h.variableName),"FunctionItem/BoundIdentifier":h.function(h.definition(h.variableName)),LoopLabel:h.labelName,FieldIdentifier:h.propertyName,"CallExpression/FieldExpression/FieldIdentifier":h.function(h.propertyName),Lifetime:h.special(h.variableName),ScopeIdentifier:h.namespace,TypeIdentifier:h.typeName,"MacroInvocation/Identifier MacroInvocation/ScopedIdentifier/Identifier":h.macroName,"MacroInvocation/TypeIdentifier MacroInvocation/ScopedIdentifier/TypeIdentifier":h.macroName,'"!"':h.macroName,UpdateOp:h.updateOperator,LineComment:h.lineComment,BlockComment:h.blockComment,Integer:h.integer,Float:h.float,ArithOp:h.arithmeticOperator,LogicOp:h.logicOperator,BitOp:h.bitwiseOperator,CompareOp:h.compareOperator,"=":h.definitionOperator,".. ... => ->":h.punctuation,"( )":h.paren,"[ ]":h.squareBracket,"{ }":h.brace,". DerefOp":h.derefOperator,"&":h.operator,", ; ::":h.separator,"Attribute/...":h.meta}),u0={__proto__:null,self:28,super:32,crate:34,impl:46,true:72,false:72,pub:88,in:92,const:96,unsafe:104,async:108,move:110,if:114,let:118,ref:142,mut:144,_:198,else:200,match:204,as:248,return:252,await:262,break:270,continue:276,while:312,loop:316,for:320,macro_rules:327,mod:334,extern:342,struct:346,where:364,union:379,enum:382,type:390,default:395,fn:396,trait:412,use:420,static:438,dyn:476},ny=_t.deserialize({version:14,states:"$2xQ]Q_OOP$wOWOOO&sQWO'#CnO)WQWO'#I`OOQP'#I`'#I`OOQQ'#Ie'#IeO)hO`O'#C}OOQR'#Ih'#IhO)sQWO'#IuOOQO'#Hk'#HkO)xQWO'#DpOOQR'#Iw'#IwO)xQWO'#DpO*ZQWO'#DpOOQO'#Iv'#IvO,SQWO'#J`O,ZQWO'#EiOOQV'#Hp'#HpO,cQYO'#F{OOQV'#El'#ElOOQV'#Em'#EmOOQV'#En'#EnO.YQ_O'#EkO0_Q_O'#EoO2gQWOOO4QQ_O'#FPO7hQWO'#J`OOQV'#FY'#FYO7{Q_O'#F^O:WQ_O'#FaOOQO'#F`'#F`O=sQ_O'#FcO=}Q_O'#FbO@VQWO'#FgOOQO'#J`'#J`OOQV'#Io'#IoOA]Q_O'#InOEPQWO'#InOOQV'#Fw'#FwOF[QWO'#JuOFcQWO'#F|OOQO'#IO'#IOOGrQWO'#GhOOQV'#Im'#ImOOQV'#Il'#IlOOQV'#Hj'#HjQGyQ_OOOKeQ_O'#DUOKlQYO'#CqOOQP'#I_'#I_OOQV'#Hg'#HgQ]Q_OOOLuQWO'#I`ONsQYO'#DXO!!eQWO'#JuO!!lQWO'#JuO!!vQ_O'#DfO!%]Q_O'#E}O!(sQ_O'#FWO!,ZQWO'#FZO!.^QXO'#FbO!.cQ_O'#EeO!!vQ_O'#FmO!0uQWO'#FoO!0zQWO'#FoO!1PQ^O'#FqO!1WQWO'#JuO!1_QWO'#FtO!1dQWO'#FxO!2WQWO'#JjO!2_QWO'#GOO!2_QWO'#G`O!2_QWO'#GbO!2_QWO'#GsOOQO'#Ju'#JuO!2dQWO'#GhO!2lQYO'#GpO!2_QWO'#GqO!3uQ^O'#GtO!3|QWO'#GuO!4hQWO'#HOP!4sOpO'#CcPOOO)CC})CC}OOOO'#Hi'#HiO!5OO`O,59iOOQV,59i,59iO!5ZQYO,5?aOOQO-E;i-E;iOOQO,5:[,5:[OOQP,59Z,59ZO)xQWO,5:[O)xQWO,5:[O!5oQWO,5?kO!5zQYO,5;qO!6PQYO,5;TO!6hQWO,59QO!7kQXO'#CnO!7xQXO'#I`O!9SQWO'#CoO,^QWO'#EiOOQV-E;n-E;nO!9eQWO'#FsOOQV,5<g,5<gO!9SQWO'#CoO!9jQWO'#CoO!9oQWO'#I`O! yQWO'#JuO!9yQWO'#J`O!:aQWO,5;VOOQO'#In'#InO!0zQWO'#DaO!<aQWO'#DcO!<iQWO,5;ZO.YQ_O,5;ZOOQO,5;[,5;[OOQV'#Er'#ErOOQV'#Es'#EsOOQV'#Et'#EtOOQV'#Eu'#EuOOQV'#Ev'#EvOOQV'#Ew'#EwOOQV'#Ex'#ExOOQV'#Ey'#EyO.YQ_O,5;]O.YQ_O,5;]O.YQ_O,5;]O.YQ_O,5;]O.YQ_O,5;]O.YQ_O,5;]O.YQ_O,5;]O.YQ_O,5;]O.YQ_O,5;]O.YQ_O,5;fO!=PQ_O,5;kO!@gQ_O'#FROOQO,5;l,5;lO!BrQWO,5;pO.YQ_O,5;wOKlQYO,5;gO!D_QWO,5;kO!EOQWO,5;xOOQO,5;x,5;xO!E]QWO,5;xO!EbQ_O,5;xO!GmQWO'#CfO!GrQWO,5<QO!G|Q_O,5<QOOQO,5;{,5;{O!JjQXO'#CnO!K{QXO'#I`OOQS'#Dk'#DkOOQP'#Ir'#IrO!LuQ[O'#IrO!L}QXO'#DjO!M{QWO'#DnO!M{QWO'#DnO!N^QWO'#DnOOQP'#It'#ItO!NcQXO'#ItO# ^Q^O'#DoO# hQWO'#DrO# pQ^O'#DzO# zQ^O'#D|O#!RQWO'#EPO#!^QXO'#FdOOQP'#ES'#ESOOQP'#Iq'#IqO#!lQXO'#JfOOQP'#Je'#JeO#!tQXO,5;}O#!yQXO'#I`O!1PQ^O'#DyO!1PQ^O'#FdO##sQWO,5;|OOQO,5;|,5;|OKlQYO,5;|O#$ZQWO'#FhOOQO,5<R,5<ROOQV,5=l,5=lO#&`QYO'#FzOOQV,5<h,5<hO#&gQWO,5<hO#&nQWO,5=SO!1WQWO,59rO!1dQWO,5<dO#&uQWO,5=iO!2_QWO,5<jO!2_QWO,5<zO!2_QWO,5<|O!2_QWO,5=QO#&|QWO,5=]O#'TQWO,5=SO!2_QWO,5=]O!3|QWO,5=aO#']QWO,5=jOOQO-E;|-E;|O#'hQWO'#JjOOQV-E;h-E;hO#(PQWO'#HRO#(WQ_O,59pOOQV,59p,59pO#(_QWO,59pO#(dQ_O,59pO#)SQZO'#CuO#+[QZO'#CvOOQV'#C|'#C|O#-wQWO'#HTO#.OQYO'#IdOOQO'#Hh'#HhO#.WQWO'#CwO#.WQWO'#CwO#.iQWO'#CwOOQR'#Ic'#IcO#.nQZO'#IbO#1TQYO'#HTO#1qQYO'#H[O#2}QYO'#H_OKlQYO'#H`OOQR'#Hb'#HbO#4ZQWO'#HeO#4`QYO,59]OOQR'#Ib'#IbO#5PQZO'#CtO#7[QYO'#HUO#7aQWO'#HTO#7fQYO'#CrO#8VQWO'#H]O#7fQYO'#HcOOQV-E;e-E;eO#8_QWO,59sOOQV,59{,59{O#8mQYO,5=[OOQV,59},59}O!0zQWO,59}O#;aQWO'#IpOOQO'#Ip'#IpO!1PQ^O'#DhO!0zQWO,5:QO#;hQWO,5;iO#<OQWO,5;rO#<fQ_O,5;rOOQO,5;u,5;uO#@PQ_O,5;|O#BXQWO,5;PO!0zQWO,5<XO#B`QWO,5<ZOOQV,5<Z,5<ZO#BkQWO,5<]O!1PQ^O'#EOOOQQ'#D_'#D_O#BsQWO,59rO#BxQWO,5<`O#B}QWO,5<dOOQO,5@U,5@UO#CVQWO,5=iOOQQ'#Cv'#CvO#C[QYO,5<jO#CmQYO,5<zO#CxQYO,5<|O#DTQYO,5=_O#DcQYO,5=SO#E{QYO'#GQO#FYQYO,5=[O#FmQWO,5=[O#F{QYO,5=[O#HUQYO,5=]O#HdQWO,5=`O!1PQ^O,5=`O#HrQWO'#CnO#ITQWO'#I`OOQO'#Jy'#JyO#IfQWO'#IQO#IkQWO'#GwOOQO'#Jz'#JzO#JSQWO'#GzOOQO'#G|'#G|OOQO'#Jx'#JxO#IkQWO'#GwO#JZQWO'#GxO#J`QWO,5=aO#JeQWO,5=jO!1dQWO,5=jO#'`QWO,5=jPOOO'#Hf'#HfP#JjOpO,58}POOO,58},58}OOOO-E;g-E;gOOQV1G/T1G/TO#JuQWO1G4{O#JzQ^O'#CyPOQQ'#Cx'#CxOOQO1G/v1G/vOOQP1G.u1G.uO)xQWO1G/vO#NTQ!fO'#ETO#N[Q!fO'#EaO#NcQ!fO'#EbO$ kQWO1G1yO$!_Q_O1G1yOOQP1G5V1G5VOOQO1G1]1G1]O$&RQWO1G0oO$&WQWO'#CiO!7xQXO'#I`O!6PQYO1G.lO!5oQWO,5<_O!9SQWO,59ZO!9SQWO,59ZO!5oQWO,5?kO$&iQWO1G0uO$(vQWO1G0wO$*nQWO1G0wO$+UQWO1G0wO$-YQWO1G0wO$-aQWO1G0wO$/bQWO1G0wO$/iQWO1G0wO$1jQWO1G0wO$1qQWO1G0wO$3YQWO1G1QO$5ZQWO1G1VO$5zQ_O'#JcO$8SQWO'#JcOOQO'#Jb'#JbO$8^QWO,5;mOOQO'#Dw'#DwOOQO1G1[1G1[OOQO1G1Y1G1YO$8cQWO1G1cOOQO1G1R1G1RO$8jQ_O'#HrO$:xQWO,5@OO.YQ_O1G1dOOQO1G1d1G1dO$;QQWO1G1dO$;_QWO1G1dO$;dQWO1G1eOOQO1G1l1G1lO$;lQWO1G1lOOQP,5?^,5?^O$;vQ^O,5:kO$<aQXO,5:YO!M{QWO,5:YO!M{QWO,5:YO!1PQ^O,5:gO$=bQWO'#IyOOQO'#Ix'#IxO$=pQWO,5:ZO# ^Q^O,5:ZO$=uQWO'#DsOOQP,5:^,5:^O$>WQWO,5:fOOQP,5:h,5:hO!1PQ^O,5:hO!1PQ^O,5:mO$>]QYO,5<OO$>gQ_O'#HsO$>tQXO,5@QOOQV1G1i1G1iOOQP,5:e,5:eO$>|QXO,5<OO$?[QWO1G1hO$?dQWO'#CnO$?oQWO'#FiOOQO'#Fi'#FiO$?wQWO'#FjO.YQ_O'#FkOOQO'#Ji'#JiO$?|QWO'#JhOOQO'#Jg'#JgO$@UQWO,5<SOOQQ'#Hv'#HvO$@ZQYO,5<fOOQV,5<f,5<fO$@bQYO,5<fOOQV1G2S1G2SO$@iQWO1G2nO$@qQWO1G/^O$@vQWO1G2OO#CVQWO1G3TO$AOQYO1G2UO#CmQYO1G2fO#CxQYO1G2hO$AaQYO1G2lO!2_QWO1G2wO#DcQYO1G2nO#HUQYO1G2wO$AiQWO1G2{O$AnQWO1G3UO!1dQWO1G3UO$AsQWO1G3UOOQV1G/[1G/[O$A{QWO1G/[O$BQQ_O1G/[O#7aQWO,5=oO$BXQYO,5?OO$BmQWO,5?OO$BrQZO'#IeOOQO-E;f-E;fOOQR,59c,59cO#.WQWO,59cO#.WQWO,59cOOQR,5=n,5=nO$E_QYO'#HVO$FwQZO,5=oO!5oQWO,5={O$IZQWO,5=oO$IbQZO,5=vO$KqQYO,5=vO$>]QYO,5=vO$LRQWO'#KRO$L^QWO,5=xOOQR,5=y,5=yO$LcQWO,5=zO$>]QYO,5>PO$>]QYO,5>POOQO1G.w1G.wO$>]QYO1G.wO$LnQYO,5=pO$LvQZO,59^OOQR,59^,59^O$>]QYO,5=wO% YQZO,5=}OOQR,5=},5=}O%#lQWO1G/_O!6PQYO1G/_O#FYQYO1G2vO%#qQWO1G2vO%$PQYO1G2vOOQV1G/i1G/iO%%YQWO,5:SO%%bQ_O1G/lO%*kQWO1G1^O%+RQWO1G1hOOQO1G1h1G1hO$>]QYO1G1hO%+iQ^O'#EgOOQV1G0k1G0kOOQV1G1s1G1sO!!vQ_O1G1sO!0zQWO1G1uO!1PQ^O1G1wO!.cQ_O1G1wOOQP,5:j,5:jO$>]QYO1G/^OOQO'#Cn'#CnO%+vQWO1G1zOOQV1G2O1G2OO%,OQWO'#CnO%,WQWO1G3TO%,]QWO1G3TO%,bQYO'#GQO%,sQWO'#G]O%-UQYO'#G_O%.hQYO'#GXOOQV1G2U1G2UO%/wQWO1G2UO%/|QWO1G2UO$ARQWO1G2UOOQV1G2f1G2fO%/wQWO1G2fO#CpQWO1G2fO%0UQWO'#GdOOQV1G2h1G2hO%0gQWO1G2hO#C{QWO1G2hO%0lQYO'#GSO$>]QYO1G2lO$AdQWO1G2lOOQV1G2y1G2yO%1xQWO1G2yO%3hQ^O'#GkO%3rQWO1G2nO#DfQWO1G2nO%4QQYO,5<lO%4[QYO,5<lO%4jQYO,5<lO%5XQYO,5<lOOQQ,5<l,5<lO!1WQWO'#JuO%5dQYO,5<lO%5lQWO1G2vOOQV1G2v1G2vO%5tQWO1G2vO$>]QYO1G2vOOQV1G2w1G2wO%5tQWO1G2wO%5yQWO1G2wO#HXQWO1G2wOOQV1G2z1G2zO.YQ_O1G2zO$>]QYO1G2zO%6RQWO1G2zOOQO,5>l,5>lOOQO-E<O-E<OOOQO,5=c,5=cOOQO,5=e,5=eOOQO,5=g,5=gOOQO,5=h,5=hO%6aQWO'#J|OOQO'#J{'#J{O%6iQWO,5=fO%6nQWO,5=cO!1dQWO,5=dOOQV1G2{1G2{O$>]QYO1G3UPOOO-E;d-E;dPOOO1G.i1G.iOOQO7+*g7+*gO%7VQYO'#IcO%7nQYO'#IfO%7yQYO'#IfO%8RQYO'#IfO%8^QYO,59eOOQO7+%b7+%bOOQP7+$a7+$aO%8cQ!fO'#JTOOQS'#EX'#EXOOQS'#EY'#EYOOQS'#EZ'#EZOOQS'#JT'#JTO%;UQWO'#EWOOQS'#E`'#E`OOQS'#JR'#JROOQS'#Hn'#HnO%;ZQ!fO,5:oOOQV,5:o,5:oOOQV'#JQ'#JQO%;bQ!fO,5:{OOQV,5:{,5:{O%;iQ!fO,5:|OOQV,5:|,5:|OOQV7+'e7+'eOOQV7+&Z7+&ZO%;pQ!fO,59TOOQO,59T,59TO%>YQWO7+$WO%>_QWO1G1yOOQV1G1y1G1yO!9SQWO1G.uO%>dQWO,5?}O%>nQ_O'#HqO%@|QWO,5?}OOQO1G1X1G1XOOQO7+&}7+&}O%AUQWO,5>^OOQO-E;p-E;pO%AcQWO7+'OO.YQ_O7+'OOOQO7+'O7+'OOOQO7+'P7+'PO%AjQWO7+'POOQO7+'W7+'WOOQP1G0V1G0VO%ArQXO1G/tO!M{QWO1G/tO%BsQXO1G0RO%CkQ^O'#HlO%C{QWO,5?eOOQP1G/u1G/uO%DWQWO1G/uO%D]QWO'#D_OOQO'#Dt'#DtO%DhQWO'#DtO%DmQWO'#I{OOQO'#Iz'#IzO%DuQWO,5:_O%DzQWO'#DtO%EPQWO'#DtOOQP1G0Q1G0QOOQP1G0S1G0SOOQP1G0X1G0XO%EXQXO1G1jO%EdQXO'#FeOOQP,5>_,5>_O!1PQ^O'#FeOOQP-E;q-E;qO$>]QYO1G1jOOQO7+'S7+'SOOQO,5<T,5<TO%ErQWO,5<UO.YQ_O,5<UO%EwQWO,5<VO%FRQWO'#HtO%FdQWO,5@SOOQO1G1n1G1nOOQQ-E;t-E;tOOQV1G2Q1G2QO%FlQYO1G2QO#DcQYO7+(YO$>]QYO7+$xOOQV7+'j7+'jO%FsQWO7+(oO%FxQWO7+(oOOQV7+'p7+'pO%/wQWO7+'pO%F}QWO7+'pO%GVQWO7+'pOOQV7+(Q7+(QO%/wQWO7+(QO#CpQWO7+(QOOQV7+(S7+(SO%0gQWO7+(SO#C{QWO7+(SO$>]QYO7+(WO%GeQWO7+(WO#HUQYO7+(cO%GjQWO7+(YO#DfQWO7+(YOOQV7+(c7+(cO%5tQWO7+(cO%5yQWO7+(cO#HXQWO7+(cOOQV7+(g7+(gO$>]QYO7+(pO%GxQWO7+(pO!1dQWO7+(pOOQV7+$v7+$vO%G}QWO7+$vO%HSQZO1G3ZO%JfQWO1G4jOOQO1G4j1G4jOOQR1G.}1G.}O#.WQWO1G.}O%JkQWO'#KQOOQO'#HW'#HWO%J|QWO'#HXO%KXQWO'#KQOOQO'#KP'#KPO%KaQWO,5=qO%KfQYO'#H[O%LrQWO'#GmO%L}QYO'#CtO%MXQWO'#GmO$>]QYO1G3ZOOQR1G3g1G3gO#7aQWO1G3ZO%M^QZO1G3bO$>]QYO1G3bO& mQYO'#IVO& }QWO,5@mOOQR1G3d1G3dOOQR1G3f1G3fO.YQ_O1G3fOOQR1G3k1G3kO&!VQYO7+$cO&!_QYO'#KOOOQQ'#J}'#J}O&!gQYO1G3[O&!lQZO1G3cOOQQ7+$y7+$yO&${QWO7+$yO&%QQWO7+(bOOQV7+(b7+(bO%5tQWO7+(bO$>]QYO7+(bO#FYQYO7+(bO&%YQWO7+(bO!.cQ_O1G/nO&%hQWO7+%WO$?[QWO7+'SO&%pQWO'#EhO&%{Q^O'#EhOOQU'#Ho'#HoO&%{Q^O,5;ROOQV,5;R,5;RO&&VQWO,5;RO&&[Q^O,5;RO!0zQWO7+'_OOQV7+'a7+'aO&&iQWO7+'cO&&qQWO7+'cO&&xQWO7+$xO&'TQ!fO7+'fO&'[Q!fO7+'fOOQV7+(o7+(oO!1dQWO7+(oO&'cQYO,5<lO&'nQYO,5<lO!1dQWO'#GWO&'|QWO'#JpO&([QWO'#G^O!BxQWO'#G^O&(aQWO'#JpOOQO'#Jo'#JoO&(iQWO,5<wOOQO'#DX'#DXO&(nQYO'#JrO&)}QWO'#JrO$>]QYO'#JrOOQO'#Jq'#JqO&*YQWO,5<yO&*_QWO'#GZO#D^QWO'#G[O&*gQWO'#G[O&*oQWO'#JmOOQO'#Jl'#JlO&*zQYO'#GTOOQO,5<s,5<sO&+PQWO7+'pO&+UQWO'#JtO&+dQWO'#GeO#BxQWO'#GeO&+uQWO'#JtOOQO'#Js'#JsO&+}QWO,5=OO$>]QYO'#GUO&,SQYO'#JkOOQQ,5<n,5<nO&,kQWO7+(WOOQV7+(e7+(eO&.TQ^O'#D|O&._QWO'#GlO&.gQ^O'#JwOOQO'#Gn'#GnO&.nQWO'#JwOOQO'#Jv'#JvO&.vQWO,5=VO&.{QWO'#I`O&/]Q^O'#GmO&/dQWO'#IqO&/rQWO'#GmOOQV7+(Y7+(YO&/zQWO7+(YO$>]QYO7+(YO&0SQYO'#HxO&0hQYO1G2WOOQQ1G2W1G2WOOQQ,5<m,5<mO$>]QYO,5<qO&0pQWO,5<rO&0uQWO7+(bO&1QQWO7+(fO&1XQWO7+(fOOQV7+(f7+(fO.YQ_O7+(fO$>]QYO7+(fO&1dQWO'#IRO&1nQWO,5@hOOQO1G3Q1G3QOOQO1G2}1G2}OOQO1G3P1G3POOQO1G3R1G3ROOQO1G3S1G3SOOQO1G3O1G3OO&1vQWO7+(pO$>]QYO,59fO&2RQ^O'#ISO&2xQYO,5?QOOQR1G/P1G/PO&3QQ!bO,5:pO&3VQ!fO,5:rOOQS-E;l-E;lOOQV1G0Z1G0ZOOQV1G0g1G0gOOQV1G0h1G0hO&3^QWO'#JTOOQO1G.o1G.oOOQV<<Gr<<GrO&3iQWO1G5iO$5zQ_O,5>]O&3qQWO,5>]OOQO-E;o-E;oOOQO<<Jj<<JjO&3{QWO<<JjOOQO<<Jk<<JkO&4SQXO7+%`O&5TQWO,5>WOOQO-E;j-E;jOOQP7+%a7+%aO!1PQ^O,5:`O&5cQWO'#HmO&5wQWO,5?gOOQP1G/y1G/yOOQO,5:`,5:`O&6PQWO,5:`O%DzQWO,5:`O$>]QYO,5<PO&6UQXO,5<PO&6dQXO7+'UO.YQ_O1G1pO&6oQWO1G1pOOQO,5>`,5>`OOQO-E;r-E;rOOQV7+'l7+'lO&6yQWO<<KtO#DfQWO<<KtO&7XQWO<<HdOOQV<<LZ<<LZO!1dQWO<<LZOOQV<<K[<<K[O&7dQWO<<K[O%/wQWO<<K[O&7iQWO<<K[OOQV<<Kl<<KlO%/wQWO<<KlOOQV<<Kn<<KnO%0gQWO<<KnO&7qQWO<<KrO$>]QYO<<KrOOQV<<K}<<K}O%5tQWO<<K}O%5yQWO<<K}O#HXQWO<<K}OOQV<<Kt<<KtO&7yQWO<<KtO$>]QYO<<KtO&8RQWO<<L[O$>]QYO<<L[O&8^QWO<<L[OOQV<<Hb<<HbO$>]QYO7+(uOOQO7+*U7+*UOOQR7+$i7+$iO&8cQWO,5@lOOQO'#Gm'#GmO&8kQWO'#GmO&8vQYO'#IUO&8cQWO,5@lOOQR1G3]1G3]O&:cQYO,5=vO&;rQYO,5=XO&;|QWO,5=XOOQO,5=X,5=XOOQR7+(u7+(uO&<RQZO7+(uO&>eQZO7+(|O&@tQWO,5>qOOQO-E<T-E<TO&APQWO7+)QOOQO<<G}<<G}O&AWQYO'#ITO&AcQYO,5@jOOQQ7+(v7+(vOOQQ<<He<<HeO$>]QYO<<K|OOQV<<K|<<K|O&0uQWO<<K|O&AkQWO<<K|O%5tQWO<<K|O&AsQWO7+%YOOQV<<Hr<<HrOOQO<<Jn<<JnO.YQ_O,5;SO&AzQWO,5;SO.YQ_O'#EjO&BPQWO,5;SOOQU-E;m-E;mO&B[QWO1G0mOOQV1G0m1G0mO&%{Q^O1G0mOOQV<<Jy<<JyO!.cQ_O<<J}OOQV<<J}<<J}OOQV<<Hd<<HdO.YQ_O<<HdO&BaQWO'#FvO&BfQWO<<KQO&BnQ!fO<<KQO&BuQWO<<KQO&BzQWO<<KQO&CSQ!fO<<KQOOQV<<KQ<<KQO&CZQWO<<LZO&C`QWO,5@[O$>]QYO,5<xO&ChQWO,5<xO&CmQWO'#H{O&C`QWO,5@[OOQV1G2c1G2cO&DRQWO,5@^O$>]QYO,5@^O&D^QYO'#H|O&EsQWO,5@^OOQO1G2e1G2eO%,nQWO,5<uOOQO,5<v,5<vO&E{QYO'#HzO&G_QWO,5@XO%,bQYO,5=pO$>]QYO,5<oO&GjQWO,5@`O.YQ_O,5=PO&GrQWO,5=PO&G}QWO,5=PO&H`QWO'#H}O&GjQWO,5@`OOQV1G2j1G2jO&HtQYO,5<pO%0lQYO,5>PO&I]QYO,5@VOOQV<<Kr<<KrO&ItQWO,5=XO&KfQ^O,5:hO&KmQWO,5=XO$>]QYO,5=WO&KuQWO,5@cO&K}QWO,5@cO&MvQ^O'#IPO&KuQWO,5@cOOQO1G2q1G2qO&NTQWO,5=WO&N]QWO<<KtO&NkQYO,5>oO&NvQYO,5>dO' UQYO,5>dOOQQ,5>d,5>dOOQQ-E;v-E;vOOQQ7+'r7+'rO' aQYO1G2]O$>]QYO1G2^OOQV<<LQ<<LQO.YQ_O<<LQO' lQWO<<LQO' sQWO<<LQOOQO,5>m,5>mOOQO-E<P-E<POOQV<<L[<<L[O.YQ_O<<L[O'!OQYO1G/QO'!ZQYO,5>nOOQQ,5>n,5>nO'!fQYO,5>nOOQQ-E<Q-E<QOOQS1G0[1G0[O'$tQ!fO1G0^O'%RQ!fO1G0^O'%YQWO1G3wOOQOAN@UAN@UO'%dQWO1G/zOOQO,5>X,5>XOOQO-E;k-E;kO!1PQ^O1G/zOOQO1G/z1G/zO'%oQWO1G/zO'%tQXO1G1kO$>]QYO1G1kO'&PQWO7+'[OOQVANA`ANA`O'&ZQWOANA`O$>]QYOANA`O'&cQWOANA`OOQVAN>OAN>OO.YQ_OAN>OO'&qQWOANAuOOQVAN@vAN@vO'&vQWOAN@vOOQVANAWANAWOOQVANAYANAYOOQVANA^ANA^O'&{QWOANA^OOQVANAiANAiO%5tQWOANAiO%5yQWOANAiO''TQWOANA`OOQVANAvANAvO.YQ_OANAvO''cQWOANAvO$>]QYOANAvOOQR<<La<<LaO''nQWO1G6WO%JkQWO,5>pOOQO'#HY'#HYO''vQWO'#HZOOQO,5>p,5>pOOQO-E<S-E<SO'(RQYO1G2sO'(]QWO1G2sOOQO1G2s1G2sO$>]QYO<<LaOOQR<<Ll<<LlOOQQ,5>o,5>oOOQQ-E<R-E<RO&0uQWOANAhOOQVANAhANAhO%5tQWOANAhO$>]QYOANAhO'(bQWO1G1rO')UQ^O1G0nO.YQ_O1G0nO'*zQWO,5;UO'+RQWO1G0nP'+WQWO'#ERP&%{Q^O'#HpOOQV7+&X7+&XO'+cQWO7+&XO&&qQWOAN@iO'+hQWOAN>OO!5oQWO,5<bOOQS,5>a,5>aO'+oQWOAN@lO'+tQWOAN@lOOQS-E;s-E;sOOQVAN@lAN@lO'+|QWOAN@lOOQVANAuANAuO',UQWO1G5vO',^QWO1G2dO$>]QYO1G2dO&'|QWO,5>gOOQO,5>g,5>gOOQO-E;y-E;yO',iQWO1G5xO',qQWO1G5xO&(nQYO,5>hO',|QWO,5>hO$>]QYO,5>hOOQO-E;z-E;zO'-XQWO'#JnOOQO1G2a1G2aOOQO,5>f,5>fOOQO-E;x-E;xO&'cQYO,5<lO'-gQYO1G2ZO'.RQWO1G5zO'.ZQWO1G2kO.YQ_O1G2kO'.eQWO1G2kO&+UQWO,5>iOOQO,5>i,5>iOOQO-E;{-E;{OOQQ,5>c,5>cOOQQ-E;u-E;uO'.pQWO1G2sO'/QQWO1G2rO'/]QWO1G5}O'/eQ^O,5>kOOQO'#Go'#GoOOQO,5>k,5>kO'/lQWO,5>kOOQO-E;}-E;}O$>]QYO1G2rO'/zQYO7+'xO'0VQWOANAlOOQVANAlANAlO.YQ_OANAlO'0^QWOANAvOOQS7+%x7+%xO'0eQWO7+%xO'0pQ!fO7+%xO'0}QWO7+%fO!1PQ^O7+%fO'1YQXO7+'VOOQVG26zG26zO'1eQWOG26zO'1sQWOG26zO$>]QYOG26zO'1{QWOG23jOOQVG27aG27aOOQVG26bG26bOOQVG26xG26xOOQVG27TG27TO%5tQWOG27TO'2SQWOG27bOOQVG27bG27bO.YQ_OG27bO'2ZQWOG27bOOQO1G4[1G4[OOQO7+(_7+(_OOQRANA{ANA{OOQVG27SG27SO%5tQWOG27SO&0uQWOG27SO'2fQ^O7+&YO'4PQWO7+'^O'4sQ^O7+&YO.YQ_O7+&YP.YQ_O,5;SP'6PQWO,5;SP'6UQWO,5;SOOQV<<Is<<IsOOQVG26TG26TOOQVG23jG23jOOQO1G1|1G1|OOQVG26WG26WO'6aQWOG26WP&B}QWO'#HuO'6fQWO7+(OOOQO1G4R1G4RO'6qQWO7++dO'6yQWO1G4SO$>]QYO1G4SO%,nQWO'#HyO'7UQWO,5@YO'7dQWO7+(VO.YQ_O7+(VOOQO1G4T1G4TOOQO1G4V1G4VO'7nQWO1G4VO'7|QWO7+(^OOQVG27WG27WO'8XQWOG27WOOQS<<Id<<IdO'8`QWO<<IdO'8kQWO<<IQOOQVLD,fLD,fO'8vQWOLD,fO'9OQWOLD,fOOQVLD)ULD)UOOQVLD,oLD,oOOQVLD,|LD,|O'9^QWOLD,|O.YQ_OLD,|OOQVLD,nLD,nO%5tQWOLD,nO'9eQ^O<<ItO';OQWO<<JxO';rQ^O<<ItP'=OQWO1G0nP'=oQ^O1G0nP.YQ_O1G0nP'?bQWO1G0nOOQVLD+rLD+rO'?gQWO7+)nOOQO,5>e,5>eOOQO-E;w-E;wO'?rQWO<<KqOOQVLD,rLD,rOOQSAN?OAN?OOOQV!$(!Q!$(!QO'?|QWO!$(!QOOQV!$(!h!$(!hO'@UQWO!$(!hOOQV!$(!Y!$(!YO'@]Q^OAN?`POQU7+&Y7+&YP'AvQWO7+&YP'BgQ^O7+&YP.YQ_O7+&YOOQV!)9El!)9ElOOQV!)9FS!)9FSPOQU<<It<<ItP'DYQWO<<ItP'DyQ^O<<ItPOQUAN?`AN?`O'FlQWO'#CnO'FsQXO'#CnO'GlQWO'#I`O'IRQXO'#I`O'IxQWO'#DpO'IxQWO'#DpO!.cQ_O'#EkO'JZQ_O'#EoO'JbQ_O'#FPO'MfQ_O'#FbO'MmQXO'#I`O'NdQ_O'#E}O( gQ_O'#FWO'IxQWO,5:[O'IxQWO,5:[O!.cQ_O,5;ZO!.cQ_O,5;]O!.cQ_O,5;]O!.cQ_O,5;]O!.cQ_O,5;]O!.cQ_O,5;]O!.cQ_O,5;]O!.cQ_O,5;]O!.cQ_O,5;]O!.cQ_O,5;]O!.cQ_O,5;fO(!jQ_O,5;kO(%nQWO,5;kO(&OQWO,5;|O(&VQYO'#CuO(&bQYO'#CvO(&mQWO'#CwO(&mQWO'#CwO('OQYO'#CtO('ZQWO,5;iO('bQWO,5;rO('iQ_O,5;rO((oQ_O,5;|O'IxQWO1G/vO((vQWO1G0uO(*eQWO1G0wO(*oQWO1G0wO(,dQWO1G0wO(,kQWO1G0wO(.]QWO1G0wO(.dQWO1G0wO(0UQWO1G0wO(0]QWO1G0wO(0dQWO1G1QO(0tQWO1G1VO(1UQYO'#IeO(&mQWO,59cO(&mQWO,59cO(1aQWO1G1^O(1hQWO1G1hO(&mQWO1G.}O(1oQWO'#DpO!.^QXO'#FbO(1tQWO,5;ZO(1{QWO'#Cw",stateData:"(2_~O&|OSUOS&}PQ~OPoOQ!QOSVOTVOZeO[lO^RO_RO`ROa!UOd[Og!nOsVOtVOuVOw!POyvO|!VO}mO!Q!dO!U!WO!W!XO!X!^O!Z!YO!]!pO!liO!qgO!tiO#Y!_O#r!ZO#{![O$O!]O$b!`O$d!bO$f!cO$i!eO$m!fO$q!gO$s!hO%T!iO%V!jO%Z!kO%]!lO%^!mO%f!oO%j!qO%s!rO'Q`O'TQO'ZkO'^UO'gcO'qiO(QdO~O&}!sO~OZbX[bXdbXdlXobXwjX}bX!lbX!qbX!tbX#ObX#PbX#pbX'gbX'qbX'rbX'xbX'ybX'zbX'{bX'|bX'}bX(ObX(PbX(QbX(RbX(TbX~OybXXbX!ebX!PbXvbX#RbX~P$|OZ'SX['SXd'SXd'XXo'SXw'kXy'SX}'SX!l'SX!q'SX!t'SX#O'SX#P'SX#p'SX'g'SX'q'SX'r'SX'x'SX'y'SX'z'SX'{'SX'|'SX'}'SX(O'SX(P'SX(Q'SX(R'SX(T'SXv'SX~OX'SX!e'SX!P'SX#R'SX~P'ZOr!uO']!wO'_!uO~Od!xO~O^RO_RO`ROaRO'TQO~Od!}O~Od#PO[(SXo(SXy(SX}(SX!l(SX!q(SX!t(SX#O(SX#P(SX#p(SX'g(SX'q(SX'r(SX'x(SX'y(SX'z(SX'{(SX'|(SX'}(SX(O(SX(P(SX(Q(SX(R(SX(T(SXv(SX~OZ#OO~P*`OZ#RO[#QO~OQ!QO^#TO_#TO`#TOa#]Od#ZOg!nOyvO|!VO!Q!dO!U#^O!W!lO!]!pO$i!eO$m!fO$q!gO$s!hO%T!iO%V!jO%Z!kO%]!lO%^!mO%f!oO%j!qO%s!rO'Q#VO'T#SO~OPoOQ!QOSVOTVOZeO[lOd[OsVOtVOuVOw!PO}mO!U#bO!W#cO!X!^O!Z!YO!liO!qgO!tiO#Y!_O#r!ZO#{![O$O!]O$b!`O$d!bO$f!cO'ZkO'^UO'gcO'qiO(QdO~P)xOPoOQ!QOSVOTVOZeO[lOd[OsVOtVOuVOw!PO}mO!U#bO!W#cO!X!^O!Z!YO!j#eO!liO!qgO!tiO#Y!_O#r!ZO#{![O$O!]O$b!`O$d!bO$f!cO'ZkO'^UO'gcO'qiO(QdO~P)xO[#}Oo#xO}#zO!l#yO!q#jO!t#yO#O#xO#P#uO#p$OO'g#gO'q#yO'r#lO'x#hO'y#iO'z#iO'{#kO'|#nO'}#mO(O#|O(P#gO(Q#hO(R#fO(T#hO~OPoOQ!QOSVOTVOZeOd[OsVOtVOuVOw!PO!U#bO!W#cO!X!^O!Z!YO#Y!_O#r!ZO#{![O$O!]O$b!`O$d!bO$f!cO'ZkO'^UO[#sXo#sXy#sX}#sX!l#sX!q#sX!t#sX#O#sX#P#sX#p#sX'g#sX'q#sX'r#sX'x#sX'y#sX'z#sX'{#sX'|#sX'}#sX(O#sX(P#sX(Q#sX(R#sX(T#sXX#sX!e#sX!P#sXv#sX#R#sX~P)xOX(SX!e(SX!P(SXw(SX#R(SX~P*`OPoOQ!QOSVOTVOX$ROZeO[lOd[OsVOtVOuVOw!PO}mO!U#bO!W#cO!X!^O!Z!YO!liO!qgO!tiO#Y!_O#r!ZO#{![O$O!]O$b!`O$d!bO$f!cO'Q$UO'ZkO'^UO'gcO'qiO(QdO~P)xOPoOQ!QOSVOTVOZeO[lOd[OsVOtVOuVOw!PO}mO!P$XO!U#bO!W#cO!X!^O!Z!YO!liO!qgO!tiO#Y!_O#r!ZO#{![O$O!]O$b!`O$d!bO$f!cO'Q$UO'ZkO'^UO'gcO'qiO(QdO~P)xOQ!QOSVOTVO[$gO^$pO_$ZO`9yOa9yOd$aOsVOtVOuVO}$eO!i$qO!l$lO!q$hO#V$lO'T$YO'^UO'g$[O~O!j$rOP(XP~P<cOPoOQ!QOSVOTVOZeO[lOd[OsVOtVOuVOw!PO}mO!U#bO!W#cO!X!^O!Z!YO!liO!qgO!tiO#Q$uO#Y!_O#r!ZO#{![O$O!]O$b!`O$d!bO$f!cO'ZkO'^UO'gcO'qiO(QdO~P)xOw$vO~Oo'bX#O'bX#P'bX#p'bX'r'bX'x'bX'y'bX'z'bX'{'bX'|'bX'}'bX(O'bX(P'bX(R'bX(T'bX~OP%tXQ%tXS%tXT%tXZ%tX[%tX^%tX_%tX`%tXa%tXd%tXg%tXs%tXt%tXu%tXw%tXy%tX|%tX}%tX!Q%tX!U%tX!W%tX!X%tX!Z%tX!]%tX!l%tX!q%tX!t%tX#Y%tX#r%tX#{%tX$O%tX$b%tX$d%tX$f%tX$i%tX$m%tX$q%tX$s%tX%T%tX%V%tX%Z%tX%]%tX%^%tX%f%tX%j%tX%s%tX&z%tX'Q%tX'T%tX'Z%tX'^%tX'g%tX'q%tX(Q%tXv%tX~P@[Oy$xO['bX}'bX!l'bX!q'bX!t'bX'g'bX'q'bX(Q'bXv'bX~P@[Ow$yO!Q(iX!U(iX!W(iX$q(iX%](iX%^(iX~Oy$zO~PEsO!Q$}O!U%UO!W!lO$m%OO$q%PO$s%QO%T%RO%V%SO%Z%TO%]!lO%^%VO%f%WO%j%XO%s%YO~O!Q!lO!U!lO!W!lO$q%[O%]!lO~O%^%VO~PGaOPoOQ!QOSVOTVOZeO[lO^RO_RO`ROa!UOd[Og!nOsVOtVOuVOw!POyvO|!VO}mO!Q!dO!U!WO!W!XO!X!^O!Z!YO!]!pO!liO!qgO!tiO#Y!_O#r!ZO#{![O$O!]O$b!`O$d!bO$f!cO$i!eO$m!fO$q!gO$s!hO%T!iO%V!jO%Z!kO%]!lO%^!mO%f!oO%j!qO%s!rO'Q#VO'TQO'ZkO'^UO'gcO'qiO(QdO~Ov%`O~P]OQ!QOZ%rO[%qO^%vO_%cO`TOaTOd%jOg%yO}%pO!q%oO$f%wO%^%xO&W%{O'T%dO'Z%eO(Q%zO~PGaO!Q{X!U{X!W{X$m{X$q{X$s{X%T{X%V{X%Z{X%]{X%^{X%f{X%j{X%s{X~P'ZO!Q{X!U{X!W{X$m{X$q{X$s{X%T{X%V{X%Z{X%]{X%^{X%f{X%j{X%s{X~O}%}O'T{XQ{XZ{X[{X^{X_{X`{Xa{Xd{Xg{X!q{X$f{X&W{X'Z{X(Q{X~PMuOg&PO%f%WO!Q(iX!U(iX!W(iX$q(iX%](iX%^(iX~Ow!PO~P! yOw!PO!X&RO~PEvOPoOQ!QOSVOTVOZeO[lO^9qO_9qO`9qOa9qOd9tOsVOtVOuVOw!PO}mO!U#bO!W#cO!X:zO!Z!YO!]&UO!l9wO!q9vO!t9wO#Y!_O#r9zO#{9{O$O!]O$b!`O$d!bO$f!cO'T9oO'ZkO'^UO'gcO'q9wO(QdO~OPoOQ!QOSVOTVOZeO[lOd[OsVOtVOuVOw!PO}mO!U#bO!W#cO!X!^O!Z!YO!liO!qgO!tiO#Y!_O#r!ZO#{![O$O!]O$b!`O$d!bO$f!cO'ZkO'^UO'gcO'qiO(QdOo#qXy#qX#O#qX#P#qX#p#qX'r#qX'x#qX'y#qX'z#qX'{#qX'|#qX'}#qX(O#qX(P#qX(R#qX(T#qXX#qX!e#qX!P#qXv#qX#R#qX~P)xOPoOQ!QOSVOTVOZeO[lOd[OsVOtVOuVOw!PO}mO!U#bO!W#cO!X!^O!Z!YO!liO!qgO!tiO#Y!_O#r!ZO#{![O$O!]O$b!`O$d!bO$f!cO'ZkO'^UO'gcO'qiO(QdOo#zXy#zX#O#zX#P#zX#p#zX'r#zX'x#zX'y#zX'z#zX'{#zX'|#zX'}#zX(O#zX(P#zX(R#zX(T#zXX#zX!e#zX!P#zXv#zX#R#zX~P)xO'ZkO[#}Xo#}Xy#}X}#}X!l#}X!q#}X!t#}X#O#}X#P#}X#p#}X'g#}X'q#}X'r#}X'x#}X'y#}X'z#}X'{#}X'|#}X'}#}X(O#}X(P#}X(Q#}X(R#}X(T#}XX#}X!e#}X!P#}Xv#}Xw#}X#R#}X~OPoO~OPoOQ!QOSVOTVOZeO[lO^9qO_9qO`9qOa9qOd9tOsVOtVOuVOw!PO}mO!U#bO!W#cO!X:zO!Z!YO!l9wO!q9vO!t9wO#Y!_O#r9zO#{9{O$O!]O$b!`O$d!bO$f!cO'T9oO'ZkO'^UO'gcO'q9wO(QdO~O!S&_O~Ow!PO~O!j&bO~P<cO'T&cO~PEvOZ&eO~O'T&cO~O'^UOw(^Xy(^X!Q(^X!U(^X!W(^X$q(^X%](^X%^(^X~Oa&hO~P!1iO'T&iO~O_&nO'T&cO~OQ&oOZ&pO[%qO^%vO_%cO`TOaTOd%jOg%yO}%pO!q%oO$f%wO%^%xO&W%{O'T%dO'Z%eO(Q%zO~PGaO!j&uO~P<cO^&wO_&wO`&wOa&wOd'POw&|O'T&vO(Q&}O~O!i'UO!j'TO'T&cO~O&}!sO'O'VO'P'XO~Or!uO']'ZO'_!uO~OQ']O^'ia_'ia`'iaa'ia'T'ia~O['cOw'dO}'bO~OQ']O~OQ!QO^#TO_#TO`#TOa'kOd#ZO'T#SO~O['lO~OZbXdlXXbXobXPbX!SbX!ebX'rbX!PbX!ObXybX!ZbX#RbXvbX~O[bXwbX}bX~P!6mOZ'SXd'XXX'SX['SXo'SXw'SX}'SX#p'SXP'SX!S'SX!e'SX'r'SX!P'SX!O'SXy'SX!Z'SX#R'SXv'SX~O^#TO_#TO`#TOa'kO'T#SO~OZ'mO~Od'oO~OZ'SXd'XX~PMuOZ'pOX(SX!e(SX!P(SXw(SX#R(SX~P*`O[#}O}#zO(O#|O(R#fOo#_ay#_a!l#_a!q#_a!t#_a#O#_a#P#_a#p#_a'g#_a'q#_a'r#_a'x#_a'y#_a'z#_a'{#_a'|#_a'}#_a(P#_a(Q#_a(T#_aX#_a!e#_a!P#_av#_aw#_a#R#_a~Ow!PO!X&RO~Oy#caX#ca!e#ca!P#cav#ca#R#ca~P2gOPoOQ!QOSVOTVOZeOd[OsVOtVOuVOw!PO!U#bO!W#cO!X!^O!Z!YO#Y!_O#r!ZO#{![O$O!]O$b!`O$d!bO$f!cO'ZkO'^UO[#sao#say#sa}#sa!l#sa!q#sa!t#sa#O#sa#P#sa#p#sa'g#sa'q#sa'r#sa'x#sa'y#sa'z#sa'{#sa'|#sa'}#sa(O#sa(P#sa(Q#sa(R#sa(T#saX#sa!e#sa!P#sav#sa#R#sa~P)xOPoOQ!QOSVOTVOZeO[lOd[OsVOtVOuVOw!PO}mO!U#bO!W#cO!X!^O!Z!YO!liO!qgO!tiO#Y!_O#r!ZO#{![O$O!]O$b!`O$d!bO$f!cO'Q#VO'ZkO'^UO'gcO'qiO(QdO!P(UP~P)xOu(SO#w(TO'T(RO~O[#}O}#zO!q#jO'g#gO'r#lO'x#hO'y#iO'z#iO'{#kO'|#nO'}#mO(O#|O(P#gO(Q#hO(R#fO(T#hO!l#sa!t#sa#p#sa'q#sa~Oo#xO#O#xO#P#uOy#saX#sa!e#sa!P#sav#sa#R#sa~P!B}Oy(YO!e(WOX(WX~P2gOX(ZO~OPoOQ!QOSVOTVOX(ZOZeO[lOd[OsVOtVOuVOw!PO}mO!U#bO!W#cO!X!^O!Z!YO!liO!qgO!tiO#Y!_O#r!ZO#{![O$O!]O$b!`O$d!bO$f!cO'Q$UO'ZkO'^UO'gcO'qiO(QdO~P)xOZ#RO~O!P(_O!e(WO~P2gOPoOQ!QOSVOTVOZeO[lOd[OsVOtVOuVOw!PO}mO!U#bO!W#cO!X!^O!Z!YO!liO!qgO!tiO#Y!_O#r!ZO#{![O$O!]O$b!`O$d!bO$f!cO'Q$UO'ZkO'^UO'gcO'qiO(QdO~P)xOZbXdlXwjX}jX!tbX'qbX~OP!RX!S!RX!e!RX'p!RX'r!RX!O!RXo!RXy!RX!P!RXX!RX!Z!RX#R!RXv!RX~P!JUOZ'SXd'XXw'kX}'kX!t'SX'q'SX~OP!`X!S!`X!e!`X'r!`X!O!`Xo!`Xy!`X!P!`XX!`X!Z!`X#R!`Xv!`X~P!KgOT(aOu(aO~O!t(bO'q(bOP!^X!S!^X!e!^X'r!^X!O!^Xo!^Xy!^X!P!^XX!^X!Z!^X#R!^Xv!^X~O^9rO_9rO`9yOa9yO'T9pO~Od(eO~O'p(fOP'hX!S'hX!e'hX'r'hX!O'hXo'hXy'hX!P'hXX'hX!Z'hX#R'hXv'hX~O!j&bO!P'lP~P<cOw(kO}(jO~O!j&bOX'lP~P<cO!j(oO~P<cOZ'pO!t(bO'q(bO~O!S(qO'r(pOP$WX!e$WX~O!e(rOP(YX~OP(tO~OP!aX!S!aX!e!aX'r!aX!O!aXo!aXy!aX!P!aXX!aX!Z!aX#R!aXv!aX~P!KgOy$UaX$Ua!e$Ua!P$Uav$Ua#R$Ua~P2gO!l(|O'Q#VO'T(xOv(ZP~OQ!QO^#TO_#TO`#TOa#]Od#ZOg!nOyvO|!VO!Q!dO!U#^O!W!lO!]!pO$i!eO$m!fO$q!gO$s!hO%T!iO%V!jO%Z!kO%]!lO%^!mO%f!oO%j!qO%s!rO'Q`O'T#SO~Ov)TO~P#$iOy)VO~PEsO%^)WO~PGaOa)ZO~P!1iO%f)`O~PEvO_)aO'T&cO~O!i)fO!j)eO'T&cO~O'^UO!Q(^X!U(^X!W(^X$q(^X%](^X%^(^X~Ov%uX~P2gOv)gO~PGyOv)gO~Ov)gO~P]OQiXQ'XXZiXd'XX}iX#piX(PiX~ORiXwiX$fiX$|iX[iXoiXyiX!liX!qiX!tiX#OiX#PiX'giX'qiX'riX'xiX'yiX'ziX'{iX'|iX'}iX(OiX(QiX(RiX(TiX!PiX!eiXXiXPiXviX!SiX#RiX~P#(kOQjXQlXRjXZjXdlX}jX#pjX(PjXwjX$fjX$|jX[jXojXyjX!ljX!qjX!tjX#OjX#PjX'gjX'qjX'rjX'xjX'yjX'zjX'{jX'|jX'}jX(OjX(QjX(RjX(TjX!PjX!ejXXjX!SjXPjXvjX#RjX~O%^)jO~PGaOQ']Od)kO~O^)mO_)mO`)mOa)mO'T%dO~Od)qO~OQ']OZ)uO})sOR'UX#p'UX(P'UXw'UX$f'UX$|'UX['UXo'UXy'UX!l'UX!q'UX!t'UX#O'UX#P'UX'g'UX'q'UX'r'UX'x'UX'y'UX'z'UX'{'UX'|'UX'}'UX(O'UX(Q'UX(R'UX(T'UX!P'UX!e'UXX'UXP'UXv'UX!S'UX#R'UX~OQ!QO^:bO_:^O`TOaTOd:aO%^)jO'T:_O~PGaOQ!QOZ%rO[%qO^%vO_%cO`TOaTOd%jOg%yO}%pO!j)yO!q%oO$f%wO%^%xO&W%{O'T%dO'Z%eO(Q%zO~PGaOQ!QOZ%rO[%qO^%vO_%cO`TOaTOd%jOg%yO}%pO!P)|O!q%oO$f%wO%^%xO&W%{O'T%dO'Z%eO(Q%zO~PGaO(P*OO~OR*QO#p*RO(P*PO~OQhXQ'XXZhXd'XX}hX(PhX~ORhX#phXwhX$fhX$|hX[hXohXyhX!lhX!qhX!thX#OhX#PhX'ghX'qhX'rhX'xhX'yhX'zhX'{hX'|hX'}hX(OhX(QhX(RhX(ThX!PhX!ehXXhXPhXvhX!ShX#RhX~P#4kOQ*SO~O})sO~OQ!QO^%vO_%cO`TOaTOd%jO$f%wO%^%xO'T%dO~PGaO!Q*VO!j*VO~O^*YO`*YOa*YO!O*ZO~OQ&oOZ*[O[%qO^%vO_%cO`TOaTOd%jOg%yO}%pO!q%oO$f%wO%^%xO&W%{O'T%dO'Z%eO(Q%zO~PGaO[#}Oo:YO}#zO!l:ZO!q#jO!t:ZO#O:YO#P:VO#p$OO'g#gO'q:ZO'r#lO'x#hO'y#iO'z#iO'{#kO'|#nO'}#mO(O#|O(P#gO(Q#hO(R#fO(T#hO~Ow'dX~P#9vOy#qaX#qa!e#qa!P#qav#qa#R#qa~P2gOy#zaX#za!e#za!P#zav#za#R#za~P2gOPoOQ!QOSVOTVOZeO[lOd[OsVOtVOuVOw!PO}mO!S&_O!U#bO!W#cO!X!^O!Z!YO!liO!qgO!tiO#Y!_O#r!ZO#{![O$O!]O$b!`O$d!bO$f!cO'ZkO'^UO'gcO'qiO(QdOo#zay#za#O#za#P#za#p#za'r#za'x#za'y#za'z#za'{#za'|#za'}#za(O#za(P#za(R#za(T#zaX#za!e#za!P#zav#za#R#za~P)xOPoOQ!QOSVOTVOZeO[lOd[OsVOtVOuVOw!PO}mO!U#bO!W#cO!X!^O!Z!YO!liO!qgO!tiO#Q*eO#Y!_O#r!ZO#{![O$O!]O$b!`O$d!bO$f!cO'ZkO'^UO'gcO'qiO(QdO~P)xOw*fO~P#9vO$b*iO$d*jO$f*kO~O!O*lO'r(pO~O!S*nO~O'T*oO~Ow$yOy*qO~O'T*rO~OQ*uOw*vOy*yO}*wO$|*xO~OQ*uOw*vO$|*xO~OQ*uOw+QO$|*xO~OQ*uOo+VOy+XO!S+UO~OQ*uO}+ZO~OQ!QOZ%rO[%qO^%vO`TOaTOd%jOg%yO}%pO!U!lO!W!lO!q%oO$f%wO$q%[O%]!lO%^%xO&W%{O'T%dO'Z%eO(Q%zO~OR+bO_+^O!Q+cO~P#DkO_%cO!Q!lOw&UX$|&UX(P&UX~P#DkOw$yO$f+hO$|*xO(P*PO~OQ!QOZ*[O[%qO^%vO_%cO`TOaTOd%jOg%yO}%pO!q%oO$f%wO%^%xO&W%{O'T%dO'Z%eO(Q%zO~PGaOQ*uOw$yO!S+UO$|*xO~Oo+nOy+mO!S+oO'r(pO~OdlXy!RX#pbXv!RX!e!RX~Od'XXy(mX#p'SXv(mX!e(mX~Od+qO~O^#TO_#TO`#TOa'kOw&|O'T&vO(Q+vO~Ov(oP~P!3|O#p+{O~Oy+|O~O!S+}O~O&}!sO'O'VO'P,PO~Od,QO~OSVOTVO_%cOsVOtVOuVOw!PO!Q!lO'^UO~P#DkOS,^OT,^OZ,^O['cO_,YOd,^Oo,^Os,^Ou,^Ow'dOy,^O}'bO!S,^O!e,^O!l,^O!q,[O!t,^O!y,^O#O,^O#P,^O#Q,^O#R,^O'Q,^O'Z%eO'^UO'g,ZO'r,[O'v,_O'x,ZO'y,[O'z,[O'{,[O'|,]O'},]O(O,^O(P,`O(Q,`O(R,aO~O!P,dO~P#KkOX,gO~P#KkOv,iO~P#KkOo'tX#O'tX#P'tX#p'tX'r'tX'x'tX'y'tX'z'tX'{'tX'|'tX'}'tX(O'tX(P'tX(R'tX(T'tX~Oy,jO['tX}'tX!l'tX!q'tX!t'tX'g'tX'q'tX(Q'tXv'tX~P#NjOP$giQ$giS$giT$giZ$gi[$gi^$gi_$gi`$gia$gid$gig$gis$git$giu$giw$giy$gi|$gi}$gi!Q$gi!U$gi!W$gi!X$gi!Z$gi!]$gi!l$gi!q$gi!t$gi#Y$gi#r$gi#{$gi$O$gi$b$gi$d$gi$f$gi$i$gi$m$gi$q$gi$s$gi%T$gi%V$gi%Z$gi%]$gi%^$gi%f$gi%j$gi%s$gi&z$gi'Q$gi'T$gi'Z$gi'^$gi'g$gi'q$gi(Q$giv$gi~P#NjOX,kO~O['cOo,lOw'dO}'bOX]X~Oy#ciX#ci!e#ci!P#civ#ci#R#ci~P2gO[#}O}#zO'x#hO(O#|O(Q#hO(R#fO(T#hOo#eiy#ei!l#ei!q#ei!t#ei#O#ei#P#ei#p#ei'q#ei'r#ei'y#ei'z#ei'{#ei'|#ei'}#eiX#ei!e#ei!P#eiv#ei#R#ei~O'g#ei(P#ei~P$'PO[#}O}#zO(O#|O(R#fOo#eiy#ei!l#ei!q#ei!t#ei#O#ei#P#ei#p#ei'q#ei'r#ei'y#ei'z#ei'{#ei'|#ei'}#eiX#ei!e#ei!P#eiv#ei#R#ei~O'g#ei'x#ei(P#ei(Q#ei(T#eiw#ei~P$)QO'g#gO(P#gO~P$'PO[#}O}#zO'g#gO'x#hO'y#iO'z#iO(O#|O(P#gO(Q#hO(R#fO(T#hOo#eiy#ei!l#ei!t#ei#O#ei#P#ei#p#ei'q#ei'r#ei'{#ei'|#ei'}#eiX#ei!e#ei!P#eiv#ei#R#ei~O!q#ei~P$+`O!q#jO~P$+`O[#}O}#zO!q#jO'g#gO'x#hO'y#iO'z#iO'{#kO(O#|O(P#gO(Q#hO(R#fO(T#hOo#eiy#ei!l#ei!t#ei#O#ei#P#ei#p#ei'q#ei'|#ei'}#eiX#ei!e#ei!P#eiv#ei#R#ei~O'r#ei~P$-hO'r#lO~P$-hO[#}O}#zO!q#jO#P#uO'g#gO'r#lO'x#hO'y#iO'z#iO'{#kO(O#|O(P#gO(Q#hO(R#fO(T#hOo#eiy#ei!l#ei!t#ei#O#ei#p#ei'q#ei'|#eiX#ei!e#ei!P#eiv#ei#R#ei~O'}#ei~P$/pO'}#mO~P$/pO[#}O}#zO!q#jO'g#gO'r#lO'x#hO'y#iO'z#iO'{#kO'|#nO'}#mO(O#|O(P#gO(Q#hO(R#fO(T#hO!l#ni!t#ni#p#ni'q#ni~Oo#xO#O#xO#P#uOy#niX#ni!e#ni!P#niv#ni#R#ni~P$1xO[#}O}#zO!q#jO'g#gO'r#lO'x#hO'y#iO'z#iO'{#kO'|#nO'}#mO(O#|O(P#gO(Q#hO(R#fO(T#hO!l#si!t#si#p#si'q#si~Oo#xO#O#xO#P#uOy#siX#si!e#si!P#siv#si#R#si~P$3yOPoOQ!QOSVOTVOZeO[lOd[OsVOtVOuVOw!PO}mO!U#bO!W#cO!X!^O!Z!YO!liO!qgO!tiO#Y!_O#r!ZO#{![O$O!]O$b!`O$d!bO$f!cO'Q#VO'ZkO'^UO'gcO'qiO(QdO~P)xO!e,sO!P(VX~P2gO!P,uO~OX,vO~P2gOPoOQ!QOSVOTVOZeO[lOd[OsVOtVOuVOw!PO}mO!U#bO!W#cO!X!^O!Z!YO!liO!qgO!tiO#Y!_O#r!ZO#{![O$O!]O$b!`O$d!bO$f!cO'ZkO'^UO'gcO'qiO(QdOX&fX!e&fX!P&fX~P)xO!e(WOX(Wa~Oy,zO!e(WOX(WX~P2gOX,{O~O!P,|O!e(WO~O!P-OO!e(WO~P2gOSVOTVOsVOtVOuVO'^UO'g$[O~P!6POP!baZca!S!ba!e!ba!tca'qca'r!ba!O!bao!bay!ba!P!baX!ba!Z!ba#R!bav!ba~O!e-TO'r(pO!P'mXX'mX~O!P-VO~O!i-`O!j-_O!l-[O'T-XOv'nP~OX-aO~O_%cO!Q!lO~P#DkO!j-gOP&gX!e&gX~P<cO!e(rOP(Ya~O!S-iO'r(pOP$Wa!e$Wa~Ow!PO(P*PO~OvbX!S!kX!ebX~O'Q#VO'T(xO~O!S-mO~O!e-oOv([X~Ov-qO~Ov-sO~P,cOv-sO~P#$iO_-uO'T&cO~O!S-vO~Ow$yOy-wO~OQ*uOw*vOy-zO}*wO$|*xO~OQ*uOo.UO~Oy._O~O!S.`O~O!j.bO'T&cO~Ov.cO~Ov.cO~PGyOQ']O^'Wa_'Wa`'Waa'Wa'T'Wa~Od.gO~OQ'XXQ'kXR'kXZ'kXd'XX}'kX#p'kX(P'kXw'kX$f'kX$|'kX['kXo'kXy'kX!l'kX!q'kX!t'kX#O'kX#P'kX'g'kX'q'kX'r'kX'x'kX'y'kX'z'kX'{'kX'|'kX'}'kX(O'kX(Q'kX(R'kX(T'kX!P'kX!e'kXX'kXP'kXv'kX!S'kX#R'kX~OQ!QOZ%rO[%qO^.rO_%cO`TOaTOd%jOg%yO}%pO!j.sO!q.pO!t.kO#V.mO$f%wO%^%xO&W%{O'Q#VO'T%dO'Z%eO(Q%zO!P(sP~PGaO#Q.tOR%wa#p%wa(P%waw%wa$f%wa$|%wa[%wao%way%wa}%wa!l%wa!q%wa!t%wa#O%wa#P%wa'g%wa'q%wa'r%wa'x%wa'y%wa'z%wa'{%wa'|%wa'}%wa(O%wa(Q%wa(R%wa(T%wa!P%wa!e%waX%waP%wav%wa!S%wa#R%wa~O%^.vO~PGaO(P*POR&Oa#p&Oaw&Oa$f&Oa$|&Oa[&Oao&Oay&Oa}&Oa!l&Oa!q&Oa!t&Oa#O&Oa#P&Oa'g&Oa'q&Oa'r&Oa'x&Oa'y&Oa'z&Oa'{&Oa'|&Oa'}&Oa(O&Oa(Q&Oa(R&Oa(T&Oa!P&Oa!e&OaX&OaP&Oav&Oa!S&Oa#R&Oa~O_%cO!Q!lO!j.xO(P*OO~P#DkO!e.yO(P*PO!P(uX~O!P.{O~OX.|Oy.}O(P*PO~O'Z%eOR(qP~OQ']O})sORfa#pfa(Pfawfa$ffa$|fa[faofayfa!lfa!qfa!tfa#Ofa#Pfa'gfa'qfa'rfa'xfa'yfa'zfa'{fa'|fa'}fa(Ofa(Qfa(Rfa(Tfa!Pfa!efaXfaPfavfa!Sfa#Rfa~OQ']O})sOR&Va#p&Va(P&Vaw&Va$f&Va$|&Va[&Vao&Vay&Va!l&Va!q&Va!t&Va#O&Va#P&Va'g&Va'q&Va'r&Va'x&Va'y&Va'z&Va'{&Va'|&Va'}&Va(O&Va(Q&Va(R&Va(T&Va!P&Va!e&VaX&VaP&Vav&Va!S&Va#R&Va~O!P/UO~Ow$yO$f/ZO$|*xO(P*PO~OQ!QOZ/[O[%qO^%vO_%cO`TOaTOd%jOg%yO}%pO!q%oO$f%wO%^%xO&W%{O'T%dO'Z%eO(Q%zO~PGaOo/^O'r(pO~O#W/_OP!YiQ!YiS!YiT!YiZ!Yi[!Yi^!Yi_!Yi`!Yia!Yid!Yig!Yio!Yis!Yit!Yiu!Yiw!Yiy!Yi|!Yi}!Yi!Q!Yi!U!Yi!W!Yi!X!Yi!Z!Yi!]!Yi!l!Yi!q!Yi!t!Yi#O!Yi#P!Yi#Y!Yi#p!Yi#r!Yi#{!Yi$O!Yi$b!Yi$d!Yi$f!Yi$i!Yi$m!Yi$q!Yi$s!Yi%T!Yi%V!Yi%Z!Yi%]!Yi%^!Yi%f!Yi%j!Yi%s!Yi&z!Yi'Q!Yi'T!Yi'Z!Yi'^!Yi'g!Yi'q!Yi'r!Yi'x!Yi'y!Yi'z!Yi'{!Yi'|!Yi'}!Yi(O!Yi(P!Yi(Q!Yi(R!Yi(T!YiX!Yi!e!Yi!P!Yiv!Yi!i!Yi!j!Yi#V!Yi#R!Yi~Oy#ziX#zi!e#zi!P#ziv#zi#R#zi~P2gOy$UiX$Ui!e$Ui!P$Uiv$Ui#R$Ui~P2gOv/eO!j&bO'Q`O~P<cOw/nO}/mO~Oy!RX#pbX~Oy/oO~O#p/pO~OR+bO_+dO!Q/sO'T&iO'Z%eO~Oa/zO|!VO'Q#VO'T(ROv(cP~OQ!QOZ%rO[%qO^%vO_%cO`TOa/zOd%jOg%yO|!VO}%pO!q%oO$f%wO%^%xO&W%{O'Q#VO'T%dO'Z%eO(Q%zO!P(eP~PGaOQ!QOZ%rO[%qO^%vO_%cO`TOaTOd%jOg%yO}%pO!q%oO$f0VO%^%xO&W%{O'T%dO'Z%eO(Q%zOw(`Py(`P~PGaOw*vO~Oy-zO$|*xO~Oa/zO|!VO'Q#VO'T*oOv(gP~Ow+QO~OQ!QOZ%rO[%qO^%vO_%cO`TOaTOd%jOg%yO}%pO!q%oO$f0VO%^%xO&W%{O'T%dO'Z%eO(Q%zO(R0`O~PGaOy0dO~OQ!QOSVOTVO[$gO^0lO_$ZO`9yOa9yOd$aOsVOtVOuVO}$eO!i$qO!j0mO!l$lO!q0eO!t0hO'Q#VO'T$YO'Z%eO'^UO'g$[O~O#V0nO!P(jP~P%1}Ow!POy0pO#Q0rO$|*xO~OR0uO!e0sO~P#(kOR0uO!S+UO!e0sO(P*OO~OR0uOo0wO!S+UO!e0sOQ'VXZ'VX}'VX#p'VX(P'VX~OR0uOo0wO!e0sO~OR0uO!e0sO~O$f/ZO(P*PO~Ow$yO~Ow$yO$|*xO~Oo0}Oy0|O!S1OO'r(pO~O!e1POv(pX~Ov1RO~O^#TO_#TO`#TOa'kOw&|O'T&vO(Q1VO~Oo1YOQ'VXR'VXZ'VX}'VX!e'VX(P'VX~O!e1ZO(P*POR'YX~O!e1ZOR'YX~O!e1ZO(P*OOR'YX~OR1]O~O!S1^OS'wXT'wXZ'wX['wX_'wXd'wXo'wXs'wXu'wXw'wXy'wX}'wX!P'wX!e'wX!l'wX!q'wX!t'wX!y'wX#O'wX#P'wX#Q'wX#R'wX'Q'wX'Z'wX'^'wX'g'wX'r'wX'v'wX'x'wX'y'wX'z'wX'{'wX'|'wX'}'wX(O'wX(P'wX(Q'wX(R'wXX'wXv'wX~O}1_O~O!P1aO~P#KkOX1bO~P#KkOv1cO~P#KkOS,^OT,^OZ,^O['cO_1dOd,^Oo,^Os,^Ou,^Ow'dOy,^O}'bO!S,^O!e,^O!l,^O!q,[O!t,^O!y,^O#O,^O#P,^O#Q,^O#R,^O'Q,^O'Z%eO'^UO'g,ZO'r,[O'v,_O'x,ZO'y,[O'z,[O'{,[O'|,]O'},]O(O,^O(P,`O(Q,`O(R,aO~OX1fO~Oy,jO~O!e,sO!P(Va~P2gOPoOQ!QOSVOTVOZeO[lOd[OsVOtVOuVOw!PO}mO!U#bO!W#cO!X!^O!Z!YO!liO!qgO!tiO#Y!_O#r!ZO#{![O$O!]O$b!`O$d!bO$f!cO'Q#VO'ZkO'^UO'gcO'qiO(QdO!P&eX!e&eX~P)xO!e,sO!P(Va~OX&fa!e&fa!P&fa~P2gOX1kO~P2gO!P1mO!e(WO~OP!biZci!S!bi!e!bi!tci'qci'r!bi!O!bio!biy!bi!P!biX!bi!Z!bi#R!biv!bi~O'r(pOP!oi!S!oi!e!oi!O!oio!oiy!oi!P!oiX!oi!Z!oi#R!oiv!oi~O!j&bO!P&`X!e&`XX&`X~P<cO!e-TO!P'maX'ma~O!P1qO~Ov!RX!S!kX!e!RX~O!S1rO~O!e1sOv'oX~Ov1uO~O'T-XO~O!j1xO'T-XO~O(P*POP$Wi!e$Wi~O!S1yO'r(pOP$XX!e$XX~O!S1|O~Ov$_a!e$_a~P2gO!l(|O'Q#VO'T(xOv&hX!e&hX~O!e-oOv([a~Ov2QO~P,cOy2UO~O#p2VO~Oy2WO$|*xO~Ow*vOy2WO}*wO$|*xO~Oo2aO~Ow!POy2fO#Q2hO$|*xO~O!S2jO~Ov2lO~O#Q2mOR%wi#p%wi(P%wiw%wi$f%wi$|%wi[%wio%wiy%wi}%wi!l%wi!q%wi!t%wi#O%wi#P%wi'g%wi'q%wi'r%wi'x%wi'y%wi'z%wi'{%wi'|%wi'}%wi(O%wi(Q%wi(R%wi(T%wi!P%wi!e%wiX%wiP%wiv%wi!S%wi#R%wi~Od2nO~O^2qO!j.sO!q2rO'Q#VO'Z%eO~O(P*PO!P%{X!e%{X~O!e2sO!P(tX~O!P2uO~OQ!QOZ%rO[%qO^2wO_%cO`TOaTOd%jOg%yO}%pO!j2xO!q%oO$f%wO%^%xO&W%{O'T%dO'Z%eO(Q%zO~PGaO^2yO!j2xO(P*OO~O!P%aX!e%aX~P#4kO^2yO~O(P*POR&Oi#p&Oiw&Oi$f&Oi$|&Oi[&Oio&Oiy&Oi}&Oi!l&Oi!q&Oi!t&Oi#O&Oi#P&Oi'g&Oi'q&Oi'r&Oi'x&Oi'y&Oi'z&Oi'{&Oi'|&Oi'}&Oi(O&Oi(Q&Oi(R&Oi(T&Oi!P&Oi!e&OiX&OiP&Oiv&Oi!S&Oi#R&Oi~O_%cO!Q!lO!P&yX!e&yX~P#DkO!e.yO!P(ua~OR3QO(P*PO~O!e3ROR(rX~OR3TO~O(P*POR&Pi#p&Piw&Pi$f&Pi$|&Pi[&Pio&Piy&Pi}&Pi!l&Pi!q&Pi!t&Pi#O&Pi#P&Pi'g&Pi'q&Pi'r&Pi'x&Pi'y&Pi'z&Pi'{&Pi'|&Pi'}&Pi(O&Pi(Q&Pi(R&Pi(T&Pi!P&Pi!e&PiX&PiP&Piv&Pi!S&Pi#R&Pi~O!P3UO~O$f3VO(P*PO~Ow$yO$f3VO$|*xO(P*PO~Ow!PO!Z!YO~O!Z3aO#R3_O'r(pO~O!j&bO'Q#VO~P<cOv3eO~Ov3eO!j&bO'Q`O~P<cO!O3hO'r(pO~Ow!PO~P#9vOo3kOy3jO(P*PO~O!P3oO~P%;pOv3rO~P%;pOR0uO!S+UO!e0sO~OR0uOo0wO!S+UO!e0sO~Oa/zO|!VO'Q#VO'T(RO~O!S3uO~O!e3wOv(dX~Ov3yO~OQ!QOZ%rO[%qO^%vO_%cO`TOa/zOd%jOg%yO|!VO}%pO!q%oO$f%wO%^%xO&W%{O'Q#VO'T%dO'Z%eO(Q%zO~PGaO!e3|O(P*PO!P(fX~O!P4OO~O!S4PO(P*OO~O!S+UO(P*PO~O!e4ROw(aXy(aX~OQ4TO~Oy2WO~Oa/zO|!VO'Q#VO'T*oO~Oo4WOw*vO}*wOv%XX!e%XX~O!e4ZOv(hX~Ov4]O~O(P4_Oy(_Xw(_X$|(_XR(_Xo(_X!e(_X~Oy4aO(P*PO~OQ!QOSVOTVO[$gO^4bO_$ZO`9yOa9yOd$aOsVOtVOuVO}$eO!i$qO!l$lO!q$hO#V$lO'T$YO'^UO'g$[O~O!j4cO'Z%eO~P&,sO!S4eO'r(pO~O#V4gO~P%1}O!e4hO!P(kX~O!P4jO~O!P%aX!S!aX!e%aX'r!aX~P!KgO!j&bO~P&,sO!e4hO!P(kX!S'eX'r'eX~O^2yO!j2xO~Ow!POy2fO~O_4pO!Q/sO'T&iO'Z%eOR&lX!e&lX~OR4rO!e0sO~O!S4tO~Ow$yO$|*xO(P*PO~Oy4uO~P2gOo4vOy4uO(P*PO~Ov&uX!e&uX~P!3|O!e1POv(pa~Oo4|Oy4{O(P*PO~OSVOTVO_%cOsVOtVOuVOw!PO!Q!lO'^UOR&vX!e&vX~P#DkO!e1ZOR'Ya~O!y5SO~O!P5TO~P#KkO!S1^OX'wX#R'wX~O!e,sO!P(Vi~O!P&ea!e&ea~P2gOX5WO~P2gOP!bqZcq!S!bq!e!bq!tcq'qcq'r!bq!O!bqo!bqy!bq!P!bqX!bq!Z!bq#R!bqv!bq~O'r(pO!P&`a!e&`aX&`a~O!i-`O!j-_O!l5YO'T-XOv&aX!e&aX~O!e1sOv'oa~O!S5[O~O!S5`O'r(pOP$Xa!e$Xa~O(P*POP$Wq!e$Wq~Ov$^i!e$^i~P2gOw!POy5bO#Q5dO$|*xO~Oo5gOy5fO(P*PO~Oy5iO~Oy5iO$|*xO~Oy5mO(P*PO~Ow!POy5bO~Oo5tOy5sO(P*PO~O!S5vO~O!e2sO!P(ta~O^2yO!j2xO'Z%eO~OQ!QOZ%rO[%qO^.rO_%cO`TOaTOd%jOg%yO}%pO!j.sO!q.pO!t5zO#V5|O$f%wO%^%xO&W%{O'Q#VO'T%dO'Z%eO(Q%zO!P&xX!e&xX~PGaOQ!QOZ%rO[%qO^6OO_%cO`TOaTOd%jOg%yO}%pO!j6PO!q%oO$f%wO%^%xO&W%{O'T%dO'Z%eO(P*OO(Q%zO~PGaO!P%aa!e%aa~P#4kO^6QO~O#Q6ROR%wq#p%wq(P%wqw%wq$f%wq$|%wq[%wqo%wqy%wq}%wq!l%wq!q%wq!t%wq#O%wq#P%wq'g%wq'q%wq'r%wq'x%wq'y%wq'z%wq'{%wq'|%wq'}%wq(O%wq(Q%wq(R%wq(T%wq!P%wq!e%wqX%wqP%wqv%wq!S%wq#R%wq~O(P*POR&Oq#p&Oqw&Oq$f&Oq$|&Oq[&Oqo&Oqy&Oq}&Oq!l&Oq!q&Oq!t&Oq#O&Oq#P&Oq'g&Oq'q&Oq'r&Oq'x&Oq'y&Oq'z&Oq'{&Oq'|&Oq'}&Oq(O&Oq(Q&Oq(R&Oq(T&Oq!P&Oq!e&OqX&OqP&Oqv&Oq!S&Oq#R&Oq~O(P*PO!P&ya!e&ya~OX6SO~P2gO'Z%eOR&wX!e&wX~O!e3ROR(ra~O$f6YO(P*PO~Ow![q~P#9vO#R6]O~O!Z3aO#R6]O'r(pO~Ov6bO~O#R6fO~Oy6gO!P6hO~O!P6hO~P%;pOy6kO~Ov6kOy6gO~Ov6kO~P%;pOy6mO~O!e3wOv(da~O!S6pO~Oa/zO|!VO'Q#VO'T(ROv&oX!e&oX~O!e3|O(P*PO!P(fa~OQ!QOZ%rO[%qO^%vO_%cO`TOa/zOd%jOg%yO|!VO}%pO!q%oO$f%wO%^%xO&W%{O'Q#VO'T%dO'Z%eO(Q%zO!P&pX!e&pX~PGaO!e3|O!P(fa~OQ!QOZ%rO[%qO^%vO_%cO`TOaTOd%jOg%yO}%pO!q%oO$f0VO%^%xO&W%{O'T%dO'Z%eO(Q%zOw&nX!e&nXy&nX~PGaO!e4ROw(aay(aa~O!e4ZOv(ha~Oo7SOv%Xa!e%Xa~Oo7SOw*vO}*wOv%Xa!e%Xa~Oa/zO|!VO'Q#VO'T*oOv&qX!e&qX~O(P*POy$xaw$xa$|$xaR$xao$xa!e$xa~O(P4_Oy(_aw(_a$|(_aR(_ao(_a!e(_a~O!P%aa!S!aX!e%aa'r!aX~P!KgOQ!QOSVOTVO[$gO_$ZO`9yOa9yOd$aOsVOtVOuVO}$eO!i$qO!j&bO!l$lO!q$hO#V$lO'T$YO'^UO'g$[O~O^7ZO~P&JUO^6QO!j6PO~O!e4hO!P(ka~O!e4hO!P(ka!S'eX'r'eX~OQ!QOSVOTVO[$gO^0lO_$ZO`9yOa9yOd$aOsVOtVOuVO}$eO!i$qO!j0mO!l$lO!q0eO!t7_O'Q#VO'T$YO'Z%eO'^UO'g$[O~O#V7aO!P&sX!e&sX~P&L]O!S7cO'r(pO~Ow!POy5bO$|*xO(P*PO~O!S+UOR&la!e&la~Oo0wO!S+UOR&la!e&la~Oo0wOR&la!e&la~O(P*POR$yi!e$yi~Oy7fO~P2gOo7gOy7fO(P*PO~O(P*PORni!eni~O(P*POR&va!e&va~O(P*OOR&va!e&va~OS,^OT,^OZ,^O_,^Od,^Oo,^Os,^Ou,^Oy,^O!S,^O!e,^O!l,^O!q,[O!t,^O!y,^O#O,^O#P,^O#Q,^O#R,^O'Q,^O'Z%eO'^UO'g,ZO'r,[O'x,ZO'y,[O'z,[O'{,[O'|,]O'},]O(O,^O~O(P7iO(Q7iO(R7iO~P'!qO!P7kO~P#KkO!P&ei!e&ei~P2gO'r(pOv!hi!e!hi~O!S7mO~O(P*POP$Xi!e$Xi~Ov$^q!e$^q~P2gOw!POy7oO~Ow!POy7oO#Q7rO$|*xO~Oy7tO~Oy7uO~Oy7vO(P*PO~Ow!POy7oO$|*xO(P*PO~Oo7{Oy7zO(P*PO~O!e2sO!P(ti~O(P*PO!P%}X!e%}X~O!P%ai!e%ai~P#4kO^8OO~O!e8TO['bXv$`i}'bX!l'bX!q'bX!t'bX'g'bX'q'bX(Q'bX~P@[OQ#[iS#[iT#[i[#[i^#[i_#[i`#[ia#[id#[is#[it#[iu#[iv$`i}#[i!i#[i!j#[i!l#[i!q#[i!t'bX#V#[i'Q#[i'T#[i'^#[i'g#[i'q'bX(Q'bX~P@[O#R#^a~P2gO#R8WO~O!Z3aO#R8XO'r(pO~Ov8[O~Oy8^O~P2gOy8`O~Oy6gO!P8aO~Ov8`Oy6gO~O!e3wOv(di~O(P*POv%Qi!e%Qi~O!e3|O!P(fi~O!e3|O(P*PO!P(fi~O(P*PO!P&pa!e&pa~O(P8hOw(bX!e(bXy(bX~O(P*PO!S$wiy$wiw$wi$|$wiR$wio$wi!e$wi~O!e4ZOv(hi~Ov%Xi!e%Xi~P2gOo8kOv%Xi!e%Xi~O!P%ai!S!aX!e%ai'r!aX~P!KgO(P*PO!P%`i!e%`i~O!e4hO!P(ki~O#V8nO~P&L]O!P&sa!S'eX!e&sa'r'eX~O(P*POR$zq!e$zq~Oy8pO~P2gOy7zO~P2gO(P8rO(Q8rO(R8rO~O(P8rO(Q8rO(R8rO~P'!qO'r(pOv!hq!e!hq~O(P*POP$Xq!e$Xq~Ow!POy8uO$|*xO(P*PO~Ow!POy8uO~Oy8xO~P2gOy8zO~P2gOo8|Oy8zO(P*PO~OQ#[qS#[qT#[q[#[q^#[q_#[q`#[qa#[qd#[qs#[qt#[qu#[qv$`q}#[q!i#[q!j#[q!l#[q!q#[q#V#[q'Q#[q'T#[q'^#[q'g#[q~O!e9PO['bXv$`q}'bX!l'bX!q'bX!t'bX'g'bX'q'bX(Q'bX~P@[Oo'bX!t'bX#O'bX#P'bX#p'bX'q'bX'r'bX'x'bX'y'bX'z'bX'{'bX'|'bX'}'bX(O'bX(P'bX(Q'bX(R'bX(T'bX~P'2fO#R9UO~O!Z3aO#R9UO'r(pO~Oy9WO~O(P*POv%Qq!e%Qq~O!e3|O!P(fq~O(P*PO!P&pi!e&pi~O(P8hOw(ba!e(bay(ba~Ov%Xq!e%Xq~P2gO!P&si!S'eX!e&si'r'eX~O(P*PO!P%`q!e%`q~Oy9]O~P2gO(P9^O(Q9^O(R9^O~O'r(pOv!hy!e!hy~Ow!POy9_O~Ow!POy9_O$|*xO(P*PO~Oy9aO~P2gOQ#[yS#[yT#[y[#[y^#[y_#[y`#[ya#[yd#[ys#[yt#[yu#[yv$`y}#[y!i#[y!j#[y!l#[y!q#[y#V#[y'Q#[y'T#[y'^#[y'g#[y~O!e9dO['bXv$`y}'bX!l'bX!q'bX!t'bX'g'bX'q'bX(Q'bX~P@[Oo'bX!t'bX#O'bX#P'bX#p'bX'q'bX'r'bX'x'bX'y'bX'z'bX'{'bX'|'bX'}'bX(O'bX(P'bX(Q'bX(R'bX(T'bX~P'9eO!e9eO['bX}'bX!l'bX!q'bX!t'bX'g'bX'q'bX(Q'bX~P@[OQ#[iS#[iT#[i[#[i^#[i_#[i`#[ia#[id#[is#[it#[iu#[i}#[i!i#[i!j#[i!l#[i!q#[i!t'bX#V#[i'Q#[i'T#[i'^#[i'g#[i'q'bX(Q'bX~P@[O#R9hO~O(P*PO!P&pq!e&pq~Ov%Xy!e%Xy~P2gOw!POy9iO~Oy9jO~P2gOQ#[!RS#[!RT#[!R[#[!R^#[!R_#[!R`#[!Ra#[!Rd#[!Rs#[!Rt#[!Ru#[!Rv$`!R}#[!R!i#[!R!j#[!R!l#[!R!q#[!R#V#[!R'Q#[!R'T#[!R'^#[!R'g#[!R~O!e9kO['bX}'bX!l'bX!q'bX!t'bX'g'bX'q'bX(Q'bX~P@[OQ#[qS#[qT#[q[#[q^#[q_#[q`#[qa#[qd#[qs#[qt#[qu#[q}#[q!i#[q!j#[q!l#[q!q#[q!t'bX#V#[q'Q#[q'T#[q'^#[q'g#[q'q'bX(Q'bX~P@[O!e9nO['bX}'bX!l'bX!q'bX!t'bX'g'bX'q'bX(Q'bX~P@[OQ#[yS#[yT#[y[#[y^#[y_#[y`#[ya#[yd#[ys#[yt#[yu#[y}#[y!i#[y!j#[y!l#[y!q#[y!t'bX#V#[y'Q#[y'T#[y'^#[y'g#[y'q'bX(Q'bX~P@[OwbX~P$|OwjX}jX!tbX'qbX~P!6mOZ'SXd'XXo'SXw'kX!t'SX'q'SX'r'SX~O['SXd'SXw'SX}'SX!l'SX!q'SX#O'SX#P'SX#p'SX'g'SX'x'SX'y'SX'z'SX'{'SX'|'SX'}'SX(O'SX(P'SX(Q'SX(R'SX(T'SX~P'GTOP'SX}'kX!S'SX!e'SX!O'SXy'SX!P'SXX'SX!Z'SX#R'SXv'SX~P'GTO^9qO_9qO`9qOa9qO'T9oO~O!j:OO~P!.cOPoOQ!QOSVOTVOZeOd9tOsVOtVOuVO!U#bO!W#cO!X:zO!Z!YO#Y!_O#r9zO#{9{O$O!]O$b!`O$d!bO$f!cO'ZkO'^UO[#sXo#sXw#sX}#sX!l#sX!q#sX!t#sX#O#sX#P#sX#p#sX'g#sX'q#sX'r#sX'x#sX'y#sX'z#sX'{#sX'|#sX'}#sX(O#sX(P#sX(Q#sX(R#sX(T#sX~P'IxO#Q$uO~P!.cO}'kXP'SX!S'SX!e'SX!O'SXy'SX!P'SXX'SX!Z'SX#R'SXv'SX~P'GTOo#qX#O#qX#P#qX#p#qX'r#qX'x#qX'y#qX'z#qX'{#qX'|#qX'}#qX(O#qX(P#qX(R#qX(T#qX~P!.cOo#zX#O#zX#P#zX#p#zX'r#zX'x#zX'y#zX'z#zX'{#zX'|#zX'}#zX(O#zX(P#zX(R#zX(T#zX~P!.cOPoOQ!QOSVOTVOZeOd9tOsVOtVOuVO!U#bO!W#cO!X:zO!Z!YO#Y!_O#r9zO#{9{O$O!]O$b!`O$d!bO$f!cO'ZkO'^UO[#sao#saw#sa}#sa!l#sa!q#sa!t#sa#O#sa#P#sa#p#sa'g#sa'q#sa'r#sa'x#sa'y#sa'z#sa'{#sa'|#sa'}#sa(O#sa(P#sa(Q#sa(R#sa(T#sa~P'IxOo:YO#O:YO#P:VOw#sa~P!B}Ow$Ua~P#9vOQ'XXd'XX}iX~OQlXdlX}jX~O^:sO_:sO`:sOa:sO'T:_O~OQ'XXd'XX}hX~Ow#qa~P#9vOw#za~P#9vO!S&_Oo#za#O#za#P#za#p#za'r#za'x#za'y#za'z#za'{#za'|#za'}#za(O#za(P#za(R#za(T#za~P!.cO#Q*eO~P!.cOw#ci~P#9vO[#}O}#zO'x#hO(O#|O(Q#hO(R#fO(T#hOo#eiw#ei!l#ei!q#ei!t#ei#O#ei#P#ei#p#ei'q#ei'r#ei'y#ei'z#ei'{#ei'|#ei'}#ei~O'g#ei(P#ei~P((}O'g#gO(P#gO~P((}O[#}O}#zO'g#gO'x#hO'y#iO'z#iO(O#|O(P#gO(Q#hO(R#fO(T#hOo#eiw#ei!l#ei!t#ei#O#ei#P#ei#p#ei'q#ei'r#ei'{#ei'|#ei'}#ei~O!q#ei~P(*yO!q#jO~P(*yO[#}O}#zO!q#jO'g#gO'x#hO'y#iO'z#iO'{#kO(O#|O(P#gO(Q#hO(R#fO(T#hOo#eiw#ei!l#ei!t#ei#O#ei#P#ei#p#ei'q#ei'|#ei'}#ei~O'r#ei~P(,rO'r#lO~P(,rO[#}O}#zO!q#jO#P:VO'g#gO'r#lO'x#hO'y#iO'z#iO'{#kO(O#|O(P#gO(Q#hO(R#fO(T#hOo#eiw#ei!l#ei!t#ei#O#ei#p#ei'q#ei'|#ei~O'}#ei~P(.kO'}#mO~P(.kOo:YO#O:YO#P:VOw#ni~P$1xOo:YO#O:YO#P:VOw#si~P$3yOQ'XXd'XX}'kX~Ow#zi~P#9vOw$Ui~P#9vOd9}O~Ow#ca~P#9vOd:uO~OU'x_'v'P'O'^s!y'^'T'Z~",goto:"$Ku(vPPPPPPP(wPP)OPP)^PPPP)d-hP0f5aP7R7R8v7R>wD_DpPDvHQPPPPPPK`P! P! _PPPPP!!VP!$oP!$oPP!&oP!(rP!(w!)n!*f!*f!*f!(w!+]P!(w!.Q!.TPP!.ZP!(w!(w!(w!(wP!(w!(wP!(w!(w!.y!/dP!/dJ}J}J}PPPP!/d!.y!/sPP!$oP!0^!0a!0g!1h!1t!3t!3t!5r!7t!1t!1t!9p!;_!=O!>k!@U!Am!CS!De!1t!1tP!1tP!1t!1t!Et!1tP!Ge!1t!1tP!Ie!1tP!1t!7t!7t!1t!7t!1t!Kl!Mt!Mw!7t!1t!Mz!M}!M}!M}!NR!$oP!$oP!$oP! P! PP!N]! P! PP!Ni# }! PP! PP#!^##c##k#$Z#$_#$e#$e#$mP#&s#&s#&y#'o#'{! PP! PP#(]#(l! PP! PPP#(x#)W#)d#)|#)^! P! PP! P! P! PP#*S#*S#*Y#*`#*S#*S! P! PP#*m#*v#+Q#+Q#,x#.l#.x#.x#.{#.{5a5a5a5a5a5a5a5aP5a#/O#/U#/p#1{#2R#2b#6^#6d#6j#6|#7W#8w#9R#9b#9h#9n#9x#:S#:Y#:g#:m#:s#:}#;]#;g#=u#>R#>`#>f#>n#>u#?PPPPPPPP#?V#BaP#F^#Jx#Ls#Nr$&^P$&aPPP$)_$)h$)z$/U$1d$1m$3fP!(w$4`$7r$:i$>T$>^$>c$>fPPP$>i$A`$A|P$BaPPPPPPPPPP$BvP$EU$EX$E[$Eb$Ee$Eh$Ek$En$Et$HO$HR$HU$HX$H[$H_$Hb$He$Hh$Hk$Hn$Jt$Jw$Jz#*S$KW$K^$Ka$Kd$Kh$Kl$Ko$KrQ!tPT'V!s'Wi!SOlm!P!T$T$W$y%b)U*f/gQ'i#QR,n'l(OSOY[bfgilmop!O!P!T!Y!Z![!_!`!c!p!q!|!}#Q#U#Z#e#o#p#q#r#s#t#u#v#w#x#y#z#}$T$W$`$a$e$g$h$q$r$y%X%_%b&U&Y&[&b&u&z&|'P'a'l'n'o'}(W(Y(b(d(e(f(j(o(p(r(|)S)U)i*Z*f*i*k*l+Z+n+z,q,s,z-R-T-g-m-t.}/^/b/d/g0e0g0m0}1P1h1r1|3_3a3f3h3k4W4c4h4v4|5[5g5t6]6a7S7^7g7m7{8W8X8k8|9U9h9s9t9u9v9w9x9z9{9|9}:O:P:Q:R:S:T:U:V:W:X:Y:Z:e:f:gS(z$v-oQ*p&eQ*t&hQ-k(yQ-y)ZW0Z+Q0Y4Z7UR4Y0[&w!RObfgilmop!O!P!T!Y!Z![!_!`!c!p#Q#e#o#p#q#r#s#t#u#v#w#x#y#z#}$T$W$e$g$h$q$r$y%_%b&U&Y&[&b&u'l'}(W(Y(b(f(j(o(p(r(|)S)U)i*Z*f*i*k*l+Z+n,s,z-T-g-m-t.}/^/b/d/g0e0g0m0}1h1r1|3_3a3f3h3k4W4c4h4v4|5[5g5t6]6a7S7^7g7m7{8W8X8k8|9U9h9u9v9w9x9z9{:O:P:Q:R:S:T:U:V:W:X:Y:Z:e:f#r]Ofgilmp!O!P!T!Z![#e#o#p#q#r#s#t#u#v#w#x#y#z#}$T$W%_%b&Y&['}(W(Y(|)i+n,s,z-m.}0}1h1|3_3a3k4W4v4|5g5t6]7S7g7{8W8X8k8|9U9hb#[b#Q$y'l(b)S)U*Z-t!h$bo!c!p$e$g$h$q$r&U&b&u(f(j(o(p(r*f*k+Z-T-g/b/d/g0e0g0m1r3f4c4h5[6a7^7m$b%k!Q!n$O$u%o%p%q%y%{&P&o&p&r'](q)s)x)y*O*P*R*V*[*^*e*n*w*x+U+V+h+o+}-i-v.U.`.p.t.x.y/Z/[/{/}0`0r0w1O1Y1Z1y2a2h2j2m2s2v3V3u3{3|4R4U4_4e4t5`5d5v6R6Y6p6v6x7c7r8g!W:y!Y!_!`*i*l/^3h9u9v9w9x9z9{:O:P:Q:R:S:T:U:V:W:X:Y:Z:e:fR:|%n$_%u!Q!n$O$u%o%p%q&P&o&p&r'](q)s)x)y*O*P*R*V*[*^*e*n*w*x+U+V+h+o+}-i-v.U.`.p.t.x.y/Z/[/{/}0`0r0w1O1Y1Z1y2a2h2j2m2s2v3V3u3{3|4R4U4_4e4t5`5d5v6R6Y6p6v6x7c7r8g$e%l!Q!n$O$u%n%o%p%q%y%{&P&o&p&r'](q)s)x)y*O*P*R*V*[*^*e*n*w*x+U+V+h+o+}-i-v.U.`.p.t.x.y/Z/[/{/}0`0r0w1O1Y1Z1y2a2h2j2m2s2v3V3u3{3|4R4U4_4e4t5`5d5v6R6Y6p6v6x7c7r8g'hZOY[fgilmop!O!P!T!Y!Z![!_!`!c!p!|!}#e#o#p#q#r#s#t#u#v#w#x#y#z#}$T$W$`$a$e$g$h$q$r%_%b%i%j&U&Y&[&b&u'a'}(W(Y(d(e(f(j(o(p(r(|)i)p)q*f*i*k*l+Z+n,s,z-R-T-g-m.i.}/^/b/d/g0e0g0m0}1h1r1|3_3a3f3h3k4W4c4h4v4|5[5g5t6]6a7S7^7g7m7{8W8X8k8|9U9h9s9t9u9v9w9x9z9{9|9}:O:P:Q:R:S:T:U:V:W:X:Y:Z:`:a:e:f:g:t:u:x$^%l!Q!n$O$u%n%o%p%q%y%{&P&p&r(q)s)x)y*O*P*R*V*[*^*e*n*w*x+U+V+h+o+}-i-v.U.`.p.t.x.y/Z/[/{/}0`0r0w1O1Y1y2a2h2j2m2s2v3V3u3{3|4R4U4_4e4t5`5d5v6R6Y6p6v6x7c7r8gQ&j!hQ&k!iQ&l!jQ&m!kQ&s!oQ)[%QQ)]%RQ)^%SQ)_%TQ)b%WQ+`&oS,R']1ZQ.W)`S/r*u4TR4n0s+yTOY[bfgilmop!O!P!Q!T!Y!Z![!_!`!c!n!p!q!|!}#Q#U#Z#e#o#p#q#r#s#t#u#v#w#x#y#z#}$O$T$W$`$a$e$g$h$q$r$u$y%X%_%b%i%j%n%o%p%q%y%{&P&U&Y&[&b&o&p&r&u&z&|'P']'a'l'n'o'}(W(Y(b(d(e(f(j(o(p(q(r(|)S)U)i)p)q)s)x)y*O*P*R*V*Z*[*^*e*f*i*k*l*n*w*x+U+V+Z+h+n+o+z+},q,s,z-R-T-g-i-m-t-v.U.`.i.p.t.x.y.}/Z/[/^/b/d/g/{/}0`0e0g0m0r0w0}1O1P1Y1Z1h1r1y1|2a2h2j2m2s2v3V3_3a3f3h3k3u3{3|4R4U4W4_4c4e4h4t4v4|5[5`5d5g5t5v6R6Y6]6a6p6v6x7S7^7c7g7m7r7{8W8X8g8k8|9U9h9s9t9u9v9w9x9z9{9|9}:O:P:Q:R:S:T:U:V:W:X:Y:Z:`:a:e:f:g:t:u:xQ'[!xQ'h#PQ)l%gU)r%m*T*WR.f)kQ,T']R5P1Z#t%s!Q!n$O$u%p%q&P&p&r(q)x)y*O*R*V*[*^*e*n*w+V+h+o+}-i-v.U.`.t.x.y/Z/[/{/}0`0r0w1O1Y1y2a2h2j2m2v3V3u3{3|4U4e4t5`5d5v6R6Y6p6v6x7c7r8gQ)x%oQ+_&oQ,U']n,^'b'c'd,c,f,h,l/m/n1_3n3q5T5U7kS.q)s2sQ/O*PQ/Q*SQ/q*uS0Q*x4RQ0a+U[0o+Z.j0g4h5y7^Q2v.pS4d0e2rQ4m0sQ5Q1ZQ6T3RQ6z4PQ7O4TQ7X4_R9Y8h&jVOfgilmop!O!P!T!Y!Z![!_!`!c!p#e#o#p#q#r#s#t#u#v#w#x#y#z#}$T$W$e$g$h$q$r%_%b&U&Y&[&b&u']'}(W(Y(b(f(j(o(p(r(|)i*f*i*k*l+Z+n,s,z-T-g-m.}/^/b/d/g0e0g0m0}1Z1h1r1|3_3a3f3h3k4W4c4h4v4|5[5g5t6]6a7S7^7g7m7{8W8X8k8|9U9h9u9v9w9x9z9{:O:P:Q:R:S:T:U:V:W:X:Y:Z:e:fU&g!g%P%[o,^'b'c'd,c,f,h,l/m/n1_3n3q5T5U7k$nsOfgilm!O!P!T!Y!Z![!_!`#e#o#p#q#r#s#t#u#v#w#x#y#z#}$T$W%_%b&Y'}(W(Y(|)i*i*l+n,s,z-m.}/^0}1h1|3_3a3h3k4W4v4|5g5t6]7S7g7{8W8X8k8|9U9h9u9v9z9{:O:P:Q:R:S:T:U:V:W:X:Y:eS$tp9xS&O!W#bS&Q!X#cQ&`!bQ*_&RQ*a&VS*d&[:fQ*h&^Q,T']Q-j(wQ/i*jQ0p+[S2f.X0qQ3]/_Q3^/`Q3g/hQ3i/kQ5P1ZU5b2R2g4lU7o5c5e5rQ8]6dS8u7p7qS9_8v8wR9i9`i{Ob!O!P!T$y%_%b)S)U)i-thxOb!O!P!T$y%_%b)S)U)i-tW/v*v/t3w6qQ/}*wW0[+Q0Y4Z7UQ3{/{Q6x3|R8g6v!h$do!c!p$e$g$h$q$r&U&b&u(f(j(o(p(r*f*k+Z-T-g/b/d/g0e0g0m1r3f4c4h5[6a7^7mQ&d!dQ&f!fQ&n!mW&x!q%X&|1PQ'S!rQ)X$}Q)Y%OQ)a%VU)d%Y'T'UQ*s&hS+s&z'PS-Y(k1sQ-u)WQ-x)ZS.a)e)fS0x+c/sQ1S+zQ1W+{S1v-_-`Q2k.bQ3s/pQ5]1xR5h2V${sOfgilmp!O!P!T!Y!Z![!_!`#e#o#p#q#r#s#t#u#v#w#x#y#z#}$T$W%_%b&Y&['}(W(Y(|)i*i*l+n,s,z-m.}/^0}1h1|3_3a3h3k4W4v4|5g5t6]7S7g7{8W8X8k8|9U9h9u9v9w9x9z9{:O:P:Q:R:S:T:U:V:W:X:Y:Z:e:f$zsOfgilmp!O!P!T!Y!Z![!_!`#e#o#p#q#r#s#t#u#v#w#x#y#z#}$T$W%_%b&Y&['}(W(Y(|)i*i*l+n,s,z-m.}/^0}1h1|3_3a3h3k4W4v4|5g5t6]7S7g7{8W8X8k8|9U9h9u9v9w9x9z9{:O:P:Q:R:S:T:U:V:W:X:Y:Z:e:fR3]/_V&T!Y!`*i!i$lo!c!p$e$g$h$q$r&U&b&u(f(j(o(p(r*f*k+Z-T-g/b/d/g0e0g0m1r3f4c4h5[6a7^7m!k$^o!c!p$e$g$h$q$r&U&b&u(b(f(j(o(p(r*f*k+Z-T-g/b/d/g0e0g0m1r3f4c4h5[6a7^7m!i$co!c!p$e$g$h$q$r&U&b&u(f(j(o(p(r*f*k+Z-T-g/b/d/g0e0g0m1r3f4c4h5[6a7^7m&e^Ofgilmop!O!P!T!Y!Z![!_!`!c!p#e#o#p#q#r#s#t#u#v#w#x#y#z#}$T$W$e$g$h$q$r%_%b&U&Y&[&b&u'}(W(Y(f(j(o(p(r(|)i*f*i*k*l+Z+n,s,z-T-g-m.}/^/b/d/g0e0g0m0}1h1r1|3_3a3f3h3k4W4c4h4v4|5[5g5t6]6a7S7^7g7m7{8W8X8k8|9U9h9u9v9w9x9z9{:O:P:Q:R:S:T:U:V:W:X:Y:Z:e:fR(l$fQ-[(kR5Y1sQ(S#|S({$v-oS-Z(k1sQ-l(yW/u*v/t3w6qS1w-_-`Q3v/vR5^1xQ'e#Or,e'b'c'd'j'p)u,c,f,h,l/m/n1_3n3q5U6fR,o'mk,a'b'c'd,c,f,h,l/m/n1_3n3q5UQ'f#Or,e'b'c'd'j'p)u,c,f,h,l/m/n1_3n3q5U6fR,p'mR*g&]X/c*f/d/g3f!}aOb!O!P!T#z$v$y%_%b'}(y)S)U)i)s*f*v*w+Q+Z,s-o-t.j/b/d/g/t/{0Y0g1h2s3f3w3|4Z4h5y6a6q6v7U7^Q3`/aQ6_3bQ8Y6`R9V8Z${rOfgilmp!O!P!T!Y!Z![!_!`#e#o#p#q#r#s#t#u#v#w#x#y#z#}$T$W%_%b&Y&['}(W(Y(|)i*i*l+n,s,z-m.}/^0}1h1|3_3a3h3k4W4v4|5g5t6]7S7g7{8W8X8k8|9U9h9u9v9w9x9z9{:O:P:Q:R:S:T:U:V:W:X:Y:Z:e:f#nfOfglmp!O!P!T!Z![#e#o#p#q#r#s#t#u#v#w#x#z#}$T$W%_%b&Y&['}(W(Y(|)i+n,s,z-m.}0}1h1|3_3a3k4W4v4|5g5t6]7S7g7{8W8X8k8|9U9h!T9u!Y!_!`*i*l/^3h9u9v9x9z9{:O:P:Q:R:S:T:U:V:W:X:Y:e:f#rfOfgilmp!O!P!T!Z![#e#o#p#q#r#s#t#u#v#w#x#y#z#}$T$W%_%b&Y&['}(W(Y(|)i+n,s,z-m.}0}1h1|3_3a3k4W4v4|5g5t6]7S7g7{8W8X8k8|9U9h!X9u!Y!_!`*i*l/^3h9u9v9w9x9z9{:O:P:Q:R:S:T:U:V:W:X:Y:Z:e:f$srOfglmp!O!P!T!Y!Z![!_!`#e#o#p#q#r#s#t#u#v#w#x#z#}$T$W%_%b&Y&['}(W(Y(|)i*i*l+n,s,z-m.}/^0}1h1|3_3a3h3k4W4v4|5g5t6]7S7g7{8W8X8k8|9U9h9u9v9x9z9{:O:P:Q:R:S:T:U:V:W:X:Y:e:f#U#oh#d$P$Q$V$s%^&W&X'q't'u'v'w'x'y'z'{'|(O(U([(`*b*c,r,w,y-n0z1i1l1}3P4w5V5a6^6e7R7e7h7s7y8j8q8{9[9b}:P&S&]/k3[6d:[:]:c:d:h:j:k:l:m:n:o:p:q:r:v:w:{#W#ph#d$P$Q$V$s%^&W&X'q'r't'u'v'w'x'y'z'{'|(O(U([(`*b*c,r,w,y-n0z1i1l1}3P4w5V5a6^6e7R7e7h7s7y8j8q8{9[9b!P:Q&S&]/k3[6d:[:]:c:d:h:i:j:k:l:m:n:o:p:q:r:v:w:{#S#qh#d$P$Q$V$s%^&W&X'q'u'v'w'x'y'z'{'|(O(U([(`*b*c,r,w,y-n0z1i1l1}3P4w5V5a6^6e7R7e7h7s7y8j8q8{9[9b{:R&S&]/k3[6d:[:]:c:d:h:k:l:m:n:o:p:q:r:v:w:{#Q#rh#d$P$Q$V$s%^&W&X'q'v'w'x'y'z'{'|(O(U([(`*b*c,r,w,y-n0z1i1l1}3P4w5V5a6^6e7R7e7h7s7y8j8q8{9[9by:S&S&]/k3[6d:[:]:c:d:h:l:m:n:o:p:q:r:v:w:{#O#sh#d$P$Q$V$s%^&W&X'q'w'x'y'z'{'|(O(U([(`*b*c,r,w,y-n0z1i1l1}3P4w5V5a6^6e7R7e7h7s7y8j8q8{9[9bw:T&S&]/k3[6d:[:]:c:d:h:m:n:o:p:q:r:v:w:{!|#th#d$P$Q$V$s%^&W&X'q'x'y'z'{'|(O(U([(`*b*c,r,w,y-n0z1i1l1}3P4w5V5a6^6e7R7e7h7s7y8j8q8{9[9bu:U&S&]/k3[6d:[:]:c:d:h:n:o:p:q:r:v:w:{!x#vh#d$P$Q$V$s%^&W&X'q'z'{'|(O(U([(`*b*c,r,w,y-n0z1i1l1}3P4w5V5a6^6e7R7e7h7s7y8j8q8{9[9bq:W&S&]/k3[6d:[:]:c:d:h:p:q:r:v:w:{!v#wh#d$P$Q$V$s%^&W&X'q'{'|(O(U([(`*b*c,r,w,y-n0z1i1l1}3P4w5V5a6^6e7R7e7h7s7y8j8q8{9[9bo:X&S&]/k3[6d:[:]:c:d:h:q:r:v:w:{$]#{h#`#d$P$Q$V$s%^&S&W&X&]'q'r's't'u'v'w'x'y'z'{'|(O(U([(`*b*c,r,w,y-n/k0z1i1l1}3P3[4w5V5a6^6d6e7R7e7h7s7y8j8q8{9[9b:[:]:c:d:h:i:j:k:l:m:n:o:p:q:r:v:w:{${jOfgilmp!O!P!T!Y!Z![!_!`#e#o#p#q#r#s#t#u#v#w#x#y#z#}$T$W%_%b&Y&['}(W(Y(|)i*i*l+n,s,z-m.}/^0}1h1|3_3a3h3k4W4v4|5g5t6]7S7g7{8W8X8k8|9U9h9u9v9w9x9z9{:O:P:Q:R:S:T:U:V:W:X:Y:Z:e:f$v!aOfgilmp!O!P!T!Y!Z!_!`#e#o#p#q#r#s#t#u#v#w#x#y#z#}$T$W%_%b&Y&['}(W(Y(|)i*i*l+n,s,z-m.}/^0}1h1|3_3a3h3k4W4v4|5g5t6]7S7g7{8W8X8k8|9U9h9u9v9w9x9z:O:P:Q:R:S:T:U:V:W:X:Y:Z:e:fQ&Y![Q&Z!]R:e9{#rpOfgilmp!O!P!T!Z![#e#o#p#q#r#s#t#u#v#w#x#y#z#}$T$W%_%b&Y&['}(W(Y(|)i+n,s,z-m.}0}1h1|3_3a3k4W4v4|5g5t6]7S7g7{8W8X8k8|9U9hQ&[!^!W9x!Y!_!`*i*l/^3h9u9v9w9x9z9{:O:P:Q:R:S:T:U:V:W:X:Y:Z:e:fR:f:zR$moR-f(rR$wqT(}$v-oQ/f*fS3d/d/gR6c3fQ3m/mQ3p/nQ6i3nR6l3qQ$zwQ)V${Q*q&fQ+f&qQ+i&sQ-w)YW.Z)b+j+k+lS/X*]+gW2b.W.[.].^U3W/Y/]0yU5o2c2d2eS6W3X3ZS7w5p5qS8Q6V6XQ8y7xS8}8R8SR9c9O^|O!O!P!T%_%b)iX)R$y)S)U-tQ&r!nQ*^&PQ*|&jQ+P&kQ+T&lQ+W&mQ+]&nQ+l&sQ-})[Q.Q)]Q.T)^Q.V)_Q.Y)aQ.^)bQ2S-uQ2e.WR4U0VU+a&o*u4TR4o0sQ+Y&mQ+k&sS.])b+l^0v+_+`/q/r4m4n7OS2d.W.^S4Q0R0SR5q2eS0R*x4RQ0a+UR7X4_U+d&o*u4TR4p0sQ*z&jQ+O&kQ+S&lQ+g&qQ+j&sS-{)[*|S.P)]+PS.S)^+TU.[)b+k+lQ/Y*]Q0X*{Q0q+[Q2X-|Q2Y-}Q2].QQ2_.TU2c.W.].^Q2g.XS3Z/]0yS5c2R4lQ5j2ZS5p2d2eQ6X3XS7q5e5rQ7x5qQ8R6VQ8v7pQ9O8SR9`8wQ0T*xR6|4RQ*y&jQ*}&kU-z)[*z*|U.O)]+O+PS2W-{-}S2[.P.QQ4X0ZQ5i2YQ5k2]R7T4YQ/w*vQ3t/tQ6r3wR8d6qQ*{&jS-|)[*|Q2Z-}Q4X0ZR7T4YQ+R&lU.R)^+S+TS2^.S.TR5l2_Q0]+QQ4V0YQ7V4ZR8l7UQ+[&nS.X)a+]S2R-u.YR5e2SQ0i+ZQ4f0gQ7`4hR8m7^Q.m)sQ0i+ZQ2p.jQ4f0gQ5|2sQ7`4hQ7}5yR8m7^Q0i+ZR4f0gX'O!q%X&|1PX&{!q%X&|1PW'O!q%X&|1PS+u&z'PR1U+z_|O!O!P!T%_%b)iQ%a!PS)h%_%bR.d)i$^%u!Q!n$O$u%o%p%q&P&o&p&r'](q)s)x)y*O*P*R*V*[*^*e*n*w*x+U+V+h+o+}-i-v.U.`.p.t.x.y/Z/[/{/}0`0r0w1O1Y1Z1y2a2h2j2m2s2v3V3u3{3|4R4U4_4e4t5`5d5v6R6Y6p6v6x7c7r8gQ*U%yR*X%{$c%n!Q!n$O$u%o%p%q%y%{&P&o&p&r'](q)s)x)y*O*P*R*V*[*^*e*n*w*x+U+V+h+o+}-i-v.U.`.p.t.x.y/Z/[/{/}0`0r0w1O1Y1Z1y2a2h2j2m2s2v3V3u3{3|4R4U4_4e4t5`5d5v6R6Y6p6v6x7c7r8gW)t%m%x*T*WQ.e)jR2{.vR.m)sR5|2sQ'W!sR,O'WQ!TOQ$TlQ$WmQ%b!P[%|!T$T$W%b)U/gQ)U$yR/g*f$b%i!Q!n$O$u%o%p%q%y%{&P&o&p&r'](q)s)x)y*O*P*R*V*[*^*e*n*w*x+U+V+h+o+}-i-v.U.`.p.t.x.y/Z/[/{/}0`0r0w1O1Y1Z1y2a2h2j2m2s2v3V3u3{3|4R4U4_4e4t5`5d5v6R6Y6p6v6x7c7r8g[)n%i)p.i:`:t:xQ)p%jQ.i)qQ:`%nQ:t:aR:x:uQ!vUR'Y!vS!OO!TU%]!O%_)iQ%_!PR)i%b#rYOfgilmp!O!P!T!Z![#e#o#p#q#r#s#t#u#v#w#x#y#z#}$T$W%_%b&Y&['}(W(Y(|)i+n,s,z-m.}0}1h1|3_3a3k4W4v4|5g5t6]7S7g7{8W8X8k8|9U9hh!yY!|#U$`'a'n(d,q-R9s9|:gQ!|[b#Ub#Q$y'l(b)S)U*Z-t!h$`o!c!p$e$g$h$q$r&U&b&u(f(j(o(p(r*f*k+Z-T-g/b/d/g0e0g0m1r3f4c4h5[6a7^7mQ'a!}Q'n#ZQ(d$aQ,q'oQ-R(e!W9s!Y!_!`*i*l/^3h9u9v9w9x9z9{:O:P:Q:R:S:T:U:V:W:X:Y:Z:e:fQ9|9tR:g9}Q-U(gR1p-UQ1t-[R5Z1tQ,c'bQ,f'cQ,h'dW1`,c,f,h5UR5U1_Q/d*fS3c/d3fR3f/gfbO!O!P!T$y%_%b)S)U)i-tp#Wb'}(y.j/b/t/{0Y0g1h5y6a6q6v7U7^Q'}#zS(y$v-oQ.j)sW/b*f/d/g3fQ/t*vQ/{*wQ0Y+QQ0g+ZQ1h,sQ5y2sQ6q3wQ6v3|Q7U4ZR7^4hQ,t(OQ1g,rT1j,t1gS(X$Q([Q(^$VU,x(X(^,}R,}(`Q(s$mR-h(sQ-p)OR2P-pQ3n/mQ3q/nT6j3n3qQ)S$yS-r)S-tR-t)UQ4`0aR7Y4``0t+^+_+`+a+d/q/r7OR4q0tQ8i6zR9Z8iQ4S0TR6}4SQ3x/wQ6n3tT6s3x6nQ3}/|Q6t3zU6y3}6t8eR8e6uQ4[0]Q7Q4VT7W4[7QhzOb!O!P!T$y%_%b)S)U)i-tQ$|xW%Zz$|%f)v$b%f!Q!n$O$u%o%p%q%y%{&P&o&p&r'](q)s)x)y*O*P*R*V*[*^*e*n*w*x+U+V+h+o+}-i-v.U.`.p.t.x.y/Z/[/{/}0`0r0w1O1Y1Z1y2a2h2j2m2s2v3V3u3{3|4R4U4_4e4t5`5d5v6R6Y6p6v6x7c7r8gR)v%nS4i0i0nS7]4f4gT7b4i7]W&z!q%X&|1PS+r&z+zR+z'PQ1Q+wR4z1QU1[,S,T,UR5R1[S3S/Q7OR6U3SQ2t.mQ5x2pT5}2t5xQ.z)zR3O.z^_O!O!P!T%_%b)iY#Xb$y)S)U-t$l#_fgilmp!Y!Z![!_!`#e#o#p#q#r#s#t#u#v#w#x#y#z#}$T$W&Y&['}(W(Y(|*i*l+n,s,z-m.}/^0}1h1|3_3a3h3k4W4v4|5g5t6]7S7g7{8W8X8k8|9U9h9u9v9w9x9z9{:O:P:Q:R:S:T:U:V:W:X:Y:Z:e:f!h$io!c!p$e$g$h$q$r&U&b&u(f(j(o(p(r*f*k+Z-T-g/b/d/g0e0g0m1r3f4c4h5[6a7^7mS'j#Q'lQ-P(bR/V*Z&v!RObfgilmop!O!P!T!Y!Z![!_!`!c!p#Q#e#o#p#q#r#s#t#u#v#w#x#y#z#}$T$W$e$g$h$q$r$y%_%b&U&Y&[&b&u'l'}(W(Y(b(f(j(o(p(r(|)S)U)i*Z*f*i*k*l+Z+n,s,z-T-g-m-t.}/^/b/d/g0e0g0m0}1h1r1|3_3a3f3h3k4W4c4h4v4|5[5g5t6]6a7S7^7g7m7{8W8X8k8|9U9h9u9v9w9x9z9{:O:P:Q:R:S:T:U:V:W:X:Y:Z:e:f[!{Y[#U#Z9s9tW&{!q%X&|1P['`!|!}'n'o9|9}S(c$`$aS+t&z'PU,X'a,q:gS-Q(d(eQ1T+zR1n-RS%t!Q&oQ&q!nQ(V$OQ(w$uS)w%o.pQ)z%pQ)}%qS*]&P&rQ+e&pQ,S']Q-d(qQ.l)sU.w)x)y2vS/O*O*PQ/P*RQ/T*VQ/W*[Q/]*^Q/`*eQ/l*nQ/|*wS0S*x4RQ0a+UQ0c+VQ0y+hQ0{+oQ1X+}Q1{-iQ2T-vQ2`.UQ2i.`Q2z.tQ2|.xQ2}.yQ3X/ZQ3Y/[S3z/{/}Q4^0`Q4l0rQ4s0wQ4x1OQ4}1YQ5O1ZQ5_1yQ5n2aQ5r2hQ5u2jQ5w2mQ5{2sQ6V3VQ6o3uQ6u3{Q6w3|Q7P4UQ7X4_Q7[4eQ7d4tQ7n5`Q7p5dQ7|5vQ8P6RQ8S6YQ8c6pS8f6v6xQ8o7cQ8w7rR9X8g$^%m!Q!n$O$u%o%p%q&P&o&p&r'](q)s)x)y*O*P*R*V*[*^*e*n*w*x+U+V+h+o+}-i-v.U.`.p.t.x.y/Z/[/{/}0`0r0w1O1Y1Z1y2a2h2j2m2s2v3V3u3{3|4R4U4_4e4t5`5d5v6R6Y6p6v6x7c7r8gQ)j%nQ*T%yR*W%{$y%h!Q!n$O$u%i%j%n%o%p%q%y%{&P&o&p&r'](q)p)q)s)x)y*O*P*R*V*[*^*e*n*w*x+U+V+h+o+}-i-v.U.`.i.p.t.x.y/Z/[/{/}0`0r0w1O1Y1Z1y2a2h2j2m2s2v3V3u3{3|4R4U4_4e4t5`5d5v6R6Y6p6v6x7c7r8g:`:a:t:u:x'pWOY[bfgilmop!O!P!T!Y!Z![!_!`!c!p!|!}#Q#U#Z#e#o#p#q#r#s#t#u#v#w#x#y#z#}$T$W$`$a$e$g$h$q$r$y%_%b&U&Y&[&b&u'a'l'n'o'}(W(Y(b(d(e(f(j(o(p(r(|)S)U)i*Z*f*i*k*l+Z+n,q,s,z-R-T-g-m-t.}/^/b/d/g0e0g0m0}1h1r1|3_3a3f3h3k4W4c4h4v4|5[5g5t6]6a7S7^7g7m7{8W8X8k8|9U9h9s9t9u9v9w9x9z9{9|9}:O:P:Q:R:S:T:U:V:W:X:Y:Z:e:f:g$x%g!Q!n$O$u%i%j%n%o%p%q%y%{&P&o&p&r'](q)p)q)s)x)y*O*P*R*V*[*^*e*n*w*x+U+V+h+o+}-i-v.U.`.i.p.t.x.y/Z/[/{/}0`0r0w1O1Y1Z1y2a2h2j2m2s2v3V3u3{3|4R4U4_4e4t5`5d5v6R6Y6p6v6x7c7r8g:`:a:t:u:x_&y!q%X&z&|'P+z1PR,V']$zrOfgilmp!O!P!T!Y!Z![!_!`#e#o#p#q#r#s#t#u#v#w#x#y#z#}$T$W%_%b&Y&['}(W(Y(|)i*i*l+n,s,z-m.}/^0}1h1|3_3a3h3k4W4v4|5g5t6]7S7g7{8W8X8k8|9U9h9u9v9w9x9z9{:O:P:Q:R:S:T:U:V:W:X:Y:Z:e:f!j$]o!c!p$e$g$h$q$r&U&b&u(b(f(j(o(p(r*f*k+Z-T-g/b/d/g0e0g0m1r3f4c4h5[6a7^7mQ,T']R5P1Z_}O!O!P!T%_%b)i^|O!O!P!T%_%b)iQ#YbX)R$y)S)U-tbhO!O!T3_6]8W8X9U9hS#`f9uQ#dgQ$PiQ$QlQ$VmQ$spW%^!P%_%b)iU&S!Y!`*iQ&W!ZQ&X![Q&]!_Q'q#eQ'r#oS's#p:QQ't#qQ'u#rQ'v#sQ'w#tQ'x#uQ'y#vQ'z#wQ'{#xQ'|#yQ(O#zQ(U#}Q([$TQ(`$WQ*b&YQ*c&[Q,r'}Q,w(WQ,y(YQ-n(|Q/k*lQ0z+nQ1i,sQ1l,zQ1}-mQ3P.}Q3[/^Q4w0}Q5V1hQ5a1|Q6^3aQ6d3hQ6e3kQ7R4WQ7e4vQ7h4|Q7s5gQ7y5tQ8j7SQ8q7gQ8{7{Q9[8kQ9b8|Q:[9wQ:]9xQ:c9zQ:d9{Q:h:OQ:i:PQ:j:RQ:k:SQ:l:TQ:m:UQ:n:VQ:o:WQ:p:XQ:q:YQ:r:ZQ:v:eQ:w:fR:{9v^tO!O!P!T%_%b)i$`#afgilmp!Y!Z![!_!`#e#o#p#q#r#s#t#u#v#w#x#y#z#}$T$W&Y&['}(W(Y(|*i*l+n,s,z-m.}/^0}1h1|3a3h3k4W4v4|5g5t7S7g7{8k8|9u9v9w9x9z9{:O:P:Q:R:S:T:U:V:W:X:Y:Z:e:fQ6[3_Q8V6]Q9R8WQ9T8XQ9g9UR9m9hQ&V!YQ&^!`R/h*iQ$joQ&a!cQ&t!pU(g$e$g(jS(n$h0eQ(u$qQ(v$rQ*`&UQ*m&bQ+p&uQ-S(fS-b(o4cQ-c(pQ-e(rW/a*f/d/g3fQ/j*kW0f+Z0g4h7^Q1o-TQ1z-gQ3b/bQ4k0mQ5X1rQ7l5[Q8Z6aR8t7m!h$_o!c!p$e$g$h$q$r&U&b&u(f(j(o(p(r*f*k+Z-T-g/b/d/g0e0g0m1r3f4c4h5[6a7^7mR-P(b'qXOY[bfgilmop!O!P!T!Y!Z![!_!`!c!p!|!}#Q#U#Z#e#o#p#q#r#s#t#u#v#w#x#y#z#}$T$W$`$a$e$g$h$q$r$y%_%b&U&Y&[&b&u'a'l'n'o'}(W(Y(b(d(e(f(j(o(p(r(|)S)U)i*Z*f*i*k*l+Z+n,q,s,z-R-T-g-m-t.}/^/b/d/g0e0g0m0}1h1r1|3_3a3f3h3k4W4c4h4v4|5[5g5t6]6a7S7^7g7m7{8W8X8k8|9U9h9s9t9u9v9w9x9z9{9|9}:O:P:Q:R:S:T:U:V:W:X:Y:Z:e:f:g$zqOfgilmp!O!P!T!Y!Z![!_!`#e#o#p#q#r#s#t#u#v#w#x#y#z#}$T$W%_%b&Y&['}(W(Y(|)i*i*l+n,s,z-m.}/^0}1h1|3_3a3h3k4W4v4|5g5t6]7S7g7{8W8X8k8|9U9h9u9v9w9x9z9{:O:P:Q:R:S:T:U:V:W:X:Y:Z:e:f!i$fo!c!p$e$g$h$q$r&U&b&u(f(j(o(p(r*f*k+Z-T-g/b/d/g0e0g0m1r3f4c4h5[6a7^7m&d^Ofgilmop!O!P!T!Y!Z![!_!`!c!p#e#o#p#q#r#s#t#u#v#w#x#y#z#}$T$W$e$g$h$q$r%_%b&U&Y&[&b&u'}(W(Y(f(j(o(p(r(|)i*f*i*k*l+Z+n,s,z-T-g-m.}/^/b/d/g0e0g0m0}1h1r1|3_3a3f3h3k4W4c4h4v4|5[5g5t6]6a7S7^7g7m7{8W8X8k8|9U9h9u9v9w9x9z9{:O:P:Q:R:S:T:U:V:W:X:Y:Z:e:f[!zY[$`$a9s9t['_!|!}(d(e9|9}W)o%i%j:`:aU,W'a-R:gW.h)p)q:t:uT2o.i:xQ(i$eQ(m$gR-W(jV(h$e$g(jR-^(kR-](k$znOfgilmp!O!P!T!Y!Z![!_!`#e#o#p#q#r#s#t#u#v#w#x#y#z#}$T$W%_%b&Y&['}(W(Y(|)i*i*l+n,s,z-m.}/^0}1h1|3_3a3h3k4W4v4|5g5t6]7S7g7{8W8X8k8|9U9h9u9v9w9x9z9{:O:P:Q:R:S:T:U:V:W:X:Y:Z:e:f!i$ko!c!p$e$g$h$q$r&U&b&u(f(j(o(p(r*f*k+Z-T-g/b/d/g0e0g0m1r3f4c4h5[6a7^7mS'g#O'pj,a'b'c'd,c,f,h,l/m/n1_3n3q5UQ,m'jQ.u)uR8_6f`,b'b'c'd,c,f,h1_5UQ1e,lX3l/m/n3n3qj,a'b'c'd,c,f,h,l/m/n1_3n3q5UQ7j5TR8s7k^uO!O!P!T%_%b)i$`#afgilmp!Y!Z![!_!`#e#o#p#q#r#s#t#u#v#w#x#y#z#}$T$W&Y&['}(W(Y(|*i*l+n,s,z-m.}/^0}1h1|3a3h3k4W4v4|5g5t7S7g7{8k8|9u9v9w9x9z9{:O:P:Q:R:S:T:U:V:W:X:Y:Z:e:fQ6Z3_Q8U6]Q9Q8WQ9S8XQ9f9UR9l9hR(Q#zR(P#zQ$SlR(]$TR$ooR$noR)Q$vR)P$vQ)O$vR2O-ohwOb!O!P!T$y%_%b)S)U)i-t$l!lz!Q!n$O$u$|%f%n%o%p%q%y%{&P&o&p&r'](q)s)v)x)y*O*P*R*V*[*^*e*n*w*x+U+V+h+o+}-i-v.U.`.p.t.x.y/Z/[/{/}0`0r0w1O1Y1Z1y2a2h2j2m2s2v3V3u3{3|4R4U4_4e4t5`5d5v6R6Y6p6v6x7c7r8gR${xR0b+UR0W*xR0U*xR6{4PR/y*vR/x*vR0P*wR0O*wR0_+QR0^+Q%XyObxz!O!P!Q!T!n$O$u$y$|%_%b%f%n%o%p%q%y%{&P&o&p&r'](q)S)U)i)s)v)x)y*O*P*R*V*[*^*e*n*w*x+U+V+h+o+}-i-t-v.U.`.p.t.x.y/Z/[/{/}0`0r0w1O1Y1Z1y2a2h2j2m2s2v3V3u3{3|4R4U4_4e4t5`5d5v6R6Y6p6v6x7c7r8gR0k+ZR0j+ZQ'R!qQ)c%XQ+w&|R4y1PX'Q!q%X&|1PR+y&|R+x&|T/S*S4TT/R*S4TR.o)sR.n)sR){%p",nodeNames:"\u26A0 | < > RawString Float LineComment BlockComment SourceFile ] InnerAttribute ! [ MetaItem self Metavariable super crate Identifier ScopedIdentifier :: QualifiedScope AbstractType impl SelfType MetaType TypeIdentifier ScopedTypeIdentifier ScopeIdentifier TypeArgList TypeBinding = Lifetime String Escape Char Boolean Integer } { Block ; ConstItem Vis pub ( in ) const BoundIdentifier : UnsafeBlock unsafe AsyncBlock async move IfExpression if LetDeclaration let LiteralPattern ArithOp MetaPattern SelfPattern ScopedIdentifier TuplePattern ScopedTypeIdentifier , StructPattern FieldPatternList FieldPattern ref mut FieldIdentifier .. RefPattern SlicePattern CapturedPattern ReferencePattern & MutPattern RangePattern ... OrPattern MacroPattern ParenthesizedTokens TokenBinding Identifier TokenRepetition ArithOp BitOp LogicOp UpdateOp CompareOp -> => ArithOp BracketedTokens BracedTokens _ else MatchExpression match MatchBlock MatchArm Attribute Guard UnaryExpression ArithOp DerefOp LogicOp ReferenceExpression TryExpression BinaryExpression ArithOp ArithOp BitOp BitOp BitOp BitOp LogicOp LogicOp AssignmentExpression TypeCastExpression as ReturnExpression return RangeExpression CallExpression ArgList AwaitExpression await FieldExpression GenericFunction BreakExpression break LoopLabel ContinueExpression continue IndexExpression ArrayExpression TupleExpression MacroInvocation UnitExpression ClosureExpression ParamList Parameter Parameter ParenthesizedExpression StructExpression FieldInitializerList ShorthandFieldInitializer FieldInitializer BaseFieldInitializer MatchArm WhileExpression while LoopExpression loop ForExpression for MacroInvocation MacroDefinition macro_rules MacroRule EmptyStatement ModItem mod DeclarationList AttributeItem ForeignModItem extern StructItem struct TypeParamList ConstrainedTypeParameter TraitBounds HigherRankedTraitBound RemovedTraitBound OptionalTypeParameter ConstParameter WhereClause where LifetimeClause TypeBoundClause FieldDeclarationList FieldDeclaration OrderedFieldDeclarationList UnionItem union EnumItem enum EnumVariantList EnumVariant TypeItem type FunctionItem default fn ParamList Parameter SelfParameter VariadicParameter VariadicParameter ImplItem TraitItem trait AssociatedType LetDeclaration UseDeclaration use ScopedIdentifier UseAsClause ScopedIdentifier UseList ScopedUseList UseWildcard ExternCrateDeclaration StaticItem static ExpressionStatement ExpressionStatement GenericType FunctionType ForLifetimes ParamList VariadicParameter Parameter VariadicParameter Parameter ReferenceType PointerType TupleType UnitType ArrayType MacroInvocation EmptyType DynamicType dyn BoundedType",maxTerm:359,nodeProps:[["isolate",-4,4,6,7,33,""],["group",-42,4,5,14,15,16,17,18,19,33,35,36,37,40,51,53,56,101,107,111,112,113,122,123,125,127,128,130,132,133,134,137,139,140,141,142,143,144,148,149,155,157,159,"Expression",-16,22,24,25,26,27,222,223,230,231,232,233,234,235,236,237,239,"Type",-20,42,161,162,165,166,169,170,172,188,190,194,196,204,205,207,208,209,217,218,220,"Statement",-17,49,60,62,63,64,65,68,74,75,76,77,78,80,81,83,84,99,"Pattern"],["openedBy",9,"[",38,"{",47,"("],["closedBy",12,"]",39,"}",45,")"]],propSources:[l0],skippedNodes:[0,6,7,240],repeatNodeCount:32,tokenData:"$%h_R!XOX$nXY5gYZ6iZ]$n]^5g^p$npq5gqr7Xrs9cst:Rtu;Tuv>vvwAQwxCbxy!+Tyz!,Vz{!-X{|!/_|}!0g}!O!1i!O!P!3v!P!Q!8[!Q!R!Bw!R![!Dr![!]#+q!]!^#-{!^!_#.}!_!`#1b!`!a#3o!a!b#6S!b!c#7U!c!}#8W!}#O#:T#O#P#;V#P#Q#Cb#Q#R#Dd#R#S#8W#S#T$n#T#U#8W#U#V#El#V#f#8W#f#g#Ic#g#o#8W#o#p$ S#p#q$!U#q#r$$f#r${$n${$|#8W$|4w$n4w5b#8W5b5i$n5i6S#8W6S;'S$n;'S;=`4s<%lO$nU$u]'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$nU%uV'_Q'OSOz&[z{&v{!P&[!P!Q'x!Q;'S&[;'S;=`*s<%lO&[S&aV'OSOz&[z{&v{!P&[!P!Q'x!Q;'S&[;'S;=`*s<%lO&[S&yVOz'`z{&v{!P'`!P!Q*y!Q;'S'`;'S;=`*m<%lO'`S'cVOz&[z{&v{!P&[!P!Q'x!Q;'S&[;'S;=`*s<%lO&[S'{UOz'`{!P'`!P!Q(_!Q;'S'`;'S;=`*m<%lO'`S(bUOz(t{!P(t!P!Q(_!Q;'S(t;'S;=`*a<%lO(tS(wVOz)^z{)z{!P)^!P!Q(_!Q;'S)^;'S;=`*g<%lO)^S)eV'PS'OSOz)^z{)z{!P)^!P!Q(_!Q;'S)^;'S;=`*g<%lO)^S)}UOz(tz{)z{!P(t!Q;'S(t;'S;=`*a<%lO(tS*dP;=`<%l(tS*jP;=`<%l)^S*pP;=`<%l'`S*vP;=`<%l&[S+OO'PSU+T]'_QOY+|YZ-xZr+|rs'`sz+|z{+O{!P+|!P!Q4y!Q#O+|#O#P'`#P;'S+|;'S;=`4m<%lO+|U,R]'_QOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$nU-P]'_QOY+|YZ-xZr+|rs'`sz+|z{.d{!P+|!P!Q/Z!Q#O+|#O#P'`#P;'S+|;'S;=`4m<%lO+|U-}V'_QOz&[z{&v{!P&[!P!Q'x!Q;'S&[;'S;=`*s<%lO&[Q.iV'_QOY.dYZ/OZr.ds#O.d#P;'S.d;'S;=`/T<%lO.dQ/TO'_QQ/WP;=`<%l.dU/`]'_QOY0XYZ3uZr0Xrs(tsz0Xz{.d{!P0X!P!Q/Z!Q#O0X#O#P(t#P;'S0X;'S;=`4a<%lO0XU0^]'_QOY1VYZ2XZr1Vrs)^sz1Vz{2w{!P1V!P!Q/Z!Q#O1V#O#P)^#P;'S1V;'S;=`4g<%lO1VU1`]'_Q'PS'OSOY1VYZ2XZr1Vrs)^sz1Vz{2w{!P1V!P!Q/Z!Q#O1V#O#P)^#P;'S1V;'S;=`4g<%lO1VU2bV'_Q'PS'OSOz)^z{)z{!P)^!P!Q(_!Q;'S)^;'S;=`*g<%lO)^U2|]'_QOY0XYZ3uZr0Xrs(tsz0Xz{2w{!P0X!P!Q.d!Q#O0X#O#P(t#P;'S0X;'S;=`4a<%lO0XU3zV'_QOz)^z{)z{!P)^!P!Q(_!Q;'S)^;'S;=`*g<%lO)^U4dP;=`<%l0XU4jP;=`<%l1VU4pP;=`<%l+|U4vP;=`<%l$nU5QV'_Q'PSOY.dYZ/OZr.ds#O.d#P;'S.d;'S;=`/T<%lO.d_5p]'_Q&|X'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$n_6rV'_Q&|X'OSOz&[z{&v{!P&[!P!Q'x!Q;'S&[;'S;=`*s<%lO&[_7b_ZX'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q!_$n!_!`8a!`#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$n_8j]#PX'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$n_9lV']Q'OS'^XOz&[z{&v{!P&[!P!Q'x!Q;'S&[;'S;=`*s<%lO&[_:[]'QX'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$n_;^i'_Q'vW'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q!c$n!c!}<{!}#O$n#O#P&[#P#R$n#R#S<{#S#T$n#T#o<{#o${$n${$|<{$|4w$n4w5b<{5b5i$n5i6S<{6S;'S$n;'S;=`4s<%lO$n_=Uj'_Q_X'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q![<{![!c$n!c!}<{!}#O$n#O#P&[#P#R$n#R#S<{#S#T$n#T#o<{#o${$n${$|<{$|4w$n4w5b<{5b5i$n5i6S<{6S;'S$n;'S;=`4s<%lO$n_?P_(TP'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q!_$n!_!`@O!`#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$n_@X]#OX'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$n_AZa!qX'_Q'OSOY$nYZ%nZr$nrs&[sv$nvwB`wz$nz{+O{!P$n!P!Q,z!Q!_$n!_!`@O!`#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$n_Bi]'}X'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$n_Cik'_Q'OSOYE^YZGfZrE^rsHvswE^wxFdxzE^z{Ih{!PE^!P!QKl!Q!cE^!c!}Lp!}#OE^#O#P!!l#P#RE^#R#SLp#S#TE^#T#oLp#o${E^${$|Lp$|4wE^4w5bLp5b5iE^5i6SLp6S;'SE^;'S;=`!*}<%lOE^_Ee_'_Q'OSOY$nYZ%nZr$nrs&[sw$nwxFdxz$nz{+O{!P$n!P!Q,z!Q#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$n_Fm]'_Q'OSsXOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$n_GmX'_Q'OSOw&[wxHYxz&[z{&v{!P&[!P!Q'x!Q;'S&[;'S;=`*s<%lO&[]HaV'OSsXOz&[z{&v{!P&[!P!Q'x!Q;'S&[;'S;=`*s<%lO&[]H{X'OSOw&[wxHYxz&[z{&v{!P&[!P!Q'x!Q;'S&[;'S;=`*s<%lO&[_Im_'_QOY+|YZ-xZr+|rs'`sw+|wxJlxz+|z{+O{!P+|!P!Q4y!Q#O+|#O#P'`#P;'S+|;'S;=`4m<%lO+|_Js]'_QsXOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$n_Kq_'_QOY+|YZ-xZr+|rs'`sw+|wxJlxz+|z{.d{!P+|!P!Q/Z!Q#O+|#O#P'`#P;'S+|;'S;=`4m<%lO+|_Lyl'_Q'OS'ZXOY$nYZ%nZr$nrs&[sw$nwxFdxz$nz{+O{!P$n!P!Q,z!Q![Nq![!c$n!c!}Nq!}#O$n#O#P&[#P#R$n#R#SNq#S#T$n#T#oNq#o${$n${$|Nq$|4w$n4w5bNq5b5i$n5i6SNq6S;'S$n;'S;=`4s<%lO$n_Nzj'_Q'OS'ZXOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q![Nq![!c$n!c!}Nq!}#O$n#O#P&[#P#R$n#R#SNq#S#T$n#T#oNq#o${$n${$|Nq$|4w$n4w5bNq5b5i$n5i6SNq6S;'S$n;'S;=`4s<%lO$n]!!qZ'OSOzHvz{!#d{!PHv!P!Q!$n!Q#iHv#i#j!%Z#j#lHv#l#m!'V#m;'SHv;'S;=`!*w<%lOHv]!#gXOw'`wx!$Sxz'`z{&v{!P'`!P!Q*y!Q;'S'`;'S;=`*m<%lO'`]!$XVsXOz&[z{&v{!P&[!P!Q'x!Q;'S&[;'S;=`*s<%lO&[]!$qWOw'`wx!$Sxz'`{!P'`!P!Q(_!Q;'S'`;'S;=`*m<%lO'`]!%`^'OSOz&[z{&v{!P&[!P!Q'x!Q![!&[![!c&[!c!i!&[!i#T&[#T#Z!&[#Z#o&[#o#p!({#p;'S&[;'S;=`*s<%lO&[]!&a['OSOz&[z{&v{!P&[!P!Q'x!Q![!'V![!c&[!c!i!'V!i#T&[#T#Z!'V#Z;'S&[;'S;=`*s<%lO&[]!'[['OSOz&[z{&v{!P&[!P!Q'x!Q![!(Q![!c&[!c!i!(Q!i#T&[#T#Z!(Q#Z;'S&[;'S;=`*s<%lO&[]!(V['OSOz&[z{&v{!P&[!P!Q'x!Q![Hv![!c&[!c!iHv!i#T&[#T#ZHv#Z;'S&[;'S;=`*s<%lO&[]!)Q['OSOz&[z{&v{!P&[!P!Q'x!Q![!)v![!c&[!c!i!)v!i#T&[#T#Z!)v#Z;'S&[;'S;=`*s<%lO&[]!){^'OSOz&[z{&v{!P&[!P!Q'x!Q![!)v![!c&[!c!i!)v!i#T&[#T#Z!)v#Z#q&[#q#rHv#r;'S&[;'S;=`*s<%lO&[]!*zP;=`<%lHv_!+QP;=`<%lE^_!+^]}X'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$n_!,`]!PX'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$n_!-`_(QX'_QOY+|YZ-xZr+|rs'`sz+|z{+O{!P+|!P!Q4y!Q!_+|!_!`!._!`#O+|#O#P'`#P;'S+|;'S;=`4m<%lO+|_!.f]#OX'_QOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$n_!/h_(PX'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q!_$n!_!`@O!`#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$n_!0p]!eX'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$n_!1r`'gX'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q!_$n!_!`@O!`!a!2t!a#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$n_!2}]#QX'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$n_!4P^(OX'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!O$n!O!P!4{!P!Q,z!Q#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$n_!5U`!lX'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!O$n!O!P!6W!P!Q,z!Q!_$n!_!`!7Y!`#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$n_!6a]!tX'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$nV!7c]'qP'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$n_!8c_'_Q'xXOY+|YZ-xZr+|rs'`sz+|z{!9b{!P+|!P!Q!:O!Q!_+|!_!`!._!`#O+|#O#P'`#P;'S+|;'S;=`4m<%lO+|_!9iV&}]'_QOY.dYZ/OZr.ds#O.d#P;'S.d;'S;=`/T<%lO.d_!:V]'_QUXOY!;OYZ3uZr!;Ors!>jsz!;Oz{!Aq{!P!;O!P!Q!:O!Q#O!;O#O#P!>j#P;'S!;O;'S;=`!Bk<%lO!;O_!;V]'_QUXOY!<OYZ2XZr!<Ors!=Ssz!<Oz{!@q{!P!<O!P!Q!:O!Q#O!<O#O#P!=S#P;'S!<O;'S;=`!Bq<%lO!<O_!<Z]'_QUX'PS'OSOY!<OYZ2XZr!<Ors!=Ssz!<Oz{!@q{!P!<O!P!Q!:O!Q#O!<O#O#P!=S#P;'S!<O;'S;=`!Bq<%lO!<O]!=]XUX'PS'OSOY!=SYZ)^Zz!=Sz{!=x{!P!=S!P!Q!?[!Q;'S!=S;'S;=`!@k<%lO!=S]!=}XUXOY!>jYZ(tZz!>jz{!=x{!P!>j!P!Q!?|!Q;'S!>j;'S;=`!@e<%lO!>j]!>oXUXOY!=SYZ)^Zz!=Sz{!=x{!P!=S!P!Q!?[!Q;'S!=S;'S;=`!@k<%lO!=S]!?aXUXOY!>jYZ(tZz!>jz{!?|{!P!>j!P!Q!?[!Q;'S!>j;'S;=`!@e<%lO!>jX!@RSUXOY!?|Z;'S!?|;'S;=`!@_<%lO!?|X!@bP;=`<%l!?|]!@hP;=`<%l!>j]!@nP;=`<%l!=S_!@x]'_QUXOY!;OYZ3uZr!;Ors!>jsz!;Oz{!@q{!P!;O!P!Q!Aq!Q#O!;O#O#P!>j#P;'S!;O;'S;=`!Bk<%lO!;OZ!AxX'_QUXOY!AqYZ/OZr!Aqrs!?|s#O!Aq#O#P!?|#P;'S!Aq;'S;=`!Be<%lO!AqZ!BhP;=`<%l!Aq_!BnP;=`<%l!;O_!BtP;=`<%l!<O_!CQjuX'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q![!Dr![#O$n#O#P&[#P#R$n#R#S!Dr#S#U$n#U#V#!}#V#]$n#]#^!FZ#^#c$n#c#d#%u#d#i$n#i#j!FZ#j#l$n#l#m#(g#m;'S$n;'S;=`4s<%lO$n_!D{duX'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q![!Dr![#O$n#O#P&[#P#R$n#R#S!Dr#S#]$n#]#^!FZ#^#i$n#i#j!FZ#j;'S$n;'S;=`4s<%lO$n_!Fbg'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q!R$n!R!S!Gy!S!T$n!T!U!K_!U!W$n!W!X!Le!X!Y$n!Y!Z!J]!Z#O$n#O#P&[#P#g$n#g#h!Mk#h;'S$n;'S;=`4s<%lO$n_!HQa'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q!S$n!S!T!IV!T!W$n!W!X!J]!X#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$n_!I^_'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q!Y$n!Y!Z!J]!Z#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$n_!Jf]uX'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$n_!Kf_'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q!S$n!S!T!J]!T#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$n_!Ll_'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q!U$n!U!V!J]!V#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$n_!Mr_'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q#O$n#O#P&[#P#]$n#]#^!Nq#^;'S$n;'S;=`4s<%lO$n_!Nx_'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q#O$n#O#P&[#P#n$n#n#o# w#o;'S$n;'S;=`4s<%lO$n_#!O_'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q#O$n#O#P&[#P#X$n#X#Y!J]#Y;'S$n;'S;=`4s<%lO$n_##Ua'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q!R#$Z!R!S#$Z!S#O$n#O#P&[#P#R$n#R#S#$Z#S;'S$n;'S;=`4s<%lO$n_#$deuX'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q!R#$Z!R!S#$Z!S#O$n#O#P&[#P#R$n#R#S#$Z#S#]$n#]#^!FZ#^#i$n#i#j!FZ#j;'S$n;'S;=`4s<%lO$n_#%|`'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q!Y#'O!Y#O$n#O#P&[#P#R$n#R#S#'O#S;'S$n;'S;=`4s<%lO$n_#'XduX'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q!Y#'O!Y#O$n#O#P&[#P#R$n#R#S#'O#S#]$n#]#^!FZ#^#i$n#i#j!FZ#j;'S$n;'S;=`4s<%lO$n_#(nd'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q![#)|![!c$n!c!i#)|!i#O$n#O#P&[#P#R$n#R#S#)|#S#T$n#T#Z#)|#Z;'S$n;'S;=`4s<%lO$n_#*VhuX'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q![#)|![!c$n!c!i#)|!i#O$n#O#P&[#P#R$n#R#S#)|#S#T$n#T#Z#)|#Z#]$n#]#^!FZ#^#i$n#i#j!FZ#j;'S$n;'S;=`4s<%lO$n_#+z_!SX'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q![$n![!]#,y!]#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$n_#-S]dX'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$n_#.U]yX'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$n_#/W`#PX'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q!^$n!^!_#0Y!_!`8a!`#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$n_#0c_'yX'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q!_$n!_!`@O!`#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$n_#1k`oX'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q!_$n!_!`8a!`!a#2m!a#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$n_#2v]#RX'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$n_#3x`#PX'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q!_$n!_!`8a!`!a#4z!a#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$n_#5T_'zX'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q!_$n!_!`@O!`#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$n_#6]](RX'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$nV#7_]'pP'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$n_#8cj'_Q'OS!yW'TPOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q![#8W![!c$n!c!}#8W!}#O$n#O#P&[#P#R$n#R#S#8W#S#T$n#T#o#8W#o${$n${$|#8W$|4w$n4w5b#8W5b5i$n5i6S#8W6S;'S$n;'S;=`4s<%lO$n_#:^][X'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$nU#;[Z'OSOz#;}z{#<k{!P#;}!P!Q#=V!Q#i#;}#i#j#=n#j#l#;}#l#m#?j#m;'S#;};'S;=`#C[<%lO#;}U#<UVrQ'OSOz&[z{&v{!P&[!P!Q'x!Q;'S&[;'S;=`*s<%lO&[U#<pVrQOz'`z{&v{!P'`!P!Q*y!Q;'S'`;'S;=`*m<%lO'`U#=[UrQOz'`{!P'`!P!Q(_!Q;'S'`;'S;=`*m<%lO'`U#=s^'OSOz&[z{&v{!P&[!P!Q'x!Q![#>o![!c&[!c!i#>o!i#T&[#T#Z#>o#Z#o&[#o#p#A`#p;'S&[;'S;=`*s<%lO&[U#>t['OSOz&[z{&v{!P&[!P!Q'x!Q![#?j![!c&[!c!i#?j!i#T&[#T#Z#?j#Z;'S&[;'S;=`*s<%lO&[U#?o['OSOz&[z{&v{!P&[!P!Q'x!Q![#@e![!c&[!c!i#@e!i#T&[#T#Z#@e#Z;'S&[;'S;=`*s<%lO&[U#@j['OSOz&[z{&v{!P&[!P!Q'x!Q![#;}![!c&[!c!i#;}!i#T&[#T#Z#;}#Z;'S&[;'S;=`*s<%lO&[U#Ae['OSOz&[z{&v{!P&[!P!Q'x!Q![#BZ![!c&[!c!i#BZ!i#T&[#T#Z#BZ#Z;'S&[;'S;=`*s<%lO&[U#B`^'OSOz&[z{&v{!P&[!P!Q'x!Q![#BZ![!c&[!c!i#BZ!i#T&[#T#Z#BZ#Z#q&[#q#r#;}#r;'S&[;'S;=`*s<%lO&[U#C_P;=`<%l#;}_#Ck]XX'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$n_#Dm_'{X'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q!_$n!_!`@O!`#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$n_#Ewl'_Q'OS!yW'TPOY$nYZ%nZr$nrs#Gosw$nwx#H]xz$nz{+O{!P$n!P!Q,z!Q![#8W![!c$n!c!}#8W!}#O$n#O#P&[#P#R$n#R#S#8W#S#T$n#T#o#8W#o${$n${$|#8W$|4w$n4w5b#8W5b5i$n5i6S#8W6S;'S$n;'S;=`4s<%lO$n]#GvV'OS'^XOz&[z{&v{!P&[!P!Q'x!Q;'S&[;'S;=`*s<%lO&[_#Hd_'_Q'OSOYE^YZGfZrE^rsHvswE^wxFdxzE^z{Ih{!PE^!P!QKl!Q#OE^#O#P!!l#P;'SE^;'S;=`!*}<%lOE^_#Ink'_Q'OS!yW'TPOY$nYZ%nZr$nrs&[st#Kctz$nz{+O{!P$n!P!Q,z!Q![#8W![!c$n!c!}#8W!}#O$n#O#P&[#P#R$n#R#S#8W#S#T$n#T#o#8W#o${$n${$|#8W$|4w$n4w5b#8W5b5i$n5i6S#8W6S;'S$n;'S;=`4s<%lO$nV#Kji'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q!c$n!c!}#MX!}#O$n#O#P&[#P#R$n#R#S#MX#S#T$n#T#o#MX#o${$n${$|#MX$|4w$n4w5b#MX5b5i$n5i6S#MX6S;'S$n;'S;=`4s<%lO$nV#Mbj'_Q'OS'TPOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q![#MX![!c$n!c!}#MX!}#O$n#O#P&[#P#R$n#R#S#MX#S#T$n#T#o#MX#o${$n${$|#MX$|4w$n4w5b#MX5b5i$n5i6S#MX6S;'S$n;'S;=`4s<%lO$n_$ ]]wX'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$n_$!_a'rX'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q!_$n!_!`@O!`#O$n#O#P&[#P#p$n#p#q$#d#q;'S$n;'S;=`4s<%lO$n_$#m]'|X'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$n_$$o]vX'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$n",tokenizers:[c0,d0,a0,0,1,2,3],topRules:{SourceFile:[0,8]},specialized:[{term:281,get:o(e=>u0[e]||-1,"get")}],tokenPrec:15596})});import Vn from"fs/promises";import gl from"path";function oy(e){let t=e.replace(/[\*\[\]]/g," ").split(/[\s,]+/).map(n=>n.trim()).filter(Boolean);return t[t.length-1]}function Ol(e){return e&&e.replace(/<[^>]+>/g,"").split("::").map(n=>n.trim()).filter(Boolean).at(-1)?.replace(/[&*]/g,"").trim()||void 0}function H(e,t){for(let n=e.firstChild;n;n=n.nextSibling)t(n)}function Ie(e,t){return e.slice(t.from,t.to)}function it(e,t){return e.slice(0,t.from).split(/\r?\n/).length}function ot(e,t){return e[t-1]?.trim()||"<unknown>"}function f0(e,t){let n=[];return H(t,r=>{if(r.type.name!=="ImportStatement")return;let i=Ie(e,r).trim(),s=/^from\s+([.\w]+)\s+import\b/.exec(i);if(s?.[1]){n.push(s[1]);return}s=/^import\s+(.+)$/.exec(i),s?.[1]&&n.push(...s[1].split(",").map(a=>a.trim().split(/\s+as\s+/i)[0]??"").filter(Boolean))}),ge(n,12)}function hl(e,t){if(t.type.name==="VariableName"||t.type.name==="PropertyName")return Ie(e,t).trim()||null;if(t.type.name==="MemberExpression"){let r=null;return H(t,i=>{let s=hl(e,i);s&&(r=s)}),r}let n=t.firstChild;return n?hl(e,n):null}function iy(e,t){let n=new Set,r=o(i=>{if(i.type.name==="CallExpression"){let s=i.firstChild,a=s?hl(e,s):null;a&&!Ne.has(a)&&n.add(a)}H(i,r)},"walk");return r(t),Array.from(n).slice(0,24)}async function sy(e,t,n){let r=[];for(let i of t){let s=gl.join(e,i);if((await Vn.stat(s)).size>Xn)continue;let c=await Vn.readFile(s,"utf8"),d=c.split(/\r?\n/),f=BO.parse(c).topNode,u=ie(i),m=fe(u),g=He(m),w=f0(c,f),k=[],O=Ee(i,n).id;H(f,y=>{if(y.type.name==="FunctionDefinition"){let S=null;if(H(y,I=>{I.type.name==="VariableName"&&!S&&(S=Ie(c,I).trim())}),!S)return;let v=S,R=it(c,y);k.push({id:`${i}#${v}:${R}`,name:v,qualifiedName:`${i}:${v}`,kind:"function",filePath:i,moduleId:O,language:u,capabilityTier:m,line:R,signature:ot(d,R),exported:!v.startsWith("_"),calls:iy(c,y),callTargets:[],importPaths:w,confidence:Math.min(.99,g+.1)});return}if(y.type.name!=="ClassDefinition")return;let b=null,P=null;if(H(y,S=>{S.type.name==="VariableName"&&!b?b=Ie(c,S).trim():S.type.name==="Body"&&(P=S)}),!b)return;let x=b,_=it(c,y);k.push({id:`${i}#${x}:${_}`,name:x,qualifiedName:`${i}:${x}`,kind:"class",filePath:i,moduleId:O,language:u,capabilityTier:m,line:_,signature:ot(d,_),exported:!x.startsWith("_"),calls:[],callTargets:[],importPaths:w,confidence:Math.min(.99,g+.08)}),P&&H(P,S=>{if(S.type.name!=="FunctionDefinition")return;let v=null;if(H(S,C=>{C.type.name==="VariableName"&&!v&&(v=Ie(c,C).trim())}),!v)return;let R=v,I=it(c,S);k.push({id:`${i}#${x}.${R}:${I}`,name:R,qualifiedName:`${i}:${x}.${R}`,kind:"method",filePath:i,moduleId:O,language:u,capabilityTier:m,line:I,signature:ot(d,I),exported:!R.startsWith("_"),calls:iy(c,S),callTargets:[],importPaths:w,confidence:Math.min(.99,g+.06)})})}),r.push({filePath:i,moduleId:O,language:u,capabilityTier:m,importPaths:w,symbols:k.slice(0,bt)})}return r}function oi(e,t){let n=null;return H(e,r=>{!n&&t(r)&&(n=r)}),n}function p0(e,t){let n=null;return H(e,r=>{t(r)&&(n=r)}),n}function ay(e,t){if(t(e))return e;let n=null;return H(e,r=>{n||(n=ay(r,t))}),n}function fs(e,t,n){let r=new Set,i=o(s=>{if(s.type.name==="CallExpr"||s.type.name==="CallExpression"){let a=s.firstChild,c=a?n(e,a):null;c&&!Ne.has(c)&&r.add(c)}H(s,i)},"walk");return i(t),Array.from(r).slice(0,24)}function ps(e,t){if(t.type.name==="VariableName"||t.type.name==="FieldName"||t.type.name==="TypeName")return Ie(e,t).trim()||null;if(t.type.name==="SelectorExpr"){let r=null;return H(t,i=>{let s=ps(e,i);s&&(r=s)}),r}let n=t.firstChild;return n?ps(e,n):null}function ms(e,t){if(t.type.name==="Identifier"||t.type.name==="FieldIdentifier"||t.type.name==="TypeIdentifier"||t.type.name==="BoundIdentifier")return Ie(e,t).trim()||null;if(t.type.name==="FieldExpression"){let r=null;return H(t,i=>{let s=ms(e,i);s&&(r=s)}),r}let n=t.firstChild;return n?ms(e,n):null}function Un(e,t,n){let r=oi(t,i=>i.type.name===n);return r?Ie(e,r).trim():null}function ml(e,t){return/^pub(?:\([^)]*\))?\s/.test(Ie(e,t).trimStart())}async function cy(e,t,n){let r=[];for(let i of t){let s=gl.join(e,i);if((await Vn.stat(s)).size>Xn)continue;let c=await Vn.readFile(s,"utf8"),d=c.split(/\r?\n/),l=MO.parse(c),f=Ee(i,n).id,u=ie(i),m=fe(u),g=He(m),w=Br(c,u),k=[];H(l.topNode,O=>{if(O.type.name==="TypeDecl"){let S=oi(O,C=>C.type.name==="TypeSpec"),v=S?Un(c,S,"DefName"):null;if(!S||!v)return;let R=oi(S,C=>C.type.name==="InterfaceType")?"interface":"struct",I=it(c,S);k.push({id:`${i}#${v}:${I}`,name:v,qualifiedName:`${i}:${v}`,kind:R,filePath:i,moduleId:f,language:u,capabilityTier:m,line:I,signature:ot(d,I),exported:/^[A-Z]/.test(v),calls:[],callTargets:[],importPaths:w,confidence:Math.min(.97,g+.07)});return}if(O.type.name==="FunctionDecl"){let S=Un(c,O,"DefName");if(!S)return;let v=it(c,O);k.push({id:`${i}#${S}:${v}`,name:S,qualifiedName:`${i}:${S}`,kind:"function",filePath:i,moduleId:f,language:u,capabilityTier:m,line:v,signature:ot(d,v),exported:/^[A-Z]/.test(S),calls:fs(c,O,ps),callTargets:[],importPaths:w,confidence:Math.min(.97,g+.07)});return}if(O.type.name!=="MethodDecl")return;let y=oi(O,S=>S.type.name==="Parameters"),b=Un(c,O,"FieldName"),P=y?ay(y,S=>S.type.name==="TypeName"):null,x=P?Ie(c,P).trim():void 0;if(!b)return;let _=it(c,O);k.push({id:`${i}#${x?`${x}.`:""}${b}:${_}`,name:b,qualifiedName:`${i}:${x?`${x}.`:""}${b}`,kind:"method",filePath:i,moduleId:f,language:u,capabilityTier:m,line:_,signature:ot(d,_),exported:/^[A-Z]/.test(b),calls:fs(c,O,ps),callTargets:[],importPaths:w,confidence:Math.min(.97,g+.08)})}),r.push({filePath:i,moduleId:f,language:u,capabilityTier:m,importPaths:w,symbols:k.slice(0,bt)})}return r}async function dy(e,t,n){let r=[];for(let i of t){let s=gl.join(e,i);if((await Vn.stat(s)).size>Xn)continue;let c=await Vn.readFile(s,"utf8"),d=c.split(/\r?\n/),l=ny.parse(c),f=Ee(i,n).id,u=ie(i),m=fe(u),g=He(m),w=Br(c,u),k=[];H(l.topNode,O=>{if(O.type.name==="StructItem"||O.type.name==="TraitItem"||O.type.name==="EnumItem"){let x=Un(c,O,"TypeIdentifier");if(!x)return;let _=O.type.name==="TraitItem"?"trait":O.type.name==="EnumItem"?"enum":"struct",S=it(c,O);k.push({id:`${i}#${x}:${S}`,name:x,qualifiedName:`${i}:${x}`,kind:_,filePath:i,moduleId:f,language:u,capabilityTier:m,line:S,signature:ot(d,S),exported:ml(c,O),calls:[],callTargets:[],importPaths:w,confidence:Math.min(.97,g+.06)});return}if(O.type.name==="FunctionItem"){let x=Un(c,O,"BoundIdentifier");if(!x)return;let _=it(c,O);k.push({id:`${i}#${x}:${_}`,name:x,qualifiedName:`${i}:${x}`,kind:"function",filePath:i,moduleId:f,language:u,capabilityTier:m,line:_,signature:ot(d,_),exported:ml(c,O),calls:fs(c,O,ms),callTargets:[],importPaths:w,confidence:Math.min(.97,g+.06)});return}if(O.type.name!=="ImplItem")return;let y=p0(O,x=>x.type.name==="TypeIdentifier"),b=y?Ol(Ie(c,y).trim()):void 0,P=oi(O,x=>x.type.name==="DeclarationList");!b||!P||H(P,x=>{if(x.type.name!=="FunctionItem")return;let _=Un(c,x,"BoundIdentifier");if(!_)return;let S=it(c,x);k.push({id:`${i}#${b}.${_}:${S}`,name:_,qualifiedName:`${i}:${b}.${_}`,kind:"method",filePath:i,moduleId:f,language:u,capabilityTier:m,line:S,signature:ot(d,S),exported:ml(c,x),calls:fs(c,x,ms),callTargets:[],importPaths:w,confidence:Math.min(.97,g+.07)})})}),r.push({filePath:i,moduleId:f,language:u,capabilityTier:m,importPaths:w,symbols:k.slice(0,bt)})}return r}var yl=p(()=>{"use strict";XO();ZO();ry();kt();o(oy,"extractGoReceiverQualifier");o(Ol,"normalizeRustQualifier");o(H,"forEachSyntaxChild");o(Ie,"getSyntaxNodeText");o(it,"getPythonNodeLine");o(ot,"getPythonSignature");o(f0,"collectPythonImports");o(hl,"getPythonCallName");o(iy,"collectPythonCallNames");o(sy,"analyzePythonFiles");o(oi,"findFirstSyntaxChild");o(p0,"findLastSyntaxChild");o(ay,"findSyntaxDescendant");o(fs,"collectLezerCallNames");o(ps,"getGoCallName");o(ms,"getRustCallName");o(Un,"findSyntaxNodeText");o(ml,"isRustExported");o(cy,"analyzeGoFiles");o(dy,"analyzeRustFiles")});import ly from"fs/promises";import Rt from"path";function uy(e,t){return Array.from(e.matchAll(t)).length}function Qe(e){return uy(e,/\{/g)-uy(e,/\}/g)}function m0(e,t,n,r,i){let s=Math.max(0,n.line-1),a=Math.max(n.line,(r[i+1]?.line??e.length+1)-1);if(t==="python"){let u=e[s]?.match(/^\s*/)?.[0]?.length??0,m=s+1;for(;m<e.length;){let g=e[m]??"",w=g.trim();if(!w){m+=1;continue}if((g.match(/^\s*/)?.[0]?.length??0)<=u&&!w.startsWith("#"))break;m+=1}return e.slice(s,m).join(`
1038
- `)}let c=0,d=!1,l=s;for(let u=s;u<e.length;u+=1){let m=e[u]??"";if(c+=Qe(m),m.includes("{")&&(d=!0),l=u,d&&c<=0&&u>s||!d&&u+1>=a)break}let f=d?l+1:a;return e.slice(s,f).join(`
1039
- `)}function h0(e){let t=new Set,n=[/\b([A-Za-z_][A-Za-z0-9_]*)\s*\(/g,/\.([A-Za-z_][A-Za-z0-9_]*)\s*\(/g];for(let r of n){let i=null;for(;(i=r.exec(e))!==null;){let s=i[1];if(!(!s||Ne.has(s))&&(t.add(s),t.size>=24))break}}return Array.from(t)}function se(e,t,n){let r=`${n.line}:${n.kind}:${n.name}`;t.has(r)||(t.add(r),e.push(n))}function g0(e,t){let n=[],r=new Set,i=[],s=[],a=[],c=0;for(let[d,l]of e.entries()){let f=l.trim();if(!f)continue;let u=null;if(t==="typescript"||t==="javascript"){if(u=/^(export\s+)?(?:async\s+)?function\s+([A-Za-z_$][A-Za-z0-9_$]*)\s*\(/.exec(f),u){se(n,r,{name:u[2],kind:"function",line:d+1,signature:f,exported:!!u[1],confidenceBoost:.08});continue}if(u=/^(export\s+)?(?:const|let|var)\s+([A-Za-z_$][A-Za-z0-9_$]*)\s*=\s*(?:async\s*)?(?:\([^=]*\)|[A-Za-z_$][A-Za-z0-9_$]*)\s*=>/.exec(f),u){se(n,r,{name:u[2],kind:"function",line:d+1,signature:f,exported:!!u[1],confidenceBoost:.06});continue}if(u=/^(export\s+)?class\s+([A-Za-z_$][A-Za-z0-9_$]*)/.exec(f)??/^(export\s+)?interface\s+([A-Za-z_$][A-Za-z0-9_$]*)/.exec(f)??/^(export\s+)?type\s+([A-Za-z_$][A-Za-z0-9_$]*)\s*=/.exec(f)??/^(export\s+)?enum\s+([A-Za-z_$][A-Za-z0-9_$]*)/.exec(f),u){let m=f.includes("interface")?"interface":f.includes("type ")?"type":f.includes("enum ")?"enum":"class";se(n,r,{name:u[2],kind:m,line:d+1,signature:f,exported:!!u[1],confidenceBoost:.08})}continue}if(t==="python"){if(u=/^def\s+([A-Za-z_][A-Za-z0-9_]*)\s*\(/.exec(f),u){se(n,r,{name:u[1],kind:"function",line:d+1,signature:f,exported:!u[1].startsWith("_"),confidenceBoost:.08});continue}u=/^class\s+([A-Za-z_][A-Za-z0-9_]*)/.exec(f),u&&se(n,r,{name:u[1],kind:"class",line:d+1,signature:f,exported:!u[1].startsWith("_"),confidenceBoost:.08});continue}if(t==="go"){if(u=/^func\s+\(([^)]+)\)\s*([A-Za-z_][A-Za-z0-9_]*)\s*\(/.exec(f),u){se(n,r,{name:u[2],kind:"method",line:d+1,signature:f,exported:/^[A-Z]/.test(u[2]),confidenceBoost:.08,qualifier:oy(u[1])});continue}if(u=/^func\s+([A-Za-z_][A-Za-z0-9_]*)\s*\(/.exec(f),u){se(n,r,{name:u[1],kind:"function",line:d+1,signature:f,exported:/^[A-Z]/.test(u[1]),confidenceBoost:.07});continue}u=/^type\s+([A-Za-z_][A-Za-z0-9_]*)\s+(?:struct|interface)/.exec(f),u&&se(n,r,{name:u[1],kind:f.includes("interface")?"interface":"struct",line:d+1,signature:f,exported:/^[A-Z]/.test(u[1]),confidenceBoost:.07});continue}if(t==="rust"){let m=a[a.length-1];if(u=/^impl(?:<[^>]+>)?\s+(?:[A-Za-z0-9_:<&>\[\]]+\s+for\s+)?([A-Za-z_][A-Za-z0-9_:<>]*)/.exec(f),u){let g=Ol(u[1]);a.push({name:g,depth:c+Qe(l)})}if(u=/^(?:pub\s+)?fn\s+([A-Za-z_][A-Za-z0-9_]*)\s*\(/.exec(f),u){for(se(n,r,{name:u[1],kind:m?.name?"method":"function",line:d+1,signature:f,exported:f.startsWith("pub "),confidenceBoost:m?.name?.07:.06,qualifier:m?.name}),c+=Qe(l);a.length>0&&c<(a[a.length-1]?.depth??0);)a.pop();continue}for(u=/^(?:pub\s+)?(struct|enum|trait)\s+([A-Za-z_][A-Za-z0-9_]*)/.exec(f),u&&se(n,r,{name:u[2],kind:u[1],line:d+1,signature:f,exported:f.startsWith("pub "),confidenceBoost:.06}),c+=Qe(l);a.length>0&&c<(a[a.length-1]?.depth??0);)a.pop();continue}if(t==="java"){if(u=/^(?:public\s+)?(class|interface|enum)\s+([A-Za-z_][A-Za-z0-9_]*)/.exec(f),u){for(se(n,r,{name:u[2],kind:u[1]==="interface"?"interface":u[1]==="enum"?"enum":"class",line:d+1,signature:f,exported:!0,confidenceBoost:.05}),i.push({name:u[2],depth:c+Qe(l)}),c+=Qe(l);i.length>0&&c<(i[i.length-1]?.depth??0);)i.pop();continue}if(u=/^(?:public|protected|private|static|final|synchronized|abstract|\s)+[\w<>\[\], ?]+\s+([A-Za-z_][A-Za-z0-9_]*)\s*\([^;]*\)\s*\{?$/.exec(f),u&&!Ne.has(u[1])){let m=i[i.length-1]?.name;se(n,r,{name:u[1],kind:m?"method":"function",line:d+1,signature:f,exported:f.startsWith("public"),confidenceBoost:.03,qualifier:m})}for(c+=Qe(l);i.length>0&&c<(i[i.length-1]?.depth??0);)i.pop();continue}if(t==="cpp"){if(u=/^(class|struct|enum)(?:\s+(?:class|struct))?\s+([A-Za-z_][A-Za-z0-9_]*)/.exec(f),u){for(se(n,r,{name:u[2],kind:u[1]==="enum"?"enum":u[1]==="struct"?"struct":"class",line:d+1,signature:f,exported:!0,confidenceBoost:.03}),u[1]!=="enum"&&s.push({name:u[2],depth:c+Qe(l)}),c+=Qe(l);s.length>0&&c<(s[s.length-1]?.depth??0);)s.pop();continue}if(u=/^(?:[\w:&*<>,~]+\s+)+([A-Za-z_~][A-Za-z0-9_]*)::([A-Za-z_~][A-Za-z0-9_]*)\s*\([^;]*\)\s*(?:const\s*)?(?:\{|$)/.exec(f),u&&!Ne.has(u[2])){for(se(n,r,{name:u[2],kind:"method",line:d+1,signature:f,exported:!0,confidenceBoost:.04,qualifier:u[1].split("::").at(-1)}),c+=Qe(l);s.length>0&&c<(s[s.length-1]?.depth??0);)s.pop();continue}if(u=/^(?:[\w:&*<>,~]+\s+)+([A-Za-z_~][A-Za-z0-9_]*)\s*\([^;]*\)\s*(?:const\s*)?(?:\{|$)/.exec(f),u&&!Ne.has(u[1])){let m=s[s.length-1]?.name;se(n,r,{name:u[1],kind:m?"method":"function",line:d+1,signature:f,exported:!0,confidenceBoost:m?.03:.02,qualifier:m})}for(c+=Qe(l);s.length>0&&c<(s[s.length-1]?.depth??0);)s.pop()}}return n.slice(0,bt)}async function fy(e,t,n){let r=Rt.join(e,t);if((await ly.stat(r)).size>Xn)return null;let s=await ly.readFile(r,"utf8"),a=s.split(/\r?\n/),c=ie(t),d=fe(c),l=Br(s,c),f=g0(a,c),u=He(d),m=f.map((g,w,k)=>{let O=m0(a,c,g,k,w),y=g.calls??h0(O);return{id:`${t}#${g.qualifier?`${g.qualifier}.`:""}${g.name}:${g.line}`,name:g.name,qualifiedName:`${t}:${g.qualifier?`${g.qualifier}.`:""}${g.name}`,kind:g.kind,filePath:t,moduleId:n,language:c,capabilityTier:d,line:g.line,signature:g.signature,exported:g.exported,calls:y,callTargets:[],importPaths:l,confidence:Math.min(.97,u+g.confidenceBoost)}});return{filePath:t,moduleId:n,language:c,capabilityTier:d,importPaths:l,symbols:m}}function py(e){let t=new Map;for(let n of e)t.set(n.id.toLowerCase(),n.id),t.set(n.label.toLowerCase(),n.id),t.set(Rt.posix.basename(n.root).toLowerCase(),n.id);return t}function O0(e,t,n){if(!e.startsWith("."))return null;let r=Rt.posix.dirname(t),i;if(e.includes("/"))i=U(Rt.posix.join(r,e));else{let a=e.match(/^\.+/)?.[0]?.length??0,c=e.slice(a).replace(/\./g,"/"),d=r;for(let l=1;l<a;l+=1)d=Rt.posix.dirname(d);i=U(Rt.posix.join(d,c))}let s=[i];for(let a of jn)s.push(`${i}${a}`),s.push(`${i}/index${a}`);for(let a of s)if(n.has(a))return a;return null}function si(e,t,n,r,i){let s=O0(e,t,n);if(s)return Ee(s,r).id;let a=e.toLowerCase();for(let[c,d]of i.entries())if(a===c||a.startsWith(`${c}/`)||a.endsWith(`/${c}`))return d;return null}function hs(e,t,n){return e===t?"same-module":n.has(t)?"imported-module":"name-match"}function my(e,t){let n=new Map(t.map(s=>[s.id,s])),r=new Map;for(let s of t){let a=r.get(s.moduleId)??[];a.push(s),r.set(s.moduleId,a)}let i=[];for(let s of e){let a=r.get(s.moduleId)??[],c=s.entryFiles.length>0?s.entryFiles:s.sampleFiles;for(let d of c.slice(0,2)){let l=a.find(O=>O.filePath===d&&O.exported)??a.find(O=>O.filePath===d)??a[0];if(!l)continue;let f=[{kind:"entry",symbolName:l.name,symbolId:l.id,filePath:l.filePath,line:l.line,note:`Entry symbol ${l.name} in ${l.filePath}`}];for(let O of l.importPaths.slice(0,3))f.push({kind:"imports",symbolName:O,filePath:l.filePath,note:`Imports ${O}`});let u=l.callTargets.slice(0,3);for(let O of u){let y=n.get(O.symbolId);f.push({kind:"calls",symbolName:O.name,symbolId:O.symbolId,filePath:O.filePath,line:y?.line,note:`Calls ${O.name} (${O.reason})`})}let m=u.map(O=>n.get(O.symbolId)).filter(O=>O!==void 0).flatMap(O=>O.callTargets.slice(0,2)).slice(0,2);for(let O of m){let y=n.get(O.symbolId);f.push({kind:"calls",symbolName:O.name,symbolId:O.symbolId,filePath:O.filePath,line:y?.line,note:`Then reaches ${O.name} (${O.reason})`})}let g=f.slice(0,oO),w=ge(g.map(O=>n.get(O.symbolId??"")?.moduleId).filter(O=>typeof O=="string"),4),k=`${s.moduleId}::${Rt.posix.basename(d)}`;i.push({id:k,label:`${s.label} entry via ${Rt.posix.basename(d)}`,moduleId:s.moduleId,entryFile:d,entrySymbol:l.name,summary:w.length>0?`${l.name} fans into ${ge(u.map(O=>O.name),4).join(", ")||"local work"} and touches modules ${w.join(", ")}.`:`${l.name} starts the main path for ${s.label}.`,steps:g,confidence:Math.min(.95,l.confidence-.02+u.length*.03)})}}return i}var wl=p(()=>{"use strict";kt();yl();o(uy,"countOccurrences");o(Qe,"countBraceDelta");o(m0,"extractSymbolBody");o(h0,"extractCallNames");o(se,"pushSymbol");o(g0,"extractSymbolsFromLines");o(fy,"analyzeSourceFile");o(py,"buildModuleAliases");o(O0,"resolveRelativeImport");o(si,"resolveImportToModule");o(hs,"rankReferenceReason");o(my,"buildProcessCapsules")});var Sy={};xs(Sy,{analyzeTypeScriptFiles:()=>w0,collectTypeScriptImportPaths:()=>yy,getCallExpressionName:()=>Oy,getDeclarationKey:()=>bl,getNodeLine:()=>hy,getPropertyNameText:()=>gs,getSignatureSnippet:()=>gy,hasModifier:()=>Sl,isExportedDeclaration:()=>Qt,registerTypeScriptSymbol:()=>It,resolveTypeScriptCallSymbol:()=>wy,scriptKindFromFilePath:()=>y0});import Os from"path";import E from"typescript";function y0(e){switch(Os.extname(e).toLowerCase()){case".ts":return E.ScriptKind.TS;case".tsx":return E.ScriptKind.TSX;case".jsx":return E.ScriptKind.JSX;default:return E.ScriptKind.JS}}function hy(e,t){return e.getLineAndCharacterOfPosition(t.getStart(e)).line+1}function bl(e,t){let n=t.getSourceFile(),r=n.getLineAndCharacterOfPosition(t.getStart(n));return`${U(Os.relative(e,n.fileName))}:${r.line+1}:${r.character+1}:${t.kind}`}function gy(e,t){let n=t.getStart(e),r=e.text.indexOf(`
1040
- `,n);return e.text.slice(n,r===-1?void 0:r).trim()||t.getText(e).split(/\r?\n/,1)[0]?.trim()||"<unknown>"}function Sl(e,t){return E.canHaveModifiers(e)?!!E.getModifiers(e)?.some(n=>n.kind===t):!1}function Qt(e){return Sl(e,E.SyntaxKind.ExportKeyword)||Sl(e,E.SyntaxKind.DefaultKeyword)?!0:E.isVariableDeclaration(e)&&E.isVariableDeclarationList(e.parent)&&E.isVariableStatement(e.parent.parent)?Qt(e.parent.parent):!1}function gs(e){return e&&(E.isIdentifier(e)||E.isPrivateIdentifier(e)||E.isStringLiteral(e)||E.isNumericLiteral(e))?e.text:null}function Oy(e){return E.isIdentifier(e)?e.text:E.isPropertyAccessExpression(e)?e.name.text:E.isElementAccessExpression(e)&&E.isIdentifier(e.argumentExpression)?e.argumentExpression.text:null}function yy(e){let t=new Set,n=o(i=>{i?.trim()&&t.add(i.trim())},"addImport"),r=o(i=>{if(E.isImportDeclaration(i)||E.isExportDeclaration(i))i.moduleSpecifier&&E.isStringLiteralLike(i.moduleSpecifier)&&n(i.moduleSpecifier.text);else if(E.isImportEqualsDeclaration(i)){let s=i.moduleReference;E.isExternalModuleReference(s)&&s.expression&&E.isStringLiteralLike(s.expression)&&n(s.expression.text)}else E.isCallExpression(i)&&E.isIdentifier(i.expression)&&i.expression.text==="require"&&i.arguments.length===1&&E.isStringLiteralLike(i.arguments[0])&&n(i.arguments[0].text);E.forEachChild(i,r)},"visit");return r(e),Array.from(t).slice(0,12)}function It(e,t,n,r,i,s,a,c,d,l,f){if(!s.trim())return;let u=hy(r,i),m=f?`${n.filePath}:${f}.${s}`:`${n.filePath}:${s}`,g={id:`${n.filePath}#${f?`${f}.`:""}${s}:${u}`,name:s,qualifiedName:m,kind:a,filePath:n.filePath,moduleId:n.moduleId,language:n.language,capabilityTier:n.capabilityTier,line:u,signature:gy(r,i),exported:c,calls:[],callTargets:[],importPaths:n.importPaths,confidence:Math.min(.99,He(n.capabilityTier)+d)};if(n.symbols.find(O=>O.id===g.id)||n.symbols.length>=bt)return;n.symbols.push(g);let k;E.isFunctionDeclaration(i)||E.isMethodDeclaration(i)||E.isGetAccessorDeclaration(i)||E.isSetAccessorDeclaration(i)||E.isFunctionExpression(i)||E.isArrowFunction(i)?k=i.body??void 0:E.isVariableDeclaration(i)?k=i.initializer??void 0:(E.isClassDeclaration(i)||E.isClassExpression(i))&&(k=i),t.push({record:g,declaration:i,body:k}),l.set(bl(e,i),g)}function wy(e,t){return E.isPropertyAccessExpression(t)?e.getSymbolAtLocation(t.name)??e.getSymbolAtLocation(t):E.isElementAccessExpression(t)?e.getSymbolAtLocation(t.argumentExpression)??e.getSymbolAtLocation(t):e.getSymbolAtLocation(t)}async function w0(e,t,n,r,i){let s={allowJs:!0,checkJs:!1,target:E.ScriptTarget.Latest,module:E.ModuleKind.ESNext,moduleResolution:E.ModuleResolutionKind.NodeNext,jsx:E.JsxEmit.Preserve,skipLibCheck:!0,noEmit:!0,allowSyntheticDefaultImports:!0},a=t.map(m=>Os.join(e,m)),c=E.createProgram(a,s),d=c.getTypeChecker(),l=new Map,f=new Map,u=[];for(let m of t){let g=ie(m);if(!on(g))continue;let w=c.getSourceFile(Os.join(e,m));if(!w)continue;let k={filePath:m,moduleId:Ee(m,n).id,language:g,capabilityTier:fe(g),importPaths:yy(w),symbols:[]};l.set(m,k);for(let O of w.statements){if(E.isFunctionDeclaration(O)&&O.name){It(e,u,k,w,O,O.name.text,"function",Qt(O),.1,f);continue}if(E.isVariableStatement(O)){for(let y of O.declarationList.declarations){let b=gs(y.name);b&&y.initializer&&(E.isArrowFunction(y.initializer)||E.isFunctionExpression(y.initializer))&&It(e,u,k,w,y,b,"function",Qt(y),.08,f)}continue}if(E.isClassDeclaration(O)&&O.name){It(e,u,k,w,O,O.name.text,"class",Qt(O),.1,f);for(let y of O.members)(E.isMethodDeclaration(y)||E.isGetAccessorDeclaration(y)||E.isSetAccessorDeclaration(y))&&gs(y.name)&&It(e,u,k,w,y,gs(y.name),"method",!1,.05,f,O.name.text);continue}if(E.isInterfaceDeclaration(O)&&O.name){It(e,u,k,w,O,O.name.text,"interface",Qt(O),.09,f);continue}if(E.isTypeAliasDeclaration(O)&&O.name){It(e,u,k,w,O,O.name.text,"type",Qt(O),.09,f);continue}E.isEnumDeclaration(O)&&O.name&&It(e,u,k,w,O,O.name.text,"enum",Qt(O),.09,f)}}for(let m of u){let g=new Set;for(let y of m.record.importPaths){let b=si(y,m.record.filePath,r,n,i);b&&g.add(b)}let w=new Set,k=new Map,O=o(y=>{if(E.isCallExpression(y)||E.isNewExpression(y)){let b=Oy(y.expression);b&&!Ne.has(b)&&w.add(b);let x=wy(d,y.expression)?.declarations?.[0];if(x){let _=f.get(bl(e,x));_&&_.id!==m.record.id&&k.set(_.id,{symbolId:_.id,name:_.name,filePath:_.filePath,moduleId:_.moduleId,reason:hs(m.record.moduleId,_.moduleId,g)})}}E.forEachChild(y,O)},"visit");O(m.body??m.declaration),m.record.calls=Array.from(w).slice(0,24),m.record.callTargets=Array.from(k.values()).slice(0,Te),m.record.confidence=Math.min(.99,m.record.confidence+(m.record.callTargets.length>0?.03:0))}return Array.from(l.values())}var by=p(()=>{"use strict";kt();Zr();wl();o(y0,"scriptKindFromFilePath");o(hy,"getNodeLine");o(bl,"getDeclarationKey");o(gy,"getSignatureSnippet");o(Sl,"hasModifier");o(Qt,"isExportedDeclaration");o(gs,"getPropertyNameText");o(Oy,"getCallExpressionName");o(yy,"collectTypeScriptImportPaths");o(It,"registerTypeScriptSymbol");o(wy,"resolveTypeScriptCallSymbol");o(w0,"analyzeTypeScriptFiles")});import st from"path";function S0(e){return[...e.typeScriptFiles,...e.pythonFiles,...e.goFiles,...e.rustFiles,...e.fallbackFiles]}function b0(e){let t=new Map;for(let n of e)t.set(n.language,(t.get(n.language)??0)+1);return Array.from(t.entries()).map(([n,r])=>({language:n,capabilityTier:fe(n),fileCount:r}))}function v0(e,t){return t==="full"?e:{...e,confidence:Math.min(.68,Math.max(.32,e.confidence-.18))}}function k0(e,t){return e.map(n=>v0(n,t))}async function ys(e,t={}){let n=e.overview,r=e.workspaceRoot,i=t.profile??t.preflight?.analysisProfile??"full",s=t.preflight,a=s?.storageRoot??await Uo(r,i),c=e.inventory,d=c?null:await Vr(r,n.source),l=s?.dirtyPaths??e.dirtyPaths,f=new Set((c?.allFiles??d?.files??[]).map(S=>U(S)));if(l&&l.length>0)for(let S of l){let v=st.join(r,S);await zo(v)?f.add(S):f.delete(S)}let u=Array.from(f).sort((S,v)=>S.localeCompare(v)),{areaByFile:m,filesByAreaId:g,testFilesByAreaId:w,docFilesByAreaId:k}=OO(u,n.areas),O=u.filter(S=>jn.has(st.extname(S).toLowerCase())),y=new Set(O),b=s?.dirtyPathsFingerprint??(l?Gr(l):void 0),P=s?.dirtySourcePaths?s.dirtySourcePaths.filter(S=>y.has(S)):l?l.filter(S=>y.has(S)):[],x=s?.dirtySourceStateMap??(P.length>0?await Nn(r,P,m,n.areas,i):void 0),_=s?.dirtySourceFingerprint??(l?Dn(x?Array.from(x.values()).sort((S,v)=>S.filePath.localeCompare(v.filePath)):[]):void 0);return{analysisProfile:i,overview:n,overviewFingerprint:Vo(n,u),workspaceSnapshot:s?.workspaceSnapshot??Yo(n),inventory:c,workspaceRoot:r,storageRoot:a,allFiles:u,areaByFile:m,filesByAreaId:g,testFilesByAreaId:w,docFilesByAreaId:k,sourceFiles:O,sourceFileSet:y,dirtyPaths:l,dirtyPathsFingerprint:b,dirtySourceFingerprint:_,dirtySourceStateMap:x,moduleAliases:py(n.areas),buckets:Fd(O)}}function vl(e,t){return{...e,sourceStates:t,sourceFingerprint:Dn(t)}}async function kl(e,t){let n=new Map(t.map(s=>[s,null])),r=Fd(t);if(e.analysisProfile==="full"&&r.typeScriptFiles.length>0){let{analyzeTypeScriptFiles:s}=await Promise.resolve().then(()=>(by(),Sy)),a=await s(e.workspaceRoot,r.typeScriptFiles,e.overview.areas,e.sourceFileSet,e.moduleAliases);for(let c of a)n.set(c.filePath,c)}if(r.pythonFiles.length>0){let s=await sy(e.workspaceRoot,r.pythonFiles,e.overview.areas);for(let a of s)n.set(a.filePath,a)}if(r.goFiles.length>0){let s=await cy(e.workspaceRoot,r.goFiles,e.overview.areas);for(let a of s)n.set(a.filePath,a)}if(r.rustFiles.length>0){let s=await dy(e.workspaceRoot,r.rustFiles,e.overview.areas);for(let a of s)n.set(a.filePath,a)}let i=e.analysisProfile==="light"?[...r.typeScriptFiles,...r.fallbackFiles]:r.fallbackFiles;if(i.length>0){let s=await Promise.all(i.map(a=>fy(e.workspaceRoot,a,e.areaByFile.get(a)?.id??e.overview.areas[0].id)));for(let[a,c]of s.entries())n.set(i[a],c??null)}return n}function P0(e,t){return S0(e.buckets).flatMap(n=>{let r=t.get(n)??null;return r?[r]:[]})}async function ws(e,t){if(!e.sourceStates||!e.sourceFingerprint)throw new Error("materializeRepoIntelligenceIndex requires source state metadata.");let n=P0(e,t),r=n.flatMap(y=>y.symbols),i=new Map;for(let y of r){let b=y.name.toLowerCase(),P=i.get(b)??[];P.push(y),i.set(b,P)}let s=r.map(y=>{let b=new Set;for(let _ of y.importPaths){let S=si(_,y.filePath,e.sourceFileSet,e.overview.areas,e.moduleAliases);S&&b.add(S)}let P=y.calls.flatMap(_=>(i.get(_.toLowerCase())??[]).map(S=>({candidate:S,reason:hs(y.moduleId,S.moduleId,b)}))).filter(({candidate:_})=>_.id!==y.id).sort((_,S)=>{if(_.reason!==S.reason){let v=["same-module","imported-module","name-match"];return v.indexOf(_.reason)-v.indexOf(S.reason)}return _.candidate.filePath.localeCompare(S.candidate.filePath)}),x=new Map;for(let{candidate:_,reason:S}of P)if(x.has(_.id)||x.set(_.id,{symbolId:_.id,name:_.name,filePath:_.filePath,moduleId:_.moduleId,reason:S}),x.size>=Te)break;return{...y,callTargets:Array.from(x.values())}}),a=k0(s,e.analysisProfile),c=new Map;for(let y of e.overview.areas)c.set(y.id,{dependencies:new Set,dependents:new Set,languageCounts:new Map,sourceFileCount:0,symbolCount:0,entryFiles:[]});for(let y of n){let b=c.get(y.moduleId);if(!b)continue;let P=new Map(b.languageCounts);P.set(y.language,(P.get(y.language)??0)+1);let x=new Set(b.dependencies),_=/\/(?:index|main|app|server|cli)\.[^.]+$/.test(y.filePath)||/^(index|main|app|server|cli)\.[^.]+$/.test(y.filePath)?ge([...b.entryFiles,y.filePath],4):b.entryFiles;for(let S of y.importPaths){let v=si(S,y.filePath,e.sourceFileSet,e.overview.areas,e.moduleAliases);v&&v!==y.moduleId&&x.add(v)}c.set(y.moduleId,{...b,sourceFileCount:b.sourceFileCount+1,symbolCount:b.symbolCount+y.symbols.length,languageCounts:P,dependencies:x,entryFiles:_})}for(let[y,b]of c.entries())for(let P of b.dependencies){let x=c.get(P);x&&c.set(P,{...x,dependents:new Set([...x.dependents,y])})}let d=Array.from(c.entries()).map(([y,b])=>{let P=e.overview.areas.find(R=>R.id===y);if(!P)return null;let x=Array.from(b.dependencies).sort((R,I)=>R.localeCompare(I)),_=Array.from(b.dependents).sort((R,I)=>R.localeCompare(I)),S=Array.from(b.languageCounts.entries()).map(([R,I])=>({language:R,capabilityTier:fe(R),fileCount:I})).sort((R,I)=>I.fileCount-R.fileCount),v=a.filter(R=>R.moduleId===y);return{moduleId:P.id,label:P.label,kind:P.kind,root:P.root,fileCount:e.filesByAreaId.get(P.id)?.length??0,sourceFileCount:b.sourceFileCount,symbolCount:b.symbolCount,languages:S,topSymbols:v.sort((R,I)=>Number(I.exported)-Number(R.exported)||I.confidence-R.confidence).slice(0,6).map(R=>R.name),dependencies:x,dependents:_,entryFiles:b.entryFiles,keyTests:(e.testFilesByAreaId.get(y)??[]).slice(0,4),keyDocs:(e.docFilesByAreaId.get(y)??[]).slice(0,4),sampleFiles:P.sampleFiles.slice(0,5),processIds:[],confidence:uO(v,S)}}).filter(y=>y!==null).sort((y,b)=>b.symbolCount-y.symbolCount||y.moduleId.localeCompare(b.moduleId)),l=my(d,a),f=new Map;for(let y of l){let b=f.get(y.moduleId)??[];b.push(y.id),f.set(y.moduleId,b)}let u=d.map(y=>({...y,processIds:f.get(y.moduleId)??[]})),m={schemaVersion:te,workspaceRoot:e.workspaceRoot,generatedAt:new Date().toISOString(),overviewGeneratedAt:e.overview.generatedAt,sourceFileCount:e.sourceFiles.length,sourceFingerprint:e.sourceFingerprint,languages:b0(n),modules:u,symbols:a,processes:l},g={schemaVersion:te,workspaceRoot:e.workspaceRoot,generatedAt:m.generatedAt,overviewGeneratedAt:e.overview.generatedAt,overviewFingerprint:e.overviewFingerprint,workspaceSnapshot:e.workspaceSnapshot,sourceFileCount:e.sourceFiles.length,sourceFingerprint:e.sourceFingerprint,languageBreakdown:m.languages,sourceStates:e.sourceStates},w={schemaVersion:te,workspaceRoot:e.workspaceRoot,generatedAt:m.generatedAt,sourceFingerprint:e.sourceFingerprint,analyses:Object.fromEntries(e.sourceFiles.map(y=>[y,wO(t.get(y)??null)]))},k=mO(e),O={schemaVersion:te,workspaceRoot:e.workspaceRoot,branch:e.workspaceSnapshot.branch,head:e.workspaceSnapshot.head,queryGeneratedAt:m.generatedAt,overviewFingerprint:e.overviewFingerprint,sourceFingerprint:e.sourceFingerprint,sourceFileCount:e.sourceFiles.length,dirtyPathsFingerprint:e.dirtyPathsFingerprint??Gr(e.dirtyPaths??[]),dirtySourceFingerprint:e.dirtySourceFingerprint??Dn([]),dirtySourcePaths:k};return await vt(st.join(e.storageRoot,nO),u),await vt(st.join(e.storageRoot,rO),a),await vt(st.join(e.storageRoot,iO),l),await vt(st.join(e.storageRoot,St),m),await vt(st.join(e.storageRoot,qo),O),pO(e)&&(await vt(st.join(e.storageRoot,Fo),g),await vt(st.join(e.storageRoot,Lo),w)),m}var vy=p(()=>{"use strict";Do();yl();wl();Zr();kt();Zr();o(S0,"orderedSourceFilesForBuild");o(b0,"collectLanguageBreakdown");o(v0,"calibrateSymbolConfidenceForProfile");o(k0,"calibrateSymbolsForProfile");o(ys,"prepareRepoIntelligenceBuildInputsFromSnapshot");o(vl,"finalizeRepoIntelligenceBuildInputs");o(kl,"analyzeSourceFilesForBuild");o(P0,"collectOrderedAnalyses");o(ws,"materializeRepoIntelligenceIndex")});import $t from"path";async function xl(e){let t=await Nd(e.workspaceRoot,e.sourceFiles,e.areaByFile,e.overview.areas,e.analysisProfile),n=vl(e,t),r=await kl(n,n.sourceFiles);return ws(n,r)}async function _l(e){return le($t.join(e,Fo),aO)}async function ky(e){return le($t.join(e,Lo),cO)}async function Ss(e){return le($t.join(e,qo),dO)}function Py(e,t){return Object.prototype.hasOwnProperty.call(e,t)}function xy(e,t,n){return t.schemaVersion===te&&n.schemaVersion===te&&t.workspaceRoot===e.workspaceRoot&&n.workspaceRoot===e.workspaceRoot&&t.workspaceSnapshot.source===e.workspaceSnapshot.source&&t.sourceStates.length===t.sourceFileCount&&n.sourceFingerprint===t.sourceFingerprint}async function x0(e,t){let n=await le($t.join(e.storageRoot,St),Wn);return n?.schemaVersion!==te||n.workspaceRoot!==e.workspaceRoot||n.generatedAt!==t.generatedAt||n.sourceFileCount!==t.sourceFileCount||n.sourceFingerprint!==t.sourceFingerprint?null:n}function _y(e,t){return Go(e.workspaceSnapshot)&&Wd(t.workspaceSnapshot,e.workspaceSnapshot)&&t.overviewFingerprint===e.overviewFingerprint&&t.sourceFileCount===e.sourceFiles.length}function Ty(e,t){return!!(e.workspaceSnapshot.source==="git"&&e.workspaceSnapshot.hasUncommittedChanges===!0&&t&&t.schemaVersion===te&&t.workspaceRoot===e.workspaceRoot&&t.head===e.workspaceSnapshot.head&&t.branch===e.workspaceSnapshot.branch&&t.overviewFingerprint===e.overviewFingerprint&&t.sourceFileCount===e.sourceFiles.length&&t.dirtyPathsFingerprint===e.dirtyPathsFingerprint&&t.dirtySourceFingerprint===e.dirtySourceFingerprint)}async function Ey(e){if(!Go(e.workspaceSnapshot))return null;let t=await _l(e.storageRoot);if(!t||t.schemaVersion!==te||t.workspaceRoot!==e.workspaceRoot||!Wd(t.workspaceSnapshot,e.workspaceSnapshot)||t.overviewFingerprint!==e.overviewFingerprint)return null;let n=await le($t.join(e.storageRoot,St),Wn);return n?.schemaVersion!==te||n.workspaceRoot!==e.workspaceRoot||n.overviewGeneratedAt!==t.overviewGeneratedAt||n.sourceFileCount!==t.sourceFileCount||n.sourceFingerprint!==t.sourceFingerprint?null:n}async function Ry(e){if(e.workspaceSnapshot.source!=="git"||e.workspaceSnapshot.hasUncommittedChanges!==!0)return null;let t=await Ss(e.storageRoot);if(!t||t.schemaVersion!==te||t.workspaceRoot!==e.workspaceRoot||t.head!==e.workspaceSnapshot.head||t.branch!==e.workspaceSnapshot.branch||t.overviewFingerprint!==e.overviewFingerprint||t.dirtyPathsFingerprint!==e.dirtyPathsFingerprint||t.dirtySourceFingerprint!==e.dirtySourceFingerprint)return null;let n=await le($t.join(e.storageRoot,St),Wn);return n?.schemaVersion!==te||n.workspaceRoot!==e.workspaceRoot||n.generatedAt!==t.queryGeneratedAt||n.sourceFileCount!==t.sourceFileCount||n.sourceFingerprint!==t.sourceFingerprint?null:n}function bs(e){return new Map(e.map(t=>[t.filePath,t]))}function Tl(e,t){let n=e.sourceFiles.map(r=>t.get(r)).filter(r=>r!==void 0);return n.length!==e.sourceFiles.length?null:vl(e,n)}function El(e,t){let n=new Set;for(let r of e){let i=t.get(r.filePath);if(!i){n.add(r.filePath);continue}if(i.analyzerVersion!==r.analyzerVersion)return null;(i.fileFingerprint!==r.fileFingerprint||i.language!==r.language||i.moduleId!==r.moduleId)&&n.add(r.filePath)}return n}async function Rl(e,t,n,r){if(!e.sourceStates)return null;let i=bs(e.sourceStates),s=e.analysisProfile==="full"&&Array.from(r).some(d=>{let l=i.get(d);return l?on(l.language):!1}),a=new Set;for(let d of e.sourceStates){if(s&&on(d.language)){a.add(d.filePath);continue}r.has(d.filePath)&&a.add(d.filePath)}let c=new Map;for(let d of e.sourceStates)if(!a.has(d.filePath)){if(!Py(n.analyses,d.filePath))return null;c.set(d.filePath,SO(d.filePath,d,n.analyses[d.filePath]??null))}if(a.size>0){let d=await kl(e,e.sourceFiles.filter(l=>a.has(l)));for(let l of a)c.set(l,d.get(l)??null)}for(let d of e.sourceStates){if(!c.has(d.filePath))return null;let l=c.get(d.filePath)??null;if(l&&(l.filePath!==d.filePath||l.moduleId!==d.moduleId||l.language!==d.language)||t.get(d.filePath)?.analyzerVersion!==void 0&&t.get(d.filePath)?.analyzerVersion!==d.analyzerVersion)return null}return c}async function Iy(e,t,n){if(e.workspaceSnapshot.source!=="git"||e.workspaceSnapshot.hasUncommittedChanges!==!0||t.workspaceSnapshot.source!=="git"||e.workspaceSnapshot.head!==t.workspaceSnapshot.head||e.workspaceSnapshot.branch!==t.workspaceSnapshot.branch)return null;let r=new Set(e.dirtyPaths??[]),i=await Ss(e.storageRoot),s=new Set(i&&i.workspaceRoot===e.workspaceRoot&&i.head===e.workspaceSnapshot.head&&i.branch===e.workspaceSnapshot.branch?i.dirtySourcePaths:[]),a=bs(t.sourceStates),c=new Map,d=new Set,l=e.dirtySourceStateMap??new Map;for(let g of e.sourceFiles){let w=a.get(g);if(!w){if(!r.has(g))return null;d.add(g);continue}if(r.has(g)||s.has(g)){d.add(g);continue}c.set(g,w)}if(d.size>0){let g=new Set;for(let w of d){let k=l.get(w);if(k){c.set(w,k);continue}g.add(w)}if(g.size>0){let w=await Nn(e.workspaceRoot,g,e.areaByFile,e.overview.areas,e.analysisProfile);for(let[k,O]of w.entries())c.set(k,O)}}let f=Tl(e,c);if(!f?.sourceStates)return null;let u=El(f.sourceStates,a);if(!u)return null;let m=await Rl(f,a,n,u);return m?ws(f,m):null}async function Qy(e,t,n){let r=await Nn(e.workspaceRoot,e.sourceFiles,e.areaByFile,e.overview.areas,e.analysisProfile),i=Tl(e,r);if(!i?.sourceStates)return null;let s=bs(t.sourceStates),a=El(i.sourceStates,s);if(!a)return null;if(a.size===0)return x0(i,t);let c=await Rl(i,s,n,a);return c?ws(i,c):null}async function $y(e,t){if(!t)return null;let n=await ky(e.storageRoot);if(!n||!xy(e,t,n))return null;let r=await Iy(e,t,n);return r||Qy(e,t,n)}async function Pl(e,t=!1){let n=t?null:await _l(e.storageRoot),r=!t&&e.workspaceSnapshot.source==="git"&&e.workspaceSnapshot.hasUncommittedChanges===!0?await Ss(e.storageRoot):null;if(n&&_y(e,n)){let i=await le($t.join(e.storageRoot,St),Wn);if(i?.schemaVersion===te&&i.workspaceRoot===e.workspaceRoot&&i.overviewGeneratedAt===n.overviewGeneratedAt&&i.sourceFileCount===n.sourceFileCount&&i.sourceFingerprint===n.sourceFingerprint)return i}if(Ty(e,r)){let i=await le($t.join(e.storageRoot,St),Wn);if(i?.schemaVersion===te&&i.workspaceRoot===e.workspaceRoot&&i.generatedAt===r?.queryGeneratedAt&&i.sourceFileCount===r.sourceFileCount&&i.sourceFingerprint===r.sourceFingerprint)return i}if(!t){let i=await $y(e,n);if(i)return i}return xl(e)}async function ai(e,t=!1,n="full"){if(t){let c=await ys(e,{profile:n});return Pl(c,!0)}let r=await yO(e,n),i=await Ey(r);if(i)return i;let s=await Ry(r);if(s)return s;let a=await ys(e,{preflight:r});return Pl(a,!1)}async function _0(e,t={}){let n=await rn(e,{targetPath:t.targetPath,refresh:t.refresh}),r=await ys(n,{profile:t.profile??"full"});return xl(r)}async function ci(e,t={}){let n=await rn(e,{targetPath:t.targetPath,refresh:t.refresh});return ai(n,t.refresh===!0,t.profile??"full")}var Il=p(()=>{"use strict";Do();Zr();vy();kt();o(xl,"buildRepoIntelligenceIndexFromInputs");o(_l,"readRepoIntelligenceManifest");o(ky,"readFileAnalysisIndex");o(Ss,"readDirtySourceHint");o(Py,"hasOwnAnalysisEntry");o(xy,"hasCompatibleIncrementalCache");o(x0,"readCompatibleCachedQueryIndex");o(_y,"canDirectReuseCleanCachedQueryIndex");o(Ty,"canDirectReuseDirtyCachedQueryIndex");o(Ey,"tryDirectReuseCleanCachedQueryIndexFromPreflight");o(Ry,"tryDirectReuseDirtyCachedQueryIndexFromPreflight");o(bs,"mapSourceStatesByFile");o(Tl,"buildCompleteInputsFromSourceStates");o(El,"classifyChangedOrNewSourceFiles");o(Rl,"buildIncrementalAnalysisEntries");o(Iy,"tryGitDirtyIncrementalRepoIntelligenceBuild");o(Qy,"tryStatBasedIncrementalRepoIntelligenceBuild");o($y,"tryIncrementalRepoIntelligenceBuild");o(Pl,"getRepoIntelligenceIndexFromInputs");o(ai,"getRepoIntelligenceIndexFromSnapshot");o(_0,"buildRepoIntelligenceIndex");o(ci,"getRepoIntelligenceIndex")});import T0 from"path";function Ay(e,t,n,r){return e>=20||t>=4e3||n>=5||r>=5?"systemic":e>=8||t>=1200||n>=3||r>=3?"complex":e>=3||t>=250||n>=2||r>=2?"moderate":"simple"}function Cy(e,t,n){return e>=30||t>=4e3||n>=5?"massive":e>=10||t>=1200||n>=3?"large":"small"}function Yn(e){return`${e.generatedAt} (overview ${e.overviewGeneratedAt})`}function di(e,t,n){if(n){let i=U(n),s=e.modules.find(a=>i===a.root||i.startsWith(`${a.root}/`)||a.sampleFiles.includes(i));if(s)return s}let r=t?.trim().toLowerCase();return r?e.modules.slice().sort((i,s)=>s.symbolCount-i.symbolCount).find(i=>i.moduleId.toLowerCase()===r||i.label.toLowerCase()===r||i.root.toLowerCase()===r||T0.posix.basename(i.root).toLowerCase()===r)??e.modules.find(i=>i.moduleId.toLowerCase().includes(r)||i.label.toLowerCase().includes(r)||i.root.toLowerCase().includes(r))??null:e.modules.find(i=>i.moduleId!==".")??e.modules[0]??null}function My(e,t,n){let r=t.trim().toLowerCase(),i=n?.trim().toLowerCase();return e.symbols.filter(s=>s.name.toLowerCase()===r||s.qualifiedName.toLowerCase()===r||s.filePath.toLowerCase()===r).sort((s,a)=>{let c=i&&(s.moduleId.toLowerCase().includes(i)||s.filePath.toLowerCase().includes(i))?1:0,d=i&&(a.moduleId.toLowerCase().includes(i)||a.filePath.toLowerCase().includes(i))?1:0;return d!==c?d-c:Number(a.exported)-Number(s.exported)||a.confidence-s.confidence})}function Xy(e,t,n){let r=t?.trim().toLowerCase(),i=n?.trim().toLowerCase();return e.processes.filter(s=>{let a=!r||s.label.toLowerCase().includes(r)||s.entryFile.toLowerCase().includes(r)||(s.entrySymbol?.toLowerCase().includes(r)??!1),c=!i||s.moduleId.toLowerCase().includes(i);return a&&c}).sort((s,a)=>a.confidence-s.confidence||s.label.localeCompare(a.label))}function vs(e,t){return e.symbols.filter(n=>n.callTargets.some(r=>r.symbolId===t)).sort((n,r)=>r.confidence-n.confidence).slice(0,Te)}function Ql(e,t){let n=di(e,t.module,t.targetPath);if(!n)throw new Error(`No module matched "${t.module??t.targetPath??"current workspace"}".`);return{module:n,freshness:Yn(e),confidence:n.confidence,evidence:n.sampleFiles.slice(0,4)}}function $l(e,t){let n=My(e,t.symbol,t.module);if(n.length===0)throw new Error(`No symbol matched "${t.symbol}".`);let[r,...i]=n;return{symbol:r,alternatives:i.slice(0,4),callers:vs(e,r.id),freshness:Yn(e),confidence:r.confidence}}function jy(e,t){let n=Xy(e,t.entry??t.targetPath,t.module);if(n.length===0&&t.module){let s=di(e,t.module,t.targetPath);if(s?.processIds[0]){let a=e.processes.find(c=>c.id===s.processIds[0]);if(a)return{process:a,alternatives:[],freshness:Yn(e),confidence:a.confidence}}}let[r,...i]=n;if(!r)throw new Error(`No process matched "${t.entry??t.module??t.targetPath??"request"}".`);return{process:r,alternatives:i.slice(0,4),freshness:Yn(e),confidence:r.confidence}}function Al(e,t,n){let r=null,i=[],s=[],a=[],c=.65;if(t.symbol){let l=$l(e,{symbol:t.symbol,module:t.module}),f=ge([l.symbol.moduleId,...l.symbol.callTargets.map(u=>u.moduleId),...l.callers.map(u=>u.moduleId)]);r={kind:"symbol",label:l.symbol.name,moduleId:l.symbol.moduleId,filePath:l.symbol.filePath},i=e.modules.filter(u=>f.includes(u.moduleId)),s=ge([l.symbol.id,...l.symbol.callTargets.map(u=>u.symbolId),...l.callers.map(u=>u.id)]).map(u=>e.symbols.find(m=>m.id===u)).filter(u=>u!==void 0),a=l.callers,c=l.confidence}else if(t.path){let l=U(t.path),f=di(e,void 0,l),u=e.symbols.filter(m=>m.filePath===l);r={kind:"path",label:l,moduleId:f?.moduleId,filePath:l},i=f?[f,...e.modules.filter(m=>f.dependents.includes(m.moduleId))]:[],s=u,a=u.flatMap(m=>vs(e,m.id)).slice(0,Te),c=f?.confidence??.62}else{let l=di(e,t.module,t.targetPath);if(!l)throw new Error("impact_estimate requires one of symbol, path, or module.");r={kind:"module",label:l.label,moduleId:l.moduleId},i=[l,...e.modules.filter(f=>l.dependents.includes(f.moduleId))],s=e.symbols.filter(f=>f.moduleId===l.moduleId).slice(0,Te),a=s.flatMap(f=>vs(e,f.id)).slice(0,Te),c=l.confidence}let d=n?n.files.filter(l=>i.some(f=>l.areaId===f.moduleId)||s.some(f=>l.path===f.filePath)).length:0;return{target:r,summary:d>0?`${r.label} overlaps with ${d} currently changed file(s); validate blast radius before editing.`:`${r.label} primarily affects ${ge(i.map(l=>l.label),4).join(", ")||"its local module"} and ${s.length} indexed symbol(s).`,impactedModules:i,impactedSymbols:s.slice(0,Te),callers:a.slice(0,Te),changedScope:n,freshness:Yn(e),confidence:c}}async function E0(e,t={}){let n=await ci(e,t);return Ql(n,t)}async function R0(e,t){let n=await ci(e,t);return $l(n,t)}async function I0(e,t){let n=await ci(e,t);return jy(n,t)}async function Q0(e,t){let n=await rn(e,{targetPath:t.targetPath,refresh:t.refresh}),r=await ai(n,t.refresh===!0,t.profile??"full"),i;try{i=await jo(n,{scope:"all"})}catch(s){_e("impact_estimate could not load changed scope.",s),i=void 0}return Al(r,t,i)}async function $0(e,t={}){let n=await rn(e,{targetPath:t.targetPath,refresh:t.refresh}),r=t.targetPath??(e.executionCwd?".":void 0),[i,s]=await Promise.all([ai(n,t.refresh===!0,t.profile??"full"),jo(n,{scope:"all"}).catch(v=>(_e("Routing signals could not load changed scope.",v),null))]),a=null,c=null;try{a=Ql(i,{targetPath:r})}catch(v){_e("Routing signals could not resolve module context.",v)}try{c=Al(i,{targetPath:r},s??void 0)}catch(v){_e("Routing signals could not resolve impact estimate.",v)}let d=s?.areasTouched.map(v=>v.areaId).slice(0,8)??[],l=s?.totalChangedFiles??0,f=s?.changedLineCount??0,u=s?.addedLineCount??0,m=s?.deletedLineCount??0,g=s?.areasTouched.length??0,w=c?.impactedModules.length??(a?1:0),k=Ay(l,f,g,w),O=Cy(l,f,g),y=a?.confidence,b=c?.confidence,P=(y??1)<.72||(b??1)<.72,x=a?.module.languages[0]?.capabilityTier??i.languages[0]?.capabilityTier??"low",_=k==="complex"||k==="systemic"||d.length>1||(c?.impactedModules.length??0)>1,S=P||(s?.riskHints.length??0)>0||(c?.changedScope?.riskHints.length??0)>0;return{workspaceRoot:i.workspaceRoot,changedFileCount:l,changedLineCount:f,addedLineCount:u,deletedLineCount:m,touchedModuleCount:g,changedModules:d,crossModule:g>1||w>1,reviewScale:O,riskHints:ge([...P?["Light repo routing uses heuristic static analysis; validate low-confidence edges before editing."]:[],...s?.riskHints??[],...c?.changedScope?.riskHints??[]],4),activeModuleId:a?.module.moduleId,activeModuleConfidence:y,activeImpactConfidence:b,impactedModuleCount:w,impactedSymbolCount:c?.impactedSymbols.length??0,predominantCapabilityTier:x,suggestedComplexity:k,plannerBias:_,investigationBias:S,lowConfidence:P}}var Wy=p(()=>{"use strict";Do();Il();kt();o(Ay,"deriveRoutingComplexity");o(Cy,"deriveReviewScale");o(Yn,"buildFreshnessLabel");o(di,"findModuleMatch");o(My,"findSymbolMatches");o(Xy,"findProcessMatches");o(vs,"collectCallers");o(Ql,"resolveModuleContextFromIndex");o($l,"resolveSymbolContextFromIndex");o(jy,"resolveProcessContextFromIndex");o(Al,"resolveImpactEstimateFromIndex");o(E0,"getModuleContext");o(R0,"getSymbolContext");o(I0,"getProcessContext");o(Q0,"getImpactEstimate");o($0,"getRepoRoutingSignals")});var Dy=p(()=>{"use strict";Il();Wy()});function Cl(e,...t){let n=e.trim().toLowerCase(),r=0;for(let i of t){if(!i)continue;let s=i.toLowerCase();if(s===n){r=Math.max(r,1);continue}if(s.startsWith(n)){r=Math.max(r,.92);continue}if(s.includes(n)){r=Math.max(r,.78);continue}let a=n.split(/\s+/).filter(Boolean);a.length>0&&a.every(c=>s.includes(c))&&(r=Math.max(r,.66))}return r}function A0(e,t){return{item:{title:`${e.name} (${e.kind})`,locator:`${e.filePath}:${e.line}`,snippet:e.signature,score:t,metadata:{kind:"symbol",moduleId:e.moduleId,exported:e.exported,confidence:e.confidence}},artifact:{kind:"symbol",label:e.qualifiedName,value:`${e.filePath}:${e.line}`}}}function C0(e,t){return{item:{title:e.label,locator:e.root,snippet:`Module ${e.moduleId} with ${e.symbolCount} symbols and ${e.sourceFileCount} source files.`,score:t,metadata:{kind:"module",moduleId:e.moduleId,confidence:e.confidence}},artifact:{kind:"module",label:e.label,value:e.root}}}function M0(e,t){return{item:{title:e.label,locator:e.entryFile,snippet:e.summary,score:t,metadata:{kind:"process",moduleId:e.moduleId,confidence:e.confidence}},artifact:{kind:"process",label:e.label,value:e.entryFile}}}function X0(e,t,n,r){let i=[];if(n==="auto"||n==="symbol")for(let a of e.symbols){let c=Cl(t,a.name,a.qualifiedName,a.filePath,a.signature);c>0&&i.push({score:c,...A0(a,c)})}if(n==="auto"||n==="module")for(let a of e.modules){let c=Cl(t,a.label,a.moduleId,a.root,...a.topSymbols);c>0&&i.push({score:c,...C0(a,c)})}if(n==="auto"||n==="process")for(let a of e.processes){let c=Cl(t,a.label,a.entryFile,a.entrySymbol,a.summary);c>0&&i.push({score:c,...M0(a,c)})}i.sort((a,c)=>c.score!==a.score?c.score-a.score:a.item.title.localeCompare(c.item.title));let s=i.slice(0,r);return{items:s.map(a=>a.item),artifacts:s.map(a=>a.artifact),generatedAt:e.generatedAt,sourceFileCount:e.sourceFileCount,capabilityEngine:e.capability?.engine}}var Ny=p(()=>{"use strict";o(Cl,"scoreCandidate");o(A0,"buildSymbolItem");o(C0,"buildModuleItem");o(M0,"buildProcessItem");o(X0,"collectSemanticLookupItems")});function ks(e){return e>=.8?"high":e>=.65?"medium":"low"}function Ps(e){return!e||e.status==="ok"&&e.warnings.length===0?[]:[`Capability: ${e.engine}/${e.status}`,...e.warnings.map(t=>`Warning: ${t}`)]}function j0(e){let{module:t}=e;return[`Module context for ${t.label}`,`Module: ${t.moduleId} [${t.kind}]`,`Freshness: ${e.freshness}`,`Confidence: ${ks(e.confidence)} (${e.confidence.toFixed(2)})`,`Files: ${t.fileCount} total | ${t.sourceFileCount} source | ${t.symbolCount} symbols`,`Languages: ${t.languages.map(n=>`${n.language}/${n.capabilityTier}:${n.fileCount}`).join(" | ")||"none"}`,`Dependencies: ${t.dependencies.join(" | ")||"none"}`,`Dependents: ${t.dependents.join(" | ")||"none"}`,`Entry files: ${t.entryFiles.join(" | ")||"none"}`,`Top symbols: ${t.topSymbols.join(" | ")||"none"}`,`Tests: ${t.keyTests.join(" | ")||"none"}`,`Docs: ${t.keyDocs.join(" | ")||"none"}`,`Processes: ${t.processIds.join(" | ")||"none"}`,`Evidence: ${e.evidence.join(" | ")||"none"}`,...Ps(e.capability)].join(`
1041
- `)}function W0(e){let{symbol:t}=e;return[`Symbol context for ${t.name}`,`Definition: ${t.filePath}:${t.line}`,`Module: ${t.moduleId} | Kind: ${t.kind} | Exported: ${t.exported?"yes":"no"}`,`Language: ${t.language}/${t.capabilityTier}`,`Freshness: ${e.freshness}`,`Confidence: ${ks(e.confidence)} (${e.confidence.toFixed(2)})`,`Signature: ${t.signature}`,`Possible callees: ${t.callTargets.map(n=>`${n.name} -> ${n.filePath}`).join(" | ")||"none"}`,`Possible callers: ${e.callers.map(n=>`${n.name} -> ${n.filePath}`).join(" | ")||"none"}`,`Imports: ${t.importPaths.join(" | ")||"none"}`,e.alternatives.length>0?`Alternatives: ${e.alternatives.map(n=>`${n.name} @ ${n.filePath}:${n.line}`).join(" | ")}`:"Alternatives: none",...Ps(e.capability)].join(`
1042
- `)}function D0(e){let{process:t}=e;return[`Process context for ${t.label}`,`Module: ${t.moduleId}`,`Entry: ${t.entryFile}${t.entrySymbol?` -> ${t.entrySymbol}`:""}`,`Freshness: ${e.freshness}`,`Confidence: ${ks(e.confidence)} (${e.confidence.toFixed(2)})`,`Summary: ${t.summary}`,"Steps:",...t.steps.map(n=>`- ${n.kind} ${n.symbolName} @ ${n.filePath}${n.line?`:${n.line}`:""} | ${n.note}`),e.alternatives.length>0?`Alternatives: ${e.alternatives.map(n=>n.label).join(" | ")}`:"Alternatives: none",...Ps(e.capability)].join(`
1043
- `)}function N0(e){return[`Impact estimate for ${e.target.label}`,`Target: ${e.target.kind}${e.target.moduleId?` | module=${e.target.moduleId}`:""}${e.target.filePath?` | file=${e.target.filePath}`:""}`,`Freshness: ${e.freshness}`,`Confidence: ${ks(e.confidence)} (${e.confidence.toFixed(2)})`,`Summary: ${e.summary}`,`Impacted modules: ${e.impactedModules.map(t=>`${t.label}(${t.moduleId})`).join(" | ")||"none"}`,`Impacted symbols: ${e.impactedSymbols.map(t=>`${t.name} -> ${t.filePath}:${t.line}`).join(" | ")||"none"}`,`Possible callers: ${e.callers.map(t=>`${t.name} -> ${t.filePath}:${t.line}`).join(" | ")||"none"}`,e.changedScope?`Changed-scope overlap: ${e.changedScope.files.filter(t=>e.impactedModules.some(n=>n.moduleId===t.areaId)||e.impactedSymbols.some(n=>n.filePath===t.path)).length} file(s)`:"Changed-scope overlap: unavailable",...Ps(e.capability)].join(`
1044
- `)}var Fy=p(()=>{"use strict";o(ks,"confidenceLabel");o(Ps,"capabilityLines");o(j0,"renderModuleContext");o(W0,"renderSymbolContext");o(D0,"renderProcessContext");o(N0,"renderImpactEstimate")});function F0(e){let t=0,n=new Map,r=new Map,i=new Set,s=[],a=[],c=o(d=>{n.set(d,t),r.set(d,t),t++,s.push(d),i.add(d);for(let l of e.get(d)??[])n.has(l)?i.has(l)&&r.set(d,Math.min(r.get(d)??0,n.get(l)??0)):(c(l),r.set(d,Math.min(r.get(d)??0,r.get(l)??0)));if((r.get(d)??0)===(n.get(d)??0)){let l=[],f="";do f=s.pop()??"",i.delete(f),l.push(f);while(f!==d&&s.length>=0&&f!=="");a.push(l)}},"strongconnect");for(let d of e.keys())n.has(d)||c(d);return a}function L0(e){return e>=4?"high":e===3?"medium":"low"}function q0(e){let t=e.modules??[],n=new Set(t.map(d=>d.moduleId)),r=new Map,i=0;for(let d of t){let l=(d.dependencies??[]).filter(f=>n.has(f)&&f!==d.moduleId);r.set(d.moduleId,l),i+=l.length}let s=F0(r).filter(d=>d.length>1).map(d=>{let l=[...d].reverse();return{chain:[...l,l[0]??""],hopCount:d.length,severity:L0(d.length)}}).sort((d,l)=>l.hopCount-d.hopCount),a=s.filter(d=>d.severity==="high").length,c=s.length===0?"No circular dependencies found.":`${s.length} cycle(s) found, ${a} high-severity.`;return{cycles:s,scanned:{modules:t.length,edges:i},summary:c}}function z0(e){let t=[e.summary,`Scanned ${e.scanned.modules} modules, ${e.scanned.edges} edges.`];for(let n of e.cycles)t.push(`- [${n.severity}] ${n.hopCount}-hop: ${n.chain.join(" -> ")}`);return t.join(`
1045
- `)}var Ly=p(()=>{"use strict";o(F0,"tarjanScc");o(L0,"severityFor");o(q0,"findCyclicDependencies");o(z0,"renderCycleAnalysis")});var qy={};xs(qy,{buildCompleteInputsFromSourceStates:()=>Tl,buildFreshnessLabel:()=>Yn,buildIncrementalAnalysisEntries:()=>Rl,buildRepoIntelligenceIndex:()=>_0,buildRepoIntelligenceIndexFromInputs:()=>xl,canDirectReuseCleanCachedQueryIndex:()=>_y,canDirectReuseDirtyCachedQueryIndex:()=>Ty,classifyChangedOrNewSourceFiles:()=>El,collectCallers:()=>vs,collectSemanticLookupItems:()=>X0,deriveReviewScale:()=>Cy,deriveRoutingComplexity:()=>Ay,findCyclicDependencies:()=>q0,findModuleMatch:()=>di,findProcessMatches:()=>Xy,findSymbolMatches:()=>My,getImpactEstimate:()=>Q0,getModuleContext:()=>E0,getProcessContext:()=>I0,getRepoIntelligenceIndex:()=>ci,getRepoIntelligenceIndexFromInputs:()=>Pl,getRepoIntelligenceIndexFromSnapshot:()=>ai,getRepoRoutingSignals:()=>$0,getSymbolContext:()=>R0,hasCompatibleIncrementalCache:()=>xy,hasOwnAnalysisEntry:()=>Py,mapSourceStatesByFile:()=>bs,readDirtySourceHint:()=>Ss,readFileAnalysisIndex:()=>ky,readRepoIntelligenceManifest:()=>_l,renderCycleAnalysis:()=>z0,renderImpactEstimate:()=>N0,renderModuleContext:()=>j0,renderProcessContext:()=>D0,renderSymbolContext:()=>W0,resolveImpactEstimateFromIndex:()=>Al,resolveModuleContextFromIndex:()=>Ql,resolveProcessContextFromIndex:()=>jy,resolveSymbolContextFromIndex:()=>$l,tryDirectReuseCleanCachedQueryIndexFromPreflight:()=>Ey,tryDirectReuseDirtyCachedQueryIndexFromPreflight:()=>Ry,tryGitDirtyIncrementalRepoIntelligenceBuild:()=>Iy,tryIncrementalRepoIntelligenceBuild:()=>$y,tryStatBasedIncrementalRepoIntelligenceBuild:()=>Qy});var zy=p(()=>{"use strict";Dy();Ny();Fy();Ly()});import{parentPort as jl}from"node:worker_threads";if(!jl)throw new Error("semantic-worker must run inside a worker thread.");function Ml(e){return typeof e=="object"&&e!==null}o(Ml,"isRecord");function U0(e){return Ml(e)&&typeof e.id=="number"&&typeof e.kind=="string"&&Ml(e.context)&&Ml(e.options)}o(U0,"isRequest");function V0(e){return e instanceof Error?{message:e.message,stack:e.stack}:{message:String(e)}}o(V0,"serializeError");async function Y0(e){let t=await G0();switch(e.kind){case"buildIndex":return t.buildRepoIntelligenceIndex(e.context,e.options);case"getIndex":return t.getRepoIntelligenceIndex(e.context,e.options);case"module":return t.getModuleContext(e.context,e.options);case"symbol":return t.getSymbolContext(e.context,e.options);case"process":return t.getProcessContext(e.context,e.options);case"impact":return t.getImpactEstimate(e.context,e.options);case"routing":return t.getRepoRoutingSignals(e.context,e.options);case"semanticLookup":{let n=await t.getRepoIntelligenceIndex(e.context,e.options);return t.collectSemanticLookupItems(n,e.options.query,e.options.lookupKind,e.options.limit)}case"cyclicDeps":{let n=await t.getRepoIntelligenceIndex(e.context,e.options);return t.findCyclicDependencies(n)}}}o(Y0,"runRequest");function Uy(e){jl?.postMessage(e)}o(Uy,"post");var Vy=Promise.resolve(),Xl;function G0(){return Xl||(Xl=import.meta.url.endsWith(".ts")?B0():Promise.resolve().then(()=>(zy(),qy))),Xl}o(G0,"loadSemanticIndex");async function B0(){return await(await import("tsx/esm/api")).tsImport("./semantic-index.ts",{parentURL:import.meta.url})}o(B0,"loadDevSemanticIndex");jl.on("message",e=>{Vy=Vy.then(async()=>{if(U0(e))try{Uy({id:e.id,ok:!0,result:await Y0(e)})}catch(n){Uy({id:e.id,ok:!1,error:V0(n)})}}).catch(()=>{})});
686
+ `});var zh=p(()=>{"use strict";qr();fd();md();ud();cd();vo();ld();Lh();ad();qh()});async function eT(e,t,n){let r=Vh("label");return await e.append({id:r,ts:Date.now(),type:"label",payload:{targetId:t,label:n}}),r}async function tT(e,t,n){let r=Vh("artifact");return await e.append({id:r,ts:Date.now(),type:"artifact_ledger",payload:{ref:t,summary:n}}),r}function nT(e){let t=[],n=new Map,r=[],i=null;for(let s of e){if(s.type==="label"){let c=s.payload;c?.targetId&&r.push({targetId:c.targetId,label:c.label});continue}let a={entry:s,children:[]};if(s.type==="message"){t.push(a),n.set(s.id,a),i=a;continue}i?i.children.push(a):t.push(a)}for(let{targetId:s,label:a}of r){let c=n.get(s);c&&a!==void 0&&(c.label=a)}return t}var Uh,H_,J_,Vh,rT,Yh=p(()=>{"use strict";Uh=Object.freeze(["message","label","compaction","branch_summary","archive_marker","rewind_marker","artifact_ledger","memory_outcome_digest","memory_review_receipt"]),H_=0,J_=0,Vh=o(e=>{let t=e==="label"?++H_:++J_,n=Math.random().toString(36).slice(2,8);return`${e}-${Date.now()}-${t}-${n}`},"nextId");o(eT,"appendLabel");o(tT,"appendArtifact");o(nT,"buildLineageTree");rT=Object.freeze({name:"lineage",entryTypes:Uh,operators:Object.freeze({label:o((async(e,...t)=>{let[n,r]=t;return eT(e,n,r)}),"label"),attachArtifact:o((async(e,...t)=>{let[n,r]=t;return tT(e,n,r)}),"attachArtifact")}),reducers:Object.freeze({buildLineageTree:o(e=>nT(e),"buildLineageTree")})})});var Gh=p(()=>{"use strict"});var Bh=p(()=>{"use strict"});var ko=p(()=>{"use strict"});var xo=p(()=>{"use strict";ko()});var hd=p(()=>{"use strict"});var gd=p(()=>{"use strict";Se();re();hd();ct();ln()});var Kh=p(()=>{"use strict"});var Po=p(()=>{"use strict"});var _o=p(()=>{"use strict"});var fT,Od,To,Cn=p(()=>{"use strict";ct();xo();gd();Kh();ko();ln();Po();_o();fT=new Set(["skill","ask_user_question","exit_plan_mode","spawn_agent","send_message","followup_task","wait_agent","interrupt_agent","list_agents","agent_output","tool_search","get_goal","create_goal","update_goal","todo_create","todo_update","todo_list","todo_get","worktree_create","worktree_remove","undo","mcp_search","mcp_describe","mcp_call","mcp_read_resource","mcp_get_prompt","repo_overview","changed_scope","changed_diff","changed_diff_bundle","module_context","symbol_context","process_context","impact_estimate","relationship_scan","cyclic_dependencies","semantic_lookup"]),Od=fT,To=`[\u5BF9\u8BDD\u5386\u53F2\u6458\u8981]
687
+
688
+ `});var yd=p(()=>{"use strict";ct()});var wd=p(()=>{"use strict"});var Mn=p(()=>{"use strict";Cn();yd();wd()});var rg=p(()=>{"use strict";Mn()});var ig=p(()=>{"use strict"});var U3,V3,og=p(()=>{"use strict";Cn();Mn();U3=To.trimEnd(),V3=16*1024});var sg=p(()=>{"use strict";re();xo();Mn()});var ag=p(()=>{"use strict";Mn()});var wT,cg=p(()=>{"use strict";Cn();ko();wT={enabled:!1,maxAge:20,protectedTools:Array.from(Od)}});var dg=p(()=>{"use strict"});var lg=p(()=>{"use strict";Cn()});var ug=p(()=>{"use strict";ct();ln();Po();_o()});var fg=p(()=>{"use strict"});var pg=p(()=>{"use strict";lg();ug();fg()});var mg=p(()=>{"use strict";Yh();Gh();Bh();rg();ig();Mn();wd();og();sg();ag();Po();_o();xo();hd();gd();Cn();cg();yd();dg();_s();pg()});var hg=p(()=>{"use strict"});var bd=p(()=>{"use strict"});var vd=p(()=>{"use strict"});var Eo=p(()=>{"use strict"});import{createRequire as PT}from"node:module";var _T,gg,n6,kd=p(()=>{"use strict";_T=PT(import.meta.url),n6=new Proxy({},{get(e,t){return gg??=_T("typescript"),Reflect.get(gg,t)}})});var Ro=p(()=>{"use strict";Se();bd()});var xd=p(()=>{"use strict";Eo();kd();Ro()});var wg=p(()=>{"use strict";Eo();xd()});var Sg=p(()=>{"use strict";vd();Ro()});var bg=p(()=>{"use strict";hg();bd();vd();Eo();xd();kd();wg();Ro();Sg()});var vg=p(()=>{"use strict"});var Pd=p(()=>{"use strict"});var kg=p(()=>{"use strict";Pd();Pd()});var xg=p(()=>{"use strict"});var Pg=p(()=>{"use strict";vg();kg();xg()});var Io=p(()=>{"use strict"});var _d=p(()=>{"use strict";Io()});var w7,_g=p(()=>{"use strict";Io();_d();w7=new Intl.Segmenter("en",{granularity:"grapheme"})});var Tg=p(()=>{"use strict";_g();Io();_d()});var Qo=p(()=>{"use strict";ql();Ps();_s();Vl();ct();ln();re();Ff();Lf();qf();Ca();Ia();$a();Qa();hr();Ea();Ra();qi();ep();G();tp();Wa();zi();Ut();Da();Fa();lp();up();br();wp();Pp();Za();Ka();_p();Tp();Ha();Ja();Ja();Gi();Dh();uo();uo();Vt();zh();Oo();Ta();mg();bg();Pg();Tg()});import qT from"path";function Eg(e){return qT.resolve(e?.executionCwd??e?.gitRoot??process.cwd())}var Rg=p(()=>{"use strict";o(Eg,"resolveExecutionCwd")});import Ig from"node:fs";import Td from"node:os";import ve from"node:path";function Ed(e){return(e==="~"?Td.homedir():/^~[\\/]/.test(e)?ve.join(Td.homedir(),e.slice(2)):e).replace(/^(?:\$\{HOME\}|\$HOME|\$env:(?:home|userprofile)|%userprofile%)(?=$|[\\/])/i,Td.homedir())}function zr(e,t=process.cwd()){if(!e.trim()||e.includes("\0"))return;let n=Ed(e);if(process.platform==="win32"&&/^[a-z]:[^\\/]/i.test(n))return;let r=[],i=ve.resolve(t,n);for(;;){try{Ig.lstatSync(i)}catch(s){if(s.code!=="ENOENT")return;let a=ve.dirname(i);if(a===i)return;r.unshift(ve.basename(i)),i=a;continue}try{return ve.join(Ig.realpathSync.native(i),...r)}catch{return}}}function Qg(e,t){let n=ve.relative(t,e);if(!(!n||n.startsWith("..")||ve.isAbsolute(n)))return n.split(/[\\/]+/).map(r=>{let i=r.toLowerCase();if(process.platform!=="win32")return i;let s=i.indexOf(":");return(s>=0?i.slice(0,s):i).replace(/[ .]+$/g,"")}).join("/")}function zT(e,t=!1){return process.platform==="win32"&&(e=e.toLowerCase().split("/").map(n=>n.split(":")[0].replace(/[ .]+$/u,"")).join("/")),e==="memory-scopes"||e.startsWith("memory-scopes/")||t&&/^projects(?:\/[^/]+)?$/u.test(e)||/^projects\/[^/]+\/memory(?:\/|$)/u.test(e)}function UT(e,t=process.cwd(),n=Xt(),r=!1){let i=ve.resolve(n),s=ve.resolve(t,Ed(e)),a=zr(i)??i,c=zr(e,t),d=[[s,i]];return c&&d.push([c,a]),d.some(([l,f])=>r&&jt(f,l)?!0:jt(l,f)?zT(ve.relative(f,l).replaceAll("\\","/"),r):!1)}function Ag(e,t=process.cwd()){let n;try{n=Xt()}catch{return!1}if(UT(e,t,n))return!0;let r=ve.resolve(n),i=ve.resolve(t,Ed(e));if(jt(i,r)){let d=Qg(i,r);if($g(d))return!0}let s=zr(n)??r,a=zr(e,t);if(a===void 0)return jt(i,r);if(!jt(a,s))return!1;let c=Qg(a,s);return $g(c)}function $g(e){return e===void 0||e==="runtime"||e.startsWith("runtime/")||e==="processes"||e.startsWith("processes/")||e==="learned"||e.startsWith("learned/")}var Rd=p(()=>{"use strict";Qo();o(Ed,"expandHome");o(zr,"canonicalizeAgentHomePolicyPath");o(Qg,"normalizedRelative");o(zT,"isGovernedMemoryRelativePath");o(UT,"isGovernedMemoryMutationTarget");o(Ag,"isAgentHomeHardMutationTarget");o($g,"isHardAgentHomeRelativePath")});function VT(){let e=process.env.KODAX_PATH_KEY_PLATFORM;return e==="win32"?!0:e==="posix"?!1:process.platform==="win32"}function Cg(e){if(typeof e!="string"||e.length===0)return"";let t=e.replace(/\\/g,"/");return t.startsWith("//")?t="//"+t.slice(2).replace(/\/+/g,"/"):t=t.replace(/\/+/g,"/"),VT()?t=t.toLowerCase():t.length>=2&&/^[A-Za-z]:/.test(t)&&(t=t[0].toLowerCase()+t.slice(1)),t.length>1&&t.endsWith("/")&&(t=t.replace(/\/+$/g,"")),t}async function Id(e,t){let n=Cg(e),i=($o.get(n)??Promise.resolve()).catch(()=>{}).then(t),s=i.catch(()=>{}).finally(()=>{$o.get(n)===s&&$o.delete(n)});return $o.set(n,s),i}var $o,Qd=p(()=>{"use strict";Rd();$o=new Map;o(VT,"isWindowsPathPlatform");o(Cg,"normalizePathForKey");o(Id,"withPathMutation")});function $d(e,t){return Id(e,async()=>{if(Ag(e))throw new Error(`Mutation targets protected KodaX state: ${e}`);return t()})}var Mg=p(()=>{"use strict";Rd();Qd();Qd();o($d,"withFileMutation")});import{AsyncLocalStorage as YT}from"node:async_hooks";import Ze from"fs/promises";import Cd from"path";async function le(e,t){try{let n=await Ze.readFile(e,"utf8"),r=JSON.parse(n);return t&&!t(r)?null:r}catch{return null}}function Te(e,t){process.env.KODAX_DEBUG_REPO_INTELLIGENCE&&F({source:"coding:repo-intelligence",level:"debug",message:e,...t!==void 0?{detail:t}:{}})}function Ur(e){return GT.getStore()?.trim()||process.env.KODAX_REPO_INTELLIGENCE_STORAGE_DIR?.trim()||e}function KT(e){return Ad=(Ad+1)%Number.MAX_SAFE_INTEGER,`${e}.${process.pid}.${Date.now()}.${Ad}.tmp`}async function JT(e,t){for(let r=1;;r+=1)try{await Ze.rename(e,t);return}catch(i){let s=i?.code;if(r>=5||!s||!HT.has(s))throw i;await new Promise(a=>setTimeout(a,r*20))}}async function Ke(e,t){await $d(e,async()=>{let n=Cd.dirname(e);await Ze.mkdir(n,{recursive:!0});let r=KT(e);try{await Ze.writeFile(r,`${JSON.stringify(t,null,2)}
689
+ `,"utf8"),await JT(r,e)}catch(i){throw await Ze.rm(r,{force:!0}).catch(()=>{}),i}await eE(n,Cd.basename(e)).catch(()=>{})})}async function Ao(e){await $d(e,async()=>{await Ze.mkdir(e,{recursive:!0})})}async function eE(e,t){let n=`${t}.`,r=Date.now(),i=await Ze.readdir(e);await Promise.all(i.filter(s=>s.startsWith(n)&&ZT.test(s.slice(n.length))).map(async s=>{let a=Cd.join(e,s);try{let c=await Ze.stat(a);r-c.mtimeMs>=BT&&await Ze.rm(a,{force:!0})}catch{}}))}var GT,BT,ZT,Ad,HT,Co=p(()=>{"use strict";Qo();Mg();GT=new YT;o(le,"safeReadJson");o(Te,"debugLogRepoIntelligence");o(Ur,"resolveRepoIntelligenceStorageDir");BT=3600*1e3,ZT=/^\d+\.\d+(?:\.\d+)?\.tmp$/,Ad=0;o(KT,"nextAtomicTempPath");HT=new Set(["EPERM","EBUSY","EACCES"]);o(JT,"renameWithRetry");o(Ke,"writeJsonFileAtomic");o(Ao,"ensureRepoIntelligenceStorageDir");o(eE,"sweepStaleTempFiles")});import en from"fs/promises";import A from"path";import{createHash as Xd}from"node:crypto";import{execFile as tE}from"child_process";import{promisify as nE}from"util";function tn(e){return typeof e=="object"&&e!==null}function hE(e){return tn(e)&&typeof e.id=="string"&&typeof e.label=="string"&&typeof e.kind=="string"&&typeof e.root=="string"&&typeof e.fileCount=="number"&&Array.isArray(e.manifests)&&Array.isArray(e.sampleFiles)}function gE(e){return tn(e)&&typeof e.schemaVersion=="number"&&typeof e.workspaceRoot=="string"&&(e.source==="git"||e.source==="filesystem")&&typeof e.generatedAt=="string"&&typeof e.truncated=="boolean"&&tn(e.fileStats)&&typeof e.fileStats.totalFiles=="number"&&typeof e.fileStats.sourceFiles=="number"&&typeof e.fileStats.docFiles=="number"&&typeof e.fileStats.testFiles=="number"&&typeof e.fileStats.configFiles=="number"&&Array.isArray(e.manifests)&&Array.isArray(e.keyDocs)&&Array.isArray(e.entryHints)&&Array.isArray(e.areas)&&e.areas.every(t=>hE(t))}function OE(e){return tn(e)&&typeof e.schemaVersion=="number"&&typeof e.workspaceRoot=="string"&&typeof e.overviewGeneratedAt=="string"&&(e.source==="git"||e.source==="filesystem")&&Array.isArray(e.allFiles)&&e.allFiles.every(t=>typeof t=="string")&&Array.isArray(e.sourceFiles)&&e.sourceFiles.every(t=>typeof t=="string")}function yE(e){return tn(e)&&(e.branch===void 0||typeof e.branch=="string")&&(e.head===void 0||typeof e.head=="string")&&(e.hasUncommittedChanges===void 0||typeof e.hasUncommittedChanges=="boolean")}function wE(e){return tn(e)&&typeof e.schemaVersion=="number"&&typeof e.generatedAt=="string"&&typeof e.workspaceRoot=="string"&&(e.git===null||yE(e.git))&&(e.snapshotKind==="clean"||e.snapshotKind==="dirty")&&(e.head===void 0||typeof e.head=="string")&&(e.branch===void 0||typeof e.branch=="string")&&(e.dirtyPathsFingerprint===void 0||typeof e.dirtyPathsFingerprint=="string")&&(e.dirtySemanticFingerprint===void 0||typeof e.dirtySemanticFingerprint=="string")}async function ue(e,t){return await ja({cwd:t}),(await rE("git",e,{cwd:t,timeout:sE,windowsHide:!0,maxBuffer:8*1024*1024})).stdout.toString()}async function Vr(e){try{return await en.access(e),!0}catch{return!1}}async function Nd(e){let t=jo(e);return await Ao(t),t}function L(e){return e.replace(/\\/g,"/").replace(/^\.\//,"")}function Bg(e){let t=Xd("sha256");for(let n of Array.from(e,r=>L(r)).sort((r,i)=>r.localeCompare(i)))t.update(n),t.update("|");return t.digest("hex")}function SE(e){return fE.has(A.posix.basename(L(e)))}function bE(e,t){if(e.length!==t.length)return!1;for(let n=0;n<e.length;n+=1)if(L(e[n]??"")!==L(t[n]??""))return!1;return!0}function nn(e){let t=L(e);return t===".agent"||t===".kodax"||aE.some(n=>t.startsWith(n))}async function vE(e){try{let t=(await ue(["rev-parse","--show-toplevel"],e)).trim();if(t)return{workspaceRoot:A.resolve(t),source:"git"}}catch{}return{workspaceRoot:A.resolve(e),source:"filesystem"}}async function kE(e){try{return(await en.stat(e)).isDirectory()?e:A.dirname(e)}catch{return e}}async function xE(e){let t=(await ue(["ls-files","-z"],e)).split("\0").filter(Boolean),n=(await ue(["ls-files","--others","--exclude-standard","-z"],e)).split("\0").filter(Boolean),r=Array.from(new Set([...t,...n].map(L).filter(i=>!nn(i))));return{files:r.slice(0,St),truncated:r.length>St}}async function Xg(e){let t=[],n=!1;async function r(i){if(t.length>=St){n=!0;return}let s=await en.readdir(i,{withFileTypes:!0});for(let a of s){if(t.length>=St){n=!0;return}if(a.isDirectory()){if(mE.has(a.name))continue;await r(A.join(i,a.name));continue}if(!a.isFile())continue;let c=L(A.relative(e,A.join(i,a.name)));nn(c)||t.push(c)}}return o(r,"walk"),await r(e),{files:t,truncated:n}}function PE(e){let t=L(e).toLowerCase();return t.split("/").some(r=>dE.has(r))?!0:/\.(test|spec)\.[^.]+$/.test(t)}function Xn(e){let t=L(e),n=A.extname(t).toLowerCase(),r=A.posix.basename(t);return Wd.has(r)?"config":t.startsWith("docs/")||Gg.has(t)||Yg.has(n)?"docs":PE(t)?"tests":cE.has(n)?"source":"other"}async function Zg(e,t){if(t===".")return"Workspace Root";let n=A.join(e,t,"package.json"),r=A.join(e,t,"pyproject.toml"),i=A.join(e,t,"Cargo.toml");if(await Vr(n))try{let s=JSON.parse(await en.readFile(n,"utf8"));if(s.name?.trim())return s.name.trim()}catch{}for(let s of[r,i])if(await Vr(s))try{let c=(await en.readFile(s,"utf8")).match(/^\s*name\s*=\s*["']([^"']+)["']/m);if(c?.[1])return c[1]}catch{}return A.posix.basename(t)}async function _E(e,t){let n=new Map;for(let i of t){let a=L(i).split("/");if(a.length===1){n.set(".","root");continue}if(uE.has(a[0]??"")&&a[1]){n.set(`${a[0]}/${a[1]}`,"package");continue}let c=lE.get(a[0]??"");c&&n.set(a[0],c)}n.size===0&&n.set(".","root");let r=[];for(let[i,s]of Array.from(n.entries()).sort((a,c)=>a[0].localeCompare(c[0]))){let a=i==="."?"":`${i}/`,c=t.filter(l=>i==="."?!l.includes("/"):l===i||l.startsWith(a)).sort((l,f)=>l.localeCompare(f)),d=c.filter(l=>!(i==="."?l:l.slice(a.length)).includes("/")&&Wd.has(A.posix.basename(l)));r.push({id:i,label:await Zg(e,i),kind:s,root:i,fileCount:c.length,manifests:d.slice(0,jd),sampleFiles:c.slice(0,jd)})}return r.sort((i,s)=>s.fileCount!==i.fileCount?s.fileCount-i.fileCount:i.root.localeCompare(s.root))}async function jg(e,t){if(t==="git")try{let[n,r,i]=await Promise.all([ue(["branch","--show-current"],e),ue(["rev-parse","HEAD"],e),ue(["status","--short"],e)]);return{branch:n.trim()||void 0,head:r.trim()||void 0,hasUncommittedChanges:i.trim().length>0}}catch{return}}async function Yr(e,t){if(t==="git")try{return await xE(e)}catch{return Xg(e)}return Xg(e)}async function Mo(e,t){let n=await Hg(e,zg);return!n||n.schemaVersion!==he||t&&n.overviewGeneratedAt!==t?null:n}async function Wg(e){let n=(await ue(["status","--porcelain=v1","-z","--untracked-files=all"],e)).split("\0"),r=new Set;for(let i=0;i<n.length;i+=1){let s=n[i];if(!s||s.length<4)continue;let a=s.slice(0,2),c=L(s.slice(3));if(c&&!nn(c)&&r.add(c),a.includes("R")||a.includes("C")){let d=L(n[i+1]??"");d&&!nn(d)&&r.add(d),i+=1}}return Array.from(r).sort((i,s)=>i.localeCompare(s))}async function Kg(e,t){return le(jo(e,t),gE)}async function Hg(e,t){return le(jo(e,t),OE)}async function TE(e){return le(jo(e,Lg),wE)}async function EE(e,t){let n=Xd("sha256");n.update(Bg(t));for(let r of t){let i=A.join(e,r);n.update(r),n.update(":");try{if(await en.stat(i),n.update("present:"),SE(r)){let s=await en.readFile(i,"utf8");n.update(Xd("sha256").update(s).digest("hex"))}}catch(s){let a=tn(s)&&typeof s.code=="string"?s.code:void 0;n.update(a==="ENOENT"?"missing":"unreadable")}n.update("|")}return n.digest("hex")}async function Ng(e,t){let n=t.map(r=>L(r)).sort((r,i)=>r.localeCompare(i));return{dirtyPaths:n,dirtyPathsFingerprint:Bg(n),dirtySemanticFingerprint:await EE(e,n)}}async function RE(e,t,n){let r=new Set(t.map(i=>L(i)));for(let i of n){let s=A.join(e,i);await Vr(s)?r.add(i):r.delete(i)}return Array.from(r).sort((i,s)=>i.localeCompare(s))}async function Jg(e,t,n,r,i){let s=n.map(c=>L(c)),a={schemaVersion:he,workspaceRoot:e,source:t,generatedAt:new Date().toISOString(),truncated:r,git:i,fileStats:{totalFiles:s.length,sourceFiles:s.filter(c=>Xn(c)==="source").length,docFiles:s.filter(c=>Xn(c)==="docs").length,testFiles:s.filter(c=>Xn(c)==="tests").length,configFiles:s.filter(c=>Xn(c)==="config").length},manifests:s.filter(c=>Wd.has(A.posix.basename(c))).slice(0,12),keyDocs:s.filter(c=>Gg.has(c)||/^README/i.test(A.posix.basename(c))&&Yg.has(A.extname(c).toLowerCase())).slice(0,8),entryHints:s.filter(c=>pE.includes(A.posix.basename(c))).slice(0,8),areas:await _E(e,s)};return{overview:a,inventory:{schemaVersion:he,workspaceRoot:e,overviewGeneratedAt:a.generatedAt,source:t,allFiles:[...s].sort((c,d)=>c.localeCompare(d)),sourceFiles:s.filter(c=>Xn(c)==="source").sort((c,d)=>c.localeCompare(d))}}}async function eO(e,t,n,r={}){let i={schemaVersion:he,generatedAt:t.generatedAt,workspaceRoot:t.workspaceRoot,git:t.git??null,snapshotKind:t.source==="git"&&t.git?.hasUncommittedChanges===!0?"dirty":"clean",head:t.git?.head,branch:t.git?.branch,dirtyPathsFingerprint:r.dirtyIdentity?.dirtyPathsFingerprint,dirtySemanticFingerprint:r.dirtyIdentity?.dirtySemanticFingerprint};await Ke(A.join(e,Lg),i),await Ke(A.join(e,qg),t),await Ke(A.join(e,zg),n),r.writeBaseline===!0&&(await Ke(A.join(e,Ug),t),await Ke(A.join(e,Vg),n))}function IE(e,t,n){return!!(n?.hasUncommittedChanges===!0&&e&&t&&e.schemaVersion===he&&t.schemaVersion===he&&e.source==="git"&&t.source==="git"&&e.git?.hasUncommittedChanges!==!0&&e.git?.head&&e.git?.head===n.head&&e.git?.branch===n.branch&&t.workspaceRoot===e.workspaceRoot&&t.overviewGeneratedAt===e.generatedAt)}function QE(e,t,n,r){return!!(e&&t&&e.schemaVersion===he&&t.schemaVersion===he&&e.source==="git"&&e.generatedAt===t.generatedAt&&e.workspaceRoot===t.workspaceRoot&&t.snapshotKind==="dirty"&&n?.hasUncommittedChanges===!0&&t.head===n.head&&t.branch===n.branch&&t.dirtyPathsFingerprint===r.dirtyPathsFingerprint&&t.dirtySemanticFingerprint===r.dirtySemanticFingerprint)}async function $E(e,t,n){let r=await Kg(e,Ug),i=await Hg(e,Vg);if(!IE(r,i,t))return null;let s=i,{dirtyPaths:a}=n,c=new Set(s.allFiles);if(r.truncated)for(let k of a){let O=A.join(e,k);if(!c.has(k)||await Vr(O)===!1)return null}let d=new Set(c);for(let k of a){let O=A.join(e,k);await Vr(O)?d.add(k):d.delete(k)}let l=Array.from(d).sort((k,O)=>k.localeCompare(O)),f=r.truncated||l.length>St,u=f?l.slice(0,St):l,{overview:m,inventory:g}=await Jg(e,"git",u,f,t),w=await Nd(e);return await eO(w,m,g,{dirtyIdentity:n}),m}async function AE(e,t,n,r,i){if(!t||!n||t.schemaVersion!==he||t.source!=="filesystem"||n.schemaVersion!==he||n.source!=="filesystem"||n.workspaceRoot!==e||n.overviewGeneratedAt!==t.generatedAt||t.truncated!==i)return!1;let s=r.map(a=>L(a)).sort((a,c)=>a.localeCompare(c));if(!bE(n.allFiles,s))return!1;for(let a of t.areas)if(await Zg(e,a.root)!==a.label)return!1;return!0}async function Md(e,t,n,r,i){let{files:s,truncated:a}=i??await Yr(e,t),c=t==="git"&&r?.dirtyPaths.length?await RE(e,s,r.dirtyPaths):s.map(g=>L(g)),d=a||c.length>St,l=d?c.slice(0,St):c,f=await Nd(e),{overview:u,inventory:m}=await Jg(e,t,l,d,n);return await eO(f,u,m,{writeBaseline:t==="git"&&n?.hasUncommittedChanges!==!0,dirtyIdentity:r}),{workspaceRoot:e,source:t,overview:u,inventory:m,dirtyPaths:r?.dirtyPaths}}async function rn(e,t={}){let n=Eg(e),r=await kE(t.targetPath?A.resolve(n,t.targetPath):n),{workspaceRoot:i,source:s}=await vE(r),a=await Kg(i,qg),c=await TE(i),d,l;if(!t.refresh){if(d=await jg(i,s),s!=="git"){let u=a?.schemaVersion===he?await Mo(i,a.generatedAt):null,m=await Yr(i,s);return await AE(i,a,u,m.files,m.truncated)?{workspaceRoot:i,source:s,overview:a,inventory:u}:Md(i,s,d,void 0,m)}if(s==="git"&&a?.schemaVersion===he&&a.source==="git"&&d?.hasUncommittedChanges!==!0&&a.git?.head===d?.head&&a.git?.branch===d?.branch&&a.git?.hasUncommittedChanges===d?.hasUncommittedChanges&&a)return{workspaceRoot:i,source:s,overview:a,inventory:await Mo(i,a.generatedAt)};if(s==="git"&&d?.hasUncommittedChanges===!0){let u=await Wg(i).catch(m=>(Te("Could not collect dirty workspace paths for repo overview.",m),null));if(u){if(l=await Ng(i,u),QE(a,c,d,l))return{workspaceRoot:i,source:s,overview:a,inventory:await Mo(i,a.generatedAt),dirtyPaths:l.dirtyPaths};let m=await $E(i,d,l);if(m)return{workspaceRoot:i,source:s,overview:m,inventory:await Mo(i,m.generatedAt),dirtyPaths:l.dirtyPaths}}}return Md(i,s,d,l)}if(d=await jg(i,s),s==="git"&&d?.hasUncommittedChanges===!0){let f=await Wg(i).catch(u=>(Te("Could not collect dirty workspace paths for refreshed repo overview.",u),null));f&&(l=await Ng(i,f))}return Md(i,s,d,l)}function Dg(e){return e.includes("R")?"renamed":e.includes("D")?"deleted":e.includes("A")?"added":e==="??"?"untracked":"modified"}function CE(e){if(e.length<4)return null;let t=e.slice(0,2),n=L(e.slice(3)),r=t[0]!==" "&&t[0]!=="?",i=t[1]!==" "&&t[1]!=="?";return{status:t,path:n,staged:r,unstaged:i||t==="??"}}function ME(e,t){return e?t==="staged"?e.staged:t==="unstaged"?e.unstaged:e.staged||e.unstaged:!1}function Fg(e,t){let n=L(e),r=[...t].sort((i,s)=>s.root.length-i.root.length);for(let i of r)if(i.root!=="."&&(n===i.root||n.startsWith(`${i.root}/`)))return i;return t.find(i=>i.root===".")??{id:".",label:"Workspace Root",kind:"root",root:".",fileCount:0,manifests:[],sampleFiles:[]}}function XE(e,t){let n=[];t.length>1&&n.push(`Cross-area change touches ${t.length} areas.`);let r=e.filter(s=>s.category==="config").map(s=>s.path);return r.length>0&&n.push(`Config or manifest changes detected: ${r.slice(0,4).join(" | ")}.`),e.length>0&&e.every(s=>s.category==="docs"||s.category==="tests")&&n.push("Changes are currently limited to docs/tests; implementation files are untouched."),e.some(s=>s.areaId===".")&&n.push("Workspace-root files changed; validate repo-wide implications."),n}async function jE(e,t,n){if(t==="compare"){let a=n?.trim()||"HEAD~1";if(!a||a.startsWith("-")||/[\u0000-\u001f\s]/.test(a))throw new Error(`Invalid base ref "${a}".`);try{await ue(["rev-parse","--verify","--quiet",`${a}^{commit}`],e)}catch(f){throw Te(`Rejected compare base ref "${a}".`,f),new Error(`Could not resolve base ref "${a}".`)}let d=(await ue(["diff","--name-status","-z",`${a}...HEAD`],e)).split("\0"),l=[];for(let f=0;f<d.length-1;){let u=d[f++],m=d[f++];(u.startsWith("R")||u.startsWith("C"))&&(m=d[f++]);let g=L(m);nn(g)||l.push({path:g,status:Dg(u)})}return l}let i=(await ue(["status","--porcelain=v1","-z","--untracked-files=all"],e)).split("\0"),s=new Map;for(let a=0;a<i.length;a+=1){let c=CE(i[a]);c&&((c.status.includes("R")||c.status.includes("C"))&&(a+=1),!(!ME(c,t)||nn(c.path))&&s.set(c.path,{path:c.path,status:Dg(c.status)}))}return Array.from(s.values())}async function WE(e,t,n){let r="";if(t==="compare"){let a=n?.trim()||"HEAD~1";r=await ue(["diff","--numstat",`${a}...HEAD`],e)}else t==="staged"?r=await ue(["diff","--cached","--numstat"],e):t==="unstaged"?r=await ue(["diff","--numstat"],e):r=await ue(["diff","--numstat","HEAD"],e);let i=0,s=0;for(let a of r.split(/\r?\n/)){let c=a.trim();if(!c)continue;let d=c.match(/^(\d+|-)\s+(\d+|-)\s+(.+)$/);if(!d)continue;let[,l,f,u]=d,m=L(u.split(" -> ").pop()??u);if(nn(m))continue;let g=l==="-"?0:Number.parseInt(l,10),w=f==="-"?0:Number.parseInt(f,10);Number.isFinite(g)&&(i+=g),Number.isFinite(w)&&(s+=w)}return{changedLineCount:i+s,addedLineCount:i,deletedLineCount:s}}async function Xo(e,t={}){let n=t.scope??"all",r=e.overview;if(r.source!=="git")throw new Error("changed_scope requires a git-backed workspace.");let i=await jE(r.workspaceRoot,n,t.baseRef),s=await WE(r.workspaceRoot,n,t.baseRef).catch(u=>(Te("Changed scope could not load line stats.",u),{changedLineCount:0,addedLineCount:0,deletedLineCount:0})),a=i.map(u=>{let m=Fg(u.path,r.areas);return{path:u.path,status:u.status,category:Xn(u.path),areaId:m.id}}),c=new Map;for(let u of a){let m=Fg(u.path,r.areas),g=c.get(m.id)??{areaId:m.id,label:m.label,root:m.root,kind:m.kind,fileCount:0,files:[]};c.set(m.id,{...g,fileCount:g.fileCount+1,files:g.files.length<jd?[...g.files,u.path]:g.files})}let d={source:0,docs:0,tests:0,config:0,other:0};for(let u of a)d[u.category]+=1;let l={schemaVersion:he,workspaceRoot:r.workspaceRoot,analyzedAt:new Date().toISOString(),scope:n,baseRef:n==="compare"?t.baseRef?.trim()||"HEAD~1":void 0,overviewGeneratedAt:r.generatedAt,totalChangedFiles:a.length,changedLineCount:s.changedLineCount,addedLineCount:s.addedLineCount,deletedLineCount:s.deletedLineCount,categories:d,areasTouched:Array.from(c.values()).sort((u,m)=>m.fileCount!==u.fileCount?m.fileCount-u.fileCount:u.root.localeCompare(m.root)),files:a,riskHints:XE(a,Array.from(c.values()))},f=await Nd(r.workspaceRoot);return await Ke(A.join(f,oE),l),l}function NE(){return Ur(iE)}function jo(e,...t){let n=NE(),r=A.isAbsolute(n)?n:A.join(e,n);return A.join(r,...t)}var rE,iE,Lg,qg,zg,Ug,Vg,oE,he,St,jd,sE,aE,cE,Yg,dE,lE,uE,Wd,fE,Gg,pE,mE,tO=p(()=>{"use strict";Qo();Rg();Co();rE=nE(tE),iE=A.join(".agent","repo-intelligence"),Lg="manifest.json",qg="repo-overview.json",zg="repo-overview-inventory.json",Ug="repo-overview-baseline.json",Vg="repo-overview-inventory-baseline.json",oE="changed-scope.json",he=3,St=12e3,jd=3,sE=5e3,aE=[".agent/",".kodax/"],cE=new Set([".ts",".tsx",".js",".jsx",".mjs",".cjs",".py",".java",".go",".rs",".cpp",".cc",".cxx",".c",".hpp",".h",".cs",".rb",".php",".swift",".kt",".kts",".scala",".sh"]),Yg=new Set([".md",".mdx",".rst",".txt"]),dE=new Set(["test","tests","__tests__","__mocks__","spec","specs"]),lE=new Map([["docs","docs"],["test","tests"],["tests","tests"],["scripts","scripts"],["bin","scripts"],["tools","scripts"],["src","directory"],["server","directory"],["client","directory"],["web","directory"],["api","directory"],["cmd","directory"],["examples","directory"],["example","directory"]]),uE=new Set(["packages","apps","libs","services"]),Wd=new Set(["package.json","package-lock.json","pnpm-lock.yaml","pnpm-workspace.yaml","yarn.lock","tsconfig.json","tsconfig.build.json","vitest.config.ts","vitest.config.js","vite.config.ts","vite.config.js","pyproject.toml","requirements.txt","Cargo.toml","Cargo.lock","go.mod","go.sum","pom.xml","build.gradle","build.gradle.kts","Makefile","Dockerfile"]),fE=new Set(["package.json","pyproject.toml","Cargo.toml"]),Gg=new Set(["README.md","README_CN.md","AGENTS.md","CLAUDE.md","docs/HLD.md","docs/PRD.md","docs/ADR.md","docs/DD.md","docs/FEATURE_LIST.md"]),pE=["index.ts","index.js","main.ts","main.js","app.ts","app.js","server.ts","server.js","cli.ts","cli.js","kodax_cli.ts","main.py"],mE=new Set([".git",".agent",".kodax","node_modules","dist","build","coverage",".next",".turbo","target","__pycache__",".venv","venv"]);o(tn,"isRecord");o(hE,"isRepoAreaOverview");o(gE,"isRepoOverviewPayload");o(OE,"isRepoOverviewInventoryPayload");o(yE,"isGitSummaryPayload");o(wE,"isRepoOverviewManifestPayload");o(ue,"runGit");o(Vr,"exists");o(Nd,"ensureStorageDir");o(L,"normalizeRelativePath");o(Bg,"computePathFingerprint");o(SE,"isAreaLabelSensitiveManifestPath");o(bE,"sameNormalizedPathList");o(nn,"isManagedMetadataPath");o(vE,"resolveWorkspaceRoot");o(kE,"resolveTargetDirectory");o(xE,"listGitFiles");o(Xg,"walkFilesystemFiles");o(PE,"isTestFile");o(Xn,"classifyFileCategory");o(Zg,"readAreaLabel");o(_E,"buildAreas");o(jg,"getGitSummary");o(Yr,"collectWorkspaceFilesForSource");o(Mo,"readRepoOverviewInventory");o(Wg,"collectWorkspaceDirtyPaths");o(Kg,"readStoredRepoOverview");o(Hg,"readStoredRepoOverviewInventory");o(TE,"readStoredRepoOverviewManifest");o(EE,"computeDirtySemanticFingerprint");o(Ng,"buildDirtyOverviewIdentity");o(RE,"applyDirtyPathPatchToFiles");o(Jg,"buildRepoOverviewArtifacts");o(eO,"writeRepoOverviewArtifacts");o(IE,"canUseOverviewBaseline");o(QE,"canDirectReuseDirtyOverview");o($E,"tryBuildDirtyRepoOverviewFromBaseline");o(AE,"canDirectReuseFilesystemOverview");o(Md,"buildRepoOverviewSnapshotForWorkspace");o(rn,"resolveRepoOverviewSnapshot");o(Dg,"resolveChangedStatus");o(CE,"parsePorcelainEntry");o(ME,"includesCandidate");o(Fg,"findAreaForFile");o(XE,"buildRiskHints");o(jE,"collectChangedFiles");o(WE,"collectChangedLineStats");o(Xo,"analyzeChangedScopeFromSnapshot");o(NE,"getRepoIntelligenceDir");o(jo,"resolveRepoIntelligencePath")});var Wo=p(()=>{"use strict";tO();Co()});import DE from"fs/promises";import Gr from"path";import{createHash as No}from"node:crypto";function Ne(e){return typeof e=="object"&&e!==null}function Nn(e){return Ne(e)&&typeof e.schemaVersion=="number"&&typeof e.workspaceRoot=="string"&&typeof e.generatedAt=="string"&&typeof e.overviewGeneratedAt=="string"&&typeof e.sourceFileCount=="number"&&typeof e.sourceFingerprint=="string"&&Array.isArray(e.languages)&&Array.isArray(e.modules)&&Array.isArray(e.symbols)&&Array.isArray(e.processes)}function sO(e){return e==="typescript"||e==="javascript"||e==="python"||e==="java"||e==="go"||e==="rust"||e==="cpp"||e==="unknown"}function LE(e){return e==="high"||e==="medium"||e==="low"}function qE(e){return e==="function"||e==="class"||e==="interface"||e==="type"||e==="enum"||e==="struct"||e==="trait"||e==="method"||e==="constant"}function zE(e){return Ne(e)&&sO(e.language)&&LE(e.capabilityTier)&&typeof e.fileCount=="number"}function UE(e){return Ne(e)&&typeof e.filePath=="string"&&typeof e.fileFingerprint=="string"&&sO(e.language)&&typeof e.moduleId=="string"&&typeof e.analyzerVersion=="number"}function VE(e){return Ne(e)&&(e.source==="git"||e.source==="filesystem")&&(e.branch===void 0||typeof e.branch=="string")&&(e.head===void 0||typeof e.head=="string")&&(e.hasUncommittedChanges===void 0||typeof e.hasUncommittedChanges=="boolean")}function aO(e){return Ne(e)&&typeof e.schemaVersion=="number"&&typeof e.workspaceRoot=="string"&&typeof e.generatedAt=="string"&&typeof e.overviewGeneratedAt=="string"&&typeof e.overviewFingerprint=="string"&&VE(e.workspaceSnapshot)&&typeof e.sourceFileCount=="number"&&typeof e.sourceFingerprint=="string"&&Array.isArray(e.languageBreakdown)&&e.languageBreakdown.every(t=>zE(t))&&Array.isArray(e.sourceStates)&&e.sourceStates.every(t=>UE(t))}function YE(e){return Ne(e)&&typeof e.id=="string"&&typeof e.name=="string"&&typeof e.qualifiedName=="string"&&qE(e.kind)&&typeof e.line=="number"&&typeof e.signature=="string"&&typeof e.exported=="boolean"&&Array.isArray(e.calls)&&e.calls.every(t=>typeof t=="string")&&typeof e.confidence=="number"}function GE(e){return Ne(e)&&Array.isArray(e.importPaths)&&e.importPaths.every(t=>typeof t=="string")&&Array.isArray(e.symbols)&&e.symbols.every(t=>YE(t))}function cO(e){return Ne(e)&&typeof e.schemaVersion=="number"&&typeof e.workspaceRoot=="string"&&typeof e.generatedAt=="string"&&typeof e.sourceFingerprint=="string"&&Ne(e.analyses)&&Object.values(e.analyses).every(t=>t===null||GE(t))}function dO(e){return Ne(e)&&typeof e.schemaVersion=="number"&&typeof e.workspaceRoot=="string"&&(e.branch===void 0||typeof e.branch=="string")&&(e.head===void 0||typeof e.head=="string")&&typeof e.queryGeneratedAt=="string"&&typeof e.overviewFingerprint=="string"&&typeof e.sourceFingerprint=="string"&&typeof e.sourceFileCount=="number"&&typeof e.dirtyPathsFingerprint=="string"&&typeof e.dirtySourceFingerprint=="string"&&Array.isArray(e.dirtySourcePaths)&&e.dirtySourcePaths.every(t=>typeof t=="string")}function U(e){return e.replace(/\\/g,"/").replace(/^\.\//,"")}function ie(e){switch(Gr.extname(e).toLowerCase()){case".ts":case".tsx":return"typescript";case".js":case".jsx":case".mjs":case".cjs":return"javascript";case".py":return"python";case".java":return"java";case".go":return"go";case".rs":return"rust";case".cpp":case".cc":case".cxx":case".c":case".hpp":case".h":return"cpp";default:return"unknown"}}function fe(e){switch(e){case"typescript":case"javascript":case"python":case"go":case"rust":return"high";case"java":return"medium";default:return"low"}}function lO(e,t="full"){return(e==="typescript"||e==="javascript")&&t==="light"?2:1}function He(e){switch(e){case"high":return .86;case"medium":return .74;default:return .58}}function uO(e,t){if(e.length>0){let r=e.reduce((i,s)=>i+s.confidence,0);return Math.min(.95,Math.max(.32,r/e.length))}let n=t[0];return n?He(n.capabilityTier):.4}async function qo(e){try{return await DE.access(e),!0}catch{return!1}}async function zo(e,t="full"){let n=BE(),r=Gr.isAbsolute(n)?n:Gr.join(e,n),i=t==="light"?Gr.join(r,"light"):r;return await Ao(i),i}function fO(e,t,n){return No("sha256").update(U(e)).update(":").update(String(t)).update(":").update(String(Math.trunc(n))).digest("hex")}function Dn(e){let t=No("sha256");for(let n of e)t.update(n.filePath),t.update(":"),t.update(n.fileFingerprint),t.update("|");return t.digest("hex")}function Uo(e,t){let n=No("sha256");n.update(e.workspaceRoot),n.update("|"),n.update(e.source),n.update("|");for(let r of e.areas)n.update(r.id),n.update(":"),n.update(r.label),n.update(":"),n.update(r.kind),n.update(":"),n.update(r.root),n.update(":"),n.update(String(r.fileCount)),n.update(":"),n.update(r.manifests.join(",")),n.update(":"),n.update(r.sampleFiles.join(",")),n.update("|");for(let r of t)n.update(r),n.update("|");return n.digest("hex")}function Br(e){let t=No("sha256");for(let n of Array.from(e,r=>U(r)).sort((r,i)=>r.localeCompare(i)))t.update(n),t.update("|");return t.digest("hex")}function Vo(e){return{source:e.source,branch:e.git?.branch,head:e.git?.head,hasUncommittedChanges:e.git?.hasUncommittedChanges}}function Yo(e){return e.source==="git"&&e.hasUncommittedChanges!==!0}function Dd(e,t){return e.source===t.source&&e.branch===t.branch&&e.head===t.head&&e.hasUncommittedChanges===t.hasUncommittedChanges}function pO(e){return e.workspaceSnapshot.source!=="git"||Yo(e.workspaceSnapshot)}function mO(e){return(e.dirtyPaths??[]).filter(t=>e.sourceFileSet.has(t)).sort((t,n)=>t.localeCompare(n))}async function kt(e,t){return Ke(e,t)}function hO(e){let t=U(e).toLowerCase();return t.includes("/test/")||t.includes("/tests/")||t.includes("__tests__")||/\.(test|spec)\.[^.]+$/.test(t)}function gO(e){let t=U(e).toLowerCase();return t.startsWith("docs/")||t.endsWith(".md")||t.endsWith(".mdx")||t.endsWith(".rst")}function Re(e,t){let n=U(e),r=[...t].sort((i,s)=>s.root.length-i.root.length);for(let i of r)if(i.root!=="."&&(n===i.root||n.startsWith(`${i.root}/`)))return i;return t.find(i=>i.root===".")??{id:".",label:"Workspace Root",kind:"root",root:".",fileCount:0,manifests:[],sampleFiles:[]}}function ge(e,t=e.length){return Array.from(new Set(e.filter(Boolean))).slice(0,t)}function Zr(e,t){let n=[],r=e.split(/\r?\n/);for(let i of r){let s=null;if(t==="typescript"||t==="javascript"){s=/from\s+['"]([^'"]+)['"]/.exec(i)??/require\(\s*['"]([^'"]+)['"]\s*\)/.exec(i)??/^\s*import\s+['"]([^'"]+)['"]/.exec(i),s?.[1]&&n.push(s[1]);continue}if(t==="python"){if(s=/^\s*from\s+([A-Za-z0-9_\.]+)\s+import/.exec(i),s?.[1]){n.push(s[1]);continue}s=/^\s*import\s+(.+)$/.exec(i),s?.[1]&&n.push(...s[1].split(",").map(a=>a.trim().split(/\s+/)[0]??"").filter(Boolean));continue}if(t==="go"){s=/^\s*import\s+"([^"]+)"/.exec(i)??/^\s*"([^"]+)"/.exec(i),s?.[1]&&n.push(s[1]);continue}if(t==="rust"){s=/^\s*use\s+([^;]+);/.exec(i),s?.[1]&&n.push(s[1].trim());continue}if(t==="java"){s=/^\s*import\s+([^;]+);/.exec(i),s?.[1]&&n.push(s[1].trim());continue}t==="cpp"&&(s=/^\s*#include\s+[<"]([^">]+)[">]/.exec(i),s?.[1]&&n.push(s[1].trim()))}return ge(n,12)}function BE(){return Ur(FE)}var FE,bt,Do,Fo,Lo,nO,rO,iO,te,jn,vt,oO,Ee,Wn,De,xt=p(()=>{"use strict";Co();FE=Gr.join(".agent","repo-intelligence"),bt="repo-intelligence-index.json",Do="repo-intelligence-manifest.json",Fo="file-analysis-index.json",Lo="repo-intelligence-dirty-source-hint.json",nO="module-index.json",rO="symbol-index.json",iO="process-index.json",te=9,jn=512*1024,vt=40,oO=8,Ee=8,Wn=new Set([".ts",".tsx",".js",".jsx",".mjs",".cjs",".py",".java",".go",".rs",".cpp",".cc",".cxx",".c",".hpp",".h"]),De=new Set(["if","for","while","switch","catch","return","typeof","sizeof","new","function","class","def","await","yield","super","import","from"]);o(Ne,"isRecord");o(Nn,"isRepoIntelligenceIndexPayload");o(sO,"isRepoLanguageId");o(LE,"isLanguageCapabilityTier");o(qE,"isRepoSymbolKind");o(zE,"isRepoLanguageSupportPayload");o(UE,"isRepoSourceFileStatePayload");o(VE,"isRepoWorkspaceSnapshotPayload");o(aO,"isRepoIntelligenceManifestPayload");o(YE,"isCachedRepoSymbolRecordPayload");o(GE,"isCachedFileAnalysisEntryPayload");o(cO,"isFileAnalysisIndexPayload");o(dO,"isDirtySourceHintPayload");o(U,"normalizeRelativePath");o(ie,"languageFromFile");o(fe,"capabilityTierForLanguage");o(lO,"analyzerVersionForLanguage");o(He,"baseConfidenceForTier");o(uO,"computeModuleConfidence");o(qo,"exists");o(zo,"ensureStorageDir");o(fO,"computeFileFingerprint");o(Dn,"computeSourceFingerprint");o(Uo,"computeOverviewFingerprint");o(Br,"computePathFingerprint");o(Vo,"workspaceSnapshotFromOverview");o(Yo,"isCleanGitSnapshot");o(Dd,"sameWorkspaceSnapshot");o(pO,"shouldPersistRepoIntelligenceBaseline");o(mO,"getDirtySourcePathsForInputs");o(kt,"writeJsonFileAtomic");o(hO,"isTestFile");o(gO,"isDocFile");o(Re,"findAreaForFile");o(ge,"dedupeStrings");o(Zr,"extractImports");o(BE,"getRepoIntelligenceDir")});import Fd from"path";import ZE from"fs/promises";function OO(e,t){let n=new Map,r=new Map,i=new Map,s=new Map;for(let a of e){let c=Re(a,t);n.set(a,c);let d=r.get(c.id)??[];if(d.push(a),r.set(c.id,d),hO(a)){let l=i.get(c.id)??[];l.push(a),i.set(c.id,l)}if(gO(a)){let l=s.get(c.id)??[];l.push(a),s.set(c.id,l)}}return{areaByFile:n,filesByAreaId:r,testFilesByAreaId:i,docFilesByAreaId:s}}async function yO(e,t="full"){let n=e.workspaceRoot,r=await zo(n,t),i=Vo(e.overview),s=e.dirtyPaths?Array.from(new Set(e.dirtyPaths.map(f=>U(f)))).sort((f,u)=>f.localeCompare(u)):void 0,a=s?Br(s):void 0,c=(s??[]).filter(f=>Wn.has(Fd.extname(f).toLowerCase())).sort((f,u)=>f.localeCompare(u)),d=[];for(let f of c)await qo(Fd.join(n,f))&&d.push(f);let l=d.length>0?await Fn(n,d,new Map,e.overview.areas,t):void 0;return{analysisProfile:t,workspaceRoot:n,storageRoot:r,workspaceSnapshot:i,overviewGeneratedAt:e.overview.generatedAt,overviewFingerprint:Uo(e.overview,e.inventory?.allFiles??e.overview.areas.flatMap(f=>f.sampleFiles)),dirtyPaths:s,dirtyPathsFingerprint:a,dirtySourcePaths:c,dirtySourceStateMap:l,dirtySourceFingerprint:s?Dn(l?Array.from(l.values()).sort((f,u)=>f.filePath.localeCompare(u.filePath)):[]):void 0}}async function Ld(e,t,n,r,i="full"){let s=[];for(let a of t){let c=U(a),d=await ZE.stat(Fd.join(e,c)),l=ie(c);s.push({filePath:c,fileFingerprint:fO(c,d.size,d.mtimeMs),language:l,moduleId:n.get(c)?.id??Re(c,r).id,analyzerVersion:lO(l,i)})}return s.sort((a,c)=>a.filePath.localeCompare(c.filePath))}async function Fn(e,t,n,r,i="full"){let s=Array.from(new Set(Array.from(t,c=>U(c)))).sort((c,d)=>c.localeCompare(d)),a=await Ld(e,s,n,r,i);return new Map(a.map(c=>[c.filePath,c]))}function wO(e){return e?{importPaths:e.importPaths,symbols:e.symbols.map(t=>({id:t.id,name:t.name,qualifiedName:t.qualifiedName,kind:t.kind,line:t.line,signature:t.signature,exported:t.exported,calls:t.calls,confidence:t.confidence}))}:null}function SO(e,t,n){return n?{filePath:e,moduleId:t.moduleId,language:t.language,capabilityTier:fe(t.language),importPaths:n.importPaths,symbols:n.symbols.map(r=>({...r,filePath:e,moduleId:t.moduleId,language:t.language,capabilityTier:fe(t.language),importPaths:n.importPaths,callTargets:[]}))}:null}function qd(e){return{typeScriptFiles:e.filter(t=>on(ie(t))),pythonFiles:e.filter(t=>ie(t)==="python"),goFiles:e.filter(t=>ie(t)==="go"),rustFiles:e.filter(t=>ie(t)==="rust"),fallbackFiles:e.filter(t=>{let n=ie(t);return!on(n)&&n!=="python"&&n!=="go"&&n!=="rust"})}}function on(e){return e==="typescript"||e==="javascript"}var Kr=p(()=>{"use strict";xt();o(OO,"buildAreaFileLookups");o(yO,"buildRepoIntelligencePreflight");o(Ld,"collectSourceFileStates");o(Fn,"collectSourceFileStateMap");o(wO,"serializeCachedFileAnalysisEntry");o(SO,"hydrateCachedFileAnalysis");o(qd,"bucketSourceFiles");o(on,"isTypeScriptLikeLanguage")});function xO(e,t,n,r){switch(e){case-2:return n<t;case-1:return r>=t&&n<t;case 0:return n<t&&r>t;case 1:return n<=t&&r>t;case 2:return r>t;case 4:return!0}}function Jr(e,t,n,r){for(var i;e.from==e.to||(n<1?e.from>=t:e.from>t)||(n>-1?e.to<=t:e.to<t);){let a=!r&&e instanceof Fe&&e.index<0?null:e.parent;if(!a)return e;e=a}let s=r?0:q.IgnoreOverlays;if(r)for(let a=e,c=a.parent;c;a=c,c=a.parent)a instanceof Fe&&a.index<0&&((i=c.enter(t,n,s))===null||i===void 0?void 0:i.from)!=a.from&&(e=c);for(;;){let a=e.enter(t,n,s);if(!a)return e;e=a}}function vO(e,t,n,r){let i=e.cursor(),s=[];if(!i.firstChild())return s;if(n!=null){for(let a=!1;!a;)if(a=i.type.is(n),!i.nextSibling())return s}for(;;){if(r!=null&&i.type.is(r))return s;if(i.type.is(t)&&s.push(i.node),!i.nextSibling())return r==null?s:[]}}function Ud(e,t,n=t.length-1){for(let r=e;n>=0;r=r.parent){if(!r)return!1;if(!r.type.isAnonymous){if(t[n]&&t[n]!=r.name)return!1;n--}}return!0}function PO(e){if(!e.length)return null;let t=0,n=e[0];for(let s=1;s<e.length;s++){let a=e[s];(a.from>n.from||a.to<n.to)&&(n=a,t=s)}let r=n instanceof Fe&&n.index<0?null:n.parent,i=e.slice();return r?i[t]=r:i.splice(t,1),new Yd(i,n)}function JE(e,t,n){let r=e.resolveInner(t,n),i=null;for(let s=r instanceof Fe?r:r.context.parent;s;s=s.parent)if(s.index<0){let a=s.parent;(i||(i=[r])).push(a.resolve(t,n)),s=a}else{let a=sn.get(s.tree);if(a&&a.overlay&&a.overlay[0].from<=t&&a.overlay[a.overlay.length-1].to>=t){let c=new Fe(a.tree,a.overlay[0].from+s.from,-1,s);(i||(i=[r])).push(Jr(c,t,n,!1))}}return i?PO(i):r}function Bd(e){return e.children.some(t=>t instanceof Pt||!t.type.isAnonymous||Bd(t))}function eR(e){var t;let{buffer:n,nodeSet:r,maxBufferLength:i=1024,reused:s=[],minRepeatType:a=r.types.length}=e,c=Array.isArray(n)?new zd(n,n.length):n,d=r.types,l=0,f=0;function u(_,S,v,R,I,C){let{id:$,start:Q,end:X,size:D}=c,Y=f,at=l;if(D<0)if(c.next(),D==-1){let Ue=s[$];v.push(Ue),R.push(Q-_);return}else if(D==-3){l=$;return}else if(D==-4){f=$;return}else throw new RangeError(`Unrecognized record size: ${D}`);let Bn=d[$],ui,Ct,Dl=Q-_;if(X-Q<=i&&(Ct=O(c.pos-S,I))){let Ue=new Uint16Array(Ct.size-Ct.skip),we=c.pos-Ct.size,Ae=Ue.length;for(;c.pos>we;)Ae=y(Ct.start,Ue,Ae);ui=new Pt(Ue,X-Ct.start,r),Dl=Ct.start-_}else{let Ue=c.pos-D;c.next();let we=[],Ae=[],Mt=$>=a?$:-1,dn=0,fi=X;for(;c.pos>Ue;)Mt>=0&&c.id==Mt&&c.size>=0?(c.end<=fi-i&&(w(we,Ae,Q,dn,c.end,fi,Mt,Y,at),dn=we.length,fi=c.end),c.next()):C>2500?m(Q,Ue,we,Ae):u(Q,Ue,we,Ae,Mt,C+1);if(Mt>=0&&dn>0&&dn<we.length&&w(we,Ae,Q,dn,Q,fi,Mt,Y,at),we.reverse(),Ae.reverse(),Mt>-1&&dn>0){let Fl=g(Bn,at);ui=Zd(Bn,we,Ae,0,we.length,0,X-Q,Fl,Fl)}else ui=k(Bn,we,Ae,X-Q,Y-X,at)}v.push(ui),R.push(Dl)}o(u,"takeNode");function m(_,S,v,R){let I=[],C=0,$=-1;for(;c.pos>S;){let{id:Q,start:X,end:D,size:Y}=c;if(Y>4)c.next();else{if($>-1&&X<$)break;$<0&&($=D-i),I.push(Q,X,D),C++,c.next()}}if(C){let Q=new Uint16Array(C*4),X=I[I.length-2];for(let D=I.length-3,Y=0;D>=0;D-=3)Q[Y++]=I[D],Q[Y++]=I[D+1]-X,Q[Y++]=I[D+2]-X,Q[Y++]=Y;v.push(new Pt(Q,I[2]-X,r)),R.push(X-_)}}o(m,"takeFlatNode");function g(_,S){return(v,R,I)=>{let C=0,$=v.length-1,Q,X;if($>=0&&(Q=v[$])instanceof oe){if(!$&&Q.type==_&&Q.length==I)return Q;(X=Q.prop(M.lookAhead))&&(C=R[$]+Q.length+X)}return k(_,v,R,I,C,S)}}o(g,"makeBalanced");function w(_,S,v,R,I,C,$,Q,X){let D=[],Y=[];for(;_.length>R;)D.push(_.pop()),Y.push(S.pop()+v-I);_.push(k(r.types[$],D,Y,C-I,Q-C,X)),S.push(I-v)}o(w,"makeRepeatLeaf");function k(_,S,v,R,I,C,$){if(C){let Q=[M.contextHash,C];$=$?[Q].concat($):[Q]}if(I>25){let Q=[M.lookAhead,I];$=$?[Q].concat($):[Q]}return new oe(_,S,v,R,$)}o(k,"makeTree");function O(_,S){let v=c.fork(),R=0,I=0,C=0,$=v.end-i,Q={size:0,start:0,skip:0};e:for(let X=v.pos-_;v.pos>X;){let D=v.size;if(v.id==S&&D>=0){Q.size=R,Q.start=I,Q.skip=C,C+=4,R+=4,v.next();continue}let Y=v.pos-D;if(D<0||Y<X||v.start<$)break;let at=v.id>=a?4:0,Bn=v.start;for(v.next();v.pos>Y;){if(v.size<0)if(v.size==-3||v.size==-4)at+=4;else break e;else v.id>=a&&(at+=4);v.next()}I=Bn,R+=D,C+=at}return(S<0||R==_)&&(Q.size=R,Q.start=I,Q.skip=C),Q.size>4?Q:void 0}o(O,"findBufferSize");function y(_,S,v){let{id:R,start:I,end:C,size:$}=c;if(c.next(),$>=0&&R<a){let Q=v;if($>4){let X=c.pos-($-4);for(;c.pos>X;)v=y(_,S,v)}S[--v]=Q,S[--v]=C-_,S[--v]=I-_,S[--v]=R}else $==-3?l=R:$==-4&&(f=R);return v}o(y,"copyToBuffer");let b=[],x=[];for(;c.pos>0;)u(e.start||0,e.bufferStart||0,b,x,-1,0);let P=(t=e.length)!==null&&t!==void 0?t:b.length?x[0]+b[0].length:0;return new oe(d[e.topID],b.reverse(),x.reverse(),P)}function Bo(e,t){if(!e.isAnonymous||t instanceof Pt||t.type!=e)return 1;let n=kO.get(t);if(n==null){n=1;for(let r of t.children){if(r.type!=e||!(r instanceof oe)){n=1;break}n+=Bo(e,r)}kO.set(t,n)}return n}function Zd(e,t,n,r,i,s,a,c,d){let l=0;for(let w=r;w<i;w++)l+=Bo(e,t[w]);let f=Math.ceil(l*1.5/8),u=[],m=[];function g(w,k,O,y,b){for(let x=O;x<y;){let P=x,_=k[x],S=Bo(e,w[x]);for(x++;x<y;x++){let v=Bo(e,w[x]);if(S+v>=f)break;S+=v}if(x==P+1){if(S>f){let v=w[P];g(v.children,v.positions,0,v.children.length,k[P]+b);continue}u.push(w[P])}else{let v=k[x-1]+w[x-1].length-_;u.push(Zd(e,w,k,P,x,_,v,null,d))}m.push(_+b-s)}}return o(g,"divide"),g(t,n,r,i,0),(c||d)(u,m,a)}var KE,Hr,M,sn,HE,ke,Zo,Go,bO,q,oe,zd,Pt,Ko,Fe,Vd,ei,Yd,ti,kO,Ho,Gd,ite,Kd=p(()=>{"use strict";KE=0,Hr=class{static{o(this,"Range")}constructor(t,n){this.from=t,this.to=n}},M=class{static{o(this,"NodeProp")}constructor(t={}){this.id=KE++,this.perNode=!!t.perNode,this.deserialize=t.deserialize||(()=>{throw new Error("This node type doesn't define a deserialize function")}),this.combine=t.combine||null}add(t){if(this.perNode)throw new RangeError("Can't add per-node props to node types");return typeof t!="function"&&(t=ke.match(t)),n=>{let r=t(n);return r===void 0?null:[this,r]}}};M.closedBy=new M({deserialize:o(e=>e.split(" "),"deserialize")});M.openedBy=new M({deserialize:o(e=>e.split(" "),"deserialize")});M.group=new M({deserialize:o(e=>e.split(" "),"deserialize")});M.isolate=new M({deserialize:o(e=>{if(e&&e!="rtl"&&e!="ltr"&&e!="auto")throw new RangeError("Invalid value for isolate: "+e);return e||"auto"},"deserialize")});M.contextHash=new M({perNode:!0});M.lookAhead=new M({perNode:!0});M.mounted=new M({perNode:!0});sn=class{static{o(this,"MountedTree")}constructor(t,n,r,i=!1){this.tree=t,this.overlay=n,this.parser=r,this.bracketed=i}static get(t){return t&&t.props&&t.props[M.mounted.id]}},HE=Object.create(null),ke=class e{static{o(this,"NodeType")}constructor(t,n,r,i=0){this.name=t,this.props=n,this.id=r,this.flags=i}static define(t){let n=t.props&&t.props.length?Object.create(null):HE,r=(t.top?1:0)|(t.skipped?2:0)|(t.error?4:0)|(t.name==null?8:0),i=new e(t.name||"",n,t.id,r);if(t.props){for(let s of t.props)if(Array.isArray(s)||(s=s(i)),s){if(s[0].perNode)throw new RangeError("Can't store a per-node prop on a node type");n[s[0].id]=s[1]}}return i}prop(t){return this.props[t.id]}get isTop(){return(this.flags&1)>0}get isSkipped(){return(this.flags&2)>0}get isError(){return(this.flags&4)>0}get isAnonymous(){return(this.flags&8)>0}is(t){if(typeof t=="string"){if(this.name==t)return!0;let n=this.prop(M.group);return n?n.indexOf(t)>-1:!1}return this.id==t}static match(t){let n=Object.create(null);for(let r in t)for(let i of r.split(" "))n[i]=t[r];return r=>{for(let i=r.prop(M.group),s=-1;s<(i?i.length:0);s++){let a=n[s<0?r.name:i[s]];if(a)return a}}}};ke.none=new ke("",Object.create(null),0,8);Zo=class e{static{o(this,"NodeSet")}constructor(t){this.types=t;for(let n=0;n<t.length;n++)if(t[n].id!=n)throw new RangeError("Node type ids should correspond to array positions when creating a node set")}extend(...t){let n=[];for(let r of this.types){let i=null;for(let s of t){let a=s(r);if(a){i||(i=Object.assign({},r.props));let c=a[1],d=a[0];d.combine&&d.id in i&&(c=d.combine(i[d.id],c)),i[d.id]=c}}n.push(i?new ke(r.name,i,r.id,r.flags):r)}return new e(n)}},Go=new WeakMap,bO=new WeakMap;(function(e){e[e.ExcludeBuffers=1]="ExcludeBuffers",e[e.IncludeAnonymous=2]="IncludeAnonymous",e[e.IgnoreMounts=4]="IgnoreMounts",e[e.IgnoreOverlays=8]="IgnoreOverlays",e[e.EnterBracketed=16]="EnterBracketed"})(q||(q={}));oe=class e{static{o(this,"Tree")}constructor(t,n,r,i,s){if(this.type=t,this.children=n,this.positions=r,this.length=i,this.props=null,s&&s.length){this.props=Object.create(null);for(let[a,c]of s)this.props[typeof a=="number"?a:a.id]=c}}toString(){let t=sn.get(this);if(t&&!t.overlay)return t.tree.toString();let n="";for(let r of this.children){let i=r.toString();i&&(n&&(n+=","),n+=i)}return this.type.name?(/\W/.test(this.type.name)&&!this.type.isError?JSON.stringify(this.type.name):this.type.name)+(n.length?"("+n+")":""):n}cursor(t=0){return new ti(this.topNode,t)}cursorAt(t,n=0,r=0){let i=Go.get(this)||this.topNode,s=new ti(i);return s.moveTo(t,n),Go.set(this,s._tree),s}get topNode(){return new Fe(this,0,0,null)}resolve(t,n=0){let r=Jr(Go.get(this)||this.topNode,t,n,!1);return Go.set(this,r),r}resolveInner(t,n=0){let r=Jr(bO.get(this)||this.topNode,t,n,!0);return bO.set(this,r),r}resolveStack(t,n=0){return JE(this,t,n)}iterate(t){let{enter:n,leave:r,from:i=0,to:s=this.length}=t,a=t.mode||0,c=(a&q.IncludeAnonymous)>0;for(let d=this.cursor(a|q.IncludeAnonymous);;){let l=!1;if(d.from<=s&&d.to>=i&&(!c&&d.type.isAnonymous||n(d)!==!1)){if(d.firstChild())continue;l=!0}for(;l&&r&&(c||!d.type.isAnonymous)&&r(d),!d.nextSibling();){if(!d.parent())return;l=!0}}}prop(t){return t.perNode?this.props?this.props[t.id]:void 0:this.type.prop(t)}get propValues(){let t=[];if(this.props)for(let n in this.props)t.push([+n,this.props[n]]);return t}balance(t={}){return this.children.length<=8?this:Zd(ke.none,this.children,this.positions,0,this.children.length,0,this.length,(n,r,i)=>new e(this.type,n,r,i,this.propValues),t.makeTree||((n,r,i)=>new e(ke.none,n,r,i)))}static build(t){return eR(t)}};oe.empty=new oe(ke.none,[],[],0);zd=class e{static{o(this,"FlatBufferCursor")}constructor(t,n){this.buffer=t,this.index=n}get id(){return this.buffer[this.index-4]}get start(){return this.buffer[this.index-3]}get end(){return this.buffer[this.index-2]}get size(){return this.buffer[this.index-1]}get pos(){return this.index}next(){this.index-=4}fork(){return new e(this.buffer,this.index)}},Pt=class e{static{o(this,"TreeBuffer")}constructor(t,n,r){this.buffer=t,this.length=n,this.set=r}get type(){return ke.none}toString(){let t=[];for(let n=0;n<this.buffer.length;)t.push(this.childString(n)),n=this.buffer[n+3];return t.join(",")}childString(t){let n=this.buffer[t],r=this.buffer[t+3],i=this.set.types[n],s=i.name;if(/\W/.test(s)&&!i.isError&&(s=JSON.stringify(s)),t+=4,r==t)return s;let a=[];for(;t<r;)a.push(this.childString(t)),t=this.buffer[t+3];return s+"("+a.join(",")+")"}findChild(t,n,r,i,s){let{buffer:a}=this,c=-1;for(let d=t;d!=n&&!(xO(s,i,a[d+1],a[d+2])&&(c=d,r>0));d=a[d+3]);return c}slice(t,n,r){let i=this.buffer,s=new Uint16Array(n-t),a=0;for(let c=t,d=0;c<n;){s[d++]=i[c++],s[d++]=i[c++]-r;let l=s[d++]=i[c++]-r;s[d++]=i[c++]-t,a=Math.max(a,l)}return new e(s,a,this.set)}};o(xO,"checkSide");o(Jr,"resolveNode");Ko=class{static{o(this,"BaseNode")}cursor(t=0){return new ti(this,t)}getChild(t,n=null,r=null){let i=vO(this,t,n,r);return i.length?i[0]:null}getChildren(t,n=null,r=null){return vO(this,t,n,r)}resolve(t,n=0){return Jr(this,t,n,!1)}resolveInner(t,n=0){return Jr(this,t,n,!0)}matchContext(t){return Ud(this.parent,t)}enterUnfinishedNodesBefore(t){let n=this.childBefore(t),r=this;for(;n;){let i=n.lastChild;if(!i||i.to!=n.to)break;i.type.isError&&i.from==i.to?(r=n,n=i.prevSibling):n=i}return r}get node(){return this}get next(){return this.parent}},Fe=class e extends Ko{static{o(this,"TreeNode")}constructor(t,n,r,i){super(),this._tree=t,this.from=n,this.index=r,this._parent=i}get type(){return this._tree.type}get name(){return this._tree.type.name}get to(){return this.from+this._tree.length}nextChild(t,n,r,i,s=0){for(let a=this;;){for(let{children:c,positions:d}=a._tree,l=n>0?c.length:-1;t!=l;t+=n){let f=c[t],u=d[t]+a.from,m;if(!(!(s&q.EnterBracketed&&f instanceof oe&&(m=sn.get(f))&&!m.overlay&&m.bracketed&&r>=u&&r<=u+f.length)&&!xO(i,r,u,u+f.length))){if(f instanceof Pt){if(s&q.ExcludeBuffers)continue;let g=f.findChild(0,f.buffer.length,n,r-u,i);if(g>-1)return new ei(new Vd(a,f,t,u),null,g)}else if(s&q.IncludeAnonymous||!f.type.isAnonymous||Bd(f)){let g;if(!(s&q.IgnoreMounts)&&(g=sn.get(f))&&!g.overlay)return new e(g.tree,u,t,a);let w=new e(f,u,t,a);return s&q.IncludeAnonymous||!w.type.isAnonymous?w:w.nextChild(n<0?f.children.length-1:0,n,r,i,s)}}}if(s&q.IncludeAnonymous||!a.type.isAnonymous||(a.index>=0?t=a.index+n:t=n<0?-1:a._parent._tree.children.length,a=a._parent,!a))return null}}get firstChild(){return this.nextChild(0,1,0,4)}get lastChild(){return this.nextChild(this._tree.children.length-1,-1,0,4)}childAfter(t){return this.nextChild(0,1,t,2)}childBefore(t){return this.nextChild(this._tree.children.length-1,-1,t,-2)}prop(t){return this._tree.prop(t)}enter(t,n,r=0){let i;if(!(r&q.IgnoreOverlays)&&(i=sn.get(this._tree))&&i.overlay){let s=t-this.from,a=r&q.EnterBracketed&&i.bracketed;for(let{from:c,to:d}of i.overlay)if((n>0||a?c<=s:c<s)&&(n<0||a?d>=s:d>s))return new e(i.tree,i.overlay[0].from+this.from,-1,this)}return this.nextChild(0,1,t,n,r)}nextSignificantParent(){let t=this;for(;t.type.isAnonymous&&t._parent;)t=t._parent;return t}get parent(){return this._parent?this._parent.nextSignificantParent():null}get nextSibling(){return this._parent&&this.index>=0?this._parent.nextChild(this.index+1,1,0,4):null}get prevSibling(){return this._parent&&this.index>=0?this._parent.nextChild(this.index-1,-1,0,4):null}get tree(){return this._tree}toTree(){return this._tree}toString(){return this._tree.toString()}};o(vO,"getChildren");o(Ud,"matchNodeContext");Vd=class{static{o(this,"BufferContext")}constructor(t,n,r,i){this.parent=t,this.buffer=n,this.index=r,this.start=i}},ei=class e extends Ko{static{o(this,"BufferNode")}get name(){return this.type.name}get from(){return this.context.start+this.context.buffer.buffer[this.index+1]}get to(){return this.context.start+this.context.buffer.buffer[this.index+2]}constructor(t,n,r){super(),this.context=t,this._parent=n,this.index=r,this.type=t.buffer.set.types[t.buffer.buffer[r]]}child(t,n,r){let{buffer:i}=this.context,s=i.findChild(this.index+4,i.buffer[this.index+3],t,n-this.context.start,r);return s<0?null:new e(this.context,this,s)}get firstChild(){return this.child(1,0,4)}get lastChild(){return this.child(-1,0,4)}childAfter(t){return this.child(1,t,2)}childBefore(t){return this.child(-1,t,-2)}prop(t){return this.type.prop(t)}enter(t,n,r=0){if(r&q.ExcludeBuffers)return null;let{buffer:i}=this.context,s=i.findChild(this.index+4,i.buffer[this.index+3],n>0?1:-1,t-this.context.start,n);return s<0?null:new e(this.context,this,s)}get parent(){return this._parent||this.context.parent.nextSignificantParent()}externalSibling(t){return this._parent?null:this.context.parent.nextChild(this.context.index+t,t,0,4)}get nextSibling(){let{buffer:t}=this.context,n=t.buffer[this.index+3];return n<(this._parent?t.buffer[this._parent.index+3]:t.buffer.length)?new e(this.context,this._parent,n):this.externalSibling(1)}get prevSibling(){let{buffer:t}=this.context,n=this._parent?this._parent.index+4:0;return this.index==n?this.externalSibling(-1):new e(this.context,this._parent,t.findChild(n,this.index,-1,0,4))}get tree(){return null}toTree(){let t=[],n=[],{buffer:r}=this.context,i=this.index+4,s=r.buffer[this.index+3];if(s>i){let a=r.buffer[this.index+1];t.push(r.slice(i,s,a)),n.push(0)}return new oe(this.type,t,n,this.to-this.from)}toString(){return this.context.buffer.childString(this.index)}};o(PO,"iterStack");Yd=class{static{o(this,"StackIterator")}constructor(t,n){this.heads=t,this.node=n}get next(){return PO(this.heads)}};o(JE,"stackIterator");ti=class{static{o(this,"TreeCursor")}get name(){return this.type.name}constructor(t,n=0){if(this.buffer=null,this.stack=[],this.index=0,this.bufferNode=null,this.mode=n&~q.EnterBracketed,t instanceof Fe)this.yieldNode(t);else{this._tree=t.context.parent,this.buffer=t.context;for(let r=t._parent;r;r=r._parent)this.stack.unshift(r.index);this.bufferNode=t,this.yieldBuf(t.index)}}yieldNode(t){return t?(this._tree=t,this.type=t.type,this.from=t.from,this.to=t.to,!0):!1}yieldBuf(t,n){this.index=t;let{start:r,buffer:i}=this.buffer;return this.type=n||i.set.types[i.buffer[t]],this.from=r+i.buffer[t+1],this.to=r+i.buffer[t+2],!0}yield(t){return t?t instanceof Fe?(this.buffer=null,this.yieldNode(t)):(this.buffer=t.context,this.yieldBuf(t.index,t.type)):!1}toString(){return this.buffer?this.buffer.buffer.childString(this.index):this._tree.toString()}enterChild(t,n,r){if(!this.buffer)return this.yield(this._tree.nextChild(t<0?this._tree._tree.children.length-1:0,t,n,r,this.mode));let{buffer:i}=this.buffer,s=i.findChild(this.index+4,i.buffer[this.index+3],t,n-this.buffer.start,r);return s<0?!1:(this.stack.push(this.index),this.yieldBuf(s))}firstChild(){return this.enterChild(1,0,4)}lastChild(){return this.enterChild(-1,0,4)}childAfter(t){return this.enterChild(1,t,2)}childBefore(t){return this.enterChild(-1,t,-2)}enter(t,n,r=this.mode){return this.buffer?r&q.ExcludeBuffers?!1:this.enterChild(1,t,n):this.yield(this._tree.enter(t,n,r))}parent(){if(!this.buffer)return this.yieldNode(this.mode&q.IncludeAnonymous?this._tree._parent:this._tree.parent);if(this.stack.length)return this.yieldBuf(this.stack.pop());let t=this.mode&q.IncludeAnonymous?this.buffer.parent:this.buffer.parent.nextSignificantParent();return this.buffer=null,this.yieldNode(t)}sibling(t){if(!this.buffer)return this._tree._parent?this.yield(this._tree.index<0?null:this._tree._parent.nextChild(this._tree.index+t,t,0,4,this.mode)):!1;let{buffer:n}=this.buffer,r=this.stack.length-1;if(t<0){let i=r<0?0:this.stack[r]+4;if(this.index!=i)return this.yieldBuf(n.findChild(i,this.index,-1,0,4))}else{let i=n.buffer[this.index+3];if(i<(r<0?n.buffer.length:n.buffer[this.stack[r]+3]))return this.yieldBuf(i)}return r<0?this.yield(this.buffer.parent.nextChild(this.buffer.index+t,t,0,4,this.mode)):!1}nextSibling(){return this.sibling(1)}prevSibling(){return this.sibling(-1)}atLastNode(t){let n,r,{buffer:i}=this;if(i){if(t>0){if(this.index<i.buffer.buffer.length)return!1}else for(let s=0;s<this.index;s++)if(i.buffer.buffer[s+3]<this.index)return!1;({index:n,parent:r}=i)}else({index:n,_parent:r}=this._tree);for(;r;{index:n,_parent:r}=r)if(n>-1)for(let s=n+t,a=t<0?-1:r._tree.children.length;s!=a;s+=t){let c=r._tree.children[s];if(this.mode&q.IncludeAnonymous||c instanceof Pt||!c.type.isAnonymous||Bd(c))return!1}return!0}move(t,n){if(n&&this.enterChild(t,0,4))return!0;for(;;){if(this.sibling(t))return!0;if(this.atLastNode(t)||!this.parent())return!1}}next(t=!0){return this.move(1,t)}prev(t=!0){return this.move(-1,t)}moveTo(t,n=0){for(;(this.from==this.to||(n<1?this.from>=t:this.from>t)||(n>-1?this.to<=t:this.to<t))&&this.parent(););for(;this.enterChild(1,t,n););return this}get node(){if(!this.buffer)return this._tree;let t=this.bufferNode,n=null,r=0;if(t&&t.context==this.buffer)e:for(let i=this.index,s=this.stack.length;s>=0;){for(let a=t;a;a=a._parent)if(a.index==i){if(i==this.index)return a;n=a,r=s+1;break e}i=this.stack[--s]}for(let i=r;i<this.stack.length;i++)n=new ei(this.buffer,n,this.stack[i]);return this.bufferNode=new ei(this.buffer,n,this.index)}get tree(){return this.buffer?null:this._tree._tree}iterate(t,n){for(let r=0;;){let i=!1;if(this.type.isAnonymous||t(this)!==!1){if(this.firstChild()){r++;continue}this.type.isAnonymous||(i=!0)}for(;;){if(i&&n&&n(this),i=this.type.isAnonymous,!r)return;if(this.nextSibling())break;this.parent(),r--,i=!0}}}matchContext(t){if(!this.buffer)return Ud(this.node.parent,t);let{buffer:n}=this.buffer,{types:r}=n.set;for(let i=t.length-1,s=this.stack.length-1;i>=0;s--){if(s<0)return Ud(this._tree,t,i);let a=r[n.buffer[this.stack[s]]];if(!a.isAnonymous){if(t[i]&&t[i]!=a.name)return!1;i--}}return!0}};o(Bd,"hasChild");o(eR,"buildTree");kO=new WeakMap;o(Bo,"nodeSize");o(Zd,"balanceRange");Ho=class{static{o(this,"Parser")}startParse(t,n,r){return typeof t=="string"&&(t=new Gd(t)),r=r?r.length?r.map(i=>new Hr(i.from,i.to)):[new Hr(0,0)]:[new Hr(0,t.length)],this.createParse(t,n||[],r)}parse(t,n,r){let i=this.startParse(t,n,r);for(;;){let s=i.advance();if(s)return s}}},Gd=class{static{o(this,"StringInput")}constructor(t){this.string=t}get length(){return this.string.length}chunk(t){return this.string.slice(t)}get lineChunks(){return!1}read(t,n){return this.string.slice(t,n)}},ite=new M({perNode:!0})});function ni(e,t=Uint16Array){if(typeof e!="string")return e;let n=null;for(let r=0,i=0;r<e.length;){let s=0;for(;;){let a=e.charCodeAt(r++),c=!1;if(a==126){s=65535;break}a>=92&&a--,a>=34&&a--;let d=a-32;if(d>=46&&(d-=46,c=!0),s+=d,c)break;s*=46}n?n[i++]=s:n=new t(s)}return n}function QO(e,t,n,r,i,s){let a=0,c=1<<r,{dialect:d}=n.p.parser;e:for(;(c&e[a])!=0;){let l=e[a+1];for(let g=a+3;g<l;g+=2)if((e[g+1]&c)>0){let w=e[g];if(d.allows(w)&&(t.token.value==-1||t.token.value==w||nR(w,t.token.value,i,s))){t.acceptToken(w);break}}let f=t.next,u=0,m=e[a+2];if(t.next<0&&m>u&&e[l+m*3-3]==65535){a=e[l+m*3-1];continue e}for(;u<m;){let g=u+m>>1,w=l+g+(g<<1),k=e[w],O=e[w+1]||65536;if(f<k)m=g;else if(f>=O)u=g+1;else{a=e[w+2],t.advance();continue e}}break}}function TO(e,t,n){for(let r=t,i;(i=e[r])!=65535;r++)if(i==n)return r-t;return-1}function nR(e,t,n,r){let i=TO(n,r,t);return i<0||TO(n,r,e)<i}function EO(e,t,n){let r=e.cursor(q.IncludeAnonymous);for(r.moveTo(t);;)if(!(n<0?r.childBefore(t):r.childAfter(t)))for(;;){if((n<0?r.to<t:r.from>t)&&!r.type.isError)return n<0?Math.max(0,Math.min(r.to-1,t-25)):Math.min(e.length,Math.max(r.from+1,t+25));if(n<0?r.prevSibling():r.nextSibling())break;if(!r.parent())return n<0?0:e.length}}function RO(e,t){for(let n=0;n<t.length;n++){let r=t[n];if(r.pos==e.pos&&r.sameState(e)){t[n].score<e.score&&(t[n]=e);return}}t.push(e)}function Je(e,t){return e[t]|e[t+1]<<16}function rR(e){let t=null;for(let n of e){let r=n.p.stoppedAt;(n.pos==n.p.stream.end||r!=null&&n.pos>r)&&n.p.parser.stateFlag(n.state,2)&&(!t||t.score<n.score)&&(t=n)}return t}function IO(e){if(e.external){let t=e.extend?1:0;return(n,r)=>e.external(n,r)<<1|t}return e.get}var el,Jo,tl,nl,Ln,_O,rl,_t,ri,ye,Oe,Hd,il,ol,sl,al,Jd,qn,Tt,es=p(()=>{"use strict";Kd();el=class e{static{o(this,"Stack")}constructor(t,n,r,i,s,a,c,d,l,f=0,u){this.p=t,this.stack=n,this.state=r,this.reducePos=i,this.pos=s,this.score=a,this.buffer=c,this.bufferBase=d,this.curContext=l,this.lookAhead=f,this.parent=u}toString(){return`[${this.stack.filter((t,n)=>n%3==0).concat(this.state)}]@${this.pos}${this.score?"!"+this.score:""}`}static start(t,n,r=0){let i=t.parser.context;return new e(t,[],n,r,r,0,[],0,i?new Jo(i,i.start):null,0,null)}get context(){return this.curContext?this.curContext.context:null}pushState(t,n){this.stack.push(this.state,n,this.bufferBase+this.buffer.length),this.state=t}reduce(t){var n;let r=t>>19,i=t&65535,{parser:s}=this.p,a=this.reducePos<this.pos-25&&this.setLookAhead(this.pos),c=s.dynamicPrecedence(i);if(c&&(this.score+=c),r==0){i<s.minRepeatTerm&&this.reducePos<this.pos&&(this.reducePos=this.pos),this.pushState(s.getGoto(this.state,i,!0),this.reducePos),i<s.minRepeatTerm&&this.storeNode(i,this.reducePos,this.reducePos,a?8:4,!0),this.reduceContext(i,this.reducePos);return}let d=this.stack.length-(r-1)*3-(t&262144?6:0),l=d?this.stack[d-2]:this.p.ranges[0].from;i<s.minRepeatTerm&&l==this.reducePos&&this.reducePos<this.pos&&(this.reducePos=this.pos);let f=this.reducePos-l;f>=2e3&&!(!((n=this.p.parser.nodeSet.types[i])===null||n===void 0)&&n.isAnonymous)&&(l==this.p.lastBigReductionStart?(this.p.bigReductionCount++,this.p.lastBigReductionSize=f):this.p.lastBigReductionSize<f&&(this.p.bigReductionCount=1,this.p.lastBigReductionStart=l,this.p.lastBigReductionSize=f));let u=d?this.stack[d-1]:0,m=this.bufferBase+this.buffer.length-u;if(i<s.minRepeatTerm||t&131072){let g=s.stateFlag(this.state,1)?this.pos:this.reducePos;this.storeNode(i,l,g,m+4,!0)}if(t&262144)this.state=this.stack[d];else{let g=this.stack[d-3];this.state=s.getGoto(g,i,!0)}for(;this.stack.length>d;)this.stack.pop();this.reduceContext(i,l)}storeNode(t,n,r,i=4,s=!1){if(t==0&&(!this.stack.length||this.stack[this.stack.length-1]<this.buffer.length+this.bufferBase)){let a=this.buffer.length;if(a>0&&this.buffer[a-4]==0&&this.buffer[a-1]>-1){if(n==r)return;if(this.buffer[a-2]>=n){this.buffer[a-2]=r;return}}}if(!s||this.pos==r)this.buffer.push(t,n,r,i);else{let a=this.buffer.length;if(a>0&&(this.buffer[a-4]!=0||this.buffer[a-1]<0)){let c=!1;for(let d=a;d>0&&this.buffer[d-2]>r;d-=4)if(this.buffer[d-1]>=0){c=!0;break}if(c)for(;a>0&&this.buffer[a-2]>r;)this.buffer[a]=this.buffer[a-4],this.buffer[a+1]=this.buffer[a-3],this.buffer[a+2]=this.buffer[a-2],this.buffer[a+3]=this.buffer[a-1],a-=4,i>4&&(i-=4)}this.buffer[a]=t,this.buffer[a+1]=n,this.buffer[a+2]=r,this.buffer[a+3]=i}}shift(t,n,r,i){if(t&131072)this.pushState(t&65535,this.pos);else if((t&262144)==0){let s=t,{parser:a}=this.p;this.pos=i;let c=a.stateFlag(s,1);!c&&(i>r||n<=a.maxNode)&&(this.reducePos=i),this.pushState(s,c?r:Math.min(r,this.reducePos)),this.shiftContext(n,r),n<=a.maxNode&&this.buffer.push(n,r,i,4)}else this.pos=i,this.shiftContext(n,r),n<=this.p.parser.maxNode&&this.buffer.push(n,r,i,4)}apply(t,n,r,i){t&65536?this.reduce(t):this.shift(t,n,r,i)}useNode(t,n){let r=this.p.reused.length-1;(r<0||this.p.reused[r]!=t)&&(this.p.reused.push(t),r++);let i=this.pos;this.reducePos=this.pos=i+t.length,this.pushState(n,i),this.buffer.push(r,i,this.reducePos,-1),this.curContext&&this.updateContext(this.curContext.tracker.reuse(this.curContext.context,t,this,this.p.stream.reset(this.pos-t.length)))}split(){let t=this,n=t.buffer.length;for(n&&t.buffer[n-4]==0&&(n-=4);n>0&&t.buffer[n-2]>t.reducePos;)n-=4;let r=t.buffer.slice(n),i=t.bufferBase+n;for(;t&&i==t.bufferBase;)t=t.parent;return new e(this.p,this.stack.slice(),this.state,this.reducePos,this.pos,this.score,r,i,this.curContext,this.lookAhead,t)}recoverByDelete(t,n){let r=t<=this.p.parser.maxNode;r&&this.storeNode(t,this.pos,n,4),this.storeNode(0,this.pos,n,r?8:4),this.pos=this.reducePos=n,this.score-=190}canShift(t){for(let n=new tl(this);;){let r=this.p.parser.stateSlot(n.state,4)||this.p.parser.hasAction(n.state,t);if(r==0)return!1;if((r&65536)==0)return!0;n.reduce(r)}}recoverByInsert(t){if(this.stack.length>=300)return[];let n=this.p.parser.nextStates(this.state);if(n.length>8||this.stack.length>=120){let i=[];for(let s=0,a;s<n.length;s+=2)(a=n[s+1])!=this.state&&this.p.parser.hasAction(a,t)&&i.push(n[s],a);if(this.stack.length<120)for(let s=0;i.length<8&&s<n.length;s+=2){let a=n[s+1];i.some((c,d)=>d&1&&c==a)||i.push(n[s],a)}n=i}let r=[];for(let i=0;i<n.length&&r.length<4;i+=2){let s=n[i+1];if(s==this.state)continue;let a=this.split();a.pushState(s,this.pos),a.storeNode(0,a.pos,a.pos,4,!0),a.shiftContext(n[i],this.pos),a.reducePos=this.pos,a.score-=200,r.push(a)}return r}forceReduce(){let{parser:t}=this.p,n=t.stateSlot(this.state,5);if((n&65536)==0)return!1;if(!t.validAction(this.state,n)){let r=n>>19,i=n&65535,s=this.stack.length-r*3;if(s<0||t.getGoto(this.stack[s],i,!1)<0){let a=this.findForcedReduction();if(a==null)return!1;n=a}this.storeNode(0,this.pos,this.pos,4,!0),this.score-=100}return this.reducePos=this.pos,this.reduce(n),!0}findForcedReduction(){let{parser:t}=this.p,n=[],r=o((i,s)=>{if(!n.includes(i))return n.push(i),t.allActions(i,a=>{if(!(a&393216))if(a&65536){let c=(a>>19)-s;if(c>1){let d=a&65535,l=this.stack.length-c*3;if(l>=0&&t.getGoto(this.stack[l],d,!1)>=0)return c<<19|65536|d}}else{let c=r(a,s+1);if(c!=null)return c}})},"explore");return r(this.state,0)}forceAll(){for(;!this.p.parser.stateFlag(this.state,2);)if(!this.forceReduce()){this.storeNode(0,this.pos,this.pos,4,!0);break}return this}get deadEnd(){if(this.stack.length!=3)return!1;let{parser:t}=this.p;return t.data[t.stateSlot(this.state,1)]==65535&&!t.stateSlot(this.state,4)}restart(){this.storeNode(0,this.pos,this.pos,4,!0),this.state=this.stack[0],this.stack.length=0}sameState(t){if(this.state!=t.state||this.stack.length!=t.stack.length)return!1;for(let n=0;n<this.stack.length;n+=3)if(this.stack[n]!=t.stack[n])return!1;return!0}get parser(){return this.p.parser}dialectEnabled(t){return this.p.parser.dialect.flags[t]}shiftContext(t,n){this.curContext&&this.updateContext(this.curContext.tracker.shift(this.curContext.context,t,this,this.p.stream.reset(n)))}reduceContext(t,n){this.curContext&&this.updateContext(this.curContext.tracker.reduce(this.curContext.context,t,this,this.p.stream.reset(n)))}emitContext(){let t=this.buffer.length-1;(t<0||this.buffer[t]!=-3)&&this.buffer.push(this.curContext.hash,this.pos,this.pos,-3)}emitLookAhead(){let t=this.buffer.length-1;(t<0||this.buffer[t]!=-4)&&this.buffer.push(this.lookAhead,this.pos,this.pos,-4)}updateContext(t){if(t!=this.curContext.context){let n=new Jo(this.curContext.tracker,t);n.hash!=this.curContext.hash&&this.emitContext(),this.curContext=n}}setLookAhead(t){return t<=this.lookAhead?!1:(this.emitLookAhead(),this.lookAhead=t,!0)}close(){this.curContext&&this.curContext.tracker.strict&&this.emitContext(),this.lookAhead>0&&this.emitLookAhead()}},Jo=class{static{o(this,"StackContext")}constructor(t,n){this.tracker=t,this.context=n,this.hash=t.strict?t.hash(n):0}},tl=class{static{o(this,"SimulatedStack")}constructor(t){this.start=t,this.state=t.state,this.stack=t.stack,this.base=this.stack.length}reduce(t){let n=t&65535,r=t>>19;r==0?(this.stack==this.start.stack&&(this.stack=this.stack.slice()),this.stack.push(this.state,0,0),this.base+=3):this.base-=(r-1)*3;let i=this.start.p.parser.getGoto(this.stack[this.base-3],n,!0);this.state=i}},nl=class e{static{o(this,"StackBufferCursor")}constructor(t,n,r){this.stack=t,this.pos=n,this.index=r,this.buffer=t.buffer,this.index==0&&this.maybeNext()}static create(t,n=t.bufferBase+t.buffer.length){return new e(t,n,n-t.bufferBase)}maybeNext(){let t=this.stack.parent;t!=null&&(this.index=this.stack.bufferBase-t.bufferBase,this.stack=t,this.buffer=t.buffer)}get id(){return this.buffer[this.index-4]}get start(){return this.buffer[this.index-3]}get end(){return this.buffer[this.index-2]}get size(){return this.buffer[this.index-1]}next(){this.index-=4,this.pos-=4,this.index==0&&this.maybeNext()}fork(){return new e(this.stack,this.pos,this.index)}};o(ni,"decodeArray");Ln=class{static{o(this,"CachedToken")}constructor(){this.start=-1,this.value=-1,this.end=-1,this.extended=-1,this.lookAhead=0,this.mask=0,this.context=0}},_O=new Ln,rl=class{static{o(this,"InputStream")}constructor(t,n){this.input=t,this.ranges=n,this.chunk="",this.chunkOff=0,this.chunk2="",this.chunk2Pos=0,this.next=-1,this.token=_O,this.rangeIndex=0,this.pos=this.chunkPos=n[0].from,this.range=n[0],this.end=n[n.length-1].to,this.readNext()}resolveOffset(t,n){let r=this.range,i=this.rangeIndex,s=this.pos+t;for(;s<r.from;){if(!i)return null;let a=this.ranges[--i];s-=r.from-a.to,r=a}for(;n<0?s>r.to:s>=r.to;){if(i==this.ranges.length-1)return null;let a=this.ranges[++i];s+=a.from-r.to,r=a}return s}clipPos(t){if(t>=this.range.from&&t<this.range.to)return t;for(let n of this.ranges)if(n.to>t)return Math.max(t,n.from);return this.end}peek(t){let n=this.chunkOff+t,r,i;if(n>=0&&n<this.chunk.length)r=this.pos+t,i=this.chunk.charCodeAt(n);else{let s=this.resolveOffset(t,1);if(s==null)return-1;if(r=s,r>=this.chunk2Pos&&r<this.chunk2Pos+this.chunk2.length)i=this.chunk2.charCodeAt(r-this.chunk2Pos);else{let a=this.rangeIndex,c=this.range;for(;c.to<=r;)c=this.ranges[++a];this.chunk2=this.input.chunk(this.chunk2Pos=r),r+this.chunk2.length>c.to&&(this.chunk2=this.chunk2.slice(0,c.to-r)),i=this.chunk2.charCodeAt(0)}}return r>=this.token.lookAhead&&(this.token.lookAhead=r+1),i}acceptToken(t,n=0){let r=n?this.resolveOffset(n,-1):this.pos;if(r==null||r<this.token.start)throw new RangeError("Token end out of bounds");this.token.value=t,this.token.end=r}acceptTokenTo(t,n){this.token.value=t,this.token.end=n}getChunk(){if(this.pos>=this.chunk2Pos&&this.pos<this.chunk2Pos+this.chunk2.length){let{chunk:t,chunkPos:n}=this;this.chunk=this.chunk2,this.chunkPos=this.chunk2Pos,this.chunk2=t,this.chunk2Pos=n,this.chunkOff=this.pos-this.chunkPos}else{this.chunk2=this.chunk,this.chunk2Pos=this.chunkPos;let t=this.input.chunk(this.pos),n=this.pos+t.length;this.chunk=n>this.range.to?t.slice(0,this.range.to-this.pos):t,this.chunkPos=this.pos,this.chunkOff=0}}readNext(){return this.chunkOff>=this.chunk.length&&(this.getChunk(),this.chunkOff==this.chunk.length)?this.next=-1:this.next=this.chunk.charCodeAt(this.chunkOff)}advance(t=1){for(this.chunkOff+=t;this.pos+t>=this.range.to;){if(this.rangeIndex==this.ranges.length-1)return this.setDone();t-=this.range.to-this.pos,this.range=this.ranges[++this.rangeIndex],this.pos=this.range.from}return this.pos+=t,this.pos>=this.token.lookAhead&&(this.token.lookAhead=this.pos+1),this.readNext()}setDone(){return this.pos=this.chunkPos=this.end,this.range=this.ranges[this.rangeIndex=this.ranges.length-1],this.chunk="",this.next=-1}reset(t,n){if(n?(this.token=n,n.start=t,n.lookAhead=t+1,n.value=n.extended=-1):this.token=_O,this.pos!=t){if(this.pos=t,t==this.end)return this.setDone(),this;for(;t<this.range.from;)this.range=this.ranges[--this.rangeIndex];for(;t>=this.range.to;)this.range=this.ranges[++this.rangeIndex];t>=this.chunkPos&&t<this.chunkPos+this.chunk.length?this.chunkOff=t-this.chunkPos:(this.chunk="",this.chunkOff=0),this.readNext()}return this}read(t,n){if(t>=this.chunkPos&&n<=this.chunkPos+this.chunk.length)return this.chunk.slice(t-this.chunkPos,n-this.chunkPos);if(t>=this.chunk2Pos&&n<=this.chunk2Pos+this.chunk2.length)return this.chunk2.slice(t-this.chunk2Pos,n-this.chunk2Pos);if(t>=this.range.from&&n<=this.range.to)return this.input.read(t,n);let r="";for(let i of this.ranges){if(i.from>=n)break;i.to>t&&(r+=this.input.read(Math.max(i.from,t),Math.min(i.to,n)))}return r}},_t=class{static{o(this,"TokenGroup")}constructor(t,n){this.data=t,this.id=n}token(t,n){let{parser:r}=n.p;QO(this.data,t,n,this.id,r.data,r.tokenPrecTable)}};_t.prototype.contextual=_t.prototype.fallback=_t.prototype.extend=!1;ri=class{static{o(this,"LocalTokenGroup")}constructor(t,n,r){this.precTable=n,this.elseToken=r,this.data=typeof t=="string"?ni(t):t}token(t,n){let r=t.pos,i=0;for(;;){let s=t.next<0,a=t.resolveOffset(1,1);if(QO(this.data,t,n,0,this.data,this.precTable),t.token.value>-1)break;if(this.elseToken==null)return;if(s||i++,a==null)break;t.reset(a,t.token)}i&&(t.reset(r,t.token),t.acceptToken(this.elseToken,i))}};ri.prototype.contextual=_t.prototype.fallback=_t.prototype.extend=!1;ye=class{static{o(this,"ExternalTokenizer")}constructor(t,n={}){this.token=t,this.contextual=!!n.contextual,this.fallback=!!n.fallback,this.extend=!!n.extend}};o(QO,"readToken");o(TO,"findOffset");o(nR,"overrides");Oe=typeof process<"u"&&process.env&&/\bparse\b/.test(process.env.LOG),Hd=null;o(EO,"cutAt");il=class{static{o(this,"FragmentCursor")}constructor(t,n){this.fragments=t,this.nodeSet=n,this.i=0,this.fragment=null,this.safeFrom=-1,this.safeTo=-1,this.trees=[],this.start=[],this.index=[],this.nextFragment()}nextFragment(){let t=this.fragment=this.i==this.fragments.length?null:this.fragments[this.i++];if(t){for(this.safeFrom=t.openStart?EO(t.tree,t.from+t.offset,1)-t.offset:t.from,this.safeTo=t.openEnd?EO(t.tree,t.to+t.offset,-1)-t.offset:t.to;this.trees.length;)this.trees.pop(),this.start.pop(),this.index.pop();this.trees.push(t.tree),this.start.push(-t.offset),this.index.push(0),this.nextStart=this.safeFrom}else this.nextStart=1e9}nodeAt(t){if(t<this.nextStart)return null;for(;this.fragment&&this.safeTo<=t;)this.nextFragment();if(!this.fragment)return null;for(;;){let n=this.trees.length-1;if(n<0)return this.nextFragment(),null;let r=this.trees[n],i=this.index[n];if(i==r.children.length){this.trees.pop(),this.start.pop(),this.index.pop();continue}let s=r.children[i],a=this.start[n]+r.positions[i];if(a>t)return this.nextStart=a,null;if(s instanceof oe){if(a==t){if(a<this.safeFrom)return null;let c=a+s.length;if(c<=this.safeTo){let d=s.prop(M.lookAhead);if(!d||c+d<this.fragment.to)return s}}this.index[n]++,a+s.length>=Math.max(this.safeFrom,t)&&(this.trees.push(s),this.start.push(a),this.index.push(0))}else this.index[n]++,this.nextStart=a+s.length}}},ol=class{static{o(this,"TokenCache")}constructor(t,n){this.stream=n,this.tokens=[],this.mainToken=null,this.actions=[],this.tokens=t.tokenizers.map(r=>new Ln)}getActions(t){let n=0,r=null,{parser:i}=t.p,{tokenizers:s}=i,a=i.stateSlot(t.state,3),c=t.curContext?t.curContext.hash:0,d=0;for(let l=0;l<s.length;l++){if((1<<l&a)==0)continue;let f=s[l],u=this.tokens[l];if(!(r&&!f.fallback)&&((f.contextual||u.start!=t.pos||u.mask!=a||u.context!=c)&&(this.updateCachedToken(u,f,t),u.mask=a,u.context=c),u.lookAhead>u.end+25&&(d=Math.max(u.lookAhead,d)),u.value!=0)){let m=n;if(u.extended>-1&&(n=this.addActions(t,u.extended,u.end,n)),n=this.addActions(t,u.value,u.end,n),!f.extend&&(r=u,n>m))break}}for(;this.actions.length>n;)this.actions.pop();return d&&t.setLookAhead(d),!r&&t.pos==this.stream.end&&(r=new Ln,r.value=t.p.parser.eofTerm,r.start=r.end=t.pos,n=this.addActions(t,r.value,r.end,n)),this.mainToken=r,this.actions}getMainToken(t){if(this.mainToken)return this.mainToken;let n=new Ln,{pos:r,p:i}=t;return n.start=r,n.end=Math.min(r+1,i.stream.end),n.value=r==i.stream.end?i.parser.eofTerm:0,n}updateCachedToken(t,n,r){let i=this.stream.clipPos(r.pos);if(n.token(this.stream.reset(i,t),r),t.value>-1){let{parser:s}=r.p;for(let a=0;a<s.specialized.length;a++)if(s.specialized[a]==t.value){let c=s.specializers[a](this.stream.read(t.start,t.end),r);if(c>=0&&r.p.parser.dialect.allows(c>>1)){(c&1)==0?t.value=c>>1:t.extended=c>>1;break}}}else t.value=0,t.end=this.stream.clipPos(i+1)}putAction(t,n,r,i){for(let s=0;s<i;s+=3)if(this.actions[s]==t)return i;return this.actions[i++]=t,this.actions[i++]=n,this.actions[i++]=r,i}addActions(t,n,r,i){let{state:s}=t,{parser:a}=t.p,{data:c}=a;for(let d=0;d<2;d++)for(let l=a.stateSlot(s,d?2:1);;l+=3){if(c[l]==65535)if(c[l+1]==1)l=Je(c,l+2);else{i==0&&c[l+1]==2&&(i=this.putAction(Je(c,l+2),n,r,i));break}c[l]==n&&(i=this.putAction(Je(c,l+1),n,r,i))}return i}},sl=class{static{o(this,"Parse")}constructor(t,n,r,i){this.parser=t,this.input=n,this.ranges=i,this.recovering=0,this.nextStackID=9812,this.minStackPos=0,this.reused=[],this.stoppedAt=null,this.lastBigReductionStart=-1,this.lastBigReductionSize=0,this.bigReductionCount=0,this.stream=new rl(n,i),this.tokens=new ol(t,this.stream),this.topTerm=t.top[1];let{from:s}=i[0];this.stacks=[el.start(this,t.top[0],s)],this.fragments=r.length&&this.stream.end-s>t.bufferLength*4?new il(r,t.nodeSet):null}get parsedPos(){return this.minStackPos}advance(){let t=this.stacks,n=this.minStackPos,r=this.stacks=[],i,s;if(this.bigReductionCount>300&&t.length==1){let[a]=t;for(;a.forceReduce()&&a.stack.length&&a.stack[a.stack.length-2]>=this.lastBigReductionStart;);this.bigReductionCount=this.lastBigReductionSize=0}for(let a=0;a<t.length;a++){let c=t[a];for(;;){if(this.tokens.mainToken=null,c.pos>n)r.push(c);else{if(this.advanceStack(c,r,t))continue;{i||(i=[],s=[]),i.push(c);let d=this.tokens.getMainToken(c);s.push(d.value,d.end)}}break}}if(!r.length){let a=i&&rR(i);if(a)return Oe&&console.log("Finish with "+this.stackID(a)),this.stackToTree(a);if(this.parser.strict)throw Oe&&i&&console.log("Stuck with token "+(this.tokens.mainToken?this.parser.getName(this.tokens.mainToken.value):"none")),new SyntaxError("No parse at "+n);this.recovering||(this.recovering=5)}if(this.recovering&&i){let a=this.stoppedAt!=null&&i[0].pos>this.stoppedAt?i[0]:this.runRecovery(i,s,r);if(a)return Oe&&console.log("Force-finish "+this.stackID(a)),this.stackToTree(a.forceAll())}if(this.recovering){let a=this.recovering==1?1:this.recovering*3;if(r.length>a)for(r.sort((c,d)=>d.score-c.score);r.length>a;)r.pop();r.some(c=>c.reducePos>n)&&this.recovering--}else if(r.length>1){e:for(let a=0;a<r.length-1;a++){let c=r[a];for(let d=a+1;d<r.length;d++){let l=r[d];if(c.sameState(l)||c.buffer.length>500&&l.buffer.length>500)if((c.score-l.score||c.buffer.length-l.buffer.length)>0)r.splice(d--,1);else{r.splice(a--,1);continue e}}}r.length>12&&(r.sort((a,c)=>c.score-a.score),r.splice(12,r.length-12))}this.minStackPos=r[0].pos;for(let a=1;a<r.length;a++)r[a].pos<this.minStackPos&&(this.minStackPos=r[a].pos);return null}stopAt(t){if(this.stoppedAt!=null&&this.stoppedAt<t)throw new RangeError("Can't move stoppedAt forward");this.stoppedAt=t}advanceStack(t,n,r){let i=t.pos,{parser:s}=this,a=Oe?this.stackID(t)+" -> ":"";if(this.stoppedAt!=null&&i>this.stoppedAt)return t.forceReduce()?t:null;if(this.fragments){let l=t.curContext&&t.curContext.tracker.strict,f=l?t.curContext.hash:0;for(let u=this.fragments.nodeAt(i);u;){let m=this.parser.nodeSet.types[u.type.id]==u.type?s.getGoto(t.state,u.type.id):-1;if(m>-1&&u.length&&(!l||(u.prop(M.contextHash)||0)==f))return t.useNode(u,m),Oe&&console.log(a+this.stackID(t)+` (via reuse of ${s.getName(u.type.id)})`),!0;if(!(u instanceof oe)||u.children.length==0||u.positions[0]>0)break;let g=u.children[0];if(g instanceof oe&&u.positions[0]==0)u=g;else break}}let c=s.stateSlot(t.state,4);if(c>0)return t.reduce(c),Oe&&console.log(a+this.stackID(t)+` (via always-reduce ${s.getName(c&65535)})`),!0;if(t.stack.length>=8400)for(;t.stack.length>6e3&&t.forceReduce(););let d=this.tokens.getActions(t);for(let l=0;l<d.length;){let f=d[l++],u=d[l++],m=d[l++],g=l==d.length||!r,w=g?t:t.split(),k=this.tokens.mainToken;if(w.apply(f,u,k?k.start:w.pos,m),Oe&&console.log(a+this.stackID(w)+` (via ${(f&65536)==0?"shift":`reduce of ${s.getName(f&65535)}`} for ${s.getName(u)} @ ${i}${w==t?"":", split"})`),g)return!0;w.pos>i?n.push(w):r.push(w)}return!1}advanceFully(t,n){let r=t.pos;for(;;){if(!this.advanceStack(t,null,null))return!1;if(t.pos>r)return RO(t,n),!0}}runRecovery(t,n,r){let i=null,s=!1;for(let a=0;a<t.length;a++){let c=t[a],d=n[a<<1],l=n[(a<<1)+1],f=Oe?this.stackID(c)+" -> ":"";if(c.deadEnd&&(s||(s=!0,c.restart(),Oe&&console.log(f+this.stackID(c)+" (restarted)"),this.advanceFully(c,r))))continue;let u=c.split(),m=f;for(let g=0;g<10&&u.forceReduce()&&(Oe&&console.log(m+this.stackID(u)+" (via force-reduce)"),!this.advanceFully(u,r));g++)Oe&&(m=this.stackID(u)+" -> ");for(let g of c.recoverByInsert(d))Oe&&console.log(f+this.stackID(g)+" (via recover-insert)"),this.advanceFully(g,r);this.stream.end>c.pos?(l==c.pos&&(l++,d=0),c.recoverByDelete(d,l),Oe&&console.log(f+this.stackID(c)+` (via recover-delete ${this.parser.getName(d)})`),RO(c,r)):(!i||i.score<u.score)&&(i=u)}return i}stackToTree(t){return t.close(),oe.build({buffer:nl.create(t),nodeSet:this.parser.nodeSet,topID:this.topTerm,maxBufferLength:this.parser.bufferLength,reused:this.reused,start:this.ranges[0].from,length:t.pos-this.ranges[0].from,minRepeatType:this.parser.minRepeatTerm})}stackID(t){let n=(Hd||(Hd=new WeakMap)).get(t);return n||Hd.set(t,n=String.fromCodePoint(this.nextStackID++)),n+t}};o(RO,"pushStackDedup");al=class{static{o(this,"Dialect")}constructor(t,n,r){this.source=t,this.flags=n,this.disabled=r}allows(t){return!this.disabled||this.disabled[t]==0}},Jd=o(e=>e,"id"),qn=class{static{o(this,"ContextTracker")}constructor(t){this.start=t.start,this.shift=t.shift||Jd,this.reduce=t.reduce||Jd,this.reuse=t.reuse||Jd,this.hash=t.hash||(()=>0),this.strict=t.strict!==!1}},Tt=class e extends Ho{static{o(this,"LRParser")}constructor(t){if(super(),this.wrappers=[],t.version!=14)throw new RangeError(`Parser version (${t.version}) doesn't match runtime version (14)`);let n=t.nodeNames.split(" ");this.minRepeatTerm=n.length;for(let c=0;c<t.repeatNodeCount;c++)n.push("");let r=Object.keys(t.topRules).map(c=>t.topRules[c][1]),i=[];for(let c=0;c<n.length;c++)i.push([]);function s(c,d,l){i[c].push([d,d.deserialize(String(l))])}if(o(s,"setProp"),t.nodeProps)for(let c of t.nodeProps){let d=c[0];typeof d=="string"&&(d=M[d]);for(let l=1;l<c.length;){let f=c[l++];if(f>=0)s(f,d,c[l++]);else{let u=c[l+-f];for(let m=-f;m>0;m--)s(c[l++],d,u);l++}}}this.nodeSet=new Zo(n.map((c,d)=>ke.define({name:d>=this.minRepeatTerm?void 0:c,id:d,props:i[d],top:r.indexOf(d)>-1,error:d==0,skipped:t.skippedNodes&&t.skippedNodes.indexOf(d)>-1}))),t.propSources&&(this.nodeSet=this.nodeSet.extend(...t.propSources)),this.strict=!1,this.bufferLength=1024;let a=ni(t.tokenData);this.context=t.context,this.specializerSpecs=t.specialized||[],this.specialized=new Uint16Array(this.specializerSpecs.length);for(let c=0;c<this.specializerSpecs.length;c++)this.specialized[c]=this.specializerSpecs[c].term;this.specializers=this.specializerSpecs.map(IO),this.states=ni(t.states,Uint32Array),this.data=ni(t.stateData),this.goto=ni(t.goto),this.maxTerm=t.maxTerm,this.tokenizers=t.tokenizers.map(c=>typeof c=="number"?new _t(a,c):c),this.topRules=t.topRules,this.dialects=t.dialects||{},this.dynamicPrecedences=t.dynamicPrecedences||null,this.tokenPrecTable=t.tokenPrec,this.termNames=t.termNames||null,this.maxNode=this.nodeSet.types.length-1,this.dialect=this.parseDialect(),this.top=this.topRules[Object.keys(this.topRules)[0]]}createParse(t,n,r){let i=new sl(this,t,n,r);for(let s of this.wrappers)i=s(i,t,n,r);return i}getGoto(t,n,r=!1){let i=this.goto;if(n>=i[0])return-1;for(let s=i[n+1];;){let a=i[s++],c=a&1,d=i[s++];if(c&&r)return d;for(let l=s+(a>>1);s<l;s++)if(i[s]==t)return d;if(c)return-1}}hasAction(t,n){let r=this.data;for(let i=0;i<2;i++)for(let s=this.stateSlot(t,i?2:1),a;;s+=3){if((a=r[s])==65535)if(r[s+1]==1)a=r[s=Je(r,s+2)];else{if(r[s+1]==2)return Je(r,s+2);break}if(a==n||a==0)return Je(r,s+1)}return 0}stateSlot(t,n){return this.states[t*6+n]}stateFlag(t,n){return(this.stateSlot(t,0)&n)>0}validAction(t,n){return!!this.allActions(t,r=>r==n?!0:null)}allActions(t,n){let r=this.stateSlot(t,4),i=r?n(r):void 0;for(let s=this.stateSlot(t,1);i==null;s+=3){if(this.data[s]==65535)if(this.data[s+1]==1)s=Je(this.data,s+2);else break;i=n(Je(this.data,s+1))}return i}nextStates(t){let n=[];for(let r=this.stateSlot(t,1);;r+=3){if(this.data[r]==65535)if(this.data[r+1]==1)r=Je(this.data,r+2);else break;if((this.data[r+2]&1)==0){let i=this.data[r+1];n.some((s,a)=>a&1&&s==i)||n.push(this.data[r],i)}}return n}configure(t){let n=Object.assign(Object.create(e.prototype),this);if(t.props&&(n.nodeSet=this.nodeSet.extend(...t.props)),t.top){let r=this.topRules[t.top];if(!r)throw new RangeError(`Invalid top rule name ${t.top}`);n.top=r}return t.tokenizers&&(n.tokenizers=this.tokenizers.map(r=>{let i=t.tokenizers.find(s=>s.from==r);return i?i.to:r})),t.specializers&&(n.specializers=this.specializers.slice(),n.specializerSpecs=this.specializerSpecs.map((r,i)=>{let s=t.specializers.find(c=>c.from==r.external);if(!s)return r;let a=Object.assign(Object.assign({},r),{external:s.to});return n.specializers[i]=IO(a),a})),t.contextTracker&&(n.context=t.contextTracker),t.dialect&&(n.dialect=this.parseDialect(t.dialect)),t.strict!=null&&(n.strict=t.strict),t.wrap&&(n.wrappers=n.wrappers.concat(t.wrap)),t.bufferLength!=null&&(n.bufferLength=t.bufferLength),n}hasWrappers(){return this.wrappers.length>0}getName(t){return this.termNames?this.termNames[t]:String(t<=this.maxNode&&this.nodeSet.types[t].name||t)}get eofTerm(){return this.maxNode+1}get topNode(){return this.nodeSet.types[this.top[1]]}dynamicPrecedence(t){let n=this.dynamicPrecedences;return n==null?0:n[t]||0}parseDialect(t){let n=Object.keys(this.dialects),r=n.map(()=>!1);if(t)for(let s of t.split(" ")){let a=n.indexOf(s);a>=0&&(r[a]=!0)}let i=null;for(let s=0;s<n.length;s++)if(!r[s])for(let a=this.dialects[n[s]],c;(c=this.data[a++])!=65535;)(i||(i=new Uint8Array(this.maxTerm+1)))[c]=1;return new al(t,r,i)}static deserialize(t){return new e(t)}};o(Je,"pair");o(rR,"findFinished");o(IO,"getSpecializer")});function sR(e,t){return e.length==t.length&&e.every((n,r)=>n==t[r])}function aR(e){let t=[[]];for(let n=0;n<e.length;n++)for(let r=0,i=t.length;r<i;r++)t.push(t[r].concat(e[n]));return t.sort((n,r)=>r.length-n.length)}function Un(e){let t=Object.create(null);for(let n in e){let r=e[n];Array.isArray(r)||(r=[r]);for(let i of n.split(" "))if(i){let s=[],a=2,c=i;for(let u=0;;){if(c=="..."&&u>0&&u+3==i.length){a=1;break}let m=/^"(?:[^"\\]|\\.)*?"|[^\/!]+/.exec(c);if(!m)throw new RangeError("Invalid path: "+i);if(s.push(m[0]=="*"?"":m[0][0]=='"'?JSON.parse(m[0]):m[0]),u+=m[0].length,u==i.length)break;let g=i[u++];if(u==i.length&&g=="!"){a=0;break}if(g!="/")throw new RangeError("Invalid path: "+i);c=i.slice(u)}let d=s.length-1,l=s[d];if(!l)throw new RangeError("Invalid path: "+i);let f=new zn(r,a,d>0?s.slice(0,d):null);t[l]=f.sort(t[l])}}return cR.add(t)}function dR(e,t){let n=Object.create(null);for(let s of e)if(!Array.isArray(s.tag))n[s.tag.id]=s.class;else for(let a of s.tag)n[a.id]=s.class;let{scope:r,all:i=null}=t||{};return{style:o(s=>{let a=i;for(let c of s)for(let d of c.set){let l=n[d.id];if(l){a=a?a+" "+l:l;break}}return a},"style"),scope:r}}var iR,Ie,oR,is,cR,zn,T,ts,Et,$O,AO,Rt,ns,cl,ze,an,Le,qe,dl,ii,rs,h,ute,os=p(()=>{"use strict";Kd();iR=0,Ie=class e{static{o(this,"Tag")}constructor(t,n,r,i){this.name=t,this.set=n,this.base=r,this.modified=i,this.id=iR++}toString(){let{name:t}=this;for(let n of this.modified)n.name&&(t=`${n.name}(${t})`);return t}static define(t,n){let r=typeof t=="string"?t:"?";if(t instanceof e&&(n=t),n?.base)throw new Error("Can not derive from a modified tag");let i=new e(r,[],null,[]);if(i.set.push(i),n)for(let s of n.set)i.set.push(s);return i}static defineModifier(t){let n=new is(t);return r=>r.modified.indexOf(n)>-1?r:is.get(r.base||r,r.modified.concat(n).sort((i,s)=>i.id-s.id))}},oR=0,is=class e{static{o(this,"Modifier")}constructor(t){this.name=t,this.instances=[],this.id=oR++}static get(t,n){if(!n.length)return t;let r=n[0].instances.find(c=>c.base==t&&sR(n,c.modified));if(r)return r;let i=[],s=new Ie(t.name,i,t,n);for(let c of n)c.instances.push(s);let a=aR(n);for(let c of t.set)if(!c.modified.length)for(let d of a)i.push(e.get(c,d));return s}};o(sR,"sameArray");o(aR,"powerSet");o(Un,"styleTags");cR=new M({combine(e,t){let n,r,i;for(;e||t;){if(!e||t&&e.depth>=t.depth?(i=t,t=t.next):(i=e,e=e.next),n&&n.mode==i.mode&&!i.context&&!n.context)continue;let s=new zn(i.tags,i.mode,i.context);n?n.next=s:r=s,n=s}return r}}),zn=class{static{o(this,"Rule")}constructor(t,n,r,i){this.tags=t,this.mode=n,this.context=r,this.next=i}get opaque(){return this.mode==0}get inherit(){return this.mode==1}sort(t){return!t||t.depth<this.depth?(this.next=t,this):(t.next=this.sort(t.next),t)}get depth(){return this.context?this.context.length:0}};zn.empty=new zn([],2,null);o(dR,"tagHighlighter");T=Ie.define,ts=T(),Et=T(),$O=T(Et),AO=T(Et),Rt=T(),ns=T(Rt),cl=T(Rt),ze=T(),an=T(ze),Le=T(),qe=T(),dl=T(),ii=T(dl),rs=T(),h={comment:ts,lineComment:T(ts),blockComment:T(ts),docComment:T(ts),name:Et,variableName:T(Et),typeName:$O,tagName:T($O),propertyName:AO,attributeName:T(AO),className:T(Et),labelName:T(Et),namespace:T(Et),macroName:T(Et),literal:Rt,string:ns,docString:T(ns),character:T(ns),attributeValue:T(ns),number:cl,integer:T(cl),float:T(cl),bool:T(Rt),regexp:T(Rt),escape:T(Rt),color:T(Rt),url:T(Rt),keyword:Le,self:T(Le),null:T(Le),atom:T(Le),unit:T(Le),modifier:T(Le),operatorKeyword:T(Le),controlKeyword:T(Le),definitionKeyword:T(Le),moduleKeyword:T(Le),operator:qe,derefOperator:T(qe),arithmeticOperator:T(qe),logicOperator:T(qe),bitwiseOperator:T(qe),compareOperator:T(qe),updateOperator:T(qe),definitionOperator:T(qe),typeOperator:T(qe),controlOperator:T(qe),punctuation:dl,separator:T(dl),bracket:ii,angleBracket:T(ii),squareBracket:T(ii),paren:T(ii),brace:T(ii),content:ze,heading:an,heading1:T(an),heading2:T(an),heading3:T(an),heading4:T(an),heading5:T(an),heading6:T(an),contentSeparator:T(ze),list:T(ze),quote:T(ze),emphasis:T(ze),strong:T(ze),link:T(ze),monospace:T(ze),strikethrough:T(ze),inserted:T(),deleted:T(),changed:T(),invalid:T(),meta:rs,documentMeta:T(rs),annotation:T(rs),processingInstruction:T(rs),definition:Ie.defineModifier("definition"),constant:Ie.defineModifier("constant"),function:Ie.defineModifier("function"),standard:Ie.defineModifier("standard"),local:Ie.defineModifier("local"),special:Ie.defineModifier("special")};for(let e in h){let t=h[e];t instanceof Ie&&(t.name=e)}ute=dR([{tag:h.link,class:"tok-link"},{tag:h.heading,class:"tok-heading"},{tag:h.emphasis,class:"tok-emphasis"},{tag:h.strong,class:"tok-strong"},{tag:h.keyword,class:"tok-keyword"},{tag:h.atom,class:"tok-atom"},{tag:h.bool,class:"tok-bool"},{tag:h.url,class:"tok-url"},{tag:h.labelName,class:"tok-labelName"},{tag:h.inserted,class:"tok-inserted"},{tag:h.deleted,class:"tok-deleted"},{tag:h.literal,class:"tok-literal"},{tag:h.string,class:"tok-string"},{tag:h.number,class:"tok-number"},{tag:[h.regexp,h.escape,h.special(h.string)],class:"tok-string2"},{tag:h.variableName,class:"tok-variableName"},{tag:h.local(h.variableName),class:"tok-variableName tok-local"},{tag:h.definition(h.variableName),class:"tok-variableName tok-definition"},{tag:h.special(h.variableName),class:"tok-variableName2"},{tag:h.definition(h.propertyName),class:"tok-propertyName tok-definition"},{tag:h.typeName,class:"tok-typeName"},{tag:h.namespace,class:"tok-namespace"},{tag:h.className,class:"tok-className"},{tag:h.macroName,class:"tok-macroName"},{tag:h.propertyName,class:"tok-propertyName"},{tag:h.operator,class:"tok-operator"},{tag:h.comment,class:"tok-comment"},{tag:h.meta,class:"tok-meta"},{tag:h.invalid,class:"tok-invalid"},{tag:h.punctuation,class:"tok-punctuation"}])});var lR,uR,fR,pR,mR,hR,gR,OR,yR,wR,SR,bR,vR,kR,xR,PR,_R,TR,CO,ER,RR,IR,QR,$R,AR,CR,MO,XO=p(()=>{"use strict";es();os();lR=177,uR=179,fR=184,pR=12,mR=13,hR=17,gR=20,OR=25,yR=53,wR=95,SR=142,bR=144,vR=145,kR=148,xR=10,PR=13,_R=32,TR=9,CO=47,ER=41,RR=125,IR=new ye((e,t)=>{for(let n=0,r=e.next;(t.context&&(r<0||r==xR||r==PR||r==CO&&e.peek(n+1)==CO)||r==ER||r==RR)&&e.acceptToken(lR),!(r!=_R&&r!=TR);)r=e.peek(++n)},{contextual:!0}),QR=new Set([wR,fR,gR,pR,hR,bR,vR,SR,kR,mR,yR,OR]),$R=new qn({start:!1,shift:o((e,t)=>t==uR?e:QR.has(t),"shift")}),AR=Un({"func interface struct chan map const type var":h.definitionKeyword,"import package":h.moduleKeyword,"switch for go select return break continue goto fallthrough case if else defer":h.controlKeyword,range:h.keyword,Bool:h.bool,String:h.string,Rune:h.character,Number:h.number,Nil:h.null,VariableName:h.variableName,DefName:h.definition(h.variableName),TypeName:h.typeName,LabelName:h.labelName,FieldName:h.propertyName,"FunctionDecl/DefName":h.function(h.definition(h.variableName)),"TypeSpec/DefName":h.definition(h.typeName),"CallExpr/VariableName":h.function(h.variableName),LineComment:h.lineComment,BlockComment:h.blockComment,LogicOp:h.logicOperator,ArithOp:h.arithmeticOperator,BitOp:h.bitwiseOperator,"DerefOp .":h.derefOperator,"UpdateOp IncDecOp":h.updateOperator,CompareOp:h.compareOperator,"= :=":h.definitionOperator,"<-":h.operator,'~ "*"':h.modifier,"; ,":h.separator,"... :":h.punctuation,"( )":h.paren,"[ ]":h.squareBracket,"{ }":h.brace}),CR={__proto__:null,package:10,import:18,true:380,false:380,nil:383,struct:48,func:68,interface:78,chan:94,map:118,make:157,new:159,const:204,type:212,var:224,if:236,else:238,switch:242,case:248,default:250,for:260,range:266,go:270,select:274,return:284,break:288,continue:290,goto:292,fallthrough:296,defer:300},MO=Tt.deserialize({version:14,states:"!=xO#{QQOOP$SOQOOO&UQTO'#CbO&]QRO'#FlO]QQOOOOQP'#Cn'#CnOOQP'#Co'#CoO&eQQO'#C|O(kQQO'#C{O)]QRO'#GiO+tQQO'#D_OOQP'#Ge'#GeO+{QQO'#GeO.aQTO'#GaO.hQQO'#D`OOQP'#Gm'#GmO.mQRO'#GdO/hQQO'#DgOOQP'#Gd'#GdO/uQQO'#DrO2bQQO'#DsO4QQTO'#GqO,^QTO'#GaO4XQQO'#DxO4^QQO'#D{OOQO'#EQ'#EQOOQO'#ER'#EROOQO'#ES'#ESOOQO'#ET'#ETO4cQQO'#EPO5}QQO'#EPOOQP'#Ga'#GaO6UQQO'#E`O6^QQO'#EcOOQP'#G`'#G`O6cQQO'#EsOOQP'#G_'#G_O&]QRO'#FnOOQO'#Fn'#FnO9QQQO'#G^QOQQOOO&]QROOO9XQQO'#C`O9^QSO'#CdO9lQQO'#C}O9tQQO'#DSO9yQQO'#D[O:kQQO'#CsO:pQQO'#DhO:uQQO'#EeO:}QQO'#EiO;VQQO'#EoO;_QQO'#EuO<uQQO'#ExO<|QQO'#FRO4cQQO'#FWO=WQQO'#FYO=]QRO'#F_O=jQRO'#FaO=uQQO'#FaOOQP'#Fe'#FeO4cQQO'#FgP=zOWO'#C^POOO)CAz)CAzOOQO'#G]'#G]OOQO,5<W,5<WOOQO-E9j-E9jO?TQTO'#CqOOQO'#C|'#C|OOQP,59g,59gO?tQQO'#D_O@fQSO'#FuO@kQQO'#C}O@pQQO'#D[O9XQQO'#FqO@uQRO,5=TOAyQQO,59yOCVQSO,5:[O@kQQO'#C}OCaQQO'#DjOOQP,59^,59^OOQO,5<a,5<aO?tQQO'#DeOOQO,5:e,5:eOOQO-E9s-E9sOOQP,59z,59zOOQP,59|,59|OCqQSO,5:QO(kQQO,5:ROC{QQO,5:RO&]QRO'#FxOOQO'#Fx'#FxOFjQQO'#GpOFwQQO,5:^OF|QQO,5:_OHdQQO,5:`OHlQQO,5:aOHvQRO'#FyOIaQRO,5=]OIuQQO'#DzOOQP,5:d,5:dOOQO'#EV'#EVOOQO'#EW'#EWOOQO'#EX'#EXOOQO'#EZ'#EZOOQO'#E['#E[O4cQQO,5:pO4cQQO,5:pO4cQQO,5:pO4cQQO,5:pO4cQQO,5:pO4cQQO,5:wOOQP,5:x,5:xO?tQQO'#EOOOQP,5:g,5:gOOQP,5:k,5:kO9yQQO,59vO4cQQO,5:zO4cQQO,5:}OI|QRO,5;_OOQO,5<Y,5<YOOQO-E9l-E9lO]QQOOOOQP'#Cb'#CbOOQP,58z,58zOOQP'#Cf'#CfOJWQQO'#CfOJ]QSO'#CkOOQP,59O,59OOJkQQO'#DPOLZQQO,5<UOLbQQO,59iOLsQQO,5<TOMpQQO'#DUOOQP,59n,59nOOQP,59v,59vONfQQO,59vONmQQO'#CwOOQP,59_,59_O?tQQO,5:SONxQRO'#EgO! VQQO'#EhOOQP,5;P,5;PO! |QQO'#EkO!!WQQO'#EnOOQP,5;T,5;TO!!`QRO'#EqO!!mQQO'#ErOOQP,5;Z,5;ZO!!uQTO'#CbO!!|QTO,5;aO&]QRO,5;aO!#WQQO,5;jO!$yQTO,5;dO!%WQQO'#EzOOQP,5;d,5;dO&]QRO,5;dO!%cQSO,5;mO!%mQQO'#E`O!%uQQO'#EcO!%zQQO'#FTO!&UQQO'#FTOOQP,5;m,5;mO!&ZQQO,5;mO!&`QTO,5;rO!&mQQO'#F[OOQP,5;t,5;tO!&xQTO'#GqOOQP,5;y,5;yOOQP'#Et'#EtOOQP,5;{,5;{O!']QTO,5<RPOOO'#Fk'#FkP!'jOWO,58xPOOO,58x,58xO!'uQQO,59yO!'zQQO'#GgOOQP,59i,59iO(kQQO,59vOOQP,5<],5<]OOQP-E9o-E9oOOQP1G/e1G/eOOQP1G/v1G/vO!([QSO'#DlO!(lQQO'#DlO!(wQQO'#DkOOQO'#Go'#GoO!(|QQO'#GoO!)UQQO,5:UO!)ZQQO'#GnO!)fQQO,5:PPOQO'#Cq'#CqO(kQQO1G/lOOQP1G/m1G/mO(kQQO1G/mOOQO,5<d,5<dOOQO-E9v-E9vOOQP1G/x1G/xO!)kQSO1G/yOOQP'#Cy'#CyOOQP1G/z1G/zO?tQQO1G/}O!)xQSO1G/{O!*YQQO1G/|O!*gQTO,5<eOOQP-E9w-E9wOOQP,5:f,5:fO!+QQQO,5:fOOQP1G0[1G0[O!,vQTO1G0[O!.wQTO1G0[O!/OQTO1G0[O!0pQTO1G0[O!1QQTO1G0cO!1bQQO,5:jOOQP1G/b1G/bOOQP1G0f1G0fOOQP1G0i1G0iOOQP1G0y1G0yOOQP,59Q,59QO&]QRO'#FmO!1mQSO,59VOOQP,59V,59VOOQO'#DQ'#DQO?tQQO'#DQO!1{QQO'#DQOOQO'#Gh'#GhO!2SQQO'#GhO!2[QQO,59kO!2aQSO'#CqOJkQQO'#DPOOQP,5=R,5=RO@kQQO1G1pOOQP1G/w1G/wO.hQQO'#ElO!2rQRO1G1oO@kQQO1G1oO@kQQO'#DVO?tQQO'#DWOOQP'#Gk'#GkO!2}QRO'#GjOOQP'#Gj'#GjO&]QRO'#FsO!3`QQO,59pOOQP,59p,59pO!3gQRO'#CxO!3uQQO'#CxO!3|QRO'#CxO.hQQO'#CxO&]QRO'#FoO!4XQQO,59cOOQP,59c,59cO!4dQQO1G/nO4cQQO,5;RO!4iQQO,5;RO&]QRO'#FzO!4nQQO,5;SOOQP,5;S,5;SO!6aQQO'#DgO?tQQO,5;VOOQP,5;V,5;VO&]QRO'#F}O!6hQQO,5;YOOQP,5;Y,5;YO!6pQRO,5;]O4cQQO,5;]O&]QRO'#GOO!6{QQO,5;^OOQP,5;^,5;^O!7TQRO1G0{O!7`QQO1G0{O4cQQO1G1UO!8vQQO1G1UOOQP1G1O1G1OO!9OQQO'#GPO!9YQQO,5;fOOQP,5;f,5;fO4cQQO'#E{O!9eQQO'#E{O<uQQO1G1OOOQP1G1X1G1XO!9jQQO,5:zO!9jQQO,5:}O!9tQSO,5;oO!:OQQO,5;oO!:VQQO,5;oO!9OQQO'#GRO!:aQQO,5;vOOQP,5;v,5;vO!<PQQO'#F]O!<WQQO'#F]POOO-E9i-E9iPOOO1G.d1G.dO!<]QQO,5:VO!<gQQO,5=ZO!<tQQO,5=ZOOQP1G/p1G/pO!<|QQO,5=YO!=WQQO,5=YOOQP1G/k1G/kOOQP7+%W7+%WOOQP7+%X7+%XOOQP7+%e7+%eO!=cQQO7+%eO!=hQQO7+%iOOQP7+%g7+%gO!=mQQO7+%gO!=rQQO7+%hO!>PQSO7+%hOOQP7+%h7+%hO4cQQO7+%hOOQP1G0Q1G0QO!>^QQO1G0QOOQP1G0U1G0UO!>fQQO1G0UOF|QQO1G0UOOQO,5<X,5<XOOQO-E9k-E9kOOQP1G.q1G.qOOQO,59l,59lO?tQQO,59lO!?cQQO,5=SO!?jQQO,5=SOOQP1G/V1G/VO!?rQQO,59yO!?}QRO7+'[O!@YQQO'#EmO!@dQQO'#HOO!@lQQO,5;WOOQP7+'Z7+'ZO!@qQRO7+'ZOOQP,59q,59qOOQP,59r,59rOOQO'#DZ'#DZO!@]QQO'#FtO!@|QRO,59tOOQO,5<_,5<_OOQO-E9q-E9qOOQP1G/[1G/[OOQP,59d,59dOHgQQO'#FpO!3uQQO,59dO!A_QRO,59dO!AjQRO,59dOOQO,5<Z,5<ZOOQO-E9m-E9mOOQP1G.}1G.}O(kQQO7+%YOOQP1G0m1G0mO4cQQO1G0mOOQO,5<f,5<fOOQO-E9x-E9xOOQP1G0n1G0nO!AxQQO'#GdOOQP1G0q1G0qOOQO,5<i,5<iOOQO-E9{-E9{OOQP1G0t1G0tO4cQQO1G0wOOQP1G0w1G0wOOQO,5<j,5<jOOQO-E9|-E9|OOQP1G0x1G0xO!B]QQO7+&gO!BeQSO7+&gO!CsQSO7+&pO!CzQQO7+&pOOQO,5<k,5<kOOQO-E9}-E9}OOQP1G1Q1G1QO!DRQQO,5;gOOQO,5;g,5;gO!DWQSO7+&jOOQP7+&j7+&jO!DbQQO7+&pO!7`QQO1G1[O!DgQQO1G1ZOOQO1G1Z1G1ZO!DnQSO1G1ZOOQO,5<m,5<mOOQO-E:P-E:POOQP1G1b1G1bO!DxQSO'#GqO!E]QQO'#F^O!EbQQO'#F^O!EgQQO,5;wOOQO,5;w,5;wO!ElQSO1G/qOOQO1G/q1G/qO!EyQSO'#DoO!FZQQO'#DoO!FfQQO'#DnOOQO,5<c,5<cO!FkQQO1G2uOOQO-E9u-E9uOOQO,5<b,5<bO!FxQQO1G2tOOQO-E9t-E9tOOQP<<IP<<IPOOQP<<IT<<ITOOQP<<IR<<IRO!GSQSO<<ISOOQP<<IS<<ISO4cQQO<<ISO!GaQSO<<ISOOQP7+%l7+%lO!GkQQO7+%lOOQP7+%p7+%pO!GpQQO7+%pO!GuQQO7+%pOOQO1G/W1G/WOOQO,5<^,5<^O!G}QQO1G2nOOQO-E9p-E9pOOQP<<Jv<<JvO.hQQO'#F{O!@YQQO,5;XOOQO,5;X,5;XO!HUQQO,5=jO!H^QQO,5=jOOQO1G0r1G0rOOQP<<Ju<<JuOOQP,5<`,5<`OOQP-E9r-E9rOOQO,5<[,5<[OOQO-E9n-E9nO!HfQRO1G/OOOQP1G/O1G/OOOQP<<Ht<<HtOOQP7+&X7+&XO!HqQQO'#DeOOQP7+&c7+&cOOQP<<JR<<JRO!HxQRO<<JRO!ITQQO<<J[O!I]QQO<<J[OOQO1G1R1G1ROOQP<<JU<<JUO4cQQO<<J[O!IbQSO7+&vOOQO7+&u7+&uO!IlQQO7+&uO4cQQO,5;xOOQO1G1c1G1cO!<]QQO,5:YP!<]QQO'#FwP?tQQO'#FvOOQPAN>nAN>nO4cQQOAN>nO!IsQSOAN>nOOQP<<IW<<IWOOQP<<I[<<I[O!I}QQO<<I[P!>nQQO'#FrOOQO,5<g,5<gOOQO-E9y-E9yOOQO1G0s1G0sOOQO,5<h,5<hO!JVQQO1G3UOOQO-E9z-E9zOOQP7+$j7+$jO!J_QQO'#GnO!B]QQOAN?mO!JjQQOAN?vO!JqQQOAN?vO!KzQSOAN?vOOQO<<Ja<<JaO!LRQSO1G1dO!L]QSO1G/tOOQO1G/t1G/tO!LjQSOG24YOOQPG24YG24YOOQPAN>vAN>vO!LtQQOAN>vP.hQQO'#F|OOQPG25XG25XO!LyQQOG25bO!MOQQO'#FPOOQPG25bG25bO!MZQQOG25bOOQPLD)tLD)tOOQPG24bG24bO!JqQQOLD*|O!9OQQO'#GQO!McQQO,5;kOOQP,5;k,5;kO?tQQO'#FQO!MnQQO'#FQO!MsQQOLD*|OOQP!$'Nh!$'NhOOQO,5<l,5<lOOQO-E:O-E:OOOQP1G1V1G1VO!MzQQO,5;lOOQO,5;l,5;lO!NPQQO!$'NhOOQO1G1W1G1WO!JqQQO!)9DSOOQP!.K9n!.K9nO# {QTO'#CqO#!`QTO'#CqO##}QSO'#CqO#$XQSO'#CqO#&]QSO'#CqO#&gQQO'#FyO#&tQQO'#FyO#'OQQO,5=]O#'ZQQO,5=]O#'cQQO,5:pO!7`QQO,5:pOF|QQO,5:pO#'cQQO,5:pO!7`QQO,5:pOF|QQO,5:pO#'cQQO,5:pO!7`QQO,5:pOF|QQO,5:pO#'cQQO,5:pO!7`QQO,5:pOF|QQO,5:pO#'cQQO,5:pO!7`QQO,5:pOF|QQO,5:pO!7`QQO,5:wO!7`QQO,5:zO!7`QQO,5:}O#(yQSO'#CbO#)}QSO'#CbO#*bQSO'#GqO#*rQSO'#GqO#+PQRO'#GgO#+yQSO,5<eO#,ZQSO,5<eO#,hQSO1G0[O#-rQTO1G0[O#-yQSO1G0[O#.TQSO1G0[O#0{QTO1G0[O#1SQSO1G0[O#2eQSO1G0[O#2lQTO1G0[O#2sQSO1G0[O#4XQSO1G0[O#4`QTO1G0[O#4jQSO1G0[O#4wQSO1G0cO#5dQTO'#CqO#5kQTO'#CqO#6bQSO'#GqO#'cQQO'#EPO!7`QQO'#EPOF|QQO'#EPO#8]QQO'#EPO#8gQQO'#EPO#8qQQO'#EPO#8{QQO'#E`O#9TQQO'#EcO@kQQO'#C}O?tQQO,5:RO#9YQQO,59vO#:iQQO,59vO?tQQO,59vO?tQQO1G/lO?tQQO1G/mO?tQQO7+%YO?tQQO'#C{O#:pQQO'#DgO#9YQQO'#D[O#:wQQO'#D[O#:|QSO,5:QO#;WQQO,5:RO#;]QQO1G/nO?tQQO,5:SO#;bQQO'#Dh",stateData:"#;m~O$yOSPOS$zPQ~OVvOX{O[oO^YOaoOdoOh!POjcOr|Ow}O!P!OO!QnO!WaO!]!QO!phO!qhO#Y!RO#^!SO#d!TO#j!UO#m!VO#v!WO#{!XO#}!YO$S!ZO$U![O$V![O$W!]O$Y!^O$[!_O%OQO%UTO%VUO%YVO%fiO%giO%hjO%ikO%jlO$v%QP~OTzO~P]O$z!`O~OVeXZeX^eX^!TXj!TXnUXneX!QeX!WeX!W!TX!|eX#ReX#TeX#UeX#WUX$weX%YeX%`eX%feX%geX%ieX%jeX%keX%leX%meX%neX%oeX%peX%qeX~O!a#hX~P$XOV!bO$w!bO~O[!wX^pX^!wXa!wXd!wXhpXh!wXrpXr!wXwpXw!wX!PpX!P!wX!QpX!Q!wX!WpX!W!wX!]pX!]!wX!p!wX!q!wX%OpX%O!wX%U!wX%V!wX%YpX%Y!wX%f!wX%g!wX%h!wX%i!wX%j!wX~O^!hOh!POr!jOw}O!P!OO!Q!kO!WaO!]!QO%O!eO%Y!fO~On!lO#W%]XV%]X^%]Xh%]Xr%]Xw%]X!P%]X!Q%]X!W%]X!]%]X#T%]X$w%]X%O%]X%Y%]Xu%]X~O[oO^YOaoOdoOh!POr!pOw}O!P!OO!WaO!]!QO!phO!qhO%O+wO%UTO%VUO%YVO%fiO%giO%hjO%ikO%jlO~O!Q-OO~P*aOj!qO^%XX]%XXn%XX!V%XX~O!W!tOV%TXZ%TX^%TXn%TX!Q%TX!W%TX!|%TX#R%TX#T%TX#U%TX$w%TX%Y%TX%`%TX%f%TX%g%TX%i%TX%j%TX%k%TX%l%TX%m%TX%n%TX%o%TX%p%TX%q%TX]%TX!V%TXj%TXi%TX!a%TXu%TX~OZ!sO~P,^O%O!eO~O!W!tO^%WXj%WX]%WXn%WX!V%WXu%WXV%WX$w%WX%`%WX#T%WX[%WX!a%WX~Ou!{O!QnO!V!zO~P*aOV!}O[oO^YOaoOdoOh!POjcOr!pOw}O!P!OO!QnO!WaO!]!QO!phO!qhO#Y!RO#^!SO#d!TO#j!UO#m!VO#v!WO#{!XO#}!YO$S!ZO$U![O$V![O$W!]O$Y!^O$[!_O%OQO%UTO%VUO%YVO%fiO%giO%hjO%ikO%jlOi%dP~O^#QO~OZ#RO^#VOn#TO!Q#cO!W#SO#R#dO%Y#XO%`#ZO%fiO%giO%i#ZO%j#YO%k#XO%l#XO%m#YO%n#YO%o#YO%p#[O%q#]OV`X#T%eX#U%eX$w`X~O!|#`O~P2gO^#VO~O^#eO~O!QnO~P*aO[oO^YOaoOdoOh!POr!pOw}O!QnO!WaO!]!QO!phO!qhO%O+wO%UTO%VUO%YVO%fiO%giO%hjO%ikO%jlO~O!P#hO~P4jO#T#iO#U#iO~O#W#jO~O!a#kO~OVvO[oO^YOaoOdoOh!POjcOr|Ow}O!P!OO!QnO!WaO!]!QO!phO!qhO#Y!RO#^!SO#d!TO#j!UO#m!VO#v!WO#{!XO#}!YO$S!ZO$U![O$V![O$W!]O$Y!^O$[!_O%OQO%UTO%VUO%YVO%fiO%giO%hjO%ikO%jlO~O$v%QX~P6hO%O#oO~OZ#rO[#qO^#sO%O#oO~O^#uO%O#oO~Oj#yO~O^!hOh!POr!jOw}O!P!OO!Q#|O!WaO!]!QO%O!eO%Y!fO~Oj#}O~O!W$PO~O^$RO%O#oO~O^$UO%O#oO~O^$XO%O#oO~O[oO^YOaoOdoOh!POr!pOw}O!P!OO!Q-PO!WaO!]!QO!phO!qhO%O$ZO%UTO%VUO%YVO%fiO%giO%hjO%ikO%jlO~Oj$`O~P;_OV$fOjcO~P;_Oj$kO~O!QnOV$RX$w$RX~P*aO%O$oOV$TX$w$TX~O%O$oO~O${$rO$|$rO$}$tO~OZeX^!TX!W!TXj!TXn!TXh!TXr!TXw!TX{!TX!P!TX!Q!TX!]!TX%O!TX%Y!TX~O]!TX!V!TXu!TX#T!TXV!TX$w!TX%`!TX[!TX!a!TX~P>VO^!hOh!POr-TOw}O!P-_O!Q-`O!W-^O!]-eO%O!eO%Y!fO~OZ!sO~O^#uO~O!P$xO~On!lO#W%]aV%]a^%]ah%]ar%]aw%]a!P%]a!Q%]a!W%]a!]%]a#T%]a$w%]a%O%]a%Y%]au%]a~O]${O^#QO~OZ#RO^#VO!W#SO%Y#XO%`#ZO%fiO%giO%i#ZO%j#YO%k#XO%l#XO%m#YO%n#YO%o#YO%p#[O%q#]O~O]$|O!|,WO~PBROj!qOn%QO!QnOi%cP~P*aO!V%WO!|#`O~PBRO!V%YO~OV!}O[oO^YOaoOdoOh!POjcOr!pOw}O!P!OO!QnO!WaO!]!QO!phO!qhO#Y!RO#^!SO#d!TO#j!UO#m!VO#v!WO#{!XO#}!YO$S!ZO$U![O$V![O$W!]O$Y!^O$[!_O%OQO%UTO%VUO%YVO%fiO%giO%hjO%ikO%jlO~Oi%dX#p%dX#q%dX~PDQOi%]O~O[oO^YOaoOdoOh!POr!pOw}O!P!OO!Q-QO!WaO!]!QO!phO!qhO%O+{O%UTO%VUO%YVO%fiO%giO%hjO%ikO%jlO~O^%aO%O%_O~O!QnO!a%cO~P*aO!QnOn$mX#T$mX#U$mXV$mX$w$mX!a$mX~P*aOn#TO#T%ea#U%eaV%ea$w%ea!a%ea~O]%fO~PF|OV#ga$w#ga~PDTO[%sO~OZ#rO[#qO]%vO%O#oO~O^!hOh!POn%zOr-TOu%xOw}O!P-_O!Q-`O!W-^O!]-eO%O,dO%Y!fO]%[P~O^&OOh!POr!jOw}O!P!OO!Q!kO!WaO!]!QO%Y!fO^%ZXj%ZX~O%O%}O~PKfOjcO^qa]qanqa!Vqa~O^#uO!W&SO~O^!hOh!POr-TOw}O{&WO!P-_O!Q-`O!W-^O!]-eO%O,xO%Y!fO~Oi&^O~PL{O^!hOh!POr!jOw}O!Q!kO!WaO!]!QO%O!eO%Y!fO~O!P#hO~PMwOi&eO%O,yO%Y!fO~O#T&gOV#ZX$w#ZX~P?tO]&kO%O#oO~O^!hOh!POr-TOw}O!P-_O!Q-`O!]-eO%O!eO%Y!fO~O!W&lO#T&mO~P! _O]&qO%O#oO~O#T&sOV#eX$w#eX~P?tO]&vO%O#oO~OjeX~P$XOjcO!|,XO~P2gOn!lO#W&yO#W%]X~O^#VOn#TO!Q#cO!W#SO!|,XO#R#dO%Y#XO%`#ZO%fiO%giO%i#ZO%j#YO%k#XO%l#XO%m#YO%n#YO%o#YO%p#[O%q#]OV`X#T%eX#U%eX~OZ&zOj$`O$w`X~P!#cOi'OO#p'PO#q'QO~OZ#ROjcO~P!#cO#T'TO#U#iO~O#W'UO~OV'WO!QnO~P*aOV'XO~OjcO~O!|#`OV#za$w#za~PBROi'[O#p']O#q'^O~On#TO!|#`OV%eX$w%eX!a%eX~PBRO!|#`OV$Za$w$Za~PBRO${$rO$|$rO$}'`O~O]${O~O%O!eO]%ZXn%ZX!V%ZX~PKfO!|#`Oi!_Xn!_X!a!`X~PBROi!_Xn!_X!a!`X~O!a'aO~On'bOi%cX~Oi'dO~On'eO!V%bX!a%bX~O!V'gO~O]'jOn'kO!|,YO~PBROn'nO!V'mO!a'oO!|#`O~PBRO!QnO!V'qO!a'rO~P*aO!|#`On$ma#T$ma#U$maV$ma$w$ma!a$ma~PBRO]'sOu'tO~O%Y#XO%j#YO%k#XO%l#XO%m#YO%n#YO%o#YOV!xiZ!xi^!xin!xi!Q!xi!W!xi!|!xi#R!xi#T!xi#U!xi$w!xi%`!xi%f!xi%g!xi%i!xi%p!xi%q!xi~O!V!xii!xi!a!xi~P!+YO%Y#XO%`#ZO%fiO%giO%i#ZO%j#YO%k#XO%l#XO%m#YO%n#YO%o#YOV!xiZ!xi^!xin!xi!Q!xi!W!xi#R!xi#T!xi#U!xi$w!xi%p!xi%q!xi!V!xii!xi!a!xi~O!|!xi~P!-TO!|#`O~P!-TO%Y#XO%`#ZO%fiO%giO%i#ZO%j#YO%k#XO%l#XO%m#YO%n#YO%o#YO%p#[OV!xiZ!xi^!xin!xi!Q!xi!W!xi#R!xi#T!xi#U!xi$w!xi%q!xi~O!|#`O!V!xii!xi!a!xi~P!/VO!|#`OV#Pi$w#Pi!a#Pi~PBRO]'uOn'wOu'vO~OZ#rO[#qO]'zO%O#oO~Ou'|O~P?tOn'}O]%[X~O](PO~OZeX^mX^!TXj!TX!W!TX~OjcOV$]i$w$]i~O%`(ZOV%^X$w%^Xn%^X!V%^X~Oi(`O~PL{O[(aO!W!tOVlX$wlX~On(bO~P?tO[(aOVlX$wlX~Oi(hO%O,yO%Y!fO~O!V(iO~O#T(kO~O](nO%O#oO~O[oO^YOaoOdoOh!POr!pOu-bOw}O!P!OO!QnO!V-UO!WaO!]!QO!phO!qhO%UTO%VUO%YVO%fiO%giO%hjO%ikO%jlO~O%O+zO~P!4vO](sO%O#oO~O#T(tOV#ea$w#ea~O](xO%O#oO~O#k(yOV#ii$w#ii~O[oO^YOaoOdoOh!POr!pOw}O!P!OO!Q-PO!WaO!]!QO!phO!qhO%O+xO%UTO%VUO%YVO%fiO%giO%hjO%ikO%jlO~O^(|O%O%_O~O#p%dP#q%dP~P/uOi)PO#p'PO#q'QO~O!a)RO~O!QnO#y)VO~P*aOV)WO!|#`O~PBROj#wa~P;_OV)WO!QnO~P*aOi)]O#p']O#q'^O~O[oO^YOaoOdoOh!POr!pOw}O!P!OO!QnO!WaO!]!QO!phO!qhO%UTO%VUO%YVO%fiO%giO%hjO%ikO%jlO~O%O,eO~P!:lO!a)bO~Oj!qO!QnO~P*aOj!qO!QnOi%ca~P*aOn)iOi%ca~O!V%ba!a%ba~P?tOn)lO!V%ba!a%ba~O])nO~O])oO~O!V)pO~O!QnO!V)rO!a)sO~P*aO!V)rO!a)sO!|#`O~PBRO])uOn)vO~O])wOn)xO~O^!hOh!POr-TOu%xOw}O!P-_O!Q-`O!W-^O!]-eO%O,dO%Y!fO~O]%[a~P!>nOn)|O]%[a~O]${O]tXntX~OjcOV$^q$w$^q~On*PO{&WO~P?tOn*SO!V%rX~O!V*UO~OjcOV$]q$w$]q~O%`(ZOV|a$w|an|a!V|a~O[*]OVla$wla~O[*]O!W!tOVla$wla~On*PO{&WO!W*`O^%WXj%WX~P! _OjcO#j!UO~OjcO!|,XO~PBROZ*dO^#VO!W#SO%Y#XO%`#ZO%fiO%giO%i#ZO%j#YO%k#XO%l#XO%m#YO%n#YO%o#YO%p#[O%q#]O~O!|#`O~P!BoO#^*eO~P?tO!a*fO~Oj$`O!|,XO~P!BoO#W*hO~Oj#wi~P;_OV*kO!|#`O~PBROn#TO!Q#cO!|#`O!a$QX#T%eX~PBRO#T*lO~O#W*lO~O!a*mO~O!|#`Oi!_in!_i~PBRO!|#`Oi!bXn!bX!a!cX~PBROi!bXn!bX!a!cX~O!a*nO~Oj!qO!QnOi%ci~P*aO!V%bi!a%bi~P?tO!V*qO!a*rO!|#`O~PBRO!V*qO!|#`O~PBRO]*tO~O]*uO~O]*uOu*vO~O]%[i~P!>nO%O!eO!V%ra~On*|O!V%ra~O[+OOVli$wli~O%O+yO~P!4vO#k+QOV#iy$w#iy~O^+RO%O%_O~O]+SO~O!|,XOj#xq~PBROj#wq~P;_O!V+ZO!|#`O~PBRO]+[On+]O~O%O!eO!V%ri~O^#QOn'eO!V%bX~O#^+`O~P?tOj+aO~O^#VO!W#SO!|#`O%Y#XO%`#ZO%fiO%giO%i#ZO%j#YO%k#XO%l#XO%m#YO%n#YO%o#YO%p#[O%q#]O~OZ+cO~P!JvO!|#`O!a$Qi~PBRO!|#`Oi!bin!bi~PBRO!V+dO!|#`O~PBRO]+eO~O]+fO~Oi+iO#p+jO#q+kO~O^+lO%O%_O~Oi+pO#p+jO#q+kO~O!a+rO~O#^+sO~P?tO!a+tO~O]+uO~OZeX^eX^!TXj!TX!WeX!W!TX!|eX%YeX%`eX%feX%geX%ieX%jeX%keX%leX%meX%neX%oeX%peX%qeXVeXneX!QeX#ReX#TeX#UeX$weX~O]eX]!TX!VeXieX!aeX~P!NUOjeX~P!NUOZeX^eX^!TXj!TX!WeX!W!TX!|eX%YeX%`eX%feX%geX%ieX%jeX%keX%leX%meX%neX%oeX%peX%qeXn!TX!VeX~O]eX!V!TX~P#!gOh!TXr!TXw!TX{!TX!P!TX!Q!TX!]!TX%O!TX%Y!TX~P#!gOZeX^eX^!TXj!TXneX!WeX!W!TX!|eX%YeX%`eX%feX%geX%ieX%jeX%keX%leX%meX%neX%oeX%peX%qeX~O]eXueX~P#$xO]$mXn$mXu$mX~PF|Oj$mXn$mX~P!7`On+|O]%eau%ea~On+}Oj%ea~O[oO^YOaoOdoOh!POr!pOw}O!P!OO!Q-OO!WaO!]!QO!phO!qhO%O+yO%UTO%VUO%YVO%fiO%giO%hjO%ikO%jlO~OZeX]!TX^UXhUXnUXn!TXrUXuUXwUX!PUX!QUX!WUX!W!TX!]UX%OUX%YUX~OnUX!QeX!aeX#TeX#WUX~P#$xOn+|O!|,YO]%eXu%eX~PBROn+}O!|,XOj%eX~PBRO^&OOV%ZXj%ZX$w%ZX]%ZXn%ZX!V%ZXu%ZX%`%ZX#T%ZX[%ZX!a%ZX~P?wO!|,YO]$man$mau$ma~PBRO!|,XOj$man$ma~PBRO%Y#XO%j#YO%k#XO%l#XO%m#YO%n#YO%o#YOZ!xi]!xi^!xi!W!xi!|!xi%`!xi%f!xi%g!xi%i!xi%p!xi%q!xi~Oj!xi~P!+YOn!xiu!xi~P#,hO%Y#XO%`#ZO%fiO%giO%i#ZO%j#YO%k#XO%l#XO%m#YO%n#YO%o#YOZ!xi]!xi^!xi!W!xi!|!xi%p!xi%q!xi~O%Y#XO%`#ZO%fiO%giO%i#ZO%j#YO%k#XO%l#XO%m#YO%n#YO%o#YOV!xiZ!xi^!xij!xin!xi!Q!xi!W!xi#R!xi#T!xi#U!xi$w!xi%p!xi%q!xi~O!|!xi~P#/_On!xiu!xi~P#.TO%Y#XO%`#ZO%fiO%giO%i#ZO%j#YO%k#XO%l#XO%m#YO%n#YO%o#YOZ!xi]!xi^!xi!W!xi%p!xi%q!xi~O!|,WO~P#1^O!|,XO~P#/_O!|,YOn!xiu!xi~P#1^O%Y#XO%`#ZO%fiO%giO%i#ZO%j#YO%k#XO%l#XO%m#YO%n#YO%o#YO%p#[OZ!xi]!xi^!xi!W!xi%q!xi~O!|,WO~P#3QO!|,XOj!xi~P!/VO!|,YOn!xiu!xi~P#3QO!|,XOj#Pi~PBROV!TXZeX^mX!W!TX$w!TX~O%`!TX~P#5RO[!TXhmXnmXrmXwmX!PmX!QmX!WmX!]mX%OmX%YmX~P#5ROn#TO!Q,aO!|,XO#R#dOj`X#T%eX#U%eX~PBRO[oO^YOaoOdoOh!POr!pOw}O!P#hO!WaO!]!QO!phO!qhO%UTO%VUO%YVO%fiO%giO%hjO%ikO%jlO~O!Q-OO%O+yO~P#6{O!Q-PO%O+xO~P#6{O!Q-QO%O+{O~P#6{O#T,bO#U,bO~O#W,cO~O^!hOh!POr-TOw}O!P-_O!Q-WO!W-^O!]-eO%O!eO%Y!fO~O^!hOh!POr-TOw}O!Q-`O!W-^O!]-eO%O!eO%Y!fO~O!P-VO~P#9zO%O+wO~P!4vO!P-XO~O!V-YO!|#`O~PBRO!V-ZO~O!V-[O~O!W-dO~OP%ka%Oa~",goto:"!FW%sPP%tP%wP%zP'SP'XPPPP'`'cP'u'uP)w'u-_PPP0j0m0qP1V4b1VP7s8WP1VP8a8d8hP8p8w1VPP1V8{<`?vPPCY-_-_-_PCdCuCxPC{DQ'u'uDV'uES'u'u'u'uGUIW'uPPJR'uJUMjMjMj'u! r! r!#SP!$`!%d!&d'cP'cPP'cP!&yP!'V!'^!&yP!'a!'h!'n!'w!&yP!'z!(R!&y!(U!(fPP!&yP!(x!)UPP!&y!)Y!)c!&yP!)g!)gP!&yP!&yP!)j!)m!&v!&yP!&yPPP!&yP!&yP!)q!)q!)w!)}!*U!*[!*d!*j!*p!*w!*}!+T!+Z!.q!.x!/O!/X!/m!/s!/z!0Q!0W!0^!0d!0jPPPPPPPPP!0p!1f!1k!1{!2kPP!7P!:^P!>u!?Z!?_!@Z!@fP!@p!D_!Df!Di!DuPPPPPPPPPPPP!FSR!aPRyO!WXOScw!R!T!U!W#O#k#n#u$R$X&O&j&u&|'W'Y']'})W)|*k*w+gQ#pzU#r{#s%uQ#x|U$T!S$U&pQ$^!VQ$y!lR)U'RVROS#nQ#t{T%t#s%uR#t{qrOScw!U!V!W#O#k#n&|'W'Y)W*k+g%PoOSYacmnw!U!V!W!X!Z!_!q#O#Q#S#T#V#^#_#`#a#b#c#i#j#k#n$f%c&g&l&s&x&y&|'P'R'T'U'W'X'Y']'a'b'o'r'w(k(t)V)W)i)s*`*h*k*l*n*o*r+g+|+},Q,R,S,T,U,V,W,X,Y,Z,[,],^,_,`,a,b,c,{,|,}-O-P-Q-^%O]OSYacmnw!U!V!W!X!Z!_!q#O#Q#S#T#V#^#_#`#a#b#c#i#j#k#n$f%c&g&l&s&x&y&|'P'R'T'U'W'X'Y']'a'b'o'r'w(k(t)V)W)i)s*`*h*k*l*n*o*r+g+|+},Q,R,S,T,U,V,W,X,Y,Z,[,],^,_,`,a,b,c,{,|,}-O-P-Q-^#u!iW^!O!h!t!z#e#h#u#v#y#|#}$P$Q$T$W$v$x%W%Y%a%x%y&O&S&W&]&`&b&d&m'e'|'}(S([(c(i(o(|)l)|*P*Q*S*p*w*|+R+^+j+l,h-U-V-W-X-Y-Z-[-]-_-d'cbOSWYacmnw!O!U!V!W!X!Z!_!h!q!t!z#O#Q#S#T#V#^#_#`#a#b#c#e#h#i#j#k#n#u#v#y#|$P$Q$T$W$f$v$x%W%Y%a%c%x%y&O&W&]&`&g&l&m&s&x&y&|'P'R'T'U'W'X'Y']'a'b'e'o'r'w'|'}(S([(c(i(k(o(t(|)V)W)i)l)s)|*Q*`*h*k*l*n*o*p*r*w+R+g+j+l+|+},Q,R,S,T,U,V,W,X,Y,Z,[,],^,_,`,a,b,c,h,{,|,}-O-P-Q-U-V-W-X-Y-Z-[-]-^-_-dR$O!PT&c#}&dW%`#R&z*d+cQ&Q#vS&V#y&]S&`#}&dR*Y(b'cZOSWYacmnw!O!U!V!W!X!Z!_!h!q!t!z#O#Q#S#T#V#^#_#`#a#b#c#e#h#i#j#k#n#u#v#y#|$P$Q$T$W$f$v$x%W%Y%a%c%x%y&O&W&]&`&g&l&m&s&x&y&|'P'R'T'U'W'X'Y']'a'b'e'o'r'w'|'}(S([(c(i(k(o(t(|)V)W)i)l)s)|*Q*`*h*k*l*n*o*p*r*w+R+g+j+l+|+},Q,R,S,T,U,V,W,X,Y,Z,[,],^,_,`,a,b,c,h,{,|,}-O-P-Q-U-V-W-X-Y-Z-[-]-^-_-d%fWOSWYacmnw!O!U!V!W!X!Z!_!q!z#O#Q#S#T#V#^#_#`#a#b#c#h#i#j#k#n#v#|$f$v$x%W%Y%c&g&l&s&x&y&|'P'R'T'U'W'X'Y']'a'b'o'r'w(i(k(t)V)W)i)s*`*h*k*l*n*o*r+g+|+},Q,R,S,T,U,V,W,X,Y,Z,[,],^,_,`,a,b,c,{,|,}-O-P-Q-^S&b#}&d!{-]!h!t#e#u#y$P$Q$T$W%a%x%y&O&W&]&`&m'e'|'}(S([(c(o(|)l)|*Q*p*w+R+j+l,h-U-V-W-X-Y-Z-[-]-_-dQ#v|S$v!j!pU&P#v$v,hZ,h#x&Q&U&V-TS%{#u&OV){'})|*wR#z}T&[#y&]]&X#y&](S([(o*QZ&Z#y&](S(o*QT([&Y(]'s_OSWYacmnw!O!U!V!W!X!Z!_!h!q!t!z#O#Q#S#T#V#^#_#`#a#b#c#e#h#i#j#k#n#u#v#y#|#}$P$Q$T$W$f$v$x%W%Y%a%c%x%y&O&S&W&]&`&b&d&g&l&m&s&x&y&|'P'R'T'U'W'X'Y']'a'b'e'o'r'w'|'}(S([(c(i(k(o(t(|)V)W)i)l)s)|*P*Q*S*`*h*k*l*n*o*p*r*w*|+R+^+g+j+l+|+},Q,R,S,T,U,V,W,X,Y,Z,[,],^,_,`,a,b,c,h,{,|,}-O-P-Q-U-V-W-X-Y-Z-[-]-^-_-d'r_OSWYacmnw!O!U!V!W!X!Z!_!h!q!t!z#O#Q#S#T#V#^#_#`#a#b#c#e#h#i#j#k#n#u#v#y#|#}$P$Q$T$W$f$v$x%W%Y%a%c%x%y&O&S&W&]&`&b&d&g&l&m&s&x&y&|'P'R'T'U'W'X'Y']'a'b'e'o'r'w'|'}(S([(c(i(k(o(t(|)V)W)i)l)s)|*P*Q*S*`*h*k*l*n*o*p*r*w*|+R+^+g+j+l+|+},Q,R,S,T,U,V,W,X,Y,Z,[,],^,_,`,a,b,c,h,{,|,}-O-P-Q-U-V-W-X-Y-Z-[-]-^-_-dR!w^'bbOSWYacmnw!O!U!V!W!X!Z!_!h!q!t!z#O#Q#S#T#V#^#_#`#a#b#c#e#h#i#j#k#n#u#v#y#|$P$Q$T$W$f$v$x%W%Y%a%c%x%y&O&W&]&`&g&l&m&s&x&y&|'P'R'T'U'W'X'Y']'a'b'e'o'r'w'|'}(S([(c(i(k(o(t(|)V)W)i)l)s)|*Q*`*h*k*l*n*o*p*r*w+R+g+j+l+|+},Q,R,S,T,U,V,W,X,Y,Z,[,],^,_,`,a,b,c,h,{,|,}-O-P-Q-U-V-W-X-Y-Z-[-]-^-_-dS&a#}&dR(d&bS!u]fX!x`&_(e(oQ!r[Q%O!qQ)d'aU)f'b)i*oR+X*nR%R!qR%P!qV)h'b)i*oV)g'b)i*odtOScw#O#k#n&|'Y+gQ$h!WQ&R#wQ&w$[S'S$c$iQ(V&TQ*O(RQ*V(WQ*b(yQ*c(zR+_+Q%PfOSYacmnw!U!V!W!X!Z!_!q#O#Q#S#T#V#^#_#`#a#b#c#i#j#k#n$f%c&g&l&s&x&y&|'P'R'T'U'W'X'Y']'a'b'o'r'w(k(t)V)W)i)s*`*h*k*l*n*o*r+g+|+},Q,R,S,T,U,V,W,X,Y,Z,[,],^,_,`,a,b,c,{,|,}-O-P-Q-^%PgOSYacmnw!U!V!W!X!Z!_!q#O#Q#S#T#V#^#_#`#a#b#c#i#j#k#n$f%c&g&l&s&x&y&|'P'R'T'U'W'X'Y']'a'b'o'r'w(k(t)V)W)i)s*`*h*k*l*n*o*r+g+|+},Q,R,S,T,U,V,W,X,Y,Z,[,],^,_,`,a,b,c,{,|,}-O-P-Q-^!q#Weg!o!y$[$_$c$j$m$q$}%^%b%d%m'V'p(z({)S)Y)^)c)e)q)t*i*s+T+V+W+Y,f,g,i,j,w,z-aR#fh#^mOSacmnw!X!Z!_!q#O#S#T#^#_#`#a#b#c#i#j#k#n$f%c&g&l&s&y&|'P'T'U'X'Y']'a'b'o'r(k(t)i)s*`*h*l*n*o*r+g-^!W#_e!y$j$m$q$}%b%d%j%k%l%m'V'p({)Y)^)c)e)q)t*s+T+V+W+Y-aW,T!o,n,q,tj,U$[$_$c(z)S*i,g,j,o,r,u,w,z[,V%^,f,i,p,s,v`,{Y,Q,T,W,Z,^,{-Ox,|!U!V!W&x'R'W)V)W*k+},R,U,X,[,_,a,b,c,|-Pg,}#Q#V'w+|,S,V,Y,],`,}-Q#^mOSacmnw!X!Z!_!q#O#S#T#^#_#`#a#b#c#i#j#k#n$f%c&g&l&s&y&|'P'T'U'X'Y']'a'b'o'r(k(t)i)s*`*h*l*n*o*r+g-^`,{Y,Q,T,W,Z,^,{-Ox,|!U!V!W&x'R'W)V)W*k+},R,U,X,[,_,a,b,c,|-Pg,}#Q#V'w+|,S,V,Y,],`,}-Q!Y#^e!y$j$m$q$}%b%d%i%j%k%l%m'V'p({)Y)^)c)e)q)t*s+T+V+W+Y-aY,Q!o,k,n,q,tl,R$[$_$c(z)S*i,g,j,l,o,r,u,w,z_,S%^,f,i,m,p,s,v!W#_e!y$j$m$q$}%b%d%j%k%l%m'V'p({)Y)^)c)e)q)t*s+T+V+W+Y-aW,T!o,n,q,tj,U$[$_$c(z)S*i,g,j,o,r,u,w,z],V%^,f,i,p,s,v!S#ae!y$j$m$q$}%b%d%l%m'V'p({)Y)^)c)e)q)t*s+T+V+W+Y-aS,Z!o,tf,[$[$_$c(z)S*i,g,j,u,w,zX,]%^,f,i,v!Q#be!y$j$m$q$}%b%d%m'V'p({)Y)^)c)e)q)t*s+T+V+W+Y-aQ,^!od,_$[$_$c(z)S*i,g,j,w,zV,`%^,f,iprOScw!U!V!W#O#k#n&|'W'Y)W*k+gR)a']etOScw#O#k#n&|'Y+gQ$S!RT&i$R&jR$S!RQ$V!ST&o$U&pQ&U#xR&m$TS(T&S&lV*{*S*|+^R$V!SQ$Y!TT&t$X&uR$Y!TdsOScw#O#k#n&|'Y+gT$p![!]dtOScw#O#k#n&|'Y+gQ*b(yR+_+QQ$a!VQ&{$_Q)T'RR*g)ST&|$`&}Q+b+SQ+m+fR+v+uT+g+a+hR$i!WR$l!YT'Y$k'ZXuOSw#nQ$s!`R'_$sSSO#nR!dSQ%u#sR'y%uUwOS#nR#mwQ&d#}R(g&dQ(c&`R*Z(cS!mX$^R$z!mQ(O%{R)}(OQ&]#yR(_&]Q(]&YR*X(]'r^OSWYacmnw!O!U!V!W!X!Z!_!h!q!t!z#O#Q#S#T#V#^#_#`#a#b#c#e#h#i#j#k#n#u#v#y#|#}$P$Q$T$W$f$v$x%W%Y%a%c%x%y&O&S&W&]&`&b&d&g&l&m&s&x&y&|'P'R'T'U'W'X'Y']'a'b'e'o'r'w'|'}(S([(c(i(k(o(t(|)V)W)i)l)s)|*P*Q*S*`*h*k*l*n*o*p*r*w*|+R+^+g+j+l+|+},Q,R,S,T,U,V,W,X,Y,Z,[,],^,_,`,a,b,c,h,{,|,}-O-P-Q-U-V-W-X-Y-Z-[-]-^-_-dR!v^S'f%T+PR)m'fQ'c%RR)j'cW#Oc&|'Y+gR%[#O^#Ue$[$_$c$m)^,zU%e#U,O,PQ,O,fR,P,gQ&j$RR(m&jS*Q(S(oR*y*QQ*T(TR*}*TQ&p$UR(r&pQ&u$XR(w&uQ&}$`R)O&}Q+h+aR+o+hQ'Z$kR)['ZQ!cRQ#luQ#nyQ%Z!|Q&x$]Q'R$bQ'x%tQ(^&[Q(f&cQ(l&iQ(q&oR(v&tVxOS#nWuOSw#nY!|c#O&|'Y+gR%r#kdtOScw#O#k#n&|'Y+gQ$]!UQ$b!VQ$g!WQ)X'WQ*j)WR+U*kdeOScw#O#k#n&|'Y+gQ!oYQ!ya`#gmn,{,|,}-O-P-QQ$[!UQ$_!VQ$c!WQ$j!Xd$m!Z#i#j&g&s'P'T'U(k(tQ$q!_Q$}!qQ%^#QQ%b#SQ%d#TW%h#^,Q,R,SQ%i#_Q%j#`Q%k#aQ%l#bQ%m#cQ'V$fQ'p%cQ(z&xQ({&yQ)S'RQ)Y'XQ)^']Q)c'aU)e'b)i*oQ)q'oQ)t'rQ*i)VQ*s)sQ+T*hQ+V*lQ+W*nQ+Y*rS,f#V'wS,g,b,cQ,i+|Q,j+}Q,k,TQ,l,UQ,m,VQ,n,WQ,o,XQ,p,YQ,q,ZQ,r,[Q,s,]Q,t,^Q,u,_Q,v,`Q,w,aU,z'W)W*kV-a&l*`-^#bZW!O!h!t!z#e#h#u#v#y#|$P$Q$T$W$v$x%W%Y%a%x%y&O&W&]&`&m'e'|'}(S([(c(i(o(|)l)|*Q*p*w+R+j+l,h-U-V-W-X-Y-Z-[-]-_-d%P[OSYacmnw!U!V!W!X!Z!_!q#O#Q#S#T#V#^#_#`#a#b#c#i#j#k#n$f%c&g&l&s&x&y&|'P'R'T'U'W'X'Y']'a'b'o'r'w(k(t)V)W)i)s*`*h*k*l*n*o*r+g+|+},Q,R,S,T,U,V,W,X,Y,Z,[,],^,_,`,a,b,c,{,|,}-O-P-Q-^$zdOSacmnw!U!V!W!X!Z!_!q#O#Q#S#T#V#^#_#`#a#b#c#i#j#k#n$f%c&g&l&s&x&y&|'P'R'T'U'W'X'Y']'a'b'o'r'w(k(t)V)W)i)s*h*k*l*n*o*r+g+|+},Q,R,S,T,U,V,W,X,Y,Z,[,],^,_,`,a,b,c,{,|,}-O-P-Q-^S!gW-]Q!nYS#{!O-_Q$u!hS%T!t+jS%X!z-UQ%n#e[%o#h#|$x-V-W-XW%w#u'})|*wU&P#v$v,h[&X#y&](S([(o*QQ&f$PQ&h$QQ&n$TQ&r$WS'h%W-YS'i%Y-ZW'l%a(|+R+lS'{%x%yQ(Q&OQ(Y&WQ(d&`Q(p&mU)k'e)l*pQ)z'|Q*[(cS*^(i-[Q+P*`R-c-dS#w|!pS$w!j-TQ&T#xQ(R&QQ(W&UR(X&VT%|#u&OhqOScw!U!V#O#k#n&|'Y+gU$Q!R$R&jU$W!T$X&uQ$e!WY%y#u&O'})|*wQ)`']V-S'W)W*kS&[#y&]S*R(S(oR*z*QY&Y#y&](S(o*QR*W(['``OSWYacmnw!O!U!V!W!X!Z!_!h!q!t!z#O#Q#S#T#V#^#_#`#a#b#c#e#h#i#j#k#n#u#v#y#|$P$Q$T$W$f$v$x%W%Y%a%c%x%y&O&W&]&`&g&m&s&x&y&|'P'R'T'U'W'X'Y']'a'b'e'o'r'w'|'}(S([(c(i(k(o(t(|)V)W)i)l)s)|*Q*`*h*k*l*n*o*p*r*w+R+g+j+l+|+},Q,R,S,T,U,V,W,X,Y,Z,[,],^,_,`,a,b,c,h,{,|,}-O-P-Q-U-V-W-X-Y-Z-[-]-^-_-dS&_#}&dW(S&S*S*|+^Q(e&bQ(o&lR*x*PS%U!t*`R+q+jR%S!qQ#PcQ(}&|Q)Z'YR+n+ghpOScw!U!V#O#k#n&|'Y+gQ$d!WQ$n!ZQ%g#VU%p#i'T,bU%q#j'U,cQ(j&gQ(u&sQ)Q'PQ)_']Q)y'wQ*_(kQ*a(tV-R'W)W*kT(U&S&l",nodeNames:"\u26A0 LineComment BlockComment SourceFile PackageClause package DefName ; ImportDecl import ImportSpec . String ) ( SpecList ExprStatement Number Bool Nil Rune VariableName TypedLiteral StructType struct } { StructBody FieldDecl FieldName , PointerType * FunctionType func Parameters Parameter ... InterfaceType interface InterfaceBody MethodElem UnderlyingType ~ TypeElem LogicOp ChannelType chan <- ParenthesizedType QualifiedType TypeName ParameterizedType ] [ TypeArgs ArrayType SliceType MapType map LiteralValue Element Key : Element Key ParenthesizedExpr FunctionLiteral Block Conversion SelectorExpr IndexExpr SliceExpr TypeAssertion CallExpr ParameterizedExpr Arguments CallExpr make new Arguments UnaryExp ArithOp LogicOp BitOp DerefOp BinaryExp ArithOp BitOp BitOp CompareOp LogicOp LogicOp SendStatement IncDecStatement IncDecOp Assignment = UpdateOp VarDecl := ConstDecl const ConstSpec SpecList TypeDecl type TypeSpec TypeParams TypeParam SpecList VarDecl var VarSpec SpecList LabeledStatement LabelName IfStatement if else SwitchStatement switch SwitchBlock Case case default TypeSwitchStatement SwitchBlock Case ForStatement for ForClause RangeClause range GoStatement go SelectStatement select SelectBlock Case ReceiveStatement ReturnStatement return GotoStatement break continue goto FallthroughStatement fallthrough DeferStatement defer FunctionDecl MethodDecl",maxTerm:218,context:$R,nodeProps:[["isolate",-3,2,12,20,""],["group",-18,12,17,18,19,20,21,22,66,67,69,70,71,72,73,74,77,81,86,"Expr",-20,16,68,93,94,96,99,101,105,111,115,117,120,126,129,134,136,141,143,147,149,"Statement",-12,23,31,33,38,46,49,50,51,52,56,57,58,"Type"],["openedBy",13,"(",25,"{",53,"["],["closedBy",14,")",26,"}",54,"]"]],propSources:[AR],skippedNodes:[0,1,2,153],repeatNodeCount:23,tokenData:":b~RvXY#iYZ#i]^#ipq#iqr#zrs$Xuv&Pvw&^wx&yxy(qyz(vz{({{|)T|})e}!O)j!O!P)u!P!Q+}!Q!R,y!R![-t![!]2^!]!^2k!^!_2p!_!`3]!`!a3e!c!}3x!}#O4j#P#Q4o#Q#R4t#R#S4|#S#T9X#T#o3x#o#p9q#p#q9v#q#r:W#r#s:]$g;'S3x;'S;=`4d<%lO3x~#nS$y~XY#iYZ#i]^#ipq#iU$PP%hQ!_!`$SS$XO!|S~$^W[~OY$XZr$Xrs$vs#O$X#O#P${#P;'S$X;'S;=`%y<%lO$X~${O[~~%ORO;'S$X;'S;=`%X;=`O$X~%^X[~OY$XZr$Xrs$vs#O$X#O#P${#P;'S$X;'S;=`%y;=`<%l$X<%lO$X~%|P;=`<%l$X~&UP%l~!_!`&X~&^O#U~~&cR%j~vw&l!_!`&X#Q#R&q~&qO%p~~&vP%o~!_!`&X~'OWd~OY&yZw&ywx'hx#O&y#O#P'm#P;'S&y;'S;=`(k<%lO&y~'mOd~~'pRO;'S&y;'S;=`'y;=`O&y~(OXd~OY&yZw&ywx'hx#O&y#O#P'm#P;'S&y;'S;=`(k;=`<%l&y<%lO&y~(nP;=`<%l&y~(vO^~~({O]~~)QP%Y~!_!`&X~)YQ%f~{|)`!_!`&X~)eO#R~~)jOn~~)oQ%g~}!O)`!_!`&X~)zRZS!O!P*T!Q![*`#R#S+w~*WP!O!P*Z~*`Ou~Q*eTaQ!Q![*`!g!h*t#R#S+w#X#Y*t#]#^+rQ*wS{|+T}!O+T!Q![+^#R#S+lQ+WQ!Q![+^#R#S+lQ+cRaQ!Q![+^#R#S+l#]#^+rQ+oP!Q![+^Q+wOaQQ+zP!Q![*`~,SR%k~z{,]!P!Q,b!_!`&X~,bO$z~~,gSP~OY,bZ;'S,b;'S;=`,s<%lO,b~,vP;=`<%l,bQ-O[aQ!O!P*`!Q![-t!d!e.c!g!h*t!q!r/Z!z!{/x#R#S.]#U#V.c#X#Y*t#]#^+r#c#d/Z#l#m/xQ-yUaQ!O!P*`!Q![-t!g!h*t#R#S.]#X#Y*t#]#^+rQ.`P!Q![-tQ.fR!Q!R.o!R!S.o#R#S/QQ.tSaQ!Q!R.o!R!S.o#R#S/Q#]#^+rQ/TQ!Q!R.o!R!S.oQ/^Q!Q!Y/d#R#S/rQ/iRaQ!Q!Y/d#R#S/r#]#^+rQ/uP!Q!Y/dQ/{T!O!P0[!Q![1c!c!i1c#R#S2Q#T#Z1cQ0_S!Q![0k!c!i0k#R#S1V#T#Z0kQ0pVaQ!Q![0k!c!i0k!r!s*t#R#S1V#T#Z0k#]#^+r#d#e*tQ1YR!Q![0k!c!i0k#T#Z0kQ1hWaQ!O!P0k!Q![1c!c!i1c!r!s*t#R#S2Q#T#Z1c#]#^+r#d#e*tQ2TR!Q![1c!c!i1c#T#Z1c~2cP!a~!_!`2f~2kO#W~~2pOV~~2uR!|S}!O3O!^!_3T!_!`$S~3TO!Q~~3YP%m~!_!`&X~3bP#T~!_!`$S~3jQ!|S!_!`$S!`!a3p~3uP%n~!_!`&X~3}V%O~!Q![3x!c!}3x#R#S3x#T#o3x$g;'S3x;'S;=`4d<%lO3x~4gP;=`<%l3x~4oO!W~~4tO!V~~4yP%i~!_!`&X~5RV%O~!Q![5h!c!}3x#R#S3x#T#o3x$g;'S3x;'S;=`4d<%lO3x~5o^aQ%O~!O!P*`!Q![5h!c!g3x!g!h6k!h!}3x#R#S4|#T#X3x#X#Y6k#Y#]3x#]#^8k#^#o3x$g;'S3x;'S;=`4d<%lO3x~6pX%O~{|+T}!O+T!Q![7]!c!}3x#R#S8P#T#o3x$g;'S3x;'S;=`4d<%lO3x~7dXaQ%O~!Q![7]!c!}3x#R#S8P#T#]3x#]#^8k#^#o3x$g;'S3x;'S;=`4d<%lO3x~8UV%O~!Q![7]!c!}3x#R#S3x#T#o3x$g;'S3x;'S;=`4d<%lO3x~8rVaQ%O~!Q![3x!c!}3x#R#S3x#T#o3x$g;'S3x;'S;=`4d<%lO3x~9[TO#S9X#S#T$v#T;'S9X;'S;=`9k<%lO9X~9nP;=`<%l9X~9vOj~~9{Q%`~!_!`&X#p#q:R~:WO%q~~:]Oi~~:bO{~",tokenizers:[IR,1,2,new ri("j~RQYZXz{^~^O$|~~aP!P!Qd~iO$}~~",25,181)],topRules:{SourceFile:[0,3]},dynamicPrecedences:{19:1,51:-1,55:2,69:-1,108:-1},specialized:[{term:184,get:o(e=>CR[e]||-1,"get")}],tokenPrec:5451})});function ll(e){return e==cn||e==oi}function ul(e){return e>=48&&e<=57||e>=65&&e<=70||e>=97&&e<=102}function as(e,t,n){this.parent=e,this.indent=t,this.flags=n,this.hash=(e?e.hash+e.hash<<8:0)+t+(t<<4)+n+(n<<6)}function jI(e){let t=0;for(let n=0;n<e.length;n++)t+=e.charCodeAt(n)==cs?8-t%8:1;return t}function FI(e,t){if(t==EI)for(let n=0;n<2&&e.next>=48&&e.next<=55;n++)e.advance();else if(t==RI)for(let n=0;n<2&&ul(e.next);n++)e.advance();else if(t==QI)for(let n=0;n<4&&ul(e.next);n++)e.advance();else if(t==$I)for(let n=0;n<8&&ul(e.next);n++)e.advance();else if(t==II&&e.next==fl){for(e.advance();e.next>=0&&e.next!=NO&&e.next!=VO&&e.next!=YO&&e.next!=cn;)e.advance();e.next==NO&&e.advance()}}var MR,LO,qO,XR,jO,jR,WR,NR,DR,zO,WO,FR,LR,qR,zR,UR,VR,YR,GR,BR,ZR,KR,HR,JR,eI,tI,nI,rI,iI,oI,sI,aI,cI,dI,UO,lI,uI,fI,pI,mI,hI,gI,OI,yI,wI,SI,bI,vI,kI,xI,PI,cn,oi,pl,cs,ml,_I,TI,fl,NO,VO,YO,DO,EI,RI,II,QI,$I,AI,CI,MI,ss,GO,et,tt,nt,rt,XI,FO,WI,NI,DI,LI,qI,BO,ZO=p(()=>{"use strict";es();os();MR=1,LO=194,qO=195,XR=196,jO=197,jR=198,WR=199,NR=200,DR=2,zO=3,WO=201,FR=24,LR=25,qR=49,zR=50,UR=55,VR=56,YR=57,GR=59,BR=60,ZR=61,KR=62,HR=63,JR=65,eI=238,tI=71,nI=241,rI=242,iI=243,oI=244,sI=245,aI=246,cI=247,dI=248,UO=72,lI=249,uI=250,fI=251,pI=252,mI=253,hI=254,gI=255,OI=256,yI=73,wI=77,SI=263,bI=112,vI=130,kI=151,xI=152,PI=155,cn=10,oi=13,pl=32,cs=9,ml=35,_I=40,TI=46,fl=123,NO=125,VO=39,YO=34,DO=92,EI=111,RI=120,II=78,QI=117,$I=85,AI=new Set([LR,qR,zR,SI,JR,vI,VR,YR,eI,KR,HR,UO,yI,wI,BR,ZR,kI,xI,PI,bI]);o(ll,"isLineBreak");o(ul,"isHex");CI=new ye((e,t)=>{let n;if(e.next<0)e.acceptToken(WR);else if(t.context.flags&ss)ll(e.next)&&e.acceptToken(jR,1);else if(((n=e.peek(-1))<0||ll(n))&&t.canShift(jO)){let r=0;for(;e.next==pl||e.next==cs;)e.advance(),r++;(e.next==cn||e.next==oi||e.next==ml)&&e.acceptToken(jO,-r)}else ll(e.next)&&e.acceptToken(XR,1)},{contextual:!0}),MI=new ye((e,t)=>{let n=t.context;if(n.flags)return;let r=e.peek(-1);if(r==cn||r==oi){let i=0,s=0;for(;;){if(e.next==pl)i++;else if(e.next==cs)i+=8-i%8;else break;e.advance(),s++}i!=n.indent&&e.next!=cn&&e.next!=oi&&e.next!=ml&&(i<n.indent?e.acceptToken(qO,-s):e.acceptToken(LO))}}),ss=1,GO=2,et=4,tt=8,nt=16,rt=32;o(as,"Context");XI=new as(null,0,0);o(jI,"countIndent");FO=new Map([[nI,0],[rI,et],[iI,tt],[oI,tt|et],[sI,nt],[aI,nt|et],[cI,nt|tt],[dI,nt|tt|et],[lI,rt],[uI,rt|et],[fI,rt|tt],[pI,rt|tt|et],[mI,rt|nt],[hI,rt|nt|et],[gI,rt|nt|tt],[OI,rt|nt|tt|et]].map(([e,t])=>[e,t|GO])),WI=new qn({start:XI,reduce(e,t,n,r){return e.flags&ss&&AI.has(t)||(t==tI||t==UO)&&e.flags&GO?e.parent:e},shift(e,t,n,r){return t==LO?new as(e,jI(r.read(r.pos,n.pos)),0):t==qO?e.parent:t==FR||t==UR||t==GR||t==zO?new as(e,0,ss):FO.has(t)?new as(e,0,FO.get(t)|e.flags&ss):e},hash(e){return e.hash}}),NI=new ye(e=>{for(let t=0;t<5;t++){if(e.next!="print".charCodeAt(t))return;e.advance()}if(!/\w/.test(String.fromCharCode(e.next)))for(let t=0;;t++){let n=e.peek(t);if(!(n==pl||n==cs)){n!=_I&&n!=TI&&n!=cn&&n!=oi&&n!=ml&&e.acceptToken(MR);return}}}),DI=new ye((e,t)=>{let{flags:n}=t.context,r=n&et?YO:VO,i=(n&tt)>0,s=!(n&nt),a=(n&rt)>0,c=e.pos;for(;!(e.next<0);)if(a&&e.next==fl)if(e.peek(1)==fl)e.advance(2);else{if(e.pos==c){e.acceptToken(zO,1);return}break}else if(s&&e.next==DO){if(e.pos==c){e.advance();let d=e.next;d>=0&&(e.advance(),FI(e,d)),e.acceptToken(DR);return}break}else if(e.next==DO&&!s&&e.peek(1)>-1)e.advance(2);else if(e.next==r&&(!i||e.peek(1)==r&&e.peek(2)==r)){if(e.pos==c){e.acceptToken(WO,i?3:1);return}break}else if(e.next==cn){if(i)e.advance();else if(e.pos==c){e.acceptToken(WO);return}break}else e.advance();e.pos>c&&e.acceptToken(NR)});o(FI,"skipEscape");LI=Un({'async "*" "**" FormatConversion FormatSpec':h.modifier,"for while if elif else try except finally return raise break continue with pass assert await yield match case":h.controlKeyword,"in not and or is del":h.operatorKeyword,"from def class global nonlocal lambda":h.definitionKeyword,import:h.moduleKeyword,"with as print":h.keyword,Boolean:h.bool,None:h.null,VariableName:h.variableName,"CallExpression/VariableName":h.function(h.variableName),"FunctionDefinition/VariableName":h.function(h.definition(h.variableName)),"ClassDefinition/VariableName":h.definition(h.className),PropertyName:h.propertyName,"CallExpression/MemberExpression/PropertyName":h.function(h.propertyName),Comment:h.lineComment,Number:h.number,String:h.string,FormatString:h.special(h.string),Escape:h.escape,UpdateOp:h.updateOperator,"ArithOp!":h.arithmeticOperator,BitOp:h.bitwiseOperator,CompareOp:h.compareOperator,AssignOp:h.definitionOperator,Ellipsis:h.punctuation,At:h.meta,"( )":h.paren,"[ ]":h.squareBracket,"{ }":h.brace,".":h.derefOperator,", ;":h.separator}),qI={__proto__:null,await:44,or:54,and:56,in:60,not:62,is:64,if:70,else:72,lambda:76,yield:94,from:96,async:102,for:104,None:162,True:164,False:164,del:178,pass:182,break:186,continue:190,return:194,raise:202,import:206,as:208,global:212,nonlocal:214,assert:218,type:223,elif:236,while:240,try:246,except:248,finally:250,with:254,def:258,class:268,match:279,case:285},BO=Tt.deserialize({version:14,states:"##jO`QeOOP$}OSOOO&WQtO'#HUOOQS'#Co'#CoOOQS'#Cp'#CpO'vQdO'#CnO*UQtO'#HTOOQS'#HU'#HUOOQS'#DU'#DUOOQS'#HT'#HTO*rQdO'#D_O+VQdO'#DfO+gQdO'#DjO+zOWO'#DuO,VOWO'#DvO.[QtO'#GuOOQS'#Gu'#GuO'vQdO'#GtO0ZQtO'#GtOOQS'#Eb'#EbO0rQdO'#EcOOQS'#Gs'#GsO0|QdO'#GrOOQV'#Gr'#GrO1XQdO'#FYOOQS'#G^'#G^O1^QdO'#FXOOQV'#IS'#ISOOQV'#Gq'#GqOOQV'#Fq'#FqQ`QeOOO'vQdO'#CqO1lQdO'#C}O1sQdO'#DRO2RQdO'#HYO2cQtO'#EVO'vQdO'#EWOOQS'#EY'#EYOOQS'#E['#E[OOQS'#E^'#E^O2wQdO'#E`O3_QdO'#EdO3rQdO'#EfO3zQtO'#EfO1XQdO'#EiO0rQdO'#ElO1XQdO'#EnO0rQdO'#EtO0rQdO'#EwO4VQdO'#EyO4^QdO'#FOO4iQdO'#EzO0rQdO'#FOO1XQdO'#FQO1XQdO'#FVO4nQdO'#F[P4uOdO'#GpPOOO)CBd)CBdOOQS'#Ce'#CeOOQS'#Cf'#CfOOQS'#Cg'#CgOOQS'#Ch'#ChOOQS'#Ci'#CiOOQS'#Cj'#CjOOQS'#Cl'#ClO'vQdO,59OO'vQdO,59OO'vQdO,59OO'vQdO,59OO'vQdO,59OO'vQdO,59OO5TQdO'#DoOOQS,5:Y,5:YO5hQdO'#HdOOQS,5:],5:]O5uQ!fO,5:]O5zQtO,59YO1lQdO,59bO1lQdO,59bO1lQdO,59bO8jQdO,59bO8oQdO,59bO8vQdO,59jO8}QdO'#HTO:TQdO'#HSOOQS'#HS'#HSOOQS'#D['#D[O:lQdO,59aO'vQdO,59aO:zQdO,59aOOQS,59y,59yO;PQdO,5:RO'vQdO,5:ROOQS,5:Q,5:QO;_QdO,5:QO;dQdO,5:XO'vQdO,5:XO'vQdO,5:VOOQS,5:U,5:UO;uQdO,5:UO;zQdO,5:WOOOW'#Fy'#FyO<POWO,5:aOOQS,5:a,5:aO<[QdO'#HwOOOW'#Dw'#DwOOOW'#Fz'#FzO<lOWO,5:bOOQS,5:b,5:bOOQS'#F}'#F}O<zQtO,5:iO?lQtO,5=`O@VQ#xO,5=`O@vQtO,5=`OOQS,5:},5:}OA_QeO'#GWOBqQdO,5;^OOQV,5=^,5=^OB|QtO'#IPOCkQdO,5;tOOQS-E:[-E:[OOQV,5;s,5;sO4dQdO'#FQOOQV-E9o-E9oOCsQtO,59]OEzQtO,59iOFeQdO'#HVOFpQdO'#HVO1XQdO'#HVOF{QdO'#DTOGTQdO,59mOGYQdO'#HZO'vQdO'#HZO0rQdO,5=tOOQS,5=t,5=tO0rQdO'#EROOQS'#ES'#ESOGwQdO'#GPOHXQdO,58|OHXQdO,58|O*xQdO,5:oOHgQtO'#H]OOQS,5:r,5:rOOQS,5:z,5:zOHzQdO,5;OOI]QdO'#IOO1XQdO'#H}OOQS,5;Q,5;QOOQS'#GT'#GTOIqQtO,5;QOJPQdO,5;QOJUQdO'#IQOOQS,5;T,5;TOJdQdO'#H|OOQS,5;W,5;WOJuQdO,5;YO4iQdO,5;`O4iQdO,5;cOJ}QtO'#ITO'vQdO'#ITOKXQdO,5;eO4VQdO,5;eO0rQdO,5;jO1XQdO,5;lOK^QeO'#EuOLjQgO,5;fO!!kQdO'#IUO4iQdO,5;jO!!vQdO,5;lO!#OQdO,5;qO!#ZQtO,5;vO'vQdO,5;vPOOO,5=[,5=[P!#bOSO,5=[P!#jOdO,5=[O!&bQtO1G.jO!&iQtO1G.jO!)YQtO1G.jO!)dQtO1G.jO!+}QtO1G.jO!,bQtO1G.jO!,uQdO'#HcO!-TQtO'#GuO0rQdO'#HcO!-_QdO'#HbOOQS,5:Z,5:ZO!-gQdO,5:ZO!-lQdO'#HeO!-wQdO'#HeO!.[QdO,5>OOOQS'#Ds'#DsOOQS1G/w1G/wOOQS1G.|1G.|O!/[QtO1G.|O!/cQtO1G.|O1lQdO1G.|O!0OQdO1G/UOOQS'#DZ'#DZO0rQdO,59tOOQS1G.{1G.{O!0VQdO1G/eO!0gQdO1G/eO!0oQdO1G/fO'vQdO'#H[O!0tQdO'#H[O!0yQtO1G.{O!1ZQdO,59iO!2aQdO,5=zO!2qQdO,5=zO!2yQdO1G/mO!3OQtO1G/mOOQS1G/l1G/lO!3`QdO,5=uO!4VQdO,5=uO0rQdO1G/qO!4tQdO1G/sO!4yQtO1G/sO!5ZQtO1G/qOOQS1G/p1G/pOOQS1G/r1G/rOOOW-E9w-E9wOOQS1G/{1G/{O!5kQdO'#HxO0rQdO'#HxO!5|QdO,5>cOOOW-E9x-E9xOOQS1G/|1G/|OOQS-E9{-E9{O!6[Q#xO1G2zO!6{QtO1G2zO'vQdO,5<jOOQS,5<j,5<jOOQS-E9|-E9|OOQS,5<r,5<rOOQS-E:U-E:UOOQV1G0x1G0xO1XQdO'#GRO!7dQtO,5>kOOQS1G1`1G1`O!8RQdO1G1`OOQS'#DV'#DVO0rQdO,5=qOOQS,5=q,5=qO!8WQdO'#FrO!8cQdO,59oO!8kQdO1G/XO!8uQtO,5=uOOQS1G3`1G3`OOQS,5:m,5:mO!9fQdO'#GtOOQS,5<k,5<kOOQS-E9}-E9}O!9wQdO1G.hOOQS1G0Z1G0ZO!:VQdO,5=wO!:gQdO,5=wO0rQdO1G0jO0rQdO1G0jO!:xQdO,5>jO!;ZQdO,5>jO1XQdO,5>jO!;lQdO,5>iOOQS-E:R-E:RO!;qQdO1G0lO!;|QdO1G0lO!<RQdO,5>lO!<aQdO,5>lO!<oQdO,5>hO!=VQdO,5>hO!=hQdO'#EpO0rQdO1G0tO!=sQdO1G0tO!=xQgO1G0zO!AvQgO1G0}O!EqQdO,5>oO!E{QdO,5>oO!FTQtO,5>oO0rQdO1G1PO!F_QdO1G1PO4iQdO1G1UO!!vQdO1G1WOOQV,5;a,5;aO!FdQfO,5;aO!FiQgO1G1QO!JjQdO'#GZO4iQdO1G1QO4iQdO1G1QO!JzQdO,5>pO!KXQdO,5>pO1XQdO,5>pOOQV1G1U1G1UO!KaQdO'#FSO!KrQ!fO1G1WO!KzQdO1G1WOOQV1G1]1G1]O4iQdO1G1]O!LPQdO1G1]O!LXQdO'#F^OOQV1G1b1G1bO!#ZQtO1G1bPOOO1G2v1G2vP!L^OSO1G2vOOQS,5=},5=}OOQS'#Dp'#DpO0rQdO,5=}O!LfQdO,5=|O!LyQdO,5=|OOQS1G/u1G/uO!MRQdO,5>PO!McQdO,5>PO!MkQdO,5>PO!NOQdO,5>PO!N`QdO,5>POOQS1G3j1G3jOOQS7+$h7+$hO!8kQdO7+$pO#!RQdO1G.|O#!YQdO1G.|OOQS1G/`1G/`OOQS,5<`,5<`O'vQdO,5<`OOQS7+%P7+%PO#!aQdO7+%POOQS-E9r-E9rOOQS7+%Q7+%QO#!qQdO,5=vO'vQdO,5=vOOQS7+$g7+$gO#!vQdO7+%PO##OQdO7+%QO##TQdO1G3fOOQS7+%X7+%XO##eQdO1G3fO##mQdO7+%XOOQS,5<_,5<_O'vQdO,5<_O##rQdO1G3aOOQS-E9q-E9qO#$iQdO7+%]OOQS7+%_7+%_O#$wQdO1G3aO#%fQdO7+%_O#%kQdO1G3gO#%{QdO1G3gO#&TQdO7+%]O#&YQdO,5>dO#&sQdO,5>dO#&sQdO,5>dOOQS'#Dx'#DxO#'UO&jO'#DzO#'aO`O'#HyOOOW1G3}1G3}O#'fQdO1G3}O#'nQdO1G3}O#'yQ#xO7+(fO#(jQtO1G2UP#)TQdO'#GOOOQS,5<m,5<mOOQS-E:P-E:POOQS7+&z7+&zOOQS1G3]1G3]OOQS,5<^,5<^OOQS-E9p-E9pOOQS7+$s7+$sO#)bQdO,5=`O#){QdO,5=`O#*^QtO,5<aO#*qQdO1G3cOOQS-E9s-E9sOOQS7+&U7+&UO#+RQdO7+&UO#+aQdO,5<nO#+uQdO1G4UOOQS-E:Q-E:QO#,WQdO1G4UOOQS1G4T1G4TOOQS7+&W7+&WO#,iQdO7+&WOOQS,5<p,5<pO#,tQdO1G4WOOQS-E:S-E:SOOQS,5<l,5<lO#-SQdO1G4SOOQS-E:O-E:OO1XQdO'#EqO#-jQdO'#EqO#-uQdO'#IRO#-}QdO,5;[OOQS7+&`7+&`O0rQdO7+&`O#.SQgO7+&fO!JmQdO'#GXO4iQdO7+&fO4iQdO7+&iO#2QQtO,5<tO'vQdO,5<tO#2[QdO1G4ZOOQS-E:W-E:WO#2fQdO1G4ZO4iQdO7+&kO0rQdO7+&kOOQV7+&p7+&pO!KrQ!fO7+&rO!KzQdO7+&rO`QeO1G0{OOQV-E:X-E:XO4iQdO7+&lO4iQdO7+&lOOQV,5<u,5<uO#2nQdO,5<uO!JmQdO,5<uOOQV7+&l7+&lO#2yQgO7+&lO#6tQdO,5<vO#7PQdO1G4[OOQS-E:Y-E:YO#7^QdO1G4[O#7fQdO'#IWO#7tQdO'#IWO1XQdO'#IWOOQS'#IW'#IWO#8PQdO'#IVOOQS,5;n,5;nO#8XQdO,5;nO0rQdO'#FUOOQV7+&r7+&rO4iQdO7+&rOOQV7+&w7+&wO4iQdO7+&wO#8^QfO,5;xOOQV7+&|7+&|POOO7+(b7+(bO#8cQdO1G3iOOQS,5<c,5<cO#8qQdO1G3hOOQS-E9u-E9uO#9UQdO,5<dO#9aQdO,5<dO#9tQdO1G3kOOQS-E9v-E9vO#:UQdO1G3kO#:^QdO1G3kO#:nQdO1G3kO#:UQdO1G3kOOQS<<H[<<H[O#:yQtO1G1zOOQS<<Hk<<HkP#;WQdO'#FtO8vQdO1G3bO#;eQdO1G3bO#;jQdO<<HkOOQS<<Hl<<HlO#;zQdO7+)QOOQS<<Hs<<HsO#<[QtO1G1yP#<{QdO'#FsO#=YQdO7+)RO#=jQdO7+)RO#=rQdO<<HwO#=wQdO7+({OOQS<<Hy<<HyO#>nQdO,5<bO'vQdO,5<bOOQS-E9t-E9tOOQS<<Hw<<HwOOQS,5<g,5<gO0rQdO,5<gO#>sQdO1G4OOOQS-E9y-E9yO#?^QdO1G4OO<[QdO'#H{OOOO'#D{'#D{OOOO'#F|'#F|O#?oO&jO,5:fOOOW,5>e,5>eOOOW7+)i7+)iO#?zQdO7+)iO#@SQdO1G2zO#@mQdO1G2zP'vQdO'#FuO0rQdO<<IpO1XQdO1G2YP1XQdO'#GSO#AOQdO7+)pO#AaQdO7+)pOOQS<<Ir<<IrP1XQdO'#GUP0rQdO'#GQOOQS,5;],5;]O#ArQdO,5>mO#BQQdO,5>mOOQS1G0v1G0vOOQS<<Iz<<IzOOQV-E:V-E:VO4iQdO<<JQOOQV,5<s,5<sO4iQdO,5<sOOQV<<JQ<<JQOOQV<<JT<<JTO#BYQtO1G2`P#BdQdO'#GYO#BkQdO7+)uO#BuQgO<<JVO4iQdO<<JVOOQV<<J^<<J^O4iQdO<<J^O!KrQ!fO<<J^O#FpQgO7+&gOOQV<<JW<<JWO#FzQgO<<JWOOQV1G2a1G2aO1XQdO1G2aO#JuQdO1G2aO4iQdO<<JWO1XQdO1G2bP0rQdO'#G[O#KQQdO7+)vO#K_QdO7+)vOOQS'#FT'#FTO0rQdO,5>rO#KgQdO,5>rO#KrQdO,5>rO#K}QdO,5>qO#L`QdO,5>qOOQS1G1Y1G1YOOQS,5;p,5;pOOQV<<Jc<<JcO#LhQdO1G1dOOQS7+)T7+)TP#LmQdO'#FwO#L}QdO1G2OO#MbQdO1G2OO#MrQdO1G2OP#M}QdO'#FxO#N[QdO7+)VO#NlQdO7+)VO#NlQdO7+)VO#NtQdO7+)VO$ UQdO7+(|O8vQdO7+(|OOQSAN>VAN>VO$ oQdO<<LmOOQSAN>cAN>cO0rQdO1G1|O$!PQtO1G1|P$!ZQdO'#FvOOQS1G2R1G2RP$!hQdO'#F{O$!uQdO7+)jO$#`QdO,5>gOOOO-E9z-E9zOOOW<<MT<<MTO$#nQdO7+(fOOQSAN?[AN?[OOQS7+'t7+'tO$$XQdO<<M[OOQS,5<q,5<qO$$jQdO1G4XOOQS-E:T-E:TOOQVAN?lAN?lOOQV1G2_1G2_O4iQdOAN?qO$$xQgOAN?qOOQVAN?xAN?xO4iQdOAN?xOOQV<<JR<<JRO4iQdOAN?rO4iQdO7+'{OOQV7+'{7+'{O1XQdO7+'{OOQVAN?rAN?rOOQS7+'|7+'|O$(sQdO<<MbOOQS1G4^1G4^O0rQdO1G4^OOQS,5<w,5<wO$)QQdO1G4]OOQS-E:Z-E:ZOOQU'#G_'#G_O$)cQfO7+'OO$)nQdO'#F_O$*uQdO7+'jO$+VQdO7+'jOOQS7+'j7+'jO$+bQdO<<LqO$+rQdO<<LqO$+rQdO<<LqO$+zQdO'#H^OOQS<<Lh<<LhO$,UQdO<<LhOOQS7+'h7+'hOOQS'#D|'#D|OOOO1G4R1G4RO$,oQdO1G4RO$,wQdO1G4RP!=hQdO'#GVOOQVG25]G25]O4iQdOG25]OOQVG25dG25dOOQVG25^G25^OOQV<<Kg<<KgO4iQdO<<KgOOQS7+)x7+)xP$-SQdO'#G]OOQU-E:]-E:]OOQV<<Jj<<JjO$-vQtO'#FaOOQS'#Fc'#FcO$.WQdO'#FbO$.xQdO'#FbOOQS'#Fb'#FbO$.}QdO'#IYO$)nQdO'#FiO$)nQdO'#FiO$/fQdO'#FjO$)nQdO'#FkO$/mQdO'#IZOOQS'#IZ'#IZO$0[QdO,5;yOOQS<<KU<<KUO$0dQdO<<KUO$0tQdOANB]O$1UQdOANB]O$1^QdO'#H_OOQS'#H_'#H_O1sQdO'#DcO$1wQdO,5=xOOQSANBSANBSOOOO7+)m7+)mO$2`QdO7+)mOOQVLD*wLD*wOOQVANARANARO5uQ!fO'#GaO$2hQtO,5<SO$)nQdO'#FmOOQS,5<W,5<WOOQS'#Fd'#FdO$3YQdO,5;|O$3_QdO,5;|OOQS'#Fg'#FgO$)nQdO'#G`O$4PQdO,5<QO$4kQdO,5>tO$4{QdO,5>tO1XQdO,5<PO$5^QdO,5<TO$5cQdO,5<TO$)nQdO'#I[O$5hQdO'#I[O$5mQdO,5<UOOQS,5<V,5<VO0rQdO'#FpOOQU1G1e1G1eO4iQdO1G1eOOQSAN@pAN@pO$5rQdOG27wO$6SQdO,59}OOQS1G3d1G3dOOOO<<MX<<MXOOQS,5<{,5<{OOQS-E:_-E:_O$6XQtO'#FaO$6`QdO'#I]O$6nQdO'#I]O$6vQdO,5<XOOQS1G1h1G1hO$6{QdO1G1hO$7QQdO,5<zOOQS-E:^-E:^O$7lQdO,5=OO$8TQdO1G4`OOQS-E:b-E:bOOQS1G1k1G1kOOQS1G1o1G1oO$8eQdO,5>vO$)nQdO,5>vOOQS1G1p1G1pOOQS,5<[,5<[OOQU7+'P7+'PO$+zQdO1G/iO$)nQdO,5<YO$8sQdO,5>wO$8zQdO,5>wOOQS1G1s1G1sOOQS7+'S7+'SP$)nQdO'#GdO$9SQdO1G4bO$9^QdO1G4bO$9fQdO1G4bOOQS7+%T7+%TO$9tQdO1G1tO$:SQtO'#FaO$:ZQdO,5<}OOQS,5<},5<}O$:iQdO1G4cOOQS-E:a-E:aO$)nQdO,5<|O$:pQdO,5<|O$:uQdO7+)|OOQS-E:`-E:`O$;PQdO7+)|O$)nQdO,5<ZP$)nQdO'#GcO$;XQdO1G2hO$)nQdO1G2hP$;gQdO'#GbO$;nQdO<<MhO$;xQdO1G1uO$<WQdO7+(SO8vQdO'#C}O8vQdO,59bO8vQdO,59bO8vQdO,59bO$<fQtO,5=`O8vQdO1G.|O0rQdO1G/XO0rQdO7+$pP$<yQdO'#GOO'vQdO'#GtO$=WQdO,59bO$=]QdO,59bO$=dQdO,59mO$=iQdO1G/UO1sQdO'#DRO8vQdO,59j",stateData:"$>S~O%cOS%^OSSOS%]PQ~OPdOVaOfoOhYOopOs!POvqO!PrO!Q{O!T!SO!U!RO!XZO!][O!h`O!r`O!s`O!t`O!{tO!}uO#PvO#RwO#TxO#XyO#ZzO#^|O#_|O#a}O#c!OO#l!QO#o!TO#s!UO#u!VO#z!WO#}hO$P!XO%oRO%pRO%tSO%uWO&Z]O&[]O&]]O&^]O&_]O&`]O&a]O&b]O&c^O&d^O&e^O&f^O&g^O&h^O&i^O&j^O~O%]!YO~OV!aO_!aOa!bOh!iO!X!kO!f!mO%j![O%k!]O%l!^O%m!_O%n!_O%o!`O%p!`O%q!aO%r!aO%s!aO~Ok%xXl%xXm%xXn%xXo%xXp%xXs%xXz%xX{%xX!x%xX#g%xX%[%xX%_%xX%z%xXg%xX!T%xX!U%xX%{%xX!W%xX![%xX!Q%xX#[%xXt%xX!m%xX~P%SOfoOhYO!XZO!][O!h`O!r`O!s`O!t`O%oRO%pRO%tSO%uWO&Z]O&[]O&]]O&^]O&_]O&`]O&a]O&b]O&c^O&d^O&e^O&f^O&g^O&h^O&i^O&j^O~Oz%wX{%wX#g%wX%[%wX%_%wX%z%wX~Ok!pOl!qOm!oOn!oOo!rOp!sOs!tO!x%wX~P)pOV!zOg!|Oo0cOv0qO!PrO~P'vOV#OOo0cOv0qO!W#PO~P'vOV#SOa#TOo0cOv0qO![#UO~P'vOQ#XO%`#XO%a#ZO~OQ#^OR#[O%`#^O%a#`O~OV%iX_%iXa%iXh%iXk%iXl%iXm%iXn%iXo%iXp%iXs%iXz%iX!X%iX!f%iX%j%iX%k%iX%l%iX%m%iX%n%iX%o%iX%p%iX%q%iX%r%iX%s%iXg%iX!T%iX!U%iX~O&Z]O&[]O&]]O&^]O&_]O&`]O&a]O&b]O&c^O&d^O&e^O&f^O&g^O&h^O&i^O&j^O{%iX!x%iX#g%iX%[%iX%_%iX%z%iX%{%iX!W%iX![%iX!Q%iX#[%iXt%iX!m%iX~P,eOz#dO{%hX!x%hX#g%hX%[%hX%_%hX%z%hX~Oo0cOv0qO~P'vO#g#gO%[#iO%_#iO~O%uWO~O!T#nO#u!VO#z!WO#}hO~OopO~P'vOV#sOa#tO%uWO{wP~OV#xOo0cOv0qO!Q#yO~P'vO{#{O!x$QO%z#|O#g!yX%[!yX%_!yX~OV#xOo0cOv0qO#g#SX%[#SX%_#SX~P'vOo0cOv0qO#g#WX%[#WX%_#WX~P'vOh$WO%uWO~O!f$YO!r$YO%uWO~OV$eO~P'vO!U$gO#s$hO#u$iO~O{$jO~OV$qO~P'vOS$sO%[$rO%_$rO%c$tO~OV$}Oa$}Og%POo0cOv0qO~P'vOo0cOv0qO{%SO~P'vO&Y%UO~Oa!bOh!iO!X!kO!f!mOVba_bakbalbambanbaobapbasbazba{ba!xba#gba%[ba%_ba%jba%kba%lba%mba%nba%oba%pba%qba%rba%sba%zbagba!Tba!Uba%{ba!Wba![ba!Qba#[batba!mba~On%ZO~Oo%ZO~P'vOo0cO~P'vOk0eOl0fOm0dOn0dOo0mOp0nOs0rOg%wX!T%wX!U%wX%{%wX!W%wX![%wX!Q%wX#[%wX!m%wX~P)pO%{%]Og%vXz%vX!T%vX!U%vX!W%vX{%vX~Og%_Oz%`O!T%dO!U%cO~Og%_O~Oz%gO!T%dO!U%cO!W&SX~O!W%kO~Oz%lO{%nO!T%dO!U%cO![%}X~O![%rO~O![%sO~OQ#XO%`#XO%a%uO~OV%wOo0cOv0qO!PrO~P'vOQ#^OR#[O%`#^O%a%zO~OV!qa_!qaa!qah!qak!qal!qam!qan!qao!qap!qas!qaz!qa{!qa!X!qa!f!qa!x!qa#g!qa%[!qa%_!qa%j!qa%k!qa%l!qa%m!qa%n!qa%o!qa%p!qa%q!qa%r!qa%s!qa%z!qag!qa!T!qa!U!qa%{!qa!W!qa![!qa!Q!qa#[!qat!qa!m!qa~P#yOz%|O{%ha!x%ha#g%ha%[%ha%_%ha%z%ha~P%SOV&OOopOvqO{%ha!x%ha#g%ha%[%ha%_%ha%z%ha~P'vOz%|O{%ha!x%ha#g%ha%[%ha%_%ha%z%ha~OPdOVaOopOvqO!PrO!Q{O!{tO!}uO#PvO#RwO#TxO#XyO#ZzO#^|O#_|O#a}O#c!OO#g$zX%[$zX%_$zX~P'vO#g#gO%[&TO%_&TO~O!f&UOh&sX%[&sXz&sX#[&sX#g&sX%_&sX#Z&sXg&sX~Oh!iO%[&WO~Okealeameaneaoeapeaseazea{ea!xea#gea%[ea%_ea%zeagea!Tea!Uea%{ea!Wea![ea!Qea#[eatea!mea~P%SOsqazqa{qa#gqa%[qa%_qa%zqa~Ok!pOl!qOm!oOn!oOo!rOp!sO!xqa~PEcO%z&YOz%yX{%yX~O%uWOz%yX{%yX~Oz&]O{wX~O{&_O~Oz%lO#g%}X%[%}X%_%}Xg%}X{%}X![%}X!m%}X%z%}X~OV0lOo0cOv0qO!PrO~P'vO%z#|O#gUa%[Ua%_Ua~Oz&hO#g&PX%[&PX%_&PXn&PX~P%SOz&kO!Q&jO#g#Wa%[#Wa%_#Wa~Oz&lO#[&nO#g&rX%[&rX%_&rXg&rX~O!f$YO!r$YO#Z&qO%uWO~O#Z&qO~Oz&sO#g&tX%[&tX%_&tX~Oz&uO#g&pX%[&pX%_&pX{&pX~O!X&wO%z&xO~Oz&|On&wX~P%SOn'PO~OPdOVaOopOvqO!PrO!Q{O!{tO!}uO#PvO#RwO#TxO#XyO#ZzO#^|O#_|O#a}O#c!OO%['UO~P'vOt'YO#p'WO#q'XOP#naV#naf#nah#nao#nas#nav#na!P#na!Q#na!T#na!U#na!X#na!]#na!h#na!r#na!s#na!t#na!{#na!}#na#P#na#R#na#T#na#X#na#Z#na#^#na#_#na#a#na#c#na#l#na#o#na#s#na#u#na#z#na#}#na$P#na%X#na%o#na%p#na%t#na%u#na&Z#na&[#na&]#na&^#na&_#na&`#na&a#na&b#na&c#na&d#na&e#na&f#na&g#na&h#na&i#na&j#na%Z#na%_#na~Oz'ZO#[']O{&xX~Oh'_O!X&wO~Oh!iO{$jO!X&wO~O{'eO~P%SO%['hO%_'hO~OS'iO%['hO%_'hO~OV!aO_!aOa!bOh!iO!X!kO!f!mO%l!^O%m!_O%n!_O%o!`O%p!`O%q!aO%r!aO%s!aOkWilWimWinWioWipWisWizWi{Wi!xWi#gWi%[Wi%_Wi%jWi%zWigWi!TWi!UWi%{Wi!WWi![Wi!QWi#[WitWi!mWi~O%k!]O~P!#uO%kWi~P!#uOV!aO_!aOa!bOh!iO!X!kO!f!mO%o!`O%p!`O%q!aO%r!aO%s!aOkWilWimWinWioWipWisWizWi{Wi!xWi#gWi%[Wi%_Wi%jWi%kWi%lWi%zWigWi!TWi!UWi%{Wi!WWi![Wi!QWi#[WitWi!mWi~O%m!_O%n!_O~P!&pO%mWi%nWi~P!&pOa!bOh!iO!X!kO!f!mOkWilWimWinWioWipWisWizWi{Wi!xWi#gWi%[Wi%_Wi%jWi%kWi%lWi%mWi%nWi%oWi%pWi%zWigWi!TWi!UWi%{Wi!WWi![Wi!QWi#[WitWi!mWi~OV!aO_!aO%q!aO%r!aO%s!aO~P!)nOVWi_Wi%qWi%rWi%sWi~P!)nO!T%dO!U%cOg&VXz&VX~O%z'kO%{'kO~P,eOz'mOg&UX~Og'oO~Oz'pO{'rO!W&XX~Oo0cOv0qOz'pO{'sO!W&XX~P'vO!W'uO~Om!oOn!oOo!rOp!sOkjisjizji{ji!xji#gji%[ji%_ji%zji~Ol!qO~P!.aOlji~P!.aOk0eOl0fOm0dOn0dOo0mOp0nO~Ot'wO~P!/jOV'|Og'}Oo0cOv0qO~P'vOg'}Oz(OO~Og(QO~O!U(SO~Og(TOz(OO!T%dO!U%cO~P%SOk0eOl0fOm0dOn0dOo0mOp0nOgqa!Tqa!Uqa%{qa!Wqa![qa!Qqa#[qatqa!mqa~PEcOV'|Oo0cOv0qO!W&Sa~P'vOz(WO!W&Sa~O!W(XO~Oz(WO!T%dO!U%cO!W&Sa~P%SOV(]Oo0cOv0qO![%}a#g%}a%[%}a%_%}ag%}a{%}a!m%}a%z%}a~P'vOz(^O![%}a#g%}a%[%}a%_%}ag%}a{%}a!m%}a%z%}a~O![(aO~Oz(^O!T%dO!U%cO![%}a~P%SOz(dO!T%dO!U%cO![&Ta~P%SOz(gO{&lX![&lX!m&lX%z&lX~O{(kO![(mO!m(nO%z(jO~OV&OOopOvqO{%hi!x%hi#g%hi%[%hi%_%hi%z%hi~P'vOz(pO{%hi!x%hi#g%hi%[%hi%_%hi%z%hi~O!f&UOh&sa%[&saz&sa#[&sa#g&sa%_&sa#Z&sag&sa~O%[(uO~OV#sOa#tO%uWO~Oz&]O{wa~OopOvqO~P'vOz(^O#g%}a%[%}a%_%}ag%}a{%}a![%}a!m%}a%z%}a~P%SOz(zO#g%hX%[%hX%_%hX%z%hX~O%z#|O#gUi%[Ui%_Ui~O#g&Pa%[&Pa%_&Pan&Pa~P'vOz(}O#g&Pa%[&Pa%_&Pan&Pa~O%uWO#g&ra%[&ra%_&rag&ra~Oz)SO#g&ra%[&ra%_&rag&ra~Og)VO~OV)WOh$WO%uWO~O#Z)XO~O%uWO#g&ta%[&ta%_&ta~Oz)ZO#g&ta%[&ta%_&ta~Oo0cOv0qO#g&pa%[&pa%_&pa{&pa~P'vOz)^O#g&pa%[&pa%_&pa{&pa~OV)`Oa)`O%uWO~O%z)eO~Ot)hO#j)gOP#hiV#hif#hih#hio#his#hiv#hi!P#hi!Q#hi!T#hi!U#hi!X#hi!]#hi!h#hi!r#hi!s#hi!t#hi!{#hi!}#hi#P#hi#R#hi#T#hi#X#hi#Z#hi#^#hi#_#hi#a#hi#c#hi#l#hi#o#hi#s#hi#u#hi#z#hi#}#hi$P#hi%X#hi%o#hi%p#hi%t#hi%u#hi&Z#hi&[#hi&]#hi&^#hi&_#hi&`#hi&a#hi&b#hi&c#hi&d#hi&e#hi&f#hi&g#hi&h#hi&i#hi&j#hi%Z#hi%_#hi~Ot)iOP#kiV#kif#kih#kio#kis#kiv#ki!P#ki!Q#ki!T#ki!U#ki!X#ki!]#ki!h#ki!r#ki!s#ki!t#ki!{#ki!}#ki#P#ki#R#ki#T#ki#X#ki#Z#ki#^#ki#_#ki#a#ki#c#ki#l#ki#o#ki#s#ki#u#ki#z#ki#}#ki$P#ki%X#ki%o#ki%p#ki%t#ki%u#ki&Z#ki&[#ki&]#ki&^#ki&_#ki&`#ki&a#ki&b#ki&c#ki&d#ki&e#ki&f#ki&g#ki&h#ki&i#ki&j#ki%Z#ki%_#ki~OV)kOn&wa~P'vOz)lOn&wa~Oz)lOn&wa~P%SOn)pO~O%Y)tO~Ot)wO#p'WO#q)vOP#niV#nif#nih#nio#nis#niv#ni!P#ni!Q#ni!T#ni!U#ni!X#ni!]#ni!h#ni!r#ni!s#ni!t#ni!{#ni!}#ni#P#ni#R#ni#T#ni#X#ni#Z#ni#^#ni#_#ni#a#ni#c#ni#l#ni#o#ni#s#ni#u#ni#z#ni#}#ni$P#ni%X#ni%o#ni%p#ni%t#ni%u#ni&Z#ni&[#ni&]#ni&^#ni&_#ni&`#ni&a#ni&b#ni&c#ni&d#ni&e#ni&f#ni&g#ni&h#ni&i#ni&j#ni%Z#ni%_#ni~OV)zOo0cOv0qO{$jO~P'vOo0cOv0qO{&xa~P'vOz*OO{&xa~OV*SOa*TOg*WO%q*UO%uWO~O{$jO&{*YO~Oh'_O~Oh!iO{$jO~O%[*_O~O%[*aO%_*aO~OV$}Oa$}Oo0cOv0qOg&Ua~P'vOz*dOg&Ua~Oo0cOv0qO{*gO!W&Xa~P'vOz*hO!W&Xa~Oo0cOv0qOz*hO{*kO!W&Xa~P'vOo0cOv0qOz*hO!W&Xa~P'vOz*hO{*kO!W&Xa~Om0dOn0dOo0mOp0nOgjikjisjizji!Tji!Uji%{ji!Wji{ji![ji#gji%[ji%_ji!Qji#[jitji!mji%zji~Ol0fO~P!NkOlji~P!NkOV'|Og*pOo0cOv0qO~P'vOn*rO~Og*pOz*tO~Og*uO~OV'|Oo0cOv0qO!W&Si~P'vOz*vO!W&Si~O!W*wO~OV(]Oo0cOv0qO![%}i#g%}i%[%}i%_%}ig%}i{%}i!m%}i%z%}i~P'vOz*zO!T%dO!U%cO![&Ti~Oz*}O![%}i#g%}i%[%}i%_%}ig%}i{%}i!m%}i%z%}i~O![+OO~Oa+QOo0cOv0qO![&Ti~P'vOz*zO![&Ti~O![+SO~OV+UOo0cOv0qO{&la![&la!m&la%z&la~P'vOz+VO{&la![&la!m&la%z&la~O!]+YO&n+[O![!nX~O![+^O~O{(kO![+_O~O{(kO![+_O!m+`O~OV&OOopOvqO{%hq!x%hq#g%hq%[%hq%_%hq%z%hq~P'vOz$ri{$ri!x$ri#g$ri%[$ri%_$ri%z$ri~P%SOV&OOopOvqO~P'vOV&OOo0cOv0qO#g%ha%[%ha%_%ha%z%ha~P'vOz+aO#g%ha%[%ha%_%ha%z%ha~Oz$ia#g$ia%[$ia%_$ian$ia~P%SO#g&Pi%[&Pi%_&Pin&Pi~P'vOz+dO#g#Wq%[#Wq%_#Wq~O#[+eOz$va#g$va%[$va%_$vag$va~O%uWO#g&ri%[&ri%_&rig&ri~Oz+gO#g&ri%[&ri%_&rig&ri~OV+iOh$WO%uWO~O%uWO#g&ti%[&ti%_&ti~Oo0cOv0qO#g&pi%[&pi%_&pi{&pi~P'vO{#{Oz#eX!W#eX~Oz+mO!W&uX~O!W+oO~Ot+rO#j)gOP#hqV#hqf#hqh#hqo#hqs#hqv#hq!P#hq!Q#hq!T#hq!U#hq!X#hq!]#hq!h#hq!r#hq!s#hq!t#hq!{#hq!}#hq#P#hq#R#hq#T#hq#X#hq#Z#hq#^#hq#_#hq#a#hq#c#hq#l#hq#o#hq#s#hq#u#hq#z#hq#}#hq$P#hq%X#hq%o#hq%p#hq%t#hq%u#hq&Z#hq&[#hq&]#hq&^#hq&_#hq&`#hq&a#hq&b#hq&c#hq&d#hq&e#hq&f#hq&g#hq&h#hq&i#hq&j#hq%Z#hq%_#hq~On$|az$|a~P%SOV)kOn&wi~P'vOz+yOn&wi~Oz,TO{$jO#[,TO~O#q,VOP#nqV#nqf#nqh#nqo#nqs#nqv#nq!P#nq!Q#nq!T#nq!U#nq!X#nq!]#nq!h#nq!r#nq!s#nq!t#nq!{#nq!}#nq#P#nq#R#nq#T#nq#X#nq#Z#nq#^#nq#_#nq#a#nq#c#nq#l#nq#o#nq#s#nq#u#nq#z#nq#}#nq$P#nq%X#nq%o#nq%p#nq%t#nq%u#nq&Z#nq&[#nq&]#nq&^#nq&_#nq&`#nq&a#nq&b#nq&c#nq&d#nq&e#nq&f#nq&g#nq&h#nq&i#nq&j#nq%Z#nq%_#nq~O#[,WOz%Oa{%Oa~Oo0cOv0qO{&xi~P'vOz,YO{&xi~O{#{O%z,[Og&zXz&zX~O%uWOg&zXz&zX~Oz,`Og&yX~Og,bO~O%Y,eO~O!T%dO!U%cOg&Viz&Vi~OV$}Oa$}Oo0cOv0qOg&Ui~P'vO{,hOz$la!W$la~Oo0cOv0qO{,iOz$la!W$la~P'vOo0cOv0qO{*gO!W&Xi~P'vOz,lO!W&Xi~Oo0cOv0qOz,lO!W&Xi~P'vOz,lO{,oO!W&Xi~Og$hiz$hi!W$hi~P%SOV'|Oo0cOv0qO~P'vOn,qO~OV'|Og,rOo0cOv0qO~P'vOV'|Oo0cOv0qO!W&Sq~P'vOz$gi![$gi#g$gi%[$gi%_$gig$gi{$gi!m$gi%z$gi~P%SOV(]Oo0cOv0qO~P'vOa+QOo0cOv0qO![&Tq~P'vOz,sO![&Tq~O![,tO~OV(]Oo0cOv0qO![%}q#g%}q%[%}q%_%}qg%}q{%}q!m%}q%z%}q~P'vO{,uO~OV+UOo0cOv0qO{&li![&li!m&li%z&li~P'vOz,zO{&li![&li!m&li%z&li~O!]+YO&n+[O![!na~O{(kO![,}O~OV&OOo0cOv0qO#g%hi%[%hi%_%hi%z%hi~P'vOz-OO#g%hi%[%hi%_%hi%z%hi~O%uWO#g&rq%[&rq%_&rqg&rq~Oz-RO#g&rq%[&rq%_&rqg&rq~OV)`Oa)`O%uWO!W&ua~Oz-TO!W&ua~On$|iz$|i~P%SOV)kO~P'vOV)kOn&wq~P'vOt-XOP#myV#myf#myh#myo#mys#myv#my!P#my!Q#my!T#my!U#my!X#my!]#my!h#my!r#my!s#my!t#my!{#my!}#my#P#my#R#my#T#my#X#my#Z#my#^#my#_#my#a#my#c#my#l#my#o#my#s#my#u#my#z#my#}#my$P#my%X#my%o#my%p#my%t#my%u#my&Z#my&[#my&]#my&^#my&_#my&`#my&a#my&b#my&c#my&d#my&e#my&f#my&g#my&h#my&i#my&j#my%Z#my%_#my~O%Z-]O%_-]O~P`O#q-^OP#nyV#nyf#nyh#nyo#nys#nyv#ny!P#ny!Q#ny!T#ny!U#ny!X#ny!]#ny!h#ny!r#ny!s#ny!t#ny!{#ny!}#ny#P#ny#R#ny#T#ny#X#ny#Z#ny#^#ny#_#ny#a#ny#c#ny#l#ny#o#ny#s#ny#u#ny#z#ny#}#ny$P#ny%X#ny%o#ny%p#ny%t#ny%u#ny&Z#ny&[#ny&]#ny&^#ny&_#ny&`#ny&a#ny&b#ny&c#ny&d#ny&e#ny&f#ny&g#ny&h#ny&i#ny&j#ny%Z#ny%_#ny~Oz-aO{$jO#[-aO~Oo0cOv0qO{&xq~P'vOz-dO{&xq~O%z,[Og&zaz&za~O{#{Og&zaz&za~OV*SOa*TO%q*UO%uWOg&ya~Oz-hOg&ya~O$S-lO~OV$}Oa$}Oo0cOv0qO~P'vOo0cOv0qO{-mOz$li!W$li~P'vOo0cOv0qOz$li!W$li~P'vO{-mOz$li!W$li~Oo0cOv0qO{*gO~P'vOo0cOv0qO{*gO!W&Xq~P'vOz-pO!W&Xq~Oo0cOv0qOz-pO!W&Xq~P'vOs-sO!T%dO!U%cOg&Oq!W&Oq![&Oqz&Oq~P!/jOa+QOo0cOv0qO![&Ty~P'vOz$ji![$ji~P%SOa+QOo0cOv0qO~P'vOV+UOo0cOv0qO~P'vOV+UOo0cOv0qO{&lq![&lq!m&lq%z&lq~P'vO{(kO![-xO!m-yO%z-wO~OV&OOo0cOv0qO#g%hq%[%hq%_%hq%z%hq~P'vO%uWO#g&ry%[&ry%_&ryg&ry~OV)`Oa)`O%uWO!W&ui~Ot-}OP#m!RV#m!Rf#m!Rh#m!Ro#m!Rs#m!Rv#m!R!P#m!R!Q#m!R!T#m!R!U#m!R!X#m!R!]#m!R!h#m!R!r#m!R!s#m!R!t#m!R!{#m!R!}#m!R#P#m!R#R#m!R#T#m!R#X#m!R#Z#m!R#^#m!R#_#m!R#a#m!R#c#m!R#l#m!R#o#m!R#s#m!R#u#m!R#z#m!R#}#m!R$P#m!R%X#m!R%o#m!R%p#m!R%t#m!R%u#m!R&Z#m!R&[#m!R&]#m!R&^#m!R&_#m!R&`#m!R&a#m!R&b#m!R&c#m!R&d#m!R&e#m!R&f#m!R&g#m!R&h#m!R&i#m!R&j#m!R%Z#m!R%_#m!R~Oo0cOv0qO{&xy~P'vOV*SOa*TO%q*UO%uWOg&yi~O$S-lO%Z.VO%_.VO~OV.aOh._O!X.^O!].`O!h.YO!s.[O!t.[O%p.XO%uWO&Z]O&[]O&]]O&^]O&_]O&`]O&a]O&b]O~Oo0cOv0qOz$lq!W$lq~P'vO{.fOz$lq!W$lq~Oo0cOv0qO{*gO!W&Xy~P'vOz.gO!W&Xy~Oo0cOv.kO~P'vOs-sO!T%dO!U%cOg&Oy!W&Oy![&Oyz&Oy~P!/jO{(kO![.nO~O{(kO![.nO!m.oO~OV*SOa*TO%q*UO%uWO~Oh.tO!f.rOz$TX#[$TX%j$TXg$TX~Os$TX{$TX!W$TX![$TX~P$-bO%o.vO%p.vOs$UXz$UX{$UX#[$UX%j$UX!W$UXg$UX![$UX~O!h.xO~Oz.|O#[/OO%j.yOs&|X{&|X!W&|Xg&|X~Oa/RO~P$)zOh.tOs&}Xz&}X{&}X#[&}X%j&}X!W&}Xg&}X![&}X~Os/VO{$jO~Oo0cOv0qOz$ly!W$ly~P'vOo0cOv0qO{*gO!W&X!R~P'vOz/ZO!W&X!R~Og&RXs&RX!T&RX!U&RX!W&RX![&RXz&RX~P!/jOs-sO!T%dO!U%cOg&Qa!W&Qa![&Qaz&Qa~O{(kO![/^O~O!f.rOh$[as$[az$[a{$[a#[$[a%j$[a!W$[ag$[a![$[a~O!h/eO~O%o.vO%p.vOs$Uaz$Ua{$Ua#[$Ua%j$Ua!W$Uag$Ua![$Ua~O%j.yOs$Yaz$Ya{$Ya#[$Ya!W$Yag$Ya![$Ya~Os&|a{&|a!W&|ag&|a~P$)nOz/jOs&|a{&|a!W&|ag&|a~O!W/mO~Og/mO~O{/oO~O![/pO~Oo0cOv0qO{*gO!W&X!Z~P'vO{/sO~O%z/tO~P$-bOz/uO#[/OO%j.yOg'PX~Oz/uOg'PX~Og/wO~O!h/xO~O#[/OOs%Saz%Sa{%Sa%j%Sa!W%Sag%Sa![%Sa~O#[/OO%j.yOs%Waz%Wa{%Wa!W%Wag%Wa~Os&|i{&|i!W&|ig&|i~P$)nOz/zO#[/OO%j.yO!['Oa~Og'Pa~P$)nOz0SOg'Pa~Oa0UO!['Oi~P$)zOz0WO!['Oi~Oz0WO#[/OO%j.yO!['Oi~O#[/OO%j.yOg$biz$bi~O%z0ZO~P$-bO#[/OO%j.yOg%Vaz%Va~Og'Pi~P$)nO{0^O~Oa0UO!['Oq~P$)zOz0`O!['Oq~O#[/OO%j.yOz%Ui![%Ui~Oa0UO~P$)zOa0UO!['Oy~P$)zO#[/OO%j.yOg$ciz$ci~O#[/OO%j.yOz%Uq![%Uq~Oz+aO#g%ha%[%ha%_%ha%z%ha~P%SOV&OOo0cOv0qO~P'vOn0hO~Oo0hO~P'vO{0iO~Ot0jO~P!/jO&]&Z&j&h&i&g&f&d&e&c&b&`&a&_&^&[%u~",goto:"!=j'QPPPPPP'RP'Z*s+[+t,_,y-fP.SP'Z.r.r'ZPPP'Z2[PPPPPP2[5PPP5PP7b7k=sPP=v>h>kPP'Z'ZPP>zPP'Z'ZPP'Z'Z'Z'Z'Z?O?w'ZP?zP@QDXGuGyPG|HWH['ZPPPH_Hk'RP'R'RP'RP'RP'RP'RP'R'R'RP'RPP'RPP'RP'RPHqH}IVPI^IdPI^PI^I^PPPI^PKrPK{LVL]KrPI^LfPI^PLmLsPLwM]MzNeLwLwNkNxLwLwLwLw! ^! d! g! l! o! y!!P!!]!!o!!u!#P!#V!#s!#y!$P!$Z!$a!$g!$y!%T!%Z!%a!%k!%q!%w!%}!&T!&Z!&e!&k!&u!&{!'U!'[!'k!'s!'}!(UPPPPPPPPPPP!([!(_!(e!(n!(x!)TPPPPPPPPPPPP!-u!/Z!3^!6oPP!6w!7W!7a!8Y!8P!8c!8i!8l!8o!8r!8z!9jPPPPPPPPPPPPPPPPP!9m!9q!9wP!:]!:a!:m!:v!;S!;j!;m!;p!;v!;|!<S!<VP!<_!<h!=d!=g]eOn#g$j)t,P'}`OTYZ[adnoprtxy}!P!Q!R!U!X!c!d!e!f!g!h!i!k!o!p!q!s!t!z#O#S#T#[#d#g#x#y#{#}$Q$e$g$h$j$q$}%S%Z%^%`%c%g%l%n%w%|&O&Z&_&h&j&k&u&x&|'P'W'Z'l'm'p'r's'w'|(O(S(W(](^(d(g(p(r(z(})^)e)g)k)l)p)t)z*O*Y*d*g*h*k*q*r*t*v*y*z*}+Q+U+V+Y+a+c+d+k+x+y,P,X,Y,],g,h,i,k,l,o,q,s,u,w,y,z-O-d-f-m-p-s.f.g/V/Z/s0c0d0e0f0h0i0j0k0l0n0r{!cQ#c#p$R$d$p%e%j%p%q&`'O'g(q(|)j*o*x+w,v0g}!dQ#c#p$R$d$p$u%e%j%p%q&`'O'g(q(|)j*o*x+w,v0g!P!eQ#c#p$R$d$p$u$v%e%j%p%q&`'O'g(q(|)j*o*x+w,v0g!R!fQ#c#p$R$d$p$u$v$w%e%j%p%q&`'O'g(q(|)j*o*x+w,v0g!T!gQ#c#p$R$d$p$u$v$w$x%e%j%p%q&`'O'g(q(|)j*o*x+w,v0g!V!hQ#c#p$R$d$p$u$v$w$x$y%e%j%p%q&`'O'g(q(|)j*o*x+w,v0g!Z!hQ!n#c#p$R$d$p$u$v$w$x$y$z%e%j%p%q&`'O'g(q(|)j*o*x+w,v0g'}TOTYZ[adnoprtxy}!P!Q!R!U!X!c!d!e!f!g!h!i!k!o!p!q!s!t!z#O#S#T#[#d#g#x#y#{#}$Q$e$g$h$j$q$}%S%Z%^%`%c%g%l%n%w%|&O&Z&_&h&j&k&u&x&|'P'W'Z'l'm'p'r's'w'|(O(S(W(](^(d(g(p(r(z(})^)e)g)k)l)p)t)z*O*Y*d*g*h*k*q*r*t*v*y*z*}+Q+U+V+Y+a+c+d+k+x+y,P,X,Y,],g,h,i,k,l,o,q,s,u,w,y,z-O-d-f-m-p-s.f.g/V/Z/s0c0d0e0f0h0i0j0k0l0n0r&eVOYZ[dnprxy}!P!Q!U!i!k!o!p!q!s!t#[#d#g#y#{#}$Q$h$j$}%S%Z%^%`%g%l%n%w%|&Z&_&j&k&u&x'P'W'Z'l'm'p'r's'w(O(W(^(d(g(p(r(z)^)e)g)p)t)z*O*Y*d*g*h*k*q*r*t*v*y*z*}+U+V+Y+a+d+k,P,X,Y,],g,h,i,k,l,o,q,s,u,w,y,z-O-d-f-m-p-s.f.g/V/Z/s0c0d0e0f0h0i0j0k0n0r%oXOYZ[dnrxy}!P!Q!U!i!k#[#d#g#y#{#}$Q$h$j$}%S%^%`%g%l%n%w%|&Z&_&j&k&u&x'P'W'Z'l'm'p'r's'w(O(W(^(d(g(p(r(z)^)e)g)p)t)z*O*Y*d*g*h*k*q*t*v*y*z*}+U+V+Y+a+d+k,P,X,Y,],g,h,i,k,l,o,s,u,w,y,z-O-d-f-m-p.f.g/V/Z0i0j0kQ#vqQ/[.kR0o0q't`OTYZ[adnoprtxy}!P!Q!R!U!X!c!d!e!f!g!h!k!o!p!q!s!t!z#O#S#T#[#d#g#x#y#{#}$Q$e$g$h$j$q$}%S%Z%^%`%c%g%l%n%w%|&O&Z&_&h&j&k&u&x&|'P'W'Z'l'p'r's'w'|(O(S(W(](^(d(g(p(r(z(})^)e)g)k)l)p)t)z*O*Y*g*h*k*q*r*t*v*y*z*}+Q+U+V+Y+a+c+d+k+x+y,P,X,Y,],h,i,k,l,o,q,s,u,w,y,z-O-d-f-m-p-s.f.g/V/Z/s0c0d0e0f0h0i0j0k0l0n0rh#jhz{$W$Z&l&q)S)X+f+g-RW#rq&].k0qQ$]|Q$a!OQ$n!VQ$o!WW$|!i'm*d,gS&[#s#tQ'S$iQ(s&UQ)U&nU)Y&s)Z+jW)a&w+m-T-{Q*Q']W*R'_,`-h.TQ+l)`S,_*S*TQ-Q+eQ-_,TQ-c,WQ.R-al.W-l.^._.a.z.|/R/j/o/t/y0U0Z0^Q/S.`Q/a.tQ/l/OU0P/u0S0[X0V/z0W0_0`R&Z#r!_!wYZ!P!Q!k%S%`%g'p'r's(O(W)g*g*h*k*q*t*v,h,i,k,l,o-m-p.f.g/ZR%^!vQ!{YQ%x#[Q&d#}Q&g$QR,{+YT.j-s/s!Y!jQ!n#c#p$R$d$p$u$v$w$x$y$z%e%j%p%q&`'O'g(q(|)j*o*x+w,v0gQ&X#kQ'c$oR*^'dR'l$|Q%V!mR/_.r'|_OTYZ[adnoprtxy}!P!Q!R!U!X!c!d!e!f!g!h!i!k!o!p!q!s!t!z#O#S#T#[#d#g#x#y#{#}$Q$e$g$h$j$q$}%S%Z%^%`%c%g%l%n%w%|&O&Z&_&h&j&k&u&x&|'P'W'Z'l'm'p'r's'w'|(O(S(W(](^(d(g(p(r(z(})^)e)g)k)l)p)t)z*O*Y*d*g*h*k*q*r*t*v*y*z*}+Q+U+V+Y+a+c+d+k+x+y,P,X,Y,],g,h,i,k,l,o,q,s,u,w,y,z-O-d-f-m-p-s.f.g/V/Z/s0c0d0e0f0h0i0j0k0l0n0rS#a_#b!P.[-l.^._.`.a.t.z.|/R/j/o/t/u/y/z0S0U0W0Z0[0^0_0`'|_OTYZ[adnoprtxy}!P!Q!R!U!X!c!d!e!f!g!h!i!k!o!p!q!s!t!z#O#S#T#[#d#g#x#y#{#}$Q$e$g$h$j$q$}%S%Z%^%`%c%g%l%n%w%|&O&Z&_&h&j&k&u&x&|'P'W'Z'l'm'p'r's'w'|(O(S(W(](^(d(g(p(r(z(})^)e)g)k)l)p)t)z*O*Y*d*g*h*k*q*r*t*v*y*z*}+Q+U+V+Y+a+c+d+k+x+y,P,X,Y,],g,h,i,k,l,o,q,s,u,w,y,z-O-d-f-m-p-s.f.g/V/Z/s0c0d0e0f0h0i0j0k0l0n0rT#a_#bT#^^#_R(o%xa(l%x(n(o+`,{-y-z.oT+[(k+]R-z,{Q$PsQ+l)aQ,^*RR-e,_X#}s$O$P&fQ&y$aQ'a$nQ'd$oR)s'SQ)b&wV-S+m-T-{ZgOn$j)t,PXkOn)t,PQ$k!TQ&z$bQ&{$cQ'^$mQ'b$oQ)q'RQ)x'WQ){'XQ)|'YQ*Z'`S*]'c'dQ+s)gQ+u)hQ+v)iQ+z)oS+|)r*[Q,Q)vQ,R)wS,S)y)zQ,d*^Q-V+rQ-W+tQ-Y+{S-Z+},OQ-`,UQ-b,VQ-|-XQ.O-[Q.P-^Q.Q-_Q.p-}Q.q.RQ/W.dR/r/XWkOn)t,PR#mjQ'`$nS)r'S'aR,O)sQ,]*RR-f,^Q*['`Q+})rR-[,OZiOjn)t,PQ'f$pR*`'gT-j,e-ku.c-l.^._.a.t.z.|/R/j/o/t/u/y0S0U0Z0[0^t.c-l.^._.a.t.z.|/R/j/o/t/u/y0S0U0Z0[0^Q/S.`X0V/z0W0_0`!P.Z-l.^._.`.a.t.z.|/R/j/o/t/u/y/z0S0U0W0Z0[0^0_0`Q.w.YR/f.xg.z.].{/b/i/n/|0O0Q0]0a0bu.b-l.^._.a.t.z.|/R/j/o/t/u/y0S0U0Z0[0^X.u.W.b/a0PR/c.tV0R/u0S0[R/X.dQnOS#on,PR,P)tQ&^#uR(x&^S%m#R#wS(_%m(bT(b%p&`Q%a!yQ%h!}W(P%a%h(U(YQ(U%eR(Y%jQ&i$RR)O&iQ(e%qQ*{(`T+R(e*{Q'n%OR*e'nS'q%R%SY*i'q*j,m-q.hU*j'r's'tU,m*k*l*mS-q,n,oR.h-rQ#Y]R%t#YQ#_^R%y#_Q(h%vS+W(h+XR+X(iQ+](kR,|+]Q#b_R%{#bQ#ebQ%}#cW&Q#e%}({+bQ({&cR+b0gQ$OsS&e$O&fR&f$PQ&v$_R)_&vQ&V#jR(t&VQ&m$VS)T&m+hR+h)UQ$Z{R&p$ZQ&t$]R)[&tQ+n)bR-U+nQ#hfR&S#hQ)f&zR+q)fQ&}$dS)m&})nR)n'OQ'V$kR)u'VQ'[$lS*P'[,ZR,Z*QQ,a*VR-i,aWjOn)t,PR#ljQ-k,eR.U-kd.{.]/b/i/n/|0O0Q0]0a0bR/h.{U.s.W/a0PR/`.sQ/{/nS0X/{0YR0Y/|S/v/b/cR0T/vQ.}.]R/k.}R!ZPXmOn)t,PWlOn)t,PR'T$jYfOn$j)t,PR&R#g[sOn#g$j)t,PR&d#}&dQOYZ[dnprxy}!P!Q!U!i!k!o!p!q!s!t#[#d#g#y#{#}$Q$h$j$}%S%Z%^%`%g%l%n%w%|&Z&_&j&k&u&x'P'W'Z'l'm'p'r's'w(O(W(^(d(g(p(r(z)^)e)g)p)t)z*O*Y*d*g*h*k*q*r*t*v*y*z*}+U+V+Y+a+d+k,P,X,Y,],g,h,i,k,l,o,q,s,u,w,y,z-O-d-f-m-p-s.f.g/V/Z/s0c0d0e0f0h0i0j0k0n0rQ!nTQ#caQ#poU$Rt%c(SS$d!R$gQ$p!XQ$u!cQ$v!dQ$w!eQ$x!fQ$y!gQ$z!hQ%e!zQ%j#OQ%p#SQ%q#TQ&`#xQ'O$eQ'g$qQ(q&OU(|&h(}+cW)j&|)l+x+yQ*o'|Q*x(]Q+w)kQ,v+QR0g0lQ!yYQ!}ZQ$b!PQ$c!QQ%R!kQ't%S^'{%`%g(O(W*q*t*v^*f'p*h,k,l-p.g/ZQ*l'rQ*m'sQ+t)gQ,j*gQ,n*kQ-n,hQ-o,iQ-r,oQ.e-mR/Y.f[bOn#g$j)t,P!^!vYZ!P!Q!k%S%`%g'p'r's(O(W)g*g*h*k*q*t*v,h,i,k,l,o-m-p.f.g/ZQ#R[Q#fdS#wrxQ$UyW$_}$Q'P)pS$l!U$hW${!i'm*d,gS%v#[+Y`&P#d%|(p(r(z+a-O0kQ&a#yQ&b#{Q&c#}Q'j$}Q'z%^W([%l(^*y*}Q(`%nQ(i%wQ(v&ZS(y&_0iQ)P&jQ)Q&kU)]&u)^+kQ)d&xQ)y'WY)}'Z*O,X,Y-dQ*b'lS*n'w0jW+P(d*z,s,wW+T(g+V,y,zQ+p)eQ,U)zQ,c*YQ,x+UQ-P+dQ-e,]Q-v,uQ.S-fR/q/VhUOn#d#g$j%|&_'w(p(r)t,P%U!uYZ[drxy}!P!Q!U!i!k#[#y#{#}$Q$h$}%S%^%`%g%l%n%w&Z&j&k&u&x'P'W'Z'l'm'p'r's(O(W(^(d(g(z)^)e)g)p)z*O*Y*d*g*h*k*q*t*v*y*z*}+U+V+Y+a+d+k,X,Y,],g,h,i,k,l,o,s,u,w,y,z-O-d-f-m-p.f.g/V/Z0i0j0kQ#qpW%W!o!s0d0nQ%X!pQ%Y!qQ%[!tQ%f0cS'v%Z0hQ'x0eQ'y0fQ,p*rQ-u,qS.i-s/sR0p0rU#uq.k0qR(w&][cOn#g$j)t,PZ!xY#[#}$Q+YQ#W[Q#zrR$TxQ%b!yQ%i!}Q%o#RQ'j${Q(V%eQ(Z%jQ(c%pQ(f%qQ*|(`Q,f*bQ-t,pQ.m-uR/].lQ$StQ(R%cR*s(SQ.l-sR/}/sR#QZR#V[R%Q!iQ%O!iV*c'm*d,g!Z!lQ!n#c#p$R$d$p$u$v$w$x$y$z%e%j%p%q&`'O'g(q(|)j*o*x+w,v0gR%T!kT#]^#_Q%x#[R,{+YQ(m%xS+_(n(oQ,}+`Q-x,{S.n-y-zR/^.oT+Z(k+]Q$`}Q&g$QQ)o'PR+{)pQ$XzQ)W&qR+i)XQ$XzQ&o$WQ)W&qR+i)XQ#khW$Vz$W&q)XQ$[{Q&r$ZZ)R&l)S+f+g-RR$^|R)c&wXlOn)t,PQ$f!RR'Q$gQ$m!UR'R$hR*X'_Q*V'_V-g,`-h.TQ.d-lQ/P.^R/Q._U.]-l.^._Q/U.aQ/b.tQ/g.zU/i.|/j/yQ/n/RQ/|/oQ0O/tU0Q/u0S0[Q0]0UQ0a0ZR0b0^R/T.`R/d.t",nodeNames:"\u26A0 print Escape { Comment Script AssignStatement * BinaryExpression BitOp BitOp BitOp BitOp ArithOp ArithOp @ ArithOp ** UnaryExpression ArithOp BitOp AwaitExpression await ) ( ParenthesizedExpression BinaryExpression or and CompareOp in not is UnaryExpression ConditionalExpression if else LambdaExpression lambda ParamList VariableName AssignOp , : NamedExpression AssignOp YieldExpression yield from TupleExpression ComprehensionExpression async for LambdaExpression ] [ ArrayExpression ArrayComprehensionExpression } { DictionaryExpression DictionaryComprehensionExpression SetExpression SetComprehensionExpression CallExpression ArgList AssignOp MemberExpression . PropertyName Number String FormatString FormatReplacement FormatSelfDoc FormatConversion FormatSpec FormatReplacement FormatSelfDoc ContinuedString Ellipsis None Boolean TypeDef AssignOp UpdateStatement UpdateOp ExpressionStatement DeleteStatement del PassStatement pass BreakStatement break ContinueStatement continue ReturnStatement return YieldStatement PrintStatement RaiseStatement raise ImportStatement import as ScopeStatement global nonlocal AssertStatement assert TypeDefinition type TypeParamList TypeParam StatementGroup ; IfStatement Body elif WhileStatement while ForStatement TryStatement try except finally WithStatement with FunctionDefinition def ParamList AssignOp TypeDef ClassDefinition class DecoratedStatement Decorator At MatchStatement match MatchBody MatchClause case CapturePattern LiteralPattern ArithOp ArithOp AsPattern OrPattern LogicOp AttributePattern SequencePattern MappingPattern StarPattern ClassPattern PatternArgList KeywordPattern KeywordPattern Guard",maxTerm:277,context:WI,nodeProps:[["isolate",-5,4,71,72,73,77,""],["group",-15,6,85,87,88,90,92,94,96,98,99,100,102,105,108,110,"Statement Statement",-22,8,18,21,25,40,49,50,56,57,60,61,62,63,64,67,70,71,72,79,80,81,82,"Expression",-10,114,116,119,121,122,126,128,133,135,138,"Statement",-9,143,144,147,148,150,151,152,153,154,"Pattern"],["openedBy",23,"(",54,"[",58,"{"],["closedBy",24,")",55,"]",59,"}"]],propSources:[LI],skippedNodes:[0,4],repeatNodeCount:34,tokenData:"!2|~R!`OX%TXY%oY[%T[]%o]p%Tpq%oqr'ars)Yst*xtu%Tuv,dvw-hwx.Uxy/tyz0[z{0r{|2S|}2p}!O3W!O!P4_!P!Q:Z!Q!R;k!R![>_![!]Do!]!^Es!^!_FZ!_!`Gk!`!aHX!a!b%T!b!cIf!c!dJU!d!eK^!e!hJU!h!i!#f!i!tJU!t!u!,|!u!wJU!w!x!.t!x!}JU!}#O!0S#O#P&o#P#Q!0j#Q#R!1Q#R#SJU#S#T%T#T#UJU#U#VK^#V#YJU#Y#Z!#f#Z#fJU#f#g!,|#g#iJU#i#j!.t#j#oJU#o#p!1n#p#q!1s#q#r!2a#r#s!2f#s$g%T$g;'SJU;'S;=`KW<%lOJU`%YT&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%T`%lP;=`<%l%To%v]&n`%c_OX%TXY%oY[%T[]%o]p%Tpq%oq#O%T#O#P&o#P#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%To&tX&n`OY%TYZ%oZ]%T]^%o^#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tc'f[&n`O!_%T!_!`([!`#T%T#T#U(r#U#f%T#f#g(r#g#h(r#h#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tc(cTmR&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tc(yT!mR&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk)aV&n`&[ZOr%Trs)vs#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk){V&n`Or%Trs*bs#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk*iT&n`&^ZO#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%To+PZS_&n`OY*xYZ%TZ]*x]^%T^#o*x#o#p+r#p#q*x#q#r+r#r;'S*x;'S;=`,^<%lO*x_+wTS_OY+rZ]+r^;'S+r;'S;=`,W<%lO+r_,ZP;=`<%l+ro,aP;=`<%l*xj,kV%rQ&n`O!_%T!_!`-Q!`#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tj-XT!xY&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tj-oV%lQ&n`O!_%T!_!`-Q!`#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk.]V&n`&ZZOw%Twx.rx#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk.wV&n`Ow%Twx/^x#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk/eT&n`&]ZO#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk/{ThZ&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tc0cTgR&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk0yXVZ&n`Oz%Tz{1f{!_%T!_!`-Q!`#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk1mVaR&n`O!_%T!_!`-Q!`#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk2ZV%oZ&n`O!_%T!_!`-Q!`#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tc2wTzR&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%To3_W%pZ&n`O!_%T!_!`-Q!`!a3w!a#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Td4OT&{S&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk4fX!fQ&n`O!O%T!O!P5R!P!Q%T!Q![6T![#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk5WV&n`O!O%T!O!P5m!P#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk5tT!rZ&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Ti6[a!hX&n`O!Q%T!Q![6T![!g%T!g!h7a!h!l%T!l!m9s!m#R%T#R#S6T#S#X%T#X#Y7a#Y#^%T#^#_9s#_#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Ti7fZ&n`O{%T{|8X|}%T}!O8X!O!Q%T!Q![8s![#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Ti8^V&n`O!Q%T!Q![8s![#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Ti8z]!hX&n`O!Q%T!Q![8s![!l%T!l!m9s!m#R%T#R#S8s#S#^%T#^#_9s#_#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Ti9zT!hX&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk:bX%qR&n`O!P%T!P!Q:}!Q!_%T!_!`-Q!`#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tj;UV%sQ&n`O!_%T!_!`-Q!`#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Ti;ro!hX&n`O!O%T!O!P=s!P!Q%T!Q![>_![!d%T!d!e?q!e!g%T!g!h7a!h!l%T!l!m9s!m!q%T!q!rA]!r!z%T!z!{Bq!{#R%T#R#S>_#S#U%T#U#V?q#V#X%T#X#Y7a#Y#^%T#^#_9s#_#c%T#c#dA]#d#l%T#l#mBq#m#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Ti=xV&n`O!Q%T!Q![6T![#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Ti>fc!hX&n`O!O%T!O!P=s!P!Q%T!Q![>_![!g%T!g!h7a!h!l%T!l!m9s!m#R%T#R#S>_#S#X%T#X#Y7a#Y#^%T#^#_9s#_#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Ti?vY&n`O!Q%T!Q!R@f!R!S@f!S#R%T#R#S@f#S#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Ti@mY!hX&n`O!Q%T!Q!R@f!R!S@f!S#R%T#R#S@f#S#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%TiAbX&n`O!Q%T!Q!YA}!Y#R%T#R#SA}#S#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%TiBUX!hX&n`O!Q%T!Q!YA}!Y#R%T#R#SA}#S#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%TiBv]&n`O!Q%T!Q![Co![!c%T!c!iCo!i#R%T#R#SCo#S#T%T#T#ZCo#Z#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%TiCv]!hX&n`O!Q%T!Q![Co![!c%T!c!iCo!i#R%T#R#SCo#S#T%T#T#ZCo#Z#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%ToDvV{_&n`O!_%T!_!`E]!`#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%TcEdT%{R&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%TkEzT#gZ&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%TkFbXmR&n`O!^%T!^!_F}!_!`([!`!a([!a#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%TjGUV%mQ&n`O!_%T!_!`-Q!`#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%TkGrV%zZ&n`O!_%T!_!`([!`#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%TkH`WmR&n`O!_%T!_!`([!`!aHx!a#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%TjIPV%nQ&n`O!_%T!_!`-Q!`#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%TkIoV_Q#}P&n`O!_%T!_!`-Q!`#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%ToJ_]&n`&YS%uZO!Q%T!Q![JU![!c%T!c!}JU!}#R%T#R#SJU#S#T%T#T#oJU#p#q%T#r$g%T$g;'SJU;'S;=`KW<%lOJUoKZP;=`<%lJUoKge&n`&YS%uZOr%Trs)Ysw%Twx.Ux!Q%T!Q![JU![!c%T!c!tJU!t!uLx!u!}JU!}#R%T#R#SJU#S#T%T#T#fJU#f#gLx#g#oJU#p#q%T#r$g%T$g;'SJU;'S;=`KW<%lOJUoMRa&n`&YS%uZOr%TrsNWsw%Twx! vx!Q%T!Q![JU![!c%T!c!}JU!}#R%T#R#SJU#S#T%T#T#oJU#p#q%T#r$g%T$g;'SJU;'S;=`KW<%lOJUkN_V&n`&`ZOr%TrsNts#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%TkNyV&n`Or%Trs! `s#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk! gT&n`&bZO#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk! }V&n`&_ZOw%Twx!!dx#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk!!iV&n`Ow%Twx!#Ox#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk!#VT&n`&aZO#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%To!#oe&n`&YS%uZOr%Trs!%Qsw%Twx!&px!Q%T!Q![JU![!c%T!c!tJU!t!u!(`!u!}JU!}#R%T#R#SJU#S#T%T#T#fJU#f#g!(`#g#oJU#p#q%T#r$g%T$g;'SJU;'S;=`KW<%lOJUk!%XV&n`&dZOr%Trs!%ns#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk!%sV&n`Or%Trs!&Ys#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk!&aT&n`&fZO#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk!&wV&n`&cZOw%Twx!'^x#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk!'cV&n`Ow%Twx!'xx#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk!(PT&n`&eZO#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%To!(ia&n`&YS%uZOr%Trs!)nsw%Twx!+^x!Q%T!Q![JU![!c%T!c!}JU!}#R%T#R#SJU#S#T%T#T#oJU#p#q%T#r$g%T$g;'SJU;'S;=`KW<%lOJUk!)uV&n`&hZOr%Trs!*[s#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk!*aV&n`Or%Trs!*vs#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk!*}T&n`&jZO#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk!+eV&n`&gZOw%Twx!+zx#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk!,PV&n`Ow%Twx!,fx#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk!,mT&n`&iZO#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%To!-Vi&n`&YS%uZOr%TrsNWsw%Twx! vx!Q%T!Q![JU![!c%T!c!dJU!d!eLx!e!hJU!h!i!(`!i!}JU!}#R%T#R#SJU#S#T%T#T#UJU#U#VLx#V#YJU#Y#Z!(`#Z#oJU#p#q%T#r$g%T$g;'SJU;'S;=`KW<%lOJUo!.}a&n`&YS%uZOr%Trs)Ysw%Twx.Ux!Q%T!Q![JU![!c%T!c!}JU!}#R%T#R#SJU#S#T%T#T#oJU#p#q%T#r$g%T$g;'SJU;'S;=`KW<%lOJUk!0ZT!XZ&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tc!0qT!WR&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tj!1XV%kQ&n`O!_%T!_!`-Q!`#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%T~!1sO!]~k!1zV%jR&n`O!_%T!_!`-Q!`#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%T~!2fO![~i!2mT%tX&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%T",tokenizers:[NI,MI,CI,DI,0,1,2,3,4],topRules:{Script:[0,5]},specialized:[{term:221,get:o(e=>qI[e]||-1,"get")}],tokenPrec:7668})});function hl(e){return e>=48&&e<=57}function ls(e){return hl(e)||e==95}var zI,UI,VI,YI,GI,KO,BI,ZI,HO,KI,ds,JO,HI,JI,ey,ty,e0,t0,n0,r0,i0,o0,s0,a0,ny,ry=p(()=>{"use strict";es();os();zI=1,UI=2,VI=3,YI=4,GI=5,KO=98,BI=101,ZI=102,HO=114,KI=69,ds=48,JO=46,HI=43,JI=45,ey=35,ty=34,e0=124,t0=60,n0=62;o(hl,"isNum");o(ls,"isNum_");r0=new ye((e,t)=>{if(hl(e.next)){let n=!1;do e.advance();while(ls(e.next));if(e.next==JO){if(n=!0,e.advance(),hl(e.next))do e.advance();while(ls(e.next));else if(e.next==JO||e.next>127||/\w/.test(String.fromCharCode(e.next)))return}if(e.next==BI||e.next==KI){if(n=!0,e.advance(),(e.next==HI||e.next==JI)&&e.advance(),!ls(e.next))return;do e.advance();while(ls(e.next))}if(e.next==ZI){let r=e.peek(1);if(r==ds+3&&e.peek(2)==ds+2||r==ds+6&&e.peek(2)==ds+4)e.advance(3),n=!0;else return}n&&e.acceptToken(GI)}else if(e.next==KO||e.next==HO){if(e.next==KO&&e.advance(),e.next!=HO)return;e.advance();let n=0;for(;e.next==ey;)n++,e.advance();if(e.next!=ty)return;e.advance();e:for(;;){if(e.next<0)return;let r=e.next==ty;if(e.advance(),r){for(let i=0;i<n;i++){if(e.next!=ey)continue e;e.advance()}e.acceptToken(YI);return}}}}),i0=new ye(e=>{e.next==e0&&e.acceptToken(zI,1)}),o0=new ye(e=>{e.next==t0?e.acceptToken(UI,1):e.next==n0&&e.acceptToken(VI,1)}),s0=Un({"const macro_rules struct union enum type fn impl trait let static":h.definitionKeyword,"mod use crate":h.moduleKeyword,"pub unsafe async mut extern default move":h.modifier,"for if else loop while match continue break return await":h.controlKeyword,"as in ref":h.operatorKeyword,"where _ crate super dyn":h.keyword,self:h.self,String:h.string,Char:h.character,RawString:h.special(h.string),Boolean:h.bool,Identifier:h.variableName,"CallExpression/Identifier":h.function(h.variableName),BoundIdentifier:h.definition(h.variableName),"FunctionItem/BoundIdentifier":h.function(h.definition(h.variableName)),LoopLabel:h.labelName,FieldIdentifier:h.propertyName,"CallExpression/FieldExpression/FieldIdentifier":h.function(h.propertyName),Lifetime:h.special(h.variableName),ScopeIdentifier:h.namespace,TypeIdentifier:h.typeName,"MacroInvocation/Identifier MacroInvocation/ScopedIdentifier/Identifier":h.macroName,"MacroInvocation/TypeIdentifier MacroInvocation/ScopedIdentifier/TypeIdentifier":h.macroName,'"!"':h.macroName,UpdateOp:h.updateOperator,LineComment:h.lineComment,BlockComment:h.blockComment,Integer:h.integer,Float:h.float,ArithOp:h.arithmeticOperator,LogicOp:h.logicOperator,BitOp:h.bitwiseOperator,CompareOp:h.compareOperator,"=":h.definitionOperator,".. ... => ->":h.punctuation,"( )":h.paren,"[ ]":h.squareBracket,"{ }":h.brace,". DerefOp":h.derefOperator,"&":h.operator,", ; ::":h.separator,"Attribute/...":h.meta}),a0={__proto__:null,self:28,super:32,crate:34,impl:46,true:72,false:72,pub:88,in:92,const:96,unsafe:104,async:108,move:110,if:114,let:118,ref:142,mut:144,_:198,else:200,match:204,as:248,return:252,await:262,break:270,continue:276,while:312,loop:316,for:320,macro_rules:327,mod:334,extern:342,struct:346,where:364,union:379,enum:382,type:390,default:395,fn:396,trait:412,use:420,static:438,dyn:476},ny=Tt.deserialize({version:14,states:"$2xQ]Q_OOP$wOWOOO&sQWO'#CnO)WQWO'#I`OOQP'#I`'#I`OOQQ'#Ie'#IeO)hO`O'#C}OOQR'#Ih'#IhO)sQWO'#IuOOQO'#Hk'#HkO)xQWO'#DpOOQR'#Iw'#IwO)xQWO'#DpO*ZQWO'#DpOOQO'#Iv'#IvO,SQWO'#J`O,ZQWO'#EiOOQV'#Hp'#HpO,cQYO'#F{OOQV'#El'#ElOOQV'#Em'#EmOOQV'#En'#EnO.YQ_O'#EkO0_Q_O'#EoO2gQWOOO4QQ_O'#FPO7hQWO'#J`OOQV'#FY'#FYO7{Q_O'#F^O:WQ_O'#FaOOQO'#F`'#F`O=sQ_O'#FcO=}Q_O'#FbO@VQWO'#FgOOQO'#J`'#J`OOQV'#Io'#IoOA]Q_O'#InOEPQWO'#InOOQV'#Fw'#FwOF[QWO'#JuOFcQWO'#F|OOQO'#IO'#IOOGrQWO'#GhOOQV'#Im'#ImOOQV'#Il'#IlOOQV'#Hj'#HjQGyQ_OOOKeQ_O'#DUOKlQYO'#CqOOQP'#I_'#I_OOQV'#Hg'#HgQ]Q_OOOLuQWO'#I`ONsQYO'#DXO!!eQWO'#JuO!!lQWO'#JuO!!vQ_O'#DfO!%]Q_O'#E}O!(sQ_O'#FWO!,ZQWO'#FZO!.^QXO'#FbO!.cQ_O'#EeO!!vQ_O'#FmO!0uQWO'#FoO!0zQWO'#FoO!1PQ^O'#FqO!1WQWO'#JuO!1_QWO'#FtO!1dQWO'#FxO!2WQWO'#JjO!2_QWO'#GOO!2_QWO'#G`O!2_QWO'#GbO!2_QWO'#GsOOQO'#Ju'#JuO!2dQWO'#GhO!2lQYO'#GpO!2_QWO'#GqO!3uQ^O'#GtO!3|QWO'#GuO!4hQWO'#HOP!4sOpO'#CcPOOO)CC})CC}OOOO'#Hi'#HiO!5OO`O,59iOOQV,59i,59iO!5ZQYO,5?aOOQO-E;i-E;iOOQO,5:[,5:[OOQP,59Z,59ZO)xQWO,5:[O)xQWO,5:[O!5oQWO,5?kO!5zQYO,5;qO!6PQYO,5;TO!6hQWO,59QO!7kQXO'#CnO!7xQXO'#I`O!9SQWO'#CoO,^QWO'#EiOOQV-E;n-E;nO!9eQWO'#FsOOQV,5<g,5<gO!9SQWO'#CoO!9jQWO'#CoO!9oQWO'#I`O! yQWO'#JuO!9yQWO'#J`O!:aQWO,5;VOOQO'#In'#InO!0zQWO'#DaO!<aQWO'#DcO!<iQWO,5;ZO.YQ_O,5;ZOOQO,5;[,5;[OOQV'#Er'#ErOOQV'#Es'#EsOOQV'#Et'#EtOOQV'#Eu'#EuOOQV'#Ev'#EvOOQV'#Ew'#EwOOQV'#Ex'#ExOOQV'#Ey'#EyO.YQ_O,5;]O.YQ_O,5;]O.YQ_O,5;]O.YQ_O,5;]O.YQ_O,5;]O.YQ_O,5;]O.YQ_O,5;]O.YQ_O,5;]O.YQ_O,5;]O.YQ_O,5;fO!=PQ_O,5;kO!@gQ_O'#FROOQO,5;l,5;lO!BrQWO,5;pO.YQ_O,5;wOKlQYO,5;gO!D_QWO,5;kO!EOQWO,5;xOOQO,5;x,5;xO!E]QWO,5;xO!EbQ_O,5;xO!GmQWO'#CfO!GrQWO,5<QO!G|Q_O,5<QOOQO,5;{,5;{O!JjQXO'#CnO!K{QXO'#I`OOQS'#Dk'#DkOOQP'#Ir'#IrO!LuQ[O'#IrO!L}QXO'#DjO!M{QWO'#DnO!M{QWO'#DnO!N^QWO'#DnOOQP'#It'#ItO!NcQXO'#ItO# ^Q^O'#DoO# hQWO'#DrO# pQ^O'#DzO# zQ^O'#D|O#!RQWO'#EPO#!^QXO'#FdOOQP'#ES'#ESOOQP'#Iq'#IqO#!lQXO'#JfOOQP'#Je'#JeO#!tQXO,5;}O#!yQXO'#I`O!1PQ^O'#DyO!1PQ^O'#FdO##sQWO,5;|OOQO,5;|,5;|OKlQYO,5;|O#$ZQWO'#FhOOQO,5<R,5<ROOQV,5=l,5=lO#&`QYO'#FzOOQV,5<h,5<hO#&gQWO,5<hO#&nQWO,5=SO!1WQWO,59rO!1dQWO,5<dO#&uQWO,5=iO!2_QWO,5<jO!2_QWO,5<zO!2_QWO,5<|O!2_QWO,5=QO#&|QWO,5=]O#'TQWO,5=SO!2_QWO,5=]O!3|QWO,5=aO#']QWO,5=jOOQO-E;|-E;|O#'hQWO'#JjOOQV-E;h-E;hO#(PQWO'#HRO#(WQ_O,59pOOQV,59p,59pO#(_QWO,59pO#(dQ_O,59pO#)SQZO'#CuO#+[QZO'#CvOOQV'#C|'#C|O#-wQWO'#HTO#.OQYO'#IdOOQO'#Hh'#HhO#.WQWO'#CwO#.WQWO'#CwO#.iQWO'#CwOOQR'#Ic'#IcO#.nQZO'#IbO#1TQYO'#HTO#1qQYO'#H[O#2}QYO'#H_OKlQYO'#H`OOQR'#Hb'#HbO#4ZQWO'#HeO#4`QYO,59]OOQR'#Ib'#IbO#5PQZO'#CtO#7[QYO'#HUO#7aQWO'#HTO#7fQYO'#CrO#8VQWO'#H]O#7fQYO'#HcOOQV-E;e-E;eO#8_QWO,59sOOQV,59{,59{O#8mQYO,5=[OOQV,59},59}O!0zQWO,59}O#;aQWO'#IpOOQO'#Ip'#IpO!1PQ^O'#DhO!0zQWO,5:QO#;hQWO,5;iO#<OQWO,5;rO#<fQ_O,5;rOOQO,5;u,5;uO#@PQ_O,5;|O#BXQWO,5;PO!0zQWO,5<XO#B`QWO,5<ZOOQV,5<Z,5<ZO#BkQWO,5<]O!1PQ^O'#EOOOQQ'#D_'#D_O#BsQWO,59rO#BxQWO,5<`O#B}QWO,5<dOOQO,5@U,5@UO#CVQWO,5=iOOQQ'#Cv'#CvO#C[QYO,5<jO#CmQYO,5<zO#CxQYO,5<|O#DTQYO,5=_O#DcQYO,5=SO#E{QYO'#GQO#FYQYO,5=[O#FmQWO,5=[O#F{QYO,5=[O#HUQYO,5=]O#HdQWO,5=`O!1PQ^O,5=`O#HrQWO'#CnO#ITQWO'#I`OOQO'#Jy'#JyO#IfQWO'#IQO#IkQWO'#GwOOQO'#Jz'#JzO#JSQWO'#GzOOQO'#G|'#G|OOQO'#Jx'#JxO#IkQWO'#GwO#JZQWO'#GxO#J`QWO,5=aO#JeQWO,5=jO!1dQWO,5=jO#'`QWO,5=jPOOO'#Hf'#HfP#JjOpO,58}POOO,58},58}OOOO-E;g-E;gOOQV1G/T1G/TO#JuQWO1G4{O#JzQ^O'#CyPOQQ'#Cx'#CxOOQO1G/v1G/vOOQP1G.u1G.uO)xQWO1G/vO#NTQ!fO'#ETO#N[Q!fO'#EaO#NcQ!fO'#EbO$ kQWO1G1yO$!_Q_O1G1yOOQP1G5V1G5VOOQO1G1]1G1]O$&RQWO1G0oO$&WQWO'#CiO!7xQXO'#I`O!6PQYO1G.lO!5oQWO,5<_O!9SQWO,59ZO!9SQWO,59ZO!5oQWO,5?kO$&iQWO1G0uO$(vQWO1G0wO$*nQWO1G0wO$+UQWO1G0wO$-YQWO1G0wO$-aQWO1G0wO$/bQWO1G0wO$/iQWO1G0wO$1jQWO1G0wO$1qQWO1G0wO$3YQWO1G1QO$5ZQWO1G1VO$5zQ_O'#JcO$8SQWO'#JcOOQO'#Jb'#JbO$8^QWO,5;mOOQO'#Dw'#DwOOQO1G1[1G1[OOQO1G1Y1G1YO$8cQWO1G1cOOQO1G1R1G1RO$8jQ_O'#HrO$:xQWO,5@OO.YQ_O1G1dOOQO1G1d1G1dO$;QQWO1G1dO$;_QWO1G1dO$;dQWO1G1eOOQO1G1l1G1lO$;lQWO1G1lOOQP,5?^,5?^O$;vQ^O,5:kO$<aQXO,5:YO!M{QWO,5:YO!M{QWO,5:YO!1PQ^O,5:gO$=bQWO'#IyOOQO'#Ix'#IxO$=pQWO,5:ZO# ^Q^O,5:ZO$=uQWO'#DsOOQP,5:^,5:^O$>WQWO,5:fOOQP,5:h,5:hO!1PQ^O,5:hO!1PQ^O,5:mO$>]QYO,5<OO$>gQ_O'#HsO$>tQXO,5@QOOQV1G1i1G1iOOQP,5:e,5:eO$>|QXO,5<OO$?[QWO1G1hO$?dQWO'#CnO$?oQWO'#FiOOQO'#Fi'#FiO$?wQWO'#FjO.YQ_O'#FkOOQO'#Ji'#JiO$?|QWO'#JhOOQO'#Jg'#JgO$@UQWO,5<SOOQQ'#Hv'#HvO$@ZQYO,5<fOOQV,5<f,5<fO$@bQYO,5<fOOQV1G2S1G2SO$@iQWO1G2nO$@qQWO1G/^O$@vQWO1G2OO#CVQWO1G3TO$AOQYO1G2UO#CmQYO1G2fO#CxQYO1G2hO$AaQYO1G2lO!2_QWO1G2wO#DcQYO1G2nO#HUQYO1G2wO$AiQWO1G2{O$AnQWO1G3UO!1dQWO1G3UO$AsQWO1G3UOOQV1G/[1G/[O$A{QWO1G/[O$BQQ_O1G/[O#7aQWO,5=oO$BXQYO,5?OO$BmQWO,5?OO$BrQZO'#IeOOQO-E;f-E;fOOQR,59c,59cO#.WQWO,59cO#.WQWO,59cOOQR,5=n,5=nO$E_QYO'#HVO$FwQZO,5=oO!5oQWO,5={O$IZQWO,5=oO$IbQZO,5=vO$KqQYO,5=vO$>]QYO,5=vO$LRQWO'#KRO$L^QWO,5=xOOQR,5=y,5=yO$LcQWO,5=zO$>]QYO,5>PO$>]QYO,5>POOQO1G.w1G.wO$>]QYO1G.wO$LnQYO,5=pO$LvQZO,59^OOQR,59^,59^O$>]QYO,5=wO% YQZO,5=}OOQR,5=},5=}O%#lQWO1G/_O!6PQYO1G/_O#FYQYO1G2vO%#qQWO1G2vO%$PQYO1G2vOOQV1G/i1G/iO%%YQWO,5:SO%%bQ_O1G/lO%*kQWO1G1^O%+RQWO1G1hOOQO1G1h1G1hO$>]QYO1G1hO%+iQ^O'#EgOOQV1G0k1G0kOOQV1G1s1G1sO!!vQ_O1G1sO!0zQWO1G1uO!1PQ^O1G1wO!.cQ_O1G1wOOQP,5:j,5:jO$>]QYO1G/^OOQO'#Cn'#CnO%+vQWO1G1zOOQV1G2O1G2OO%,OQWO'#CnO%,WQWO1G3TO%,]QWO1G3TO%,bQYO'#GQO%,sQWO'#G]O%-UQYO'#G_O%.hQYO'#GXOOQV1G2U1G2UO%/wQWO1G2UO%/|QWO1G2UO$ARQWO1G2UOOQV1G2f1G2fO%/wQWO1G2fO#CpQWO1G2fO%0UQWO'#GdOOQV1G2h1G2hO%0gQWO1G2hO#C{QWO1G2hO%0lQYO'#GSO$>]QYO1G2lO$AdQWO1G2lOOQV1G2y1G2yO%1xQWO1G2yO%3hQ^O'#GkO%3rQWO1G2nO#DfQWO1G2nO%4QQYO,5<lO%4[QYO,5<lO%4jQYO,5<lO%5XQYO,5<lOOQQ,5<l,5<lO!1WQWO'#JuO%5dQYO,5<lO%5lQWO1G2vOOQV1G2v1G2vO%5tQWO1G2vO$>]QYO1G2vOOQV1G2w1G2wO%5tQWO1G2wO%5yQWO1G2wO#HXQWO1G2wOOQV1G2z1G2zO.YQ_O1G2zO$>]QYO1G2zO%6RQWO1G2zOOQO,5>l,5>lOOQO-E<O-E<OOOQO,5=c,5=cOOQO,5=e,5=eOOQO,5=g,5=gOOQO,5=h,5=hO%6aQWO'#J|OOQO'#J{'#J{O%6iQWO,5=fO%6nQWO,5=cO!1dQWO,5=dOOQV1G2{1G2{O$>]QYO1G3UPOOO-E;d-E;dPOOO1G.i1G.iOOQO7+*g7+*gO%7VQYO'#IcO%7nQYO'#IfO%7yQYO'#IfO%8RQYO'#IfO%8^QYO,59eOOQO7+%b7+%bOOQP7+$a7+$aO%8cQ!fO'#JTOOQS'#EX'#EXOOQS'#EY'#EYOOQS'#EZ'#EZOOQS'#JT'#JTO%;UQWO'#EWOOQS'#E`'#E`OOQS'#JR'#JROOQS'#Hn'#HnO%;ZQ!fO,5:oOOQV,5:o,5:oOOQV'#JQ'#JQO%;bQ!fO,5:{OOQV,5:{,5:{O%;iQ!fO,5:|OOQV,5:|,5:|OOQV7+'e7+'eOOQV7+&Z7+&ZO%;pQ!fO,59TOOQO,59T,59TO%>YQWO7+$WO%>_QWO1G1yOOQV1G1y1G1yO!9SQWO1G.uO%>dQWO,5?}O%>nQ_O'#HqO%@|QWO,5?}OOQO1G1X1G1XOOQO7+&}7+&}O%AUQWO,5>^OOQO-E;p-E;pO%AcQWO7+'OO.YQ_O7+'OOOQO7+'O7+'OOOQO7+'P7+'PO%AjQWO7+'POOQO7+'W7+'WOOQP1G0V1G0VO%ArQXO1G/tO!M{QWO1G/tO%BsQXO1G0RO%CkQ^O'#HlO%C{QWO,5?eOOQP1G/u1G/uO%DWQWO1G/uO%D]QWO'#D_OOQO'#Dt'#DtO%DhQWO'#DtO%DmQWO'#I{OOQO'#Iz'#IzO%DuQWO,5:_O%DzQWO'#DtO%EPQWO'#DtOOQP1G0Q1G0QOOQP1G0S1G0SOOQP1G0X1G0XO%EXQXO1G1jO%EdQXO'#FeOOQP,5>_,5>_O!1PQ^O'#FeOOQP-E;q-E;qO$>]QYO1G1jOOQO7+'S7+'SOOQO,5<T,5<TO%ErQWO,5<UO.YQ_O,5<UO%EwQWO,5<VO%FRQWO'#HtO%FdQWO,5@SOOQO1G1n1G1nOOQQ-E;t-E;tOOQV1G2Q1G2QO%FlQYO1G2QO#DcQYO7+(YO$>]QYO7+$xOOQV7+'j7+'jO%FsQWO7+(oO%FxQWO7+(oOOQV7+'p7+'pO%/wQWO7+'pO%F}QWO7+'pO%GVQWO7+'pOOQV7+(Q7+(QO%/wQWO7+(QO#CpQWO7+(QOOQV7+(S7+(SO%0gQWO7+(SO#C{QWO7+(SO$>]QYO7+(WO%GeQWO7+(WO#HUQYO7+(cO%GjQWO7+(YO#DfQWO7+(YOOQV7+(c7+(cO%5tQWO7+(cO%5yQWO7+(cO#HXQWO7+(cOOQV7+(g7+(gO$>]QYO7+(pO%GxQWO7+(pO!1dQWO7+(pOOQV7+$v7+$vO%G}QWO7+$vO%HSQZO1G3ZO%JfQWO1G4jOOQO1G4j1G4jOOQR1G.}1G.}O#.WQWO1G.}O%JkQWO'#KQOOQO'#HW'#HWO%J|QWO'#HXO%KXQWO'#KQOOQO'#KP'#KPO%KaQWO,5=qO%KfQYO'#H[O%LrQWO'#GmO%L}QYO'#CtO%MXQWO'#GmO$>]QYO1G3ZOOQR1G3g1G3gO#7aQWO1G3ZO%M^QZO1G3bO$>]QYO1G3bO& mQYO'#IVO& }QWO,5@mOOQR1G3d1G3dOOQR1G3f1G3fO.YQ_O1G3fOOQR1G3k1G3kO&!VQYO7+$cO&!_QYO'#KOOOQQ'#J}'#J}O&!gQYO1G3[O&!lQZO1G3cOOQQ7+$y7+$yO&${QWO7+$yO&%QQWO7+(bOOQV7+(b7+(bO%5tQWO7+(bO$>]QYO7+(bO#FYQYO7+(bO&%YQWO7+(bO!.cQ_O1G/nO&%hQWO7+%WO$?[QWO7+'SO&%pQWO'#EhO&%{Q^O'#EhOOQU'#Ho'#HoO&%{Q^O,5;ROOQV,5;R,5;RO&&VQWO,5;RO&&[Q^O,5;RO!0zQWO7+'_OOQV7+'a7+'aO&&iQWO7+'cO&&qQWO7+'cO&&xQWO7+$xO&'TQ!fO7+'fO&'[Q!fO7+'fOOQV7+(o7+(oO!1dQWO7+(oO&'cQYO,5<lO&'nQYO,5<lO!1dQWO'#GWO&'|QWO'#JpO&([QWO'#G^O!BxQWO'#G^O&(aQWO'#JpOOQO'#Jo'#JoO&(iQWO,5<wOOQO'#DX'#DXO&(nQYO'#JrO&)}QWO'#JrO$>]QYO'#JrOOQO'#Jq'#JqO&*YQWO,5<yO&*_QWO'#GZO#D^QWO'#G[O&*gQWO'#G[O&*oQWO'#JmOOQO'#Jl'#JlO&*zQYO'#GTOOQO,5<s,5<sO&+PQWO7+'pO&+UQWO'#JtO&+dQWO'#GeO#BxQWO'#GeO&+uQWO'#JtOOQO'#Js'#JsO&+}QWO,5=OO$>]QYO'#GUO&,SQYO'#JkOOQQ,5<n,5<nO&,kQWO7+(WOOQV7+(e7+(eO&.TQ^O'#D|O&._QWO'#GlO&.gQ^O'#JwOOQO'#Gn'#GnO&.nQWO'#JwOOQO'#Jv'#JvO&.vQWO,5=VO&.{QWO'#I`O&/]Q^O'#GmO&/dQWO'#IqO&/rQWO'#GmOOQV7+(Y7+(YO&/zQWO7+(YO$>]QYO7+(YO&0SQYO'#HxO&0hQYO1G2WOOQQ1G2W1G2WOOQQ,5<m,5<mO$>]QYO,5<qO&0pQWO,5<rO&0uQWO7+(bO&1QQWO7+(fO&1XQWO7+(fOOQV7+(f7+(fO.YQ_O7+(fO$>]QYO7+(fO&1dQWO'#IRO&1nQWO,5@hOOQO1G3Q1G3QOOQO1G2}1G2}OOQO1G3P1G3POOQO1G3R1G3ROOQO1G3S1G3SOOQO1G3O1G3OO&1vQWO7+(pO$>]QYO,59fO&2RQ^O'#ISO&2xQYO,5?QOOQR1G/P1G/PO&3QQ!bO,5:pO&3VQ!fO,5:rOOQS-E;l-E;lOOQV1G0Z1G0ZOOQV1G0g1G0gOOQV1G0h1G0hO&3^QWO'#JTOOQO1G.o1G.oOOQV<<Gr<<GrO&3iQWO1G5iO$5zQ_O,5>]O&3qQWO,5>]OOQO-E;o-E;oOOQO<<Jj<<JjO&3{QWO<<JjOOQO<<Jk<<JkO&4SQXO7+%`O&5TQWO,5>WOOQO-E;j-E;jOOQP7+%a7+%aO!1PQ^O,5:`O&5cQWO'#HmO&5wQWO,5?gOOQP1G/y1G/yOOQO,5:`,5:`O&6PQWO,5:`O%DzQWO,5:`O$>]QYO,5<PO&6UQXO,5<PO&6dQXO7+'UO.YQ_O1G1pO&6oQWO1G1pOOQO,5>`,5>`OOQO-E;r-E;rOOQV7+'l7+'lO&6yQWO<<KtO#DfQWO<<KtO&7XQWO<<HdOOQV<<LZ<<LZO!1dQWO<<LZOOQV<<K[<<K[O&7dQWO<<K[O%/wQWO<<K[O&7iQWO<<K[OOQV<<Kl<<KlO%/wQWO<<KlOOQV<<Kn<<KnO%0gQWO<<KnO&7qQWO<<KrO$>]QYO<<KrOOQV<<K}<<K}O%5tQWO<<K}O%5yQWO<<K}O#HXQWO<<K}OOQV<<Kt<<KtO&7yQWO<<KtO$>]QYO<<KtO&8RQWO<<L[O$>]QYO<<L[O&8^QWO<<L[OOQV<<Hb<<HbO$>]QYO7+(uOOQO7+*U7+*UOOQR7+$i7+$iO&8cQWO,5@lOOQO'#Gm'#GmO&8kQWO'#GmO&8vQYO'#IUO&8cQWO,5@lOOQR1G3]1G3]O&:cQYO,5=vO&;rQYO,5=XO&;|QWO,5=XOOQO,5=X,5=XOOQR7+(u7+(uO&<RQZO7+(uO&>eQZO7+(|O&@tQWO,5>qOOQO-E<T-E<TO&APQWO7+)QOOQO<<G}<<G}O&AWQYO'#ITO&AcQYO,5@jOOQQ7+(v7+(vOOQQ<<He<<HeO$>]QYO<<K|OOQV<<K|<<K|O&0uQWO<<K|O&AkQWO<<K|O%5tQWO<<K|O&AsQWO7+%YOOQV<<Hr<<HrOOQO<<Jn<<JnO.YQ_O,5;SO&AzQWO,5;SO.YQ_O'#EjO&BPQWO,5;SOOQU-E;m-E;mO&B[QWO1G0mOOQV1G0m1G0mO&%{Q^O1G0mOOQV<<Jy<<JyO!.cQ_O<<J}OOQV<<J}<<J}OOQV<<Hd<<HdO.YQ_O<<HdO&BaQWO'#FvO&BfQWO<<KQO&BnQ!fO<<KQO&BuQWO<<KQO&BzQWO<<KQO&CSQ!fO<<KQOOQV<<KQ<<KQO&CZQWO<<LZO&C`QWO,5@[O$>]QYO,5<xO&ChQWO,5<xO&CmQWO'#H{O&C`QWO,5@[OOQV1G2c1G2cO&DRQWO,5@^O$>]QYO,5@^O&D^QYO'#H|O&EsQWO,5@^OOQO1G2e1G2eO%,nQWO,5<uOOQO,5<v,5<vO&E{QYO'#HzO&G_QWO,5@XO%,bQYO,5=pO$>]QYO,5<oO&GjQWO,5@`O.YQ_O,5=PO&GrQWO,5=PO&G}QWO,5=PO&H`QWO'#H}O&GjQWO,5@`OOQV1G2j1G2jO&HtQYO,5<pO%0lQYO,5>PO&I]QYO,5@VOOQV<<Kr<<KrO&ItQWO,5=XO&KfQ^O,5:hO&KmQWO,5=XO$>]QYO,5=WO&KuQWO,5@cO&K}QWO,5@cO&MvQ^O'#IPO&KuQWO,5@cOOQO1G2q1G2qO&NTQWO,5=WO&N]QWO<<KtO&NkQYO,5>oO&NvQYO,5>dO' UQYO,5>dOOQQ,5>d,5>dOOQQ-E;v-E;vOOQQ7+'r7+'rO' aQYO1G2]O$>]QYO1G2^OOQV<<LQ<<LQO.YQ_O<<LQO' lQWO<<LQO' sQWO<<LQOOQO,5>m,5>mOOQO-E<P-E<POOQV<<L[<<L[O.YQ_O<<L[O'!OQYO1G/QO'!ZQYO,5>nOOQQ,5>n,5>nO'!fQYO,5>nOOQQ-E<Q-E<QOOQS1G0[1G0[O'$tQ!fO1G0^O'%RQ!fO1G0^O'%YQWO1G3wOOQOAN@UAN@UO'%dQWO1G/zOOQO,5>X,5>XOOQO-E;k-E;kO!1PQ^O1G/zOOQO1G/z1G/zO'%oQWO1G/zO'%tQXO1G1kO$>]QYO1G1kO'&PQWO7+'[OOQVANA`ANA`O'&ZQWOANA`O$>]QYOANA`O'&cQWOANA`OOQVAN>OAN>OO.YQ_OAN>OO'&qQWOANAuOOQVAN@vAN@vO'&vQWOAN@vOOQVANAWANAWOOQVANAYANAYOOQVANA^ANA^O'&{QWOANA^OOQVANAiANAiO%5tQWOANAiO%5yQWOANAiO''TQWOANA`OOQVANAvANAvO.YQ_OANAvO''cQWOANAvO$>]QYOANAvOOQR<<La<<LaO''nQWO1G6WO%JkQWO,5>pOOQO'#HY'#HYO''vQWO'#HZOOQO,5>p,5>pOOQO-E<S-E<SO'(RQYO1G2sO'(]QWO1G2sOOQO1G2s1G2sO$>]QYO<<LaOOQR<<Ll<<LlOOQQ,5>o,5>oOOQQ-E<R-E<RO&0uQWOANAhOOQVANAhANAhO%5tQWOANAhO$>]QYOANAhO'(bQWO1G1rO')UQ^O1G0nO.YQ_O1G0nO'*zQWO,5;UO'+RQWO1G0nP'+WQWO'#ERP&%{Q^O'#HpOOQV7+&X7+&XO'+cQWO7+&XO&&qQWOAN@iO'+hQWOAN>OO!5oQWO,5<bOOQS,5>a,5>aO'+oQWOAN@lO'+tQWOAN@lOOQS-E;s-E;sOOQVAN@lAN@lO'+|QWOAN@lOOQVANAuANAuO',UQWO1G5vO',^QWO1G2dO$>]QYO1G2dO&'|QWO,5>gOOQO,5>g,5>gOOQO-E;y-E;yO',iQWO1G5xO',qQWO1G5xO&(nQYO,5>hO',|QWO,5>hO$>]QYO,5>hOOQO-E;z-E;zO'-XQWO'#JnOOQO1G2a1G2aOOQO,5>f,5>fOOQO-E;x-E;xO&'cQYO,5<lO'-gQYO1G2ZO'.RQWO1G5zO'.ZQWO1G2kO.YQ_O1G2kO'.eQWO1G2kO&+UQWO,5>iOOQO,5>i,5>iOOQO-E;{-E;{OOQQ,5>c,5>cOOQQ-E;u-E;uO'.pQWO1G2sO'/QQWO1G2rO'/]QWO1G5}O'/eQ^O,5>kOOQO'#Go'#GoOOQO,5>k,5>kO'/lQWO,5>kOOQO-E;}-E;}O$>]QYO1G2rO'/zQYO7+'xO'0VQWOANAlOOQVANAlANAlO.YQ_OANAlO'0^QWOANAvOOQS7+%x7+%xO'0eQWO7+%xO'0pQ!fO7+%xO'0}QWO7+%fO!1PQ^O7+%fO'1YQXO7+'VOOQVG26zG26zO'1eQWOG26zO'1sQWOG26zO$>]QYOG26zO'1{QWOG23jOOQVG27aG27aOOQVG26bG26bOOQVG26xG26xOOQVG27TG27TO%5tQWOG27TO'2SQWOG27bOOQVG27bG27bO.YQ_OG27bO'2ZQWOG27bOOQO1G4[1G4[OOQO7+(_7+(_OOQRANA{ANA{OOQVG27SG27SO%5tQWOG27SO&0uQWOG27SO'2fQ^O7+&YO'4PQWO7+'^O'4sQ^O7+&YO.YQ_O7+&YP.YQ_O,5;SP'6PQWO,5;SP'6UQWO,5;SOOQV<<Is<<IsOOQVG26TG26TOOQVG23jG23jOOQO1G1|1G1|OOQVG26WG26WO'6aQWOG26WP&B}QWO'#HuO'6fQWO7+(OOOQO1G4R1G4RO'6qQWO7++dO'6yQWO1G4SO$>]QYO1G4SO%,nQWO'#HyO'7UQWO,5@YO'7dQWO7+(VO.YQ_O7+(VOOQO1G4T1G4TOOQO1G4V1G4VO'7nQWO1G4VO'7|QWO7+(^OOQVG27WG27WO'8XQWOG27WOOQS<<Id<<IdO'8`QWO<<IdO'8kQWO<<IQOOQVLD,fLD,fO'8vQWOLD,fO'9OQWOLD,fOOQVLD)ULD)UOOQVLD,oLD,oOOQVLD,|LD,|O'9^QWOLD,|O.YQ_OLD,|OOQVLD,nLD,nO%5tQWOLD,nO'9eQ^O<<ItO';OQWO<<JxO';rQ^O<<ItP'=OQWO1G0nP'=oQ^O1G0nP.YQ_O1G0nP'?bQWO1G0nOOQVLD+rLD+rO'?gQWO7+)nOOQO,5>e,5>eOOQO-E;w-E;wO'?rQWO<<KqOOQVLD,rLD,rOOQSAN?OAN?OOOQV!$(!Q!$(!QO'?|QWO!$(!QOOQV!$(!h!$(!hO'@UQWO!$(!hOOQV!$(!Y!$(!YO'@]Q^OAN?`POQU7+&Y7+&YP'AvQWO7+&YP'BgQ^O7+&YP.YQ_O7+&YOOQV!)9El!)9ElOOQV!)9FS!)9FSPOQU<<It<<ItP'DYQWO<<ItP'DyQ^O<<ItPOQUAN?`AN?`O'FlQWO'#CnO'FsQXO'#CnO'GlQWO'#I`O'IRQXO'#I`O'IxQWO'#DpO'IxQWO'#DpO!.cQ_O'#EkO'JZQ_O'#EoO'JbQ_O'#FPO'MfQ_O'#FbO'MmQXO'#I`O'NdQ_O'#E}O( gQ_O'#FWO'IxQWO,5:[O'IxQWO,5:[O!.cQ_O,5;ZO!.cQ_O,5;]O!.cQ_O,5;]O!.cQ_O,5;]O!.cQ_O,5;]O!.cQ_O,5;]O!.cQ_O,5;]O!.cQ_O,5;]O!.cQ_O,5;]O!.cQ_O,5;]O!.cQ_O,5;fO(!jQ_O,5;kO(%nQWO,5;kO(&OQWO,5;|O(&VQYO'#CuO(&bQYO'#CvO(&mQWO'#CwO(&mQWO'#CwO('OQYO'#CtO('ZQWO,5;iO('bQWO,5;rO('iQ_O,5;rO((oQ_O,5;|O'IxQWO1G/vO((vQWO1G0uO(*eQWO1G0wO(*oQWO1G0wO(,dQWO1G0wO(,kQWO1G0wO(.]QWO1G0wO(.dQWO1G0wO(0UQWO1G0wO(0]QWO1G0wO(0dQWO1G1QO(0tQWO1G1VO(1UQYO'#IeO(&mQWO,59cO(&mQWO,59cO(1aQWO1G1^O(1hQWO1G1hO(&mQWO1G.}O(1oQWO'#DpO!.^QXO'#FbO(1tQWO,5;ZO(1{QWO'#Cw",stateData:"(2_~O&|OSUOS&}PQ~OPoOQ!QOSVOTVOZeO[lO^RO_RO`ROa!UOd[Og!nOsVOtVOuVOw!POyvO|!VO}mO!Q!dO!U!WO!W!XO!X!^O!Z!YO!]!pO!liO!qgO!tiO#Y!_O#r!ZO#{![O$O!]O$b!`O$d!bO$f!cO$i!eO$m!fO$q!gO$s!hO%T!iO%V!jO%Z!kO%]!lO%^!mO%f!oO%j!qO%s!rO'Q`O'TQO'ZkO'^UO'gcO'qiO(QdO~O&}!sO~OZbX[bXdbXdlXobXwjX}bX!lbX!qbX!tbX#ObX#PbX#pbX'gbX'qbX'rbX'xbX'ybX'zbX'{bX'|bX'}bX(ObX(PbX(QbX(RbX(TbX~OybXXbX!ebX!PbXvbX#RbX~P$|OZ'SX['SXd'SXd'XXo'SXw'kXy'SX}'SX!l'SX!q'SX!t'SX#O'SX#P'SX#p'SX'g'SX'q'SX'r'SX'x'SX'y'SX'z'SX'{'SX'|'SX'}'SX(O'SX(P'SX(Q'SX(R'SX(T'SXv'SX~OX'SX!e'SX!P'SX#R'SX~P'ZOr!uO']!wO'_!uO~Od!xO~O^RO_RO`ROaRO'TQO~Od!}O~Od#PO[(SXo(SXy(SX}(SX!l(SX!q(SX!t(SX#O(SX#P(SX#p(SX'g(SX'q(SX'r(SX'x(SX'y(SX'z(SX'{(SX'|(SX'}(SX(O(SX(P(SX(Q(SX(R(SX(T(SXv(SX~OZ#OO~P*`OZ#RO[#QO~OQ!QO^#TO_#TO`#TOa#]Od#ZOg!nOyvO|!VO!Q!dO!U#^O!W!lO!]!pO$i!eO$m!fO$q!gO$s!hO%T!iO%V!jO%Z!kO%]!lO%^!mO%f!oO%j!qO%s!rO'Q#VO'T#SO~OPoOQ!QOSVOTVOZeO[lOd[OsVOtVOuVOw!PO}mO!U#bO!W#cO!X!^O!Z!YO!liO!qgO!tiO#Y!_O#r!ZO#{![O$O!]O$b!`O$d!bO$f!cO'ZkO'^UO'gcO'qiO(QdO~P)xOPoOQ!QOSVOTVOZeO[lOd[OsVOtVOuVOw!PO}mO!U#bO!W#cO!X!^O!Z!YO!j#eO!liO!qgO!tiO#Y!_O#r!ZO#{![O$O!]O$b!`O$d!bO$f!cO'ZkO'^UO'gcO'qiO(QdO~P)xO[#}Oo#xO}#zO!l#yO!q#jO!t#yO#O#xO#P#uO#p$OO'g#gO'q#yO'r#lO'x#hO'y#iO'z#iO'{#kO'|#nO'}#mO(O#|O(P#gO(Q#hO(R#fO(T#hO~OPoOQ!QOSVOTVOZeOd[OsVOtVOuVOw!PO!U#bO!W#cO!X!^O!Z!YO#Y!_O#r!ZO#{![O$O!]O$b!`O$d!bO$f!cO'ZkO'^UO[#sXo#sXy#sX}#sX!l#sX!q#sX!t#sX#O#sX#P#sX#p#sX'g#sX'q#sX'r#sX'x#sX'y#sX'z#sX'{#sX'|#sX'}#sX(O#sX(P#sX(Q#sX(R#sX(T#sXX#sX!e#sX!P#sXv#sX#R#sX~P)xOX(SX!e(SX!P(SXw(SX#R(SX~P*`OPoOQ!QOSVOTVOX$ROZeO[lOd[OsVOtVOuVOw!PO}mO!U#bO!W#cO!X!^O!Z!YO!liO!qgO!tiO#Y!_O#r!ZO#{![O$O!]O$b!`O$d!bO$f!cO'Q$UO'ZkO'^UO'gcO'qiO(QdO~P)xOPoOQ!QOSVOTVOZeO[lOd[OsVOtVOuVOw!PO}mO!P$XO!U#bO!W#cO!X!^O!Z!YO!liO!qgO!tiO#Y!_O#r!ZO#{![O$O!]O$b!`O$d!bO$f!cO'Q$UO'ZkO'^UO'gcO'qiO(QdO~P)xOQ!QOSVOTVO[$gO^$pO_$ZO`9yOa9yOd$aOsVOtVOuVO}$eO!i$qO!l$lO!q$hO#V$lO'T$YO'^UO'g$[O~O!j$rOP(XP~P<cOPoOQ!QOSVOTVOZeO[lOd[OsVOtVOuVOw!PO}mO!U#bO!W#cO!X!^O!Z!YO!liO!qgO!tiO#Q$uO#Y!_O#r!ZO#{![O$O!]O$b!`O$d!bO$f!cO'ZkO'^UO'gcO'qiO(QdO~P)xOw$vO~Oo'bX#O'bX#P'bX#p'bX'r'bX'x'bX'y'bX'z'bX'{'bX'|'bX'}'bX(O'bX(P'bX(R'bX(T'bX~OP%tXQ%tXS%tXT%tXZ%tX[%tX^%tX_%tX`%tXa%tXd%tXg%tXs%tXt%tXu%tXw%tXy%tX|%tX}%tX!Q%tX!U%tX!W%tX!X%tX!Z%tX!]%tX!l%tX!q%tX!t%tX#Y%tX#r%tX#{%tX$O%tX$b%tX$d%tX$f%tX$i%tX$m%tX$q%tX$s%tX%T%tX%V%tX%Z%tX%]%tX%^%tX%f%tX%j%tX%s%tX&z%tX'Q%tX'T%tX'Z%tX'^%tX'g%tX'q%tX(Q%tXv%tX~P@[Oy$xO['bX}'bX!l'bX!q'bX!t'bX'g'bX'q'bX(Q'bXv'bX~P@[Ow$yO!Q(iX!U(iX!W(iX$q(iX%](iX%^(iX~Oy$zO~PEsO!Q$}O!U%UO!W!lO$m%OO$q%PO$s%QO%T%RO%V%SO%Z%TO%]!lO%^%VO%f%WO%j%XO%s%YO~O!Q!lO!U!lO!W!lO$q%[O%]!lO~O%^%VO~PGaOPoOQ!QOSVOTVOZeO[lO^RO_RO`ROa!UOd[Og!nOsVOtVOuVOw!POyvO|!VO}mO!Q!dO!U!WO!W!XO!X!^O!Z!YO!]!pO!liO!qgO!tiO#Y!_O#r!ZO#{![O$O!]O$b!`O$d!bO$f!cO$i!eO$m!fO$q!gO$s!hO%T!iO%V!jO%Z!kO%]!lO%^!mO%f!oO%j!qO%s!rO'Q#VO'TQO'ZkO'^UO'gcO'qiO(QdO~Ov%`O~P]OQ!QOZ%rO[%qO^%vO_%cO`TOaTOd%jOg%yO}%pO!q%oO$f%wO%^%xO&W%{O'T%dO'Z%eO(Q%zO~PGaO!Q{X!U{X!W{X$m{X$q{X$s{X%T{X%V{X%Z{X%]{X%^{X%f{X%j{X%s{X~P'ZO!Q{X!U{X!W{X$m{X$q{X$s{X%T{X%V{X%Z{X%]{X%^{X%f{X%j{X%s{X~O}%}O'T{XQ{XZ{X[{X^{X_{X`{Xa{Xd{Xg{X!q{X$f{X&W{X'Z{X(Q{X~PMuOg&PO%f%WO!Q(iX!U(iX!W(iX$q(iX%](iX%^(iX~Ow!PO~P! yOw!PO!X&RO~PEvOPoOQ!QOSVOTVOZeO[lO^9qO_9qO`9qOa9qOd9tOsVOtVOuVOw!PO}mO!U#bO!W#cO!X:zO!Z!YO!]&UO!l9wO!q9vO!t9wO#Y!_O#r9zO#{9{O$O!]O$b!`O$d!bO$f!cO'T9oO'ZkO'^UO'gcO'q9wO(QdO~OPoOQ!QOSVOTVOZeO[lOd[OsVOtVOuVOw!PO}mO!U#bO!W#cO!X!^O!Z!YO!liO!qgO!tiO#Y!_O#r!ZO#{![O$O!]O$b!`O$d!bO$f!cO'ZkO'^UO'gcO'qiO(QdOo#qXy#qX#O#qX#P#qX#p#qX'r#qX'x#qX'y#qX'z#qX'{#qX'|#qX'}#qX(O#qX(P#qX(R#qX(T#qXX#qX!e#qX!P#qXv#qX#R#qX~P)xOPoOQ!QOSVOTVOZeO[lOd[OsVOtVOuVOw!PO}mO!U#bO!W#cO!X!^O!Z!YO!liO!qgO!tiO#Y!_O#r!ZO#{![O$O!]O$b!`O$d!bO$f!cO'ZkO'^UO'gcO'qiO(QdOo#zXy#zX#O#zX#P#zX#p#zX'r#zX'x#zX'y#zX'z#zX'{#zX'|#zX'}#zX(O#zX(P#zX(R#zX(T#zXX#zX!e#zX!P#zXv#zX#R#zX~P)xO'ZkO[#}Xo#}Xy#}X}#}X!l#}X!q#}X!t#}X#O#}X#P#}X#p#}X'g#}X'q#}X'r#}X'x#}X'y#}X'z#}X'{#}X'|#}X'}#}X(O#}X(P#}X(Q#}X(R#}X(T#}XX#}X!e#}X!P#}Xv#}Xw#}X#R#}X~OPoO~OPoOQ!QOSVOTVOZeO[lO^9qO_9qO`9qOa9qOd9tOsVOtVOuVOw!PO}mO!U#bO!W#cO!X:zO!Z!YO!l9wO!q9vO!t9wO#Y!_O#r9zO#{9{O$O!]O$b!`O$d!bO$f!cO'T9oO'ZkO'^UO'gcO'q9wO(QdO~O!S&_O~Ow!PO~O!j&bO~P<cO'T&cO~PEvOZ&eO~O'T&cO~O'^UOw(^Xy(^X!Q(^X!U(^X!W(^X$q(^X%](^X%^(^X~Oa&hO~P!1iO'T&iO~O_&nO'T&cO~OQ&oOZ&pO[%qO^%vO_%cO`TOaTOd%jOg%yO}%pO!q%oO$f%wO%^%xO&W%{O'T%dO'Z%eO(Q%zO~PGaO!j&uO~P<cO^&wO_&wO`&wOa&wOd'POw&|O'T&vO(Q&}O~O!i'UO!j'TO'T&cO~O&}!sO'O'VO'P'XO~Or!uO']'ZO'_!uO~OQ']O^'ia_'ia`'iaa'ia'T'ia~O['cOw'dO}'bO~OQ']O~OQ!QO^#TO_#TO`#TOa'kOd#ZO'T#SO~O['lO~OZbXdlXXbXobXPbX!SbX!ebX'rbX!PbX!ObXybX!ZbX#RbXvbX~O[bXwbX}bX~P!6mOZ'SXd'XXX'SX['SXo'SXw'SX}'SX#p'SXP'SX!S'SX!e'SX'r'SX!P'SX!O'SXy'SX!Z'SX#R'SXv'SX~O^#TO_#TO`#TOa'kO'T#SO~OZ'mO~Od'oO~OZ'SXd'XX~PMuOZ'pOX(SX!e(SX!P(SXw(SX#R(SX~P*`O[#}O}#zO(O#|O(R#fOo#_ay#_a!l#_a!q#_a!t#_a#O#_a#P#_a#p#_a'g#_a'q#_a'r#_a'x#_a'y#_a'z#_a'{#_a'|#_a'}#_a(P#_a(Q#_a(T#_aX#_a!e#_a!P#_av#_aw#_a#R#_a~Ow!PO!X&RO~Oy#caX#ca!e#ca!P#cav#ca#R#ca~P2gOPoOQ!QOSVOTVOZeOd[OsVOtVOuVOw!PO!U#bO!W#cO!X!^O!Z!YO#Y!_O#r!ZO#{![O$O!]O$b!`O$d!bO$f!cO'ZkO'^UO[#sao#say#sa}#sa!l#sa!q#sa!t#sa#O#sa#P#sa#p#sa'g#sa'q#sa'r#sa'x#sa'y#sa'z#sa'{#sa'|#sa'}#sa(O#sa(P#sa(Q#sa(R#sa(T#saX#sa!e#sa!P#sav#sa#R#sa~P)xOPoOQ!QOSVOTVOZeO[lOd[OsVOtVOuVOw!PO}mO!U#bO!W#cO!X!^O!Z!YO!liO!qgO!tiO#Y!_O#r!ZO#{![O$O!]O$b!`O$d!bO$f!cO'Q#VO'ZkO'^UO'gcO'qiO(QdO!P(UP~P)xOu(SO#w(TO'T(RO~O[#}O}#zO!q#jO'g#gO'r#lO'x#hO'y#iO'z#iO'{#kO'|#nO'}#mO(O#|O(P#gO(Q#hO(R#fO(T#hO!l#sa!t#sa#p#sa'q#sa~Oo#xO#O#xO#P#uOy#saX#sa!e#sa!P#sav#sa#R#sa~P!B}Oy(YO!e(WOX(WX~P2gOX(ZO~OPoOQ!QOSVOTVOX(ZOZeO[lOd[OsVOtVOuVOw!PO}mO!U#bO!W#cO!X!^O!Z!YO!liO!qgO!tiO#Y!_O#r!ZO#{![O$O!]O$b!`O$d!bO$f!cO'Q$UO'ZkO'^UO'gcO'qiO(QdO~P)xOZ#RO~O!P(_O!e(WO~P2gOPoOQ!QOSVOTVOZeO[lOd[OsVOtVOuVOw!PO}mO!U#bO!W#cO!X!^O!Z!YO!liO!qgO!tiO#Y!_O#r!ZO#{![O$O!]O$b!`O$d!bO$f!cO'Q$UO'ZkO'^UO'gcO'qiO(QdO~P)xOZbXdlXwjX}jX!tbX'qbX~OP!RX!S!RX!e!RX'p!RX'r!RX!O!RXo!RXy!RX!P!RXX!RX!Z!RX#R!RXv!RX~P!JUOZ'SXd'XXw'kX}'kX!t'SX'q'SX~OP!`X!S!`X!e!`X'r!`X!O!`Xo!`Xy!`X!P!`XX!`X!Z!`X#R!`Xv!`X~P!KgOT(aOu(aO~O!t(bO'q(bOP!^X!S!^X!e!^X'r!^X!O!^Xo!^Xy!^X!P!^XX!^X!Z!^X#R!^Xv!^X~O^9rO_9rO`9yOa9yO'T9pO~Od(eO~O'p(fOP'hX!S'hX!e'hX'r'hX!O'hXo'hXy'hX!P'hXX'hX!Z'hX#R'hXv'hX~O!j&bO!P'lP~P<cOw(kO}(jO~O!j&bOX'lP~P<cO!j(oO~P<cOZ'pO!t(bO'q(bO~O!S(qO'r(pOP$WX!e$WX~O!e(rOP(YX~OP(tO~OP!aX!S!aX!e!aX'r!aX!O!aXo!aXy!aX!P!aXX!aX!Z!aX#R!aXv!aX~P!KgOy$UaX$Ua!e$Ua!P$Uav$Ua#R$Ua~P2gO!l(|O'Q#VO'T(xOv(ZP~OQ!QO^#TO_#TO`#TOa#]Od#ZOg!nOyvO|!VO!Q!dO!U#^O!W!lO!]!pO$i!eO$m!fO$q!gO$s!hO%T!iO%V!jO%Z!kO%]!lO%^!mO%f!oO%j!qO%s!rO'Q`O'T#SO~Ov)TO~P#$iOy)VO~PEsO%^)WO~PGaOa)ZO~P!1iO%f)`O~PEvO_)aO'T&cO~O!i)fO!j)eO'T&cO~O'^UO!Q(^X!U(^X!W(^X$q(^X%](^X%^(^X~Ov%uX~P2gOv)gO~PGyOv)gO~Ov)gO~P]OQiXQ'XXZiXd'XX}iX#piX(PiX~ORiXwiX$fiX$|iX[iXoiXyiX!liX!qiX!tiX#OiX#PiX'giX'qiX'riX'xiX'yiX'ziX'{iX'|iX'}iX(OiX(QiX(RiX(TiX!PiX!eiXXiXPiXviX!SiX#RiX~P#(kOQjXQlXRjXZjXdlX}jX#pjX(PjXwjX$fjX$|jX[jXojXyjX!ljX!qjX!tjX#OjX#PjX'gjX'qjX'rjX'xjX'yjX'zjX'{jX'|jX'}jX(OjX(QjX(RjX(TjX!PjX!ejXXjX!SjXPjXvjX#RjX~O%^)jO~PGaOQ']Od)kO~O^)mO_)mO`)mOa)mO'T%dO~Od)qO~OQ']OZ)uO})sOR'UX#p'UX(P'UXw'UX$f'UX$|'UX['UXo'UXy'UX!l'UX!q'UX!t'UX#O'UX#P'UX'g'UX'q'UX'r'UX'x'UX'y'UX'z'UX'{'UX'|'UX'}'UX(O'UX(Q'UX(R'UX(T'UX!P'UX!e'UXX'UXP'UXv'UX!S'UX#R'UX~OQ!QO^:bO_:^O`TOaTOd:aO%^)jO'T:_O~PGaOQ!QOZ%rO[%qO^%vO_%cO`TOaTOd%jOg%yO}%pO!j)yO!q%oO$f%wO%^%xO&W%{O'T%dO'Z%eO(Q%zO~PGaOQ!QOZ%rO[%qO^%vO_%cO`TOaTOd%jOg%yO}%pO!P)|O!q%oO$f%wO%^%xO&W%{O'T%dO'Z%eO(Q%zO~PGaO(P*OO~OR*QO#p*RO(P*PO~OQhXQ'XXZhXd'XX}hX(PhX~ORhX#phXwhX$fhX$|hX[hXohXyhX!lhX!qhX!thX#OhX#PhX'ghX'qhX'rhX'xhX'yhX'zhX'{hX'|hX'}hX(OhX(QhX(RhX(ThX!PhX!ehXXhXPhXvhX!ShX#RhX~P#4kOQ*SO~O})sO~OQ!QO^%vO_%cO`TOaTOd%jO$f%wO%^%xO'T%dO~PGaO!Q*VO!j*VO~O^*YO`*YOa*YO!O*ZO~OQ&oOZ*[O[%qO^%vO_%cO`TOaTOd%jOg%yO}%pO!q%oO$f%wO%^%xO&W%{O'T%dO'Z%eO(Q%zO~PGaO[#}Oo:YO}#zO!l:ZO!q#jO!t:ZO#O:YO#P:VO#p$OO'g#gO'q:ZO'r#lO'x#hO'y#iO'z#iO'{#kO'|#nO'}#mO(O#|O(P#gO(Q#hO(R#fO(T#hO~Ow'dX~P#9vOy#qaX#qa!e#qa!P#qav#qa#R#qa~P2gOy#zaX#za!e#za!P#zav#za#R#za~P2gOPoOQ!QOSVOTVOZeO[lOd[OsVOtVOuVOw!PO}mO!S&_O!U#bO!W#cO!X!^O!Z!YO!liO!qgO!tiO#Y!_O#r!ZO#{![O$O!]O$b!`O$d!bO$f!cO'ZkO'^UO'gcO'qiO(QdOo#zay#za#O#za#P#za#p#za'r#za'x#za'y#za'z#za'{#za'|#za'}#za(O#za(P#za(R#za(T#zaX#za!e#za!P#zav#za#R#za~P)xOPoOQ!QOSVOTVOZeO[lOd[OsVOtVOuVOw!PO}mO!U#bO!W#cO!X!^O!Z!YO!liO!qgO!tiO#Q*eO#Y!_O#r!ZO#{![O$O!]O$b!`O$d!bO$f!cO'ZkO'^UO'gcO'qiO(QdO~P)xOw*fO~P#9vO$b*iO$d*jO$f*kO~O!O*lO'r(pO~O!S*nO~O'T*oO~Ow$yOy*qO~O'T*rO~OQ*uOw*vOy*yO}*wO$|*xO~OQ*uOw*vO$|*xO~OQ*uOw+QO$|*xO~OQ*uOo+VOy+XO!S+UO~OQ*uO}+ZO~OQ!QOZ%rO[%qO^%vO`TOaTOd%jOg%yO}%pO!U!lO!W!lO!q%oO$f%wO$q%[O%]!lO%^%xO&W%{O'T%dO'Z%eO(Q%zO~OR+bO_+^O!Q+cO~P#DkO_%cO!Q!lOw&UX$|&UX(P&UX~P#DkOw$yO$f+hO$|*xO(P*PO~OQ!QOZ*[O[%qO^%vO_%cO`TOaTOd%jOg%yO}%pO!q%oO$f%wO%^%xO&W%{O'T%dO'Z%eO(Q%zO~PGaOQ*uOw$yO!S+UO$|*xO~Oo+nOy+mO!S+oO'r(pO~OdlXy!RX#pbXv!RX!e!RX~Od'XXy(mX#p'SXv(mX!e(mX~Od+qO~O^#TO_#TO`#TOa'kOw&|O'T&vO(Q+vO~Ov(oP~P!3|O#p+{O~Oy+|O~O!S+}O~O&}!sO'O'VO'P,PO~Od,QO~OSVOTVO_%cOsVOtVOuVOw!PO!Q!lO'^UO~P#DkOS,^OT,^OZ,^O['cO_,YOd,^Oo,^Os,^Ou,^Ow'dOy,^O}'bO!S,^O!e,^O!l,^O!q,[O!t,^O!y,^O#O,^O#P,^O#Q,^O#R,^O'Q,^O'Z%eO'^UO'g,ZO'r,[O'v,_O'x,ZO'y,[O'z,[O'{,[O'|,]O'},]O(O,^O(P,`O(Q,`O(R,aO~O!P,dO~P#KkOX,gO~P#KkOv,iO~P#KkOo'tX#O'tX#P'tX#p'tX'r'tX'x'tX'y'tX'z'tX'{'tX'|'tX'}'tX(O'tX(P'tX(R'tX(T'tX~Oy,jO['tX}'tX!l'tX!q'tX!t'tX'g'tX'q'tX(Q'tXv'tX~P#NjOP$giQ$giS$giT$giZ$gi[$gi^$gi_$gi`$gia$gid$gig$gis$git$giu$giw$giy$gi|$gi}$gi!Q$gi!U$gi!W$gi!X$gi!Z$gi!]$gi!l$gi!q$gi!t$gi#Y$gi#r$gi#{$gi$O$gi$b$gi$d$gi$f$gi$i$gi$m$gi$q$gi$s$gi%T$gi%V$gi%Z$gi%]$gi%^$gi%f$gi%j$gi%s$gi&z$gi'Q$gi'T$gi'Z$gi'^$gi'g$gi'q$gi(Q$giv$gi~P#NjOX,kO~O['cOo,lOw'dO}'bOX]X~Oy#ciX#ci!e#ci!P#civ#ci#R#ci~P2gO[#}O}#zO'x#hO(O#|O(Q#hO(R#fO(T#hOo#eiy#ei!l#ei!q#ei!t#ei#O#ei#P#ei#p#ei'q#ei'r#ei'y#ei'z#ei'{#ei'|#ei'}#eiX#ei!e#ei!P#eiv#ei#R#ei~O'g#ei(P#ei~P$'PO[#}O}#zO(O#|O(R#fOo#eiy#ei!l#ei!q#ei!t#ei#O#ei#P#ei#p#ei'q#ei'r#ei'y#ei'z#ei'{#ei'|#ei'}#eiX#ei!e#ei!P#eiv#ei#R#ei~O'g#ei'x#ei(P#ei(Q#ei(T#eiw#ei~P$)QO'g#gO(P#gO~P$'PO[#}O}#zO'g#gO'x#hO'y#iO'z#iO(O#|O(P#gO(Q#hO(R#fO(T#hOo#eiy#ei!l#ei!t#ei#O#ei#P#ei#p#ei'q#ei'r#ei'{#ei'|#ei'}#eiX#ei!e#ei!P#eiv#ei#R#ei~O!q#ei~P$+`O!q#jO~P$+`O[#}O}#zO!q#jO'g#gO'x#hO'y#iO'z#iO'{#kO(O#|O(P#gO(Q#hO(R#fO(T#hOo#eiy#ei!l#ei!t#ei#O#ei#P#ei#p#ei'q#ei'|#ei'}#eiX#ei!e#ei!P#eiv#ei#R#ei~O'r#ei~P$-hO'r#lO~P$-hO[#}O}#zO!q#jO#P#uO'g#gO'r#lO'x#hO'y#iO'z#iO'{#kO(O#|O(P#gO(Q#hO(R#fO(T#hOo#eiy#ei!l#ei!t#ei#O#ei#p#ei'q#ei'|#eiX#ei!e#ei!P#eiv#ei#R#ei~O'}#ei~P$/pO'}#mO~P$/pO[#}O}#zO!q#jO'g#gO'r#lO'x#hO'y#iO'z#iO'{#kO'|#nO'}#mO(O#|O(P#gO(Q#hO(R#fO(T#hO!l#ni!t#ni#p#ni'q#ni~Oo#xO#O#xO#P#uOy#niX#ni!e#ni!P#niv#ni#R#ni~P$1xO[#}O}#zO!q#jO'g#gO'r#lO'x#hO'y#iO'z#iO'{#kO'|#nO'}#mO(O#|O(P#gO(Q#hO(R#fO(T#hO!l#si!t#si#p#si'q#si~Oo#xO#O#xO#P#uOy#siX#si!e#si!P#siv#si#R#si~P$3yOPoOQ!QOSVOTVOZeO[lOd[OsVOtVOuVOw!PO}mO!U#bO!W#cO!X!^O!Z!YO!liO!qgO!tiO#Y!_O#r!ZO#{![O$O!]O$b!`O$d!bO$f!cO'Q#VO'ZkO'^UO'gcO'qiO(QdO~P)xO!e,sO!P(VX~P2gO!P,uO~OX,vO~P2gOPoOQ!QOSVOTVOZeO[lOd[OsVOtVOuVOw!PO}mO!U#bO!W#cO!X!^O!Z!YO!liO!qgO!tiO#Y!_O#r!ZO#{![O$O!]O$b!`O$d!bO$f!cO'ZkO'^UO'gcO'qiO(QdOX&fX!e&fX!P&fX~P)xO!e(WOX(Wa~Oy,zO!e(WOX(WX~P2gOX,{O~O!P,|O!e(WO~O!P-OO!e(WO~P2gOSVOTVOsVOtVOuVO'^UO'g$[O~P!6POP!baZca!S!ba!e!ba!tca'qca'r!ba!O!bao!bay!ba!P!baX!ba!Z!ba#R!bav!ba~O!e-TO'r(pO!P'mXX'mX~O!P-VO~O!i-`O!j-_O!l-[O'T-XOv'nP~OX-aO~O_%cO!Q!lO~P#DkO!j-gOP&gX!e&gX~P<cO!e(rOP(Ya~O!S-iO'r(pOP$Wa!e$Wa~Ow!PO(P*PO~OvbX!S!kX!ebX~O'Q#VO'T(xO~O!S-mO~O!e-oOv([X~Ov-qO~Ov-sO~P,cOv-sO~P#$iO_-uO'T&cO~O!S-vO~Ow$yOy-wO~OQ*uOw*vOy-zO}*wO$|*xO~OQ*uOo.UO~Oy._O~O!S.`O~O!j.bO'T&cO~Ov.cO~Ov.cO~PGyOQ']O^'Wa_'Wa`'Waa'Wa'T'Wa~Od.gO~OQ'XXQ'kXR'kXZ'kXd'XX}'kX#p'kX(P'kXw'kX$f'kX$|'kX['kXo'kXy'kX!l'kX!q'kX!t'kX#O'kX#P'kX'g'kX'q'kX'r'kX'x'kX'y'kX'z'kX'{'kX'|'kX'}'kX(O'kX(Q'kX(R'kX(T'kX!P'kX!e'kXX'kXP'kXv'kX!S'kX#R'kX~OQ!QOZ%rO[%qO^.rO_%cO`TOaTOd%jOg%yO}%pO!j.sO!q.pO!t.kO#V.mO$f%wO%^%xO&W%{O'Q#VO'T%dO'Z%eO(Q%zO!P(sP~PGaO#Q.tOR%wa#p%wa(P%waw%wa$f%wa$|%wa[%wao%way%wa}%wa!l%wa!q%wa!t%wa#O%wa#P%wa'g%wa'q%wa'r%wa'x%wa'y%wa'z%wa'{%wa'|%wa'}%wa(O%wa(Q%wa(R%wa(T%wa!P%wa!e%waX%waP%wav%wa!S%wa#R%wa~O%^.vO~PGaO(P*POR&Oa#p&Oaw&Oa$f&Oa$|&Oa[&Oao&Oay&Oa}&Oa!l&Oa!q&Oa!t&Oa#O&Oa#P&Oa'g&Oa'q&Oa'r&Oa'x&Oa'y&Oa'z&Oa'{&Oa'|&Oa'}&Oa(O&Oa(Q&Oa(R&Oa(T&Oa!P&Oa!e&OaX&OaP&Oav&Oa!S&Oa#R&Oa~O_%cO!Q!lO!j.xO(P*OO~P#DkO!e.yO(P*PO!P(uX~O!P.{O~OX.|Oy.}O(P*PO~O'Z%eOR(qP~OQ']O})sORfa#pfa(Pfawfa$ffa$|fa[faofayfa!lfa!qfa!tfa#Ofa#Pfa'gfa'qfa'rfa'xfa'yfa'zfa'{fa'|fa'}fa(Ofa(Qfa(Rfa(Tfa!Pfa!efaXfaPfavfa!Sfa#Rfa~OQ']O})sOR&Va#p&Va(P&Vaw&Va$f&Va$|&Va[&Vao&Vay&Va!l&Va!q&Va!t&Va#O&Va#P&Va'g&Va'q&Va'r&Va'x&Va'y&Va'z&Va'{&Va'|&Va'}&Va(O&Va(Q&Va(R&Va(T&Va!P&Va!e&VaX&VaP&Vav&Va!S&Va#R&Va~O!P/UO~Ow$yO$f/ZO$|*xO(P*PO~OQ!QOZ/[O[%qO^%vO_%cO`TOaTOd%jOg%yO}%pO!q%oO$f%wO%^%xO&W%{O'T%dO'Z%eO(Q%zO~PGaOo/^O'r(pO~O#W/_OP!YiQ!YiS!YiT!YiZ!Yi[!Yi^!Yi_!Yi`!Yia!Yid!Yig!Yio!Yis!Yit!Yiu!Yiw!Yiy!Yi|!Yi}!Yi!Q!Yi!U!Yi!W!Yi!X!Yi!Z!Yi!]!Yi!l!Yi!q!Yi!t!Yi#O!Yi#P!Yi#Y!Yi#p!Yi#r!Yi#{!Yi$O!Yi$b!Yi$d!Yi$f!Yi$i!Yi$m!Yi$q!Yi$s!Yi%T!Yi%V!Yi%Z!Yi%]!Yi%^!Yi%f!Yi%j!Yi%s!Yi&z!Yi'Q!Yi'T!Yi'Z!Yi'^!Yi'g!Yi'q!Yi'r!Yi'x!Yi'y!Yi'z!Yi'{!Yi'|!Yi'}!Yi(O!Yi(P!Yi(Q!Yi(R!Yi(T!YiX!Yi!e!Yi!P!Yiv!Yi!i!Yi!j!Yi#V!Yi#R!Yi~Oy#ziX#zi!e#zi!P#ziv#zi#R#zi~P2gOy$UiX$Ui!e$Ui!P$Uiv$Ui#R$Ui~P2gOv/eO!j&bO'Q`O~P<cOw/nO}/mO~Oy!RX#pbX~Oy/oO~O#p/pO~OR+bO_+dO!Q/sO'T&iO'Z%eO~Oa/zO|!VO'Q#VO'T(ROv(cP~OQ!QOZ%rO[%qO^%vO_%cO`TOa/zOd%jOg%yO|!VO}%pO!q%oO$f%wO%^%xO&W%{O'Q#VO'T%dO'Z%eO(Q%zO!P(eP~PGaOQ!QOZ%rO[%qO^%vO_%cO`TOaTOd%jOg%yO}%pO!q%oO$f0VO%^%xO&W%{O'T%dO'Z%eO(Q%zOw(`Py(`P~PGaOw*vO~Oy-zO$|*xO~Oa/zO|!VO'Q#VO'T*oOv(gP~Ow+QO~OQ!QOZ%rO[%qO^%vO_%cO`TOaTOd%jOg%yO}%pO!q%oO$f0VO%^%xO&W%{O'T%dO'Z%eO(Q%zO(R0`O~PGaOy0dO~OQ!QOSVOTVO[$gO^0lO_$ZO`9yOa9yOd$aOsVOtVOuVO}$eO!i$qO!j0mO!l$lO!q0eO!t0hO'Q#VO'T$YO'Z%eO'^UO'g$[O~O#V0nO!P(jP~P%1}Ow!POy0pO#Q0rO$|*xO~OR0uO!e0sO~P#(kOR0uO!S+UO!e0sO(P*OO~OR0uOo0wO!S+UO!e0sOQ'VXZ'VX}'VX#p'VX(P'VX~OR0uOo0wO!e0sO~OR0uO!e0sO~O$f/ZO(P*PO~Ow$yO~Ow$yO$|*xO~Oo0}Oy0|O!S1OO'r(pO~O!e1POv(pX~Ov1RO~O^#TO_#TO`#TOa'kOw&|O'T&vO(Q1VO~Oo1YOQ'VXR'VXZ'VX}'VX!e'VX(P'VX~O!e1ZO(P*POR'YX~O!e1ZOR'YX~O!e1ZO(P*OOR'YX~OR1]O~O!S1^OS'wXT'wXZ'wX['wX_'wXd'wXo'wXs'wXu'wXw'wXy'wX}'wX!P'wX!e'wX!l'wX!q'wX!t'wX!y'wX#O'wX#P'wX#Q'wX#R'wX'Q'wX'Z'wX'^'wX'g'wX'r'wX'v'wX'x'wX'y'wX'z'wX'{'wX'|'wX'}'wX(O'wX(P'wX(Q'wX(R'wXX'wXv'wX~O}1_O~O!P1aO~P#KkOX1bO~P#KkOv1cO~P#KkOS,^OT,^OZ,^O['cO_1dOd,^Oo,^Os,^Ou,^Ow'dOy,^O}'bO!S,^O!e,^O!l,^O!q,[O!t,^O!y,^O#O,^O#P,^O#Q,^O#R,^O'Q,^O'Z%eO'^UO'g,ZO'r,[O'v,_O'x,ZO'y,[O'z,[O'{,[O'|,]O'},]O(O,^O(P,`O(Q,`O(R,aO~OX1fO~Oy,jO~O!e,sO!P(Va~P2gOPoOQ!QOSVOTVOZeO[lOd[OsVOtVOuVOw!PO}mO!U#bO!W#cO!X!^O!Z!YO!liO!qgO!tiO#Y!_O#r!ZO#{![O$O!]O$b!`O$d!bO$f!cO'Q#VO'ZkO'^UO'gcO'qiO(QdO!P&eX!e&eX~P)xO!e,sO!P(Va~OX&fa!e&fa!P&fa~P2gOX1kO~P2gO!P1mO!e(WO~OP!biZci!S!bi!e!bi!tci'qci'r!bi!O!bio!biy!bi!P!biX!bi!Z!bi#R!biv!bi~O'r(pOP!oi!S!oi!e!oi!O!oio!oiy!oi!P!oiX!oi!Z!oi#R!oiv!oi~O!j&bO!P&`X!e&`XX&`X~P<cO!e-TO!P'maX'ma~O!P1qO~Ov!RX!S!kX!e!RX~O!S1rO~O!e1sOv'oX~Ov1uO~O'T-XO~O!j1xO'T-XO~O(P*POP$Wi!e$Wi~O!S1yO'r(pOP$XX!e$XX~O!S1|O~Ov$_a!e$_a~P2gO!l(|O'Q#VO'T(xOv&hX!e&hX~O!e-oOv([a~Ov2QO~P,cOy2UO~O#p2VO~Oy2WO$|*xO~Ow*vOy2WO}*wO$|*xO~Oo2aO~Ow!POy2fO#Q2hO$|*xO~O!S2jO~Ov2lO~O#Q2mOR%wi#p%wi(P%wiw%wi$f%wi$|%wi[%wio%wiy%wi}%wi!l%wi!q%wi!t%wi#O%wi#P%wi'g%wi'q%wi'r%wi'x%wi'y%wi'z%wi'{%wi'|%wi'}%wi(O%wi(Q%wi(R%wi(T%wi!P%wi!e%wiX%wiP%wiv%wi!S%wi#R%wi~Od2nO~O^2qO!j.sO!q2rO'Q#VO'Z%eO~O(P*PO!P%{X!e%{X~O!e2sO!P(tX~O!P2uO~OQ!QOZ%rO[%qO^2wO_%cO`TOaTOd%jOg%yO}%pO!j2xO!q%oO$f%wO%^%xO&W%{O'T%dO'Z%eO(Q%zO~PGaO^2yO!j2xO(P*OO~O!P%aX!e%aX~P#4kO^2yO~O(P*POR&Oi#p&Oiw&Oi$f&Oi$|&Oi[&Oio&Oiy&Oi}&Oi!l&Oi!q&Oi!t&Oi#O&Oi#P&Oi'g&Oi'q&Oi'r&Oi'x&Oi'y&Oi'z&Oi'{&Oi'|&Oi'}&Oi(O&Oi(Q&Oi(R&Oi(T&Oi!P&Oi!e&OiX&OiP&Oiv&Oi!S&Oi#R&Oi~O_%cO!Q!lO!P&yX!e&yX~P#DkO!e.yO!P(ua~OR3QO(P*PO~O!e3ROR(rX~OR3TO~O(P*POR&Pi#p&Piw&Pi$f&Pi$|&Pi[&Pio&Piy&Pi}&Pi!l&Pi!q&Pi!t&Pi#O&Pi#P&Pi'g&Pi'q&Pi'r&Pi'x&Pi'y&Pi'z&Pi'{&Pi'|&Pi'}&Pi(O&Pi(Q&Pi(R&Pi(T&Pi!P&Pi!e&PiX&PiP&Piv&Pi!S&Pi#R&Pi~O!P3UO~O$f3VO(P*PO~Ow$yO$f3VO$|*xO(P*PO~Ow!PO!Z!YO~O!Z3aO#R3_O'r(pO~O!j&bO'Q#VO~P<cOv3eO~Ov3eO!j&bO'Q`O~P<cO!O3hO'r(pO~Ow!PO~P#9vOo3kOy3jO(P*PO~O!P3oO~P%;pOv3rO~P%;pOR0uO!S+UO!e0sO~OR0uOo0wO!S+UO!e0sO~Oa/zO|!VO'Q#VO'T(RO~O!S3uO~O!e3wOv(dX~Ov3yO~OQ!QOZ%rO[%qO^%vO_%cO`TOa/zOd%jOg%yO|!VO}%pO!q%oO$f%wO%^%xO&W%{O'Q#VO'T%dO'Z%eO(Q%zO~PGaO!e3|O(P*PO!P(fX~O!P4OO~O!S4PO(P*OO~O!S+UO(P*PO~O!e4ROw(aXy(aX~OQ4TO~Oy2WO~Oa/zO|!VO'Q#VO'T*oO~Oo4WOw*vO}*wOv%XX!e%XX~O!e4ZOv(hX~Ov4]O~O(P4_Oy(_Xw(_X$|(_XR(_Xo(_X!e(_X~Oy4aO(P*PO~OQ!QOSVOTVO[$gO^4bO_$ZO`9yOa9yOd$aOsVOtVOuVO}$eO!i$qO!l$lO!q$hO#V$lO'T$YO'^UO'g$[O~O!j4cO'Z%eO~P&,sO!S4eO'r(pO~O#V4gO~P%1}O!e4hO!P(kX~O!P4jO~O!P%aX!S!aX!e%aX'r!aX~P!KgO!j&bO~P&,sO!e4hO!P(kX!S'eX'r'eX~O^2yO!j2xO~Ow!POy2fO~O_4pO!Q/sO'T&iO'Z%eOR&lX!e&lX~OR4rO!e0sO~O!S4tO~Ow$yO$|*xO(P*PO~Oy4uO~P2gOo4vOy4uO(P*PO~Ov&uX!e&uX~P!3|O!e1POv(pa~Oo4|Oy4{O(P*PO~OSVOTVO_%cOsVOtVOuVOw!PO!Q!lO'^UOR&vX!e&vX~P#DkO!e1ZOR'Ya~O!y5SO~O!P5TO~P#KkO!S1^OX'wX#R'wX~O!e,sO!P(Vi~O!P&ea!e&ea~P2gOX5WO~P2gOP!bqZcq!S!bq!e!bq!tcq'qcq'r!bq!O!bqo!bqy!bq!P!bqX!bq!Z!bq#R!bqv!bq~O'r(pO!P&`a!e&`aX&`a~O!i-`O!j-_O!l5YO'T-XOv&aX!e&aX~O!e1sOv'oa~O!S5[O~O!S5`O'r(pOP$Xa!e$Xa~O(P*POP$Wq!e$Wq~Ov$^i!e$^i~P2gOw!POy5bO#Q5dO$|*xO~Oo5gOy5fO(P*PO~Oy5iO~Oy5iO$|*xO~Oy5mO(P*PO~Ow!POy5bO~Oo5tOy5sO(P*PO~O!S5vO~O!e2sO!P(ta~O^2yO!j2xO'Z%eO~OQ!QOZ%rO[%qO^.rO_%cO`TOaTOd%jOg%yO}%pO!j.sO!q.pO!t5zO#V5|O$f%wO%^%xO&W%{O'Q#VO'T%dO'Z%eO(Q%zO!P&xX!e&xX~PGaOQ!QOZ%rO[%qO^6OO_%cO`TOaTOd%jOg%yO}%pO!j6PO!q%oO$f%wO%^%xO&W%{O'T%dO'Z%eO(P*OO(Q%zO~PGaO!P%aa!e%aa~P#4kO^6QO~O#Q6ROR%wq#p%wq(P%wqw%wq$f%wq$|%wq[%wqo%wqy%wq}%wq!l%wq!q%wq!t%wq#O%wq#P%wq'g%wq'q%wq'r%wq'x%wq'y%wq'z%wq'{%wq'|%wq'}%wq(O%wq(Q%wq(R%wq(T%wq!P%wq!e%wqX%wqP%wqv%wq!S%wq#R%wq~O(P*POR&Oq#p&Oqw&Oq$f&Oq$|&Oq[&Oqo&Oqy&Oq}&Oq!l&Oq!q&Oq!t&Oq#O&Oq#P&Oq'g&Oq'q&Oq'r&Oq'x&Oq'y&Oq'z&Oq'{&Oq'|&Oq'}&Oq(O&Oq(Q&Oq(R&Oq(T&Oq!P&Oq!e&OqX&OqP&Oqv&Oq!S&Oq#R&Oq~O(P*PO!P&ya!e&ya~OX6SO~P2gO'Z%eOR&wX!e&wX~O!e3ROR(ra~O$f6YO(P*PO~Ow![q~P#9vO#R6]O~O!Z3aO#R6]O'r(pO~Ov6bO~O#R6fO~Oy6gO!P6hO~O!P6hO~P%;pOy6kO~Ov6kOy6gO~Ov6kO~P%;pOy6mO~O!e3wOv(da~O!S6pO~Oa/zO|!VO'Q#VO'T(ROv&oX!e&oX~O!e3|O(P*PO!P(fa~OQ!QOZ%rO[%qO^%vO_%cO`TOa/zOd%jOg%yO|!VO}%pO!q%oO$f%wO%^%xO&W%{O'Q#VO'T%dO'Z%eO(Q%zO!P&pX!e&pX~PGaO!e3|O!P(fa~OQ!QOZ%rO[%qO^%vO_%cO`TOaTOd%jOg%yO}%pO!q%oO$f0VO%^%xO&W%{O'T%dO'Z%eO(Q%zOw&nX!e&nXy&nX~PGaO!e4ROw(aay(aa~O!e4ZOv(ha~Oo7SOv%Xa!e%Xa~Oo7SOw*vO}*wOv%Xa!e%Xa~Oa/zO|!VO'Q#VO'T*oOv&qX!e&qX~O(P*POy$xaw$xa$|$xaR$xao$xa!e$xa~O(P4_Oy(_aw(_a$|(_aR(_ao(_a!e(_a~O!P%aa!S!aX!e%aa'r!aX~P!KgOQ!QOSVOTVO[$gO_$ZO`9yOa9yOd$aOsVOtVOuVO}$eO!i$qO!j&bO!l$lO!q$hO#V$lO'T$YO'^UO'g$[O~O^7ZO~P&JUO^6QO!j6PO~O!e4hO!P(ka~O!e4hO!P(ka!S'eX'r'eX~OQ!QOSVOTVO[$gO^0lO_$ZO`9yOa9yOd$aOsVOtVOuVO}$eO!i$qO!j0mO!l$lO!q0eO!t7_O'Q#VO'T$YO'Z%eO'^UO'g$[O~O#V7aO!P&sX!e&sX~P&L]O!S7cO'r(pO~Ow!POy5bO$|*xO(P*PO~O!S+UOR&la!e&la~Oo0wO!S+UOR&la!e&la~Oo0wOR&la!e&la~O(P*POR$yi!e$yi~Oy7fO~P2gOo7gOy7fO(P*PO~O(P*PORni!eni~O(P*POR&va!e&va~O(P*OOR&va!e&va~OS,^OT,^OZ,^O_,^Od,^Oo,^Os,^Ou,^Oy,^O!S,^O!e,^O!l,^O!q,[O!t,^O!y,^O#O,^O#P,^O#Q,^O#R,^O'Q,^O'Z%eO'^UO'g,ZO'r,[O'x,ZO'y,[O'z,[O'{,[O'|,]O'},]O(O,^O~O(P7iO(Q7iO(R7iO~P'!qO!P7kO~P#KkO!P&ei!e&ei~P2gO'r(pOv!hi!e!hi~O!S7mO~O(P*POP$Xi!e$Xi~Ov$^q!e$^q~P2gOw!POy7oO~Ow!POy7oO#Q7rO$|*xO~Oy7tO~Oy7uO~Oy7vO(P*PO~Ow!POy7oO$|*xO(P*PO~Oo7{Oy7zO(P*PO~O!e2sO!P(ti~O(P*PO!P%}X!e%}X~O!P%ai!e%ai~P#4kO^8OO~O!e8TO['bXv$`i}'bX!l'bX!q'bX!t'bX'g'bX'q'bX(Q'bX~P@[OQ#[iS#[iT#[i[#[i^#[i_#[i`#[ia#[id#[is#[it#[iu#[iv$`i}#[i!i#[i!j#[i!l#[i!q#[i!t'bX#V#[i'Q#[i'T#[i'^#[i'g#[i'q'bX(Q'bX~P@[O#R#^a~P2gO#R8WO~O!Z3aO#R8XO'r(pO~Ov8[O~Oy8^O~P2gOy8`O~Oy6gO!P8aO~Ov8`Oy6gO~O!e3wOv(di~O(P*POv%Qi!e%Qi~O!e3|O!P(fi~O!e3|O(P*PO!P(fi~O(P*PO!P&pa!e&pa~O(P8hOw(bX!e(bXy(bX~O(P*PO!S$wiy$wiw$wi$|$wiR$wio$wi!e$wi~O!e4ZOv(hi~Ov%Xi!e%Xi~P2gOo8kOv%Xi!e%Xi~O!P%ai!S!aX!e%ai'r!aX~P!KgO(P*PO!P%`i!e%`i~O!e4hO!P(ki~O#V8nO~P&L]O!P&sa!S'eX!e&sa'r'eX~O(P*POR$zq!e$zq~Oy8pO~P2gOy7zO~P2gO(P8rO(Q8rO(R8rO~O(P8rO(Q8rO(R8rO~P'!qO'r(pOv!hq!e!hq~O(P*POP$Xq!e$Xq~Ow!POy8uO$|*xO(P*PO~Ow!POy8uO~Oy8xO~P2gOy8zO~P2gOo8|Oy8zO(P*PO~OQ#[qS#[qT#[q[#[q^#[q_#[q`#[qa#[qd#[qs#[qt#[qu#[qv$`q}#[q!i#[q!j#[q!l#[q!q#[q#V#[q'Q#[q'T#[q'^#[q'g#[q~O!e9PO['bXv$`q}'bX!l'bX!q'bX!t'bX'g'bX'q'bX(Q'bX~P@[Oo'bX!t'bX#O'bX#P'bX#p'bX'q'bX'r'bX'x'bX'y'bX'z'bX'{'bX'|'bX'}'bX(O'bX(P'bX(Q'bX(R'bX(T'bX~P'2fO#R9UO~O!Z3aO#R9UO'r(pO~Oy9WO~O(P*POv%Qq!e%Qq~O!e3|O!P(fq~O(P*PO!P&pi!e&pi~O(P8hOw(ba!e(bay(ba~Ov%Xq!e%Xq~P2gO!P&si!S'eX!e&si'r'eX~O(P*PO!P%`q!e%`q~Oy9]O~P2gO(P9^O(Q9^O(R9^O~O'r(pOv!hy!e!hy~Ow!POy9_O~Ow!POy9_O$|*xO(P*PO~Oy9aO~P2gOQ#[yS#[yT#[y[#[y^#[y_#[y`#[ya#[yd#[ys#[yt#[yu#[yv$`y}#[y!i#[y!j#[y!l#[y!q#[y#V#[y'Q#[y'T#[y'^#[y'g#[y~O!e9dO['bXv$`y}'bX!l'bX!q'bX!t'bX'g'bX'q'bX(Q'bX~P@[Oo'bX!t'bX#O'bX#P'bX#p'bX'q'bX'r'bX'x'bX'y'bX'z'bX'{'bX'|'bX'}'bX(O'bX(P'bX(Q'bX(R'bX(T'bX~P'9eO!e9eO['bX}'bX!l'bX!q'bX!t'bX'g'bX'q'bX(Q'bX~P@[OQ#[iS#[iT#[i[#[i^#[i_#[i`#[ia#[id#[is#[it#[iu#[i}#[i!i#[i!j#[i!l#[i!q#[i!t'bX#V#[i'Q#[i'T#[i'^#[i'g#[i'q'bX(Q'bX~P@[O#R9hO~O(P*PO!P&pq!e&pq~Ov%Xy!e%Xy~P2gOw!POy9iO~Oy9jO~P2gOQ#[!RS#[!RT#[!R[#[!R^#[!R_#[!R`#[!Ra#[!Rd#[!Rs#[!Rt#[!Ru#[!Rv$`!R}#[!R!i#[!R!j#[!R!l#[!R!q#[!R#V#[!R'Q#[!R'T#[!R'^#[!R'g#[!R~O!e9kO['bX}'bX!l'bX!q'bX!t'bX'g'bX'q'bX(Q'bX~P@[OQ#[qS#[qT#[q[#[q^#[q_#[q`#[qa#[qd#[qs#[qt#[qu#[q}#[q!i#[q!j#[q!l#[q!q#[q!t'bX#V#[q'Q#[q'T#[q'^#[q'g#[q'q'bX(Q'bX~P@[O!e9nO['bX}'bX!l'bX!q'bX!t'bX'g'bX'q'bX(Q'bX~P@[OQ#[yS#[yT#[y[#[y^#[y_#[y`#[ya#[yd#[ys#[yt#[yu#[y}#[y!i#[y!j#[y!l#[y!q#[y!t'bX#V#[y'Q#[y'T#[y'^#[y'g#[y'q'bX(Q'bX~P@[OwbX~P$|OwjX}jX!tbX'qbX~P!6mOZ'SXd'XXo'SXw'kX!t'SX'q'SX'r'SX~O['SXd'SXw'SX}'SX!l'SX!q'SX#O'SX#P'SX#p'SX'g'SX'x'SX'y'SX'z'SX'{'SX'|'SX'}'SX(O'SX(P'SX(Q'SX(R'SX(T'SX~P'GTOP'SX}'kX!S'SX!e'SX!O'SXy'SX!P'SXX'SX!Z'SX#R'SXv'SX~P'GTO^9qO_9qO`9qOa9qO'T9oO~O!j:OO~P!.cOPoOQ!QOSVOTVOZeOd9tOsVOtVOuVO!U#bO!W#cO!X:zO!Z!YO#Y!_O#r9zO#{9{O$O!]O$b!`O$d!bO$f!cO'ZkO'^UO[#sXo#sXw#sX}#sX!l#sX!q#sX!t#sX#O#sX#P#sX#p#sX'g#sX'q#sX'r#sX'x#sX'y#sX'z#sX'{#sX'|#sX'}#sX(O#sX(P#sX(Q#sX(R#sX(T#sX~P'IxO#Q$uO~P!.cO}'kXP'SX!S'SX!e'SX!O'SXy'SX!P'SXX'SX!Z'SX#R'SXv'SX~P'GTOo#qX#O#qX#P#qX#p#qX'r#qX'x#qX'y#qX'z#qX'{#qX'|#qX'}#qX(O#qX(P#qX(R#qX(T#qX~P!.cOo#zX#O#zX#P#zX#p#zX'r#zX'x#zX'y#zX'z#zX'{#zX'|#zX'}#zX(O#zX(P#zX(R#zX(T#zX~P!.cOPoOQ!QOSVOTVOZeOd9tOsVOtVOuVO!U#bO!W#cO!X:zO!Z!YO#Y!_O#r9zO#{9{O$O!]O$b!`O$d!bO$f!cO'ZkO'^UO[#sao#saw#sa}#sa!l#sa!q#sa!t#sa#O#sa#P#sa#p#sa'g#sa'q#sa'r#sa'x#sa'y#sa'z#sa'{#sa'|#sa'}#sa(O#sa(P#sa(Q#sa(R#sa(T#sa~P'IxOo:YO#O:YO#P:VOw#sa~P!B}Ow$Ua~P#9vOQ'XXd'XX}iX~OQlXdlX}jX~O^:sO_:sO`:sOa:sO'T:_O~OQ'XXd'XX}hX~Ow#qa~P#9vOw#za~P#9vO!S&_Oo#za#O#za#P#za#p#za'r#za'x#za'y#za'z#za'{#za'|#za'}#za(O#za(P#za(R#za(T#za~P!.cO#Q*eO~P!.cOw#ci~P#9vO[#}O}#zO'x#hO(O#|O(Q#hO(R#fO(T#hOo#eiw#ei!l#ei!q#ei!t#ei#O#ei#P#ei#p#ei'q#ei'r#ei'y#ei'z#ei'{#ei'|#ei'}#ei~O'g#ei(P#ei~P((}O'g#gO(P#gO~P((}O[#}O}#zO'g#gO'x#hO'y#iO'z#iO(O#|O(P#gO(Q#hO(R#fO(T#hOo#eiw#ei!l#ei!t#ei#O#ei#P#ei#p#ei'q#ei'r#ei'{#ei'|#ei'}#ei~O!q#ei~P(*yO!q#jO~P(*yO[#}O}#zO!q#jO'g#gO'x#hO'y#iO'z#iO'{#kO(O#|O(P#gO(Q#hO(R#fO(T#hOo#eiw#ei!l#ei!t#ei#O#ei#P#ei#p#ei'q#ei'|#ei'}#ei~O'r#ei~P(,rO'r#lO~P(,rO[#}O}#zO!q#jO#P:VO'g#gO'r#lO'x#hO'y#iO'z#iO'{#kO(O#|O(P#gO(Q#hO(R#fO(T#hOo#eiw#ei!l#ei!t#ei#O#ei#p#ei'q#ei'|#ei~O'}#ei~P(.kO'}#mO~P(.kOo:YO#O:YO#P:VOw#ni~P$1xOo:YO#O:YO#P:VOw#si~P$3yOQ'XXd'XX}'kX~Ow#zi~P#9vOw$Ui~P#9vOd9}O~Ow#ca~P#9vOd:uO~OU'x_'v'P'O'^s!y'^'T'Z~",goto:"$Ku(vPPPPPPP(wPP)OPP)^PPPP)d-hP0f5aP7R7R8v7R>wD_DpPDvHQPPPPPPK`P! P! _PPPPP!!VP!$oP!$oPP!&oP!(rP!(w!)n!*f!*f!*f!(w!+]P!(w!.Q!.TPP!.ZP!(w!(w!(w!(wP!(w!(wP!(w!(w!.y!/dP!/dJ}J}J}PPPP!/d!.y!/sPP!$oP!0^!0a!0g!1h!1t!3t!3t!5r!7t!1t!1t!9p!;_!=O!>k!@U!Am!CS!De!1t!1tP!1tP!1t!1t!Et!1tP!Ge!1t!1tP!Ie!1tP!1t!7t!7t!1t!7t!1t!Kl!Mt!Mw!7t!1t!Mz!M}!M}!M}!NR!$oP!$oP!$oP! P! PP!N]! P! PP!Ni# }! PP! PP#!^##c##k#$Z#$_#$e#$e#$mP#&s#&s#&y#'o#'{! PP! PP#(]#(l! PP! PPP#(x#)W#)d#)|#)^! P! PP! P! P! PP#*S#*S#*Y#*`#*S#*S! P! PP#*m#*v#+Q#+Q#,x#.l#.x#.x#.{#.{5a5a5a5a5a5a5a5aP5a#/O#/U#/p#1{#2R#2b#6^#6d#6j#6|#7W#8w#9R#9b#9h#9n#9x#:S#:Y#:g#:m#:s#:}#;]#;g#=u#>R#>`#>f#>n#>u#?PPPPPPPP#?V#BaP#F^#Jx#Ls#Nr$&^P$&aPPP$)_$)h$)z$/U$1d$1m$3fP!(w$4`$7r$:i$>T$>^$>c$>fPPP$>i$A`$A|P$BaPPPPPPPPPP$BvP$EU$EX$E[$Eb$Ee$Eh$Ek$En$Et$HO$HR$HU$HX$H[$H_$Hb$He$Hh$Hk$Hn$Jt$Jw$Jz#*S$KW$K^$Ka$Kd$Kh$Kl$Ko$KrQ!tPT'V!s'Wi!SOlm!P!T$T$W$y%b)U*f/gQ'i#QR,n'l(OSOY[bfgilmop!O!P!T!Y!Z![!_!`!c!p!q!|!}#Q#U#Z#e#o#p#q#r#s#t#u#v#w#x#y#z#}$T$W$`$a$e$g$h$q$r$y%X%_%b&U&Y&[&b&u&z&|'P'a'l'n'o'}(W(Y(b(d(e(f(j(o(p(r(|)S)U)i*Z*f*i*k*l+Z+n+z,q,s,z-R-T-g-m-t.}/^/b/d/g0e0g0m0}1P1h1r1|3_3a3f3h3k4W4c4h4v4|5[5g5t6]6a7S7^7g7m7{8W8X8k8|9U9h9s9t9u9v9w9x9z9{9|9}:O:P:Q:R:S:T:U:V:W:X:Y:Z:e:f:gS(z$v-oQ*p&eQ*t&hQ-k(yQ-y)ZW0Z+Q0Y4Z7UR4Y0[&w!RObfgilmop!O!P!T!Y!Z![!_!`!c!p#Q#e#o#p#q#r#s#t#u#v#w#x#y#z#}$T$W$e$g$h$q$r$y%_%b&U&Y&[&b&u'l'}(W(Y(b(f(j(o(p(r(|)S)U)i*Z*f*i*k*l+Z+n,s,z-T-g-m-t.}/^/b/d/g0e0g0m0}1h1r1|3_3a3f3h3k4W4c4h4v4|5[5g5t6]6a7S7^7g7m7{8W8X8k8|9U9h9u9v9w9x9z9{:O:P:Q:R:S:T:U:V:W:X:Y:Z:e:f#r]Ofgilmp!O!P!T!Z![#e#o#p#q#r#s#t#u#v#w#x#y#z#}$T$W%_%b&Y&['}(W(Y(|)i+n,s,z-m.}0}1h1|3_3a3k4W4v4|5g5t6]7S7g7{8W8X8k8|9U9hb#[b#Q$y'l(b)S)U*Z-t!h$bo!c!p$e$g$h$q$r&U&b&u(f(j(o(p(r*f*k+Z-T-g/b/d/g0e0g0m1r3f4c4h5[6a7^7m$b%k!Q!n$O$u%o%p%q%y%{&P&o&p&r'](q)s)x)y*O*P*R*V*[*^*e*n*w*x+U+V+h+o+}-i-v.U.`.p.t.x.y/Z/[/{/}0`0r0w1O1Y1Z1y2a2h2j2m2s2v3V3u3{3|4R4U4_4e4t5`5d5v6R6Y6p6v6x7c7r8g!W:y!Y!_!`*i*l/^3h9u9v9w9x9z9{:O:P:Q:R:S:T:U:V:W:X:Y:Z:e:fR:|%n$_%u!Q!n$O$u%o%p%q&P&o&p&r'](q)s)x)y*O*P*R*V*[*^*e*n*w*x+U+V+h+o+}-i-v.U.`.p.t.x.y/Z/[/{/}0`0r0w1O1Y1Z1y2a2h2j2m2s2v3V3u3{3|4R4U4_4e4t5`5d5v6R6Y6p6v6x7c7r8g$e%l!Q!n$O$u%n%o%p%q%y%{&P&o&p&r'](q)s)x)y*O*P*R*V*[*^*e*n*w*x+U+V+h+o+}-i-v.U.`.p.t.x.y/Z/[/{/}0`0r0w1O1Y1Z1y2a2h2j2m2s2v3V3u3{3|4R4U4_4e4t5`5d5v6R6Y6p6v6x7c7r8g'hZOY[fgilmop!O!P!T!Y!Z![!_!`!c!p!|!}#e#o#p#q#r#s#t#u#v#w#x#y#z#}$T$W$`$a$e$g$h$q$r%_%b%i%j&U&Y&[&b&u'a'}(W(Y(d(e(f(j(o(p(r(|)i)p)q*f*i*k*l+Z+n,s,z-R-T-g-m.i.}/^/b/d/g0e0g0m0}1h1r1|3_3a3f3h3k4W4c4h4v4|5[5g5t6]6a7S7^7g7m7{8W8X8k8|9U9h9s9t9u9v9w9x9z9{9|9}:O:P:Q:R:S:T:U:V:W:X:Y:Z:`:a:e:f:g:t:u:x$^%l!Q!n$O$u%n%o%p%q%y%{&P&p&r(q)s)x)y*O*P*R*V*[*^*e*n*w*x+U+V+h+o+}-i-v.U.`.p.t.x.y/Z/[/{/}0`0r0w1O1Y1y2a2h2j2m2s2v3V3u3{3|4R4U4_4e4t5`5d5v6R6Y6p6v6x7c7r8gQ&j!hQ&k!iQ&l!jQ&m!kQ&s!oQ)[%QQ)]%RQ)^%SQ)_%TQ)b%WQ+`&oS,R']1ZQ.W)`S/r*u4TR4n0s+yTOY[bfgilmop!O!P!Q!T!Y!Z![!_!`!c!n!p!q!|!}#Q#U#Z#e#o#p#q#r#s#t#u#v#w#x#y#z#}$O$T$W$`$a$e$g$h$q$r$u$y%X%_%b%i%j%n%o%p%q%y%{&P&U&Y&[&b&o&p&r&u&z&|'P']'a'l'n'o'}(W(Y(b(d(e(f(j(o(p(q(r(|)S)U)i)p)q)s)x)y*O*P*R*V*Z*[*^*e*f*i*k*l*n*w*x+U+V+Z+h+n+o+z+},q,s,z-R-T-g-i-m-t-v.U.`.i.p.t.x.y.}/Z/[/^/b/d/g/{/}0`0e0g0m0r0w0}1O1P1Y1Z1h1r1y1|2a2h2j2m2s2v3V3_3a3f3h3k3u3{3|4R4U4W4_4c4e4h4t4v4|5[5`5d5g5t5v6R6Y6]6a6p6v6x7S7^7c7g7m7r7{8W8X8g8k8|9U9h9s9t9u9v9w9x9z9{9|9}:O:P:Q:R:S:T:U:V:W:X:Y:Z:`:a:e:f:g:t:u:xQ'[!xQ'h#PQ)l%gU)r%m*T*WR.f)kQ,T']R5P1Z#t%s!Q!n$O$u%p%q&P&p&r(q)x)y*O*R*V*[*^*e*n*w+V+h+o+}-i-v.U.`.t.x.y/Z/[/{/}0`0r0w1O1Y1y2a2h2j2m2v3V3u3{3|4U4e4t5`5d5v6R6Y6p6v6x7c7r8gQ)x%oQ+_&oQ,U']n,^'b'c'd,c,f,h,l/m/n1_3n3q5T5U7kS.q)s2sQ/O*PQ/Q*SQ/q*uS0Q*x4RQ0a+U[0o+Z.j0g4h5y7^Q2v.pS4d0e2rQ4m0sQ5Q1ZQ6T3RQ6z4PQ7O4TQ7X4_R9Y8h&jVOfgilmop!O!P!T!Y!Z![!_!`!c!p#e#o#p#q#r#s#t#u#v#w#x#y#z#}$T$W$e$g$h$q$r%_%b&U&Y&[&b&u']'}(W(Y(b(f(j(o(p(r(|)i*f*i*k*l+Z+n,s,z-T-g-m.}/^/b/d/g0e0g0m0}1Z1h1r1|3_3a3f3h3k4W4c4h4v4|5[5g5t6]6a7S7^7g7m7{8W8X8k8|9U9h9u9v9w9x9z9{:O:P:Q:R:S:T:U:V:W:X:Y:Z:e:fU&g!g%P%[o,^'b'c'd,c,f,h,l/m/n1_3n3q5T5U7k$nsOfgilm!O!P!T!Y!Z![!_!`#e#o#p#q#r#s#t#u#v#w#x#y#z#}$T$W%_%b&Y'}(W(Y(|)i*i*l+n,s,z-m.}/^0}1h1|3_3a3h3k4W4v4|5g5t6]7S7g7{8W8X8k8|9U9h9u9v9z9{:O:P:Q:R:S:T:U:V:W:X:Y:eS$tp9xS&O!W#bS&Q!X#cQ&`!bQ*_&RQ*a&VS*d&[:fQ*h&^Q,T']Q-j(wQ/i*jQ0p+[S2f.X0qQ3]/_Q3^/`Q3g/hQ3i/kQ5P1ZU5b2R2g4lU7o5c5e5rQ8]6dS8u7p7qS9_8v8wR9i9`i{Ob!O!P!T$y%_%b)S)U)i-thxOb!O!P!T$y%_%b)S)U)i-tW/v*v/t3w6qQ/}*wW0[+Q0Y4Z7UQ3{/{Q6x3|R8g6v!h$do!c!p$e$g$h$q$r&U&b&u(f(j(o(p(r*f*k+Z-T-g/b/d/g0e0g0m1r3f4c4h5[6a7^7mQ&d!dQ&f!fQ&n!mW&x!q%X&|1PQ'S!rQ)X$}Q)Y%OQ)a%VU)d%Y'T'UQ*s&hS+s&z'PS-Y(k1sQ-u)WQ-x)ZS.a)e)fS0x+c/sQ1S+zQ1W+{S1v-_-`Q2k.bQ3s/pQ5]1xR5h2V${sOfgilmp!O!P!T!Y!Z![!_!`#e#o#p#q#r#s#t#u#v#w#x#y#z#}$T$W%_%b&Y&['}(W(Y(|)i*i*l+n,s,z-m.}/^0}1h1|3_3a3h3k4W4v4|5g5t6]7S7g7{8W8X8k8|9U9h9u9v9w9x9z9{:O:P:Q:R:S:T:U:V:W:X:Y:Z:e:f$zsOfgilmp!O!P!T!Y!Z![!_!`#e#o#p#q#r#s#t#u#v#w#x#y#z#}$T$W%_%b&Y&['}(W(Y(|)i*i*l+n,s,z-m.}/^0}1h1|3_3a3h3k4W4v4|5g5t6]7S7g7{8W8X8k8|9U9h9u9v9w9x9z9{:O:P:Q:R:S:T:U:V:W:X:Y:Z:e:fR3]/_V&T!Y!`*i!i$lo!c!p$e$g$h$q$r&U&b&u(f(j(o(p(r*f*k+Z-T-g/b/d/g0e0g0m1r3f4c4h5[6a7^7m!k$^o!c!p$e$g$h$q$r&U&b&u(b(f(j(o(p(r*f*k+Z-T-g/b/d/g0e0g0m1r3f4c4h5[6a7^7m!i$co!c!p$e$g$h$q$r&U&b&u(f(j(o(p(r*f*k+Z-T-g/b/d/g0e0g0m1r3f4c4h5[6a7^7m&e^Ofgilmop!O!P!T!Y!Z![!_!`!c!p#e#o#p#q#r#s#t#u#v#w#x#y#z#}$T$W$e$g$h$q$r%_%b&U&Y&[&b&u'}(W(Y(f(j(o(p(r(|)i*f*i*k*l+Z+n,s,z-T-g-m.}/^/b/d/g0e0g0m0}1h1r1|3_3a3f3h3k4W4c4h4v4|5[5g5t6]6a7S7^7g7m7{8W8X8k8|9U9h9u9v9w9x9z9{:O:P:Q:R:S:T:U:V:W:X:Y:Z:e:fR(l$fQ-[(kR5Y1sQ(S#|S({$v-oS-Z(k1sQ-l(yW/u*v/t3w6qS1w-_-`Q3v/vR5^1xQ'e#Or,e'b'c'd'j'p)u,c,f,h,l/m/n1_3n3q5U6fR,o'mk,a'b'c'd,c,f,h,l/m/n1_3n3q5UQ'f#Or,e'b'c'd'j'p)u,c,f,h,l/m/n1_3n3q5U6fR,p'mR*g&]X/c*f/d/g3f!}aOb!O!P!T#z$v$y%_%b'}(y)S)U)i)s*f*v*w+Q+Z,s-o-t.j/b/d/g/t/{0Y0g1h2s3f3w3|4Z4h5y6a6q6v7U7^Q3`/aQ6_3bQ8Y6`R9V8Z${rOfgilmp!O!P!T!Y!Z![!_!`#e#o#p#q#r#s#t#u#v#w#x#y#z#}$T$W%_%b&Y&['}(W(Y(|)i*i*l+n,s,z-m.}/^0}1h1|3_3a3h3k4W4v4|5g5t6]7S7g7{8W8X8k8|9U9h9u9v9w9x9z9{:O:P:Q:R:S:T:U:V:W:X:Y:Z:e:f#nfOfglmp!O!P!T!Z![#e#o#p#q#r#s#t#u#v#w#x#z#}$T$W%_%b&Y&['}(W(Y(|)i+n,s,z-m.}0}1h1|3_3a3k4W4v4|5g5t6]7S7g7{8W8X8k8|9U9h!T9u!Y!_!`*i*l/^3h9u9v9x9z9{:O:P:Q:R:S:T:U:V:W:X:Y:e:f#rfOfgilmp!O!P!T!Z![#e#o#p#q#r#s#t#u#v#w#x#y#z#}$T$W%_%b&Y&['}(W(Y(|)i+n,s,z-m.}0}1h1|3_3a3k4W4v4|5g5t6]7S7g7{8W8X8k8|9U9h!X9u!Y!_!`*i*l/^3h9u9v9w9x9z9{:O:P:Q:R:S:T:U:V:W:X:Y:Z:e:f$srOfglmp!O!P!T!Y!Z![!_!`#e#o#p#q#r#s#t#u#v#w#x#z#}$T$W%_%b&Y&['}(W(Y(|)i*i*l+n,s,z-m.}/^0}1h1|3_3a3h3k4W4v4|5g5t6]7S7g7{8W8X8k8|9U9h9u9v9x9z9{:O:P:Q:R:S:T:U:V:W:X:Y:e:f#U#oh#d$P$Q$V$s%^&W&X'q't'u'v'w'x'y'z'{'|(O(U([(`*b*c,r,w,y-n0z1i1l1}3P4w5V5a6^6e7R7e7h7s7y8j8q8{9[9b}:P&S&]/k3[6d:[:]:c:d:h:j:k:l:m:n:o:p:q:r:v:w:{#W#ph#d$P$Q$V$s%^&W&X'q'r't'u'v'w'x'y'z'{'|(O(U([(`*b*c,r,w,y-n0z1i1l1}3P4w5V5a6^6e7R7e7h7s7y8j8q8{9[9b!P:Q&S&]/k3[6d:[:]:c:d:h:i:j:k:l:m:n:o:p:q:r:v:w:{#S#qh#d$P$Q$V$s%^&W&X'q'u'v'w'x'y'z'{'|(O(U([(`*b*c,r,w,y-n0z1i1l1}3P4w5V5a6^6e7R7e7h7s7y8j8q8{9[9b{:R&S&]/k3[6d:[:]:c:d:h:k:l:m:n:o:p:q:r:v:w:{#Q#rh#d$P$Q$V$s%^&W&X'q'v'w'x'y'z'{'|(O(U([(`*b*c,r,w,y-n0z1i1l1}3P4w5V5a6^6e7R7e7h7s7y8j8q8{9[9by:S&S&]/k3[6d:[:]:c:d:h:l:m:n:o:p:q:r:v:w:{#O#sh#d$P$Q$V$s%^&W&X'q'w'x'y'z'{'|(O(U([(`*b*c,r,w,y-n0z1i1l1}3P4w5V5a6^6e7R7e7h7s7y8j8q8{9[9bw:T&S&]/k3[6d:[:]:c:d:h:m:n:o:p:q:r:v:w:{!|#th#d$P$Q$V$s%^&W&X'q'x'y'z'{'|(O(U([(`*b*c,r,w,y-n0z1i1l1}3P4w5V5a6^6e7R7e7h7s7y8j8q8{9[9bu:U&S&]/k3[6d:[:]:c:d:h:n:o:p:q:r:v:w:{!x#vh#d$P$Q$V$s%^&W&X'q'z'{'|(O(U([(`*b*c,r,w,y-n0z1i1l1}3P4w5V5a6^6e7R7e7h7s7y8j8q8{9[9bq:W&S&]/k3[6d:[:]:c:d:h:p:q:r:v:w:{!v#wh#d$P$Q$V$s%^&W&X'q'{'|(O(U([(`*b*c,r,w,y-n0z1i1l1}3P4w5V5a6^6e7R7e7h7s7y8j8q8{9[9bo:X&S&]/k3[6d:[:]:c:d:h:q:r:v:w:{$]#{h#`#d$P$Q$V$s%^&S&W&X&]'q'r's't'u'v'w'x'y'z'{'|(O(U([(`*b*c,r,w,y-n/k0z1i1l1}3P3[4w5V5a6^6d6e7R7e7h7s7y8j8q8{9[9b:[:]:c:d:h:i:j:k:l:m:n:o:p:q:r:v:w:{${jOfgilmp!O!P!T!Y!Z![!_!`#e#o#p#q#r#s#t#u#v#w#x#y#z#}$T$W%_%b&Y&['}(W(Y(|)i*i*l+n,s,z-m.}/^0}1h1|3_3a3h3k4W4v4|5g5t6]7S7g7{8W8X8k8|9U9h9u9v9w9x9z9{:O:P:Q:R:S:T:U:V:W:X:Y:Z:e:f$v!aOfgilmp!O!P!T!Y!Z!_!`#e#o#p#q#r#s#t#u#v#w#x#y#z#}$T$W%_%b&Y&['}(W(Y(|)i*i*l+n,s,z-m.}/^0}1h1|3_3a3h3k4W4v4|5g5t6]7S7g7{8W8X8k8|9U9h9u9v9w9x9z:O:P:Q:R:S:T:U:V:W:X:Y:Z:e:fQ&Y![Q&Z!]R:e9{#rpOfgilmp!O!P!T!Z![#e#o#p#q#r#s#t#u#v#w#x#y#z#}$T$W%_%b&Y&['}(W(Y(|)i+n,s,z-m.}0}1h1|3_3a3k4W4v4|5g5t6]7S7g7{8W8X8k8|9U9hQ&[!^!W9x!Y!_!`*i*l/^3h9u9v9w9x9z9{:O:P:Q:R:S:T:U:V:W:X:Y:Z:e:fR:f:zR$moR-f(rR$wqT(}$v-oQ/f*fS3d/d/gR6c3fQ3m/mQ3p/nQ6i3nR6l3qQ$zwQ)V${Q*q&fQ+f&qQ+i&sQ-w)YW.Z)b+j+k+lS/X*]+gW2b.W.[.].^U3W/Y/]0yU5o2c2d2eS6W3X3ZS7w5p5qS8Q6V6XQ8y7xS8}8R8SR9c9O^|O!O!P!T%_%b)iX)R$y)S)U-tQ&r!nQ*^&PQ*|&jQ+P&kQ+T&lQ+W&mQ+]&nQ+l&sQ-})[Q.Q)]Q.T)^Q.V)_Q.Y)aQ.^)bQ2S-uQ2e.WR4U0VU+a&o*u4TR4o0sQ+Y&mQ+k&sS.])b+l^0v+_+`/q/r4m4n7OS2d.W.^S4Q0R0SR5q2eS0R*x4RQ0a+UR7X4_U+d&o*u4TR4p0sQ*z&jQ+O&kQ+S&lQ+g&qQ+j&sS-{)[*|S.P)]+PS.S)^+TU.[)b+k+lQ/Y*]Q0X*{Q0q+[Q2X-|Q2Y-}Q2].QQ2_.TU2c.W.].^Q2g.XS3Z/]0yS5c2R4lQ5j2ZS5p2d2eQ6X3XS7q5e5rQ7x5qQ8R6VQ8v7pQ9O8SR9`8wQ0T*xR6|4RQ*y&jQ*}&kU-z)[*z*|U.O)]+O+PS2W-{-}S2[.P.QQ4X0ZQ5i2YQ5k2]R7T4YQ/w*vQ3t/tQ6r3wR8d6qQ*{&jS-|)[*|Q2Z-}Q4X0ZR7T4YQ+R&lU.R)^+S+TS2^.S.TR5l2_Q0]+QQ4V0YQ7V4ZR8l7UQ+[&nS.X)a+]S2R-u.YR5e2SQ0i+ZQ4f0gQ7`4hR8m7^Q.m)sQ0i+ZQ2p.jQ4f0gQ5|2sQ7`4hQ7}5yR8m7^Q0i+ZR4f0gX'O!q%X&|1PX&{!q%X&|1PW'O!q%X&|1PS+u&z'PR1U+z_|O!O!P!T%_%b)iQ%a!PS)h%_%bR.d)i$^%u!Q!n$O$u%o%p%q&P&o&p&r'](q)s)x)y*O*P*R*V*[*^*e*n*w*x+U+V+h+o+}-i-v.U.`.p.t.x.y/Z/[/{/}0`0r0w1O1Y1Z1y2a2h2j2m2s2v3V3u3{3|4R4U4_4e4t5`5d5v6R6Y6p6v6x7c7r8gQ*U%yR*X%{$c%n!Q!n$O$u%o%p%q%y%{&P&o&p&r'](q)s)x)y*O*P*R*V*[*^*e*n*w*x+U+V+h+o+}-i-v.U.`.p.t.x.y/Z/[/{/}0`0r0w1O1Y1Z1y2a2h2j2m2s2v3V3u3{3|4R4U4_4e4t5`5d5v6R6Y6p6v6x7c7r8gW)t%m%x*T*WQ.e)jR2{.vR.m)sR5|2sQ'W!sR,O'WQ!TOQ$TlQ$WmQ%b!P[%|!T$T$W%b)U/gQ)U$yR/g*f$b%i!Q!n$O$u%o%p%q%y%{&P&o&p&r'](q)s)x)y*O*P*R*V*[*^*e*n*w*x+U+V+h+o+}-i-v.U.`.p.t.x.y/Z/[/{/}0`0r0w1O1Y1Z1y2a2h2j2m2s2v3V3u3{3|4R4U4_4e4t5`5d5v6R6Y6p6v6x7c7r8g[)n%i)p.i:`:t:xQ)p%jQ.i)qQ:`%nQ:t:aR:x:uQ!vUR'Y!vS!OO!TU%]!O%_)iQ%_!PR)i%b#rYOfgilmp!O!P!T!Z![#e#o#p#q#r#s#t#u#v#w#x#y#z#}$T$W%_%b&Y&['}(W(Y(|)i+n,s,z-m.}0}1h1|3_3a3k4W4v4|5g5t6]7S7g7{8W8X8k8|9U9hh!yY!|#U$`'a'n(d,q-R9s9|:gQ!|[b#Ub#Q$y'l(b)S)U*Z-t!h$`o!c!p$e$g$h$q$r&U&b&u(f(j(o(p(r*f*k+Z-T-g/b/d/g0e0g0m1r3f4c4h5[6a7^7mQ'a!}Q'n#ZQ(d$aQ,q'oQ-R(e!W9s!Y!_!`*i*l/^3h9u9v9w9x9z9{:O:P:Q:R:S:T:U:V:W:X:Y:Z:e:fQ9|9tR:g9}Q-U(gR1p-UQ1t-[R5Z1tQ,c'bQ,f'cQ,h'dW1`,c,f,h5UR5U1_Q/d*fS3c/d3fR3f/gfbO!O!P!T$y%_%b)S)U)i-tp#Wb'}(y.j/b/t/{0Y0g1h5y6a6q6v7U7^Q'}#zS(y$v-oQ.j)sW/b*f/d/g3fQ/t*vQ/{*wQ0Y+QQ0g+ZQ1h,sQ5y2sQ6q3wQ6v3|Q7U4ZR7^4hQ,t(OQ1g,rT1j,t1gS(X$Q([Q(^$VU,x(X(^,}R,}(`Q(s$mR-h(sQ-p)OR2P-pQ3n/mQ3q/nT6j3n3qQ)S$yS-r)S-tR-t)UQ4`0aR7Y4``0t+^+_+`+a+d/q/r7OR4q0tQ8i6zR9Z8iQ4S0TR6}4SQ3x/wQ6n3tT6s3x6nQ3}/|Q6t3zU6y3}6t8eR8e6uQ4[0]Q7Q4VT7W4[7QhzOb!O!P!T$y%_%b)S)U)i-tQ$|xW%Zz$|%f)v$b%f!Q!n$O$u%o%p%q%y%{&P&o&p&r'](q)s)x)y*O*P*R*V*[*^*e*n*w*x+U+V+h+o+}-i-v.U.`.p.t.x.y/Z/[/{/}0`0r0w1O1Y1Z1y2a2h2j2m2s2v3V3u3{3|4R4U4_4e4t5`5d5v6R6Y6p6v6x7c7r8gR)v%nS4i0i0nS7]4f4gT7b4i7]W&z!q%X&|1PS+r&z+zR+z'PQ1Q+wR4z1QU1[,S,T,UR5R1[S3S/Q7OR6U3SQ2t.mQ5x2pT5}2t5xQ.z)zR3O.z^_O!O!P!T%_%b)iY#Xb$y)S)U-t$l#_fgilmp!Y!Z![!_!`#e#o#p#q#r#s#t#u#v#w#x#y#z#}$T$W&Y&['}(W(Y(|*i*l+n,s,z-m.}/^0}1h1|3_3a3h3k4W4v4|5g5t6]7S7g7{8W8X8k8|9U9h9u9v9w9x9z9{:O:P:Q:R:S:T:U:V:W:X:Y:Z:e:f!h$io!c!p$e$g$h$q$r&U&b&u(f(j(o(p(r*f*k+Z-T-g/b/d/g0e0g0m1r3f4c4h5[6a7^7mS'j#Q'lQ-P(bR/V*Z&v!RObfgilmop!O!P!T!Y!Z![!_!`!c!p#Q#e#o#p#q#r#s#t#u#v#w#x#y#z#}$T$W$e$g$h$q$r$y%_%b&U&Y&[&b&u'l'}(W(Y(b(f(j(o(p(r(|)S)U)i*Z*f*i*k*l+Z+n,s,z-T-g-m-t.}/^/b/d/g0e0g0m0}1h1r1|3_3a3f3h3k4W4c4h4v4|5[5g5t6]6a7S7^7g7m7{8W8X8k8|9U9h9u9v9w9x9z9{:O:P:Q:R:S:T:U:V:W:X:Y:Z:e:f[!{Y[#U#Z9s9tW&{!q%X&|1P['`!|!}'n'o9|9}S(c$`$aS+t&z'PU,X'a,q:gS-Q(d(eQ1T+zR1n-RS%t!Q&oQ&q!nQ(V$OQ(w$uS)w%o.pQ)z%pQ)}%qS*]&P&rQ+e&pQ,S']Q-d(qQ.l)sU.w)x)y2vS/O*O*PQ/P*RQ/T*VQ/W*[Q/]*^Q/`*eQ/l*nQ/|*wS0S*x4RQ0a+UQ0c+VQ0y+hQ0{+oQ1X+}Q1{-iQ2T-vQ2`.UQ2i.`Q2z.tQ2|.xQ2}.yQ3X/ZQ3Y/[S3z/{/}Q4^0`Q4l0rQ4s0wQ4x1OQ4}1YQ5O1ZQ5_1yQ5n2aQ5r2hQ5u2jQ5w2mQ5{2sQ6V3VQ6o3uQ6u3{Q6w3|Q7P4UQ7X4_Q7[4eQ7d4tQ7n5`Q7p5dQ7|5vQ8P6RQ8S6YQ8c6pS8f6v6xQ8o7cQ8w7rR9X8g$^%m!Q!n$O$u%o%p%q&P&o&p&r'](q)s)x)y*O*P*R*V*[*^*e*n*w*x+U+V+h+o+}-i-v.U.`.p.t.x.y/Z/[/{/}0`0r0w1O1Y1Z1y2a2h2j2m2s2v3V3u3{3|4R4U4_4e4t5`5d5v6R6Y6p6v6x7c7r8gQ)j%nQ*T%yR*W%{$y%h!Q!n$O$u%i%j%n%o%p%q%y%{&P&o&p&r'](q)p)q)s)x)y*O*P*R*V*[*^*e*n*w*x+U+V+h+o+}-i-v.U.`.i.p.t.x.y/Z/[/{/}0`0r0w1O1Y1Z1y2a2h2j2m2s2v3V3u3{3|4R4U4_4e4t5`5d5v6R6Y6p6v6x7c7r8g:`:a:t:u:x'pWOY[bfgilmop!O!P!T!Y!Z![!_!`!c!p!|!}#Q#U#Z#e#o#p#q#r#s#t#u#v#w#x#y#z#}$T$W$`$a$e$g$h$q$r$y%_%b&U&Y&[&b&u'a'l'n'o'}(W(Y(b(d(e(f(j(o(p(r(|)S)U)i*Z*f*i*k*l+Z+n,q,s,z-R-T-g-m-t.}/^/b/d/g0e0g0m0}1h1r1|3_3a3f3h3k4W4c4h4v4|5[5g5t6]6a7S7^7g7m7{8W8X8k8|9U9h9s9t9u9v9w9x9z9{9|9}:O:P:Q:R:S:T:U:V:W:X:Y:Z:e:f:g$x%g!Q!n$O$u%i%j%n%o%p%q%y%{&P&o&p&r'](q)p)q)s)x)y*O*P*R*V*[*^*e*n*w*x+U+V+h+o+}-i-v.U.`.i.p.t.x.y/Z/[/{/}0`0r0w1O1Y1Z1y2a2h2j2m2s2v3V3u3{3|4R4U4_4e4t5`5d5v6R6Y6p6v6x7c7r8g:`:a:t:u:x_&y!q%X&z&|'P+z1PR,V']$zrOfgilmp!O!P!T!Y!Z![!_!`#e#o#p#q#r#s#t#u#v#w#x#y#z#}$T$W%_%b&Y&['}(W(Y(|)i*i*l+n,s,z-m.}/^0}1h1|3_3a3h3k4W4v4|5g5t6]7S7g7{8W8X8k8|9U9h9u9v9w9x9z9{:O:P:Q:R:S:T:U:V:W:X:Y:Z:e:f!j$]o!c!p$e$g$h$q$r&U&b&u(b(f(j(o(p(r*f*k+Z-T-g/b/d/g0e0g0m1r3f4c4h5[6a7^7mQ,T']R5P1Z_}O!O!P!T%_%b)i^|O!O!P!T%_%b)iQ#YbX)R$y)S)U-tbhO!O!T3_6]8W8X9U9hS#`f9uQ#dgQ$PiQ$QlQ$VmQ$spW%^!P%_%b)iU&S!Y!`*iQ&W!ZQ&X![Q&]!_Q'q#eQ'r#oS's#p:QQ't#qQ'u#rQ'v#sQ'w#tQ'x#uQ'y#vQ'z#wQ'{#xQ'|#yQ(O#zQ(U#}Q([$TQ(`$WQ*b&YQ*c&[Q,r'}Q,w(WQ,y(YQ-n(|Q/k*lQ0z+nQ1i,sQ1l,zQ1}-mQ3P.}Q3[/^Q4w0}Q5V1hQ5a1|Q6^3aQ6d3hQ6e3kQ7R4WQ7e4vQ7h4|Q7s5gQ7y5tQ8j7SQ8q7gQ8{7{Q9[8kQ9b8|Q:[9wQ:]9xQ:c9zQ:d9{Q:h:OQ:i:PQ:j:RQ:k:SQ:l:TQ:m:UQ:n:VQ:o:WQ:p:XQ:q:YQ:r:ZQ:v:eQ:w:fR:{9v^tO!O!P!T%_%b)i$`#afgilmp!Y!Z![!_!`#e#o#p#q#r#s#t#u#v#w#x#y#z#}$T$W&Y&['}(W(Y(|*i*l+n,s,z-m.}/^0}1h1|3a3h3k4W4v4|5g5t7S7g7{8k8|9u9v9w9x9z9{:O:P:Q:R:S:T:U:V:W:X:Y:Z:e:fQ6[3_Q8V6]Q9R8WQ9T8XQ9g9UR9m9hQ&V!YQ&^!`R/h*iQ$joQ&a!cQ&t!pU(g$e$g(jS(n$h0eQ(u$qQ(v$rQ*`&UQ*m&bQ+p&uQ-S(fS-b(o4cQ-c(pQ-e(rW/a*f/d/g3fQ/j*kW0f+Z0g4h7^Q1o-TQ1z-gQ3b/bQ4k0mQ5X1rQ7l5[Q8Z6aR8t7m!h$_o!c!p$e$g$h$q$r&U&b&u(f(j(o(p(r*f*k+Z-T-g/b/d/g0e0g0m1r3f4c4h5[6a7^7mR-P(b'qXOY[bfgilmop!O!P!T!Y!Z![!_!`!c!p!|!}#Q#U#Z#e#o#p#q#r#s#t#u#v#w#x#y#z#}$T$W$`$a$e$g$h$q$r$y%_%b&U&Y&[&b&u'a'l'n'o'}(W(Y(b(d(e(f(j(o(p(r(|)S)U)i*Z*f*i*k*l+Z+n,q,s,z-R-T-g-m-t.}/^/b/d/g0e0g0m0}1h1r1|3_3a3f3h3k4W4c4h4v4|5[5g5t6]6a7S7^7g7m7{8W8X8k8|9U9h9s9t9u9v9w9x9z9{9|9}:O:P:Q:R:S:T:U:V:W:X:Y:Z:e:f:g$zqOfgilmp!O!P!T!Y!Z![!_!`#e#o#p#q#r#s#t#u#v#w#x#y#z#}$T$W%_%b&Y&['}(W(Y(|)i*i*l+n,s,z-m.}/^0}1h1|3_3a3h3k4W4v4|5g5t6]7S7g7{8W8X8k8|9U9h9u9v9w9x9z9{:O:P:Q:R:S:T:U:V:W:X:Y:Z:e:f!i$fo!c!p$e$g$h$q$r&U&b&u(f(j(o(p(r*f*k+Z-T-g/b/d/g0e0g0m1r3f4c4h5[6a7^7m&d^Ofgilmop!O!P!T!Y!Z![!_!`!c!p#e#o#p#q#r#s#t#u#v#w#x#y#z#}$T$W$e$g$h$q$r%_%b&U&Y&[&b&u'}(W(Y(f(j(o(p(r(|)i*f*i*k*l+Z+n,s,z-T-g-m.}/^/b/d/g0e0g0m0}1h1r1|3_3a3f3h3k4W4c4h4v4|5[5g5t6]6a7S7^7g7m7{8W8X8k8|9U9h9u9v9w9x9z9{:O:P:Q:R:S:T:U:V:W:X:Y:Z:e:f[!zY[$`$a9s9t['_!|!}(d(e9|9}W)o%i%j:`:aU,W'a-R:gW.h)p)q:t:uT2o.i:xQ(i$eQ(m$gR-W(jV(h$e$g(jR-^(kR-](k$znOfgilmp!O!P!T!Y!Z![!_!`#e#o#p#q#r#s#t#u#v#w#x#y#z#}$T$W%_%b&Y&['}(W(Y(|)i*i*l+n,s,z-m.}/^0}1h1|3_3a3h3k4W4v4|5g5t6]7S7g7{8W8X8k8|9U9h9u9v9w9x9z9{:O:P:Q:R:S:T:U:V:W:X:Y:Z:e:f!i$ko!c!p$e$g$h$q$r&U&b&u(f(j(o(p(r*f*k+Z-T-g/b/d/g0e0g0m1r3f4c4h5[6a7^7mS'g#O'pj,a'b'c'd,c,f,h,l/m/n1_3n3q5UQ,m'jQ.u)uR8_6f`,b'b'c'd,c,f,h1_5UQ1e,lX3l/m/n3n3qj,a'b'c'd,c,f,h,l/m/n1_3n3q5UQ7j5TR8s7k^uO!O!P!T%_%b)i$`#afgilmp!Y!Z![!_!`#e#o#p#q#r#s#t#u#v#w#x#y#z#}$T$W&Y&['}(W(Y(|*i*l+n,s,z-m.}/^0}1h1|3a3h3k4W4v4|5g5t7S7g7{8k8|9u9v9w9x9z9{:O:P:Q:R:S:T:U:V:W:X:Y:Z:e:fQ6Z3_Q8U6]Q9Q8WQ9S8XQ9f9UR9l9hR(Q#zR(P#zQ$SlR(]$TR$ooR$noR)Q$vR)P$vQ)O$vR2O-ohwOb!O!P!T$y%_%b)S)U)i-t$l!lz!Q!n$O$u$|%f%n%o%p%q%y%{&P&o&p&r'](q)s)v)x)y*O*P*R*V*[*^*e*n*w*x+U+V+h+o+}-i-v.U.`.p.t.x.y/Z/[/{/}0`0r0w1O1Y1Z1y2a2h2j2m2s2v3V3u3{3|4R4U4_4e4t5`5d5v6R6Y6p6v6x7c7r8gR${xR0b+UR0W*xR0U*xR6{4PR/y*vR/x*vR0P*wR0O*wR0_+QR0^+Q%XyObxz!O!P!Q!T!n$O$u$y$|%_%b%f%n%o%p%q%y%{&P&o&p&r'](q)S)U)i)s)v)x)y*O*P*R*V*[*^*e*n*w*x+U+V+h+o+}-i-t-v.U.`.p.t.x.y/Z/[/{/}0`0r0w1O1Y1Z1y2a2h2j2m2s2v3V3u3{3|4R4U4_4e4t5`5d5v6R6Y6p6v6x7c7r8gR0k+ZR0j+ZQ'R!qQ)c%XQ+w&|R4y1PX'Q!q%X&|1PR+y&|R+x&|T/S*S4TT/R*S4TR.o)sR.n)sR){%p",nodeNames:"\u26A0 | < > RawString Float LineComment BlockComment SourceFile ] InnerAttribute ! [ MetaItem self Metavariable super crate Identifier ScopedIdentifier :: QualifiedScope AbstractType impl SelfType MetaType TypeIdentifier ScopedTypeIdentifier ScopeIdentifier TypeArgList TypeBinding = Lifetime String Escape Char Boolean Integer } { Block ; ConstItem Vis pub ( in ) const BoundIdentifier : UnsafeBlock unsafe AsyncBlock async move IfExpression if LetDeclaration let LiteralPattern ArithOp MetaPattern SelfPattern ScopedIdentifier TuplePattern ScopedTypeIdentifier , StructPattern FieldPatternList FieldPattern ref mut FieldIdentifier .. RefPattern SlicePattern CapturedPattern ReferencePattern & MutPattern RangePattern ... OrPattern MacroPattern ParenthesizedTokens TokenBinding Identifier TokenRepetition ArithOp BitOp LogicOp UpdateOp CompareOp -> => ArithOp BracketedTokens BracedTokens _ else MatchExpression match MatchBlock MatchArm Attribute Guard UnaryExpression ArithOp DerefOp LogicOp ReferenceExpression TryExpression BinaryExpression ArithOp ArithOp BitOp BitOp BitOp BitOp LogicOp LogicOp AssignmentExpression TypeCastExpression as ReturnExpression return RangeExpression CallExpression ArgList AwaitExpression await FieldExpression GenericFunction BreakExpression break LoopLabel ContinueExpression continue IndexExpression ArrayExpression TupleExpression MacroInvocation UnitExpression ClosureExpression ParamList Parameter Parameter ParenthesizedExpression StructExpression FieldInitializerList ShorthandFieldInitializer FieldInitializer BaseFieldInitializer MatchArm WhileExpression while LoopExpression loop ForExpression for MacroInvocation MacroDefinition macro_rules MacroRule EmptyStatement ModItem mod DeclarationList AttributeItem ForeignModItem extern StructItem struct TypeParamList ConstrainedTypeParameter TraitBounds HigherRankedTraitBound RemovedTraitBound OptionalTypeParameter ConstParameter WhereClause where LifetimeClause TypeBoundClause FieldDeclarationList FieldDeclaration OrderedFieldDeclarationList UnionItem union EnumItem enum EnumVariantList EnumVariant TypeItem type FunctionItem default fn ParamList Parameter SelfParameter VariadicParameter VariadicParameter ImplItem TraitItem trait AssociatedType LetDeclaration UseDeclaration use ScopedIdentifier UseAsClause ScopedIdentifier UseList ScopedUseList UseWildcard ExternCrateDeclaration StaticItem static ExpressionStatement ExpressionStatement GenericType FunctionType ForLifetimes ParamList VariadicParameter Parameter VariadicParameter Parameter ReferenceType PointerType TupleType UnitType ArrayType MacroInvocation EmptyType DynamicType dyn BoundedType",maxTerm:359,nodeProps:[["isolate",-4,4,6,7,33,""],["group",-42,4,5,14,15,16,17,18,19,33,35,36,37,40,51,53,56,101,107,111,112,113,122,123,125,127,128,130,132,133,134,137,139,140,141,142,143,144,148,149,155,157,159,"Expression",-16,22,24,25,26,27,222,223,230,231,232,233,234,235,236,237,239,"Type",-20,42,161,162,165,166,169,170,172,188,190,194,196,204,205,207,208,209,217,218,220,"Statement",-17,49,60,62,63,64,65,68,74,75,76,77,78,80,81,83,84,99,"Pattern"],["openedBy",9,"[",38,"{",47,"("],["closedBy",12,"]",39,"}",45,")"]],propSources:[s0],skippedNodes:[0,6,7,240],repeatNodeCount:32,tokenData:"$%h_R!XOX$nXY5gYZ6iZ]$n]^5g^p$npq5gqr7Xrs9cst:Rtu;Tuv>vvwAQwxCbxy!+Tyz!,Vz{!-X{|!/_|}!0g}!O!1i!O!P!3v!P!Q!8[!Q!R!Bw!R![!Dr![!]#+q!]!^#-{!^!_#.}!_!`#1b!`!a#3o!a!b#6S!b!c#7U!c!}#8W!}#O#:T#O#P#;V#P#Q#Cb#Q#R#Dd#R#S#8W#S#T$n#T#U#8W#U#V#El#V#f#8W#f#g#Ic#g#o#8W#o#p$ S#p#q$!U#q#r$$f#r${$n${$|#8W$|4w$n4w5b#8W5b5i$n5i6S#8W6S;'S$n;'S;=`4s<%lO$nU$u]'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$nU%uV'_Q'OSOz&[z{&v{!P&[!P!Q'x!Q;'S&[;'S;=`*s<%lO&[S&aV'OSOz&[z{&v{!P&[!P!Q'x!Q;'S&[;'S;=`*s<%lO&[S&yVOz'`z{&v{!P'`!P!Q*y!Q;'S'`;'S;=`*m<%lO'`S'cVOz&[z{&v{!P&[!P!Q'x!Q;'S&[;'S;=`*s<%lO&[S'{UOz'`{!P'`!P!Q(_!Q;'S'`;'S;=`*m<%lO'`S(bUOz(t{!P(t!P!Q(_!Q;'S(t;'S;=`*a<%lO(tS(wVOz)^z{)z{!P)^!P!Q(_!Q;'S)^;'S;=`*g<%lO)^S)eV'PS'OSOz)^z{)z{!P)^!P!Q(_!Q;'S)^;'S;=`*g<%lO)^S)}UOz(tz{)z{!P(t!Q;'S(t;'S;=`*a<%lO(tS*dP;=`<%l(tS*jP;=`<%l)^S*pP;=`<%l'`S*vP;=`<%l&[S+OO'PSU+T]'_QOY+|YZ-xZr+|rs'`sz+|z{+O{!P+|!P!Q4y!Q#O+|#O#P'`#P;'S+|;'S;=`4m<%lO+|U,R]'_QOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$nU-P]'_QOY+|YZ-xZr+|rs'`sz+|z{.d{!P+|!P!Q/Z!Q#O+|#O#P'`#P;'S+|;'S;=`4m<%lO+|U-}V'_QOz&[z{&v{!P&[!P!Q'x!Q;'S&[;'S;=`*s<%lO&[Q.iV'_QOY.dYZ/OZr.ds#O.d#P;'S.d;'S;=`/T<%lO.dQ/TO'_QQ/WP;=`<%l.dU/`]'_QOY0XYZ3uZr0Xrs(tsz0Xz{.d{!P0X!P!Q/Z!Q#O0X#O#P(t#P;'S0X;'S;=`4a<%lO0XU0^]'_QOY1VYZ2XZr1Vrs)^sz1Vz{2w{!P1V!P!Q/Z!Q#O1V#O#P)^#P;'S1V;'S;=`4g<%lO1VU1`]'_Q'PS'OSOY1VYZ2XZr1Vrs)^sz1Vz{2w{!P1V!P!Q/Z!Q#O1V#O#P)^#P;'S1V;'S;=`4g<%lO1VU2bV'_Q'PS'OSOz)^z{)z{!P)^!P!Q(_!Q;'S)^;'S;=`*g<%lO)^U2|]'_QOY0XYZ3uZr0Xrs(tsz0Xz{2w{!P0X!P!Q.d!Q#O0X#O#P(t#P;'S0X;'S;=`4a<%lO0XU3zV'_QOz)^z{)z{!P)^!P!Q(_!Q;'S)^;'S;=`*g<%lO)^U4dP;=`<%l0XU4jP;=`<%l1VU4pP;=`<%l+|U4vP;=`<%l$nU5QV'_Q'PSOY.dYZ/OZr.ds#O.d#P;'S.d;'S;=`/T<%lO.d_5p]'_Q&|X'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$n_6rV'_Q&|X'OSOz&[z{&v{!P&[!P!Q'x!Q;'S&[;'S;=`*s<%lO&[_7b_ZX'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q!_$n!_!`8a!`#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$n_8j]#PX'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$n_9lV']Q'OS'^XOz&[z{&v{!P&[!P!Q'x!Q;'S&[;'S;=`*s<%lO&[_:[]'QX'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$n_;^i'_Q'vW'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q!c$n!c!}<{!}#O$n#O#P&[#P#R$n#R#S<{#S#T$n#T#o<{#o${$n${$|<{$|4w$n4w5b<{5b5i$n5i6S<{6S;'S$n;'S;=`4s<%lO$n_=Uj'_Q_X'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q![<{![!c$n!c!}<{!}#O$n#O#P&[#P#R$n#R#S<{#S#T$n#T#o<{#o${$n${$|<{$|4w$n4w5b<{5b5i$n5i6S<{6S;'S$n;'S;=`4s<%lO$n_?P_(TP'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q!_$n!_!`@O!`#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$n_@X]#OX'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$n_AZa!qX'_Q'OSOY$nYZ%nZr$nrs&[sv$nvwB`wz$nz{+O{!P$n!P!Q,z!Q!_$n!_!`@O!`#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$n_Bi]'}X'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$n_Cik'_Q'OSOYE^YZGfZrE^rsHvswE^wxFdxzE^z{Ih{!PE^!P!QKl!Q!cE^!c!}Lp!}#OE^#O#P!!l#P#RE^#R#SLp#S#TE^#T#oLp#o${E^${$|Lp$|4wE^4w5bLp5b5iE^5i6SLp6S;'SE^;'S;=`!*}<%lOE^_Ee_'_Q'OSOY$nYZ%nZr$nrs&[sw$nwxFdxz$nz{+O{!P$n!P!Q,z!Q#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$n_Fm]'_Q'OSsXOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$n_GmX'_Q'OSOw&[wxHYxz&[z{&v{!P&[!P!Q'x!Q;'S&[;'S;=`*s<%lO&[]HaV'OSsXOz&[z{&v{!P&[!P!Q'x!Q;'S&[;'S;=`*s<%lO&[]H{X'OSOw&[wxHYxz&[z{&v{!P&[!P!Q'x!Q;'S&[;'S;=`*s<%lO&[_Im_'_QOY+|YZ-xZr+|rs'`sw+|wxJlxz+|z{+O{!P+|!P!Q4y!Q#O+|#O#P'`#P;'S+|;'S;=`4m<%lO+|_Js]'_QsXOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$n_Kq_'_QOY+|YZ-xZr+|rs'`sw+|wxJlxz+|z{.d{!P+|!P!Q/Z!Q#O+|#O#P'`#P;'S+|;'S;=`4m<%lO+|_Lyl'_Q'OS'ZXOY$nYZ%nZr$nrs&[sw$nwxFdxz$nz{+O{!P$n!P!Q,z!Q![Nq![!c$n!c!}Nq!}#O$n#O#P&[#P#R$n#R#SNq#S#T$n#T#oNq#o${$n${$|Nq$|4w$n4w5bNq5b5i$n5i6SNq6S;'S$n;'S;=`4s<%lO$n_Nzj'_Q'OS'ZXOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q![Nq![!c$n!c!}Nq!}#O$n#O#P&[#P#R$n#R#SNq#S#T$n#T#oNq#o${$n${$|Nq$|4w$n4w5bNq5b5i$n5i6SNq6S;'S$n;'S;=`4s<%lO$n]!!qZ'OSOzHvz{!#d{!PHv!P!Q!$n!Q#iHv#i#j!%Z#j#lHv#l#m!'V#m;'SHv;'S;=`!*w<%lOHv]!#gXOw'`wx!$Sxz'`z{&v{!P'`!P!Q*y!Q;'S'`;'S;=`*m<%lO'`]!$XVsXOz&[z{&v{!P&[!P!Q'x!Q;'S&[;'S;=`*s<%lO&[]!$qWOw'`wx!$Sxz'`{!P'`!P!Q(_!Q;'S'`;'S;=`*m<%lO'`]!%`^'OSOz&[z{&v{!P&[!P!Q'x!Q![!&[![!c&[!c!i!&[!i#T&[#T#Z!&[#Z#o&[#o#p!({#p;'S&[;'S;=`*s<%lO&[]!&a['OSOz&[z{&v{!P&[!P!Q'x!Q![!'V![!c&[!c!i!'V!i#T&[#T#Z!'V#Z;'S&[;'S;=`*s<%lO&[]!'[['OSOz&[z{&v{!P&[!P!Q'x!Q![!(Q![!c&[!c!i!(Q!i#T&[#T#Z!(Q#Z;'S&[;'S;=`*s<%lO&[]!(V['OSOz&[z{&v{!P&[!P!Q'x!Q![Hv![!c&[!c!iHv!i#T&[#T#ZHv#Z;'S&[;'S;=`*s<%lO&[]!)Q['OSOz&[z{&v{!P&[!P!Q'x!Q![!)v![!c&[!c!i!)v!i#T&[#T#Z!)v#Z;'S&[;'S;=`*s<%lO&[]!){^'OSOz&[z{&v{!P&[!P!Q'x!Q![!)v![!c&[!c!i!)v!i#T&[#T#Z!)v#Z#q&[#q#rHv#r;'S&[;'S;=`*s<%lO&[]!*zP;=`<%lHv_!+QP;=`<%lE^_!+^]}X'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$n_!,`]!PX'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$n_!-`_(QX'_QOY+|YZ-xZr+|rs'`sz+|z{+O{!P+|!P!Q4y!Q!_+|!_!`!._!`#O+|#O#P'`#P;'S+|;'S;=`4m<%lO+|_!.f]#OX'_QOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$n_!/h_(PX'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q!_$n!_!`@O!`#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$n_!0p]!eX'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$n_!1r`'gX'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q!_$n!_!`@O!`!a!2t!a#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$n_!2}]#QX'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$n_!4P^(OX'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!O$n!O!P!4{!P!Q,z!Q#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$n_!5U`!lX'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!O$n!O!P!6W!P!Q,z!Q!_$n!_!`!7Y!`#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$n_!6a]!tX'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$nV!7c]'qP'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$n_!8c_'_Q'xXOY+|YZ-xZr+|rs'`sz+|z{!9b{!P+|!P!Q!:O!Q!_+|!_!`!._!`#O+|#O#P'`#P;'S+|;'S;=`4m<%lO+|_!9iV&}]'_QOY.dYZ/OZr.ds#O.d#P;'S.d;'S;=`/T<%lO.d_!:V]'_QUXOY!;OYZ3uZr!;Ors!>jsz!;Oz{!Aq{!P!;O!P!Q!:O!Q#O!;O#O#P!>j#P;'S!;O;'S;=`!Bk<%lO!;O_!;V]'_QUXOY!<OYZ2XZr!<Ors!=Ssz!<Oz{!@q{!P!<O!P!Q!:O!Q#O!<O#O#P!=S#P;'S!<O;'S;=`!Bq<%lO!<O_!<Z]'_QUX'PS'OSOY!<OYZ2XZr!<Ors!=Ssz!<Oz{!@q{!P!<O!P!Q!:O!Q#O!<O#O#P!=S#P;'S!<O;'S;=`!Bq<%lO!<O]!=]XUX'PS'OSOY!=SYZ)^Zz!=Sz{!=x{!P!=S!P!Q!?[!Q;'S!=S;'S;=`!@k<%lO!=S]!=}XUXOY!>jYZ(tZz!>jz{!=x{!P!>j!P!Q!?|!Q;'S!>j;'S;=`!@e<%lO!>j]!>oXUXOY!=SYZ)^Zz!=Sz{!=x{!P!=S!P!Q!?[!Q;'S!=S;'S;=`!@k<%lO!=S]!?aXUXOY!>jYZ(tZz!>jz{!?|{!P!>j!P!Q!?[!Q;'S!>j;'S;=`!@e<%lO!>jX!@RSUXOY!?|Z;'S!?|;'S;=`!@_<%lO!?|X!@bP;=`<%l!?|]!@hP;=`<%l!>j]!@nP;=`<%l!=S_!@x]'_QUXOY!;OYZ3uZr!;Ors!>jsz!;Oz{!@q{!P!;O!P!Q!Aq!Q#O!;O#O#P!>j#P;'S!;O;'S;=`!Bk<%lO!;OZ!AxX'_QUXOY!AqYZ/OZr!Aqrs!?|s#O!Aq#O#P!?|#P;'S!Aq;'S;=`!Be<%lO!AqZ!BhP;=`<%l!Aq_!BnP;=`<%l!;O_!BtP;=`<%l!<O_!CQjuX'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q![!Dr![#O$n#O#P&[#P#R$n#R#S!Dr#S#U$n#U#V#!}#V#]$n#]#^!FZ#^#c$n#c#d#%u#d#i$n#i#j!FZ#j#l$n#l#m#(g#m;'S$n;'S;=`4s<%lO$n_!D{duX'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q![!Dr![#O$n#O#P&[#P#R$n#R#S!Dr#S#]$n#]#^!FZ#^#i$n#i#j!FZ#j;'S$n;'S;=`4s<%lO$n_!Fbg'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q!R$n!R!S!Gy!S!T$n!T!U!K_!U!W$n!W!X!Le!X!Y$n!Y!Z!J]!Z#O$n#O#P&[#P#g$n#g#h!Mk#h;'S$n;'S;=`4s<%lO$n_!HQa'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q!S$n!S!T!IV!T!W$n!W!X!J]!X#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$n_!I^_'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q!Y$n!Y!Z!J]!Z#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$n_!Jf]uX'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$n_!Kf_'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q!S$n!S!T!J]!T#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$n_!Ll_'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q!U$n!U!V!J]!V#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$n_!Mr_'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q#O$n#O#P&[#P#]$n#]#^!Nq#^;'S$n;'S;=`4s<%lO$n_!Nx_'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q#O$n#O#P&[#P#n$n#n#o# w#o;'S$n;'S;=`4s<%lO$n_#!O_'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q#O$n#O#P&[#P#X$n#X#Y!J]#Y;'S$n;'S;=`4s<%lO$n_##Ua'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q!R#$Z!R!S#$Z!S#O$n#O#P&[#P#R$n#R#S#$Z#S;'S$n;'S;=`4s<%lO$n_#$deuX'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q!R#$Z!R!S#$Z!S#O$n#O#P&[#P#R$n#R#S#$Z#S#]$n#]#^!FZ#^#i$n#i#j!FZ#j;'S$n;'S;=`4s<%lO$n_#%|`'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q!Y#'O!Y#O$n#O#P&[#P#R$n#R#S#'O#S;'S$n;'S;=`4s<%lO$n_#'XduX'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q!Y#'O!Y#O$n#O#P&[#P#R$n#R#S#'O#S#]$n#]#^!FZ#^#i$n#i#j!FZ#j;'S$n;'S;=`4s<%lO$n_#(nd'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q![#)|![!c$n!c!i#)|!i#O$n#O#P&[#P#R$n#R#S#)|#S#T$n#T#Z#)|#Z;'S$n;'S;=`4s<%lO$n_#*VhuX'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q![#)|![!c$n!c!i#)|!i#O$n#O#P&[#P#R$n#R#S#)|#S#T$n#T#Z#)|#Z#]$n#]#^!FZ#^#i$n#i#j!FZ#j;'S$n;'S;=`4s<%lO$n_#+z_!SX'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q![$n![!]#,y!]#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$n_#-S]dX'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$n_#.U]yX'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$n_#/W`#PX'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q!^$n!^!_#0Y!_!`8a!`#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$n_#0c_'yX'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q!_$n!_!`@O!`#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$n_#1k`oX'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q!_$n!_!`8a!`!a#2m!a#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$n_#2v]#RX'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$n_#3x`#PX'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q!_$n!_!`8a!`!a#4z!a#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$n_#5T_'zX'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q!_$n!_!`@O!`#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$n_#6]](RX'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$nV#7_]'pP'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$n_#8cj'_Q'OS!yW'TPOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q![#8W![!c$n!c!}#8W!}#O$n#O#P&[#P#R$n#R#S#8W#S#T$n#T#o#8W#o${$n${$|#8W$|4w$n4w5b#8W5b5i$n5i6S#8W6S;'S$n;'S;=`4s<%lO$n_#:^][X'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$nU#;[Z'OSOz#;}z{#<k{!P#;}!P!Q#=V!Q#i#;}#i#j#=n#j#l#;}#l#m#?j#m;'S#;};'S;=`#C[<%lO#;}U#<UVrQ'OSOz&[z{&v{!P&[!P!Q'x!Q;'S&[;'S;=`*s<%lO&[U#<pVrQOz'`z{&v{!P'`!P!Q*y!Q;'S'`;'S;=`*m<%lO'`U#=[UrQOz'`{!P'`!P!Q(_!Q;'S'`;'S;=`*m<%lO'`U#=s^'OSOz&[z{&v{!P&[!P!Q'x!Q![#>o![!c&[!c!i#>o!i#T&[#T#Z#>o#Z#o&[#o#p#A`#p;'S&[;'S;=`*s<%lO&[U#>t['OSOz&[z{&v{!P&[!P!Q'x!Q![#?j![!c&[!c!i#?j!i#T&[#T#Z#?j#Z;'S&[;'S;=`*s<%lO&[U#?o['OSOz&[z{&v{!P&[!P!Q'x!Q![#@e![!c&[!c!i#@e!i#T&[#T#Z#@e#Z;'S&[;'S;=`*s<%lO&[U#@j['OSOz&[z{&v{!P&[!P!Q'x!Q![#;}![!c&[!c!i#;}!i#T&[#T#Z#;}#Z;'S&[;'S;=`*s<%lO&[U#Ae['OSOz&[z{&v{!P&[!P!Q'x!Q![#BZ![!c&[!c!i#BZ!i#T&[#T#Z#BZ#Z;'S&[;'S;=`*s<%lO&[U#B`^'OSOz&[z{&v{!P&[!P!Q'x!Q![#BZ![!c&[!c!i#BZ!i#T&[#T#Z#BZ#Z#q&[#q#r#;}#r;'S&[;'S;=`*s<%lO&[U#C_P;=`<%l#;}_#Ck]XX'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$n_#Dm_'{X'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q!_$n!_!`@O!`#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$n_#Ewl'_Q'OS!yW'TPOY$nYZ%nZr$nrs#Gosw$nwx#H]xz$nz{+O{!P$n!P!Q,z!Q![#8W![!c$n!c!}#8W!}#O$n#O#P&[#P#R$n#R#S#8W#S#T$n#T#o#8W#o${$n${$|#8W$|4w$n4w5b#8W5b5i$n5i6S#8W6S;'S$n;'S;=`4s<%lO$n]#GvV'OS'^XOz&[z{&v{!P&[!P!Q'x!Q;'S&[;'S;=`*s<%lO&[_#Hd_'_Q'OSOYE^YZGfZrE^rsHvswE^wxFdxzE^z{Ih{!PE^!P!QKl!Q#OE^#O#P!!l#P;'SE^;'S;=`!*}<%lOE^_#Ink'_Q'OS!yW'TPOY$nYZ%nZr$nrs&[st#Kctz$nz{+O{!P$n!P!Q,z!Q![#8W![!c$n!c!}#8W!}#O$n#O#P&[#P#R$n#R#S#8W#S#T$n#T#o#8W#o${$n${$|#8W$|4w$n4w5b#8W5b5i$n5i6S#8W6S;'S$n;'S;=`4s<%lO$nV#Kji'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q!c$n!c!}#MX!}#O$n#O#P&[#P#R$n#R#S#MX#S#T$n#T#o#MX#o${$n${$|#MX$|4w$n4w5b#MX5b5i$n5i6S#MX6S;'S$n;'S;=`4s<%lO$nV#Mbj'_Q'OS'TPOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q![#MX![!c$n!c!}#MX!}#O$n#O#P&[#P#R$n#R#S#MX#S#T$n#T#o#MX#o${$n${$|#MX$|4w$n4w5b#MX5b5i$n5i6S#MX6S;'S$n;'S;=`4s<%lO$n_$ ]]wX'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$n_$!_a'rX'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q!_$n!_!`@O!`#O$n#O#P&[#P#p$n#p#q$#d#q;'S$n;'S;=`4s<%lO$n_$#m]'|X'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$n_$$o]vX'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$n",tokenizers:[i0,o0,r0,0,1,2,3],topRules:{SourceFile:[0,8]},specialized:[{term:281,get:o(e=>a0[e]||-1,"get")}],tokenPrec:15596})});import Yn from"fs/promises";import yl from"path";function oy(e){let t=e.replace(/[\*\[\]]/g," ").split(/[\s,]+/).map(n=>n.trim()).filter(Boolean);return t[t.length-1]}function wl(e){return e&&e.replace(/<[^>]+>/g,"").split("::").map(n=>n.trim()).filter(Boolean).at(-1)?.replace(/[&*]/g,"").trim()||void 0}function H(e,t){for(let n=e.firstChild;n;n=n.nextSibling)t(n)}function Qe(e,t){return e.slice(t.from,t.to)}function it(e,t){return e.slice(0,t.from).split(/\r?\n/).length}function ot(e,t){return e[t-1]?.trim()||"<unknown>"}function c0(e,t){let n=[];return H(t,r=>{if(r.type.name!=="ImportStatement")return;let i=Qe(e,r).trim(),s=/^from\s+([.\w]+)\s+import\b/.exec(i);if(s?.[1]){n.push(s[1]);return}s=/^import\s+(.+)$/.exec(i),s?.[1]&&n.push(...s[1].split(",").map(a=>a.trim().split(/\s+as\s+/i)[0]??"").filter(Boolean))}),ge(n,12)}function Ol(e,t){if(t.type.name==="VariableName"||t.type.name==="PropertyName")return Qe(e,t).trim()||null;if(t.type.name==="MemberExpression"){let r=null;return H(t,i=>{let s=Ol(e,i);s&&(r=s)}),r}let n=t.firstChild;return n?Ol(e,n):null}function iy(e,t){let n=new Set,r=o(i=>{if(i.type.name==="CallExpression"){let s=i.firstChild,a=s?Ol(e,s):null;a&&!De.has(a)&&n.add(a)}H(i,r)},"walk");return r(t),Array.from(n).slice(0,24)}async function sy(e,t,n){let r=[];for(let i of t){let s=yl.join(e,i);if((await Yn.stat(s)).size>jn)continue;let c=await Yn.readFile(s,"utf8"),d=c.split(/\r?\n/),f=BO.parse(c).topNode,u=ie(i),m=fe(u),g=He(m),w=c0(c,f),k=[],O=Re(i,n).id;H(f,y=>{if(y.type.name==="FunctionDefinition"){let S=null;if(H(y,I=>{I.type.name==="VariableName"&&!S&&(S=Qe(c,I).trim())}),!S)return;let v=S,R=it(c,y);k.push({id:`${i}#${v}:${R}`,name:v,qualifiedName:`${i}:${v}`,kind:"function",filePath:i,moduleId:O,language:u,capabilityTier:m,line:R,signature:ot(d,R),exported:!v.startsWith("_"),calls:iy(c,y),callTargets:[],importPaths:w,confidence:Math.min(.99,g+.1)});return}if(y.type.name!=="ClassDefinition")return;let b=null,x=null;if(H(y,S=>{S.type.name==="VariableName"&&!b?b=Qe(c,S).trim():S.type.name==="Body"&&(x=S)}),!b)return;let P=b,_=it(c,y);k.push({id:`${i}#${P}:${_}`,name:P,qualifiedName:`${i}:${P}`,kind:"class",filePath:i,moduleId:O,language:u,capabilityTier:m,line:_,signature:ot(d,_),exported:!P.startsWith("_"),calls:[],callTargets:[],importPaths:w,confidence:Math.min(.99,g+.08)}),x&&H(x,S=>{if(S.type.name!=="FunctionDefinition")return;let v=null;if(H(S,C=>{C.type.name==="VariableName"&&!v&&(v=Qe(c,C).trim())}),!v)return;let R=v,I=it(c,S);k.push({id:`${i}#${P}.${R}:${I}`,name:R,qualifiedName:`${i}:${P}.${R}`,kind:"method",filePath:i,moduleId:O,language:u,capabilityTier:m,line:I,signature:ot(d,I),exported:!R.startsWith("_"),calls:iy(c,S),callTargets:[],importPaths:w,confidence:Math.min(.99,g+.06)})})}),r.push({filePath:i,moduleId:O,language:u,capabilityTier:m,importPaths:w,symbols:k.slice(0,vt)})}return r}function si(e,t){let n=null;return H(e,r=>{!n&&t(r)&&(n=r)}),n}function d0(e,t){let n=null;return H(e,r=>{t(r)&&(n=r)}),n}function ay(e,t){if(t(e))return e;let n=null;return H(e,r=>{n||(n=ay(r,t))}),n}function us(e,t,n){let r=new Set,i=o(s=>{if(s.type.name==="CallExpr"||s.type.name==="CallExpression"){let a=s.firstChild,c=a?n(e,a):null;c&&!De.has(c)&&r.add(c)}H(s,i)},"walk");return i(t),Array.from(r).slice(0,24)}function fs(e,t){if(t.type.name==="VariableName"||t.type.name==="FieldName"||t.type.name==="TypeName")return Qe(e,t).trim()||null;if(t.type.name==="SelectorExpr"){let r=null;return H(t,i=>{let s=fs(e,i);s&&(r=s)}),r}let n=t.firstChild;return n?fs(e,n):null}function ps(e,t){if(t.type.name==="Identifier"||t.type.name==="FieldIdentifier"||t.type.name==="TypeIdentifier"||t.type.name==="BoundIdentifier")return Qe(e,t).trim()||null;if(t.type.name==="FieldExpression"){let r=null;return H(t,i=>{let s=ps(e,i);s&&(r=s)}),r}let n=t.firstChild;return n?ps(e,n):null}function Vn(e,t,n){let r=si(t,i=>i.type.name===n);return r?Qe(e,r).trim():null}function gl(e,t){return/^pub(?:\([^)]*\))?\s/.test(Qe(e,t).trimStart())}async function cy(e,t,n){let r=[];for(let i of t){let s=yl.join(e,i);if((await Yn.stat(s)).size>jn)continue;let c=await Yn.readFile(s,"utf8"),d=c.split(/\r?\n/),l=MO.parse(c),f=Re(i,n).id,u=ie(i),m=fe(u),g=He(m),w=Zr(c,u),k=[];H(l.topNode,O=>{if(O.type.name==="TypeDecl"){let S=si(O,C=>C.type.name==="TypeSpec"),v=S?Vn(c,S,"DefName"):null;if(!S||!v)return;let R=si(S,C=>C.type.name==="InterfaceType")?"interface":"struct",I=it(c,S);k.push({id:`${i}#${v}:${I}`,name:v,qualifiedName:`${i}:${v}`,kind:R,filePath:i,moduleId:f,language:u,capabilityTier:m,line:I,signature:ot(d,I),exported:/^[A-Z]/.test(v),calls:[],callTargets:[],importPaths:w,confidence:Math.min(.97,g+.07)});return}if(O.type.name==="FunctionDecl"){let S=Vn(c,O,"DefName");if(!S)return;let v=it(c,O);k.push({id:`${i}#${S}:${v}`,name:S,qualifiedName:`${i}:${S}`,kind:"function",filePath:i,moduleId:f,language:u,capabilityTier:m,line:v,signature:ot(d,v),exported:/^[A-Z]/.test(S),calls:us(c,O,fs),callTargets:[],importPaths:w,confidence:Math.min(.97,g+.07)});return}if(O.type.name!=="MethodDecl")return;let y=si(O,S=>S.type.name==="Parameters"),b=Vn(c,O,"FieldName"),x=y?ay(y,S=>S.type.name==="TypeName"):null,P=x?Qe(c,x).trim():void 0;if(!b)return;let _=it(c,O);k.push({id:`${i}#${P?`${P}.`:""}${b}:${_}`,name:b,qualifiedName:`${i}:${P?`${P}.`:""}${b}`,kind:"method",filePath:i,moduleId:f,language:u,capabilityTier:m,line:_,signature:ot(d,_),exported:/^[A-Z]/.test(b),calls:us(c,O,fs),callTargets:[],importPaths:w,confidence:Math.min(.97,g+.08)})}),r.push({filePath:i,moduleId:f,language:u,capabilityTier:m,importPaths:w,symbols:k.slice(0,vt)})}return r}async function dy(e,t,n){let r=[];for(let i of t){let s=yl.join(e,i);if((await Yn.stat(s)).size>jn)continue;let c=await Yn.readFile(s,"utf8"),d=c.split(/\r?\n/),l=ny.parse(c),f=Re(i,n).id,u=ie(i),m=fe(u),g=He(m),w=Zr(c,u),k=[];H(l.topNode,O=>{if(O.type.name==="StructItem"||O.type.name==="TraitItem"||O.type.name==="EnumItem"){let P=Vn(c,O,"TypeIdentifier");if(!P)return;let _=O.type.name==="TraitItem"?"trait":O.type.name==="EnumItem"?"enum":"struct",S=it(c,O);k.push({id:`${i}#${P}:${S}`,name:P,qualifiedName:`${i}:${P}`,kind:_,filePath:i,moduleId:f,language:u,capabilityTier:m,line:S,signature:ot(d,S),exported:gl(c,O),calls:[],callTargets:[],importPaths:w,confidence:Math.min(.97,g+.06)});return}if(O.type.name==="FunctionItem"){let P=Vn(c,O,"BoundIdentifier");if(!P)return;let _=it(c,O);k.push({id:`${i}#${P}:${_}`,name:P,qualifiedName:`${i}:${P}`,kind:"function",filePath:i,moduleId:f,language:u,capabilityTier:m,line:_,signature:ot(d,_),exported:gl(c,O),calls:us(c,O,ps),callTargets:[],importPaths:w,confidence:Math.min(.97,g+.06)});return}if(O.type.name!=="ImplItem")return;let y=d0(O,P=>P.type.name==="TypeIdentifier"),b=y?wl(Qe(c,y).trim()):void 0,x=si(O,P=>P.type.name==="DeclarationList");!b||!x||H(x,P=>{if(P.type.name!=="FunctionItem")return;let _=Vn(c,P,"BoundIdentifier");if(!_)return;let S=it(c,P);k.push({id:`${i}#${b}.${_}:${S}`,name:_,qualifiedName:`${i}:${b}.${_}`,kind:"method",filePath:i,moduleId:f,language:u,capabilityTier:m,line:S,signature:ot(d,S),exported:gl(c,P),calls:us(c,P,ps),callTargets:[],importPaths:w,confidence:Math.min(.97,g+.07)})})}),r.push({filePath:i,moduleId:f,language:u,capabilityTier:m,importPaths:w,symbols:k.slice(0,vt)})}return r}var Sl=p(()=>{"use strict";XO();ZO();ry();xt();o(oy,"extractGoReceiverQualifier");o(wl,"normalizeRustQualifier");o(H,"forEachSyntaxChild");o(Qe,"getSyntaxNodeText");o(it,"getPythonNodeLine");o(ot,"getPythonSignature");o(c0,"collectPythonImports");o(Ol,"getPythonCallName");o(iy,"collectPythonCallNames");o(sy,"analyzePythonFiles");o(si,"findFirstSyntaxChild");o(d0,"findLastSyntaxChild");o(ay,"findSyntaxDescendant");o(us,"collectLezerCallNames");o(fs,"getGoCallName");o(ps,"getRustCallName");o(Vn,"findSyntaxNodeText");o(gl,"isRustExported");o(cy,"analyzeGoFiles");o(dy,"analyzeRustFiles")});import ly from"fs/promises";import It from"path";function uy(e,t){return Array.from(e.matchAll(t)).length}function $e(e){return uy(e,/\{/g)-uy(e,/\}/g)}function l0(e,t,n,r,i){let s=Math.max(0,n.line-1),a=Math.max(n.line,(r[i+1]?.line??e.length+1)-1);if(t==="python"){let u=e[s]?.match(/^\s*/)?.[0]?.length??0,m=s+1;for(;m<e.length;){let g=e[m]??"",w=g.trim();if(!w){m+=1;continue}if((g.match(/^\s*/)?.[0]?.length??0)<=u&&!w.startsWith("#"))break;m+=1}return e.slice(s,m).join(`
690
+ `)}let c=0,d=!1,l=s;for(let u=s;u<e.length;u+=1){let m=e[u]??"";if(c+=$e(m),m.includes("{")&&(d=!0),l=u,d&&c<=0&&u>s||!d&&u+1>=a)break}let f=d?l+1:a;return e.slice(s,f).join(`
691
+ `)}function u0(e){let t=new Set,n=[/\b([A-Za-z_][A-Za-z0-9_]*)\s*\(/g,/\.([A-Za-z_][A-Za-z0-9_]*)\s*\(/g];for(let r of n){let i=null;for(;(i=r.exec(e))!==null;){let s=i[1];if(!(!s||De.has(s))&&(t.add(s),t.size>=24))break}}return Array.from(t)}function se(e,t,n){let r=`${n.line}:${n.kind}:${n.name}`;t.has(r)||(t.add(r),e.push(n))}function f0(e,t){let n=[],r=new Set,i=[],s=[],a=[],c=0;for(let[d,l]of e.entries()){let f=l.trim();if(!f)continue;let u=null;if(t==="typescript"||t==="javascript"){if(u=/^(export\s+)?(?:async\s+)?function\s+([A-Za-z_$][A-Za-z0-9_$]*)\s*\(/.exec(f),u){se(n,r,{name:u[2],kind:"function",line:d+1,signature:f,exported:!!u[1],confidenceBoost:.08});continue}if(u=/^(export\s+)?(?:const|let|var)\s+([A-Za-z_$][A-Za-z0-9_$]*)\s*=\s*(?:async\s*)?(?:\([^=]*\)|[A-Za-z_$][A-Za-z0-9_$]*)\s*=>/.exec(f),u){se(n,r,{name:u[2],kind:"function",line:d+1,signature:f,exported:!!u[1],confidenceBoost:.06});continue}if(u=/^(export\s+)?class\s+([A-Za-z_$][A-Za-z0-9_$]*)/.exec(f)??/^(export\s+)?interface\s+([A-Za-z_$][A-Za-z0-9_$]*)/.exec(f)??/^(export\s+)?type\s+([A-Za-z_$][A-Za-z0-9_$]*)\s*=/.exec(f)??/^(export\s+)?enum\s+([A-Za-z_$][A-Za-z0-9_$]*)/.exec(f),u){let m=f.includes("interface")?"interface":f.includes("type ")?"type":f.includes("enum ")?"enum":"class";se(n,r,{name:u[2],kind:m,line:d+1,signature:f,exported:!!u[1],confidenceBoost:.08})}continue}if(t==="python"){if(u=/^def\s+([A-Za-z_][A-Za-z0-9_]*)\s*\(/.exec(f),u){se(n,r,{name:u[1],kind:"function",line:d+1,signature:f,exported:!u[1].startsWith("_"),confidenceBoost:.08});continue}u=/^class\s+([A-Za-z_][A-Za-z0-9_]*)/.exec(f),u&&se(n,r,{name:u[1],kind:"class",line:d+1,signature:f,exported:!u[1].startsWith("_"),confidenceBoost:.08});continue}if(t==="go"){if(u=/^func\s+\(([^)]+)\)\s*([A-Za-z_][A-Za-z0-9_]*)\s*\(/.exec(f),u){se(n,r,{name:u[2],kind:"method",line:d+1,signature:f,exported:/^[A-Z]/.test(u[2]),confidenceBoost:.08,qualifier:oy(u[1])});continue}if(u=/^func\s+([A-Za-z_][A-Za-z0-9_]*)\s*\(/.exec(f),u){se(n,r,{name:u[1],kind:"function",line:d+1,signature:f,exported:/^[A-Z]/.test(u[1]),confidenceBoost:.07});continue}u=/^type\s+([A-Za-z_][A-Za-z0-9_]*)\s+(?:struct|interface)/.exec(f),u&&se(n,r,{name:u[1],kind:f.includes("interface")?"interface":"struct",line:d+1,signature:f,exported:/^[A-Z]/.test(u[1]),confidenceBoost:.07});continue}if(t==="rust"){let m=a[a.length-1];if(u=/^impl(?:<[^>]+>)?\s+(?:[A-Za-z0-9_:<&>\[\]]+\s+for\s+)?([A-Za-z_][A-Za-z0-9_:<>]*)/.exec(f),u){let g=wl(u[1]);a.push({name:g,depth:c+$e(l)})}if(u=/^(?:pub\s+)?fn\s+([A-Za-z_][A-Za-z0-9_]*)\s*\(/.exec(f),u){for(se(n,r,{name:u[1],kind:m?.name?"method":"function",line:d+1,signature:f,exported:f.startsWith("pub "),confidenceBoost:m?.name?.07:.06,qualifier:m?.name}),c+=$e(l);a.length>0&&c<(a[a.length-1]?.depth??0);)a.pop();continue}for(u=/^(?:pub\s+)?(struct|enum|trait)\s+([A-Za-z_][A-Za-z0-9_]*)/.exec(f),u&&se(n,r,{name:u[2],kind:u[1],line:d+1,signature:f,exported:f.startsWith("pub "),confidenceBoost:.06}),c+=$e(l);a.length>0&&c<(a[a.length-1]?.depth??0);)a.pop();continue}if(t==="java"){if(u=/^(?:public\s+)?(class|interface|enum)\s+([A-Za-z_][A-Za-z0-9_]*)/.exec(f),u){for(se(n,r,{name:u[2],kind:u[1]==="interface"?"interface":u[1]==="enum"?"enum":"class",line:d+1,signature:f,exported:!0,confidenceBoost:.05}),i.push({name:u[2],depth:c+$e(l)}),c+=$e(l);i.length>0&&c<(i[i.length-1]?.depth??0);)i.pop();continue}if(u=/^(?:public|protected|private|static|final|synchronized|abstract|\s)+[\w<>\[\], ?]+\s+([A-Za-z_][A-Za-z0-9_]*)\s*\([^;]*\)\s*\{?$/.exec(f),u&&!De.has(u[1])){let m=i[i.length-1]?.name;se(n,r,{name:u[1],kind:m?"method":"function",line:d+1,signature:f,exported:f.startsWith("public"),confidenceBoost:.03,qualifier:m})}for(c+=$e(l);i.length>0&&c<(i[i.length-1]?.depth??0);)i.pop();continue}if(t==="cpp"){if(u=/^(class|struct|enum)(?:\s+(?:class|struct))?\s+([A-Za-z_][A-Za-z0-9_]*)/.exec(f),u){for(se(n,r,{name:u[2],kind:u[1]==="enum"?"enum":u[1]==="struct"?"struct":"class",line:d+1,signature:f,exported:!0,confidenceBoost:.03}),u[1]!=="enum"&&s.push({name:u[2],depth:c+$e(l)}),c+=$e(l);s.length>0&&c<(s[s.length-1]?.depth??0);)s.pop();continue}if(u=/^(?:[\w:&*<>,~]+\s+)+([A-Za-z_~][A-Za-z0-9_]*)::([A-Za-z_~][A-Za-z0-9_]*)\s*\([^;]*\)\s*(?:const\s*)?(?:\{|$)/.exec(f),u&&!De.has(u[2])){for(se(n,r,{name:u[2],kind:"method",line:d+1,signature:f,exported:!0,confidenceBoost:.04,qualifier:u[1].split("::").at(-1)}),c+=$e(l);s.length>0&&c<(s[s.length-1]?.depth??0);)s.pop();continue}if(u=/^(?:[\w:&*<>,~]+\s+)+([A-Za-z_~][A-Za-z0-9_]*)\s*\([^;]*\)\s*(?:const\s*)?(?:\{|$)/.exec(f),u&&!De.has(u[1])){let m=s[s.length-1]?.name;se(n,r,{name:u[1],kind:m?"method":"function",line:d+1,signature:f,exported:!0,confidenceBoost:m?.03:.02,qualifier:m})}for(c+=$e(l);s.length>0&&c<(s[s.length-1]?.depth??0);)s.pop()}}return n.slice(0,vt)}async function fy(e,t,n){let r=It.join(e,t);if((await ly.stat(r)).size>jn)return null;let s=await ly.readFile(r,"utf8"),a=s.split(/\r?\n/),c=ie(t),d=fe(c),l=Zr(s,c),f=f0(a,c),u=He(d),m=f.map((g,w,k)=>{let O=l0(a,c,g,k,w),y=g.calls??u0(O);return{id:`${t}#${g.qualifier?`${g.qualifier}.`:""}${g.name}:${g.line}`,name:g.name,qualifiedName:`${t}:${g.qualifier?`${g.qualifier}.`:""}${g.name}`,kind:g.kind,filePath:t,moduleId:n,language:c,capabilityTier:d,line:g.line,signature:g.signature,exported:g.exported,calls:y,callTargets:[],importPaths:l,confidence:Math.min(.97,u+g.confidenceBoost)}});return{filePath:t,moduleId:n,language:c,capabilityTier:d,importPaths:l,symbols:m}}function py(e){let t=new Map;for(let n of e)t.set(n.id.toLowerCase(),n.id),t.set(n.label.toLowerCase(),n.id),t.set(It.posix.basename(n.root).toLowerCase(),n.id);return t}function p0(e,t,n){if(!e.startsWith("."))return null;let r=It.posix.dirname(t),i;if(e.includes("/"))i=U(It.posix.join(r,e));else{let a=e.match(/^\.+/)?.[0]?.length??0,c=e.slice(a).replace(/\./g,"/"),d=r;for(let l=1;l<a;l+=1)d=It.posix.dirname(d);i=U(It.posix.join(d,c))}let s=[i];for(let a of Wn)s.push(`${i}${a}`),s.push(`${i}/index${a}`);for(let a of s)if(n.has(a))return a;return null}function ai(e,t,n,r,i){let s=p0(e,t,n);if(s)return Re(s,r).id;let a=e.toLowerCase();for(let[c,d]of i.entries())if(a===c||a.startsWith(`${c}/`)||a.endsWith(`/${c}`))return d;return null}function ms(e,t,n){return e===t?"same-module":n.has(t)?"imported-module":"name-match"}function my(e,t){let n=new Map(t.map(s=>[s.id,s])),r=new Map;for(let s of t){let a=r.get(s.moduleId)??[];a.push(s),r.set(s.moduleId,a)}let i=[];for(let s of e){let a=r.get(s.moduleId)??[],c=s.entryFiles.length>0?s.entryFiles:s.sampleFiles;for(let d of c.slice(0,2)){let l=a.find(O=>O.filePath===d&&O.exported)??a.find(O=>O.filePath===d)??a[0];if(!l)continue;let f=[{kind:"entry",symbolName:l.name,symbolId:l.id,filePath:l.filePath,line:l.line,note:`Entry symbol ${l.name} in ${l.filePath}`}];for(let O of l.importPaths.slice(0,3))f.push({kind:"imports",symbolName:O,filePath:l.filePath,note:`Imports ${O}`});let u=l.callTargets.slice(0,3);for(let O of u){let y=n.get(O.symbolId);f.push({kind:"calls",symbolName:O.name,symbolId:O.symbolId,filePath:O.filePath,line:y?.line,note:`Calls ${O.name} (${O.reason})`})}let m=u.map(O=>n.get(O.symbolId)).filter(O=>O!==void 0).flatMap(O=>O.callTargets.slice(0,2)).slice(0,2);for(let O of m){let y=n.get(O.symbolId);f.push({kind:"calls",symbolName:O.name,symbolId:O.symbolId,filePath:O.filePath,line:y?.line,note:`Then reaches ${O.name} (${O.reason})`})}let g=f.slice(0,oO),w=ge(g.map(O=>n.get(O.symbolId??"")?.moduleId).filter(O=>typeof O=="string"),4),k=`${s.moduleId}::${It.posix.basename(d)}`;i.push({id:k,label:`${s.label} entry via ${It.posix.basename(d)}`,moduleId:s.moduleId,entryFile:d,entrySymbol:l.name,summary:w.length>0?`${l.name} fans into ${ge(u.map(O=>O.name),4).join(", ")||"local work"} and touches modules ${w.join(", ")}.`:`${l.name} starts the main path for ${s.label}.`,steps:g,confidence:Math.min(.95,l.confidence-.02+u.length*.03)})}}return i}var bl=p(()=>{"use strict";xt();Sl();o(uy,"countOccurrences");o($e,"countBraceDelta");o(l0,"extractSymbolBody");o(u0,"extractCallNames");o(se,"pushSymbol");o(f0,"extractSymbolsFromLines");o(fy,"analyzeSourceFile");o(py,"buildModuleAliases");o(p0,"resolveRelativeImport");o(ai,"resolveImportToModule");o(ms,"rankReferenceReason");o(my,"buildProcessCapsules")});var Sy={};xs(Sy,{analyzeTypeScriptFiles:()=>h0,collectTypeScriptImportPaths:()=>yy,getCallExpressionName:()=>Oy,getDeclarationKey:()=>kl,getNodeLine:()=>hy,getPropertyNameText:()=>hs,getSignatureSnippet:()=>gy,hasModifier:()=>vl,isExportedDeclaration:()=>$t,registerTypeScriptSymbol:()=>Qt,resolveTypeScriptCallSymbol:()=>wy,scriptKindFromFilePath:()=>m0});import gs from"path";import E from"typescript";function m0(e){switch(gs.extname(e).toLowerCase()){case".ts":return E.ScriptKind.TS;case".tsx":return E.ScriptKind.TSX;case".jsx":return E.ScriptKind.JSX;default:return E.ScriptKind.JS}}function hy(e,t){return e.getLineAndCharacterOfPosition(t.getStart(e)).line+1}function kl(e,t){let n=t.getSourceFile(),r=n.getLineAndCharacterOfPosition(t.getStart(n));return`${U(gs.relative(e,n.fileName))}:${r.line+1}:${r.character+1}:${t.kind}`}function gy(e,t){let n=t.getStart(e),r=e.text.indexOf(`
692
+ `,n);return e.text.slice(n,r===-1?void 0:r).trim()||t.getText(e).split(/\r?\n/,1)[0]?.trim()||"<unknown>"}function vl(e,t){return E.canHaveModifiers(e)?!!E.getModifiers(e)?.some(n=>n.kind===t):!1}function $t(e){return vl(e,E.SyntaxKind.ExportKeyword)||vl(e,E.SyntaxKind.DefaultKeyword)?!0:E.isVariableDeclaration(e)&&E.isVariableDeclarationList(e.parent)&&E.isVariableStatement(e.parent.parent)?$t(e.parent.parent):!1}function hs(e){return e&&(E.isIdentifier(e)||E.isPrivateIdentifier(e)||E.isStringLiteral(e)||E.isNumericLiteral(e))?e.text:null}function Oy(e){return E.isIdentifier(e)?e.text:E.isPropertyAccessExpression(e)?e.name.text:E.isElementAccessExpression(e)&&E.isIdentifier(e.argumentExpression)?e.argumentExpression.text:null}function yy(e){let t=new Set,n=o(i=>{i?.trim()&&t.add(i.trim())},"addImport"),r=o(i=>{if(E.isImportDeclaration(i)||E.isExportDeclaration(i))i.moduleSpecifier&&E.isStringLiteralLike(i.moduleSpecifier)&&n(i.moduleSpecifier.text);else if(E.isImportEqualsDeclaration(i)){let s=i.moduleReference;E.isExternalModuleReference(s)&&s.expression&&E.isStringLiteralLike(s.expression)&&n(s.expression.text)}else E.isCallExpression(i)&&E.isIdentifier(i.expression)&&i.expression.text==="require"&&i.arguments.length===1&&E.isStringLiteralLike(i.arguments[0])&&n(i.arguments[0].text);E.forEachChild(i,r)},"visit");return r(e),Array.from(t).slice(0,12)}function Qt(e,t,n,r,i,s,a,c,d,l,f){if(!s.trim())return;let u=hy(r,i),m=f?`${n.filePath}:${f}.${s}`:`${n.filePath}:${s}`,g={id:`${n.filePath}#${f?`${f}.`:""}${s}:${u}`,name:s,qualifiedName:m,kind:a,filePath:n.filePath,moduleId:n.moduleId,language:n.language,capabilityTier:n.capabilityTier,line:u,signature:gy(r,i),exported:c,calls:[],callTargets:[],importPaths:n.importPaths,confidence:Math.min(.99,He(n.capabilityTier)+d)};if(n.symbols.find(O=>O.id===g.id)||n.symbols.length>=vt)return;n.symbols.push(g);let k;E.isFunctionDeclaration(i)||E.isMethodDeclaration(i)||E.isGetAccessorDeclaration(i)||E.isSetAccessorDeclaration(i)||E.isFunctionExpression(i)||E.isArrowFunction(i)?k=i.body??void 0:E.isVariableDeclaration(i)?k=i.initializer??void 0:(E.isClassDeclaration(i)||E.isClassExpression(i))&&(k=i),t.push({record:g,declaration:i,body:k}),l.set(kl(e,i),g)}function wy(e,t){return E.isPropertyAccessExpression(t)?e.getSymbolAtLocation(t.name)??e.getSymbolAtLocation(t):E.isElementAccessExpression(t)?e.getSymbolAtLocation(t.argumentExpression)??e.getSymbolAtLocation(t):e.getSymbolAtLocation(t)}async function h0(e,t,n,r,i){let s={allowJs:!0,checkJs:!1,target:E.ScriptTarget.Latest,module:E.ModuleKind.ESNext,moduleResolution:E.ModuleResolutionKind.NodeNext,jsx:E.JsxEmit.Preserve,skipLibCheck:!0,noEmit:!0,allowSyntheticDefaultImports:!0},a=t.map(m=>gs.join(e,m)),c=E.createProgram(a,s),d=c.getTypeChecker(),l=new Map,f=new Map,u=[];for(let m of t){let g=ie(m);if(!on(g))continue;let w=c.getSourceFile(gs.join(e,m));if(!w)continue;let k={filePath:m,moduleId:Re(m,n).id,language:g,capabilityTier:fe(g),importPaths:yy(w),symbols:[]};l.set(m,k);for(let O of w.statements){if(E.isFunctionDeclaration(O)&&O.name){Qt(e,u,k,w,O,O.name.text,"function",$t(O),.1,f);continue}if(E.isVariableStatement(O)){for(let y of O.declarationList.declarations){let b=hs(y.name);b&&y.initializer&&(E.isArrowFunction(y.initializer)||E.isFunctionExpression(y.initializer))&&Qt(e,u,k,w,y,b,"function",$t(y),.08,f)}continue}if(E.isClassDeclaration(O)&&O.name){Qt(e,u,k,w,O,O.name.text,"class",$t(O),.1,f);for(let y of O.members)(E.isMethodDeclaration(y)||E.isGetAccessorDeclaration(y)||E.isSetAccessorDeclaration(y))&&hs(y.name)&&Qt(e,u,k,w,y,hs(y.name),"method",!1,.05,f,O.name.text);continue}if(E.isInterfaceDeclaration(O)&&O.name){Qt(e,u,k,w,O,O.name.text,"interface",$t(O),.09,f);continue}if(E.isTypeAliasDeclaration(O)&&O.name){Qt(e,u,k,w,O,O.name.text,"type",$t(O),.09,f);continue}E.isEnumDeclaration(O)&&O.name&&Qt(e,u,k,w,O,O.name.text,"enum",$t(O),.09,f)}}for(let m of u){let g=new Set;for(let y of m.record.importPaths){let b=ai(y,m.record.filePath,r,n,i);b&&g.add(b)}let w=new Set,k=new Map,O=o(y=>{if(E.isCallExpression(y)||E.isNewExpression(y)){let b=Oy(y.expression);b&&!De.has(b)&&w.add(b);let P=wy(d,y.expression)?.declarations?.[0];if(P){let _=f.get(kl(e,P));_&&_.id!==m.record.id&&k.set(_.id,{symbolId:_.id,name:_.name,filePath:_.filePath,moduleId:_.moduleId,reason:ms(m.record.moduleId,_.moduleId,g)})}}E.forEachChild(y,O)},"visit");O(m.body??m.declaration),m.record.calls=Array.from(w).slice(0,24),m.record.callTargets=Array.from(k.values()).slice(0,Ee),m.record.confidence=Math.min(.99,m.record.confidence+(m.record.callTargets.length>0?.03:0))}return Array.from(l.values())}var by=p(()=>{"use strict";xt();Kr();bl();o(m0,"scriptKindFromFilePath");o(hy,"getNodeLine");o(kl,"getDeclarationKey");o(gy,"getSignatureSnippet");o(vl,"hasModifier");o($t,"isExportedDeclaration");o(hs,"getPropertyNameText");o(Oy,"getCallExpressionName");o(yy,"collectTypeScriptImportPaths");o(Qt,"registerTypeScriptSymbol");o(wy,"resolveTypeScriptCallSymbol");o(h0,"analyzeTypeScriptFiles")});import st from"path";function g0(e){return[...e.typeScriptFiles,...e.pythonFiles,...e.goFiles,...e.rustFiles,...e.fallbackFiles]}function O0(e){let t=new Map;for(let n of e)t.set(n.language,(t.get(n.language)??0)+1);return Array.from(t.entries()).map(([n,r])=>({language:n,capabilityTier:fe(n),fileCount:r}))}function y0(e,t){return t==="full"?e:{...e,confidence:Math.min(.68,Math.max(.32,e.confidence-.18))}}function w0(e,t){return e.map(n=>y0(n,t))}async function Os(e,t={}){let n=e.overview,r=e.workspaceRoot,i=t.profile??t.preflight?.analysisProfile??"full",s=t.preflight,a=s?.storageRoot??await zo(r,i),c=e.inventory,d=c?null:await Yr(r,n.source),l=s?.dirtyPaths??e.dirtyPaths,f=new Set((c?.allFiles??d?.files??[]).map(S=>U(S)));if(l&&l.length>0)for(let S of l){let v=st.join(r,S);await qo(v)?f.add(S):f.delete(S)}let u=Array.from(f).sort((S,v)=>S.localeCompare(v)),{areaByFile:m,filesByAreaId:g,testFilesByAreaId:w,docFilesByAreaId:k}=OO(u,n.areas),O=u.filter(S=>Wn.has(st.extname(S).toLowerCase())),y=new Set(O),b=s?.dirtyPathsFingerprint??(l?Br(l):void 0),x=s?.dirtySourcePaths?s.dirtySourcePaths.filter(S=>y.has(S)):l?l.filter(S=>y.has(S)):[],P=s?.dirtySourceStateMap??(x.length>0?await Fn(r,x,m,n.areas,i):void 0),_=s?.dirtySourceFingerprint??(l?Dn(P?Array.from(P.values()).sort((S,v)=>S.filePath.localeCompare(v.filePath)):[]):void 0);return{analysisProfile:i,overview:n,overviewFingerprint:Uo(n,u),workspaceSnapshot:s?.workspaceSnapshot??Vo(n),inventory:c,workspaceRoot:r,storageRoot:a,allFiles:u,areaByFile:m,filesByAreaId:g,testFilesByAreaId:w,docFilesByAreaId:k,sourceFiles:O,sourceFileSet:y,dirtyPaths:l,dirtyPathsFingerprint:b,dirtySourceFingerprint:_,dirtySourceStateMap:P,moduleAliases:py(n.areas),buckets:qd(O)}}function xl(e,t){return{...e,sourceStates:t,sourceFingerprint:Dn(t)}}async function Pl(e,t){let n=new Map(t.map(s=>[s,null])),r=qd(t);if(e.analysisProfile==="full"&&r.typeScriptFiles.length>0){let{analyzeTypeScriptFiles:s}=await Promise.resolve().then(()=>(by(),Sy)),a=await s(e.workspaceRoot,r.typeScriptFiles,e.overview.areas,e.sourceFileSet,e.moduleAliases);for(let c of a)n.set(c.filePath,c)}if(r.pythonFiles.length>0){let s=await sy(e.workspaceRoot,r.pythonFiles,e.overview.areas);for(let a of s)n.set(a.filePath,a)}if(r.goFiles.length>0){let s=await cy(e.workspaceRoot,r.goFiles,e.overview.areas);for(let a of s)n.set(a.filePath,a)}if(r.rustFiles.length>0){let s=await dy(e.workspaceRoot,r.rustFiles,e.overview.areas);for(let a of s)n.set(a.filePath,a)}let i=e.analysisProfile==="light"?[...r.typeScriptFiles,...r.fallbackFiles]:r.fallbackFiles;if(i.length>0){let s=await Promise.all(i.map(a=>fy(e.workspaceRoot,a,e.areaByFile.get(a)?.id??e.overview.areas[0].id)));for(let[a,c]of s.entries())n.set(i[a],c??null)}return n}function S0(e,t){return g0(e.buckets).flatMap(n=>{let r=t.get(n)??null;return r?[r]:[]})}async function ys(e,t){if(!e.sourceStates||!e.sourceFingerprint)throw new Error("materializeRepoIntelligenceIndex requires source state metadata.");let n=S0(e,t),r=n.flatMap(y=>y.symbols),i=new Map;for(let y of r){let b=y.name.toLowerCase(),x=i.get(b)??[];x.push(y),i.set(b,x)}let s=r.map(y=>{let b=new Set;for(let _ of y.importPaths){let S=ai(_,y.filePath,e.sourceFileSet,e.overview.areas,e.moduleAliases);S&&b.add(S)}let x=y.calls.flatMap(_=>(i.get(_.toLowerCase())??[]).map(S=>({candidate:S,reason:ms(y.moduleId,S.moduleId,b)}))).filter(({candidate:_})=>_.id!==y.id).sort((_,S)=>{if(_.reason!==S.reason){let v=["same-module","imported-module","name-match"];return v.indexOf(_.reason)-v.indexOf(S.reason)}return _.candidate.filePath.localeCompare(S.candidate.filePath)}),P=new Map;for(let{candidate:_,reason:S}of x)if(P.has(_.id)||P.set(_.id,{symbolId:_.id,name:_.name,filePath:_.filePath,moduleId:_.moduleId,reason:S}),P.size>=Ee)break;return{...y,callTargets:Array.from(P.values())}}),a=w0(s,e.analysisProfile),c=new Map;for(let y of e.overview.areas)c.set(y.id,{dependencies:new Set,dependents:new Set,languageCounts:new Map,sourceFileCount:0,symbolCount:0,entryFiles:[]});for(let y of n){let b=c.get(y.moduleId);if(!b)continue;let x=new Map(b.languageCounts);x.set(y.language,(x.get(y.language)??0)+1);let P=new Set(b.dependencies),_=/\/(?:index|main|app|server|cli)\.[^.]+$/.test(y.filePath)||/^(index|main|app|server|cli)\.[^.]+$/.test(y.filePath)?ge([...b.entryFiles,y.filePath],4):b.entryFiles;for(let S of y.importPaths){let v=ai(S,y.filePath,e.sourceFileSet,e.overview.areas,e.moduleAliases);v&&v!==y.moduleId&&P.add(v)}c.set(y.moduleId,{...b,sourceFileCount:b.sourceFileCount+1,symbolCount:b.symbolCount+y.symbols.length,languageCounts:x,dependencies:P,entryFiles:_})}for(let[y,b]of c.entries())for(let x of b.dependencies){let P=c.get(x);P&&c.set(x,{...P,dependents:new Set([...P.dependents,y])})}let d=Array.from(c.entries()).map(([y,b])=>{let x=e.overview.areas.find(R=>R.id===y);if(!x)return null;let P=Array.from(b.dependencies).sort((R,I)=>R.localeCompare(I)),_=Array.from(b.dependents).sort((R,I)=>R.localeCompare(I)),S=Array.from(b.languageCounts.entries()).map(([R,I])=>({language:R,capabilityTier:fe(R),fileCount:I})).sort((R,I)=>I.fileCount-R.fileCount),v=a.filter(R=>R.moduleId===y);return{moduleId:x.id,label:x.label,kind:x.kind,root:x.root,fileCount:e.filesByAreaId.get(x.id)?.length??0,sourceFileCount:b.sourceFileCount,symbolCount:b.symbolCount,languages:S,topSymbols:v.sort((R,I)=>Number(I.exported)-Number(R.exported)||I.confidence-R.confidence).slice(0,6).map(R=>R.name),dependencies:P,dependents:_,entryFiles:b.entryFiles,keyTests:(e.testFilesByAreaId.get(y)??[]).slice(0,4),keyDocs:(e.docFilesByAreaId.get(y)??[]).slice(0,4),sampleFiles:x.sampleFiles.slice(0,5),processIds:[],confidence:uO(v,S)}}).filter(y=>y!==null).sort((y,b)=>b.symbolCount-y.symbolCount||y.moduleId.localeCompare(b.moduleId)),l=my(d,a),f=new Map;for(let y of l){let b=f.get(y.moduleId)??[];b.push(y.id),f.set(y.moduleId,b)}let u=d.map(y=>({...y,processIds:f.get(y.moduleId)??[]})),m={schemaVersion:te,workspaceRoot:e.workspaceRoot,generatedAt:new Date().toISOString(),overviewGeneratedAt:e.overview.generatedAt,sourceFileCount:e.sourceFiles.length,sourceFingerprint:e.sourceFingerprint,languages:O0(n),modules:u,symbols:a,processes:l},g={schemaVersion:te,workspaceRoot:e.workspaceRoot,generatedAt:m.generatedAt,overviewGeneratedAt:e.overview.generatedAt,overviewFingerprint:e.overviewFingerprint,workspaceSnapshot:e.workspaceSnapshot,sourceFileCount:e.sourceFiles.length,sourceFingerprint:e.sourceFingerprint,languageBreakdown:m.languages,sourceStates:e.sourceStates},w={schemaVersion:te,workspaceRoot:e.workspaceRoot,generatedAt:m.generatedAt,sourceFingerprint:e.sourceFingerprint,analyses:Object.fromEntries(e.sourceFiles.map(y=>[y,wO(t.get(y)??null)]))},k=mO(e),O={schemaVersion:te,workspaceRoot:e.workspaceRoot,branch:e.workspaceSnapshot.branch,head:e.workspaceSnapshot.head,queryGeneratedAt:m.generatedAt,overviewFingerprint:e.overviewFingerprint,sourceFingerprint:e.sourceFingerprint,sourceFileCount:e.sourceFiles.length,dirtyPathsFingerprint:e.dirtyPathsFingerprint??Br(e.dirtyPaths??[]),dirtySourceFingerprint:e.dirtySourceFingerprint??Dn([]),dirtySourcePaths:k};return await kt(st.join(e.storageRoot,nO),u),await kt(st.join(e.storageRoot,rO),a),await kt(st.join(e.storageRoot,iO),l),await kt(st.join(e.storageRoot,bt),m),await kt(st.join(e.storageRoot,Lo),O),pO(e)&&(await kt(st.join(e.storageRoot,Do),g),await kt(st.join(e.storageRoot,Fo),w)),m}var vy=p(()=>{"use strict";Wo();Sl();bl();Kr();xt();Kr();o(g0,"orderedSourceFilesForBuild");o(O0,"collectLanguageBreakdown");o(y0,"calibrateSymbolConfidenceForProfile");o(w0,"calibrateSymbolsForProfile");o(Os,"prepareRepoIntelligenceBuildInputsFromSnapshot");o(xl,"finalizeRepoIntelligenceBuildInputs");o(Pl,"analyzeSourceFilesForBuild");o(S0,"collectOrderedAnalyses");o(ys,"materializeRepoIntelligenceIndex")});import At from"path";async function Tl(e){let t=await Ld(e.workspaceRoot,e.sourceFiles,e.areaByFile,e.overview.areas,e.analysisProfile),n=xl(e,t),r=await Pl(n,n.sourceFiles);return ys(n,r)}async function El(e){return le(At.join(e,Do),aO)}async function ky(e){return le(At.join(e,Fo),cO)}async function ws(e){return le(At.join(e,Lo),dO)}function xy(e,t){return Object.prototype.hasOwnProperty.call(e,t)}function Py(e,t,n){return t.schemaVersion===te&&n.schemaVersion===te&&t.workspaceRoot===e.workspaceRoot&&n.workspaceRoot===e.workspaceRoot&&t.workspaceSnapshot.source===e.workspaceSnapshot.source&&t.sourceStates.length===t.sourceFileCount&&n.sourceFingerprint===t.sourceFingerprint}async function b0(e,t){let n=await le(At.join(e.storageRoot,bt),Nn);return n?.schemaVersion!==te||n.workspaceRoot!==e.workspaceRoot||n.generatedAt!==t.generatedAt||n.sourceFileCount!==t.sourceFileCount||n.sourceFingerprint!==t.sourceFingerprint?null:n}function _y(e,t){return Yo(e.workspaceSnapshot)&&Dd(t.workspaceSnapshot,e.workspaceSnapshot)&&t.overviewFingerprint===e.overviewFingerprint&&t.sourceFileCount===e.sourceFiles.length}function Ty(e,t){return!!(e.workspaceSnapshot.source==="git"&&e.workspaceSnapshot.hasUncommittedChanges===!0&&t&&t.schemaVersion===te&&t.workspaceRoot===e.workspaceRoot&&t.head===e.workspaceSnapshot.head&&t.branch===e.workspaceSnapshot.branch&&t.overviewFingerprint===e.overviewFingerprint&&t.sourceFileCount===e.sourceFiles.length&&t.dirtyPathsFingerprint===e.dirtyPathsFingerprint&&t.dirtySourceFingerprint===e.dirtySourceFingerprint)}async function Ey(e){if(!Yo(e.workspaceSnapshot))return null;let t=await El(e.storageRoot);if(!t||t.schemaVersion!==te||t.workspaceRoot!==e.workspaceRoot||!Dd(t.workspaceSnapshot,e.workspaceSnapshot)||t.overviewFingerprint!==e.overviewFingerprint)return null;let n=await le(At.join(e.storageRoot,bt),Nn);return n?.schemaVersion!==te||n.workspaceRoot!==e.workspaceRoot||n.overviewGeneratedAt!==t.overviewGeneratedAt||n.sourceFileCount!==t.sourceFileCount||n.sourceFingerprint!==t.sourceFingerprint?null:n}async function Ry(e){if(e.workspaceSnapshot.source!=="git"||e.workspaceSnapshot.hasUncommittedChanges!==!0)return null;let t=await ws(e.storageRoot);if(!t||t.schemaVersion!==te||t.workspaceRoot!==e.workspaceRoot||t.head!==e.workspaceSnapshot.head||t.branch!==e.workspaceSnapshot.branch||t.overviewFingerprint!==e.overviewFingerprint||t.dirtyPathsFingerprint!==e.dirtyPathsFingerprint||t.dirtySourceFingerprint!==e.dirtySourceFingerprint)return null;let n=await le(At.join(e.storageRoot,bt),Nn);return n?.schemaVersion!==te||n.workspaceRoot!==e.workspaceRoot||n.generatedAt!==t.queryGeneratedAt||n.sourceFileCount!==t.sourceFileCount||n.sourceFingerprint!==t.sourceFingerprint?null:n}function Ss(e){return new Map(e.map(t=>[t.filePath,t]))}function Rl(e,t){let n=e.sourceFiles.map(r=>t.get(r)).filter(r=>r!==void 0);return n.length!==e.sourceFiles.length?null:xl(e,n)}function Il(e,t){let n=new Set;for(let r of e){let i=t.get(r.filePath);if(!i){n.add(r.filePath);continue}if(i.analyzerVersion!==r.analyzerVersion)return null;(i.fileFingerprint!==r.fileFingerprint||i.language!==r.language||i.moduleId!==r.moduleId)&&n.add(r.filePath)}return n}async function Ql(e,t,n,r){if(!e.sourceStates)return null;let i=Ss(e.sourceStates),s=e.analysisProfile==="full"&&Array.from(r).some(d=>{let l=i.get(d);return l?on(l.language):!1}),a=new Set;for(let d of e.sourceStates){if(s&&on(d.language)){a.add(d.filePath);continue}r.has(d.filePath)&&a.add(d.filePath)}let c=new Map;for(let d of e.sourceStates)if(!a.has(d.filePath)){if(!xy(n.analyses,d.filePath))return null;c.set(d.filePath,SO(d.filePath,d,n.analyses[d.filePath]??null))}if(a.size>0){let d=await Pl(e,e.sourceFiles.filter(l=>a.has(l)));for(let l of a)c.set(l,d.get(l)??null)}for(let d of e.sourceStates){if(!c.has(d.filePath))return null;let l=c.get(d.filePath)??null;if(l&&(l.filePath!==d.filePath||l.moduleId!==d.moduleId||l.language!==d.language)||t.get(d.filePath)?.analyzerVersion!==void 0&&t.get(d.filePath)?.analyzerVersion!==d.analyzerVersion)return null}return c}async function Iy(e,t,n){if(e.workspaceSnapshot.source!=="git"||e.workspaceSnapshot.hasUncommittedChanges!==!0||t.workspaceSnapshot.source!=="git"||e.workspaceSnapshot.head!==t.workspaceSnapshot.head||e.workspaceSnapshot.branch!==t.workspaceSnapshot.branch)return null;let r=new Set(e.dirtyPaths??[]),i=await ws(e.storageRoot),s=new Set(i&&i.workspaceRoot===e.workspaceRoot&&i.head===e.workspaceSnapshot.head&&i.branch===e.workspaceSnapshot.branch?i.dirtySourcePaths:[]),a=Ss(t.sourceStates),c=new Map,d=new Set,l=e.dirtySourceStateMap??new Map;for(let g of e.sourceFiles){let w=a.get(g);if(!w){if(!r.has(g))return null;d.add(g);continue}if(r.has(g)||s.has(g)){d.add(g);continue}c.set(g,w)}if(d.size>0){let g=new Set;for(let w of d){let k=l.get(w);if(k){c.set(w,k);continue}g.add(w)}if(g.size>0){let w=await Fn(e.workspaceRoot,g,e.areaByFile,e.overview.areas,e.analysisProfile);for(let[k,O]of w.entries())c.set(k,O)}}let f=Rl(e,c);if(!f?.sourceStates)return null;let u=Il(f.sourceStates,a);if(!u)return null;let m=await Ql(f,a,n,u);return m?ys(f,m):null}async function Qy(e,t,n){let r=await Fn(e.workspaceRoot,e.sourceFiles,e.areaByFile,e.overview.areas,e.analysisProfile),i=Rl(e,r);if(!i?.sourceStates)return null;let s=Ss(t.sourceStates),a=Il(i.sourceStates,s);if(!a)return null;if(a.size===0)return b0(i,t);let c=await Ql(i,s,n,a);return c?ys(i,c):null}async function $y(e,t){if(!t)return null;let n=await ky(e.storageRoot);if(!n||!Py(e,t,n))return null;let r=await Iy(e,t,n);return r||Qy(e,t,n)}async function _l(e,t=!1){let n=t?null:await El(e.storageRoot),r=!t&&e.workspaceSnapshot.source==="git"&&e.workspaceSnapshot.hasUncommittedChanges===!0?await ws(e.storageRoot):null;if(n&&_y(e,n)){let i=await le(At.join(e.storageRoot,bt),Nn);if(i?.schemaVersion===te&&i.workspaceRoot===e.workspaceRoot&&i.overviewGeneratedAt===n.overviewGeneratedAt&&i.sourceFileCount===n.sourceFileCount&&i.sourceFingerprint===n.sourceFingerprint)return i}if(Ty(e,r)){let i=await le(At.join(e.storageRoot,bt),Nn);if(i?.schemaVersion===te&&i.workspaceRoot===e.workspaceRoot&&i.generatedAt===r?.queryGeneratedAt&&i.sourceFileCount===r.sourceFileCount&&i.sourceFingerprint===r.sourceFingerprint)return i}if(!t){let i=await $y(e,n);if(i)return i}return Tl(e)}async function ci(e,t=!1,n="full"){if(t){let c=await Os(e,{profile:n});return _l(c,!0)}let r=await yO(e,n),i=await Ey(r);if(i)return i;let s=await Ry(r);if(s)return s;let a=await Os(e,{preflight:r});return _l(a,!1)}async function v0(e,t={}){let n=await rn(e,{targetPath:t.targetPath,refresh:t.refresh}),r=await Os(n,{profile:t.profile??"full"});return Tl(r)}async function di(e,t={}){let n=await rn(e,{targetPath:t.targetPath,refresh:t.refresh});return ci(n,t.refresh===!0,t.profile??"full")}var $l=p(()=>{"use strict";Wo();Kr();vy();xt();o(Tl,"buildRepoIntelligenceIndexFromInputs");o(El,"readRepoIntelligenceManifest");o(ky,"readFileAnalysisIndex");o(ws,"readDirtySourceHint");o(xy,"hasOwnAnalysisEntry");o(Py,"hasCompatibleIncrementalCache");o(b0,"readCompatibleCachedQueryIndex");o(_y,"canDirectReuseCleanCachedQueryIndex");o(Ty,"canDirectReuseDirtyCachedQueryIndex");o(Ey,"tryDirectReuseCleanCachedQueryIndexFromPreflight");o(Ry,"tryDirectReuseDirtyCachedQueryIndexFromPreflight");o(Ss,"mapSourceStatesByFile");o(Rl,"buildCompleteInputsFromSourceStates");o(Il,"classifyChangedOrNewSourceFiles");o(Ql,"buildIncrementalAnalysisEntries");o(Iy,"tryGitDirtyIncrementalRepoIntelligenceBuild");o(Qy,"tryStatBasedIncrementalRepoIntelligenceBuild");o($y,"tryIncrementalRepoIntelligenceBuild");o(_l,"getRepoIntelligenceIndexFromInputs");o(ci,"getRepoIntelligenceIndexFromSnapshot");o(v0,"buildRepoIntelligenceIndex");o(di,"getRepoIntelligenceIndex")});import k0 from"path";function Ay(e,t,n,r){return e>=20||t>=4e3||n>=5||r>=5?"systemic":e>=8||t>=1200||n>=3||r>=3?"complex":e>=3||t>=250||n>=2||r>=2?"moderate":"simple"}function Cy(e,t,n){return e>=30||t>=4e3||n>=5?"massive":e>=10||t>=1200||n>=3?"large":"small"}function Gn(e){return`${e.generatedAt} (overview ${e.overviewGeneratedAt})`}function li(e,t,n){if(n){let i=U(n),s=e.modules.find(a=>i===a.root||i.startsWith(`${a.root}/`)||a.sampleFiles.includes(i));if(s)return s}let r=t?.trim().toLowerCase();return r?e.modules.slice().sort((i,s)=>s.symbolCount-i.symbolCount).find(i=>i.moduleId.toLowerCase()===r||i.label.toLowerCase()===r||i.root.toLowerCase()===r||k0.posix.basename(i.root).toLowerCase()===r)??e.modules.find(i=>i.moduleId.toLowerCase().includes(r)||i.label.toLowerCase().includes(r)||i.root.toLowerCase().includes(r))??null:e.modules.find(i=>i.moduleId!==".")??e.modules[0]??null}function My(e,t,n){let r=t.trim().toLowerCase(),i=n?.trim().toLowerCase();return e.symbols.filter(s=>s.name.toLowerCase()===r||s.qualifiedName.toLowerCase()===r||s.filePath.toLowerCase()===r).sort((s,a)=>{let c=i&&(s.moduleId.toLowerCase().includes(i)||s.filePath.toLowerCase().includes(i))?1:0,d=i&&(a.moduleId.toLowerCase().includes(i)||a.filePath.toLowerCase().includes(i))?1:0;return d!==c?d-c:Number(a.exported)-Number(s.exported)||a.confidence-s.confidence})}function Xy(e,t,n){let r=t?.trim().toLowerCase(),i=n?.trim().toLowerCase();return e.processes.filter(s=>{let a=!r||s.label.toLowerCase().includes(r)||s.entryFile.toLowerCase().includes(r)||(s.entrySymbol?.toLowerCase().includes(r)??!1),c=!i||s.moduleId.toLowerCase().includes(i);return a&&c}).sort((s,a)=>a.confidence-s.confidence||s.label.localeCompare(a.label))}function bs(e,t){return e.symbols.filter(n=>n.callTargets.some(r=>r.symbolId===t)).sort((n,r)=>r.confidence-n.confidence).slice(0,Ee)}function Al(e,t){let n=li(e,t.module,t.targetPath);if(!n)throw new Error(`No module matched "${t.module??t.targetPath??"current workspace"}".`);return{module:n,freshness:Gn(e),confidence:n.confidence,evidence:n.sampleFiles.slice(0,4)}}function Cl(e,t){let n=My(e,t.symbol,t.module);if(n.length===0)throw new Error(`No symbol matched "${t.symbol}".`);let[r,...i]=n;return{symbol:r,alternatives:i.slice(0,4),callers:bs(e,r.id),freshness:Gn(e),confidence:r.confidence}}function jy(e,t){let n=Xy(e,t.entry??t.targetPath,t.module);if(n.length===0&&t.module){let s=li(e,t.module,t.targetPath);if(s?.processIds[0]){let a=e.processes.find(c=>c.id===s.processIds[0]);if(a)return{process:a,alternatives:[],freshness:Gn(e),confidence:a.confidence}}}let[r,...i]=n;if(!r)throw new Error(`No process matched "${t.entry??t.module??t.targetPath??"request"}".`);return{process:r,alternatives:i.slice(0,4),freshness:Gn(e),confidence:r.confidence}}function Ml(e,t,n){let r=null,i=[],s=[],a=[],c=.65;if(t.symbol){let l=Cl(e,{symbol:t.symbol,module:t.module}),f=ge([l.symbol.moduleId,...l.symbol.callTargets.map(u=>u.moduleId),...l.callers.map(u=>u.moduleId)]);r={kind:"symbol",label:l.symbol.name,moduleId:l.symbol.moduleId,filePath:l.symbol.filePath},i=e.modules.filter(u=>f.includes(u.moduleId)),s=ge([l.symbol.id,...l.symbol.callTargets.map(u=>u.symbolId),...l.callers.map(u=>u.id)]).map(u=>e.symbols.find(m=>m.id===u)).filter(u=>u!==void 0),a=l.callers,c=l.confidence}else if(t.path){let l=U(t.path),f=li(e,void 0,l),u=e.symbols.filter(m=>m.filePath===l);r={kind:"path",label:l,moduleId:f?.moduleId,filePath:l},i=f?[f,...e.modules.filter(m=>f.dependents.includes(m.moduleId))]:[],s=u,a=u.flatMap(m=>bs(e,m.id)).slice(0,Ee),c=f?.confidence??.62}else{let l=li(e,t.module,t.targetPath);if(!l)throw new Error("impact_estimate requires one of symbol, path, or module.");r={kind:"module",label:l.label,moduleId:l.moduleId},i=[l,...e.modules.filter(f=>l.dependents.includes(f.moduleId))],s=e.symbols.filter(f=>f.moduleId===l.moduleId).slice(0,Ee),a=s.flatMap(f=>bs(e,f.id)).slice(0,Ee),c=l.confidence}let d=n?n.files.filter(l=>i.some(f=>l.areaId===f.moduleId)||s.some(f=>l.path===f.filePath)).length:0;return{target:r,summary:d>0?`${r.label} overlaps with ${d} currently changed file(s); validate blast radius before editing.`:`${r.label} primarily affects ${ge(i.map(l=>l.label),4).join(", ")||"its local module"} and ${s.length} indexed symbol(s).`,impactedModules:i,impactedSymbols:s.slice(0,Ee),callers:a.slice(0,Ee),changedScope:n,freshness:Gn(e),confidence:c}}async function x0(e,t={}){let n=await di(e,t);return Al(n,t)}async function P0(e,t){let n=await di(e,t);return Cl(n,t)}async function _0(e,t){let n=await di(e,t);return jy(n,t)}async function T0(e,t){let n=await rn(e,{targetPath:t.targetPath,refresh:t.refresh}),r=await ci(n,t.refresh===!0,t.profile??"full"),i;try{i=await Xo(n,{scope:"all"})}catch(s){Te("impact_estimate could not load changed scope.",s),i=void 0}return Ml(r,t,i)}async function E0(e,t={}){let n=await rn(e,{targetPath:t.targetPath,refresh:t.refresh}),r=t.targetPath??(e.executionCwd?".":void 0),[i,s]=await Promise.all([ci(n,t.refresh===!0,t.profile??"full"),Xo(n,{scope:"all"}).catch(v=>(Te("Routing signals could not load changed scope.",v),null))]),a=null,c=null;try{a=Al(i,{targetPath:r})}catch(v){Te("Routing signals could not resolve module context.",v)}try{c=Ml(i,{targetPath:r},s??void 0)}catch(v){Te("Routing signals could not resolve impact estimate.",v)}let d=s?.areasTouched.map(v=>v.areaId).slice(0,8)??[],l=s?.totalChangedFiles??0,f=s?.changedLineCount??0,u=s?.addedLineCount??0,m=s?.deletedLineCount??0,g=s?.areasTouched.length??0,w=c?.impactedModules.length??(a?1:0),k=Ay(l,f,g,w),O=Cy(l,f,g),y=a?.confidence,b=c?.confidence,x=(y??1)<.72||(b??1)<.72,P=a?.module.languages[0]?.capabilityTier??i.languages[0]?.capabilityTier??"low",_=k==="complex"||k==="systemic"||d.length>1||(c?.impactedModules.length??0)>1,S=x||(s?.riskHints.length??0)>0||(c?.changedScope?.riskHints.length??0)>0;return{workspaceRoot:i.workspaceRoot,changedFileCount:l,changedLineCount:f,addedLineCount:u,deletedLineCount:m,touchedModuleCount:g,changedModules:d,crossModule:g>1||w>1,reviewScale:O,riskHints:ge([...x?["Light repo routing uses heuristic static analysis; validate low-confidence edges before editing."]:[],...s?.riskHints??[],...c?.changedScope?.riskHints??[]],4),activeModuleId:a?.module.moduleId,activeModuleConfidence:y,activeImpactConfidence:b,impactedModuleCount:w,impactedSymbolCount:c?.impactedSymbols.length??0,predominantCapabilityTier:P,suggestedComplexity:k,plannerBias:_,investigationBias:S,lowConfidence:x}}var Wy=p(()=>{"use strict";Wo();$l();xt();o(Ay,"deriveRoutingComplexity");o(Cy,"deriveReviewScale");o(Gn,"buildFreshnessLabel");o(li,"findModuleMatch");o(My,"findSymbolMatches");o(Xy,"findProcessMatches");o(bs,"collectCallers");o(Al,"resolveModuleContextFromIndex");o(Cl,"resolveSymbolContextFromIndex");o(jy,"resolveProcessContextFromIndex");o(Ml,"resolveImpactEstimateFromIndex");o(x0,"getModuleContext");o(P0,"getSymbolContext");o(_0,"getProcessContext");o(T0,"getImpactEstimate");o(E0,"getRepoRoutingSignals")});var Ny=p(()=>{"use strict";$l();Wy()});function Xl(e,...t){let n=e.trim().toLowerCase(),r=0;for(let i of t){if(!i)continue;let s=i.toLowerCase();if(s===n){r=Math.max(r,1);continue}if(s.startsWith(n)){r=Math.max(r,.92);continue}if(s.includes(n)){r=Math.max(r,.78);continue}let a=n.split(/\s+/).filter(Boolean);a.length>0&&a.every(c=>s.includes(c))&&(r=Math.max(r,.66))}return r}function R0(e,t){return{item:{title:`${e.name} (${e.kind})`,locator:`${e.filePath}:${e.line}`,snippet:e.signature,score:t,metadata:{kind:"symbol",moduleId:e.moduleId,exported:e.exported,confidence:e.confidence}},artifact:{kind:"symbol",label:e.qualifiedName,value:`${e.filePath}:${e.line}`}}}function I0(e,t){return{item:{title:e.label,locator:e.root,snippet:`Module ${e.moduleId} with ${e.symbolCount} symbols and ${e.sourceFileCount} source files.`,score:t,metadata:{kind:"module",moduleId:e.moduleId,confidence:e.confidence}},artifact:{kind:"module",label:e.label,value:e.root}}}function Q0(e,t){return{item:{title:e.label,locator:e.entryFile,snippet:e.summary,score:t,metadata:{kind:"process",moduleId:e.moduleId,confidence:e.confidence}},artifact:{kind:"process",label:e.label,value:e.entryFile}}}function $0(e,t,n,r){let i=[];if(n==="auto"||n==="symbol")for(let a of e.symbols){let c=Xl(t,a.name,a.qualifiedName,a.filePath,a.signature);c>0&&i.push({score:c,...R0(a,c)})}if(n==="auto"||n==="module")for(let a of e.modules){let c=Xl(t,a.label,a.moduleId,a.root,...a.topSymbols);c>0&&i.push({score:c,...I0(a,c)})}if(n==="auto"||n==="process")for(let a of e.processes){let c=Xl(t,a.label,a.entryFile,a.entrySymbol,a.summary);c>0&&i.push({score:c,...Q0(a,c)})}i.sort((a,c)=>c.score!==a.score?c.score-a.score:a.item.title.localeCompare(c.item.title));let s=i.slice(0,r);return{items:s.map(a=>a.item),artifacts:s.map(a=>a.artifact),generatedAt:e.generatedAt,sourceFileCount:e.sourceFileCount,capabilityEngine:e.capability?.engine}}var Dy=p(()=>{"use strict";o(Xl,"scoreCandidate");o(R0,"buildSymbolItem");o(I0,"buildModuleItem");o(Q0,"buildProcessItem");o($0,"collectSemanticLookupItems")});function vs(e){return e>=.8?"high":e>=.65?"medium":"low"}function ks(e){return!e||e.status==="ok"&&e.warnings.length===0?[]:[`Capability: ${e.engine}/${e.status}`,...e.warnings.map(t=>`Warning: ${t}`)]}function A0(e){let{module:t}=e;return[`Module context for ${t.label}`,`Module: ${t.moduleId} [${t.kind}]`,`Freshness: ${e.freshness}`,`Confidence: ${vs(e.confidence)} (${e.confidence.toFixed(2)})`,`Files: ${t.fileCount} total | ${t.sourceFileCount} source | ${t.symbolCount} symbols`,`Languages: ${t.languages.map(n=>`${n.language}/${n.capabilityTier}:${n.fileCount}`).join(" | ")||"none"}`,`Dependencies: ${t.dependencies.join(" | ")||"none"}`,`Dependents: ${t.dependents.join(" | ")||"none"}`,`Entry files: ${t.entryFiles.join(" | ")||"none"}`,`Top symbols: ${t.topSymbols.join(" | ")||"none"}`,`Tests: ${t.keyTests.join(" | ")||"none"}`,`Docs: ${t.keyDocs.join(" | ")||"none"}`,`Processes: ${t.processIds.join(" | ")||"none"}`,`Evidence: ${e.evidence.join(" | ")||"none"}`,...ks(e.capability)].join(`
693
+ `)}function C0(e){let{symbol:t}=e;return[`Symbol context for ${t.name}`,`Definition: ${t.filePath}:${t.line}`,`Module: ${t.moduleId} | Kind: ${t.kind} | Exported: ${t.exported?"yes":"no"}`,`Language: ${t.language}/${t.capabilityTier}`,`Freshness: ${e.freshness}`,`Confidence: ${vs(e.confidence)} (${e.confidence.toFixed(2)})`,`Signature: ${t.signature}`,`Possible callees: ${t.callTargets.map(n=>`${n.name} -> ${n.filePath}`).join(" | ")||"none"}`,`Possible callers: ${e.callers.map(n=>`${n.name} -> ${n.filePath}`).join(" | ")||"none"}`,`Imports: ${t.importPaths.join(" | ")||"none"}`,e.alternatives.length>0?`Alternatives: ${e.alternatives.map(n=>`${n.name} @ ${n.filePath}:${n.line}`).join(" | ")}`:"Alternatives: none",...ks(e.capability)].join(`
694
+ `)}function M0(e){let{process:t}=e;return[`Process context for ${t.label}`,`Module: ${t.moduleId}`,`Entry: ${t.entryFile}${t.entrySymbol?` -> ${t.entrySymbol}`:""}`,`Freshness: ${e.freshness}`,`Confidence: ${vs(e.confidence)} (${e.confidence.toFixed(2)})`,`Summary: ${t.summary}`,"Steps:",...t.steps.map(n=>`- ${n.kind} ${n.symbolName} @ ${n.filePath}${n.line?`:${n.line}`:""} | ${n.note}`),e.alternatives.length>0?`Alternatives: ${e.alternatives.map(n=>n.label).join(" | ")}`:"Alternatives: none",...ks(e.capability)].join(`
695
+ `)}function X0(e){return[`Impact estimate for ${e.target.label}`,`Target: ${e.target.kind}${e.target.moduleId?` | module=${e.target.moduleId}`:""}${e.target.filePath?` | file=${e.target.filePath}`:""}`,`Freshness: ${e.freshness}`,`Confidence: ${vs(e.confidence)} (${e.confidence.toFixed(2)})`,`Summary: ${e.summary}`,`Impacted modules: ${e.impactedModules.map(t=>`${t.label}(${t.moduleId})`).join(" | ")||"none"}`,`Impacted symbols: ${e.impactedSymbols.map(t=>`${t.name} -> ${t.filePath}:${t.line}`).join(" | ")||"none"}`,`Possible callers: ${e.callers.map(t=>`${t.name} -> ${t.filePath}:${t.line}`).join(" | ")||"none"}`,e.changedScope?`Changed-scope overlap: ${e.changedScope.files.filter(t=>e.impactedModules.some(n=>n.moduleId===t.areaId)||e.impactedSymbols.some(n=>n.filePath===t.path)).length} file(s)`:"Changed-scope overlap: unavailable",...ks(e.capability)].join(`
696
+ `)}var Fy=p(()=>{"use strict";o(vs,"confidenceLabel");o(ks,"capabilityLines");o(A0,"renderModuleContext");o(C0,"renderSymbolContext");o(M0,"renderProcessContext");o(X0,"renderImpactEstimate")});function j0(e){let t=0,n=new Map,r=new Map,i=new Set,s=[],a=[],c=o(d=>{n.set(d,t),r.set(d,t),t++,s.push(d),i.add(d);for(let l of e.get(d)??[])n.has(l)?i.has(l)&&r.set(d,Math.min(r.get(d)??0,n.get(l)??0)):(c(l),r.set(d,Math.min(r.get(d)??0,r.get(l)??0)));if((r.get(d)??0)===(n.get(d)??0)){let l=[],f="";do f=s.pop()??"",i.delete(f),l.push(f);while(f!==d&&s.length>=0&&f!=="");a.push(l)}},"strongconnect");for(let d of e.keys())n.has(d)||c(d);return a}function W0(e){return e>=4?"high":e===3?"medium":"low"}function N0(e){let t=e.modules??[],n=new Set(t.map(d=>d.moduleId)),r=new Map,i=0;for(let d of t){let l=(d.dependencies??[]).filter(f=>n.has(f)&&f!==d.moduleId);r.set(d.moduleId,l),i+=l.length}let s=j0(r).filter(d=>d.length>1).map(d=>{let l=[...d].reverse();return{chain:[...l,l[0]??""],hopCount:d.length,severity:W0(d.length)}}).sort((d,l)=>l.hopCount-d.hopCount),a=s.filter(d=>d.severity==="high").length,c=s.length===0?"No circular dependencies found.":`${s.length} cycle(s) found, ${a} high-severity.`;return{cycles:s,scanned:{modules:t.length,edges:i},summary:c}}function D0(e){let t=[e.summary,`Scanned ${e.scanned.modules} modules, ${e.scanned.edges} edges.`];for(let n of e.cycles)t.push(`- [${n.severity}] ${n.hopCount}-hop: ${n.chain.join(" -> ")}`);return t.join(`
697
+ `)}var Ly=p(()=>{"use strict";o(j0,"tarjanScc");o(W0,"severityFor");o(N0,"findCyclicDependencies");o(D0,"renderCycleAnalysis")});var qy={};xs(qy,{buildCompleteInputsFromSourceStates:()=>Rl,buildFreshnessLabel:()=>Gn,buildIncrementalAnalysisEntries:()=>Ql,buildRepoIntelligenceIndex:()=>v0,buildRepoIntelligenceIndexFromInputs:()=>Tl,canDirectReuseCleanCachedQueryIndex:()=>_y,canDirectReuseDirtyCachedQueryIndex:()=>Ty,classifyChangedOrNewSourceFiles:()=>Il,collectCallers:()=>bs,collectSemanticLookupItems:()=>$0,deriveReviewScale:()=>Cy,deriveRoutingComplexity:()=>Ay,findCyclicDependencies:()=>N0,findModuleMatch:()=>li,findProcessMatches:()=>Xy,findSymbolMatches:()=>My,getImpactEstimate:()=>T0,getModuleContext:()=>x0,getProcessContext:()=>_0,getRepoIntelligenceIndex:()=>di,getRepoIntelligenceIndexFromInputs:()=>_l,getRepoIntelligenceIndexFromSnapshot:()=>ci,getRepoRoutingSignals:()=>E0,getSymbolContext:()=>P0,hasCompatibleIncrementalCache:()=>Py,hasOwnAnalysisEntry:()=>xy,mapSourceStatesByFile:()=>Ss,readDirtySourceHint:()=>ws,readFileAnalysisIndex:()=>ky,readRepoIntelligenceManifest:()=>El,renderCycleAnalysis:()=>D0,renderImpactEstimate:()=>X0,renderModuleContext:()=>A0,renderProcessContext:()=>M0,renderSymbolContext:()=>C0,resolveImpactEstimateFromIndex:()=>Ml,resolveModuleContextFromIndex:()=>Al,resolveProcessContextFromIndex:()=>jy,resolveSymbolContextFromIndex:()=>Cl,tryDirectReuseCleanCachedQueryIndexFromPreflight:()=>Ey,tryDirectReuseDirtyCachedQueryIndexFromPreflight:()=>Ry,tryGitDirtyIncrementalRepoIntelligenceBuild:()=>Iy,tryIncrementalRepoIntelligenceBuild:()=>$y,tryStatBasedIncrementalRepoIntelligenceBuild:()=>Qy});var zy=p(()=>{"use strict";Ny();Dy();Fy();Ly()});import{parentPort as Nl}from"node:worker_threads";if(!Nl)throw new Error("semantic-worker must run inside a worker thread.");function jl(e){return typeof e=="object"&&e!==null}o(jl,"isRecord");function F0(e){return jl(e)&&typeof e.id=="number"&&typeof e.kind=="string"&&jl(e.context)&&jl(e.options)}o(F0,"isRequest");function L0(e){return e instanceof Error?{message:e.message,stack:e.stack}:{message:String(e)}}o(L0,"serializeError");async function q0(e){let t=await z0();switch(e.kind){case"buildIndex":return t.buildRepoIntelligenceIndex(e.context,e.options);case"getIndex":return t.getRepoIntelligenceIndex(e.context,e.options);case"module":return t.getModuleContext(e.context,e.options);case"symbol":return t.getSymbolContext(e.context,e.options);case"process":return t.getProcessContext(e.context,e.options);case"impact":return t.getImpactEstimate(e.context,e.options);case"routing":return t.getRepoRoutingSignals(e.context,e.options);case"semanticLookup":{let n=await t.getRepoIntelligenceIndex(e.context,e.options);return t.collectSemanticLookupItems(n,e.options.query,e.options.lookupKind,e.options.limit)}case"cyclicDeps":{let n=await t.getRepoIntelligenceIndex(e.context,e.options);return t.findCyclicDependencies(n)}}}o(q0,"runRequest");function Uy(e){Nl?.postMessage(e)}o(Uy,"post");var Vy=Promise.resolve(),Wl;function z0(){return Wl||(Wl=import.meta.url.endsWith(".ts")?U0():Promise.resolve().then(()=>(zy(),qy))),Wl}o(z0,"loadSemanticIndex");async function U0(){return await(await import("tsx/esm/api")).tsImport("./semantic-index.ts",{parentURL:import.meta.url})}o(U0,"loadDevSemanticIndex");Nl.on("message",e=>{Vy=Vy.then(async()=>{if(F0(e))try{Uy({id:e.id,ok:!0,result:await q0(e)})}catch(n){Uy({id:e.id,ok:!1,error:L0(n)})}}).catch(()=>{})});