private List<IDGroup> getGroupsForMyNewLibs() {
		List<IDGroup> idGroups = new ArrayList<>();
		String[] myNames = myExtMgr.getExternalLibraryNames();
		SymbolTable originalSymbolTable = originalPgm.getSymbolTable();
		SymbolTable mySymbolTable = myPgm.getSymbolTable();
		for (String myName : myNames) {
			Symbol myLibrarySymbol = mySymbolTable.getLibrarySymbol(myName);
			long myID = myLibrarySymbol.getID();
			if (originalSymbolTable.getSymbol(myID) != null) {
				continue; // getGroupsForOriginalLibs already got this.
			}
			long resultID;
			try {
				resultID = getResultIDFromMyID(myID);
			}
			catch (NoValueException e) {
				resultID = myID;
			}

			// Get original and latest for this My's matching result ID.
			long originalID = getOriginalIDForResultID(resultID);
			long latestID = getLatestIDForResultID(resultID);
			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 is new in the My program
(symbol wasn't 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 new Library symbols in the My program.
Ghidra/Features/Base/src/main/java/ghidra/app/merge/listing/ExternalProgramMerger.java