class RequestCounter {

  private final AtomicInteger reqCount = new AtomicInteger();
  private final AtomicInteger handleCount = new AtomicInteger();
  private final Map<Integer, String> handleIps = new ConcurrentHashMap<>();

  int getHandleCount() {
    return handleCount.get();
  }

  int getRequestCount() {
    return reqCount.get();
  }
  
  void incrementHandleCount(String ip, int uniqueId) {
    handleCount.incrementAndGet();
    handleIps.put(uniqueId, ip);
  }

  int incrementRequestCount() {
    return reqCount.incrementAndGet();
  }

  void decrementHandleCount(int uniqueId) {
    handleCount.decrementAndGet();
    handleIps.remove(uniqueId);
  }

  int getDistinctIps() {<FILL_FUNCTION_BODY>}
}

    Set<String> ips = new HashSet<>();
    for (Map.Entry<Integer, String> entry : handleIps.entrySet()) {
      ips.add(entry.getValue());
    }
    return ips.size();
  
<no_super_class>