private void handleRemoveConflict(ListingMergePanel listingPanel, Address addr,
			int chosenConflictOption) throws CancelledException {
		currentConflictType = SymbolConflictType.REMOVE_SYMBOL_CONFLICT;
		boolean askUser = (removeSymbolChoice == ASK_USER) && (chosenConflictOption == ASK_USER);
		// At address get the symbol name ArrayList for each remove conflict.
		if (removeConflicts.contains(addr)) {
			long[] removeIDs = removes.get(addr).toLongArray();
			for (long removeID : removeIDs) {
				if (isUnresolvableChange(removeID)) {
					continue;
				}

				Symbol originalSym = originalSymTab.getSymbol(removeID);
				currentAddress = addr;
				currentSymbol = originalSym;
				currentSymbolName = originalSym.getName();
				currentNamespace = originalSym.getParentNamespace();
				currentBackgroundSet = new AddressSet(addr, addr);
				if (askUser && mergeManager != null) {
					showConflictPanel(listingPanel, REMOVE_CONFLICT, removeSymbolChoice,
						"Remove Symbol");
				}
				else {
					try {
						int optionToUse = (removeSymbolChoice == ASK_USER) ? chosenConflictOption
								: removeSymbolChoice;
						resolveRemoveVsChange(removeID, optionToUse);
					}
					catch (Exception e) {
						String msg =
							"Failed to resolve symbol '" + originalSym.getName(true) + "'.";
						Msg.showError(this, null, "Remove vs Change Symbol Error", msg, e);
					}
				}
			}
		}
	}
Determine the type of changes to the symbols in the LATEST and MY (CheckedOut) program.
Changes can be symbol removed, added, changed, renamed, and set to primary.
@param monitor task monitor for displaying progress to the user
@throws CancelledException if the user cancels the merge.
Ghidra/Features/Base/src/main/java/ghidra/app/merge/listing/SymbolMerger.java