// Path: src/main/java/com/mcbans/utils/TooLargeException.java
// public class TooLargeException extends Exception{
// }


import com.mcbans.utils.TooLargeException;
import java.io.IOException;
import java.util.*;
import java.util.concurrent.LinkedBlockingDeque;
package com.mcbans.client;



public class ConnectionPool {
  private static int connections = 0;
  private static Queue<Client> clients = new LinkedBlockingDeque<>();
  private static Map<Client, Timer> keepAliveTimer = new HashMap<>();
// Path: src/main/java/com/mcbans/utils/TooLargeException.java
// public class TooLargeException extends Exception{
// }


// Path: src/main/java/com/mcbans/client/ConnectionPool.java
import com.mcbans.utils.TooLargeException;
import java.io.IOException;
import java.util.*;
import java.util.concurrent.LinkedBlockingDeque;

package com.mcbans.client;



public class ConnectionPool {
  private static int connections = 0;
  private static Queue<Client> clients = new LinkedBlockingDeque<>();
  private static Map<Client, Timer> keepAliveTimer = new HashMap<>();
  public static Client getConnection(String ApiKey) throws IOException, BadApiKeyException, TooLargeException, InterruptedException {