code: func ReadVarUint64(r io.Reader) (uint64, error) {
  	var result uint64
  	var shift uint64
  	buf := make([]byte, 1)
  	for {
  		if _, err := r.Read(buf); err != nil {
  			return 0, err
  		}
  		v := uint64(buf[0])
  		result |= (v & 0x7F) << shift
  		if v&0x80 == 0 {
  			return result, nil
  		}
  		shift += 7
  	}
  
  }
docs: // ReadVarUint64 tries to read a uint64 from r.