public override int ReadFrom(byte[] buffer, int offset)
        {
            int read = base.ReadFrom(buffer, offset);

            int iuSize = Utilities.ToInt32LittleEndian(buffer, offset + 12);

            ImplementationIdentifier = new ImplementationEntityIdentifier();
            ImplementationIdentifier.ReadFrom(buffer, offset + 16);

            ImplementationUseData = new byte[iuSize];
            Array.Copy(buffer, offset + 48, ImplementationUseData, 0, iuSize);

            return read;
        }
        public override int ReadFrom(byte[] buffer, int offset)
        {
            int read = base.ReadFrom(buffer, offset);

            int iuSize = Utilities.ToInt32LittleEndian(buffer, offset + 12);

            ImplementationIdentifier = new ImplementationEntityIdentifier();
            ImplementationIdentifier.ReadFrom(buffer, offset + 16);

            ImplementationUseData = new byte[iuSize];
            Array.Copy(buffer, offset + 48, ImplementationUseData, 0, iuSize);

            return(read);
        }