code: def _ReadRecordAttributeValueOffset(
        self, file_object, file_offset, number_of_attribute_values):
      
      offsets_data_size = number_of_attribute_values * 4
  
      offsets_data = file_object.read(offsets_data_size)
  
      context = dtfabric_data_maps.DataTypeMapContext(values={
          'number_of_attribute_values': number_of_attribute_values})
  
      data_type_map = self._GetDataTypeMap(
          'keychain_record_attribute_value_offsets')
  
      try:
        attribute_value_offsets = self._ReadStructureFromByteStream(
            offsets_data, file_offset, data_type_map, context=context)
      except (ValueError, errors.ParseError) as exception:
        raise errors.ParseError((
            'Unable to map record attribute value offsets data at offset: '
            '0x{0:08x} with error: {1!s}').format(file_offset, exception))
  
      return attribute_value_offsets
docs: Reads the record attribute value offsets.
  
      Args:
        file_object (file): file-like object.
        file_offset (int): offset of the record attribute values offsets relative
            to the start of the file.
        number_of_attribute_values (int): number of attribute values.
  
      Returns:
        keychain_record_attribute_value_offsets: record attribute value offsets.
  
      Raises:
        ParseError: if the record attribute value offsets cannot be read.