def _handle_system_status_event(self, event: SystemStatusEvent) -> None:
if event.type == SystemStatusEvent.EventType.UNSEALED:<EOL><INDENT>return self._update_zone(event.zone, True)<EOL><DEDENT>elif event.type == SystemStatusEvent.EventType.SEALED:<EOL><INDENT>return self._update_zone(event.zone, False)<EOL><DEDENT>elif event.type == SystemStatusEvent.EventType.ALARM:<EOL><INDENT>return self._update_arming_state(ArmingState.TRIGGERED)<EOL><DEDENT>elif event.type == SystemStatusEvent.EventType.ALARM_RESTORE:<EOL><INDENT>if self.arming_state != ArmingState.DISARMED:<EOL><INDENT>return self._update_arming_state(ArmingState.ARMED)<EOL><DEDENT><DEDENT>elif event.type == SystemStatusEvent.EventType.ENTRY_DELAY_START:<EOL><INDENT>return self._update_arming_state(ArmingState.ENTRY_DELAY)<EOL><DEDENT>elif event.type == SystemStatusEvent.EventType.ENTRY_DELAY_END:<EOL><INDENT>pass<EOL><DEDENT>elif event.type == SystemStatusEvent.EventType.EXIT_DELAY_START:<EOL><INDENT>return self._update_arming_state(ArmingState.EXIT_DELAY)<EOL><DEDENT>elif event.type == SystemStatusEvent.EventType.EXIT_DELAY_END:<EOL><INDENT>if self.arming_state == ArmingState.EXIT_DELAY:<EOL><INDENT>return self._update_arming_state(ArmingState.ARMED)<EOL><DEDENT><DEDENT>elif event.type in Alarm.ARM_EVENTS:<EOL><INDENT>return self._update_arming_state(ArmingState.ARMING)<EOL><DEDENT>elif event.type == SystemStatusEvent.EventType.DISARMED:<EOL><INDENT>return self._update_arming_state(ArmingState.DISARMED)<EOL><DEDENT>elif event.type == SystemStatusEvent.EventType.ARMING_DELAYED:<EOL><INDENT>pass<EOL><DEDENT>
DISARMED -> ARMED_AWAY -> EXIT_DELAY_START -> EXIT_DELAY_END
 (trip): -> ALARM -> OUTPUT_ON -> ALARM_RESTORE
    (disarm): -> DISARMED -> OUTPUT_OFF
 (disarm): -> DISARMED
 (disarm before EXIT_DELAY_END): -> DISARMED -> EXIT_DELAY_END

TODO(NW): Check ALARM_RESTORE state transition to move back into ARMED_AWAY state