code: def simulation_manager(self, thing=None, **kwargs):
          
          if thing is None:
              thing = [ self.entry_state() ]
          elif isinstance(thing, (list, tuple)):
              if any(not isinstance(val, SimState) for val in thing):
                  raise AngrError("Bad type to initialize SimulationManager")
          elif isinstance(thing, SimState):
              thing = [ thing ]
          else:
              raise AngrError("BadType to initialze SimulationManager: %s" % repr(thing))
  
          return SimulationManager(self.project, active_states=thing, **kwargs)
docs: Constructs a new simulation manager.
  
          :param thing:           Optional - What to put in the new SimulationManager's active stash (either a SimState or a list of SimStates).
          :param kwargs:          Any additional keyword arguments will be passed to the SimulationManager constructor
          :returns:               The new SimulationManager
          :rtype:                 angr.sim_manager.SimulationManager
  
          Many different types can be passed to this method:
  
          * If nothing is passed in, the SimulationManager is seeded with a state initialized for the program
            entry point, i.e. :meth:`entry_state()`.
          * If a :class:`SimState` is passed in, the SimulationManager is seeded with that state.
          * If a list is passed in, the list must contain only SimStates and the whole list will be used to seed the SimulationManager.