layer at (0,0) size 785x655
  RenderView at (0,0) size 785x600
layer at (0,0) size 785x655
  RenderBlock {HTML} at (0,0) size 785x655
    RenderBody {BODY} at (8,8) size 769x639 [bgcolor=#CCCCCC]
      RenderBlock {P} at (0,0) size 769x18
        RenderText {#text} at (0,0) size 355x17
          text run at (0,0) width 355: "The style declarations which apply to the text below are:"
      RenderBlock {PRE} at (0,34) size 769x60
        RenderText {#text} at (0,0) size 360x60
          text run at (0,0) width 224: "P:first-line {color: green;}"
          text run at (224,0) width 0: " "
          text run at (0,15) width 272: ".two:first-line {font-size: 200%;}"
          text run at (272,15) width 0: " "
          text run at (0,30) width 360: ".three:first-line {font-variant: small-caps;}"
          text run at (360,30) width 0: " "
          text run at (0,45) width 0: " "
      RenderBlock {HR} at (0,107) size 769x2 [border: (1px inset #000000)]
      RenderBlock {P} at (0,125) size 769x54
        RenderText {#text} at (0,0) size 761x53
          text run at (0,0) width 423: "The first line of this paragraph, and only that one, should be green. "
          text run at (423,0) width 320: "If this precise combination does not occur, then the"
          text run at (0,18) width 187: "user agent has failed this test. "
          text run at (187,18) width 574: "Remember that in order to ensure a complete test, the paragraph must be displayed on more"
          text run at (0,36) width 85: "than one line."
      RenderBlock {P} at (0,195) size 769x73
        RenderText {#text} at (0,0) size 767x72
          text run at (0,0) width 767: "The first line of this paragraph, and only that one, should be"
          text run at (0,37) width 216: "a larger font size as well as green. "
          text run at (215,37) width 508: "If this precise combination does not occur, then the user agent has failed this test."
          text run at (0,55) 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,284) size 769x72
        RenderText {#text} at (0,0) size 762x53
          text run at (0,0) width 604: "The first line of this paragraph, and only that one, should be displayed in small-caps style. "
          text run at (603,0) width 155: "Thus, if the first line is"
          text run at (0,18) width 762: "not in small-caps style, OR if the entire paragraph turns out in small-caps, then the user agent has failed this test (although"
          text run at (0,36) width 165: "the problem might be that "
        RenderInline {CODE} at (0,0) size 80x15
          RenderText {#text} at (165,39) size 80x15
            text run at (165,39) width 80: "small-caps"
        RenderText {#text} at (245,36) size 754x35
          text run at (245,36) width 225: " is not supported by your browser). "
          text run at (470,36) width 284: "This is extra text included for the purposes of"
          text run at (0,54) width 395: "making the paragraph long enough to have more than one line."
      RenderTable {TABLE} at (0,372) size 769x267 [border: (1px outset #808080)]
        RenderTableSection {TBODY} at (1,1) size 767x265
          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 161x17
                RenderText {#text} at (4,4) size 161x17
                  text run at (4,4) width 161: "TABLE Testing Section"
          RenderTableRow {TR} at (0,26) size 767x239
            RenderTableCell {TD} at (0,132) size 12x27 [bgcolor=#C0C0C0] [border: (1px inset #808080)] [r=1 c=0 rs=1 cs=1]
              RenderText {#text} at (4,4) size 4x18
                text run at (4,5) width 4: " "
            RenderTableCell {TD} at (12,26) size 755x239 [border: (1px inset #808080)] [r=1 c=1 rs=1 cs=1]
              RenderBlock {P} at (4,4) size 747x54
                RenderText {#text} at (0,0) size 743x53
                  text run at (0,0) width 423: "The first line of this paragraph, and only that one, should be green. "
                  text run at (423,0) width 320: "If this precise combination does not occur, then the"
                  text run at (0,18) width 187: "user agent has failed this test. "
                  text run at (187,18) width 538: "Remember that in order to ensure a complete test, the paragraph must be displayed on"
                  text run at (0,36) width 121: "more than one line."
              RenderBlock {P} at (4,74) size 747x73
                RenderText {#text} at (0,0) size 742x72
                  text run at (0,0) width 729: "The first line of this paragraph, and only that one, should"
                  text run at (0,37) width 235: "be a larger font size as well as green. "
                  text run at (234,37) width 508: "If this precise combination does not occur, then the user agent has failed this test."
                  text run at (0,55) width 663: "Remember that in order to ensure a complete test, the paragraph must be displayed on more than one line."
              RenderBlock {P} at (4,163) size 747x72
                RenderText {#text} at (0,0) size 744x53
                  text run at (0,0) width 604: "The first line of this paragraph, and only that one, should be displayed in small-caps style. "
                  text run at (603,0) width 141: "Thus, if the first line"
                  text run at (0,18) width 712: "is not in small-caps style, OR if the entire paragraph turns out in small-caps, then the user agent has failed this test"
                  text run at (0,36) width 229: "(although the problem might be that "
                RenderInline {CODE} at (0,0) size 80x15
                  RenderText {#text} at (229,39) size 80x15
                    text run at (229,39) width 80: "small-caps"
                RenderText {#text} at (309,36) size 741x35
                  text run at (309,36) width 225: " is not supported by your browser). "
                  text run at (534,36) width 207: "This is extra text included for the"
                  text run at (0,54) width 472: "purposes of making the paragraph long enough to have more than one line."
