Tom Boucher
69e7afd0c7
chore( #3212 ): bounded quantifiers over document content — prohibition with teeth — Phase 4 ( #3441 )
...
* feat(#3415 ): ship local/no-unbounded-quantifier, burn down ReDoS class
Phase 4 of epic #3212 (ADR-3212 §5/§7, the final phase). New rule flags
an unbounded */+/{n,} quantifier over a broad character class
([\s\S], dotAll ., or a 1-2-unit negated class like [^\n]/[^)\n] — the
exact #2128-fixed shape) applied to a regex whose match target is
data-flow-traced to readFileSync content.
eslint-rules/lib/readfilesync-trace.cjs extracts the data-flow tracer
shared with no-crlf-fragile-split (Phase 2) rather than a second copy
— no-crlf-fragile-split refactored onto it with zero behavior change,
parity-tested.
Real triage, not 798 mechanical edits: the ADR's census (2026-08-08)
screened every unbounded quantifier in the tree unscoped. Correctly
scoped to readFileSync-derived content (matching Phase 2's own G2/G3
scoping), the rule found 162 real hits across two detection waves — the
second wave (93) surfaced only after a genuine off-by-one bug in this
rule's own first draft was caught while writing its RuleTester tests
and fixed (the bug silently missed every directly-quantified [\s\S]*
with no gap before the quantifier — exactly the class this rule exists
to catch). 3 hits landed in production src/ (commands.cts, milestone.cts,
roadmap.cts) and were each empirically timed against adversarial input
(matching #2128 's own measured-not-assumed precedent) — all confirmed
linear-time/benign, left unbounded with a measured-evidence comment
rather than mechanically bounded. The remaining 159 are test-file
fixture parsing (test-author-controlled, fixed-size content, not
adversarial input) — each suppressed with a specific, non-generic
reason. Zero functional behavior changed anywhere in this diff.
tests/no-pending-3212-markers.test.cjs locks the epic's own closing
invariant (ADR §7: "assert zero pending #3212 markers remain") — ground
truth confirmed trivially true today (no phase left any such marker
behind), now regression-locked going forward.
Design: .gsd/phase/chore-3415-prohibition-with-teeth/40-design.md
Test matrix: .gsd/phase/chore-3415-prohibition-with-teeth/50-test-matrix.md
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com >
* fix(#3415 ): correct rule category mislabel, add CI test-scope entry
An orthogonal Standards-axis review found eslint-rules/no-unbounded-quantifier.cjs
mistakenly carried meta.docs.category: 'Portability', copied from a sibling
rule without realizing what that implied: docs/contributing/cross-platform-
portability-rules.md governs an ADR-1703 rule family under a hard "zero
escape hatches" contract (tests/portability-rule-disable-ban.test.cjs's
PROTECTED_RULES bans eslint-disable for those rules entirely). This rule is
not part of that family — it's ADR-3212 (ReDoS/CWE-1333), a different epic —
and its eslint-disable-next-line suppressions (159 of them, added earlier
this same phase after empirical benign-verification) are an intentional,
correct design, not a bypass. Corrected to category: 'Best Practices',
matching the actual precedent (no-adhoc-regex-escape.cjs, Phase 1 of the
same epic, which is also correctly outside PROTECTED_RULES), and the rule's
own docstring now states this explicitly so a future reader doesn't have to
re-derive it.
Also registers a new scripts/ci-test-scope.cjs bucket so editing this rule
or the shared eslint-rules/lib/readfilesync-trace.cjs helper re-runs their
own test suites under targeted CI selection — was previously unregistered
and invisible to that fast-path (this PR's own gsd-test checkpoint runs the
full suite regardless, so this only affects future narrowly-scoped PRs).
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com >
* fix(#3415 ): bound no-unbounded-quantifier's own scanner (CWE-1333, ironic)
Security review found the rule meant to catch algorithmic-complexity bugs
had one of its own: hasUnboundedBroadQuantifier's negated-class inner
scan walked from each `[^` occurrence to the next `]` (or EOF) with no
bound, while the outer loop only ever advanced by one character — O(n²)
total work on a pattern with many unclosed `[^` runs. Runs unconditionally
inside checkPattern on any `new RegExp('literal string')` argument in any
linted file, before the (cheap) readFileSync data-flow gate — so a single
crafted string literal, no valid regex syntax required, could make
`npm run lint` / CI hang.
Empirically confirmed both the bug and the fix: pre-fix, n=4000/8000/
16000/32000 chars took 30.8/115.6/463.8/1874.3ms (~4x work per 2x n,
quadratic); extrapolated, the 300000-char repro from the finding would
run ~165s. Post-fix (bail the inner scan once units exceeds the rule's
own 1-2-unit scope, rather than continuing to hunt for a closing `]`),
the same 300000-char input runs in 8.7ms via the real rule module,
independently reconfirmed at 18ms via a fresh Linter.verify() call.
New regression row in tests/no-unbounded-quantifier.rule.test.cjs
asserts the RuleTester run on a 50000-char adversarial pattern
completes and returns a defined result — no wall-clock assertion
(CLAUDE.md Clock Seams / local/no-elapsed-assertion).
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com >
* fix(#3415 ): triage 3 new sites, re-raise ceiling after upstream batch
next merged 12 more PRs during this PR's review. Two consequences:
- tests/edit-phase.test.cjs (fix #3262 , unrelated) added 3 new
content.match(/<tag>([\s\S]*?)<\/tag>/) reads of this repo's own
workflow .md content — the same Class A pattern as the ~159 sites
already triaged elsewhere in this PR. Suppressed with the same
established reason.
- lint-allow-test-rule-refs' ratchet ceiling needed re-raising again
(301 -> 303) for the same reason as the two prior bumps: organic
growth from unrelated, already-reviewed PRs landing concurrently,
not a defect in this branch's own diff.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com >
---------
Co-authored-by: sim <sim@local>
Co-authored-by: Claude Sonnet 5 <noreply@anthropic.com >
2026-08-14 10:02:28 -04:00
..
2026-06-25 18:24:39 -04:00
2026-08-14 02:47:24 -04:00
2026-08-13 23:10:52 -04:00
2026-08-14 02:46:16 -04:00
2026-08-13 16:19:57 -04:00
2026-06-25 18:24:39 -04:00
2026-08-05 01:06:39 -04:00
2026-07-09 23:43:18 -04:00
2026-06-15 23:21:20 -04:00
2026-06-02 18:35:29 -04:00
2026-08-02 21:44:04 -04:00
2026-07-06 08:31:51 -04:00
2026-07-17 06:50:06 -04:00
2026-08-11 22:23:55 -04:00
2026-06-13 21:07:55 -04:00
2026-06-13 21:07:55 -04:00
2026-06-13 21:07:55 -04:00
2026-08-07 21:03:50 -04:00
2026-08-09 14:23:35 -04:00
2026-06-14 10:45:42 -04:00
2026-08-05 17:20:56 -04:00
2026-07-24 12:49:53 -04:00
2026-07-13 09:02:44 -06:00
2026-08-13 16:19:57 -04:00
2026-06-02 18:35:29 -04:00
2026-06-02 18:35:29 -04:00
2026-06-21 22:55:22 -04:00
2026-06-13 23:35:08 -04:00
2026-08-14 10:02:28 -04:00
2026-08-07 15:18:18 -04:00
2026-08-14 10:02:28 -04:00
2026-08-13 23:10:52 -04:00
2026-08-12 20:45:00 -04:00
2026-08-10 09:48:26 -04:00
2026-08-04 18:10:31 -04:00
2026-08-14 10:02:28 -04:00
2026-07-28 15:41:43 -04:00
2026-04-25 10:50:54 -04:00
2026-07-01 20:09:01 -04:00
2026-08-08 05:50:49 -05:00
2026-06-12 19:51:54 -04:00
2026-06-11 23:59:56 -04:00
2026-06-06 11:24:48 -04:00
2026-06-02 18:35:29 -04:00
2026-07-30 12:48:06 -04:00
2026-07-30 12:48:06 -04:00
2026-08-07 15:18:18 -04:00
2026-08-13 16:19:57 -04:00
2026-08-06 23:57:05 -04:00
2026-08-11 20:06:23 -04:00
2026-07-03 09:17:32 -04:00
2026-08-08 05:50:17 -05:00
2026-06-27 08:43:47 -04:00
2026-08-14 10:02:28 -04:00
2026-08-01 21:27:33 -04:00
2026-06-02 18:35:29 -04:00
2026-04-04 14:29:03 -04:00
2026-08-07 15:18:18 -04:00
2026-08-13 20:31:55 -04:00
2026-08-14 10:02:28 -04:00
2026-08-07 21:03:50 -04:00
2026-06-10 16:10:07 -04:00
2026-08-14 10:02:28 -04:00
2026-08-14 10:02:28 -04:00
2026-08-03 19:59:58 -04:00
2026-06-15 18:11:20 -04:00
2026-07-24 22:49:29 -04:00
2026-08-03 12:39:16 -04:00
2026-08-07 03:14:40 -04:00
2026-08-07 21:03:50 -04:00
2026-08-10 12:55:52 -04:00
2026-08-07 15:18:18 -04:00
2026-06-18 23:37:43 -04:00
2026-08-07 15:18:18 -04:00
2026-06-09 22:35:42 -04:00
2026-08-07 15:18:18 -04:00
2026-08-13 16:19:57 -04:00
2026-08-12 08:25:14 -04:00
2026-06-26 12:44:09 -04:00
2026-07-03 19:37:14 -04:00
2026-06-16 02:38:47 -04:00
2026-08-03 12:05:45 -04:00
2026-06-20 10:50:12 -04:00
2026-08-08 05:50:17 -05:00
2026-06-20 01:59:03 -04:00
2026-08-07 15:18:18 -04:00
2026-07-03 09:17:32 -04:00
2026-08-07 15:45:51 -04:00
2026-08-07 15:45:51 -04:00
2026-08-10 12:55:52 -04:00
2026-06-14 15:02:54 -04:00
2026-07-21 19:32:51 -04:00
2026-05-01 18:12:20 -04:00
2026-08-09 12:27:04 -04:00
2026-08-13 16:19:57 -04:00
2026-08-14 01:10:48 -04:00
2026-07-28 18:26:55 -04:00
2026-07-05 14:04:29 -04:00
2026-08-08 05:50:17 -05:00
2026-08-14 09:27:48 -04:00
2026-08-07 21:03:50 -04:00
2026-08-14 10:02:28 -04:00
2026-08-05 23:22:59 -04:00
2026-08-07 15:18:18 -04:00
2026-08-05 23:22:59 -04:00
2026-08-08 16:05:17 -04:00
2026-07-28 18:02:17 -04:00
2026-08-14 10:02:28 -04:00
2026-06-12 16:03:51 -04:00
2026-07-26 01:06:35 -04:00
2026-07-26 20:49:38 -04:00
2026-08-14 09:28:22 -04:00
2026-06-25 21:16:47 -04:00
2026-06-02 18:35:29 -04:00
2026-08-07 21:03:50 -04:00
2026-07-09 19:38:27 -04:00
2026-07-09 19:38:27 -04:00
2026-08-05 17:20:56 -04:00
2026-08-11 23:35:44 -04:00
2026-07-09 19:38:27 -04:00
2026-05-29 11:39:52 -04:00
2026-08-10 10:18:29 -04:00
2026-08-11 22:23:55 -04:00
2026-08-07 21:03:50 -04:00
2026-07-20 08:22:23 -04:00
2026-06-13 23:35:08 -04:00
2026-08-13 16:19:57 -04:00
2026-06-06 11:24:48 -04:00
2026-08-14 00:26:07 -04:00
2026-08-03 19:59:58 -04:00
2026-08-14 00:53:13 -04:00
2026-07-29 19:49:53 -04:00
2026-08-14 10:02:28 -04:00
2026-08-03 12:50:22 -04:00
2026-06-25 21:16:47 -04:00
2026-07-11 09:39:34 -04:00
2026-08-10 01:31:15 -04:00
2026-08-13 16:19:57 -04:00
2026-08-05 17:20:56 -04:00
2026-08-10 02:11:57 -04:00
2026-07-03 08:59:23 -04:00
2026-08-05 18:28:04 -04:00
2026-08-14 10:02:28 -04:00
2026-08-14 10:02:28 -04:00
2026-08-07 15:18:18 -04:00
2026-08-07 15:18:18 -04:00
2026-08-14 10:02:28 -04:00
2026-08-07 21:03:50 -04:00
2026-08-10 10:18:29 -04:00
2026-08-14 10:02:28 -04:00
2026-08-08 16:05:17 -04:00
2026-08-09 19:52:47 -04:00
2026-06-24 13:19:10 -04:00
2026-08-01 16:33:43 -04:00
2026-08-14 10:02:28 -04:00
2026-08-07 21:03:50 -04:00
2026-08-08 05:50:17 -05:00
2026-08-14 10:02:28 -04:00
2026-08-07 21:03:50 -04:00
2026-08-08 05:50:17 -05:00
2026-07-05 17:15:48 -04:00
2026-08-01 01:34:05 -04:00
2026-07-31 23:03:13 -04:00
2026-07-31 23:03:13 -04:00
2026-06-02 18:35:29 -04:00
2026-07-31 15:44:19 -04:00
2026-07-31 13:17:01 -04:00
2026-07-31 13:17:01 -04:00
2026-08-08 16:05:17 -04:00
2026-06-14 08:25:41 -04:00
2026-06-02 18:35:29 -04:00
2026-08-12 20:45:04 -04:00
2026-07-27 19:55:37 -04:00
2026-07-29 17:06:04 -04:00
2026-07-29 17:06:04 -04:00
2026-08-14 10:02:28 -04:00
2026-08-14 10:02:28 -04:00
2026-08-12 22:21:53 -04:00
2026-06-22 23:43:22 -04:00
2026-06-22 23:43:22 -04:00
2026-06-13 23:35:08 -04:00
2026-08-03 12:05:45 -04:00
2026-07-09 00:21:28 -04:00
2026-07-09 13:17:04 -04:00
2026-08-13 16:19:57 -04:00
2026-06-07 19:22:48 -04:00
2026-08-05 17:20:56 -04:00
2026-07-30 12:48:06 -04:00
2026-08-10 19:02:34 -04:00
2026-08-14 10:02:28 -04:00
2026-08-05 17:20:56 -04:00
2026-07-18 14:42:29 -04:00
2026-07-18 00:39:28 -04:00
2026-07-21 18:38:51 -04:00
2026-07-18 13:42:58 -04:00
2026-07-18 15:46:42 -04:00
2026-07-18 07:55:28 -04:00
2026-07-18 19:01:04 -04:00
2026-08-13 23:08:34 -04:00
2026-08-14 10:02:28 -04:00
2026-08-14 10:02:28 -04:00
2026-08-07 15:18:18 -04:00
2026-08-07 15:18:18 -04:00
2026-08-07 15:18:18 -04:00
2026-08-07 15:18:18 -04:00
2026-08-10 12:55:52 -04:00
2026-07-19 22:44:08 -04:00
2026-07-13 07:03:47 -07:00
2026-07-29 17:06:04 -04:00
2026-06-02 18:35:29 -04:00
2026-08-14 10:02:28 -04:00
2026-08-14 10:02:28 -04:00
2026-08-12 00:51:19 -04:00
2026-07-03 10:22:11 -04:00
2026-08-13 16:19:57 -04:00
2026-07-31 21:20:46 -04:00
2026-08-07 21:03:50 -04:00
2026-08-05 18:28:04 -04:00
2026-08-07 04:45:30 -04:00
2026-08-12 20:44:57 -04:00
2026-08-07 21:03:50 -04:00
2026-08-14 01:44:54 -04:00
2026-08-14 10:02:28 -04:00
2026-08-14 10:02:28 -04:00
2026-08-07 15:18:18 -04:00
2026-08-13 16:19:57 -04:00
2026-08-07 15:18:18 -04:00
2026-08-01 16:00:14 -04:00
2026-07-28 15:41:43 -04:00
2026-08-07 15:45:51 -04:00
2026-08-07 15:18:18 -04:00
2026-08-08 14:22:10 -04:00
2026-08-08 14:22:10 -04:00
2026-08-09 19:35:34 -04:00
2026-08-13 16:19:57 -04:00
2026-08-10 12:55:52 -04:00
2026-07-26 16:28:56 -04:00
2026-07-26 16:28:56 -04:00
2026-06-24 17:16:13 -04:00
2026-06-24 17:16:13 -04:00
2026-06-13 21:07:55 -04:00
2026-08-14 10:02:28 -04:00
2026-08-01 14:24:05 -04:00
2026-07-03 09:17:32 -04:00
2026-08-14 10:02:28 -04:00
2026-08-14 10:02:28 -04:00
2026-08-07 10:58:34 -04:00
2026-08-07 21:03:50 -04:00
2026-08-14 10:02:28 -04:00
2026-08-09 23:05:41 -04:00
2026-06-28 12:00:43 -04:00
2026-06-28 12:25:02 -04:00
2026-06-14 12:23:07 -04:00
2026-08-05 16:00:52 -04:00
2026-06-02 18:35:29 -04:00
2026-07-08 12:57:49 +03:00
2026-08-05 16:44:07 -04:00
2026-07-20 14:59:30 -04:00
2026-08-11 17:42:41 -04:00
2026-08-01 21:27:33 -04:00
2026-06-13 21:07:55 -04:00
2026-06-20 01:59:03 -04:00
2026-06-12 23:43:07 -04:00
2026-06-02 18:35:29 -04:00
2026-08-07 21:03:50 -04:00
2026-06-02 18:35:29 -04:00
2026-07-29 17:06:04 -04:00
2026-08-09 23:41:44 -04:00
2026-08-07 21:03:50 -04:00
2026-07-27 16:50:12 -04:00
2026-08-13 20:27:48 -04:00
2026-08-03 15:21:30 -04:00
2026-08-14 01:10:48 -04:00
2026-08-03 12:16:56 -04:00
2026-08-03 12:16:56 -04:00
2026-08-14 10:02:28 -04:00
2026-08-07 15:18:18 -04:00
2026-08-14 10:02:28 -04:00
2026-08-13 03:13:25 -04:00
2026-08-07 15:45:51 -04:00
2026-08-03 19:59:58 -04:00
2026-07-11 23:24:42 -04:00
2026-08-07 15:18:18 -04:00
2026-08-07 21:03:50 -04:00
2026-07-22 00:27:35 -04:00
2026-08-07 15:18:18 -04:00
2026-08-11 23:35:44 -04:00
2026-08-07 15:45:51 -04:00
2026-07-03 08:59:23 -04:00
2026-07-05 14:50:01 -04:00
2026-08-01 21:36:48 -04:00
2026-08-07 15:45:51 -04:00
2026-08-06 02:56:07 -04:00
2026-08-03 15:21:30 -04:00
2026-08-12 20:45:08 -04:00
2026-08-14 10:02:28 -04:00
2026-06-28 14:27:43 -04:00
2026-08-10 11:59:51 -04:00
2026-08-14 10:02:28 -04:00
2026-06-02 18:35:29 -04:00
2026-08-14 10:02:28 -04:00
2026-07-13 11:33:32 -06:00
2026-07-14 21:09:24 -04:00
2026-08-11 23:55:11 -04:00
2026-07-03 08:59:23 -04:00
2026-07-03 12:18:25 -04:00
2026-08-07 10:58:34 -04:00
2026-08-14 10:02:28 -04:00
2026-07-02 18:08:42 -04:00
2026-06-25 18:24:39 -04:00
2026-08-13 07:22:07 -04:00
2026-08-14 02:46:16 -04:00
2026-08-05 21:39:53 -04:00
2026-08-08 05:58:35 -05:00
2026-08-11 22:23:55 -04:00
2026-07-09 20:47:35 -04:00
2026-08-05 17:20:56 -04:00
2026-08-14 10:02:28 -04:00
2026-06-28 11:44:36 -04:00
2026-04-04 14:29:03 -04:00
2026-08-10 19:02:34 -04:00
2026-08-07 15:18:18 -04:00
2026-08-10 19:02:34 -04:00
2026-07-04 13:32:51 -04:00
2026-08-12 20:45:08 -04:00
2026-08-10 09:48:26 -04:00
2026-06-02 18:35:29 -04:00
2026-08-14 10:02:28 -04:00
2026-08-14 10:02:28 -04:00
2026-08-07 10:09:18 -04:00
2026-08-10 15:24:39 -04:00
2026-08-14 10:02:28 -04:00
2026-06-24 17:07:23 -04:00
2026-08-14 10:02:28 -04:00
2026-08-09 23:41:44 -04:00
2026-07-08 21:42:11 -04:00
2026-07-03 10:22:11 -04:00
2026-08-10 19:02:34 -04:00
2026-08-14 10:02:28 -04:00
2026-08-10 15:50:55 -04:00
2026-06-02 18:35:29 -04:00
2026-08-09 23:41:44 -04:00
2026-08-14 10:02:28 -04:00
2026-08-10 15:50:55 -04:00
2026-08-07 13:41:21 -04:00
2026-08-01 21:00:23 -04:00
2026-08-07 15:18:18 -04:00
2026-07-21 08:26:47 -04:00
2026-08-07 13:41:21 -04:00
2026-06-09 12:51:15 -04:00
2026-06-06 11:24:48 -04:00
2026-07-03 09:34:39 -04:00
2026-08-10 15:50:55 -04:00
2026-08-07 15:18:18 -04:00
2026-08-11 17:42:41 -04:00
2026-06-16 00:12:54 -04:00
2026-08-05 18:28:04 -04:00
2026-08-05 18:28:04 -04:00
2026-08-13 02:56:12 -04:00
2026-08-13 02:56:12 -04:00
2026-08-10 15:24:39 -04:00
2026-06-02 18:35:29 -04:00
2026-06-07 20:35:43 -04:00
2026-06-13 16:13:00 -04:00
2026-07-18 12:20:32 -04:00
2026-08-07 15:18:18 -04:00
2026-08-07 15:18:18 -04:00
2026-08-01 21:19:49 -04:00
2026-07-28 18:31:40 -04:00
2026-07-11 00:53:34 -04:00
2026-07-28 18:31:40 -04:00
2026-08-05 01:06:39 -04:00
2026-06-06 22:16:20 +02:00
2026-06-07 01:27:12 +02:00
2026-08-07 15:18:18 -04:00
2026-08-05 17:20:56 -04:00
2026-06-02 18:35:29 -04:00
2026-08-11 23:35:44 -04:00
2026-08-10 12:23:01 -04:00
2026-08-10 19:02:34 -04:00
2026-08-07 15:45:51 -04:00
2026-06-01 22:43:49 -04:00
2026-08-10 12:55:52 -04:00
2026-08-13 11:31:16 -04:00
2026-08-07 15:45:51 -04:00
2026-08-13 11:31:16 -04:00
2026-08-07 15:45:51 -04:00
2026-08-07 15:45:51 -04:00
2026-06-18 08:50:22 -04:00
2026-08-07 15:45:51 -04:00
2026-08-07 15:45:51 -04:00
2026-06-22 00:59:41 -04:00
2026-06-22 00:59:41 -04:00
2026-08-08 05:50:49 -05:00
2026-08-04 22:41:01 -04:00
2026-08-12 00:51:19 -04:00
2026-06-11 14:11:50 -04:00
2026-06-12 21:24:09 -04:00
2026-07-07 15:11:12 -04:00
2026-07-19 20:24:21 -04:00
2026-06-16 00:12:54 -04:00
2026-07-03 19:37:14 -04:00
2026-08-07 15:18:18 -04:00
2026-08-01 16:13:28 -04:00
2026-08-14 10:02:28 -04:00
2026-06-21 14:37:18 -04:00
2026-08-07 15:18:18 -04:00
2026-08-11 23:55:11 -04:00
2026-07-31 13:17:01 -04:00
2026-08-11 23:52:46 -04:00
2026-08-09 17:08:46 -04:00
2026-08-05 13:30:55 -04:00
2026-08-05 13:30:55 -04:00
2026-08-05 13:30:55 -04:00
2026-07-28 18:02:01 -04:00
2026-08-01 15:23:58 -04:00
2026-07-20 16:52:34 -04:00
2026-06-02 18:35:29 -04:00
2026-08-13 11:31:16 -04:00
2026-06-15 18:11:20 -04:00
2026-08-14 03:04:09 -04:00
2026-08-05 18:22:14 -04:00
2026-06-25 18:24:39 -04:00
2026-08-08 19:06:13 -04:00
2026-08-13 23:47:23 -04:00
2026-08-12 22:21:53 -04:00
2026-06-28 11:27:44 -04:00
2026-06-30 22:21:18 -04:00
2026-06-11 13:36:23 -04:00
2026-07-17 06:48:04 -04:00
2026-08-14 10:02:28 -04:00
2026-07-03 08:59:23 -04:00
2026-08-12 08:25:14 -04:00
2026-07-07 21:22:48 -04:00
2026-07-22 00:27:35 -04:00
2026-08-07 15:45:51 -04:00
2026-06-25 21:49:22 -04:00
2026-07-30 08:52:56 -04:00
2026-05-06 21:51:38 -04:00
2026-05-06 21:51:38 -04:00
2026-06-02 18:35:29 -04:00
2026-08-13 20:31:55 -04:00
2026-08-03 19:59:58 -04:00
2026-06-01 22:43:49 -04:00
2026-06-02 18:35:29 -04:00
2026-08-14 02:47:24 -04:00
2026-08-11 17:10:28 -04:00
2026-06-25 18:24:39 -04:00
2026-08-13 20:27:48 -04:00
2026-07-05 16:43:26 -04:00
2026-07-03 09:17:32 -04:00
2026-06-25 18:24:39 -04:00
2026-07-30 15:26:43 -04:00
2026-08-14 10:02:28 -04:00
2026-08-12 20:08:35 -04:00
2026-06-25 15:26:23 -04:00
2026-08-14 10:02:28 -04:00
2026-08-13 16:19:57 -04:00
2026-08-07 15:18:18 -04:00
2026-06-25 16:25:48 -04:00
2026-07-11 23:24:42 -04:00
2026-06-25 21:49:22 -04:00
2026-08-08 16:05:17 -04:00
2026-08-05 01:06:39 -04:00
2026-07-19 15:43:48 -04:00
2026-08-07 15:18:18 -04:00
2026-08-05 17:20:56 -04:00
2026-07-02 14:57:44 -04:00
2026-08-08 05:56:22 -05:00
2026-07-30 15:27:52 -04:00
2026-06-02 18:35:29 -04:00
2026-06-02 18:35:29 -04:00
2026-08-11 23:55:11 -04:00
2026-07-13 13:43:29 -04:00
2026-06-05 17:58:48 -04:00
2026-06-05 17:58:48 -04:00
2026-04-06 15:13:23 -04:00
2026-06-25 18:24:39 -04:00
2026-08-13 16:19:57 -04:00
2026-08-14 10:02:28 -04:00
2026-08-12 18:30:56 -04:00
2026-04-16 17:15:29 -04:00
2026-08-13 16:19:57 -04:00
2026-08-07 21:03:50 -04:00
2026-06-15 18:11:20 -04:00
2026-07-08 10:25:28 -04:00
2026-08-10 20:51:40 -04:00
2026-06-22 12:33:13 -04:00
2026-06-12 19:51:54 -04:00
2026-08-13 16:19:57 -04:00
2026-06-13 21:07:55 -04:00
2026-08-03 19:59:58 -04:00
2026-07-28 18:02:17 -04:00
2026-08-10 10:18:29 -04:00
2026-06-02 18:35:29 -04:00
2026-07-26 21:42:50 -04:00
2026-08-13 16:19:57 -04:00
2026-08-13 16:19:57 -04:00
2026-07-13 20:36:14 -04:00
2026-08-11 22:23:55 -04:00
2026-08-13 02:28:49 -04:00
2026-08-14 10:02:28 -04:00
2026-07-03 01:55:48 -04:00
2026-08-07 13:41:21 -04:00
2026-08-10 11:59:51 -04:00
2026-07-11 21:07:38 -04:00
2026-07-22 16:05:41 -04:00
2026-04-04 14:29:03 -04:00
2026-06-02 18:35:29 -04:00
2026-08-09 10:35:27 -04:00
2026-08-08 01:20:55 -04:00
2026-08-14 10:02:28 -04:00
2026-06-02 18:35:29 -04:00
2026-08-10 20:51:40 -04:00
2026-07-03 09:17:32 -04:00
2026-08-14 09:27:48 -04:00
2026-08-14 10:02:28 -04:00
2026-08-14 10:02:28 -04:00
2026-07-26 14:29:02 -04:00
2026-08-13 21:22:03 -04:00
2026-06-02 18:35:29 -04:00
2026-08-10 12:56:38 -04:00
2026-08-12 22:54:30 -04:00
2026-08-13 11:31:16 -04:00
2026-07-28 21:11:48 -04:00
2026-06-25 14:37:10 -04:00
2026-08-03 19:59:58 -04:00
2026-08-14 10:02:28 -04:00
2026-08-05 17:20:56 -04:00
2026-08-10 12:56:38 -04:00
2026-06-09 23:50:41 -04:00
2026-06-25 18:24:39 -04:00
2026-06-11 13:36:47 -04:00
2026-06-25 23:55:58 -04:00
2026-07-08 21:42:11 -04:00
2026-06-16 21:55:51 -04:00
2026-08-09 21:38:53 -04:00
2026-08-09 18:29:16 -04:00
2026-07-19 07:52:36 -04:00
2026-08-09 23:41:44 -04:00
2026-06-21 10:44:48 -04:00
2026-07-02 11:55:53 -04:00
2026-08-09 23:41:44 -04:00
2026-08-13 16:19:57 -04:00
2026-08-08 05:50:17 -05:00
2026-07-03 01:55:48 -04:00
2026-08-03 19:59:58 -04:00
2026-08-14 10:02:28 -04:00
2026-06-15 22:48:48 -04:00
2026-08-07 21:03:50 -04:00
2026-08-05 17:20:56 -04:00
2026-08-05 17:20:56 -04:00
2026-08-05 17:20:56 -04:00
2026-08-05 17:20:56 -04:00
2026-08-13 21:22:03 -04:00
2026-08-05 17:20:56 -04:00
2026-08-07 21:03:50 -04:00
2026-07-31 02:30:50 -04:00
2026-08-05 17:20:56 -04:00
2026-07-31 23:03:13 -04:00
2026-06-02 18:35:29 -04:00
2026-06-06 11:24:48 -04:00
2026-06-02 18:35:29 -04:00
2026-08-12 20:45:04 -04:00
2026-06-02 18:35:29 -04:00
2026-08-07 15:18:18 -04:00
2026-08-07 10:58:34 -04:00
2026-08-03 19:59:58 -04:00
2026-08-03 19:59:58 -04:00
2026-05-01 19:50:10 -04:00
2026-07-10 15:44:19 -04:00
2026-06-25 21:16:47 -04:00
2026-07-10 15:44:19 -04:00
2026-04-04 14:29:03 -04:00
2026-08-05 01:06:39 -04:00
2026-08-05 01:06:39 -04:00
2026-08-05 01:06:39 -04:00
2026-08-14 10:02:28 -04:00
2026-08-14 10:02:28 -04:00
2026-08-07 10:58:34 -04:00
2026-06-17 14:32:43 -04:00
2026-08-09 19:52:47 -04:00
2026-07-29 07:00:35 -04:00
2026-07-31 08:11:57 -04:00
2026-07-31 08:11:57 -04:00
2026-07-21 23:23:45 -04:00
2026-06-25 18:24:39 -04:00
2026-07-19 14:33:19 -04:00
2026-08-07 15:18:18 -04:00
2026-05-26 22:46:09 -04:00
2026-05-29 10:54:49 -04:00
2026-08-07 21:03:50 -04:00
2026-08-13 16:19:57 -04:00
2026-08-04 13:23:44 -04:00
2026-08-07 15:45:51 -04:00
2026-08-08 05:50:17 -05:00
2026-06-25 23:55:58 -04:00
2026-08-09 21:38:53 -04:00
2026-08-09 21:38:53 -04:00
2026-06-25 18:24:39 -04:00
2026-08-14 10:02:28 -04:00
2026-06-13 23:35:08 -04:00
2026-06-13 23:35:08 -04:00
2026-06-05 17:58:48 -04:00
2026-06-13 23:35:08 -04:00
2026-06-05 17:58:48 -04:00
2026-06-18 07:44:52 -04:00
2026-08-05 17:20:56 -04:00
2026-08-11 22:23:55 -04:00
2026-08-03 19:59:58 -04:00
2026-08-03 12:05:45 -04:00
2026-08-13 16:19:57 -04:00
2026-08-14 02:53:19 -04:00
2026-06-02 18:35:29 -04:00
2026-06-02 18:35:29 -04:00
2026-07-30 15:27:52 -04:00
2026-08-12 08:25:14 -04:00
2026-08-14 10:02:28 -04:00
2026-08-14 00:29:42 -04:00
2026-08-14 02:34:29 -04:00
2026-07-30 08:52:56 -04:00
2026-06-26 23:35:04 -04:00
2026-06-26 23:35:04 -04:00
2026-07-29 07:31:32 -04:00
2026-08-10 20:51:40 -04:00
2026-07-30 08:52:56 -04:00
2026-08-07 15:45:51 -04:00
2026-08-09 22:25:42 -04:00
2026-08-11 17:42:41 -04:00
2026-07-29 11:21:49 -04:00
2026-08-14 01:44:54 -04:00
2026-05-06 21:51:38 -04:00
2026-08-11 19:18:08 -04:00
2026-06-30 20:43:25 -04:00
2026-08-07 15:18:18 -04:00
2026-08-14 10:02:28 -04:00
2026-08-05 17:20:56 -04:00
2026-08-08 05:50:17 -05:00
2026-08-08 16:05:17 -04:00
2026-06-21 20:40:13 -04:00
2026-08-03 12:05:45 -04:00
2026-07-17 06:50:06 -04:00
2026-08-11 23:35:44 -04:00
2026-08-09 22:25:42 -04:00
2026-08-08 05:50:36 -05:00
2026-08-01 16:00:14 -04:00
2026-08-11 23:35:44 -04:00
2026-08-13 04:31:10 -04:00
2026-07-22 00:27:35 -04:00
2026-08-07 13:41:21 -04:00
2026-08-07 18:53:25 -04:00
2026-07-03 08:59:23 -04:00
2026-07-06 08:31:51 -04:00
2026-08-13 16:19:57 -04:00
2026-08-14 10:02:28 -04:00
2026-06-02 18:35:29 -04:00
2026-06-24 17:03:01 -04:00
2026-05-26 18:56:00 -04:00
2026-07-02 21:45:35 -04:00
2026-06-25 18:24:39 -04:00
2026-08-10 13:45:20 -04:00
2026-08-03 19:59:58 -04:00
2026-08-03 19:59:58 -04:00
2026-08-03 19:59:58 -04:00
2026-08-03 19:59:58 -04:00
2026-07-13 00:47:15 -04:00
2026-08-05 17:20:56 -04:00
2026-08-14 10:02:28 -04:00
2026-08-05 01:06:39 -04:00
2026-08-14 10:02:28 -04:00
2026-08-05 01:06:39 -04:00
2026-07-03 09:17:32 -04:00
2026-07-03 08:59:23 -04:00
2026-08-14 10:02:28 -04:00
2026-06-14 20:52:56 -04:00
2026-06-13 23:35:08 -04:00
2026-08-10 19:02:34 -04:00
2026-08-10 11:59:51 -04:00
2026-07-13 15:36:17 -04:00
2026-08-11 22:23:55 -04:00
2026-08-12 08:25:14 -04:00
2026-08-07 15:45:51 -04:00
2026-08-14 10:02:28 -04:00
2026-08-07 15:45:51 -04:00
2026-07-15 19:18:28 -04:00
2026-08-12 20:46:12 -04:00
2026-08-12 20:46:12 -04:00
2026-08-03 19:59:58 -04:00
2026-07-31 10:20:17 -04:00
2026-08-07 21:03:50 -04:00
2026-08-11 22:23:55 -04:00
2026-07-12 16:36:36 -04:00
2026-08-05 16:00:52 -04:00
2026-07-17 18:29:28 -04:00
2026-08-12 08:25:14 -04:00
2026-08-09 22:49:39 -04:00
2026-06-28 11:44:36 -04:00
2026-07-03 01:55:48 -04:00
2026-08-14 10:02:28 -04:00
2026-08-06 23:57:05 -04:00
2026-08-14 01:45:38 -04:00
2026-08-14 10:02:28 -04:00
2026-07-03 01:55:48 -04:00
2026-08-03 19:59:58 -04:00
2026-07-05 18:01:28 -04:00
2026-07-12 01:32:12 -04:00
2026-06-12 13:29:45 -04:00
2026-08-13 16:17:10 -04:00
2026-07-14 14:25:44 -04:00
2026-06-13 21:07:55 -04:00
2026-06-17 08:52:23 -04:00
2026-06-15 18:11:20 -04:00
2026-05-29 11:39:52 -04:00
2026-05-26 11:23:29 -04:00
2026-08-13 21:22:03 -04:00
2026-08-07 15:18:18 -04:00
2026-08-13 20:27:48 -04:00
2026-06-06 11:24:48 -04:00
2026-06-20 13:36:57 -04:00
2026-06-02 18:35:29 -04:00
2026-07-24 21:36:33 -04:00
2026-08-13 23:08:34 -04:00
2026-07-15 09:41:36 -04:00
2026-08-14 10:02:28 -04:00
2026-07-10 21:31:10 -04:00
2026-06-24 13:19:10 -04:00
2026-08-01 16:00:14 -04:00
2026-08-07 15:45:51 -04:00
2026-08-05 16:00:52 -04:00
2026-08-10 20:51:40 -04:00
2026-07-08 12:57:49 +03:00
2026-08-05 17:20:56 -04:00
2026-07-28 18:31:47 -04:00
2026-06-30 10:52:30 -04:00
2026-08-14 09:27:48 -04:00
2026-06-02 18:35:29 -04:00
2026-06-24 17:07:23 -04:00
2026-08-13 01:10:53 -04:00
2026-08-12 00:51:19 -04:00
2026-08-14 10:02:28 -04:00
2026-08-14 10:02:28 -04:00
2026-05-15 19:32:02 -04:00
2026-08-07 15:45:51 -04:00
2026-06-02 18:35:29 -04:00
2026-08-14 10:02:28 -04:00
2026-08-14 10:02:28 -04:00
2026-08-13 21:22:03 -04:00
2026-08-13 21:22:03 -04:00
2026-06-02 18:35:29 -04:00
2026-06-07 00:46:27 -04:00
2026-08-13 02:28:49 -04:00
2026-08-13 21:22:03 -04:00
2026-06-02 19:25:25 -04:00
2026-08-13 21:22:03 -04:00
2026-08-03 19:59:58 -04:00
2026-08-14 10:02:28 -04:00
2026-07-11 23:24:42 -04:00
2026-08-10 11:59:51 -04:00
2026-07-11 23:24:42 -04:00
2026-08-10 11:59:51 -04:00
2026-08-10 11:59:51 -04:00
2026-08-13 21:22:03 -04:00
2026-08-01 16:00:14 -04:00
2026-08-07 15:18:18 -04:00
2026-06-07 12:24:04 -04:00
2026-07-21 18:38:51 -04:00
2026-08-07 15:18:18 -04:00
2026-08-01 12:12:20 -04:00
2026-08-14 10:02:28 -04:00
2026-07-11 16:04:24 -04:00
2026-08-07 21:03:50 -04:00
2026-08-11 22:23:55 -04:00
2026-08-09 21:38:53 -04:00
2026-08-05 17:20:56 -04:00
2026-08-14 10:02:28 -04:00
2026-06-11 23:59:56 -04:00
2026-07-05 14:38:24 -04:00
2026-08-14 10:02:28 -04:00
2026-08-10 10:18:29 -04:00
2026-08-13 16:19:57 -04:00
2026-08-10 10:18:29 -04:00
2026-08-11 22:23:55 -04:00
2026-08-07 15:18:18 -04:00
2026-08-14 10:02:28 -04:00
2026-08-07 15:18:18 -04:00
2026-08-14 10:02:28 -04:00
2026-08-14 10:02:28 -04:00
2026-07-13 20:39:58 -04:00