code: def first_run_1d(arr, window):
      
      v, rl, pos = rle_1d(arr)
      ind = np.where(v * rl >= window, pos, np.inf).min()
  
      if np.isinf(ind):
          return np.nan
      return ind
docs: Return the index of the first item of a run of at least a given length.
  
      Parameters
      ----------
      ----------
      arr : bool array
        Input array
      window : int
        Minimum duration of consecutive run to accumulate values.
  
      Returns
      -------
      int
        Index of first item in first valid run. Returns np.nan if there are no valid run.