 	import flash.net.FileReference;
 	import flash.utils.ByteArray;
 	import flash.utils.Dictionary;
+	import flash.utils.describeType;
 
 	public class Qark
 	{

		{
			var start	: int = target.position;
			var length 	: int = 0;
			
			target.position += 2;
			
			for (var propertyName : String in source)
			{
				encodeString(propertyName, target);
				encodeRecursive(source[propertyName], target);

				++length;
			}
			
			if (length == 0)
			{
				var variables : XMLList = describeType(source).variable;
				
				for each (var variable : XML in variables)
				{
					propertyName = variable.@name;
					
					encodeString(propertyName, target);
					encodeRecursive(source[propertyName], target);
					
					++length;
				}
			}
			
			var stop : int = target.position;
			
			target.position = start;
