
(Frame scrolling node
  (scrollable area size 785 585)
  (contents size 1805 5108)
  (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.30)
  (layout viewport at (0,0) size 785x585)
  (min layout viewport origin (0,0))
  (max layout viewport origin (0,1636))
  (behavior for fixed 0)
  (children 4
    (Fixed node
      (anchor edges: AnchorEdgeLeft AnchorEdgeTop)
      (viewport rect at last layout at (0,0) size 785x585)
      (layer position at last layout (-4,-4))
    )
    (Fixed node
      (anchor edges: AnchorEdgeLeft AnchorEdgeTop)
      (viewport rect at last layout at (0,0) size 785x585)
      (layer position at last layout (6,196))
    )
    (Fixed node
      (anchor edges: AnchorEdgeRight AnchorEdgeTop)
      (viewport rect at last layout at (0,0) size 785x585)
      (layer position at last layout (597,196))
    )
    (Fixed node
      (anchor edges: AnchorEdgeLeft AnchorEdgeBottom)
      (viewport rect at last layout at (0,0) size 785x585)
      (layer position at last layout (-4,497))
    )
  )
)

(GraphicsLayer
  (anchor 0.00 0.00)
  (bounds 1805.00 5108.00)
  (visible rect 0.00, 0.00 785.00 x 585.00)
  (coverage rect 0.00, 0.00 785.00 x 585.00)
  (intersects coverage rect 1)
  (contentsScale 1.00)
  (children 1
    (GraphicsLayer
      (anchor 0.00 0.00)
      (bounds 785.00 2221.00)
      (contentsOpaque 1)
      (transform [2.30 0.00 0.00 0.00] [0.00 2.30 0.00 0.00] [0.00 0.00 1.00 0.00] [0.00 0.00 0.00 1.00])
      (visible rect 0.00, 0.00 341.30 x 254.35)
      (coverage rect 0.00, 0.00 341.30 x 254.35)
      (intersects coverage rect 1)
      (contentsScale 2.30)
      (tile cache coverage 0, 0 341 x 445)
      (tile size 785 x 512)
      (top left tile 0, 0 tiles grid 1 x 2)
      (in window 1)
      (children 4
        (GraphicsLayer
          (offsetFromRenderer width=-14 height=-14)
          (position -4.00 -4.00)
          (bounds 786.00 82.00)
          (drawsContent 1)
          (visible rect 4.00, 4.00 341.30 x 78.00)
          (coverage rect 4.00, 4.00 341.30 x 254.35)
          (intersects coverage rect 1)
          (contentsScale 2.30)
        )
        (GraphicsLayer
          (offsetFromRenderer width=-14 height=-14)
          (position 6.00 196.00)
          (bounds 182.00 332.00)
          (drawsContent 1)
          (visible rect 0.00, 0.00 182.00 x 58.35)
          (coverage rect -6.00, -196.00 341.30 x 254.35)
          (intersects coverage rect 1)
          (contentsScale 2.30)
        )
        (GraphicsLayer
          (offsetFromRenderer width=-14 height=-14)
          (position 597.00 196.00)
          (bounds 182.00 332.00)
          (drawsContent 1)
          (visible rect 0.00, 0.00 0.00 x 0.00)
          (coverage rect -597.00, -196.00 341.30 x 254.35)
          (intersects coverage rect 1)
          (contentsScale 2.30)
        )
        (GraphicsLayer
          (offsetFromRenderer width=-14 height=-14)
          (position -4.00 497.00)
          (bounds 786.00 82.00)
          (drawsContent 1)
          (visible rect 0.00, 0.00 0.00 x 0.00)
          (coverage rect 4.00, -497.00 341.30 x 254.35)
          (intersects coverage rect 1)
          (contentsScale 2.30)
        )
      )
    )
  )
)
This is the top bar. This is the left bar. This is the right bar. This is the bottom bar.
