:orphan:

====================
Formatting User Data
====================

In order to ensure that a default, non-custom toolkit (that doesn't understand how to process your user data) knows how to gracefully pass over user data and correctly read all the standard HSF objects, each piece of user data must be written out in the following format:

.. code-block:: none
        
	<TKE_Start_User_Data opcode><the # of bytes of user data><the user data itself><TKE_Stop_User_Data opcode>
		  
It is important to point out that this formatting requirement for the ``TKE_Start_User_Data`` opcode is **PART OF THE HSF SPECIFICATION**. If you do not export the ``TKE_Start_User_Data`` opcode in this format, then you will be exporting a non-compliant HSF file, and a default non-custom reading toolkit is virtually guaranteed to crash when attempting to read your HSF file.

Keep in mind that an application will only be able to utilize your user data if that application is using a custom HSF reading module that knows the format of your user data. It must have reading logic that exactly matches the Writing logic used to export the user data.
