public override byte[] Serialize(Pointer p)
 {
     base.Serialize(p);
     BitPacker.AddString(ref m_SerializeBuffer, p, Player.ToString());
     BitPacker.AddString(ref m_SerializeBuffer, p, SharedSecret.ToString());
     BitPacker.AddString(ref m_SerializeBuffer, p, AccountName);
     BitPacker.AddString(ref m_SerializeBuffer, p, TargetResource.ToString());
     BitPacker.AddSerializableWispObject(ref m_SerializeBuffer, p, Profile);
     BitPacker.AddBool(ref m_SerializeBuffer, p, Character != null);
     if (Character != null)
     {
         BitPacker.AddComponent(ref m_SerializeBuffer, p, Character);
     }
     BitPacker.AddString(ref m_SerializeBuffer, p, OwningServer);
     return(m_SerializeBuffer);
 }