use crate::tfhe::bdd_arithmetic::{BitCircuit, BitCircuitInfo, Circuit, GetBitCircuitInfo, Node}; pub(crate) enum AnyBitCircuit { B0(BitCircuit<3, 2>), B1(BitCircuit<7, 4>), B2(BitCircuit<12, 6>), B3(BitCircuit<17, 8>), B4(BitCircuit<22, 10>), B5(BitCircuit<27, 12>), B6(BitCircuit<32, 14>), B7(BitCircuit<37, 16>), B8(BitCircuit<42, 18>), B9(BitCircuit<47, 20>), B10(BitCircuit<52, 22>), B11(BitCircuit<57, 24>), B12(BitCircuit<62, 26>), B13(BitCircuit<67, 28>), B14(BitCircuit<72, 30>), B15(BitCircuit<77, 32>), B16(BitCircuit<82, 34>), B17(BitCircuit<87, 36>), B18(BitCircuit<92, 38>), B19(BitCircuit<97, 40>), B20(BitCircuit<102, 42>), B21(BitCircuit<107, 44>), B22(BitCircuit<112, 46>), B23(BitCircuit<117, 48>), B24(BitCircuit<122, 50>), B25(BitCircuit<127, 52>), B26(BitCircuit<132, 54>), B27(BitCircuit<137, 56>), B28(BitCircuit<142, 58>), B29(BitCircuit<147, 60>), B30(BitCircuit<152, 62>), B31(BitCircuit<157, 64>), } impl BitCircuitInfo for AnyBitCircuit { fn info(&self) -> (&[Node], &[usize], usize) { match self { AnyBitCircuit::B0(bit_circuit) => ( bit_circuit.nodes.as_ref(), bit_circuit.levels.as_ref(), bit_circuit.max_inter_state, ), AnyBitCircuit::B1(bit_circuit) => ( bit_circuit.nodes.as_ref(), bit_circuit.levels.as_ref(), bit_circuit.max_inter_state, ), AnyBitCircuit::B2(bit_circuit) => ( bit_circuit.nodes.as_ref(), bit_circuit.levels.as_ref(), bit_circuit.max_inter_state, ), AnyBitCircuit::B3(bit_circuit) => ( bit_circuit.nodes.as_ref(), bit_circuit.levels.as_ref(), bit_circuit.max_inter_state, ), AnyBitCircuit::B4(bit_circuit) => ( bit_circuit.nodes.as_ref(), bit_circuit.levels.as_ref(), bit_circuit.max_inter_state, ), AnyBitCircuit::B5(bit_circuit) => ( bit_circuit.nodes.as_ref(), bit_circuit.levels.as_ref(), bit_circuit.max_inter_state, ), AnyBitCircuit::B6(bit_circuit) => ( bit_circuit.nodes.as_ref(), bit_circuit.levels.as_ref(), bit_circuit.max_inter_state, ), AnyBitCircuit::B7(bit_circuit) => ( bit_circuit.nodes.as_ref(), bit_circuit.levels.as_ref(), bit_circuit.max_inter_state, ), AnyBitCircuit::B8(bit_circuit) => ( bit_circuit.nodes.as_ref(), bit_circuit.levels.as_ref(), bit_circuit.max_inter_state, ), AnyBitCircuit::B9(bit_circuit) => ( bit_circuit.nodes.as_ref(), bit_circuit.levels.as_ref(), bit_circuit.max_inter_state, ), AnyBitCircuit::B10(bit_circuit) => ( bit_circuit.nodes.as_ref(), bit_circuit.levels.as_ref(), bit_circuit.max_inter_state, ), AnyBitCircuit::B11(bit_circuit) => ( bit_circuit.nodes.as_ref(), bit_circuit.levels.as_ref(), bit_circuit.max_inter_state, ), AnyBitCircuit::B12(bit_circuit) => ( bit_circuit.nodes.as_ref(), bit_circuit.levels.as_ref(), bit_circuit.max_inter_state, ), AnyBitCircuit::B13(bit_circuit) => ( bit_circuit.nodes.as_ref(), bit_circuit.levels.as_ref(), bit_circuit.max_inter_state, ), AnyBitCircuit::B14(bit_circuit) => ( bit_circuit.nodes.as_ref(), bit_circuit.levels.as_ref(), bit_circuit.max_inter_state, ), AnyBitCircuit::B15(bit_circuit) => ( bit_circuit.nodes.as_ref(), bit_circuit.levels.as_ref(), bit_circuit.max_inter_state, ), AnyBitCircuit::B16(bit_circuit) => ( bit_circuit.nodes.as_ref(), bit_circuit.levels.as_ref(), bit_circuit.max_inter_state, ), AnyBitCircuit::B17(bit_circuit) => ( bit_circuit.nodes.as_ref(), bit_circuit.levels.as_ref(), bit_circuit.max_inter_state, ), AnyBitCircuit::B18(bit_circuit) => ( bit_circuit.nodes.as_ref(), bit_circuit.levels.as_ref(), bit_circuit.max_inter_state, ), AnyBitCircuit::B19(bit_circuit) => ( bit_circuit.nodes.as_ref(), bit_circuit.levels.as_ref(), bit_circuit.max_inter_state, ), AnyBitCircuit::B20(bit_circuit) => ( bit_circuit.nodes.as_ref(), bit_circuit.levels.as_ref(), bit_circuit.max_inter_state, ), AnyBitCircuit::B21(bit_circuit) => ( bit_circuit.nodes.as_ref(), bit_circuit.levels.as_ref(), bit_circuit.max_inter_state, ), AnyBitCircuit::B22(bit_circuit) => ( bit_circuit.nodes.as_ref(), bit_circuit.levels.as_ref(), bit_circuit.max_inter_state, ), AnyBitCircuit::B23(bit_circuit) => ( bit_circuit.nodes.as_ref(), bit_circuit.levels.as_ref(), bit_circuit.max_inter_state, ), AnyBitCircuit::B24(bit_circuit) => ( bit_circuit.nodes.as_ref(), bit_circuit.levels.as_ref(), bit_circuit.max_inter_state, ), AnyBitCircuit::B25(bit_circuit) => ( bit_circuit.nodes.as_ref(), bit_circuit.levels.as_ref(), bit_circuit.max_inter_state, ), AnyBitCircuit::B26(bit_circuit) => ( bit_circuit.nodes.as_ref(), bit_circuit.levels.as_ref(), bit_circuit.max_inter_state, ), AnyBitCircuit::B27(bit_circuit) => ( bit_circuit.nodes.as_ref(), bit_circuit.levels.as_ref(), bit_circuit.max_inter_state, ), AnyBitCircuit::B28(bit_circuit) => ( bit_circuit.nodes.as_ref(), bit_circuit.levels.as_ref(), bit_circuit.max_inter_state, ), AnyBitCircuit::B29(bit_circuit) => ( bit_circuit.nodes.as_ref(), bit_circuit.levels.as_ref(), bit_circuit.max_inter_state, ), AnyBitCircuit::B30(bit_circuit) => ( bit_circuit.nodes.as_ref(), bit_circuit.levels.as_ref(), bit_circuit.max_inter_state, ), AnyBitCircuit::B31(bit_circuit) => ( bit_circuit.nodes.as_ref(), bit_circuit.levels.as_ref(), bit_circuit.max_inter_state, ), } } } impl GetBitCircuitInfo for Circuit { fn input_size(&self) -> usize { 2 * u32::BITS as usize } fn output_size(&self) -> usize { u32::BITS as usize } fn get_circuit(&self, bit: usize) -> (&[Node], &[usize], usize) { self.0[bit].info() } } pub(crate) static OUTPUT_CIRCUITS: Circuit = Circuit([ AnyBitCircuit::B0(BitCircuit::new( [Node::new(32, 1, 0), Node::new(32, 0, 1), Node::new(0, 1, 0)], [0, 2], 2, )), AnyBitCircuit::B1(BitCircuit::new( [ Node::new(33, 1, 0), Node::new(33, 0, 1), Node::new(1, 1, 0), Node::new(1, 0, 1), Node::new(1, 0, 0), Node::new(32, 1, 0), Node::new(0, 0, 1), ], [0, 2, 4, 6], 2, )), AnyBitCircuit::B2(BitCircuit::new( [ Node::new(34, 0, 1), Node::new(34, 1, 0), Node::new(2, 1, 0), Node::new(2, 0, 1), Node::new(2, 0, 0), Node::new(2, 1, 1), Node::new(33, 0, 1), Node::new(1, 1, 2), Node::new(1, 2, 0), Node::new(1, 0, 0), Node::new(32, 1, 0), Node::new(0, 0, 1), ], [0, 2, 4, 7, 9, 11], 3, )), AnyBitCircuit::B3(BitCircuit::new( [ Node::new(35, 0, 1), Node::new(35, 1, 0), Node::new(3, 1, 0), Node::new(3, 0, 1), Node::new(3, 0, 0), Node::new(3, 1, 1), Node::new(34, 0, 1), Node::new(2, 2, 0), Node::new(2, 1, 2), Node::new(2, 0, 0), Node::new(2, 1, 1), Node::new(33, 0, 1), Node::new(1, 1, 2), Node::new(1, 2, 0), Node::new(1, 0, 0), Node::new(32, 1, 0), Node::new(0, 0, 1), ], [0, 2, 4, 7, 9, 12, 14, 16], 3, )), AnyBitCircuit::B4(BitCircuit::new( [ Node::new(36, 0, 1), Node::new(36, 1, 0), Node::new(4, 0, 1), Node::new(4, 1, 0), Node::new(4, 0, 0), Node::new(4, 1, 1), Node::new(35, 1, 0), Node::new(3, 2, 1), Node::new(3, 0, 2), Node::new(3, 0, 0), Node::new(3, 1, 1), Node::new(34, 0, 1), Node::new(2, 2, 0), Node::new(2, 1, 2), Node::new(2, 0, 0), Node::new(2, 1, 1), Node::new(33, 0, 1), Node::new(1, 1, 2), Node::new(1, 2, 0), Node::new(1, 0, 0), Node::new(32, 1, 0), Node::new(0, 0, 1), ], [0, 2, 4, 7, 9, 12, 14, 17, 19, 21], 3, )), AnyBitCircuit::B5(BitCircuit::new( [ Node::new(37, 0, 1), Node::new(37, 1, 0), Node::new(5, 1, 0), Node::new(5, 0, 1), Node::new(5, 0, 0), Node::new(5, 1, 1), Node::new(36, 0, 1), Node::new(4, 2, 0), Node::new(4, 1, 2), Node::new(4, 0, 0), Node::new(4, 1, 1), Node::new(35, 0, 1), Node::new(3, 1, 2), Node::new(3, 2, 0), Node::new(3, 0, 0), Node::new(3, 1, 1), Node::new(34, 1, 0), Node::new(2, 2, 1), Node::new(2, 0, 2), Node::new(2, 0, 0), Node::new(2, 1, 1), Node::new(33, 0, 1), Node::new(1, 1, 2), Node::new(1, 2, 0), Node::new(1, 0, 0), Node::new(32, 1, 0), Node::new(0, 0, 1), ], [0, 2, 4, 7, 9, 12, 14, 17, 19, 22, 24, 26], 3, )), AnyBitCircuit::B6(BitCircuit::new( [ Node::new(38, 0, 1), Node::new(38, 1, 0), Node::new(6, 0, 1), Node::new(6, 1, 0), Node::new(6, 0, 0), Node::new(6, 1, 1), Node::new(37, 1, 0), Node::new(5, 2, 1), Node::new(5, 0, 2), Node::new(5, 0, 0), Node::new(5, 1, 1), Node::new(36, 0, 1), Node::new(4, 1, 2), Node::new(4, 2, 0), Node::new(4, 0, 0), Node::new(4, 1, 1), Node::new(35, 1, 0), Node::new(3, 2, 1), Node::new(3, 0, 2), Node::new(3, 0, 0), Node::new(3, 1, 1), Node::new(34, 0, 1), Node::new(2, 2, 0), Node::new(2, 1, 2), Node::new(2, 0, 0), Node::new(2, 1, 1), Node::new(33, 0, 1), Node::new(1, 1, 2), Node::new(1, 2, 0), Node::new(1, 0, 0), Node::new(32, 1, 0), Node::new(0, 0, 1), ], [0, 2, 4, 7, 9, 12, 14, 17, 19, 22, 24, 27, 29, 31], 3, )), AnyBitCircuit::B7(BitCircuit::new( [ Node::new(39, 1, 0), Node::new(39, 0, 1), Node::new(7, 0, 1), Node::new(7, 1, 0), Node::new(7, 0, 0), Node::new(7, 1, 1), Node::new(38, 0, 1), Node::new(6, 1, 2), Node::new(6, 2, 0), Node::new(6, 0, 0), Node::new(6, 1, 1), Node::new(37, 1, 0), Node::new(5, 2, 1), Node::new(5, 0, 2), Node::new(5, 0, 0), Node::new(5, 1, 1), Node::new(36, 0, 1), Node::new(4, 2, 0), Node::new(4, 1, 2), Node::new(4, 0, 0), Node::new(4, 1, 1), Node::new(35, 0, 1), Node::new(3, 2, 0), Node::new(3, 1, 2), Node::new(3, 0, 0), Node::new(3, 1, 1), Node::new(34, 0, 1), Node::new(2, 1, 2), Node::new(2, 2, 0), Node::new(2, 0, 0), Node::new(2, 1, 1), Node::new(33, 1, 0), Node::new(1, 0, 2), Node::new(1, 2, 1), Node::new(1, 0, 0), Node::new(32, 1, 0), Node::new(0, 0, 1), ], [0, 2, 4, 7, 9, 12, 14, 17, 19, 22, 24, 27, 29, 32, 34, 36], 3, )), AnyBitCircuit::B8(BitCircuit::new( [ Node::new(40, 1, 0), Node::new(40, 0, 1), Node::new(8, 1, 0), Node::new(8, 0, 1), Node::new(8, 0, 0), Node::new(8, 1, 1), Node::new(39, 1, 0), Node::new(7, 2, 1), Node::new(7, 0, 2), Node::new(7, 0, 0), Node::new(7, 1, 1), Node::new(38, 0, 1), Node::new(6, 1, 2), Node::new(6, 2, 0), Node::new(6, 0, 0), Node::new(6, 1, 1), Node::new(37, 1, 0), Node::new(5, 2, 1), Node::new(5, 0, 2), Node::new(5, 0, 0), Node::new(5, 1, 1), Node::new(36, 0, 1), Node::new(4, 2, 0), Node::new(4, 1, 2), Node::new(4, 0, 0), Node::new(4, 1, 1), Node::new(35, 0, 1), Node::new(3, 2, 0), Node::new(3, 1, 2), Node::new(3, 0, 0), Node::new(3, 1, 1), Node::new(34, 0, 1), Node::new(2, 2, 0), Node::new(2, 1, 2), Node::new(2, 0, 0), Node::new(2, 1, 1), Node::new(33, 0, 1), Node::new(1, 1, 2), Node::new(1, 2, 0), Node::new(1, 0, 0), Node::new(32, 1, 0), Node::new(0, 0, 1), ], [ 0, 2, 4, 7, 9, 12, 14, 17, 19, 22, 24, 27, 29, 32, 34, 37, 39, 41, ], 3, )), AnyBitCircuit::B9(BitCircuit::new( [ Node::new(41, 1, 0), Node::new(41, 0, 1), Node::new(9, 0, 1), Node::new(9, 1, 0), Node::new(9, 0, 0), Node::new(9, 1, 1), Node::new(40, 0, 1), Node::new(8, 1, 2), Node::new(8, 2, 0), Node::new(8, 0, 0), Node::new(8, 1, 1), Node::new(39, 1, 0), Node::new(7, 2, 1), Node::new(7, 0, 2), Node::new(7, 0, 0), Node::new(7, 1, 1), Node::new(38, 0, 1), Node::new(6, 1, 2), Node::new(6, 2, 0), Node::new(6, 0, 0), Node::new(6, 1, 1), Node::new(37, 1, 0), Node::new(5, 2, 1), Node::new(5, 0, 2), Node::new(5, 0, 0), Node::new(5, 1, 1), Node::new(36, 0, 1), Node::new(4, 2, 0), Node::new(4, 1, 2), Node::new(4, 0, 0), Node::new(4, 1, 1), Node::new(35, 0, 1), Node::new(3, 1, 2), Node::new(3, 2, 0), Node::new(3, 0, 0), Node::new(3, 1, 1), Node::new(34, 1, 0), Node::new(2, 0, 2), Node::new(2, 2, 1), Node::new(2, 0, 0), Node::new(2, 1, 1), Node::new(33, 1, 0), Node::new(1, 0, 2), Node::new(1, 2, 1), Node::new(1, 0, 0), Node::new(32, 1, 0), Node::new(0, 0, 1), ], [ 0, 2, 4, 7, 9, 12, 14, 17, 19, 22, 24, 27, 29, 32, 34, 37, 39, 42, 44, 46, ], 3, )), AnyBitCircuit::B10(BitCircuit::new( [ Node::new(42, 0, 1), Node::new(42, 1, 0), Node::new(10, 0, 1), Node::new(10, 1, 0), Node::new(10, 0, 0), Node::new(10, 1, 1), Node::new(41, 1, 0), Node::new(9, 2, 1), Node::new(9, 0, 2), Node::new(9, 0, 0), Node::new(9, 1, 1), Node::new(40, 0, 1), Node::new(8, 1, 2), Node::new(8, 2, 0), Node::new(8, 0, 0), Node::new(8, 1, 1), Node::new(39, 1, 0), Node::new(7, 0, 2), Node::new(7, 2, 1), Node::new(7, 0, 0), Node::new(7, 1, 1), Node::new(38, 1, 0), Node::new(6, 2, 1), Node::new(6, 0, 2), Node::new(6, 0, 0), Node::new(6, 1, 1), Node::new(37, 0, 1), Node::new(5, 2, 0), Node::new(5, 1, 2), Node::new(5, 0, 0), Node::new(5, 1, 1), Node::new(36, 0, 1), Node::new(4, 2, 0), Node::new(4, 1, 2), Node::new(4, 0, 0), Node::new(4, 1, 1), Node::new(35, 0, 1), Node::new(3, 1, 2), Node::new(3, 2, 0), Node::new(3, 0, 0), Node::new(3, 1, 1), Node::new(34, 1, 0), Node::new(2, 2, 1), Node::new(2, 0, 2), Node::new(2, 0, 0), Node::new(2, 1, 1), Node::new(33, 0, 1), Node::new(1, 1, 2), Node::new(1, 2, 0), Node::new(1, 0, 0), Node::new(32, 1, 0), Node::new(0, 0, 1), ], [ 0, 2, 4, 7, 9, 12, 14, 17, 19, 22, 24, 27, 29, 32, 34, 37, 39, 42, 44, 47, 49, 51, ], 3, )), AnyBitCircuit::B11(BitCircuit::new( [ Node::new(43, 0, 1), Node::new(43, 1, 0), Node::new(11, 1, 0), Node::new(11, 0, 1), Node::new(11, 0, 0), Node::new(11, 1, 1), Node::new(42, 0, 1), Node::new(10, 1, 2), Node::new(10, 2, 0), Node::new(10, 0, 0), Node::new(10, 1, 1), Node::new(41, 1, 0), Node::new(9, 0, 2), Node::new(9, 2, 1), Node::new(9, 0, 0), Node::new(9, 1, 1), Node::new(40, 1, 0), Node::new(8, 0, 2), Node::new(8, 2, 1), Node::new(8, 0, 0), Node::new(8, 1, 1), Node::new(39, 1, 0), Node::new(7, 0, 2), Node::new(7, 2, 1), Node::new(7, 0, 0), Node::new(7, 1, 1), Node::new(38, 1, 0), Node::new(6, 2, 1), Node::new(6, 0, 2), Node::new(6, 0, 0), Node::new(6, 1, 1), Node::new(37, 0, 1), Node::new(5, 1, 2), Node::new(5, 2, 0), Node::new(5, 0, 0), Node::new(5, 1, 1), Node::new(36, 1, 0), Node::new(4, 0, 2), Node::new(4, 2, 1), Node::new(4, 0, 0), Node::new(4, 1, 1), Node::new(35, 1, 0), Node::new(3, 2, 1), Node::new(3, 0, 2), Node::new(3, 0, 0), Node::new(3, 1, 1), Node::new(34, 0, 1), Node::new(2, 2, 0), Node::new(2, 1, 2), Node::new(2, 0, 0), Node::new(2, 1, 1), Node::new(33, 0, 1), Node::new(1, 1, 2), Node::new(1, 2, 0), Node::new(1, 0, 0), Node::new(32, 1, 0), Node::new(0, 0, 1), ], [ 0, 2, 4, 7, 9, 12, 14, 17, 19, 22, 24, 27, 29, 32, 34, 37, 39, 42, 44, 47, 49, 52, 54, 56, ], 3, )), AnyBitCircuit::B12(BitCircuit::new( [ Node::new(44, 1, 0), Node::new(44, 0, 1), Node::new(12, 1, 0), Node::new(12, 0, 1), Node::new(12, 0, 0), Node::new(12, 1, 1), Node::new(43, 1, 0), Node::new(11, 2, 1), Node::new(11, 0, 2), Node::new(11, 0, 0), Node::new(11, 1, 1), Node::new(42, 0, 1), Node::new(10, 2, 0), Node::new(10, 1, 2), Node::new(10, 0, 0), Node::new(10, 1, 1), Node::new(41, 0, 1), Node::new(9, 2, 0), Node::new(9, 1, 2), Node::new(9, 0, 0), Node::new(9, 1, 1), Node::new(40, 0, 1), Node::new(8, 1, 2), Node::new(8, 2, 0), Node::new(8, 0, 0), Node::new(8, 1, 1), Node::new(39, 1, 0), Node::new(7, 0, 2), Node::new(7, 2, 1), Node::new(7, 0, 0), Node::new(7, 1, 1), Node::new(38, 1, 0), Node::new(6, 2, 1), Node::new(6, 0, 2), Node::new(6, 0, 0), Node::new(6, 1, 1), Node::new(37, 0, 1), Node::new(5, 2, 0), Node::new(5, 1, 2), Node::new(5, 0, 0), Node::new(5, 1, 1), Node::new(36, 0, 1), Node::new(4, 1, 2), Node::new(4, 2, 0), Node::new(4, 0, 0), Node::new(4, 1, 1), Node::new(35, 1, 0), Node::new(3, 2, 1), Node::new(3, 0, 2), Node::new(3, 0, 0), Node::new(3, 1, 1), Node::new(34, 0, 1), Node::new(2, 1, 2), Node::new(2, 2, 0), Node::new(2, 0, 0), Node::new(2, 1, 1), Node::new(33, 1, 0), Node::new(1, 0, 2), Node::new(1, 2, 1), Node::new(1, 0, 0), Node::new(32, 1, 0), Node::new(0, 0, 1), ], [ 0, 2, 4, 7, 9, 12, 14, 17, 19, 22, 24, 27, 29, 32, 34, 37, 39, 42, 44, 47, 49, 52, 54, 57, 59, 61, ], 3, )), AnyBitCircuit::B13(BitCircuit::new( [ Node::new(45, 0, 1), Node::new(45, 1, 0), Node::new(13, 1, 0), Node::new(13, 0, 1), Node::new(13, 0, 0), Node::new(13, 1, 1), Node::new(44, 0, 1), Node::new(12, 1, 2), Node::new(12, 2, 0), Node::new(12, 0, 0), Node::new(12, 1, 1), Node::new(43, 1, 0), Node::new(11, 0, 2), Node::new(11, 2, 1), Node::new(11, 0, 0), Node::new(11, 1, 1), Node::new(42, 1, 0), Node::new(10, 0, 2), Node::new(10, 2, 1), Node::new(10, 0, 0), Node::new(10, 1, 1), Node::new(41, 1, 0), Node::new(9, 2, 1), Node::new(9, 0, 2), Node::new(9, 0, 0), Node::new(9, 1, 1), Node::new(40, 0, 1), Node::new(8, 2, 0), Node::new(8, 1, 2), Node::new(8, 0, 0), Node::new(8, 1, 1), Node::new(39, 0, 1), Node::new(7, 2, 0), Node::new(7, 1, 2), Node::new(7, 0, 0), Node::new(7, 1, 1), Node::new(38, 0, 1), Node::new(6, 1, 2), Node::new(6, 2, 0), Node::new(6, 0, 0), Node::new(6, 1, 1), Node::new(37, 1, 0), Node::new(5, 2, 1), Node::new(5, 0, 2), Node::new(5, 0, 0), Node::new(5, 1, 1), Node::new(36, 0, 1), Node::new(4, 2, 0), Node::new(4, 1, 2), Node::new(4, 0, 0), Node::new(4, 1, 1), Node::new(35, 0, 1), Node::new(3, 1, 2), Node::new(3, 2, 0), Node::new(3, 0, 0), Node::new(3, 1, 1), Node::new(34, 1, 0), Node::new(2, 2, 1), Node::new(2, 0, 2), Node::new(2, 0, 0), Node::new(2, 1, 1), Node::new(33, 0, 1), Node::new(1, 1, 2), Node::new(1, 2, 0), Node::new(1, 0, 0), Node::new(32, 1, 0), Node::new(0, 0, 1), ], [ 0, 2, 4, 7, 9, 12, 14, 17, 19, 22, 24, 27, 29, 32, 34, 37, 39, 42, 44, 47, 49, 52, 54, 57, 59, 62, 64, 66, ], 3, )), AnyBitCircuit::B14(BitCircuit::new( [ Node::new(46, 0, 1), Node::new(46, 1, 0), Node::new(14, 0, 1), Node::new(14, 1, 0), Node::new(14, 0, 0), Node::new(14, 1, 1), Node::new(45, 1, 0), Node::new(13, 0, 2), Node::new(13, 2, 1), Node::new(13, 0, 0), Node::new(13, 1, 1), Node::new(44, 1, 0), Node::new(12, 0, 2), Node::new(12, 2, 1), Node::new(12, 0, 0), Node::new(12, 1, 1), Node::new(43, 1, 0), Node::new(11, 2, 1), Node::new(11, 0, 2), Node::new(11, 0, 0), Node::new(11, 1, 1), Node::new(42, 0, 1), Node::new(10, 2, 0), Node::new(10, 1, 2), Node::new(10, 0, 0), Node::new(10, 1, 1), Node::new(41, 0, 1), Node::new(9, 2, 0), Node::new(9, 1, 2), Node::new(9, 0, 0), Node::new(9, 1, 1), Node::new(40, 0, 1), Node::new(8, 2, 0), Node::new(8, 1, 2), Node::new(8, 0, 0), Node::new(8, 1, 1), Node::new(39, 0, 1), Node::new(7, 1, 2), Node::new(7, 2, 0), Node::new(7, 0, 0), Node::new(7, 1, 1), Node::new(38, 1, 0), Node::new(6, 0, 2), Node::new(6, 2, 1), Node::new(6, 0, 0), Node::new(6, 1, 1), Node::new(37, 1, 0), Node::new(5, 0, 2), Node::new(5, 2, 1), Node::new(5, 0, 0), Node::new(5, 1, 1), Node::new(36, 1, 0), Node::new(4, 2, 1), Node::new(4, 0, 2), Node::new(4, 0, 0), Node::new(4, 1, 1), Node::new(35, 0, 1), Node::new(3, 2, 0), Node::new(3, 1, 2), Node::new(3, 0, 0), Node::new(3, 1, 1), Node::new(34, 0, 1), Node::new(2, 1, 2), Node::new(2, 2, 0), Node::new(2, 0, 0), Node::new(2, 1, 1), Node::new(33, 1, 0), Node::new(1, 0, 2), Node::new(1, 2, 1), Node::new(1, 0, 0), Node::new(32, 1, 0), Node::new(0, 0, 1), ], [ 0, 2, 4, 7, 9, 12, 14, 17, 19, 22, 24, 27, 29, 32, 34, 37, 39, 42, 44, 47, 49, 52, 54, 57, 59, 62, 64, 67, 69, 71, ], 3, )), AnyBitCircuit::B15(BitCircuit::new( [ Node::new(47, 0, 1), Node::new(47, 1, 0), Node::new(15, 0, 1), Node::new(15, 1, 0), Node::new(15, 0, 0), Node::new(15, 1, 1), Node::new(46, 1, 0), Node::new(14, 2, 1), Node::new(14, 0, 2), Node::new(14, 0, 0), Node::new(14, 1, 1), Node::new(45, 0, 1), Node::new(13, 2, 0), Node::new(13, 1, 2), Node::new(13, 0, 0), Node::new(13, 1, 1), Node::new(44, 0, 1), Node::new(12, 1, 2), Node::new(12, 2, 0), Node::new(12, 0, 0), Node::new(12, 1, 1), Node::new(43, 1, 0), Node::new(11, 0, 2), Node::new(11, 2, 1), Node::new(11, 0, 0), Node::new(11, 1, 1), Node::new(42, 1, 0), Node::new(10, 2, 1), Node::new(10, 0, 2), Node::new(10, 0, 0), Node::new(10, 1, 1), Node::new(41, 0, 1), Node::new(9, 1, 2), Node::new(9, 2, 0), Node::new(9, 0, 0), Node::new(9, 1, 1), Node::new(40, 1, 0), Node::new(8, 2, 1), Node::new(8, 0, 2), Node::new(8, 0, 0), Node::new(8, 1, 1), Node::new(39, 0, 1), Node::new(7, 2, 0), Node::new(7, 1, 2), Node::new(7, 0, 0), Node::new(7, 1, 1), Node::new(38, 0, 1), Node::new(6, 2, 0), Node::new(6, 1, 2), Node::new(6, 0, 0), Node::new(6, 1, 1), Node::new(37, 0, 1), Node::new(5, 1, 2), Node::new(5, 2, 0), Node::new(5, 0, 0), Node::new(5, 1, 1), Node::new(36, 1, 0), Node::new(4, 0, 2), Node::new(4, 2, 1), Node::new(4, 0, 0), Node::new(4, 1, 1), Node::new(35, 1, 0), Node::new(3, 2, 1), Node::new(3, 0, 2), Node::new(3, 0, 0), Node::new(3, 1, 1), Node::new(34, 0, 1), Node::new(2, 1, 2), Node::new(2, 2, 0), Node::new(2, 0, 0), Node::new(2, 1, 1), Node::new(33, 1, 0), Node::new(1, 0, 2), Node::new(1, 2, 1), Node::new(1, 0, 0), Node::new(32, 1, 0), Node::new(0, 0, 1), ], [ 0, 2, 4, 7, 9, 12, 14, 17, 19, 22, 24, 27, 29, 32, 34, 37, 39, 42, 44, 47, 49, 52, 54, 57, 59, 62, 64, 67, 69, 72, 74, 76, ], 3, )), AnyBitCircuit::B16(BitCircuit::new( [ Node::new(48, 1, 0), Node::new(48, 0, 1), Node::new(16, 1, 0), Node::new(16, 0, 1), Node::new(16, 0, 0), Node::new(16, 1, 1), Node::new(47, 1, 0), Node::new(15, 2, 1), Node::new(15, 0, 2), Node::new(15, 0, 0), Node::new(15, 1, 1), Node::new(46, 0, 1), Node::new(14, 1, 2), Node::new(14, 2, 0), Node::new(14, 0, 0), Node::new(14, 1, 1), Node::new(45, 1, 0), Node::new(13, 0, 2), Node::new(13, 2, 1), Node::new(13, 0, 0), Node::new(13, 1, 1), Node::new(44, 1, 0), Node::new(12, 2, 1), Node::new(12, 0, 2), Node::new(12, 0, 0), Node::new(12, 1, 1), Node::new(43, 0, 1), Node::new(11, 2, 0), Node::new(11, 1, 2), Node::new(11, 0, 0), Node::new(11, 1, 1), Node::new(42, 0, 1), Node::new(10, 1, 2), Node::new(10, 2, 0), Node::new(10, 0, 0), Node::new(10, 1, 1), Node::new(41, 1, 0), Node::new(9, 2, 1), Node::new(9, 0, 2), Node::new(9, 0, 0), Node::new(9, 1, 1), Node::new(40, 0, 1), Node::new(8, 2, 0), Node::new(8, 1, 2), Node::new(8, 0, 0), Node::new(8, 1, 1), Node::new(39, 0, 1), Node::new(7, 2, 0), Node::new(7, 1, 2), Node::new(7, 0, 0), Node::new(7, 1, 1), Node::new(38, 0, 1), Node::new(6, 1, 2), Node::new(6, 2, 0), Node::new(6, 0, 0), Node::new(6, 1, 1), Node::new(37, 1, 0), Node::new(5, 2, 1), Node::new(5, 0, 2), Node::new(5, 0, 0), Node::new(5, 1, 1), Node::new(36, 0, 1), Node::new(4, 2, 0), Node::new(4, 1, 2), Node::new(4, 0, 0), Node::new(4, 1, 1), Node::new(35, 0, 1), Node::new(3, 1, 2), Node::new(3, 2, 0), Node::new(3, 0, 0), Node::new(3, 1, 1), Node::new(34, 1, 0), Node::new(2, 2, 1), Node::new(2, 0, 2), Node::new(2, 0, 0), Node::new(2, 1, 1), Node::new(33, 0, 1), Node::new(1, 1, 2), Node::new(1, 2, 0), Node::new(1, 0, 0), Node::new(32, 1, 0), Node::new(0, 0, 1), ], [ 0, 2, 4, 7, 9, 12, 14, 17, 19, 22, 24, 27, 29, 32, 34, 37, 39, 42, 44, 47, 49, 52, 54, 57, 59, 62, 64, 67, 69, 72, 74, 77, 79, 81, ], 3, )), AnyBitCircuit::B17(BitCircuit::new( [ Node::new(49, 1, 0), Node::new(49, 0, 1), Node::new(17, 1, 0), Node::new(17, 0, 1), Node::new(17, 0, 0), Node::new(17, 1, 1), Node::new(48, 1, 0), Node::new(16, 0, 2), Node::new(16, 2, 1), Node::new(16, 0, 0), Node::new(16, 1, 1), Node::new(47, 1, 0), Node::new(15, 2, 1), Node::new(15, 0, 2), Node::new(15, 0, 0), Node::new(15, 1, 1), Node::new(46, 0, 1), Node::new(14, 2, 0), Node::new(14, 1, 2), Node::new(14, 0, 0), Node::new(14, 1, 1), Node::new(45, 0, 1), Node::new(13, 1, 2), Node::new(13, 2, 0), Node::new(13, 0, 0), Node::new(13, 1, 1), Node::new(44, 1, 0), Node::new(12, 2, 1), Node::new(12, 0, 2), Node::new(12, 0, 0), Node::new(12, 1, 1), Node::new(43, 0, 1), Node::new(11, 1, 2), Node::new(11, 2, 0), Node::new(11, 0, 0), Node::new(11, 1, 1), Node::new(42, 1, 0), Node::new(10, 2, 1), Node::new(10, 0, 2), Node::new(10, 0, 0), Node::new(10, 1, 1), Node::new(41, 0, 1), Node::new(9, 2, 0), Node::new(9, 1, 2), Node::new(9, 0, 0), Node::new(9, 1, 1), Node::new(40, 0, 1), Node::new(8, 2, 0), Node::new(8, 1, 2), Node::new(8, 0, 0), Node::new(8, 1, 1), Node::new(39, 0, 1), Node::new(7, 1, 2), Node::new(7, 2, 0), Node::new(7, 0, 0), Node::new(7, 1, 1), Node::new(38, 1, 0), Node::new(6, 0, 2), Node::new(6, 2, 1), Node::new(6, 0, 0), Node::new(6, 1, 1), Node::new(37, 1, 0), Node::new(5, 0, 2), Node::new(5, 2, 1), Node::new(5, 0, 0), Node::new(5, 1, 1), Node::new(36, 1, 0), Node::new(4, 2, 1), Node::new(4, 0, 2), Node::new(4, 0, 0), Node::new(4, 1, 1), Node::new(35, 0, 1), Node::new(3, 2, 0), Node::new(3, 1, 2), Node::new(3, 0, 0), Node::new(3, 1, 1), Node::new(34, 0, 1), Node::new(2, 1, 2), Node::new(2, 2, 0), Node::new(2, 0, 0), Node::new(2, 1, 1), Node::new(33, 1, 0), Node::new(1, 0, 2), Node::new(1, 2, 1), Node::new(1, 0, 0), Node::new(32, 1, 0), Node::new(0, 0, 1), ], [ 0, 2, 4, 7, 9, 12, 14, 17, 19, 22, 24, 27, 29, 32, 34, 37, 39, 42, 44, 47, 49, 52, 54, 57, 59, 62, 64, 67, 69, 72, 74, 77, 79, 82, 84, 86, ], 3, )), AnyBitCircuit::B18(BitCircuit::new( [ Node::new(50, 0, 1), Node::new(50, 1, 0), Node::new(18, 0, 1), Node::new(18, 1, 0), Node::new(18, 0, 0), Node::new(18, 1, 1), Node::new(49, 1, 0), Node::new(17, 0, 2), Node::new(17, 2, 1), Node::new(17, 0, 0), Node::new(17, 1, 1), Node::new(48, 1, 0), Node::new(16, 2, 1), Node::new(16, 0, 2), Node::new(16, 0, 0), Node::new(16, 1, 1), Node::new(47, 0, 1), Node::new(15, 2, 0), Node::new(15, 1, 2), Node::new(15, 0, 0), Node::new(15, 1, 1), Node::new(46, 0, 1), Node::new(14, 2, 0), Node::new(14, 1, 2), Node::new(14, 0, 0), Node::new(14, 1, 1), Node::new(45, 0, 1), Node::new(13, 2, 0), Node::new(13, 1, 2), Node::new(13, 0, 0), Node::new(13, 1, 1), Node::new(44, 0, 1), Node::new(12, 2, 0), Node::new(12, 1, 2), Node::new(12, 0, 0), Node::new(12, 1, 1), Node::new(43, 0, 1), Node::new(11, 2, 0), Node::new(11, 1, 2), Node::new(11, 0, 0), Node::new(11, 1, 1), Node::new(42, 0, 1), Node::new(10, 1, 2), Node::new(10, 2, 0), Node::new(10, 0, 0), Node::new(10, 1, 1), Node::new(41, 1, 0), Node::new(9, 2, 1), Node::new(9, 0, 2), Node::new(9, 0, 0), Node::new(9, 1, 1), Node::new(40, 0, 1), Node::new(8, 2, 0), Node::new(8, 1, 2), Node::new(8, 0, 0), Node::new(8, 1, 1), Node::new(39, 0, 1), Node::new(7, 1, 2), Node::new(7, 2, 0), Node::new(7, 0, 0), Node::new(7, 1, 1), Node::new(38, 1, 0), Node::new(6, 0, 2), Node::new(6, 2, 1), Node::new(6, 0, 0), Node::new(6, 1, 1), Node::new(37, 1, 0), Node::new(5, 0, 2), Node::new(5, 2, 1), Node::new(5, 0, 0), Node::new(5, 1, 1), Node::new(36, 1, 0), Node::new(4, 0, 2), Node::new(4, 2, 1), Node::new(4, 0, 0), Node::new(4, 1, 1), Node::new(35, 1, 0), Node::new(3, 0, 2), Node::new(3, 2, 1), Node::new(3, 0, 0), Node::new(3, 1, 1), Node::new(34, 1, 0), Node::new(2, 2, 1), Node::new(2, 0, 2), Node::new(2, 0, 0), Node::new(2, 1, 1), Node::new(33, 0, 1), Node::new(1, 1, 2), Node::new(1, 2, 0), Node::new(1, 0, 0), Node::new(32, 1, 0), Node::new(0, 0, 1), ], [ 0, 2, 4, 7, 9, 12, 14, 17, 19, 22, 24, 27, 29, 32, 34, 37, 39, 42, 44, 47, 49, 52, 54, 57, 59, 62, 64, 67, 69, 72, 74, 77, 79, 82, 84, 87, 89, 91, ], 3, )), AnyBitCircuit::B19(BitCircuit::new( [ Node::new(51, 0, 1), Node::new(51, 1, 0), Node::new(19, 0, 1), Node::new(19, 1, 0), Node::new(19, 0, 0), Node::new(19, 1, 1), Node::new(50, 1, 0), Node::new(18, 0, 2), Node::new(18, 2, 1), Node::new(18, 0, 0), Node::new(18, 1, 1), Node::new(49, 1, 0), Node::new(17, 0, 2), Node::new(17, 2, 1), Node::new(17, 0, 0), Node::new(17, 1, 1), Node::new(48, 1, 0), Node::new(16, 0, 2), Node::new(16, 2, 1), Node::new(16, 0, 0), Node::new(16, 1, 1), Node::new(47, 1, 0), Node::new(15, 2, 1), Node::new(15, 0, 2), Node::new(15, 0, 0), Node::new(15, 1, 1), Node::new(46, 0, 1), Node::new(14, 1, 2), Node::new(14, 2, 0), Node::new(14, 0, 0), Node::new(14, 1, 1), Node::new(45, 1, 0), Node::new(13, 2, 1), Node::new(13, 0, 2), Node::new(13, 0, 0), Node::new(13, 1, 1), Node::new(44, 0, 1), Node::new(12, 1, 2), Node::new(12, 2, 0), Node::new(12, 0, 0), Node::new(12, 1, 1), Node::new(43, 1, 0), Node::new(11, 0, 2), Node::new(11, 2, 1), Node::new(11, 0, 0), Node::new(11, 1, 1), Node::new(42, 1, 0), Node::new(10, 2, 1), Node::new(10, 0, 2), Node::new(10, 0, 0), Node::new(10, 1, 1), Node::new(41, 0, 1), Node::new(9, 2, 0), Node::new(9, 1, 2), Node::new(9, 0, 0), Node::new(9, 1, 1), Node::new(40, 0, 1), Node::new(8, 1, 2), Node::new(8, 2, 0), Node::new(8, 0, 0), Node::new(8, 1, 1), Node::new(39, 1, 0), Node::new(7, 2, 1), Node::new(7, 0, 2), Node::new(7, 0, 0), Node::new(7, 1, 1), Node::new(38, 0, 1), Node::new(6, 2, 0), Node::new(6, 1, 2), Node::new(6, 0, 0), Node::new(6, 1, 1), Node::new(37, 0, 1), Node::new(5, 1, 2), Node::new(5, 2, 0), Node::new(5, 0, 0), Node::new(5, 1, 1), Node::new(36, 1, 0), Node::new(4, 0, 2), Node::new(4, 2, 1), Node::new(4, 0, 0), Node::new(4, 1, 1), Node::new(35, 1, 0), Node::new(3, 2, 1), Node::new(3, 0, 2), Node::new(3, 0, 0), Node::new(3, 1, 1), Node::new(34, 0, 1), Node::new(2, 1, 2), Node::new(2, 2, 0), Node::new(2, 0, 0), Node::new(2, 1, 1), Node::new(33, 1, 0), Node::new(1, 0, 2), Node::new(1, 2, 1), Node::new(1, 0, 0), Node::new(32, 1, 0), Node::new(0, 0, 1), ], [ 0, 2, 4, 7, 9, 12, 14, 17, 19, 22, 24, 27, 29, 32, 34, 37, 39, 42, 44, 47, 49, 52, 54, 57, 59, 62, 64, 67, 69, 72, 74, 77, 79, 82, 84, 87, 89, 92, 94, 96, ], 3, )), AnyBitCircuit::B20(BitCircuit::new( [ Node::new(52, 1, 0), Node::new(52, 0, 1), Node::new(20, 0, 1), Node::new(20, 1, 0), Node::new(20, 0, 0), Node::new(20, 1, 1), Node::new(51, 0, 1), Node::new(19, 2, 0), Node::new(19, 1, 2), Node::new(19, 0, 0), Node::new(19, 1, 1), Node::new(50, 0, 1), Node::new(18, 2, 0), Node::new(18, 1, 2), Node::new(18, 0, 0), Node::new(18, 1, 1), Node::new(49, 0, 1), Node::new(17, 2, 0), Node::new(17, 1, 2), Node::new(17, 0, 0), Node::new(17, 1, 1), Node::new(48, 0, 1), Node::new(16, 2, 0), Node::new(16, 1, 2), Node::new(16, 0, 0), Node::new(16, 1, 1), Node::new(47, 0, 1), Node::new(15, 1, 2), Node::new(15, 2, 0), Node::new(15, 0, 0), Node::new(15, 1, 1), Node::new(46, 1, 0), Node::new(14, 0, 2), Node::new(14, 2, 1), Node::new(14, 0, 0), Node::new(14, 1, 1), Node::new(45, 1, 0), Node::new(13, 2, 1), Node::new(13, 0, 2), Node::new(13, 0, 0), Node::new(13, 1, 1), Node::new(44, 0, 1), Node::new(12, 1, 2), Node::new(12, 2, 0), Node::new(12, 0, 0), Node::new(12, 1, 1), Node::new(43, 1, 0), Node::new(11, 0, 2), Node::new(11, 2, 1), Node::new(11, 0, 0), Node::new(11, 1, 1), Node::new(42, 1, 0), Node::new(10, 0, 2), Node::new(10, 2, 1), Node::new(10, 0, 0), Node::new(10, 1, 1), Node::new(41, 1, 0), Node::new(9, 2, 1), Node::new(9, 0, 2), Node::new(9, 0, 0), Node::new(9, 1, 1), Node::new(40, 0, 1), Node::new(8, 2, 0), Node::new(8, 1, 2), Node::new(8, 0, 0), Node::new(8, 1, 1), Node::new(39, 0, 1), Node::new(7, 2, 0), Node::new(7, 1, 2), Node::new(7, 0, 0), Node::new(7, 1, 1), Node::new(38, 0, 1), Node::new(6, 2, 0), Node::new(6, 1, 2), Node::new(6, 0, 0), Node::new(6, 1, 1), Node::new(37, 0, 1), Node::new(5, 1, 2), Node::new(5, 2, 0), Node::new(5, 0, 0), Node::new(5, 1, 1), Node::new(36, 1, 0), Node::new(4, 2, 1), Node::new(4, 0, 2), Node::new(4, 0, 0), Node::new(4, 1, 1), Node::new(35, 0, 1), Node::new(3, 1, 2), Node::new(3, 2, 0), Node::new(3, 0, 0), Node::new(3, 1, 1), Node::new(34, 1, 0), Node::new(2, 2, 1), Node::new(2, 0, 2), Node::new(2, 0, 0), Node::new(2, 1, 1), Node::new(33, 0, 1), Node::new(1, 1, 2), Node::new(1, 2, 0), Node::new(1, 0, 0), Node::new(32, 1, 0), Node::new(0, 0, 1), ], [ 0, 2, 4, 7, 9, 12, 14, 17, 19, 22, 24, 27, 29, 32, 34, 37, 39, 42, 44, 47, 49, 52, 54, 57, 59, 62, 64, 67, 69, 72, 74, 77, 79, 82, 84, 87, 89, 92, 94, 97, 99, 101, ], 3, )), AnyBitCircuit::B21(BitCircuit::new( [ Node::new(53, 1, 0), Node::new(53, 0, 1), Node::new(21, 1, 0), Node::new(21, 0, 1), Node::new(21, 0, 0), Node::new(21, 1, 1), Node::new(52, 1, 0), Node::new(20, 2, 1), Node::new(20, 0, 2), Node::new(20, 0, 0), Node::new(20, 1, 1), Node::new(51, 0, 1), Node::new(19, 2, 0), Node::new(19, 1, 2), Node::new(19, 0, 0), Node::new(19, 1, 1), Node::new(50, 0, 1), Node::new(18, 1, 2), Node::new(18, 2, 0), Node::new(18, 0, 0), Node::new(18, 1, 1), Node::new(49, 1, 0), Node::new(17, 2, 1), Node::new(17, 0, 2), Node::new(17, 0, 0), Node::new(17, 1, 1), Node::new(48, 0, 1), Node::new(16, 1, 2), Node::new(16, 2, 0), Node::new(16, 0, 0), Node::new(16, 1, 1), Node::new(47, 1, 0), Node::new(15, 0, 2), Node::new(15, 2, 1), Node::new(15, 0, 0), Node::new(15, 1, 1), Node::new(46, 1, 0), Node::new(14, 2, 1), Node::new(14, 0, 2), Node::new(14, 0, 0), Node::new(14, 1, 1), Node::new(45, 0, 1), Node::new(13, 2, 0), Node::new(13, 1, 2), Node::new(13, 0, 0), Node::new(13, 1, 1), Node::new(44, 0, 1), Node::new(12, 1, 2), Node::new(12, 2, 0), Node::new(12, 0, 0), Node::new(12, 1, 1), Node::new(43, 1, 0), Node::new(11, 2, 1), Node::new(11, 0, 2), Node::new(11, 0, 0), Node::new(11, 1, 1), Node::new(42, 0, 1), Node::new(10, 2, 0), Node::new(10, 1, 2), Node::new(10, 0, 0), Node::new(10, 1, 1), Node::new(41, 0, 1), Node::new(9, 2, 0), Node::new(9, 1, 2), Node::new(9, 0, 0), Node::new(9, 1, 1), Node::new(40, 0, 1), Node::new(8, 1, 2), Node::new(8, 2, 0), Node::new(8, 0, 0), Node::new(8, 1, 1), Node::new(39, 1, 0), Node::new(7, 0, 2), Node::new(7, 2, 1), Node::new(7, 0, 0), Node::new(7, 1, 1), Node::new(38, 1, 0), Node::new(6, 0, 2), Node::new(6, 2, 1), Node::new(6, 0, 0), Node::new(6, 1, 1), Node::new(37, 1, 0), Node::new(5, 2, 1), Node::new(5, 0, 2), Node::new(5, 0, 0), Node::new(5, 1, 1), Node::new(36, 0, 1), Node::new(4, 1, 2), Node::new(4, 2, 0), Node::new(4, 0, 0), Node::new(4, 1, 1), Node::new(35, 1, 0), Node::new(3, 0, 2), Node::new(3, 2, 1), Node::new(3, 0, 0), Node::new(3, 1, 1), Node::new(34, 1, 0), Node::new(2, 0, 2), Node::new(2, 2, 1), Node::new(2, 0, 0), Node::new(2, 1, 1), Node::new(33, 1, 0), Node::new(1, 0, 2), Node::new(1, 2, 1), Node::new(1, 0, 0), Node::new(32, 1, 0), Node::new(0, 0, 1), ], [ 0, 2, 4, 7, 9, 12, 14, 17, 19, 22, 24, 27, 29, 32, 34, 37, 39, 42, 44, 47, 49, 52, 54, 57, 59, 62, 64, 67, 69, 72, 74, 77, 79, 82, 84, 87, 89, 92, 94, 97, 99, 102, 104, 106, ], 3, )), AnyBitCircuit::B22(BitCircuit::new( [ Node::new(54, 0, 1), Node::new(54, 1, 0), Node::new(22, 0, 1), Node::new(22, 1, 0), Node::new(22, 0, 0), Node::new(22, 1, 1), Node::new(53, 1, 0), Node::new(21, 2, 1), Node::new(21, 0, 2), Node::new(21, 0, 0), Node::new(21, 1, 1), Node::new(52, 0, 1), Node::new(20, 2, 0), Node::new(20, 1, 2), Node::new(20, 0, 0), Node::new(20, 1, 1), Node::new(51, 0, 1), Node::new(19, 1, 2), Node::new(19, 2, 0), Node::new(19, 0, 0), Node::new(19, 1, 1), Node::new(50, 1, 0), Node::new(18, 0, 2), Node::new(18, 2, 1), Node::new(18, 0, 0), Node::new(18, 1, 1), Node::new(49, 1, 0), Node::new(17, 2, 1), Node::new(17, 0, 2), Node::new(17, 0, 0), Node::new(17, 1, 1), Node::new(48, 0, 1), Node::new(16, 1, 2), Node::new(16, 2, 0), Node::new(16, 0, 0), Node::new(16, 1, 1), Node::new(47, 1, 0), Node::new(15, 0, 2), Node::new(15, 2, 1), Node::new(15, 0, 0), Node::new(15, 1, 1), Node::new(46, 1, 0), Node::new(14, 0, 2), Node::new(14, 2, 1), Node::new(14, 0, 0), Node::new(14, 1, 1), Node::new(45, 1, 0), Node::new(13, 0, 2), Node::new(13, 2, 1), Node::new(13, 0, 0), Node::new(13, 1, 1), Node::new(44, 1, 0), Node::new(12, 0, 2), Node::new(12, 2, 1), Node::new(12, 0, 0), Node::new(12, 1, 1), Node::new(43, 1, 0), Node::new(11, 0, 2), Node::new(11, 2, 1), Node::new(11, 0, 0), Node::new(11, 1, 1), Node::new(42, 1, 0), Node::new(10, 2, 1), Node::new(10, 0, 2), Node::new(10, 0, 0), Node::new(10, 1, 1), Node::new(41, 0, 1), Node::new(9, 1, 2), Node::new(9, 2, 0), Node::new(9, 0, 0), Node::new(9, 1, 1), Node::new(40, 1, 0), Node::new(8, 2, 1), Node::new(8, 0, 2), Node::new(8, 0, 0), Node::new(8, 1, 1), Node::new(39, 0, 1), Node::new(7, 2, 0), Node::new(7, 1, 2), Node::new(7, 0, 0), Node::new(7, 1, 1), Node::new(38, 0, 1), Node::new(6, 1, 2), Node::new(6, 2, 0), Node::new(6, 0, 0), Node::new(6, 1, 1), Node::new(37, 1, 0), Node::new(5, 0, 2), Node::new(5, 2, 1), Node::new(5, 0, 0), Node::new(5, 1, 1), Node::new(36, 1, 0), Node::new(4, 2, 1), Node::new(4, 0, 2), Node::new(4, 0, 0), Node::new(4, 1, 1), Node::new(35, 0, 1), Node::new(3, 1, 2), Node::new(3, 2, 0), Node::new(3, 0, 0), Node::new(3, 1, 1), Node::new(34, 1, 0), Node::new(2, 2, 1), Node::new(2, 0, 2), Node::new(2, 0, 0), Node::new(2, 1, 1), Node::new(33, 0, 1), Node::new(1, 1, 2), Node::new(1, 2, 0), Node::new(1, 0, 0), Node::new(32, 1, 0), Node::new(0, 0, 1), ], [ 0, 2, 4, 7, 9, 12, 14, 17, 19, 22, 24, 27, 29, 32, 34, 37, 39, 42, 44, 47, 49, 52, 54, 57, 59, 62, 64, 67, 69, 72, 74, 77, 79, 82, 84, 87, 89, 92, 94, 97, 99, 102, 104, 107, 109, 111, ], 3, )), AnyBitCircuit::B23(BitCircuit::new( [ Node::new(55, 0, 1), Node::new(55, 1, 0), Node::new(23, 1, 0), Node::new(23, 0, 1), Node::new(23, 0, 0), Node::new(23, 1, 1), Node::new(54, 0, 1), Node::new(22, 2, 0), Node::new(22, 1, 2), Node::new(22, 0, 0), Node::new(22, 1, 1), Node::new(53, 0, 1), Node::new(21, 1, 2), Node::new(21, 2, 0), Node::new(21, 0, 0), Node::new(21, 1, 1), Node::new(52, 1, 0), Node::new(20, 0, 2), Node::new(20, 2, 1), Node::new(20, 0, 0), Node::new(20, 1, 1), Node::new(51, 1, 0), Node::new(19, 0, 2), Node::new(19, 2, 1), Node::new(19, 0, 0), Node::new(19, 1, 1), Node::new(50, 1, 0), Node::new(18, 0, 2), Node::new(18, 2, 1), Node::new(18, 0, 0), Node::new(18, 1, 1), Node::new(49, 1, 0), Node::new(17, 2, 1), Node::new(17, 0, 2), Node::new(17, 0, 0), Node::new(17, 1, 1), Node::new(48, 0, 1), Node::new(16, 2, 0), Node::new(16, 1, 2), Node::new(16, 0, 0), Node::new(16, 1, 1), Node::new(47, 0, 1), Node::new(15, 1, 2), Node::new(15, 2, 0), Node::new(15, 0, 0), Node::new(15, 1, 1), Node::new(46, 1, 0), Node::new(14, 0, 2), Node::new(14, 2, 1), Node::new(14, 0, 0), Node::new(14, 1, 1), Node::new(45, 1, 0), Node::new(13, 0, 2), Node::new(13, 2, 1), Node::new(13, 0, 0), Node::new(13, 1, 1), Node::new(44, 1, 0), Node::new(12, 2, 1), Node::new(12, 0, 2), Node::new(12, 0, 0), Node::new(12, 1, 1), Node::new(43, 0, 1), Node::new(11, 1, 2), Node::new(11, 2, 0), Node::new(11, 0, 0), Node::new(11, 1, 1), Node::new(42, 1, 0), Node::new(10, 2, 1), Node::new(10, 0, 2), Node::new(10, 0, 0), Node::new(10, 1, 1), Node::new(41, 0, 1), Node::new(9, 2, 0), Node::new(9, 1, 2), Node::new(9, 0, 0), Node::new(9, 1, 1), Node::new(40, 0, 1), Node::new(8, 1, 2), Node::new(8, 2, 0), Node::new(8, 0, 0), Node::new(8, 1, 1), Node::new(39, 1, 0), Node::new(7, 2, 1), Node::new(7, 0, 2), Node::new(7, 0, 0), Node::new(7, 1, 1), Node::new(38, 0, 1), Node::new(6, 1, 2), Node::new(6, 2, 0), Node::new(6, 0, 0), Node::new(6, 1, 1), Node::new(37, 1, 0), Node::new(5, 0, 2), Node::new(5, 2, 1), Node::new(5, 0, 0), Node::new(5, 1, 1), Node::new(36, 1, 0), Node::new(4, 0, 2), Node::new(4, 2, 1), Node::new(4, 0, 0), Node::new(4, 1, 1), Node::new(35, 1, 0), Node::new(3, 2, 1), Node::new(3, 0, 2), Node::new(3, 0, 0), Node::new(3, 1, 1), Node::new(34, 0, 1), Node::new(2, 1, 2), Node::new(2, 2, 0), Node::new(2, 0, 0), Node::new(2, 1, 1), Node::new(33, 1, 0), Node::new(1, 0, 2), Node::new(1, 2, 1), Node::new(1, 0, 0), Node::new(32, 1, 0), Node::new(0, 0, 1), ], [ 0, 2, 4, 7, 9, 12, 14, 17, 19, 22, 24, 27, 29, 32, 34, 37, 39, 42, 44, 47, 49, 52, 54, 57, 59, 62, 64, 67, 69, 72, 74, 77, 79, 82, 84, 87, 89, 92, 94, 97, 99, 102, 104, 107, 109, 112, 114, 116, ], 3, )), AnyBitCircuit::B24(BitCircuit::new( [ Node::new(56, 1, 0), Node::new(56, 0, 1), Node::new(24, 1, 0), Node::new(24, 0, 1), Node::new(24, 0, 0), Node::new(24, 1, 1), Node::new(55, 1, 0), Node::new(23, 0, 2), Node::new(23, 2, 1), Node::new(23, 0, 0), Node::new(23, 1, 1), Node::new(54, 1, 0), Node::new(22, 2, 1), Node::new(22, 0, 2), Node::new(22, 0, 0), Node::new(22, 1, 1), Node::new(53, 0, 1), Node::new(21, 2, 0), Node::new(21, 1, 2), Node::new(21, 0, 0), Node::new(21, 1, 1), Node::new(52, 0, 1), Node::new(20, 2, 0), Node::new(20, 1, 2), Node::new(20, 0, 0), Node::new(20, 1, 1), Node::new(51, 0, 1), Node::new(19, 2, 0), Node::new(19, 1, 2), Node::new(19, 0, 0), Node::new(19, 1, 1), Node::new(50, 0, 1), Node::new(18, 2, 0), Node::new(18, 1, 2), Node::new(18, 0, 0), Node::new(18, 1, 1), Node::new(49, 0, 1), Node::new(17, 1, 2), Node::new(17, 2, 0), Node::new(17, 0, 0), Node::new(17, 1, 1), Node::new(48, 1, 0), Node::new(16, 2, 1), Node::new(16, 0, 2), Node::new(16, 0, 0), Node::new(16, 1, 1), Node::new(47, 0, 1), Node::new(15, 1, 2), Node::new(15, 2, 0), Node::new(15, 0, 0), Node::new(15, 1, 1), Node::new(46, 1, 0), Node::new(14, 2, 1), Node::new(14, 0, 2), Node::new(14, 0, 0), Node::new(14, 1, 1), Node::new(45, 0, 1), Node::new(13, 1, 2), Node::new(13, 2, 0), Node::new(13, 0, 0), Node::new(13, 1, 1), Node::new(44, 1, 0), Node::new(12, 2, 1), Node::new(12, 0, 2), Node::new(12, 0, 0), Node::new(12, 1, 1), Node::new(43, 0, 1), Node::new(11, 2, 0), Node::new(11, 1, 2), Node::new(11, 0, 0), Node::new(11, 1, 1), Node::new(42, 0, 1), Node::new(10, 1, 2), Node::new(10, 2, 0), Node::new(10, 0, 0), Node::new(10, 1, 1), Node::new(41, 1, 0), Node::new(9, 2, 1), Node::new(9, 0, 2), Node::new(9, 0, 0), Node::new(9, 1, 1), Node::new(40, 0, 1), Node::new(8, 2, 0), Node::new(8, 1, 2), Node::new(8, 0, 0), Node::new(8, 1, 1), Node::new(39, 0, 1), Node::new(7, 2, 0), Node::new(7, 1, 2), Node::new(7, 0, 0), Node::new(7, 1, 1), Node::new(38, 0, 1), Node::new(6, 2, 0), Node::new(6, 1, 2), Node::new(6, 0, 0), Node::new(6, 1, 1), Node::new(37, 0, 1), Node::new(5, 1, 2), Node::new(5, 2, 0), Node::new(5, 0, 0), Node::new(5, 1, 1), Node::new(36, 1, 0), Node::new(4, 2, 1), Node::new(4, 0, 2), Node::new(4, 0, 0), Node::new(4, 1, 1), Node::new(35, 0, 1), Node::new(3, 2, 0), Node::new(3, 1, 2), Node::new(3, 0, 0), Node::new(3, 1, 1), Node::new(34, 0, 1), Node::new(2, 1, 2), Node::new(2, 2, 0), Node::new(2, 0, 0), Node::new(2, 1, 1), Node::new(33, 1, 0), Node::new(1, 0, 2), Node::new(1, 2, 1), Node::new(1, 0, 0), Node::new(32, 1, 0), Node::new(0, 0, 1), ], [ 0, 2, 4, 7, 9, 12, 14, 17, 19, 22, 24, 27, 29, 32, 34, 37, 39, 42, 44, 47, 49, 52, 54, 57, 59, 62, 64, 67, 69, 72, 74, 77, 79, 82, 84, 87, 89, 92, 94, 97, 99, 102, 104, 107, 109, 112, 114, 117, 119, 121, ], 3, )), AnyBitCircuit::B25(BitCircuit::new( [ Node::new(57, 1, 0), Node::new(57, 0, 1), Node::new(25, 0, 1), Node::new(25, 1, 0), Node::new(25, 0, 0), Node::new(25, 1, 1), Node::new(56, 0, 1), Node::new(24, 1, 2), Node::new(24, 2, 0), Node::new(24, 0, 0), Node::new(24, 1, 1), Node::new(55, 1, 0), Node::new(23, 0, 2), Node::new(23, 2, 1), Node::new(23, 0, 0), Node::new(23, 1, 1), Node::new(54, 1, 0), Node::new(22, 0, 2), Node::new(22, 2, 1), Node::new(22, 0, 0), Node::new(22, 1, 1), Node::new(53, 1, 0), Node::new(21, 2, 1), Node::new(21, 0, 2), Node::new(21, 0, 0), Node::new(21, 1, 1), Node::new(52, 0, 1), Node::new(20, 1, 2), Node::new(20, 2, 0), Node::new(20, 0, 0), Node::new(20, 1, 1), Node::new(51, 1, 0), Node::new(19, 0, 2), Node::new(19, 2, 1), Node::new(19, 0, 0), Node::new(19, 1, 1), Node::new(50, 1, 0), Node::new(18, 2, 1), Node::new(18, 0, 2), Node::new(18, 0, 0), Node::new(18, 1, 1), Node::new(49, 0, 1), Node::new(17, 2, 0), Node::new(17, 1, 2), Node::new(17, 0, 0), Node::new(17, 1, 1), Node::new(48, 0, 1), Node::new(16, 1, 2), Node::new(16, 2, 0), Node::new(16, 0, 0), Node::new(16, 1, 1), Node::new(47, 1, 0), Node::new(15, 2, 1), Node::new(15, 0, 2), Node::new(15, 0, 0), Node::new(15, 1, 1), Node::new(46, 0, 1), Node::new(14, 2, 0), Node::new(14, 1, 2), Node::new(14, 0, 0), Node::new(14, 1, 1), Node::new(45, 0, 1), Node::new(13, 1, 2), Node::new(13, 2, 0), Node::new(13, 0, 0), Node::new(13, 1, 1), Node::new(44, 1, 0), Node::new(12, 2, 1), Node::new(12, 0, 2), Node::new(12, 0, 0), Node::new(12, 1, 1), Node::new(43, 0, 1), Node::new(11, 2, 0), Node::new(11, 1, 2), Node::new(11, 0, 0), Node::new(11, 1, 1), Node::new(42, 0, 1), Node::new(10, 2, 0), Node::new(10, 1, 2), Node::new(10, 0, 0), Node::new(10, 1, 1), Node::new(41, 0, 1), Node::new(9, 1, 2), Node::new(9, 2, 0), Node::new(9, 0, 0), Node::new(9, 1, 1), Node::new(40, 1, 0), Node::new(8, 2, 1), Node::new(8, 0, 2), Node::new(8, 0, 0), Node::new(8, 1, 1), Node::new(39, 0, 1), Node::new(7, 1, 2), Node::new(7, 2, 0), Node::new(7, 0, 0), Node::new(7, 1, 1), Node::new(38, 1, 0), Node::new(6, 2, 1), Node::new(6, 0, 2), Node::new(6, 0, 0), Node::new(6, 1, 1), Node::new(37, 0, 1), Node::new(5, 2, 0), Node::new(5, 1, 2), Node::new(5, 0, 0), Node::new(5, 1, 1), Node::new(36, 0, 1), Node::new(4, 1, 2), Node::new(4, 2, 0), Node::new(4, 0, 0), Node::new(4, 1, 1), Node::new(35, 1, 0), Node::new(3, 2, 1), Node::new(3, 0, 2), Node::new(3, 0, 0), Node::new(3, 1, 1), Node::new(34, 0, 1), Node::new(2, 1, 2), Node::new(2, 2, 0), Node::new(2, 0, 0), Node::new(2, 1, 1), Node::new(33, 1, 0), Node::new(1, 0, 2), Node::new(1, 2, 1), Node::new(1, 0, 0), Node::new(32, 1, 0), Node::new(0, 0, 1), ], [ 0, 2, 4, 7, 9, 12, 14, 17, 19, 22, 24, 27, 29, 32, 34, 37, 39, 42, 44, 47, 49, 52, 54, 57, 59, 62, 64, 67, 69, 72, 74, 77, 79, 82, 84, 87, 89, 92, 94, 97, 99, 102, 104, 107, 109, 112, 114, 117, 119, 122, 124, 126, ], 3, )), AnyBitCircuit::B26(BitCircuit::new( [ Node::new(58, 0, 1), Node::new(58, 1, 0), Node::new(26, 0, 1), Node::new(26, 1, 0), Node::new(26, 0, 0), Node::new(26, 1, 1), Node::new(57, 1, 0), Node::new(25, 0, 2), Node::new(25, 2, 1), Node::new(25, 0, 0), Node::new(25, 1, 1), Node::new(56, 1, 0), Node::new(24, 2, 1), Node::new(24, 0, 2), Node::new(24, 0, 0), Node::new(24, 1, 1), Node::new(55, 0, 1), Node::new(23, 1, 2), Node::new(23, 2, 0), Node::new(23, 0, 0), Node::new(23, 1, 1), Node::new(54, 1, 0), Node::new(22, 2, 1), Node::new(22, 0, 2), Node::new(22, 0, 0), Node::new(22, 1, 1), Node::new(53, 0, 1), Node::new(21, 2, 0), Node::new(21, 1, 2), Node::new(21, 0, 0), Node::new(21, 1, 1), Node::new(52, 0, 1), Node::new(20, 1, 2), Node::new(20, 2, 0), Node::new(20, 0, 0), Node::new(20, 1, 1), Node::new(51, 1, 0), Node::new(19, 0, 2), Node::new(19, 2, 1), Node::new(19, 0, 0), Node::new(19, 1, 1), Node::new(50, 1, 0), Node::new(18, 0, 2), Node::new(18, 2, 1), Node::new(18, 0, 0), Node::new(18, 1, 1), Node::new(49, 1, 0), Node::new(17, 2, 1), Node::new(17, 0, 2), Node::new(17, 0, 0), Node::new(17, 1, 1), Node::new(48, 0, 1), Node::new(16, 1, 2), Node::new(16, 2, 0), Node::new(16, 0, 0), Node::new(16, 1, 1), Node::new(47, 1, 0), Node::new(15, 2, 1), Node::new(15, 0, 2), Node::new(15, 0, 0), Node::new(15, 1, 1), Node::new(46, 0, 1), Node::new(14, 2, 0), Node::new(14, 1, 2), Node::new(14, 0, 0), Node::new(14, 1, 1), Node::new(45, 0, 1), Node::new(13, 2, 0), Node::new(13, 1, 2), Node::new(13, 0, 0), Node::new(13, 1, 1), Node::new(44, 0, 1), Node::new(12, 2, 0), Node::new(12, 1, 2), Node::new(12, 0, 0), Node::new(12, 1, 1), Node::new(43, 0, 1), Node::new(11, 1, 2), Node::new(11, 2, 0), Node::new(11, 0, 0), Node::new(11, 1, 1), Node::new(42, 1, 0), Node::new(10, 0, 2), Node::new(10, 2, 1), Node::new(10, 0, 0), Node::new(10, 1, 1), Node::new(41, 1, 0), Node::new(9, 0, 2), Node::new(9, 2, 1), Node::new(9, 0, 0), Node::new(9, 1, 1), Node::new(40, 1, 0), Node::new(8, 0, 2), Node::new(8, 2, 1), Node::new(8, 0, 0), Node::new(8, 1, 1), Node::new(39, 1, 0), Node::new(7, 0, 2), Node::new(7, 2, 1), Node::new(7, 0, 0), Node::new(7, 1, 1), Node::new(38, 1, 0), Node::new(6, 2, 1), Node::new(6, 0, 2), Node::new(6, 0, 0), Node::new(6, 1, 1), Node::new(37, 0, 1), Node::new(5, 1, 2), Node::new(5, 2, 0), Node::new(5, 0, 0), Node::new(5, 1, 1), Node::new(36, 1, 0), Node::new(4, 2, 1), Node::new(4, 0, 2), Node::new(4, 0, 0), Node::new(4, 1, 1), Node::new(35, 0, 1), Node::new(3, 1, 2), Node::new(3, 2, 0), Node::new(3, 0, 0), Node::new(3, 1, 1), Node::new(34, 1, 0), Node::new(2, 2, 1), Node::new(2, 0, 2), Node::new(2, 0, 0), Node::new(2, 1, 1), Node::new(33, 0, 1), Node::new(1, 1, 2), Node::new(1, 2, 0), Node::new(1, 0, 0), Node::new(32, 1, 0), Node::new(0, 0, 1), ], [ 0, 2, 4, 7, 9, 12, 14, 17, 19, 22, 24, 27, 29, 32, 34, 37, 39, 42, 44, 47, 49, 52, 54, 57, 59, 62, 64, 67, 69, 72, 74, 77, 79, 82, 84, 87, 89, 92, 94, 97, 99, 102, 104, 107, 109, 112, 114, 117, 119, 122, 124, 127, 129, 131, ], 3, )), AnyBitCircuit::B27(BitCircuit::new( [ Node::new(59, 1, 0), Node::new(59, 0, 1), Node::new(27, 0, 1), Node::new(27, 1, 0), Node::new(27, 0, 0), Node::new(27, 1, 1), Node::new(58, 0, 1), Node::new(26, 1, 2), Node::new(26, 2, 0), Node::new(26, 0, 0), Node::new(26, 1, 1), Node::new(57, 1, 0), Node::new(25, 0, 2), Node::new(25, 2, 1), Node::new(25, 0, 0), Node::new(25, 1, 1), Node::new(56, 1, 0), Node::new(24, 2, 1), Node::new(24, 0, 2), Node::new(24, 0, 0), Node::new(24, 1, 1), Node::new(55, 0, 1), Node::new(23, 2, 0), Node::new(23, 1, 2), Node::new(23, 0, 0), Node::new(23, 1, 1), Node::new(54, 0, 1), Node::new(22, 1, 2), Node::new(22, 2, 0), Node::new(22, 0, 0), Node::new(22, 1, 1), Node::new(53, 1, 0), Node::new(21, 0, 2), Node::new(21, 2, 1), Node::new(21, 0, 0), Node::new(21, 1, 1), Node::new(52, 1, 0), Node::new(20, 2, 1), Node::new(20, 0, 2), Node::new(20, 0, 0), Node::new(20, 1, 1), Node::new(51, 0, 1), Node::new(19, 2, 0), Node::new(19, 1, 2), Node::new(19, 0, 0), Node::new(19, 1, 1), Node::new(50, 0, 1), Node::new(18, 2, 0), Node::new(18, 1, 2), Node::new(18, 0, 0), Node::new(18, 1, 1), Node::new(49, 0, 1), Node::new(17, 1, 2), Node::new(17, 2, 0), Node::new(17, 0, 0), Node::new(17, 1, 1), Node::new(48, 1, 0), Node::new(16, 2, 1), Node::new(16, 0, 2), Node::new(16, 0, 0), Node::new(16, 1, 1), Node::new(47, 0, 1), Node::new(15, 1, 2), Node::new(15, 2, 0), Node::new(15, 0, 0), Node::new(15, 1, 1), Node::new(46, 1, 0), Node::new(14, 2, 1), Node::new(14, 0, 2), Node::new(14, 0, 0), Node::new(14, 1, 1), Node::new(45, 0, 1), Node::new(13, 1, 2), Node::new(13, 2, 0), Node::new(13, 0, 0), Node::new(13, 1, 1), Node::new(44, 1, 0), Node::new(12, 0, 2), Node::new(12, 2, 1), Node::new(12, 0, 0), Node::new(12, 1, 1), Node::new(43, 1, 0), Node::new(11, 0, 2), Node::new(11, 2, 1), Node::new(11, 0, 0), Node::new(11, 1, 1), Node::new(42, 1, 0), Node::new(10, 0, 2), Node::new(10, 2, 1), Node::new(10, 0, 0), Node::new(10, 1, 1), Node::new(41, 1, 0), Node::new(9, 2, 1), Node::new(9, 0, 2), Node::new(9, 0, 0), Node::new(9, 1, 1), Node::new(40, 0, 1), Node::new(8, 2, 0), Node::new(8, 1, 2), Node::new(8, 0, 0), Node::new(8, 1, 1), Node::new(39, 0, 1), Node::new(7, 1, 2), Node::new(7, 2, 0), Node::new(7, 0, 0), Node::new(7, 1, 1), Node::new(38, 1, 0), Node::new(6, 2, 1), Node::new(6, 0, 2), Node::new(6, 0, 0), Node::new(6, 1, 1), Node::new(37, 0, 1), Node::new(5, 1, 2), Node::new(5, 2, 0), Node::new(5, 0, 0), Node::new(5, 1, 1), Node::new(36, 1, 0), Node::new(4, 2, 1), Node::new(4, 0, 2), Node::new(4, 0, 0), Node::new(4, 1, 1), Node::new(35, 0, 1), Node::new(3, 1, 2), Node::new(3, 2, 0), Node::new(3, 0, 0), Node::new(3, 1, 1), Node::new(34, 1, 0), Node::new(2, 2, 1), Node::new(2, 0, 2), Node::new(2, 0, 0), Node::new(2, 1, 1), Node::new(33, 0, 1), Node::new(1, 1, 2), Node::new(1, 2, 0), Node::new(1, 0, 0), Node::new(32, 1, 0), Node::new(0, 0, 1), ], [ 0, 2, 4, 7, 9, 12, 14, 17, 19, 22, 24, 27, 29, 32, 34, 37, 39, 42, 44, 47, 49, 52, 54, 57, 59, 62, 64, 67, 69, 72, 74, 77, 79, 82, 84, 87, 89, 92, 94, 97, 99, 102, 104, 107, 109, 112, 114, 117, 119, 122, 124, 127, 129, 132, 134, 136, ], 3, )), AnyBitCircuit::B28(BitCircuit::new( [ Node::new(60, 1, 0), Node::new(60, 0, 1), Node::new(28, 0, 1), Node::new(28, 1, 0), Node::new(28, 0, 0), Node::new(28, 1, 1), Node::new(59, 0, 1), Node::new(27, 1, 2), Node::new(27, 2, 0), Node::new(27, 0, 0), Node::new(27, 1, 1), Node::new(58, 1, 0), Node::new(26, 2, 1), Node::new(26, 0, 2), Node::new(26, 0, 0), Node::new(26, 1, 1), Node::new(57, 0, 1), Node::new(25, 1, 2), Node::new(25, 2, 0), Node::new(25, 0, 0), Node::new(25, 1, 1), Node::new(56, 1, 0), Node::new(24, 2, 1), Node::new(24, 0, 2), Node::new(24, 0, 0), Node::new(24, 1, 1), Node::new(55, 0, 1), Node::new(23, 1, 2), Node::new(23, 2, 0), Node::new(23, 0, 0), Node::new(23, 1, 1), Node::new(54, 1, 0), Node::new(22, 2, 1), Node::new(22, 0, 2), Node::new(22, 0, 0), Node::new(22, 1, 1), Node::new(53, 0, 1), Node::new(21, 1, 2), Node::new(21, 2, 0), Node::new(21, 0, 0), Node::new(21, 1, 1), Node::new(52, 1, 0), Node::new(20, 2, 1), Node::new(20, 0, 2), Node::new(20, 0, 0), Node::new(20, 1, 1), Node::new(51, 0, 1), Node::new(19, 2, 0), Node::new(19, 1, 2), Node::new(19, 0, 0), Node::new(19, 1, 1), Node::new(50, 0, 1), Node::new(18, 2, 0), Node::new(18, 1, 2), Node::new(18, 0, 0), Node::new(18, 1, 1), Node::new(49, 0, 1), Node::new(17, 1, 2), Node::new(17, 2, 0), Node::new(17, 0, 0), Node::new(17, 1, 1), Node::new(48, 1, 0), Node::new(16, 2, 1), Node::new(16, 0, 2), Node::new(16, 0, 0), Node::new(16, 1, 1), Node::new(47, 0, 1), Node::new(15, 2, 0), Node::new(15, 1, 2), Node::new(15, 0, 0), Node::new(15, 1, 1), Node::new(46, 0, 1), Node::new(14, 2, 0), Node::new(14, 1, 2), Node::new(14, 0, 0), Node::new(14, 1, 1), Node::new(45, 0, 1), Node::new(13, 2, 0), Node::new(13, 1, 2), Node::new(13, 0, 0), Node::new(13, 1, 1), Node::new(44, 0, 1), Node::new(12, 1, 2), Node::new(12, 2, 0), Node::new(12, 0, 0), Node::new(12, 1, 1), Node::new(43, 1, 0), Node::new(11, 2, 1), Node::new(11, 0, 2), Node::new(11, 0, 0), Node::new(11, 1, 1), Node::new(42, 0, 1), Node::new(10, 2, 0), Node::new(10, 1, 2), Node::new(10, 0, 0), Node::new(10, 1, 1), Node::new(41, 0, 1), Node::new(9, 1, 2), Node::new(9, 2, 0), Node::new(9, 0, 0), Node::new(9, 1, 1), Node::new(40, 1, 0), Node::new(8, 2, 1), Node::new(8, 0, 2), Node::new(8, 0, 0), Node::new(8, 1, 1), Node::new(39, 0, 1), Node::new(7, 1, 2), Node::new(7, 2, 0), Node::new(7, 0, 0), Node::new(7, 1, 1), Node::new(38, 1, 0), Node::new(6, 0, 2), Node::new(6, 2, 1), Node::new(6, 0, 0), Node::new(6, 1, 1), Node::new(37, 1, 0), Node::new(5, 0, 2), Node::new(5, 2, 1), Node::new(5, 0, 0), Node::new(5, 1, 1), Node::new(36, 1, 0), Node::new(4, 2, 1), Node::new(4, 0, 2), Node::new(4, 0, 0), Node::new(4, 1, 1), Node::new(35, 0, 1), Node::new(3, 2, 0), Node::new(3, 1, 2), Node::new(3, 0, 0), Node::new(3, 1, 1), Node::new(34, 0, 1), Node::new(2, 2, 0), Node::new(2, 1, 2), Node::new(2, 0, 0), Node::new(2, 1, 1), Node::new(33, 0, 1), Node::new(1, 1, 2), Node::new(1, 2, 0), Node::new(1, 0, 0), Node::new(32, 1, 0), Node::new(0, 0, 1), ], [ 0, 2, 4, 7, 9, 12, 14, 17, 19, 22, 24, 27, 29, 32, 34, 37, 39, 42, 44, 47, 49, 52, 54, 57, 59, 62, 64, 67, 69, 72, 74, 77, 79, 82, 84, 87, 89, 92, 94, 97, 99, 102, 104, 107, 109, 112, 114, 117, 119, 122, 124, 127, 129, 132, 134, 137, 139, 141, ], 3, )), AnyBitCircuit::B29(BitCircuit::new( [ Node::new(61, 1, 0), Node::new(61, 0, 1), Node::new(29, 0, 1), Node::new(29, 1, 0), Node::new(29, 0, 0), Node::new(29, 1, 1), Node::new(60, 0, 1), Node::new(28, 2, 0), Node::new(28, 1, 2), Node::new(28, 0, 0), Node::new(28, 1, 1), Node::new(59, 0, 1), Node::new(27, 1, 2), Node::new(27, 2, 0), Node::new(27, 0, 0), Node::new(27, 1, 1), Node::new(58, 1, 0), Node::new(26, 0, 2), Node::new(26, 2, 1), Node::new(26, 0, 0), Node::new(26, 1, 1), Node::new(57, 1, 0), Node::new(25, 2, 1), Node::new(25, 0, 2), Node::new(25, 0, 0), Node::new(25, 1, 1), Node::new(56, 0, 1), Node::new(24, 1, 2), Node::new(24, 2, 0), Node::new(24, 0, 0), Node::new(24, 1, 1), Node::new(55, 1, 0), Node::new(23, 2, 1), Node::new(23, 0, 2), Node::new(23, 0, 0), Node::new(23, 1, 1), Node::new(54, 0, 1), Node::new(22, 1, 2), Node::new(22, 2, 0), Node::new(22, 0, 0), Node::new(22, 1, 1), Node::new(53, 1, 0), Node::new(21, 0, 2), Node::new(21, 2, 1), Node::new(21, 0, 0), Node::new(21, 1, 1), Node::new(52, 1, 0), Node::new(20, 0, 2), Node::new(20, 2, 1), Node::new(20, 0, 0), Node::new(20, 1, 1), Node::new(51, 1, 0), Node::new(19, 0, 2), Node::new(19, 2, 1), Node::new(19, 0, 0), Node::new(19, 1, 1), Node::new(50, 1, 0), Node::new(18, 0, 2), Node::new(18, 2, 1), Node::new(18, 0, 0), Node::new(18, 1, 1), Node::new(49, 1, 0), Node::new(17, 2, 1), Node::new(17, 0, 2), Node::new(17, 0, 0), Node::new(17, 1, 1), Node::new(48, 0, 1), Node::new(16, 1, 2), Node::new(16, 2, 0), Node::new(16, 0, 0), Node::new(16, 1, 1), Node::new(47, 1, 0), Node::new(15, 2, 1), Node::new(15, 0, 2), Node::new(15, 0, 0), Node::new(15, 1, 1), Node::new(46, 0, 1), Node::new(14, 2, 0), Node::new(14, 1, 2), Node::new(14, 0, 0), Node::new(14, 1, 1), Node::new(45, 0, 1), Node::new(13, 1, 2), Node::new(13, 2, 0), Node::new(13, 0, 0), Node::new(13, 1, 1), Node::new(44, 1, 0), Node::new(12, 2, 1), Node::new(12, 0, 2), Node::new(12, 0, 0), Node::new(12, 1, 1), Node::new(43, 0, 1), Node::new(11, 1, 2), Node::new(11, 2, 0), Node::new(11, 0, 0), Node::new(11, 1, 1), Node::new(42, 1, 0), Node::new(10, 0, 2), Node::new(10, 2, 1), Node::new(10, 0, 0), Node::new(10, 1, 1), Node::new(41, 1, 0), Node::new(9, 0, 2), Node::new(9, 2, 1), Node::new(9, 0, 0), Node::new(9, 1, 1), Node::new(40, 1, 0), Node::new(8, 2, 1), Node::new(8, 0, 2), Node::new(8, 0, 0), Node::new(8, 1, 1), Node::new(39, 0, 1), Node::new(7, 2, 0), Node::new(7, 1, 2), Node::new(7, 0, 0), Node::new(7, 1, 1), Node::new(38, 0, 1), Node::new(6, 1, 2), Node::new(6, 2, 0), Node::new(6, 0, 0), Node::new(6, 1, 1), Node::new(37, 1, 0), Node::new(5, 2, 1), Node::new(5, 0, 2), Node::new(5, 0, 0), Node::new(5, 1, 1), Node::new(36, 0, 1), Node::new(4, 1, 2), Node::new(4, 2, 0), Node::new(4, 0, 0), Node::new(4, 1, 1), Node::new(35, 1, 0), Node::new(3, 2, 1), Node::new(3, 0, 2), Node::new(3, 0, 0), Node::new(3, 1, 1), Node::new(34, 0, 1), Node::new(2, 2, 0), Node::new(2, 1, 2), Node::new(2, 0, 0), Node::new(2, 1, 1), Node::new(33, 0, 1), Node::new(1, 1, 2), Node::new(1, 2, 0), Node::new(1, 0, 0), Node::new(32, 1, 0), Node::new(0, 0, 1), ], [ 0, 2, 4, 7, 9, 12, 14, 17, 19, 22, 24, 27, 29, 32, 34, 37, 39, 42, 44, 47, 49, 52, 54, 57, 59, 62, 64, 67, 69, 72, 74, 77, 79, 82, 84, 87, 89, 92, 94, 97, 99, 102, 104, 107, 109, 112, 114, 117, 119, 122, 124, 127, 129, 132, 134, 137, 139, 142, 144, 146, ], 3, )), AnyBitCircuit::B30(BitCircuit::new( [ Node::new(62, 0, 1), Node::new(62, 1, 0), Node::new(30, 1, 0), Node::new(30, 0, 1), Node::new(30, 0, 0), Node::new(30, 1, 1), Node::new(61, 0, 1), Node::new(29, 1, 2), Node::new(29, 2, 0), Node::new(29, 0, 0), Node::new(29, 1, 1), Node::new(60, 1, 0), Node::new(28, 2, 1), Node::new(28, 0, 2), Node::new(28, 0, 0), Node::new(28, 1, 1), Node::new(59, 0, 1), Node::new(27, 1, 2), Node::new(27, 2, 0), Node::new(27, 0, 0), Node::new(27, 1, 1), Node::new(58, 1, 0), Node::new(26, 0, 2), Node::new(26, 2, 1), Node::new(26, 0, 0), Node::new(26, 1, 1), Node::new(57, 1, 0), Node::new(25, 0, 2), Node::new(25, 2, 1), Node::new(25, 0, 0), Node::new(25, 1, 1), Node::new(56, 1, 0), Node::new(24, 2, 1), Node::new(24, 0, 2), Node::new(24, 0, 0), Node::new(24, 1, 1), Node::new(55, 0, 1), Node::new(23, 2, 0), Node::new(23, 1, 2), Node::new(23, 0, 0), Node::new(23, 1, 1), Node::new(54, 0, 1), Node::new(22, 1, 2), Node::new(22, 2, 0), Node::new(22, 0, 0), Node::new(22, 1, 1), Node::new(53, 1, 0), Node::new(21, 2, 1), Node::new(21, 0, 2), Node::new(21, 0, 0), Node::new(21, 1, 1), Node::new(52, 0, 1), Node::new(20, 1, 2), Node::new(20, 2, 0), Node::new(20, 0, 0), Node::new(20, 1, 1), Node::new(51, 1, 0), Node::new(19, 2, 1), Node::new(19, 0, 2), Node::new(19, 0, 0), Node::new(19, 1, 1), Node::new(50, 0, 1), Node::new(18, 2, 0), Node::new(18, 1, 2), Node::new(18, 0, 0), Node::new(18, 1, 1), Node::new(49, 0, 1), Node::new(17, 2, 0), Node::new(17, 1, 2), Node::new(17, 0, 0), Node::new(17, 1, 1), Node::new(48, 0, 1), Node::new(16, 1, 2), Node::new(16, 2, 0), Node::new(16, 0, 0), Node::new(16, 1, 1), Node::new(47, 1, 0), Node::new(15, 0, 2), Node::new(15, 2, 1), Node::new(15, 0, 0), Node::new(15, 1, 1), Node::new(46, 1, 0), Node::new(14, 2, 1), Node::new(14, 0, 2), Node::new(14, 0, 0), Node::new(14, 1, 1), Node::new(45, 0, 1), Node::new(13, 2, 0), Node::new(13, 1, 2), Node::new(13, 0, 0), Node::new(13, 1, 1), Node::new(44, 0, 1), Node::new(12, 1, 2), Node::new(12, 2, 0), Node::new(12, 0, 0), Node::new(12, 1, 1), Node::new(43, 1, 0), Node::new(11, 0, 2), Node::new(11, 2, 1), Node::new(11, 0, 0), Node::new(11, 1, 1), Node::new(42, 1, 0), Node::new(10, 2, 1), Node::new(10, 0, 2), Node::new(10, 0, 0), Node::new(10, 1, 1), Node::new(41, 0, 1), Node::new(9, 2, 0), Node::new(9, 1, 2), Node::new(9, 0, 0), Node::new(9, 1, 1), Node::new(40, 0, 1), Node::new(8, 1, 2), Node::new(8, 2, 0), Node::new(8, 0, 0), Node::new(8, 1, 1), Node::new(39, 1, 0), Node::new(7, 0, 2), Node::new(7, 2, 1), Node::new(7, 0, 0), Node::new(7, 1, 1), Node::new(38, 1, 0), Node::new(6, 2, 1), Node::new(6, 0, 2), Node::new(6, 0, 0), Node::new(6, 1, 1), Node::new(37, 0, 1), Node::new(5, 1, 2), Node::new(5, 2, 0), Node::new(5, 0, 0), Node::new(5, 1, 1), Node::new(36, 1, 0), Node::new(4, 0, 2), Node::new(4, 2, 1), Node::new(4, 0, 0), Node::new(4, 1, 1), Node::new(35, 1, 0), Node::new(3, 2, 1), Node::new(3, 0, 2), Node::new(3, 0, 0), Node::new(3, 1, 1), Node::new(34, 0, 1), Node::new(2, 2, 0), Node::new(2, 1, 2), Node::new(2, 0, 0), Node::new(2, 1, 1), Node::new(33, 0, 1), Node::new(1, 1, 2), Node::new(1, 2, 0), Node::new(1, 0, 0), Node::new(32, 1, 0), Node::new(0, 0, 1), ], [ 0, 2, 4, 7, 9, 12, 14, 17, 19, 22, 24, 27, 29, 32, 34, 37, 39, 42, 44, 47, 49, 52, 54, 57, 59, 62, 64, 67, 69, 72, 74, 77, 79, 82, 84, 87, 89, 92, 94, 97, 99, 102, 104, 107, 109, 112, 114, 117, 119, 122, 124, 127, 129, 132, 134, 137, 139, 142, 144, 147, 149, 151, ], 3, )), AnyBitCircuit::B31(BitCircuit::new( [ Node::new(63, 0, 1), Node::new(63, 1, 0), Node::new(31, 1, 0), Node::new(31, 0, 1), Node::new(31, 0, 0), Node::new(31, 1, 1), Node::new(62, 0, 1), Node::new(30, 1, 2), Node::new(30, 2, 0), Node::new(30, 0, 0), Node::new(30, 1, 1), Node::new(61, 1, 0), Node::new(29, 0, 2), Node::new(29, 2, 1), Node::new(29, 0, 0), Node::new(29, 1, 1), Node::new(60, 1, 0), Node::new(28, 0, 2), Node::new(28, 2, 1), Node::new(28, 0, 0), Node::new(28, 1, 1), Node::new(59, 1, 0), Node::new(27, 0, 2), Node::new(27, 2, 1), Node::new(27, 0, 0), Node::new(27, 1, 1), Node::new(58, 1, 0), Node::new(26, 2, 1), Node::new(26, 0, 2), Node::new(26, 0, 0), Node::new(26, 1, 1), Node::new(57, 0, 1), Node::new(25, 2, 0), Node::new(25, 1, 2), Node::new(25, 0, 0), Node::new(25, 1, 1), Node::new(56, 0, 1), Node::new(24, 2, 0), Node::new(24, 1, 2), Node::new(24, 0, 0), Node::new(24, 1, 1), Node::new(55, 0, 1), Node::new(23, 1, 2), Node::new(23, 2, 0), Node::new(23, 0, 0), Node::new(23, 1, 1), Node::new(54, 1, 0), Node::new(22, 2, 1), Node::new(22, 0, 2), Node::new(22, 0, 0), Node::new(22, 1, 1), Node::new(53, 0, 1), Node::new(21, 1, 2), Node::new(21, 2, 0), Node::new(21, 0, 0), Node::new(21, 1, 1), Node::new(52, 1, 0), Node::new(20, 2, 1), Node::new(20, 0, 2), Node::new(20, 0, 0), Node::new(20, 1, 1), Node::new(51, 0, 1), Node::new(19, 1, 2), Node::new(19, 2, 0), Node::new(19, 0, 0), Node::new(19, 1, 1), Node::new(50, 1, 0), Node::new(18, 2, 1), Node::new(18, 0, 2), Node::new(18, 0, 0), Node::new(18, 1, 1), Node::new(49, 0, 1), Node::new(17, 1, 2), Node::new(17, 2, 0), Node::new(17, 0, 0), Node::new(17, 1, 1), Node::new(48, 1, 0), Node::new(16, 0, 2), Node::new(16, 2, 1), Node::new(16, 0, 0), Node::new(16, 1, 1), Node::new(47, 1, 0), Node::new(15, 0, 2), Node::new(15, 2, 1), Node::new(15, 0, 0), Node::new(15, 1, 1), Node::new(46, 1, 0), Node::new(14, 2, 1), Node::new(14, 0, 2), Node::new(14, 0, 0), Node::new(14, 1, 1), Node::new(45, 0, 1), Node::new(13, 2, 0), Node::new(13, 1, 2), Node::new(13, 0, 0), Node::new(13, 1, 1), Node::new(44, 0, 1), Node::new(12, 2, 0), Node::new(12, 1, 2), Node::new(12, 0, 0), Node::new(12, 1, 1), Node::new(43, 0, 1), Node::new(11, 1, 2), Node::new(11, 2, 0), Node::new(11, 0, 0), Node::new(11, 1, 1), Node::new(42, 1, 0), Node::new(10, 0, 2), Node::new(10, 2, 1), Node::new(10, 0, 0), Node::new(10, 1, 1), Node::new(41, 1, 0), Node::new(9, 0, 2), Node::new(9, 2, 1), Node::new(9, 0, 0), Node::new(9, 1, 1), Node::new(40, 1, 0), Node::new(8, 2, 1), Node::new(8, 0, 2), Node::new(8, 0, 0), Node::new(8, 1, 1), Node::new(39, 0, 1), Node::new(7, 2, 0), Node::new(7, 1, 2), Node::new(7, 0, 0), Node::new(7, 1, 1), Node::new(38, 0, 1), Node::new(6, 2, 0), Node::new(6, 1, 2), Node::new(6, 0, 0), Node::new(6, 1, 1), Node::new(37, 0, 1), Node::new(5, 2, 0), Node::new(5, 1, 2), Node::new(5, 0, 0), Node::new(5, 1, 1), Node::new(36, 0, 1), Node::new(4, 1, 2), Node::new(4, 2, 0), Node::new(4, 0, 0), Node::new(4, 1, 1), Node::new(35, 1, 0), Node::new(3, 0, 2), Node::new(3, 2, 1), Node::new(3, 0, 0), Node::new(3, 1, 1), Node::new(34, 1, 0), Node::new(2, 0, 2), Node::new(2, 2, 1), Node::new(2, 0, 0), Node::new(2, 1, 1), Node::new(33, 1, 0), Node::new(1, 0, 2), Node::new(1, 2, 1), Node::new(1, 0, 0), Node::new(32, 1, 0), Node::new(0, 0, 1), ], [ 0, 2, 4, 7, 9, 12, 14, 17, 19, 22, 24, 27, 29, 32, 34, 37, 39, 42, 44, 47, 49, 52, 54, 57, 59, 62, 64, 67, 69, 72, 74, 77, 79, 82, 84, 87, 89, 92, 94, 97, 99, 102, 104, 107, 109, 112, 114, 117, 119, 122, 124, 127, 129, 132, 134, 137, 139, 142, 144, 147, 149, 152, 154, 156, ], 3, )), ]);