private long getResultIDFromMyID(long mySymbolID) throws NoValueException {
		try {
			return myResolvedSymbols.get(mySymbolID);
		}
		catch (NoValueException e) {
			Symbol originalSymbol = originalPgm.getSymbolTable().getSymbol(mySymbolID);
			if (originalSymbol == null) {
				throw e;
			}
			if (resultPgm.getSymbolTable().getSymbol(mySymbolID) != null) {
				return mySymbolID;
			}
			Symbol mySymbol = myPgm.getSymbolTable().getSymbol(mySymbolID);
			if (mySymbol != null) {
				Symbol resultSymbol = SimpleDiffUtility.getSymbol(mySymbol, resultPgm);
				if (resultSymbol != null) {
					return resultSymbol.getID();
				}
			}
			throw e;
		}
	}
Actually merges (sets or removes) the indicated external program name in
program1 based on the same external program name in program2
@param program1 the program to merge into.
@param program2 the program to get the merge information from.
@param idGroup the symbol ID group for the external program (Library) to merge.
@param monitor task monitor for feedback or canceling the merge.s
Ghidra/Features/Base/src/main/java/ghidra/app/merge/listing/ExternalProgramMerger.java