public static ElfNote read(BinaryReader reader) throws IOException {
		int nameLen = reader.readNextUnsignedIntExact();
		int descLen = reader.readNextUnsignedIntExact();
		int vendorType = reader.readNextInt();
		if (nameLen > MAX_SANE_NAME_LEN || descLen > MAX_SANE_DESC_LEN) {
			throw new IOException("Invalid Note lengths: %d, %d".formatted(nameLen, descLen));
		}
		String name = reader.readNextAsciiString(nameLen);
		nameLen += reader.align(4);

		byte[] desc = reader.readNextByteArray(descLen);

		return new ElfNote(nameLen, name, vendorType, desc);
	}
Reads a generic {@link ElfNote} instance from the supplied BinaryReader.

@param reader BinaryReader to read from
@return new {@link ElfNote} instance, never null
@throws IOException if bad data or error reading
Ghidra/Features/Base/src/main/java/ghidra/app/util/bin/format/elf/info/ElfNote.java