public void mergeEquates(AddressSetView originAddressSet, TaskMonitor monitor)
			throws CancelledException, UnsupportedOperationException {

		if (!originToResultTranslator.isOneForOneTranslator()) {
			String message = originToResultTranslator.getClass().getName() +
				" is not a one for one translator and can't merge equates.";
			throw new UnsupportedOperationException(message);
		}
		monitor.setMessage("Applying Equates...");
		if (originAddressSet.isEmpty()) {
			return;
		}

		AddressIterator addresses = originAddressSet.getAddresses(true);
		// Get each equate out of the equate address iterator and set it in the merged program.
		for (long count = 0; addresses.hasNext() && !monitor.isCancelled(); count++) {
			monitor.checkCancelled();
			Address address = addresses.next();
			if (count == PROGRESS_COUNTER_GRANULARITY) {
				monitor.setMessage("Applying Equates...   " + address.toString(true, false));
				count = 0;
			}
			mergeEquates(address);
		}
	}
<CODE>mergeEquates</CODE> merges the equate differences in the specified
address set.

@param originAddressSet the addresses to be merged.
The addresses in this set should be derived from the origin program.
@param monitor the task monitor for notifying the user of this merge's
progress.

@throws CancelledException if user cancels via the monitor.
@throws UnsupportedOperationException if the ProgramMerge translators are not
"one for one translators".
Ghidra/Features/Base/src/main/java/ghidra/program/util/ProgramMerge.java