def update(self, rs: RobotState):
     """Ticks the FSM. Make sure that current_state is not None first."""
     if self.current_state is not None:
         self.current_state.update(self, rs)
     else:
         from team_001_libraries.robot1 import utils
         utils.log("ERROR: Tried to update FSM with null state!", rs)
 def enter(self, fsm, rs):
     log("Entering defend hover", rs)
 def exit(self, fsm, rs):
     log("Exiting mid yeet", rs)
 def enter(self, fsm, rs):
     log("Entering mid yeet", rs)
 def exit(self, fsm, rs):
     log("Exiting attack circle", rs)
 def exit(self, fsm, rs):
     log("Exiting attack chase", rs)
 def exit(self, rsm, rs):
     log("Exiting attack kickoff", rs)
 def exit(self, fsm, rs):
     log("Exiting defend surge", rs)
 def exit(self, fsm, rs):
     log("Exiting mid push", rs)
 def enter(self, fsm, rs):
     log("Entering mid push", rs)
 def exit(self, fsm, rs):
     log("Exiting mid idle", rs)
 def enter(self, fsm, rs):
     log("Entering mid idle", rs)
 def exit(self, fsm, rs):
     log("Exiting attack yeet", rs)
 def enter(self, fsm, rs):
     log("Entering attack yeet", rs)
 def exit(self, fsm, rs):
     log("Exiting defend hover", rs)
 def enter(self, fsm, rs):
     log("Entering defend surge", rs)
 def enter(self, fsm, rs):
     log("Entering mid chase", rs)
 def enter(self, fsm, rs):
     log("Entering attack kickoff", rs)
 def exit(self, fsm, rs):
     log("Exiting mid chase", rs)
 def enter(self, fsm, rs):
     log("Entering attack chase", rs)
 def enter(self, fsm, rs):
     log("Entering mid circle", rs)
 def enter(self, fsm, rs):
     log("Entering attack circle", rs)
 def exit(self, fsm, rs):
     log("Exiting mid circle", rs)