static public SequenceSearchState buildStateMachine(
			ArrayList<? extends DittedBitSequence> patterns) {
		SequenceSearchState root = new SequenceSearchState(null);
		for (int i = 0; i < patterns.size(); ++i) {
			DittedBitSequence pat = patterns.get(i);
			pat.setIndex(i);
			root.addSequence(pat, 0);
		}
		root.sortSequences();
		ArrayList<SequenceSearchState> statelevel = new ArrayList<SequenceSearchState>();
		statelevel.add(root);
		int level = 0;
		do {
			statelevel = buildTransitionLevel(statelevel, level);
			level += 1;
		}
		while (!statelevel.isEmpty());
		return root;
	}
Build a search state machine from a list of DittedBitSequences
@param patterns bit sequence patterns
@return search state the will match the given sequences
Ghidra/Features/Base/src/main/java/ghidra/util/bytesearch/SequenceSearchState.java