def combining_setup(self):
(slot_type, (corner_slot, edge_slot), (corner, edge)) = self.get_slot()<EOL>cycle = ["<STR_LIT>", "<STR_LIT>", "<STR_LIT>", "<STR_LIT>"]<EOL>if slot_type == "<STR_LIT>":<EOL><INDENT>return ("<STR_LIT>", Formula(Step("<STR_LIT:y>") * cycle.index(self.pair) or []))<EOL><DEDENT>elif slot_type == "<STR_LIT>":<EOL><INDENT>return (cycle[-(cycle.index(edge_slot) - cycle.index(self.pair))], <EOL>Formula(Step("<STR_LIT:y>") * cycle.index(edge_slot) or [])) <EOL><DEDENT>elif slot_type in ("<STR_LIT>", "<STR_LIT>"):<EOL><INDENT>return (cycle[-(cycle.index(corner_slot) - cycle.index(self.pair))], <EOL>Formula(Step("<STR_LIT:y>") * cycle.index(corner_slot) or [])) <EOL><DEDENT>elif slot_type == "<STR_LIT>":<EOL><INDENT>if corner_slot != self.pair: corner_slot, edge_slot = edge_slot, corner_slot<EOL>result = Formula(Step("<STR_LIT:y>") * cycle.index(edge_slot) or [])<EOL>result += Formula("<STR_LIT>")<EOL>result += Formula(Step("<STR_LIT>") * cycle.index(edge_slot) or [])<EOL>result += Formula(Step("<STR_LIT:y>") * cycle.index(corner_slot) or [])<EOL>if result[-<NUM_LIT:1>].face == "<STR_LIT:y>" and result[-<NUM_LIT:2>].face == "<STR_LIT:y>":<EOL><INDENT>result[-<NUM_LIT:2>] += result[-<NUM_LIT:1>]<EOL>del result[-<NUM_LIT:1>]<EOL><DEDENT>return (cycle[-(cycle.index(corner_slot) - cycle.index(self.pair))], result)<EOL><DEDENT>else:<EOL><INDENT>return (cycle[-cycle.index(self.pair)], Formula())<EOL><DEDENT>
Setup for some special F2L cases.