func acquireGzipReader(r io.Reader) (*gzip.Reader, error) {
	v := gzipPool.Get()
	if v == nil {
		return gzip.NewReader(r)
	}
	zr := v.(*gzip.Reader)
	if err := zr.Reset(r); err != nil {
		return nil, err
	}
	return zr, nil
}
func acquireGzipReader(r io.Reader) (*gzip.Reader, error) {
	v := gzipPool.Get()
	if v == nil {
		return gzip.NewReader(r)
	}
	zr := v.(*gzip.Reader)
	if err := zr.Reset(r); err != nil {
		return nil, err
	}
	return zr, nil
}
// acquireGzipReader retrieves a (possibly) pre-initialized gzip.Reader from
// the package gzipPool (sync.Pool). This reduces memory allocation overhead by re-using
// gzip.Readers