public override object decode(byte[] data, BigEndianBitConverter converter, int offset = 0) { List <Substitution> substitutions = new List <Substitution>(); int substitutionsLength = (int)converter.ToUInt32(data, offset); int pos = offset + 4; while (pos < offset + substitutionsLength + 4) { int subLength = (int)converter.ToUInt32(data, pos); pos += 4; substitutions.Add(Substitution.DecodeSubstitution(data, converter, pos)); pos += subLength; } return(substitutions); }