
(Frame scrolling node
  (scrollable area size 800 600)
  (contents size 800 1016)
  (parent relative scrollable rect at (0,0) size 800x600)
  (scrollable area parameters 
    (horizontal scroll elasticity 1)
    (vertical scroll elasticity 1)
    (horizontal scrollbar mode 0)
    (vertical scrollbar mode 0))
  (layout viewport at (0,0) size 800x600)
  (min layout viewport origin (0,0))
  (max layout viewport origin (0,416))
  (behavior for fixed 0)
  (children 1
    (Fixed node
      (anchor edges: AnchorEdgeLeft AnchorEdgeTop)
      (viewport rect at last layout at (0,0) size 800x600)
      (layer position at last layout (8,0))
      (children 1
        (Frame hosting node
          (parent relative scrollable rect at (29,29) size 500x300)
          (children 1
            (Frame scrolling node
              (scrollable area size 500 300)
              (contents size 500 420)
              (parent relative scrollable rect at (0,0) size 500x300)
              (scrollable area parameters 
                (horizontal scroll elasticity 1)
                (vertical scroll elasticity 1)
                (horizontal scrollbar mode 0)
                (vertical scrollbar mode 0))
              (layout viewport at (0,0) size 500x300)
              (min layout viewport origin (0,0))
              (max layout viewport origin (0,120))
              (behavior for fixed 0)
              (children 2
                (Overflow scrolling node
                  (scrollable area size 400 300)
                  (contents size 400 1760)
                  (parent relative scrollable rect at (10,10) size 400x300)
                  (scrollable area parameters 
                    (horizontal scroll elasticity 1)
                    (vertical scroll elasticity 1)
                    (horizontal scrollbar mode 0)
                    (vertical scrollbar mode 0)
                    (has enabled vertical scrollbar 1))
                  (children 1
                    (Sticky node
                      (anchor edges: AnchorEdgeTop AnchorEdgeBottom)
                      (top offset 10.00)
                      (bottom offset 10.00)
                      (containing block rect at (2,2) size 400x1760)
                      (sticky box rect at (0,830) size 100x100)
                      (constraining rect at (0,0) size 400x300)
                      (sticky offset at last layout width=0 height=-640)
                      (layer position at last layout (0,190))
                    )
                  )
                )
                (Sticky node
                  (anchor edges: AnchorEdgeTop AnchorEdgeBottom)
                  (top offset 10.00)
                  (bottom offset 10.00)
                  (containing block rect at (8,8) size 484x404)
                  (sticky box rect at (8,312) size 100x100)
                  (constraining rect at (0,0) size 500x300)
                  (sticky offset at last layout width=0 height=-122)
                  (layer position at last layout (8,190))
                )
              )
            )
          )
        )
      )
    )
  )
)

