Relative foreground
(GraphicsLayer
  (anchor 0.00 0.00)
  (bounds 800.00 600.00)
  (children 1
    (GraphicsLayer
      (bounds 800.00 600.00)
      (contentsOpaque 1)
      (children 1
        (GraphicsLayer
          (position 8.00 8.00)
          (bounds 304.00 304.00)
          (drawsContent 1)
          (children 2
            (GraphicsLayer
              (offsetFromRenderer width=2 height=2)
              (position 2.00 2.00)
              (bounds 285.00 285.00)
              (children 1
                (GraphicsLayer
                  (offsetFromRenderer width=2 height=2)
                  (anchor 0.00 0.00)
                  (bounds 285.00 364.00)
                  (drawsContent 1)
                )
              )
            )
            (GraphicsLayer
              (position 2.00 2.00)
              (bounds 300.00 300.00)
              (children 3
                (GraphicsLayer
                  (position 0.00 285.00)
                  (bounds 285.00 15.00)
                  (drawsContent 1)
                )
                (GraphicsLayer
                  (position 285.00 0.00)
                  (bounds 15.00 285.00)
                  (drawsContent 1)
                )
                (GraphicsLayer
                  (position 285.00 285.00)
                  (bounds 15.00 15.00)
                  (drawsContent 1)
                )
              )
            )
          )
        )
      )
    )
  )
)

