<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def _CheckForRestartAndMaybePurge(self, event):
 """Check and discard expired events using SessionLog.START. Check for a SessionLog.START event and purge all previously seen events with larger steps, because they are out of date. Because of supervisor threading, it is possible that this logic will cause the first few event messages to be discarded since supervisor threading does not guarantee that the START message is deterministically written first. This method is preferred over _CheckForOutOfOrderStepAndMaybePurge which can inadvertently discard events due to supervisor threading. Args: event: The event to use as reference. If the event is a START event, all previously seen events with a greater event.step will be purged. """

    if event.HasField(
        'session_log') and event.session_log.status == event_pb2.SessionLog.START:
      self._Purge(event, by_tags=False)