code: func (d *Decoder) DecodeFixedOpaque(size int32) (rv []byte, err error) {
  	if size == 0 {
  		return
  	}
  	data := d.data
  	if int32(len(data)) < size {
  		msg := fmt.Sprintf(errInsufficientBytes, size)
  		err = unmarshalError("DecodeFixedOpaque", ErrUnexpectedEnd, msg, data)
  		return
  	}
  	pad := (4 - (size % 4)) % 4
  	if int32(len(data[size:])) < pad {
  		msg := fmt.Sprintf(errInsufficientPad, size+pad)
  		err = unmarshalError("DecodeFixedOpaque", ErrUnexpectedEnd, msg, data)
  		return
  	}
  	rv = data[0:size]
  
  	d.data = data[size+pad:]
  	return
  }
docs: // RFC Section 4.8 -  Quadruple-Precision Floating Point
  // 128-bit quadruple-precision floating point
  // Not Implemented
  // DecodeFixedOpaque treats the next 'size' bytes as XDR encoded opaque data and
  // returns the result as a byte slice.
  //
  // An UnmarshalError is returned if there are insufficient bytes remaining to
  // satisfy the passed size, including the necessary padding to make it a
  // multiple of 4.
  //
  // Reference:
  // 	RFC Section 4.9 - Fixed-Length Opaque Data
  // 	Fixed-length uninterpreted data zero-padded to a multiple of four