public void mergeConflicts(final int chosenConflictOption,
			final ConflictInfoPanel listingConflictInfoPanel, final TaskMonitor monitor)
			throws CancelledException {

		// Create our own conflict info panel for the top of the conflict panel.
		conflictInfoPanel = new ExternalConflictInfoPanel();
		listingMergePanel.setTopComponent(conflictInfoPanel);

		monitor.setMessage("Resolving Externals conflicts");
		totalConflicts = removeConflictIDs.size() + externalDetailConflicts.size() +
			(int) externalDataTypeConflicts.getNumAddresses() +
			(int) externalFunctionVersusDataTypeConflicts.getNumAddresses() +
			removeFunctionConflictIDs.size() + (int) funcSet.getNumAddresses() +
			externalAddConflicts.size();
		monitor.initialize(totalConflicts);
		conflictIndex = 1;
		conflictInfoPanel.setConflictInfo(conflictIndex, totalConflicts);

		processExternalRemoveConflicts(chosenConflictOption, monitor);
		processExternalDetailConflicts(chosenConflictOption, monitor);
		processExternalDataTypeConflicts(chosenConflictOption, monitor);
		processExternalFunctionVsDataTypeConflicts(chosenConflictOption, monitor);
		processExternalFunctionRemoveConflicts(chosenConflictOption, monitor);
		processExternalFunctionDetailConflicts(chosenConflictOption, monitor);
		processExternalAddConflicts(chosenConflictOption, monitor);

		listingMergePanel.setTopComponent(listingConflictInfoPanel); // Restore the listing's own top component.

		// Remove any conflict panel from the screen.
		mergeManager.showComponent(null, null, null);

		infoBuf.append(getRenamedConflictsInfo());

		showResolveErrors(ERROR_TITLE);
		showResolveInfo(INFO_TITLE);

		// Write the resolve info back to the merger so Symbol and Reference mergers can use it.
		setResolveInformation();

		clearResolveInfo();
		cleanupConflictPanels();
		monitor.setMessage("Done resolving Externals conflicts.");
	}
Performs a manual merge of external program conflicts.
@param chosenConflictOption ASK_USER means interactively resolve conflicts.
JUnit testing also allows setting this to LATEST, MY, or ORIGINAL to force
selection of a particular version change.
@param monitor task monitor for informing the user of progress.
@throws CancelledException if the user cancels the merge.
Ghidra/Features/Base/src/main/java/ghidra/app/merge/listing/ExternalFunctionMerger.java