code: func New(anonClient, authClient *http.Client, host, namespace string, rFn retry.Factory, gcs CloudStorage) *Client {
  	if anonClient == nil {
  		anonClient = http.DefaultClient
  	}
  	if authClient == nil {
  		authClient = http.DefaultClient
  	}
  	if gcs == nil {
  		gcs = defaultGCSHandler{}
  	}
  	i := &Client{
  		retryFactory: rFn,
  		url:          strings.TrimRight(host, "/"),
  		namespace:    namespace,
  		h:            isolated.GetHash(namespace),
  		authClient:   authClient,
  		anonClient:   anonClient,
  		gcsHandler:   gcs,
  	}
  	tracer.NewPID(i, "isolatedclient:"+i.url)
  	return i
  }
docs: // New returns a new IsolateServer client.
  //
  // 'authClient' must implement authentication sufficient to talk to Isolate server
  // (OAuth tokens with 'email' scope).
  //
  // 'anonClient' must be a functional http.Client.
  //
  // If either client is nil, it will use http.DefaultClient (which will not work
  // on Classic AppEngine!).
  //
  // If you're unsure which namespace to use, use the DefaultNamespace constant.
  //
  // If gcs is nil, the defaultGCSHandler is used for fetching from and pushing to GCS.
  //
  // The hashing algorithm used depends on the namespace.