layer at (0,0) size 480x360
  RenderView at (0,0) size 480x360
layer at (0,0) size 480x360
  RenderSVGRoot {svg} at (0,0) size 480x360
    RenderSVGHiddenContainer {defs} at (0,0) size 0x0
    RenderSVGContainer {g} at (33,6) size 413x293
      RenderSVGText {text} at (65,6) size 333x13 contains 1 chunk(s)
        RenderSVGInlineText {#text} at (0,0) size 333x12
          chunk 1 text run 1 at (65.00,16.00) startOffset 0 endOffset 6 width 28.68: "Link t"
          chunk 1 text run 2 at (93.51,16.00) startOffset 6 endOffset 8 width 12.67: "es"
          chunk 1 text run 3 at (106.15,16.00) startOffset 8 endOffset 14 width 23.35: "t of t"
          chunk 1 text run 4 at (129.46,16.00) startOffset 14 endOffset 21 width 34.31: "he 'vie"
          chunk 1 text run 5 at (163.66,16.00) startOffset 21 endOffset 44 width 116.34: "w' element and its attr"
          chunk 1 text run 6 at (280.02,16.00) startOffset 44 endOffset 48 width 19.34: "ibut"
          chunk 1 text run 7 at (299.19,16.00) startOffset 48 endOffset 63 width 68.71: "es, 1 of 2, int"
          chunk 1 text run 8 at (367.74,16.00) startOffset 63 endOffset 69 width 30.01: "ernal."
      RenderSVGContainer {g} at (33,28) size 413x271
        RenderSVGContainer {g} at (150,130) size 125x112 [transform={m=((1.00,0.00)(0.00,1.00)) t=(-150.00,75.00)}]
          RenderSVGRect {rect} at (150,130) size 125x85 [fill={[type=SOLID] [color=#AAAAAA]}] [x=300.00] [y=55.00] [width=125.00] [height=85.00]
          RenderSVGContainer {a} at (160,133) size 101x15
            RenderSVGText {text} at (310,58) size 101x15 contains 1 chunk(s)
              RenderSVGInlineText {#text} at (0,0) size 101x15
                chunk 1 text run 1 at (310.00,70.00) startOffset 0 endOffset 4 width 26.46: "Go t"
                chunk 1 text run 2 at (336.29,70.00) startOffset 4 endOffset 7 width 21.78: "o R"
                chunk 1 text run 3 at (357.91,70.00) startOffset 7 endOffset 10 width 18.68: "ect"
                chunk 1 text run 4 at (376.57,70.00) startOffset 10 endOffset 15 width 34.24: "angle"
          RenderSVGContainer {a} at (160,153) size 80x15
            RenderSVGText {text} at (310,78) size 80x15 contains 1 chunk(s)
              RenderSVGInlineText {#text} at (0,0) size 80x14
                chunk 1 text run 1 at (310.00,90.00) startOffset 0 endOffset 4 width 26.46: "Go t"
                chunk 1 text run 2 at (336.29,90.00) startOffset 4 endOffset 13 width 52.91: "o Ellipse"
          RenderSVGContainer {a} at (160,173) size 74x15
            RenderSVGText {text} at (310,98) size 74x15 contains 1 chunk(s)
              RenderSVGInlineText {#text} at (0,0) size 74x14
                chunk 1 text run 1 at (310.00,110.00) startOffset 0 endOffset 4 width 26.46: "Go t"
                chunk 1 text run 2 at (336.29,110.00) startOffset 4 endOffset 9 width 29.55: "o Cir"
                chunk 1 text run 3 at (365.76,110.00) startOffset 9 endOffset 12 width 17.89: "cle"
          RenderSVGContainer {a} at (160,193) size 88x15
            RenderSVGText {text} at (310,118) size 88x15 contains 1 chunk(s)
              RenderSVGInlineText {#text} at (0,0) size 88x14
                chunk 1 text run 1 at (310.00,130.00) startOffset 0 endOffset 4 width 26.46: "Go t"
                chunk 1 text run 2 at (336.29,130.00) startOffset 4 endOffset 7 width 21.01: "o P"
                chunk 1 text run 3 at (356.93,130.00) startOffset 7 endOffset 9 width 10.89: "ol"
                chunk 1 text run 4 at (367.75,130.00) startOffset 9 endOffset 10 width 7.00: "y"
                chunk 1 text run 5 at (374.51,130.00) startOffset 10 endOffset 13 width 23.35: "gon"
          RenderSVGText {text} at (315,142) size 103x13 contains 1 chunk(s)
            RenderSVGInlineText {#text} at (0,0) size 103x12
              chunk 1 text run 1 at (315.00,152.00) startOffset 0 endOffset 4 width 19.99: "Clic"
              chunk 1 text run 2 at (335.08,152.00) startOffset 4 endOffset 20 width 82.32: "k element's line"
          RenderSVGText {text} at (315,154) size 87x13 contains 1 chunk(s)
            RenderSVGInlineText {#text} at (0,0) size 87x12
              chunk 1 text run 1 at (315.00,164.00) startOffset 0 endOffset 1 width 3.34: "t"
              chunk 1 text run 2 at (318.19,164.00) startOffset 1 endOffset 9 width 34.68: "o link t"
              chunk 1 text run 3 at (352.73,164.00) startOffset 9 endOffset 18 width 40.68: "o its vie"
              chunk 1 text run 4 at (393.30,164.00) startOffset 18 endOffset 19 width 8.66: "w"
        RenderSVGRect {rect} at (295,36) size 135x68 [fill={[type=SOLID] [color=#800080]}] [x=295.00] [y=36.00] [width=135.00] [height=68.00]
        RenderSVGText {text} at (331,104) size 63x15 contains 1 chunk(s)
          RenderSVGInlineText {#text} at (0,0) size 63x14
            chunk 1 (middle anchor) text run 1 at (331.08,116.00) startOffset 0 endOffset 1 width 10.11: "R"
            chunk 1 (middle anchor) text run 2 at (341.02,116.00) startOffset 1 endOffset 4 width 18.68: "ect"
            chunk 1 (middle anchor) text run 3 at (359.68,116.00) startOffset 4 endOffset 9 width 34.24: "angle"
        RenderSVGRect {rect} at (291,28) size 143x93 [stroke={[type=SOLID] [color=#000000]}] [x=292.00] [y=29.00] [width=141.00] [height=91.00]
        RenderSVGText {text} at (300,124) size 125x10 contains 1 chunk(s)
          RenderSVGInlineText {#text} at (0,0) size 125x10
            chunk 1 (middle anchor) text run 1 at (300.35,132.00) startOffset 0 endOffset 1 width 7.22: "N"
            chunk 1 (middle anchor) text run 2 at (307.59,132.00) startOffset 1 endOffset 6 width 21.12: "o vie"
            chunk 1 (middle anchor) text run 3 at (328.62,132.00) startOffset 6 endOffset 12 width 24.45: "w attr"
            chunk 1 (middle anchor) text run 4 at (353.08,132.00) startOffset 12 endOffset 16 width 16.12: "ibut"
            chunk 1 (middle anchor) text run 5 at (369.05,132.00) startOffset 16 endOffset 20 width 18.90: "es e"
            chunk 1 (middle anchor) text run 6 at (387.68,132.00) startOffset 20 endOffset 21 width 5.00: "x"
            chunk 1 (middle anchor) text run 7 at (392.45,132.00) startOffset 21 endOffset 24 width 16.12: "cep"
            chunk 1 (middle anchor) text run 8 at (408.53,132.00) startOffset 24 endOffset 29 width 16.12: "t id."
        RenderSVGEllipse {ellipse} at (298,219) size 144x64 [fill={[type=SOLID] [color=#0000FF]}] [cx=370.00] [cy=251.00] [rx=72.00] [ry=32.00]
        RenderSVGText {text} at (349,283) size 42x15 contains 1 chunk(s)
          RenderSVGInlineText {#text} at (0,0) size 42x15
            chunk 1 (middle anchor) text run 1 at (349.39,295.00) startOffset 0 endOffset 7 width 41.23: "Ellipse"
        RenderSVGRect {rect} at (294,215) size 152x84 [stroke={[type=SOLID] [color=#000000]}] [x=295.00] [y=216.00] [width=150.00] [height=82.00]
        RenderSVGText {text} at (315,204) size 116x10 contains 1 chunk(s)
          RenderSVGInlineText {#text} at (0,0) size 116x10
            chunk 1 text run 1 at (315.00,212.00) startOffset 0 endOffset 3 width 12.78: "vie"
            chunk 1 text run 2 at (327.69,212.00) startOffset 3 endOffset 6 width 19.45: "wBo"
            chunk 1 text run 3 at (346.87,212.00) startOffset 6 endOffset 17 width 45.58: "x, should f"
            chunk 1 text run 4 at (392.43,212.00) startOffset 17 endOffset 23 width 15.55: "ill fr"
            chunk 1 text run 5 at (407.93,212.00) startOffset 23 endOffset 27 width 22.23: "ame."
        RenderSVGEllipse {circle} at (49,32) size 72x72 [fill={[type=SOLID] [color=#FFFF00]}] [cx=85.00] [cy=68.00] [r=36.00]
        RenderSVGText {text} at (67,104) size 36x15 contains 1 chunk(s)
          RenderSVGInlineText {#text} at (0,0) size 36x14
            chunk 1 (middle anchor) text run 1 at (67.16,116.00) startOffset 0 endOffset 3 width 17.88: "Cir"
            chunk 1 (middle anchor) text run 2 at (84.95,116.00) startOffset 3 endOffset 6 width 17.89: "cle"
        RenderSVGRect {rect} at (35,28) size 100x93 [stroke={[type=SOLID] [color=#000000]}] [x=36.00] [y=29.00] [width=98.00] [height=91.00]
        RenderSVGText {text} at (33,122) size 104x10 contains 1 chunk(s)
          RenderSVGInlineText {#text} at (0,0) size 103x10
            chunk 1 (middle anchor) text run 1 at (33.83,130.00) startOffset 0 endOffset 3 width 12.78: "vie"
            chunk 1 (middle anchor) text run 2 at (46.52,130.00) startOffset 3 endOffset 6 width 19.45: "wBo"
            chunk 1 (middle anchor) text run 3 at (65.70,130.00) startOffset 6 endOffset 18 width 53.36: "x & non-unif"
            chunk 1 (middle anchor) text run 4 at (118.95,130.00) startOffset 18 endOffset 21 width 17.22: "orm"
        RenderSVGText {text} at (38,131) size 94x10 contains 1 chunk(s)
          RenderSVGInlineText {#text} at (0,0) size 93x10
            chunk 1 (middle anchor) text run 1 at (38.69,139.00) startOffset 0 endOffset 2 width 8.89: "pr"
            chunk 1 (middle anchor) text run 2 at (47.47,139.00) startOffset 2 endOffset 6 width 19.45: "eser"
            chunk 1 (middle anchor) text run 3 at (67.21,139.00) startOffset 6 endOffset 7 width 5.00: "v"
            chunk 1 (middle anchor) text run 4 at (72.00,139.00) startOffset 7 endOffset 15 width 43.35: "eAspectR"
            chunk 1 (middle anchor) text run 5 at (115.19,139.00) startOffset 15 endOffset 19 width 16.12: "atio"
        RenderSVGPath {polygon} at (39,211) size 95x72 [fill={[type=SOLID] [color=#008000]}] [points="87 211 134 238 116 283 57 283 39 238 87 211"]
        RenderSVGText {text} at (60,283) size 50x15 contains 1 chunk(s)
          RenderSVGInlineText {#text} at (0,0) size 50x14
            chunk 1 (middle anchor) text run 1 at (60.05,295.00) startOffset 0 endOffset 1 width 9.34: "P"
            chunk 1 (middle anchor) text run 2 at (69.01,295.00) startOffset 1 endOffset 3 width 10.89: "ol"
            chunk 1 (middle anchor) text run 3 at (79.83,295.00) startOffset 3 endOffset 4 width 7.00: "y"
            chunk 1 (middle anchor) text run 4 at (86.60,295.00) startOffset 4 endOffset 7 width 23.35: "gon"
        RenderSVGRect {rect} at (35,207) size 102x91 [stroke={[type=SOLID] [color=#000000]}] [x=36.00] [y=208.00] [width=100.00] [height=89.00]
        RenderSVGText {text} at (52,187) size 66x10 contains 1 chunk(s)
          RenderSVGInlineText {#text} at (0,0) size 65x10
            chunk 1 (middle anchor) text run 1 at (52.83,195.00) startOffset 0 endOffset 3 width 12.78: "vie"
            chunk 1 (middle anchor) text run 2 at (65.51,195.00) startOffset 3 endOffset 5 width 13.33: "wT"
            chunk 1 (middle anchor) text run 3 at (77.85,195.00) startOffset 5 endOffset 7 width 8.89: "ar"
            chunk 1 (middle anchor) text run 4 at (86.70,195.00) startOffset 7 endOffset 9 width 11.12: "ge"
            chunk 1 (middle anchor) text run 5 at (97.71,195.00) startOffset 9 endOffset 14 width 19.46: "t, no"
        RenderSVGText {text} at (40,196) size 90x10 contains 1 chunk(s)
          RenderSVGInlineText {#text} at (0,0) size 90x10
            chunk 1 (middle anchor) text run 1 at (40.49,204.00) startOffset 0 endOffset 1 width 5.00: "c"
            chunk 1 (middle anchor) text run 2 at (45.51,204.00) startOffset 1 endOffset 9 width 38.36: "hanges t"
            chunk 1 (middle anchor) text run 3 at (83.74,204.00) startOffset 9 endOffset 14 width 21.12: "o vie"
            chunk 1 (middle anchor) text run 4 at (104.77,204.00) startOffset 14 endOffset 18 width 21.67: "wpor"
            chunk 1 (middle anchor) text run 5 at (126.72,204.00) startOffset 18 endOffset 19 width 2.78: "t"
    RenderSVGContainer {g} at (10,314) size 239x33
      RenderSVGText {text} at (10,314) size 239x33 contains 1 chunk(s)
        RenderSVGInlineText {#text} at (0,0) size 239x32
          chunk 1 text run 1 at (10.00,340.00) startOffset 0 endOffset 2 width 40.90: "$R"
          chunk 1 text run 2 at (50.51,340.00) startOffset 2 endOffset 3 width 17.79: "e"
          chunk 1 text run 3 at (67.82,340.00) startOffset 3 endOffset 12 width 117.38: "vision: 1"
          chunk 1 text run 4 at (182.83,340.00) startOffset 12 endOffset 13 width 8.90: "."
          chunk 1 text run 5 at (188.50,340.00) startOffset 13 endOffset 14 width 17.79: "1"
          chunk 1 text run 6 at (204.08,340.00) startOffset 14 endOffset 17 width 44.48: "2 $"
    RenderSVGRect {rect} at (0,0) size 480x360 [stroke={[type=SOLID] [color=#000000]}] [x=1.00] [y=1.00] [width=478.00] [height=358.00]
