layer at (0,0) size 1518x3172
  RenderView at (0,0) size 800x600
layer at (0,0) size 800x3172
  RenderBlock {HTML} at (0,0) size 800x3172
    RenderBody {BODY} at (8,8) size 784x3148
      RenderBlock (anonymous) at (0,0) size 784x40
        RenderText {#text} at (0,0) size 762x39
          text run at (0,0) width 762: "In all of the examples, you should be able to see blue and green rectangles that spill way out of their containing blocks."
          text run at (0,20) width 612: "They should be 100px tall and not overlap one another at all. They should be stacked vertically."
      RenderBlock {DIV} at (0,56) size 720x240 [border: (10px solid #000000)]
        RenderText {#text} at (10,10) size 311x19
          text run at (10,10) width 311: "You should see blue and green rectangles below."
        RenderBR {BR} at (320,25) size 1x0
        RenderBlock (floating) {DIV} at (10,30) size 1500x100 [bgcolor=#0000FF]
        RenderText {#text} at (0,0) size 0x0
        RenderBlock (floating) {DIV} at (10,130) size 1500x100 [bgcolor=#008000]
        RenderText {#text} at (0,0) size 0x0
      RenderBlock {DIV} at (0,312) size 720x240 [border: (10px solid #000000)]
        RenderText {#text} at (10,10) size 160x19
          text run at (10,10) width 160: "You should see blue and "
        RenderBlock (floating) {DIV} at (10,30) size 1500x100 [bgcolor=#0000FF]
        RenderText {#text} at (0,0) size 0x0
        RenderBlock (floating) {DIV} at (10,130) size 1500x100 [bgcolor=#008000]
        RenderText {#text} at (169,10) size 152x19
          text run at (169,10) width 152: "green rectangles below."
      RenderBlock {DIV} at (0,568) size 720x240 [border: (10px solid #000000)]
        RenderBlock (floating) {DIV} at (10,10) size 1500x100 [bgcolor=#0000FF]
        RenderBlock (floating) {DIV} at (10,110) size 1500x100 [bgcolor=#008000]
        RenderBR {BR} at (1510,10) size 0x19
        RenderText {#text} at (10,210) size 311x19
          text run at (10,210) width 311: "You should see blue and green rectangles above."
      RenderBlock {DIV} at (0,824) size 720x240 [border: (10px solid #000000)]
        RenderBlock (floating) {DIV} at (10,10) size 1500x100 [bgcolor=#0000FF]
        RenderBlock (floating) {DIV} at (10,110) size 1500x100 [bgcolor=#008000]
        RenderText {#text} at (10,210) size 311x19
          text run at (10,210) width 311: "You should see blue and green rectangles above."
      RenderBlock {DIV} at (0,1080) size 720x240 [border: (10px solid #000000)]
        RenderBlock (floating) {DIV} at (10,10) size 1500x100 [bgcolor=#0000FF]
        RenderText {#text} at (10,110) size 284x19
          text run at (10,110) width 284: "You should see blue above and green below."
        RenderBlock (floating) {DIV} at (10,130) size 1500x100 [bgcolor=#008000]
        RenderText {#text} at (0,0) size 0x0
      RenderBlock {DIV} at (0,1336) size 720x240 [border: (10px solid #000000)]
        RenderBlock (floating) {DIV} at (10,10) size 1500x100 [bgcolor=#0000FF]
        RenderText {#text} at (10,110) size 284x19
          text run at (10,110) width 284: "You should see blue above and green below."
        RenderBR {BR} at (293,125) size 1x0
        RenderBlock (floating) {DIV} at (10,130) size 1500x100 [bgcolor=#008000]
        RenderText {#text} at (0,0) size 0x0
      RenderBlock (anonymous) at (0,1592) size 784x20
        RenderText {#text} at (0,0) size 595x19
          text run at (0,0) width 595: "The next examples should have blue and green rectangles that snugly fit without spilling out."
      RenderBlock {DIV} at (0,1628) size 720x240 [border: (10px solid #000000)]
        RenderText {#text} at (10,10) size 311x19
          text run at (10,10) width 311: "You should see blue and green rectangles below."
        RenderBR {BR} at (320,25) size 1x0
        RenderBlock (floating) {DIV} at (10,30) size 698x100 [bgcolor=#0000FF]
        RenderText {#text} at (0,0) size 0x0
        RenderBlock (floating) {DIV} at (10,130) size 698x100 [bgcolor=#008000]
        RenderText {#text} at (0,0) size 0x0
      RenderBlock {DIV} at (0,1884) size 720x240 [border: (10px solid #000000)]
        RenderText {#text} at (10,10) size 311x19
          text run at (10,10) width 311: "You should see blue and green rectangles below."
        RenderBlock (floating) {DIV} at (10,30) size 698x100 [bgcolor=#0000FF]
        RenderText {#text} at (0,0) size 0x0
        RenderBlock (floating) {DIV} at (10,130) size 698x100 [bgcolor=#008000]
        RenderText {#text} at (0,0) size 0x0
      RenderBlock {DIV} at (0,2140) size 720x240 [border: (10px solid #000000)]
        RenderBlock (floating) {DIV} at (10,10) size 698x100 [bgcolor=#0000FF]
        RenderBlock (floating) {DIV} at (10,110) size 698x100 [bgcolor=#008000]
        RenderBR {BR} at (708,10) size 0x19
        RenderText {#text} at (10,210) size 311x19
          text run at (10,210) width 311: "You should see blue and green rectangles above."
      RenderBlock {DIV} at (0,2396) size 720x240 [border: (10px solid #000000)]
        RenderBlock (floating) {DIV} at (10,10) size 698x100 [bgcolor=#0000FF]
        RenderBlock (floating) {DIV} at (10,110) size 698x100 [bgcolor=#008000]
        RenderText {#text} at (10,210) size 311x19
          text run at (10,210) width 311: "You should see blue and green rectangles above."
      RenderBlock {DIV} at (0,2652) size 720x240 [border: (10px solid #000000)]
        RenderBlock (floating) {DIV} at (10,10) size 698x100 [bgcolor=#0000FF]
        RenderText {#text} at (10,110) size 284x19
          text run at (10,110) width 284: "You should see blue above and green below."
        RenderBlock (floating) {DIV} at (10,130) size 698x100 [bgcolor=#008000]
        RenderText {#text} at (0,0) size 0x0
      RenderBlock {DIV} at (0,2908) size 720x240 [border: (10px solid #000000)]
        RenderBlock (floating) {DIV} at (10,10) size 698x100 [bgcolor=#0000FF]
        RenderText {#text} at (10,110) size 284x19
          text run at (10,110) width 284: "You should see blue above and green below."
        RenderBR {BR} at (293,125) size 1x0
        RenderBlock (floating) {DIV} at (10,130) size 698x100 [bgcolor=#008000]
        RenderText {#text} at (0,0) size 0x0
