layer at (0,0) size 800x600
  RenderView at (0,0) size 800x600
layer at (0,0) size 800x600
  RenderSVGRoot {svg} at (0,0) size 800x600
    RenderSVGHiddenContainer {defs} at (0,0) size 0x0
    RenderSVGContainer {g} at (62,30) size 644x340
      RenderSVGContainer {g} at (66,33) size 634x84 [transform={m=((1.00,0.00)(1.00,1.00)) t=(0.00,0.00)}]
        RenderSVGPath {path} at (66,33) size 151x67 [fill={[type=SOLID] [color=#FF0000]}] [data="M 20 20 L 70 20 L 45 60 Z"]
        RenderSVGEllipse {ellipse} at (191,41) size 134x34 [fill={[type=SOLID] [color=#FF0000]}] [cx=120.00] [cy=35.00] [rx=30.00] [ry=10.00]
        RenderSVGText {text} at (160,23) size 80x22 contains 1 chunk(s)
          RenderSVGInlineText {#text} at (0,0) size 80x22
            chunk 1 text run 1 at (160.00,40.00) startOffset 0 endOffset 11 width 79.56: "Filler Text"
        RenderSVGRect {rect} at (450,33) size 134x84 [fill={[type=SOLID] [color=#FF0000]}] [x=250.00] [y=20.00] [width=30.00] [height=50.00]
        RenderSVGPath {line} at (550,33) size 150x84 [fill={[type=SOLID] [color=#FF0000]}] [x1=310.00] [y1=20.00] [x2=350.00] [y2=70.00]
      RenderSVGContainer {g} at (62,30) size 644x90 [transform={m=((1.00,0.00)(1.00,1.00)) t=(0.00,0.00)}]
        RenderSVGPath {path} at (64,32) size 156x70 [stroke={[type=SOLID] [color=#000000]}] [fill={[type=SOLID] [color=#000000]}] [data="M 20 20 L 70 20 L 45 60 Z"]
        RenderSVGEllipse {ellipse} at (190,40) size 137x36 [stroke={[type=SOLID] [color=#000000]}] [fill={[type=SOLID] [color=#000000]}] [cx=120.00] [cy=35.00] [rx=30.00] [ry=10.00]
        RenderSVGText {text} at (160,23) size 80x22 contains 1 chunk(s)
          RenderSVGInlineText {#text} at (0,0) size 80x22
            chunk 1 text run 1 at (160.00,40.00) startOffset 0 endOffset 11 width 79.56: "Filler Text"
        RenderSVGRect {rect} at (448,32) size 137x86 [stroke={[type=SOLID] [color=#000000]}] [fill={[type=SOLID] [color=#000000]}] [x=250.00] [y=20.00] [width=30.00] [height=50.00]
        RenderSVGPath {line} at (544,30) size 162x90 [stroke={[type=SOLID] [color=#000000] [stroke width=5.00]}] [fill={[type=SOLID] [color=#000000]}] [x1=310.00] [y1=20.00] [x2=350.00] [y2=70.00]
      RenderSVGContainer {g} at (62,280) size 644x90 [transform={m=((1.00,0.00)(0.00,1.00)) t=(0.00,150.00)}]
        RenderSVGContainer {g} at (66,283) size 634x84 [transform={m=((1.00,0.00)(1.00,1.00)) t=(0.00,0.00)}]
          RenderSVGPath {path} at (66,283) size 151x67 [fill={[type=SOLID] [color=#FF0000]}] [data="M 20 20 L 70 20 L 45 60 Z"]
          RenderSVGEllipse {ellipse} at (191,291) size 134x34 [fill={[type=SOLID] [color=#FF0000]}] [cx=120.00] [cy=35.00] [rx=30.00] [ry=10.00]
          RenderSVGText {text} at (160,23) size 80x22 contains 1 chunk(s)
            RenderSVGInlineText {#text} at (0,0) size 80x22
              chunk 1 text run 1 at (160.00,40.00) startOffset 0 endOffset 11 width 79.56: "Filler Text"
          RenderSVGRect {rect} at (450,283) size 134x84 [fill={[type=SOLID] [color=#FF0000]}] [x=250.00] [y=20.00] [width=30.00] [height=50.00]
          RenderSVGPath {line} at (550,283) size 150x84 [fill={[type=SOLID] [color=#FF0000]}] [x1=310.00] [y1=20.00] [x2=350.00] [y2=70.00]
        RenderSVGContainer {g} at (62,280) size 644x90 [transform={m=((1.00,0.00)(1.00,1.00)) t=(0.00,0.00)}]
          RenderSVGPath {path} at (64,282) size 156x70 [stroke={[type=SOLID] [color=#000000]}] [fill={[type=SOLID] [color=#000000]}] [data="M 20 20 L 70 20 L 45 60 Z"]
          RenderSVGEllipse {ellipse} at (190,290) size 137x36 [stroke={[type=SOLID] [color=#000000]}] [fill={[type=SOLID] [color=#000000]}] [cx=120.00] [cy=35.00] [rx=30.00] [ry=10.00]
          RenderSVGText {text} at (160,23) size 80x22 contains 1 chunk(s)
            RenderSVGInlineText {#text} at (0,0) size 80x22
              chunk 1 text run 1 at (160.00,40.00) startOffset 0 endOffset 11 width 79.56: "Filler Text"
          RenderSVGRect {rect} at (448,282) size 137x86 [stroke={[type=SOLID] [color=#000000]}] [fill={[type=SOLID] [color=#000000]}] [x=250.00] [y=20.00] [width=30.00] [height=50.00]
          RenderSVGPath {line} at (544,280) size 162x90 [stroke={[type=SOLID] [color=#000000] [stroke width=5.00]}] [fill={[type=SOLID] [color=#000000]}] [x1=310.00] [y1=20.00] [x2=350.00] [y2=70.00]
    RenderSVGContainer {g} at (16,517) size 381x62
      RenderSVGText {text} at (10,310) size 229x38 contains 1 chunk(s)
        RenderSVGInlineText {#text} at (0,0) size 229x37
          chunk 1 text run 1 at (10.00,340.00) startOffset 0 endOffset 16 width 228.03: "$Revision: 1.6 $"
    RenderSVGRect {rect} at (0,0) size 800x600 [stroke={[type=SOLID] [color=#000000]}] [x=1.00] [y=1.00] [width=478.00] [height=358.00]
