docs: def split_image(self, split_len):
          """ Return a new ImageSegment which splits "split_len" bytes
          from the beginning of the data. Remaining bytes are kept in
          this segment object (and the start address is adjusted to match.) """
          result = copy.copy(self)
          result.data = self.data[:split_len]
          self.data = self.data[split_len:]
          self.addr += split_len
          self.file_offs = None
          result.file_offs = None
          return result