layer at (0,0) size 800x1519
  RenderView at (0,0) size 800x600
layer at (0,0) size 800x1519
  RenderBlock {HTML} at (0,0) size 800x1519
    RenderBody {BODY} at (8,8) size 784x1503 [bgcolor=#CCCCCC]
      RenderBlock {P} at (0,0) size 784x20
        RenderText {#text} at (0,0) size 363x19
          text run at (0,0) width 363: "The style declarations which apply to the text below are:"
      RenderBlock {PRE} at (0,36) size 784x238
        RenderText {#text} at (0,0) size 671x238
          text run at (0,0) width 632: "BODY {background-image: url(../resources/bg.gif); background-position: right top;"
          text run at (0,14) width 281: "      background-repeat: no-repeat;}"
          text run at (0,28) width 609: ".one {background-image: url(../resources/bg.gif); background-position: center;"
          text run at (0,42) width 469: "      background-repeat: no-repeat; background-color: aqua;}"
          text run at (0,56) width 617: ".two {background-image: url(../resources/bg.gif); background-position: 50% 50%;"
          text run at (0,70) width 469: "      background-repeat: no-repeat; background-color: aqua;}"
          text run at (0,84) width 671: ".three {background-image: url(../resources/bg.gif); background-position: bottom right;"
          text run at (0,98) width 484: "        background-repeat: no-repeat; background-color: aqua;}"
          text run at (0,112) width 640: ".four {background-image: url(../resources/bg.gif); background-position: 100% 100%;"
          text run at (0,126) width 476: "       background-repeat: no-repeat; background-color: aqua;}"
          text run at (0,140) width 617: ".five {background-image: url(../resources/bg.gif); background-position: 0% 50%;"
          text run at (0,154) width 476: "       background-repeat: no-repeat; background-color: aqua;}"
          text run at (0,168) width 617: ".six {background-image: url(../resources/bg.gif); background-position: 75% 25%;"
          text run at (0,182) width 476: "       background-repeat: no-repeat; background-color: aqua;}"
          text run at (0,196) width 648: ".seven {background-image: url(../resources/bg.gif); background-position: 20px 20px;"
          text run at (0,210) width 476: "       background-repeat: no-repeat; background-color: aqua;}"
          text run at (0,224) width 0: " "
      RenderBlock {HR} at (0,287) size 784x2 [border: (1px inset #000000)]
      RenderBlock {P} at (0,305) size 784x20
        RenderText {#text} at (0,0) size 514x19
          text run at (0,0) width 514: "This document should have a single, small green image in its upper right corner."
      RenderBlock {P} at (0,341) size 784x60 [bgcolor=#00FFFF]
        RenderText {#text} at (0,0) size 784x59
          text run at (0,0) width 753: "This paragraph should have a single, small green image exactly in its center; that is, the center of the image should be"
          text run at (0,20) width 232: "fixed at the center of the paragraph. "
          text run at (231,20) width 553: "The background color will make it easier to determine the edges of the paragraph, and"
          text run at (0,40) width 268: "therefore allow you to calculate its center."
      RenderBlock {P} at (0,417) size 784x60 [bgcolor=#00FFFF]
        RenderText {#text} at (0,0) size 784x59
          text run at (0,0) width 753: "This paragraph should have a single, small green image exactly in its center; that is, the center of the image should be"
          text run at (0,20) width 232: "fixed at the center of the paragraph. "
          text run at (231,20) width 553: "The background color will make it easier to determine the edges of the paragraph, and"
          text run at (0,40) width 268: "therefore allow you to calculate its center."
      RenderBlock {P} at (0,493) size 784x60 [bgcolor=#00FFFF]
        RenderText {#text} at (0,0) size 765x59
          text run at (0,0) width 748: "This paragraph should have a single, small green image in its lower-right corner; that is, the lower right corner of the"
          text run at (0,20) width 418: "image should be fixed at the lower right corner of the paragraph. "
          text run at (417,20) width 348: "The background color will make it easier to determine"
          text run at (0,40) width 445: "the edges of the paragraph, and therefore allow you to see its corners."
      RenderBlock {P} at (0,569) size 784x60 [bgcolor=#00FFFF]
        RenderText {#text} at (0,0) size 765x59
          text run at (0,0) width 748: "This paragraph should have a single, small green image in its lower-right corner; that is, the lower right corner of the"
          text run at (0,20) width 418: "image should be fixed at the lower right corner of the paragraph. "
          text run at (417,20) width 348: "The background color will make it easier to determine"
          text run at (0,40) width 445: "the edges of the paragraph, and therefore allow you to see its corners."
      RenderBlock {P} at (0,645) size 784x60 [bgcolor=#00FFFF]
        RenderText {#text} at (0,0) size 776x59
          text run at (0,0) width 741: "This paragraph should have a single, small green image exactly at the left center; that is, the left center of the image"
          text run at (0,20) width 323: "should be fixed at the left center of the paragraph. "
          text run at (322,20) width 454: "The background color will make it easier to determine the edges of the"
          text run at (0,40) width 367: "paragraph, and therefore allow you to calculate its center."
      RenderBlock {P} at (0,721) size 784x60 [bgcolor=#00FFFF]
        RenderText {#text} at (0,0) size 778x59
          text run at (0,0) width 762: "This paragraph should have a single, small green image positioned 75% of the way across the element, and 25% down."
          text run at (0,20) width 778: "The background color will make it easier to determine the edges of the paragraph, which should help in determining if all"
          text run at (0,40) width 663: "this is so, and the extra text should make the element long enough for this test to be simpler to evaluate."
      RenderBlock {P} at (0,797) size 784x80 [bgcolor=#00FFFF]
        RenderText {#text} at (0,0) size 777x79
          text run at (0,0) width 764: "This paragraph should have a single, small green image positioned 20 pixels down and to the left of the upper left-hand"
          text run at (0,20) width 777: "corner; that is, the upper left-hand corner of the image should be 20 pixels down and to the left of the upper-left corner of"
          text run at (0,40) width 83: "the element. "
          text run at (82,40) width 670: "The background color will make it easier to determine the edges of the paragraph, which should assist in"
          text run at (0,60) width 124: "evaluating this test."
      RenderTable {TABLE} at (0,893) size 784x610 [border: (1px outset #808080)]
        RenderTableSection {TBODY} at (1,1) size 782x608
          RenderTableRow {TR} at (0,0) size 782x28
            RenderTableCell {TD} at (0,0) size 782x28 [bgcolor=#C0C0C0] [border: (1px inset #808080)] [r=0 c=0 rs=1 cs=2]
              RenderInline {STRONG} at (0,0) size 161x19
                RenderText {#text} at (4,4) size 161x19
                  text run at (4,4) width 161: "TABLE Testing Section"
          RenderTableRow {TR} at (0,28) size 782x580
            RenderTableCell {TD} at (0,304) 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 770x580 [border: (1px inset #808080)] [r=1 c=1 rs=1 cs=1]
              RenderBlock {P} at (4,4) size 762x20
                RenderText {#text} at (0,0) size 514x19
                  text run at (0,0) width 514: "This document should have a single, small green image in its upper right corner."
              RenderBlock {P} at (4,40) size 762x60 [bgcolor=#00FFFF]
                RenderText {#text} at (0,0) size 757x59
                  text run at (0,0) width 753: "This paragraph should have a single, small green image exactly in its center; that is, the center of the image should be"
                  text run at (0,20) width 232: "fixed at the center of the paragraph. "
                  text run at (231,20) width 526: "The background color will make it easier to determine the edges of the paragraph,"
                  text run at (0,40) width 295: "and therefore allow you to calculate its center."
              RenderBlock {P} at (4,116) size 762x60 [bgcolor=#00FFFF]
                RenderText {#text} at (0,0) size 757x59
                  text run at (0,0) width 753: "This paragraph should have a single, small green image exactly in its center; that is, the center of the image should be"
                  text run at (0,20) width 232: "fixed at the center of the paragraph. "
                  text run at (231,20) width 526: "The background color will make it easier to determine the edges of the paragraph,"
                  text run at (0,40) width 295: "and therefore allow you to calculate its center."
              RenderBlock {P} at (4,192) size 762x60 [bgcolor=#00FFFF]
                RenderText {#text} at (0,0) size 748x59
                  text run at (0,0) width 748: "This paragraph should have a single, small green image in its lower-right corner; that is, the lower right corner of the"
                  text run at (0,20) width 418: "image should be fixed at the lower right corner of the paragraph. "
                  text run at (417,20) width 280: "The background color will make it easier to"
                  text run at (0,40) width 513: "determine the edges of the paragraph, and therefore allow you to see its corners."
              RenderBlock {P} at (4,268) size 762x60 [bgcolor=#00FFFF]
                RenderText {#text} at (0,0) size 748x59
                  text run at (0,0) width 748: "This paragraph should have a single, small green image in its lower-right corner; that is, the lower right corner of the"
                  text run at (0,20) width 418: "image should be fixed at the lower right corner of the paragraph. "
                  text run at (417,20) width 280: "The background color will make it easier to"
                  text run at (0,40) width 513: "determine the edges of the paragraph, and therefore allow you to see its corners."
              RenderBlock {P} at (4,344) size 762x60 [bgcolor=#00FFFF]
                RenderText {#text} at (0,0) size 752x59
                  text run at (0,0) width 741: "This paragraph should have a single, small green image exactly at the left center; that is, the left center of the image"
                  text run at (0,20) width 323: "should be fixed at the left center of the paragraph. "
                  text run at (322,20) width 430: "The background color will make it easier to determine the edges of"
                  text run at (0,40) width 391: "the paragraph, and therefore allow you to calculate its center."
              RenderBlock {P} at (4,420) size 762x60 [bgcolor=#00FFFF]
                RenderText {#text} at (0,0) size 762x59
                  text run at (0,0) width 762: "This paragraph should have a single, small green image positioned 75% of the way across the element, and 25% down."
                  text run at (0,20) width 758: "The background color will make it easier to determine the edges of the paragraph, which should help in determining if"
                  text run at (0,40) width 683: "all this is so, and the extra text should make the element long enough for this test to be simpler to evaluate."
              RenderBlock {P} at (4,496) size 762x80 [bgcolor=#00FFFF]
                RenderText {#text} at (0,0) size 759x79
                  text run at (0,0) width 733: "This paragraph should have a single, small green image positioned 20 pixels down and to the left of the upper left-"
                  text run at (0,20) width 750: "hand corner; that is, the upper left-hand corner of the image should be 20 pixels down and to the left of the upper-left"
                  text run at (0,40) width 145: "corner of the element. "
                  text run at (144,40) width 615: "The background color will make it easier to determine the edges of the paragraph, which should"
                  text run at (0,60) width 180: "assist in evaluating this test."
