text: public override int FillFields(byte[] data, int offset, IEscherRecordFactory recordFactory){int bytesRemaining = ReadHeader(data, offset);int avaliable = data.Length - (offset + 8);if (bytesRemaining > avaliable){bytesRemaining = avaliable;}if (IsContainerRecord){int bytesWritten = 0;_thedata = new byte[0];offset += 8;bytesWritten += 8;while (bytesRemaining > 0){EscherRecord child = recordFactory.CreateRecord(data, offset);int childBytesWritten = child.FillFields(data, offset, recordFactory);bytesWritten += childBytesWritten;offset += childBytesWritten;bytesRemaining -= childBytesWritten;ChildRecords.Add(child);}return bytesWritten;}else{_thedata = new byte[bytesRemaining];Array.Copy(data, offset + 8, _thedata, 0, bytesRemaining);return bytesRemaining + 8;}}