public OctetsStream Unmarshal(OctetsStream os)
        {
            MessageResponse.Unmarshal(os);
            LoginStage = os.Unmarshal_int();
            Sex        = os.Unmarshal_byte();
            Name       = os.Unmarshal_string();

            for (var i = os.Uncompact_uint32(); i > 0; --i)
            {
                var k = os.Unmarshal_string();
                var v = os.Unmarshal_int();
                Param.Add(k, v);
            }

            for (var i = os.Uncompact_uint32(); i > 0; --i)
            {
                var v = new MessageEntity();
                v.Unmarshal(os);
                EntitySet.Add(v);
            }

            for (int i = os.Uncompact_uint32(); i > 0; --i)
            {
                var v = new MessageEntity();
                v.Unmarshal(os);
                EntityList.Add(v);
            }

            EntityArray = new MessageEntity[os.Uncompact_uint32()];
            for (var i = EntityArray.Length; i > 0; --i)
            {
                var v = new MessageEntity();
                v.Unmarshal(os);
                EntityArray[EntityArray.Length - i] = v;
            }
            return(os);
        }