func (r RecompressibilityReader) Read(p []byte) (n int, err error) {
	return r.tee2.Read(p)
}
Read implements io.Reader
package gzip
import (
	"bytes"
	"compress/gzip"
	"crypto/sha512"
	"hash"
	"io"
)
type RecompressibilityReader struct {
	reader *gzip.Reader
	writer *gzip.Writer
	tee2   io.Reader
	h1     hash.Hash
	h2     hash.Hash
}
func NewRecompressibilityReader(r io.Reader) (*RecompressibilityReader, error) {
	h1 := sha512.New()
	tee1 := io.TeeReader(r, h1)
	reader, err := gzip.NewReader(tee1)
	if err != nil {
		return nil, err
	}
	h2 := sha512.New()
	writer := gzip.NewWriter(h2)
	tee2 := io.TeeReader(reader, writer)
	return &RecompressibilityReader{tee2: tee2, h1: h1, reader: reader, writer: writer, h2: h2}, nil
}