code: func (msg *MsgFilterLoad) BtcEncode(w io.Writer, pver uint32, enc MessageEncoding) error {
  	if pver < BIP0037Version {
  		str := fmt.Sprintf("filterload message invalid for protocol "+
  			"version %d", pver)
  		return messageError("MsgFilterLoad.BtcEncode", str)
  	}
  
  	size := len(msg.Filter)
  	if size > MaxFilterLoadFilterSize {
  		str := fmt.Sprintf("filterload filter size too large for message "+
  			"[size %v, max %v]", size, MaxFilterLoadFilterSize)
  		return messageError("MsgFilterLoad.BtcEncode", str)
  	}
  
  	if msg.HashFuncs > MaxFilterLoadHashFuncs {
  		str := fmt.Sprintf("too many filter hash functions for message "+
  			"[count %v, max %v]", msg.HashFuncs, MaxFilterLoadHashFuncs)
  		return messageError("MsgFilterLoad.BtcEncode", str)
  	}
  
  	err := WriteVarBytes(w, pver, msg.Filter)
  	if err != nil {
  		return err
  	}
  
  	return writeElements(w, msg.HashFuncs, msg.Tweak, msg.Flags)
  }
docs: // BtcEncode encodes the receiver to w using the bitcoin protocol encoding.
  // This is part of the Message interface implementation.