code: func (c *cache) put(s string, a *Authenticator) *Authenticator {
  	c.mu.Lock()
  	defer c.mu.Unlock()
  	existing, ok := c.m[s]
  	if ok {
  		return existing
  	}
  	c.m[s] = a
  	return a
  }
docs: // put inserts an authenticator into the cache. If an authenticator is already
  // associated with the key, the first one is returned instead.