public final static OatHeader newOatHeader(BinaryReader reader)
			throws IOException, UnsupportedOatVersionException {
		String magic = new String(reader.readByteArray(0, OatConstants.MAGIC.length()));
		String version = reader.readAsciiString(4, 4);
		if (magic.equals(OatConstants.MAGIC)) {
			if (OatConstants.isSupportedVersion(version)) {
				switch (version) {
					case OatConstants.OAT_VERSION_007:
						return new OatHeader_007(reader);
					case OatConstants.OAT_VERSION_039:
						return new OatHeader_039(reader);
					case OatConstants.OAT_VERSION_045:
						return new OatHeader_045(reader);
					case OatConstants.OAT_VERSION_051:
						return new OatHeader_051(reader);
					case OatConstants.OAT_VERSION_064:
						return new OatHeader_064(reader);
					case OatConstants.OAT_VERSION_079:
						return new OatHeader_079(reader);
					case OatConstants.OAT_VERSION_088:
						return new OatHeader_088(reader);
					case OatConstants.OAT_VERSION_124:
						return new OatHeader_124(reader);
					case OatConstants.OAT_VERSION_126:
						return new OatHeader_126(reader);
					case OatConstants.OAT_VERSION_131:
						return new OatHeader_131(reader);
					case OatConstants.OAT_VERSION_138:
						return new OatHeader_138(reader);
					case OatConstants.OAT_VERSION_170:
						return new OatHeader_170(reader);
					case OatConstants.OAT_VERSION_183:
						return new OatHeader_183(reader);
					case OatConstants.OAT_VERSION_195:
						return new OatHeader_195(reader);
					case OatConstants.OAT_VERSION_199:
						return new OatHeader_199(reader);
					case OatConstants.OAT_VERSION_220:
						return new OatHeader_220(reader);
					case OatConstants.OAT_VERSION_223:
						return new OatHeader_223(reader);
					case OatConstants.OAT_VERSION_225:
						return new OatHeader_225(reader);
				}
			}
		}
		throw new UnsupportedOatVersionException(magic, version);
	}
Returns an OatHeader of the correct version.
@param reader the binary reader for the OAT header
@return the new OAT header
@throws IOException if OAT header cannot be created from reader
@throws UnsupportedOatVersionException when the provided version is invalid or not yet implemented.
Ghidra/Features/FileFormats/src/main/java/ghidra/file/formats/android/oat/OatHeaderFactory.java