'Constructor.
:param project: The angr Project instance
:param cfg: Control flow graph. Only used when path prioritizer is used.
:param detect_loops: Only used when path prioritizer is used.'

def __init__(self, project, cfg=None, detect_loops=False):

    self._project = project
    self._cfg = None
    self._target = None
    self._run_statement_whitelist = defaultdict(list)
    self._exit_taken = defaultdict(list)
    self._addr_to_run = {}
    self._addr_to_last_stmt_id = {}
    self._loops = []
    self._path_merge_points = []
    self._path_prioritizer = None
    if (cfg is not None):
        self._cfg = cfg
    if (self._cfg is not None):
        for run in self._cfg.nodes():
            self._addr_to_run[self.get_addr(run)] = run
