code: private CloseableHttpResponse performRendering(String pageUrl, DriverRequest originalRequest,
              CloseableHttpResponse response, Renderer[] renderers) throws HttpErrorPage, IOException {
  
          if (!contentTypeHelper.isTextContentType(response)) {
              LOG.debug("'{}' is binary on no transformation to apply: was forwarded without modification.", pageUrl);
              return response;
          }
  
          LOG.debug("'{}' is text : will apply renderers.", pageUrl);
  
          // Get response body
          String currentValue = HttpResponseUtils.toString(response, this.eventManager);
  
          // Perform rendering
          currentValue = performRendering(pageUrl, originalRequest, response, currentValue, renderers);
  
          // Generate the new response.
          HttpEntity transformedHttpEntity = new StringEntity(currentValue, ContentType.get(response.getEntity()));
          CloseableHttpResponse transformedResponse =
                  BasicCloseableHttpResponse.adapt(new BasicHttpResponse(response.getStatusLine()));
          transformedResponse.setHeaders(response.getAllHeaders());
          transformedResponse.setEntity(transformedHttpEntity);
          return transformedResponse;
  
      }
docs: Performs rendering on an HttpResponse.
  <p>
  Rendering is only performed if page can be parsed.
  
  @param pageUrl
  The remove url from which the body was retrieved.
  @param originalRequest
  The request received by esigate.
  @param response
  The response which will be rendered.
  @param renderers
  list of renderers to apply.
  @return The rendered response, or the original response if if was not parsed.
  @throws HttpErrorPage
  @throws IOException