@vyuhlabs/dxkit 2.9.4 → 2.10.0

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 (90) hide show
  1. package/CHANGELOG.md +138 -0
  2. package/dist/allowlist/annotate.d.ts +71 -0
  3. package/dist/allowlist/annotate.d.ts.map +1 -0
  4. package/dist/allowlist/annotate.js +105 -0
  5. package/dist/allowlist/annotate.js.map +1 -0
  6. package/dist/allowlist/cli.d.ts +6 -0
  7. package/dist/allowlist/cli.d.ts.map +1 -1
  8. package/dist/allowlist/cli.js +70 -37
  9. package/dist/allowlist/cli.js.map +1 -1
  10. package/dist/analyzers/dashboard/index.d.ts.map +1 -1
  11. package/dist/analyzers/dashboard/index.js +6 -1
  12. package/dist/analyzers/dashboard/index.js.map +1 -1
  13. package/dist/analyzers/health.d.ts.map +1 -1
  14. package/dist/analyzers/health.js +17 -2
  15. package/dist/analyzers/health.js.map +1 -1
  16. package/dist/analyzers/security/actions.d.ts.map +1 -1
  17. package/dist/analyzers/security/actions.js +13 -0
  18. package/dist/analyzers/security/actions.js.map +1 -1
  19. package/dist/analyzers/security/aggregator.d.ts +18 -0
  20. package/dist/analyzers/security/aggregator.d.ts.map +1 -1
  21. package/dist/analyzers/security/aggregator.js +28 -0
  22. package/dist/analyzers/security/aggregator.js.map +1 -1
  23. package/dist/analyzers/security/gather.d.ts.map +1 -1
  24. package/dist/analyzers/security/gather.js +6 -0
  25. package/dist/analyzers/security/gather.js.map +1 -1
  26. package/dist/analyzers/security/index.d.ts.map +1 -1
  27. package/dist/analyzers/security/index.js +81 -2
  28. package/dist/analyzers/security/index.js.map +1 -1
  29. package/dist/analyzers/security/scanner-drift.d.ts +21 -0
  30. package/dist/analyzers/security/scanner-drift.d.ts.map +1 -0
  31. package/dist/analyzers/security/scanner-drift.js +113 -0
  32. package/dist/analyzers/security/scanner-drift.js.map +1 -0
  33. package/dist/analyzers/security/shallow.d.ts.map +1 -1
  34. package/dist/analyzers/security/shallow.js +24 -2
  35. package/dist/analyzers/security/shallow.js.map +1 -1
  36. package/dist/analyzers/security/types.d.ts +38 -0
  37. package/dist/analyzers/security/types.d.ts.map +1 -1
  38. package/dist/analyzers/tools/graphify.d.ts +11 -0
  39. package/dist/analyzers/tools/graphify.d.ts.map +1 -1
  40. package/dist/analyzers/tools/graphify.js +429 -413
  41. package/dist/analyzers/tools/graphify.js.map +1 -1
  42. package/dist/analyzers/tools/grep-secrets.d.ts.map +1 -1
  43. package/dist/analyzers/tools/grep-secrets.js +9 -0
  44. package/dist/analyzers/tools/grep-secrets.js.map +1 -1
  45. package/dist/analyzers/tools/osv-scanner-fix.d.ts.map +1 -1
  46. package/dist/analyzers/tools/osv-scanner-fix.js +12 -1
  47. package/dist/analyzers/tools/osv-scanner-fix.js.map +1 -1
  48. package/dist/analyzers/tools/tool-registry.d.ts.map +1 -1
  49. package/dist/analyzers/tools/tool-registry.js +78 -43
  50. package/dist/analyzers/tools/tool-registry.js.map +1 -1
  51. package/dist/analyzers/tools/walk-source-files.d.ts +10 -0
  52. package/dist/analyzers/tools/walk-source-files.d.ts.map +1 -1
  53. package/dist/analyzers/tools/walk-source-files.js +14 -0
  54. package/dist/analyzers/tools/walk-source-files.js.map +1 -1
  55. package/dist/analyzers/types.d.ts +9 -0
  56. package/dist/analyzers/types.d.ts.map +1 -1
  57. package/dist/baseline/entry-to-located.d.ts +12 -5
  58. package/dist/baseline/entry-to-located.d.ts.map +1 -1
  59. package/dist/baseline/entry-to-located.js +21 -7
  60. package/dist/baseline/entry-to-located.js.map +1 -1
  61. package/dist/baseline/git-aware-match.d.ts +7 -5
  62. package/dist/baseline/git-aware-match.d.ts.map +1 -1
  63. package/dist/baseline/git-aware-match.js +78 -5
  64. package/dist/baseline/git-aware-match.js.map +1 -1
  65. package/dist/explore/context-hook.d.ts +49 -29
  66. package/dist/explore/context-hook.d.ts.map +1 -1
  67. package/dist/explore/context-hook.js +304 -29
  68. package/dist/explore/context-hook.js.map +1 -1
  69. package/dist/generator.d.ts.map +1 -1
  70. package/dist/generator.js +13 -7
  71. package/dist/generator.js.map +1 -1
  72. package/dist/ingest/snyk-policy.d.ts +22 -1
  73. package/dist/ingest/snyk-policy.d.ts.map +1 -1
  74. package/dist/ingest/snyk-policy.js +75 -18
  75. package/dist/ingest/snyk-policy.js.map +1 -1
  76. package/dist/languages/index.d.ts +28 -5
  77. package/dist/languages/index.d.ts.map +1 -1
  78. package/dist/languages/index.js +38 -7
  79. package/dist/languages/index.js.map +1 -1
  80. package/dist/languages/typescript.d.ts.map +1 -1
  81. package/dist/languages/typescript.js +19 -0
  82. package/dist/languages/typescript.js.map +1 -1
  83. package/dist/scoring/dimensions/security.d.ts +17 -0
  84. package/dist/scoring/dimensions/security.d.ts.map +1 -1
  85. package/dist/scoring/dimensions/security.js +12 -0
  86. package/dist/scoring/dimensions/security.js.map +1 -1
  87. package/package.json +1 -1
  88. package/templates/.claude/skills/dxkit-action/SKILL.md +11 -2
  89. package/templates/.claude/skills/dxkit-allowlist/SKILL.md +9 -0
  90. package/templates/.claude/skills/dxkit-onboard/SKILL.md +2 -2
@@ -47,6 +47,8 @@ const cache_1 = require("../cache");
47
47
  const health_1 = require("../health");
48
48
  const languages_1 = require("../../languages");
49
49
  const tools_unavailable_prose_1 = require("../tools/tools-unavailable-prose");
50
+ const walk_source_files_1 = require("../tools/walk-source-files");
51
+ const scanner_drift_1 = require("./scanner-drift");
50
52
  /**
51
53
  * G_v4_4 (2.4.7): build the "Remediation Commands" entry for one
52
54
  * dep-vuln finding by dispatching through the producing pack's
@@ -158,6 +160,10 @@ async function analyzeSecurity(repoPath, options = {}) {
158
160
  // Derived from the dedup'd aggregate, NOT from raw envelope arrays —
159
161
  // that's the D086/D091 closure. Sum of unique findings across the
160
162
  // code/secret/config categories.
163
+ // Already carry their allowlist annotation (`allowlisted` /
164
+ // `allowlistCategory`) — the aggregator stamps it at build time, so
165
+ // the renderer's "(N allowlisted)" counts and the score-lift share one
166
+ // source of truth instead of a second annotation pass here.
161
167
  const codeFindings = [
162
168
  ...aggregate.findingsByCategory.secret,
163
169
  ...aggregate.findingsByCategory.code,
@@ -203,6 +209,13 @@ async function analyzeSecurity(repoPath, options = {}) {
203
209
  total: aggregate.dependencyAdvisoryUniqueCount,
204
210
  findings: [...aggregate.findingsByCategory.dependency],
205
211
  };
212
+ // Did the scanner set grow since the last run? If so the report
213
+ // discloses that new findings are newly *visible*, not newly
214
+ // *introduced* — the root-cause explanation for a score that "got
215
+ // worse" on an unchanged commit after a dxkit upgrade enabled more
216
+ // scanners. Read-only + fail-open; compared against the most recent
217
+ // prior persisted report.
218
+ const scannerDrift = (0, scanner_drift_1.detectScannerCoverageDrift)(result.cwd, toolsUsed, result.builtAt.slice(0, 10));
206
219
  return {
207
220
  repo: stack.projectName || path.basename(result.cwd),
208
221
  analyzedAt: result.builtAt,
@@ -213,12 +226,57 @@ async function analyzeSecurity(repoPath, options = {}) {
213
226
  codeOnly: codeOnlySummary,
214
227
  secretsOnly: secretsOnlySummary,
215
228
  dependencies: depSummary,
229
+ // Scanner run-state for the score adapter's uncertainty
230
+ // caps — same canonical provenance the toolsUnavailable list
231
+ // above is derived from.
232
+ secretsAvailable: aggregate.provenance.secrets.ran,
233
+ codePatternsAvailable: aggregate.provenance.codePatterns.ran,
216
234
  },
217
235
  findings: codeFindings,
218
236
  toolsUsed,
219
237
  toolsUnavailable,
238
+ ...(scannerDrift ? { scannerDrift } : {}),
220
239
  };
221
240
  }
241
+ /**
242
+ * Inline " (N allowlisted)" suffix for a subtotal cell, or empty
243
+ * string when nothing in the axis is allowlisted. Keeps the raw count
244
+ * authoritative while disclosing how much of it is reviewed-and-accepted.
245
+ */
246
+ function allowlistedSuffix(allowlisted) {
247
+ return allowlisted > 0 ? ` (${allowlisted} allowlisted)` : '';
248
+ }
249
+ /**
250
+ * Explanatory note under a findings table when some of its
251
+ * findings are allowlisted. Clarifies that the raw count is unchanged
252
+ * and the suppressed items are reviewed-and-accepted, not hidden.
253
+ */
254
+ function pushAllowlistedNote(L, allowlisted) {
255
+ if (allowlisted <= 0)
256
+ return;
257
+ L.push(`> ℹ ${allowlisted} of the above ${allowlisted === 1 ? 'finding is' : 'findings are'} ` +
258
+ `covered by an active allowlist entry (reviewed and accepted). Counts above are raw ` +
259
+ `totals; the guardrail does not block on allowlisted findings.`);
260
+ L.push('');
261
+ }
262
+ /**
263
+ * Triage guidance for secret findings that sit in test files and aren't
264
+ * yet allowlisted. dxkit never lowers a secret's severity by location —
265
+ * a real credential leaked into a test is still a leak — so these surface
266
+ * at full severity and the reader decides: throwaway fixture (allowlist
267
+ * it) or real credential (rotate it). `count` is the un-allowlisted,
268
+ * test-located secret/config findings.
269
+ */
270
+ function pushTestSecretGuidance(L, count) {
271
+ if (count <= 0)
272
+ return;
273
+ L.push(`> 🔍 ${count} of the above ${count === 1 ? 'finding is' : 'findings are'} in test files. ` +
274
+ `dxkit does not lower a secret's severity by location — a real credential leaked into a ` +
275
+ `test is still a leak. Review each: if it's a throwaway fixture, allowlist it with ` +
276
+ '`vyuh-dxkit allowlist add --category test-fixture` (which also lifts it from the Security ' +
277
+ `score); if it's a real credential, rotate it and remove it from git history.`);
278
+ L.push('');
279
+ }
222
280
  function formatSecurityReport(report, elapsed) {
223
281
  const L = [];
224
282
  L.push('# Vulnerability Scan Report');
@@ -229,6 +287,18 @@ function formatSecurityReport(report, elapsed) {
229
287
  L.push('');
230
288
  L.push('---');
231
289
  L.push('');
290
+ // Scanner-coverage-drift note. Surfaced at the very top so a
291
+ // reader who sees a worse score knows to attribute it to improved
292
+ // measurement, not regressed code, BEFORE reading the numbers.
293
+ if (report.scannerDrift) {
294
+ const { added, previousDate } = report.scannerDrift;
295
+ const toolList = added.map((t) => `\`${t}\``).join(', ');
296
+ L.push(`> ℹ **Scanner coverage expanded since ${previousDate}.** This run added ` +
297
+ `${toolList}. Findings these scanners surface are newly **visible**, not newly ` +
298
+ `**introduced** — if the score moved, it reflects improved measurement of code ` +
299
+ `that was already there, not new risk.`);
300
+ L.push('');
301
+ }
232
302
  // C2.1 (perception D086 closure): three independent axes, each with
233
303
  // its own labeled table. Pre-C2.1 the executive summary had a single
234
304
  // "Code Findings" table that combined code+secret+config under one
@@ -253,6 +323,7 @@ function formatSecurityReport(report, elapsed) {
253
323
  const codeSources = [
254
324
  ...new Set(report.findings.filter((f) => f.category === 'code').map((f) => f.tool)),
255
325
  ].sort();
326
+ const codeAllowlisted = report.findings.filter((f) => f.category === 'code' && f.allowlisted).length;
256
327
  L.push('### Code Findings');
257
328
  L.push('');
258
329
  L.push(`_Sources: ${codeSources.join(', ') || '(none)'}_`);
@@ -263,8 +334,9 @@ function formatSecurityReport(report, elapsed) {
263
334
  L.push(`| HIGH | ${c.high} |`);
264
335
  L.push(`| MEDIUM | ${c.medium} |`);
265
336
  L.push(`| LOW | ${c.low} |`);
266
- L.push(`| **Subtotal** | **${c.total}** |`);
337
+ L.push(`| **Subtotal** | **${c.total}**${allowlistedSuffix(codeAllowlisted)} |`);
267
338
  L.push('');
339
+ pushAllowlistedNote(L, codeAllowlisted);
268
340
  // Secret + config severity table. Reads `summary.secretsOnly` from
269
341
  // the aggregator's `secretsBySeverity` axis.
270
342
  const secretSources = [
@@ -272,6 +344,11 @@ function formatSecurityReport(report, elapsed) {
272
344
  .filter((f) => f.category === 'secret' || f.category === 'config')
273
345
  .map((f) => f.tool)),
274
346
  ].sort();
347
+ const secretConfig = report.findings.filter((f) => f.category === 'secret' || f.category === 'config');
348
+ const secretAllowlisted = secretConfig.filter((f) => f.allowlisted).length;
349
+ // Un-allowlisted secrets that live in test files — surfaced for triage
350
+ // (fixture → allowlist, or real → rotate), never auto-suppressed.
351
+ const secretsInTests = secretConfig.filter((f) => !f.allowlisted && (0, walk_source_files_1.isTestSourceFile)(f.file)).length;
275
352
  L.push('### Secret & Config Findings');
276
353
  L.push('');
277
354
  L.push(`_Sources: ${secretSources.join(', ') || '(none)'}_`);
@@ -282,8 +359,10 @@ function formatSecurityReport(report, elapsed) {
282
359
  L.push(`| HIGH | ${k.high} |`);
283
360
  L.push(`| MEDIUM | ${k.medium} |`);
284
361
  L.push(`| LOW | ${k.low} |`);
285
- L.push(`| **Subtotal** | **${k.total}** |`);
362
+ L.push(`| **Subtotal** | **${k.total}**${allowlistedSuffix(secretAllowlisted)} |`);
286
363
  L.push('');
364
+ pushAllowlistedNote(L, secretAllowlisted);
365
+ pushTestSecretGuidance(L, secretsInTests);
287
366
  L.push('### Dependency Vulnerabilities');
288
367
  L.push('');
289
368
  if (d.tool) {
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/analyzers/security/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/analyzers/security/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAgFA,oDAIC;AAED,0CA4IC;AA8CD,oDAogBC;AApxBD;;GAEG;AACH,2CAA6B;AAC7B,4CAA6C;AAC7C,qCAA0C;AAC1C,2CAA0C;AAE1C,oCAAqD;AACrD,sCAAqD;AACrD,+CAA8C;AAE9C,8EAA+E;AAC/E,kEAA8D;AAC9D,mDAA6D;AAQ7D;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,SAAS,mBAAmB,CAAC,CAM5B;IACC,IAAI,CAAC,CAAC,CAAC,YAAY;QAAE,OAAO,IAAI,CAAC;IACjC,IAAI,CAAC,CAAC,MAAM,EAAE,CAAC;QACb,MAAM,IAAI,GAAG,IAAA,uBAAW,EAAC,CAAC,CAAC,MAAM,CAAC,CAAC;QACnC,IAAI,IAAI,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;YAChC,MAAM,GAAG,GAAG,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,YAAY,CAAC,CAAC;YAC3D,IAAI,GAAG;gBAAE,OAAO,GAAG,CAAC;QACtB,CAAC;IACH,CAAC;IACD,OAAO,aAAa,CAAC,CAAC,OAAO,OAAO,CAAC,CAAC,YAAY,kBAAkB,CAAC,CAAC,IAAI,IAAI,SAAS,GAAG,CAAC;AAC7F,CAAC;AAED;;;;;;;;;;;;;GAaG;AACH,SAAgB,oBAAoB,CAAC,GAAW,EAAE,YAAgC;IAChF,OAAO,YAAY;QACjB,CAAC,CAAC,aAAa,GAAG,SAAS,YAAY,EAAE;QACzC,CAAC,CAAC,yBAAyB,GAAG,yBAAyB,CAAC;AAC5D,CAAC;AAEM,KAAK,UAAU,eAAe,CACnC,QAAgB,EAChB,UAAkC,EAAE;IAEpC,MAAM,OAAO,GAAG,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC;IAElC,qEAAqE;IACrE,6DAA6D;IAC7D,kEAAkE;IAClE,sEAAsE;IACtE,qDAAqD;IACrD,MAAM,MAAM,GAAG,MAAM,IAAA,iCAAyB,EAAC;QAC7C,GAAG,EAAE,QAAQ;QACb,KAAK,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,IAAA,iCAAwB,EAAC,GAAG,EAAE,EAAE,OAAO,EAAE,CAAC;KAC3D,CAAC,CAAC;IACH,MAAM,EAAE,KAAK,EAAE,YAAY,EAAE,GAAG,MAAM,CAAC;IACvC,MAAM,SAAS,GAAG,YAAY,CAAC,iBAAiB,CAAC;IACjD,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,MAAM,IAAI,KAAK,CAAC,kEAAkE,CAAC,CAAC;IACtF,CAAC;IAED,8DAA8D;IAC9D,iEAAiE;IACjE,oEAAoE;IACpE,mEAAmE;IACnE,oEAAoE;IACpE,2DAA2D;IAC3D,uCAAuC;IACvC,MAAM,IAAI,GAAG,MAAM,IAAA,mBAAU,EAAC,sBAAsB,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,IAAA,uBAAc,EAAC,QAAQ,CAAC,CAAC,CAAC;IAE/F,qEAAqE;IACrE,6DAA6D;IAC7D,+DAA+D;IAC/D,iDAAiD;IACjD,MAAM,SAAS,GAAa,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IAC5C,MAAM,gBAAgB,GAAa,EAAE,CAAC;IACtC,IAAI,SAAS,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI;QAAE,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;;QACpF,gBAAgB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IACvC,IAAI,SAAS,CAAC,UAAU,CAAC,YAAY,CAAC,IAAI;QACxC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;;QACpD,gBAAgB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IACtC,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;QACd,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;YAAE,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAC3D,CAAC;SAAM,CAAC;QACN,gBAAgB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IACrC,CAAC;IACD,IAAI,SAAS,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,qBAAqB,CAAC,EAAE,CAAC;QACpF,SAAS,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;IACxC,CAAC;IAED,sEAAsE;IACtE,qEAAqE;IACrE,qEAAqE;IACrE,kEAAkE;IAClE,iCAAiC;IACjC,4DAA4D;IAC5D,oEAAoE;IACpE,uEAAuE;IACvE,4DAA4D;IAC5D,MAAM,YAAY,GAAG;QACnB,GAAG,SAAS,CAAC,kBAAkB,CAAC,MAAM;QACtC,GAAG,SAAS,CAAC,kBAAkB,CAAC,IAAI;QACpC,GAAG,SAAS,CAAC,kBAAkB,CAAC,MAAM;KACvC,CAAC;IACF,MAAM,WAAW,GAAG;QAClB,QAAQ,EAAE,SAAS,CAAC,cAAc,CAAC,QAAQ,GAAG,SAAS,CAAC,iBAAiB,CAAC,QAAQ;QAClF,IAAI,EAAE,SAAS,CAAC,cAAc,CAAC,IAAI,GAAG,SAAS,CAAC,iBAAiB,CAAC,IAAI;QACtE,MAAM,EAAE,SAAS,CAAC,cAAc,CAAC,MAAM,GAAG,SAAS,CAAC,iBAAiB,CAAC,MAAM;QAC5E,GAAG,EAAE,SAAS,CAAC,cAAc,CAAC,GAAG,GAAG,SAAS,CAAC,iBAAiB,CAAC,GAAG;QACnE,KAAK,EAAE,YAAY,CAAC,MAAM;KAC3B,CAAC;IAEF,oEAAoE;IACpE,kEAAkE;IAClE,8DAA8D;IAC9D,gEAAgE;IAChE,wCAAwC;IACxC,MAAM,eAAe,GAAG;QACtB,QAAQ,EAAE,SAAS,CAAC,cAAc,CAAC,QAAQ;QAC3C,IAAI,EAAE,SAAS,CAAC,cAAc,CAAC,IAAI;QACnC,MAAM,EAAE,SAAS,CAAC,cAAc,CAAC,MAAM;QACvC,GAAG,EAAE,SAAS,CAAC,cAAc,CAAC,GAAG;QACjC,KAAK,EAAE,SAAS,CAAC,kBAAkB,CAAC,IAAI,CAAC,MAAM;KAChD,CAAC;IACF,MAAM,kBAAkB,GAAG;QACzB,QAAQ,EAAE,SAAS,CAAC,iBAAiB,CAAC,QAAQ;QAC9C,IAAI,EAAE,SAAS,CAAC,iBAAiB,CAAC,IAAI;QACtC,MAAM,EAAE,SAAS,CAAC,iBAAiB,CAAC,MAAM;QAC1C,GAAG,EAAE,SAAS,CAAC,iBAAiB,CAAC,GAAG;QACpC,KAAK,EAAE,SAAS,CAAC,kBAAkB,CAAC,MAAM,CAAC,MAAM,GAAG,SAAS,CAAC,kBAAkB,CAAC,MAAM,CAAC,MAAM;KAC/F,CAAC;IAEF,yDAAyD;IACzD,iEAAiE;IACjE,kEAAkE;IAClE,kEAAkE;IAClE,6BAA6B;IAC7B,MAAM,UAAU,GAAG;QACjB,GAAG,IAAI;QACP,QAAQ,EAAE,SAAS,CAAC,aAAa,CAAC,QAAQ;QAC1C,IAAI,EAAE,SAAS,CAAC,aAAa,CAAC,IAAI;QAClC,MAAM,EAAE,SAAS,CAAC,aAAa,CAAC,MAAM;QACtC,GAAG,EAAE,SAAS,CAAC,aAAa,CAAC,GAAG;QAChC,KAAK,EAAE,SAAS,CAAC,6BAA6B;QAC9C,QAAQ,EAAE,CAAC,GAAG,SAAS,CAAC,kBAAkB,CAAC,UAAU,CAAC;KACvD,CAAC;IAEF,gEAAgE;IAChE,6DAA6D;IAC7D,kEAAkE;IAClE,mEAAmE;IACnE,oEAAoE;IACpE,0BAA0B;IAC1B,MAAM,YAAY,GAAG,IAAA,0CAA0B,EAC7C,MAAM,CAAC,GAAG,EACV,SAAS,EACT,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAC5B,CAAC;IAEF,OAAO;QACL,IAAI,EAAE,KAAK,CAAC,WAAW,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC;QACpD,UAAU,EAAE,MAAM,CAAC,OAAO;QAC1B,SAAS,EAAE,MAAM,CAAC,SAAS;QAC3B,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,OAAO,EAAE;YACP,QAAQ,EAAE,WAAW;YACrB,QAAQ,EAAE,eAAe;YACzB,WAAW,EAAE,kBAAkB;YAC/B,YAAY,EAAE,UAAU;YACxB,wDAAwD;YACxD,6DAA6D;YAC7D,yBAAyB;YACzB,gBAAgB,EAAE,SAAS,CAAC,UAAU,CAAC,OAAO,CAAC,GAAG;YAClD,qBAAqB,EAAE,SAAS,CAAC,UAAU,CAAC,YAAY,CAAC,GAAG;SAC7D;QACD,QAAQ,EAAE,YAAY;QACtB,SAAS;QACT,gBAAgB;QAChB,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAC1C,CAAC;AACJ,CAAC;AAED;;;;GAIG;AACH,SAAS,iBAAiB,CAAC,WAAmB;IAC5C,OAAO,WAAW,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,WAAW,eAAe,CAAC,CAAC,CAAC,EAAE,CAAC;AAChE,CAAC;AAED;;;;GAIG;AACH,SAAS,mBAAmB,CAAC,CAAW,EAAE,WAAmB;IAC3D,IAAI,WAAW,IAAI,CAAC;QAAE,OAAO;IAC7B,CAAC,CAAC,IAAI,CACJ,OAAO,WAAW,iBAAiB,WAAW,KAAK,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,cAAc,GAAG;QACrF,qFAAqF;QACrF,+DAA+D,CAClE,CAAC;IACF,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AACb,CAAC;AAED;;;;;;;GAOG;AACH,SAAS,sBAAsB,CAAC,CAAW,EAAE,KAAa;IACxD,IAAI,KAAK,IAAI,CAAC;QAAE,OAAO;IACvB,CAAC,CAAC,IAAI,CACJ,QAAQ,KAAK,iBAAiB,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,cAAc,kBAAkB;QACzF,yFAAyF;QACzF,oFAAoF;QACpF,4FAA4F;QAC5F,8EAA8E,CACjF,CAAC;IACF,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AACb,CAAC;AAED,SAAgB,oBAAoB,CAAC,MAAsB,EAAE,OAAe;IAC1E,MAAM,CAAC,GAAa,EAAE,CAAC;IACvB,CAAC,CAAC,IAAI,CAAC,6BAA6B,CAAC,CAAC;IACtC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACX,CAAC,CAAC,IAAI,CAAC,aAAa,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC;IACtD,CAAC,CAAC,IAAI,CAAC,mBAAmB,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;IACzC,CAAC,CAAC,IAAI,CAAC,eAAe,MAAM,CAAC,MAAM,KAAK,MAAM,CAAC,SAAS,GAAG,CAAC,CAAC;IAC7D,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACX,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACd,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAEX,6DAA6D;IAC7D,kEAAkE;IAClE,+DAA+D;IAC/D,IAAI,MAAM,CAAC,YAAY,EAAE,CAAC;QACxB,MAAM,EAAE,KAAK,EAAE,YAAY,EAAE,GAAG,MAAM,CAAC,YAAY,CAAC;QACpD,MAAM,QAAQ,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACzD,CAAC,CAAC,IAAI,CACJ,yCAAyC,YAAY,qBAAqB;YACxE,GAAG,QAAQ,qEAAqE;YAChF,gFAAgF;YAChF,uCAAuC,CAC1C,CAAC;QACF,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACb,CAAC;IAED,oEAAoE;IACpE,qEAAqE;IACrE,mEAAmE;IACnE,iEAAiE;IACjE,iEAAiE;IACjE,+DAA+D;IAC/D,MAAM,CAAC,GAAG,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC;IAClC,MAAM,CAAC,GAAG,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC;IAClC,MAAM,CAAC,GAAG,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC;IACrC,MAAM,CAAC,GAAG,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC;IACtC,CAAC,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;IAC/B,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACX,CAAC,CAAC,IAAI,CAAC,uDAAuD,CAAC,CAAC;IAChE,CAAC,CAAC,IAAI,CACJ,0HAA0H,CAC3H,CAAC;IACF,CAAC,CAAC,IAAI,CACJ,wIAAwI,CACzI,CAAC;IACF,CAAC,CAAC,IAAI,CACJ,uGAAuG,CACxG,CAAC;IACF,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAEX,mEAAmE;IACnE,4DAA4D;IAC5D,gEAAgE;IAChE,iCAAiC;IACjC,MAAM,WAAW,GAAG;QAClB,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;KACpF,CAAC,IAAI,EAAE,CAAC;IACT,MAAM,eAAe,GAAG,MAAM,CAAC,QAAQ,CAAC,MAAM,CAC5C,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,MAAM,IAAI,CAAC,CAAC,WAAW,CAC9C,CAAC,MAAM,CAAC;IACT,CAAC,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;IAC5B,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACX,CAAC,CAAC,IAAI,CAAC,aAAa,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,QAAQ,GAAG,CAAC,CAAC;IAC3D,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACX,CAAC,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;IAC/B,CAAC,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;IAC/B,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC;IACvC,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC;IACnC,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC;IACrC,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;IAClC,CAAC,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC,KAAK,KAAK,iBAAiB,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;IACjF,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACX,mBAAmB,CAAC,CAAC,EAAE,eAAe,CAAC,CAAC;IAExC,mEAAmE;IACnE,6CAA6C;IAC7C,MAAM,aAAa,GAAG;QACpB,GAAG,IAAI,GAAG,CACR,MAAM,CAAC,QAAQ;aACZ,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,QAAQ,IAAI,CAAC,CAAC,QAAQ,KAAK,QAAQ,CAAC;aACjE,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CACtB;KACF,CAAC,IAAI,EAAE,CAAC;IACT,MAAM,YAAY,GAAG,MAAM,CAAC,QAAQ,CAAC,MAAM,CACzC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,QAAQ,IAAI,CAAC,CAAC,QAAQ,KAAK,QAAQ,CAC1D,CAAC;IACF,MAAM,iBAAiB,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,MAAM,CAAC;IAC3E,uEAAuE;IACvE,kEAAkE;IAClE,MAAM,cAAc,GAAG,YAAY,CAAC,MAAM,CACxC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,WAAW,IAAI,IAAA,oCAAgB,EAAC,CAAC,CAAC,IAAI,CAAC,CAClD,CAAC,MAAM,CAAC;IACT,CAAC,CAAC,IAAI,CAAC,8BAA8B,CAAC,CAAC;IACvC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACX,CAAC,CAAC,IAAI,CAAC,aAAa,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,QAAQ,GAAG,CAAC,CAAC;IAC7D,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACX,CAAC,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;IAC/B,CAAC,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;IAC/B,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC;IACvC,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC;IACnC,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC;IACrC,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;IAClC,CAAC,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC,KAAK,KAAK,iBAAiB,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;IACnF,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACX,mBAAmB,CAAC,CAAC,EAAE,iBAAiB,CAAC,CAAC;IAC1C,sBAAsB,CAAC,CAAC,EAAE,cAAc,CAAC,CAAC;IAE1C,CAAC,CAAC,IAAI,CAAC,gCAAgC,CAAC,CAAC;IACzC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACX,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC;QACX,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC;QAC9B,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACX,CAAC,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;QAC/B,CAAC,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;QAC/B,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC;QACvC,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC;QACnC,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC;QACrC,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;QAClC,CAAC,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC,KAAK,MAAM,CAAC,CAAC;QAC5C,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACX,kEAAkE;QAClE,oEAAoE;QACpE,oEAAoE;QACpE,iCAAiC;QACjC,IAAI,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC;YACjB,CAAC,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC,iBAAiB,mBAAmB,CAAC,CAAC;YACxE,CAAC,CAAC,IAAI,CAAC,6DAA6D,CAAC,CAAC;YACtE,CAAC,CAAC,IAAI,CAAC,iEAAiE,CAAC,CAAC;YAC1E,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACb,CAAC;QACD,CAAC,CAAC,IAAI,CACJ,sBAAsB,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK,WAAW,CAAC,CAAC,KAAK,oBAAoB,CAAC,CAAC,KAAK,cAAc,CAC/G,CAAC;IACJ,CAAC;SAAM,IAAI,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC;QACxB,kEAAkE;QAClE,mEAAmE;QACnE,mEAAmE;QACnE,iEAAiE;QACjE,CAAC,CAAC,IAAI,CAAC,sDAAsD,CAAC,CAAC,iBAAiB,GAAG,CAAC,CAAC;QACrF,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACZ,CAAC,CAAC,IAAI,CAAC,kEAAkE,CAAC,CAAC;QAC3E,CAAC,CAAC,IAAI,CAAC,8DAA8D,CAAC,CAAC;QACvE,CAAC,CAAC,IAAI,CAAC,4DAA4D,CAAC,CAAC;QACrE,CAAC,CAAC,IAAI,CAAC,kCAAkC,mBAAS,CAAC,WAAW,gCAAgC,CAAC,CAAC;QAChG,CAAC,CAAC,IAAI,CAAC,4DAA4D,CAAC,CAAC;QACrE,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACX,CAAC,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC,KAAK,qCAAqC,CAAC,CAAC;IAC7E,CAAC;SAAM,CAAC;QACN,oEAAoE;QACpE,qEAAqE;QACrE,8DAA8D;QAC9D,mEAAmE;QACnE,CAAC,CAAC,IAAI,CAAC,mFAAmF,CAAC,CAAC;QAC5F,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACX,CAAC,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC,KAAK,cAAc,CAAC,CAAC;IACtD,CAAC;IACD,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACX,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACd,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAoBX,MAAM,UAAU,GAAgB,EAAE,CAAC;IACnC,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;IACjC,MAAM,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,QAAQ,IAAI,CAAC,CAAC,IAAI,KAAK,YAAY,CAAC,CAAC;IAE5F,qBAAqB;IACrB,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC1B,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,QAAQ,IAAI,EAAE,CAAC;aAC3B,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC;aACpB,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,IAAI,CAAC,CAAC,CAAC,CAAC;QAC3D,KAAK,MAAM,CAAC,IAAI,GAAG,EAAE,CAAC;YACpB,IAAI,UAAU,CAAC,MAAM,IAAI,CAAC;gBAAE,MAAM;YAClC,UAAU,CAAC,IAAI,CAAC;gBACd,KAAK,EAAE,oBAAoB,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,YAAY,CAAC;gBACtD,QAAQ,EAAE,GAAG,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,gBAAgB,IAAI,GAAG,MAAM,CAAC,CAAC,EAAE,EAAE;gBAC/D,MAAM,EAAE,mCAAmC,CAAC,CAAC,QAAQ,CAAC,WAAW,EAAE,EAAE;aACtE,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IACD,kCAAkC;IAClC,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC1B,MAAM,OAAO,GAAG,QAAQ,CAAC,MAAM,CAC7B,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,QAAQ,IAAI,CAAC,CAAC,IAAI,KAAK,kBAAkB,CAChE,CAAC;QACF,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;YACxB,IAAI,UAAU,CAAC,MAAM,IAAI,CAAC;gBAAE,MAAM;YAClC,UAAU,CAAC,IAAI,CAAC;gBACd,KAAK,EAAE,gCAAgC,CAAC,CAAC,IAAI,KAAK;gBAClD,QAAQ,EAAE,GAAG,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE;gBAClD,MAAM,EAAE,GAAG,CAAC,CAAC,QAAQ,CAAC,WAAW,EAAE,gDAAgD;aACpF,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IACD,sDAAsD;IACtD,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACjD,UAAU,CAAC,IAAI,CAAC;YACd,KAAK,EAAE,wDAAwD;YAC/D,QAAQ,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;YAChD,MAAM,EAAE,UAAU,QAAQ,CAAC,MAAM,QAAQ,QAAQ,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,yCAAyC;SACnH,CAAC,CAAC;IACL,CAAC;IACD,+BAA+B;IAC/B,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC1B,MAAM,IAAI,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,kBAAkB,CAAC,CAAC;QACnE,KAAK,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC;YACrB,IAAI,UAAU,CAAC,MAAM,IAAI,CAAC;gBAAE,MAAM;YAClC,UAAU,CAAC,IAAI,CAAC;gBACd,KAAK,EAAE,4CAA4C;gBACnD,QAAQ,EAAE,CAAC,CAAC,IAAI;gBAChB,MAAM,EAAE,6BAA6B;aACtC,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IACD,+DAA+D;IAC/D,kEAAkE;IAClE,kFAAkF;IAClF,gEAAgE;IAChE,8DAA8D;IAC9D,wDAAwD;IACxD,EAAE;IACF,uCAAuC;IACvC,iEAAiE;IACjE,8BAA8B;IAC9B,gDAAgD;IAChD,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC1B,MAAM,WAAW,GAAG,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;QACpC,MAAM,gBAAgB,GAAG,IAAI,GAAG,EAAU,CAAC;QAC3C,KAAK,MAAM,QAAQ,IAAI,WAAW,EAAE,CAAC;YACnC,IAAI,UAAU,CAAC,MAAM,IAAI,CAAC;gBAAE,MAAM;YAClC,MAAM,IAAI,GAAG,CAAC,CAAC,CAAC,QAAQ,IAAI,EAAE,CAAC;iBAC5B,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;iBACrB,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC,WAAW,IAAI,EAAE,CAAC,CAAC;iBACzD,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE;gBACZ,MAAM,KAAK,GAAG,CAAC,CAAC,SAAS,IAAI,CAAC,CAAC;gBAC/B,yDAAyD;gBACzD,uDAAuD;gBACvD,OAAO,QAAQ,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,IAAI,QAAQ,CAAC;YACnD,CAAC,CAAC;iBACD,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,IAAI,CAAC,CAAC,CAAC,CAAC;YAC3D,KAAK,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC;gBACrB,IAAI,UAAU,CAAC,MAAM,IAAI,CAAC;oBAAE,MAAM;gBAClC,UAAU,CAAC,IAAI,CAAC;oBACd,KAAK,EAAE,oBAAoB,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,YAAY,CAAC;oBACtD,QAAQ,EAAE,GAAG,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,gBAAgB,IAAI,GAAG,MAAM,CAAC,CAAC,EAAE,EAAE;oBAC/D,MAAM,EACJ,OAAO,CAAC,CAAC,SAAS,KAAK,QAAQ;wBAC7B,CAAC,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,WAAW,EAAE,iBAAiB,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;wBACtE,CAAC,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC,EAAE,EAAE;iBAC9C,CAAC,CAAC;gBACH,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC,WAAW,IAAI,EAAE,CAAC,CAAC;YAC5C,CAAC;QACH,CAAC;IACH,CAAC;IACD,+DAA+D;IAC/D,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC1B,MAAM,QAAQ,GAAG,QAAQ;aACtB,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,MAAM,IAAI,CAAC,CAAC,CAAC,QAAQ,KAAK,UAAU,IAAI,CAAC,CAAC,QAAQ,KAAK,MAAM,CAAC,CAAC;aAC5F,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,KAAK,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,KAAK,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC/F,KAAK,MAAM,CAAC,IAAI,QAAQ,EAAE,CAAC;YACzB,IAAI,UAAU,CAAC,MAAM,IAAI,CAAC;gBAAE,MAAM;YAClC,UAAU,CAAC,IAAI,CAAC;gBACd,KAAK,EAAE,OAAO,CAAC,CAAC,IAAI,EAAE;gBACtB,QAAQ,EAAE,GAAG,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE;gBAClD,MAAM,EAAE,GAAG,CAAC,CAAC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC,GAAG,IAAI,YAAY,EAAE;aACjE,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC1B,CAAC,CAAC,IAAI,CAAC,8BAA8B,CAAC,CAAC;QACvC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACX,CAAC,CAAC,IAAI,CACJ,8JAA8J,CAC/J,CAAC;QACF,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACX,CAAC,CAAC,IAAI,CAAC,oCAAoC,CAAC,CAAC;QAC7C,CAAC,CAAC,IAAI,CAAC,oCAAoC,CAAC,CAAC;QAC7C,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;YAC1B,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,KAAK,QAAQ,CAAC,CAAC,QAAQ,QAAQ,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC;QACxE,CAAC,CAAC,CAAC;QACH,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACX,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACd,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACb,CAAC;IAED,mEAAmE;IACnE,8DAA8D;IAC9D,gEAAgE;IAChE,mEAAmE;IACnE,kEAAkE;IAClE,6BAA6B;IAC7B,MAAM,WAAW,GAAG,MAAM,CAAC,QAAQ,CAAC,MAAM,CACxC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,QAAQ,IAAI,CAAC,CAAC,IAAI,KAAK,YAAY,CAC1D,CAAC;IACF,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC3B,CAAC,CAAC,IAAI,CAAC,mCAAmC,CAAC,CAAC;QAC5C,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACX,CAAC,CAAC,IAAI,CACJ,KAAK,WAAW,CAAC,MAAM,iBAAiB,WAAW,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,gMAAgM,CAC5Q,CAAC;QACF,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACX,CAAC,CAAC,IAAI,CAAC,yEAAyE,CAAC,CAAC;QAClF,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACX,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAClB,KAAK,MAAM,CAAC,IAAI,WAAW,EAAE,CAAC;YAC5B,CAAC,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;QACtC,CAAC;QACD,CAAC,CAAC,IAAI,CAAC,yDAAyD,CAAC,CAAC;QAClE,CAAC,CAAC,IAAI,CAAC,iDAAiD,CAAC,CAAC;QAC1D,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACd,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACX,CAAC,CAAC,IAAI,CAAC,kFAAkF,CAAC,CAAC;QAC3F,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACX,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAClB,CAAC,CAAC,IAAI,CAAC,sDAAsD,CAAC,CAAC;QAC/D,KAAK,MAAM,CAAC,IAAI,WAAW,EAAE,CAAC;YAC5B,CAAC,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC,IAAI,iBAAiB,CAAC,CAAC;QAC5D,CAAC;QACD,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACX,CAAC,CAAC,IAAI,CAAC,4CAA4C,CAAC,CAAC;QACrD,CAAC,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC;QACpC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACX,CAAC,CAAC,IAAI,CAAC,0DAA0D,CAAC,CAAC;QACnE,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACd,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACX,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACd,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACb,CAAC;IAED,2EAA2E;IAC3E,wEAAwE;IACxE,qEAAqE;IACrE,YAAY;IACZ,MAAM,UAAU,GAA0C;QACxD,EAAE,GAAG,EAAE,QAAQ,EAAE,KAAK,EAAE,uBAAuB,EAAE;QACjD,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,6BAA6B,EAAE;QACrD,EAAE,GAAG,EAAE,QAAQ,EAAE,KAAK,EAAE,sBAAsB,EAAE;KACjD,CAAC;IACF,MAAM,MAAM,GAA2B,EAAE,QAAQ,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;IAEnF,IAAI,UAAU,GAAG,CAAC,CAAC;IACnB,KAAK,MAAM,GAAG,IAAI,UAAU,EAAE,CAAC;QAC7B,MAAM,KAAK,GAAG,MAAM,CAAC,QAAQ;aAC1B,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,GAAG,CAAC,GAAG,CAAC;aACrC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;QAC3D,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;YAAE,SAAS;QAEjC,CAAC,CAAC,IAAI,CAAC,MAAM,UAAU,KAAK,GAAG,CAAC,KAAK,EAAE,CAAC,CAAC;QACzC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACX,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC;YACtB,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC;YACtD,CAAC,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;YACjE,IAAI,CAAC,CAAC,GAAG;gBAAE,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC;YACzC,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,IAAI,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;YAC5C,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACb,CAAC;QACD,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACd,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACX,UAAU,EAAE,CAAC;IACf,CAAC;IAED,8DAA8D;IAC9D,mEAAmE;IACnE,oEAAoE;IACpE,mEAAmE;IACnE,+DAA+D;IAC/D,mBAAmB;IACnB,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACpC,CAAC,CAAC,IAAI,CAAC,MAAM,UAAU,8BAA8B,CAAC,CAAC;QACvD,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACX,CAAC,CAAC,IAAI,CACJ,GAAG,CAAC,CAAC,QAAQ,CAAC,MAAM,0DAA0D;YAC5E,iEAAiE,CACpE,CAAC;QACF,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACX,MAAM,MAAM,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;YAC3C,MAAM,EAAE,GAAG,CAAC,CAAC,SAAS,IAAI,CAAC,CAAC,CAAC;YAC7B,MAAM,EAAE,GAAG,CAAC,CAAC,SAAS,IAAI,CAAC,CAAC,CAAC;YAC7B,IAAI,EAAE,KAAK,EAAE;gBAAE,OAAO,EAAE,GAAG,EAAE,CAAC;YAC9B,OAAO,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;QACvF,CAAC,CAAC,CAAC;QACH,MAAM,GAAG,GAAG,EAAE,CAAC;QACf,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;QACnC,CAAC,CAAC,IAAI,CAAC,8EAA8E,CAAC,CAAC;QACvF,CAAC,CAAC,IAAI,CAAC,8EAA8E,CAAC,CAAC;QACvF,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC;YACtB,MAAM,IAAI,GAAG,OAAO,CAAC,CAAC,SAAS,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC;YACrF,MAAM,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;YAC7B,6DAA6D;YAC7D,kEAAkE;YAClE,8DAA8D;YAC9D,wCAAwC;YACxC,MAAM,KAAK,GAAG,CAAC,CAAC,SAAS,KAAK,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,KAAK,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;YAC7E,MAAM,IAAI,GAAG,OAAO,CAAC,CAAC,SAAS,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,GAAG,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;YAC1F,CAAC,CAAC,IAAI,CACJ,KAAK,IAAI,MAAM,CAAC,CAAC,QAAQ,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,KAAK,QAAQ,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,gBAAgB,IAAI,GAAG,UAAU,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,YAAY,IAAI,GAAG,MAAM,IAAI,MAAM,CAAC,CAAC,IAAI,IAAI,CAC/K,CAAC;QACJ,CAAC;QACD,IAAI,MAAM,CAAC,MAAM,GAAG,GAAG,EAAE,CAAC;YACxB,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACX,CAAC,CAAC,IAAI,CACJ,YAAY,GAAG,OAAO,MAAM,CAAC,MAAM,kGAAkG,CACtI,CAAC;QACJ,CAAC;QAED,mEAAmE;QACnE,oEAAoE;QACpE,6CAA6C;QAC7C,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACX,CAAC,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;QAC7B,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACX,CAAC,CAAC,IAAI,CACJ,gRAAgR,CACjR,CAAC;QACF,CAAC,CAAC,IAAI,CACJ,sKAAsK,CACvK,CAAC;QACF,CAAC,CAAC,IAAI,CACJ,+SAA+S,CAChT,CAAC;QACF,CAAC,CAAC,IAAI,CACJ,uNAAuN,CACxN,CAAC;QACF,CAAC,CAAC,IAAI,CACJ,wLAAwL,CACzL,CAAC;QACF,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACX,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACd,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAEX,8DAA8D;QAC9D,mEAAmE;QACnE,mEAAmE;QACnE,kEAAkE;QAClE,4DAA4D;QAC5D,8DAA8D;QAC9D,EAAE;QACF,kEAAkE;QAClE,gEAAgE;QAChE,gEAAgE;QAChE,iEAAiE;QACjE,iEAAiE;QACjE,oEAAoE;QACpE,gEAAgE;QAChE,2DAA2D;QAC3D,MAAM,UAAU,GAAG,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC;QACxF,MAAM,UAAU,GAAG,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC;QAEvF,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACnD,CAAC,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC;YAClC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YAEX,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC1B,CAAC,CAAC,IAAI,CAAC,4BAA4B,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC;gBACzD,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;gBACX,CAAC,CAAC,IAAI,CAAC,4EAA4E,CAAC,CAAC;gBACrF,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;gBACX,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;gBAClB,KAAK,MAAM,CAAC,IAAI,UAAU,EAAE,CAAC;oBAC3B,6DAA6D;oBAC7D,mDAAmD;oBACnD,IAAI,CAAC,CAAC,CAAC,YAAY;wBAAE,SAAS;oBAC9B,MAAM,GAAG,GAAG,mBAAmB,CAAC,CAAC,CAAC,CAAC;oBACnC,IAAI,GAAG,KAAK,IAAI;wBAAE,SAAS;oBAC3B,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,gBAAgB,IAAI,GAAG,MAAM,CAAC,CAAC,YAAY,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;oBACpF,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;oBACZ,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;gBACb,CAAC;gBACD,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBACd,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACb,CAAC;YAED,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC1B,CAAC,CAAC,IAAI,CAAC,iDAAiD,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC;gBAC9E,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;gBACX,CAAC,CAAC,IAAI,CACJ,4OAA4O,CAC7O,CAAC;gBACF,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;gBACX,KAAK,MAAM,CAAC,IAAI,UAAU,EAAE,CAAC;oBAC3B,MAAM,QAAQ,GAAG,CAAC,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,CAAC;oBACnC,MAAM,MAAM,GAAG,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,KAAK,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;oBAC1D,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,gBAAgB,IAAI,GAAG,QAAQ,MAAM,EAAE,CAAC,CAAC;gBACxE,CAAC;gBACD,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACb,CAAC;YAED,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACd,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACb,CAAC;IACH,CAAC;IAED,SAAS;IACT,CAAC,CAAC,IAAI,CAAC,mBAAmB,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACzD,CAAC,CAAC,IAAI,CAAC,GAAG,IAAA,qDAA2B,EAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC,CAAC;IAChE,CAAC,CAAC,IAAI,CAAC,sBAAsB,OAAO,GAAG,CAAC,CAAC;IACzC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACX,CAAC,CAAC,IAAI,CAAC,gFAAgF,CAAC,CAAC;IACzF,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACtB,CAAC"}
@@ -0,0 +1,21 @@
1
+ export interface ScannerCoverageDrift {
2
+ /** Scanners present this run but absent from the most recent prior
3
+ * report — the tools whose findings are newly visible. */
4
+ readonly added: string[];
5
+ /** Date (YYYY-MM-DD) of the prior report compared against. */
6
+ readonly previousDate: string;
7
+ }
8
+ /**
9
+ * Detect scanners added since the most recent prior vuln-scan report.
10
+ * Returns `null` when there is no prior report, none is readable, or the
11
+ * scanner set did not grow (a shrinking or identical set is not the
12
+ * confusing case this note addresses).
13
+ *
14
+ * `currentDate` is this run's report date (YYYY-MM-DD); prior reports on
15
+ * a strictly earlier date are eligible. Same-day files are skipped: a
16
+ * report dated today is either this run's own prior invocation (already
17
+ * the post-expansion set — comparing would hide the drift) or about to
18
+ * be overwritten, so an earlier day is the honest comparison point.
19
+ */
20
+ export declare function detectScannerCoverageDrift(repoPath: string, currentTools: readonly string[], currentDate: string): ScannerCoverageDrift | null;
21
+ //# sourceMappingURL=scanner-drift.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scanner-drift.d.ts","sourceRoot":"","sources":["../../../src/analyzers/security/scanner-drift.ts"],"names":[],"mappings":"AAuBA,MAAM,WAAW,oBAAoB;IACnC;+DAC2D;IAC3D,QAAQ,CAAC,KAAK,EAAE,MAAM,EAAE,CAAC;IACzB,8DAA8D;IAC9D,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;CAC/B;AAMD;;;;;;;;;;;GAWG;AACH,wBAAgB,0BAA0B,CACxC,QAAQ,EAAE,MAAM,EAChB,YAAY,EAAE,SAAS,MAAM,EAAE,EAC/B,WAAW,EAAE,MAAM,GAClB,oBAAoB,GAAG,IAAI,CAyB7B"}
@@ -0,0 +1,113 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.detectScannerCoverageDrift = detectScannerCoverageDrift;
37
+ /**
38
+ * Scanner-coverage drift detection across runs.
39
+ *
40
+ * Closes the "my score got worse after fixing things" confusion: when
41
+ * the active scanner set grows between two runs (e.g. `gitleaks` →
42
+ * `gitleaks, grep-secrets` + `snyk-code`), the newly-added scanners
43
+ * surface pre-existing findings that older runs simply couldn't see. The
44
+ * Security score can drop on an UNCHANGED commit, with nothing in the
45
+ * report explaining that those findings are newly *visible*, not newly
46
+ * *introduced*.
47
+ *
48
+ * This module compares the current run's scanner set against the most
49
+ * recent prior vulnerability-scan report persisted under
50
+ * `.dxkit/reports/`. When the current run added scanners, the report
51
+ * renders an honest note so a reader attributes any movement to improved
52
+ * measurement rather than regressed code.
53
+ *
54
+ * Read-only + fail-open: an fs or parse problem yields `null` (no note),
55
+ * never an error — drift disclosure is a nicety, not a gate.
56
+ */
57
+ const fs = __importStar(require("fs"));
58
+ const path = __importStar(require("path"));
59
+ const PREFIX = 'vulnerability-scan-';
60
+ const SUFFIX = '-detailed.json';
61
+ const DATE_RE = /^\d{4}-\d{2}-\d{2}$/;
62
+ /**
63
+ * Detect scanners added since the most recent prior vuln-scan report.
64
+ * Returns `null` when there is no prior report, none is readable, or the
65
+ * scanner set did not grow (a shrinking or identical set is not the
66
+ * confusing case this note addresses).
67
+ *
68
+ * `currentDate` is this run's report date (YYYY-MM-DD); prior reports on
69
+ * a strictly earlier date are eligible. Same-day files are skipped: a
70
+ * report dated today is either this run's own prior invocation (already
71
+ * the post-expansion set — comparing would hide the drift) or about to
72
+ * be overwritten, so an earlier day is the honest comparison point.
73
+ */
74
+ function detectScannerCoverageDrift(repoPath, currentTools, currentDate) {
75
+ const reportDir = path.join(repoPath, '.dxkit', 'reports');
76
+ let files;
77
+ try {
78
+ files = fs.readdirSync(reportDir);
79
+ }
80
+ catch {
81
+ return null; // no reports dir → first run, nothing to compare
82
+ }
83
+ const prior = files
84
+ .filter((f) => f.startsWith(PREFIX) && f.endsWith(SUFFIX))
85
+ .map((f) => ({ file: f, date: f.slice(PREFIX.length, f.length - SUFFIX.length) }))
86
+ .filter((e) => DATE_RE.test(e.date) && e.date < currentDate)
87
+ .sort((a, b) => (a.date < b.date ? 1 : -1)); // most recent first
88
+ const currentSet = [...new Set(currentTools)];
89
+ for (const entry of prior) {
90
+ const prevTools = readToolsUsed(path.join(reportDir, entry.file));
91
+ if (!prevTools)
92
+ continue; // unreadable → try the next-most-recent
93
+ const prevSet = new Set(prevTools);
94
+ const added = currentSet.filter((t) => !prevSet.has(t)).sort();
95
+ // First readable prior report is the comparison point, added-or-not.
96
+ return added.length > 0 ? { added, previousDate: entry.date } : null;
97
+ }
98
+ return null;
99
+ }
100
+ /** Parse `toolsUsed` from a persisted detailed report. Fail-open → null. */
101
+ function readToolsUsed(filePath) {
102
+ try {
103
+ const parsed = JSON.parse(fs.readFileSync(filePath, 'utf8'));
104
+ if (Array.isArray(parsed.toolsUsed)) {
105
+ return parsed.toolsUsed.filter((t) => typeof t === 'string');
106
+ }
107
+ }
108
+ catch {
109
+ // unreadable / malformed → skip
110
+ }
111
+ return null;
112
+ }
113
+ //# sourceMappingURL=scanner-drift.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scanner-drift.js","sourceRoot":"","sources":["../../../src/analyzers/security/scanner-drift.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"shallow.d.ts","sourceRoot":"","sources":["../../../src/analyzers/security/shallow.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AACH,OAAO,EAEL,KAAK,kBAAkB,EAGxB,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAEtD;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,UAAU,GAAG,kBAAkB,CA8D1E;AAED;;;;;;;GAOG;AACH,wBAAgB,2BAA2B,CAAC,KAAK,EAAE,UAAU,GAAG;IAAE,KAAK,EAAE,MAAM,CAAA;CAAE,CAEhF;AAED;;;;GAIG;AACH,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,UAAU,GAAG,cAAc,CA2CxE"}
1
+ {"version":3,"file":"shallow.d.ts","sourceRoot":"","sources":["../../../src/analyzers/security/shallow.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AACH,OAAO,EAEL,KAAK,kBAAkB,EAGxB,MAAM,eAAe,CAAC;AAEvB,OAAO,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAEtD;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,UAAU,GAAG,kBAAkB,CAqF1E;AAED;;;;;;;GAOG;AACH,wBAAgB,2BAA2B,CAAC,KAAK,EAAE,UAAU,GAAG;IAAE,KAAK,EAAE,MAAM,CAAA;CAAE,CAEhF;AAED;;;;GAIG;AACH,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,UAAU,GAAG,cAAc,CA2CxE"}
@@ -19,6 +19,7 @@ exports.scoreSecurityDimension = scoreSecurityDimension;
19
19
  * same number from the same partitioned inputs.
20
20
  */
21
21
  const scoring_1 = require("../../scoring");
22
+ const annotate_1 = require("../../allowlist/annotate");
22
23
  /**
23
24
  * Build the canonical `SecurityScoreInput` from the health-side
24
25
  * `ScoreInput`. Each field maps to its data source:
@@ -54,9 +55,13 @@ function toSecurityScoreInput(input) {
54
55
  // `m.tlsDisabledCount` and `m.evalCount` as separate signals; the
55
56
  // aggregate now carries the tls-bypass findings directly (with
56
57
  // file/line and post-dedup), so those manual adds are gone.
58
+ // The score reads the allowlist-adjusted `scoreableCodeBySeverity`
59
+ // (excludes findings reviewed-and-accepted as false-positive /
60
+ // test-fixture); reports keep reading the raw `codeBySeverity`. Same
61
+ // source either way — the aggregator computes both.
57
62
  let codeFindings;
58
63
  if (c.securityAggregate) {
59
- codeFindings = { ...c.securityAggregate.codeBySeverity };
64
+ codeFindings = { ...c.securityAggregate.scoreableCodeBySeverity };
60
65
  }
61
66
  else {
62
67
  // Legacy fallback (test fixtures, pre-2.4.7 callers without
@@ -86,7 +91,17 @@ function toSecurityScoreInput(input) {
86
91
  low: c.depVulns?.counts.low ?? 0,
87
92
  };
88
93
  return {
89
- secretFindings: c.secrets?.findings.length ?? 0,
94
+ // Secret count for scoring EXCLUDES findings reviewed-and-accepted
95
+ // as false-positive / test-fixture, so a repo that has triaged its
96
+ // flagged secrets isn't held at the committed-credentials cap on
97
+ // noise it has already accepted. Read
98
+ // from the annotated aggregate when present (its secret category
99
+ // carries the allowlist status); fall back to the raw capability
100
+ // count for legacy ScoreInputs with no aggregate. accepted-risk /
101
+ // deferred are NOT lifted — those accept a real exposure.
102
+ secretFindings: c.securityAggregate
103
+ ? c.securityAggregate.findingsByCategory.secret.filter((f) => !(f.allowlisted && (0, annotate_1.allowlistLiftsScore)(f.allowlistCategory))).length
104
+ : (c.secrets?.findings.length ?? 0),
90
105
  privateKeyFiles: m.privateKeyFiles,
91
106
  envFilesInGit: m.envFilesInGit,
92
107
  codeFindings,
@@ -98,6 +113,13 @@ function toSecurityScoreInput(input) {
98
113
  // is a downgrade; an explicit `false` from the gather is the only
99
114
  // signal we trust to apply it.
100
115
  depVulnsAvailable: c.depVulnsAvailability?.available ?? true,
116
+ // Same default-true contract as depVulnsAvailable — the
117
+ // explicit `false` from the gather is the only signal we trust to
118
+ // apply an uncertainty cap. Closes the asymmetry where a missing
119
+ // dep scan capped the score but missing secret/code scanners
120
+ // silently scored as clean.
121
+ secretsAvailable: c.secretsAvailability?.available ?? true,
122
+ codePatternsAvailable: c.codePatternsAvailability?.available ?? true,
101
123
  };
102
124
  }
103
125
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"shallow.js","sourceRoot":"","sources":["../../../src/analyzers/security/shallow.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"shallow.js","sourceRoot":"","sources":["../../../src/analyzers/security/shallow.ts"],"names":[],"mappings":"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"}
@@ -2,6 +2,8 @@
2
2
  * Security analyzer types.
3
3
  */
4
4
  import type { DepVulnFinding } from '../../languages/capabilities/types';
5
+ import type { AllowlistCategory } from '../../allowlist/categories';
6
+ import type { ScannerCoverageDrift } from './scanner-drift';
5
7
  export type Severity = 'critical' | 'high' | 'medium' | 'low';
6
8
  export type FindingCategory = 'secret' | 'code' | 'config' | 'dependency';
7
9
  export interface SecurityFinding {
@@ -13,6 +15,23 @@ export interface SecurityFinding {
13
15
  file: string;
14
16
  line: number;
15
17
  tool: string;
18
+ /**
19
+ * True when an ACTIVE (unexpired) allowlist entry matches this
20
+ * finding's fingerprint. The finding is still reported in full (raw
21
+ * counts are unchanged — dxkit's raw-truth model holds), but renderers
22
+ * surface "(N allowlisted)" alongside the subtotal so a reviewer isn't
23
+ * alarmed by, e.g., 8 CRITICAL secrets when 7 are accepted test
24
+ * fixtures. Absent (undefined) when no allowlist exists or no entry
25
+ * matches. Only code/secret/config findings (which carry a
26
+ * fingerprint) are annotated; dependency findings are keyed by tuple
27
+ * through a producer and are out of scope here.
28
+ */
29
+ allowlisted?: boolean;
30
+ /** The matched allowlist entry's category (`test-fixture`,
31
+ * `false-positive`, `accepted-risk`, ...) so renderers can explain
32
+ * WHY the finding is suppressed, not just that it is. Present only
33
+ * when `allowlisted` is true. */
34
+ allowlistCategory?: AllowlistCategory;
16
35
  }
17
36
  export interface DepVulnSummary {
18
37
  critical: number;
@@ -91,9 +110,28 @@ export interface SecurityReport {
91
110
  total: number;
92
111
  };
93
112
  dependencies: DepVulnSummary;
113
+ /**
114
+ * Whether the secret / code-pattern scans actually ran,
115
+ * from `aggregate.provenance.{secrets,codePatterns}.ran`. The
116
+ * standalone-side score adapter (`countsFromReport`) plumbs these
117
+ * into the uncertainty caps, mirroring `dependencies.available` —
118
+ * a "0 secrets" subtotal printed next to "Sources: (none)" must
119
+ * not score as a confident clean. Optional: report JSONs saved
120
+ * before 2.10 lack them (adapter defaults to true).
121
+ */
122
+ secretsAvailable?: boolean;
123
+ codePatternsAvailable?: boolean;
94
124
  };
95
125
  findings: SecurityFinding[];
96
126
  toolsUsed: string[];
97
127
  toolsUnavailable: string[];
128
+ /**
129
+ * Scanners added since the most recent prior vuln-scan report,
130
+ * when any. Present only when the active scanner set grew run-over-run
131
+ * — drives the "coverage expanded; findings newly visible, not newly
132
+ * introduced" note that explains an otherwise-baffling score change on
133
+ * an unchanged commit. Absent on a first run or a stable scanner set.
134
+ */
135
+ scannerDrift?: ScannerCoverageDrift;
98
136
  }
99
137
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/analyzers/security/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oCAAoC,CAAC;AAEzE,MAAM,MAAM,QAAQ,GAAG,UAAU,GAAG,MAAM,GAAG,QAAQ,GAAG,KAAK,CAAC;AAE9D,MAAM,MAAM,eAAe,GAAG,QAAQ,GAAG,MAAM,GAAG,QAAQ,GAAG,YAAY,CAAC;AAE1E,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,QAAQ,CAAC;IACnB,QAAQ,EAAE,eAAe,CAAC;IAC1B,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,cAAc;IAC7B,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB;;oEAEgE;IAChE,QAAQ,EAAE,cAAc,EAAE,CAAC;IAC3B;;;;;;;;;;;OAWG;IACH,SAAS,EAAE,OAAO,CAAC;IACnB;;;;;OAKG;IACH,iBAAiB,EAAE,MAAM,CAAC;CAC3B;AAED,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE;QACP;;4CAEoC;QACpC,QAAQ,EAAE;YAAE,QAAQ,EAAE,MAAM,CAAC;YAAC,IAAI,EAAE,MAAM,CAAC;YAAC,MAAM,EAAE,MAAM,CAAC;YAAC,GAAG,EAAE,MAAM,CAAC;YAAC,KAAK,EAAE,MAAM,CAAA;SAAE,CAAC;QACzF;;;;;;;WAOG;QACH,QAAQ,EAAE;YAAE,QAAQ,EAAE,MAAM,CAAC;YAAC,IAAI,EAAE,MAAM,CAAC;YAAC,MAAM,EAAE,MAAM,CAAC;YAAC,GAAG,EAAE,MAAM,CAAC;YAAC,KAAK,EAAE,MAAM,CAAA;SAAE,CAAC;QACzF;;;;;WAKG;QACH,WAAW,EAAE;YAAE,QAAQ,EAAE,MAAM,CAAC;YAAC,IAAI,EAAE,MAAM,CAAC;YAAC,MAAM,EAAE,MAAM,CAAC;YAAC,GAAG,EAAE,MAAM,CAAC;YAAC,KAAK,EAAE,MAAM,CAAA;SAAE,CAAC;QAC5F,YAAY,EAAE,cAAc,CAAC;KAC9B,CAAC;IACF,QAAQ,EAAE,eAAe,EAAE,CAAC;IAC5B,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,gBAAgB,EAAE,MAAM,EAAE,CAAC;CAC5B"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/analyzers/security/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oCAAoC,CAAC;AACzE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AACpE,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AAE5D,MAAM,MAAM,QAAQ,GAAG,UAAU,GAAG,MAAM,GAAG,QAAQ,GAAG,KAAK,CAAC;AAE9D,MAAM,MAAM,eAAe,GAAG,QAAQ,GAAG,MAAM,GAAG,QAAQ,GAAG,YAAY,CAAC;AAE1E,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,QAAQ,CAAC;IACnB,QAAQ,EAAE,eAAe,CAAC;IAC1B,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb;;;;;;;;;;OAUG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB;;;sCAGkC;IAClC,iBAAiB,CAAC,EAAE,iBAAiB,CAAC;CACvC;AAED,MAAM,WAAW,cAAc;IAC7B,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB;;oEAEgE;IAChE,QAAQ,EAAE,cAAc,EAAE,CAAC;IAC3B;;;;;;;;;;;OAWG;IACH,SAAS,EAAE,OAAO,CAAC;IACnB;;;;;OAKG;IACH,iBAAiB,EAAE,MAAM,CAAC;CAC3B;AAED,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE;QACP;;4CAEoC;QACpC,QAAQ,EAAE;YAAE,QAAQ,EAAE,MAAM,CAAC;YAAC,IAAI,EAAE,MAAM,CAAC;YAAC,MAAM,EAAE,MAAM,CAAC;YAAC,GAAG,EAAE,MAAM,CAAC;YAAC,KAAK,EAAE,MAAM,CAAA;SAAE,CAAC;QACzF;;;;;;;WAOG;QACH,QAAQ,EAAE;YAAE,QAAQ,EAAE,MAAM,CAAC;YAAC,IAAI,EAAE,MAAM,CAAC;YAAC,MAAM,EAAE,MAAM,CAAC;YAAC,GAAG,EAAE,MAAM,CAAC;YAAC,KAAK,EAAE,MAAM,CAAA;SAAE,CAAC;QACzF;;;;;WAKG;QACH,WAAW,EAAE;YAAE,QAAQ,EAAE,MAAM,CAAC;YAAC,IAAI,EAAE,MAAM,CAAC;YAAC,MAAM,EAAE,MAAM,CAAC;YAAC,GAAG,EAAE,MAAM,CAAC;YAAC,KAAK,EAAE,MAAM,CAAA;SAAE,CAAC;QAC5F,YAAY,EAAE,cAAc,CAAC;QAC7B;;;;;;;;WAQG;QACH,gBAAgB,CAAC,EAAE,OAAO,CAAC;QAC3B,qBAAqB,CAAC,EAAE,OAAO,CAAC;KACjC,CAAC;IACF,QAAQ,EAAE,eAAe,EAAE,CAAC;IAC5B,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,gBAAgB,EAAE,MAAM,EAAE,CAAC;IAC3B;;;;;;OAMG;IACH,YAAY,CAAC,EAAE,oBAAoB,CAAC;CACrC"}
@@ -15,6 +15,17 @@ interface GraphifyResult {
15
15
  sourceFilesInGraph: number;
16
16
  graph?: GraphJson;
17
17
  }
18
+ /**
19
+ * Build the graphify Python script with cwd-specific exclusions baked in.
20
+ *
21
+ * Exported so the structural contract of the generated script — the
22
+ * `if __name__ == '__main__'` guard that keeps ProcessPoolExecutor workers
23
+ * from re-running extraction under spawn/forkserver (Python 3.14's Linux
24
+ * default), and the public `extract(cache_root=...)` cache redirect that
25
+ * replaced the fragile `cache_dir` monkeypatch — is unit-testable without a
26
+ * Python interpreter or graphify installed (mirrors `buildGraphifyEnvelope`).
27
+ */
28
+ export declare function buildGraphifyScript(cwd: string): string;
18
29
  /**
19
30
  * Outcome union mirrors the other global wrappers (gitleaks, semgrep,
20
31
  * jscpd). The capability provider collapses this to `StructuralResult
@@ -1 +1 @@
1
- {"version":3,"file":"graphify.d.ts","sourceRoot":"","sources":["../../../src/analyzers/tools/graphify.ts"],"names":[],"mappings":"AAwBA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,uCAAuC,CAAC;AAChF,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oCAAoC,CAAC;AAC3E,OAAO,EAAqB,KAAK,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAExE,UAAU,cAAc;IACtB,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,oBAAoB,EAAE,MAAM,CAAC;IAC7B,YAAY,EAAE,MAAM,CAAC;IACrB,cAAc,EAAE,MAAM,CAAC;IACvB,WAAW,EAAE,MAAM,CAAC;IACpB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,eAAe,EAAE,MAAM,CAAC;IACxB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,kBAAkB,EAAE,MAAM,CAAC;IAC3B,KAAK,CAAC,EAAE,SAAS,CAAC;CACnB;AA0mBD;;;;;;;GAOG;AACH,MAAM,MAAM,uBAAuB,GAC/B;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,QAAQ,EAAE,gBAAgB,CAAA;CAAE,GAC/C;IAAE,IAAI,EAAE,aAAa,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AAE5C;;;;;;GAMG;AACH,MAAM,MAAM,kBAAkB,GAC1B;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,KAAK,EAAE,SAAS,CAAA;CAAE,GACrC;IAAE,IAAI,EAAE,aAAa,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AAwB5C;;;;GAIG;AACH,wBAAsB,oBAAoB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,uBAAuB,CAAC,CAKxF;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAsB,mBAAmB,CACvC,GAAG,EAAE,MAAM,EACX,IAAI,GAAE;IAAE,WAAW,CAAC,EAAE,OAAO,CAAA;CAAO,GACnC,OAAO,CAAC,kBAAkB,CAAC,CAQ7B;AA2KD;;;;;;;;;;GAUG;AACH,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,cAAc,EAAE,GAAG,EAAE,MAAM,GAAG,gBAAgB,CAiBzF;AAED;;;;GAIG;AAOH,eAAO,MAAM,gBAAgB,EAAE,kBAAkB,CAAC,gBAAgB,CAAC,GAAG;IACpE,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,uBAAuB,CAAC,CAAC;CAU9D,CAAC"}
1
+ {"version":3,"file":"graphify.d.ts","sourceRoot":"","sources":["../../../src/analyzers/tools/graphify.ts"],"names":[],"mappings":"AAwBA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,uCAAuC,CAAC;AAChF,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oCAAoC,CAAC;AAC3E,OAAO,EAAqB,KAAK,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAExE,UAAU,cAAc;IACtB,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,oBAAoB,EAAE,MAAM,CAAC;IAC7B,YAAY,EAAE,MAAM,CAAC;IACrB,cAAc,EAAE,MAAM,CAAC;IACvB,WAAW,EAAE,MAAM,CAAC;IACpB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,eAAe,EAAE,MAAM,CAAC;IACxB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,kBAAkB,EAAE,MAAM,CAAC;IAC3B,KAAK,CAAC,EAAE,SAAS,CAAC;CACnB;AAED;;;;;;;;;GASG;AACH,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAkmBvD;AAED;;;;;;;GAOG;AACH,MAAM,MAAM,uBAAuB,GAC/B;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,QAAQ,EAAE,gBAAgB,CAAA;CAAE,GAC/C;IAAE,IAAI,EAAE,aAAa,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AAE5C;;;;;;GAMG;AACH,MAAM,MAAM,kBAAkB,GAC1B;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,KAAK,EAAE,SAAS,CAAA;CAAE,GACrC;IAAE,IAAI,EAAE,aAAa,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AAwB5C;;;;GAIG;AACH,wBAAsB,oBAAoB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,uBAAuB,CAAC,CAKxF;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAsB,mBAAmB,CACvC,GAAG,EAAE,MAAM,EACX,IAAI,GAAE;IAAE,WAAW,CAAC,EAAE,OAAO,CAAA;CAAO,GACnC,OAAO,CAAC,kBAAkB,CAAC,CAQ7B;AAoLD;;;;;;;;;;GAUG;AACH,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,cAAc,EAAE,GAAG,EAAE,MAAM,GAAG,gBAAgB,CAiBzF;AAED;;;;GAIG;AAOH,eAAO,MAAM,gBAAgB,EAAE,kBAAkB,CAAC,gBAAgB,CAAC,GAAG;IACpE,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,uBAAuB,CAAC,CAAC;CAU9D,CAAC"}