| readWithTimeout(Path, String) |   | 25% |   | 25% | 2 | 3 | 14 | 19 | 0 | 1 |
| parseResponse(String, String, Path) |   | 81% |   | 50% | 8 | 12 | 4 | 31 | 0 | 1 |
| lambda$startStderrDrainer$1(Process, int, long) |   | 43% |   | 16% | 3 | 4 | 5 | 10 | 0 | 1 |
| parseRedactionResponse(String, String, Path) |   | 86% |   | 60% | 8 | 11 | 2 | 16 | 0 | 1 |
| isAlive() |  | 0% |  | 0% | 3 | 3 | 1 | 1 | 1 | 1 |
| redact(Path, String) |   | 90% |   | 50% | 2 | 3 | 1 | 12 | 0 | 1 |
| scan(Path) |   | 90% |   | 50% | 2 | 3 | 1 | 12 | 0 | 1 |
| start() |  | 100% |   | 50% | 1 | 2 | 0 | 16 | 0 | 1 |
| kill(String) |  | 100% |   | 50% | 4 | 5 | 0 | 10 | 0 | 1 |
| PythonWorker(Path, PythonEnvironment, long, int) |  | 100% | | n/a | 0 | 1 | 0 | 7 | 0 | 1 |
| startStderrDrainer(Process, int, long) |  | 100% | | n/a | 0 | 1 | 0 | 4 | 0 | 1 |
| lambda$newReaderExecutor$0(int, Runnable) |  | 100% | | n/a | 0 | 1 | 0 | 3 | 0 | 1 |
| static {...} |  | 100% | | n/a | 0 | 1 | 0 | 2 | 0 | 1 |
| newReaderExecutor(int) |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |