
(Frame scrolling node
  (scrollable area size 785 585)
  (contents size 4016 4042)
  (scrollable area parameters 
    (horizontal scroll elasticity 2)
    (vertical scroll elasticity 2)
    (horizontal scrollbar mode 0)
    (vertical scrollbar mode 0)
    (has enabled horizontal scrollbar 1)
    (has enabled vertical scrollbar 1))
  (frame scale factor 2.00)
  (layout viewport at (0,0) size 785x585)
  (min layout viewport origin (0,0))
  (max layout viewport origin (1223,1436))
  (behavior for fixed 0)
  (visual viewport smaller than layout viewport 1)
  (children 4
    (Fixed node
      (anchor edges: AnchorEdgeLeft AnchorEdgeTop)
      (viewport rect at last layout at (0,0) size 785x585)
    )
    (Fixed node
      (anchor edges: AnchorEdgeLeft AnchorEdgeBottom)
      (viewport rect at last layout at (0,0) size 785x585)
      (layer position at last layout (0,485))
    )
    (Fixed node
      (anchor edges: AnchorEdgeLeft AnchorEdgeTop)
      (viewport rect at last layout at (0,0) size 785x585)
    )
    (Fixed node
      (anchor edges: AnchorEdgeRight AnchorEdgeTop)
      (viewport rect at last layout at (0,0) size 785x585)
      (layer position at last layout (685,0))
    )
  )
)
(GraphicsLayer
  (anchor 0.00 0.00)
  (bounds 4016.00 4042.00)
  (children 1
    (GraphicsLayer
      (anchor 0.00 0.00)
      (bounds 2008.00 2021.00)
      (contentsOpaque 1)
      (transform [2.00 0.00 0.00 0.00] [0.00 2.00 0.00 0.00] [0.00 0.00 1.00 0.00] [0.00 0.00 0.00 1.00])
      (children 4
        (GraphicsLayer
          (bounds 785.00 100.00)
          (contentsOpaque 1)
        )
        (GraphicsLayer
          (position 0.00 485.00)
          (bounds 785.00 100.00)
          (contentsOpaque 1)
        )
        (GraphicsLayer
          (bounds 100.00 585.00)
          (contentsOpaque 1)
        )
        (GraphicsLayer
          (position 685.00 0.00)
          (bounds 100.00 585.00)
          (contentsOpaque 1)
        )
      )
    )
  )
)

