private List<IDGroup> getGroupsForOriginalLibs() {
		List<IDGroup> idGroups = new ArrayList<>();
		String[] originalNames = originalExtMgr.getExternalLibraryNames();
		SymbolTable originalSymbolTable = originalPgm.getSymbolTable();
		SymbolTable latestSymbolTable = latestPgm.getSymbolTable();
		SymbolTable mySymbolTable = myPgm.getSymbolTable();
		for (String originalName : originalNames) {
			Symbol originalLibrarySymbol = originalSymbolTable.getLibrarySymbol(originalName);
			long originalID = originalLibrarySymbol.getID();
			long resultID = getResultIDFromOriginalID(originalID);
			long latestID = (latestSymbolTable.getSymbol(originalID) != null) ? originalID : -1;
			long myID = (mySymbolTable.getSymbol(originalID) != null) ? originalID : -1;
			if (resultIDsInAGroup.contains(resultID)) {
				continue; // Already have this result as an IDGroup.
			}
			idGroups.add(new IDGroup(resultID, originalID, latestID, myID));
			if (resultID != -1) {
				resultIDsInAGroup.add(resultID);
			}
		}
		return idGroups;
	}
Gets symbol ID groups for each Library symbol that was in the Original program.
<br> Note: This method excludes any new Library symbols in Original whose matching Result ID
has already been placed in the resultIDsInAGroup set. Otherwise, each ID group that has a
Result ID will add it to the resultIDsInAGroup set.
@return the ID groups for Library symbols in the Original program.
Ghidra/Features/Base/src/main/java/ghidra/app/merge/listing/ExternalProgramMerger.java