 	import mx.core.UIComponent;
 	import mx.core.mx_internal;
 	import mx.events.ChildExistenceChangedEvent;
-	import mx.utils.ObjectUtil;
 	
 	import avmplus.getQualifiedClassName;
 	

				state[CHILDREN] = children;
			return state;
		}
				
		public function setSessionState(state:Object):void
		{
			if (!state)
				state = {};
			
			var id:Array = state[ID] is String ? [state[ID] as String] : state[ID] as Array;
			var flex:Number = state[FLEX];
			var direction:String = state[DIRECTION] as String;
			var children:Array = id ? [id] : (state[CHILDREN] as Array || []).concat();
			
			if (children.length == 1 && !id)
			{
				setSessionState(children[0]);
				return;
			}
			
			for (var i:int = 0; i < children.length; i++)
			{
				var objectName:String = 'child' + i;
				var child:Object = children[i];
				if (child is Array)
				{
					children[i] = DynamicState.create(objectName, LinkableDynamicDisplayObject_QName, child);
				}
				else if (child[DIRECTION] == direction && child[CHILDREN] is Array)
				{
					var spliceArgs:Array = [i--, 1];
					for each (var obj:Object in child[CHILDREN])
					{
						var newObj:Object = ObjectUtil.copy(obj);
						newObj[FLEX] *= child[FLEX];
						spliceArgs.push(newObj);
					}
					children.splice.apply(children, spliceArgs);
				}
				else
				{
					children[i] = DynamicState.create(objectName, FlexibleLayout_QName, children[i]);
				}
			}
			
			getCallbackCollection(this).delayCallbacks();

	import weave.api.registerLinkableChild;
	import weave.api.core.DynamicState;
	import weave.api.core.ILinkableVariable;
	import weave.compiler.Compiler;
	import weave.compiler.StandardLib;
	import weave.core.LinkableDynamicDisplayObject;
	import weave.core.LinkableHashMap;
