private List<String> getLibraryNames(ByteProvider provider, Program program) {
		List<String> libraryNames = new ArrayList<>();
		ExternalManager extMgr = program.getExternalManager();
		String[] externalNames = extMgr.getExternalLibraryNames();
		Comparator<String> comparator = getLibraryNameComparator();
		Arrays.sort(externalNames, comparator);
		for (String name : externalNames) {
			if (comparator.compare(name, provider.getName()) == 0 ||
				comparator.compare(name, program.getName()) == 0 ||
				Library.UNKNOWN.equals(name)) {
				// skip self-references and UNKNOWN library...
				continue;
			}
			libraryNames.add(name);
		}
		return libraryNames;
	}
Gets a {@link List} of library names that the given {@link Program} imports from

@param provider The {@link ByteProvider} to get the library names from
@param program The {@link Program} to get the library names from
@return A {@link List} of library names that the given {@link Program} imports from
Ghidra/Features/Base/src/main/java/ghidra/app/util/opinion/AbstractLibrarySupportLoader.java