docs: def _clear_zones(self, zone):
          """
          Clear all expired zones from our status list.
  
          :param zone: current zone being processed
          :type zone: int
          """
          cleared_zones = []
          found_last_faulted = found_current = at_end = False
  
          # First pass: Find our start spot.
          it = iter(self._zones_faulted)
          try:
              while not found_last_faulted:
                  z = next(it)
  
                  if z == self._last_zone_fault:
                      found_last_faulted = True
                      break
  
          except StopIteration:
              at_end = True
  
          # Continue until we find our end point and add zones in
          # between to our clear list.
          try:
              while not at_end and not found_current:
                  z = next(it)
  
                  if z == zone:
                      found_current = True
                      break
                  else:
                      cleared_zones += [z]
  
          except StopIteration:
              pass
  
          # Second pass: roll through the list again if we didn't find
          # our end point and remove everything until we do.
          if not found_current:
              it = iter(self._zones_faulted)
  
              try:
                  while not found_current:
                      z = next(it)
  
                      if z == zone:
                          found_current = True
                          break
                      else:
                          cleared_zones += [z]
  
              except StopIteration:
                  pass
  
          # Actually remove the zones and trigger the restores.
          for z in cleared_zones:
              self._update_zone(z, Zone.CLEAR)