code: func NewBootstrapTokenString(token string) (*BootstrapTokenString, error) {
  	substrs := bootstraputil.BootstrapTokenRegexp.FindStringSubmatch(token)
  	// TODO: Add a constant for the 3 value here, and explain better why it's needed (other than because how the regexp parsin works)
  	if len(substrs) != 3 {
  		return nil, errors.Errorf("the bootstrap token %q was not of the form %q", token, bootstrapapi.BootstrapTokenPattern)
  	}
  
  	return &BootstrapTokenString{ID: substrs[1], Secret: substrs[2]}, nil
  }
docs: // NewBootstrapTokenString converts the given Bootstrap Token as a string
  // to the BootstrapTokenString object used for serialization/deserialization
  // and internal usage. It also automatically validates that the given token
  // is of the right format