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 (24,24) size 752x468
      RenderSVGRect {rect} at (24,24) size 752x468 [stroke={[type=SOLID] [color=#000000] [stroke width=0.25]}] [x=15.00] [y=15.00] [width=450.00] [height=280.00]
      RenderSVGContainer {g} at (163,26) size 474x69
        RenderSVGText {text} at (97,15) size 286x19 contains 1 chunk(s)
          RenderSVGInlineText {#text} at (0,0) size 285x18
            chunk 1 (middle anchor) text run 1 at (97.83,30.00) startOffset 0 endOffset 42 width 284.33: "Testing pointer-events and rendering order"
        RenderSVGText {text} at (144,32) size 192x13 contains 1 chunk(s)
          RenderSVGInlineText {#text} at (0,0) size 191x12
            chunk 1 (middle anchor) text run 1 at (144.80,42.00) startOffset 0 endOffset 39 width 190.40: "Rectangles should turn RED on mouseover"
        RenderSVGText {text} at (116,44) size 248x13 contains 1 chunk(s)
          RenderSVGInlineText {#text} at (0,0) size 248x12
            chunk 1 (middle anchor) text run 1 at (116.25,54.00) startOffset 0 endOffset 56 width 247.49: "Ovals should turn RED if Pointer-Events are set to \"ALL\""
      RenderSVGContainer {g} at (183,105) size 568x375
        RenderSVGContainer {g} at (583,105) size 168x74 [transform={m=((1.00,0.00)(0.00,1.00)) t=(0.00,10.00)}]
          RenderSVGText {text} at (350,77) size 100x11 contains 1 chunk(s)
            RenderSVGInlineText {#text} at (0,0) size 99x10
              chunk 1 (middle anchor) text run 1 at (350.75,85.00) startOffset 0 endOffset 26 width 98.51: "Change \"Pointer-Events\" of"
          RenderSVGText {text} at (349,87) size 102x11 contains 1 chunk(s)
            RenderSVGInlineText {#text} at (0,0) size 101x10
              chunk 1 (middle anchor) text run 1 at (349.91,95.00) startOffset 0 endOffset 26 width 100.18: "ovals from \"ALL\" to \"NONE\""
          RenderSVGEllipse {circle} at (622,105) size 39x40 [stroke={[type=SOLID] [color=#000000] [stroke width=3.00]}] [fill={[type=SOLID] [color=#33CC55]}] [cx=385.00] [cy=65.00] [r=10.00]
          RenderSVGEllipse {circle} at (674,107) size 36x36 [stroke={[type=SOLID] [color=#000000]}] [fill={[type=SOLID] [color=#FF3355]}] [cx=415.00] [cy=65.00] [r=10.00]
        RenderSVGContainer {g} at (183,455) size 434x25
          RenderSVGText {text} at (112,273) size 256x15 contains 1 chunk(s)
            RenderSVGInlineText {#text} at (0,0) size 256x15
              chunk 1 (middle anchor) text run 1 at (112.42,285.00) startOffset 0 endOffset 48 width 255.17: "Purple ovals have \"Pointer-Events\" set to \"ALL\"."
          RenderSVGText {text} at (110,273) size 260x15 contains 1 chunk(s)
            RenderSVGInlineText {#text} at (0,0) size 260x15
              chunk 1 (middle anchor) text run 1 at (110.02,285.00) startOffset 0 endOffset 47 width 259.97: "Purple ovals have Pointer-Events set to \"NONE\"."
      RenderSVGContainer {g} at (136,112) size 490x335 [transform={m=((0.75,0.00)(0.00,0.50)) t=(75.00,42.50)}]
        RenderSVGEllipse {circle} at (199,278) size 252x169 [stroke={[type=SOLID] [color=#000000]}] [fill={[type=SOLID] [color=#5533FF]}] [cx=160.00] [cy=350.00] [r=100.00]
        RenderSVGRect {rect} at (136,112) size 378x251 [stroke={[type=SOLID] [color=#000000]}] [fill={[type=SOLID] [color=#3355FF]}] [x=10.00] [y=50.00] [width=300.00] [height=300.00]
        RenderSVGEllipse {circle} at (399,287) size 227x151 [stroke={[type=SOLID] [color=#000000]}] [fill={[type=SOLID] [color=#7755FF]}] [cx=310.00] [cy=350.00] [r=90.00]
        RenderSVGRect {rect} at (199,153) size 252x169 [stroke={[type=SOLID] [color=#000000]}] [fill={[type=SOLID] [color=#5577FF]}] [x=60.00] [y=100.00] [width=200.00] [height=200.00]
        RenderSVGEllipse {circle} at (418,174) size 189x127 [stroke={[type=SOLID] [color=#000000]}] [fill={[type=SOLID] [color=#9977FF]}] [cx=310.00] [cy=200.00] [r=75.00]
        RenderSVGRect {rect} at (261,195) size 128x85 [stroke={[type=SOLID] [color=#000000]}] [fill={[type=SOLID] [color=#7799FF]}] [x=110.00] [y=150.00] [width=100.00] [height=100.00]
        RenderSVGContainer {g} at (137,112) size 376x251
          RenderSVGRect {rect} at (137,112) size 376x251 [stroke={[type=SOLID] [color=#000000] [stroke width=0.50] [dash array={4.00, 4.00}]}] [x=10.00] [y=50.00] [width=300.00] [height=300.00]
          RenderSVGRect {rect} at (199,153) size 252x169 [stroke={[type=SOLID] [color=#000000] [stroke width=0.50] [dash array={4.00, 4.00}]}] [x=60.00] [y=100.00] [width=200.00] [height=200.00]
          RenderSVGRect {rect} at (262,195) size 126x85 [stroke={[type=SOLID] [color=#000000] [stroke width=0.50] [dash array={4.00, 4.00}]}] [x=110.00] [y=150.00] [width=100.00] [height=100.00]
    RenderSVGContainer {g} at (16,516) size 385x64
      RenderSVGText {text} at (10,310) size 231x38 contains 1 chunk(s)
        RenderSVGInlineText {#text} at (0,0) size 231x38
          chunk 1 text run 1 at (10.00,340.00) startOffset 0 endOffset 16 width 230.19: "$Revision: 1.3 $"
    RenderSVGRect {rect} at (0,0) size 800x600 [stroke={[type=SOLID] [color=#000000]}] [x=1.00] [y=1.00] [width=478.00] [height=358.00]
