public static VarHackContainer CreateFromXml(
            VarHackFlowLayoutPanel varHackPanel,
            XElement element)
        {
            int xPos = ParsingUtilities.ParseInt(element.Attribute(XName.Get("xPos")).Value);
            int yPos = ParsingUtilities.ParseInt(element.Attribute(XName.Get("yPos")).Value);

            string specialType = element.Attribute(XName.Get("specialType"))?.Value;

            if (specialType != null)
            {
                return(new VarHackContainer(
                           varHackPanel,
                           0 /* creationIndex */,
                           false /* useDefaults */,
                           specialType,
                           true /* noNumIn */,
                           null /* varNameIn */,
                           null /* addressIn */,
                           null /* memoryTypeIn */,
                           null /* useHexIn */,
                           null /* pointerOffsetIn */,
                           xPos,
                           yPos));
            }
            else
            {
                string varName       = element.Attribute(XName.Get("name")).Value;
                uint   address       = ParsingUtilities.ParseHex(element.Attribute(XName.Get("address")).Value);
                Type   type          = TypeUtilities.StringToType[element.Attribute(XName.Get("type")).Value];
                bool   useHex        = ParsingUtilities.ParseBool(element.Attribute(XName.Get("useHex")).Value);
                uint?  pointerOffset = ParsingUtilities.ParseHexNullable(element.Attribute(XName.Get("pointerOffset"))?.Value);
                bool   noNum         = ParsingUtilities.ParseBool(element.Attribute(XName.Get("noNum")).Value);

                return(new VarHackContainer(
                           varHackPanel,
                           0 /* creationIndex */,
                           false /* useDefaults */,
                           null /* sepcialTypeIn */,
                           noNum,
                           varName,
                           address,
                           type,
                           useHex,
                           pointerOffset,
                           xPos,
                           yPos));
            }
        }