code: func (r *ServiceConfigResponse) UnmarshalBinary(data []byte) error {
  	dec := codec.NewDecoderBytes(data, msgpackHandle)
  
  	type Alias ServiceConfigResponse
  	var a Alias
  
  	if err := dec.Decode(&a); err != nil {
  		return err
  	}
  
  	*r = ServiceConfigResponse(a)
  
  	var err error
  
  	// Fix strings and maps in the returned maps
  	r.ProxyConfig, err = lib.MapWalk(r.ProxyConfig)
  	if err != nil {
  		return err
  	}
  	for k := range r.UpstreamConfigs {
  		r.UpstreamConfigs[k], err = lib.MapWalk(r.UpstreamConfigs[k])
  		if err != nil {
  			return err
  		}
  	}
  	return nil
  }
docs: // UnmarshalBinary decodes msgpack encoded ServiceConfigResponse. It used
  // default msgpack encoding but fixes up the uint8 strings and other problems we
  // have with encoding map[string]interface{}.