code: func validateUNSUBACKBytes(fixedHeader FixedHeader, variableHeader []byte) error {
  	// Extract the MQTT Control Packet type.
  	ptype, err := fixedHeader.ptype()
  	if err != nil {
  		return err
  	}
  
  	// Check the length of the fixed header.
  	if len(fixedHeader) != lenUNSUBACKFixedHeader {
  		return ErrInvalidFixedHeaderLen
  	}
  
  	// Check the MQTT Control Packet type.
  	if ptype != TypeUNSUBACK {
  		return ErrInvalidPacketType
  	}
  
  	// Check the reserved bits of the fixed header.
  	if fixedHeader[0]<<4 != 0x00 {
  		return ErrInvalidFixedHeader
  	}
  
  	// Check the Remaining Length of the fixed header.
  	if fixedHeader[1] != lenUNSUBACKVariableHeader {
  		return ErrInvalidRemainingLength
  	}
  
  	// Check the length of the variable header.
  	if len(variableHeader) != lenUNSUBACKVariableHeader {
  		return ErrInvalidVariableHeaderLen
  	}
  
  	// Extract the Packet Identifier.
  	packetID, _ := decodeUint16(variableHeader)
  
  	// Check the Packet Identifier.
  	if packetID == 0 {
  		return ErrInvalidPacketID
  	}
  
  	return nil
  }
docs: // validateUNSUBACKBytes validates the fixed header and the variable header.