layer at (0,0) size 785x1030
  RenderView at (0,0) size 785x600
layer at (0,0) size 785x1030
  RenderBlock {HTML} at (0,0) size 785x1030
    RenderBody {BODY} at (8,8) size 769x1014 [bgcolor=#CCCCCC]
      RenderBlock {P} at (0,0) size 769x18
        RenderInline (generated) at (0,0) size 10x18 [color=#800000]
          RenderText at (0,0) size 10x18
            text run at (0,0) width 10: "T"
        RenderText {#text} at (10,0) size 345x18
          text run at (10,0) width 345: "he style declarations which apply to the text below are:"
      RenderBlock {PRE} at (0,34) size 769x105
        RenderText {#text} at (0,0) size 368x105
          text run at (0,0) width 224: "P:first-line {color: green;}"
          text run at (0,15) width 248: "P:first-letter {color: maroon;}"
          text run at (0,30) width 272: ".two:first-line {font-size: 200%;}"
          text run at (0,45) width 288: ".two:first-letter {font-size: 350%;}"
          text run at (0,60) width 312: "P.three:first-letter {font-size: 350%;}"
          text run at (0,75) width 368: "P.three:first-line {font-variant: small-caps;}"
          text run at (0,90) width 0: " "
      RenderBlock {HR} at (0,152) size 769x2 [border: (1px inset #000000)]
      RenderBlock {P} at (0,170) size 769x54
        RenderInline (generated) at (0,0) size 10x18 [color=#800000]
          RenderText at (0,0) size 10x18
            text run at (0,0) width 10: "T"
        RenderText {#text} at (10,0) size 764x54
          text run at (10,0) width 717: "he first letter of this paragraph, and only that one, should be maroon (dark red), while the entire first line should be"
          text run at (0,18) width 43: "green. "
          text run at (43,18) width 511: "If this precise combination does not occur, then the user agent has failed this test. "
          text run at (554,18) width 210: "Remember that in order to ensure"
          text run at (0,36) width 449: "a complete test, the paragraph must be displayed on more than one line."
      RenderBlock {P} at (0,240) size 769x183
        RenderInline (generated) at (0,0) size 68x129 [color=#800000]
          RenderText at (0,0) size 68x129
            text run at (0,0) width 68: "T"
        RenderText {#text} at (68,72) size 751x111
          text run at (68,72) width 634: "he first letter of this paragraph, and only that one,"
          text run at (0,129) width 736: "should be 350% bigger than the rest of the first line of this paragraph and maroon (dark red), while the entire first line"
          text run at (0,147) width 299: "should be 200% bigger than normal and green. "
          text run at (299,147) width 452: "If this precise combination does not occur, then the user agent has failed"
          text run at (0,165) width 55: "this test. "
          text run at (55,165) width 663: "Remember that in order to ensure a complete test, the paragraph must be displayed on more than one line."
      RenderBlock {P} at (0,439) size 769x118
        RenderInline (generated) at (0,0) size 76x64 [color=#800000]
          RenderText at (0,0) size 76x64
            text run at (0,0) width 76: "\"W"
        RenderText {#text} at (76,36) size 769x82
          text run at (76,36) width 337: "e should check for quotation support,\" it was said. "
          text run at (413,36) width 356: "The first two characters in this paragraph-- a double-"
          text run at (0,64) width 683: "quote mark and a capital 'W'-- should be 350% bigger than the rest of the paragraph, and maroon (dark red). "
          text run at (683,64) width 81: "Note that the"
          text run at (0,82) width 765: "inclusion of both the quotation mark and the 'W' in the first-letter style is not required under CSS1, but it is recommended."
          text run at (0,100) width 450: "In addition, the entire first line should be in a small-caps font and green."
      RenderTable {TABLE} at (0,573) size 769x441 [border: (1px outset #808080)]
        RenderTableSection {TBODY} at (1,1) size 767x439
          RenderTableRow {TR} at (0,0) size 767x26
            RenderTableCell {TD} at (0,0) size 767x26 [bgcolor=#C0C0C0] [border: (1px inset #808080)] [r=0 c=0 rs=1 cs=2]
              RenderInline {STRONG} at (0,0) size 163x18
                RenderText {#text} at (4,4) size 163x18
                  text run at (4,4) width 163: "TABLE Testing Section"
          RenderTableRow {TR} at (0,26) size 767x413
            RenderTableCell {TD} at (0,219) size 12x27 [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,5) width 4: " "
            RenderTableCell {TD} at (12,26) size 755x413 [border: (1px inset #808080)] [r=1 c=1 rs=1 cs=1]
              RenderBlock {P} at (4,4) size 747x54
                RenderInline (generated) at (0,0) size 10x18 [color=#800000]
                  RenderText at (0,0) size 10x18
                    text run at (0,0) width 10: "T"
                RenderText {#text} at (10,0) size 727x54
                  text run at (10,0) width 717: "he first letter of this paragraph, and only that one, should be maroon (dark red), while the entire first line should be"
                  text run at (0,18) width 43: "green. "
                  text run at (43,18) width 511: "If this precise combination does not occur, then the user agent has failed this test. "
                  text run at (554,18) width 165: "Remember that in order to"
                  text run at (0,36) width 494: "ensure a complete test, the paragraph must be displayed on more than one line."
              RenderBlock {P} at (4,74) size 747x201
                RenderInline (generated) at (0,0) size 68x129 [color=#800000]
                  RenderText at (0,0) size 68x129
                    text run at (0,0) width 68: "T"
                RenderText {#text} at (68,72) size 736x129
                  text run at (68,72) width 634: "he first letter of this paragraph, and only that one,"
                  text run at (0,129) width 736: "should be 350% bigger than the rest of the first line of this paragraph and maroon (dark red), while the entire first line"
                  text run at (0,147) width 299: "should be 200% bigger than normal and green. "
                  text run at (299,147) width 413: "If this precise combination does not occur, then the user agent has"
                  text run at (0,165) width 94: "failed this test. "
                  text run at (94,165) width 632: "Remember that in order to ensure a complete test, the paragraph must be displayed on more than one"
                  text run at (0,183) width 27: "line."
              RenderBlock {P} at (4,291) size 747x118
                RenderInline (generated) at (0,0) size 76x64 [color=#800000]
                  RenderText at (0,0) size 76x64
                    text run at (0,0) width 76: "\"W"
                RenderText {#text} at (76,36) size 739x82
                  text run at (76,36) width 337: "e should check for quotation support,\" it was said. "
                  text run at (413,36) width 302: "The first two characters in this paragraph-- a"
                  text run at (0,64) width 727: "double-quote mark and a capital 'W'-- should be 350% bigger than the rest of the paragraph, and maroon (dark red)."
                  text run at (0,82) width 739: "Note that the inclusion of both the quotation mark and the 'W' in the first-letter style is not required under CSS1, but it"
                  text run at (0,100) width 111: "is recommended. "
                  text run at (111,100) width 450: "In addition, the entire first line should be in a small-caps font and green."
