convproto: fin/fout replicate maxime's logic in lockstep