Blocked access to external URL http://example.org/image.jpg
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 (10,49) size 415x230
      RenderSVGHiddenContainer {defs} at (0,0) size 0x0
        RenderSVGRect {rect} at (0,0) size 1x1 [fill={[type=SOLID] [color=#000000]}] [x=0.00] [y=0.00] [width=1.00] [height=1.00]
        RenderSVGGradientStop {stop} [offset=0.00] [color=#000000]
        RenderSVGImage {image} at (0,0) size 1x1
        RenderSVGResourceRadialGradient {radialGradient} [id="g"] [gradientUnits=objectBoundingBox] [center=(0.50,0.50)] [focal=(0.50,0.50)] [radius=0.50] [focalRadius=0.00]
        RenderSVGText {text}
        RenderSVGText {text} at (0,-15) size 74x19 contains 1 chunk(s)
          RenderSVGInlineText {#text} at (0,0) size 74x19
            chunk 1 text run 1 at (0.00,0.00) startOffset 0 endOffset 8 width 73.03: "sometext"
        RenderSVGResourceMarker {marker} [id="m"] [markerUnits=strokeWidth] [ref at (0,0)] [angle=0.00]
        RenderSVGViewportContainer {svg} at (0,0) size 0x0
        RenderSVGResourceFilter {filter} [id="f"] [filterUnits=objectBoundingBox] [primitiveUnits=userSpaceOnUse]
        RenderSVGPath {polygon} at (0,0) size 0x0 [fill={[type=SOLID] [color=#000000]}] [points=""]
      RenderSVGContainer {g} at (10,49) size 142x10 [transform={m=((1.00,0.00)(0.00,1.00)) t=(10.00,50.00)}]
        RenderSVGRect {rect} at (10,51) size 5x5 [fill={[type=SOLID] [color=#00FF00]}] [x=0.00] [y=1.00] [width=5.00] [height=5.00]
        RenderSVGText {text} at (10,-1) size 132x10 contains 1 chunk(s)
          RenderSVGInlineText {#text} at (0,0) size 132x10
            chunk 1 text run 1 at (10.00,7.00) startOffset 0 endOffset 30 width 131.07: "r.x.baseVal.value == 0: PASSED"
      RenderSVGContainer {g} at (10,59) size 291x10 [transform={m=((1.00,0.00)(0.00,1.00)) t=(10.00,60.00)}]
        RenderSVGRect {rect} at (10,61) size 5x5 [fill={[type=SOLID] [color=#00FF00]}] [x=0.00] [y=1.00] [width=5.00] [height=5.00]
        RenderSVGText {text} at (10,-1) size 281x10 contains 1 chunk(s)
          RenderSVGInlineText {#text} at (0,0) size 281x10
            chunk 1 text run 1 at (10.00,7.00) startOffset 0 endOffset 57 width 280.59: "r.x.baseVal.unitType == 1 (SVG_LENGTHTYPE_NUMBER): PASSED"
      RenderSVGContainer {g} at (10,69) size 235x10 [transform={m=((1.00,0.00)(0.00,1.00)) t=(10.00,70.00)}]
        RenderSVGRect {rect} at (10,71) size 5x5 [fill={[type=SOLID] [color=#00FF00]}] [x=0.00] [y=1.00] [width=5.00] [height=5.00]
        RenderSVGText {text} at (10,-1) size 225x10 contains 1 chunk(s)
          RenderSVGInlineText {#text} at (0,0) size 225x10
            chunk 1 text run 1 at (10.00,7.00) startOffset 0 endOffset 52 width 224.11: "v.width.baseVal.valueInSpecifiedUnits == 100: PASSED"
      RenderSVGContainer {g} at (10,79) size 332x10 [transform={m=((1.00,0.00)(0.00,1.00)) t=(10.00,80.00)}]
        RenderSVGRect {rect} at (10,81) size 5x5 [fill={[type=SOLID] [color=#00FF00]}] [x=0.00] [y=1.00] [width=5.00] [height=5.00]
        RenderSVGText {text} at (10,-1) size 322x10 contains 1 chunk(s)
          RenderSVGInlineText {#text} at (0,0) size 322x10
            chunk 1 text run 1 at (10.00,7.00) startOffset 0 endOffset 65 width 321.61: "v.width.baseVal.unitType == 2 (SVG_LENGTHTYPE_PERCENTAGE): PASSED"
      RenderSVGContainer {g} at (10,89) size 289x10 [transform={m=((1.00,0.00)(0.00,1.00)) t=(10.00,90.00)}]
        RenderSVGRect {rect} at (10,91) size 5x5 [fill={[type=SOLID] [color=#00FF00]}] [x=0.00] [y=1.00] [width=5.00] [height=5.00]
        RenderSVGText {text} at (10,-1) size 279x10 contains 1 chunk(s)
          RenderSVGInlineText {#text} at (0,0) size 279x10
            chunk 1 text run 1 at (10.00,7.00) startOffset 0 endOffset 65 width 278.15: "tt.textLength.baseVal.value == tt.getComputedTextLength(): PASSED"
      RenderSVGContainer {g} at (10,99) size 137x10 [transform={m=((1.00,0.00)(0.00,1.00)) t=(10.00,100.00)}]
        RenderSVGRect {rect} at (10,101) size 5x5 [fill={[type=SOLID] [color=#00FF00]}] [x=0.00] [y=1.00] [width=5.00] [height=5.00]
        RenderSVGText {text} at (10,-1) size 127x10 contains 1 chunk(s)
          RenderSVGInlineText {#text} at (0,0) size 127x10
            chunk 1 text run 1 at (10.00,7.00) startOffset 0 endOffset 29 width 126.07: "s.offset.baseVal == 0: PASSED"
      RenderSVGContainer {g} at (10,109) size 187x10 [transform={m=((1.00,0.00)(0.00,1.00)) t=(10.00,110.00)}]
        RenderSVGRect {rect} at (10,111) size 5x5 [fill={[type=SOLID] [color=#00FF00]}] [x=0.00] [y=1.00] [width=5.00] [height=5.00]
        RenderSVGText {text} at (10,-1) size 177x10 contains 1 chunk(s)
          RenderSVGInlineText {#text} at (0,0) size 177x10
            chunk 1 text run 1 at (10.00,7.00) startOffset 0 endOffset 40 width 176.09: "c.preserveAlpha.baseVal == false: PASSED"
      RenderSVGContainer {g} at (10,119) size 160x10 [transform={m=((1.00,0.00)(0.00,1.00)) t=(10.00,120.00)}]
        RenderSVGRect {rect} at (10,121) size 5x5 [fill={[type=SOLID] [color=#00FF00]}] [x=0.00] [y=1.00] [width=5.00] [height=5.00]
        RenderSVGText {text} at (10,-1) size 150x10 contains 1 chunk(s)
          RenderSVGInlineText {#text} at (0,0) size 150x10
            chunk 1 text run 1 at (10.00,7.00) startOffset 0 endOffset 33 width 149.95: "c.className.baseVal == \"\": PASSED"
      RenderSVGContainer {g} at (10,129) size 129x10 [transform={m=((1.00,0.00)(0.00,1.00)) t=(10.00,130.00)}]
        RenderSVGRect {rect} at (10,131) size 5x5 [fill={[type=SOLID] [color=#00FF00]}] [x=0.00] [y=1.00] [width=5.00] [height=5.00]
        RenderSVGText {text} at (10,-1) size 119x10 contains 1 chunk(s)
          RenderSVGInlineText {#text} at (0,0) size 119x10
            chunk 1 text run 1 at (10.00,7.00) startOffset 0 endOffset 28 width 118.45: "i.href.baseVal == \"\": PASSED"
      RenderSVGContainer {g} at (10,139) size 210x10 [transform={m=((1.00,0.00)(0.00,1.00)) t=(10.00,140.00)}]
        RenderSVGRect {rect} at (10,141) size 5x5 [fill={[type=SOLID] [color=#00FF00]}] [x=0.00] [y=1.00] [width=5.00] [height=5.00]
        RenderSVGText {text} at (10,-1) size 200x10 contains 1 chunk(s)
          RenderSVGInlineText {#text} at (0,0) size 200x10
            chunk 1 text run 1 at (10.00,7.00) startOffset 0 endOffset 45 width 199.58: "i.requiredFeatures.numberOfItems == 0: PASSED"
      RenderSVGContainer {g} at (10,149) size 228x10 [transform={m=((1.00,0.00)(0.00,1.00)) t=(10.00,150.00)}]
        RenderSVGRect {rect} at (10,151) size 5x5 [fill={[type=SOLID] [color=#00FF00]}] [x=0.00] [y=1.00] [width=5.00] [height=5.00]
        RenderSVGText {text} at (10,-1) size 218x10 contains 1 chunk(s)
          RenderSVGInlineText {#text} at (0,0) size 218x10
            chunk 1 text run 1 at (10.00,7.00) startOffset 0 endOffset 49 width 217.58: "c.kernelMatrix.baseVal.numberOfItems == 0: PASSED"
      RenderSVGContainer {g} at (10,159) size 182x10 [transform={m=((1.00,0.00)(0.00,1.00)) t=(10.00,160.00)}]
        RenderSVGRect {rect} at (10,161) size 5x5 [fill={[type=SOLID] [color=#00FF00]}] [x=0.00] [y=1.00] [width=5.00] [height=5.00]
        RenderSVGText {text} at (10,-1) size 172x10 contains 1 chunk(s)
          RenderSVGInlineText {#text} at (0,0) size 172x10
            chunk 1 text run 1 at (10.00,7.00) startOffset 0 endOffset 38 width 171.08: "t.x.baseVal.numberOfItems == 0: PASSED"
      RenderSVGContainer {g} at (10,169) size 169x10 [transform={m=((1.00,0.00)(0.00,1.00)) t=(10.00,170.00)}]
        RenderSVGRect {rect} at (10,171) size 5x5 [fill={[type=SOLID] [color=#00FF00]}] [x=0.00] [y=1.00] [width=5.00] [height=5.00]
        RenderSVGText {text} at (10,-1) size 159x10 contains 1 chunk(s)
          RenderSVGInlineText {#text} at (0,0) size 159x10
            chunk 1 text run 1 at (10.00,7.00) startOffset 0 endOffset 35 width 158.08: "p.points.numberOfItems == 0: PASSED"
      RenderSVGContainer {g} at (10,179) size 358x10 [transform={m=((1.00,0.00)(0.00,1.00)) t=(10.00,180.00)}]
        RenderSVGRect {rect} at (10,181) size 5x5 [fill={[type=SOLID] [color=#00FF00]}] [x=0.00] [y=1.00] [width=5.00] [height=5.00]
        RenderSVGText {text} at (10,-1) size 348x10 contains 1 chunk(s)
          RenderSVGInlineText {#text} at (0,0) size 348x10
            chunk 1 text run 1 at (10.00,7.00) startOffset 0 endOffset 70 width 347.62: "g.gradientUnits.baseVal == 2 (SVG_UNIT_TYPE_OBJECTBOUNDINGBOX): PASSED"
      RenderSVGContainer {g} at (10,189) size 142x10 [transform={m=((1.00,0.00)(0.00,1.00)) t=(10.00,190.00)}]
        RenderSVGRect {rect} at (10,191) size 5x5 [fill={[type=SOLID] [color=#00FF00]}] [x=0.00] [y=1.00] [width=5.00] [height=5.00]
        RenderSVGText {text} at (10,-1) size 132x10 contains 1 chunk(s)
          RenderSVGInlineText {#text} at (0,0) size 132x10
            chunk 1 text run 1 at (10.00,7.00) startOffset 0 endOffset 29 width 131.07: "c.orderX.baseVal == 0: PASSED"
      RenderSVGContainer {g} at (10,199) size 187x10 [transform={m=((1.00,0.00)(0.00,1.00)) t=(10.00,200.00)}]
        RenderSVGRect {rect} at (10,201) size 5x5 [fill={[type=SOLID] [color=#00FF00]}] [x=0.00] [y=1.00] [width=5.00] [height=5.00]
        RenderSVGText {text} at (10,-1) size 177x10 contains 1 chunk(s)
          RenderSVGInlineText {#text} at (0,0) size 177x10
            chunk 1 text run 1 at (10.00,7.00) startOffset 0 endOffset 40 width 176.59: "m.orientAngle.baseVal.value == 0: PASSED"
      RenderSVGContainer {g} at (10,209) size 352x10 [transform={m=((1.00,0.00)(0.00,1.00)) t=(10.00,210.00)}]
        RenderSVGRect {rect} at (10,211) size 5x5 [fill={[type=SOLID] [color=#00FF00]}] [x=0.00] [y=1.00] [width=5.00] [height=5.00]
        RenderSVGText {text} at (10,-1) size 342x10 contains 1 chunk(s)
          RenderSVGInlineText {#text} at (0,0) size 342x10
            chunk 1 text run 1 at (10.00,7.00) startOffset 0 endOffset 71 width 341.63: "m.orientAngle.baseVal.unitType == 1 (SVG_ANGLETYPE_UNSPECIFIED): PASSED"
      RenderSVGContainer {g} at (10,219) size 218x10 [transform={m=((1.00,0.00)(0.00,1.00)) t=(10.00,220.00)}]
        RenderSVGRect {rect} at (10,221) size 5x5 [fill={[type=SOLID] [color=#00FF00]}] [x=0.00] [y=1.00] [width=5.00] [height=5.00]
        RenderSVGText {text} at (10,-1) size 208x10 contains 1 chunk(s)
          RenderSVGInlineText {#text} at (0,0) size 208x10
            chunk 1 text run 1 at (10.00,7.00) startOffset 0 endOffset 49 width 207.10: "v.viewBox.baseVal.[x,y,width,height] == 0: PASSED"
      RenderSVGContainer {g} at (10,229) size 215x10 [transform={m=((1.00,0.00)(0.00,1.00)) t=(10.00,230.00)}]
        RenderSVGRect {rect} at (10,231) size 5x5 [fill={[type=SOLID] [color=#00FF00]}] [x=0.00] [y=1.00] [width=5.00] [height=5.00]
        RenderSVGText {text} at (10,-1) size 205x10 contains 1 chunk(s)
          RenderSVGInlineText {#text} at (0,0) size 205x10
            chunk 1 text run 1 at (10.00,7.00) startOffset 0 endOffset 46 width 204.59: "t.transform.baseVal.numberOfItems == 0: PASSED"
      RenderSVGContainer {g} at (10,239) size 415x10 [transform={m=((1.00,0.00)(0.00,1.00)) t=(10.00,240.00)}]
        RenderSVGRect {rect} at (10,241) size 5x5 [fill={[type=SOLID] [color=#00FF00]}] [x=0.00] [y=1.00] [width=5.00] [height=5.00]
        RenderSVGText {text} at (10,-1) size 405x10 contains 1 chunk(s)
          RenderSVGInlineText {#text} at (0,0) size 405x10
            chunk 1 text run 1 at (10.00,7.00) startOffset 0 endOffset 83 width 404.14: "v.preserveAspectRatio.baseVal.align == 6 (SVG_PRESERVEASPECTRATIO_XMIDYMID): PASSED"
      RenderSVGContainer {g} at (10,249) size 377x10 [transform={m=((1.00,0.00)(0.00,1.00)) t=(10.00,250.00)}]
        RenderSVGRect {rect} at (10,251) size 5x5 [fill={[type=SOLID] [color=#00FF00]}] [x=0.00] [y=1.00] [width=5.00] [height=5.00]
        RenderSVGText {text} at (10,-1) size 367x10 contains 1 chunk(s)
          RenderSVGInlineText {#text} at (0,0) size 367x10
            chunk 1 text run 1 at (10.00,7.00) startOffset 0 endOffset 77 width 366.62: "v.preserveAspectRatio.baseVal.meetOrSlice == 1 (SVG_MEETORSLICE_MEET): PASSED"
      RenderSVGContainer {g} at (10,259) size 277x10 [transform={m=((1.00,0.00)(0.00,1.00)) t=(10.00,260.00)}]
        RenderSVGRect {rect} at (10,261) size 5x5 [fill={[type=SOLID] [color=#00FF00]}] [x=0.00] [y=1.00] [width=5.00] [height=5.00]
        RenderSVGText {text} at (10,-1) size 267x10 contains 1 chunk(s)
          RenderSVGInlineText {#text} at (0,0) size 267x10
            chunk 1 text run 1 at (10.00,7.00) startOffset 0 endOffset 50 width 266.08: "v.zoomAndPan == 2 (SVG_ZOOMANDPAN_MAGNIFY): PASSED"
      RenderSVGContainer {g} at (10,269) size 96x10 [transform={m=((1.00,0.00)(0.00,1.00)) t=(10.00,270.00)}]
        RenderSVGRect {rect} at (10,271) size 5x5 [fill={[type=SOLID] [color=#00FF00]}] [x=0.00] [y=1.00] [width=5.00] [height=5.00]
        RenderSVGText {text} at (10,-1) size 86x10 contains 1 chunk(s)
          RenderSVGInlineText {#text} at (0,0) size 86x10
            chunk 1 text run 1 at (10.00,7.00) startOffset 0 endOffset 19 width 85.54: "Test status: PASSED"
    RenderSVGContainer {g} at (10,314) size 230x33
      RenderSVGText {text} at (10,314) size 230x33 contains 1 chunk(s)
        RenderSVGInlineText {#text} at (0,0) size 230x33
          chunk 1 text run 1 at (10.00,340.00) startOffset 0 endOffset 16 width 229.44: "$Revision: 1.9 $"
    RenderSVGRect {rect} at (0,0) size 480x360 [stroke={[type=SOLID] [color=#000000]}] [x=1.00] [y=1.00] [width=478.00] [height=358.00]
    RenderSVGContainer {g} at (0,0) size 480x23
      RenderSVGRect {rect} at (0,0) size 480x22 [stroke={[type=SOLID] [color=#000000]}] [fill={[type=SOLID] [color=#FF0000]}] [x=1.00] [y=1.00] [width=478.00] [height=20.00]
      RenderSVGText {text} at (204,1) size 72x21 contains 1 chunk(s)
        RenderSVGInlineText {#text} at (0,0) size 72x21
          chunk 1 (middle anchor) text run 1 at (204.17,18.00) startOffset 0 endOffset 5 width 71.66: "DRAFT"
