public int setArrayData(byte[] data, int offset) {if (emptyComplexPart) {resizeComplexData(0);} else {short numElements = LittleEndian.getShort(data, offset);short sizeOfElements = LittleEndian.getShort(data, offset + 4);int cdLen = getComplexData().length;int arraySize = getActualSizeOfElements(sizeOfElements) * numElements;if (arraySize == cdLen) {resizeComplexData(arraySize + 6, 0);sizeIncludesHeaderSize = false;}setComplexData(data, offset);}return getComplexData().length;}

public int SetArrayData(byte[] data, int offset){if (emptyComplexPart){_complexData = new byte[0];}else{short numElements = LittleEndian.GetShort(data, offset);short numReserved = LittleEndian.GetShort(data, offset + 2);short sizeOfElements = LittleEndian.GetShort(data, offset + 4);int arraySize = GetActualSizeOfElements(sizeOfElements) * numElements;if (arraySize == _complexData.Length){_complexData = new byte[arraySize + 6];sizeIncludesHeaderSize = false;}Array.Copy(data, offset, _complexData, 0, _complexData.Length);}return _complexData.Length;}
