int initialize() throws IOException, PdbException, CancelledException {
		if (pdb.getMsf() == null) {
			// Should only be null dummy PDBs used for testing.
			throw new PdbException("Unexpected null MSF.");
		}
		PdbByteReader reader = pdb.getReaderForStreamNumber(streamNumber);

		deserializeHeader(reader);

		// Commented out, but this is currently where we might put this method.  See the note
		//  placed within the method (deserializeHashStreams()) for more information about why
		//  we have this commented out.
		//hash.deserializeHashStreams(pdb.getMonitor());

		// TODO: consider other mechanisms than offset/length values for use by an iterator.
		//  Need to be able to access by record number, so might not have much choice.
		createOffLenRecords(reader);

		return versionNumber;
	}
Deserializes and initializes {@link TypeProgramInterface} basic information so that later
queries can be made
@return version number of the {@link TypeProgramInterface}
@throws IOException on file seek or read, invalid parameters, bad file configuration, or
 inability to read required bytes
@throws PdbException upon not enough data left to parse
@throws CancelledException upon user cancellation
Ghidra/Features/PDB/src/main/java/ghidra/app/util/bin/format/pdb2/pdbreader/TypeProgramInterface.java