public void finjectInpPayload (Circuit c, byte[] info, boolean alice_inputs) {
        int i, j, k, line_num, consumed_bytes ;

        for (i = k = 0; i < FMT.size(); i++) {
            IO io = FMT.elementAt(i);

            // Verify it's a relevant i/o object
            if (!io.isInput()) continue;
            if (io.isAlice() != alice_inputs) continue;

            // Scan all specified input bits, one by one,
            // and inject the payload data
            for (j = 0; j < io.getNLines(); j++) {
                // This bit belongs to output of j'th line_num
                line_num = io.getLinenum(j);
                Gate g = c.getGate(line_num);
                consumed_bytes = g.ginjectInpPayload(info, k);
                k += consumed_bytes;
            }
        }
    }