@Nullable
  private static ReferenceType loadUtilityClass(@NotNull EvaluationContextImpl evaluationContext) throws EvaluateException {
    DebugProcessImpl debugProcess = evaluationContext.getDebugProcess();
    byte[] bytes = readUtilityClass();
    evaluationContext.setAutoLoadClasses(true);
    ClassLoaderReference classLoader = ClassLoadingUtils.getClassLoader(evaluationContext, debugProcess);
    ClassLoadingUtils.defineClass(PROXY_CLASS_NAME, bytes, evaluationContext, debugProcess, classLoader);

    try {
      ClassType systemClassType = (ClassType)debugProcess.findClass(evaluationContext, "java.lang.System", null);
      if (systemClassType == null) return null;

      String javaHomePath = getPropertyValue(evaluationContext, systemClassType, "java.home");
      if (javaHomePath == null) return null;

      JdkVersionDetector.JdkVersionInfo info = JdkVersionDetector.getInstance().detectJdkVersionInfo(javaHomePath);
      if (info == null) return null;

      String agentPath = getMemoryAgentPath(info.arch);
      if (agentPath == null) return null;

      setAgentPathPropertyValue(evaluationContext, systemClassType, agentPath);
      return debugProcess.loadClass(evaluationContext, PROXY_CLASS_NAME, classLoader);
    }
    catch (Exception e) {
      throw EvaluateExceptionUtil.createEvaluateException("Could not load proxy class", e);
    }
  }
@Nullable
  private static ReferenceType loadUtilityClass(@NotNull EvaluationContextImpl evaluationContext)