code: def parse_range_header(self, header, resource_size):
          
          if not header or '=' not in header:
              return None
  
          ranges = []
          units, range_ = header.split('=', 1)
          units = units.strip().lower()
  
          if units != 'bytes':
              return None
  
          for val in range_.split(','):
              val = val.strip()
              if '-' not in val:
                  return None
  
              if val.startswith('-'):
                  # suffix-byte-range-spec: this form specifies the last N bytes
                  # of an entity-body.
                  start = resource_size + int(val)
                  if start < 0:
                      start = 0
                  stop = resource_size
              else:
                  # byte-range-spec: first-byte-pos "-" [last-byte-pos].
                  start, stop = val.split('-', 1)
                  start = int(start)
                  # The +1 is here since we want the stopping point to be
                  # exclusive, whereas in the HTTP spec, the last-byte-pos
                  # is inclusive.
                  stop = int(stop) + 1 if stop else resource_size
                  if start >= stop:
                      return None
  
              ranges.append((start, stop))
  
          return ranges
docs: Parses a range header into a list of two-tuples (start, stop) where
          `start` is the starting byte of the range (inclusive) and
          `stop` is the ending byte position of the range (exclusive).
  
          Args:
              header (str): The HTTP_RANGE request header.
              resource_size (int): The size of the file in bytes.
  
          Returns:
              None if the value of the header is not syntatically valid.