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 (0,0) size 800x522
      RenderSVGText {text} at (65,4) size 334x15 contains 1 chunk(s)
        RenderSVGInlineText {#text} at (0,0) size 334x14
          chunk 1 text run 1 at (65.00,16.00) startOffset 0 endOffset 69 width 333.43: "Link test of the 'view' element and its attributes, 1 of 2, internal."
      RenderSVGContainer {g} at (0,0) size 800x522
        RenderSVGContainer {g} at (0,0) size 0x0 [transform={m=((1.00,0.00)(0.00,1.00)) t=(-150.00,75.00)}]
          RenderSVGRect {rect} at (0,0) size 0x0 [fill={[type=SOLID] [color=#AAAAAA]}] [x=300.00] [y=55.00] [width=125.00] [height=85.00]
          RenderSVGContainer {a} at (0,0) size 0x0
            RenderSVGText {text} at (310,57) size 102x17 contains 1 chunk(s)
              RenderSVGInlineText {#text} at (0,0) size 102x17
                chunk 1 text run 1 at (310.00,70.00) startOffset 0 endOffset 15 width 101.62: "Go to Rectangle"
          RenderSVGContainer {a} at (0,0) size 0x0
            RenderSVGText {text} at (310,77) size 80x17 contains 1 chunk(s)
              RenderSVGInlineText {#text} at (0,0) size 80x17
                chunk 1 text run 1 at (310.00,90.00) startOffset 0 endOffset 13 width 79.73: "Go to Ellipse"
          RenderSVGContainer {a} at (0,0) size 0x0
            RenderSVGText {text} at (310,97) size 75x17 contains 1 chunk(s)
              RenderSVGInlineText {#text} at (0,0) size 75x17
                chunk 1 text run 1 at (310.00,110.00) startOffset 0 endOffset 12 width 74.24: "Go to Circle"
          RenderSVGContainer {a} at (0,0) size 0x0
            RenderSVGText {text} at (310,117) size 90x17 contains 1 chunk(s)
              RenderSVGInlineText {#text} at (0,0) size 90x17
                chunk 1 text run 1 at (310.00,130.00) startOffset 0 endOffset 13 width 89.12: "Go to Polygon"
          RenderSVGText {text} at (315,140) size 103x15 contains 1 chunk(s)
            RenderSVGInlineText {#text} at (0,0) size 103x14
              chunk 1 text run 1 at (315.00,152.00) startOffset 0 endOffset 20 width 102.33: "Click element's line"
          RenderSVGText {text} at (315,152) size 88x15 contains 1 chunk(s)
            RenderSVGInlineText {#text} at (0,0) size 88x14
              chunk 1 text run 1 at (315.00,164.00) startOffset 0 endOffset 19 width 87.36: "to link to its view"
        RenderSVGRect {rect} at (0,0) size 0x0 [fill={[type=SOLID] [color=#800080]}] [x=295.00] [y=36.00] [width=135.00] [height=68.00]
        RenderSVGText {text} at (330,103) size 65x17 contains 1 chunk(s)
          RenderSVGInlineText {#text} at (0,0) size 64x17
            chunk 1 (middle anchor) text run 1 at (330.84,116.00) startOffset 0 endOffset 9 width 63.32: "Rectangle"
        RenderSVGRect {rect} at (0,0) size 0x0 [stroke={[type=SOLID] [color=#000000]}] [x=292.00] [y=29.00] [width=141.00] [height=91.00]
        RenderSVGText {text} at (300,122) size 125x13 contains 1 chunk(s)
          RenderSVGInlineText {#text} at (0,0) size 125x12
            chunk 1 (middle anchor) text run 1 at (300.36,132.00) startOffset 0 endOffset 29 width 124.28: "No view attributes except id."
        RenderSVGEllipse {ellipse} at (16,97) size 768x342 [fill={[type=SOLID] [color=#0000FF]}] [cx=370.00] [cy=251.00] [rx=72.00] [ry=32.00]
        RenderSVGText {text} at (349,282) size 42x17 contains 1 chunk(s)
          RenderSVGInlineText {#text} at (0,0) size 42x17
            chunk 1 (middle anchor) text run 1 at (349.29,295.00) startOffset 0 endOffset 7 width 41.43: "Ellipse"
        RenderSVGRect {rect} at (0,78) size 800x444 [stroke={[type=SOLID] [color=#000000]}] [x=295.00] [y=216.00] [width=150.00] [height=82.00]
        RenderSVGText {text} at (315,202) size 115x13 contains 1 chunk(s)
          RenderSVGInlineText {#text} at (0,0) size 115x12
            chunk 1 text run 1 at (315.00,212.00) startOffset 0 endOffset 27 width 114.88: "viewBox, should fill frame."
        RenderSVGEllipse {circle} at (0,0) size 0x0 [fill={[type=SOLID] [color=#FFFF00]}] [cx=85.00] [cy=68.00] [r=36.00]
        RenderSVGText {text} at (67,103) size 36x17 contains 1 chunk(s)
          RenderSVGInlineText {#text} at (0,0) size 36x17
            chunk 1 (middle anchor) text run 1 at (67.03,116.00) startOffset 0 endOffset 6 width 35.94: "Circle"
        RenderSVGRect {rect} at (0,0) size 0x0 [stroke={[type=SOLID] [color=#000000]}] [x=36.00] [y=29.00] [width=98.00] [height=91.00]
        RenderSVGText {text} at (33,120) size 104x13 contains 1 chunk(s)
          RenderSVGInlineText {#text} at (0,0) size 103x12
            chunk 1 (middle anchor) text run 1 at (33.91,130.00) startOffset 0 endOffset 21 width 102.18: "viewBox & non-uniform"
        RenderSVGText {text} at (38,129) size 94x13 contains 1 chunk(s)
          RenderSVGInlineText {#text} at (0,0) size 93x12
            chunk 1 (middle anchor) text run 1 at (38.88,139.00) startOffset 0 endOffset 19 width 92.24: "preserveAspectRatio"
        RenderSVGPath {polygon} at (0,0) size 0x0 [fill={[type=SOLID] [color=#008000]}] [points="87 211 134 238 116 283 57 283 39 238 87 211"]
        RenderSVGText {text} at (59,282) size 52x17 contains 1 chunk(s)
          RenderSVGInlineText {#text} at (0,0) size 51x17
            chunk 1 (middle anchor) text run 1 at (59.59,295.00) startOffset 0 endOffset 7 width 50.82: "Polygon"
        RenderSVGRect {rect} at (0,0) size 0x0 [stroke={[type=SOLID] [color=#000000]}] [x=36.00] [y=208.00] [width=100.00] [height=89.00]
        RenderSVGText {text} at (52,185) size 66x13 contains 1 chunk(s)
          RenderSVGInlineText {#text} at (0,0) size 66x12
            chunk 1 (middle anchor) text run 1 at (52.41,195.00) startOffset 0 endOffset 14 width 65.18: "viewTarget, no"
        RenderSVGText {text} at (40,194) size 90x13 contains 1 chunk(s)
          RenderSVGInlineText {#text} at (0,0) size 89x12
            chunk 1 (middle anchor) text run 1 at (40.81,204.00) startOffset 0 endOffset 19 width 88.38: "changes to viewport"
    RenderSVGContainer {g} at (0,0) size 0x0
      RenderSVGText {text} at (10,310) size 248x38 contains 1 chunk(s)
        RenderSVGInlineText {#text} at (0,0) size 248x37
          chunk 1 text run 1 at (10.00,340.00) startOffset 0 endOffset 17 width 247.75: "$Revision: 1.12 $"
    RenderSVGRect {rect} at (0,0) size 800x600 [stroke={[type=SOLID] [color=#000000]}] [x=1.00] [y=1.00] [width=478.00] [height=358.00]
