layer at (0,0) size 785x1005
  RenderView at (0,0) size 785x600
layer at (0,0) size 785x1005
  RenderBlock {HTML} at (0,0) size 785x1005
    RenderBody {BODY} at (8,8) size 769x989 [bgcolor=#CCCCCC]
      RenderBlock {P} at (0,0) size 769x20
        RenderText {#text} at (0,0) size 337x19
          text run at (0,0) width 337: "The style declarations which apply to the text below are:"
      RenderBlock {PRE} at (0,36) size 769x64
        RenderText {#text} at (0,0) size 168x64
          text run at (0,0) width 152: ".one {clear: left;}"
          text run at (152,0) width 0: " "
          text run at (0,16) width 160: ".two {clear: right;}"
          text run at (160,16) width 0: " "
          text run at (0,32) width 168: ".three {clear: both;}"
          text run at (168,32) width 0: " "
          text run at (0,48) width 160: ".four {clear: none;}"
          text run at (160,48) width 0: " "
      RenderBlock {HR} at (0,113) size 769x2 [border: (1px inset #000000)]
      RenderImage {IMG} at (0,123) size 15x50
      RenderBlock {P} at (0,131) size 769x20
        RenderText {#text} at (18,0) size 563x19
          text run at (18,0) width 563: "This text should be flowing past a tall orange rectangle on the left side of the browser window."
      RenderBlock (anonymous) at (0,167) size 769x20
        RenderBR {BR} at (18,0) size 0x19
        RenderImage {IMG} at (0,20) size 15x50
      RenderBlock {P} at (0,237) size 769x20
        RenderText {#text} at (0,0) size 620x19
          text run at (0,0) width 620: "This paragraph should appear below the tall orange rectangle above and to the left, and not flow past it."
      RenderBlock (anonymous) at (0,273) size 769x20
        RenderBR {BR} at (0,0) size 0x19
        RenderImage {IMG} at (754,20) size 15x50
      RenderBlock {P} at (0,343) size 769x20
        RenderText {#text} at (0,0) size 628x19
          text run at (0,0) width 628: "This paragraph should appear below the tall orange rectangle above and to the right, and not flow past it."
      RenderBlock (anonymous) at (0,379) size 769x20
        RenderBR {BR} at (0,0) size 0x19
        RenderImage {IMG} at (0,20) size 15x50
        RenderImage {IMG} at (754,20) size 15x50
      RenderBlock {P} at (0,449) size 769x20
        RenderText {#text} at (0,0) size 574x19
          text run at (0,0) width 574: "This paragraph should appear below the two tall orange rectangles, and not flow between them."
      RenderImage {IMG} at (0,485) size 15x50
      RenderImage {IMG} at (754,485) size 15x50
      RenderBlock {P} at (0,485) size 769x20
        RenderText {#text} at (18,0) size 372x19
          text run at (18,0) width 372: "This paragraph should be between both tall orange rectangles."
      RenderBlock (anonymous) at (0,521) size 769x20
        RenderBR {BR} at (18,0) size 0x19
      RenderTable {TABLE} at (0,541) size 650x448 [border: (1px outset #808080)]
        RenderTableSection {TBODY} at (1,1) size 648x446
          RenderTableRow {TR} at (0,0) size 648x28
            RenderTableCell {TD} at (0,0) size 648x28 [bgcolor=#C0C0C0] [border: (1px inset #808080)] [r=0 c=0 rs=1 cs=2]
              RenderInline {STRONG} at (0,0) size 159x19
                RenderText {#text} at (4,4) size 159x19
                  text run at (4,4) width 159: "TABLE Testing Section"
          RenderTableRow {TR} at (0,28) size 648x418
            RenderTableCell {TD} at (0,223) size 12x28 [bgcolor=#C0C0C0] [border: (1px inset #808080)] [r=1 c=0 rs=1 cs=1]
              RenderText {#text} at (4,4) size 4x19
                text run at (4,4) width 4: " "
            RenderTableCell {TD} at (12,28) size 636x418 [border: (1px inset #808080)] [r=1 c=1 rs=1 cs=1]
              RenderImage {IMG} at (4,4) size 15x50
              RenderBlock {P} at (4,4) size 628x20
                RenderText {#text} at (18,0) size 563x19
                  text run at (18,0) width 563: "This text should be flowing past a tall orange rectangle on the left side of the browser window."
              RenderBlock (anonymous) at (4,40) size 628x20
                RenderBR {BR} at (18,0) size 0x19
                RenderImage {IMG} at (0,20) size 15x50
              RenderBlock {P} at (4,110) size 628x20
                RenderText {#text} at (0,0) size 620x19
                  text run at (0,0) width 620: "This paragraph should appear below the tall orange rectangle above and to the left, and not flow past it."
              RenderBlock (anonymous) at (4,146) size 628x20
                RenderBR {BR} at (0,0) size 0x19
                RenderImage {IMG} at (613,20) size 15x50
              RenderBlock {P} at (4,216) size 628x20
                RenderText {#text} at (0,0) size 628x19
                  text run at (0,0) width 628: "This paragraph should appear below the tall orange rectangle above and to the right, and not flow past it."
              RenderBlock (anonymous) at (4,252) size 628x20
                RenderBR {BR} at (0,0) size 0x19
                RenderImage {IMG} at (0,20) size 15x50
                RenderImage {IMG} at (613,20) size 15x50
              RenderBlock {P} at (4,322) size 628x20
                RenderText {#text} at (0,0) size 574x19
                  text run at (0,0) width 574: "This paragraph should appear below the two tall orange rectangles, and not flow between them."
              RenderImage {IMG} at (4,358) size 15x50
              RenderImage {IMG} at (617,358) size 15x50
              RenderBlock {P} at (4,358) size 628x20
                RenderText {#text} at (18,0) size 372x19
                  text run at (18,0) width 372: "This paragraph should be between both tall orange rectangles."
              RenderBlock (anonymous) at (4,394) size 628x20
                RenderBR {BR} at (18,0) size 0x19
