code: func parseUserHostPass(v string) (user, host, password string, ok bool) {
  	f := strings.SplitN(v, "@", 2)
  	if len(f) != 2 {
  		return
  	}
  	user = f[0]
  	f = strings.Split(f[1], ":")
  	if len(f) < 2 {
  		return "", "", "", false
  	}
  	host = f[0]
  	f = f[1:]
  	if len(f) >= 2 {
  		if _, err := strconv.ParseUint(f[0], 10, 16); err == nil {
  			host = host + ":" + f[0]
  			f = f[1:]
  		}
  	}
  	password = strings.Join(f, ":")
  	ok = true
  	return
  }
docs: // parses "user@host:password", which you think would be easy, but we
  // documented this format without thinking about port numbers, so this
  // uses heuristics to guess what extra colons mean.