private Connection createLocalConnection() throws SQLException, IOException {
		Properties properties = new Properties();
		properties.setProperty("sslmode", "require");
		properties.setProperty("sslfactory", "ghidra.net.ApplicationSSLSocketFactory");
		properties.setProperty("user", connectingUserName);
		StringBuilder buffer = new StringBuilder();
		buffer.append("jdbc:postgresql://localhost");
		if ((port != -1) && (port != 5432)) {	// Non-default port
			buffer.append(':');
			buffer.append(port);
		}
		buffer.append("/template1");
		String connstring = buffer.toString();
		if (adminPasswordData == null) {
			try {
				Connection pdb = DriverManager.getConnection(connstring, properties);
				return pdb;
			}
			catch (SQLException e) {
				if (!e.getMessage().contains("password-based authentication") &&
					!e.getMessage().contains("SCRAM-based authentication")) {
					throw e;
				}
			}
			adminPasswordData = requestPassword("User " + connectingUserName + " password:");
			if (adminPasswordData == null) {
				throw new IOException("Unable to obtain password");
			}
		}
		String passString = new String(adminPasswordData);
		properties.setProperty("password", passString);
		return DriverManager.getConnection(connstring, properties);			// Try again providing driver a password		
	}
Create a local connection to a postgres server. A full SSL connection is created using
Ghidra's infrastructure.  If the initial connection fails because password authentication
was requested, collect the administrative password from the user, and try the connection again
@return the established connection object.  Respect any command-line "port= .." option.
@throws SQLException if the db connection cannot be established
@throws IOException if the user password cannot be retrieved
Ghidra/Features/BSim/src/main/java/ghidra/features/bsim/query/BSimControlLaunchable.java