Commit ec7c26d6 authored by krit@webkit.org's avatar krit@webkit.org

2009-06-13 Dirk Schulze <krit@webkit.org>

        Reviewed by Eric Seidel.

        Added subRegion calculation to SVG filter. Every filter effect is
        clipped to the filter region (according to the spec). This makes
        ImageBuffers for filter effects smaller and we just need to take
        care about big filter regions.
        SVGFEImage needed a correction, to avoid an ASSERT. The two filter
        effects feOffset and feFlood help to test the new subRegion code.

        Tests: svg/filters/subRegion-one-effect.svg
               svg/filters/subRegion-two-effects.svg

        Added tests for the new subRgion-code on SVG filters.

        * platform/mac/svg/filters: Added.
        * platform/mac/svg/filters/subRegion-one-effect-expected.checksum: Added.
        * platform/mac/svg/filters/subRegion-one-effect-expected.png: Added.
        * platform/mac/svg/filters/subRegion-one-effect-expected.txt: Added.
        * platform/mac/svg/filters/subRegion-two-effects-expected.checksum: Added.
        * platform/mac/svg/filters/subRegion-two-effects-expected.png: Added.
        * platform/mac/svg/filters/subRegion-two-effects-expected.txt: Added.
        * svg/filters: Added.
        * svg/filters/subRegion-one-effect.svg: Added.
        * svg/filters/subRegion-two-effects.svg: Added.


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@44655 268f45cc-cd09-0410-ab3c-d52691b4dbfc
parent fa104a99
2009-06-13 Dirk Schulze <krit@webkit.org>
Reviewed by Eric Seidel.
Added tests for the new subRgion-code on SVG filters.
* platform/mac/svg/filters: Added.
* platform/mac/svg/filters/subRegion-one-effect-expected.checksum: Added.
* platform/mac/svg/filters/subRegion-one-effect-expected.png: Added.
* platform/mac/svg/filters/subRegion-one-effect-expected.txt: Added.
* platform/mac/svg/filters/subRegion-two-effects-expected.checksum: Added.
* platform/mac/svg/filters/subRegion-two-effects-expected.png: Added.
* platform/mac/svg/filters/subRegion-two-effects-expected.txt: Added.
* svg/filters: Added.
* svg/filters/subRegion-one-effect.svg: Added.
* svg/filters/subRegion-two-effects.svg: Added.
2009-06-12 Jan Michael Alonzo <jmalonzo@webkit.org>
Reviewed by Gustavo Noronha.
dc0815c37bfbb8183d00ea7649b1c6ec
\ No newline at end of file
layer at (0,0) size 800x600
RenderView at (0,0) size 800x600
layer at (0,0) size 800x600
RenderSVGRoot {svg} at (9.90,9.90) size 687.85x375.10
RenderSVGHiddenContainer {defs} at (0,0) size 0x0
RenderSVGContainer {g} at (9.90,9.90) size 75.35x175.10 [transform={m=((1.00,0.00)(0.00,1.00)) t=(10.00,10.00)}]
RenderPath {rect} at (34.90,34.90) size 50.20x50.20 [stroke={[type=SOLID] [color=#000000] [stroke width=0.20] [dash array={5.00}]}] [fill={[type=SOLID] [color=#96FF96]}] [data="M25.00,25.00 L75.00,25.00 L75.00,75.00 L25.00,75.00 Z"]
RenderPath {rect} at (9.90,9.90) size 50.20x50.20 [stroke={[type=SOLID] [color=#000000] [stroke width=0.20] [dash array={3.00}]}] [fill={[type=SOLID] [color=#C8C8C8] [opacity=0.40]}] [data="M0.00,0.00 L50.00,0.00 L50.00,50.00 L0.00,50.00 Z"]
RenderPath {rect} at (34.75,34.75) size 50.50x50.50 [stroke={[type=SOLID] [color=#000000] [stroke width=0.50]}] [fill={[type=SOLID] [color=#000096] [opacity=0.40]}] [data="M25.00,25.00 L75.00,25.00 L75.00,75.00 L25.00,75.00 Z"]
RenderPath {rect} at (35,135) size 50x50 [fill={[type=SOLID] [color=#00FF00]}] [filter=filter_1effect_01] [data="M25.00,125.00 L75.00,125.00 L75.00,175.00 L25.00,175.00 Z"]
RenderSVGContainer {g} at (109.90,9.90) size 75.20x175.10 [transform={m=((1.00,0.00)(0.00,1.00)) t=(110.00,10.00)}]
RenderPath {rect} at (134.90,34.90) size 50.20x50.20 [stroke={[type=SOLID] [color=#000000] [stroke width=0.20] [dash array={5.00}]}] [fill={[type=SOLID] [color=#96FF96]}] [data="M25.00,25.00 L75.00,25.00 L75.00,75.00 L25.00,75.00 Z"]
RenderPath {rect} at (109.90,9.90) size 50.20x50.20 [stroke={[type=SOLID] [color=#000000] [stroke width=0.20] [dash array={3.00}]}] [fill={[type=SOLID] [color=#C8C8C8] [opacity=0.40]}] [data="M0.00,0.00 L50.00,0.00 L50.00,50.00 L0.00,50.00 Z"]
RenderPath {rect} at (122.25,22.25) size 25.50x38 [stroke={[type=SOLID] [color=#000000] [stroke width=0.50]}] [fill={[type=SOLID] [color=#000096] [opacity=0.40]}] [data="M12.50,12.50 L37.50,12.50 L37.50,50.00 L12.50,50.00 Z"]
RenderPath {rect} at (135,135) size 50x50 [fill={[type=SOLID] [color=#00FF00]}] [filter=filter_1effect_02] [data="M25.00,125.00 L75.00,125.00 L75.00,175.00 L25.00,175.00 Z"]
RenderSVGContainer {g} at (209.90,9.90) size 75.20x175.10 [transform={m=((1.00,0.00)(0.00,1.00)) t=(210.00,10.00)}]
RenderPath {rect} at (234.90,34.90) size 50.20x50.20 [stroke={[type=SOLID] [color=#000000] [stroke width=0.20] [dash array={5.00}]}] [fill={[type=SOLID] [color=#96FF96]}] [data="M25.00,25.00 L75.00,25.00 L75.00,75.00 L25.00,75.00 Z"]
RenderPath {rect} at (209.90,9.90) size 50.20x50.20 [stroke={[type=SOLID] [color=#000000] [stroke width=0.20] [dash array={3.00}]}] [fill={[type=SOLID] [color=#C8C8C8] [opacity=0.40]}] [data="M0.00,0.00 L50.00,0.00 L50.00,50.00 L0.00,50.00 Z"]
RenderPath {rect} at (234.75,34.75) size 25.50x25.50 [stroke={[type=SOLID] [color=#000000] [stroke width=0.50]}] [fill={[type=SOLID] [color=#000096] [opacity=0.40]}] [data="M25.00,25.00 L50.00,25.00 L50.00,50.00 L25.00,50.00 Z"]
RenderPath {rect} at (235,135) size 50x50 [fill={[type=SOLID] [color=#00FF00]}] [filter=filter_1effect_03] [data="M25.00,125.00 L75.00,125.00 L75.00,175.00 L25.00,175.00 Z"]
RenderSVGContainer {g} at (309.90,9.90) size 75.35x175.10 [transform={m=((1.00,0.00)(0.00,1.00)) t=(310.00,10.00)}]
RenderPath {rect} at (334.90,34.90) size 50.20x50.20 [stroke={[type=SOLID] [color=#000000] [stroke width=0.20] [dash array={5.00}]}] [fill={[type=SOLID] [color=#96FF96]}] [data="M25.00,25.00 L75.00,25.00 L75.00,75.00 L25.00,75.00 Z"]
RenderPath {rect} at (309.90,9.90) size 50.20x50.20 [stroke={[type=SOLID] [color=#000000] [stroke width=0.20] [dash array={3.00}]}] [fill={[type=SOLID] [color=#C8C8C8] [opacity=0.40]}] [data="M0.00,0.00 L50.00,0.00 L50.00,50.00 L0.00,50.00 Z"]
RenderPath {rect} at (359.75,47.25) size 25.50x13 [stroke={[type=SOLID] [color=#000000] [stroke width=0.50]}] [fill={[type=SOLID] [color=#000096] [opacity=0.40]}] [data="M50.00,37.50 L75.00,37.50 L75.00,50.00 L50.00,50.00 Z"]
RenderPath {rect} at (335,135) size 50x50 [fill={[type=SOLID] [color=#00FF00]}] [filter=filter_1effect_04] [data="M25.00,125.00 L75.00,125.00 L75.00,175.00 L25.00,175.00 Z"]
RenderSVGContainer {g} at (409.90,9.90) size 75.20x175.10 [transform={m=((1.00,0.00)(0.00,1.00)) t=(410.00,10.00)}]
RenderPath {rect} at (434.90,34.90) size 50.20x50.20 [stroke={[type=SOLID] [color=#000000] [stroke width=0.20] [dash array={5.00}]}] [fill={[type=SOLID] [color=#96FF96]}] [data="M25.00,25.00 L75.00,25.00 L75.00,75.00 L25.00,75.00 Z"]
RenderPath {rect} at (409.90,9.90) size 50.20x50.20 [stroke={[type=SOLID] [color=#000000] [stroke width=0.20] [dash array={3.00}]}] [fill={[type=SOLID] [color=#C8C8C8] [opacity=0.40]}] [data="M0.00,0.00 L50.00,0.00 L50.00,50.00 L0.00,50.00 Z"]
RenderPath {rect} at (447.25,47.25) size 25.50x25.50 [stroke={[type=SOLID] [color=#000000] [stroke width=0.50]}] [fill={[type=SOLID] [color=#000096] [opacity=0.40]}] [data="M37.50,37.50 L62.50,37.50 L62.50,62.50 L37.50,62.50 Z"]
RenderPath {rect} at (435,135) size 50x50 [fill={[type=SOLID] [color=#00FF00]}] [filter=filter_1effect_05] [data="M25.00,125.00 L75.00,125.00 L75.00,175.00 L25.00,175.00 Z"]
RenderSVGContainer {g} at (509.90,9.90) size 75.20x175.10 [transform={m=((1.00,0.00)(0.00,1.00)) t=(510.00,10.00)}]
RenderPath {rect} at (534.90,34.90) size 50.20x50.20 [stroke={[type=SOLID] [color=#000000] [stroke width=0.20] [dash array={5.00}]}] [fill={[type=SOLID] [color=#96FF96]}] [data="M25.00,25.00 L75.00,25.00 L75.00,75.00 L25.00,75.00 Z"]
RenderPath {rect} at (509.90,9.90) size 50.20x50.20 [stroke={[type=SOLID] [color=#000000] [stroke width=0.20] [dash array={3.00}]}] [fill={[type=SOLID] [color=#C8C8C8] [opacity=0.40]}] [data="M0.00,0.00 L50.00,0.00 L50.00,50.00 L0.00,50.00 Z"]
RenderPath {rect} at (522.25,22.25) size 50.50x50.50 [stroke={[type=SOLID] [color=#000000] [stroke width=0.50]}] [fill={[type=SOLID] [color=#000096] [opacity=0.40]}] [data="M12.50,12.50 L62.50,12.50 L62.50,62.50 L12.50,62.50 Z"]
RenderPath {rect} at (535,135) size 50x50 [fill={[type=SOLID] [color=#00FF00]}] [filter=filter_1effect_06] [data="M25.00,125.00 L75.00,125.00 L75.00,175.00 L25.00,175.00 Z"]
RenderSVGContainer {g} at (609.90,9.90) size 75.20x175.10 [transform={m=((1.00,0.00)(0.00,1.00)) t=(610.00,10.00)}]
RenderPath {rect} at (634.90,34.90) size 50.20x50.20 [stroke={[type=SOLID] [color=#000000] [stroke width=0.20] [dash array={5.00}]}] [fill={[type=SOLID] [color=#96FF96]}] [data="M25.00,25.00 L75.00,25.00 L75.00,75.00 L25.00,75.00 Z"]
RenderPath {rect} at (609.90,9.90) size 50.20x50.20 [stroke={[type=SOLID] [color=#000000] [stroke width=0.20] [dash array={3.00}]}] [fill={[type=SOLID] [color=#C8C8C8] [opacity=0.40]}] [data="M0.00,0.00 L50.00,0.00 L50.00,50.00 L0.00,50.00 Z"]
RenderPath {rect} at (641,41) size 13x13 [stroke={[type=SOLID] [color=#000000] [stroke width=0.50]}] [fill={[type=SOLID] [color=#000096] [opacity=0.40]}] [data="M31.25,31.25 L43.75,31.25 L43.75,43.75 L31.25,43.75 Z"]
RenderPath {rect} at (635,135) size 50x50 [fill={[type=SOLID] [color=#00FF00]}] [filter=filter_1effect_07] [data="M25.00,125.00 L75.00,125.00 L75.00,175.00 L25.00,175.00 Z"]
RenderSVGContainer {g} at (29.90,229.90) size 60.20x155.10 [transform={m=((1.00,0.00)(0.00,1.00)) t=(10.00,210.00)}]
RenderPath {rect} at (34.90,234.90) size 50.20x50.20 [stroke={[type=SOLID] [color=#000000] [stroke width=0.20] [dash array={5.00}]}] [fill={[type=SOLID] [color=#96FF96]}] [data="M25.00,25.00 L75.00,25.00 L75.00,75.00 L25.00,75.00 Z"]
RenderPath {rect} at (29.90,229.90) size 60.20x60.20 [stroke={[type=SOLID] [color=#000000] [stroke width=0.20] [dash array={3.00}]}] [fill={[type=SOLID] [color=#C8C8C8] [opacity=0.40]}] [data="M20.00,20.00 L80.00,20.00 L80.00,80.00 L20.00,80.00 Z"]
RenderPath {rect} at (34.75,234.75) size 50.50x50.50 [stroke={[type=SOLID] [color=#000000] [stroke width=0.50]}] [fill={[type=SOLID] [color=#000096] [opacity=0.40]}] [data="M25.00,25.00 L75.00,25.00 L75.00,75.00 L25.00,75.00 Z"]
RenderPath {rect} at (35,335) size 50x50 [fill={[type=SOLID] [color=#00FF00]}] [filter=filter_1effect_08] [data="M25.00,125.00 L75.00,125.00 L75.00,175.00 L25.00,175.00 Z"]
RenderSVGContainer {g} at (122.25,222.25) size 67.85x162.75 [transform={m=((1.00,0.00)(0.00,1.00)) t=(110.00,210.00)}]
RenderPath {rect} at (134.90,234.90) size 50.20x50.20 [stroke={[type=SOLID] [color=#000000] [stroke width=0.20] [dash array={5.00}]}] [fill={[type=SOLID] [color=#96FF96]}] [data="M25.00,25.00 L75.00,25.00 L75.00,75.00 L25.00,75.00 Z"]
RenderPath {rect} at (129.90,229.90) size 60.20x60.20 [stroke={[type=SOLID] [color=#000000] [stroke width=0.20] [dash array={3.00}]}] [fill={[type=SOLID] [color=#C8C8C8] [opacity=0.40]}] [data="M20.00,20.00 L80.00,20.00 L80.00,80.00 L20.00,80.00 Z"]
RenderPath {rect} at (122.25,222.25) size 25.50x38 [stroke={[type=SOLID] [color=#000000] [stroke width=0.50]}] [fill={[type=SOLID] [color=#000096] [opacity=0.40]}] [data="M12.50,12.50 L37.50,12.50 L37.50,50.00 L12.50,50.00 Z"]
RenderPath {rect} at (135,335) size 50x50 [fill={[type=SOLID] [color=#00FF00]}] [filter=filter_1effect_09] [data="M25.00,125.00 L75.00,125.00 L75.00,175.00 L25.00,175.00 Z"]
RenderSVGContainer {g} at (229.90,229.90) size 60.20x155.10 [transform={m=((1.00,0.00)(0.00,1.00)) t=(210.00,210.00)}]
RenderPath {rect} at (234.90,234.90) size 50.20x50.20 [stroke={[type=SOLID] [color=#000000] [stroke width=0.20] [dash array={5.00}]}] [fill={[type=SOLID] [color=#96FF96]}] [data="M25.00,25.00 L75.00,25.00 L75.00,75.00 L25.00,75.00 Z"]
RenderPath {rect} at (229.90,229.90) size 60.20x60.20 [stroke={[type=SOLID] [color=#000000] [stroke width=0.20] [dash array={3.00}]}] [fill={[type=SOLID] [color=#C8C8C8] [opacity=0.40]}] [data="M20.00,20.00 L80.00,20.00 L80.00,80.00 L20.00,80.00 Z"]
RenderPath {rect} at (234.75,234.75) size 25.50x25.50 [stroke={[type=SOLID] [color=#000000] [stroke width=0.50]}] [fill={[type=SOLID] [color=#000096] [opacity=0.40]}] [data="M25.00,25.00 L50.00,25.00 L50.00,50.00 L25.00,50.00 Z"]
RenderPath {rect} at (235,335) size 50x50 [fill={[type=SOLID] [color=#00FF00]}] [filter=filter_1effect_10] [data="M25.00,125.00 L75.00,125.00 L75.00,175.00 L25.00,175.00 Z"]
RenderSVGContainer {g} at (329.90,229.90) size 80.35x155.10 [transform={m=((1.00,0.00)(0.00,1.00)) t=(310.00,210.00)}]
RenderPath {rect} at (334.90,234.90) size 50.20x50.20 [stroke={[type=SOLID] [color=#000000] [stroke width=0.20] [dash array={5.00}]}] [fill={[type=SOLID] [color=#96FF96]}] [data="M25.00,25.00 L75.00,25.00 L75.00,75.00 L25.00,75.00 Z"]
RenderPath {rect} at (329.90,229.90) size 60.20x60.20 [stroke={[type=SOLID] [color=#000000] [stroke width=0.20] [dash array={3.00}]}] [fill={[type=SOLID] [color=#C8C8C8] [opacity=0.40]}] [data="M20.00,20.00 L80.00,20.00 L80.00,80.00 L20.00,80.00 Z"]
RenderPath {rect} at (359.75,259.75) size 50.50x50.50 [stroke={[type=SOLID] [color=#000000] [stroke width=0.50]}] [fill={[type=SOLID] [color=#000096] [opacity=0.40]}] [data="M50.00,50.00 L100.00,50.00 L100.00,100.00 L50.00,100.00 Z"]
RenderPath {rect} at (335,335) size 50x50 [fill={[type=SOLID] [color=#00FF00]}] [filter=filter_1effect_11] [data="M25.00,125.00 L75.00,125.00 L75.00,175.00 L25.00,175.00 Z"]
RenderSVGContainer {g} at (429.90,229.90) size 60.20x155.10 [transform={m=((1.00,0.00)(0.00,1.00)) t=(410.00,210.00)}]
RenderPath {rect} at (434.90,234.90) size 50.20x50.20 [stroke={[type=SOLID] [color=#000000] [stroke width=0.20] [dash array={5.00}]}] [fill={[type=SOLID] [color=#96FF96]}] [data="M25.00,25.00 L75.00,25.00 L75.00,75.00 L25.00,75.00 Z"]
RenderPath {rect} at (429.90,229.90) size 60.20x60.20 [stroke={[type=SOLID] [color=#000000] [stroke width=0.20] [dash array={3.00}]}] [fill={[type=SOLID] [color=#C8C8C8] [opacity=0.40]}] [data="M20.00,20.00 L80.00,20.00 L80.00,80.00 L20.00,80.00 Z"]
RenderPath {rect} at (447.25,247.25) size 25.50x25.50 [stroke={[type=SOLID] [color=#000000] [stroke width=0.50]}] [fill={[type=SOLID] [color=#000096] [opacity=0.40]}] [data="M37.50,37.50 L62.50,37.50 L62.50,62.50 L37.50,62.50 Z"]
RenderPath {rect} at (435,335) size 50x50 [fill={[type=SOLID] [color=#00FF00]}] [filter=filter_1effect_12] [data="M25.00,125.00 L75.00,125.00 L75.00,175.00 L25.00,175.00 Z"]
RenderSVGContainer {g} at (522.25,222.25) size 67.85x162.75 [transform={m=((1.00,0.00)(0.00,1.00)) t=(510.00,210.00)}]
RenderPath {rect} at (534.90,234.90) size 50.20x50.20 [stroke={[type=SOLID] [color=#000000] [stroke width=0.20] [dash array={5.00}]}] [fill={[type=SOLID] [color=#96FF96]}] [data="M25.00,25.00 L75.00,25.00 L75.00,75.00 L25.00,75.00 Z"]
RenderPath {rect} at (529.90,229.90) size 60.20x60.20 [stroke={[type=SOLID] [color=#000000] [stroke width=0.20] [dash array={3.00}]}] [fill={[type=SOLID] [color=#C8C8C8] [opacity=0.40]}] [data="M20.00,20.00 L80.00,20.00 L80.00,80.00 L20.00,80.00 Z"]
RenderPath {rect} at (522.25,222.25) size 50.50x50.50 [stroke={[type=SOLID] [color=#000000] [stroke width=0.50]}] [fill={[type=SOLID] [color=#000096] [opacity=0.40]}] [data="M12.50,12.50 L62.50,12.50 L62.50,62.50 L12.50,62.50 Z"]
RenderPath {rect} at (535,335) size 50x50 [fill={[type=SOLID] [color=#00FF00]}] [filter=filter_1effect_13] [data="M25.00,125.00 L75.00,125.00 L75.00,175.00 L25.00,175.00 Z"]
RenderSVGContainer {g} at (622.25,222.25) size 75.50x162.75 [transform={m=((1.00,0.00)(0.00,1.00)) t=(610.00,210.00)}]
RenderPath {rect} at (634.90,234.90) size 50.20x50.20 [stroke={[type=SOLID] [color=#000000] [stroke width=0.20] [dash array={5.00}]}] [fill={[type=SOLID] [color=#96FF96]}] [data="M25.00,25.00 L75.00,25.00 L75.00,75.00 L25.00,75.00 Z"]
RenderPath {rect} at (629.90,229.90) size 60.20x60.20 [stroke={[type=SOLID] [color=#000000] [stroke width=0.20] [dash array={3.00}]}] [fill={[type=SOLID] [color=#C8C8C8] [opacity=0.40]}] [data="M20.00,20.00 L80.00,20.00 L80.00,80.00 L20.00,80.00 Z"]
RenderPath {rect} at (622.25,222.25) size 75.50x75.50 [stroke={[type=SOLID] [color=#000000] [stroke width=0.50]}] [fill={[type=SOLID] [color=#000096] [opacity=0.40]}] [data="M12.50,12.50 L87.50,12.50 L87.50,87.50 L12.50,87.50 Z"]
RenderPath {rect} at (635,335) size 50x50 [fill={[type=SOLID] [color=#00FF00]}] [filter=filter_1effect_14] [data="M25.00,125.00 L75.00,125.00 L75.00,175.00 L25.00,175.00 Z"]
851b5edfab90fcd421423acba7b399b0
\ No newline at end of file
layer at (0,0) size 800x600
RenderView at (0,0) size 800x600
layer at (0,0) size 800x600
RenderSVGRoot {svg} at (9.75,9.75) size 700.50x375.25
RenderSVGHiddenContainer {defs} at (0,0) size 0x0
RenderSVGContainer {g} at (9.75,9.75) size 75.50x175.25 [transform={m=((1.00,0.00)(0.00,1.00)) t=(10.00,10.00)}]
RenderPath {rect} at (34.90,34.90) size 50.20x50.20 [stroke={[type=SOLID] [color=#000000] [stroke width=0.20] [dash array={5.00}]}] [fill={[type=SOLID] [color=#96FF96]}] [data="M25.00,25.00 L75.00,25.00 L75.00,75.00 L25.00,75.00 Z"]
RenderPath {rect} at (9.90,9.90) size 50.20x50.20 [stroke={[type=SOLID] [color=#000000] [stroke width=0.20] [dash array={3.00}]}] [fill={[type=SOLID] [color=#C8C8C8] [opacity=0.40]}] [data="M0.00,0.00 L50.00,0.00 L50.00,50.00 L0.00,50.00 Z"]
RenderPath {rect} at (34.75,34.75) size 50.50x50.50 [stroke={[type=SOLID] [color=#000000] [stroke width=0.50]}] [fill={[type=SOLID] [color=#000096] [opacity=0.40]}] [data="M25.00,25.00 L75.00,25.00 L75.00,75.00 L25.00,75.00 Z"]
RenderPath {rect} at (9.75,9.75) size 50.50x50.50 [stroke={[type=SOLID] [color=#000000] [stroke width=0.50]}] [fill={[type=SOLID] [color=#960000] [opacity=0.40]}] [data="M0.00,0.00 L50.00,0.00 L50.00,50.00 L0.00,50.00 Z"]
RenderPath {rect} at (35,135) size 50x50 [fill={[type=SOLID] [color=#00FF00]}] [filter=filter_1effect_01] [data="M25.00,125.00 L75.00,125.00 L75.00,175.00 L25.00,175.00 Z"]
RenderSVGContainer {g} at (109.90,9.90) size 87.85x175.10 [transform={m=((1.00,0.00)(0.00,1.00)) t=(110.00,10.00)}]
RenderPath {rect} at (134.90,34.90) size 50.20x50.20 [stroke={[type=SOLID] [color=#000000] [stroke width=0.20] [dash array={5.00}]}] [fill={[type=SOLID] [color=#96FF96]}] [data="M25.00,25.00 L75.00,25.00 L75.00,75.00 L25.00,75.00 Z"]
RenderPath {rect} at (109.90,9.90) size 50.20x50.20 [stroke={[type=SOLID] [color=#000000] [stroke width=0.20] [dash array={3.00}]}] [fill={[type=SOLID] [color=#C8C8C8] [opacity=0.40]}] [data="M0.00,0.00 L50.00,0.00 L50.00,50.00 L0.00,50.00 Z"]
RenderPath {rect} at (122.25,22.25) size 25.50x38 [stroke={[type=SOLID] [color=#000000] [stroke width=0.50]}] [fill={[type=SOLID] [color=#000096] [opacity=0.40]}] [data="M12.50,12.50 L37.50,12.50 L37.50,50.00 L12.50,50.00 Z"]
RenderPath {rect} at (159.75,59.75) size 38x38 [stroke={[type=SOLID] [color=#000000] [stroke width=0.50]}] [fill={[type=SOLID] [color=#960000] [opacity=0.40]}] [data="M50.00,50.00 L87.50,50.00 L87.50,87.50 L50.00,87.50 Z"]
RenderPath {rect} at (135,135) size 50x50 [fill={[type=SOLID] [color=#00FF00]}] [filter=filter_1effect_02] [data="M25.00,125.00 L75.00,125.00 L75.00,175.00 L25.00,175.00 Z"]
RenderSVGContainer {g} at (209.75,9.75) size 75.35x175.25 [transform={m=((1.00,0.00)(0.00,1.00)) t=(210.00,10.00)}]
RenderPath {rect} at (234.90,34.90) size 50.20x50.20 [stroke={[type=SOLID] [color=#000000] [stroke width=0.20] [dash array={5.00}]}] [fill={[type=SOLID] [color=#96FF96]}] [data="M25.00,25.00 L75.00,25.00 L75.00,75.00 L25.00,75.00 Z"]
RenderPath {rect} at (209.90,9.90) size 50.20x50.20 [stroke={[type=SOLID] [color=#000000] [stroke width=0.20] [dash array={3.00}]}] [fill={[type=SOLID] [color=#C8C8C8] [opacity=0.40]}] [data="M0.00,0.00 L50.00,0.00 L50.00,50.00 L0.00,50.00 Z"]
RenderPath {rect} at (209.75,9.75) size 50.50x50.50 [stroke={[type=SOLID] [color=#000000] [stroke width=0.50]}] [fill={[type=SOLID] [color=#000096] [opacity=0.40]}] [data="M0.00,0.00 L50.00,0.00 L50.00,50.00 L0.00,50.00 Z"]
RenderPath {rect} at (209.75,9.75) size 50.50x50.50 [stroke={[type=SOLID] [color=#000000] [stroke width=0.50]}] [fill={[type=SOLID] [color=#960000] [opacity=0.40]}] [data="M0.00,0.00 L50.00,0.00 L50.00,50.00 L0.00,50.00 Z"]
RenderPath {rect} at (235,135) size 50x50 [fill={[type=SOLID] [color=#00FF00]}] [filter=filter_1effect_03] [data="M25.00,125.00 L75.00,125.00 L75.00,175.00 L25.00,175.00 Z"]
RenderSVGContainer {g} at (309.75,9.90) size 88x175.10 [transform={m=((1.00,0.00)(0.00,1.00)) t=(310.00,10.00)}]
RenderPath {rect} at (334.90,34.90) size 50.20x50.20 [stroke={[type=SOLID] [color=#000000] [stroke width=0.20] [dash array={5.00}]}] [fill={[type=SOLID] [color=#96FF96]}] [data="M25.00,25.00 L75.00,25.00 L75.00,75.00 L25.00,75.00 Z"]
RenderPath {rect} at (309.90,9.90) size 50.20x50.20 [stroke={[type=SOLID] [color=#000000] [stroke width=0.20] [dash array={3.00}]}] [fill={[type=SOLID] [color=#C8C8C8] [opacity=0.40]}] [data="M0.00,0.00 L50.00,0.00 L50.00,50.00 L0.00,50.00 Z"]
RenderPath {rect} at (309.75,34.75) size 50.50x25.50 [stroke={[type=SOLID] [color=#000000] [stroke width=0.50]}] [fill={[type=SOLID] [color=#000096] [opacity=0.40]}] [data="M0.00,25.00 L50.00,25.00 L50.00,50.00 L0.00,50.00 Z"]
RenderPath {rect} at (347.25,34.75) size 50.50x25.50 [stroke={[type=SOLID] [color=#000000] [stroke width=0.50]}] [fill={[type=SOLID] [color=#960000] [opacity=0.40]}] [data="M37.50,25.00 L87.50,25.00 L87.50,50.00 L37.50,50.00 Z"]
RenderPath {rect} at (335,135) size 50x50 [fill={[type=SOLID] [color=#00FF00]}] [filter=filter_1effect_04] [data="M25.00,125.00 L75.00,125.00 L75.00,175.00 L25.00,175.00 Z"]
RenderSVGContainer {g} at (409.90,9.90) size 75.35x175.10 [transform={m=((1.00,0.00)(0.00,1.00)) t=(410.00,10.00)}]
RenderPath {rect} at (434.90,34.90) size 50.20x50.20 [stroke={[type=SOLID] [color=#000000] [stroke width=0.20] [dash array={5.00}]}] [fill={[type=SOLID] [color=#96FF96]}] [data="M25.00,25.00 L75.00,25.00 L75.00,75.00 L25.00,75.00 Z"]
RenderPath {rect} at (409.90,9.90) size 50.20x50.20 [stroke={[type=SOLID] [color=#000000] [stroke width=0.20] [dash array={3.00}]}] [fill={[type=SOLID] [color=#C8C8C8] [opacity=0.40]}] [data="M0.00,0.00 L50.00,0.00 L50.00,50.00 L0.00,50.00 Z"]
RenderPath {rect} at (434.75,34.75) size 50.50x50.50 [stroke={[type=SOLID] [color=#000000] [stroke width=0.50]}] [fill={[type=SOLID] [color=#000096] [opacity=0.40]}] [data="M25.00,25.00 L75.00,25.00 L75.00,75.00 L25.00,75.00 Z"]
RenderPath {rect} at (434.75,34.75) size 50.50x50.50 [stroke={[type=SOLID] [color=#000000] [stroke width=0.50]}] [fill={[type=SOLID] [color=#960000] [opacity=0.40]}] [data="M25.00,25.00 L75.00,25.00 L75.00,75.00 L25.00,75.00 Z"]
RenderPath {rect} at (435,135) size 50x50 [fill={[type=SOLID] [color=#00FF00]}] [filter=filter_1effect_05] [data="M25.00,125.00 L75.00,125.00 L75.00,175.00 L25.00,175.00 Z"]
RenderSVGContainer {g} at (509.75,9.75) size 75.50x175.25 [transform={m=((1.00,0.00)(0.00,1.00)) t=(510.00,10.00)}]
RenderPath {rect} at (534.90,34.90) size 50.20x50.20 [stroke={[type=SOLID] [color=#000000] [stroke width=0.20] [dash array={5.00}]}] [fill={[type=SOLID] [color=#96FF96]}] [data="M25.00,25.00 L75.00,25.00 L75.00,75.00 L25.00,75.00 Z"]
RenderPath {rect} at (509.90,9.90) size 50.20x50.20 [stroke={[type=SOLID] [color=#000000] [stroke width=0.20] [dash array={3.00}]}] [fill={[type=SOLID] [color=#C8C8C8] [opacity=0.40]}] [data="M0.00,0.00 L50.00,0.00 L50.00,50.00 L0.00,50.00 Z"]
RenderPath {rect} at (509.75,9.75) size 25.50x25.50 [stroke={[type=SOLID] [color=#000000] [stroke width=0.50]}] [fill={[type=SOLID] [color=#000096] [opacity=0.40]}] [data="M0.00,0.00 L25.00,0.00 L25.00,25.00 L0.00,25.00 Z"]
RenderPath {rect} at (534.75,34.75) size 50.50x50.50 [stroke={[type=SOLID] [color=#000000] [stroke width=0.50]}] [fill={[type=SOLID] [color=#960000] [opacity=0.40]}] [data="M25.00,25.00 L75.00,25.00 L75.00,75.00 L25.00,75.00 Z"]
RenderPath {rect} at (535,135) size 50x50 [fill={[type=SOLID] [color=#00FF00]}] [filter=filter_1effect_06] [data="M25.00,125.00 L75.00,125.00 L75.00,175.00 L25.00,175.00 Z"]
RenderSVGContainer {g} at (609.90,9.90) size 75.20x175.10 [transform={m=((1.00,0.00)(0.00,1.00)) t=(610.00,10.00)}]
RenderPath {rect} at (634.90,34.90) size 50.20x50.20 [stroke={[type=SOLID] [color=#000000] [stroke width=0.20] [dash array={5.00}]}] [fill={[type=SOLID] [color=#96FF96]}] [data="M25.00,25.00 L75.00,25.00 L75.00,75.00 L25.00,75.00 Z"]
RenderPath {rect} at (609.90,9.90) size 50.20x50.20 [stroke={[type=SOLID] [color=#000000] [stroke width=0.20] [dash array={3.00}]}] [fill={[type=SOLID] [color=#C8C8C8] [opacity=0.40]}] [data="M0.00,0.00 L50.00,0.00 L50.00,50.00 L0.00,50.00 Z"]
RenderPath {rect} at (622.25,22.25) size 25.50x25.50 [stroke={[type=SOLID] [color=#000000] [stroke width=0.50]}] [fill={[type=SOLID] [color=#000096] [opacity=0.40]}] [data="M12.50,12.50 L37.50,12.50 L37.50,37.50 L12.50,37.50 Z"]
RenderPath {rect} at (634.75,34.75) size 38x25.50 [stroke={[type=SOLID] [color=#000000] [stroke width=0.50]}] [fill={[type=SOLID] [color=#960000] [opacity=0.40]}] [data="M25.00,25.00 L62.50,25.00 L62.50,50.00 L25.00,50.00 Z"]
RenderPath {rect} at (635,135) size 50x50 [fill={[type=SOLID] [color=#00FF00]}] [filter=filter_1effect_07] [data="M25.00,125.00 L75.00,125.00 L75.00,175.00 L25.00,175.00 Z"]
RenderSVGContainer {g} at (22.25,222.25) size 67.85x162.75 [transform={m=((1.00,0.00)(0.00,1.00)) t=(10.00,210.00)}]
RenderPath {rect} at (34.90,234.90) size 50.20x50.20 [stroke={[type=SOLID] [color=#000000] [stroke width=0.20] [dash array={5.00}]}] [fill={[type=SOLID] [color=#96FF96]}] [data="M25.00,25.00 L75.00,25.00 L75.00,75.00 L25.00,75.00 Z"]
RenderPath {rect} at (29.90,229.90) size 60.20x60.20 [stroke={[type=SOLID] [color=#000000] [stroke width=0.20] [dash array={3.00}]}] [fill={[type=SOLID] [color=#C8C8C8] [opacity=0.40]}] [data="M20.00,20.00 L80.00,20.00 L80.00,80.00 L20.00,80.00 Z"]
RenderPath {rect} at (34.75,234.75) size 50.50x50.50 [stroke={[type=SOLID] [color=#000000] [stroke width=0.50]}] [fill={[type=SOLID] [color=#000096] [opacity=0.40]}] [data="M25.00,25.00 L75.00,25.00 L75.00,75.00 L25.00,75.00 Z"]
RenderPath {rect} at (22.25,222.25) size 25.50x25.50 [stroke={[type=SOLID] [color=#000000] [stroke width=0.50]}] [fill={[type=SOLID] [color=#960000] [opacity=0.40]}] [data="M12.50,12.50 L37.50,12.50 L37.50,37.50 L12.50,37.50 Z"]
RenderPath {rect} at (35,335) size 50x50 [fill={[type=SOLID] [color=#00FF00]}] [filter=filter_1effect_08] [data="M25.00,125.00 L75.00,125.00 L75.00,175.00 L25.00,175.00 Z"]
RenderSVGContainer {g} at (122.25,222.25) size 67.85x162.75 [transform={m=((1.00,0.00)(0.00,1.00)) t=(110.00,210.00)}]
RenderPath {rect} at (134.90,234.90) size 50.20x50.20 [stroke={[type=SOLID] [color=#000000] [stroke width=0.20] [dash array={5.00}]}] [fill={[type=SOLID] [color=#96FF96]}] [data="M25.00,25.00 L75.00,25.00 L75.00,75.00 L25.00,75.00 Z"]
RenderPath {rect} at (129.90,229.90) size 60.20x60.20 [stroke={[type=SOLID] [color=#000000] [stroke width=0.20] [dash array={3.00}]}] [fill={[type=SOLID] [color=#C8C8C8] [opacity=0.40]}] [data="M20.00,20.00 L80.00,20.00 L80.00,80.00 L20.00,80.00 Z"]
RenderPath {rect} at (122.25,222.25) size 25.50x38 [stroke={[type=SOLID] [color=#000000] [stroke width=0.50]}] [fill={[type=SOLID] [color=#000096] [opacity=0.40]}] [data="M12.50,12.50 L37.50,12.50 L37.50,50.00 L12.50,50.00 Z"]
RenderPath {rect} at (147.25,247.25) size 25.50x25.50 [stroke={[type=SOLID] [color=#000000] [stroke width=0.50]}] [fill={[type=SOLID] [color=#960000] [opacity=0.40]}] [data="M37.50,37.50 L62.50,37.50 L62.50,62.50 L37.50,62.50 Z"]
RenderPath {rect} at (135,335) size 50x50 [fill={[type=SOLID] [color=#00FF00]}] [filter=filter_1effect_09] [data="M25.00,125.00 L75.00,125.00 L75.00,175.00 L25.00,175.00 Z"]
RenderSVGContainer {g} at (229.75,229.75) size 65.50x155.25 [transform={m=((1.00,0.00)(0.00,1.00)) t=(210.00,210.00)}]
RenderPath {rect} at (234.90,234.90) size 50.20x50.20 [stroke={[type=SOLID] [color=#000000] [stroke width=0.20] [dash array={5.00}]}] [fill={[type=SOLID] [color=#96FF96]}] [data="M25.00,25.00 L75.00,25.00 L75.00,75.00 L25.00,75.00 Z"]
RenderPath {rect} at (229.90,229.90) size 60.20x60.20 [stroke={[type=SOLID] [color=#000000] [stroke width=0.20] [dash array={3.00}]}] [fill={[type=SOLID] [color=#C8C8C8] [opacity=0.40]}] [data="M20.00,20.00 L80.00,20.00 L80.00,80.00 L20.00,80.00 Z"]
RenderPath {rect} at (234.75,234.75) size 60.50x25.50 [stroke={[type=SOLID] [color=#000000] [stroke width=0.50]}] [fill={[type=SOLID] [color=#000096] [opacity=0.40]}] [data="M25.00,25.00 L85.00,25.00 L85.00,50.00 L25.00,50.00 Z"]
RenderPath {rect} at (229.75,229.75) size 60.50x60.50 [stroke={[type=SOLID] [color=#000000] [stroke width=0.50]}] [fill={[type=SOLID] [color=#960000] [opacity=0.40]}] [data="M20.00,20.00 L80.00,20.00 L80.00,80.00 L20.00,80.00 Z"]
RenderPath {rect} at (235,335) size 50x50 [fill={[type=SOLID] [color=#00FF00]}] [filter=filter_1effect_10] [data="M25.00,125.00 L75.00,125.00 L75.00,175.00 L25.00,175.00 Z"]
RenderSVGContainer {g} at (329.75,229.75) size 60.50x155.25 [transform={m=((1.00,0.00)(0.00,1.00)) t=(310.00,210.00)}]
RenderPath {rect} at (334.90,234.90) size 50.20x50.20 [stroke={[type=SOLID] [color=#000000] [stroke width=0.20] [dash array={5.00}]}] [fill={[type=SOLID] [color=#96FF96]}] [data="M25.00,25.00 L75.00,25.00 L75.00,75.00 L25.00,75.00 Z"]
RenderPath {rect} at (329.90,229.90) size 60.20x60.20 [stroke={[type=SOLID] [color=#000000] [stroke width=0.20] [dash array={3.00}]}] [fill={[type=SOLID] [color=#C8C8C8] [opacity=0.40]}] [data="M20.00,20.00 L80.00,20.00 L80.00,80.00 L20.00,80.00 Z"]
RenderPath {rect} at (329.75,229.75) size 60.50x60.50 [stroke={[type=SOLID] [color=#000000] [stroke width=0.50]}] [fill={[type=SOLID] [color=#000096] [opacity=0.40]}] [data="M20.00,20.00 L80.00,20.00 L80.00,80.00 L20.00,80.00 Z"]
RenderPath {rect} at (329.75,229.75) size 60.50x60.50 [stroke={[type=SOLID] [color=#000000] [stroke width=0.50]}] [fill={[type=SOLID] [color=#960000] [opacity=0.40]}] [data="M20.00,20.00 L80.00,20.00 L80.00,80.00 L20.00,80.00 Z"]
RenderPath {rect} at (335,335) size 50x50 [fill={[type=SOLID] [color=#00FF00]}] [filter=filter_1effect_11] [data="M25.00,125.00 L75.00,125.00 L75.00,175.00 L25.00,175.00 Z"]
RenderSVGContainer {g} at (422.25,222.25) size 67.85x162.75 [transform={m=((1.00,0.00)(0.00,1.00)) t=(410.00,210.00)}]
RenderPath {rect} at (434.90,234.90) size 50.20x50.20 [stroke={[type=SOLID] [color=#000000] [stroke width=0.20] [dash array={5.00}]}] [fill={[type=SOLID] [color=#96FF96]}] [data="M25.00,25.00 L75.00,25.00 L75.00,75.00 L25.00,75.00 Z"]
RenderPath {rect} at (429.90,229.90) size 60.20x60.20 [stroke={[type=SOLID] [color=#000000] [stroke width=0.20] [dash array={3.00}]}] [fill={[type=SOLID] [color=#C8C8C8] [opacity=0.40]}] [data="M20.00,20.00 L80.00,20.00 L80.00,80.00 L20.00,80.00 Z"]
RenderPath {rect} at (422.25,222.25) size 60.50x60.50 [stroke={[type=SOLID] [color=#000000] [stroke width=0.50]}] [fill={[type=SOLID] [color=#000096] [opacity=0.40]}] [data="M12.50,12.50 L72.50,12.50 L72.50,72.50 L12.50,72.50 Z"]
RenderPath {rect} at (447.25,247.25) size 25.50x25.50 [stroke={[type=SOLID] [color=#000000] [stroke width=0.50]}] [fill={[type=SOLID] [color=#960000] [opacity=0.40]}] [data="M37.50,37.50 L62.50,37.50 L62.50,62.50 L37.50,62.50 Z"]
RenderPath {rect} at (435,335) size 50x50 [fill={[type=SOLID] [color=#00FF00]}] [filter=filter_1effect_12] [data="M25.00,125.00 L75.00,125.00 L75.00,175.00 L25.00,175.00 Z"]
RenderSVGContainer {g} at (522.25,222.25) size 75.50x162.75 [transform={m=((1.00,0.00)(0.00,1.00)) t=(510.00,210.00)}]
RenderPath {rect} at (534.90,234.90) size 50.20x50.20 [stroke={[type=SOLID] [color=#000000] [stroke width=0.20] [dash array={5.00}]}] [fill={[type=SOLID] [color=#96FF96]}] [data="M25.00,25.00 L75.00,25.00 L75.00,75.00 L25.00,75.00 Z"]
RenderPath {rect} at (529.90,229.90) size 60.20x60.20 [stroke={[type=SOLID] [color=#000000] [stroke width=0.20] [dash array={3.00}]}] [fill={[type=SOLID] [color=#C8C8C8] [opacity=0.40]}] [data="M20.00,20.00 L80.00,20.00 L80.00,80.00 L20.00,80.00 Z"]
RenderPath {rect} at (522.25,222.25) size 50.50x50.50 [stroke={[type=SOLID] [color=#000000] [stroke width=0.50]}] [fill={[type=SOLID] [color=#000096] [opacity=0.40]}] [data="M12.50,12.50 L62.50,12.50 L62.50,62.50 L12.50,62.50 Z"]
RenderPath {rect} at (559.75,259.75) size 38x38 [stroke={[type=SOLID] [color=#000000] [stroke width=0.50]}] [fill={[type=SOLID] [color=#960000] [opacity=0.40]}] [data="M50.00,50.00 L87.50,50.00 L87.50,87.50 L50.00,87.50 Z"]
RenderPath {rect} at (535,335) size 50x50 [fill={[type=SOLID] [color=#00FF00]}] [filter=filter_1effect_13] [data="M25.00,125.00 L75.00,125.00 L75.00,175.00 L25.00,175.00 Z"]
RenderSVGContainer {g} at (609.75,209.75) size 100.50x175.25 [transform={m=((1.00,0.00)(0.00,1.00)) t=(610.00,210.00)}]
RenderPath {rect} at (634.90,234.90) size 50.20x50.20 [stroke={[type=SOLID] [color=#000000] [stroke width=0.20] [dash array={5.00}]}] [fill={[type=SOLID] [color=#96FF96]}] [data="M25.00,25.00 L75.00,25.00 L75.00,75.00 L25.00,75.00 Z"]
RenderPath {rect} at (629.90,229.90) size 60.20x60.20 [stroke={[type=SOLID] [color=#000000] [stroke width=0.20] [dash array={3.00}]}] [fill={[type=SOLID] [color=#C8C8C8] [opacity=0.40]}] [data="M20.00,20.00 L80.00,20.00 L80.00,80.00 L20.00,80.00 Z"]
RenderPath {rect} at (622.25,222.25) size 75.50x75.50 [stroke={[type=SOLID] [color=#000000] [stroke width=0.50]}] [fill={[type=SOLID] [color=#000096] [opacity=0.40]}] [data="M12.50,12.50 L87.50,12.50 L87.50,87.50 L12.50,87.50 Z"]
RenderPath {rect} at (609.75,209.75) size 100.50x100.50 [stroke={[type=SOLID] [color=#000000] [stroke width=0.50]}] [fill={[type=SOLID] [color=#960000] [opacity=0.40]}] [data="M0.00,0.00 L100.00,0.00 L100.00,100.00 L0.00,100.00 Z"]
RenderPath {rect} at (635,335) size 50x50 [fill={[type=SOLID] [color=#00FF00]}] [filter=filter_1effect_14] [data="M25.00,125.00 L75.00,125.00 L75.00,175.00 L25.00,175.00 Z"]
<svg xmlns="http://www.w3.org/2000/svg" id="body" width="800" height="600">
<defs>
<style type="text/css">
* {stroke:black; stroke-width:0.2;}
</style>
<filter id="filter_1effect_01" x="-50%" y="-50%" width="100%"
height="100%" primitiveUnits="objectBoundingBox">
<feOffset x="0%" y="0%" width="100%" height="100%" />
</filter>
<filter id="filter_1effect_02" x="-50%" y="-50%" width="100%"
height="100%" primitiveUnits="objectBoundingBox">
<feOffset x="-25%" y="-25%" width="50%" height="75%" />
</filter>
<filter id="filter_1effect_03" x="-50%" y="-50%" width="100%"
height="100%" primitiveUnits="objectBoundingBox">
<feOffset x="0%" y="0%" width="50%" height="50%" />
</filter>
<filter id="filter_1effect_04" x="-50%" y="-50%" width="100%"
height="100%" primitiveUnits="objectBoundingBox">
<feOffset x="50%" y="50%" width="50%" height="25%" />
</filter>
<filter id="filter_1effect_05" x="-50%" y="-50%" width="100%"
height="100%" primitiveUnits="objectBoundingBox">
<feOffset x="25%" y="25%" width="50%" height="50%" />
</filter>
<filter id="filter_1effect_06" x="-50%" y="-50%" width="100%"
height="100%" primitiveUnits="objectBoundingBox">
<feOffset x="-25%" y="-25%" width="100%" height="100%" />
</filter>
<filter id="filter_1effect_07" x="-50%" y="-50%" width="100%"
height="100%" primitiveUnits="objectBoundingBox">
<feOffset x="12.5%" y="12.5%" width="25%" height="25%" />
</filter>
<filter id="filter_1effect_08" primitiveUnits="objectBoundingBox">
<feOffset x="0%" y="0%" width="100%" height="100%" />
</filter>
<filter id="filter_1effect_09" primitiveUnits="objectBoundingBox">
<feOffset x="-25%" y="-25%" width="50%" height="75%" />
</filter>
<filter id="filter_1effect_10" primitiveUnits="objectBoundingBox">
<feOffset x="0%" y="0%" width="50%" height="50%" />
</filter>
<filter id="filter_1effect_11" primitiveUnits="objectBoundingBox">
<feOffset x="50%" y="50%" width="100%" height="100%" />
</filter>
<filter id="filter_1effect_12" primitiveUnits="objectBoundingBox">
<feOffset x="25%" y="25%" width="50%" height="50%" />
</filter>
<filter id="filter_1effect_13" primitiveUnits="objectBoundingBox">
<feOffset x="-25%" y="-25%" width="100%" height="100%" />
</filter>
<filter id="filter_1effect_14" primitiveUnits="objectBoundingBox">
<feOffset x="-25%" y="-25%" width="150%" height="150%" />
</filter>
</defs>
<g transform="translate(10, 10)">
<rect x="25" y="25" width="50" height="50" style="fill:rgb(150,255,150);stroke-dasharray:5;"/>
<rect x="0" y="0" width="50" height="50" style="fill:rgb(200,200,200);stroke-dasharray:3;fill-opacity:0.4" />
<rect x="25" y="25" width="50" height="50" style="fill:rgb(0,0,150);fill-opacity:0.4;stroke-width:0.5;"/>
<!-- Filter -->
<rect x="25" y="125" width="50" height="50" style="fill:rgb(0,255,0);filter:url(#filter_1effect_01);stroke:none;"/>
</g>
<g transform="translate(110, 10)">
<rect x="25" y="25" width="50" height="50" style="fill:rgb(150,255,150);stroke-dasharray:5;"/>
<rect x="0" y="0" width="50" height="50" style="fill:rgb(200,200,200);stroke-dasharray:3;fill-opacity:0.4" />
<rect x="12.5" y="12.5" width="25" height="37.5" style="fill:rgb(0,0,150);fill-opacity:0.4;stroke-width:0.5;"/>
<!-- Filter -->
<rect x="25" y="125" width="50" height="50" style="fill:rgb(0,255,0);filter:url(#filter_1effect_02);stroke:none;"/>
</g>
<g transform="translate(210, 10)">
<rect x="25" y="25" width="50" height="50" style="fill:rgb(150,255,150);stroke-dasharray:5;"/>
<rect x="0" y="0" width="50" height="50" style="fill:rgb(200,200,200);stroke-dasharray:3;fill-opacity:0.4" />
<rect x="25" y="25" width="25" height="25" style="fill:rgb(0,0,150);fill-opacity:0.4;stroke-width:0.5;"/>
<!-- Filter -->
<rect x="25" y="125" width="50" height="50" style="fill:rgb(0,255,0);filter:url(#filter_1effect_03);stroke:none;"/>
</g>
<g transform="translate(310, 10)">
<rect x="25" y="25" width="50" height="50" style="fill:rgb(150,255,150);stroke-dasharray:5;"/>
<rect x="0" y="0" width="50" height="50" style="fill:rgb(200,200,200);stroke-dasharray:3;fill-opacity:0.4" />
<rect x="50" y="37.5" width="25" height="12.5" style="fill:rgb(0,0,150);fill-opacity:0.4;stroke-width:0.5;"/>
<!-- Filter -->
<rect x="25" y="125" width="50" height="50" style="fill:rgb(0,255,0);filter:url(#filter_1effect_04);stroke:none;"/>
</g>
<g transform="translate(410, 10)">
<rect x="25" y="25" width="50" height="50" style="fill:rgb(150,255,150);stroke-dasharray:5;"/>
<rect x="0" y="0" width="50" height="50" style="fill:rgb(200,200,200);stroke-dasharray:3;fill-opacity:0.4" />
<rect x="37.5" y="37.5" width="25" height="25" style="fill:rgb(0,0,150);fill-opacity:0.4;stroke-width:0.5;"/>
<!-- Filter -->
<rect x="25" y="125" width="50" height="50" style="fill:rgb(0,255,0);filter:url(#filter_1effect_05);stroke:none;"/>
</g>
<g transform="translate(510, 10)">
<rect x="25" y="25" width="50" height="50" style="fill:rgb(150,255,150);stroke-dasharray:5;"/>
<rect x="0" y="0" width="50" height="50" style="fill:rgb(200,200,200);stroke-dasharray:3;fill-opacity:0.4" />
<rect x="12.5" y="12.5" width="50" height="50" style="fill:rgb(0,0,150);fill-opacity:0.4;stroke-width:0.5;"/>
<!-- Filter -->
<rect x="25" y="125" width="50" height="50" style="fill:rgb(0,255,0);filter:url(#filter_1effect_06);stroke:none;"/>
</g>
<g transform="translate(610, 10)">
<rect x="25" y="25" width="50" height="50" style="fill:rgb(150,255,150);stroke-dasharray:5;"/>
<rect x="0" y="0" width="50" height="50" style="fill:rgb(200,200,200);stroke-dasharray:3;fill-opacity:0.4" />
<rect x="31.25" y="31.25" width="12.5" height="12.5" style="fill:rgb(0,0,150);fill-opacity:0.4;stroke-width:0.5;"/>
<!-- Filter -->
<rect x="25" y="125" width="50" height="50" style="fill:rgb(0,255,0);filter:url(#filter_1effect_07);stroke:none;"/>
</g>
<g transform="translate(10, 210)">
<rect x="25" y="25" width="50" height="50" style="fill:rgb(150,255,150);stroke-dasharray:5;"/>
<rect x="20" y="20" width="60" height="60" style="fill:rgb(200,200,200);stroke-dasharray:3;fill-opacity:0.4" />
<rect x="25" y="25" width="50" height="50" style="fill:rgb(0,0,150);fill-opacity:0.4;stroke-width:0.5;"/>
<!-- Filter -->
<rect x="25" y="125" width="50" height="50" style="fill:rgb(0,255,0);filter:url(#filter_1effect_08);stroke:none;"/>
</g>
<g transform="translate(110, 210)">
<rect x="25" y="25" width="50" height="50" style="fill:rgb(150,255,150);stroke-dasharray:5;"/>
<rect x="20" y="20" width="60" height="60" style="fill:rgb(200,200,200);stroke-dasharray:3;fill-opacity:0.4" />
<rect x="12.5" y="12.5" width="25" height="37.5" style="fill:rgb(0,0,150);fill-opacity:0.4;stroke-width:0.5;"/>
<!-- Filter -->
<rect x="25" y="125" width="50" height="50" style="fill:rgb(0,255,0);filter:url(#filter_1effect_09);stroke:none;"/>
</g>
<g transform="translate(210, 210)">
<rect x="25" y="25" width="50" height="50" style="fill:rgb(150,255,150);stroke-dasharray:5;"/>
<rect x="20" y="20" width="60" height="60" style="fill:rgb(200,200,200);stroke-dasharray:3;fill-opacity:0.4" />
<rect x="25" y="25" width="25" height="25" style="fill:rgb(0,0,150);fill-opacity:0.4;stroke-width:0.5;"/>
<!-- Filter -->
<rect x="25" y="125" width="50" height="50" style="fill:rgb(0,255,0);filter:url(#filter_1effect_10);stroke:none;"/>
</g>
<g transform="translate(310, 210)">
<rect x="25" y="25" width="50" height="50" style="fill:rgb(150,255,150);stroke-dasharray:5;"/>
<rect x="20" y="20" width="60" height="60" style="fill:rgb(200,200,200);stroke-dasharray:3;fill-opacity:0.4" />
<rect x="50" y="50" width="50" height="50" style="fill:rgb(0,0,150);fill-opacity:0.4;stroke-width:0.5;"/>
<!-- Filter -->
<rect x="25" y="125" width="50" height="50" style="fill:rgb(0,255,0);filter:url(#filter_1effect_11);stroke:none;"/>
</g>
<g transform="translate(410, 210)">
<rect x="25" y="25" width="50" height="50" style="fill:rgb(150,255,150);stroke-dasharray:5;"/>
<rect x="20" y="20" width="60" height="60" style="fill:rgb(200,200,200);stroke-dasharray:3;fill-opacity:0.4" />
<rect x="37.5" y="37.5" width="25" height="25" style="fill:rgb(0,0,150);fill-opacity:0.4;stroke-width:0.5;"/>
<!-- Filter -->
<rect x="25" y="125" width="50" height="50" style="fill:rgb(0,255,0);filter:url(#filter_1effect_12);stroke:none;"/>
</g>
<g transform="translate(510, 210)">
<rect x="25" y="25" width="50" height="50" style="fill:rgb(150,255,150);stroke-dasharray:5;"/>
<rect x="20" y="20" width="60" height="60" style="fill:rgb(200,200,200);stroke-dasharray:3;fill-opacity:0.4" />
<rect x="12.5" y="12.5" width="50" height="50" style="fill:rgb(0,0,150);fill-opacity:0.4;stroke-width:0.5;"/>
<!-- Filter -->
<rect x="25" y="125" width="50" height="50" style="fill:rgb(0,255,0);filter:url(#filter_1effect_13);stroke:none;"/>
</g>
<g transform="translate(610, 210)">
<rect x="25" y="25" width="50" height="50" style="fill:rgb(150,255,150);stroke-dasharray:5;"/>
<rect x="20" y="20" width="60" height="60" style="fill:rgb(200,200,200);stroke-dasharray:3;fill-opacity:0.4" />
<rect x="12.5" y="12.5" width="75" height="75" style="fill:rgb(0,0,150);fill-opacity:0.4;stroke-width:0.5;"/>
<!-- Filter -->
<rect x="25" y="125" width="50" height="50" style="fill:rgb(0,255,0);filter:url(#filter_1effect_14);stroke:none;"/>
</g>
</svg>
<svg xmlns="http://www.w3.org/2000/svg" id="body" width="800" height="600">
<defs>
<style type="text/css">
* {stroke:black; stroke-width:0.2;}
</style>
<filter id="filter_1effect_01" x="-50%" y="-50%" width="100%"
height="100%" primitiveUnits="objectBoundingBox">
<feOffset x="0%" y="0%" width="100%" height="100%" />
<feOffset x="-50%" y="-50%" width="100%" height="100%" />
</filter>
<filter id="filter_1effect_02" x="-50%" y="-50%" width="100%"
height="100%" primitiveUnits="objectBoundingBox">
<feOffset x="-25%" y="-25%" width="50%" height="75%" />
<feOffset x="50%" y="50%" width="75%" height="75%" />
</filter>
<filter id="filter_1effect_03" x="-50%" y="-50%" width="100%"
height="100%" primitiveUnits="objectBoundingBox">
<feOffset width="100%" />
<feOffset />
</filter>
<filter id="filter_1effect_04" x="-50%" y="-50%" width="100%"
height="100%" primitiveUnits="objectBoundingBox">
<feOffset y="0%" height="50%" />
<feOffset x="25%" />
</filter>
<filter id="filter_1effect_05" x="-50%" y="-50%" width="100%"
height="100%" primitiveUnits="objectBoundingBox">
<feOffset x="0%" y="0%" width="100%" height="100%" />
<feOffset />
</filter>
<filter id="filter_1effect_06" x="-50%" y="-50%" width="100%"
height="100%" primitiveUnits="objectBoundingBox">
<feOffset width="50%" height="50%" />
<feOffset x="0%" y="0%" />
</filter>
<filter id="filter_1effect_07" x="-50%" y="-50%" width="100%"
height="100%" primitiveUnits="objectBoundingBox">
<feOffset x="-25%" y="-25%" width="50%" height="50%" />
<feOffset x="0%" y="0%" width="75%"/>
</filter>
<filter id="filter_1effect_08" primitiveUnits="objectBoundingBox">
<feOffset x="0%" y="0%" width="100%" height="100%" />
<feOffset x="-25%" y="-25%" width="50%" height="50%" />
</filter>
<filter id="filter_1effect_09" primitiveUnits="objectBoundingBox">
<feOffset x="-25%" y="-25%" width="50%" height="75%" />
<feOffset x="25%" y="25%" width="50%" height="50%" />
</filter>
<filter id="filter_1effect_10" primitiveUnits="objectBoundingBox">
<feOffset x="0%" y="0%" height="50%" />
<feOffset />
</filter>
<filter id="filter_1effect_11" primitiveUnits="objectBoundingBox">
<feOffset />
<feOffset />
</filter>
<filter id="filter_1effect_12" primitiveUnits="objectBoundingBox">
<feOffset />
<feOffset x="25%" y="25%" width="50%" height="50%" />
</filter>
<filter id="filter_1effect_13" primitiveUnits="objectBoundingBox">
<feOffset x="-25%" y="-25%" width="100%" height="100%" />
<feOffset x="50%" y="50%" width="75%" height="75%" />
</filter>
<filter id="filter_1effect_14" primitiveUnits="objectBoundingBox">
<feOffset x="-25%" y="-25%" width="150%" height="150%" />
<feOffset x="-50%" y="-50%" width="200%" height="200%" />
</filter>
</defs>
<g transform="translate(10, 10)">
<rect x="25" y="25" width="50" height="50" style="fill:rgb(150,255,150);stroke-dasharray:5;"/>
<rect x="0" y="0" width="50" height="50" style="fill:rgb(200,200,200);stroke-dasharray:3;fill-opacity:0.4" />
<rect x="25" y="25" width="50" height="50" style="fill:rgb(0,0,150);fill-opacity:0.4;stroke-width:0.5;"/>
<rect x="0" y="0" width="50" height="50" style="fill:rgb(150,0,0);fill-opacity:0.4;stroke-width:0.5;" />
<!-- Filter -->
<rect x="25" y="125" width="50" height="50" style="fill:rgb(0,255,0);filter:url(#filter_1effect_01);stroke:none;"/>
</g>
<g transform="translate(110, 10)">
<rect x="25" y="25" width="50" height="50" style="fill:rgb(150,255,150);stroke-dasharray:5;"/>
<rect x="0" y="0" width="50" height="50" style="fill:rgb(200,200,200);stroke-dasharray:3;fill-opacity:0.4" />
<rect x="12.5" y="12.5" width="25" height="37.5" style="fill:rgb(0,0,150);fill-opacity:0.4;stroke-width:0.5;"/>
<rect x="50" y="50" width="37.5" height="37.5" style="fill:rgb(150,0,0);fill-opacity:0.4;stroke-width:0.5;" />
<!-- Filter -->
<rect x="25" y="125" width="50" height="50" style="fill:rgb(0,255,0);filter:url(#filter_1effect_02);stroke:none;"/>
</g>
<g transform="translate(210, 10)">
<rect x="25" y="25" width="50" height="50" style="fill:rgb(150,255,150);stroke-dasharray:5;"/>
<rect x="0" y="0" width="50" height="50" style="fill:rgb(200,200,200);stroke-dasharray:3;fill-opacity:0.4" />
<rect x="0" y="0" width="50" height="50" style="fill:rgb(0,0,150);fill-opacity:0.4;stroke-width:0.5;"/>
<rect x="0" y="0" width="50" height="50" style="fill:rgb(150,0,0);fill-opacity:0.4;stroke-width:0.5;" />
<!-- Filter -->
<rect x="25" y="125" width="50" height="50" style="fill:rgb(0,255,0);filter:url(#filter_1effect_03);stroke:none;"/>
</g>
<g transform="translate(310, 10)">
<rect x="25" y="25" width="50" height="50" style="fill:rgb(150,255,150);stroke-dasharray:5;"/>
<rect x="0" y="0" width="50" height="50" style="fill:rgb(200,200,200);stroke-dasharray:3;fill-opacity:0.4" />
<rect x="0" y="25" width="50" height="25" style="fill:rgb(0,0,150);fill-opacity:0.4;stroke-width:0.5;"/>
<rect x="37.5" y="25" width="50" height="25" style="fill:rgb(150,0,0);fill-opacity:0.4;stroke-width:0.5;" />
<!-- Filter -->
<rect x="25" y="125" width="50" height="50" style="fill:rgb(0,255,0);filter:url(#filter_1effect_04);stroke:none;"/>
</g>
<g transform="translate(410, 10)">
<rect x="25" y="25" width="50" height="50" style="fill:rgb(150,255,150);stroke-dasharray:5;"/>
<rect x="0" y="0" width="50" height="50" style="fill:rgb(200,200,200);stroke-dasharray:3;fill-opacity:0.4" />
<rect x="25" y="25" width="50" height="50" style="fill:rgb(0,0,150);fill-opacity:0.4;stroke-width:0.5;"/>
<rect x="25" y="25" width="50" height="50" style="fill:rgb(150,0,0);fill-opacity:0.4;stroke-width:0.5;" />
<!-- Filter -->
<rect x="25" y="125" width="50" height="50" style="fill:rgb(0,255,0);filter:url(#filter_1effect_05);stroke:none;"/>
</g>
<g transform="translate(510, 10)">
<rect x="25" y="25" width="50" height="50" style="fill:rgb(150,255,150);stroke-dasharray:5;"/>
<rect x="0" y="0" width="50" height="50" style="fill:rgb(200,200,200);stroke-dasharray:3;fill-opacity:0.4" />
<rect x="0" y="0" width="25" height="25" style="fill:rgb(0,0,150);fill-opacity:0.4;stroke-width:0.5;"/>
<rect x="25" y="25" width="50" height="50" style="fill:rgb(150,0,0);fill-opacity:0.4;stroke-width:0.5;" />
<!-- Filter -->
<rect x="25" y="125" width="50" height="50" style="fill:rgb(0,255,0);filter:url(#filter_1effect_06);stroke:none;"/>
</g>
<g transform="translate(610, 10)">
<rect x="25" y="25" width="50" height="50" style="fill:rgb(150,255,150);stroke-dasharray:5;"/>
<rect x="0" y="0" width="50" height="50" style="fill:rgb(200,200,200);stroke-dasharray:3;fill-opacity:0.4" />
<rect x="12.5" y="12.5" width="25" height="25" style="fill:rgb(0,0,150);fill-opacity:0.4;stroke-width:0.5;"/>
<rect x="25" y="25" width="37.5" height="25" style="fill:rgb(150,0,0);fill-opacity:0.4;stroke-width:0.5;"/>
<!-- Filter -->
<rect x="25" y="125" width="50" height="50" style="fill:rgb(0,255,0);filter:url(#filter_1effect_07);stroke:none;"/>
</g>
<g transform="translate(10, 210)">
<rect x="25" y="25" width="50" height="50" style="fill:rgb(150,255,150);stroke-dasharray:5;"/>
<rect x="20" y="20" width="60" height="60" style="fill:rgb(200,200,200);stroke-dasharray:3;fill-opacity:0.4" />
<rect x="25" y="25" width="50" height="50" style="fill:rgb(0,0,150);fill-opacity:0.4;stroke-width:0.5;"/>
<rect x="12.5" y="12.5" width="25" height="25" style="fill:rgb(150,0,0);fill-opacity:0.4;stroke-width:0.5;"/>
<!-- Filter -->
<rect x="25" y="125" width="50" height="50" style="fill:rgb(0,255,0);filter:url(#filter_1effect_08);stroke:none;"/>
</g>
<g transform="translate(110, 210)">
<rect x="25" y="25" width="50" height="50" style="fill:rgb(150,255,150);stroke-dasharray:5;"/>
<rect x="20" y="20" width="60" height="60" style="fill:rgb(200,200,200);stroke-dasharray:3;fill-opacity:0.4" />
<rect x="12.5" y="12.5" width="25" height="37.5" style="fill:rgb(0,0,150);fill-opacity:0.4;stroke-width:0.5;"/>
<rect x="37.5" y="37.5" width="25" height="25" style="fill:rgb(150,0,0);fill-opacity:0.4;stroke-width:0.5;"/>
<!-- Filter -->
<rect x="25" y="125" width="50" height="50" style="fill:rgb(0,255,0);filter:url(#filter_1effect_09);stroke:none;"/>
</g>
<g transform="translate(210, 210)">
<rect x="25" y="25" width="50" height="50" style="fill:rgb(150,255,150);stroke-dasharray:5;"/>
<rect x="20" y="20" width="60" height="60" style="fill:rgb(200,200,200);stroke-dasharray:3;fill-opacity:0.4" />
<rect x="25" y="25" width="60" height="25" style="fill:rgb(0,0,150);fill-opacity:0.4;stroke-width:0.5;"/>
<rect x="20" y="20" width="60" height="60" style="fill:rgb(150,0,0);fill-opacity:0.4;stroke-width:0.5;"/>
<!-- Filter -->
<rect x="25" y="125" width="50" height="50" style="fill:rgb(0,255,0);filter:url(#filter_1effect_10);stroke:none;"/>
</g>
<g transform="translate(310, 210)">