text: public int serialize(int offset, byte[] data, EscherSerializationListener listener) {listener.beforeRecordSerialize( offset, getRecordId(), this );LittleEndian.putShort(data, offset, getOptions());LittleEndian.putShort(data, offset+2, getRecordId());int remainingBytes = thedata.length;for (EscherRecord r : _childRecords) {remainingBytes += r.getRecordSize();}LittleEndian.putInt(data, offset+4, remainingBytes);System.arraycopy(thedata, 0, data, offset+8, thedata.length);int pos = offset+8+thedata.length;for (EscherRecord r : _childRecords) {pos += r.serialize(pos, data, listener );}listener.afterRecordSerialize( pos, getRecordId(), pos - offset, this );return pos - offset;}