      */
     mx_internal var invalidateDisplayListFlag:Boolean = false;
 
+
+    /**
+     *  Documentation is not currently available.
+     */
+	protected var xformOffsets:TransformOffset;
     //--------------------------------------------------------------------------
     //
     //  Properties: IGraphicElement
     //
     //--------------------------------------------------------------------------
-
+	
+    [Bindable("propertyChange")]
+	public function get offsets():TransformOffset
+	{
+		return (xformOffsets != null && xformOffsets.userVisible == true)? xformOffsets:null;
+	}
+	public function set offsets(userValue:TransformOffset):void
+	{
+		var oldValue:TransformOffset = xformOffsets;
+		var value:TransformOffset = userValue;
+			
+		if(value == null)
+		{
+			value = new TransformOffset();
+			value.userVisible = false;
+		}
+		
+		if(value != null && oldValue != null)
+			value.initFrom(oldValue);
+
+		if(xformOffsets != null)
+			xformOffsets.removeEventListener(Event.CHANGE,transformOffsetsChangedHandler);
+		xformOffsets = value;
+		if(xformOffsets != null)
+			xformOffsets.addEventListener(Event.CHANGE,transformOffsetsChangedHandler);
+
+        dispatchPropertyChangeEvent("offsets", oldValue, userValue);
+	}
+	
+	
+	protected function invalidateTransform(changeInvalidatesLayering:Boolean = true,triggerLayout:Boolean = true):void
+	{
+        if(changeInvalidatesLayering)
+        	notifyElementLayerChanged();
+        if(triggerLayout)
+        {
+    	    invalidateParentSizeAndDisplayList();
+        }
+        xformOffsets.updatePending = true;
+	}
+
+    private function transformOffsetsChangedHandler(e:Event):void
+	{
+		invalidateTransform();
+	}
+	
     //----------------------------------
     //  alpha
     //----------------------------------

    //  Variables
    //
    //--------------------------------------------------------------------------

    /**
     *  @private
     *  Storage for the transform property.
     */
    private var _matrix:Matrix;
    
    /**
     *  @private
     */
    private var matrixChanged:Boolean;
    
    /**
     *  @private

    public function set transform(value:flash.geom.Transform):void
    {
        // Clean up the old event listeners
        var oldTransform:mx.geom.Transform =
            _transform as mx.geom.Transform;
        if (oldTransform)
        {
            oldTransform.removeEventListener(
