layer at (0,0) size 785x1143
  RenderView at (0,0) size 785x600
layer at (0,0) size 785x1143
  RenderBlock {HTML} at (0,0) size 785x1143
    RenderBody {BODY} at (8,8) size 769x1127 [bgcolor=#CCCCCC]
      RenderBlock {P} at (0,0) size 749x20
        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 769x112
        RenderText {#text} at (0,0) size 352x112
          text run at (0,0) width 184: "P {margin-right: 20px;}"
          text run at (184,0) width 0: " "
          text run at (0,16) width 320: ".one {border-right: purple double 10px;}"
          text run at (320,16) width 0: " "
          text run at (0,32) width 312: ".two {border-right: purple thin solid;}"
          text run at (312,32) width 0: " "
          text run at (0,48) width 344: ".threea {border-right: black medium solid;}"
          text run at (344,48) width 0: " "
          text run at (0,64) width 352: ".threeb {border-right: purple medium solid;}"
          text run at (352,64) width 0: " "
          text run at (0,80) width 336: ".threec {border-right: blue medium solid;}"
          text run at (336,80) width 0: " "
          text run at (0,96) width 280: "TD {border-right: green 2px solid;}"
          text run at (280,96) width 0: " "
      RenderBlock {HR} at (0,161) size 769x2 [border: (1px inset #000000)]
      RenderBlock {P} at (0,179) size 749x40
        RenderText {#text} at (0,0) size 728x39
          text run at (0,0) width 612: "Note that all table cells on this page should have a two-pixel solid green border along their right sides. "
          text run at (612,0) width 116: "This border applies"
          text run at (0,20) width 299: "only to the cells, not the rows which contain them."
      RenderBlock {P} at (0,235) size 749x20 [border: none (10px double #800080) none]
        RenderText {#text} at (0,0) size 404x19
          text run at (0,0) width 404: "This paragraph should have a purple, double, 10-pixel right border."
      RenderBlock {P} at (0,271) size 749x20 [border: none (1px solid #800080) none]
        RenderText {#text} at (0,0) size 322x19
          text run at (0,0) width 322: "This paragraph should have a thin purple right border."
      RenderTable {TABLE} at (0,307) size 769x115 [border: (1px outset #808080)]
        RenderTableSection {TBODY} at (1,1) size 767x113
          RenderTableRow {TR} at (0,5) size 767x44
            RenderTableCell {TD} at (5,5) size 758x44 [border: (1px inset #808080) (2px solid #008000) (1px inset #808080)] [r=0 c=0 rs=1 cs=2]
              RenderText {#text} at (2,2) size 751x39
                text run at (2,2) width 414: "Every cell in this table should have a 2-pixel solid green right border. "
                text run at (416,2) width 337: "This is also true of the table-testing section in the second"
                text run at (2,22) width 121: "half of the test page."
          RenderTableRow {TR} at (0,54) size 767x54
            RenderTableCell {TD} at (5,69) size 192x24 [border: (1px inset #808080) (2px solid #008000) (1px inset #808080)] [r=1 c=0 rs=1 cs=1]
              RenderText {#text} at (2,2) size 50x19
                text run at (2,2) width 50: "Cell one"
            RenderTableCell {TD} at (201,54) size 562x54 [border: (1px inset #808080) (2px solid #008000) (1px inset #808080)] [r=1 c=1 rs=1 cs=1]
              RenderBlock (anonymous) at (2,2) size 556x20
                RenderText {#text} at (0,0) size 51x19
                  text run at (0,0) width 51: "Cell two"
              RenderTable {TABLE} at (2,22) size 156x30 [border: (1px outset #808080)]
                RenderTableSection {TBODY} at (1,1) size 154x28
                  RenderTableRow {TR} at (0,2) size 154x24
                    RenderTableCell {TD} at (2,2) size 150x24 [border: (1px inset #808080) (2px solid #008000) (1px inset #808080)] [r=0 c=0 rs=1 cs=1]
                      RenderText {#text} at (2,2) size 145x19
                        text run at (2,2) width 145: "Nested single-cell table!"
      RenderBlock {UL} at (0,438) size 769x180
        RenderListItem {LI} at (40,0) size 729x80 [border: none (3px solid #000000) none]
          RenderBlock (anonymous) at (0,0) size 726x20
            RenderListMarker at (-18,0) size 7x19: bullet
            RenderText {#text} at (0,0) size 110x19
              text run at (0,0) width 110: "This is a list item..."
          RenderBlock {UL} at (0,20) size 726x60
            RenderListItem {LI} at (40,0) size 686x20
              RenderListMarker at (-18,0) size 7x19: white bullet
              RenderText {#text} at (0,0) size 70x19
                text run at (0,0) width 70: "...and this..."
            RenderListItem {LI} at (40,20) size 686x20
              RenderListMarker at (-18,0) size 7x19: white bullet
              RenderText {#text} at (0,0) size 111x19
                text run at (0,0) width 111: "...is a second list..."
            RenderListItem {LI} at (40,40) size 686x20
              RenderListMarker at (-18,0) size 7x19: white bullet
              RenderText {#text} at (0,0) size 165x19
                text run at (0,0) width 165: "...nested within the list item."
        RenderListItem {LI} at (40,80) size 729x20 [border: none (3px solid #800080) none]
          RenderListMarker at (-18,0) size 7x19: bullet
          RenderText {#text} at (0,0) size 149x19
            text run at (0,0) width 149: "This is a second list item."
        RenderListItem {LI} at (40,100) size 729x80 [border: none (3px solid #0000FF) none]
          RenderListMarker at (-18,0) size 7x19: bullet
          RenderText {#text} at (0,0) size 715x79
            text run at (0,0) width 666: "Each list item in this 'parent' list should have a medium-width border along its right side, in each of three colors. "
            text run at (666,0) width 49: "The first"
            text run at (0,20) width 696: "item's border should travel the entire height the nested list (to end near the baseline of the line \"...nested within the list"
            text run at (0,40) width 428: "item.\"), even though the nested list does not have any border styles set. "
            text run at (428,40) width 280: "The borders should line up together at the right"
            text run at (0,60) width 474: "edge of the document's body, as each list element has a default width of 100%."
      RenderTable {TABLE} at (0,634) size 769x493 [border: (1px outset #808080)]
        RenderTableSection {TBODY} at (1,1) size 767x491
          RenderTableRow {TR} at (0,0) size 767x28
            RenderTableCell {TD} at (0,0) size 767x28 [bgcolor=#C0C0C0] [border: (1px inset #808080) (2px solid #008000) (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 767x463
            RenderTableCell {TD} at (0,245) size 13x29 [bgcolor=#C0C0C0] [border: (1px inset #808080) (2px solid #008000) (1px inset #808080)] [r=1 c=0 rs=1 cs=1]
              RenderText {#text} at (4,3) size 4x21
                text run at (4,4) width 4: " "
            RenderTableCell {TD} at (13,28) size 754x463 [border: (1px inset #808080) (2px solid #008000) (1px inset #808080)] [r=1 c=1 rs=1 cs=1]
              RenderBlock {P} at (4,4) size 725x40
                RenderText {#text} at (0,0) size 682x39
                  text run at (0,0) width 612: "Note that all table cells on this page should have a two-pixel solid green border along their right sides. "
                  text run at (612,0) width 70: "This border"
                  text run at (0,20) width 345: "applies only to the cells, not the rows which contain them."
              RenderBlock {P} at (4,60) size 725x20 [border: none (10px double #800080) none]
                RenderText {#text} at (0,0) size 404x19
                  text run at (0,0) width 404: "This paragraph should have a purple, double, 10-pixel right border."
              RenderBlock {P} at (4,96) size 725x20 [border: none (1px solid #800080) none]
                RenderText {#text} at (0,0) size 322x19
                  text run at (0,0) width 322: "This paragraph should have a thin purple right border."
              RenderTable {TABLE} at (4,132) size 745x115 [border: (1px outset #808080)]
                RenderTableSection {TBODY} at (1,1) size 743x113
                  RenderTableRow {TR} at (0,5) size 743x44
                    RenderTableCell {TD} at (5,5) size 734x44 [border: (1px inset #808080) (2px solid #008000) (1px inset #808080)] [r=0 c=0 rs=1 cs=2]
                      RenderText {#text} at (2,2) size 704x39
                        text run at (2,2) width 414: "Every cell in this table should have a 2-pixel solid green right border. "
                        text run at (416,2) width 290: "This is also true of the table-testing section in the"
                        text run at (2,22) width 168: "second half of the test page."
                  RenderTableRow {TR} at (0,54) size 743x54
                    RenderTableCell {TD} at (5,69) size 186x24 [border: (1px inset #808080) (2px solid #008000) (1px inset #808080)] [r=1 c=0 rs=1 cs=1]
                      RenderText {#text} at (2,2) size 50x19
                        text run at (2,2) width 50: "Cell one"
                    RenderTableCell {TD} at (195,54) size 544x54 [border: (1px inset #808080) (2px solid #008000) (1px inset #808080)] [r=1 c=1 rs=1 cs=1]
                      RenderBlock (anonymous) at (2,2) size 538x20
                        RenderText {#text} at (0,0) size 51x19
                          text run at (0,0) width 51: "Cell two"
                      RenderTable {TABLE} at (2,22) size 156x30 [border: (1px outset #808080)]
                        RenderTableSection {TBODY} at (1,1) size 154x28
                          RenderTableRow {TR} at (0,2) size 154x24
                            RenderTableCell {TD} at (2,2) size 150x24 [border: (1px inset #808080) (2px solid #008000) (1px inset #808080)] [r=0 c=0 rs=1 cs=1]
                              RenderText {#text} at (2,2) size 145x19
                                text run at (2,2) width 145: "Nested single-cell table!"
              RenderBlock {UL} at (4,263) size 745x180
                RenderListItem {LI} at (40,0) size 705x80 [border: none (3px solid #000000) none]
                  RenderBlock (anonymous) at (0,0) size 702x20
                    RenderListMarker at (-18,0) size 7x19: bullet
                    RenderText {#text} at (0,0) size 110x19
                      text run at (0,0) width 110: "This is a list item..."
                  RenderBlock {UL} at (0,20) size 702x60
                    RenderListItem {LI} at (40,0) size 662x20
                      RenderListMarker at (-18,0) size 7x19: white bullet
                      RenderText {#text} at (0,0) size 70x19
                        text run at (0,0) width 70: "...and this..."
                    RenderListItem {LI} at (40,20) size 662x20
                      RenderListMarker at (-18,0) size 7x19: white bullet
                      RenderText {#text} at (0,0) size 111x19
                        text run at (0,0) width 111: "...is a second list..."
                    RenderListItem {LI} at (40,40) size 662x20
                      RenderListMarker at (-18,0) size 7x19: white bullet
                      RenderText {#text} at (0,0) size 165x19
                        text run at (0,0) width 165: "...nested within the list item."
                RenderListItem {LI} at (40,80) size 705x20 [border: none (3px solid #800080) none]
                  RenderListMarker at (-18,0) size 7x19: bullet
                  RenderText {#text} at (0,0) size 149x19
                    text run at (0,0) width 149: "This is a second list item."
                RenderListItem {LI} at (40,100) size 705x80 [border: none (3px solid #0000FF) none]
                  RenderListMarker at (-18,0) size 7x19: bullet
                  RenderText {#text} at (0,0) size 702x79
                    text run at (0,0) width 666: "Each list item in this 'parent' list should have a medium-width border along its right side, in each of three colors. "
                    text run at (666,0) width 23: "The"
                    text run at (0,20) width 702: "first item's border should travel the entire height the nested list (to end near the baseline of the line \"...nested within the"
                    text run at (0,40) width 448: "list item.\"), even though the nested list does not have any border styles set. "
                    text run at (448,40) width 250: "The borders should line up together at the"
                    text run at (0,60) width 504: "right edge of the document's body, as each list element has a default width of 100%."
