# Patch for #3560 (review.py, main:/opt/review/review.py), backup first (.bak_ops_<ts>)
Why: misses.csv has ATH of $1T-$1e50 (e.g. 0xe11af6 5e16, 0x53ba88 8e50, 0x5199ea 26B, 0xcd091f 18B, 0x1cc4a7 2.4T): phantom pools with bad prices, counted as runners.
Changes (cap = $500M, no real coin gets there):
1. After line 14 (`RUNNER, BIG = 1e6, 5e6`) add `PHANTOM = 5e8`.
2. runners(): SQL `AND ath_mc>=?` -> `AND ath_mc>=? AND ath_mc<500000000` (line 32).
3. all_runner_set() SQL (line 52): same addition.
4. gold_runners(): `pk >= RUNNER:` -> `RUNNER <= pk < PHANTOM:` (line 46).
Live safe: review is read-only, output only misses.csv/index.html. Also purge existing phantom rows from misses.csv: keep rows with ath_usd < 5e8.
Verify: rerun review.py, `awk -F, 'NR>1&&$5>=5e8' misses.csv | wc -l` = 0.
