circle-ir 3.106.0 → 3.107.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.
- package/dist/analysis/passes/sink-filter-pass.d.ts.map +1 -1
- package/dist/analysis/passes/sink-filter-pass.js +278 -0
- package/dist/analysis/passes/sink-filter-pass.js.map +1 -1
- package/dist/analysis/passes/taint-propagation-pass.d.ts.map +1 -1
- package/dist/analysis/passes/taint-propagation-pass.js +31 -0
- package/dist/analysis/passes/taint-propagation-pass.js.map +1 -1
- package/dist/browser/circle-ir.js +188 -0
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sink-filter-pass.d.ts","sourceRoot":"","sources":["../../../src/analysis/passes/sink-filter-pass.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,SAAS,EAAE,cAAc,EAAwB,MAAM,sBAAsB,CAAC;AACzG,OAAO,KAAK,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;
|
|
1
|
+
{"version":3,"file":"sink-filter-pass.d.ts","sourceRoot":"","sources":["../../../src/analysis/passes/sink-filter-pass.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,SAAS,EAAE,cAAc,EAAwB,MAAM,sBAAsB,CAAC;AACzG,OAAO,KAAK,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAye9E,MAAM,WAAW,gBAAgB;IAC/B,wDAAwD;IACxD,OAAO,EAAE,WAAW,EAAE,CAAC;IACvB,sBAAsB;IACtB,KAAK,EAAE,SAAS,EAAE,CAAC;IACnB,UAAU,EAAE,cAAc,EAAE,CAAC;CAC9B;AAED,qBAAa,cAAe,YAAW,YAAY,CAAC,gBAAgB,CAAC;IACnE,QAAQ,CAAC,IAAI,iBAAiB;IAC9B,QAAQ,CAAC,QAAQ,EAAG,UAAU,CAAU;IAExC,GAAG,CAAC,GAAG,EAAE,WAAW,GAAG,gBAAgB;CAupBxC;AAMD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAErD,KAAK,OAAO,GAAG,GAAG,CAAC,MAAM,EAAE;IAAE,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE,CAAC,CAAC;AA4I1G,wBAAgB,wBAAwB,CACtC,KAAK,EAAE,QAAQ,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,EACjC,KAAK,EAAE,QAAQ,CAAC,OAAO,CAAC,EACxB,WAAW,EAAE,GAAG,CAAC,MAAM,CAAC,EACxB,OAAO,EAAE,OAAO,EAChB,GAAG,CAAC,EAAE,QAAQ,CAAC,KAAK,CAAC,EACrB,aAAa,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,EAC3B,iBAAiB,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,EAC/B,QAAQ,CAAC,EAAE,MAAM,GAChB,QAAQ,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CA6E5B;AAED,wBAAgB,oBAAoB,CAClC,KAAK,EAAE,QAAQ,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,EACjC,UAAU,EAAE,QAAQ,CAAC,OAAO,CAAC,CAAC,YAAY,CAAC,EAC3C,KAAK,EAAE,QAAQ,CAAC,OAAO,CAAC,GACvB,QAAQ,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CA2C5B"}
|
|
@@ -202,6 +202,31 @@ const SQL_BUILDER_WRAPPER_CALL_RE = /\.(?:wrap|quote|escape|identifier)\s*\(/;
|
|
|
202
202
|
const SQL_EXTRACTION_RETURN_RE = /^(?:String|CharSequence|Optional\s*<\s*String\s*>)$/;
|
|
203
203
|
const SQL_EXTRACTION_NAME_RE = /^(?:get|extract|build).*(?:[Ss]ql|[Qq]uery)|^toSql|.*Statement.*ToString$|.*Query.*String$/;
|
|
204
204
|
const SQL_EXTRACTION_PRIMITIVE_INPUT_RE = /^(?:String|CharSequence)$/;
|
|
205
|
+
// ---------------------------------------------------------------------------
|
|
206
|
+
// Stage 15 — Java sql_injection regex-allowlist-quoter wrapper suppression.
|
|
207
|
+
// (cognium-dev #191 / FP-77 — Sprint 49)
|
|
208
|
+
// ---------------------------------------------------------------------------
|
|
209
|
+
//
|
|
210
|
+
// Generalises Stage 13: a SQL string assembled from string literals +
|
|
211
|
+
// in-file helper-method calls (where the helper validates its argument
|
|
212
|
+
// with an inline regex allowlist + throw) AND containing a `?`
|
|
213
|
+
// placeholder for value binding is a parameterized query with an
|
|
214
|
+
// identifier-interpolation wrapper. The wrapper is the sanitizer; the
|
|
215
|
+
// `?` placeholder proves user values flow through bind args, not concat.
|
|
216
|
+
//
|
|
217
|
+
// Stage 13 required a `*Dialect|*SqlBuilder|*Quoter|*QueryBuilder`
|
|
218
|
+
// class-name suffix; FP-77 cases (utility classes like
|
|
219
|
+
// `SafeSqlIdentifierQuote`) don't carry that suffix. Stage 15 drops the
|
|
220
|
+
// class-name gate and instead inspects the helper's body for the
|
|
221
|
+
// regex-allowlist+throw shape that proves the parameter is validated.
|
|
222
|
+
const SQL_EXEC_METHODS = new Set([
|
|
223
|
+
'prepareStatement', 'prepareCall',
|
|
224
|
+
'execute', 'executeQuery', 'executeUpdate', 'executeLargeUpdate',
|
|
225
|
+
'addBatch',
|
|
226
|
+
]);
|
|
227
|
+
const JAVA_SQL_ASSIGN_RE_TEMPLATE = '\\b(?:String|CharSequence|final\\s+String|var)\\s+SQLVAR\\b\\s*=\\s*(.+?);';
|
|
228
|
+
// Recognises Java `String.matches("regex")` — implicitly anchored ^…$.
|
|
229
|
+
const JAVA_INLINE_MATCHES_RE = /\.\s*matches\s*\(\s*"((?:[^"\\]|\\.)*)"\s*\)/g;
|
|
205
230
|
function resolveJavaReceiverType(receiver, sinkLine, sourceLines) {
|
|
206
231
|
if (!receiver || !/^[A-Za-z_]\w*$/.test(receiver))
|
|
207
232
|
return null;
|
|
@@ -274,6 +299,147 @@ function findEnclosingMethodFromIr(types, sinkLine) {
|
|
|
274
299
|
}
|
|
275
300
|
return null;
|
|
276
301
|
}
|
|
302
|
+
/**
|
|
303
|
+
* Stage 15 (#191) — split a Java string-concat RHS into top-level
|
|
304
|
+
* `+`-separated tokens. Respects double-quoted strings and parenthesis
|
|
305
|
+
* depth so commas / `+` characters inside string literals or nested
|
|
306
|
+
* call argument lists do not split.
|
|
307
|
+
*/
|
|
308
|
+
function splitJavaConcatTokens(rhs) {
|
|
309
|
+
const tokens = [];
|
|
310
|
+
let cur = '';
|
|
311
|
+
let depth = 0;
|
|
312
|
+
let inString = false;
|
|
313
|
+
let i = 0;
|
|
314
|
+
while (i < rhs.length) {
|
|
315
|
+
const ch = rhs[i] ?? '';
|
|
316
|
+
if (inString) {
|
|
317
|
+
cur += ch;
|
|
318
|
+
if (ch === '\\' && i + 1 < rhs.length) {
|
|
319
|
+
cur += rhs[i + 1] ?? '';
|
|
320
|
+
i += 2;
|
|
321
|
+
continue;
|
|
322
|
+
}
|
|
323
|
+
if (ch === '"')
|
|
324
|
+
inString = false;
|
|
325
|
+
i++;
|
|
326
|
+
continue;
|
|
327
|
+
}
|
|
328
|
+
if (ch === '"') {
|
|
329
|
+
inString = true;
|
|
330
|
+
cur += ch;
|
|
331
|
+
i++;
|
|
332
|
+
continue;
|
|
333
|
+
}
|
|
334
|
+
if (ch === '(' || ch === '[' || ch === '{') {
|
|
335
|
+
depth++;
|
|
336
|
+
cur += ch;
|
|
337
|
+
i++;
|
|
338
|
+
continue;
|
|
339
|
+
}
|
|
340
|
+
if (ch === ')' || ch === ']' || ch === '}') {
|
|
341
|
+
depth--;
|
|
342
|
+
cur += ch;
|
|
343
|
+
i++;
|
|
344
|
+
continue;
|
|
345
|
+
}
|
|
346
|
+
if (ch === '+' && depth === 0) {
|
|
347
|
+
tokens.push(cur.trim());
|
|
348
|
+
cur = '';
|
|
349
|
+
i++;
|
|
350
|
+
continue;
|
|
351
|
+
}
|
|
352
|
+
cur += ch;
|
|
353
|
+
i++;
|
|
354
|
+
}
|
|
355
|
+
if (cur.trim())
|
|
356
|
+
tokens.push(cur.trim());
|
|
357
|
+
return tokens;
|
|
358
|
+
}
|
|
359
|
+
/**
|
|
360
|
+
* Stage 15 (#191) — true when the regex literal would compile to a
|
|
361
|
+
* strict-anchored allowlist: under `String.matches()` the regex is
|
|
362
|
+
* implicitly anchored `^…$`, so any pattern that — after stripping
|
|
363
|
+
* `[…]` character classes and escape sequences — contains no bare
|
|
364
|
+
* `.` (any-char) and no `|` (alternation) admits only the listed
|
|
365
|
+
* characters. Mirrors `propagator.ts:isStrictAnchoredRegex` minus the
|
|
366
|
+
* `^…$` requirement (which is implicit for `String.matches`).
|
|
367
|
+
*/
|
|
368
|
+
function isImplicitlyAnchoredAllowlistRegex(re) {
|
|
369
|
+
if (re === '')
|
|
370
|
+
return false;
|
|
371
|
+
const stripped = re.replace(/\[(?:[^\]\\]|\\.)*\]/g, '');
|
|
372
|
+
const cleaned = stripped.replace(/\\./g, '');
|
|
373
|
+
if (cleaned.includes('.'))
|
|
374
|
+
return false;
|
|
375
|
+
if (cleaned.includes('|'))
|
|
376
|
+
return false;
|
|
377
|
+
return true;
|
|
378
|
+
}
|
|
379
|
+
/**
|
|
380
|
+
* Stage 15 (#191) — locate a Java method body in source text by name.
|
|
381
|
+
* Returns the body lines (between the opening `{` and the matching
|
|
382
|
+
* `}` at the same brace depth) or null when not found / not bracketed.
|
|
383
|
+
*
|
|
384
|
+
* Heuristic textual scan — does not parse generics; sufficient for the
|
|
385
|
+
* regex-allowlist guard recognition we need.
|
|
386
|
+
*/
|
|
387
|
+
function findJavaMethodBody(methodName, sourceLines) {
|
|
388
|
+
if (!/^[A-Za-z_]\w*$/.test(methodName))
|
|
389
|
+
return null;
|
|
390
|
+
const sigRe = new RegExp(`\\b(?:public|private|protected|static|final|synchronized|\\s)+[\\w<>?,\\s\\[\\]]+?\\b${methodName}\\s*\\(`);
|
|
391
|
+
for (let i = 0; i < sourceLines.length; i++) {
|
|
392
|
+
const ln = sourceLines[i] ?? '';
|
|
393
|
+
if (!sigRe.test(ln))
|
|
394
|
+
continue;
|
|
395
|
+
// Scan forward for the opening `{` (may be on same or following line).
|
|
396
|
+
let braceLine = -1;
|
|
397
|
+
for (let j = i; j < Math.min(sourceLines.length, i + 4); j++) {
|
|
398
|
+
if ((sourceLines[j] ?? '').includes('{')) {
|
|
399
|
+
braceLine = j;
|
|
400
|
+
break;
|
|
401
|
+
}
|
|
402
|
+
}
|
|
403
|
+
if (braceLine < 0)
|
|
404
|
+
continue;
|
|
405
|
+
// Collect body lines until brace depth returns to 0.
|
|
406
|
+
let depth = 0;
|
|
407
|
+
const body = [];
|
|
408
|
+
for (let j = braceLine; j < sourceLines.length; j++) {
|
|
409
|
+
const ln2 = sourceLines[j] ?? '';
|
|
410
|
+
body.push(ln2);
|
|
411
|
+
for (const ch of ln2) {
|
|
412
|
+
if (ch === '{')
|
|
413
|
+
depth++;
|
|
414
|
+
else if (ch === '}')
|
|
415
|
+
depth--;
|
|
416
|
+
}
|
|
417
|
+
if (depth <= 0 && j > braceLine)
|
|
418
|
+
return body;
|
|
419
|
+
}
|
|
420
|
+
return null;
|
|
421
|
+
}
|
|
422
|
+
return null;
|
|
423
|
+
}
|
|
424
|
+
/**
|
|
425
|
+
* Stage 15 (#191) — true if the Java method body contains an inline
|
|
426
|
+
* `var.matches("strict-anchored-regex")` call AND a `throw` statement
|
|
427
|
+
* appears later in the body. The two need not be in the same `if`; the
|
|
428
|
+
* combination proves the parameter is validated and any non-allowlisted
|
|
429
|
+
* input terminates execution before reaching the return.
|
|
430
|
+
*/
|
|
431
|
+
function javaBodyHasInlineRegexAllowlistThrow(bodyLines) {
|
|
432
|
+
const text = bodyLines.join('\n');
|
|
433
|
+
if (!/\bthrow\s+/.test(text))
|
|
434
|
+
return false;
|
|
435
|
+
JAVA_INLINE_MATCHES_RE.lastIndex = 0;
|
|
436
|
+
let m;
|
|
437
|
+
while ((m = JAVA_INLINE_MATCHES_RE.exec(text)) !== null) {
|
|
438
|
+
if (isImplicitlyAnchoredAllowlistRegex(m[1] ?? ''))
|
|
439
|
+
return true;
|
|
440
|
+
}
|
|
441
|
+
return false;
|
|
442
|
+
}
|
|
277
443
|
function isJavaLiteralOrAnnotationAccessor(expr) {
|
|
278
444
|
const e = expr.trim();
|
|
279
445
|
if (e === '')
|
|
@@ -589,6 +755,37 @@ export class SinkFilterPass {
|
|
|
589
755
|
return true;
|
|
590
756
|
});
|
|
591
757
|
}
|
|
758
|
+
// Stage 9f — Java xxe (CWE-611) FP reduction on non-XML parsers.
|
|
759
|
+
// (cognium-dev #181 — follow-up to #155.)
|
|
760
|
+
//
|
|
761
|
+
// The taint matcher's receiver-fuzzy lookup maps any receiver name
|
|
762
|
+
// ending in `parser` (e.g. CommonMark's `PARSER`) to the XML parser
|
|
763
|
+
// classes `SAXParser` / `XMLReader` / `DocumentBuilder`, then the
|
|
764
|
+
// xxe sink rule (`{ method: 'parse', class: 'DocumentBuilder' }`)
|
|
765
|
+
// accepts the call as a sink. Markdown / CLI-arg / date / number
|
|
766
|
+
// parsers do not perform XML parsing and have no external-entity
|
|
767
|
+
// surface. Mirrors stage 9a but for xxe: when the resolvable receiver
|
|
768
|
+
// type is a known non-XML data-parser class, drop the xxe sink.
|
|
769
|
+
// Recall on real `DocumentBuilder.parse(...)` / `SAXParser.parse(...)`
|
|
770
|
+
// / `XMLReader.parse(...)` is unchanged — those classes are NOT in
|
|
771
|
+
// DATA_PARSER_TYPES so the gate never trips on them.
|
|
772
|
+
if (language === 'java') {
|
|
773
|
+
const sourceLines = ctx.code.split('\n');
|
|
774
|
+
filtered = filtered.filter(sink => {
|
|
775
|
+
if (sink.type !== 'xxe')
|
|
776
|
+
return true;
|
|
777
|
+
const sinkLineText = sourceLines[sink.line - 1] ?? '';
|
|
778
|
+
const receiverMatch = sinkLineText.match(/\b(\w+)\s*\.\s*(\w+)\s*\(/);
|
|
779
|
+
const receiver = receiverMatch?.[1];
|
|
780
|
+
const method = sink.method ?? receiverMatch?.[2];
|
|
781
|
+
if (method === 'parse' && receiver) {
|
|
782
|
+
const recvType = resolveJavaReceiverType(receiver, sink.line, sourceLines);
|
|
783
|
+
if (recvType && DATA_PARSER_TYPES.has(recvType))
|
|
784
|
+
return false;
|
|
785
|
+
}
|
|
786
|
+
return true;
|
|
787
|
+
});
|
|
788
|
+
}
|
|
592
789
|
// Stage 10 — Java command_injection (CWE-78) FP reduction.
|
|
593
790
|
// (cognium-dev #167, #170 — Sprint 43)
|
|
594
791
|
//
|
|
@@ -882,6 +1079,87 @@ export class SinkFilterPass {
|
|
|
882
1079
|
});
|
|
883
1080
|
}
|
|
884
1081
|
}
|
|
1082
|
+
// Stage 15 — Java sql_injection regex-allowlist-quoter suppression.
|
|
1083
|
+
// (cognium-dev #191 / FP-77 — Sprint 49)
|
|
1084
|
+
//
|
|
1085
|
+
// Gate (all must hold to drop the sink):
|
|
1086
|
+
// (a) sink is a JDBC exec method (prepareStatement / execute*)
|
|
1087
|
+
// (b) sink argument is a single variable (the SQL string)
|
|
1088
|
+
// (c) variable is assigned within 30 lines above from a
|
|
1089
|
+
// string-concat RHS whose tokens are ONLY string literals and
|
|
1090
|
+
// method calls (no bare-variable concat)
|
|
1091
|
+
// (d) at least one literal token contains a `?` placeholder
|
|
1092
|
+
// (parameterized value binding signal)
|
|
1093
|
+
// (e) at least one method-call token names an in-file Java method
|
|
1094
|
+
// whose body contains an inline `.matches("strict-anchored")`
|
|
1095
|
+
// call plus a `throw` (regex-allowlist guard)
|
|
1096
|
+
//
|
|
1097
|
+
// Together (a)–(e) prove the SQL is parameterized for values with
|
|
1098
|
+
// identifier interpolation routed through a validated quoter.
|
|
1099
|
+
// Stage 13 (#163) handles the same shape inside `*Dialect` /
|
|
1100
|
+
// `*SqlBuilder` classes — this stage drops the class-name gate.
|
|
1101
|
+
if (language === 'java') {
|
|
1102
|
+
const sourceLines = ctx.code.split('\n');
|
|
1103
|
+
filtered = filtered.filter(sink => {
|
|
1104
|
+
if (sink.type !== 'sql_injection')
|
|
1105
|
+
return true;
|
|
1106
|
+
const method = sink.method ?? '';
|
|
1107
|
+
if (!SQL_EXEC_METHODS.has(method))
|
|
1108
|
+
return true;
|
|
1109
|
+
const sinkLineText = sourceLines[sink.line - 1] ?? '';
|
|
1110
|
+
// Sink-call arg: take the first parenthesised arg of the method.
|
|
1111
|
+
const callArgs = extractJavaCallArgs(method, sinkLineText);
|
|
1112
|
+
if (!callArgs || callArgs.length === 0)
|
|
1113
|
+
return true;
|
|
1114
|
+
const sqlVar = callArgs[0]?.trim() ?? '';
|
|
1115
|
+
if (!/^[A-Za-z_]\w*$/.test(sqlVar))
|
|
1116
|
+
return true;
|
|
1117
|
+
// Scan backward for the SQL variable's assignment.
|
|
1118
|
+
const lo = Math.max(0, sink.line - 31);
|
|
1119
|
+
const assignRe = new RegExp(JAVA_SQL_ASSIGN_RE_TEMPLATE.replace('SQLVAR', sqlVar));
|
|
1120
|
+
let rhs = null;
|
|
1121
|
+
for (let i = sink.line - 2; i >= lo; i--) {
|
|
1122
|
+
const ln = sourceLines[i] ?? '';
|
|
1123
|
+
const m = ln.match(assignRe);
|
|
1124
|
+
if (m) {
|
|
1125
|
+
rhs = m[1] ?? null;
|
|
1126
|
+
break;
|
|
1127
|
+
}
|
|
1128
|
+
}
|
|
1129
|
+
if (!rhs)
|
|
1130
|
+
return true;
|
|
1131
|
+
const tokens = splitJavaConcatTokens(rhs);
|
|
1132
|
+
if (tokens.length < 2)
|
|
1133
|
+
return true; // single token = not a concat shape
|
|
1134
|
+
let hasPlaceholder = false;
|
|
1135
|
+
const methodCallNames = [];
|
|
1136
|
+
for (const tk of tokens) {
|
|
1137
|
+
if (/^"(?:[^"\\]|\\.)*"$/.test(tk)) {
|
|
1138
|
+
if (tk.includes('?'))
|
|
1139
|
+
hasPlaceholder = true;
|
|
1140
|
+
continue;
|
|
1141
|
+
}
|
|
1142
|
+
const callMatch = tk.match(/^([A-Za-z_]\w*)\s*\(/);
|
|
1143
|
+
if (callMatch) {
|
|
1144
|
+
methodCallNames.push(callMatch[1] ?? '');
|
|
1145
|
+
continue;
|
|
1146
|
+
}
|
|
1147
|
+
// Any token that is neither a string literal nor a method call
|
|
1148
|
+
// (e.g. a bare identifier) disqualifies this gate.
|
|
1149
|
+
return true;
|
|
1150
|
+
}
|
|
1151
|
+
if (!hasPlaceholder)
|
|
1152
|
+
return true;
|
|
1153
|
+
if (methodCallNames.length === 0)
|
|
1154
|
+
return true;
|
|
1155
|
+
for (const mname of methodCallNames) {
|
|
1156
|
+
const body = findJavaMethodBody(mname, sourceLines);
|
|
1157
|
+
if (body && javaBodyHasInlineRegexAllowlistThrow(body))
|
|
1158
|
+
return false;
|
|
1159
|
+
}
|
|
1160
|
+
return true;
|
|
1161
|
+
});
|
|
1162
|
+
}
|
|
885
1163
|
return { sources, sinks: filtered, sanitizers };
|
|
886
1164
|
}
|
|
887
1165
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sink-filter-pass.js","sourceRoot":"","sources":["../../../src/analysis/passes/sink-filter-pass.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"sink-filter-pass.js","sourceRoot":"","sources":["../../../src/analysis/passes/sink-filter-pass.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"taint-propagation-pass.d.ts","sourceRoot":"","sources":["../../../src/analysis/passes/taint-propagation-pass.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAE1D,OAAO,KAAK,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAQ9E,MAAM,WAAW,0BAA0B;IACzC,KAAK,EAAE,aAAa,EAAE,CAAC;CACxB;AAED,qBAAa,oBAAqB,YAAW,YAAY,CAAC,0BAA0B,CAAC;IACnF,QAAQ,CAAC,IAAI,uBAAuB;IACpC,QAAQ,CAAC,QAAQ,EAAG,UAAU,CAAU;IAExC,GAAG,CAAC,GAAG,EAAE,WAAW,GAAG,0BAA0B;
|
|
1
|
+
{"version":3,"file":"taint-propagation-pass.d.ts","sourceRoot":"","sources":["../../../src/analysis/passes/taint-propagation-pass.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAE1D,OAAO,KAAK,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAQ9E,MAAM,WAAW,0BAA0B;IACzC,KAAK,EAAE,aAAa,EAAE,CAAC;CACxB;AAED,qBAAa,oBAAqB,YAAW,YAAY,CAAC,0BAA0B,CAAC;IACnF,QAAQ,CAAC,IAAI,uBAAuB;IACpC,QAAQ,CAAC,QAAQ,EAAG,UAAU,CAAU;IAExC,GAAG,CAAC,GAAG,EAAE,WAAW,GAAG,0BAA0B;CA2SlD"}
|
|
@@ -262,6 +262,37 @@ export class TaintPropagationPass {
|
|
|
262
262
|
});
|
|
263
263
|
}
|
|
264
264
|
}
|
|
265
|
+
// cognium-dev #152 (reopen) — JS setInterval/setTimeout code_injection
|
|
266
|
+
// sink fires only when arg[0] is a string. An `interprocedural_param`
|
|
267
|
+
// source is an untyped JS function parameter whose runtime kind cannot
|
|
268
|
+
// be proven at the call site; callers commonly pass function refs
|
|
269
|
+
// (`function schedule(cb) { setTimeout(cb, 1000); }`), which is the
|
|
270
|
+
// benign-callback shape, not eval-style code injection. Drop the flow
|
|
271
|
+
// when the parameter is the only contributing source. Real string
|
|
272
|
+
// sources (http_query/http_body/file_input/...) still flow because
|
|
273
|
+
// they carry a different `source_type`. The earlier 3.96.0 gate in
|
|
274
|
+
// `taint-matcher.ts` covers inline function literals at the sink site;
|
|
275
|
+
// this gate covers the identifier-reference case that the matcher
|
|
276
|
+
// cannot prove function-typed without type info (the unfixed scenario
|
|
277
|
+
// in the #152 reopen comment).
|
|
278
|
+
const setIntervalLines = new Set();
|
|
279
|
+
for (const s of sinks) {
|
|
280
|
+
if (s.type === 'code_injection' &&
|
|
281
|
+
(s.method === 'setInterval' || s.method === 'setTimeout')) {
|
|
282
|
+
setIntervalLines.add(s.line);
|
|
283
|
+
}
|
|
284
|
+
}
|
|
285
|
+
if (setIntervalLines.size > 0) {
|
|
286
|
+
finalFlows = finalFlows.filter(f => {
|
|
287
|
+
if (f.sink_type !== 'code_injection')
|
|
288
|
+
return true;
|
|
289
|
+
if (f.source_type !== 'interprocedural_param')
|
|
290
|
+
return true;
|
|
291
|
+
if (!setIntervalLines.has(f.sink_line))
|
|
292
|
+
return true;
|
|
293
|
+
return false;
|
|
294
|
+
});
|
|
295
|
+
}
|
|
265
296
|
// cognium-dev #49 — final dedup on (source_line, sink_line, sink_type).
|
|
266
297
|
// The DFG propagator and the four supplementary detectors each emit
|
|
267
298
|
// independently; merge-time dedup at the supplement seams is partial
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"taint-propagation-pass.js","sourceRoot":"","sources":["../../../src/analysis/passes/taint-propagation-pass.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAOH,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AACzD,OAAO,EAAE,eAAe,EAAE,uBAAuB,EAAE,MAAM,4BAA4B,CAAC;AACtF,OAAO,EAAE,sBAAsB,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AAC1F,OAAO,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AAMpD,MAAM,OAAO,oBAAoB;IACtB,IAAI,GAAG,mBAAmB,CAAC;IAC3B,QAAQ,GAAG,UAAmB,CAAC;IAExC,GAAG,CAAC,GAAgB;QAClB,MAAM,EAAE,KAAK,EAAE,GAAG,GAAG,CAAC;QACtB,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,KAAK,CAAC,EAAE,CAAC;QAElC,MAAM,SAAS,GAAK,GAAG,CAAC,SAAS,CAA2B,sBAAsB,CAAC,CAAC;QACpF,MAAM,UAAU,GAAI,GAAG,CAAC,SAAS,CAAmB,aAAa,CAAC,CAAC;QACnE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,GAAG,UAAU,CAAC;QAElD,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACvB,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC;QACvB,CAAC;QACD,wEAAwE;QACxE,0EAA0E;QAC1E,0EAA0E;QAC1E,MAAM,aAAa,GAAG,GAAG,CAAC,QAAQ,KAAK,QAAQ,IAAI,OAAO,GAAG,CAAC,IAAI,KAAK,QAAQ,CAAC;QAChF,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC;YAC3C,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC;QACvB,CAAC;QAED,8BAA8B;QAC9B,MAAM,iBAAiB,GAAG,cAAc,CAAC,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,UAAU,CAAC,CAAC;QAE5E,uEAAuE;QACvE,MAAM,aAAa,GAAG,iBAAiB,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE;YAC1D,IAAI,SAAS,CAAC,gBAAgB,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;gBAAE,OAAO,KAAK,CAAC;YAEjE,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;gBAC7B,MAAM,OAAO,GAAG,eAAe,CAAC,SAAS,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;gBACrE,IAAI,OAAO,CAAC,eAAe;oBAAE,OAAO,KAAK,CAAC;YAC5C,CAAC;YAED,IAAI,uBAAuB,CAAC,SAAS,EAAE,IAAI,CAAC;gBAAE,OAAO,KAAK,CAAC;YAE3D,oEAAoE;YACpE,mEAAmE;YACnE,sEAAsE;YAEtE,OAAO,IAAI,CAAC;QACd,CAAC,CAAC,CAAC;QAEH,kCAAkC;QAClC,MAAM,KAAK,GAAoB,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACxD,WAAW,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI;YAC7B,SAAS,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI;YACzB,WAAW,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI;YAC7B,SAAS,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI;YACzB,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;gBAC3B,QAAQ,EAAE,IAAI,CAAC,QAAQ;gBACvB,IAAI,EAAE,IAAI,CAAC,IAAI;gBACf,IAAI,EAAE,IAAI,CAAC,IAAI;aAChB,CAAC,CAAC;YACH,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,SAAS,EAAE,IAAI,CAAC,SAAS;SAC1B,CAAC,CAAC,CAAC;QAEJ,kCAAkC;QAClC,MAAM,UAAU,GAAG,uBAAuB,CAAC,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,SAAS,CAAC,oBAAoB,EAAE,SAAS,CAAC,gBAAgB,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC;QAC3I,KAAK,MAAM,CAAC,IAAI,UAAU,EAAE,CAAC;YAC3B,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,WAAW,KAAK,CAAC,CAAC,WAAW,IAAI,CAAC,CAAC,SAAS,KAAK,CAAC,CAAC,SAAS,CAAC,EAAE,CAAC;gBACrF,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAChB,CAAC;QACH,CAAC;QAED,4DAA4D;QAC5D,MAAM,eAAe,GAAG,qBAAqB,CAAC,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,SAAS,CAAC,OAAO,EAAE,SAAS,CAAC,gBAAgB,EAAE,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC;QAC3I,KAAK,MAAM,CAAC,IAAI,eAAe,EAAE,CAAC;YAChC,IAAI,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,WAAW,KAAK,CAAC,CAAC,WAAW,IAAI,CAAC,CAAC,SAAS,KAAK,CAAC,CAAC,SAAS,CAAC;gBAAE,SAAS;YAE9F,MAAM,YAAY,GAAG;gBACnB,MAAM,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,WAAW,EAAE;gBAC/B,IAAI,EAAI,EAAE,IAAI,EAAE,CAAC,CAAC,SAAS,EAAI;gBAC/B,IAAI,EAAI,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;aAClE,CAAC;YACF,IAAI,uBAAuB,CAAC,SAAS,EAAE,YAAY,CAAC;gBAAE,SAAS;YAE/D,IAAI,IAAI,GAAG,KAAK,CAAC;YACjB,KAAK,MAAM,IAAI,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC;gBAC1B,IAAI,eAAe,CAAC,SAAS,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,eAAe,EAAE,CAAC;oBAAC,IAAI,GAAG,IAAI,CAAC;oBAAC,MAAM;gBAAC,CAAC;YACnG,CAAC;YACD,IAAI,IAAI;gBAAE,SAAS;YAEnB,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAChB,CAAC;QAED,6CAA6C;QAC7C,MAAM,UAAU,GAAG,wBAAwB,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,SAAS,CAAC,gBAAgB,EAAE,SAAS,CAAC,OAAO,EAAE,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;QACzI,KAAK,MAAM,CAAC,IAAI,UAAU,EAAE,CAAC;YAC3B,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,WAAW,KAAK,CAAC,CAAC,WAAW,IAAI,CAAC,CAAC,SAAS,KAAK,CAAC,CAAC,SAAS,CAAC,EAAE,CAAC;gBACrF,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAChB,CAAC;QACH,CAAC;QAED,wEAAwE;QACxE,EAAE;QACF,6DAA6D;QAC7D,0EAA0E;QAC1E,2EAA2E;QAC3E,oDAAoD;QACpD,gEAAgE;QAChE,wEAAwE;QACxE,uDAAuD;QACvD,EAAE;QACF,mEAAmE;QACnE,0EAA0E;QAC1E,iEAAiE;QACjE,oEAAoE;QACpE,uEAAuE;QACvE,0EAA0E;QAC1E,uEAAuE;QACvE,MAAM,aAAa,GAAG,yBAAyB,CAAC,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,SAAS,CAAC,gBAAgB,EAAE,SAAS,CAAC,OAAO,EAAE,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;QAChK,KAAK,MAAM,CAAC,IAAI,aAAa,EAAE,CAAC;YAC9B,IAAI,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CACjB,CAAC,CAAC,WAAW,KAAK,CAAC,CAAC,WAAW;gBAC/B,CAAC,CAAC,SAAS,KAAK,CAAC,CAAC,SAAS;gBAC3B,CAAC,CAAC,SAAS,KAAK,CAAC,CAAC,SAAS,CAC5B;gBAAE,SAAS;YAEZ,MAAM,YAAY,GAAG;gBACnB,MAAM,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,WAAW,EAAE;gBAC/B,IAAI,EAAI,EAAE,IAAI,EAAE,CAAC,CAAC,SAAS,EAAI;gBAC/B,IAAI,EAAI,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;aAClE,CAAC;YACF,IAAI,uBAAuB,CAAC,SAAS,EAAE,YAAY,CAAC;gBAAE,SAAS;YAE/D,IAAI,IAAI,GAAG,KAAK,CAAC;YACjB,KAAK,MAAM,IAAI,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC;gBAC1B,IAAI,eAAe,CAAC,SAAS,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,eAAe,EAAE,CAAC;oBAAC,IAAI,GAAG,IAAI,CAAC;oBAAC,MAAM;gBAAC,CAAC;YACnG,CAAC;YACD,IAAI,IAAI;gBAAE,SAAS;YAEnB,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAChB,CAAC;QAED,uEAAuE;QACvE,iEAAiE;QACjE,sEAAsE;QACtE,2EAA2E;QAC3E,MAAM,cAAc,GAAG,SAAS,CAAC,aAAa,CAAC;QAC/C,IAAI,UAAU,GAAG,cAAc,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE;YACpE,IAAI,CAAC,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC;gBAAE,OAAO,IAAI,CAAC;YACrC,MAAM,SAAS,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;YACrC,IAAI,CAAC,SAAS;gBAAE,OAAO,IAAI,CAAC;YAC5B,IAAI,cAAc,CAAC,GAAG,CAAC,SAAS,CAAC;gBAAE,OAAO,KAAK,CAAC;YAChD,KAAK,MAAM,CAAC,IAAI,cAAc,EAAE,CAAC;gBAC/B,IAAI,CAAC,CAAC,QAAQ,CAAC,IAAI,SAAS,EAAE,CAAC;oBAAE,OAAO,KAAK,CAAC;YAChD,CAAC;YACD,OAAO,IAAI,CAAC;QACd,CAAC,CAAC,CAAC;QAEH,8DAA8D;QAC9D,kEAAkE;QAClE,oEAAoE;QACpE,mEAAmE;QACnE,mEAAmE;QACnE,kEAAkE;QAClE,qEAAqE;QACrE,sEAAsE;QACtE,gEAAgE;QAChE,oBAAoB;QACpB,IAAI,UAAU,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACxC,MAAM,gBAAgB,GAAG,IAAI,GAAG,EAA6B,CAAC;YAC9D,KAAK,MAAM,GAAG,IAAI,UAAU,EAAE,CAAC;gBAC7B,MAAM,GAAG,GAAG,gBAAgB,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;gBACjD,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBACd,gBAAgB,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;YACtC,CAAC;YACD,UAAU,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE;gBACjC,mBAAmB;gBACnB,+DAA+D;gBAC/D,2DAA2D;gBAC3D,+DAA+D;gBAC/D,iEAAiE;gBACjE,0DAA0D;gBAC1D,iEAAiE;gBACjE,+DAA+D;gBAC/D,mEAAmE;gBACnE,gEAAgE;gBAChE,IAAI,CAAC,CAAC,SAAS,KAAK,uBAAuB,EAAE,CAAC;oBAC5C,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC;oBAChD,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC;oBAChD,KAAK,IAAI,IAAI,GAAG,EAAE,EAAE,IAAI,IAAI,EAAE,EAAE,IAAI,EAAE,EAAE,CAAC;wBACvC,MAAM,UAAU,GAAG,gBAAgB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;wBAC9C,IAAI,CAAC,UAAU;4BAAE,SAAS;wBAC1B,KAAK,MAAM,GAAG,IAAI,UAAU,EAAE,CAAC;4BAC7B,IAAK,GAAG,CAAC,SAA+B,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,EAAE,CAAC;gCAC/D,OAAO,KAAK,CAAC;4BACf,CAAC;wBACH,CAAC;oBACH,CAAC;oBACD,OAAO,IAAI,CAAC;gBACd,CAAC;gBACD,MAAM,UAAU,GAAG,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;gBACrD,IAAI,CAAC,UAAU,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC;oBAAE,OAAO,IAAI,CAAC;gBACxD,KAAK,MAAM,GAAG,IAAI,UAAU,EAAE,CAAC;oBAC7B,IAAK,GAAG,CAAC,SAA+B,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,EAAE,CAAC;wBAC/D,OAAO,KAAK,CAAC;oBACf,CAAC;gBACH,CAAC;gBACD,OAAO,IAAI,CAAC;YACd,CAAC,CAAC,CAAC;QACL,CAAC;QAED,uEAAuE;QACvE,oBAAoB;QACpB,4DAA4D;QAC5D,yEAAyE;QACzE,6DAA6D;QAC7D,4CAA4C;QAC5C,0DAA0D;QAC1D,6DAA6D;QAC7D,2EAA2E;QAC3E,uEAAuE;QACvE,IAAI,GAAG,CAAC,QAAQ,KAAK,MAAM,IAAI,OAAO,GAAG,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YAC5D,UAAU,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE;gBACjC,IAAI,CAAC,CAAC,SAAS,KAAK,gBAAgB,IAAI,CAAC,CAAC,SAAS,KAAK,KAAK;oBAAE,OAAO,IAAI,CAAC;gBAC3E,IAAI,CAAC,uBAAuB,CAAC,GAAG,CAAC,IAAc,EAAE,KAAK,EAAE,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC,SAAS,CAAC;oBAAE,OAAO,IAAI,CAAC;gBAC/F,OAAO,KAAK,CAAC;YACf,CAAC,CAAC,CAAC;QACL,CAAC;QAED,2EAA2E;QAC3E,qEAAqE;QACrE,gEAAgE;QAChE,sEAAsE;QACtE,qEAAqE;QACrE,uEAAuE;QACvE,+DAA+D;QAC/D,uEAAuE;QACvE,kEAAkE;QAClE,kBAAkB;QAClB,IAAI,OAAO,GAAG,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YACjC,MAAM,UAAU,GAAG,IAAI,GAAG,EAAgC,CAAC;YAC3D,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC;gBACtB,IAAI,CAAC,CAAC,IAAI,KAAK,iBAAiB;oBAAE,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;YAC9D,CAAC;YACD,IAAI,UAAU,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;gBACxB,UAAU,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE;oBACjC,IAAI,CAAC,CAAC,SAAS,KAAK,iBAAiB;wBAAE,OAAO,IAAI,CAAC;oBACnD,MAAM,IAAI,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;oBACzC,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM;wBAAE,OAAO,IAAI,CAAC;oBACrD,OAAO,CAAC,uBAAuB,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;gBAC1D,CAAC,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QAED,wEAAwE;QACxE,oEAAoE;QACpE,qEAAqE;QACrE,kEAAkE;QAClE,8DAA8D;QAC9D,oEAAoE;QACpE,qEAAqE;QACrE,4CAA4C;QAC5C,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC1B,MAAM,SAAS,GAAG,IAAI,GAAG,EAAyB,CAAC;YACnD,KAAK,MAAM,CAAC,IAAI,UAAU,EAAE,CAAC;gBAC3B,MAAM,GAAG,GAAG,GAAG,CAAC,CAAC,WAAW,IAAI,CAAC,CAAC,SAAS,IAAI,CAAC,CAAC,SAAS,EAAE,CAAC;gBAC7D,MAAM,GAAG,GAAG,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;gBAC/B,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC,UAAU,GAAG,GAAG,CAAC,UAAU,EAAE,CAAC;oBAC1C,SAAS,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;gBACxB,CAAC;YACH,CAAC;YACD,UAAU,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE;gBACjC,MAAM,GAAG,GAAG,GAAG,CAAC,CAAC,WAAW,IAAI,CAAC,CAAC,SAAS,IAAI,CAAC,CAAC,SAAS,EAAE,CAAC;gBAC7D,OAAO,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;YAClC,CAAC,CAAC,CAAC;QACL,CAAC;QAED,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC;IAC/B,CAAC;CACF;AAED;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,SAAS,uBAAuB,CAAC,QAAgB,EAAE,UAAkB;IACnE,IAAI,CAAC,QAAQ,IAAI,CAAC,UAAU;QAAE,OAAO,KAAK,CAAC;IAC3C,sEAAsE;IACtE,8CAA8C;IAC9C,MAAM,OAAO,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,UAAU,GAAG,CAAC,CAAC;IACnD,IAAI,OAAO,GAAG,CAAC;QAAE,OAAO,KAAK,CAAC;IAC9B,MAAM,OAAO,GAAG,OAAO,GAAG,UAAU,CAAC,MAAM,CAAC;IAC5C,4EAA4E;IAC5E,0EAA0E;IAC1E,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,IAAI,UAAU,GAAG,CAAC,CAAC;IACnB,IAAI,YAAY,GAAG,CAAC,CAAC;IACrB,IAAI,QAAQ,GAAkB,IAAI,CAAC;IACnC,IAAI,WAAW,GAAG,CAAC,CAAC,CAAC;IACrB,IAAI,aAAa,GAAG,CAAC,CAAC,CAAC;IACvB,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,EAAE,OAAO,GAAG,IAAI,CAAC,CAAC;IACxD,KAAK,IAAI,CAAC,GAAG,OAAO,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC;QACrC,MAAM,EAAE,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;QACvB,IAAI,QAAQ,EAAE,CAAC;YACb,IAAI,EAAE,KAAK,IAAI,IAAI,CAAC,GAAG,CAAC,GAAG,KAAK,EAAE,CAAC;gBAAC,CAAC,EAAE,CAAC;gBAAC,SAAS;YAAC,CAAC;YACpD,IAAI,EAAE,KAAK,QAAQ;gBAAE,QAAQ,GAAG,IAAI,CAAC;YACrC,SAAS;QACX,CAAC;QACD,IAAI,EAAE,KAAK,GAAG,IAAI,EAAE,KAAK,GAAG,IAAI,EAAE,KAAK,GAAG,EAAE,CAAC;YAAC,QAAQ,GAAG,EAAE,CAAC;YAAC,SAAS;QAAC,CAAC;QACxE,IAAI,EAAE,KAAK,GAAG;YAAE,KAAK,EAAE,CAAC;aACnB,IAAI,EAAE,KAAK,GAAG,EAAE,CAAC;YACpB,KAAK,EAAE,CAAC;YACR,IAAI,KAAK,KAAK,CAAC,EAAE,CAAC;gBAAC,WAAW,GAAG,CAAC,CAAC;gBAAC,MAAM;YAAC,CAAC;QAC9C,CAAC;aAAM,IAAI,EAAE,KAAK,GAAG;YAAE,UAAU,EAAE,CAAC;aAC/B,IAAI,EAAE,KAAK,GAAG;YAAE,UAAU,EAAE,CAAC;aAC7B,IAAI,EAAE,KAAK,GAAG;YAAE,YAAY,EAAE,CAAC;aAC/B,IAAI,EAAE,KAAK,GAAG;YAAE,YAAY,EAAE,CAAC;aAC/B,IAAI,EAAE,KAAK,GAAG,IAAI,KAAK,KAAK,CAAC,IAAI,UAAU,KAAK,CAAC,IAAI,YAAY,KAAK,CAAC,EAAE,CAAC;YAC7E,IAAI,aAAa,GAAG,CAAC;gBAAE,aAAa,GAAG,CAAC,CAAC;QAC3C,CAAC;IACH,CAAC;IACD,IAAI,WAAW,GAAG,CAAC;QAAE,OAAO,KAAK,CAAC;IAClC,MAAM,MAAM,GAAG,aAAa,IAAI,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,WAAW,CAAC;IAChE,MAAM,QAAQ,GAAG,QAAQ,CAAC,KAAK,CAAC,OAAO,GAAG,CAAC,EAAE,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC;IAC5D,IAAI,CAAC,QAAQ;QAAE,OAAO,KAAK,CAAC;IAC5B,uEAAuE;IACvE,IAAI,QAAQ,CAAC,CAAC,CAAC,KAAK,GAAG,IAAI,QAAQ,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,KAAK,GAAG;QAAE,OAAO,KAAK,CAAC;IAC/E,MAAM,IAAI,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IAC1C,IAAI,CAAC,IAAI;QAAE,OAAO,KAAK,CAAC;IACxB,wEAAwE;IACxE,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,4BAA4B,EAAE,IAAI,CAAC,CAAC;IAClE,8CAA8C;IAC9C,IAAI,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC;QAAE,OAAO,KAAK,CAAC;IAC1C,uDAAuD;IACvD,IAAI,8BAA8B,CAAC,IAAI,CAAC,QAAQ,CAAC;QAAE,OAAO,KAAK,CAAC;IAChE,uCAAuC;IACvC,IAAI,4BAA4B,CAAC,IAAI,CAAC,IAAI,CAAC;QAAE,OAAO,KAAK,CAAC;IAC1D,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,SAAS,uBAAuB,CAC9B,IAAY,EACZ,KAAoC,EACpC,QAAgB,EAChB,QAAgB;IAEhB,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IAC/C,IAAI,WAAW,GAAG,CAAC,CAAC,CAAC;IACrB,IAAI,SAAS,GAAG,CAAC,CAAC,CAAC;IACnB,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC;QACtB,KAAK,MAAM,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,CAAC;YAC1B,IAAI,QAAQ,IAAI,CAAC,CAAC,UAAU,IAAI,QAAQ,IAAI,CAAC,CAAC,QAAQ,EAAE,CAAC;gBACvD,WAAW,GAAG,CAAC,CAAC,UAAU,CAAC;gBAC3B,SAAS,GAAG,CAAC,CAAC,QAAQ,CAAC;gBACvB,MAAM;YACR,CAAC;QACH,CAAC;QACD,IAAI,WAAW,GAAG,CAAC;YAAE,MAAM;IAC7B,CAAC;IACD,IAAI,WAAW,GAAG,CAAC;QAAE,OAAO,KAAK,CAAC;IAClC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC/B,wDAAwD;IACxD,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,WAAW,GAAG,CAAC,EAAE,SAAS,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAChE,IAAI,QAAQ,KAAK,gBAAgB,EAAE,CAAC;QAClC,yCAAyC;QACzC,IAAI,CAAC,yBAAyB,CAAC,IAAI,CAAC,IAAI,CAAC;YAAE,OAAO,KAAK,CAAC;QACxD,IAAI,CAAC,wCAAwC,CAAC,IAAI,CAAC,IAAI,CAAC;YAAE,OAAO,KAAK,CAAC;QACvE,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC;YAAE,OAAO,KAAK,CAAC;QAChD,OAAO,IAAI,CAAC;IACd,CAAC;IACD,IAAI,QAAQ,KAAK,KAAK,EAAE,CAAC;QACvB,yEAAyE;QACzE,mEAAmE;QACnE,MAAM,YAAY,GAChB,6IAA6I,CAAC;QAChJ,IAAI,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC;YAAE,OAAO,IAAI,CAAC;QACzC,0EAA0E;QAC1E,IAAI,uDAAuD,CAAC,IAAI,CAAC,IAAI,CAAC;YAAE,OAAO,IAAI,CAAC;QACpF,OAAO,KAAK,CAAC;IACf,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,8EAA8E;AAC9E,4CAA4C;AAC5C,8EAA8E;AAE9E,SAAS,qBAAqB,CAC5B,KAAwB,EACxB,OAAqC,EACrC,KAAiC,EACjC,WAAwB,EACxB,gBAA6B,EAC7B,IAAa,EACb,KAAyB;IAEzB,MAAM,KAAK,GAA+B,EAAE,CAAC;IAC7C,MAAM,WAAW,GAAG,IAAI,GAAG,EAAwB,CAAC;IACpD,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,QAAQ,GAAG,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;QAC3D,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACpB,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;IAChD,CAAC;IAED,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,IAAI,gBAAgB,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC;YAAE,SAAS;QAC9C,MAAM,WAAW,GAAG,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;QAErD,KAAK,MAAM,IAAI,IAAI,WAAW,EAAE,CAAC;YAC/B,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;gBACjC,gEAAgE;gBAChE,IAAI,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC;oBACjD,CAAC,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;oBAC9C,SAAS;gBACX,CAAC;gBACD,IAAI,GAAG,CAAC,QAAQ,EAAE,CAAC;oBACjB,MAAM,OAAO,GAAG,GAAG,CAAC,QAAQ,CAAC;oBAC7B,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,SAAS,IAAI,OAAO,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC;oBAC7E,IAAI,WAAW,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,WAAW,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,CAAC;wBAC5D,gEAAgE;wBAChE,2DAA2D;wBAC3D,6DAA6D;wBAC7D,8DAA8D;wBAC9D,8BAA8B;wBAC9B,MAAM,MAAM,GAAG,gBAAgB,CAAC,OAAO,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,SAAS,IAAI,IAAI,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;wBAC5F,IAAI,MAAM,EAAE,CAAC;4BACX,+DAA+D;4BAC/D,0DAA0D;4BAC1D,6DAA6D;4BAC7D,8CAA8C;4BAC9C,sDAAsD;4BACtD,uDAAuD;4BACvD,4DAA4D;4BAC5D,0DAA0D;4BAC1D,yDAAyD;4BACzD,IACE,MAAM,CAAC,QAAQ;gCACf,MAAM,CAAC,QAAQ,KAAK,OAAO;gCAC3B,MAAM,CAAC,SAAS;gCAChB,IAAI,CAAC,SAAS;gCACd,MAAM,CAAC,SAAS,KAAK,IAAI,CAAC,SAAS,EACnC,CAAC;gCACD,SAAS;4BACX,CAAC;4BACD,2DAA2D;4BAC3D,2DAA2D;4BAC3D,+DAA+D;4BAC/D,IACE,OAAO,IAAI,KAAK,QAAQ;gCACxB,4BAA4B,CAAC,IAAI,EAAE,OAAO,EAAE,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,EACnE,CAAC;gCACD,SAAS;4BACX,CAAC;4BACD,KAAK,CAAC,IAAI,CAAC;gCACT,WAAW,EAAE,MAAM,CAAC,IAAI,EAAE,SAAS,EAAE,IAAI,CAAC,IAAI;gCAC9C,WAAW,EAAE,MAAM,CAAC,IAAI,EAAE,SAAS,EAAE,IAAI,CAAC,IAAI;gCAC9C,IAAI,EAAE;oCACJ,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,IAAI,EAAE,QAAiB,EAAE;oCACjE,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAI,IAAI,EAAE,MAAiB,EAAE;iCAClE;gCACD,UAAU,EAAE,GAAG,EAAE,SAAS,EAAE,KAAK;6BAClC,CAAC,CAAC;wBACL,CAAC;oBACH,CAAC;gBACH,CAAC;gBAED,IAAI,GAAG,CAAC,UAAU,EAAE,CAAC;oBACnB,MAAM,IAAI,GAAG,GAAG,CAAC,UAAU,CAAC;oBAC5B,yDAAyD;oBACzD,MAAM,kBAAkB,GAAG;wBACzB,EAAE,MAAM,EAAE,SAAS,EAAG,EAAE,EAAE,kBAAkB,EAAE;wBAC9C,EAAE,MAAM,EAAE,UAAU,EAAE,EAAE,EAAE,mBAAmB,EAAE;wBAC/C,EAAE,MAAM,EAAE,KAAK,EAAO,EAAE,EAAE,cAAc,EAAE;wBAC1C,EAAE,MAAM,EAAE,MAAM,EAAM,EAAE,EAAE,eAAe,EAAE;wBAC3C,EAAE,MAAM,EAAE,MAAM,EAAM,EAAE,EAAE,eAAe,EAAE;wBAC3C,EAAE,MAAM,EAAE,MAAM,EAAM,EAAE,EAAE,eAAe,EAAE;wBAC3C,EAAE,MAAM,EAAE,SAAS,EAAG,EAAE,EAAE,kBAAkB,EAAE;qBAC/C,CAAC;oBACF,KAAK,MAAM,EAAE,EAAE,EAAE,IAAI,kBAAkB,EAAE,CAAC;wBACxC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;wBAC7B,IAAI,KAAK,EAAE,CAAC;4BACV,MAAM,aAAa,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;4BAC/B,MAAM,gBAAgB,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,SAAS,IAAI,aAAa,EAAE,CAAC,CAAC,CAAC,aAAa,CAAC;4BAC/F,IAAI,WAAW,CAAC,GAAG,CAAC,aAAa,CAAC,IAAI,WAAW,CAAC,GAAG,CAAC,gBAAgB,CAAC,EAAE,CAAC;gCACxE,sDAAsD;gCACtD,MAAM,MAAM,GAAG,gBAAgB,CAAC,OAAO,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,SAAS,IAAI,IAAI,EAAE,KAAK,EAAE,aAAa,CAAC,CAAC;gCAClG,IAAI,MAAM,EAAE,CAAC;oCACX,qDAAqD;oCACrD,8CAA8C;oCAC9C,qDAAqD;oCACrD,qDAAqD;oCACrD,6CAA6C;oCAC7C,IACE,MAAM,CAAC,QAAQ;wCACf,MAAM,CAAC,QAAQ,KAAK,aAAa;wCACjC,MAAM,CAAC,SAAS;wCAChB,IAAI,CAAC,SAAS;wCACd,MAAM,CAAC,SAAS,KAAK,IAAI,CAAC,SAAS,EACnC,CAAC;wCACD,SAAS;oCACX,CAAC;oCACD,IACE,OAAO,IAAI,KAAK,QAAQ;wCACxB,4BAA4B,CAAC,IAAI,EAAE,aAAa,EAAE,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,EACzE,CAAC;wCACD,SAAS;oCACX,CAAC;oCACD,KAAK,CAAC,IAAI,CAAC;wCACT,WAAW,EAAE,MAAM,CAAC,IAAI,EAAE,SAAS,EAAE,IAAI,CAAC,IAAI;wCAC9C,WAAW,EAAE,MAAM,CAAC,IAAI,EAAE,SAAS,EAAE,IAAI,CAAC,IAAI;wCAC9C,IAAI,EAAE;4CACJ,EAAE,QAAQ,EAAE,aAAa,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,IAAI,EAAE,QAAiB,EAAE;4CACvE,EAAE,QAAQ,EAAE,aAAa,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAI,IAAI,EAAE,MAAiB,EAAE;yCACxE;wCACD,UAAU,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK;qCACnC,CAAC,CAAC;gCACL,CAAC;4BACH,CAAC;wBACH,CAAC;oBACH,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,uBAAuB,CAC9B,KAAwB,EACxB,OAAqC,EACrC,KAAiC,EACjC,oBAA8C,EAC9C,gBAA6B,EAC7B,KAAyB;IAEzB,MAAM,KAAK,GAA+B,EAAE,CAAC;IAC7C,MAAM,WAAW,GAAG,IAAI,GAAG,EAAwB,CAAC;IACpD,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,QAAQ,GAAG,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;QAC3D,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACpB,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;IAChD,CAAC;IAED,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,IAAI,gBAAgB,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC;YAAE,SAAS;QAC9C,MAAM,WAAW,GAAG,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;QAErD,KAAK,MAAM,IAAI,IAAI,WAAW,EAAE,CAAC;YAC/B,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;gBACjC,gEAAgE;gBAChE,IAAI,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC;oBACjD,CAAC,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;oBAC9C,SAAS;gBACX,CAAC;gBACD,MAAM,gBAAgB,GAAG,GAAG,CAAC,UAAU,EAAE,KAAK,CAAC,0BAA0B,CAAC,CAAC;gBAC3E,IAAI,gBAAgB,EAAE,CAAC;oBACrB,MAAM,SAAS,GAAG,gBAAgB,CAAC,CAAC,CAAC,CAAC;oBACtC,MAAM,QAAQ,GAAI,gBAAgB,CAAC,CAAC,CAAC,CAAC;oBACtC,MAAM,cAAc,GAAG,oBAAoB,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;oBAC3D,IAAI,cAAc,EAAE,CAAC;wBACnB,MAAM,SAAS,GAAG,cAAc,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,cAAc,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;wBAC1E,IAAI,SAAS,EAAE,CAAC;4BACd,2EAA2E;4BAC3E,MAAM,MAAM,GAAG,gBAAgB,CAAC,OAAO,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,SAAS,IAAI,IAAI,EAAE,KAAK,EAAE,SAAS,CAAC,CAAC;4BAC9F,IAAI,MAAM,EAAE,CAAC;gCACX,KAAK,CAAC,IAAI,CAAC;oCACT,WAAW,EAAE,MAAM,CAAC,IAAI,EAAE,SAAS,EAAE,IAAI,CAAC,IAAI;oCAC9C,WAAW,EAAE,MAAM,CAAC,IAAI,EAAE,SAAS,EAAE,IAAI,CAAC,IAAI;oCAC9C,IAAI,EAAE;wCACJ,EAAE,QAAQ,EAAE,SAAS,EAAqB,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,IAAI,EAAE,QAAiB,EAAE;wCACtF,EAAE,QAAQ,EAAE,GAAG,SAAS,IAAI,QAAQ,GAAG,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAI,IAAI,EAAE,MAAiB,EAAE;qCACtF;oCACD,UAAU,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK;iCACnC,CAAC,CAAC;4BACL,CAAC;wBACH,CAAC;oBACH,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,wBAAwB,CAC/B,KAAwB,EACxB,KAAwB,EACxB,OAAqC,EACrC,KAAiC,EACjC,gBAA6B,EAC7B,OAAoB,EACpB,IAAa;IAEb,MAAM,KAAK,GAA+B,EAAE,CAAC;IAE7C,MAAM,oBAAoB,GAAG,IAAI,GAAG,EAAwD,CAAC;IAC7F,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;QAC7B,IAAI,MAAM,CAAC,IAAI,KAAK,uBAAuB,EAAE,CAAC;YAC5C,MAAM,KAAK,GAAG,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,4BAA4B,CAAC,CAAC;YAClE,IAAI,KAAK,EAAE,CAAC;gBACV,MAAM,SAAS,GAAI,KAAK,CAAC,CAAC,CAAC,CAAC;gBAC5B,MAAM,UAAU,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;gBAC5B,IAAI,YAAY,GAAG,oBAAoB,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;gBACxD,IAAI,CAAC,YAAY,EAAE,CAAC;oBAAC,YAAY,GAAG,IAAI,GAAG,EAAE,CAAC;oBAAC,oBAAoB,CAAC,GAAG,CAAC,UAAU,EAAE,YAAY,CAAC,CAAC;gBAAC,CAAC;gBACpG,YAAY,CAAC,GAAG,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;YACtC,CAAC;QACH,CAAC;IACH,CAAC;IAED,IAAI,oBAAoB,CAAC,IAAI,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IAElD,MAAM,WAAW,GAAG,IAAI,GAAG,EAAwB,CAAC;IACpD,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,QAAQ,GAAG,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;QAC3D,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACpB,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;IAChD,CAAC;IAED,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,IAAI,gBAAgB,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC;YAAE,SAAS;QAC9C,MAAM,WAAW,GAAG,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;QAErD,KAAK,MAAM,IAAI,IAAI,WAAW,EAAE,CAAC;YAC/B,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC;YAClC,IAAI,CAAC,UAAU;gBAAE,SAAS;YAC1B,MAAM,kBAAkB,GAAG,oBAAoB,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;YAChE,IAAI,CAAC,kBAAkB;gBAAE,SAAS;YAElC,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;gBACjC,IAAI,GAAG,CAAC,QAAQ,EAAE,CAAC;oBACjB,iEAAiE;oBACjE,+EAA+E;oBAC/E,IAAI,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC;wBACjD,CAAC,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;wBAC9C,SAAS;oBACX,CAAC;oBACD,MAAM,WAAW,GAAG,kBAAkB,CAAC,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;oBACzD,IAAI,WAAW,EAAE,CAAC;wBAChB,MAAM,MAAM,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,WAAW,KAAK,WAAW,CAAC,IAAI,IAAI,CAAC,CAAC,SAAS,KAAK,IAAI,CAAC,IAAI,CAAC,CAAC;wBAChG,IAAI,CAAC,MAAM,EAAE,CAAC;4BACZ,IACE,OAAO,IAAI,KAAK,QAAQ;gCACxB,4BAA4B,CAAC,IAAI,EAAE,GAAG,CAAC,QAAQ,EAAE,WAAW,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,EAC7E,CAAC;gCACD,SAAS;4BACX,CAAC;4BACD,4DAA4D;4BAC5D,iDAAiD;4BACjD,KAAK,CAAC,IAAI,CAAC;gCACT,WAAW,EAAE,WAAW,CAAC,IAAI,EAAE,SAAS,EAAE,IAAI,CAAC,IAAI;gCACnD,WAAW,EAAE,WAAW,CAAC,IAAI,EAAE,SAAS,EAAE,IAAI,CAAC,IAAI;gCACnD,IAAI,EAAE;oCACJ,EAAE,QAAQ,EAAE,GAAG,CAAC,QAAQ,EAAE,IAAI,EAAE,WAAW,CAAC,IAAI,EAAE,IAAI,EAAE,QAAiB,EAAE;oCAC3E,EAAE,QAAQ,EAAE,GAAG,CAAC,QAAQ,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAS,IAAI,EAAE,MAAiB,EAAE;iCAC5E;gCACD,UAAU,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK;6BACnC,CAAC,CAAC;wBACL,CAAC;oBACH,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAED,wFAAwF;IACxF,KAAK,KAAK,CAAC;IACX,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AAEH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,SAAS,4BAA4B,CACnC,IAAY,EACZ,QAAgB,EAChB,OAAe,EACf,QAAgB;IAEhB,IAAI,CAAC,QAAQ,IAAI,QAAQ,GAAG,OAAO,GAAG,CAAC;QAAE,OAAO,KAAK,CAAC;IACtD,kEAAkE;IAClE,gEAAgE;IAChE,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,QAAQ,CAAC;QAAE,OAAO,KAAK,CAAC;IACrD,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC/B,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,6CAA6C;IAC9E,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,EAAE,QAAQ,GAAG,CAAC,CAAC,CAAC;IAChD,yEAAyE;IACzE,MAAM,MAAM,GACV,sGAAsG,CAAC;IACzG,6DAA6D;IAC7D,iCAAiC;IACjC,MAAM,OAAO,GAAG,IAAI,MAAM,CACxB,QAAQ,QAAQ,kBAAkB,MAAM,aAAa,CACtD,CAAC;IACF,uEAAuE;IACvE,uEAAuE;IACvE,yCAAyC;IACzC,mEAAmE;IACnE,uEAAuE;IACvE,iEAAiE;IACjE,0DAA0D;IAC1D,MAAM,SAAS,GAAG,IAAI,MAAM,CAC1B,kBAAkB,QAAQ,YAAY,MAAM,aAAa,CAC1D,CAAC;IACF,kEAAkE;IAClE,sCAAsC;IACtC,gEAAgE;IAChE,iEAAiE;IACjE,sEAAsE;IACtE,iDAAiD;IACjD,MAAM,YAAY,GAAG,IAAI,MAAM,CAC7B,uCAAuC,QAAQ,YAAY,MAAM,iCAAiC,CACnG,CAAC;IACF,KAAK,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC;QAC7B,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QACtB,IAAI,CAAC,IAAI;YAAE,SAAS;QACpB,IAAI,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC;YAAE,OAAO,IAAI,CAAC;IACzF,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,yBAAyB,CAChC,KAAwB,EACxB,OAAqC,EACrC,KAAiC,EACjC,UAA2C,EAC3C,gBAA6B,EAC7B,OAAoB,EACpB,IAAa,EACb,QAAiB;IAEjB,MAAM,KAAK,GAA+B,EAAE,CAAC;IAE7C,wEAAwE;IACxE,uEAAuE;IACvE,wDAAwD;IACxD,MAAM,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAwC,EAAE,CAChF,OAAO,CAAC,CAAC,QAAQ,KAAK,QAAQ,IAAI,CAAC,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CACxD,CAAC;IAEF,sDAAsD;IACtD,EAAE;IACF,mEAAmE;IACnE,iEAAiE;IACjE,kEAAkE;IAClE,iEAAiE;IACjE,gEAAgE;IAChE,8DAA8D;IAC9D,+DAA+D;IAC/D,gDAAgD;IAChD,EAAE;IACF,mEAAmE;IACnE,gEAAgE;IAChE,2DAA2D;IAC3D,iEAAiE;IACjE,yCAAyC;IACzC,MAAM,iBAAiB,GAAG,IAAI,GAAG,EAAuB,CAAC;IAEzD,0EAA0E;IAC1E,yEAAyE;IACzE,2EAA2E;IAC3E,2EAA2E;IAC3E,6EAA6E;IAC7E,2EAA2E;IAC3E,2EAA2E;IAC3E,0EAA0E;IAC1E,2DAA2D;IAC3D,EAAE;IACF,uEAAuE;IACvE,wEAAwE;IACxE,gEAAgE;IAChE,IAAI,QAAQ,KAAK,QAAQ,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;QACtD,MAAM,OAAO,GAAG,sBAAsB,CAAC,IAAI,CAAC,CAAC;QAC7C,IAAI,OAAO,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;YACrB,MAAM,YAAY,GAAG,IAAI,GAAG,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;YAClE,wEAAwE;YACxE,wEAAwE;YACxE,sEAAsE;YACtE,wDAAwD;YACxD,MAAM,aAAa,GAAG,cAAc,CAAC,MAAM,GAAG,CAAC,CAAC;YAChD,IAAI,MAAM,GAAyC,cAAc,CAAC,CAAC,CAAC,CAAC;YACrE,IAAI,MAAM,EAAE,CAAC;gBACX,KAAK,MAAM,CAAC,IAAI,cAAc,EAAE,CAAC;oBAC/B,IAAI,CAAC,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI;wBAAE,MAAM,GAAG,CAAC,CAAC;gBACvC,CAAC;YACH,CAAC;YACD,KAAK,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,IAAI,OAAO,EAAE,CAAC;gBAC5C,IAAI,CAAC,OAAO,IAAI,YAAY,CAAC,GAAG,CAAC,OAAO,CAAC;oBAAE,SAAS;gBACpD,mEAAmE;gBACnE,oEAAoE;gBACpE,oEAAoE;gBACpE,kEAAkE;gBAClE,2DAA2D;gBAC3D,IAAI,aAAa,IAAI,MAAM,EAAE,CAAC;oBAC5B,cAAc,CAAC,IAAI,CAAC;wBAClB,GAAG,MAAM;wBACT,QAAQ,EAAE,OAAO;qBAClB,CAAC,CAAC;gBACL,CAAC;qBAAM,CAAC;oBACN,cAAc,CAAC,IAAI,CAAC;wBAClB,IAAI,EAAE,YAAY;wBAClB,QAAQ,EAAE,aAAa,OAAO,EAAE;wBAChC,QAAQ,EAAE,MAAM;wBAChB,IAAI,EAAE,UAAU;wBAChB,UAAU,EAAE,GAAG;wBACf,QAAQ,EAAE,OAAO;qBAClB,CAAC,CAAC;gBACL,CAAC;gBACD,YAAY,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;YAC5B,CAAC;YAED,4DAA4D;YAC5D,gEAAgE;YAChE,gEAAgE;YAChE,oDAAoD;YACpD,IAAI,UAAU,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACxC,MAAM,gBAAgB,GAAG,IAAI,GAAG,EAA6B,CAAC;gBAC9D,KAAK,MAAM,CAAC,IAAI,UAAU,EAAE,CAAC;oBAC3B,MAAM,GAAG,GAAG,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;oBAC/C,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;oBACZ,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;gBACpC,CAAC;gBACD,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;gBACnC,KAAK,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,IAAI,OAAO,EAAE,CAAC;oBAC5C,MAAM,QAAQ,GAAG,gBAAgB,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;oBAClD,IAAI,CAAC,QAAQ,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;wBAAE,SAAS;oBACjD,MAAM,QAAQ,GAAG,SAAS,CAAC,UAAU,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;oBACjD,MAAM,QAAQ,GAAG,QAAQ,CAAC,KAAK,CAAC,qBAAqB,CAAC,CAAC;oBACvD,IAAI,CAAC,QAAQ;wBAAE,SAAS;oBACxB,MAAM,GAAG,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;oBACxB,KAAK,MAAM,GAAG,IAAI,QAAQ,EAAE,CAAC;wBAC3B,gEAAgE;wBAChE,WAAW;wBACX,2CAA2C;wBAC3C,2CAA2C;wBAC3C,gEAAgE;wBAChE,+DAA+D;wBAC/D,6DAA6D;wBAC7D,yBAAyB;wBACzB,MAAM,QAAQ,GAAG,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;wBAChD,IAAI,CAAC,QAAQ;4BAAE,SAAS;wBACxB,MAAM,OAAO,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;wBAC5B,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,OAAO,GAAG,CAAC;4BAAE,SAAS;wBAC3C,IAAI,GAAG,GAAG,iBAAiB,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;wBACzC,IAAI,CAAC,GAAG,EAAE,CAAC;4BAAC,GAAG,GAAG,IAAI,GAAG,EAAU,CAAC;4BAAC,iBAAiB,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;wBAAC,CAAC;wBAC3E,KAAK,MAAM,CAAC,IAAI,GAAG,CAAC,SAAS;4BAAE,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;oBAC5C,CAAC;gBACH,CAAC;YACH,CAAC;YAED,kEAAkE;YAClE,mEAAmE;YACnE,mEAAmE;YACnE,yDAAyD;YACzD,oBAAoB;YACpB,2CAA2C;YAC3C,0DAA0D;YAC1D,mEAAmE;YACnE,+DAA+D;YAC/D,mEAAmE;YACnE,sDAAsD;YACtD,EAAE;YACF,kEAAkE;YAClE,mEAAmE;YACnE,sEAAsE;YACtE,gEAAgE;YAChE,mCAAmC;YACnC,MAAM,WAAW,GAA2D,EAAE,CAAC;YAC/E,CAAC;gBACC,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;gBACpC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;oBAC3C,MAAM,EAAE,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;oBACzB,IAAI,EAAE,CAAC,SAAS,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC;wBAAE,SAAS;oBAC7C,MAAM,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,kDAAkD,CAAC,CAAC;oBACvE,IAAI,CAAC,CAAC;wBAAE,SAAS;oBACjB,MAAM,OAAO,GAAG,CAAC,GAAG,CAAC,CAAC;oBACtB,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;oBACjB,iEAAiE;oBACjE,IAAI,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,OAAO;wBAAE,SAAS;oBAC3C,WAAW,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC;gBAC3D,CAAC;YACH,CAAC;YACD,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC3B,IAAI,OAAO,GAAG,IAAI,CAAC;gBACnB,IAAI,KAAK,GAAG,CAAC,CAAC;gBACd,OAAO,OAAO,IAAI,KAAK,GAAG,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBACjD,OAAO,GAAG,KAAK,CAAC;oBAChB,KAAK,EAAE,CAAC;oBACR,KAAK,MAAM,EAAE,GAAG,EAAE,QAAQ,EAAE,IAAI,WAAW,EAAE,CAAC;wBAC5C,MAAM,KAAK,GAAG,iBAAiB,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;wBAC9C,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC;4BAAE,SAAS;wBACzC,IAAI,OAAO,GAAG,iBAAiB,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;wBACzC,IAAI,CAAC,OAAO,EAAE,CAAC;4BAAC,OAAO,GAAG,IAAI,GAAG,EAAU,CAAC;4BAAC,iBAAiB,CAAC,GAAG,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;wBAAC,CAAC;wBACnF,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC;4BACtB,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;gCAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;gCAAC,OAAO,GAAG,IAAI,CAAC;4BAAC,CAAC;wBAC1D,CAAC;oBACH,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAED,qEAAqE;IACrE,oCAAoC;IACpC,+BAA+B;IAC/B,0BAA0B;IAC1B,0BAA0B;IAC1B,uEAAuE;IACvE,yEAAyE;IACzE,yCAAyC;IACzC,IAAI,QAAQ,KAAK,MAAM,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACjF,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;QAC9D,MAAM,OAAO,GAAG,oBAAoB,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;QACrD,IAAI,OAAO,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;YACrB,IAAI,MAAM,GAA6B,cAAc,CAAC,CAAC,CAAC,CAAC;YACzD,KAAK,MAAM,CAAC,IAAI,cAAc,EAAE,CAAC;gBAC/B,IAAI,CAAC,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI;oBAAE,MAAM,GAAG,CAAC,CAAC;YACvC,CAAC;YACD,MAAM,YAAY,GAAG,IAAI,GAAG,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;YAClE,KAAK,MAAM,CAAC,OAAO,CAAC,IAAI,OAAO,EAAE,CAAC;gBAChC,IAAI,CAAC,OAAO,IAAI,YAAY,CAAC,GAAG,CAAC,OAAO,CAAC;oBAAE,SAAS;gBACpD,cAAc,CAAC,IAAI,CAAC;oBAClB,GAAG,MAAM;oBACT,QAAQ,EAAE,OAAO;iBAClB,CAAC,CAAC;gBACH,YAAY,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;YAC5B,CAAC;QACH,CAAC;IACH,CAAC;IAED,gEAAgE;IAChE,wEAAwE;IACxE,+EAA+E;IAC/E,MAAM,OAAO,GAAG,IAAI,GAAG,EAAkB,CAAC;IAC1C,KAAK,MAAM,CAAC,IAAI,cAAc,EAAE,CAAC;QAC/B,IAAI,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC;YAAE,SAAS;QACtC,MAAM,OAAO,GAAG,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,qBAAqB,EAAE,MAAM,CAAC,CAAC;QAClE,4EAA4E;QAC5E,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,EAAE,IAAI,MAAM,CAAC,uBAAuB,OAAO,qBAAqB,EAAE,GAAG,CAAC,CAAC,CAAC;IAChG,CAAC;IAED,iDAAiD;IACjD,MAAM,WAAW,GAAG,IAAI,GAAG,EAAwB,CAAC;IACpD,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,QAAQ,GAAG,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;QAC3D,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACpB,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;IAChD,CAAC;IAED,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,IAAI,gBAAgB,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC;YAAE,SAAS;QAC9C,MAAM,WAAW,GAAG,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;QAErD,KAAK,MAAM,IAAI,IAAI,WAAW,EAAE,CAAC;YAC/B,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;gBACjC,mEAAmE;gBACnE,IAAI,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC;oBACjD,CAAC,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;oBAC9C,SAAS;gBACX,CAAC;gBACD,MAAM,IAAI,GAAG,GAAG,CAAC,UAAU,CAAC;gBAC5B,IAAI,CAAC,IAAI;oBAAE,SAAS;gBAEpB,KAAK,MAAM,MAAM,IAAI,cAAc,EAAE,CAAC;oBACpC,0DAA0D;oBAC1D,IAAI,MAAM,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI;wBAAE,SAAS;oBAEvC,iEAAiE;oBACjE,4DAA4D;oBAC5D,4DAA4D;oBAC5D,2DAA2D;oBAC3D,iEAAiE;oBACjE,6CAA6C;oBAC7C,wDAAwD;oBACxD,oDAAoD;oBACpD,IACE,MAAM,CAAC,SAAS;wBAChB,IAAI,CAAC,SAAS;wBACd,MAAM,CAAC,SAAS,KAAK,IAAI,CAAC,SAAS,EACnC,CAAC;wBACD,SAAS;oBACX,CAAC;oBAED,MAAM,EAAE,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;oBACxC,IAAI,CAAC,EAAE,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC;wBAAE,SAAS;oBAEpC,kEAAkE;oBAClE,8DAA8D;oBAC9D,6DAA6D;oBAC7D,IAAI,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CACjB,CAAC,CAAC,WAAW,KAAK,MAAM,CAAC,IAAI;wBAC7B,CAAC,CAAC,SAAS,KAAK,IAAI,CAAC,IAAI;wBACzB,CAAC,CAAC,SAAS,KAAK,IAAI,CAAC,IAAI,CAC1B;wBAAE,SAAS;oBAEZ,8DAA8D;oBAC9D,8DAA8D;oBAC9D,+CAA+C;oBAC/C,4DAA4D;oBAC5D,IAAI,iBAAiB,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;wBAC3D,MAAM;oBACR,CAAC;oBAED,8DAA8D;oBAC9D,8DAA8D;oBAC9D,+DAA+D;oBAC/D,wDAAwD;oBACxD,8DAA8D;oBAC9D,kDAAkD;oBAClD,IACE,OAAO,IAAI,KAAK,QAAQ;wBACxB,4BAA4B,CAAC,IAAI,EAAE,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,EAC3E,CAAC;wBACD,MAAM;oBACR,CAAC;oBAED,4DAA4D;oBAC5D,iDAAiD;oBAEjD,KAAK,CAAC,IAAI,CAAC;wBACT,WAAW,EAAE,MAAM,CAAC,IAAI;wBACxB,SAAS,EAAI,IAAI,CAAC,IAAI;wBACtB,WAAW,EAAE,MAAM,CAAC,IAAI;wBACxB,SAAS,EAAI,IAAI,CAAC,IAAI;wBACtB,IAAI,EAAE;4BACJ,EAAE,QAAQ,EAAE,MAAM,CAAC,QAAQ,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,IAAI,EAAE,QAAiB,EAAE;4BACzE,EAAE,QAAQ,EAAE,MAAM,CAAC,QAAQ,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAI,IAAI,EAAE,MAAiB,EAAE;yBAC1E;wBACD,UAAU,EAAE,MAAM,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,GAAG,GAAG;wBACrD,SAAS,EAAE,KAAK;qBACjB,CAAC,CAAC;oBACH,MAAM,CAAC,+BAA+B;gBACxC,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAED,6CAA6C;IAC7C,EAAE;IACF,oEAAoE;IACpE,6DAA6D;IAC7D,0EAA0E;IAC1E,mEAAmE;IACnE,gEAAgE;IAChE,sEAAsE;IACtE,8DAA8D;IAC9D,EAAE;IACF,oEAAoE;IACpE,oEAAoE;IACpE,iEAAiE;IACjE,gEAAgE;IAChE,gEAAgE;IAChE,qEAAqE;IACrE,sEAAsE;IACtE,wDAAwD;IACxD,EAAE;IACF,qEAAqE;IACrE,qEAAqE;IACrE,kDAAkD;IAClD,EAAE;IACF,oEAAoE;IACpE,sEAAsE;IACtE,qEAAqE;IACrE,kEAAkE;IAClE,kEAAkE;IAClE,sCAAsC;IACtC,MAAM,aAAa,GAAG,IAAI,GAAG,EAA0B,CAAC;IACxD,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;QACxB,IAAI,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC;YAAE,SAAS;QAClD,MAAM,GAAG,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;QAC5C,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACZ,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IACjC,CAAC;IACD,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,IAAI,gBAAgB,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC;YAAE,SAAS;QAC9C,MAAM,YAAY,GAAG,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAClD,IAAI,CAAC,YAAY,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC;YAAE,SAAS;QACzD,KAAK,MAAM,MAAM,IAAI,YAAY,EAAE,CAAC;YAClC,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC;gBAAE,SAAS;YAC1D,iEAAiE;YACjE,kEAAkE;YAClE,kDAAkD;YAClD,sBAAsB;YACtB,iEAAiE;YACjE,+DAA+D;YAC/D,kEAAkE;YAClE,+DAA+D;YAC/D,gEAAgE;YAChE,iEAAiE;YACjE,+DAA+D;YAC/D,wDAAwD;YACxD,mCAAmC;YACnC,8DAA8D;YAC9D,+DAA+D;YAC/D,iEAAiE;YACjE,yCAAyC;YACzC,IACE,MAAM,CAAC,IAAI,KAAK,YAAY;gBAC5B,IAAI,CAAC,IAAI,KAAK,gBAAgB;gBAC9B,IAAI,CAAC,MAAM;gBACX,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,EAC3C,CAAC;gBACD,SAAS;YACX,CAAC;YACD,IAAI,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CACjB,CAAC,CAAC,WAAW,KAAK,MAAM,CAAC,IAAI;gBAC7B,CAAC,CAAC,SAAS,KAAK,IAAI,CAAC,IAAI;gBACzB,CAAC,CAAC,SAAS,KAAK,IAAI,CAAC,IAAI,CAC1B;gBAAE,SAAS;YACZ,KAAK,CAAC,IAAI,CAAC;gBACT,WAAW,EAAE,MAAM,CAAC,IAAI;gBACxB,SAAS,EAAI,IAAI,CAAC,IAAI;gBACtB,WAAW,EAAE,MAAM,CAAC,IAAI;gBACxB,SAAS,EAAI,IAAI,CAAC,IAAI;gBACtB,IAAI,EAAE;oBACJ,EAAE,QAAQ,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,IAAI,EAAE,QAAiB,EAAE;oBACpE,EAAE,QAAQ,EAAE,UAAU,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAI,IAAI,EAAE,MAAiB,EAAE;iBACrE;gBACD,UAAU,EAAE,MAAM,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,GAAG,IAAI;gBACtD,SAAS,EAAE,KAAK;aACjB,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAED,8EAA8E;AAC9E,+CAA+C;AAC/C,EAAE;AACF,6EAA6E;AAC7E,2EAA2E;AAC3E,2EAA2E;AAC3E,uDAAuD;AACvD,EAAE;AACF,2EAA2E;AAC3E,oEAAoE;AACpE,EAAE;AACF,+EAA+E;AAC/E,2CAA2C;AAC3C,6EAA6E;AAC7E,0EAA0E;AAC1E,uBAAuB;AACvB,oDAAoD;AACpD,2EAA2E;AAC3E,+DAA+D;AAC/D,8EAA8E;AAC9E,SAAS,gBAAgB,CACvB,OAAqC,EACrC,QAAgB,EAChB,UAAyB,EACzB,KAAoC,EACpC,UAA8B;IAE9B,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,SAAS,CAAC;IAE3C,qEAAqE;IACrE,yEAAyE;IACzE,uEAAuE;IACvE,oDAAoD;IACpD,MAAM,gBAAgB,GAAG,CAAC,KAAmC,EAA+C,EAAE;QAC5G,IAAI,IAAiD,CAAC;QACtD,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC;YACtB,IAAI,CAAC,CAAC,IAAI,IAAI,QAAQ;gBAAE,SAAS;YACjC,IAAI,CAAC,IAAI,IAAI,CAAC,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI;gBAAE,IAAI,GAAG,CAAC,CAAC;QAC5C,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC,CAAC;IAEF,uEAAuE;IACvE,iDAAiD;IACjD,IAAI,UAAU,EAAE,CAAC;QACf,MAAM,KAAK,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,UAAU,CAAC,CAAC;QAC7D,MAAM,IAAI,GAAG,gBAAgB,CAAC,KAAK,CAAC,CAAC;QACrC,IAAI,IAAI;YAAE,OAAO,IAAI,CAAC;IACxB,CAAC;IAED,qEAAqE;IACrE,yBAAyB;IACzB,IAAI,UAAU,IAAI,KAAK,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC5C,IAAI,WAAW,GAAG,CAAC,CAAC,CAAC;QACrB,IAAI,SAAS,GAAG,CAAC,CAAC,CAAC;QACnB,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC;YACtB,KAAK,MAAM,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,CAAC;gBAC1B,IAAI,CAAC,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;oBAC1B,WAAW,GAAG,CAAC,CAAC,UAAU,CAAC;oBAC3B,SAAS,GAAG,CAAC,CAAC,QAAQ,CAAC;oBACvB,MAAM;gBACR,CAAC;YACH,CAAC;YACD,IAAI,WAAW,GAAG,CAAC;gBAAE,MAAM;QAC7B,CAAC;QACD,IAAI,WAAW,GAAG,CAAC,IAAI,SAAS,IAAI,WAAW,EAAE,CAAC;YAChD,MAAM,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,WAAW,IAAI,CAAC,CAAC,IAAI,IAAI,SAAS,CAAC,CAAC;YAClF,MAAM,IAAI,GAAG,gBAAgB,CAAC,OAAO,CAAC,CAAC;YACvC,IAAI,IAAI;gBAAE,OAAO,IAAI,CAAC;QACxB,CAAC;IACH,CAAC;IAED,wCAAwC;IACxC,MAAM,UAAU,GAAG,gBAAgB,CAAC,OAAO,CAAC,CAAC;IAC7C,IAAI,UAAU;QAAE,OAAO,UAAU,CAAC;IAElC,sEAAsE;IACtE,4DAA4D;IAC5D,OAAO,OAAO,CAAC,CAAC,CAAC,CAAC;AACpB,CAAC"}
|
|
1
|
+
{"version":3,"file":"taint-propagation-pass.js","sourceRoot":"","sources":["../../../src/analysis/passes/taint-propagation-pass.ts"],"names":[],"mappings":"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"}
|
|
@@ -24508,6 +24508,17 @@ var SQL_BUILDER_WRAPPER_CALL_RE = /\.(?:wrap|quote|escape|identifier)\s*\(/;
|
|
|
24508
24508
|
var SQL_EXTRACTION_RETURN_RE = /^(?:String|CharSequence|Optional\s*<\s*String\s*>)$/;
|
|
24509
24509
|
var SQL_EXTRACTION_NAME_RE = /^(?:get|extract|build).*(?:[Ss]ql|[Qq]uery)|^toSql|.*Statement.*ToString$|.*Query.*String$/;
|
|
24510
24510
|
var SQL_EXTRACTION_PRIMITIVE_INPUT_RE = /^(?:String|CharSequence)$/;
|
|
24511
|
+
var SQL_EXEC_METHODS = /* @__PURE__ */ new Set([
|
|
24512
|
+
"prepareStatement",
|
|
24513
|
+
"prepareCall",
|
|
24514
|
+
"execute",
|
|
24515
|
+
"executeQuery",
|
|
24516
|
+
"executeUpdate",
|
|
24517
|
+
"executeLargeUpdate",
|
|
24518
|
+
"addBatch"
|
|
24519
|
+
]);
|
|
24520
|
+
var JAVA_SQL_ASSIGN_RE_TEMPLATE = "\\b(?:String|CharSequence|final\\s+String|var)\\s+SQLVAR\\b\\s*=\\s*(.+?);";
|
|
24521
|
+
var JAVA_INLINE_MATCHES_RE = /\.\s*matches\s*\(\s*"((?:[^"\\]|\\.)*)"\s*\)/g;
|
|
24511
24522
|
function resolveJavaReceiverType(receiver, sinkLine, sourceLines) {
|
|
24512
24523
|
if (!receiver || !/^[A-Za-z_]\w*$/.test(receiver)) return null;
|
|
24513
24524
|
const start2 = Math.max(0, sinkLine - 31);
|
|
@@ -24560,6 +24571,104 @@ function findEnclosingMethodFromIr(types, sinkLine) {
|
|
|
24560
24571
|
}
|
|
24561
24572
|
return null;
|
|
24562
24573
|
}
|
|
24574
|
+
function splitJavaConcatTokens(rhs) {
|
|
24575
|
+
const tokens = [];
|
|
24576
|
+
let cur = "";
|
|
24577
|
+
let depth = 0;
|
|
24578
|
+
let inString = false;
|
|
24579
|
+
let i2 = 0;
|
|
24580
|
+
while (i2 < rhs.length) {
|
|
24581
|
+
const ch = rhs[i2] ?? "";
|
|
24582
|
+
if (inString) {
|
|
24583
|
+
cur += ch;
|
|
24584
|
+
if (ch === "\\" && i2 + 1 < rhs.length) {
|
|
24585
|
+
cur += rhs[i2 + 1] ?? "";
|
|
24586
|
+
i2 += 2;
|
|
24587
|
+
continue;
|
|
24588
|
+
}
|
|
24589
|
+
if (ch === '"') inString = false;
|
|
24590
|
+
i2++;
|
|
24591
|
+
continue;
|
|
24592
|
+
}
|
|
24593
|
+
if (ch === '"') {
|
|
24594
|
+
inString = true;
|
|
24595
|
+
cur += ch;
|
|
24596
|
+
i2++;
|
|
24597
|
+
continue;
|
|
24598
|
+
}
|
|
24599
|
+
if (ch === "(" || ch === "[" || ch === "{") {
|
|
24600
|
+
depth++;
|
|
24601
|
+
cur += ch;
|
|
24602
|
+
i2++;
|
|
24603
|
+
continue;
|
|
24604
|
+
}
|
|
24605
|
+
if (ch === ")" || ch === "]" || ch === "}") {
|
|
24606
|
+
depth--;
|
|
24607
|
+
cur += ch;
|
|
24608
|
+
i2++;
|
|
24609
|
+
continue;
|
|
24610
|
+
}
|
|
24611
|
+
if (ch === "+" && depth === 0) {
|
|
24612
|
+
tokens.push(cur.trim());
|
|
24613
|
+
cur = "";
|
|
24614
|
+
i2++;
|
|
24615
|
+
continue;
|
|
24616
|
+
}
|
|
24617
|
+
cur += ch;
|
|
24618
|
+
i2++;
|
|
24619
|
+
}
|
|
24620
|
+
if (cur.trim()) tokens.push(cur.trim());
|
|
24621
|
+
return tokens;
|
|
24622
|
+
}
|
|
24623
|
+
function isImplicitlyAnchoredAllowlistRegex(re) {
|
|
24624
|
+
if (re === "") return false;
|
|
24625
|
+
const stripped = re.replace(/\[(?:[^\]\\]|\\.)*\]/g, "");
|
|
24626
|
+
const cleaned = stripped.replace(/\\./g, "");
|
|
24627
|
+
if (cleaned.includes(".")) return false;
|
|
24628
|
+
if (cleaned.includes("|")) return false;
|
|
24629
|
+
return true;
|
|
24630
|
+
}
|
|
24631
|
+
function findJavaMethodBody(methodName, sourceLines) {
|
|
24632
|
+
if (!/^[A-Za-z_]\w*$/.test(methodName)) return null;
|
|
24633
|
+
const sigRe = new RegExp(
|
|
24634
|
+
`\\b(?:public|private|protected|static|final|synchronized|\\s)+[\\w<>?,\\s\\[\\]]+?\\b${methodName}\\s*\\(`
|
|
24635
|
+
);
|
|
24636
|
+
for (let i2 = 0; i2 < sourceLines.length; i2++) {
|
|
24637
|
+
const ln = sourceLines[i2] ?? "";
|
|
24638
|
+
if (!sigRe.test(ln)) continue;
|
|
24639
|
+
let braceLine = -1;
|
|
24640
|
+
for (let j = i2; j < Math.min(sourceLines.length, i2 + 4); j++) {
|
|
24641
|
+
if ((sourceLines[j] ?? "").includes("{")) {
|
|
24642
|
+
braceLine = j;
|
|
24643
|
+
break;
|
|
24644
|
+
}
|
|
24645
|
+
}
|
|
24646
|
+
if (braceLine < 0) continue;
|
|
24647
|
+
let depth = 0;
|
|
24648
|
+
const body2 = [];
|
|
24649
|
+
for (let j = braceLine; j < sourceLines.length; j++) {
|
|
24650
|
+
const ln2 = sourceLines[j] ?? "";
|
|
24651
|
+
body2.push(ln2);
|
|
24652
|
+
for (const ch of ln2) {
|
|
24653
|
+
if (ch === "{") depth++;
|
|
24654
|
+
else if (ch === "}") depth--;
|
|
24655
|
+
}
|
|
24656
|
+
if (depth <= 0 && j > braceLine) return body2;
|
|
24657
|
+
}
|
|
24658
|
+
return null;
|
|
24659
|
+
}
|
|
24660
|
+
return null;
|
|
24661
|
+
}
|
|
24662
|
+
function javaBodyHasInlineRegexAllowlistThrow(bodyLines) {
|
|
24663
|
+
const text = bodyLines.join("\n");
|
|
24664
|
+
if (!/\bthrow\s+/.test(text)) return false;
|
|
24665
|
+
JAVA_INLINE_MATCHES_RE.lastIndex = 0;
|
|
24666
|
+
let m;
|
|
24667
|
+
while ((m = JAVA_INLINE_MATCHES_RE.exec(text)) !== null) {
|
|
24668
|
+
if (isImplicitlyAnchoredAllowlistRegex(m[1] ?? "")) return true;
|
|
24669
|
+
}
|
|
24670
|
+
return false;
|
|
24671
|
+
}
|
|
24563
24672
|
function isJavaLiteralOrAnnotationAccessor(expr) {
|
|
24564
24673
|
const e = expr.trim();
|
|
24565
24674
|
if (e === "") return true;
|
|
@@ -24773,6 +24882,21 @@ var SinkFilterPass = class {
|
|
|
24773
24882
|
return true;
|
|
24774
24883
|
});
|
|
24775
24884
|
}
|
|
24885
|
+
if (language === "java") {
|
|
24886
|
+
const sourceLines = ctx.code.split("\n");
|
|
24887
|
+
filtered = filtered.filter((sink) => {
|
|
24888
|
+
if (sink.type !== "xxe") return true;
|
|
24889
|
+
const sinkLineText = sourceLines[sink.line - 1] ?? "";
|
|
24890
|
+
const receiverMatch = sinkLineText.match(/\b(\w+)\s*\.\s*(\w+)\s*\(/);
|
|
24891
|
+
const receiver = receiverMatch?.[1];
|
|
24892
|
+
const method = sink.method ?? receiverMatch?.[2];
|
|
24893
|
+
if (method === "parse" && receiver) {
|
|
24894
|
+
const recvType = resolveJavaReceiverType(receiver, sink.line, sourceLines);
|
|
24895
|
+
if (recvType && DATA_PARSER_TYPES.has(recvType)) return false;
|
|
24896
|
+
}
|
|
24897
|
+
return true;
|
|
24898
|
+
});
|
|
24899
|
+
}
|
|
24776
24900
|
if (language === "java") {
|
|
24777
24901
|
const sourceLines = ctx.code.split("\n");
|
|
24778
24902
|
filtered = filtered.filter((sink) => {
|
|
@@ -24948,6 +25072,56 @@ var SinkFilterPass = class {
|
|
|
24948
25072
|
});
|
|
24949
25073
|
}
|
|
24950
25074
|
}
|
|
25075
|
+
if (language === "java") {
|
|
25076
|
+
const sourceLines = ctx.code.split("\n");
|
|
25077
|
+
filtered = filtered.filter((sink) => {
|
|
25078
|
+
if (sink.type !== "sql_injection") return true;
|
|
25079
|
+
const method = sink.method ?? "";
|
|
25080
|
+
if (!SQL_EXEC_METHODS.has(method)) return true;
|
|
25081
|
+
const sinkLineText = sourceLines[sink.line - 1] ?? "";
|
|
25082
|
+
const callArgs = extractJavaCallArgs(method, sinkLineText);
|
|
25083
|
+
if (!callArgs || callArgs.length === 0) return true;
|
|
25084
|
+
const sqlVar = callArgs[0]?.trim() ?? "";
|
|
25085
|
+
if (!/^[A-Za-z_]\w*$/.test(sqlVar)) return true;
|
|
25086
|
+
const lo = Math.max(0, sink.line - 31);
|
|
25087
|
+
const assignRe = new RegExp(
|
|
25088
|
+
JAVA_SQL_ASSIGN_RE_TEMPLATE.replace("SQLVAR", sqlVar)
|
|
25089
|
+
);
|
|
25090
|
+
let rhs = null;
|
|
25091
|
+
for (let i2 = sink.line - 2; i2 >= lo; i2--) {
|
|
25092
|
+
const ln = sourceLines[i2] ?? "";
|
|
25093
|
+
const m = ln.match(assignRe);
|
|
25094
|
+
if (m) {
|
|
25095
|
+
rhs = m[1] ?? null;
|
|
25096
|
+
break;
|
|
25097
|
+
}
|
|
25098
|
+
}
|
|
25099
|
+
if (!rhs) return true;
|
|
25100
|
+
const tokens = splitJavaConcatTokens(rhs);
|
|
25101
|
+
if (tokens.length < 2) return true;
|
|
25102
|
+
let hasPlaceholder = false;
|
|
25103
|
+
const methodCallNames = [];
|
|
25104
|
+
for (const tk of tokens) {
|
|
25105
|
+
if (/^"(?:[^"\\]|\\.)*"$/.test(tk)) {
|
|
25106
|
+
if (tk.includes("?")) hasPlaceholder = true;
|
|
25107
|
+
continue;
|
|
25108
|
+
}
|
|
25109
|
+
const callMatch = tk.match(/^([A-Za-z_]\w*)\s*\(/);
|
|
25110
|
+
if (callMatch) {
|
|
25111
|
+
methodCallNames.push(callMatch[1] ?? "");
|
|
25112
|
+
continue;
|
|
25113
|
+
}
|
|
25114
|
+
return true;
|
|
25115
|
+
}
|
|
25116
|
+
if (!hasPlaceholder) return true;
|
|
25117
|
+
if (methodCallNames.length === 0) return true;
|
|
25118
|
+
for (const mname of methodCallNames) {
|
|
25119
|
+
const body2 = findJavaMethodBody(mname, sourceLines);
|
|
25120
|
+
if (body2 && javaBodyHasInlineRegexAllowlistThrow(body2)) return false;
|
|
25121
|
+
}
|
|
25122
|
+
return true;
|
|
25123
|
+
});
|
|
25124
|
+
}
|
|
24951
25125
|
return { sources, sinks: filtered, sanitizers };
|
|
24952
25126
|
}
|
|
24953
25127
|
};
|
|
@@ -25324,6 +25498,20 @@ var TaintPropagationPass = class {
|
|
|
25324
25498
|
});
|
|
25325
25499
|
}
|
|
25326
25500
|
}
|
|
25501
|
+
const setIntervalLines = /* @__PURE__ */ new Set();
|
|
25502
|
+
for (const s of sinks) {
|
|
25503
|
+
if (s.type === "code_injection" && (s.method === "setInterval" || s.method === "setTimeout")) {
|
|
25504
|
+
setIntervalLines.add(s.line);
|
|
25505
|
+
}
|
|
25506
|
+
}
|
|
25507
|
+
if (setIntervalLines.size > 0) {
|
|
25508
|
+
finalFlows = finalFlows.filter((f) => {
|
|
25509
|
+
if (f.sink_type !== "code_injection") return true;
|
|
25510
|
+
if (f.source_type !== "interprocedural_param") return true;
|
|
25511
|
+
if (!setIntervalLines.has(f.sink_line)) return true;
|
|
25512
|
+
return false;
|
|
25513
|
+
});
|
|
25514
|
+
}
|
|
25327
25515
|
if (finalFlows.length > 1) {
|
|
25328
25516
|
const bestByKey = /* @__PURE__ */ new Map();
|
|
25329
25517
|
for (const f of finalFlows) {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "circle-ir",
|
|
3
|
-
"version": "3.
|
|
3
|
+
"version": "3.107.0",
|
|
4
4
|
"description": "High-performance Static Application Security Testing (SAST) library for detecting security vulnerabilities through taint analysis",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"module": "dist/index.js",
|