code: func (c *Client) NewServiceClient(path string, namespace string) *Client {
  	vc := c.URL()
  	u, err := url.Parse(path)
  	if err != nil {
  		log.Panicf("url.Parse(%q): %s", path, err)
  	}
  	if u.Host == "" {
  		u.Scheme = vc.Scheme
  		u.Host = vc.Host
  	}
  
  	client := NewClient(u, c.k)
  	client.Namespace = "urn:" + namespace
  	if cert := c.Certificate(); cert != nil {
  		client.SetCertificate(*cert)
  	}
  
  	// Copy the trusted thumbprints
  	c.hostsMu.Lock()
  	for k, v := range c.hosts {
  		client.hosts[k] = v
  	}
  	c.hostsMu.Unlock()
  
  	// Copy the cookies
  	client.Client.Jar.SetCookies(u, c.Client.Jar.Cookies(u))
  
  	// Set SOAP Header cookie
  	for _, cookie := range client.Jar.Cookies(u) {
  		if cookie.Name == SessionCookieName {
  			client.cookie = cookie.Value
  			break
  		}
  	}
  
  	// Copy any query params (e.g. GOVMOMI_TUNNEL_PROXY_PORT used in testing)
  	client.u.RawQuery = vc.RawQuery
  
  	client.UserAgent = c.UserAgent
  
  	return client
  }
docs: // NewServiceClient creates a NewClient with the given URL.Path and namespace.