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 (114,19) size 565x403
      RenderSVGText {text} at (195,11) size 90x24 contains 1 chunk(s)
        RenderSVGInlineText {#text} at (0,0) size 89x23
          chunk 1 (middle anchor) text run 1 at (195.98,30.00) startOffset 0 endOffset 9 width 88.05: "repeatDur"
      RenderSVGContainer {g} at (114,154) size 565x268 [transform={m=((1.00,0.00)(0.00,1.00)) t=(130.00,80.00)}]
        RenderSVGContainer {g} at (114,187) size 303x235 [transform={m=((1.00,0.00)(0.00,1.00)) t=(120.00,45.00)}]
          RenderSVGText {text} at (-182,-13) size 182x17 contains 1 chunk(s)
            RenderSVGInlineText {#text} at (0,0) size 182x16
              chunk 1 (end anchor) text run 1 at (-181.43,0.00) startOffset 0 endOffset 28 width 181.43: "dur=5s repeatDur unspecified"
          RenderSVGText {text} at (-131,12) size 131x17 contains 1 chunk(s)
            RenderSVGInlineText {#text} at (0,0) size 131x16
              chunk 1 (end anchor) text run 1 at (-130.41,25.00) startOffset 0 endOffset 19 width 130.41: "dur=1s repeatDur=5s"
          RenderSVGText {text} at (-142,37) size 142x17 contains 1 chunk(s)
            RenderSVGInlineText {#text} at (0,0) size 142x16
              chunk 1 (end anchor) text run 1 at (-141.92,50.00) startOffset 0 endOffset 21 width 141.92: "dur=0.5s repeatDur=5s"
          RenderSVGText {text} at (-172,62) size 172x17 contains 1 chunk(s)
            RenderSVGInlineText {#text} at (0,0) size 172x16
              chunk 1 (end anchor) text run 1 at (-171.08,75.00) startOffset 0 endOffset 27 width 171.08: "dur=1s repeatDur=indefinite"
          RenderSVGText {text} at (-46,77) size 46x17 contains 1 chunk(s)
            RenderSVGInlineText {#text} at (0,0) size 46x16
              chunk 1 (end anchor) text run 1 at (-45.66,90.00) startOffset 0 endOffset 6 width 45.66: "end=5s"
          RenderSVGText {text} at (-142,112) size 142x17 contains 1 chunk(s)
            RenderSVGInlineText {#text} at (0,0) size 142x16
              chunk 1 (end anchor) text run 1 at (-141.92,125.00) startOffset 0 endOffset 21 width 141.92: "dur=0.7s repeatDur=5s"
        RenderSVGContainer {g} at (494,154) size 185x27 [transform={m=((1.00,0.00)(0.00,1.00)) t=(180.00,25.00)}]
          RenderSVGText {text} at (-14,-13) size 28x17 contains 1 chunk(s)
            RenderSVGInlineText {#text} at (0,0) size 27x16
              chunk 1 (middle anchor) text run 1 at (-13.23,0.00) startOffset 0 endOffset 4 width 26.47: "> 5s"
          RenderSVGText {text} at (63,-13) size 34x17 contains 1 chunk(s)
            RenderSVGInlineText {#text} at (0,0) size 34x16
              chunk 1 (middle anchor) text run 1 at (63.13,0.00) startOffset 0 endOffset 5 width 33.75: "0s-5s"
        RenderSVGContainer {g} at (505,189) size 156x231 [transform={m=((1.00,0.00)(0.00,1.00)) t=(180.00,40.00)}]
          RenderSVGHiddenContainer {defs} at (0,0) size 0x0
            RenderSVGRect {rect} at (505,189) size 23x22 [stroke={[type=SOLID] [color=#000000]}] [fill={[type=SOLID] [color=#CCCCCC]}] [x=-6.00] [y=-6.00] [width=12.00] [height=12.00]
          RenderSVGContainer {g} at (505,189) size 156x22
            RenderSVGContainer {use} at (505,189) size 23x22
              RenderSVGRect {rect} at (505,189) size 23x22 [stroke={[type=SOLID] [color=#000000]}] [fill={[type=SOLID] [color=#CCCCCC]}] [x=-6.00] [y=-6.00] [width=12.00] [height=12.00]
            RenderSVGContainer {use} at (639,189) size 22x22 [transform={m=((1.00,0.00)(0.00,1.00)) t=(80.00,0.00)}]
              RenderSVGRect {rect} at (639,189) size 22x22 [stroke={[type=SOLID] [color=#000000]}] [fill={[type=SOLID] [color=#CCCCCC]}] [x=-6.00] [y=-6.00] [width=12.00] [height=12.00]
            RenderSVGRect {rect} at (639,189) size 22x22 [stroke={[type=SOLID] [color=#000000]}] [fill={[type=SOLID] [color=#CC0066]}] [x=74.00] [y=-6.00] [width=12.00] [height=12.00]
          RenderSVGContainer {g} at (505,230) size 156x23 [transform={m=((1.00,0.00)(0.00,1.00)) t=(0.00,25.00)}]
            RenderSVGContainer {use} at (505,230) size 23x23
              RenderSVGRect {rect} at (505,230) size 23x23 [stroke={[type=SOLID] [color=#000000]}] [fill={[type=SOLID] [color=#CCCCCC]}] [x=-6.00] [y=-6.00] [width=12.00] [height=12.00]
            RenderSVGContainer {use} at (639,230) size 22x23 [transform={m=((1.00,0.00)(0.00,1.00)) t=(80.00,0.00)}]
              RenderSVGRect {rect} at (639,230) size 22x23 [stroke={[type=SOLID] [color=#000000]}] [fill={[type=SOLID] [color=#CCCCCC]}] [x=-6.00] [y=-6.00] [width=12.00] [height=12.00]
            RenderSVGRect {rect} at (639,230) size 22x23 [stroke={[type=SOLID] [color=#000000]}] [fill={[type=SOLID] [color=#CC0066]}] [x=74.00] [y=-6.00] [width=12.00] [height=12.00]
          RenderSVGContainer {g} at (505,272) size 156x23 [transform={m=((1.00,0.00)(0.00,1.00)) t=(0.00,50.00)}]
            RenderSVGContainer {use} at (505,272) size 23x23
              RenderSVGRect {rect} at (505,272) size 23x23 [stroke={[type=SOLID] [color=#000000]}] [fill={[type=SOLID] [color=#CCCCCC]}] [x=-6.00] [y=-6.00] [width=12.00] [height=12.00]
            RenderSVGContainer {use} at (639,272) size 22x23 [transform={m=((1.00,0.00)(0.00,1.00)) t=(80.00,0.00)}]
              RenderSVGRect {rect} at (639,272) size 22x23 [stroke={[type=SOLID] [color=#000000]}] [fill={[type=SOLID] [color=#CCCCCC]}] [x=-6.00] [y=-6.00] [width=12.00] [height=12.00]
            RenderSVGRect {rect} at (639,272) size 22x23 [stroke={[type=SOLID] [color=#000000]}] [fill={[type=SOLID] [color=#CC0066]}] [x=74.00] [y=-6.00] [width=12.00] [height=12.00]
          RenderSVGContainer {g} at (505,314) size 156x22 [transform={m=((1.00,0.00)(0.00,1.00)) t=(0.00,75.00)}]
            RenderSVGContainer {use} at (505,314) size 23x22
              RenderSVGRect {rect} at (505,314) size 23x22 [stroke={[type=SOLID] [color=#000000]}] [fill={[type=SOLID] [color=#CCCCCC]}] [x=-6.00] [y=-6.00] [width=12.00] [height=12.00]
            RenderSVGContainer {use} at (639,314) size 22x22 [transform={m=((1.00,0.00)(0.00,1.00)) t=(80.00,0.00)}]
              RenderSVGRect {rect} at (639,314) size 22x22 [stroke={[type=SOLID] [color=#000000]}] [fill={[type=SOLID] [color=#CCCCCC]}] [x=-6.00] [y=-6.00] [width=12.00] [height=12.00]
            RenderSVGRect {rect} at (639,314) size 22x22 [stroke={[type=SOLID] [color=#000000]}] [fill={[type=SOLID] [color=#CC0066]}] [x=74.00] [y=-6.00] [width=12.00] [height=12.00]
          RenderSVGContainer {g} at (505,397) size 156x23 [transform={m=((1.00,0.00)(0.00,1.00)) t=(0.00,125.00)}]
            RenderSVGContainer {use} at (505,397) size 23x23
              RenderSVGRect {rect} at (505,397) size 23x23 [stroke={[type=SOLID] [color=#000000]}] [fill={[type=SOLID] [color=#CCCCCC]}] [x=-6.00] [y=-6.00] [width=12.00] [height=12.00]
            RenderSVGContainer {use} at (639,397) size 22x23 [transform={m=((1.00,0.00)(0.00,1.00)) t=(80.00,0.00)}]
              RenderSVGRect {rect} at (639,397) size 22x23 [stroke={[type=SOLID] [color=#000000]}] [fill={[type=SOLID] [color=#CCCCCC]}] [x=-6.00] [y=-6.00] [width=12.00] [height=12.00]
            RenderSVGRect {rect} at (639,397) size 22x23 [stroke={[type=SOLID] [color=#000000]}] [fill={[type=SOLID] [color=#CC0066]}] [x=74.00] [y=-6.00] [width=12.00] [height=12.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]
