docs: def _read1bit(d, l, offset=False):
          """
          Read data from a 1 bit file where each byte encodes 8 bases.
          
          Parameters
          ----------
          d : array
              byte array
          l : tuple
              chr, start, end
          
          Returns
          -------
          list
              list of 1s and 0s of length equal to the number of bases in
              the location.
          """
  
          s = l.start - 1
  
          length = l.end - l.start + 1
  
          ret = [0] * length
          
          if offset:
              bi = s // 8
          else:
              bi = 0
              
          for i in range(0, length):
              block = s % 8
              
              if block == 0:
                  v = (d[bi] >> 7)
              elif block == 1:
                  v = (d[bi] >> 6)
              elif block == 2:
                  v = (d[bi] >> 5)
              elif block == 3:
                  v = (d[bi] >> 4)
              elif block == 4:
                  v = (d[bi] >> 3)
              elif block == 5:
                  v = (d[bi] >> 2)
              elif block == 6:
                  v = (d[bi] >> 1)
              else:
                  v = d[bi]
                  bi += 1
              
              # Only care about the lowest bit
              v &= 1
              
              ret[i] = v
              
              s += 1
      
          return ret