A classical bit is protected by repetition: send 111 for 1, and a single flip leaves a majority. A qubit cannot simply be copied (no gate copies an unknown state), but its value in the computational basis can be *spread*: two controlled-NOTs take a|0⟩ + b|1⟩ to a|000⟩ + b|111⟩. That is the three-qubit *bit-flip code*, the smallest error-correcting code. After a flip of one qubit, the same two controlled-NOTs decode: they leave q[0] holding the data (flipped, if q[0] was the one hit) and q[1], q[2] holding whether each disagreed with q[0]. A majority vote then corrects q[0]. This exercise is a *generator*: `input uint err;` makes the program a family, one circuit for each value. The check runs your program at err = 0, 1 and 2, each case with its own verdict, and passes only when all three do. On the command line every command takes `--input`: ```sh runnable cat > flip.qasm <<'QASM' OPENQASM 3.0; include "stdgates.inc"; input uint err; qubit[3] q; x q[err]; QASM wai-quantum instance flip.qasm --input err=2 ```